:root{color-scheme:light;--page: #f9f9f7;--surface: #fcfcfb;--text-primary: #0b0b0b;--text-secondary: #52514e;--text-muted: #898781;--grid: #e1e0d9;--border: rgba(11, 11, 11, .1);--seq-500: #256abf;--seq-450: #2a78d6;--seq-300: #6da7ec;--seq-150: #b7d3f6;--good: #0ca30c;--warning: #fab219;--serious: #ec835a;--critical: #d03b3b}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--page: #0d0d0d;--surface: #1a1a19;--text-primary: #ffffff;--text-secondary: #c3c2b7;--text-muted: #898781;--grid: #2c2c2a;--border: rgba(255, 255, 255, .1);--seq-500: #3987e5;--seq-450: #3987e5;--seq-300: #5598e7;--seq-150: #184f95;--good: #0ca30c;--warning: #fab219;--serious: #ec835a;--critical: #e66767}}:root[data-theme=dark]{color-scheme:dark;--page: #0d0d0d;--surface: #1a1a19;--text-primary: #ffffff;--text-secondary: #c3c2b7;--text-muted: #898781;--grid: #2c2c2a;--border: rgba(255, 255, 255, .1);--seq-500: #3987e5;--seq-450: #3987e5;--seq-300: #5598e7;--seq-150: #184f95;--critical: #e66767}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:var(--page);color:var(--text-primary)}.dashboard{max-width:1200px;margin:0 auto;padding:28px 24px 60px}.app-shell{display:flex;min-height:100vh}.sidebar{width:180px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);padding:20px 12px}.sidebar .brand{font-size:14px;font-weight:700;padding:0 10px;margin-bottom:20px;color:var(--text-primary)}.sidebar nav{display:flex;flex-direction:column;gap:4px}.sidebar nav button{all:unset;box-sizing:border-box;cursor:pointer;padding:10px 12px;border-radius:8px;font-size:13px;color:var(--text-secondary)}.sidebar nav button:hover{background:var(--page)}.sidebar nav button.active{background:var(--seq-450);color:#fff;font-weight:600}.main-content{flex:1;min-width:0}.power-hero{display:flex;align-items:baseline;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:20px 24px;margin-bottom:20px}.power-hero .num{font-size:36px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--seq-450)}.power-hero .unit{font-size:16px;color:var(--text-secondary)}.power-hero .badge-estimate{margin-left:auto;font-size:11px;color:var(--text-muted);border:1px solid var(--border);border-radius:999px;padding:3px 10px}.top-bar{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:24px;flex-wrap:wrap;gap:12px}.top-bar h1{font-size:20px;margin:0 0 4px}.top-bar .sub{color:var(--text-secondary);font-size:13px}.live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--good);margin-right:6px;box-shadow:0 0 #0ca30c80;animation:pulse 2s infinite}@keyframes pulse{0%{box-shadow:0 0 #0ca30c66}70%{box-shadow:0 0 0 8px #0ca30c00}to{box-shadow:0 0 #0ca30c00}}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:20px}.grid.wide{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:18px 20px}.card h3{margin:0 0 14px;font-size:13px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.stat-tile .value{font-size:30px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.1}.stat-tile .label{font-size:12px;color:var(--text-muted);margin-top:6px}.stat-tile .value.good{color:var(--good)}.stat-tile .value.warning{color:var(--warning)}.stat-tile .value.serious{color:var(--serious)}.stat-tile .value.critical{color:var(--critical)}.progress-row{margin-bottom:12px}.progress-row:last-child{margin-bottom:0}.progress-row .row-top{display:flex;justify-content:space-between;font-size:12px;color:var(--text-secondary);margin-bottom:6px}.progress-row .row-top .name{color:var(--text-primary);font-weight:500}.progress-track{height:8px;border-radius:999px;background:var(--grid);overflow:hidden}.progress-fill{height:100%;border-radius:999px;background:var(--seq-450)}.progress-fill.warning{background:var(--warning)}.progress-fill.serious{background:var(--serious)}.progress-fill.critical{background:var(--critical)}.status-icon{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px}.status-icon.good{color:var(--good);background:color-mix(in srgb,var(--good) 15%,transparent)}.status-icon.warning{color:var(--warning);background:color-mix(in srgb,var(--warning) 18%,transparent)}.status-icon.serious{color:var(--serious);background:color-mix(in srgb,var(--serious) 18%,transparent)}.status-icon.critical{color:var(--critical);background:color-mix(in srgb,var(--critical) 18%,transparent)}.admin-table{border-collapse:collapse;font-size:13px}.admin-table th,.admin-table td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--grid)}.admin-table th{color:var(--text-muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em}.admin-table tr:last-child td{border-bottom:none}.kv-table{width:100%;border-collapse:collapse;font-size:13px}.kv-table tr{border-bottom:1px solid var(--grid)}.kv-table tr:last-child{border-bottom:none}.kv-table td{padding:7px 0}.kv-table td:first-child{color:var(--text-muted);width:40%}.kv-table td:last-child{color:var(--text-primary);text-align:right;font-variant-numeric:tabular-nums}.chart-wrap{position:relative}.power-history-card{margin-bottom:20px}.chart-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;flex-wrap:wrap;gap:8px}.chart-range{font-size:12px;color:var(--text-muted);display:flex;align-items:center;gap:8px}.chart-zoomed-badge{font-size:11px;color:var(--seq-450);border:1px solid var(--seq-450);border-radius:999px;padding:1px 8px}.chart-zoom-buttons{display:flex;gap:6px}.chart-zoom-buttons button{min-width:32px;height:28px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text-primary);font-size:14px;cursor:pointer}.chart-zoom-buttons button:hover:not(:disabled){background:var(--page)}.chart-zoom-buttons button:disabled{opacity:.4;cursor:default}.chart-hint{margin-top:6px;font-size:11px;color:var(--text-muted);text-align:center}.chart-tooltip{position:absolute;pointer-events:none;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:6px 10px;font-size:12px;color:var(--text-primary);box-shadow:0 4px 12px #00000026;transform:translate(-50%,-110%);white-space:nowrap}.loading-state{text-align:center;padding:100px 20px;color:var(--text-muted)}.section-title{font-size:15px;font-weight:600;margin:28px 0 12px;color:var(--text-primary)}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}@media(max-width:768px){.app-shell{flex-direction:column;min-height:0}.sidebar{width:100%;flex-shrink:0;border-right:none;border-bottom:1px solid var(--border);padding:10px 12px;display:flex;align-items:center;gap:12px}.sidebar .brand{margin-bottom:0;white-space:nowrap}.sidebar nav{flex-direction:row;gap:6px;overflow-x:auto}.sidebar nav button{white-space:nowrap}.dashboard{padding:16px 12px 40px}.top-bar h1{font-size:17px}.grid{grid-template-columns:1fr 1fr;gap:10px}.grid.wide{grid-template-columns:1fr}.card{padding:14px}.power-hero{flex-wrap:wrap;padding:16px 18px}.power-hero .badge-estimate{margin-left:0}.power-hero .num{font-size:28px}.stat-tile .value{font-size:22px}.kv-table{font-size:12px}.table-scroll{overflow-x:visible}.admin-table{display:block;width:100%!important;font-size:13px}.admin-table thead{display:none}.admin-table tbody{display:block}.admin-table tr{display:block;border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:10px}.admin-table tr:last-child{margin-bottom:0}.admin-table td{display:block;padding:5px 0;border-bottom:none;max-width:none!important}.admin-table td:empty{display:none}.admin-table td:before{content:attr(data-label);display:block;font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:2px}.admin-table td[data-label="#"],.admin-table td[data-label=任务]{padding-top:0}.admin-table td[data-label="#"]:before{display:none}.admin-table td[data-label="#"]{display:inline;font-size:12px;color:var(--text-muted)}.todo-form-input{font-size:16px!important;padding:12px 14px!important}textarea.todo-form-input{min-height:64px}.todo-form-submit{width:100%;padding:13px 18px!important;font-size:15px!important}.admin-table td[data-label="时间 / 操作"] a{font-size:13px!important;display:inline-block;padding:4px 2px}}@media(max-width:420px){.grid{grid-template-columns:1fr}}
