:root{--bg:#0f1117;--surface:#1a1d27;--surface-hover:#1f2333;--border:#2a2d3a;--text:#e2e8f0;--text-muted:#64748b;--color-volts:#22d3ee;--color-amps:#60a5fa;--color-watts:#f59e0b;--color-energy:#34d399;--color-frequency:#a78bfa;--color-pf:#fb7185}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.app{flex-direction:column;min-height:100vh;display:flex}.header{background:var(--surface);border-bottom:1px solid var(--border);z-index:10;justify-content:space-between;align-items:center;height:60px;padding:0 24px;display:flex;position:sticky;top:0}.header-left{align-items:baseline;gap:12px;display:flex}.header-title{letter-spacing:.04em;color:var(--color-watts);font-size:18px;font-weight:700}.header-subtitle{color:var(--text-muted);font-size:13px}.header-right{align-items:center;gap:12px;display:flex}.main{flex-direction:column;gap:24px;width:100%;max-width:1400px;margin:0 auto;padding:24px;display:flex}.last-updated{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:11px}.status-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.status-dot.live{background:var(--color-energy);box-shadow:0 0 6px var(--color-energy);animation:2s infinite pulse}.status-dot.error{background:var(--color-pf)}.status-dot.loading{background:var(--text-muted)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.metric-grid-wrapper{flex-direction:column;gap:8px;display:flex}.data-age{font-variant-numeric:tabular-nums;font-size:11px}.data-age.fresh{color:var(--text-muted)}.data-age.stale{color:var(--color-pf)}.metric-grid{grid-template-columns:repeat(6,1fr);gap:16px;display:grid}@media (width<=1024px){.metric-grid{grid-template-columns:repeat(3,1fr)}}@media (width<=600px){.metric-grid{grid-template-columns:repeat(2,1fr)}}.metric-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:6px;padding:20px 16px 16px;display:flex}.metric-value{font-variant-numeric:tabular-nums;font-size:28px;font-weight:700;line-height:1}.metric-unit{opacity:.7;margin-left:4px;font-size:13px;font-weight:400}.metric-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:12px}.chart-container{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:16px;padding:20px;display:flex}.chart-controls{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.chart-select{background:var(--bg);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:6px;outline:none;padding:6px 10px;font-size:13px}.chart-select:hover{border-color:var(--text-muted)}.range-buttons{gap:4px;margin-left:auto;display:flex}.range-btn{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:6px;padding:5px 12px;font-size:12px;font-weight:600;transition:all .15s}.range-btn:hover{border-color:var(--text-muted);color:var(--text)}.range-btn.active{background:var(--color-watts);border-color:var(--color-watts);color:#000}.chart-empty{height:320px;color:var(--text-muted);justify-content:center;align-items:center;font-size:14px;display:flex}.chart-tooltip{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px 14px;font-size:13px}.chart-tooltip-time{color:var(--text-muted);margin-bottom:4px}.chart-tooltip-value{font-variant-numeric:tabular-nums;font-size:16px;font-weight:700}
