@import"https://fonts.googleapis.com/css2?family=Manrope:wght@400;600;700&family=Sora:wght@500;600;700&display=swap";:root{color-scheme:dark;--font-heading: "Sora", "Avenir Next", "Trebuchet MS", sans-serif;--font-body: "Manrope", "Gill Sans", "Trebuchet MS", sans-serif;--bg-base: #060d0c;--bg-overlay: radial-gradient(circle at 18% 12%, #12352f 0%, transparent 42%), radial-gradient(circle at 88% 1%, #0f2d27 0%, transparent 40%), linear-gradient(180deg, #07100e 0%, #050808 100%);--surface-1: #0c1c19;--surface-2: #112824;--surface-3: #163531;--surface-border: rgba(116, 210, 180, .2);--text-primary: #f5faf8;--text-secondary: #abbbb6;--text-muted: #6b8079;--accent-teal: #57c4a0;--accent-teal-strong: #73e2b8;--accent-gold: #dfb55e;--accent-gold-strong: #ffcc70;--danger: #ef7d6f;--badge-hybrid: #5ebd76;--badge-indica: #ee9b3f;--badge-sativa: #8d7dec;--shadow-soft: 0 14px 32px rgba(0, 0, 0, .35);--radius-card: 18px}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;width:100%}body{background:var(--bg-overlay);background-color:var(--bg-base);color:var(--text-primary);font-family:var(--font-body);line-height:1.45;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4,h5,h6{margin:0;font-family:var(--font-heading);letter-spacing:.01em}p{margin:0}button,input,textarea,select{font:inherit}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.app-shell{min-height:100dvh;padding:0 0 env(safe-area-inset-bottom);display:flex;flex-direction:column}.app-toolbar{position:sticky;top:0;z-index:24;display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.75rem 1rem;backdrop-filter:blur(14px);background:linear-gradient(170deg,#040c0aeb,#071210c7);border-bottom:1px solid rgba(116,210,180,.16)}.app-branding{display:flex;align-items:center;gap:.5rem}.app-brand-dot{width:1.8rem;height:1.8rem;border-radius:999px;display:grid;place-items:center;background:#57c4a033;border:1px solid rgba(115,226,184,.35)}.app-brand-title{font-family:var(--font-heading);font-size:.95rem;font-weight:700}.app-brand-subtitle{color:var(--text-secondary);font-size:.72rem}.connection-status{display:inline-flex;align-items:center;gap:.35rem;font-size:.8rem;color:var(--text-secondary)}.toolbar-actions{display:inline-flex;align-items:center;gap:.45rem;justify-content:flex-end;flex-wrap:wrap}.session-pill{font-size:.75rem;color:var(--text-secondary);border:1px solid rgba(116,210,180,.24);border-radius:999px;padding:.26rem .55rem;background:#05120fdb}.toolbar-auth-button{padding:.34rem .66rem;font-size:.73rem;white-space:nowrap}.status-dot{width:.58rem;height:.58rem;border-radius:50%;box-shadow:0 0 10px #00000073}.status-dot.is-online{background:#48d67f}.status-dot.is-offline{background:#e95d5d}.app-main{padding:.95rem 1rem 6.5rem;max-width:1120px;margin:0 auto;width:100%;position:relative}.page{display:flex;flex-direction:column;gap:1rem;animation:page-fade-in .3s cubic-bezier(.22,1,.36,1) both;will-change:transform,opacity}@keyframes page-fade-in{0%{opacity:0;transform:translate3d(0,12px,0) scale(.995);filter:blur(6px)}to{opacity:1;transform:translateZ(0) scale(1);filter:blur(0)}}.page-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.3rem}.page-header h1{font-size:clamp(1.55rem,4.5vw,2rem)}.home-page .page-header{align-items:flex-start}.home-hero{position:relative;overflow:hidden;border-radius:var(--radius-card);padding:1rem;border:1px solid rgba(116,210,180,.22);background:radial-gradient(circle at 18% 16%,rgba(87,196,160,.23),transparent 48%),radial-gradient(circle at 82% 0%,rgba(223,181,94,.18),transparent 44%),linear-gradient(140deg,#0a1a17eb,#060e0ce6);box-shadow:var(--shadow-soft);isolation:isolate}.home-hero:before,.home-hero:after{content:"";position:absolute;inset:auto;border-radius:999px;pointer-events:none;filter:blur(18px);opacity:.44}.home-hero:before{width:10rem;height:10rem;top:-2.8rem;right:-1.8rem;background:#dfb55e38;animation:hero-float-a 12s ease-in-out infinite}.home-hero:after{width:12rem;height:12rem;left:-2.6rem;bottom:-5.1rem;background:#57c4a03d;animation:hero-float-b 14s ease-in-out infinite}@keyframes hero-float-a{0%,to{transform:translateZ(0)}50%{transform:translate3d(-10px,8px,0)}}@keyframes hero-float-b{0%,to{transform:translateZ(0)}50%{transform:translate3d(12px,-10px,0)}}.home-page-brand-title{font-family:var(--font-heading);font-size:clamp(2rem,6vw,2.7rem);font-weight:800;line-height:1;letter-spacing:.01em}.home-page-brand-subtitle{color:var(--text-secondary);font-size:.9rem;font-weight:600;margin-top:.3rem}.eyebrow{color:var(--accent-gold);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700}.detail-subtitle{color:var(--text-secondary);margin-top:.25rem}.section-block{display:flex;flex-direction:column;gap:.75rem}.section-heading{display:flex;align-items:baseline;justify-content:space-between;color:var(--text-secondary)}.section-heading h2{color:var(--text-primary);font-size:1.15rem}.view-toggle{display:inline-flex;gap:.45rem;width:fit-content;padding:.2rem;border-radius:999px;background:#57c4a012;border:1px solid rgba(115,226,184,.18)}.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.stat-card{background:linear-gradient(162deg,#57c4a024,#0e1d1ae6);border:1px solid var(--surface-border);border-radius:var(--radius-card);padding:.82rem .9rem;box-shadow:var(--shadow-soft);backdrop-filter:blur(6px);display:flex;flex-direction:column;gap:.58rem;transform:translateY(8px);opacity:0;animation:stat-rise .38s cubic-bezier(.16,1,.3,1) forwards;animation-delay:var(--stat-delay, 0ms)}@keyframes stat-rise{to{opacity:1;transform:translateY(0)}}.stat-card-header{display:flex;align-items:center;gap:.5rem}.stat-icon{width:1.55rem;height:1.55rem;border-radius:999px;display:grid;place-items:center;background:#57c4a029;border:1px solid rgba(115,226,184,.34)}.stat-icon svg{width:.95rem;height:.95rem;fill:#d1fff2e6}.stat-value{font-family:var(--font-heading);font-size:1.52rem;font-weight:700;line-height:1}.stat-label{color:var(--text-secondary);font-size:.84rem;font-weight:700}.recent-section .section-heading p{font-size:.82rem}.recent-strip{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(210px,1fr);gap:.62rem;overflow-x:auto;padding-bottom:.25rem;scroll-snap-type:x mandatory}.recent-card{border-radius:16px;overflow:hidden;border:1px solid rgba(116,210,180,.22);background:#081412db;min-height:208px;display:flex;flex-direction:column;scroll-snap-align:start;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.recent-card:hover,.recent-card:focus-visible{transform:translateY(-2px);border-color:#74d2b473;box-shadow:0 14px 28px #00000059}.recent-card-thumb{position:relative;width:100%;overflow:hidden}.recent-card-thumb:after{content:"";position:absolute;inset:42% 0 0;background:linear-gradient(to top,#020807b8,#02080700);pointer-events:none}.recent-card-thumb img,.recent-card-thumb .image-fallback{width:100%;aspect-ratio:1.48;object-fit:cover;min-height:0}.recent-card-count{position:absolute;top:.45rem;right:.45rem;z-index:2;border-radius:999px;border:1px solid rgba(223,181,94,.44);padding:.18rem .45rem;background:#060e0cbd;color:#f6edda;font-size:.74rem;backdrop-filter:blur(6px)}.recent-card-body{padding:.66rem .75rem .75rem;display:grid;gap:.2rem}.recent-card-name{font-family:var(--font-heading);font-size:.98rem}.recent-card-meta{color:var(--text-secondary);font-size:.8rem}.home-empty-shell{display:grid;gap:.72rem}.home-empty-actions{display:flex;gap:.55rem;flex-wrap:wrap}.offline-banner{background:linear-gradient(120deg,#dfb55e42,#583d175c);border:1px solid rgba(223,181,94,.55);color:#ffe8b8;padding:.75rem .9rem;border-radius:14px}.api-control{display:flex;flex-direction:column;gap:.5rem}.api-control-panel{background:var(--surface-1);border:1px solid var(--surface-border);border-radius:14px;padding:.9rem;display:flex;flex-direction:column;gap:.7rem}.api-control-panel p{color:var(--text-secondary);font-size:.85rem}.api-control-actions{display:flex;gap:.55rem}.api-warning{color:#ffd9a9;background:#57340e73;border:1px solid rgba(223,181,94,.56);border-radius:12px;padding:.6rem .75rem;font-size:.88rem}.card-grid{display:grid;grid-template-columns:1fr;gap:.75rem}.strain-card{display:flex;flex-direction:column;gap:.5rem;padding:.95rem;border-radius:var(--radius-card);background:linear-gradient(145deg,#163531e6,#0a1412f2);border:1px solid rgba(115,226,184,.15);box-shadow:var(--shadow-soft);transition:transform .18s ease,border-color .18s ease,box-shadow .22s ease;transform:translateZ(0);backdrop-filter:blur(6px)}.strain-card:hover,.strain-card:focus-visible{transform:translate3d(0,-3px,0) scale(1.01);border-color:#73e2b873;box-shadow:0 18px 32px #030d0b80,0 0 0 1px #73e2b833}.strain-card:active{transform:translate3d(0,-1px,0) scale(.997)}.strain-thumb{position:relative;border-radius:13px;overflow:hidden;border:1px solid rgba(112,174,157,.25);background:#081412f2}.strain-thumb:after{content:"";position:absolute;inset:48% 0 0;background:linear-gradient(to top,#030a09c2,#030a0900);pointer-events:none}.strain-thumb img{width:100%;aspect-ratio:1.6;object-fit:cover;transition:transform .26s ease}.strain-card:hover .strain-thumb img,.strain-card:focus-visible .strain-thumb img{transform:scale(1.04)}.image-fallback{width:100%;min-height:110px;display:grid;place-items:center;color:#d6f6ea;font-size:1.45rem;background:linear-gradient(145deg,#1e443c8c,#091412eb)}.image-count-badge{position:absolute;right:.48rem;top:.48rem;z-index:2;display:inline-flex;align-items:center;gap:.2rem;border-radius:999px;padding:.18rem .48rem;border:1px solid rgba(223,181,94,.42);color:#ffe9c4;background:#050d0bbd;font-size:.74rem;font-weight:700;backdrop-filter:blur(8px)}.strain-card-header{display:flex;gap:.4rem;justify-content:space-between;align-items:start}.strain-card h3{font-size:1rem}.strain-breeder{color:var(--accent-gold-strong);font-weight:600}.strain-lineage{color:var(--text-secondary);font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.strain-ranges{display:flex;justify-content:space-between;gap:.5rem;color:var(--text-secondary);font-size:.86rem}.strain-ranges strong{color:var(--text-primary)}.skeleton-card{display:flex;flex-direction:column;gap:.55rem;padding:.95rem;border-radius:var(--radius-card);border:1px solid rgba(115,226,184,.12);background:linear-gradient(145deg,#0f201dd6,#0a1412e6);box-shadow:var(--shadow-soft)}.skeleton-thumb{width:100%;aspect-ratio:1.6;border-radius:12px;background:#1e3c36a6}.skeleton-line{height:.72rem;border-radius:999px;width:100%;background:#1e3c3694}.skeleton-short{width:48%}.skeleton-medium{width:68%}.skeleton-shimmer{position:relative;overflow:hidden}.skeleton-shimmer:after{content:"";position:absolute;inset:0;transform:translate(-120%);background:radial-gradient(circle at 18% 55%,rgba(198,255,235,.16),transparent 42%),linear-gradient(112deg,transparent 0%,rgba(198,255,235,.2) 48%,transparent 100%);animation:shimmer 1.6s cubic-bezier(.4,0,.2,1) infinite}@keyframes shimmer{to{transform:translate(120%)}}.strain-badge{border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.25rem .64rem;font-size:.7rem;font-weight:700;color:#050606;letter-spacing:.035em;text-transform:uppercase;box-shadow:inset 0 0 0 1px #fff3}.strain-badge-dot{width:.34rem;height:.34rem;border-radius:50%;background:#060d0bb8;box-shadow:0 0 0 1px #0000003d}.badge-hybrid{background:var(--badge-hybrid)}.badge-indica{background:var(--badge-indica)}.badge-sativa{background:var(--badge-sativa)}.filter-panel,.seed-form,.detail-card,.gallery-panel,.detail-summary{background:#0c1c19e6;border:1px solid rgba(116,210,180,.18);border-radius:var(--radius-card);padding:.9rem;box-shadow:var(--shadow-soft)}.filter-panel,.seed-form{display:flex;flex-direction:column;gap:.75rem}.auth-form{max-width:560px}.add-seed-wizard{gap:.95rem}.wizard-stepper{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem}.wizard-stepper li{border:1px solid rgba(112,174,157,.32);border-radius:12px;padding:.5rem .58rem;background:#071311d1;color:var(--text-secondary);display:grid;gap:.16rem}.wizard-stepper li span{width:1.35rem;height:1.35rem;border-radius:999px;display:grid;place-items:center;font-size:.76rem;font-weight:700;border:1px solid rgba(112,174,157,.5)}.wizard-stepper li p{font-size:.82rem;font-weight:600}.wizard-stepper li.is-active{color:var(--text-primary);border-color:#dfb55e8a;background:#573b0d2e}.wizard-stepper li.is-active span{background:#dfb55e33;border-color:#dfb55ea6}.wizard-panel{display:flex;flex-direction:column;gap:.78rem}.wizard-panel h2{font-size:1.15rem}.wizard-choice-grid{display:grid;gap:.62rem;grid-template-columns:1fr}.wizard-choice{border-radius:14px;justify-content:flex-start;text-align:left;padding:.7rem .88rem;display:grid;gap:.25rem}.wizard-choice span{color:var(--text-secondary);font-size:.84rem}.wizard-actions{display:flex;gap:.56rem;justify-content:space-between}.auth-wizard-overlay{position:fixed;inset:0;z-index:80;background:#020706b8;display:grid;place-items:center;padding:1rem}.auth-wizard{width:min(620px,100%);background:#091815f5;border:1px solid rgba(116,210,180,.28);border-radius:16px;box-shadow:0 16px 34px #00000073;padding:.9rem;display:flex;flex-direction:column;gap:.8rem}.auth-wizard-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.65rem}.auth-wizard-header h2{font-size:1.2rem}.auth-wizard-form{max-width:none}.auth-wizard-actions{display:flex;justify-content:space-between;align-items:center;gap:.55rem}label{display:flex;flex-direction:column;gap:.35rem;color:var(--text-secondary);font-weight:600}input,textarea,select{background:var(--surface-2);border:1px solid rgba(112,174,157,.34);border-radius:12px;color:var(--text-primary);padding:.65rem .75rem}input::placeholder,textarea::placeholder{color:var(--text-muted)}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid rgba(223,181,94,.62);outline-offset:1px}:where(button,a,input,textarea,select,[role=button]):focus-visible{outline:2px solid rgba(223,181,94,.75);outline-offset:2px}:where(button,a,input,textarea,select,[role=button]):focus:not(:focus-visible){outline:none}.number-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.primary-button,.ghost-button,.seed-form button,.api-control-panel button,.type-chip,.captured-item button,.file-upload span{border:none;border-radius:999px;padding:.55rem .95rem;font-weight:700;cursor:pointer;transition:opacity .14s ease,transform .14s ease,box-shadow .18s ease,filter .18s ease;transform:translateZ(0)}.primary-button,.seed-form button[type=submit]{background:linear-gradient(120deg,var(--accent-gold),var(--accent-gold-strong));color:#15231d}.primary-button:disabled,.seed-form button:disabled{opacity:.45;cursor:not-allowed}.ghost-button,.api-control-panel button,.type-chip,.captured-item button,.file-upload span{background:#57c4a029;color:var(--accent-teal-strong);border:1px solid rgba(115,226,184,.35)}.ghost-button:hover,.primary-button:hover,.seed-form button:hover,.api-control-panel button:hover,.type-chip:hover,.captured-item button:hover,.file-upload span:hover{transform:translateY(-1px);box-shadow:0 8px 16px #00000038}.ghost-button:active,.primary-button:active,.seed-form button:active,.api-control-panel button:active,.type-chip:active,.captured-item button:active,.file-upload span:active{transform:translateY(1px) scale(.985);box-shadow:none;filter:saturate(.94)}.ghost-button.danger,.api-control-panel .danger{color:#ffd5cf;background:#ef7d6f29;border-color:#ef7d6f80}.filter-heading{color:var(--text-secondary);margin-bottom:.35rem}.chip-row{display:flex;flex-wrap:wrap;gap:.45rem}.type-chip.is-selected{background:linear-gradient(125deg,#57c4a047,#dfb55e38);color:#d8f4e9}.trait-chip{padding:.28rem .65rem;background:#dfb55e2b;border-radius:999px;border:1px solid rgba(223,181,94,.45);color:#ffe8be;font-size:.84rem}.form-error{color:#ffb6ab;background:#5017149e;border:1px solid rgba(239,125,111,.5);border-radius:12px;padding:.65rem .75rem}.field-error{color:#ffd0c7;font-size:.84rem;margin-top:-.25rem}.csv-import-panel{border-top:1px solid rgba(112,174,157,.28);padding-top:.7rem;display:flex;flex-direction:column;gap:.5rem}.csv-file-upload{align-self:flex-start}.csv-import-status{font-size:.84rem;color:var(--text-secondary)}.loading-copy,.empty-copy{color:var(--text-secondary)}.camera-module{display:flex;flex-direction:column;gap:.75rem}.camera-module header p{color:var(--text-secondary);margin-top:.3rem}.camera-actions{display:flex;gap:.5rem;flex-wrap:wrap}.camera-preview-shell{border:1px dashed rgba(112,174,157,.45);border-radius:14px;min-height:180px;background:#071311e6;position:relative;overflow:hidden}.camera-preview-shell video{width:100%;height:100%;max-height:280px;object-fit:cover;display:none}.camera-preview-shell video.is-visible{display:block}.camera-placeholder{position:absolute;inset:0;display:grid;place-items:center;color:var(--text-muted)}.file-upload{position:relative;display:inline-flex;width:fit-content}.file-upload input{position:absolute;inset:0;opacity:0;cursor:pointer}.captured-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.captured-item{background:var(--surface-2);border:1px solid rgba(112,174,157,.35);border-radius:14px;padding:.5rem;margin:0;display:flex;flex-direction:column;gap:.4rem}.captured-item img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px}.captured-item button{border-radius:8px;padding:.35rem .5rem}.detail-header{align-items:flex-start}.detail-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;color:var(--text-secondary)}.detail-summary strong{color:var(--text-primary)}.gallery-panel{display:flex;flex-direction:column;gap:.6rem}.gallery-strip{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(150px,1fr);gap:.55rem;overflow-x:auto;padding-bottom:.2rem}.gallery-item{margin:0;display:flex;flex-direction:column;gap:.3rem}.gallery-item img,.gallery-placeholder{width:100%;aspect-ratio:1;border-radius:12px;object-fit:cover;background:var(--surface-3)}.gallery-placeholder{display:grid;place-items:center;color:var(--text-muted);border:1px dashed rgba(112,174,157,.38)}.gallery-item figcaption{color:var(--text-secondary);font-size:.82rem}.bottom-nav{position:fixed;z-index:30;left:.5rem;right:.5rem;bottom:max(.5rem,env(safe-area-inset-bottom));background:linear-gradient(145deg,#081512f7,#0e2520f0);border:1px solid rgba(112,174,157,.35);border-radius:18px;box-shadow:0 14px 34px #00000080;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.25rem;padding:.45rem}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.18rem;color:var(--text-secondary);border-radius:12px;min-height:56px}.bottom-nav-item svg{width:20px;height:20px;fill:currentColor}.bottom-nav-item span{font-size:.72rem;font-weight:700}.bottom-nav-item.is-active{color:var(--accent-gold-strong);background:#dfb55e29}.empty-state{border-radius:14px;border:1px dashed rgba(116,210,180,.35);background:#081412bf;padding:.9rem;display:grid;gap:.5rem}.empty-state h3{font-size:1rem}.empty-state-illustration{width:100%;max-width:360px}.empty-illustration-panel{fill:#122b26e6;stroke:#74d2b440}.empty-illustration-shadow{fill:#03060673}.empty-illustration-ring{fill:none;stroke:#dfb55eb8;stroke-width:5}.empty-illustration-stroke{stroke:#dfb55eb8;stroke-width:5;stroke-linecap:round}.toast-region{position:fixed;z-index:60;left:1rem;right:1rem;bottom:calc(5.4rem + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:.5rem;pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:center;justify-content:space-between;gap:.8rem;border-radius:14px;padding:.62rem .78rem;border:1px solid rgba(116,210,180,.22);background:#0c1c19f5;box-shadow:var(--shadow-soft)}.toast p{font-size:.88rem}.toast-success{border-color:#5ddd997a;color:#cbffd9;background:#143826f0}.toast-error{border-color:#ef7d6f80;color:#ffd1c9;background:#501714f2}.toast-dismiss{border:none;background:transparent;color:currentColor;font-size:1rem;cursor:pointer}.error-screen{min-height:100dvh;display:grid;place-items:center;padding:1.2rem}.error-screen-card{width:min(420px,100%);padding:1.2rem;border-radius:var(--radius-card);background:#0c1c19f2;border:1px solid rgba(116,210,180,.2);display:flex;flex-direction:column;gap:.65rem}.not-found-page{align-items:flex-start}@media(min-width:640px){.app-main{padding:1.25rem 1.25rem 6.7rem}.app-toolbar{padding:.85rem 1.25rem}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.captured-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.wizard-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bottom-nav{left:50%;transform:translate(-50%);width:min(520px,calc(100% - 1rem))}.toast-region{left:50%;right:auto;width:min(480px,calc(100% - 2rem));transform:translate(-50%)}}@media(min-width:980px){.card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
