*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0f1117;--surface: #1a1d27;--border: #2a2d3a;--text: #e2e8f0;--text-muted: #8892a4;--accent: #6c63ff;--accent-hover: #5a52d5;--danger: #e05252;--success: #4caf7d;--radius: 8px;--font: system-ui, -apple-system, sans-serif}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.layout{display:flex;min-height:100vh}.sidebar{width:220px;background:var(--surface);border-right:1px solid var(--border);padding:24px 16px;display:flex;flex-direction:column;gap:8px;flex-shrink:0}.sidebar h2{font-size:16px;color:var(--text);margin-bottom:16px}.sidebar a{display:block;padding:8px 12px;border-radius:var(--radius);color:var(--text-muted);font-size:14px;min-height:44px;line-height:28px}.sidebar a:hover,.sidebar a.active{background:var(--border);color:var(--text);text-decoration:none}.main-content{flex:1;padding:24px;overflow-x:auto}.sidebar-footer{margin-top:auto}.sidebar-footer .user-info{font-size:12px;color:var(--text-muted);margin-bottom:8px}.filter-bar{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin-bottom:24px}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;margin-bottom:24px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.card-label{font-size:12px;color:var(--text-muted);margin-bottom:6px}.card-value{font-size:24px;font-weight:600;color:var(--text)}.chart-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:24px}.section-title{font-size:14px;font-weight:600;margin-bottom:16px;color:var(--text)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border);font-size:13px}th{color:var(--text-muted);font-weight:500}td{color:var(--text)}tr:last-child td{border-bottom:none}.cohort-wrap{overflow-x:auto;margin-bottom:24px}.cohort-table{border-collapse:collapse}.cohort-table th,.cohort-table td{padding:8px 10px;border:1px solid var(--border);font-size:12px;white-space:nowrap}.cohort-table th{background:var(--surface);color:var(--text-muted)}.cohort-cell{text-align:center}.form-group{display:flex;flex-direction:column;gap:4px}.form-group label{font-size:12px;color:var(--text-muted)}input,select{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:8px 12px;font-size:14px;min-height:44px;width:100%;outline:none}input:focus,select:focus{border-color:var(--accent)}button,.btn{background:var(--accent);color:#fff;border:none;border-radius:var(--radius);padding:8px 18px;font-size:14px;cursor:pointer;min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center;gap:6px}button:hover,.btn:hover{background:var(--accent-hover)}button:focus-visible,.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-ghost{background:transparent;border:1px solid var(--border);color:var(--text)}.btn-ghost:hover{background:var(--border)}.btn-danger{background:var(--danger)}.btn-danger:hover{background:#c04040}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.login-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:32px;width:100%;max-width:360px;display:flex;flex-direction:column;gap:16px}.login-box h1{font-size:20px;text-align:center}.alert{padding:10px 14px;border-radius:var(--radius);font-size:13px}.alert-error{background:#e0525226;color:var(--danger);border:1px solid rgba(224,82,82,.3)}.alert-info{background:#6c63ff26;color:#a8a0ff;border:1px solid rgba(108,99,255,.3)}.loading{color:var(--text-muted);padding:24px;text-align:center}.empty{color:var(--text-muted);padding:24px;text-align:center;font-style:italic}.presets{display:flex;gap:8px;flex-wrap:wrap}.preset-btn{background:var(--surface);border:1px solid var(--border);color:var(--text-muted);border-radius:var(--radius);padding:6px 12px;font-size:12px;cursor:pointer;min-height:36px}.preset-btn:hover,.preset-btn.active{border-color:var(--accent);color:var(--text);background:#6c63ff1a}.preset-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.admin-section{margin-bottom:32px}.admin-section h2{font-size:16px;margin-bottom:16px}.user-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 0;border-bottom:1px solid var(--border)}.user-email{flex:1;min-width:160px}.user-role{color:var(--text-muted);font-size:12px}.store-checkboxes{display:flex;gap:8px;flex-wrap:wrap}.store-checkbox-label{display:flex;align-items:center;gap:4px;font-size:13px;cursor:pointer}.store-checkbox-label input[type=checkbox]{width:16px;height:16px;min-height:unset;cursor:pointer;accent-color:var(--accent)}@media (max-width: 767px){.layout{flex-direction:column}.sidebar{width:100%;flex-direction:row;flex-wrap:wrap;padding:12px}.sidebar h2{width:100%;margin-bottom:8px}.sidebar-footer{margin-top:0}.main-content{padding:16px}.cards-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 480px){.cards-grid{grid-template-columns:1fr}}
