:root{--navy:#06111f;--navy2:#0d2239;--blue:#1f6fd1;--blue-soft:#eaf3ff;--green:#2ca86f;--red:#e5484d;--text:#142033;--muted:#667085;--line:#dfe5ec;--panel:#fff;--bg:#f4f7fb;--shadow:0 8px 24px rgba(16,24,40,.08)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,system-ui,sans-serif;color:var(--text);background:var(--bg)}button,input,select{font:inherit}.hidden{display:none!important}.topbar{min-height:78px;background:linear-gradient(100deg,var(--navy),#092744);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:12px 30px;box-shadow:0 2px 12px rgba(0,0,0,.2)}.brand,.login-brand{display:flex;align-items:center;gap:12px}.brand strong,.login-brand strong{display:block;font-size:20px}.brand span,.login-brand span{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;opacity:.78;margin-top:3px}.wa-mark{display:grid;place-items:center;width:54px;height:54px;border-radius:12px;background:linear-gradient(145deg,#173a60,#091d32);color:#fff;font-weight:800;letter-spacing:-1px;box-shadow:inset 0 0 0 2px rgba(255,255,255,.12)}.wa-mark.small{width:42px;height:42px;border-radius:10px;font-size:14px}.top-actions{display:flex;align-items:center;gap:12px}.user-name{font-size:13px;opacity:.85}.tabs{height:58px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:flex-end;padding:0 30px;gap:28px}.tab-button{border:0;background:transparent;padding:17px 3px 14px;color:#64748b;font-weight:700;cursor:pointer;border-bottom:3px solid transparent}.tab-button.active{color:var(--blue);border-color:var(--blue)}main{padding:26px 30px 40px;max-width:1680px;margin:0 auto}.view{display:none}.active-view{display:block}.page-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:20px}.page-heading h1{margin:0 0 5px;font-size:27px}.page-heading p{margin:0;color:var(--muted)}.last-updated{font-size:13px;color:var(--muted)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);overflow:hidden}.panel-header{min-height:54px;display:flex;align-items:center;padding:12px 18px;border-bottom:1px solid var(--line)}.panel-header h2{margin:0;font-size:14px;letter-spacing:.2px;text-transform:uppercase}.panel-header h2 span{font-weight:500;color:var(--muted)}.dashboard-grid{display:grid;grid-template-columns:390px 1fr 1.25fr;grid-template-rows:380px 510px;gap:14px}.tenant-panel{grid-row:1/3}.summary-panel{grid-column:2}.month-panel{grid-column:3}.comparison-panel{grid-column:2}.pie-panel{grid-column:3}.tenant-table-wrap{height:calc(100% - 54px);overflow:auto}.tenant-table,.report-table{width:100%;border-collapse:collapse}.tenant-table th,.tenant-table td{padding:6px 14px;border-bottom:1px solid #edf0f4;text-align:left;font-size:13px}.tenant-table th{position:sticky;top:0;background:#f8fafc;text-transform:uppercase;font-size:11px;color:#596579}.tenant-table th:last-child,.tenant-table td:last-child{text-align:right}.tenant-name{display:flex;align-items:center;gap:10px}.tenant-num{display:grid;place-items:center;min-width:28px;height:24px;padding:0 6px;background:var(--blue-soft);border-radius:7px;color:var(--blue);font-weight:700;font-size:11px}.meter-label{color:var(--muted);font-size:11px}.summary-cards{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:28px;height:calc(100% - 54px);align-items:center}.metric-card{border:1px solid #c9dcf6;border-radius:12px;padding:24px;background:linear-gradient(145deg,#fff,#f8fbff);min-height:160px;display:flex;flex-direction:column;justify-content:center}.metric-card.green{border-color:#bde8cf;background:linear-gradient(145deg,#fff,#f4fff8)}.metric-card.red{border-color:#f2c8ca;background:linear-gradient(145deg,#fff,#fff7f7)}.metric-label{text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:700;color:#5e6a7d}.metric-value{font-size:34px;font-weight:800;color:var(--blue);margin:10px 0 4px}.metric-card.green .metric-value{color:var(--green)}.metric-card.red .metric-value{color:var(--red)}.metric-sub{color:var(--muted);font-size:12px}.chart-wrap{height:calc(100% - 54px);padding:18px}.chart-wrap.tall{padding:16px}.report-controls{padding:18px;display:flex;align-items:end;gap:18px;margin-bottom:15px}.control-group{display:flex;flex-direction:column;gap:8px;min-width:290px}.control-group.grow{flex:1}.control-group label{font-size:12px;font-weight:700;text-transform:uppercase;color:#5c687b}.control-group select{height:44px;border:1px solid var(--line);border-radius:8px;padding:0 12px;background:#fff}.range-buttons{display:flex}.range-buttons button{height:44px;padding:0 20px;border:1px solid var(--line);background:#fff;color:#475467;cursor:pointer}.range-buttons button:first-child{border-radius:8px 0 0 8px}.range-buttons button:last-child{border-radius:0 8px 8px 0}.range-buttons button+button{border-left:0}.range-buttons button.active{background:var(--blue);color:#fff;border-color:var(--blue)}.report-actions{display:flex;gap:8px}.primary-button,.secondary-button,.ghost-button{height:44px;border-radius:8px;padding:0 18px;font-weight:700;cursor:pointer}.primary-button{border:1px solid var(--blue);background:var(--blue);color:#fff}.secondary-button{border:1px solid var(--line);background:#fff;color:#344054}.ghost-button{height:38px;border:1px solid rgba(255,255,255,.3);background:transparent;color:#fff}.report-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:15px}.report-metric{min-height:130px;padding:20px}.report-table-panel{overflow:hidden}.report-header{justify-content:space-between}.report-header span{font-size:12px;color:var(--muted)}.report-table-wrap{overflow:auto;max-height:560px}.report-table th,.report-table td{padding:12px 16px;border-bottom:1px solid #edf0f4;font-size:13px}.report-table thead th{position:sticky;top:0;background:#eef5ff;text-align:left}.report-table th:not(:first-child),.report-table td:not(:first-child){text-align:right}.report-table tfoot th{background:#fff3b8;font-size:14px}.login-view{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 10%,#173a60,var(--navy) 55%)}.login-card{width:min(460px,92vw);background:#fff;padding:34px;border-radius:16px;box-shadow:0 28px 70px rgba(0,0,0,.35)}.login-brand{margin-bottom:28px;color:var(--navy)}.login-card h1{margin:0 0 8px}.login-card p{color:var(--muted);margin:0 0 24px}.login-card label{display:flex;flex-direction:column;gap:7px;font-weight:700;font-size:13px;margin-bottom:15px}.login-card input{height:44px;border:1px solid var(--line);border-radius:8px;padding:0 12px}.login-card input:focus{outline:3px solid rgba(31,111,209,.18);border-color:var(--blue)}.login-card .primary-button{width:100%;margin-top:5px}.primary-button:disabled{opacity:.65;cursor:wait}.form-message{font-size:13px;color:var(--red);margin-top:12px}.global-message{padding:12px 14px;margin-bottom:15px;border:1px solid #f2c8ca;background:#fff7f7;color:#a2262a;border-radius:9px;font-size:13px}
@media(max-width:1100px){.dashboard-grid{grid-template-columns:330px 1fr;grid-template-rows:auto}.tenant-panel{grid-row:1/4}.month-panel,.pie-panel,.summary-panel,.comparison-panel{grid-column:2}.report-controls{flex-wrap:wrap}.report-actions{width:100%;justify-content:flex-end}}
@media(max-width:760px){.topbar{padding:14px 16px;align-items:flex-start}.brand strong{font-size:16px}.user-name{display:none}.tabs{padding:0 16px}.dashboard-grid{display:block}.panel{margin-bottom:14px}.tenant-panel{height:520px}.summary-panel{height:auto}.summary-cards{grid-template-columns:1fr;height:auto}.month-panel,.comparison-panel,.pie-panel{height:390px}.page-heading{align-items:flex-start;gap:10px;flex-direction:column}main{padding:20px 14px}.report-controls{display:block}.control-group{min-width:0;margin-bottom:14px}.range-buttons{display:grid;grid-template-columns:1fr 1fr}.range-buttons button,.range-buttons button:first-child,.range-buttons button:last-child{border:1px solid var(--line);border-radius:7px;margin:3px}.report-actions{justify-content:stretch}.report-actions button{flex:1}.report-summary-grid{grid-template-columns:1fr}.report-header{align-items:flex-start;gap:8px;flex-direction:column}}
@media print{.topbar,.tabs,.report-controls,.page-heading,.report-summary-grid,.global-message{display:none!important}body{background:#fff}.view{display:none!important}#reportsView{display:block!important}main{padding:0}.panel{box-shadow:none;border:0}.report-table-wrap{max-height:none;overflow:visible}.report-table thead th{position:static}}

.report-mode-tabs{display:flex;gap:8px;margin-bottom:15px}.report-mode-tabs button{height:42px;padding:0 18px;border:1px solid var(--line);background:#fff;color:#475467;border-radius:8px;font-weight:700;cursor:pointer}.report-mode-tabs button.active{background:var(--navy2);border-color:var(--navy2);color:#fff}.report-mode{display:none}.active-report-mode{display:block}.report-controls input{height:44px;border:1px solid var(--line);border-radius:8px;padding:0 12px;background:#fff}.control-group.compact{min-width:180px;max-width:220px}.report-note{min-height:44px;display:flex;align-items:center;color:var(--muted);font-size:12px;line-height:1.45}.meter-subtotal td,.meter-subtotal th{font-weight:800;background:#eef5ff}.meter-group-row td{background:#f8fafc;font-weight:800;text-transform:uppercase;font-size:11px;color:#475467}.missing-reading{color:var(--red);font-size:11px}.billing-chart-panel{height:390px;margin-bottom:15px}.billing-chart-wrap{height:calc(100% - 54px)}.positive-change{color:#b42318;font-weight:700}.negative-change{color:#067647;font-weight:700}.neutral-change{color:var(--muted)}
@media(max-width:760px){.report-mode-tabs{overflow:auto}.report-mode-tabs button{white-space:nowrap}.control-group.compact{max-width:none}.billing-chart-panel{height:360px}}
@media print{.report-mode-tabs{display:none!important}.report-mode{display:none!important}.report-mode.active-report-mode{display:block!important}.active-report-mode .report-controls{display:none!important}.billing-chart-panel{page-break-after:avoid}.report-table-panel{page-break-inside:auto}}

/* Customer portal branding */
.ct-mark{display:grid;place-items:center;width:54px;height:54px;border-radius:12px;background:linear-gradient(145deg,#173a60,#091d32);color:#fff;font-weight:800;letter-spacing:-1px;box-shadow:inset 0 0 0 2px rgba(255,255,255,.12)}
.ct-mark.small{width:42px;height:42px;border-radius:10px;font-size:14px}
.login-view{position:relative;overflow:hidden;background:linear-gradient(135deg,#071625 0%,#0d2239 52%,#132a43 100%)}
.login-view:before,.login-view:after{content:"";position:absolute;pointer-events:none;background:rgba(255,255,255,.025);transform:rotate(-28deg);border-radius:40px}
.login-view:before{width:720px;height:170px;left:-240px;bottom:80px}.login-view:after{width:580px;height:130px;right:-190px;top:110px}
.login-card{position:relative;z-index:1;width:min(560px,92vw);padding:44px 48px 0;border-radius:18px;box-shadow:0 28px 80px rgba(0,0,0,.38);overflow:hidden}
.customer-login-brand{justify-content:center;margin:0 0 30px}
.customer-logo{display:block;width:min(245px,70%);height:auto;object-fit:contain}
.login-card h1{text-align:center;font-size:34px;letter-spacing:-.02em;margin:0 0 9px}
.login-card .login-intro{text-align:center;font-size:16px;line-height:1.45;max-width:410px;margin:0 auto 30px}
.login-card label{font-size:13px;margin-bottom:18px}
.login-card input{height:50px;border-radius:9px;font-size:15px;background:#fff}
.login-card input#loginUsername{background:#f4f8fe}
.password-field{position:relative}.password-field input{width:100%;padding-right:48px}
.password-toggle{position:absolute;right:5px;top:5px;width:40px;height:40px;border:0;background:transparent;color:#5e6a7d;font-size:19px;cursor:pointer;border-radius:7px}.password-toggle:hover{background:#f1f5f9}
.login-card .primary-button{height:50px;font-size:16px;margin:2px 0 0}
.login-footer{display:flex;align-items:center;gap:12px;margin:34px -48px 0;padding:22px 48px;border-top:1px solid var(--line);background:#fbfcfe;color:#475467}
.login-footer strong,.login-footer span{display:block}.login-footer strong{font-size:13px}.login-footer span{font-size:12px;margin-top:3px;color:var(--muted)}
.login-recovery-help{margin:16px 0 0;color:#8ea8b3;font-size:11px;line-height:1.5;text-align:center}.login-recovery-help strong{color:#c7d9df}
.secure-icon{width:32px;height:32px;border:2px solid #64748b;border-radius:9px;display:grid!important;place-items:center;font-weight:800;color:#64748b!important;margin:0!important}
@media(max-width:600px){.login-card{padding:34px 24px 0}.login-card h1{font-size:29px}.customer-logo{width:min(220px,78%)}.login-footer{margin:28px -24px 0;padding:19px 24px}.top-actions{gap:8px}.top-actions .user-name{display:block;font-size:11px;max-width:145px;text-align:right}.brand span{font-size:9px}}

/* v0.5.0 commissioning UI */
.admin-panel{margin-bottom:18px;padding-bottom:18px}.admin-form-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:14px;padding:18px}.admin-form-grid label,.device-grid label,.measurement-grid label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:#334155}.admin-form-grid input,.device-grid input,.device-grid select,.measurement-grid input,.measurement-grid select{border:1px solid #cbd5e1;border-radius:7px;padding:9px 10px;background:#fff;color:#0f172a}.admin-header{display:flex;justify-content:space-between;align-items:center}.device-card{margin:14px 18px;border:1px solid #dbe3ed;border-radius:10px;overflow:hidden;background:#f8fafc}.device-card-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:#eef4fa;border-bottom:1px solid #dbe3ed}.device-card-head strong{font-size:14px}.device-grid{display:grid;grid-template-columns:2fr 1.2fr 1.2fr 1.4fr .7fr .7fr 1fr;gap:10px;padding:14px}.device-actions{display:flex;gap:8px}.danger-button{border:1px solid #fecaca;background:#fff;color:#b91c1c;border-radius:7px;padding:7px 10px;font-weight:700}.test-result{font-size:12px;padding:0 14px 10px;color:#475569}.measurement-section{border-top:1px solid #dbe3ed;padding:12px 14px 14px}.measurement-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.measurement-title h3{margin:0;font-size:13px}.measurement-row{display:grid;grid-template-columns:1.6fr 1fr .8fr .8fr .8fr .8fr 1.2fr auto;gap:8px;align-items:end;margin-bottom:8px}.measurement-grid label{font-size:10px}.measurement-grid input,.measurement-grid select{width:100%;box-sizing:border-box;padding:7px}.admin-savebar{position:sticky;bottom:0;display:flex;justify-content:space-between;align-items:center;padding:14px 18px;background:rgba(255,255,255,.96);border:1px solid #dbe3ed;border-radius:10px;box-shadow:0 -4px 18px rgba(15,23,42,.08);margin:20px 0}.check-label{display:flex!important;flex-direction:row!important;align-items:center;gap:7px!important;padding-top:22px}.check-label input{width:auto}.small-button{padding:7px 9px;font-size:11px}.admin-empty{padding:22px;color:#64748b;text-align:center}@media(max-width:1100px){.device-grid{grid-template-columns:repeat(3,1fr)}.measurement-row{grid-template-columns:repeat(4,1fr)}.admin-form-grid{grid-template-columns:1fr}}

/* v0.5.1 measurement table */
.measurement-meta{font-size:10px;color:#64748b;margin-top:3px;text-transform:capitalize}.tenant-table th:last-child,.tenant-table td:last-child{white-space:nowrap}

/* v0.6.0 presentation demo */
.demo-theme{--demo-bg:#0c171d;--demo-bg2:#101f27;--demo-panel:#13232c;--demo-panel2:#172a34;--demo-line:#29414d;--demo-text:#eef6f8;--demo-muted:#8da6b2;--demo-cyan:#39c7e8;--demo-green:#33d17a;--demo-yellow:#f3c969;--demo-red:#ff6b6b;background:var(--demo-bg);color:var(--demo-text)}
.demo-theme .hidden{display:none!important}.demo-shell{min-height:100vh;background:linear-gradient(180deg,#0b171e,#0d1a21);color:var(--demo-text)}
.demo-topbar{position:fixed;z-index:30;left:0;right:0;top:0;height:58px;background:#07151d;border-bottom:1px solid #18313d;display:grid;grid-template-columns:260px 1fr auto;align-items:center;padding:0 18px;color:#eef6f8}.app-title{font-size:15px;font-weight:800;letter-spacing:.01em}.top-live{justify-self:center;display:flex;align-items:center;gap:8px;font-size:12px;color:#9bb2bd}.top-clock{color:#e9f5f8;font-variant-numeric:tabular-nums}.live-dot,.status-dot,.node-led{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--demo-green);box-shadow:0 0 0 3px rgba(51,209,122,.12)}.demo-topbar .ghost-button{border-color:#2b4856;color:#dbe9ef}.demo-topbar .user-name{color:#9db4bf}
.demo-sidebar{position:fixed;z-index:20;top:58px;bottom:0;left:0;width:205px;background:#102b3a;border-right:1px solid #1c3c49;padding:22px 10px 18px;display:flex;flex-direction:column}.side-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#7fa0af;padding:0 12px 10px}.side-nav{display:flex;flex-direction:column;gap:4px}.demo-sidebar .tab-button{display:flex;align-items:center;gap:10px;width:100%;padding:11px 12px;border:0;border-left:3px solid transparent;border-radius:0 5px 5px 0;color:#d7e5ea;text-align:left;font-size:12px;font-weight:600}.demo-sidebar .tab-button span{width:18px;text-align:center;color:#7fa4b3}.demo-sidebar .tab-button:hover{background:#163b4d}.demo-sidebar .tab-button.active{background:#1b536d;color:#fff;border-left-color:var(--demo-cyan)}.demo-sidebar .tab-button.active span{color:#66d9ef}.side-status{margin-top:auto;border-top:1px solid #2a4b59;padding:16px 10px 0;display:flex;gap:10px;align-items:flex-start}.side-status strong,.side-status span{display:block}.side-status strong{font-size:11px;color:#e6f2f5}.side-status span:last-child{font-size:10px;color:#79a1b0;margin-top:3px}.status-dot.warn{background:var(--demo-yellow)}
.demo-main{margin-left:205px;padding:82px 18px 30px;max-width:none;min-height:100vh}.demo-view{max-width:1680px;margin:0 auto}.demo-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin:0 0 14px}.demo-heading h1{font-size:20px;margin:3px 0 0;color:#f2f8fa}.demo-heading p{margin:5px 0 0;color:var(--demo-muted);font-size:12px}.breadcrumb{font-size:11px;color:#63c9e4}.heading-status{font-size:11px;color:#9eb2bb;display:flex;align-items:center;gap:7px}.panel-dark{background:linear-gradient(180deg,#12232c,#111f27);border:1px solid var(--demo-line);border-radius:8px;box-shadow:0 8px 30px rgba(0,0,0,.14)}.section-title{padding:14px 16px;border-bottom:1px solid var(--demo-line);font-size:12px;font-weight:800;color:#eef7f9;text-transform:uppercase;letter-spacing:.03em}
.campus-stage{height:485px;position:relative;overflow:hidden}.campus-map{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.campus-callout{position:absolute;z-index:3;min-width:138px;padding:10px 12px;border:1px solid #3b5b69;background:rgba(9,24,31,.92);border-radius:7px;box-shadow:0 8px 20px rgba(0,0,0,.2)}.campus-callout strong,.campus-callout span{display:block}.campus-callout strong{font-size:12px}.campus-callout span{font-size:11px;color:#8fd6f0;margin-top:5px}.campus-admin{left:8%;top:15%}.campus-warehouse{right:7%;top:16%}.campus-utility{left:8%;bottom:14%}.campus-plant{right:8%;bottom:13%}.campus-main{left:50%;top:52%;transform:translate(-50%,-50%);border-color:#24bfe6;box-shadow:0 0 0 1px rgba(36,191,230,.3),0 8px 25px rgba(0,0,0,.28)}.campus-kpis{display:grid;grid-template-columns:repeat(5,1fr);margin-top:9px;border:1px solid var(--demo-line);border-radius:6px;overflow:hidden;background:#111f27}.campus-kpis>div{padding:11px 13px;border-right:1px solid var(--demo-line)}.campus-kpis>div:last-child{border-right:0}.campus-kpis span,.campus-kpis strong{display:block}.campus-kpis span{font-size:10px;color:#83a0ac}.campus-kpis strong{font-size:13px;color:#fff;margin-top:5px}.ok-text{color:var(--demo-green)!important}.warn-text{color:var(--demo-yellow)!important}.bad-text{color:var(--demo-red)!important}
.one-line-card{height:610px;position:relative;padding:18px}.one-line-svg{width:100%;height:100%}.ol-wire line{stroke:#9babb2;stroke-width:2.5}.ol-node circle,.ol-node rect{stroke:#e6edf0;stroke-width:2;fill:#13232c}.ol-node path{stroke:#e6edf0;stroke-width:2}.ol-text text{fill:#d9e6eb;font-size:13px;text-anchor:middle;font-weight:700}.ol-live circle{fill:var(--demo-green);stroke:#07151d;stroke-width:3}.one-line-live-card{position:absolute;right:28px;top:28px;width:180px;padding:13px;background:#0c1b22;border:1px solid #315160;border-radius:7px}.one-line-live-card span,.one-line-live-card strong,.one-line-live-card small{display:block}.one-line-live-card span{font-size:10px;color:#8ca5af}.one-line-live-card strong{font-size:20px;margin:6px 0;color:#54cdec}.one-line-live-card small{color:#7ed9a5}
.switchgear-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:14px}.switchgear-visual{min-height:470px}.gear-lineup{display:grid;grid-template-columns:repeat(6,1fr);gap:2px;padding:40px 28px 25px}.gear-cell{height:230px;border:1px solid #48616b;background:linear-gradient(90deg,#98a1a4,#d1d4d2 45%,#8e989b);position:relative;color:#0a151b;text-align:center;padding-top:16px;font-size:11px}.gear-cell i{display:block;width:36px;height:48px;border:2px solid #34444b;border-radius:3px;margin:35px auto 23px;background:#5d6e75}.gear-cell b{display:inline-block;background:#174d3c;color:#74efad;padding:4px 7px;border-radius:3px;font-size:9px}.gear-metrics{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--demo-line)}.gear-metrics>div{padding:15px;border-right:1px solid var(--demo-line)}.gear-metrics span,.gear-metrics strong{display:block}.gear-metrics span{font-size:10px;color:#86a2ad}.gear-metrics strong{margin-top:6px;color:#fff}.dark-table{width:100%;border-collapse:collapse}.dark-table th,.dark-table td{padding:13px 16px;border-bottom:1px solid #223b47;font-size:11px;text-align:left}.dark-table th{color:#7f9ca7;text-transform:uppercase;font-size:9px;letter-spacing:.05em}.dark-table td{color:#dce8ec}.dark-table small{display:block;color:#718e99;margin-top:3px}.dark-select{height:34px;border:1px solid #34505c;background:#10202a;color:#d8e7ec;border-radius:5px;padding:0 10px;font-size:11px}
.system-diagram{height:480px;position:relative}.sys-node{position:absolute;width:190px;height:125px;border:1px solid #35525e;background:#0f2028;border-radius:9px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.sys-node strong{font-size:12px;color:#eef8fa}.sys-node span{font-size:11px;color:#5bd78f;margin-top:5px}.node-icon{font-size:38px;color:#71b8d4;margin-bottom:7px}.node-led{position:absolute;right:12px;top:12px}.node-led.offline{background:var(--demo-yellow);box-shadow:none}.server-node{left:15%;top:50%;transform:translateY(-50%)}.database-node{left:50%;top:50%;transform:translate(-50%,-50%)}.meter-node{right:15%;top:50%;transform:translateY(-50%)}.sys-link{position:absolute;top:50%;height:2px;background:#738991}.link-a{left:calc(15% + 190px);right:50%}.link-b{left:50%;right:calc(15% + 190px)}.sys-link span{position:absolute;top:-4px;left:50%;width:9px;height:9px;border-radius:50%;background:var(--demo-green)}.system-status-grid{display:grid;grid-template-columns:repeat(4,1fr);margin-top:10px;border:1px solid var(--demo-line);border-radius:6px;overflow:hidden}.system-status-grid>div{padding:14px;background:#111f27;border-right:1px solid var(--demo-line)}.system-status-grid span,.system-status-grid strong{display:block}.system-status-grid span{font-size:10px;color:#82a0ac}.system-status-grid strong{font-size:12px;margin-top:5px;color:#eef7f9}
.dashboard-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.gauge-card{min-height:160px;background:linear-gradient(180deg,#142832,#102029);border:1px solid var(--demo-line);border-radius:8px;padding:22px;display:flex;flex-direction:column;justify-content:center}.gauge-card span{color:#87a5b1;font-size:11px}.gauge-card strong{font-size:30px;color:#52c8e6;margin:11px 0 4px}.gauge-card small{color:#6f8d99}.dashboard-bottom{display:grid;grid-template-columns:1.7fr 1fr;gap:12px;margin-top:12px}.status-list>div{display:flex;justify-content:space-between;padding:14px 16px;border-bottom:1px solid #223b47;font-size:11px}.status-list span{color:#87a4af}.status-list strong{color:#e9f4f7}
.trend-controls{display:flex;gap:8px}.trend-panel{height:560px}.trend-title{height:58px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid var(--demo-line)}.trend-title strong{font-size:12px}.trend-title span{font-size:10px;color:#81a3af}.trend-chart-wrap{height:calc(100% - 58px);padding:18px}.alarm-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:12px}.alarm-summary>div{padding:17px;background:#11232c;border:1px solid var(--demo-line);border-radius:7px}.alarm-summary span,.alarm-summary strong{display:block}.alarm-summary span{font-size:10px;color:#82a0ac}.alarm-summary strong{font-size:24px;margin-top:5px}.no-alarm-row td{text-align:center!important;padding:70px 20px!important}.no-alarm-row strong,.no-alarm-row small{display:block}.no-alarm-row strong{margin:10px 0 4px;color:#dff5e8}.no-alarm-row small{color:#7897a3}.alarm-ok-icon{display:inline-grid;place-items:center;width:42px;height:42px;border:1px solid #2a8358;border-radius:50%;color:var(--demo-green);font-size:20px}.severity-high{color:#ff8888!important}
/* darken existing reports/admin */
.demo-theme .page-heading h1{color:#f1f7f9}.demo-theme .page-heading p,.demo-theme .last-updated{color:var(--demo-muted)}.demo-theme .panel,.demo-theme .metric-card{background:#12232c;border-color:var(--demo-line);box-shadow:none;color:#eaf4f7}.demo-theme .panel-header{border-color:var(--demo-line)}.demo-theme .panel-header h2{color:#eaf4f7}.demo-theme .panel-header h2 span,.demo-theme .panel-subtitle,.demo-theme .metric-sub,.demo-theme .report-header span,.demo-theme .report-note{color:#82a0ac}.demo-theme .metric-card{background:#12232c}.demo-theme .metric-value{color:#4bc9e9}.demo-theme .report-mode-tabs button,.demo-theme .range-buttons button,.demo-theme .secondary-button{background:#13252e;border-color:#34505c;color:#dce9ed}.demo-theme .report-mode-tabs button.active,.demo-theme .range-buttons button.active,.demo-theme .primary-button{background:#1687b5;border-color:#1687b5;color:white}.demo-theme .control-group label{color:#8ca6b0}.demo-theme .control-group input,.demo-theme .control-group select,.demo-theme .report-controls input,.demo-theme .admin-form-grid input,.demo-theme .device-grid input,.demo-theme .device-grid select,.demo-theme .measurement-grid input,.demo-theme .measurement-grid select{background:#0d1d24;border-color:#34505c;color:#e6f1f4}.demo-theme .report-table th,.demo-theme .report-table td,.demo-theme .tenant-table th,.demo-theme .tenant-table td{border-color:#223b47;color:#dbe8ec}.demo-theme .report-table thead th,.demo-theme .tenant-table th{background:#10232c;color:#87a3ae}.demo-theme .report-table tfoot th,.demo-theme .meter-subtotal td,.demo-theme .meter-subtotal th,.demo-theme .meter-group-row td{background:#10232c;color:#dce9ed}.demo-theme .admin-form-grid label,.demo-theme .device-grid label,.demo-theme .measurement-grid label{color:#8fa9b4}.demo-theme .device-card{background:#102129;border-color:#2c4854}.demo-theme .device-card-head{background:#14303d;border-color:#2c4854}.demo-theme .measurement-section{border-color:#2c4854}.demo-theme .admin-savebar{background:#102129;border-color:#2c4854;color:#b6cbd3}.demo-theme .danger-button{background:#26191c;border-color:#744048;color:#ff9da4}.demo-theme .global-message{background:#291b1e;border-color:#78454a;color:#ffadb2}
/* fix commissioning row wrapping */
.demo-theme .measurement-row{grid-template-columns:1.35fr .8fr .72fr .85fr .85fr .85fr 1.15fr .65fr 34px;align-items:end}.demo-theme .measurement-row .danger-button{width:34px;height:34px;padding:0;align-self:end}.demo-theme .device-grid{grid-template-columns:1.4fr 1fr 1fr 1.2fr .55fr .6fr 1.3fr .65fr .7fr}
.demo-login{background:radial-gradient(circle at 20% 15%,#173647,#07151d 60%)}.login-backdrop-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(72,148,177,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(72,148,177,.06) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.8),transparent)}.demo-login-card{width:min(420px,92vw);padding:38px 40px 0;background:#101e25;border:1px solid #29424e;color:#eef7f9;box-shadow:0 28px 80px rgba(0,0,0,.46)}.generic-login-icon{width:50px;height:50px;border:1px solid #3e6574;border-radius:12px;display:grid;place-items:center;margin:0 auto 18px;color:#52c8e6;font-size:28px}.demo-login-card h1{color:#fff;font-size:28px}.demo-login-card .login-intro{color:#8ea8b3}.demo-login-card label{color:#dce8ec}.demo-login-card input,.demo-login-card input#loginUsername{background:#0b171d;color:#edf7f9;border-color:#34505c}.demo-login-card .login-footer{background:#0c181f;border-color:#29414c;color:#b6c9d0}.demo-login-card .login-footer span{color:#718e99}.secure-dot{width:10px;height:10px;border-radius:50%;background:var(--demo-green)}
@media(max-width:1100px){.demo-sidebar{width:180px}.demo-main{margin-left:180px}.demo-topbar{grid-template-columns:220px 1fr auto}.campus-callout{min-width:120px}.switchgear-grid,.dashboard-bottom{grid-template-columns:1fr}.dashboard-kpi-grid{grid-template-columns:repeat(2,1fr)}.system-diagram{height:650px}.server-node{left:50%;top:18%;transform:translate(-50%,-50%)}.database-node{left:50%;top:50%;transform:translate(-50%,-50%)}.meter-node{left:50%;right:auto;top:82%;transform:translate(-50%,-50%)}.sys-link{left:50%;right:auto;width:2px;height:auto}.link-a{top:calc(18% + 62px);bottom:50%}.link-b{top:50%;bottom:calc(18% - 62px)}}
@media(max-width:760px){.demo-topbar{left:0;grid-template-columns:1fr auto}.top-live{display:none}.demo-sidebar{position:static;width:100%;padding:65px 8px 8px;min-height:auto}.side-nav{display:grid;grid-template-columns:repeat(2,1fr)}.side-status{display:none}.demo-main{margin-left:0;padding:18px 10px}.campus-stage{height:520px}.campus-callout{font-size:10px;min-width:105px}.campus-kpis,.system-status-grid{grid-template-columns:1fr 1fr}.dashboard-kpi-grid{grid-template-columns:1fr 1fr}.switchgear-grid{grid-template-columns:1fr}.gear-lineup{padding:24px 12px;overflow:auto}.gear-cell{min-width:75px}.demo-heading{align-items:flex-start;flex-direction:column}.trend-controls{width:100%}.trend-controls select{flex:1}.demo-theme .device-grid,.demo-theme .measurement-row{grid-template-columns:1fr 1fr}.demo-theme .measurement-row .danger-button{width:100%}}
@media(max-width:900px){.maintenance-grid{grid-template-columns:1fr}}
@media print{.demo-sidebar,.demo-topbar{display:none!important}.demo-main{margin:0;padding:0}.demo-theme{background:white;color:black}.demo-theme .panel{background:white;color:black}}

/* v0.7.0 navigation and commissioning refinements */
.demo-topbar{grid-template-columns:205px 1fr auto}.top-nav{height:58px;display:flex;align-items:stretch;gap:26px;justify-self:start}.top-nav .tab-button{height:58px;color:#a9c2cc;border:0;border-bottom:3px solid transparent;padding:0 2px;border-radius:0;font-size:12px}.top-nav .tab-button:hover{color:#fff}.top-nav .tab-button.active{color:#fff;border-bottom-color:var(--demo-cyan);background:transparent}.top-actions{justify-self:end}.demo-sidebar{justify-content:space-between}.side-bottom{margin-top:auto}.setup-nav{margin-top:10px!important;border-top:1px solid #2a4b59!important;padding-top:14px!important}.side-status{margin-top:0}.campus-reference{object-fit:contain;background:#e9eef0}.campus-stage{background:#182832}.campus-main{top:56%}
.refined-one-line{position:relative;min-height:610px}.refined-one-line .one-line-svg{height:610px}.ol-data{position:absolute;z-index:4;min-width:145px;padding:9px 12px;background:#0a1b23;border:1px solid #31515e;border-radius:6px;box-shadow:0 8px 18px rgba(0,0,0,.25)}.ol-data span,.ol-data strong,.ol-data small{display:block}.ol-data span{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#7e9ba7}.ol-data strong{font-size:13px;color:#52c8e6;margin:4px 0 2px}.ol-data small{font-size:10px;color:#9fb5be}.ol-utility{left:57%;top:8%}.ol-switch{left:58%;top:38%}.ol-meter{left:54%;bottom:4%}.ol-load{left:20%;bottom:4%}.one-line-live-card{display:none}
.system-flow{min-height:480px}.sys-node{width:205px;height:145px}.sys-link{height:3px;background:linear-gradient(90deg,#56737f,#8ea8b2)}.sys-link em{position:absolute;top:10px;left:50%;transform:translateX(-50%);white-space:nowrap;color:#6f929f;font-size:9px;font-style:normal}.server-icon{width:52px;height:42px;display:flex;flex-direction:column;gap:5px}.server-icon span{display:block;height:9px;border:1px solid #64a8c1;border-radius:2px;background:#173544}.database-icon{width:54px;height:46px;position:relative}.database-icon i{display:block;width:50px;height:13px;margin:-2px auto 0;border:2px solid #64a8c1;border-radius:50%;background:#173544}.meter-icon{width:54px;height:48px;border:2px solid #64a8c1;border-radius:5px;display:grid;grid-template-columns:repeat(3,1fr);align-items:center;padding:3px;background:#102d3a}.meter-icon b{font-size:8px;color:#80d9ee}
.maintenance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}.maintenance-card{padding:18px}.maintenance-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.maintenance-head span,.maintenance-facts span{display:block;color:#82a0ac;font-size:10px;text-transform:uppercase;letter-spacing:.06em}.maintenance-head h2{margin:4px 0 0;color:#eef7f9;font-size:16px}.maintenance-card>p{color:#9eb2bb;font-size:12px;line-height:1.5;margin:12px 0}.maintenance-badge{border:1px solid #3e5964;border-radius:999px;padding:6px 9px;color:#b6c8cf;font-size:10px;white-space:nowrap}.maintenance-badge.success{border-color:#2f8059;color:#6fe0a2}.maintenance-badge.running,.maintenance-badge.busy{border-color:#8b6c2c;color:#f0c96a}.maintenance-badge.failed{border-color:#85484a;color:#ff9898}.maintenance-facts{display:grid;grid-template-columns:repeat(2,1fr);border:1px solid var(--demo-line);border-radius:7px;overflow:hidden}.maintenance-facts>div{padding:11px;border-right:1px solid var(--demo-line);border-bottom:1px solid var(--demo-line)}.maintenance-facts strong{display:block;color:#edf6f8;font-size:11px;margin-top:4px}.maintenance-actions{display:flex;align-items:center;gap:10px;margin-top:14px;flex-wrap:wrap}.maintenance-actions button{width:auto}.maintenance-actions span{font-size:11px;color:#8faab4}
.trend-point-picker{min-width:330px;max-width:520px;max-height:120px;overflow:auto;display:flex;flex-wrap:wrap;gap:6px;padding:5px;background:#0c1c24;border:1px solid #34505c;border-radius:6px}.trend-check{display:flex;align-items:center;gap:6px;padding:5px 8px;background:#132a35;border-radius:4px;cursor:pointer;font-size:10px;color:#d8e7ec}.trend-check input{accent-color:#22b8d9}.trend-check span,.trend-check small{display:block}.trend-check small{color:#72909c;font-size:8px;margin-top:1px}.trend-controls{align-items:flex-start}.trend-controls .dark-select{height:38px}
.display-target-label select[multiple]{min-height:84px;padding:4px}.display-target-label{grid-column:span 2}.demo-theme .measurement-row{grid-template-columns:1.2fr .65fr .6fr .75fr .75fr .75fr 1fr .55fr 1.5fr 34px}.user-create-grid{display:grid;grid-template-columns:1fr 1.2fr 1fr .7fr auto;gap:10px;padding:16px;align-items:end}.user-create-grid label{font-size:10px;color:#8fa9b4}.user-create-grid input,.user-create-grid select{display:block;width:100%;height:38px;margin-top:6px;background:#0d1d24;border:1px solid #34505c;color:#e6f1f4;border-radius:6px;padding:0 9px}.comtrade-upload{padding:18px;display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end}.comtrade-upload label{font-size:11px;color:#8ca6b0}.comtrade-upload input{display:block;margin-top:7px;width:100%;background:#0d1d24;border:1px solid #34505c;border-radius:6px;color:#dce9ed;padding:8px}.compact-value{font-size:22px!important;word-break:break-word}
@media(max-width:1100px){.demo-topbar{grid-template-columns:180px 1fr auto}.top-nav{gap:14px}.trend-point-picker{min-width:220px}.user-create-grid{grid-template-columns:1fr 1fr}.demo-theme .measurement-row{grid-template-columns:1fr 1fr}.display-target-label{grid-column:span 2}}

/* v0.8.0 EPMS-style one-lines hierarchy and customer-supplied imagery */
body:not(.onelines-active) .oneline-subnav,body:not(.onelines-active) .side-label{display:none}.demo-sidebar{top:58px}.demo-main{padding-top:78px}.exact-campus{height:min(590px,64vh);overflow:hidden;background:#182832}.exact-campus-image{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#eef2f4}.campus-callout{border:1px solid #335363;color:#eaf5f8;background:rgba(7,24,33,.96);cursor:pointer;text-align:left}.campus-callout:hover{border-color:#48cce9;box-shadow:0 0 0 1px rgba(72,204,233,.2)}.exact-campus .campus-admin{left:7%;top:16%}.exact-campus .campus-warehouse{right:7%;top:17%}.exact-campus .campus-utility{left:7%;bottom:15%}.exact-campus .campus-plant{right:7%;bottom:15%}.exact-campus .campus-main{left:50%;top:55%;transform:translate(-50%,-50%)}
.asset-overview{position:relative;min-height:620px;overflow:hidden}.equipment-photo{width:100%;height:100%;object-fit:contain;display:block}.asset-overview .equipment-photo{position:absolute;inset:0;background:#f1f3f4}.asset-overlay{position:absolute;z-index:3;padding:12px 15px;border:1px solid #31b8d7;border-radius:7px;background:rgba(7,25,34,.95);min-width:180px}.asset-overlay span,.asset-overlay strong,.asset-overlay small{display:block}.asset-overlay span{font-size:10px;color:#87a8b4}.asset-overlay strong{font-size:18px;color:#fff;margin:4px 0}.asset-overlay small{color:#67d6ed}.asset-main-kpi{left:50%;bottom:14%;transform:translateX(-50%)}.asset-main-status{right:4%;top:5%}.photo-switchgear{grid-template-columns:minmax(0,1.7fr) minmax(300px,.65fr)}.switchgear-photo-panel{position:relative;min-height:610px;padding:0;overflow:hidden}.switchgear-photo-panel .equipment-photo{height:610px;background:#f3f4f5}.switchgear-photo-tag{position:absolute;left:20px;bottom:20px;background:rgba(7,24,33,.95);border:1px solid #34bfdc;border-radius:6px;padding:11px 14px}.switchgear-photo-tag strong,.switchgear-photo-tag span{display:block}.switchgear-photo-tag span{margin-top:4px;color:#6ce6a6}.large-status-list>div{padding:19px 0}.large-status-list strong{font-size:18px}.wide-action{width:100%;margin-top:20px}
.reference-one-line{position:relative;min-height:660px;overflow:hidden;background:#0d1c25}.one-line-reference-image{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.one-line-value{position:absolute;z-index:4;min-width:145px;padding:7px 10px;border:1px solid #38bad8;border-radius:5px;background:rgba(8,27,37,.94);color:#eaf7fa;text-align:center}.one-line-value strong,.one-line-value small{display:block}.one-line-value strong{font-size:13px;color:#5bd8f2}.one-line-value small{font-size:9px;color:#9db4bd;margin-top:2px}.one-line-value[type=button]{cursor:pointer}.one-line-value[type=button]:hover{border-color:#79e8ff}.ct-utility{left:8%;top:17%}.ct-xfmr{left:19%;top:31%}.ct-main{left:42%;top:43%}.ct-mcc{left:13%;top:66%}.ct-hvac{left:31%;top:66%}.ct-light{left:49%;top:66%}.ct-spare{left:67%;top:75%}
.meter-tabs{display:flex;gap:4px;margin-bottom:12px;border-bottom:1px solid #29444f}.meter-tabs button{border:0;border-bottom:3px solid transparent;background:transparent;color:#8ca8b3;padding:10px 14px;cursor:pointer}.meter-tabs button.active{color:#fff;border-bottom-color:#43c9e5}.main-meter-layout{display:grid;grid-template-columns:280px 1fr;gap:14px}.meter-identity{min-height:430px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.meter-device-icon{width:112px;height:128px;border:2px solid #57bdd8;border-radius:8px;background:#102c38;display:grid;grid-template-columns:repeat(3,1fr);align-content:center;gap:6px;padding:15px;margin-bottom:18px}.meter-device-icon span{display:grid;place-items:center;height:30px;border:1px solid #496b78;border-radius:4px;color:#68d6ed;font-weight:700}.meter-identity>strong{font-size:20px}.meter-identity>small{color:#7e9da8;margin-top:5px}.meter-primary{margin-top:28px;padding-top:18px;border-top:1px solid #2c4853;width:100%}.meter-primary span,.meter-primary strong{display:block}.meter-primary span{color:#7e9da8;font-size:10px}.meter-primary strong{font-size:24px;color:#5cd9f1;margin-top:6px}.meter-measure-grid{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr));gap:10px}.meter-measure{padding:15px;background:#0d1f28;border:1px solid #294652;border-radius:6px}.meter-measure span,.meter-measure strong,.meter-measure small{display:block}.meter-measure span{font-size:10px;color:#87a5b0}.meter-measure strong{font-size:17px;color:#eef8fa;margin:6px 0}.meter-measure small{font-size:9px;color:#62cce5;text-transform:capitalize}
.ct-summary-grid{grid-template-columns:repeat(4,1fr)}.ct-wave-panel{margin-top:14px}.ct-toolbar{padding:12px 16px;display:grid;grid-template-columns:minmax(300px,1.7fr) repeat(4,minmax(120px,.6fr)) 100px;gap:10px;align-items:end}.ct-toolbar label{font-size:9px;color:#86a3ae}.ct-toolbar input[type=range]{width:100%;display:block;margin-top:8px;accent-color:#38bddb}.ct-channel-picker{max-height:105px;overflow:auto;display:flex;flex-wrap:wrap;gap:5px}.ct-channel-check{display:flex!important;align-items:center;gap:6px;background:#0d2029;border:1px solid #294a57;border-radius:5px;padding:5px 8px!important;color:#dce9ed!important;cursor:pointer}.ct-channel-check span,.ct-channel-check small{display:block}.ct-channel-check small{font-size:8px;color:#71919e}.ct-cursor-readout{padding:7px;border:1px solid #31515d;border-radius:5px;text-align:center}.ct-cursor-readout span,.ct-cursor-readout strong{display:block}.ct-cursor-readout span{font-size:8px;color:#7898a4}.ct-cursor-readout strong{color:#63d9ef;margin-top:3px}.ct-chart-wrap{height:480px;padding:8px 14px 18px}
@media(max-width:1200px){.photo-switchgear,.main-meter-layout{grid-template-columns:1fr}.switchgear-photo-panel{min-height:480px}.switchgear-photo-panel .equipment-photo{height:480px}.meter-measure-grid{grid-template-columns:repeat(2,1fr)}.ct-toolbar{grid-template-columns:1fr 1fr 1fr}.ct-channel-picker{grid-column:1/-1}.ct-summary-grid{grid-template-columns:repeat(2,1fr)}}

/* v0.8.1 presentation corrections */
.one-line-reading{position:absolute;z-index:4;min-width:100px;padding:0;background:transparent;border:0;color:#65dcf4;text-align:center;pointer-events:none}.one-line-reading strong,.one-line-reading small{display:block;text-shadow:0 1px 2px #061016}.one-line-reading strong{font-size:13px}.one-line-reading small{font-size:9px;margin-top:2px}.one-line-reading[type=button]{pointer-events:auto;cursor:pointer}.ct-utility{left:7.5%;top:18.3%}.ct-xfmr{left:20%;top:34.7%}.ct-main{left:42.3%;top:47.4%}.ct-mcc{left:13.1%;top:71.7%}.ct-hvac{left:31.4%;top:71.7%}.ct-light{left:49.7%;top:71.7%}.ct-spare{left:68.2%;top:82.5%}
.meter-summary-row{display:grid;grid-template-columns:135px repeat(3,1fr);gap:8px;margin-bottom:10px}.meter-device-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:185px}.meter-device-tile .meter-device-icon{width:98px;height:130px;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:9px;border:2px solid #8098a2;background:transparent;margin:0 0 8px}.meter-device-tile .meter-device-icon span{height:auto;border:1px solid #8098a2;position:relative}.meter-device-tile .meter-device-icon span:before{content:'';width:7px;height:7px;border-radius:50%;background:#5bd78f;position:absolute;top:7px;left:50%;transform:translateX(-50%)}.meter-summary-card{border-top:3px solid #53bce2;border-radius:0;padding:12px}.meter-summary-card h3{font-size:13px;margin:0 0 8px}.meter-summary-card>div{display:flex;justify-content:space-between;border-bottom:1px solid #344953;padding:8px 0;color:#a9bdc5}.meter-summary-card strong{color:#f1f8fa}.phase-display{padding:22px 145px}.phase-display>div{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;align-items:center;min-height:118px;border-bottom:7px solid #e8f0f2;font-size:31px}.phase-display>div:last-child{border-bottom:0}.phase-display span{font-size:30px;color:#f1f5f6}.phase-display strong{font-size:31px;color:#53baf0;font-weight:500;text-align:center}
.system-flow .sys-link{z-index:1}.system-flow .sys-node{z-index:3}.link-a{left:calc(15% + 205px);right:calc(50% + 103px)}.link-b{left:calc(50% + 103px);right:calc(15% + 205px)}
\n/* v0.8.3: align live readings with the value windows baked into the supplied one-line image. */
.reference-one-line{
  position:relative;
  width:min(100%,1500px);
  aspect-ratio:1672 / 941;
  min-height:0;
  margin:0 auto;
  overflow:hidden;
  background:#0d1c25;
}
.one-line-reference-image{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;display:block}
.one-line-reading{
  position:absolute;z-index:4;min-width:0;padding:0;margin:0;
  border:0!important;background:transparent!important;box-shadow:none!important;
  color:#65dcf4;text-align:center;pointer-events:none;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  line-height:1.05;overflow:hidden;
}
.one-line-reading strong{display:block;font-size:clamp(9px,.78vw,13px);color:#65dcf4;text-shadow:0 1px 2px #061016;white-space:nowrap}
.one-line-reading small{display:block;font-size:clamp(7px,.58vw,10px);color:#9ddfec;margin-top:2px;text-shadow:0 1px 2px #061016;white-space:nowrap}
.one-line-reading[type=button]{pointer-events:auto;cursor:pointer}
/* Coordinates below match the blank cyan value windows in one-line-reference.png (1672 x 941). */
.ct-utility{left:8.15%;top:15.35%;width:11.95%;height:5.35%}
.ct-xfmr{left:23.05%;top:33.00%;width:10.05%;height:5.25%}
.ct-main{left:41.45%;top:48.25%;width:19.60%;height:5.55%}
.ct-mcc{left:12.95%;top:68.55%;width:11.55%;height:5.30%}
.ct-hvac{left:33.15%;top:68.55%;width:11.45%;height:5.30%}
.ct-light{left:52.75%;top:68.55%;width:11.95%;height:5.30%}
.ct-spare{left:70.80%;top:83.25%;width:11.35%;height:5.30%}

/* v0.8.5: preserve the supplied one-line artwork at its native 1672:941 proportions. */
.reference-one-line{
  width:100%;
  max-width:none;
  height:auto!important;
  aspect-ratio:1672 / 941!important;
  min-height:0!important;
}
.one-line-reference-image{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center center;
}

/* v0.8.6 prominent meter polling control */
.device-title-wrap{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.poll-state{font-size:10px;font-weight:800;padding:4px 8px;border-radius:999px;border:1px solid}.poll-state.enabled{color:#79efad;border-color:#2f8f62;background:#123426}.poll-state.disabled{color:#ffc071;border-color:#8d6130;background:#352616}.enable-polling,.disable-polling{border-radius:7px;padding:7px 10px;font-weight:800;cursor:pointer}.enable-polling{background:#143c2d;border:1px solid #2c9b68;color:#81f3b5}.disable-polling{background:#37291b;border:1px solid #a8793d;color:#ffd08b}.enable-polling:hover{background:#185039}.disable-polling:hover{background:#49351f}


/* v0.8.7 commissioning usability */
.target-picker{grid-column:span 2;position:relative;align-self:end}.target-picker>summary{list-style:none;cursor:pointer;min-height:38px;border:1px solid #355766;border-radius:6px;background:#0d2029;padding:7px 10px;display:flex;justify-content:space-between;align-items:center;gap:12px;color:#dcebf0}.target-picker>summary::-webkit-details-marker{display:none}.target-picker>summary span{font-size:9px;color:#88a8b4;text-transform:uppercase;letter-spacing:.03em}.target-picker>summary strong{font-size:10px;color:#62d8ef}.target-picker[open]>summary{border-color:#43c8e4}.target-picker-menu{position:absolute;z-index:50;right:0;top:calc(100% + 5px);width:min(620px,90vw);max-height:430px;overflow:auto;padding:12px;background:#0b1b24;border:1px solid #3c6473;border-radius:8px;box-shadow:0 18px 45px rgba(0,0,0,.45);display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:10px}.target-picker-menu fieldset{border:1px solid #294854;border-radius:6px;padding:8px;margin:0}.target-picker-menu legend{padding:0 5px;color:#5bd5ee;font-size:10px;font-weight:800}.target-check{display:flex!important;flex-direction:row!important;align-items:center!important;gap:8px;padding:6px!important;border-radius:4px;color:#d6e6eb!important;font-size:10px!important;cursor:pointer}.target-check:hover{background:#14303c}.target-check input{width:auto!important;margin:0;accent-color:#41c8e3}
.alarm-rule-editor{display:grid;gap:8px}.alarm-rule-row{display:grid;grid-template-columns:minmax(240px,1.4fr) 80px minmax(120px,.6fr) 80px minmax(120px,.6fr) 120px;gap:10px;align-items:end;padding:12px;border:1px solid #294955;border-radius:7px;background:#0c1e27}.alarm-rule-source strong,.alarm-rule-source span{display:block}.alarm-rule-source strong{color:#eef8fa}.alarm-rule-source span{font-size:9px;color:#7698a5;margin-top:4px}.alarm-rule-row label{font-size:9px;color:#8da9b4}.alarm-rule-row input,.alarm-rule-row select{margin-top:5px}.alarm-enable{display:flex!important;flex-direction:row!important;align-items:center!important;gap:6px;padding-bottom:9px}.alarm-enable input{width:auto!important;margin:0!important;accent-color:#42c8e3}.admin-savebar{position:sticky;bottom:0;z-index:30;box-shadow:0 -8px 25px rgba(4,13,18,.35)}
@media(max-width:1200px){.target-picker{grid-column:1/-1}.target-picker-menu{grid-template-columns:1fr}.alarm-rule-row{grid-template-columns:1fr 100px 1fr 100px 1fr}.alarm-rule-source{grid-column:1/-1}}

/* v0.8.8 scrollable Meters & Devices commissioning area */
.meters-devices-panel #deviceEditor{max-height:640px;overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable;padding-bottom:8px}
.meters-devices-panel #deviceEditor::-webkit-scrollbar{width:12px}
.meters-devices-panel #deviceEditor::-webkit-scrollbar-track{background:#0d1d24;border-left:1px solid #294652}
.meters-devices-panel #deviceEditor::-webkit-scrollbar-thumb{background:#496975;border:3px solid #0d1d24;border-radius:10px}
.meters-devices-panel #deviceEditor::-webkit-scrollbar-thumb:hover{background:#5d8391}
.meters-devices-panel .panel-header{position:relative;z-index:2}
@media(max-height:800px){.meters-devices-panel #deviceEditor{max-height:480px}}

/* v0.8.9: true contained scrollbar for Meters & Devices */
.meters-devices-panel{
  height:min(650px,68vh);
  min-height:420px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
.meters-devices-panel>.panel-header{
  flex:0 0 auto;
}
.meters-devices-panel #deviceEditor{
  flex:1 1 auto;
  min-height:0;
  max-height:none;
  overflow-y:scroll;
  overflow-x:hidden;
  scrollbar-gutter:stable;
  padding-right:10px;
  padding-bottom:18px;
  overscroll-behavior:contain;
}
.meters-devices-panel #deviceEditor::-webkit-scrollbar{width:14px}
.meters-devices-panel #deviceEditor::-webkit-scrollbar-track{background:#081820;border:1px solid #294652;border-radius:10px}
.meters-devices-panel #deviceEditor::-webkit-scrollbar-thumb{background:#5b7e8b;border:3px solid #081820;border-radius:10px}
.meters-devices-panel #deviceEditor::-webkit-scrollbar-thumb:hover{background:#74a1b0}
@media(max-height:800px){
  .meters-devices-panel{height:520px;min-height:360px}
  .meters-devices-panel #deviceEditor{max-height:none}
}


/* v0.9.0 compact polling field + register-centric alarm configuration */
.demo-theme .device-grid .poll-seconds-field{max-width:105px;justify-self:start}
.demo-theme .device-grid .poll-seconds-field input{width:92px;min-width:0}
.alarm-source-picker{display:grid;grid-template-columns:minmax(340px,1.3fr) minmax(360px,1fr);gap:12px;padding:14px;border:1px solid #294955;border-radius:8px;background:#0c1e27;margin-bottom:10px}
.alarm-source-picker>label{font-size:10px;color:#8da9b4}.alarm-source-picker select{display:block;width:100%;margin-top:6px;background:#0d1d24;border:1px solid #34505c;border-radius:6px;color:#e6f1f4;padding:9px 10px}
.alarm-source-details{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.alarm-source-details span{display:flex;flex-direction:column;padding:8px 10px;border:1px solid #27434e;border-radius:6px;background:#10232c;color:#e6f1f4;font-size:11px}.alarm-source-details strong{font-size:8px;text-transform:uppercase;letter-spacing:.05em;color:#799ba8;margin-bottom:4px}
.alarm-target-context{grid-column:1/-1;padding-top:2px}.alarm-target-context>strong{display:block;font-size:9px;color:#7fa0ac;margin-bottom:7px;text-transform:uppercase;letter-spacing:.04em}.alarm-target-context>div{display:flex;gap:6px;flex-wrap:wrap}.alarm-target-chip{display:inline-block;padding:5px 7px;border:1px solid #2f6070;border-radius:999px;background:#112c37;color:#79dff1;font-size:9px}.alarm-target-empty{font-size:10px;color:#7898a4;font-style:italic}
.alarm-rule-selected{grid-template-columns:minmax(145px,.8fr) minmax(170px,1fr) minmax(145px,.8fr) minmax(170px,1fr) minmax(130px,.7fr)}
.alarm-engineering-note{padding:8px 3px 0;color:#7897a3;font-size:9px}
@media(max-width:1100px){.alarm-source-picker{grid-template-columns:1fr}.alarm-source-details,.alarm-target-context{grid-column:1}.alarm-rule-selected{grid-template-columns:1fr 1fr}.alarm-rule-selected label:last-child{grid-column:1/-1}.demo-theme .device-grid .poll-seconds-field{max-width:none}.demo-theme .device-grid .poll-seconds-field input{width:100%}}

/* v0.9.1 COMTRADE engineering analysis + branded installer */
.ct-cursor-readout small{display:block;margin-top:3px;color:#9ab4bd;font-size:8px}
.ct-engineering-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}
.ct-event-content{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:16px}
.ct-event-content>div{border:1px solid #294955;border-radius:7px;background:#0c1e27;padding:11px 12px;min-height:72px}
.ct-event-content span{display:block;color:#7e9da8;font-size:9px;text-transform:uppercase;letter-spacing:.05em;margin-bottom:7px}
.ct-event-content strong{display:block;color:#eef8fa;font-size:14px}
.ct-cursor-panel .report-table-wrap{max-height:280px;overflow:auto}.ct-cursor-panel small{color:#7596a2}
.ct-rms-panel{margin-top:14px}.ct-rms-chart-wrap{height:330px;padding:10px 16px 18px}
.ct-sequence-values{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:16px}.ct-seq-group{border:1px solid #294955;border-radius:7px;background:#0c1e27;padding:12px}.ct-seq-group strong,.ct-seq-group span,.ct-seq-group small{display:block}.ct-seq-group strong{color:#61d8ef;margin-bottom:8px}.ct-seq-group span{color:#edf7f9;margin:5px 0}.ct-seq-group small{color:#819da7;margin-top:8px}.ct-no-data{grid-column:1/-1;padding:12px;color:#7898a4;font-size:11px}
.ct-phasor-wrap{min-height:330px;display:grid;place-items:center;padding:10px}.ct-phasor-wrap canvas{width:100%;max-width:520px;height:auto;background:#0b1b24;border:1px solid #294955;border-radius:8px}
.ct-event-marker-legend{display:flex;gap:16px;padding:0 16px 14px;color:#87a4ae;font-size:9px}.ct-event-marker-legend span{display:flex;align-items:center;gap:6px}.ct-event-marker-legend i{display:inline-block;width:16px;height:7px;border-radius:2px}.ct-event-marker-legend .pre{background:#294955}.ct-event-marker-legend .event{background:rgba(229,72,77,.5)}.ct-event-marker-legend .post{background:#315b48}
@media(max-width:1100px){.ct-engineering-grid{grid-template-columns:1fr}.ct-event-content{grid-template-columns:repeat(2,1fr)}.ct-sequence-values{grid-template-columns:1fr}}
/* MeterSight licensing / branding */
.metersight-login-logo{display:block;width:min(300px,78%);height:auto;margin:0 auto 18px}.activation-card{max-width:640px;text-align:left}.activation-card h1,.activation-card .login-intro{text-align:center}.activation-request{margin:20px 0;padding:16px;border:1px solid var(--line);border-radius:12px;background:rgba(6,25,34,.45)}.activation-request h2,.activation-import-heading{margin:0 0 12px;color:var(--text);font-size:15px}.activation-device{padding:10px 12px;border:1px solid var(--line);border-radius:8px;display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:12px}.activation-device strong{color:var(--text);font-weight:700}.activation-machine-id{margin-top:10px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;color:var(--muted);font-size:12px}.activation-machine-id span{display:flex;justify-content:space-between;gap:10px}.activation-machine-id small{color:var(--muted)}.activation-machine-id code{display:block;width:100%;margin-top:8px;color:var(--text);font:700 13px/1.65 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.035em;overflow-wrap:anywhere;word-break:break-all;user-select:all}.activation-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.activation-actions button{width:100%;min-height:40px}.activation-help{margin:10px 0 0;color:var(--muted);font-size:11px;line-height:1.5}.activation-import-heading{margin-top:18px}.login-view .form-message:not(:empty){margin-top:12px}.app-title{letter-spacing:.01em}@media(max-width:620px){.activation-actions{grid-template-columns:1fr}.activation-card{max-width:94vw}}

/* v0.11.7 activation experience */
.demo-theme .activation-card{width:min(680px,calc(100vw - 32px));max-width:680px;max-height:calc(100vh - 32px);overflow-y:auto;padding:30px 34px 32px;background:#f8fafc;border:1px solid rgba(255,255,255,.7);border-radius:22px;color:#132235;box-shadow:0 32px 90px rgba(0,0,0,.48)}
.activation-header{text-align:center}.activation-header .metersight-login-logo{width:220px;max-width:64%;margin:0 auto 22px}.activation-kicker{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:#e7f7fb;color:#087795;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.demo-theme .activation-card h1{margin:12px 0 8px;color:#132235;font-size:31px;line-height:1.1;letter-spacing:-.025em}.demo-theme .activation-card .login-intro{max-width:520px;margin:0 auto;color:#5b6b7f;font-size:14px;line-height:1.55}.activation-offline-note{display:flex;align-items:center;justify-content:center;gap:8px;margin:18px 0;color:#426274;font-size:12px}.activation-offline-note span{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#dcfce7;color:#16854c;font-weight:900}.activation-step{padding:18px;border:1px solid #dbe5ec;border-radius:14px;background:#fff;box-shadow:0 5px 18px rgba(18,42,58,.05)}.activation-request{margin:0 0 14px}.activation-import{margin:0}.activation-step-heading{display:grid;grid-template-columns:32px 1fr;gap:11px;align-items:start;margin-bottom:15px}.activation-step-number{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#153a4a;color:#fff;font-size:14px;font-weight:900}.demo-theme .activation-step-heading h2{margin:1px 0 3px;color:#17283a;font-size:15px;line-height:1.25}.demo-theme .activation-step-heading p{margin:0;color:#6b7b8d;font-size:11px;line-height:1.45}.activation-device{min-height:43px;padding:10px 12px;border-color:#d9e3e9;background:#f8fafc;color:#718095;font-size:11px}.activation-device strong{color:#17283a;font-size:12px}.activation-machine-id{margin-top:9px;padding:11px 12px;border-color:#cbd9e1;background:#f1f7fa;color:#65788a}.activation-machine-id span{font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.activation-machine-id small{color:#8093a4;font-weight:600;letter-spacing:0;text-transform:none}.activation-machine-id code{margin-top:7px;color:#0d3447;font:800 12px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.055em}.activation-actions{gap:9px;margin-top:11px}.demo-theme .activation-actions button{height:42px;min-height:42px;border-radius:8px;font-size:12px}.demo-theme .activation-actions .secondary-button{background:#fff;border:1px solid #2b6073;color:#164153}.demo-theme .activation-actions .secondary-button:hover{background:#edf7fa}.activation-download-button{border:1px solid #153a4a;background:#153a4a;color:#fff;font-weight:800;cursor:pointer}.activation-download-button:hover{background:#0d2f3e}.demo-theme .activation-help{margin:9px 0 0;color:#718295;font-size:10px}.activation-file-label{margin:0 0 11px!important;color:#3d5265!important}.demo-theme .activation-card input[type=file]{width:100%;height:auto;min-height:48px;padding:5px;border:1px dashed #aebfca;border-radius:9px;background:#f7fafc;color:#5b6d7f;font-size:12px}.activation-card input[type=file]::file-selector-button{height:36px;margin-right:12px;padding:0 14px;border:0;border-radius:7px;background:#e6f1f5;color:#173e4e;font-weight:800;cursor:pointer}.demo-theme .activation-card #activateButton{height:46px;margin:0;background:#168bb7;border-color:#168bb7;border-radius:9px;font-size:14px}.demo-theme .activation-card #activateButton:hover{background:#117ca5}.demo-theme .activation-card .form-message:not(:empty){padding:10px 12px;border:1px solid #f0b8bc;border-radius:8px;background:#fff1f2;color:#a5222a}.activation-card::-webkit-scrollbar{width:8px}.activation-card::-webkit-scrollbar-thumb{background:#c0ced6;border-radius:99px}
@media(max-width:620px){.demo-theme .activation-card{width:min(94vw,680px);max-height:calc(100vh - 20px);padding:24px 18px}.activation-header .metersight-login-logo{width:190px;margin-bottom:18px}.demo-theme .activation-card h1{font-size:26px}.activation-offline-note{font-size:11px}.activation-step{padding:15px}.activation-actions{grid-template-columns:1fr}.activation-machine-id code{font-size:11px}}


/* v0.9.9 product polish: horizontal brand, tabbed commissioning, full-width target assignment, and engineering meter screens */
.metersight-header-logo{display:block;height:36px;width:auto;max-width:176px;object-fit:contain;object-position:left center}.app-title{display:flex;align-items:center;min-width:0;width:max-content;background:#fff;border-radius:8px;padding:3px 8px;box-shadow:0 0 0 1px rgba(255,255,255,.12)}
.admin-tabs{display:flex;gap:6px;margin:0 0 14px;padding:5px;background:#0c1e27;border:1px solid #294955;border-radius:9px;position:sticky;top:70px;z-index:22}.admin-tabs button{border:1px solid transparent;border-radius:6px;background:transparent;color:#8facb7;padding:10px 15px;font-weight:800;cursor:pointer}.admin-tabs button:hover{background:#112b36;color:#dff5f8}.admin-tabs button.active{background:#153946;border-color:#43c8e4;color:#7ee9f8}.admin-tab-panel{display:none}.admin-tab-panel.active-admin-panel{display:block}
.admin-tab-panel .meters-devices-panel{height:auto;min-height:0;overflow:visible;display:block}.admin-tab-panel .meters-devices-panel #deviceEditor{max-height:none;height:auto;overflow:visible;padding-right:0}.admin-tab-panel .device-card{overflow:visible}.admin-tab-panel .measurement-section{overflow:visible}.admin-tab-panel .measurements{overflow:visible}
.device-profile-box{margin:14px 0;padding:14px;border:1px solid #284754;border-radius:10px;background:#0b2029}.device-profile-row{display:grid;grid-template-columns:minmax(250px,2fr) repeat(2,minmax(150px,1fr)) auto;gap:10px;align-items:end}.device-profile-row label{min-width:0}.profile-notice{display:grid;grid-template-columns:auto 1fr;gap:5px 12px;margin-top:12px;padding:10px 12px;border-radius:8px;background:#102e39;color:#c8d9df}.profile-notice strong{color:#65d7a8}.profile-notice.lab-validation strong{color:#f2bd59}.profile-notice.map-required strong{color:#ff8a8a}.profile-notice small{grid-column:2;color:#809aa5}.profile-notice span{line-height:1.4}@media(max-width:900px){.device-profile-row{grid-template-columns:1fr}.profile-notice{grid-template-columns:1fr}.profile-notice small{grid-column:1}}
.profile-notice.firmware-map strong{color:#7cc8ff}
.admin-tab-panel .target-picker{grid-column:1/-1;position:static;width:100%;margin-top:2px}.admin-tab-panel .target-picker>summary{min-height:42px}.admin-tab-panel .target-picker-menu{position:static!important;width:100%!important;max-height:none!important;margin-top:7px;box-shadow:none;grid-template-columns:repeat(4,minmax(180px,1fr));overflow:visible}.admin-tab-panel .target-picker-menu fieldset{min-width:0}.admin-tab-panel .measurement-row{grid-template-columns:1.3fr .65fr .65fr .8fr .8fr .8fr 1.15fr .55fr 34px}.admin-tab-panel .measurement-row>.target-picker{grid-column:1/-1}.admin-tab-panel .remove-measurement{grid-column:9;grid-row:1}.admin-savebar{margin-top:14px}
.photo-switchgear{grid-template-columns:minmax(0,1.45fr) minmax(420px,.72fr);gap:18px}.photo-switchgear>article:last-child{min-width:0}.large-status-list strong{white-space:nowrap;font-size:clamp(16px,1.25vw,22px)}
.meter-group-panel{display:none}.meter-group-panel.active-meter-group{display:block}.meter-engineering-shell{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(400px,1.6fr) minmax(300px,1.05fr) minmax(220px,.75fr);gap:16px;padding:20px;min-height:540px}.meter-eng-block{border:1px solid #31515e;border-radius:7px;background:#0c1e27;padding:16px;min-width:0}.meter-eng-block h3,.pq-card h3,.energy-card h3,.io-layout h3{margin:0 0 14px;color:#eaf6f8;font-size:14px}.meter-stack{display:grid;gap:10px}.meter-stack>div,.meter-side-stats>div,.power-totals>div{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px}.meter-eng-block span,.phase-row b,.energy-table b,.pq-value-grid span,.io-table span{color:#9ab3bd;font-size:11px}.meter-eng-block strong,.phase-row strong,.pq-value-grid strong,.energy-table strong,.peak-grid strong,.io-table strong{display:block;min-height:38px;border:1px solid #40bddd;background:#102b36;border-radius:4px;padding:9px 10px;color:#eefcff;text-align:center;font-size:14px}.total-row{padding-top:12px;margin-top:8px;border-top:1px solid #31515e}.phase-column-head,.phase-row{display:grid;grid-template-columns:48px 1fr 1fr;gap:10px;align-items:center}.phase-column-head{padding:0 0 8px 48px;color:#9ab3bd;font-size:11px}.phase-column-head span{text-align:center}.phase-row{margin-bottom:9px}.phase-row b{font-size:13px;color:#e9f6f9}.muted-row{opacity:.82}.power-totals{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.three-col{grid-template-columns:repeat(3,1fr);display:grid}.three-col>div{display:block}.three-col span{display:block;margin-bottom:6px;text-align:center}.line-neutral-total{display:grid!important;grid-template-columns:1fr auto!important;align-items:center}.meter-side-stats{display:grid;align-content:start;gap:11px}.meter-side-stats>div{grid-template-columns:1fr}.meter-side-stats span{margin-bottom:4px}.meter-side-stats strong{text-align:left}.volts-ln-block{align-self:end}
.pq-layout{display:grid;grid-template-columns:1.1fr 1.3fr;gap:16px;padding:20px}.pq-card{border:1px solid #31515e;border-radius:7px;background:#0c1e27;padding:16px}.pq-value-grid{display:grid;grid-template-columns:repeat(2,minmax(120px,1fr));gap:9px 14px}.pq-value-grid>div{display:grid;grid-template-columns:70px 1fr;gap:8px;align-items:center}.pq-large-value{display:grid;grid-template-columns:1fr minmax(140px,.5fr);align-items:center;gap:14px}.pq-large-value strong{min-height:40px;border:1px solid #40bddd;background:#102b36;border-radius:4px;padding:10px;text-align:center}.pq-card:nth-child(3){grid-column:1}.pq-card:nth-child(4){grid-column:2}.pq-card:nth-child(5){grid-column:2}
.energy-demand-layout{display:grid;grid-template-columns:minmax(430px,.9fr) minmax(520px,1.25fr);gap:22px;padding:20px}.energy-card{border:1px solid #31515e;border-radius:7px;background:#0c1e27;padding:18px}.energy-table{display:grid;gap:8px}.energy-table>div{display:grid;grid-template-columns:80px repeat(3,1fr);gap:9px;align-items:center}.energy-head span{text-align:center;color:#7fc8db!important;font-weight:800}.energy-table strong{min-height:38px}.subhead{border-top:1px solid #31515e;padding-top:18px;margin-top:22px!important}.peak-grid{display:grid;grid-template-columns:70px 150px 1fr;gap:9px;align-items:center}.peak-grid span{color:#9ab3bd}.peak-grid small{color:#88a7b2}.io-layout{padding:20px}.io-layout h4{margin:18px 0 8px;color:#dceef2}.io-table{display:grid;gap:7px}.io-table>div{display:grid;gap:8px;align-items:center}.io-inputs>div{grid-template-columns:1.5fr .7fr .7fr 1.2fr}.io-outputs>div{grid-template-columns:1.4fr .6fr .6fr 1fr 1fr 1fr}.io-head{padding:0 4px}.io-data-row{border-top:1px solid #294955;padding-top:7px}.io-data-row>span{font-weight:700;color:#e6f4f7}.io-data-row strong{min-height:36px}
@media(max-width:1300px){.admin-tab-panel .target-picker-menu{grid-template-columns:repeat(2,minmax(200px,1fr))}.meter-engineering-shell{grid-template-columns:1fr 1.4fr}.meter-side-stats,.volts-ln-block{align-self:stretch}.pq-layout,.energy-demand-layout{grid-template-columns:1fr}.pq-card:nth-child(n){grid-column:auto}.photo-switchgear{grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr)}}
@media(max-width:900px){.metersight-header-logo{height:34px;max-width:145px}.admin-tabs{overflow-x:auto}.admin-tab-panel .target-picker-menu{grid-template-columns:1fr}.admin-tab-panel .measurement-row{grid-template-columns:1fr 1fr}.admin-tab-panel .remove-measurement{grid-column:auto;grid-row:auto}.meter-engineering-shell{grid-template-columns:1fr}.pq-layout,.energy-demand-layout{padding:12px}.energy-table>div{grid-template-columns:62px repeat(3,minmax(90px,1fr));overflow-x:auto}.photo-switchgear{grid-template-columns:1fr}.io-table{overflow-x:auto}.io-table>div{min-width:720px}}

/* v0.10.0 MeterSight UI / reporting update */
.app-title{background:transparent!important;padding:0!important;box-shadow:none!important;border-radius:0!important}.metersight-header-logo{height:40px;max-width:200px}
.phase-column-head{padding-left:0!important;grid-template-columns:48px 1fr 1fr!important}.phase-column-head span{text-align:center}

.switchgear-workspace{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:18px;padding:18px;min-height:650px}.switchgear-lineup-wrap{position:relative;min-height:600px;background:#eef1f2;border-radius:8px;overflow:hidden}.switchgear-lineup-image{width:100%;height:100%;object-fit:contain;display:block}.breaker-hotspots{position:absolute;inset:0;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,1fr);padding:5% 7% 5% 7%;gap:.4%}.breaker-hotspot{border:1px solid transparent;background:transparent;color:transparent;cursor:pointer;position:relative}.breaker-hotspot:hover,.breaker-hotspot:focus{border-color:#47d4ef;background:rgba(35,178,211,.12);outline:none}.breaker-hotspot::after{content:attr(data-label);position:absolute;top:3px;left:7px;color:#fff;background:rgba(4,19,27,.8);border-radius:4px;padding:2px 5px;font-size:10px;opacity:0}.breaker-hotspot:hover::after,.breaker-hotspot:focus::after{opacity:1}.switchgear-sidebar,.ol-summary-sidebar{display:grid;align-content:start;gap:14px}.switchgear-sidebar section,.ol-summary-sidebar section,.ol-system-status{border:1px solid #294a57;border-radius:8px;background:#0d2029;overflow:hidden}.switchgear-sidebar h3,.ol-summary-sidebar h3{margin:0;padding:13px 14px;border-bottom:1px solid #294a57;color:#e7f5f8;font-size:12px;text-transform:uppercase}.gear-legend{display:grid;gap:12px;padding:14px;color:#c7dbe1;font-size:11px}.energized-line{color:#61df70}.summary-list>div,.alarm-summary-list>div{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:10px 14px;border-top:1px solid #223f4b}.summary-list>div:first-child,.alarm-summary-list>div:first-child{border-top:0}.summary-list span,.alarm-summary-list span{color:#9ab3bd;font-size:10px}.summary-list strong,.alarm-summary-list strong{color:#f2fbfd;font-size:13px}.severity-high span{color:#ff6464}.severity-medium span{color:#ffb84d}.severity-low span{color:#ffd95a}

.breaker-modal{position:fixed;inset:0;z-index:500;background:rgba(2,9,13,.75);display:grid;place-items:center;padding:20px}.breaker-modal.hidden{display:none}.breaker-modal-card{position:relative;width:min(700px,92vw);background:#0c1e27;border:1px solid #3d6070;border-radius:12px;box-shadow:0 28px 80px rgba(0,0,0,.5);padding:20px}.breaker-modal-card h2{margin:0 0 16px;color:#f0f9fb}.breaker-modal-close{position:absolute;right:12px;top:10px;background:transparent;border:0;color:#cce2e8;font-size:28px;cursor:pointer}.breaker-modal-body{display:grid;grid-template-columns:1fr 1fr;gap:18px}.breaker-modal-body img{width:100%;height:260px;object-fit:cover;object-position:center;border-radius:8px;border:1px solid #294955}.breaker-detail-values{border:1px solid #294955;border-radius:8px;overflow:hidden}

.smart-oneline{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:18px;padding:18px;min-height:720px}.ol-network{position:relative;min-height:680px}.ol-card{position:absolute;border:1px solid #365461;border-radius:8px;background:#0d2029;color:#eaf6f8;padding:12px 14px;box-sizing:border-box}.ol-card h3{margin:0 0 8px;text-align:center;font-size:13px}.ol-icon{font-size:26px;color:#b9d4dc;float:left;margin-right:10px}.ol-values{display:grid;gap:4px;min-width:120px}.ol-values>div{display:grid;grid-template-columns:1fr auto;gap:10px}.ol-values span{color:#62cbe5;font-size:9px}.ol-values strong{color:#edf8fa;font-size:10px}.utility-card{left:1%;top:2%;width:190px}.xfmr-card{left:22%;top:19%;width:180px}.main-card{left:43%;top:30%;width:210px;cursor:pointer}.main-card:hover{border-color:#5de1fa}.ol-line{position:absolute;background:#7fd65f}.utility-to-xfmr{left:17%;top:12%;width:10%;height:2px;transform:rotate(35deg);transform-origin:left}.xfmr-to-main{left:35%;top:33%;width:12%;height:2px;transform:rotate(18deg);transform-origin:left}.ol-breaker{position:absolute;color:#9ee36d;font-size:24px}.brk-a{left:27%;top:13%}.ol-bus{position:absolute;left:10%;right:5%;top:55%;height:2px;background:#91db61}.ol-branches{position:absolute;left:5%;right:2%;top:55%;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.ol-branch{position:relative;padding-top:30px;min-height:295px}.branch-line{position:absolute;left:50%;top:0;width:2px;height:32px;background:#91db61}.branch-line.lower{top:166px;height:30px}.branch-card{position:relative!important;left:auto!important;top:auto!important;width:100%;min-height:140px}.load-card{position:absolute!important;left:0!important;right:0!important;top:195px!important;width:100%;height:72px;text-align:center}.load-card strong{color:#8ddff1}.ol-summary-sidebar{align-self:start}.ol-system-status{padding:12px 14px;text-align:center}.ol-system-status span,.ol-system-status strong{display:block}.ol-system-status span{font-size:9px;text-transform:uppercase;color:#9ab3bd}.ol-system-status strong{margin-top:4px;color:#61dc73}

.report-action-row{display:flex;gap:8px;align-items:center}.energy-controls{display:flex;flex-wrap:wrap;gap:12px;padding:16px}.energy-controls label{display:grid;gap:5px;color:#8daab5;font-size:10px}.energy-controls input,.energy-controls select{min-width:160px;height:40px;background:#0d1d24;border:1px solid #34505c;border-radius:6px;color:#e6f1f4;padding:0 10px}.report-parameter-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#294955}.report-parameter-grid>div{background:#10232c;padding:12px}.report-parameter-grid span,.report-parameter-grid strong{display:block}.report-parameter-grid span{font-size:9px;color:#84a4af}.report-parameter-grid strong{margin-top:5px;color:#e7f4f7}.energy-report-chart-wrap{height:340px;padding:15px}.printable-report{display:grid;gap:14px}

@media(max-width:1100px){.switchgear-workspace,.smart-oneline{grid-template-columns:1fr}.switchgear-sidebar,.ol-summary-sidebar{grid-template-columns:repeat(3,1fr)}.breaker-modal-body{grid-template-columns:1fr}.report-parameter-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.switchgear-sidebar,.ol-summary-sidebar{grid-template-columns:1fr}.report-parameter-grid{grid-template-columns:1fr}.smart-oneline{overflow-x:auto}.ol-network{min-width:850px}}
@media print{body.print-comtrade .top-bar,body.print-comtrade .side-nav,body.print-comtrade #reportModeTabs,body.print-comtrade .comtrade-upload,body.print-comtrade #comtradeMessage,body.print-energy .top-bar,body.print-energy .side-nav,body.print-energy #reportModeTabs,body.print-energy .energy-report-controls{display:none!important}body.print-comtrade #reportsView,body.print-energy #reportsView{display:block!important;margin:0!important;padding:0!important}body.print-comtrade #energyReportPanel,body.print-energy #comtradeReportPanel{display:none!important}body.print-comtrade #comtradeReportPanel,body.print-energy #energyReportPanel{display:block!important}body.print-comtrade .panel,body.print-energy .panel{break-inside:avoid;color:#111;background:#fff;border-color:#bbb}body.print-comtrade .report-table th,body.print-comtrade .report-table td,body.print-energy .report-table th,body.print-energy .report-table td{color:#111;border-color:#ccc}body.print-energy .energy-report-chart-wrap{height:300px}}

/* v0.10.1: customer-supplied switchgear artwork and one-line routing */
.switchgear-workspace{grid-template-columns:minmax(0,1fr) 250px;align-items:start}
.switchgear-lineup-wrap{background:#071721;min-height:0;aspect-ratio:734/577;border-radius:8px}
.switchgear-lineup-image{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}
.breaker-hotspots{padding:0;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,1fr);gap:0}
.breaker-hotspot{border-radius:2px}
.breaker-modal-card{width:min(650px,92vw)}
.breaker-modal-body{grid-template-columns:minmax(180px,.72fr) minmax(260px,1fr);align-items:center}
.breaker-modal-body img{height:auto;max-height:360px;object-fit:contain;background:#13242d;padding:8px}

/* Reproduce the customer's one-line routing: horizontal utility feed, vertical drop
   through the utility breaker, transformer, meter, main breaker, then horizontal bus. */
.smart-oneline{grid-template-columns:minmax(0,1fr) 250px;min-height:720px}
.ol-network{min-height:680px}
.utility-card{left:1%;top:2%;width:190px}
.xfmr-card{left:22%;top:19%;width:180px}
.main-card{left:43%;top:26%;width:210px}
.utility-to-xfmr{left:14.5%;top:11.5%;width:9.5%;height:2px;transform:none}
.brk-a{left:24.1%;top:10.1%}
/* vertical utility breaker drop into transformer */
.brk-a::before{content:"";position:absolute;left:50%;top:-24px;width:2px;height:24px;background:#7fd65f;transform:translateX(-50%)}
.brk-a::after{content:"";position:absolute;left:50%;top:23px;width:2px;height:58px;background:#7fd65f;transform:translateX(-50%)}
/* transformer exits vertically then horizontally into main meter */
.xfmr-to-main{left:29%;top:38.4%;width:16.2%;height:2px;transform:none}
.xfmr-to-main::before{content:"";position:absolute;left:0;bottom:0;width:2px;height:28px;background:#7fd65f}
/* main meter drops directly to the bus through the main breaker */
.main-card::after{content:"";position:absolute;left:50%;top:100%;width:2px;height:76px;background:#7fd65f;transform:translateX(-50%);z-index:-1}
.brk-main{left:50%;top:52.7%;transform:translateX(-50%);z-index:5}
.ol-bus{left:8%;right:5%;top:57%;height:2px}
.ol-branches{left:3.5%;right:2%;top:57%;grid-template-columns:repeat(4,1fr);gap:18px}
.ol-branch{padding-top:30px;min-height:300px}
.branch-line{height:32px}
.branch-card{min-height:140px}
.branch-breaker{left:50%;top:166px;transform:translateX(-50%);z-index:5}
.branch-line.lower{top:185px;height:26px}
.load-card{top:210px!important;height:92px}
/* spare has no lower load/breaker, matching the supplied one-line */
.ol-branch:last-child .branch-card{min-height:140px}
.ol-summary-sidebar{gap:0}
.ol-summary-sidebar>section,.ol-system-status{border-radius:0;border-bottom:0}
.ol-system-status{border-radius:8px 8px 0 0}
.ol-summary-sidebar>section:last-child{border-bottom:1px solid #294a57;border-radius:0 0 8px 8px}


/* v0.10.2: high-resolution switchgear artwork + compact customer one-line layout */
.switchgear-lineup-wrap{aspect-ratio:1486/1150;background:#071721}
.switchgear-lineup-image{object-fit:contain;image-rendering:auto}
.breaker-modal-body img{max-height:390px;object-fit:contain;image-rendering:auto;background:#13242d;padding:6px}

/* Keep the entire engineering one-line visible on a normal 1080p workstation.
   The network remains live/interactive; only its presentation is scaled down. */
.smart-oneline{grid-template-columns:minmax(0,1fr) 238px;gap:12px;padding:12px;min-height:610px;overflow:auto}
.ol-network{min-height:600px;overflow:visible}
.ol-card{padding:9px 11px;border-radius:7px}
.ol-card h3{font-size:12px;margin-bottom:6px}
.ol-values{gap:2px;min-width:104px}
.ol-values span{font-size:8px}
.ol-values strong{font-size:9px}
.ol-icon{font-size:22px;margin-right:7px}
.utility-card{left:1%;top:2%;width:164px}
.xfmr-card{left:20.5%;top:18%;width:160px}
.main-card{left:41.5%;top:25%;width:188px}
.utility-to-xfmr{left:13.2%;top:10.8%;width:9.8%}
.brk-a{left:23.4%;top:9.2%;font-size:20px}
.brk-a::before{top:-21px;height:21px}
.brk-a::after{top:20px;height:47px}
.xfmr-to-main{left:27.8%;top:36.5%;width:15.4%}
.xfmr-to-main::before{height:23px}
.main-card::after{height:63px}
.brk-main{left:49.7%;top:50.8%;font-size:20px}
.ol-bus{left:7%;right:4%;top:54.5%}
.ol-branches{left:2%;right:1%;top:54.5%;gap:12px}
.ol-branch{padding-top:25px;min-height:260px}
.branch-line{height:27px}
.branch-card{min-height:121px;padding:8px 10px}
.branch-breaker{top:143px;font-size:19px}
.branch-line.lower{top:158px;height:23px}
.load-card{top:179px!important;height:68px;padding:8px 10px}
.ol-branch:last-child .branch-card{min-height:121px}
.ol-summary-sidebar{font-size:10px}
.ol-summary-sidebar h3{padding:10px 12px;font-size:11px}
.summary-list>div,.alarm-summary-list>div{padding:8px 12px}
.ol-system-status{padding:9px 12px}

@media(max-width:1400px) and (min-width:901px){
  .smart-oneline{grid-template-columns:minmax(900px,1fr) 225px;overflow-x:auto}
  .ol-network{min-width:900px}
}


/* v0.10.4: customer artwork lock, white header brand, energy dashboard, and exact one-line canvas */
.metersight-header-logo{height:40px;max-width:206px;object-fit:contain;object-position:left center}
.app-title{background:transparent!important;padding:0!important;box-shadow:none!important}

/* Main switchgear: use the supplied transparent lineup exactly; the legend was intentionally removed. */
.switchgear-workspace{grid-template-columns:minmax(0,1fr) 238px;gap:14px;align-items:start}
.switchgear-lineup-wrap{aspect-ratio:1448/1086;background:#07151d;border-radius:8px;min-height:0}
.switchgear-lineup-image{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;image-rendering:auto}
.switchgear-sidebar{gap:14px}
.switchgear-sidebar section{min-height:0}
.breaker-hotspots{padding:1.5% 1.8% 2% 1.8%;gap:.2%}

/* One-line artwork owns all geometry and conductor routing.
   MeterSight only overlays values in the blank value columns, preventing future layout drift. */
/* v0.10.5: lock live values into the blank value columns INSIDE each artwork box.
   Coordinates are derived from the native 1160 x 820 customer one-line image. */
.one-line-reference-shell{padding:14px;overflow:auto}
.one-line-image-stage{position:relative;width:min(100%,1160px);aspect-ratio:1160/820;margin:0 auto;background:#0a1220;overflow:hidden}
.one-line-static-art{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:contain}
.ol-live-stack{position:absolute;z-index:4;display:grid;grid-auto-rows:1fr;align-items:center;justify-items:stretch;color:#f4fbfd;text-align:right;pointer-events:none;overflow:visible}
.ol-live-stack strong{display:flex;align-items:center;justify-content:flex-end;width:100%;min-width:0;padding:0 2px;box-sizing:border-box;font-size:clamp(8px,.72vw,10.5px);line-height:1;font-weight:800;white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums;text-shadow:0 1px 2px #061016}
/* utility + transformer: wide right-aligned value columns that terminate at x≈228 */
.ol-live-utility{left:13.6%;top:7.3%;width:6.0%;height:12.2%}
.ol-live-xfmr{left:13.6%;top:28.05%;width:6.0%;height:12.2%}
/* main meter: wide right-aligned value column terminating at x≈528, six data rows */
.ol-live-main{left:38.8%;top:26.83%;width:6.7%;height:14.65%}
/* upper feeders: each value column ends comfortably before its card border */
.ol-live-mcc{left:17.7%;top:57.32%;width:5.6%;height:12.2%}
.ol-live-hvac{left:41.85%;top:57.32%;width:5.6%;height:12.2%}
.ol-live-lighting{left:65.98%;top:57.32%;width:5.6%;height:12.2%}
.ol-live-spare{left:90.1%;top:57.32%;width:5.6%;height:12.2%}
/* lower loads use the same in-box value columns as their upstream feeders */
.ol-live-mcc-load{left:17.7%;top:84.15%;width:5.6%;height:12.2%}
.ol-live-hvac-load{left:41.85%;top:84.15%;width:5.6%;height:12.2%}
.ol-live-lighting-load{left:65.98%;top:84.15%;width:5.6%;height:12.2%}
.one-line-main-hotspot{position:absolute;z-index:3;left:25.8%;top:21.9%;width:20.8%;height:20.8%;border:1px solid transparent;background:transparent;border-radius:7px;cursor:pointer}
.one-line-main-hotspot:hover,.one-line-main-hotspot:focus{border-color:#45d7f6;background:rgba(41,183,218,.07);outline:none}
.one-line-meter-status{display:none}

.one-line-ops-strip{display:grid;grid-template-columns:repeat(8,minmax(105px,1fr));gap:1px;margin-top:12px;border:1px solid #294955;border-radius:8px;overflow:hidden;background:#294955}
.one-line-ops-strip section{background:#0d2029;padding:10px 12px;min-width:0}
.one-line-ops-strip span,.one-line-ops-strip strong{display:block}.one-line-ops-strip span{color:#86a6b1;font-size:9px}.one-line-ops-strip strong{margin-top:3px;color:#eef9fb;font-size:12px;white-space:nowrap}
.one-line-alarm-strip{display:flex;align-items:center;gap:20px;margin-top:10px;padding:10px 14px;border:1px solid #294955;border-radius:8px;background:#0d2029;color:#8eabb5;font-size:10px}
.one-line-alarm-strip>span{font-weight:900;text-transform:uppercase;color:#d8edf2;margin-right:auto}
.one-line-alarm-strip>div{display:flex;gap:8px;align-items:center}.one-line-alarm-strip strong{color:#fff}

/* Production energy-dashboard styling for the data MeterSight has available. */
.dashboard-heading{align-items:center}.dashboard-date-chip{border:1px solid #294955;border-radius:9px;background:#0c1e27;padding:9px 13px;min-width:190px}.dashboard-date-chip span,.dashboard-date-chip strong{display:block}.dashboard-date-chip span{font-size:9px;color:#7e9aa5;text-transform:uppercase}.dashboard-date-chip strong{margin-top:3px;color:#e8f6f9;font-size:12px}
.energy-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.energy-kpi-card{display:grid;grid-template-columns:48px 1fr;gap:12px;align-items:center;min-height:116px;padding:16px;border:1px solid #294955;border-radius:10px;background:linear-gradient(180deg,#102636,#0b1c27);box-shadow:0 8px 22px rgba(0,0,0,.12)}
.kpi-icon{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#1f74e8;color:#fff;font-size:20px;box-shadow:0 0 0 5px rgba(47,125,246,.08)}
.energy-kpi-card:nth-child(2) .kpi-icon{background:#7b4bd4}.energy-kpi-card:nth-child(3) .kpi-icon{background:#52b936}.energy-kpi-card:nth-child(4) .kpi-icon{background:#e89017}
.energy-kpi-card span,.energy-kpi-card strong,.energy-kpi-card small{display:block}.energy-kpi-card span{font-size:10px;color:#b3c7ce}.energy-kpi-card strong{font-size:25px;color:#f3fbfd;margin:5px 0;font-variant-numeric:tabular-nums}.energy-kpi-card small{font-size:9px;color:#7f9ca6}
.dashboard-good{color:#52d86a!important}.dashboard-warn{color:#ffb24a!important}
.energy-dashboard-middle{display:grid;grid-template-columns:1.25fr .9fr;gap:14px;margin-bottom:14px}
.dashboard-chart-card,.dashboard-device-card,.dashboard-latest-panel{padding:0;overflow:hidden}
.dashboard-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:14px 16px;border-bottom:1px solid #284653}.dashboard-card-head h2{margin:0;color:#edf8fa;font-size:14px}.dashboard-card-head p{margin:4px 0 0;color:#7998a4;font-size:9px}.dashboard-pill{border:1px solid #31515e;border-radius:6px;padding:5px 10px;color:#b9d8df;font-size:9px;background:#102935}
.usage-comparison-chart{padding:12px 16px;display:grid;gap:10px;max-height:330px;overflow:auto}.usage-compare-row{display:grid;grid-template-columns:minmax(120px,.55fr) 1.45fr;gap:14px;align-items:center}.usage-compare-label strong,.usage-compare-label span{display:block}.usage-compare-label strong{color:#e5f3f6;font-size:10px}.usage-compare-label span{color:#7997a2;font-size:8px;margin-top:2px}.usage-bars{display:grid;gap:4px}.usage-bar-line{display:grid;grid-template-columns:30px 1fr 58px;align-items:center;gap:6px}.usage-bar-line>span{font-size:8px;color:#7895a0}.usage-bar-line>b{font-size:8px;color:#b8d0d7;text-align:right}.usage-bar{display:block;height:8px;max-width:100%;border-radius:4px;background:#607487}.usage-bar.current{background:#42bf4d}
.distribution-layout{display:grid;grid-template-columns:minmax(170px,.85fr) 1.15fr;gap:18px;align-items:center;padding:16px}.distribution-donut{width:min(210px,100%);aspect-ratio:1;border-radius:50%;margin:auto;position:relative;display:grid;place-items:center}.distribution-donut::after{content:"";position:absolute;inset:25%;border-radius:50%;background:#0d2029;border:1px solid #294955}.distribution-donut>div{position:relative;z-index:2;text-align:center}.distribution-donut strong,.distribution-donut span{display:block}.distribution-donut strong{color:#f1fbfd;font-size:23px}.distribution-donut span{color:#96adb6;font-size:9px}
.distribution-legend{display:grid;gap:8px}.distribution-legend>div{display:grid;grid-template-columns:10px 1fr auto;gap:8px;align-items:center}.distribution-legend i{width:9px;height:9px;border-radius:50%}.distribution-legend span{color:#b7cdd4;font-size:9px}.distribution-legend strong{color:#eef8fa;font-size:9px}
.dashboard-empty{padding:20px;color:#738f9a;font-size:10px;text-align:center}
.dashboard-device-table-wrap{overflow:auto}.dashboard-device-table{width:100%;border-collapse:collapse;min-width:850px}.dashboard-device-table th,.dashboard-device-table td{padding:9px 12px;border-bottom:1px solid #223e4a;text-align:left;font-size:9px}.dashboard-device-table th{color:#8daab4;font-weight:800}.dashboard-device-table td{color:#c6d9df}.dashboard-device-table td:nth-child(n+3){font-variant-numeric:tabular-nums}.dashboard-device-table td strong,.dashboard-device-table td small{display:block}.dashboard-device-table td strong{color:#eef8fa;font-size:10px}.dashboard-device-table td small{color:#7896a1;margin-top:2px}
.channel-status{display:inline-block;padding:4px 7px;border-radius:999px;background:#19323d;color:#91aab4}.channel-status.online{background:#123b2b;color:#67e092}.channel-status.waiting{background:#3c2d16;color:#ffc35b}
.dashboard-live-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1px;margin:14px 0;border:1px solid #294955;border-radius:8px;overflow:hidden;background:#294955}.dashboard-live-strip>div{background:#0d2029;padding:11px 12px;min-width:0}.dashboard-live-strip span,.dashboard-live-strip strong,.dashboard-live-strip small{display:block}.dashboard-live-strip span{font-size:8px;color:#7e9aa5}.dashboard-live-strip strong{font-size:13px;color:#ecf8fa;margin-top:3px;white-space:nowrap}.dashboard-live-strip small{font-size:8px;color:#68858f}
.dashboard-latest-panel{margin-bottom:20px}

@media(max-width:1250px){
  .energy-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .energy-dashboard-middle{grid-template-columns:1fr}
  .one-line-ops-strip{grid-template-columns:repeat(4,minmax(105px,1fr))}
}
@media(max-width:800px){
  .energy-kpi-grid{grid-template-columns:1fr}
  .dashboard-live-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .distribution-layout{grid-template-columns:1fr}
  .one-line-reference-shell{padding:8px}
  .one-line-image-stage{min-width:820px}
  .one-line-ops-strip{min-width:820px}
  .one-line-alarm-strip{min-width:820px}
}

/* v0.10.6 — 31-day trends, interval energy, ITIC events, and PQ commissioning. */
.ct-save-controls{display:flex;gap:8px;align-items:center}.ct-save-controls select{min-width:190px}.ct-save-controls .primary-button{white-space:nowrap}
.pq-test-row{display:flex;align-items:center;gap:12px;padding:12px 16px;border-top:1px solid #294955}.pq-test-result{color:#8fa9b4;font-size:10px}
.sftp-credential-editor{grid-column:1/-1;display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1fr) minmax(280px,1.4fr);gap:10px;align-items:end;padding:12px;border:1px solid #315865;border-radius:8px;background:#0a1a22}.sftp-credential-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:center}.sftp-credential-actions small{grid-column:1/-1;color:#76a3af;font-size:9px;line-height:1.4}.sftp-credential-actions button{min-height:36px}
.trend-heading{align-items:flex-start}.trend-heading .trend-point-picker{max-width:650px;max-height:150px}.trend-range-panel{display:grid;grid-template-columns:auto 1fr;gap:12px 20px;align-items:end;padding:14px 16px;margin-bottom:12px}.trend-quick-ranges{display:flex;gap:7px;flex-wrap:wrap}.trend-quick-ranges button{height:36px;padding:0 12px;border:1px solid #34505c;border-radius:6px;background:#10232c;color:#bcd1d8;font-size:10px;font-weight:800;cursor:pointer}.trend-quick-ranges button.active{background:#1687b5;border-color:#1eb3dc;color:#fff}.trend-custom-range{display:flex;gap:9px;align-items:end;justify-content:flex-end;flex-wrap:wrap}.trend-custom-range label,.pq-range-control label{display:flex;flex-direction:column;gap:5px;color:#8ca6b0;font-size:9px}.trend-custom-range input,.trend-custom-range select{height:36px;box-sizing:border-box;background:#0d1d24;border:1px solid #34505c;border-radius:6px;color:#e6f1f4;padding:0 9px}.trend-range-panel>.report-note{grid-column:1/-1;margin:0}.trend-panel{height:500px;margin-bottom:12px}.trend-table-panel{overflow:hidden;margin-bottom:20px}.trend-table-head{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:13px 16px;border-bottom:1px solid #294955}.trend-table-head strong,.trend-table-head span{display:block}.trend-table-head strong{color:#eef8fa;font-size:12px}.trend-table-head span{color:#7e9da8;font-size:9px;margin-top:3px}.trend-table-wrap{max-width:100%;overflow:auto}.trend-data-table{min-width:760px}.trend-data-table th small,.pq-event-table td small{display:block;margin-top:3px;color:#6f8f9b;font-size:8px;font-weight:500}.trend-pagination{display:flex;justify-content:flex-end;align-items:center;gap:10px;padding:10px 14px;border-top:1px solid #294955}.trend-pagination span{min-width:100px;text-align:center;color:#8faab4;font-size:9px}.trend-pagination button:disabled{opacity:.35;cursor:not-allowed}
.trend-picker-shell{width:min(760px,60vw)}.trend-picker-filters{display:grid;grid-template-columns:minmax(190px,1fr) 150px 150px auto auto;gap:6px;align-items:center;margin-bottom:6px}.trend-picker-filters input,.trend-picker-filters select{height:34px;box-sizing:border-box;background:#0d1d24;border:1px solid #34505c;border-radius:6px;color:#e6f1f4;padding:0 9px}.trend-picker-filters label{display:flex;align-items:center;gap:5px;color:#9db4bd;font-size:9px;white-space:nowrap}.trend-picker-filters button{height:34px}.trend-heading .trend-point-picker{max-width:none;min-width:0;width:100%;box-sizing:border-box}.trend-picker-empty{padding:8px;color:#7897a3;font-size:9px}@media(max-width:1100px){.trend-picker-shell{width:55vw}.trend-picker-filters{grid-template-columns:1fr 1fr}.trend-picker-filters input{grid-column:1/-1}}
.pq-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:12px}.pq-summary-grid>div{padding:16px;border:1px solid #294955;border-radius:8px;background:#11232c}.pq-summary-grid span,.pq-summary-grid strong{display:block}.pq-summary-grid span{color:#82a0ac;font-size:9px;text-transform:uppercase}.pq-summary-grid strong{margin-top:6px;color:#eef8fa;font-size:23px}.pq-summary-grid>div:last-child strong{font-size:12px}.pq-itic-panel,.pq-event-panel,.pq-waveform-panel,.pq-collector-panel{margin-bottom:12px;overflow:hidden}.pq-itic-chart-wrap{height:480px;padding:18px}.pq-reference-note{margin:0;padding:0 18px 14px;color:#7897a3;font-size:9px}.pq-event-table{min-width:1000px}.pq-waveform-table{min-width:900px}.itic-status,.waveform-classification{display:inline-block;padding:4px 8px;border-radius:999px;background:#15313d;color:#9fc5d0;font-size:8px;font-weight:900}.itic-status.safe-operation{background:#123b2b;color:#68e49a}.itic-status.prohibited{background:#4a2025;color:#ff9299}.itic-status.no-damage{background:#46361d;color:#ffc56b}.waveform-classification.normal{background:#123b2b;color:#68e49a}.waveform-classification.disturbance{background:#46361d;color:#ffc56b}.waveform-ready{color:#62dff4;font-weight:800}.pq-waveform-group th{padding:10px 16px;background:#0a202b;color:#b6d5e2;font-size:11px;letter-spacing:.08em;text-transform:uppercase;text-align:left;border-top:1px solid #294857}.pq-waveform-group th span{display:inline-flex;min-width:22px;height:22px;margin-left:7px;align-items:center;justify-content:center;border:1px solid #31596a;border-radius:999px;color:#62dff5;letter-spacing:0}.pq-collector-status{display:grid;gap:1px;background:#294955}.pq-collector-card{display:grid;grid-template-columns:1.1fr 1.25fr 1.25fr 1fr;gap:14px;padding:12px 16px;background:#0d2029;align-items:center}.pq-collector-card>div span,.pq-collector-card>div strong{display:block}.pq-collector-card>div span{color:#73919c;font-size:8px}.pq-collector-card>div strong{margin-top:3px;color:#dcebef;font-size:10px}
.pq-collection-editor{display:grid;gap:14px;padding:16px}.pq-config-card{border:1px solid #294955;border-radius:9px;background:#0c1e27;overflow:hidden}.pq-config-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid #294955;background:#102732}.pq-config-head strong,.pq-config-head span{display:block}.pq-config-head strong{color:#edf8fa;font-size:12px}.pq-config-head>div span{margin-top:3px;color:#7e9da8;font-size:9px}.pq-capability-badge{padding:5px 8px;border:1px solid #337083;border-radius:999px;color:#68d9ee!important;font-size:8px!important}.pq-config-grid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:10px;padding:14px}.pq-config-grid label{display:flex;flex-direction:column;gap:5px;color:#8da9b4;font-size:9px}.pq-config-grid input,.pq-config-grid select{width:100%;height:36px;box-sizing:border-box;background:#0d1d24;border:1px solid #34505c;border-radius:6px;color:#e6f1f4;padding:0 8px}.pq-config-grid .check-label{justify-content:center}.pq-config-grid .check-label input{width:auto;height:auto}.pq-config-capability{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:11px 14px;border-top:1px solid #294955;background:#0f252e}.pq-config-capability span,.pq-config-capability strong{display:block}.pq-config-capability span{color:#73919d;font-size:8px}.pq-config-capability strong{margin-top:3px;color:#d8e9ed;font-size:10px}.pq-config-capability p{grid-column:1/-1;margin:0;color:#7896a1;font-size:9px;line-height:1.45}
@media(max-width:1200px){.trend-range-panel{grid-template-columns:1fr}.trend-custom-range{justify-content:flex-start}.pq-config-grid{grid-template-columns:repeat(2,minmax(180px,1fr))}.pq-collector-card{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.pq-summary-grid{grid-template-columns:1fr 1fr}.pq-config-grid,.pq-config-capability,.pq-collector-card,.sftp-credential-editor{grid-template-columns:1fr}.pq-itic-chart-wrap{height:380px}.trend-custom-range{display:grid;grid-template-columns:1fr 1fr}.trend-custom-range .secondary-button{grid-column:1/-1}}

.event-detection-editor{display:grid;gap:14px;padding:16px}.event-detection-card{overflow:hidden;border:1px solid #294955;border-radius:9px;background:#0c1e27}.event-detection-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid #294955;background:#102732}.event-detection-head strong,.event-detection-head span{display:block}.event-detection-head strong{color:#edf8fa;font-size:12px}.event-detection-head>div span{margin-top:3px;color:#7e9da8;font-size:9px}.detector-mode{padding:5px 9px;border:1px solid #52636a;border-radius:999px;color:#9babb1!important;font-size:8px!important}.detector-mode.enabled{border-color:#21845e;color:#6ee7a8!important}.event-detection-grid{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:10px;padding:14px}.event-detection-grid label{display:flex;flex-direction:column;gap:5px;color:#8da9b4;font-size:9px}.event-detection-grid input{width:100%;height:36px;box-sizing:border-box;background:#0d1d24;border:1px solid #34505c;border-radius:6px;color:#e6f1f4;padding:0 8px}.event-detection-grid .check-label{justify-content:center}.event-detection-grid .check-label input{width:auto;height:auto}.event-detection-explainer{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;padding:12px 14px;border-top:1px solid #294955;color:#8da9b4;font-size:9px;line-height:1.5}.event-detection-explainer strong{color:#dcebed}.event-detection-explainer em{grid-column:2;color:#f0b45d;font-style:normal}.pq-detection-status{display:grid}.pq-detector-card{display:grid;grid-template-columns:1.4fr .7fr 1fr 1fr;gap:12px;padding:12px 16px;border-top:1px solid #294955;align-items:center}.pq-detector-card:first-child{border-top:0}.pq-detector-card>div span,.pq-detector-card>div strong{display:block}.pq-detector-card>div span{color:#7698a5;font-size:8px}.pq-detector-card>div strong{margin-top:3px;color:#e6f1f4;font-size:10px}.pq-detector-card.warning>div:nth-child(3) strong,.pq-detector-card.confirming>div:nth-child(3) strong{color:#f0b45d}.pq-detector-card.event>div:nth-child(3) strong{color:#ff7777}.pq-detector-card.normal>div:nth-child(3) strong{color:#6ee7a8}@media(max-width:1000px){.event-detection-grid{grid-template-columns:repeat(2,minmax(160px,1fr))}.pq-detector-card{grid-template-columns:1fr 1fr}}@media(max-width:650px){.event-detection-grid,.pq-detector-card{grid-template-columns:1fr}.event-detection-explainer{grid-template-columns:1fr}.event-detection-explainer em{grid-column:1}}

/* Archived Power Quality waveforms and clearer lower-envelope ITIC labeling. */
.itic-status.outside-ride-through{background:#46361d;color:#ffc56b}
button.waveform-ready{appearance:none;border:0;background:transparent;padding:0;color:#62dff4;font:inherit;font-weight:800;cursor:pointer}
button.waveform-ready:hover,button.waveform-ready:focus-visible{text-decoration:underline;color:#a6f2ff}
.admin-draft-status{color:#f3c35b;margin-left:.5rem}

/* Schneider PQ commissioning renderer. */
.pq-trap-guidance{margin:0;padding:0 14px 12px;color:#85a6b2;font-size:9px;line-height:1.5}
.notification-editor{display:grid;gap:12px;padding:16px}
.smtp-settings-grid{display:grid;grid-template-columns:1.4fr .55fr 1fr 1fr 1.2fr 1.8fr 1.3fr;gap:10px;align-items:end;padding:12px;border:1px solid #294955;border-radius:7px;background:#0a1a22}
.smtp-settings-grid label{display:flex;flex-direction:column;gap:5px;color:#8da9b4;font-size:9px}
.smtp-settings-grid input,.smtp-settings-grid select{height:36px;box-sizing:border-box;background:#0d1d24;border:1px solid #34505c;border-radius:6px;color:#e6f1f4;padding:0 9px;min-width:0}
.smtp-settings-grid>div{display:grid;gap:5px}.smtp-settings-grid small{color:#6f929e;font-size:8px;line-height:1.3}
.notification-controls{display:grid;grid-template-columns:minmax(220px,1fr) 190px auto auto;gap:10px;align-items:end}
.notification-controls>label{display:flex;flex-direction:column;gap:5px;color:#8da9b4;font-size:9px}
.notification-controls .check-label{flex-direction:row;align-items:center;align-self:center;gap:7px;font-size:10px;color:#d6e8ec}
.notification-controls .check-label input{width:auto;margin:0;accent-color:#42c8e3}
.notification-controls input[type="number"]{height:36px;box-sizing:border-box;background:#0d1d24;border:1px solid #34505c;border-radius:6px;color:#e6f1f4;padding:0 9px}
.notification-guidance{margin:0;padding:10px 12px;border:1px solid #294955;border-radius:7px;background:#0c1e27;color:#8eabb5;font-size:9px;line-height:1.5}
.notification-guidance code{color:#79dff1}
.notification-routing-head,.notification-recipient{display:grid;grid-template-columns:minmax(150px,1fr) minmax(210px,1.3fr) repeat(4,minmax(92px,.55fr)) 40px;gap:8px;align-items:center}
.notification-routing-head{padding:0 9px;color:#73929e;font-size:8px;text-transform:uppercase}
.notification-recipient{padding:9px;border:1px solid #294955;border-radius:7px;background:#0c1e27}
.notification-recipient>input:not([type="checkbox"]){width:100%;height:34px;box-sizing:border-box;background:#0d1d24;border:1px solid #34505c;border-radius:6px;color:#e6f1f4;padding:0 8px}
.notification-recipient label{display:flex;align-items:center;gap:6px;color:#a9c0c8;font-size:9px}.notification-recipient label input{width:auto;accent-color:#42c8e3}
.notification-status{padding:9px 11px;border-radius:6px;background:#102732;color:#8fb0bb;font-size:9px}
@media(max-width:1200px){.smtp-settings-grid{grid-template-columns:repeat(3,1fr)}.notification-controls{grid-template-columns:1fr 1fr}.notification-routing-head{display:none}.notification-recipient{grid-template-columns:1fr 1fr repeat(2,minmax(100px,.5fr))}.notification-recipient button{justify-self:end}}
@media(max-width:760px){.smtp-settings-grid,.notification-controls,.notification-recipient{grid-template-columns:1fr}.notification-recipient button{justify-self:start}}

/* Power Quality source-to-event relationship */
.pq-waveform-table{min-width:1080px}
.pq-event-relationship strong,.pq-event-relationship small,.pq-event-link strong,.pq-event-link small{display:block}
.pq-event-relationship small,.pq-event-link small{margin-top:3px;color:#7897a3;font-size:8px;font-weight:500}
.pq-event-relationship.normal strong{color:#68e49a}
.pq-event-relationship.unavailable strong{color:#ffc56b}
.pq-event-link{appearance:none;border:0;background:transparent;padding:0;color:#62dff4;font:inherit;text-align:left;cursor:pointer}
.pq-event-link:hover strong,.pq-event-link:focus-visible strong{text-decoration:underline;color:#a6f2ff}
.pq-event-table tr.linked-event-focus td{animation:linked-event-focus 3s ease-out}
@keyframes linked-event-focus{0%,35%{background:#184557;box-shadow:inset 3px 0 #62dff4}100%{background:transparent;box-shadow:inset 3px 0 transparent}}
.user-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.user-role{padding:5px 7px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#0f172a}.demo-theme .user-role{background:#0d1d24;border-color:#34505c;color:#e6f1f4}.password-card{max-width:440px}.password-form{display:grid;gap:12px;margin-top:12px}.password-form label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:#334155}.password-form input{border:1px solid #cbd5e1;border-radius:7px;padding:10px 11px;background:#fff;color:#0f172a}.demo-theme .password-form label{color:#8fa9b4}.demo-theme .password-form input{background:#0d1d24;border-color:#34505c;color:#e6f1f4}
.dashboard-latest-panel .dashboard-card-head{gap:16px;flex-wrap:wrap}
.live-meter-control{display:flex;align-items:center;gap:10px;max-width:100%;font-size:12px;font-weight:700;color:#8fa9b4}
.live-meter-control select{min-width:180px;max-width:320px}
@media(max-width:600px){.live-meter-control{width:100%}.live-meter-control select{flex:1;min-width:0;max-width:100%}}
.recording-controls{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:12px;padding:14px;border:1px solid #cbd5e1;border-radius:8px;margin-top:8px}.recording-controls label{display:flex;flex-direction:column;gap:6px;min-width:0;font-size:12px;font-weight:700;color:#334155}.recording-controls input,.recording-controls select{width:100%;min-width:0;box-sizing:border-box;border:1px solid #cbd5e1;border-radius:7px;padding:9px 10px;background:#fff;color:#0f172a;min-height:38px}.recording-controls p{grid-column:1/-1;margin:0;font-size:12px;line-height:1.5;color:#64748b}.recording-controls input:disabled,.recording-controls select:disabled{opacity:.55}.demo-theme .recording-controls{border-color:#294955}.demo-theme .recording-controls label,.demo-theme .recording-controls p{color:#91acb8}.demo-theme .recording-controls input,.demo-theme .recording-controls select{background:#0d1d24;border-color:#34505c;color:#e6f1f4}@media(max-width:800px){.recording-controls{grid-template-columns:repeat(2,minmax(120px,1fr))}}@media(max-width:460px){.recording-controls{grid-template-columns:1fr}}
.recording-controls .reading-schedule{grid-column:1/-1}.recording-controls.history-only{grid-template-columns:repeat(2,minmax(120px,1fr))}.recording-controls [hidden],.poll-seconds-field[hidden]{display:none!important}@media(max-width:460px){.recording-controls.history-only{grid-template-columns:1fr}}
.recording-controls.live-only{grid-template-columns:1fr}
