@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/287637279c44650d-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/b387097da7407747-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/cb9f64d62d112b41-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Fraunces Fallback;src:local("Times New Roman");ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.00%;size-adjust:115.45%}.__className_ae2eaa{font-family:Fraunces,Fraunces Fallback;font-style:normal}.__variable_ae2eaa{--font-display:"Fraunces","Fraunces Fallback"}@font-face{font-family:Schibsted Grotesk;font-style:normal;font-weight:400 900;font-display:swap;src:url(/_next/static/media/56069e83bb5b2425-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Schibsted Grotesk;font-style:normal;font-weight:400 900;font-display:swap;src:url(/_next/static/media/91601dd83defba07-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Schibsted Grotesk Fallback;src:local("Arial");ascent-override:93.46%;descent-override:24.67%;line-gap-override:0.00%;size-adjust:104.49%}.__className_e8899d{font-family:Schibsted Grotesk,Schibsted Grotesk Fallback;font-style:normal}.__variable_e8899d{--font-body:"Schibsted Grotesk","Schibsted Grotesk Fallback"}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/58f386aa6b1a2a92-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/011e180705008d6f-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/7ba5fb2a8c88521c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/92eeb95d069020cc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/d3ebbfd689654d3a-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ef4d5661765d0e49-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/d29838c109ef09b4-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e40af3453d7c920a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/99dcf268bda04fe5-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/98e207f02528a563-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/73cb51aac9c97f90-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/d26bbd13d6b70f89-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/20535187d867b7b9-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/5356a6a4f2c8c8d8-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/db96af6b531dc71f-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Mono Fallback;src:local("Arial");ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.00%;size-adjust:134.59%}.__className_595324{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.__variable_595324{--font-mono:"IBM Plex Mono","IBM Plex Mono Fallback"}*{margin:0;padding:0;box-sizing:border-box}:root{--bg:#070f0c;--bg-raised:#0a1310;--surface:#0e1915;--surface-2:#14211c;--surface-3:#1b2b25;--border:#21332c;--border-strong:#33544a;--text:#eaf2ed;--dim:#8fa79c;--faint:#5f776d;--accent:#3ce18d;--accent-deep:#17a05e;--accent-glow:rgba(60,225,141,0.14);--blue:#4fc3f7;--purple:#b3a0f8;--amber:#f4b95b;--red:#f5806f;--cyan:#3fd9c4;--shadow:0 20px 48px rgba(0,0,0,0.34);--shadow-soft:0 8px 24px rgba(0,0,0,0.22);--radius:14px;--radius-sm:9px;--font-display-stack:var(--font-display),Georgia,serif;--font-body-stack:var(--font-body),"Segoe UI",system-ui,sans-serif;--font-mono-stack:var(--font-mono),ui-monospace,SFMono-Regular,Menlo,monospace}body,html{background:var(--bg);color:var(--text);font-family:var(--font-body-stack);min-height:100vh}body:before{z-index:-1;background:radial-gradient(52rem 36rem at 12% -8%,rgba(38,160,104,.13),transparent 62%),radial-gradient(44rem 32rem at 96% 108%,rgba(43,140,150,.1),transparent 60%),var(--bg)}body:after,body:before{content:"";position:fixed;inset:0}body:after{z-index:999;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.6'/%3E%3C/svg%3E")}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;cursor:pointer}::selection{background:rgba(60,225,141,.28)}h1,h2,h3{font-weight:600}.container{max-width:1200px;margin:0 auto;padding:1.75rem 1.5rem 3rem;display:flex;flex-direction:column;gap:1.5rem}.cam-pane,.card,.settings-section{background:linear-gradient(180deg,rgba(255,255,255,.016),transparent 42%),var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-soft)}.card,.settings-section{padding:1.1rem 1.15rem}.cam-pane h2,.chart-controls h3,.panel-title,.settings-header h2{color:var(--dim);font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.panel-title{margin-bottom:.85rem}.panel-copy{line-height:1.55}.btn{min-height:2.25rem;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.45rem .95rem;font-size:.85rem;font-weight:500;transition:border-color .15s ease,background .15s ease,transform .12s ease,box-shadow .15s ease}.btn:hover{border-color:var(--border-strong);background:var(--surface-3);text-decoration:none}.btn:active{transform:translateY(1px)}.btn.primary{background:linear-gradient(180deg,var(--accent),var(--accent-deep));color:#05130c;border-color:transparent;font-weight:600}.btn.primary:hover{box-shadow:0 4px 18px rgba(60,225,141,.25)}.btn.primary:disabled{background:var(--surface-3);color:var(--faint);border-color:var(--border);cursor:not-allowed;box-shadow:none}.btn.danger{background:rgba(245,128,111,.12);color:var(--red);border-color:rgba(245,128,111,.35);font-weight:600}.btn.danger:hover{background:rgba(245,128,111,.2);border-color:var(--red)}.btn.danger:disabled{background:var(--surface-3);color:var(--faint);border-color:var(--border);cursor:not-allowed}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.icon{min-width:2.25rem;padding:0 .55rem;font-size:1.1rem;line-height:1;color:var(--dim)}.btn.icon:hover{color:var(--red);border-color:var(--red)}input,select,textarea{background:var(--bg-raised);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.45rem .65rem;font:inherit;font-size:.88rem;width:100%;transition:border-color .15s ease,box-shadow .15s ease}select{width:auto;font-size:.85rem}input::placeholder,textarea::placeholder{color:var(--faint)}input:focus,select:focus,textarea:focus{border-color:var(--border-strong);box-shadow:0 0 0 3px var(--accent-glow)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.header{position:-webkit-sticky;position:sticky;top:0;z-index:50;display:flex;justify-content:space-between;align-items:center;padding:.8rem 1.5rem;background:rgba(9,17,14,.82);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--border)}.header h1{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-display-stack);font-size:1.35rem;font-weight:600;letter-spacing:.01em;color:var(--text)}.header h1 svg{color:var(--accent);filter:drop-shadow(0 0 6px rgba(60,225,141,.5))}.header a:hover{text-decoration:none}.header .user{display:flex;align-items:center;gap:.65rem;font-size:.85rem;color:var(--dim)}.header .user img{width:28px;height:28px;border-radius:50%;border:1px solid var(--border-strong)}.muted{color:var(--dim)}.err,.muted{font-size:.85rem}.err{color:var(--red)}.empty{color:var(--dim);text-align:center;padding:1.5rem;font-size:.85rem}.role-badge{width:max-content;display:inline-flex;align-items:center;min-height:1.45rem;padding:.15rem .5rem;border:1px solid var(--border-strong);border-radius:999px;color:var(--dim);font-size:.66rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.grid{display:grid;grid-gap:1rem;gap:1rem}.grid-cards{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.toast-stack{position:fixed;bottom:1.25rem;left:50%;transform:translateX(-50%);z-index:300;display:flex;flex-direction:column;align-items:center;gap:.5rem;pointer-events:none}.toast{display:inline-flex;align-items:center;gap:.55rem;padding:.6rem 1rem;background:var(--surface-3);border:1px solid var(--border-strong);border-radius:999px;box-shadow:var(--shadow);font-size:.85rem;animation:toast-in .22s cubic-bezier(.2,.9,.3,1.2) both}.toast.leaving{animation:toast-out .22s ease both}.toast-dot{width:.5rem;height:.5rem;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent)}.toast.err .toast-dot{background:var(--red);box-shadow:0 0 8px var(--red)}.toast.info .toast-dot{background:var(--blue);box-shadow:0 0 8px var(--blue)}@keyframes toast-in{0%{opacity:0;transform:translateY(.75rem) scale(.96)}}@keyframes toast-out{to{opacity:0;transform:translateY(.5rem) scale(.97)}}.page-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.page-head h2{font-family:var(--font-display-stack);font-size:clamp(1.7rem,3.5vw,2.3rem);font-weight:550;letter-spacing:.005em}.page-head .sub{color:var(--dim);font-size:.88rem;margin-top:.3rem}.plant-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));grid-gap:1rem;gap:1rem}.plant-card{position:relative;display:flex;flex-direction:column;gap:.9rem;padding:1.15rem 1.2rem 1.05rem;background:linear-gradient(180deg,rgba(255,255,255,.018),transparent 46%),var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-soft);color:var(--text);overflow:hidden;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;animation:rise .4s ease both}.plant-card:hover{transform:translateY(-3px);border-color:var(--border-strong);box-shadow:var(--shadow);text-decoration:none}.plant-card:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,var(--accent),transparent 70%);opacity:.75}.plant-card.offline:before{background:linear-gradient(90deg,var(--red),transparent 70%)}.plant-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem}.plant-card-head h3{font-family:var(--font-display-stack);font-size:1.32rem;font-weight:550;line-height:1.15}.plant-card-head .meta{color:var(--dim);font-size:.8rem;margin-top:.3rem}.plant-readings{display:grid;grid-template-columns:repeat(auto-fit,minmax(72px,1fr));grid-gap:.5rem;gap:.5rem}.plant-reading{display:grid;grid-gap:.15rem;gap:.15rem;padding:.5rem .6rem;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm)}.plant-reading span{color:var(--faint);font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.plant-reading strong{font-family:var(--font-mono-stack);font-size:.98rem;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.plant-reading strong small{color:var(--dim);font-size:.68rem;font-weight:400;margin-left:.1rem}.plant-reading.alert strong{color:var(--red)}.plant-card-foot{display:flex;justify-content:space-between;align-items:center;gap:.75rem;min-height:1.3rem}.plant-card-foot .note{color:var(--dim);font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plant-card-foot .note strong{color:var(--text);font-weight:500}.plant-empty-hint{color:var(--faint);font-size:.8rem;font-style:italic}.alert-badge{min-width:1.2rem;height:1.2rem;display:inline-grid;place-items:center;padding:0 .32rem;background:var(--red);color:#1b0705;border-radius:999px;font-size:.7rem;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1;box-shadow:0 0 10px rgba(245,128,111,.45);flex-shrink:0}.side-nav-item .alert-badge{margin-left:auto}.attention-chips{display:flex;gap:.4rem;flex-wrap:wrap}.attention-chip{display:inline-flex;align-items:center;gap:.4rem;min-height:1.8rem;padding:.2rem .7rem;background:rgba(245,128,111,.1);color:var(--red);border:1px solid rgba(245,128,111,.35);border-radius:999px;font-size:.76rem;font-weight:700;transition:background .15s ease,border-color .15s ease}.attention-chip:hover{background:rgba(245,128,111,.18);border-color:var(--red)}.attention-chip.warning{background:rgba(244,185,91,.1);color:var(--amber);border-color:rgba(244,185,91,.35)}.attention-chip.warning:hover{background:rgba(244,185,91,.18);border-color:var(--amber)}.attention-chip:before{content:"●";font-size:.5rem}.status-pill{width:max-content;display:inline-flex;align-items:center;gap:.42rem;padding:.24rem .6rem;background:rgba(60,225,141,.09);color:var(--accent);border:1px solid rgba(60,225,141,.28);border-radius:999px;font-size:.74rem;font-weight:700;flex-shrink:0}.status-pill.offline{background:rgba(245,128,111,.09);color:var(--red);border-color:rgba(245,128,111,.3)}.live-dot,.status-dot{width:.55rem;height:.55rem;border-radius:50%;display:inline-block;flex:0 0 auto}.live-dot.online,.status-dot.online{background:var(--accent);box-shadow:0 0 0 3px rgba(60,225,141,.15);animation:pulse 2.4s ease-in-out infinite}.live-dot.offline,.status-dot.offline{background:var(--red)}@keyframes pulse{0%,to{box-shadow:0 0 0 3px rgba(60,225,141,.15)}50%{box-shadow:0 0 0 5px rgba(60,225,141,.07)}}.device-page{width:100%;max-width:1500px;margin:0 auto;padding:1rem 1.1rem 2.5rem;display:grid;grid-template-columns:232px minmax(0,1fr);grid-gap:1rem;gap:1rem;align-items:start}.device-sidebar{position:-webkit-sticky;position:sticky;top:4.4rem;display:flex;flex-direction:column;gap:.9rem;min-height:0}.side-back{display:inline-flex;align-items:center;gap:.5rem;min-height:2.1rem;padding:.35rem .5rem;margin-left:-.5rem;border-radius:var(--radius-sm);color:var(--dim);font-size:.84rem;transition:color .15s ease,background .15s ease}.side-back:hover{color:var(--text);background:var(--surface-2);text-decoration:none}.side-nav{display:grid;grid-gap:.3rem;gap:.3rem}.side-nav-item{min-height:2.8rem;display:flex;align-items:center;gap:.7rem;width:100%;padding:.45rem .6rem;background:transparent;color:var(--dim);border:1px solid transparent;border-radius:var(--radius-sm);text-align:left;transition:background .15s ease,color .15s ease,border-color .15s ease}.side-nav-item:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.side-nav-item.active{background:linear-gradient(90deg,var(--accent-glow),transparent 80%),var(--surface-2);color:var(--text);border-color:rgba(60,225,141,.25)}.side-nav-icon{width:1.9rem;height:1.9rem;display:grid;place-items:center;flex:0 0 auto;color:var(--dim);transition:color .15s ease}.side-nav-item.active .side-nav-icon{color:var(--accent);filter:drop-shadow(0 0 5px rgba(60,225,141,.45))}.side-nav-text{min-width:0;display:grid;grid-gap:.05rem;gap:.05rem}.side-nav-text span{color:inherit;font-size:.88rem;font-weight:600}.side-nav-text small{color:var(--faint);font-size:.7rem}.sidebar-stats{display:grid;grid-gap:.4rem;gap:.4rem;padding-top:.35rem;border-top:1px solid var(--border)}.sidebar-stats>div{display:flex;justify-content:space-between;gap:.75rem;padding:.3rem .6rem}.sidebar-stats span{color:var(--faint);font-size:.74rem}.sidebar-stats strong{color:var(--dim);font-size:.78rem;font-family:var(--font-mono-stack);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.device-content{min-width:0;display:flex;flex-direction:column;gap:.9rem}.device-hero{justify-content:space-between;padding:1.1rem 1.25rem;background:linear-gradient(180deg,rgba(255,255,255,.018),transparent 46%),var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-soft)}.device-hero,.device-title-block{display:flex;align-items:center;gap:1rem}.device-title-block{min-width:0;flex-wrap:wrap}.device-hero h2{font-family:var(--font-display-stack);font-size:clamp(1.45rem,2.4vw,2rem);font-weight:550;line-height:1.1}.device-hero .hero-meta{color:var(--dim);font-size:.84rem;display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.device-edit-actions,.device-hero-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.device-edit-form{width:100%;display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1.2fr) auto;grid-gap:.75rem;gap:.75rem;align-items:end}.device-edit-form label{display:grid;grid-gap:.35rem;gap:.35rem;color:var(--dim);font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.view-stack{display:grid;grid-gap:.9rem;gap:.9rem}.view-stack>*{animation:rise .35s ease both}.view-stack>:nth-child(2){animation-delay:.04s}.view-stack>:nth-child(3){animation-delay:.08s}.view-stack>:nth-child(4){animation-delay:.12s}.view-stack>:nth-child(5){animation-delay:.16s}@keyframes rise{0%{opacity:0;transform:translateY(.6rem)}}.view-hidden{display:none!important}.overview-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);grid-gap:.9rem;gap:.9rem;align-items:start}.top-row{display:grid;grid-template-columns:minmax(300px,.85fr) minmax(420px,1.4fr);grid-gap:.9rem;gap:.9rem;align-items:stretch}.cam-pane{padding:.9rem;display:flex;flex-direction:column;gap:.55rem}.cam-pane h2{display:flex;align-items:center;gap:.5rem}.cam-badge{font-size:.6rem;padding:.12rem .45rem;border-radius:999px;letter-spacing:.08em}.cam-badge.live{background:rgba(60,225,141,.16);color:var(--accent)}.cam-badge.past{background:rgba(244,185,91,.16);color:var(--amber)}.cam-scrub{display:flex;flex-direction:column;gap:.2rem}.cam-scrub input[type=range]{width:100%;accent-color:var(--accent);cursor:pointer;padding:0;border:none;background:transparent;box-shadow:none}.cam-scrub-ends{display:flex;justify-content:space-between;font-size:.65rem;color:var(--faint);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.cam-pane .frame{position:relative;background:#050b09;border:1px solid var(--border);border-radius:var(--radius-sm);aspect-ratio:16/9;overflow:hidden;cursor:zoom-in}.cam-pane .frame.empty{cursor:default}.cam-pane img{width:100%;height:100%;object-fit:cover;display:block}.cam-pane img[class*=camera-rotation-],.camera-modal img[class*=camera-rotation-],.media-grid img[class*=camera-rotation-]{transform-origin:center}.camera-rotation-0{transform:none}.camera-rotation-90{object-fit:contain!important;transform:rotate(90deg) scale(.5625)}.camera-rotation-180{transform:rotate(180deg)}.camera-rotation-270{object-fit:contain!important;transform:rotate(270deg) scale(.5625)}.cam-pane .pane-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--faint);font-size:.85rem}.cam-pane .meta,.camera-modal-meta{font-size:.72rem;color:var(--dim);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;display:flex;justify-content:space-between;gap:.75rem}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:.75rem;gap:.75rem}.media-grid a{display:grid;grid-gap:.25rem;gap:.25rem;color:var(--dim);font-size:.75rem}.media-grid img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius-sm);background:var(--bg-raised);border:1px solid var(--border)}.sensor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:.7rem;gap:.7rem}.sensor-card{position:relative;min-height:108px;display:flex;flex-direction:column;justify-content:space-between;padding:.85rem .95rem;background:linear-gradient(180deg,rgba(255,255,255,.02),transparent 50%),var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:border-color .2s ease}.sensor-card:before{width:3px;background:var(--sensor-color,var(--border-strong));opacity:.9}.sensor-card:after,.sensor-card:before{content:"";position:absolute;inset:0 auto 0 0}.sensor-card:after{width:32%;background:linear-gradient(90deg,var(--sensor-color,transparent),transparent);opacity:.06;pointer-events:none}.sensor-card .spark{position:absolute;inset:0 0 0 3px;width:auto;height:100%;z-index:0;pointer-events:none}.sensor-card .spark-line{stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round;opacity:.42;vector-effect:non-scaling-stroke}.sensor-card .spark-area{opacity:.07}.sensor-card.stale .spark{opacity:.5}.sensor-card .age,.sensor-card .lbl,.sensor-card .val{position:relative;z-index:1}.sensor-card .lbl{font-size:.66rem;color:var(--dim);text-transform:uppercase;letter-spacing:.12em;font-weight:700;margin-bottom:.45rem}.sensor-card .val{font-family:var(--font-mono-stack);font-size:clamp(1.3rem,2vw,1.7rem);font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.01em}.sensor-card .unit{font-size:.78rem;font-weight:400;color:var(--dim);margin-left:.3rem;font-family:var(--font-body-stack)}.sensor-card .age{font-size:.68rem;color:var(--faint);margin-top:.3rem;min-height:1rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sensor-card.stale{opacity:.75}.sensor-card.stale .age{color:var(--amber)}.sensor-empty{min-height:220px;display:grid;place-items:center;padding:1.5rem;background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius);color:var(--dim);text-align:center}.chart-controls{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem;margin-bottom:.85rem}.chart-controls .left{display:flex;align-items:center;gap:.65rem}.time-btns{display:flex;gap:.2rem;padding:.2rem;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-sm)}.time-btns button{background:transparent;color:var(--dim);border:none;border-radius:7px;padding:.3rem .65rem;font-size:.8rem;font-weight:500;transition:background .15s ease,color .15s ease}.time-btns button:hover{color:var(--text)}.time-btns button.active{background:var(--accent);color:#05130c;font-weight:600}.chart-loading{padding:2rem;text-align:center}.chart-multiples{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:.7rem;gap:.7rem}.chart-multiple{display:grid;grid-gap:.3rem;gap:.3rem;padding:.7rem .75rem .5rem;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;text-align:left;color:inherit;transition:border-color .15s ease,transform .15s ease}.chart-multiple:hover{border-color:var(--border-strong);transform:translateY(-2px)}.chart-multiple-head{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem}.chart-multiple-head .lbl{font-size:.68rem;color:var(--dim);text-transform:uppercase;letter-spacing:.1em;font-weight:700}.chart-multiple-head .now{font-family:var(--font-mono-stack);font-size:.92rem;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.chart-multiple-head .now small{color:var(--dim);font-size:.7rem;font-weight:400;margin-left:.15rem}.actuator-strip{margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--border)}.actuator-strip .lbl{font-size:.66rem;color:var(--dim);text-transform:uppercase;letter-spacing:.12em;font-weight:700;margin-bottom:.35rem}.timeline-filters{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:.9rem}.chip{display:inline-flex;align-items:center;gap:.35rem;min-height:1.9rem;padding:.25rem .75rem;background:transparent;color:var(--dim);border:1px solid var(--border);border-radius:999px;font-size:.78rem;font-weight:600;transition:background .15s ease,color .15s ease,border-color .15s ease}.chip:hover{color:var(--text);border-color:var(--border-strong)}.chip.active{background:var(--accent-glow);color:var(--accent);border-color:rgba(60,225,141,.35)}.timeline,.timeline-item{position:relative;display:grid}.timeline-item{grid-template-columns:1.6rem minmax(0,1fr) auto;grid-gap:.7rem;gap:.7rem;padding:.55rem 0;align-items:start}.timeline-item:not(:last-child):before{content:"";position:absolute;left:.76rem;top:1.7rem;bottom:-.3rem;width:1px;background:var(--border)}.timeline-icon{width:1.6rem;height:1.6rem;display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--border);border-radius:50%;color:var(--tl-color,var(--dim));font-size:.7rem;z-index:1}.timeline-body{min-width:0;padding-top:.1rem}.timeline-body strong{font-size:.88rem;font-weight:600}.timeline-body .detail{color:var(--dim);font-size:.8rem;margin-top:.1rem;white-space:pre-wrap;word-break:break-word}.timeline-time{color:var(--faint);font-size:.74rem;white-space:nowrap;padding-top:.2rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.timeline-item .btn.icon{min-height:1.6rem;min-width:1.6rem;font-size:.8rem}.composer{display:flex;gap:.5rem;margin-bottom:1rem}.composer input{flex:1 1;min-width:0}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));grid-gap:.5rem;gap:.5rem;margin-bottom:.7rem}.stat-tile{min-height:4.2rem;display:grid;align-content:space-between;grid-gap:.3rem;gap:.3rem;padding:.65rem .7rem;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm)}.stat-tile span{color:var(--faint);font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.stat-tile strong{color:var(--text);font-size:1.05rem;font-family:var(--font-mono-stack);font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat-tile strong small{color:var(--dim);font-size:.68rem;font-weight:400;margin-left:.15rem;font-family:var(--font-body-stack)}.severity-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.12rem .55rem;border-radius:999px;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.severity-chip.ok{background:rgba(60,225,141,.12);color:var(--accent)}.severity-chip.info{background:rgba(79,195,247,.12);color:var(--blue)}.severity-chip.warning{background:rgba(244,185,91,.14);color:var(--amber)}.severity-chip.critical{background:rgba(245,128,111,.14);color:var(--red)}.notif-list{max-height:340px;overflow-y:auto}.notif-item{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.55rem 0;border-bottom:1px solid var(--border);font-size:.85rem}.notif-item:last-child{border-bottom:none}.notif-time{color:var(--faint);white-space:nowrap;font-size:.78rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.settings-section{padding:0;overflow:hidden}.settings-header{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.95rem 1.15rem;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background .15s ease}.settings-header:hover{background:var(--surface-2)}.settings-header h2{display:flex;align-items:center;gap:.5rem}.settings-header .chev{width:1.6rem;height:1.6rem;display:grid;place-items:center;color:var(--dim);border:1px solid var(--border);border-radius:7px;font-size:.72rem;transition:transform .2s ease,color .2s ease}.settings-section.open .settings-header .chev{transform:rotate(90deg);color:var(--accent)}.settings-body{display:none;flex-direction:column;gap:.85rem;padding:.25rem 1.15rem 1.1rem}.settings-section.open .settings-body{display:flex}.settings-group h3{font-size:.68rem;color:var(--dim);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.5rem}.settings-row{display:flex;justify-content:space-between;align-items:center;gap:.65rem;padding:.55rem .75rem;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:.3rem;font-size:.9rem}.settings-row label{flex:1 1;min-width:0}.settings-row input,.settings-row select,.settings-row textarea{flex:1 1 12rem;min-width:0}.settings-row input[type=checkbox]{flex:0 0 auto;width:auto}.settings-row label:has(input[type=checkbox]){flex:0 0 auto;display:inline-flex;align-items:center;gap:.4rem}.settings-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.5rem;flex-wrap:wrap;align-items:center}.settings-status{font-size:.8rem;color:var(--dim);margin-right:auto;align-self:center}.settings-status.err{color:var(--red)}.settings-status.ok{color:var(--accent)}.admin-subnav{position:-webkit-sticky;position:sticky;top:3.6rem;z-index:30;display:flex;gap:.35rem;flex-wrap:wrap;padding:.55rem .7rem;background:rgba(9,17,14,.88);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:999px;width:-moz-fit-content;width:fit-content;max-width:100%}.admin-group-title{margin:.5rem 0 -.3rem .25rem;color:var(--faint);font-size:.68rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.danger-zone{border-color:rgba(245,128,111,.25)}.danger-zone .settings-header h2{color:var(--red)}.autocomplete{position:absolute;top:100%;left:0;right:0;z-index:20;margin-top:.25rem;background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);overflow:hidden;box-shadow:var(--shadow)}.autocomplete-item{display:block;width:100%;text-align:left;padding:.45rem .6rem;background:none;border:none;color:var(--text);font-size:.85rem}.autocomplete-item:hover{background:var(--surface-3)}.share-tag{font-size:.7rem;padding:.1rem .45rem;border-radius:999px;margin-left:.5rem}.share-tag.pending{background:var(--surface-3);color:var(--amber);border:1px solid var(--border-strong)}.public-link-section{margin-top:1rem;border-top:1px solid var(--border);padding-top:1rem}.public-link-url{word-break:break-all;font-size:.8rem;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.5rem .6rem;font-family:var(--font-mono-stack)}.scope-toggles{display:flex;gap:.75rem;flex-wrap:wrap}.scope-toggles label{display:inline-flex;align-items:center;gap:.35rem;font-size:.85rem;white-space:nowrap}.public-banner{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:.6rem .9rem;margin-bottom:1rem;font-size:.85rem;color:var(--dim)}.public-banner strong{color:var(--text)}.public-footer{margin-top:2rem;text-align:center;font-size:.8rem;color:var(--dim)}.upd-badge{display:inline-block;background:var(--amber);color:var(--bg);font-size:.62rem;padding:.12rem .4rem;border-radius:5px;font-weight:700;letter-spacing:.04em;vertical-align:middle}.upd-meta{color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:.85rem;text-align:right;word-break:break-word}.upd-changelog{max-height:220px;overflow-y:auto}.upd-changelog-item{font-size:.8rem;color:var(--text);padding:.4rem 0;border-bottom:1px solid var(--border);display:flex;gap:.75rem;align-items:baseline}.upd-changelog-item:last-child{border-bottom:none}.upd-changelog-item .sha{color:var(--amber);font-family:var(--font-mono-stack);flex-shrink:0;font-size:.75rem}.modal-bg{display:none;position:fixed;inset:0;background:rgba(3,8,6,.66);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:100;align-items:center;justify-content:center;padding:1rem}.modal-bg.show{display:flex}.modal{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);padding:1.5rem;max-width:420px;width:100%;box-shadow:var(--shadow);animation:rise .2s ease both}.modal h3{margin-bottom:.75rem;color:var(--text);font-size:1.05rem;font-family:var(--font-display-stack);font-weight:550}.modal p{color:var(--dim);font-size:.875rem;margin-bottom:1.25rem;line-height:1.5}.modal-actions{display:flex;gap:.5rem;justify-content:flex-end}.profile-apply-diff{display:grid;grid-gap:.4rem;gap:.4rem;margin-bottom:1.25rem}.profile-apply-diff>div{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.profile-apply-diff strong{color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.camera-modal{max-width:min(1200px,96vw)}.camera-modal img{width:100%;max-height:70vh;object-fit:contain;display:block;background:var(--bg);border-radius:var(--radius-sm)}.camera-modal-meta{margin:.6rem 0}.key-box{background:var(--bg-raised);border:1px solid var(--amber);border-radius:var(--radius-sm);padding:.75rem 1rem;font-family:var(--font-mono-stack);font-size:.85rem;word-break:break-all;margin:.75rem 0}.auto-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.auto-add-btn{font-weight:600;letter-spacing:.01em;padding:.4rem .8rem;background:var(--surface-2);border-color:var(--border-strong);color:var(--accent)}.auto-add-btn:hover{background:var(--surface-3);border-color:var(--accent)}.auto-list{display:flex;flex-direction:column;gap:.45rem}.auto-item{display:flex;align-items:center;gap:.75rem;padding:.65rem .8rem;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);transition:opacity .15s ease}.auto-item.disabled{opacity:.55}.auto-item .summary{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:.15rem}.auto-item .summary strong{font-size:.92rem;color:var(--text)}.auto-item .summary .muted{font-size:.78rem;line-height:1.3}.auto-item .actions{display:flex;align-items:center;gap:.4rem;flex-shrink:0}.auto-form{display:flex;flex-direction:column;gap:.85rem;padding:1rem;background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);margin-top:.45rem}.auto-form-row{display:flex;flex-wrap:wrap;gap:.65rem;align-items:flex-end}.auto-form-section{display:flex;flex-direction:column;gap:.55rem;padding:.7rem .85rem;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-sm)}.auto-form-section.off{background:transparent}.auto-form-section-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.auto-form-label{color:var(--dim);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.auto-form-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.25rem}.rule-sentence{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-size:.9rem;color:var(--dim)}.rule-sentence input,.rule-sentence select{width:auto}.rule-sentence input[type=number]{width:6.5rem}.field{display:flex;flex-direction:column;gap:.3rem;flex:1 1 9rem;min-width:0}.field.grow{flex:2 1 14rem}.field.fixed{flex:0 0 auto}.field>span{color:var(--dim);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.inline-row{align-items:center;gap:.5rem;font-size:.85rem}.inline-row,.seg{display:inline-flex}.seg{flex-wrap:wrap;gap:.2rem;padding:.2rem;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-sm);width:-moz-fit-content;width:fit-content}.seg button{background:transparent;color:var(--dim);border:none;border-radius:7px;padding:.35rem .7rem;font-size:.82rem;font-weight:500;transition:background .15s ease,color .15s ease}.seg button:hover{color:var(--text)}.seg button.on{background:var(--accent);color:#05130c;font-weight:600}.switch{position:relative;display:inline-block;width:2.4rem;height:1.35rem;min-height:1.35rem;background:var(--border);border:1px solid var(--border-strong);border-radius:999px;cursor:pointer;padding:0;transition:background .15s ease,border-color .15s ease;flex-shrink:0}.switch.on{background:var(--accent);border-color:var(--accent)}.switch .switch-knob{position:absolute;top:50%;left:.15rem;width:.95rem;height:.95rem;background:#f4faf7;border-radius:50%;transform:translateY(-50%);transition:left .15s ease;box-shadow:0 1px 2px rgba(0,0,0,.35)}.switch.on .switch-knob{left:calc(100% - 1.1rem);background:var(--bg)}.switch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.plant-session-card{display:flex;flex-direction:column;gap:.75rem}.grow-current{display:grid;grid-gap:.8rem;gap:.8rem}.grow-current>div:first-child strong{display:block;color:var(--text);font-size:1.05rem;font-family:var(--font-display-stack);font-weight:550;margin-bottom:.2rem}.grow-badges{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.55rem}.grow-badges span{display:inline-flex;align-items:center;min-height:1.45rem;padding:.15rem .5rem;background:rgba(79,195,247,.1);border:1px solid rgba(79,195,247,.3);border-radius:999px;color:var(--blue);font-size:.7rem;font-weight:700}.grow-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:.5rem;gap:.5rem}.grow-stats>div{min-height:4rem;display:grid;align-content:space-between;grid-gap:.25rem;gap:.25rem;padding:.6rem;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm)}.grow-stats span{color:var(--faint);font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.grow-stats strong{color:var(--text);font-size:1.02rem;font-family:var(--font-mono-stack);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.grow-actions{display:flex;flex-wrap:wrap;gap:.45rem}.grow-history{border-top:1px solid var(--border);padding-top:.75rem}.grow-history-item{padding:.75rem 0;border-bottom:1px solid var(--border)}.grow-history-item:last-child{border-bottom:none}.grow-history-head{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start}.grow-history-head strong{color:var(--text)}.grow-history-actions{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:flex-end}.grow-history-detail{display:grid;grid-gap:.85rem;gap:.85rem;margin-top:.75rem;padding:.85rem;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm)}.grow-detail-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));grid-gap:.5rem;gap:.5rem}.grow-detail-stats>div{display:grid;grid-gap:.2rem;gap:.2rem;padding:.55rem;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-sm)}.grow-detail-stats span,.grow-history-section h4{color:var(--faint);font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.grow-detail-stats strong{color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-family:var(--font-mono-stack)}.grow-history-section{display:grid;grid-gap:.45rem;gap:.45rem}.grow-history-chart{min-height:260px;padding:.25rem 0 0}.grow-history-table-wrap{max-height:300px;overflow:auto;border:1px solid var(--border);border-radius:var(--radius-sm)}.grow-history-table{width:100%;border-collapse:collapse;font-size:.78rem}.grow-history-table td,.grow-history-table th{padding:.45rem .55rem;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}.grow-history-table th{position:-webkit-sticky;position:sticky;top:0;background:var(--bg-raised);color:var(--dim);font-size:.66rem;text-transform:uppercase;letter-spacing:.05em}.grow-history-row{display:flex;justify-content:space-between;gap:.75rem;padding:.55rem 0;border-bottom:1px solid var(--border);font-size:.82rem}.grow-history-row:last-child{border-bottom:none}.grow-history-row>span{color:var(--dim);white-space:nowrap}.grow-history-media{display:flex;gap:.45rem;flex-wrap:wrap}.grow-history-media a{display:inline-flex;padding:.35rem .55rem;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:.8rem}.buffer-banner{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;padding:.7rem .9rem;background:rgba(244,185,91,.1);border:1px solid rgba(244,185,91,.5);border-radius:var(--radius-sm);color:var(--amber);font-size:.86rem}.buffer-banner.suspended{background:rgba(245,128,111,.1);border-color:rgba(245,128,111,.5);color:var(--red)}.buffer-banner span{color:var(--dim);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.buffer-banner span:last-child{margin-left:auto}.device-row{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:.5rem}.device-row h3{font-size:1rem}.device-row .meta{font-size:.8rem;color:var(--dim);margin-top:.2rem}.welcome-card{max-width:520px;margin:8vh auto 0;text-align:center;padding:2.5rem 2rem}.welcome-card h2{font-family:var(--font-display-stack);font-size:2rem;font-weight:550;margin-bottom:.5rem}@media (max-width:1120px){.device-edit-form,.overview-grid,.top-row{grid-template-columns:1fr}}@media (max-width:900px){.device-page{grid-template-columns:1fr;padding:.75rem .75rem 2rem;gap:.75rem}.device-sidebar{position:relative;top:0}.side-nav{grid-template-columns:repeat(5,minmax(0,1fr))}.side-nav-item{position:relative;min-height:3.6rem;justify-content:center;text-align:center;flex-direction:column;gap:.25rem;padding:.4rem .25rem}.side-nav-item .alert-badge{position:absolute;top:.3rem;right:.4rem;margin-left:0}.side-nav-text small,.sidebar-stats{display:none}.side-nav-text span{font-size:.74rem}.admin-subnav{top:3.4rem}}@media (max-width:560px){.container{padding:1.25rem 1rem 2.5rem}.plant-grid{grid-template-columns:1fr}.device-hero{align-items:flex-start;flex-direction:column}.device-hero-actions{width:100%}.device-hero-actions .btn{flex:1 1}.side-nav{grid-template-columns:repeat(3,minmax(0,1fr))}.sensor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sensor-card{min-height:96px;padding:.75rem}.chart-controls{align-items:stretch;flex-direction:column}.chart-controls .left{justify-content:space-between}.time-btns{display:grid;grid-template-columns:repeat(4,1fr)}.chart-multiples{grid-template-columns:1fr}.notif-item,.settings-row{align-items:stretch;flex-direction:column}.settings-row input,.settings-row select,.settings-row textarea{width:100%;flex:0 0 auto;min-height:2.4rem}.settings-row textarea{min-height:12rem}.settings-row input[type=checkbox]{width:auto;min-height:0;align-self:flex-start}.settings-row label:has(input[type=checkbox]){width:max-content;flex-direction:row}.settings-row>.btn{width:100%}.settings-actions{justify-content:stretch}.settings-actions .btn,.settings-actions a.btn{flex:1 1 auto;text-align:center}.notif-time,.settings-status{margin-left:0;min-width:0}.buffer-banner span:last-child{margin-left:0}.timeline-item{grid-template-columns:1.6rem minmax(0,1fr)}.timeline-time{grid-column:2;padding-top:0}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important}}