*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --f-body:'Hanken Grotesk',sans-serif; --f-disp:'Bricolage Grotesque',sans-serif; --f-mono:'JetBrains Mono',monospace;
  --bg:#0a0a08; --surface:#111110; --surface2:#161614; --border:#2a2a26; --border2:#1a1a18;
  --neon:#a3e635; --neon-dim:rgba(163,230,53,0.1); --neon-line:rgba(163,230,53,0.4);
  --neon-fill:#a3e635; --on-neon:#0a0a08;
  --gold:#FFD700; --amber:#f5a623;
  --text:#e8e8e2; --muted:#8a8a80; --muted2:#7c7c72; --card-hover:#161614;
  --glow:rgba(163,230,53,0.06); --shadow:rgba(0,0,0,0.7);
  --grid-line:rgba(232,232,226,0.035); --map-url:url('nyc-tiles-dark.webp');
  --dot:rgba(163,230,53,0.055); --grid-fine:rgba(232,232,226,0.012); --grid-coarse:rgba(232,232,226,0.035);
}
:root[data-theme="light"]{
  --bg:#e6e4d8; --surface:#f8f6ef; --surface2:#efede2; --border:#c2bfae; --border2:#d6d3c4;
  --neon:#41680b; --neon-dim:rgba(65,104,11,0.09); --neon-line:rgba(65,104,11,0.5);
  --neon-fill:#41680b; --on-neon:#ffffff;
  --gold:#6f5612; --amber:#7d4f06;
  --text:#1d1b13; --muted:#565549; --muted2:#63624f; --card-hover:#efece0;
  --glow:rgba(77,124,15,0.05); --shadow:rgba(40,40,20,0.18);
  --grid-line:rgba(27,27,22,0.055); --map-url:url('nyc-tiles-light.webp');
  --dot:rgba(65,104,11,0.05); --grid-fine:rgba(27,27,22,0.010); --grid-coarse:rgba(27,27,22,0.028);
}
html{background:var(--bg)}
html,body{color:var(--text);font-family:var(--f-body);min-height:100vh;
  scrollbar-width:thin;scrollbar-color:var(--border) var(--bg)}
body{background:transparent;font-size:16px;line-height:1.5;transition:color .2s}
.topbar,#hero,#app,.map-attr,section.land,.land-foot{zoom:var(--ui-zoom,1)}
body::before{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;
  background-color:var(--bg);
  background-image:
    linear-gradient(var(--grid-line) 1px,transparent 1px),
    linear-gradient(90deg,var(--grid-line) 1px,transparent 1px),
    none;   /* the map image loads only behind Deep Dive (body.has-map), saving 1.3 MB on every other visit */
  background-size:52px 52px,52px 52px,cover;
  background-position:0 0,0 0,center 14%;
  background-repeat:repeat,repeat,no-repeat;
  transition:background-color .2s}
.map-attr{position:fixed;bottom:6px;right:10px;z-index:5;font-size:9px;color:var(--muted2);opacity:.55;pointer-events:none}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:var(--neon)}
::-webkit-scrollbar-corner{background:var(--bg)}
.mono{font-family:var(--f-mono)}
.chip:focus-visible,.seg button:focus-visible,.tab:focus-visible,.theme-btn:focus-visible,
.font-ctl button:focus-visible,.go-btn:focus-visible,.x-btn:focus-visible,.chg-btn:focus-visible,
.more-btn:focus-visible{outline:2px solid var(--neon);outline-offset:2px}

/* ── header ─────────────────────────────────────────── */
.topbar{display:flex;align-items:center;gap:16px;padding:16px 40px;border-bottom:1px solid var(--border);
  background:var(--surface);position:relative;overflow:hidden}
.topbar::before{content:'';position:absolute;top:-80px;left:-40px;width:280px;height:280px;
  background:radial-gradient(circle,var(--glow) 0%,transparent 70%);pointer-events:none}
.brand{display:flex;align-items:baseline;gap:10px}
.brand .b5{font-family:'Bebas Neue',sans-serif;font-size:34px;letter-spacing:2px;color:var(--neon);line-height:1}
.brand .bt{font-family:var(--f-mono);font-size:11px;letter-spacing:3px;color:var(--text);text-transform:uppercase}
.hdr-count{margin-left:auto;font-family:var(--f-mono);font-size:10px;letter-spacing:1.5px;color:var(--muted2);
  text-transform:uppercase;text-align:right}
.theme-btn{background:none;border:1px solid var(--border);color:var(--muted);width:34px;height:34px;
  display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px;transition:all .15s;flex:0 0 auto}
.theme-btn:hover{border-color:var(--neon);color:var(--neon)}
.font-ctl{display:flex;border:1px solid var(--border);flex:0 0 auto}
.font-ctl button{background:none;border:none;color:var(--muted);font-family:var(--f-mono);font-size:12px;
  width:34px;height:32px;cursor:pointer;transition:color .15s}
.font-ctl button:first-child{border-right:1px solid var(--border)}
.font-ctl button:hover{color:var(--neon)}
.form-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;align-items:stretch}
.form-grid input,.form-grid select{background:var(--surface);border:1px solid var(--border);color:var(--text);
  font-family:var(--f-body);font-size:14.5px;padding:10px 12px;outline:none}
.form-grid input:focus,.form-grid select:focus{border-color:var(--neon)}
.x-btn{background:none;border:1px solid var(--border);color:var(--muted);font-family:var(--f-mono);
  font-size:9px;letter-spacing:1px;text-transform:uppercase;padding:4px 10px;cursor:pointer;transition:all .15s}
.x-btn:hover{border-color:#ff4d4d;color:#ff4d4d}
.tag-src{font-family:var(--f-mono);font-size:8px;letter-spacing:1px;text-transform:uppercase;
  color:var(--muted2);border:1px solid var(--border);padding:1px 6px;margin-left:8px;vertical-align:2px}
.hdr-logo{width:44px;height:44px;flex:0 0 auto;display:block}
@media(max-width:640px){.topbar{padding:12px 18px}.hdr-count{display:none}}

/* ── hero / onboarding ──────────────────────────────── */
.hero{min-height:calc(100vh - 78px);display:flex;flex-direction:column;justify-content:center;align-items:center;
  padding:40px 40px 14vh;text-align:center;border-bottom:1px solid var(--border);position:relative;overflow:hidden}
.hero>*{width:100%}
.hero-card{max-width:760px;margin:0 auto;background:var(--surface);border:1px solid var(--border);
  padding:52px 56px 44px;box-shadow:0 24px 60px var(--shadow)}
@media(max-width:640px){.hero-card{padding:34px 22px 30px}}
.hero-card .search-wrap input{background:var(--bg)}
.hero-card .ac{background:var(--bg)}
.hero::before{content:'';position:absolute;top:-40px;right:10%;width:360px;height:360px;
  background:radial-gradient(circle,var(--glow) 0%,transparent 70%);pointer-events:none}
.hero-tag{font-family:var(--f-mono);font-size:13px;letter-spacing:3.5px;color:var(--neon);
  text-transform:uppercase;margin-bottom:16px}
.hero h1{font-family:var(--f-body);font-weight:500;font-size:clamp(26px,4vw,40px);line-height:1.15;
  letter-spacing:-.4px;max-width:680px;margin:0 auto 12px}
.hero h1 span{color:var(--neon)}
.hero-sub{color:var(--muted);font-size:16px;font-weight:300;max-width:540px;margin:0 auto 34px;line-height:1.6}
.searchrow{display:flex;gap:10px;max-width:620px;margin:0 auto;position:relative;z-index:30}
.search-wrap{flex:1;position:relative}
.search-wrap input{width:100%;background:var(--surface);border:1px solid var(--border);color:var(--text);
  font-family:var(--f-body);font-size:16px;padding:15px 20px;outline:none;transition:border-color .2s,box-shadow .2s}
.search-wrap input::placeholder{color:var(--muted)}
.search-wrap input:focus{border-color:var(--neon);box-shadow:0 0 0 3px var(--neon-dim)}
.go-btn{background:var(--neon-fill);color:var(--on-neon);border:none;font-family:var(--f-mono);
  font-size:12px;letter-spacing:1.5px;text-transform:uppercase;padding:0 26px;cursor:pointer;
  transition:opacity .15s,transform .1s;white-space:nowrap}
.go-btn:hover{opacity:.88;transform:translateY(-1px)}
.ac{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--surface);border:1px solid var(--border);
  max-height:330px;overflow-y:auto;z-index:100;text-align:left;display:none;box-shadow:0 16px 40px var(--shadow);
  scrollbar-width:thin;scrollbar-color:var(--border) transparent}
.ac-item{padding:11px 18px;cursor:pointer;display:flex;justify-content:space-between;align-items:baseline;gap:12px;
  border-bottom:1px solid var(--border2)}
.ac-item:last-child{border-bottom:none}
.ac-item:hover{background:var(--neon-dim)}
.ac-item .an{font-size:14.5px;font-weight:500}
.ac-item .ah{font-family:var(--f-mono);font-size:9px;letter-spacing:1.5px;color:var(--muted2);
  text-transform:uppercase;white-space:nowrap}
.ac-none{padding:14px 18px;font-size:13px;color:var(--muted)}
.skip-row{margin-top:20px}
.skip-row a{font-family:var(--f-mono);font-size:10px;letter-spacing:2px;color:var(--muted2);
  text-transform:uppercase;cursor:pointer;border-bottom:1px solid var(--border)}
.skip-row a:hover{color:var(--neon);border-color:var(--neon)}
@media(max-width:640px){.hero{padding:44px 18px 40px}.searchrow{flex-direction:column}.go-btn{padding:14px}}

/* ── selected establishment bar ─────────────────────── */
.mybar{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:18px 40px;
  border-bottom:1px solid var(--border);background:var(--surface)}
.mybar .nm{font-size:18px;font-weight:500;line-height:1.2}
.mybar .loc{font-family:var(--f-mono);font-size:9px;letter-spacing:2px;color:var(--muted2);text-transform:uppercase;margin-top:4px}
.pill{font-family:var(--f-mono);font-size:9px;letter-spacing:1px;text-transform:uppercase;
  padding:3px 8px;border:1px solid var(--neon-line);color:var(--neon)}
.chg-btn{margin-left:auto;font-family:var(--f-mono);font-size:10px;letter-spacing:1.5px;padding:7px 14px;
  border:1px solid var(--border);background:none;color:var(--muted);cursor:pointer;text-transform:uppercase;transition:all .15s}
.chg-btn:hover{border-color:var(--neon);color:var(--neon);background:var(--neon-dim)}
@media(max-width:640px){.mybar{padding:14px 18px}}

/* ── tabs ───────────────────────────────────────────── */
.tabs{display:flex;padding:0 40px;border-bottom:1px solid var(--border);overflow-x:auto;background:var(--bg);
  scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tab{font-family:var(--f-mono);font-size:11px;letter-spacing:2px;text-transform:uppercase;
  padding:15px 20px;border:none;background:none;color:var(--muted);cursor:pointer;
  border-bottom:2px solid transparent;transition:all .15s;white-space:nowrap}
.tab.active{color:var(--neon);border-bottom-color:var(--neon)}
.tab:hover:not(.active){color:var(--text)}
@media(max-width:640px){.tabs{padding:0 8px}.tab{padding:13px 14px}}
.pane{display:none;padding:30px 40px 90px}
.pane.on{display:block}
/* side map */
.workspace{display:flex;align-items:flex-start}
/* workspace panes: opaque technical surface (dot matrix over coarse grid, faint glow), the map image stays on the hero only */
.panes{flex:1;min-width:0;min-height:100vh;position:relative;
  background-color:var(--bg);
  background-image:
    radial-gradient(ellipse at 12% 0%,var(--glow) 0%,transparent 45%),
    radial-gradient(var(--dot) 0.8px,transparent 1.2px),
    linear-gradient(var(--grid-coarse) 1px,transparent 1px),
    linear-gradient(90deg,var(--grid-coarse) 1px,transparent 1px);
  background-size:100% 100%,44px 44px,132px 132px,132px 132px;
  background-position:0 0,22px 22px,0 0,0 0;
  transition:background-color .2s}
#sideMap{flex:0 0 400px;position:sticky;top:0;height:100vh;border-left:1px solid var(--border);
  background:var(--surface)}
#mapEl{width:100%;height:100%;background:var(--bg)}
#mapEl .leaflet-tile-pane{filter:saturate(.9)}
.leaflet-container{font-family:var(--f-body)}
#mapEl .leaflet-popup-content-wrapper{background:var(--surface2);border:1px solid var(--border);border-radius:0;
  box-shadow:0 8px 28px var(--shadow);color:var(--text)}
#mapEl .leaflet-popup-tip{background:var(--surface2)}
#mapEl .leaflet-popup-content{margin:12px 14px;font-size:13px;color:var(--text)}
#mapEl a.leaflet-popup-close-button{color:var(--muted)}
#mapEl a.leaflet-popup-close-button:hover{color:var(--text)}
.pop-name{font-weight:500;font-size:14.5px;margin-bottom:2px}
.pop-sub{font-family:var(--f-mono);font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted2);margin-bottom:6px}
.pop-med{font-family:var(--f-mono);font-size:12px;color:var(--muted)}
.pop-med>div{display:flex;justify-content:space-between;gap:16px;padding:2px 0;min-width:170px}.pop-med>div b{color:var(--neon)}.pop-med .pop-n{margin-top:4px;color:var(--muted2);font-size:11px}   /* one drink type per line (Sam, 9/22) */
.pop-med b{color:var(--neon);font-weight:500}
#mapEl .leaflet-control-attribution{background:var(--surface);color:var(--muted2);font-size:9px}
#mapEl .leaflet-control-attribution a{color:var(--muted)}
#mapEl .leaflet-bar a{background:var(--surface);color:var(--text);border-color:var(--border)}
#mapEl .leaflet-bar a:hover{background:var(--card-hover)}
@media(max-width:1080px){#sideMap{display:none}}
@media(max-width:640px){.pane{padding:22px 18px 70px}}

/* ── meta divider ───────────────────────────────────── */
.meta{font-family:var(--f-mono);font-size:11px;color:var(--muted);letter-spacing:1.5px;
  margin:26px 0 18px;display:flex;align-items:center;gap:12px;text-transform:uppercase}
.meta .line{flex:1;height:1px;background:var(--border)}

/* ── verdict + stat cards ───────────────────────────── */
.verdict{font-size:clamp(19px,2.6vw,26px);font-weight:500;letter-spacing:-.2px;
  line-height:1.25;margin-bottom:6px}
.verdict span{color:var(--neon)}
.verdict-sub{color:var(--muted);font-size:13.5px;font-weight:300;margin-bottom:26px;max-width:640px}
.stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:2px;margin-bottom:8px}
.stat{background:var(--surface);border:1px solid var(--border);padding:18px 20px;animation:fadeUp .5s ease both;min-width:0;overflow:hidden}
.stat.lead{border-left:3px solid var(--neon-line)}
.stat .k{font-family:var(--f-mono);font-size:9px;letter-spacing:2px;text-transform:uppercase;
  color:var(--muted2);margin-bottom:8px}
.stat .v{font-family:var(--f-mono);font-size:clamp(19px,1.5vw,25px);font-weight:500;letter-spacing:-.5px;line-height:1;white-space:nowrap;
  font-variant-numeric:tabular-nums}
.stat .v .u{font-size:13px;color:var(--muted);letter-spacing:0}
.stat .v.neon{color:var(--neon)}
.stat .s{font-size:13px;color:var(--muted);margin-top:6px;font-weight:300;line-height:1.45}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ── controls ───────────────────────────────────────── */
.controls{display:flex;flex-wrap:wrap;gap:10px;align-items:stretch;margin-bottom:14px}
.controls .search-wrap{min-width:250px}
.controls input{width:100%;background:var(--surface);border:1px solid var(--border);color:var(--text);
  font-family:var(--f-body);font-size:15px;padding:12px 16px;outline:none;transition:border-color .2s,box-shadow .2s}
.controls input:focus{border-color:var(--neon);box-shadow:0 0 0 3px var(--neon-dim)}
.seg{display:flex;flex-wrap:wrap;gap:0;border:1px solid var(--border)}
.seg button{font-family:var(--f-mono);font-size:10px;letter-spacing:1px;text-transform:uppercase;
  padding:0 14px;border:none;background:none;color:var(--muted);cursor:pointer;transition:all .15s;
  border-right:1px solid var(--border);min-height:42px}
.seg button:last-child{border-right:none}
.seg button:hover:not(.on){color:var(--text)}
.seg button.on{background:var(--neon-dim);color:var(--neon)}
.seg-lbl{font-family:var(--f-mono);font-size:9px;letter-spacing:2px;color:var(--muted2);
  text-transform:uppercase;align-self:center;margin-right:2px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 22px;align-items:center}
.chip{font-family:var(--f-mono);font-size:10px;letter-spacing:1px;padding:6px 13px;
  border:1px solid var(--border);background:none;color:var(--muted);cursor:pointer;text-transform:uppercase;transition:all .15s}
.chip:hover{border-color:var(--neon);color:var(--neon);background:var(--neon-dim)}
.chip.on{border-color:var(--neon);color:var(--neon);background:var(--neon-dim)}

/* ── histogram ──────────────────────────────────────── */
.histwrap{background:var(--surface);border:1px solid var(--border);padding:22px 22px 14px;margin-bottom:2px}
.hist{display:flex;align-items:flex-end;gap:4px;height:120px}
.hbar{flex:1;background:var(--neon-dim);border-top:2px solid var(--neon-line);position:relative;min-width:8px;transition:height .25s}
.hbar:hover{background:var(--neon-dim);filter:brightness(1.5)}
.hbar.me{background:rgba(255,215,0,.15);border-top-color:var(--gold)}
.hbar:hover::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);
  background:var(--surface2);border:1px solid var(--border);color:var(--text);font-family:var(--f-mono);
  font-size:10px;padding:4px 9px;white-space:nowrap;z-index:5}
.hlbl{display:flex;gap:4px;margin-top:8px}
.hlbl span{flex:1;text-align:center;font-family:var(--f-mono);font-size:9px;color:var(--muted2);min-width:8px}
.hist-legend{display:flex;gap:18px;margin-top:10px}
.hist-legend span{font-family:var(--f-mono);font-size:9px;letter-spacing:1px;color:var(--muted2);text-transform:uppercase}
.hist-legend i{display:inline-block;width:9px;height:9px;margin-right:6px;vertical-align:-1px}

/* ── tables ─────────────────────────────────────────── */
.tblwrap{overflow-x:auto;border:1px solid var(--border);background:var(--surface);
  scrollbar-width:thin;scrollbar-color:var(--border) transparent}
table{border-collapse:collapse;width:100%;min-width:640px}
th,td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border2);font-size:14.5px}
th{font-family:var(--f-mono);font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--muted2);
  font-weight:400;white-space:nowrap;position:sticky;top:0;background:var(--surface);border-bottom:1px solid var(--border)}
tbody tr:last-child td{border-bottom:none}
tbody tr.vrow{cursor:pointer;transition:background .1s}
tbody tr.vrow:hover{background:var(--card-hover)}
td.pr,th.pr{text-align:right;font-family:var(--f-mono);white-space:nowrap}
.vname{font-size:15.5px;font-weight:500;line-height:1.2}
tr.vrow:hover .vname{color:var(--neon)}
.sub{font-family:var(--f-mono);font-size:9px;letter-spacing:1.5px;color:var(--muted2);text-transform:uppercase}
.cell-sub{font-size:13px;color:var(--muted)}
.badge{font-family:var(--f-mono);font-size:8px;letter-spacing:1px;text-transform:uppercase;
  padding:2px 6px;white-space:nowrap;display:inline-block;vertical-align:2px;margin-left:8px}
.badge.hh{color:var(--neon);border:1px solid var(--neon-line)}
.badge.you{color:var(--gold);border:1px solid var(--gold)}
.empty{color:var(--muted);padding:44px 20px;text-align:center;background:var(--surface);border:1px solid var(--border);
  font-weight:300}
.empty b{font-family:var(--f-mono);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);
  display:block;margin-bottom:6px}
.more-btn{display:block;width:100%;max-width:320px;margin:22px auto 0;padding:13px 24px;background:var(--surface);
  border:1px solid var(--border);color:var(--neon);font-family:var(--f-mono);font-size:11px;letter-spacing:1.5px;
  text-transform:uppercase;cursor:pointer;transition:all .15s}
.more-btn:hover{background:var(--card-hover);border-color:var(--neon)}
.fine{font-size:12px;color:var(--muted2);margin-top:14px;font-weight:300;line-height:1.55}

/* expandable menu detail */
.det td{padding:0;background:var(--bg)}
.det-inner{padding:16px 20px 18px;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:5px 30px}
.det-item{display:flex;justify-content:space-between;gap:12px;font-size:13px;padding:4px 0;
  border-bottom:1px dashed var(--border2)}
.det-item .n{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:300}
.det-item .p{font-family:var(--f-mono);color:var(--text)}
.det-hd{grid-column:1/-1;font-family:var(--f-mono);font-size:9px;letter-spacing:2px;color:var(--muted2);
  text-transform:uppercase;padding-bottom:2px}

/* ---- UX cleanup (8/22) ---- */
.stat .vs{display:flex;gap:22px;align-items:flex-end;margin:6px 0 4px}
.stat .vs .v{margin:0}
.stat .vs .v.mkt{color:var(--muted);font-size:.78em}
.stat .vs .lbl{font-family:var(--f-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted2);margin-top:2px}
.delta{display:inline-block;font-family:var(--f-mono);font-size:11px;letter-spacing:.04em;padding:3px 8px;border:1px solid var(--border);color:var(--muted);margin-top:6px}
.delta.up{color:var(--amber);border-color:var(--amber)}
.delta.down{color:var(--neon);border-color:var(--neon)}
.delta.even{color:var(--text)}
.pbar{height:4px;background:var(--border2);margin-top:10px;position:relative}
.pbar i{position:absolute;left:0;top:0;bottom:0;background:var(--neon-line)}
.pbar b{position:absolute;top:-3px;width:2px;height:10px;background:var(--gold)}
table.bench td,table.bench th{padding:9px 14px}
table.bench td.pr{font-family:var(--f-mono)}
.ctl-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.ctl-row select{background:var(--surface);border:1px solid var(--border);color:var(--text);font-family:var(--f-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;padding:0 12px;height:44px;min-width:150px}
.catstrip{display:flex;gap:8px;flex-wrap:wrap;margin:2px 0 12px;align-items:center}
.catstrip .seg-lbl{margin-right:2px}
.chips{margin-bottom:8px}

/* ---- naming/outputs pass (8/23) ---- */
.verdict.up span{color:var(--amber)}
.verdict.down span{color:var(--neon)}
.verdict.even span{color:var(--text)}
.ladder{margin:16px 0 22px;max-width:720px}
.lad-cap{font-family:var(--f-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted2)}
.lad-track{position:relative;height:2px;background:var(--border);margin:26px 34px 52px 10px}
.lad-tick{position:absolute;top:0;transform:translateX(-50%);text-align:center}
.lad-tick i{display:block;width:1px;height:8px;background:var(--muted2);margin:-3px auto 0}
.lad-tick em{display:block;font-style:normal;font-family:var(--f-mono);font-size:11px;color:var(--text);margin-top:6px;white-space:nowrap}
.lad-tick u{display:block;text-decoration:none;font-family:var(--f-mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted2);margin-top:1px}
.lad-you{position:absolute;top:-30px;transform:translateX(-50%);text-align:center;display:flex;flex-direction:column-reverse;align-items:center}
.lad-you b{display:block;width:2px;height:20px;background:var(--gold);margin-top:3px}
.lad-you em{display:block;font-style:normal;font-family:var(--f-mono);font-size:11px;color:var(--gold);white-space:nowrap}
.det-more{font-family:var(--f-mono);font-size:11px;color:var(--muted);padding:8px 0 2px;letter-spacing:.04em}
.histwrap .ladder{margin-top:4px}

/* ---- verify & edit flow (8/23) ---- */
.verify-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;
  border:1px solid var(--neon-line);background:var(--neon-dim);padding:14px 18px;margin-bottom:20px}
