:root{--bg:#091114;--bg-elev:rgba(11,17,21,0.88);--card:rgba(17,25,31,0.94);--card-secondary:rgba(14,21,27,0.95);--card-actuator:rgba(13,19,26,0.98);--text:#edf4f4;--muted:rgba(217,228,229,0.68);--line:rgba(255,255,255,0.09);--line-strong:rgba(255,255,255,0.16);--accent:#d36d56;--accent-soft:rgba(211,109,86,0.16);--sea:#5ba89b;--warning:#d0aa59;--success:#78cb99;--danger:#ef8e7b;--shadow:0 16px 34px rgba(0,0,0,0.28);--font-ui:"Avenir Next","Segoe UI","Helvetica Neue",sans-serif}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:radial-gradient(circle at 10% 2%,rgba(91,168,155,.08),transparent 28%),radial-gradient(circle at 88% 10%,rgba(211,109,86,.08),transparent 22%),linear-gradient(180deg,#071014,#0a1215 46%,#091013);color:var(--text);font-family:var(--font-ui)}body{min-height:100vh}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.login-page,.page{position:relative;min-height:100vh;padding:28px 24px 48px;overflow:hidden}.page-shell{position:relative;z-index:1;width:min(100%,1400px);margin:0 auto}.grid,.page-content,.section-stack{display:grid;grid-gap:32px;gap:32px}.page-content{margin-top:18px}.hero{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:10px}.hero-copy{display:grid;grid-gap:0;gap:0}.brand-name{margin:0 0 6px;font-size:13px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:rgba(212,146,124,.95)}h1,h2,h3{margin:0;font-family:var(--font-ui)}h1{font-size:38px;line-height:1.02}h1,h2{font-weight:600}h2{font-size:18px;line-height:1.2}.detail-list span,.device-detail,.diagnostics-note,.empty-state-card p,.event-item time,.field span,.history-caption,.message-bar,.mini-help,.permission-note,.section-header p,.subtitle{color:var(--muted)}.subtitle{margin-top:10px;max-width:64ch;font-size:15px;line-height:1.55;color:rgba(217,228,229,.62)}.hero-actions{display:flex;align-items:flex-end;gap:8px;padding-top:2px}.identity-pill{display:inline-flex;align-items:center;gap:6px;min-height:36px}.identity-cluster{display:grid;justify-items:end;align-self:flex-end;grid-gap:6px;gap:6px}.identity-greeting{color:rgba(241,228,192,.9);font-size:12px;font-weight:600;letter-spacing:.04em;line-height:1;padding-right:2px;margin:0 0 2px}.identity-avatar{width:36px;height:36px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);font-size:13px;font-weight:700}.identity-avatar svg{width:17px;height:17px}.action-button,.filter-pill,.ghost-button,.nav-link,.role-pill,.status-badge,.submit-button,.toggle-pill{border-radius:999px;border:1px solid var(--line)}.filter-pill,.ghost-button,.nav-link,.role-pill,.toggle-pill{padding:10px 15px;background:rgba(255,255,255,.035);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.role-pill.subtle{padding:0 12px;font-size:13px;background:rgba(255,255,255,.042);min-height:36px;display:inline-flex;align-items:center;line-height:1}.action-button,.filter-pill,.ghost-button,.submit-button,.toggle-pill,.toggle-row{cursor:pointer;color:var(--text)}.ghost-button{background:rgba(255,255,255,.02)}.compact-ghost{padding:0 9px;min-height:34px;display:inline-flex;align-items:center;line-height:1;background:transparent;border-color:rgba(255,255,255,.03);color:rgba(219,226,229,.64)}.compact-ghost:hover{background:rgba(255,255,255,.036);color:rgba(235,240,242,.86)}.nav-bar{display:flex;gap:8px;flex-wrap:wrap;padding:0;margin-bottom:0;background:transparent;border:none;border-radius:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.nav-emoji{font-size:15px;line-height:1}.nav-link{display:inline-flex;align-items:center;gap:10px;min-height:42px;transition:background .16s ease,box-shadow .16s ease,border-color .16s ease,transform .16s ease;background:rgba(255,255,255,.028);border-color:rgba(255,255,255,.045)}.nav-link.active{background:linear-gradient(135deg,rgba(92,168,155,.98),rgba(49,108,102,.96));box-shadow:0 0 0 1px rgba(182,234,226,.14),0 0 18px rgba(91,168,155,.18)}.health-icon,.nav-icon,.nav-icon svg,.pump-action-icon,.status-badge-icon,.tile-icon{width:18px;height:18px}.dashboard-section{display:grid;grid-gap:18px;gap:18px}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));grid-gap:24px;gap:24px}.dashboard-grid.primary-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.split-grid{grid-template-columns:repeat(auto-fit,minmax(360px,1fr));align-items:start}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:16px}.section-heading p{margin:4px 0 0;font-size:13px}.device-tile,.loading-card,.login-card,.section-card{background:rgba(20,22,28,.7);border:1px solid rgba(255,255,255,.045);border-radius:16px;padding:24px;box-shadow:0 12px 24px rgba(0,0,0,.24);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease}.device-tile:hover,.section-card:hover{transform:translateY(-1px);border-color:rgba(255,255,255,.12);box-shadow:0 16px 28px rgba(0,0,0,.28)}.platform-static-card:hover{transform:none}.section-card{display:grid;grid-gap:20px;gap:20px;padding:30px 24px 24px}.section-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.section-header p{margin:8px 0 0;font-size:13px}.section-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-start}.section-actions>.status-badge{margin-top:1px}.device-tile{position:relative;overflow:hidden;display:grid;grid-gap:18px;gap:18px}.device-tile:after{content:"";position:absolute;inset:auto -18% -50% auto;width:180px;height:180px;border-radius:999px;background:radial-gradient(circle,rgba(255,255,255,.08),transparent 66%);pointer-events:none}.device-tile.emphasis-primary{min-height:360px}.device-tile.emphasis-actuator{background:var(--card-actuator);border-color:rgba(255,255,255,.12)}.device-tile.state-warning,.device-tile.state-watch{border-color:rgba(208,170,89,.28)}.device-tile.state-critical,.device-tile.state-out{border-color:rgba(239,142,123,.32);box-shadow:0 10px 30px rgba(0,0,0,.25),inset 0 0 0 1px rgba(239,142,123,.06)}.device-tile.tone-rtd{background:linear-gradient(155deg,rgba(101,142,216,.12),rgba(16,25,33,.96))}.device-tile.tone-co2{background:linear-gradient(155deg,rgba(124,97,164,.13),rgba(21,19,33,.98))}.device-tile.tone-hum{background:linear-gradient(155deg,rgba(90,141,103,.13),rgba(17,28,27,.98))}.device-tile.tone-ec{background:linear-gradient(155deg,rgba(82,156,146,.15),rgba(16,28,31,.98))}.device-tile.tone-clr{background:linear-gradient(145deg,rgba(201,169,96,.14),rgba(107,75,36,.06),rgba(24,22,31,.98))}.device-tile.tone-ph{background:linear-gradient(155deg,rgba(208,122,83,.14),rgba(35,21,20,.98))}.device-tile.tone-do{background:linear-gradient(155deg,rgba(82,176,214,.14),rgba(18,28,37,.98))}.device-tile.tone-pump-a{background:linear-gradient(155deg,rgba(85,151,118,.11),rgba(12,18,22,.99))}.device-tile.tone-pump-b{background:linear-gradient(155deg,rgba(76,131,166,.11),rgba(12,18,23,.99))}.device-tile.tone-pump-c{background:linear-gradient(155deg,rgba(169,111,72,.11),rgba(19,14,16,.99))}.device-tile.tone-pump-d{background:linear-gradient(155deg,rgba(144,101,148,.11),rgba(18,14,20,.99))}.device-tile.emphasis-primary{grid-template-rows:84px 68px auto auto 1fr;align-content:start}.device-tile.sensor-card{grid-template-rows:78px 64px 1fr;align-content:start}.tile-identity,.tile-topline{display:flex;align-items:flex-start;gap:12px}.tile-topline{justify-content:space-between}.device-tile.emphasis-primary .tile-topline{min-height:84px;align-items:flex-start}.device-tile.sensor-card .tile-topline{min-height:78px;align-items:flex-start}.tile-copy,.tile-identity{min-width:0}.tile-copy{display:grid;grid-gap:4px;gap:4px}.icon-badge{width:38px;height:38px;border-radius:12px;background:rgba(255,255,255,.05);display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.08)}.device-name{margin:0 0 6px;font-size:12px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:rgba(244,233,199,.9);line-height:1.2}.device-tile.emphasis-primary .device-name,.device-tile.sensor-card .device-name{min-height:30px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.device-model{display:block;color:rgba(217,228,229,.6);font-size:11px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.device-tile.emphasis-primary .device-model,.device-tile.sensor-card .device-model{min-height:15px}.tile-mainline{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.device-tile.emphasis-primary .tile-mainline{min-height:68px;align-items:flex-end}.device-tile.sensor-card .tile-mainline{min-height:64px;align-items:flex-end}.metric-value-wrap{display:flex;align-items:baseline;gap:8px}.device-tile.emphasis-primary .metric-value-wrap.large{min-height:68px;align-items:flex-end}.device-tile.sensor-card .metric-value-wrap.large{min-height:64px;align-items:flex-end}.sensor-card-muted-hero .metric-unit,.sensor-card-muted-hero .metric-value-text{color:rgba(229,235,236,.72)}.metric-value-wrap.large .metric-value-text{font-size:48px}.metric-value-text{font-size:48px;font-weight:600;line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.metric-unit{opacity:.58;font-size:17px;font-weight:500;line-height:1}.gauge-block{display:grid;grid-gap:10px;gap:10px}.device-tile.emphasis-primary .gauge-block{min-height:52px;align-content:start}.metric-gauge{display:grid;grid-gap:10px;gap:10px}.gauge-track{position:relative;height:8px;border-radius:999px;background:linear-gradient(90deg,rgba(191,136,104,.28),rgba(95,205,178,.36),rgba(191,136,104,.28));border:1px solid rgba(255,255,255,.06)}.gauge-dot,.gauge-target{position:absolute;top:50%;transform:translate(-50%,-50%);border-radius:999px}.gauge-target{width:3px;height:18px;background:rgba(255,255,255,.8)}.gauge-dot{width:16px;height:16px;background:#f4f7f7;box-shadow:0 0 0 4px rgba(255,255,255,.14)}.gauge-scale{display:flex;justify-content:space-between;gap:12px;color:rgba(217,228,229,.56);font-size:12px}.recommendation-row{display:grid;grid-gap:6px;gap:6px;padding:13px 14px;border-radius:14px;background:rgba(211,109,86,.055);border:1px solid rgba(211,109,86,.08)}.recommendation-label{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:rgba(217,228,229,.68)}.device-tile.emphasis-primary .recommendation-row{min-height:74px;align-content:start}.device-secondary,.inline-target{margin:8px 0 0;color:var(--muted);font-size:13px;text-align:right}.reading-grid{display:grid;grid-gap:10px;gap:10px}.reading-grid.relaxed{gap:12px}.reading-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 13px;border-radius:15px;background:rgba(255,255,255,.032);border:1px solid rgba(255,255,255,.03)}.reading-row.soft{background:rgba(255,255,255,.024);border-color:rgba(255,255,255,.024)}.reading-row span{color:rgba(217,228,229,.62);font-size:13px;font-weight:500}.reading-row strong{font-size:13px;font-weight:550;text-align:right}.reading-row.accent{background:rgba(255,255,255,.052)}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;font-size:12px;font-weight:600}.status-badge.tone-healthy{background:rgba(120,203,153,.1);color:rgba(187,242,205,.95)}.status-badge.tone-watch{background:rgba(208,170,89,.12);color:rgba(243,221,161,.95)}.status-badge.tone-warning{background:rgba(208,170,89,.1);color:rgba(243,221,161,.95)}.status-badge.tone-out{background:rgba(239,142,123,.12);color:rgba(255,203,194,.98)}.status-badge.tone-critical{background:rgba(239,142,123,.1);color:rgba(255,203,194,.98)}.status-badge.tone-unavailable{background:rgba(255,255,255,.07);color:rgba(219,230,231,.88)}.health-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));grid-gap:16px;gap:16px}.health-grid.health-grid-dense .health-item{min-height:170px}.health-item{border-radius:18px;padding:20px 18px 18px;background:rgba(255,255,255,.038);border:1px solid rgba(255,255,255,.075);display:grid;grid-gap:9px;gap:9px}.health-item.tone-healthy{box-shadow:inset 0 0 0 1px rgba(120,203,153,.07)}.health-item.tone-watch{box-shadow:inset 0 0 0 1px rgba(208,170,89,.1)}.health-item.tone-out{box-shadow:inset 0 0 0 1px rgba(239,142,123,.12)}.health-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.health-row span{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.health-item strong{font-size:18px;line-height:1.2}.health-reference{margin:0;color:rgba(217,228,229,.52);font-size:12px}.health-inline{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}.summary-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:12px;gap:12px}.empty-state-card,.pump-action-card,.summary-strip>div,.trend-summary-card{padding:18px;border-radius:18px;background:rgba(255,255,255,.032);border:1px solid rgba(255,255,255,.05)}.summary-strip.compact>div{min-height:94px}.uniform-tiles>div{min-height:110px}.summary-strip.uniform-tiles{gap:10px}.pump-action-meta span,.summary-strip span{display:block;color:var(--muted);font-size:13px;margin-bottom:8px}.pump-action-meta strong,.summary-strip strong{font-size:15px}.summary-tile-muted strong{color:rgba(221,229,230,.74);font-weight:500}.detail-list{display:grid;grid-gap:12px;gap:12px}.detail-list.roomy{gap:14px}.detail-list>div{display:flex;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.045)}.detail-list strong{font-weight:550;padding-right:4px}.detail-list>div:last-child{border-bottom:none;padding-bottom:0}.event-list{display:grid;grid-gap:8px;gap:8px}.event-item{display:flex;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:16px;background:rgba(255,255,255,.032)}.event-item.compact{padding:11px 14px;gap:10px}.event-count{color:rgba(235,239,241,.78);font-weight:600}.event-type{margin:0 0 4px;color:var(--warning);text-transform:uppercase;letter-spacing:.08em;font-size:12px}.empty-state-card{display:grid;grid-gap:8px;gap:8px}.empty-state-card.large{min-height:180px;place-content:center}.empty-state-card.compact-empty{min-height:0;gap:6px}.empty-state-card strong{font-size:15px}.chart-toolbar,.filter-pills,.modal-actions,.toggle-group{display:flex;gap:8px;flex-wrap:wrap}.chart-toolbar{padding:0 0 2px}.grouped-actions{align-items:center;justify-content:flex-end}.segmented-control{display:inline-flex;gap:8px}.filter-pill.active,.toggle-pill.active{background:rgba(255,255,255,.11);border-color:rgba(255,255,255,.14);box-shadow:inset 0 0 0 1px rgba(255,255,255,.04)}.toggle-pill{display:inline-flex;align-items:center;gap:8px;padding:10px 13px;border-color:rgba(255,255,255,.045)}.toggle-pill:disabled{opacity:.45;cursor:not-allowed}.toggle-pill.unavailable{opacity:.5}.chip-note{font-style:normal;color:var(--muted);font-size:11px}.legend-dot{width:10px;height:10px;border-radius:999px;display:inline-block;box-shadow:0 0 0 1px rgba(255,255,255,.08)}.chart-wrap{padding:24px 18px 34px;border-radius:18px;background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.014));border:1px solid rgba(255,255,255,.05);display:grid;grid-gap:14px;gap:14px;align-content:start}.chart-canvas,.chart-wrap{width:100%;overflow:hidden}.chart-canvas{min-height:0;border-radius:14px}.process-chart-stack{display:grid;grid-gap:16px;gap:16px}.process-chart-panel{display:grid;grid-gap:10px;gap:10px;overflow:visible}.marker-rail{position:relative;height:30px;margin:6px 10px 14px;border-bottom:1px solid rgba(255,255,255,.06)}.marker-rail-item{position:absolute;top:0;transform:translateX(-50%);background:transparent;border:none;padding:0;cursor:default}.marker-rail-line{width:1px;height:18px;opacity:.72}.marker-rail-dot,.marker-rail-line{display:block;background:var(--marker-color)}.marker-rail-dot{width:8px;height:8px;margin:0 auto;border-radius:999px;box-shadow:0 0 0 3px rgba(255,255,255,.06)}.chart-axis-copy{display:flex;justify-content:space-between;gap:16px;padding:0 14px 12px;color:rgba(217,228,229,.72);font-size:12px}.inline-section-copy{display:grid;grid-gap:2px;gap:2px}.inline-section-copy p{margin:0;color:var(--muted);font-size:13px}.trend-explorer-card{gap:14px}.trend-explorer-card .section-header{margin-bottom:0}.device-health-grid,.trend-explorer-card .section-header p{margin-top:4px}.restart-event-list{margin-top:10px}.secondary-group{margin-top:10px;padding-top:8px;border-top:1px solid rgba(255,255,255,.04)}.chart-skeleton{min-height:720px;border-radius:18px;background:linear-gradient(90deg,rgba(255,255,255,.03),rgba(255,255,255,.08),rgba(255,255,255,.03));background-size:200% 100%;animation:shimmer 1.4s linear infinite}.chart-tooltip{min-width:240px;padding:14px 16px;border-radius:16px;background:rgba(9,14,19,.97);border:1px solid rgba(255,255,255,.1);box-shadow:var(--shadow)}.tooltip-list{display:grid;grid-gap:10px;gap:10px;margin-top:10px}.tooltip-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;grid-gap:10px;gap:10px}.history-caption{display:flex;justify-content:space-between;gap:16px;font-size:12px}.recharts-responsive-container{overflow:hidden!important}.recharts-surface{overflow:hidden}.recharts-cartesian-axis-ticks text{dominant-baseline:hanging}.trend-summary-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.trend-summary-grid-three-up{grid-template-columns:repeat(3,minmax(0,1fr))}.trend-summary-card{display:grid;grid-gap:16px;gap:16px;min-height:192px}.grouped-device-card .trend-stat-row strong{font-weight:550}.trend-summary-head{display:inline-flex;align-items:center;gap:8px}.trend-stat-row{display:flex;justify-content:space-between;gap:12px}.trend-stat-row span{color:rgba(217,228,229,.58)}.trend-stat-row strong{color:rgba(234,239,240,.92)}.toggle-stack{display:grid;grid-gap:14px;gap:14px}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px;border-radius:18px;border:1px solid rgba(255,255,255,.06);background:rgba(255,255,255,.032);text-align:left}.automation-module{min-height:104px}.pump-action-header strong,.toggle-row strong{display:block;margin-bottom:4px}.toggle-row span{color:var(--muted);font-size:14px}.toggle-side{display:inline-flex;align-items:center;gap:12px}.toggle-switch{width:64px;height:36px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);position:relative;transition:background .15s ease}.toggle-switch.on{background:linear-gradient(135deg,rgba(91,168,155,.9),rgba(63,128,120,.86))}.toggle-knob{position:absolute;top:3px;left:4px;width:28px;height:28px;border-radius:999px;background:white;transition:transform .15s ease}.toggle-switch.on .toggle-knob{transform:translateX(28px)}.pump-action-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:16px;gap:16px}.pump-action-card{display:grid;grid-gap:14px;gap:14px}.pump-action-header{display:flex;align-items:center;gap:10px}.pump-action-icon{opacity:.84}.pump-action-header span{font-size:13px;color:var(--muted)}.pump-action-meta{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.pump-action-meta strong{font-size:14px}.permission-note{font-size:12px}.form-help,.mini-help{margin:0;font-size:12px;line-height:1.55;color:rgba(217,228,229,.56)}.action-button,.submit-button{display:inline-flex;justify-content:center;align-items:center;padding:12px 18px;background:rgba(255,255,255,.05);transition:background .15s ease,transform .15s ease,border-color .15s ease}.action-button.primary{background:rgba(91,168,155,.16);border-color:rgba(91,168,155,.26)}.action-button:hover,.filter-pill:hover,.submit-button:hover,.toggle-pill:hover,.toggle-row:hover{background:rgba(255,255,255,.1)}.action-button.muted{background:rgba(255,255,255,.02);border-color:rgba(255,255,255,.045)}.action-button.large{min-height:50px}.submit-button{background:linear-gradient(135deg,rgba(88,158,147,.94),rgba(50,102,97,.94));border:none}.submit-button.compact{padding:11px 16px;width:-moz-fit-content;width:fit-content}.submit-button.full-width{width:100%;min-height:48px}.action-button:disabled,.submit-button:disabled,.toggle-row:disabled{opacity:.45;cursor:not-allowed;transform:none}.config-form{display:grid;grid-gap:16px;gap:16px}.calibration-stack{display:grid;grid-gap:18px;gap:18px}.calibration-copy{max-width:78ch;white-space:nowrap}.calibration-note{color:rgba(217,228,229,.62);line-height:1.55}.calibration-warning{margin:0}.calibration-guidance-grid{gap:14px}.calibration-guidance-card,.calibration-sensor-card{display:grid;grid-gap:14px;gap:14px;padding:18px;border-radius:18px;border:1px solid rgba(255,255,255,.055);background:rgba(255,255,255,.03)}.calibration-sensor-card{grid-template-rows:minmax(56px,auto) minmax(52px,52px) minmax(182px,182px) minmax(42px,42px) auto auto;align-content:start}.calibration-guidance-card h3{margin:0;font-size:15px}.calibration-list{margin:0;padding-left:18px;display:grid;grid-gap:6px;gap:6px;color:rgba(217,228,229,.72);font-size:13px;line-height:1.5}.calibration-list.ordered{padding-left:22px}.calibration-sensor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:16px;gap:16px}.calibration-sensor-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;min-height:56px}.calibration-detail-list{gap:0;min-height:182px;align-content:start}.calibration-detail-list>div{padding:10px 0}.calibration-sequence{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.calibration-sequence-item{display:inline-flex;align-items:center;gap:4px;padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.042);border:1px solid rgba(255,255,255,.055);font-size:12px;color:rgba(234,239,240,.86)}.calibration-action-row{display:flex;flex-wrap:wrap;gap:10px;align-content:flex-start}.calibration-action-row .action-button{min-height:42px}.calibration-status-button{border-color:rgba(255,255,255,.055)}.calibration-clear-button{background:rgba(255,255,255,.015);border-color:rgba(255,255,255,.035);color:rgba(217,228,229,.72)}.calibration-inline-grid{display:grid;grid-gap:14px;gap:14px}@media (max-width:1200px){.calibration-copy{white-space:normal}}.calibration-inline-field{display:flex;align-items:center;gap:12px}.calibration-inline-field input{flex:1 1;min-width:0;padding-right:16px}.calibration-suffix{color:rgba(217,228,229,.46);font-size:12px;white-space:nowrap;margin-right:2px}.calibration-inline-action{min-width:92px}.settings-block{display:grid;grid-gap:14px;gap:14px}.settings-block h3{margin:0 0 2px;font-size:15px;font-weight:600}.field{display:grid;grid-gap:6px;gap:6px}.field span{font-size:13px;color:rgba(217,228,229,.68)}.field input,.field select,.login-card input{border-radius:14px;border:1px solid rgba(255,255,255,.08);background:rgba(13,18,23,.78);color:var(--text);padding:12px 14px;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.field input:focus,.field select:focus,.login-card input:focus{border-color:rgba(91,168,155,.56);box-shadow:0 0 0 3px rgba(91,168,155,.12)}.toast-stack{position:fixed;right:24px;bottom:24px;z-index:40;display:grid;grid-gap:12px;gap:12px}.toast{min-width:250px;padding:14px 16px;border-radius:16px;border:1px solid rgba(255,255,255,.08);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.toast.success{background:rgba(24,48,39,.92)}.toast.error{background:rgba(61,28,29,.94)}.modal-backdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:24px;background:rgba(5,8,10,.66);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.modal-card{width:min(100%,460px);padding:24px;border-radius:22px;background:rgba(11,16,20,.96);border:1px solid rgba(255,255,255,.08);box-shadow:var(--shadow)}.advanced-panels{display:grid;grid-gap:12px;gap:12px}.collapsible-panel{border-radius:16px;border:1px solid rgba(255,255,255,.06);background:rgba(255,255,255,.028);overflow:hidden}.collapsible-panel summary{list-style:none;cursor:pointer;padding:14px 18px;font-weight:600;display:flex;align-items:center;justify-content:space-between}.collapsible-panel summary::-webkit-details-marker{display:none}.collapsible-panel summary:after{content:"›";color:rgba(217,228,229,.62);font-size:18px;transform:rotate(90deg);transition:transform .15s ease}.collapsible-panel[open] summary:after{transform:rotate(270deg)}.collapsible-body{display:grid;grid-gap:14px;gap:14px;padding:0 18px 16px}.json-block{margin:0;padding:16px;font-size:13px;line-height:1.6;color:#cadadb;white-space:pre;overflow-x:auto;border-radius:16px;background:rgba(255,255,255,.03);font-family:SFMono-Regular,Menlo,Monaco,monospace}.json-block.syntax .json-key{color:#89d4ff}.json-block.syntax .json-string{color:#f0c08a}.json-block.syntax .json-number{color:#8ce0bd}.json-block.syntax .json-boolean{color:#d8a4ff}.json-block.syntax .json-null{color:#98a7b8}.json-toolbar{display:flex;justify-content:flex-end}.empty-state-head{gap:10px}.empty-state-head,.empty-state-icon{display:inline-flex;align-items:center}.empty-state-icon{width:30px;height:30px;border-radius:10px;justify-content:center;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.06)}.empty-state-icon svg{width:16px;height:16px}.loading-card,.login-card{position:relative;z-index:1}.branded-loader{display:grid;justify-items:center;grid-gap:14px;gap:14px;text-align:center}.vine-loader{width:220px;height:260px;display:grid;place-items:center}.login-transition-card{min-height:460px;align-content:center}.vine-loader-art{width:220px;height:260px;overflow:visible}.vine-stem{fill:none;stroke:url(#vine-stem);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:100;stroke-dashoffset:100;animation:vineGrow .82s cubic-bezier(.42,0,.22,1) forwards}.vine-loader.mode-exit .vine-stem{stroke-dashoffset:0;animation:vineRetract .82s cubic-bezier(.63,.02,.32,.96) .88s forwards}.vine-leaf{fill:url(#vine-leaf);opacity:0;transform-box:fill-box;transform-origin:center}.leaf-one{animation:leafAppear .42s ease-out .52s forwards}.vine-loader.mode-exit .leaf-one{opacity:1;animation:leafDisappear .26s ease-in .46s forwards}.leaf-two{animation:leafAppear .42s ease-out .74s forwards}.vine-loader.mode-exit .leaf-two{opacity:1;animation:leafDisappear .26s ease-in .62s forwards}.leaf-three{animation:leafAppear .42s ease-out .94s forwards}.vine-loader.mode-exit .leaf-three{opacity:1;animation:leafDisappear .26s ease-in .76s forwards}.vine-tomato{opacity:0;transform-box:fill-box;transform-origin:center}.tomato-fruit{fill:url(#vine-tomato)}.tomato-one{animation:fruitAppear .34s ease-out 1s forwards}.vine-loader.mode-exit .tomato-one{opacity:1;animation:fruitDisappear .28s ease-in .18s forwards}.tomato-two{animation:fruitAppear .34s ease-out 1.18s forwards}.vine-loader.mode-exit .tomato-two{opacity:1;animation:fruitDisappear .28s ease-in .3s forwards}.tomato-three{animation:fruitAppear .34s ease-out 1.34s forwards}.vine-loader.mode-exit .tomato-three{opacity:1;animation:fruitDisappear .28s ease-in .42s forwards}.tomato-four{animation:fruitAppear .34s ease-out 1.52s forwards}.vine-loader.mode-exit .tomato-four{opacity:1;animation:fruitDisappear .28s ease-in .54s forwards}.tomato-calyx{fill:#6c8d5a}.tomato-loader{display:inline-flex;align-items:center;gap:10px}.tomato-loader-item{width:26px;height:26px;color:rgba(211,109,86,.32);transform:scale(.9);opacity:.28;animation:tomatoPulse 1.25s ease-in-out infinite}.tomato-loader-item:nth-child(2){animation-delay:.12s}.tomato-loader-item:nth-child(3){animation-delay:.24s}.tomato-loader-item:nth-child(4){animation-delay:.36s}.tomato-loader-item:nth-child(5){animation-delay:.48s}.tomato-loader-item svg{width:100%;height:100%}.loading-caption{margin:0;color:rgba(217,228,229,.78);font-size:14px}.vine-loader.reduced-motion .vine-leaf,.vine-loader.reduced-motion .vine-stem,.vine-loader.reduced-motion .vine-tomato{animation:none;opacity:1;stroke-dashoffset:0}.loading-shell{display:grid;place-items:center}.loading-card,.login-card{width:min(100%,520px);margin:0 auto}.login-page{display:grid;place-items:center}.login-card{display:grid;grid-gap:15px;gap:15px;box-shadow:0 24px 60px rgba(0,0,0,.34)}.login-card .subtitle{max-width:45ch;color:rgba(217,228,229,.56)}.login-card .field span{color:rgba(217,228,229,.62)}.error-text{margin:0;color:var(--danger)}.background-orb{position:fixed;inset:auto;width:380px;height:380px;border-radius:999px;filter:blur(72px);opacity:.14;pointer-events:none}.orb-one{top:-60px;left:-40px;background:rgba(91,168,155,.42)}@keyframes vineGrow{0%{stroke-dashoffset:100}to{stroke-dashoffset:0}}@keyframes vineRetract{0%{stroke-dashoffset:0}to{stroke-dashoffset:100}}@keyframes leafAppear{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}@keyframes leafDisappear{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.72)}}@keyframes fruitAppear{0%{opacity:0;transform:scale(.65)}70%{opacity:1;transform:scale(1.06)}to{opacity:1;transform:scale(1)}}@keyframes fruitDisappear{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.58)}}@media (prefers-reduced-motion:reduce){.tomato-loader-item,.vine-leaf,.vine-stem,.vine-tomato{animation:none!important}}.orb-two{top:120px;right:-80px;background:rgba(211,109,86,.34)}.system-banner{min-height:80px;display:flex;justify-content:space-between;gap:20px;align-items:center;padding:24px 24px 20px;border-radius:16px;border:1px solid rgba(255,255,255,.06);box-shadow:var(--shadow)}.system-banner.tone-healthy{background:linear-gradient(135deg,rgba(31,82,61,.96),rgba(21,40,35,.96))}.system-banner.tone-warning{background:linear-gradient(135deg,rgba(101,72,26,.96),rgba(42,31,17,.96))}.system-banner.tone-critical{background:linear-gradient(135deg,rgba(61,27,34,.92),rgba(26,18,22,.96))}.system-banner-label{margin:0 0 4px;font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.72)}.system-banner h2{font-size:26px;margin:0}.system-banner-copy{display:grid;grid-gap:7px;gap:7px;align-content:center}.system-banner-issues{display:flex;flex-wrap:wrap;gap:8px}.system-issue-chip{padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.06);font-size:12px}.system-banner-meta{display:grid;grid-gap:10px;gap:10px;min-width:176px;align-content:center}.system-banner-meta span{display:block;margin-bottom:4px;color:rgba(255,255,255,.56);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.system-diagram{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.diagram-node{min-width:150px;padding:18px;border-radius:16px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.06);display:grid;grid-gap:6px;gap:6px}.diagram-arrow{font-size:22px;color:rgba(255,255,255,.58)}.pump-state-badge{display:inline-flex;align-items:center;justify-content:center;min-width:92px;padding:8px 10px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid transparent}.pump-state-badge.state-idle{background:rgba(255,255,255,.07);color:rgba(233,238,239,.88)}.pump-state-badge.state-armed{background:rgba(95,159,255,.14);color:#b8d3ff;border-color:rgba(95,159,255,.2)}.pump-state-badge.state-dosing{background:rgba(120,203,153,.16);color:#c9f5d7;border-color:rgba(120,203,153,.22);animation:pulseGlow 1.2s ease-in-out infinite}.pump-state-badge.state-fault{background:rgba(239,142,123,.16);color:#ffd0c7;border-color:rgba(239,142,123,.25)}.pump-state-badge.state-disabled{background:rgba(255,255,255,.05);color:rgba(217,228,229,.68)}.danger-panel{border-color:rgba(239,142,123,.18);box-shadow:0 12px 28px rgba(47,10,10,.2)}.danger-copy{margin:0;color:rgba(255,212,205,.72)}.actuator-copy{margin-bottom:2px}.danger-card{border-color:rgba(239,142,123,.12);background:rgba(58,26,28,.24)}.alert-item{align-items:center}.alert-history-grid{width:100%;display:grid;grid-template-columns:74px 90px 90px 1fr;grid-gap:12px;gap:12px;align-items:center}.alert-history-grid span{color:rgba(217,228,229,.48)}.device-group{display:grid;grid-gap:14px;gap:14px}.section-footer-action{margin-top:2px;padding-top:8px;display:flex;justify-content:flex-end;border-top:1px solid rgba(255,255,255,.038)}.dashboard-balance-card{gap:18px}.dashboard-balance-card .section-header p{margin-top:6px}.dashboard-automation-card .detail-list{gap:12px}.dashboard-automation-card .detail-list>div{padding-right:4px}.dashboard-automation-card .detail-list strong{font-weight:520}.dashboard-events-card .event-list{gap:7px}.dashboard-events-card .event-item.compact{padding:10px 14px}.dashboard-events-card .section-footer-action{margin-top:-2px}.dashboard-alerts-card .event-item{padding:13px 15px;background:rgba(255,255,255,.028)}.dashboard-alerts-card .alert-history-grid{gap:10px}.dashboard-alerts-card .alert-history-grid strong{font-weight:560}.dashboard-summary-card .summary-strip>div{padding:15px}.dashboard-summary-card{align-self:start;gap:16px;padding-bottom:18px}.dashboard-summary-card .summary-strip.compact>div,.dashboard-summary-card .uniform-tiles>div{min-height:90px}.dashboard-summary-card .summary-strip span{margin-bottom:5px}.controller-log-card{gap:14px}.controller-log-list{gap:9px}.controller-log-item{align-items:flex-start}.controller-log-copy{display:grid;grid-gap:4px;gap:4px}.controller-log-copy strong{font-weight:540;color:rgba(241,246,247,.94)}.controller-log-time{color:rgba(203,211,214,.66);font-size:12px;white-space:nowrap;padding-top:2px}.grouped{gap:16px}.grouped-device-card{min-height:220px}.value-flash{animation:metricPulse .7s ease}.skeleton-card,.skeleton-line{background:linear-gradient(90deg,rgba(255,255,255,.03),rgba(255,255,255,.08),rgba(255,255,255,.03));background-size:200% 100%;animation:shimmer 1.4s linear infinite}.skeleton-card{min-height:220px}.control-skeleton{min-height:260px}.skeleton-line.heading{height:18px;width:220px;border-radius:999px}.message-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:16px;border:1px solid rgba(255,255,255,.06);background:rgba(255,255,255,.03)}.message-bar.success{background:rgba(28,69,51,.32);border-color:rgba(120,203,153,.16)}.message-bar.error,.message-bar.warning{background:rgba(75,40,34,.4);border-color:rgba(239,142,123,.22)}.irrigation-summary-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.irrigation-summary-grid-simple{grid-template-columns:repeat(4,minmax(0,1fr))}.irrigation-summary-tile{padding:18px;border-radius:18px;background:radial-gradient(circle at top left,rgba(255,255,255,.06),transparent 42%),linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.028));border:1px solid rgba(255,255,255,.065);display:grid;grid-gap:8px;gap:8px;box-shadow:inset 0 1px 0 rgba(255,255,255,.03)}.irrigation-summary-top{display:flex;align-items:center;gap:11px;color:rgba(217,228,229,.62);font-size:13px}.irrigation-summary-top .icon-badge{width:44px;height:44px;flex:0 0 44px;border-radius:14px;background:rgba(255,255,255,.065);border-color:rgba(255,255,255,.09);padding:0}.irrigation-summary-top .tile-icon-wrap{width:100%;height:100%;display:inline-flex;align-items:center;justify-content:center}.irrigation-summary-top .icon-badge svg,.irrigation-summary-top .tile-icon{width:25px;height:25px;display:block}.irrigation-summary-top>span:last-child{display:inline-flex;align-items:center;min-height:44px}.irrigation-summary-top .tile-icon-reservoir .tile-icon{transform:translateX(-.6px) translateY(-.2px)}.irrigation-summary-top .tile-icon-next-run .tile-icon{transform:translateX(.55px) translateY(-.55px)}.irrigation-summary-top .tile-icon-irrigation-today .tile-icon{transform:translateX(.25px) translateY(.1px)}.irrigation-summary-top .tile-icon-plug-status .tile-icon{transform:translateX(-.35px) translateY(.45px)}.irrigation-summary-tile strong{font-size:34px;line-height:.95;font-weight:600}.irrigation-summary-meta{display:inline-flex;width:-moz-fit-content;width:fit-content;align-items:center;min-height:28px;padding:6px 10px;border-radius:999px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:rgba(230,238,239,.82);background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.06)}.irrigation-summary-meta.tone-healthy{color:rgba(199,236,224,.94);background:rgba(76,128,108,.18);border-color:rgba(126,196,167,.18)}.irrigation-summary-meta.tone-warning{color:rgba(245,220,176,.96);background:rgba(118,82,31,.18);border-color:rgba(225,175,87,.18)}.irrigation-summary-meta.tone-critical{color:rgba(248,212,208,.96);background:rgba(113,49,42,.22);border-color:rgba(210,110,94,.2)}.irrigation-summary-tile.tone-warning{border-color:rgba(225,175,87,.14)}.irrigation-summary-tile.tone-critical{border-color:rgba(210,110,94,.16)}.irrigation-summary-tile p{margin:0;color:rgba(217,228,229,.52);font-size:12px;line-height:1.5}.irrigation-main-grid{align-items:start}.irrigation-schematic{display:grid;grid-gap:20px;gap:20px}.irrigation-schematic-grid{position:relative;display:grid;grid-gap:18px;gap:18px;grid-template-columns:214px minmax(236px,292px) minmax(0,1fr);align-items:center}.irrigation-mainline{position:absolute;left:176px;right:28px;top:154px;height:6px;border-radius:999px;background:linear-gradient(90deg,rgba(118,136,143,.42),rgba(176,194,200,.58));border:1px solid rgba(255,255,255,.055);overflow:hidden;z-index:0}.irrigation-mainline.is-running{background:linear-gradient(90deg,rgba(112,179,164,.38),rgba(178,237,224,.58))}.irrigation-mainline-flow{position:absolute;inset:0;border-radius:inherit;opacity:0}.irrigation-mainline-flow:before{content:"";position:absolute;inset:1px;border-radius:inherit;background:linear-gradient(90deg,rgba(188,240,231,0),rgba(188,240,231,.24) 14%,rgba(222,250,245,.64) 24%,rgba(188,240,231,.24) 34%,rgba(188,240,231,0) 48%);transform:translateX(-32%)}.irrigation-mainline.is-running .irrigation-mainline-flow{opacity:1}.irrigation-mainline.is-running .irrigation-mainline-flow:before{animation:mainTubeFlow 4.2s linear infinite}.grow-bench,.pump-assembly,.reservoir-tank{min-width:0}.reservoir-tank{display:grid;grid-gap:16px;gap:16px;justify-items:center}.reservoir-shell{position:relative;width:170px;height:260px;padding:14px;border-radius:36px;background:linear-gradient(180deg,rgba(12,18,25,.96),rgba(7,12,16,.95)),rgba(9,14,19,.92);border:1px solid rgba(255,255,255,.09);overflow:hidden;box-shadow:inset 0 0 0 1px rgba(255,255,255,.03),inset 0 -30px 80px rgba(70,130,125,.06)}.reservoir-shell.is-running{box-shadow:inset 0 0 0 1px rgba(255,255,255,.03),inset 0 -34px 90px rgba(77,156,147,.12),0 0 0 1px rgba(92,163,150,.08)}.reservoir-shell.state-warning{border-color:rgba(230,179,93,.22)}.reservoir-shell.state-critical{border-color:rgba(214,110,93,.28);box-shadow:inset 0 0 0 1px rgba(255,255,255,.03),inset 0 -34px 90px rgba(134,48,44,.14)}.reservoir-cap{position:absolute;top:10px;left:50%;width:70px;height:12px;transform:translateX(-50%);border-radius:999px;background:rgba(255,255,255,.08)}.reservoir-refraction{position:absolute;inset:16px 20px 20px 20px;border-radius:28px;background:linear-gradient(90deg,rgba(255,255,255,.12),transparent 24%,transparent 70%,rgba(255,255,255,.07)),linear-gradient(180deg,rgba(255,255,255,.065),transparent 18%);mix-blend-mode:screen;opacity:.48;pointer-events:none}.reservoir-fill{position:absolute;left:14px;right:14px;bottom:14px;border-radius:24px 24px 24px 24px;background:linear-gradient(180deg,rgba(111,189,177,.9),rgba(51,113,126,.82)),linear-gradient(180deg,rgba(70,145,138,.36),rgba(42,96,106,.5));box-shadow:inset 0 1px 0 rgba(255,255,255,.16);transition:height .9s ease;overflow:hidden}.reservoir-fill.is-running{filter:saturate(1.08)}.reservoir-wave{position:absolute;left:-8%;width:116%;height:24px;border-radius:999px;background:linear-gradient(180deg,rgba(232,246,248,.34),rgba(232,246,248,.08) 58%,rgba(232,246,248,0));animation:reservoirWave 6.6s ease-in-out infinite}.reservoir-wave.wave-back{display:none}.reservoir-wave.wave-front{top:-1px;opacity:.62;animation-duration:5.1s}.reservoir-fill.is-running .reservoir-wave.wave-front{animation-duration:3.9s}.reservoir-outlet{position:absolute;top:58%;right:-4px;width:26px;height:10px;border-radius:999px 7px 7px 999px;background:linear-gradient(90deg,rgba(155,180,186,.52),rgba(82,108,116,.78));border:1px solid rgba(255,255,255,.075);box-shadow:0 2px 8px rgba(0,0,0,.18)}.reservoir-shell.is-running .reservoir-outlet{animation:outletPulse 1.8s ease-in-out infinite}.reservoir-overlay{position:absolute;inset:auto 22px 24px 22px;display:grid;grid-gap:6px;gap:6px;z-index:1}.reservoir-label{color:rgba(221,234,235,.74);font-size:11px;letter-spacing:.12em;text-transform:uppercase}.reservoir-overlay strong{font-size:42px;line-height:1}.reservoir-copy span,.reservoir-overlay span{color:var(--muted);font-size:13px}.reservoir-copy{display:grid;grid-gap:4px;gap:4px;text-align:center}.pump-assembly{position:relative;grid-gap:14px;gap:14px;align-content:start;padding-top:2px}.pump-assembly,.pump-module{display:grid;justify-items:center;z-index:2}.pump-module{grid-gap:7px;gap:7px;min-width:104px;padding:9px 12px;border-radius:18px;background:radial-gradient(circle at top left,rgba(255,255,255,.075),transparent 54%),linear-gradient(180deg,rgba(20,29,35,.98),rgba(11,17,21,.985));border:1px solid rgba(255,255,255,.095);box-shadow:0 10px 20px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.04)}.pump-module.is-running{border-color:rgba(120,203,153,.18);box-shadow:0 9px 20px rgba(22,35,31,.2),inset 0 1px 0 rgba(255,255,255,.04),0 0 0 1px rgba(120,203,153,.06)}.pump-inline-label{display:block;color:rgba(225,234,235,.68);font-size:9px;letter-spacing:.12em;text-transform:uppercase}.pump-inline-core{width:38px;height:38px;display:grid;place-items:center;border-radius:999px;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.11),transparent 46%),linear-gradient(180deg,rgba(24,34,40,.98),rgba(12,19,24,.98));border:1px solid rgba(255,255,255,.095);box-shadow:inset 0 1px 0 rgba(255,255,255,.045)}.pump-module.is-running .pump-inline-core{border-color:rgba(120,203,153,.24);box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 0 18px rgba(91,163,139,.16)}.pump-inline-state{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;color:rgba(226,234,235,.72)}.pump-inline-state.is-on{color:rgba(175,234,193,.96)}.pump-power-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.pump-inline-actions{display:flex;justify-content:center;position:relative;z-index:3;margin-top:0}.irrigation-emergency-button{display:inline-flex;align-items:center;gap:8px;min-height:30px;padding:0 10px;border-radius:999px;border:1px solid rgba(211,109,86,.18);background:linear-gradient(180deg,rgba(91,30,27,.3),rgba(41,17,18,.72));color:rgba(250,235,233,.94);transition:transform .15s ease,border-color .15s ease,background .15s ease,opacity .15s ease}.irrigation-emergency-button:hover{background:linear-gradient(180deg,rgba(108,36,32,.38),rgba(46,19,20,.82));border-color:rgba(227,128,95,.22);transform:translateY(-1px)}.irrigation-emergency-button:disabled{opacity:.6;cursor:not-allowed}.irrigation-emergency-button strong{font-size:10px;line-height:1;letter-spacing:.08em;text-transform:uppercase}.grow-bench{grid-gap:10px;gap:10px;padding:10px 6px 12px;border-radius:28px;background:radial-gradient(circle at 40% 0,rgba(255,255,255,.035),transparent 48%),linear-gradient(180deg,rgba(15,21,27,.82),rgba(8,12,16,.52));border:1px solid rgba(255,255,255,.045)}.grow-bench,.grow-sites-grid{position:relative;display:grid}.grow-sites-grid{grid-template-columns:repeat(4,minmax(136px,1fr));grid-gap:14px 14px;gap:14px 14px;padding:16px 8px 8px;align-items:end}.grow-sites-grid:after,.grow-sites-grid:before{content:none}.grow-site{position:relative;display:grid;grid-gap:0;gap:0;justify-items:center;padding-top:8px;align-items:end;z-index:1}.grow-site-branch{display:none}.grow-site-irrigation{position:absolute;left:50%;bottom:55px;transform:translateX(-50%);width:40px;height:54px;z-index:2}.grow-site-feeder-line{position:absolute;inset:0}.grow-site-feeder-line:before{content:"";border-left:1.8px solid rgba(214,226,228,.22);border-bottom:1.8px solid rgba(214,226,228,.22);border-bottom-left-radius:18px;background:none}.grow-site-feeder-flow,.grow-site-feeder-line:before{position:absolute;left:50%;top:0;width:18px;height:46px;transform:translateX(-10px)}.grow-site-feeder-flow{pointer-events:none;opacity:0}.grow-site-feeder-flow:before{content:"";position:absolute;width:5px;height:5px;left:-1px;top:-2px;border-radius:999px;background:rgba(214,246,239,.92);box-shadow:0 0 10px rgba(126,197,181,.26)}.grow-site.is-running .grow-site-feeder-flow{opacity:1}.grow-site.is-running .grow-site-feeder-flow:before{animation:feederTubeFlow 2.35s ease-in-out infinite;animation-delay:var(--motion-delay)}.grow-emitter{position:relative;position:absolute;left:8px;bottom:8px;width:12px;height:22px;display:inline-flex;justify-content:center}.grow-emitter:before{content:"";position:absolute;top:2px;width:8px;height:4px;border-radius:999px;background:rgba(230,239,240,.28)}.grow-emitter-line{width:2px;height:14px;border-radius:999px;background:rgba(255,255,255,.16)}.grow-emitter.is-running:after{content:"";position:absolute;top:12px;left:50%;width:6px;height:10px;transform:translateX(-50%);border-radius:999px;background:rgba(171,237,224,.94);animation:dripFall 1.05s ease-in infinite;animation-delay:var(--motion-delay)}.tomato-site-illustration{width:132px;height:236px;overflow:visible;transform:scale(var(--site-scale)) rotate(var(--site-tilt));transform-origin:center bottom;filter:drop-shadow(0 10px 14px rgba(0,0,0,.22))}.irrigation-stake{fill:none;stroke:rgba(208,215,214,.28);stroke-width:1.55;stroke-linecap:round}.irrigation-support-tie{fill:none;stroke:rgba(132,182,143,.34);stroke-width:.95;stroke-linecap:round}.irrigation-vine-group{transform-box:fill-box;transform-origin:center bottom;animation:plantSway 6.8s ease-in-out infinite;animation-delay:var(--motion-delay)}.growbag-seam,.growbag-side,.irrigation-fruit-stem,.irrigation-vine-branch,.irrigation-vine-stem{fill:none;stroke-linecap:round;stroke-linejoin:round}.irrigation-vine-stem{stroke:var(--stem-gradient);stroke-width:2.15}.irrigation-vine-branch{stroke:var(--stem-gradient);stroke-width:1.28;opacity:.92}.irrigation-foliage-sprig{filter:drop-shadow(0 1px 1px rgba(0,0,0,.14))}.irrigation-leaf-rachis{fill:none;stroke:var(--stem-gradient);stroke-width:.9;stroke-linecap:round}.irrigation-leaflet{fill:var(--leaf-gradient);stroke:rgba(214,236,205,.16);stroke-width:.35}.irrigation-fruit-stem{stroke:var(--stem-gradient);stroke-width:1.3}.irrigation-fruit{fill:var(--fruit-gradient);stroke:rgba(255,227,219,.16);stroke-width:1}.irrigation-fruit-group{transform:scale(var(--fruit-scale));transform-origin:center}.irrigation-fruit-calyx{fill:rgba(101,149,91,.95);stroke:rgba(214,236,205,.08);stroke-width:.8}.growbag-body{fill:#372722;filter:drop-shadow(0 8px 8px rgba(0,0,0,.22))}.growbag-rim{fill:#5c4740}.growbag-media{fill:#241914}.growbag-media-highlight{fill:rgba(124,97,68,.22)}.growbag-side{stroke:rgba(255,255,255,.08);stroke-width:1.2}.growbag-seam{stroke:rgba(255,255,255,.06);stroke-width:1}.growbag-moisture{fill:rgba(58,88,74,.34);transition:fill .3s ease,opacity .3s ease}.grow-site.is-running .growbag-moisture{fill:rgba(73,122,103,.68)}.grow-site-label{display:none}.grow-site-label strong{color:rgba(217,229,230,.76);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.irrigation-system-meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;color:var(--muted);font-size:13px;padding-top:4px}.irrigation-control-summary,.irrigation-reservoir-strip{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.irrigation-form-grid,.irrigation-quick-grid{display:grid;grid-gap:16px;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.irrigation-expandable-body .irrigation-form-grid{column-gap:20px;row-gap:16px}.irrigation-button-row{justify-content:flex-start}.irrigation-button-row .action-button.muted{border-color:rgba(255,255,255,.035)}.irrigation-reservoir-actions{display:grid;grid-gap:16px;gap:16px;grid-template-columns:minmax(180px,240px) minmax(0,1fr);align-items:end}.irrigation-quick-panel{display:grid;grid-gap:16px;gap:16px;grid-template-columns:repeat(4,minmax(0,1fr))}.irrigation-compact-card,.irrigation-quick-action{display:grid;grid-gap:12px;gap:12px;padding:18px;border-radius:18px;background:radial-gradient(circle at top left,rgba(255,255,255,.04),transparent 48%),rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.055)}.irrigation-quick-action strong{font-size:28px;line-height:1}.irrigation-meta-copy,.irrigation-quick-action p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.irrigation-timeline-strip{display:grid;grid-gap:10px;gap:10px;padding:16px 18px;border-radius:18px;background:rgba(255,255,255,.022);border:1px solid rgba(255,255,255,.04)}.irrigation-timeline-title{color:rgba(217,228,229,.72);font-size:12px;letter-spacing:.08em;text-transform:uppercase}.irrigation-timeline-items{display:flex;flex-wrap:wrap;gap:10px}.timeline-chip{display:inline-flex;align-items:center;min-height:32px;padding:7px 11px;border-radius:999px;font-size:12px;color:var(--text);background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.06)}.timeline-chip.state-completed{color:rgba(204,234,224,.96);background:rgba(74,126,108,.18);border-color:rgba(126,196,167,.16)}.timeline-chip.state-upcoming{color:rgba(216,227,242,.96);background:rgba(76,96,133,.16);border-color:rgba(132,155,201,.14)}.timeline-chip.state-skipped{color:rgba(234,214,177,.9);background:rgba(118,82,31,.12);border-color:rgba(225,175,87,.12)}.timeline-chip.state-manual{color:rgba(239,217,212,.88);background:rgba(112,57,50,.12);border-color:rgba(214,110,93,.11)}.timeline-chip.state-idle{color:var(--muted)}.irrigation-inline-stack{display:grid;grid-gap:8px;gap:8px}.irrigation-inline-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.irrigation-inline-input{width:78px;border-radius:14px;border:1px solid rgba(255,255,255,.08);background:rgba(8,13,16,.86);color:var(--text);padding:12px 14px}.irrigation-inline-actions .action-button,.irrigation-inline-actions .submit-button,.irrigation-inline-stack .action-button{min-height:44px}.irrigation-inline-input:focus{outline:none;border-color:rgba(91,168,155,.56);box-shadow:0 0 0 3px rgba(91,168,155,.12)}.irrigation-inline-input-wide{width:100%}.integration-grid,.irrigation-analytics-grid,.irrigation-manual-grid,.schedule-list{display:grid;grid-gap:16px;gap:16px}.irrigation-manual-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.irrigation-action-card p,.irrigation-meta-label,.irrigation-summary-label{margin:0;color:var(--muted);font-size:12px}.irrigation-action-card p{line-height:1.5}.irrigation-history-table{display:grid;grid-gap:10px;gap:10px}.table-head,.table-row{display:grid;grid-template-columns:1.2fr .8fr .9fr 1.2fr;grid-gap:12px;gap:12px;align-items:center}.table-head{padding:0 4px;color:rgba(217,228,229,.72);font-size:12px;letter-spacing:.05em;text-transform:uppercase}.table-row{padding:15px 16px;border-radius:16px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.045);font-size:13px}.irrigation-history-table.compact.with-energy .table-head,.irrigation-history-table.compact.with-energy .table-row{grid-template-columns:1.2fr .8fr .7fr .7fr}.irrigation-history-table.compact .table-head,.irrigation-history-table.compact .table-row{grid-template-columns:1.2fr .8fr .7fr}.irrigation-schedule-card{border-radius:18px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.05);overflow:hidden}.irrigation-schedule-card>summary{list-style:none}.irrigation-schedule-card>summary::-webkit-details-marker{display:none}.irrigation-schedule-summary{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:18px 20px;cursor:pointer}.irrigation-schedule-main{display:grid;grid-gap:8px;gap:8px;min-width:0}.irrigation-schedule-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.irrigation-schedule-meta{display:flex;flex-wrap:wrap;gap:10px;color:var(--muted);font-size:13px}.irrigation-schedule-meta span{white-space:nowrap}.irrigation-expand-label{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.irrigation-schedule-body{display:grid;grid-gap:16px;gap:16px;padding:4px 20px 20px}.schedule-card-top,.schedule-day-grid,.schedule-fields-grid,.schedule-times,.schedule-type-row{display:flex;gap:10px;flex-wrap:wrap}.schedule-card-top{justify-content:space-between;align-items:flex-start}.schedule-form-actions{display:flex;justify-content:flex-start;padding-top:2px}.schedule-type-row{align-items:center;margin-top:10px}.schedule-type-badge{padding:6px 10px;border-radius:999px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;background:rgba(255,255,255,.042);border:1px solid rgba(255,255,255,.055)}.type-scheduled{color:rgba(194,233,224,.9)}.type-manual-template{color:rgba(240,208,147,.92)}.type-extra-cycle{color:rgba(242,184,170,.92)}.schedule-name-input{min-width:220px}.mini-toggle{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}.add-time-button,.day-chip,.subtle-danger-button,.time-remove{border-radius:999px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.04);color:var(--text)}.add-time-button,.day-chip{padding:10px 12px}.day-chip.active{background:rgba(91,168,155,.16);border-color:rgba(91,168,155,.24)}.time-chip-editor{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:5px;border-radius:16px;background:rgba(255,255,255,.028);border:1px solid rgba(255,255,255,.05);flex-wrap:wrap}.subtle-danger-button,.time-remove{padding:10px 12px}.schedule-times{align-items:center;gap:10px}.schedule-times .irrigation-inline-input[type=time]{width:auto;min-width:144px;padding:11px 15px;border-radius:12px;border-color:rgba(255,255,255,.075);background:rgba(17,23,29,.92);color:rgba(241,245,246,.98);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.schedule-times .irrigation-inline-input[type=time]::-webkit-datetime-edit{color:rgba(236,241,242,.96);padding:0 2px}.schedule-times .irrigation-inline-input[type=time]::-webkit-datetime-edit-hour-field,.schedule-times .irrigation-inline-input[type=time]::-webkit-datetime-edit-minute-field{padding:0 4px}.schedule-times .irrigation-inline-input[type=time]::-webkit-datetime-edit-ampm-field{padding-left:6px}.schedule-times .irrigation-inline-input[type=time]::-webkit-calendar-picker-indicator{opacity:.72}.time-duration-editor{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:0 12px;border-radius:12px;border:1px solid rgba(255,255,255,.06);background:rgba(17,23,29,.72)}.time-duration-editor span{color:rgba(217,228,229,.52);font-size:11px;text-transform:uppercase;letter-spacing:.06em}.time-duration-editor .time-duration-input{width:82px;min-width:82px;padding:0 26px 0 2px;border:none;background:transparent;color:rgba(241,245,246,.98);text-align:right;line-height:1.2;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;box-shadow:none}.time-duration-editor{gap:11px}.time-duration-editor .time-duration-input:focus{outline:none}.time-duration-editor .time-duration-input::-webkit-inner-spin-button,.time-duration-editor .time-duration-input::-webkit-outer-spin-button{margin-left:8px}.time-duration-editor em{color:rgba(217,228,229,.62);font-size:12px;font-style:normal;margin-left:4px}.time-remove{min-width:38px;min-height:38px;padding:0;border-radius:12px;background:rgba(255,255,255,.018);border-color:rgba(255,255,255,.035);color:rgba(217,228,229,.6);font-size:18px;line-height:1;margin-left:2px}.add-time-button{border-color:rgba(255,255,255,.045);color:rgba(217,228,229,.78)}.schedule-fields-grid{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:14px;gap:14px}.irrigation-analytics-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.irrigation-chart-card{display:grid;grid-gap:14px;gap:14px}.irrigation-chart-wide{grid-column:span 2}.irrigation-analytics-value{font-size:28px;line-height:1}.irrigation-inline-empty{min-height:142px;display:grid;place-items:center;color:rgba(217,228,229,.52);font-size:13px;text-align:center}.irrigation-chart,.irrigation-line-chart{width:100%}.irrigation-bars{display:grid;grid-template-columns:repeat(auto-fit,minmax(40px,1fr));grid-gap:10px;gap:10px;align-items:end;min-height:180px}.irrigation-bar-column{display:grid;grid-gap:8px;gap:8px;justify-items:center}.chart-axis-label,.chart-latest-label,.irrigation-bar-label,.irrigation-bar-value,.irrigation-chart-unit{color:var(--muted);font-size:11px}.irrigation-bar-track{height:120px;background:rgba(255,255,255,.04);display:flex;align-items:flex-end;padding:6px}.irrigation-bar-fill,.irrigation-bar-track{width:100%;border-radius:999px}.irrigation-line-chart svg{width:100%;height:auto;overflow:visible}.chart-grid-line{stroke:rgba(255,255,255,.07);stroke-dasharray:4 6}.irrigation-line-path{fill:none;stroke:rgba(120,203,153,.95);stroke-width:3}.irrigation-line-dot{fill:rgba(120,203,153,.95)}.chart-refill-line{stroke:rgba(211,109,86,.5);stroke-width:1.5;stroke-dasharray:3 5}.irrigation-stat-stack>div{align-items:center}.irrigation-analytics-compact-grid{display:grid;grid-gap:16px;gap:16px;grid-template-columns:repeat(4,minmax(0,1fr))}.irrigation-compact-card-wide{grid-column:1/-1}.irrigation-inline-empty-card{display:flex;align-items:center;justify-content:space-between;gap:14px}.irrigation-inline-empty-card strong{font-size:15px;font-weight:500;color:rgba(217,228,229,.72)}.irrigation-inline-empty-label{color:rgba(217,228,229,.62);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.irrigation-secondary-grid{display:grid;grid-gap:16px;gap:16px;grid-template-columns:1.35fr .95fr;margin-top:16px}.irrigation-expandable{border-radius:18px;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.04);overflow:hidden}.irrigation-expandable>summary{list-style:none;cursor:pointer;padding:15px 18px;color:var(--text);font-size:13px;font-weight:600}.irrigation-expandable>summary::-webkit-details-marker{display:none}.irrigation-expandable-body{display:grid;grid-gap:16px;gap:16px;padding:0 18px 18px;border-top:1px solid rgba(255,255,255,.04)}.irrigation-expandable-clean .irrigation-expandable-body{padding-top:2px;border-top:none}.device-card-empty{min-height:152px;display:grid;place-items:center;text-align:center;color:rgba(217,228,229,.56);font-size:13px}.soft-state-badge{opacity:.72}.pump-stop-button{color:rgba(221,229,230,.82);border-color:rgba(255,255,255,.04)}.irrigation-toast-stack{pointer-events:none}.irrigation-toast{animation:irrigationToastFade 5s ease forwards}@keyframes irrigationToastFade{0%{opacity:0;transform:translateY(8px)}8%{opacity:1;transform:translateY(0)}82%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(8px)}}@keyframes reservoirWave{0%{transform:translateX(-8%) translateY(0)}25%{transform:translateX(-1%) translateY(-1px)}50%{transform:translateX(7%) translateY(0)}75%{transform:translateX(1%) translateY(1px)}to{transform:translateX(-8%) translateY(0)}}@keyframes outletPulse{0%,to{box-shadow:0 2px 8px rgba(0,0,0,.18);filter:brightness(1)}50%{box-shadow:0 0 0 4px rgba(98,178,166,.08),0 2px 10px rgba(0,0,0,.2);filter:brightness(1.08)}}@keyframes flowPulse{0%{left:-4%;opacity:0}12%,80%{opacity:1}to{left:100%;opacity:0}}@keyframes mainTubeFlow{0%{transform:translateX(-34%)}to{transform:translateX(236%)}}@keyframes feederTubeFlow{0%{transform:translate(0);opacity:0}12%{opacity:.8}55%{transform:translateY(28px);opacity:.74}to{transform:translate(16px,42px);opacity:0}}@keyframes dripFall{0%{opacity:0;transform:translate(-50%,-4px) scale(.7)}35%{opacity:1}to{opacity:0;transform:translate(-50%,10px) scale(1)}}@keyframes plantSway{0%,to{transform:rotate(calc(var(--site-tilt) - 1deg))}50%{transform:rotate(calc(var(--site-tilt) + 2deg))}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes metricPulse{0%{opacity:.68;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@keyframes tomatoPulse{0%,to{opacity:.24;transform:scale(.88);color:rgba(211,109,86,.3)}40%{opacity:1;transform:scale(1);color:rgba(227,128,95,.98)}}@keyframes pulseGlow{0%,to{box-shadow:0 0 0 0 rgba(120,203,153,.12)}50%{box-shadow:0 0 0 8px rgba(120,203,153,.02)}}@media (max-width:900px){.login-page,.page{padding:24px 16px 40px}.hero,.history-caption,.section-header,.section-heading{flex-direction:column;align-items:flex-start}.hero-actions{width:100%;justify-content:space-between}.nav-bar{width:100%}.nav-link{flex-grow:1;flex-shrink:1;flex-basis:calc(50% - 8px);justify-content:center}.tile-mainline{flex-direction:column}.system-banner,.system-diagram{flex-direction:column;align-items:flex-start}.system-banner-meta{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.alert-history-grid,.irrigation-analytics-compact-grid,.irrigation-quick-grid,.irrigation-quick-panel,.irrigation-reservoir-actions,.irrigation-schematic-grid,.irrigation-secondary-grid,.irrigation-summary-grid-simple,.schedule-fields-grid,.table-head,.table-row,.trend-summary-grid-three-up{grid-template-columns:1fr}.grow-sites-grid,.pots-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pump-pipe{width:100%;max-width:260px}.pump-pipe:before{left:0}.bench-manifold{left:18px;right:18px}.irrigation-chart-wide{grid-column:auto}.irrigation-schedule-summary{align-items:flex-start;flex-direction:column}.device-secondary,.inline-target{text-align:left}}