/*!
 * © 2026 Leap8. All rights reserved.
 * Part of Leap8 IonLink — proprietary and confidential.
 * Unauthorized copying, modification, distribution, or use of this file,
 * in whole or in part, via any medium, is strictly prohibited without prior
 * written permission from Leap8.
 *
 * Not affiliated with, authorized, maintained, sponsored, or endorsed by
 * Marstek. Marstek, Venus E 3.0, CT002, and CT003 are trademarks of their
 * respective owners.
 */
:root{--bg-0:#0f1013;--bg-1:#0f1114;--bg-2:#171a1f;--bg-inset:#1c2026;--bg-3:#262b33;--bg-hover:#2f353f;--bg-active:#343b45;--border:#ffffff14;--border-soft:#ffffff0d;--border-strong:#ffffff1f;--text:#e7ecf2;--text-mid:#9aa3b2;--text-dim:#6c7689;--text-faint:#4a5263;--accent:#5eead4;--accent-dim:#2f7d6f;--accent-glow:#5eead438;--warn:#fbbf24;--warn-dim:#92731f;--danger:#ff6b6b;--danger-dim:#8c3636;--info:#7eb8ff;--battery-hi:#5eead4;--battery-md:#fbbf24;--battery-lo:#ff8b6b;--phase-1:#7eb8ff;--phase-2:#a78bfa;--phase-3:#f472b6;--radius:8px;--radius-lg:12px;--radius-inset:10px;--ctl-h:34px;--ctl-h-sm:30px;--ring-accent:inset 0 0 0 1px #5eead459;--font-sans:"Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:var(--font-sans);--shadow-1:0 1px 2px #00000059;--shadow-2:0 24px 60px #0000008c}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-sans);font-variant-numeric:tabular-nums;color:var(--text);background:var(--bg-0);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;flex-direction:column;min-height:100dvh;font-size:14px;line-height:1.5;display:flex}body:before{content:none}header{z-index:10;border-bottom:1px solid var(--border-soft);-webkit-backdrop-filter:blur(12px);background:#0f1013b8;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:16px;max-width:1180px;margin:0 auto;padding:14px 24px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand-mark{border-radius:8px;place-items:center;width:32px;height:32px;display:grid;overflow:hidden}.brand-mark svg{width:18px;height:18px;color:var(--accent)}.brand-logo{object-fit:contain;width:100%;height:100%;display:block}.brand-text{flex-direction:column;line-height:1;display:flex}.brand-title{font-family:var(--font-mono);letter-spacing:.02em;font-size:12px;font-weight:600}.brand-sub{font-family:var(--font-mono);color:var(--text-faint);letter-spacing:.14em;text-transform:uppercase;margin-top:3px;font-size:10px}header .brand-title,header .brand-sub,header .device-name,header .device-addr,header .device-kind,header .conn-pill{font-family:var(--font-sans)}.conn-pill{font-family:var(--font-sans);letter-spacing:.1em;text-transform:uppercase;color:var(--text-mid);background:#ffffff0d;border:none;border-radius:999px;align-items:center;gap:8px;padding:8px 14px;font-size:11px;font-weight:700;display:inline-flex}.conn-dot{background:var(--text-faint);border-radius:50%;width:8px;height:8px;transition:all .3s;box-shadow:0 0 #0000}.conn-pill[data-state=connecting] .conn-dot{background:var(--warn);box-shadow:none;animation:1.2s ease-in-out infinite pulse}.conn-pill[data-state=connecting]{color:var(--warn);background:#fbbf241f}.conn-pill[data-state=online] .conn-dot{background:var(--info);box-shadow:none}.conn-pill[data-state=online]{color:var(--info);background:#7eb8ff1f}.conn-pill[data-state=offline] .conn-dot{background:var(--text-faint);box-shadow:none}.conn-pill[data-state=offline]{color:var(--text-dim);background:#ffffff0d}.conn-pill[data-state=error] .conn-dot{background:var(--danger);box-shadow:none}.conn-pill[data-state=error]{color:var(--danger);background:#ff6b6b1f}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.65;transform:scale(1.3)}}.conn-abort{width:20px;height:20px;color:inherit;opacity:.7;pointer-events:none;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;margin:-4px -8px -4px -4px;padding:0;transition:opacity .12s;display:inline-flex}.conn-abort[hidden]{display:none}.conn-pill.conn-abortable{cursor:pointer}.conn-pill.conn-abortable:hover{background:#fbbf2438}.conn-pill.conn-abortable:hover .conn-abort{opacity:1}.conn-pill.conn-abortable:focus-visible{outline-offset:2px;outline:2px solid}@media (pointer:coarse){.conn-abort{width:28px;height:28px;margin:-6px -10px -6px -6px}}body.connected #header-brand,body.connected .beta-testers-bar,body:not(.connected) #header-device-identity,body:not(.connected) #btn-disconnect{display:none}#header-device-identity{gap:12px}#header-device-identity .device-addr{margin-top:1px}.stat-value,.device-addr,.paired-type,.conn-pill,.log-content,.sched-summary-line1 .watts,.dod-label-val,.stat-meta,.info-value,.mac-address{font-family:var(--font-mono)}main{z-index:1;flex-direction:column;flex:1 0 auto;width:100%;max-width:1260px;margin:0 auto;padding:28px 24px 120px;display:flex;position:relative}body:not(.connected) main{padding-bottom:28px}body.connected main{padding-top:15px}@media (width<=720px){body.connected main{padding-top:8px}}.welcome{text-align:center;padding:24px 20px 40px}.welcome-badge{width:fit-content;font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;text-align:center;color:var(--text-mid);background:var(--bg-3);border:1px solid var(--border-strong);border-radius:999px;margin:0 auto 28px;padding:5px 12px;font-size:11px;font-weight:600}.welcome-pre{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:18px;font-size:12px}.welcome-title{font-family:var(--font-sans);letter-spacing:-.02em;color:var(--text);margin:0 0 16px;font-size:38px;font-weight:600;line-height:1.15}.welcome-lead{color:var(--text-mid);max-width:560px;margin:0 auto 32px;font-size:16px;line-height:1.55}.welcome-disclaimer{color:var(--text-faint);text-align:center;order:99;width:100%;max-width:720px;margin:auto auto 0;padding-top:40px;font-size:11px;line-height:1.5}body.connected .welcome-disclaimer{display:none}.btn-scan{font-family:var(--font-sans);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);cursor:pointer;box-shadow:none;background:#5eead424;border:none;border-radius:9px;align-items:center;gap:10px;padding:14px 28px;font-size:12px;font-weight:700;transition:background .2s;display:inline-flex}.btn-scan:hover{background:#5eead438}.btn-scan svg{width:16px;height:16px}.add-device-wrap{max-width:560px;margin:0 auto}.btn-add-device{width:100%;color:var(--accent);font-family:var(--font-sans);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:#5eead424;border:none;border-radius:9px;justify-content:center;align-items:center;gap:9px;padding:14px;font-size:12px;font-weight:700;transition:background .15s,box-shadow .15s;display:flex}.btn-add-device svg{width:18px;height:18px}.btn-add-device:hover:not(:disabled){background:#5eead438}.btn-add-device:focus-visible{box-shadow:var(--ring-accent);outline:none}.btn-add-device:disabled{opacity:.45;cursor:not-allowed}.btn-add-device[aria-expanded=true]{background:#5eead438}body.no-select{-webkit-user-select:none;user-select:none}body.no-select input,body.no-select textarea,body.no-select [contenteditable]{-webkit-user-select:text;user-select:text}.device-chooser{background:var(--border-soft);border-radius:var(--radius-inset);box-shadow:none;border:none;flex-direction:column;gap:1px;margin-top:8px;display:flex;overflow:hidden}.chooser-opt{background:var(--bg-inset);width:100%;color:var(--text);text-align:left;cursor:pointer;font-family:var(--font-sans);border:none;align-items:center;gap:14px;padding:16px 18px;transition:background .12s;display:flex}.chooser-opt+.chooser-opt{border-top:none}.chooser-opt:hover{background:#20242b}.chooser-opt:focus-visible{box-shadow:var(--ring-accent);background:#20242b;outline:none}.chooser-thumb{background:var(--bg-2);border:none;border-radius:9px;flex:none;place-items:center;width:40px;height:40px;display:grid;overflow:hidden}.chooser-thumb img{object-fit:cover;width:100%;height:100%}.chooser-thumb svg{width:19px;height:19px;color:var(--accent)}.chooser-text{flex-direction:column;gap:3px;min-width:0;display:flex}.chooser-title{font-family:var(--font-sans);color:var(--text);font-size:13.5px;font-weight:600}.chooser-sub{font-family:var(--font-mono);color:var(--text-mid);font-size:11px}.compat-note{background:var(--bg-inset);border-radius:var(--radius-inset);color:var(--text-dim);text-align:left;border:1px solid #ffffff0f;max-width:560px;margin-top:26px;margin-left:auto;margin-right:auto;padding:16px 18px;font-size:14px}.compat-note strong{color:var(--text-mid)}.compat-note code{font-family:var(--font-mono);color:var(--text-mid);font-size:12px}.compat-note a{color:var(--info);text-decoration:none}.compat-note a:hover{text-decoration:underline}.compat-note.compat-ok{background:#5eead40d;border-color:#5eead440}.compat-note.compat-partial{background:#fbbf240f;border-color:#fbbf2440}.compat-note.compat-blocked-browser,.compat-note.compat-blocked-device{color:#ffd2d2;background:#ff6b6b0f;border-color:#ff6b6b47}.compat-note.compat-blocked-browser strong,.compat-note.compat-blocked-device strong{color:var(--danger)}.compat-note.error{color:#ffd2d2;background:#ff6b6b0f;border-color:#ff6b6b47}.compat-note.error strong{color:var(--danger)}.compat-note.compat-warn{background:#fbbf240f;border-color:#fbbf2440}.lna-modal .compat-flag-url{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.lna-modal .compat-flag-url code{background:var(--bg-0);border:1px solid var(--border-soft);color:var(--text-mid);word-break:break-all;user-select:all;border-radius:4px;flex:auto;padding:6px 8px;font-size:13px}.lna-modal .compat-copy-btn{background:var(--bg-2);border:1px solid var(--border-strong);color:var(--text-mid);font:500 13px var(--font-sans);cursor:pointer;border-radius:4px;flex:none;padding:6px 12px;transition:all .12s}.lna-modal .compat-copy-btn:hover{background:var(--bg-hover);border-color:var(--accent-dim);color:var(--text)}.lna-modal .compat-copy-btn.copied{background:var(--accent-dim);border-color:var(--accent);color:var(--text);box-shadow:0 0 8px var(--accent-glow)}.lna-modal .compat-footnote,.compat-wizard-modal .compat-footnote{color:var(--text-faint);border-top:1px solid var(--border-soft);margin-top:10px;padding-top:10px;font-size:13px}.compat-note{--compat-icon-size:22px;--compat-icon-gap:12px}.compat-note .compat-row{align-items:flex-start;gap:var(--compat-icon-gap);line-height:1.55;display:flex}.compat-note .compat-icon{flex:0 0 var(--compat-icon-size);width:var(--compat-icon-size);height:var(--compat-icon-size);font-family:var(--font-mono);color:var(--bg-0);border-radius:50%;justify-content:center;align-items:center;margin-top:1px;font-size:12px;font-weight:700;display:inline-flex}.compat-note .compat-icon.ok{background:var(--accent);box-shadow:none}.compat-note .compat-icon.warn{background:var(--warn);color:#2a1f00}.compat-note .compat-icon.err{background:var(--danger);color:#1a0000}.compat-note .compat-list,.compat-note .compat-steps{margin:8px 0 10px;padding-left:22px}.compat-note .compat-list li,.compat-note .compat-steps li{margin:4px 0}.compat-note .compat-flag{background:var(--bg-2);border:1px solid var(--border-soft);border-radius:var(--radius);margin:8px 0;padding:12px 14px}.compat-note .compat-flag-head{flex-direction:column;gap:2px;margin-bottom:6px;display:flex}.compat-note .compat-flag-head strong{color:var(--text);font-size:12px}.compat-note .compat-flag-why{color:var(--text-faint);font-size:11.5px}.compat-note .compat-flag-url{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.compat-note .compat-flag-url code{background:var(--bg-0);border:1px solid var(--border-soft);color:var(--text-mid);word-break:break-all;user-select:all;border-radius:4px;flex:auto;padding:6px 8px;font-size:12px}.compat-note .compat-copy-btn{background:var(--bg-2);border:1px solid var(--border-strong);color:var(--text-mid);font:500 12px var(--font-sans);cursor:pointer;border-radius:4px;flex:none;padding:6px 12px;transition:all .12s}.compat-note .compat-copy-btn:hover{background:var(--bg-hover);border-color:var(--accent-dim);color:var(--text)}.compat-note .compat-copy-btn.copied{background:var(--accent-dim);border-color:var(--accent);color:var(--text);box-shadow:0 0 8px var(--accent-glow)}.compat-note .compat-actions{flex-wrap:wrap;justify-content:center;gap:14px;margin-top:10px;display:flex}.compat-note .compat-row>div>.compat-cta,.compat-note .compat-row>div>.compat-actions{margin-left:calc(-1 * (var(--compat-icon-size) + var(--compat-icon-gap)))}.compat-note .compat-disclosure{color:var(--info);font:400 12.5px var(--font-sans);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.compat-note .compat-disclosure:hover{color:var(--accent)}.compat-note .compat-details{background:var(--bg-2);border:1px solid var(--border-soft);border-radius:var(--radius);color:var(--text-mid);margin-top:10px;padding:12px 14px;font-size:12.5px}.compat-note .compat-details p{margin:6px 0}.compat-note .compat-details p:first-child{margin-top:0}.compat-note .compat-details p:last-child{margin-bottom:0}.compat-note .compat-repair{margin-top:10px}.compat-note .compat-footnote{color:var(--text-faint);border-top:1px solid var(--border-soft);margin-top:10px;padding-top:10px;font-size:11.5px}.compat-note .compat-help-row{opacity:.7;width:100%;font-size:12.5px;text-align:left!important;display:block!important}.compat-note .compat-help-row .compat-disclosure{margin-left:.5em}.compat-note .hidden{display:none}.paired-section{text-align:left;max-width:560px;margin:36px auto 28px}.paired-title{font-family:var(--font-sans);letter-spacing:.04em;color:var(--text-dim);margin-bottom:10px;font-size:12px;font-weight:600}.paired-list{background:var(--border-soft);border-radius:var(--radius-inset);flex-direction:column;gap:1px;display:flex;overflow:hidden}.paired-list:empty{background:0 0}.paired-group{margin-bottom:20px}.paired-group:last-child{margin-bottom:0}.paired-item{background:var(--bg-inset);cursor:pointer;box-shadow:none;border:none;border-radius:0;align-items:center;gap:14px;padding:14px 18px;transition:background .15s,box-shadow .15s;display:flex}.paired-item:hover{background:#20242b}.paired-img{background:var(--bg-2);border:none;border-radius:9px;flex-shrink:0;place-items:center;width:40px;height:40px;display:grid;position:relative;overflow:hidden}.paired-img .device-thumb-fallback{display:block!important}.paired-img img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.paired-img svg{width:20px;height:20px;color:var(--accent)}.paired-info{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.paired-name{font-family:var(--font-sans);color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:600;overflow:hidden}.paired-type{font-family:var(--font-mono);color:var(--text-mid);align-items:center;gap:7px;font-size:11px;display:flex}.paired-dot{background:var(--accent);width:7px;height:7px;box-shadow:none;border-radius:50%;flex:none}.paired-forget{width:30px;height:30px;color:var(--text-faint);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;flex-shrink:0;place-items:center;transition:all .15s;display:grid}.paired-forget svg{width:16px;height:16px}.paired-forget:hover{color:var(--danger);border-color:var(--danger-dim);background:#ff6b6b0f}.paired-rename{width:30px;height:30px;color:var(--text-faint);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;flex-shrink:0;place-items:center;transition:all .15s;display:grid}.paired-rename svg{width:15px;height:15px}.paired-rename:hover{color:var(--accent);border-color:var(--accent-dim);background:#5eead40f}.paired-item.orphaned{background:var(--bg-2);box-shadow:inset 0 0 0 1px #fbbf2433}.paired-item.orphaned .paired-img{opacity:.85;background:#fbbf2414}.paired-item.orphaned .paired-img svg{color:var(--warn)}.paired-item.orphaned .paired-name{color:var(--text-mid)}.paired-item.orphaned .paired-dot{background:var(--warn);box-shadow:none}.paired-item.orphaned:hover{box-shadow:inset 0 0 0 1px #fbbf2459}.paired-badge{font-family:var(--font-sans);color:var(--warn);background:#fbbf241f;border:none;border-radius:999px;flex-shrink:0;padding:4px 10px;font-size:11px;font-weight:600}.paired-item.connecting{cursor:default;box-shadow:var(--ring-accent)}.paired-item.connecting:hover{background:var(--bg-inset)}.paired-item.connecting .paired-rename,.paired-item.connecting .paired-forget{display:none}.paired-connect{flex:none;align-items:center;gap:8px;display:flex}.paired-connect-elapsed{font-family:var(--font-mono);color:var(--accent);font-variant-numeric:tabular-nums;font-size:11px}.paired-connect-spin{border:2px solid #5eead440;border-top-color:var(--accent);border-radius:50%;flex:none;width:12px;height:12px;animation:.9s linear infinite paired-connect-spin}@keyframes paired-connect-spin{to{transform:rotate(360deg)}}.paired-stop{width:30px;height:30px;color:var(--text-faint);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;flex-shrink:0;place-items:center;transition:all .15s;display:grid}.paired-stop svg{width:17px;height:17px}.paired-stop:hover{color:var(--danger);border-color:var(--danger-dim);background:#ff6b6b0f}.paired-connect-sub{font-family:var(--font-mono);color:var(--text-dim);font-size:11px}.paired-connect-adv{color:var(--text-faint)}.paired-connect-adv:not(:empty):before{content:" · ";color:var(--text-faint)}.device-bar{background:var(--bg-2);border:1px solid var(--border-soft);border-radius:var(--radius-lg);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;padding:14px 20px;display:flex}.device-meta{flex-wrap:nowrap;align-items:center;gap:16px;min-width:0;display:flex;overflow:hidden}.device-icon{background:var(--bg-inset);border:1px solid var(--border-soft);width:36px;height:36px;color:var(--accent);border-radius:9px;flex:none;place-items:center;display:grid}.device-icon svg{width:20px;height:20px}.device-icon img{object-fit:cover;border-radius:8px;width:100%;height:100%}.device-name-block{flex-direction:column;flex:none;display:flex}.device-name-block.name-hidden{display:none}.device-name{font-family:var(--font-sans);color:var(--text);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;background:#ffffff0d;border:none;border-radius:999px;padding:5px 12px;font-size:11px;font-weight:700;line-height:1.3}.device-name-row{align-items:center;gap:6px;min-width:0;display:flex}.btn-rename{color:var(--text-faint);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;place-items:center;padding:3px 5px;transition:color .15s,border-color .15s,background .15s;display:grid}.btn-rename:hover{color:var(--accent);border-color:var(--border-soft);background:#5eead40d}.btn-rename:focus-visible{color:var(--accent);border-color:var(--accent-dim);outline:none}.btn-rename svg{width:12px;height:12px}.device-addr{font-family:var(--font-mono);color:var(--text-dim);margin-top:2px;font-size:11px}.device-kind{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;box-sizing:border-box;white-space:nowrap;min-height:22px;color:var(--info);background:#7eb8ff1f;border:none;border-radius:999px;align-items:center;gap:6px;padding:3px 10px 3px 8px;font-size:12px;display:inline-flex}.device-kind:before{content:"";width:6px;height:6px;box-shadow:none;background:currentColor;border-radius:50%;flex-shrink:0}.device-kind.meter{color:var(--info);background:#7eb8ff1f}#btn-disconnect .btn-disconnect-icon{display:none}@media (width<=720px){#btn-disconnect{width:30px;min-width:30px;padding:0}#btn-disconnect .btn-disconnect-icon{display:inline-block}#btn-disconnect .btn-disconnect-label{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}.grid{grid-template-columns:repeat(2,1fr);gap:2px;display:grid}.grid-full{grid-column:1/-1}@media (width<=720px){.grid{grid-template-columns:1fr}}@media (width<=1260px){.grid:has(>.card.meter-only:not(.hidden)){grid-template-columns:1fr}}.card{background:var(--bg-2);border-radius:var(--radius-lg);border:1px solid #ffffff0f;overflow:hidden}.card.sq-tl{border-top-left-radius:0}.card.sq-tr{border-top-right-radius:0}.card.sq-bl{border-bottom-left-radius:0}.card.sq-br{border-bottom-right-radius:0}.card-header{border-bottom:1px solid var(--border-soft);min-height:calc(var(--ctl-h-sm) + 31px);justify-content:space-between;align-items:center;gap:12px;padding:15px 20px;display:flex}.card-title{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--text-mid);align-items:center;gap:10px;font-size:11px;font-weight:600;display:flex}.card-title-dot{background:var(--accent);width:6px;height:6px;box-shadow:none;border-radius:50%}.card-actions{gap:8px;display:flex}.card-body{flex-direction:column;gap:14px;padding:20px;display:flex}.status-card .card-body{gap:6px;padding:20px}.status-grid{grid-template-columns:1.2fr 1fr 180px;align-items:stretch;gap:2px;display:grid}@media (width<=720px){.status-grid{grid-template-columns:1fr 1fr}}.stat{flex-direction:column;gap:4px;display:flex}.status-grid>.stat{background:var(--bg-inset);border-radius:var(--radius-inset);gap:6px;min-width:0;padding:16px 18px}.stat-label{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--text-faint);font-size:11px}.stat-value{font-family:var(--font-mono);letter-spacing:-.01em;color:var(--text);font-variant-numeric:tabular-nums;font-size:48px;font-weight:500;line-height:1}.stat-value .unit{color:var(--text-dim);margin-left:4px;font-size:12px;font-weight:400}.stat-value.lg{font-size:48px}.status-card .stat-value#t-soc,.status-card .stat-value#t-grid-power{white-space:nowrap;min-width:5ch;font-size:26px;font-weight:500;line-height:1}.status-card .stat-value#t-soc .unit,.status-card .stat-value#t-grid-power .unit{margin-left:3px;font-size:11px}.status-card .stat-value#t-soc,.status-card .stat-value#t-soc .unit{color:var(--text)}@media (width<=720px){.status-card .stat-value#t-soc,.status-card .stat-value#t-grid-power{font-size:22px}}.stat-meta{font-family:var(--font-mono);color:var(--text-dim);font-size:12px}.stat-value.accent{color:var(--accent)}.stat-value.warn{color:var(--warn)}.stat-value.danger{color:var(--danger)}.stat-value.idle{color:var(--text-dim)}.stat-value.accent .unit,.stat-value.warn .unit,.stat-value.danger .unit{color:inherit}.soc-bar{background:var(--bg-1);border:none;border-radius:3px;height:6px;margin-top:8px;overflow:hidden}.soc-bar-fill{background:linear-gradient(90deg, var(--battery-hi), var(--battery-md));height:100%;transition:width .8s ease-out}.status-row-2{background:var(--border-soft);border-radius:var(--radius-inset);border-top:none;grid-template-columns:repeat(3,1fr);gap:1px;padding-top:0;display:grid;overflow:hidden}@media (width<=720px){.status-row-2{grid-template-columns:1fr 1fr}}.status-row-2>.stat{background:var(--bg-2);gap:5px;min-width:0;padding:14px 16px}.status-row-2 .stat-value{font-size:12px;font-weight:500}.status-card .status-row-2 .stat-value{font-size:15px;font-weight:400}.status-card .status-row-2 .stat-value .unit{margin-left:3px;font-size:11px}.status-card .status-row-2:has(>#t-peakshave-stat:not(.hidden)){grid-template-columns:repeat(4,1fr)}@media (width<=720px){.status-card .status-row-2:has(>#t-peakshave-stat:not(.hidden))>#meter-conn-mobile{grid-column:1/-1}}#t-peakshave{letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);font-size:12px;font-weight:600;line-height:normal}#t-peakshave.on{color:var(--accent)}#t-backup-power.accent{letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:600;line-height:normal}.meter-conn-stat{gap:6px}#meter-conn-mobile{display:none}@media (width<=720px){#meter-conn-desktop{display:none}#meter-conn-mobile{display:flex}}.meter-scope{width:100%;max-width:160px;height:26px}.meter-scope-canvas{width:100%;height:100%;display:block}@media (width<=720px){.meter-scope{max-width:120px;height:16px}}.dod-stat-label{white-space:nowrap}.dod-stat-label .dod-label-abbr{display:none}@media (width<=480px){.dod-stat-label .dod-label-full{display:none}.dod-stat-label .dod-label-abbr{display:inline}}.card.meter-only .card-body:has(#m-grid){grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;gap:2px;display:grid}.card.meter-only .card-body:has(#m-grid)>.status-row-2{display:contents}.card.meter-only .card-body:has(#m-grid)>.status-row-2>.stat{background:var(--bg-inset);border-radius:var(--radius-inset);gap:6px;min-width:0;padding:16px 18px}.card.meter-only .card-body:has(#m-grid)>.info-row{border-bottom:1px solid var(--border-soft);background:0 0;border-radius:0;grid-column:1/-1;padding:11px 2px}.card.meter-only .card-body:has(#m-grid)>.info-row+.info-row{margin-top:-2px}.card.meter-only .card-body:has(#m-grid)>.info-row:last-child{border-bottom:none;padding-bottom:0}.card.meter-only .card-body:has(#m-grid)>.status-row-2+.info-row{margin-top:14px}.card.meter-only .stat-value#m-grid{white-space:nowrap;min-width:5ch;font-size:26px;font-weight:500;line-height:1}.card.meter-only .stat-value#m-grid .unit{margin-left:3px;font-size:11px}.card.meter-only .stat-value#m-l1,.card.meter-only .stat-value#m-l2,.card.meter-only .stat-value#m-l3{color:var(--text);white-space:nowrap;min-width:5ch;font-size:26px;font-weight:500;line-height:1}.card.meter-only .stat-value#m-l1 .unit,.card.meter-only .stat-value#m-l2 .unit,.card.meter-only .stat-value#m-l3 .unit{margin-left:3px;font-size:11px}#m-voltage-stat,.card.meter-only .stat:has(>#m-phases),.card.meter-only .info-row:has(>#m-id){display:none}.card.meter-only .card-body:has(#m-grid)>.meter-graph{background:var(--bg-inset);border-radius:var(--radius-inset);grid-column:1/-1;margin-top:14px;padding:14px 16px 10px}.card.meter-only .card-body:has(#m-grid)>.meter-graph+.info-row{margin-top:14px}.meter-graph-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.meter-graph-legend{flex-wrap:wrap;gap:4px;display:flex}.mg-key{cursor:pointer;font-family:var(--font-sans);letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);background:0 0;border:none;border-radius:999px;align-items:center;gap:6px;padding:4px 9px;font-size:10px;font-weight:600;transition:background .15s,color .15s,opacity .15s;display:inline-flex}.mg-key:hover{background:var(--bg-hover);color:var(--text-mid)}.mg-key.off{opacity:.4}.mg-key.off .mg-swatch{box-shadow:none;background:var(--text-faint)!important}.mg-swatch{border-radius:50%;flex:none;width:8px;height:8px}.mg-sw-total{background:linear-gradient(180deg, var(--warn) 0 50%, var(--accent) 50% 100%)}.mg-sw-l1{background:var(--phase-1)}.mg-sw-l2{background:var(--phase-2)}.mg-sw-l3{background:var(--phase-3)}.meter-graph-range{background:var(--bg-1);border-radius:999px;flex:none;gap:2px;padding:2px;display:flex}.mg-range{cursor:pointer;font-family:var(--font-sans);letter-spacing:.08em;color:var(--text-dim);background:0 0;border:none;border-radius:999px;padding:4px 10px;font-size:10px;font-weight:700;transition:background .15s,color .15s}.mg-range:hover{color:var(--text-mid)}.mg-key .mg-sym{letter-spacing:0;text-transform:none;font-size:15px;font-weight:500;line-height:12px;display:inline-block}.mg-range-icon{justify-content:center;align-items:center;display:inline-flex}.mg-range-icon .mg-sym-svg{width:18px;height:9px;display:block}.mg-range.is-on{background:var(--bg-active);color:var(--text);box-shadow:0 1px 2px #00000059}.meter-graph-canvas{touch-action:pan-y;width:100%;height:190px;position:relative}.mg-canvas{width:100%;height:100%;display:block}@media (width<=720px){.card.meter-only .card-body:has(#m-grid)>.meter-graph{padding:12px 10px 8px}.meter-graph-canvas{height:165px}.card.meter-only .card-body:has(#m-grid){grid-template-columns:repeat(2,minmax(0,1fr))}.card.meter-only .card-body:has(#m-grid)>.status-row-2>.stat{padding:14px 15px}.card.meter-only .stat-value#m-grid,.card.meter-only .stat-value#m-l1,.card.meter-only .stat-value#m-l2,.card.meter-only .stat-value#m-l3{font-size:22px}}.field{flex-direction:column;gap:7px;display:flex}.label,.stat-label,.card-title,.toggle-state,.auto-refresh-label{font-family:var(--font-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);font-size:11px;font-weight:600}.card-title,.auto-refresh-label{font-size:12px}.toggle-state{font-family:var(--font-mono)}.auto-refresh-label{cursor:pointer;align-items:center;gap:6px;line-height:1;display:inline-flex}.label{margin-bottom:14px}.stat-label{font-size:12px}.label[data-i18n=limits\.maxChargePower]{margin-bottom:0}.hint{color:var(--text-mid);margin-top:8px;font-size:13.5px;line-height:1.55}.card-body>.hint:first-child{margin-top:0}.hint[data-i18n=localApi\.hint],#identify-state{text-transform:none}.hint[data-i18n-html=meter\.marstekAvailHtml]{margin-top:0}.input,select{background:var(--bg-1);color:var(--text);min-height:var(--ctl-h);border-radius:var(--radius);font-family:var(--font-sans);border:1px solid #0000;width:100%;padding:8px 12px;font-size:14px;transition:box-shadow .15s;box-shadow:inset 0 0 0 1px #ffffff0d}.input:focus,select:focus{outline:none;box-shadow:inset 0 0 0 1px #5eead473}.input::placeholder{color:var(--text-faint)}.input.invalid{box-shadow:inset 0 0 0 1px #ff6b6b73}input[type=time]{color-scheme:dark}@supports (-webkit-touch-callout:none){#sched-start,#sched-end{-webkit-appearance:none;appearance:none;width:100%;min-width:0;max-width:100%}#sched-start::-webkit-date-and-time-value,#sched-end::-webkit-date-and-time-value{text-align:left;margin:0}}.row{align-items:end;gap:10px;display:flex}.row:has(>#btn-set-dod),.phase-auto-row{--hint-lead:calc((1.55 - 1) * 13.5px / 2 + 1.5px);align-items:flex-start}.phase-auto-row>.btn{margin-top:var(--hint-lead)}.phase-auto-row>.hint{margin-top:0}.row:has(>#btn-set-dod)>.btn{margin-top:calc(8px + var(--hint-lead))}.row>.field{flex:1;min-width:0}.wifi-form .row{align-items:center}.wifi-form{display:contents}.row-between{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.btn{font-family:var(--font-sans);letter-spacing:.1em;text-transform:uppercase;border-radius:var(--radius);background:var(--bg-3);color:var(--text-mid);cursor:pointer;min-height:var(--ctl-h);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:7px 16px;font-size:12px;font-weight:600;transition:background .15s,color .15s,box-shadow .15s;display:inline-flex}.btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.primary{color:var(--accent);background:#5eead424;font-weight:700}.btn.primary:hover:not(:disabled){color:var(--accent);background:#5eead438}.btn.warn{color:var(--warn);background:#fbbf241a}.btn.warn:hover:not(:disabled){color:var(--warn);background:#fbbf242e}.btn.danger{color:var(--danger);background:#ff6b6b1a}.btn.danger:hover:not(:disabled){color:var(--danger);background:#ff6b6b2e}.btn.ghost{border-color:var(--border-soft);color:var(--text-mid);background:0 0}.btn.ghost:hover:not(:disabled){background:#ffffff0a}.btn.sm{min-height:var(--ctl-h-sm);border-radius:7px;padding:5px 12px;font-size:11px}.btn.xs{letter-spacing:.06em;border-radius:6px;min-height:24px;padding:4px 8px;font-size:9px}.btn.active-mode{background:var(--bg-active);color:var(--text);border-color:#0000;box-shadow:0 1px 2px #00000059}.btn.identifying{color:var(--warn);background:#fbbf242e;animation:1s ease-in-out infinite identify-pulse}@keyframes identify-pulse{0%,to{box-shadow:0 0 #fbbf2440}50%{box-shadow:0 0 0 6px #fbbf2400}}.btn-row{flex-wrap:wrap;gap:8px;display:flex}.btn-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;display:grid}.card:has(.card-title [data-i18n=danger\.cardTitle]) .btn-row,.card:has(.card-title [data-i18n=system\.cardTitle]) .btn-row{justify-content:center}.toggle-row{background:var(--bg-inset);border-radius:var(--radius-inset);border:none;justify-content:space-between;align-items:center;gap:14px;padding:15px 18px;display:flex}.toggle-label{flex-direction:column;gap:4px;display:flex}.toggle-name{font-family:var(--font-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);font-size:11px;font-weight:600}.toggle-state{font-family:var(--font-mono);color:var(--accent);letter-spacing:.08em;text-transform:uppercase;font-size:12px}.toggle-state.on{color:var(--accent)}#tog-localapi-state{color:var(--accent);font-family:var(--font-sans);letter-spacing:normal;text-transform:none;font-size:12px;line-height:1.55}#tog-localapi-state .bt-state-prefix{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:12px}.hint.bt-state-hint{font-family:var(--font-sans);letter-spacing:normal;text-transform:none;margin-top:0;font-size:13.5px;line-height:1.55}.hint.bt-state-hint .bt-state-prefix{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:13.5px}.toggle-row:has(#btn-identify.identifying) #identify-state,.toggle-row:has(#btn-identify.identifying) #identify-state *{color:var(--text)}.switch{background:var(--bg-active);cursor:pointer;border:1px solid #0000;border-radius:999px;flex-shrink:0;width:44px;height:24px;transition:background .2s;position:relative}.switch:after{content:"";background:var(--text-mid);border-radius:50%;width:18px;height:18px;transition:transform .2s,background .2s;position:absolute;top:2px;left:2px}.switch[data-on=true]{background:var(--accent-dim);border-color:#0000}.switch[data-on=true]:after{box-shadow:none;background:#f5f7fa;transform:translate(20px)}.switch.busy{opacity:.5;cursor:wait}.segmented{background:var(--bg-1);min-height:calc(var(--ctl-h) + 4px);box-sizing:border-box;border:none;border-radius:9px;align-items:stretch;gap:2px;padding:2px;display:inline-flex;box-shadow:inset 0 0 0 1px #ffffff0d}.segmented button{font-family:var(--font-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);cursor:pointer;min-height:var(--ctl-h);white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;padding:0 16px;font-size:11px;font-weight:700;transition:background .15s,color .15s;display:inline-flex}.segmented button:hover{color:var(--text-mid)}.segmented button.active{background:var(--bg-active);color:var(--text);border-color:#0000;box-shadow:0 1px 2px #00000059}.segmented.sm{min-height:26px;padding:2px}.segmented.sm button{min-height:22px;padding:0 10px;font-size:11px}.segmented.full-width{width:100%;display:flex}.segmented.full-width button{flex:1 1 0}#maxout-seg button{font-family:var(--font-mono);letter-spacing:.04em;font-size:12px;font-weight:600}.mode-field{container-type:inline-size}.mode-grid{background:var(--bg-1);border-radius:9px;grid-template-columns:repeat(3,1fr);gap:2px;padding:2px;display:grid;box-shadow:inset 0 0 0 1px #ffffff0d}.mode-btn{background:0 0;border-radius:7px;gap:6px;min-width:0;padding-left:10px;padding-right:10px}.mode-btn:hover:not(:disabled){background:#ffffff0a}.mode-btn__icon{flex:none;width:16px;height:16px}.mode-btn__label{letter-spacing:.04em;text-overflow:ellipsis;min-width:0;font-size:12px;overflow:hidden}@container (width<=555px){.mode-grid{gap:2px;display:flex}.mode-grid .mode-btn{flex:none;padding-left:12px;padding-right:12px}.mode-grid .mode-btn .mode-btn__label{display:none}.mode-grid .mode-btn.active-mode{flex:auto;padding-left:16px;padding-right:16px}.mode-grid .mode-btn.active-mode .mode-btn__label{display:inline}}.sub-section{background:var(--bg-inset);border-radius:var(--radius-inset);border-top:none;flex-direction:column;gap:12px;margin-top:0;padding:16px 18px;display:flex}.sub-section:first-child{border-top:none;margin-top:0}.sub-section>.label,#limits-card .sub-section>.label{margin-bottom:0}#mode-power-card .mode-field>.label{margin-bottom:7px}#mode-power-card #ups-reserve-section>.label{margin-bottom:0}.info-row{font-family:var(--font-sans);border-bottom:1px solid var(--border-soft);justify-content:space-between;align-items:center;padding:10px 0;font-size:14px;display:flex}.info-row:last-child,.info-row:has(+.btn-row){border-bottom:none}.card-body>.info-row+.info-row{margin-top:-14px}.card-body>.info-row:first-child{padding-top:0}.card-body>.info-row:last-child{padding-bottom:0}#network-card .info-row:has(+.sub-section),#network-card #net-ssid-row:has(+.info-row[style*=none]){border-bottom:none}.info-label{color:var(--text-dim);letter-spacing:.04em}.info-value{color:var(--text);letter-spacing:.04em}.sched-not-manual{border-radius:var(--radius-inset);color:var(--warn);background:#fbbf240f;border:none;align-items:flex-start;gap:10px;padding:14px 16px;font-size:12px;display:flex;box-shadow:inset 0 0 0 1px #fbbf2440}.sched-not-manual svg{flex-shrink:0;width:16px;height:16px;margin-top:1px}.sched-toolbar{border-bottom:1px solid var(--border-soft);flex-wrap:wrap;align-items:center;gap:8px;padding-bottom:12px;display:flex}.sched-toolbar .sched-count{font-family:var(--font-mono);color:var(--text-dim);letter-spacing:.1em;text-transform:uppercase;margin-left:auto;font-size:11px}.sched-list{background:var(--border-soft);border-radius:var(--radius-inset);flex-direction:column;gap:1px;margin-top:12px;display:flex;overflow:hidden}.sched-list:empty{background:0 0}.sched-list:empty+.sched-empty{display:block}.sched-empty{text-align:center;color:var(--text-dim);padding:24px 16px;font-size:12px;font-style:italic}.sched-row{background:var(--bg-2);border:none;border-radius:0;transition:box-shadow .15s,background .15s;overflow:hidden}.sched-row.active{box-shadow:var(--ring-accent)}.sched-row.expanded{background:var(--bg-inset)}.sched-summary{cursor:pointer;user-select:none;align-items:center;gap:10px;padding:15px 18px;display:flex}.sched-summary:hover{background:#ffffff08}.sched-summary-chevron{width:14px;height:14px;color:var(--text-faint);flex-shrink:0;transition:transform .2s}.sched-row.expanded .sched-summary-chevron{color:var(--accent);transform:rotate(90deg)}.sched-summary-body{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.sched-summary-line1{font-family:var(--font-mono);color:var(--text);flex-wrap:wrap;align-items:baseline;gap:2px 8px;font-size:12px;display:flex}.sched-summary-line1 .when{color:var(--accent);white-space:nowrap}.sched-summary-line1 .sched-meta{white-space:nowrap;align-items:baseline;gap:6px;display:inline-flex}.sched-summary-line1 .mode{color:var(--text-mid)}.sched-summary-line1 .watts{color:var(--warn)}.sched-summary-line1 .charge-watts{color:var(--info)}.sched-summary-line2{font-family:var(--font-mono);color:var(--text-dim);font-size:11px}.sched-state{box-sizing:border-box;min-height:30px;font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;cursor:default;user-select:none;color:var(--info);background:#7eb8ff1f;border:none;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:3px 10px 3px 8px;font-size:12px;display:inline-flex}.sched-state:before{content:"";width:6px;height:6px;box-shadow:none;background:currentColor;border-radius:50%;flex-shrink:0}.sched-state.off{color:var(--text-dim);background:#ffffff0d;border-color:#0000}.sched-state.off:before{box-shadow:none;opacity:.7}.sched-details{border-top:1px solid var(--border-soft);flex-wrap:wrap;gap:8px;padding:12px 18px 14px;display:none}.sched-row.expanded .sched-details{display:flex}.sched-editor{background:var(--bg-2);border-radius:var(--radius-inset);border:none;flex-direction:column;gap:14px;margin-top:12px;padding:18px;display:flex;box-shadow:inset 0 0 0 1px #ffffff0d}.sched-editor-title{font-family:var(--font-sans);color:var(--text-mid);letter-spacing:.16em;text-transform:uppercase;font-size:12px;font-weight:700}#sched-start,#sched-end,#sched-watts{font-family:var(--font-mono);font-size:15px}#sched-watts::-webkit-outer-spin-button,#sched-watts::-webkit-inner-spin-button,#localapi-port::-webkit-outer-spin-button,#localapi-port::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}#sched-watts,#localapi-port{-moz-appearance:textfield;appearance:textfield}.day-picker{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.day-picker button{min-height:var(--ctl-h);box-sizing:border-box;font-family:var(--font-sans);background:var(--bg-1);color:var(--text-dim);border-radius:var(--radius);cursor:pointer;border:none;justify-content:center;align-items:center;padding:0 4px;font-size:12px;font-weight:600;transition:background .15s,color .15s;display:inline-flex}.day-picker button:hover{color:var(--text-mid)}.day-picker button.active{background:var(--bg-active);color:var(--text)}.day-presets{gap:6px;display:flex}.mode-picker{grid-template-columns:1fr 1fr 1fr;gap:6px;display:grid}.mode-picker button{min-height:var(--ctl-h);box-sizing:border-box;font-family:var(--font-sans);background:var(--bg-1);color:var(--text-dim);border-radius:var(--radius);cursor:pointer;letter-spacing:.06em;text-transform:uppercase;border:none;justify-content:center;align-items:center;padding:0 8px;font-size:11px;font-weight:600;transition:background .15s,color .15s;display:inline-flex}.mode-picker button:hover{color:var(--text-mid)}.mode-picker button.active{background:var(--bg-active);color:var(--text);border-color:#0000}.mode-picker button[data-mode=charge].active{color:var(--info);background:#7eb8ff24;border-color:#0000}.mode-picker button[data-mode=discharge].active{color:var(--warn);background:#fbbf2424;border-color:#0000}.editor-active-row{align-items:center;gap:8px;display:flex}.dod-control{background:0 0;border:none;border-radius:0;flex-direction:column;gap:12px;padding:0;display:flex}.dod-labels{font-family:var(--font-mono);justify-content:space-between;align-items:flex-end;display:flex}.dod-label-l,.dod-label-r{flex-direction:column;gap:10px;display:flex}.dod-label-r{align-items:flex-end}.dod-label-name{font-family:var(--font-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);font-size:11px;font-weight:600}.dod-label-l .dod-label-val{color:var(--warn);font-variant-numeric:tabular-nums;font-size:15px;font-weight:400;line-height:1}.dod-label-r .dod-label-val{color:var(--info);font-variant-numeric:tabular-nums;font-size:15px;font-weight:400;line-height:1}.dod-slider-wrap{height:28px;position:relative}.dod-track{background:var(--bg-1);border:none;border-radius:3px;height:6px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.dod-fill-discharged,.dod-fill-reserve{transition:width .15s ease-out,left .15s ease-out;position:absolute;top:0;bottom:0}.dod-fill-discharged{background:var(--warn);border-radius:3px 0 0 3px;width:88%;left:0}.dod-fill-reserve{background:var(--info);border-radius:0 3px 3px 0;left:88%;right:0}.dod-handle{background:var(--accent);width:16px;height:16px;box-shadow:0 0 8px var(--accent-glow);pointer-events:none;z-index:2;border-radius:50%;transition:left .15s ease-out;position:absolute;top:50%;left:88%;transform:translate(-50%,-50%)}.dod-slider-wrap input[type=range]{-webkit-appearance:none;appearance:none;cursor:pointer;z-index:3;opacity:0;background:0 0;width:100%;height:100%;margin:0;padding:0;position:absolute;inset:0}.dod-slider-wrap input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;cursor:pointer;background:0 0;width:28px;height:28px}.dod-slider-wrap input[type=range]::-moz-range-thumb{cursor:pointer;background:0 0;border:none;width:28px;height:28px}.log{background:var(--bg-2);border-radius:var(--radius-lg);border:1px solid #ffffff0f;margin-top:24px;position:relative}.log summary{cursor:pointer;font-family:var(--font-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--text-mid);user-select:none;justify-content:space-between;align-items:center;padding:15px 20px;font-size:12px;font-weight:600;list-style:none;display:flex}.log summary::-webkit-details-marker{display:none}.log summary:after{content:"▾";color:var(--text-faint);transition:transform .2s}.log[open] summary:after{transform:rotate(180deg)}.log-content{background:var(--bg-1);border-radius:var(--radius-inset);max-height:320px;font-family:var(--font-mono);color:var(--text-mid);margin:0 20px 20px;padding:16px 18px;font-size:11.5px;line-height:1.6;overflow-y:auto}.log-line{padding:2px 0}.log-line .ts{color:var(--text-faint);margin-right:10px}.log-line.tx{color:var(--info)}.log-line.rx{color:var(--accent)}.log-line.err{color:var(--danger)}.log-line.warn{color:var(--warn)}.log-line .frame{color:var(--text-faint)}body:not(.connected) .log{text-align:left;width:100%}.log-tools{z-index:1;position:absolute;top:11px;right:40px}@media (width<=420px){.log-copy{letter-spacing:.08em;padding:4px 8px;font-size:9.5px}.log-tools{top:8px;right:32px}}.log-copy{font-family:var(--font-sans);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:var(--bg-3);color:var(--text-mid);border:none;border-radius:7px;padding:6px 12px;font-size:11px;font-weight:600}.log-copy:hover{color:var(--text);background:var(--bg-hover)}.log-content{-webkit-user-select:text;user-select:text}.toast-stack{z-index:100;flex-direction:column;gap:8px;max-width:380px;display:flex;position:fixed;bottom:24px;right:24px}.toast{background:var(--bg-2);border-radius:var(--radius-inset);box-shadow:var(--shadow-2);color:var(--text);border:1px solid #ffffff14;padding:14px 16px;font-size:14px;animation:.25s ease-out toast-in}.toast.success{border-left:3px solid var(--accent)}.toast.error{border-left:3px solid var(--danger)}.toast.warn{border-left:3px solid var(--warn)}.toast.info{border-left:3px solid var(--info)}@keyframes toast-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.modal-backdrop{backdrop-filter:blur(4px);z-index:200;padding-bottom:var(--kb,0px);background:#08090db8;justify-content:center;align-items:safe center;display:none;position:fixed;inset:0;overflow-y:auto}.modal-backdrop.show{display:flex}.modal{background:var(--bg-2);width:90%;max-width:440px;box-shadow:var(--shadow-2);border:1px solid #ffffff14;border-radius:14px;padding:24px}.modal-title{margin:0 0 10px;font-size:18px}.modal-body{color:var(--text-mid);margin-bottom:18px;font-size:14px;line-height:1.55}.modal-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.modal-actions .btn{flex:0 auto}.liability-modal{max-width:560px}.liability-body{max-height:min(60vh,460px);padding-right:4px;overflow-y:auto}.liability-list{margin:0;padding-left:24px}.liability-list li{margin:0 0 12px;padding-left:4px}.liability-list li::marker{color:var(--accent);font-weight:600}.liability-check{cursor:pointer;border-top:1px solid var(--border-soft);color:var(--text);align-items:flex-start;gap:10px;margin-top:6px;padding-top:14px;font-size:14px;line-height:1.5;display:flex}.liability-check input{cursor:pointer;flex:none;width:16px;height:16px;margin-top:2px}.beta-testers-bar{flex-direction:column;align-items:center;gap:8px;margin:8px 0 16px;display:flex}.beta-testers-note{margin-top:0}.beta-testers-note h4{color:var(--text-mid);margin:0 0 10px;font-size:14px}.beta-testers-note ul{margin:0;padding-left:20px}.beta-testers-note li{margin:0 0 10px;line-height:1.55}.beta-testers-note li:last-child{margin-bottom:0}.beta-testers-note p{margin:0 0 10px;line-height:1.55}.beta-testers-close{width:fit-content;margin:14px auto 0;display:flex}.hidden{display:none!important}.mono{font-family:var(--font-mono)}.dim{color:var(--text-dim)}.spinner{border:2px solid;border-bottom-color:#0000;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}body.locked .btn:not(.unlocked):not(.ghost),body.locked .switch:not(.unlocked),body.locked .segmented button,body.locked .day-picker button,body.locked .mode-picker button,body.locked input[type=range]{opacity:.45;pointer-events:none;cursor:wait}body.locked .input,body.locked select{pointer-events:none;opacity:.7}body.locked .btn.ghost.unlocked{opacity:1;pointer-events:auto}body.locked .modal .btn{opacity:1;pointer-events:auto;cursor:pointer}body.locked .modal .btn:disabled{opacity:.45;pointer-events:none;cursor:not-allowed}body.locked .modal .input{opacity:1;pointer-events:auto}.busy-indicator{z-index:150;box-shadow:var(--shadow-2);backdrop-filter:blur(8px);background:#171a1ff0;border:1px solid #ffffff14;border-radius:999px;align-items:center;gap:10px;padding:8px 18px 8px 14px;display:none;position:fixed;top:22px;left:50%;transform:translate(-50%)}.fw-warn-label{color:var(--text);margin:16px 0 6px;font-size:14px;font-weight:600;display:block}.fw-warn-select{width:100%;font-family:var(--font-mono)}.fw-warn-select option{font-family:var(--font-mono)}.fw-warn-report{box-shadow:var(--ring-accent);border-radius:var(--radius-inset);color:var(--text-mid);background:#5eead40f;border:none;margin-top:16px;padding:14px 16px;font-size:14px;line-height:1.55}.fw-warn-report strong,.fw-warn-risk{color:var(--text)}.modal-actions.fw-actions{flex-wrap:nowrap}.fw-continue{white-space:normal}body.locked .busy-indicator{display:inline-flex}.busy-indicator .spinner{color:var(--accent);width:12px;height:12px}.busy-indicator span.label{font-family:var(--font-mono);color:var(--text-mid);letter-spacing:.12em;text-transform:uppercase;font-size:11px}.input-wrap{display:block;position:relative}.input-wrap .input{padding-right:38px}.eye-btn{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:4px;place-items:center;padding:6px 8px;transition:color .15s;display:grid;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.eye-btn:hover{color:var(--text)}.eye-btn svg{width:16px;height:16px}input[type=range]{-webkit-appearance:none;background:0 0;width:100%;margin:0}input[type=range]::-webkit-slider-runnable-track{background:var(--bg-1);border:none;border-radius:3px;height:6px}input[type=range]::-moz-range-track{background:var(--bg-1);border:none;border-radius:3px;height:6px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);cursor:pointer;width:16px;height:16px;box-shadow:0 0 8px var(--accent-glow);border-radius:50%;margin-top:-5px}input[type=range]::-moz-range-thumb{background:var(--accent);cursor:pointer;border:none;border-radius:50%;width:16px;height:16px}.name-modal{max-width:480px}.name-modal .modal-body{text-align:center;flex-direction:column;gap:14px;display:flex}.name-modal-type{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);background:#5eead41f;border:none;border-radius:999px;align-self:center;padding:5px 12px;font-size:11px}.name-modal-image-wrap{border-radius:var(--radius-inset);background:var(--bg-1);border:none;place-items:center;min-height:120px;padding:12px;display:grid}.name-modal-image-wrap img{object-fit:contain;max-width:100%;max-height:160px}.name-modal-image-wrap svg.device-thumb-fallback{width:84px;height:84px;color:var(--text-faint)}.name-modal-lead{color:var(--text-mid);margin:0;font-size:13.5px;line-height:1.55}.name-modal .input{text-align:center;font-size:14px;font-family:var(--font-sans);padding:12px 14px}.name-modal-identify-row{border-radius:var(--radius-inset);background:var(--bg-inset);text-align:left;border:none;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.name-modal-identify-row[hidden]{display:none}.name-modal-identify-label{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.name-modal-identify-title{font-size:14px;font-family:var(--font-sans);color:var(--text-mid);line-height:1.4}.name-modal-identify-row .btn{white-space:nowrap;flex:none}.countdown-modal{border-color:#fbbf244d;max-width:520px}.countdown-modal .countdown-title{color:var(--warn);align-items:center;gap:10px;display:flex}.countdown-modal .countdown-title svg{width:22px;height:22px;color:var(--warn);flex-shrink:0}.countdown-modal .modal-body strong{color:var(--warn)}.countdown-tick{font-family:var(--font-mono);color:var(--danger);font-variant-numeric:tabular-nums;margin-left:6px;font-weight:600}.countdown-modal #countdown-confirm:not(:disabled) .countdown-tick{display:none}.countdown-modal #countdown-back{color:var(--accent);background:#5eead433;border-color:#0000;font-weight:700}.countdown-modal #countdown-back:hover{background:#5eead447}.countdown-modal .modal-actions{justify-content:center;gap:12px}.ups-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.ups-row .input-wrap-suffix{flex:none;width:120px;min-width:0}.ups-row .btn{flex:none}.ups-slider-row{align-items:center;gap:12px;display:flex}.ups-slider-row input[type=range]{cursor:pointer;flex:auto;min-width:0}.ups-slider-row input[type=range]::-webkit-slider-thumb{background:var(--accent);box-shadow:0 0 8px #5eead438}.ups-slider-row input[type=range]::-moz-range-thumb{background:var(--accent)}.ups-watts-value{text-align:right;min-width:70px;font-family:var(--font-mono);color:var(--accent);flex:none;font-size:15px}.ups-watts-value .unit{color:inherit;margin-left:3px;font-size:11px}.switch.ups-locked{opacity:.5;pointer-events:none;cursor:not-allowed}.input-wrap-suffix{display:block;position:relative}.input-wrap-suffix .input{padding-right:38px}.input-suffix{font-family:var(--font-mono);letter-spacing:.08em;color:var(--text-dim);pointer-events:none;font-size:12px;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.meter-status-banner{background:var(--bg-inset);border-radius:var(--radius-inset);border:none;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.meter-status-banner.online{box-shadow:var(--ring-accent)}.meter-status-banner.offline{box-shadow:inset 0 0 0 1px #ff6b6b59}.meter-status-banner.reconnecting{box-shadow:inset 0 0 0 1px #fbbf2459}.meter-status-info{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.status-chip{box-sizing:border-box;min-height:22px;color:var(--info);font-family:var(--font-sans);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;cursor:default;user-select:none;background:#7eb8ff1f;border:none;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-flex}.status-chip .status-chip-dot{width:6px;height:6px;box-shadow:none;background:currentColor;border-radius:50%;flex-shrink:0}.status-chip .status-chip-text{line-height:1}.meter-status-banner.offline .status-chip{border-color:var(--danger-dim);color:var(--danger);background:#ff6b6b14}.meter-status-banner.reconnecting .status-chip{border-color:var(--warn-dim);color:var(--warn);background:#fbbf2414}.meter-status-banner.reconnecting .status-chip .status-chip-dot{animation:1.2s ease-in-out infinite pulse}.meter-status-banner.probing{box-shadow:inset 0 0 0 1px #fbbf2459}.meter-status-banner.phasefail{box-shadow:inset 0 0 0 1px #ff6b6b59}.meter-status-banner.probing .status-chip{color:var(--warn);background:#fbbf2414}.meter-status-banner.probing .status-chip .status-chip-dot{animation:1.2s ease-in-out infinite pulse}.meter-status-banner.phasefail .status-chip{color:var(--danger);background:#ff6b6b14}.meter-status-banner.phasefail .status-chip .status-chip-dot{animation:1.2s ease-in-out infinite pulse}.status-chip.warn{border-color:var(--warn-dim);color:var(--warn);background:#fbbf2414}.status-chip.warn .status-chip-dot{animation:1.2s ease-in-out infinite pulse}.status-chip.muted{color:var(--text-dim);background:#ffffff0d;border-color:#0000}.status-chip.muted .status-chip-dot{box-shadow:none;opacity:.7}.meter-status-name{font-family:var(--font-sans);color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}.meter-status-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}#btn-forget-meter{border-color:var(--border-soft);color:var(--text-faint)}#btn-forget-meter:hover{color:var(--danger);border-color:var(--danger-dim)}.meter-status-banner #meter-status-pill{cursor:pointer;min-height:30px}.meter-status-banner:has(#meter-status-pill:hover) #btn-forget-meter{color:var(--danger);border-color:var(--danger-dim)}.meter-pick-list{background:var(--border-soft);border-radius:var(--radius-inset);flex-direction:column;gap:1px;margin-top:8px;display:flex;overflow:hidden}.meter-pick-list:empty{background:0 0}.meter-pick-item{background:var(--bg-inset);cursor:pointer;border:none;border-radius:0;align-items:center;gap:12px;padding:14px 18px;transition:background .15s,box-shadow .15s;display:flex}.meter-pick-item:hover{background:#20242b}.meter-pick-item.bound{box-shadow:var(--ring-accent);background:var(--bg-inset)}.meter-pick-btn{flex-shrink:0}.meter-pick-list.probing .meter-pick-item{opacity:.5;pointer-events:none}.sub-section>.meter-pick-item{background:0 0;border-radius:0;padding:0}.sub-section>.meter-pick-item:hover{background:0 0}.sub-section>.hint{margin-top:0}.meter-pick-item.meter-fixed-row:has(>.btn:disabled){cursor:default}.meter-pick-item.meter-fixed-row:has(>.btn:disabled):hover{background:var(--bg-inset)}.meter-pick-item.meter-fixed-row:hover>.btn.primary:not(:disabled){background:#5eead438}.paired-name-row{align-items:center;gap:8px;min-width:0;display:flex}.meter-name{min-width:var(--meter-name-col,auto);white-space:nowrap}.meter-detect-chip{box-sizing:border-box;min-height:22px;color:var(--info);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;cursor:default;user-select:none;background:#7eb8ff1f;border:none;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;display:inline-flex}.meter-detect-chip .meter-detect-text{line-height:1}.meter-detect-chip .meter-detect-dot{width:6px;height:6px;box-shadow:none;background:currentColor;border-radius:50%;flex-shrink:0}.meter-detect-chip.ok{color:var(--info);background:#7eb8ff1a;border-color:#7eb8ff59}.meter-detect-chip.checking{border-color:var(--warn-dim);color:var(--warn);background:#fbbf2414}.meter-detect-chip.checking .meter-detect-dot{animation:1.2s ease-in-out infinite pulse}.meter-detect-chip:empty,.meter-detect-chip .meter-detect-text:empty,#meter-source-card .meter-detect-chip{display:none}.sub-section-header{font-family:var(--font-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);border-top:none;align-items:center;gap:8px;margin-top:6px;padding-top:6px;font-size:11px;font-weight:600;display:flex}.sub-section-header:before{display:none}.sub-section-header.accent:before{background:var(--accent)}.sub-section-header.info:before{background:var(--info)}.sub-section-header.warn:before{background:var(--warn)}#active-meter-header{border-top:none;margin-top:0;padding-top:0}.meter-empty-note{border-radius:var(--radius-inset);color:var(--text-dim);background:#7eb8ff0f;border:none;align-items:flex-start;gap:12px;padding:14px 16px;font-size:12px;line-height:1.55;display:flex;box-shadow:inset 0 0 0 1px #7eb8ff40}.meter-empty-note svg{width:16px;height:16px;color:var(--info);flex-shrink:0;margin-top:1px}.meter-empty-note strong{color:var(--text-mid);font-weight:600}.meter-empty-note em{color:var(--text-mid);font-style:normal}.hw-reach-pill{display:none}.hw-section-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:4px;display:flex}.hw-section-title{align-items:center;gap:8px;min-width:0;display:flex}.hw-section-header>.btn{flex-shrink:0}.probing-banner{border-radius:var(--radius-inset);background:#fbbf240f;border:none;align-items:center;gap:14px;padding:16px 18px;display:flex;box-shadow:inset 0 0 0 1px #fbbf2440}.probing-banner .probing-spinner{border:2px solid var(--warn);border-bottom-color:#0000;border-radius:50%;flex-shrink:0;width:20px;height:20px;animation:.9s linear infinite spin}.probing-banner .probing-text{flex:1;min-width:0}.probing-banner .probing-title{font-family:var(--font-sans);letter-spacing:.1em;text-transform:uppercase;color:var(--text-mid);margin-bottom:4px;font-size:11.5px;font-weight:600}.probing-banner .probing-detail{color:var(--text-mid);font-size:13.5px;line-height:1.5}.probing-banner .probing-countdown{font-family:var(--font-mono);color:var(--warn);font-variant-numeric:tabular-nums;text-align:right;flex-shrink:0;min-width:52px;font-size:22px;font-weight:600}.probing-banner.phase-error-banner{background:#ff6b6b0f;align-items:flex-start;box-shadow:inset 0 0 0 1px #ff6b6b47}.phase-error-banner .phase-error-icon{width:20px;height:20px;color:var(--danger);flex-shrink:0;margin-top:1px}.phase-error-banner .probing-title{color:var(--danger)}.probing-banner.meter-help-banner{align-items:flex-start}.meter-help-banner .meter-help-icon{width:20px;height:20px;color:var(--warn);flex-shrink:0;margin-top:1px}.meter-help-banner .probing-title{color:var(--warn)}.meter-setup-modal{border-color:#5eead44d;max-width:520px}.meter-setup-modal .meter-setup-title{color:var(--accent)}.meter-setup-modal .modal-body{flex-direction:column;gap:14px;display:flex}.meter-setup-status-row{background:var(--bg-inset);box-shadow:var(--ring-accent);border-radius:var(--radius-inset);border:none;align-items:center;gap:12px;padding:14px 16px;display:flex}.meter-setup-spinner{border:2px solid var(--accent);border-bottom-color:#0000;border-radius:50%;flex-shrink:0;width:18px;height:18px;animation:.9s linear infinite spin}.meter-setup-status-text{font-family:var(--font-mono);color:var(--text);letter-spacing:.04em;font-size:12px}.meter-setup-progress-wrap{flex-direction:column;gap:6px;display:flex}.meter-setup-progress-track{background:var(--bg-1);border:none;border-radius:3px;height:6px;overflow:hidden}.meter-setup-progress-fill{background:linear-gradient(90deg, var(--accent), var(--info));width:0%;height:100%;transition:width .4s ease-out}.meter-setup-progress-label{font-family:var(--font-mono);color:var(--text-dim);letter-spacing:.1em;text-transform:uppercase;text-align:right;font-size:10px}.meter-setup-lead{color:var(--text-mid);margin:0;font-size:12px;line-height:1.55}.meter-setup-note{color:var(--text-mid);border:none;border-left:3px solid var(--info);border-radius:var(--radius-inset);background:#7eb8ff0f;padding:14px 16px;font-size:12px;line-height:1.55}.meter-setup-note strong{color:var(--info)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#ffffff2e}::-webkit-scrollbar-corner,::-webkit-resizer{background:0 0}.compat-cta{margin:8px 0 2px}.compat-note .compat-cta,.compat-cta-center{text-align:center}.compat-wizard-modal .compat-wizard-launch{text-transform:uppercase;letter-spacing:.08em}.compat-wizard-launch{border-radius:var(--radius);color:var(--accent);font:600 14px var(--font-sans);cursor:pointer;background:#5eead424;border:none;padding:10px 18px;transition:background .15s;display:inline-block}.compat-wizard-launch:hover{background:#5eead438}.compat-wizard-modal{width:92%;max-width:460px;padding:0;overflow:hidden}.cw-head{padding:16px 18px 0;position:relative}.cw-steplabel{font:600 10.5px var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);min-height:12px}.cw-x{width:26px;height:26px;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:6px;font-size:14px;line-height:1;position:absolute;top:12px;right:12px}.cw-x:hover{background:var(--bg-3);color:var(--text)}.cw-title{color:var(--text);margin:6px 18px 0;font-size:17px}.cw-body{color:var(--text-mid);padding:10px 18px 4px;font-size:14px;line-height:1.55}.cw-body p{margin:6px 0}.cw-body:last-child{padding-bottom:18px}.cw-footer{flex-wrap:wrap;justify-content:center;gap:8px;padding:14px 18px 18px;display:flex}.cw-checklist{margin:8px 0 2px;padding-left:18px}.cw-checklist li{margin:5px 0}.cw-steps{margin:10px 0 2px;padding-left:20px}.cw-steps li{margin:5px 0}.compat-wizard-modal .compat-flag{background:var(--bg-3);border:1px solid var(--border-soft);border-radius:var(--radius);margin:10px 0;padding:10px 12px}.compat-wizard-modal .compat-flag-head{flex-direction:column;gap:2px;margin-bottom:6px;display:flex}.compat-wizard-modal .compat-flag-head strong{color:var(--text);font-size:13.5px}.compat-wizard-modal .compat-flag-why{color:var(--text-faint);font-size:13px}.compat-wizard-modal .compat-flag-url{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.compat-wizard-modal .compat-flag-url code{background:var(--bg-0);border:1px solid var(--border-soft);color:var(--text-mid);word-break:break-all;user-select:all;border-radius:4px;flex:auto;padding:6px 8px;font-size:13px}.compat-wizard-modal .compat-copy-btn{background:var(--bg-2);border:1px solid var(--border-strong);color:var(--text-mid);font:500 13px var(--font-sans);cursor:pointer;border-radius:4px;flex:none;padding:6px 12px;transition:all .12s}.compat-wizard-modal .compat-copy-btn:hover{background:var(--bg-hover);border-color:var(--accent-dim);color:var(--text)}.compat-wizard-modal .compat-copy-btn.copied{background:var(--accent-dim);border-color:var(--accent);color:var(--text);box-shadow:0 0 8px var(--accent-glow)}.cw-mock{background:var(--bg-0);border:1px solid var(--border-soft);border-radius:var(--radius);align-items:center;gap:10px;margin:12px 0 4px;padding:10px 12px;display:flex}.cw-mock-flag{flex:auto;min-width:0}.cw-mock-flag-title{color:var(--text-mid);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.cw-mock-flag-url{font:11px var(--font-mono);color:var(--text-faint);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.cw-mock-select{border:1.5px solid var(--accent);color:var(--accent);font:600 12px var(--font-sans);background:#5eead41a;border-radius:5px;flex:none;align-items:center;gap:6px;padding:5px 10px;animation:1.8s ease-in-out infinite cw-pulse;display:inline-flex}.cw-mock-caption{color:var(--text-faint);margin-top:4px;font-size:13px}@keyframes cw-pulse{0%,to{box-shadow:0 0 #5eead400}50%{box-shadow:0 0 0 4px #5eead41f}}.cw-relaunch-tip{border-radius:var(--radius);color:var(--text-mid);background:#7eb8ff14;border:1px solid #7eb8ff40;margin-top:10px;padding:9px 11px;font-size:13.5px}.cw-checking{color:var(--text-mid);align-items:center;gap:10px;padding:14px 2px;display:flex}.cw-success{text-align:center;padding:8px 2px 4px}.cw-check{background:var(--accent);width:52px;height:52px;color:var(--bg-0);box-shadow:none;border-radius:50%;justify-content:center;align-items:center;margin:0 auto 10px;font-size:28px;font-weight:700;animation:.4s cw-pop;display:flex}@keyframes cw-pop{0%{opacity:0;transform:scale(.5)}70%{transform:scale(1.08)}to{opacity:1;transform:scale(1)}}.cw-fail{padding:4px 0}@media (width<=720px){.header-inner{padding-left:14px;padding-right:14px}main{padding-left:2px;padding-right:2px}}@media (pointer:coarse){:root{--ctl-h:44px;--ctl-h-sm:38px}.switch{width:52px;height:30px}.switch:after{width:24px;height:24px}.switch[data-on=true]:after{transform:translate(24px)}.dod-slider-wrap{height:36px}.dod-handle{width:20px;height:20px}.dod-slider-wrap input[type=range]::-webkit-slider-thumb{width:36px;height:36px}.dod-slider-wrap input[type=range]::-moz-range-thumb{width:36px;height:36px}input[type=range]::-webkit-slider-thumb{width:20px;height:20px;margin-top:-7px}input[type=range]::-moz-range-thumb{width:20px;height:20px}.paired-forget,.paired-rename,.paired-stop{width:40px;height:40px}.eye-btn{padding:10px}.segmented.full-width{flex-wrap:wrap}.segmented.full-width button{flex:120px}}@media (width<=720px){main{padding-left:10px;padding-right:10px}.card-header{min-height:calc(var(--ctl-h-sm) + 27px);padding:13px 15px}.card-body,.status-card .card-body{padding:14px}.status-card .card-body{gap:0}.sub-section,.status-grid>.stat{padding:14px 15px}.status-row-2>.stat{padding:12px 14px}.paired-item,.meter-pick-item,.chooser-opt{padding:14px 15px}.meter-status-banner,.sched-summary{padding:13px 15px}.welcome{padding:16px 4px 32px}.welcome-title{font-size:30px}#btn-disconnect{width:34px;min-width:34px}}.status-card{margin-bottom:2px}.peak-shave-head{justify-content:space-between;align-items:center;gap:14px;display:flex}.peak-shave-title{align-items:center;min-width:0;display:flex}.peak-shave-watts{border-top:1px solid var(--border-soft);flex-direction:column;gap:12px;padding-top:14px;display:flex}#mode-power-card .peak-shave-watts>.label{margin-bottom:0}.peak-shave-watts .hint{margin-top:0}#peak-shave-section.ps-busy .peak-shave-watts{opacity:.55;pointer-events:none}.switch:focus-visible{outline:2px solid var(--accent);outline-offset:3px}