:root{
  --bg:#0f1221; --panel:#171a2b; --panel2:#1e2236; --line:#2a2f49;
  --txt:#e7e9f3; --muted:#9aa0bd; --accent:#5b8cff; --ok:#2fbf71; --warn:#f0a72f; --ko:#e6533f;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--txt);font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.muted{color:var(--muted)}
.small{font-size:13px}
.error{color:var(--ko);font-weight:600}

/* Login */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:28px}
.login-wrap .card{width:360px;max-width:100%}
.card h1{margin:0 0 14px;font-size:20px}
label{display:block;margin:14px 0 6px;font-size:13px;color:var(--muted)}
input{width:100%;padding:11px 12px;background:var(--panel2);border:1px solid var(--line);border-radius:9px;color:var(--txt);font-size:15px}
input:disabled{opacity:.6}
button{margin-top:18px;width:100%;padding:11px;background:var(--accent);color:#fff;border:0;border-radius:9px;font-size:15px;font-weight:600;cursor:pointer}
button:hover{filter:brightness(1.08)}

/* Topbar */
.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;background:var(--panel);border-bottom:1px solid var(--line)}
.brand{font-size:16px}
.topbar nav a{margin-left:18px;color:var(--muted)}
.topbar nav a.logout{color:var(--ko)}

/* Layout */
.wrap{max-width:1100px;margin:0 auto;padding:26px 24px 60px}
.listhead{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.listactions{display:flex;align-items:center;gap:12px}
.listactions button{margin-top:0;width:auto;padding:8px 16px}
button:disabled{opacity:.55;cursor:default}
h1{font-size:22px;margin:6px 0 18px}
h2{font-size:17px;margin:30px 0 10px}
.count{display:inline-block;margin-left:6px;padding:1px 9px;border-radius:20px;background:var(--panel2);color:var(--muted);font-size:13px;vertical-align:middle}
.back{color:var(--muted)}

/* Table */
.grid{width:100%;border-collapse:collapse;background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.grid th,.grid td{padding:11px 14px;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle}
.grid th{font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);background:var(--panel2)}
.grid tr:last-child td{border-bottom:0}
.grid a.site{font-weight:600}
.client{display:block;font-size:12px;color:var(--muted)}

/* Dots & badges */
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px;vertical-align:middle}
.dot.ok{background:var(--ok)} .dot.ko{background:var(--ko)} .dot.na{background:var(--muted)}
.badge{display:inline-block;padding:2px 9px;border-radius:20px;background:var(--panel2);color:var(--muted);font-size:12px;font-weight:600}
.badge.ok{background:rgba(47,191,113,.15);color:var(--ok)}
.badge.warn{background:rgba(240,167,47,.15);color:var(--warn)}

/* Buttons */
.btn{display:inline-block;padding:6px 12px;border-radius:8px;background:var(--panel2);border:1px solid var(--line);color:var(--txt);font-size:13px}
.btn:hover{text-decoration:none;border-color:var(--accent)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.actions{margin:6px 0 20px}
.btn.small{padding:4px 9px;font-size:12px}
.btn.danger{border-color:rgba(230,83,63,.5);color:var(--ko)}
.btn.danger:hover{background:rgba(230,83,63,.12);border-color:var(--ko)}
form.inline{display:inline-block;margin:0 4px 4px 0}
form.inline button{margin-top:0;width:auto}
.rowacts{white-space:nowrap}
.siteactions{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 20px}
.siteactions form.inline{margin:0}
.flash{padding:11px 14px;border-radius:9px;margin:0 0 18px;font-weight:600}
.flash.ok{background:rgba(47,191,113,.15);color:var(--ok);border:1px solid rgba(47,191,113,.4)}
.flash.error{background:rgba(230,83,63,.15);color:var(--ko);border:1px solid rgba(230,83,63,.4)}

/* Cards */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:16px 0}
.card.stat{padding:16px 18px}
.card.stat h3{margin:0 0 10px;font-size:13px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}
.card.stat dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 12px}
.card.stat dt{color:var(--muted);font-size:13px}
.card.stat dd{margin:0;text-align:right;font-weight:600;word-break:break-all}
