:root{--bg:#f4f5f7;--card:#fff;--text:#17191c;--text2:#4b5563;--grid:#e5e7eb;--border:#e5e7eb;--prose:#1d4ed8;--code:#047857;--accent:#1d4ed8;--on-accent:#fff}@media (prefers-color-scheme:dark){:root{--bg:#0f1115;--card:#171a1f;--text:#e7e9ec;--text2:#9ca3af;--grid:#2a2e35;--border:#2a2e35;--prose:#60a5fa;--code:#34d399;--accent:#60a5fa;--on-accent:#0f1115}}html[data-theme=dark]{--bg:#0f1115;--card:#171a1f;--text:#e7e9ec;--text2:#9ca3af;--grid:#2a2e35;--border:#2a2e35;--prose:#60a5fa;--code:#34d399;--accent:#60a5fa;--on-accent:#0f1115}html[data-theme=light]{--bg:#f4f5f7;--card:#fff;--text:#17191c;--text2:#4b5563;--grid:#e5e7eb;--border:#e5e7eb;--prose:#1d4ed8;--code:#047857;--accent:#1d4ed8;--on-accent:#fff}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.5}#app{max-width:1200px;margin:0 auto;padding:24px 20px 40px}.header{justify-content:space-between;align-items:flex-start;margin-bottom:20px;display:flex}.header h1{margin:0 0 4px;font-size:22px;font-weight:700}.header .sub{color:var(--text2);margin:0;font-size:13px}.theme-toggle{background:var(--card);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:8px;min-width:40px;min-height:40px;padding:8px 12px;font-size:14px}.filter-bar{flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}.filter-btn{background:var(--card);border:1px solid var(--border);color:var(--text2);cursor:pointer;border-radius:8px;min-height:40px;padding:8px 14px;font-size:13px;font-weight:600}.filter-btn.active{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.kpi-row{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px;display:grid}.kpi-card{background:var(--card);border:1px solid var(--border);border-radius:12px;min-height:92px;padding:16px 18px}.kpi-card .label{color:var(--text2);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.kpi-card .value{font-variant-numeric:tabular-nums;margin-top:6px;font-size:28px;font-weight:700}.kpi-card .unit{color:var(--text2);font-size:12px}.chart-card{background:var(--card);border:1px solid var(--border);border-radius:12px;margin-bottom:16px;padding:16px}.chart-card h2{margin:0 0 4px;font-size:15px;font-weight:700}.chart-card .q{color:var(--text2);margin:0 0 10px;font-size:12px}.chart-box{width:100%;height:320px}.chart-box svg{width:100%;height:100%;display:block}.chart-grid{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;display:grid}.chart-grid .chart-card{margin-bottom:0}.table-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:16px}.table-card h2{margin:0 0 10px;font-size:15px;font-weight:700}.table-wrap{height:600px;overflow-y:auto}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;border-bottom:1px solid var(--border);padding:10px 12px}th{color:var(--text2);text-transform:uppercase;letter-spacing:.03em;cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--card);font-size:12px;font-weight:600;position:sticky;top:0}td.num{text-align:right;font-variant-numeric:tabular-nums}tr:hover td{background:var(--grid)}.tooltip{z-index:10;background:var(--card);border:1px solid var(--border);color:var(--text);pointer-events:none;opacity:0;border-radius:8px;max-width:320px;padding:10px 12px;font-size:12px;display:none;position:fixed;box-shadow:0 4px 12px #00000026}.tooltip.show{opacity:1;display:block}
