@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@500;600&family=Noto+Sans+Thai:wght@400;500;600;700&display=swap";:root{color:#1a2233;font-synthesis:none;--primary:#3b53ff;--primary-50:#eef1ff;--primary-100:#d6ddff;--ink:#1a2233;--ink2:#3a4256;--muted:#727c90;--line:#e5e7eb;--card:#fff;--success:#10b981;--warning:#d97706;--danger:#dc2626;--mono:"JetBrains Mono",monospace;background:#f6f8fd;font-family:Inter,Noto Sans Thai,system-ui,sans-serif}*{box-sizing:border-box}body{background:#f6f8fd;min-width:320px;margin:0}button,input{font:inherit}button{cursor:pointer}.reference-app{min-height:100vh;padding-bottom:50px}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.ref-topbar{border-bottom:1px solid var(--line);z-index:30;background:#fff;align-items:center;gap:28px;height:64px;padding:0 24px;display:flex;position:sticky;top:0}.ref-brand{color:var(--primary);letter-spacing:-.5px;background:0 0;border:0;align-items:center;gap:9px;padding:0;font-size:21px;display:flex}.ref-ring{border:2px solid var(--primary);border-radius:50%;place-items:center;width:28px;height:28px;display:grid;box-shadow:inset 0 0 0 4px #edf0ff}.ref-ring i{background:#55ddca;border-radius:50%;width:8px;height:8px}.ref-modules{align-items:center;gap:3px;height:100%;margin-left:8px;display:flex}.ref-modules button{color:#525c70;background:0 0;border:0;border-radius:4px;align-items:center;gap:7px;height:38px;padding:0 13px;font-size:12px;font-weight:500;display:flex}.ref-modules svg{width:16px}.ref-modules button:hover{background:#f4f6fa}.ref-modules button.active{background:var(--primary-50);color:var(--primary);font-weight:600}.ref-admin{color:#4d586c;align-items:center;gap:8px;margin-left:auto;display:flex}.ref-admin>button{border:1px solid var(--line);background:#fff;border-radius:50%;place-items:center;width:34px;height:34px;margin-right:6px;display:grid}.ref-admin>button svg{width:16px}.ref-admin>span{background:var(--primary);color:#fff;border-radius:50%;place-items:center;width:28px;height:28px;font-size:10px;font-weight:700;display:grid}.ref-admin>div{flex-direction:column;display:flex}.ref-admin b{font-size:11px}.ref-admin small{color:#8993a5;font-size:8.5px}.ref-admin>svg{width:14px}.ref-crumb{color:#8a94a6;align-items:center;gap:7px;margin-bottom:14px;font-size:10.5px;display:flex}.ref-crumb svg{width:12px}.ref-crumb b{color:#3b465a}.ref-page-head{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:14px;display:flex}.ref-page-head h1,.ref-device-head h1{color:#1c2535;letter-spacing:-.4px;margin:0;font-size:21px;line-height:1.2}.ref-page-head p,.ref-device-head p{color:var(--muted);margin:5px 0 0;font-size:11px}.ref-head-actions,.ref-button-row{gap:7px;display:flex}.ref-head-actions button,.ref-card-head button,.ref-button-row button,.alarm-table-row button,.ref-savebar button,.firmware button{border:1px solid var(--line);color:#435067;background:#fff;border-radius:5px;justify-content:center;align-items:center;gap:6px;height:34px;padding:0 11px;font-size:10px;font-weight:600;display:inline-flex}.ref-head-actions svg,.ref-card-head button svg,.ref-button-row svg,.ref-savebar button svg,.firmware button svg{width:14px}.primary{background:var(--primary)!important;color:#fff!important;border-color:var(--primary)!important}.ref-segment{border:1px solid var(--line);background:#fff;border-radius:5px;width:270px;margin-bottom:13px;padding:4px;display:flex}.ref-segment button{color:#778296;background:0 0;border:0;border-radius:3px;flex:1;height:31px;font-size:10.5px;font-weight:600}.ref-segment button.active{background:var(--primary);color:#fff}.ref-segment span{color:#c5392c;background:#fee2e2;border-radius:10px;margin-left:4px;padding:2px 5px;font-size:8px}.ref-segment button.active span{color:#fff;background:#fff3}.ref-kpi-row,.ref-issue-cards{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px;display:grid}.ref-summary-card{border:1px solid var(--line);text-align:left;background:#fff;border-radius:5px;align-items:center;gap:11px;height:94px;padding:13px;display:flex;position:relative}.ref-summary-card:hover,.ref-summary-card.selected{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary) inset}.ref-summary-icon{border-radius:5px;flex:none;place-items:center;width:35px;height:35px;display:grid}.ref-summary-icon svg{width:18px}.ref-summary-card.blue .ref-summary-icon{color:var(--primary);background:var(--primary-50)}.ref-summary-card.violet .ref-summary-icon{color:#7954cf;background:#f2edff}.ref-summary-card.orange .ref-summary-icon{color:#d0672c;background:#fff0e7}.ref-summary-card>div{flex-direction:column;min-width:0;display:flex}.ref-summary-card small{color:#818ca0;font-size:9.5px}.ref-summary-card strong{color:#202a3c;margin:2px 0;font-size:18px}.ref-summary-card p{color:#939cad;margin:0;font-size:8.5px}.ref-summary-card .arrow{color:#a0a9b8;width:14px;margin-left:auto}.ref-card{border:1px solid var(--line);background:#fff;border-radius:5px;margin-bottom:11px;overflow:hidden}.ref-card-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:15px;min-height:58px;padding:11px 15px;display:flex}.ref-card-head h2{color:#273246;margin:0 0 3px;font-size:12.5px}.ref-card-head p{color:#838ea1;margin:0;font-size:9.5px}.ref-tools{gap:7px;display:flex}.ref-tools label{border:1px solid var(--line);color:#8e98aa;border-radius:4px;align-items:center;gap:6px;width:260px;height:34px;padding:0 9px;display:flex}.ref-tools label svg{width:14px}.ref-tools input{border:0;outline:0;width:100%;font-size:9.5px}.ref-tools button{border:1px solid var(--line);color:#59667b;background:#fff;border-radius:4px;align-items:center;gap:5px;height:34px;padding:0 9px;font-size:9.5px;display:flex}.ref-tools svg{width:14px}.ref-table{border-collapse:collapse;width:100%;min-width:980px}.ref-table th{text-align:left;border-bottom:1px solid var(--line);text-transform:uppercase;letter-spacing:.35px;color:#7c8799;white-space:nowrap;background:#f8fafc;height:36px;padding:0 12px;font-size:8.5px}.ref-table td{color:#465167;vertical-align:middle;border-bottom:1px solid #edf0f4;padding:9px 12px;font-size:9.5px}.ref-table tbody tr{cursor:pointer}.ref-table tbody tr:hover{background:#fafbff}.ref-table tbody tr.selected{background:var(--primary-50);box-shadow:inset 3px 0 var(--primary)}.ref-table .num{text-align:right}.ref-table code{font-family:var(--mono);color:#38455c;font-size:9px}.ref-table td>small{color:#909aac;margin-top:3px;font-size:8px;display:block}.ref-customer{align-items:center;gap:8px;display:flex}.ref-customer>span{background:var(--primary-50);width:27px;height:27px;color:var(--primary);border-radius:4px;place-items:center;font-weight:700;display:grid}.ref-customer>div{flex-direction:column;display:flex}.ref-customer b{color:#273246;font-size:9.5px}.ref-customer small{color:#929bac;margin-top:2px;font-size:8px}.normal-weight{font-weight:500}.ref-status{border-radius:12px;align-items:center;gap:5px;padding:4px 7px;font-size:8.5px;font-weight:600;display:inline-flex}.ref-status i{border-radius:50%;width:5px;height:5px}.ref-status.normal{color:#0d8166;background:#e7f8f3}.ref-status.normal i{background:#12a77f}.ref-status.warning{color:#a86a08;background:#fff4d9}.ref-status.warning i{background:#e0a11f}.ref-status.critical{color:#b73c32;background:#ffe8e5}.ref-status.critical i{background:#dc4e41}.ref-status.offline{color:#6d7788;background:#eef0f4}.ref-status.offline i{background:#7c8798}.ref-region{background:#eff2f6;border-radius:3px;padding:3px 6px;font-size:8.5px;font-weight:700}.ref-meter{background:#ebedf2;border-radius:4px;width:70px;height:3px;margin:4px 0 0 auto}.ref-meter i{background:var(--primary);border-radius:4px;height:100%;display:block}.issue-cell{max-width:210px;color:#8a5520!important}.ref-table-wrap footer{color:#8b95a6;align-items:center;gap:4px;height:42px;padding:0 14px;font-size:9px;display:flex}.ref-table-wrap footer span{margin-left:auto}.ref-empty{color:#909aac;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:160px;display:flex}.ref-empty svg{width:23px}.ref-empty b{font-size:10px}.ref-empty span{font-size:8.5px}.ref-back{color:#68758a;background:0 0;border:0;align-items:center;gap:5px;margin-bottom:12px;padding:0;font-size:10px;display:flex}.ref-back svg{width:14px}.ref-device-head{justify-content:space-between;align-items:flex-end;margin-bottom:12px;display:flex}.ref-device-head>div:last-child{align-items:center;gap:10px;display:flex}.ref-device-head>div:last-child small{color:#828da0;align-items:center;gap:4px;font-size:8.5px;display:flex}.ref-device-head>div:last-child svg{width:12px}.ref-customer-line{align-items:center;gap:10px;display:flex}.ref-customer-line>span{color:var(--primary);background:var(--primary-50);border-radius:10px;padding:4px 8px;font-size:9px;font-weight:600}.ref-info-strip{border:1px solid var(--line);background:#fff;border-radius:5px;grid-template-columns:repeat(5,1fr);margin-bottom:10px;display:grid;overflow:hidden}.ref-info-strip>div{border-right:1px solid var(--line);flex-direction:column;gap:3px;padding:9px 12px;display:flex}.ref-info-strip>div:last-child{border:0}.ref-info-strip small{color:#818c9f;text-transform:uppercase;letter-spacing:.4px;font-size:8px}.ref-info-strip b{font-size:9.5px;font-family:var(--mono)}.online-text{color:#0d8e6e}.ref-tabs button{color:#707b8f;background:0 0;border:0;border-radius:3px;flex:1;height:36px;font-size:10px;font-weight:600;position:relative}.ref-tabs button.active{color:#fff;background:var(--primary);box-shadow:0 2px 6px #3b53ff40}.ref-tabs button i{background:#f59e0b;border-radius:50%;width:5px;height:5px;margin-left:4px;position:absolute;top:7px}.perf-kpis{border-bottom:1px solid var(--line);grid-template-columns:repeat(4,1fr);display:grid}.perf-kpis>div{border-right:1px solid var(--line);flex-direction:column;gap:3px;padding:10px 15px;display:flex}.perf-kpis small{color:#8a95a6;font-size:8px}.perf-kpis b{font-size:13px}.perf-chart{height:290px;padding:14px}.compact-card{grid-template-columns:250px 1fr;display:grid}.compact-card .ref-card-head{border-right:1px solid var(--line);border-bottom:0}.raw-table{border-collapse:collapse;width:100%}.raw-table th,.raw-table td{border-bottom:1px solid var(--line);text-align:left;padding:8px 12px;font-size:8.5px}.raw-table th{color:#7d889b;background:#f8fafc}.raw-table code{font-family:var(--mono)}.raw-ok{color:#0c8b6b;background:#e8f8f3;border-radius:10px;padding:3px 6px}.micro-state{color:#0d876a;background:#e7f8f3;border-radius:10px;padding:4px 7px;font-size:8.5px}.telemetry-card .ref-card-head{background:#fafbfc}.tele-grid{grid-template-columns:repeat(4,1fr);display:grid}.tele-grid>div{border-right:1px solid var(--line);border-bottom:1px solid var(--line);flex-direction:column;gap:4px;padding:13px;display:flex}.tele-grid small{color:#8994a6;font-size:8px}.tele-grid b{font-size:12px}.gateway-stack{padding-bottom:55px}.settings-section{border:1px solid var(--line);background:#fff;border-radius:5px;margin-bottom:9px;overflow:hidden}.settings-section>header{background:var(--primary-50);border-bottom:1px solid var(--primary-100);align-items:center;min-height:46px;padding:0 14px;display:flex}.settings-section>header>span{font-family:var(--mono);background:var(--primary);color:#fff;border-radius:3px;margin-right:9px;padding:4px 7px;font-size:9px}.settings-section>header>b{color:#173c69;font-size:10.5px}.settings-section>header>small{color:#808b9f;margin-left:9px;font-size:8.5px}.settings-section.danger>header{background:#fff4f2;border-color:#f2d3cf}.settings-section.danger>header>span{background:#d74c40}.settings-section.danger>header>b{color:#a33a32}.settings-body{grid-template-columns:1fr 1fr;gap:12px;padding:13px;display:grid}.setting-field{border:1px solid var(--line);border-radius:4px;flex-direction:column;gap:7px;padding:10px;display:flex}.setting-field>span{justify-content:space-between;font-size:9px;font-weight:600;display:flex}.setting-field code{font-family:var(--mono);color:var(--primary);background:var(--primary-50);border-radius:3px;padding:2px 5px;font-size:8px}.setting-field input{border:1px solid var(--line);border-radius:4px;outline:0;height:34px;padding:0 9px;font-size:10px}.unit-input{display:flex}.unit-input input{border-radius:4px 0 0 4px;flex:1}.unit-input span{border:1px solid var(--line);color:#788498;background:#f7f8fa;border-left:0;border-radius:0 4px 4px 0;place-items:center;width:45px;font-size:8.5px;display:grid}.system-warning{color:#8b4b42;align-items:center;gap:6px;font-size:9px;display:flex}.system-warning svg{width:15px}.danger-action{color:#bb4037;background:#fff;border:1px solid #dc5b50;border-radius:4px;height:34px;font-size:9.5px}.ref-savebar{z-index:20;border-top:1px solid var(--line);color:#7b8699;background:#fff;justify-content:space-between;align-items:center;height:55px;padding:0 max(28px,50vw - 722px);font-size:9.5px;display:flex;position:fixed;bottom:32px;left:0;right:0;box-shadow:0 -5px 16px #2332500f}.ref-savebar>div{gap:7px;display:flex}.ref-savebar button:disabled{opacity:.45;cursor:not-allowed}.live-register-section>header{flex-wrap:wrap;gap:2px}.register-refresh{color:#304cc8;background:#fff;border:1px solid #b9c6e8;border-radius:4px;align-items:center;gap:5px;height:28px;margin-left:auto;padding:0 10px;font-size:8.5px;display:flex}.register-refresh svg{width:12px}.register-refresh:disabled{opacity:.55}.register-source{border-bottom:1px solid var(--line);background:#fbfcff;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:12px 14px;display:grid}.register-source>div{flex-direction:column;gap:4px;display:flex}.register-source b{font-family:var(--mono);color:#24365e;font-size:10px}.register-source span{color:#118264;font-size:8px}.register-source span i{background:#20b984;border-radius:50%;width:6px;height:6px;display:inline-block}.register-source p{color:#66738a;margin:0;font-size:8.5px;line-height:1.6}.register-source code,.register-card code{font-family:var(--mono)}.register-source time{color:#7c879a;white-space:nowrap;font-size:8px}.register-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:13px;display:grid}.register-card{border:1px solid var(--line);background:#fff;border-radius:5px;flex-direction:column;min-height:190px;padding:11px;display:flex}.register-card.error{background:snow;border-color:#efc9c5}.register-card.scale-warning{border-color:#ead8aa}.register-card>header{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.register-card>header code{color:#516fe6;font-size:7.5px}.register-card h3{color:#263854;margin:5px 0 0;font-size:10px;line-height:1.35}.register-card>header>span{color:#14805f;white-space:nowrap;background:#e8f8f2;border-radius:3px;padding:3px 5px;font-size:7px}.register-card>header>span.error{color:#b63c33;background:#fff0ee}.register-reading{align-items:baseline;gap:5px;margin:15px 0 10px;display:flex}.register-reading strong{font-family:var(--mono);color:#182f66;font-size:22px}.register-reading b{color:#68768d;font-size:9px}.register-reading em{color:#8b640c;background:#fff5d8;border-radius:3px;padding:3px 5px;font-size:7px;font-style:normal}.register-card>p{color:#5d687b;flex:1;margin:0;font-size:8.5px;line-height:1.55}.register-card>footer{color:#7c8798;border-top:1px solid #edf0f5;flex-wrap:wrap;gap:6px;margin-top:11px;padding-top:8px;font-size:7.5px;display:flex}.register-card>footer span{background:#f4f6fa;border-radius:3px;padding:3px 5px}.register-card>footer .write-capable{color:#9b6530;background:#fff7e9}.register-row-error{color:#b63c33;margin-top:7px}.register-loading,.register-error{border-radius:4px;align-items:center;gap:8px;margin:13px;padding:14px;font-size:9px;display:flex}.register-loading{color:#40588f;background:#f4f7ff}.register-error{color:#a93d35;background:#fff1ef}.register-loading svg,.register-error svg{width:15px}@media (width<=1000px){.register-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.register-source{grid-template-columns:1fr}.register-source time{white-space:normal}}@media (width<=720px){.register-grid{grid-template-columns:1fr}.live-register-section>header>small{width:calc(100% - 45px);margin:2px 0 6px 45px}.register-refresh{margin-left:45px}.register-card{min-height:0}}.alarm-stats{grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:10px;display:grid}.alarm-stats>div{border:1px solid var(--line);background:#fff;border-radius:4px;justify-content:space-between;align-items:center;padding:10px 13px;display:flex}.alarm-stats small{color:#798598;font-size:9px}.alarm-stats b{font-size:17px}.alarm-stats .level-1{border-top:2px solid #ca8a04}.alarm-stats .level-2{border-top:2px solid #d97706}.alarm-stats .level-3{border-top:2px solid #ea580c}.alarm-stats .level-4{border-top:2px solid #dc2626}.alarm-table-head,.alarm-table-row{grid-template-columns:55px 75px 60px 1fr 100px 80px 70px;align-items:center;gap:8px;padding:9px 14px;display:grid}.alarm-table-head{border-bottom:1px solid var(--line);text-transform:uppercase;color:#7d8799;background:#f8fafc;font-size:8px}.alarm-table-row{border-bottom:1px solid var(--line);font-size:9px}.alarm-table-row code{font-family:var(--mono)}.alarm-table-row b{font-size:9.5px}.alarm-level{text-align:center;border-radius:3px;width:29px;padding:4px;font-size:8px}.alarm-level.l4{color:#b53027;background:#fee2e2}.alarm-level.l3{color:#bf5019;background:#ffe0cc}.alarm-level.l2{color:#a86408;background:#fde9c8}.alarm-level.l1{color:#967000;background:#fef9c3}.alarm-table-row button{height:28px}.firmware-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.firmware{padding:16px}.firmware h2{margin:0 0 9px;font-size:11px}.firmware>b{font-size:21px;display:block}.firmware>small{color:#8994a6;font-size:8.5px}.firmware p{color:#5f6b7f;background:#f4f6fa;border-radius:4px;padding:8px;font-size:9px}.firmware p span{color:#0e876a;background:#dff7ef;border-radius:3px;padding:2px 5px;font-size:7.5px;font-weight:700}.firmware button{width:100%}.log-pills{gap:3px;display:flex}.log-pills button{text-transform:capitalize;color:#657287!important;background:#f0f2f6!important;border:0!important;height:27px!important;font-size:8px!important}.log-pills button.active{background:var(--primary)!important;color:#fff!important}.event-list>div:not(.ref-empty){border-bottom:1px solid var(--line);grid-template-columns:80px 70px 1fr 100px;align-items:center;gap:8px;padding:10px 14px;font-size:9px;display:grid}.event-list time{font-family:var(--mono);color:#818c9e;font-size:8px}.event-list p{margin:0}.event-list small{color:#8994a6}.event-level{width:fit-content;color:var(--primary);background:var(--primary-50);border-radius:3px;padding:3px 6px;font-size:7.5px}.event-level.alarm{color:#c14a34;background:#ffebe7}.event-level.config{color:#7853ca;background:#f1edff}.ref-footer{border-top:1px solid var(--line);color:#8792a4;z-index:25;background:#fff;align-items:center;gap:18px;height:32px;padding:0 24px;font-size:8.5px;display:flex;position:fixed;bottom:0;left:0;right:0}.ref-footer span:first-child{color:#516078;margin-right:auto;font-weight:600}.ref-footer span:not(:first-child):before{content:"●";color:#13aa82;margin-right:5px}.ref-toast{z-index:50;color:#fff;background:#17233a;border-radius:5px;align-items:center;gap:7px;padding:10px 12px;font-size:9.5px;display:flex;position:fixed;bottom:48px;right:20px;box-shadow:0 10px 30px #14233c40}.ref-toast>svg{width:15px}.ref-toast button{color:#fff;background:0 0;border:0;place-items:center;display:grid}.ref-toast button svg{width:13px}@media (width<=1000px){.ref-kpi-row,.ref-issue-cards{grid-template-columns:repeat(2,1fr)}.ref-modules button{padding:0 8px}.ref-modules button svg{display:none}.perf-kpis,.tele-grid{grid-template-columns:repeat(2,1fr)}.compact-card{display:block}.firmware-grid{grid-template-columns:1fr}}@media (width<=720px){.ref-topbar{gap:10px;padding:0 12px}.ref-brand strong{display:none}.ref-modules{margin:0;overflow:auto}.ref-modules button{min-width:max-content;font-size:9px}.ref-admin>div,.ref-admin>svg,.ref-admin>button{display:none}.ref-main{padding:16px 12px}.ref-page-head{flex-direction:column;align-items:flex-start}.ref-head-actions{width:100%}.ref-head-actions button{flex:1}.ref-kpi-row,.ref-issue-cards{grid-template-columns:1fr 1fr}.ref-card-head{flex-direction:column;align-items:flex-start}.ref-tools,.ref-tools label{width:100%}.ref-info-strip{grid-template-columns:1fr 1fr}.ref-tabs{overflow:auto}.ref-tabs button{min-width:120px}.ref-device-head{flex-direction:column;align-items:flex-start;gap:10px}.settings-body{grid-template-columns:1fr}.alarm-table-head{display:none}.alarm-table-row{grid-template-columns:40px 60px 1fr auto}.alarm-table-row>span:nth-child(3),.alarm-table-row>span:nth-child(5),.alarm-table-row>small{display:none}.event-list>div:not(.ref-empty){grid-template-columns:60px 60px 1fr}.event-list small{display:none}.ref-savebar{padding:0 12px}.ref-footer{display:none}.reference-app{padding-bottom:0}.ref-toast{bottom:15px}.ref-summary-card{height:100px;padding:10px}.ref-summary-card .arrow{display:none}}:root{--primary:#3b53ff;--primary-50:#eef1ff;--primary-100:#d6ddff;--primary-200:#a8b5ff;--primary-700:#2538d9;--primary-ink:#023c69;--ink:#1a2233;--ink2:#3a4256;--ink3:#727c90;--line:#e5e7eb;--line2:#f3f4f6;--canvas:#f6f8fd;--lvl-normal:#3b53ff;--lvl-normal-bg:#eef1ff;--lvl-1:#ca8a04;--lvl-1-bg:#fef9c3;--lvl-2:#d97706;--lvl-2-bg:#fde9c8;--lvl-3:#ea580c;--lvl-3-bg:#ffe0cc;--lvl-4:#dc2626;--lvl-4-bg:#fee2e2;--lvl-off:#727c90;--lvl-off-bg:#f1f3f7}html,body,#root{background:#fff;min-height:100%}body{color:var(--ink);font-size:14px;line-height:1.5}.reference-app{background:#fff;min-height:100vh;padding:0}.ref-topbar{border-bottom:1px solid var(--line);height:58px;box-shadow:none;gap:20px;padding:0 24px}.ref-brand{border-right:1px solid var(--line);gap:8px;margin-right:8px;padding-right:20px;font-size:21px}.ref-ring{width:28px;height:28px}.ref-modules{background:var(--canvas);border:1px solid var(--line);border-radius:4px;gap:3px;height:auto;margin:0;padding:4px;display:flex}.ref-modules button{height:auto;color:var(--ink2);border-radius:4px;padding:8px 16px;font-size:13px;font-weight:600}.ref-modules button.active{background:var(--primary);color:#fff;box-shadow:0 2px 6px -1px #3b53ff59}.ref-modules svg{width:15px;height:15px}.ref-admin{background:var(--canvas);color:var(--ink2);border-radius:99px;gap:8px;margin-left:auto;padding:5px 12px 5px 5px;font-size:12.5px}.ref-admin>span{width:28px;height:28px;font-size:11px}.ref-admin>b{font-size:12.5px;font-weight:500}.ref-main{max-width:1600px;margin:0 auto;padding:24px 28px 32px}.fleet-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px;display:flex}.fleet-heading h1{color:var(--primary-ink);letter-spacing:-.45px;margin:0;font-size:19px;font-weight:800;line-height:1}.ref-segment{border:1px solid var(--line);background:#fff;border-radius:4px;gap:2px;width:auto;margin:0;padding:4px;display:inline-flex}.ref-segment button{min-width:92px;height:auto;color:var(--ink3);border-radius:4px;padding:8px 18px;font-size:12.5px;font-weight:700}.ref-segment button.active{background:var(--primary);color:#fff;box-shadow:0 1px 3px #3b53ff40}.fleet-panel{border:1px solid var(--line);width:100%;box-shadow:none;background:#fff;border-radius:4px;overflow:hidden}.fleet-toolbar{border-bottom:1px solid var(--line);align-items:center;gap:16px;min-height:66px;padding:14px 20px;display:flex}.fleet-summary,.fleet-count{color:var(--ink2);font-size:13px}.fleet-summary b,.fleet-count b{color:var(--primary-ink);font-weight:800;font-family:var(--mono)}.fleet-search{align-items:center;width:360px;height:36px;margin-left:auto;display:flex;position:relative}.fleet-search svg{width:14px;height:14px;color:var(--ink3);position:absolute;left:12px}.fleet-search input{border:1px solid var(--line);background:#fff;border-radius:4px;outline:none;width:100%;height:36px;padding:0 12px 0 36px;font-size:13px}.fleet-search input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-50)}.icon-refresh{border:1px solid var(--line);width:36px;height:36px;color:var(--ink2);background:#fff;border-radius:4px;place-items:center;display:grid}.icon-refresh svg{width:14px}.page-size{color:var(--ink3);white-space:nowrap;align-items:center;gap:8px;font-size:11.5px;display:flex}.page-size select{border:1px solid var(--line);height:34px;font-family:var(--mono);background:#fff;border-radius:4px;padding:0 10px;font-size:12px}.export-button{border:1px solid var(--line);height:34px;color:var(--ink2);background:#fff;border-radius:4px;align-items:center;gap:6px;padding:0 12px;font-size:12.5px;font-weight:600;display:flex}.export-button svg{width:13px}.ref-table-wrap{overflow:auto}.ref-table.fleet-table{table-layout:auto;width:100%;min-width:970px}.ref-table.fleet-table th{border-bottom:1px solid var(--line);text-transform:uppercase;letter-spacing:.06em;height:auto;color:var(--ink3);background:#f8fafc;padding:12px;font-size:9.5px;font-weight:700;line-height:1}.ref-table.fleet-table th:first-child,.ref-table.fleet-table td:first-child{padding-left:24px}.ref-table.fleet-table th:last-child,.ref-table.fleet-table td:last-child{padding-right:24px}.ref-table.fleet-table th i{opacity:.45;margin-left:3px;font-style:normal}.ref-table.fleet-table td{height:55px;color:var(--ink2);border-bottom:1px solid #f2f4f8;padding:13px 12px;font-size:13px}.ref-table.fleet-table tbody tr:hover{background:#f8faff}.ref-table.fleet-table tbody tr:hover td:first-child{box-shadow:inset 3px 0 0 var(--primary)}.ref-table.fleet-table td>b{color:var(--ink);font-size:12.5px;font-weight:700}.ref-table.fleet-table code.contract{font-family:var(--mono);color:var(--primary-ink);font-size:12.5px;font-weight:700}.ref-table.fleet-table .num{text-align:right}.power-value{font-family:var(--mono);color:var(--primary-ink);font-size:13.5px;font-weight:700}.power-value small{color:var(--ink3);margin-left:3px;font-size:11px;font-weight:500}.capacity{align-items:center;gap:8px;min-width:105px;display:flex}.capacity>span{background:var(--line2);border-radius:99px;flex:1;height:6px;overflow:hidden}.capacity>span i{background:var(--primary);border-radius:99px;height:100%;display:block}.capacity>b{text-align:right;min-width:36px;font-family:var(--mono);font-size:12px}.ref-region{background:var(--primary-50);color:var(--primary);letter-spacing:.05em;border-radius:99px;padding:3px 9px;font-size:10.5px;font-weight:700;display:inline-block}.spark-text{font-family:var(--mono);letter-spacing:-4px;color:var(--primary);font-size:18px}.ref-status{border-radius:99px;gap:6px;padding:5px 11px;font-size:11px;font-weight:700}.ref-status i{width:6px;height:6px}.ref-status.normal{background:var(--lvl-normal-bg);color:var(--lvl-normal)}.ref-status.warning{background:var(--lvl-2-bg);color:var(--lvl-2)}.ref-status.critical{background:var(--lvl-4-bg);color:var(--lvl-4)}.ref-status.offline{background:var(--lvl-off-bg);color:var(--lvl-off)}.ref-table-wrap footer{border-top:1px solid var(--line);height:58px;color:var(--ink3);justify-content:space-between;align-items:center;padding:0 20px;font-size:13px;display:flex}.ref-table-wrap footer nav{gap:4px;display:flex}.ref-table-wrap footer button{border:1px solid var(--line);background:#fff;border-radius:4px;min-width:32px;height:32px;font-weight:700}.ref-table-wrap footer button.active{background:var(--primary);border-color:var(--primary);color:#fff}.original-status-bar{grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:18px;display:grid}.original-status-bar .ref-summary-card{height:auto;min-height:83px;box-shadow:none;border-radius:4px;gap:10px;padding:13px 14px}.original-status-bar .ref-summary-card.selected{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}.original-status-bar .ref-summary-icon{border-radius:4px;width:36px;height:36px}.original-status-bar .ref-summary-card small{text-transform:uppercase;letter-spacing:.08em;font-size:10px}.original-status-bar .ref-summary-card strong{margin:2px 0;font-size:23px;line-height:1}.original-status-bar .ref-summary-card p{color:var(--ink3);font-size:10px}.original-status-bar .ref-summary-card .arrow{display:none}.proactive{border:1px solid var(--line);background:#f8fafc;border-radius:4px;flex-direction:column;justify-content:center;min-height:83px;padding:13px 16px;display:flex}.proactive small{color:var(--ink2);font-size:10.5px}.proactive small i{background:var(--primary);border-radius:50%;width:6px;height:6px;margin-right:7px;display:inline-block}.proactive>b{color:var(--primary-700);align-items:baseline;gap:6px;margin-top:5px;font-size:21px;display:flex}.proactive b span{color:var(--ink3);font-size:13px}.proactive em{background:var(--primary-700);color:#fff;border-radius:99px;padding:3px 8px;font-size:12px;font-style:normal}.issue-cell{max-width:none}.issue-cell.warning{color:var(--lvl-2)!important}.issue-cell.critical{color:var(--lvl-4)!important}.issue-cell.offline{color:var(--lvl-off)!important}.device-page{padding-top:24px}.device-crumb{color:var(--primary);background:0 0;border:0;margin:0 0 14px;padding:0;font-size:12px}.device-crumb span{color:var(--ink3);padding:0 8px}.device-crumb b{color:var(--ink2)}.original-device-head{align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.customer-card{border:1px solid var(--line);background:#fff;border-radius:4px;flex:1;padding:18px 20px}.ref-customer-line{gap:12px;margin-bottom:16px}.ref-customer-line h1{color:var(--primary-ink);letter-spacing:-.5px;margin:0;font-size:19px;font-weight:800}.ref-customer-line>span{border:1px solid var(--primary-100);background:var(--primary-50);color:var(--primary);border-radius:99px;padding:5px 12px;font-size:12px;font-weight:700}.customer-grid{border-top:1px solid var(--line2);grid-template-columns:repeat(4,auto);gap:10px 32px;padding-top:14px;display:grid}.customer-grid>div{flex-direction:column;gap:3px;display:flex}.customer-grid small,.device-selector>small{color:var(--ink3);text-transform:uppercase;letter-spacing:.06em;font-size:10.5px;font-weight:700}.customer-grid b{color:var(--ink);font-size:13px;font-weight:600}.customer-grid>div:nth-child(-n+3) b{font-family:var(--mono)}.device-selector{border:1px solid var(--line);background:#fff;border-radius:4px;width:380px;padding:14px 16px 13px;position:relative}.device-selector label{align-items:center;height:38px;margin-top:6px;display:flex;position:relative}.device-selector label svg{width:14px;color:var(--ink3);position:absolute;left:11px}.device-selector input{border:1px solid var(--line);width:100%;height:38px;font-family:var(--mono);border-radius:4px;padding:0 36px;font-size:12.5px}.device-selector p{color:var(--ink3);margin:6px 0 0;font-size:10.5px}.device-selector a{color:var(--primary);font-family:var(--mono)}.device-selector>.ref-status{position:absolute;top:12px;right:16px}.device-selector .last-seen{color:var(--ink3);margin-top:7px;font-size:10px;display:block}.ref-tabs{border:1px solid var(--line);background:var(--canvas);border-radius:4px;gap:6px;margin-bottom:20px;padding:6px;display:flex}.ref-tabs button{height:auto;color:var(--ink2);background:#fff;border:1px solid #0000;border-radius:4px;padding:11px 14px;font-size:13px;font-weight:600}.ref-tabs button.active{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 2px 6px -1px #3b53ff59}@media (width<=1000px){.original-status-bar{grid-template-columns:repeat(2,1fr)}.original-device-head{flex-direction:column}.device-selector{width:100%}.customer-grid{grid-template-columns:repeat(2,1fr)}.fleet-toolbar{flex-wrap:wrap}.fleet-search{order:3;width:100%;max-width:none;margin:0}}.original-performance .ref-card-head{min-height:64px;padding:12px 16px}.original-performance .ref-card-head h2,.original-raw .ref-card-head h2{margin:0 0 2px;font-size:13px}.original-performance .ref-card-head p{font-family:var(--mono);font-size:11px}.perf-actions{align-items:center;gap:8px;display:flex}.perf-actions input{border:1px solid var(--line);height:32px;font-family:var(--mono);border-radius:4px;padding:0 9px;font-size:12px}.original-performance .perf-chart{height:360px;padding:20px 18px 8px}.original-performance .recharts-cartesian-axis-tick-value{fill:var(--ink3);font-size:11px}.perf-legends{border-top:1px solid var(--line2);grid-template-columns:1fr 1fr;gap:18px;padding:14px 18px 16px;display:grid}.perf-legends>div{flex-direction:column;gap:8px;display:flex}.perf-legends b{color:var(--ink2);font-size:11px}.perf-legends b small{color:var(--ink3);margin-left:5px;font-size:9px;font-weight:500}.perf-legends>div>span{flex-wrap:wrap;gap:6px;display:flex}.perf-legends button{border:1px solid var(--line);color:var(--ink2);background:#fff;border-radius:4px;align-items:center;gap:6px;padding:5px 8px;font-size:10.5px;display:flex}.perf-legends button i{background:var(--legend);border-radius:99px;width:14px;height:3px}.original-raw .ref-card-head{flex-direction:row;min-height:50px;padding:10px 16px}.original-raw .ref-card-head p{font-family:var(--mono);margin-left:auto;font-size:11px}.raw-scroll{max-height:380px;overflow:auto}.original-raw .raw-table{min-width:1050px}.original-raw .raw-table th{text-align:right;text-transform:uppercase;letter-spacing:.04em;padding:8px 10px;font-size:10px}.original-raw .raw-table th:first-child{text-align:left}.original-raw .raw-table td{text-align:right;padding:6px 10px;font-size:11px}.original-raw .raw-table td:first-child{text-align:left;font-family:var(--mono);font-weight:600}.original-raw .raw-table tbody tr:hover{background:var(--primary-50)}.energy-dashboard{background:#101820;border-radius:14px;grid-template-columns:minmax(440px,.95fr) minmax(520px,1.25fr);gap:14px;margin-bottom:14px;padding:14px;display:grid}.energy-hero{background:#0d1721;border:1px solid #29333e;border-radius:10px;min-height:590px;position:relative;overflow:hidden}.energy-hero>img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.energy-hero:after{content:"";pointer-events:none;background:linear-gradient(#080f1752,#0000 36%,#080f1752);position:absolute;inset:0}.energy-live{z-index:2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0c141dc7;border:1px solid #ffffff1a;border-radius:8px;flex-direction:column;padding:9px 12px;display:flex;position:absolute;box-shadow:0 10px 24px #0003}.energy-live small{color:#9aa8b8;text-transform:uppercase;letter-spacing:.08em;font-size:9px}.energy-live b{color:#f8fafc;font-family:var(--mono);margin-top:3px;font-size:20px}.energy-live em{color:#2dd4bf;margin-top:2px;font-size:9px;font-style:normal}.energy-live.solar{border-color:#f5b83b52;top:18px;left:18px}.energy-live.consumption{border-color:#4f73ff59;top:18px;right:18px}.energy-live.grid{border-color:#21d4b459;bottom:18px;right:18px}.energy-health{z-index:2;color:#f8fafc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0c141dd1;border:1px solid #2dd4bf40;border-radius:8px;grid-template-columns:auto 1fr;align-items:center;gap:2px 8px;padding:10px 13px;display:grid;position:absolute;bottom:18px;left:18px}.energy-health i{background:#2dd4bf;border-radius:50%;grid-row:1/3;width:8px;height:8px}.energy-health b{font-size:12px}.energy-health span{color:#9aa8b8;font-size:9px}.energy-health.warning i{background:#f5b83b}.energy-health.critical i{background:#ef4444}.energy-health.offline i{background:#64748b}.energy-dashboard>.original-performance{color:#e6edf5;background:#171f29;border-color:#29333e;margin:0}.energy-dashboard .perf-actions button,.energy-dashboard .perf-chip{color:#b8c3cf;background:#1d2732;border-color:#33404d}.energy-dashboard .perf-chip.on{border-color:var(--legend);color:#f8fafc}.energy-kpis{grid-template-columns:repeat(4,1fr);gap:8px;padding:12px 14px 0;display:grid}.energy-kpis>div{background:#202a35;border:1px solid #293540;border-radius:7px;padding:11px}.energy-kpis small{color:#8e9baa;text-transform:uppercase;letter-spacing:.06em;font-size:8px;display:block}.energy-kpis b{color:#f8fafc;font-family:var(--mono);margin-top:4px;font-size:13px;display:block}.energy-facts{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:14px;display:grid}.energy-facts>div{background:#fff;border:1px solid #dce6e4;border-radius:9px;padding:15px 17px}.energy-facts small,.energy-facts span{color:#789096;font-size:9px;display:block}.energy-facts b{color:#17373d;font-family:var(--mono);margin:5px 0 3px;font-size:17px;display:block}.fleet-empty{text-align:center;color:#64748b;margin:0;padding:36px 20px;font-size:14px;line-height:1.7}.fleet-empty svg{vertical-align:-3px;color:#10b981;width:18px;height:18px;margin-right:6px}.fleet-empty small{color:#94a3b8;font-size:12px}.fleet-search{position:relative}.fleet-search-clear{color:#475569;cursor:pointer;background:#e2e8f0;border:0;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;padding:0;display:flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.fleet-search-clear svg{width:12px;height:12px}.fleet-search-clear:hover{background:#cbd5e1}.perf-metric-picker{border-top:1px solid #eef0f4;padding:14px 18px 4px}.perf-metric-picker>b{color:#475569;margin-bottom:8px;font-size:12px;display:block}.perf-metric-list{flex-wrap:wrap;gap:8px;display:flex}.perf-chip{color:#64748b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:999px;align-items:center;gap:7px;padding:6px 11px;font-size:12px;display:inline-flex}.perf-chip i{background:#cbd5e1;border-radius:50%;width:9px;height:9px}.perf-chip.on{border-color:var(--legend);color:#1a2233;background:#f8fafc}.perf-chip.on i{background:var(--legend)}.perf-chip:hover{border-color:var(--legend)}.raw-table small{color:#94a3b8;font-weight:400}.last-seen-cell{color:#94a3b8;white-space:nowrap;font-size:12px}.perf-metric-group+.perf-metric-group{margin-top:12px}.perf-metric-group>b{letter-spacing:.04em;text-transform:uppercase;color:#94a3b8;margin-bottom:7px;font-size:11px;display:block}.perf-metric-note{color:#94a3b8;margin:12px 0 0;font-size:11px}.danger-backdrop{z-index:60;background:#0f172a8c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.danger-dialog{background:#fff;border:1px solid #fecaca;border-radius:10px;width:100%;max-width:460px;overflow:hidden;box-shadow:0 20px 50px #0f172a40}.danger-dialog header{color:#b91c1c;background:#fef2f2;border-bottom:1px solid #fecaca;align-items:center;gap:9px;padding:14px 18px;font-size:14px;display:flex}.danger-dialog header svg{width:18px;height:18px}.danger-dialog dl{margin:0;padding:16px 18px 4px}.danger-dialog dl>div{border-bottom:1px solid #f1f5f9;justify-content:space-between;gap:14px;padding:7px 0;font-size:12px;display:flex}.danger-dialog dt{color:#64748b}.danger-dialog dd{color:#1a2233;text-align:right;margin:0;font-weight:600}.danger-note{color:#b91c1c;background:#fef2f2;border-radius:6px;margin:12px 18px 0;padding:10px 12px;font-size:11px;line-height:1.6}.danger-dialog footer{justify-content:flex-end;gap:9px;padding:16px 18px;display:flex}.danger-dialog footer button{color:#475569;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:6px;height:34px;padding:0 15px;font-size:12px;font-weight:600}.danger-confirm{align-items:center;gap:7px;display:inline-flex;color:#fff!important;background:#dc2626!important;border-color:#dc2626!important}.danger-confirm:disabled{opacity:.7}.danger-confirm svg{width:14px;height:14px}.recover-summary{border-top:1px solid #eef0f4;border-bottom:1px solid #eef0f4;flex-wrap:wrap;gap:22px;padding:14px 18px;display:flex}.recover-summary div{flex-direction:column;gap:2px;display:flex}.recover-summary small{color:#94a3b8;font-size:11px}.recover-summary b{color:#1a2233;font-size:18px}.recover-summary .bad b{color:#dc2626}.recover-summary .good b{color:#10b981}.recover-result{border-radius:7px;align-items:center;gap:9px;margin:14px 18px 0;padding:11px 13px;font-size:12px;display:flex}.recover-result svg{flex:none;width:16px;height:16px}.recover-result small{color:#94a3b8;margin-left:auto;font-size:11px}.recover-result.completed{color:#047857;background:#ecfdf5}.recover-result.no_change,.recover-result.unverified{color:#b45309;background:#fffbeb}.recover-result.failed{color:#b91c1c;background:#fef2f2}.recover-card .perf-actions select{color:#1a2233;background:#fff;border:1px solid #e2e8f0;border-radius:6px;height:32px;padding:0 9px;font-size:12px}.perf-device-note{color:#b45309;background:#fffbeb;border-radius:7px;align-items:center;gap:8px;margin:0 18px 12px;padding:10px 12px;font-size:11px;line-height:1.6;display:flex}.perf-device-note svg{flex:none;width:15px;height:15px}.detail-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;align-items:center;gap:12px;margin:0 0 14px;padding:13px 15px;display:flex}.detail-error svg{flex:none;width:18px;height:18px}.detail-error b{font-size:13px;display:block}.detail-error p{color:#9f1239;margin:3px 0 0;font-size:12px;line-height:1.6}.detail-error button{color:#b91c1c;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #fecaca;border-radius:6px;align-items:center;gap:6px;height:32px;margin-left:auto;padding:0 13px;font-size:12px;font-weight:600;display:inline-flex}.detail-error button svg{width:14px;height:14px}.fleet-overview{background:#f7faf9;border:1px solid #dce6e8;border-radius:18px;grid-template-columns:minmax(420px,.92fr) minmax(520px,1.35fr);min-height:420px;margin-bottom:18px;display:grid;overflow:hidden;box-shadow:0 18px 50px #1a343a14}.fleet-visual{color:#e9fffb;background-color:#06192a;background-position:50%;background-repeat:no-repeat;background-size:cover;padding:42px;position:relative;overflow:hidden}.fleet-visual:before{content:"";z-index:1;pointer-events:none;background:linear-gradient(90deg,#03142261 0,#0314222e 46%,#0000 72%);position:absolute;inset:0}.fleet-visual:after{content:"";opacity:.17;background-image:linear-gradient(#ffffff12 1px,#0000 1px),linear-gradient(90deg,#ffffff12 1px,#0000 1px);background-size:32px 32px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 80%);mask-image:linear-gradient(#000,#0000 80%)}.fleet-visual-copy{z-index:2;position:relative}.eyebrow{color:#618087;letter-spacing:.16em;align-items:center;gap:7px;font-size:10px;font-weight:800;display:inline-flex}.fleet-visual .eyebrow{color:#82d9cb}.eyebrow>i{background:#2dd4bf;border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 5px #2dd4bf1f}.fleet-visual h1{letter-spacing:-.055em;margin:20px 0 12px;font-size:42px;line-height:.98}.fleet-visual-copy p{color:#a9c4c6;margin:0;font-size:12px;line-height:1.7}.solar-scene{z-index:1;filter:drop-shadow(0 26px 26px #00000047);width:245px;height:190px;position:absolute;bottom:48px;right:22px}.sun-orbit{border:1px solid #2dd4bf33;border-radius:50%;width:82px;height:82px;position:absolute;top:0;right:18px;box-shadow:0 0 42px #2dd4bf1f}.sun-orbit:after{content:"";background:#72e1cf;border-radius:50%;position:absolute;inset:28px;box-shadow:0 0 28px #2dd4bf}.solar-building{clip-path:polygon(16% 0,100% 22%,100% 100%,0 100%,0 18%);background:linear-gradient(135deg,#426069,#253f48);width:186px;height:100px;position:absolute;bottom:0;right:10px}.solar-building span{opacity:.38;background:#90b5b7;width:24px;height:32px;margin:48px 0 0 22px;display:inline-block;position:relative}.solar-roof{z-index:2;background:#172f36;border:1px solid #5f8184;grid-template-columns:repeat(4,1fr);gap:4px;width:175px;height:68px;padding:7px;display:grid;position:absolute;bottom:86px;right:25px;transform:skewY(8deg)}.solar-roof i{background:linear-gradient(145deg,#236b78,#153d4c);border:1px solid #458695}.energy-pulse{color:#0e3034;background:#2dd4bf;border-radius:50%;place-items:center;width:42px;height:42px;display:grid;position:absolute;bottom:12px;left:20px;box-shadow:0 0 0 8px #2dd4bf1f}.energy-pulse svg{width:18px}.hero-metric{z-index:3;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:#0f272dc2;border:1px solid #ffffff1f;border-radius:10px;padding:11px 14px;position:absolute}.hero-metric small{color:#94b2b5;font-size:9px;display:block}.hero-metric b{color:#fff;font-family:var(--mono);margin-top:2px;font-size:20px;display:block}.hero-metric b span{color:#73daca;font-size:10px}.hero-metric.power{bottom:32px;left:38px}.hero-metric.energy{top:34px;right:28px}.fleet-insight{background:linear-gradient(#fbfdfc,#f2f7f5);padding:30px 32px}.fleet-insight>header{justify-content:space-between;align-items:flex-start;display:flex}.fleet-insight h2{color:#17373d;letter-spacing:-.04em;margin:5px 0 0;font-size:22px}.fleet-metrics{background:#dce6e4;border:1px solid #dce6e4;border-radius:10px;grid-template-columns:repeat(4,1fr);gap:1px;margin:26px 0 20px;display:grid;overflow:hidden}.fleet-metrics div{background:#fff;padding:14px}.fleet-metrics small{color:#789096;text-transform:uppercase;letter-spacing:.08em;font-size:9px;display:block}.fleet-metrics b{color:#17373d;font-family:var(--mono);font-size:19px}.energy-ranking{background:repeating-linear-gradient(#0000 0 28px,#e5ecea 29px);border:1px solid #dce6e4;border-radius:10px 10px 0 0;align-items:flex-end;gap:10px;height:118px;padding:14px 10px 0;display:flex}.energy-ranking button{background:0 0;border:0;flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:5px;height:100%;padding:0;display:flex}.energy-ranking button i{background:linear-gradient(#34d3b5,#138b7d);border-radius:5px 5px 1px 1px;width:min(24px,70%);min-height:8px;transition:filter .2s,transform .2s}.energy-ranking button:hover i{filter:brightness(1.1);transform:translateY(-2px)}.energy-ranking button span{color:#789096;font-family:var(--mono);font-size:8px}.energy-ranking p{color:#789096;margin:auto;font-size:11px}.status-mix{grid-template-columns:repeat(4,1fr);gap:10px;padding-top:17px;display:grid}.status-mix>div{grid-template-columns:1fr auto;gap:5px;display:grid}.status-mix span{color:#658087;font-size:9px}.status-mix span i{border-radius:50%;width:6px;height:6px;margin-right:5px;display:inline-block}.status-mix b{color:#17373d;font-family:var(--mono);font-size:11px}.status-mix em{background:#dfe8e6;border-radius:99px;grid-column:1/-1;height:3px;overflow:hidden}.status-mix em i{border-radius:99px;height:100%;display:block}.inventory-actions{gap:7px;margin-left:auto;display:flex}.inventory-actions button{color:#285c5b;background:#fff;border:1px solid #cad8d7;border-radius:6px;align-items:center;gap:6px;height:36px;padding:0 11px;font-size:11px;font-weight:700;display:inline-flex}.inventory-actions button.delete{color:#b84949}.inventory-actions button:disabled{cursor:not-allowed;opacity:.42}.operation-message{border-radius:6px;margin:0 18px 12px;padding:9px 11px;font-size:11px}.operation-message.success{color:#0f766e;background:#ecfdf5;border:1px solid #a7f3d0}.operation-message.error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca}.new-device-dialog>label{color:#475569;flex-direction:column;gap:7px;padding:18px;font-size:11px;font-weight:700;display:flex}.new-device-dialog input{height:38px;font:12px var(--mono);text-transform:uppercase;border:1px solid #cbd5e1;border-radius:6px;padding:0 11px}.new-device-dialog input:focus{border-color:#14b8a6;outline:2px solid #99f6e4}.micro-workspace{margin-top:16px;overflow:hidden;border-color:#dce6e4!important;border-radius:12px!important}.micro-workspace .ref-card-head{background:#f7faf9}.micro-telemetry-layout{grid-template-columns:minmax(0,1.65fr) minmax(250px,.7fr);min-height:350px;display:grid}.micro-chart{border-right:1px solid #e2ebe9;height:350px;padding:24px 16px 10px}.micro-chart .recharts-cartesian-axis-tick-value{fill:#789096;font-size:10px}.micro-chart-empty{color:#789096;flex-direction:column;justify-content:center;align-items:center;height:100%;display:flex}.micro-chart-empty svg{width:24px;margin-bottom:9px}.micro-chart-empty b{font-size:12px}.micro-chart-empty span{margin-top:4px;font-size:10px}.micro-kpis{grid-template-columns:1fr 1fr;align-content:stretch;display:grid}.micro-kpis>div{background:#fff;border-bottom:1px solid #eef2f1;border-right:1px solid #eef2f1;padding:15px}.micro-kpis small{color:#789096;text-transform:uppercase;letter-spacing:.05em;font-size:8.5px;display:block}.micro-kpis b{color:#17373d;font-family:var(--mono);margin-top:4px;font-size:12px;display:block}@media (width<=1100px){.fleet-overview,.energy-dashboard{grid-template-columns:1fr}.fleet-visual{min-height:360px}.energy-hero{min-height:540px}.micro-telemetry-layout{grid-template-columns:1fr}.micro-chart{border-bottom:1px solid #e2ebe9;border-right:0}}@media (width<=720px){.fleet-visual{min-height:390px;padding:28px}.fleet-visual h1{font-size:34px}.solar-scene{right:-25px;transform:scale(.82)}.hero-metric.energy{top:20px;right:16px}.fleet-insight{padding:22px 18px}.fleet-metrics,.status-mix,.energy-kpis{grid-template-columns:repeat(2,1fr)}.energy-dashboard{padding:8px}.energy-hero{min-height:430px}.energy-live{padding:7px 9px}.energy-live b{font-size:15px}.energy-facts{grid-template-columns:1fr}.inventory-actions{width:100%;margin:0}.inventory-actions button{flex:1;justify-content:center}.micro-kpis{grid-template-columns:1fr 1fr}}html[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--canvas:#f6f8fb;--surface:#fff;--surface-2:#fbfdfd;--surface-3:#eef5f4;--primary:#3b53ff;--primary-50:#eef1ff;--primary-100:#d6ddff;--primary-200:#a8b5ff;--primary-700:#2538d9;--primary-ink:#16257a;--ink:#1a2633;--ink2:#435264;--ink3:#71818a;--muted:#71818a;--line:#dfe8e8;--line2:#edf2f2;--card:#fff;--chart-grid:#e2eceb;--shadow:0 18px 44px #193d4314;--badge-warn-bg:#fff8e8;--badge-warn-ink:#8a6416;--badge-warn-line:#e6c478;--badge-error-bg:#ffe8e5;--badge-error-ink:#b73c32;--badge-error-line:#f0bdb6;--tone-ok-bg:#e7f8f3;--tone-ok-ink:#0d876a;--tone-off-bg:#eef0f4;--tone-off-ink:#6a7587}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--canvas:#0b1117;--surface:#151e26;--surface-2:#1a252e;--surface-3:#202d36;--primary:#7d92ff;--primary-50:#1b2350;--primary-100:#2b3670;--primary-200:#566bd6;--primary-700:#93a6ff;--primary-ink:#dde3ff;--ink:#e5f0f0;--ink2:#bfd0d2;--ink3:#8fa5a8;--muted:#8fa5a8;--line:#2b3b44;--line2:#24333c;--card:#151e26;--chart-grid:#2d4048;--shadow:0 18px 44px #00000042;--badge-warn-bg:#3a2f12;--badge-warn-ink:#f2c260;--badge-warn-line:#6b5a22;--badge-error-bg:#3a1d1a;--badge-error-ink:#f4a79c;--badge-error-line:#6b322b;--tone-ok-bg:#12302a;--tone-ok-ink:#5fd3ae;--tone-off-bg:#242f38;--tone-off-ink:#9aabb5}html,body{background:var(--canvas);min-height:100%;color:var(--ink);transition:background .2s,color .2s}body,.reference-app{background:var(--canvas);color:var(--ink)}.reference-app{transition:background .2s,color .2s}.reference-app :is(.ref-card,.ref-segment,.ref-tabs,.ref-summary-card,.customer-card,.device-selector,.fleet-panel,.settings-section,.register-card,.alarm-stats>div,.firmware,.alerts-card,.micro-workspace){background:var(--surface);color:var(--ink);border-color:var(--line)}.reference-app :is(button,input,select){color:var(--ink)}.reference-app :is(input,select){background:var(--surface);border-color:var(--line);color:var(--ink)}.reference-app :is(input,select)::placeholder{color:var(--ink3)}.reference-app :is(.ref-page-head h1,.ref-device-head h1,.ref-card-head h2,.ref-customer-line h1,.customer-grid b,.ref-summary-card strong,.ref-table.fleet-table td>b,.ref-table .ref-customer b,.settings-section>header>b,.register-card h3,.fleet-insight h2,.energy-facts b){color:var(--ink)}.reference-app :is(.ref-page-head p,.ref-device-head p,.ref-card-head p,.ref-summary-card small,.ref-summary-card p,.customer-grid small,.device-selector>small,.device-selector p,.device-selector .last-seen,.ref-table td,.ref-table td>small,.ref-empty,.proactive small,.fleet-summary,.fleet-count,.page-size,.micro-chart-empty,.micro-kpis small,.energy-facts small,.energy-facts span,.firmware>small,.event-list time,.event-list small){color:var(--muted)}.top-bar{z-index:30;background:var(--surface);border-bottom:1px solid var(--line);align-items:center;gap:20px;min-height:64px;padding:0 28px;transition:background .2s,border-color .2s;display:flex;position:sticky;top:0;box-shadow:0 5px 20px #0e232a0d}.top-logo{object-fit:contain;width:auto;height:32px;display:block}.top-right{align-items:center;gap:12px;min-width:0;margin-left:auto;display:flex}.top-clock{color:var(--muted);white-space:nowrap;font-size:11px}.top-user{color:var(--ink2);white-space:nowrap;align-items:center;gap:6px;font-size:11px;display:inline-flex}.top-user svg,.top-signout svg,.theme-toggle svg{width:15px;height:15px}.top-signout,.theme-toggle{border:1px solid var(--line);background:var(--surface-2);height:32px;color:var(--ink2);border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:0 10px;font-size:10px;font-weight:700;display:inline-flex}.top-signout:hover,.theme-toggle:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-50)}.theme-toggle{min-width:76px}.ref-main{color:var(--ink)}.ref-card-head,.fleet-toolbar,.ref-table-wrap footer,.perf-legends,.customer-grid,.original-performance .ref-card-head,.original-raw .ref-card-head{border-color:var(--line)}.ref-card-head button,.ref-head-actions button,.ref-button-row button,.alarm-table-row button,.ref-savebar button,.firmware button,.ref-tools button,.export-button,.icon-refresh,.perf-legends button,.inventory-actions button,.register-refresh,.detail-error button,.perf-actions button{background:var(--surface-2);border-color:var(--line);color:var(--ink2)}.ref-table th,.ref-table.fleet-table th,.raw-table th,.alarm-table-head{background:var(--surface-3);border-color:var(--line);color:var(--muted)}.ref-table td,.ref-table.fleet-table td,.raw-table td,.alarm-table-row,.event-list>div:not(.ref-empty){border-color:var(--line2);color:var(--ink2)}.ref-table tbody tr:hover,.ref-table.fleet-table tbody tr:hover{background:var(--surface-3)}.ref-table code,.ref-table.fleet-table code.contract{color:var(--primary-ink)}.ref-region{background:var(--primary-50);color:var(--primary)}.ref-table-wrap footer,.ref-footer,.ref-savebar{background:var(--surface);color:var(--muted);border-color:var(--line)}.ref-segment,.ref-tabs{background:var(--surface-3)}.ref-segment button,.ref-tabs button{background:var(--surface);color:var(--ink2)}.ref-tabs button:hover{background:var(--surface-3)}.capacity>span,.status-mix em{background:var(--line2)}.proactive{background:var(--surface-3);border-color:var(--line)}.proactive>b{color:var(--primary-ink)}.ref-summary-card.mint .ref-summary-icon{color:var(--primary);background:var(--primary-50)}.ref-summary-card.gray .ref-summary-icon{color:var(--muted);background:var(--surface-3)}.fleet-panel{box-shadow:var(--shadow)}.fleet-overview{background:var(--surface);border-color:var(--line);box-shadow:var(--shadow)}.fleet-insight{background:var(--surface-2)}.fleet-insight h2,.fleet-metrics b,.status-mix b{color:var(--ink)}.fleet-metrics{border-color:var(--line);background:var(--line)}.fleet-metrics div{background:var(--surface)}.fleet-metrics small,.status-mix span{color:var(--muted)}.data-source{color:var(--primary)}html[data-theme=light] .fleet-visual{color:#123d52;background-color:#dff4fa}html[data-theme=light] .fleet-visual:before{background:linear-gradient(90deg,#f0f9ff7a 0,#f0f9ff33 46%,#0000 72%)}html[data-theme=light] .hero-copy{color:#123d52;text-shadow:0 1px 1px #ffffffb8}html[data-theme=light] .hero-copy h1{color:#123d52}html[data-theme=light] .fleet-visual:after{opacity:.2;background-image:linear-gradient(#0e57561a 1px,#0000 1px),linear-gradient(90deg,#0e57561a 1px,#0000 1px)}html[data-theme=light] .fleet-visual .eyebrow{color:#27706e}html[data-theme=light] .fleet-visual-copy p{color:#4c7779}html[data-theme=light] .hero-metric{color:#123d43;background:#ffffffb3;border-color:#165b5b29;box-shadow:0 12px 26px #1858571f}html[data-theme=light] .hero-metric small{color:#547579}html[data-theme=light] .hero-metric b{color:#123d43}.energy-dashboard{background:var(--surface-3);border:1px solid var(--line);box-shadow:var(--shadow)}.energy-hero{background:var(--surface-3);border-color:var(--line)}.energy-dashboard>.original-performance{background:var(--surface);border-color:var(--line);color:var(--ink)}.energy-dashboard .original-performance .ref-card-head{border-color:var(--line)}.energy-dashboard .original-performance .ref-card-head p,.energy-dashboard .perf-metric-group>b,.energy-dashboard .perf-metric-note{color:var(--muted)}.energy-dashboard .perf-actions button,.energy-dashboard .perf-chip{background:var(--surface-2);border-color:var(--line);color:var(--ink2)}.energy-dashboard .original-performance .recharts-cartesian-axis-tick-value{fill:var(--muted)}.energy-dashboard .perf-metric-picker{border-color:var(--line)}.energy-kpis>div{background:var(--surface-2);border-color:var(--line)}.energy-kpis small{color:var(--muted)}.energy-kpis b{color:var(--ink)}.energy-facts>div{background:var(--surface);border-color:var(--line)}html[data-theme=light] .energy-hero:after{background:linear-gradient(#ffffff0d,#0000 36%,#ffffff1f)}html[data-theme=light] .energy-live{color:var(--ink);background:#ffffffd6;border-color:#123d4329;box-shadow:0 10px 24px #20535826}html[data-theme=light] .energy-live small{color:#547579}html[data-theme=light] .energy-live b{color:#123d43}html[data-theme=light] .energy-health{color:#123d43;background:#ffffffd6;border-color:#0b8f8640;box-shadow:0 10px 24px #20535824}html[data-theme=light] .energy-health span{color:#547579}.telemetry-card .ref-card-head,.micro-workspace .ref-card-head{background:var(--surface-2)}.micro-workspace{box-shadow:var(--shadow)}.micro-chart{border-color:var(--line)}.micro-kpis>div{background:var(--surface);border-color:var(--line2)}.micro-kpis b{color:var(--ink)}.settings-section>header{background:var(--primary-50);border-color:var(--primary-100)}.settings-section>header>b{color:var(--primary-ink)}.setting-field,.register-card{background:var(--surface);border-color:var(--line)}.setting-field input:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-50)}.unit-input span,.register-card>footer span{background:var(--surface-3);border-color:var(--line);color:var(--muted)}.register-source{background:var(--surface-2);border-color:var(--line)}.register-source b,.register-card h3,.register-reading strong{color:var(--ink)}.register-card>footer{border-color:var(--line2);color:var(--muted)}.register-loading{background:var(--primary-50);color:var(--primary-ink)}.recover-summary{border-color:var(--line)}.recover-summary small,.recover-result small{color:var(--muted)}.recover-summary b{color:var(--ink)}.recover-card .perf-actions select{background:var(--surface);border-color:var(--line);color:var(--ink)}.detail-loading,.provenance{background:var(--surface-2);border-color:var(--line);color:var(--ink2)}.detail-error{background:#fff1ef;border-color:#f4c7c1}.alert-tabs{background:var(--surface-3);border-color:var(--line)}.alert-tabs button{background:var(--surface);color:var(--ink2);border-color:var(--line)}.alert-toolbar{border-color:var(--line)}.firmware p{background:var(--surface-3);color:var(--ink2)}.log-pills button{background:var(--surface-3)!important;color:var(--muted)!important}.ref-toast{color:#effffc;background:#17383b}.recharts-cartesian-grid line{stroke:var(--chart-grid)!important}.recharts-cartesian-axis-tick-value{fill:var(--muted)!important}.recharts-default-tooltip{box-shadow:var(--shadow);background:var(--surface)!important;border:1px solid var(--line)!important;color:var(--ink)!important}.recharts-tooltip-label,.recharts-tooltip-item{color:var(--ink)!important}html[data-theme=light] .reference-app .top-bar{color:#1a2633;background:#fff}html[data-theme=dark] .reference-app .top-bar{color:#e5f0f0;background:#151e26!important}html[data-theme=dark] .reference-app .top-signout,html[data-theme=dark] .reference-app .theme-toggle{color:#e5f0f0!important;background:#1a252e!important;border-color:#2b3b44!important}@media (width<=720px){.top-bar{gap:10px;padding:0 12px}.top-clock{display:none}.top-right{gap:6px}.top-user{font-size:0}.top-user svg{width:16px}.top-signout{min-width:32px;padding:0;font-size:0}.theme-toggle{width:32px;min-width:32px;padding:0;font-size:0}}.recovery-daily .recovery-daily-chart{height:240px;padding:0 16px 12px}.recovery-daily-tip{background:var(--surface);border:1px solid var(--line);color:var(--ink2);box-shadow:var(--shadow);border-radius:8px;flex-direction:column;gap:2px;padding:8px 10px;font-size:12px;display:flex}.recovery-daily-tip b{color:var(--ink)}@media (width<=640px){.recovery-daily .recovery-daily-chart{height:200px;padding:0 4px 8px}}.pkg-chip{border:1px solid var(--pkg-line);background:var(--pkg-bg);max-width:100%;color:var(--pkg-ink);white-space:nowrap;text-overflow:ellipsis;cursor:default;border-radius:999px;align-items:center;padding:2px 9px;font:600 11.5px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;display:inline-flex;overflow:hidden}button.pkg-chip{cursor:pointer}button.pkg-chip:hover{filter:brightness(.96);box-shadow:0 0 0 2px var(--pkg-line)}button.pkg-chip:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.pkg-chip.lite-8{--pkg-bg:#e3f6ee;--pkg-ink:#0b7a55;--pkg-line:#a6dfc8}.pkg-chip.lite-5{--pkg-bg:#e2f4f7;--pkg-ink:#0f6f80;--pkg-line:#a3d6df}.pkg-chip.plus-8{--pkg-bg:#e7ecff;--pkg-ink:#2a3fc7;--pkg-line:#b5c2ff}.pkg-chip.plus-5{--pkg-bg:#efe9ff;--pkg-ink:#5b38c4;--pkg-line:#cdbcff}.pkg-chip.plus-6{--pkg-bg:#f8e6fb;--pkg-ink:#8a2a9e;--pkg-line:#e2b3ec}.pkg-chip.up{--pkg-bg:#fff3dc;--pkg-ink:#8a5a00;--pkg-line:#f0cf8a}.pkg-chip.emp{--pkg-bg:#ffe7ef;--pkg-ink:#a8295a;--pkg-line:#f3b6cb}.pkg-chip.other,.pkg-chip.none{--pkg-bg:var(--tone-off-bg);--pkg-ink:var(--tone-off-ink);--pkg-line:var(--line)}html[data-theme=dark] .pkg-chip.lite-8{--pkg-bg:#103328;--pkg-ink:#6fdcb2;--pkg-line:#1e5a46}html[data-theme=dark] .pkg-chip.lite-5{--pkg-bg:#0f2e35;--pkg-ink:#71cfe0;--pkg-line:#1d5560}html[data-theme=dark] .pkg-chip.plus-8{--pkg-bg:#1b2350;--pkg-ink:#a3b3ff;--pkg-line:#33417f}html[data-theme=dark] .pkg-chip.plus-5{--pkg-bg:#261d4d;--pkg-ink:#c2adff;--pkg-line:#44367f}html[data-theme=dark] .pkg-chip.plus-6{--pkg-bg:#33193b;--pkg-ink:#e6a6f2;--pkg-line:#5a2d66}html[data-theme=dark] .pkg-chip.up{--pkg-bg:#3a2f12;--pkg-ink:#f2c260;--pkg-line:#6b5a22}html[data-theme=dark] .pkg-chip.emp{--pkg-bg:#3a1a27;--pkg-ink:#f5a3c1;--pkg-line:#6b2f46}.shared-badge{vertical-align:middle;color:var(--badge-warn-ink);align-items:center;gap:4px;margin-left:6px;display:inline-flex}.shared-badge svg{width:14px;height:14px}.shared-badge.labelled{background:var(--badge-warn-bg);border:1px solid var(--badge-warn-line);border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600}.gateway-plants .shared-note{color:var(--badge-warn-ink);align-items:flex-start;gap:6px;display:flex}.gateway-plants .shared-note svg{flex:none;width:14px;height:14px;margin-top:2px}.gateway-plants.shared{border-color:var(--badge-warn-line)}.gateway-plants .row-actions{white-space:nowrap;justify-content:flex-end;gap:6px;display:flex}.gateway-plants .gw-btn.danger{color:var(--badge-error-ink);border-color:var(--badge-error-line)}.gateway-plants .gw-btn.danger svg{width:13px;height:13px}.danger-type{color:#475569;flex-direction:column;gap:6px;margin:12px 18px 0;font-size:11px;font-weight:700;display:flex}.danger-type input{height:36px;font:13px var(--mono);border:1px solid #cbd5e1;border-radius:6px;padding:0 10px}.danger-type input:focus{border-color:#dc2626;outline:2px solid #fca5a5}.backflow-switch .backflow-fields{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;padding:0 18px 16px;display:grid}.backflow-switch .backflow-field{border:1px solid var(--line);border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px;padding:12px;display:flex}.backflow-switch .backflow-field>span{color:var(--ink2);flex-basis:100%;font-size:12px;font-weight:700}.backflow-switch .backflow-field b{font:600 15px var(--mono);min-width:72px}.backflow-switch .backflow-field input{border:1px solid var(--line);background:var(--surface);width:110px;height:34px;color:var(--ink);font:14px var(--mono);border-radius:6px;padding:0 10px}.control-view-tabs{flex-wrap:wrap;align-items:center;gap:6px;padding:0 18px 12px;display:flex}.control-view-tabs small{color:var(--ink3);margin-right:4px;font-size:11px}.control-view-tabs button{border:1px solid var(--line);color:var(--ink2);cursor:pointer;background:0 0;border-radius:999px;padding:3px 10px;font-size:12px}.control-view-tabs button.active{background:var(--primary-50);border-color:var(--primary-200);color:var(--primary-700);font-weight:600}.detail-loading{color:var(--ink3);align-items:center;gap:8px;margin:-8px 0 14px;font-size:12px;display:flex}.detail-loading svg{width:15px}.micro-state{white-space:nowrap;align-items:center;gap:5px;font-weight:700;display:inline-flex}.micro-state i{background:currentColor;border-radius:50%;width:6px;height:6px}.micro-state.on-grid,.micro-state.online{color:var(--tone-ok-ink);background:var(--tone-ok-bg)}.micro-state.standby{color:var(--badge-warn-ink);background:var(--badge-warn-bg)}.micro-state.offline{color:var(--tone-off-ink);background:var(--tone-off-bg)}.micro-state.fault{color:var(--badge-error-ink);background:var(--badge-error-bg)}.status-legend{border-top:1px solid var(--line);color:var(--ink3);align-items:center;gap:8px;padding:11px 15px;font-size:11px;display:flex}.status-legend>b{color:var(--ink2);margin-right:5px}.analysis-stack{flex-direction:column;gap:2px;display:flex}.section-heading{justify-content:space-between;align-items:flex-end;margin:0 0 12px;display:flex}.section-heading h2{color:var(--primary-ink);margin:0;font-size:17px}.section-heading p{color:var(--ink3);margin:3px 0 0;font-size:11px}.data-source{color:#047857;align-items:center;gap:6px;font-size:11px;display:inline-flex}.data-source i{background:#10b981;border-radius:50%;width:6px;height:6px}.analysis-panel .ref-card-head{align-items:flex-start}.analysis-panel .ref-card-head h2,.historical-card .ref-card-head h2{align-items:center;gap:7px;display:flex}.analysis-panel .ref-card-head h2 svg,.historical-card .ref-card-head h2 svg{width:16px;color:var(--primary)}.analysis-controls{align-items:flex-end;gap:8px;display:flex}.analysis-controls label,.historical-filters label{color:var(--ink3);flex-direction:column;gap:4px;font-size:10px;font-weight:600;display:flex}.analysis-controls select,.historical-filters select,.historical-filters input{border:1px solid var(--line);background:var(--surface);min-width:170px;height:32px;color:var(--ink2);border-radius:4px;padding:0 9px;font-size:11px}.analysis-kpi{background:var(--surface-2);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:11px 16px;display:flex}.analysis-kpi span{color:var(--ink3);font-size:11px}.analysis-kpi span b{color:var(--primary);text-transform:capitalize;margin-left:5px}.analysis-kpi strong{font-family:var(--mono);color:var(--primary-ink);font-size:18px}.analysis-chart{height:285px;padding:16px}.historical-card .ref-card-head>button{align-items:center;gap:6px;display:flex}.historical-card .ref-card-head>button svg{width:14px}.historical-filters{border-bottom:1px solid var(--line);background:var(--surface-2);align-items:flex-end;gap:9px;padding:13px 15px;display:flex}.historical-filters label select,.historical-filters label input{min-width:150px}.historical-filters>button{border:1px solid var(--primary);border-radius:4px;height:32px;padding:0 13px;font-size:11px;font-weight:700}.historical-table{min-width:980px}.historical-table td b{text-transform:capitalize;font-size:11px}.alerts-card{overflow:hidden}.alert-tabs{border-bottom:1px solid var(--line);background:#f8fafc;gap:0;padding:0 8px;display:flex}.alert-tabs button{color:#64748b;background:0 0;border:0;border-right:1px solid #e2e8f0;align-items:center;gap:7px;height:42px;padding:0 20px;font-size:12px;font-weight:600;display:flex}.alert-tabs button svg{width:15px}.alert-tabs button span{background:var(--surface-3);color:var(--ink2);border-radius:99px;padding:2px 6px;font-size:10px}.alert-tabs button.active{color:#3b53ff;border-bottom:2px solid #3b53ff}.alert-tabs button.active span{color:#3b53ff;background:#eef2ff}.alert-toolbar{background:var(--surface);border-bottom:1px solid var(--line);align-items:center;gap:9px;padding:14px 20px;display:flex}.alert-toolbar .fleet-search{width:300px;margin:0}.alert-toolbar .fleet-search input{background:var(--surface);border-color:var(--line);color:var(--ink)}.alert-toolbar>button{color:#475569;background:0 0;border:1px solid #cbd5e1;border-radius:4px;align-items:center;gap:6px;height:34px;margin-left:auto;padding:0 11px;font-size:11px;display:flex}.alert-toolbar>button svg{width:14px}.alerts-table{min-width:1250px}.alerts-table th{background:var(--surface-3);color:var(--ink2)}.alerts-table td{background:var(--surface);border-color:var(--line);height:57px;color:var(--ink);padding:10px 12px;font-size:11px}.alerts-table tbody tr:hover td{background:var(--surface-2)}.alerts-table td small{color:#64748b;font-family:var(--mono)}.alerts-table td code{color:#475569;font-size:10px}.alerts-table td .alarm-level{display:inline-block}.alerts-table .alert-details{text-overflow:ellipsis;white-space:nowrap;color:#64748b;max-width:280px;overflow:hidden}.ack-button{color:#3b53ff;background:0 0;border:1px solid #10b981;border-radius:4px;height:28px;padding:0 9px;font-size:10px;font-weight:700}.alert-footer{color:#64748b;background:#fff;justify-content:space-between;padding:12px 20px;font-size:11px;display:flex}@media (width<=900px){.analysis-controls{flex-wrap:wrap;width:100%}.analysis-controls label{flex:1}.analysis-controls select{width:100%;min-width:0}.historical-filters{flex-wrap:wrap}.historical-filters label{flex:1}.historical-filters label select,.historical-filters label input{width:100%;min-width:0}.historical-filters>button{width:100%}}@media (width<=720px){.alert-tabs{overflow:auto}.alert-tabs button{min-width:max-content;padding:0 14px}.alert-toolbar{flex-wrap:wrap}.alert-toolbar .fleet-search{width:100%}.alert-toolbar>button{margin-left:0}.analysis-panel .ref-card-head{gap:10px}.analysis-controls{flex-direction:column;align-items:stretch}.analysis-controls label{width:100%}.analysis-kpi{flex-direction:column;align-items:flex-start;gap:5px}.status-legend{flex-wrap:wrap}}.inventory-card{color:#1a2233;background:#fff;border:1px solid #e2e8f0;border-radius:4px;overflow:hidden}.inventory-tabs{background:var(--surface-2);border-bottom:1px solid var(--line);display:flex;overflow:auto}.inventory-tabs button{border:0;border-right:1px solid var(--line);min-width:132px;height:46px;color:var(--ink3);white-space:nowrap;background:0 0;padding:0 18px;font-size:12px;font-weight:600}.inventory-tabs button.active{color:var(--primary);background:var(--primary-50);box-shadow:inset 0 -2px var(--primary)}.inventory-body{padding:24px 22px 0}.inventory-toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.inventory-toolbar select,.inventory-search input{border:1px solid var(--line);background:var(--surface);height:36px;color:var(--ink);border-radius:4px;font-size:11px}.inventory-toolbar select{width:auto;min-width:140px;padding:0 9px}.inventory-search{flex:0 260px;display:block;position:relative}.inventory-search svg{color:#94a3b8;width:14px;position:absolute;top:9px;left:9px}.inventory-search input{outline:0;width:100%;padding:0 10px 0 30px}.inventory-search input:focus,.inventory-toolbar select:focus{border-color:#3b53ff}.inventory-summary{color:#1a2233;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;min-height:48px;font-size:12px;font-weight:700;display:flex}.inventory-summary>span{align-items:center;gap:8px;display:flex}.inventory-summary>span i{background:#3b53ff;border-radius:2px;width:4px;height:15px}.inventory-summary small{color:#64748b;font-weight:500}.inventory-table-wrap{margin:0 -22px;overflow:auto}.inventory-table{border-collapse:collapse;width:100%;min-width:450px}.inventory-table th{background:var(--surface-3);height:37px;color:var(--ink2);text-align:left;padding:0 22px;font-size:11px}.inventory-table td{border-bottom:1px solid var(--line);height:43px;color:var(--ink);padding:0 22px;font-size:11px}.inventory-table tbody tr{cursor:pointer}.inventory-table tbody tr:hover td,.inventory-table tbody tr.selected td{background:var(--surface-2)}.inventory-status{white-space:nowrap;align-items:center;gap:9px;display:inline-flex}.inventory-status i{background:#10b981;border-radius:50%;width:10px;height:10px}.inventory-status.offline i{background:#94a3b8}.inventory-status.standby i{background:#e5aa2e}.inventory-status.fault i{background:#ed6946}.inventory-status.pending-cloud i{background:#3b53ff}.inventory-status.not-on-gateway i{background:#ed6946}.inventory-sn{color:#3b53ff;font-family:var(--mono);font-size:11px}.inventory-empty{color:#64748b;flex-direction:column;justify-content:center;align-items:center;gap:5px;min-height:170px;font-size:11px;display:flex}.inventory-empty svg{color:#3b53ff;width:22px;height:22px;margin-bottom:3px}.inventory-empty b{color:#1a2233}.inventory-actions{justify-content:flex-end;gap:8px;margin:12px 0 0;display:flex}.inventory-actions button{color:#334155;background:#fff;border:1px solid #cbd5e1;border-radius:4px;align-items:center;gap:6px;height:32px;padding:0 11px;font-size:11px;display:inline-flex}.inventory-actions button svg{width:14px}.inventory-actions button.primary{color:#fff;background:#059669;border-color:#10b981}@media (width<=600px){.inventory-body{padding:18px 14px 0}.inventory-toolbar{flex-direction:column;max-width:none}.inventory-toolbar select{width:100%}.inventory-table-wrap{margin:0 -14px}.inventory-table th,.inventory-table td{padding:0 14px}.inventory-summary{flex-direction:column;justify-content:center;align-items:flex-start;gap:3px;padding:9px 0}.inventory-actions{justify-content:stretch}.inventory-actions button{flex:1;justify-content:center}}.micro-hits{flex-wrap:wrap;gap:7px;padding:0 15px 12px;display:flex}.micro-hit{border:1px solid var(--line);color:#59667b;background:#f8fafc;border-radius:999px;align-items:center;gap:5px;padding:5px 10px;font-size:9.5px;display:inline-flex}.micro-hit b{color:#273246;font-weight:700;font-family:var(--mono)}.micro-hit i{color:#929bac;font-style:normal}.micro-hit.unresolved{border-color:var(--badge-warn-line);background:var(--badge-warn-bg);color:var(--badge-warn-ink)}.micro-hit.more{color:#929bac}.provenance{border:1px solid var(--line);background:var(--surface-2);color:var(--ink3);border-radius:5px;align-items:center;gap:7px;margin:0 0 11px;padding:8px 11px;font-size:9.5px;display:flex}.provenance svg{flex:none;width:14px}.provenance.unknown{border-color:var(--badge-warn-line);background:var(--badge-warn-bg);color:var(--badge-warn-ink)}.danger-action:disabled{opacity:.45;cursor:not-allowed}.provenance-actions{gap:6px;margin-left:auto;display:flex}.provenance-actions button{border:1px solid var(--line);background:var(--surface);height:26px;color:var(--ink2);border-radius:4px;padding:0 9px;font-size:9px}.provenance-actions button:hover{border-color:var(--primary);color:var(--primary)}.top-bar{z-index:200;-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line);background:#f6f8fdb8;justify-content:space-between;align-items:center;height:64px;padding:0 24px;display:flex;position:sticky;top:0}.top-logo{flex:none;width:auto;height:40px;display:block}.top-right{align-items:center;gap:14px;display:flex}.top-clock{color:#59667b;font-variant-numeric:tabular-nums;font-size:10.5px}.top-user{color:#273246;align-items:center;gap:6px;font-size:10.5px;font-weight:600;display:inline-flex}.top-user svg{color:#8b95a6;width:15px}.top-signout{border:1px solid var(--line);color:#435067;background:#ffffffbf;border-radius:5px;align-items:center;gap:6px;height:30px;padding:0 11px;font-size:10px;font-weight:600;display:inline-flex}.top-signout svg{width:14px}.top-signout:hover{border-color:var(--danger);color:var(--danger)}@media (width<=720px){.top-bar{padding:0 14px}.top-clock{display:none}}.fleet-visual{aspect-ratio:1344/1170;position:relative;overflow:hidden;container-type:inline-size;background-position:50%!important;background-repeat:no-repeat!important;background-size:cover!important;min-height:0!important;padding:0!important}.fleet-visual:after{display:none}.hero-copy{z-index:3;color:#fff;width:62%;position:absolute;top:8%;left:5.5%}.hero-eyebrow{letter-spacing:.18em;color:#7ff0e4;align-items:center;gap:.7em;font-size:1.75cqw;font-weight:800;display:inline-flex}.hero-eyebrow>i{background:#45e0cf;border-radius:50%;width:.62em;height:.62em;box-shadow:0 0 0 .32em #45e0cf33}.hero-copy h1{letter-spacing:-.045em;color:#fff;margin:1.1cqw 0 .9cqw;font-size:6.4cqw;font-weight:800;line-height:1.02}.hero-copy p{color:#d5e9ff;margin:0;font-size:2.05cqw;line-height:1.75}.hero-card{z-index:3;text-align:left;border-radius:2cqw;flex-direction:column;justify-content:center;display:inline-flex;position:absolute}.hero-card small{white-space:nowrap;color:#eaf4ff;font-size:1.85cqw;font-weight:600;line-height:1.2;display:block}.hero-card b{font-family:var(--mono);white-space:nowrap;color:#fff;margin-top:.3em;font-size:3.5cqw;font-weight:700;line-height:1;display:block}.hero-card b span{color:#9fd2ff;font-size:.42em}.hero-card em{color:#bcd9f5;white-space:nowrap;margin-top:.45em;font-size:1.25cqw;font-style:normal;display:block}.hero-energy{-webkit-backdrop-filter:blur(10px);background:#12407c6b;border:1px solid #ffffff38;width:auto;height:auto;padding:1.6cqw 2cqw;top:7.4%;left:69.2%;box-shadow:0 1cqw 2.4cqw #08264a38}.hero-power{-webkit-backdrop-filter:blur(10px);background:#121a1e61;border:1px solid #ffffff2e;width:auto;height:auto;padding:1.6cqw 2cqw;top:75%;left:5.3%;box-shadow:0 1cqw 2.4cqw #081a2238}.hero-power b span{color:#7fe3d4}html[data-theme=light] .fleet-insight{background:linear-gradient(#fbfcff,#f1f5ff)}html[data-theme=light] .fleet-insight .fleet-metrics{background:#dde3f5;border-color:#dde3f5}html[data-theme=light] .fleet-insight .fleet-metrics small{color:#7683a6}html[data-theme=light] .fleet-insight .energy-ranking{background:repeating-linear-gradient(#0000 0 28px,#e6ebfa 29px);border-color:#dde3f5}html[data-theme=light] .fleet-insight .status-mix span{color:#66739a}html[data-theme=light] .fleet-insight .status-mix em{background:#e2e7f7}.fleet-insight .eyebrow{color:#4a63b8}.fleet-insight .eyebrow>i{background:#3b53ff;box-shadow:0 0 0 5px #3b53ff1f}.fleet-insight .data-source i{background:#3b53ff}.fleet-insight .energy-ranking button i{background:linear-gradient(#5b78ff,#2740d8)}html[data-theme=dark] .fleet-insight .eyebrow{color:#93a5ff}.fleet-metrics b u{opacity:.65;margin-left:.25em;font-size:.52em;text-decoration:none}html[data-theme=light] .hero-copy,html[data-theme=light] .hero-copy h1{color:#0d2b45}html[data-theme=light] .hero-copy p{color:#2d4f6b}html[data-theme=light] .hero-eyebrow{color:#0b7d84}html[data-theme=light] .hero-eyebrow>i{background:#0fb5b0;box-shadow:0 0 0 .32em #0fb5b02e}.register-partial{border:1px solid var(--badge-warn-line);background:var(--badge-warn-bg);color:var(--badge-warn-ink);border-radius:6px;align-items:center;gap:8px;margin:0 15px 10px;padding:9px 11px;font-size:10px;display:flex}.register-partial svg{flex:none;width:14px}.register-stale{color:#a2761f;margin-top:6px;font-size:8.5px;display:block}.register-card.pending{opacity:.72}.register-card.pending .register-value{color:#909aac}.energy-dashboard .perf-chip{color:var(--ink2)}.energy-dashboard .perf-chip.on{color:var(--ink);background:var(--surface-2);font-weight:600}html[data-theme=light] .energy-dashboard .perf-chip{color:#64748b;background:#fff}html[data-theme=light] .energy-dashboard .perf-chip.on{color:#1a2233;background:#f8fafc}.ref-table .gateway-sn{font-family:var(--mono);color:#38455c;font-size:12.5px;font-weight:700}.raw-scroll thead th{z-index:2;box-shadow:inset 0 -1px 0 var(--line);background:#f8fafc;position:sticky;top:0}html[data-theme=dark] .raw-scroll thead th{background:var(--surface-2)}.fleet-curve{border:1px solid var(--line);border-radius:10px;height:190px;margin-top:16px;padding:10px 4px 0}.fleet-curve-empty{text-align:center;color:#8b95a6;margin:0;padding:70px 0;font-size:10px}.energy-live{-webkit-backdrop-filter:blur(12px);background:#0c141d57!important;border-color:#fff3!important}html[data-theme=light] .energy-live{background:#ffffff6b!important;border-color:#123d4329!important}.energy-hero>img{object-position:50% 50%}html[data-theme=dark] .alerts-card,html[data-theme=dark] .micro-workspace,html[data-theme=dark] .inventory-card{background:var(--surface);border-color:var(--line)}html[data-theme=dark] .alert-toolbar,html[data-theme=dark] .inventory-toolbar{background:0 0}html[data-theme=dark] .inventory-toolbar select,html[data-theme=dark] .inventory-search input,html[data-theme=dark] .inventory-actions button{background:var(--surface-2);border-color:var(--line);color:var(--ink)}html[data-theme=dark] .ref-table th{background:var(--surface-3);color:var(--ink2)}html[data-theme=dark] .ref-table td{background:var(--surface);border-color:var(--line2);color:var(--ink)}html[data-theme=dark] .ref-table tbody tr:hover td{background:var(--surface-2)}html[data-theme=dark] .ref-empty{color:var(--ink3)}.fleet-metrics small{font-size:10.5px!important}.fleet-metrics b{font-size:22px!important}.fleet-metrics b u{font-size:.5em}.fleet-insight h2{font-size:25px}.status-mix span{font-size:11px!important}.status-mix b{font-size:13px!important}.fleet-curve{height:260px}.fleet-curve .recharts-text{font-size:10px}.energy-live{width:auto;min-width:0;padding:8px 12px!important}.date-range{align-items:center;gap:6px;display:inline-flex}.date-range input[type=date],.range-bar input[type=date],.pulse-head-tools input[type=date]{border:1px solid var(--line);background:var(--surface);height:30px;color:var(--ink);font:11px var(--mono);border-radius:5px;padding:0 8px}.date-range i{color:var(--ink3);font-style:normal}.date-range button{border:1px solid var(--line);background:var(--surface);width:26px;height:26px;color:var(--ink3);border-radius:5px;place-items:center;display:grid}.date-range button svg{width:12px}.range-bar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.range-bar small{color:var(--ink3);margin-left:auto;font-size:9.5px}.range-bar .provenance-actions button.active{border-color:var(--primary);color:var(--primary);font-weight:700}.pulse-head-tools{align-items:center;gap:10px;display:flex}.load-error{color:#8c2f26;background:#fdf1f0;border:1px solid #f0b4ae;border-radius:10px;align-items:center;gap:12px;max-width:1600px;margin:16px auto 0;padding:12px 16px;font-size:11px;display:flex}.load-error svg{flex:none;width:18px}.load-error b{font-size:12px;display:block}.load-error p{margin:3px 0 0}.load-error button{color:#8c2f26;background:#fff;border:1px solid #d98b81;border-radius:6px;align-items:center;gap:6px;height:32px;margin-left:auto;padding:0 12px;font-size:11px;font-weight:600;display:inline-flex}.load-error button svg{width:13px}html[data-theme=dark] .load-error{color:#f4b8b0;background:#2a1614;border-color:#6b322b}html[data-theme=dark] .load-error button{background:var(--surface-2);color:#f4b8b0;border-color:#6b322b}html[data-theme=dark] .alert-tabs,html[data-theme=dark] .alert-toolbar,html[data-theme=dark] .alerts-card footer,html[data-theme=dark] .alert-footer{background:var(--surface-2);border-color:var(--line);color:var(--ink2)}html[data-theme=dark] .alert-tabs button{color:var(--ink3)}html[data-theme=dark] .alert-tabs button.active{color:var(--primary)}html[data-theme=dark] .ref-table th,html[data-theme=dark] .raw-table th,html[data-theme=dark] .alerts-table th{background:var(--surface-3);color:var(--ink2)}html[data-theme=dark] .raw-table td,html[data-theme=dark] .raw-scroll thead th{border-color:var(--line2);color:var(--ink)}html[data-theme=dark] .inventory-card,html[data-theme=dark] .micro-workspace,html[data-theme=dark] .settings-section,html[data-theme=dark] .recover-card,html[data-theme=dark] .gateway-stack>section{background:var(--surface);border-color:var(--line);color:var(--ink)}html[data-theme=dark] .inventory-summary,html[data-theme=dark] .micro-kpis small,html[data-theme=dark] .inventory-card b{color:var(--ink)}html[data-theme=dark] .register-card{background:var(--surface-2);border-color:var(--line);color:var(--ink)}html[data-theme=dark] .register-card.error{background:#251a19;border-color:#5b302a}html[data-theme=dark] .register-card>header>span.error{background:var(--badge-error-bg);color:var(--badge-error-ink)}html[data-theme=dark] .register-card>footer .write-capable,html[data-theme=dark] .register-reading em{background:var(--badge-warn-bg);color:var(--badge-warn-ink)}html[data-theme=dark] .register-error,html[data-theme=dark] .register-card .register-failed{color:#f4a79c;background:0 0}html[data-theme=dark] .register-refresh,html[data-theme=dark] .recover-card button,html[data-theme=dark] .alert-toolbar button{background:var(--surface-2);border-color:var(--line);color:var(--ink)}html[data-theme=dark] .register-source,html[data-theme=dark] .recover-summary{background:var(--surface-2);color:var(--ink2)}html[data-theme=dark] .recover-summary b,html[data-theme=dark] .register-source b{color:var(--ink)}html[data-theme=dark] .ref-empty,html[data-theme=dark] .ref-table-wrap footer{color:var(--ink3)}.ref-table th.sortable,.raw-table th.sortable,.alerts-table th.sortable,.inventory-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}th.sortable:hover{color:var(--primary)}th.sortable i{opacity:.45;margin-left:5px;font-style:normal}th.sorted{color:var(--primary)}th.sorted i{opacity:1}.ack-done{color:var(--tone-ok-ink);white-space:nowrap;align-items:center;gap:5px;font-size:10px;font-weight:600;display:inline-flex}.ack-done svg{width:12px}.flow-diagram{border:1px solid var(--line);background:var(--surface);border-radius:12px;flex-direction:column;gap:10px;min-width:0;padding:16px;display:flex}.flow-diagram svg{width:100%;height:auto;max-height:290px}.flow-node circle,.flow-node rect{fill:var(--surface-2);stroke:var(--line);stroke-width:2px}.flow-node text{fill:var(--ink3);text-anchor:middle;font-size:10px;font-weight:600}.flow-node text.flow-value{fill:var(--ink);font-size:12px;font-family:var(--mono)}.flow-node.solar circle{stroke:#f59e0b}.flow-node.grid circle{stroke:#3b53ff}.flow-node.home circle{stroke:#10b981}.flow-node.gateway rect{stroke:var(--primary)}.flow-node.gateway text{fill:var(--primary);font-size:10px;font-weight:700}.flow-icon{fill:none;stroke-width:1.6px}.flow-node.solar .flow-icon{color:#f59e0b}.flow-node.grid .flow-icon{color:#92400e}.flow-node.home .flow-icon{color:#10b981}.flow-node.gateway .flow-icon{color:var(--primary)}.flow-arrow.on{fill:var(--primary)}.flow-arrow.off{fill:var(--line)}.flow-edge{fill:none;stroke:var(--line);stroke-width:3px;stroke-linecap:round}.flow-edge.on{stroke:var(--primary);stroke-dasharray:7 9;animation:1.1s linear infinite flow-dash}.flow-edge.on.reverse{animation-direction:reverse}@keyframes flow-dash{to{stroke-dashoffset:-16px}}@media (prefers-reduced-motion:reduce){.flow-edge.on{animation:none}}.flow-diagram footer{color:var(--ink3);flex-wrap:wrap;align-items:center;gap:10px;font-size:10.5px;display:flex}.flow-diagram footer small{margin-left:auto;font-size:9.5px}.flow-state{color:var(--ink2);align-items:center;gap:6px;font-weight:700;display:inline-flex}.flow-state i{background:var(--tone-ok-ink);border-radius:50%;width:7px;height:7px}.flow-state.warning i{background:var(--badge-warn-ink)}.flow-state.critical i,.flow-state.offline i{background:var(--badge-error-ink)}.flow-dir{color:var(--ink2)}.token-warning{border:1px solid var(--badge-warn-line);background:var(--badge-warn-bg);color:var(--badge-warn-ink);border-radius:8px;align-items:flex-start;gap:10px;margin:0 28px 14px;padding:11px 14px;font-size:11.5px;display:flex}.token-warning svg{flex:none;width:16px;margin-top:1px}.token-warning b{font-size:12px;display:block}.token-warning p{opacity:.9;margin:3px 0 0}.token-warning.urgent{border-color:var(--badge-error-line);background:var(--badge-error-bg);color:var(--badge-error-ink)}.settings-bar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;display:flex}.settings-bar b{font-size:13px;display:block}.settings-bar small{color:var(--ink3);font-size:10.5px}.settings-bar time{color:var(--ink3);font-size:10px;font-family:var(--mono);margin-left:auto}.setting-card{margin-bottom:12px}.setting-card>header{border-bottom:1px solid var(--line);background:var(--surface-2);border-radius:8px 8px 0 0;align-items:baseline;gap:9px;padding:12px 16px;display:flex}.setting-card>header b{color:var(--primary-ink);font-size:12px}.setting-card>header small{color:var(--ink3);font-size:10px}.setting-fields{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;padding:16px;display:grid}.setting-field{flex-direction:column;gap:5px;min-width:0;display:flex}.setting-label{color:var(--ink2);font-size:11px;font-weight:600}.setting-label em{color:var(--ink3);font-style:normal;font-weight:400}.setting-field input,.setting-field select{border:1px solid var(--line);background:var(--surface-2);height:34px;color:var(--ink);font:12px var(--mono);border-radius:6px;padding:0 10px}.setting-field input:read-only,.setting-field select:disabled{opacity:.85;cursor:not-allowed}.setting-field small{color:var(--ink3);font-size:9.5px;line-height:1.45}.setting-field.error input,.setting-field.pending input{border-color:var(--badge-error-line);color:var(--badge-error-ink)}.setting-note{color:var(--badge-warn-ink);font-size:9px;font-style:normal}.setting-error{color:var(--badge-error-ink);font-size:9px;font-style:normal}.setting-card.unavailable>header b{color:var(--badge-warn-ink)}.setting-card.unavailable p{color:var(--ink3);align-items:flex-start;gap:8px;margin:0;padding:14px 16px;font-size:10.5px;line-height:1.6;display:flex}.setting-card.unavailable svg{width:15px;color:var(--badge-warn-ink);flex:none;margin-top:1px}.setting-field.unpublished .setting-label{color:var(--ink3)}.setting-field.unpublished input,.setting-field.unpublished select{opacity:.6;border-style:dashed}.upstream-notice{border:1px solid var(--badge-warn-line);background:var(--badge-warn-bg);color:var(--badge-warn-ink);border-radius:8px;align-items:flex-start;gap:10px;margin:0 0 14px;padding:11px 14px;font-size:11.5px;display:flex}.upstream-notice svg{flex:none;width:16px;margin-top:1px}.upstream-notice b{font-size:12px;display:block}.upstream-notice p{opacity:.9;margin:3px 0 0;line-height:1.5}.upstream-notice code{font-family:var(--mono);font-size:10.5px}.setting-field.write-only input,.setting-field.write-only select{opacity:.75;border-style:dashed}.micro-analysis{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:12px;grid-template-columns:220px minmax(0,1fr);margin-top:16px;display:grid;overflow:hidden}.micro-analysis-devices{border-right:1px solid var(--line);background:var(--surface-2);flex-direction:column;gap:4px;max-height:470px;padding:12px;display:flex;overflow:auto}.micro-analysis-devices>input{border:1px solid var(--line);background:var(--surface);height:32px;color:var(--ink);border-radius:4px;margin-bottom:6px;padding:0 9px;font-size:11px}.micro-check{color:var(--ink2);cursor:pointer;white-space:nowrap;align-items:center;gap:7px;padding:5px 2px;font-size:11px;display:inline-flex}.micro-check input{accent-color:#10b981;margin:0}.micro-check i{border-radius:2px;flex:none;width:10px;height:10px}.micro-check code{font-family:var(--mono);color:var(--ink);font-size:11px}.micro-check.all{border-bottom:1px solid var(--line);margin-bottom:2px;padding-bottom:8px;font-weight:700}.micro-analysis-main{flex-direction:column;min-width:0;padding:14px 16px;display:flex}.micro-analysis-date{align-items:center;gap:6px;display:flex}.micro-analysis-date button{border:1px solid var(--line);background:var(--surface);width:30px;height:32px;color:var(--ink2);border-radius:4px;font-size:15px}.micro-analysis-date button:disabled{opacity:.4}.micro-analysis-date input{border:1px solid var(--line);background:var(--surface);height:32px;color:var(--ink);border-radius:4px;padding:0 8px;font-size:11px}.micro-analysis-date span{color:var(--ink3);align-items:center;gap:6px;margin-left:8px;font-size:11px;display:inline-flex}.micro-analysis-date span svg{width:14px}.micro-analysis-items{background:var(--surface-2);border-radius:6px;flex-wrap:wrap;align-items:center;gap:2px 14px;margin:12px 0;padding:10px 12px;display:flex}.micro-analysis-items b{color:var(--ink);margin-right:4px;font-size:11px}.micro-analysis-chart{height:340px}.micro-analysis-chart .recharts-cartesian-axis-tick-value{fill:var(--ink3);font-size:10px}.micro-analysis-chart .micro-chart-empty button{border:1px solid var(--line);background:var(--surface);color:var(--primary);border-radius:4px;margin-top:6px;padding:5px 10px}.micro-telemetry-layout.kpis-only{grid-template-columns:1fr;min-height:0}.micro-telemetry-layout.kpis-only .micro-kpis{grid-template-columns:repeat(4,1fr)}@media (width<=760px){.micro-analysis{grid-template-columns:1fr}.micro-analysis-devices{border-right:0;border-bottom:1px solid var(--line);flex-flow:wrap;max-height:none}.micro-analysis-devices>input{width:100%}.micro-telemetry-layout.kpis-only .micro-kpis{grid-template-columns:1fr 1fr}}.day-picker{position:relative}.day-picker-trigger{border:1px solid var(--line);background:var(--surface);height:32px;color:var(--ink);border-radius:4px;align-items:center;gap:10px;padding:0 10px;font-size:11px;display:inline-flex}.day-picker-trigger small{color:var(--ink3);font-family:var(--mono);font-size:10.5px}.day-picker-trigger i{color:var(--ink3);font-style:normal}.day-picker-list{z-index:30;border:1px solid var(--line);background:var(--surface);border-radius:8px;min-width:290px;max-height:420px;margin:0;padding:4px;list-style:none;position:absolute;top:36px;right:0;overflow:auto;box-shadow:0 12px 32px #0f172a2e}.day-picker-list li{color:var(--ink);cursor:pointer;border-radius:5px;grid-template-columns:1fr auto;align-items:center;gap:16px;padding:7px 10px;font-size:11.5px;display:grid}.day-picker-list li span{align-items:center;gap:6px;padding-left:20px;display:inline-flex}.day-picker-list li.selected span{padding-left:0;font-weight:700}.day-picker-list li span svg{width:14px;color:var(--primary)}.day-picker-list li small{color:var(--ink3);font-family:var(--mono);font-size:10.5px}.day-picker-list li:hover,.day-picker-list li.selected{background:var(--surface-2)}.fleet-overview.full{grid-template-columns:1fr;min-height:0}.fleet-overview.full .fleet-curve{height:280px}.perf-views{flex-wrap:wrap;gap:6px;padding:12px 14px 0;display:flex}.perf-views button{border:1px solid var(--line);background:var(--surface);height:30px;color:var(--ink3);border-radius:6px;align-items:center;gap:6px;padding:0 11px;font-size:11px;font-weight:600;display:inline-flex}.perf-views button svg{width:14px}.perf-views button.active{color:#059669;background:#10b98114;border-color:#10b981}.perf-summary{padding:12px 14px 0}.perf-summary small{color:var(--ink3);font-size:10px;display:block}.perf-summary b{font-family:var(--mono);color:var(--ink);margin-top:3px;font-size:16px;display:block}.perf-summary b u{color:var(--ink3);font-size:.6em;text-decoration:none}.perf-summary b.big{font-size:26px}.perf-summary.cards4{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.perf-summary.cards4>div,.perf-summary-parts>div{border:1px solid var(--line);background:var(--surface-2);border-radius:7px;padding:11px 12px}.perf-summary.pair{text-align:center;justify-content:center;gap:60px;display:flex}.perf-summary.split{flex-direction:column;gap:10px;display:flex}.perf-summary-total{align-items:baseline;gap:10px;display:flex}.perf-summary-total b{margin:0}.perf-summary-parts{flex-wrap:wrap;gap:8px;display:flex}.perf-summary-parts>div{grid-template-columns:auto auto 1fr;align-items:center;gap:4px 8px;min-width:230px;display:grid}.perf-summary-parts svg{width:16px;color:var(--ink3)}.perf-summary-parts b{margin:0;font-size:15px}.perf-summary-parts em{font-style:normal;font-family:var(--mono);color:var(--ink3);grid-column:3;justify-self:end;font-size:11px}@media (width<=760px){.perf-summary.cards4{grid-template-columns:repeat(2,1fr)}.perf-summary.pair{gap:24px}}.perf-chart .recharts-area,.fleet-curve .recharts-area{filter:drop-shadow(0 -1px 1px #0f172a59)drop-shadow(0 -3px 6px #0f172a38)}html[data-theme=dark] .perf-chart .recharts-area,html[data-theme=dark] .fleet-curve .recharts-area{filter:drop-shadow(0 -1px 1px #000000b3)drop-shadow(0 -3px 7px #00000080)}.setting-default{color:#059669;margin-top:4px;font-size:10.5px;font-style:normal;display:block}.setting-default.off{color:#b45309;font-weight:700}.setting-field.off-default :is(input,select){box-shadow:0 0 0 2px #f59e0b2e;border-color:#f59e0b!important}.defaults-summary{color:#047857;background:#10b98112;border:1px solid #10b98159;border-radius:8px;align-items:center;gap:8px;margin:0 0 12px;padding:10px 12px;font-size:12px;display:flex}.defaults-summary.off{color:#b45309;background:#f59e0b14;border-color:#f59e0b73}.defaults-summary svg{flex:none;width:16px}.control-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.control-field .setting-label{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.control-range{color:var(--ink3);white-space:nowrap;font-size:9.5px;font-style:normal;font-weight:400}.control-curve{padding:0 16px 16px}.control-curve-head,.control-curve-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.control-curve-head{color:var(--ink);margin-bottom:6px;font-size:12px}.control-curve-row{margin-bottom:10px}.control-empty{color:var(--ink3);margin:0;padding:0 16px 16px;font-size:11px}@media (width<=760px){.control-grid,.control-curve-head,.control-curve-row{grid-template-columns:1fr}}.top-tools{align-items:center;gap:12px;margin-left:24px;display:flex}.date-pick{border:1px solid var(--primary);background:var(--surface);height:36px;color:var(--ink);cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:0 12px;font-size:12px;font-weight:600;display:inline-flex;position:relative}.date-pick svg{width:16px;color:var(--primary)}.date-pick input{height:30px;color:var(--ink);font:12px var(--mono);cursor:pointer;background:0 0;border:0}.date-pick em{color:var(--primary);font-size:10.5px;font-style:normal}.date-pick:hover{background:var(--primary-50,#3b53ff0f)}.live-dot{justify-content:center;align-items:center;width:18px;height:18px;display:inline-flex}.live-dot i{border-radius:50%;width:10px;height:10px;position:relative}.live-dot.on i{background:#10b981}.live-dot.on i:after{content:"";background:#10b981;border-radius:50%;animation:1.6s ease-out infinite live-pulse;position:absolute;inset:0}.live-dot.off i{background:#ef4444}@keyframes live-pulse{0%{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(2.6)}}@media (prefers-reduced-motion:reduce){.live-dot.on i:after{animation:none}}@media (width<=720px){.top-tools{margin-left:0}.date-pick em{display:none}}.fleet-metrics{grid-template-columns:minmax(0,340px);width:fit-content;max-width:100%}.backflow-metric small{align-items:center;gap:5px;display:inline-flex!important}.backflow-metric small svg{color:#dc2626;width:13px}.backflow-metric b{color:#dc2626!important}.backflow-metric em{color:var(--ink3);margin-top:4px;font-size:10.5px;font-style:normal;display:block}.backflow-badge{vertical-align:middle;color:#dc2626;align-items:center;gap:4px;margin-left:6px;display:inline-flex}.backflow-badge svg{width:14px;height:14px}.backflow-badge.labelled{background:#dc262612;border:1px solid #dc262659;border-radius:999px;padding:2px 8px;font-family:inherit;font-size:11px;font-weight:700}@media (width<=1100px){.fleet-metrics{grid-template-columns:1fr}}.reference-app .fleet-overview.full{box-shadow:none;border:0;border-radius:0;margin-bottom:14px;overflow:visible;background:0 0!important}.reference-app .fleet-overview.full .fleet-insight,html[data-theme=light] .reference-app .fleet-overview.full .fleet-insight{padding:0;background:0 0!important}.reference-app .fleet-overview.full .fleet-metrics{margin-top:0}.firmware-cell{font-family:var(--mono);color:var(--ink2);font-size:11px}.firmware-chip{font-family:var(--mono)}.top-logo-link{cursor:pointer;background:0 0;border:0;padding:0;display:inline-flex}.top-logo-link:focus-visible{outline:2px solid var(--primary);outline-offset:4px;border-radius:6px}.firmware-cell.outdated{color:#991b1b;font-weight:700}.reference-app .firmware-chip.outdated{color:#991b1b!important;background:#991b1b14!important;border-color:#991b1b59!important}html[data-theme=dark] .firmware-cell.outdated,html[data-theme=dark] .reference-app .firmware-chip.outdated{color:#f87171!important}.setting-off-mark{color:#b45309}.micro-top{grid-template-columns:minmax(0,1.15fr) minmax(320px,1fr);align-items:start;gap:16px;display:grid}.micro-top>.inventory-card,.micro-top>.micro-workspace{margin-top:0}.micro-top .micro-telemetry-layout.kpis-only .micro-kpis{grid-template-columns:1fr 1fr}@media (width<=1000px){.micro-top{grid-template-columns:1fr}}.icon-action{color:#334155;background:#fff;border:1px solid #cbd5e1;border-radius:4px;justify-content:center;align-items:center;width:32px;height:32px;padding:0;display:inline-flex}.icon-action svg{width:14px}.icon-action.danger{color:#b91c1c}.icon-action:hover:not(:disabled){border-color:currentColor}.icon-action:disabled{opacity:.4;cursor:not-allowed}html[data-theme=dark] .icon-action{background:var(--surface);border-color:var(--line)}.reference-app .micro-top{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow,0 1px 2px #0f172a0a);border-radius:12px;gap:0;overflow:hidden}.reference-app .micro-top>.inventory-card,.reference-app .micro-top>.micro-workspace{margin:0;box-shadow:none!important;border:0!important;border-radius:0!important}.reference-app .micro-top>.micro-workspace{align-self:stretch;border-left:1px solid var(--line)!important}@media (width<=1000px){.reference-app .micro-top>.micro-workspace{border-left:0!important;border-top:1px solid var(--line)!important}}.reference-app .micro-top .inventory-body{padding:0}.pane-head{border-bottom:1px solid var(--line);background:var(--surface);justify-content:space-between;align-items:center;gap:12px;height:64px;padding:0 20px;display:flex}.pane-head .inventory-actions{margin:0}.pane-title{flex-direction:column;gap:2px;min-width:0;display:flex}.pane-title b{color:var(--ink);font-size:14px}.pane-title b.mono{font-family:var(--mono);letter-spacing:.02em}.pane-title small{color:var(--ink3);font-size:11px}.pane-head.detail{background:var(--surface-2)}.reference-app .micro-top .inventory-table-wrap{margin:0}.reference-app .micro-top .inventory-table th:first-child,.reference-app .micro-top .inventory-table td:first-child{padding-left:20px}.reference-app .micro-top .inventory-table tbody tr{outline:none}.reference-app .micro-top .inventory-table tbody tr.selected td{background:#3b53ff12}.reference-app .micro-top .inventory-table tbody tr.selected td:first-child{box-shadow:inset 3px 0 0 var(--primary)}.reference-app .micro-top .inventory-table tbody tr.selected .inventory-sn{font-weight:700}.reference-app .micro-top .inventory-table tbody tr:focus-visible td{background:#3b53ff1a}.row-pointer{text-align:right;width:28px;padding:0 10px 0 0!important}.row-pointer svg{width:16px;color:var(--primary);opacity:0;transition:opacity .15s}.inventory-table tbody tr:hover .row-pointer svg{opacity:.35}.inventory-table tbody tr.selected .row-pointer svg{opacity:1}.inventory-action-col{text-align:right;width:48px}.perf-views{align-items:center}.self-powered{flex:1;grid-template-rows:auto auto;grid-template-columns:minmax(120px,1fr) auto;align-items:center;gap:3px 12px;max-width:420px;margin-left:auto;padding-left:16px;display:grid}.self-powered-bar{background:var(--line);border-radius:999px;height:10px;overflow:hidden}.self-powered-bar i{background:#3b53ff;border-radius:999px;height:100%;transition:width .3s;display:block}.self-powered b{font-family:var(--mono);color:var(--ink2);font-size:18px}.self-powered small{color:var(--ink3);grid-column:1/-1;font-size:11px}@media (width<=760px){.self-powered{flex-basis:100%;max-width:none;margin:8px 0 0;padding:0}}.fleet-curve{position:relative}.fleet-curve .axis-unit{z-index:1;color:var(--ink3);font-size:10px;position:absolute;top:4px;left:12px}.audit-filters{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:12px 16px;display:flex}.audit-filters .fleet-search{flex:280px}.audit-filters select{border:1px solid var(--line);background:var(--surface);height:34px;color:var(--ink);border-radius:6px;padding:0 10px;font-size:12px}.audit-count{color:var(--ink3);margin-left:auto;font-size:11px}.audit-table tbody tr{cursor:pointer}.audit-code{font-family:var(--mono);color:var(--primary);font-size:11px}.audit-message{max-width:420px;color:var(--ink2);font-size:11.5px}.audit-status{background:var(--surface-2);color:var(--ink2);border-radius:999px;padding:2px 8px;font-size:10.5px;font-weight:700;display:inline-block}.audit-status.completed{color:#047857;background:#10b9811f}.audit-status.failed{color:#b91c1c;background:#ef44441f}.audit-status.no_change,.audit-status.unverified{color:#b45309;background:#f59e0b24}.audit-status.requested{color:var(--primary);background:#3b53ff1a}.audit-detail td{background:var(--surface-2)!important}.audit-detail pre{background:var(--surface);max-height:360px;font:11px/1.5 var(--mono);color:var(--ink2);white-space:pre-wrap;word-break:break-all;border-radius:6px;margin:0 0 6px;padding:10px 12px;overflow:auto}.audit-detail small{color:var(--ink3);font-family:var(--mono);font-size:10.5px}.perf-range{align-items:center;gap:8px;margin-right:4px;display:inline-flex}.perf-range-date{border:1px solid var(--line);background:var(--surface);border-radius:6px;align-items:center;display:inline-flex;overflow:hidden}.perf-range-date button{width:28px;height:32px;color:var(--ink2);background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.perf-range-date button:disabled{opacity:.35}.perf-range-date button svg{width:15px}.perf-range-date input{border:0;border-left:1px solid var(--line);border-right:1px solid var(--line);height:32px;color:var(--ink);font:12px var(--mono);background:0 0;padding:0 8px}.perf-range-seg{gap:4px;display:inline-flex}.perf-range-seg button{border:1px solid var(--line);background:var(--surface);height:32px;color:var(--ink2);border-radius:6px;padding:0 12px;font-size:12px}.perf-range-seg button.active{color:#3b53ff;border-color:#3b53ff;font-weight:700}.perf-card .ref-card-head{flex-wrap:wrap;gap:10px}.perf-card .perf-actions{flex-wrap:wrap}.setting-field .setting-label{justify-content:space-between;align-items:baseline;gap:10px;display:flex}:root{--card-shadow:0 1px 2px #0f172a0f,0 6px 18px #0f172a12}html[data-theme=dark]{--card-shadow:0 1px 2px #00000059,0 8px 22px #00000059}.reference-app :is(.ref-card,.setting-card,.inventory-card,.micro-top,.micro-analysis,.flow-diagram,.ref-summary-card,.fleet-metrics,.fleet-curve,.fleet-panel,.original-status-bar>*,.customer-card,.device-selector,.recover-card,.audit-card,.control-mode-card){box-shadow:var(--card-shadow)}.reference-app .micro-top>:is(.inventory-card,.micro-workspace),.reference-app .ref-card .ref-card,.reference-app .fleet-metrics>*{box-shadow:none}.perf-card .ref-card-head>.perf-actions{flex:100%;align-items:center;gap:8px;display:flex}.perf-card .ref-card-head>.perf-actions .perf-range{margin-right:auto}.reference-app .energy-dashboard{border-radius:0;padding:0;box-shadow:none!important;background:0 0!important;border:0!important}.reference-app .settings-section>header{background:var(--surface-3)!important;border-bottom:1px solid var(--line)!important}.reference-app .settings-section>header b{text-transform:uppercase;letter-spacing:.06em;font-size:12px;color:#6b7a86!important}.reference-app .settings-section>header small{color:#94a3b8!important}html[data-theme=dark] .reference-app .settings-section>header b{color:var(--ink2)!important}.login-page{background:var(--bg,#f4f6fb);justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.login-page>svg{width:28px;color:var(--primary)}.login-card{border:1px solid var(--line);background:var(--surface);width:min(380px,100%);box-shadow:var(--card-shadow);border-radius:14px;flex-direction:column;gap:14px;padding:32px 28px;display:flex}.login-card img{align-self:center;height:40px}.login-card h1{text-align:center;color:var(--ink2);margin:0 0 6px;font-size:15px;font-weight:600}.login-card label{color:var(--ink2);flex-direction:column;gap:6px;font-size:12px;font-weight:600;display:flex}.login-card input{border:1px solid var(--line);background:var(--surface);height:40px;color:var(--ink);border-radius:8px;padding:0 12px;font-size:14px}.login-card input:focus{outline:2px solid var(--primary);outline-offset:-1px}.login-card button{color:#fff;background:#3b53ff;border:0;border-radius:8px;justify-content:center;align-items:center;gap:8px;height:42px;font-size:14px;font-weight:700;display:inline-flex}.login-card button:disabled{opacity:.5}.login-card button svg{width:16px}.login-error{color:#b91c1c;align-items:center;gap:6px;margin:0;font-size:12px;display:flex}.login-error svg{flex:none;width:14px}.role-badge{background:var(--surface-2);color:var(--ink3);border-radius:999px;margin-left:6px;padding:1px 7px;font-size:10px;font-style:normal;font-weight:700}.role-badge.admin{color:#3b53ff;background:#3b53ff1a}.role-badge.cx_viewer{color:#0f766e;background:#0f766e1f}.role-badge.head_viewer{color:#b45309;background:#b453091f}html[data-theme=dark] .role-badge.head_viewer{color:#fbbf24;background:#f59e0b29}.role-badge.super_admin{color:#b91c1c;background:#dc26261a}button.top-user{cursor:pointer;background:0 0;border:0}.user-dialog label{color:var(--ink2);flex-direction:column;gap:5px;margin-bottom:10px;font-size:12px;display:flex}.user-dialog input,.user-dialog select{border:1px solid var(--line);background:var(--surface);height:36px;color:var(--ink);border-radius:6px;padding:0 10px}.user-note{color:var(--ink3);margin:0 0 10px;font-size:11px}.user-table select,.user-inline{border:1px solid var(--line);background:var(--surface);height:30px;color:var(--ink);border-radius:6px;padding:0 8px;font-size:12px}.user-inline{width:100%;min-width:140px}.user-self{color:var(--ink3)}.user-status{border:1px solid var(--line);background:var(--surface-2);height:26px;color:var(--ink3);border-radius:999px;padding:0 10px;font-size:11px;font-weight:700}.user-status.on{color:#047857;background:#10b9811f;border-color:#0000}.user-status:disabled{opacity:.6;cursor:not-allowed}.user-actions{justify-content:flex-end;gap:6px;display:flex}.edit-plant{border:1px solid var(--line);background:var(--surface);height:30px;color:var(--ink2);border-radius:6px;align-items:center;gap:6px;padding:0 10px;font-size:11.5px;display:inline-flex}.edit-plant svg{width:14px}.drawer-backdrop{z-index:60;background:#0f172a47;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer{background:var(--surface);flex-direction:column;width:min(440px,100vw);height:100%;display:flex;box-shadow:-12px 0 32px #0f172a2e}.drawer>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:52px;padding:0 16px;display:flex}.drawer>header b{color:var(--ink);font-size:14px}.drawer>header button{color:var(--ink3);background:0 0;border:0}.drawer-body{flex-direction:column;flex:1;gap:12px;padding:14px 16px;display:flex;overflow:auto}.drawer-field{flex-direction:column;gap:5px;min-width:0;display:flex}.drawer-field>span{color:var(--ink2);font-size:11.5px;font-weight:600}.drawer-field>span i{color:#dc2626;font-style:normal}.drawer-field input,.drawer-field select{border:1px solid var(--line);background:var(--surface);height:36px;color:var(--ink);border-radius:6px;padding:0 10px;font-size:12.5px}.drawer-field input:disabled,.drawer-field input:read-only{background:var(--surface-2)}.drawer-field small{color:var(--ink3);font-size:10.5px;line-height:1.45}.drawer-error{color:#b91c1c;font-size:11px;font-style:normal}.drawer-row{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;display:grid}.drawer>footer{border-top:1px solid var(--line);justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.drawer>footer button{border:1px solid var(--line);background:var(--surface);height:34px;color:var(--ink2);border-radius:6px;padding:0 16px}.drawer>footer button.primary{color:#fff;background:#3b53ff;border-color:#3b53ff}.drawer>footer button:disabled{opacity:.45}.register-table td{font-size:11.5px}.access-pill{text-align:center;background:var(--surface-2);min-width:28px;color:var(--ink3);border-radius:999px;padding:1px 7px;font-size:10.5px;font-weight:700;display:inline-block}.access-pill.rw{color:#3b53ff;background:#3b53ff1a}.access-pill.r{color:#047857;background:#10b9811f}.access-pill.w{color:#b45309;background:#f59e0b24}.array-card{position:relative;overflow:hidden}.array-metric{border:1px solid var(--line);background:var(--surface);height:32px;color:var(--ink);border-radius:6px;padding:0 10px;font-size:12px}.array-grid{grid-template-columns:repeat(auto-fill,minmax(64px,64px));gap:6px;padding:18px;display:grid}.array-tile{color:#fff;cursor:pointer;background:linear-gradient(#ffffff29 1px,transparent 1px) 0 0/100% 12px,linear-gradient(90deg,#ffffff29 1px,transparent 1px) 0 0/16px 100%,rgba(59,83,255,var(--tile-alpha,.5));border:2px solid #0000;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;height:78px;padding:0;display:flex;position:relative}.array-tile.empty{background:var(--surface-3);color:var(--ink3)}.array-tile.selected{border-color:#10b981}.array-tile-value{font:700 14px var(--mono)}.array-tile-label{text-align:center;background:#0f172a59;padding:2px 0;font-size:9.5px;position:absolute;bottom:0;left:0;right:0}.array-drawer{background:var(--surface);border-left:1px solid var(--line);width:min(300px,90%);padding:14px 16px;position:absolute;top:0;bottom:0;right:0;overflow:auto;box-shadow:-10px 0 24px #0f172a1f}.array-drawer header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.array-drawer header button{color:var(--ink3);background:0 0;border:0}.array-drawer dl{grid-template-columns:auto 1fr;gap:8px 12px;margin:0;font-size:12px;display:grid}.array-drawer dt{color:var(--ink3)}.array-drawer dd{color:var(--ink);font-family:var(--mono);text-align:right;margin:0}.dash-left{flex-direction:column;gap:14px;min-width:0;display:flex}.plant-info{margin:0}.plant-info>header{border-bottom:1px solid var(--line);background:var(--surface-3);justify-content:space-between;align-items:center;height:46px;padding:0 16px;display:flex}.plant-info>header b{color:#6b7a86;text-transform:uppercase;letter-spacing:.06em;font-size:12px}.plant-info dl{grid-template-columns:minmax(120px,auto) 1fr;gap:9px 16px;margin:0;padding:14px 16px;font-size:12px;display:grid}.plant-info dt{color:var(--ink3)}.plant-info dd{color:var(--ink);font-family:var(--mono);word-break:break-word;margin:0}.plant-info-error{color:#b91c1c;align-items:center;gap:6px;margin:0;padding:14px 16px;font-size:12px;display:flex}.plant-info-error svg{width:14px}.array-grid{flex-wrap:wrap;gap:12px;padding:18px;display:flex}.array-group{border:1px solid var(--line);background:var(--surface-2);border-radius:8px;flex-direction:column;gap:8px;padding:10px;display:flex}.array-group-head{justify-content:space-between;align-items:center;gap:10px;font-size:11px;display:flex}.array-group-head code{font-family:var(--mono);color:var(--ink);font-weight:700}.array-group-panels{gap:8px;display:flex}.array-panel{cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:4px;padding:0;display:flex}.array-panel .array-tile{border:2px solid #0000;border-radius:4px;width:64px;height:86px}.array-panel.selected .array-tile{border-color:#10b981}.reference-app .array-tile .array-tile-value{color:#fff;text-shadow:0 1px 2px #00000059}.reference-app .array-tile.empty .array-tile-value{color:var(--ink3);text-shadow:none}.array-panel-label{color:var(--ink2);font-size:11px;font-weight:700}.array-panel.selected .array-panel-label{color:#059669}.array-detail{border:1px solid var(--line);background:var(--surface);border-radius:8px;margin:0 18px 18px;padding:14px 16px}.array-detail header{margin-bottom:10px}.array-detail header b{color:var(--ink);font-size:13px}.array-detail dl{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px 24px;margin:0;font-size:12px;display:grid}.array-detail dl>*{margin:0}.array-detail dt{color:var(--ink3);text-transform:uppercase;letter-spacing:.04em;font-size:10.5px}.array-detail dd{color:var(--ink);font-family:var(--mono);margin-bottom:6px}.reference-app .danger-dialog.user-dialog{border-color:var(--line);background:var(--surface)}.reference-app .danger-dialog.user-dialog header{background:var(--surface-3);border-bottom-color:var(--line);color:var(--ink)}.reference-app .danger-dialog.user-dialog header svg{color:var(--primary)}.user-dialog-body{flex-direction:column;gap:12px;padding:18px 20px 4px;display:flex}.user-dialog-body label{color:var(--ink2);flex-direction:column;gap:6px;margin:0;font-size:12px;font-weight:600;display:flex}.user-dialog-body input,.user-dialog-body select{border:1px solid var(--line);background:var(--surface);height:38px;color:var(--ink);border-radius:8px;padding:0 12px;font-size:13px;font-weight:400}.user-dialog-body input:focus,.user-dialog-body select:focus{outline:2px solid var(--primary);outline-offset:-1px}.user-dialog-body .user-note,.user-dialog-body .login-error{margin:0}.user-section{border-top:1px solid var(--line);color:var(--ink3);text-transform:uppercase;letter-spacing:.05em;margin:6px 0 0;padding-top:12px;font-size:11px;font-weight:700}.reference-app .user-dialog footer{padding:16px 20px}.reference-app .user-dialog footer button{border:1px solid var(--line);background:var(--surface);height:36px;color:var(--ink2);border-radius:8px;padding:0 16px}.reference-app .user-dialog footer button.primary{color:#fff;background:#3b53ff;border-color:#3b53ff}.reference-app .user-dialog footer button:disabled{opacity:.45}.user-inline.mono{font-family:var(--mono)}.user-cell{align-items:center;gap:8px;display:flex}.reference-app em.user-self{color:#3b53ff;background:#3b53ff1a;border-radius:999px;flex:none;padding:1px 8px;font-size:10.5px;font-style:normal;font-weight:700}.drawer-backdrop{z-index:1000}.drawer,.drawer *{box-sizing:border-box}.drawer-field input,.drawer-field select{width:100%;min-width:0}.drawer-row>.drawer-field{min-width:0}.drawer{color:var(--ink);font-family:inherit}.ref-customer-line{flex-wrap:wrap;align-items:center;gap:10px}.ref-customer-line .last-seen{color:var(--ink3);font-size:11px}.original-device-head{align-items:stretch}.location-card{flex-direction:column;min-height:180px;margin:0;display:flex}.location-card>header,.plant-info>header{border-bottom:1px solid var(--line);background:var(--surface-3);justify-content:space-between;align-items:center;height:46px;padding:0 16px;display:flex}.location-card>header b{color:#6b7a86;text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:6px;font-size:12px;display:inline-flex}.location-card>header b svg{width:14px}.location-card>header a,.map-link{color:var(--primary);align-items:center;gap:4px;font-size:11.5px;text-decoration:none;display:inline-flex}.location-card>header a svg,.map-link svg{width:13px}.map-link{margin-left:10px;font-family:inherit}.location-card iframe{border:0;flex:1;width:100%;min-height:150px}.location-empty{color:var(--ink3);margin:0;padding:16px;font-size:12px}.flow-diagram{position:relative}.flow-title{color:#6b7a86;text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:700;position:absolute;top:12px;left:16px}.energy-dashboard{align-items:stretch}.dash-left>.plant-info{flex:1}.reference-app .ref-card>.ref-card-head{background:var(--surface-3);border-bottom:1px solid var(--line)}.reference-app .ref-card>.ref-card-head h2{color:#6b7a86}html[data-theme=dark] .reference-app .ref-card>.ref-card-head h2{color:var(--ink2)}.fleet-count .backflow-inline{border-left:1px solid var(--line);color:var(--ink3);align-items:center;gap:5px;margin-left:14px;padding-left:14px;display:inline-flex}.fleet-count .backflow-inline svg{color:#dc2626;width:13px;height:13px}.fleet-count .backflow-inline b{color:#dc2626}.realtime-grid{background:var(--line);border-top:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;display:grid}.realtime-grid>div{background:var(--surface,#fff);min-width:0;padding:14px 16px}.realtime-grid small{color:var(--ink3);text-transform:uppercase;letter-spacing:.06em;font-size:10.5px;display:block}.realtime-grid b{font-family:var(--mono);color:var(--ink);margin-top:4px;font-size:22px;display:block}.realtime-grid b u{opacity:.65;margin-left:.3em;font-size:.5em;text-decoration:none}.realtime-grid em{color:#dc2626;text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:10px;font-style:normal;display:block;overflow:hidden}.realtime-grid .realtime-wait{color:var(--ink3);grid-column:1/-1;align-items:center;gap:8px;font-size:12px;display:flex}.realtime-wait svg,.realtime-card header svg{width:13px;height:13px}.realtime-card header small{align-items:center;gap:6px;display:inline-flex}.rt-dot{background:#10b981;border-radius:50%;width:7px;height:7px;display:inline-block}@media (width<=760px){.realtime-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.reference-app .energy-dashboard{grid-template-columns:1fr}.dash-flow{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);align-items:stretch;gap:14px;min-width:0;display:grid}.dash-flow>*{min-width:0;margin:0}.dash-flow>.array-card{margin:0}.array-dayonly{flex-direction:column;display:flex}.array-day-btn{border:1px solid var(--line);background:var(--surface);height:32px;color:var(--ink2);border-radius:6px;align-self:flex-start;margin:16px;padding:0 14px;font-weight:600}@media (width<=1100px){.dash-flow{grid-template-columns:1fr}}.customer-card>.plant-info{border:1px solid var(--line);box-shadow:none;margin-top:14px}.customer-card>.plant-info dl{grid-template-columns:repeat(3,minmax(110px,auto) minmax(0,1fr));gap:8px 16px}@media (width<=1100px){.customer-card>.plant-info dl{grid-template-columns:minmax(110px,auto) minmax(0,1fr)}}.array-grid{justify-content:center}.array-grid.compact{gap:8px}.array-grid.compact .array-group{gap:6px;padding:8px}.array-grid.compact .array-group-head{gap:6px;font-size:10px}.array-grid.compact .array-group-panels{gap:5px}.array-grid.compact .array-panel .array-tile{width:46px;height:62px}.array-grid.compact .array-tile-value{font-size:11px}.array-grid.compact .array-panel-label{font-size:10px}.array-grid.tiny{gap:6px}.array-grid.tiny .array-group{gap:4px;padding:6px}.array-grid.tiny .array-group-head{flex-direction:column;align-items:flex-start;gap:2px;font-size:9px}.array-grid.tiny .array-group-panels{gap:4px}.array-grid.tiny .array-panel .array-tile{width:34px;height:46px}.array-grid.tiny .array-tile-value,.array-grid.tiny .array-panel-label{font-size:9px}.setting-field.dirty input,.setting-field.dirty select{box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 18%,transparent);border-color:var(--primary)!important}.setting-actions{gap:6px;margin-top:6px;display:flex}.setting-actions button{cursor:pointer;border-radius:6px;align-items:center;gap:5px;height:28px;padding:0 12px;font-size:12px;font-weight:600;display:inline-flex}.setting-actions svg{width:13px;height:13px}.setting-save{background:var(--primary);color:#fff;border:0}.setting-cancel{border:1px solid var(--line);background:var(--surface);color:var(--ink2)}.settings-section>header .section-actions{gap:6px;margin-left:auto;display:inline-flex}.setting-was{color:var(--ink3);margin-top:4px;font-size:10.5px;display:block}.write-progress{border:1px solid var(--primary);background:color-mix(in srgb,var(--primary) 8%,var(--surface));color:var(--ink);border-radius:8px;align-items:center;gap:8px;margin:0 0 12px;padding:10px 14px;font-size:12.5px;font-weight:600;display:flex}.write-progress svg{width:15px;height:15px}.write-overlay{z-index:1000;-webkit-backdrop-filter:blur(4px);background:#0f172a59;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.write-dialog{border:1px solid var(--line);background:var(--surface,#fff);text-align:center;box-sizing:border-box;border-radius:12px;flex-direction:column;align-items:center;gap:8px;width:min(420px,100%);padding:26px 24px;display:flex;box-shadow:0 20px 50px #0f172a40}.write-dialog svg{width:30px;height:30px;color:var(--primary)}.write-dialog b{color:var(--ink);font-size:15px}.write-dialog p{color:var(--ink2);word-break:break-word;margin:0;font-size:13px}.write-dialog small{color:var(--ink3);font-size:11px}.gw-btn{border:1px solid var(--line);background:var(--surface-2);height:32px;color:var(--ink);font:600 12px var(--font,inherit);letter-spacing:0;text-transform:none;white-space:nowrap;cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.gw-btn svg{width:14px;height:14px}.gw-btn.primary{border-color:var(--primary);color:var(--primary)}.gw-btn:hover:not(:disabled){background:var(--surface-3)}.gw-btn:disabled{opacity:.55;cursor:default}.reference-app .settings-section>header .section-actions{background:0 0;gap:6px;margin-left:auto;padding:0;display:inline-flex}.gateway-confirm{flex-direction:column;max-width:560px;max-height:calc(100vh - 32px);display:flex}.gateway-confirm dl{min-height:0;overflow:auto}.gateway-confirm-target{color:#64748b;margin:12px 18px 0;font-size:12px}.gateway-confirm-target code{font-family:var(--mono);color:#1a2233}.gateway-confirm-option{color:#7f1d1d;cursor:pointer;background:#fff7f7;border:1px solid #fecaca;border-radius:8px;align-items:flex-start;gap:8px;margin:12px 18px 0;padding:10px 12px;font-size:12px;display:flex}.gateway-confirm-option input{margin-top:2px}.danger-note.warn{color:#b91c1c;align-items:center;gap:6px;font-weight:600;display:flex}.danger-note.warn svg{flex:none;width:14px;height:14px}.location-map{flex:1;min-height:150px;position:relative;overflow:hidden}.location-map iframe{border:0;width:100%;height:calc(100% + 64px);min-height:0;position:absolute;top:-64px;left:0}.reference-app .ref-card.original-performance{overflow:clip}.reference-app .original-performance>.ref-card-head{z-index:210;background:var(--surface-3);position:sticky;top:0;box-shadow:0 6px 14px -10px #0f172a59}.setting-commands{flex-wrap:wrap;gap:8px;display:flex}.gw-btn.danger{color:#b91c1c;background:#fff7f7;border-color:#fecaca}.gw-btn.danger:hover:not(:disabled){background:#fef2f2}html[data-theme=dark] .gw-btn.danger{color:#fca5a5;background:#b91c1c1f;border-color:#f8717166}.flow-diagram{padding:0 0 12px;overflow:hidden}.flow-diagram>.flow-head{border-bottom:1px solid var(--line);background:var(--surface-3);align-items:center;height:46px;padding:0 16px;display:flex}.flow-diagram>.flow-head b{color:#6b7a86;text-transform:uppercase;letter-spacing:.06em;font-size:12px}html[data-theme=dark] .flow-diagram>.flow-head b{color:var(--ink2)}.flow-diagram>svg,.flow-diagram>footer{margin:0 16px}.flow-diagram>.flow-head{justify-content:space-between;gap:10px}.location-source{color:var(--ink3);padding:6px 16px 8px;font-size:10.5px;display:block}.gaps-card .ref-card-head{flex-wrap:wrap}.gaps-table td small{color:var(--ink3)}.gaps-table .gap-expiring{color:#dc2626;font-weight:700}.gaps-table .gap-error{color:#b91c1c;display:block}.gaps-table tr.gap-detail td{background:var(--surface-2);cursor:default}.gaps-table tr.gap-detail ul{gap:4px;margin:0;padding:6px 0 6px 18px;font-size:12px;display:grid}.gaps-table tr.gap-detail li.muted{opacity:.55}.gaps-table tr.gap-detail em{color:var(--ink3);font-style:normal}.gap-days{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px 12px;padding:12px 18px;font-size:12px;display:flex}.gap-days>span{flex-wrap:wrap;gap:6px;display:flex}.gap-days small{color:var(--ink3)}.gap-days .gw-btn{height:28px;padding:0 10px;font-size:11.5px}.gaps-table{min-width:1080px}.gaps-table th{height:40px!important;font-size:10.5px!important}.gaps-table td{padding:12px 14px!important;font-size:13px!important}.gaps-table td code{font-size:12.5px!important}.gaps-table td small{font-size:11.5px}.gaps-table td b{font-size:15px}.gaps-table tr.gap-detail ul{font-size:12.5px}.recovery-job{border-color:var(--primary);margin-bottom:14px}.recovery-job.paused{border-color:#f59e0b}.recovery-progress{border-bottom:1px solid var(--line);padding:12px 18px}.recovery-progress p{margin:8px 0 2px;font-size:13px}.recovery-progress small{color:var(--ink3)}.recovery-bar{background:var(--surface-3);border-radius:4px;height:8px;overflow:hidden}.recovery-bar i{background:var(--primary);height:100%;transition:width .6s;display:block}.recovery-result.ok{border-color:#a7f3d0}.recovery-result.ok header{color:#047857;background:#ecfdf5;border-bottom-color:#a7f3d0}.recovery-result.ok .gateway-confirm-target{color:#065f46}.gw-toggle{border:1px solid var(--line);background:var(--surface-2);height:32px;color:var(--ink2);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:0 10px;font-size:12px;display:inline-flex}.gaps-table .gap-night{color:#6366f1;font-weight:600;display:block}.gaps-table tr.gap-detail li.night{color:var(--ink3)}.night-tag{color:#4338ca;background:#eef2ff;border-radius:99px;margin-left:6px;padding:1px 7px;font-size:11px}html[data-theme=dark] .night-tag{color:#c7d2fe;background:#6366f133}.recovery-tabs{border-bottom:1px solid var(--line);background:var(--surface-3);gap:4px;padding:10px 14px 0;display:flex}.recovery-tabs button{height:36px;color:var(--ink3);cursor:pointer;background:0 0;border:1px solid #0000;border-bottom:0;border-radius:8px 8px 0 0;padding:0 16px;font-size:13px;font-weight:600}.recovery-tabs button.active{background:var(--surface);border-color:var(--line);color:var(--ink);margin-bottom:-1px}.old-ranges{gap:5px;margin:0;padding:0;font-size:12.5px;list-style:none;display:grid}.old-ranges li{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.old-ranges .gw-btn{height:26px;padding:0 10px;font-size:11.5px}.probe-hit{color:#047857;font-style:normal;font-weight:700}.probe-miss{color:var(--ink3);font-style:normal}.recovery-job .ref-table-wrap{max-height:340px;overflow:auto}.gaps-card .ref-table-wrap{max-height:560px;overflow:auto}.recovery-job .ref-table-wrap thead th,.gaps-card .ref-table-wrap thead th{z-index:2;background:var(--surface-3);position:sticky;top:0}@media (width>=1001px){.original-device-head>.customer-card{flex:0 63%;min-width:0}.original-device-head>.location-card{flex:37%;width:auto;min-width:280px;max-width:none}}.age-bands{gap:4px;display:inline-flex}.probe-partial{color:#b45309;font-style:normal;font-weight:600}.old-group{background:var(--surface-2);border-radius:6px;padding:4px 8px}.ref-table .name-cell{white-space:nowrap;text-overflow:ellipsis;max-width:220px;overflow:hidden}.ref-table .place-cell{white-space:nowrap;color:var(--muted,#5b6678);font-size:13px}.tz-summary{flex-wrap:wrap;align-items:center;gap:8px;margin:4px 0 8px;display:flex}.tz-summary .fleet-search{flex:220px;max-width:340px}.tz-chip{color:#38455c;cursor:pointer;background:#fff;border:1px solid #d7dde8;border-radius:16px;align-items:center;gap:6px;height:32px;padding:0 12px;font-size:13px;display:inline-flex}.tz-chip b{font-size:14px}.tz-chip.ok b{color:#15803d}.tz-chip.bad b{color:#dc2626}.tz-chip.unknown b{color:#64748b}.tz-chip.active{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb26}.tz-help{color:#64748b;margin:0 0 8px;font-size:12.5px}.tz-note{background:#f1f5f9;border-radius:6px;margin:0 0 8px;padding:8px 12px;font-size:13px}.tz-pill{white-space:nowrap;border-radius:10px;padding:2px 8px;font-size:12px;font-weight:700;display:inline-block}.tz-pill.ok{color:#15803d;background:#dcfce7}.tz-pill.bad{color:#b91c1c;background:#fee2e2}.tz-pill.unknown{color:#64748b;background:#f1f5f9}.ref-table tr.tz-row-bad td{background:#fff5f5}.tz-bad-text{color:#dc2626;font-weight:700}.tz-table td{white-space:nowrap}.tz-fix{white-space:nowrap;align-items:center;gap:4px;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.tz-fix svg{width:14px;height:14px}html[data-theme=dark] .tz-chip{background:var(--surface-3);border-color:var(--line);color:inherit}html[data-theme=dark] .ref-table tr.tz-row-bad td{background:#b91c1c24}html[data-theme=dark] .tz-note{background:var(--surface-3)}html[data-theme=dark] .tz-pill.ok{color:#86efac;background:#15803d33}html[data-theme=dark] .tz-pill.bad{color:#fca5a5;background:#b91c1c33}html[data-theme=dark] .tz-pill.unknown{color:#cbd5e1;background:#64748b33}.recovery-chip{color:#1d4ed8;cursor:pointer;white-space:nowrap;background:#eff6ff;border:1px solid #bfdbfe;border-radius:15px;align-items:center;gap:6px;height:30px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.recovery-chip svg{width:14px;height:14px}.recovery-chip b{font-variant-numeric:tabular-nums}.recovery-chip i{background:#dbeafe;border-radius:2px;width:44px;height:4px;display:block;overflow:hidden}.recovery-chip i em{background:#2563eb;height:100%;display:block}.recovery-chip.paused{color:#92400e;background:#fffbeb;border-color:#fde68a}.recovery-chip.paused i{background:#fef3c7}.recovery-chip.paused i em{background:#d97706}html[data-theme=dark] .recovery-chip{color:#93c5fd;background:#2563eb26;border-color:#60a5fa66}html[data-theme=dark] .recovery-chip i{background:#60a5fa33}html[data-theme=dark] .recovery-chip.paused{color:#fcd34d;background:#d9770626;border-color:#fbbf2466}@media (width<=720px){.recovery-chip span,.recovery-chip i{display:none}}.recovery-group .recovery-bar.group{margin:0 16px 10px}.recovery-job-list{border-top:1px solid var(--line);flex-direction:column;display:flex}.recovery-job-row{border-bottom:1px solid var(--line)}.recovery-job-row:last-child{border-bottom:0}.recovery-job-summary{text-align:left;cursor:pointer;width:100%;color:inherit;background:0 0;border:0;align-items:center;gap:10px;padding:10px 16px;font-size:13.5px;display:flex}.recovery-job-summary:hover{background:var(--surface-3)}.recovery-job-summary .chev{flex:none;width:16px;height:16px;transition:transform .15s}.recovery-job-row.open .chev{transform:rotate(90deg)}.recovery-job-summary .job-state{color:#1d4ed8;background:#dbeafe;border-radius:10px;padding:1px 8px;font-size:11.5px;font-weight:700}.recovery-job-summary .job-state.paused{color:#92400e;background:#fef3c7}.recovery-bar.mini{flex:0 0 120px;height:6px}.recovery-job-summary .job-nums{white-space:nowrap}.recovery-job-summary .job-note{text-overflow:ellipsis;white-space:nowrap;color:#64748b;flex:1;min-width:0;overflow:hidden}.recovery-job-detail{padding:0 16px 12px 42px}.recovery-job-detail>p{margin:4px 0 8px;font-size:13px}.recovery-chip .chip-eta{opacity:.85;font-weight:500}html[data-theme=dark] .recovery-job-summary .job-state{color:#93c5fd;background:#2563eb33}html[data-theme=dark] .recovery-job-summary .job-state.paused{color:#fcd34d;background:#d9770633}@media (width<=720px){.recovery-job-summary .job-note,.recovery-bar.mini{display:none}.recovery-job-detail{padding-left:16px}}.top-clock-wrap{align-items:center;padding-right:10px;display:inline-flex;position:relative}.top-tools.clock-dot{min-width:0;margin:0;display:flex;position:absolute;top:-7px;right:-4px}.top-tools.clock-dot .live-dot{margin:0}.theme-toggle.icon-only{width:32px;min-width:32px;padding:0}.theme-toggle.icon-only svg{width:16px;height:16px}.theme-toggle.icon-only.active{border-color:var(--primary,#2563eb)}.settings-menu{position:relative}.settings-pop{z-index:300;border:1px solid var(--line);background:var(--surface-2,#fff);border-radius:8px;flex-direction:column;min-width:190px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 30px #0f172a2e}.settings-pop button{height:36px;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:10px;padding:0 10px;font-size:13px;display:flex}.settings-pop button:hover{background:var(--surface-3,#f1f5f9)}.settings-pop button svg{width:16px;height:16px}.settings-pop button.signout{color:#b91c1c}.settings-pop hr{border:0;border-top:1px solid var(--line);width:100%;margin:4px 0}html[data-theme=dark] .settings-pop{background:#1a252e;border-color:#2b3b44}html[data-theme=dark] .settings-pop button:hover{background:#243240}html[data-theme=dark] .settings-pop button.signout{color:#fca5a5}.recovery-group>.ref-card-head{align-items:center;gap:16px;display:flex}.recovery-group-bar{flex:0 320px;align-items:center;gap:8px;min-width:140px;margin-left:auto;display:flex}.recovery-group-bar .recovery-bar.group{flex:1;margin:0}.recovery-group-bar b{font-variant-numeric:tabular-nums;font-size:13px}@media (width<=720px){.recovery-group>.ref-card-head{flex-wrap:wrap}.recovery-group-bar{flex-basis:100%;margin-left:0}.top-clock-wrap .top-clock{display:none}.top-clock-wrap{width:10px;height:10px;padding-right:0}.top-tools.clock-dot{position:static}}.tz-chip.register_mismatch b{color:#d97706}.tz-pill.register_mismatch{color:#92400e;background:#fef3c7}.ref-table tr.tz-row-warn td{background:#fffbeb}.tz-warn-text{color:#d97706;font-weight:700}html[data-theme=dark] .tz-pill.register_mismatch{color:#fcd34d;background:#d9770633}html[data-theme=dark] .ref-table tr.tz-row-warn td{background:#d977061a}.bot-settings{flex-direction:column;gap:12px;padding:12px 16px 16px;display:flex}.bot-state{border:1px solid var(--line);background:var(--surface-3);border-radius:8px;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:10px 14px;display:flex}.bot-state b{font-size:14px}.bot-state.on{background:#f0fdf4;border-color:#86efac}.bot-state.on b{color:#15803d}.bot-state.paused{background:#fffbeb;border-color:#fde68a}.bot-state.paused b{color:#b45309}.bot-state.off b{color:#64748b}.bot-state span,.bot-state small{color:#475569;font-size:12.5px}.bot-lanes{flex-wrap:wrap;gap:8px;display:flex}.bot-lanes i{background:#64748b1f;border-radius:10px;padding:2px 8px;font-style:normal}.bot-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:12px;display:grid}@media (width<=1100px){.bot-grid{grid-template-columns:1fr}}.bot-card{border:1px solid var(--line);background:var(--surface-2,#fff);border-radius:8px;flex-direction:column;gap:10px;padding:12px 14px;display:flex}.bot-card header h3{margin:0;font-size:14px}.bot-card header p{color:#64748b;margin:2px 0 0;font-size:12px}.bot-group h4{color:#475569;text-transform:uppercase;letter-spacing:.04em;margin:4px 0 6px;font-size:12px}.bot-fields{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px 12px;display:grid}.bot-field{flex-direction:column;gap:3px;font-size:12.5px;display:flex}.bot-field>span:first-child{font-weight:600}.bot-input{align-items:center;gap:6px;display:flex}.bot-input input{border:1px solid var(--line);background:var(--surface-2,#fff);width:96px;height:30px;color:inherit;font-variant-numeric:tabular-nums;border-radius:6px;padding:0 8px}.bot-input small{color:#64748b}.bot-field em{color:#94a3b8;font-size:11px;font-style:normal}.danger-toggle{color:#b91c1c;font-weight:700}.bot-actions{justify-content:flex-end;gap:8px;display:flex}.gw-btn.primary.danger{background:#dc2626;border-color:#dc2626}html[data-theme=dark] .bot-state.on{background:#15803d1f;border-color:#86efac59}html[data-theme=dark] .bot-state.paused{background:#d977061f;border-color:#fbbf2459}html[data-theme=dark] .bot-card{background:#1a252e;border-color:#2b3b44}html[data-theme=dark] .bot-input input{background:#12202a;border-color:#2b3b44}html[data-theme=dark] .danger-toggle{color:#fca5a5}.recovery-job-row{border-left:3px solid #0000}.recovery-job-row.bot{background:#7c3aed0a;border-left-color:#7c3aed}.recovery-job-row.manual{border-left-color:#2563eb}.job-owner{white-space:nowrap;border-radius:10px;padding:1px 8px;font-size:11.5px;font-weight:700}.job-owner.bot{color:#6d28d9;background:#ede9fe}.job-owner.manual{color:#1d4ed8;background:#dbeafe}.recovery-job-row.bot .recovery-bar i{background:#7c3aed}html[data-theme=dark] .recovery-job-row.bot{background:#7c3aed1a}html[data-theme=dark] .job-owner.bot{color:#c4b5fd;background:#7c3aed40}html[data-theme=dark] .job-owner.manual{color:#93c5fd;background:#2563eb33}.recovery-tabs .recovery-tab-end{margin-left:auto}.bot-actions .bot-reset{margin-right:auto}.day-gap-badge{color:#b91c1c;background:#fee2e2;border-radius:9px;margin-left:8px;padding:1px 7px;font-size:11px;font-style:normal;font-weight:700}.day-picker-list .day-picker-group{color:#64748b;text-transform:none;cursor:default;border-top:1px solid var(--line);pointer-events:none;padding:8px 14px 4px;font-size:11.5px;font-weight:700}.day-picker-list .day-picker-date{border-top:1px solid var(--line);cursor:default;justify-content:space-between;align-items:center;gap:10px;display:flex}.day-picker-date input{border:1px solid var(--line);background:var(--surface-2,#fff);height:30px;color:inherit;border-radius:6px;padding:0 8px}html[data-theme=dark] .day-gap-badge{color:#fca5a5;background:#b91c1c40}.probe-partial,.probe-got{color:#15803d;font-weight:700}.tab-recovered{color:#15803d;background:#dcfce7;border-radius:10px;align-items:center;gap:3px;margin-left:8px;padding:1px 8px;font-size:12px;font-weight:700;display:inline-flex}.tab-recovered svg{width:13px;height:13px}html[data-theme=dark] .probe-partial,html[data-theme=dark] .probe-got{color:#86efac}html[data-theme=dark] .tab-recovered{color:#86efac;background:#15803d38}.bot-probe{border:1px dashed var(--line);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.bot-probe div{flex-direction:column;gap:2px;display:flex}.bot-probe small{color:#64748b;font-size:12px}.bot-card .bot-group{border:1px solid var(--line);background:var(--surface-3);border-radius:8px;padding:10px 12px 12px}.bot-card .bot-group h4{border-bottom:1px solid var(--line);text-transform:none;letter-spacing:0;color:var(--ink2,#435264);margin:0 0 8px;padding-bottom:6px;font-size:13px}.bot-card>.bot-fields{border:1px solid var(--line);background:var(--surface-3);border-radius:8px;padding:10px 12px 12px}.bot-card .bot-input input{background:var(--surface,#fff)}.watch-panel{flex-direction:column;gap:14px;padding:12px 16px 16px;display:flex}.watch-block{border:1px solid var(--line);border-radius:8px;overflow:hidden}.watch-block>header{background:var(--surface-3);border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px;padding:10px 14px;display:flex}.watch-block>header h3{margin:0;font-size:14px}.watch-block>header p{color:#64748b;flex-basis:100%;margin:2px 0 0;font-size:12px}.watch-block>header .gw-btn{margin-left:auto}.ref-table tr.watch-row-risk td{background:#fff5f5}.tab-alert{color:#fff;background:#dc2626;border-radius:10px;justify-content:center;align-items:center;min-width:20px;height:20px;margin-left:8px;padding:0 6px;font-size:11.5px;font-weight:700;display:inline-flex}html[data-theme=dark] .ref-table tr.watch-row-risk td{background:#b91c1c1f}.gateway-ip{color:var(--ink3);white-space:nowrap;font-size:12px}.gateway-ip code{font-family:var(--mono);color:var(--ink2);margin-left:2px}.micro-live-actions{align-items:center;gap:10px;display:inline-flex}.micro-live{background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;margin:0 14px 10px}.micro-live header{border-bottom:1px solid #bfdbfe;flex-wrap:wrap;align-items:baseline;gap:8px;padding:8px 12px;display:flex}.micro-live header small{color:#475569}.micro-live dl{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:6px 14px;margin:0;padding:10px 12px;display:grid}.micro-live dt{color:#64748b;text-transform:uppercase;letter-spacing:.03em;font-size:11px}.micro-live dd{font-family:var(--mono);margin:0;font-weight:700}.micro-live dd em{color:#b91c1c;font-style:normal;font-weight:500}html[data-theme=dark] .micro-live{background:#2563eb1a;border-color:#60a5fa59}html[data-theme=dark] .micro-live header{border-color:#60a5fa59}.energy-badge{vertical-align:middle;color:#d97706;align-items:center;margin-left:6px;display:inline-flex}.energy-badge svg{width:14px;height:14px}.energy-badge.micro_missing,.energy-badge.micro_implausible{color:#64748b}.energy-badge.verify_after_fix{color:#16a34a}.energy-check{background:#d9770612;border:1px solid #d9770659;border-radius:12px;align-items:flex-start;gap:12px;margin:0 0 16px;padding:12px 16px;display:flex}.energy-check>svg{color:#d97706;flex:none;width:18px;height:18px;margin-top:2px}.energy-check.flag{border-color:var(--line,#e2e8f0);background:0 0}.energy-check p{color:var(--muted,#5b6678);margin:4px 0 6px;font-size:13px}.energy-check .link-btn{color:var(--accent,#3b5bfd);cursor:pointer;background:0 0;border:0;padding:0;font-size:13px}.energy-check-days{border-collapse:collapse;margin-top:8px;font-size:13px}.energy-check-days th,.energy-check-days td{border-bottom:1px solid var(--line,#e2e8f0);text-align:left;padding:4px 10px}.energy-check-days .num{text-align:right}.energy-check-days tr.overridden td{background:#d977060d}.original-status-bar{grid-template-columns:none;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:8px}.original-status-bar .ref-summary-card{gap:8px;min-width:0;padding:10px}.original-status-bar .ref-summary-icon{width:30px;height:30px}.original-status-bar .ref-summary-card small{letter-spacing:.04em;white-space:nowrap;text-overflow:ellipsis;font-size:9.5px;overflow:hidden}.original-status-bar .ref-summary-card strong{font-size:20px}.original-status-bar .ref-summary-card p{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:9.5px;display:-webkit-box;overflow:hidden}@media (width<=1000px){.original-status-bar{grid-template-columns:repeat(2,1fr);grid-auto-flow:row}}.issue-energy{color:#b45309}.issue-energy.micro_missing,.issue-energy.micro_implausible{color:var(--muted,#5b6678)}.issue-energy.verify_after_fix{color:#15803d}.energy-check-days td.meter-bad{color:#dc2626;font-weight:600}.status-cell{white-space:nowrap}.status-cell .energy-badge svg{width:16px;height:16px}.firmware-refresh{color:inherit;cursor:pointer;vertical-align:middle;background:0 0;border:0;place-items:center;margin-left:6px;padding:0;display:inline-grid}.firmware-refresh svg{width:13px;height:13px}.firmware-refresh:disabled{opacity:.4;cursor:default}.raw-table tr.raw-gap td{text-align:center;color:var(--muted,#5b6678);background:repeating-linear-gradient(45deg,#0000 0 6px,#94a3b81f 6px 12px);font-size:12px}.inventory-status.no-data i{background:#dc2626}.micro-workspace .stale-note{color:#dc2626;align-items:center;gap:4px;font-weight:600;display:inline-flex}.micro-workspace .stale-note svg{width:13px;height:13px}.micro-workspace.stale .micro-kpis{opacity:.45}.micro-live .stale-note{color:#dc2626;align-items:center;gap:6px;margin:6px 0;font-size:12px;font-weight:600;display:flex}.micro-live .stale-note svg{flex:none;width:14px;height:14px}.flow-diagram.stale svg{filter:grayscale();opacity:.45}.flow-diagram.stale .flow-dir{color:#dc2626;font-weight:600}.inventory-status.cloud-late i{background:#d97706}.live-mark{letter-spacing:0;text-transform:none;background:color-mix(in srgb,var(--primary,#2563eb) 14%,transparent);color:var(--primary,#2563eb);border-radius:8px;margin-left:6px;padding:0 6px;font-size:10px;font-weight:600;display:inline-block}.micro-kpis>div.live b{color:var(--primary,#2563eb)}.perf-saved-note{color:var(--ink3,#64748b);margin:4px 0 8px;font-size:12px}.permission-table th.num,.permission-table td.num{text-align:center;width:112px}.permission-table .permission-group td{letter-spacing:.04em;color:var(--ink3);background:var(--surface-3,transparent);padding-top:12px;font-size:11px;font-weight:700}.permission-table small{color:var(--ink3)}.perm-yes{color:#16a34a;font-weight:700}.perm-no{color:var(--ink3);opacity:.6}
