:root{--bg:#07131f;--sidebar:#0b1926;--panel:#0d1c2a;--panel2:#112334;--border:#203447;--text:#f5f8fb;--muted:#9caebe;--green:#5dcc52;--green-dark:#153d25;--blue:#4c9dff;--yellow:#ffce3a;--red:#ff5b58;--shadow:0 14px 35px rgba(0,0,0,.22)}
html[data-theme="light"]{--bg:#eef3f7;--sidebar:#ffffff;--panel:#ffffff;--panel2:#f7fafc;--border:#d9e2e9;--text:#132131;--muted:#637486;--green:#43a83d;--green-dark:#e9f6e8;--blue:#277fd7;--yellow:#d89d00;--red:#d94845;--shadow:0 12px 28px rgba(35,55,75,.10)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}body{font-size:14px}.app-shell{display:grid;grid-template-columns:242px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,var(--sidebar),color-mix(in srgb,var(--sidebar) 88%,#000));border-right:1px solid var(--border);padding:20px 12px;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;padding:0 6px 22px}.brand-mark{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#4caf50;font-size:25px}.brand strong{display:block;font-size:24px;line-height:22px}.brand span{display:block;font-size:13px}.brand small{display:block;color:var(--muted);font-size:9px;margin-top:3px}.nav-list{display:flex;flex-direction:column;gap:4px}.nav-list a{color:var(--text);text-decoration:none;padding:12px 13px;border-radius:7px;display:flex;gap:13px;align-items:center;font-size:14px}.nav-list a:hover,.nav-list a.active{background:linear-gradient(90deg,color-mix(in srgb,var(--green-dark) 90%,transparent),color-mix(in srgb,var(--green-dark) 55%,transparent));color:#fff}.sidebar-bottom{margin-top:auto;padding:8px}.label{color:var(--muted);font-size:11px;margin-bottom:8px}.segmented{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--border);border-radius:6px;overflow:hidden}.segmented button,.theme-toggle{border:0;background:transparent;color:var(--text);padding:10px;cursor:pointer}.segmented .selected{background:#205c2f}.theme-toggle{width:100%;margin-top:9px;border:1px solid var(--border);border-radius:6px}.main-content{padding:0 18px 24px;min-width:0}.topbar{height:70px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.title-wrap{display:flex;align-items:center;gap:14px}.title-wrap h1{font-size:23px;margin:0}.online-dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 12px var(--green)}.online-text{color:var(--green);font-size:12px}.top-meta{display:flex;align-items:center;gap:18px}.top-meta>span{display:flex;gap:7px;align-items:center}.clock{flex-direction:column!important;align-items:flex-start!important;line-height:15px;border-left:1px solid var(--border);border-right:1px solid var(--border);padding:0 18px}.clock small{color:var(--muted)}.avatar{width:36px;height:36px;border-radius:50%;background:var(--panel2);display:grid!important;place-items:center;border:1px solid var(--border)}.metrics-grid{display:grid;grid-template-columns:1.15fr 1.15fr 1.15fr 1.15fr .8fr .8fr;gap:8px;margin:16px 0 10px}.metric-card{background:linear-gradient(145deg,var(--panel2),var(--panel));border:1px solid var(--border);border-radius:8px;min-height:90px;padding:15px;display:flex;align-items:center;gap:13px;box-shadow:var(--shadow)}.metric-card i{font-style:normal;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#193045;font-size:20px}.metric-card i.green{background:#164627}.metric-card i.blue{background:#17375a}.metric-card i.yellow{background:#413a18}.metric-card small,.metric-card em{display:block;color:var(--muted);font-style:normal;font-size:11px}.metric-card strong{display:block;font-size:20px;margin:4px 0}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:10px}.left-column{min-width:0}.greenhouse-card,.panel{background:linear-gradient(145deg,var(--panel),color-mix(in srgb,var(--panel) 84%,#14283a));border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow)}.greenhouse-card{height:435px;position:relative;overflow:hidden}.greenhouse-card:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,transparent 30%,rgba(2,8,14,.5));pointer-events:none}.greenhouse-img{position:absolute;width:76%;left:12%;top:16%;filter:saturate(.85) contrast(1.04);border-radius:8px;mix-blend-mode:screen}.device-pill{position:absolute;z-index:2;background:color-mix(in srgb,var(--panel2) 92%,transparent);border:1px solid var(--border);border-radius:8px;padding:11px 14px;width:154px;box-shadow:var(--shadow)}.device-pill small,.device-pill span{display:block;color:var(--muted)}.device-pill b{font-size:21px;display:block;margin:5px 0}.p1{left:16px;top:16px}.p2{left:40%;top:16px}.p3{right:16px;top:16px}.p4{left:16px;top:178px}.p5{right:16px;top:178px}.p6{left:16px;bottom:20px}.p7{left:34%;bottom:14px}.p8{right:28%;bottom:14px}.p9{right:16px;bottom:20px}.danger b{color:#ff8a86}.panel{margin-top:10px;padding:10px}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.panel-head h2{font-size:14px;margin:0}.panel-head h2 span{color:var(--green);font-weight:400}.panel-head button,.ok-banner button{background:#235e2e;color:#fff;border:1px solid #347942;border-radius:5px;padding:7px 18px}.steps{display:flex;align-items:stretch;gap:7px}.step{flex:1;border:1px solid var(--border);background:var(--panel2);border-radius:7px;padding:12px;min-width:0}.step small,.step span{display:block;color:var(--muted);font-size:11px}.step h3{font-size:12px;margin:8px 0 16px;white-space:nowrap}.step b{display:block;color:var(--muted);font-weight:500;margin-bottom:6px}.step.active{border-color:#236b35;background:linear-gradient(145deg,#173525,var(--panel2))}.step.active b{color:var(--green)}.step.ready{border-color:#24586d}.step.ready b{color:var(--yellow)}.step.alarm{border-color:#5b2e31}.arrow{display:grid;place-items:center;font-size:21px;color:var(--muted)}.programs{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.programs article{border:1px solid #235b38;border-radius:7px;padding:11px;position:relative;background:linear-gradient(145deg,#143123,var(--panel2));min-width:0}.programs i{float:left;margin-right:8px;font-style:normal;font-size:22px}.programs small,.programs span{display:block;color:var(--muted);font-size:10px}.programs h3{font-size:13px;margin:4px 0 13px}.programs b{display:block;color:var(--green);font-weight:500;margin-bottom:5px}.programs b.muted{color:var(--muted)}.ok-banner{margin-top:10px;background:linear-gradient(90deg,#164a26,#15361f);border:1px solid #28683a;border-radius:7px;padding:10px 14px;display:flex;align-items:center;gap:12px}.ok-banner>span{width:30px;height:30px;border-radius:50%;background:#3da74b;display:grid;place-items:center;font-size:20px}.ok-banner div{flex:1}.ok-banner b,.ok-banner small{display:block}.ok-banner small{color:#c4d9c7;font-size:10px;margin-top:3px}.right-column .panel{margin-top:0;margin-bottom:10px}.equipment-panel ul{list-style:none;margin:0;padding:0}.equipment-panel li{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--border);padding:8px 6px;font-size:11px}.equipment-panel li span{color:#d6e5d8}.equipment-panel li b{font-weight:400;color:var(--muted)}.red{color:var(--red)!important}.yellow-text{color:var(--yellow)!important}.chart-panel canvas{width:100%;height:215px}.gauges{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;text-align:center;padding:12px 0}.gauge{width:65px;height:65px;margin:auto;border-radius:50%;display:grid;place-items:center;font-size:23px;border:7px solid var(--border);border-top-color:var(--green);border-right-color:var(--green)}.g2{border-top-color:var(--blue);border-right-color:var(--blue)}.g3{border-top-color:var(--red);border-right-color:var(--yellow)}.gauges b,.gauges span{display:block}.gauges b{font-size:16px;margin-top:8px}.gauges small,.gauges span{font-size:9px;color:var(--muted)}
@media(max-width:1200px){.app-shell{grid-template-columns:210px 1fr}.metrics-grid{grid-template-columns:repeat(3,1fr)}.dashboard-grid{grid-template-columns:1fr}.right-column{display:grid;grid-template-columns:1fr 1fr;gap:10px}.consumption-panel{grid-column:1/-1}.programs{grid-template-columns:repeat(3,1fr)}}
@media(max-width:820px){.app-shell{display:block}.sidebar{position:relative;height:auto}.nav-list{display:grid;grid-template-columns:repeat(2,1fr)}.sidebar-bottom{display:none}.topbar{height:auto;padding:14px 0;gap:12px;align-items:flex-start}.top-meta{display:none}.metrics-grid{grid-template-columns:repeat(2,1fr)}.greenhouse-card{height:520px}.greenhouse-img{width:100%;left:0;top:25%}.device-pill{width:135px}.steps{overflow-x:auto}.step{min-width:160px}.programs{grid-template-columns:1fr 1fr}.right-column{display:block}}


/* v0.2 additions */
.version{display:block;text-align:center;color:var(--muted);margin-top:10px;font-size:10px}
.nav-icon{width:18px;text-align:center}
.button-link,.primary-button,.ghost-button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border-radius:6px;padding:8px 14px;font:inherit;cursor:pointer}
.button-link,.primary-button{background:#235e2e;color:#fff;border:1px solid #347942}
.ghost-button{background:var(--panel2);color:var(--text);border:1px solid var(--border)}
.page-header{display:flex;align-items:end;justify-content:space-between;padding:20px 0 10px}
.page-header h2{font-size:24px;margin:4px 0}
.page-header p{color:var(--muted);margin:0}
.eyebrow{color:var(--green);font-size:10px;letter-spacing:.14em}
.strategy-workspace{display:grid;grid-template-columns:220px minmax(0,1fr) 280px;gap:10px}
.strategy-workspace>.panel{margin-top:0;min-height:740px}
.action-library{display:grid;gap:8px}
.action-library button{background:var(--panel2);border:1px solid var(--border);color:var(--text);border-radius:7px;padding:11px;text-align:left;cursor:pointer}
.action-library button:hover{border-color:var(--green)}
.editor-actions{display:flex;gap:8px}
.flow-editor{padding:12px 20px 25px}
.flow-node{display:grid;grid-template-columns:34px 42px minmax(0,1fr) 260px 28px;gap:12px;align-items:center;background:var(--panel2);border:1px solid var(--border);border-radius:9px;padding:13px}
.flow-node.active{border-color:#286b39;background:linear-gradient(145deg,#153524,var(--panel2))}
.flow-node.ready{border-color:#275c70}
.flow-node.alarm{border-color:#633237}
.node-index{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#193548;color:var(--text)}
.node-icon{font-size:24px}
.node-body small{color:var(--muted);font-size:9px}
.node-body h3{margin:3px 0 4px;font-size:14px}
.node-body p{margin:0;color:var(--muted);font-size:11px}
.node-config{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.node-config label,.form-stack label{font-size:10px;color:var(--muted)}
.node-config input,.node-config select,.form-stack input,.form-stack select{width:100%;margin-top:4px;background:var(--panel);border:1px solid var(--border);color:var(--text);border-radius:5px;padding:8px}
.node-menu{background:transparent;border:0;color:var(--muted);font-size:17px}
.flow-connector{text-align:center;color:var(--green);font-size:22px;line-height:28px}
.add-step{width:100%;margin-top:10px;background:transparent;border:1px dashed var(--border);color:var(--muted);border-radius:7px;padding:13px}
.form-stack{display:grid;gap:12px}
.toggle-row{display:flex!important;align-items:center;justify-content:space-between}
.toggle-row input{width:auto!important}
.explain-box{margin-top:18px;border:1px solid #285c3c;background:linear-gradient(145deg,#153525,var(--panel2));border-radius:7px;padding:12px}
.explain-box p{color:var(--muted);font-size:11px;line-height:1.5;margin-bottom:0}
@media(max-width:1300px){.strategy-workspace{grid-template-columns:190px 1fr}.strategy-inspector{grid-column:1/-1;min-height:auto!important}.flow-node{grid-template-columns:34px 42px minmax(0,1fr)}.node-config{grid-column:2/-1}.node-menu{position:absolute;right:28px}}
@media(max-width:820px){.strategy-workspace{display:block}.strategy-workspace>.panel{min-height:auto;margin-bottom:10px}.flow-editor{padding:8px}.flow-node{grid-template-columns:32px 36px 1fr}.node-config{grid-column:1/-1}.page-header{align-items:flex-start;gap:12px}}


/* v0.3 operator-first strategy screen */
.strategy-hero{display:flex;align-items:end;justify-content:space-between;padding:20px 0 10px}
.strategy-hero h2{font-size:25px;margin:4px 0}
.strategy-hero p{color:var(--muted);margin:0}
.strategy-actions{display:flex;gap:8px}

.strategy-summary{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr)) auto;gap:1px;padding:0;overflow:hidden}
.summary-item{padding:17px 18px;background:var(--panel2);border-right:1px solid var(--border)}
.summary-item small{display:block;color:var(--muted);font-size:9px;letter-spacing:.08em;margin-bottom:5px}
.summary-item strong{font-size:18px}
.status-online{color:var(--green)}
.summary-controls{display:flex;gap:7px;align-items:center;padding:12px;background:var(--panel2)}
.control-button{border-radius:6px;padding:9px 13px;color:#fff;border:1px solid var(--border);cursor:pointer;font-weight:700}
.control-button.pause{background:#715c17}
.control-button.stop{background:#682d33}

.operator-strategy-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:10px;margin-top:10px}
.program-flow,.current-state{margin-top:0}
.simple-badge{background:#173a26;border:1px solid #2b6840;color:#75dc8b;border-radius:20px;padding:5px 10px;font-size:10px}
.process-timeline{padding:8px 14px 18px}

.process-step{display:grid;grid-template-columns:42px minmax(280px,1.2fr) minmax(160px,.65fr) minmax(220px,.9fr) 74px;gap:14px;align-items:center;min-height:98px}
.step-rail{align-self:stretch;display:flex;flex-direction:column;align-items:center}
.step-number{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#203346;border:1px solid var(--border);font-weight:800;z-index:1}
.step-line{width:2px;flex:1;background:var(--border);margin-top:4px}
.process-step.done .step-number{background:#205c33;border-color:#3c9655}
.process-step.active .step-number{background:#31794a;border-color:#63c47c;box-shadow:0 0 0 5px rgba(67,170,91,.12)}
.process-step.active{background:linear-gradient(90deg,rgba(29,78,48,.22),transparent);border-radius:10px}
.step-main{display:flex;align-items:center;gap:13px}
.step-icon{width:44px;height:44px;border-radius:10px;display:grid;place-items:center;background:var(--panel2);border:1px solid var(--border);font-size:22px}
.step-copy h3{margin:2px 0 3px;font-size:15px}
.step-copy p{margin:0;color:var(--muted);font-size:11px}
.step-status{font-size:9px;text-transform:uppercase;color:var(--muted);letter-spacing:.08em}
.process-step.done .step-status{color:#69d783}
.process-step.active .step-status{color:#8ee7a3}
.step-result{background:var(--panel2);border:1px solid var(--border);border-radius:7px;padding:10px 12px}
.step-result small{display:block;color:var(--muted);font-size:8px;letter-spacing:.08em;margin-bottom:5px}
.step-result strong{font-size:11px;line-height:1.35}
.step-details{background:transparent;border:1px solid var(--border);color:var(--text);border-radius:6px;padding:8px;cursor:pointer}
.step-details:hover{border-color:var(--green)}

.current-step-card{background:linear-gradient(145deg,#173926,var(--panel2));border:1px solid #2e6d41;border-radius:8px;padding:15px}
.current-step-card small,.reason-card small,.next-card small{font-size:9px;letter-spacing:.08em;color:var(--green)}
.current-step-card h3{margin:5px 0 7px;font-size:17px}
.current-step-card p,.reason-card p{margin:0;color:var(--muted);font-size:11px;line-height:1.5}
.live-state-list{margin-top:12px;border:1px solid var(--border);border-radius:8px;overflow:hidden}
.live-state-list div{display:flex;justify-content:space-between;padding:11px 12px;background:var(--panel2);border-bottom:1px solid var(--border);font-size:11px}
.live-state-list div:last-child{border-bottom:0}
.reason-card,.next-card{margin-top:12px;border-radius:8px;padding:13px;border:1px solid var(--border);background:var(--panel2)}
.next-card strong,.next-card span{display:block}
.next-card strong{margin:6px 0 4px}
.next-card span{font-size:10px;color:var(--muted)}

.program-list{margin-top:10px}
.program-selector-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
.program-select-card{background:var(--panel2);border:1px solid var(--border);border-radius:8px;padding:14px;cursor:pointer}
.program-select-card.active{border-color:#3c8e51;background:linear-gradient(145deg,#173824,var(--panel2))}
.program-select-card h3{margin:9px 0 5px;font-size:13px}
.program-select-card p{margin:0;color:var(--muted);font-size:10px}
.program-state{font-size:8px;color:#7de392;letter-spacing:.1em}
.program-state.idle{color:var(--muted)}

@media(max-width:1300px){
  .strategy-summary{grid-template-columns:repeat(3,1fr)}
  .summary-controls{grid-column:span 1}
  .operator-strategy-layout{grid-template-columns:1fr}
  .current-state{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .current-state>.panel-head{grid-column:1/-1}
  .live-state-list,.reason-card,.next-card{margin-top:0}
  .process-step{grid-template-columns:42px minmax(240px,1fr) 160px 220px 70px}
}
@media(max-width:900px){
  .strategy-hero{align-items:flex-start;gap:12px}
  .strategy-summary{grid-template-columns:repeat(2,1fr)}
  .summary-controls{grid-column:1/-1}
  .process-step{grid-template-columns:38px 1fr;gap:9px;padding:10px 0}
  .step-result,.step-details{grid-column:2}
  .current-state{display:block}
  .live-state-list,.reason-card,.next-card{margin-top:10px}
  .program-selector-grid{grid-template-columns:1fr 1fr}
}


/* v0.4 climate module */
.climate-hero{display:flex;align-items:end;justify-content:space-between;padding:20px 0 10px}
.climate-hero h2{font-size:25px;margin:4px 0}
.climate-hero p{margin:0;color:var(--muted)}
.climate-mode{display:flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--border);padding:9px 11px;border-radius:8px}
.climate-mode span{font-size:10px;color:var(--muted)}
.climate-mode strong{font-size:11px}

.climate-overview-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
.climate-focus-card{display:grid;grid-template-columns:48px 1fr auto;gap:12px;align-items:center;background:var(--panel);border:1px solid var(--border);border-radius:9px;padding:15px}
.focus-icon{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--panel2);font-size:18px}
.climate-focus-card small{display:block;color:var(--muted);font-size:9px;letter-spacing:.06em}
.climate-focus-card strong{font-size:21px}
.climate-focus-card p{margin:3px 0 0;color:var(--muted);font-size:10px}
.focus-status{font-size:9px;border-radius:20px;padding:5px 8px;border:1px solid var(--border)}
.focus-status.ok{color:#76dc8d;border-color:#2e6a41;background:#173624}
.focus-status.active{color:#86c6ff;border-color:#285675;background:#142d40}

.climate-main-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:10px;margin-top:10px}
.climate-main-grid>.panel{margin-top:0}
.climate-process{display:grid;grid-template-columns:repeat(7,auto);align-items:stretch;gap:8px}
.climate-action{min-width:0;background:var(--panel2);border:1px solid var(--border);border-radius:9px;padding:13px;display:grid;grid-template-columns:42px 1fr;gap:10px;position:relative}
.climate-action.active{border-color:#2e7945;background:linear-gradient(145deg,#163a25,var(--panel2))}
.climate-action.ready{border-color:#2e6477}
.action-icon{width:40px;height:40px;border-radius:9px;display:grid;place-items:center;background:rgba(255,255,255,.04);font-size:20px}
.action-body small{font-size:8px;color:var(--muted);letter-spacing:.08em}
.action-body h3{font-size:13px;margin:4px 0}
.action-body p{font-size:10px;line-height:1.4;color:var(--muted);margin:0}
.action-state{position:absolute;right:10px;top:8px;font-size:8px;color:var(--green)}
.climate-action.idle .action-state{color:var(--muted)}
.process-arrow{display:grid;place-items:center;color:var(--green);font-size:20px}
.climate-explanation{display:flex;gap:11px;align-items:flex-start;margin-top:12px;border:1px solid #2d6540;background:linear-gradient(145deg,#153524,var(--panel2));border-radius:8px;padding:12px}
.explain-icon{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#2a7543;font-weight:800}
.climate-explanation small{font-size:9px;color:var(--green);letter-spacing:.08em}
.climate-explanation p{font-size:11px;line-height:1.5;color:var(--muted);margin:4px 0 0}

.climate-device-list{border:1px solid var(--border);border-radius:8px;overflow:hidden}
.climate-device-list div{display:flex;justify-content:space-between;gap:8px;padding:11px 12px;background:var(--panel2);border-bottom:1px solid var(--border);font-size:11px}
.climate-device-list div:last-child{border-bottom:0}
.green-text{color:var(--green)}

.climate-bottom-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:10px}
.climate-bottom-grid>.panel{margin-top:10px}
.chart-legend{display:flex;gap:12px;font-size:9px;color:var(--muted)}
.chart-legend i{display:inline-block;width:14px;height:2px;margin-right:4px;vertical-align:middle}
.legend-temp{background:#69d66f}
.legend-hum{background:#4c9dff}
.legend-target{background:#b7bdc8}
.threshold-list{display:grid;gap:8px}
.threshold-list div{display:grid;grid-template-columns:1fr auto;gap:4px;background:var(--panel2);border:1px solid var(--border);border-radius:7px;padding:10px}
.threshold-list span{font-size:10px;color:var(--muted)}
.threshold-list strong{font-size:12px}
.threshold-list em{grid-column:1/-1;font-style:normal;font-size:9px;color:#e4b95e}
.full-width-button{width:100%;margin-top:10px;background:transparent;border:1px solid var(--border);color:var(--text);border-radius:6px;padding:9px;cursor:pointer}

.climate-programs{margin-top:10px}
.climate-mode-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
.mode-card{background:var(--panel2);border:1px solid var(--border);border-radius:8px;padding:14px}
.mode-card.active{border-color:#397c4b;background:linear-gradient(145deg,#173824,var(--panel2))}
.mode-card span{font-size:8px;color:var(--muted);letter-spacing:.08em}
.mode-card.active span{color:#7bdd90}
.mode-card h3{font-size:13px;margin:7px 0 5px}
.mode-card p{font-size:10px;color:var(--muted);margin:0;line-height:1.4}

@media(max-width:1350px){
  .climate-overview-grid{grid-template-columns:repeat(2,1fr)}
  .climate-process{grid-template-columns:1fr}
  .process-arrow{transform:rotate(90deg);height:18px}
}
@media(max-width:950px){
  .climate-main-grid,.climate-bottom-grid{grid-template-columns:1fr}
  .climate-mode-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:700px){
  .climate-hero{align-items:flex-start;gap:12px}
  .climate-mode{flex-wrap:wrap}
  .climate-overview-grid{grid-template-columns:1fr}
  .climate-focus-card{grid-template-columns:44px 1fr}
  .focus-status{grid-column:2}
  .climate-mode-grid{grid-template-columns:1fr}
}


/* =========================================================
   CSA GreenControl v0.5 — Climate UI refinement only
   Dashboard and other modules remain unchanged.
   ========================================================= */

.climate-v05-header{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:20px;
    padding:20px 0 12px;
}
.climate-v05-header h2{
    margin:4px 0;
    font-size:26px;
    letter-spacing:-.02em;
}
.climate-v05-header p{
    margin:0;
    color:var(--muted);
    font-size:12px;
}
.climate-v05-mode{
    display:flex;
    align-items:center;
    gap:10px;
    padding:9px 11px;
    border:1px solid var(--border);
    border-radius:10px;
    background:var(--panel);
}
.climate-v05-mode span{font-size:10px;color:var(--muted)}
.climate-v05-mode strong{font-size:12px}

.climate-v05-hero{
    display:grid;
    grid-template-columns:minmax(0,1.6fr) minmax(220px,.65fr) minmax(190px,.5fr);
    gap:0;
    padding:0;
    overflow:hidden;
}
.hero-status-copy,
.hero-temperature,
.hero-estimate{
    min-height:210px;
    padding:28px;
}
.hero-status-copy{
    display:flex;
    flex-direction:column;
    justify-content:center;
}
.hero-kicker,
.section-kicker{
    display:block;
    margin-bottom:8px;
    color:var(--muted);
    font-size:9px;
    font-weight:700;
    letter-spacing:.13em;
}
.hero-status-copy h1{
    margin:0 0 12px;
    max-width:660px;
    font-size:32px;
    line-height:1.14;
    letter-spacing:-.035em;
}
.hero-status-copy>p{
    max-width:650px;
    margin:0;
    color:var(--muted);
    font-size:13px;
    line-height:1.6;
}
.hero-status-row{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:22px;
}
.status-pill{
    padding:6px 10px;
    border:1px solid var(--border);
    border-radius:999px;
    font-size:9px;
    font-weight:700;
}
.status-pill.success{
    color:#7edb91;
    border-color:#2d6c40;
    background:#173422;
}
.status-pill.neutral{
    color:var(--muted);
    background:var(--panel2);
}

.hero-temperature,
.hero-estimate{
    display:flex;
    flex-direction:column;
    justify-content:center;
    border-left:1px solid var(--border);
    background:var(--panel2);
}
.hero-temperature>span,
.hero-estimate>span{
    color:var(--muted);
    font-size:10px;
}
.hero-temperature>strong{
    margin:7px 0 2px;
    font-size:48px;
    line-height:1;
    letter-spacing:-.04em;
}
.hero-temperature>strong small,
.metric-item strong small{
    margin-left:4px;
    color:var(--muted);
    font-size:.38em;
    font-weight:600;
}
.hero-temperature>p,
.hero-estimate>p{
    margin:5px 0 0;
    color:var(--muted);
    font-size:10px;
    line-height:1.4;
}
.temperature-delta{
    margin-top:16px;
    color:#d6b45c;
    font-size:10px;
}
.hero-estimate>strong{
    margin:10px 0 2px;
    font-size:29px;
    letter-spacing:-.025em;
}

.climate-v05-metrics{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    padding:0;
    overflow:hidden;
}
.metric-item{
    padding:18px 20px;
    border-right:1px solid var(--border);
    background:var(--panel2);
}
.metric-item:last-child{border-right:0}
.metric-item>span{
    display:block;
    color:var(--muted);
    font-size:9px;
    font-weight:700;
    letter-spacing:.07em;
}
.metric-item strong{
    display:block;
    margin-top:5px;
    font-size:22px;
}
.metric-item p{
    margin:4px 0 0;
    color:var(--muted);
    font-size:9px;
    line-height:1.45;
}

.climate-v05-main{
    display:grid;
    grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);
    gap:10px;
    margin-top:10px;
}
.climate-v05-main>.panel,
.climate-v05-side>.panel{margin-top:0}
.climate-v05-side{
    display:grid;
    grid-template-rows:1fr 1fr;
    gap:10px;
}
.climate-v05-now .panel-head{padding-bottom:8px}
.climate-v05-now .panel-head h2,
.climate-v05-why h2,
.climate-v05-next h2,
.climate-v05-equipment h2,
.climate-v05-history h2{
    margin:0;
    font-size:18px;
    letter-spacing:-.015em;
}

.now-story{
    display:grid;
    grid-template-columns:44px 1fr;
    gap:14px;
    align-items:start;
    padding:16px;
    border:1px solid #2e6b40;
    border-radius:10px;
    background:linear-gradient(145deg,#163622,var(--panel2));
}
.now-story-icon{
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#285f39;
    color:#93e3a2;
    font-size:22px;
}
.now-story h3{
    margin:1px 0 6px;
    font-size:17px;
}
.now-story p{
    margin:0;
    max-width:780px;
    color:var(--muted);
    font-size:11px;
    line-height:1.55;
}

.now-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin-top:10px;
}
.now-action{
    display:grid;
    grid-template-columns:18px 1fr;
    gap:8px;
    min-height:86px;
    padding:13px;
    border:1px solid var(--border);
    border-radius:9px;
    background:var(--panel2);
}
.now-action .action-dot{
    margin-top:1px;
    color:var(--muted);
}
.now-action.active .action-dot{color:var(--green)}
.now-action.waiting .action-dot{color:#7eb5d8}
.now-action strong{
    display:block;
    font-size:11px;
}
.now-action p{
    margin:5px 0 0;
    color:var(--muted);
    font-size:10px;
    line-height:1.45;
}

.climate-v05-why,
.climate-v05-next{
    padding:20px;
}
.climate-v05-why p{
    margin:12px 0 0;
    color:var(--muted);
    font-size:11px;
    line-height:1.62;
}
.climate-v05-next>p{
    margin:14px 0 4px;
    color:var(--muted);
    font-size:10px;
}
.climate-v05-next>strong{
    display:block;
    font-size:31px;
    letter-spacing:-.035em;
}
.next-arrow{
    margin:7px 0;
    color:var(--green);
    font-size:22px;
}
.climate-v05-next h3{
    margin:0 0 5px;
    font-size:14px;
}
.next-note{
    color:var(--muted);
    font-size:9px;
}

.climate-v05-equipment{margin-top:10px}
.equipment-groups{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:9px;
}
.equipment-group{
    padding:14px;
    border:1px solid var(--border);
    border-radius:10px;
    background:var(--panel2);
}
.equipment-group-title{
    display:flex;
    align-items:center;
    gap:10px;
    margin-bottom:13px;
}
.equipment-icon{
    width:36px;
    height:36px;
    display:grid;
    place-items:center;
    border:1px solid var(--border);
    border-radius:9px;
    background:rgba(255,255,255,.025);
    font-size:17px;
}
.equipment-group-title div span{
    display:block;
    color:var(--muted);
    font-size:8px;
    font-weight:700;
    letter-spacing:.1em;
}
.equipment-group-title div strong{
    display:block;
    margin-top:3px;
    font-size:11px;
}
.equipment-row{
    padding:10px 0;
    border-top:1px solid var(--border);
}
.equipment-row>div:first-child,
.equipment-row.compact{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:10px;
}
.equipment-row span{font-size:10px;color:var(--muted)}
.equipment-row strong{font-size:10px}
.equipment-bar{
    height:5px;
    margin-top:8px;
    overflow:hidden;
    border-radius:999px;
    background:#202933;
}
.equipment-bar i{
    display:block;
    height:100%;
    border-radius:999px;
    background:var(--green);
}

.climate-v05-history{margin-top:10px}

@media(max-width:1300px){
    .climate-v05-hero{
        grid-template-columns:1fr 250px;
    }
    .hero-estimate{
        grid-column:1/-1;
        min-height:auto;
        border-left:0;
        border-top:1px solid var(--border);
        padding:18px 28px;
    }
    .climate-v05-main{grid-template-columns:1fr}
    .climate-v05-side{grid-template-columns:1fr 1fr;grid-template-rows:auto}
    .equipment-groups{grid-template-columns:1fr 1fr}
}
@media(max-width:850px){
    .climate-v05-header{align-items:flex-start}
    .climate-v05-hero{grid-template-columns:1fr}
    .hero-status-copy,
    .hero-temperature,
    .hero-estimate{
        min-height:auto;
        padding:22px;
    }
    .hero-temperature,
    .hero-estimate{
        border-left:0;
        border-top:1px solid var(--border);
    }
    .climate-v05-metrics{grid-template-columns:1fr 1fr}
    .metric-item:nth-child(2){border-right:0}
    .metric-item:nth-child(-n+2){border-bottom:1px solid var(--border)}
    .now-actions{grid-template-columns:1fr}
}
@media(max-width:620px){
    .climate-v05-header{display:block}
    .climate-v05-mode{margin-top:12px;flex-wrap:wrap}
    .hero-status-copy h1{font-size:27px}
    .hero-temperature>strong{font-size:42px}
    .climate-v05-metrics{grid-template-columns:1fr}
    .metric-item{
        border-right:0;
        border-bottom:1px solid var(--border);
    }
    .metric-item:last-child{border-bottom:0}
    .climate-v05-side{grid-template-columns:1fr}
    .equipment-groups{grid-template-columns:1fr}
}


/* =========================================================
   CSA GreenControl v0.6 — Irrigation & Fertigation module
   ========================================================= */

.irrigation-v06-header{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:20px;
    padding:20px 0 12px;
}
.irrigation-v06-header h2{margin:4px 0;font-size:26px;letter-spacing:-.02em}
.irrigation-v06-header p{margin:0;color:var(--muted);font-size:12px}
.irrigation-v06-mode{
    display:flex;align-items:center;gap:10px;
    padding:9px 11px;border:1px solid var(--border);
    border-radius:10px;background:var(--panel)
}
.irrigation-v06-mode span{font-size:10px;color:var(--muted)}
.irrigation-v06-mode strong{font-size:12px}

.irrigation-v06-hero{
    display:grid;
    grid-template-columns:minmax(0,1.6fr) minmax(220px,.65fr) minmax(190px,.5fr);
    padding:0;overflow:hidden
}
.irrigation-hero-copy,.irrigation-main-value,.irrigation-next-run{
    min-height:210px;padding:28px
}
.irrigation-hero-copy{display:flex;flex-direction:column;justify-content:center}
.irrigation-hero-copy h1{margin:0 0 12px;font-size:32px;line-height:1.14;letter-spacing:-.035em}
.irrigation-hero-copy>p{margin:0;max-width:650px;color:var(--muted);font-size:13px;line-height:1.6}
.irrigation-main-value,.irrigation-next-run{
    display:flex;flex-direction:column;justify-content:center;
    border-left:1px solid var(--border);background:var(--panel2)
}
.irrigation-main-value>span,.irrigation-next-run>span{color:var(--muted);font-size:10px}
.irrigation-main-value>strong{margin:7px 0 2px;font-size:42px;line-height:1;letter-spacing:-.04em}
.irrigation-main-value>strong small,.irrigation-metric strong small{
    margin-left:4px;color:var(--muted);font-size:.38em;font-weight:600
}
.irrigation-main-value>p,.irrigation-next-run>p{margin:5px 0 0;color:var(--muted);font-size:10px}
.irrigation-substatus{margin-top:16px;color:#78d98e;font-size:10px}
.irrigation-next-run>strong{margin:10px 0 2px;font-size:29px;letter-spacing:-.025em}

.irrigation-v06-metrics{
    display:grid;grid-template-columns:repeat(4,1fr);padding:0;overflow:hidden
}
.irrigation-metric{padding:18px 20px;border-right:1px solid var(--border);background:var(--panel2)}
.irrigation-metric:last-child{border-right:0}
.irrigation-metric>span{display:block;color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.07em}
.irrigation-metric strong{display:block;margin-top:5px;font-size:22px}
.irrigation-metric p{margin:4px 0 0;color:var(--muted);font-size:9px}

.irrigation-v06-main{
    display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);
    gap:10px;margin-top:10px
}
.irrigation-v06-main>.panel,.irrigation-v06-side>.panel{margin-top:0}
.irrigation-v06-side{display:grid;grid-template-rows:1fr 1fr;gap:10px}
.irrigation-story{
    display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:start;
    padding:16px;border:1px solid #315f6f;border-radius:10px;
    background:linear-gradient(145deg,#15313d,var(--panel2))
}
.irrigation-story-icon{
    width:42px;height:42px;display:grid;place-items:center;
    border-radius:50%;background:#27556a;color:#9ed7ef;font-size:22px
}
.irrigation-story h3{margin:1px 0 6px;font-size:17px}
.irrigation-story p{margin:0;color:var(--muted);font-size:11px;line-height:1.55}
.irrigation-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.irrigation-action{
    display:grid;grid-template-columns:18px 1fr;gap:8px;min-height:86px;
    padding:13px;border:1px solid var(--border);border-radius:9px;background:var(--panel2)
}
.irrigation-action>span{color:var(--muted)}
.irrigation-action.active>span{color:var(--green)}
.irrigation-action.waiting>span{color:#7eb5d8}
.irrigation-action strong{display:block;font-size:11px}
.irrigation-action p{margin:5px 0 0;color:var(--muted);font-size:10px;line-height:1.45}
.irrigation-why,.irrigation-next{padding:20px}
.irrigation-why h2,.irrigation-next h2,.irrigation-zones h2,.irrigation-equipment h2,.irrigation-history h2{
    margin:0;font-size:18px
}
.irrigation-why p{margin:12px 0 0;color:var(--muted);font-size:11px;line-height:1.62}
.irrigation-next>p{margin:14px 0 4px;color:var(--muted);font-size:10px}
.irrigation-next>strong{display:block;font-size:29px;letter-spacing:-.035em}
.irrigation-next h3{margin:0 0 5px;font-size:14px}

.irrigation-zones{margin-top:10px}
.irrigation-zone-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.irrigation-zone-card{padding:15px;border:1px solid var(--border);border-radius:10px;background:var(--panel2)}
.irrigation-zone-card.active{border-color:#2d6d40;background:linear-gradient(145deg,#163622,var(--panel2))}
.zone-card-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.zone-card-top>div>span{font-size:8px;color:var(--muted);letter-spacing:.1em}
.zone-card-top h3{margin:4px 0 0;font-size:14px}
.zone-status{font-size:8px;color:#7bdc8f;border:1px solid #2e6d40;border-radius:999px;padding:5px 8px}
.zone-status.idle{color:var(--muted);border-color:var(--border)}
.zone-data{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:15px}
.zone-data div{padding-top:10px;border-top:1px solid var(--border)}
.zone-data span{display:block;color:var(--muted);font-size:8px}
.zone-data strong{display:block;margin-top:4px;font-size:10px}

.irrigation-equipment{margin-top:10px}
.irrigation-equipment-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
.irrigation-equipment-grid article{
    display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;
    padding:14px;border:1px solid var(--border);border-radius:10px;background:var(--panel2)
}
.irrigation-equipment-grid article div span{display:block;color:var(--muted);font-size:8px;letter-spacing:.08em}
.irrigation-equipment-grid article div strong{display:block;margin-top:3px;font-size:11px}
.irrigation-equipment-grid em{font-style:normal;font-size:8px}
.irrigation-equipment-grid em.ok{color:#7bdc8f}
.irrigation-equipment-grid em.info{color:#85c7e5}

.irrigation-history{margin-top:10px}
.irrigation-chart-placeholder{
    min-height:250px;display:flex;flex-direction:column;justify-content:flex-end;
    padding:10px 6px 0;border-top:1px solid var(--border)
}
.bar-group{height:190px;display:flex;align-items:flex-end;justify-content:space-around;gap:14px;padding:0 20px}
.bar-group i{
    width:7%;min-width:24px;border-radius:6px 6px 0 0;
    background:linear-gradient(180deg,#63a9c7,#2e5f74)
}
.chart-axis{display:flex;justify-content:space-between;padding:10px 20px 0;color:var(--muted);font-size:9px}

@media(max-width:1300px){
    .irrigation-v06-hero{grid-template-columns:1fr 250px}
    .irrigation-next-run{
        grid-column:1/-1;min-height:auto;border-left:0;border-top:1px solid var(--border);padding:18px 28px
    }
    .irrigation-v06-main{grid-template-columns:1fr}
    .irrigation-v06-side{grid-template-columns:1fr 1fr;grid-template-rows:auto}
    .irrigation-equipment-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:850px){
    .irrigation-v06-header{align-items:flex-start}
    .irrigation-v06-hero{grid-template-columns:1fr}
    .irrigation-hero-copy,.irrigation-main-value,.irrigation-next-run{min-height:auto;padding:22px}
    .irrigation-main-value,.irrigation-next-run{border-left:0;border-top:1px solid var(--border)}
    .irrigation-v06-metrics{grid-template-columns:1fr 1fr}
    .irrigation-metric:nth-child(2){border-right:0}
    .irrigation-metric:nth-child(-n+2){border-bottom:1px solid var(--border)}
    .irrigation-actions{grid-template-columns:1fr}
    .irrigation-zone-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
    .irrigation-v06-header{display:block}
    .irrigation-v06-mode{margin-top:12px;flex-wrap:wrap}
    .irrigation-hero-copy h1{font-size:27px}
    .irrigation-v06-metrics{grid-template-columns:1fr}
    .irrigation-metric{border-right:0;border-bottom:1px solid var(--border)}
    .irrigation-v06-side{grid-template-columns:1fr}
    .irrigation-equipment-grid{grid-template-columns:1fr}
    .zone-data{grid-template-columns:1fr}
}


/* =========================================================
   CSA GreenControl v0.7 — Lighting LED module
   ========================================================= */

.lighting-v07-header{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;padding:20px 0 12px}
.lighting-v07-header h2{margin:4px 0;font-size:26px;letter-spacing:-.02em}
.lighting-v07-header p{margin:0;color:var(--muted);font-size:12px}
.lighting-v07-mode{display:flex;align-items:center;gap:10px;padding:9px 11px;border:1px solid var(--border);border-radius:10px;background:var(--panel)}
.lighting-v07-mode span{font-size:10px;color:var(--muted)}
.lighting-v07-mode strong{font-size:12px}

.lighting-v07-hero{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(220px,.65fr) minmax(190px,.5fr);padding:0;overflow:hidden}
.lighting-hero-copy,.lighting-main-value,.lighting-target{min-height:210px;padding:28px}
.lighting-hero-copy{display:flex;flex-direction:column;justify-content:center}
.lighting-hero-copy h1{margin:0 0 12px;font-size:32px;line-height:1.14;letter-spacing:-.035em}
.lighting-hero-copy>p{margin:0;max-width:650px;color:var(--muted);font-size:13px;line-height:1.6}
.lighting-main-value,.lighting-target{display:flex;flex-direction:column;justify-content:center;border-left:1px solid var(--border);background:var(--panel2)}
.lighting-main-value>span,.lighting-target>span{color:var(--muted);font-size:10px}
.lighting-main-value>strong{margin:7px 0 2px;font-size:48px;line-height:1;letter-spacing:-.04em}
.lighting-main-value>strong small,.lighting-target>strong small,.lighting-metric strong small{margin-left:4px;color:var(--muted);font-size:.38em;font-weight:600}
.lighting-main-value>p,.lighting-target>p{margin:5px 0 0;color:var(--muted);font-size:10px}
.lighting-substatus{margin-top:16px;color:#d6b45c;font-size:10px}
.lighting-target>strong{margin:10px 0 2px;font-size:29px;letter-spacing:-.025em}

.lighting-v07-metrics{display:grid;grid-template-columns:repeat(4,1fr);padding:0;overflow:hidden}
.lighting-metric{padding:18px 20px;border-right:1px solid var(--border);background:var(--panel2)}
.lighting-metric:last-child{border-right:0}
.lighting-metric>span{display:block;color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.07em}
.lighting-metric strong{display:block;margin-top:5px;font-size:22px}
.lighting-metric p{margin:4px 0 0;color:var(--muted);font-size:9px}

.lighting-v07-main{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:10px;margin-top:10px}
.lighting-v07-main>.panel,.lighting-v07-side>.panel{margin-top:0}
.lighting-v07-side{display:grid;grid-template-rows:1fr 1fr;gap:10px}
.lighting-story{display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:start;padding:16px;border:1px solid #6e6232;border-radius:10px;background:linear-gradient(145deg,#38331a,var(--panel2))}
.lighting-story-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:#655a28;color:#f0cf67;font-size:22px}
.lighting-story h3{margin:1px 0 6px;font-size:17px}
.lighting-story p{margin:0;color:var(--muted);font-size:11px;line-height:1.55}
.lighting-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.lighting-action{display:grid;grid-template-columns:18px 1fr;gap:8px;min-height:86px;padding:13px;border:1px solid var(--border);border-radius:9px;background:var(--panel2)}
.lighting-action>span{color:var(--muted)}
.lighting-action.active>span{color:var(--green)}
.lighting-action.waiting>span{color:#d6b45c}
.lighting-action strong{display:block;font-size:11px}
.lighting-action p{margin:5px 0 0;color:var(--muted);font-size:10px;line-height:1.45}
.lighting-why,.lighting-next{padding:20px}
.lighting-why h2,.lighting-next h2,.lighting-zones h2,.lighting-energy h2,.lighting-history h2{margin:0;font-size:18px}
.lighting-why p{margin:12px 0 0;color:var(--muted);font-size:11px;line-height:1.62}
.lighting-next>p{margin:14px 0 4px;color:var(--muted);font-size:10px}
.lighting-next>strong{display:block;font-size:29px;letter-spacing:-.035em}
.lighting-next h3{margin:0 0 5px;font-size:14px}

.lighting-zones{margin-top:10px}
.lighting-zone-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.lighting-zone-card{padding:15px;border:1px solid var(--border);border-radius:10px;background:var(--panel2)}
.lighting-zone-card.active{border-color:#6e6232;background:linear-gradient(145deg,#38331a,var(--panel2))}
.lighting-output{height:7px;margin:16px 0 4px;overflow:hidden;border-radius:999px;background:#242a31}
.lighting-output i{display:block;height:100%;border-radius:999px;background:#d6b45c}

.lighting-energy{margin-top:10px}
.lighting-energy-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
.lighting-energy-grid article{padding:15px;border:1px solid var(--border);border-radius:10px;background:var(--panel2)}
.lighting-energy-grid span{display:block;color:var(--muted);font-size:8px;letter-spacing:.08em}
.lighting-energy-grid strong{display:block;margin-top:6px;font-size:18px}
.lighting-energy-grid p{margin:5px 0 0;color:var(--muted);font-size:9px;line-height:1.4}

.lighting-history{margin-top:10px}
.lighting-chart-placeholder{position:relative;min-height:250px;overflow:hidden;border-top:1px solid var(--border);background:linear-gradient(to bottom,transparent 24%,rgba(255,255,255,.035) 25%,transparent 26%,transparent 49%,rgba(255,255,255,.035) 50%,transparent 51%,transparent 74%,rgba(255,255,255,.035) 75%,transparent 76%)}
.lighting-line{position:absolute;left:4%;right:4%;height:3px;border-radius:999px;transform-origin:left center}
.light-one{top:42%;background:#d6b45c;transform:rotate(-2deg)}
.light-two{top:61%;background:#6aa8c7;transform:rotate(1.5deg)}
.lighting-chart-placeholder .chart-axis{position:absolute;left:0;right:0;bottom:0}

@media(max-width:1300px){
    .lighting-v07-hero{grid-template-columns:1fr 250px}
    .lighting-target{grid-column:1/-1;min-height:auto;border-left:0;border-top:1px solid var(--border);padding:18px 28px}
    .lighting-v07-main{grid-template-columns:1fr}
    .lighting-v07-side{grid-template-columns:1fr 1fr;grid-template-rows:auto}
    .lighting-energy-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:850px){
    .lighting-v07-header{align-items:flex-start}
    .lighting-v07-hero{grid-template-columns:1fr}
    .lighting-hero-copy,.lighting-main-value,.lighting-target{min-height:auto;padding:22px}
    .lighting-main-value,.lighting-target{border-left:0;border-top:1px solid var(--border)}
    .lighting-v07-metrics{grid-template-columns:1fr 1fr}
    .lighting-metric:nth-child(2){border-right:0}
    .lighting-metric:nth-child(-n+2){border-bottom:1px solid var(--border)}
    .lighting-actions{grid-template-columns:1fr}
    .lighting-zone-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
    .lighting-v07-header{display:block}
    .lighting-v07-mode{margin-top:12px;flex-wrap:wrap}
    .lighting-hero-copy h1{font-size:27px}
    .lighting-v07-metrics{grid-template-columns:1fr}
    .lighting-metric{border-right:0;border-bottom:1px solid var(--border)}
    .lighting-v07-side{grid-template-columns:1fr}
    .lighting-energy-grid{grid-template-columns:1fr}
}


/* =========================================================
   CSA GreenControl v0.8 — CO2 module
   ========================================================= */

.co2-v08-header{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;padding:20px 0 12px}
.co2-v08-header h2{margin:4px 0;font-size:26px;letter-spacing:-.02em}
.co2-v08-header p{margin:0;color:var(--muted);font-size:12px}
.co2-v08-mode{display:flex;align-items:center;gap:10px;padding:9px 11px;border:1px solid var(--border);border-radius:10px;background:var(--panel)}
.co2-v08-mode span{font-size:10px;color:var(--muted)}
.co2-v08-mode strong{font-size:12px}

.status-pill.warning{color:#d9bb65;border-color:#6e6131;background:#373119}
.co2-v08-hero{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(220px,.65fr) minmax(190px,.5fr);padding:0;overflow:hidden}
.co2-hero-copy,.co2-main-value,.co2-current-flow{min-height:210px;padding:28px}
.co2-hero-copy{display:flex;flex-direction:column;justify-content:center}
.co2-hero-copy h1{margin:0 0 12px;font-size:32px;line-height:1.14;letter-spacing:-.035em}
.co2-hero-copy>p{margin:0;max-width:650px;color:var(--muted);font-size:13px;line-height:1.6}
.co2-main-value,.co2-current-flow{display:flex;flex-direction:column;justify-content:center;border-left:1px solid var(--border);background:var(--panel2)}
.co2-main-value>span,.co2-current-flow>span{color:var(--muted);font-size:10px}
.co2-main-value>strong{margin:7px 0 2px;font-size:48px;line-height:1;letter-spacing:-.04em}
.co2-main-value>strong small,.co2-current-flow>strong small,.co2-metric strong small{margin-left:4px;color:var(--muted);font-size:.38em;font-weight:600}
.co2-main-value>p,.co2-current-flow>p{margin:5px 0 0;color:var(--muted);font-size:10px}
.co2-substatus{margin-top:16px;color:#d6b45c;font-size:10px}
.co2-current-flow>strong{margin:10px 0 2px;font-size:29px;letter-spacing:-.025em}

.co2-v08-metrics{display:grid;grid-template-columns:repeat(4,1fr);padding:0;overflow:hidden}
.co2-metric{padding:18px 20px;border-right:1px solid var(--border);background:var(--panel2)}
.co2-metric:last-child{border-right:0}
.co2-metric>span{display:block;color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.07em}
.co2-metric strong{display:block;margin-top:5px;font-size:22px}
.co2-metric p{margin:4px 0 0;color:var(--muted);font-size:9px}

.co2-v08-main{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:10px;margin-top:10px}
.co2-v08-main>.panel,.co2-v08-side>.panel{margin-top:0}
.co2-v08-side{display:grid;grid-template-rows:1fr 1fr;gap:10px}
.co2-story{display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:start;padding:16px;border:1px solid #4a5f68;border-radius:10px;background:linear-gradient(145deg,#24323a,var(--panel2))}
.co2-story-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:#344b57;color:#b4d5e3;font-size:10px;font-weight:700}
.co2-story h3{margin:1px 0 6px;font-size:17px}
.co2-story p{margin:0;color:var(--muted);font-size:11px;line-height:1.55}
.co2-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.co2-action{display:grid;grid-template-columns:18px 1fr;gap:8px;min-height:86px;padding:13px;border:1px solid var(--border);border-radius:9px;background:var(--panel2)}
.co2-action>span{color:var(--muted)}
.co2-action.active>span{color:var(--green)}
.co2-action.waiting>span{color:#7eb5d8}
.co2-action strong{display:block;font-size:11px}
.co2-action p{margin:5px 0 0;color:var(--muted);font-size:10px;line-height:1.45}
.co2-why,.co2-next{padding:20px}
.co2-why h2,.co2-next h2,.co2-zones h2,.co2-supply h2,.co2-history h2{margin:0;font-size:18px}
.co2-why p{margin:12px 0 0;color:var(--muted);font-size:11px;line-height:1.62}
.co2-next>p{margin:14px 0 4px;color:var(--muted);font-size:10px}
.co2-next>strong{display:block;font-size:29px;letter-spacing:-.035em}
.co2-next h3{margin:0 0 5px;font-size:14px}

.co2-zones{margin-top:10px}
.co2-zone-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.co2-zone-card{padding:15px;border:1px solid var(--border);border-radius:10px;background:var(--panel2)}
.co2-zone-card.active{border-color:#3f6874;background:linear-gradient(145deg,#20343c,var(--panel2))}
.co2-zone-level{height:7px;margin:16px 0 4px;overflow:hidden;border-radius:999px;background:#242a31}
.co2-zone-level i{display:block;height:100%;border-radius:999px;background:#72abc0}

.co2-supply{margin-top:10px}
.co2-supply-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
.co2-supply-grid article{display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;padding:14px;border:1px solid var(--border);border-radius:10px;background:var(--panel2)}
.co2-supply-grid article div span{display:block;color:var(--muted);font-size:8px;letter-spacing:.08em}
.co2-supply-grid article div strong{display:block;margin-top:3px;font-size:11px}
.co2-supply-grid em{font-style:normal;font-size:8px}
.co2-supply-grid em.ok{color:#7bdc8f}
.co2-supply-grid em.info{color:#85c7e5}

.co2-history{margin-top:10px}
.co2-chart-placeholder{position:relative;min-height:250px;overflow:hidden;border-top:1px solid var(--border);background:linear-gradient(to bottom,transparent 24%,rgba(255,255,255,.035) 25%,transparent 26%,transparent 49%,rgba(255,255,255,.035) 50%,transparent 51%,transparent 74%,rgba(255,255,255,.035) 75%,transparent 76%)}
.co2-line{position:absolute;left:4%;right:4%;height:3px;border-radius:999px;transform-origin:left center}
.co2-line-main{top:43%;background:#72abc0;transform:rotate(-1.5deg)}
.co2-line-flow{top:63%;background:#78c68a;transform:rotate(2deg)}
.co2-chart-placeholder .chart-axis{position:absolute;left:0;right:0;bottom:0}

@media(max-width:1300px){
    .co2-v08-hero{grid-template-columns:1fr 250px}
    .co2-current-flow{grid-column:1/-1;min-height:auto;border-left:0;border-top:1px solid var(--border);padding:18px 28px}
    .co2-v08-main{grid-template-columns:1fr}
    .co2-v08-side{grid-template-columns:1fr 1fr;grid-template-rows:auto}
    .co2-supply-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:850px){
    .co2-v08-header{align-items:flex-start}
    .co2-v08-hero{grid-template-columns:1fr}
    .co2-hero-copy,.co2-main-value,.co2-current-flow{min-height:auto;padding:22px}
    .co2-main-value,.co2-current-flow{border-left:0;border-top:1px solid var(--border)}
    .co2-v08-metrics{grid-template-columns:1fr 1fr}
    .co2-metric:nth-child(2){border-right:0}
    .co2-metric:nth-child(-n+2){border-bottom:1px solid var(--border)}
    .co2-actions{grid-template-columns:1fr}
    .co2-zone-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
    .co2-v08-header{display:block}
    .co2-v08-mode{margin-top:12px;flex-wrap:wrap}
    .co2-hero-copy h1{font-size:27px}
    .co2-v08-metrics{grid-template-columns:1fr}
    .co2-metric{border-right:0;border-bottom:1px solid var(--border)}
    .co2-v08-side{grid-template-columns:1fr}
    .co2-supply-grid{grid-template-columns:1fr}
}


/* =========================================================
   CSA GreenControl v0.9 — Energy module
   ========================================================= */
.energy-v09-header{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;padding:20px 0 12px}
.energy-v09-header h2{margin:4px 0;font-size:26px;letter-spacing:-.02em}.energy-v09-header p{margin:0;color:var(--muted);font-size:12px}
.energy-v09-mode{display:flex;align-items:center;gap:10px;padding:9px 11px;border:1px solid var(--border);border-radius:10px;background:var(--panel)}
.energy-v09-mode span{font-size:10px;color:var(--muted)}.energy-v09-mode strong{font-size:12px}
.energy-v09-hero{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(220px,.65fr) minmax(190px,.5fr);padding:0;overflow:hidden}
.energy-hero-copy,.energy-main-value,.energy-saving{min-height:210px;padding:28px}.energy-hero-copy{display:flex;flex-direction:column;justify-content:center}
.energy-hero-copy h1{margin:0 0 12px;font-size:32px;line-height:1.14;letter-spacing:-.035em}.energy-hero-copy>p{margin:0;max-width:650px;color:var(--muted);font-size:13px;line-height:1.6}
.energy-main-value,.energy-saving{display:flex;flex-direction:column;justify-content:center;border-left:1px solid var(--border);background:var(--panel2)}
.energy-main-value>span,.energy-saving>span{color:var(--muted);font-size:10px}.energy-main-value>strong{margin:7px 0 2px;font-size:48px;line-height:1;letter-spacing:-.04em}
.energy-main-value>strong small,.energy-saving>strong small,.energy-metric strong small{margin-left:4px;color:var(--muted);font-size:.38em;font-weight:600}
.energy-main-value>p,.energy-saving>p{margin:5px 0 0;color:var(--muted);font-size:10px}.energy-substatus{margin-top:16px;color:#d6b45c;font-size:10px}
.energy-saving>strong{margin:10px 0 2px;font-size:29px;letter-spacing:-.025em}
.energy-v09-metrics{display:grid;grid-template-columns:repeat(4,1fr);padding:0;overflow:hidden}
.energy-metric{padding:18px 20px;border-right:1px solid var(--border);background:var(--panel2)}.energy-metric:last-child{border-right:0}
.energy-metric>span{display:block;color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.07em}.energy-metric strong{display:block;margin-top:5px;font-size:22px}.energy-metric p{margin:4px 0 0;color:var(--muted);font-size:9px}
.energy-v09-main{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:10px;margin-top:10px}.energy-v09-main>.panel,.energy-v09-side>.panel{margin-top:0}
.energy-v09-side{display:grid;grid-template-rows:1fr 1fr;gap:10px}
.energy-story{display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:start;padding:16px;border:1px solid #6f6230;border-radius:10px;background:linear-gradient(145deg,#393319,var(--panel2))}
.energy-story-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:#655a28;color:#f0cf67;font-size:20px}.energy-story h3{margin:1px 0 6px;font-size:17px}.energy-story p{margin:0;color:var(--muted);font-size:11px;line-height:1.55}
.energy-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.energy-action{display:grid;grid-template-columns:18px 1fr;gap:8px;min-height:86px;padding:13px;border:1px solid var(--border);border-radius:9px;background:var(--panel2)}
.energy-action>span{color:var(--muted)}.energy-action.active>span{color:var(--green)}.energy-action.waiting>span{color:#d6b45c}.energy-action strong{display:block;font-size:11px}.energy-action p{margin:5px 0 0;color:var(--muted);font-size:10px;line-height:1.45}
.energy-why,.energy-next{padding:20px}.energy-why h2,.energy-next h2,.energy-consumers h2,.energy-supply h2,.energy-history h2{margin:0;font-size:18px}
.energy-why p{margin:12px 0 0;color:var(--muted);font-size:11px;line-height:1.62}.energy-next>p{margin:14px 0 4px;color:var(--muted);font-size:10px}.energy-next>strong{display:block;font-size:29px;letter-spacing:-.035em}.energy-next h3{margin:0 0 5px;font-size:14px}
.energy-consumers{margin-top:10px}.energy-consumer-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
.energy-consumer-card{padding:15px;border:1px solid var(--border);border-radius:10px;background:var(--panel2)}.energy-consumer-card.active{border-color:#6f6230;background:linear-gradient(145deg,#393319,var(--panel2))}
.consumer-top{display:flex;justify-content:space-between;gap:10px}.consumer-top span{color:var(--muted);font-size:8px;letter-spacing:.08em}.consumer-top strong{font-size:13px}
.energy-level{height:7px;margin:16px 0 8px;overflow:hidden;border-radius:999px;background:#242a31}.energy-level i{display:block;height:100%;border-radius:999px;background:#d6b45c}.energy-consumer-card p{margin:0;color:var(--muted);font-size:9px}
.energy-supply{margin-top:10px}.energy-supply-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
.energy-supply-grid article{display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;padding:14px;border:1px solid var(--border);border-radius:10px;background:var(--panel2)}
.energy-supply-grid article div span{display:block;color:var(--muted);font-size:8px;letter-spacing:.08em}.energy-supply-grid article div strong{display:block;margin-top:3px;font-size:11px}.energy-supply-grid em{font-style:normal;font-size:8px}.energy-supply-grid em.ok{color:#7bdc8f}.energy-supply-grid em.info{color:#85c7e5}
.energy-history{margin-top:10px}.energy-chart-placeholder{position:relative;min-height:250px;overflow:hidden;border-top:1px solid var(--border);background:linear-gradient(to bottom,transparent 24%,rgba(255,255,255,.035) 25%,transparent 26%,transparent 49%,rgba(255,255,255,.035) 50%,transparent 51%,transparent 74%,rgba(255,255,255,.035) 75%,transparent 76%)}
.energy-line{position:absolute;left:4%;right:4%;height:3px;border-radius:999px;transform-origin:left center}.energy-line-power{top:44%;background:#d6b45c;transform:rotate(-1.5deg)}.energy-line-cost{top:63%;background:#72abc0;transform:rotate(1.5deg)}.energy-chart-placeholder .chart-axis{position:absolute;left:0;right:0;bottom:0}
@media(max-width:1300px){.energy-v09-hero{grid-template-columns:1fr 250px}.energy-saving{grid-column:1/-1;min-height:auto;border-left:0;border-top:1px solid var(--border);padding:18px 28px}.energy-v09-main{grid-template-columns:1fr}.energy-v09-side{grid-template-columns:1fr 1fr;grid-template-rows:auto}.energy-consumer-grid,.energy-supply-grid{grid-template-columns:1fr 1fr}}
@media(max-width:850px){.energy-v09-header{align-items:flex-start}.energy-v09-hero{grid-template-columns:1fr}.energy-hero-copy,.energy-main-value,.energy-saving{min-height:auto;padding:22px}.energy-main-value,.energy-saving{border-left:0;border-top:1px solid var(--border)}.energy-v09-metrics{grid-template-columns:1fr 1fr}.energy-metric:nth-child(2){border-right:0}.energy-metric:nth-child(-n+2){border-bottom:1px solid var(--border)}.energy-actions{grid-template-columns:1fr}}
@media(max-width:620px){.energy-v09-header{display:block}.energy-v09-mode{margin-top:12px;flex-wrap:wrap}.energy-hero-copy h1{font-size:27px}.energy-v09-metrics{grid-template-columns:1fr}.energy-metric{border-right:0;border-bottom:1px solid var(--border)}.energy-v09-side{grid-template-columns:1fr}.energy-consumer-grid,.energy-supply-grid{grid-template-columns:1fr}}


/* =========================================================
   CSA GreenControl v1.0 — Alarms & Events
   ========================================================= */

.alarms-v10-header{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;padding:20px 0 12px}
.alarms-v10-header h2{margin:4px 0;font-size:26px;letter-spacing:-.02em}
.alarms-v10-header p{margin:0;color:var(--muted);font-size:12px}
.alarms-v10-actions{display:flex;gap:8px}

.alarms-v10-hero{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(220px,.65fr) minmax(190px,.5fr);padding:0;overflow:hidden}
.alarms-hero-copy,.alarms-main-value,.alarms-response{min-height:210px;padding:28px}
.alarms-hero-copy{display:flex;flex-direction:column;justify-content:center}
.alarms-hero-copy h1{margin:0 0 12px;font-size:32px;line-height:1.14;letter-spacing:-.035em}
.alarms-hero-copy>p{margin:0;max-width:690px;color:var(--muted);font-size:13px;line-height:1.6}
.alarms-main-value,.alarms-response{display:flex;flex-direction:column;justify-content:center;border-left:1px solid var(--border);background:var(--panel2)}
.alarms-main-value>span,.alarms-response>span{color:var(--muted);font-size:10px}
.alarms-main-value>strong{margin:7px 0 2px;font-size:48px;line-height:1}
.alarms-main-value>p,.alarms-response>p{margin:5px 0 0;color:var(--muted);font-size:10px}
.alarms-substatus{margin-top:16px;color:#d6b45c;font-size:10px}
.alarms-response>strong{margin:10px 0 2px;font-size:29px}
.alarms-response>strong small{margin-left:4px;color:var(--muted);font-size:.42em}

.alarms-v10-metrics{display:grid;grid-template-columns:repeat(4,1fr);padding:0;overflow:hidden}
.alarms-metric{padding:18px 20px;border-right:1px solid var(--border);background:var(--panel2)}
.alarms-metric:last-child{border-right:0}
.alarms-metric span{display:block;color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.07em}
.alarms-metric strong{display:block;margin-top:5px;font-size:22px}
.alarms-metric p{margin:4px 0 0;color:var(--muted);font-size:9px}
.alarms-metric.critical strong{color:#e97878}
.alarms-metric.warning strong{color:#d6b45c}
.alarms-metric.info strong{color:#72abc0}
.alarms-metric.resolved strong{color:#79c88b}

.alarms-v10-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:10px;padding:12px}
.alarm-filter-group{display:flex;gap:6px;flex-wrap:wrap}
.alarm-filter{padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--panel2);color:var(--muted);font-size:10px;cursor:pointer}
.alarm-filter.active{border-color:#5d7d68;background:#23352b;color:#9ee0ad}
.alarm-search{display:flex;align-items:center;gap:8px;min-width:310px;padding:8px 11px;border:1px solid var(--border);border-radius:8px;background:var(--panel2)}
.alarm-search span{color:var(--muted)}
.alarm-search input{width:100%;border:0;outline:0;background:transparent;color:var(--text);font-size:10px}

.alarms-v10-main{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);gap:10px;margin-top:10px}
.alarms-list{display:grid;gap:10px}
.alarm-card{display:grid;grid-template-columns:48px 1fr;border:1px solid var(--border);border-radius:11px;background:var(--panel);overflow:hidden}
.alarm-card.warning{border-color:#6f6130}
.alarm-card.info{border-color:#3d6472}
.alarm-card.resolved{opacity:.82}
.alarm-severity{display:grid;place-items:center;font-size:20px;font-weight:800;background:var(--panel2)}
.alarm-card.warning .alarm-severity{color:#e5c567;background:#3a3319}
.alarm-card.info .alarm-severity{color:#8bc7df;background:#20333b}
.alarm-card.resolved .alarm-severity{color:#7ed391;background:#203228}
.alarm-content{padding:18px}
.alarm-card-head{display:flex;justify-content:space-between;gap:16px}
.alarm-card-head h3{margin:3px 0 0;font-size:17px}
.alarm-card-head time{color:var(--muted);font-size:9px;white-space:nowrap}
.alarm-type{color:var(--muted);font-size:8px;font-weight:700;letter-spacing:.09em}
.alarm-content>p{margin:11px 0;color:var(--muted);font-size:11px;line-height:1.58}
.alarm-explanation{display:flex;justify-content:space-between;gap:15px;padding:11px 12px;border:1px solid var(--border);border-radius:8px;background:var(--panel2)}
.alarm-explanation strong{font-size:10px}
.alarm-explanation span{color:var(--muted);font-size:9px;text-align:right}
.alarm-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:11px}
.alarm-meta span{padding:5px 7px;border-radius:6px;background:var(--panel2);color:var(--muted);font-size:8px}
.alarm-card-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:13px}

.alarms-side{display:grid;gap:10px;align-content:start}
.alarms-side>.panel{margin-top:0}
.alarm-timeline,.alarm-insight{padding:19px}
.alarm-timeline h2,.alarm-insight h2,.alarms-statistics h2{margin:0;font-size:18px}
.timeline-list{display:grid;gap:0;margin-top:12px}
.timeline-item{display:grid;grid-template-columns:42px 12px 1fr;gap:8px;min-height:66px}
.timeline-item time{color:var(--muted);font-size:9px}
.timeline-dot{position:relative;width:8px;height:8px;margin-top:3px;border-radius:50%}
.timeline-dot:after{content:"";position:absolute;top:10px;left:3px;width:1px;height:48px;background:var(--border)}
.timeline-item:last-child .timeline-dot:after{display:none}
.timeline-dot.warning{background:#d6b45c}
.timeline-dot.info{background:#72abc0}
.timeline-dot.success{background:#79c88b}
.timeline-item strong{display:block;font-size:10px}
.timeline-item p{margin:4px 0 0;color:var(--muted);font-size:9px;line-height:1.4}
.alarm-insight>p{margin:12px 0;color:var(--muted);font-size:11px;line-height:1.6}
.insight-callout{padding:12px;border:1px solid #3f6472;border-radius:9px;background:#20333b}
.insight-callout strong{display:block;margin-bottom:6px;color:#9bcddd;font-size:9px}
.insight-callout span{color:var(--muted);font-size:10px;line-height:1.5}

.alarms-statistics{margin-top:10px}
.alarms-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
.alarms-stats-grid article{padding:15px;border:1px solid var(--border);border-radius:10px;background:var(--panel2)}
.alarms-stats-grid span{display:block;color:var(--muted);font-size:8px;letter-spacing:.08em}
.alarms-stats-grid strong{display:block;margin-top:6px;font-size:16px}
.alarms-stats-grid p{margin:5px 0 0;color:var(--muted);font-size:9px}

@media(max-width:1300px){
    .alarms-v10-hero{grid-template-columns:1fr 250px}
    .alarms-response{grid-column:1/-1;min-height:auto;border-left:0;border-top:1px solid var(--border);padding:18px 28px}
    .alarms-v10-main{grid-template-columns:1fr}
    .alarms-side{grid-template-columns:1fr 1fr}
}
@media(max-width:900px){
    .alarms-v10-header{align-items:flex-start}
    .alarms-v10-hero{grid-template-columns:1fr}
    .alarms-hero-copy,.alarms-main-value,.alarms-response{min-height:auto;padding:22px}
    .alarms-main-value,.alarms-response{border-left:0;border-top:1px solid var(--border)}
    .alarms-v10-metrics{grid-template-columns:1fr 1fr}
    .alarms-metric:nth-child(2){border-right:0}
    .alarms-metric:nth-child(-n+2){border-bottom:1px solid var(--border)}
    .alarms-v10-toolbar{align-items:stretch;flex-direction:column}
    .alarm-search{min-width:0}
    .alarms-stats-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:620px){
    .alarms-v10-header{display:block}
    .alarms-v10-actions{margin-top:12px;flex-wrap:wrap}
    .alarms-hero-copy h1{font-size:27px}
    .alarms-v10-metrics{grid-template-columns:1fr}
    .alarms-metric{border-right:0;border-bottom:1px solid var(--border)}
    .alarm-card{grid-template-columns:38px 1fr}
    .alarm-card-head{display:block}
    .alarm-card-head time{display:block;margin-top:5px}
    .alarm-explanation{display:block}
    .alarm-explanation span{display:block;margin-top:5px;text-align:left}
    .alarms-side{grid-template-columns:1fr}
    .alarms-stats-grid{grid-template-columns:1fr}
}


/* =========================================================
   CSA GreenControl v1.1 — Sequential Strategy Editor
   ========================================================= */
.strategy-v11-header{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;padding:20px 0 12px}
.strategy-v11-header h2{margin:4px 0;font-size:26px;letter-spacing:-.02em}.strategy-v11-header p{margin:0;color:var(--muted);font-size:12px}
.strategy-v11-actions{display:flex;gap:8px;flex-wrap:wrap}
.strategy-v11-summary{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(190px,.42fr) minmax(210px,.48fr);padding:0;overflow:hidden}
.strategy-summary-main,.strategy-summary-stat{min-height:190px;padding:26px}.strategy-summary-main{display:flex;flex-direction:column;justify-content:center}
.strategy-summary-main h1{margin:0 0 10px;font-size:30px;letter-spacing:-.035em}.strategy-summary-main>p{margin:0;max-width:700px;color:var(--muted);font-size:12px;line-height:1.6}
.strategy-summary-stat{display:flex;flex-direction:column;justify-content:center;border-left:1px solid var(--border);background:var(--panel2)}
.strategy-summary-stat>span{color:var(--muted);font-size:9px}.strategy-summary-stat>strong{margin:8px 0 2px;font-size:30px}.strategy-summary-stat>p{margin:0;color:var(--muted);font-size:9px}
.strategy-v11-layout{display:grid;grid-template-columns:260px minmax(580px,1fr) 310px;gap:10px;margin-top:10px;align-items:start}
.strategy-library,.strategy-editor,.strategy-properties-card,.strategy-validation{margin-top:0}
.strategy-library{padding:16px;position:sticky;top:10px}.strategy-library h2,.strategy-editor h2,.strategy-properties-card h2,.strategy-validation h2{margin:0;font-size:17px}
.strategy-search{display:flex;gap:8px;align-items:center;margin:12px 0;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--panel2)}
.strategy-search span{color:var(--muted)}.strategy-search input{width:100%;border:0;outline:0;background:transparent;color:var(--text);font-size:10px}
.strategy-list{display:grid;gap:6px}.strategy-list-item{display:grid;grid-template-columns:10px 1fr;gap:9px;text-align:left;padding:11px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text);cursor:pointer}
.strategy-list-item:hover{background:var(--panel2)}.strategy-list-item.active{border-color:#526b5a;background:#233129}
.strategy-list-item strong{display:block;font-size:10px}.strategy-list-item small{display:block;margin-top:4px;color:var(--muted);font-size:8px}
.strategy-dot{width:7px;height:7px;margin-top:3px;border-radius:50%;background:#58616a}.strategy-dot.running{background:#73cc87;box-shadow:0 0 0 3px rgba(115,204,135,.12)}
.strategy-library-footer{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}.strategy-library-footer span{color:var(--muted);font-size:9px}
.strategy-editor{padding:0;overflow:hidden}.strategy-editor-toolbar{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:16px 18px;border-bottom:1px solid var(--border)}
.strategy-toolbar-buttons{display:flex;gap:6px}.strategy-canvas{padding:28px;background:radial-gradient(circle at 1px 1px,rgba(255,255,255,.055) 1px,transparent 0);background-size:20px 20px}
.strategy-start{width:74px;margin:0 auto;padding:8px;text-align:center;border:1px solid #52745d;border-radius:999px;background:#213329;color:#8fdda0;font-size:9px;font-weight:700}
.strategy-connector{width:2px;height:22px;margin:0 auto;background:var(--border)}
.strategy-step{display:grid;grid-template-columns:54px 1fr;max-width:720px;margin:0 auto;border:1px solid var(--border);border-radius:10px;background:var(--panel);overflow:hidden}
.strategy-step.completed{border-color:#405a49}.strategy-step.active{border-color:#79703b;box-shadow:0 0 0 1px rgba(214,180,92,.1),0 12px 35px rgba(0,0,0,.18)}
.strategy-step.queued{opacity:.8}.strategy-step-index{display:grid;place-items:center;background:var(--panel2);font-size:18px;font-weight:800}
.strategy-step.completed .strategy-step-index{color:#7ed28f;background:#213329}.strategy-step.active .strategy-step-index{color:#e2c56b;background:#3b351c}
.strategy-step-body{padding:14px}.strategy-step-head{display:flex;justify-content:space-between;gap:15px}.strategy-step-head span{color:var(--muted);font-size:8px;letter-spacing:.08em}
.strategy-step-head h3{margin:3px 0 0;font-size:13px}.strategy-step-head .step-state{white-space:nowrap}.strategy-step.active .step-state{color:#e2c56b}
.strategy-step-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:11px}.strategy-step-actions span{padding:5px 7px;border-radius:6px;background:var(--panel2);color:var(--muted);font-size:8px}
.strategy-step-progress{height:4px;margin-top:12px;overflow:hidden;border-radius:999px;background:#242a31}.strategy-step-progress i{display:block;height:100%;border-radius:999px;background:#d6b45c}
.strategy-transition{position:relative;width:max-content;max-width:80%;margin:0 auto;padding:8px 11px;color:var(--muted);font-size:8px;text-align:center}
.strategy-transition:before,.strategy-transition:after{content:"";position:absolute;left:50%;width:2px;height:11px;background:var(--border)}
.strategy-transition:before{top:-5px}.strategy-transition:after{bottom:-5px}.strategy-transition.active{color:#d8bc65}.strategy-transition.waiting{opacity:.72}
.strategy-add-step{text-align:center;margin-top:18px}
.strategy-properties{display:grid;gap:10px;position:sticky;top:10px}.strategy-properties-card{padding:16px}
.strategy-property-group{margin-top:14px}.strategy-property-group>label{display:block;margin-bottom:7px;color:var(--muted);font-size:8px;font-weight:700;letter-spacing:.08em}
.strategy-property-group input,.strategy-property-group textarea{width:100%;box-sizing:border-box;border:1px solid var(--border);border-radius:8px;background:var(--panel2);color:var(--text);font-size:10px;padding:9px}
.strategy-property-group textarea{min-height:72px;resize:vertical}.strategy-property-row,.strategy-condition,.strategy-switch-row{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--border);font-size:9px}
.strategy-property-row span,.strategy-condition span,.strategy-switch-row span{color:var(--muted)}.strategy-full-button{width:100%;margin-top:8px}
.strategy-switch{position:relative;width:30px;height:16px;border-radius:999px;background:#39414a}.strategy-switch:after{content:"";position:absolute;top:3px;left:3px;width:10px;height:10px;border-radius:50%;background:#8d969f}
.strategy-switch.on{background:#2d5a3a}.strategy-switch.on:after{left:17px;background:#86d798}
.strategy-validation{padding:16px}.strategy-validation>p{margin:10px 0;color:var(--muted);font-size:10px;line-height:1.5}.strategy-validation-status{padding:9px;border:1px solid #41604a;border-radius:8px;background:#213329;color:#89d99a;font-size:9px}
.strategy-bottom{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-top:10px}.strategy-bottom strong{display:block;margin-top:4px;font-size:11px}.strategy-bottom-actions{display:flex;gap:7px;flex-wrap:wrap}
@media(max-width:1450px){.strategy-v11-layout{grid-template-columns:230px minmax(560px,1fr)}.strategy-properties{grid-column:1/-1;grid-template-columns:1fr 1fr;position:static}.strategy-library{position:static}}
@media(max-width:1050px){.strategy-v11-layout{grid-template-columns:1fr}.strategy-library{position:static}.strategy-properties{grid-template-columns:1fr}.strategy-v11-summary{grid-template-columns:1fr 1fr}.strategy-summary-main{grid-column:1/-1}.strategy-summary-stat{border-top:1px solid var(--border)}}
@media(max-width:720px){.strategy-v11-header{display:block}.strategy-v11-actions{margin-top:12px}.strategy-v11-summary{grid-template-columns:1fr}.strategy-summary-main,.strategy-summary-stat{min-height:auto;padding:21px}.strategy-summary-stat{border-left:0}.strategy-editor-toolbar{align-items:flex-start;flex-direction:column}.strategy-canvas{padding:16px}.strategy-step{grid-template-columns:42px 1fr}.strategy-step-head{display:block}.strategy-step-head .step-state{display:block;margin-top:5px}.strategy-bottom{align-items:flex-start;flex-direction:column}}


/* =========================================================
   CSA GreenControl v1.2 — History & Trends
   ========================================================= */
.trends-v12-header{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;padding:20px 0 12px}
.trends-v12-header h2{margin:4px 0;font-size:26px;letter-spacing:-.02em}.trends-v12-header p{margin:0;color:var(--muted);font-size:12px}
.trends-v12-actions{display:flex;gap:8px;flex-wrap:wrap}
.trends-v12-filters{display:flex;align-items:center;gap:10px;padding:12px}
.trend-periods{display:flex;gap:5px;flex-wrap:wrap}.trend-period{padding:8px 11px;border:1px solid var(--border);border-radius:7px;background:var(--panel2);color:var(--muted);font-size:9px}.trend-period.active{border-color:#4d7160;background:#21342a;color:#8cdaa0}
.trend-filter-control{display:flex;align-items:center;gap:8px;margin-left:auto;padding:7px 9px;border:1px solid var(--border);border-radius:8px;background:var(--panel2)}.trend-filter-control+ .trend-filter-control{margin-left:0}
.trend-filter-control span{color:var(--muted);font-size:8px}.trend-filter-control strong{font-size:9px}.trend-filter-control button{border:0;background:transparent;color:var(--muted)}
.trends-v12-summary{display:grid;grid-template-columns:minmax(0,1.65fr) repeat(3,minmax(150px,.42fr));padding:0;overflow:hidden}
.trend-summary-main,.trend-summary-stat{min-height:185px;padding:25px}.trend-summary-main{display:flex;flex-direction:column;justify-content:center}
.trend-summary-main h1{margin:0 0 10px;font-size:29px;letter-spacing:-.035em}.trend-summary-main>p{margin:0;max-width:700px;color:var(--muted);font-size:12px;line-height:1.6}
.trend-summary-stat{display:flex;flex-direction:column;justify-content:center;border-left:1px solid var(--border);background:var(--panel2)}.trend-summary-stat>span{color:var(--muted);font-size:9px}.trend-summary-stat>strong{margin:7px 0 2px;font-size:26px}.trend-summary-stat>strong small{margin-left:4px;color:var(--muted);font-size:.42em}.trend-summary-stat>p{margin:0;color:var(--muted);font-size:9px}
.trends-v12-layout{display:grid;grid-template-columns:230px minmax(650px,1fr) 290px;gap:10px;margin-top:10px;align-items:start}
.trend-series,.trend-chart-panel,.trend-analysis,.trend-statistics{margin-top:0}.trend-series{padding:16px}.trend-series h2,.trend-chart-panel h2,.trend-analysis h2,.trend-statistics h2,.trend-comparison h2,.trend-events h2{margin:0;font-size:17px}
.trend-series-group{margin-top:15px}.trend-series-group>span{display:block;margin-bottom:7px;color:var(--muted);font-size:8px;font-weight:700;letter-spacing:.08em}
.trend-series-item{display:grid;grid-template-columns:8px 16px 1fr auto;gap:7px;align-items:center;padding:8px;border-radius:7px;color:var(--muted);cursor:pointer}.trend-series-item.active{background:var(--panel2);color:var(--text)}
.trend-series-item input{margin:0}.trend-series-item b{font-size:9px}.trend-series-item small{font-size:8px}
.series-color{display:inline-block;width:7px;height:7px;border-radius:50%}.series-color.temp{background:#e28c65}.series-color.humidity{background:#62acc8}.series-color.co2{background:#7acb89}.series-color.light{background:#dfc462}.series-color.windows{background:#a98add}.series-color.mist{background:#5fc4d8}.series-color.heat{background:#d97863}.series-color.led{background:#edcd62}.series-color.target{background:#d7dce0}.series-color.limits{background:#d06c6c}
.trend-chart-panel{padding:0;overflow:hidden}.trend-chart-head{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:16px 18px;border-bottom:1px solid var(--border)}.trend-chart-tools{display:flex;gap:6px;flex-wrap:wrap}
.trend-chart-area{position:relative;height:430px;margin:0 10px;padding:20px 42px 36px;overflow:hidden}
.trend-y-axis{position:absolute;top:20px;bottom:38px;display:flex;flex-direction:column;justify-content:space-between;color:var(--muted);font-size:8px}.trend-y-axis.left{left:7px}.trend-y-axis.right{right:5px}
.trend-grid-lines{position:absolute;inset:20px 42px 38px;display:flex;flex-direction:column;justify-content:space-between}.trend-grid-lines i{display:block;border-top:1px solid rgba(255,255,255,.055)}
.trend-limit-band{position:absolute;left:42px;right:42px;top:104px;height:160px;background:rgba(105,178,126,.055);border-top:1px dashed rgba(116,199,139,.25);border-bottom:1px dashed rgba(116,199,139,.25)}
.trend-target-line{position:absolute;left:42px;right:42px;top:205px;border-top:1px dashed rgba(215,220,224,.45)}
.trend-svg{position:absolute;left:42px;right:42px;top:20px;width:calc(100% - 84px);height:342px;overflow:visible}.trend-polyline{fill:none;stroke-width:3;vector-effect:non-scaling-stroke}.trend-polyline.temperature{stroke:#e28c65}.trend-polyline.humidity{stroke:#62acc8}.trend-polyline.windows{stroke:#a98add}
.trend-event-marker{position:absolute;top:28px;bottom:38px;border-left:1px dashed rgba(255,255,255,.2)}.trend-event-marker span,.trend-event-marker b{position:absolute;left:5px;white-space:nowrap;font-size:7px}.trend-event-marker span{top:0;color:var(--muted)}.trend-event-marker b{top:11px}.trend-event-marker.event-warning{border-color:#d6b45c}.trend-event-marker.event-warning b{color:#d6b45c}.trend-event-marker.event-action{border-color:#72abc0}.trend-event-marker.event-resolved{border-color:#79c88b}.trend-event-marker.event-irrigation{border-color:#5fc4d8}
.trend-crosshair{position:absolute;top:20px;bottom:38px;border-left:1px solid rgba(255,255,255,.45)}.trend-tooltip{position:absolute;left:10px;top:90px;display:grid;gap:4px;min-width:140px;padding:10px;border:1px solid var(--border);border-radius:8px;background:rgba(22,27,32,.96);box-shadow:0 10px 30px rgba(0,0,0,.25)}.trend-tooltip strong{font-size:10px}.trend-tooltip span{color:var(--muted);font-size:8px}
.trend-x-axis{position:absolute;left:42px;right:42px;bottom:10px;display:flex;justify-content:space-between;color:var(--muted);font-size:8px}
.trend-chart-footer{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--border)}.trend-chart-footer>div{display:grid;grid-template-columns:8px 1fr auto;gap:7px;align-items:center;padding:12px 14px;border-right:1px solid var(--border);font-size:8px}.trend-chart-footer>div:last-child{border-right:0}.trend-chart-footer span{color:var(--muted)}.trend-chart-footer strong{font-size:9px}
.trend-insights{display:grid;gap:10px}.trend-analysis,.trend-statistics{padding:16px}.trend-insight{margin-top:10px;padding:11px;border:1px solid var(--border);border-radius:8px;background:var(--panel2)}.trend-insight.warning{border-color:#6a5f32}.trend-insight.info{border-color:#365b69}.trend-insight.success{border-color:#3d6248}.trend-insight strong{font-size:10px}.trend-insight p{margin:5px 0 0;color:var(--muted);font-size:9px;line-height:1.45}
.trend-stat-row{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--border);font-size:9px}.trend-stat-row span{color:var(--muted)}
.trend-comparison,.trend-events{margin-top:10px}.trend-zone-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.trend-zone-card{padding:14px;border:1px solid var(--border);border-radius:9px;background:var(--panel2)}.trend-zone-card.warning{border-color:#6a5f32}.trend-zone-card.best{border-color:#3f6249}.trend-zone-card>div:first-child{display:flex;justify-content:space-between;gap:10px}.trend-zone-card span{color:var(--muted);font-size:8px}.trend-zone-card strong{font-size:13px}.trend-zone-card p{margin:5px 0;color:var(--muted);font-size:8px}.trend-zone-bar{height:5px;overflow:hidden;border-radius:999px;background:#242a31}.trend-zone-bar i{display:block;height:100%;border-radius:999px;background:#72abc0}.trend-zone-card.warning .trend-zone-bar i{background:#d6b45c}.trend-zone-card.best .trend-zone-bar i{background:#79c88b}
.trend-event-list{display:grid;grid-template-columns:repeat(5,1fr);gap:9px}.trend-event-list article{display:grid;grid-template-columns:38px 9px 1fr;gap:7px;padding:12px;border:1px solid var(--border);border-radius:9px;background:var(--panel2)}.trend-event-list time{color:var(--muted);font-size:8px}.event-dot{width:7px;height:7px;margin-top:2px;border-radius:50%}.event-dot.irrigation{background:#5fc4d8}.event-dot.co2{background:#79c88b}.event-dot.warning{background:#d6b45c}.event-dot.action{background:#72abc0}.event-dot.success{background:#79c88b}.trend-event-list strong{display:block;font-size:9px}.trend-event-list p{margin:4px 0 0;color:var(--muted);font-size:8px;line-height:1.4}
@media(max-width:1500px){.trends-v12-layout{grid-template-columns:210px minmax(620px,1fr)}.trend-insights{grid-column:1/-1;grid-template-columns:1fr 1fr}.trends-v12-summary{grid-template-columns:1fr repeat(3,180px)}.trend-event-list{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1100px){.trends-v12-summary{grid-template-columns:1fr 1fr}.trend-summary-main{grid-column:1/-1}.trend-summary-stat{border-top:1px solid var(--border)}.trends-v12-layout{grid-template-columns:1fr}.trend-series{position:static}.trend-series-group{display:inline-block;vertical-align:top;width:31%;margin-right:1%}.trend-insights{grid-template-columns:1fr 1fr}.trend-zone-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.trends-v12-header{display:block}.trends-v12-actions{margin-top:12px}.trends-v12-filters{align-items:stretch;flex-direction:column}.trend-filter-control{margin-left:0}.trends-v12-summary{grid-template-columns:1fr}.trend-summary-main,.trend-summary-stat{min-height:auto;padding:21px}.trend-summary-stat{border-left:0}.trend-series-group{display:block;width:auto;margin-right:0}.trend-chart-head{align-items:flex-start;flex-direction:column}.trend-chart-area{height:380px;padding-left:30px;padding-right:30px}.trend-svg{left:30px;width:calc(100% - 60px)}.trend-grid-lines,.trend-limit-band,.trend-target-line{left:30px;right:30px}.trend-x-axis{left:30px;right:30px}.trend-tooltip{display:none}.trend-chart-footer{grid-template-columns:1fr}.trend-chart-footer>div{border-right:0;border-bottom:1px solid var(--border)}.trend-insights{grid-template-columns:1fr}.trend-zone-grid{grid-template-columns:1fr}.trend-event-list{grid-template-columns:1fr}}

/* GreenControl v1.3 Alpha · Harta Serei · Livrarea 1/2 */
.map13-header{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;padding:20px 0 12px}.map13-header h2{margin:4px 0;font-size:26px}.map13-header p{margin:0;color:var(--muted);font-size:12px}.map13-actions{display:flex;gap:7px;flex-wrap:wrap}.map13-kpis{display:grid;grid-template-columns:repeat(5,1fr);padding:0;overflow:hidden}.map13-kpis>div{padding:16px;border-right:1px solid var(--border)}.map13-kpis>div:last-child{border:0}.map13-kpis span,.map13-kpis small{display:block;color:var(--muted);font-size:8px}.map13-kpis strong{display:block;margin:5px 0;font-size:20px}.map13-kpis .warn{color:#d6b45c}.map13-kpis .alarm{color:#db716d}.map13-layout{display:grid;grid-template-columns:220px minmax(620px,1fr) 300px;gap:10px;margin-top:10px;align-items:start}.map13-layers,.map13-zone-card{padding:16px}.map13-layers h2,.map13-stage-panel h2,.map13-zone-card h2{margin:0;font-size:17px}.map-layer-row{display:grid;grid-template-columns:18px 1fr 8px;align-items:center;padding:9px 0;border-bottom:1px solid var(--border);font-size:9px}.map-layer-row input{accent-color:#74c789}.map-layer-row i{width:6px;height:6px;border-radius:50%;background:#74c789}.map13-mode{display:grid;gap:6px;margin-top:16px}.map13-mode>span,.map13-legend>span{color:var(--muted);font-size:8px;font-weight:700;letter-spacing:.08em}.map13-mode button{padding:8px;border:1px solid var(--border);border-radius:7px;background:var(--panel2);color:var(--muted);text-align:left;font-size:9px}.map13-mode button.active{border-color:#456a54;color:#85d197}.map13-legend{margin-top:18px}.map13-legend p{display:flex;align-items:center;gap:8px;margin:9px 0;color:var(--muted);font-size:9px}.map13-legend i{width:8px;height:8px;border-radius:50%}.map13-legend .ok{background:#70c886}.map13-legend .warning{background:#d6b45c}.map13-legend .critical{background:#dc706d}.map13-legend .offline{background:#68717a}.map13-stage-panel{padding:0;overflow:hidden}.map13-toolbar{display:flex;justify-content:space-between;align-items:center;padding:15px 17px;border-bottom:1px solid var(--border)}.map13-toolbar>div:last-child{display:flex;align-items:center;gap:6px}.map13-toolbar b{min-width:45px;text-align:center;font-size:9px}.map13-stage{position:relative;height:590px;overflow:hidden;background:radial-gradient(circle at 1px 1px,rgba(255,255,255,.05) 1px,transparent 0);background-size:20px 20px;cursor:grab}.map13-stage.dragging{cursor:grabbing}.map13-canvas{position:absolute;inset:30px;transform-origin:center;transition:transform .16s ease}.map13-north{position:absolute;right:0;top:0;color:var(--muted);font-size:9px}.map13-service{height:42px;margin-bottom:8px;display:grid;place-items:center;border:1px solid #40505b;border-radius:8px;background:#1c252c;color:#88a3b5;font-size:8px;letter-spacing:.08em}.map13-greenhouse{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;height:455px}.map-zone{position:relative;display:flex;flex-direction:column;justify-content:space-between;padding:13px;border:1px solid #365844;border-radius:10px;background:linear-gradient(145deg,#1f3026,#18251d);color:var(--text);text-align:left;overflow:hidden;cursor:pointer;transition:.18s}.map-zone:hover,.map-zone.selected{transform:translateY(-2px);box-shadow:0 0 0 2px rgba(128,210,147,.16),0 15px 30px rgba(0,0,0,.2)}.map-zone.warning{border-color:#746636;background:linear-gradient(145deg,#342f1d,#272416)}.map-zone.critical{border-color:#7f4140;background:linear-gradient(145deg,#3a2222,#2b1a1a)}.zone-top{display:flex;justify-content:space-between}.zone-top b{font-size:11px}.zone-top i{width:7px;height:7px;border-radius:50%;background:#73cb88}.warning .zone-top i{background:#d6b45c}.critical .zone-top i{background:#dc706d;box-shadow:0 0 0 5px rgba(220,112,109,.12)}.zone-main strong{display:block;font-size:23px}.zone-main small,.zone-extra,.zone-note{color:var(--muted);font-size:8px}.zone-note{padding-top:7px;border-top:1px solid rgba(255,255,255,.08)}.zone-devices{display:flex;gap:6px}.zone-devices em{display:grid;place-items:center;width:22px;height:22px;border-radius:6px;background:rgba(255,255,255,.06);font-style:normal;font-size:10px}.zone-alarm{position:absolute;right:10px;bottom:10px;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#db716d;color:white;font-weight:800}.map13-pipes,.map13-cameras{position:absolute;inset:0;pointer-events:none}.map13-pipes span{position:absolute;left:5%;right:5%;height:3px;background:#3c8ca5;opacity:.75}.map13-pipes span:nth-child(1){top:32%}.map13-pipes span:nth-child(2){top:63%}.map13-pipes span:nth-child(3){left:50%;top:18%;bottom:4%;right:auto;width:3px;height:auto}.map13-cameras i{position:absolute;top:54px;padding:4px 6px;border:1px solid #536675;border-radius:5px;background:#1b242b;color:#91a7b6;font-size:7px;font-style:normal}.map13-footer{display:flex;justify-content:space-between;gap:10px;padding:10px 14px;border-top:1px solid var(--border);color:var(--muted);font-size:8px}.map13-details{position:sticky;top:10px}.zone-detail-head{display:flex;justify-content:space-between;gap:10px}.zone-detail-values{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:14px}.zone-detail-values>div{padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--panel2)}.zone-detail-values span{display:block;color:var(--muted);font-size:8px}.zone-detail-values strong{display:block;margin-top:4px;font-size:14px}.zone-detail-section{margin-top:15px}.zone-detail-section>span{display:block;margin-bottom:7px;color:var(--muted);font-size:8px;font-weight:700;letter-spacing:.08em}.zone-detail-section p{display:grid;grid-template-columns:80px 1fr 38px;gap:8px;align-items:center;margin:7px 0;font-size:8px}.zone-detail-section p>b{font-weight:500}.zone-detail-section p>i{height:5px;overflow:hidden;border-radius:999px;background:#252c33}.zone-detail-section p>i em{display:block;height:100%;background:#75c78a}.zone-detail-section p>strong{text-align:right}.strategy-mini{padding:10px;border:1px solid #405a49;border-radius:8px;background:#213329}.strategy-mini b,.strategy-mini small{display:block}.strategy-mini b{font-size:9px}.strategy-mini small{margin-top:4px;color:#8fd59d;font-size:8px}.zone-detail-section svg{width:100%;height:70px;background:var(--panel2);border-radius:8px}.zone-detail-section polyline{fill:none;stroke:#e28c65;stroke-width:3}.zone-detail-links{display:grid;grid-template-columns:1fr;gap:6px;margin-top:14px}.zone-detail-links a{padding:8px;border:1px solid var(--border);border-radius:7px;color:var(--text);text-decoration:none;font-size:8px;text-align:center}.hide-layer-co2 .layer-co2,.hide-layer-actuators .layer-actuators,.hide-layer-alarms .layer-alarms,.hide-layer-irrigation .layer-irrigation,.hide-layer-cameras .layer-cameras{display:none}.map13-stage[data-mode="temperature"] .map-zone:nth-child(1),.map13-stage[data-mode="temperature"] .map-zone:nth-child(7){background:#1f3440}.map13-stage[data-mode="temperature"] .map-zone:nth-child(2),.map13-stage[data-mode="temperature"] .map-zone:nth-child(3),.map13-stage[data-mode="temperature"] .map-zone:nth-child(4),.map13-stage[data-mode="temperature"] .map-zone:nth-child(5),.map13-stage[data-mode="temperature"] .map-zone:nth-child(9){background:#243725}.map13-stage[data-mode="temperature"] .map-zone:nth-child(6){background:#4a3b1c}.map13-stage[data-mode="temperature"] .map-zone:nth-child(8){background:#4a2422}
@media(max-width:1450px){.map13-layout{grid-template-columns:210px minmax(600px,1fr)}.map13-details{grid-column:1/-1;position:static}.map13-zone-card{display:grid;grid-template-columns:1fr 1fr;gap:15px}.zone-detail-head,.zone-detail-values{grid-column:1/-1}}@media(max-width:1000px){.map13-layout{grid-template-columns:1fr}.map13-layers{display:grid;grid-template-columns:repeat(2,1fr);gap:0 20px}.map13-kpis{grid-template-columns:repeat(3,1fr)}}@media(max-width:700px){.map13-header{display:block}.map13-actions{margin-top:12px}.map13-kpis{grid-template-columns:1fr 1fr}.map13-greenhouse{grid-template-columns:1fr 1fr;height:800px}.map13-stage{height:920px}.map13-zone-card{display:block}.map13-layers{display:block}.map13-footer{flex-direction:column}}

/* GreenControl v1.3 Alpha — livrarea 2/2 */
.map13-search{display:flex;gap:6px}.map13-search input{width:210px;padding:9px 11px;border:1px solid var(--border);border-radius:8px;background:var(--panel2);color:var(--text);font-size:10px;outline:none}.map13-search input:focus{border-color:#6fb986}.map13-search input.not-found{animation:mapShake .25s linear 2;border-color:#dc706d}.map13-actions .active{border-color:#68b57d;color:#8bd49d;background:rgba(104,181,125,.08)}
.map13-maintenance-help{display:none;margin:14px 0 4px;padding:10px;border:1px dashed #5e806a;border-radius:8px;background:rgba(89,130,100,.08)}.map13-maintenance-help b,.map13-maintenance-help small{display:block}.map13-maintenance-help b{font-size:9px}.map13-maintenance-help small{margin-top:4px;color:var(--muted);font-size:8px;line-height:1.4}.maintenance-mode .map13-maintenance-help{display:block}
.zone-maintenance{display:none;margin-top:6px;padding:6px 7px;border:1px dashed rgba(140,203,157,.45);border-radius:6px;background:rgba(20,32,24,.65)}.zone-maintenance b,.zone-maintenance small{display:block}.zone-maintenance b{font-size:8px;color:#99d8a8}.zone-maintenance small{margin-top:2px;color:#8ca196;font-size:6.5px}.maintenance-mode .zone-maintenance{display:block}.maintenance-mode .map-zone{min-height:150px}
.map13-airflow{position:absolute;inset:50px 20px 20px;pointer-events:none}.map13-airflow span{position:absolute;width:90px;height:2px;background:linear-gradient(90deg,transparent,#7cc7d9,transparent);opacity:.7;animation:airPulse 2s linear infinite}.map13-airflow span:after{content:'›';position:absolute;right:0;top:-8px;color:#7cc7d9;font-size:14px}.map13-airflow span:nth-child(1){left:12%;top:25%}.map13-airflow span:nth-child(2){left:45%;top:55%;animation-delay:.7s}.map13-airflow span:nth-child(3){left:73%;top:78%;animation-delay:1.3s}
.camera-preview{position:relative;width:100%;height:118px;overflow:hidden;border:1px solid #465764;border-radius:9px;background:linear-gradient(135deg,#17212a,#263744);color:#dbe8ef;text-align:left;cursor:pointer;transition:.2s}.camera-preview:before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 24px,rgba(255,255,255,.025) 25px)}.camera-preview span{position:absolute;right:8px;top:8px;padding:3px 6px;border-radius:999px;background:#bd4744;font-size:7px;font-weight:800}.camera-preview b{position:absolute;left:12px;bottom:30px;font-size:13px}.camera-preview small{position:absolute;left:12px;bottom:12px;color:#9fb0ba;font-size:7px}.camera-preview.expanded{position:fixed;z-index:1000;inset:8vh 8vw;width:auto;height:auto;box-shadow:0 30px 100px rgba(0,0,0,.65)}
.maintenance-panel{display:none}.maintenance-mode .maintenance-panel{display:block}.maintenance-panel dl{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0}.maintenance-panel dl>div{padding:8px;border:1px solid var(--border);border-radius:7px;background:var(--panel2)}.maintenance-panel dt{color:var(--muted);font-size:7px}.maintenance-panel dd{margin:3px 0 0;font-size:9px;font-weight:700}
.map-zone.search-hit{animation:searchPulse .7s ease 3;z-index:4}.hide-layer-airflow .layer-airflow,.hide-layer-waterflow .layer-waterflow{display:none}.hide-layer-temp .zone-main strong,.hide-layer-humidity .zone-main small{opacity:.15}.map13-stage[data-mode="humidity"] .map-zone:nth-child(1),.map13-stage[data-mode="humidity"] .map-zone:nth-child(4),.map13-stage[data-mode="humidity"] .map-zone:nth-child(7),.map13-stage[data-mode="humidity"] .map-zone:nth-child(9){background:#203746}.map13-stage[data-mode="humidity"] .map-zone:nth-child(6),.map13-stage[data-mode="humidity"] .map-zone:nth-child(8){background:#3c3221}
.status-pill.danger{background:rgba(220,112,109,.12);border-color:#8b4846;color:#ee8d89}
@keyframes airPulse{0%{transform:translateX(-15px);opacity:.15}50%{opacity:.85}100%{transform:translateX(20px);opacity:.15}}@keyframes searchPulse{0%,100%{box-shadow:0 0 0 0 rgba(119,210,143,0)}50%{box-shadow:0 0 0 7px rgba(119,210,143,.32)}}@keyframes mapShake{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
@media(max-width:900px){.map13-actions{flex-wrap:wrap}.map13-search{width:100%}.map13-search input{flex:1;width:auto}}

/* GreenControl v1.4.1 Alpha — Digital Twin */
.dt-header{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:14px}.dt-header h2{margin:4px 0 5px;font-size:22px}.dt-header p{margin:0;color:var(--muted);font-size:10px}.dt-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.dt-actions .active{border-color:#70bd86;background:rgba(112,189,134,.09);color:#91d5a3}.dt-kpis{display:grid;grid-template-columns:repeat(5,1fr);padding:0;margin-bottom:14px;overflow:hidden}.dt-kpis>div{padding:14px 16px;border-right:1px solid var(--border)}.dt-kpis>div:last-child{border-right:0}.dt-kpis span,.dt-kpis small{display:block;color:var(--muted);font-size:8px}.dt-kpis strong{display:block;margin:4px 0;font-size:16px}.ok-text{color:#83d498}
.dt-layout{display:grid;grid-template-columns:220px minmax(680px,1fr) 300px;gap:14px;align-items:start}.dt-controls,.dt-inspector{position:sticky;top:10px}.dt-toggle-row{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.05);font-size:9px;cursor:pointer}.dt-toggle-row input{accent-color:#70bd86}.dt-toggle-row i{width:7px;height:7px;border-radius:50%;background:#70bd86}.dt-speed,.dt-scenarios,.dt-legend{margin-top:18px}.dt-speed>span,.dt-scenarios>span,.dt-legend>span{display:block;margin-bottom:9px;color:var(--muted);font-size:8px;font-weight:700;letter-spacing:.08em}.dt-speed input{width:100%;accent-color:#70bd86}.dt-speed small{display:block;margin-top:6px;color:var(--muted);font-size:8px}.dt-scenarios{display:grid;grid-template-columns:1fr;gap:6px}.dt-scenarios>span{grid-column:1/-1}.dt-scenarios button{padding:8px 9px;border:1px solid var(--border);border-radius:7px;background:var(--panel2);color:var(--text);font-size:8px;text-align:left;cursor:pointer}.dt-scenarios button.active{border-color:#6cac7d;background:#203329}.dt-legend p{display:flex;align-items:center;gap:7px;margin:7px 0;color:var(--muted);font-size:8px}.dt-legend i{width:8px;height:8px;border-radius:50%}.dt-legend .ok{background:#73cb88}.dt-legend .warning{background:#d6b45c}.dt-legend .critical{background:#dc706d}
.dt-stage-panel{overflow:hidden;padding:0}.dt-stage-toolbar{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--border)}.dt-stage-toolbar h2{margin:3px 0 0;font-size:15px}.dt-clock{text-align:right}.dt-clock span{display:block;color:var(--muted);font-size:7px}.dt-clock strong{font-size:13px;font-variant-numeric:tabular-nums}.dt-stage{position:relative;height:650px;overflow:hidden;background:radial-gradient(circle at 75% 8%,rgba(243,188,91,.12),transparent 24%),linear-gradient(#19242a 0 18%,#16251d 18% 100%)}.dt-stage.night{background:radial-gradient(circle at 75% 8%,rgba(115,145,205,.12),transparent 20%),linear-gradient(#101822 0 18%,#14201a 18% 100%)}.dt-weather{position:absolute;left:18px;top:14px;z-index:3;padding:8px 10px;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:rgba(15,23,28,.68);backdrop-filter:blur(8px)}.dt-weather span,.dt-weather small{display:block;color:#9aaab4;font-size:7px}.dt-weather strong{display:block;margin:2px 0;font-size:14px}.dt-sun{position:absolute;right:30px;top:14px;font-size:30px;filter:drop-shadow(0 0 12px rgba(255,198,80,.35))}.dt-building{position:absolute;left:30px;right:30px;top:95px;bottom:30px}.dt-roof{display:grid;grid-template-columns:repeat(9,1fr);gap:5px;height:48px;perspective:500px}.dt-roof-window{position:relative;border:1px solid #51626d;border-bottom:0;border-radius:6px 6px 0 0;background:linear-gradient(145deg,rgba(106,154,174,.2),rgba(45,69,78,.55));transform-origin:bottom;overflow:hidden}.dt-roof-window span{position:absolute;inset:7px;border-top:2px solid #7fa4b2;transform:rotateX(0deg);transition:.35s}.dt-service-line{display:grid;grid-template-columns:150px 1fr 130px 100px;gap:10px;align-items:center;height:60px;padding:8px 10px;border:1px solid #44545e;background:#1b252b}.dt-pump-station,.dt-boiler,.dt-plc{display:grid;grid-template-columns:auto 1fr;gap:3px 8px;align-items:center}.dt-pump-station b,.dt-boiler b,.dt-plc b{font-size:8px}.dt-pump-station small,.dt-boiler small,.dt-plc small{grid-column:1/-1;color:#8fa1ab;font-size:7px}.pump-wheel{width:24px;height:24px;border:3px solid #56879b;border-top-color:#8ad1e5;border-radius:50%}.dt-pump-active .pump-wheel{animation:dtSpin 1s linear infinite}.dt-main-pipe{height:8px;border:1px solid #386d7d;border-radius:999px;background:#1b3944;overflow:hidden}.dt-main-pipe span{display:block;width:45%;height:100%;background:linear-gradient(90deg,transparent,#61bfd7,transparent);animation:dtWater 1.2s linear infinite}.dt-boiler>span{font-size:24px;color:#d98b5e;animation:dtHeat 1.4s ease-in-out infinite}.dt-plc>span{width:10px;height:10px;border-radius:50%;background:#6bce82;box-shadow:0 0 0 5px rgba(107,206,130,.08)}
.dt-zones{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;height:calc(100% - 108px);padding-top:7px}.dt-zone{--fan-speed:1.5s;--window-open:30%;--water-level:0%;--mist-opacity:0;--light-level:.4;--heat-level:0;position:relative;overflow:hidden;min-height:135px;padding:10px;border:1px solid #355744;border-radius:8px;background:linear-gradient(145deg,#213227,#18251d);color:var(--text);text-align:left;cursor:pointer;transition:.2s}.dt-zone:hover,.dt-zone.selected{transform:translateY(-2px);box-shadow:0 0 0 2px rgba(126,207,145,.15),0 12px 28px rgba(0,0,0,.22)}.dt-zone.warning{border-color:#766638;background:linear-gradient(145deg,#352f1d,#272318)}.dt-zone.critical{border-color:#834442;background:linear-gradient(145deg,#3b2222,#2b1919)}.dt-zone-head{display:flex;justify-content:space-between;position:relative;z-index:4}.dt-zone-head b{font-size:10px}.dt-zone-head i{width:7px;height:7px;border-radius:50%;background:#73cb88}.dt-zone.warning .dt-zone-head i{background:#d6b45c}.dt-zone.critical .dt-zone-head i{background:#dc706d;box-shadow:0 0 0 5px rgba(220,112,109,.12)}.dt-zone-values{position:relative;z-index:4;display:block;margin-top:10px}.dt-zone-values strong{display:block;font-size:20px}.dt-zone-values small{color:#a7b4ac;font-size:7px}.dt-device-row{position:absolute;z-index:4;left:9px;right:9px;bottom:9px;display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.dt-device-row>span{display:grid;place-items:center;gap:2px;padding:5px 2px;border:1px solid rgba(255,255,255,.07);border-radius:6px;background:rgba(10,18,14,.48)}.dt-device-row small{font-size:6px;color:#a5b2aa}.dt-fan i{width:18px;height:18px;border:2px solid #7b9099;border-radius:50%;position:relative}.dt-fan i:before,.dt-fan i:after{content:'';position:absolute;left:7px;top:1px;width:2px;height:14px;border-radius:3px;background:#9bb4be}.dt-fan i:after{transform:rotate(90deg)}.fan-running .dt-fan i{animation:dtSpin var(--fan-speed) linear infinite}.dt-window-mini i{width:20px;height:14px;border:1px solid #7a9baa;position:relative;overflow:hidden}.dt-window-mini i:before{content:'';position:absolute;left:1px;right:1px;bottom:1px;height:var(--window-open);background:#7ab2c7;opacity:.65;transition:.3s}.dt-drip i{width:12px;height:16px;background:#5da7c0;clip-path:polygon(50% 0,100% 65%,82% 100%,18% 100%,0 65%)}.dt-lamp i{width:16px;height:16px;border-radius:50%;background:rgba(248,213,111,var(--light-level));box-shadow:0 0 calc(16px * var(--light-level)) rgba(248,213,111,.7)}.dt-air-stream{position:absolute;inset:42px 5px 45px;z-index:2;pointer-events:none}.dt-air-stream i{position:absolute;left:-25%;width:55%;height:2px;background:linear-gradient(90deg,transparent,#7bc5d7,transparent);opacity:.65;animation:dtAir 1.4s linear infinite}.dt-air-stream i:nth-child(1){top:20%}.dt-air-stream i:nth-child(2){top:50%;animation-delay:.4s}.dt-air-stream i:nth-child(3){top:80%;animation-delay:.8s}.dt-mist-cloud{position:absolute;inset:30px 0 40px;opacity:var(--mist-opacity);pointer-events:none}.dt-mist-cloud i{position:absolute;width:35px;height:16px;border-radius:50%;background:rgba(210,235,240,.6);filter:blur(5px);animation:dtMist 2.2s ease-in-out infinite}.dt-mist-cloud i:nth-child(1){left:15%;top:25%}.dt-mist-cloud i:nth-child(2){left:48%;top:48%;animation-delay:.5s}.dt-mist-cloud i:nth-child(3){left:68%;top:15%;animation-delay:1s}.dt-heat-strip{position:absolute;left:0;right:0;bottom:38px;height:14px;background:linear-gradient(transparent,rgba(231,112,61,var(--heat-level)));pointer-events:none}.dt-water-line{position:absolute;left:5px;right:5px;bottom:35px;height:3px;background:#235268;opacity:0}.water-running .dt-water-line{opacity:1}.dt-water-line i{display:block;width:35%;height:100%;background:linear-gradient(90deg,transparent,#6bc7e1,transparent);animation:dtWater .8s linear infinite}.dt-alarm-beacon{display:none;position:absolute;right:8px;top:30px;z-index:5;width:20px;height:20px;border-radius:50%;background:#d95f5b;color:white;font-size:11px;font-weight:800;text-align:center;line-height:20px}.dt-zone.critical .dt-alarm-beacon{display:block;animation:dtBeacon .8s ease-in-out infinite}.hide-air .dt-air-stream,.hide-water .dt-water-line,.hide-fans .dt-fan,.hide-windows .dt-window-mini,.hide-heating .dt-heat-strip,.hide-mist .dt-mist-cloud,.hide-lights .dt-lamp,.hide-alarms .dt-alarm-beacon{display:none!important}.dt-stage-footer{display:flex;justify-content:space-between;gap:12px;padding:10px 14px;border-top:1px solid var(--border);color:var(--muted);font-size:8px}
.dt-inspector-head{display:flex;justify-content:space-between;gap:10px}.dt-inspector-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:13px}.dt-inspector-grid>div{padding:9px;border:1px solid var(--border);border-radius:7px;background:var(--panel2)}.dt-inspector-grid span{display:block;color:var(--muted);font-size:7px}.dt-inspector-grid strong{display:block;margin-top:3px;font-size:12px}.dt-command-list{margin-top:16px}.dt-command-list>span,.dt-strategy-card>span,.dt-event-log>span{display:block;margin-bottom:8px;color:var(--muted);font-size:8px;font-weight:700;letter-spacing:.08em}.dt-command-list label{display:grid;grid-template-columns:1fr auto;gap:3px 8px;margin:9px 0;font-size:8px}.dt-command-list input{grid-column:1/-1;width:100%;accent-color:#74c78a}.dt-command-list b{font-size:8px}.dt-strategy-card{margin-top:16px;padding:10px;border:1px solid #405b49;border-radius:8px;background:#213329}.dt-strategy-card b,.dt-strategy-card small{display:block}.dt-strategy-card b{font-size:9px}.dt-strategy-card small{margin-top:5px;color:#93d4a2;font-size:7px;line-height:1.4}.dt-event-log{margin-top:16px}.dt-event-log ul{margin:0;padding:0;list-style:none}.dt-event-log li{padding:7px 0;border-bottom:1px solid rgba(255,255,255,.05);color:#aeb9b2;font-size:7px}.dt-event-log li b{margin-right:4px;color:#dce7df;font-variant-numeric:tabular-nums}
@keyframes dtSpin{to{transform:rotate(360deg)}}@keyframes dtWater{from{transform:translateX(-100%)}to{transform:translateX(280%)}}@keyframes dtAir{from{transform:translateX(-20%);opacity:.1}50%{opacity:.8}to{transform:translateX(250%);opacity:.1}}@keyframes dtMist{50%{transform:translateY(-8px) scale(1.15)}}@keyframes dtHeat{50%{filter:drop-shadow(0 0 8px rgba(232,117,66,.8));transform:scale(1.08)}}@keyframes dtBeacon{50%{box-shadow:0 0 0 8px rgba(217,95,91,0);transform:scale(1.12)}}
@media(max-width:1450px){.dt-layout{grid-template-columns:210px minmax(620px,1fr)}.dt-inspector{grid-column:1/-1;position:static;display:grid;grid-template-columns:1fr 1fr;gap:14px}.dt-inspector-head,.dt-inspector-grid{grid-column:1/-1}}@media(max-width:1000px){.dt-layout{grid-template-columns:1fr}.dt-controls{position:static}.dt-kpis{grid-template-columns:repeat(3,1fr)}.dt-zones{grid-template-columns:repeat(3,1fr)}}@media(max-width:720px){.dt-header{display:block}.dt-actions{justify-content:flex-start;margin-top:12px}.dt-kpis{grid-template-columns:1fr 1fr}.dt-stage{height:980px}.dt-building{left:12px;right:12px}.dt-zones{grid-template-columns:1fr 1fr}.dt-service-line{grid-template-columns:1fr 1fr;height:auto}.dt-main-pipe{grid-column:1/-1}.dt-stage-footer{flex-direction:column}.dt-inspector{display:block}}

/* =========================================================
   GreenControl v1.5 Design System — approved visual identity
   ========================================================= */
html[data-theme="light"]{
 --bg:#f5f7fa;--sidebar:#fff;--panel:#fff;--panel2:#f8fafc;--border:#e3e9ef;
 --text:#17202d;--muted:#697586;--green:#27a844;--green-dark:#eaf7ed;
 --blue:#3186ed;--yellow:#f4ad16;--red:#ef5b5b;--shadow:0 7px 24px rgba(32,52,74,.07)
}
html[data-theme="dark"]{
 --bg:#111923;--sidebar:#161f2b;--panel:#1a2532;--panel2:#202c3a;--border:#304052;
 --text:#f6f8fb;--muted:#9dabbc;--green:#49be62;--green-dark:#203d2a;
 --blue:#62a5ff;--yellow:#f7c14b;--red:#ff7373;--shadow:0 8px 24px rgba(0,0,0,.22)
}
body{background:var(--bg);font-size:13px}.app-shell{grid-template-columns:220px minmax(0,1fr)}
.sidebar{background:var(--sidebar);padding:16px 10px;border-right:1px solid var(--border)}
.brand{padding:0 8px 25px;gap:10px}.brand-mark{width:38px;height:38px;border-radius:12px;background:#e8f7ec;font-size:21px}
.brand strong{font-size:17px;line-height:18px;color:#148532}.brand span{font-size:11px;color:var(--muted)}.brand small{display:none}
.nav-list{gap:3px}.nav-list a{padding:10px 12px;border-radius:9px;font-size:12px;color:var(--text);gap:11px}
.nav-list a:hover,.nav-list a.active{background:#edf8ef;color:#188634}.nav-icon{width:17px;font-size:15px}
html[data-theme="dark"] .nav-list a:hover,html[data-theme="dark"] .nav-list a.active{background:#203d2a;color:#70d783}
.sidebar-bottom{padding:8px 4px}.main-content{padding:0 22px 24px;background:var(--bg)}
.topbar{height:74px;border:0;background:transparent}.title-wrap h1{font-size:20px}.online-text{font-size:11px}.top-meta{gap:13px;font-size:11px}.avatar{background:#ffd65a;border:0;color:#4d3b00;font-weight:800}
.gc-page{max-width:1600px;margin:0 auto}.gc-card,.gc-kpi-card{background:var(--panel);border:1px solid var(--border);border-radius:13px;box-shadow:var(--shadow)}
.gc-card{padding:16px}.gc-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:15px}.gc-card-head h2{font-size:13px;margin:0;color:var(--text)}
.gc-eyebrow{display:block;color:var(--muted);font-weight:700;font-size:8px;letter-spacing:.12em;margin-bottom:4px}
.gc-kpi-grid{display:grid;gap:12px;margin:8px 0 14px}.gc-kpi-grid--six{grid-template-columns:repeat(6,minmax(0,1fr))}.gc-kpi-card{position:relative;overflow:hidden;min-height:145px;padding:14px 15px 9px}
.gc-kpi-title{display:flex;align-items:center;gap:9px;font-weight:700;font-size:12px}.gc-icon{width:31px;height:31px;border-radius:8px;display:grid;place-items:center;font-style:normal;font-weight:800;font-size:13px}
.soft-orange{background:#fff3df;color:#f28b1b}.soft-blue{background:#eaf3ff;color:#287fe8}.soft-teal{background:#e7f9f7;color:#18a9a1}.soft-violet{background:#f2ecff;color:#7656d9}.soft-yellow{background:#fff6df;color:#eaa50d}.soft-green{background:#eaf8ec;color:#2baa48}
.gc-kpi-value{font-size:27px;font-weight:800;margin:11px 0 12px;letter-spacing:-.03em}.gc-kpi-value small{font-size:11px;margin-left:5px;font-weight:600;color:var(--text)}
.gc-kpi-meta{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:10px}.gc-kpi-meta b{font-weight:700}.gc-kpi-meta .warn,.warn{color:#f07f1b}.gc-kpi-meta .good,.good{color:#16a57a}.two-meta{justify-content:space-between}
.gc-spark{position:absolute;left:12px;right:12px;bottom:6px;width:calc(100% - 24px);height:25px;fill:none;stroke:currentColor;stroke-width:1.6}.accent-orange .gc-spark{color:#ff8119}.accent-blue .gc-spark{color:#2782ff}.accent-teal .gc-spark{color:#14b5ad}.accent-violet .gc-spark{color:#6f55ed}
.gc-badge{padding:6px 10px;border-radius:7px;font-size:9px;font-weight:800}.gc-badge.success{background:#e9f8ec;color:#218f3b}.gc-link-button{color:var(--text);background:var(--panel2);border:1px solid var(--border);border-radius:7px;padding:6px 10px;text-decoration:none;font-size:9px;font-weight:700}
.gc-climate-primary{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(330px,.85fr);gap:12px;margin-bottom:12px}.gc-system-now{min-height:190px}.gc-actuator-row{display:grid;grid-template-columns:repeat(5,1fr)}
.gc-actuator{text-align:left;padding:3px 16px 0;border-left:1px solid var(--border)}.gc-actuator:first-child{border-left:0}.gc-actuator-icon{width:36px;height:36px;border-radius:9px;background:var(--panel2);display:grid;place-items:center;font-size:18px;margin-bottom:10px}.gc-actuator span:not(.gc-actuator-icon),.gc-actuator strong{display:block}.gc-actuator>span:nth-child(2){font-size:10px;color:var(--muted)}.gc-actuator strong{font-size:12px;margin-top:8px}.gc-actuator.active strong{color:#22a240}.gc-actuator i{display:block;height:3px;background:#e8edf2;border-radius:5px;margin-top:12px}.gc-actuator i b{display:block;height:100%;background:#2eb34b;border-radius:5px}
.gc-decision-stack{display:grid;gap:12px}.gc-decision-card{min-height:89px}.gc-decision-card .gc-card-head{margin-bottom:5px}.gc-decision-card p{margin:4px 0;color:var(--text);font-size:10px;line-height:1.55}.gc-round-icon{width:39px;height:39px;border-radius:50%;display:grid;place-items:center;font-size:18px}
.gc-climate-middle{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(390px,.9fr);gap:12px;margin-bottom:12px}.gc-chart-card{min-height:335px}.gc-range{display:flex;background:var(--panel2);border:1px solid var(--border);border-radius:7px;overflow:hidden}.gc-range button{border:0;background:transparent;color:var(--muted);padding:6px 12px;font-size:9px}.gc-range button.active{background:var(--panel);color:var(--text);font-weight:800}.gc-chart-legend{display:flex;gap:18px;font-size:9px;margin:-3px 0 8px}.gc-chart-legend .temp{color:#f28322}.gc-chart-legend .hum{color:#287fe8}.gc-chart-legend .vpd{color:#16aaa2}.gc-chart-card canvas{width:100%;height:245px}
.gc-zone-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.gc-zone-tile{border:1px solid var(--border);border-radius:9px;padding:11px;background:var(--panel2)}.gc-zone-tile>div{display:flex;justify-content:space-between;font-size:9px}.gc-zone-tile>div span{color:#25a64a}.gc-zone-tile.warning>div span{color:#f1a915}.gc-zone-tile strong,.gc-zone-tile small{display:block}.gc-zone-tile strong{font-size:12px;margin:7px 0 3px}.gc-zone-tile small{font-size:9px;color:var(--muted)}
.gc-bottom-grid{display:grid;grid-template-columns:1.05fr 1fr 1.05fr;gap:12px}.gc-weather-row{display:grid;grid-template-columns:repeat(6,1fr)}.gc-weather-row>div{text-align:center;border-left:1px solid var(--border)}.gc-weather-row>div:first-child{border-left:0}.gc-weather-row span,.gc-weather-row strong,.gc-weather-row small{display:block}.gc-weather-row span,.gc-weather-row small{color:var(--muted);font-size:8px}.gc-weather-row b{display:block;font-size:22px;margin:7px 0}.gc-weather-row strong{font-size:11px;margin-bottom:6px}
.gc-insight-list{list-style:none;padding:0;margin:0}.gc-insight-list li{position:relative;padding:7px 0 7px 22px;font-size:9px}.gc-insight-list li:before{position:absolute;left:0;font-weight:900}.gc-insight-list li.ok:before{content:'✓';color:#24a74b}.gc-insight-list li.warn:before{content:'△';color:#efa81a}
.gc-alert-list>div{display:grid;grid-template-columns:18px 1fr auto;align-items:center;gap:7px;padding:9px 0;border-top:1px solid var(--border);font-size:9px}.gc-alert-list>div:first-child{border-top:0}.gc-alert-list p{margin:0}.gc-alert-list time{color:var(--muted)}.gc-alert-list .warning span{color:#efa81a}.gc-alert-list .info span{color:#2d83e7}.gc-alert-list .success span{color:#28a94b}
@media(max-width:1350px){.gc-kpi-grid--six{grid-template-columns:repeat(3,1fr)}.gc-bottom-grid{grid-template-columns:1fr 1fr}.gc-bottom-grid>*:last-child{grid-column:1/-1}}
@media(max-width:1050px){.gc-climate-primary,.gc-climate-middle{grid-template-columns:1fr}.gc-bottom-grid{grid-template-columns:1fr}.gc-bottom-grid>*:last-child{grid-column:auto}.gc-actuator-row{grid-template-columns:repeat(3,1fr);gap:15px}.gc-actuator{border-left:0;border-top:1px solid var(--border);padding-top:12px}.gc-zone-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.gc-kpi-grid--six{grid-template-columns:1fr 1fr}.gc-zone-grid{grid-template-columns:1fr 1fr}.gc-actuator-row{grid-template-columns:1fr 1fr}.gc-weather-row{grid-template-columns:repeat(3,1fr);row-gap:15px}}

/* =========================================================
   GreenControl v1.6 — approved white UI modules
   ========================================================= */
.title-wrap{display:flex;align-items:center;gap:13px}.title-wrap>div{display:block}.title-wrap h1{margin:0}.page-subtitle{display:block;margin-top:4px;color:var(--muted);font-size:10px}.mobile-menu{border:0;background:transparent;color:var(--text);font-size:19px;cursor:pointer}
.module-page{padding-top:8px}.module-kpis{display:grid;gap:12px;margin-bottom:12px}.module-kpis--six{grid-template-columns:repeat(6,minmax(0,1fr))}.module-kpis--eight{grid-template-columns:repeat(8,minmax(0,1fr))}
.module-kpi{position:relative;min-width:0;min-height:126px;padding:14px;overflow:hidden;background:var(--panel);border:1px solid var(--border);border-radius:13px;box-shadow:var(--shadow)}
.module-kpi.compact{min-height:119px;padding:12px}.module-kpi-title{display:flex;align-items:center;gap:8px;white-space:nowrap}.module-kpi-title i{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;border-radius:8px;background:#eaf7ed;color:#24a447;font-style:normal}.accent-blue .module-kpi-title i{background:#eaf3ff;color:#3186ed}.accent-teal .module-kpi-title i{background:#e7f9f7;color:#18aaa3}.accent-violet .module-kpi-title i{background:#f2ecff;color:#775be0}.accent-orange .module-kpi-title i{background:#fff4e2;color:#ed9716}.accent-pink .module-kpi-title i{background:#fdeafb;color:#d757c8}
.module-kpi-title b{overflow:hidden;text-overflow:ellipsis;font-size:10px}.module-kpi>strong{display:block;margin:10px 0 8px;font-size:23px;letter-spacing:-.03em}.module-kpi>strong small{font-size:9px;font-weight:600}.module-kpi-foot{display:flex;justify-content:space-between;gap:5px;color:var(--muted);font-size:8px}.module-kpi-foot b{color:#25a449}.module-kpi>svg{position:absolute;left:12px;right:12px;bottom:6px;width:calc(100% - 24px);height:20px;fill:none;stroke:#27a844;stroke-width:1.4}.accent-blue>svg{stroke:#3186ed}.accent-teal>svg{stroke:#18aaa3}.accent-violet>svg{stroke:#775be0}
.gauge-card{display:flex;flex-direction:column}.mini-gauge{--color:#ff8249;position:relative;width:84px;height:47px;margin:18px auto 0;overflow:hidden}.mini-gauge:before{content:"";position:absolute;inset:0;border-radius:84px 84px 0 0;background:conic-gradient(from 270deg at 50% 100%,var(--color) calc(var(--value)*.5%),#e7ebef 0 50%,transparent 0)}.mini-gauge:after{content:"";position:absolute;left:12px;right:12px;top:12px;height:35px;border-radius:70px 70px 0 0;background:var(--panel)}.mini-gauge span{position:absolute;z-index:2;left:0;right:0;bottom:0;text-align:center;font-size:18px;font-weight:800}.mini-gauge small{font-size:9px}.mini-gauge.yellow{--color:#f2b21d}
.module-main-grid{display:grid;gap:12px;margin-bottom:12px}.lighting-main-grid{grid-template-columns:minmax(0,1.65fr) minmax(310px,.75fr) 240px}.module-chart-card{min-height:330px}.chart-key{display:flex;gap:16px;margin:-4px 0 8px;font-size:8px}.chart-key .green{color:#23a548}.chart-key .blue{color:#3186ed}.chart-key .orange{color:#ff8127}.chart-key .violet{color:#7458df}.chart-key .teal{color:#1baaa2}
.line-chart{width:100%;height:245px}.line-chart .grid{fill:none;stroke:#e9edf1;stroke-width:1}.line-chart .chart-line{fill:none;stroke-width:2}.line-chart .green{stroke:#25a447}.line-chart .blue{stroke:#3186ed}.line-chart .orange{stroke:#ff8127}.line-chart .violet{stroke:#775be0}.line-chart .teal{stroke:#1baaa2}.line-chart .axis{fill:var(--muted);font-size:8px}
.program-card{text-align:center}.program-card .gc-card-head{text-align:left}.schedule-labels{display:flex;justify-content:space-between;gap:8px;margin-top:25px}.schedule-labels span{display:flex;flex-direction:column;gap:3px;font-size:15px}.schedule-labels b{font-size:9px}.schedule-labels small{font-size:7px;color:var(--muted)}.schedule-track{position:relative;height:7px;margin:19px 14px;background:#e5e9ed;border-radius:8px}.schedule-track i{position:absolute;left:18%;right:18%;top:0;height:100%;background:#2da94b;border-radius:8px}.schedule-track:before,.schedule-track:after{content:"";position:absolute;top:-3px;width:3px;height:13px;background:#2da94b}.schedule-track:before{left:18%}.schedule-track:after{right:18%}.schedule-total{display:block;margin-top:18px;font-size:14px}.program-card>small{color:var(--muted);font-size:8px}.schedule-period{margin-top:17px;padding-top:12px;border-top:1px solid var(--border);font-size:8px;line-height:1.7}.schedule-period b{color:#258f3d}
.estimate-card{text-align:center}.estimate-card .gc-card-head{text-align:left}.big-gauge{position:relative;width:145px;height:82px;margin:24px auto 10px;overflow:hidden}.big-gauge:before{content:"";position:absolute;inset:0;border-radius:145px 145px 0 0;background:conic-gradient(from 270deg at 50% 100%,#269e43 calc(var(--value)*.5%),#e5e9ed 0 50%,transparent 0)}.big-gauge:after{content:"";position:absolute;left:15px;right:15px;top:15px;height:67px;border-radius:120px 120px 0 0;background:var(--panel)}.big-gauge span{position:absolute;z-index:2;left:0;right:0;bottom:0}.big-gauge b,.big-gauge small{display:block}.big-gauge b{font-size:25px}.big-gauge small{font-size:8px}.estimate-card>strong{font-size:10px;color:#268f3f}.estimate-card>p{margin:5px 0;font-size:9px}
.module-bottom-grid{display:grid;gap:12px}.lighting-bottom{grid-template-columns:1.25fr .8fr .85fr 1.05fr}.compact-zone-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.compact-zone-grid>div{position:relative;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--panel2)}.compact-zone-grid b,.compact-zone-grid strong,.compact-zone-grid em{display:block}.compact-zone-grid b{font-size:8px}.compact-zone-grid>div>span{position:absolute;right:9px;top:8px}.compact-zone-grid .ok{color:#25a447}.compact-zone-grid .warn{color:#efa71a}.compact-zone-grid strong{margin-top:7px;font-size:10px}.compact-zone-grid strong small{font-size:7px;font-weight:500}.compact-zone-grid em{margin-top:4px;color:var(--muted);font-size:7px;font-style:normal}
.stats-list{display:grid;gap:10px;margin:0}.stats-list>div{display:flex;justify-content:space-between;gap:14px}.stats-list dt{color:var(--muted);font-size:8px}.stats-list dd{margin:0;font-size:8px;font-weight:700}
.gc-insight-list small{color:#2aa248}
.irrigation-workspace{display:grid;grid-template-columns:1.35fr 1.05fr .48fr .7fr .68fr;gap:12px;margin-bottom:12px}.irrigation-program{grid-column:span 1}.irrigation-chart{grid-column:span 1}.irrigation-program,.irrigation-chart,.day-stats,.reserves,.irrigation-alerts{min-height:315px}.irrigation-program table{width:100%;border-collapse:collapse;font-size:7px}.irrigation-program th,.irrigation-program td{padding:9px 4px;text-align:left;border-bottom:1px solid var(--border)}.irrigation-program th{color:var(--muted);font-weight:600}.table-status{padding:3px 6px;border-radius:8px;font-size:6px}.table-status.done{background:#e9f7ed;color:#269640}.table-status.waiting{background:#edf4ff;color:#3186ed}.irrigation-chart .line-chart{height:235px}
.reserve-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.reserve-grid>div{padding:9px;border:1px solid var(--border);border-radius:8px}.reserve-grid b,.reserve-grid strong,.reserve-grid small{display:block}.reserve-grid b{font-size:7px}.reserve-grid strong{margin:6px 0;font-size:10px}.reserve-grid i{display:block;height:5px;background:#edf0f3;border-radius:5px}.reserve-grid i span{display:block;height:100%;border-radius:5px}.reserve-grid .blue{background:#3186ed}.reserve-grid .green{background:#25a447}.reserve-grid .violet{background:#775be0}.reserve-grid .orange{background:#efa61b}.reserve-grid small{margin-top:5px;color:var(--muted);font-size:6px}
.irrigation-footer{display:grid;grid-template-columns:1.65fr .85fr;gap:16px}.irrigation-footer .compact-zone-grid{grid-template-columns:repeat(6,1fr)}.recipe-card{padding-left:16px;border-left:1px solid var(--border)}.recipe-values{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.recipe-values span{text-align:center}.recipe-values small,.recipe-values b{display:block}.recipe-values small{color:var(--muted);font-size:7px}.recipe-values b{margin-top:7px;font-size:7px}
@media(max-width:1450px){.module-kpis--eight{grid-template-columns:repeat(4,1fr)}.lighting-main-grid{grid-template-columns:1.4fr .8fr}.estimate-card{grid-column:1/-1}.lighting-bottom{grid-template-columns:1fr 1fr}.irrigation-workspace{grid-template-columns:1fr 1fr 1fr}.irrigation-alerts{grid-column:span 2}}
@media(max-width:1050px){.module-kpis--six{grid-template-columns:repeat(3,1fr)}.lighting-main-grid{grid-template-columns:1fr}.estimate-card{grid-column:auto}.irrigation-workspace{grid-template-columns:1fr 1fr}.irrigation-alerts{grid-column:auto}.irrigation-footer{grid-template-columns:1fr}.recipe-card{padding:16px 0 0;border-left:0;border-top:1px solid var(--border)}.irrigation-footer .compact-zone-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){.module-kpis--six,.module-kpis--eight{grid-template-columns:1fr 1fr}.lighting-bottom,.irrigation-workspace{grid-template-columns:1fr}.compact-zone-grid,.irrigation-footer .compact-zone-grid{grid-template-columns:1fr 1fr}.recipe-values{grid-template-columns:repeat(4,1fr)}}

/* v1.6.1 — dashboard light-theme contrast correction */
html[data-theme="light"] .step.active,
html[data-theme="light"] .programs article{
 background:#fff;
 color:var(--text);
}
html[data-theme="light"] .step.active{
 background:#f1faf3;
 border-color:#51ad69;
}
html[data-theme="light"] .programs article{
 background:#f4faf6;
 border-color:#8bc99a;
 box-shadow:none;
}
html[data-theme="light"] .programs small,
html[data-theme="light"] .programs span,
html[data-theme="light"] .programs h3,
html[data-theme="light"] .programs b,
html[data-theme="light"] .step.active small,
html[data-theme="light"] .step.active span,
html[data-theme="light"] .step.active h3{
 opacity:1;
}
html[data-theme="light"] .greenhouse-card{
 background:#e8edf0;
}
html[data-theme="light"] .greenhouse-card:after{
 background:linear-gradient(180deg,rgba(16,29,38,.08),rgba(16,29,38,.22));
}
html[data-theme="light"] .greenhouse-img{
 mix-blend-mode:normal;
 filter:saturate(.82) contrast(1.03);
 opacity:.78;
}
html[data-theme="light"] .device-pill{
 background:rgba(255,255,255,.93);
 box-shadow:0 6px 18px rgba(32,52,74,.11);
}

/* v1.6.2 — mobile theme access */
@media(max-width:820px){
    .sidebar-bottom{
        display:block;
        margin-top:12px;
        padding:12px 8px 4px;
        border-top:1px solid var(--border);
    }
    .theme-selector button{
        min-height:44px;
        font-weight:600;
    }
}

/* v1.6.3 — explicit theme selector and equipment contrast */
.theme-selector{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:5px;
    margin-top:9px;
    padding:4px;
    border:1px solid var(--border);
    border-radius:9px;
    background:var(--panel2);
}
.theme-selector button{
    min-width:0;
    border:0;
    border-radius:6px;
    padding:9px 5px;
    background:transparent;
    color:var(--muted);
    font-size:10px;
    font-weight:700;
    cursor:pointer;
}
.theme-selector button.selected{
    background:var(--panel);
    color:var(--text);
    box-shadow:0 2px 8px rgba(32,52,74,.12);
}
html[data-theme="dark"] .theme-selector button.selected{
    background:#2a3949;
    color:#fff;
}
html[data-theme="light"] .equipment-panel{
    background:#fff;
    border-color:#d4dee7;
}
html[data-theme="light"] .equipment-panel .panel-head{
    padding-bottom:4px;
}
html[data-theme="light"] .equipment-panel li{
    border-top-color:#dfe6ec;
}
html[data-theme="light"] .equipment-panel li span{
    color:#263747;
    font-weight:500;
}
html[data-theme="light"] .equipment-panel li b{
    color:#405266;
    font-weight:400;
}
html[data-theme="light"] .equipment-panel li .red{
    color:#d63f3f!important;
}
html[data-theme="light"] .equipment-panel li .yellow-text{
    color:#b97900!important;
}

/* v1.6.4 — dashboard surface and Digital Twin integration */
.greenhouse-card-head{
    position:absolute;
    z-index:4;
    left:0;
    right:0;
    top:0;
    min-height:54px;
    padding:10px 16px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    border-bottom:1px solid rgba(255,255,255,.09);
    background:rgba(7,20,31,.88);
    backdrop-filter:blur(10px);
}
.greenhouse-card-head span,
.greenhouse-card-head strong{
    display:block;
}
.greenhouse-card-head span{
    margin-bottom:3px;
    color:#8ea4b5;
    font-size:8px;
    font-weight:700;
    letter-spacing:.1em;
}
.greenhouse-card-head strong{
    color:#f4f8fa;
    font-size:13px;
    font-weight:600;
}
.greenhouse-card-head a{
    display:flex;
    align-items:center;
    gap:7px;
    padding:7px 10px;
    border:1px solid rgba(126,163,186,.28);
    border-radius:7px;
    color:#d8e5ec;
    text-decoration:none;
    font-size:9px;
    font-weight:500;
}
.greenhouse-card-head a i{
    width:6px;
    height:6px;
    border-radius:50%;
    background:#53c76b;
    box-shadow:0 0 0 4px rgba(83,199,107,.12);
}
.greenhouse-card .p1,
.greenhouse-card .p2,
.greenhouse-card .p3{
    top:68px;
}
html[data-theme="light"] .greenhouse-card{
    border-color:#d7e0e6;
    background:#10202c;
    box-shadow:0 8px 24px rgba(35,55,72,.10);
}
html[data-theme="light"] .greenhouse-card:after{
    background:linear-gradient(180deg,rgba(7,18,27,.02),rgba(7,18,27,.14));
}
html[data-theme="light"] .greenhouse-img{
    top:19%;
    opacity:.92;
    filter:saturate(.86) contrast(1.04);
}
html[data-theme="light"] .device-pill{
    border-color:rgba(129,160,181,.28);
    background:rgba(16,34,47,.90);
    color:#f4f7f9;
    box-shadow:0 8px 22px rgba(0,0,0,.16);
    backdrop-filter:blur(9px);
}
html[data-theme="light"] .device-pill small,
html[data-theme="light"] .device-pill span{
    color:#aebdca;
}
html[data-theme="light"] .chart-panel{
    background:#fff;
    border-color:#d4dee7;
}
html[data-theme="light"] .chart-panel .panel-head{
    padding:2px 2px 8px;
    border-bottom:1px solid #eef2f5;
}
html[data-theme="light"] .chart-panel canvas{
    display:block;
    border-radius:7px;
    background:#fff;
}
@media(max-width:720px){
    .greenhouse-card-head{
        align-items:flex-start;
    }
    .greenhouse-card-head a{
        max-width:145px;
        text-align:right;
    }
}

/* v1.6.6 final theme overrides — must follow the v1.6.5 scene rules */
html[data-theme="light"] .greenhouse-card{
    border-color:#d7e1e8;
    background:
        radial-gradient(circle at 52% 48%,rgba(196,218,230,.42),transparent 52%),
        linear-gradient(180deg,#f8fafb 0%,#edf3f6 100%);
    box-shadow:0 8px 24px rgba(35,55,72,.10);
}
html[data-theme="light"] .greenhouse-card:after{
    background:linear-gradient(180deg,rgba(255,255,255,0) 52%,rgba(206,220,229,.16));
}
html[data-theme="light"] .greenhouse-img-dark{display:none}
html[data-theme="light"] .greenhouse-img-light{
    display:block;
    opacity:1;
    filter:saturate(.96) contrast(1.02);
}
html[data-theme="light"] .device-pill{
    border-color:#cedae2;
    background:rgba(255,255,255,.94);
    color:#172636;
    box-shadow:0 7px 19px rgba(42,65,83,.12);
}
html[data-theme="light"] .device-pill small,
html[data-theme="light"] .device-pill span{color:#66798a}

/* v1.8 — global and per-process control modes */
.global-control-mode{
    display:flex;align-items:center;gap:8px;min-width:132px;padding:7px 10px;
    border:1px solid color-mix(in srgb,var(--green) 45%,var(--border));
    border-radius:8px;background:color-mix(in srgb,var(--green-dark) 72%,var(--panel));
    color:var(--text);box-shadow:0 5px 16px rgba(31,120,54,.08)
}
.global-control-mode>span:nth-child(2){display:flex;flex-direction:column;gap:1px}
.global-control-mode small{font-size:8px;letter-spacing:.09em;color:var(--muted)}
.global-control-mode b{font-size:12px;color:#24933b}
.global-control-mode i{font-style:normal;margin-left:auto;color:var(--muted)}
.control-mode-dot{width:8px;height:8px;border-radius:50%;background:#35b84d;box-shadow:0 0 0 4px rgba(53,184,77,.12)}
.control-mode-badge{
    display:inline-flex!important;align-items:center;justify-content:center;width:max-content;
    padding:3px 6px;border-radius:999px;border:1px solid transparent;
    font-size:8px!important;line-height:1!important;font-weight:700!important;letter-spacing:.06em
}
.control-mode-badge.auto{color:#258b3a;background:#e9f7eb;border-color:#bfe5c6}
.control-mode-badge.manual{color:#b06a00;background:#fff4d9;border-color:#f0d28b}
.control-mode-badge.local{color:#286eaa;background:#e8f3fc;border-color:#bfd9ee}
.control-mode-badge.blocked{color:#b33c3c;background:#fdeaea;border-color:#efbcbc}
html[data-theme="dark"] .control-mode-badge.auto{color:#78dc87;background:rgba(44,157,65,.16);border-color:#2d7440}
html[data-theme="dark"] .control-mode-badge.manual{color:#ffc65c;background:rgba(211,140,0,.14);border-color:#735316}
html[data-theme="dark"] .control-mode-badge.local{color:#78bfff;background:rgba(39,127,215,.14);border-color:#285b88}
html[data-theme="dark"] .control-mode-badge.blocked{color:#ff8b88;background:rgba(217,72,69,.14);border-color:#7b3535}
.device-pill-head{display:flex;align-items:center;justify-content:space-between;gap:5px}
.device-pill-head small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.equipment-value{display:flex;align-items:center;gap:7px}
.equipment-value b{white-space:nowrap}
.programs article>small{display:flex;align-items:center;justify-content:space-between;gap:5px}
.gc-actuator{position:relative}
.gc-actuator>.control-mode-badge{position:absolute;right:8px;top:8px}
@media(max-width:1050px){
    .global-control-mode{min-width:auto}
    .global-control-mode small,.global-control-mode i{display:none}
}
@media(max-width:700px){
    .global-control-mode{order:-1;padding:6px 8px}
    .global-control-mode>span:nth-child(2){display:block}
    .global-control-mode b{font-size:10px}
    .top-meta>span:not(.avatar),.top-meta>span:last-child{display:none}
}

/* v1.7 Commissioning */
.commissioning-page{display:grid;gap:14px}
.commissioning-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;padding:4px 0 2px}
.commissioning-head h1{font-size:25px;margin:5px 0 7px;color:var(--text)}
.commissioning-head p,.io-panel .gc-card-head p{margin:0;color:var(--muted)}
.commissioning-actions,.registry-tools,.safety-lock{display:flex;align-items:center;gap:9px}
.source-badge{font-size:11px;font-weight:800;letter-spacing:.08em;padding:7px 10px;border-radius:7px}
.source-badge.demo{color:#7c58c2;background:#f0eaff;border:1px solid #dfd2ff}
.commissioning-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.commissioning-kpis article{display:flex;gap:13px;align-items:center;padding:16px}
.commissioning-kpis article div{display:grid;grid-template-columns:auto auto;align-items:end;column-gap:8px}
.commissioning-kpis small{grid-column:1/-1;color:var(--muted);font-weight:700}
.commissioning-kpis strong{font-size:28px;line-height:1.1}
.commissioning-kpis article div span{font-size:11px;color:var(--muted);padding-bottom:3px}
.commissioning-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-size:20px;font-weight:800}
.commissioning-icon.online{background:#eaf8ed;color:#1e9c43}.commissioning-icon.warning{background:#fff5dc;color:#e29a00}
.commissioning-icon.offline{background:#fff0f0;color:#e34e4e}.commissioning-icon.signals{background:#eaf3ff;color:#2776db}
.scan-panel,.device-registry,.communication-log,.io-panel{padding:16px}
.scan-controls{display:grid;grid-template-columns:1.6fr 1fr .7fr 1.3fr;gap:12px;align-items:end}
.scan-controls label{display:grid;gap:6px}.scan-controls label span{font-size:11px;font-weight:700;color:var(--muted)}
.scan-controls input,.scan-controls select,.registry-tools input{height:38px;border:1px solid var(--border);border-radius:7px;padding:0 10px;background:var(--card);color:var(--text)}
.scan-progress{display:grid;gap:6px;font-size:11px;color:var(--muted)}
.scan-progress i{display:block;height:7px;border-radius:10px;background:var(--soft);overflow:hidden}
.scan-progress b{display:block;width:0;height:100%;border-radius:inherit;background:#29a94e;transition:width .15s}
.scan-state{font-size:11px;color:var(--muted)}
.commissioning-main{display:grid;grid-template-columns:minmax(0,2.35fr) minmax(270px,.85fr);gap:14px}
.registry-tools input{width:220px}
.device-table{margin-top:8px}.device-row{display:grid;grid-template-columns:1.55fr 1fr .9fr .75fr 24px;gap:10px;align-items:center;padding:11px 5px;border-top:1px solid var(--border)}
.device-row>span{display:flex;flex-direction:column;gap:3px;font-size:12px}.device-row small{font-size:10px;color:var(--muted)}
.device-table-head{color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;border-top:0;padding-top:4px}
.device-name{flex-direction:row!important;align-items:center}.device-dot{width:8px;height:8px;border-radius:50%;background:#aab4bc;display:inline-block;flex:0 0 auto}
.device-dot.online{background:#27ac4b;box-shadow:0 0 0 4px rgba(39,172,75,.11)}.device-dot.warning{background:#f0a400}.device-dot.offline{background:#e55252}
.communication-status,.signal-quality{width:max-content;border-radius:999px;padding:4px 7px;font-size:9px;font-style:normal;font-weight:800}
.communication-status.online,.signal-quality.good{background:#e8f8ec;color:#158b39}.communication-status.warning,.signal-quality.warning{background:#fff3d7;color:#b87900}.communication-status.offline{background:#fff0f0;color:#c73a3a}
.row-menu{border:0;background:transparent;color:var(--muted);font-size:20px}
.communication-log>div{display:grid;gap:0;margin-top:9px}.communication-log p{display:grid;grid-template-columns:58px 1fr;gap:8px;margin:0;padding:11px 0;border-top:1px solid var(--border);font-size:11px}
.communication-log time{font-variant-numeric:tabular-nums;color:var(--muted)}.communication-log p.success span{color:#17863a}.communication-log p.warning span{color:#bc7a00}.communication-log p.danger span{color:#cb3d3d}
.communication-log footer{display:flex;align-items:center;gap:7px;border-top:1px solid var(--border);padding-top:12px;color:var(--muted);font-size:10px}.communication-log footer b{margin-left:auto}
.safety-lock{background:var(--soft);border:1px solid var(--border);padding:7px 8px 7px 11px;border-radius:9px}.safety-lock>div{display:grid}.safety-lock small{color:var(--muted);font-size:9px}
.io-table{margin-top:12px}.io-row{display:grid;grid-template-columns:1.4fr .7fr .7fr .7fr 1.25fr;gap:12px;align-items:center;padding:10px 5px;border-top:1px solid var(--border);font-size:12px}
.io-row>span{display:flex;flex-direction:column;gap:3px}.io-row small{color:var(--muted);font-size:9px}.io-row code{color:#2776db;background:var(--soft);padding:4px 6px;border-radius:5px;width:max-content}
.io-head{border:0;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase}
.io-actions{flex-direction:row!important}.io-actions button{border:1px solid var(--border);background:var(--card);color:var(--text);padding:6px 9px;border-radius:6px;font-weight:700;font-size:10px}
.io-actions button:hover:not(:disabled){border-color:#27a84a;color:#188338}.io-actions button:disabled{opacity:.38;cursor:not-allowed}
.io-feedback{margin-top:12px;padding:10px 12px;border-radius:7px;background:var(--soft);color:var(--muted);font-size:11px}
.io-feedback.working{background:#edf5ff;color:#2776db}.io-feedback.success{background:#e9f8ed;color:#158b39}.io-feedback.error{background:#fff0f0;color:#c73a3a}
html[data-theme="dark"] .source-badge.demo{background:#312650;color:#cbb9ff;border-color:#493a70}
html[data-theme="dark"] .commissioning-icon.online,html[data-theme="dark"] .communication-status.online,html[data-theme="dark"] .signal-quality.good{background:rgba(39,172,75,.15)}
html[data-theme="dark"] .commissioning-icon.warning,html[data-theme="dark"] .communication-status.warning,html[data-theme="dark"] .signal-quality.warning{background:rgba(240,164,0,.15)}
html[data-theme="dark"] .commissioning-icon.offline,html[data-theme="dark"] .communication-status.offline{background:rgba(229,82,82,.15)}
@media(max-width:1150px){.commissioning-kpis{grid-template-columns:repeat(2,1fr)}.scan-controls{grid-template-columns:repeat(2,1fr)}.commissioning-main{grid-template-columns:1fr}.device-row{grid-template-columns:1.4fr 1fr .9fr .7fr 20px}}
@media(max-width:760px){.commissioning-head{align-items:stretch;flex-direction:column}.commissioning-actions{flex-wrap:wrap}.commissioning-kpis{grid-template-columns:1fr 1fr}.scan-controls{grid-template-columns:1fr}.registry-tools{width:100%;flex-wrap:wrap}.registry-tools input{width:100%}.device-table{overflow-x:auto}.device-row{min-width:760px}.io-table{overflow-x:auto}.io-row{min-width:720px}.io-panel .gc-card-head{align-items:flex-start;gap:12px;flex-direction:column}.safety-lock{width:100%}}

/* v1.6.6 — Digital Twin scene follows the selected theme */
.greenhouse-img-light{display:none}

html[data-theme="light"] .greenhouse-card{
    border-color:#d7e1e8;
    background:
        radial-gradient(circle at 52% 48%,rgba(196,218,230,.42),transparent 52%),
        linear-gradient(180deg,#f8fafb 0%,#edf3f6 100%);
    box-shadow:0 8px 24px rgba(35,55,72,.10);
}
html[data-theme="light"] .greenhouse-card:after{
    background:linear-gradient(180deg,rgba(255,255,255,0) 52%,rgba(206,220,229,.16));
}
html[data-theme="light"] .greenhouse-card-head{
    border-bottom-color:#dce5eb;
    background:rgba(255,255,255,.92);
    box-shadow:0 4px 14px rgba(44,66,84,.05);
}
html[data-theme="light"] .greenhouse-card-head span{color:#718293}
html[data-theme="light"] .greenhouse-card-head strong{color:#172636}
html[data-theme="light"] .greenhouse-card-head a{
    border-color:#cbd9e2;
    background:#f7fafb;
    color:#33495c;
}
html[data-theme="light"] .greenhouse-img-dark{display:none}
html[data-theme="light"] .greenhouse-img-light{
    display:block;
    opacity:1;
    filter:saturate(.96) contrast(1.02);
}
html[data-theme="light"] .device-pill{
    border-color:#cedae2;
    background:rgba(255,255,255,.94);
    color:#172636;
    box-shadow:0 7px 19px rgba(42,65,83,.12);
    backdrop-filter:blur(10px);
}
html[data-theme="light"] .device-pill small,
html[data-theme="light"] .device-pill span{color:#66798a}
html[data-theme="light"] .device-pill.danger b{color:#d94845}

/* v1.6.5 — clean greenhouse scene and readable live equipment cards */
.greenhouse-card{
    height:470px;
    isolation:isolate;
    border-color:#21384a;
    background:
        radial-gradient(circle at 52% 47%,rgba(36,75,94,.25),transparent 48%),
        linear-gradient(180deg,#0a1926 0%,#07131f 100%);
}
.greenhouse-card:after{
    z-index:1;
    background:linear-gradient(180deg,rgba(4,12,19,.02) 48%,rgba(4,12,19,.25));
}
.greenhouse-img{
    z-index:0;
    width:72%;
    height:auto;
    left:14%;
    top:17%;
    border-radius:0;
    object-fit:contain;
    mix-blend-mode:normal;
    filter:saturate(.94) contrast(1.04) brightness(.94);
}
.device-pill{
    z-index:3;
    width:150px;
    min-height:78px;
    padding:11px 13px;
    border:1px solid rgba(132,169,192,.38);
    background:rgba(9,28,41,.94);
    color:#f4f8fa;
    box-shadow:0 8px 22px rgba(0,0,0,.24);
    backdrop-filter:blur(10px);
}
.device-pill small,
.device-pill span{
    color:#aebdca;
}
.device-pill small{font-size:10px}
.device-pill b{font-size:20px;line-height:1.05}
.device-pill span{font-size:10px}
.greenhouse-card .p1{left:16px;top:70px}
.greenhouse-card .p2{left:42%;top:70px}
.greenhouse-card .p3{right:16px;top:70px}
.greenhouse-card .p4{left:16px;top:190px}
.greenhouse-card .p5{right:16px;top:190px}
.greenhouse-card .p6{left:16px;bottom:18px}
.greenhouse-card .p7{left:31%;bottom:18px}
.greenhouse-card .p8{right:31%;bottom:18px}
.greenhouse-card .p9{right:16px;bottom:18px}
html[data-theme="light"] .greenhouse-card{
    border-color:#cfdbe3;
    background:
        radial-gradient(circle at 52% 47%,rgba(36,75,94,.25),transparent 48%),
        linear-gradient(180deg,#0d1d2a 0%,#081520 100%);
    box-shadow:0 8px 24px rgba(35,55,72,.12);
}
html[data-theme="light"] .greenhouse-card:after{
    background:linear-gradient(180deg,rgba(4,12,19,.01) 48%,rgba(4,12,19,.18));
}
html[data-theme="light"] .greenhouse-img{
    top:17%;
    opacity:1;
    filter:saturate(.94) contrast(1.04) brightness(.94);
}
html[data-theme="light"] .device-pill{
    border-color:rgba(132,169,192,.42);
    background:rgba(9,28,41,.95);
}
@media(max-width:1000px){
    .greenhouse-card{height:540px}
    .greenhouse-img{width:88%;left:6%;top:22%}
    .greenhouse-card .p2{left:calc(50% - 75px)}
    .greenhouse-card .p7{left:25%}
    .greenhouse-card .p8{right:25%}
}
@media(max-width:720px){
    .greenhouse-card{
        height:auto;
        padding:70px 12px 12px;
        display:grid;
        grid-template-columns:1fr 1fr;
        gap:8px;
    }
    .greenhouse-img{
        position:relative;
        grid-column:1/-1;
        grid-row:1;
        width:100%;
        left:auto;
        top:auto;
        margin:2px 0 4px;
    }
    .device-pill,
    .greenhouse-card .p1,.greenhouse-card .p2,.greenhouse-card .p3,
    .greenhouse-card .p4,.greenhouse-card .p5,.greenhouse-card .p6,
    .greenhouse-card .p7,.greenhouse-card .p8,.greenhouse-card .p9{
        position:relative;
        inset:auto;
        width:auto;
        min-height:72px;
    }
}

/* v1.6.6 cascade guard */
html[data-theme="light"] .greenhouse-card{
    border-color:#d7e1e8;
    background:radial-gradient(circle at 52% 48%,rgba(196,218,230,.42),transparent 52%),linear-gradient(180deg,#f8fafb 0%,#edf3f6 100%);
    box-shadow:0 8px 24px rgba(35,55,72,.10);
}
html[data-theme="light"] .greenhouse-card:after{background:linear-gradient(180deg,rgba(255,255,255,0) 52%,rgba(206,220,229,.16))}
html[data-theme="light"] .greenhouse-img-dark{display:none}
html[data-theme="light"] .greenhouse-img-light{display:block;opacity:1;filter:saturate(.96) contrast(1.02)}
html[data-theme="light"] .device-pill{
    border-color:#cedae2;
    background:rgba(255,255,255,.94);
    color:#172636;
    box-shadow:0 7px 19px rgba(42,65,83,.12);
}
html[data-theme="light"] .device-pill small,
html[data-theme="light"] .device-pill span{color:#66798a}

/* v1.9 live telemetry */
.telemetry-strip{display:flex;align-items:center;gap:10px;margin:0 0 14px;padding:10px 14px;border:1px solid var(--border);border-radius:12px;background:var(--panel);font-size:12px;color:var(--muted)}
.telemetry-strip b,.telemetry-strip strong{color:var(--text)}
.telemetry-strip time{margin-left:auto;font-variant-numeric:tabular-nums}
.telemetry-dot{width:9px;height:9px;border-radius:50%;background:#8c96a3;box-shadow:0 0 0 4px rgba(140,150,163,.13)}
.telemetry-live .telemetry-dot{background:#56c96b;box-shadow:0 0 0 4px rgba(86,201,107,.15)}
.telemetry-fallback .telemetry-dot,.telemetry-offline .telemetry-dot{background:#f0a63a;box-shadow:0 0 0 4px rgba(240,166,58,.15)}
.telemetry-demo .telemetry-dot{background:#4c9dff;box-shadow:0 0 0 4px rgba(76,157,255,.15)}
@media(max-width:760px){.telemetry-strip{flex-wrap:wrap}.telemetry-strip time{width:100%;margin-left:19px}}


/* v1.9.1 explicit telemetry sources */
.telemetry-mode-selector{display:flex;align-items:center;gap:5px;padding:5px 7px;border:1px solid var(--border);border-radius:10px;background:var(--panel)}
.telemetry-mode-selector small{font-size:9px;color:var(--muted);font-weight:800;margin-right:3px}
.telemetry-mode-selector button{border:0;border-radius:7px;padding:6px 9px;background:transparent;color:var(--muted);font-size:10px;font-weight:900;cursor:pointer}
.telemetry-mode-selector button.selected[data-telemetry-mode="live"]{background:rgba(86,201,107,.16);color:#39a954}
.telemetry-mode-selector button.selected[data-telemetry-mode="demo"]{background:rgba(124,88,194,.15);color:#7c58c2}
.field-source,.section-source{display:inline-flex;align-items:center;border-radius:999px;padding:2px 6px;font-size:8px!important;font-weight:900;letter-spacing:.08em;line-height:1.4}
.field-source-live,.section-source-live{background:rgba(86,201,107,.15);color:#39a954}
.field-source-demo,.section-source-demo{background:rgba(124,88,194,.15);color:#7c58c2}
.field-source-offline,.section-source-offline{background:rgba(240,166,58,.16);color:#c97c0b}
.metric-card>div>small{display:flex;align-items:center;gap:7px}
.module-kpi-title .field-source{margin-left:auto}
.section-source{margin-left:auto}
.simulation-warning{grid-column:1/-1;padding:10px 13px;border:1px dashed rgba(124,88,194,.45);border-radius:10px;background:rgba(124,88,194,.08);font-size:12px;color:var(--muted)}
.simulation-warning b{color:#7c58c2;margin-right:8px}
@media(max-width:1000px){.telemetry-mode-selector small{display:none}}


/* v1.9.2 live weather station */
.weather-hero{display:flex;justify-content:space-between;align-items:center;padding:20px 22px;margin-bottom:14px;background:linear-gradient(135deg,var(--panel),rgba(76,157,255,.08))}
.weather-hero small{font-size:9px;font-weight:900;letter-spacing:.12em;color:#4c9dff}.weather-hero h1{margin:5px 0 3px;font-size:24px}.weather-hero p{margin:0;color:var(--muted);font-size:12px}
.weather-status{display:flex;align-items:center;gap:8px;padding:9px 13px;border:1px solid var(--border);border-radius:999px;font-size:11px}.weather-status i{width:9px;height:9px;border-radius:50%;background:#f0a63a}.weather-status.online i{background:#56c96b;box-shadow:0 0 0 5px rgba(86,201,107,.12)}
.weather-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.weather-grid>.panel{padding:18px}.compass-wrap{display:flex;align-items:center;justify-content:center;gap:34px;min-height:230px}
.compass{position:relative;width:174px;height:174px;border:1px solid var(--border);border-radius:50%;background:radial-gradient(circle,var(--panel) 0 42%,transparent 43%),repeating-conic-gradient(from 0deg,rgba(76,157,255,.18) 0 1deg,transparent 1deg 15deg)}
.compass:after{content:"";position:absolute;inset:17px;border:1px solid var(--border);border-radius:50%}.compass span{position:absolute;font-size:11px;font-weight:900;color:var(--muted);z-index:2}.compass .north{top:7px;left:50%;transform:translateX(-50%)}.compass .south{bottom:7px;left:50%;transform:translateX(-50%)}.compass .east{right:9px;top:50%;transform:translateY(-50%)}.compass .west{left:9px;top:50%;transform:translateY(-50%)}
.compass i{position:absolute;left:50%;top:50%;width:4px;height:66px;border-radius:4px;background:#4c9dff;transform-origin:50% 100%;transform:translate(-50%,-100%) rotate(var(--wind-angle));box-shadow:0 0 14px rgba(76,157,255,.45);z-index:3}.compass i:after{content:"";position:absolute;top:-8px;left:-5px;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:13px solid #4c9dff}.compass i:before{content:"";position:absolute;bottom:-6px;left:-4px;width:12px;height:12px;border-radius:50%;background:#4c9dff}
.compass-value strong{display:block;font-size:38px}.compass-value span{color:var(--muted);font-size:14px}.rain-state{display:flex;align-items:center;justify-content:center;gap:20px;min-height:230px}.rain-state>span{font-size:62px}.rain-state strong{display:block;font-size:28px}.rain-state small{display:block;margin-top:5px;color:var(--muted)}.rain-state.dry strong{color:#56c96b}.rain-state.wet strong{color:#4c9dff}
.weather-note{margin-top:14px;padding:14px 18px;display:flex;gap:12px;align-items:center;font-size:12px}.weather-note b{color:#56c96b}.weather-note span{color:var(--muted)}
@media(max-width:900px){.weather-grid{grid-template-columns:1fr}.weather-hero{align-items:flex-start;gap:15px}.compass-wrap{gap:18px}}@media(max-width:560px){.weather-hero{flex-direction:column}.compass-wrap{flex-direction:column}.weather-note{align-items:flex-start;flex-direction:column}}


/* v2.1 actuator telemetry with explicit source labels */
.gc-actuator-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.gc-live-actuator{border:1px solid var(--border);border-radius:12px;padding:12px;background:var(--panel);min-height:118px;display:flex;flex-direction:column;gap:6px}
.gc-live-actuator-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.gc-live-actuator>span{font-size:12px;color:var(--muted);line-height:1.25}
.gc-live-actuator>strong{font-size:17px;color:var(--text)}
.gc-live-actuator>small{font-size:10px;color:var(--muted)}
.gc-live-actuator.is-active{border-color:rgba(86,201,107,.55);background:rgba(86,201,107,.06)}
.gc-source-pill{display:inline-flex;align-items:center;border-radius:999px;padding:4px 7px;font-size:9px;font-weight:900;letter-spacing:.07em;border:1px solid var(--border)}
.gc-source-pill.live{color:#39a954;background:rgba(86,201,107,.14);border-color:rgba(86,201,107,.35)}
.gc-source-pill.demo{color:#7c58c2;background:rgba(124,88,194,.13);border-color:rgba(124,88,194,.3)}
.gc-source-pill.offline{color:#a16d22;background:rgba(240,166,58,.13);border-color:rgba(240,166,58,.3)}
.gc-actuator-subsection{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}
.gc-actuator-subsection h3{margin:2px 0 0;font-size:14px}
.gc-lighting-groups{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px}
.gc-light-group{border:1px solid var(--border);border-radius:10px;padding:9px;text-align:center;background:var(--panel)}
.gc-light-group span{display:block;color:var(--muted);font-size:10px}
.gc-light-group strong{display:block;margin-top:4px;font-size:11px}
.gc-light-group.is-active{border-color:rgba(86,201,107,.55);background:rgba(86,201,107,.06)}
.gc-unknown-output-note{margin-top:12px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:9px 11px;border:1px dashed var(--border);border-radius:10px;color:var(--muted);font-size:11px}
.gc-unknown-output-note[hidden]{display:none}
@media(max-width:1250px){.gc-actuator-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.gc-lighting-groups{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:760px){.gc-actuator-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gc-lighting-groups{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* v2.2 — live UV module */
.uv-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:14px}
.uv-kpi-card{border:1px solid var(--border);border-radius:12px;background:var(--panel);padding:14px;min-height:136px;display:flex;flex-direction:column;gap:7px}
.uv-kpi-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.uv-kpi-icon{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:rgba(124,88,194,.14);font-weight:900}
.uv-kpi-card>small,.uv-kpi-card>span{color:var(--muted);font-size:11px}
.uv-kpi-card>strong{font-size:22px}.uv-kpi-card>strong em{font-style:normal;font-size:11px;color:var(--muted)}
.uv-status-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr);gap:14px}
.uv-process-card,.uv-health-card{padding:18px}
.uv-process-state{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
.uv-process-state>div{border:1px solid var(--border);border-radius:12px;padding:16px;background:var(--panel2)}
.uv-process-state small,.uv-process-state span{display:block;color:var(--muted);font-size:11px}
.uv-process-state strong{display:block;font-size:20px;margin:8px 0}
.uv-readonly-note{margin:14px 0 0;padding:11px 13px;border:1px dashed var(--border);border-radius:10px;color:var(--muted);font-size:11px}
.uv-health-card ul{list-style:none;margin:8px 0 0;padding:0}
.uv-health-card li{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}
.uv-health-card li span{color:var(--muted)}.uv-health-card li b{font-size:11px}

/* v2.2 — climate KPI source labels */
.gc-kpi-title .field-source{margin-left:auto}

/* v2.2 — dashboard mobile fit */
@media(max-width:720px){
  .main-content{padding:0 10px 18px}
  .topbar{padding:10px 0}
  .title-wrap{min-width:0}
  .title-wrap h1{font-size:18px}
  .telemetry-strip{margin-top:8px}
  .metrics-grid{grid-template-columns:1fr 1fr;gap:8px}
  .metric-card{min-width:0;padding:11px;gap:9px}
  .metric-card i{width:34px;height:34px;font-size:16px;flex:0 0 34px}
  .metric-card strong{font-size:17px}
  .dashboard-grid,.left-column,.right-column{min-width:0;width:100%}
  .right-column{display:block}
  .panel,.greenhouse-card,.ok-banner{max-width:100%;min-width:0}
  .greenhouse-card{padding-top:82px;grid-template-columns:1fr 1fr;overflow:visible}
  .greenhouse-card-head{min-width:0;gap:6px;padding:10px}
  .greenhouse-card-head>div{min-width:0}
  .greenhouse-card-head strong{font-size:13px;white-space:normal}
  .greenhouse-card-head a{font-size:9px;padding:7px}
  .device-pill{min-width:0}
  .steps,.gc-range,.gc-weather-row{max-width:100%;overflow-x:auto}
  .programs{grid-template-columns:1fr}
  .ok-banner{align-items:flex-start;flex-wrap:wrap}
  .ok-banner button{width:100%}
  .gauges{grid-template-columns:1fr 1fr 1fr}
  .gauge{width:54px;height:54px}
  canvas{max-width:100%!important}
}
@media(max-width:460px){
  .metrics-grid{grid-template-columns:1fr}
  .greenhouse-card{grid-template-columns:1fr}
  .greenhouse-img{grid-column:1}
  .uv-kpi-grid{grid-template-columns:1fr}
  .uv-process-state{grid-template-columns:1fr}
  .uv-status-grid{grid-template-columns:1fr}
}
@media(min-width:461px) and (max-width:980px){
  .uv-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .uv-status-grid{grid-template-columns:1fr}
}

/* v2.3 — Auto-Control fertilizer sensor inventory */
.fertilizer-sensor-config{margin-top:18px}.sensor-config-head{align-items:flex-start;gap:16px}.sensor-config-head p{margin:5px 0 0;color:var(--muted);font-size:.88rem}.sensor-config-source{padding:7px 10px;border-radius:999px;font-size:.72rem;font-weight:800;letter-spacing:.06em;background:rgba(65,181,255,.12);color:#2491ce}.sensor-config-source.source-live-api{background:rgba(39,190,128,.14);color:#15945e}.sensor-config-source.source-offline{background:rgba(244,162,67,.14);color:#c6771e}.sensor-config-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0 16px}.sensor-config-summary span{padding:12px 14px;border:1px solid var(--border);border-radius:14px;background:var(--panel-soft)}.sensor-config-summary small{display:block;color:var(--muted);font-size:.72rem}.sensor-config-summary b{display:block;margin-top:5px;font-size:1rem}.sensor-channel-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.sensor-channel-card{border:1px solid var(--border);border-radius:15px;padding:13px;background:var(--panel-soft)}.sensor-channel-card.is-configured{border-color:rgba(35,169,111,.35);box-shadow:inset 0 3px 0 rgba(35,169,111,.55)}.sensor-channel-card header{display:flex;align-items:center;justify-content:space-between;gap:8px}.sensor-channel-card header div{display:flex;align-items:baseline;gap:5px}.sensor-channel-card header span{font-size:.66rem;color:var(--muted);font-weight:800}.sensor-channel-card header strong{font-size:1.3rem}.sensor-channel-card header em{font-style:normal;font-size:.62rem;font-weight:800;color:var(--muted)}.sensor-channel-card.is-configured header em{color:#15945e}.sensor-channel-card h3{margin:10px 0 9px;font-size:.86rem}.sensor-channel-card dl{display:grid;gap:5px;margin:0}.sensor-channel-card dl div{display:flex;justify-content:space-between;gap:8px;font-size:.72rem}.sensor-channel-card dt{color:var(--muted)}.sensor-channel-card dd{margin:0;font-weight:700;text-align:right}.sensor-config-note{margin-top:14px;padding-top:12px;border-top:1px solid var(--border);color:var(--muted);font-size:.78rem}.sensor-config-empty{grid-column:1/-1;padding:28px;text-align:center;color:var(--muted)}
@media(max-width:1100px){.sensor-channel-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.sensor-config-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.sensor-channel-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.sensor-channel-grid{grid-template-columns:1fr}.sensor-config-head{display:block}.sensor-config-source{display:inline-block;margin-top:10px}}

/* v2.3.1 — sensor cards aligned with GreenControl visual language */
.fertilizer-sensors-section{display:grid;gap:14px;margin:18px 0}.section-heading-row{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:4px 2px}.section-heading-row h2{margin:3px 0 0;font-size:1.2rem}.section-heading-row p{margin:6px 0 0;color:var(--muted);font-size:.82rem}.sensor-section-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.control-mode-badge.readonly{background:rgba(78,123,255,.1);color:#4779dc;border:1px solid rgba(78,123,255,.18)}
.sensor-overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.sensor-overview-grid .gc-kpi-card{min-height:126px}.sensor-overview-grid .gc-kpi-value{font-size:1.65rem}.sensor-gateway-state{font-size:1.2rem!important;line-height:1.2}
.sensor-content-grid{display:grid;grid-template-columns:minmax(0,2.4fr) minmax(250px,.7fr);gap:14px}.sensor-active-panel,.sensor-diagnostics-panel,.sensor-idle-panel{min-width:0}.sensor-active-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}.sensor-live-card{position:relative;overflow:hidden;padding:15px;border:1px solid var(--border);border-radius:14px;background:var(--panel2)}.sensor-live-card:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--border)}.sensor-live-card.has-value:before{background:#42b77b}.sensor-live-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.sensor-channel-number{font-size:.72rem;font-weight:800;letter-spacing:.08em;color:var(--muted)}.sensor-state-dot{display:flex;align-items:center;gap:5px;font-size:.6rem;font-weight:800;color:var(--muted)}.sensor-state-dot i{width:7px;height:7px;border-radius:50%;background:#aeb9c2}.has-value .sensor-state-dot{color:#20945d}.has-value .sensor-state-dot i{background:#35b874;box-shadow:0 0 0 4px rgba(53,184,116,.12)}.sensor-live-card h3{min-height:34px;margin:12px 0 8px;font-size:.88rem}.sensor-primary-reading{display:flex;align-items:baseline;gap:7px}.sensor-primary-reading strong{font-size:1.75rem;line-height:1}.sensor-primary-reading small{color:var(--muted);font-size:.68rem}.sensor-ad-track{height:7px;margin:12px 0;overflow:hidden;border-radius:999px;background:var(--border)}.sensor-ad-track span{display:block;height:100%;border-radius:inherit;background:var(--accent,#42a5f5)}.sensor-card-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px}.sensor-card-meta span{padding:8px;border-radius:9px;background:var(--panel)}.sensor-card-meta small,.sensor-card-meta b{display:block}.sensor-card-meta small{color:var(--muted);font-size:.62rem}.sensor-card-meta b{margin-top:3px;font-size:.74rem}.sensor-calibration-block{margin-top:9px;padding-top:9px;border-top:1px solid var(--border)}.sensor-calibration-block>small{display:block;margin-bottom:5px;color:var(--muted);font-size:.62rem}.sensor-calibration-block>div{display:grid;grid-template-columns:1fr 18px 1fr;align-items:center;padding:3px 0;font-size:.68rem}.sensor-calibration-block i{color:var(--muted);font-style:normal;text-align:center}.sensor-calibration-block b{text-align:right}
.sensor-health-list{display:grid;gap:0;margin-top:10px}.sensor-health-list>div{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--border);font-size:.78rem}.sensor-health-list span{color:var(--muted)}.sensor-health-list b.good{color:#20945d}.sensor-health-list b.safe{color:#4779dc}.sensor-diagnostic-callout{display:flex;gap:10px;margin-top:14px;padding:12px;border:1px solid rgba(67,141,232,.18);border-radius:12px;background:rgba(67,141,232,.07)}.sensor-diagnostic-callout span{color:#3b82d9}.sensor-diagnostic-callout p{margin:0;color:var(--muted);font-size:.72rem;line-height:1.45}.sensor-idle-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;margin-top:12px}.sensor-idle-tile{padding:10px;border:1px dashed var(--border);border-radius:11px;background:var(--panel2);text-align:center}.sensor-idle-tile span,.sensor-idle-tile b,.sensor-idle-tile small{display:block}.sensor-idle-tile span{font-size:.66rem;font-weight:800}.sensor-idle-tile b{margin:5px 0;color:var(--muted);font-size:.62rem}.sensor-idle-tile small{color:var(--muted);font-size:.56rem}.sensor-empty-state{grid-column:1/-1;padding:28px;text-align:center;color:var(--muted)}
@media(max-width:1350px){.sensor-active-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sensor-idle-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:1050px){.sensor-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sensor-content-grid{grid-template-columns:1fr}.sensor-idle-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:700px){.section-heading-row{display:block}.sensor-section-actions{margin-top:10px}.sensor-active-grid{grid-template-columns:1fr}.sensor-idle-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:480px){.sensor-overview-grid{grid-template-columns:1fr 1fr}.sensor-idle-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v2.4 — complete Auto-Control fertilizer configuration */
.fertilizer-config-hub{display:grid;gap:14px;margin:18px 0}.fert-config-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.fert-config-panel{padding:18px;min-width:0}.irrigation-plan-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}.irrigation-plan-card{border:1px solid var(--border);border-radius:13px;padding:13px;background:var(--panel2);min-height:150px}.irrigation-plan-card.captured{border-color:rgba(67,141,232,.32);box-shadow:inset 0 3px 0 rgba(67,141,232,.65)}.irrigation-plan-card.pending{opacity:.62}.plan-card-head,.formula-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.plan-card-head span,.formula-head span{font-size:.7rem;font-weight:900;letter-spacing:.08em}.plan-card-head b,.formula-head>b{font-size:.6rem;color:var(--muted)}.plan-main-value{margin:18px 0 12px}.plan-main-value strong{display:block;font-size:1.55rem}.plan-main-value small,.formula-head small{display:block;color:var(--muted);font-size:.62rem;margin-top:3px}.irrigation-plan-card dl{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0}.irrigation-plan-card dl div{padding:7px;border-radius:8px;background:var(--panel)}.irrigation-plan-card dt{font-size:.58rem;color:var(--muted)}.irrigation-plan-card dd{margin:3px 0 0;font-size:.72rem;font-weight:800}.plan-empty{display:grid;place-items:center;min-height:100px;text-align:center;color:var(--muted);font-size:.72rem;line-height:1.45}.formula-card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}.formula-card{border:1px solid var(--border);border-radius:13px;padding:13px;background:var(--panel2)}.formula-targets{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}.formula-targets span{padding:10px;border-radius:10px;background:var(--panel)}.formula-targets small,.formula-targets strong{display:block}.formula-targets small{color:var(--muted);font-size:.62rem}.formula-targets strong{margin-top:4px;font-size:1.15rem}.fertilizer-ratios{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.fertilizer-ratios span{padding:8px 5px;border:1px solid var(--border);border-radius:9px;text-align:center;opacity:.5}.fertilizer-ratios span.active{opacity:1;border-color:rgba(53,184,116,.38);background:rgba(53,184,116,.07)}.fertilizer-ratios span.acid.active{border-color:rgba(240,166,58,.38);background:rgba(240,166,58,.08)}.fertilizer-ratios i,.fertilizer-ratios b{display:block}.fertilizer-ratios i{font-style:normal;font-size:.6rem;color:var(--muted)}.fertilizer-ratios b{margin-top:3px;font-size:.72rem}.fert-detail-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,.7fr);gap:14px}.configured-sensor-list{display:grid;gap:8px;margin-top:12px}.configured-sensor-row{display:grid;grid-template-columns:62px 1fr auto;align-items:center;gap:12px;padding:11px;border:1px solid var(--border);border-radius:11px;background:var(--panel2)}.sensor-index{font-size:.66rem;font-weight:900;color:var(--muted)}.configured-sensor-row b,.configured-sensor-row small{display:block}.configured-sensor-row div small{margin-top:4px;color:var(--muted);font-size:.62rem}.configured-sensor-row>strong{font-size:1rem}.configured-sensor-row>strong small{display:inline;font-size:.58rem;color:var(--muted)}.gc-details{margin-top:12px;border-top:1px solid var(--border);padding-top:11px}.gc-details summary{cursor:pointer;color:var(--muted);font-size:.72rem;font-weight:800}.all-sensor-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:6px;margin-top:10px}.all-sensor-grid span{padding:7px;border:1px dashed var(--border);border-radius:8px;text-align:center}.all-sensor-grid span.used{border-style:solid;border-color:rgba(53,184,116,.4);background:rgba(53,184,116,.06)}.all-sensor-grid b,.all-sensor-grid small{display:block}.all-sensor-grid b{font-size:.62rem}.all-sensor-grid small{font-size:.52rem;color:var(--muted)}.io-summary-list{display:grid;margin-top:8px}.io-summary-list div{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--border);font-size:.74rem}.io-summary-list span{color:var(--muted)}.profile-chip-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:12px}.profile-chip-grid span{padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--panel2)}.profile-chip-grid span.captured{border-color:rgba(67,141,232,.28)}.profile-chip-grid b,.profile-chip-grid em,.profile-chip-grid small{display:block}.profile-chip-grid b{font-size:.72rem}.profile-chip-grid em{margin-top:4px;font-style:normal;font-size:.66rem}.profile-chip-grid small{margin-top:3px;color:var(--muted);font-size:.56rem}
@media(max-width:1200px){.fert-config-kpis,.formula-card-grid,.irrigation-plan-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.profile-chip-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:900px){.fert-config-kpis,.formula-card-grid,.irrigation-plan-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fert-detail-grid{grid-template-columns:1fr}.profile-chip-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.fert-config-kpis,.formula-card-grid,.irrigation-plan-grid{grid-template-columns:1fr}.profile-chip-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.all-sensor-grid{grid-template-columns:repeat(4,1fr)}.configured-sensor-row{grid-template-columns:52px 1fr}.configured-sensor-row>strong{grid-column:2}.section-heading-row{align-items:flex-start}}

/* v2.4.1 — editor compact pentru formula de fertilizare */
.fert-formula-editor{padding:20px;overflow:hidden}.fert-formula-editor__head{align-items:flex-start}.fert-formula-editor__head p{margin:5px 0 0;color:var(--muted);font-size:.72rem;max-width:700px}.fert-formula-editor__status{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.fert-formula-editor__toolbar{display:grid;grid-template-columns:minmax(260px,420px) 1fr;gap:18px;align-items:end;margin:18px 0 0;padding:14px;border:1px solid var(--border);border-radius:14px;background:var(--panel2)}.fert-formula-editor__toolbar label>span,.formula-editor-field-grid label>span,.formula-nutrient-card label>span{display:block;margin-bottom:7px;color:var(--muted);font-size:.65rem;font-weight:800;letter-spacing:.03em}.fert-formula-editor select,.fert-formula-editor input{width:100%;border:1px solid var(--border);border-radius:10px;background:var(--panel);color:var(--text);font:inherit;font-weight:800;outline:none}.fert-formula-editor select{padding:11px 12px}.fert-formula-editor input{padding:11px 52px 11px 12px}.fert-formula-editor select:focus,.fert-formula-editor input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}.fert-formula-editor__identity{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.fert-formula-editor__identity span{padding:9px 11px;border:1px solid var(--border);border-radius:10px;background:var(--panel);font-size:.65rem;color:var(--muted)}.fert-formula-editor__identity b{margin-left:5px;color:var(--text)}.fert-formula-editor__body{display:grid;grid-template-columns:minmax(220px,.72fr) minmax(420px,1.45fr) minmax(260px,.9fr);gap:14px;margin-top:14px}.fert-formula-editor__body>section{padding:15px;border:1px solid var(--border);border-radius:14px;background:var(--panel2);min-width:0}.formula-editor-section-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:13px}.formula-editor-section-title>div{display:flex;align-items:center;gap:8px}.formula-editor-section-title>div span{display:grid;place-items:center;width:25px;height:25px;border-radius:8px;background:var(--accent-soft);color:var(--accent);font-size:.62rem;font-weight:900}.formula-editor-section-title b{font-size:.78rem}.formula-editor-section-title small{color:var(--muted);font-size:.58rem;text-align:right}.formula-editor-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.formula-input-wrap{position:relative}.formula-input-wrap em{position:absolute;right:11px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:.6rem;font-style:normal;font-weight:800}.formula-nutrient-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.formula-nutrient-card{padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--panel);opacity:.68;transition:.18s ease}.formula-nutrient-card.is-active{opacity:1;border-color:rgba(53,184,116,.34);box-shadow:inset 0 3px 0 rgba(53,184,116,.62)}.formula-nutrient-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px}.formula-nutrient-letter{display:grid;place-items:center;width:31px;height:31px;border-radius:10px;background:rgba(53,184,116,.1);color:#35b874;font-weight:900}.formula-switch{display:flex!important;align-items:center;gap:7px;margin:0!important;cursor:pointer}.formula-switch input{position:absolute;opacity:0;pointer-events:none}.formula-switch span{position:relative;width:34px;height:19px;border-radius:99px;background:var(--border);transition:.18s}.formula-switch span:after{content:"";position:absolute;left:3px;top:3px;width:13px;height:13px;border-radius:50%;background:var(--muted);transition:.18s}.formula-switch input:checked+span{background:rgba(53,184,116,.35)}.formula-switch input:checked+span:after{left:18px;background:#35b874}.formula-switch b{font-size:.56rem;color:var(--muted)}.formula-switch.large span{width:42px;height:23px}.formula-switch.large span:after{width:17px;height:17px}.formula-switch.large input:checked+span:after{left:22px}.formula-acid-control{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px;border:1px solid var(--border);border-radius:12px;background:var(--panel);opacity:.72}.formula-acid-control.is-active{opacity:1;border-color:rgba(240,166,58,.36);background:rgba(240,166,58,.05)}.formula-acid-control>div{display:flex;align-items:center;gap:10px;min-width:0}.formula-acid-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:rgba(240,166,58,.12);color:#f0a63a;font-weight:900}.formula-acid-control b,.formula-acid-control small{display:block}.formula-acid-control small{margin-top:4px;color:var(--muted);font-size:.58rem;line-height:1.35}.fert-formula-editor__footer{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.formula-editor-message{display:flex;align-items:flex-start;gap:9px;min-width:0}.formula-editor-message>span{color:var(--accent);font-size:.72rem}.formula-editor-message b,.formula-editor-message small{display:block}.formula-editor-message b{font-size:.7rem}.formula-editor-message small{margin-top:3px;color:var(--muted);font-size:.61rem}.formula-editor-actions{display:flex;gap:8px;flex-shrink:0}.gc-button{border:1px solid var(--border);border-radius:10px;padding:10px 13px;font:inherit;font-size:.68rem;font-weight:850;cursor:pointer}.gc-button.secondary{background:var(--panel2);color:var(--text)}.gc-button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.fert-formula-editor input:disabled{opacity:.42;cursor:not-allowed}
@media(max-width:1120px){.fert-formula-editor__body{grid-template-columns:1fr 1.5fr}.fert-formula-editor__acid{grid-column:1/-1}}
@media(max-width:760px){.fert-formula-editor{padding:15px}.fert-formula-editor__toolbar,.fert-formula-editor__body{grid-template-columns:1fr}.fert-formula-editor__acid{grid-column:auto}.fert-formula-editor__identity{justify-content:flex-start}.fert-formula-editor__footer{align-items:stretch;flex-direction:column}.formula-editor-actions{display:grid;grid-template-columns:1fr 1fr}.formula-editor-field-grid,.formula-nutrient-grid{grid-template-columns:1fr}.formula-editor-section-title{display:block}.formula-editor-section-title small{display:block;margin-top:5px;text-align:left}}


/* v2.4.2 — Fertilizer formula controller */
.fert-formula-editor{
    padding:0;
    overflow:hidden;
    border:1px solid color-mix(in srgb,var(--accent) 16%,var(--border));
}
.fert-formula-editor__head{
    padding:20px 22px 17px;
    background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 7%,var(--panel)),var(--panel));
    border-bottom:1px solid var(--border);
}
.fert-formula-editor__head h2{font-size:1.05rem}
.fert-formula-editor__head p{font-size:.72rem;line-height:1.5}
.fert-formula-editor__toolbar{
    margin:0;
    padding:15px 22px;
    border:0;
    border-bottom:1px solid var(--border);
    border-radius:0;
    background:var(--panel2);
}
.fert-formula-editor__toolbar select{min-height:44px}
.fert-formula-editor__body{
    grid-template-columns:minmax(220px,.76fr) minmax(430px,1.48fr) minmax(270px,.9fr);
    gap:14px;
    margin:0;
    padding:18px 22px;
}
.fert-formula-editor__body>section{
    padding:16px;
    border-radius:16px;
    box-shadow:0 1px 0 rgba(255,255,255,.03);
}
.formula-editor-field-grid{grid-template-columns:1fr}
.formula-input-wrap input{
    min-height:46px;
    font-size:1rem;
}
.formula-nutrient-card{
    padding:14px;
    border-radius:14px;
}
.formula-nutrient-card.is-active{
    background:color-mix(in srgb,#35b874 6%,var(--panel));
}
.formula-nutrient-letter{
    width:36px;
    height:36px;
    font-size:.9rem;
}
.formula-acid-control{
    min-height:108px;
    border-radius:14px;
}
.fert-formula-editor__footer{
    margin:0;
    padding:15px 22px;
    border-top:1px solid var(--border);
    background:var(--panel2);
}
.formula-editor-message{
    padding:10px 12px;
    border-radius:12px;
    background:var(--panel);
    border:1px solid var(--border);
    flex:1;
}
.formula-editor-message[data-state="success"]{
    border-color:rgba(53,184,116,.4);
    background:rgba(53,184,116,.07);
}
.formula-editor-message[data-state="success"]>span{color:#35b874}
.formula-editor-message[data-state="saving"]{
    border-color:color-mix(in srgb,var(--accent) 42%,var(--border));
    background:var(--accent-soft);
}
.formula-editor-message[data-state="warning"]{
    border-color:rgba(240,166,58,.42);
    background:rgba(240,166,58,.07);
}
.formula-editor-message[data-state="warning"]>span{color:#f0a63a}
.formula-editor-message[data-state="error"]{
    border-color:rgba(225,82,82,.45);
    background:rgba(225,82,82,.07);
}
.formula-editor-message[data-state="error"]>span{color:#e15252}
.formula-editor-actions{align-items:stretch}
.formula-write-button{
    min-width:190px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:2px;
    padding:10px 17px;
}
.formula-write-button small{
    font-size:.52rem;
    opacity:.78;
    letter-spacing:.08em;
}
.formula-write-button:disabled{
    opacity:.62;
    cursor:wait;
}
.fert-formula-editor.is-saving{
    box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 10%,transparent);
}
.fert-formula-editor.is-saving .fert-formula-editor__body{
    opacity:.72;
    pointer-events:none;
}
@media(max-width:1120px){
    .fert-formula-editor__body{grid-template-columns:1fr 1.45fr}
}
@media(max-width:760px){
    .fert-formula-editor__head,.fert-formula-editor__toolbar,.fert-formula-editor__body,.fert-formula-editor__footer{padding-left:15px;padding-right:15px}
    .fert-formula-editor__body{grid-template-columns:1fr}
    .formula-nutrient-grid{grid-template-columns:repeat(3,1fr)}
    .formula-editor-actions{grid-template-columns:1fr}
    .formula-write-button{min-width:0;width:100%}
}
@media(max-width:520px){
    .formula-nutrient-grid{grid-template-columns:1fr}
}

/* v2.4.5 formula editor action visibility + responsive layout */
.fert-formula-editor{--accent:#35b874;--accent-soft:rgba(53,184,116,.12);overflow:hidden}
.fert-formula-editor__body{min-width:0}
.fert-formula-editor__nutrients{min-width:0}
.formula-nutrient-grid{grid-template-columns:repeat(auto-fit,minmax(155px,1fr));min-width:0}
.formula-nutrient-card{min-width:0}
.formula-write-button{background:var(--accent,#35b874)!important;color:#fff!important;border-color:var(--accent,#35b874)!important;opacity:1!important;cursor:pointer!important;box-shadow:0 6px 16px rgba(53,184,116,.2)}
.formula-write-button:hover:not(:disabled){background:#2fa366!important;border-color:#2fa366!important;transform:translateY(-1px)}
.formula-write-button:disabled{background:#9aa7b1!important;border-color:#9aa7b1!important;opacity:.55!important;cursor:wait!important;box-shadow:none}
.fert-formula-editor.has-unsaved-changes .formula-write-button{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}
@media(max-width:1120px){.fert-formula-editor__body{grid-template-columns:1fr}.formula-nutrient-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.formula-nutrient-grid{grid-template-columns:1fr}}

/* v2.4.8 — LED controller mapping + Culturi */
.gc-source-pill.configured,.field-source-configured{background:rgba(122,92,220,.12);color:#8e72e5;border-color:rgba(122,92,220,.28)}
.led-culture-context,.culture-active-card{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:16px 18px;margin:14px 0}.led-culture-context h2,.culture-active-card h2{margin:4px 0;font-size:1.2rem}.led-culture-context h2 small,.culture-active-card h2 small{color:var(--muted);font-size:.68rem;font-weight:600}.led-culture-context p,.culture-active-card p{margin:0;color:var(--muted);font-size:.72rem}.led-context-actions,.culture-active-card>div:last-child{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.led-kpis{margin-top:0}.led-kpis .module-kpi-title{gap:7px}.led-kpis .field-source{margin-left:auto}.led-workspace-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(270px,.75fr);gap:12px;margin-top:12px}.led-workspace-grid>.gc-card,.led-zones-card,.led-technical-grid>.gc-card,.culture-workspace>.gc-card,.culture-create-card,.culture-history-card{padding:16px}.gc-card-head p{margin:5px 0 0;color:var(--muted);font-size:.68rem}.led-program-list{display:grid;gap:7px;margin-top:13px}.led-program-row{display:grid;grid-template-columns:32px 1fr 1fr 94px 84px;gap:10px;align-items:center;padding:10px;border:1px solid var(--border);border-radius:11px;background:var(--panel2);opacity:.68}.led-program-row.enabled{opacity:1;border-color:rgba(53,184,116,.35);background:rgba(53,184,116,.05)}.led-program-number{display:grid;place-items:center;width:27px;height:27px;border-radius:8px;background:var(--panel);font-weight:900}.led-program-row small,.led-program-row b{display:block}.led-program-row small{color:var(--muted);font-size:.54rem}.led-program-row b{margin-top:3px;font-size:.7rem}.led-program-row code{padding:6px;border-radius:7px;background:var(--panel);font-size:.66rem;text-align:center}.led-program-row em{color:var(--muted);font-size:.56rem;font-style:normal}.gc-note{margin:12px 0 0;color:var(--muted);font-size:.64rem;line-height:1.5}.led-target-list{display:grid;margin:12px 0 16px}.led-target-list>div{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--border)}.led-target-list dt{color:var(--muted);font-size:.68rem}.led-target-list dd{margin:0;font-size:.7rem;font-weight:850;text-align:right}.led-target-list.compact>div{padding:9px 0}.led-zones-card{margin-top:12px}.led-zone-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:13px}.led-zone-tile{padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--panel2)}.led-zone-tile.enabled{border-color:rgba(53,184,116,.38);box-shadow:inset 0 3px 0 #35b874}.led-zone-tile>div{display:flex;justify-content:space-between;align-items:center}.led-zone-tile span{color:var(--muted);font-size:.58rem}.led-zone-tile strong{font-size:1.2rem}.led-zone-tile i{display:block;margin:10px 0;color:var(--muted);font-size:.52rem;font-style:normal;font-weight:900}.led-zone-tile.enabled i{color:#35b874}.led-zone-tile p{margin:0;color:var(--muted);font-size:.56rem}.led-zone-tile>b{display:block;margin:4px 0 9px;font-size:.7rem}.led-zone-tile>small{display:block;color:var(--muted);font-size:.52rem;line-height:1.35}.led-reserved-zones{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.led-reserved-zones span{padding:8px 10px;border:1px dashed var(--border);border-radius:9px;color:var(--muted);font-size:.58rem}.led-reserved-zones b{margin-left:6px;color:var(--text)}.led-technical-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.led-tech-block{padding:12px;border:1px solid var(--border);border-radius:11px;background:var(--panel2);margin-top:9px}.led-tech-block>div{display:flex;justify-content:space-between;gap:10px}.led-tech-block code{color:var(--muted);font-size:.58rem}.led-tech-block dl{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:11px 0 0}.led-tech-block dl>div{padding:8px;border-radius:8px;background:var(--panel)}.led-tech-block dt,.led-tech-block dd{font-size:.58rem}.led-tech-block dt{color:var(--muted)}.led-tech-block dd{margin:4px 0 0;font-weight:900}.culture-status,.culture-errors{margin:14px 0;padding:12px 14px;border-radius:10px;font-size:.72rem}.culture-status{border:1px solid rgba(53,184,116,.38);background:rgba(53,184,116,.08);color:#35b874}.culture-errors{border:1px solid rgba(225,82,82,.4);background:rgba(225,82,82,.07)}.culture-workspace{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.55fr);gap:12px}.culture-form{margin-top:13px}.culture-form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.culture-form-grid.create{grid-template-columns:repeat(5,1fr)}.culture-form label>span{display:block;margin-bottom:6px;color:var(--muted);font-size:.62rem;font-weight:800}.culture-form input,.culture-form select{width:100%;min-height:42px;padding:9px 10px;border:1px solid var(--border);border-radius:9px;background:var(--panel2);color:var(--text);font:inherit;font-size:.72rem;font-weight:800}.culture-form label>div{position:relative}.culture-form label>div input{padding-right:78px}.culture-form label>div em{position:absolute;right:10px;top:14px;color:var(--muted);font-size:.55rem;font-style:normal}.culture-form-footer{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:14px;padding-top:13px;border-top:1px solid var(--border)}.culture-form-footer p{margin:0;color:var(--muted);font-size:.63rem}.culture-module-list{display:grid;gap:8px;margin-top:12px}.culture-module-list>div{padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--panel2)}.culture-module-list>div.active{border-color:rgba(53,184,116,.38);background:rgba(53,184,116,.06)}.culture-module-list b,.culture-module-list span{display:block}.culture-module-list b{font-size:.72rem}.culture-module-list span{margin-top:5px;color:var(--muted);font-size:.58rem}.culture-create-card,.culture-history-card{margin-top:12px}.culture-zone-picker{display:flex;gap:12px;flex-wrap:wrap;margin:14px 0 0;padding:12px;border:1px solid var(--border);border-radius:10px}.culture-zone-picker legend{padding:0 6px;color:var(--muted);font-size:.62rem}.culture-zone-picker label{display:flex;align-items:center;gap:5px;font-size:.65rem}.culture-zone-picker input{width:auto;min-height:0}.culture-history-row{display:grid;grid-template-columns:160px 1fr 140px;gap:12px;padding:10px 0;border-bottom:1px solid var(--border);font-size:.65rem}.culture-history-row time,.culture-history-row span{color:var(--muted)}
@media(max-width:1250px){.led-zone-grid{grid-template-columns:repeat(3,1fr)}.culture-form-grid.create{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.led-workspace-grid,.led-technical-grid,.culture-workspace{grid-template-columns:1fr}.culture-form-grid{grid-template-columns:repeat(2,1fr)}.led-program-row{grid-template-columns:32px 1fr 1fr}.led-program-row code,.led-program-row em{display:none}}
@media(max-width:620px){.led-culture-context,.culture-active-card,.culture-form-footer{align-items:flex-start;flex-direction:column}.led-zone-grid,.culture-form-grid,.culture-form-grid.create{grid-template-columns:1fr}.led-tech-block dl{grid-template-columns:1fr 1fr}.culture-history-row{grid-template-columns:1fr}}

/* v2.4.9 — approved LED dashboard restored; PLC mapping stays discreet */
.led-page-v249 .gc-card-head{gap:10px}
.led-card-head-actions,.led-source-pair{display:flex;align-items:center;justify-content:flex-end;gap:7px;min-width:0}
.led-page-v249 .module-kpi-title .field-source{flex:0 0 auto}
.led-page-v249 .module-kpi-foot span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.led-program-summary{display:flex;flex-direction:column;min-width:0}
.led-active-culture{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;padding:9px 10px;border:1px solid var(--border);border-radius:10px;background:var(--panel2);color:var(--text);text-align:left;text-decoration:none}
.led-active-culture>span{min-width:0}.led-active-culture small,.led-active-culture b,.led-active-culture em{display:block}.led-active-culture small{color:var(--muted);font-size:6px;font-weight:900;letter-spacing:.09em}.led-active-culture b{margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px}.led-active-culture em{margin-top:2px;color:#2ca04a;font-size:7px;font-style:normal;font-weight:750}.led-active-culture i{font-style:normal;flex:0 0 auto}
.led-program-summary .schedule-labels{margin-top:14px}.led-program-summary .schedule-track{margin-top:13px;margin-bottom:7px}.led-program-summary .schedule-total{margin-top:9px}.led-program-summary .schedule-period{margin-top:10px;padding-top:9px}
.led-plc-program-line{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:auto;padding-top:9px;color:var(--muted);font-size:7px}.led-plc-program-line code{padding:3px 5px;border-radius:5px;background:var(--panel2);color:var(--text);font-size:7px}
.led-estimate-target{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:12px;padding-top:10px;border-top:1px solid var(--border);font-size:8px}
.led-zone-compact{transition:border-color .15s ease,background .15s ease}.led-zone-compact.is-enabled{border-color:rgba(37,164,71,.3);background:rgba(37,164,71,.045)}.led-zone-compact.is-disabled{opacity:.6}.led-zone-compact em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.led-stats-list dt{display:flex;align-items:center;gap:5px}.led-stats-list dt i{font-style:normal}
.led-engineering-panel{margin-top:12px;padding:0;overflow:hidden}.led-engineering-panel>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 16px;cursor:pointer;list-style:none}.led-engineering-panel>summary::-webkit-details-marker{display:none}.led-engineering-panel>summary:before{content:"+";display:grid;place-items:center;flex:0 0 22px;width:22px;height:22px;border:1px solid var(--border);border-radius:7px;color:var(--muted);font-weight:900}.led-engineering-panel[open]>summary:before{content:"−"}.led-engineering-panel>summary>span:first-of-type{margin-right:auto}.led-engineering-panel>summary b,.led-engineering-panel>summary small{display:block}.led-engineering-panel>summary b{font-size:10px}.led-engineering-panel>summary small{margin-top:3px;color:var(--muted);font-size:7px}
.led-engineering-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:14px;padding:15px 16px 17px;border-top:1px solid var(--border);background:var(--panel2)}.led-engineering-grid>section{min-width:0;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--panel)}.led-engineering-grid>.gc-card-head code,.led-engineering-grid .gc-card-head code{color:var(--muted);font-size:8px}.led-program-list.compact{margin-top:10px}.led-program-list.compact .led-program-row{grid-template-columns:27px 1fr .8fr 80px 68px;padding:8px}.led-protection-list{margin-bottom:0}
.led-sensor-strip{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.led-sensor-strip>div{padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--panel2)}.led-sensor-strip>div>span{display:flex;align-items:center;justify-content:space-between;gap:7px}.led-sensor-strip b{font-size:8px}.led-sensor-strip strong{display:block;margin-top:8px;font-size:15px}.led-sensor-strip strong small{font-size:7px}.led-sensor-strip em{display:block;margin-top:4px;color:var(--muted);font-size:7px;font-style:normal}
html[data-theme="dark"] .led-zone-compact.is-enabled{background:rgba(37,164,71,.08)}
@media(max-width:1180px){.led-engineering-grid{grid-template-columns:1fr}.led-source-pair{flex-wrap:wrap}.led-source-pair .field-source{font-size:7px!important}}
@media(max-width:900px){.led-program-list.compact .led-program-row{grid-template-columns:27px 1fr .8fr}.led-program-list.compact .led-program-row code,.led-program-list.compact .led-program-row em{display:none}}
@media(max-width:720px){.led-card-head-actions{align-items:flex-end;flex-direction:column}.led-page-v249 .module-kpi-title{white-space:normal}.led-engineering-panel>summary{align-items:flex-start;flex-wrap:wrap}.led-engineering-panel>summary>.gc-source-pill{margin-left:36px}.led-active-culture{align-items:flex-start}.led-source-pair{justify-content:flex-start}.led-sensor-strip{grid-template-columns:1fr}}

/* v2.5.0 — Culturi: cycles, stages, module targets and immutable versions */
.cultures-page-v250{--crop:#2da34a;--crop-soft:rgba(45,163,74,.09)}
.gc-source-pill.initial{background:rgba(230,151,35,.12);color:#d4891a;border-color:rgba(230,151,35,.3)}
.culture-migration-warning{display:flex;align-items:center;gap:12px;margin:14px 0;padding:12px 14px;border:1px solid rgba(230,151,35,.35);border-radius:11px;background:rgba(230,151,35,.08);font-size:.68rem}.culture-migration-warning span{color:var(--muted)}.culture-migration-warning code{padding:3px 6px;border-radius:5px;background:var(--panel);color:var(--text)}
.culture-active-card-v250{margin-top:14px;border-color:rgba(45,163,74,.28);background:linear-gradient(120deg,var(--panel) 0%,var(--panel) 62%,var(--crop-soft) 100%)}
.culture-active-main{min-width:0}.culture-active-actions{justify-content:flex-end}.culture-active-actions form{margin:0}.gc-button.ghost{border:1px solid var(--border);background:transparent;color:var(--muted)}
.crop-status{display:inline-flex;align-items:center;justify-content:center;padding:5px 8px;border:1px solid var(--border);border-radius:999px;font-size:7px;font-weight:900;letter-spacing:.07em;white-space:nowrap}.crop-status-active{border-color:rgba(45,163,74,.34);background:var(--crop-soft);color:var(--crop)}.crop-status-paused,.crop-status-planned{border-color:rgba(230,151,35,.3);background:rgba(230,151,35,.09);color:#d4891a}.crop-status-finished{color:var(--muted)}.crop-status-demo{border-color:rgba(51,124,220,.25);background:rgba(51,124,220,.08);color:#337cdc}
.culture-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}.culture-summary-card{padding:14px 16px}.culture-summary-card span,.culture-summary-card small{display:block;color:var(--muted)}.culture-summary-card span{font-size:8px;font-weight:800}.culture-summary-card strong{display:block;margin:7px 0 5px;font-size:18px}.culture-summary-card small{font-size:7px}
.culture-stage-card{padding:16px;margin-bottom:12px}.culture-stage-counter{padding:6px 9px;border-radius:8px;background:var(--panel2);color:var(--muted);font-size:8px;font-weight:850}.culture-stage-timeline{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:14px}.crop-stage{position:relative;min-width:0;border:1px solid var(--border);border-radius:11px;background:var(--panel2);overflow:hidden}.crop-stage:after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:transparent}.crop-stage.is-current:after{background:var(--crop)}.crop-stage.is-completed:after{background:rgba(45,163,74,.45)}.crop-stage.is-selected{border-color:rgba(45,163,74,.5);box-shadow:0 0 0 2px rgba(45,163,74,.08)}.crop-stage>a{display:flex;align-items:center;gap:9px;padding:11px;color:var(--text);text-decoration:none}.crop-stage-number{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;border-radius:8px;background:var(--panel);font-size:8px;font-weight:900}.crop-stage a div{min-width:0}.crop-stage b,.crop-stage small{display:block}.crop-stage b{font-size:9px}.crop-stage small{margin-top:3px;color:var(--muted);font-size:6px;white-space:nowrap}.crop-stage form{padding:0 10px 10px}.crop-stage form button{width:100%;padding:5px;border:1px solid var(--border);border-radius:7px;background:var(--panel);color:var(--muted);font-size:7px;font-weight:800;cursor:pointer}.crop-stage-state{position:absolute;right:8px;top:7px;color:var(--crop);font-size:8px}
.culture-editor-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,.45fr);gap:12px;margin-bottom:12px}.culture-target-editor-v250,.culture-version-card{padding:16px;min-width:0}.culture-module-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--border)}.culture-module-tabs a{display:grid;grid-template-columns:24px 1fr;grid-template-rows:auto auto;align-items:center;column-gap:7px;padding:9px;border:1px solid var(--border);border-radius:9px;background:var(--panel2);color:var(--text);text-decoration:none}.culture-module-tabs a.active{border-color:rgba(45,163,74,.42);background:var(--crop-soft)}.culture-module-tabs i{grid-row:1/3;display:grid;place-items:center;width:24px;height:24px;border-radius:7px;background:var(--panel);font-size:10px;font-style:normal}.culture-module-tabs span{font-size:8px;font-weight:900;white-space:nowrap}.culture-module-tabs em{color:var(--muted);font-size:5px;font-style:normal;font-weight:900;letter-spacing:.06em}.culture-module-tabs a.active em{color:var(--crop)}
.culture-editor-head{margin-bottom:12px}.culture-target-form{margin:0}.culture-target-form fieldset{margin:0;padding:0;border:0}.culture-target-form fieldset:disabled{opacity:.58}.culture-strategy-name{display:block;margin-bottom:11px;max-width:430px}.culture-form-grid-led{grid-template-columns:repeat(5,minmax(0,1fr))}.culture-form-grid-irrigation{grid-template-columns:repeat(4,minmax(0,1fr))}.culture-change-note{display:block;margin-top:12px}.culture-form-hint{margin:12px 0 0;padding:9px 11px;border-radius:9px;background:var(--panel2);color:var(--muted);font-size:7px;line-height:1.5}.culture-cycle-notes{display:block;margin-top:13px}.culture-cycle-notes span{display:block;margin-bottom:6px;color:var(--muted);font-size:.62rem;font-weight:800}.culture-cycle-notes textarea{width:100%;padding:10px;border:1px solid var(--border);border-radius:9px;background:var(--panel2);color:var(--text);font:inherit;font-size:.72rem;resize:vertical}
.culture-period-table{display:grid;gap:7px}.culture-period-head,.culture-period-row{display:grid;align-items:center;gap:8px}.climate-period-table .culture-period-head,.climate-period-table .culture-period-row{grid-template-columns:1fr .9fr .9fr 1fr 1fr}.co2-period-table .culture-period-head,.co2-period-table .culture-period-row{grid-template-columns:1fr 1fr 1fr 1.2fr}.culture-period-head{padding:0 9px;color:var(--muted);font-size:7px;font-weight:850}.culture-period-row{padding:9px;border:1px solid var(--border);border-radius:9px;background:var(--panel2)}.culture-period-row>b{font-size:8px}.culture-period-row input{width:100%;min-width:0;min-height:36px;padding:7px 8px;border:1px solid var(--border);border-radius:7px;background:var(--panel);color:var(--text);font:inherit;font-size:8px;font-weight:800}.culture-period-row label{position:relative}.culture-period-row label input{padding-right:38px}.culture-period-row label em{position:absolute;right:7px;top:11px;color:var(--muted);font-size:6px;font-style:normal}
.culture-version-count{display:grid;place-items:center;width:25px;height:25px;border-radius:8px;background:var(--panel2);font-size:8px;font-weight:900}.culture-version-list{display:grid;gap:8px;margin-top:12px}.culture-version-list article{padding:11px;border:1px solid var(--border);border-radius:10px;background:var(--panel2)}.culture-version-list article.is-current{border-color:rgba(45,163,74,.38);background:var(--crop-soft)}.culture-version-list article>div{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:6px}.culture-version-list article>div b{font-size:9px}.culture-version-list article>div span{padding:3px 5px;border-radius:5px;background:var(--panel);color:var(--crop);font-size:5px;font-weight:900}.culture-version-list time{color:var(--muted);font-size:6px;text-align:right}.culture-version-list strong{display:block;margin-top:8px;font-size:8px}.culture-version-snapshot{display:grid!important;grid-template-columns:1fr!important;gap:3px!important;margin-top:6px;padding:7px;border-radius:7px;background:var(--panel)}.culture-version-snapshot span{padding:0!important;background:transparent!important;color:var(--text)!important;font-size:6px!important;font-weight:700!important;line-height:1.35}.culture-version-list p{margin:6px 0 4px;color:var(--muted);font-size:7px;line-height:1.4}.culture-version-list small{font-size:6px;color:var(--muted)}.culture-version-list form{margin-top:8px}.culture-version-list button,.culture-cycle-list button{padding:5px 7px;border:1px solid var(--border);border-radius:6px;background:var(--panel);color:var(--text);font-size:6px;font-weight:850;cursor:pointer}
.culture-lower-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:12px}.culture-cycle-list-card,.culture-event-card{padding:16px;min-width:0}.culture-cycle-list,.culture-event-list{display:grid;margin-top:10px}.culture-cycle-list>div{display:grid;grid-template-columns:9px minmax(0,1fr) auto auto;align-items:center;gap:9px;padding:10px 0;border-top:1px solid var(--border)}.crop-cycle-dot{width:7px;height:7px;border:2px solid var(--muted);border-radius:50%}.culture-cycle-list>div.is-active .crop-cycle-dot{border-color:var(--crop);background:var(--crop)}.culture-cycle-list section b,.culture-cycle-list section small{display:block}.culture-cycle-list section b{font-size:8px}.culture-cycle-list section small{margin-top:3px;color:var(--muted);font-size:6px}.culture-cycle-list form{margin:0}.culture-event-list>div{display:grid;grid-template-columns:92px 1fr;gap:10px;padding:10px 0;border-top:1px solid var(--border)}.culture-event-list time{color:var(--muted);font-size:6px}.culture-event-list b,.culture-event-list small{display:block}.culture-event-list b{font-size:8px;line-height:1.35}.culture-event-list small{margin-top:4px;color:var(--muted);font-size:6px}
.culture-create-card-v250{margin-top:12px;padding:0;overflow:hidden}.culture-create-card-v250>summary{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;cursor:pointer;list-style:none}.culture-create-card-v250>summary::-webkit-details-marker{display:none}.culture-create-card-v250>summary b,.culture-create-card-v250>summary small{display:block}.culture-create-card-v250>summary b{font-size:10px}.culture-create-card-v250>summary small{margin-top:3px;color:var(--muted);font-size:7px}.culture-create-card-v250>summary i{display:grid;place-items:center;width:25px;height:25px;border:1px solid var(--border);border-radius:8px;font-style:normal}.culture-create-card-v250[open]>summary i{transform:rotate(45deg)}.culture-create-card-v250>.culture-form{margin:0;padding:15px 16px 17px;border-top:1px solid var(--border);background:var(--panel2)}
html[data-theme="dark"] .culture-active-card-v250{background:linear-gradient(120deg,var(--panel) 0%,var(--panel) 62%,rgba(45,163,74,.08) 100%)}
@media(max-width:1260px){.culture-summary-grid{grid-template-columns:repeat(2,1fr)}.culture-stage-timeline{grid-template-columns:repeat(3,1fr)}.culture-form-grid-led{grid-template-columns:repeat(3,1fr)}.culture-form-grid-irrigation{grid-template-columns:repeat(3,1fr)}}
@media(max-width:980px){.culture-editor-grid,.culture-lower-grid{grid-template-columns:1fr}.culture-module-tabs{grid-template-columns:repeat(2,1fr)}.culture-stage-timeline{grid-template-columns:1fr 1fr}.climate-period-table .culture-period-head,.co2-period-table .culture-period-head{display:none}.climate-period-table .culture-period-row,.co2-period-table .culture-period-row{grid-template-columns:1fr 1fr}.culture-period-row>b{grid-column:1/-1}.culture-form-grid-led,.culture-form-grid-irrigation{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.culture-summary-grid,.culture-stage-timeline,.culture-module-tabs,.culture-form-grid-led,.culture-form-grid-irrigation{grid-template-columns:1fr}.culture-active-actions{justify-content:flex-start}.culture-cycle-list>div{grid-template-columns:9px 1fr}.culture-cycle-list .crop-status,.culture-cycle-list form{grid-column:2}.climate-period-table .culture-period-row,.co2-period-table .culture-period-row{grid-template-columns:1fr}.culture-period-row>b{grid-column:auto}.culture-event-list>div{grid-template-columns:1fr}.culture-migration-warning{align-items:flex-start;flex-direction:column}}
.culture-cycle-list>div{grid-template-columns:9px minmax(0,1fr) auto auto auto}.crop-cycle-open{padding:5px 7px;border:1px solid var(--border);border-radius:6px;color:var(--muted);font-size:6px;font-weight:850;text-decoration:none}
.culture-inactive-note{max-width:170px;color:var(--muted);font-size:7px;line-height:1.35;text-align:right}
@media(max-width:620px){.culture-cycle-list>div{grid-template-columns:9px 1fr}.culture-cycle-list .crop-status,.culture-cycle-list .crop-cycle-open,.culture-cycle-list form{grid-column:2}}

/* v2.5.1 — reusable PLC / I/O live panel; LED is the first implementation */
.plc-io-live-panel{margin-top:12px;padding:0;overflow:hidden}
.plc-io-live-panel>summary{display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;list-style:none}
.plc-io-live-panel>summary::-webkit-details-marker{display:none}
.plc-io-summary-icon{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border:1px solid rgba(50,126,221,.28);border-radius:9px;background:rgba(50,126,221,.09);color:#327edd;font-size:15px}
.plc-io-summary-copy{margin-right:auto;min-width:0}.plc-io-summary-copy b,.plc-io-summary-copy small{display:block}.plc-io-summary-copy b{font-size:10px}.plc-io-summary-copy small{margin-top:3px;color:var(--muted);font-size:7px}
.plc-io-summary-state{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}
.plc-io-live-panel>summary:after{content:"+";display:grid;place-items:center;flex:0 0 23px;width:23px;height:23px;border:1px solid var(--border);border-radius:7px;color:var(--muted);font-weight:900}
.plc-io-live-panel[open]>summary:after{content:"−"}
.plc-io-panel-body{padding:16px;border-top:1px solid var(--border);background:var(--panel2)}
.plc-io-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:14px}.plc-io-toolbar h2{margin:4px 0 5px;font-size:15px}.plc-io-toolbar p{max-width:720px;margin:0;color:var(--muted);font-size:8px;line-height:1.5}
.plc-io-safety{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.plc-lock-state{min-width:90px;padding:8px 10px;border:1px solid var(--border);border-radius:9px;background:var(--panel);color:var(--muted);font-size:7px;font-weight:900;text-align:center;letter-spacing:.04em}.plc-lock-state.is-unlocked{border-color:rgba(46,163,74,.35);background:rgba(46,163,74,.08);color:#2ea34a}.gc-button.danger{border-color:rgba(218,68,68,.34);background:rgba(218,68,68,.08);color:#d74444}.gc-button:disabled{opacity:.42;cursor:not-allowed}
.plc-rack{display:grid;grid-template-columns:1.35fr 1fr .9fr .65fr;gap:9px;padding:10px;border:1px solid var(--border);border-radius:13px;background:linear-gradient(180deg,color-mix(in srgb,var(--panel) 93%,#000),var(--panel));box-shadow:inset 0 -5px 0 color-mix(in srgb,var(--border) 60%,transparent)}
.plc-rack-module{min-width:0;border:1px solid var(--border);border-radius:10px;background:var(--panel2);overflow:hidden}.plc-rack-module>header{display:grid;grid-template-columns:31px 1fr;align-items:center;column-gap:8px;padding:9px 10px;border-bottom:1px solid var(--border);background:var(--panel)}.plc-rack-module>header>span{grid-row:1/3;display:grid;place-items:center;width:31px;height:31px;border-radius:8px;background:rgba(50,126,221,.11);color:#327edd;font-size:10px;font-weight:950}.plc-rack-module>header b{font-size:8px}.plc-rack-module>header small{color:var(--muted);font-size:6px}.plc-rack-di>header>span{background:rgba(44,165,76,.11);color:#2ca54c}.plc-rack-ai>header>span{background:rgba(121,84,200,.12);color:#7954c8}.plc-rack-ao>header>span{background:rgba(232,146,35,.12);color:#d88418}
.plc-terminal-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;padding:9px}.plc-terminal{display:grid;place-items:center;gap:3px;min-width:0;padding:6px 3px;border:1px solid var(--border);border-radius:7px;background:var(--panel)}.plc-terminal i{width:8px;height:8px;border:2px solid var(--border);border-radius:50%;background:var(--panel2)}.plc-terminal b{font-size:6px}.plc-terminal small{overflow:hidden;width:100%;color:var(--muted);font-size:4px;text-align:center;text-overflow:ellipsis}.plc-terminal.is-unmapped{opacity:.65}
.plc-terminal-list{display:grid;padding:7px}.plc-terminal-list>div{display:grid;grid-template-columns:9px minmax(0,1fr) auto;align-items:center;gap:7px;padding:7px 3px;border-bottom:1px solid var(--border)}.plc-terminal-list>div:last-child{border-bottom:0}.plc-terminal-list b,.plc-terminal-list small{display:block}.plc-terminal-list b{font-size:6px}.plc-terminal-list span small{margin-top:2px;color:var(--muted);font-size:5px}.plc-terminal-list em{color:var(--muted);font-size:6px;font-style:normal;font-weight:850;text-align:right}.plc-terminal-list em small{font-size:4px}.plc-signal-dot{width:8px;height:8px;border-radius:50%;background:#798391;box-shadow:0 0 0 3px rgba(121,131,145,.1)}.plc-signal-dot.live{background:#2ca54c;box-shadow:0 0 0 3px rgba(44,165,76,.12)}.plc-signal-dot.demo{background:#7954c8;box-shadow:0 0 0 3px rgba(121,84,200,.12)}.plc-signal-dot.offline{background:#d88418;box-shadow:0 0 0 3px rgba(216,132,24,.12)}
.plc-zone-command-section{margin-top:12px;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--panel)}.plc-zone-command-section .gc-card-head{margin-bottom:11px}.plc-command-note{color:var(--muted);font-size:7px;font-weight:800}.plc-zone-command-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.plc-zone-command{min-width:0;padding:10px;border:1px solid var(--border);border-radius:11px;background:var(--panel2);color:var(--text);font:inherit;text-align:left;transition:border-color .15s ease,background .15s ease,transform .15s ease;cursor:pointer}.plc-zone-command:hover:not(:disabled){border-color:rgba(50,126,221,.42);transform:translateY(-1px)}.plc-zone-command:disabled{opacity:.55;cursor:not-allowed}.plc-zone-command.is-testing{border-color:rgba(50,126,221,.62);background:rgba(50,126,221,.08);box-shadow:inset 0 3px 0 #327edd}.plc-zone-command-head{display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:6px}.plc-zone-command-head b{overflow:hidden;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.plc-zone-command-head em{color:var(--muted);font-size:5px;font-style:normal}.plc-output-led{width:8px;height:8px;border-radius:50%;background:#7f8791;box-shadow:0 0 0 3px rgba(127,135,145,.1)}.plc-zone-command.is-testing .plc-output-led{background:#327edd;box-shadow:0 0 9px #327edd}.plc-zone-command>strong{display:block;min-height:25px;margin:8px 0;color:var(--muted);font-size:6px;line-height:1.4}.plc-zone-state-row{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:5px 0;border-top:1px solid var(--border)}.plc-zone-state-row small{color:var(--muted);font-size:5px}.plc-zone-state-row b{font-size:6px}.plc-zone-state-row b.unmapped{color:#7f8791}.plc-zone-state-row b.warning{color:#d88418}.plc-zone-command.is-testing [data-plc-command-state]{color:#327edd}.plc-zone-test-label{display:block;margin-top:7px;padding:6px;border-radius:7px;background:var(--panel);color:#327edd;font-size:6px;font-weight:900;text-align:center}.plc-zone-command.is-testing .plc-zone-test-label{background:#327edd;color:#fff}
.plc-io-footer{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:10px;margin-top:10px}.plc-io-feedback,.plc-io-journal{padding:11px 13px;border:1px solid var(--border);border-radius:10px;background:var(--panel);font-size:7px}.plc-io-feedback{display:flex;align-items:center;color:var(--muted);line-height:1.55}.plc-io-feedback.is-working{border-color:rgba(50,126,221,.3);background:rgba(50,126,221,.07);color:#327edd}.plc-io-feedback.is-success{border-color:rgba(44,165,76,.3);background:rgba(44,165,76,.07);color:#2ca54c}.plc-io-feedback.is-error{border-color:rgba(215,68,68,.3);background:rgba(215,68,68,.07);color:#d74444}.plc-io-journal .gc-card-head{margin-bottom:6px}.plc-io-journal .gc-card-head span{color:var(--muted);font-size:5px;font-weight:850}.plc-io-journal [data-plc-journal]{display:grid}.plc-io-journal [data-plc-journal]>p{margin:0;padding:5px 0;color:var(--muted);font-size:6px}.plc-journal-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:7px;padding:6px 0;border-top:1px solid var(--border);font-size:6px}.plc-journal-row time{color:var(--muted)}.plc-journal-row b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plc-journal-row em{color:#7954c8;font-style:normal;font-weight:850}
html[data-theme="dark"] .plc-rack{background:linear-gradient(180deg,#17202b,#0f1720)}
@media(max-width:1250px){.plc-rack{grid-template-columns:1fr 1fr}.plc-zone-command-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:800px){.plc-io-toolbar,.plc-io-footer{grid-template-columns:1fr;display:grid}.plc-io-safety{justify-content:flex-start}.plc-rack{grid-template-columns:1fr}.plc-zone-command-grid{grid-template-columns:1fr 1fr}.plc-io-summary-state{display:none}}
@media(max-width:520px){.plc-zone-command-grid{grid-template-columns:1fr}.plc-io-live-panel>summary{align-items:flex-start}.plc-io-summary-copy small{white-space:normal}}

/* v2.5.2 — readable live LED commissioning controls */
.plc-io-live-panel>summary{min-height:64px;padding:16px 18px}
.plc-io-summary-icon{flex-basis:36px;width:36px;height:36px;font-size:18px}
.plc-io-summary-copy b{font-size:14px}
.plc-io-summary-copy small{margin-top:4px;font-size:10px}
.plc-io-live-panel>summary:after{flex-basis:28px;width:28px;height:28px;font-size:16px}
.plc-io-panel-body{padding:20px}
.plc-io-toolbar{align-items:center;margin-bottom:18px}
.plc-io-toolbar .gc-eyebrow{font-size:9px}
.plc-io-toolbar h2{margin:5px 0 7px;font-size:21px}
.plc-io-toolbar p{max-width:820px;font-size:12px;line-height:1.55}
.plc-io-safety{gap:10px}
.plc-lock-state{min-width:130px;padding:11px 13px;font-size:10px}
.plc-io-safety .gc-button{min-height:40px;padding:10px 14px;font-size:11px}
.plc-rack{grid-template-columns:1.25fr 1.05fr 1fr .75fr;gap:12px;padding:13px}
.plc-rack-module>header{grid-template-columns:39px 1fr;column-gap:10px;padding:12px}
.plc-rack-module>header>span{width:39px;height:39px;font-size:12px}
.plc-rack-module>header b{font-size:11px}
.plc-rack-module>header small{font-size:9px}
.plc-terminal-grid{gap:8px;padding:12px}
.plc-terminal{gap:5px;min-height:57px;padding:8px 5px}
.plc-terminal i{width:11px;height:11px}
.plc-terminal b{font-size:9px}
.plc-terminal small{font-size:7px}
.plc-terminal.is-live{border-color:rgba(44,165,76,.38);opacity:1}
.plc-terminal.is-live i{border-color:#2ca54c;background:#2ca54c;box-shadow:0 0 0 4px rgba(44,165,76,.12)}
.plc-terminal.is-active i{background:#f3b72b;box-shadow:0 0 12px rgba(243,183,43,.75)}
.plc-terminal-list{padding:10px}
.plc-terminal-list>div{grid-template-columns:12px minmax(0,1fr) auto;gap:9px;padding:10px 4px}
.plc-terminal-list b{font-size:9px}
.plc-terminal-list span small{margin-top:3px;font-size:8px}
.plc-terminal-list em{font-size:9px}
.plc-terminal-list em small{font-size:7px}
.plc-signal-dot{width:10px;height:10px}
.plc-zone-command-section{margin-top:16px;padding:18px}
.plc-zone-command-section .gc-card-head{margin-bottom:14px}
.plc-zone-command-section .gc-eyebrow{font-size:8px}
.plc-zone-command-section .gc-card-head h2{margin-top:4px;font-size:18px}
.plc-command-note{font-size:10px}
.plc-zone-command-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.plc-zone-command{min-height:184px;padding:15px}
.plc-zone-command-head{grid-template-columns:13px minmax(0,1fr) auto;gap:8px}
.plc-zone-command-head b{font-size:13px}
.plc-zone-command-head em{font-size:9px}
.plc-output-led{width:11px;height:11px}
.plc-zone-command.is-live-state .plc-output-led{background:#f3b72b;box-shadow:0 0 12px rgba(243,183,43,.72)}
.plc-zone-command>strong{min-height:34px;margin:12px 0;font-size:10px;line-height:1.5}
.plc-zone-state-row{padding:8px 0}
.plc-zone-state-row small{font-size:9px}
.plc-zone-state-row b{font-size:10px}
.plc-zone-state-row b.live{color:#2ca54c}
.plc-zone-state-row b.offline{color:#d88418}
.plc-zone-test-label{margin-top:11px;padding:10px;font-size:11px}
.plc-io-footer{gap:12px;margin-top:13px}
.plc-io-feedback,.plc-io-journal{padding:15px 17px;font-size:11px}
.plc-io-journal .gc-card-head span{font-size:8px}
.plc-io-journal [data-plc-journal]>p{padding:8px 0;font-size:10px}
.plc-journal-row{grid-template-columns:75px minmax(0,1fr) auto;gap:10px;padding:9px 0;font-size:10px}
@media(max-width:1450px){.plc-rack{grid-template-columns:1fr 1fr}.plc-zone-command-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:980px){.plc-zone-command-grid{grid-template-columns:1fr 1fr}.plc-io-toolbar{align-items:flex-start;flex-direction:column}.plc-io-safety{justify-content:flex-start}}
@media(max-width:620px){.plc-zone-command-grid,.plc-rack{grid-template-columns:1fr}.plc-io-panel-body{padding:14px}.plc-zone-command{min-height:0}}

/* GreenControl v2.6.0 · External Sunshade */
.sunshade-page{padding-bottom:74px}.sunshade-hero-grid{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(430px,1.25fr) minmax(310px,.85fr);gap:12px;margin-bottom:12px}.sunshade-position-card,.sunshade-input-card,.sunshade-live-card{min-height:300px}.sunshade-position-visual{display:flex;align-items:center;justify-content:center;gap:24px;min-height:145px}.sunshade-house{position:relative;width:150px;height:92px;border:2px solid var(--border);border-top:0;border-radius:0 0 8px 8px}.sunshade-house:before,.sunshade-house:after{content:"";position:absolute;top:-34px;width:92px;height:2px;background:var(--muted)}.sunshade-house:before{left:-4px;transform:rotate(-22deg);transform-origin:left}.sunshade-house:after{right:-4px;transform:rotate(22deg);transform-origin:right}.sunshade-house i{position:absolute;left:2px;right:2px;top:-19px;height:12px;border-radius:4px;background:repeating-linear-gradient(90deg,#4aa661 0 9px,#82c391 9px 14px);transform-origin:left center;transform:scaleX(calc(var(--shade-position) / 100));transition:transform .25s ease}.sunshade-house span{position:absolute;left:50%;bottom:0;width:2px;height:64px;background:var(--border)}.sunshade-position-number b{font-size:42px;line-height:1}.sunshade-position-number small{font-size:15px;color:var(--muted);margin-left:3px}.sunshade-state-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;border-top:1px solid var(--border);padding-top:12px}.sunshade-state-row span{display:flex;flex-direction:column;gap:4px}.sunshade-state-row small{font-size:7px;color:var(--muted);text-transform:uppercase}.sunshade-state-row b{font-size:10px}.sunshade-input-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.sunshade-input-grid>div{min-height:83px;padding:10px;border:1px solid var(--border);border-radius:9px;background:var(--panel2);display:grid;grid-template-columns:auto 1fr;gap:4px 8px;align-items:center}.sunshade-input-grid>div>span{grid-row:1/3;font-size:19px}.sunshade-input-grid small{font-size:7px;color:var(--muted)}.sunshade-input-grid b{font-size:13px}.sunshade-input-grid em{font-size:7px;color:var(--muted);font-style:normal}.sunshade-input-grid .danger{border-color:#d35f5f}.sunshade-input-grid .ok{border-color:#64ad77}.sunshade-control-note{min-height:42px;margin:0 0 12px;color:var(--muted);font-size:9px;line-height:1.5}.sunshade-command-buttons{display:grid;grid-template-columns:1fr .8fr 1fr;gap:7px}.sunshade-command-buttons button,.sunshade-arm,.gc-primary-button{border:1px solid #6aae7b;border-radius:8px;background:#edf8f0;color:#236839;padding:10px 11px;font-weight:800;font-size:9px;cursor:pointer}.sunshade-command-buttons button.stop{border-color:#d2a45e;background:#fff8e9;color:#8c621d}.sunshade-command-buttons button:disabled,.sunshade-arm:disabled{opacity:.45;cursor:not-allowed}.sunshade-arm{width:100%;margin-top:8px;background:#2f9949;color:white}.sunshade-command-feedback{margin-top:10px;padding:9px;border-radius:7px;background:var(--panel2);color:var(--muted);font-size:8px;line-height:1.5}.sunshade-config-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.sunshade-config-grid>.gc-card{min-height:280px}.sunshade-mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:14px}.sunshade-mode-switch input{display:none}.sunshade-mode-switch span{display:block;padding:10px;border:1px solid var(--border);border-radius:7px;background:var(--panel2);text-align:center;font-size:9px;font-weight:800;cursor:pointer}.sunshade-mode-switch input:checked+span{border-color:#69aa7a;background:#eaf7ee;color:#27723c}.gc-form-field{display:grid;gap:6px;margin:10px 0}.gc-form-field>span,.sunshade-level-row label span,.sunshade-time-grid label span,.sunshade-number-grid label>span{font-size:8px;color:var(--muted);font-weight:700}.gc-form-field select,.gc-form-field input,.sunshade-level-row input,.sunshade-time-grid input,.sunshade-number-grid input{width:100%;box-sizing:border-box;border:1px solid var(--border);border-radius:7px;background:var(--panel2);color:var(--text);padding:9px;font-size:9px}.sunshade-levels{display:grid;gap:7px}.sunshade-level-row{display:grid;grid-template-columns:62px 1fr 18px 1fr 16px;gap:7px;align-items:end}.sunshade-level-row b{font-size:8px;align-self:center}.sunshade-level-row label{display:grid;gap:4px}.sunshade-level-row .arrow,.sunshade-level-row em{align-self:center;text-align:center;color:var(--muted);font-size:9px;font-style:normal}.sunshade-help{display:block;margin-top:10px;color:var(--muted);font-size:8px;line-height:1.5}.sunshade-number-grid{display:grid;gap:9px}.sunshade-number-grid label{display:grid;grid-template-columns:1fr 110px;gap:12px;align-items:center}.sunshade-number-grid label>div,.gc-form-field.inline>div{display:grid;grid-template-columns:1fr 25px;align-items:center;gap:5px}.sunshade-number-grid em,.gc-form-field.inline em{font-size:8px;color:var(--muted);font-style:normal}.gc-switch-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.gc-switch-row>span{display:grid;gap:3px}.gc-switch-row b{font-size:9px}.gc-switch-row small{font-size:7px;color:var(--muted)}.gc-switch-row input{width:34px;height:18px;accent-color:#4fa865}.sunshade-time-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.sunshade-time-grid label{display:grid;gap:5px}.sunshade-map-row{display:flex;align-items:center;justify-content:space-between;padding:10px;border-bottom:1px solid var(--border);font-size:9px}.sunshade-map-row b{font-size:8px}.sunshade-mapping-card p{color:var(--muted);font-size:8px;line-height:1.5}.sunshade-savebar{position:sticky;bottom:12px;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:12px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--panel);box-shadow:var(--shadow)}.sunshade-savebar span{font-size:8px;color:var(--muted)}.sunshade-savebar .gc-primary-button{background:#2f9949;color:white;min-width:190px}
html[data-theme="dark"] .sunshade-command-buttons button{background:#21382a;color:#9cdeb0}html[data-theme="dark"] .sunshade-command-buttons button.stop{background:#3a3120;color:#edc77c}html[data-theme="dark"] .sunshade-mode-switch input:checked+span{background:#203a29;color:#a4e3b5}
@media(max-width:1250px){.sunshade-hero-grid{grid-template-columns:1fr 1fr}.sunshade-live-card{grid-column:1/-1}.sunshade-config-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.sunshade-hero-grid,.sunshade-config-grid{grid-template-columns:1fr}.sunshade-live-card{grid-column:auto}.sunshade-input-grid{grid-template-columns:1fr 1fr}.sunshade-state-row{grid-template-columns:1fr}.sunshade-savebar{position:static;align-items:stretch;flex-direction:column}.sunshade-savebar .gc-primary-button{width:100%}.sunshade-level-row{grid-template-columns:1fr 1fr;align-items:end}.sunshade-level-row b{grid-column:1/-1}.sunshade-level-row .arrow,.sunshade-level-row em{display:none}}


/* v2.6.1 — External Sunshade UX + functional mobile hamburger */
.sunshade-v261{max-width:1560px;margin:0 auto}
.sunshade-v261 .sunshade-hero-grid{grid-template-columns:minmax(360px,1.15fr) minmax(430px,1.2fr) minmax(320px,.8fr);align-items:stretch}
.sunshade-v261 .sunshade-position-card,.sunshade-v261 .sunshade-input-card,.sunshade-v261 .sunshade-live-card{min-height:270px}
.sunshade-v261 .sunshade-command-buttons button{min-height:58px;display:grid;place-items:center;align-content:center;gap:3px}
.sunshade-v261 .sunshade-command-buttons button span{font-size:19px;line-height:1}.sunshade-v261 .sunshade-command-buttons button b{font-size:8px}
.sunshade-section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:18px 2px 10px}
.sunshade-section-title h2{margin:4px 0 0;font-size:19px}.sunshade-section-title p{margin:5px 0 0;color:var(--muted);font-size:9px;line-height:1.5}
.sunshade-config-grid-v261{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.sunshade-config-grid-v261>.gc-card{min-height:0;position:relative}
.sunshade-config-grid-v261>.gc-card:nth-child(1),
.sunshade-config-grid-v261>.gc-card:nth-child(2){min-height:300px}
.sunshade-config-grid-v261>.gc-card:nth-child(5){border-color:color-mix(in srgb,var(--green) 35%,var(--border))}
.sunshade-config-grid-v261>.gc-card:nth-child(6){background:color-mix(in srgb,var(--panel2) 35%,var(--panel))}
.sunshade-v261 .sunshade-level-row{padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--panel2)}
.sunshade-v261 .sunshade-number-grid label{padding:8px 0;border-bottom:1px solid var(--border)}
.sunshade-v261 .sunshade-number-grid label:last-child{border-bottom:0}
.sunshade-v261 .sunshade-time-grid{padding:10px;border:1px solid var(--border);border-radius:9px;background:var(--panel2)}
.sunshade-v261 .gc-switch-row{min-height:52px}
.sunshade-v261 .sunshade-map-row{background:var(--panel2);margin-bottom:4px;border:1px solid var(--border);border-radius:7px}

.sidebar-backdrop{display:none}
@media(min-width:821px){.mobile-menu{display:none}}
@media(max-width:1180px){
  .sunshade-v261 .sunshade-hero-grid{grid-template-columns:1fr 1fr}
  .sunshade-v261 .sunshade-live-card{grid-column:1/-1}
}
@media(max-width:820px){
  body.sidebar-open{overflow:hidden}
  .mobile-menu{display:grid!important;place-items:center;width:42px;height:42px;flex:0 0 42px;border:1px solid var(--border)!important;border-radius:9px!important;background:var(--panel)!important;box-shadow:var(--shadow);font-size:20px!important;position:relative;z-index:81}
  .sidebar{position:fixed!important;left:0!important;top:0!important;bottom:0!important;width:min(86vw,330px)!important;height:100dvh!important;z-index:90!important;transform:translateX(-105%);transition:transform .22s ease;overflow-y:auto;box-shadow:0 22px 50px rgba(0,0,0,.32)}
  body.sidebar-open .sidebar{transform:translateX(0)}
  .sidebar-backdrop{display:block;position:fixed;inset:0;z-index:85;border:0;background:rgba(5,12,18,.48);opacity:0;pointer-events:none;transition:opacity .2s ease}
  body.sidebar-open .sidebar-backdrop{opacity:1;pointer-events:auto}
  .nav-list{display:flex!important;flex-direction:column!important}
  .sidebar-bottom{display:block!important}
  .sunshade-config-grid-v261{grid-template-columns:1fr}
}
@media(max-width:760px){
  .sunshade-v261 .sunshade-hero-grid{grid-template-columns:1fr}
  .sunshade-v261 .sunshade-live-card{grid-column:auto}
  .sunshade-section-title{align-items:flex-start}
}


/* v2.7.0 — External Sunshade mapped controller UX */
.sunshade-v270{max-width:1560px;margin:0 auto}.sunshade-operator-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:12px;margin-bottom:12px}.sunshade-status-card,.sunshade-manual-card{min-height:255px}.sunshade-status-body{display:grid;grid-template-columns:1.2fr .8fr;gap:14px;align-items:center}.sunshade-state-list{display:grid;gap:7px}.sunshade-state-list>div{padding:11px 12px;border:1px solid var(--border);border-radius:8px;background:var(--panel2);display:grid;gap:3px}.sunshade-state-list small,.register-chip{font-size:7px;color:var(--muted);font-weight:700}.sunshade-state-list b{font-size:10px}.ok-text{color:var(--green)!important}.register-chip{padding:6px 8px;border:1px solid var(--border);border-radius:999px;background:var(--panel2);white-space:nowrap}.register-chip.warning{color:#b98426}.sunshade-command-buttons-v270 button{min-height:74px}.sunshade-command-buttons-v270 button small{font-size:6px;opacity:.72}.danger-stop{border-color:color-mix(in srgb,#c94b4b 55%,var(--border))!important}.sunshade-input-grid-v270{grid-template-columns:repeat(5,minmax(0,1fr))}.sunshade-config-grid-v270{grid-template-columns:1fr 1fr}.sunshade-config-grid-v270 .span-2{grid-column:1/-1}.sunshade-mode-layout{display:grid;grid-template-columns:220px 1fr 190px;gap:12px;align-items:center}.sunshade-mode-switch.mode-4{grid-template-columns:repeat(4,1fr)}.sunshade-basis-switch{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:12px}.sunshade-basis-switch label{cursor:pointer}.sunshade-basis-switch input{position:absolute;opacity:0}.sunshade-basis-switch span{min-height:56px;border:1px solid var(--border);border-radius:8px;background:var(--panel2);display:grid;place-items:center;align-content:center;gap:4px;text-align:center}.sunshade-basis-switch input:checked+span{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green);background:color-mix(in srgb,var(--green-dark) 48%,var(--panel2))}.sunshade-basis-switch b{font-size:9px}.sunshade-basis-switch small{font-size:7px;color:var(--muted)}.mapped-levels .sunshade-level-row{grid-template-columns:120px 1fr 28px 1fr}.mapped-inline{margin-top:10px}.sunshade-number-grid.stacked{grid-template-columns:1fr}.sunshade-number-grid.stacked label{padding:9px 0;border-bottom:1px solid var(--border)}.sunshade-number-grid.stacked label:last-child{border-bottom:0}.sunshade-interval-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.interval-card{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px;border:1px solid var(--border);border-radius:9px;background:var(--panel2)}.interval-card>div{grid-column:1/-1}.interval-card label{display:grid;gap:5px}.interval-card label span{font-size:7px;color:var(--muted);font-weight:700}.interval-card input{width:100%;box-sizing:border-box;border:1px solid var(--border);border-radius:7px;background:var(--panel);color:var(--text);padding:9px}.interval-title{display:flex;justify-content:space-between;align-items:center}.interval-title>span{display:grid;gap:2px}.interval-title b{font-size:10px}.interval-title small,.mini-check{font-size:7px;color:var(--muted)}.mini-check{display:flex!important;grid-column:auto!important;align-items:center;gap:5px}.sunshade-protocol-card details summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none}.sunshade-protocol-card summary span:first-child{display:grid;gap:3px}.sunshade-protocol-card summary b{font-size:10px}.sunshade-protocol-card summary small{font-size:7px;color:var(--muted)}.protocol-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:14px 0}.protocol-meta>div{padding:9px;border:1px solid var(--border);border-radius:8px;background:var(--panel2);display:grid;gap:4px;min-width:0}.protocol-meta small{font-size:6px;color:var(--muted)}.protocol-meta b{font-size:7px;overflow-wrap:anywhere}.protocol-table-wrap{overflow:auto;border:1px solid var(--border);border-radius:8px}.protocol-table{width:100%;border-collapse:collapse;min-width:900px}.protocol-table th,.protocol-table td{padding:7px 8px;border-bottom:1px solid var(--border);font-size:7px;text-align:left}.protocol-table th{background:var(--panel2);color:var(--muted)}.protocol-table td small{display:block;color:var(--muted);margin-top:2px}.protocol-table code{font-size:6px;white-space:nowrap}.protocol-table .warning-row{background:rgba(198,143,42,.08)}.protocol-note{font-size:7px;line-height:1.5;color:var(--muted);margin:10px 0 0}.warning-text{color:#a77722!important}
@media(max-width:1180px){.sunshade-mode-layout{grid-template-columns:1fr}.sunshade-mode-switch.mode-4{grid-template-columns:repeat(2,1fr)}.protocol-meta{grid-template-columns:1fr 1fr}}
@media(max-width:820px){.sunshade-operator-grid,.sunshade-config-grid-v270{grid-template-columns:1fr}.sunshade-config-grid-v270 .span-2{grid-column:auto}.sunshade-input-grid-v270{grid-template-columns:1fr 1fr}.sunshade-status-body{grid-template-columns:1fr}.sunshade-interval-grid{grid-template-columns:1fr}.protocol-meta{grid-template-columns:1fr}.sunshade-basis-switch{grid-template-columns:1fr}.sunshade-mode-switch.mode-4{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.sunshade-command-buttons-v270{grid-template-columns:1fr}.sunshade-mode-switch.mode-4{grid-template-columns:1fr}.mapped-levels .sunshade-level-row{grid-template-columns:1fr 1fr}.mapped-levels .sunshade-level-name{grid-column:1/-1}.mapped-levels .arrow{display:none}.sunshade-input-grid-v270{grid-template-columns:1fr 1fr}}

/* v2.7.4 · Main PLC I/O + Dehumidification */
.main-plc-io-tools{display:flex;align-items:center;gap:10px}.main-plc-io-message{margin:-4px 0 16px;color:var(--muted,#64748b);font-size:13px}.main-plc-output-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.main-plc-output{border:1px solid var(--border,#dbe3ea);border-radius:14px;padding:14px;background:var(--card,#fff);display:flex;flex-direction:column;gap:7px}.main-plc-output.unmapped{opacity:.72}.main-plc-output.is-on{box-shadow:inset 0 0 0 1px rgba(22,163,74,.25)}.main-plc-output-head{display:flex;align-items:center;gap:8px}.main-plc-output-head code{margin-left:auto;font-size:10px}.io-state-dot{width:12px;height:12px;border-radius:50%;display:inline-block;box-shadow:0 0 0 3px rgba(100,116,139,.12)}.io-state-dot.on{background:#16a34a}.io-state-dot.off{background:#dc2626}.main-plc-output-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:4px}.main-plc-output-actions button{border:1px solid var(--border,#dbe3ea);border-radius:9px;padding:8px;background:transparent;font-weight:700;cursor:pointer}.main-plc-output-actions button:disabled{opacity:.35;cursor:not-allowed}.main-plc-output-actions button[data-main-output-command="on"]:not(:disabled):hover{border-color:#16a34a}.main-plc-output-actions button[data-main-output-command="off"]:not(:disabled):hover{border-color:#dc2626}.ghost-button.is-armed{border-color:#16a34a;color:#16a34a}.dehumidification-card{margin-bottom:18px}.dehum-status-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:14px 0}.dehum-status-row>div{border:1px solid var(--border,#dbe3ea);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:4px}.dehum-status-row small{color:var(--muted,#64748b)}.dehum-status-row strong{font-size:20px}.dehum-form{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;align-items:end}.dehum-form>label{display:flex;flex-direction:column;gap:6px}.dehum-switch{justify-content:center;min-height:58px}.dehum-equipment{grid-column:1/-1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;border-top:1px solid var(--border,#dbe3ea);padding-top:14px}.dehum-equipment>span{grid-column:1/-1;font-weight:700}.dehum-equipment label{display:flex;gap:7px;align-items:center;font-size:13px}.dehum-actions{grid-column:1/-1;display:flex;align-items:center;gap:14px}.dehum-actions span{font-size:13px;color:var(--muted,#64748b)}
@media(max-width:1000px){.main-plc-output-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dehum-equipment{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.main-plc-output-grid{grid-template-columns:1fr}.dehum-status-row,.dehum-form{grid-template-columns:1fr}.dehum-equipment{grid-template-columns:1fr}.main-plc-io-tools{flex-wrap:wrap}}

/* v2.7.8 · Dehumidification strategy */
.dehum-form--strategy{display:block}.dehum-core-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:end}.dehum-core-grid>label{display:flex;flex-direction:column;gap:6px}.dehum-motor-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:16px}.dehum-motor-card{border:1px solid var(--border,#dbe3ea);border-radius:14px;padding:14px;background:var(--card,#fff);display:flex;flex-direction:column;gap:12px}.dehum-motor-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.dehum-motor-head>div{display:flex;flex-direction:column;gap:3px}.dehum-motor-head small,.dehum-example,.dehum-equipment--discrete p{color:var(--muted,#64748b);font-size:12px}.dehum-inline-switch{display:flex;gap:6px;align-items:center;font-size:12px;white-space:nowrap}.dehum-motor-fields{display:grid;grid-template-columns:1fr;gap:9px}.dehum-motor-fields label{display:flex;flex-direction:column;gap:5px;font-size:12px}.dehum-calibration{border-top:1px solid var(--border,#dbe3ea);padding-top:10px;display:flex;flex-direction:column;gap:9px}.dehum-calibration>div:first-child{display:flex;justify-content:space-between;gap:8px}.dehum-calibration-controls{display:grid;grid-template-columns:90px 1fr;gap:8px}.dehum-calibration-controls input{min-width:0}.dehum-equipment--discrete{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:16px}.dehum-equipment--discrete p{grid-column:1/-1;margin:2px 0 0}.dehum-logic-note{margin-top:14px;border:1px solid var(--border,#dbe3ea);border-radius:12px;padding:12px;font-size:13px;color:var(--muted,#64748b)}.dehum-logic-note b{color:var(--text,#0f172a)}.dehum-form--strategy .dehum-actions{margin-top:14px}
@media(max-width:1100px){.dehum-motor-grid{grid-template-columns:1fr}.dehum-equipment--discrete{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.dehum-core-grid,.dehum-equipment--discrete{grid-template-columns:1fr}.dehum-calibration-controls{grid-template-columns:1fr}}


/* v2.8.0 · actuator countdown + cooling fan safety */
.dehum-motion{border:1px solid var(--border,#dbe3ea);border-radius:10px;padding:9px;background:var(--panel2,#f8fafc);display:grid;gap:7px}.dehum-motion>div:first-child{display:flex;justify-content:space-between;gap:8px;font-size:12px}.dehum-motion-track{height:7px;border-radius:999px;background:rgba(100,116,139,.18);overflow:hidden}.dehum-motion-track i{display:block;height:100%;background:var(--green,#16a34a);transition:width .25s linear}.dehum-motion small{font-size:11px;color:var(--muted,#64748b)}.dehum-motion.is-moving{border-color:color-mix(in srgb,var(--green,#16a34a) 45%,var(--border,#dbe3ea))}.dehum-safety{grid-column:1/-1;border:1px solid var(--border,#dbe3ea);border-radius:10px;padding:10px 12px;display:flex;gap:10px;align-items:center;font-size:12px}.dehum-safety span{color:var(--muted,#64748b)}.dehum-safety.is-ok{border-color:#16a34a}.dehum-safety.is-blocked{border-color:#dc2626;background:rgba(220,38,38,.05)}

/* v2.8.1 · Dehumidification one-shot UX */
.dehum-run-panel{display:flex;align-items:center;gap:16px;padding:16px 18px;margin:14px 0 18px;border:1px solid #d8e6dc;border-radius:14px;background:#f7fbf8}
.dehum-run-panel.is-active{border-color:#b9dfc4;background:#f0faf3}
.dehum-run-button{min-width:240px;min-height:48px;font-weight:700}
.dehum-run-button.danger-button{background:#b42318;border-color:#b42318;color:#fff}
.dehum-run-panel>div{display:flex;flex-direction:column;gap:3px}
.dehum-run-panel>div span{color:#667085;font-size:.9rem}
.dehum-core-grid--manual{grid-template-columns:minmax(260px,360px) 1fr;align-items:end}
.dehum-setpoint-help{margin:0;padding:10px 12px;border-radius:10px;background:#f8fafc;color:#475467;font-size:.9rem}
@media(max-width:760px){.dehum-run-panel{align-items:stretch;flex-direction:column}.dehum-run-button{width:100%;min-width:0}.dehum-core-grid--manual{grid-template-columns:1fr}}

/* v2.8.2 · Dehumidification manual + automatic + endpoint reference */
.dehum-mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}.dehum-auto-panel{display:flex;align-items:center;gap:14px;border:1px solid var(--border);border-radius:10px;padding:12px;background:var(--panel2)}.dehum-auto-panel.is-active{border-color:#53b96b;background:color-mix(in srgb,#e9f9ed 65%,var(--panel2))}.dehum-auto-panel>div{display:flex;flex-direction:column;gap:3px}.dehum-auto-panel span{color:var(--muted);font-size:12px}.dehum-auto-button{min-width:145px}.dehum-calibration-reference{display:grid!important;grid-template-columns:1fr 1fr;gap:8px;width:100%}.dehum-calibration-reference button{white-space:normal;min-height:42px}.dehum-core-grid--manual{grid-template-columns:minmax(180px,.55fr) minmax(180px,.55fr) minmax(280px,1.5fr)!important;align-items:end}
@media(max-width:900px){.dehum-mode-grid{grid-template-columns:1fr}.dehum-core-grid--manual{grid-template-columns:1fr!important}.dehum-calibration-reference{grid-template-columns:1fr}}

/* v2.8.3 · Dehumidification UX hierarchy only — no control logic changes */
.dehum-status-row--hero{margin:16px 0 12px}.dehum-live-kpi{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--panel,#fff),var(--panel2,#f8fafc))}.dehum-live-kpi:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--green,#16a34a)}.dehum-live-kpi--target:before{background:#2563eb}.dehum-live-kpi--state:before{background:#d97706}.dehum-kpi-note{font-size:11px;color:var(--muted,#64748b)}
.dehum-mode-grid--operator{margin-bottom:18px}.dehum-mode-grid--operator .dehum-run-panel,.dehum-mode-grid--operator .dehum-auto-panel{margin:0;min-height:82px;box-sizing:border-box}
.dehum-process-settings,.dehum-actuator-section{border:1px solid var(--border,#dbe3ea);border-radius:16px;padding:16px;background:var(--panel,#fff)}.dehum-actuator-section{margin-top:16px}.dehum-section-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px}.dehum-section-heading>div{display:grid;gap:2px}.dehum-section-heading h3{margin:0;font-size:17px}.dehum-section-kicker{font-size:10px;letter-spacing:.08em;font-weight:800;color:var(--muted,#64748b)}.dehum-section-chip{font-size:11px;font-weight:700;border:1px solid color-mix(in srgb,var(--green,#16a34a) 40%,var(--border,#dbe3ea));color:var(--green,#16a34a);background:color-mix(in srgb,var(--green,#16a34a) 7%,var(--panel,#fff));padding:6px 9px;border-radius:999px}.dehum-section-chip--blue{color:#2563eb;border-color:color-mix(in srgb,#2563eb 38%,var(--border,#dbe3ea));background:color-mix(in srgb,#2563eb 6%,var(--panel,#fff))}
.dehum-core-grid--prominent{grid-template-columns:minmax(210px,.65fr) minmax(210px,.65fr) minmax(340px,1.7fr)!important}.dehum-big-field{padding:13px;border:1px solid var(--border,#dbe3ea);border-radius:12px;background:var(--panel2,#f8fafc)}.dehum-big-field>span{font-weight:800}.dehum-big-field .field-with-unit input{font-size:20px;font-weight:800;min-height:42px}.dehum-big-field>small{font-size:11px;color:var(--muted,#64748b)}
.dehum-threshold-visual{padding:13px 14px;border:1px solid color-mix(in srgb,#2563eb 22%,var(--border,#dbe3ea));border-radius:12px;background:color-mix(in srgb,#2563eb 4%,var(--panel2,#f8fafc));display:grid;gap:8px}.dehum-threshold-labels{display:flex;justify-content:space-between;gap:12px;font-size:11px;font-weight:700}.dehum-threshold-labels span:first-child{color:var(--green,#16a34a)}.dehum-threshold-labels span:last-child{color:#2563eb}.dehum-threshold-track{height:9px;border-radius:999px;background:color-mix(in srgb,var(--green,#16a34a) 18%,var(--panel,#fff));position:relative;overflow:hidden}.dehum-threshold-track i{position:absolute;right:0;top:0;bottom:0;width:36%;background:color-mix(in srgb,#2563eb 26%,var(--panel,#fff))}.dehum-threshold-track span{position:absolute;left:64%;top:-3px;width:2px;height:15px;background:#2563eb}.dehum-threshold-visual p{margin:0;font-size:11px;line-height:1.45;color:var(--muted,#64748b)}
.dehum-motor-card--ux{padding:0;overflow:hidden;gap:0}.dehum-motor-card--ux .dehum-motor-head{padding:14px 14px 12px;border-bottom:1px solid var(--border,#dbe3ea);background:var(--panel2,#f8fafc)}.dehum-position-summary{display:grid;grid-template-columns:1fr auto 1.25fr;gap:12px;align-items:end;padding:14px}.dehum-position-summary>div:first-child{display:grid;gap:3px}.dehum-position-summary small,.dehum-target-field>span{font-size:10px;font-weight:800;letter-spacing:.05em;color:var(--muted,#64748b)}.dehum-position-summary>div:first-child strong{font-size:22px}.dehum-position-arrow{font-size:20px;color:var(--muted,#64748b);align-self:center}.dehum-target-field{display:grid;gap:5px}.dehum-target-field .field-with-unit{border-color:color-mix(in srgb,#2563eb 45%,var(--border,#dbe3ea));background:color-mix(in srgb,#2563eb 4%,var(--panel,#fff))}.dehum-target-field input{font-size:20px;font-weight:800;color:#1d4ed8}
.dehum-position-scale{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:0 14px 12px;font-size:10px;color:var(--muted,#64748b)}.dehum-position-scale-track{height:8px;border-radius:999px;background:rgba(100,116,139,.16);position:relative}.dehum-position-scale-track i{position:absolute;left:0;top:0;bottom:0;border-radius:999px;background:var(--green,#16a34a)}.dehum-position-scale-track b{position:absolute;top:50%;width:12px;height:12px;border:2px solid #fff;border-radius:50%;background:#2563eb;transform:translate(-50%,-50%);box-shadow:0 0 0 1px rgba(37,99,235,.35)}
.dehum-motor-card--ux .dehum-motion{margin:0 14px 14px}.dehum-calibration-box{border-top:1px solid var(--border,#dbe3ea);background:color-mix(in srgb,var(--panel2,#f8fafc) 78%,var(--panel,#fff))}.dehum-calibration-box summary{list-style:none;cursor:pointer;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px}.dehum-calibration-box summary::-webkit-details-marker{display:none}.dehum-calibration-box summary>span:first-child{display:grid;gap:2px}.dehum-calibration-box summary small{font-size:10px;color:var(--muted,#64748b)}.dehum-calibration-status{font-size:10px;font-weight:800;color:#b45309;border:1px solid color-mix(in srgb,#d97706 35%,var(--border,#dbe3ea));padding:5px 7px;border-radius:999px}.dehum-calibration-box[open] .dehum-calibration-status{background:color-mix(in srgb,#d97706 7%,var(--panel,#fff))}.dehum-calibration-body{padding:0 14px 14px;display:grid;gap:10px}.dehum-motor-fields--calibration{grid-template-columns:1fr 1fr}.dehum-calibration-body p{margin:0;font-size:11px;line-height:1.45;color:var(--muted,#64748b)}
.dehum-equipment--discrete{border:1px solid var(--border,#dbe3ea);border-radius:16px;padding:16px;margin-top:16px}.dehum-logic-note{background:var(--panel2,#f8fafc)}
@media(max-width:1100px){.dehum-core-grid--prominent{grid-template-columns:1fr 1fr!important}.dehum-threshold-visual{grid-column:1/-1}}@media(max-width:700px){.dehum-process-settings,.dehum-actuator-section{padding:12px}.dehum-section-heading{align-items:flex-start;flex-direction:column}.dehum-core-grid--prominent{grid-template-columns:1fr!important}.dehum-threshold-visual{grid-column:auto}.dehum-position-summary{grid-template-columns:1fr auto 1fr}.dehum-motor-fields--calibration{grid-template-columns:1fr}}


/* v2.8.4 · Dehumidification pre-start fan stop safety */
.dehum-prestart-safety{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr minmax(150px,190px);gap:14px;align-items:center;margin-top:16px;padding:14px 16px;border:1px solid #f1c56d;border-radius:14px;background:linear-gradient(135deg,#fffaf0,#fff)}
.dehum-prestart-icon{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:#fff0c7;font-size:20px}
.dehum-prestart-copy{display:flex;flex-direction:column;gap:3px}.dehum-prestart-copy strong{font-size:13px}.dehum-prestart-copy small{color:var(--muted,#64748b);line-height:1.45}.dehum-prestart-delay{display:flex;flex-direction:column;gap:5px}.dehum-prestart-delay>span{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.dehum-prestart-delay small{font-size:9px;color:var(--muted,#64748b)}
@media(max-width:900px){.dehum-prestart-safety{grid-template-columns:auto 1fr}.dehum-prestart-delay{grid-column:1/-1}}

/* v2.9.0 Alpha — Water System */
.water-page{padding-bottom:72px}.water-process-card{margin-bottom:12px}.water-status-pill,.water-configured,.water-unconfigured{padding:6px 9px;border-radius:999px;font-size:7px;font-weight:900;letter-spacing:.05em;white-space:nowrap}.water-status-pill,.water-configured{color:#238044;background:rgba(53,184,116,.1);border:1px solid rgba(53,184,116,.28)}.water-unconfigured{color:#8a6a25;background:rgba(214,166,70,.1);border:1px solid rgba(214,166,70,.28)}.water-flow-diagram{display:grid;gap:14px;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--panel2);overflow-x:auto}.water-flow-row{display:flex;align-items:center;gap:7px;min-width:1120px}.water-flow-row.return{padding-top:13px;border-top:1px dashed var(--border)}.water-flow-row>i{color:#4aa6d8;font-size:18px;font-style:normal;font-weight:900}.water-node{min-width:92px;padding:10px 9px;border:1px solid var(--border);border-radius:10px;background:var(--panel);text-align:center}.water-node b,.water-node strong,.water-node small{display:block}.water-node b{font-size:9px}.water-node strong{margin:5px 0;color:#2589bd;font-size:13px}.water-node small{margin-top:4px;color:var(--muted);font-size:6px}.water-node.tank{border-color:rgba(64,151,199,.38);background:rgba(64,151,199,.06)}.water-node.meter{border-color:rgba(43,142,193,.45)}.water-node.meter.live{box-shadow:inset 0 3px 0 #35b874}.water-node.process{border-color:rgba(121,84,200,.32)}.water-node.valve{border-color:rgba(218,151,54,.4)}.water-node.fertilizer{min-width:112px;border-color:rgba(53,184,116,.38)}.water-merge-note{max-width:180px;color:var(--muted);font-size:7px;line-height:1.4}.water-tanks-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:12px}.water-tank-card{min-width:0}.tank-body{display:grid;grid-template-columns:105px 1fr;gap:14px;align-items:center}.digital-level{display:grid;grid-template-columns:24px 38px;grid-template-rows:150px auto;gap:6px;justify-content:center;position:relative}.level-scale{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;padding:2px 0;color:var(--muted);font-size:6px}.level-tube{position:relative;border:2px solid #68a8c8;border-radius:18px 18px 10px 10px;background:linear-gradient(90deg,rgba(255,255,255,.1),rgba(91,174,215,.08));overflow:hidden}.level-tube:before{content:"";position:absolute;left:5px;right:5px;top:8px;bottom:8px;border-radius:12px;background:repeating-linear-gradient(to top,transparent 0 28px,rgba(104,168,200,.15) 28px 29px)}.digital-level>strong{grid-column:1/3;text-align:center;font-size:22px}.digital-level>strong small{font-size:9px;color:var(--muted)}.tank-metrics{margin:0}.tank-metrics>div{display:flex;justify-content:space-between;gap:8px;padding:9px 0;border-bottom:1px solid var(--border)}.tank-metrics dt{color:var(--muted);font-size:7px}.tank-metrics dd{margin:0;font-size:8px;font-weight:850}.tank-metrics dd.muted{color:var(--muted);font-size:6px}.tank-route{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:13px;padding-top:10px;border-top:1px solid var(--border)}.tank-route span{color:var(--muted);font-size:6px}.tank-route b{display:block;margin-top:3px;color:var(--text);font-size:7px}.water-meters-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.flowmeter-card.configured{border-color:rgba(53,184,116,.35)}.flow-rate{padding:15px;border-radius:11px;background:var(--panel2);text-align:center}.flow-rate small,.flow-rate span{display:block;color:var(--muted);font-size:7px}.flow-rate strong{display:block;margin:6px 0;font-size:31px}.flow-rate em,.flowmeter-values em{color:var(--muted);font-size:9px;font-style:normal}.flowmeter-values{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:9px}.flowmeter-values>div{padding:9px;border:1px solid var(--border);border-radius:9px}.flowmeter-values small,.flowmeter-values b{display:block}.flowmeter-values small{color:var(--muted);font-size:6px}.flowmeter-values b{margin-top:4px;font-size:10px}.water-test-note{margin:10px 0 0;color:var(--muted);font-size:6px;line-height:1.5}
@media(max-width:1180px){.water-tanks-grid{grid-template-columns:1fr 1fr}.water-meters-grid{grid-template-columns:1fr 1fr}.water-meters-grid>:last-child{grid-column:1/-1}}
@media(max-width:760px){.water-tanks-grid,.water-meters-grid{grid-template-columns:1fr}.water-meters-grid>:last-child{grid-column:auto}.tank-body{grid-template-columns:110px 1fr}.water-process-card{padding:12px}.water-flow-diagram{margin:0 -2px}}


/* v2.9.5 Alpha — Water live telemetry visual emphasis */
.flowmeter-card.configured{border-width:2px;box-shadow:0 10px 28px rgba(53,184,116,.10)}
.flowmeter-card.configured .flow-rate{padding:22px 16px 20px;background:linear-gradient(135deg,rgba(53,184,116,.10),rgba(64,151,199,.08));border:1px solid rgba(53,184,116,.18)}
.flowmeter-card.configured .flow-rate>small{font-size:9px;font-weight:900;letter-spacing:.08em}
.flowmeter-card.configured .flow-rate>strong{display:flex;align-items:baseline;justify-content:center;gap:9px;margin:8px 0 5px;line-height:1}
.flowmeter-card.configured .flow-rate>strong>[data-fm01="flow_rate"]{font-size:52px;font-weight:950;letter-spacing:-.04em;color:var(--text)}
.flowmeter-card.configured .flow-rate>strong em{font-size:16px;font-weight:850;color:#2589bd}
.flowmeter-card.configured .flow-rate>span{font-size:8px;font-weight:800;letter-spacing:.04em}
.flowmeter-card.configured .flowmeter-values{gap:9px;margin-top:10px}
.flowmeter-card.configured .flowmeter-values>div{padding:13px 12px;background:var(--panel2)}
.flowmeter-card.configured .flowmeter-values small{font-size:8px;font-weight:800;letter-spacing:.02em}
.flowmeter-card.configured .flowmeter-values b{display:flex;align-items:baseline;gap:5px;margin-top:7px;font-size:20px;font-weight:950;line-height:1.15}
.flowmeter-card.configured .flowmeter-values b span{font-size:20px;font-weight:950}
.flowmeter-card.configured .flowmeter-values em{font-size:10px;font-weight:800}
.flowmeter-card.configured .water-test-note{font-size:8px;font-weight:750;margin-top:11px}
.water-node.meter.live strong{font-size:18px;font-weight:950;color:#1683bd}
.water-node.meter.live strong span{font-size:18px}
@media(max-width:760px){.flowmeter-card.configured .flow-rate>strong>[data-fm01="flow_rate"]{font-size:44px}.flowmeter-card.configured .flowmeter-values b,.flowmeter-card.configured .flowmeter-values b span{font-size:17px}}

/* v2.9.5 Alpha — unified water meter cards + readable tank telemetry */
.flowmeter-card{border-width:2px}
.flowmeter-card .flow-rate{padding:22px 16px 20px;background:linear-gradient(135deg,rgba(64,151,199,.08),rgba(53,184,116,.05));border:1px solid rgba(64,151,199,.16)}
.flowmeter-card .flow-rate>small{font-size:9px;font-weight:900;letter-spacing:.08em}
.flowmeter-card .flow-rate>strong{display:flex;align-items:baseline;justify-content:center;gap:9px;margin:8px 0 5px;line-height:1;font-size:52px;font-weight:950;letter-spacing:-.04em;color:var(--text)}
.flowmeter-card .flow-rate>strong>span{font-size:52px;font-weight:950;letter-spacing:-.04em;color:var(--text)}
.flowmeter-card .flow-rate>strong em{font-size:16px;font-weight:850;color:#2589bd}
.flowmeter-card .flow-rate>span{font-size:8px;font-weight:800;letter-spacing:.04em}
.flowmeter-card .flowmeter-values{gap:9px;margin-top:10px}
.flowmeter-card .flowmeter-values>div{padding:13px 12px;background:var(--panel2)}
.flowmeter-card .flowmeter-values small{font-size:8px;font-weight:800;letter-spacing:.02em}
.flowmeter-card .flowmeter-values b{display:flex;align-items:baseline;gap:5px;margin-top:7px;font-size:20px;font-weight:950;line-height:1.15}
.flowmeter-card .flowmeter-values b span{font-size:20px;font-weight:950}
.flowmeter-card .flowmeter-values em{font-size:10px;font-weight:800}
.flowmeter-card .water-test-note{font-size:8px;font-weight:750;margin-top:11px}

.water-tank-card .tank-body{grid-template-columns:125px 1fr;gap:18px}
.water-tank-card .digital-level{grid-template-columns:28px 48px;grid-template-rows:178px auto;gap:8px}
.water-tank-card .level-scale{font-size:8px;font-weight:800}
.water-tank-card .digital-level>strong{font-size:32px;font-weight:950;line-height:1}
.water-tank-card .digital-level>strong small{font-size:13px;font-weight:850}
.water-tank-card .tank-metrics>div{align-items:center;padding:12px 0}
.water-tank-card .tank-metrics dt{font-size:9px;font-weight:800}
.water-tank-card .tank-metrics dd{font-size:18px;font-weight:950;line-height:1.1}
.water-tank-card .tank-metrics dd.muted{font-size:9px;font-weight:900}
.water-tank-card .tank-route span{font-size:7px}.water-tank-card .tank-route b{font-size:9px}
@media(max-width:760px){.flowmeter-card .flow-rate>strong,.flowmeter-card .flow-rate>strong>span{font-size:44px}.flowmeter-card .flowmeter-values b,.flowmeter-card .flowmeter-values b span{font-size:17px}.water-tank-card .tank-body{grid-template-columns:120px 1fr}}


/* v2.9.6 — Sidebar fit: version moved to brand + independent navigation scroll */
.brand{flex:0 0 auto;padding-bottom:14px}
.brand .brand-version{display:block!important;margin-top:3px;color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.02em}
.sidebar{overflow:hidden}
.nav-list{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:3px;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--muted) 45%,transparent) transparent}
.nav-list::-webkit-scrollbar{width:5px}
.nav-list::-webkit-scrollbar-track{background:transparent}
.nav-list::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--muted) 40%,transparent);border-radius:999px}
.sidebar-bottom{flex:0 0 auto;margin-top:8px;border-top:1px solid var(--border);padding-top:10px}
@media(max-width:820px){.sidebar{overflow-y:auto}.nav-list{flex:none;overflow:visible;padding-right:0}}

/* v2.9.7 · readable engineering units */
.flowmeter-card .flow-rate>strong em{font-weight:500!important;font-style:normal}
.flowmeter-card .flowmeter-values em{font-weight:500!important;font-style:normal}
