/* 2026-10-22 (Ryan): dark mode for the generated pages (town/state/category pages, facility pages, /browse, /claim,
   /badge), following the homepage: the system setting, or the sfm-theme choice saved by the homepage toggle.
   Each page keeps its own <style> block; this file loads after it and re-colours the same rules through tokens.
   Light token values equal the pages' original colours, so light mode is unchanged. Every rule starts with :root
   so it outranks the page's own rules and the styles rp.js injects later. Fingerprinted by assets.py. */
:root{--s-bg:#f6f8f7;--s-ink:#0f172a;--s-ink2:#334155;--s-mut:#475569;--s-mut2:#5b6574;--s-card:#fff;--s-field:#fff;
 --s-hbg:#eef4f0;--s-hline:#dbe7df;--s-brand:#0b5c37;--s-g:#0b6b40;--s-btn:#0b6b40;--s-btnink:#fff;--s-line:#d6e2dc;--s-line2:#f1f5f9;
 --s-soft:#f1f5f9;--s-soft2:#e2e8f0;--s-dash:#94a3b8;--s-tagbg:#e7f5ee;--s-tagink:#0b6b40;--s-tagline:#bfe3cf;--s-ph2:#cfe9dc;--s-ocbg:#f0f9f4;
 --s-okbg:#dcfce7;--s-okink:#14532d;--s-okline:#bbf7d0;--s-indbg:#e0f2fe;--s-indink:#075985;--s-indline:#bae6fd;
 --s-membg:#fef3c7;--s-memink:#78350f;--s-memline:#fde68a;--s-warnbg:#fff7e6;--s-warnink:#7a4a00;--s-warnline:#f5d79e;
 --s-err:#b91c1c;--s-pvbg:#fafcfb;--s-pvline:#cbd5e1;--s-shadow:rgba(0,0,0,.05);--s-tiles:none;
 --g:#0b6b40;--mut:#64748b;color-scheme:light}
:root[data-theme=dark]{--s-bg:#0a110e;--s-ink:#e7efea;--s-ink2:#c9d6cf;--s-mut:#a3b5ac;--s-mut2:#93a69c;--s-card:#121c18;--s-field:#17231e;
 --s-hbg:#0d1512;--s-hline:#22322b;--s-brand:#4ade80;--s-g:#4ade80;--s-btn:#34c77b;--s-btnink:#03140a;--s-line:#2b3c34;--s-line2:#22322b;
 --s-soft:#1b2822;--s-soft2:#17231e;--s-dash:#5b6e65;--s-tagbg:#1a3326;--s-tagink:#86efac;--s-tagline:#2b4a3a;--s-ph2:#0f1a15;--s-ocbg:#0f1a15;
 --s-okbg:#14532d;--s-okink:#dcfce7;--s-okline:#166534;--s-indbg:#0c3a52;--s-indink:#bae6fd;--s-indline:#075985;
 --s-membg:#3d2e08;--s-memink:#fde68a;--s-memline:#78350f;--s-warnbg:#2a2210;--s-warnink:#fcd34d;--s-warnline:#5c4a1c;
 --s-err:#f87171;--s-pvbg:#0f1a15;--s-pvline:#2b3c34;--s-shadow:rgba(0,0,0,.45);--s-tiles:invert(1) hue-rotate(180deg) brightness(.85) contrast(.9);
 --g:#4ade80;--mut:#a3b5ac;color-scheme:dark}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--s-bg:#0a110e;--s-ink:#e7efea;--s-ink2:#c9d6cf;--s-mut:#a3b5ac;--s-mut2:#93a69c;--s-card:#121c18;--s-field:#17231e;
 --s-hbg:#0d1512;--s-hline:#22322b;--s-brand:#4ade80;--s-g:#4ade80;--s-btn:#34c77b;--s-btnink:#03140a;--s-line:#2b3c34;--s-line2:#22322b;
 --s-soft:#1b2822;--s-soft2:#17231e;--s-dash:#5b6e65;--s-tagbg:#1a3326;--s-tagink:#86efac;--s-tagline:#2b4a3a;--s-ph2:#0f1a15;--s-ocbg:#0f1a15;
 --s-okbg:#14532d;--s-okink:#dcfce7;--s-okline:#166534;--s-indbg:#0c3a52;--s-indink:#bae6fd;--s-indline:#075985;
 --s-membg:#3d2e08;--s-memink:#fde68a;--s-memline:#78350f;--s-warnbg:#2a2210;--s-warnink:#fcd34d;--s-warnline:#5c4a1c;
 --s-err:#f87171;--s-pvbg:#0f1a15;--s-pvline:#2b3c34;--s-shadow:rgba(0,0,0,.45);--s-tiles:invert(1) hue-rotate(180deg) brightness(.85) contrast(.9);
 --g:#4ade80;--mut:#a3b5ac;color-scheme:dark}}
/* shared: page, header, footer, breadcrumbs, link rows */
:root body{background:var(--s-bg);color:var(--s-ink)}
:root header{background:var(--s-hbg);border-bottom-color:var(--s-hline)}
:root header a.wm{color:var(--s-brand)}:root header .mk circle{fill:var(--s-hbg)}:root header a.sg{color:var(--s-ink2)}
:root nav.bc,:root footer{color:var(--s-mut)}
:root nav.bc a,:root .links a,:root .st a,:root li.f a,:root .gl{color:var(--s-g)}
/* town, state and category pages */
:root #map{background:var(--s-soft2)}:root .leaflet-tile-pane{filter:var(--s-tiles)}
:root ol.fl li::marker{color:var(--s-g)}
:root li.f{background:var(--s-card);box-shadow:0 1px 6px var(--s-shadow)}:root .box{background:var(--s-card);box-shadow:0 2px 10px var(--s-shadow)}
:root .mi{color:var(--s-ink2)}:root .sm{color:var(--s-mut)}
:root span.pv{background:var(--s-okbg);color:var(--s-okink)}
:root .pun{color:var(--s-mut2)}
:root .pu{background:var(--s-soft);color:var(--s-mut);border-color:var(--s-dash)}
/* facility pages */
:root dt,:root .cred,:root .cred a,:root .plt,:root .rh,:root .pc,:root .pq,:root .ptc,:root .ptb small,:root .oc .ocs,:root .disc{color:var(--s-mut)}
:root .tag{background:var(--s-tagbg);color:var(--s-tagink)}
:root .btn{background:var(--s-btn);color:var(--s-btnink)}
:root .gal img{background:var(--s-soft2)}
:root .ph{background:linear-gradient(135deg,var(--s-tagbg),var(--s-ph2));color:var(--s-tagink)}
:root #pp,:root .pvs,:root .rpb2,:root .sge,:root .oc .ob{color:var(--s-g)}
:root #pp.pun{color:var(--s-ink2)}
:root .ch{background:var(--s-soft);color:var(--s-ink2);border-color:var(--s-soft2)}
:root .ch-team{background:var(--s-okbg);color:var(--s-okink);border-color:var(--s-okline)}
:root .ch-individual{background:var(--s-indbg);color:var(--s-indink);border-color:var(--s-indline)}
:root .ch-membership{background:var(--s-membg);color:var(--s-memink);border-color:var(--s-memline)}
:root .ptb tr.gh th{color:var(--s-ink)}:root .ptb td{border-bottom-color:var(--s-line2)}
:root .ptb td:not(.pr),:root .ptb.ptu td.pr{color:var(--s-ink2)}
:root .own{background:var(--s-warnbg);color:var(--s-warnink);border-color:var(--s-warnline)}
:root .oc{background:var(--s-ocbg);border-color:var(--s-tagline)}:root .oc .oct{color:var(--s-brand)}
:root .ovb,:root .note,:root .vb{background:var(--s-tagbg);color:var(--s-tagink);border-color:var(--s-tagline)}
/* suggest-an-edit dialog (rp.js) */
:root .rpb{background:var(--s-card);color:var(--s-ink)}
:root .rpb select,:root .rpb textarea,:root .rpb input{background:var(--s-field);color:var(--s-ink);border-color:var(--s-line)}
:root .rpb button{border-color:var(--s-btn)}
:root .rpb .rps{background:var(--s-btn);color:var(--s-btnink)}
:root .rpb .rpc{background:var(--s-card);color:var(--s-g)}
:root .rpb .rpm{color:var(--s-g)}:root .rpb .rpm.err{color:var(--s-err)}:root .rpb small{color:var(--s-mut)}
/* claim and badge pages */
:root .card{background:var(--s-card)}
:root label{color:var(--s-ink2)}
:root main input,:root main textarea,:root main select{background:var(--s-field);color:var(--s-ink);border-color:var(--s-line)}
:root .tg span{background:var(--s-field);border-color:var(--s-line)}
:root .tg input:checked+span{background:var(--s-btn);border-color:var(--s-btn);color:var(--s-btnink)}
:root .err{color:var(--s-err)}:root .ok{color:var(--s-g)}
:root div.pv{background:var(--s-pvbg);border-color:var(--s-pvline)}
:root .cp{background:var(--s-card);color:var(--s-g);border-color:var(--s-g)}