.verify-bar b{display:block;margin-bottom:2px}
.verify-bar div{font-size:14px;color:var(--muted)}
.vb-btns{display:flex;gap:10px;flex:none}
.badge.ver{border:1px solid var(--neon);color:var(--neon);font-family:var(--f-mono);font-size:10px;
  letter-spacing:.08em;text-transform:uppercase;padding:2px 8px;margin-left:10px;vertical-align:middle}
.price-btn{background:none;border:1px dashed var(--border);color:var(--text);font-family:var(--f-mono);
  font-size:inherit;padding:3px 10px;cursor:pointer;transition:border-color .15s}
.price-btn:hover{border-color:var(--neon);color:var(--neon)}
.price-input,.size-input{width:84px;background:var(--surface);border:1px solid var(--neon);color:var(--text);
  font-family:var(--f-mono);padding:3px 8px;text-align:right}
.size-input{width:64px}
.mi-cat{background:var(--surface);border:1px solid var(--border);color:var(--text);font-size:12px;padding:3px 6px;max-width:150px}
.tag-src.you{color:var(--neon);border-color:var(--neon)}
.was{font-family:var(--f-mono);font-size:10px;color:var(--muted2);margin-top:2px}
.mi-removed td{opacity:.55}
.x-btn.go{border-color:var(--neon);color:var(--neon)}
#miTable td{vertical-align:top}

