:root{
  --bg:#0a0f1d;--panel:#121a2e;--panel2:#0f1727;--ln:#223049;--fg:#e9eef9;--mut:#93a1bf;
  --acc:#4f8cff;--ok:#22c55e;--warn:#eab308;--bad:#ef4444;--chip:#1b2740;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.5 -apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}
.hidden{display:none!important}
.err{color:var(--bad);font-size:13px}

/* login */
.login{min-height:100vh;display:grid;place-items:center;padding:20px}
.loginCard{background:var(--panel);border:1px solid var(--ln);border-radius:18px;padding:28px 22px;width:100%;max-width:360px;display:flex;flex-direction:column;gap:12px}
.loginCard h1{margin:0 0 8px;text-align:center;font-size:24px}.loginCard h1 span{color:var(--acc)}
.loginCard input{background:var(--panel2);border:1px solid var(--ln);color:var(--fg);padding:13px;border-radius:11px;font-size:16px}
.loginCard button{background:var(--acc);border:0;color:#fff;padding:13px;border-radius:11px;font-weight:700;font-size:16px}

/* app shell */
.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:rgba(10,15,29,.9);backdrop-filter:blur(8px);border-bottom:1px solid var(--ln)}
.brand{font-size:17px}.brand b{color:var(--acc)}
.chip{margin-left:8px;background:var(--chip);color:var(--mut);font-size:12px;padding:3px 9px;border-radius:20px}
.ghost{background:transparent;border:1px solid var(--ln);color:var(--mut);padding:7px 12px;border-radius:9px;font-size:13px}
.banner{margin:12px 16px;padding:11px 13px;border-radius:11px;background:#2a1d12;border:1px solid #6b4a1f;color:#f3c98a;font-size:13px}
main{padding:14px 16px 96px;max-width:860px;margin:0 auto}

/* tabs */
.tabs{position:fixed;bottom:0;left:0;right:0;display:flex;background:var(--panel2);border-top:1px solid var(--ln);padding-bottom:env(safe-area-inset-bottom)}
.tabs button{flex:1;background:transparent;border:0;color:var(--mut);padding:11px 2px;font-size:11px;position:relative}
.tabs button.active{color:var(--acc)}
.dot{position:absolute;top:6px;right:50%;transform:translateX(14px);width:8px;height:8px;border-radius:50%;background:var(--bad)}

/* cards & grid */
h2.sec{font-size:14px;color:var(--mut);text-transform:uppercase;letter-spacing:.05em;margin:18px 0 10px}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}
.stat{background:var(--panel);border:1px solid var(--ln);border-radius:15px;padding:15px}
.stat .n{font-size:30px;font-weight:800;line-height:1}.stat .l{color:var(--mut);font-size:12px;margin-top:5px}
.stat .s{font-size:12px;margin-top:6px}
.big{grid-column:1/-1;display:flex;justify-content:space-around;text-align:center}
.card{background:var(--panel);border:1px solid var(--ln);border-radius:14px;padding:13px;margin:9px 0}
.row{display:flex;justify-content:space-between;gap:10px;align-items:center}
.muted{color:var(--mut)}.small{font-size:12px}.mono{font-variant-numeric:tabular-nums}
.pill{font-size:11px;padding:2px 8px;border-radius:20px;background:var(--chip);color:var(--mut)}
.pill.sent{color:#9bd}.pill.opened{color:#6cf}.pill.clicked{color:#7ee2a4}.pill.replied{background:#13351f;color:#7ee2a4}.pill.bounced{background:#3a1717;color:#f3a}.pill.queued,.pill.new{color:var(--mut)}.pill.unsubscribed{color:#caa}
.bar{height:7px;border-radius:6px;background:#1d2640;overflow:hidden}.bar i{display:block;height:100%;background:var(--acc)}
input.search,select.search{width:100%;background:var(--panel2);border:1px solid var(--ln);color:var(--fg);padding:11px;border-radius:11px;font-size:15px;margin-bottom:6px}
table{width:100%;border-collapse:collapse;font-size:13px}
th,td{text-align:left;padding:9px 6px;border-bottom:1px solid var(--ln);vertical-align:top}
th{color:var(--mut);font-weight:600;font-size:11px;text-transform:uppercase}
a{color:var(--acc);text-decoration:none}
.cal{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}
.day{background:var(--panel);border:1px solid var(--ln);border-radius:11px;padding:9px 7px;font-size:12px;min-height:62px}
.day.now{border-color:var(--acc)}.day.done{opacity:.55}
.day b{font-size:15px}
.gaugebar{height:8px;border-radius:6px;background:#1d2640;overflow:hidden;margin-top:5px}
.health{display:inline-block;width:9px;height:9px;border-radius:50%}
.warming{background:var(--warn)}.active{background:var(--ok)}.paused{background:var(--bad)}
@media(min-width:620px){.grid{grid-template-columns:repeat(4,1fr)}}
