:root{
  --bg:#0f1216; --card:#171b21; --card2:#1e242c; --line:#2a323c;
  --fg:#e6edf3; --muted:#8b98a5; --accent:#4cc38a; --accent2:#3b82f6;
  --bar:#2f6f57; --radius:12px;
  font-synthesis:none;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--bg); color:var(--fg);
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:15px; line-height:1.5;
}

/* ---- Login ---- */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.login-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:32px 28px;width:100%;max-width:340px;text-align:center}
.login-logo{font-size:28px;font-weight:700;margin-bottom:4px}
.login-sub{color:var(--muted);margin:0 0 22px;font-size:13px}
.login-card input{width:100%;padding:11px 13px;border-radius:9px;border:1px solid var(--line);background:var(--card2);color:var(--fg);font-size:15px;margin-bottom:12px}
.login-card input:focus{outline:none;border-color:var(--accent)}
.login-card button{width:100%;padding:11px;border:0;border-radius:9px;background:var(--accent);color:#04150d;font-weight:700;font-size:15px;cursor:pointer}
.login-card button:hover{filter:brightness(1.07)}
.login-err{color:#f87171;font-size:13px;margin-top:10px}

/* ---- Topbar ---- */
.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--bg);z-index:5}
.brand{font-size:19px;font-weight:700}
.topbar-right{display:flex;align-items:center;gap:10px}
.generated{color:var(--muted);font-size:12px}
.ghost{background:var(--card2);border:1px solid var(--line);color:var(--fg);border-radius:8px;width:34px;height:34px;font-size:16px;cursor:pointer}
.ghost:hover{border-color:var(--accent)}

main{max-width:1040px;margin:0 auto;padding:20px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;margin-bottom:18px}
.card h2{margin:0 0 16px;font-size:15px;font-weight:600;color:var(--fg)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:720px){.grid2{grid-template-columns:1fr}}

/* ---- Funnel ---- */
.funnel{display:flex;flex-direction:column;gap:8px}
.funnel-step{display:flex;align-items:center;gap:12px}
.funnel-bar{height:38px;border-radius:8px;background:linear-gradient(90deg,var(--accent2),var(--accent));display:flex;align-items:center;padding:0 12px;color:#06121f;font-weight:700;min-width:56px;transition:width .4s ease}
.funnel-meta{display:flex;flex-direction:column;min-width:150px}
.funnel-label{font-size:13px;color:var(--fg)}
.funnel-pct{font-size:12px;color:var(--muted)}

/* ---- Stat tiles ---- */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.tile{background:var(--card2);border:1px solid var(--line);border-radius:10px;padding:14px}
.tile-val{font-size:24px;font-weight:700}
.tile-lbl{font-size:12px;color:var(--muted);margin-top:3px}
.tile-sub{font-size:11px;color:var(--muted);margin-top:6px}

/* ---- Bars (30-day) ---- */
.bars{display:flex;align-items:flex-end;gap:3px;height:120px}
.bar{flex:1;background:var(--bar);border-radius:3px 3px 0 0;min-height:2px;position:relative}
.bar:hover{background:var(--accent)}
.bar span{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);background:#000;color:#fff;font-size:11px;padding:2px 6px;border-radius:5px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .12s;margin-bottom:4px}
.bar:hover span{opacity:1}

/* ---- Breakdown rows ---- */
.breakdown{display:flex;flex-direction:column;gap:7px}
.bd-row{display:flex;align-items:center;gap:10px;font-size:13px}
.bd-name{flex:0 0 40%;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bd-track{flex:1;height:8px;background:var(--card2);border-radius:5px;overflow:hidden}
.bd-fill{height:100%;background:var(--accent2);border-radius:5px}
.bd-count{flex:0 0 auto;color:var(--muted);min-width:38px;text-align:right}
.bd-empty{color:var(--muted);font-size:13px}

.foot{color:var(--muted);font-size:12px;text-align:center;margin:24px 0 8px}
