@charset "UTF-8";:root{color-scheme:light;--bg: #eef1f4;--nav: #f7f9fa;--surface: #ffffff;--surface-2: #f5f7f9;--surface-3: #ebeff3;--border: #dce2e8;--border-strong: #c9d1da;--track: #e3e8ed;--text: #0e141a;--text-2: #2e3944;--muted: #56626e;--solar: #f5a300;--solar-text: #8a5800;--solar-soft: #fff5db;--battery: #16a374;--battery-text: #0f7a55;--battery-soft: #e2f6ee;--grid: #2f7cf0;--grid-text: #1f62c9;--grid-soft: #e5effe;--car: #a665f0;--car-text: #7a3fc4;--car-soft: #f2e9fd;--heat: #f2662b;--heat-text: #b3480f;--heat-soft: #fff0e8;--house: #56626e;--alert: #b42318;--alert-fill: #d92d20;--alert-soft: #fdecea;--warn: #855000;--warn-soft: #fff5db;--ok: #0f7a55;--ok-soft: #e2f6ee;--on-accent: #0e141a;--on-alert: #ffffff;--focus: #1f62c9;--ink-line: #8794a1;--ink-fill: #f5f7f9;--panel: #2b3a4f;--panel-line: #50627a;--glass: #dbe7f1;--radius-card: 14px;--radius-inner: 10px;--radius-chip: 8px;--radius-btn: 10px;--tap: 44px;--shadow: 0 1px 2px rgb(14 20 26 / 5%);--font: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--ease: cubic-bezier(.2, .7, .2, 1)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg: #0a0d11;--nav: #0d1116;--surface: #11161c;--surface-2: #161c24;--surface-3: #1c232d;--border: #1f2731;--border-strong: #2b3542;--track: #232c37;--text: #e6edf3;--text-2: #c3cdd7;--muted: #8e9ba8;--solar: #ffb020;--solar-text: #ffc14d;--solar-soft: rgb(255 176 32 / 12%);--battery: #22c38e;--battery-text: #3dd6a1;--battery-soft: rgb(34 195 142 / 14%);--grid: #4d9bff;--grid-text: #7ab4ff;--grid-soft: rgb(77 155 255 / 14%);--car: #c084fc;--car-text: #cfa0fd;--car-soft: rgb(192 132 252 / 14%);--heat: #ff7a45;--heat-text: #ff9a70;--heat-soft: rgb(255 122 69 / 12%);--house: #c9d4de;--alert: #ff8a8a;--alert-fill: #ff6b6b;--alert-soft: rgb(255 107 107 / 14%);--warn: #ffd066;--warn-soft: rgb(255 201 77 / 12%);--ok: #3dd6a1;--ok-soft: rgb(34 195 142 / 14%);--on-accent: #0a0d11;--on-alert: #1a0606;--focus: #7ab4ff;--ink-line: #5d6b79;--ink-fill: #161c24;--panel: #1b2635;--panel-line: #33445a;--glass: #1a2532;--shadow: none}}:root[data-theme=dark]{color-scheme:dark;--bg: #0a0d11;--nav: #0d1116;--surface: #11161c;--surface-2: #161c24;--surface-3: #1c232d;--border: #1f2731;--border-strong: #2b3542;--track: #232c37;--text: #e6edf3;--text-2: #c3cdd7;--muted: #8e9ba8;--solar: #ffb020;--solar-text: #ffc14d;--solar-soft: rgb(255 176 32 / 12%);--battery: #22c38e;--battery-text: #3dd6a1;--battery-soft: rgb(34 195 142 / 14%);--grid: #4d9bff;--grid-text: #7ab4ff;--grid-soft: rgb(77 155 255 / 14%);--car: #c084fc;--car-text: #cfa0fd;--car-soft: rgb(192 132 252 / 14%);--heat: #ff7a45;--heat-text: #ff9a70;--heat-soft: rgb(255 122 69 / 12%);--house: #c9d4de;--alert: #ff8a8a;--alert-fill: #ff6b6b;--alert-soft: rgb(255 107 107 / 14%);--warn: #ffd066;--warn-soft: rgb(255 201 77 / 12%);--ok: #3dd6a1;--ok-soft: rgb(34 195 142 / 14%);--on-accent: #0a0d11;--on-alert: #1a0606;--focus: #7ab4ff;--ink-line: #5d6b79;--ink-fill: #161c24;--panel: #1b2635;--panel-line: #33445a;--glass: #1a2532;--shadow: none}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}body{font-variant-numeric:tabular-nums}h1,h2,h3{margin:0;letter-spacing:-.01em}a{color:inherit;text-decoration:none}button,input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.eyebrow{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:16px 18px;box-shadow:var(--shadow);min-width:0}.card-inner{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-inner);padding:12px 14px}.card-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;min-height:44px}.card-title{font-weight:600;font-size:14px;display:flex;align-items:baseline;gap:8px}.card-title .meta{font-family:var(--mono);font-weight:400;font-size:11px;color:var(--muted)}@media(max-width:1023px){.card-title .meta{display:none}}.card-link{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:13px;min-height:var(--tap);padding:0 8px;margin-right:-8px;border-radius:8px}.card-link:hover{color:var(--text);background:var(--surface-2)}.accent-top{position:relative;overflow:hidden}.accent-top:before{content:"";position:absolute;inset:0 0 auto;height:2px;background:var(--accent, var(--border-strong))}.muted{color:var(--muted)}.label{font-size:12px;font-weight:600;display:flex;align-items:center;gap:6px}.value-xl,.value-lg,.value-md{font-family:var(--mono);font-weight:500;letter-spacing:-.03em;line-height:1.1}.value-xl{font-size:30px}.value-lg{font-size:24px}.value-md{font-size:20px}.unit{font-family:var(--mono);font-size:13px;color:var(--muted);font-weight:400;letter-spacing:0;margin-left:4px}.c-solar{color:var(--solar-text)}.c-battery{color:var(--battery-text)}.c-grid{color:var(--grid-text)}.c-car{color:var(--car-text)}.c-heat{color:var(--heat-text)}.c-alert{color:var(--alert)}.c-warn{color:var(--warn)}.bar{height:6px;background:var(--track);border-radius:3px;overflow:hidden}.bar>span{display:block;height:100%;border-radius:inherit;transition:width .6s var(--ease)}.chip{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 12px;border-radius:var(--radius-chip);font-size:13px;font-weight:500;background:var(--surface-2);color:var(--text-2);border:1px solid var(--border)}.chip--alert{background:var(--alert-soft);color:var(--alert);border-color:transparent}.chip--warn{background:var(--warn-soft);color:var(--warn);border-color:transparent}.chip--ok{background:var(--ok-soft);color:var(--ok);border-color:transparent}.tag{font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.06em;border:1px solid currentColor;border-radius:4px;padding:0 4px;line-height:16px}.dot{width:8px;height:8px;border-radius:50%;background:currentColor;flex:none}.sample-badge{font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--warn);background:var(--warn-soft);border-radius:4px;padding:1px 6px;white-space:nowrap}.btn{min-height:var(--tap);padding:0 16px;border-radius:var(--radius-btn);border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);font-weight:500;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:background-color .15s,border-color .15s}.btn:hover:not(:disabled){border-color:var(--muted);background:var(--surface-3)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--text);color:var(--bg);border-color:transparent}.btn--primary:hover:not(:disabled){background:var(--text-2)}.btn--car{background:var(--car);color:#160f24;border-color:transparent}.btn--danger{color:var(--alert)}.btn--ghost{background:transparent;border-color:transparent}.icon-btn{width:var(--tap);height:var(--tap);border-radius:var(--radius-btn);border:none;background:transparent;display:inline-grid;place-items:center;cursor:pointer;color:inherit}.icon-btn:hover{background:var(--surface-2)}.tabs{display:grid;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:2px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-btn);padding:3px}.tabs button{min-height:40px;border:none;border-radius:7px;background:transparent;color:var(--muted);font-weight:500;cursor:pointer}.tabs button:hover{color:var(--text)}.tabs button[aria-selected=true],.tabs button[aria-checked=true]{background:var(--surface-3);color:var(--text);box-shadow:inset 0 0 0 1px var(--border-strong)}.tabs--sm{display:inline-grid;padding:2px}.tabs--sm button{min-height:32px;padding:0 10px;font-size:12px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:13px;font-weight:500;color:var(--text-2)}.input{min-height:var(--tap);padding:0 12px;border-radius:var(--radius-btn);border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);width:100%}.input:hover{border-color:var(--muted)}.input:focus{outline:2px solid var(--focus);outline-offset:0;border-color:transparent}.form-error{background:var(--alert-soft);color:var(--alert);border-radius:var(--radius-chip);padding:10px 12px;font-size:13px}.page{display:flex;flex-direction:column;gap:12px}.page-title{font-size:22px;font-weight:600}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.empty{padding:24px;text-align:center;color:var(--muted)}.spinner{display:inline-block;flex:none;width:16px;height:16px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .8s linear infinite;vertical-align:middle}@keyframes spin{to{transform:rotate(360deg)}}.btn.is-busy{pointer-events:none;opacity:.8}.skeleton{display:inline-block;min-width:3ch;height:.9em;border-radius:4px;background:linear-gradient(90deg,var(--track) 0 40%,var(--surface-3) 50%,var(--track) 60% 100%);background-size:300% 100%;animation:skeleton 1.4s linear infinite;vertical-align:middle}@keyframes skeleton{0%{background-position:100% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
