:root{
  --bg:#0b0b14;
  --surface:#13131f;
  --surface2:#1a1a2a;
  --border:#2a2a40;
  --accent:#4f46e5;
  --accent-2:#0d9488;
  --text:#ececf5;
  --muted:#8b8ba8;
  --ok:#34d399;
  --err:#f87171;
  --font:'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0}
body{
  font-family:var(--font);background:var(--bg);color:var(--text);
  min-height:100vh;
}

/* ---------- Auth (login / setup) ---------- */
.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.auth-card{
  width:100%;max-width:380px;background:var(--surface);border:1px solid var(--border);
  border-radius:16px;padding:32px;
}
.auth-logo{font-weight:800;font-size:1.2rem;margin-bottom:6px}
.auth-logo span{color:var(--accent-2)}
.auth-sub{color:var(--muted);font-size:.9rem;margin-bottom:20px}
.auth-msg{margin-bottom:16px}
.auth-msg-ok{color:var(--ok)}
.auth-error{color:var(--err);font-size:.88rem;margin-bottom:14px}
.auth-card form{display:flex;flex-direction:column;gap:4px}
.auth-card label{font-size:.8rem;color:var(--muted);margin-top:10px}
.auth-card input{
  background:var(--surface2);border:1px solid var(--border);border-radius:8px;
  color:var(--text);padding:10px 12px;font-family:var(--font);font-size:.95rem;
}
.btn{
  margin-top:18px;background:var(--accent);color:#fff;border:none;border-radius:8px;
  padding:11px 16px;font-weight:600;font-size:.95rem;cursor:pointer;text-decoration:none;
  text-align:center;display:inline-block;
}
.btn:hover{background:#4338ca}

/* ---------- Dashboard ---------- */
.topbar{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 28px;border-bottom:1px solid var(--border);background:var(--surface);
}
.topbar-logo{font-weight:800}
.topbar-logo span{color:var(--accent-2)}
.topbar-actions{display:flex;align-items:center;gap:14px}
.topbar-user{color:var(--muted);font-size:.85rem}
.btn-sm{
  background:var(--accent);color:#fff;border-radius:7px;padding:7px 14px;
  font-size:.85rem;font-weight:600;text-decoration:none;
}
.btn-sm.btn-ghost{background:transparent;border:1px solid var(--border);color:var(--muted)}

.wrap{max-width:1100px;margin:0 auto;padding:28px}

.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:18px}
.summary-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:18px}
.summary-card.summary-warn{border-color:var(--err)}
.summary-value{font-size:1.6rem;font-weight:800}
.summary-label{color:var(--muted);font-size:.82rem;margin-top:4px}

.note{color:var(--muted);font-size:.82rem;margin-bottom:18px;line-height:1.6}
.note a{color:var(--accent-2)}

.empty-state{color:var(--muted);padding:40px;text-align:center;border:1px dashed var(--border);border-radius:12px}

.client-table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden}
.client-table th{
  text-align:left;font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;
  padding:12px 16px;border-bottom:1px solid var(--border);
}
.client-table td{padding:14px 16px;border-bottom:1px solid var(--border);font-size:.9rem;vertical-align:top}
.client-table tr:last-child td{border-bottom:none}
.client-table a{color:var(--accent-2);text-decoration:none}
.client-table a:hover{text-decoration:underline}

.pill{
  background:var(--surface2);border:1px solid var(--border);border-radius:999px;
  padding:3px 10px;font-size:.78rem;
}
.muted{color:var(--muted);font-size:.82rem}
.status{font-weight:600;font-size:.85rem;display:inline-block;margin-right:6px}
.status-ok{color:var(--ok)}
.status-ko{color:var(--err)}