/* ---- simplified IA (8/26) ---- */
.mkt-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:26px 0 12px}
.mkt-head .seg{flex:none}
th.sortable{cursor:pointer;user-select:none;white-space:nowrap}
th.sortable:hover{color:var(--neon)}
.star-th{width:34px}
.star-td{width:34px;padding-right:0}
.star{background:none;border:none;color:var(--muted2);font-size:15px;cursor:pointer;padding:2px 6px;line-height:1}
.star:hover{color:var(--gold)}
.star.on{color:var(--gold)}
tr.pinned{background:rgba(255,215,0,0.04)}
tr.pinned td:first-child{border-left:2px solid var(--gold)}
.verdict{font-size:clamp(21px,2.1vw,27px);line-height:1.35}
@media (max-width:1100px){#sideMap{display:none}}

.det-more{cursor:pointer}
.det-more:hover{color:var(--neon)}

/* price-fit pass (8/26) */
.stat .vs{flex-wrap:wrap;gap:8px 20px;justify-content:flex-start}
.stat .vs>div{min-width:0}
.stat .vs .v.mkt{font-size:clamp(13px,1vw,16px)}
.stat .vs .lbl{white-space:nowrap}
table .pr{white-space:nowrap}
.delta{white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
/* light-mode map: dim the bright CARTO light tiles */
:root[data-theme="light"] #mapEl .leaflet-tile-pane{filter:grayscale(.5) saturate(.7) brightness(.95) contrast(.95)}
:root[data-theme="light"] #mapEl{background:#dad7ca}

/* stable market table columns (8/26) */
table.mkt{table-layout:fixed;width:100%}
table.mkt th[data-sort=hood]{width:13%}
table.mkt th[data-sort=dist]{width:9.5%}
table.mkt th[data-sort=cMed],table.mkt th[data-sort=dMed],table.mkt th[data-sort=wMed]{width:9.5%}
table.mkt th[data-sort=n]{width:6%}
table.mkt td{overflow:hidden;text-overflow:ellipsis}
table.mkt .vname{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.2;overflow-wrap:anywhere}   /* long names take a second line instead of an ellipsis (9/15) */

/* smooth theme cross-fade */
html.theming, html.theming *, html.theming *::before, html.theming *::after{
  transition:background-color .7s ease,color .7s ease,border-color .7s ease,fill .7s ease,box-shadow .7s ease !important}
#mapEl{transition:opacity .7s ease}

/* native controls follow theme everywhere */
select{background:var(--surface);border:1px solid var(--border);color:var(--text);
  font-family:var(--f-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;
  padding:0 12px;height:44px;border-radius:0}
select:focus{border-color:var(--neon);outline:none}
:root{color-scheme:dark}
:root[data-theme="light"]{color-scheme:light}

/* HH insights: you-vs-market pair */
.stat .vs{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.stat .mkts{display:flex;flex-direction:column}
.stat .mkts b{font-family:var(--f-mono);font-size:15px;color:var(--muted);font-weight:500}
.stat .mkts span{font-family:var(--f-mono);font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--muted2)}
table td.pr em{font-style:normal;color:var(--muted2)}

/* ── Overview / Deep Dive ───────────────────────────── */
.modeSw{display:flex;gap:0;padding:14px 40px 0;background:var(--bg)}
.modeSw button{background:none;border:1px solid var(--border);color:var(--muted);font-family:var(--f-mono);font-size:12px;
  letter-spacing:.12em;text-transform:uppercase;padding:9px 18px;cursor:pointer}
.modeSw button:first-child{border-radius:3px 0 0 3px}.modeSw button:last-child{border-radius:0 3px 3px 0;border-left:none}
.modeSw button.on{background:var(--surface);color:var(--text);border-color:var(--border)}
body.ov .tabs{display:none}
body.ov .panes{display:none}
body.ov #pane-overview.on{display:block}
body.ov #sideMap{display:none!important;visibility:hidden;width:0;flex:0 0 0;overflow:hidden}
body.ov .workspace{display:block}
body.ov.showmap #sideMap{display:block}
@media(max-width:1100px){body.ov.showmap #sideMap{display:none}}
#pane-overview{background:var(--bg);background-image:none;padding:34px 40px 90px;max-width:820px}
.ov-head{font-family:var(--f-body);font-size:clamp(22px,2.4vw,30px);line-height:1.25;margin:0 0 26px;color:var(--text)}
.ov-head b{color:var(--text);font-weight:600}
.ov-lines{border-top:1px solid var(--border)}
.ov-line{display:grid;grid-template-columns:170px 100px 1fr;grid-template-areas:"cat you word" "cat you sub" "math math math";
  column-gap:18px;row-gap:2px;align-items:baseline;padding:18px 0;border-bottom:1px solid var(--border)}
.ov-cat{grid-area:cat;font-family:var(--f-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.ov-you{grid-area:you;font-family:var(--f-mono);font-size:24px;font-weight:600;color:var(--text)}
.ov-word{grid-area:word;font-family:var(--f-body);font-size:19px;font-weight:600}
.ov-word.up{color:var(--gold)}.ov-word.down{color:#5b9bd5}.ov-word.even{color:var(--neon)}
:root[data-theme="light"] .ov-word.even{color:#3f6212}
:root[data-theme="light"] .ov-word.down{color:#2b6cb0}
:root[data-theme="light"] .ov-word.up{color:#8a6300}
.ov-sub{grid-area:sub;font-size:14px;color:var(--muted)}
.ov-math{grid-area:math;font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted2);cursor:pointer;margin-top:8px;text-decoration:underline;text-underline-offset:3px;width:max-content}
.ov-math:hover{color:var(--text)}
.ov-mathbox{grid-column:1/-1;margin-top:14px;padding:16px 18px;background:var(--surface);border:1px solid var(--border)}
.ov-mathrow{font-size:13px;color:var(--muted);margin-bottom:14px;line-height:1.6}
.ov-mathrow b{color:var(--text);font-weight:500}
.ov-basis{margin:16px 0 40px;font-size:13px;color:var(--muted2)}
.ov-basis a{color:var(--muted);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.ov-basis a:hover{color:var(--text)}
.ov-sec{font-family:var(--f-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 12px}
.ov-cmpwrap{max-width:520px;position:relative}
.ov-cmpwrap input{width:100%;box-sizing:border-box;background:var(--surface);border:1px solid var(--border);color:var(--text);font-family:var(--f-body);font-size:16px;padding:14px 16px;border-radius:3px}
.ov-cmpwrap input:focus{border-color:var(--neon);outline:none}
.ov-hint{font-size:14px;color:var(--muted2);margin:14px 0 0}
.ov-cmphead{margin:22px 0 10px;font-size:15px;color:var(--muted)}
.ov-cmphead b{color:var(--text)}
table.ov-cmp{width:100%;border-collapse:collapse}
table.ov-cmp th{font-family:var(--f-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted2);text-align:left;padding:8px 10px;border-bottom:1px solid var(--border)}
table.ov-cmp td{padding:11px 10px;border-bottom:1px solid var(--border);font-size:15px}
table.ov-cmp td.pr{font-family:var(--f-mono);text-align:right;white-space:nowrap}
.ov-menu{margin-top:12px}
.ov-menu summary{cursor:pointer;font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted2);padding:8px 0}
.ov-foot{margin-top:44px;font-size:13px}
.ov-foot a{color:var(--muted2);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
@media(max-width:640px){.modeSw{padding:12px 18px 0}#pane-overview{padding:24px 18px 70px}
  .ov-line{grid-template-columns:1fr;grid-template-areas:"cat" "you" "word" "sub" "math";row-gap:4px}}

/* overview: plain ground, no map/grid bleed anywhere */
html.ov,html.ov body,html.ov #app,html.ov .layout,html.ov main{background-image:none!important;background-color:var(--bg)!important}

body.ov #sideMap .leaflet-control-container{display:none!important}
/* ── Overview v2: the pricing report (appended after older .ov-* rules, overrides them) ── */
body.ov .workspace{display:block}
body.ov #pane-overview.on{display:block;padding:0 24px 100px;background:var(--bg);background-image:none;max-width:none}
.rp{max-width:1040px;margin:0 auto}
.rp-head{padding:46px 0 30px;border-bottom:1px solid var(--border)}
.rp-kicker{font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted2);margin-bottom:14px}
.rp-title{font-family:var(--f-body);font-weight:600;font-size:clamp(26px,3.4vw,40px);line-height:1.15;letter-spacing:-.01em;margin:0 0 18px;color:var(--text);max-width:900px}
.rp-tally{display:flex;gap:10px;flex-wrap:wrap}
.rp-tally .t{font-family:var(--f-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;padding:6px 12px;border:1px solid var(--border);border-radius:999px;color:var(--muted)}
.rp-tally .t.up{border-color:var(--up-c);color:var(--up-c)}.rp-tally .t.down{border-color:var(--down-c);color:var(--down-c)}.rp-tally .t.even{border-color:var(--even-c);color:var(--even-c)}
:root{--up-c:#c9a227;--down-c:#5b9bd5;--even-c:#a3e635;--zone:rgba(163,230,53,.14);--zone-line:rgba(163,230,53,.5)}
:root[data-theme="light"]{--up-c:#6b4d00;--down-c:#1f5a9a;--even-c:#3f6212;--zone:rgba(77,124,15,.13);--zone-line:rgba(77,124,15,.45)}
.rp-sec{padding:34px 0 8px}
.rp-sec-h{display:flex;justify-content:space-between;align-items:baseline;gap:20px;flex-wrap:wrap;margin-bottom:14px}
.rp-sec-h>span:first-child{font-family:var(--f-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.rp-legend{font-size:12px;color:var(--muted2);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.rp-legend i{display:inline-block;width:14px;height:8px;border-radius:2px;margin-left:10px;vertical-align:middle}
.rp-legend .lg-zone{background:var(--zone);border:1px solid var(--zone-line)}.rp-legend .lg-med{width:2px;height:12px;background:var(--muted)}.rp-legend .lg-you{width:14px;height:14px;border-radius:50%;background:var(--text);border:3px solid var(--bg);box-shadow:0 0 0 1.5px var(--text);margin-right:3px}
.rp-legend .lg-nyc{width:2px;height:12px;background:var(--text)}
/* price lines */
.pl-list{border-top:1px solid var(--border)}
.pl{border-bottom:1px solid var(--border)}
.pl-row{display:grid;grid-template-columns:190px 96px 120px 1fr;grid-template-areas:"cat you verdict track" "cat you verdict sub";column-gap:22px;row-gap:4px;align-items:center;padding:20px 0;cursor:pointer}
.pl-row:hover{background:var(--card-hover)}
.pl-cat{grid-area:cat;font-family:var(--f-body);font-size:16px;font-weight:500;color:var(--text)}
.pl-n{display:block;font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted2);margin-top:3px}
.pl-you-price{grid-area:you;font-family:var(--f-mono);font-size:24px;font-weight:600;color:var(--text)}
.pl-verdict{grid-area:verdict;font-family:var(--f-body);font-size:17px;font-weight:600}
.pl-verdict.up{color:var(--up-c)}.pl-verdict.down{color:var(--down-c)}.pl-verdict.even{color:var(--even-c)}
.pl-track{grid-area:track;position:relative;height:30px;margin:4px 8px 12px 0}
.pl-track::before{content:"";position:absolute;left:0;right:0;top:13px;height:4px;background:var(--border);border-radius:2px}
.pl-zone{position:absolute;top:9px;height:12px;background:var(--zone);border:1px solid var(--zone-line);border-radius:3px}
.pl-med{position:absolute;top:5px;width:2px;height:20px;background:var(--muted);transform:translateX(-1px)}
.pl-you{position:absolute;top:8px;transform:translateX(-50%)}
.pl-you i{display:block;width:14px;height:14px;border-radius:50%;background:var(--text);border:3px solid var(--bg);box-shadow:0 0 0 1.5px var(--text)}
.pl-you.up i{background:var(--up-c);box-shadow:0 0 0 1.5px var(--up-c)}.pl-you.down i{background:var(--down-c);box-shadow:0 0 0 1.5px var(--down-c)}.pl-you.even i{background:var(--even-c);box-shadow:0 0 0 1.5px var(--even-c)}
.pl-lbl{position:absolute;top:26px;transform:translateX(-50%);font-family:var(--f-mono);font-size:10px;color:var(--muted2)}
.pl-sub{grid-area:sub;font-size:13px;color:var(--muted)}
.pl-detail{display:none;padding:0 0 22px 0;margin-left:0}
.pl.open .pl-detail{display:block}
.pl-detail-row{font-size:13px;color:var(--muted);margin-bottom:14px;line-height:1.6}
.pl-detail-row b{color:var(--text);font-weight:500}
.pl-thin{margin-top:14px;font-size:13px;color:var(--muted2)}
/* notes */
.rp-notes ul{list-style:none;margin:0;padding:0}
.rp-notes li{font-size:16px;line-height:1.55;color:var(--text);padding:12px 0 12px 22px;position:relative;border-bottom:1px solid var(--border)}
.rp-notes li::before{content:"";position:absolute;left:0;top:21px;width:8px;height:8px;border-radius:50%;background:var(--even-c)}
.rp-notes li b{font-weight:600}
/* compare */
.ov-cmpwrap{max-width:560px;position:relative}
.ov-cmpwrap input{width:100%;box-sizing:border-box;background:var(--surface);border:1px solid var(--border);color:var(--text);font-family:var(--f-body);font-size:16px;padding:14px 16px;border-radius:4px}
.ov-cmpwrap input:focus{border-color:var(--neon);outline:none}
.ov-hint{font-size:14px;color:var(--muted2);margin:12px 0 0}
.ov-cmphead{margin:22px 0 10px;font-size:15px;color:var(--muted)}.ov-cmphead b{color:var(--text)}
table.ov-cmp{width:100%;border-collapse:collapse;max-width:760px}
table.ov-cmp th{font-family:var(--f-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted2);text-align:left;padding:8px 10px;border-bottom:1px solid var(--border)}
table.ov-cmp td{padding:12px 10px;border-bottom:1px solid var(--border);font-size:15px}
table.ov-cmp td.pr{font-family:var(--f-mono);text-align:right;white-space:nowrap}
.cmp-note{font-size:13px;color:var(--muted)}.cmp-note.up{color:var(--up-c)}.cmp-note.down{color:var(--down-c)}
.ov-menu{margin-top:12px;max-width:760px}
.ov-menu summary{cursor:pointer;font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted2);padding:8px 0}
/* footer */
.rp-foot{margin-top:44px;padding-top:18px;border-top:1px solid var(--border);display:flex;gap:22px;flex-wrap:wrap;font-size:13px;color:var(--muted2)}
.rp-foot a{color:var(--muted);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.rp-foot a:hover{color:var(--text)}
/* chrome: mode switch as a quiet text toggle aligned to the report column */
.modeSw{padding:18px 24px 0;justify-content:flex-start}
.modeSw>button{border:none;background:none;padding:6px 0;margin-right:22px;color:var(--muted2);font-size:12px;letter-spacing:.14em}
.modeSw>button.on{color:var(--text);background:none;border-bottom:2px solid var(--neon);border-radius:0}
body.ov .modeSw{max-width:1088px;margin:0 auto}
@media(max-width:760px){
  .pl-row{grid-template-columns:1fr 1fr;grid-template-areas:"cat you" "verdict verdict" "track track" "sub sub";row-gap:6px}
  .pl-you-price{text-align:right}
  .rp-head{padding:30px 0 22px}
  body.ov #pane-overview{padding:0 16px 80px}
}

/* ── Insights: citywide report (shares the .rp / .pl idiom with Overview v2) ── */
body.ov #pane-insights.on{display:block;padding:0 24px 100px;background:var(--bg);background-image:none;max-width:none}
.in-chips{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 22px}   /* room between the pills and the tiles (Sam, 9/22) */
.in-chip{font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:8px 13px;border:1px solid var(--border);border-radius:999px;background:none;color:var(--muted);cursor:pointer;transition:color .15s,border-color .15s,background .15s}
.in-chip:hover{color:var(--text);border-color:var(--muted)}
.in-chip.on{color:var(--text);border-color:var(--neon);background:var(--neon-dim)}
.in-sub{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted2);margin:14px 0 10px}
.in-sortrow{display:flex;justify-content:space-between;align-items:center;gap:12px}
.in-toggle button{background:none;border:none;color:var(--muted2);font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;padding:4px 6px}
.in-toggle button.on{color:var(--text);border-bottom:2px solid var(--neon)}
.in-two{display:grid;grid-template-columns:1fr 1fr;gap:38px;align-items:start}
.in-hood{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:start;margin-top:8px}
/* bars */
.in-bars{display:flex;flex-direction:column}
.in-bar{display:grid;grid-template-columns:minmax(150px,42%) 1fr 92px;gap:14px;align-items:center;padding:8px 0;border-bottom:1px solid var(--border2);font-size:14px;color:var(--text)}
.in-bar:last-child{border-bottom:none}
.in-hood .in-bar{cursor:pointer}
.in-hood .in-bar:hover{background:var(--card-hover)}
.in-bar-l{display:flex;flex-direction:column;line-height:1.2;min-width:0}
.in-bar-l em{font-style:normal;font-family:var(--f-mono);font-size:10px;color:var(--muted2);margin-right:8px;display:inline}
.in-bar-l small{font-family:var(--f-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted2);margin-top:3px;line-height:1.4}   /* wraps instead of cutting names off (Sam, 9/22) */
.in-bar-t{height:10px;background:var(--border2);border-radius:2px;overflow:hidden}
.in-bar-t i{display:block;height:100%;width:0!important;background:var(--neon);opacity:.85;border-radius:2px;transition:width .7s cubic-bezier(.2,.7,.2,1)}
.in-bar-t i.grow{width:var(--w)!important}
.in-bar-v{font-family:var(--f-mono);font-size:14px;text-align:right;white-space:nowrap;display:flex;flex-direction:column;align-items:flex-end;line-height:1.2}
.in-bar-v small{font-size:10px;color:var(--muted2);letter-spacing:.04em;margin-top:2px}
/* going-rate rows */
.in-rate .pl-row{grid-template-columns:190px 96px 150px 1fr}
.in-range{font-size:15px;font-weight:500;color:var(--muted);line-height:1.2}
.in-range .pl-n{margin-top:2px}
.in-track .in-lbl-med{color:var(--text);font-weight:600}
.in-mark{position:absolute;top:2px;transform:translateX(-50%)}
.in-mark i{display:block;width:2px;height:26px;background:var(--text);opacity:.8}
.in-mark u{position:absolute;top:-14px;left:50%;transform:translateX(-50%);font-family:var(--f-mono);font-size:9px;letter-spacing:.1em;text-decoration:none;color:var(--text)}
/* stat tiles */
.in-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:6px 0 26px}
.in-stat{padding:16px 18px;border:1px solid var(--border);background:var(--surface);border-radius:4px}
.in-stat b{display:block;font-family:var(--f-mono);font-size:26px;font-weight:600;color:var(--text);line-height:1.1;margin-bottom:6px}
.in-stat span{font-size:13px;color:var(--muted);line-height:1.4}
/* map */
.in-map{height:440px;border:1px solid var(--border);border-radius:4px;background:var(--bg);overflow:hidden}
.in-map .leaflet-tile-pane{filter:saturate(.9)}
:root[data-theme="light"] .in-map .leaflet-tile-pane{filter:grayscale(.5) saturate(.7) brightness(.95) contrast(.95)}
.in-map .leaflet-bar a{background:var(--surface);color:var(--text);border-color:var(--border)}
.in-map .leaflet-bar a:hover{background:var(--card-hover)}
.in-tip{background:var(--surface2);border:1px solid var(--border);color:var(--text);border-radius:0;font-family:var(--f-body);font-size:12px;box-shadow:none}
.in-tip::before{border-top-color:var(--border)}
.in-maplg{font-size:11px;color:var(--muted2);margin-top:8px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.in-maplg i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-left:8px;opacity:.75}
.in-tbl td:first-child{color:var(--text)}
.in .rp-foot span{flex-basis:100%;line-height:1.5}
@media(max-width:900px){.in-two,.in-hood{grid-template-columns:1fr}.in-stats{grid-template-columns:1fr 1fr}.in-map{height:340px}}
@media(max-width:760px){.in-rate .pl-row{grid-template-columns:1fr 1fr;grid-template-areas:"cat you" "verdict verdict" "track track" "sub sub"}.in-bar{grid-template-columns:minmax(110px,40%) 1fr 84px;gap:10px}.in-stats{grid-template-columns:1fr 1fr;gap:10px}.in-stat b{font-size:22px}body.ov #pane-insights.on{padding:0 16px 80px}}

/* add-your-own listing */
.skip-sep{color:var(--muted2);margin:0 10px;font-size:11px}
.add-form{max-width:520px;margin:22px auto 0;text-align:left;background:var(--bg);border:1px solid var(--border);padding:18px 20px 16px}
.add-h{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}
.add-form input{display:block;width:100%;box-sizing:border-box;background:var(--surface);border:1px solid var(--border);color:var(--text);font-family:var(--f-body);font-size:15px;padding:12px 14px;margin-bottom:10px;border-radius:3px}
.add-form input:focus{border-color:var(--neon);outline:none}
.add-row{display:flex;align-items:center;gap:18px}
.add-row a{font-family:var(--f-mono);font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--muted2);cursor:pointer}
.add-row a:hover{color:var(--text)}
.add-msg{font-size:13px;color:var(--muted);margin-top:10px;min-height:1.2em}
.ac-item.ac-stub .an{color:var(--muted)}
.ac-none a{color:var(--neon);cursor:pointer;text-decoration:underline;text-underline-offset:3px;margin-left:6px}
.rp-lead{font-size:16px;line-height:1.6;color:var(--muted);max-width:640px;margin:0 0 20px}

/* ── upload + add-items ── */
.add-two{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:14px;align-items:start}
.add-col-h{font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted2);margin-bottom:8px}
.add-col .form-grid{margin-top:0}
.up-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:118px;padding:18px;border:1.5px dashed var(--border);border-radius:10px;background:var(--surface);cursor:pointer;text-align:center;transition:border-color .15s,background .15s;position:relative}
.up-drop input{position:absolute;inset:0;opacity:0;cursor:pointer}
.up-drop:hover,.up-drop.over{border-color:var(--neon);background:var(--neon-dim)}
.up-drop.busy{cursor:progress;border-style:solid}
.up-ico{font-size:22px;color:var(--neon);line-height:1}
.up-t{font-size:14px;color:var(--text)}
.up-s{font-family:var(--f-mono);font-size:10px;letter-spacing:.06em;color:var(--muted2)}
.up-prog{font-family:var(--f-mono);font-size:11px;color:var(--neon);margin-top:8px;min-height:1.2em}
.notice{display:flex;flex-direction:column;gap:4px;margin:14px 0;padding:14px 18px;border-radius:8px;border:1px solid var(--border);background:var(--surface);border-left:4px solid var(--muted)}
.notice b{font-size:14px;font-weight:600;color:var(--text)}
.notice span{font-size:13.5px;color:var(--muted);line-height:1.5}
.notice.warn{border-left-color:var(--amber)}
.notice.warn b{color:var(--amber)}
.notice.ok{border-left-color:var(--neon)}
.notice.ok b{color:var(--neon)}
.up-review{margin:18px 0 26px}
table.up-tbl{width:100%;border-collapse:collapse}
table.up-tbl th{font-family:var(--f-mono);font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted2);text-align:left;padding:10px 10px;border-bottom:1px solid var(--border)}
table.up-tbl th.pr{text-align:right}
table.up-tbl td{padding:8px 10px;border-bottom:1px solid var(--border2);font-size:14px;vertical-align:middle}
table.up-tbl tr.off td{opacity:.42}
table.up-tbl td small{display:block;font-family:var(--f-mono);font-size:9px;letter-spacing:.06em;margin-top:2px}
.up-in{background:var(--bg);border:1px solid var(--border);color:var(--text);font-family:var(--f-body);font-size:14px;padding:7px 9px;border-radius:4px;width:100%;box-sizing:border-box}
.up-in:focus{border-color:var(--neon);outline:none}
.up-num{width:82px;text-align:right;font-family:var(--f-mono)}
.up-flag{font-family:var(--f-mono);font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--amber);border:1px solid var(--amber);border-radius:999px;padding:2px 7px;font-style:normal;white-space:nowrap}
.up-actions{display:flex;align-items:center;gap:20px;margin-top:16px;flex-wrap:wrap}
.up-actions a{font-family:var(--f-mono);font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--muted2);cursor:pointer}
.up-actions a:hover{color:var(--text)}
.cmp-pill{font-family:var(--f-mono);font-size:12px;padding:3px 9px;border-radius:999px;border:1px solid var(--border);white-space:nowrap}
.cmp-pill.up{color:var(--up-c);border-color:var(--up-c)}.cmp-pill.down{color:var(--down-c);border-color:var(--down-c)}.cmp-pill.even{color:var(--even-c);border-color:var(--even-c)}
.mi-cmp small{display:block;font-family:var(--f-mono);font-size:9px;letter-spacing:.06em;margin-top:3px}
/* buttons: rounded, taller */
.go-btn{border-radius:8px;min-height:44px}
.go-btn.btn-lg{padding:15px 30px;min-height:50px}
.go-btn.btn-sm{min-height:34px;padding:6px 16px;font-size:11px}
.go-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}
/* mode switch: three equal tabs across the top */
.modeSw,body.ov .modeSw{display:flex;gap:0;padding:0 40px;margin:0;max-width:none;border-bottom:1px solid var(--border);background:var(--bg);justify-content:stretch}
.modeSw>button{flex:1;margin:0;padding:15px 0 13px;text-align:center;border:none;border-bottom:2px solid transparent;border-radius:0;background:none;color:var(--muted2);font-family:var(--f-mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;transition:color .15s,border-color .15s}
.modeSw>button:hover{color:var(--text)}
.modeSw>button.on{color:var(--text);border-bottom-color:var(--neon);background:none}
/* overview tables: right-aligned headers over right-aligned cells */
table.ov-cmp th.pr{text-align:right}
@media(max-width:900px){.add-two{grid-template-columns:1fr}}
@media(max-width:640px){.modeSw,body.ov .modeSw{padding:0 12px}.modeSw>button{font-size:10px;letter-spacing:.12em}}

/* overview: by area */
table.ov-area{max-width:none}
table.ov-area td{vertical-align:top}
table.ov-area td.you{font-family:var(--f-mono);font-weight:600;color:var(--text)}
table.ov-area td small{display:block;font-family:var(--f-mono);font-size:9px;letter-spacing:.06em;color:var(--muted2);margin-top:3px}
.area-d{font-family:var(--f-mono);font-size:13px;padding:3px 9px;border-radius:999px;border:1px solid var(--border);white-space:nowrap}
.area-d.up{color:var(--up-c);border-color:var(--up-c);background:color-mix(in srgb,var(--up-c) 10%,transparent)}
.area-d.down{color:var(--down-c);border-color:var(--down-c);background:color-mix(in srgb,var(--down-c) 10%,transparent)}
.area-d.even{color:var(--even-c);border-color:var(--even-c);background:color-mix(in srgb,var(--even-c) 10%,transparent)}
.rp-tally .t.up{background:color-mix(in srgb,var(--up-c) 10%,transparent)}.rp-tally .t.down{background:color-mix(in srgb,var(--down-c) 10%,transparent)}.rp-tally .t.even{background:color-mix(in srgb,var(--even-c) 10%,transparent)}
.rp-notes li::before{background:var(--neon)}
.rp .tblwrap{border:none;background:none}
/* report pages: quiet dotted green-to-black field (Overview + Insights) */
:root{--rp-glow:rgba(163,230,53,.03);--rp-tint:rgba(163,230,53,.014);--rp-dot:rgba(163,230,53,.05)}
:root[data-theme="light"]{--rp-glow:rgba(65,104,11,.03);--rp-tint:rgba(65,104,11,.012);--rp-dot:rgba(65,104,11,.06)}
body.ov #pane-overview.on,body.ov #pane-insights.on{
  background-color:var(--bg);
  background-image:
    radial-gradient(ellipse 70% 55% at 15% 0%,var(--rp-glow) 0%,transparent 70%),
    linear-gradient(180deg,var(--rp-tint) 0%,transparent 42%),
    radial-gradient(var(--rp-dot) .9px,transparent 1.4px);
  background-size:100% 100%,100% 100%,26px 26px;
  background-position:0 0,0 0,13px 13px}
/* map attribution only where the side map lives */
body.ov .map-attr{display:none}
.in-map .leaflet-control-attribution{background:var(--surface);color:var(--muted2);font-size:9px;opacity:.8}
.in-map .leaflet-control-attribution a{color:var(--muted)}
/* dark mode maps: Esri's dark canvas is a mid grey, pull it down toward the old near-black look */
:root:not([data-theme="light"]) #mapEl .leaflet-tile-pane,:root:not([data-theme="light"]) .in-map .leaflet-tile-pane{filter:saturate(.35) brightness(.72)}
:root:not([data-theme="light"]) #mapEl::after,:root:not([data-theme="light"]) .in-map::after{content:'';position:absolute;inset:0;background:rgba(0,0,0,.42);pointer-events:none;z-index:350}
#mapEl,.in-map{position:relative}

/* insights header facts: plain text, dot separated (chips below are the clickable ones) */
.in-facts{font-family:var(--f-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);display:flex;flex-wrap:wrap;align-items:center;margin:2px 0 10px}
.in-facts i{display:inline-block;width:4px;height:4px;border-radius:50%;background:var(--muted2);margin:0 12px}

/* flow audit 9/4 */
.rp-legend .lg{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.rp-nudge{margin-top:18px;padding:12px 16px;border:1px solid var(--border);border-left:3px solid var(--neon);background:var(--surface);border-radius:6px;font-size:14px;color:var(--muted);max-width:640px}
.rp-nudge b{color:var(--text);font-weight:600;margin-right:4px}
.rp-nudge a{color:var(--neon);text-decoration:underline;text-underline-offset:3px;cursor:pointer;margin-left:6px;white-space:nowrap}
.see-report{color:var(--neon);text-decoration:underline;text-underline-offset:3px;cursor:pointer;margin-left:4px}
.skip-row2{margin-top:10px}
.notice span .see-report{display:inline-block;margin-top:4px}
@media(max-width:1080px){.map-attr{display:none}}
@media(max-width:640px){.meta{flex-wrap:wrap;row-gap:10px}.meta .line{min-width:40px}.skip-row{margin-top:16px}}

/* insights map: visible, roomy zoom buttons */
.in-map .leaflet-control-container{display:block!important}
.in-map .leaflet-control-zoom{border:1px solid var(--border);border-radius:6px;overflow:hidden;box-shadow:none;margin:12px}
.in-map .leaflet-control-zoom a{width:36px;height:36px;line-height:34px;font-size:20px;background:var(--surface);color:var(--text);border-bottom:1px solid var(--border)}
.in-map .leaflet-control-zoom a:last-child{border-bottom:none}
.in-map .leaflet-control-zoom a:hover{background:var(--card-hover);color:var(--neon)}
.in-map .leaflet-control-zoom a.leaflet-disabled{opacity:.35}

/* competitors: gaps */
.gaps{display:grid;grid-template-columns:1fr 1fr;gap:6px 34px;margin:10px 0 4px}
.gap{display:grid;grid-template-columns:minmax(120px,1fr) 1fr 96px;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--border2);font-size:14px}
.gap-n small,.gap-v small{display:block;font-family:var(--f-mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted2);margin-top:2px}
.gap-t{height:8px;background:var(--border2);border-radius:2px;overflow:hidden}
.gap-t i{display:block;height:100%;background:var(--amber);opacity:.85;border-radius:2px}
.gap-v{font-family:var(--f-mono);font-size:13px;text-align:right;white-space:nowrap}
table.mkt th[data-sort="vs"]{white-space:nowrap;width:13%;text-align:right}   /* a fixed width so the longer heading no longer squeezes the other columns (Sam, 9/22) */
@media(max-width:900px){.gaps{grid-template-columns:1fr}}

/* ── landing (hero v15) ── */
.hero.l-hero{display:block;min-height:0;padding:0 0 70px;text-align:left;justify-content:flex-start;align-items:stretch;background:var(--bg);background-image:none;border-bottom:1px solid var(--border);position:relative;overflow:hidden;isolation:isolate}
.hero.l-hero::before{display:none}
.l-field{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;display:block}
.l-in{position:relative;z-index:2;max-width:1240px;margin:0 auto;padding:0 40px}
.l-split{display:grid;grid-template-columns:1fr 1.05fr;gap:64px;align-items:center;padding:90px 0 70px}
.l-copy{position:relative}
.l-eyebrow{font-family:var(--f-mono);font-size:12px;letter-spacing:.28em;text-transform:uppercase;color:var(--neon)}
.l-h1{font-family:var(--f-body);font-weight:500;letter-spacing:-.02em;line-height:1.06;color:var(--text);font-size:clamp(34px,4.2vw,54px);margin:16px 0 20px}
.l-h1 em{font-style:normal;color:var(--neon)}
.l-lead{font-size:18px;line-height:1.55;color:var(--muted);font-weight:300;max-width:600px}
.l-hero .searchrow{margin:28px 0 0;max-width:640px}
.l-hero .search-wrap input{font-weight:500;color:var(--text);padding:16px 18px;border-radius:8px;font-size:16px}
.l-hero .search-wrap input::placeholder{color:#b8b8ae;font-weight:400;opacity:1}
:root[data-theme="light"] .l-hero .search-wrap input::placeholder{color:#63624f}
.l-hero .go-btn{font-weight:500;border-radius:8px;padding:0 26px}
.l-hero .skip-row{margin-top:18px;text-align:left}
.l-hero .add-form{margin:22px 0 0;max-width:640px}
/* showcase card */
.l-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:22px 26px 18px}
.l-k{font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.l-card h3{font-size:23px;font-weight:500;margin:6px 0 12px;line-height:1.2}
.l-scopes{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.l-scopes span{font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:4px 10px}
.l-scopes span.on{color:var(--text);border-color:var(--neon);background:var(--neon-dim)}
.l-row{display:grid;grid-template-columns:118px 60px 60px 84px 1fr;gap:12px;align-items:center;padding:9px 0;border-top:1px solid var(--border)}
.l-row.l-hd{padding:6px 0;border-top:none;font-family:var(--f-mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted2)}
.l-n{font-size:14px;line-height:1.15}.l-n small{display:block;font-family:var(--f-mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted2);margin-top:2px}
.l-p{font-family:var(--f-mono);font-size:16px;font-weight:500}
.l-md{font-family:var(--f-mono);font-size:14px;color:var(--muted)}
.l-w{font-size:13px;font-weight:600}.l-w.up{color:var(--gold)}.l-w.dn{color:#5b9bd5}.l-w.ok{color:var(--neon)}
.l-w small{display:block;font-family:var(--f-mono);font-size:10px;font-weight:400;letter-spacing:.04em;color:var(--muted2);margin-top:2px}
.l-tr{position:relative;height:20px}.l-tr::before{content:'';position:absolute;left:0;right:0;top:8px;height:4px;background:var(--border);border-radius:2px}
.l-z{position:absolute;top:4px;height:12px;background:var(--neon-dim);border:1px solid var(--neon-line);border-radius:3px}
.l-m{position:absolute;top:2px;width:2px;height:16px;background:var(--muted)}
.l-y{position:absolute;top:3px;width:14px;height:14px;border-radius:50%;background:var(--neon);border:3px solid var(--bg);box-shadow:0 0 0 1.5px var(--neon);transform:translateX(-50%)}
.l-y.up{background:var(--gold);box-shadow:0 0 0 1.5px var(--gold)}.l-y.dn{background:#5b9bd5;box-shadow:0 0 0 1.5px #5b9bd5}
.l-cf{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
.l-tally{display:flex;gap:6px}.l-tally b{font-family:var(--f-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--border);border-radius:999px;padding:3px 9px;color:var(--muted);font-weight:400}
.l-tally .u{color:var(--gold);border-color:var(--gold)}.l-tally .e{color:var(--neon);border-color:var(--neon)}.l-tally .d{color:#5b9bd5;border-color:#5b9bd5}
.l-leg{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted2);font-family:var(--f-mono);letter-spacing:.06em}
.l-leg i{display:inline-block;width:14px;height:8px;border-radius:2px;background:var(--neon-dim);border:1px solid var(--neon-line);margin-right:2px}
.l-leg u{display:inline-block;width:2px;height:12px;background:var(--muted);margin:0 2px 0 10px}
.l-leg b{display:inline-block;width:12px;height:12px;border-radius:50%;background:var(--text);border:2px solid var(--bg);box-shadow:0 0 0 1.5px var(--text);margin:0 2px 0 10px}
/* below the fold */
.l-band{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:14px 0 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:transparent}
.l-band div{padding:22px 24px 22px 0}.l-band div+div{padding-left:24px;border-left:1px solid var(--border)}
.l-band b{display:block;font-family:'Bebas Neue',sans-serif;font-size:42px;line-height:1;letter-spacing:.02em;color:var(--text)}.l-band b.g{color:var(--neon)}
.l-band span{font-size:14px;color:var(--muted)}
.l-sec{padding:76px 0 10px}
.l-sec-k{font-family:var(--f-mono);font-size:17px;letter-spacing:.26em;text-transform:uppercase;color:var(--muted);margin-bottom:14px;background:var(--bg);display:inline-block;padding:4px 14px 4px 0}
.l-sec-h{font-family:var(--f-body);font-size:clamp(30px,3.4vw,42px);font-weight:500;letter-spacing:-.01em;color:var(--text);margin-bottom:38px;max-width:100%;width:max-content;background:var(--bg);padding:4px 14px 4px 0}
.l-sec-h em{font-style:normal;color:var(--neon)}
.l-feats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.l-feat{background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:22px 24px 24px}
.l-tag{display:inline-block;font-family:var(--f-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--c);margin-bottom:12px}
.l-tag::before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--c);margin-right:9px;vertical-align:1px}
.l-feat h3{font-size:22px;font-weight:500;margin-bottom:8px}
.l-feat p{font-size:16.5px;color:#cfcfc6;line-height:1.55;max-width:34ch}
:root[data-theme="light"] .l-feat p,:root[data-theme="light"] .l-step p{color:#3d3c33}
.l-feat.g{--c:var(--neon)}.l-feat.y{--c:#5b9bd5}.l-feat.b{--c:#ef5350}.l-feat.a{--c:var(--gold)}.l-feat.p{--c:#c084fc}.l-feat.t{--c:#2dd4bf}
.l-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:56px 0 0}
.l-step{background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:24px 24px 26px}
.l-step .n{font-family:'Bebas Neue',sans-serif;font-size:48px;line-height:1;color:var(--neon);margin-bottom:6px}
.l-step .t{font-family:var(--f-mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}
.l-step h3{font-size:22px;font-weight:500;margin-bottom:8px}
.l-step p{font-size:16.5px;color:#cfcfc6;line-height:1.55;max-width:34ch}
.l-cta{text-align:center;padding:56px 0 20px}
.l-cta-box{background:var(--bg);border:1px solid var(--border);border-radius:14px;padding:44px 40px 42px;max-width:900px;margin:0 auto}
.l-cta-h{font-size:clamp(30px,3.8vw,46px);margin:0 0 24px}
.l-cta-btn{min-height:52px;padding:0 34px;font-weight:500;border-radius:8px}
@media(max-width:900px){.l-split{grid-template-columns:1fr;gap:40px;padding:50px 0 30px}.l-feats,.l-steps{grid-template-columns:1fr}.l-band{grid-template-columns:1fr 1fr}.l-band div:nth-child(3){border-left:none;padding-left:0}.l-in{padding:0 20px}.l-sec-h{width:auto}}
@media(max-width:640px){.l-row{grid-template-columns:100px 54px 54px 1fr;gap:8px}.l-row .l-tr,.l-row.l-hd span:last-child{display:none}.l-hero .searchrow{flex-direction:column}}

/* ── landing: calmer ── */
.l-field{height:auto;-webkit-mask-image:linear-gradient(180deg,#000 0%,#000 93%,transparent 100%);mask-image:linear-gradient(180deg,#000 0%,#000 93%,transparent 100%)}
.l-eyebrow{color:var(--muted);letter-spacing:.2em;font-size:11px}
.l-h1{letter-spacing:-.015em}
.l-facts{margin-top:26px;font-size:13px;color:var(--muted2)}
/* card: plain tally, fewer borders */
.l-tally b{border:none;padding:0;letter-spacing:.04em;text-transform:none;font-family:var(--f-body);font-size:12px;font-weight:500}
.l-tally b::before{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px;background:currentColor;vertical-align:1px}
.l-tally{gap:14px}
.l-scopes span{border-color:transparent;background:var(--surface2);color:var(--muted)}
.l-scopes span.on{background:var(--neon-dim);color:var(--text);border-color:transparent}
/* lower half on solid ground */
.l-sec{position:relative;z-index:2;background:transparent;padding:20px 0 30px}
.l-sec-h{width:auto;background:none;padding:0;margin:0 0 26px;font-size:clamp(26px,3vw,36px)}
.l-list{display:grid;grid-template-columns:1fr 1fr;gap:0 56px;border-top:1px solid var(--border)}
.l-item{display:grid;grid-template-columns:150px 1fr;gap:20px;padding:18px 0;border-bottom:1px solid var(--border);align-items:baseline}
.l-lab{font-size:15px;font-weight:500;color:var(--text);white-space:nowrap}
.l-lab i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:10px;vertical-align:2px}
.l-lab i.g{background:var(--neon)}.l-lab i.y{background:#5b9bd5}.l-lab i.b{background:#ef5350}.l-lab i.a{background:var(--gold)}.l-lab i.p{background:#c084fc}.l-lab i.t{background:#2dd4bf}
.l-item p{font-size:15.5px;line-height:1.55;color:var(--muted);margin:0}
:root:not([data-theme="light"]) .l-item p{color:#bdbdb4}
.l-how{margin-top:56px}
.l-how-h{font-size:15px;font-weight:500;color:var(--text);padding-bottom:12px;border-bottom:1px solid var(--border)}
.l-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin:0}
.l-step{background:none;border:none;border-radius:0;padding:22px 0 0}
.l-step .t{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted2);margin-bottom:10px}
.l-step h3{font-size:18px;font-weight:500;margin-bottom:6px}
.l-step p{font-size:15.5px;line-height:1.55;color:var(--muted);max-width:none}
:root:not([data-theme="light"]) .l-step p{color:#bdbdb4}
.l-fine{margin-top:52px;padding-top:18px;border-top:1px solid var(--border);font-size:13px;line-height:1.6;color:var(--muted2);max-width:760px}
.hero.l-hero{padding-bottom:40px}
@media(max-width:900px){.l-list{grid-template-columns:1fr}.l-item{grid-template-columns:1fr;gap:6px}.l-steps{grid-template-columns:1fr;gap:10px}}
/* no map credit while the landing is showing (there is no map on it) */
#hero:not([style*="none"]) ~ .map-attr{display:none}

/* headline on two lines */
.l-h1{font-size:clamp(30px,3.15vw,44px);white-space:nowrap}
@media(max-width:900px){.l-h1{white-space:normal;font-size:clamp(30px,6vw,40px)}.l-br{display:none}}

/* how it works: its own section with small UI vignettes */
.l-howsec{margin-top:10px;padding-top:40px;border-top:1px solid var(--border)}
.l-sec-k2{font-family:var(--f-mono);font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted2);margin-bottom:12px}
.l-howsec .l-steps{grid-template-columns:repeat(3,1fr);gap:36px;margin-top:8px}
.l-howsec .l-step{padding:0;position:relative}
.l-num{display:flex;align-items:center;gap:14px;margin-bottom:18px}
.l-num span{width:34px;height:34px;border-radius:50%;border:1.5px solid var(--neon);color:var(--neon);font-family:var(--f-mono);font-size:14px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.l-num i{flex:1;height:1px;background:var(--border)}
.l-vig{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px;margin-bottom:18px;min-height:96px;font-size:13px;color:var(--muted)}
.l-vig-search{display:flex;align-items:center;gap:8px;background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:9px 10px}
.l-vig-search span{flex:1;color:var(--text)}.l-vig-search span::after{content:'';display:inline-block;width:1px;height:14px;background:var(--neon);margin-left:1px;vertical-align:-2px;animation:l-blink 1s steps(2) infinite}
@keyframes l-blink{to{opacity:0}}
.l-vig-search b{font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;background:var(--neon);color:#0a0a08;padding:6px 9px;border-radius:5px;font-weight:500}
.l-vig-ac{margin-top:6px;padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--muted)}.l-vig-ac em{font-style:normal;color:var(--text)}
.l-vig-row{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:6px 0;border-bottom:1px solid var(--border2);color:var(--text)}
.l-vig-row b{font-family:var(--f-mono);font-weight:500}.l-vig-row u{font-family:var(--f-mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;color:var(--muted2);border:1px solid var(--border);border-radius:4px;padding:2px 6px}
.l-vig-up{margin-top:8px;border:1px dashed var(--border);border-radius:6px;padding:7px 10px;text-align:center;font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted2)}
.l-vig-cal{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.l-vig-cal span{text-align:center;padding:8px 0;border:1px solid var(--border);border-radius:6px;font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted2);background:var(--bg)}
.l-vig-cal span.on{color:var(--text);border-color:var(--neon);background:var(--neon-dim)}
.l-vig-note{margin-top:10px;color:var(--muted)}.l-vig-note b{color:var(--text);font-family:var(--f-mono);font-weight:500}
.l-howsec .l-step h3{font-size:19px;margin-bottom:6px}
.l-howsec .l-step p{font-size:15.5px}
@media(max-width:900px){.l-howsec .l-steps{grid-template-columns:1fr}.l-num i{display:none}}

.l-vig{min-height:136px;display:flex;flex-direction:column;justify-content:center}
.l-howsec .l-step{display:flex;flex-direction:column}

/* product wordmark: 5PM Barometer, plain letters */
.wordmark{font-family:var(--f-body);font-weight:500;font-size:21px;letter-spacing:-.01em;color:var(--text);line-height:1;white-space:nowrap}
.wordmark .wm5{color:var(--neon)}
@media(max-width:640px){.wordmark{font-size:18px}}

.l-copyright{margin-top:26px;font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;color:var(--muted2)}

/* simpler showcase card */
.l-card h3{margin:0 0 4px}
.l-card .l-k{margin-bottom:16px;text-transform:none;letter-spacing:0;font-family:var(--f-body);font-size:13px;color:var(--muted)}
.l-row{grid-template-columns:132px 64px 64px 1fr;padding:12px 0}
.l-row.l-hd{padding:0 0 8px}
.l-n{font-size:15px}
.l-md{font-size:15px}
.l-cf{justify-content:flex-start}
@media(max-width:640px){.l-row{grid-template-columns:110px 58px 58px 1fr}.l-row .l-tr,.l-row.l-hd span:last-child{display:inline-block}}

/* feature showcase */
.l-show{display:grid;grid-template-columns:repeat(3,1fr);gap:16px 28px;margin-top:6px}
.l-card2 .l-vig{height:150px;min-height:0;margin-bottom:14px;overflow:hidden}
.l-card2 h3{font-size:18px;font-weight:500;margin-bottom:6px}
.l-card2 p{font-size:15px;line-height:1.55;color:var(--muted)}
:root:not([data-theme="light"]) .l-card2 p{color:#bdbdb4}
.l-vr{display:grid;grid-template-columns:1fr auto auto auto;gap:10px;align-items:center;padding:7px 0;border-bottom:1px solid var(--border2);font-size:13px;color:var(--text)}
.l-vr:last-child{border-bottom:none}
.l-vr b{font-family:var(--f-mono);font-weight:500}.l-vr em{font-style:normal;font-family:var(--f-mono);font-size:12px;color:var(--muted2)}
.l-vr u{text-decoration:none;font-size:12px;font-weight:600}.l-vr u.ok{color:var(--neon)}.l-vr u.up{color:var(--gold)}.l-vr u.dn{color:#5b9bd5}
.l-bar{display:grid;grid-template-columns:92px 1fr 56px;gap:10px;align-items:center;padding:5px 0;font-size:12.5px;color:var(--text)}
.l-bar i{display:block;height:8px;background:var(--neon);opacity:.8;border-radius:2px}
.l-bar b{font-family:var(--f-mono);font-weight:500;text-align:right;font-size:12px}
@media(max-width:900px){.l-show{grid-template-columns:1fr}}

.l-vig-h{font-family:var(--f-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted2);margin-bottom:6px}
.l-card2 .l-vig .l-vr{padding:5px 0}
.l-card2 .l-vig .l-bar{padding:3px 0}
/* header counts: readable */
.hdr-count{font-size:12px;letter-spacing:1px;color:var(--muted)}
:root:not([data-theme="light"]) .hdr-count{color:#b8b8ae}

/* ── preview gate + account ── */
.gated{position:relative}
.pw-blur{filter:blur(7px);pointer-events:none;user-select:none;opacity:.85}
.pw-gated{pointer-events:none;user-select:none}
.pw-gated .pw-num{filter:blur(7px);opacity:.75}
.pw-gated.rp-foot,.pw-gated .ov-cmpwrap,.pw-gated #ovCmp{filter:blur(7px);opacity:.75}
.pw-gated .pl-track,.pw-gated .lad-track,.pw-gated .hist,.pw-gated .in-bar-t,.pw-gated .in-band{filter:blur(5px);opacity:.7}
.pw-overlay{position:absolute;left:0;right:0;bottom:0;z-index:5;display:flex;justify-content:center;align-items:flex-start;padding:70px 20px 0;background:transparent;pointer-events:none}
.pw-overlay .pw-box{pointer-events:auto;box-shadow:0 18px 60px rgba(0,0,0,.45)}
.pw-box{max-width:520px;text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:30px 32px 28px}
.pw-k{font-family:var(--f-mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--neon);margin-bottom:10px}
.pw-box h3{font-size:22px;font-weight:500;line-height:1.25;margin-bottom:8px}
.pw-box p{font-size:14.5px;color:var(--muted);line-height:1.55;margin-bottom:18px}
.pw-box a,.pw-foot a,.pw-dev a{color:var(--muted);text-decoration:underline;text-underline-offset:3px;cursor:pointer;font-size:13px}
.pw-box a{display:inline-block;margin-top:14px}
body.pw-lock{overflow:hidden}
.pw-modal{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.62);display:flex;align-items:center;justify-content:center;padding:20px}
.pw-card{position:relative;width:100%;max-width:520px;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:32px 34px 30px;max-height:92vh;overflow:auto}
.pw-x{position:absolute;top:12px;right:14px;background:none;border:none;color:var(--muted);font-size:26px;line-height:1;cursor:pointer}
.pw-card h3{font-size:24px;font-weight:500;margin-bottom:18px;line-height:1.2}
.pw-card label{display:block;font-size:13px;color:var(--muted);margin-bottom:12px}
.pw-card label input{display:block;width:100%;box-sizing:border-box;margin-top:6px;background:var(--bg);border:1px solid var(--border);color:var(--text);font-family:var(--f-body);font-size:15px;padding:12px 14px;border-radius:8px}
.pw-card label input:focus{border-color:var(--neon);outline:none}
.pw-card .go-btn{width:100%;margin-top:6px}
.pw-msg{font-size:13px;color:var(--amber);min-height:1.2em;margin-bottom:6px}
.pw-foot{margin-top:16px;font-size:13px;color:var(--muted2);line-height:1.5}
.pw-card p{font-size:15px;color:var(--muted);line-height:1.55;margin-bottom:14px}
.pw-dev{margin-top:18px;padding:12px 14px;border:1px dashed var(--border);border-radius:8px;font-size:12.5px;color:var(--muted2)}
.pw-plans{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:4px 0 14px}
.pw-plan{background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:16px 14px 14px;text-align:left;cursor:pointer;color:var(--text);font-family:var(--f-body);display:flex;flex-direction:column;gap:6px;transition:border-color .15s}
.pw-plan:hover{border-color:var(--neon)}
.pw-plan .n{font-size:14px;font-weight:500}
.pw-plan .p{font-family:var(--f-mono);font-size:26px;font-weight:600;color:var(--neon);line-height:1}.pw-plan .p small{display:block;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted2);font-weight:400;margin-top:4px}
.pw-plan .l{font-size:12px;color:var(--muted);line-height:1.4}
.pw-plan .pm{font-family:var(--f-mono);font-size:11px;color:var(--muted2)}
.acct{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--muted);margin-left:8px}
.acct a{color:var(--muted);text-decoration:underline;text-underline-offset:3px;cursor:pointer;font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.acct a:hover{color:var(--neon)}
.acct-n{color:var(--text)}
@media(max-width:640px){.pw-plans{grid-template-columns:1fr}.acct-n{display:none}}
/* happy hour entry */
.hh-cur{border:1px solid var(--border);border-radius:10px;padding:16px 18px;background:var(--surface);margin-bottom:14px}
.hh-cur-h{font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted2);margin-bottom:10px}
.hh-cur-line{font-size:16px}.hh-cur-line b{font-weight:500;margin-right:10px}.hh-cur-line span{color:var(--muted)}
.hh-cur-deal{margin-top:6px;font-size:14px;color:var(--muted)}
.hh-px{max-width:420px;margin-top:10px}.hh-px td{padding:7px 10px;font-size:14px}.hh-px th{padding:6px 10px}
.hh-form textarea{width:100%;box-sizing:border-box;background:var(--surface);border:1px solid var(--border);color:var(--text);font-family:var(--f-body);font-size:15px;padding:12px 14px;border-radius:8px;resize:vertical}
.hh-form textarea:focus{border-color:var(--neon);outline:none}
.hh-row{display:flex;align-items:center;gap:18px;margin-top:10px}
.hh-clear{font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted2);cursor:pointer}
.hh-clear:hover{color:#ff4d4d}
.hh-pv{margin-top:14px;border:1px solid var(--border);border-radius:10px;padding:16px 18px;background:var(--surface)}
/* about the data */
.l-about{margin-top:52px;padding-top:26px;border-top:1px solid var(--border);max-width:760px}
.l-about h3{font-size:18px;font-weight:500;margin-bottom:8px}
.l-about p{font-size:15px;line-height:1.6;color:var(--muted)}
.pw-modal[hidden]{display:none}

/* data sources, full width */
.l-about{max-width:none}
.l-about p{max-width:760px;margin-bottom:22px}
.l-src-bar{display:flex;height:44px;border-radius:8px;overflow:hidden;border:1px solid var(--border)}
.l-src-bar span{display:flex;flex-direction:column;justify-content:center;padding:0 16px;font-size:12.5px;color:var(--muted);line-height:1.25;white-space:nowrap;overflow:hidden}
.l-src-bar span b{display:block;font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--text);margin-bottom:2px}
.l-src-bar .a{background:var(--neon-dim);border-right:1px solid var(--border)}.l-src-bar .a b{color:var(--neon)}
.l-src-bar .b{background:var(--surface)}
.l-dq{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:22px;border-top:1px solid var(--border)}
.l-dq div{padding:18px 22px 4px 0}.l-dq div+div{padding-left:22px;border-left:1px solid var(--border)}
.l-dq b{display:block;font-family:var(--f-mono);font-size:24px;font-weight:500;color:var(--text);line-height:1;margin-bottom:8px}
.l-dq span{font-size:13.5px;line-height:1.5;color:var(--muted)}
.l-fine{max-width:none}
.l-card h3{font-size:21px}
@media(max-width:900px){.l-dq{grid-template-columns:1fr 1fr}.l-dq div:nth-child(3){border-left:none;padding-left:0}.l-src-bar span{font-size:11px}}

.l-about p{max-width:none}
/* data stats as cards, matching the showcase panels */
.l-dq{gap:14px;border-top:none;margin-top:18px}
.l-dq div,.l-dq div+div{padding:18px 20px 16px;border:1px solid var(--border);border-left:1px solid var(--border);border-radius:10px;background:var(--surface)}
.l-dq b{font-size:26px;margin-bottom:8px}
@media(max-width:900px){.l-dq div:nth-child(3){border-left:1px solid var(--border);padding-left:20px}}

/* showcase spacing: air between the six cards, a beat between mock and text */
.l-sec-h{margin-bottom:44px}
.l-show{gap:44px 40px}
.l-card2 .l-vig{height:150px;margin-bottom:20px;padding:18px}
.l-card2 h3{margin-bottom:8px}
.l-card2 p{max-width:36ch}
.l-vr{padding:8px 0}
.l-vig-search{padding:11px 12px}
.l-vig-ac{margin-top:8px;padding:10px 12px}
.l-vig-up{padding:10px 12px}
/* landing search button: bigger, bolder label */
.l-hero #goBtn{font-size:14px;font-weight:600;letter-spacing:.14em;padding:0 30px}
.l-dq span{line-height:1.35;display:block}

/* ── type: Bricolage Grotesque display, Hanken Grotesk body, JetBrains Mono numbers ── */
html,body{font-family:var(--f-body)}
h1,h2,h3,.l-h1,.l-sec-h,.rp-title,.verdict,.l-card h3,.l-card2 h3,.pw-card h3,.pw-box h3,.wordmark,.in-stat b,.hero h1,.l-about h3,.ov-cmphead b,.mybar .nm{font-family:var(--f-disp)}
.l-h1{font-weight:500;letter-spacing:-.02em}
.rp-title{font-weight:500;letter-spacing:-.015em}
.wordmark{font-weight:500;letter-spacing:-.01em}
.in-stat b{font-family:var(--f-mono)}

/* preview skeleton + account chip states (wiring) */
.pw-skel{padding:8px 0 4px}.pw-skel .sk-row{display:flex;gap:14px;align-items:center;padding:11px 0;border-bottom:1px solid var(--border)}
.pw-skel .sk-row i{display:block;height:11px;border-radius:6px;background:var(--border)}
.acct-pv{font-style:normal;font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted2);margin-left:6px}

/* ── audit fixes (9/5) ── */
.linklike{background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.skip-row .linklike{font-family:var(--f-mono);font-size:10px;letter-spacing:2px;color:var(--muted2);text-transform:uppercase;text-decoration:none;border-bottom:1px solid var(--border);padding-bottom:2px}
.skip-row .linklike:hover{color:var(--neon);border-color:var(--neon)}
.add-row .linklike{font-family:var(--f-mono);font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--muted2);text-decoration:none}
.add-row .linklike:hover{color:var(--text)}
.ac-none .linklike{color:var(--neon);margin-left:6px}
.pw-box .linklike,.pw-foot .linklike,.pw-dev .linklike{color:var(--muted);font-size:13px}
.pw-box .linklike{display:block;margin:14px auto 0}
.acct .linklike{color:var(--muted);font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
.acct .linklike:hover{color:var(--neon)}
.acct-n{white-space:nowrap}
@media(max-width:900px){.hdr-count{display:none}}
.mkt-head .seg{flex:1 1 100%;min-width:0}
table.hh-px,table.in-tbl{min-width:0}
body.ov.showmap #sideMap{display:block!important;visibility:visible;width:auto;flex:0 0 380px}
@media(max-width:1100px){body.ov.showmap #sideMap{display:none!important}#ovMap{display:none}}
:root:not([data-theme="light"]) .in-map::after{z-index:450}
[data-theme="light"] .l-vig-search b{color:#fff}
[data-theme="light"] .l-vr u.dn{color:#245f9c}
[data-theme="light"] .l-y.dn{background:#245f9c;box-shadow:0 0 0 1.5px #245f9c}
.pw-fake{pointer-events:none}
@media(max-width:768px){input,select,textarea{font-size:16px}.x-btn,.star,.pw-x,.acct .linklike,.in-toggle button{min-height:32px}.pw-x{width:40px;height:40px}}
@media(max-width:480px){.tab{padding:13px 9px;letter-spacing:1px}}
/* buttons: the landing's heavier, larger label everywhere (Sam 9/5) */
.go-btn{font-weight:600;font-size:13px;letter-spacing:.12em}
.go-btn.btn-lg{font-size:14px;letter-spacing:.14em}
.go-btn.btn-sm{font-size:11.5px;letter-spacing:.1em}
.pw-plan .n{font-weight:600}
.chg-btn,.more-btn,.x-btn.go{font-weight:600}
/* ── plan page ── */
.plan{display:none;min-height:calc(100vh - 56px);padding:56px 22px 80px;background:var(--bg)}
body.plan-on .plan{display:block}
.plan-in{max-width:1040px;margin:0 auto}
.plan-k{font-family:var(--f-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--neon);margin-bottom:14px}
.plan-h{font-family:var(--f-disp);font-weight:600;font-size:clamp(30px,4.2vw,46px);line-height:1.05;letter-spacing:-.01em;margin:0 0 12px;color:var(--text)}
.plan-sub{font-size:17px;color:var(--muted);margin:0 0 34px;max-width:620px;line-height:1.5}
.plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:12px}
.plan-card{position:relative;border:1px solid var(--border);border-radius:14px;padding:26px 24px 24px;background:rgba(127,127,127,.06);display:flex;flex-direction:column;gap:6px}
.plan-card.best{border-color:var(--neon);box-shadow:0 0 0 1px var(--neon) inset}
.plan-badge{position:absolute;top:-11px;left:22px;background:var(--neon);color:var(--on-neon);font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;padding:4px 10px;border-radius:6px}
.plan-name{font-family:var(--f-disp);font-weight:600;font-size:20px;color:var(--text)}
.plan-price{display:flex;align-items:baseline;gap:10px;margin-top:6px}
.plan-5{font-family:var(--f-disp);font-weight:600;font-size:52px;line-height:1;color:var(--neon);letter-spacing:-.02em}
.plan-first{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.plan-after{font-size:16px;color:var(--text);margin-top:4px}
.plan-pm{font-family:var(--f-mono);font-size:12.5px;color:var(--muted);display:flex;justify-content:space-between;gap:10px;margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid var(--border)}
.plan-pm span{color:var(--neon)}
.plan-go{width:100%;margin-top:auto}
.plan-msg{font-size:13px;color:var(--amber);min-height:1.4em;margin:6px 0 18px}
.plan-feat{border:1px solid var(--border);border-radius:14px;padding:22px 26px;margin-bottom:22px}
.plan-feat-h{font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}
.plan-feat ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:8px 28px}
.plan-feat li{position:relative;padding-left:22px;font-size:15px;line-height:1.45;color:var(--text)}
.plan-feat li::before{content:'';position:absolute;left:0;top:9px;width:9px;height:9px;border-radius:50%;background:var(--neon)}
.plan-trust{display:flex;flex-wrap:wrap;gap:8px 22px;font-family:var(--f-mono);font-size:11.5px;letter-spacing:.06em;color:var(--muted);margin-bottom:26px}
.plan-trust a{color:var(--neon)}
.plan-foot{display:flex;flex-wrap:wrap;gap:8px 22px;font-size:13.5px;color:var(--muted)}
.plan-foot .linklike{color:var(--muted);font-size:13.5px}
@media(max-width:860px){.plan-grid{grid-template-columns:1fr}.plan-feat ul{grid-template-columns:1fr}.plan{padding:36px 18px 60px}.plan-5{font-size:44px}}
body.plan-on .map-attr{display:none}
/* plan page: the plan price is the headline, the $5 month and the next charge are spelled out */
.plan-big{font-family:var(--f-disp);font-weight:600;font-size:46px;line-height:1;color:var(--text);letter-spacing:-.02em}
.plan-per{font-family:var(--f-mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.plan-pm{margin-top:8px;margin-bottom:14px}
.plan-sched{display:flex;flex-direction:column;gap:8px;margin-bottom:18px;padding:12px 14px;border-radius:10px;background:rgba(127,127,127,.08)}
.plan-sched div{display:flex;flex-direction:column;gap:2px}
.plan-sched b{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--neon);font-weight:600}
.plan-sched span{font-size:14px;color:var(--text)}
@media(max-width:860px){.plan-big{font-size:40px}}
/* feature showcase: title, then the picture, then the text (Sam 9/5) */
.l-card2{display:flex;flex-direction:column}
.l-card2 h3{order:0;margin:0 0 12px}
.l-card2 .l-vig{order:1;margin:0 0 14px}
.l-card2 p{order:2;margin:0}
/* text runs the full width of its block, never two thirds (Sam 9/5) */
.plan-sub,.rp-lead,.verdict-sub,.l-lead,.l-card2 p,.l-feat p,.l-step p{max-width:none}
/* signing-in screen (magic-link return) */
.signin-screen{display:none;position:fixed;inset:0;z-index:60;background:var(--bg);align-items:center;justify-content:center;text-align:center}
html.signing-in .signin-screen{display:flex}
html.signing-in #hero,html.signing-in #app,html.signing-in .plan{visibility:hidden}
.signin-in{display:flex;flex-direction:column;align-items:center;gap:18px;padding:24px}
.signin-in .wordmark{font-size:22px}
.signin-in h1{font-family:var(--f-disp);font-weight:600;font-size:28px;margin:0;color:var(--text)}
.signin-in p{margin:0;color:var(--muted);font-size:15px}
.signin-spin{width:34px;height:34px;border-radius:50%;border:3px solid var(--border);border-top-color:var(--neon);animation:spin .9s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.signin-spin{animation:none}}
/* plan page feature list: one column (Sam 9/6); sign-in code entry */
.plan-feat ul{grid-template-columns:1fr}
.pw-code{margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}
.pw-code label{display:block;font-size:13px;color:var(--muted);margin-bottom:8px}
.pw-code input{display:block;width:100%;box-sizing:border-box;margin-top:8px;font-family:var(--f-mono);font-size:22px;letter-spacing:.3em;text-align:center;padding:10px 12px}
.pw-code .go-btn{width:100%;margin-top:10px}
.l-card2 h3{font-size:24px;font-weight:600;letter-spacing:-.01em}
.l-copyright{margin-top:44px}.l-copyright a{color:var(--muted);text-decoration:underline;text-underline-offset:3px}.l-copyright a:hover{color:var(--neon)}.l-copyright .l-sep{margin:0 6px;color:var(--muted2)}
.l-copyright{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap}
.pw-code input{letter-spacing:.2em;font-size:20px}
/* review pass 9/6: colors, boxed headline, spacing, No data */
:root{--even-c:#cfcfc6}:root[data-theme="light"]{--even-c:#444444}
.ov-word.even,.pl-verdict.even{color:var(--even-c)}.delta.down{color:var(--down-c);border-color:var(--down-c)}.delta.up{color:var(--up-c);border-color:var(--up-c)}
.l-vr u.ok{color:var(--muted)}
.l-split{grid-template-columns:1fr;gap:0;padding:70px 0 40px}.l-h1{white-space:normal;font-size:clamp(30px,3.6vw,50px)}.l-lead{font-size:19px}
.rp-head{border:1px solid var(--border);border-radius:14px;padding:30px 32px 26px;margin-top:0;background:rgba(127,127,127,.05)}
.rp-title{font-size:clamp(30px,3.8vw,46px);font-weight:600}
.rp-universe{font-size:13.5px;color:var(--muted);margin:14px 0 0}
.lg.why{cursor:help}.lg.why b{display:inline-block;width:15px;height:15px;line-height:15px;border-radius:50%;border:1px solid var(--border);font-size:10px;text-align:center;color:var(--muted);margin-left:4px;font-weight:600}
.nd{font-style:normal;letter-spacing:.02em}
.controls{gap:12px;margin-bottom:18px}.controls select{min-height:44px;padding:0 36px 0 14px;border-radius:8px;font-size:14px;appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat}.controls .seg{min-height:44px;border-radius:8px;overflow:hidden}.controls .seg button{padding:0 14px}
.chips{margin:6px 0 16px}.catstrip{margin:4px 0 16px}
.rp.in .rp-sec{margin-top:46px}.in-two{gap:34px}.in-stats{gap:16px;margin-bottom:26px}
.l-h1{font-size:clamp(28px,3.05vw,42px)}@media(min-width:960px){.l-h1{white-space:nowrap}}
.l-h1{margin:0 0 14px!important;width:auto}
/* establishment lock + PDF (review 9/6) */
.pw-est{border:1px solid var(--border);border-radius:10px;padding:14px 16px;margin:4px 0 14px}
.pw-est-k{font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted2);margin-bottom:6px}
.pw-est-n{font-size:17px;font-weight:600;color:var(--text)}.pw-est-l{font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;color:var(--muted);margin-top:2px;text-transform:uppercase}
.pw-check{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:var(--text);margin-top:12px;line-height:1.45}.pw-check input{margin-top:3px;width:16px;height:16px;flex:none}
.pw-est-none{font-size:14px;color:var(--amber)}
#pdfBtn{margin-left:auto}#pdfBtn + #change{margin-left:0}
@media print{
  html.print-light:root{color-scheme:light}html.print-dark:root{color-scheme:dark}   /* the page prints in the theme on screen (9/23); the canvas is white or the dark background edge to edge */
  html.print-light,html.print-light body{background:#fff!important;color:#111!important}html.print-dark,html.print-dark body{background:var(--bg)!important;color:var(--text)!important}
  .topbar,.modeSw,.tabs,#sideMap,.map-attr,.chg-btn,.pw-overlay,.pw-skel,.hero,#signingIn,.plan,.hh-form,.add-two,#upOut,.more-btn,.x-btn,.ov-cmpwrap,.rp-foot,.in-map,.in-maplg,.in-toggle,.in-chips,.controls,.chips,.catstrip,.hh-clear{display:none!important}
  .mybar{padding:0 0 14px!important;border-bottom:1px solid var(--border)!important}
  .workspace,.panes,.pane,.rp{max-width:none!important;width:auto!important;padding-left:0!important;padding-right:0!important;background:none!important;box-shadow:none!important}
  .rp-head{max-width:none!important;width:auto!important;background:none!important;box-shadow:none!important}
  .pane{display:none!important}.pane.on{display:block!important}
  .pl,.stat,table tr,.in-two>div{break-inside:avoid;page-break-inside:avoid}.rp-sec{break-inside:auto}.rp-sec-h,.ov-sec,h2,h3{break-after:avoid}   /* sections flow across pages, rows stay whole (9/15) */
  .bar-switch,#barAdd{display:none!important}
  body::before,body::after{display:none!important}.rp,.panes{background-image:none!important;min-height:0!important}.tblwrap{overflow:visible!important}table.ov-area{font-size:10.5px}table.ov-area th,table.ov-area td{padding-left:4px;padding-right:4px}.workspace{min-height:0!important}html,body{min-height:0!important}   /* no dot field and no trailing blank page in print (9/15) */
  .pw-gated,.pw-fake,#pdfBtn,.est-confirm{display:none!important}   /* a visitor's gated figures never print; members have nothing gated */
  html.print-light:root{--bg:#fff;--surface:#fff;--surface2:#fff;--border:#d8d8d0;--border2:#e6e6e0;--neon:#3f6b0b;--neon-fill:#3f6b0b;--on-neon:#fff;--text:#111;--muted:#555;--muted2:#777;--gold:#6f5612;--amber:#7d4f06;--up-c:#6b4d00;--down-c:#1f5a9a}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  a{color:var(--text)!important;text-decoration:none!important}
  @page{margin:14mm 13mm}
}

/* legal links (9/9) */
.l-copyright a{margin-left:14px}
.pw-legal a,.plan-legal a{color:var(--muted);text-decoration:underline;text-underline-offset:3px}
.plan-legal{font-size:13px;color:var(--muted2);margin:-14px 0 26px;line-height:1.5}

/* establishment confirmation (9/9) */
.est-confirm{max-width:680px;margin:44px auto 60px;padding:0 22px}
.est-confirm-in{border:1px solid var(--border);border-radius:14px;padding:26px 28px;background:var(--surface)}
.est-confirm-n{font-family:var(--f-disp);font-size:clamp(26px,4vw,34px);font-weight:600;line-height:1.1;margin:6px 0 6px;letter-spacing:-.01em}
.est-confirm-l{font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:16px}
.est-confirm-p{color:var(--muted);font-size:15px;line-height:1.55;margin:0 0 20px}
.est-confirm-b{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center}
@media(max-width:600px){.est-confirm{margin:20px auto 40px}.est-confirm-in{padding:20px 18px}.est-confirm-b .go-btn{width:100%;justify-content:center}}

/* contribution switch (9/9) */
.contrib{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);margin:0 14px 0 0;cursor:pointer}.contrib input{accent-color:var(--neon);width:16px;height:16px;margin:0}.contrib-h{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;border:1px solid var(--border);font-size:10px;color:var(--muted2);cursor:help}
.rp-contrib{margin-top:10px;font-size:13px}.up-actions .contrib{margin-left:auto}

/* account chip on phones (9/9) */
#acctManage .ms,#acctAdd .ms{display:none}
@media(max-width:480px){.font-ctl{display:none}}

/* polish 9/9 */
:focus-visible{outline:2px solid var(--neon);outline-offset:2px}
.rp-nudge .linklike{margin-right:12px;font:inherit}
.up-actions .linklike{font:inherit}

body.has-map::before{background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px),var(--map-url)}

/* full-data retry notice (member whose full dataset failed to load) */
.notice.retry{flex-direction:row;align-items:center;flex-wrap:wrap;gap:12px}
.notice.retry>div{display:flex;flex-direction:column;gap:2px;flex:1 1 240px}
.notice.retry .s{color:var(--muted);font-size:13px}
.notice.retry button{font:inherit;font-weight:600;font-size:14px;padding:9px 14px;border-radius:8px;border:0;background:var(--neon);color:#0a0a08;cursor:pointer}
.notice.retry button:disabled{opacity:.6;cursor:default}

/* walk-through fixes (9/10) */
body.confirming .tabs,body.confirming .workspace{display:none!important}
.est-confirm-b .go-btn{white-space:normal;line-height:1.25;text-align:center}
@media(max-width:480px){.est-confirm-b .go-btn.btn-lg{padding:13px 18px;width:100%}}
.pw-modal .pw-check{display:flex;flex-direction:row;align-items:flex-start;gap:10px;margin-top:12px}
.pw-modal .pw-check input{width:16px;height:16px;margin:3px 0 0;flex:none;display:inline-block}
body.pw-lock .pw-overlay{visibility:hidden}
body.ac-open .skip-row{visibility:hidden}
.verify-bar .verify-actions{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:6px;font-size:inherit;color:inherit}
#pwBody h1:focus,#pwBody h2:focus,#pwBody h3:focus{outline:none}
body.confirming .leaflet-container{visibility:hidden}

/* landing product loop */
.l-loop{max-width:1160px;margin:38px auto 0;padding:0 22px}
.l-loop-v,.l-loop-poster{width:100%;display:block;border:1px solid var(--border);border-radius:14px;background:var(--surface);aspect-ratio:16/10}
.l-loop-poster{display:none}
.l-loop-cap{color:var(--muted);font-size:13.5px;margin:10px 0 0;text-align:center}
@media(prefers-reduced-motion:reduce){.l-loop-v{display:none}.l-loop-poster{display:block}}

/* ── sign-up wizard (9/11): one panel, four steps ── */
.wiz-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;list-style:none;margin:0 0 26px;padding:0;max-width:640px;font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted2)}
.wiz-step{display:flex;flex-direction:column;gap:8px;min-width:0}.wiz-bar{display:block;height:3px;border-radius:2px;background:var(--border)}.wiz-lbl{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wiz-step.done .wiz-bar,.wiz-step.on .wiz-bar{background:var(--neon)}.wiz-step.on .wiz-lbl{color:var(--text)}.wiz-step.done .wiz-lbl{color:var(--muted)}
.wiz-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 22px;font-size:13.5px;color:var(--muted);margin-bottom:18px}.wiz-top .linklike,.wiz-top a{color:var(--muted);font-size:13.5px}.wiz-who .linklike{margin-left:4px}
.wiz-form{max-width:520px}.wiz-form label{display:block;font-size:13px;color:var(--muted);margin-bottom:14px}
.wiz-form label input,.wiz-search input{display:block;width:100%;box-sizing:border-box;margin-top:6px;background:var(--surface);border:1px solid var(--border);color:var(--text);font-family:var(--f-body);font-size:15px;padding:12px 14px;border-radius:8px}
.wiz-form label input:focus,.wiz-search input:focus{border-color:var(--neon);outline:none}.wiz-form .go-btn{width:100%;margin-top:6px}
.wiz .pw-est{max-width:520px}.wiz-hint{font-size:13px;color:var(--muted2);margin-top:8px;line-height:1.45}
.wiz-grid{grid-template-columns:repeat(2,1fr)}.wiz .plan-in{max-width:1240px}@media (min-width:1360px){.wiz-grid{grid-template-columns:repeat(4,1fr)}}.wiz-group{border-style:dashed}.wiz-group .plan-badge{background:var(--surface);color:var(--neon);border:1px solid var(--neon)}.wiz-group .plan-pm{font-family:var(--f-body);font-size:14px;color:var(--text)}
.wiz-group-ctl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:2px 0 14px}.wiz-group-ctl label{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.wiz-group-ctl select{display:block;width:100%;margin-top:6px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:9px 10px;font-family:var(--f-body);font-size:14px}
.wiz-pick{max-width:560px;margin-bottom:6px}.wiz-search{display:block;position:relative;font-size:13px;color:var(--muted);margin-top:14px}
.wiz-ac{position:absolute;left:0;right:0;top:100%;z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:10px;margin-top:4px;overflow:hidden;box-shadow:0 14px 40px rgba(0,0,0,.35)}.wiz-ac[hidden]{display:none}
.wiz-ac button{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--border);padding:10px 14px;color:var(--text);font-family:var(--f-body);cursor:pointer}.wiz-ac button:last-child{border-bottom:0}.wiz-ac button:hover{background:rgba(127,127,127,.1)}
.wiz-ac button b{font-size:14.5px;font-weight:600}.wiz-ac button span{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.wiz-ac .muted{display:block;padding:10px 14px;font-size:13px}
.wiz-chips{display:flex;flex-wrap:wrap;gap:8px;min-height:34px}.wiz-chip{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--neon);border-radius:999px;padding:6px 8px 6px 14px;font-size:14px;color:var(--text)}
.wiz-chip button{background:none;border:0;color:var(--muted);font-size:18px;line-height:1;cursor:pointer;padding:0 4px}.wiz-chip button:hover{color:var(--amber)}
.wiz .plan-msg{margin:10px 0 14px}.wiz .plan-sub b{color:var(--text)}
.acct-switch{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:5px 8px;font-family:var(--f-mono);font-size:11px;letter-spacing:.06em;max-width:200px}
@media (max-width:640px){.wiz-grid{grid-template-columns:1fr}.wiz-group-ctl{grid-template-columns:1fr}.acct-switch{max-width:120px}}

/* ── Google sign-in (9/12): Google's button rules, white with the four-colour mark ── */
.wiz-google{max-width:520px;margin:0 0 18px}
.g-btn{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:50px;padding:12px 18px;border-radius:8px;border:1px solid #dadce0;background:#fff;color:#1f1f1f;font-family:var(--f-body);font-size:15px;font-weight:500;cursor:pointer;box-sizing:border-box}
.g-btn:hover{background:#f7f8f8}.g-btn:disabled{opacity:.6;cursor:wait}
.wiz-or{display:flex;align-items:center;gap:12px;margin:16px 0 0;font-size:13px;color:var(--muted2)}.wiz-or::before,.wiz-or::after{content:'';flex:1;height:1px;background:var(--border)}
.pw-card .wiz-google{margin-bottom:14px}

/* ── account page (9/12) ── */
.acct-ic{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;border:1px solid var(--border);background:transparent;color:var(--muted);cursor:pointer;padding:0}.acct-ic:hover{color:var(--neon);border-color:var(--neon)}
.acct-in{max-width:720px}.acct-rows{margin:26px 0 30px;padding:0;border-top:1px solid var(--border)}.acct-rows>div{display:grid;grid-template-columns:160px 1fr;gap:12px;padding:16px 0;border-bottom:1px solid var(--border)}
.acct-rows dt{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding-top:3px}.acct-rows dd{margin:0;font-size:16px;color:var(--text)}.acct-v{font-size:16px}.acct-v.muted{color:var(--muted)}
.acct-hint{font-size:13px;color:var(--muted2);margin-top:6px;line-height:1.45}.acct-page .acct-switch{font-size:14px;padding:9px 10px;max-width:100%;font-family:var(--f-body);letter-spacing:0}
.acct-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:18px}.acct-actions .go-btn{width:auto}.acct-secondary{background:transparent;color:var(--text);border:1px solid var(--border)}.acct-secondary:hover{border-color:var(--neon);color:var(--neon);opacity:1}
.acct-out{color:var(--muted);font-size:13.5px;margin-left:6px}.acct-foot{font-size:13.5px;color:var(--muted);line-height:1.5;max-width:none;margin:0 0 10px}.acct-foot a{color:var(--neon)}
@media (max-width:640px){.acct-rows>div{grid-template-columns:1fr;gap:4px}.acct-actions .go-btn{width:100%;white-space:normal;line-height:1.35;padding:13px 16px;font-size:12.5px;letter-spacing:.1em}.wiz-steps{gap:6px}.wiz-step:not(.on) .wiz-lbl{visibility:hidden}}

.wiz-split{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.wiz-split span{color:var(--text)}.wiz-split span:last-child{color:var(--neon)}

.wiz-notlisted{margin-top:14px;font-size:13.5px}.wiz-notlisted .linklike{color:var(--muted)}.wiz-add{margin-top:12px;padding:16px;border:1px solid var(--border);border-radius:10px}.wiz-add label{display:block;font-size:13px;color:var(--muted);margin-bottom:12px}.wiz-add label input{display:block;width:100%;box-sizing:border-box;margin-top:6px;background:var(--surface);border:1px solid var(--border);color:var(--text);font-family:var(--f-body);font-size:15px;padding:11px 12px;border-radius:8px}.wiz-add label input:focus{border-color:var(--neon);outline:none}.wiz-add-row{display:flex;align-items:center;gap:16px}.wiz-add-row .go-btn{width:auto}.wiz-add[hidden]{display:none}

.pl-lbl-med{top:-6px;color:var(--muted)}.rp-nudge-lite{margin-top:14px;font-size:14px}.rp-nudge-lite .linklike{color:var(--muted)}.rp-legend .lg-dot{display:inline-block;width:10px;height:10px;border-radius:50%}.rp-legend .lg-hi{background:var(--up-c)}.rp-legend .lg-lo{background:var(--down-c)}
.stats{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
@media (max-width:640px){.stats{grid-template-columns:1fr 1fr}}

/* 9/13 (Sam): the report header's top margin used to collapse through the pane and show a bare band under the mode switch; the pane pads instead */
body.ov #pane-overview.on,body.ov #pane-insights.on{padding-top:24px}
/* 9/13 (Sam): one background on every product page, the Insights dotted field; the grid lines are gone */
body::before{background-image:radial-gradient(var(--rp-dot) .9px,transparent 1.4px);background-size:26px 26px;background-position:13px 13px;background-repeat:repeat}
body.has-map::before{background-image:radial-gradient(var(--rp-dot) .9px,transparent 1.4px),var(--map-url);background-size:26px 26px,cover;background-position:13px 13px,center 14%;background-repeat:repeat,no-repeat}
.panes{background-image:radial-gradient(ellipse 70% 55% at 15% 0%,var(--rp-glow) 0%,transparent 70%),linear-gradient(180deg,var(--rp-tint) 0%,transparent 42%),radial-gradient(var(--rp-dot) .9px,transparent 1.4px);background-size:100% 100%,100% 100%,26px 26px;background-position:0 0,0 0,13px 13px}
/* 9/13 (Sam): the Insights unlock panel sits higher */
#pane-insights .pw-overlay{padding-top:16px}
/* 9/13 (Sam): the legend ? shows its note on hover, focus and tap */
.lg.why{position:relative;outline:none}.lg.why b{cursor:pointer}
.lg.why::after{content:attr(data-tip);position:absolute;top:calc(100% + 8px);right:0;z-index:20;width:300px;max-width:80vw;white-space:normal;padding:10px 12px;border:1px solid var(--border);border-radius:6px;background:var(--surface2);color:var(--text);font-size:12px;line-height:1.45;box-shadow:0 10px 30px rgba(0,0,0,.35);opacity:0;pointer-events:none;transition:opacity .12s}
.lg.why:hover::after,.lg.why:focus-visible::after,.lg.why.open::after{opacity:1}

/* 9/13 (Sam): more room between the ladder caption and the "you" marker in the price lookup */
.lad-track{margin-top:42px}

/* 9/13 (Sam): the establishment count under the price no longer runs into the bar; the value column is wider and the bar stops short of it */
.in-bar{grid-template-columns:minmax(150px,40%) 1fr 150px;gap:18px}
@media(max-width:760px){.in-bar{grid-template-columns:minmax(110px,38%) 1fr 118px;gap:12px}.in-bar-v small{white-space:normal;text-align:right}}

/* 9/13 (Sam): Insights spacing pass. The value column sizes to its own text on every bar list (the two-column drink panels were still tight), rows breathe a little more, and the bar never runs into the figure */
.in-bar{grid-template-columns:minmax(140px,38%) minmax(90px,1fr) max-content;gap:20px;padding:10px 0}
.in-bar-v{padding-left:6px}
.in-two{gap:40px}
.in-sub{margin-bottom:14px}
@media(max-width:760px){.in-bar{grid-template-columns:minmax(100px,36%) minmax(60px,1fr) max-content;gap:12px}}

/* 9/13 (Sam): stat values wrap onto a second line instead of being cut off at the tile edge */
.stat .v{white-space:normal;line-height:1.1;overflow-wrap:anywhere}
.stat .v .u{white-space:nowrap}

/* 9/13 (Sam): menu reader review block breathes; the same rule covers every heading line followed by a note and a table */
.up-review .meta{margin-bottom:22px}
.up-review .fine{margin:0 0 18px}
.fine+.tblwrap,.fine+table,.fine+.up-list{margin-top:16px}
.meta+.fine{margin-top:0}

.acct-remove{display:block;margin-top:10px;font-size:13px;color:var(--muted)}.acct-remove:hover{color:var(--text)}

.ac-addrow{border-top:1px solid var(--border)}

/* 9/14 (Sam): the scope control ends at its last option, so the border closes right after it */
.controls .seg{width:max-content;max-width:100%}.controls .seg button:last-child{border-right:none}

/* 9/14: room between the preview facts and the intro sentence on Insights */
#insPvFacts .rp-notes{margin-bottom:22px}

/* 9/14 (Sam): every scope control ends at its last option; the border closes right after it with even spacing */
.seg,.mkt-head .seg,.controls .seg{display:inline-flex;width:max-content;max-width:100%;flex:none}
.seg button:last-child{border-right:none}

/* 9/14 (Sam): thicker step bars */
.wiz-bar{height:4px}

/* 9/14 (Sam): a blacker map base in dark mode: the dark gray canvas is dimmed and desaturated, the overlay deepened; markers sit above it */
:root:not([data-theme="light"]) #mapEl::after,:root:not([data-theme="light"]) .in-map::after{background:rgba(0,0,0,.6)}
:root:not([data-theme="light"]) #mapEl .leaflet-tile-pane,:root:not([data-theme="light"]) .in-map .leaflet-tile-pane{filter:saturate(.5) brightness(.8) contrast(1.1)}

:root:not([data-theme="light"]) #mapEl .leaflet-tile-pane,:root:not([data-theme="light"]) .in-map .leaflet-tile-pane{filter:saturate(.4) brightness(.45) contrast(1.35)}
:root:not([data-theme="light"]) #mapEl::after,:root:not([data-theme="light"]) .in-map::after{background:rgba(0,0,0,.45)}

/* 9/14: slightly tighter quick chips so the full row fits on a laptop */
#ckChips .chip{padding:6px 11px;letter-spacing:.8px}

/* 9/14 (Sam): on phones the scope control stays on one line and scrolls sideways if it must */
@media(max-width:640px){.seg,.controls .seg,.mkt-head .seg{flex-wrap:nowrap;overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;scrollbar-width:none}.seg::-webkit-scrollbar{display:none}.seg button{white-space:nowrap;flex:none}}

/* 9/14 (Sam): on phones the sign-in chip, text size and theme controls sit at the top right; desktop unchanged */
@media(max-width:640px){.topbar .brand{margin-right:auto}.topbar{gap:8px}}

/* landing carousel (9/14): five screens, swipe or click; replaces the loop video */
.l-reel{max-width:1160px;margin:38px auto 0;padding:0 22px}
.reel-frame{position:relative;border:1px solid var(--border);border-radius:14px;background:var(--surface);overflow:hidden}
.reel-track{display:flex;transition:transform .45s cubic-bezier(.2,.7,.2,1);will-change:transform}
.reel-slide{flex:0 0 100%;margin:0}.reel-slide img{display:block;width:100%;height:auto;aspect-ratio:1650/1034}
.reel-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:1px solid var(--border);background:rgba(10,10,8,.72);color:var(--text);font-size:30px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0 0 4px;transition:background .15s,border-color .15s}
.reel-nav:hover{background:rgba(10,10,8,.92);border-color:var(--neon)}.reel-prev{left:14px}.reel-next{right:14px}
:root[data-theme="light"] .reel-nav{background:rgba(255,255,255,.85);color:var(--text)}:root[data-theme="light"] .reel-nav:hover{background:#fff}
.reel-foot{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:16px}
.reel-dots{display:flex;gap:8px}.reel-dots button{width:8px;height:8px;border-radius:50%;border:1px solid var(--muted2);background:transparent;padding:0;cursor:pointer;transition:background .15s,border-color .15s}.reel-dots button.on{background:var(--neon);border-color:var(--neon)}
.reel-cap{margin:0;font-size:15px;color:var(--muted);text-align:center;max-width:720px;line-height:1.5}.reel-cap b{color:var(--text);font-weight:600}
.l-reel .l-loop-cap{margin-top:8px}
@media(max-width:640px){.l-reel{padding:0 12px;margin-top:26px}.reel-nav{width:36px;height:36px;font-size:24px}.reel-prev{left:8px}.reel-next{right:8px}.reel-cap{font-size:14px}}

/* 9/14 (Sam): overview rows keep their text aligned with the headings; the hover shade extends past the text instead of the text hugging the edge */
.pl-row{padding:20px 16px;margin:0 -16px;border-radius:8px}
@media(max-width:640px){.pl-row{padding:18px 10px;margin:0 -10px}}
.reel-cap{max-width:1000px}

/* team section on the account page (9/14) */
.acct-team{margin:22px 0 6px;padding:16px 18px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.acct-team-h{font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);display:flex;gap:10px;align-items:baseline;margin-bottom:6px}.acct-team-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border-top:1px solid var(--border2);font-size:14px}.acct-team-row em{font-style:normal;color:var(--muted2);font-size:12px}.acct-invite{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.acct-invite input{flex:1;min-width:200px;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:9px 12px;font-size:14px}

/* Multi-Location header switcher (9/15): the drop-down stands where the name was, Add establishment beside it, Download PDF far right */
.mybar.multi .nm{display:none}
.bar-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.bar-switch{display:block;max-width:100%;background-color:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:6px 34px 6px 12px;font-family:var(--f-disp);font-size:18px;font-weight:500;line-height:1.2;letter-spacing:0;text-transform:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='7' viewBox='0 0 12 7'><path d='M1 1l5 5 5-5' fill='none' stroke='%23999' stroke-width='1.6'/></svg>");background-repeat:no-repeat;background-position:right 12px center;cursor:pointer}
.bar-switch:hover{border-color:var(--neon)}
.bar-switch option{background:var(--surface);color:var(--text);font-size:15px}   /* the open list follows the theme instead of Chrome's white default */
#barAdd{margin-left:0}
.mybar.multi .loc{margin-top:8px}
.mybar.multi #pdfBtn{margin-left:auto}
@media(max-width:640px){.bar-switch{font-size:16px}.mybar.multi #pdfBtn{margin-left:0}}

/* one more slot from the lock-in step (9/15) */
.wiz-more{margin:14px 0 4px;font-size:14px}.wiz-more .linklike{font:inherit;color:var(--muted);text-decoration:underline;text-underline-offset:3px}.wiz-more .linklike:hover{color:var(--neon)}

/* the wordmark is a control (9/15) */
.topbar .brand{cursor:pointer;border-radius:6px}
/* wizard on phones (9/15): the current step label reads in full, the "Need another" link sits left like the rest */
@media (max-width:640px){.wiz-step.on .wiz-lbl{overflow:visible;text-overflow:clip}}
.wiz-more .linklike{text-align:left}

/* step 1 of the wizard carries the establishment (9/17) */
.wiz-est1{max-width:640px;margin:0 0 22px}.wiz-est1 .wiz-hint{margin-top:8px}
/* the median price label sits a little higher, clear of its tick (Sam, 9/17) */
.pl-lbl-med{top:-11px}
/* an emptied page section must not take up a screen (Sam, 9/17): the account page, the wizard and the plan page are all .plan
   sections shown by body.plan-on, each a full viewport tall; a closed one left in the document sat above the open one as a black screen */
body.plan-on .plan:empty{display:none}

/* ── print clean-up (9/17) ── */
.noprint-inline{}
@media print{
  @page{margin:14mm 13mm 15mm}
  .noprint{display:none!important}
  /* header: the establishment on the left, the wordmark on the right; NYC Insights is about the city, not one establishment */
  .mybar{display:flex!important;align-items:flex-end!important;margin-bottom:14px!important}
  .mybar::after{content:"5PM Barometer";margin-left:auto;font-family:var(--f-disp);font-size:13px;font-weight:600;color:var(--text);letter-spacing:0}
  #app:has(#pane-insights.on) .mybar>div:first-child{display:none!important}
  #app:has(#pane-insights.on) .mybar::before{content:"NYC Insights";font-family:var(--f-disp);font-size:18px;font-weight:500;color:var(--text)}
  /* the title card: text clear of its border, tighter on paper */
  .rp-head{padding:18px 22px 16px!important;margin-bottom:6px!important}
  .rp-title{font-size:26px!important;line-height:1.15!important}
  .rp-sec{padding-top:20px!important;margin-top:0!important}.rp.in .rp-sec{margin-top:10px!important}
  /* rows stay whole, headers stay with what they head, long lists flow from page to page */
  .pl,.pl-row,.in-bar,.in-stat,.stat,.in-classic,.det-item,.hh-card,.fact,.in-facts li,table tr{break-inside:avoid!important;page-break-inside:avoid!important}
  .meta,.rp-sec-h,.ov-sec,.in-sub,.verdict,.verdict-sub,h1,h2,h3{break-after:avoid!important;page-break-after:avoid!important}
  .in-two{display:block!important}.in-two>div{break-inside:auto!important;page-break-inside:auto!important;margin:0 0 22px!important}
  .in-bars,.pl-list,.rp-sec,.tblwrap,table,tbody{break-inside:auto!important;page-break-inside:auto!important}
  /* paper layouts, pinned: a browser's own print would otherwise apply the phone breakpoints at paper width */
  .pl-row{grid-template-columns:150px 86px 92px 1fr!important;grid-template-areas:"cat you verdict track" "cat you verdict sub"!important;column-gap:16px!important;row-gap:3px!important;padding:13px 0!important;cursor:default!important}
  .in-rate .pl-row{grid-template-columns:150px 86px 118px 1fr!important}
  .pl-you-price{font-size:20px!important}.pl-cat{font-size:14px!important}.pl-sub{font-size:11.5px!important;line-height:1.4!important}
  .pl-track{margin-right:30px!important}   /* the right-hand label was cut off at the paper's edge */
  .in-bar{grid-template-columns:minmax(150px,36%) 1fr 104px!important;gap:12px!important;padding:6px 0!important;font-size:12.5px!important;cursor:default!important}
  .in-stats{grid-template-columns:repeat(4,1fr)!important;gap:8px!important}
  .stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))!important}
  .stat{padding:12px 14px!important}
  /* tables: no wrapper box (it left an open rectangle at a page end), every column readable */
  .tblwrap{border:none!important;overflow:visible!important;background:none!important}
  table{width:100%!important}
  table.mkt{table-layout:auto!important;font-size:10.5px!important}
  table.mkt th,table.mkt td{padding:6px 5px!important;overflow:visible!important;text-overflow:clip!important;white-space:nowrap!important}
  table.mkt th{font-size:8px!important;letter-spacing:.05em!important}
  table.mkt td.pr,table.mkt td.pr *{font-size:11px!important}
  table.mkt .vname{white-space:normal!important;font-size:12px!important;-webkit-line-clamp:unset!important;display:inline!important}
  table.mkt .sub{font-size:8.5px!important;letter-spacing:.04em!important}
  .star-th,.star-td{display:none!important}
  .mkt-head{display:none!important}   /* the Compare against control is a screen control; the heading already names the area */
  tr.vrow{cursor:default!important}
  /* My Prices: the price is a number on paper, the empty Add items heading goes */
  .price-btn{display:inline!important;border:none!important;background:none!important;padding:0!important;font:inherit!important;color:var(--text)!important;cursor:default!important}
  .meta:has(+ .add-two){display:none!important}
  #pane-mine table{table-layout:auto!important}
  /* charts and cards */
  .hist,.lad-track,.in-band{break-inside:avoid!important}
  .badge{border-color:var(--muted2)!important}
}
@media print{
  .pl,.pl-row{margin-left:0!important;margin-right:0!important}   /* the phone layout pulls rows 16px past the edge; on paper that clipped the first letters */
  .det-more{display:none!important}                                /* "show the full menu" is a screen control */
  #pane-mine thead th:last-child,#pane-mine tbody td:last-child{display:none!important}   /* the actions column is empty on paper and left a blank third of the table */
}
@media print{.rp-legend b,.rp-nudge-lite,.rp-nudge{display:none!important}}   /* the help "?" and the "Edit your prices" link are screen controls */

/* landing rewrite (9/18): the example, the price and the FAQ; card and step text at full width */
.l-card2 p,.l-step p{max-width:none}
.l-example{margin-top:72px;padding-top:44px;border-top:1px solid var(--border)}.l-example .l-sec-h{margin:14px 0 26px}
.l-ex-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.l-ex-num{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:22px 22px 24px}
.l-ex-num b{display:block;font-family:var(--f-disp);font-size:40px;font-weight:600;line-height:1;color:var(--neon);margin-bottom:12px}
.l-ex-num span{display:block;font-size:15.5px;line-height:1.5;color:var(--muted)}
.l-ex-p{margin-top:18px;font-size:16.5px;line-height:1.55;color:var(--muted)}
.l-steps{margin-top:64px}.l-step p{color:var(--muted)}
.l-price{margin-top:72px;padding-top:44px;border-top:1px solid var(--border)}
.l-price-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:16px;margin-top:16px}
.l-price-main,.l-price-alt{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:24px}
.l-price-main b{display:block;font-family:var(--f-disp);font-size:54px;font-weight:600;line-height:1;color:var(--text)}.l-price-main b small{font-size:16px;font-weight:500;color:var(--muted);margin-left:8px;font-family:var(--f-body)}
.l-price-main span{display:block;margin-top:12px;font-size:16px;line-height:1.5;color:var(--muted)}
.l-price-alt{display:grid;grid-template-columns:1fr;gap:12px;align-content:center}.l-price-alt div{display:flex;align-items:baseline;gap:10px}.l-price-alt b{font-family:var(--f-disp);font-size:26px;font-weight:600;color:var(--text);min-width:64px}.l-price-alt span{font-size:15px;color:var(--muted)}
.l-price-fine{margin-top:14px;font-size:14px;color:var(--muted)}.l-price-fine a{color:var(--neon)}
.l-faq{margin-top:64px}.l-faq h3{font-family:var(--f-disp);font-size:22px;font-weight:500;color:var(--text);margin-bottom:18px;letter-spacing:0;text-transform:none}
.l-faq dl{display:grid;grid-template-columns:1fr 1fr;gap:28px 40px;margin:0}.l-faq dl>div{break-inside:avoid}.l-faq dt{font-weight:500;font-size:17px;color:var(--text);margin-bottom:6px}.l-faq dd{margin:0;font-size:15.5px;line-height:1.55;color:var(--muted)}
@media(max-width:900px){.l-ex-grid,.l-price-grid,.l-faq dl{grid-template-columns:1fr}.l-example,.l-price{margin-top:52px;padding-top:34px}.l-ex-num b{font-size:34px}.l-price-main b{font-size:44px}}

/* landing order (9/18): the questions in the hero, the carousel as its own section, a way back from a preview */
.l-qs{list-style:none;padding:0;margin:0 0 26px;display:grid;grid-template-columns:1fr 1fr;gap:10px 22px}
.l-qs li{position:relative;padding-left:22px;font-size:16.5px;line-height:1.4;color:var(--text)}
.l-qs li::before{content:"";position:absolute;left:0;top:.55em;width:10px;height:10px;border-radius:50%;background:var(--neon)}
.l-reel-sec{margin-top:72px;padding-top:44px;border-top:1px solid var(--border)}.l-reel-sec .l-sec-h{margin:14px 0 22px}.l-reel-sec .l-reel{margin-top:0}
.back-home{margin-right:auto;font-size:13px;color:var(--muted)}.back-home:hover{color:var(--text)}
@media(max-width:900px){.l-qs{grid-template-columns:1fr}.l-reel-sec{margin-top:52px;padding-top:34px}}

/* landing cards (9/18): the same shape in every card: a two-line question, a box of one height, text of one height */
.l-show{align-items:stretch}
.l-card2 h3{min-height:2.7em;display:flex;align-items:flex-end;line-height:1.3}
.l-card2 .l-vig{height:164px;padding:16px 18px}
.l-card2 p{min-height:4.7em}
@media(max-width:900px){.l-card2 h3{min-height:0}.l-card2 p{min-height:0}.l-card2 .l-vig{height:auto;min-height:150px}}

/* landing sections (9/18): one header pattern and one break for every section */
.l-block{margin-top:84px;padding-top:52px;border-top:1px solid var(--border)}
.l-block.l-first{margin-top:56px;padding-top:0;border-top:0}
.l-head{margin-bottom:34px}.l-head .l-eyebrow{margin-bottom:14px}.l-head .l-sec-h{margin:0 0 12px;max-width:none}.l-head .l-sub{font-size:17.5px;line-height:1.5;color:var(--muted);margin:0}
.l-block .l-example,.l-block .l-price{margin-top:0;padding-top:0;border-top:0}.l-example .l-sec-h,.l-reel-sec .l-sec-h{margin:0 0 12px}
.l-steps{margin-top:0}.l-faq{margin-top:0}.l-faq h3{display:none}.l-about{margin-top:0;padding-top:0;border-top:0;max-width:none}.l-about h3{display:none}
.l-price-grid{margin-top:0}.l-example .l-ex-grid{margin-top:0}
.l-copyright{margin-top:64px}
@media(max-width:900px){.l-block{margin-top:56px;padding-top:36px}.l-block.l-first{margin-top:40px}.l-head{margin-bottom:26px}.l-head .l-sub{font-size:16px}}

/* the hero copy in a rounded opaque box, like the cards (Sam, 9/18) */
.l-copy.l-box{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:40px 44px 36px;position:relative;z-index:1;box-shadow:0 20px 60px rgba(0,0,0,.25)}
:root[data-theme="light"] .l-copy.l-box{box-shadow:0 20px 50px rgba(0,0,0,.08)}
.l-copy.l-box .l-eyebrow{margin-top:0}
@media(max-width:900px){.l-copy.l-box{padding:26px 22px 24px;border-radius:14px}}

/* landing pass (9/18): section labels readable, one rhythm inside every section, cards of one style */
.l-sec .l-head .l-eyebrow{color:var(--neon);font-size:12.5px;letter-spacing:.24em;margin-bottom:16px;opacity:1}
.l-head{margin-bottom:36px}
.l-head .l-sec-h{font-size:clamp(28px,3.1vw,40px);line-height:1.12}
.l-head .l-sub{max-width:none}
.l-block>.l-show,.l-block>.l-example,.l-block>.l-steps,.l-block>.l-reel,.l-block>.l-price,.l-block>.l-faq,.l-block>.l-about{margin-top:0}
.l-steps .l-step{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:24px 24px 26px}.l-steps .l-step .t{color:var(--muted);font-size:12px;letter-spacing:.18em}.l-steps .l-step .n{font-family:var(--f-disp);font-size:40px;font-weight:600;margin-bottom:10px}
.l-ex-p,.l-price-fine{margin-top:22px}
.l-copy.l-box .l-eyebrow{color:var(--neon);font-size:12px;letter-spacing:.24em}
@media(max-width:900px){.l-sec .l-head .l-eyebrow{font-size:11.5px}}

/* hero box rhythm (9/18) */
.l-copy.l-box .l-eyebrow{margin-bottom:14px}
.l-copy.l-box .l-h1{margin:0 0 18px!important}
.l-copy.l-box .l-lead{margin:0 0 26px;max-width:none}
.l-copy.l-box .l-qs{margin:0 0 30px;gap:12px 24px}
.l-copy.l-box .l-search{margin:0}
.l-copy.l-box .skip-row{margin-top:18px}
@media(max-width:900px){.l-copy.l-box .l-lead{margin-bottom:20px}.l-copy.l-box .l-qs{margin-bottom:24px;gap:10px}}

/* the questions framed as what the Barometer answers (9/18) */
.l-qs-h{font-size:16.5px;font-weight:500;color:var(--text);margin:0 0 12px}
.l-copy.l-box .l-qs{margin-top:0}

/* row boxes on the landing cards: one aligned grid per box, rows fill the box (9/18) */
.l-card2 .l-vig.l-tbl{display:grid;grid-template-columns:1fr auto auto auto;column-gap:12px;row-gap:0;align-content:center;padding:12px 18px}
.l-card2 .l-vig.l-tbl .l-vig-h{grid-column:1/-1;margin-bottom:4px;padding-bottom:6px}
.l-card2 .l-vig.l-tbl .l-vr{display:contents}
.l-card2 .l-vig.l-tbl .l-vr>*{padding:8px 0;border-bottom:1px solid var(--border2);display:flex;align-items:center}
.l-card2 .l-vig.l-tbl .l-vr>span{color:var(--text)}.l-card2 .l-vig.l-tbl .l-vr>b,.l-card2 .l-vig.l-tbl .l-vr>em{justify-content:flex-end}.l-card2 .l-vig.l-tbl .l-vr>u{justify-content:flex-end}
.l-card2 .l-vig.l-tbl .l-vr:last-child>*{border-bottom:0}

/* step headings stay on one line; the example and price blocks sit under their headers with the same gap as every section (9/18) */
.l-steps .l-step h3{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:19px}
@media(max-width:1100px){.l-steps .l-step h3{white-space:normal}}
.l-block>.l-example,.l-block>.l-price{margin-top:0}

.l-card2 .l-vig.l-tbl.l-c4{grid-template-columns:1fr auto auto auto}.l-card2 .l-vig.l-tbl.l-c3{grid-template-columns:1fr auto auto}.l-card2 .l-vig.l-tbl.l-c2{grid-template-columns:1fr auto}
.l-card2 .l-vig.l-tbl .l-vr>span{white-space:nowrap}
.l-card2 .l-vig.l-tbl .l-vr>u,.l-card2 .l-vig.l-tbl .l-vr>em,.l-card2 .l-vig.l-tbl .l-vr>b{white-space:nowrap}.l-card2 .l-vig.l-tbl.l-c4{column-gap:10px}

/* the longer headline wraps instead of overflowing the box (9/18) */
.l-copy.l-box .l-h1{white-space:normal!important}

.l-price-alt span u{text-decoration:none;color:var(--neon);font-weight:500}.l-price-alt div{align-items:baseline}.l-price-alt span{line-height:1.45}

.l-price-alt b{min-width:92px}

.l-price-fine+.l-price-fine{margin-top:8px}

.l-price-alt b{min-width:0;margin-right:2px}.l-price-alt div{gap:12px}

/* the example, wider out (9/18) */
.l-ex-cmp{margin-top:18px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:18px 22px 20px}
.l-ex-cmp-h{font-family:var(--f-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.l-ex-cmp-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.l-ex-cmp-grid div{border-left:2px solid var(--border);padding-left:14px}.l-ex-cmp-grid div:first-child{border-left-color:var(--neon)}
.l-ex-cmp-grid span{display:block;font-size:14px;color:var(--muted);margin-bottom:4px}.l-ex-cmp-grid b{display:block;font-family:var(--f-disp);font-size:28px;font-weight:600;line-height:1.1;color:var(--text)}.l-ex-cmp-grid em{display:block;font-style:normal;font-size:12.5px;color:var(--muted2);margin-top:4px}
@media(max-width:900px){.l-ex-cmp-grid{grid-template-columns:1fr 1fr}}

.l-ex-var .l-ex-cmp-grid{grid-template-columns:repeat(5,1fr)}.l-ex-var .l-ex-cmp-grid div:first-child{border-left-color:var(--border)}.l-ex-fine{margin-top:14px;font-size:14px;color:var(--muted)}
@media(max-width:900px){.l-ex-var .l-ex-cmp-grid{grid-template-columns:1fr 1fr}}

.l-ex-cmp-grid i{display:block;font-style:normal;font-size:12.5px;color:var(--muted);margin-top:8px;padding-top:8px;border-top:1px solid var(--border2)}

.l-ex-cmp-grid i{display:grid;grid-template-columns:auto 1fr;column-gap:8px;row-gap:3px;align-items:baseline;color:var(--text);font-size:13px}.l-ex-cmp-grid i small{font-size:12px;color:var(--muted)}

/* the search dropdown stays above the sections below the hero box (9/18) */
.l-copy.l-box{z-index:5}.l-split{position:relative;z-index:5}

/* back to the start: a grey pill with green text, same height as the other bar buttons (9/18) */
.mybar .back-home{margin:0 0 0 6px;align-self:center;display:inline-flex;align-items:center;gap:6px;font-family:var(--f-mono);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;text-decoration:none;color:var(--neon);background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:7px 14px;line-height:1;white-space:nowrap}
.mybar .back-home:hover{border-color:var(--neon);background:var(--neon-dim);color:var(--neon)}
@media(max-width:640px){.mybar .back-home{order:5;margin:6px 0 0}}

.mybar .back-home{margin:0 auto 0 6px;line-height:normal}

/* no single hanging words on headings (9/19) */
.l-card2 h3,.l-sec-h,.l-h1,.l-step h3{text-wrap:balance}

/* the headline on one line on desktop (9/19) */
@media(min-width:1000px){.l-copy.l-box .l-h1{white-space:nowrap!important;font-size:clamp(30px,3.15vw,44px)}}

/* card headings on one line each on desktop (9/19) */
@media(min-width:1000px){.l-card2 h3{white-space:nowrap;text-wrap:nowrap;min-height:0;font-size:clamp(17px,1.55vw,22px);display:block}}

.l-price-alt span small{display:block;font-size:13px;color:var(--muted2);margin-top:3px}.l-price-alt span small u{text-decoration:none;color:var(--neon)}

/* pricing calculator (9/19) */
.l-calc{margin-top:18px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:22px 24px 24px}
.l-calc-h h3{font-family:var(--f-disp);font-size:22px;font-weight:600;color:var(--text);margin:0 0 6px;letter-spacing:0;text-transform:none}.l-calc-h p{font-size:15px;color:var(--muted);margin:0 0 18px}
.l-calc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.l-calc-grid label{display:block;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.l-calc-in{display:flex;align-items:center;margin-top:8px;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:0 12px}.l-calc-in i{font-style:normal;color:var(--muted);font-size:16px;margin-right:4px}
.l-calc-in input{width:100%;background:none;border:0;color:var(--text);font-family:var(--f-mono);font-size:18px;padding:11px 0;outline:none;-moz-appearance:textfield}.l-calc-in input::-webkit-outer-spin-button,.l-calc-in input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.l-calc-in:focus-within{border-color:var(--neon)}
.l-calc-out{margin-top:18px}.l-calc-big b{display:block;font-family:var(--f-disp);font-size:34px;font-weight:600;line-height:1.1;color:var(--neon);margin-bottom:8px}.l-calc-big span{display:block;font-size:16px;line-height:1.55;color:var(--muted)}.l-calc-big span u{text-decoration:none;color:var(--text);font-weight:500}
@media(max-width:900px){.l-calc-grid{grid-template-columns:1fr 1fr}.l-calc{padding:18px}.l-calc-big b{font-size:28px}}

/* pricing tool pane (9/19) */
.calc-form{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0 20px}
.calc-form label{display:block;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.calc-form select{display:block;width:100%;margin-top:8px;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:12px;font-size:16px;font-family:var(--f-body)}
.calc-in{display:flex;align-items:center;margin-top:8px;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:0 12px}.calc-in i{font-style:normal;color:var(--muted);font-size:16px;margin-right:4px}
.calc-in input{width:100%;background:none;border:0;color:var(--text);font-family:var(--f-mono);font-size:18px;padding:11px 0;outline:none;-moz-appearance:textfield}.calc-in input::-webkit-outer-spin-button,.calc-in input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.calc-in:focus-within{border-color:var(--neon)}
.calc-read{display:grid;grid-template-columns:1fr 1fr;gap:16px}.calc-pos,.calc-money{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px 22px}
.calc-pos b,.calc-money b{display:block;font-family:var(--f-disp);font-size:30px;font-weight:600;line-height:1.1;color:var(--neon);margin-bottom:8px;text-transform:capitalize}.calc-pos span,.calc-money span{display:block;font-size:15.5px;line-height:1.55;color:var(--muted)}
.calc-fine{margin-top:16px;font-size:13.5px;color:var(--muted2)}
@media(max-width:900px){.calc-form,.calc-read{grid-template-columns:1fr 1fr}}@media(max-width:640px){.calc-form,.calc-read{grid-template-columns:1fr}}

/* landing review version (9/19): microcopy under the search, repeated CTAs, the report link in the data section */
.l-micro{display:block;font-size:14px;color:var(--muted);letter-spacing:0;text-transform:none;font-family:var(--f-body)}
.l-hero .skip-row{margin-top:14px}
.l-cta-row{display:flex;align-items:center;gap:16px;margin-top:22px}.l-cta-row span{font-size:14px;color:var(--muted)}
.l-price-main .l-cta{margin-top:18px}
.l-report-a{color:var(--neon)}
.calc-pos b,.calc-money b{text-transform:none}
@media(max-width:640px){.l-cta-row{flex-direction:column;align-items:flex-start;gap:8px}}
/* help page (9/19): the Help button in the top bar for members, and the full-page guide it opens */
.help-btn{background:none;border:1px solid var(--border);color:var(--muted);height:34px;padding:0 14px;font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:all .15s;flex:0 0 auto}
.help-btn:hover{border-color:var(--neon);color:var(--neon)}
.help-in{max-width:760px}.help-in .plan-sub{max-width:none}
.help-toc{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 36px}.help-toc a{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:8px 14px;text-decoration:none}.help-toc a:hover{color:var(--neon);border-color:var(--neon)}
.help-sec{padding:26px 0 8px;border-top:1px solid var(--border)}.help-sec h2{font-family:var(--f-disp);font-size:24px;font-weight:600;margin:0 0 12px;color:var(--text);letter-spacing:-.01em}
.help-sec p{font-size:16px;line-height:1.6;color:var(--muted);margin:0 0 14px;max-width:none}.help-sec p b{color:var(--text);font-weight:600}.help-sec a{color:var(--neon)}
@media(max-width:640px){.help-btn{padding:0 10px}.help-sec h2{font-size:21px}.help-sec p{font-size:15px}}

/* example tiles (9/19): the sample establishment's own price leads the row in gold, and each tile carries a label */
.l-ex-grid{grid-template-columns:repeat(4,1fr)}
.l-ex-num small{display:block;font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.l-ex-num.l-ex-you{border-color:var(--gold)}.l-ex-num.l-ex-you b,.l-ex-num.l-ex-you small{color:var(--gold)}
@media(max-width:1100px){.l-ex-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.l-ex-grid{grid-template-columns:1fr}}
/* price lookup (9/19): the "Other matches" chip holds lines that use the word in another sense */
.chip.chip-other{border-style:dashed;color:var(--muted2)}.chip.chip-other.on{color:var(--neon);border-style:solid}
/* happy hour entry (9/19): a heading and one line above the box so it does not read as a search bar */
.hh-form-h{display:block;font-family:var(--f-disp);font-size:19px;font-weight:600;color:var(--text);margin:18px 0 6px}
.hh-form-sub{font-size:14.5px;line-height:1.5;color:var(--muted);margin:0 0 12px;max-width:none}
/* insights bars (9/19): the value column is a fixed width, so every bar track starts and ends at the same place whether or not the row carries a count under its price */
.in-bar{grid-template-columns:minmax(130px,28%) minmax(90px,1fr) 132px}   /* a fixed value column so every track in a list is the same width; the track takes the rest (Sam, 9/22) */
.in-bar-v small{white-space:normal;text-align:right}
@media(max-width:760px){.in-bar{grid-template-columns:minmax(100px,34%) minmax(60px,1fr) 96px}}
@media print{.in-bar{grid-template-columns:minmax(150px,36%) 1fr 104px!important}}

/* ---- chart polish (9/22), the look borrowed from Bklit UI's stat and range charts, no library: soft gradient fills on ranges and bars,
        a halo on the "you" marker, an accent rule on stat tiles. Colors stay on the existing tokens so both themes and print hold. ---- */
.pl-zone{background:linear-gradient(90deg,var(--zone),var(--neon-dim) 50%,var(--zone));box-shadow:inset 0 0 0 1px var(--zone-line)}
.pl-row:hover .pl-you::after,.pl.open .pl-you::after{opacity:.22}
.pl-you::after{content:"";position:absolute;left:50%;top:50%;width:26px;height:26px;margin:-13px 0 0 -13px;border-radius:50%;background:currentColor;opacity:.12;pointer-events:none}
.pl-you.up::after{color:var(--up-c)}.pl-you.down::after{color:var(--down-c)}.pl-you.even::after{color:var(--even-c)}
.in-stat{position:relative;overflow:hidden;transition:border-color .18s ease,box-shadow .18s ease}
.in-stat::before{content:"";position:absolute;left:0;top:0;height:3px;width:100%;background:var(--neon)}
.in-stat:hover{border-color:var(--neon-line);box-shadow:0 6px 18px rgba(0,0,0,.18)}   /* no transform on hover: a transform re-rasterizes the text and reads as a size change (Sam, 9/22) */
.in-stat b{font-variant-numeric:tabular-nums}
/* the landing's neighborhood bars match the app's bar rows: a full grey track with a solid green fill (Sam, 9/23) */
.l-bar i{position:relative;background:var(--neon);opacity:.85;box-shadow:none;height:10px}
.l-bar-t{display:block;height:10px;background:color-mix(in srgb,var(--text) 14%,transparent);border-radius:2px;overflow:hidden}
.l-dq > div b,.l-ex-num > b{font-variant-numeric:tabular-nums}
.l-vig{transition:border-color .2s ease,box-shadow .2s ease}
.l-vig:hover{border-color:var(--neon-line);box-shadow:0 8px 22px rgba(0,0,0,.2)}
@media(prefers-reduced-motion:reduce){.pl-you i,.in-stat,.l-vig{transition:none}}
@media print{.pl-you::after,.in-stat::before{display:none}.l-bar i{box-shadow:none}}

.in-note{margin:12px 0 0;font-size:13px;color:var(--muted);line-height:1.5}
.in-source{margin:-4px 0 18px;font-size:14px;color:var(--muted);line-height:1.55;max-width:none}
.calc-tbl{width:100%;border-collapse:collapse;margin:2px 0 14px;font-size:14px}
.calc-tbl th{text-align:right;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:0 0 8px;font-weight:500;vertical-align:bottom}
.calc-tbl th:first-child{text-align:left}.calc-tbl th em{display:block;font-style:normal;font-size:15px;letter-spacing:0;text-transform:none;color:var(--text);margin-top:2px}
.calc-tbl td{padding:7px 0;border-top:1px solid var(--border2);text-align:right;font-family:var(--f-mono);color:var(--text)}.calc-tbl td:first-child{text-align:left;font-family:var(--f-body);color:var(--muted)}
.calc-tbl tr.calc-tot td{font-weight:600;color:var(--neon)}.calc-tbl tr.calc-tot td:first-child{color:var(--text)}
.calc-money span{display:block}.calc-empty span{color:var(--muted)}

/* competitor table (Sam, 9/22): the small text was too small; the expanded row carries the happy hour above the menu */
table.mkt td.sub,table.mkt .sub{font-size:11px;letter-spacing:.4px}
table.mkt td.sub{white-space:nowrap}
table.mkt th{font-size:11px}
.det-hh{grid-column:1/-1;display:flex;gap:12px;align-items:baseline;padding:2px 0 10px;border-bottom:1px solid var(--border2);margin-bottom:6px;font-size:13.5px;color:var(--text)}
.det-hh b{font-family:var(--f-mono);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--neon);font-weight:500;white-space:nowrap}
.det-hh.none span{color:var(--muted)}
.det-hd{font-size:10.5px}

/* competitor table (Sam, 9/22): a fixed-height box that scrolls inside, so the column headings stay in view and the sections below stay reachable; the HH badge sits flush with the name */
.tblwrap.mkt-box{max-height:max(420px,calc(100vh - 230px));overflow:auto;overscroll-behavior:contain}
.tblwrap.mkt-box table.mkt th{position:sticky;top:0;z-index:2;background:var(--surface)}
table.mkt .vname+.badge{display:inline-block;margin-left:0;margin-top:5px}
@media print{.tblwrap.mkt-box{max-height:none;overflow:visible}}
/* the heading's underline survives scrolling (a sticky cell drops its collapsed border); the "Not standard" note wraps instead of cutting off (Sam, 9/22) */
.tblwrap.mkt-box table.mkt th{border-bottom:none;box-shadow:inset 0 -1px 0 var(--border)}
table.mkt td.pr .nd[title]{white-space:normal;display:inline-block;line-height:1.25;text-align:center}
.in-bar-t{background:color-mix(in srgb,var(--text) 14%,transparent)}   /* the unfilled part of the track was too dark to see (Sam, 9/22) */

/* reveal targets on the landing start hidden until fx.js schedules their animation (see the head script); never in print */
html.fx-pre #hero .l-eyebrow,html.fx-pre #hero .l-h1,html.fx-pre #hero .l-lead,html.fx-pre #hero .l-qs-h,html.fx-pre #hero .l-qs li,html.fx-pre #hero .search-wrap,html.fx-pre #hero .go-btn,html.fx-pre #hero .skip-row,html.fx-pre .l-sec .l-head,html.fx-pre .l-block .l-head,html.fx-pre .l-vig,html.fx-pre .l-ex-num,html.fx-pre .l-step,html.fx-pre .l-price-grid>*,html.fx-pre .l-dq>div,html.fx-pre .l-faq>*,html.fx-pre .l-loop,html.fx-pre .l-calc,html.fx-pre .l-ex-cmp{opacity:0}
@media print{html.fx-pre *{opacity:1!important}}
.in-bar.on .in-bar-l{color:var(--neon)}   /* the selected borough in the going-rate breakdown */

/* the app fades in when the sign-in screen lifts (9/23) */
@keyframes appArrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
#app.app-arrive{animation:appArrive .7s cubic-bezier(.22,1,.36,1) both}

.rp-title em.hl{font-style:normal;color:var(--neon)}

/* landing calculator: the neighborhood picker (9/23) */
.l-calc-sel{padding-right:6px}.l-calc-sel select{width:100%;background:none;border:0;color:var(--text);font-family:var(--f-mono);font-size:16px;padding:11px 0;outline:none}
/* the headline wraps at every width (the longer line of 9/23 was clipped by the old nowrap rules) */
.l-h1,.l-copy.l-box .l-h1{white-space:normal!important}
@media(min-width:1000px){.l-copy.l-box .l-h1{font-size:clamp(30px,2.75vw,42px)}}   /* two lines: the break sits before the green half */
.l-copy.l-box .l-h1{max-width:none!important}   /* the headline uses the full column so the break lands where written (9/23) */
/* By area table: room between the gap pill and the line under it (Sam, 9/23) */
table.ov-area td{padding-top:16px;padding-bottom:16px}
table.ov-area td small{margin-top:7px;font-size:10px}
/* Pricing Tool: the position card keeps a readable width beside the table (9/23) */
.calc-read{grid-template-columns:minmax(280px,2fr) 3fr}
.calc-pos b{font-size:26px}
@media(max-width:900px){.calc-read{grid-template-columns:1fr}}
.calc-read{grid-template-columns:minmax(240px,2fr) minmax(0,3fr)}.calc-money{min-width:0}.calc-tbl th{white-space:normal}
.calc-tbl{min-width:0}.calc-tbl th em{white-space:nowrap}
@media(max-width:900px){.calc-read{grid-template-columns:1fr}}   /* 9/25: the two-column rule above was overriding the phone layout, one word per line on phones */
/* competitor table on a narrower pane (a laptop with the map open): smaller price type and a pill that does not cut off (9/23) */
@media(max-width:1700px){table.mkt td.pr{font-size:15px}table.mkt .cmp-pill{font-size:11px;padding:3px 7px}}
@media(max-width:1500px){table.mkt td.pr{font-size:14px}table.mkt th{letter-spacing:.06em;font-size:10px}table.mkt th[data-sort=hood]{width:12%}table.mkt th[data-sort=n]{width:5.5%}}
table.mkt td.pr{overflow:visible;text-overflow:clip}table.mkt td{padding-left:10px;padding-right:10px}
@media(max-width:640px){.l-copy.l-box{box-sizing:border-box;max-width:100%;min-width:0}.l-split,.l-in{min-width:0;max-width:100%}}   /* the hero box sat 10px past a phone edge, its right border cut (audit 9/23) */

/* Price Lookup on phones (9/25): the 25th and 75th percentile labels step aside so the prices do not pile up; a price never breaks inside itself */
@media(max-width:640px){.lad-track{margin-left:18px;margin-right:30px}}
/* percentile labels (9/25): ui-small.js spreads touching labels sideways on one line; on a narrow phone the 25th and 75th step out (hid) */
.lad-tick.hid em,.lad-tick.hid u{visibility:hidden}
.stat .v{white-space:nowrap}.stat .v .u{white-space:normal}
/* the four top tabs on phones (9/25): one line each, spread across the width, instead of wrapping to two lines */
@media(max-width:640px){.modeSw,body.ov .modeSw{justify-content:space-between;gap:6px;overflow-x:auto;scrollbar-width:none}.modeSw::-webkit-scrollbar{display:none}.modeSw>button{margin-right:0;white-space:nowrap;letter-spacing:.08em;font-size:11px;flex:none}}
@media(max-width:360px){.modeSw>button{letter-spacing:.03em;font-size:10.5px}}
/* By area on phones (9/25): one block per drink, each area on its own line, instead of a squeezed six-column table */
@media(max-width:990px){table.ov-area thead{display:none}table.ov-area,table.ov-area tbody{display:block;width:100%!important;min-width:0!important}table.ov-area tr{display:grid;grid-template-columns:1fr auto;align-items:baseline;padding:12px 2px;border-bottom:1px solid var(--border)}table.ov-area td{border:0;padding:2px 0}table.ov-area td.drink{font-weight:600;font-size:15px}table.ov-area td.you{font-size:15px}table.ov-area td[data-l]{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:10px;white-space:normal;font-size:14px;padding:6px 0}table.ov-area td[data-l]::before{content:attr(data-l);font-family:var(--f-mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:left}table.ov-area td[data-l] small{grid-column:1/-1;text-align:left;margin-top:3px;font-size:10px}}
/* happy hour grids (9/25): day by hour, darker is more */
.hhg{margin:22px 0 8px}.hhg-t{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--text)}
.hhg-s{font-size:13.5px;color:var(--muted);line-height:1.5;margin:6px 0 12px;max-width:none}
.hhg-grid{display:grid;gap:3px;align-items:center}
.hhg-hr{font-family:var(--f-mono);font-size:10px;color:var(--muted);text-align:left;white-space:nowrap;overflow:visible}
.hhg-d{font-family:var(--f-mono);font-size:10.5px;color:var(--muted);letter-spacing:.06em}
.hhg-c{aspect-ratio:1.5;border-radius:4px;background:rgba(163,230,53,var(--a));box-shadow:inset 0 0 0 1px rgba(163,230,53,.10)}

.hhg-f{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin-top:10px}
.hhg-lg{display:inline-flex;align-items:center;gap:8px;font-family:var(--f-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase}.hhg-lg i{display:inline-block;width:70px;height:8px;border-radius:4px;background:linear-gradient(90deg,rgba(163,230,53,.04),rgba(163,230,53,.12) 40%,rgba(163,230,53,1))}
:root[data-theme="light"] .hhg-c{background:rgba(77,124,15,var(--a));box-shadow:inset 0 0 0 1px rgba(77,124,15,.14)}:root[data-theme="light"] .hhg-lg i{background:linear-gradient(90deg,rgba(77,124,15,.06),rgba(77,124,15,1))}
.hhg-pair{display:grid;grid-template-columns:1fr 1fr;gap:28px}
@media(min-width:901px){.hhg-pair{grid-template-rows:auto auto auto auto;row-gap:0}.hhg-pair>.hhg{display:grid;grid-row:span 4;grid-template-rows:subgrid;margin-top:22px}.hhg-pair>.hhg>*{align-self:start}}   /* side by side, the title, caption, grid and footer rows line up across both (9/25) */
@media(max-width:900px){.hhg-pair{grid-template-columns:1fr;gap:6px}}
@media(max-width:520px){.hhg-grid{gap:2px}.hhg-c{aspect-ratio:1;border-radius:3px}.hhg-hr{font-size:9px}.hhg-d{font-size:9.5px}}

/* Price Lookup from the Overview (9/25) */
.ov-look{display:flex;gap:10px;margin:4px 0 8px}.ov-look input{flex:1;min-width:0;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:12px 14px;font:inherit;font-size:15px}.ov-look .go-btn{width:auto;padding:0 20px;white-space:nowrap}
.ck-calc{margin:12px 0 4px}.ck-calc .linklike{color:var(--neon);text-decoration:underline;text-underline-offset:3px;font-size:14px}
@media(max-width:520px){.ov-look{flex-direction:column}.ov-look .go-btn{padding:12px 20px}}

/* phone header (9/23): a signed-in account without a plan carries Unlock and Sign out beside Help and the theme switch, which ran past the edge; Sign out stays one tap away on the account page */
@media (max-width:520px){.acct #acctOut{display:none}.acct{gap:10px;margin-left:4px}}
@media (max-width:360px){.topbar #helpBtn{display:none !important}}   /* the narrowest phones: Help is also on the account page */

/* readability pass (hit list 20, 9/25): brighter secondary text and nothing smaller than 10px in the app. Colors are raised in both
   themes; the smallest labels (table sub-lines, chart axes, legend keys, map notes aside) step up to 10 to 11px. Landing-only rules
   (.l-row, .l-n, .l-vig-row, table.mkt) are left as they are. */
:root{--muted:#a3a398;--muted2:#8f8f85}
:root[data-theme="light"]{--muted:#4a4940;--muted2:#57564a}
@media(prefers-color-scheme:light){:root:not([data-theme="dark"]){--muted:#4a4940;--muted2:#57564a}}
.sub,td.sub{font-size:11px}
.hlbl span,.hist-legend span{font-size:10px}
.lad-tick u{font-size:10px}.lad-tick em{font-size:12px}
.stat .mkts span{font-size:10px}.stat .s{font-size:13.5px;line-height:1.5}
.in-mark u,.gap-n small,.gap-v small{font-size:10px}
table.up-tbl th,table.up-tbl td small,.up-flag,.mi-cmp small{font-size:10px}
table.ov-area td small{font-size:10.5px}
.pop-sub,.mybar .loc{font-size:10px}
.hhg-hr{font-size:10px}.hhg-d{font-size:11px}
.verdict-sub{font-size:14.5px;font-weight:400;line-height:1.6}
.pl-sub{font-size:13px}.pl-n{font-size:10.5px}
.fine{font-size:12.5px;line-height:1.55}
.rp-legend,.rp-universe{font-size:13px}
/* long intros on phones fold to three lines with a Read more (ui-small.js) */
.verdict-sub.fold{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:6px}
.fold-more{background:none;border:0;padding:0;margin:0 0 22px;color:var(--neon);font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;text-decoration:underline;text-underline-offset:3px}

/* report a bug (9/25) */
.app-foot{text-align:center;padding:26px 18px 34px;border-top:1px solid var(--border);margin-top:30px}.app-foot .linklike{color:var(--muted);font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;text-decoration:underline;text-underline-offset:3px;background:none;border:0;cursor:pointer;padding:6px}
.acct-bug{color:var(--neon);text-decoration:underline;text-underline-offset:3px;background:none;border:0;cursor:pointer;padding:0;font:inherit}
.bug-dlg{position:fixed;inset:0;z-index:9000;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;padding:16px}
.bug-in{position:relative;width:100%;max-width:520px;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:26px 24px 22px}
.bug-in h2{font-family:var(--f-disp);font-size:22px;font-weight:600;margin:0 0 8px;color:var(--text)}.bug-in p{color:var(--muted);font-size:14.5px;line-height:1.55;margin:0 0 14px}
.bug-in textarea,.bug-in input{width:100%;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:12px 14px;font:inherit;font-size:15px;margin-bottom:10px;resize:vertical}
.bug-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.bug-row .go-btn{width:auto;padding:11px 26px}.bug-msg{font-size:13.5px;color:var(--muted)}
.bug-x{position:absolute;top:10px;right:12px;background:none;border:0;color:var(--muted);font-size:26px;line-height:1;cursor:pointer;padding:4px 8px}

/* your establishment on the map (9/25): an HTML dot that keeps its size while the map zooms */
.me-pin{background:none;border:0}.me-pin i{display:block;width:16px;height:16px;border-radius:50%;background:#FFD700;box-shadow:0 0 0 1.5px #FFD700}   /* the same size as the old circle marker, about 18px across (9/25) */

/* landing card 6 (9/25): a slice of the guide-visits grid */
.l-heat-g{display:grid;grid-template-columns:2.2em repeat(8,1fr);gap:3px;margin-top:10px;align-items:center}.l-heat-g span{font-family:var(--f-mono);font-size:10px;color:var(--muted)}.l-heat-g em{font-style:normal;font-family:var(--f-mono);font-size:9.5px;color:var(--muted)}.l-heat-g i{display:block;aspect-ratio:1.4;border-radius:3px;background:rgba(163,230,53,var(--a))}:root[data-theme="light"] .l-heat-g i{background:rgba(77,124,15,var(--a))}

/* the feature cards (9/25): three equal columns that can shrink below their content, so no card pushes the grid off the page; headings stay one line on desktop (keep them short) */
.l-show{grid-template-columns:repeat(3,minmax(0,1fr))}.l-card2{min-width:0}
@media(max-width:900px){.l-show{grid-template-columns:minmax(0,1fr)}}
@media(min-width:1000px){.l-card2 h3{white-space:nowrap;text-wrap:nowrap;min-height:0;display:block;line-height:1.28;font-size:clamp(17px,1.5vw,22px)}}   /* one line each on desktop (Sam, 9/25): the headings are written short enough to fit their column */
@media(max-width:380px){.l-price-grid{min-width:0}.l-price-main,.l-price-alt{padding:18px;min-width:0;overflow-wrap:anywhere}.l-price-main b{font-size:38px}.l-price-main .go-btn,.l-price-main .l-cta{max-width:100%;white-space:normal}}   /* the pricing block at 320 wide (9/25) */
.l-dq{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:900px){.l-dq{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:380px){.l-dq div{padding-right:10px}.l-dq div+div{padding-left:12px}.l-dq b{font-size:21px}}   /* the data tiles can shrink to the screen (9/25) */
.in-bar-t i.now{transition:none}   /* bars outside the section a chip changed keep their width (9/25) */
/* the NYC marker in a borough view (9/25): "NYC $16.00" on one line above the marker line; near either end it aligns inward */
.in-mark u{white-space:nowrap;top:-18px;font-size:10.5px;letter-spacing:.06em}.in-mark.r u{left:auto;right:-1px;transform:none}.in-mark.l u{left:-1px;transform:none}
.pl-track .pl-lbl{white-space:nowrap}   /* a band label never wraps (9/25) */
@media(max-width:520px){.in-lbl-med{font-size:10.5px}}
/* NYC Insights section notes (Sam, 9/25): under the heading, on the left, rather than across on the right */
#pane-insights .rp-sec-h{flex-direction:column;align-items:flex-start;gap:6px;margin-bottom:18px}#pane-insights .rp-sec-h .rp-legend{font-size:13px;line-height:1.5;justify-content:flex-start;text-align:left}#pane-insights .rp-sec-h .rp-legend .lg:first-child i,#pane-insights .rp-sec-h .rp-legend>i:first-child{margin-left:0}
.in-stat:has(b.rng){container-type:inline-size}.in-stat b.rng{white-space:nowrap;font-size:min(26px,10.6cqi)}.in-stat b.rng small{font-size:.55em;color:var(--muted);margin:0 .15em}   /* a price range stays on one line and shrinks to fit its tile (9/25) */
/* mobile pass (9/25): the three-column categories table fits a phone without scrolling; the size box is wide enough for its hint */
@media(max-width:640px){table.bench{min-width:0}#miSize{flex:1;width:auto!important;min-width:150px}}
/* mobile pass (9/25): a separator dot never dangles at the end of a line; every fact carries its own dot and the dot that starts a line is clipped */
.in-facts{margin-left:-28px;clip-path:inset(-4px 0 -4px 28px)}.in-facts>span{white-space:nowrap;display:inline-flex;align-items:center}
/* mobile pass (9/25): on a phone the price range keeps the tile size and breaks after "to" instead of running past the edge */
@media(max-width:640px){.in-stat b.rng{white-space:normal;font-size:min(22px,19.5cqi)}}
/* mobile pass (9/25): stacked grids leave room before the source note under them */
.hhg-pair+.in-source{margin-top:20px}   /* every width (spacing pass, 9/25) */
/* mobile pass (9/25): the landing button label fits inside the button on narrow phones */
@media(max-width:420px){.l-hero #goBtn{padding:0 14px;letter-spacing:.08em}}
@media(max-width:350px){.l-hero #goBtn{font-size:12.5px;letter-spacing:.04em;padding:0 10px}}
/* mobile pass (9/25): a plan price never splits across lines ($33 was breaking into "$3" and "3" under 380 wide) */
.l-price-alt b,.l-price-main b{flex:none;white-space:nowrap;overflow-wrap:normal}
/* mobile pass (9/25): the sample price rows on the landing fit their card on narrow phones (at 320 they were cut on both sides), and in the three-column layout from 901 to 1199 wide (cut by 3px) */
@media(max-width:360px),(min-width:901px) and (max-width:1199px){.l-card2 .l-vig.l-tbl.l-c4{grid-template-columns:minmax(0,1fr) auto auto auto;column-gap:6px;padding:12px 14px}.l-card2 .l-vig.l-tbl.l-c4 .l-vr>span{white-space:normal;line-height:1.2;font-size:12px}.l-card2 .l-vig.l-tbl.l-c4 .l-vr>b{font-size:12px}.l-card2 .l-vig.l-tbl.l-c4 .l-vr>em,.l-card2 .l-vig.l-tbl.l-c4 .l-vr>u{font-size:11px}}
/* mobile pass (9/25): the happy hour box is tall enough on a phone to show its whole example */
@media(max-width:480px){.hh-text{min-height:88px}}
/* spacing pass (9/25): stacked on a phone, a borough's going-rate track leaves room for the NYC label above it (it ran into "middle half") */
@media(max-width:760px){.in-rate .pl-track:has(.in-mark){margin-top:16px}}
/* spacing pass (9/25): on phones the top tabs line up with the logo, the establishment name and the content (18px), not 12px */
@media(max-width:640px){.modeSw,body.ov .modeSw{padding:0 18px}}
@media(max-width:360px){.modeSw,body.ov .modeSw{gap:4px}.modeSw>button{font-size:10px;letter-spacing:.02em}}
/* spacing pass (9/25): at 320 the happy hour price table pushed NYC Insights 44px past the screen; its column now holds to the screen and the table fits */
@media(max-width:900px){.in-two{grid-template-columns:minmax(0,1fr)}}
@media(max-width:380px){.in-tbl th{white-space:normal;letter-spacing:.06em;line-height:1.3}.in-tbl th,.in-tbl td{padding-left:6px;padding-right:6px}.in-tbl th:first-child,.in-tbl td:first-child{padding-left:0}}
/* spacing pass (9/25): the sign-in button label fits at 320; the bug dialog title keeps clear of the close button */
@media(max-width:380px){.pw-card .go-btn,#pwGo{letter-spacing:.06em;padding-left:10px;padding-right:10px}}
#bugH{padding-right:30px}
/* spacing pass (9/25): below 1000 wide the nine-column competitor table keeps the width its columns need and scrolls sideways in its box, instead of crushing headers into each other */
@media(max-width:1000px){table.mkt{min-width:900px}}
/* spacing pass (9/25): the plan cards fit a 320 phone (they held 317px and pushed the page 15px past the screen) */
@media(max-width:860px){.plan-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:360px){.plan-card{padding:22px 16px 18px}.plan-card .plan-go{letter-spacing:.06em;padding-left:10px;padding-right:10px}.plan-pm{flex-wrap:wrap;row-gap:2px}}
/* spacing pass (9/25): below 1000 wide the happy hours table keeps room for its Deal column and scrolls sideways in its box, instead of squeezing each deal to a few letters a line */
#pane-hh .tblwrap>table:not(.hh-px){min-width:960px}   /* every width (Sam, 9/25): at laptop width beside the map the table scrolls instead of squeezing the Deal column */
/* spacing pass (9/25): the four plan cards share the page width from 1360 up (they held 317px each, ran 83px past the content and scrolled the page at 1360) */
@media (min-width:1360px){.wiz-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.wiz-grid .plan-card{padding:24px 18px 20px}.wiz-grid .plan-go{letter-spacing:.07em;padding-left:10px;padding-right:10px}.wiz-grid .plan-pm{flex-wrap:wrap;row-gap:2px}}
/* spacing pass (9/25): By Area stacks below 990 wide, where the table hid up to 370px of columns; on tablets the four areas sit two by two */
@media(min-width:641px) and (max-width:990px){table.ov-area tr{grid-template-columns:1fr 1fr;column-gap:36px}table.ov-area td.you{justify-self:end}table.ov-area td[data-l]{grid-column:auto}}
/* spacing pass (9/25): on phones the price histogram always fits the screen (a 28-bin drink like pinot noir ran 75px past it at 320); bars and labels share the width, and with many bins every fourth label shows so they never collide */
@media(max-width:640px){.hist,.hlbl{gap:2px}.hbar{min-width:0}.hlbl span{min-width:0;white-space:nowrap}.hlbl:has(span:nth-child(17)) span:not(:nth-child(4n+1)){visibility:hidden}}
/* phone tables as cards (Sam, 9/25): Price Lookup results, Competitors, Happy Hour and My Prices. Each row is a small card: name and price
   (or the comparison) on top, the details in one muted line, labeled prices side by side, the deal or comparison full width, actions last.
   Cells carry data-c roles and data-l labels in index.html; desktop is unchanged. */
@media(max-width:640px){
  table.cardt{min-width:0!important;width:100%!important;table-layout:auto!important;display:block}
  table.cardt>thead{display:none}
  table.cardt>tbody{display:block}
  table.cardt>tbody>tr{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:10px;row-gap:5px;padding:13px 14px;border-bottom:1px solid var(--border)}
  table.cardt>tbody>tr>td{display:block;border:0!important;padding:0!important;text-align:left;white-space:normal;overflow:visible;max-width:none;width:auto!important;height:auto}
  table.cardt>tbody>tr::after{content:'';order:3;flex:0 0 100%;height:0}
  table.cardt>tbody>tr::before{content:'';order:8;flex:0 0 100%;height:0}
  table.cardt td[data-c=star]{order:0}
  table.cardt td[data-c=name]{order:1;flex:1 1 0;min-width:0;font-size:15px}
  table.cardt td[data-c=price],table.cardt td[data-c=vs]{order:2;margin-left:auto;text-align:right;white-space:nowrap}
  table.cardt td[data-c=price]{font-family:var(--f-mono);font-weight:600;font-size:15px}
  table.cardt td[data-c=line]{order:4;flex:0 0 100%;font-size:13.5px}
  table.cardt td[data-c=m1]{order:5}table.cardt td[data-c=m2]{order:6}table.cardt td[data-c=m3]{order:7}
  table.cardt td[data-c^=m]{font-size:11px;letter-spacing:.06em}
  table.cardt td[data-c=m1]:empty,table.cardt td[data-c=m2]:empty,table.cardt td[data-c=m3]:empty,table.cardt td[data-c=none]{display:none}
  table.cardt td[data-c=m2]:not(:empty)::before,table.cardt td[data-c=m3]:not(:empty)::before{content:'·';margin-right:10px;color:var(--muted2)}
  table.cardt td[data-suf]::after{content:attr(data-suf)}
  table.cardt td[data-c=px]{order:9;flex:1 1 0;min-width:0}
  table.cardt td[data-c=px]::before{content:attr(data-l);display:block;font-family:var(--f-mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
  table.cardt td[data-c=line2]{order:10;flex:0 0 100%}
  table.cardt td[data-c=acts]{order:11;flex:0 0 100%;text-align:right;margin-top:2px}
  table.cardt td[data-c=acts] .x-btn{margin-left:6px}
  /* Competitors: the sortable headings stay, as a row of sort buttons above the cards */
  table.mkt.cardt>thead{display:block}
  table.mkt.cardt>thead>tr{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--border)}
  table.mkt.cardt>thead>tr::before{content:'Sort';font-family:var(--f-mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-right:2px}
  table.mkt.cardt>thead th{position:static!important;width:auto!important;border:1px solid var(--border)!important;border-radius:999px;padding:5px 10px!important;font-size:10px;letter-spacing:.06em;box-shadow:none!important;text-align:left}
  table.mkt.cardt>thead th.star-th{display:none}
  table.mkt.cardt>thead th[aria-sort=ascending],table.mkt.cardt>thead th[aria-sort=descending]{border-color:var(--neon)!important;color:var(--text)}
  table.mkt.cardt .vname{-webkit-line-clamp:3}
  /* My Prices: the price box and the comparison keep their own styles; in edit mode the category and size inputs sit on the detail line */
  table.mi-t td[data-c=m1] select,table.mi-t td[data-c=m2] input{font-size:13px}
  table.mi-t tr.mi-removed{opacity:.7}
  table.mi-t td[data-c=line2]{flex:1 1 auto;order:10}table.mi-t td[data-c=acts]{flex:0 0 auto;margin-left:auto;order:11;align-self:center;margin-top:0}
}
/* Deep Dive sub-tabs (Sam, 9/25): on phones the four tabs fit on one line in smaller text */
@media(max-width:640px){.tabs{padding:0 12px}.tab{padding:13px 8px;font-size:10px;letter-spacing:.06em}}
@media(max-width:360px){.tab{padding:13px 5px;font-size:9.5px;letter-spacing:.03em}}
/* account pass (9/26): the "Yes, lock in <establishment>" button wraps a long name instead of running off a phone screen */
#wizLock{white-space:normal;max-width:100%;line-height:1.35;text-align:center;height:auto;min-height:48px;padding-top:12px;padding-bottom:12px}
/* account pass (9/26): "Sign out" lines up with the rest of the account page; the row's gap already spaces it from the buttons */
.acct-actions .acct-out{margin-left:0}
/* landing pass (9/27): on phones the footer links line up with the copyright line when they wrap */
@media(max-width:640px){.l-copyright a{margin-left:0}}
/* landing FAQ as one line that opens (Sam, 9/28) */
.l-faq-d>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);font-family:var(--f-mono);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--neon)}
.l-faq-d>summary::-webkit-details-marker{display:none}
.l-faq-d>summary::after{content:'+';font-size:20px;line-height:1;color:var(--muted)}
.l-faq-d[open]>summary::after{content:'\2212'}
.l-faq-d>summary:hover{color:var(--text)}
.l-faq-d[open]>summary{border-bottom-color:transparent;margin-bottom:12px}
.l-faq-d>summary:focus-visible{outline:2px solid var(--neon);outline-offset:4px}
/* landing (Sam, 9/28): the sample search box shows no blinking cursor; card copy never ends on a one-word line */
.l-vig-search span::after{content:none;animation:none}
.l-card2 p,.l-card2 .l-desc,.l-show p,#hero p,#hero span,#hero li,#hero dd{text-wrap-style:pretty}   /* style only: "text-wrap" would also reset nowrap on labels (9/28) */
@media(max-width:480px){#hero .l-lead{text-wrap-style:balance}}
.l-faq-d>summary{border-top:none;padding-top:4px}   /* one line above FAQ: the section divider already draws it (Sam, 9/28) */
/* search results (Sam, 9/28): the neighborhood and "No menu on file yet" stack on the right as two tidy lines, no dot, never wrapping mid-phrase */
.ac-item .ah{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex:none;white-space:nowrap;text-align:right}
.ac-item .an{flex:1;min-width:0}
.ac-nm{font-style:normal;font-family:var(--f-mono);font-size:8.5px;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted2);opacity:.8;white-space:nowrap}
#wizard [data-pick] .ac-nm{display:block;margin-top:2px}
.l-vig-ac .nw{white-space:nowrap}   /* "41 places nearby" never splits (Sam, 9/28) */
.ac-item .an{text-wrap-style:pretty}
.ac-item .an .ac-nm{display:block;margin-top:4px;text-align:left}   /* the label sits under the name so long names keep their width (9/28) */
/* "Price a new drink right" sample (Sam, 9/28): the result reads as one line at every width; the text scales down to fit a narrow card */
.l-vig:has(.l-vig-ac){container-type:inline-size}
.l-vig-ac{white-space:nowrap;overflow:hidden;font-size:min(13px,calc((100cqi - 34px) / 24))}
/* FAQ (Sam, 9/28): the line under "FAQ" stays when it opens; no focus box after a click (keyboard focus still shows) */
.l-faq-d[open]>summary{border-bottom-color:var(--border);margin-bottom:24px}
.l-faq-d>summary:focus,.l-faq-d>summary:focus:not(:focus-visible){outline:none;box-shadow:none}
.l-faq-d>summary:focus-visible{outline:2px solid var(--neon);outline-offset:4px}
.l-block:has(>.l-faq-d){border-top:none;padding-top:0}   /* no line above FAQ; its own line sits below it (Sam, 9/28) */
.l-faq-d[open]>.l-faq{border-bottom:1px solid var(--border);padding-bottom:40px}   /* open: a line closes the answers, above the footer; closed: only the line under "FAQ" (Sam, 9/28) */
.l-report-p{font-size:17.5px;line-height:1.5;color:var(--muted);margin:28px 0 0}@media(max-width:900px){.l-report-p{font-size:16px;margin-top:22px}}

/* 10/17: the search suggestions sit above the "See how my prices compare" button; on phones the button stacks under the field and was drawing over the list */
.search-wrap{z-index:2}

/* 10/18: the lock-in step's location count, Remove one / count / Add one */
.wiz-qty{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:22px 0 6px}.wiz-qbtn{min-height:44px;padding:0 16px;border-radius:8px;border:1px solid var(--border2,var(--border));background:var(--surface);color:var(--text);font-family:var(--f-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.wiz-qbtn:hover:not(:disabled){border-color:var(--neon);color:var(--neon)}.wiz-qbtn:disabled{opacity:.4;cursor:not-allowed}.wiz-qn{font-family:var(--f-body);font-size:16px;min-width:110px;text-align:center}.wiz-qn b{font-family:var(--f-disp);font-size:20px}.wiz-qnote{font-size:13px;color:var(--muted);margin:0 0 18px}
@media(max-width:600px){.wiz-qty{gap:8px;flex-wrap:nowrap}.wiz-qbtn{padding:0 10px;font-size:11px;letter-spacing:.05em;white-space:nowrap}.wiz-qn{min-width:0;font-size:15px;white-space:nowrap}}

/* 10/18: free-preview bar under the mode switch, and the header Unlock as a small solid button */
.pv-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:12px 0 4px;padding:12px 16px;border:1px solid var(--neon-line,var(--border));border-radius:10px;background:var(--neon-dim,transparent);font-size:14px;line-height:1.45;color:var(--text)}.pv-go{background:var(--neon-fill,var(--neon));color:var(--on-neon);border:0;border-radius:8px;min-height:40px;padding:0 18px;font-family:var(--f-mono);font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;white-space:nowrap}
#acctUp{background:var(--neon-fill,var(--neon));color:var(--on-neon)!important;text-decoration:none!important;border-radius:6px;padding:6px 12px;font-weight:600}

/* 10/18: the plan step names the establishment */
.plan-for{font-family:var(--f-disp);font-size:20px;margin:-4px 0 10px;color:var(--text)}

/* 10/18: on phones the search comes right under the headline, so it is on the first screen; the lead and the four questions follow */
@media(max-width:600px){.l-copy{display:flex;flex-direction:column}.l-copy>*{order:10}.l-copy>.l-eyebrow{order:1}.l-copy>.l-h1{order:2}.l-copy>.l-search{order:3;margin-top:18px}.l-copy>.skip-row{order:4}.l-copy>.add-form{order:5}.l-copy>.l-lead{order:6;margin-top:22px}.l-copy>.l-qs-h{order:7}.l-copy>.l-qs{order:8}}

/* 10/18: Price Lookup answer in one sentence */
.ck-answer{border:1px solid var(--border);border-radius:12px;padding:18px 20px;margin:14px 0 18px;background:var(--surface)}.ck-answer .k{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}.ck-line{font-size:18px;line-height:1.5;margin:0}.ck-line b{font-family:var(--f-disp);font-size:26px;font-weight:600}.ck-you{font-size:16px;margin:10px 0 0;padding-left:10px;border-left:3px solid var(--gold)}.ck-you b{color:var(--gold)}.ck-thin{font-size:14px;margin:10px 0 0;color:var(--amber,var(--gold))}.ck-meta{font-size:13px;color:var(--muted);margin:10px 0 0}

/* 10/18: a visible sign that each price row opens */
.pl-more{margin-left:8px;font-family:var(--f-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--neon);white-space:nowrap}.pl-more::after{content:"";display:inline-block;width:6px;height:6px;margin-left:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .2s}.pl.open .pl-more::after{transform:translateY(1px) rotate(-135deg)}

/* 10/18: bigger tap targets on phones (lookup chips, the median "?", the edit link) */
@media(max-width:600px){#pane-check .chip,#ckOut .chip,#ckOut [data-cat]{min-height:40px;padding-top:0;padding-bottom:0;display:inline-flex;align-items:center}.acct-ic{min-width:40px;min-height:40px}}

/* 10/18: happy hour saved confirmation */
.hh-saved{margin:0 0 12px;padding:10px 14px;border-radius:8px;border:1px solid var(--neon-line,var(--neon));color:var(--text);font-size:14px}

/* 10/18: My Prices find box */
.mi-find{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted);margin:10px 0 12px;max-width:420px}.mi-find input{min-height:44px;padding:0 14px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-size:15px}

/* 10/18: add a competitor by name */
.pos-add{position:relative;max-width:420px;margin:12px 0 4px}.pos-ac{position:absolute;left:0;right:0;top:74px;z-index:50;display:block}.pos-ac[hidden]{display:none}

/* 10/18: account page establishments, one row each with Open and Remove */
.acct-ests{list-style:none;margin:0;padding:0;display:grid;gap:8px}.acct-ests li{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:10px 0;border-bottom:1px solid var(--border)}.acct-est-n{font-size:15px}.acct-cur{font-style:normal;font-family:var(--f-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--neon);margin-left:6px}.acct-est-b{display:flex;gap:8px}.acct-b{min-height:40px;padding:0 14px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.acct-b:hover{border-color:var(--neon);color:var(--neon)}.acct-b-rm:hover{border-color:var(--amber,var(--gold));color:var(--amber,var(--gold))}
.pv-bar{max-width:1040px;margin:16px auto 4px;box-sizing:border-box}@media(max-width:1100px){.pv-bar{margin:14px 24px 4px}}
@media(max-width:600px){.wiz-qty{flex-wrap:wrap}.wiz-qn{order:-1;flex-basis:100%;text-align:left;font-size:16px}.wiz-qbtn{flex:1}}
@media(max-width:600px){#ckChips{display:flex;flex-wrap:wrap;overflow:visible;gap:8px;padding-bottom:0}#ckChips .seg-lbl{flex:0 0 100%;margin:0 0 2px}#ckChips .chip{flex:0 0 auto}}   /* phone: every quick pick shows, wrapping onto new rows instead of scrolling sideways (Sam, 10/18) */

/* free-preview bar inside the section that is showing (Sam, 10/18): the section's background runs behind it; spacing comes from the section's own padding */
.pane>.pv-bar{margin:0 auto 22px;max-width:1040px}@media(max-width:1100px){.pane>.pv-bar{margin:0 0 20px;max-width:none}}

/* no map backdrop behind Price Lookup and Deep Dive (Sam, 10/18): the map shows only inside the map panel; the page around it keeps the normal background, and the backdrop credit goes with it */
body.has-map::before{background-image:radial-gradient(var(--rp-dot) .9px,transparent 1.4px);background-size:26px 26px;background-position:13px 13px;background-repeat:repeat}
.map-attr,body.has-map .map-attr{display:none!important}

/* Happy Hour preview (Sam, 10/18): every block below the headline is blurred whole, the grids too */
.gated.pw-full>.pw-gated{filter:blur(7px);opacity:.7}
/* the side map runs down to the footer line on Price Lookup and Deep Dive (Sam, 10/18) */
body.has-map #appFoot{margin-top:0}

/* the extra-charge note on the lock-in step reads at body size (Sam, 10/18) */
.wiz-qty .wiz-qnote,.wiz-qty+.wiz-qnote{font-size:15px;line-height:1.5;color:var(--text)}

/* mobile landing, simpler top (Sam, 10/18): one-line kicker, no question list (What you get covers it), smaller lead, more air; Sign in clear of the theme button */
@media(max-width:640px){
  .l-eb-thru{display:none}
  .l-copy.l-box .l-eyebrow{font-size:11px;letter-spacing:.12em;line-height:1.5;margin-bottom:14px}
  .l-copy.l-box{padding:26px 20px 22px}
  .l-copy .skip-row{margin:4px 0 26px}
  .l-copy .l-lead{font-size:17px;line-height:1.6;margin:0;max-width:none!important;text-wrap:wrap!important}
  .l-copy.l-box .l-h1{text-wrap:wrap!important}
  .l-copy .l-qs-h{margin:30px 0 14px;font-size:16px}
  .l-copy .l-qs{margin:0;display:grid;gap:12px}
  .l-copy .l-qs li{margin:0;line-height:1.45}
  .topbar .theme-btn{margin-left:16px}
}

/* light mode (Sam, 10/18): table headers are the standard tan with dark text, not white; the Insights header box is white so it stands out from the off-white page */
:root[data-theme="light"] th{background:var(--bg);color:var(--text)}
:root[data-theme="light"] #pane-insights .rp-head{background:var(--surface)}   /* same off-white as the top bar (Sam, 10/18) */

/* unlock panel in the flow of the page (Sam, 10/18): after the visible part, before the blurred part, on every tab; nothing to measure, nothing to move */
.pw-overlay.pw-inflow,#pane-insights .pw-overlay.pw-inflow{position:relative;inset:auto;top:auto!important;z-index:auto;display:flex;justify-content:center;padding:6px 0 30px;pointer-events:auto}
.pw-inflow .pw-box{width:100%;max-width:560px;margin:0 auto;box-shadow:none}
@media(max-width:640px){.pw-overlay.pw-inflow,#pane-insights .pw-overlay.pw-inflow{padding:2px 0 24px}.pw-inflow .pw-box{max-width:none;padding:24px 20px 22px}.pw-inflow .pw-box h3{font-size:20px}}

/* preview (Sam, 10/18): no Read more on phones; the short introduction shows in full */
.gated .fold-more{display:none!important}
.gated .verdict-sub.fold{display:block;-webkit-line-clamp:unset;overflow:visible}

/* phone: the Unlock button in the free-preview bar sits centered under the sentence (Sam, 10/18) */
@media(max-width:640px){.pv-bar{justify-content:center}.pv-bar>span{flex:1 1 100%}}

/* "Which establishment is yours?" before the tour (Sam, 10/18) */
#tourPick{position:fixed;inset:0;z-index:9992;background:rgba(0,0,0,.55);display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 16px;overflow:auto}
#tourPick .tp-card{width:min(480px,100%);background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:14px;padding:24px 22px 18px;box-shadow:0 18px 60px rgba(0,0,0,.4)}
#tourPick .tp-k{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--neon)}
#tourPick h3{font-family:var(--f-disp);font-size:24px;font-weight:600;line-height:1.2;margin:8px 0 8px}
#tourPick p{font-size:15px;line-height:1.5;color:var(--muted);margin:0 0 16px}
#tourPick input{width:100%;box-sizing:border-box;min-height:48px;padding:0 14px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);font-size:16px}
#tourPick .tp-ac{display:flex;flex-direction:column;margin-top:8px}
#tourPick .tp-ac button{display:flex;justify-content:space-between;gap:12px;align-items:baseline;text-align:left;min-height:46px;padding:10px 12px;background:none;border:0;border-bottom:1px solid var(--border);color:var(--text);cursor:pointer;font-size:15px}
#tourPick .tp-ac button:hover,#tourPick .tp-ac button:focus{background:var(--surface2)}
#tourPick .tp-ac span{font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
#tourPick .tp-none{font-size:14px;color:var(--muted);padding:10px 2px}
#tourPick .tp-skip{margin-top:16px;background:none;border:0;padding:6px 0;color:var(--muted);text-decoration:underline;text-underline-offset:3px;cursor:pointer;font-size:14px}
