*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0f1117;--surface: #1a1d27;--border: #2a2d3a;--text: #e4e4e7;--text-muted: #71717a;--accent: #6366f1;--accent-hover: #818cf8;--green: #22c55e;--red: #ef4444;--orange: #f59e0b}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);padding:1rem 2rem}header h1{font-size:1.25rem;font-weight:600}header h1 a{color:var(--text)}.logout-btn{background:none;border:1px solid var(--border);color:var(--text-muted);padding:.35rem .75rem;border-radius:6px;cursor:pointer;font-size:.85rem}.logout-btn:hover{color:var(--text);border-color:var(--text-muted)}main{max-width:1200px;margin:0 auto;padding:2rem}h2{font-size:1.5rem;margin-bottom:1rem}h3{font-size:1.1rem;margin-bottom:.75rem}.breadcrumb{margin-bottom:1.5rem;color:var(--text-muted);font-size:.875rem}.breadcrumb a{color:var(--text-muted)}.breadcrumb a:hover{color:var(--text)}.breadcrumb span{margin:0 .5rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.card{display:block;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1.25rem;transition:border-color .15s;color:var(--text)}.card:hover{border-color:var(--accent);color:var(--text)}.card h3{font-size:1rem;margin-bottom:.25rem}.card p{font-size:.875rem;color:var(--text-muted)}.period-toggle{display:flex;gap:.5rem;margin-bottom:2rem}.period-btn{padding:.375rem 1rem;border-radius:6px;font-size:.875rem;cursor:pointer;background:var(--surface);border:1px solid var(--border);color:var(--text-muted)}.period-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.badge{font-size:.75rem;padding:.125rem .5rem;border-radius:999px;background:var(--surface);border:1px solid var(--border);color:var(--text-muted);vertical-align:middle;font-weight:400}section{margin-bottom:3rem}.summary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;margin-bottom:1.5rem}.summary-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1rem 1.25rem}.summary-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem}.summary-value{font-size:1.5rem;font-weight:700}.charts-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-bottom:1.5rem}@media(max-width:768px){.charts-grid{grid-template-columns:1fr}}.chart-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1rem 1.25rem}.chart-card h4{font-size:.875rem;color:var(--text-muted);margin-bottom:.75rem;font-weight:500}.chart-wrap{position:relative;height:200px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}@media(max-width:640px){.two-col{grid-template-columns:1fr}}.muted{color:var(--text-muted);font-size:.875rem}.loading{display:flex;justify-content:center;align-items:center;height:50vh;font-size:1.125rem;color:var(--text-muted)}.error{display:flex;justify-content:center;align-items:center;height:50vh;font-size:1.125rem;color:var(--red);text-align:center;padding:2rem}.login-wrap{display:flex;justify-content:center;align-items:center;height:100vh}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:2rem;width:100%;max-width:360px}.login-card h1{font-size:1.25rem;margin-bottom:1.5rem}.login-card label{display:block;font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem}.login-card input{display:block;width:100%;padding:.5rem .75rem;margin-bottom:1rem;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:.875rem}.login-card input:focus{outline:none;border-color:var(--accent)}.login-card button{width:100%;padding:.5rem;background:var(--accent);color:#fff;border:none;border-radius:6px;font-size:.875rem;cursor:pointer}.login-card button:hover{background:var(--accent-hover)}.login-error{color:var(--red);font-size:.875rem;margin-bottom:1rem}
