/* ============================================================
   VERA — NYC rental intelligence. Warm black ground, parchment ink,
   signal green for what's alive, brass for what's curated,
   clay for honesty. Serif speaks; mono measures; sans reads.
   ============================================================ */

@font-face {
  font-family: "IBM Plex Sans";
  src: url("../fonts/ibm-plex-sans-var.woff2") format("woff2-variations");
  font-weight: 100 700;
  font-display: swap;
}
@font-face {
  font-family: "IBM Plex Mono";
  src: url("../fonts/ibm-plex-mono-400.woff2") format("woff2");
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "IBM Plex Mono";
  src: url("../fonts/ibm-plex-mono-500.woff2") format("woff2");
  font-weight: 500;
  font-display: swap;
}
@font-face {
  font-family: "IBM Plex Mono";
  src: url("../fonts/ibm-plex-mono-600.woff2") format("woff2");
  font-weight: 600;
  font-display: swap;
}
@font-face {
  font-family: "IBM Plex Serif";
  src: url("../fonts/ibm-plex-serif-latin-500-normal.woff2") format("woff2");
  font-weight: 500;
  font-display: swap;
}
@font-face {
  font-family: "IBM Plex Serif";
  src: url("../fonts/ibm-plex-serif-latin-600-normal.woff2") format("woff2");
  font-weight: 600;
  font-display: swap;
}
@font-face {
  font-family: "IBM Plex Serif";
  src: url("../fonts/ibm-plex-serif-latin-400-italic.woff2") format("woff2");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

:root {
  --bg: #0b0d0c;
  --bg2: #0e110f;
  --panel: #121614;
  --panel2: #161b18;
  --line: rgba(233, 226, 210, 0.09);
  --line2: rgba(233, 226, 210, 0.16);
  --ink: #ece4d3;
  --dim: #b3aa96;
  --mute: #8a8478;   /* 4.75:1 or better across the application surfaces — WCAG AA. */
  --green: #4cc38a;
  --green-soft: rgba(76, 195, 138, 0.14);
  --amber: #e3b567;
  --red: #e06a70;
  --blue: #7ba7d9;
  --brass: #c8a468;
  --clay: #cf7352;
  --serif: "IBM Plex Serif", Georgia, serif;
  --sans: "IBM Plex Sans", -apple-system, "Segoe UI", sans-serif;
  --mono: "IBM Plex Mono", "SF Mono", Menlo, monospace;
  /* type ramp — 12px is the absolute floor for UI text */
  --fs-floor: 12px;
  --fs-micro: 12.5px;
  --fs-cap: 13px;
  --fs-data: 13.5px;
  /* motion — strong curves, short durations; everything respects reduced-motion */
  --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
  --ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);
  --ease-drawer: cubic-bezier(0.32, 0.72, 0, 1);
  --r: 14px;
  --r-sm: 9px;
  --shadow: 0 24px 70px rgba(0, 0, 0, 0.5);
  --pad: clamp(16px, 3.4vw, 44px);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; color-scheme: dark; }
body {
  margin: 0;
  background:
    radial-gradient(1200px 500px at 80% -10%, rgba(200, 164, 104, 0.05), transparent 60%),
    radial-gradient(900px 480px at -10% 0%, rgba(76, 195, 138, 0.045), transparent 55%),
    var(--bg);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16.5px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  min-height: 100vh;
  overflow-x: clip;
}
a { color: var(--ink); }
a, button, input, select, textarea { -webkit-tap-highlight-color: rgba(76, 195, 138, 0.2); }
a:hover { color: #fff; }
button { font-family: inherit; color: inherit; cursor: pointer; touch-action: manipulation; }
.mono { font-family: var(--mono); }
:focus-visible { outline: 2px solid var(--brass); outline-offset: 2px; border-radius: 4px; }
h1, h2, h3, h4 { text-wrap: balance; scroll-margin-top: 132px; }

/* paper grain — one fixed layer, barely there */
.grain {
  position: fixed;
  inset: 0;
  z-index: 60;
  pointer-events: none;
  opacity: 0.05;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.6 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E");
}

.skip-link {
  /* Keep the box in-viewport so VERA's dynamic rail cannot bypass it in Chromium. */
  position: fixed; left: 12px; top: max(8px, env(safe-area-inset-top)); z-index: 200;
  opacity: 0; pointer-events: none;
  background: var(--brass); color: #14110a; padding: 9px 16px; border-radius: 8px;
  font-family: var(--mono); font-size: var(--fs-data); text-decoration: none;
}
.skip-link:focus { opacity: 1; pointer-events: auto; }

.shell {
  max-width: 1460px;
  margin: 0 auto;
  padding-left: max(var(--pad), env(safe-area-inset-left));
  padding-right: max(var(--pad), env(safe-area-inset-right));
}

/* ============================================================
   MASTHEAD
   ============================================================ */

.masthead {
  display: flex;
  align-items: center;
  gap: 22px;
  flex-wrap: wrap;
  padding: 20px 0 0;
  border-bottom: 1px solid var(--line);
  position: sticky;
  top: 0;
  z-index: 40;
  background: linear-gradient(rgba(11, 13, 12, 0.94), rgba(11, 13, 12, 0.88));
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
.brand { display: flex; align-items: center; gap: 13px; text-decoration: none; }
.insignia { color: var(--dim); flex: none; }
.brand__word { display: flex; flex-direction: column; gap: 1px; }
.brand__name {
  font-family: var(--serif); font-weight: 600; font-size: 27px;
  letter-spacing: 0.14em; line-height: 1; color: var(--ink);
}
.brand__tag {
  font-family: var(--mono); font-size: var(--fs-floor); letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--mute);
}
.masthead__status {
  display: flex; align-items: center; gap: 9px;
  font-size: var(--fs-cap); color: var(--mute); margin-left: auto; order: 2;
}
.masthead__status .mono { font-size: var(--fs-micro); }
.pulse { width: 8px; height: 8px; border-radius: 50%; background: var(--green); flex: none; }
.pulse.is-warn { background: var(--amber); }
.pulse.is-bad { background: var(--red); }

.mastnav__zone { position: relative; order: 3; width: 100%; margin-top: 4px; }
.mastnav {
  display: flex; gap: 2px;
  overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch;
  overscroll-behavior-inline: contain; scroll-padding-inline: 14px;
}
.mastnav::-webkit-scrollbar { display: none; }
.mastnav a {
  font-family: var(--mono); font-size: 12.5px; letter-spacing: 0.07em;
  text-transform: uppercase; text-decoration: none; color: var(--dim);
  padding: 9px 14px 12px; border-radius: 9px 9px 0 0; position: relative;
  white-space: nowrap; display: inline-flex; align-items: center; gap: 7px;
}
.mastnav a:hover { color: var(--ink); background: rgba(233, 226, 210, 0.04); }
.mastnav a.is-on { color: var(--ink); }
.mastnav a.is-on::after {
  content: ""; position: absolute; left: 12px; right: 12px; bottom: 0;
  height: 2px; background: var(--brass); border-radius: 2px;
}
/* Phone-only overflow (C2): secondary sections collapse behind More.
   Default state: the full bar shows, More stays out of the way. */
.mastnav__more {
  display: none; background: none; border: 0; cursor: pointer;
  font-family: var(--mono); font-size: 12.5px; letter-spacing: 0.07em;
  text-transform: uppercase; color: var(--dim);
  padding: 9px 14px 12px; border-radius: 9px 9px 0 0; position: relative;
  white-space: nowrap; align-items: center; gap: 7px;
}
.mastnav__more::after { content: "▾"; font-size: var(--fs-floor); }
.mastnav__more.is-on { color: var(--ink); }
.mastnav__more.is-on::before {
  content: ""; position: absolute; left: 12px; right: 12px; bottom: 0;
  height: 2px; background: var(--brass); border-radius: 2px;
}
.mastnav__sheet, .inspector__tabsheet {
  position: absolute; top: calc(100% + 6px); right: 0; z-index: 80;
  display: flex; flex-direction: column; min-width: 188px;
  background: var(--panel2); border: 1px solid var(--line2);
  border-radius: var(--r-sm); padding: 6px; box-shadow: var(--shadow);
}
.mastnav__sheet a, .inspector__tabsheet button {
  font-family: var(--mono); font-size: 12.5px; letter-spacing: 0.07em;
  text-transform: uppercase; text-decoration: none; text-align: left;
  color: var(--dim); background: none; border: 0; cursor: pointer;
  padding: 11px 14px; border-radius: 7px; white-space: nowrap;
}
.mastnav__sheet a:hover, .inspector__tabsheet button:hover { color: var(--ink); background: rgba(233, 226, 210, 0.05); }
.mastnav__sheet a.is-on, .inspector__tabsheet button.is-on { color: var(--brass); }
@media (max-width: 760px) {
  .mastnav a.mastnav__2nd { display: none; }
  .mastnav__more { display: inline-flex; }
  .inspector__tabs [data-tab="money"], .inspector__tabs [data-tab="owner"],
  .inspector__tabs [data-tab="score"], .inspector__tabs [data-tab="visit"] { display: none; }
  /* outranks the base .inspector__tabmore { display: none } declared later */
  .inspector__tabzone .inspector__tabmore { display: inline-block; }
}
.nv__badge {
  font-family: var(--mono); font-size: var(--fs-floor); background: var(--green);
  color: #08110c; border-radius: 9px; padding: 1px 6px; font-weight: 600;
}

/* ============================================================
   FILTER DECK — travels across Market, Browse, Atlas
   ============================================================ */

.filters {
  display: flex; flex-wrap: wrap; gap: 8px 18px; align-items: center;
  padding: 13px 0; border-bottom: 1px solid var(--line);
}
.filters__sheethead { display: none; }
.filters__group { display: flex; align-items: center; gap: 5px; flex-wrap: wrap; min-width: 0; }
.filters__label {
  font-family: var(--mono); font-size: var(--fs-floor); letter-spacing: 0.13em;
  text-transform: uppercase; color: var(--mute); margin-right: 3px;
}
.filters button, .pills button {
  background: transparent; border: 1px solid var(--line); border-radius: 999px;
  color: var(--dim); font-size: 12.5px; padding: 6px 13px; min-height: 32px;
  transition: border-color 0.15s, color 0.15s, background 0.15s;
}
.filters button:hover, .pills button:hover { border-color: var(--line2); color: var(--ink); }
.filters button.is-on, .pills button.is-on {
  background: var(--green-soft); border-color: rgba(76, 195, 138, 0.5); color: var(--green);
}
.filters__group--hoods { flex: 1 1 260px; }
.filters__hoods { display: flex; gap: 5px; overflow-x: auto; scrollbar-width: none; flex-wrap: nowrap; min-width: 0; overscroll-behavior-inline: contain; }
.filters__hoods::-webkit-scrollbar { display: none; }
.filters__hoods button { flex: none; }
.dimcount { opacity: 0.55; font-family: var(--mono); font-size: var(--fs-micro); }
.filters__clear { border-color: rgba(224, 106, 112, 0.4) !important; color: var(--red) !important; }
.filters__overflow-cue { display: none; }

/* ============================================================
   PAGE CHROME
   ============================================================ */

.main { min-height: 62vh; padding-bottom: 70px; }
.page { padding-top: 8px; }

.kicker {
  font-family: var(--mono); font-size: var(--fs-micro); letter-spacing: 0.19em;
  text-transform: uppercase; color: var(--brass); margin: 0 0 10px;
}
.pagehead { padding: 34px 0 8px; max-width: 900px; }
.pagehead__title {
  font-family: var(--serif); font-weight: 600; margin: 0;
  font-size: clamp(30px, 4.6vw, 52px); line-height: 1.06; letter-spacing: -0.008em;
}
.pagehead__lede { color: var(--dim); font-size: 16.5px; max-width: 68ch; margin: 14px 0 0; }

.panel {
  background: var(--panel); border: 1px solid var(--line); border-radius: var(--r);
  padding: 18px 20px; min-width: 0;
}
.panel__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.panel__title { font-family: var(--sans); font-weight: 600; font-size: 14.5px; margin: 0; }
.panel__hint { font-family: var(--mono); font-size: var(--fs-micro); color: var(--mute); margin: 0; white-space: nowrap; }

.grid { display: grid; gap: 14px; margin-top: 14px; min-width: 0; }
.grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.lane__empty { color: var(--mute); font-size: 13.5px; padding: 14px 4px; }
.notice {
  background: rgba(227, 181, 103, 0.08); border: 1px solid rgba(227, 181, 103, 0.3);
  color: var(--amber); border-radius: var(--r-sm); padding: 10px 14px; font-size: var(--fs-data);
}

/* ============================================================
   TODAY — THE DROP
   ============================================================ */

.drophead { padding: 44px 0 26px; max-width: 980px; }
.drophead__title {
  font-family: var(--serif); font-weight: 600; margin: 0;
  font-size: clamp(38px, 6.4vw, 74px); line-height: 1.02; letter-spacing: -0.01em;
}
.drophead__lede { font-size: clamp(16.5px, 2vw, 19px); color: var(--dim); max-width: 62ch; margin: 18px 0 0; }
.drophead__lede b { color: var(--ink); font-family: var(--mono); font-weight: 600; }
.drophead__trust { font-size: var(--fs-data); color: var(--mute); margin: 12px 0 0; max-width: 70ch; }
.drophead__trust a { color: var(--dim); }
.drophead__next {
  font-family: var(--mono); font-size: var(--fs-cap); letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--mute); margin: 18px 0 0;
  display: flex; align-items: center; gap: 9px;
}
.drophead__next .mono { color: var(--green); font-size: 14px; letter-spacing: 0.06em; }

/* D4 — the quiet provenance diff; reports the past, never pressures */
.drophead__since {
  font-family: var(--mono); font-size: var(--fs-cap); letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--green); margin: 10px 0 0;
  display: flex; align-items: center; gap: 9px;
}
.drophead__since::before { content: "●"; font-size: 8px; }

.dropgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.dropcard { min-width: 0; }
.dropcard__hit {
  display: block; width: 100%; text-align: left; background: var(--panel);
  border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; padding: 0;
  transition: transform 0.22s cubic-bezier(0.2, 0.7, 0.3, 1), border-color 0.22s, box-shadow 0.22s;
}
.dropcard__hit:hover {
  transform: translateY(-3px);
  border-color: rgba(200, 164, 104, 0.45);
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.42);
}
.dropcard__open {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  width: auto; min-height: 44px; margin-top: 14px; padding: 9px 13px;
  border: 1px solid var(--line2); border-radius: 9px; background: var(--panel2);
  color: var(--ink); font: 600 12px/1.2 var(--mono); text-align: left;
}
.dropcard__open:hover { border-color: rgba(76, 195, 138, 0.58); color: var(--green); }
.dropcard__media { display: block; position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: #141a20; }
.dropcard__media .port { position: absolute; inset: 0; width: 100%; height: 100%; }
.dropcard__media .shot { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.shot__n {
  position: absolute; right: 10px; bottom: 10px; z-index: 2;
  font-family: var(--mono); font-size: var(--fs-micro); color: var(--ink);
  background: rgba(10, 12, 11, 0.72); border: 1px solid var(--line);
  padding: 3px 8px; border-radius: 6px; backdrop-filter: blur(6px);
}
.dropcard__rent {
  position: absolute; left: 12px; bottom: 10px; z-index: 2;
  font-family: var(--mono); font-weight: 600; font-size: 24px; color: #fff;
  background: rgba(10, 12, 11, 0.72); border: 1px solid var(--line);
  padding: 5px 12px; border-radius: 9px; backdrop-filter: blur(6px);
}
.dropcard__rent small { font-size: var(--fs-micro); color: var(--dim); font-weight: 400; }
.dropcard__body { display: block; padding: 18px 20px 20px; position: relative; }
.dropcard__no {
  position: absolute; top: 20px; right: 20px;
  font-family: var(--mono); font-size: var(--fs-micro); color: var(--brass); letter-spacing: 0.12em;
}
.dropcard__name {
  font-family: var(--serif); font-weight: 600; font-size: clamp(21px, 2.4vw, 27px);
  line-height: 1.12; margin: 0 44px 7px 0; letter-spacing: -0.005em;
}
.dropcard__where { font-family: var(--mono); font-size: var(--fs-micro); color: var(--mute); margin: 0 0 12px; display: flex; align-items: center; gap: 5px; flex-wrap: wrap; }
.dropcard__why { font-size: 14.5px; color: var(--dim); margin: 0 0 8px; }
.dropcard__flaw { font-size: 13.5px; color: var(--clay); margin: 0 0 12px; font-style: italic; font-family: var(--serif); }
.dropcard__chips { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 12px; }
.prov { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; font-family: var(--mono); font-size: var(--fs-micro); color: var(--mute); border-top: 1px solid var(--line); padding-top: 11px; }
.prov__dot { opacity: 0.5; }

/* Listing evidence renders complete on first paint. */

.dropempty { text-align: center; padding: 60px 20px; max-width: 560px; margin: 0 auto; }
.dropempty__mark { color: var(--dim); }
.dropempty h2 { font-family: var(--serif); font-size: 28px; margin: 18px 0 8px; }
.dropempty p { color: var(--dim); }

.bubble { margin-top: 46px; border-top: 1px solid var(--line); padding-top: 26px; }
.bubble__title { font-family: var(--serif); font-weight: 600; font-size: 24px; margin: 0 0 6px; }
.bubble__hint { color: var(--mute); font-size: 13.5px; margin: 0 0 16px; max-width: 70ch; }
.bubblegrid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.bubcard {
  text-align: left; background: var(--panel); border: 1px solid var(--line);
  border-radius: var(--r-sm); overflow: hidden; padding: 0; min-width: 0;
  transition: border-color 0.18s, transform 0.18s;
}
.bubcard:hover { border-color: var(--line2); transform: translateY(-2px); }
.bubcard__port { display: block; position: relative; aspect-ratio: 300 / 132; }
.bubcard__port .port, .bubcard__port .shot { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.bubcard__body { display: flex; flex-direction: column; gap: 4px; padding: 12px 13px 13px; font-size: 12.5px; color: var(--dim); }
.bubcard__body b { font-family: var(--serif); font-size: 15px; color: var(--ink); line-height: 1.2; }
.bubcard__why { color: var(--clay); font-family: var(--mono); font-size: var(--fs-micro); text-transform: uppercase; letter-spacing: 0.08em; }

.wire { margin-top: 46px; }
.wire__card {
  border: 1px solid rgba(76, 195, 138, 0.25);
  background: linear-gradient(140deg, rgba(76, 195, 138, 0.07), transparent 55%), var(--panel);
  border-radius: var(--r); padding: 26px 28px; max-width: 720px;
}
.wire__card h2 { font-family: var(--serif); font-size: 23px; margin: 0 0 8px; }
.wire__card p { color: var(--dim); margin: 0 0 6px; max-width: 62ch; }
.wire__fine { font-size: 12.5px; color: var(--mute); }

/* ============================================================
   TAGS, KPIs, TILES, CHARTS
   ============================================================ */

.tag {
  font-family: var(--mono); font-size: var(--fs-micro); letter-spacing: 0.05em;
  border: 1px solid var(--line); color: var(--dim); border-radius: 5px;
  padding: 2.5px 7px; display: inline-flex; align-items: center; gap: 5px; white-space: nowrap;
}
.tag--green { color: var(--green); border-color: rgba(76, 195, 138, 0.4); background: rgba(76, 195, 138, 0.07); }
.tag--amber { color: var(--amber); border-color: rgba(227, 181, 103, 0.4); background: rgba(227, 181, 103, 0.06); }
.tag--red { color: var(--red); border-color: rgba(224, 106, 112, 0.4); background: rgba(224, 106, 112, 0.06); }
.tag--blue { color: var(--blue); border-color: rgba(123, 167, 217, 0.4); background: rgba(123, 167, 217, 0.07); }
.bul {
  display: inline-flex; align-items: center; justify-content: center;
  width: 15px; height: 15px; border-radius: 50%; color: #fff;
  font-family: var(--mono); font-size: var(--fs-floor); font-weight: 600; font-style: normal;
}

.kpis { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; margin-top: 20px; }
.kpi { background: var(--panel); border: 1px solid var(--line); border-radius: var(--r); padding: 16px 17px 14px; min-width: 0; }
.kpi--click { cursor: pointer; transition: border-color 0.16s, transform 0.16s; }
.kpi--click:hover { border-color: var(--line2); transform: translateY(-2px); }
.kpi__label { font-family: var(--mono); font-size: var(--fs-floor); letter-spacing: 0.13em; text-transform: uppercase; color: var(--mute); margin: 0 0 7px; }
.kpi__value { font-family: var(--mono); font-weight: 600; font-size: clamp(30px, 3.2vw, 44px); line-height: 1; margin: 0; letter-spacing: -0.02em; }
.kpi__value small { font-size: 14px; color: var(--mute); font-weight: 400; }
.kpi__value--word { font-family: var(--serif); font-size: 26px; }
.kpi__note { font-size: var(--fs-cap); color: var(--mute); margin: 7px 0 0; }
.kpi--good .kpi__value { color: var(--green); }
.kpi--warn .kpi__value { color: var(--amber); }
.kpi--bad .kpi__value { color: var(--red); }

.brackets { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 14px; }
.brtile {
  text-align: left; background: var(--panel); border: 1px solid var(--line);
  border-radius: var(--r); padding: 18px 20px; min-width: 0;
  transition: border-color 0.16s, transform 0.16s;
}
.brtile:hover { border-color: var(--line2); transform: translateY(-2px); }
.brtile.is-on { border-color: rgba(76, 195, 138, 0.5); background: linear-gradient(160deg, rgba(76, 195, 138, 0.08), transparent 60%), var(--panel); }
.brtile__label { font-family: var(--mono); font-size: var(--fs-cap); letter-spacing: 0.09em; color: var(--brass); display: block; margin-bottom: 8px; }
.brtile__n { font-family: var(--mono); font-weight: 600; font-size: clamp(38px, 4.4vw, 58px); line-height: 1; display: block; letter-spacing: -0.02em; }
.brtile__meta { font-size: var(--fs-micro); color: var(--mute); display: block; margin-top: 8px; }

.chart svg { width: 100%; height: auto; display: block; }
.is-entered .chart path[stroke] { stroke-dasharray: none; stroke-dashoffset: 0; }

.strip { display: flex; flex-wrap: wrap; gap: 6px; }
.srcstrip { margin-top: 12px; }
.chip {
  font-family: var(--mono); font-size: var(--fs-micro); color: var(--dim);
  border: 1px solid var(--line); border-radius: 999px; padding: 3px 10px 3px 7px;
  display: inline-flex; align-items: center; gap: 6px;
}
.chip i { width: 7px; height: 7px; border-radius: 50%; background: var(--mute); }
.chip.is-ok i { background: var(--green); }
.chip.is-warn i { background: var(--amber); }
.chip.is-bad i { background: var(--red); }
.chip.is-off { opacity: 0.5; }

.hist { display: flex; align-items: flex-end; gap: 4px; height: 150px; overflow: hidden; min-width: 0; }
.hist__col { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 6px; height: 100%; justify-content: flex-end; }
.hist__bar { width: 100%; max-width: 38px; background: linear-gradient(to top, rgba(76, 195, 138, 0.5), rgba(76, 195, 138, 0.14)); border-radius: 4px 4px 0 0; }
.hist__label { font-family: var(--mono); font-size: var(--fs-floor); color: var(--mute); white-space: nowrap; overflow: hidden; max-width: 100%; text-overflow: ellipsis; }

.bars { display: flex; flex-direction: column; gap: 7px; }
.bar {
  display: grid; grid-template-columns: 128px minmax(0, 1fr) auto; gap: 10px; align-items: center;
  background: none; border: 1px solid transparent; border-radius: 8px; padding: 5px 8px; text-align: left;
}
.bar:hover { border-color: var(--line); }
.bar.is-on { border-color: rgba(76, 195, 138, 0.45); background: var(--green-soft); }
.bar__name { font-size: 12.5px; color: var(--dim); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bar__track { height: 8px; background: rgba(233, 226, 210, 0.06); border-radius: 4px; overflow: hidden; display: block; }
.bar__fill { display: block; height: 100%; background: linear-gradient(90deg, rgba(76, 195, 138, 0.75), rgba(76, 195, 138, 0.3)); border-radius: 4px; }
.bar__val { font-family: var(--mono); font-size: var(--fs-cap); color: var(--mute); white-space: nowrap; }

.feed { display: flex; flex-direction: column; gap: 6px; }
.feed__row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 6px 4px; border-bottom: 1px solid var(--line); min-width: 0; }
.feed__row:last-child { border-bottom: 0; }
.feed__badge { font-family: var(--mono); font-size: var(--fs-floor); letter-spacing: 0.08em; padding: 2px 7px; border-radius: 4px; flex: none; border: 1px solid var(--line); color: var(--dim); }
.feed__badge--new { color: var(--green); border-color: rgba(76, 195, 138, 0.4); }
.feed__badge--drop { color: var(--blue); border-color: rgba(123, 167, 217, 0.4); }
.feed__badge--hike { color: var(--amber); border-color: rgba(227, 181, 103, 0.4); }
.feed__badge--gone { color: var(--mute); }
.feed__what { font-size: 12.5px; color: var(--dim); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.feed__num { font-family: var(--mono); font-size: var(--fs-cap); color: var(--dim); }

/* ============================================================
   BROWSE
   ============================================================ */

.pills { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 18px; }
.dtoolbar { display: flex; align-items: center; gap: 12px; margin: 16px 0 10px; flex-wrap: wrap; }
.dtoolbar input[type="search"] {
  flex: 1 1 260px; background: var(--panel); border: 1px solid var(--line); border-radius: 9px;
  color: var(--ink); font-family: var(--sans); font-size: 14px; padding: 10px 14px; min-height: 40px;
}
.dtoolbar input[type="search"]::placeholder { color: var(--mute); }
.dtoolbar__count { font-family: var(--mono); font-size: var(--fs-cap); color: var(--mute); white-space: nowrap; }
.dtoolbar__density { display: flex; gap: 4px; }
.dtoolbar__density button { background: none; border: 1px solid var(--line); border-radius: 7px; color: var(--mute); font-size: var(--fs-cap); padding: 6px 10px; }
.dtoolbar__density button.is-on { color: var(--ink); border-color: var(--line2); }

.tablewrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--r); background: var(--panel); -webkit-overflow-scrolling: touch; overscroll-behavior-inline: contain; scrollbar-gutter: stable; }
.dt { width: 100%; border-collapse: collapse; font-size: var(--fs-data); }
.dt thead th {
  font-family: var(--mono); font-size: var(--fs-floor); letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--mute); text-align: left; padding: 11px 12px; border-bottom: 1px solid var(--line2);
  position: sticky; top: 0; background: var(--panel2); cursor: pointer; white-space: nowrap; user-select: none;
}
.dt thead th.is-sort { color: var(--green); }
.dt thead th button {
  display: inline-flex; align-items: center; gap: 5px; min-height: 44px; margin: -11px -12px;
  padding: 11px 12px; border: 0; background: transparent; color: inherit;
  font: inherit; letter-spacing: inherit; text-transform: inherit; white-space: nowrap;
}
.dt tbody tr:hover { background: rgba(233, 226, 210, 0.03); }
.dt tbody tr.is-open { background: var(--green-soft); }
.dt tbody td { padding: 10px 12px; border-bottom: 1px solid var(--line); white-space: nowrap; }
.dt.is-compact tbody td { padding: 6px 12px; font-size: var(--fs-micro); }
.dt__empty { padding: 26px !important; color: var(--mute); white-space: normal !important; }
.browse-more { display: flex; align-items: center; justify-content: center; gap: 12px; flex-wrap: wrap; padding: 16px 0 4px; }
.browse-more p { margin: 0; color: var(--mute); font-family: var(--mono); font-size: var(--fs-micro); }
.browse-more button {
  min-height: 44px; padding: 9px 15px; border: 1px solid var(--line2); border-radius: 9px;
  background: var(--panel); color: var(--ink); font: 600 13px/1.2 var(--sans); touch-action: manipulation;
}
.browse-more button:hover { border-color: rgba(76, 195, 138, 0.58); background: var(--green-soft); }
.browse-more button:focus-visible { outline: 2px solid var(--green); outline-offset: 3px; }
.t-score { font-family: var(--mono); font-weight: 600; color: var(--ink); }
.t-title {
  display: block; min-width: 180px; max-width: 300px; min-height: 44px;
  padding: 4px 0; border: 0; background: transparent; color: var(--ink);
  text-align: left; white-space: normal; line-height: 1.3;
}
.t-title__name, .t-title__action { display: block; }
.t-title__action { margin-top: 2px; color: var(--green); font: var(--fs-floor)/1.3 var(--mono); letter-spacing: 0.04em; text-transform: uppercase; }
.t-dim { color: var(--mute); }
.t-mono { font-family: var(--mono); font-size: var(--fs-micro); }
.risk { font-family: var(--mono); font-size: var(--fs-micro); padding: 2px 7px; border-radius: 5px; }
.risk--lo { color: var(--green); background: rgba(76, 195, 138, 0.09); }
.risk--md { color: var(--amber); background: rgba(227, 181, 103, 0.09); }
.risk--hi { color: var(--red); background: rgba(224, 106, 112, 0.1); }

/* ============================================================
   ATLAS
   ============================================================ */

.maplay { display: grid; grid-template-columns: 0.72fr 0.28fr; gap: 14px; margin-top: 18px; }
.mapwrap { padding-bottom: 14px; }
.mp { width: 100%; height: auto; display: block; border-radius: var(--r-sm); }
.mp-water { fill: #0c1211; }
.mp-land { fill: #151d18; stroke: rgba(233, 226, 210, 0.07); stroke-width: 1; }
.mp-land--far { fill: #10160f; }
.mp-park { fill: #1a2b1f; }
.mp-stn { opacity: 0.85; }
.mp-hood { font-family: var(--mono); font-size: 19px; letter-spacing: 0.22em; fill: rgba(233, 226, 210, 0.22); }
.mp-tether { stroke: rgba(76, 195, 138, 0.22); stroke-width: 1.4; }
.mp-pin { cursor: pointer; }
.mp-halo { fill: rgba(76, 195, 138, 0.1); }
.mp-dot { fill: #0e1411; stroke: var(--green); stroke-width: 2.4; }
.mp-pin--warn .mp-dot { stroke: var(--amber); }
.mp-pin--warn .mp-halo { fill: rgba(227, 181, 103, 0.09); }
.mp-pin--bad .mp-dot { stroke: var(--red); }
.mp-pin--bad .mp-halo { fill: rgba(224, 106, 112, 0.09); }
.mp-rent { font-family: var(--mono); font-size: var(--fs-micro); font-weight: 600; fill: var(--ink); text-anchor: middle; pointer-events: none; }
.is-entered .mp-pin { opacity: 1; }
.mp-pin:hover .mp-dot, .mp-pin:focus-visible .mp-dot { stroke-width: 4; }
.mp-key { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 12px; }
.mp-key__i { display: inline-flex; align-items: center; gap: 7px; font-family: var(--mono); font-size: var(--fs-micro); color: var(--mute); }
.mp-swatch { width: 10px; height: 10px; border-radius: 50%; border: 2px solid var(--green); background: transparent; display: inline-block; }
.mp-swatch--warn { border-color: var(--amber); }
.mp-swatch--bad { border-color: var(--red); }
.mp-swatch--stn { border: 0; background: var(--blue); width: 8px; height: 8px; }

.walklist { display: flex; flex-direction: column; max-height: 560px; overflow-y: auto; }
.walkrow {
  display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; gap: 10px; align-items: center;
  background: none; border: 0; border-bottom: 1px solid var(--line); text-align: left; padding: 9px 4px;
}
.walkrow:hover { background: rgba(233, 226, 210, 0.03); }
.walkrow__min { font-family: var(--mono); font-weight: 600; font-size: 16px; color: var(--green); }
.walkrow__min small { font-size: var(--fs-floor); color: var(--mute); display: block; }
.walkrow__body { min-width: 0; display: flex; flex-direction: column; gap: 2px; font-size: var(--fs-micro); color: var(--mute); }
.walkrow__body b { font-size: 12.5px; color: var(--dim); font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.walkrow__rent { font-family: var(--mono); font-size: var(--fs-micro); color: var(--dim); }

/* ============================================================
   MY HUNT
   ============================================================ */

.board { display: grid; grid-template-columns: repeat(6, minmax(190px, 1fr)); gap: 10px; margin-top: 18px; overflow-x: auto; padding-bottom: 8px; }
.col { background: var(--panel); border: 1px solid var(--line); border-radius: var(--r); padding: 13px; min-width: 0; }
.col--dead { opacity: 0.62; }
.col__head { font-family: var(--mono); font-size: var(--fs-micro); letter-spacing: 0.1em; text-transform: uppercase; color: var(--dim); margin: 0; display: flex; justify-content: space-between; }
.col__hint { font-size: var(--fs-micro); color: var(--mute); margin: 2px 0 10px; }
.col__empty { color: var(--mute); font-size: var(--fs-micro); }
.ccard { border: 1px solid var(--line); border-radius: var(--r-sm); margin-bottom: 8px; overflow: hidden; background: var(--bg2); }
.ccard--gone { opacity: 0.6; }
.ccard__open { display: flex; flex-direction: column; gap: 3px; width: 100%; text-align: left; background: none; border: 0; padding: 10px 11px; font-size: var(--fs-micro); color: var(--mute); }
.ccard__open b { font-size: 12.5px; color: var(--ink); font-weight: 500; line-height: 1.25; }
.ccard__open em { color: var(--mute); font-style: italic; font-family: var(--serif); }
.ccard__gone { color: var(--red); font-family: var(--mono); font-size: var(--fs-floor); text-transform: uppercase; letter-spacing: 0.08em; }
.ccard__moves { display: flex; gap: 3px; padding: 0 8px 8px; flex-wrap: wrap; }
.ccard__moves button { background: none; border: 1px solid var(--line); border-radius: 5px; color: var(--mute); font-size: var(--fs-floor); padding: 3px 7px; }
.ccard__moves button:hover { color: var(--ink); border-color: var(--line2); }
.ccard__drop { margin-left: auto; color: var(--red) !important; }

.empty-hero { text-align: center; max-width: 520px; margin: 60px auto; }
.empty-hero__mark { color: var(--dim); }
.empty-hero h1, .empty-hero h2 { font-family: var(--serif); font-size: 28px; margin: 18px 0 8px; }
.empty-hero p { color: var(--dim); }
.empty-hero__fine { font-size: 12.5px; color: var(--mute); }

.bigbtn {
  display: inline-flex; align-items: center; justify-content: center; min-height: 44px; background: var(--green); color: #08110c; border: 0; border-radius: 10px;
  font-weight: 600; font-size: 14.5px; padding: 12px 22px; text-decoration: none;
  transition: transform 0.15s, filter 0.15s;
}
.bigbtn:hover { transform: translateY(-1px); filter: brightness(1.07); color: #08110c; }
.ghostbtn {
  display: inline-flex; align-items: center; justify-content: center; min-height: 44px; background: none; border: 1px solid var(--line2); border-radius: 10px;
  color: var(--dim); font-size: 13.5px; padding: 11px 18px; text-decoration: none;
}
.ghostbtn:hover { color: var(--ink); border-color: var(--dim); }

/* ============================================================
   FIELD MANUAL
   ============================================================ */

.tool .slider { display: block; margin: 6px 0 16px; }
.tool .slider span { display: flex; justify-content: space-between; font-size: var(--fs-data); color: var(--dim); margin-bottom: 8px; }
.tool .slider b { font-family: var(--mono); color: var(--ink); }
.tool input[type="range"] { width: 100%; accent-color: var(--green); min-height: 28px; }
.ledger { border: 1px solid var(--line); border-radius: var(--r-sm); overflow: hidden; }
.ledger__row { display: flex; justify-content: space-between; gap: 12px; padding: 10px 14px; border-bottom: 1px solid var(--line); font-size: 13.5px; color: var(--dim); }
.ledger__row:last-child { border-bottom: 0; }
.ledger__row em { color: var(--mute); font-style: normal; font-size: var(--fs-micro); display: block; }
.ledger__row b { font-family: var(--mono); color: var(--ink); }
.ledger__row--zero b { color: var(--green); }
.ledger__row--total { background: rgba(233, 226, 210, 0.04); }
.ledger__row--total b { font-size: 16px; }
.verdict { border-radius: var(--r-sm); padding: 12px 14px; font-size: 13.5px; }
.verdict--good { background: rgba(76, 195, 138, 0.09); color: var(--green); }
.verdict--warn { background: rgba(227, 181, 103, 0.08); color: var(--amber); }

.manual-sec { margin-top: 42px; }
.manual-sec__title { font-family: var(--serif); font-weight: 600; font-size: 27px; margin: 0 0 6px; }
.manual-sec__lede { color: var(--mute); font-size: 14px; max-width: 70ch; margin: 0 0 16px; }
.telldeck { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.tell {
  text-align: left; background: var(--panel); border: 1px solid var(--line); border-radius: var(--r-sm);
  padding: 14px 16px; display: block; transition: border-color 0.15s; width: 100%;
}
.tell:hover { border-color: var(--line2); }
.tell.is-open { border-color: rgba(200, 164, 104, 0.4); }
.tell b { font-family: var(--serif); font-size: 16.5px; font-weight: 600; display: block; }
.tell__body { display: block; color: var(--dim); font-size: 13.5px; margin-top: 8px; }
.cgroup { margin-top: 18px; }
.cgroup h3 { font-family: var(--mono); font-size: var(--fs-micro); letter-spacing: 0.13em; text-transform: uppercase; color: var(--brass); margin: 0 0 8px; }
.cgroup ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.cgroup li { border: 1px solid var(--line); border-radius: var(--r-sm); padding: 11px 13px; font-size: var(--fs-data); background: var(--panel); }
.cgroup li b { display: block; font-weight: 600; }
.cgroup li em { color: var(--mute); font-style: normal; font-size: var(--fs-micro); }
.vtools { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.vtool { border: 1px solid var(--line); border-radius: var(--r-sm); padding: 13px 15px; text-decoration: none; background: var(--panel); transition: border-color 0.15s; display: block; }
.vtool:hover { border-color: rgba(200, 164, 104, 0.45); }
.vtool b { display: block; font-size: 13.5px; margin-bottom: 4px; color: var(--brass); }
.vtool span { font-size: var(--fs-micro); color: var(--mute); line-height: 1.45; display: block; }

/* ============================================================
   SYSTEM
   ============================================================ */

.stages { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; margin-top: 20px; }
.stage { background: var(--panel); border: 1px solid var(--line); border-radius: var(--r-sm); padding: 12px 13px; min-width: 0; }
.stage__name { font-family: var(--mono); font-size: var(--fs-micro); letter-spacing: 0.09em; text-transform: uppercase; color: var(--dim); margin: 0 0 7px; display: flex; align-items: center; gap: 7px; }
.stage__name i { width: 7px; height: 7px; border-radius: 50%; background: var(--mute); flex: none; }
.stage.is-ok .stage__name i { background: var(--green); }
.stage.is-run .stage__name i { background: var(--blue); }
.stage.is-bad .stage__name i { background: var(--red); }
.stage__nums { font-family: var(--mono); font-size: 17px; margin: 0; color: var(--ink); }
.stage__nums small { font-size: var(--fs-floor); color: var(--mute); }
.srcgrid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.src { display: flex; align-items: center; gap: 9px; border: 1px solid var(--line); border-radius: var(--r-sm); padding: 9px 12px; font-size: var(--fs-micro); color: var(--mute); min-width: 0; }
.src i { width: 8px; height: 8px; border-radius: 50%; background: var(--mute); flex: none; }
.src.is-ok i { background: var(--green); }
.src.is-warn i { background: var(--amber); }
.src.is-bad i { background: var(--red); }
.src.is-off i { background: transparent; border: 1px solid var(--mute); opacity: 0.72; }
.src b { color: var(--dim); font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.src span { margin-left: auto; font-family: var(--mono); font-size: var(--fs-micro); white-space: nowrap; }
.ethos { max-width: 760px; margin-top: 40px; border-top: 1px solid var(--line); padding-top: 26px; }
.ethos h2 { font-family: var(--serif); font-size: 26px; margin: 0 0 10px; }
.ethos p { color: var(--dim); }
.ethos__credit { font-size: 12.5px; color: var(--mute); }

/* ============================================================
   THE LEDGER (inspector)
   ============================================================ */

.scrim { position: fixed; inset: 0; background: rgba(5, 7, 6, 0.62); z-index: 80; backdrop-filter: blur(3px); }
.inspector {
  position: fixed; top: 0; right: 0; bottom: 0; width: min(560px, 100vw);
  background: var(--bg2); border-left: 1px solid var(--line2); z-index: 90;
  display: flex; flex-direction: column; box-shadow: var(--shadow);
  transform: translateX(24px); opacity: 0; transition: transform 0.26s cubic-bezier(0.2, 0.7, 0.3, 1), opacity 0.26s;
  overscroll-behavior: contain;
}
.inspector.is-open { transform: translateX(0); opacity: 1; }
.inspector__head { display: flex; justify-content: space-between; gap: 14px; padding: max(22px, env(safe-area-inset-top)) 24px 14px; border-bottom: 1px solid var(--line); }
.inspector__kicker { font-family: var(--mono); font-size: var(--fs-floor); letter-spacing: 0.14em; color: var(--brass); margin: 0 0 6px; }
.inspector__title { font-family: var(--serif); font-weight: 600; font-size: 24px; line-height: 1.12; margin: 0; }
.inspector__sub { font-size: 12.5px; color: var(--mute); margin: 7px 0 0; }
.inspector__close { background: none; border: 1px solid var(--line); border-radius: 9px; color: var(--dim); font-size: 21px; width: 44px; height: 44px; flex: none; line-height: 1; }
.inspector__close:hover { color: var(--ink); border-color: var(--line2); }
.inspector__actions { display: flex; gap: 8px; padding: 13px 24px; border-bottom: 1px solid var(--line); flex-wrap: wrap; align-items: center; }
.stagepick { display: flex; gap: 8px; flex-wrap: wrap; }
.stagepick button { display: inline-flex; align-items: center; min-height: 44px; background: none; border: 1px solid var(--line); border-radius: 999px; color: var(--mute); font-size: var(--fs-cap); padding: 0 14px; }
.stagepick button.is-on { color: var(--green); border-color: rgba(76, 195, 138, 0.5); background: var(--green-soft); }
.inspector__tabzone { position: relative; }
.inspector__tabs { display: flex; gap: 2px; padding: 10px 24px 0; border-bottom: 1px solid var(--line); overflow-x: auto; scrollbar-width: none; overscroll-behavior-inline: contain; scroll-padding-inline: 24px; }
.inspector__tabs::-webkit-scrollbar { display: none; }
/* Phone-only overflow (C3): Money/Owner/Score/Visit collapse behind More. */
.inspector__tabmore {
  display: none; background: none; border: 0; color: var(--mute); cursor: pointer;
  font-family: var(--mono); font-size: var(--fs-cap); letter-spacing: 0.09em; text-transform: uppercase;
  padding: 8px 10px 10px; position: relative; white-space: nowrap;
}
.inspector__tabmore::after { content: "▾"; font-size: var(--fs-floor); margin-left: 5px; }
.inspector__tabmore.is-on { color: var(--ink); }
.inspector__tabmore.is-on::before { content: ""; position: absolute; left: 8px; right: 8px; bottom: 0; height: 2px; background: var(--brass); border-radius: 2px; }
.inspector__tabs button {
  background: none; border: 0; color: var(--mute); font-family: var(--mono); font-size: var(--fs-cap);
  letter-spacing: 0.05em; text-transform: uppercase; padding: 8px 11px 11px; min-height: 44px; position: relative; white-space: nowrap;
}
.inspector__tabs button:hover { color: var(--dim); }
.inspector__tabs button.is-on { color: var(--ink); }
.inspector__tabs button.is-on::after { content: ""; position: absolute; left: 8px; right: 8px; bottom: 0; height: 2px; background: var(--brass); border-radius: 2px; }
.inspector__body { flex: 1; min-height: 0; overflow-y: auto; padding: 20px 24px max(34px, env(safe-area-inset-bottom)); scrollbar-gutter: stable; overscroll-behavior-y: contain; }
.insp-port { display: block; margin-bottom: 18px; }
.insp-port__frame { display: block; position: relative; aspect-ratio: 16 / 9; border-radius: var(--r-sm); overflow: hidden; }
.insp-port__frame .port, .insp-port__frame .shot { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.insp-port__cap { display: block; font-size: var(--fs-micro); color: var(--mute); margin-top: 8px; line-height: 1.45; }
.insp-sec { margin-bottom: 22px; }
.insp-sec h3 { font-family: var(--mono); font-size: var(--fs-micro); letter-spacing: 0.13em; text-transform: uppercase; color: var(--brass); margin: 0 0 9px; }
.insp-sec p { margin: 0 0 8px; font-size: 14px; color: var(--dim); }
.insp-sec ul { margin: 0; padding-left: 18px; font-size: 13.5px; color: var(--dim); }
.insp-sec li { margin-bottom: 6px; }
ul.good li::marker { color: var(--green); }
ul.bad li::marker { color: var(--red); }
/* Two-tier forensics (David's ruling 2026-08-05): fraud evidence gets the
   red section head; laziness-shaped signals get a quiet sticker. */
.insp-sec--flag h3 { color: var(--red); }
ul.soft li::marker { color: var(--mute); }
.insp-save { color: var(--green) !important; }
.insp-fine { font-size: var(--fs-micro) !important; color: var(--mute) !important; }
.insp-link { display: inline-block; font-size: 13.5px; color: var(--brass); margin-top: 4px; }
.kv { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 7px 16px; margin: 0 0 20px; font-size: var(--fs-data); }
.kv dt { color: var(--mute); font-family: var(--mono); font-size: var(--fs-micro); text-transform: uppercase; letter-spacing: 0.07em; padding-top: 2px; }
.kv dd { margin: 0; color: var(--dim); overflow-wrap: anywhere; }
.kv dd .warn { color: var(--amber); font-weight: 600; }
.chain { margin: 0 0 14px; padding-left: 20px; font-size: 13.5px; color: var(--dim); }
.chain li { margin-bottom: 9px; }
.chain b { color: var(--brass); font-family: var(--mono); font-size: var(--fs-micro); text-transform: uppercase; letter-spacing: 0.06em; }
.chain li::marker { color: var(--brass); font-family: var(--mono); }
.prot { border: 1px solid var(--line); border-radius: var(--r-sm); padding: 12px 14px; margin-bottom: 8px; display: flex; flex-direction: column; gap: 3px; position: relative; }
.prot b { font-size: 14px; padding-right: 88px; }
.prot__state { position: absolute; top: 12px; right: 12px; font-family: var(--mono); font-size: var(--fs-floor); letter-spacing: 0.09em; text-transform: uppercase; padding: 2px 8px; border-radius: 5px; border: 1px solid var(--line); color: var(--mute); }
.prot.is-good .prot__state { color: var(--green); border-color: rgba(76, 195, 138, 0.4); }
.prot.is-bad .prot__state { color: var(--red); border-color: rgba(224, 106, 112, 0.4); }
.prot__gives { font-size: 12.5px; color: var(--dim); }
.prot__why { font-size: var(--fs-micro); color: var(--mute); margin-top: 3px; }
.scorebar { display: grid; grid-template-columns: 128px minmax(0, 1fr) 40px; gap: 10px; align-items: center; margin-bottom: 7px; font-size: var(--fs-micro); color: var(--dim); }
.scorebar__track { height: 7px; background: rgba(233, 226, 210, 0.06); border-radius: 4px; overflow: hidden; display: block; }
.scorebar__fill { display: block; height: 100%; background: linear-gradient(90deg, var(--green), rgba(76, 195, 138, 0.4)); animation: vera-fillup 0.8s cubic-bezier(0.22, 1, 0.36, 1) both; }
.scorebar__num { font-family: var(--mono); font-size: var(--fs-cap); text-align: right; }

/* Score instruments — the number is real text; the ring/bar is paint that
 * sweeps to the real value on insertion. Reduced-motion block below kills
 * the sweep, leaving the settled final state. */
@keyframes vera-fillup { from { width: 0; } }
@keyframes vera-ringdraw { from { stroke-dashoffset: var(--ring-c); } }
.scorering { position: relative; display: inline-grid; place-items: center; width: 38px; height: 38px; flex: none; }
.scorering svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.scorering__track { fill: none; stroke: rgba(233, 226, 210, 0.1); stroke-width: 3; }
.scorering__arc { fill: none; stroke: var(--green); stroke-width: 3; stroke-linecap: round; animation: vera-ringdraw 0.9s cubic-bezier(0.22, 1, 0.36, 1) both; }
.scorering b { position: relative; font-family: var(--mono); font-size: var(--fs-micro); font-weight: 600; color: var(--ink); }
.t-score { display: inline-flex; align-items: center; gap: 8px; }
.t-score b { font-weight: 600; }
.t-score__track { display: block; width: 40px; height: 4px; background: rgba(233, 226, 210, 0.08); border-radius: 2px; overflow: hidden; }
.t-score__fill { display: block; height: 100%; background: var(--green); border-radius: 2px; animation: vera-fillup 0.8s cubic-bezier(0.22, 1, 0.36, 1) both; }

/* Price moves — the direction glyph carries the same meaning as the words
 * beside it (drop/hike, down/up), never color alone. */
.t-delta { font-family: var(--mono); font-size: var(--fs-micro); font-weight: 600; margin-left: 6px; }
.t-delta--down { color: var(--green); }
.t-delta--up { color: var(--amber); }

/* Deal meter — center tick is the median, marker is THIS rent. Marker slides
 * out from center on insertion; the label repeats the truth in words. */
@keyframes vera-deal { from { transform: translateX(0); } }
.deal { display: inline-flex; align-items: center; gap: 8px; }
.deal__scale { position: relative; display: block; width: 90px; height: 4px; background: rgba(233, 226, 210, 0.08); border-radius: 2px; }
.deal__median { position: absolute; left: 50%; top: -2px; bottom: -2px; width: 2px; margin-left: -1px; background: rgba(233, 226, 210, 0.35); border-radius: 1px; }
.deal__marker { position: absolute; left: 50%; top: 50%; width: 8px; height: 8px; margin: -4px 0 0 -4px; border-radius: 50%; animation: vera-deal 0.9s cubic-bezier(0.22, 1, 0.36, 1) both; }
.deal--under .deal__marker { background: var(--green); box-shadow: 0 0 8px rgba(76, 195, 138, 0.5); }
.deal--over .deal__marker { background: var(--amber); box-shadow: 0 0 8px rgba(224, 172, 92, 0.5); }
.deal__label { font-size: var(--fs-cap); color: var(--dim); }

/* Price memory — the asking-price path draws itself on tab open
 * (pathLength=100 in the markup normalizes the dash). */
@keyframes vera-pricedraw { from { stroke-dashoffset: 100; } }
@keyframes vera-dotin { from { opacity: 0; } }
.pricepath polyline { stroke-dasharray: 100; animation: vera-pricedraw 1s cubic-bezier(0.22, 1, 0.36, 1) both; }
.pricepath circle { animation: vera-dotin 0.3s 0.85s both; }
.notes { width: 100%; min-height: 84px; background: var(--panel); border: 1px solid var(--line); border-radius: var(--r-sm); color: var(--ink); font-family: var(--sans); font-size: 16px; padding: 11px 13px; resize: vertical; }
.cprog { font-family: var(--mono); color: var(--green); margin-left: 8px; }
.cbar { height: 6px; background: rgba(233, 226, 210, 0.06); border-radius: 3px; overflow: hidden; margin-bottom: 14px; }
.cbar span { display: block; height: 100%; background: var(--green); border-radius: 3px; }
.cgh { font-family: var(--mono); font-size: var(--fs-floor); letter-spacing: 0.12em; text-transform: uppercase; color: var(--mute); margin: 14px 0 7px; }
.ck { display: flex; gap: 10px; align-items: flex-start; padding: 9px 10px; border: 1px solid var(--line); border-radius: var(--r-sm); margin-bottom: 6px; cursor: pointer; }
.ck.is-on { border-color: rgba(76, 195, 138, 0.4); background: rgba(76, 195, 138, 0.05); }
.ck input { accent-color: var(--green); margin-top: 3px; min-width: 16px; min-height: 16px; }
.ck b { display: block; font-size: var(--fs-data); font-weight: 500; }
.ck em { font-style: normal; font-size: var(--fs-cap); color: var(--mute); }

/* ============================================================
   SHARED BITS
   ============================================================ */

.toast {
  position: fixed; left: 50%; bottom: 26px; transform: translate(-50%, 14px); z-index: 120;
  background: var(--panel2); border: 1px solid var(--line2); color: var(--ink);
  font-size: 13.5px; padding: 12px 18px; border-radius: 11px; box-shadow: var(--shadow);
  opacity: 0; transition: transform 0.24s, opacity 0.24s; max-width: min(480px, 90vw);
}
.toast.is-up { transform: translate(-50%, 0); opacity: 1; }

.loading { text-align: center; padding: 90px 0; color: var(--mute); }
.loading__mark { color: var(--dim); }

.deckfoot { display: flex; justify-content: space-between; gap: 14px; flex-wrap: wrap; border-top: 1px solid var(--line); padding: 18px 0 30px; font-size: var(--fs-micro); color: var(--mute); }
.deckfoot a { color: var(--dim); }
.deckfoot p { margin: 0; }
.fallback { padding: 40px; text-align: center; color: #ece4d3; font-family: monospace; }

/* ============================================================
   RESPONSIVE
   ============================================================ */

@media (max-width: 1120px) {
  .kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .bubblegrid, .srcgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stages { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .vtools { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .maplay { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  body { font-size: 15.5px; }
  .dropgrid, .grid--2, .grid--3, .telldeck, .cgroup ul, .brackets { grid-template-columns: 1fr; }
  .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bubblegrid, .vtools, .srcgrid { grid-template-columns: 1fr; }
  .masthead { gap: 10px; padding-top: 14px; }
  .masthead__status { display: none; }
  .brand__name { font-size: 22px; }
  .board { grid-template-columns: repeat(6, 78vw); }
  .bar { grid-template-columns: 96px minmax(0, 1fr) auto; }
  .inspector { width: 100vw; border-left: 0; }
  /* A nowrap hint line ("68 plotted · 158 outside the zone…") set the page's
     min width and slid the whole document sideways on phones. Wrap it. */
  .panel__head { flex-wrap: wrap; }
  .panel__hint { white-space: normal; }
  .dropcard__rent { font-size: 19px; }
  .drophead { padding-top: 30px; }
  .stages { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .filters { gap: 6px 12px; }
}

/* The hidden attribute must beat any authored display — this codebase has
   been bitten three separate times (.toast, .filters, .inspector). */
[hidden] { display: none !important; }

/* ============================================================
   REDUCED MOTION — everything arrives, nothing performs
   ============================================================ */

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .pulse, .loading__mark { animation: none; }
  .is-entered .dropcard, .is-entered .mp-pin { animation: none; }
  .is-entered .chart path[stroke] { animation: none; stroke-dasharray: none; }
  .scorering__arc, .t-score__fill, .scorebar__fill { animation: none; }
  .deal__marker, .pricepath polyline, .pricepath circle { animation: none; }
  .dropcard__hit, .brtile, .kpi--click, .bubcard, .inspector, .toast { transition: none; }
}

/* ============================================================
   ROUND 7 — the big-print edition.
   Price, Neighborhood, Photos, Location, Private Owner — huge,
   photo-forward, on the real city. Cascade overrides below.
   ============================================================ */

body { font-size: 18px; }
.pagehead__lede { font-size: 18px; }
.drophead__lede { font-size: clamp(18px, 2.2vw, 22px); }
.drophead__trust { font-size: 15px; }
.panel__title { font-size: 16px; }
.panel__hint { font-size: var(--fs-micro); }
.kpi__label { font-size: var(--fs-micro); }
.kpi__note { font-size: var(--fs-data); }
.tag { font-size: var(--fs-micro); padding: 4px 9px; }
.dt { font-size: 14.5px; }
.dt thead th { font-size: var(--fs-micro); }
.filters button, .pills button { font-size: 14px; min-height: 38px; }
.filters__label { font-size: var(--fs-micro); }
.mastnav a { font-size: 13.5px; }
.feed__what { font-size: 14px; }
.bar__name { font-size: 14px; }
.bar { grid-template-columns: 150px minmax(0, 1fr) auto; }
.insp-sec p { font-size: 15px; }
.insp-sec ul { font-size: 15px; }
.kv { font-size: 14.5px; }
.inspector__title { font-size: 28px; }
.inspector__sub { font-size: 14px; }
.inspector { width: min(640px, 100vw); }

/* --- the drop: one huge editorial card per row --- */
.dropgrid { grid-template-columns: 1fr; gap: 26px; }
.dropcard__media { aspect-ratio: 21 / 9; }
.dropcard__rent {
  font-size: clamp(30px, 3.4vw, 44px); padding: 8px 18px; left: 16px; bottom: 14px;
  border-radius: 12px;
}
.dropcard__rent small { font-size: 15px; }
.dropcard__no { position: absolute; top: 16px; right: 16px; left: auto; color: var(--ink); background: rgba(10,12,11,.72); border: 1px solid var(--line); padding: 4px 10px; border-radius: 8px; font-size: var(--fs-data); backdrop-filter: blur(6px); z-index: 2; }
.dropcard__body { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 22px; padding: 22px 24px 24px; }
.dropcard__main { display: block; min-width: 0; position: static; }
.dropcard__hood { display: block; font-family: var(--mono); font-size: 14px; color: var(--brass); letter-spacing: 0.04em; margin-bottom: 8px; }
.dropcard__hood .bul { width: 17px; height: 17px; font-size: var(--fs-floor); }
.dropcard__pinwarn { color: var(--amber); }
.dropcard__name { font-size: clamp(27px, 3.4vw, 40px); margin: 0 0 6px; line-height: 1.05; }
.dropcard__flavor { font-family: var(--serif); font-style: italic; font-weight: 400; color: var(--mute); font-size: 16px; margin: 0 0 14px; }
.dropcard__why { font-size: 17px; margin: 12px 0 8px; color: var(--dim); }
.dropcard__flaw { font-size: 15.5px; }
.dropcard__map, .insp-map--open {
  display: block; position: relative; align-self: start; width: 100%; padding: 0;
  border-radius: var(--r-sm); overflow: hidden; border: 1px solid var(--line);
  background: #0c1211; color: var(--ink); text-align: left;
}
.dropcard__mapaction {
  position: absolute; right: 10px; bottom: 10px; z-index: 2; display: inline-flex; gap: 5px;
  align-items: center; min-height: 36px; padding: 7px 10px; border: 1px solid rgba(236,228,211,.25);
  border-radius: 999px; background: rgba(8,12,10,.84); color: var(--ink); font: 600 var(--fs-micro)/1 var(--mono);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
}
.dropcard__map:focus-visible, .insp-map--open:focus-visible { outline: 3px solid var(--green); outline-offset: 3px; }
.prov { font-size: 12.5px; }

.dropcard__owner {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  border: 1px solid var(--line); border-radius: var(--r-sm); padding: 10px 13px;
  margin: 4px 0 4px; background: rgba(233, 226, 210, 0.025);
}
.dropcard__ownerlabel { font-family: var(--mono); font-size: var(--fs-micro); letter-spacing: 0.13em; text-transform: uppercase; color: var(--mute); }
.dropcard__owner b { font-size: 15.5px; font-weight: 600; }
.ometer { flex: 1 1 70px; max-width: 130px; height: 7px; background: rgba(233,226,210,.07); border-radius: 4px; overflow: hidden; }
.ometer i { display: block; height: 100%; background: linear-gradient(90deg, var(--green), rgba(76,195,138,.45)); }
.ometer__n { font-family: var(--mono); font-size: var(--fs-micro); color: var(--dim); }

/* --- photo gallery: arrows, dots, and a full-screen viewer --- */
.gal {
  position: absolute; inset: 0; display: flex; overflow-x: auto; overflow-y: hidden;
  scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch;
}
.gal:focus-visible { outline: 3px solid var(--green); outline-offset: -3px; }
.gal::-webkit-scrollbar { display: none; }
.gal__slide {
  flex: none; width: 100%; height: 100%; padding: 0; border: 0; background: transparent;
  scroll-snap-align: start; overflow: hidden; cursor: zoom-in;
}
.gal__slide:focus-visible { outline: 3px solid var(--green); outline-offset: -3px; }
.gal__shot { display: block; width: 100%; height: 100%; object-fit: cover; }
.gal__n {
  position: absolute; right: 12px; bottom: 12px; z-index: 2;
  font-family: var(--mono); font-size: var(--fs-micro); color: var(--ink);
  background: rgba(10, 12, 11, 0.72); border: 1px solid var(--line);
  padding: 5px 10px; border-radius: 7px; backdrop-filter: blur(6px);
}
.gal__dots {
  position: absolute; left: 50%; bottom: 12px; transform: translateX(-50%); z-index: 2;
  display: flex; gap: 6px; align-items: center; padding: 6px 9px; border-radius: 999px;
  background: rgba(10, 12, 11, 0.6); border: 1px solid var(--line); backdrop-filter: blur(6px);
}
.gal__dot { width: 6px; height: 6px; border-radius: 50%; background: rgba(233, 226, 210, 0.32); transition: transform 160ms var(--ease-out), background 160ms ease; }
.gal__dot.is-on { background: var(--green); transform: scale(1.45); }
.gal__btn {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 3;
  width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--line2);
  background: rgba(10, 12, 11, 0.68); color: var(--ink); font-size: 22px; line-height: 1;
  display: flex; align-items: center; justify-content: center;
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  opacity: 0; transition: opacity 180ms ease, transform 160ms var(--ease-out), background 160ms ease;
}
.gal__btn--prev { left: 12px; }
.gal__btn--next { right: 12px; }
.dropcard__media:hover .gal__btn, .dropcard__media:focus-within .gal__btn,
.insp-port__frame:hover .gal__btn, .insp-port__frame:focus-within .gal__btn { opacity: 1; }
.gal__btn:hover { background: rgba(10, 12, 11, 0.88); }
.gal__btn:active { transform: translateY(-50%) scale(0.94); }
@media (hover: none) { .gal__btn { opacity: 1; } }

/* --- full-screen photo viewer --- */
body.lb-open { overflow: hidden; }
.lb {
  position: fixed; inset: 0; z-index: 240; display: flex; align-items: center; justify-content: center;
  background: rgba(7, 9, 8, 0.9); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
  animation: lbIn 180ms var(--ease-out); overscroll-behavior: contain;
}
.lb[hidden] { display: none; }
@keyframes lbIn { from { opacity: 0; } to { opacity: 1; } }
.lb__stage { margin: 0; display: flex; flex-direction: column; align-items: center; gap: 14px; max-width: 92vw; }
.lb__img {
  max-width: 92vw; max-height: 82vh; object-fit: contain; border-radius: 10px;
  box-shadow: 0 30px 90px rgba(0, 0, 0, 0.65); animation: lbImgIn 220ms var(--ease-out);
}
@keyframes lbImgIn { from { opacity: 0; transform: scale(0.97); } to { opacity: 1; transform: scale(1); } }
.lb__n { font-family: var(--mono); font-size: var(--fs-cap); color: var(--dim); }
.lb__close {
  position: absolute; top: max(14px, env(safe-area-inset-top)); right: max(16px, env(safe-area-inset-right)); z-index: 2;
  width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--line2);
  background: rgba(18, 22, 20, 0.8); color: var(--ink); font-size: 24px; line-height: 1;
  transition: transform 160ms var(--ease-out), background 160ms ease;
}
.lb__close:hover { background: rgba(30, 36, 33, 0.9); }
.lb__close:active { transform: scale(0.94); }
.lb__btn {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 2;
  width: 54px; height: 54px; border-radius: 50%; border: 1px solid var(--line2);
  background: rgba(18, 22, 20, 0.8); color: var(--ink); font-size: 26px; line-height: 1;
  display: flex; align-items: center; justify-content: center;
  transition: transform 160ms var(--ease-out), background 160ms ease;
}
.lb__btn--prev { left: max(14px, env(safe-area-inset-left)); }
.lb__btn--next { right: max(14px, env(safe-area-inset-right)); }
.lb__btn:hover { background: rgba(30, 36, 33, 0.9); }
.lb__btn:active { transform: translateY(-50%) scale(0.94); }
.lb__btn[hidden] { display: none; }

/* --- neighborhood minimap --- */
.gm { display: block; width: 100%; height: auto; }
.gm-water { fill: #0c1211; }
.gm-hood { fill: #141c17; stroke: rgba(233, 226, 210, 0.13); stroke-width: 1; }
.gm-hood--home { fill: #1b2a20; stroke: rgba(76, 195, 138, 0.5); stroke-width: 1.6; }
.gm-tether { stroke: rgba(76, 195, 138, 0.35); stroke-width: 1.6; stroke-dasharray: 4 4; }
.gm-stn { stroke: #0b0d0c; stroke-width: 1.6; }
.gm-stnname { font-family: var(--mono); font-size: var(--fs-micro); fill: var(--dim); text-anchor: middle; }
.gm-label { font-family: var(--mono); font-size: var(--fs-data); letter-spacing: 0.18em; fill: var(--brass); }
.gm-walklabel { font-family: var(--mono); font-size: var(--fs-floor); letter-spacing: 0.08em; fill: var(--dim); }
.gm-halo { fill: rgba(76, 195, 138, 0.14); }
.gm-dot { fill: var(--green); stroke: #0b0d0c; stroke-width: 2.4; }
.gm-halo { opacity: .18; }
.insp-map { border: 1px solid var(--line); border-radius: var(--r-sm); overflow: hidden; margin-bottom: 8px; }

/* --- atlas on real polygons --- */
.mp-nta { fill: #151d18; stroke: rgba(233, 226, 210, 0.14); stroke-width: 1.1; transition: fill 0.2s; }
.mp-nta:hover { fill: #1b2620; }
.mp-ntaname { font-family: var(--mono); font-size: var(--fs-data); letter-spacing: 0.14em; fill: rgba(233, 226, 210, 0.34); text-anchor: middle; pointer-events: none; }

/* --- motion: springier arrivals, photo life on hover --- */
.is-entered .dropcard { opacity: 1; transform: none; }
.dropcard__hit:hover .gal__shot, .dropcard__hit:hover .port { transform: scale(1.025); }
.gal__shot, .dropcard__media .port { transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1); }
.dropcard__hit:hover { transform: translateY(-4px); }

@media (max-width: 900px) {
  .dropcard__body { grid-template-columns: 1fr; gap: 14px; }
  .dropcard__map { max-width: 420px; }
  .dropcard__media { aspect-ratio: 16 / 10; }
  .dropcard__name { font-size: clamp(26px, 7.2vw, 34px); }
  .inspector__title { font-size: 24px; }
}

@media (prefers-reduced-motion: reduce) {
  .gm-halo { animation: none; }
  .is-entered .dropcard { animation: none; }
  .gal__shot, .dropcard__media .port, .mp-nta, .lb, .lb__img, .lb__btn, .lb__close, .maploader__mark { animation: none; transition: none; }
  .gal { scroll-behavior: auto; }
}

/* keep the hidden guarantee last */
[hidden] { display: none !important; }

/* --- the city vs the net (market_context) --- */
.mctx { margin-top: 14px; }
.mctx__lanes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; align-items: end; }
.mctx__lane { min-width: 0; }
.mctx__lane svg { width: 100%; height: auto; display: block; }
.mctx__who { display: flex; align-items: center; gap: 8px; font-family: var(--mono); font-size: 12.5px; color: var(--dim); margin-bottom: 6px; }
.mctx__who i { width: 9px; height: 9px; border-radius: 50%; flex: none; }
.mctx__who b { color: var(--ink); font-size: 15px; margin-left: auto; }
.mctx__lane--ours { border: 1px dashed rgba(233, 226, 210, 0.25); border-radius: var(--r-sm); padding: 12px 14px; align-self: stretch; display: flex; flex-direction: column; justify-content: center; }
.mctx__note { font-size: 12.5px; color: var(--mute); margin: 6px 0 0; }
.mctx__hoods { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; border-top: 1px solid var(--line); padding-top: 13px; }
.mctx__hood { font-size: var(--fs-data); color: var(--dim); border: 1px solid var(--line); border-radius: 999px; padding: 5px 12px; }
.mctx__hood b { font-weight: 500; color: var(--ink); }
.mctx__hood em { font-style: normal; font-family: var(--mono); font-size: var(--fs-micro); }
.mctx__hood em.is-up { color: var(--clay); }
.mctx__hood em.is-down { color: var(--green); }
@media (max-width: 900px) { .mctx__lanes { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

[hidden] { display: none !important; }

/* --- the steward grade: does this owner fix things --- */
.steward { display: flex; align-items: center; gap: 13px; border: 1px solid var(--line); border-radius: var(--r-sm); padding: 11px 14px; margin: 10px 0 4px; }
.steward__grade { font-family: var(--serif); font-weight: 600; font-size: 34px; line-height: 1; width: 46px; height: 46px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; flex: none; }
.steward--A .steward__grade { color: #0a130d; background: var(--green); }
.steward--B .steward__grade { color: var(--green); background: rgba(76,195,138,.13); }
.steward--C .steward__grade { color: var(--amber); background: rgba(227,181,103,.13); }
.steward--D .steward__grade { color: var(--clay); background: rgba(207,115,82,.14); }
.steward--E .steward__grade { color: #14090a; background: var(--red); }
.steward--\? .steward__grade { color: var(--mute); background: rgba(233,226,210,.06); }
.steward__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.steward__word { font-size: 15px; font-weight: 600; }
.steward__line { font-size: var(--fs-data); color: var(--mute); }
.steward__line--bad { color: var(--clay); }
.steward__line--good { color: var(--green); }
.steward--big { margin: 0 0 18px; }
.steward--big .steward__grade { font-size: 42px; width: 58px; height: 58px; }

.dropcard__fresh {
  position: absolute; left: 16px; top: 16px; z-index: 2;
  font-family: var(--mono); font-size: var(--fs-micro); letter-spacing: .06em; text-transform: uppercase;
  color: #0a130d; background: var(--green); padding: 5px 11px; border-radius: 8px; font-weight: 600;
}
.dropcard__spatial { font-family: var(--mono); font-size: var(--fs-data); color: var(--mute); margin: 0 0 8px; }

[hidden] { display: none !important; }

/* --- commute anchors --- */
.anchorbar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 18px; border: 1px solid var(--line); border-radius: var(--r-sm); padding: 11px 14px; background: rgba(233,226,210,.02); }
.anchorbar__label { font-family: var(--mono); font-size: var(--fs-micro); letter-spacing: .13em; text-transform: uppercase; color: var(--brass); }
.anchorbar select { background: var(--panel); color: var(--ink); border: 1px solid var(--line); border-radius: 8px; font-family: var(--sans); font-size: 14px; padding: 8px 10px; max-width: 240px; min-height: 38px; }
.anchorbar__hint { font-size: 12.5px; color: var(--mute); flex: 1 1 200px; }
.dropcard__commute { display: flex; gap: 8px; flex-wrap: wrap; margin: 0 0 10px; }
.commute { font-family: var(--mono); font-size: var(--fs-data); color: var(--dim); border: 1px solid var(--line); border-radius: 7px; padding: 5px 10px; display: inline-flex; align-items: center; gap: 5px; }
.commute--good { color: var(--green); border-color: rgba(76,195,138,.35); }

[hidden] { display: none !important; }

/* --- price memory --- */
.pricepath { width: 100%; height: auto; display: block; border: 1px solid var(--line); border-radius: var(--r-sm); background: rgba(233,226,210,.02); margin-bottom: 8px; }

[hidden] { display: none !important; }

/* --- phase 1: personal value math --- */
.qualify { font-family: var(--mono); font-size: var(--fs-data); margin: 0 0 10px; padding: 6px 11px; border-radius: 7px; display: inline-block; }
.qualify--good { color: var(--green); background: rgba(76,195,138,.08); }
.qualify--warn { color: var(--amber); background: rgba(227,181,103,.08); }
.t-under { color: var(--green); font-family: var(--mono); font-size: 12.5px; }
.t-over { color: var(--amber); font-family: var(--mono); font-size: 12.5px; }
.anchorbar input[type="number"] { background: var(--panel); color: var(--ink); border: 1px solid var(--line); border-radius: 8px; font-family: var(--mono); font-size: 14px; padding: 8px 10px; width: 150px; min-height: 38px; }
.outcomes { display: flex; gap: 6px; }
.outcomes button { background: none; border: 1px solid var(--line); border-radius: 999px; color: var(--dim); font-size: 13.5px; padding: 7px 16px; }
.outcomes button.is-on { color: var(--green); border-color: rgba(76,195,138,.5); background: var(--green-soft); }
.ccard__outcome { font-family: var(--mono); font-size: var(--fs-floor); letter-spacing: .07em; text-transform: uppercase; }
.ccard__outcome--yes { color: var(--green); }
.ccard__outcome--roughly { color: var(--amber); }
.ccard__outcome--no { color: var(--red); }

[hidden] { display: none !important; }

.prov__i--warn { color: var(--clay); }
.prov__i--soft { color: var(--mute); }

[hidden] { display: none !important; }

/* The page keeps the publication's time of day through subtle warm-black shifts. */
:root[data-sky="night"] { --bg: #090c0a; --bg2: #0b0e0c; }
:root[data-sky="dawn"] { --bg: #0e0d0c; --bg2: #110f0d; }
:root[data-sky="day"] { --bg: #0c0e0d; --bg2: #0f1210; }

::view-transition-old(vera-hero), ::view-transition-new(vera-hero) { animation-duration: .32s; }

.pwin { opacity: inherit; }

.mp[data-sky="night"] .mp-nta { fill: #10160f; }
.mp[data-sky="night"] { background: #090e0d; }
.mp[data-sky="day"] .mp-nta { fill: #1b241e; }
.mp[data-sky="dawn"] .mp-nta { fill: #171d15; }

@media (prefers-reduced-motion: reduce) {
  .pwin { animation: none; }
}

[hidden] { display: none !important; }

/* --- phase 3: receipts, memorial, field kit --- */
.memorial { font-family: var(--serif); font-style: italic; font-size: 17px; color: var(--dim); border-left: 3px solid var(--clay); padding: 6px 0 6px 16px; margin: 34px 0 0; max-width: 60ch; }
.arcday { margin-top: 30px; }
.arcday__date { font-family: var(--mono); font-size: var(--fs-data); letter-spacing: .12em; color: var(--brass); margin: 0 0 10px; }
.arcrows { display: flex; flex-direction: column; gap: 8px; }
.arcrow { display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: 14px; align-items: center; border: 1px solid var(--line); border-radius: var(--r-sm); padding: 12px 15px; background: var(--panel); cursor: pointer; font-size: 14px; color: var(--dim); }
button.arcrow, .arcrow--button { width: 100%; appearance: none; text-align: left; font: inherit; }
button.arcrow:hover, .arcrow--button:hover { border-color: rgba(76,195,138,.5); background: var(--green-soft); }
.arcrow--dead { cursor: default; opacity: .75; }
.arcrow b { color: var(--ink); font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.arcrow__badge { font-family: var(--mono); font-size: var(--fs-micro); letter-spacing: .07em; text-transform: uppercase; padding: 3px 9px; border-radius: 5px; border: 1px solid var(--line); }
.arcrow__badge.is-live { color: var(--green); border-color: rgba(76,195,138,.4); }
.arcrow__badge.is-drop { color: var(--blue); border-color: rgba(123,167,217,.4); }
.arcrow__badge.is-gone { color: var(--mute); }
#fieldkit { display: none; }
@media print {
  body > *:not(#fieldkit) { display: none !important; }
  #fieldkit, #fieldkit[hidden] { display: block !important; color: #000; background: #fff; font-family: Georgia, serif; padding: 24px; }
  #fieldkit h1 { font-size: 22pt; margin: 0 0 4px; }
  #fieldkit h2 { font-size: 13pt; margin: 14pt 0 4pt; }
  #fieldkit .fk-sub { font-size: 12pt; margin: 0; }
  #fieldkit .fk-link, #fieldkit .fk-foot { font-family: monospace; font-size: 8.5pt; color: #444; }
  #fieldkit .fk-warn { border: 1.5pt solid #000; padding: 6pt; font-weight: bold; }
  #fieldkit .fk-illegal { border: 2pt solid #000; padding: 8pt; margin: 8pt 0; }
  #fieldkit .fk-illegal h2 { margin: 0 0 5pt; font-size: 12pt; }
  #fieldkit .fk-illegal ul { margin: 0; padding-left: 14pt; font-size: 10pt; }
  #fieldkit .fk-illegal li { margin-bottom: 5pt; }
  #fieldkit .fk-illegal i { font-size: 9pt; }
  #fieldkit .fk-cues { font-size: 9.5pt; border-left: 2pt solid #000; padding-left: 6pt; }
  #fieldkit table { border-collapse: collapse; width: 100%; font-size: 10pt; }
  #fieldkit th, #fieldkit td { border-bottom: 0.5pt solid #999; text-align: left; padding: 3pt 6pt 3pt 0; vertical-align: top; }
  #fieldkit .fk-checks { columns: 2; font-size: 9pt; list-style: none; padding: 0; }
  /* Write-in lines for the address an unverified listing does not carry.
     Wider leading than the body copy because it is written on by hand. */
  #fieldkit .fk-write { font-size: 10pt; line-height: 2.1; margin-top: 4pt; }
  #fieldkit ol { font-size: 10.5pt; }
  .grain { display: none !important; }
}

[hidden] { display: none !important; }

.citelink { color: var(--brass); font-size: var(--fs-micro); text-decoration: none; }
.citelink:hover { text-decoration: underline; }

[hidden] { display: none !important; }

.ccard__movein { font-family: var(--mono); font-size: var(--fs-floor); color: var(--brass); line-height: 1.5; display: block; }

[hidden] { display: none !important; }


/* --- the real map --- */
.maplay--vector { grid-template-columns: 0.78fr 0.22fr; }
.veramap { height: 660px; border-radius: var(--r-sm); overflow: hidden; background: #171815; }
.veramap canvas { border-radius: var(--r-sm); }
.veramap:focus-within { outline: 2px solid rgba(76, 195, 138, 0.72); outline-offset: 3px; }
.maplibregl-canvas:focus-visible { outline: 3px solid var(--green); outline-offset: -3px; }
.maplibregl-ctrl-attrib { background: rgba(9, 11, 10, 0.92) !important; color: #b8b1a5 !important; font-size: var(--fs-micro) !important; }
.maplibregl-ctrl-attrib a { color: #f0eadf !important; }
.maplibregl-ctrl-attrib.maplibregl-compact {
  min-height: 44px !important; padding: 0 44px 0 0 !important; border-radius: 22px !important;
}
.maplibregl-ctrl-attrib.maplibregl-compact-show {
  display: flex !important; align-items: center; max-width: calc(100% - 20px) !important;
  padding: 5px 48px 5px 10px !important;
}
.maplibregl-ctrl-attrib-button {
  width: 44px !important; height: 44px !important; border-radius: 22px !important;
  background-size: 28px 28px; background-position: center; background-repeat: no-repeat;
  touch-action: manipulation;
}
.maplibregl-ctrl-group { background: rgba(17, 20, 17, 0.94) !important; border: 1px solid rgba(233, 226, 210, 0.28) !important; box-shadow: 0 8px 22px rgba(0, 0, 0, 0.24) !important; }
.maplibregl-ctrl-group button { width: 44px !important; height: 44px !important; background: transparent !important; touch-action: manipulation; }
.maplibregl-ctrl-group button span { filter: invert(0.85); }
.maplibregl-popup.vera-map-popup .maplibregl-popup-content { padding: 0; overflow: hidden; border: 1px solid var(--app-line-strong); border-radius: 14px; background: var(--app-surface); color: var(--ink); box-shadow: 0 20px 70px rgba(0,0,0,.48); }
.maplibregl-popup.vera-map-popup.maplibregl-popup-anchor-top .maplibregl-popup-tip { border-bottom-color: var(--app-surface); }
.maplibregl-popup.vera-map-popup.maplibregl-popup-anchor-bottom .maplibregl-popup-tip { border-top-color: var(--app-surface); }
.maplibregl-popup.vera-map-popup.maplibregl-popup-anchor-left .maplibregl-popup-tip { border-right-color: var(--app-surface); }
.maplibregl-popup.vera-map-popup.maplibregl-popup-anchor-right .maplibregl-popup-tip { border-left-color: var(--app-surface); }
.vera-map-popup__card { width: min(286px, calc(100vw - 48px)); color: var(--ink); font: 14px/1.4 var(--sans); }
.vera-map-popup__photo { display: block; width: 100%; height: 112px; object-fit: cover; background: var(--app-bg); }
.vera-map-popup__body { padding: 13px 13px 14px; }
.vera-map-popup__title { display: block; color: var(--ink); font: 600 16px/1.25 var(--sans); }
.vera-map-popup__facts { margin: 6px 0 0; color: var(--dim); font-variant-numeric: tabular-nums; }
.vera-map-popup__transit { margin: 4px 0 0; color: var(--mute); font: var(--fs-floor)/1.45 var(--mono); }
.vera-map-popup__status { margin: 9px 0 12px; color: var(--mute); font-size: var(--fs-micro); line-height: 1.45; }
.vera-map-popup__open { min-height: 44px; border: 1px solid rgba(76,195,138,.58); border-radius: 999px; padding: 0 15px; background: var(--green); color: #07100b; font: 600 13px/1 var(--sans); cursor: pointer; }
.vera-map-popup__open:hover { background: #72d4a6; }
.maplibregl-popup.vera-map-popup :focus-visible { outline: 3px solid var(--green); outline-offset: 2px; }
@media (max-width: 1120px) { .maplay--vector { grid-template-columns: 1fr; } .veramap { height: 480px; } }

[hidden] { display: none !important; }

/* Motion is defined once, at the end of this file, as an application state
   language. The retired presentation pass intentionally has no replacement
   here: no staged card deal, shimmer, scroll reveal, or ambient loop. */

.recwarn { border: 1px solid rgba(224,106,112,.45); background: rgba(224,106,112,.07); border-radius: var(--r-sm); padding: 16px 19px; margin: 30px 0 0; font-size: 15px; line-height: 1.62; color: var(--dim); max-width: 74ch; }
.recwarn b { color: var(--red); font-weight: 500; display: block; margin-bottom: 5px; }

[hidden] { display: none !important; }

.pf-head { font-size: 16px; line-height: 1.5; margin: 0 0 10px; padding-left: 13px; border-left: 3px solid var(--line2); color: var(--dim); }
.pf-head b { color: var(--ink); font-weight: 500; }
.pf-head--bad { border-left-color: var(--red); }
.pf-head--warn { border-left-color: var(--amber); }
.pf-head--good { border-left-color: var(--green); }

[hidden] { display: none !important; }

/* an unlawful demand is the loudest thing on the page */
.illegal { list-style: none; padding: 0; margin: 0 0 12px; display: flex; flex-direction: column; gap: 11px; }
.illegal li { border-left: 3px solid var(--red); padding: 10px 0 10px 14px; }
.illegal b { display: block; color: var(--red); font-weight: 500; font-size: 15.5px; margin-bottom: 4px; }
.illegal__q { display: block; font-family: var(--mono); font-size: var(--fs-micro); color: var(--dim); margin: 3px 0; }
.illegal__law { display: block; font-size: 12.5px; color: var(--mute); }

[hidden] { display: none !important; }

/* the funnel: where the net narrowed, on a day with no drop */
.funnel { list-style: none; padding: 0; margin: 26px 0 18px; display: flex; flex-direction: column; gap: 10px; max-width: 620px; text-align: left; }
.funnel__row { display: grid; grid-template-columns: 62px 120px minmax(0, 1fr); gap: 14px; align-items: center; }
.funnel__n { font-family: var(--mono); font-size: 21px; color: var(--ink); text-align: right; font-variant-numeric: tabular-nums; }
.funnel__bar { height: 7px; border-radius: 4px; background: var(--line); overflow: hidden; }
.funnel__bar i { display: block; height: 100%; background: var(--green); border-radius: 4px; transform-origin: left; }
.funnel__l { font-size: 14px; color: var(--dim); line-height: 1.45; }
.funnel__row.is-last .funnel__n { color: var(--clay); }
.funnel__row.is-last .funnel__bar i { background: var(--clay); }
.funnel__note { font-size: 14px; color: var(--mute); max-width: 62ch; line-height: 1.6; margin: 0 0 6px; }
.dropempty__close { font-size: 14.5px; color: var(--dim); margin-top: 20px; }
@media (max-width: 620px) { .funnel__row { grid-template-columns: 48px 1fr; } .funnel__bar { grid-column: 1 / -1; } }

[hidden] { display: none !important; }

.unlawful__h { font-size: 17px; margin: 26px 0 10px; color: var(--ink); font-weight: 500; }
.unlawful { list-style: none; padding: 0; margin: 0 0 14px; display: flex; flex-direction: column; gap: 12px; }
.unlawful li { border-left: 2px solid var(--red); padding-left: 14px; font-size: 14.5px; line-height: 1.6; color: var(--dim); }
.unlawful b { color: var(--ink); font-weight: 500; }
.unlawful i { display: block; font-family: var(--mono); font-size: var(--fs-micro); color: var(--mute); font-style: normal; letter-spacing: .04em; margin-top: 3px; }

[hidden] { display: none !important; }

.ethos__h { font-size: 17px; margin: 30px 0 8px; color: var(--ink); font-weight: 500; }
.credits { list-style: none; padding: 0; margin: 12px 0 18px; display: flex; flex-direction: column; gap: 9px; max-width: 68ch; }
.credits li { font-size: 14px; line-height: 1.6; color: var(--dim); border-left: 2px solid var(--line2); padding-left: 13px; }
.credits b { color: var(--ink); font-weight: 500; }
.credits a { color: var(--brass); }

/* Exact-address confirmation stays visually separate from VERA's published
   evidence. Green appears only after the renter confirms an official result. */
.address-check, .address-proof {
  margin: 18px 0 22px; padding: clamp(16px, 3vw, 22px); border: 1px solid var(--line2);
  border-radius: var(--r); background: linear-gradient(145deg, rgba(200,164,104,.055), rgba(76,195,138,.025));
}
.address-check label { display: block; margin-bottom: 11px; }
.address-check label b, .address-proof h4 { display: block; color: var(--ink); font-size: 16px; font-weight: 600; }
.address-check label span { display: block; margin-top: 3px; color: var(--mute); font-size: var(--fs-data); }
.address-check__row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 9px; align-items: stretch; }
.address-check__row:focus-within { filter: drop-shadow(0 0 12px rgba(200,164,104,.12)); }
.address-check input {
  width: 100%; min-width: 0; min-height: 48px; border: 1px solid var(--line2); border-radius: 10px;
  background: var(--bg2); color: var(--ink); padding: 11px 13px; font: 16px var(--sans);
}
.address-check input::placeholder { color: var(--mute); }
.address-check button[disabled] { cursor: wait; opacity: .68; transform: none; }
.address-check__result { min-height: 1.55em; margin-top: 12px; color: var(--dim); font-size: 13.5px; line-height: 1.55; }
.address-check__result:empty { min-height: 0; margin-top: 0; }
.address-check__result.is-error { color: var(--red); }
.address-check__result.is-ready { color: var(--dim); }
.address-check__result > p { margin: 0 0 9px; }
.address-candidates { display: grid; gap: 7px; }
.address-candidates button {
  display: grid; gap: 3px; width: 100%; min-height: 52px; padding: 10px 12px; text-align: left;
  border: 1px solid var(--line); border-radius: 9px; background: var(--panel); color: var(--dim);
}
.address-candidates button:hover { border-color: rgba(76,195,138,.55); background: var(--green-soft); }
.address-candidates b { color: var(--ink); overflow-wrap: anywhere; }
.address-candidates span { font: var(--fs-floor)/1.5 var(--mono); color: var(--mute); overflow-wrap: anywhere; }
.address-proof { border-color: rgba(76,195,138,.34); background: rgba(76,195,138,.045); }
.address-proof__eyebrow { margin: 0 0 6px; color: var(--green); font: var(--fs-floor)/1.4 var(--mono); letter-spacing: .12em; text-transform: uppercase; }
.address-proof h4 { margin: 0 0 14px; overflow-wrap: anywhere; }
.address-proof .kv { margin-bottom: 13px; }
.address-proof__links { display: flex; flex-wrap: wrap; gap: 8px 14px; margin-bottom: 12px; }
.address-proof__links a { color: var(--brass); font-size: var(--fs-data); }
.address-proof__actions { display: flex; flex-wrap: wrap; gap: 8px; }

.lab-callout {
  margin: 32px 0 20px; padding: clamp(20px, 4vw, 30px); border: 1px solid rgba(200,164,104,.34);
  border-radius: var(--r); background: radial-gradient(500px 180px at 0 0, rgba(200,164,104,.09), transparent 66%), var(--panel);
}
.lab-callout h3 { margin: 0 0 8px; font-family: var(--serif); font-size: clamp(22px, 3vw, 30px); }
.lab-callout p:not(.kicker) { max-width: 62ch; }

@media (max-width: 760px) {
  .masthead { padding-top: max(14px, env(safe-area-inset-top)); }
  .mastnav a, .filters button, .pills button, .dtoolbar__density button { min-height: 44px; }
  .filters__group { flex-wrap: nowrap; width: 100%; overflow-x: auto; padding-bottom: 2px; overscroll-behavior-inline: contain; scrollbar-width: none; }
  .filters__group::-webkit-scrollbar { display: none; }
  .filters__label { position: sticky; left: 0; z-index: 1; align-self: stretch; display: inline-flex; align-items: center; padding-right: 8px; background: var(--bg); }
  .address-check__row { grid-template-columns: 1fr; }
  .address-check__row .bigbtn { width: 100%; }
  .inspector__head, .inspector__actions, .inspector__body { padding-left: max(18px, env(safe-area-inset-left)); padding-right: max(18px, env(safe-area-inset-right)); }
  .inspector__tabs { padding-left: max(12px, env(safe-area-inset-left)); padding-right: max(12px, env(safe-area-inset-right)); }
  .toast { bottom: max(18px, env(safe-area-inset-bottom)); }
}

@media (prefers-reduced-motion: reduce) {
  .address-check__row:focus-within { filter: none; }
  .mastnav, .inspector__tabs { scroll-behavior: auto; }
}

[hidden] { display: none !important; }

.perunit { font-size: 14px; line-height: 1.62; color: var(--dim); border-left: 2px solid var(--line2); padding-left: 13px; margin: 14px 0; max-width: 66ch; }
.perunit b { color: var(--ink); font-weight: 500; }

[hidden] { display: none !important; }


/* visible only to assistive tech */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* ============================================================
   VERA APPLICATION PLATFORM — 2026-08
   One shell, three primary workspaces: Signal Desk, City Lens,
   and Decision Room. Motion communicates state and then stops.
   ============================================================ */

:root {
  --app-bg: #090b0a;
  --app-rail: #0c0f0d;
  --app-surface: #111512;
  --app-surface-2: #151a16;
  --app-line: rgba(236, 228, 211, 0.11);
  --app-line-strong: rgba(236, 228, 211, 0.2);
  --app-rail-w: 190px;
  --app-signal: 160ms;
  --app-settle: 260ms;
  --app-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  --app-ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --glide: var(--app-ease-out);
}

html, body { background: var(--app-bg); }
body {
  background-image: none;
  background-attachment: scroll;
  animation: none !important;
}
.grain { display: none; }
.shell { max-width: none; }
.panel, .tablewrap, .dropcard__hit { background: var(--app-surface); border-color: var(--app-line); }
.insignia { width: 42px; height: 42px; border-radius: 10px; object-fit: cover; flex: none; }
.pulse {
  width: 7px; height: 7px; box-shadow: none; animation: none !important;
  outline: 3px solid rgba(76, 195, 138, 0.1);
}
.pulse.is-warn { outline-color: rgba(227, 181, 103, 0.12); }
.pulse.is-bad { outline-color: rgba(224, 106, 112, 0.12); }

/* Static fallbacks for data-driven decoration; none may loop or gate content. */
.loading__mark, .pwin, .gm-halo, .mp-halo,
.vpin, .vpin__pulse, .dropcard__fresh::after, .flipd.tick,
.is-entered .dropcard, .is-entered .steward__grade,
.is-entered .chart path[stroke], .is-entered .mp-pin,
.funnel__bar i {
  animation: none !important;
}
.is-entered .chart path[stroke] { stroke-dasharray: none; stroke-dashoffset: 0; }
.rv, .rv-in { opacity: 1; transform: none; transition: none; }
.vpin__pulse { display: none; }
.gm-halo, .mp-halo { opacity: 0.16; }

/* Common application controls */
.filter-button, .filter-dock, .atlas-mode button {
  min-height: 42px; border: 1px solid var(--app-line); border-radius: 9px;
  background: var(--app-surface); color: var(--dim); padding: 8px 13px;
  font: 500 12px/1 var(--mono); letter-spacing: 0.04em;
}
.mastnav a, .mastnav__more { min-height: 44px; touch-action: manipulation; }
.filters button { min-height: 44px; touch-action: manipulation; }
.filter-button [data-filter-count], .filter-dock [data-filter-count] {
  min-width: 19px; height: 19px; margin-left: 6px; padding: 0 5px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 999px; color: #07100b; background: var(--green); font-size: var(--fs-floor);
}
.filter-dock { display: none; }
.atlas-mode { display: inline-flex; gap: 3px; padding: 3px; border: 1px solid var(--app-line); border-radius: 11px; background: var(--app-bg); }
.atlas-mode button { min-height: 44px; border: 0; background: transparent; padding: 9px 12px; touch-action: manipulation; }
.atlas-mode button.is-on { background: var(--app-surface-2); color: var(--ink); }

.workspace { padding: 24px 0 48px; min-width: 0; }
.workspacehead {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 28px;
  padding: 8px 0 22px; border-bottom: 1px solid var(--app-line);
  animation: vera-workspace-in 220ms var(--ease-out) both;
}
@keyframes vera-workspace-in { from { transform: translateY(7px); } to { transform: none; } }
.workspacehead__title {
  margin: 0; font-family: var(--serif); font-size: clamp(31px, 4vw, 49px);
  font-weight: 600; line-height: 1.02; letter-spacing: -0.025em;
}
.workspacehead__lede { max-width: 62ch; margin: 9px 0 0; color: var(--mute); font-size: 14px; }
.workspacehead__actions { display: flex; align-items: center; justify-content: flex-end; gap: 9px; flex-wrap: wrap; }
.workspace-count { color: var(--mute); font: var(--fs-floor)/1.4 var(--mono); white-space: nowrap; }
.workspace-count b { color: var(--green); font-size: 15px; }
.workspace-metrics { display: grid; grid-template-columns: repeat(4, minmax(72px, 1fr)); gap: 1px; margin: 0; border: 1px solid var(--app-line); background: var(--app-line); border-radius: 12px; overflow: hidden; }
.workspace-metrics div { min-width: 78px; padding: 11px 13px; background: var(--app-surface); }
.workspace-metrics dt { color: var(--mute); font: var(--fs-floor)/1.25 var(--mono); text-transform: uppercase; letter-spacing: 0.1em; }
.workspace-metrics dd { margin: 3px 0 0; color: var(--green); font: 600 20px/1 var(--mono); }

/* Signal Desk */
.signalbar { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-top: 14px; }
.signalbar .pills { flex: 1; margin: 0; }
.browse-mobile-trust, [data-browse-trust] { display: none; }
.command-search { position: relative; flex: 1 1 420px; min-width: 0; }
.command-search input[type="search"] { width: 100%; padding-right: 56px; }
.command-search kbd {
  position: absolute; right: 9px; top: 50%; transform: translateY(-50%);
  border: 1px solid var(--app-line-strong); border-radius: 6px; padding: 3px 7px;
  color: var(--mute); background: var(--app-bg); font: var(--fs-floor)/1.3 var(--mono);
}
.dtoolbar { flex-wrap: nowrap; margin: 12px 0 10px; }
.dtoolbar input[type="search"] { min-height: 46px; background: var(--app-surface); border-color: var(--app-line-strong); font-size: 16px; }
.dtoolbar__density { padding: 3px; border: 1px solid var(--app-line); border-radius: 9px; }
.dtoolbar__density button { min-height: 34px; border: 0; }
.dtoolbar__density button.is-on { background: var(--app-surface-2); }
.tablewrap { max-height: min(720px, calc(100dvh - 270px)); overflow: auto; border-radius: 12px; }
.dt thead th { z-index: 2; background: #151a16; }
.dt tbody tr { transition: background-color var(--app-signal) ease; }
.dt tbody tr.is-open { box-shadow: inset 3px 0 0 var(--green); }

/* City Lens */
.workspace--atlas { padding-bottom: 24px; }
.maploader, .mapfailure {
  min-height: 300px; display: grid; place-content: center; justify-items: center; gap: 18px;
  padding: 34px; text-align: center; background: radial-gradient(circle at 50% 35%, rgba(76,195,138,.1), transparent 42%), var(--app-surface);
}
.maploader p, .mapfailure p { max-width: 56ch; margin: 0; color: var(--mute); line-height: 1.55; }
.maploader p strong, .mapfailure h2 { color: var(--ink); }
.maploader .ghostbtn { min-height: 44px; }
.maploader__mark {
  position: relative; width: 62px; height: 62px; border: 1px solid rgba(76,195,138,.42); border-radius: 14px;
  background:
    url("../brand/vera-mark-96.png") center / 42px 42px no-repeat,
    linear-gradient(135deg, rgba(76,195,138,.12), rgba(76,195,138,.025));
  box-shadow: inset 0 0 0 5px rgba(76,195,138,.035), 0 12px 28px rgba(0,0,0,.2);
}
.mapfailure { min-height: 250px; border-color: rgba(227,181,103,.36); }
.mapfailure h2 { margin: 0; font: 600 clamp(28px,4vw,44px)/1.05 var(--serif); }
.mapfailure__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 9px; }
.mapfailure + [data-atlas-fallback] { margin-top: 14px; }
.shell::before {
  content: ""; position: fixed; z-index: -1; inset: 0; pointer-events: none;
  background:
    radial-gradient(700px 420px at 82% 6%, rgba(76,195,138,.07), transparent 62%),
    radial-gradient(520px 360px at 42% 100%, rgba(123,167,217,.045), transparent 68%);
}
.workspacehead, .panel, .tablewrap, .dropcard__hit { position: relative; }
.panel::before, .dropcard__hit::before {
  content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  background: linear-gradient(135deg, rgba(255,255,255,.028), transparent 32%);
  opacity: .7;
}
.page[data-page="today"] .drophead {
  position: relative; overflow: clip; padding-inline: clamp(18px,3vw,38px); border: 1px solid var(--app-line);
  border-radius: 22px; background: radial-gradient(650px 240px at 8% 0, rgba(76,195,138,.09), transparent 65%), rgba(17,21,18,.7);
}
.page[data-page="today"] .drophead::after {
  content: ""; position: absolute; right: -120px; top: -180px; width: 360px; height: 360px;
  border: 1px solid rgba(76,195,138,.16); border-radius: 50%; box-shadow: 0 0 90px rgba(76,195,138,.08); pointer-events: none;
}
.maplay { grid-template-columns: minmax(0, 1fr) minmax(280px, 0.34fr); margin-top: 14px; }
.maplay--vector { grid-template-columns: minmax(0, 1fr) minmax(280px, 0.34fr); }
.atlas-layout--list { grid-template-columns: minmax(0, 1fr); }
.atlas-layout--list .atlas-map-pane { display: none; }
.atlas-layout--list .atlas-list-pane .walklist { max-height: none; }
.veramap { height: min(690px, calc(100dvh - 210px)); min-height: 430px; }
.atlas-map-note {
  display: flex; align-items: baseline; flex-wrap: wrap; gap: 5px 8px;
  margin: 11px 2px 0; color: var(--mute); font-size: 12.5px; line-height: 1.5;
}
.atlas-map-note strong { color: var(--ink); font-weight: 600; }
.atlas-list-pane { min-height: 0; padding: 14px; }
.atlas-list-pane .walklist { max-height: min(640px, calc(100dvh - 264px)); }
.walkrow { min-height: 58px; padding: 10px 6px; transition: background-color var(--app-signal) ease; }

/* Decision Room */
.hunt-privacy { max-width: 290px; padding: 11px 13px; border: 1px solid var(--app-line); border-radius: 10px; background: var(--app-surface); }
.hunt-privacy b, .hunt-privacy span { display: block; }
.hunt-privacy b { color: var(--ink); font-size: var(--fs-data); }
.hunt-privacy span { margin-top: 3px; color: var(--mute); font: var(--fs-floor)/1.45 var(--mono); }
.decision-layout { display: grid; grid-template-columns: minmax(250px, 320px) minmax(0, 1fr); gap: 14px; margin-top: 14px; align-items: start; }
.hunt-erase { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: center; margin-top: 14px; padding: 16px; border: 1px solid var(--app-line); border-radius: 13px; background: var(--app-surface); }
.hunt-erase h2 { margin: 2px 0 6px; font-size: 18px; }
.hunt-erase p { margin: 0; color: var(--mute); font-size: var(--fs-data); line-height: 1.5; }
.hunt-erase__confirm, .hunt-erase__status { grid-column: 1 / -1; }
.hunt-erase__confirm { display: grid; gap: 10px; padding-top: 12px; border-top: 1px solid var(--app-line); }
.hunt-erase__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.hunt-erase__confirm-button { border-color: color-mix(in srgb, var(--red) 72%, var(--app-line)); color: #ffb2aa; }
.hunt-erase__confirm-button:hover { border-color: var(--red); color: #fff; }
.hunt-erase__status:not(:empty) { color: var(--green); }
.hunt-erase__status:focus-visible { outline: 3px solid var(--green); outline-offset: 4px; }
.shortlist, .casebook { border: 1px solid var(--app-line); border-radius: 13px; background: var(--app-surface); min-width: 0; }
.shortlist { position: sticky; top: 0; max-height: calc(100dvh - 176px); overflow: auto; }
.shortlist__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 16px; border-bottom: 1px solid var(--app-line); }
.shortlist__head h2 { margin: 0; font-size: 16px; }
.shortlist__head p { margin: 2px 0 0; color: var(--mute); font: var(--fs-floor)/1.3 var(--mono); }
.shortlist__head a { color: var(--dim); font-size: var(--fs-micro); }
.shortlist__list { display: grid; gap: 7px; padding: 9px; }
.shortlist-row {
  display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; gap: 9px; align-items: center;
  width: 100%; min-height: 86px; padding: 11px; text-align: left;
  border: 1px solid var(--app-line); border-radius: 9px; background: var(--app-bg); color: var(--dim);
  transition: border-color var(--app-signal) ease, background-color var(--app-signal) ease;
}
.shortlist-row.is-selected { border-color: rgba(76, 195, 138, 0.72); background: rgba(76, 195, 138, 0.07); box-shadow: inset 2px 0 0 var(--green); }
.shortlist-row__index { align-self: start; color: var(--green); font: var(--fs-floor)/1.3 var(--mono); }
.shortlist-row__body { min-width: 0; }
.shortlist-row__body b, .shortlist-row__body span, .shortlist-row__body small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.shortlist-row__body b { color: var(--ink); font-size: 13.5px; font-weight: 550; }
.shortlist-row__body span { margin-top: 4px; color: var(--dim); font-size: var(--fs-micro); }
.shortlist-row__body small { margin-top: 5px; color: var(--dim); font: var(--fs-floor)/1.3 var(--mono); text-transform: uppercase; letter-spacing: 0.05em; }
.shortlist-row__score { color: var(--green); font: 600 17px/1 var(--mono); }
.shortlist__note { margin: 0; padding: 12px 16px 16px; border-top: 1px solid var(--app-line); color: var(--mute); font-size: var(--fs-cap); }
.casebook { overflow: hidden; }
.casebook__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 22px; border-bottom: 1px solid var(--app-line); }
.casebook__head h2 { margin: 0; font: 600 clamp(26px, 3vw, 40px)/1.04 var(--serif); letter-spacing: -0.02em; }
.casebook__head p:not(.kicker) { margin: 8px 0 0; color: var(--mute); font-size: var(--fs-data); }
.casebook-score { min-width: 112px; padding: 11px 13px; border: 1px solid var(--app-line); border-radius: 10px; background: var(--app-bg); }
.casebook-score span, .casebook-score b, .casebook-score em { display: block; }
.casebook-score span { color: var(--mute); font: var(--fs-floor)/1.25 var(--mono); text-transform: uppercase; letter-spacing: 0.1em; }
.casebook-score b { margin-top: 5px; color: var(--green); font: 600 31px/1 var(--mono); }
.casebook-score em { margin-top: 4px; color: var(--green); font: var(--fs-floor)/1.25 var(--mono); font-style: normal; text-transform: capitalize; }
.casebook__tabs { display: flex; gap: 2px; padding: 0 18px; border-bottom: 1px solid var(--app-line); }
.casebook__tabs button, .casebook__current { min-height: 44px; padding: 0 12px; border: 0; border-bottom: 2px solid transparent; background: none; color: var(--mute); font: var(--fs-floor)/1 var(--mono); text-transform: uppercase; letter-spacing: 0.06em; }
.casebook__current { display: inline-flex; align-items: center; color: var(--ink); border-bottom-color: var(--brass); }
.movein-watch { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 14px 14px 0; padding: 13px 15px; border: 1px solid rgba(76, 195, 138, 0.34); border-radius: 10px; background: rgba(76, 195, 138, 0.06); }
.movein-watch b { width: 100%; color: var(--green); font: 600 var(--fs-floor)/1.3 var(--mono); text-transform: uppercase; letter-spacing: 0.06em; }
.movein-watch span { color: var(--dim); font-size: var(--fs-micro); line-height: 1.45; }
.evidence-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; padding: 14px; }
.evidence-card { grid-column: span 2; min-width: 0; padding: 15px; border: 1px solid var(--app-line); border-radius: 10px; background: var(--app-bg); }
.evidence-card--facts, .evidence-card--score { grid-column: span 3; }
.evidence-card h3 { margin: 0 0 12px; color: var(--ink); font-size: var(--fs-data); }
.evidence-card p { margin: 0; color: var(--mute); font-size: var(--fs-micro); }
.evidence-card dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px 18px; margin: 0; }
.evidence-card dl div { min-width: 0; }
.evidence-card dt { color: var(--mute); font: var(--fs-floor)/1.3 var(--mono); text-transform: uppercase; letter-spacing: 0.08em; }
.evidence-card dd { margin: 3px 0 0; color: var(--dim); font-size: var(--fs-micro); overflow-wrap: anywhere; }
.evidence-big { margin-bottom: 5px !important; color: var(--green) !important; font: 600 23px/1 var(--mono) !important; }
.evidence-list { list-style: none; display: grid; gap: 7px; margin: 0; padding: 0; }
.evidence-list + .evidence-list { margin-top: 9px; padding-top: 9px; border-top: 1px solid var(--app-line); }
.evidence-list li { position: relative; padding-left: 19px; color: var(--dim); font-size: var(--fs-cap); line-height: 1.45; }
.evidence-list li::before { content: "+"; position: absolute; left: 0; top: 0; color: var(--green); font: 600 13px/1.4 var(--mono); }
.evidence-list--warn li::before { content: "–"; color: var(--amber); }
.evidence-empty { color: var(--mute) !important; }
.signal-list { grid-template-columns: 1fr !important; gap: 9px !important; }
.signal-list div { display: flex; justify-content: space-between; gap: 10px; }
.signal-list dd { text-align: right; color: var(--green); }
.decision-timeline { margin: 0 14px 14px; padding: 16px; border: 1px solid var(--app-line); border-radius: 10px; background: var(--app-bg); }
.decision-timeline__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.decision-timeline h3 { margin: 0; font-size: 14px; }
.decision-timeline__head p { margin: 3px 0 0; color: var(--mute); font-size: var(--fs-micro); }
.decision-timeline ol { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 0; margin: 16px 0 0; padding: 0; list-style: none; }
.decision-timeline li { position: relative; min-width: 0; }
.decision-timeline li::before { content: ""; position: absolute; left: 0; right: 0; top: 8px; height: 1px; background: var(--app-line-strong); }
.decision-timeline li:first-child::before { left: 50%; }
.decision-timeline li:last-child::before { right: 50%; }
.decision-timeline button, .decision-step { position: relative; z-index: 1; display: grid; justify-items: center; gap: 4px; width: 100%; padding: 0 4px; border: 0; background: transparent; color: var(--mute); text-align: center; }
.decision-timeline button:disabled { cursor: default; opacity: 1; }
.decision-timeline button > span, .decision-step > span { width: 16px; height: 16px; border: 2px solid var(--app-line-strong); border-radius: 50%; background: var(--app-bg); }
.decision-timeline li.is-done button > span, .decision-timeline li.is-done .decision-step > span { border-color: var(--green); background: var(--green); box-shadow: 0 0 0 3px rgba(76, 195, 138, 0.1); }
.decision-timeline li.is-done::before { background: var(--green); }
.decision-timeline li.is-next button > span, .decision-timeline li.is-next .decision-step > span { border-color: var(--green); }
.decision-timeline b { color: var(--dim); font-size: var(--fs-micro); font-weight: 500; }
.decision-timeline small { color: var(--mute); font-size: var(--fs-floor); }

/* Inspector is a workspace panel on large screens and a spatially consistent
   sheet on touch screens. No backdrop blur, no surprise exit path. */
.scrim { background: rgba(4, 6, 5, 0.58); backdrop-filter: none; -webkit-backdrop-filter: none; }
.inspector { width: min(620px, 100vw); background: #0d100e; transform: translateX(100%); opacity: 1; transition: transform var(--app-settle) var(--app-ease-out); }
.inspector.is-open { transform: translateX(0); }
.inspector__body { scrollbar-gutter: auto; }
.inspector__tabs button, .inspector__tabmore, .mastnav a,
.filters button, .pills button, .filter-button, .filter-dock,
.atlas-mode button, .dtoolbar__density button, .bigbtn, .ghostbtn,
.shortlist-row, .walkrow, .dt tbody tr {
  transition-duration: var(--app-signal);
  transition-timing-function: ease;
}

/* Pointer-only lift; touch never inherits a sticky hover transform. */
@media (hover: hover) and (pointer: fine) {
  .mastnav a:hover, .filters button:hover, .pills button:hover,
  .filter-button:hover, .atlas-mode button:hover, .dtoolbar__density button:hover,
  .shortlist-row:hover, .walkrow:hover { background-color: rgba(236, 228, 211, 0.045); }
  .dropcard__hit:hover { transform: translateY(-2px); border-color: rgba(200, 164, 104, 0.42); box-shadow: 0 14px 36px rgba(0, 0, 0, 0.32); }
}
button:active, .dropcard__hit:active, .walkrow:active, .shortlist-row:active { transform: scale(0.985); transition-duration: 80ms; }

/* Desktop: persistent command rail + independently scrolling workspace. */
@media (min-width: 1180px) {
  html, body { height: 100%; overflow: hidden; }
  .shell {
    display: grid; grid-template-columns: var(--app-rail-w) minmax(0, 1fr);
    grid-template-rows: auto minmax(0, 1fr) auto;
    width: 100%; height: 100dvh; margin: 0; padding: 0;
  }
  .masthead {
    grid-column: 1; grid-row: 1 / -1; position: relative; top: auto;
    display: flex; flex-direction: column; align-items: stretch; flex-wrap: nowrap; gap: 20px;
    height: 100%; padding: 26px 17px max(20px, env(safe-area-inset-bottom));
    border-right: 1px solid var(--app-line); border-bottom: 0;
    background: var(--app-rail); backdrop-filter: none; -webkit-backdrop-filter: none;
  }
  .brand { padding: 0 6px 20px; border-bottom: 1px solid var(--app-line); }
  .brand__name { font-size: 23px; letter-spacing: 0.11em; }
  .brand__tag { max-width: 118px; font-size: var(--fs-floor); line-height: 1.35; }
  .mastnav__zone { order: 2; width: 100%; margin: 0; }
  .mastnav { flex-direction: column; gap: 4px; overflow: visible; }
  .mastnav a {
    width: 100%; min-height: 45px; padding: 0 12px; border-radius: 8px;
    font-size: var(--fs-cap); text-transform: none; letter-spacing: 0.02em;
  }
  .mastnav a.mastnav__2nd { color: var(--mute); }
  .mastnav a[data-nav="market"] { margin-top: 12px; border-top: 1px solid var(--app-line); border-radius: 0; padding-top: 12px; min-height: 57px; }
  .mastnav a.is-on { color: var(--ink); background: rgba(76, 195, 138, 0.07); }
  .mastnav a.is-on::after { left: 0; right: auto; top: 10px; bottom: 10px; width: 2px; height: auto; background: var(--green); }
  .mastnav__more { display: none; }
  .masthead__status {
    order: 3; margin: auto 0 0; padding: 15px 7px 0; border-top: 1px solid var(--app-line);
    align-items: flex-start; line-height: 1.4;
  }
  .masthead__status .mono { font-size: var(--fs-floor); white-space: normal; }
  .filters {
    grid-column: 2; grid-row: 1; position: relative; z-index: 35;
    display: flex; flex-wrap: nowrap; gap: 8px 16px; min-height: 62px;
    padding: 10px 150px 10px 24px; overflow-x: auto; overflow-y: hidden;
    background: rgba(9, 11, 10, 0.96); border-bottom: 1px solid var(--app-line);
    scrollbar-width: thin; scrollbar-color: rgba(76, 195, 138, 0.72) rgba(255, 255, 255, 0.035);
  }
  .filters::-webkit-scrollbar { height: 5px; }
  .filters::-webkit-scrollbar-track { background: rgba(255, 255, 255, 0.035); }
  .filters::-webkit-scrollbar-thumb { background: rgba(76, 195, 138, 0.72); border-radius: 999px; }
  .filters__overflow-cue:not([hidden]) {
    grid-column: 2; grid-row: 1; align-self: center; justify-self: end; z-index: 36;
    display: inline-flex; align-items: center; gap: 7px; min-height: 40px; margin-right: 0;
    padding: 0 13px 0 29px; border: 1px solid rgba(76, 195, 138, 0.32); border-radius: 999px;
    background: linear-gradient(90deg, rgba(9, 11, 10, 0.74), rgba(9, 11, 10, 0.98) 24%, #0b0e0c 48%);
    color: var(--green); font: var(--fs-floor)/1 var(--mono); letter-spacing: 0.04em;
    box-shadow: -16px 0 24px rgba(9, 11, 10, 0.8); cursor: pointer;
  }
  .filters__overflow-cue:hover { border-color: rgba(76, 195, 138, 0.68); color: var(--ink); }
  .filters__group { flex: none; flex-wrap: nowrap; }
  .filters__group--hoods { flex: none; }
  .filters__hoods { overflow: visible; }
  .main {
    grid-column: 2; grid-row: 2; min-height: 0; overflow-y: auto; overflow-x: clip;
    padding: 0 clamp(22px, 2.3vw, 38px) max(40px, env(safe-area-inset-bottom));
    scrollbar-gutter: stable; overscroll-behavior-y: contain;
  }
  .deckfoot { display: none; }
  .filter-dock { display: none !important; }
  .vera-inspector-open .scrim { display: none !important; }
  .inspector { width: min(48vw, 660px); border-left-color: var(--app-line-strong); box-shadow: -18px 0 50px rgba(0, 0, 0, 0.28); }
}

/* iPad and compact desktop: full-height top-chrome application. */
@media (min-width: 761px) and (max-width: 1179px) {
  html, body { height: 100%; overflow: hidden; }
  .shell { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto auto minmax(0, 1fr); width: 100%; height: 100dvh; padding: 0 max(18px, env(safe-area-inset-left)); }
  .masthead { position: relative; top: auto; padding-top: max(14px, env(safe-area-inset-top)); }
  .filters { flex-wrap: nowrap; overflow-x: auto; min-height: 62px; }
  .filters { scrollbar-width: thin; scrollbar-color: rgba(76, 195, 138, 0.72) rgba(255, 255, 255, 0.035); }
  .filters::-webkit-scrollbar { height: 5px; }
  .filters::-webkit-scrollbar-track { background: rgba(255, 255, 255, 0.035); }
  .filters::-webkit-scrollbar-thumb { background: rgba(76, 195, 138, 0.72); border-radius: 999px; }
  .filters__group { flex: none; flex-wrap: nowrap; }
  .main { min-height: 0; overflow-y: auto; overflow-x: clip; padding-bottom: max(36px, env(safe-area-inset-bottom)); }
  .deckfoot { display: none; }
  .workspace { padding-top: 18px; }
  .workspacehead { gap: 18px; }
  .workspace-metrics { grid-template-columns: repeat(2, minmax(76px, 1fr)); }
  .decision-layout { grid-template-columns: 260px minmax(0, 1fr); }
  .evidence-card { grid-column: span 3; }
  .shortlist { max-height: calc(100dvh - 238px); }
  .inspector { width: min(68vw, 620px); }
}

/* iPhone: one scrolling surface, bottom tabs, filters as a sheet, and card
   rows instead of a 14-column table. */
@media (max-width: 760px) {
  html, body { height: 100%; overflow: hidden; }
  html.vera-filters-open .shell::after {
    content: ""; position: fixed; z-index: 85; inset: 0; pointer-events: auto;
    background: rgba(4, 6, 5, 0.68);
  }
  body { font-size: 16px; }
  .shell {
    display: grid; grid-template-rows: auto auto minmax(0, 1fr); width: 100%; height: 100dvh;
    margin: 0; padding: 0 max(14px, env(safe-area-inset-right)) 0 max(14px, env(safe-area-inset-left));
  }
  .masthead {
    position: relative; top: auto; display: flex; flex-wrap: nowrap; min-width: 0;
    padding: max(10px, env(safe-area-inset-top)) 0 10px; border-bottom: 1px solid var(--app-line);
    /* A filtered ancestor becomes the containing block for fixed children in
       WebKit and Chromium. Keep this header solid so the nested tab zone can
       anchor to the viewport bottom instead of the 59px masthead. */
    background: rgba(9, 11, 10, 0.98); backdrop-filter: none; -webkit-backdrop-filter: none;
  }
  .insignia { width: 38px; height: 38px; border-radius: 9px; }
  .brand { gap: 9px; min-width: 0; }
  .brand__name { font-size: 21px; }
  .brand__tag { font-size: var(--fs-floor); }
  .masthead__status { min-width: 0; margin-left: auto; }
  .masthead__status .mono { max-width: 122px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--fs-floor); }
  .mastnav__zone { position: fixed; left: 0; right: 0; bottom: 0; z-index: 75; width: 100%; margin: 0; padding: 6px max(7px, env(safe-area-inset-right)) max(6px, env(safe-area-inset-bottom)) max(7px, env(safe-area-inset-left)); border-top: 1px solid var(--app-line); background: rgba(12, 15, 13, 0.96); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); }
  .mastnav { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 2px; overflow: visible; }
  .mastnav a, .mastnav__more { min-width: 0; min-height: 50px; padding: 7px 3px; border-radius: 8px; align-items: center; justify-content: center; font-size: var(--fs-floor); letter-spacing: 0; text-transform: none; }
  .mastnav a.is-on, .mastnav__more.is-on { background: rgba(76, 195, 138, 0.08); color: var(--ink); }
  .mastnav a.is-on::after, .mastnav__more.is-on::before { left: 25%; right: 25%; top: 0; bottom: auto; height: 2px; background: var(--green); }
  .mastnav__sheet { position: fixed; top: auto; left: 10px; right: 10px; bottom: calc(68px + env(safe-area-inset-bottom)); min-width: 0; border-radius: 13px; }
  .main { min-height: 0; overflow-y: auto; overflow-x: clip; padding-bottom: calc(82px + env(safe-area-inset-bottom)); overscroll-behavior-y: contain; }
  .deckfoot { display: none; }
  .page { padding-top: 0; }
  .workspace { padding: 12px 0 28px; }
  .workspacehead { display: block; padding: 2px 0 12px; }
  .workspacehead__title { font-size: clamp(27px, 9vw, 36px); }
  .workspacehead__lede { margin-top: 5px; font-size: 12.5px; line-height: 1.45; }
  .workspacehead__actions { justify-content: flex-start; margin-top: 10px; }
  .workspace-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 10px; }
  .workspace-metrics div { min-width: 0; padding: 8px 7px; }
  .workspace-metrics dt { font-size: var(--fs-floor); }
  .workspace-metrics dd { font-size: 16px; }
  .signalbar { margin-top: 8px; }
  .signalbar .pills { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 3px; scrollbar-width: none; }
  .signalbar .pills::-webkit-scrollbar { display: none; }
  .workspace .filter-button { display: none; }
  .pills button { flex: none; min-height: 44px; padding: 6px 11px; font-size: var(--fs-micro); }
  .dtoolbar { margin: 7px 0; gap: 7px; }
  .command-search { flex-basis: 100%; }
  .command-search input[type="search"] { min-height: 44px; font-size: 16px; padding: 8px 42px 8px 12px; }
  .command-search kbd, .dtoolbar__density { display: none; }
  .dtoolbar__count { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .filter-dock {
    display: inline-flex; align-items: center; justify-content: center; position: relative;
    right: auto; bottom: auto; z-index: 74; justify-self: end; margin: 8px 0;
    min-height: 46px; padding: 10px 15px; box-shadow: 0 12px 30px rgba(0, 0, 0, 0.36);
  }
  .filters {
    position: fixed; z-index: 86; left: max(8px, env(safe-area-inset-left)); right: max(8px, env(safe-area-inset-right));
    top: max(calc(env(safe-area-inset-top) + 70px), 82px); bottom: calc(68px + env(safe-area-inset-bottom));
    display: flex; flex-direction: column; flex-wrap: nowrap; align-items: stretch; gap: 8px;
    padding: max(14px, env(safe-area-inset-top)) max(14px, env(safe-area-inset-right)) max(14px, env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left)); overflow: auto; border: 1px solid var(--app-line-strong); border-radius: 16px;
    background: #0c0f0d; box-shadow: 0 24px 70px rgba(0, 0, 0, 0.62), 0 0 0 1px rgba(76,195,138,.05) inset;
    overscroll-behavior: contain;
    transform: translateY(18px); opacity: 0; visibility: hidden; pointer-events: none;
    transition: transform var(--app-settle) var(--app-ease-out), opacity var(--app-signal) ease, visibility 0s linear var(--app-settle);
  }
  .filters.is-open { transform: translateY(0); opacity: 1; visibility: visible; pointer-events: auto; transition-delay: 0s; }
  .filters.is-open ~ .filter-dock { opacity: 0; visibility: hidden; pointer-events: none; }
  .filters__sheethead { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 2px 0 14px; border-bottom: 1px solid var(--app-line-strong); }
  .filters__eyebrow { margin: 0 0 3px; color: var(--green); font: var(--fs-floor)/1.3 var(--mono); letter-spacing: .1em; text-transform: uppercase; }
  .filters__sheethead h2 { margin: 0; color: var(--ink); font: 600 23px/1.05 var(--serif); letter-spacing: -.015em; }
  .filters__done { display: inline-flex !important; align-items: center; justify-content: center; min-width: 66px; min-height: 44px; border: 1px solid rgba(76,195,138,.52); border-radius: 999px; background: var(--green-soft); color: var(--green); font: 600 13px/1 var(--sans); }
  .filters__group { flex-wrap: wrap; width: 100%; overflow: visible; padding: 8px 0; border-bottom: 1px solid var(--app-line); }
  .filters__group--hoods { display: block; }
  .filters__hoods { margin-top: 7px; }
  .filters__label { position: static; width: 100%; min-height: 20px; padding: 0; background: transparent; }
  .filters button { min-height: 44px; font-size: var(--fs-micro); }
  .tablewrap { max-height: none; overflow: visible; border: 0; background: transparent; }
  .dt, .dt tbody { display: block; width: 100%; }
  .dt thead { display: none; }
  .dt tbody { display: grid; gap: 7px; }
  .dt tbody tr {
    display: grid; grid-template-columns: auto auto minmax(0, 1fr); gap: 5px 11px;
    min-height: 92px; padding: 11px; border: 1px solid var(--app-line); border-radius: 10px;
    background: var(--app-surface);
  }
  .dt tbody td { display: none; padding: 0; border: 0; white-space: normal; }
  .dt tbody td:nth-child(1), .dt tbody td:nth-child(2), .dt tbody td:nth-child(4),
  .dt tbody td:nth-child(5), .dt tbody td:nth-child(13) { display: block; }
  .dt tbody td:nth-child(1) { grid-column: 1; grid-row: 1; }
  .dt tbody td:nth-child(2) { grid-column: 2; grid-row: 1; font-family: var(--mono); color: var(--ink); }
  .dt tbody td:nth-child(4) { grid-column: 1 / -1; grid-row: 2; }
  .dt tbody td:nth-child(5) { grid-column: 1 / 3; grid-row: 3; font-size: var(--fs-cap); }
  .dt tbody td:nth-child(13) { grid-column: 3; grid-row: 3; text-align: right; font-size: var(--fs-micro); }
  .browse-mobile-trust, [data-browse-trust] { display: flex; grid-column: 1 / -1; grid-row: 4; align-items: center; gap: 6px; min-width: 0; color: var(--mute); font: var(--fs-floor)/1.4 var(--mono); }
  .browse-mobile-trust strong, [data-browse-trust] strong { color: var(--amber); font-weight: 500; }
  .browse-mobile-trust.is-good strong, [data-browse-trust].is-good strong { color: var(--green); }
  .browse-mobile-trust.is-bad strong, [data-browse-trust].is-bad strong { color: var(--red); }
  .t-title { min-width: 0; max-width: none; font-size: 14px; }
  .atlas-mode { margin-right: auto; }
  .workspacehead--atlas .filter-button { display: none; }
  .maplay, .maplay--vector { display: block; margin-top: 8px; }
  .atlas-layout--map .atlas-list-pane { display: none; }
  .atlas-layout--list .atlas-map-pane { display: none; }
  .atlas-layout--list .atlas-list-pane { display: block; }
  .veramap { height: calc(100dvh - 245px); min-height: 340px; }
  /* The fixed iPhone tabs cover the map's lower edge. Attribution lives in a
     dedicated top-left rail, narrowed so it cannot cover the zoom control. */
  .atlas-layout--map .maplibregl-ctrl-top-left { right: 74px; }
  .atlas-layout--map .maplibregl-ctrl-top-left .maplibregl-ctrl-attrib.maplibregl-compact {
    padding: 0 0 0 44px !important;
  }
  .atlas-layout--map .maplibregl-ctrl-top-left .maplibregl-ctrl-attrib.maplibregl-compact-show {
    padding: 5px 10px 5px 48px !important;
  }
  .atlas-map-pane { padding: 8px; }
  .atlas-map-pane .mp-key { display: none; }
  .atlas-list-pane { padding: 8px 12px; }
  .atlas-list-pane .walklist { max-height: none; }
  .walkrow { min-height: 64px; }
  .hunt-privacy { max-width: none; margin-top: 10px; }
  .decision-layout { display: block; margin-top: 8px; }
  .hunt-erase { grid-template-columns: 1fr; align-items: stretch; }
  .shortlist { position: static; max-height: none; margin-bottom: 8px; }
  .shortlist__list { display: flex; overflow-x: auto; gap: 8px; padding: 8px; scroll-snap-type: x proximity; scrollbar-width: none; }
  .shortlist__list::-webkit-scrollbar { display: none; }
  .shortlist-row { flex: 0 0 min(82vw, 310px); scroll-snap-align: start; }
  .casebook__head { padding: 16px; }
  .casebook__head h2 { font-size: 27px; }
  .casebook-score { min-width: 92px; }
  .casebook-score b { font-size: 25px; }
  .evidence-grid { grid-template-columns: 1fr; padding: 9px; }
  .evidence-card, .evidence-card--facts, .evidence-card--score { grid-column: auto; }
  .evidence-card dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .decision-timeline { margin: 0 9px 9px; padding: 13px; }
  .decision-timeline__head { align-items: flex-start; }
  .decision-timeline ol { display: flex; overflow-x: auto; gap: 0; padding-bottom: 4px; }
  .decision-timeline li { flex: 0 0 96px; }
  .inspector { width: 100vw; border-left: 0; }
  .scrim { display: none; }
  .inspector__body { padding-bottom: max(30px, env(safe-area-inset-bottom)); }
  .toast { bottom: calc(78px + env(safe-area-inset-bottom)); }
  .drophead { padding-top: 20px; }
  .drophead__title { font-size: clamp(34px, 12vw, 49px); }
  .anchorbar { margin-top: 13px; }
}

/* Gentle equivalents keep state legible without vestibular motion. */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .workspacehead { animation: none; }
  .inspector, .filters, .toast { transition-property: opacity, background-color, border-color; transition-duration: 140ms; transform: none !important; }
  .inspector:not(.is-open), .filters:not(.is-open) { opacity: 0; }
  button:active, .dropcard__hit:active, .walkrow:active, .shortlist-row:active { transform: none; }
}

@media (prefers-reduced-transparency: reduce) {
  .masthead, .mastnav__zone, .filters { background: #0c0f0d; backdrop-filter: none; -webkit-backdrop-filter: none; }
}

@media (prefers-contrast: more) {
  :root { --app-line: rgba(255, 255, 255, 0.28); --app-line-strong: rgba(255, 255, 255, 0.5); }
  .panel, .tablewrap, .shortlist, .casebook, .evidence-card { border-color: var(--app-line-strong); }
}

/* Publication age stays visible while browsing, including on phones. */
.feed-freshness{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;margin:12px 0;border:1px solid #9d7840;border-radius:10px;background:#241f17;color:#f4d49b;font-size:14px;line-height:1.5}.feed-freshness[hidden]{display:none}.feed-freshness p{margin:0;max-width:85ch}.feed-freshness a{color:inherit;flex:none;min-height:44px;display:flex;align-items:center;text-underline-offset:4px}@media(max-width:640px){.feed-freshness{display:block;padding:12px 14px}.feed-freshness a{margin-top:6px}}

/* ============================================================
   VERA INDEX — 2026-10
   Reference: the Whole Earth Index (wholeearth.info), a reference
   directory built from hairline rules, numbered cells, and a serif
   that reads like a catalog. VERA is an index of apartments on the
   record: black ground, newsprint ink, rules instead of boxes,
   serif for what a person reads, mono for what VERA measures, and
   colour only where it carries a verdict. Icons: Phosphor Light.
   ============================================================ */

@font-face {
  font-family: "IBM Plex Serif";
  src: url("../fonts/ibm-plex-serif-latin-400-normal.woff2") format("woff2");
  font-weight: 400;
  font-display: swap;
}

:root {
  --bg: #0b0b0a;
  --bg2: #0f0f0e;
  --panel: #0b0b0a;
  --panel2: #151514;
  --line: rgba(240, 236, 227, 0.16);
  --line2: rgba(240, 236, 227, 0.34);
  --ink: #f0ece3;
  --dim: #cbc5b8;
  --mute: #a29c90;
  --green: #62d69d;
  --green-soft: rgba(98, 214, 157, 0.12);
  --amber: #f2be58;
  --red: #ff7d6e;
  --blue: #a3c3ff;
  --brass: #f2c46d;
  --clay: #f39068;
  --sans: "IBM Plex Serif", Georgia, serif;
  --r: 0px;
  --r-sm: 0px;
  --shadow: none;
  --app-bg: #0b0b0a;
  --app-rail: #0b0b0a;
  --app-surface: #0b0b0a;
  --app-surface-2: #171716;
  --app-line: rgba(240, 236, 227, 0.16);
  --app-line-strong: rgba(240, 236, 227, 0.34);
  --app-rail-w: 214px;
  --ico: 20px;
}

html, body { background: var(--bg); }
body { font-family: var(--serif); font-weight: 400; color: var(--ink); }
.mono, .tag, .prov, .kicker, .workspace-count, .filters__label { font-variant-numeric: tabular-nums; }
:focus-visible { outline: 2px solid var(--brass); outline-offset: 3px; border-radius: 0; }
::selection { background: var(--ink); color: var(--bg); }

/* Icons are paint; the words beside them are the label. */
.ico { width: var(--ico); height: var(--ico); flex: none; fill: currentColor; vertical-align: -0.2em; }
.ico--end { margin-left: auto; }

/* Rules, not boxes. Decorative glow and lift retire. */
.shell::before, .panel::before, .dropcard__hit::before, .page[data-page="today"] .drophead::after { display: none; }
.panel, .tablewrap, .shortlist, .casebook, .evidence-card, .hunt-erase, .hunt-privacy,
.decision-timeline, .workspace-metrics, .filter-button, .filter-dock, .atlas-mode, .atlas-mode button,
.dtoolbar__density, .dtoolbar__density button, .filters button, .pills button, .tag, .dropcard__hit,
.bubcard, .wire__card, .notice, .feed-freshness, .mastnav__sheet, .inspector__tabsheet, .shortlist-row,
.casebook-score, .movein-watch, .command-search kbd, .dt tbody tr, .steward, .anchorbar,
.anchorbar select, .anchorbar input[type="number"], .commute, .qualify, .dropcard__map, .insp-map--open,
.dropcard__mapaction, .shot__n, .gal__btn, .dropcard__open, .ghostbtn, .bigbtn, .recwarn,
.filters__done, .filters__overflow-cue, .filter-button [data-filter-count], .nv__badge,
.command-search input[type="search"], .dtoolbar input[type="search"], .maploader__mark, .mapfailure {
  border-radius: 0;
}
.panel, .tablewrap, .shortlist, .casebook, .evidence-card, .wire__card, .bubcard, .dropcard__hit {
  background: var(--bg); box-shadow: none;
}

/* ---------- masthead: a wordmark, not a badge ---------- */
.brand__name {
  font-family: var(--serif); font-weight: 500; font-size: 28px;
  letter-spacing: 0.04em; line-height: 1; color: var(--ink);
}
.brand__tag {
  font-family: var(--mono); font-size: 11.5px; letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--mute);
}
.masthead__status .mono { color: var(--dim); }

.mastnav a, .mastnav__more { gap: 10px; }
.mastnav a span, .mastnav__more span { min-width: 0; }
.mastnav__more::after { content: none; }
.mastnav__sheet { background: var(--bg); border-color: var(--line2); padding: 0; }
.mastnav__sheet a {
  display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 0 16px;
  border-radius: 0; border-bottom: 1px solid var(--line); font-family: var(--serif);
  font-size: 16px; letter-spacing: 0; text-transform: none; color: var(--dim);
}
.mastnav__sheet a:last-child { border-bottom: 0; }
.mastnav__sheet a.is-on { background: var(--ink); color: var(--bg); }
.nv__badge { margin-left: auto; background: var(--green); color: #07130c; }

/* ---------- kickers, headings, workspace chrome ---------- */
.kicker, .drophead__kicker {
  display: flex; align-items: center; gap: 9px; margin: 0 0 14px;
  font-family: var(--mono); font-size: 12px; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--dim);
}
.drophead__kicker .ico { --ico: 18px; color: var(--green); }
.pagehead__title, .workspacehead__title, .casebook__head h2, .mapfailure h2 {
  font-family: var(--serif); font-weight: 500; letter-spacing: -0.015em;
}
.workspacehead { border-bottom-color: var(--line2); }
.workspacehead__lede { color: var(--dim); font-size: 15px; }
.workspace-count b { color: var(--ink); }
.workspace-metrics { gap: 0; background: transparent; border-color: var(--line2); }
.workspace-metrics div { background: var(--bg); border-right: 1px solid var(--line); }
.workspace-metrics div:last-child { border-right: 0; }
.workspace-metrics dd { color: var(--ink); }

/* ---------- controls: square, mono, inverted when chosen ---------- */
.filters button, .pills button, .filter-button, .filter-dock, .atlas-mode button,
.dtoolbar__density button, .ghostbtn, .bigbtn {
  font-family: var(--mono); font-size: 13px; letter-spacing: 0.02em;
  border-color: var(--line2); color: var(--dim); background: var(--bg);
}
.filters button.is-on, .pills button.is-on, .atlas-mode button.is-on, .dtoolbar__density button.is-on {
  background: var(--ink); border-color: var(--ink); color: var(--bg);
}
.atlas-mode { border-color: var(--line2); background: var(--bg); padding: 0; gap: 0; }
.filters__label { color: var(--mute); }
.filters__done { border-color: var(--ink); background: var(--ink); color: var(--bg); font-family: var(--mono); }
.filters__overflow-cue:not([hidden]) { border-color: var(--line2); color: var(--ink); background: var(--bg); box-shadow: -16px 0 24px var(--bg); }
.filter-button [data-filter-count], .filter-dock [data-filter-count] { background: var(--green); color: #07130c; }
.command-search input[type="search"], .dtoolbar input[type="search"] {
  background: var(--bg); border: 1px solid var(--line2); color: var(--ink); font-family: var(--mono);
}

/* ---------- tags: square stamps, colour only for a verdict ---------- */
.tag {
  font-family: var(--mono); font-size: 12px; letter-spacing: 0.02em; padding: 4px 8px;
  border: 1px solid var(--line2); background: transparent; color: var(--dim);
}
.tag--green { color: var(--green); border-color: color-mix(in srgb, var(--green) 55%, transparent); background: transparent; }
.tag--amber { color: var(--amber); border-color: color-mix(in srgb, var(--amber) 55%, transparent); background: transparent; }
.tag--red { color: var(--red); border-color: color-mix(in srgb, var(--red) 55%, transparent); background: transparent; }
.tag--blue { color: var(--blue); border-color: color-mix(in srgb, var(--blue) 55%, transparent); background: transparent; }

/* ============================================================
   TODAY — the answer first
   ============================================================ */
.page[data-page="today"] .drophead {
  max-width: none; padding: 34px 0 26px; border: 0; border-bottom: 1px solid var(--line2);
  border-radius: 0; background: none; overflow: visible;
}
.drophead__title {
  max-width: 18ch; margin: 0; font-family: var(--serif); font-weight: 500;
  font-size: clamp(34px, 5.2vw, 66px); line-height: 1.03; letter-spacing: -0.02em;
}
.drophead__count { font-weight: 600; color: var(--green); }
.drophead__lede { max-width: 60ch; margin: 16px 0 0; color: var(--dim); font-size: clamp(17px, 1.7vw, 20px); line-height: 1.5; }
.drophead__lede b { font-family: var(--mono); font-weight: 500; color: var(--ink); }
.drophead__lede a { color: var(--ink); text-underline-offset: 3px; }

.dropstats {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 26px 0 0;
  border-top: 1px solid var(--line2); border-bottom: 1px solid var(--line2); max-width: 880px;
}
.dropstats div { padding: 13px 16px 14px; border-right: 1px solid var(--line); min-width: 0; }
.dropstats div:first-child { padding-left: 0; }
.dropstats div:last-child { border-right: 0; }
.dropstats dt { font-family: var(--mono); font-size: 11.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mute); }
.dropstats dd { margin: 6px 0 0; font-family: var(--mono); font-weight: 500; font-size: clamp(22px, 2.4vw, 30px); line-height: 1; color: var(--ink); white-space: nowrap; }
.dropstats .is-go dd { color: var(--green); }
.dropstats dd .mono { font-size: inherit; color: inherit; letter-spacing: 0; }

.drophead__trust { margin: 16px 0 0; max-width: 72ch; color: var(--mute); font-size: 15px; }
.drophead__trust a { color: var(--dim); text-underline-offset: 3px; }
.drophead__since { color: var(--green); }

.anchorfold { margin-top: 20px; max-width: 880px; border: 1px solid var(--line); }
.anchorfold > summary {
  display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 14px;
  cursor: pointer; list-style: none; font-family: var(--mono); font-size: 13px;
  letter-spacing: 0.06em; text-transform: uppercase; color: var(--dim);
}
.anchorfold > summary::-webkit-details-marker { display: none; }
.anchorfold > summary em { font-style: normal; color: var(--mute); text-transform: none; letter-spacing: 0; }
.anchorfold > summary .ico--end { transition: transform 160ms var(--ease-out); }
.anchorfold[open] > summary { border-bottom: 1px solid var(--line); color: var(--ink); }
.anchorfold[open] > summary .ico--end { transform: rotate(180deg); }
.anchorfold > summary:hover { color: var(--ink); }
.anchorfold .anchorbar { margin: 0; border: 0; background: none; padding: 14px; }
.anchorbar__label { color: var(--mute); }
.anchorbar select, .anchorbar input[type="number"] { background: var(--bg); border-color: var(--line2); font-family: var(--mono); min-height: 44px; }

/* ---------- the drop: numbered index entries ---------- */
.dropgrid { display: grid; grid-template-columns: 1fr; gap: 0; margin-top: 0; }
.dropcard { border-bottom: 1px solid var(--line2); padding: 28px 0; }
.dropcard__hit {
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 0;
  border: 0; overflow: visible; background: none;
}
@media (hover: hover) and (pointer: fine) {
  .dropcard__hit:hover { transform: none; box-shadow: none; border-color: transparent; }
  .dropcard__hit:hover .gal__shot, .dropcard__hit:hover .port { transform: none; }
}
.dropcard__hit:active { transform: none; }
.dropcard__media { aspect-ratio: 16 / 10; border: 1px solid var(--line); background: var(--bg2); }
.dropcard__no {
  position: absolute; top: 12px; left: 12px; right: auto; z-index: 3;
  display: inline-grid; place-items: center; width: 36px; height: 36px; padding: 0;
  border: 1px solid var(--ink); border-radius: 50%; background: var(--bg); color: var(--ink);
  font: 500 15px/1 var(--mono); backdrop-filter: none;
}
.dropcard__fresh {
  position: absolute; left: 12px; bottom: 12px; top: auto; right: auto; z-index: 3;
  padding: 5px 8px; border: 0; border-radius: 0; background: var(--green); color: #07130c;
  font: 600 11.5px/1 var(--mono); letter-spacing: 0.1em; text-transform: uppercase; box-shadow: none;
}
.dropcard__fresh::after { content: none; }
.shot__n { background: rgba(11, 11, 10, 0.86); border-color: var(--line); backdrop-filter: none; }
.gal__btn { background: rgba(11, 11, 10, 0.86); border: 1px solid var(--line2); color: var(--ink); }
.gal__dot { border-radius: 50%; }
.gal__dot.is-on { background: var(--ink); }

.dropcard__body { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; padding: 20px 0 0; }
.dropcard__main { min-width: 0; }

.dropcard__verdict { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin: 0 0 10px; }
.verdict {
  display: inline-flex; align-items: center; gap: 8px; font: 500 12px/1.2 var(--mono);
  letter-spacing: 0.12em; text-transform: uppercase;
}
.verdict .ico { --ico: 18px; }
.verdict--go { color: var(--green); }
.dropcard__score { display: inline-flex; align-items: center; gap: 9px; }
.dropcard__score small { font: 400 11.5px/1 var(--mono); letter-spacing: 0.13em; text-transform: uppercase; color: var(--mute); }
.scorering__track { stroke: rgba(240, 236, 227, 0.14); }
.scorering__arc { stroke: var(--green); stroke-linecap: butt; }

.dropcard__rent {
  position: static; margin: 0; padding: 0; border: 0; border-radius: 0; background: none; backdrop-filter: none;
  font: 500 clamp(34px, 3.6vw, 46px)/1 var(--mono); letter-spacing: -0.02em; color: var(--ink);
}
.dropcard__rent small { margin-left: 4px; font-size: 15px; font-weight: 400; letter-spacing: 0; color: var(--mute); }
.dropcard__name {
  margin: 12px 0 0; font-family: var(--serif); font-weight: 500;
  font-size: clamp(25px, 2.6vw, 34px); line-height: 1.1; letter-spacing: -0.01em;
}
.dropcard__hood {
  display: flex; align-items: flex-start; gap: 7px; margin: 8px 0 0;
  font: 400 13.5px/1.45 var(--mono); letter-spacing: 0.01em; color: var(--dim);
}
.dropcard__hood .ico { --ico: 17px; margin-top: 1px; color: var(--mute); }

.dropcard__facts {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 20px 0 0;
  border-top: 1px solid var(--line2); border-left: 1px solid var(--line);
}
.fact { min-width: 0; padding: 12px 14px 14px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.fact dt {
  display: flex; align-items: center; gap: 7px; font: 400 11.5px/1.2 var(--mono);
  letter-spacing: 0.13em; text-transform: uppercase; color: var(--mute);
}
.fact dt .ico { --ico: 18px; color: var(--dim); }
.fact dd { margin: 8px 0 0; }
.fact dd b { display: block; font-family: var(--serif); font-weight: 600; font-size: 17.5px; line-height: 1.25; color: var(--ink); }
.fact dd > span { display: block; margin-top: 4px; font-size: 14px; line-height: 1.4; color: var(--dim); }
.fact dd .bul { width: 18px; height: 18px; font-size: 11px; }
.fact dd .tag { display: inline-block; margin-top: 2px; }
.fact.steward, .fact.dropcard__owner {
  display: block; margin: 0; padding: 12px 14px 14px; border-radius: 0; background: none;
  border-top: 0; border-left: 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line);
}
.fact.steward--A dd b, .fact.steward--B dd b { color: var(--green); }
.fact.steward--C dd b { color: var(--amber); }
.fact.steward--D dd b, .fact.steward--E dd b, .fact.steward--F dd b { color: var(--red); }
.fact.steward--\? dd b { color: var(--dim); }

.dropcard__commute { margin: 14px 0 0; }
.commute { border-color: var(--line2); }
.dropcard__why { list-style: none; display: grid; gap: 6px; margin: 16px 0 0; padding: 0; }
.dropcard__why li, .dropcard__flaw {
  display: flex; align-items: flex-start; gap: 10px; margin: 0;
  font-family: var(--serif); font-style: normal; font-size: 16px; line-height: 1.45; color: var(--dim);
}
.dropcard__why .ico, .dropcard__flaw .ico { --ico: 19px; margin-top: 2px; }
.dropcard__why .ico { color: var(--green); }
.dropcard__flaw { margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--line); }
.dropcard__flaw .ico, .dropcard__flaw b { color: var(--amber); }
.dropcard__flaw b { font-weight: 600; }
.qualify { margin: 12px 0 0; background: none; border: 1px solid currentColor; padding: 6px 10px; font-size: 13px; }
.dropcard__chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 16px 0 0; }
.dropcard__chips:empty { display: none; }
.deal__scale { border-radius: 0; background: rgba(240, 236, 227, 0.14); }
.deal__label { font-family: var(--mono); font-size: 12.5px; }
.prov { margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--line); font-size: 12px; color: var(--mute); }

.dropcard__open {
  display: flex; align-items: center; gap: 10px; width: 100%; min-height: 50px; margin-top: 18px; padding: 0 16px;
  border: 1px solid var(--ink); background: var(--ink); color: var(--bg);
  font: 600 13px/1 var(--mono); letter-spacing: 0.08em; text-transform: uppercase;
  transition: background-color var(--app-signal) ease, color var(--app-signal) ease;
}
.dropcard__open .ico { --ico: 18px; }
.dropcard__open:hover { background: var(--green); border-color: var(--green); color: #07130c; }

.dropcard__map { border-color: var(--line); background: var(--bg2); }
.dropcard__mapaction {
  right: 0; bottom: 0; gap: 7px; min-height: 40px; padding: 0 12px; border: 0;
  border-top: 1px solid var(--line2); border-left: 1px solid var(--line2);
  background: var(--bg); backdrop-filter: none; -webkit-backdrop-filter: none;
  font: 500 12px/1 var(--mono); letter-spacing: 0.08em; text-transform: uppercase;
}
.dropcard__mapaction .ico { --ico: 16px; }

/* near misses, empty days, the next drop */
.bubble { border-top: 0; margin-top: 40px; padding-top: 0; }
.bubble__title, .dropempty h2, .wire__card h2 { font-family: var(--serif); font-weight: 500; }
.bubblegrid { gap: 0; border-top: 1px solid var(--line2); border-left: 1px solid var(--line); }
.bubcard { border: 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
@media (hover: hover) and (pointer: fine) { .bubcard:hover { transform: none; background: var(--panel2); } }
.bubcard__why { color: var(--amber); }
.wire__card { border: 1px solid var(--line); background: var(--bg); }
.recwarn { border: 1px solid color-mix(in srgb, var(--amber) 60%, transparent); background: none; color: var(--amber); }
.feed-freshness { border-radius: 0; border-color: color-mix(in srgb, var(--amber) 60%, transparent); background: #17130b; color: #f6d79d; }

/* ---------- inspector, tables, hunt ---------- */
.inspector { background: var(--bg); border-left: 1px solid var(--line2); }
.dt thead th { background: var(--bg); font-family: var(--mono); letter-spacing: 0.08em; text-transform: uppercase; color: var(--mute); border-bottom: 1px solid var(--line2); }
.dt tbody tr.is-open { box-shadow: inset 3px 0 0 var(--ink); }
.shortlist-row { background: var(--bg); }
.shortlist-row.is-selected { border-color: var(--ink); background: var(--panel2); box-shadow: inset 3px 0 0 var(--ink); }
.casebook-score b, .shortlist-row__score, .evidence-big { color: var(--ink) !important; }

/* ============================================================
   SHELL BY DEVICE
   ============================================================ */
@media (min-width: 1180px) {
  .masthead { padding: 28px 0 max(20px, env(safe-area-inset-bottom)); gap: 0; background: var(--bg); }
  .brand { padding: 0 20px 22px; border-bottom: 1px solid var(--line2); }
  .brand__name { font-size: 30px; }
  .brand__tag { max-width: none; white-space: nowrap; }
  .mastnav { gap: 0; }
  .mastnav a {
    min-height: 50px; padding: 0 20px; border-radius: 0; border-bottom: 1px solid var(--line);
    font-family: var(--serif); font-size: 16.5px; letter-spacing: 0; color: var(--dim);
  }
  .mastnav a .ico { color: var(--mute); }
  .mastnav a.mastnav__2nd { color: var(--dim); font-size: 15.5px; }
  .mastnav a[data-nav="market"] { margin-top: 26px; border-top: 1px solid var(--line); padding-top: 0; min-height: 50px; }
  .mastnav a:hover { color: var(--ink); background: var(--panel2); }
  .mastnav a.is-on, .mastnav a.is-on .ico { background: var(--ink); color: var(--bg); }
  .mastnav a.is-on::after { content: none; }
  .masthead__status { margin: auto 0 0; padding: 16px 20px 0; border-top: 1px solid var(--line); }
  .filters { background: var(--bg); }
  /* Desktop entry: photo and its neighbourhood on the left, the answer on
     the right. The body dissolves so its map can join the left column. */
  .dropcard__hit { grid-template-columns: minmax(0, 0.92fr) minmax(0, 1fr); grid-template-rows: auto 1fr; gap: 0 34px; align-items: start; }
  .dropcard__media { grid-column: 1; grid-row: 1; aspect-ratio: 4 / 3; }
  .dropcard__body { display: contents; }
  .dropcard__main { grid-column: 2; grid-row: 1 / span 2; }
  .dropcard__map { grid-column: 1; grid-row: 2; width: 100%; max-width: none; margin-top: 16px; }
}

@media (min-width: 761px) and (max-width: 1179px) {
  .masthead { background: var(--bg); }
  .mastnav a, .mastnav__more { font-family: var(--serif); font-size: 15.5px; letter-spacing: 0; text-transform: none; border-radius: 0; }
  .mastnav a.is-on, .mastnav__more.is-on { background: var(--ink); color: var(--bg); }
  .mastnav a.is-on::after, .mastnav__more.is-on::before { content: none; }
  .dropcard__body { grid-template-columns: minmax(0, 1fr) 240px; gap: 24px; }
}

/* Inherited shell, phone range. The platform stylesheet beneath this layer
   is desktop-first and styles the phone tab bar inside its own
   (max-width: 760px) block, so these overrides keep the same range. Every
   VERA component below is authored mobile-first. */
@media (max-width: 760px) {
  .masthead { background: var(--bg); padding-bottom: 12px; }
  .brand__name { font-size: 24px; }
  .brand__tag { font-size: 10.5px; }
  .mastnav__zone { background: var(--bg); border-top: 1px solid var(--line2); backdrop-filter: none; -webkit-backdrop-filter: none; padding-top: 0; }
  .mastnav { gap: 0; }
  .mastnav a, .mastnav__more {
    flex-direction: column; gap: 4px; min-height: 58px; padding: 8px 2px 6px; border-radius: 0;
    font-family: var(--mono); font-size: 11px; letter-spacing: 0.02em; color: var(--mute);
  }
  .mastnav a .ico, .mastnav__more .ico { --ico: 23px; }
  .mastnav a.is-on, .mastnav__more.is-on { background: none; color: var(--ink); }
  .mastnav a.is-on::after, .mastnav__more.is-on::before { content: ""; left: 20%; right: 20%; top: -1px; height: 2px; background: var(--ink); border-radius: 0; }
  .mastnav__sheet { left: 0; right: 0; bottom: calc(58px + env(safe-area-inset-bottom)); border-radius: 0; border-left: 0; border-right: 0; }
}

/* ============================================================
   VERA COMPONENTS — mobile first. Phone values are the base;
   tablet (761px) and desktop (1180px) layers only add.
   ============================================================ */
body { font-size: 16.5px; }
.page[data-page="today"] .drophead { padding: 22px 0; }
.drophead__title { font-size: clamp(32px, 9.6vw, 42px); }
.drophead__lede { font-size: 17px; }
.dropstats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dropstats div { padding: 12px 12px 13px; border-bottom: 1px solid var(--line); }
.dropstats div:nth-child(odd) { padding-left: 0; }
.dropstats div:nth-child(even) { border-right: 0; }
.dropstats div:nth-child(n+3) { border-bottom: 0; }
.dropstats dd { font-size: 25px; }
.anchorfold > summary { font-size: 12px; padding: 0 12px; gap: 8px; }
.anchorfold > summary em { display: none; }
.anchorbar select { max-width: none; width: 100%; }
.dropcard { padding: 22px 0 26px; }
.dropcard__media { aspect-ratio: 4 / 3; }
.dropcard__rent { font-size: 36px; }
.dropcard__name { font-size: 26px; }
.fact, .fact.steward, .fact.dropcard__owner { padding: 11px 11px 12px; }
.fact dd b { font-size: 16px; }
.fact dd > span { font-size: 13px; }
.dropcard__map { max-width: none; }
.bubblegrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dropcard__why { font-size: 16px; }

@media (min-width: 761px) {
  body { font-size: 18px; }
  .page[data-page="today"] .drophead { padding: 34px 0 26px; }
  .drophead__title { font-size: clamp(34px, 5.2vw, 66px); }
  .drophead__lede { font-size: clamp(17px, 1.7vw, 20px); }
  .dropstats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .dropstats div { padding: 13px 16px 14px; border-bottom: 0; }
  .dropstats div:nth-child(odd) { padding-left: 16px; }
  .dropstats div:nth-child(even) { border-right: 1px solid var(--line); }
  .dropstats div:first-child { padding-left: 0; }
  .dropstats div:last-child { border-right: 0; }
  .dropstats dd { font-size: clamp(22px, 2.4vw, 30px); }
  .anchorfold > summary { font-size: 13px; padding: 0 14px; gap: 10px; }
  .anchorfold > summary em { display: inline; }
  .anchorbar select { max-width: 240px; width: auto; }
  .dropcard { padding: 28px 0; }
  .dropcard__media { aspect-ratio: 16 / 10; }
  .dropcard__rent { font-size: clamp(34px, 3.6vw, 46px); }
  .dropcard__name { font-size: clamp(25px, 2.6vw, 34px); }
  .fact, .fact.steward, .fact.dropcard__owner { padding: 12px 14px 14px; }
  .fact dd b { font-size: 17.5px; }
  .fact dd > span { font-size: 14px; }
  .dropcard__why { font-size: 17px; }
}
@media (min-width: 1121px) {
  .bubblegrid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (min-width: 1180px) {
  .dropcard__media { aspect-ratio: 4 / 3; }
}

@media (prefers-reduced-motion: reduce) {
  .anchorfold > summary .ico--end, .dropcard__open { transition: none; }
}
@media (prefers-contrast: more) {
  :root { --line: rgba(255, 255, 255, 0.4); --line2: rgba(255, 255, 255, 0.7); --mute: #c4beb2; }
}
.mp-swatch--cluster {
  width: 18px; height: 18px; display: inline-grid; place-items: center; border: 1px solid var(--ink);
  background: var(--bg); color: var(--ink); font: 600 10px/1 var(--mono); font-style: normal;
}
.filters__overflow-cue:not([hidden]) { border-radius: 0; }
.verdict, .dropcard__score small { white-space: nowrap; }
.verdict { font-size: 11.5px; letter-spacing: 0.08em; gap: 6px; }
.dropcard__score { gap: 7px; }
.dropcard__score small { font-size: 11px; letter-spacing: 0.1em; }
@media (min-width: 761px) {
  .verdict { font-size: 12px; letter-spacing: 0.12em; gap: 8px; }
  .dropcard__score { gap: 9px; }
  .dropcard__score small { font-size: 11.5px; letter-spacing: 0.13em; }
}

/* The stale-publication notice joins the shell's flow on tablets and phones.
   Three implicit rows could not hold it: the filter row collapsed to zero and
   the filter control slid over the results whenever the feed was old. Every
   shell row is named, so an extra notice can never displace the workspace. */
@media (min-width: 761px) and (max-width: 1179px) {
  .shell { grid-template-rows: auto auto auto minmax(0, 1fr); }
  .masthead { grid-row: 1; }
  .feed-freshness { grid-row: 2; }
  .filters { grid-row: 3; }
  .main { grid-row: 4; }
}
@media (max-width: 760px) {
  .shell { grid-template-rows: auto auto auto minmax(0, 1fr); }
  .masthead { grid-row: 1; }
  .feed-freshness { grid-row: 2; }
  .filter-dock { grid-row: 3; }
  .main { grid-row: 4; }
}

/* Street snapshots: real streets from the Atlas style, rendered as a still. */
.snap { position: relative; display: block; width: 100%; overflow: hidden; background: var(--bg2); }
.snap__img { display: block; width: 100%; height: 100%; object-fit: cover; }
.snap__pin {
  position: absolute; left: 50%; top: 50%; z-index: 2; width: 18px; height: 18px; margin: -9px 0 0 -9px;
  border: 3px solid var(--bg); border-radius: 50%; background: var(--green);
  box-shadow: 0 0 0 1px var(--green), 0 0 0 10px rgba(98, 214, 157, 0.16);
}
.snap--approx .snap__pin {
  width: 128px; height: 128px; margin: -64px 0 0 -64px; border: 1px dashed var(--green);
  background: rgba(98, 214, 157, 0.1); box-shadow: none;
}
/* Status is generated content with empty alt text: seen, never spoken as
   part of the map button's name. */
.snap::before {
  content: "Loading street map…" / ""; position: absolute; inset: 0; z-index: 1; display: grid; place-items: center;
  padding: 16px; text-align: center; font: 400 12px/1.4 var(--mono); letter-spacing: 0.08em; text-transform: uppercase; color: var(--mute);
}
.snap[data-snap-state="failed"]::before { content: "Street map unavailable here · open it in Atlas" / ""; }
.snap[data-snap-state="ready"]::before { content: none; }
.snap:not([data-snap-state="ready"]) .snap__pin { opacity: 0.35; }
/* Map credit: always visible on the image; the System page carries the
   readable credit, so it is not repeated inside the button's name. */
.snap::after {
  content: "© OpenStreetMap" / ""; position: absolute; left: 0; bottom: 0; z-index: 2; padding: 5px 8px;
  background: rgba(11, 11, 10, 0.82); color: var(--dim); font: 400 10.5px/1 var(--mono);
}
.dropcard__map .snap, .insp-map .snap { border: 0; }

/* ============================================================
   VERA CONCIERGE — 2026-10
   The drop opens like a private briefing: a greeting, a tally that
   lands on the real numbers, the standouts, then the entries. Gold
   marks what VERA recommends; green still means cleared. All motion
   is short, runs once, moves only transforms, and never hides content.
   ============================================================ */
:root { --gold: #e9c27a; --gold-soft: rgba(233, 194, 122, 0.12); }

.drophead__greet {
  margin: 0 0 10px; font-family: var(--serif); font-style: italic; font-weight: 400;
  font-size: clamp(18px, 1.8vw, 22px); color: var(--gold);
}
.drophead__count, .dropstats dd { display: inline-block; }
.dropstats .is-go dd.is-tallied { animation: vera-lockin 520ms var(--ease-out) 1; }
/* The headline never counts: it states the real number from first paint and
   lands one gold pulse as the tally below finishes. */
.drophead__count.is-lockin { animation: vera-lockin 560ms var(--ease-out) 760ms 1 both; }
@keyframes vera-lockin {
  0% { transform: scale(1); }
  40% { transform: scale(1.14); text-shadow: 0 0 22px rgba(98, 214, 157, 0.55); }
  100% { transform: scale(1); text-shadow: none; }
}

/* standouts */
.standouts { margin: 30px 0 4px; }
.standouts__title {
  display: flex; align-items: center; gap: 9px; margin: 0 0 12px;
  font: 500 12px/1.2 var(--mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold);
}
.standouts__title .ico { --ico: 18px; }
.standouts__grid {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid color-mix(in srgb, var(--gold) 55%, transparent); border-left: 1px solid var(--line);
}
.standout {
  display: grid; align-content: start; gap: 6px; min-width: 0; padding: 16px 16px 15px; text-align: left;
  border: 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); border-radius: 0;
  background: var(--bg); color: var(--ink); cursor: pointer;
  transition: background-color var(--app-signal) ease;
}
.standout__label { display: flex; align-items: center; gap: 8px; font: 400 11.5px/1.2 var(--mono); letter-spacing: 0.12em; text-transform: uppercase; color: var(--gold); }
.standout__label .ico { --ico: 17px; }
.standout__value { font: 600 clamp(19px, 1.8vw, 23px)/1.15 var(--serif); color: var(--ink); }
.standout__sub { font-size: 14px; line-height: 1.4; color: var(--dim); }
.standout__sub .bul { width: 17px; height: 17px; font-size: 10.5px; }
.standout__who { display: flex; align-items: center; gap: 8px; margin-top: 6px; font: 400 12.5px/1.3 var(--mono); color: var(--mute); }
.standout__who i {
  display: inline-grid; place-items: center; flex: none; width: 22px; height: 22px; border: 1px solid var(--line2);
  border-radius: 50%; font: 500 11px/1 var(--mono); font-style: normal; color: var(--ink);
}
@media (hover: hover) and (pointer: fine) {
  .standout:hover { background: var(--gold-soft); }
  .standout:hover .standout__who { color: var(--ink); }
}

/* top pick */
.dropcard__toppick {
  position: absolute; top: 12px; right: 12px; z-index: 3; display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 10px; background: var(--gold); color: #1a1407;
  font: 600 11.5px/1 var(--mono); letter-spacing: 0.12em; text-transform: uppercase;
}
.dropcard__toppick .ico { --ico: 15px; }
.dropcard:first-child .dropcard__media { border-color: color-mix(in srgb, var(--gold) 60%, transparent); }

/* actions: save beside the ledger */
.dropcard__actions { display: grid; grid-template-columns: minmax(0, 0.42fr) minmax(0, 1fr); gap: 8px; margin-top: 18px; }
.dropcard__actions .dropcard__open { margin-top: 0; }
.dropcard__save {
  position: relative; display: flex; align-items: center; justify-content: center; gap: 9px; min-height: 50px; padding: 0 14px;
  border: 1px solid var(--line2); border-radius: 0; background: var(--bg); color: var(--ink);
  font: 600 13px/1 var(--mono); letter-spacing: 0.08em; text-transform: uppercase;
  transition: border-color var(--app-signal) ease, background-color var(--app-signal) ease, color var(--app-signal) ease;
}
.dropcard__save .ico { --ico: 19px; }
.dropcard__save.is-saved { border-color: var(--gold); color: var(--gold); background: var(--gold-soft); }
@media (hover: hover) and (pointer: fine) { .dropcard__save:hover { border-color: var(--gold); color: var(--gold); } }
.dropcard__save.is-stamped .ico { animation: vera-stamp 200ms cubic-bezier(0.2, 0, 0, 1) 1; }
.dropcard__save.is-stamped::after {
  content: ""; position: absolute; inset: -1px; border: 1px solid var(--gold); pointer-events: none;
  animation: vera-ring 240ms var(--ease-out) 1 forwards;
}
@keyframes vera-stamp { 0% { transform: scale(0.7) rotate(-8deg); } 60% { transform: scale(1.15) rotate(2deg); } 100% { transform: none; } }
@keyframes vera-ring { 0% { transform: scale(1); opacity: 1; } 100% { transform: scale(1.12, 1.4); opacity: 0; } }

/* entrance: transform only, content is always visible */
.dropcard.will-reveal .dropcard__hit { transform: translateY(12px); transition: transform 280ms cubic-bezier(0.2, 0, 0, 1); }
.dropcard.will-reveal .gal__shot, .dropcard.will-reveal .dropcard__media .port { transform: scale(1.02); transition: transform 320ms var(--ease-out); }
.dropcard.will-reveal.is-in .dropcard__hit { transform: none; }
.dropcard.will-reveal.is-in .gal__shot, .dropcard.will-reveal.is-in .dropcard__media .port { transform: none; }

/* a standout jump lands on its entry with a brief gold frame */
.dropcard.is-spotlit .dropcard__media { animation: vera-spot 640ms var(--ease-out) 1; }
@keyframes vera-spot { 0% { box-shadow: 0 0 0 0 rgba(233, 194, 122, 0); } 25% { box-shadow: 0 0 0 4px rgba(233, 194, 122, 0.85); } 100% { box-shadow: 0 0 0 0 rgba(233, 194, 122, 0); } }


@media (prefers-reduced-motion: reduce) {
  .dropcard.will-reveal .dropcard__hit, .dropcard.will-reveal .gal__shot, .dropcard.will-reveal .fact { transform: none !important; transition: none !important; }
  .dropcard__save.is-stamped .ico, .dropcard__save.is-stamped::after, .dropcard.is-spotlit .dropcard__media,
  .dropstats .is-go dd.is-tallied, .drophead__count.is-lockin { animation: none !important; }
}

/* Standouts, mobile first: one swipeable strip on phones so the first entry
   stays close; a three-column ruled row from tablets up. */
.standouts { margin-top: 24px; }
.standouts__grid {
  display: flex; grid-template-columns: minmax(0, 1fr); overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-inline: contain;
  scrollbar-width: none; border-left: 0;
}
.standouts__grid::-webkit-scrollbar { display: none; }
.standout {
  flex: 0 0 min(80vw, 300px); grid-template-columns: minmax(0, 1fr); column-gap: 12px; scroll-snap-align: start;
  border-left: 1px solid var(--line); padding: 14px 14px 13px;
}
.standout + .standout { border-left: 0; }
.standout__label, .standout__value, .standout__sub, .standout__who { grid-column: 1; }
.standout__who { margin-top: 2px; }
.standout__value { font-size: 21px; }
.dropcard__toppick { top: 10px; right: 10px; }
@media (min-width: 761px) {
  .standouts { margin-top: 30px; }
  .standouts__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: visible; scroll-snap-type: none; border-left: 1px solid var(--line); }
  .standout { flex: none; column-gap: 6px; border-left: 0; padding: 16px 16px 15px; }
  .standout__who { margin-top: 6px; }
  .standout__value { font-size: clamp(19px, 1.8vw, 23px); }
  .dropcard__toppick { top: 12px; right: 12px; }
}

/* Confirmations speak in the index voice. */
.toast {
  border-radius: 0 !important; border: 1px solid var(--line2) !important; background: var(--bg) !important;
  color: var(--ink) !important; font: 500 13px/1.3 var(--mono) !important; letter-spacing: 0.02em; box-shadow: none !important;
}

/* VERA renders its workspace in place (saves, tallies, snapshots), so the
   browser's scroll anchoring has nothing to protect and was moving the page
   between a tap and its click. The workspace scroller holds still instead. */
.main { overflow-anchor: none; }

/* ============================================================
   TOUR MODE — mobile first.
   Base: a phone held one-handed. The deck fills the dynamic
   viewport, respects safe areas, and keeps every action in the
   bottom thumb zone. Short landscape phones, tablets and desktops
   each add a layer below. Motion is transform-only and finite.
   ============================================================ */

/* entry, under the stat strip */
.tourbtn {
  display: flex; align-items: center; gap: 12px; width: 100%; min-height: 60px; margin-top: 16px; padding: 10px 14px;
  border: 1px solid var(--gold); border-radius: 0; background: var(--gold-soft); color: var(--ink); text-align: left;
}
.tourbtn > .ico:first-child { --ico: 24px; color: var(--gold); }
.tourbtn b { display: block; font: 600 13.5px/1.2 var(--mono); letter-spacing: 0.1em; text-transform: uppercase; color: var(--gold); }
.tourbtn small { display: block; margin-top: 4px; font: 400 14px/1.35 var(--serif); color: var(--dim); }
@media (hover: hover) and (pointer: fine) { .tourbtn:hover { background: rgba(233, 194, 122, 0.2); } }

/* the deck */
html.vera-tour-open, html.vera-tour-open body { overflow: hidden; }
html.vera-tour-open .main { overflow: hidden; }
.tour {
  position: fixed; inset: 0; z-index: 140; display: flex; flex-direction: column;
  height: 100vh; height: 100dvh; background: var(--bg); color: var(--ink);
  padding: max(10px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(10px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
  opacity: 0; transform: translateY(18px); transition: opacity 180ms ease, transform 280ms var(--ease-out);
}
.tour.is-open { opacity: 1; transform: none; }
.tour > * { width: 100%; }

.tour__top { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 2px 12px; padding: 2px 0 10px; }
.tour__title { grid-column: 1; margin: 0; font: 500 12px/1.2 var(--mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold); }
.tour__count { grid-column: 1; margin: 0; font: 500 15px/1.2 var(--mono); color: var(--ink); }
.tour__close {
  grid-column: 2; grid-row: 1 / span 2; display: inline-grid; place-items: center; width: 48px; height: 48px;
  border: 1px solid var(--line2); border-radius: 0; background: var(--bg); color: var(--ink);
}
.tour__close .ico { --ico: 22px; }
.tour__bar { grid-column: 1 / -1; height: 2px; margin-top: 8px; background: var(--line); overflow: hidden; }
.tour__bar i { display: block; height: 100%; background: var(--gold); transform-origin: 0 50%; transform: scaleX(0); transition: transform 320ms var(--ease-out); }

.tour__stage { position: relative; flex: 1 1 auto; min-height: 0; display: grid; }
.tourcard {
  position: relative; display: flex; flex-direction: column; min-height: 0; height: 100%; overflow: hidden;
  border: 1px solid var(--line2); background: var(--bg); touch-action: pan-y; user-select: none; -webkit-user-select: none;
  transform-origin: 50% 110%; transition: transform 230ms var(--ease-out);
}
.tourcard.is-dragging { transition: none; cursor: grabbing; }
.tourcard.is-arriving { animation: vera-tour-arrive 300ms var(--ease-out) 1; }
@keyframes vera-tour-arrive { from { transform: translateY(14px) scale(0.97); } to { transform: none; } }
.tourcard__media { position: relative; flex: 0 0 auto; height: clamp(130px, 30dvh, 420px); overflow: hidden; background: var(--bg2); }
.tourcard__media img, .tourcard__media .port { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
@media (min-height: 700px) { .tourcard__media { height: clamp(200px, 38dvh, 420px); } }
.tourcard__no {
  position: absolute; top: 10px; left: 10px; z-index: 2; display: inline-grid; place-items: center; width: 34px; height: 34px;
  border: 1px solid var(--ink); border-radius: 50%; background: var(--bg); font: 500 14px/1 var(--mono);
}
.tourcard__stamp {
  position: absolute; top: 18px; z-index: 3; padding: 6px 12px; border: 2px solid currentColor;
  font: 700 22px/1 var(--mono); letter-spacing: 0.14em; text-transform: uppercase; background: rgba(11, 11, 10, 0.72);
  pointer-events: none; opacity: 0;
}
.tourcard__stamp--save { left: 16px; color: var(--gold); transform: rotate(-10deg); opacity: var(--save, 0); }
.tourcard__stamp--pass { right: 16px; color: var(--ink); transform: rotate(10deg); opacity: var(--pass, 0); }
.tourcard .dropcard__toppick { top: 10px; right: 10px; }
.tourcard__body { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 14px 14px 16px; }
.tourcard__body .dropcard__rent { font-size: clamp(30px, 9vw, 40px); }
.tourcard__body .dropcard__name { margin-top: 8px; font-size: clamp(21px, 6vw, 28px); }
.tourcard__body .dropcard__facts { margin-top: 14px; }

.tour__actions { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.2fr); gap: 8px; padding-top: 10px; }
.tour__act {
  display: flex; align-items: center; justify-content: center; gap: 7px; min-height: 56px; padding: 0 8px;
  border: 1px solid var(--line2); border-radius: 0; background: var(--bg); color: var(--ink);
  font: 600 13px/1 var(--mono); letter-spacing: 0.04em; text-transform: uppercase;
}
.tour__act .ico { --ico: 20px; }
/* The smallest phones keep the words and drop the Details glyph. */
.tour__act--info .ico { display: none; }
@media (min-width: 360px) {
  .tour__act { letter-spacing: 0.08em; }
  .tour__act--info .ico { display: inline-block; }
}
.tour__act--save { border-color: var(--gold); background: var(--gold); color: #1a1407; }
.tour__act--save[aria-pressed="true"] { background: var(--gold-soft); color: var(--gold); }
.tour__act:active { transform: scale(0.97); }
.tour__hint { margin: 8px 0 0; text-align: center; font: 400 11.5px/1.4 var(--mono); color: var(--mute); }
.tour__hint--keys { display: none; }
@media (hover: hover) and (pointer: fine) {
  .tour__hint--touch { display: none; }
  .tour__hint--keys { display: inline; }
}

/* the end of the tour */
.tourcard--end { justify-content: center; touch-action: auto; user-select: auto; -webkit-user-select: auto; }
.tourend { padding: 22px 18px; overflow-y: auto; }
.tourend__kicker { display: flex; align-items: center; gap: 8px; margin: 0; font: 500 12px/1.2 var(--mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold); }
.tourend__title { margin: 12px 0 0; font: 500 clamp(28px, 8vw, 40px)/1.08 var(--serif); letter-spacing: -0.015em; }
.tourend__list { list-style: none; margin: 18px 0 0; padding: 0; border-top: 1px solid var(--line2); }
.tourend__list li { display: grid; gap: 3px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.tourend__list b { font: 600 17px/1.25 var(--serif); }
.tourend__list span { font: 400 13px/1.3 var(--mono); color: var(--dim); }
.tourend__note { margin: 14px 0 0; color: var(--dim); }
.tourend__actions { display: grid; gap: 8px; margin-top: 20px; }

/* short landscape phones: photo beside the facts, hint hidden */
@media (orientation: landscape) and (max-height: 520px) {
  .tour__top { padding-bottom: 6px; }
  .tour__count { font-size: 13px; }
  .tour__close { width: 44px; height: 44px; }
  .tourcard { flex-direction: row; }
  .tourcard__media { flex: 0 0 42%; height: auto; }
  .tour__actions { padding-top: 6px; }
  .tour__act { min-height: 48px; }
  .tour__hint { display: none; }
}

/* tablet: a centered stage, still thumb-led */
@media (min-width: 761px) {
  .tour { padding-left: max(24px, env(safe-area-inset-left)); padding-right: max(24px, env(safe-area-inset-right)); }
  .tour > * { max-width: 640px; margin-inline: auto; }
  .tourbtn { width: auto; max-width: 880px; }
}
@media (min-width: 761px) and (min-height: 521px) {
  .tourcard__media { height: clamp(220px, 40dvh, 460px); }
}

/* desktop: photo and facts side by side, keyboard first */
@media (min-width: 1180px) {
  .tour { padding-top: 28px; padding-bottom: 24px; }
  .tour > * { max-width: 1040px; }
  .tourcard { flex-direction: row; }
  .tourcard__media { flex: 0 0 52%; height: auto; }
  .tourcard__body { padding: 22px 24px; }
  .tour__actions { grid-template-columns: 180px 160px 220px; justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
  .tour, .tourcard, .tour__bar i { transition: none !important; }
  .tour { transform: none; }
  .tourcard.is-arriving { animation: none !important; }
}

.tour.is-complete .tour__hint { visibility: hidden; }
.tourcard__body:focus-visible { outline-offset: -3px; }

/* ============================================================
   AUDIT FIXES — 2026-10-18 (mobile-first research audit)
   ============================================================ */
/* A scroll container resets touch-action, so the facts half of a Tour card
   needs its own pan-y or the browser cancels horizontal swipes there. */
.tourcard__body { touch-action: pan-y; }
/* iOS zooms into form controls under 16px; personalization stays put. */
.anchorbar select, .anchorbar input[type="number"], .command-search input[type="search"] { font-size: 16px; }
/* The verdict row may wrap on the narrowest phones instead of clipping the
   VERA score off-screen. */
.dropcard__verdict { flex-wrap: wrap; row-gap: 8px; }
/* The fixed phone tab bar must never hide the focused control (WCAG 2.4.11). */
@media (max-width: 760px) {
  .main { scroll-padding-bottom: calc(96px + env(safe-area-inset-bottom)); scroll-padding-top: 12px; }
  /* The My-hunt count rides on the icon instead of pushing a third row. */
  .mastnav a[data-nav="hunt"] { position: relative; }
  .mastnav a[data-nav="hunt"] .nv__badge { position: absolute; top: 4px; left: calc(50% + 6px); margin: 0; min-width: 18px; padding: 1px 5px; font-size: 10.5px; line-height: 1.3; text-align: center; }
}

/* ============================================================
   AUDIT FIXES II — 2026-10-18. Mobile first: phone base, then
   short screens, tablet (761px) and desktop (1180px) layers.
   ============================================================ */

/* The answer first: one ruled line per cleared apartment, right under the
   headline. Price and place on the left, walk, building and cash beneath. */
.answers { list-style: none; margin: 18px 0 0; padding: 0; border-top: 1px solid var(--line2); }
.answers li { border-bottom: 1px solid var(--line); }
.answer {
  display: grid; grid-template-columns: 30px minmax(0, 1fr) 18px; align-items: center; column-gap: 10px; row-gap: 4px;
  width: 100%; min-height: 64px; padding: 10px 0; border: 0; border-radius: 0; background: none; color: var(--ink); text-align: left;
}
.answer__no {
  grid-row: 1 / span 2; display: inline-grid; place-items: center; width: 28px; height: 28px;
  border: 1px solid var(--line2); border-radius: 50%; font: 500 12.5px/1 var(--mono); font-style: normal; color: var(--dim);
}
.answers li:first-child .answer__no { border-color: var(--gold); color: var(--gold); }
.answer__main { display: flex; align-items: baseline; gap: 10px; min-width: 0; }
.answer__rent { font: 600 20px/1.1 var(--mono); color: var(--ink); letter-spacing: -0.01em; }
.answer__where { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 400 15px/1.3 var(--serif); color: var(--dim); }
.answer__facts { grid-column: 2; display: flex; flex-wrap: wrap; gap: 2px 12px; font: 400 12.5px/1.35 var(--mono); color: var(--dim); }
.answer__facts > span { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
.answer__facts .ico { --ico: 14px; color: var(--mute); }
.answer__grade.steward--A, .answer__grade.steward--B { color: var(--green); }
.answer__grade.steward--C { color: var(--amber); }
.answer__grade.steward--D, .answer__grade.steward--E, .answer__grade.steward--F { color: var(--red); }
.answer > .ico--end { grid-column: 3; grid-row: 1 / span 2; --ico: 16px; color: var(--mute); }
.answers__more { margin: 8px 0 0; font: 400 12.5px/1.4 var(--mono); color: var(--mute); }
@media (hover: hover) and (pointer: fine) {
  .answer:hover { background: var(--gold-soft); }
  .answer:hover > .ico--end { color: var(--gold); }
}
.answer:focus-visible { outline: 2px solid var(--gold); outline-offset: -2px; }

.dropstats__note { display: flex; align-items: flex-start; gap: 8px; margin: 10px 0 0; font: 400 13px/1.45 var(--mono); color: var(--mute); }
.dropstats__note .ico { --ico: 15px; flex: none; margin-top: 2px; }
.dropgrid__rank { display: flex; align-items: flex-start; gap: 8px; margin: 26px 0 0; font: 400 13px/1.45 var(--mono); color: var(--mute); }
.dropgrid__rank .ico { --ico: 15px; flex: none; margin-top: 2px; color: var(--gold); }
.page[data-page="today"] .drophead__trust { margin: 22px 0 0; }

/* The engine's own caution stays visible on the card. */
.verdict--care { color: var(--amber); }

/* A standout or answer jump hands focus to the card it lands on. */
.dropcard:focus { outline: none; }
.dropcard:focus-visible { outline: 2px solid var(--gold); outline-offset: 6px; }

@media (min-width: 761px) {
  .answers { margin-top: 22px; }
  .answer { grid-template-columns: 34px minmax(170px, 0.9fr) minmax(0, 1.6fr) 18px; grid-template-rows: auto; min-height: 58px; column-gap: 16px; padding: 8px 6px 8px 0; }
  .answer__no { grid-row: 1; width: 30px; height: 30px; }
  .answer__facts { grid-column: 3; gap: 4px 18px; font-size: 13px; }
  .answer > .ico--end { grid-row: 1; grid-column: 4; }
  .answer__rent { font-size: 21px; }
}

/* ---- Tour: Undo, overlapping exits, and every fact on small screens ---- */
.tour__top { grid-template-columns: minmax(0, 1fr) auto auto; }
.tour__undo {
  grid-column: 2; grid-row: 1 / span 2; display: inline-flex; align-items: center; gap: 6px; height: 48px; padding: 0 12px;
  border: 1px solid var(--line2); border-radius: 0; background: var(--bg); color: var(--ink);
  font: 600 12px/1 var(--mono); letter-spacing: 0.08em; text-transform: uppercase;
}
.tour__undo .ico { --ico: 18px; }
.tour__undo:disabled { opacity: 0.38; cursor: default; }
.tour__close { grid-column: 3; }
.tour__stage > .tourcard { grid-area: 1 / 1; }
.tourcard.is-leaving { z-index: 2; pointer-events: none; }
@media (hover: hover) and (pointer: fine) {
  .tour__undo:not(:disabled):hover, .tour__close:hover { border-color: var(--ink); }
}

/* Short portrait phones (SE, mini, 375x667): a shorter photo and a tighter
   body so price, walk, cash, and the building grade all show without
   scrolling inside the card. */
@media (orientation: portrait) and (max-height: 700px) {
  .tourcard__media { height: clamp(88px, 17dvh, 150px); }
  .tour__hint { display: none; }
}
@media (orientation: portrait) and (max-height: 700px), (orientation: landscape) and (max-height: 520px) {
  .tour__top { padding-bottom: 6px; }
  .tour__actions { padding-top: 8px; }
  .tourcard__body { padding: 8px 12px 10px; }
  .tourcard__body .dropcard__rent { font-size: 26px; }
  .tourcard__body .dropcard__name { margin-top: 0; font-size: 18px; line-height: 1.2; }
  .tourcard__body .dropcard__hood { margin-top: 3px; font-size: 14px; }
  .tourcard__body .dropcard__facts { margin-top: 8px; }
  .tourcard__body .fact { padding: 7px 9px 8px; }
  .tourcard__body .fact dd { margin-top: 3px; }
  .tourcard__body .fact dd b { font-size: 15px; }
  .tourcard__body .fact dd > span { font-size: 12px; }
}
@media (orientation: landscape) and (max-height: 520px) {
  .tourcard__media { flex-basis: 36%; }
  .tour__top { padding-top: 0; }
  .tourcard__body .dropcard__rent { font-size: 23px; }
  .tourcard__body .dropcard__name { font-size: 16.5px; }
  .tourcard__body .dropcard__hood { font-size: 13px; }
  /* A phone on its side has room for the four answers, not their footnotes;
     Details carries the rest. */
  .tourcard__body .fact dd > span { display: none; }
  .tourcard__body .fact dd { margin-top: 2px; }
}
/* Landscape tablets: photo beside the facts, as on desktop, in a wider deck. */
@media (min-width: 761px) and (max-width: 1179px) and (orientation: landscape) {
  .tour > * { max-width: 920px; }
  .tourcard { flex-direction: row; }
  .tourcard__media { flex: 0 0 46%; height: auto; }
  .tourcard__body { padding: 18px 20px; }
}

@media (prefers-reduced-motion: reduce) {
  .tour__act:active { transform: none; }
}

/* System: a visible way for an installed app to fetch a newer drop. */
.pagehead__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin: 18px 0 0; font: 400 13px/1.4 var(--mono); color: var(--mute); }
.pagehead__actions .ghostbtn { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; }
.pagehead__actions .ghostbtn .ico { --ico: 17px; }

/* Ledger "More" tab sheet and the phone nav sheet share one 48px row. */
.inspector__tabsheet button { display: flex; align-items: center; min-height: 48px; padding: 0 16px; }

/* Browse metrics never let a label run into the next cell. */
.workspace-metrics dt { overflow-wrap: anywhere; }
@media (max-width: 380px) {
  .workspace-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Card actions, phone first: Save and Share share a row, the ledger gets the
   full width under them; from 400px all three sit on one line. */
.dropcard__actions { grid-template-columns: minmax(0, 1fr) 50px; }
.dropcard__actions .dropcard__open { grid-column: 1 / -1; }
.dropcard__share {
  display: inline-grid; place-items: center; min-height: 50px; padding: 0;
  border: 1px solid var(--line2); border-radius: 0; background: var(--bg); color: var(--ink);
}
.dropcard__share .ico { --ico: 19px; }
@media (hover: hover) and (pointer: fine) { .dropcard__share:hover { border-color: var(--ink); } }
@media (min-width: 400px) {
  .dropcard__actions { grid-template-columns: minmax(0, 0.42fr) 50px minmax(0, 1fr); }
  .dropcard__actions .dropcard__open { grid-column: auto; }
}
.insp-actions .ghostbtn .ico, [data-insp-actions] .ghostbtn .ico { --ico: 16px; margin-right: 6px; }
/* The shortest landscape phones (SE on its side): the title and the count
   share one 44px row so the card keeps every answer in view. */
@media (orientation: landscape) and (max-height: 360px) {
  .tour__top { grid-template-columns: auto minmax(0, 1fr) auto auto; padding-bottom: 4px; }
  .tour__title, .tour__count { grid-row: 1; align-self: center; }
  .tour__count { grid-column: 2; }
  .tour__undo, .tour__close { grid-row: 1; height: 44px; }
  .tour__undo { grid-column: 3; }
  .tour__close { grid-column: 4; }
  .tour__bar { margin-top: 4px; }
  .tour__act { min-height: 44px; }
  .tourcard__media { flex-basis: 30%; }
  .tourcard__body .fact { padding: 6px 9px 7px; }
}
/* On a phone held sideways the name and place keep to one line each. */
@media (orientation: landscape) and (max-height: 520px) {
  .tourcard__body .dropcard__name, .tourcard__body .dropcard__hood > span,
  .tourcard__body .fact dd b { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .tourcard__body .dropcard__hood { min-width: 0; }
}

/* The ledger's More control sits beside its tablist; the zone draws the rule. */
.inspector__tabzone { display: flex; align-items: flex-end; border-bottom: 1px solid var(--line); }
.inspector__tabzone .inspector__tabs { flex: 1 1 auto; min-width: 0; border-bottom: 0; }
.inspector__tabzone > .inspector__tabmore { flex: none; min-height: 44px; margin-right: max(12px, env(safe-area-inset-right)); }
