:root{--bg: #0f0f11;--surface: #212124;--elevated: #2c2c30;--text: #f0f2f5;--text-secondary: #9197a6;--border: rgba(255, 255, 255, .1);--hairline: rgba(255, 255, 255, .25);--glass: rgba(255, 255, 255, .04);--cyan: #00d9ff;--green: #00cc88;--blue: #0066ff;--purple: #9d4edd;--red: #ff2d55;--radius-lg: 24px;--radius-md: 16px;--radius-sm: 12px;--shadow: 0 6px 24px rgba(0, 0, 0, .2);--glow: 0 0 24px rgba(0, 217, 255, .25)}*{box-sizing:border-box}html,body{margin:0;padding:0;background:radial-gradient(1200px 600px at 80% -10%,rgba(0,102,255,.1),transparent 60%),radial-gradient(1000px 500px at -10% 10%,rgba(157,78,221,.08),transparent 55%),var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.01em}.subtitle{color:var(--text-secondary);font-size:12.5px;margin:2px 0 0}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:32px;box-shadow:var(--shadow);text-align:center}.login-logo{width:64px;height:64px;object-fit:contain;margin-bottom:12px}.login-form{display:flex;flex-direction:column;gap:12px;margin-top:20px}input{background:var(--elevated);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text);padding:12px 14px;font-size:14px;outline:none;transition:border-color .15s}input:focus{border-color:var(--cyan);box-shadow:0 0 0 2px #00d9ff26}button{background:var(--cyan);color:#001318;border:none;border-radius:var(--radius-md);padding:12px 16px;font-size:14px;font-weight:600;cursor:pointer;transition:transform .1s,box-shadow .15s}button:hover{box-shadow:var(--glow)}button:active{transform:translateY(1px)}button:disabled{opacity:.6;cursor:default}.ghost-btn{background:transparent;color:var(--text-secondary);border:1px solid var(--border);margin-top:8px}.ghost-btn:hover{color:var(--text);box-shadow:none;border-color:var(--hairline)}.login-error{color:var(--red);font-size:13px;min-height:18px;margin:8px 0 0}.loading{text-align:center;color:var(--text-secondary)}.spinner{width:36px;height:36px;margin:0 auto 14px;border:3px solid var(--border);border-top-color:var(--cyan);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:14px 28px;background:#0f0f11b8;backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:12px}.brand-logo{width:30px;height:30px;object-fit:contain}.brand-name{font-weight:600;font-size:15px;letter-spacing:.02em}.topbar-right{display:flex;align-items:center;gap:16px}.gen-time{color:var(--text-secondary);font-size:12px}.content{max-width:1200px;margin:0 auto;padding:28px 28px 8px;display:flex;flex-direction:column;gap:24px}.group-divider{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--cyan);margin:14px 2px -6px;padding-bottom:8px;border-bottom:1px solid var(--border)}.group-divider:first-child{margin-top:0}.card{background:var(--glass);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px 24px;box-shadow:var(--shadow)}.card-head{margin-bottom:16px}.card-head h2{font-size:17px}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:14px}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px}.kpi-value{font-size:26px;font-weight:700;color:var(--cyan);letter-spacing:-.02em}.kpi-label{color:var(--text-secondary);font-size:12px;margin-top:4px}.funnel{display:flex;flex-direction:column;gap:10px}.funnel-row{display:grid;grid-template-columns:180px 1fr 160px;align-items:center;gap:14px}.funnel-label{color:var(--text-secondary);font-size:13px}.funnel-bar{background:var(--elevated);border-radius:999px;height:14px;overflow:hidden}.funnel-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--cyan),var(--blue));transition:width .4s ease}.funnel-val{text-align:right;font-variant-numeric:tabular-nums;font-size:13px}.table-block{display:flex;flex-direction:column;gap:10px}.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.table-filter{flex:0 1 260px;padding:8px 12px;font-size:13px;border-radius:var(--radius-md);background:var(--surface)}.table-count{color:var(--text-secondary);font-size:12px;white-space:nowrap}.table-wrap{overflow-x:auto;border-radius:var(--radius-md)}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.sortable:hover{color:var(--text)}th .caret{display:inline-block;width:12px;text-align:center;opacity:.5}th.sort-asc .caret:after{content:"▲";font-size:8px}th.sort-desc .caret:after{content:"▼";font-size:8px}th.sort-asc,th.sort-desc{color:var(--cyan)}th.sort-asc .caret,th.sort-desc .caret{opacity:1;color:var(--cyan)}table{width:100%;border-collapse:collapse;font-size:12.5px;font-variant-numeric:tabular-nums}thead th{position:sticky;top:0;text-align:left;color:var(--text-secondary);font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;padding:10px 12px;background:var(--surface);border-bottom:1px solid var(--border);white-space:nowrap}tbody td{padding:9px 12px;border-bottom:1px solid var(--border);white-space:nowrap}tbody tr:hover{background:var(--glass)}th.r,td.r{text-align:right}.empty{color:var(--text-secondary);padding:16px 12px;font-size:13px}.chip{display:inline-block;padding:2px 9px;border-radius:999px;background:#00d9ff1f;color:var(--cyan);font-size:11.5px;font-weight:600}.flags{display:flex;flex-wrap:wrap;gap:4px}.flag{display:inline-block;padding:1px 7px;border-radius:6px;background:#ff2d5524;color:#ff7a99;font-size:11px}.flag-counts{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.flag-count{display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border);font-size:12px;color:var(--text-secondary)}.flag-count-n{color:var(--text);font-weight:700}.chart-wrap{position:relative;width:100%}.chart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.chart-cell{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px}.chart-title{font-size:12.5px;color:var(--text-secondary);font-weight:600;margin-bottom:10px}.footer{max-width:1200px;margin:0 auto;padding:20px 28px 36px;color:var(--text-secondary);font-size:12px;text-align:center}@media (max-width: 720px){.funnel-row{grid-template-columns:120px 1fr}.funnel-val{grid-column:2;text-align:left}.content{padding:18px 14px 8px}.topbar{padding:12px 16px}}
