/* ARMORY ALMANAC — public site chrome for the page types the composer does not
   itself produce (home search, coverage badge table, methodology, monthly
   change, and the map container). Every value is read from the sealed design
   tokens (visual-language-tokens.css) + the Warm Bronze real-estate accent
   (vertical-palettes.css); no colour is hardcoded here. The primary button is
   bronze (--accent / --accent-label), per LI-D12 item 3. Light register is the
   public one. This file rides ALONGSIDE almanac.css — it never restyles a rung. */

/* ---- search (home) ------------------------------------------------------- */
.searchwrap{max-width:640px;margin:var(--s-6) auto 0;}
.searchbox{display:flex;gap:var(--s-3);align-items:stretch;}
.searchbox input[type=search]{
  flex:1;font:var(--fs-body)/1.4 var(--font-sans);color:var(--text);
  background:var(--surface-panel);border:1px solid var(--border);
  border-radius:var(--radius,4px);padding:12px 14px;}
.searchbox input[type=search]:focus{outline:none;box-shadow:var(--focus-ring-primary,0 0 0 2px);
  border-color:var(--accent);}
.btn{font:var(--fs-label)/1 var(--font-sans);text-transform:uppercase;letter-spacing:.06em;
  border:1px solid var(--border);background:var(--surface-panel);color:var(--text);
  border-radius:var(--radius,4px);padding:12px 18px;cursor:pointer;}
.btn.primary{background:var(--accent);color:var(--accent-label);border-color:var(--accent);}
.btn.ghost{background:transparent;}
.results{list-style:none;margin:var(--s-4) 0 0;padding:0;
  border:1px solid var(--border);border-radius:var(--radius,4px);overflow:hidden;}
.results:empty{display:none;}
.results li{border-top:1px solid var(--border);}
.results li:first-child{border-top:0;}
.results a{display:flex;justify-content:space-between;gap:var(--s-4);padding:10px 14px;
  text-decoration:none;color:var(--text);background:var(--surface-panel);}
.results a:hover,.results a:focus{background:var(--accent-tint);}
.results .lvl{font:var(--fs-micro)/1 var(--font-mono);text-transform:uppercase;
  letter-spacing:.08em;color:var(--text-muted);align-self:center;}
.results .noresult,.results .searching{padding:10px 14px;font-size:var(--fs-sm);
  color:var(--text-muted);background:var(--surface-panel);}
.searchnote{font-size:var(--fs-sm);color:var(--text-muted);margin-top:var(--s-4);}

/* ---- data tables (coverage, changes, methodology sources) ---------------- */
table.dt{width:100%;border-collapse:collapse;font-size:var(--fs-sm);margin-top:var(--s-4);}
table.dt th,table.dt td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border);
  vertical-align:top;}
table.dt th{font:var(--fs-label)/1.2 var(--font-sans);text-transform:uppercase;
  letter-spacing:.05em;color:var(--text-muted);border-bottom:1px solid var(--text-dim);}
table.dt td.n,table.dt th.n{text-align:right;font-family:var(--font-mono);}
table.dt tr:hover td{background:var(--surface-panel);}
.badge{display:inline-block;font:var(--fs-micro)/1.4 var(--font-mono);text-transform:uppercase;
  letter-spacing:.06em;padding:2px 7px;border-radius:999px;border:1px solid var(--border);
  color:var(--text-muted);}
.badge.full{background:var(--accent-tint);border-color:var(--accent);color:var(--text);}
.badge.partial{color:var(--text-muted);}
.badge.pass{background:var(--accent-tint);border-color:var(--accent);color:var(--text);}

/* ---- map ----------------------------------------------------------------- */
#map{width:100%;height:520px;border:1px solid var(--border);border-radius:var(--radius,4px);
  margin-top:var(--s-4);background:var(--surface-base);}
@media (max-width:520px){#map{height:380px;}}
.toggles{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:var(--s-4);}
.toggle{font:var(--fs-micro)/1 var(--font-sans);text-transform:uppercase;letter-spacing:.06em;
  border:1px solid var(--border);background:var(--surface-panel);color:var(--text-muted);
  border-radius:999px;padding:5px 11px;cursor:pointer;}
.toggle[aria-pressed=true]{background:var(--accent-tint);border-color:var(--accent);color:var(--text);}
.legend{display:flex;flex-wrap:wrap;gap:var(--s-3) var(--s-5);margin-top:var(--s-4);
  font-size:var(--fs-micro);color:var(--text-muted);}
.legend .item{display:flex;align-items:center;gap:6px;}
.legend .sw{width:14px;height:4px;border-radius:2px;display:inline-block;}
.maplibregl-popup-content{background:var(--surface-panel);color:var(--text);
  border:1px solid var(--border);font:var(--fs-sm)/1.4 var(--font-sans);border-radius:var(--radius,4px);}
.maplibregl-popup-content .pt{font-size:var(--fs-micro);color:var(--text-muted);text-transform:uppercase;
  letter-spacing:.06em;}
.maplibregl-popup-content .ps{display:block;margin-top:6px;font-size:var(--fs-micro);color:var(--text-muted);}
.mapnote{font-size:var(--fs-sm);color:var(--text-muted);margin-top:var(--s-3);}

/* ---- generic explain line + prose --------------------------------------- */
.explain{font-size:var(--fs-sm);color:var(--text-muted);margin:2px 0 0;}
.prose h2{font:var(--fs-h2)/1.2 var(--font-sans);margin-top:var(--s-6);}
.prose h3{font:var(--fs-h3)/1.3 var(--font-sans);margin-top:var(--s-5);}
.prose p{font-size:var(--fs-body);line-height:1.55;margin-top:var(--s-3);}
.prose ul{font-size:var(--fs-sm);line-height:1.5;margin-top:var(--s-3);padding-left:1.2em;}
.disclaimer{border-left:3px solid var(--accent);padding:var(--s-3) var(--s-4);margin-top:var(--s-4);
  background:var(--surface-panel);font-size:var(--fs-sm);color:var(--text-muted);}
.covgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--s-4);
  margin-top:var(--s-5);}
.stat{display:flex;flex-direction:column;gap:2px;padding:var(--s-4);border:1px solid var(--border);
  border-radius:var(--radius,4px);background:var(--surface-panel);}
.stat .v{font:var(--fs-h1)/1 var(--font-mono);color:var(--text);}
.stat .k{font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);}

/* ---- browse lists (Places, Watch) + rung title links (F3) ---------------- */
.placelist{list-style:none;padding-left:0;margin-top:var(--s-3);}
.placelist li{padding:3px 0;font-size:var(--fs-sm);}
.placelist.cols{columns:2;column-gap:var(--s-6);}
@media(min-width:800px){.placelist.cols{columns:3;}}
.prose h2 .cnt{font:var(--fs-label)/1 var(--font-mono);color:var(--text-muted);
  text-transform:none;letter-spacing:0;margin-left:8px;}
.rung-link{color:var(--accent);text-decoration:none;}
.rung-link:hover{text-decoration:underline;}
.map-fallback{padding:var(--s-6) var(--s-4);text-align:center;color:var(--text-muted);
  border:1px dashed var(--border);border-radius:var(--radius,4px);background:var(--surface-panel);}
