:root { color-scheme: light dark; --fg:#1c2230; --mut:#6b7688; --line:#e2e6ee;
  --bg:#f7f8fb; --card:#fff; --accent:#1a56db; --good:#1a9d54; --warn:#c07a00; --bad:#c23; }
@media (prefers-color-scheme: dark) {
  :root { --fg:#e7ebf2; --mut:#98a2b3; --line:#2b3140; --bg:#0f1218; --card:#171b24; --accent:#5b8dff; }
}
* { box-sizing: border-box; }
body { margin:0; font:15px/1.5 -apple-system,Segoe UI,Roboto,sans-serif; color:var(--fg); background:var(--bg); }
a { color:var(--accent); text-decoration:none; }
a:hover { text-decoration:underline; }
header { border-bottom:1px solid var(--line); background:var(--card); }
nav { display:flex; align-items:center; gap:18px; max-width:1000px; margin:0 auto; padding:12px 20px; }
nav .brand { font-weight:700; color:var(--fg); }
nav .spacer { flex:1; }
nav .who { color:var(--mut); }
main { max-width:1000px; margin:0 auto; padding:24px 20px; }
h1 { font-size:22px; margin:0 0 16px; }
h2 { font-size:16px; margin:0 0 10px; }
.hint { color:var(--mut); }
.flash { background:#e7f0ff; color:#1a3a7a; border:1px solid #cfe0ff; padding:8px 12px; border-radius:8px; margin-bottom:16px; }
.flash.error { background:#fdeaea; color:#8a1f1f; border-color:#f6c9c9; }
.cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:12px; margin-bottom:20px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:16px; }
.card .n { font-size:28px; font-weight:700; }
.card .l { color:var(--mut); font-size:13px; }
.panel { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:16px; margin-bottom:20px; }
table { width:100%; border-collapse:collapse; background:var(--card); border:1px solid var(--line); border-radius:12px; overflow:hidden; }
th, td { text-align:left; padding:10px 12px; border-bottom:1px solid var(--line); }
th { font-size:12px; text-transform:uppercase; letter-spacing:.04em; color:var(--mut); }
tr:last-child td { border-bottom:0; }
form.row { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
form.inline { display:flex; gap:6px; align-items:center; }
.chk { display:flex; align-items:center; gap:6px; color:var(--mut); }
input, select { font:inherit; padding:7px 10px; border:1px solid var(--line); border-radius:8px; background:var(--bg); color:var(--fg); }
button { font:inherit; padding:7px 14px; border:0; border-radius:8px; background:var(--accent); color:#fff; cursor:pointer; }
button.ghost { background:transparent; color:var(--accent); border:1px solid var(--accent); }
.head-row { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.rescan { display:flex; gap:8px; flex-wrap:wrap; }
.scan { display:none; margin:0 0 14px; padding:9px 13px; border-radius:8px; background:var(--card); border:1px solid var(--line); color:var(--fg); font-size:13px; }
.pill { font-size:12px; padding:3px 9px; border-radius:999px; background:var(--line); }
.pill.s-open { background:#e8ecf3; color:#5a6577; }
.pill.s-assigned, .pill.s-in_progress { background:#fff3d6; color:var(--warn); }
.pill.s-submitted { background:#dcefe2; color:var(--good); }
.pill.s-in_review { background:#e6ecff; color:var(--accent); }
.pill.s-accepted { background:#dcefe2; color:var(--good); }
.pill.s-rejected { background:#fdeaea; color:var(--bad); }
.pill.s-done { background:#e8ecf3; color:#5a6577; }
.btn { display:inline-block; padding:6px 14px; border-radius:8px; background:var(--accent); color:#fff; font-weight:600; font-size:13px; }
.btn:hover { text-decoration:none; opacity:.92; }
.btn.ghost { background:transparent; color:var(--accent); border:1px solid var(--accent); }
.mbar { display:inline-block; vertical-align:middle; width:120px; height:8px; background:var(--line); border-radius:5px; overflow:hidden; }
.mfill { height:100%; background:var(--good); }
.mtxt { margin-left:8px; color:var(--mut); font-size:12px; vertical-align:middle; }
.login { max-width:320px; margin:8vh auto; }
.login form { display:flex; flex-direction:column; gap:12px; margin-top:16px; }
.login label { display:flex; flex-direction:column; gap:4px; font-size:13px; color:var(--mut); }
