:root{--bg-color:#0d1117;--panel-bg:#161b22b3;--panel-border:#ffffff14;--primary:#58a6ff;--secondary:#2ea043;--text-main:#e6edf3;--text-muted:#7d8590;--accent:#bc8cff;--danger:#f85149;--warning:#d29922;--font-family:"Inter", system-ui, -apple-system, sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--bg-color);color:var(--text-main);background-image:radial-gradient(circle at 15%,#58a6ff0a,#0000 25%),radial-gradient(circle at 85% 30%,#bc8cff0a,#0000 25%);min-height:100vh;padding:2rem}.glass-panel{background:var(--panel-bg);-webkit-backdrop-filter:blur(12px);border:1px solid var(--panel-border);border-radius:16px;padding:1.5rem;transition:transform .2s,box-shadow .2s;box-shadow:0 8px 32px #0000004d}.glass-panel:hover{transform:translateY(-2px);box-shadow:0 12px 40px #0006}.title{background:linear-gradient(90deg, var(--primary), var(--accent));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:1.5rem;font-size:2rem;font-weight:700}button.primary{background:linear-gradient(135deg, var(--primary), #3178c6);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.75rem 1.5rem;font-weight:600;transition:opacity .2s}button.primary:hover{opacity:.9}.input-field{border:1px solid var(--panel-border);color:var(--text-main);background:#0003;border-radius:8px;outline:none;width:100%;padding:.75rem 1rem;font-family:inherit;transition:border-color .2s}.input-field:focus{border-color:var(--primary)}.grid{gap:1.5rem;display:grid}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}@media (width<=1024px){.grid-cols-4{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(1,1fr)}}@media (width<=768px){.grid-cols-2,.grid-cols-4{grid-template-columns:1fr}}.metric-card{flex-direction:column;gap:.5rem;display:flex}.metric-card .label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.875rem;font-weight:500}.metric-card .value{color:var(--text-main);font-size:2.25rem;font-weight:700}.loader{height:50vh;color:var(--primary);justify-content:center;align-items:center;font-size:1.5rem;animation:1.5s infinite pulse;display:flex}@keyframes pulse{0%{opacity:.6}50%{opacity:1}to{opacity:.6}}.chart-container{width:100%;height:300px}
