:root{
  --bg:#0f172a; --surface:#ffffff; --muted:#64748b; --text:#0f172a;
  --primary:#1e3a8a; --primary-fg:#fff; --accent:#f59e0b;
  --success:#16a34a; --danger:#dc2626; --border:#e2e8f0;
  --c1:#2f6bd6; --c2:#e85a3a; --c3:#3aa776; --c4:#e8a23a; --c5:#8a52d6;
}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;background:#f1f5f9;color:var(--text)}
a{color:var(--primary);text-decoration:none}
.layout{display:flex;min-height:100vh}
.sidebar{width:240px;background:var(--bg);color:#cbd5e1;display:flex;flex-direction:column;padding:20px 0}
.sidebar .brand{font-size:1.25rem;font-weight:700;color:#fff;padding:0 20px 20px;border-bottom:1px solid #1e293b;margin-bottom:12px}
.sidebar nav{flex:1;display:flex;flex-direction:column;gap:2px;padding:0 8px}
.sidebar nav a{color:#cbd5e1;padding:10px 14px;border-radius:6px;font-size:.92rem}
.sidebar nav a:hover{background:#1e293b;color:#fff}
.sidebar nav a.active{background:var(--primary);color:#fff}
.sidebar .user{padding:16px 20px;border-top:1px solid #1e293b;font-size:.8rem}
.sidebar .user .email{color:#94a3b8;margin-bottom:8px;word-break:break-all}
.sidebar .logout{display:inline-block;background:#1e293b;color:#fff;padding:6px 12px;border-radius:4px}
.content{flex:1;padding:32px;max-width:1200px;width:100%;margin:0 auto}
h1{margin:0 0 4px;font-size:1.85rem}
.subtitle{color:var(--muted);margin-bottom:24px}
.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:20px;margin-bottom:20px;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.card h2{margin:0 0 16px;font-size:1.1rem}
.grid{display:grid;gap:16px}
.grid-4{grid-template-columns:repeat(4,1fr)}
.grid-2{grid-template-columns:repeat(2,1fr)}
@media(max-width:780px){.grid-4{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}.sidebar{width:100%;flex-direction:row;overflow-x:auto;padding:8px}.sidebar .brand{display:none}.sidebar nav{flex-direction:row}.sidebar .user{display:none}.layout{flex-direction:column}.content{padding:16px}}
.stat{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:18px}
.stat .label{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.stat .value{font-size:1.6rem;font-weight:700;margin-top:4px}
.stat .sub{font-size:.78rem;color:var(--muted);margin-top:4px}
.stat.success .value{color:var(--success)}
.stat.danger .value{color:var(--danger)}
form .row{display:flex;gap:12px;flex-wrap:wrap;align-items:end;margin-bottom:12px}
form label{display:flex;flex-direction:column;font-size:.85rem;flex:1;min-width:120px;gap:4px;color:#334155}
input,select,textarea{font:inherit;padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--text)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--primary);outline-offset:-1px}
button,.btn{cursor:pointer;background:var(--primary);color:#fff;border:0;padding:9px 16px;border-radius:6px;font-weight:600;font-size:.9rem;display:inline-block}
button:hover,.btn:hover{opacity:.92}
.btn-secondary{background:#475569}
.btn-danger{background:var(--danger)}
.btn-link{background:transparent;color:var(--danger);padding:4px 8px}
table{width:100%;border-collapse:collapse;font-size:.9rem}
th,td{padding:10px 8px;text-align:left;border-bottom:1px solid var(--border)}
th{font-size:.78rem;text-transform:uppercase;color:var(--muted);font-weight:600}
.empty{text-align:center;color:var(--muted);padding:32px}
.alert{padding:12px 14px;border-radius:6px;margin-bottom:16px;font-size:.9rem}
.alert-error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}
.alert-success{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}
.bars{display:flex;align-items:flex-end;gap:6px;height:200px;padding:8px 0}
.bars .day{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0}
.bars .pair{display:flex;gap:2px;align-items:flex-end;height:170px;width:100%;justify-content:center}
.bars .bar{width:10px;border-radius:3px 3px 0 0;min-height:2px}
.bars .bar.g{background:var(--c3)}
.bars .bar.d{background:var(--c2)}
.bars .lbl{font-size:.65rem;color:var(--muted);transform:rotate(-45deg);transform-origin:center;white-space:nowrap;margin-top:6px}
.legend{display:flex;gap:14px;font-size:.8rem;color:var(--muted);justify-content:center;margin-top:8px}
.legend span::before{content:"";display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:middle}
.legend .lg::before{background:var(--c3)}
.legend .ld::before{background:var(--c2)}
.platform-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border);font-size:.92rem}
.platform-row:last-child{border:0}
.platform-row .name{display:flex;align-items:center;gap:8px}
.platform-row .dot{width:10px;height:10px;border-radius:50%}
.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:linear-gradient(135deg,#1e3a8a,#0f172a)}
.login-card{background:#fff;padding:32px;border-radius:12px;width:100%;max-width:400px;box-shadow:0 20px 50px rgba(0,0,0,.3)}
.login-card h1{text-align:center;margin-bottom:6px;color:var(--primary)}
.login-card .tabs{display:flex;margin:16px 0;border-bottom:1px solid var(--border)}
.login-card .tabs a{flex:1;text-align:center;padding:10px;color:var(--muted);font-weight:600}
.login-card .tabs a.active{color:var(--primary);border-bottom:2px solid var(--primary)}
.login-card form button{width:100%;margin-top:8px;padding:11px}
.login-card label{display:block;margin-bottom:12px;font-size:.85rem}
.login-card input{width:100%;margin-top:4px}
.filters{display:flex;gap:12px;align-items:end;margin-bottom:20px;flex-wrap:wrap}
