:root { --bg:#0d0d0f; --panel:#17171b; --line:#2a2a31; --gold:#e6b422; --text:#f2f2f2; --muted:#9a9aa2; --err:#ff6b6b; }
* { box-sizing:border-box; }
body { margin:0; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif; background:var(--bg); color:var(--text); }
.brand { font-weight:800; letter-spacing:.5px; }
.brand span { color:var(--gold); }
.brand.sm { font-size:16px; }
.muted { color:var(--muted); }
.err { color:var(--err); min-height:1.2em; margin:8px 0 0; font-size:14px; }
.hidden { display:none; }

/* Login */
.card { max-width:380px; margin:9vh auto; background:var(--panel); border:1px solid var(--line); border-radius:16px; padding:32px 28px; }
.card h1 { font-size:26px; margin:0 0 22px; text-align:center; }
.step label { display:block; margin:0 0 14px; font-size:14px; color:var(--muted); }
.step label.row { display:flex; align-items:center; gap:8px; color:var(--text); }
.step input[type=text], .step input[type=password], .step input:not([type]) { width:100%; margin-top:6px; padding:11px 12px; border-radius:10px; border:1px solid var(--line); background:#111116; color:var(--text); font-size:15px; }
.step input[type=checkbox] { width:auto; margin:0; }
button { cursor:pointer; border:none; border-radius:10px; padding:11px 16px; font-size:15px; font-weight:700; background:var(--gold); color:#1a1400; }
button:hover { filter:brightness(1.06); }
button.ghost { background:transparent; color:var(--muted); border:1px solid var(--line); font-weight:600; padding:6px 12px; }
.step button[type=submit] { width:100%; margin-top:6px; }
.testnote { background:#241f05; border:1px solid var(--gold); color:var(--gold); padding:10px 12px; border-radius:10px; font-size:14px; margin:0 0 14px; }

/* App */
.topbar { display:flex; justify-content:space-between; align-items:center; padding:14px 22px; border-bottom:1px solid var(--line); }
.topbar .right { display:flex; align-items:center; gap:12px; font-size:14px; }
.wrap { max-width:820px; margin:26px auto; padding:0 18px; }
.panel { background:var(--panel); border:1px solid var(--line); border-radius:14px; padding:20px 22px; margin-bottom:18px; }
.panel h2 { margin:0 0 10px; font-size:19px; }
.inline { display:flex; gap:8px; flex-wrap:wrap; margin:6px 0 4px; }
.inline input, .inline select { padding:9px 11px; border-radius:9px; border:1px solid var(--line); background:#111116; color:var(--text); font-size:14px; }
.userlist { list-style:none; padding:0; margin:14px 0 0; }
.userlist li { display:flex; justify-content:space-between; align-items:center; padding:9px 0; border-top:1px solid var(--line); font-size:15px; }
