:root{
  --bg:#0f1115; --panel:#171a21; --card:#1c2029; --line:#2a2f3a;
  --text:#e7e9ee; --muted:#9aa3b2; --brand:#5b8cff; --brand2:#3f6fe0;
  --ok:#37c98a; --err:#ff6b6b; --warn:#f5b74e;
}
*{box-sizing:border-box}
body{margin:0;font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:var(--bg);color:var(--text)}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}
code{background:#0c0e12;padding:2px 6px;border-radius:6px;font-size:13px}
.muted{color:var(--muted)}
.ok{color:var(--ok)} .err{color:var(--err)} .warn{color:var(--warn)}

/* Top bar */
.topbar{display:flex;align-items:center;gap:20px;padding:12px 22px;background:var(--panel);
  border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.topbar .brand{font-weight:700;letter-spacing:.2px}
.topbar nav{display:flex;gap:6px;flex:1}
.topbar nav a{padding:7px 12px;border-radius:8px;color:var(--muted)}
.topbar nav a:hover{background:#222734;text-decoration:none;color:var(--text)}
.topbar nav a.on{background:#222734;color:#fff}
.topbar .who{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:14px}

.wrap{max-width:820px;margin:26px auto;padding:0 18px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px 24px;margin-bottom:20px}
.card h2{margin:0 0 6px} .card h3{margin:18px 0 8px}
.card.help ol{margin:6px 0 0 18px} .card.help li{margin:4px 0}

/* Forms */
label{display:block;margin:14px 0}
.field span{display:block;margin-bottom:6px;font-weight:600}
input,select{width:100%;padding:11px 12px;border-radius:10px;border:1px solid var(--line);
  background:#0f131a;color:var(--text);font-size:15px}
input[type=file]{padding:9px}
input:focus,select:focus{outline:none;border-color:var(--brand)}
.stack input,.stack select{max-width:520px}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.row input,.row select{width:auto;flex:0 0 auto;min-width:160px}
small{display:block;margin-top:5px}

button,.btn{background:var(--brand);color:#fff;border:0;padding:11px 18px;border-radius:10px;
  font-size:15px;font-weight:600;cursor:pointer;display:inline-block}
button:hover,.btn:hover{background:var(--brand2);text-decoration:none}
button:disabled{opacity:.5;cursor:not-allowed}
.btn-ghost{background:transparent;border:1px solid var(--line);color:var(--text);padding:8px 12px;
  border-radius:9px;font-weight:600;cursor:pointer;font-size:14px}
.btn-ghost:hover{background:#222734;text-decoration:none}
.btn-danger{background:transparent;border:1px solid #4a2530;color:var(--err);padding:8px 12px;
  border-radius:9px;font-weight:600;cursor:pointer}
.btn-danger:hover{background:#2a1720}

/* Tables */
.tbl{width:100%;border-collapse:collapse;margin-top:8px}
.tbl th,.tbl td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.tbl th{color:var(--muted);font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.4px}
.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.actions form{margin:0}
details.inline{display:inline-block}
details.inline summary{list-style:none;display:inline-block}
details.inline[open] .row{margin-top:8px}

.loglist{list-style:none;padding:0;margin:8px 0}
.loglist li{padding:6px 10px;border-radius:8px;margin:4px 0;background:#0f131a;font-size:14px}
.loglist li.ok{border-left:3px solid var(--ok)}
.loglist li.err{border-left:3px solid var(--err)}
.loglist li.warn{border-left:3px solid var(--warn)}

.flash{padding:12px 14px;border-radius:10px;margin-bottom:16px;border:1px solid var(--line);background:var(--panel)}
.flash.error{border-color:#4a2530;color:#ffb3b3}
.flash.info{border-color:#26405a;color:#bcd8ff}

.foot{max-width:820px;margin:20px auto 40px;padding:0 18px;color:var(--muted);font-size:13px}

/* Auth screens */
.auth-body{display:flex;min-height:100vh;align-items:center;justify-content:center}
.auth-card{width:100%;max-width:380px}
.auth-card h1{margin:0 0 4px;font-size:22px}
