html,body,#root{min-height:100vh;margin:0;padding:0}:root{--radius:16px}:root,[data-theme=esplight]{--bg:#f1f5f9;--panel:#fff;--panel2:#f8fafc;--border:#e2e8f0;--text:#0f172a;--muted:#475569;--accent-v:#2563eb;--accent-i:#059669;--accent-p:#d97706;--good:#059669;--warn:#d97706;--bad:#e11d48;--body-bg:#f1f5f9;--chart-grid:#e2e8f0;--chart-axis:#cbd5e1;--chart-text:#475569;--chart-tooltip-bg:#fffffff5;--chart-tooltip-border:#e2e8f0e6;--chart-forecast:#94a3b8;--c0:#2563eb;--c1:#059669;--c2:#d97706;--c3:#0891b2;--c4:#e11d48;--c5:#7c3aed;--c6:#4d7c0f;--c7:#a21caf}[data-theme=midnight]{--radius:10px;--bg:#0d1117;--panel:#161b22;--panel2:#0d1117;--border:#262d36;--text:#e6edf3;--muted:#8b949e;--accent-v:#4fc3f7;--accent-i:#a5d6a7;--accent-p:#ffcc80;--good:#3fb950;--warn:#d29922;--bad:#f85149;--body-bg:#0d1117;--chart-grid:#21262d;--chart-axis:#262d36;--chart-text:#8b949e;--chart-tooltip-bg:#161b22;--chart-tooltip-border:#262d36;--chart-forecast:#6e7681;--c0:#4fc3f7;--c1:#a5d6a7;--c2:#ffcc80;--c3:#ce93d8;--c4:#f48fb1;--c5:#80cbc4;--c6:#fff59d;--c7:#90a4ae}[data-theme=esp]{--bg:#020617;--panel:#0f172a;--panel2:#020617;--border:#1e293b;--text:#f1f5f9;--muted:#94a3b8;--accent-v:#38bdf8;--accent-i:#34d399;--accent-p:#fbbf24;--good:#34d399;--warn:#fbbf24;--bad:#fb7185;--body-bg:#020617;--chart-grid:#1e293b;--chart-axis:#334155;--chart-text:#94a3b8;--chart-tooltip-bg:#0f172af5;--chart-tooltip-border:#1e293be6;--chart-forecast:#64748b;--c0:#38bdf8;--c1:#34d399;--c2:#fbbf24;--c3:#22d3ee;--c4:#fb7185;--c5:#a78bfa;--c6:#94a3b8;--c7:#cbd5e1}[data-theme=nilm]{--bg:#08111d;--panel:#1a293eed;--panel2:#0c1320e0;--border:#ffffff1f;--text:#e7edf6;--muted:#8b95a7;--accent-v:#66c2ff;--accent-i:#44d37c;--accent-p:#ff934d;--good:#44d37c;--warn:#e2b84b;--bad:#ff6b7a;--body-bg:radial-gradient(1200px 700px at 15% 10%, #66c2ff2e, transparent 32%), radial-gradient(1000px 600px at 85% 8%, #8d7bff29, transparent 28%), linear-gradient(180deg, #07101a 0%, #0e1726 48%, #06101b 100%);--chart-grid:#ffffff1a;--chart-axis:#ffffff2e;--chart-text:#8b95a7;--chart-tooltip-bg:#0f1828f7;--chart-tooltip-border:#ffffff2e;--chart-forecast:#6d7890;--c0:#66c2ff;--c1:#44d37c;--c2:#ff934d;--c3:#8d7bff;--c4:#ffd66d;--c5:#8ce0ff;--c6:#e2b84b;--c7:#ff6b7a}[data-theme=aurora]{--bg:#dbe3f0;--panel:#f4f7fce6;--panel2:#dde6f4f2;--border:#2854aa2e;--text:#1b2436;--muted:#566077;--accent-v:#4b6ef5;--accent-i:#14a085;--accent-p:#e8730c;--good:#16a34a;--warn:#d4960a;--bad:#e5485f;--body-bg:radial-gradient(1100px 620px at 50% -20%, #4b6ef51a, transparent 60%), radial-gradient(900px 520px at 100% 0%, #9b59e612, transparent 55%), linear-gradient(180deg, #eef2f8, #dbe3f0);--glass-filter:blur(10px) saturate(115%);--accent-grad:linear-gradient(110deg, #1fc8b8, #4b7bec 42%, #9b59e6 72%, #e0568f);--chart-grid:#e6eaf2;--chart-axis:#ccd4e2;--chart-text:#5b6678;--chart-tooltip-bg:#fffffff7;--chart-tooltip-border:#1c284824;--chart-forecast:#98a2b6;--c0:#4b6ef5;--c1:#14a085;--c2:#e8730c;--c3:#9b59e6;--c4:#d6489b;--c5:#0ea5c4;--c6:#4d7c0f;--c7:#b91c1c}[data-theme=aurora] .brand .t,[data-theme=aurora] .login-brand .t{background:var(--accent-grad);color:#0000;-webkit-background-clip:text;background-clip:text}[data-theme=aurora] .sidebar{background:linear-gradient(#d5e0f4f0,#dde6f4e0)}[data-theme=aurora] .topbar{background:#d9e3f4f0}[data-theme=aurora] .panel h2,[data-theme=aurora] .nilm-section-title{color:var(--accent-v)}[data-theme=aurora] .nav a:hover,[data-theme=aurora] .nav a.active{color:var(--accent-v);background:#4b6ef51f;border-color:#4b6ef547}[data-theme=aurora] .stat .value{color:#2c3e8f}[data-theme=nebula]{--bg:#050b18;--panel:#12203a94;--panel2:#0b142680;--border:#b4d2ff2e;--text:#eef4ff;--muted:#9db0d1;--accent-v:#4fb2ff;--accent-i:#22e6b8;--accent-p:#a78bfa;--good:#22e6b8;--warn:#ffb84d;--bad:#ff5c7a;--body-bg:radial-gradient(1150px 720px at 8% -12%, #4fb2ff38, transparent 52%), radial-gradient(950px 620px at 92% 0%, #7c5cff21, transparent 55%), radial-gradient(850px 600px at 50% 112%, #ff7ac617, transparent 55%), linear-gradient(180deg, #050b18 0%, #0a1530 50%, #030712 100%);--glass-filter:blur(28px) saturate(175%);--accent-grad:linear-gradient(110deg, #3ea6ff 0%, #6a8fff 35%, #a78bfa 65%, #ff7ac6 100%);--chart-grid:#b4d2ff14;--chart-axis:#b4d2ff2e;--chart-text:#9db0d1;--chart-tooltip-bg:#0c152af0;--chart-tooltip-border:#b4d2ff33;--chart-forecast:#7a8fb8;--c0:#4fb2ff;--c1:#22e6b8;--c2:#ff7ac6;--c3:#a78bfa;--c4:#ffd66d;--c5:#6ee7c8;--c6:#7c9eff;--c7:#ff9f6b}[data-theme=nebula] .brand .t,[data-theme=nebula] .login-brand .t{background:var(--accent-grad);color:#0000;-webkit-background-clip:text;background-clip:text}[data-theme=nebula] .sidebar,[data-theme=nebula] .topbar,[data-theme=nebula] .panel,[data-theme=nebula] .panels-head,[data-theme=nebula] .panels-filterbar,[data-theme=nebula] .panels .stat,[data-theme=nebula] .panel-card,[data-theme=nebula] .chat-panel{background:linear-gradient(180deg, #ffffff24 0%, #fff0 42%), linear-gradient(180deg, color-mix(in srgb, var(--panel) 100%, white 6%), var(--panel));box-shadow:0 0 0 1px #4fb2ff1f,0 24px 60px #4fb2ff2e,inset 0 1px #ffffff29,inset 0 -1px #0000002e}[data-theme=nebula] .panel h2,[data-theme=nebula] .nilm-section-title{color:var(--accent-v)}[data-theme=nebula] .stat .value{color:#bcdcff}body{background:var(--body-bg);color:var(--text);background-attachment:fixed;font:13.5px/1.45 system-ui,-apple-system,Segoe UI,sans-serif}.sidebar,.topbar,.panels-head,.panels-filterbar,.chat-panel{-webkit-backdrop-filter:var(--glass-filter,none);backdrop-filter:var(--glass-filter,none)}button{font:inherit;color:inherit;cursor:pointer}select{font:inherit;color:var(--text);background:var(--panel2);border:1px solid var(--border);border-radius:99px;padding:6px 12px}.sidebar{background:linear-gradient(180deg, color-mix(in srgb, var(--panel) 100%, white 2%), var(--panel));border-right:1px solid var(--border);flex-direction:column;gap:8px;height:100vh;padding:14px 12px;display:flex;position:sticky;top:0}.brand{padding:8px 10px 14px}.brand .t{align-items:center;gap:8px;font-size:16px;font-weight:700;display:flex}.brand .t .spark{color:var(--accent-p)}.brand .t .brand-logo{border-radius:4px;width:22px;height:22px;display:block}.brand .s{color:var(--muted);margin-top:2px;font-size:11.5px}.nav a{color:var(--muted);cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:3px;padding:8px 12px;text-decoration:none;display:flex}.nav a:hover{color:var(--text);border-color:var(--border);background:#7f7f7f1a}.nav a.active{color:var(--accent-v);background:color-mix(in srgb, var(--accent-v) 14%, transparent);border-color:color-mix(in srgb, var(--accent-v) 40%, var(--border))}.nav .badge{color:var(--muted);border:1px solid var(--border);border-radius:99px;padding:2px 7px;font-family:ui-monospace,monospace;font-size:10px}.nav-group{text-transform:uppercase;letter-spacing:.7px;color:var(--muted);opacity:.75;padding:12px 12px 4px;font-size:10px;font-weight:700}.sidefoot{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel2);color:var(--muted);margin-top:auto;padding:10px 12px;font-size:11.5px}.sidefoot .v{color:var(--text);margin:4px 0 8px;line-height:1.5}.pill{border:1px solid var(--border);border-radius:99px;margin-right:4px;padding:2px 8px;font-size:10.5px;display:inline-block}.theme-picker{color:var(--muted);align-items:center;gap:6px;margin-top:8px;font-size:10.5px;display:flex}.theme-picker select{flex:1;min-width:0;padding:4px 10px;font-size:11px}@media (width<=1000px){.app{grid-template-columns:1fr;align-content:start}.sidebar{z-index:50;flex-direction:row;align-self:start;align-items:center;gap:4px;width:100%;height:auto;padding:10px 12px;position:sticky;top:0;overflow-x:auto}.brand{flex-shrink:0;padding:0 12px 0 4px}.brand .s,.sidefoot{display:none}.nav{flex-direction:row;gap:4px;display:flex}.nav a{white-space:nowrap;margin-bottom:0;padding:8px 12px}.nav .badge,.nav-group{display:none}}main{min-width:0;padding:14px 18px 30px}.topbar{background:linear-gradient(180deg, color-mix(in srgb, var(--panel) 100%, white 2%), var(--panel));border:1px solid var(--border);border-radius:var(--radius);z-index:10;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:14px;padding:11px 16px;display:flex;position:sticky;top:10px}.chip{background:var(--panel2);border:1px solid var(--border);border-radius:99px;padding:5px 11px;font-size:12px}.chip.online{color:var(--good);border-color:var(--good)}.chip.offline{color:var(--muted)}.chip.error{color:var(--bad);border-color:var(--bad)}.range-group{gap:4px;margin-left:auto;display:flex}.range-btn{background:var(--panel2);border:1px solid var(--border);border-radius:99px;padding:5px 13px;font-size:12px}.range-btn.active{border-color:var(--accent-v);color:var(--accent-v)}.range-btn:disabled{opacity:.35;cursor:default}input[type=datetime-local]{background:var(--panel2);border:1px solid var(--border);color:var(--text);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;border-radius:8px;padding:4px 8px;font-size:12px}.dtpick{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:flex}.pager{color:var(--muted);align-items:center;gap:10px;margin-top:8px;font-size:11px;display:flex}.pager button{background:var(--panel2);border:1px solid var(--border);border-radius:99px;padding:3px 11px;font-size:11px}.pager button:disabled{opacity:.35;cursor:default}.capture-btn{background:var(--panel2);border:1px solid var(--border);border-radius:99px;padding:6px 16px;font-size:12px;font-weight:600}.capture-btn:disabled{opacity:.5;cursor:default}.capture-btn.capturing{background:color-mix(in srgb, var(--bad) 15%, var(--panel2));border-color:var(--bad);color:var(--bad);animation:1.6s ease-in-out infinite capture-pulse}@keyframes capture-pulse{0%,to{opacity:1}50%{opacity:.6}}.panel{background:linear-gradient(180deg, color-mix(in srgb, var(--panel) 100%, white 2%), var(--panel));border:1px solid var(--border);border-radius:var(--radius);contain:layout style;min-width:0;margin-bottom:14px;padding:15px 17px;box-shadow:0 8px 20px #0000001a}.panel:not(.stat){content-visibility:auto;contain-intrinsic-size:auto 280px}.panel h2{text-transform:uppercase;letter-spacing:.8px;color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin:0 0 10px;font-size:12px;font-weight:600;display:flex}.src{text-transform:none;letter-spacing:0;border:1px solid;border-radius:99px;padding:2px 8px;font-family:ui-monospace,monospace;font-size:10px;font-weight:400}.src.live{color:var(--good);border-color:var(--good)}.src.todo{color:var(--warn);border-color:var(--warn)}.cards{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:14px;display:grid}.cards .stat:nth-child(8n+1){border-top:2px solid var(--c0)}.cards .stat:nth-child(8n+2){border-top:2px solid var(--c1)}.cards .stat:nth-child(8n+3){border-top:2px solid var(--c2)}.cards .stat:nth-child(8n+4){border-top:2px solid var(--c3)}.cards .stat:nth-child(8n+5){border-top:2px solid var(--c4)}.cards .stat:nth-child(8n+6){border-top:2px solid var(--c5)}.cards .stat:nth-child(8n+7){border-top:2px solid var(--c6)}.cards .stat:nth-child(8n+8){border-top:2px solid var(--c7)}.row{grid-template-columns:2fr 1fr;gap:14px;display:grid}.row.even{grid-template-columns:1fr 1fr}.row.thirds{grid-template-columns:1fr 1fr 1fr}@media (width<=1100px){.row,.row.even,.row.thirds{grid-template-columns:1fr}}.stat .label{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-size:11px}.stat .value{font-variant-numeric:tabular-nums;white-space:nowrap;margin:3px 0 1px;font-size:21px;font-weight:700}.stat .unit{color:var(--muted);margin-left:2px;font-size:12px;font-weight:400}.stat .sub{color:var(--muted);font-size:11px}.legend{color:var(--muted);flex-wrap:wrap;gap:12px;margin-top:6px;font-size:11px;display:flex}.legend .key:before{content:"—";margin-right:4px;font-weight:700}.twin-drag{cursor:grab;touch-action:none}.twin-drag.twin-dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.twin-hint{color:var(--muted);opacity:.7;margin-top:2px;font-size:10.5px}.twin-panning .recharts-wrapper{overflow:hidden}.twin-panning .recharts-cartesian-grid,.twin-panning .recharts-line,.twin-panning .recharts-reference-line,.twin-panning .recharts-reference-area,.twin-panning .recharts-xAxis,.twin-panning .nilm-gantt-bar{transform:translateX(var(--twin-pan-x,0px))}.nodata{color:var(--muted);border:1px dashed var(--border);border-radius:8px;place-items:center;padding:16px;font-size:12px;display:grid}.finance-note{color:var(--muted);margin:0;font-size:13px;line-height:1.5}.finance-note strong{color:var(--text);font-weight:600}.fin-eyebrow{color:var(--muted);letter-spacing:.8px;text-transform:uppercase;margin:4px 0 10px;font-size:12px;font-weight:700}.fin-market-picker{color:var(--muted);align-items:center;gap:8px;margin-top:10px;font-size:11.5px;display:flex}.fin-market-picker select{background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:4px 10px;font-size:12px}.fin-period-nav{color:var(--muted);align-items:center;gap:10px;margin:2px 0 12px;font-size:12.5px;display:flex}.fin-period-nav button{background:var(--panel2);border:1px solid var(--border);width:26px;height:26px;color:var(--text);cursor:pointer;border-radius:99px;font-size:14px;line-height:1}.fin-period-nav button:hover:not(:disabled){border-color:var(--muted)}.fin-period-nav button:disabled{opacity:.35;cursor:default}.fin-period-nav .fin-period-label{text-align:center;font-variant-numeric:tabular-nums;min-width:9em}.fin-month-top{flex-wrap:wrap;align-items:baseline;gap:12px;margin:2px 0 12px;display:flex}.fin-month-pct{font-variant-numeric:tabular-nums;font-size:22px;font-weight:800}.fin-month-pct.up{color:var(--bad)}.fin-month-pct.down{color:var(--good)}.fin-month-pct.flat{color:var(--text)}.fin-month-sub{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12.5px}.chart-wrap{width:100%;height:240px;min-height:240px}.circuits{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;display:grid}.circuit{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel2);cursor:pointer;padding:10px 12px;transition:border-color .15s,transform .15s}.circuit:hover{border-color:var(--accent-v);transform:translateY(-2px)}.circuit.static{cursor:default}.circuit.static:hover{border-color:var(--border);transform:none}.circuit .top{justify-content:space-between;align-items:center;gap:8px;display:flex}.circuit .n{flex:auto;align-items:center;gap:5px;min-width:0;font-weight:650;display:inline-flex}.circuit-idx{color:var(--muted);background:var(--panel2);border:1px solid var(--border);border-radius:4px;flex:none;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10.5px;font-weight:600}.circuit-rename-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:2px;font-size:11px;line-height:1}.circuit-rename-btn:hover:not(:disabled){color:var(--text)}.circuit-rename-btn:disabled{opacity:.4;cursor:default}.circuit-name-edit{flex:1;align-items:center;gap:5px;min-width:0;display:flex}.circuit-name-input{border:1px solid var(--border);background:var(--panel);min-width:0;color:var(--text);border-radius:6px;flex:1;padding:3px 6px;font-size:12.5px;font-weight:650}.circuit-name-edit .cmd-btn{flex:none;padding:3px 8px}.circuit-poles{color:var(--muted);margin-top:2px;font-size:10.5px}.circuits-zones{grid-template-columns:repeat(auto-fill,minmax(520px,1fr));align-items:start;gap:14px;display:grid}.circuits-zones>.circuits{grid-column:1/-1}.zone-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);padding:12px 14px}.zone-card-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.zone-card-header .n{font-size:14px;font-weight:700}.zone-card-circuits{margin-top:10px}.zone-group-switch{gap:6px}.circuit-switch-btn{border:1px solid var(--border);background:var(--panel);color:var(--muted);cursor:pointer;border-radius:6px;padding:3px 7px;font-size:10px;font-weight:650}.circuit-switch-btn:hover:not(:disabled){color:var(--text);border-color:var(--muted)}.circuit .metrics{grid-template-columns:repeat(4,1fr);gap:6px;margin-top:8px;display:grid}.circuit .metrics>div{background:var(--panel);border:1px solid var(--border);border-radius:7px;padding:4px 7px}.circuit .metrics .k{color:var(--muted);font-size:10px}.circuit .metrics .v{font-variant-numeric:tabular-nums;font-size:12.5px;font-weight:650}.circuit .metrics .v.warn{color:var(--warn)}.rstate{letter-spacing:.8px;border:1px solid var(--muted);color:var(--muted);border-radius:99px;padding:3px 9px;font-size:10px;font-weight:700}.rstate.on{border-color:var(--good);color:var(--good)}.rstate.warn{border-color:var(--warn);color:var(--warn)}.rstate.fault{border-color:var(--bad);color:var(--bad)}.circuit .last{color:var(--muted);margin-top:7px;font-size:10.5px}.circuit .cmd{gap:6px;margin-top:8px;display:flex}.cmd-btn{border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:7px;flex:1;padding:5px 0;font-size:11px;font-weight:650}.cmd-btn:hover:not(:disabled){border-color:var(--muted)}.cmd-btn:disabled{opacity:.4;cursor:default}.cmd-btn.open:hover:not(:disabled){border-color:var(--good);color:var(--good)}.cmd-btn.close:hover:not(:disabled){border-color:var(--bad);color:var(--bad)}.circuit .cmd-fb{margin-top:6px;font-size:10.5px}.circuit-limit-btn{border:1px solid var(--border);background:var(--panel);color:var(--muted);cursor:pointer;border-radius:6px;margin-top:8px;padding:3px 7px;font-size:10px;font-weight:650}.circuit-limit-btn:hover:not(:disabled){color:var(--text);border-color:var(--muted)}.circuit-limit-edit{flex-direction:column;gap:6px;margin-top:8px;display:flex}.circuit-limit-fields{gap:6px;display:flex}.circuit-limit-field{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.circuit-limit-field label{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:9px}.circuit-limit-field input{font-variant-numeric:tabular-nums;border:1px solid var(--border);background:var(--panel);width:100%;color:var(--text);border-radius:6px;padding:3px 6px;font-size:12px}.circuit-limit-checkbox{color:var(--text);cursor:pointer;flex-direction:row;align-items:center;gap:6px;font-size:11px}.circuit-limit-checkbox input{width:auto}.circuit-limit-actions{gap:6px;display:flex}.circuit-limit-actions .cmd-btn{flex:none;padding:3px 8px}.circuit-limit-msg{font-size:10.5px}.circuit-limit-msg.ok{color:var(--good)}.circuit-limit-msg.err{color:var(--bad)}.circuit-limit-meter{flex-direction:column;gap:3px;margin-top:6px;display:flex}.circuit-limit-meter-label{font-variant-numeric:tabular-nums;justify-content:space-between;font-size:10.5px;display:flex}.circuit-limit-meter-max{color:var(--muted)}.circuit-limit-meter-track{background:var(--panel);border:1px solid var(--border);border-radius:99px;height:5px;position:relative}.circuit-limit-meter-fill{background:var(--good);border-radius:99px;position:absolute;inset:0}.circuit-limit-meter-fill.warn{background:var(--warn)}.circuit-limit-meter-fill.fault,.circuit-limit-meter-fill.off{background:var(--muted)}.circuit-limit-meter-tick{background:var(--border);width:1px;position:absolute;top:-2px;bottom:-2px}.circuit-limit-meter-tick.shutoff{background:var(--bad);opacity:.6}.circuit.circuit-drillhead{width:min(340px,100%);margin-bottom:4px}.cmd-fb{font-size:11px}.cmd-fb.ok{color:var(--good)}.cmd-fb.err{color:var(--bad)}.commission-step{flex-direction:column;gap:10px;display:flex}.commission-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.commission-status-row{justify-content:space-between;align-items:center;font-size:12px;display:flex}.commission-phase-chip{letter-spacing:.4px;text-transform:uppercase;border:1px solid var(--muted);color:var(--muted);border-radius:99px;padding:3px 9px;font-size:10.5px;font-weight:700}.commission-phase-chip.settling{border-color:var(--warn);color:var(--warn)}.commission-phase-chip.settled{border-color:var(--good);color:var(--good)}.commission-chart-wrap{background:var(--panel2);border:1px solid var(--border);border-radius:10px;padding:8px 10px 2px}.commission-standby-row{background:var(--panel2);border:1px solid var(--border);border-radius:10px;justify-content:space-between;align-items:baseline;padding:10px 12px;display:flex}.commission-standby-row .k{color:var(--muted);text-transform:uppercase;letter-spacing:.4px;font-size:11px}.commission-standby-row .v{font-variant-numeric:tabular-nums;font-size:18px;font-weight:700}.commission-appliance-list{flex-direction:column;gap:6px;display:flex}.commission-appliance-row{border:1px solid var(--border);background:var(--panel2);border-radius:8px;align-items:center;gap:8px;padding:7px 10px;font-size:13px;display:flex}.commission-appliance-row .muted{margin-left:auto;font-size:11px}.sched-form{background:var(--panel2);border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;align-items:flex-end;gap:12px 16px;padding:14px 16px;display:flex}.sched-form label{color:var(--muted);flex-direction:column;gap:4px;font-size:11px;font-weight:600;display:flex}.sched-form input[type=text],.sched-form input[type=time],.sched-form select{border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:7px;padding:6px 8px;font-size:12.5px}.sched-form input[type=text]{min-width:180px}.sched-form label.sched-enabled{color:var(--text);flex-direction:row;align-items:center;gap:6px}.sched-days{flex-wrap:wrap;align-items:center;gap:6px;margin-top:14px;display:flex}.sched-days-label{color:var(--muted);margin-right:4px;font-size:11px;font-weight:600}.sched-presets{border-left:1px solid var(--border);gap:6px;margin-left:10px;padding-left:10px;display:inline-flex}.plan-banner{color:var(--text);background:#2a7fff12;border:1px solid #2a7fff47;border-radius:10px;align-items:flex-start;gap:10px;margin-bottom:14px;padding:11px 15px;font-size:12.5px;display:flex}.plan-banner b{color:var(--accent-v);margin-bottom:2px;display:block}.plan-banner p{color:var(--muted);margin:0;font-size:12px;line-height:1.45}.plan-banner-icon{font-size:15px;line-height:1.3}.sched-pill{border:1px solid var(--border);background:var(--panel);color:var(--muted);border-radius:99px;align-items:center;gap:6px;padding:4px 12px;font-size:11px;font-weight:700;display:inline-flex}.sched-pill .dot{background:var(--muted);border-radius:50%;width:6px;height:6px}.sched-pill.on{border-color:var(--good);color:var(--good);background:#3fb9501a}.sched-pill.on .dot{background:var(--good)}.sched-table tbody tr:nth-child(odd){background:#7f7f7f08}.sched-table tbody tr:hover{background:#7f7f7f12}.sched-control-status{border-bottom:1px solid var(--border);align-items:center;gap:10px;margin-bottom:10px;padding-bottom:10px;display:flex}.sched-sets{flex-direction:column;gap:6px;display:flex}.sched-set-row{border:1px solid var(--border);background:var(--panel2);border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.sched-set-row.active{border-color:var(--accent-v);background:#2a7fff0f}.sched-set-select{text-align:left;cursor:pointer;min-width:0;color:var(--text);background:0 0;border:none;flex:1;align-items:center;gap:10px;padding:0;font-size:13px;font-weight:600;display:flex}.sched-set-select span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sched-set-select input[type=text]{font:inherit;border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:6px;padding:3px 6px}.sched-set-actions{flex-shrink:0;gap:6px;display:flex}.tl-toolbar{background:var(--panel2);border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;padding:9px 12px;display:flex}.tl-daypick,.tl-modes,.tl-zoom,.tl-bulk,.tl-scope{align-items:center;gap:4px;display:inline-flex}.tl-modes,.tl-zoom,.tl-bulk,.tl-legend{border-left:1px solid var(--border);margin-left:4px;padding-left:8px}.tl-zoomlvl{color:var(--muted);text-align:center;min-width:30px;font-size:10.5px}.tl-bulk-lbl{color:var(--muted);margin:0 2px 0 6px;font-size:10.5px}.tl-legend{color:var(--muted);align-items:center;gap:4px;font-size:10.5px;display:inline-flex}.tl-legend .tl-status-dot{margin-left:8px}.tl-legend .tl-status-dot:first-child{margin-left:0}.tl-status-dot{background:var(--muted);border-radius:50%;flex-shrink:0;width:7px;height:7px;display:inline-block}.tl-status-dot.scheduled{background:var(--good)}.tl-status-dot.manual{background:var(--muted);opacity:.5}.tl-scroll{overflow:auto hidden}.tl-inner{flex-direction:column;gap:4px;min-width:100%;display:flex}.tl-row{align-items:center;gap:10px;display:flex}.tl-fixed-axis{align-items:center;gap:10px;margin-bottom:4px;display:flex}.tl-fixed-axis-spacer{flex:0 0 118px}.tl-label{z-index:2;color:var(--text);background:var(--panel2);flex-direction:column;flex:0 0 118px;align-items:flex-end;gap:3px;font-size:11.5px;font-weight:700;display:flex;position:sticky;left:0}.tl-label-name{align-items:center;gap:5px;display:inline-flex}.tl-include{cursor:pointer;width:12px;height:12px;accent-color:var(--good);flex-shrink:0;margin:0}.tl-include:disabled{cursor:default;opacity:.5}.tl-row{border-radius:8px;transition:background-color .12s}.tl-row:hover{background:#7f7f7f0d}.tl-row:hover .tl-track{border-color:color-mix(in srgb, var(--muted) 55%, var(--border))}.tl-row.excluded .tl-label-name{color:var(--muted);font-weight:600}.tl-track.disabled{cursor:default;background:#7f7f7f0a}.tl-track.disabled .tl-empty{color:var(--muted);opacity:.7}.tl-label-btns{gap:3px;display:inline-flex}.tl-mini{cursor:pointer;border:1px solid var(--border);background:var(--panel);color:var(--muted);border-radius:4px;padding:0 5px;font-size:9px;line-height:1.4}.tl-mini:hover:not(:disabled){border-color:var(--muted);color:var(--text)}.tl-mini:disabled{opacity:.4;cursor:default}.tl-track{border:1px solid var(--border);cursor:crosshair;-webkit-user-select:none;user-select:none;background-color:var(--panel);background-image:repeating-linear-gradient(90deg, var(--border) 0 1px, transparent 1px calc(100% / 24)), repeating-linear-gradient(90deg, color-mix(in srgb, var(--border) 45%, transparent) 0 1px, transparent 1px calc(100% / 96));border-radius:6px;flex:auto;height:26px;position:relative;overflow:hidden}.tl-track.erasing{cursor:cell}.tl-track.tl-axis{cursor:default;background:0 0;border:none;height:16px;overflow:visible}.tl-tick{color:var(--muted);white-space:nowrap;font-size:9.5px;position:absolute;top:0;transform:translate(-50%)}.tl-seg{background:var(--good);opacity:.34;border:1px solid color-mix(in srgb, var(--good) 55%, transparent);border-radius:4px;min-width:2px;position:absolute;top:3px;bottom:3px}.tl-mark{border-left:5px solid #0000;border-right:5px solid #0000;width:0;height:0;position:absolute;top:50%;transform:translate(-50%,-50%)}.tl-mark.on{border-bottom:8px solid var(--good);margin-top:-1px}.tl-mark.off{border-top:8px solid var(--bad);margin-top:1px}.tl-empty{color:var(--muted);opacity:.6;font-size:10px;position:absolute;top:50%;left:8px;transform:translateY(-50%)}.tl-hint{color:var(--muted);margin-top:10px;font-size:10.5px}.tl-preview{pointer-events:none;border-radius:3px;position:absolute;top:2px;bottom:2px}.tl-preview.fill{background:var(--good);opacity:.5;border:1px solid var(--good)}.tl-preview.erase{background:var(--bad);opacity:.35;border:1px dashed var(--bad)}.tl-preview-lbl{color:var(--text);white-space:nowrap;background:var(--panel2);border-radius:3px;padding:0 4px;font-size:9.5px;position:absolute;top:-16px;left:50%;transform:translate(-50%)}.modal-overlay{z-index:50;background:#141e3259;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--panel2);border:1px solid var(--border);border-radius:var(--radius);max-width:360px;margin:16px;padding:18px 20px}.modal h3{margin:0 0 8px;font-size:15px}.modal p{color:var(--muted);margin:0 0 16px;font-size:12.5px;line-height:1.5}.modal-actions{justify-content:flex-end;gap:8px;display:flex}.modal-actions .cmd-btn{flex:none;padding:6px 14px}.mock-app .circuit-schedules .tl-label{flex:0 0 190px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:3px 6px;padding:5px 4px;font-size:12px;display:grid}.mock-app .circuit-schedules .tl-row{border-radius:0;align-items:center;min-height:52px}.mock-app .circuit-schedules .cs-timeline{cursor:default;touch-action:auto;-webkit-user-select:auto;user-select:auto}.mock-app .circuit-schedules .tl-axis{margin:0}.mock-app .circuit-schedules .tl-row.excluded .tl-seg{background:var(--muted);border-color:var(--muted)}.cs-row-actions,.cs-actions{flex-wrap:wrap;gap:8px;display:flex}.cs-row-actions .tl-mini{padding:4px 6px;font-size:11px}.cs-active{color:var(--good)}.cs-fieldset{border:0;min-width:0;margin:0;padding:0}.cs-period{border-bottom:1px solid var(--border);padding:14px 0}.cs-period .sched-form{background:0 0;border:0;padding:0}.cs-actions{margin-top:18px}.cs-enable{align-items:center;gap:8px;display:flex}@media (width<=600px){.mock-app .circuit-schedules .tl-label{flex-basis:180px}.mock-app .circuit-schedules .tl-inner{min-width:570px}.mock-app .circuit-schedules .cs-row-actions{gap:4px}}.mock-app .circuit-schedules .tl-axis .tl-tick:first-child{transform:none}.mock-app .circuit-schedules .tl-axis .tl-tick:last-child{transform:translate(-100%)}.mock-app .circuit-schedules .cs-row-actions .tl-mini{min-height:26px;padding:3px 6px;font-family:inherit;font-size:10px}.mock-app .circuit-schedules .tl-seg{opacity:.85}.mock-app .circuit-schedules .tl-inner{gap:0}.mock-app .circuit-schedules .tl-label>strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mock-app .circuit-schedules .tl-label>span{font-size:10px;font-weight:500}.mock-app .circuit-schedules .cs-row-actions{flex-wrap:nowrap;grid-column:1/-1;gap:4px}.mock-app .circuit-schedules .cs-axis-row{border-top:0;min-height:24px}.mock-app .circuit-schedules .cs-timeline{height:20px}.mock-app .circuit-schedules .tl-toolbar{margin-bottom:8px}.mock-app .circuit-schedules .tl-hint{margin:8px 0 0}.tscroll{max-height:340px;overflow:auto}table{border-collapse:collapse;white-space:nowrap;width:100%;font-size:11.5px}th{color:var(--muted);text-transform:uppercase;letter-spacing:.6px;text-align:left;z-index:1;background:var(--panel);font-size:10px;position:sticky;top:0}th,td{border-bottom:1px solid var(--border);padding:5px 8px}tr:last-child td{border-bottom:none}td{font-variant-numeric:tabular-nums}.note{color:var(--muted);margin:10px 0 0;font-size:11px}tbody.skeleton td{color:var(--muted);font-style:italic}.nilm-gap{color:var(--warn);background:#d2992214;border:1px solid #d299224d;border-radius:8px;align-items:flex-start;gap:10px;margin-bottom:20px;padding:10px 14px;font-size:12.5px;display:flex}.nilm-gap b{color:var(--warn);margin-bottom:2px;display:block}.nilm-gap p{color:var(--muted);margin:0;font-size:12px;line-height:1.45}.nilm-gap code{font-size:11px}.nilm-gap-icon{font-size:16px;line-height:1.2}.nilm-status-strip{background:#3fb95014;border:1px solid #3fb95059;border-radius:10px;margin-bottom:18px;padding:14px 18px}.nilm-status-strip.empty{border-color:var(--border);background:#8b949e0f}.nilm-status-head{flex-wrap:wrap;align-items:baseline;gap:14px;margin-bottom:10px;display:flex}.nilm-status-count{color:var(--good);font-size:18px;font-weight:800}.nilm-status-strip.empty .nilm-status-count{color:var(--muted);font-size:15px;font-weight:600}.nilm-status-total{color:var(--text);font-variant-numeric:tabular-nums;font-size:14px;font-weight:700}.nilm-status-chips{flex-wrap:wrap;gap:8px;display:flex}.nilm-status-chip{background:var(--panel2);border:1px solid color-mix(in srgb, var(--c-app,var(--good)) 45%, var(--border));color:var(--text);border-radius:99px;align-items:center;gap:7px;padding:5px 12px;font-size:12.5px;font-weight:600;display:inline-flex}.nilm-status-chip .chip-dot{background:var(--c-app,var(--good));width:8px;height:8px;box-shadow:0 0 6px var(--c-app,var(--good));border-radius:50%}.nilm-status-chip.unknown{color:var(--muted);border-style:dashed}[data-theme=esplight] .nilm-status-chip,[data-theme=aurora] .nilm-status-chip{border-color:color-mix(in srgb, var(--c-app,var(--good)) 60%, var(--border))}[data-theme=esplight] .nilm-status-chip .chip-dot,[data-theme=aurora] .nilm-status-chip .chip-dot{box-shadow:0 0 0 3px color-mix(in srgb, var(--c-app,var(--good)) 22%, transparent)}[data-theme=esplight] .nilm-appsum-card.on,[data-theme=aurora] .nilm-appsum-card.on{background:color-mix(in srgb, var(--c-app,var(--good)) 11%, var(--panel2))}.nilm-empty-on{min-height:56px;margin-bottom:14px}.nilm-enroll{flex-direction:column;gap:12px;display:flex}.nilm-enroll-appliances{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.nilm-enroll-appliances .nilm-status-chip{cursor:pointer}.nilm-enroll-empty{color:var(--muted);font-size:12.5px}.nilm-enroll-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.nilm-enroll-actions button{border:1px solid var(--border);background:var(--panel2);color:var(--text);font:inherit;cursor:pointer;border-radius:8px;padding:6px 14px;font-weight:600}.nilm-enroll-actions button:disabled{opacity:.5;cursor:not-allowed}.nilm-enroll-status{color:var(--muted);font-size:12.5px}.calibration-modal{max-width:460px}.calib-scan-row{border:1px solid var(--accent-v);background:color-mix(in srgb, var(--accent-v) 8%, transparent);border-radius:8px;align-items:center;gap:10px;padding:10px 12px;display:flex}.calib-scan-dot{background:var(--accent-v);border-radius:50%;flex:none;width:10px;height:10px;animation:1.4s ease-in-out infinite calib-scan-pulse}@keyframes calib-scan-pulse{0%,to{opacity:1;box-shadow:0 0 0 0 color-mix(in srgb, var(--accent-v) 45%, transparent)}50%{opacity:.6;box-shadow:0 0 0 5px color-mix(in srgb, var(--accent-v) 0%, transparent)}}.calib-scan-text{flex:1;font-size:13px;font-weight:600}.calib-scan-timer{font-variant-numeric:tabular-nums;font-size:12px}.calib-found-list{flex-direction:column;min-height:60px;max-height:260px;display:flex;overflow-y:auto}.calib-found-empty{color:var(--muted);flex:1;justify-content:center;align-items:center;padding:18px 0;font-size:12.5px;display:flex}.calib-found-row{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:7px 2px;font-size:12.5px;animation:.25s ease-out calib-found-in;display:flex}@keyframes calib-found-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.calib-found-row:last-child{border-bottom:none}.calib-found-row.removed{opacity:.4;text-decoration:line-through}.calib-found-kind{letter-spacing:.03em;background:var(--panel2);color:var(--muted);white-space:nowrap;border-radius:4px;padding:1px 6px;font-size:10.5px;font-weight:700}.calib-found-kind.on{color:var(--good)}.calib-found-kind.off{color:var(--bad)}.calib-found-dp{font-variant-numeric:tabular-nums;min-width:70px;font-weight:600}.calib-found-time{flex:1;font-size:11.5px}.calib-found-remove{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--panel);color:var(--muted);border-radius:5px;padding:2px 7px;font-size:11px}.calib-found-remove:hover{border-color:var(--bad);color:var(--bad)}.calib-wave{flex-direction:column;gap:2px;display:flex}.calib-wave-head{justify-content:space-between;align-items:baseline;font-size:11.5px;display:flex}.calib-wave-now{font-variant-numeric:tabular-nums;color:var(--accent-v);font-weight:700}.calib-wave-svg{width:100%;height:90px;display:block}.calib-wave-empty{height:90px;color:var(--muted);border:1px dashed var(--border);border-radius:6px;justify-content:center;align-items:center;font-size:12px;display:flex}.calib-wave-scale{justify-content:space-between;font-size:10px;display:flex}.calib-done{align-items:flex-start;gap:12px;display:flex}.calib-done-check{background:color-mix(in srgb, var(--good) 15%, transparent);width:32px;height:32px;color:var(--good);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:17px;font-weight:700;display:flex}.nilm-enroll-clusters{grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:12px;display:grid}.nilm-enroll-cluster-card{border:1px solid var(--border);background:var(--panel2);border-left:3px solid var(--c-cluster,var(--accent-v));border-radius:10px;flex-direction:column;gap:10px;padding:12px 14px;display:flex}.nilm-enroll-cluster-head{flex-wrap:wrap;align-items:baseline;gap:8px 14px;display:flex}.nilm-enroll-cluster-title{font-size:13.5px;font-weight:700}.nilm-enroll-cluster-summary{color:var(--muted);font-size:12px}.nilm-enroll-cluster-viz{grid-template-columns:1fr;gap:8px;display:grid}.nilm-enroll-cluster-step{color:var(--muted);font-size:12px}.nilm-enroll-cluster-step b{color:var(--text);font-weight:600}.nilm-cluster-sparkline{border:1px solid var(--border);background:var(--panel);border-radius:7px;padding:6px 8px 4px;overflow:hidden}.nilm-cluster-sparkline svg{width:100%;height:96px;display:block}.nilm-cluster-sparkline-empty{min-height:96px;color:var(--muted);justify-content:center;align-items:center;font-size:11.5px;display:flex}.nilm-cluster-sparkline-labels{color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;margin-top:2px;font-size:10px;display:flex}.nilm-cluster-sparkline-legend{gap:10px;display:flex}.nilm-cluster-sparkline-legend .on{color:var(--c-cluster,var(--good))}.nilm-cluster-sparkline-legend .off{color:var(--muted)}.nilm-cluster-gantt{flex-direction:column;gap:3px;display:flex}.nilm-cluster-gantt-track{background:var(--panel);border:1px solid var(--border);border-radius:5px;height:18px;position:relative;overflow:hidden}.nilm-cluster-gantt-bar{border-radius:3px;min-width:2px;position:absolute;top:2px;bottom:2px}.nilm-cluster-gantt-axis{color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;font-size:10px;display:flex}.nilm-enroll-cluster-events{font-variant-numeric:tabular-nums;flex-direction:column;gap:4px;margin:0;padding:0;font-size:12px;list-style:none;display:flex}.nilm-enroll-cluster-events li{border-bottom:1px solid color-mix(in srgb, var(--border) 55%, transparent);flex-wrap:wrap;align-items:center;gap:8px;padding:4px 0;display:flex}.nilm-enroll-cluster-events li:last-child{border-bottom:none}.nilm-enroll-ev-kind{letter-spacing:.04em;text-align:center;border-radius:4px;min-width:28px;padding:1px 6px;font-size:10px;font-weight:700}.nilm-enroll-ev-kind.on{background:color-mix(in srgb, var(--c-cluster,var(--good)) 20%, var(--panel));color:var(--c-cluster,var(--good))}.nilm-enroll-ev-kind.off{background:color-mix(in srgb, var(--muted) 15%, var(--panel));color:var(--muted)}.nilm-enroll-ev-time{min-width:120px;color:var(--text);flex:1}.nilm-enroll-ev-dp{font-weight:600}.nilm-enroll-ev-guess{color:var(--muted);font-size:11px}.nilm-enroll-cluster-expand{color:var(--accent-v);font:inherit;cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0;font-size:12px;text-decoration:underline}.nilm-enroll-cluster-actions{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;margin-top:2px;padding-top:8px;display:flex}.nilm-enroll-cluster-actions input{border:1px solid var(--border);background:var(--panel);min-width:140px;color:var(--text);font:inherit;border-radius:7px;flex:1;padding:6px 10px}.nilm-enroll-cluster-actions button{border:1px solid color-mix(in srgb, var(--good) 45%, var(--border));background:color-mix(in srgb, var(--good) 15%, var(--panel2));color:var(--text);font:inherit;cursor:pointer;border-radius:7px;padding:6px 14px;font-weight:600}.nilm-enroll-cluster-actions button:disabled{opacity:.5;cursor:not-allowed}.nilm-gantt-bar{border-radius:3px}.nilm-zone-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;display:grid}.nilm-zone-tile{border:1px solid var(--border);background:var(--panel2);font:inherit;color:inherit;text-align:left;cursor:pointer;border-radius:9px;width:100%;padding:8px 10px;transition:border-color .12s,box-shadow .12s}.nilm-zone-tile:hover{border-color:var(--muted)}.nilm-zone-tile.selected{border-color:var(--accent-v);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent-v) 40%, transparent)}.nilm-zone-head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:7px;display:flex}.nilm-zone-name{font-size:12.5px;font-weight:700}.nilm-zone-sub{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.nilm-zone-none{color:var(--muted);font-size:11px}.nilm-zone-chips{flex-direction:column;align-items:flex-start;gap:5px;display:flex}.nilm-zone-chips .nilm-status-chip{padding:3px 9px;font-size:11.5px}.nilm-status-chip.off{opacity:.55}.nilm-status-chip .chip-t{color:var(--muted);font-variant-numeric:tabular-nums;font-weight:500}.registry{flex-direction:column;gap:12px;display:flex}.registry-empty{color:var(--muted);font-size:12.5px}.registry-card{border:1px solid var(--border);background:var(--panel2);border-radius:10px;padding:12px 14px}.registry-form-layout{grid-template-columns:1fr 1fr;align-items:start;gap:14px 18px;display:grid}@media (width<=720px){.registry-form-layout{grid-template-columns:1fr}}.registry-form-col{flex-direction:column;gap:6px;min-width:0;display:flex}.registry-col-label{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:700}.registry-sched-col{border-left:1px solid var(--border);padding-left:14px}@media (width<=720px){.registry-sched-col{border-left:none;border-top:1px solid var(--border);padding-top:10px;padding-left:0}}.registry-form{grid-template-columns:1fr 1fr;align-items:end;gap:8px 10px;display:grid}.registry-form label{color:var(--muted);flex-direction:column;gap:3px;min-width:0;font-size:11px;font-weight:600;display:flex}.registry-form input,.registry-form textarea,.registry-form select{box-sizing:border-box;border:1px solid var(--border);background:var(--panel);width:100%;color:var(--text);border-radius:7px;padding:5px 8px;font-family:inherit;font-size:12.5px}.registry-form .registry-notes{grid-column:1/-1}.registry-form .registry-notes textarea{resize:vertical;width:100%;min-height:44px}.registry-sched-hint{color:var(--muted);font-size:11px;line-height:1.35}.registry-card-actions{gap:8px;margin-top:10px;display:flex}.registry-card-actions button{border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:7px;padding:6px 14px;font-size:12.5px}.registry-card-actions button:first-child{border-color:var(--accent-v);color:var(--accent-v)}.registry-card-actions button:disabled{opacity:.5;cursor:not-allowed}.registry-new-btn{border:1px solid var(--accent-v);background:var(--panel);color:var(--accent-v);border-radius:7px;align-self:flex-start;padding:7px 14px;font-size:12.5px;font-weight:600}.registry-new-btn:hover{background:color-mix(in srgb, var(--accent-v) 8%, transparent)}.registry-new-btn:disabled{opacity:.5;cursor:not-allowed}.registry-autofill{border-bottom:1px solid var(--border);flex-direction:column;gap:8px;margin-bottom:14px;padding-bottom:12px;display:flex}.registry-autofill-label{color:var(--muted);font-size:11px;font-weight:600}.registry-autofill-hint{color:var(--muted);font-size:11px}.registry-autofill input[type=file]{color:var(--text);font-size:12px}.registry-autofill-row{align-items:flex-start;gap:12px;display:flex}.registry-autofill-thumb{object-fit:cover;border:1px solid var(--border);background:var(--panel);border-radius:8px;flex-shrink:0;width:72px;height:72px}.registry-autofill-status{color:var(--muted);flex-direction:column;gap:6px;min-width:0;font-size:12px;display:flex}.registry-autofill-error{color:var(--bad);word-break:break-word;font-size:11px}.appliance-icon{width:24px;height:24px;display:block}.registry-autofill .reg-cards .reg-action{text-align:left;align-items:center;gap:8px;display:flex}.registry-autofill .reg-cards .reg-action .appliance-icon{flex:0 0 22px;width:22px;height:22px}.reg-list{flex-direction:column;gap:6px;display:flex}.reg-row{border:1px solid var(--border);background:var(--panel2);cursor:pointer;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;transition:border-color .15s;display:flex}.reg-row:hover{border-color:var(--accent-v)}.reg-row-main{flex-direction:column;gap:4px;min-width:0;display:flex}.reg-row-side{flex-shrink:0;align-items:center;gap:10px;display:flex}.registry-drill-tools{align-items:center;gap:10px;display:flex}.reg-cards{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));align-items:stretch;gap:10px;display:grid}.reg-card{border:1px solid var(--border);background:var(--panel2);cursor:pointer;border-radius:10px;flex-direction:column;gap:8px;min-height:118px;padding:10px 12px;transition:border-color .15s,transform .15s;display:flex}.reg-card:hover{border-color:var(--accent-v);transform:translateY(-1px)}.reg-card-top{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.reg-card-appliance-icon{width:30px;height:30px;color:var(--accent-v);border:1px solid color-mix(in srgb, var(--accent-v) 35%, var(--border));background:color-mix(in srgb, var(--accent-v) 7%, transparent);border-radius:8px;flex:0 0 30px;place-items:center;display:grid}.reg-card-appliance-icon .appliance-icon{width:20px;height:20px}.reg-card-top .nilm-status-chip{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.reg-card-summary{color:var(--text);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:6px 10px;min-height:1.4em;font-size:12px;display:flex}.reg-card-summary .muted{color:var(--muted);font-size:11.5px}.reg-card-brand{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex-basis:100%;font-size:11.5px;overflow:hidden}.reg-card-foot{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:8px;display:flex}.reg-card-actions{flex-shrink:0;gap:6px;display:flex}.registry-card-wide{max-width:860px}.reg-cards>.registry-card-wide{grid-column:1/-1}.reg-meta{color:var(--muted);font-size:11px}.src-tag{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-size:10px;font-weight:600}.src-tag.predicted{color:var(--warn)}.reg-stat-row{border-top:1px solid var(--border);justify-content:space-between;align-items:center;margin-top:auto;padding-top:8px;display:flex}.reg-stat{color:var(--muted);font-size:11px}.reg-stat b{color:var(--text);font-variant-numeric:tabular-nums}.reg-action{border:1px solid var(--accent-v);color:var(--accent-v);background:0 0;border-radius:6px;padding:4px 10px;font-size:11.5px;font-weight:700}.reg-action:hover{background:color-mix(in srgb, var(--accent-v) 8%, transparent)}.reg-action.danger{border-color:var(--bad);color:var(--bad)}.reg-action.danger:hover{background:color-mix(in srgb, var(--bad) 8%, transparent)}.reg-action:disabled{opacity:.5;cursor:not-allowed}.ap-view{flex-direction:column;display:flex}.back-link{color:var(--muted);cursor:pointer;background:0 0;border:none;align-self:flex-start;align-items:center;gap:6px;margin-bottom:18px;font-size:12.5px;display:inline-flex}.back-link:hover{color:var(--text)}.profile-head{display:block}.profile-name-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.profile-edit{max-width:860px;margin-top:12px}.profile-name{font-size:22px;font-weight:800}.profile-chips{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.p-chip{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:5px 10px;font-size:12px}.p-chip .k{color:var(--muted);margin-right:5px}.p-chip .v{font-weight:600}.profile-notes{color:var(--muted);max-width:560px;margin-top:10px;font-size:12.5px}.profile-nameplate{margin-top:10px;display:inline-block}.profile-nameplate img{border:1px solid var(--border);object-fit:cover;border-radius:6px;max-width:220px;max-height:160px;display:block}.confirm-banner{background:var(--panel2);border:1px dashed var(--border);color:var(--muted);border-radius:10px;align-items:center;gap:12px;margin:18px 0;padding:10px 14px;font-size:12.5px;display:flex}.confirm-banner button{border:1px solid var(--accent-v);color:var(--accent-v);background:0 0;border-radius:7px;flex-shrink:0;padding:6px 14px;font-size:12.5px;font-weight:700}.confirm-banner button:disabled{opacity:.5;cursor:not-allowed}.profile-grid{grid-template-columns:1.4fr 1fr;gap:16px;margin-top:16px;display:grid}@media (width<=900px){.profile-grid{grid-template-columns:1fr}}.profile-grid .card{background:var(--panel2);border:1px solid var(--border);border-radius:12px;padding:18px}.profile-grid .card h4{margin-bottom:3px;font-size:13px;font-weight:700}.profile-grid .card .card-sub{color:var(--muted);margin-bottom:14px;font-size:11px}.ad-section-title{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);align-items:center;gap:8px;margin:16px 0 8px;font-size:11px;font-weight:700;display:flex}.ad-section-title:first-child{margin-top:0}.ad-placeholder-tag{text-transform:none;letter-spacing:0;color:var(--warn);border:1px solid var(--warn);border-radius:99px;padding:1px 7px;font-size:9.5px;font-weight:600}.ad-count-tag{text-transform:none;letter-spacing:0;color:var(--muted);border:1px solid var(--border);border-radius:99px;padding:1px 7px;font-size:9.5px;font-weight:600}.usage-stats{gap:24px;display:flex}.u-stat .v{font-variant-numeric:tabular-nums;font-size:19px;font-weight:800}.u-stat .k{color:var(--muted);font-size:10.5px}.edge-stats{flex-wrap:wrap;gap:20px;display:flex}.edge-stat{flex-direction:column;gap:2px;min-width:100px;display:flex}.edge-stat .k{color:var(--muted);font-size:10.5px}.edge-stat .v{font-variant-numeric:tabular-nums;font-size:16px;font-weight:700}.edge-stat .range{color:var(--muted);font-variant-numeric:tabular-nums;font-size:10px}.bar-chart{align-items:flex-end;gap:6px;height:110px;padding-top:10px;display:flex}.bar-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;height:100%;display:flex;position:relative}.bar-fill{background:var(--accent-v);opacity:.85;border-radius:3px 3px 0 0;width:100%;max-width:24px;min-height:2px}.bar-label{color:var(--muted);white-space:nowrap;margin-top:5px;font-size:9px}.bar-col:hover .bar-tip{opacity:1}.bar-tip{background:var(--panel);border:1px solid var(--border);white-space:nowrap;opacity:0;pointer-events:none;border-radius:6px;margin-bottom:6px;padding:3px 7px;font-size:10.5px;transition:opacity .1s;position:absolute;bottom:100%}.benchmark-callout{background:var(--panel);border-radius:10px;align-items:center;gap:14px;padding:12px 14px;display:flex}.benchmark-callout .arrow{font-size:20px;font-weight:800}.benchmark-callout.up .arrow{color:var(--bad)}.benchmark-callout.down .arrow{color:var(--good)}.benchmark-callout .bm-text{color:var(--muted);font-size:12px}.benchmark-callout .bm-pct{font-size:17px;font-weight:800}.compare-stub{color:var(--muted);font-size:12.5px}.health-block{align-items:center;gap:16px;display:flex}.health-note{color:var(--muted);font-size:11.5px}.nilm-gantt{flex-direction:column;gap:6px;display:flex}.nilm-gantt-row{grid-template-columns:130px 1fr;align-items:center;gap:10px;display:grid}.nilm-gantt-label{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:7px;font-size:12px;font-weight:600;display:flex;overflow:hidden}.nilm-gantt-track{background:var(--panel2);border:1px solid var(--border);border-radius:5px;height:22px;position:relative;overflow:hidden}.nilm-gantt-bar{opacity:.9;border-radius:3px;min-width:2px;position:absolute;top:2px;bottom:2px}.nilm-gantt-bar:hover{opacity:1}.nilm-gantt-axis{color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;margin-top:6px;margin-left:140px;font-size:11px;display:flex}.skeleton{animation:2.2s ease-in-out infinite nilm-skeleton-pulse}@keyframes nilm-skeleton-pulse{0%,to{opacity:.55}50%{opacity:.8}}.nilm-gantt.skeleton .nilm-gantt-label{color:var(--muted);font-style:italic}.nilm-gantt.skeleton .nilm-gantt-track{background:color-mix(in srgb, var(--panel2) 70%, transparent)}.nilm-zone-filter{flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 16px;display:flex}.nilm-zone-filter-label{color:var(--muted);text-transform:uppercase;letter-spacing:.3px;margin-right:2px;font-size:11.5px}.nilm-zone-chip{background:var(--panel2);border:1px solid var(--border);color:var(--muted);cursor:pointer;border-radius:99px;padding:4px 12px;font-size:12px}.nilm-zone-chip:hover{color:var(--text);border-color:var(--muted)}.nilm-zone-chip.active{border-color:var(--accent-v);color:var(--accent-v)}.nilm-ev-tag.zone{color:var(--accent-i);border-color:color-mix(in srgb, var(--accent-i) 40%, var(--border))}.nilm-powerbar-modes{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.nilm-powerbar-mode{background:var(--panel2);border:1px solid var(--border);color:var(--muted);cursor:pointer;border-radius:99px;padding:6px 16px;font-size:12.5px}.nilm-powerbar-mode:hover:not(:disabled){color:var(--text);border-color:var(--muted)}.nilm-powerbar-mode.active{border-color:var(--accent-v);color:var(--accent-v)}.nilm-powerbar-mode:disabled{opacity:.45;cursor:not-allowed}.nilm-usage-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;display:grid}.nilm-usage-card{background:var(--panel2);border:1px solid var(--border);border-radius:10px;padding:14px 16px}.nilm-usage-card-unknown{opacity:.8;border-style:dashed}.nilm-usage-top{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:10px;display:flex}.nilm-usage-name{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;overflow:hidden}.nilm-usage-kwh{font-variant-numeric:tabular-nums;flex-shrink:0;font-size:13px}.nilm-usage-kwh-big{color:var(--muted);font-variant-numeric:tabular-nums;font-size:22px;font-weight:800}.nilm-usage-caption{color:var(--muted);margin-top:4px;font-size:11px}.nilm-hour-bars{align-items:flex-end;gap:2px;height:48px;display:flex}.nilm-hbar{border-radius:2px 2px 0 0;flex:1;min-height:2px;transition:opacity .2s}.nilm-hbar:hover{opacity:.8}.nilm-hour-labels{color:var(--muted);justify-content:space-between;margin-top:3px;font-size:10px;display:flex}.nilm-usage-status{margin-top:6px;font-size:11px}.nilm-composition-wrap{flex-direction:column;gap:12px;display:flex}.nilm-composition-top{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.nilm-composition-chart{flex:0 0 160px;width:160px;height:160px;min-height:160px;position:relative}.nilm-composition-total{text-align:center;pointer-events:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.nilm-composition-total b{font-variant-numeric:tabular-nums;font-size:14px;display:block}.nilm-composition-total span{color:var(--muted);text-transform:uppercase;letter-spacing:.3px;font-size:9px}.nilm-composition-graph{flex:320px;min-width:260px}.nilm-composition-graph-head{color:var(--muted);margin-bottom:4px;font-size:11px}.nilm-composition-legend{flex-flow:column wrap;gap:6px;display:flex}.nilm-composition-legend-item{font-variant-numeric:tabular-nums;align-items:center;gap:8px;font-size:12.5px;display:flex}.nilm-composition-legend-empty{color:var(--muted);font-variant-numeric:normal}.nilm-composition-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px}.nilm-composition-empty{text-align:center;color:var(--muted);padding:16px;font-size:13px}.nilm-appsum-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin-bottom:18px;display:grid}.nilm-appsum-card{border:1px solid var(--border);border-left:3px solid var(--c-app,var(--muted));background:var(--panel2);border-radius:10px;padding:10px 12px}.nilm-appsum-card.on{background:color-mix(in srgb, var(--c-app,var(--good)) 6%, var(--panel2))}.nilm-appsum-grid.skeleton .nilm-appsum-name{color:var(--muted);font-style:italic;font-weight:500}.nilm-appsum-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.nilm-appsum-name{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;overflow:hidden}.nilm-appsum-live{letter-spacing:.5px;color:var(--good);background:#3fb95026;border-radius:5px;flex-shrink:0;padding:2px 6px;font-size:9.5px;font-weight:800}.nilm-appsum-stats{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.nilm-appsum-stats .k{color:var(--muted);text-transform:uppercase;letter-spacing:.3px;font-size:9.5px;display:block}.nilm-appsum-stats .v{font-variant-numeric:tabular-nums;margin-top:2px;font-size:13px;font-weight:700;display:block}.nilm-ev-summary{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.nilm-ev-counts{color:var(--muted);gap:18px;font-size:13px;display:flex}.nilm-ev-counts b{color:var(--text);font-variant-numeric:tabular-nums}.nilm-ev-thresh{color:var(--muted);align-items:center;gap:8px;font-size:12.5px;display:flex}.nilm-ev-thresh b{color:var(--text);font-variant-numeric:tabular-nums}.nilm-ev-thresh input{accent-color:var(--accent-v)}.nilm-ev-list{flex-direction:column;gap:6px;max-height:460px;padding-right:4px;display:flex;overflow-y:auto}.nilm-ev-row{border:1px solid var(--border);background:var(--panel2);border-left-width:3px;border-radius:8px;align-items:center;gap:10px;padding:7px 10px;font-size:12.5px;display:flex}.nilm-ev-row.on{border-left-color:var(--good)}.nilm-ev-row.off{border-left-color:var(--muted)}.nilm-ev-list.skeleton .nilm-ev-row{border-left-color:var(--border)}.nilm-ev-list.skeleton .nilm-ev-type{background:color-mix(in srgb, var(--muted) 15%, transparent);color:var(--muted)}.nilm-ev-list.skeleton .nilm-ev-delta,.nilm-ev-list.skeleton .nilm-ev-name{color:var(--muted);font-style:italic;font-weight:500}.nilm-ev-type{letter-spacing:.5px;border-radius:5px;flex-shrink:0;padding:2px 7px;font-size:10px;font-weight:800}.nilm-ev-type.on{color:var(--good);background:#3fb95026}.nilm-ev-type.off{color:var(--muted);background:#8b949e26}.nilm-ev-delta{font-variant-numeric:tabular-nums;flex-shrink:0;width:74px;font-weight:700}.nilm-ev-meta{flex-wrap:wrap;flex:1;align-items:center;gap:8px;min-width:0;display:flex}.nilm-ev-name{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.nilm-ev-tag{border:1px solid var(--border);white-space:nowrap;border-radius:99px;flex-shrink:0;padding:1px 7px;font-size:10.5px}.nilm-ev-tag.predicted{color:var(--warn);border-color:color-mix(in srgb, var(--warn) 40%, var(--border))}.nilm-ev-tag.labeled{color:var(--good);border-color:color-mix(in srgb, var(--good) 45%, var(--border))}.nilm-ev-tag.unknown{color:var(--muted);border-style:dashed}.nilm-ev-tag.conf{color:var(--accent-v);border-color:color-mix(in srgb, var(--accent-v) 40%, var(--border));font-variant-numeric:tabular-nums}.nilm-ev-tag.load-category{font-weight:650}.nilm-ev-tag.load-resistive{color:var(--accent-i);border-color:color-mix(in srgb, var(--accent-i) 42%, var(--border))}.nilm-ev-tag.load-inductive{color:var(--accent-v);border-color:color-mix(in srgb, var(--accent-v) 42%, var(--border))}.nilm-ev-tag.load-capacitive{color:var(--good);border-color:color-mix(in srgb, var(--good) 42%, var(--border))}.nilm-ev-tag.load-nonlinear{color:var(--warn);border-color:color-mix(in srgb, var(--warn) 42%, var(--border))}.nilm-ev-tag.load-unknown{color:var(--muted);border-style:dashed}.nilm-ev-when{color:var(--muted);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:11.5px}.nilm-ev-confirm{font:inherit;cursor:pointer;color:var(--good);border:1px solid color-mix(in srgb, var(--good) 45%, var(--border));background:0 0;border-radius:6px;flex-shrink:0;padding:3px 7px;font-size:13px;font-weight:700;line-height:1}.nilm-ev-confirm:hover{background:color-mix(in srgb, var(--good) 15%, transparent)}.nilm-ev-identify{font:inherit;cursor:pointer;color:var(--accent-v);background:color-mix(in srgb, var(--accent-v) 8%, transparent);border:1px solid color-mix(in srgb, var(--accent-v) 38%, var(--border));border-radius:6px;padding:4px 9px;font-size:11px;font-weight:700}.nilm-ev-identify:hover{background:color-mix(in srgb, var(--accent-v) 15%, transparent)}.nilm-ev-quick{cursor:pointer;font:inherit;background:0 0;font-size:10.5px}.identify-backdrop{z-index:70;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#020817b8;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.identify-modal{width:min(1420px,100%);max-height:calc(100vh - 40px);color:var(--text);background:color-mix(in srgb, var(--panel) 96%, var(--bg));border:1px solid color-mix(in srgb, var(--accent-v) 18%, var(--border));border-radius:16px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 26px 80px #0000006b}.identify-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:20px;padding:20px 24px;display:flex}.identify-head h2{margin:3px 0 2px;font-size:23px}.identify-head p,.identify-section p,.identify-confirm-panel p{color:var(--muted);margin:0;font-size:12.5px;line-height:1.45}.identify-eyebrow{color:var(--accent-v);text-transform:uppercase;letter-spacing:.8px;font-size:10.5px;font-weight:800}.identify-head-actions{align-items:center;gap:12px;display:flex}.identify-head-actions>button{border:1px solid var(--border);background:var(--panel2);width:32px;height:32px;color:var(--muted);cursor:pointer;border-radius:8px;font-size:22px}.identify-suggestion-badge{color:var(--warn);border:1px solid color-mix(in srgb, var(--warn) 55%, var(--border));background:color-mix(in srgb, var(--warn) 9%, transparent);border-radius:7px;padding:5px 10px;font-size:11px;font-weight:700}.identify-layout{flex:1;grid-template-columns:minmax(0,1fr) 370px;min-height:0;display:grid;overflow:hidden}.identify-main{padding:18px 22px 26px;overflow-y:auto}.identify-confirm-panel{border-left:1px solid var(--border);background:color-mix(in srgb, var(--panel2) 72%, var(--panel));flex-direction:column;gap:15px;padding:22px 20px;display:flex;overflow-y:auto}.identify-confirm-panel h3{margin:3px 0 2px;font-size:19px}.identify-evidence{border:1px solid var(--border);background:var(--panel2);border-radius:12px;grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);gap:18px;padding:16px 18px;display:grid}.identify-metrics{grid-template-columns:repeat(2,minmax(120px,1fr));align-content:center;display:grid}.identify-metrics>div{border-left:1px solid var(--border);padding:10px 16px}.identify-metrics>div:nth-child(odd){border-left:0}.identify-metrics b{margin-bottom:3px;font-size:17px;display:block}.identify-metrics span{color:var(--muted);font-size:11px;display:block}.identify-chart{border:1px solid var(--border);background:var(--panel);border-radius:9px;padding:10px 12px 8px;position:relative}.identify-chart>span{color:var(--muted);font-size:10.5px}.identify-chart svg{width:100%;height:92px;margin-top:3px;display:block;overflow:visible}.identify-gridline{fill:none;stroke:var(--chart-grid);stroke-width:1px;stroke-dasharray:3 4}.identify-power-line{fill:none;stroke:var(--accent-v);stroke-width:3px;stroke-linejoin:round}.identify-chart small{text-align:right;color:var(--muted);font-size:10.5px;display:block}.identify-section{margin-top:20px}.identify-section h3{margin:0 0 4px;font-size:17px}.identify-suggestion-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px;display:grid}.identify-type-card{text-align:left;cursor:pointer;min-width:0;min-height:118px;font:inherit;color:var(--text);background:var(--panel2);border:1px solid var(--border);border-radius:10px;align-items:flex-start;gap:12px;padding:14px 36px 13px 14px;display:flex;position:relative}.identify-type-card:hover{border-color:color-mix(in srgb, var(--accent-v) 55%, var(--border))}.identify-type-card.selected{border:2px solid var(--accent-v);background:color-mix(in srgb, var(--accent-v) 7%, var(--panel2));box-shadow:0 0 0 3px color-mix(in srgb, var(--accent-v) 10%, transparent);padding:13px 35px 12px 13px}.identify-icon{letter-spacing:.5px;width:46px;height:46px;color:var(--accent-v);border:1px solid color-mix(in srgb, var(--accent-v) 42%, var(--border));background:color-mix(in srgb, var(--accent-v) 9%, var(--panel));border-radius:11px;flex:0 0 46px;place-items:center;font-size:14px;font-weight:800;display:grid}.identify-icon .appliance-icon{width:30px;height:30px}.identify-type-copy{flex-direction:column;gap:4px;min-width:0;display:flex}.identify-type-copy b{text-overflow:ellipsis;font-size:13px;overflow:hidden}.identify-type-copy strong{color:var(--accent-v);font-size:12px}.identify-type-copy small{color:var(--muted);font-size:10.5px;line-height:1.3}.identify-rank{background:var(--panel);border:1px solid var(--border);border-radius:50%;place-items:center;width:24px;height:24px;font-size:11px;font-weight:800;display:grid;position:absolute;top:6px;left:6px;transform:translate(-35%,-35%)}.identify-radio{border:2px solid var(--muted);border-radius:50%;width:17px;height:17px;position:absolute;top:13px;right:13px}.identify-type-card.selected .identify-radio{border:5px solid var(--accent-v)}.identify-library-head{justify-content:space-between;align-items:end;gap:20px;display:flex}.identify-library-head input{width:min(390px,46%);color:var(--text);background:var(--panel2);border:1px solid var(--border);font:inherit;border-radius:8px;padding:9px 12px;font-size:12.5px}.identify-library-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:12px;display:grid}.identify-library-grid .identify-type-card{min-height:94px}.identify-selected{border:1px solid color-mix(in srgb, var(--accent-v) 42%, var(--border));background:color-mix(in srgb, var(--accent-v) 6%, var(--panel));border-radius:10px;align-items:center;gap:12px;min-height:76px;padding:12px;display:flex}.identify-selected>div{flex-direction:column;gap:4px;display:flex}.identify-selected b{font-size:14px}.identify-selected small{color:var(--muted);font-size:11px}.identify-selected.empty{color:var(--muted);border-style:dashed;font-size:12px}.identify-confirm-panel label{color:var(--muted);flex-direction:column;gap:6px;font-size:11px;font-weight:700;display:flex}.identify-confirm-panel input,.identify-confirm-panel select{width:100%;color:var(--text);background:var(--panel);border:1px solid var(--border);font:inherit;border-radius:8px;padding:10px 11px;font-size:13px}.identify-watts-input{position:relative}.identify-watts-input input{padding-right:36px}.identify-watts-input span{color:var(--muted);position:absolute;top:50%;right:12px;transform:translateY(-50%)}.identify-info{color:var(--accent-v);background:color-mix(in srgb, var(--accent-v) 9%, transparent);border:1px solid color-mix(in srgb, var(--accent-v) 35%, var(--border));border-radius:8px;padding:11px 12px;font-size:11.5px;line-height:1.45}.identify-error{color:var(--bad);border:1px solid color-mix(in srgb, var(--bad) 35%, var(--border));border-radius:7px;padding:8px 10px;font-size:11.5px}.identify-empty{color:var(--muted);border:1px dashed var(--border);border-radius:9px;margin-top:12px;padding:18px;font-size:12px}.identify-confirm-btn,.identify-cancel-btn{font:inherit;cursor:pointer;border-radius:9px;padding:11px 14px;font-size:12.5px;font-weight:800}.identify-confirm-btn{color:#07111f;background:var(--accent-grad,linear-gradient(135deg, var(--accent-v), var(--accent-i)));border:0}.identify-confirm-btn:disabled{opacity:.45;cursor:default}.identify-cancel-btn{color:var(--accent-v);border:1px solid color-mix(in srgb, var(--accent-v) 42%, var(--border));background:0 0}@media (width<=1100px){.identify-layout{grid-template-columns:1fr;overflow-y:auto}.identify-main{overflow:visible}.identify-confirm-panel{border-left:0;border-top:1px solid var(--border);overflow:visible}.identify-suggestion-grid{grid-template-columns:1fr}.identify-library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=680px){.identify-backdrop{padding:0}.identify-modal{border-radius:0;height:100vh;max-height:100vh}.identify-head{padding:14px 16px}.identify-head h2{font-size:19px}.identify-suggestion-badge{display:none}.identify-main{padding:14px}.identify-evidence{grid-template-columns:1fr}.identify-library-head{flex-direction:column;align-items:stretch}.identify-library-head input{width:100%}.identify-library-grid{grid-template-columns:1fr}}.nilm-ev-menu-wrap{flex-shrink:0;position:relative}.nilm-ev-kebab{font:inherit;cursor:pointer;color:var(--muted);background:0 0;border:none;border-radius:6px;padding:2px 6px;font-size:16px;line-height:1}.nilm-ev-kebab:hover{background:var(--panel);color:var(--text)}.nilm-ev-menu-backdrop{z-index:40;position:fixed;inset:0}.nilm-ev-menu{z-index:41;background:var(--panel);border:1px solid var(--border);border-radius:9px;flex-direction:column;gap:2px;min-width:184px;max-height:280px;margin-top:4px;padding:6px;display:flex;position:absolute;top:100%;right:0;overflow-y:auto;box-shadow:0 8px 24px #00000047}.nilm-ev-menu-head{text-transform:uppercase;letter-spacing:.5px;color:var(--muted);padding:4px 8px;font-size:10px}.nilm-ev-menu-empty{color:var(--muted);max-width:180px;padding:4px 8px 8px;font-size:11px}.nilm-ev-menu-item{font:inherit;text-align:left;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:6px 8px;font-size:12.5px;display:flex}.nilm-ev-menu-item:hover{background:var(--panel2)}.nilm-ev-menu-item.sel{font-weight:700}.nilm-ev-menu-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px}.nilm-ev-menu-custom{border-top:1px solid var(--border);gap:5px;margin-top:4px;padding:6px 6px 2px;display:flex}.nilm-ev-menu-custom input{font:inherit;background:var(--panel2);border:1px solid var(--border);min-width:0;color:var(--text);border-radius:6px;flex:1;padding:4px 7px;font-size:12px}.nilm-ev-menu-custom button{font:inherit;cursor:pointer;background:var(--panel2);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:4px 9px;font-size:12px}.nilm-on-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-bottom:18px;display:grid}.nilm-app-card.prominent{background:color-mix(in srgb, var(--c-app,var(--accent-v)) 6%, var(--panel2));border-width:2px}.nilm-app-card.off-card{opacity:.65}.nilm-run-stats{grid-template-columns:1fr 1fr;gap:8px;margin-top:4px;display:grid}.nilm-run-stats .k{color:var(--muted);text-transform:uppercase;letter-spacing:.4px;font-size:10px;display:block}.nilm-run-stats .v{font-variant-numeric:tabular-nums;margin-top:2px;font-size:13px;font-weight:700;display:block}.nilm-log-table tr.log-running{background:#3fb9500f}.nilm-log-table tr.log-on{background:#58a6ff0a}.nilm-log-table .log-detail{color:var(--muted);white-space:normal;max-width:220px}.nilm-log-table tr.row-on td:first-child{border-left:3px solid var(--good)}.nilm .row-on{background:#3fb9500a}.nilm .row-off{opacity:.75}.nilm-section-title{text-transform:uppercase;letter-spacing:.8px;color:var(--muted);margin-top:4px;margin-bottom:12px;font-size:12px;font-weight:700}.nilm-top-row{grid-template-columns:340px 1fr;align-items:start;gap:14px;margin-bottom:14px;display:grid}@media (width<=900px){.nilm-top-row{grid-template-columns:1fr}}.nilm-top-row .panel{margin-bottom:0}.nilm-donut-wrap{flex-direction:column;align-items:center;display:flex}.nilm-donut-ring{flex-shrink:0;width:220px;height:220px;position:relative}.nilm-donut-center{text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.nilm-donut-kw{font-size:32px;font-weight:800;line-height:1}.nilm-donut-cap{color:var(--muted);margin-top:3px;font-size:12px}.nilm-donut-attr{color:var(--muted);margin-top:2px;font-size:12px}.nilm-donut-legend{flex-wrap:wrap;justify-content:center;gap:6px 14px;margin-top:16px;padding:0;list-style:none;display:flex}.nilm-donut-legend li{align-items:center;gap:6px;font-size:12.5px;display:flex}.nilm-donut-legend .dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.nilm-app-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;display:grid}.nilm-app-card{background:var(--panel2);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:6px;padding:14px 16px;display:flex}.nilm-app-card.on{border-color:var(--c-app,var(--accent-v));box-shadow:0 0 0 1px color-mix(in srgb, var(--c-app,var(--accent-v)) 30%, transparent)}.nilm-app-card .app-top{align-items:center;gap:8px;display:flex}.nilm-app-card .app-dot{background:var(--c-app,var(--accent-v));border-radius:50%;flex-shrink:0;width:8px;height:8px}.nilm-app-card .app-dot.off{background:var(--muted)}.nilm-app-card .app-name{flex:1;font-size:13.5px;font-weight:700}.nilm-app-card .app-zone{color:var(--muted);font-size:11px}.nilm-app-card .app-watts{font-variant-numeric:tabular-nums;color:var(--c-app,var(--accent-v));font-size:22px;font-weight:800}.nilm-app-card .app-watts.off{color:var(--muted);font-size:16px}.nilm-app-card .app-meta{color:var(--muted);justify-content:space-between;font-size:11.5px;display:flex}.nilm-app-card .conf-bar{background:var(--border);border-radius:99px;height:3px;margin-top:2px;overflow:hidden}.nilm-app-card .conf-fill{background:var(--c-app,var(--accent-v));border-radius:99px;height:100%}.nilm-unknown-card{background:var(--panel2);opacity:.7;border:1px dashed #283c6440;border-radius:10px;flex-direction:column;gap:6px;padding:14px 16px;display:flex}.nilm-unknown-card .app-name{color:var(--muted);font-size:13.5px;font-weight:700}.nilm-unknown-card .app-watts{color:var(--muted);font-size:22px;font-weight:800}.nilm-unknown-card .app-meta{color:var(--muted);font-size:11.5px}.nilm-timeline{flex-direction:column;display:flex}.nilm-tl-row{border-bottom:1px solid var(--border);grid-template-columns:160px 12px 1fr 100px 90px;align-items:center;gap:12px;padding:10px 0;display:grid}.nilm-tl-row:last-child{border-bottom:none}.nilm-tl-row .tl-time{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.nilm-tl-row .tl-dot{border-radius:50%;justify-self:center;width:10px;height:10px}.nilm-tl-row .tl-name{font-size:13.5px;font-weight:600}.nilm-tl-row .tl-name small{color:var(--muted);margin-left:6px;font-size:12px;font-weight:400}.nilm-tl-row .tl-energy{text-align:right;font-variant-numeric:tabular-nums;font-size:13px}.nilm-tl-row .tl-wh{color:var(--accent-v)}.nilm-tl-row .tl-run{color:var(--muted)}.nilm-tl-row .tl-state{text-align:right}.nilm-badge{border-radius:99px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}.nilm-badge.on{color:var(--good);background:#3fb95026}.nilm-badge.off{color:var(--muted);background:#8b949e1f}.nilm-badge.running{color:var(--good);background:#3fb95038}.nilm-history-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-bottom:14px;display:grid}.nilm-history-card{background:var(--panel2);border:1px solid var(--border);border-radius:10px;padding:14px 16px}.nilm-history-card .hc-top{justify-content:space-between;align-items:baseline;margin-bottom:8px;display:flex}.nilm-history-card .hc-name{font-size:13px;font-weight:700}.nilm-history-card .hc-today{font-size:12px}.nilm-history-card .hc-axis{color:var(--muted);justify-content:space-between;margin-top:4px;font-size:11px;display:flex}.nilm .td-name{font-weight:600}.nilm .td-color{vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}footer{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:10px;margin-top:6px;font-size:11px;display:flex}.nilm-composition-wrap:has(.composition-summary){container-type:inline-size}.composition-summary{grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:16px;width:100%;min-width:0;max-width:640px;display:grid}.composition-appliances{min-width:0}.composition-list-heading{flex-wrap:wrap;justify-content:space-between;gap:4px 12px;margin-bottom:8px;font-size:14px;font-weight:600;display:flex}.composition-list-heading>span{color:var(--muted);font-size:12px;font-weight:400}.nilm-composition-wrap .composition-summary .composition-appliances .nilm-composition-legend{scrollbar-gutter:stable;flex-flow:column;gap:0;max-height:240px;padding:0 6px 0 0;overflow:hidden auto}.nilm-composition-wrap .composition-summary .composition-appliances .nilm-composition-legend-item{border-bottom:1px solid var(--border);grid-template-columns:9px minmax(0,1fr) auto;gap:8px;padding:8px 0;font-size:14px;line-height:1.5;display:grid}.nilm-composition-wrap .composition-summary .composition-appliances .nilm-composition-legend-empty{display:block}.composition-appliance-name{overflow-wrap:anywhere;min-width:0}.composition-appliance-watts{white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:600}.composition-appliances .nilm-composition-legend:focus-visible{outline:2px solid var(--c0);outline-offset:2px}.nilm-composition-wrap .composition-layout,.mock-app .appliance-content .nilm-composition-wrap .nilm-composition-top.composition-layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:20px;display:grid}.composition-layout>.nilm-composition-graph{border-top:1px solid var(--border);width:100%;min-width:0;padding-top:16px}@container (width<=380px){.composition-summary{grid-template-columns:minmax(0,1fr);gap:12px}.composition-summary .nilm-composition-chart{justify-self:center}}.logout-btn{background:var(--panel);border:1px solid var(--border);width:100%;color:var(--muted);border-radius:99px;margin-top:10px;padding:6px 10px;font-size:11.5px;display:block}.logout-btn:hover{color:var(--bad);border-color:var(--bad)}.logout-btn:disabled{opacity:.6;cursor:default}.who{color:var(--muted);word-break:break-all;margin-top:10px;font-size:11px}.must-change{color:var(--text);background:#f59e0b1f;border:1px solid #f59e0b80;border-radius:10px;margin-bottom:12px;padding:9px 13px;font-size:12.5px}.must-change-link{font:inherit;color:var(--accent-v);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.must-change-link:hover{color:var(--accent-p)}.settings-page{flex-direction:column;gap:28px;padding:24px;display:flex}.settings-section{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);padding:20px 22px}.settings-section h3{color:var(--text);margin:0 0 10px;font-size:16px}.settings-section p{color:var(--muted);margin:0;font-size:13px;line-height:1.6}.settings-account-email{margin-bottom:16px!important}.settings-coming-soon{background:0 0;border-style:dashed}.settings-password-form{flex-direction:column;gap:12px;max-width:360px;display:flex}.settings-password-note{color:var(--warn);background:#f59e0b1a;border:1px solid #f59e0b59;border-radius:8px;margin:0;padding:9px 12px;font-size:12.5px}.settings-password-error{color:var(--bad);margin:0;font-size:12.5px}.settings-password-success{color:var(--good);margin:0;font-size:12.5px}.settings-section h4{color:var(--text);text-transform:uppercase;letter-spacing:.03em;margin:22px 0 10px;font-size:13px;font-weight:600}.settings-section h4:first-child{margin-top:0}.settings-section .field-row{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.settings-section .field-row+.field-row{margin-top:10px}.settings-hint{color:var(--muted);margin:8px 0 0;font-size:12px}.admin-table{border-collapse:collapse;width:100%;margin-bottom:14px}.admin-table th{text-align:left;border-bottom:1px solid var(--line);color:var(--muted);white-space:nowrap;padding:6px 10px;font-size:12px}.admin-table td{border-bottom:1px solid var(--line);padding:7px 10px;font-size:13px}.admin-table:last-child{margin-bottom:0}.login{background:radial-gradient(1200px 600px at 50% -10%, #2a7fff24, transparent 60%), radial-gradient(900px 500px at 85% 10%, #7c5cff1a, transparent 60%), var(--bg);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:var(--panel);border:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:16px;flex-direction:column;gap:12px;width:100%;max-width:380px;padding:28px 26px;display:flex;box-shadow:0 14px 40px #283c6429}.login-brand{text-align:center;margin-bottom:4px}.login-brand .t{justify-content:center;align-items:center;gap:9px;font-size:20px;font-weight:700;display:flex}.login-brand .t .spark{color:var(--accent-p)}.login-brand .t .brand-logo{border-radius:5px;width:26px;height:26px;display:block}.login-brand .s{color:var(--muted);margin-top:2px;font-size:12px}.login-title{text-align:center;margin:6px 0 0;font-size:18px;font-weight:700}.login-sub{color:var(--muted);text-align:center;margin:0 0 6px;font-size:12.5px}.login-field{color:var(--muted);flex-direction:column;gap:5px;font-size:12px;display:flex}.login-field input{background:var(--bg);border:1px solid var(--border);color:var(--text);font:inherit;border-radius:8px;outline:none;padding:9px 12px;font-size:13px}.login-field input:focus{border-color:var(--accent-v)}.login-field input::placeholder{color:var(--muted)}.login-btn{color:#0b1020;background:var(--accent-grad,linear-gradient(135deg, var(--accent-v), #7c5cff));border:none;border-radius:99px;margin-top:4px;padding:10px 14px;font-size:14px;font-weight:650}.login-btn:hover{filter:brightness(1.08)}.login-btn:disabled{filter:none;opacity:.7;cursor:default}.login-error{text-align:center;color:var(--bad);background:#ef44441a;border:1px solid #ef444473;border-radius:8px;margin:0;padding:8px 11px;font-size:12px}.login-note{color:var(--muted);text-align:center;margin:4px 0 0;font-size:11px;line-height:1.45}:root{--pan:var(--accent-v)}.nav .badge.pan{color:var(--pan);border-color:var(--pan)}.panels-head{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:nowrap;align-items:center;gap:12px;margin-bottom:14px;padding:11px 16px;display:flex}.panels-title{margin:0;font-size:16px;font-weight:700}.panels-who{color:var(--muted);margin-top:2px;font-size:12px}.spacer{flex:none;margin-left:auto}.search{background:var(--panel2);border:1px solid var(--border);border-radius:99px;flex:none;align-items:center;gap:8px;padding:5px 12px;display:flex}.search input{color:var(--text);font:inherit;background:0 0;border:none;outline:none;width:190px}.search input::placeholder,.search .i{color:var(--muted)}@media (width<=1000px){.panels-head{gap:8px;margin-bottom:10px;padding:8px 12px}.panels-who,.spacer{display:none}.search{flex:1;min-width:0}.search input{width:100%;min-width:0}}.panels .stat{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:13px 15px}.panels .stat .value{font-variant-numeric:tabular-nums;margin:4px 0 1px;font-size:24px;font-weight:700}.panels .stat .label{align-items:center;gap:6px;display:flex}.dot.good{background:var(--good);box-shadow:0 0 0 3px #3fb9502e}.v-good{color:var(--good)}.v-pan{color:var(--pan)}.panels-filterbar{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:14px;padding:10px 14px;display:flex}.filters{flex-wrap:wrap;gap:7px;display:flex}.fbtn{background:var(--panel2);border:1px solid var(--border);color:var(--muted);border-radius:99px;align-items:center;gap:6px;padding:5px 13px;font-size:12px;display:flex}.fbtn:hover{color:var(--text);border-color:var(--muted)}.fbtn.active{color:var(--text);border-color:var(--pan);background:#4fc3f71a}.fbtn .n{font-variant-numeric:tabular-nums;opacity:.8;font-size:11px}.panels-grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px;display:grid}.panel-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:12px;padding:14px 15px;transition:border-color .15s,transform .15s;display:flex}.panel-card:hover{border-color:var(--pan);transform:translateY(-2px)}.panel-card.offline{opacity:.72}.panel-card.selected{border-color:var(--pan);box-shadow:0 0 0 1px var(--pan)}.panel-card .head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.panel-card .name{font-size:15px;font-weight:700}.panel-card .serial{color:var(--muted);margin-top:2px;font-family:ui-monospace,monospace;font-size:11px}.panel-card .status{letter-spacing:.4px;border:1px solid var(--muted);color:var(--muted);white-space:nowrap;border-radius:99px;align-items:center;gap:6px;padding:3px 10px;font-size:11px;font-weight:700;display:inline-flex}.panel-card .status.online{border-color:var(--good);color:var(--good)}.panel-card .meta{flex-direction:column;gap:7px;display:flex}.panel-card .meta .r{align-items:center;gap:9px;font-size:12.5px;display:flex}.panel-card .meta .r .k{color:var(--muted);flex:none;width:72px}.panel-card .meta .r .val{font-variant-numeric:tabular-nums}.panel-card .foot{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding-top:11px;display:flex}.panel-card .load{color:var(--muted);font-size:12px}.panel-card .load b{color:var(--text);font-variant-numeric:tabular-nums;font-size:13.5px;font-weight:700}.panel-card .load b.v-pan{color:var(--pan)}.panel-card .load .muted{color:var(--muted)}.panel-card .open{color:var(--pan);border:1px solid var(--border);background:var(--panel2);border-radius:99px;padding:5px 12px;font-size:12px}.panel-card:hover .open{border-color:var(--pan)}.panels .empty{text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:var(--radius);padding:50px 20px}.panels .chip.error{margin-bottom:14px;display:inline-block}.chat-fab{z-index:30;color:#0b1020;background:var(--accent-grad,linear-gradient(135deg, var(--accent-v), #7c5cff));border:none;border-radius:50%;place-items:center;width:54px;height:54px;font-size:22px;line-height:1;display:grid;position:fixed;bottom:22px;right:22px;box-shadow:0 8px 22px #2a7fff59}.chat-fab:hover{filter:brightness(1.08)}.chat-panel{z-index:30;background:var(--panel);border:1px solid var(--border);border-radius:14px;flex-direction:column;width:360px;max-width:calc(100vw - 32px);height:520px;max-height:calc(100vh - 120px);display:flex;position:fixed;bottom:88px;right:22px;overflow:hidden;box-shadow:0 14px 40px #283c642e}.chat-head{border-bottom:1px solid var(--border);background:var(--panel2);justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;display:flex}.chat-title{font-size:14px;font-weight:700}.chat-ai{letter-spacing:.5px;color:#0b1020;background:var(--accent-grad,linear-gradient(90deg, #7c5cff, var(--accent-v)));vertical-align:middle;border-radius:99px;margin-left:6px;padding:2px 7px;font-size:9.5px;font-weight:800}.chat-sub{color:var(--muted);margin-top:2px;font-size:11px}.chat-head-btns{flex:none;align-items:center;gap:2px;display:flex}.chat-x{color:var(--muted);background:0 0;border:none;padding:2px 6px;font-size:14px}.chat-x:hover{color:var(--text)}.chat-x[aria-pressed=true]{color:var(--accent-v)}.chat-msgs{overscroll-behavior:contain;flex-direction:column;flex:1;gap:9px;padding:14px;display:flex;overflow-y:auto}.chat-bubble{border-radius:14px;max-width:84%;padding:9px 12px;font-size:13px;line-height:1.45}.chat-bubble.bot{background:var(--panel2);border:1px solid var(--border);color:var(--text);border-top-left-radius:5px;align-self:flex-start;min-height:min-content}.chat-bubble.me{color:#0b1020;white-space:pre-wrap;background:linear-gradient(135deg,#4fc3f7eb,#a78bfaeb);border-top-right-radius:5px;align-self:flex-end;font-weight:550}.chat-bubble.bot>:first-child{margin-top:0}.chat-bubble.bot>:last-child{margin-bottom:0}.chat-bubble.bot p{margin:0 0 .55em}.chat-bubble.bot p:last-child{margin-bottom:0}.chat-bubble.bot ul,.chat-bubble.bot ol{margin:0 0 .55em;padding-left:1.25em}.chat-bubble.bot li{margin:.15em 0}.chat-bubble.bot strong{font-weight:700}.chat-table-wrap{max-width:100%;margin:.4em 0 .65em;overflow-x:auto}.chat-bubble.bot table{border-collapse:collapse;width:max-content;font-size:12px}.chat-bubble.bot th,.chat-bubble.bot td{border:1px solid var(--border);text-align:left;white-space:nowrap;padding:5px 8px}.chat-bubble.bot th{background:var(--panel);color:var(--muted);font-weight:650}.chat-typing{background:var(--panel2);border:1px solid var(--border);border-radius:5px 14px 14px;align-self:flex-start;gap:5px;padding:12px 14px;display:flex}.chat-typing i{background:var(--muted);border-radius:50%;width:6px;height:6px;animation:1.2s infinite chat-blink}.chat-typing i:nth-child(2){animation-delay:.2s}.chat-typing i:nth-child(3){animation-delay:.4s}@keyframes chat-blink{0%,60%,to{opacity:.3}30%{opacity:1}}.chat-suggest{flex-direction:column;gap:7px;margin-top:4px;display:flex}.chat-suggest button{text-align:left;background:var(--panel2);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:8px 11px;font-size:12.5px}.chat-suggest button:hover{border-color:var(--accent-v);color:var(--accent-v)}.chat-followups{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.chat-followups .btn{white-space:normal;text-align:left}.chat-composer{border-top:1px solid var(--border);background:var(--panel2);align-items:center;gap:8px;padding:10px 12px;display:flex}.chat-composer input{background:var(--bg);border:1px solid var(--border);color:var(--text);font:inherit;border-radius:99px;outline:none;flex:1;padding:8px 13px;font-size:13px}.chat-composer input::placeholder{color:var(--muted)}.chat-send{color:#0b1020;background:var(--accent-grad,linear-gradient(135deg, var(--accent-v), #7c5cff));border:none;border-radius:50%;flex:none;place-items:center;width:36px;height:36px;font-size:14px;display:grid}.chat-send:disabled{opacity:.4;cursor:default}.chat-tab{flex-direction:column;height:calc(100vh - 190px);min-height:380px;padding:0;display:flex;overflow:hidden}.chat-tab-head{border-bottom:1px solid var(--border);background:var(--panel2);justify-content:space-between;align-items:flex-start;gap:10px;padding:14px 16px;display:flex}.chat-tab-head .chat-x{flex:none;margin-top:1px;font-size:15px}.chat-tab .chat-msgs{gap:12px;padding:16px}.chat-tab .chat-composer{padding:14px 16px}.chat-tab .chat-bubble{max-width:78%;padding:11px 14px;font-size:14px}.chat-tab .chat-composer input{padding:10px 15px;font-size:14px}.chat-tab .chat-suggest{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px;display:grid}@media (width<=480px){.chat-panel{width:auto;bottom:84px;left:12px;right:12px}.chat-fab{bottom:16px;right:16px}}.section-tabs{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.section-tabs button{background:var(--panel2);border:1px solid var(--border);color:var(--muted);cursor:pointer;border-radius:99px;padding:6px 16px;font-size:12.5px}.section-tabs button:hover{color:var(--text);border-color:var(--muted)}.section-tabs button.active{border-color:var(--accent-v);color:var(--accent-v)}.live-data-tabs{margin-top:-2px;padding-left:8px}.live-data-tabs button{padding:5px 14px;font-size:12px}.relay-spectrum-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.relay-spectrum-grid .panel{margin-bottom:0}.relay-spectrum-grid{margin-bottom:14px}@media (width<=1200px){.relay-spectrum-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=680px){.relay-spectrum-grid{grid-template-columns:1fr}}.settings-stub{color:var(--muted);text-align:center;border:1px dashed var(--border);border-radius:var(--radius);margin-top:8px;padding:32px 24px}.settings-stub h3{color:var(--text);margin:0 0 8px;font-size:16px}.settings-stub p{margin:0;font-size:13px;line-height:1.6}.mock-banner{color:var(--warn);background:#d2992214;border:1px solid #d299224d;border-radius:8px;align-items:flex-start;gap:10px;margin-bottom:16px;padding:10px 14px;font-size:12.5px;display:flex}.mock-banner b{color:var(--warn);margin-bottom:2px;display:block}.mock-banner p{color:var(--muted);margin:0;font-size:12px;line-height:1.45}.mock-banner-icon{font-size:16px;line-height:1.2}.sw{vertical-align:middle;border-radius:2px;width:9px;height:9px;margin-right:4px;display:inline-block}.sw.good{background:var(--good)}.sw.peak{background:var(--bad);opacity:.65}.sw.hist{background:var(--accent-v);opacity:.5}.hl{font-variant-numeric:tabular-nums}.cost-proj-top{flex-wrap:wrap;align-items:baseline;gap:12px;margin:2px 0 10px;display:flex}.cost-proj-amt{font-variant-numeric:tabular-nums;font-size:30px;font-weight:800}.cost-proj-amt .unit{color:var(--muted);font-size:15px;font-weight:400}.cost-proj-sub{color:var(--muted);font-variant-numeric:tabular-nums;font-size:15px}.cost-trend{border-radius:99px;padding:2px 9px;font-size:11.5px;font-weight:700}.cost-trend.down{color:var(--good);background:#3fb9501f}.cost-trend.up{color:var(--bad);background:#ef44441f}.cost-proj-bar{background:var(--panel2);border:1px solid var(--border);border-radius:99px;height:8px;margin:4px 0 6px;overflow:hidden}.cost-proj-bar i{background:linear-gradient(90deg, var(--accent-v), var(--accent-p));height:100%;display:block}.cost-proj-marks{color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;font-size:11px;display:flex}.cost-proj-note{color:var(--muted);margin:12px 0 0;font-size:12.5px;line-height:1.5}.kpi-split{border-top:1px solid var(--border);grid-template-columns:1fr 1fr;gap:12px;margin-top:14px;padding-top:14px;display:grid}.kpi-tile{flex-direction:column;gap:3px;display:flex}.kpi-label{text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-size:11px;font-weight:600}.kpi-value{font-variant-numeric:tabular-nums;color:var(--good);font-size:24px;font-weight:800}.kpi-value.over{color:var(--bad)}.kpi-co2-row{align-items:center;gap:6px;display:flex}.kpi-value .kpi-unit{color:var(--muted);margin-left:2px;font-size:13px;font-weight:500}.kpi-sub{color:var(--muted);font-size:11px;line-height:1.4}@media (width<=560px){.kpi-split{grid-template-columns:1fr}}.cost-save-amt{color:var(--good);font-variant-numeric:tabular-nums;font-size:27px;font-weight:800}.cost-save-sub{color:var(--muted);margin-top:3px;font-size:11.5px}.cost-save-list{flex-direction:column;gap:8px;margin-top:14px;display:flex}.cost-save-row{align-items:center;gap:10px;font-size:12.5px;display:flex}.cost-save-row .ico{background:#3fb95024;border-radius:7px;flex:none;place-items:center;width:24px;height:24px;font-size:12px;display:grid}.cost-save-row .nm{color:var(--text);flex:1}.cost-save-row .nm small{color:var(--muted);font-size:10.5px;display:block}.cost-save-row .amt{font-variant-numeric:tabular-nums;color:var(--good);font-weight:700}.cost-save-row.pending .ico{background:#d2992224}.cost-save-row.pending .amt{color:var(--muted)}.cost-price-top{flex-wrap:wrap;align-items:baseline;gap:9px;margin:2px 0 12px;display:flex}.cost-price-amt{font-variant-numeric:tabular-nums;font-size:25px;font-weight:800}.cost-price-amt .unit{color:var(--muted);font-size:13px;font-weight:400}.cost-band{border-radius:99px;margin-left:auto;padding:2px 9px;font-size:10.5px;font-weight:700}.cost-band.cheap{color:var(--good);background:#3fb9501f}.cost-band.mid{color:var(--warn);background:#d299221f}.cost-band.exp{color:var(--bad);background:#ef44441f}.cost-pcurve{grid-template-columns:repeat(24,1fr);align-items:end;gap:2px;height:60px;display:grid}.cost-pcurve .h{background:var(--border);border-radius:2px 2px 0 0;min-height:3px}.cost-pcurve .h.cheap{background:var(--good)}.cost-pcurve .h.exp{background:var(--bad)}.cost-pcurve .h.now{outline:2px solid var(--text);outline-offset:1px}.cost-pcurve-ax{color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;margin-top:6px;font-size:10px;display:flex}.cost-appl{flex-direction:column;gap:11px;display:flex}.cost-appl-row{grid-template-columns:126px 1fr 56px;align-items:center;gap:10px;font-size:12.5px;display:grid}.cost-appl-row .nm{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:0;min-width:0;display:flex;overflow:hidden}.cost-appl-row .track{background:var(--panel2);border:1px solid var(--border);border-radius:5px;height:14px;overflow:hidden}.cost-appl-row .track i{border-radius:5px;height:100%;display:block}.cost-appl-row .amt{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}.cost-conf-dot{border-radius:50%;flex:none;width:7px;height:7px;margin-right:7px;display:inline-block}.cost-conf-dot.hi{background:var(--good)}.cost-conf-dot.med{background:var(--warn)}.cost-bars{grid-template-columns:repeat(7,1fr);align-items:end;gap:12px;height:170px;padding-top:6px;display:grid}.cost-bcol{flex-direction:column;justify-content:flex-end;align-items:center;gap:7px;height:100%;display:flex}.cost-bcol .stack{border-radius:5px 5px 0 0;flex-direction:column-reverse;width:60%;max-width:30px;display:flex;overflow:hidden}.cost-bcol .stack i{width:100%;display:block}.cost-bcol .stack .off{background:var(--good)}.cost-bcol .stack .pk{background:var(--bad);opacity:.75}.cost-bcol .d{color:var(--muted);font-size:11px}.cost-bcol .t{color:var(--muted);font-variant-numeric:tabular-nums;font-size:10.5px}.cost-bcol.today .d{color:var(--text);font-weight:700}.cost-bcol.today .stack{outline:2px solid var(--border);outline-offset:2px}.cost-legend{color:var(--muted);gap:14px;margin-top:8px;font-size:11px;display:flex}.opt{flex-direction:column;gap:12px;min-height:0;display:flex}.opt-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.opt-eyebrow{color:var(--muted);letter-spacing:.8px;text-transform:uppercase;margin:0 0 4px;font-size:12px;font-weight:700}.opt-lede{color:var(--muted);max-width:52ch;font-size:13px}.opt-lede b{color:var(--text)}.opt-warn{color:var(--warn);font-weight:700}.opt-kpis{flex-wrap:wrap;gap:10px;display:flex}.opt-kpi{border:1px solid var(--border);background:var(--panel);border-radius:9px;flex-direction:column;gap:2px;min-width:120px;padding:8px 12px;display:flex}.opt-kpi span{color:var(--muted);font-size:11px;font-weight:600}.opt-kpi b{font-variant-numeric:tabular-nums;font-size:15px;line-height:1.25}.opt-kpi.missing b{color:var(--muted);font-size:14px;font-weight:600}.opt-plan-missing{color:var(--muted);padding:4px 0 2px;font-size:12.5px;line-height:1.45}.opt-layout{grid-template-columns:minmax(260px,320px) 1fr;align-items:start;gap:14px;min-height:min(70vh,720px);display:grid}@media (width<=980px){.opt-layout{grid-template-columns:1fr;min-height:0}}.opt-pick{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:10px;max-height:calc(100vh - 140px);padding:12px;display:flex;position:sticky;top:8px}.opt-pick-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.opt-pick-head b{font-size:14px}.opt-pick-head .muted,.opt-actions .muted{color:var(--muted);font-size:12px}.opt-app-list{flex-direction:column;flex:1;gap:4px;min-height:0;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.opt-row{border:1px solid var(--border);background:var(--panel2);opacity:.7;border-radius:8px;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:6px 8px;display:grid}.opt-row.on{opacity:1;border-color:color-mix(in srgb, var(--accent-v) 40%, var(--border))}.opt-row-check{align-items:center;margin:0;display:flex}.opt-row-main{flex-direction:column;gap:1px;min-width:0;display:flex}.opt-row-main b{text-overflow:ellipsis;white-space:nowrap;font-size:13px;line-height:1.25;overflow:hidden}.opt-row-main span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.opt-row-edit{padding:4px 9px!important;font-size:12px!important}.opt-stage{flex-direction:column;gap:12px;min-width:0;display:flex}.opt-empty{background:var(--panel);border:1px dashed var(--border);border-radius:var(--radius);flex-direction:column;flex:1;justify-content:center;align-items:flex-start;gap:8px;min-height:280px;padding:28px 32px;display:flex}.opt-empty b{font-size:15px}.opt-empty p{max-width:48ch;color:var(--muted);margin:0;font-size:13px;line-height:1.55}.opt-panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}.opt-panel-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:10px;display:flex}.opt-panel-head b{font-size:13px}.opt-panel-head .muted{color:var(--muted);font-size:12px}.opt-panel-table{overflow:auto}.opt-stage .rec-strip{margin-top:0}.opt-results-grid{grid-template-columns:minmax(0,1.7fr) minmax(220px,.9fr);align-items:start;gap:12px;display:grid}@media (width<=1100px){.opt-results-grid{grid-template-columns:1fr}}.opt-app-card{border:1px solid var(--border);background:var(--panel2);opacity:.72;border-radius:9px;padding:12px 14px}.opt-app-card.on{opacity:1;border-color:color-mix(in srgb, var(--accent-v) 45%, var(--border))}.opt-app-card.opt-add{opacity:1;border-style:dashed}.opt-app-top{align-items:center;gap:10px;margin-bottom:10px;display:flex}.opt-select{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.opt-name{background:var(--panel);width:100%;color:var(--text);border:1px solid var(--border);border-radius:6px;padding:6px 10px;font-size:14px;font-weight:700}.opt-fields{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px 12px;display:grid}.opt-fields label{color:var(--muted);flex-direction:column;gap:4px;font-size:11px;font-weight:600;display:flex}.opt-fields input,.opt-fields select{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:5px 8px;font-size:12.5px;font-weight:400}.opt-fields label.opt-check{flex-direction:row;align-items:center;gap:8px;padding-top:18px;font-weight:500}.opt-modal-backdrop{z-index:50;background:#00000073;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.opt-modal{background:var(--panel);border:1px solid var(--border);border-radius:12px;width:min(560px,100%);max-height:min(85vh,720px);padding:16px 18px;overflow:auto}.opt-modal-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.opt-modal-head b{font-size:15px}.opt-modal-name{color:var(--muted);flex-direction:column;gap:4px;margin-bottom:12px;font-size:11px;font-weight:600;display:flex}.opt-modal-note{border-top:1px solid var(--border);margin-top:10px;padding-top:10px;font-size:11px;line-height:1.5}.opt-app-row{border:1px solid var(--border);background:var(--panel2);border-radius:9px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:10px 12px;display:grid}.opt-app-row .nm{flex-direction:column;gap:2px;min-width:0;display:flex}.opt-app-row .nm b{font-size:13.5px}.opt-app-row .nm small{color:var(--muted);font-size:11.5px}.opt-app-row .req{color:var(--muted);align-items:center;gap:8px;font-size:12px;display:flex}.opt-app-row .req select{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:4px 8px;font-size:12.5px}.opt-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.opt-pick .opt-actions{margin-top:auto;padding-top:4px}.opt-actions button.primary,.opt-modal .opt-actions button.primary,button.opt-row-edit{border:1px solid var(--border);background:var(--panel2);color:var(--text);cursor:pointer;border-radius:9px;padding:9px 16px;font-size:12.5px;font-weight:700}.opt-actions button.primary,.opt-modal .opt-actions button.primary{background:var(--accent-grad,linear-gradient(135deg, var(--accent-v), #7c5cff));color:#0b1020;border:none}.opt-actions button.primary:disabled{opacity:.5}.opt-actions button.ghost,.opt-modal button.ghost{border:1px solid var(--border);background:var(--panel2);color:var(--text);cursor:pointer;border-radius:9px;padding:9px 14px;font-size:12.5px}.opt-gantt{background:var(--panel2);border:1px solid var(--border);border-radius:9px;margin:0;padding:12px 13px}.opt-gantt.preview{margin:0}.opt-gantt-row{grid-template-columns:minmax(90px,120px) 1fr;align-items:center;gap:10px;margin-bottom:8px;display:grid}.opt-gantt-row .nm{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.opt-gantt .axis{color:var(--muted);justify-content:space-between;margin-top:5px;margin-left:130px;font-size:10px;display:flex}.opt-gantt .key{color:var(--muted);gap:16px;margin-top:9px;margin-left:130px;font-size:11px;display:flex}.hist-group+.hist-group{margin-top:14px}.hist-table-wrap{margin-top:10px;overflow-x:auto}.hist-table-cap{caption-side:top;text-align:left;color:var(--muted);padding:0 8px 7px;font-size:11px}.opt-gantt-when{text-transform:uppercase;letter-spacing:.4px;color:var(--muted);margin-bottom:9px;font-size:11px;font-weight:700}.opt-gantt-row.window{border-bottom:1px solid var(--border);margin-bottom:10px;padding-bottom:9px}.opt-gantt-row.window .nm{font-variant-numeric:tabular-nums;color:var(--muted)}.opt-table{border-collapse:collapse;background:0 0;width:100%;margin:0;font-size:12.5px}.opt-table th,.opt-table td{text-align:left;border-bottom:1px solid var(--border);padding:7px 8px}.opt-table th{color:var(--muted);text-transform:uppercase;letter-spacing:.4px;font-size:11px;font-weight:700}.opt-table td.save{color:var(--good);font-variant-numeric:tabular-nums;font-weight:700}.opt-table td{font-variant-numeric:tabular-nums}.opt-table tr:last-child td{border-bottom:none}.opt-table th.num,.opt-table td.num{text-align:right}.opt-recs{color:var(--text);margin:0;padding-left:18px;font-size:13px;line-height:1.55}.opt-recs li{margin-bottom:6px}.hist-divider{border-top:1px solid var(--border);flex-direction:column;gap:8px;margin:2px 0 0;padding-top:10px;display:flex}.hist-divider .hist-head b{font-size:14px}.hist-divider .hist-head span{color:var(--muted);margin-top:2px;font-size:12px;display:block}.hist-controls{align-items:center;gap:8px;display:flex}.hist-controls select{flex:1;min-width:0}.hist-status{color:var(--muted);font-size:11.5px}.hist-status b{color:var(--text);font-weight:600}.hist-empty{color:var(--muted);margin:0;font-size:12.5px;line-height:1.55}.rec-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:14px;display:flex}.rec-head .est{color:var(--muted);text-align:right;font-size:12.5px}.rec-head .est b{color:var(--warn);font-variant-numeric:tabular-nums;margin-top:2px;font-size:20px;font-weight:800;display:block}.rec-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:42px 1fr auto;align-items:start;gap:14px;margin-bottom:14px;padding:16px;display:grid}.rec-card .icon{background:var(--panel2);border-radius:11px;place-items:center;width:42px;height:42px;font-size:19px;display:grid}.rec-card.phantom .icon{background:#d2992224}.rec-card.shift .icon{background:#ef44441f}.rec-card.schedule .icon{background:#2a7fff1f}.rec-card .title{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.rec-card .title b{font-size:14.5px}.rec-card .save{color:var(--warn);background:#d299221f;border-radius:99px;padding:2px 9px;font-family:ui-monospace,monospace;font-size:12px;font-weight:700}.rec-conf{border-radius:99px;align-items:center;gap:5px;padding:2px 8px;font-size:10.5px;font-weight:700;display:inline-flex}.rec-conf.hi{color:var(--good);background:#3fb9501f}.rec-conf.med{color:var(--warn);background:#d299221f}.rec-conf .d{background:currentColor;border-radius:50%;width:5px;height:5px}.rec-applied-tag{color:var(--good);align-items:center;gap:5px;font-size:11px;font-weight:700;display:none}.rec-card.applied{border-color:var(--good);background:#3fb9500d}.rec-card.applied .rec-actions{opacity:.5;pointer-events:none}.rec-card.applied .rec-applied-tag{display:inline-flex}.rec-card p{color:var(--muted);margin:8px 0 0;font-size:12.5px;line-height:1.55}.rec-card p .hl{color:var(--text);font-family:ui-monospace,monospace}.rec-actions{flex-direction:column;align-items:stretch;gap:8px;display:flex}.rec-actions button{border:1px solid var(--border);background:var(--panel2);color:var(--text);white-space:nowrap;border-radius:9px;padding:9px 14px;font-size:12.5px;font-weight:700}.rec-actions button.primary{background:var(--accent-grad,linear-gradient(135deg, var(--accent-v), #7c5cff));color:#0b1020;border-color:#0000}.rec-actions button.primary:hover{filter:brightness(1.08)}.rec-actions button.ghost:hover{border-color:var(--muted)}.rec-strip{background:var(--panel2);border:1px solid var(--border);border-radius:9px;margin-top:14px;padding:12px 13px}.rec-strip .lab{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:10px;margin-bottom:9px;font-size:11px;display:flex}.rec-strip .lab .keys{flex-wrap:wrap;gap:12px;display:flex}.rec-hours{grid-template-columns:repeat(24,1fr);align-items:end;gap:2px;height:42px;display:grid}.rec-hours .h{background:var(--border);border-radius:2px 2px 0 0;transition:background .25s,opacity .25s}.rec-hours .h.now{background:var(--bad)}.rec-hours .h.target{background:var(--good)}.rec-hours .h.hist{background:var(--accent-v);opacity:.5}.rec-hours .h.hist.target{background:linear-gradient(180deg, var(--good) 60%, var(--accent-v) 60%);opacity:1}.rec-strip .axis{color:var(--muted);justify-content:space-between;margin-top:5px;font-size:10px;display:flex}.rec-sched{background:var(--panel2);border:1px solid var(--border);border-radius:9px;margin-top:14px;padding:12px 13px}.rec-sched .axis{color:var(--muted);justify-content:space-between;margin-top:5px;font-size:10px;display:flex}.rec-track{background:var(--panel);border:1px solid var(--border);border-radius:6px;height:24px;position:relative;overflow:hidden}.rec-track .cheap{border-left:1px dashed var(--good);border-right:1px dashed var(--good);background:#3fb95024;position:absolute;top:0;bottom:0}.rec-track .runold{background:var(--bad);opacity:.5;border-radius:4px;height:16px;position:absolute;top:4px}.rec-track .runnew{background:var(--good);border-radius:4px;height:16px;position:absolute;top:4px}.rec-sched .key{color:var(--muted);align-items:center;gap:16px;margin-top:9px;font-size:11px;display:flex}.rec-toast{background:var(--panel);color:var(--text);border:1px solid var(--good);opacity:0;pointer-events:none;z-index:60;border-radius:11px;align-items:center;gap:9px;padding:11px 18px;font-size:12.5px;transition:all .28s;display:flex;position:fixed;bottom:22px;left:50%;transform:translate(-50%)translateY(20px);box-shadow:0 12px 30px #00000047}.rec-toast.show{opacity:1;transform:translate(-50%)translateY(0)}.rec-toast b{color:var(--good)}[data-theme=midnight] .sidebar,[data-theme=midnight] .topbar,[data-theme=midnight] .panel{background:var(--panel);box-shadow:none}[data-theme=midnight] .topbar{padding:10px 14px}[data-theme=midnight] .panel{padding:13px 15px}[data-theme=midnight] .cards .stat{border-top:1px solid var(--border)}[data-theme=midnight] .nav a:hover,[data-theme=midnight] .nav a.active{color:var(--text);border-color:var(--border);background:#2a7fff1a}:root{--canvas:#f5f7f8;--surface:#fff;--ink:#172e3a;--muted:#697b85;--line:#e4eaed;--nav:#142b37;--blue:#246bdf;--blue-soft:#eef4ff;--teal:#267f77;--green:#21876c;--green-soft:#eaf5ef;--amber:#ad7221;--radius:14px;--shadow:0 3px 12px #18314303;color:var(--ink);background:var(--canvas);font-synthesis:none;font-family:Segoe UI,Arial,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}button{color:inherit}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:4px;outline:3px solid #6b9ff5}button,input,select{min-height:40px}input,select,textarea{color:var(--ink);background:#fff;border:1px solid #d9e2e7;border-radius:8px;max-width:100%;padding:10px 12px}input[type=checkbox]{width:16px;height:16px;min-height:16px;accent-color:var(--blue)}label{color:var(--muted);font-size:13px;display:block}label input:not([type=checkbox]),label select{width:100%;margin-top:7px;display:block}h1,h2,h3,p{margin:0}h1{letter-spacing:-1.1px;font-size:30px;font-weight:600}h2{letter-spacing:-.25px;font-size:16px;font-weight:600}h3{font-size:15px;font-weight:600}p{line-height:1.6}svg{display:block}.icon{stroke:currentColor;fill:none;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:19px;height:19px}.skip{z-index:99;background:#fff;padding:16px;position:fixed;top:-100px}.skip:focus{top:10px}.app{grid-template-columns:226px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:var(--nav);color:#abc0cc;z-index:30;flex-direction:column;width:226px;padding:31px 17px 20px;display:flex;position:fixed;inset:0 auto 0 0}.brand{color:#fff;align-items:center;gap:11px;padding:0 15px;display:flex}.brandmark{color:#8fdcc9;place-items:center;width:32px;height:35px;display:grid}.brandmark .icon{stroke-width:2px;width:32px;height:32px}.wordmark{letter-spacing:3px;font-size:24px;font-weight:650}.brand-sub{letter-spacing:2.2px;text-transform:uppercase;color:#88a1ae;margin:7px 0 0 61px;font-size:9px}.nav-label{letter-spacing:1.8px;margin:42px 15px 13px;font-size:9px;font-weight:600}.nav{gap:5px;display:grid}.nav a{border-radius:8px;align-items:center;gap:13px;height:44px;padding:0 15px;font-size:13px;transition:background .15s,color .15s;display:flex;position:relative}.nav a:hover{color:#fff;background:#ffffff09}.nav a.active{color:#fff;background:#294651}.nav a.active:before{content:"";background:#8fdcc9;border-radius:3px;width:3px;height:18px;position:absolute;left:0}.nav .active .icon{color:#8fdcc9}.nav a .tiny-badge{margin-left:auto}.tiny-badge{letter-spacing:.5px;border:1px solid #476371;border-radius:4px;padding:2px 5px;font-size:9px}.sidebar-bottom{margin-top:auto;padding-top:36px}.preview-note{color:#a9bec9;border:1px solid #3a515e;border-radius:10px;margin:0 7px 19px;padding:14px;font-size:11px;line-height:1.6}.preview-note strong{color:#e4edf2;margin-bottom:4px;font-size:12px;display:block}.account{border-top:1px solid #2b434f;align-items:center;gap:10px;padding:15px 10px 0;font-size:12px;display:flex}.avatar{color:#e1f0ed;background:#304b58;border-radius:50%;place-items:center;width:34px;height:34px;font-size:11px;font-weight:600;display:grid}.account small{color:#8da6b4;margin-top:3px;font-size:10px;display:block}.account a:last-child{margin-left:auto}.workspace{grid-column:2;min-width:0}.topbar{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;gap:16px;height:77px;padding:0 38px;display:flex}.breadcrumbs{color:var(--muted);align-items:center;gap:11px;font-size:12px;display:flex}.breadcrumbs strong{color:var(--ink);font-weight:500}.top-actions{align-items:center;gap:20px;display:flex}.top-actions .badge{font-size:10px}.date{color:var(--muted);font-size:11px}.menu{display:none}.content{max-width:1560px;margin:auto;padding:32px 38px 20px}.page-head{justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px;display:flex}.page-head p{color:var(--muted);margin-top:7px;font-size:12px}.eyebrow{letter-spacing:1.8px;text-transform:uppercase;color:var(--muted);margin-bottom:9px;font-size:10px;font-weight:600}.btn{white-space:nowrap;background:#fff;border:1px solid #dce4e9;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:9px 13px;font-size:12px;font-weight:500;transition:background .15s;display:inline-flex}.btn:hover{background:#f0f4f7}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn.primary:hover{background:#1c5cc5}.btn.dark{background:var(--nav);border-color:var(--nav);color:#fff}.btn.ghost{color:var(--muted);background:0 0;border-color:#0000}.btn.small{min-height:32px;padding:6px 10px;font-size:11px}.text-link{color:var(--blue);align-items:center;gap:7px;font-size:11px;font-weight:600;display:inline-flex}.text-link .icon{width:14px;height:14px}.badge{color:#657984;white-space:nowrap;background:#f1f4f6;border-radius:5px;align-items:center;gap:6px;padding:5px 8px;font-size:10px;display:inline-flex}.badge.green{background:var(--green-soft);color:#267c62}.badge.blue{background:var(--blue-soft);color:var(--blue)}.badge.amber{color:#93601c;background:#fff5e5}.dot{background:currentColor;border-radius:50%;width:5px;height:5px;display:inline-block}.muted{color:var(--muted)}.small{font-size:11px}.flex{align-items:center;gap:12px;display:flex}.spread{justify-content:space-between}.wrap{flex-wrap:wrap}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0;overflow:hidden}.pad{padding:23px}.card-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:21px;display:flex}.card-head p{color:var(--muted);margin-top:5px;font-size:11px}.stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:23px;display:grid}.stat{min-height:143px;padding:20px 21px;position:relative}.stat-label{color:var(--muted);justify-content:space-between;align-items:center;font-size:11px;display:flex}.stat-label .icon{color:#8096a1;width:16px;height:16px}.stat-value{letter-spacing:-1.1px;font-variant-numeric:tabular-nums;margin:13px 0 8px;font-size:31px;font-weight:600;line-height:1.3}.stat-value span{letter-spacing:0;color:var(--muted);margin-left:5px;font-size:13px;font-weight:400}.stat-foot{color:var(--muted);align-items:center;gap:7px;font-size:10px;display:flex}.stat:first-child{border-top:2px solid var(--blue)}.stat-foot .green{color:var(--green)}.dashboard-grid{grid-template-columns:minmax(0,1.85fr) minmax(285px,1fr);gap:23px;display:grid}.stack{align-content:start;gap:23px;display:grid}.segmented{border:1px solid var(--line);background:#f3f6f8;border-radius:7px;gap:2px;padding:3px;display:inline-flex}.segmented button{color:var(--muted);background:0 0;border:none;border-radius:5px;min-height:27px;padding:5px 12px;font-size:10px}.segmented button.selected{color:var(--ink);background:#fff;box-shadow:0 1px 4px #142b3712}.chart-legend{color:var(--muted);align-items:center;gap:17px;font-size:10px;display:flex}.swatch{border-radius:2px;width:7px;height:7px;margin-right:6px;display:inline-block}.chart{width:100%;height:auto;overflow:visible}.chart text{fill:#83939b;font:10px Segoe UI,sans-serif}.chart .grid{stroke:#e9eff2;stroke-dasharray:3 5}.chart-caption{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;margin-top:14px;padding-top:14px;font-size:10px;display:flex}.chart-summary{align-items:baseline;gap:8px;margin:15px 0 12px;display:flex}.chart-summary strong{letter-spacing:-.6px;font-size:27px;font-weight:600}.chart-summary span{color:var(--muted);font-size:11px}.breakdown-total{letter-spacing:-1px;margin:11px 0 4px;font-size:32px;font-weight:600}.breakdown-total span{color:var(--muted);letter-spacing:0;font-size:12px;font-weight:400}.distribution{border-radius:4px;gap:4px;height:12px;margin:23px 0 20px;display:flex;overflow:hidden}.distribution span{border-radius:2px;height:100%}.breakdown-row{align-items:center;gap:8px;margin:17px 0;font-size:12px;display:flex}.breakdown-row strong{margin-left:auto;font-size:11px;font-weight:500}.breakdown-row small{color:var(--muted);text-align:right;width:35px;font-size:10px}.notice{color:var(--muted);background:#f5f8fa;border-radius:8px;padding:13px 15px;font-size:11px;line-height:1.65}.notice.blue{background:var(--blue-soft);color:#41618c}.phase-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.phase{border-right:1px solid var(--line);padding-right:12px}.phase:last-child{border:0}.phase .label{color:var(--muted);font-size:11px}.phase .power{letter-spacing:-.5px;margin:12px 0 7px;font-size:23px;font-weight:550}.phase .power span{color:var(--muted);font-size:11px;font-weight:400}.phase .details{color:var(--muted);font-size:10px}.mini-bar{background:#edf1f4;border-radius:3px;height:3px;margin-top:17px;overflow:hidden}.mini-bar span{background:var(--blue);border-radius:3px;height:100%;display:block}.opportunity{border-radius:var(--radius);background:#ecf2f4;border:1px solid #dce7e9;padding:24px;position:relative;overflow:hidden}.opportunity .icon-tile{color:#3a7d77;background:#dce9e9}.opportunity h2{max-width:210px;margin:15px 0 9px;font-size:19px;line-height:1.4}.opportunity p{color:#627c86;max-width:270px;margin-bottom:19px;font-size:11px}.icon-tile{color:#69818e;background:#f0f5f8;border-radius:9px;place-items:center;width:35px;height:35px;display:grid}.opportunity .btn{font-size:11px}.section-space{margin-top:23px}.table-wrap{overflow:auto}table{border-collapse:collapse;text-align:left;white-space:nowrap;width:100%;font-size:11px}th{color:var(--muted);text-transform:uppercase;letter-spacing:.8px;border-bottom:1px solid var(--line);background:#f8fafb;padding:12px 15px;font-size:9px;font-weight:500}td{font-variant-numeric:tabular-nums;border-bottom:1px solid #edf1f3;padding:14px 15px}tbody tr:last-child td{border-bottom:0}td.name{font-weight:550}.table-title{justify-content:space-between;align-items:center;gap:10px;padding:20px 23px;display:flex}.table-title p{color:var(--muted);margin-top:4px;font-size:11px}.table-icon{align-items:center;gap:10px;display:flex}.table-icon .icon-tile{width:30px;height:30px}.footer{border-top:1px solid var(--line);color:#86949c;justify-content:space-between;gap:15px;margin-top:28px;padding-top:15px;font-size:10px;display:flex}.footer strong{color:#667e89;font-weight:500}.tabs{border-bottom:1px solid var(--line);gap:23px;margin-bottom:23px;display:flex;overflow:auto}.tabs a{white-space:nowrap;color:var(--muted);padding:0 0 14px;font-size:12px}.tabs a.active{border-bottom:2px solid var(--blue);color:var(--blue)}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:22px;display:flex}.toolbar select{font-size:12px}.two-col{grid-template-columns:1fr 1fr;gap:23px;display:grid}.three-col{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.detail-list{gap:17px;margin:23px 0;display:grid}.detail-list div{justify-content:space-between;gap:14px;font-size:12px;display:flex}.detail-list dt{color:var(--muted)}.detail-list dd{font-variant-numeric:tabular-nums;margin:0}.device-card .device-visual{color:#628695;background:linear-gradient(135deg,#f1f6f8,#fafbfc);place-items:center;height:110px;margin:-23px -23px 22px;display:grid}.device-visual .icon{stroke-width:.85px;width:52px;height:52px}.form-grid{grid-template-columns:1fr 1fr;gap:17px;display:grid}.fields{gap:17px;display:grid}.rule{border:0;border-top:1px solid var(--line);margin:22px 0}.settings-nav{flex-direction:column;gap:4px;display:flex}.settings-layout{grid-template-columns:175px 1fr;gap:25px;display:grid}.settings-nav a{color:var(--muted);border-radius:8px;padding:12px;font-size:12px}.settings-nav .active{color:var(--ink);background:#eaf0f5}.pricing{grid-template-columns:2fr 1fr;gap:23px;display:grid}.big-number{letter-spacing:-1.6px;margin:18px 0;font-size:42px;font-weight:550}.big-number span{color:var(--muted);letter-spacing:0;font-size:13px;font-weight:400}.sample-banner{color:#5b7494;background:#f0f5fb;border:1px solid #d8e4f4;border-radius:9px;margin-bottom:23px;padding:12px 16px;font-size:11px;line-height:1.6}.timeline{min-width:600px}.timeline-ruler{color:var(--muted);grid-template-columns:135px repeat(5,1fr);margin-bottom:20px;font-size:10px;display:grid}.timeline-row{border-top:1px solid var(--line);grid-template-columns:135px 1fr;align-items:center;min-height:58px;font-size:12px;display:grid}.timeline-track{background:repeating-linear-gradient(90deg,#0000 0 calc(25% - 1px),#e9eff2 calc(25% - 1px) 25%);height:32px;position:relative}.time-block{color:#2b7860;white-space:nowrap;background:#dbede7;border:1px solid #bddcd0;border-radius:4px;height:24px;padding:4px 7px;font-size:9px;position:absolute;top:4px;overflow:hidden}.time-block.old{color:#778b96;background:#e9edf2;border-color:#d8e0e5}.timeline-scroll{overflow:auto}.timeline-label{align-items:center;gap:9px;display:flex}.check-row{border-bottom:1px solid var(--line);color:var(--ink);align-items:center;gap:10px;padding:15px 0;font-size:13px;display:flex}.check-row small{color:var(--muted);margin-top:5px;font-size:10px;display:block}.check-row button{margin-left:auto}.optimizer-grid{grid-template-columns:300px 1fr;gap:23px;display:grid}.empty{text-align:center;color:var(--muted);padding:50px 25px;font-size:13px}.empty .icon{width:30px;height:30px;margin:0 auto 17px}.empty h2{color:var(--ink);margin-bottom:8px}.empty .btn{margin-top:19px}.chat-start{text-align:center;max-width:620px;margin:65px auto 25px}.chat-start .brandmark{color:var(--blue);background:#e9f0fb;border-radius:15px;width:50px;height:50px;margin:auto}.chat-start h2{letter-spacing:-.6px;margin:22px 0 10px;font-size:28px;font-weight:500}.chat-start p{color:var(--muted);font-size:12px}.prompts{grid-template-columns:1fr 1fr;gap:12px;margin:30px 0;display:grid}.prompts button{text-align:left;white-space:normal;padding:17px;line-height:1.6}.chat-compose{border:1px solid var(--line);background:#fff;border-radius:12px;align-items:center;gap:10px;max-width:720px;margin:25px auto;padding:12px;display:flex}.chat-compose input{border:0;flex:1;min-width:0;font-size:13px}.chat-messages{max-width:650px;margin:auto;font-size:13px}.message{border:1px solid var(--line);background:#fff;border-radius:12px;margin:14px 0;padding:17px 20px;line-height:1.7}.message.user{background:#eaf0f9;margin-left:80px}.login{background:#fff;grid-template-columns:1fr 1fr;min-height:100vh;display:grid}.login-art{background:var(--nav);color:#fff;flex-direction:column;justify-content:space-between;padding:65px;display:flex}.login-art .brand{padding:0}.login-art h1{letter-spacing:-2px;max-width:420px;font-size:50px;line-height:1.15}.login-art p{color:#abc0cc;max-width:370px;margin-top:25px;font-size:14px}.login-form{align-self:center;width:100%;max-width:490px;margin:auto;padding:50px}.login-form h1{margin-bottom:12px}.login-form>p{color:var(--muted);margin-bottom:30px;font-size:13px}dialog{border:1px solid var(--line);width:min(540px,100% - 32px);max-height:85vh;color:var(--ink);border-radius:16px;padding:27px;box-shadow:0 24px 100px #102c3840}dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#102c3850}dialog h2{margin-bottom:13px;font-size:21px}dialog p{color:var(--muted);margin-bottom:20px;font-size:12px}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:25px;display:flex}.dialog-close{float:right;background:0 0;border:0;min-height:24px;padding:0}#toast{background:var(--nav);color:#fff;z-index:100;opacity:0;pointer-events:none;border-radius:10px;max-width:90vw;padding:14px 20px;font-size:12px;transition:all .2s;position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);box-shadow:0 6px 30px #102c3825}#toast.show{opacity:1;transform:translate(-50%)}.mobile-overlay{display:none}.progress{background:#edf2f5;border-radius:5px;height:7px;margin:22px 0 10px;overflow:hidden}.progress span{background:var(--blue);height:100%;display:block}.sr-only{clip:rect(0,0,0,0);width:1px;height:1px;position:absolute;overflow:hidden}.skeleton{background:linear-gradient(100deg,#edf1f4 20%,#f9fafb 40%,#edf1f4 60%) 0 0/200% 100%;border-radius:10px;height:125px;animation:1.6s infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}@media (width>=1500px){.content{padding-top:40px}.stat{min-height:154px}.dashboard-grid{gap:25px}.card.pad{padding:27px}}@media (width<=1200px){.topbar{padding:0 25px}.content{padding:27px 25px}.app{grid-template-columns:202px 1fr}.sidebar{width:202px;padding-left:12px;padding-right:12px}.brand{padding:0 10px}.brand-sub{margin-left:55px;font-size:8px}.dashboard-grid{grid-template-columns:minmax(0,1.5fr) minmax(255px,1fr);gap:16px}.stats{gap:12px}.stat{padding:18px 16px}.stat-value{font-size:28px}.pad{padding:20px}.optimizer-grid{grid-template-columns:255px 1fr}.three-col{grid-template-columns:1fr 1fr}}@media (width<=980px){.dashboard-grid,.optimizer-grid{grid-template-columns:1fr}.dashboard-grid>.stack:last-child,.stats{grid-template-columns:1fr 1fr}.date{display:none}.two-col,.pricing,.settings-layout{grid-template-columns:1fr}.settings-nav{flex-direction:row;overflow:auto}.settings-nav a{white-space:nowrap}.login-art{padding:35px}.login-art h1{font-size:38px}}@media (width<=700px){.app{display:block}.sidebar{width:226px;transition:transform .2s;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.mobile-overlay.open{z-index:25;background:#142b3760;display:block;position:fixed;inset:0}.menu{background:0 0;border:0;min-height:34px;padding:5px;display:inline-flex}.topbar{height:65px;padding:0 18px}.top-actions{gap:10px}.top-actions>.btn{min-height:34px;padding:7px;font-size:10px}.breadcrumbs{gap:7px;font-size:10px}.breadcrumbs>span:first-child{display:none}.content{padding:25px 16px}.page-head{align-items:flex-start;gap:10px;margin-bottom:22px}.page-head>.btn{min-height:34px;padding:8px;font-size:10px}h1{font-size:26px}.page-head p{max-width:260px;font-size:11px}.eyebrow{font-size:9px}.dashboard-grid>.stack:last-child,.three-col{grid-template-columns:1fr}.stat{min-height:138px;padding:17px 15px}.stat-value{font-size:28px}.stat-foot{font-size:9px}.stat-label{font-size:10px}.card-head{gap:8px}.card-head h2{font-size:14px}.segmented button{padding:5px 8px}.pad{padding:19px}.phase-grid{gap:10px}.phase .power{font-size:21px}.phase .details{font-size:9px}.footer{flex-direction:column;gap:6px;font-size:9px}.login{grid-template-columns:1fr}.login-art{display:none}.login-form{padding:28px}.prompts{grid-template-columns:1fr}.chat-start{margin-top:28px}.form-grid{grid-template-columns:1fr}.top-actions .badge{font-size:8px}.timeline{min-width:550px}}.login-art h2{letter-spacing:-2px;max-width:420px;font-size:50px;font-weight:600;line-height:1.15}@media (width<=980px){.login-art h2{font-size:38px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.nilm-review-banner{background:#fff9ed;border:1px solid #e9d8b3;border-radius:12px;align-items:center;gap:15px;margin-bottom:23px;padding:17px 20px;display:flex}.nilm-review-banner strong{font-size:13px}.nilm-review-banner p{color:#896c39;margin-top:4px;font-size:11px}.nilm-review-banner .btn{margin-left:auto}.nilm-card-actions{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:18px;padding-top:17px;display:flex}.nilm-event>details>summary{cursor:pointer;align-items:center;gap:22px;padding:21px 24px;list-style:none;display:flex}.nilm-event summary::-webkit-details-marker{display:none}.nilm-timeline summary::-webkit-details-marker{display:none}.nilm-time{font-variant-numeric:tabular-nums;min-width:102px;font-size:18px}.nilm-time small,.nilm-event-name small{color:var(--muted);margin-top:5px;font-size:10px;display:block}.nilm-event-name strong{font-size:14px}.nilm-event-badges{flex-wrap:wrap;gap:7px;margin-left:auto;display:flex}.nilm-event-body{border-top:1px solid var(--line);padding:23px}.nilm-evidence{grid-template-columns:1fr 1fr;gap:32px;display:grid}.nilm-evidence section+section{border-left:1px solid var(--line);padding-left:27px}.nilm-delta{letter-spacing:-.7px;font-size:30px;font-weight:600}.nilm-delta span{color:var(--muted);font-size:13px;font-weight:400}.nilm-evidence h3{flex-wrap:wrap;align-items:center;gap:9px;min-height:39px;display:flex}.nilm-more{border-top:1px solid var(--line);margin-top:19px;padding-top:15px}.nilm-more summary{color:var(--blue);cursor:pointer;font-size:12px}.nilm-signal{margin:17px 0 12px}.nilm-signal figcaption{color:var(--muted);font-size:10px;line-height:1.6}.nilm-actions{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:15px;margin-top:20px;padding-top:20px;display:flex}.nilm-timeline>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:22px;font-size:14px;list-style:none;display:flex}.nilm-timeline small{color:var(--muted);margin-top:6px;font-size:11px;font-weight:400;display:block}.nilm-quality{grid-template-columns:180px 1fr;gap:16px;margin:0;font-size:12px;display:grid}.nilm-quality dt{font-weight:600}.nilm-quality dd{color:var(--muted);margin:0;line-height:1.65}.nilm-dialog{width:min(790px,100% - 32px)}summary:focus-visible{outline-offset:3px;outline:3px solid #6b9ff5}@media (width<=700px){.nilm-review-banner{flex-wrap:wrap}.nilm-review-banner .btn{margin-left:50px}.nilm-event>details>summary{flex-wrap:wrap;gap:10px;padding:18px}.nilm-event-badges{width:100%;margin-left:0}.nilm-event-name{flex:1}.nilm-event-body{padding:18px}.nilm-evidence{grid-template-columns:1fr;gap:22px}.nilm-evidence section+section{border-left:0;border-top:1px solid var(--line);padding-top:20px;padding-left:0}.nilm-quality{grid-template-columns:1fr;gap:8px}.nilm-quality dd{margin-bottom:12px}.nilm-actions{align-items:flex-start}.nilm-time{min-width:80px}}html[data-theme]{--bg:#f5f7f8;--body-bg:#f5f7f8;--panel:#fff;--panel2:#f8fafb;--text:#172e3a;--muted:#697b85;--border:#e4eaed;--accent-v:#246bdf;--accent-p:#2872d5;--accent-i:#267f77;--good:#21876c;--bad:#b44045;--warn:#ad7221;--glass-filter:none;--chart-grid:#e9eff2;--chart-text:#71838d;--chart-axis:#dce5e9;--chart-tooltip-bg:#fff;--chart-tooltip-border:#dce5e9;--c0:#246bdf;--c1:#267f77;--c2:#ad7221;--c3:#4f86b8;--c4:#5f887b;--c5:#5d6fb0;--c6:#a66155;--c7:#527f91}body{background:var(--canvas);color:var(--ink);font-family:Segoe UI,Arial,sans-serif;font-size:13px}.mock-app .sidebar{border:0;flex-direction:column;align-items:stretch;gap:0;height:100dvh;overflow-y:auto}.mock-app .brand{flex-shrink:0;padding:0 15px}.mock-app .brand-copy{flex-direction:column;align-items:flex-start;gap:5px;display:flex}.mock-app .brand-copy .wordmark{line-height:1}.mock-app .brand-copy .brand-sub{margin:0;line-height:1}.mock-app .nav{flex-direction:column;display:grid}.mock-app .nav a{white-space:nowrap;color:#abc0cc;border:0;justify-content:flex-start;margin:0}.mock-app .nav a.active{color:#fff;background:#294651}.mock-app .nav a:hover{color:#fff}.mock-app .topbar{background:#fff;border-top:0;border-left:0;border-right:0;border-radius:0;flex-wrap:nowrap;min-height:77px;margin:0;position:static}.mock-app .content{width:100%;min-width:0}.mock-app .page-content{min-width:0}.mock-app .panel-picker{background:#fff;border:1px solid #dce4e9;border-radius:8px;flex-shrink:0;align-items:center;gap:6px;padding:0 10px;display:flex}.mock-app .panel-picker select{background:0 0;border:0;width:auto;min-width:0;max-width:210px;margin:0;padding:10px 4px;font-size:12px}.account-copy{overflow-wrap:anywhere;min-width:0;font-size:10px}.account-exit{color:#abc0cc;background:0 0;border:0;flex:none;min-height:32px;margin-left:auto;padding:0}.nav-scrim{z-index:25;background:#142b3760;border:0;border-radius:0;position:fixed;inset:0}.mock-app .menu{display:none}.mock-app .stat{background:#fff;margin:0}.mock-app .stat-label{text-transform:none;letter-spacing:0}.mock-app .stat-value{color:var(--ink)}.mock-app .card h2,.mock-app .card h3{text-transform:none;color:var(--ink)}.mock-app .card-head h2{margin:0;padding:0;display:block}.mock-app .feature-card{margin-bottom:23px;overflow:visible}.mock-app .row{grid-template-columns:minmax(0,1fr);gap:23px;margin:0;display:grid}.mock-app .row.even{grid-template-columns:repeat(2,minmax(0,1fr))}.mock-app .row.thirds{grid-template-columns:repeat(3,minmax(0,1fr))}.mock-app .row>*{min-width:0}.mock-app .notice{margin-bottom:0}.mock-app .notice.error{color:#9e3035;background:#fff0ef}.mock-app .notice+.page-content{margin-top:20px}.source-disclosure{color:var(--muted);flex-shrink:0;margin-left:auto;font-size:10px;position:relative}.source-disclosure summary{cursor:pointer}.source-disclosure[open] span{z-index:5;border:1px solid var(--line);overflow-wrap:anywhere;background:#fff;border-radius:8px;width:260px;padding:14px;display:block;position:absolute;top:24px;right:0;box-shadow:0 4px 20px #142b3715}.window-controls{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:23px;display:flex}.window-controls .range-group{border:1px solid var(--line);background:#f3f6f8;border-radius:7px;gap:2px;margin:0;padding:3px;display:flex}.mock-app .range-btn,.mock-app .nilm-powerbar-mode{min-height:32px;color:var(--ink);background:#fff;border:1px solid #dce4e9;border-radius:7px;padding:6px 10px;font-size:11px}.window-controls .range-btn{background:0 0;border:0;min-height:27px}.mock-app .range-btn.active,.mock-app .nilm-powerbar-mode.active{color:var(--blue);background:#eef4ff;border-color:#bcd2f2}.window-controls .range-caption{color:var(--muted);font-size:11px}.window-controls details{margin-left:auto;font-size:11px}.custom-range{flex-wrap:wrap;align-items:end;gap:12px;margin-top:10px;display:flex}.custom-range label{font-size:11px}.inline-field{align-items:center;gap:10px;display:flex}.inline-field select{width:auto;margin:0}.mock-app .settings-section{background:0 0;border:0;margin:0;padding:0}.mock-app .settings-section h3{margin:0 0 8px;font-size:16px}.mock-app .settings-section p{color:var(--muted);max-width:760px;margin-bottom:20px;font-size:12px}.mock-app .settings-section label{margin-bottom:14px}.mock-app .settings-section .fin-market-picker{font-size:12px;display:block}.mock-app .settings-section .fin-market-picker select{background:#fff;width:100%;margin-top:8px;display:block}.mock-app .settings-section .my-rate-plan-head{border-top:1px solid var(--line);padding-top:20px}.mock-app .capture-btn{color:var(--ink);background:#fff;border:1px solid #dce4e9;border-radius:8px;align-items:center;min-height:40px;margin-top:15px;margin-right:12px;padding:9px 13px;font:500 12px Segoe UI,Arial,sans-serif;display:inline-flex}.mock-app .capture-btn.capturing{border-color:var(--bad);color:var(--bad);background:#fff0ef}.mock-app .opt-head{align-items:center}.mock-app .opt-head .opt-eyebrow{text-transform:none;letter-spacing:0;color:var(--ink);font-size:12px}.mock-app .opt-lede{font-size:11px;line-height:1.65}.mock-app .optimizer-inputs .opt-app-list{margin:0;padding:0;list-style:none}.mock-app .optimizer-inputs .opt-row{grid-template-columns:20px minmax(0,1fr) auto;gap:12px 8px;padding:16px 0;display:grid}.mock-app .opt-input-summary{grid-area:2/1/auto/-1;gap:17px;width:100%;margin:0 0 10px}.mock-app .opt-input-summary div{font-size:12px}.mock-app .optimizer-inputs .opt-row-edit{grid-area:1/3}.mock-app .optimizer-inputs .opt-actions{margin-top:20px}.mock-app .opt-stage{gap:23px}.mock-app .optimizer-inputs .opt-row.on{border:0;border-bottom:1px solid var(--line);box-shadow:none;outline:0}.mock-app .optimizer-inputs .opt-row-main b{font-weight:550}.mock-app .opt-gantt{background:0 0;border:0;border-radius:0}.mock-app .opt-gantt .axis{color:var(--muted);margin:0 0 20px 135px;padding:0;font-size:10px}.mock-app .opt-gantt .key{border-top:1px solid var(--line);margin-top:18px;padding-top:14px}.mock-app .opt-gantt .runnew,.mock-app .opt-gantt .runold{white-space:nowrap;color:#2b7860;padding:4px 7px;font-size:9px;overflow:hidden}.mock-app .opt-gantt .runold{color:#778b96}.mock-app .opt-gantt .sw.peak{background:#d8e0e5}.mock-app .profile-grid .card{background:#fff}.mock-app .history-inputs .hist-head{margin-bottom:20px}.mock-app .history-inputs .hist-head b{font-size:16px;font-weight:600;display:block}.mock-app .history-inputs .hist-head span{font-size:11px}.mock-app .history-inputs .hist-controls{flex-direction:column;align-items:stretch;gap:15px;display:flex}.mock-app .history-inputs .hist-status{margin-top:14px}.mock-app .price-distribution{gap:2px;height:25px;margin:0 0 10px}.mock-app .opt-panel-head{align-items:start}.mock-app .opt-panel-head b{font-size:16px;font-weight:600}.mock-app .opt-gantt{padding:15px 0}.mock-app .opt-gantt-row{border-top:1px solid var(--line);grid-template-columns:135px minmax(0,1fr);align-items:center;min-height:58px;display:grid}.mock-app .opt-gantt-row .nm{font-family:inherit;font-size:12px}.mock-app .rec-track{background:repeating-linear-gradient(90deg,#0000 0 calc(25% - 1px),#e9eff2 calc(25% - 1px) 25%);border:0;border-radius:0;height:32px}.mock-app .rec-track .runnew{height:24px;box-shadow:none;background:#dbede7;border:1px solid #bddcd0;border-radius:4px;top:4px}.mock-app .rec-track .runold{height:24px;box-shadow:none;background:#e9edf2;border:1px solid #d8e0e5;border-radius:4px;top:4px}.mock-app .opt-gantt.preview .runold{background:#dbede7;border-color:#bddcd0}.mock-app .savings-stats{grid-template-columns:repeat(3,minmax(0,1fr));margin:0}.mock-app .opt-results-grid{grid-template-columns:minmax(0,1fr)}.mock-app .opt-results-grid .opt-panel{border:0;padding:0}.mock-app .opt-results .opt-panel,.mock-app .weekly-schedule{margin-bottom:23px}.mock-app .timeline-tools{margin-left:auto;font-size:11px;position:relative}.mock-app .timeline-tools summary{cursor:pointer;color:var(--blue);border:1px solid var(--line);background:#fff;border-radius:8px;padding:9px 12px}.mock-app .timeline-tools-body{z-index:15;border:1px solid var(--line);background:#fff;border-radius:12px;flex-wrap:wrap;gap:18px;width:410px;padding:20px;display:flex;position:absolute;top:44px;right:0;box-shadow:0 10px 35px #142b371a}.mock-app .tl-fixed-axis{margin-top:24px;margin-bottom:20px}.mock-app .tl-label-btns{visibility:hidden}.mock-app .tl-row:hover .tl-label-btns,.mock-app .tl-label:focus-within .tl-label-btns{visibility:visible}.mock-app .tl-row{border-top:1px solid var(--line)}.mock-app .tl-track{border:0;border-radius:0}.mock-app .tl-label,.mock-app .tl-fixed-axis-spacer{flex-basis:135px}.mock-app .tl-label-name{font-size:12px}.mock-app .tl-empty{font-size:11px}.mock-app .profile-grid{display:block}.mock-app .profile-grid .col-main{gap:18px;display:grid}.mock-app .profile-head{margin:20px 0}.mock-app .profile-head .profile-name{font-size:24px;font-weight:600}.mock-app .profile-chips{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:23px;display:grid}.mock-app .profile-chips .p-chip{border:0;border-top:1px solid var(--line);background:0 0;border-radius:0;padding:12px 0;display:block}.mock-app .profile-chips .p-chip .k{color:var(--muted);margin-bottom:8px;font-size:10px;display:block}.mock-app .profile-chips .p-chip .v{font-size:13px}.mock-app .ap-view h4{margin:0 0 6px;font-size:16px;font-weight:600}.mock-app .ap-view .ad-section-title{text-transform:none;margin:8px 0 -8px;font-size:12px}.mock-app .ap-view .usage-stats{margin:20px 0}.mock-app .timezone-form{margin-top:24px}.mock-app .timezone-form button.primary{background:var(--blue);color:#fff;border-color:var(--blue)}.mock-app .opt-stage-empty{border:1px solid var(--line);background:#fff;border-radius:14px;padding:32px}.mock-app :is(.cmd-btn,.reg-action,.registry button,.circuit-switch-btn,.opt button,.tl-mini,.sched-pill,.chat-send,.change-pw button,.settings-section button,.nilm-enroll button){min-height:34px;color:var(--ink);box-shadow:none;background:#fff;border:1px solid #dce4e9;border-radius:8px;padding:8px 12px;font-family:inherit;font-size:12px}.mock-app :is(.cmd-btn.open,.opt button.primary,.settings-section button[type=submit],.chat-send){background:var(--blue);border-color:var(--blue);color:#fff}.mock-app .nodata{color:var(--muted);background:0 0;border:0;padding:30px 18px;font-size:12px;font-style:normal}.mock-app :is(.tscroll,.hist-table-wrap,.rows-wrap){max-width:100%;overflow:auto}.mock-app table th{padding:12px 15px;font-family:inherit;font-size:9px}.mock-app table td{padding:14px 15px;font-family:inherit;font-size:11px}.mock-app :is(.opt-panel,.opt-pick){border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:14px;padding:23px}.mock-app .opt{gap:23px}.mock-app .opt-layout{grid-template-columns:300px minmax(0,1fr);gap:23px;min-height:0}.mock-app .opt-pick{gap:18px;max-height:none;position:static}.mock-app .opt-app-list{max-height:none}.mock-app .opt-panel-head{margin-bottom:21px}.mock-app .opt-row{border-bottom:1px solid var(--line);background:0 0;border-radius:0;padding:15px 0}.mock-app .opt-row.on{background:0 0}.mock-app .opt-row-main b{font-size:13px}.mock-app .opt-row-main span{font-size:10px}.mock-app .opt-row-check{align-items:center;display:flex}.mock-app .opt-kpi{border:1px solid var(--line);background:#fff;padding:12px 16px}.mock-app .tl-seg{box-shadow:none;background:#dbede7;border:1px solid #bddcd0;border-radius:4px}.mock-app .tl-row{border-color:var(--line);min-height:58px}.mock-app .tl-track{background-color:#fff}.mock-app .tl-label{background:#fff;font-family:inherit;font-size:12px}.mock-app .tl-hint{color:var(--muted);margin-top:18px;font-size:11px}.mock-app .tl-toolbar{gap:14px;margin-bottom:25px}.mock-app .circuit{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:14px;padding:23px}.mock-app .circuit .top{gap:10px;margin-bottom:16px}.mock-app .circuit .n{color:var(--ink);font-size:16px;font-weight:600}.mock-app .circuit-idx{color:#69818e;background:#f0f5f8;border:0;border-radius:8px;font-size:12px}.mock-app .rstate{background:#f1f4f6;border:0;border-radius:5px;padding:5px 8px;font-size:10px;font-weight:500}.mock-app .rstate.on{color:#267c62;background:#eaf5ef}.mock-app .zone-card{border:1px solid var(--line);background:#f8fafb;border-radius:14px;padding:20px}.mock-app .circuit .reg-stat-row{border-top:1px solid var(--line);padding-top:16px;margin-top:20px!important}.mock-app .circuits-grid{gap:20px}.mock-app .circuits-zones{grid-template-columns:minmax(0,1fr);gap:23px}.mock-app .circuits{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.mock-app .circuit button{white-space:normal;font-weight:500}.mock-app .circuit .reg-stat-row{justify-content:flex-start;gap:8px}.mock-app .schedule-library{margin:23px 0}.mock-app .schedule-library .feature-card{border:0;margin:0;padding:0}.mock-app .tl-toolbar{background:0 0;border:0;padding:0}.mock-app .tl-daypick{border:1px solid var(--line);background:#f3f6f8;border-radius:7px;gap:2px;padding:3px}.mock-app .tl-daypick button{background:0 0;border:0;min-height:27px;font-size:10px}.mock-app .tl-daypick button.active{color:var(--ink);background:#fff;box-shadow:0 1px 4px #142b3712}.mock-app .tl-label{text-align:left;align-items:flex-start}.mock-app .diagnostics-summary{margin-bottom:23px}.mock-app .section-tabs{border:0;border-bottom:1px solid var(--line);background:0 0;gap:23px;margin:23px 0;padding:0}.mock-app .section-tabs button{color:var(--muted);background:0 0;border:0;border-radius:0;padding:0 0 14px;font-size:12px}.mock-app .section-tabs button.active{color:var(--blue);border-bottom:2px solid var(--blue)}.mock-login{background:#fff;grid-template-columns:1fr 1fr;place-items:stretch stretch;width:100%;min-height:100dvh;padding:0;display:grid}.mock-login .login-art{width:100%;min-height:100dvh}.mock-login .login-art .eyebrow{color:#8fdcc9}.mock-login .login-art h2{color:#fff;margin:16px 0;font-size:46px;line-height:1.2}.mock-login .login-form{align-self:center}.mock-login .login-form h1{color:var(--ink)}.mock-login .login-form .fields{margin-top:30px}.mock-login .login-form button{width:100%}.mock-app .assistant-page{flex-direction:column;max-width:940px;min-height:600px;margin:auto;display:flex}.assistant-header{border-bottom:1px solid var(--line);align-items:center;gap:14px;padding:24px;display:flex}.assistant-header .badge{margin-left:auto}.mock-app .chat-msgs{background:#fff;gap:20px;min-height:360px;max-height:60vh;padding:28px;overflow:auto}.mock-app .chat-bubble{border:1px solid var(--line);max-width:85%;color:var(--ink);background:#f5f8fa;border-radius:12px;padding:16px 20px;font-family:inherit;font-size:13px;line-height:1.7}.mock-app .chat-bubble.user{background:#eef4ff;border-color:#dbe7fb}.mock-app .chat-suggest{grid-template-columns:1fr 1fr;gap:12px;display:grid}.mock-app .chat-suggest button{border:1px solid var(--line);color:var(--ink);text-align:left;background:#fff;border-radius:9px;padding:14px;font-size:12px}.mock-app .chat-composer{border-top:1px solid var(--line);background:#fff;padding:20px}.mock-app .chat-composer textarea{background:#fff;border-radius:9px;font-family:inherit;font-size:13px}.mock-app .nilm-event .notice{margin-bottom:18px}.mock-app .nilm-event summary{min-height:96px}.mock-app .nilm-quality dd{line-height:1.65}.mock-app .big-number{line-height:1.25}.mock-app .breakdown-row span{overflow-wrap:anywhere;min-width:0}.mock-app .nilm-timeline>summary{padding:19px 22px}.mock-app .nilm-timeline[open]>summary{border-bottom:1px solid var(--line)}.mock-app .nilm-timeline>.pad{padding:20px 22px 22px}.mock-app .nilm-gantt{gap:8px}.mock-app .nilm-gantt-row{grid-template-columns:150px minmax(0,1fr);gap:14px}.mock-app .nilm-gantt-label{color:var(--ink);font-size:11px;font-weight:600}.mock-app .nilm-gantt-label .td-color{border-radius:50%;flex:none;width:7px;height:7px}.mock-app .nilm-gantt-track{background:repeating-linear-gradient(90deg,#f7f9fa 0 calc(25% - 1px),#eaf0f3 calc(25% - 1px) 25%);border-color:#e1e9ed;border-radius:6px;height:26px}.mock-app .nilm-gantt-bar{border-radius:4px;top:3px;bottom:3px;box-shadow:inset 0 0 0 1px #ffffff35}.mock-app .nilm-gantt-axis{color:#71838d;margin-top:8px;margin-left:164px;font-size:10px}.mock-app .nilm-composition-wrap{gap:14px}.mock-app .nilm-composition-top{grid-template-columns:180px minmax(0,1fr);align-items:center;gap:22px;display:grid}.mock-app .nilm-composition-chart{justify-self:center}.mock-app .nilm-composition-total b{color:var(--ink);font-size:15px;font-weight:650}.mock-app .nilm-composition-total span{color:#71838d;letter-spacing:.8px}.mock-app .nilm-composition-graph{min-width:0}.mock-app .nilm-composition-graph-head{color:#71838d;margin-bottom:7px}.mock-app .nilm-composition-graph .skeleton{background:0 0;border-radius:0;height:auto;min-height:0}.mock-app .nilm-composition-graph .recharts-line-curve{stroke-width:2.2px}.mock-app .nilm-composition-graph .recharts-cartesian-axis-line{stroke:#dce5e9}.mock-app .nilm-composition-legend{flex-direction:row;gap:8px 18px;padding-top:2px}.mock-app .nilm-composition-legend-item{color:var(--ink);font-size:11px}.mock-app .nilm-composition-dot{width:7px;height:7px}.mock-app .nilm-powerbar-modes{border:1px solid var(--line);background:#f3f6f8;border-radius:8px;gap:2px;width:max-content;max-width:100%;margin:0 0 14px;padding:3px}.mock-app .nilm-powerbar-mode{color:#697b85;background:0 0;border:0;border-radius:6px;min-height:31px;padding:6px 11px}.mock-app .nilm-powerbar-mode:hover:not(:disabled){color:var(--ink);background:#ffffff9c;border:0}.mock-app .nilm-powerbar-mode.active{color:var(--blue);background:#fff;border:0;box-shadow:0 1px 4px #142b3712}.mock-app .nilm-usage-grid{grid-template-columns:repeat(auto-fill,minmax(220px,280px));gap:10px}.mock-app .nilm-usage-card{border-color:var(--line);background:#fff;border-radius:9px;padding:13px 14px}.mock-app .nilm-usage-top{margin-bottom:8px}.mock-app .nilm-usage-name{font-size:12px;font-weight:600}.mock-app .nilm-usage-kwh{font-size:12px}.mock-app .nilm-hour-bars{border-bottom:1px solid #e7edef;gap:3px;height:42px;padding-top:3px}.mock-app .nilm-hbar{border-radius:2px 2px 0 0;max-height:38px}.mock-app .nilm-hour-labels{color:#71838d;margin-top:6px;font-size:9px}.modal,.opt-modal,.identify-dialog,.calibration-modal,.commission-modal{color:#172e3a;background:#fff;border:1px solid #e4eaed;border-radius:14px;font-family:Segoe UI,Arial,sans-serif}.modal button,.opt-modal button,.identify-dialog button{border-radius:8px;font-family:inherit}@media (width<=1100px){.mock-app .row.thirds{grid-template-columns:minmax(0,1fr)}}@media (width<=980px){.mock-app .opt-layout,.mock-app .row.even{grid-template-columns:minmax(0,1fr)}}@media (width<=1200px){.mock-app .circuits{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=701px) and (width<=1000px){.mock-app .sidebar{width:202px;height:100dvh;position:fixed}.mock-app{grid-template-columns:202px minmax(0,1fr)}}@media (width<=700px){.mock-app{display:block}.mock-app .sidebar{z-index:30;width:226px;height:100dvh;padding:28px 17px 20px;position:fixed}.mock-app .menu{display:inline-flex}.mock-app .nav a{padding:0 15px}.mock-app .topbar{height:65px;min-height:65px;top:0}.mock-app .page-head{flex-wrap:wrap}.mock-app .panel-picker{margin-top:8px}.mock-app .stat-value{font-size:27px}.mock-app .stat-value span{font-size:11px}.mock-app .window-controls{gap:8px}.window-controls details{margin-left:0}.mock-app .nilm-evidence .detail-list div{flex-wrap:wrap}.mock-app .chat-suggest{grid-template-columns:1fr}.assistant-header{flex-wrap:wrap;padding:18px}.mock-app .chat-msgs{padding:18px}.mock-app .chat-bubble{max-width:95%}.mock-app .settings-nav{flex-direction:row}.mock-app .circuits{grid-template-columns:minmax(0,1fr)}.mock-app .circuit .big-number{font-size:36px}.mock-login{grid-template-columns:1fr}.mock-login .login-art{display:none}}.identify-modal{--panel:white;--panel2:#f5f7f8;--text:#172e3a;--muted:#71838d;--border:#e4eaed;--accent-v:#246bdf;--chart-grid:#e4eaed;color:var(--text);border:1px solid var(--border);background:#fff;border-radius:14px;font-family:Segoe UI,Arial,sans-serif;box-shadow:0 24px 80px #142b3726}.identify-modal .identify-head{background:#fff}.identify-modal .identify-confirm-panel{background:#f5f7f8}.identify-modal .identify-type-card{background:#fff}.identify-modal .identify-type-card.selected{box-shadow:none;background:#eef4ff}.identify-modal .identify-confirm-btn{color:#fff;background:#246bdf}.identify-modal .identify-eyebrow{letter-spacing:1.4px;font-size:10px}.identify-modal .identify-info{color:#385b7e;background:#eef4ff;border-color:#dbe7fb}.mock-app .registry-card.editing.profile-edit{max-width:none;box-shadow:none;background:#fff;border:0;padding:0}@media (width>=701px){.mock-app{grid-template-columns:204px minmax(0,1fr)}.mock-app .sidebar{width:204px;padding:27px 15px 18px}.mock-app .brand{gap:11px;padding:0 13px}.mock-app .sidebar>.brand img{width:32px;height:32px;transform:none}.mock-app .wordmark{letter-spacing:2.7px;font-size:21px}.mock-app .brand-sub{letter-spacing:2px;font-size:8px}.mock-app .nav-label{margin:34px 13px 11px;font-size:8px}.mock-app .nav{gap:4px}.mock-app .nav a{gap:11px;height:40px;padding:0 13px;font-size:12px}.mock-app .nav a .icon{width:17px;height:17px}.mock-app .account{padding-top:13px;font-size:11px}.mock-app .avatar{width:31px;height:31px;font-size:10px}.mock-app .account small{font-size:9px}.mock-app .topbar{height:69px;padding:0 32px}.mock-app .content{padding:27px 32px 18px}.mock-app .page-head{margin-bottom:22px}.mock-app .page-head h1{font-size:27px}.mock-app .page-head p{margin-top:6px;font-size:11px}.mock-app .eyebrow{margin-bottom:8px;font-size:9px}.mock-app button,.mock-app input,.mock-app select{min-height:36px}.mock-app .btn{padding:8px 12px;font-size:11px}.mock-app .btn.small{min-height:29px;padding:5px 9px;font-size:10px}.mock-app .panel-picker select{font-size:11px}.mock-app .pad,.mock-app .card.pad{padding:20px}.mock-app .card-head{margin-bottom:18px}.mock-app .card-head h2{font-size:15px}.mock-app .stats{gap:14px;margin-bottom:20px}.mock-app .stat{min-height:128px;padding:18px 19px}.mock-app .stat-label{font-size:10px}.mock-app .stat-value{margin:11px 0 7px;font-size:28px}.mock-app .stat-value span{font-size:12px}.mock-app .stat-foot{font-size:9px}.mock-app .dashboard-grid,.mock-app .two-col,.mock-app .pricing,.mock-app .stack{gap:20px}.mock-app .section-space{margin-top:20px}.mock-app .opportunity{padding:21px}.mock-app .opportunity h2{margin-top:13px;font-size:17px}.mock-app .table-title{padding:18px 20px}.mock-app th{padding:10px 13px}.mock-app td{padding:12px 13px}.mock-app .big-number{margin:16px 0;font-size:38px}.mock-app .detail-list{gap:14px;margin:19px 0}.mock-app .toolbar{margin-bottom:19px}.mock-app .tabs{margin-bottom:20px}.mock-app .empty{padding:42px 22px;font-size:12px}.mock-app .circuits{gap:17px}.mock-app .circuit{padding:20px}.mock-app .nilm-event summary{min-height:86px}.mock-app .footer{margin-top:24px}}.mock-app .chat-screen{width:100%;max-width:760px;margin:0 auto}.mock-app .chat-disclaimer{text-align:center;margin-top:12px}.mock-app .prompts .btn{width:100%}.mock-app .chat-compose .btn{flex:none;width:40px;height:40px;padding:0}.mock-app .chat-compose .btn .icon{width:16px;height:16px}.mock-app .message.assistant>:first-child{margin-top:0}.mock-app .message.assistant>:last-child{margin-bottom:0}.mock-app .message.assistant p{margin:0 0 .55em}.mock-app .message.assistant p:last-child{margin-bottom:0}.mock-app .message.assistant ul,.mock-app .message.assistant ol{margin:0 0 .55em;padding-left:1.25em}.mock-app .message.assistant li{margin:.15em 0}.mock-app .message.assistant table{border-collapse:collapse;width:max-content;font-size:11px}.mock-app .message.assistant th,.mock-app .message.assistant td{border:1px solid var(--line);text-align:left;padding:5px 8px}.mock-app .message.chat-typing{gap:5px;width:max-content;display:flex}.mock-app .message.chat-typing i{background:var(--muted);border-radius:50%;width:6px;height:6px;animation:1.2s infinite chat-blink}.mock-app .message.chat-typing i:nth-child(2){animation-delay:.2s}.mock-app .message.chat-typing i:nth-child(3){animation-delay:.4s}@media (width>=701px){.mock-app .workspace{min-height:100dvh}.mock-app .content{flex-direction:column;min-height:calc(100dvh - 69px);display:flex}.mock-app .content>.footer{flex:none;margin-top:auto}.mock-app .chat-content{height:calc(100dvh - 69px);overflow:hidden}.mock-app .chat-page-content{flex:auto;min-height:0;display:flex}.mock-app .chat-screen{flex-direction:column;flex:auto;min-height:0;display:flex}.mock-app .chat-screen-body{min-height:0}.mock-app .chat-screen.started .chat-screen-body{flex-direction:column;flex:auto;min-height:0;display:flex}.mock-app .chat-screen.started .chat-messages{overscroll-behavior:contain;flex:auto;width:100%;max-width:720px;min-height:0;padding:0 4px;overflow-y:auto}.mock-app .chat-screen.started .chat-compose{flex:none;width:100%;margin:16px auto 0}.mock-app .chat-screen.started .chat-disclaimer{flex:none}}.mock-app .chat-fab{color:#fff;background:#246bdf;width:48px;height:48px;bottom:64px;right:24px;box-shadow:0 8px 24px #173d7840}.mock-app .chat-fab .icon{stroke-width:1.8px;width:20px;height:20px}.mock-app .chat-panel{background:#fff;border-color:#dce5e9;border-radius:14px;width:380px;height:540px;bottom:122px;right:24px;box-shadow:0 18px 55px #142b3730}.mock-app .chat-head{border-color:var(--line);background:#f8fafb;padding:14px 16px}.mock-app .chat-title{color:var(--ink);font-size:14px}.mock-app .chat-ai{color:#246bdf;background:#eef4ff;border:1px solid #d5e3fa}.mock-app .chat-sub{color:var(--muted);margin-top:3px;font-size:10px}.mock-app .chat-x{color:var(--muted);border-radius:6px;min-height:30px}.mock-app .chat-x:hover{color:var(--ink);background:#edf2f5}.mock-app .chat-panel .chat-start{flex:auto;min-height:0;margin:0;padding:24px 18px 10px;overflow-y:auto}.mock-app .chat-panel .chat-start .brandmark{border-radius:11px;width:38px;height:38px}.mock-app .chat-panel .chat-start .brandmark .icon{width:22px;height:22px}.mock-app .chat-panel .chat-start h2{letter-spacing:-.25px;margin:14px 0 7px;font-size:19px}.mock-app .chat-panel .chat-start p{font-size:11px}.mock-app .chat-panel .prompts{grid-template-columns:1fr;gap:7px;margin:18px 0 0}.mock-app .chat-panel .prompts .btn{text-align:left;justify-content:space-between;min-height:38px;padding:9px 11px;font-size:10.5px}.mock-app .chat-panel .chat-messages{overscroll-behavior:contain;flex:auto;width:100%;max-width:none;min-height:0;margin:0;padding:14px;overflow-y:auto}.mock-app .chat-panel .message{border-radius:10px;width:fit-content;max-width:86%;margin:0 0 9px;padding:10px 12px;font-size:11.5px;line-height:1.55}.mock-app .chat-panel .message.user{background:#eaf0f9;margin-left:auto}.mock-app .chat-panel .message.assistant{margin-right:auto}.mock-app .chat-panel .chat-compose{background:#f8fafb;border-width:1px 0 0;border-radius:0;flex:none;width:100%;max-width:none;margin:0;padding:12px}.mock-app .chat-panel .chat-compose input{background:#fff;border:1px solid #dce4e9;border-radius:8px;min-height:38px;padding:8px 10px;font-size:11.5px}.mock-app .chat-panel .chat-compose .btn{width:38px;height:38px}@media (width<=700px){.mock-app .chatbot-shell{display:none}}.rename-device{margin-bottom:16px}.rename-device label{gap:8px;display:grid}.rename-device input{box-sizing:border-box;width:100%;min-width:0}.mock-app .panel-grid{align-items:start;gap:16px}.mock-app .device-card.card.pad{padding:18px;overflow:visible}.mock-app .panel-card-header{grid-template-columns:36px minmax(0,1fr) 34px;align-items:start;gap:10px;display:grid}.mock-app .panel-card-icon{color:#628695;background:#f1f6f8;border-radius:9px;place-items:center;width:36px;height:36px;display:grid}.mock-app .panel-card-icon .icon{width:23px;height:23px}.mock-app .panel-card-heading{flex-direction:column;align-items:flex-start;gap:5px;min-width:0;display:flex}.mock-app .device-card h2{overflow-wrap:anywhere;margin:0;font-size:15px;line-height:1.35}.mock-app .panel-card-heading .badge{padding:3px 7px;font-size:10px}.mock-app .device-card .detail-list{gap:8px;margin:16px 0}.mock-app .device-card .detail-list>div{gap:12px;line-height:1.5}.mock-app .device-card .detail-list dt{flex-shrink:0}.mock-app .device-card .detail-list dd{overflow-wrap:anywhere;text-align:right;min-width:0}.mock-app .panel-card-footer{border-top:1px solid var(--line);justify-content:flex-end;padding-top:12px;display:flex}.mock-app .panel-card-footer .btn{min-height:34px;padding:7px 11px}.mock-app .panel-actions{position:relative}.mock-app .panel-actions-toggle{width:34px;height:34px;min-height:34px;color:var(--muted);border-color:#0000;padding:0;font-size:23px;line-height:1}.mock-app .panel-actions-toggle[aria-expanded=true]{background:var(--canvas);border-color:var(--line);color:var(--ink)}.mock-app .panel-actions-list{z-index:20;background:var(--surface);border:1px solid var(--line);border-radius:9px;width:180px;padding:5px;position:absolute;top:calc(100% + 5px);right:0;box-shadow:0 8px 24px #172f3b20}.mock-app .panel-actions-list button{width:100%;min-height:38px;color:var(--ink);text-align:left;font:inherit;background:0 0;border:0;border-radius:5px;justify-content:space-between;align-items:center;gap:10px;padding:9px 10px;font-size:12px;display:flex}.mock-app .panel-actions-list button:hover{background:var(--canvas)}.mock-app .panel-actions-list .icon{width:16px;height:16px}.mock-app .device-card .rename-device{border-top:1px solid var(--line);margin-bottom:12px;padding:12px 0}.mock-app .device-card .rename-device .flex{flex-wrap:wrap}.mock-app .panel-search{flex-shrink:0;width:300px;max-width:100%}.mock-app .month-comparison-card[open]>summary{border-bottom:1px solid var(--line);box-shadow:none}.mock-app .month-comparison-card>summary strong{letter-spacing:-.2px;font-size:15px;font-weight:600}.mock-app .month-comparison .fin-month-top{flex-direction:column;align-items:flex-start;gap:8px;margin:0 0 24px;display:flex}.mock-app .month-comparison .fin-month-pct{letter-spacing:-.4px;color:var(--ink);font-size:20px;font-weight:600}.mock-app .month-comparison .fin-month-pct.up{color:var(--amber)}.mock-app .month-comparison .fin-month-pct.down{color:var(--teal)}.mock-app .month-comparison .fin-month-sub{color:var(--muted);font-size:12px;line-height:1.6}.month-chart-label{color:var(--muted);align-items:baseline;gap:8px;margin-bottom:4px;font-size:11px;font-weight:500;display:flex}.month-chart-label span{font-size:10px}.month-chart-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:6px 0 22px;display:flex}.month-legend{color:var(--muted);flex-wrap:wrap;gap:20px;font-size:11px;display:flex}.month-legend>span{align-items:center;gap:8px;display:inline-flex}.month-line{border-top:2px solid var(--teal);width:22px;height:0;display:inline-block}.month-line.previous{border-top:2px dashed var(--muted)}.month-axis-caption{color:var(--muted);font-size:10px}.mock-app .month-comparison .kpi-split{border:1px solid var(--line);background:var(--canvas);border-radius:10px;grid-template-columns:1fr;margin:0;padding:16px 18px}.mock-app .month-comparison .kpi-tile{background:0 0;border:0;grid-template-columns:1fr auto;gap:7px 20px;padding:0;display:grid}.mock-app .month-comparison .kpi-label{text-transform:none;letter-spacing:0;color:var(--ink);font-size:12px;font-weight:500}.mock-app .month-comparison .kpi-value{letter-spacing:-.5px;color:var(--teal);grid-area:1/2/span 2;align-self:center;font-size:22px;font-weight:600}.mock-app .month-comparison .kpi-value.over{color:var(--amber)}.mock-app .month-comparison .kpi-sub{color:var(--muted);grid-column:1;font-size:11px;line-height:1.6}@media (width<=600px){.mock-app .month-comparison .kpi-tile{grid-template-columns:1fr}.mock-app .month-comparison .kpi-value{grid-area:auto/1}.month-chart-footer{align-items:flex-start}}.mock-app .registry-surface .circuits-zones{grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr));gap:12px}.mock-app .registry-surface .zone-card{min-width:0;padding:10px}.mock-app .registry-surface .zone-card-header{gap:6px;min-height:26px}.mock-app .registry-surface .zone-card-header .n{margin:0;font-size:13px}.mock-app .registry-surface .zone-card-circuits{margin-top:8px}.mock-app .registry-surface .circuits{grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));align-items:start;gap:8px}.mock-app .registry-surface .mock-circuit.card.pad{border-radius:10px;min-width:0;padding:10px 12px}.mock-app .registry-surface .mock-circuit.card.pad[role=button]{cursor:pointer}.mock-app .registry-surface .mock-circuit.card.pad[role=button]:hover{border-color:var(--blue)}.mock-app .registry-surface .mock-circuit.card.pad[role=button]:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.mock-app .mock-circuit .circuit-open-cue{border-top:1px solid var(--line);color:var(--blue);justify-content:space-between;align-items:center;gap:8px;margin-top:10px;padding-top:8px;font-size:12px;font-weight:600;display:flex}.mock-app .mock-circuit:hover .circuit-open-cue,.mock-app .mock-circuit:focus-visible .circuit-open-cue{text-underline-offset:3px;text-decoration:underline}.mock-app .mock-circuit .card-head{align-items:flex-start;gap:6px;margin-bottom:6px}.mock-app .mock-circuit .card-head>div{min-width:0}.mock-app .mock-circuit .card-head h2{overflow-wrap:anywhere;font-size:13px;line-height:1.3}.mock-app .mock-circuit .card-head p{margin-top:2px;font-size:10px;line-height:1.3}.mock-app .mock-circuit .badge{white-space:nowrap;flex-shrink:0;padding:3px 5px;font-size:9px}.mock-app .mock-circuit .circuit-reading{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.mock-app .mock-circuit .big-number{white-space:nowrap;margin:0;font-size:24px;line-height:1.2}.mock-app .mock-circuit .big-number span{letter-spacing:0;font-size:11px}.mock-app .mock-circuit .circuit-appliance-count,.mock-app .mock-circuit .circuit-reading-meta{color:var(--muted);font-size:11px;line-height:1.4}.mock-app .mock-circuit .circuit-reading-meta{margin-top:3px}.mock-app .mock-circuit .reg-stat-row{gap:5px;padding-top:7px;margin-top:7px!important}.mock-app .mock-circuit .circuit-switch-btn,.mock-app .mock-circuit .circuit-limit-btn,.mock-app .registry-surface .zone-group-switch .circuit-switch-btn{min-height:28px;padding:4px 7px;font-size:11px;line-height:1.4}.mock-app .mock-circuit .circuit-detail{margin:6px 0 0;font-size:11px}.mock-app .mock-circuit .circuit-detail summary{line-height:1.5}.mock-app .mock-circuit .circuit-detail[open] summary{margin-bottom:8px}.mock-app .mock-circuit .circuit-detail .metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.mock-app .mock-circuit .circuit-limit-btn{white-space:normal;text-align:left;max-width:100%}@media (width<=700px){.mock-app .registry-surface .circuits-zones{grid-template-columns:minmax(0,1fr)}.mock-app .mock-circuit .circuit-switch-btn,.mock-app .mock-circuit .circuit-limit-btn,.mock-app .registry-surface .zone-group-switch .circuit-switch-btn{min-height:44px}.mock-app .mock-circuit .circuit-detail summary{padding:8px 0}}.detected-appliance-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:12px;display:grid}.detected-appliance-card{min-width:0;padding:14px}.detected-appliance-heading{align-items:center;gap:8px;display:flex}.detected-appliance-heading h2{overflow-wrap:anywhere;flex:1;min-width:0;font-size:14px}.detected-appliance-heading .icon-tile{border-radius:7px;flex:none;width:28px;height:28px}.detected-appliance-heading .icon{width:16px;height:16px}.detected-appliance-card .big-number{margin:12px 0 10px;font-size:27px;line-height:1.2}.detected-appliance-card .big-number span{letter-spacing:0;font-size:11px}.detected-appliance-card .nilm-card-actions{gap:8px;margin-top:10px;padding-top:10px}.detected-appliance-card .nilm-card-actions .btn{min-height:30px;padding:6px 10px}@media (pointer:coarse){.detected-appliance-card .nilm-card-actions .btn{min-height:44px}}.mock-app .optimizer-inputs{gap:14px;min-width:0}.mock-app .optimizer-inputs .appliance-inputs{flex-direction:column;gap:10px;height:clamp(260px,40vh,380px);min-height:0;padding:16px;display:flex}.mock-app .appliance-inputs .opt-pick-head{flex-wrap:wrap;flex:none}.mock-app .appliance-inputs .opt-app-list{overscroll-behavior:contain;scrollbar-gutter:stable;flex:1;min-height:0;overflow-y:auto}.mock-app .optimizer-inputs .opt-row{flex-shrink:0;gap:6px 8px;padding:8px 6px}.mock-app .optimizer-inputs .opt-actions{border-top:1px solid var(--line);flex:none;margin-top:0;padding-top:10px}.mock-app .optimizer-inputs .history-inputs{padding:16px}@media (width>=981px){.mock-app .optimizer-inputs{align-self:start;position:sticky;top:16px}}.mock-app :is(.table-wrap,.tscroll,.hist-table-wrap,.rows-wrap){overscroll-behavior:contain;scrollbar-gutter:stable;max-height:min(55vh,520px);overflow:auto}.mock-app :is(.table-wrap,.tscroll,.hist-table-wrap,.rows-wrap) thead th{z-index:2;background:#f8fafb;position:sticky;top:0}.mock-app .nilm-event>details>summary{min-height:64px;padding:12px 16px}.mock-app .nilm-event .nilm-more>summary{min-height:0;padding:4px 0}.mock-app .nilm-event-body{padding:12px 16px}.nilm-inspect-summary{flex-wrap:wrap;align-items:center;gap:8px 18px;font-size:12px;display:flex}.nilm-inspect-summary>strong{font-size:21px}.nilm-waveform{min-width:0;margin:12px 0}.nilm-waveform figcaption{flex-wrap:wrap;justify-content:space-between;gap:8px;margin-bottom:6px;font-size:12px;display:flex}.nilm-waveform>small{font-size:10px;display:block}.nilm-inspect-details{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 16px;font-size:12px;display:grid}.nilm-inspect-details dt{color:var(--muted);font-size:11px}.nilm-inspect-details dd{overflow-wrap:anywhere;margin:3px 0 0}.mock-app .nilm-event .nilm-more{margin-top:8px;padding-top:8px}.mock-app .nilm-event .nilm-actions{margin-top:10px;padding-top:10px}.appliance-charts{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);align-items:start;gap:14px;margin-bottom:18px;display:grid}.appliance-charts>*{min-width:0}.mock-app .appliance-chart>summary,.mock-app .appliance-chart>.pad{padding:12px 14px}.mock-app .appliance-chart .nilm-gantt{gap:5px;max-height:260px;overflow:auto}.mock-app .appliance-chart .nilm-gantt-row{grid-template-columns:110px minmax(0,1fr);gap:8px}.mock-app .appliance-chart .nilm-gantt-axis{flex-wrap:wrap;gap:4px;margin-left:118px}.mock-app .appliance-chart .nilm-usage-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));max-height:180px;overflow:auto}.mock-app .appliance-chart .nilm-usage-card{padding:8px 10px}.mock-app .appliance-chart .nilm-powerbar-modes{flex-wrap:wrap}@media (width<=1100px){.appliance-charts{grid-template-columns:minmax(0,1fr)}}@media (width<=600px){.nilm-inspect-details{grid-template-columns:repeat(2,minmax(0,1fr))}}.mock-app .appliance-chart .nilm-composition-top{gap:10px}.mock-app .appliance-chart .nilm-composition-graph{flex:220px;min-width:0}.mock-app .appliance-chart .nilm-composition-legend{flex-direction:row;gap:6px 14px;max-height:72px;overflow:auto}.mock-app .appliance-chart .nilm-composition-legend-item{font-size:11px}.mock-app .appliance-page-head{margin-bottom:12px}.mock-app .appliance-page-head h1{margin:5px 0;font-size:25px}.mock-app .appliance-page-head p{margin:4px 0 0}.appliance-toolbar{flex-wrap:wrap;align-items:center;gap:10px 18px;margin-bottom:12px;display:flex}.appliance-toolbar .tabs{margin:0 auto 0 0}.mock-app .appliance-toolbar .tabs a{padding:10px 0}.appliance-toolbar .inline-field{font-size:12px}.mock-app .appliance-workspace .appliance-charts{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:12px;margin-bottom:12px}.mock-app .appliance-chart .nilm-gantt{max-height:146px}.mock-app .appliance-chart .nilm-gantt-track{height:20px}.mock-app .appliance-chart .nilm-gantt-label{font-size:10px}.mock-app .appliance-chart .composition-compact{gap:6px}.mock-app .composition-compact .nilm-composition-top{grid-template-columns:120px minmax(0,1fr);gap:8px}.mock-app .composition-compact .composition-note{font-size:10px;line-height:1.3}.mock-app .composition-compact .nilm-composition-legend{max-height:36px}.mock-app .composition-compact .notice{margin:0;padding:6px 8px;font-size:10px}.activity-controls{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:10px 12px;display:flex}.activity-switch{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.mock-app .activity-switch button{font:inherit;cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:6px;padding:7px 10px;font-size:12px}.mock-app .activity-switch button.active{color:var(--blue);background:#edf4ff;font-weight:600}.activity-controls input{width:180px;min-width:0;margin-left:auto}.activity-workbench{grid-template-columns:minmax(300px,.9fr) minmax(0,1.1fr);display:grid}.activity-list{border-right:1px solid var(--line);min-width:0}.activity-row{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:8px 12px;display:flex}.activity-row.selected{box-shadow:inset 3px 0 var(--blue);background:#f0f6ff}.mock-app .activity-select{text-align:left;min-width:0;color:var(--ink);cursor:pointer;font:inherit;background:0 0;border:0;flex:1;padding:0}.activity-select strong{font-size:12px;display:block}.activity-select span{color:var(--muted);margin-top:3px;font-size:10px;display:block}.activity-actions{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.activity-pagination{align-items:center;gap:7px;padding:8px 12px;font-size:11px;display:flex}.activity-pagination>span{margin-right:auto}.activity-review{min-width:0;padding:12px 16px}.activity-review-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.activity-review h2{margin:0 0 4px;font-size:15px}.activity-review .nilm-inspect-summary{gap:6px 12px;margin-top:10px}.activity-review .nilm-inspect-summary>strong{font-size:18px}.activity-review .nilm-more{margin-top:8px;padding-top:8px}@media (width<=1000px){.mock-app .appliance-workspace .appliance-charts,.activity-workbench{grid-template-columns:minmax(0,1fr)}.activity-list{border-right:0;border-bottom:1px solid var(--line)}}@media (width<=600px){.activity-controls input{width:100%}.activity-row{flex-wrap:wrap}.activity-review{padding:12px}.mock-app .composition-compact .nilm-composition-top{grid-template-columns:minmax(0,1fr)}.composition-reading{flex-direction:row;align-items:center;gap:8px}}@media (width<=1000px){.appliance-workspace{flex-direction:column;display:flex}.appliance-workspace>.appliance-activity{order:1}.appliance-workspace>.appliance-charts{order:2;margin-top:12px}.appliance-workspace>details{order:3}.activity-review{border-bottom:1px solid var(--line);grid-row:1;scroll-margin-top:12px}}@media (width>=1001px){.mock-app .content.appliance-content{grid-template-columns:minmax(0,1fr) minmax(420px,1fr);align-content:start;gap:8px 18px;min-height:0;padding:12px 24px;display:grid}.mock-app .appliance-content .page-head{gap:12px;margin:0}.mock-app .appliance-content .page-head h1{margin:0;font-size:20px;line-height:1.25}.mock-app .appliance-content .page-head .eyebrow,.mock-app .appliance-content .page-head p{display:none}.mock-app .appliance-content>.window-controls{justify-content:flex-end;gap:8px;margin:0}.mock-app .appliance-content>.page-content,.mock-app .appliance-content>.notice{grid-column:1/-1}.mock-app .appliance-content>footer{display:none}.mock-app .appliance-content .appliance-toolbar{gap:12px;margin-bottom:8px}.mock-app .appliance-content .appliance-charts{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:8px}.mock-app .appliance-content .activity-workbench{grid-template-columns:repeat(2,minmax(0,1fr))}.mock-app .appliance-content .appliance-chart>summary{padding:8px 12px;font-size:12px}.mock-app .appliance-content .appliance-chart>.pad{padding:8px 12px}.mock-app .appliance-content .nilm-gantt{max-height:120px}.mock-app .appliance-content .activity-controls{gap:6px;padding:6px 10px}.mock-app .appliance-content .activity-review{padding:10px 12px}.mock-app .appliance-content .activity-review-head{margin-bottom:6px}.mock-app .appliance-content .nilm-waveform{margin:8px 0}.mock-app .appliance-content .nilm-inspect-summary{font-size:11px}.mock-app .appliance-content .activity-select span{margin-top:2px}.mock-app .appliance-content .activity-row{padding:7px 10px}.mock-app .appliance-content .section-space{margin-top:8px}.mock-app .appliance-content .section-space>summary{padding:8px 12px;font-size:12px}}.activity-workbench{align-items:start;gap:10px}.activity-column{flex-direction:column;gap:10px;min-width:0;display:flex}.activity-list{border:1px solid var(--line)}.activity-controls input{flex:120px;width:130px}.activity-controls .activity-switch{flex:auto}.mock-app .composition-compact .nilm-composition-top,.mock-app .composition-compact .nilm-composition-graph{min-height:0}@media (width>=1001px){.mock-app .appliance-content .activity-controls{gap:4px}.mock-app .appliance-content .activity-controls input{width:110px}.mock-app .appliance-content .composition-compact .nilm-composition-top{grid-template-columns:120px minmax(0,1fr)}.mock-app .appliance-content .composition-compact .composition-note{line-height:1.1}.mock-app .appliance-content .activity-review{padding:8px 10px}.mock-app .appliance-content .activity-review-head{margin-bottom:4px}}@media (width<=1000px){.activity-column{display:contents}.activity-workbench>.activity-column>.activity-list{grid-row:2}.activity-workbench>.activity-column>.activity-review{grid-row:1}.activity-workbench>.activity-column>.appliance-chart{order:2}}.appliance-toolbar{position:relative}@media (width>=1001px){.mock-app .workspace:has(>.appliance-content)>.topbar{height:44px;min-height:44px}}.mock-app .composition-compact .nilm-composition-total span{letter-spacing:0;font-size:8px}.appliance-energy{padding:10px 12px}.appliance-energy h2{margin:0 0 6px;font-size:12px}.mock-app .appliance-energy .nilm-powerbar-modes{flex-wrap:wrap;gap:2px;margin-bottom:6px;padding:2px}.mock-app .appliance-energy .nilm-powerbar-mode{min-height:26px;padding:4px 7px;font-size:10px}.mock-app .appliance-energy .nilm-usage-grid{gap:8px;max-height:105px;display:flex;overflow-x:auto}.mock-app .appliance-energy .nilm-usage-card{flex:1 0 140px;padding:6px 8px}.mock-app .appliance-energy .nilm-hour-bars{height:24px}.mock-app .appliance-energy .nilm-hbar{max-height:22px}.mock-app .appliance-energy .nilm-usage-top{margin-bottom:3px}.mock-app .appliance-energy .nilm-hour-labels{margin-top:3px}.activity-column{gap:8px}.session-rename{flex-wrap:wrap;flex:1;align-items:end;gap:7px;display:flex}.session-rename label{flex:1;min-width:140px;font-size:11px}.session-rename input{width:100%;margin-top:3px;display:block}.session-rename>small,.rename-error{flex-basis:100%;font-size:10px}.rename-error{color:#b42318}@media (width>=1001px){.mock-app .appliance-content .activity-row{padding:6px 10px}.mock-app .appliance-content .activity-controls{padding:6px 8px}.mock-app .appliance-content .activity-pagination{padding:6px 10px}.appliance-energy{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:6px 10px;padding:8px 10px;display:grid}.appliance-energy h2{margin:0}.appliance-energy .nilm-powerbar{display:contents}.mock-app .appliance-energy .nilm-powerbar-modes{justify-self:end;margin:0}.mock-app .appliance-energy .nilm-usage-grid{grid-column:1/-1}}.mock-app .appliance-content .activity-controls input{padding-top:5px;padding-bottom:5px}@media (width>=1001px){.appliance-energy{gap:4px 8px;padding:6px 10px}.mock-app .appliance-energy .nilm-usage-card{padding:4px 8px}.mock-app .appliance-content .appliance-chart .nilm-gantt-row{grid-template-columns:140px minmax(0,1fr)}.mock-app .appliance-content .appliance-chart .nilm-gantt-axis{margin-left:148px}}.mock-app .appliance-content .activity-workbench{gap:14px}.mock-app .appliance-content .activity-column{gap:12px}.mock-app .appliance-content .appliance-chart>summary{padding:12px 16px;font-size:13px}.mock-app .appliance-content .appliance-chart>.pad{padding:12px 16px}.mock-app .appliance-content .activity-review{padding:14px 16px}.mock-app .appliance-content .activity-review-head{gap:12px;margin-bottom:10px}.mock-app .appliance-content .activity-row{gap:12px;padding:10px 12px}.mock-app .activity-select{line-height:1.45}.mock-app .activity-select strong{overflow-wrap:anywhere}.mock-app .appliance-content .activity-controls{gap:8px;padding:10px 12px}.mock-app .appliance-content .activity-controls input,.mock-app .appliance-content .activity-controls .activity-switch button{min-height:34px}.mock-app .appliance-content .activity-pagination{padding:10px 12px}.mock-app .composition-compact .nilm-composition-chart{flex-basis:136px;width:136px;height:136px;min-height:136px}.mock-app .composition-compact .nilm-composition-total{flex-direction:column;align-items:center;gap:5px;width:86px;line-height:1.2;display:flex}.mock-app .composition-compact .nilm-composition-total b{white-space:nowrap;font-size:14px;line-height:1.2}.mock-app .composition-compact .nilm-composition-total span{white-space:nowrap;letter-spacing:0;font-size:9px;line-height:1.2;display:block}.mock-app .appliance-content .composition-compact .nilm-composition-top{grid-template-columns:136px minmax(0,1fr);gap:12px}.mock-app .appliance-content .composition-compact .composition-note{line-height:1.5}.mock-app .appliance-chart .nilm-composition-legend{flex-flow:column;gap:10px;max-height:none;line-height:1.5}.mock-app .appliance-chart .nilm-composition-legend-item{white-space:normal;overflow-wrap:anywhere;font-size:14px}.mock-app .appliance-chart .nilm-composition-dot{flex-shrink:0;width:9px;height:9px}.mock-app .appliance-chart .composition-note{font-size:13px;line-height:1.5}.mock-app .appliance-content .appliance-chart .nilm-gantt{--timeline-label-width:clamp(125px,35%,190px);gap:8px;max-height:160px}.mock-app .appliance-content .appliance-chart .nilm-gantt-row{grid-template-columns:clamp(125px,35%,190px) minmax(0,1fr);gap:12px}.mock-app .appliance-chart .nilm-gantt-label{white-space:normal;grid-template-columns:8px minmax(0,1fr);gap:4px 7px;font-size:11px;line-height:1.35;display:grid;overflow:visible}.nilm-gantt-name{overflow-wrap:anywhere;min-width:0}.mock-app .appliance-chart .nilm-gantt-label .nilm-ev-tag{white-space:normal;overflow-wrap:anywhere;grid-column:2;justify-self:start;max-width:100%}.mock-app .appliance-content .appliance-chart .nilm-gantt-axis{flex-wrap:wrap;gap:8px 12px;margin-left:0;line-height:1.5}.mock-app .appliance-energy{gap:8px 12px;padding:12px 14px}.mock-app .appliance-energy .nilm-usage-card{padding:8px 10px}.mock-app .appliance-energy .nilm-usage-grid{max-height:150px;padding-bottom:2px}.mock-app .appliance-energy .nilm-usage-name{white-space:normal;overflow-wrap:anywhere;font-size:11px;line-height:1.35;overflow:visible}.mock-app .appliance-energy .nilm-usage-kwh{white-space:nowrap;font-size:11px}.mock-app .appliance-energy .nilm-powerbar-mode{min-height:30px;padding:6px 8px}@media (width<=600px){.mock-app .appliance-content .composition-compact .nilm-composition-top{grid-template-columns:minmax(0,1fr)}.mock-app .appliance-content .activity-controls{gap:8px}.mock-app .appliance-content .activity-row{flex-wrap:wrap}.mock-app .appliance-content .appliance-chart .nilm-gantt-row{grid-template-columns:minmax(110px,38%) minmax(0,1fr)}}.waveform-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;margin:6px 0 10px;display:flex}.waveform-controls label{color:var(--muted);align-items:center;gap:6px;font-size:11px;display:flex}.mock-app .waveform-controls input{width:14px;height:14px;min-height:0;margin:0}.mock-app .waveform-controls .activity-switch button{min-height:28px;padding:4px 9px;font-size:11px}.session-rename select{width:100%;min-width:0;margin-top:3px;display:block}.activity-energy-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.activity-energy-heading h2{margin:0;font-size:14px}.activity-energy-heading p{color:var(--muted);margin:5px 0 0;font-size:11px;line-height:1.4}.activity-energy-timeline>p{margin:10px 0 0;font-size:10px}.timeline-columns{color:var(--muted);grid-template-columns:minmax(125px,35%) minmax(0,1fr) 68px;gap:12px;margin-bottom:10px;font-size:10px;display:grid}.timeline-columns span:last-child{text-align:right}.mock-app .appliance-content .activity-energy-card .nilm-gantt-row.with-energy{grid-template-columns:minmax(125px,35%) minmax(0,1fr) 68px}.timeline-energy{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;font-size:12px;font-weight:600}.mock-app .activity-energy-card .nilm-gantt-track{border-radius:5px;height:24px}.mock-app .activity-energy-card .appliance-energy{border-top:1px solid var(--line);background:#f8fafc;padding:12px 16px}.activity-energy-card .appliance-energy h3{margin:0;font-size:12px}.mock-app .activity-energy-card .nilm-usage-grid{gap:10px}.mock-app .activity-energy-card .nilm-usage-card{background:#fff;border-radius:6px}@media (width<=600px){.timeline-columns,.mock-app .appliance-content .activity-energy-card .nilm-gantt-row.with-energy{grid-template-columns:minmax(100px,36%) minmax(0,1fr) 54px;gap:8px}.timeline-energy{font-size:11px}.activity-energy-heading{align-items:flex-start}.activity-energy-card .appliance-energy h3{margin-bottom:8px}}.activity-energy-heading{padding:12px 16px}.activity-energy-timeline{padding:10px 16px}.mock-app .activity-energy-card .nilm-gantt-label{align-items:center;gap:6px;min-width:0;display:flex}.mock-app .activity-energy-card .nilm-gantt-name{flex:1;min-width:0}.mock-app .activity-energy-card .nilm-gantt-label .nilm-ev-tag{white-space:nowrap;flex:none;padding:2px 5px;font-size:10px;line-height:1.2}.mock-app .appliance-content .activity-energy-card .nilm-gantt{gap:4px}.mock-app .activity-energy-card .nilm-gantt-track{height:20px}.mock-app .activity-energy-card .nilm-gantt-bar{top:3px;bottom:3px}.activity-energy-card .timeline-columns,.mock-app .appliance-content .activity-energy-card .nilm-gantt-row.with-energy{grid-template-columns:minmax(190px,38%) minmax(0,1fr) 68px}@media (width<=600px){.activity-energy-card .timeline-columns,.mock-app .appliance-content .activity-energy-card .nilm-gantt-row.with-energy{grid-template-columns:minmax(155px,45%) minmax(0,1fr) 48px;gap:6px}}.timeline-empty{border:1px dashed var(--line);color:var(--muted);text-align:center;background:#fafcfd;border-radius:7px;padding:18px 12px;font-size:12px}.mock-app .appliance-energy .nilm-hour-bars,.mock-app .nilm-hour-bars{border-bottom:0;align-items:stretch;gap:4px;height:64px}.nilm-hour-column{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:5px;min-width:0;display:flex}.mock-app .nilm-hour-column .nilm-hbar{border-radius:3px 3px 0 0;flex:none;width:100%;max-width:24px;min-height:2px;max-height:44px}.nilm-hour-column>span{color:var(--muted);white-space:nowrap;font-size:9px;line-height:12px}@media (width>=1200px){.mock-app .content.appliance-content{max-width:none}.mock-app .appliance-content .activity-workbench{grid-template-columns:minmax(440px,.85fr) minmax(0,1.15fr)}}.mock-app .appliance-chart .nilm-composition-graph-head{flex-wrap:wrap;justify-content:space-between;gap:4px 12px;display:flex}.mock-app .appliance-chart .composition-window-label{color:var(--chart-text);font-size:12px;font-weight:500}.mock-app .composition-compact .composition-summary .nilm-composition-chart{flex-basis:96px;width:96px;height:96px;min-height:96px}.mock-app .composition-compact .nilm-composition-total{gap:3px;width:64px}.mock-app .composition-compact .nilm-composition-total b{font-size:12px}.mock-app .composition-compact .nilm-composition-total span{font-size:7px}.mock-app .composition-compact .composition-summary .composition-appliances .nilm-composition-legend{max-height:104px}.mock-app .appliance-content .composition-compact .nilm-composition-top.composition-layout{gap:10px}.mock-app .composition-compact .composition-layout>.nilm-composition-graph{padding-top:8px}@media (width>=1001px){.mock-app .content.appliance-content:has(.activity-workbench){grid-template-rows:auto auto;height:auto;min-height:0}.mock-app .appliance-content:has(.activity-workbench)>.page-content{flex-direction:column;min-height:0;display:flex}.mock-app .appliance-content .appliance-workspace:has(.activity-workbench){flex-direction:column;flex:1;min-height:0;display:flex}.mock-app .appliance-content .appliance-toolbar{flex-shrink:0}.mock-app .appliance-content .appliance-activity{flex:none;min-height:0}.mock-app .appliance-content .activity-workbench{align-items:start;height:auto;min-height:0}.mock-app .appliance-content .activity-column{flex-direction:column;align-self:start;min-height:0;display:flex}.mock-app .appliance-content .activity-column>.card{overscroll-behavior:auto;min-height:0;overflow:auto}}.mock-app .appliance-content .composition-compact .nilm-composition-top.composition-layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:8px}.mock-app .composition-compact .composition-summary{grid-template-columns:96px minmax(0,1fr);gap:16px;max-width:none}.mock-app .composition-compact .composition-summary .nilm-composition-chart{justify-self:center}.mock-app .composition-compact .composition-list-heading{justify-content:flex-start;margin-bottom:4px;font-size:12px}.mock-app .composition-compact .composition-list-heading>span{font-size:11px}.mock-app .composition-compact .composition-appliances:not(.composition-appliances-many){max-width:340px}.mock-app .composition-compact .composition-summary .composition-appliances .nilm-composition-legend{grid-template-columns:minmax(0,1fr);align-content:start;gap:0 16px;max-height:104px;display:grid}.mock-app .composition-compact .composition-summary .composition-appliances-many .nilm-composition-legend{grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr))}.mock-app .composition-compact .composition-summary .nilm-composition-legend-item{gap:6px;min-width:0;padding:5px 0;font-size:12px}.mock-app .composition-compact .composition-layout>.nilm-composition-graph{border-top:1px solid var(--border);padding-top:8px}@container (width<=380px){.mock-app .composition-compact .composition-summary{grid-template-columns:76px minmax(0,1fr);gap:8px}.mock-app .composition-compact .composition-summary .nilm-composition-chart{transform-origin:50%;width:96px;margin-inline:-10px;transform:scale(.79)}}@media (width>=1001px){.mock-app .appliance-content .activity-column>.appliance-chart:has(.composition-compact){max-height:50dvh}}.appliance-summary{flex:none}.appliance-summary h2{margin:0 0 8px}.appliance-summary-stats{flex-wrap:wrap;gap:12px 28px;margin:12px 0;display:flex}.appliance-summary-stats dt{color:var(--muted);font-size:12px}.appliance-summary-stats dd{margin:4px 0 0;font-size:17px;font-weight:600}.appliance-assignment{flex-wrap:wrap;align-items:end;gap:8px;margin-top:12px;display:flex}.appliance-assignment label{min-width:0}.appliance-assignment select{max-width:100%}.run-facts{flex-wrap:wrap;gap:4px 12px;display:flex}.nilm-gantt-bar{cursor:pointer;border:0;min-width:6px;padding:0}.nilm-gantt-bar[aria-pressed=true]{outline:2px solid var(--text);outline-offset:2px;z-index:1}.nilm-gantt-bar:focus-visible{outline:3px solid var(--text);outline-offset:2px}.nilm-gantt-bar:disabled{cursor:default}.nilm-composition-top[data-appliance-only]>:first-child{display:none}.nilm-composition-top[data-appliance-only]{grid-template-columns:minmax(0,1fr)}@media (width>=1001px){.mock-app .appliance-content:has(.appliance-summary) .activity-workbench{height:auto;min-height:0}.mock-app .content.appliance-content:has(.appliance-summary){height:auto;min-height:calc(100dvh - 44px)}}@media (width<=600px){.appliance-summary-stats{grid-template-columns:1fr 1fr;gap:12px;display:grid}.appliance-summary-stats dd{overflow-wrap:anywhere;font-size:15px}.appliance-toolbar{flex-wrap:wrap}}.registry .reg-card .appliance-assignment{width:100%;display:grid}.registry .reg-card .appliance-assignment label{gap:6px;width:100%;display:grid}.registry .reg-card .appliance-assignment select{width:100%;min-width:0}.registry .reg-card .reg-card-foot{flex-wrap:wrap}.mobile-download{align-items:flex-start;gap:20px;max-width:760px;display:flex}.mobile-download-icon{color:#238a53;background:#e9f7ef;border-radius:14px;flex:none;place-items:center;width:56px;height:56px;display:grid}.mobile-download-icon .android-mark{width:36px;height:36px;display:block}.mobile-download h2{margin:0 0 8px}.mobile-download p{margin:0 0 20px}.mobile-download .btn{align-items:center;gap:8px;display:inline-flex}.mobile-download .mobile-download-help{color:var(--muted);margin:18px 0 0;font-size:13px;line-height:1.5}@media (width<=600px){.mobile-download{flex-direction:column}}
