@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-cyrillic-wght-normal-Dvxsihut.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-greek-wght-normal-DL7QRZyv.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-vietnamese-wght-normal-usUDDRr7.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-latin-ext-wght-normal-Ch3YOpNY.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-latin-wght-normal-DHIcAJRg.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color:#17201b;background:#f5f7f6;color-scheme:light;--chart-tooltip-bg: #ffffff;--chart-tooltip-border: #d7ddd8;--chart-tooltip-text: #17201b;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}:root[data-theme=dark]{color:#e8f2eb;background:#0d1411;color-scheme:dark;--chart-tooltip-bg: #121c17;--chart-tooltip-border: #3a5548;--chart-tooltip-text: #f4fbf6}*{box-sizing:border-box}html,body,#root{width:100%;max-width:100%}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden;background:linear-gradient(90deg,rgba(23,32,27,.04) 1px,transparent 1px),linear-gradient(0deg,rgba(23,32,27,.035) 1px,transparent 1px),#f5f7f6;background-size:38px 38px}:root[data-theme=dark] body{background:radial-gradient(circle at top left,rgba(155,220,189,.12),transparent 32rem),linear-gradient(90deg,rgba(232,242,235,.035) 1px,transparent 1px),linear-gradient(0deg,rgba(232,242,235,.03) 1px,transparent 1px),#0d1411}button,input{font:inherit}:root[data-theme=dark] .login-panel,:root[data-theme=dark] .metric-card,:root[data-theme=dark] .panel,:root[data-theme=dark] .alert-item,:root[data-theme=dark] .equipment-card,:root[data-theme=dark] .device-row,:root[data-theme=dark] .activation-row,:root[data-theme=dark] .cultivation-month,:root[data-theme=dark] .cultivation-phase,:root[data-theme=dark] .calendar-day,:root[data-theme=dark] .icon-button,:root[data-theme=dark] .secondary-button,:root[data-theme=dark] .metric-toggles button,:root[data-theme=dark] .equipment-actions button,:root[data-theme=dark] .history-controls select,:root[data-theme=dark] .history-controls input,:root[data-theme=dark] .cultivation-form input,:root[data-theme=dark] .cultivation-form select,:root[data-theme=dark] .login-panel input,:root[data-theme=dark] .number-field{border-color:#2c4036;color:#e8f2eb;background:#121c17f0;box-shadow:0 18px 46px #00000047}:root[data-theme=dark] .sidebar,:root[data-theme=dark] pre{background:#09100d}:root[data-theme=dark] .eyebrow,:root[data-theme=dark] .last-update,:root[data-theme=dark] .dashboard-cycle-text,:root[data-theme=dark] .login-copy,:root[data-theme=dark] .login-panel label span,:root[data-theme=dark] .metric-label,:root[data-theme=dark] .metric-value span,:root[data-theme=dark] .metric-detail,:root[data-theme=dark] .panel-heading p,:root[data-theme=dark] .history-controls label span,:root[data-theme=dark] .device-row small,:root[data-theme=dark] .equipment-card-top small,:root[data-theme=dark] .equipment-card p,:root[data-theme=dark] .equipment-facts span,:root[data-theme=dark] .activation-row small,:root[data-theme=dark] .settings-meta,:root[data-theme=dark] .cultivation-summary,:root[data-theme=dark] .cultivation-form label span,:root[data-theme=dark] .phase-days,:root[data-theme=dark] .month-weekdays span,:root[data-theme=dark] .calendar-grow-day,:root[data-theme=dark] .calendar-day small,:root[data-theme=dark] .cultivation-phase p,:root[data-theme=dark] .cultivation-phase small,:root[data-theme=dark] .settings-section p,:root[data-theme=dark] .settings-fields label>span,:root[data-theme=dark] .settings-profile-heading p,:root[data-theme=dark] .time-settings-row label span,:root[data-theme=dark] .settings-fields em,:root[data-theme=dark] .number-field small,:root[data-theme=dark] .alert-item p,:root[data-theme=dark] .empty-state{color:#aebfb5}:root[data-theme=dark] h1,:root[data-theme=dark] h2,:root[data-theme=dark] h3,:root[data-theme=dark] .brand strong,:root[data-theme=dark] .toggle-row,:root[data-theme=dark] .metric-value,:root[data-theme=dark] .empty-state strong,:root[data-theme=dark] .equipment-facts strong,:root[data-theme=dark] .settings-meta strong,:root[data-theme=dark] .cultivation-summary strong,:root[data-theme=dark] .cultivation-phase strong,:root[data-theme=dark] .month-title,:root[data-theme=dark] .calendar-day-top strong,:root[data-theme=dark] .calendar-phase-label,:root[data-theme=dark] .equipment-card-top strong,:root[data-theme=dark] .alert-item strong{color:#f4fbf6}:root[data-theme=dark] nav button:hover,:root[data-theme=dark] nav button.active,:root[data-theme=dark] .secondary-button:hover:not(:disabled),:root[data-theme=dark] .metric-toggles button:hover,:root[data-theme=dark] .metric-toggles button.active,:root[data-theme=dark] .equipment-actions button:hover:not(:disabled),:root[data-theme=dark] .equipment-actions button.active,:root[data-theme=dark] .calendar-month-button:hover:not(:disabled){border-color:#5fa37c;color:#fff;background:#9bdcbd21}:root[data-theme=dark] .metric-icon,:root[data-theme=dark] .device-row.head,:root[data-theme=dark] .activation-row.head,:root[data-theme=dark] .settings-meta span,:root[data-theme=dark] .cultivation-summary span,:root[data-theme=dark] .phase-targets span,:root[data-theme=dark] .equipment-facts span,:root[data-theme=dark] .number-field small{border-color:#2c4036;color:#d4e6db;background:#17251f}:root[data-theme=dark] .brand-mark,:root[data-theme=dark] .primary-button{color:#07100b;background:#9bdcbd}:root[data-theme=dark] .alert-item,:root[data-theme=dark] .device-row,:root[data-theme=dark] .activation-row,:root[data-theme=dark] .cultivation-month,:root[data-theme=dark] .cultivation-phase,:root[data-theme=dark] .calendar-day,:root[data-theme=dark] .settings-section{border-color:#24362e}:root[data-theme=dark] .settings-profile-card,:root[data-theme=dark] .time-settings-row input{border-color:#24362e;color:#e8f2eb;background:#121c17f0}:root[data-theme=dark] .loading-grid span{background:linear-gradient(90deg,#16231d,#22362c,#16231d);background-size:220% 100%}:root[data-theme=dark] .camera-stage,:root[data-theme=dark] .camera-meta span,:root[data-theme=dark] .gallery-card,:root[data-theme=dark] .gallery-carousel,:root[data-theme=dark] .gallery-pagination,:root[data-theme=dark] .gallery-carousel-meta span{border-color:#2c4036;color:#e8f2eb;background:#121c17f0}:root[data-theme=dark] .gallery-card span,:root[data-theme=dark] .gallery-carousel p,:root[data-theme=dark] .gallery-carousel-kicker,:root[data-theme=dark] .gallery-pagination span,:root[data-theme=dark] .gallery-carousel-meta span{color:#aebfb5}:root[data-theme=dark] .camera-meta strong,:root[data-theme=dark] .gallery-card strong,:root[data-theme=dark] .gallery-pagination strong,:root[data-theme=dark] .gallery-carousel h3{color:#f4fbf6}:root[data-theme=dark] .gallery-carousel-stage{border-color:#24362e;background:#09100d}:root[data-theme=dark] .gallery-carousel-arrow{border-color:#2c4036;color:#f4fbf6;background:#121c17c7}:root[data-theme=dark] .gallery-carousel-arrow:hover,:root[data-theme=dark] .gallery-card.selected{border-color:#5fa37c}:root[data-theme=dark] .form-message.success,:root[data-theme=dark] .status-pill.normal,:root[data-theme=dark] .equipment-state.active{color:#9be7b8;background:#2f9e652e}:root[data-theme=dark] .form-message.error,:root[data-theme=dark] .login-error,:root[data-theme=dark] .error-banner,:root[data-theme=dark] .danger-button,:root[data-theme=dark] .status-pill.alert{color:#ffb4aa;background:#e0564a29;border-color:#e0564a57}:root[data-theme=dark] .status-pill.attention{color:#ffd980;background:#d997002e}:root[data-theme=dark] .status-pill.unknown,:root[data-theme=dark] .equipment-state.inactive{color:#c8d0d7;background:#8b949e2e}:root[data-theme=dark] .number-field input,:root[data-theme=dark] .settings-fields input,:root[data-theme=dark] .time-settings-row input,:root[data-theme=dark] .history-controls input,:root[data-theme=dark] .cultivation-form input,:root[data-theme=dark] .history-controls select,:root[data-theme=dark] .login-panel input{color:#f4fbf6;background:transparent;caret-color:#9bdcbd}:root[data-theme=dark] .cultivation-form select,:root[data-theme=dark] .cultivation-form select option{color:#f4fbf6;background:#121c17;color-scheme:dark}:root[data-theme=dark] .number-field input::placeholder,:root[data-theme=dark] .settings-fields input::placeholder,:root[data-theme=dark] .history-controls input::placeholder,:root[data-theme=dark] .login-panel input::placeholder{color:#7f9388}:root[data-theme=dark] .number-field input:focus,:root[data-theme=dark] .settings-fields input:focus,:root[data-theme=dark] .time-settings-row input:focus,:root[data-theme=dark] .history-controls input:focus,:root[data-theme=dark] .cultivation-form input:focus,:root[data-theme=dark] .history-controls select:focus,:root[data-theme=dark] .login-panel input:focus{outline:2px solid rgba(155,220,189,.42);outline-offset:2px}:root[data-theme=dark] .month-title,:root[data-theme=dark] .month-weekdays span,:root[data-theme=dark] .calendar-day.outside,:root[data-theme=dark] .calendar-month-button{color:#e8f2eb;background:#17251f}:root[data-theme=dark] .month-title,:root[data-theme=dark] .month-weekdays span,:root[data-theme=dark] .calendar-day,:root[data-theme=dark] .calendar-month-button{border-color:#2c4036}:root[data-theme=dark] .cultivation-phase-collapse{border-color:#2c4036;background:#121c17f0}:root[data-theme=dark] .cultivation-phase-collapse summary{color:#f4fbf6;background:#17251f}:root[data-theme=dark] .cultivation-phase-collapse summary small,:root[data-theme=dark] .cultivation-phase-collapse summary em{color:#aebfb5}:root[data-theme=dark] .cultivation-phase-collapse summary em{background:#22362c}:root[data-theme=dark] .calendar-day.today{color:#f4fbf6;background:#2f9e653d;outline-color:#9bdcbdb8}:root[data-theme=dark] .calendar-day.past{color:#d8e8dd;background:linear-gradient(135deg,#9bdcbd21,#121c17f5)}:root[data-theme=dark] .calendar-day.past .calendar-day-top strong,:root[data-theme=dark] .calendar-day.past .calendar-phase-label{color:#f4fbf6}:root[data-theme=dark] .calendar-day.past .calendar-grow-day,:root[data-theme=dark] .calendar-day.past small{color:#c7dbcf}:root[data-theme=dark] .calendar-day-top span{color:#07100b;background:#9bdcbd}:root[data-theme=dark] .calendar-day-top .past-badge{color:#d8e8dd;background:#9bdcbd38}:root[data-theme=dark] .calendar-day.outside .calendar-day-top strong,:root[data-theme=dark] .calendar-day.outside .calendar-grow-day,:root[data-theme=dark] .calendar-day.outside .calendar-phase-label,:root[data-theme=dark] .calendar-day.outside small,:root[data-theme=dark] .month-title-with-actions span{color:#8ea398}.app-shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:20px;color:#eef5ef;background:#17201b;border-right:1px solid rgba(255,255,255,.08)}.brand{display:flex;align-items:center;gap:12px;min-height:48px;margin-bottom:28px}.brand-mark,.metric-icon{display:inline-grid;width:42px;height:42px;place-items:center;border-radius:8px}.brand-mark{color:#17201b;background:#9bdcbd}.logo-mark{overflow:hidden;background:#07100b}.logo-mark img{display:block;width:86%;height:86%;object-fit:contain}.brand strong{display:block;font-size:15px;letter-spacing:0}.brand small{color:#a9b6ae;font-size:12px}nav{display:grid;gap:8px}nav button,.icon-button{display:inline-flex;align-items:center;justify-content:flex-start;gap:10px;min-height:42px;border:0;border-radius:8px;cursor:pointer;color:inherit;background:transparent;transition:background .16s ease,transform .16s ease,color .16s ease}nav button{width:100%;padding:0 12px;color:#c9d3ce}nav button:hover,nav button.active{color:#fff;background:#ffffff1a}nav button:active,.icon-button:active{transform:translateY(1px)}main{width:100%;max-width:1480px;padding:28px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.eyebrow{color:#5f6b63;font-size:13px;font-weight:700;text-transform:uppercase}h1,h2,p{margin:0}h1{margin-top:4px;font-size:32px;line-height:1.1;letter-spacing:0}h2{font-size:18px;letter-spacing:0}.dashboard-cycle-text{margin-top:8px;color:#5f6b63;font-size:14px;font-weight:700}.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px}.last-update{min-width:116px;color:#5f6b63;font-size:13px;text-align:right}.icon-button{width:42px;justify-content:center;border:1px solid #d7ddd8;color:#17201b;background:#fff}.login-shell{display:grid;width:100%;max-width:none;min-height:100vh;padding:24px;place-items:center}.login-panel{display:grid;width:min(100%,420px);gap:16px;padding:24px;border:1px solid #d7ddd8;border-radius:8px;background:#fffffff5;box-shadow:0 18px 48px #17201b1a}.login-brand{display:flex;align-items:center;gap:12px}.login-brand h1{font-size:28px}.login-copy{color:#5f6b63;font-size:14px}.login-panel label{display:grid;gap:7px}.login-panel label span{color:#5f6b63;font-size:12px;font-weight:800;text-transform:uppercase}.login-panel input{min-height:44px;padding:0 12px;border:1px solid #d7ddd8;border-radius:8px;color:#17201b;background:#fff}.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;border:0;border-radius:8px;color:#17201b;background:#9bdcbd;cursor:pointer;font-weight:800;transition:opacity .16s ease,transform .16s ease,background .16s ease}.primary-button:hover:not(:disabled){background:#88d4af}.primary-button:active:not(:disabled){transform:translateY(1px)}.primary-button:disabled{cursor:not-allowed;opacity:.58}.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:0 14px;border:1px solid #d7ddd8;border-radius:8px;color:#17201b;background:#fff;cursor:pointer;font-weight:800;transition:border-color .16s ease,transform .16s ease,background .16s ease,opacity .16s ease}.secondary-button:hover:not(:disabled){border-color:#8db7a0;background:#edf7f1}.secondary-button:active:not(:disabled){transform:translateY(1px)}.secondary-button:disabled{cursor:not-allowed;opacity:.58}.danger-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:0 10px;border:1px solid #ffc9c3;border-radius:8px;color:#8b1d16;background:#fff0ee;cursor:pointer;font-size:12px;font-weight:850;transition:border-color .16s ease,transform .16s ease,background .16s ease,opacity .16s ease}.danger-button:hover:not(:disabled){border-color:#e0564a;background:#ffe0dd}.danger-button:active:not(:disabled){transform:translateY(1px)}.danger-button:disabled{cursor:not-allowed;opacity:.58}.login-error{padding:11px 12px;border:1px solid #ffc9c3;border-radius:8px;color:#8b1d16;background:#fff0ee;font-size:13px}.status-pill{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:800;white-space:nowrap}.status-pill.normal{color:#0d5936;background:#dff5e9}.status-pill.attention{color:#795100;background:#fff0c2}.status-pill.alert{color:#8b1d16;background:#ffe0dd}.status-pill.unknown{color:#4d5660;background:#e8ecef}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-bottom:14px}.metric-card,.panel{border:1px solid #d7ddd8;border-radius:8px;background:#fffffff0;box-shadow:0 14px 40px #17201b12}.metric-card{min-height:176px;padding:18px;transition:transform .16s ease,box-shadow .16s ease}.metric-card:hover{transform:translateY(-2px);box-shadow:0 18px 44px #17201b1a}.metric-card.normal{border-top:3px solid #2f9e65}.metric-card.attention{border-top:3px solid #d99700}.metric-card.alert{border-top:3px solid #e0564a}.metric-card.unknown{border-top:3px solid #8b949e}.metric-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.metric-icon{color:#17201b;background:#edf2ee}.metric-label{color:#5f6b63;font-size:13px;font-weight:700}.metric-value{display:flex;align-items:baseline;gap:6px;margin-top:8px;font-size:34px;font-weight:850;line-height:1;letter-spacing:0}.metric-value span{color:#5f6b63;font-size:15px;font-weight:800}.metric-detail{margin-top:16px;color:#68756d;font-size:13px}.content-grid,.docs-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(320px,.8fr);gap:14px}.panel{padding:18px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.panel-heading p{margin-top:4px;color:#68756d;font-size:13px}.history-controls{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr)) minmax(260px,auto);gap:12px;align-items:end;margin:-2px 0 16px}.history-controls label{display:grid;gap:6px}.history-controls label span{color:#5f6b63;font-size:12px;font-weight:800;text-transform:uppercase}.history-controls select,.history-controls input{width:100%;min-height:40px;padding:0 12px;border:1px solid #d7ddd8;border-radius:8px;color:#17201b;background:#fff;font:inherit;font-size:14px}.history-controls select{padding-right:34px}.metric-toggles{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.metric-toggles button{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 12px;border:1px solid #d7ddd8;border-radius:8px;color:#5f6b63;background:#fff;cursor:pointer;font-size:13px;font-weight:800;transition:border-color .16s ease,background .16s ease,color .16s ease,transform .16s ease}.metric-toggles button:hover,.metric-toggles button.active{border-color:#8db7a0;color:#17201b;background:#edf7f1}.metric-toggles button:active{transform:translateY(1px)}.metric-swatch{width:10px;height:10px;border-radius:999px;flex:0 0 auto}.metric-swatch.temperature{background:#e0564a}.metric-swatch.humidity{background:#147f8b}.metric-swatch.vpd{background:#7957d5}.custom-range{display:grid;grid-column:1 / -1;grid-template-columns:repeat(2,minmax(180px,260px));gap:12px;justify-content:start}.chart-shell{width:100%;height:330px;min-height:330px}.chart-shell.tall{height:520px;min-height:520px}.chart-shell.with-legend{height:300px;min-height:300px}.chart-tooltip-card{display:grid;gap:6px;max-width:280px;padding:10px 12px;border:1px solid var(--chart-tooltip-border);border-radius:8px;color:var(--chart-tooltip-text);background:var(--chart-tooltip-bg);box-shadow:0 14px 34px #0000002e;font-size:12px}.chart-tooltip-card strong{font-size:13px}.chart-tooltip-card span{display:block}.chart-tooltip-line{display:grid!important;grid-template-columns:10px minmax(0,1fr);gap:2px 7px;align-items:center;padding-top:4px;font-weight:800}.chart-tooltip-line b{width:10px;height:10px;border-radius:999px;display:inline-block}.alert-list{display:grid;gap:10px}.alert-item{padding:14px;border-radius:8px;border:1px solid #e1e6e2;background:#fff}.alert-item.attention{border-left:4px solid #d99700}.alert-item.alert{border-left:4px solid #e0564a}.alert-item strong{display:block;margin-bottom:5px}.alert-item p{color:#68756d;font-size:13px}.full-panel{min-height:calc(100vh - 122px)}.device-table{display:grid;overflow:hidden;border:1px solid #d7ddd8;border-radius:8px}.device-row{display:grid;grid-template-columns:minmax(220px,1.5fr) minmax(140px,.8fr) minmax(110px,.6fr) minmax(100px,.6fr) minmax(130px,.7fr);gap:14px;align-items:center;min-height:64px;padding:10px 14px;border-bottom:1px solid #e5ebe6;background:#fff}.device-row:last-child{border-bottom:0}.device-row.head{min-height:42px;color:#5f6b63;font-size:12px;font-weight:800;text-transform:uppercase;background:#eef3ef}.device-row small{display:block;margin-top:3px;color:#68756d}.equipment-layout{display:grid;grid-template-columns:minmax(320px,.82fr) minmax(420px,1.18fr);gap:14px;align-items:start}.equipment-grid{display:grid;gap:12px}.equipment-card{display:grid;gap:14px;padding:14px;border:1px solid #d7ddd8;border-left:4px solid #8b949e;border-radius:8px;background:#fff}.equipment-card.active{border-left-color:#2f9e65}.equipment-card.inactive{border-left-color:#8b949e}.equipment-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.equipment-card-top strong{display:block;font-size:16px}.equipment-card-top small{display:block;margin-top:3px;color:#68756d}.equipment-card p{color:#5f6b63;font-size:13px;line-height:1.45}.equipment-state{display:inline-flex;align-items:center;gap:7px;min-height:30px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:850;white-space:nowrap}.equipment-state.active{color:#0d5936;background:#dff5e9}.equipment-state.inactive{color:#4d5660;background:#e8ecef}.equipment-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.equipment-facts span{min-height:46px;padding:8px 10px;border:1px solid #e5ebe6;border-radius:8px;color:#68756d;background:#f7faf8;font-size:12px}.equipment-facts strong{display:block;margin-top:2px;color:#17201b}.equipment-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.equipment-actions button{min-height:40px;border:1px solid #d7ddd8;border-radius:8px;color:#5f6b63;background:#fff;cursor:pointer;font-weight:850;transition:border-color .16s ease,background .16s ease,color .16s ease,transform .16s ease,opacity .16s ease}.equipment-actions button:hover:not(:disabled),.equipment-actions button.active{border-color:#8db7a0;color:#17201b;background:#edf7f1}.equipment-actions button:active:not(:disabled){transform:translateY(1px)}.equipment-actions button:disabled{cursor:not-allowed;opacity:.6}.activation-table{display:grid;overflow:hidden;border:1px solid #d7ddd8;border-radius:8px}.activation-row{display:grid;grid-template-columns:minmax(150px,.85fr) minmax(110px,.55fr) minmax(130px,.65fr) minmax(120px,.55fr) minmax(220px,1.4fr);gap:12px;align-items:center;min-height:62px;padding:10px 14px;border-bottom:1px solid #e5ebe6;background:#fff;font-size:13px}.activation-row:last-child{border-bottom:0}.activation-row.head{min-height:42px;color:#5f6b63;font-size:12px;font-weight:800;text-transform:uppercase;background:#eef3ef}.activation-row small{display:block;margin-top:3px;color:#68756d}.settings-stack{display:grid;gap:18px}.settings-panel form{display:grid;gap:16px}.settings-profile-card{display:grid;gap:16px;padding:16px;border:1px solid #d7ddd8;border-radius:8px;background:#fff}.settings-profile-card.night-card{border-left:4px solid #7957d5}.settings-profile-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.settings-profile-heading h3{display:inline-flex;align-items:center;gap:8px}.settings-profile-heading p{margin-top:4px;color:#68756d;font-size:13px}.toggle-row{display:inline-flex;align-items:center;gap:8px;min-height:40px;color:#17201b;font-size:13px;font-weight:850;white-space:nowrap}.toggle-row input{width:18px;height:18px;accent-color:#2f9e65}.time-settings-row{display:flex;flex-wrap:wrap;gap:12px}.time-settings-row label{display:grid;min-width:min(100%,160px);gap:6px}.time-settings-row label span{color:#5f6b63;font-size:12px;font-weight:800;text-transform:uppercase}.time-settings-row input{min-height:42px;padding:0 12px;border:1px solid #d7ddd8;border-radius:8px;color:#17201b;background:#fff}.cultivation-form{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin-bottom:14px}.cultivation-form label{display:grid;min-width:min(100%,280px);gap:6px}.cultivation-form label span{color:#5f6b63;font-size:12px;font-weight:800;text-transform:uppercase}.cultivation-form input,.cultivation-form select{min-height:42px;padding:0 12px;border:1px solid #d7ddd8;border-radius:8px;color:#17201b;background:#fff}.cultivation-form input:disabled{cursor:not-allowed;opacity:.58}.cultivation-summary{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0;color:#5f6b63;font-size:13px}.cultivation-summary span{padding:8px 10px;border:1px solid #d7ddd8;border-radius:8px;background:#f7faf8}.cultivation-summary strong{color:#17201b}.cultivation-calendar{display:grid;gap:18px}.cultivation-month{overflow:hidden;border:1px solid #d7ddd8;border-radius:14px;background:#fff}.month-title{padding:14px 16px;border-bottom:1px solid #e5ebe6;color:#17201b;font-size:16px;font-weight:900;text-transform:capitalize;background:#f7faf8}.month-title-with-actions{display:grid;grid-template-columns:minmax(130px,auto) minmax(0,1fr) minmax(130px,auto);align-items:center;gap:12px;text-align:center}.month-title-with-actions strong,.month-title-with-actions span{display:block}.month-title-with-actions span{margin-top:3px;color:#5f6b63;font-size:12px;font-weight:800;text-transform:none}.calendar-month-button{min-height:36px;padding:0 12px;border:1px solid #d7ddd8;border-radius:8px;color:#17201b;background:#fff;cursor:pointer;font-size:12px;font-weight:850;transition:border-color .16s ease,background .16s ease,color .16s ease,transform .16s ease,opacity .16s ease}.calendar-month-button:hover:not(:disabled){border-color:#8db7a0;background:#edf7f1}.calendar-month-button:active:not(:disabled){transform:translateY(1px)}.calendar-month-button:disabled{cursor:not-allowed;opacity:.5}.month-weekdays,.month-grid{display:grid;grid-template-columns:repeat(7,minmax(112px,1fr))}.month-weekdays span{padding:9px 10px;color:#5f6b63;font-size:11px;font-weight:900;text-align:center;text-transform:uppercase;background:#eef3ef}.month-grid{overflow-x:auto}.calendar-day{display:grid;align-content:start;min-height:112px;gap:6px;padding:10px;border-top:1px solid #e5ebe6;border-right:1px solid #e5ebe6;color:#17201b;background:#fff}.calendar-day:nth-child(7n){border-right:0}.calendar-day.outside{color:#8a968e;background:#f7faf8}.calendar-day.germination{border-left:4px solid #54a76f}.calendar-day.seedling{border-left:4px solid #2f9e65}.calendar-day.vegetative{border-left:4px solid #167f56}.calendar-day.early_flower{border-left:4px solid #d99700}.calendar-day.mid_flower{border-left:4px solid #c7752b}.calendar-day.late_flower{border-left:4px solid #a65fcb}.calendar-day.past{background:linear-gradient(135deg,#eef8f2,#fff 68%)}.calendar-day.past .calendar-day-top strong:after{content:"";display:inline-block;width:6px;height:6px;margin-left:7px;border-radius:999px;background:#2f9e65;vertical-align:middle}.calendar-day.today{outline:3px solid rgba(47,158,101,.34);outline-offset:-3px;background:#effaf3}.calendar-day-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.calendar-day-top strong{color:#17201b;font-size:18px;line-height:1}.calendar-day-top span{padding:3px 7px;border-radius:999px;color:#0d5936;background:#dff4e7;font-size:11px;font-weight:900}.calendar-day-top .past-badge{color:#305a42;background:#e7f4ec}.calendar-grow-day,.calendar-phase-label,.calendar-day small{color:#4e5c54;font-size:12px;font-weight:700;line-height:1.25}.calendar-phase-label{color:#17201b;font-weight:900}.calendar-day small{color:#68756d;font-weight:700}.cultivation-phase-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:0 0 16px}.cultivation-phase-collapse{overflow:hidden;margin:0 0 16px;border:1px solid #d7ddd8;border-radius:10px;background:#fff}.cultivation-phase-collapse summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 14px;color:#17201b;background:#f7faf8;cursor:pointer;list-style:none}.cultivation-phase-collapse summary::-webkit-details-marker{display:none}.cultivation-phase-collapse summary:before{content:"+";display:inline-grid;width:24px;height:24px;place-items:center;flex:0 0 auto;border-radius:999px;color:#0d5936;background:#dff5e9;font-weight:900}.cultivation-phase-collapse[open] summary:before{content:"-"}.cultivation-phase-collapse summary span{display:grid;gap:3px;margin-right:auto}.cultivation-phase-collapse summary strong{font-size:14px}.cultivation-phase-collapse summary small,.cultivation-phase-collapse summary em{color:#68756d;font-size:12px;font-style:normal;font-weight:750}.cultivation-phase-collapse summary em{padding:5px 9px;border-radius:999px;color:#24523a;background:#e7f4ec;white-space:nowrap}.cultivation-phase-collapse .cultivation-phase-list{margin:0;padding:12px}.cultivation-phase{display:grid;gap:10px;padding:14px;border:1px solid #e5ebe6;border-left:5px solid #d7ddd8;border-radius:10px;background:#fff}.cultivation-phase.active{border-left-color:#2f9e65;box-shadow:0 12px 30px #2f9e651f}.phase-header,.phase-days,.phase-targets{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}.phase-days{justify-content:flex-start;color:#5f6b63;font-size:13px}.phase-targets{justify-content:flex-start}.phase-targets span{min-height:28px;padding:6px 9px;border:1px solid #d7ddd8;border-radius:999px;background:#f3f8f4;color:#24523a;font-size:12px;font-weight:700}.phase-products{display:grid;gap:4px}.cultivation-phase p,.cultivation-phase small{margin:0;color:#68756d;font-size:13px}.settings-meta{display:flex;flex-wrap:wrap;gap:10px;color:#5f6b63;font-size:13px}.settings-meta span{min-height:32px;padding:7px 10px;border:1px solid #d7ddd8;border-radius:8px;background:#f7faf8}.settings-meta strong{color:#17201b}.settings-grid{display:grid;gap:16px}.settings-section{display:grid;grid-template-columns:minmax(180px,.42fr) minmax(0,1fr);gap:18px;padding-top:16px;border-top:1px solid #e5ebe6}.settings-section h3{margin:0 0 5px;font-size:15px}.settings-section p{max-width:360px;color:#68756d;font-size:13px}.settings-fields{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:12px}.settings-fields label{display:grid;gap:6px}.settings-fields label>span{color:#5f6b63;font-size:12px;font-weight:800;text-transform:uppercase}.settings-fields em{color:#68756d;font-size:12px;font-style:normal}.number-field{display:grid;grid-template-columns:minmax(0,1fr) 50px;overflow:hidden;border:1px solid #d7ddd8;border-radius:8px;background:#fff}.number-field input{width:100%;min-height:42px;padding:0 12px;border:0;color:#17201b;background:transparent}.number-field small{display:inline-grid;place-items:center;border-left:1px solid #e5ebe6;color:#5f6b63;font-size:12px;font-weight:800}.settings-actions{display:flex;justify-content:flex-end;gap:10px}.form-message{padding:11px 12px;border-radius:8px;font-size:13px}.form-message.success{border:1px solid #bde8cf;color:#0d5936;background:#eaf8ef}.form-message.error{border:1px solid #ffc9c3;color:#8b1d16;background:#fff0ee}.online,.offline{display:inline-flex;align-items:center;gap:7px;font-weight:800}.online{color:#0d773f}.offline{color:#8b1d16}.docs-grid{align-items:start}pre{overflow:auto;min-height:254px;margin:0;padding:14px;border-radius:8px;color:#e8f2eb;background:#17201b;font-size:13px;line-height:1.55}.empty-state{display:grid;min-height:240px;place-items:center;align-content:center;gap:10px;color:#68756d;text-align:center}.empty-state strong{color:#17201b;font-size:16px}.empty-state span{max-width:360px;font-size:13px}.camera-panel,.gallery-panel{display:grid;align-content:start;gap:14px}.camera-stage{display:grid;width:100%;min-height:min(62vh,680px);place-items:center;overflow:hidden;border:1px solid #d7ddd8;border-radius:10px;background:#0e1511}.camera-stage img{display:block;width:100%;max-height:min(62vh,680px);object-fit:contain}.camera-meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.camera-meta span{min-height:44px;padding:8px 10px;border:1px solid #d7ddd8;border-radius:8px;color:#5f6b63;background:#f7faf8;font-size:12px}.camera-meta strong{display:block;color:#17201b;font-size:12px}.gallery-actions{display:flex;justify-content:flex-end}.gallery-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid #d7ddd8;border-radius:10px;background:#fff}.gallery-pagination>div:first-child{display:grid;gap:4px}.gallery-pagination strong{color:#17201b;font-size:13px}.gallery-pagination span{color:#68756d;font-size:12px}.gallery-pagination-buttons{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.gallery-carousel{display:grid;gap:12px;padding:14px;border:1px solid #d7ddd8;border-radius:12px;background:#fff;box-shadow:0 16px 42px #17201b1a}.gallery-carousel-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.gallery-carousel-top h3{margin:3px 0 0;color:#17201b;font-size:20px}.gallery-carousel-top p{margin-top:4px;color:#68756d;font-size:13px}.gallery-carousel-kicker{color:#5f6b63;font-size:12px;font-weight:850;text-transform:uppercase}.gallery-carousel-stage{position:relative;display:grid;min-height:min(66vh,720px);place-items:center;overflow:hidden;border:1px solid #d7ddd8;border-radius:10px;background:#0e1511}.gallery-carousel-stage img{display:block;width:100%;max-height:min(66vh,720px);object-fit:contain}.gallery-carousel-arrow{position:absolute;top:50%;z-index:1;display:inline-grid;width:46px;height:56px;place-items:center;border:1px solid rgba(255,255,255,.54);border-radius:999px;color:#17201b;background:#ffffffc7;cursor:pointer;transform:translateY(-50%);transition:border-color .16s ease,background .16s ease,transform .16s ease}.gallery-carousel-arrow:hover:not(:disabled){border-color:#8db7a0;background:#edf7f1eb}.gallery-carousel-arrow:disabled{opacity:.36;cursor:not-allowed}.gallery-carousel-arrow:active:not(:disabled){transform:translateY(calc(-50% + 1px))}.gallery-carousel-arrow.left{left:14px}.gallery-carousel-arrow.right{right:14px}.gallery-carousel-meta{display:flex;flex-wrap:wrap;gap:8px}.gallery-carousel-meta span{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:6px 10px;border:1px solid #d7ddd8;border-radius:999px;color:#5f6b63;background:#f7faf8;font-size:12px;font-weight:800}.gallery-card{overflow:hidden;border:1px solid #d7ddd8;border-radius:10px;background:#fff;box-shadow:0 12px 32px #17201b12;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.gallery-card.selected{border-color:#2f9e65;box-shadow:0 16px 38px #2f9e652e}.gallery-card:hover{transform:translateY(-1px)}.gallery-image-button{display:block;width:100%;padding:0;border:0;background:transparent;cursor:pointer}.gallery-image-button:focus-visible{outline:3px solid rgba(47,158,101,.42);outline-offset:-3px}.gallery-card img{display:block;width:100%;aspect-ratio:4 / 3;object-fit:cover;background:#0e1511}.gallery-card-body{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px}.gallery-card-body>div{display:grid;min-width:0;gap:4px}.gallery-card strong{overflow:hidden;color:#17201b;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.gallery-card span{color:#68756d;font-size:12px}.error-banner{margin-bottom:14px;padding:12px 14px;border:1px solid #ffc9c3;border-radius:8px;color:#8b1d16;background:#fff0ee}.loading-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.loading-grid span{height:180px;border-radius:8px;background:linear-gradient(90deg,#e8ede9,#fff,#e8ede9);background-size:220% 100%;animation:shimmer 1.2s infinite linear}.spin{animation:spin .8s linear infinite}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1120px){.app-shell{grid-template-columns:88px minmax(0,1fr)}.sidebar{padding:16px}.brand{justify-content:center}.brand div,nav button span{display:none}nav button{justify-content:center;padding:0}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.content-grid,.docs-grid,.equipment-layout{grid-template-columns:1fr}.history-controls{grid-template-columns:repeat(4,minmax(0,1fr))}.metric-toggles{grid-column:1 / -1;justify-content:flex-start}.custom-range{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.app-shell{grid-template-columns:1fr;width:100%;max-width:100vw}.sidebar{position:static;height:auto;padding:12px;overflow-x:auto}.brand{display:none}nav{display:flex;gap:8px;min-width:max-content}nav button{width:48px;flex:0 0 48px;min-height:44px}main{width:100%;max-width:100vw;padding:18px;overflow-x:hidden}.topbar{align-items:flex-start;flex-direction:column}.topbar-actions{width:100%;justify-content:space-between}h1{font-size:26px}.metric-grid{grid-template-columns:1fr}.panel{min-width:0;padding:14px}.panel-heading{align-items:flex-start;gap:12px}.chart-shell{height:260px;min-height:260px}.chart-shell.tall{height:360px;min-height:360px}.chart-shell.with-legend{height:250px;min-height:250px}.history-controls,.settings-section,.month-title-with-actions{grid-template-columns:1fr}.cultivation-month{overflow-x:auto}.month-weekdays,.month-grid{min-width:620px;grid-template-columns:repeat(7,minmax(88px,1fr))}.calendar-day{min-height:104px;padding:8px}.calendar-month-button{width:100%}.settings-fields,.equipment-facts{grid-template-columns:1fr}.gallery-carousel{padding:10px}.gallery-carousel-top{align-items:stretch}.gallery-pagination{align-items:stretch;flex-direction:column}.gallery-pagination-buttons{display:grid;grid-template-columns:1fr 1fr}.gallery-carousel-stage{min-height:min(54vh,520px)}.gallery-carousel-stage img{max-height:min(54vh,520px)}.gallery-carousel-arrow{width:38px;height:48px}.gallery-carousel-arrow.left{left:8px}.gallery-carousel-arrow.right{right:8px}.gallery-grid{grid-template-columns:1fr}.settings-actions,.gallery-card-body,.metric-toggles{display:grid;grid-template-columns:1fr}.metric-toggles button{justify-content:center;padding:0 8px}.custom-range{grid-template-columns:1fr}.device-table,.activation-table{overflow-x:auto}.device-row,.activation-row{min-width:780px}.loading-grid{grid-template-columns:1fr}}:root{--gm-bg: #edf1ed;--gm-bg-soft: #f5f7f4;--gm-surface: #fbfcfa;--gm-surface-raised: #ffffff;--gm-surface-muted: #f0f4f0;--gm-ink: #132019;--gm-muted: #617067;--gm-faint: #8a968e;--gm-line: #d8e0da;--gm-line-strong: #c7d1ca;--gm-accent: #2f9e65;--gm-accent-strong: #17784a;--gm-accent-soft: #dff3e7;--gm-sidebar: #101a15;--gm-sidebar-soft: #18251e;--gm-sidebar-line: #2b3a32;--gm-radius: 12px;--gm-radius-small: 8px;--gm-shadow: 0 18px 50px rgba(36, 64, 48, .07);--gm-shadow-raised: 0 22px 60px rgba(36, 64, 48, .11);color:var(--gm-ink);background:var(--gm-bg);font-family:Manrope Variable,ui-sans-serif,system-ui,sans-serif}:root[data-theme=dark]{--gm-bg: #0c120f;--gm-bg-soft: #101813;--gm-surface: #131d17;--gm-surface-raised: #17241c;--gm-surface-muted: #1b2a21;--gm-ink: #edf6ef;--gm-muted: #a5b6ab;--gm-faint: #7f9186;--gm-line: #293b31;--gm-line-strong: #385044;--gm-accent: #82d7a6;--gm-accent-strong: #a1e6bd;--gm-accent-soft: rgba(72, 174, 113, .16);--gm-sidebar: #080d0a;--gm-sidebar-soft: #101a14;--gm-sidebar-line: #243129;--gm-shadow: 0 20px 60px rgba(0, 0, 0, .22);--gm-shadow-raised: 0 26px 70px rgba(0, 0, 0, .32);color:var(--gm-ink);background:var(--gm-bg)}html{scroll-behavior:smooth}body{min-height:100dvh;color:var(--gm-ink);background:radial-gradient(circle at 82% -12%,rgba(47,158,101,.09),transparent 32rem),linear-gradient(rgba(40,70,52,.027) 1px,transparent 1px),linear-gradient(90deg,rgba(40,70,52,.027) 1px,transparent 1px),var(--gm-bg);background-size:auto,32px 32px,32px 32px,auto}:root[data-theme=dark] body{background:radial-gradient(circle at 82% -10%,rgba(89,197,132,.09),transparent 34rem),linear-gradient(rgba(175,215,190,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(175,215,190,.022) 1px,transparent 1px),var(--gm-bg);background-size:auto,32px 32px,32px 32px,auto}button,input,select,textarea{font:inherit}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid color-mix(in srgb,var(--gm-accent) 42%,transparent);outline-offset:2px}.skip-link{position:fixed;top:10px;left:10px;z-index:100;padding:10px 14px;border-radius:var(--gm-radius-small);color:#fff;background:var(--gm-accent-strong);font-size:12px;font-weight:750;transform:translateY(-160%);transition:transform .16s ease}.skip-link:focus{transform:translateY(0)}.app-shell{grid-template-columns:264px minmax(0,1fr);min-height:100dvh}.sidebar{display:flex;height:100dvh;padding:22px 16px 18px;flex-direction:column;color:#eaf3ed;background:radial-gradient(circle at 50% 0,rgba(130,215,166,.09),transparent 17rem),var(--gm-sidebar);border-right:1px solid var(--gm-sidebar-line)}.brand{gap:11px;min-height:50px;margin:0 6px 26px}.brand-mark,.metric-icon{border-radius:var(--gm-radius-small)}.brand-mark{width:40px;height:40px;border:1px solid rgba(145,222,176,.22);background:#0a110d;box-shadow:inset 0 1px #ffffff0d}.brand strong{color:#f4faf6;font-size:15px;font-weight:760;letter-spacing:-.02em}.brand small{margin-top:2px;color:#809287;font-size:10px;font-weight:650;letter-spacing:.08em;text-transform:uppercase}nav{gap:4px}nav button{position:relative;min-height:44px;padding:0 12px;border:1px solid transparent;border-radius:var(--gm-radius-small);color:#9eaea4;font-size:13px;font-weight:650;transition:color .18s ease,background .18s ease,border-color .18s ease,transform .18s ease}nav button svg{opacity:.8;stroke-width:1.8}nav button:hover{color:#eff7f1;background:#ffffff0b}nav button.active{color:#f5fbf7;background:#82d7a61a;border-color:#82d7a621}nav button.active:before{position:absolute;top:10px;bottom:10px;left:-17px;width:3px;border-radius:0 4px 4px 0;background:#82d7a6;content:""}nav button.active svg{color:#82d7a6;opacity:1}.sidebar-foot{display:flex;align-items:center;gap:10px;margin-top:auto;padding:13px 11px;border:1px solid var(--gm-sidebar-line);border-radius:var(--gm-radius-small);background:#ffffff06}.sidebar-foot strong,.sidebar-foot small{display:block}.sidebar-foot strong{color:#dfe9e2;font-size:11px;font-weight:700}.sidebar-foot small{margin-top:2px;color:#74867b;font-size:9px}.system-indicator{width:8px;height:8px;flex:0 0 auto;border-radius:50%;background:#68cf92;box-shadow:0 0 0 4px #68cf921c}main{width:min(100%,1600px);max-width:none;padding:34px 38px 48px}.topbar{align-items:flex-end;min-height:76px;margin-bottom:26px;padding-bottom:18px;border-bottom:1px solid var(--gm-line)}.eyebrow{color:var(--gm-accent-strong);font-size:10px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}h1,h2,h3,.brand strong{text-wrap:balance}h1{margin-top:5px;color:var(--gm-ink);font-size:clamp(28px,3vw,40px);font-weight:720;line-height:1.02;letter-spacing:-.045em}h2{color:var(--gm-ink);font-size:17px;font-weight:720;letter-spacing:-.025em}h3{color:var(--gm-ink);letter-spacing:-.015em}.dashboard-cycle-text{margin-top:9px;color:var(--gm-muted);font-size:12px;font-weight:600}.topbar-actions{gap:8px}.last-update{min-width:auto;margin:0 6px;color:var(--gm-muted);font-family:JetBrains Mono Variable,ui-monospace,monospace;font-size:10px}.icon-button{width:38px;min-height:38px;border-color:var(--gm-line);border-radius:var(--gm-radius-small);color:var(--gm-muted);background:var(--gm-surface);box-shadow:none}.icon-button:hover{border-color:var(--gm-line-strong);color:var(--gm-ink);background:var(--gm-surface-raised);transform:translateY(-1px)}.status-pill{position:relative;min-height:26px;padding:0 9px 0 22px;border:1px solid transparent;border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.02em}.status-pill:before{position:absolute;left:9px;width:6px;height:6px;border-radius:50%;background:currentColor;content:""}.status-pill.normal{border-color:#bde4cc;color:#167447;background:#e7f6ed}.status-pill.attention{border-color:#eed79a;color:#8b6200;background:#fff7dc}.status-pill.alert{border-color:#f0beb9;color:#a43c32;background:#fff0ee}.status-pill.unknown{border-color:var(--gm-line);color:var(--gm-muted);background:var(--gm-surface-muted)}.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:12px}.metric-card,.panel{border:1px solid var(--gm-line);border-radius:var(--gm-radius);background:color-mix(in srgb,var(--gm-surface) 96%,transparent);box-shadow:var(--gm-shadow)}.metric-card{position:relative;min-height:186px;overflow:hidden;padding:18px 19px 17px;border-top:1px solid var(--gm-line)!important;transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}.metric-card:after{position:absolute;top:0;bottom:0;left:0;width:3px;background:var(--status-color, var(--gm-faint));content:""}.metric-card.normal{--status-color: #2f9e65}.metric-card.attention{--status-color: #d99700}.metric-card.alert{--status-color: #e0564a}.metric-card.unknown{--status-color: #8b949e}.metric-card:nth-child(n+4){min-height:154px}.metric-card:hover{border-color:var(--gm-line-strong);box-shadow:var(--gm-shadow-raised);transform:translateY(-2px)}.metric-top{margin-bottom:15px}.metric-icon{width:36px;height:36px;color:var(--gm-accent-strong);background:var(--gm-accent-soft)}.metric-icon svg{width:19px;height:19px;stroke-width:1.8}.metric-label{color:var(--gm-muted);font-size:11px;font-weight:720;letter-spacing:.025em}.metric-value{margin-top:7px;color:var(--gm-ink);font-family:JetBrains Mono Variable,ui-monospace,monospace;font-size:clamp(28px,3vw,38px);font-variant-numeric:tabular-nums;font-weight:620;letter-spacing:-.055em}.metric-card:nth-child(n+4) .metric-value{font-size:29px}.metric-value span{color:var(--gm-muted);font-family:Manrope Variable,ui-sans-serif,sans-serif;font-size:11px;font-weight:750;letter-spacing:0}.metric-detail{margin-top:13px;color:var(--gm-muted);font-size:10.5px;line-height:1.5;text-wrap:pretty}.content-grid,.docs-grid{grid-template-columns:minmax(0,2fr) minmax(280px,.72fr);gap:12px}.panel{padding:19px}.panel-heading{margin-bottom:18px}.panel-heading>svg{color:var(--gm-accent-strong);opacity:.82;stroke-width:1.8}.panel-heading p{margin-top:5px;color:var(--gm-muted);font-size:11px;line-height:1.45}.chart-shell{height:350px;min-height:350px}.chart-tooltip-card{border-color:var(--gm-line-strong);border-radius:var(--gm-radius-small);box-shadow:var(--gm-shadow-raised);font-family:JetBrains Mono Variable,ui-monospace,monospace;font-size:10px}.alert-list{gap:8px}.alert-item{padding:13px 13px 13px 15px;border:0;border-left:3px solid var(--gm-line-strong);border-radius:var(--gm-radius-small);background:var(--gm-surface-muted)}.alert-item strong{color:var(--gm-ink);font-size:12px}.alert-item p{color:var(--gm-muted);font-size:10.5px;line-height:1.5}.primary-button,.secondary-button,.danger-button,.metric-toggles button,.equipment-actions button,.calendar-month-button{border-radius:var(--gm-radius-small);font-size:12px;transition:color .18s ease,background .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease,opacity .18s ease}.primary-button{color:#f8fff9;background:var(--gm-accent-strong);box-shadow:0 9px 22px color-mix(in srgb,var(--gm-accent) 22%,transparent)}.primary-button:hover:not(:disabled){color:#fff;background:color-mix(in srgb,var(--gm-accent-strong) 88%,#000000);transform:translateY(-1px)}.secondary-button,.metric-toggles button,.equipment-actions button,.calendar-month-button{border-color:var(--gm-line);color:var(--gm-ink);background:var(--gm-surface)}.secondary-button:hover:not(:disabled),.metric-toggles button:hover,.metric-toggles button.active,.equipment-actions button:hover:not(:disabled),.equipment-actions button.active,.calendar-month-button:hover:not(:disabled){border-color:color-mix(in srgb,var(--gm-accent) 42%,var(--gm-line));color:var(--gm-accent-strong);background:var(--gm-accent-soft)}.history-controls label span,.cultivation-form label span,.login-panel label span,.settings-fields label>span,.time-settings-row label span{color:var(--gm-muted);font-size:10px;letter-spacing:.08em}.history-controls select,.history-controls input,.cultivation-form input,.cultivation-form select,.login-panel input,.time-settings-row input,.number-field,.settings-profile-card{border-color:var(--gm-line);border-radius:var(--gm-radius-small);color:var(--gm-ink);background:var(--gm-surface-raised);box-shadow:none}.device-table,.activation-table{border-color:var(--gm-line);border-radius:var(--gm-radius-small)}.device-row,.activation-row{border-color:var(--gm-line);color:var(--gm-ink);background:var(--gm-surface)}.device-row.head,.activation-row.head{color:var(--gm-muted);background:var(--gm-surface-muted);font-size:10px;letter-spacing:.06em}.equipment-card,.settings-profile-card,.cultivation-month,.cultivation-phase,.gallery-card,.gallery-carousel,.gallery-pagination,.camera-meta span{border-color:var(--gm-line);border-radius:var(--gm-radius-small);color:var(--gm-ink);background:var(--gm-surface-raised);box-shadow:none}.equipment-card{border-left-width:3px}.equipment-facts span,.settings-meta span,.cultivation-summary span,.phase-targets span,.gallery-carousel-meta span{border-color:var(--gm-line);border-radius:6px;color:var(--gm-muted);background:var(--gm-surface-muted)}.camera-stage,.gallery-carousel-stage{border-color:var(--gm-line);border-radius:var(--gm-radius-small);background:#080d0a}pre{border:1px solid var(--gm-sidebar-line);border-radius:var(--gm-radius-small);color:#dceae1;background:var(--gm-sidebar);font-family:JetBrains Mono Variable,ui-monospace,monospace;font-size:11px}.loading-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.loading-grid span{height:186px;border:1px solid var(--gm-line);border-radius:var(--gm-radius);background:linear-gradient(90deg,var(--gm-surface-muted),var(--gm-surface-raised),var(--gm-surface-muted));background-size:220% 100%}.login-shell{min-height:100dvh;background:radial-gradient(circle at 15% 15%,rgba(130,215,166,.14),transparent 22rem),radial-gradient(circle at 85% 85%,rgba(47,158,101,.08),transparent 28rem)}.login-panel{width:min(100%,430px);gap:18px;padding:30px;border-color:var(--gm-line);border-radius:var(--gm-radius);background:color-mix(in srgb,var(--gm-surface) 96%,transparent);box-shadow:var(--gm-shadow-raised)}.login-brand{padding-bottom:18px;border-bottom:1px solid var(--gm-line)}.login-brand h1{font-size:27px}:root[data-theme=dark] .login-panel,:root[data-theme=dark] .metric-card,:root[data-theme=dark] .panel,:root[data-theme=dark] .alert-item,:root[data-theme=dark] .equipment-card,:root[data-theme=dark] .device-row,:root[data-theme=dark] .activation-row,:root[data-theme=dark] .cultivation-month,:root[data-theme=dark] .cultivation-phase,:root[data-theme=dark] .calendar-day,:root[data-theme=dark] .icon-button,:root[data-theme=dark] .secondary-button,:root[data-theme=dark] .metric-toggles button,:root[data-theme=dark] .equipment-actions button,:root[data-theme=dark] .history-controls select,:root[data-theme=dark] .history-controls input,:root[data-theme=dark] .cultivation-form input,:root[data-theme=dark] .cultivation-form select,:root[data-theme=dark] .login-panel input,:root[data-theme=dark] .number-field,:root[data-theme=dark] .settings-profile-card,:root[data-theme=dark] .gallery-card,:root[data-theme=dark] .gallery-carousel,:root[data-theme=dark] .gallery-pagination,:root[data-theme=dark] .camera-meta span{border-color:var(--gm-line);color:var(--gm-ink);background:var(--gm-surface);box-shadow:var(--gm-shadow)}:root[data-theme=dark] .alert-item,:root[data-theme=dark] .equipment-facts span,:root[data-theme=dark] .settings-meta span,:root[data-theme=dark] .cultivation-summary span,:root[data-theme=dark] .phase-targets span,:root[data-theme=dark] .gallery-carousel-meta span,:root[data-theme=dark] .device-row.head,:root[data-theme=dark] .activation-row.head{color:var(--gm-muted);background:var(--gm-surface-muted)}:root[data-theme=dark] h1,:root[data-theme=dark] h2,:root[data-theme=dark] h3,:root[data-theme=dark] .brand strong,:root[data-theme=dark] .metric-value,:root[data-theme=dark] .metric-label,:root[data-theme=dark] .equipment-facts strong,:root[data-theme=dark] .settings-meta strong,:root[data-theme=dark] .cultivation-summary strong,:root[data-theme=dark] .calendar-day-top strong,:root[data-theme=dark] .gallery-card strong{color:var(--gm-ink)}:root[data-theme=dark] .eyebrow{color:var(--gm-accent)}:root[data-theme=dark] .status-pill.normal{border-color:#82d7a640;color:#9be7b8;background:#2f9e6529}:root[data-theme=dark] .status-pill.attention{border-color:#ffd9803b;color:#ffd980;background:#d9970024}:root[data-theme=dark] .status-pill.alert{border-color:#ffb4aa3d;color:#ffb4aa;background:#e0564a24}:root[data-theme=dark] .status-pill.unknown{border-color:var(--gm-line);color:#bdc9c1;background:var(--gm-surface-muted)}:root[data-theme=dark] .brand-mark,:root[data-theme=dark] .primary-button{color:#07100b;background:var(--gm-accent)}:root[data-theme=dark] .primary-button:hover:not(:disabled){color:#07100b;background:var(--gm-accent-strong)}:root[data-theme=dark] nav button:hover,:root[data-theme=dark] nav button.active{border-color:#82d7a621;color:#f5fbf7;background:#82d7a61a}@media(max-width:1120px){.app-shell{grid-template-columns:82px minmax(0,1fr)}.sidebar{padding-inline:14px}.sidebar-foot{justify-content:center;padding:13px 0}.sidebar-foot div{display:none}nav button.active:before{left:-15px}main{padding:30px 28px 42px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.app-shell{grid-template-columns:minmax(0,1fr);width:100%;max-width:100vw}body{background-size:auto,24px 24px,24px 24px,auto}.sidebar{position:sticky;top:0;z-index:10;display:block;height:auto;padding:9px 10px;border-right:0;border-bottom:1px solid var(--gm-sidebar-line)}.sidebar-foot{display:none}nav{gap:5px}nav button{width:45px;min-height:42px;flex-basis:45px}nav button.active:before{inset:auto 10px -9px;width:auto;height:2px;border-radius:3px 3px 0 0}main{padding:22px 14px 34px}.topbar{gap:17px;margin-bottom:18px;padding-bottom:16px}.topbar-actions{justify-content:flex-start;overflow-x:auto}.last-update{margin-right:auto;white-space:nowrap}h1{font-size:30px}.metric-grid{grid-template-columns:1fr;gap:10px}.metric-card,.metric-card:nth-child(n+4){min-height:148px;padding:16px}.metric-value,.metric-card:nth-child(n+4) .metric-value{font-size:30px}.panel{padding:15px}.chart-shell{height:280px;min-height:280px}.login-shell{padding:14px}.login-panel{padding:22px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
