:root{--color-bg-base:#141226;--color-bg-elevated:#1a1730;--color-bg-raised:#221d3d;--color-surface:#1e1a378c;--color-surface-hi:#282248a6;--color-surface-soft:#231e4159;--color-line:#c8beff14;--color-line-emphasis:#c8beff29;--color-text:#e8e4f5;--color-text-dim:#bfb8d8;--color-text-muted:#938cb0;--color-text-disabled:#6a6485;--color-primary:#9eb0ff;--color-primary-strong:#b8c4ff;--color-primary-soft:#c4b5fd;--color-primary-bg:#9eb0ff1f;--color-primary-bg-hi:#9eb0ff38;--color-primary-border:#9eb0ff66;--color-ok:#7fd9a6;--color-ok-bg:#7fd9a624;--color-ok-bg-strong:#7fd9a638;--color-ok-border:#7fd9a640;--color-warn:#f4c56b;--color-warn-bg:#f4c56b24;--color-warn-bg-strong:#f4c56b38;--color-warn-border:#f4c56b40;--color-bad:#f08b8b;--color-bad-bg:#f08b8b24;--color-bad-bg-strong:#f08b8b38;--color-bad-border:#f08b8b40;--color-dawn:#f4c56b;--color-noon:#9eb0ff;--color-dusk:#d29bff;--color-night:#c8beff2e;--font-body:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display:"Manrope", "Inter", system-ui, sans-serif;--font-data:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--text-xs:11px;--text-sm:12px;--text-base:14px;--text-md:15px;--text-lg:18px;--text-xl:22px;--text-2xl:28px;--text-3xl:32px;--text-display:56px;--leading-tight:1.15;--leading-snug:1.3;--leading-normal:1.5;--tracking-tight:-.5px;--tracking-normal:0;--tracking-wide:.4px;--tracking-caps:1.2px;--weight-light:300;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:28px;--space-8:32px;--space-10:40px;--space-12:48px;--radius-xs:6px;--radius-sm:10px;--radius-md:12px;--radius-lg:14px;--radius-xl:18px;--radius-2xl:20px;--radius-pill:9999px;--blur-card:blur(14px);--blur-topbar:blur(14px);--shadow-glow-primary:0 0 14px #9eb0ff47;--shadow-glow-ok:0 0 10px #7fd9a673;--shadow-glow-warn:0 0 10px #f4c56b73;--shadow-glow-bad:0 0 10px #f08b8b73;--shadow-glow-dusk:0 0 10px #d29bff73;--motion-fast:.12s;--motion-base:.18s;--motion-slow:.32s;--ease-default:cubic-bezier(.32, .72, .32, 1);--ease-in-out:cubic-bezier(.45, .05, .55, .95);--loop-busy:.7s;--loop-drip:1.6s;--loop-pulse:2.4s;--loop-work:3.2s;--loop-ambient:4s;--z-base:0;--z-elevated:10;--z-sticky:20;--z-overlay:30;--z-modal:40;--z-toast:50;--container-max:1440px;--container-pad-x:var(--space-8);--container-pad-y:var(--space-6);--grid-gap:var(--space-6)}html,body{background:var(--color-bg-base);color:var(--color-text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}.app-bg{background-color:#0000;background-image:radial-gradient(1000px 700px at 85% -15%,#9eb0ff1f,#0000 60%),radial-gradient(900px 600px at -10% 100%,#c4b5fd1a,#0000 60%),radial-gradient(600px 400px at 50% 120%,#7fd9a60d,#0000 60%),linear-gradient(#141226 0%,#17142b 60%,#121024 100%);background-position:0 0,0 0,0 0,0 0;background-repeat:repeat,repeat,repeat,repeat;background-size:auto,auto,auto,auto;background-attachment:fixed;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;min-height:100dvh}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}img{max-width:100%;display:block}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-line-emphasis);border-radius:var(--radius-pill)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.32}}@keyframes spin{to{transform:rotate(360deg)}}.app-bg{background-color:#0000;background-image:radial-gradient(1000px 700px at 85% -15%,#9eb0ff29,#0000 60%),radial-gradient(900px 600px at -10% 100%,#c4b5fd21,#0000 60%),radial-gradient(600px 400px at 50% 120%,#7fd9a60f,#0000 60%),linear-gradient(#161330 0%,#1a1633 60%,#131127 100%);background-position:0 0,0 0,0 0,0 0;background-repeat:repeat,repeat,repeat,repeat;background-size:auto,auto,auto,auto;background-attachment:fixed;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;min-height:100dvh;position:relative;overflow-x:hidden}.app-bg:before{content:"";pointer-events:none;z-index:0;filter:blur(20px);background:radial-gradient(500px 300px at 30% 20%,#9eb0ff1a,#0000 60%),radial-gradient(400px 280px at 70% 60%,#c4b5fd14,#0000 60%);animation:22s ease-in-out infinite alternate app-bg-aurora;position:fixed;inset:0}@keyframes app-bg-aurora{0%{opacity:.7;transform:translate(0)}to{opacity:1;transform:translate(40px,-30px)}}.app-bg>.shell,.app-bg>*{z-index:2;position:relative}.container{max-width:var(--container-max);padding:var(--container-pad-y) var(--container-pad-x);margin:0 auto}.page-header{margin-bottom:var(--space-6);justify-content:space-between;align-items:center;display:flex}.page-title{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:var(--weight-bold);color:var(--color-text);letter-spacing:var(--tracking-tight)}.page-subtitle{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:var(--space-1)}.center-page{justify-content:center;align-items:center;min-height:100dvh;display:flex}.shell{gap:var(--grid-gap);max-width:var(--container-max);padding:var(--space-6) var(--space-6) var(--space-12);grid-template-columns:240px minmax(0,1fr);margin:0 auto;display:grid}.shell-main{min-width:0}@media (width<=900px){.shell{gap:var(--space-3);padding:calc(var(--space-3) + env(safe-area-inset-top)) calc(var(--space-3) + env(safe-area-inset-right))  calc(64px + var(--space-6) + env(safe-area-inset-bottom)) calc(var(--space-3) + env(safe-area-inset-left));grid-template-columns:minmax(0,1fr)}}.sidebar{top:var(--space-6);padding:var(--space-5) var(--space-3) var(--space-3);background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-2xl);-webkit-backdrop-filter:var(--blur-card);backdrop-filter:var(--blur-card);flex-direction:column;align-self:start;gap:2px;max-height:calc(100vh - 48px);display:flex;position:sticky;overflow-y:auto}.sb-brand{align-items:center;gap:var(--space-3);padding:var(--space-1) var(--space-2) var(--space-4);border-bottom:1px solid var(--color-line);margin-bottom:var(--space-3);display:flex}.sb-brand .mark{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--color-primary-soft);background:linear-gradient(135deg,#9eb0ff4d,#c4b5fd26);border:1px solid #c4b5fd40;flex-shrink:0;place-items:center;display:grid;position:relative}.sb-brand .mark svg{width:18px;height:18px}.sb-brand .mark:after{content:"";border:1px solid var(--color-primary-soft);pointer-events:none;animation:sb-brand-ping var(--loop-ambient) ease-out infinite;border-radius:13px;position:absolute;inset:-3px}@keyframes sb-brand-ping{0%{opacity:.7;transform:scale(.9)}80%,to{opacity:0;transform:scale(1.5)}}.sb-brand .wordmark{width:auto;height:16px;display:block}.sb-brand .sub{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:3px}.sb-group{font-family:var(--font-display);letter-spacing:1.6px;color:var(--color-text-disabled);text-transform:uppercase;padding:var(--space-4) var(--space-3) var(--space-2);font-size:10px;font-weight:var(--weight-semibold)}.sb-group:first-of-type{padding-top:var(--space-1)}.sb-item{align-items:center;gap:var(--space-3);padding:10px var(--space-3);border-radius:var(--radius-sm);color:var(--color-text-dim);transition:all var(--motion-fast) var(--ease-default);cursor:pointer;border:1px solid #0000;font-size:13.5px;text-decoration:none;display:flex;position:relative}.sb-item svg{width:18px;height:18px;color:var(--color-text-muted);flex-shrink:0}.sb-item:hover{background:var(--color-surface-soft);color:var(--color-text)}.sb-item:hover svg{color:var(--color-text-dim)}.sb-item.active{background:var(--color-primary-bg);color:var(--color-primary-strong);border-color:#9eb0ff47;box-shadow:inset 0 0 12px #9eb0ff14}.sb-item.active svg{color:var(--color-primary-strong)}.sb-item .count{border-radius:var(--radius-pill);background:var(--color-warn-bg-strong);color:var(--color-warn);font-size:10px;font-weight:var(--weight-semibold);margin-left:auto;padding:2px 7px}.sb-item .count.ok{background:var(--color-ok-bg-strong);color:var(--color-ok)}.sb-footer-link{padding:var(--space-3);border-top:1px solid var(--color-line);gap:var(--space-3);color:inherit;transition:background var(--motion-fast) var(--ease-default);border-radius:0;align-items:center;margin-top:auto;text-decoration:none;display:flex}.sb-footer-link:hover,.sb-footer-link.active{background:var(--color-surface-soft)}.sb-footer-link .avatar{width:34px;height:34px;color:var(--color-bg-base);font-weight:var(--weight-bold);font-size:13px;font-family:var(--font-display);background:linear-gradient(135deg,#8b9fff,#c4b5fd);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.sb-footer-link .who{flex:1;min-width:0}.sb-footer-link .uname{color:var(--color-text);font-size:13px;font-weight:var(--weight-medium);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sb-footer-link .umail{font-size:var(--text-xs);color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sb-more{color:var(--color-text-dim);cursor:pointer;font:inherit;background:0 0;border:0;display:none}@media (width<=900px){.sidebar{z-index:50;padding:6px 4px max(6px, env(safe-area-inset-bottom));border-bottom:0;border-left:0;border-right:0;border-top:1px solid var(--color-line);background:var(--color-surface-hi);border-radius:0;flex-direction:row;align-items:stretch;gap:0;max-height:none;position:fixed;inset:auto 0 0;overflow:visible}.sidebar .sb-brand,.sidebar .sb-group,.sidebar .sb-footer-link,.sidebar .sb-item-overflow{display:none}.sidebar .sb-section{display:contents}.sidebar .sb-item{border-radius:var(--radius-sm);color:var(--color-text-muted);text-align:center;border:0;flex-direction:column;flex:1;justify-content:center;gap:3px;min-width:0;padding:6px 2px;font-size:10px;line-height:1}.sidebar .sb-item svg{width:22px;height:22px}.sidebar .sb-item:hover{color:var(--color-text);background:0 0}.sidebar .sb-item.active{color:var(--color-primary-strong);box-shadow:none;background:0 0;border:0}.sidebar .sb-item.active svg{color:var(--color-primary-strong)}.sidebar .sb-label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.sidebar .sb-more{color:var(--color-text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:6px 2px;font-size:10px;line-height:1;display:flex}.sidebar .sb-more svg{width:22px;height:22px}}.topbar{align-items:center;gap:var(--space-5);padding:var(--space-3) var(--space-5);margin-bottom:var(--space-6);background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-2xl);-webkit-backdrop-filter:var(--blur-topbar);backdrop-filter:var(--blur-topbar);z-index:var(--z-sticky);display:flex;position:relative}.topbar .page-name{font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--text-lg);letter-spacing:var(--tracking-tight)}.topbar .spacer{flex:1}.topbar .time-now{color:var(--color-text-dim);font-size:var(--text-base);font-weight:var(--weight-medium)}.top-btn{background:var(--color-surface-soft);border:1px solid var(--color-line-emphasis);width:38px;height:38px;color:var(--color-text-muted);cursor:pointer;transition:all var(--motion-fast) var(--ease-default);border-radius:11px;place-items:center;display:grid}.top-btn:hover{color:var(--color-primary-strong);border-color:#9eb0ff59}.top-btn svg{width:18px;height:18px}.link-state{font-family:var(--font-data);font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-bad);align-items:center;gap:7px;display:inline-flex}.link-state .dot{background:var(--color-text-disabled);border-radius:50%;width:6px;height:6px}.link-state[data-live=true] .dot{animation:pulse var(--loop-pulse) var(--ease-in-out) infinite}.link-state[data-live=false] .dot{background:var(--color-bad);box-shadow:0 0 8px var(--color-bad)}.topbar .time-now{color:var(--color-text-dim);font-size:var(--text-base);font-weight:var(--weight-medium);font-variant-numeric:tabular-nums}.top-btn{position:relative}@media (width<=900px){.topbar .time-now,.topbar .link-state[data-live=true]{display:none}}.topbar-mark{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--color-primary-soft);background:linear-gradient(135deg,#9eb0ff4d,#c4b5fd26);border:1px solid #c4b5fd40;flex-shrink:0;place-items:center;text-decoration:none;display:none}.topbar-mark svg{width:16px;height:16px}@media (width<=900px){.topbar{gap:var(--space-3);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-3);border-radius:var(--radius-xl)}.topbar .page-name{font-size:var(--text-base)}.topbar-mark{display:grid}.top-btn{width:34px;height:34px}}.page-loading{min-height:240px;animation:page-loading-in var(--motion-base) var(--ease-default) .15s both;place-items:center;display:grid}@keyframes page-loading-in{0%{opacity:0}to{opacity:1}}.page-loading.full{min-height:100dvh}.page-loading-track{background:var(--color-line);border-radius:2px;width:210px;height:3px;display:block;position:relative;overflow:hidden}.page-loading-track i{background:linear-gradient(90deg, var(--color-primary), var(--color-primary-soft));width:40%;box-shadow:var(--shadow-glow-primary);border-radius:2px;animation:1.3s linear infinite page-loading-run;position:absolute;top:0;bottom:0;left:-40%}@keyframes page-loading-run{0%{left:-40%}to{left:100%}}@media (prefers-reduced-motion:reduce){.page-loading{animation:none}.page-loading-track i{width:100%;animation:none;left:0}}.more-sheet-backdrop{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:more-sheet-fade var(--motion-fast) var(--ease-default);background:#0a08188c;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.more-sheet{background:var(--color-bg-elevated);border-top-left-radius:var(--radius-2xl);border-top-right-radius:var(--radius-2xl);border:1px solid var(--color-line);width:100%;max-width:520px;padding:8px var(--space-4) max(var(--space-4), env(safe-area-inset-bottom));gap:var(--space-3);animation:more-sheet-slide var(--motion-base) var(--ease-default);border-bottom:0;flex-direction:column;display:flex;box-shadow:0 -20px 40px #00000059}.more-sheet-grip{border-radius:var(--radius-pill);background:var(--color-line-emphasis);width:36px;height:4px;margin:0 auto var(--space-2)}.more-sheet-header{align-items:center;gap:var(--space-3);padding:var(--space-1) var(--space-2) var(--space-3);border-bottom:1px solid var(--color-line);display:flex}.more-sheet-header .mark{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--color-primary-soft);background:linear-gradient(135deg,#9eb0ff4d,#c4b5fd26);border:1px solid #c4b5fd40;flex-shrink:0;place-items:center;display:grid}.more-sheet-header .mark svg{width:18px;height:18px}.more-sheet-header .title{font-family:var(--font-display);font-size:15px;font-weight:var(--weight-bold);color:var(--color-text);line-height:1.1}.more-sheet-header .subtitle{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:3px}.more-sheet-nav{flex-direction:column;display:flex}.more-sheet-item{align-items:center;gap:var(--space-3);padding:14px var(--space-2);color:var(--color-text);border-radius:var(--radius-sm);transition:background var(--motion-fast) var(--ease-default);text-decoration:none;display:flex}.more-sheet-item:hover,.more-sheet-item:active{background:var(--color-surface-soft)}.more-sheet-item .icon{width:22px;height:22px;color:var(--color-text-muted);flex-shrink:0}.more-sheet-item .label{font-size:var(--text-base);flex:1}.more-sheet-item .chev{width:16px;height:16px;color:var(--color-text-disabled);flex-shrink:0}.more-sheet-logout{margin-top:var(--space-2);justify-content:center;align-items:center;gap:var(--space-2);border:1px solid var(--color-line);border-radius:var(--radius-md);color:var(--color-bad);font-size:var(--text-base);cursor:pointer;transition:background var(--motion-fast) var(--ease-default), border-color var(--motion-fast) var(--ease-default);background:0 0;padding:14px;font-family:inherit;display:flex}.more-sheet-logout:hover,.more-sheet-logout:active{background:var(--color-bad-bg,#ef444414);border-color:var(--color-bad)}.more-sheet-logout svg{width:18px;height:18px}@keyframes more-sheet-fade{0%{opacity:0}to{opacity:1}}@keyframes more-sheet-slide{0%{transform:translateY(100%)}to{transform:translateY(0)}}.card{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-xl);padding:var(--space-5) var(--space-6);-webkit-backdrop-filter:var(--blur-card);backdrop-filter:var(--blur-card);transition:transform var(--motion-base) var(--ease-default), border-color var(--motion-base) var(--ease-default), box-shadow var(--motion-base) var(--ease-default);position:relative}.plant-hero-card[data-stage=seedling]{background:linear-gradient(180deg, #f4c56b1a, transparent 70%), var(--color-surface);border-color:#f4c56b38}.plant-hero-card[data-stage=vegetative]{background:linear-gradient(180deg, #7fd9a61a, transparent 70%), var(--color-surface);border-color:#7fd9a638}.plant-hero-card[data-stage=flowering]{background:linear-gradient(180deg, #d29bff1c, transparent 70%), var(--color-surface);border-color:#d29bff38}.plant-hero-card[data-stage=harvest]{background:linear-gradient(180deg, #9eb0ff1c, transparent 70%), var(--color-surface);border-color:#9eb0ff38}.card.interactive,a.card,button.card{cursor:pointer;text-align:inherit}.card.interactive:hover,a.card:hover,button.card:hover{border-color:var(--color-primary-border);box-shadow:var(--shadow-glow-primary);transform:translateY(-2px)}.card-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.page-section-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text-muted);margin:0}.card-title{font-family:var(--font-display);font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--color-text)}.card-section-title{font-family:var(--font-display);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:var(--tracking-caps)}.subsection-title{font-family:var(--font-display);font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--color-text-muted);margin:0}.subsection-title.muted{font-size:var(--text-sm);color:var(--color-text-muted);font-weight:var(--weight-medium)}.metric-heading{font-family:var(--font-display);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-muted);align-items:center;gap:6px;margin-bottom:2px;display:flex}.card-section-divider{border-top:1px solid var(--color-line);padding-top:var(--space-4)}.schedule-row{flex-direction:row;align-items:stretch;gap:0;display:flex}.schedule-row>section{min-width:0;padding:0 var(--space-4);flex:1}.schedule-row>section:first-child{padding-left:0}.schedule-row>section:last-child{padding-right:0}.schedule-row>.schedule-light{text-align:center;flex:none;min-width:140px}.schedule-row>.schedule-light .subsection-title{text-align:left}.schedule-row>section+section{border-left:1px solid var(--color-line)}@media (width<=760px){.schedule-row{gap:var(--space-4);flex-direction:column}.schedule-row>section{padding-left:0;padding-right:0}.schedule-row>section+section{border-left:none;border-top:1px solid var(--color-line);padding-top:var(--space-4)}}.guide-section{padding:0}.guide-section-summary{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4);cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none;display:flex}.guide-section-summary::-webkit-details-marker{display:none}.guide-section-chevron{color:var(--color-text-muted);transition:transform var(--motion-fast) var(--ease-default);flex-shrink:0}.guide-section[open] .guide-section-chevron{transform:rotate(0)}.guide-section:not([open]) .guide-section-chevron{transform:rotate(-90deg)}.guide-section[open] .guide-section-summary{padding-bottom:0}.guide-section[open]>p,.guide-section[open]>textarea{margin:var(--space-3) var(--space-4) var(--space-4);padding:0}.guide-section[open]>textarea{width:calc(100% - var(--space-4) * 2);padding:var(--space-3) var(--space-4)}.card-actions{top:var(--space-3);right:var(--space-3);z-index:2;align-items:center;gap:4px;display:flex;position:absolute}.card-action-btn{border-radius:var(--radius-sm);background:var(--color-surface-soft);border:1px solid var(--color-line);width:28px;height:28px;color:var(--color-text-muted);cursor:pointer;transition:all var(--motion-fast) var(--ease-default);place-items:center;display:grid}.card-action-btn:hover{background:var(--color-surface-hi);border-color:var(--color-line-emphasis);color:var(--color-text)}.card-action-btn.danger:hover{background:var(--color-bad-bg);border-color:var(--color-bad-border);color:var(--color-bad)}.card-action-btn svg{width:14px;height:14px}.card-action-btn.spinning svg{animation:spin var(--loop-busy) linear infinite}.section-head{align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.section-head-title{align-items:baseline;gap:var(--space-3);min-width:0;display:flex}.section-head-meta{font-family:var(--font-data);font-size:var(--text-xs);letter-spacing:.4px;color:var(--color-text-disabled);font-variant-numeric:tabular-nums;white-space:nowrap}.section-head:last-child{margin-bottom:0}.section-head-toggle{align-items:center;gap:var(--space-3);cursor:pointer;min-width:0;color:inherit;text-align:left;background:0 0;border:0;flex:1;padding:0;display:flex}.section-head-chevron{color:var(--color-text-muted);transition:transform var(--motion-fast) var(--ease-default);flex-shrink:0;margin-left:auto}.section-head-chevron.open{transform:rotate(180deg)}.section-head-actions{flex-shrink:0;margin-left:auto}.page-section+.page-section{margin-top:var(--space-8)}.btn{font-family:var(--font-body);font-weight:var(--weight-medium);font-size:var(--text-base);padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);cursor:pointer;border:1px solid var(--color-line-emphasis);background:var(--color-surface-soft);color:var(--color-text-dim);align-items:center;gap:var(--space-2);transition:all var(--motion-base) var(--ease-default);display:inline-flex}.btn:hover{color:var(--color-text);border-color:#9eb0ff59}.btn:active{transform:scale(.98)}.btn.primary{border-color:var(--color-primary-border);color:#f4f2ff;background:linear-gradient(135deg,#9eb0ff38,#c4b5fd2e)}.btn.primary:hover{box-shadow:var(--shadow-glow-primary);border-color:var(--color-primary-strong)}.btn.ghost{color:var(--color-text-muted);background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--color-surface-soft);color:var(--color-text);border-color:var(--color-line)}.btn.danger{background:var(--color-bad-bg);border-color:var(--color-bad-border);color:var(--color-bad)}.btn.danger:hover{background:var(--color-bad-bg-strong);border-color:var(--color-bad)}.btn.ok{background:var(--color-ok-bg-strong);border-color:var(--color-ok-border);color:var(--color-ok)}.btn.bad{background:var(--color-bad-bg-strong);border-color:var(--color-bad-border);color:var(--color-bad)}.btn:disabled,.btn.disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn svg{width:16px;height:16px}.btn-row{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.icon-btn{border-radius:var(--radius-sm);background:var(--color-surface-soft);border:1px solid var(--color-line-emphasis);width:38px;height:38px;color:var(--color-text-muted);cursor:pointer;transition:all var(--motion-fast) var(--ease-default);place-items:center;display:grid}.icon-btn:hover{color:var(--color-primary-strong);border-color:#9eb0ff59}.input{width:100%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-line-emphasis);background:var(--color-bg-raised);color:var(--color-text);font-family:var(--font-body);font-size:var(--text-base);transition:border-color var(--motion-fast) var(--ease-default)}.input::placeholder{color:var(--color-text-disabled)}.input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-bg);outline:none}.input.code{text-align:center;font-size:var(--text-lg);letter-spacing:4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.input-row{gap:var(--space-3);display:flex}.input-row .input{flex:1}.form-stack{gap:var(--space-3);flex-direction:column;display:flex}.form-label{font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-1)}.input::-webkit-calendar-picker-indicator{filter:invert(.85);opacity:.7;cursor:pointer}.input::-webkit-calendar-picker-indicator:hover{opacity:1}.input.time-compact{padding:var(--space-2) var(--space-3);font-variant-numeric:tabular-nums}.input[type=number]{appearance:textfield}.input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}select.input{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23938CB0' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-position:right var(--space-3) center;padding-right:calc(var(--space-3) * 2 + 14px);background-size:14px}select.input:hover{border-color:var(--color-line-strong,var(--color-line-emphasis))}select.input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-bg)}select.input:disabled{opacity:.5;cursor:not-allowed}select.input option{background:var(--color-bg-elevated);color:var(--color-text);padding:6px 10px}select.input option:checked{background:var(--color-primary-bg);color:var(--color-text)}.select-trigger{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-line-emphasis);background:var(--color-bg-raised);color:var(--color-text);font-family:var(--font-body);font-size:var(--text-base);cursor:pointer;justify-content:space-between;align-items:center;gap:var(--space-3);min-width:120px;transition:border-color var(--motion-fast) var(--ease-default);display:inline-flex}.select-trigger:hover:not([data-disabled]){border-color:var(--color-line-strong,var(--color-line-emphasis))}.select-trigger[data-state=open],.select-trigger:focus-visible{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-bg);outline:none}.select-trigger[data-placeholder]{color:var(--color-text-disabled)}.select-trigger[data-disabled]{opacity:.5;cursor:not-allowed}.select-trigger-icon{color:var(--color-text-muted);flex-shrink:0;display:inline-flex}.select-content{background:var(--color-bg-elevated);border:1px solid var(--color-line-emphasis);border-radius:var(--radius-md);z-index:100;min-width:var(--radix-select-trigger-width);max-height:var(--radix-select-content-available-height);overflow:hidden;box-shadow:0 8px 24px #0006}.select-viewport{padding:var(--space-2)}.select-item{padding:var(--space-2) var(--space-3) var(--space-2) calc(var(--space-3) + 18px);border-radius:var(--radius-sm);font-size:var(--text-base);color:var(--color-text);cursor:pointer;-webkit-user-select:none;user-select:none;outline:none;align-items:center;display:flex;position:relative}.select-item[data-highlighted]{background:var(--color-primary-bg);color:var(--color-text)}.select-item[data-state=checked]{color:var(--color-primary-strong,var(--color-primary))}.select-item[data-disabled]{color:var(--color-text-disabled);cursor:not-allowed}.select-item-indicator{left:var(--space-2);width:14px;color:var(--color-primary-strong,var(--color-primary));justify-content:center;align-items:center;display:inline-flex;position:absolute}.dropdown-menu-content{background:var(--color-bg-elevated);border:1px solid var(--color-line-emphasis);border-radius:var(--radius-md);padding:var(--space-2);z-index:100;min-width:220px;box-shadow:0 8px 24px #0006}.dropdown-menu-item{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-base);color:var(--color-text);cursor:pointer;-webkit-user-select:none;user-select:none;outline:none;display:flex}.dropdown-menu-item[data-highlighted]{background:var(--color-primary-bg)}.dropdown-menu-item[data-disabled]{color:var(--color-text-disabled);cursor:not-allowed}.dropdown-menu-item-hint{font-size:var(--text-xs);color:var(--color-text-muted);margin-left:auto}.dropdown-menu-separator{background:var(--color-line);height:1px;margin:var(--space-1) 0}.pill{font-size:var(--text-sm);border-radius:var(--radius-pill);font-weight:var(--weight-medium);background:var(--color-surface-soft);border:1px solid var(--color-line-emphasis);color:var(--color-text-dim);align-items:center;gap:6px;padding:5px 11px;display:inline-flex}.pill.ok{background:var(--color-ok-bg-strong);color:var(--color-ok);border-color:var(--color-ok-border)}.pill.warn{background:var(--color-warn-bg-strong);color:var(--color-warn);border-color:var(--color-warn-border)}.pill.bad{background:var(--color-bad-bg-strong);color:var(--color-bad);border-color:var(--color-bad-border)}.pill.primary{background:var(--color-primary-bg-hi);color:var(--color-primary-soft);border-color:#9eb0ff4d}.pill .dot{background:currentColor;border-radius:50%;width:6px;height:6px}.pill-row{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.status-row{border-radius:var(--radius-lg);border:1px solid var(--color-line-emphasis);grid-template-columns:40px 1fr auto;align-items:center;gap:14px;padding:14px 16px;display:grid}.status-row .ico-wrap{border-radius:11px;place-items:center;width:40px;height:40px;display:grid}.status-row .ico-wrap svg{width:20px;height:20px}.status-row .name{font-weight:var(--weight-semibold);font-size:var(--text-base);color:var(--color-text)}.status-row .detail{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:2px}.status-row.ok{background:var(--color-ok-bg);border-color:var(--color-ok-border)}.status-row.ok .ico-wrap{background:var(--color-ok-bg-strong);color:var(--color-ok)}.status-row.warn{background:var(--color-warn-bg);border-color:var(--color-warn-border)}.status-row.warn .ico-wrap{background:var(--color-warn-bg-strong);color:var(--color-warn)}.status-row.bad{background:var(--color-bad-bg);border-color:var(--color-bad-border)}.status-row.bad .ico-wrap{background:var(--color-bad-bg-strong);color:var(--color-bad)}.readout{border-radius:var(--radius-lg);background:var(--color-surface-soft);border:1px solid var(--color-line-emphasis);padding:14px 16px}.readout .lbl{font-size:var(--text-sm);color:var(--color-text-muted);letter-spacing:.5px;text-transform:uppercase;margin-bottom:6px}.readout .val{font-family:var(--font-display);font-weight:var(--weight-semibold);font-size:var(--text-xl);color:var(--color-text)}.readout .hint{font-size:var(--text-sm);color:var(--color-text-dim);margin-top:var(--space-1)}.readout-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(min(180px,100%),1fr));display:grid}.gauge{flex-direction:column;gap:6px;display:flex}.gauge[data-trip=true] .gauge-track{margin-top:12px}.gauge-top{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.gauge-cap{font-family:var(--font-data);font-size:10px;font-weight:var(--weight-medium);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-text-muted)}.gauge-val{font-family:var(--font-data);font-size:var(--text-lg);font-weight:var(--weight-light);color:var(--color-text);font-variant-numeric:tabular-nums;white-space:nowrap}.gauge-val[data-out=true]{color:var(--color-bad)}.gauge-unit{color:var(--color-text-muted);margin-left:2px;font-size:10px}.gauge-sep.live{animation:pulse var(--loop-pulse) var(--ease-in-out) infinite}.gauge-track{background:var(--color-line);border-radius:2px;height:10px;position:relative}.gauge-band{opacity:.28;border-radius:2px;position:absolute;top:0;bottom:0}.gauge-edge{opacity:.45;background:currentColor;width:1px;position:absolute;top:-4px;bottom:-4px}.gauge-now{background:var(--color-text);border-radius:1px;width:2px;margin-left:-1px;position:absolute;top:-5px;bottom:-5px}.gauge-now[data-out=true]{background:var(--color-bad);box-shadow:var(--shadow-glow-bad)}.gauge-trip{border-left:4px solid #0000;border-right:4px solid #0000;border-top:5px solid var(--color-primary);width:0;height:0;margin-left:-4px;position:absolute;top:-6px}.gauge-trip-label{font-family:var(--font-data);letter-spacing:.4px;color:var(--color-primary);white-space:nowrap;font-size:9px;position:absolute;top:-15px}.gauge-scale{justify-content:space-between;gap:var(--space-2);font-family:var(--font-data);letter-spacing:.4px;color:var(--color-text-disabled);font-variant-numeric:tabular-nums;font-size:9px;display:flex}.gauge-scale .aim{color:var(--color-ok)}.day-lane{flex-direction:column;gap:5px;display:flex}.day-lane-track{height:14px;position:relative}.day-lane-base{background:var(--color-line);border-radius:2px;position:absolute;inset:0}.day-lane-plan,.day-lane-fact,.day-lane-miss{border-radius:1px;position:absolute;top:0;bottom:0}.day-lane-plan{opacity:.22}.day-lane-miss{background:var(--color-bad);opacity:.75}.day-lane-now{background:var(--color-text);border-radius:1px;width:1.5px;margin-left:-.75px;position:absolute;top:-3px;bottom:-3px}.day-lane-scale{height:13px;font-family:var(--font-data);letter-spacing:.4px;color:var(--color-text-disabled);font-variant-numeric:tabular-nums;font-size:9px;position:relative}.day-lane-scale span{position:absolute;top:0;transform:translate(-50%)}.day-lane-scale span:first-child{transform:none}.day-lane-scale span:last-child{transform:translate(-100%)}.day-lane-note{justify-content:space-between;gap:var(--space-3);font-family:var(--font-data);letter-spacing:.4px;color:var(--color-text-disabled);font-variant-numeric:tabular-nums;font-size:9px;display:flex}.corridor{flex-direction:column;gap:7px;display:flex}.corridor-top{align-items:baseline;gap:var(--space-3);display:flex}.corridor-cap{font-family:var(--font-data);font-size:10px;font-weight:var(--weight-medium);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-text-muted)}.corridor-live{font-family:var(--font-data);font-size:var(--text-xs);color:var(--color-text-disabled);font-variant-numeric:tabular-nums;margin-left:auto}.corridor-live b{color:var(--color-text-dim);font-weight:var(--weight-regular)}.corridor-track{background:var(--color-line);touch-action:none;border-radius:2px;height:12px;margin:26px 0 2px;position:relative}.corridor-band{opacity:.5;border-radius:2px;position:absolute;top:0;bottom:0}.corridor-grab{background:var(--color-bg-raised);border:1px solid var(--color-line-emphasis);cursor:ew-resize;touch-action:none;width:10px;transition:border-color var(--motion-fast) var(--ease-default);border-radius:3px;margin-left:-5px;position:absolute;top:-5px;bottom:-5px}.corridor-grab:before{content:"";position:absolute;inset:-9px -10px}.corridor-grab:after{content:"";background:var(--color-text-disabled);width:1px;position:absolute;top:5px;bottom:5px;left:3.5px}.corridor-grab:hover,.corridor-grab:focus-visible{border-color:var(--color-primary);outline:none}.corridor-grab[data-over=true]{border-color:var(--color-primary);background:var(--color-primary-bg-hi)}.corridor-now{background:var(--color-text);border-radius:1px;width:2px;margin-left:-1px;position:absolute;top:-6px;bottom:-6px}.corridor-trip{border-left:5px solid #0000;border-right:5px solid #0000;border-top:6px solid var(--color-primary);cursor:ew-resize;touch-action:none;width:0;height:0;margin-left:-5px;position:absolute;top:-8px}.corridor-trip:before{content:"";position:absolute;inset:-12px -9px -8px}.corridor-trip:hover,.corridor-trip:focus-visible{border-top-color:var(--color-primary-strong);outline:none}.corridor-bubble{border-radius:var(--radius-xs);background:var(--color-bg-raised);border:1px solid var(--color-line-emphasis);font-family:var(--font-data);color:var(--color-text);font-variant-numeric:tabular-nums;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--motion-fast) var(--ease-default);padding:2px 7px;font-size:10px;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.corridor-trip .corridor-bubble{color:var(--color-primary-strong);bottom:10px}.corridor-grab:hover .corridor-bubble,.corridor-grab:focus-visible .corridor-bubble,.corridor-trip:hover .corridor-bubble,.corridor-trip:focus-visible .corridor-bubble,.ilane-edge:hover .corridor-bubble,.ilane-span:hover .corridor-bubble{opacity:1}.corridor-ends{font-family:var(--font-data);letter-spacing:.4px;color:var(--color-text-disabled);font-variant-numeric:tabular-nums;justify-content:space-between;font-size:9px;display:flex}.ilane{flex-direction:column;gap:5px;display:flex}.ilane-track{background:var(--color-line);touch-action:none;border-radius:2px;height:18px;position:relative}.ilane-span{opacity:.85;cursor:grab;touch-action:none;border-radius:2px;position:absolute;top:0;bottom:0}.ilane-span:active{cursor:grabbing}.ilane-span[data-wrap=true]{cursor:default;opacity:.55}.ilane-edge{cursor:ew-resize;touch-action:none;width:14px;position:absolute;top:-4px;bottom:-4px}.ilane-edge:after{content:"";background:#14122699;border-radius:1px;width:2px;position:absolute;top:7px;bottom:7px;left:6px}.ilane-edge[data-edge=from]{left:-7px}.ilane-edge[data-edge=to]{right:-7px}.ilane-edge:hover:after{background:var(--color-text)}.ilane-edge .corridor-bubble{bottom:22px}.ilane-now{background:var(--color-text);border-radius:1px;width:1.5px;margin-left:-.75px;position:absolute;top:-3px;bottom:-3px}.ilane-scale{height:13px;font-family:var(--font-data);color:var(--color-text-disabled);font-variant-numeric:tabular-nums;font-size:9px;position:relative}.ilane-scale span{position:absolute;top:0;transform:translate(-50%)}.ilane-scale span:first-child{transform:none}.ilane-scale span:last-child{transform:translate(-100%)}.scope-bar{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--color-line);background:var(--color-surface-soft);flex-wrap:wrap;display:flex}.scope-tag{font-family:var(--font-data);letter-spacing:var(--tracking-caps);text-transform:uppercase;border-radius:var(--radius-xs);white-space:nowrap;padding:3px 9px;font-size:10px}.scope-bar[data-scope=plant]{border-color:var(--color-primary-border)}.scope-bar[data-scope=plant] .scope-tag{background:var(--color-primary-bg-hi);color:var(--color-primary-strong)}.scope-bar[data-scope=recipe]{border-color:var(--color-warn-border)}.scope-bar[data-scope=recipe] .scope-tag{background:var(--color-warn-bg);color:var(--color-warn)}.scope-text{font-size:var(--text-sm);color:var(--color-text-muted)}.scope-text b{color:var(--color-text-dim);font-weight:var(--weight-medium)}.scope-aside{font-family:var(--font-data);font-size:var(--text-xs);color:var(--color-text-disabled);white-space:nowrap;margin-left:auto}.program{flex-direction:column;gap:6px;display:flex}.program-track{gap:2px;display:flex;position:relative}.program-seg{border:1px solid var(--color-line);border-radius:var(--radius-sm);background:var(--color-bg-elevated);min-width:0;padding:7px var(--space-3) 8px;text-align:left;cursor:pointer;color:inherit;transition:border-color var(--motion-fast) var(--ease-default), background var(--motion-fast) var(--ease-default);flex-basis:0;font-family:inherit;position:relative;overflow:hidden}.program-seg:hover{border-color:var(--color-line-emphasis)}.program-seg[aria-selected=true]{border-color:var(--color-primary-border);background:var(--color-primary-bg)}.program-fill{transform-origin:0;opacity:.5;position:absolute;inset:0}.program-seg[data-state=done] .program-fill{opacity:.18}.program-name{font-family:var(--font-data);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:5px;font-size:10px;display:flex;position:relative;overflow:hidden}.program-seg[aria-selected=true] .program-name{color:var(--color-text)}.program-flag{background:var(--color-primary);border-radius:50%;flex-shrink:0;width:5px;height:5px}.program-days{font-family:var(--font-data);letter-spacing:.4px;color:var(--color-text-disabled);font-variant-numeric:tabular-nums;white-space:nowrap;margin-top:2px;font-size:9px;display:block;position:relative}.program-now{background:var(--color-text);pointer-events:none;border-radius:1px;width:1.5px;margin-left:-.75px;position:absolute;top:-4px;bottom:-4px}.program-now:after{content:attr(data-label);font-family:var(--font-data);letter-spacing:.4px;color:var(--color-text-dim);white-space:nowrap;font-size:9px;position:absolute;top:-15px;left:50%;transform:translate(-50%)}.program-legend{font-family:var(--font-data);letter-spacing:.4px;color:var(--color-text-disabled);font-variant-numeric:tabular-nums;justify-content:space-between;font-size:9px;display:flex}.program-units{gap:var(--space-3);flex-direction:column;display:flex}.program-units .system-unit-head>svg,.program-units .system-unit-glow{animation:none!important}.program-units .system-unit[data-kind=light] .system-unit-head>svg{color:var(--color-warn)}.program-units .system-unit[data-kind=air] .system-unit-head>svg{color:var(--color-primary)}.program-units .system-unit[data-kind=water] .system-unit-head>svg{color:var(--color-ok)}.program-units .system-unit[data-state=off] .system-unit-head>svg{color:var(--color-text-disabled)}.program-units .system-unit-body{gap:var(--space-4)}.program-instruments{gap:var(--space-4) var(--space-6);grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));display:grid}.program-instrument{gap:var(--space-3);flex-direction:column;display:flex}.program-note{font-size:var(--text-sm);color:var(--color-text-muted);line-height:var(--leading-snug);margin:0}.program-revert{color:var(--color-primary-soft);font-size:var(--text-xs);cursor:pointer;transition:color var(--motion-fast) var(--ease-default);background:0 0;border:0;align-items:center;gap:6px;padding:4px 0;display:inline-flex}.program-revert:hover{color:var(--color-primary-strong)}.mode-switch{border:1px solid var(--color-line);border-radius:var(--radius-md);background:var(--color-bg-elevated);flex-wrap:wrap;gap:2px;padding:2px;display:inline-flex}.mode-switch[data-over=true]{border-color:var(--color-primary-border)}.mode-switch button{border-radius:var(--radius-sm);color:var(--color-text-muted);font-family:var(--font-data);letter-spacing:.6px;text-transform:uppercase;cursor:pointer;white-space:nowrap;transition:all var(--motion-fast) var(--ease-default);background:0 0;border:0;padding:4px 10px;font-size:10px}.mode-switch button:hover{color:var(--color-text-dim)}.mode-switch button[aria-pressed=true]{background:var(--color-primary-bg-hi);color:var(--color-primary-strong)}.params{gap:var(--space-2) var(--space-4);flex-wrap:wrap;align-items:flex-start;display:flex}.param-pair{align-items:flex-end;gap:var(--space-2);display:flex}.param{flex-direction:column;gap:3px;min-width:0;display:flex;position:relative}.param-name{font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap}.param-input{padding:5px var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--color-line);background:var(--color-bg-elevated);font-family:var(--font-data);font-variant-numeric:tabular-nums;transition:border-color var(--motion-fast) var(--ease-default);align-items:baseline;gap:4px;display:inline-flex}.param-input:focus-within{border-color:var(--color-primary-border)}.param-input input{width:5ch;color:var(--color-text);font:inherit;text-align:right;background:0 0;border:0;outline:none;padding:0}.param-input input[type=number]{appearance:textfield}.param-input input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.param-input input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.param-input-wide input{text-align:left;width:7ch}.param-input input[type=time]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-variant-numeric:tabular-nums}.param-input input[type=time]::-webkit-calendar-picker-indicator{display:none}.param-unit{color:var(--color-text-disabled);white-space:nowrap;font-size:10px}.param-check{align-items:center;gap:var(--space-2);cursor:pointer;flex-direction:row;padding-top:18px}.param-drop{border-radius:var(--radius-sm);border:1px solid var(--color-line);background:var(--color-bg-elevated);width:26px;height:30px;color:var(--color-text-disabled);font-size:var(--text-md);cursor:pointer;transition:all var(--motion-fast) var(--ease-default);line-height:1}.param-drop:hover{border-color:var(--color-bad-border);color:var(--color-bad)}.param[data-over=true],.params[data-over=true]{padding-left:9px}.param[data-over=true]:before,.params[data-over=true]:before{content:"";background:var(--color-primary);border-radius:1px;width:2px;position:absolute;top:2px;bottom:2px;left:0}.params[data-over=true]{position:relative}.param[data-over=true] .param-input{border-color:var(--color-primary-border)}.param-was{font-family:var(--font-data);letter-spacing:.4px;color:var(--color-text-disabled);font-variant-numeric:tabular-nums;align-items:baseline;gap:5px;font-size:9px;display:flex}.param-was button{color:var(--color-primary-soft);font:inherit;cursor:pointer;text-underline-offset:2px;background:0 0;border:0;padding:0;text-decoration:underline}.param-was button:hover{color:var(--color-primary-strong)}.save-bar{bottom:var(--space-4);z-index:2;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--color-line-emphasis);background:var(--color-bg-elevated);-webkit-backdrop-filter:var(--blur-card);backdrop-filter:var(--blur-card);flex-wrap:wrap;display:flex;position:sticky}.save-bar-count{font-family:var(--font-data);font-size:var(--text-xs);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.save-bar-actions{gap:var(--space-2);flex-wrap:wrap;margin-left:auto;display:flex}.dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.dot.ok{background:var(--color-ok);box-shadow:var(--shadow-glow-ok)}.dot.warn{background:var(--color-warn);box-shadow:var(--shadow-glow-warn)}.dot.bad{background:var(--color-bad);box-shadow:var(--shadow-glow-bad)}.dot.off{background:var(--color-text-disabled)}.dot.primary{background:var(--color-primary);box-shadow:var(--shadow-glow-primary)}.grid-2{gap:var(--grid-gap);grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));display:grid}.grid-3{gap:var(--grid-gap);grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr));display:grid}.flex-row{align-items:center;gap:var(--space-3);display:flex}.flex-between{justify-content:space-between;align-items:center;display:flex}.flex-col{gap:var(--space-3);flex-direction:column;display:flex}.text{color:var(--color-text)}.text-muted{color:var(--color-text-muted)}.text-dim{color:var(--color-text-dim)}.text-primary{color:var(--color-primary)}.text-ok{color:var(--color-ok)}.text-warn{color:var(--color-warn)}.text-bad{color:var(--color-bad)}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:var(--text-2xl)}.font-mono{font-family:var(--font-data)}.font-display{font-family:var(--font-display)}.font-semibold{font-weight:var(--weight-semibold)}.font-bold{font-weight:var(--weight-bold)}.error{color:var(--color-bad);font-size:var(--text-sm);padding:var(--space-2) var(--space-3);background:var(--color-bad-bg);border-radius:var(--radius-sm);border:1px solid var(--color-bad-border)}.link{color:var(--color-primary);transition:color var(--motion-fast) var(--ease-default)}.link:hover{color:var(--color-primary-strong)}.text-link{color:var(--color-text-muted);font-size:var(--text-sm)}.text-link a,.text-link .link{color:var(--color-primary)}.stage-timeline{background:var(--color-bg-raised);border-radius:var(--radius-md);gap:2px;height:10px;display:flex;position:relative}.stage-timeline-wrap{position:relative}.stage-timeline-marker{background:var(--color-primary-strong);border-radius:var(--radius-pill);pointer-events:none;z-index:2;width:2px;margin-left:-1px;position:absolute;top:-4px;bottom:-4px}.stage-timeline-blip-track{border-radius:var(--radius-md);pointer-events:none;z-index:1;position:absolute;inset:0;overflow:hidden}.stage-timeline-blip{filter:blur(2px);width:28px;animation:stage-timeline-blip var(--loop-ambient) var(--ease-in-out) infinite;background:linear-gradient(90deg,#0000,#ffffff8c,#0000);margin-left:-14px;position:absolute;top:-1px;bottom:-1px}@keyframes stage-timeline-blip{0%{opacity:0;left:0}6%{opacity:.9}60%{left:var(--end,50%);opacity:.95}68%{left:var(--end,50%);opacity:0}to{left:var(--end,50%);opacity:0}}.stage-timeline-tooltip{border-radius:var(--radius-md);background:var(--color-bg-elevated);border:1px solid var(--color-primary-border);color:var(--color-primary-strong);font-family:var(--font-display);font-size:var(--text-xs);font-weight:var(--weight-semibold);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--motion-fast) var(--ease-default), transform var(--motion-fast) var(--ease-default);z-index:3;padding:6px 12px;position:absolute;top:calc(100% + 4px);transform:translate(-50%);box-shadow:0 4px 16px #0006}.stage-timeline-tooltip:before,.stage-timeline-tooltip:after{content:"";border:6px solid #0000;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.stage-timeline-tooltip:before{border-bottom-color:var(--color-primary-border)}.stage-timeline-tooltip:after{border-bottom-color:var(--color-bg-elevated);margin-bottom:-1px}.stage-timeline:hover .stage-timeline-tooltip{opacity:1;transform:translate(-50%)translateY(4px)}.stage-timeline .segment{height:100%;transition:opacity var(--motion-fast) var(--ease-default);position:relative}.stage-timeline .segment:first-child{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.stage-timeline .segment:last-child{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.stage-timeline .segment.germination{background:var(--color-dawn);opacity:.7}.stage-timeline .segment.seedling{background:var(--color-dawn)}.stage-timeline .segment.blackout{background:var(--color-text-muted)}.stage-timeline .segment.vegetative{background:var(--color-ok)}.stage-timeline .segment.flowering{background:var(--color-dusk)}.stage-timeline .segment.fruiting{background:var(--color-dusk);opacity:.85}.stage-timeline .segment.ripening{background:var(--color-primary);opacity:.7}.stage-timeline .segment.harvest{background:var(--color-primary)}.stage-timeline .segment.general{background:var(--color-noon)}.stage-timeline .segment:hover{opacity:.8}.stage-legend{gap:var(--space-3);margin-top:var(--space-3);font-size:var(--text-xs);flex-wrap:wrap;display:flex}.stage-legend-item{color:var(--color-text-muted);align-items:center;gap:6px;display:inline-flex}.stage-legend-item .swatch{border-radius:var(--radius-xs);flex-shrink:0;width:10px;height:10px}.stage-legend-item .swatch.germination{background:var(--color-dawn);opacity:.7}.stage-legend-item .swatch.seedling{background:var(--color-dawn)}.stage-legend-item .swatch.blackout{background:var(--color-text-muted)}.stage-legend-item .swatch.vegetative{background:var(--color-ok)}.stage-legend-item .swatch.flowering{background:var(--color-dusk)}.stage-legend-item .swatch.fruiting{background:var(--color-dusk);opacity:.85}.stage-legend-item .swatch.ripening{background:var(--color-primary);opacity:.7}.stage-legend-item .swatch.harvest{background:var(--color-primary)}.stage-legend-item .swatch.general{background:var(--color-noon)}.stage-detail{gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-surface-soft);border:1px solid var(--color-line);grid-template-columns:1fr;display:grid}.stage-detail .name{align-items:center;gap:var(--space-2);font-family:var(--font-display);font-weight:var(--weight-semibold);font-size:var(--text-base);color:var(--color-text);display:flex}.stage-detail .days{font-size:var(--text-sm);color:var(--color-text-muted);font-weight:var(--weight-regular)}.stage-detail .params{gap:var(--space-2);margin-top:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(min(110px,100%),1fr));display:grid}.stage-detail .param{padding:var(--space-2);border-radius:var(--radius-sm);background:var(--color-bg-raised);font-size:var(--text-xs)}.stage-detail .param .lbl{color:var(--color-text-muted);margin-bottom:2px}.stage-detail .param .val{color:var(--color-text);font-family:var(--font-display);font-weight:var(--weight-semibold)}.stage-detail .param .hint{color:var(--color-text-disabled);margin-top:2px;font-size:10px}.plant-card-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));display:grid}.plant-card{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);border:1px solid var(--color-line);border-radius:var(--radius-xl);background:var(--color-surface);-webkit-backdrop-filter:var(--blur-card);backdrop-filter:var(--blur-card);color:inherit;transition:border-color var(--motion-base) var(--ease-default), transform var(--motion-base) var(--ease-default);text-decoration:none;display:flex;position:relative;overflow:hidden}.plant-card:hover{border-color:var(--color-primary-border);transform:translateY(-2px)}.plant-card:before{content:"";background:var(--color-line-emphasis);height:2px;position:absolute;top:0;left:0;right:0}.plant-card[data-stage=seedling]:before{background:linear-gradient(90deg, transparent, var(--color-dawn), transparent)}.plant-card[data-stage=vegetative]:before{background:linear-gradient(90deg, transparent, var(--color-ok), transparent)}.plant-card[data-stage=flowering]:before{background:linear-gradient(90deg, transparent, var(--color-dusk), transparent)}.plant-card[data-stage=harvest]:before{background:linear-gradient(90deg, transparent, var(--color-primary), transparent)}.plant-card-main{flex:1;min-width:0}.plant-card-name{font-family:var(--font-display);font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.plant-card-meta{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:2px}.plant-tile-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));display:grid}.plant-tile{gap:var(--space-4);padding:var(--space-4) var(--space-5);border:1px solid var(--color-line);border-radius:var(--radius-xl);background:var(--color-surface);-webkit-backdrop-filter:var(--blur-card);backdrop-filter:var(--blur-card);color:inherit;transition:border-color var(--motion-base) var(--ease-default), transform var(--motion-base) var(--ease-default);flex-direction:column;text-decoration:none;display:flex}.plant-tile:hover{border-color:var(--color-primary-border);transform:translateY(-2px)}.plant-tile[data-health=warn]{border-color:var(--color-warn-border)}.plant-tile[data-health=bad]{border-color:var(--color-bad-border)}.plant-tile-head{align-items:center;gap:var(--space-3);display:flex}.plant-status-badge{flex-shrink:0;display:inline-block;position:relative}.plant-status-badge-icon{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.plant-tile-main{flex:1;min-width:0}.plant-tile-name{font-family:var(--font-display);font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.plant-tile-sub{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:2px}.plant-tile-readings{gap:var(--space-3);grid-template-columns:repeat(3,1fr);display:grid}.plant-tile-reading-cap{font-family:var(--font-data);font-size:9px;font-weight:var(--weight-medium);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-text-disabled);display:block}.plant-tile-reading-val{font-family:var(--font-data);font-size:var(--text-base);font-weight:var(--weight-light);color:var(--color-text);font-variant-numeric:tabular-nums;white-space:nowrap;margin-top:3px;display:block}.plant-tile-reading-unit{color:var(--color-text-muted);margin-left:2px;font-size:10px}.plant-tile-reading-val[data-health=warn]{color:var(--color-warn)}.plant-tile-reading-val[data-health=bad]{color:var(--color-bad)}.plant-tile-reading-val[data-state=stale],.plant-tile-reading-val[data-state=none]{color:var(--color-text-disabled)}.plant-tile-sep{animation:pulse var(--loop-pulse) var(--ease-in-out) infinite}.plant-tile-reading-val[data-state=stale] .plant-tile-sep{opacity:.4;animation:none}.plant-tile-loads{gap:var(--space-2);margin-top:auto;display:flex}.plant-tile-load{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--color-text-disabled);transition:color var(--motion-base) var(--ease-default), background var(--motion-base) var(--ease-default);background:0 0;justify-content:center;align-items:center;display:inline-flex}.plant-tile-load[data-on=true][data-kind=light]{color:var(--color-warn);background:var(--color-warn-bg)}.plant-tile-load[data-on=true][data-kind=fan]{color:var(--color-primary);background:var(--color-primary-bg)}.plant-tile-load[data-on=true][data-kind=pump]{color:var(--color-ok);background:var(--color-ok-bg);position:relative}.plant-tile-load[data-on=true][data-kind=light] svg{animation:plant-tile-shine var(--loop-work) var(--ease-in-out) infinite}.plant-tile-load[data-on=true][data-kind=fan] svg{animation:spin var(--loop-work) linear infinite;transform-origin:50%}.plant-tile-load[data-on=true][data-kind=pump]:after{content:"";background:var(--color-ok);width:3px;height:4px;animation:plant-tile-drip var(--loop-drip) ease-in infinite;border-radius:50%/60% 60% 40% 40%;position:absolute;bottom:2px;left:50%;transform:translate(-50%)}@keyframes plant-tile-shine{0%,to{opacity:1}50%{opacity:.6}}@keyframes plant-tile-drip{0%{opacity:0;transform:translate(-50%,-4px)scale(.6)}25%{opacity:1}80%{opacity:1}to{opacity:0;transform:translate(-50%,5px)scale(.9)}}.plants-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr));display:grid}.plant-rich-meta{align-items:center;gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--color-line);display:flex}.plant-rich-where{min-width:0;font-size:var(--text-xs);color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.plant-stage-mark{border:1px solid var(--color-line);background:var(--color-surface-soft);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.plant-cycle{flex-direction:column;gap:5px;display:flex}.plant-cycle-bar{gap:2px;height:6px;display:flex;position:relative}.plant-cycle-seg{background:var(--color-line);border-radius:1px;flex-basis:0;position:relative;overflow:hidden}.plant-cycle-fill{transform-origin:0;position:absolute;inset:0}.plant-cycle-now{background:var(--color-text);border-radius:1px;width:1.5px;margin-left:-.75px;position:absolute;top:-3px;bottom:-3px}.plant-cycle-legend{justify-content:space-between;gap:var(--space-2);font-family:var(--font-data);letter-spacing:.4px;color:var(--color-text-disabled);font-variant-numeric:tabular-nums;font-size:9px;display:flex}.plant-cycle-names{gap:2px;display:flex}.plant-cycle-name{font-family:var(--font-data);letter-spacing:.4px;text-transform:uppercase;color:var(--color-text-disabled);white-space:nowrap;flex-basis:0;font-size:9px;overflow:hidden}.plant-cycle-name[data-active=true]{color:var(--color-text-dim)}.plant-hero{gap:var(--space-5);flex-direction:column;display:flex}.plant-hero-top{align-items:center;gap:var(--space-4);display:flex}.plant-hero-main{flex:1;min-width:0}.plant-hero-name{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-semibold);letter-spacing:-.4px;color:var(--color-text)}.plant-hero-sub{font-size:var(--text-sm);color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;margin-top:3px;overflow:hidden}.device-tile-grid{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(min(230px,100%),1fr));display:grid}.device-tile-grid.detailed{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr))}.device-tile{gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-surface);-webkit-backdrop-filter:var(--blur-card);backdrop-filter:var(--blur-card);color:inherit;transition:border-color var(--motion-base) var(--ease-default);flex-direction:column;text-decoration:none;display:flex}.device-tile:hover{border-color:var(--color-primary-border)}.device-tile[data-state=warn]{border-color:var(--color-warn-border)}.device-tile[data-state=bad]{border-color:var(--color-bad-border)}.device-tile-head{align-items:flex-start;gap:var(--space-3);display:flex}.device-tile-main{flex:1;min-width:0}.device-tile-head .status-dot{margin-top:6px}.device-tile-name{font-family:var(--font-display);font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.device-tile-foot{align-items:baseline;gap:var(--space-2);flex-wrap:wrap;margin-top:2px;display:flex}.device-tile-state{font-size:var(--text-sm);color:var(--color-text-dim)}.device-tile-state[data-state=warn]{color:var(--color-warn)}.device-tile-state[data-state=bad]{color:var(--color-bad)}.device-tile-when{font-family:var(--font-data);letter-spacing:.4px;color:var(--color-text-disabled);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:10px}.device-tile-type{font-size:var(--text-xs);color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;overflow:hidden}.device-tile-bottom{align-items:center;gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--color-line);display:flex}.device-tile-id{min-width:0;font-family:var(--font-data);font-size:var(--text-xs);letter-spacing:.4px;color:var(--color-text-disabled);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.device-tile-actions{gap:4px;display:inline-flex}.tabs{background:var(--color-surface-soft);border:1px solid var(--color-line);border-radius:var(--radius-md);margin-bottom:var(--space-5);gap:2px;width:fit-content;padding:4px;display:flex}.tab{padding:calc(var(--space-2) - 1px) calc(var(--space-4) - 1px);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-muted);cursor:pointer;transition:color var(--motion-fast) var(--ease-default), background var(--motion-fast) var(--ease-default), border-color var(--motion-fast) var(--ease-default);background:0 0;border:1px solid #0000}.tab:hover{color:var(--color-text)}.tab.active{background:var(--color-primary-bg-hi);color:var(--color-primary-strong);border-color:var(--color-primary-border)}.modal-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:var(--z-modal);animation:modal-fade-in var(--motion-base) var(--ease-default);background:#0a081899;place-items:center;display:grid;position:fixed;inset:0}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}.modal{background:var(--color-bg-elevated);border:1px solid var(--color-line-emphasis);border-radius:var(--radius-2xl);width:100%;max-width:420px;padding:var(--space-6);animation:modal-pop-in var(--motion-slow) var(--ease-default);position:relative;box-shadow:0 24px 60px #00000080}.modal-body{margin-bottom:var(--space-5)}@property --modal-angle{syntax:"<angle>";inherits:false;initial-value:0deg}.modal-glow:before{content:"";border-radius:inherit;background:conic-gradient(from var(--modal-angle), transparent 0%, #9eb0ff8c 10%, #c4b5fd59 18%, transparent 32%, transparent 100%);-webkit-mask-composite:xor;opacity:.6;pointer-events:none;padding:1px;animation:6s linear infinite modal-border-run;position:absolute;inset:-1px;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}@keyframes modal-border-run{to{--modal-angle:360deg}}@media (prefers-reduced-motion:reduce){.modal-glow:before{opacity:0;animation:none}}@keyframes modal-pop-in{0%{opacity:0;transform:translateY(12px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text);margin-bottom:var(--space-2)}.modal-message{font-size:var(--text-base);color:var(--color-text-dim);line-height:var(--leading-normal);margin:0}.modal-actions{gap:var(--space-3);justify-content:flex-end;display:flex}[data-tooltip]{position:relative}[data-tooltip]:before,[data-tooltip]:after{opacity:0;pointer-events:none;transition:opacity var(--motion-fast) var(--ease-default) 80ms;position:absolute}[data-tooltip]:before{content:attr(data-tooltip);border-radius:var(--radius-sm);background:var(--color-bg-elevated);border:1px solid var(--color-line-emphasis);color:var(--color-text);font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-medium);white-space:nowrap;z-index:var(--z-overlay);padding:6px 10px;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0006}[data-tooltip]:after{content:"";border:5px solid #0000;border-top-color:var(--color-line-emphasis);z-index:var(--z-overlay);bottom:calc(100% + 2px);left:50%;transform:translate(-50%)}[data-tooltip]:hover:before,[data-tooltip]:hover:after{opacity:1}[data-tooltip-pos=bottom]:before{top:calc(100% + 8px);bottom:auto}[data-tooltip-pos=bottom]:after{border-top-color:#0000;border-bottom-color:var(--color-line-emphasis);top:calc(100% + 2px);bottom:auto}.skeleton{background:linear-gradient(90deg, var(--color-surface-soft) 0%, var(--color-surface) 50%, var(--color-surface-soft) 100%);animation:skeleton-shimmer var(--loop-pulse) linear infinite;border-radius:var(--radius-md);background-size:200% 100%}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.chart-skeleton{border-radius:var(--radius-lg);width:100%;position:relative;overflow:hidden}.chart-skeleton .bars{align-items:flex-end;gap:4px;height:100%;padding:12px;display:flex}.chart-skeleton .bar{background:linear-gradient(180deg, var(--color-primary-bg-hi), transparent);opacity:.4;animation:skeleton-shimmer var(--loop-pulse) var(--ease-in-out) infinite;border-radius:2px 2px 0 0;flex:1}.chart-fade-in{animation:chart-fade-in var(--motion-slow) var(--ease-default)}@keyframes chart-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.trend-panel{gap:var(--space-5);transition:opacity var(--motion-base) var(--ease-default);flex-direction:column;display:flex}.trend-panel.loading{opacity:.45}.trend-instr{gap:var(--space-4);grid-template-columns:108px 1fr;align-items:start;display:grid}.trend-rail{min-width:0;padding-top:2px}.trend-cap{font-family:var(--font-data);font-size:10px;font-weight:var(--weight-medium);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-text-muted);line-height:1.35;display:block}.trend-value{font-family:var(--font-data);font-size:var(--text-xl);font-weight:var(--weight-light);color:var(--color-text);font-variant-numeric:tabular-nums;white-space:nowrap;margin-top:4px;line-height:1.1;display:block}.trend-unit{font-size:var(--text-sm);color:var(--color-text-muted);margin-left:2px}.trend-sub{font-family:var(--font-data);letter-spacing:.4px;color:var(--color-text-disabled);font-variant-numeric:tabular-nums;white-space:nowrap;margin-top:6px;font-size:10px;display:block}.trend-plot{position:relative}.trend-plot-svg{width:100%;display:block}.trend-day{fill:var(--color-dawn);fill-opacity:.07}.trend-breach{stroke:var(--color-bad)}.trend-fan-rail{fill:var(--color-line)}.trend-fan{fill:var(--color-primary-strong)}.trend-now{fill:var(--color-line-emphasis)}.trend-edge{background:var(--color-bg-elevated);font-family:var(--font-data);letter-spacing:.4px;color:var(--color-text-disabled);font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none;border-radius:2px;padding:0 3px;font-size:10px;position:absolute;right:4px;transform:translateY(-50%)}.trend-shot{pointer-events:none;width:9px;height:9px;line-height:0;position:absolute;bottom:5px;transform:translate(-50%)}.trend-shot path{fill:var(--color-ok)}.trend-cursor{background:var(--color-primary-strong);opacity:.55;pointer-events:none;width:1px;position:absolute;top:0;bottom:0}.trend-cursor-dot{background:var(--color-text);width:7px;height:7px;box-shadow:0 0 0 2px var(--color-bg-elevated);border-radius:50%;margin-top:-3.5px;position:absolute;left:-3px}.trend-scale{height:14px;font-family:var(--font-data);letter-spacing:.4px;color:var(--color-text-disabled);font-variant-numeric:tabular-nums;margin-top:2px;font-size:9px;position:relative}.trend-tick{white-space:nowrap;transition:opacity var(--motion-fast) var(--ease-default);position:absolute;top:0;transform:translate(-50%)}.trend-tick[data-edge=start]{transform:none}.trend-tick[data-edge=end]{color:var(--color-text-dim);transform:translate(-100%)}.trend-panel.tracking .trend-tick{opacity:.3}.trend-tick-cursor{border-radius:var(--radius-xs);background:var(--color-primary-bg-hi);color:var(--color-primary-strong);white-space:nowrap;padding:1px 5px;position:absolute;top:-2px;transform:translate(-50%)}@media (width<=620px){.trend-instr{gap:var(--space-2);grid-template-columns:1fr}.trend-rail{align-items:baseline;gap:var(--space-3);flex-wrap:wrap;display:flex}.trend-value{font-size:var(--text-lg);margin-top:0}.trend-sub{margin-top:0}}.trend-mark{background:linear-gradient(to bottom, var(--color-line-emphasis) 0 4px, transparent 4px 8px);pointer-events:none;background-size:1px 8px;width:1px;margin-left:-.5px;position:absolute;top:0;bottom:0}.trend-mark-label{font-family:var(--font-data);letter-spacing:.4px;text-transform:uppercase;color:var(--color-text-disabled);white-space:nowrap;font-size:9px;font-style:normal;position:absolute;top:2px;left:4px}.info-block-trigger{background:var(--color-primary-bg);width:18px;height:18px;color:var(--color-primary-strong,var(--color-primary));font-family:var(--font-display);font-size:12px;font-weight:var(--weight-semibold);cursor:pointer;transition:background var(--motion-fast) var(--ease-default), color var(--motion-fast) var(--ease-default);border:0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex}.info-block-trigger:hover,.info-block-trigger.open{background:var(--color-primary);color:var(--color-bg-base,#fff)}.info-block-body{background:var(--color-bg-elevated);border-left:2px solid var(--color-primary);padding:var(--space-2) var(--space-3);margin-top:var(--space-2);line-height:1.5;font-size:var(--text-xs);color:var(--color-text-muted)}.info-block-body ol,.info-block-body ul{margin:0;padding-left:18px}.info-block-body p{margin:0}.info-block-body p+p,.info-block-body p+ol,.info-block-body p+ul,.info-block-body ol+p,.info-block-body ul+p{margin-top:4px}.dashboard{gap:var(--space-8);flex-direction:column;display:flex}.aurora-hero{padding:var(--space-2) 0 var(--space-3)}.aurora-hero-content{justify-content:space-between;align-items:center;gap:var(--space-5);flex-wrap:wrap;display:flex}.aurora-hero-greeting{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-semibold);letter-spacing:-.01em;margin:0 0 var(--space-1);color:var(--color-text)}.aurora-hero-date{text-transform:capitalize}.status-dot{border-radius:50%;flex-shrink:0;display:inline-block}.status-dot.live{animation:pulse var(--loop-pulse) var(--ease-in-out) infinite}.log-filters{align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.log-chip{border-radius:var(--radius-pill);border:1px solid var(--color-line);height:26px;color:var(--color-text-muted);font-family:var(--font-body);font-size:var(--text-xs);cursor:pointer;transition:all var(--motion-fast) var(--ease-default);background:0 0;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.log-chip:hover{border-color:var(--color-line-emphasis);color:var(--color-text)}.log-chip[aria-pressed=true]{background:var(--color-primary-bg-hi);border-color:var(--color-primary-border);color:var(--color-primary-strong)}.log-chip-dot{background:var(--color-line-emphasis);border-radius:50%;width:6px;height:6px;display:inline-block}.log-chip-sep{background:var(--color-line);width:1px;height:18px;margin:0 var(--space-1)}.log-tape{font-family:var(--font-data);font-size:var(--text-xs)}.log-day{align-items:center;gap:var(--space-3);margin:var(--space-4) 0 var(--space-2);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-text-disabled);font-size:10px;display:flex}.log-day:first-child{margin-top:0}.log-day:after{content:"";background:var(--color-line);flex:1;height:1px}.log-row{gap:var(--space-3);padding:5px 0 5px var(--space-2);transition:background var(--motion-fast) var(--ease-default);border-radius:3px;grid-template-columns:3px 62px 74px 1fr auto;align-items:baseline;display:grid}.log-row:hover{background:#9eb0ff0a}.log-stripe{background:var(--color-line-emphasis);border-radius:2px;align-self:stretch}.log-stripe[data-c=light]{background:var(--color-dawn)}.log-stripe[data-c=climate]{background:var(--color-primary)}.log-stripe[data-c=irrigation]{background:var(--color-ok)}.log-stripe[data-c=system]{background:var(--color-text-disabled)}.log-chip-dot[data-c=light]{background:var(--color-dawn)}.log-chip-dot[data-c=climate]{background:var(--color-primary)}.log-chip-dot[data-c=irrigation]{background:var(--color-ok)}.log-chip-dot[data-c=system]{background:var(--color-text-disabled)}.log-time{color:var(--color-text-disabled);font-variant-numeric:tabular-nums}.log-src{letter-spacing:.6px;text-transform:uppercase;color:var(--color-text-muted);font-size:10px}.log-what{font-family:var(--font-body);font-size:var(--text-sm);color:var(--color-text-dim)}.log-why{color:var(--color-text-disabled);white-space:nowrap;font-size:10px}@media (width<=700px){.log-row{grid-template-columns:3px 52px 1fr}.log-why{display:none}.log-src{grid-column:3}}.log-more{align-items:center;gap:var(--space-3);margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--color-line);display:flex}.log-more-btn{height:28px;padding:0 var(--space-4);border-radius:var(--radius-sm);background:var(--color-surface-hi);border:1px solid var(--color-line-emphasis);color:var(--color-text-dim);font-family:var(--font-body);font-size:var(--text-xs);cursor:pointer;transition:all var(--motion-fast) var(--ease-default)}.log-more-btn:hover:not(:disabled){background:var(--color-primary-bg-hi);border-color:var(--color-primary-border);color:var(--color-primary-strong)}.log-more-btn:disabled{opacity:.5;cursor:default}.log-more-note{font-family:var(--font-data);color:var(--color-text-disabled);font-size:10px}.ntf-bell{position:relative}.top-btn[data-active]{color:var(--color-primary-strong);border-color:var(--color-primary-border)}.ntf-badge{border-radius:var(--radius-pill);min-width:18px;height:18px;font-family:var(--font-data);font-size:10px;font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;color:var(--color-bg-elevated);background:var(--color-primary);place-items:center;padding:0 5px;display:grid;position:absolute;top:-5px;right:-5px}.ntf-badge[data-sev=bad]{background:var(--color-bad);box-shadow:var(--shadow-glow-bad)}.ntf-badge[data-sev=warn]{background:var(--color-warn);box-shadow:var(--shadow-glow-warn)}.ntf-pop{top:calc(100% + var(--space-2));z-index:var(--z-overlay);width:400px;max-width:calc(100vw - var(--space-8));background:var(--color-bg-elevated);border:1px solid var(--color-line-emphasis);border-radius:var(--radius-xl);position:absolute;right:0;overflow:hidden;box-shadow:0 24px 60px #0806148c}.ntf-pop-head{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5) var(--space-3);display:flex}.ntf-pop-head .t{font-family:var(--font-display);font-weight:var(--weight-semibold);font-size:var(--text-md)}.ntf-pop-head .btn{font-size:var(--text-xs);margin-left:auto;padding:4px 10px}.ntf-pop .ntf-open{padding:0 var(--space-3) var(--space-3)}.ntf-pop .ntf-open-row{padding:var(--space-2) var(--space-3);gap:var(--space-3);grid-template-columns:28px minmax(0,1fr) auto}.ntf-pop .ntf-open-row .ntf-ico{width:28px;height:28px}.ntf-pop .ntf-open-title{font-size:var(--text-sm)}.ntf-pop .ntf-dur{font-size:var(--text-xs)}.ntf-pop .ntf-feed{padding:0 var(--space-3);border-top:1px solid var(--color-line);max-height:360px;overflow-y:auto}.ntf-pop .ntf-row{gap:var(--space-3);grid-template-columns:3px 28px minmax(0,1fr) auto}.ntf-pop .ntf-row .ntf-ico{width:28px;height:28px}.ntf-pop .ntf-title{font-size:var(--text-sm)}.ntf-pop .ntf-text{font-size:var(--text-xs)}.ntf-pop-empty{padding:var(--space-5) var(--space-2);text-align:center}.ntf-pop-foot{border-top:1px solid var(--color-line);padding:var(--space-3);justify-content:center;display:flex}.ntf-pop-foot a{font-size:var(--text-sm);color:var(--color-primary)}.ntf-page{gap:var(--space-8);flex-direction:column;display:flex}.ntf-btn-sm{font-size:var(--text-sm);padding:6px 12px}.ntf-empty{padding:var(--space-8) var(--space-4);text-align:center;color:var(--color-text-muted);font-size:var(--text-sm);line-height:var(--leading-normal)}.ntf-more{padding-top:var(--space-4);justify-content:center;display:flex}.ntf-end{padding-top:var(--space-5);text-align:center;font-family:var(--font-data);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-text-disabled);font-size:10px}.ntf-ico{border-radius:var(--radius-sm);background:var(--color-surface-soft);border:1px solid var(--color-line);width:34px;height:34px;color:var(--color-text-muted);flex-shrink:0;place-items:center;display:grid}.ntf-ico svg{width:17px;height:17px}[data-sev=bad]>.ntf-ico{color:var(--color-bad);border-color:var(--color-bad-border);background:var(--color-bad-bg)}[data-sev=warn]>.ntf-ico{color:var(--color-warn);border-color:var(--color-warn-border);background:var(--color-warn-bg)}.ntf-open{gap:var(--space-2);flex-direction:column;display:flex}.ntf-open-row{gap:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--color-surface-hi);border:1px solid var(--color-line);grid-template-columns:34px minmax(0,1fr) auto;align-items:center;display:grid}.ntf-open-row[data-sev=bad]{background:linear-gradient(90deg, var(--color-bad-bg), transparent 60%), var(--color-surface-hi);border-color:var(--color-bad-border)}.ntf-open-row[data-sev=warn]{background:linear-gradient(90deg, var(--color-warn-bg), transparent 60%), var(--color-surface-hi);border-color:var(--color-warn-border)}.ntf-open-title{font-weight:var(--weight-medium);color:var(--color-text)}.ntf-dur{font-family:var(--font-data);font-size:var(--text-sm);color:var(--color-text-dim);font-variant-numeric:tabular-nums;white-space:nowrap}.ntf-sev-dot{border-radius:50%;width:6px;height:6px;display:inline-block}.ntf-sev-dot[data-sev=bad]{background:var(--color-bad)}.ntf-sev-dot[data-sev=warn]{background:var(--color-warn)}.ntf-sev-dot[data-sev=info]{background:var(--color-primary)}.log-chip svg{width:13px;height:13px}.log-chip .n{font-family:var(--font-data);color:var(--color-text-disabled);font-variant-numeric:tabular-nums}.log-chip .x{opacity:.6;margin-left:2px}.log-chip .caret{opacity:.6;font-size:9px}.ntf-objfilter{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:inline-flex;position:relative}.ntf-objpick{z-index:var(--z-overlay);width:340px;max-width:calc(100vw - var(--space-8));max-height:420px;padding:var(--space-2);background:var(--color-bg-elevated);border:1px solid var(--color-line-emphasis);border-radius:var(--radius-lg);position:absolute;top:calc(100% + 6px);left:0;overflow-y:auto;box-shadow:0 24px 60px #0806148c}.ntf-objpick .input{width:100%;font-size:var(--text-sm);margin-bottom:var(--space-2);padding:7px 10px}.ntf-objpick-empty{padding:var(--space-3) var(--space-2)}.ntf-objpick-space{font-family:var(--font-data);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-text-disabled);padding:var(--space-2) var(--space-2) var(--space-1);font-size:10px}.ntf-objpick-item{gap:var(--space-2);padding:6px var(--space-2);border-radius:var(--radius-xs);font-size:var(--text-sm);color:var(--color-text-dim);cursor:pointer;grid-template-columns:16px 14px minmax(0,1fr) auto;align-items:center;display:grid}.ntf-objpick-item:hover{color:var(--color-text);background:#9eb0ff0f}.ntf-objpick-item.child{padding-left:30px}.ntf-objpick-item input{accent-color:var(--color-primary);margin:0}.ntf-objpick-item svg{width:13px;height:13px;color:var(--color-text-muted)}.ntf-objpick-item .nm{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ntf-objpick-item .nm .id{font-family:var(--font-data);color:var(--color-text-disabled);margin-left:6px;font-size:10px}.ntf-objpick-item .c{font-family:var(--font-data);font-size:var(--text-xs);color:var(--color-text-disabled);font-variant-numeric:tabular-nums}.ntf-objpick-item .c.hot{color:var(--color-bad)}.ntf-objpick-foot{border-top:1px solid var(--color-line);margin-top:var(--space-2);padding:var(--space-2) var(--space-2) 2px;font-size:var(--text-xs);color:var(--color-text-muted);justify-content:space-between;align-items:center;display:flex}.ntf-objpick-foot button{color:var(--color-primary);font-size:var(--text-xs);background:0 0;border:0;padding:0}.ntf-feed{flex-direction:column;display:flex}.ntf-feed .log-day{font-family:var(--font-data)}.ntf-row{gap:var(--space-4);padding:var(--space-3) var(--space-3) var(--space-3) 0;border-radius:var(--radius-md);transition:background var(--motion-fast) var(--ease-default);grid-template-columns:3px 34px minmax(0,1fr) auto;display:grid}.ntf-row[data-fresh]{background:linear-gradient(90deg,#9eb0ff12,#0000 55%)}.ntf-row[data-fresh] .ntf-title{color:var(--color-text)}.ntf-row+.ntf-row{border-top:1px solid var(--color-line)}.ntf-main{min-width:0}.ntf-stripe{background:var(--color-line-emphasis);border-radius:2px;align-self:stretch}.ntf-row[data-sev=bad] .ntf-stripe{background:var(--color-bad)}.ntf-row[data-sev=warn] .ntf-stripe{background:var(--color-warn)}.ntf-row[data-sev=info] .ntf-stripe{background:var(--color-primary-border)}.ntf-row[data-closed] .ntf-stripe{background:var(--color-line-emphasis)}.ntf-row[data-closed]>.ntf-ico{color:var(--color-text-muted);background:var(--color-surface-soft);border-color:var(--color-line)}.ntf-title{color:var(--color-text-dim);font-weight:var(--weight-medium);line-height:var(--leading-snug)}.ntf-row[data-unread] .ntf-title{color:var(--color-text);font-weight:var(--weight-semibold)}.ntf-text{font-size:var(--text-sm);color:var(--color-text-muted);line-height:var(--leading-normal);margin-top:3px}.ntf-meta{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.go-row{flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;display:flex}.go{border-radius:var(--radius-sm);background:var(--color-surface-soft);border:1px solid var(--color-line-emphasis);height:26px;color:var(--color-text-dim);font-size:var(--text-xs);font-weight:var(--weight-medium);white-space:nowrap;max-width:100%;transition:all var(--motion-fast) var(--ease-default);align-items:center;gap:6px;padding:0 8px 0 7px;display:inline-flex}.go svg{opacity:.75;flex-shrink:0;width:13px;height:13px}.go .chev{opacity:.45;transition:transform var(--motion-fast) var(--ease-default);margin-left:1px;font-size:11px}.go:hover{border-color:var(--color-primary-border);color:var(--color-primary-strong);background:var(--color-primary-bg)}.go:hover .chev{opacity:1;transform:translate(1px)}.go.more{color:var(--color-text-muted);padding:0 8px}.go-sep{background:var(--color-line-emphasis);width:1px;height:14px;margin:0 2px}.ntf-ep{font-size:var(--text-xs);gap:5px;padding:2px 8px}.ntf-ep .dot{width:5px;height:5px}.ntf-ep.live .dot{animation:pulse var(--loop-pulse) var(--ease-in-out) infinite}.ntf-side{align-items:flex-end;gap:var(--space-2);flex-direction:column;display:flex}.ntf-time,.ntf-time-inline{font-family:var(--font-data);font-size:var(--text-xs);color:var(--color-text-disabled);white-space:nowrap;font-variant-numeric:tabular-nums}.ntf-time-inline{display:none}.ntf-unread{background:var(--color-primary);width:8px;height:8px;box-shadow:var(--shadow-glow-primary);border-radius:50%}.ntf-row:not([data-unread]) .ntf-unread{visibility:hidden}.ntf-ch{gap:var(--space-4);padding:var(--space-3) 0;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;display:grid}.ntf-ch+.ntf-ch{border-top:1px solid var(--color-line)}.ntf-ch-name{font-weight:var(--weight-medium)}.ntf-ch-sub{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:2px}.ntf-ch-ctl{align-items:center;gap:var(--space-3);flex-wrap:wrap;justify-content:flex-end;display:flex}.ntf-ch .tabs{margin:0}.ntf-ch .tab{font-size:var(--text-xs);padding:5px 11px}.ntf-lock{font-family:var(--font-data);font-size:var(--text-xs);color:var(--color-text-disabled)}@media (width<=900px){.ntf-row{gap:var(--space-3);grid-template-columns:3px 30px minmax(0,1fr)}.ntf-row .ntf-ico,.ntf-open-row .ntf-ico{width:30px;height:30px}.ntf-side{display:none}.ntf-time-inline{display:inline}.ntf-page .log-filters{flex-wrap:nowrap;padding-bottom:4px;overflow-x:auto}.ntf-page .log-chip{flex-shrink:0}.ntf-objfilter{flex-wrap:nowrap;position:static}.ntf-objpick{left:var(--space-3);right:var(--space-3);width:auto;top:auto}.ntf-open-row{grid-template-columns:30px minmax(0,1fr) auto}.ntf-ch{grid-template-columns:34px minmax(0,1fr)}.ntf-ch .tabs,.ntf-ch .ntf-lock,.ntf-ch-ctl{grid-column:1/-1;justify-content:flex-start}}.system-action-btn{border-radius:var(--radius-sm);background:var(--color-bg-elevated);color:var(--color-text-muted);border:1px solid var(--color-line);cursor:pointer;transition:background var(--motion-fast) var(--ease-default), border-color var(--motion-fast) var(--ease-default), color var(--motion-fast) var(--ease-default);align-items:center;gap:4px;padding:8px 10px;display:inline-flex}.system-action-btn:hover:not(:disabled){background:var(--color-bg-raised);border-color:var(--color-line-emphasis);color:var(--color-text)}.system-action-btn:disabled{opacity:.5;cursor:default}.system-action-chev{color:var(--color-text-muted)}.system-action-spin{border:2px solid var(--color-line-emphasis);border-top-color:var(--color-text);width:18px;height:18px;animation:system-action-spin var(--loop-busy) linear infinite;border-radius:50%}@keyframes system-action-spin{to{transform:rotate(360deg)}}.system-card-restore{color:var(--color-text-muted);font-size:var(--text-xs);cursor:pointer;transition:color var(--motion-fast) var(--ease-default);background:0 0;border:0;align-items:center;gap:6px;margin-right:auto;padding:4px 0;display:inline-flex}.system-card-restore:hover:not(:disabled){color:var(--color-text)}.system-card-restore:disabled{opacity:.5;cursor:default}.specs{gap:5px var(--space-3);grid-template-columns:auto 1fr;align-items:baseline;display:grid}.spec-n{font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap}.spec-v{font-family:var(--font-data);font-size:var(--text-xs);letter-spacing:.4px;color:var(--color-text-dim);font-variant-numeric:tabular-nums;flex-direction:column;gap:3px;display:flex}.system-instruments{gap:var(--space-5);margin-bottom:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));display:grid}.deviations{border:1px solid var(--color-primary-border);border-radius:var(--radius-xl);background:var(--color-surface);-webkit-backdrop-filter:var(--blur-card);backdrop-filter:var(--blur-card);padding:var(--space-5);gap:var(--space-4);flex-direction:column;display:flex}.deviations-hold{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--color-surface-hi);border:1px solid var(--color-line);border-radius:var(--radius-sm);display:flex}.deviations-hold .pill{flex-shrink:0;margin-left:auto}.deviations-hold .btn{flex-shrink:0}.deviations-stage{flex-direction:column;gap:6px;display:flex}.deviations-stage[data-when=future]{opacity:.55}.deviations-stage-name{align-items:baseline;gap:var(--space-2);font-family:var(--font-data);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-text-muted);font-size:9px;display:flex}.deviations-stage-when{color:var(--color-text-disabled);text-transform:none;letter-spacing:.4px}.deviations-row{gap:var(--space-3);padding:5px var(--space-3);border-radius:var(--radius-xs);background:var(--color-surface-soft);grid-template-columns:1fr auto auto;align-items:baseline;display:grid}.deviations-field{font-size:var(--text-xs);color:var(--color-text-muted)}.deviations-new{font-family:var(--font-data);font-size:var(--text-xs);color:var(--color-primary-strong);font-variant-numeric:tabular-nums;white-space:nowrap}.deviations-old{font-family:var(--font-data);font-size:var(--text-xs);color:var(--color-text-disabled);font-variant-numeric:tabular-nums;white-space:nowrap}.deviations-foot{align-items:center;gap:var(--space-2);padding-top:var(--space-4);border-top:1px solid var(--color-line);flex-wrap:wrap;display:flex}.deviations-hint{min-width:220px;font-size:var(--text-xs);color:var(--color-text-muted);flex:1;line-height:1.5}.device-settings-control{flex-shrink:0;justify-content:flex-end;width:200px;display:flex}.device-settings-control>.btn,.device-settings-control>.pill{justify-content:center;width:100%}.system-units{gap:var(--space-3);transition:opacity var(--motion-slow) var(--ease-default);grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));display:grid}.system-unit{border:1px solid var(--color-line);border-radius:var(--radius-xl);background:var(--color-surface);-webkit-backdrop-filter:var(--blur-card);backdrop-filter:var(--blur-card);transition:border-color var(--motion-base) var(--ease-default);flex-direction:column;display:flex;position:relative;overflow:hidden}.system-unit:before{content:"";background:var(--color-line-emphasis);height:2px;transition:background var(--motion-base) var(--ease-default);position:absolute;top:0;left:0;right:0}.system-unit[data-kind=light][data-state=on]{border-color:var(--color-warn-border)}.system-unit[data-kind=light][data-state=on]:before{background:linear-gradient(90deg, transparent, var(--color-warn), transparent)}.system-unit[data-kind=air][data-state=on]{border-color:var(--color-primary-border)}.system-unit[data-kind=air][data-state=on]:before{background:linear-gradient(90deg, transparent, var(--color-primary), transparent)}.system-unit[data-kind=water][data-state=on]{border-color:var(--color-ok-border)}.system-unit[data-kind=water][data-state=on]:before{background:linear-gradient(90deg, transparent, var(--color-ok), transparent)}.system-unit-head{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4) 0;color:var(--color-text-muted);display:flex}.system-unit-head>svg{transition:color var(--motion-fast) var(--ease-default);flex-shrink:0}.system-unit[data-kind=light][data-state=on] .system-unit-head>svg{color:var(--color-warn)}.system-unit[data-kind=air][data-state=on] .system-unit-head>svg{color:var(--color-primary)}.system-unit[data-kind=water][data-state=on] .system-unit-head>svg{color:var(--color-ok)}.system-unit[data-kind=air][data-state=on] .system-unit-head>svg{animation:system-unit-spin var(--loop-work) linear infinite;transform-origin:50%}@keyframes system-unit-spin{to{transform:rotate(360deg)}}.system-unit[data-kind=light][data-state=on] .system-unit-head>svg{animation:system-unit-shine var(--loop-work) var(--ease-in-out) infinite}@keyframes system-unit-shine{0%,to{opacity:.78;filter:none}50%{opacity:1;filter:drop-shadow(0 0 3px var(--color-warn))}}.system-unit[data-kind=water][data-state=on] .system-unit-head>svg{animation:system-unit-drip var(--loop-drip) ease-in infinite;transform-origin:50% 30%}@keyframes system-unit-drip{0%{transform:translateY(0)scale(1)}70%{transform:translateY(1.5px)scale(1.09)}85%{opacity:.55;transform:translateY(3px)scale(.94)}to{opacity:1;transform:translateY(0)scale(1)}}.system-unit-name{min-width:0;font-family:var(--font-display);font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-text-muted);flex:1;margin:0}.system-unit-body{gap:var(--space-2);padding:var(--space-3) var(--space-4) var(--space-4);flex-direction:column;flex:1;display:flex}.system-unit-readouts{gap:var(--space-4);flex-wrap:wrap;display:flex}.system-unit-readout{flex-direction:column;gap:2px;display:flex}.system-unit-value{font-family:var(--font-data);font-size:var(--text-2xl);font-weight:var(--weight-light);letter-spacing:-1.4px;color:var(--color-text);font-variant-numeric:tabular-nums;line-height:1}.system-unit-unit{font-size:var(--text-md);font-weight:var(--weight-regular);color:var(--color-text-muted);letter-spacing:var(--tracking-normal);margin-left:2px}.system-unit-caption{font-size:var(--text-xs);color:var(--color-text-disabled);letter-spacing:var(--tracking-wide)}.system-unit-line{font-size:var(--text-sm);color:var(--color-text-dim);line-height:var(--leading-snug)}.system-unit-note{padding-top:var(--space-2);font-family:var(--font-data);letter-spacing:.6px;text-transform:uppercase;color:var(--color-text-disabled);margin-top:auto;font-size:10px}.system-unit-foot{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-top:1px solid var(--color-line);background:#9eb0ff08;flex-wrap:wrap;display:flex}.system-unit-btn{height:34px;padding:0 var(--space-3);border-radius:var(--radius-sm);background:var(--color-surface-hi);border:1px solid var(--color-line-emphasis);color:var(--color-text-dim);font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;transition:all var(--motion-fast) var(--ease-default);align-items:center;gap:6px;display:inline-flex;position:relative}.system-unit-btn:hover:not(:disabled){background:var(--color-primary-bg-hi);border-color:var(--color-primary-border);color:var(--color-primary-strong)}.system-unit-btn:active:not(:disabled){transform:scale(.97)}.system-unit-btn:disabled{opacity:.45;cursor:not-allowed}.system-unit-btn-chevron{opacity:.55;flex-shrink:0}.system-unit-btn[data-pending=true] .system-unit-btn-label,.system-unit-btn[data-pending=true] .system-unit-btn-chevron{visibility:hidden}.system-unit-spin{border:2px solid var(--color-line-emphasis);border-top-color:var(--color-text);width:14px;height:14px;animation:system-unit-spin var(--loop-busy) linear infinite;border-radius:50%;margin:-7px 0 0 -7px;position:absolute;top:50%;left:50%}.system-unit-glow{pointer-events:none;opacity:0;transition:opacity var(--motion-slow) var(--ease-default);background:radial-gradient(120% 80% at 50% 0,#f4c56b1f,#0000 60%);position:absolute;inset:0}.system-unit[data-kind=light][data-state=on] .system-unit-glow{opacity:1;animation:system-unit-lamp var(--loop-ambient) var(--ease-in-out) infinite}@keyframes system-unit-lamp{0%,to{opacity:.7}50%{opacity:1}}.system-units[data-trust=deaf] .system-unit-btn{opacity:.45;pointer-events:none}.system-units[data-trust=stale]{opacity:.6}.system-units[data-trust=stale] .system-unit:before{background:var(--color-line)}.system-units[data-trust=stale] .system-unit{border-color:var(--color-line)}.system-units[data-trust=stale] .system-unit-value{color:var(--color-text-disabled)}.system-units[data-trust=stale] .system-unit-btn{opacity:.45;pointer-events:none}.system-unit-stale{color:var(--color-warn)}.system-units[data-trust=stale] .system-unit-stale{color:var(--color-bad)}.system-unit-sep{animation:pulse var(--loop-pulse) var(--ease-in-out) infinite}.system-units[data-trust=stale] .system-unit-sep{opacity:.35;animation:none}.day-bar{width:100%;display:block}.day-bar svg{display:block}.day-bar-scale{color:var(--color-text-disabled);justify-content:space-between;margin-top:1px;font-size:9px;display:flex}.uptime{display:block}.uptime-track{height:16px;position:relative}.uptime-track svg{display:block}.uptime-sample.ok{fill:var(--color-ok);opacity:.45}.uptime-sample.bad{fill:var(--color-bad)}.uptime-sample.warn{fill:var(--color-warn)}.uptime-now{background:var(--color-text);border-radius:1px;width:2px;position:absolute;top:-3px;bottom:-3px;right:0}.uptime-scale{height:13px;color:var(--color-text-disabled);margin-top:5px;font-size:9px;position:relative}.uptime-tick{white-space:nowrap;position:absolute;top:0;transform:translate(-50%)}.uptime-tick.start{left:0;transform:none}.uptime-tick.now{color:var(--color-text);right:0;transform:none}.link-rail{border:1px solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-surface-soft);-webkit-backdrop-filter:var(--blur-card);backdrop-filter:var(--blur-card);margin-bottom:var(--space-3);transition:border-color var(--motion-base) var(--ease-default), background var(--motion-base) var(--ease-default);position:relative;overflow:hidden}.link-rail:before{content:"";background:var(--color-ok);width:3px;transition:background var(--motion-base) var(--ease-default);position:absolute;top:0;bottom:0;left:0}.link-rail[data-health=deaf]{border-color:var(--color-warn-border);background:linear-gradient(90deg, var(--color-warn-bg), transparent 45%), var(--color-surface)}.link-rail[data-health=deaf]:before{background:var(--color-warn)}.link-rail[data-health=off]{border-color:var(--color-bad-border);background:linear-gradient(90deg, var(--color-bad-bg), transparent 45%), var(--color-surface)}.link-rail[data-health=off]:before{background:var(--color-bad)}.link-rail-head{align-items:center;gap:var(--space-3);min-height:46px;padding:var(--space-2) var(--space-4) var(--space-2) var(--space-5);display:flex}.link-rail-head>svg{color:var(--color-ok);transition:color var(--motion-base) var(--ease-default);flex-shrink:0}.link-rail[data-health=deaf] .link-rail-head>svg{color:var(--color-warn)}.link-rail[data-health=off] .link-rail-head>svg{color:var(--color-bad)}.link-rail-name{font-family:var(--font-display);font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-text-muted);flex-shrink:0}.link-rail-mid{align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;flex:1;min-width:0;display:flex}.link-rail-age{font-size:var(--text-xs);color:var(--color-text-disabled);white-space:nowrap}.link-rail-actions{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.link-rail-btn{height:28px;padding:0 var(--space-3);border-radius:var(--radius-sm);background:var(--color-surface-hi);border:1px solid var(--color-line-emphasis);color:var(--color-text-dim);font-family:var(--font-body);font-size:var(--text-xs);cursor:pointer;transition:all var(--motion-fast) var(--ease-default);align-items:center;gap:6px;display:inline-flex}.link-rail-btn:hover:not(:disabled){background:var(--color-primary-bg-hi);border-color:var(--color-primary-border);color:var(--color-primary-strong)}.link-rail-btn:disabled{opacity:.5;cursor:default}.link-rail-toggle{border-radius:var(--radius-sm);border:1px solid var(--color-line);width:28px;height:28px;color:var(--color-text-muted);cursor:pointer;transition:all var(--motion-fast) var(--ease-default);background:0 0;place-items:center;display:grid}.link-rail-toggle:hover{border-color:var(--color-line-emphasis);color:var(--color-text)}.link-rail-toggle svg{transition:transform var(--motion-base) var(--ease-default)}.link-rail-toggle svg.open{transform:rotate(180deg)}@media (width<=700px){.link-rail-head{flex-wrap:wrap}.link-rail-mid{order:3;width:100%}}.link-rail-body{border-top:1px solid var(--color-line);padding:var(--space-4) var(--space-5);gap:var(--space-4);flex-direction:column;display:flex}.link-rail-state{font-family:var(--font-display);font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--color-text-dim);line-height:var(--leading-snug);margin:0}.link-rail-col-title{margin:0 0 var(--space-3);font-family:var(--font-display);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-text-disabled)}.link-rail-silence{margin:var(--space-3) 0 0;font-size:var(--text-sm);color:var(--color-text-muted);line-height:var(--leading-normal)}.link-rail-silence strong{color:var(--color-text-dim);font-weight:var(--weight-medium)}.grace-banner{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);background:var(--color-bad-bg,var(--color-surface-soft));border:1px solid var(--color-bad-border,var(--color-line));border-left:3px solid var(--color-bad,var(--color-text));border-radius:var(--radius-sm);color:var(--color-text);flex-wrap:wrap;display:flex}.grace-banner-actions{gap:var(--space-2);flex-shrink:0;display:flex}.space-chip{border-radius:var(--radius-pill);background:var(--color-surface-soft);border:1px solid var(--color-line-emphasis);height:32px;color:var(--color-text-dim);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;max-width:220px;transition:all var(--motion-fast) var(--ease-default);align-items:center;gap:7px;padding:0 10px;display:inline-flex}.space-chip:hover{color:var(--color-primary-strong);border-color:#9eb0ff59}.space-chip.filtered{color:var(--color-primary-soft);background:var(--color-primary-bg-hi);border-color:#9eb0ff4d}.space-chip .space-chip-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.space-chip .chev{opacity:.7;flex-shrink:0;width:14px;height:14px}.space-chip .space-chip-dot{background:var(--color-primary-soft);width:6px;height:6px;box-shadow:0 0 8px var(--color-primary-soft);border-radius:50%;flex-shrink:0}.space-badge{font-size:var(--text-xs);color:var(--color-text-muted);align-items:center;gap:5px;max-width:100%;display:inline-flex}.space-badge svg{opacity:.8;flex-shrink:0;width:12px;height:12px}.space-badge span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.member-row{align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-top:1px solid var(--color-line);display:flex}.member-row:first-child{border-top:none}.member-avatar{background:var(--color-primary-bg-hi);width:34px;height:34px;color:var(--color-primary-soft);font-weight:var(--weight-semibold);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.member-info{flex:1;min-width:0}.member-info .member-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.member-info .member-mail{color:var(--color-text-muted);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.member-actions{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.auth-card{width:100%;max-width:400px;padding:var(--space-8) var(--space-7);border-color:var(--color-line-emphasis);animation:auth-rise var(--motion-slow) var(--ease-default) both;box-shadow:0 0 0 1px #9eb0ff0f,0 24px 70px -30px #000000bf,0 0 44px -14px #9eb0ff66}@keyframes auth-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.auth-brand{align-items:center;gap:var(--space-3);margin-bottom:var(--space-6);display:flex}.auth-mark{width:40px;height:40px;color:var(--color-primary-strong);background:var(--color-primary-bg);border:1px solid var(--color-primary-border);box-shadow:var(--shadow-glow-primary);border-radius:50%;place-items:center;display:grid}.auth-mark svg{width:22px;height:22px}.auth-wordmark{width:auto;height:20px;display:block}.auth-title{font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--text-2xl);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);margin-bottom:var(--space-2);background:linear-gradient(100deg, var(--color-primary-strong), var(--color-primary-soft) 55%, var(--color-dusk));color:#0000;-webkit-background-clip:text;background-clip:text}.auth-sub{font-size:var(--text-base);color:var(--color-text-muted);line-height:var(--leading-normal);margin-bottom:var(--space-6)}.auth-sub strong{color:var(--color-text-dim);font-weight:var(--weight-semibold)}.auth-card .form-stack .btn{width:100%;margin-top:var(--space-1);justify-content:center}.auth-footer{margin-top:var(--space-6);gap:var(--space-3);text-align:center;font-size:var(--text-sm);color:var(--color-text-muted);flex-direction:column;align-items:center;display:flex}.auth-code{font-family:var(--font-mono,ui-monospace, "SF Mono", monospace);font-size:var(--text-xl);letter-spacing:10px;text-align:center;padding-left:10px}.auth-divider{border:0;border-top:1px solid var(--color-line);margin:var(--space-6) 0}
