/* BC registries pages (Provincial Court + Supreme Court): the finder, the map and the static
   directory. Shared by both pages; page chrome stays inline in each page like its siblings.
   Tokens come from the page's :root. */

.rf[hidden]{display:none}
.rf{margin-top:26px}
.rf-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.rf-search{flex:1 1 300px;max-width:520px}
.rf-search label{display:block;font-size:13px;font-weight:600;color:var(--ink);margin-bottom:6px}
.rf-search input{width:100%;font:inherit;font-size:16px;padding:12px 14px;border:1px solid #CFC6B3;border-radius:12px;background:#fff;color:var(--ink)}
.rf-search input:focus{outline:3px solid rgba(35,78,62,.28);outline-offset:1px;border-color:var(--pine)}
.rf-near{font:inherit;font-size:14px;font-weight:600;padding:12px 16px;border-radius:12px;border:1px solid var(--mist);background:var(--panel);color:var(--pine);cursor:pointer}
.rf-near:hover{border-color:var(--pine)}
.rf-filters{border:0;margin:14px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.rf-filters legend{font-size:13px;font-weight:600;color:var(--ink);margin-bottom:8px;width:100%}
.rf-chip{position:relative}
.rf-chip input{position:absolute;opacity:0;width:1px;height:1px}
.rf-chip span{display:inline-block;font-size:13.5px;font-weight:600;padding:8px 13px;border-radius:99px;border:1px solid var(--mist);background:var(--panel);color:var(--muted);cursor:pointer}
.rf-chip input:checked+span{background:var(--pine);border-color:var(--pine);color:var(--paper)}
.rf-chip input:focus-visible+span{outline:3px solid rgba(181,122,36,.55);outline-offset:2px}
.rf-status{font-size:13.5px;color:var(--muted);margin-top:12px;min-height:1.4em}
.rf-note{font-size:12.5px;color:var(--faint);margin-top:4px}

.rf-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:18px;margin-top:14px;align-items:start}
@media(max-width:900px){.rf-grid{grid-template-columns:1fr}}

.rf-mapbox{position:relative;border:1px solid var(--mist);border-radius:18px;overflow:hidden;background:#E4ECE7}
.rf-map{display:block;width:100%;height:auto;aspect-ratio:1000/866;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}
.rf-map.dragging{cursor:grabbing}
.rf-map:focus{outline:none}
.rf-map:focus-visible{outline:3px solid rgba(181,122,36,.6);outline-offset:-3px}
.rf-zoom{position:absolute;top:12px;right:12px;display:flex;flex-direction:column;gap:6px}
.rf-zoom button,.rf-presets button{font:inherit;font-weight:700;color:var(--pine);background:rgba(251,250,246,.96);border:1px solid var(--mist);border-radius:10px;cursor:pointer}
.rf-zoom button{width:38px;height:38px;font-size:19px;line-height:1}
.rf-zoom button:hover,.rf-presets button:hover{border-color:var(--pine)}
.rf-presets{position:absolute;left:12px;bottom:12px;right:60px;display:flex;flex-wrap:wrap;gap:6px}
.rf-presets button{font-size:12.5px;font-weight:600;padding:6px 10px}
@media(max-width:600px){
  .rf-presets{position:static;padding:10px;background:var(--panel);border-top:1px solid var(--mist)}
  .rf-zoom button{width:34px;height:34px}
}
.rf-zoom button:focus-visible,.rf-presets button:focus-visible{outline:3px solid rgba(181,122,36,.6);outline-offset:1px}
.rf-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin:10px 2px 0;font-size:12.5px;color:var(--muted)}
.rf-legend span{display:inline-flex;align-items:center;gap:6px}
.rf-legend i{display:inline-block;width:12px;height:12px;border-radius:50%;flex:none}
.rf-legend .lg-p{background:var(--pine);box-shadow:0 0 0 1.5px #fff,0 0 0 2.5px var(--pine)}
.rf-legend .lg-s{background:var(--amber);box-shadow:0 0 0 1.5px #fff,0 0 0 2.5px var(--amber)}
.rf-legend .lg-f{background:var(--pine);box-shadow:0 0 0 2px var(--amber)}
.rf-legend .lg-c{background:#fff;box-shadow:inset 0 0 0 2px var(--pine);width:9px;height:9px}
.rf-legend .lg-x{background:#8A9990}
.rf-legend .lg-k{background:var(--pine);width:16px;height:16px;opacity:.88}

/* SVG pins */
.pin{cursor:pointer}
.pin circle{transition:r .12s}
.pin.hl circle.dot,.pin.sel circle.dot{stroke:#16211C}
.pin .halo{fill:none;stroke:var(--amber);opacity:0}
.pin.sel .halo{opacity:.9}
.cluster{cursor:pointer}
/* Sizes for pin text and strokes are set per zoom level as SVG attributes by registries-map.js
   (in map units), so nothing here may set font-size or stroke-width: CSS would win and the text
   would scale with the zoom. */
.cluster text{font-family:'Public Sans',system-ui,sans-serif;font-weight:700;fill:#fff;text-anchor:middle;dominant-baseline:central;pointer-events:none}
.plabel{font-family:'Public Sans',system-ui,sans-serif;font-weight:600;fill:#16211C;paint-order:stroke;stroke:#FBFAF6;stroke-linejoin:round;pointer-events:none}
.rf-map .base path{vector-effect:non-scaling-stroke}
.rf-map.zoomed .base text{display:none}

/* side panel: results list or a location card */
.rf-panel{border:1px solid var(--mist);border-radius:18px;background:var(--panel);padding:16px;max-height:640px;overflow:auto;scroll-margin-top:72px}
@media(max-width:900px){.rf-panel{max-height:72vh}}
.rf-results{list-style:none;margin:0;padding:0;counter-reset:rf}
.rf-results li+li{border-top:1px solid var(--mist)}
.rf-results button{display:block;width:100%;text-align:left;font:inherit;background:none;border:0;padding:11px 8px;border-radius:10px;cursor:pointer;color:var(--ink)}
.rf-results button:hover,.rf-results button.hl{background:#EEF4F0}
.rf-results button:focus-visible{outline:3px solid rgba(181,122,36,.6);outline-offset:-2px}
.rf-results .nm{font-family:'Bricolage Grotesque',sans-serif;font-weight:600;font-size:15.5px;display:block}
.rf-results .sub{font-size:12.5px;color:var(--faint);display:block;margin-top:2px}
.rf-empty{font-size:14.5px;color:var(--muted)}
.rf-empty button{font:inherit;font-weight:600;color:var(--pine);background:none;border:0;padding:0;cursor:pointer;text-decoration:underline}

.badges{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.badge{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:3px 8px;border-radius:99px;border:1px solid transparent;line-height:1.5}
.b-prov{background:#EEF4F0;color:var(--pine)}
.b-sup{background:var(--amber-bg);color:#7A5214;border-color:#EAD9BB}
.b-both{background:var(--pine);color:var(--paper)}
.b-file{background:#fff;color:#7A5214;border-color:var(--amber)}
.b-circ{background:#fff;color:var(--muted);border-color:#CFC6B3}
.b-staff{background:#fff;color:var(--pine);border-color:#B8CFC2}
.b-spec{background:#EDEBE5;color:#4A5A52}
.b-err{background:#fff;color:var(--pine2);border-color:#B8CFC2;text-transform:none;letter-spacing:0}

.rf-card h3{font-size:22px;line-height:1.15}
.rf-card h3:focus{outline:none}
.rf-card .back{font:inherit;font-size:13.5px;font-weight:600;color:var(--pine);background:none;border:0;padding:0 0 10px;cursor:pointer}
.rf-card .back:focus-visible{outline:3px solid rgba(181,122,36,.6);outline-offset:2px}
.rf-card dl{margin-top:14px;display:grid;grid-template-columns:auto 1fr;gap:8px 14px;font-size:14.5px}
.rf-card dt{color:var(--faint);font-weight:600;font-size:12.5px;text-transform:uppercase;letter-spacing:.05em;padding-top:2px}
.rf-card dd{color:var(--ink);margin:0}
.rf-card a,.dir a{color:var(--pine);font-weight:600}
.rf-card a:hover,.dir a:hover{text-decoration:underline}
.rf-card .callnote{background:var(--amber-bg);border:1px solid #EAD9BB;border-radius:12px;padding:11px 13px;margin-top:14px;font-size:14px;color:#6B5A38}
.rf-card .notes{margin:12px 0 0 18px;font-size:13.5px;color:var(--muted)}
.rf-card .notes li+li{margin-top:5px}
.rf-card .next{margin-top:16px;border-top:1px solid var(--mist);padding-top:12px}
.rf-card .next b{font-size:12.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--faint)}
.rf-card .next ol{margin:8px 0 0 18px;font-size:14.5px;line-height:1.8}
.rf-card .src{margin-top:14px;font-size:12.5px;color:var(--faint)}
.rf-card .src ol{margin:6px 0 0 18px}
.rf-near-list .dist{font-variant-numeric:tabular-nums}

/* generated tables (filing locations, Vancouver) */
.tblwrap{overflow-x:auto;margin-top:18px;max-width:860px}
.tbl{width:100%;border-collapse:collapse;font-size:14.5px;background:var(--panel);border:1px solid var(--mist);border-radius:14px}
.tbl caption{text-align:left;font-size:12.5px;font-weight:600;color:var(--faint);padding:0 2px 8px}
.tbl th,.tbl td{text-align:left;padding:10px 12px;border-top:1px solid var(--mist);vertical-align:top;color:var(--muted)}
.tbl thead th{border-top:0;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--faint)}
.tbl th[scope=row]{color:var(--ink);font-weight:600}
.tbl a{color:var(--pine);font-weight:600}

/* static directory (the no-JS version, and what prints) */
.az{display:flex;flex-wrap:wrap;gap:4px;margin-top:18px;font-size:13.5px}
.az a{display:inline-block;min-width:28px;text-align:center;padding:4px 6px;border-radius:8px;border:1px solid var(--mist);background:var(--panel);color:var(--pine);font-weight:600}
.dir{list-style:none;margin:20px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;counter-reset:dir}
.dir>li{counter-increment:dir;background:var(--panel);border:1px solid var(--mist);border-radius:16px;padding:16px 18px;scroll-margin-top:80px}
.dir>li:target{border-color:var(--amber);box-shadow:0 0 0 3px rgba(181,122,36,.18)}
.dir h3{font-size:17px;line-height:1.2}
.dir h3::before{content:counter(dir) ". ";color:var(--faint);font-family:'Public Sans';font-weight:600;font-size:13px}
.dir p{font-size:14px;color:var(--muted);margin-top:7px;line-height:1.55}
.dir p.meta{font-size:12px;color:var(--faint)}
.tnum{font-variant-numeric:tabular-nums}

@media (prefers-reduced-motion: reduce){
  .pin circle{transition:none}
  html{scroll-behavior:auto}
}

@media print{
  header,.rf,.az,.no-print,footer nav{display:none!important}
  body{background:#fff}
  section.block{padding:18px 0;border-top:1px solid #ccc}
  .dir{display:block}
  .dir>li{break-inside:avoid;border:0;border-bottom:1px solid #ccc;border-radius:0;padding:8px 0;background:none}
  .dir a{color:#000;text-decoration:none}
  .badge{border:1px solid #999!important;background:none!important;color:#000!important}
}
