:root{
  color-scheme:light dark;
  padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
  --paper:#F6F7F5; --card:#FFFFFF; --sunk:#EEF1EE;
  --ink:#171C1A; --ink-2:#56615C; --ink-3:#88938E;
  --rule:#DCE1DD; --rule-2:#C2CAC5;
  --accent:#0F6E63; --accent-soft:#E4F0ED; --accent-ink:#FFFFFF;
  --warn:#8F5806; --warn-soft:#F8EEDC;
  --alert:#9E2E21; --alert-soft:#F9E6E3;
  --ok:#2C6637;
  --shadow:0 1px 2px rgba(23,28,26,.05),0 8px 22px rgba(23,28,26,.055);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#0E1312; --card:#161C1B; --sunk:#111716;
    --ink:#E9EEEB; --ink-2:#9AA7A1; --ink-3:#6C7A74;
    --rule:#262F2C; --rule-2:#37423E;
    --accent:#55C4B1; --accent-soft:#11302B; --accent-ink:#06211C;
    --warn:#D69B44; --warn-soft:#2E2414;
    --alert:#E0806E; --alert-soft:#33201C;
    --ok:#74C284;
    --shadow:0 1px 2px rgba(0,0,0,.45),0 8px 24px rgba(0,0,0,.34);
  }
}
:root[data-theme="dark"]{
  --paper:#0E1312; --card:#161C1B; --sunk:#111716;
  --ink:#E9EEEB; --ink-2:#9AA7A1; --ink-3:#6C7A74;
  --rule:#262F2C; --rule-2:#37423E;
  --accent:#55C4B1; --accent-soft:#11302B; --accent-ink:#06211C;
  --warn:#D69B44; --warn-soft:#2E2414;
  --alert:#E0806E; --alert-soft:#33201C;
  --ok:#74C284;
  --shadow:0 1px 2px rgba(0,0,0,.45),0 8px 24px rgba(0,0,0,.34);
}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--paper); color:var(--ink);
  font-family:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:15px; line-height:1.5; -webkit-font-smoothing:antialiased}
img{max-width:100%} [hidden]{display:none!important}
h1,h2,h3{font-family:"IBM Plex Serif",Georgia,serif; margin:0; text-wrap:balance}
p{margin:0}
a{color:var(--accent)}
.mono{font-family:"IBM Plex Mono",ui-monospace,Menlo,monospace}
.eyebrow{font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.11em; text-transform:uppercase; color:var(--ink-3)}
:where(a,button,input,select,textarea):focus-visible{outline:2px solid var(--accent); outline-offset:2px; border-radius:3px}
@media (prefers-reduced-motion:reduce){*{transition:none!important; animation:none!important}}

.wrap{max-width:1140px; margin:0 auto; padding-inline:16px; padding-block:28px 60px}
.topbar{display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap;
  padding-block:12px; border-bottom:1px solid var(--rule); margin-bottom:26px}
.brand{font-family:"IBM Plex Serif",Georgia,serif; font-weight:600; font-size:17px; color:var(--ink); text-decoration:none}
.topbar nav{display:flex; gap:18px; font-size:13.5px}
.topbar nav a{color:var(--ink-2); text-decoration:none}
.topbar nav a[aria-current="page"]{color:var(--ink); font-weight:600}

.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:10px 18px;
  font:inherit; font-weight:600; font-size:14.5px; border-radius:4px; border:1px solid var(--accent);
  background:transparent; color:var(--accent); cursor:pointer; text-decoration:none}
.btn:hover{background:var(--accent-soft)}
.btn.primary{background:var(--accent); color:var(--accent-ink)}
.btn.primary:hover{filter:brightness(1.07); background:var(--accent)}
.btn.quiet{border-color:var(--rule-2); color:var(--ink-2)}
.btn:disabled{opacity:.45; cursor:not-allowed}

.panel{background:var(--card); border:1px solid var(--rule); border-radius:5px; box-shadow:var(--shadow); overflow:hidden}
.phead{display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding:14px 18px; border-bottom:1px solid var(--rule); flex-wrap:wrap}
.phead h2{font-size:16px; font-weight:600}
.pbody{padding:18px}

label.lab{display:block; font-size:13px; font-weight:500; margin-bottom:5px; color:var(--ink)}
.field input, .field select, .field textarea{width:100%; font:inherit; font-size:16px; color:var(--ink); background:var(--paper);
  border:1px solid var(--rule-2); border-radius:4px; padding:10px 12px; min-height:46px}
.field textarea{min-height:90px; font-size:14px}
.field input:focus, .field select:focus, .field textarea:focus{border-color:var(--accent)}
.help{font-size:12.5px; color:var(--ink-3); margin-top:4px}
.error{background:var(--alert-soft); border:1px solid var(--alert); color:var(--alert); border-radius:4px; padding:10px 12px; font-size:13.5px}

.chip{display:inline-block; font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:.06em; text-transform:uppercase;
  padding:3px 6px; border-radius:2px; border:1px solid currentColor; font-weight:500; white-space:nowrap}
.chip.matched{color:var(--ok)} .chip.ambiguous{color:var(--warn)} .chip.unmatched{color:var(--alert)} .chip.staff{color:var(--accent)}

footer.site{margin-top:34px; padding-top:18px; border-top:1px solid var(--rule); display:flex; flex-wrap:wrap; gap:10px 28px;
  justify-content:space-between; font-size:12px; color:var(--ink-3)}
footer.site b{color:var(--ink); font-weight:600}
