:root{
  --bg:#E8ECE5; --surface:#FAFBF8; --ink:#1D2922; --muted:#56655C; --line:#C9D1C6;
  --pine:#2E5A44; --pine-deep:#1F4232; --plate-text:#F1E8D2; --amber:#B97A12;
  --good:#2E6B3F; --warn:#8A5A00; --bad:#B3261E;
  --serif:"Bitter", Georgia, "Times New Roman", serif;
  --sans:"Atkinson Hyperlegible", "Segoe UI", system-ui, -apple-system, sans-serif;
  box-sizing:border-box;
}
*,*::before,*::after{box-sizing:inherit}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.55}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--pine)}
:focus-visible{outline:3px solid var(--amber);outline-offset:2px}

/* ---- Admin chrome ---- */
.admin-nav{background:var(--pine-deep);color:#fff;padding:12px 24px;display:flex;gap:20px}
.admin-nav a{color:#fff;text-decoration:none;font-weight:700}
.admin-nav a:hover{text-decoration:underline}
.flash-wrap{max-width:900px;margin:16px auto 0;padding:0 24px}
.flash{padding:10px 14px;border-radius:8px;margin-bottom:8px;font-weight:700}
.flash-success{background:#DCEEDD;color:var(--good)}
.flash-error{background:#F6DADA;color:var(--bad)}
.admin-wrap{max-width:1100px;margin:0 auto;padding:24px}
.admin-wrap h1{font-family:var(--serif)}
table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:8px;overflow:hidden}
th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);font-size:.92rem}
th{background:var(--bg)}
tr:last-child td{border-bottom:0}
.btn{display:inline-block;background:var(--pine);color:#fff;border:0;border-radius:8px;padding:9px 16px;font-weight:700;cursor:pointer;text-decoration:none}
.btn-quiet{background:none;border:1.5px solid var(--line);color:var(--ink)}
.btn-danger{background:var(--bad)}
.toolbar{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap;align-items:center}
form.inline{display:inline}
.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:.8rem;font-weight:700}
.badge-active{background:#DCEEDD;color:var(--good)}
.badge-inactive{background:#E7E7E7;color:var(--muted)}
.badge-filled{background:#F3E3C8;color:var(--warn)}
.badge-open{background:#E3EAF6;color:var(--pine-deep)}

/* ---- Admin form ---- */
.pf-form{max-width:820px}
.pf-form fieldset{border:1px solid var(--line);border-radius:8px;padding:16px 18px;margin-bottom:16px;background:var(--surface)}
.pf-form legend{font-family:var(--serif);font-weight:700;padding:0 6px}
.field{margin-bottom:12px}
.field label{display:block;font-weight:700;margin-bottom:4px;font-size:.92rem}
.field input[type=text],.field input[type=number],.field select,.field textarea{
  width:100%;padding:8px 10px;border:1.5px solid var(--line);border-radius:8px;background:var(--bg)}
.field textarea{min-height:70px}
.row3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.check-group{display:flex;flex-wrap:wrap;gap:10px}
.check-group label{display:flex;align-items:center;gap:6px;font-weight:400;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:6px 10px}
.hint{color:var(--muted);font-size:.85rem;margin-top:4px}

/* ---- Public Position Finder ---- */
.pf-header{max-width:1180px;margin:0 auto;padding:40px 24px 16px}
.pf-header h1{font-family:var(--serif);font-weight:700;font-size:clamp(2rem,4.5vw,3.1rem);line-height:1.1;margin:0 0 10px;letter-spacing:-.01em}
.pf-header p{margin:0;max-width:62ch;color:var(--muted);font-size:1.05rem}

.layout{max-width:1180px;margin:0 auto;padding:8px 24px 120px;display:grid;grid-template-columns:320px 1fr;gap:32px;align-items:start}
@media (max-width:860px){.layout{grid-template-columns:1fr;gap:16px}}

.filters{position:sticky;top:16px;max-height:calc(100vh - 32px);overflow-y:auto;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:20px;width:320px}
@media (max-width:860px){.filters{position:static;max-height:none;width:auto}}
.filters h2{font-family:var(--serif);font-size:1.25rem;margin:0 0 4px}
.filters .hint{margin:0 0 16px}
.fgroup{border-top:1px solid var(--line);padding:14px 0}
.fgroup:first-of-type{border-top:0;padding-top:0}
.fgroup>.flabel{display:block;font-weight:700;margin-bottom:8px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{border:1.5px solid var(--line);background:transparent;border-radius:999px;padding:5px 12px;cursor:pointer;font-size:.95rem}
.chip[aria-pressed="true"]{background:var(--pine);border-color:var(--pine);color:#fff}
.filters select,.filters input[type=number]{width:100%;padding:8px 10px;border:1.5px solid var(--line);border-radius:8px;background:var(--bg)}
.clear{margin-top:8px;background:none;border:0;color:var(--pine);text-decoration:underline;cursor:pointer;padding:0}
details.filter-toggle>summary{display:none}
@media (max-width:860px){
  details.filter-toggle>summary{display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-weight:700;list-style:none}
  details.filter-toggle>summary::-webkit-details-marker{display:none}
  details.filter-toggle[open]>summary{margin-bottom:14px}
}

.results-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.results-head .count{font-family:var(--serif);font-size:1.3rem}
.results-head .unk{font-size:.9rem;color:var(--muted)}
.list{display:flex;flex-direction:column;gap:18px}

.pos{background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.pos.picked{border-color:var(--amber);box-shadow:0 0 0 2px var(--amber)}
.plate{background:var(--pine-deep);color:var(--plate-text);padding:14px 20px;display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:3px solid var(--pine)}
.plate h3{margin:0;font-family:var(--serif);font-weight:700;font-size:1.35rem;line-height:1.2}
.plate .where{font-size:.95rem;opacity:.9}
.plate .role{flex:none;border:1.5px solid var(--plate-text);border-radius:6px;padding:3px 10px;font-weight:700;font-size:.9rem}
.pos-body{padding:16px 20px 18px}
.pos-body .summary{margin:0 0 14px;max-width:70ch}
.facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px 18px;margin:0 0 14px}
.facts dt{color:var(--muted);font-size:.85rem}
.facts dd{margin:0;font-weight:700}
.facts dd.nl{font-weight:400;color:var(--muted);font-style:italic}
.pos-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.pid{font-size:.85rem;color:var(--muted)}
.pick{border:2px solid var(--amber);background:transparent;color:var(--ink);border-radius:8px;padding:8px 16px;font-weight:700;cursor:pointer}
.pick[aria-pressed="true"]{background:var(--amber);color:#fff}
.empty{background:var(--surface);border:1px dashed var(--line);border-radius:10px;padding:28px;text-align:center}

.bar{position:fixed;left:0;right:0;bottom:0;padding:12px 20px;background:var(--pine-deep);color:var(--plate-text);display:flex;justify-content:center;align-items:center;gap:16px;transform:translateY(110%);transition:transform .25s ease}
.bar.show{transform:none}
.bar button{background:var(--amber);color:#fff;border:0;border-radius:8px;padding:10px 18px;font-weight:700;cursor:pointer}
dialog{border:0;border-radius:12px;padding:0;max-width:640px;width:calc(100% - 24px);background:var(--surface);color:var(--ink);max-height:88vh}
dialog::backdrop{background:rgba(10,20,15,.55)}
.dlg{padding:24px;overflow:auto;max-height:88vh}
.dlg h2{font-family:var(--serif);margin:0 0 6px;font-size:1.5rem}
.dlg h3{font-family:var(--serif);font-size:1.1rem;margin:22px 0 8px}
.dlg ul{padding-left:0;list-style:none;margin:0}
.dlg li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
.dlg li button{background:none;border:0;color:var(--pine);text-decoration:underline;cursor:pointer}
.dlg label{display:block;font-weight:700;margin-top:12px}
.dlg input,.dlg select{width:100%;padding:9px 11px;border:1.5px solid var(--line);border-radius:8px;background:var(--bg);margin-top:4px;font:inherit}
.prefs{margin:0;padding:12px 14px;background:var(--bg);border-radius:8px;font-size:.95rem}
.prefs div{padding:2px 0}
.actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px;flex-wrap:wrap}
.err{color:var(--bad);font-size:.9rem;margin-top:6px}
