:root{--ink:#12161C;--muted:#566370;--line:#D8DEE6;--ground:#F5F6F3;--panel:#FFFFFF;--soft:#EEF2F6;--accent:#1F4C7C;--accent-ink:#FFFFFF;--warn:#E05A38;--ok:#2E8B57;--focus:#3070B0;--A:#2E8B57;--B:#C88A12;--C:#C0392B;color-scheme:light dark}
@media (prefers-color-scheme:dark){:root{--ink:#ECEFF3;--muted:#A3AEBB;--line:#2E3843;--ground:#14191F;--panel:#1C232B;--soft:#242D37;--accent:#7FB0E0;--accent-ink:#0F1A26;--warn:#F08A6E;--ok:#5FC08A;--focus:#8CC0F0}}
*{box-sizing:border-box}html,body{height:100%}
body{margin:0;background:var(--ground);color:var(--ink);font-family:Karla,system-ui,sans-serif;font-size:15px;line-height:1.4}
.wrap{max-width:1180px;margin:0 auto;padding:16px 16px 40px}
header{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 20px;margin-bottom:14px}
h1{font-family:Fraunces,Georgia,serif;font-weight:600;font-size:26px;margin:0}h2{font-family:Fraunces,Georgia,serif;font-weight:600;font-size:20px;margin:0 0 8px}
.who{display:flex;align-items:center;gap:10px;margin-left:auto;font-size:14px}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:14px}
.tabs button{font:inherit;font-weight:500;background:none;border:0;border-bottom:2px solid transparent;padding:8px 12px;color:var(--muted);cursor:pointer}
.tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--accent)}
button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:16px}@media (max-width:760px){.grid{grid-template-columns:1fr}}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px}.panel.narrow{max-width:460px;margin:30px auto}
label.lbl{display:block;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:10px 0 6px}
input,select{width:100%;font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:7px;background:var(--panel);color:var(--ink)}
#q{font-size:22px;padding:10px 12px;border-width:2px}#q:focus{border-color:var(--focus);outline:none}
.hint{font-size:13px;color:var(--muted);margin-top:6px;min-height:18px}
.cands{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}
.cands li{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:8px;cursor:pointer;background:var(--panel)}
.cands li[aria-selected="true"]{border-color:var(--accent);background:var(--soft)}.cands li.done{opacity:.55}
.cands .st{font-weight:700;font-size:17px;min-width:5.2em;text-align:right;font-variant-numeric:tabular-nums}.cands .ad{font-weight:500}.cands .nm{color:var(--muted);font-size:13px}
.cands .tag{font-size:11px;padding:2px 7px;border-radius:999px;background:var(--soft);color:var(--muted);white-space:nowrap}
.result{margin-top:12px;border-top:1px solid var(--line);padding-top:12px;min-height:120px}
.result .big{font-family:Fraunces,Georgia,serif;font-size:60px;line-height:1;font-weight:600;color:var(--accent);font-variant-numeric:tabular-nums}
.result .stint-lbl{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.result .name{font-size:19px;font-weight:700;margin-top:10px}.result .addr{font-size:17px}.result .addr2{font-size:15px;color:var(--muted)}.result .meta{color:var(--muted);font-size:14px;margin-top:4px}
.flag{display:inline-block;margin-top:8px;padding:4px 10px;border-radius:6px;font-weight:700;font-size:14px}
.flag.ok{background:color-mix(in srgb,var(--ok) 15%,transparent);color:var(--ok)}.flag.dup,.flag.miss{background:color-mix(in srgb,var(--warn) 15%,transparent);color:var(--warn)}
.gA{color:var(--A)}.gB{color:var(--B)}.gC{color:var(--C)}
.row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}.row input,.row select{width:auto;flex:1}
.btn{font:inherit;font-weight:500;padding:8px 12px;border:1px solid var(--line);border-radius:7px;background:var(--panel);color:var(--ink);cursor:pointer;text-decoration:none;display:inline-block}
.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn.big{width:100%;padding:14px;font-size:17px}.btn.small{padding:4px 9px;font-size:13px}.btn:disabled{opacity:.5;cursor:default}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.stat{background:var(--soft);border-radius:8px;padding:10px}.stat b{display:block;font-size:26px;font-variant-numeric:tabular-nums;line-height:1.1}.stat span{font-size:12px;color:var(--muted)}
.bars{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px}
.bar{position:relative;border:1px solid var(--line);border-radius:6px;padding:5px 8px;font-size:13px;cursor:pointer;background:var(--panel);overflow:hidden}
.bar i{position:absolute;left:0;top:0;bottom:0;background:color-mix(in srgb,var(--accent) 18%,transparent)}.bar.full i{background:color-mix(in srgb,var(--ok) 28%,transparent)}
.bar span{position:relative;display:flex;justify-content:space-between;font-variant-numeric:tabular-nums}.bar.sel{border-color:var(--accent)}
table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:5px 6px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:500}td.num{font-variant-numeric:tabular-nums}
.tblwrap{overflow:auto;max-height:440px;border:1px solid var(--line);border-radius:8px}
.muted{color:var(--muted)}.status{font-size:13px;color:var(--muted);margin-top:8px;min-height:18px}.status.err{color:var(--warn)}
code.key{font-size:22px;font-weight:700;letter-spacing:.08em;background:var(--soft);padding:4px 10px;border-radius:6px}
hr{border:0;border-top:1px solid var(--line);margin:16px 0}

.sheets{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}
.sheet{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink);text-decoration:none}
.sheet:hover{border-color:var(--accent)}.sheet .id{font-family:Fraunces,Georgia,serif;font-size:22px;font-weight:600;grid-row:span 2;font-variant-numeric:tabular-nums}
.sheet .t{font-weight:500;font-size:13px}.sheet .m{font-size:12px;color:var(--muted)}
.sheet.done{background:color-mix(in srgb,var(--ok) 10%,var(--panel))}

.leafmap{height:min(78vh,900px);border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#e8e8e8}
.stint-pin{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;color:#fff;font:700 12px/1 Karla,system-ui,sans-serif;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.4)}
.stint-pin.done::after{content:"✓";position:absolute;right:-6px;top:-6px;background:#2E8B57;color:#fff;border-radius:50%;width:14px;height:14px;font-size:10px;line-height:14px;text-align:center;border:1px solid #fff}
.leaflet-popup-content{font-family:Karla,system-ui,sans-serif;font-size:14px}.leaflet-popup-content b{font-size:18px}
.sheet .links{grid-column:1/-1;display:flex;gap:6px;margin-top:4px}
[hidden]{display:none!important}
