:root { --bg:#f6f7f9; --card:#fff; --ink:#1b2430; --mute:#6b7685; --line:#e3e7ec; --brand:#0b6bcb; --good:#0a7d3b; --goodbg:#e6f5ec; --bad:#b42318; --badbg:#fdecea; }
@media (prefers-color-scheme: dark) { :root { --bg:#0f141a; --card:#171e27; --ink:#e8edf3; --mute:#8b97a6; --line:#2a3441; --brand:#4da3ff; --good:#4fd18b; --goodbg:#12301f; --bad:#ff8a80; --badbg:#3a1d1a; } }
* { box-sizing:border-box; }
[hidden] { display:none !important; }
body { margin:0; font:14px/1.45 system-ui,-apple-system,Segoe UI,sans-serif; background:var(--bg); color:var(--ink); }
header.bar { display:flex; gap:12px; align-items:center; padding:12px 16px; border-bottom:1px solid var(--line); background:var(--card); }
header.bar h1 { margin:0; font-size:17px; flex:1; }
header.bar a, header.bar button.link { color:var(--brand); text-decoration:none; font-size:13px; background:none; border:0; padding:0; cursor:pointer; font:inherit; font-size:13px; }
main.narrow { max-width:760px; margin:0 auto; padding:16px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:10px; padding:14px; margin-bottom:12px; }
.card h2 { margin:0 0 4px; font-size:15px; display:flex; gap:8px; align-items:center; }
label { display:flex; flex-direction:column; font-size:12px; color:var(--mute); gap:4px; }
input, select { font:inherit; padding:8px 10px; border:1px solid var(--line); border-radius:8px; background:var(--bg); color:var(--ink); min-width:0; width:100%; }
.row { display:flex; flex-wrap:wrap; gap:10px; margin:10px 0; }
.row > label { flex:1 1 200px; }
button.btn { font:inherit; padding:8px 14px; border:0; border-radius:8px; background:var(--brand); color:#fff; cursor:pointer; }
button.btn.ghost { background:transparent; color:var(--brand); border:1px solid var(--line); }
button.btn.danger { background:transparent; color:var(--bad); border:1px solid var(--line); }
button:disabled { opacity:.6; cursor:wait; }
.badge { font-size:11px; padding:2px 8px; border-radius:999px; border:1px solid var(--line); color:var(--mute); font-weight:400; }
.badge.ok { color:var(--good); border-color:var(--good); background:var(--goodbg); }
.msg { margin-top:8px; font-size:13px; padding:7px 10px; border-radius:8px; }
.msg.ok { color:var(--good); background:var(--goodbg); }
.msg.err { color:var(--bad); background:var(--badbg); }
.help { color:var(--mute); font-size:12px; margin:2px 0 0; }
table.t { width:100%; border-collapse:collapse; }
table.t th, table.t td { text-align:left; padding:8px; border-bottom:1px solid var(--line); font-size:13px; }
table.t th { color:var(--mute); font-size:11px; text-transform:uppercase; letter-spacing:.03em; }

/* iOS zooms the page when a field is smaller than 16px; make everything finger-sized on touch screens */
@media (pointer: coarse), (max-width: 700px) {
  input, select, textarea { font-size:16px; min-height:44px; }
  select, input:not([type=checkbox]):not([type=radio]) { height:44px; }
  button, button.btn { font-size:16px; min-height:44px; }
  input[type=checkbox] { min-height:0; width:22px; height:22px; }
  header.bar a, header.bar button.link { font-size:15px; padding:8px 0; }
  .row > label { flex-basis:100%; }
}
