/* NeighborSeek Lab — "Horizon" (lab-horizon-oct2026). Tokens and rules from redesign/lab-horizon.css
   (design canvas "NeighborSeek: Visual Upgrade"). Light follows the move: one data-stage attribute on <html>
   (dawn = start, daylight = results, golden = Move Brief, dusk = Ask). The footer and the Ask panel carry
   data-stage="dusk" themselves. Rules: places are never coloured by worth; no gradients, glows, glass or emoji;
   one gold-filled button per screen; targets 44px+; text 4.5:1, graphics 3:1. */
[data-stage="dawn"]     { --bg:#F8ECE4; --panel:#FFF8F3; --ink:#1C1F26; --sub:#5C5452; --line:#E7D5CB; --gold:#A86E17; --gold-text:#7E5210; --sun:#EC9A7C; --faint:#CDBFB6; }
[data-stage="daylight"] { --bg:#FAF8F4; --panel:#FFFFFF; --ink:#1C1F26; --sub:#565C68; --line:#E4E0D8; --gold:#A86E17; --gold-text:#7E5210; --sun:#F2BC45; --faint:#C9CDD3; }
[data-stage="golden"]   { --bg:#F4E4C8; --panel:#FFFCF6; --ink:#1C1F26; --sub:#5A4F3E; --line:#E1CBA6; --gold:#9A620F; --gold-text:#6E4609; --sun:#D9862A; --faint:#CDB892; }
[data-stage="dusk"]     { --bg:#131722; --panel:#1B2130; --ink:#F3F0E9; --sub:#AEB5C2; --line:#2D3546; --gold:#E0A53F; --gold-text:#EBC27A; --sun:#E8B04F; --faint:#3A4357; }
:root {
  --cta:#D9A045; --on-cta:#16181D;
  --display:"Fraunces", Georgia, serif;
  --body:"Public Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --r-btn:12px; --r-card:18px; --r-panel:22px;
  --t-light:900ms; --t-move:700ms;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 var(--body);font-variant-numeric:tabular-nums}
body,.hz-panel,.hz-card,.mf-panel,.lab-head,.lab-bar,.hz-sun{transition:background-color var(--t-light) ease,color var(--t-light) ease,border-color var(--t-light) ease}
a{color:var(--ink)}
h1,h2,h3,.hz-number{font-family:var(--display);font-weight:600;letter-spacing:-0.02em;margin:0 0 .4em}
h1{font-size:clamp(32px,6vw,56px);line-height:1.04}
h2{font-size:clamp(22px,3vw,30px);line-height:1.1}
h3{font-size:19px;line-height:1.2}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* lab-labfix-oct2026: off-screen until keyboard focus */
.skip{position:absolute!important;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip:focus-visible{left:auto;position:static!important;width:auto;height:auto;clip:auto;display:inline-block;padding:10px 14px;background:var(--panel);border:1.5px solid var(--ink);border-radius:var(--r-btn)}

/* header */
.lab-bar{background:var(--panel);color:var(--sub);border-bottom:1px solid var(--line);font-size:13px;padding:6px 16px;text-align:center}
.lab-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 20px;max-width:1280px;margin:0 auto}
.lab-logo{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:700;min-height:44px}
.lab-logo img{width:28px;height:28px}
.lab-head nav{display:flex;align-items:center;gap:10px;font-size:14px}
.lab-head nav a{color:var(--sub);min-height:44px;display:inline-flex;align-items:center}
/* lab-head-390-oct2026: no page-level sideways scroll on phones; Ask Chris 44px */
html body .lab-head .nsh-ask{min-height:44px!important}
/* ns-ask.css colours the header link with --ns-text (#F7F5F1 fallback = white on the light Lab stages); give it the stage ink */
.lab-head{--ns-text:var(--ink)}
.lab-head nav{min-width:0}
@media (max-width:700px){
  .lab-head{flex-wrap:wrap;padding:8px 16px;row-gap:0}
  .lab-head .lab-logo{order:1;flex:1 1 auto;min-width:0}
  .lab-head .nsh-ask{order:2;flex:0 0 auto}
  .lab-head nav{order:3;flex:1 1 100%;justify-content:flex-start;flex-wrap:wrap;gap:4px 16px}
  .lab-head .lab-live{display:none}
}
.hz-count{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border:1.5px solid var(--ink);border-radius:999px;background:transparent;color:var(--ink);font:600 14px var(--body);cursor:pointer}
.hz-count b{font-weight:700}
.hz-count.is-pulse{animation:hzpulse 700ms ease}
@keyframes hzpulse{0%{box-shadow:0 0 0 0 var(--cta)}50%{box-shadow:0 0 0 6px var(--cta)}100%{box-shadow:0 0 0 0 transparent}}

/* sun-arc band (replaces any step counter) */
.hz-sun{position:relative;height:92px;max-width:1280px;margin:0 auto;border-bottom:1px solid var(--line)}
.hz-sun__arc{position:absolute;left:20px;right:20px;top:0;height:64px;width:calc(100% - 40px)}
.hz-sun__arc path{fill:none;stroke:var(--line);stroke-width:2;stroke-dasharray:4 6;vector-effect:non-scaling-stroke}
.hz-sun__horizon{position:absolute;left:20px;right:20px;top:63px;height:2px;background:var(--gold)}
.hz-sun__disc{position:absolute;width:24px;height:24px;margin:-12px 0 0 -12px;border-radius:50%;background:var(--sun);
  transition:left var(--t-light) ease,top var(--t-light) ease,background-color var(--t-light) ease}
[data-stage="dusk"] .hz-sun__disc,html[data-stage="dusk"] .hz-sun__disc{background:var(--bg);border:3px solid var(--sun)}
.hz-sun__labels{position:absolute;left:20px;right:20px;top:68px;display:flex;justify-content:space-between;font-size:13px;color:var(--sub);list-style:none;margin:0;padding:0}
.hz-sun__labels [aria-current="step"]{color:var(--ink);font-weight:700}
@media (max-width:640px){.hz-sun{height:64px}.hz-sun__arc{height:40px}.hz-sun__horizon{top:39px}.hz-sun__labels{top:43px;justify-content:center}.hz-sun__labels li:not([aria-current]){display:none}}

main{max-width:1280px;margin:0 auto;padding:22px 20px 80px}
.mf-eye{text-transform:uppercase;letter-spacing:.12em;font-size:12px;color:var(--gold-text);margin:0 0 6px;font-weight:700}
.mf-lede{color:var(--sub);max-width:640px;font-size:17px}
.mf-fine,.hz-src{color:var(--sub);font-size:13px;margin:.3em 0}
.mf-opt{color:var(--sub);font-weight:400;font-size:13px}
.mf-err{color:var(--ink);font-weight:700;font-size:14px}

/* buttons, chips, panels */
.hz-btn,.mf-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:48px;padding:0 22px;border-radius:var(--r-btn);
  font:700 16px/1.1 var(--body);text-decoration:none;cursor:pointer;border:1.5px solid var(--ink);background:transparent;color:var(--ink);text-align:center}
.hz-btn--primary{background:var(--cta);color:var(--on-cta);border-color:var(--cta)}
.hz-btn--sm{min-height:44px;padding:0 14px;font-size:14px}
.hz-btn[disabled]{opacity:.55;cursor:default}
.hz-chip{min-height:44px;padding:0 14px;border-radius:999px;border:1.5px solid var(--ink);background:transparent;color:var(--ink);font:600 14px var(--body);cursor:pointer}
.hz-chip[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
.hz-chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.hz-panel,.mf-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-panel);padding:22px}
.hz-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-card);padding:18px}
.mf-link{background:none;border:0;padding:10px 0;min-height:44px;color:var(--ink);text-decoration:underline;font:inherit;font-size:14px;cursor:pointer;display:inline-flex;align-items:center}
.hz-known{border:1.5px solid var(--ink);border-radius:12px;padding:12px 14px}
.hz-unknown{width:100%;border:1.5px dashed var(--gold);border-radius:12px;padding:10px 14px;min-height:48px;background:transparent;color:var(--ink);
  display:flex;justify-content:space-between;align-items:center;gap:10px;text-align:left;cursor:pointer;font:inherit;font-size:14px}
.hz-unknown__tag{flex:none;font-weight:700;color:var(--gold-text)}
.hz-unknown[aria-pressed="true"]{background:var(--panel);border-style:solid;border-color:var(--ink)}
.hz-unknowns{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:8px}

/* forms */
.mf-form{display:grid;gap:14px;margin-top:20px}
.mf-form label,.hz-lever{display:grid;gap:6px;font-weight:600;font-size:14px}
.mf-form input,.mf-form select,.mf-ownq input,.hz-lever select,.hz-smart input{background:var(--panel);color:var(--ink);border:1.5px solid var(--sub);border-radius:var(--r-btn);padding:11px 12px;font:inherit;font-size:16px;width:100%;min-height:48px}
.mf-form .mf-check{display:flex;gap:8px;align-items:center;font-weight:400;min-height:44px}
.mf-form .mf-check input{width:22px;height:22px;min-height:0}
.mf-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.mf-form--tight{gap:10px;margin:12px 0 0;padding:14px;border:1px solid var(--line);border-radius:14px}

/* start (dawn) */
.hz-start{position:relative;max-width:760px;margin:10px auto 0;padding:30px 0}
.hz-contour{position:absolute;inset:-20px -60px auto -60px;height:420px;z-index:-1;pointer-events:none;color:var(--line)}
.hz-contour path{fill:none;stroke:currentColor;stroke-width:1.2}
.hz-smart{display:grid;gap:8px;margin:18px 0 10px}
.hz-smart label{font-weight:700}
.hz-smart input{font-size:18px;min-height:56px}
.hz-examples{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 4px}

/* results grid */
.mf-grid{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"top" "side" "bottom";gap:22px}
@media (min-width:1100px){.mf-grid{grid-template-columns:minmax(0,1fr) 380px;grid-template-areas:"top side" "bottom side";align-items:start}.hz-side{position:sticky;top:12px;max-height:calc(100vh - 24px);overflow:auto;align-self:start}}
.hz-side{display:grid;gap:16px;min-width:0}
.mf-work{min-width:0}
.hz-head h2{margin:2px 0 4px}
.hz-head .hz-number{font-size:1.25em}
.mf-funnel-line{font-size:17px;color:var(--sub);margin:2px 0 12px}
.mf-funnel-line b{color:var(--ink)}
.hz-levers{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;align-items:end;margin:6px 0 14px}
.hz-lever > span{color:var(--sub);font-weight:600}
.hz-lever b{color:var(--ink)}
.hz-lever input[type=range]{width:100%;accent-color:var(--gold);min-height:44px}
.hz-views{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 10px}
.hz-views .hz-bars-btn{display:none}
@media (max-width:639px){.hz-views .hz-bars-btn{display:inline-block}}

/* the Horizon field */
.hz-scroll{overflow-x:auto;overflow-y:hidden;max-width:100%;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:var(--r-card);background:var(--panel)}
.hz-field{position:relative;width:720px;height:440px;margin:0;font-size:12px;color:var(--sub)}
.hz-field.is-strip{height:132px}
.hz-axis{position:absolute;background:var(--line)}
.hz-tick{position:absolute;font-size:12px;color:var(--sub);white-space:nowrap}
.hz-tick--y{transform:translateY(-50%)}
.hz-tick--x{transform:translateX(-50%)}
.hz-axlab{position:absolute;font-size:12px;font-weight:700;color:var(--sub)}
.hz-nodrive{position:absolute;top:14px;bottom:44px;border-left:1px dashed var(--line);font-size:12px;color:var(--sub)}
.hz-nodrive span{position:absolute;bottom:-30px;left:6px;width:80px;line-height:1.2}
.hz-line{position:absolute;height:2px;background:var(--gold);transition:top var(--t-move) ease,left var(--t-move) ease}
.hz-line--v{width:2px;height:auto;transition:left var(--t-move) ease}
.hz-line__lab{position:absolute;right:0;top:-20px;font-weight:700;color:var(--gold-text);white-space:nowrap;font-size:12px;background:var(--panel);padding:0 4px}
.hz-line--v .hz-line__lab{right:auto;left:6px;top:0}
.hz-limit{position:absolute;top:14px;bottom:44px;border-left:2px dashed var(--sub);transition:left var(--t-move) ease}
.hz-limit__lab{position:absolute;top:0;left:6px;font-weight:700;color:var(--ink);white-space:nowrap;background:var(--panel);padding:0 4px}
.hz-dot{position:absolute;width:12px;height:12px;margin:-6px 0 0 -6px;padding:0;border-radius:50%;box-sizing:border-box;cursor:pointer;background:transparent;
  transition:left var(--t-move) ease,top var(--t-move) ease,background-color 400ms ease,border-color 400ms ease,width 200ms,height 200ms,margin 200ms}
.hz-dot::after{content:"";position:absolute;inset:-16px}
.hz-dot--fit{background:var(--ink);border:2px solid var(--ink)}
.hz-dot--near{background:transparent;border:2px solid var(--ink)}
.hz-dot--over{background:transparent;border:1.5px solid var(--sub);width:9px;height:9px;margin:-4.5px 0 0 -4.5px}
.hz-dot--saved{box-shadow:0 0 0 3px var(--cta)}
.hz-dot[aria-pressed="true"]{width:18px;height:18px;margin:-9px 0 0 -9px;box-shadow:0 0 0 4px var(--panel),0 0 0 6px var(--cta);z-index:3}
.hz-town{position:absolute;font-family:var(--display);font-weight:600;font-size:16px;color:var(--ink);transform:translate(-50%,-140%);white-space:nowrap;pointer-events:none}
.hz-north{position:absolute;font-weight:700;color:var(--ink);font-size:13px;white-space:nowrap}
.hz-legend{display:flex;flex-wrap:wrap;gap:14px;font-size:13px;color:var(--sub);margin:8px 2px 0;list-style:none;padding:0}
.hz-legend i{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:6px;vertical-align:-1px;box-sizing:border-box}
.hz-legend .l-fit{background:var(--ink)}.hz-legend .l-near{border:2px solid var(--ink)}.hz-legend .l-over{border:1.5px solid var(--sub);width:9px;height:9px}
.hz-legend .l-saved{border:2px solid var(--ink);box-shadow:0 0 0 3px var(--cta)}
.hz-legend .l-line{width:18px;height:2px;border-radius:0;background:var(--gold);vertical-align:3px}
.hz-legend .l-limit{width:0;height:14px;border-radius:0;border-left:2px dashed var(--sub);vertical-align:-2px}
/* bars (phones) */
.hz-barlist{list-style:none;margin:0;padding:10px 12px;position:relative}
.hz-barbtn{display:grid;grid-template-columns:42% 1fr;gap:8px;align-items:center;width:100%;min-height:44px;padding:0 4px;border:0;border-radius:8px;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.hz-barbtn[aria-pressed="true"]{outline:2px solid var(--cta);outline-offset:1px}
.hz-barname{font-size:13px;line-height:1.2;overflow:hidden;text-overflow:ellipsis}
.hz-bartrack{position:relative;height:14px}
.hz-bar{position:absolute;left:0;top:1px;height:12px;border-radius:6px;box-sizing:border-box;transition:width var(--t-move) ease}
.hz-bar.hz-dot--fit{background:var(--ink)}.hz-bar.hz-dot--near{border:2px solid var(--ink)}.hz-bar.hz-dot--over{border:1.5px solid var(--sub)}
.hz-bar.hz-dot--saved{box-shadow:0 0 0 3px var(--cta)}
.hz-barline{position:absolute;top:0;bottom:0;width:2px;background:var(--gold);transition:left var(--t-move) ease;pointer-events:none}

/* the selected place */
.hz-place h3{font-size:24px;margin:0 0 2px}
.hz-place .hz-big{font-family:var(--display);font-size:30px;font-weight:600;margin:6px 0 0;line-height:1.1}
.hz-place dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:10px 0;font-size:14px}
.hz-place dt{color:var(--sub)}.hz-place dd{margin:0}
.hz-glyph{display:block;margin:6px auto 0;overflow:visible}
.hz-glyph polygon.is-this{fill:color-mix(in srgb,var(--ink) 8%,transparent);stroke:var(--ink);stroke-width:2.2;stroke-linejoin:round}
.hz-glyph polygon.is-compare{fill:none;stroke:var(--gold);stroke-width:2;stroke-dasharray:5 4}
.hz-glyph circle{fill:none;stroke:var(--line)}
.hz-glyph line{stroke:var(--line)}
.hz-glyph line.is-none{stroke:var(--sub);stroke-dasharray:2 3}
.hz-glyph text{font-size:10px;fill:var(--sub);font-family:var(--body)}
.hz-glyph-cap{text-align:center;font-size:12px;color:var(--sub);margin:4px 0 0}

/* cards */
.mf-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin:16px 0}
.mf-card{display:flex;flex-direction:column;gap:6px}
.mf-card.is-in{border:1.5px solid var(--ink)}
.mf-card header{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.mf-card h3{margin:0;font-size:19px}
.mf-town{color:var(--sub);font-size:13px}
.mf-price{font-size:24px;font-weight:600;margin:0;font-family:var(--display)}
.mf-price .hz-src{display:block;font-family:var(--body);font-weight:400}
.mf-pay{margin:0;font-size:14px}
.mf-times,.mf-facts{margin:0;padding-left:18px;font-size:14px;color:var(--sub)}
.mf-unk{font-size:14px;border-top:1px solid var(--line);padding-top:8px}
.mf-unk summary{cursor:pointer;color:var(--ink);min-height:44px;display:flex;align-items:center}
.mf-card footer{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:auto;padding-top:6px}
.mf-card .hz-glyph{margin:0}

/* steps (all levers) */
.hz-steps{margin:10px 0}
.hz-steps summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:600}
.mf-steps{list-style:none;padding:0;margin:6px 0 10px;display:grid;gap:6px}
.mf-step{display:grid;grid-template-columns:52px 1fr;gap:4px 10px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:8px 12px;background:var(--panel)}
.mf-step.is-off{color:var(--sub)}
.mf-step-n{font-family:var(--display);font-size:22px;font-weight:600;text-align:right}
.mf-step-l{font-size:15px;display:flex;gap:8px;align-items:center;min-height:44px}
.mf-step-l input{width:20px;height:20px;accent-color:var(--ink)}
.mf-why{grid-column:2;font-size:13px;color:var(--sub)}
.mf-why summary{cursor:pointer;min-height:44px;display:flex;align-items:center}
.mf-why ul{margin:6px 0 0;padding-left:18px;max-height:220px;overflow:auto}
.mf-empty{border:1.5px dashed var(--ink);border-radius:12px;padding:12px 14px;margin:12px 0}

/* Two Tuesdays */
.hz-tue h3{margin-bottom:2px}
.hz-tue-row{margin:12px 0}
.hz-tue-name{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.hz-tue-name .hz-number{font-size:26px}
.hz-ribbon{display:flex;height:22px;border:1.5px solid var(--ink);border-radius:6px;overflow:hidden;margin-top:4px}
.hz-ribbon span{display:block;height:100%;border-right:1.5px solid var(--ink);transition:width var(--t-move) ease}
.hz-ribbon span:last-child{border-right:0}
.hz-ribbon .leg-gate{background:var(--ink)}
.hz-ribbon .leg-hospital{background:color-mix(in srgb,var(--ink) 55%,var(--panel))}
.hz-ribbon .leg-airport{background:var(--panel)}
.hz-ribkey{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--sub);margin:4px 0 0;list-style:none;padding:0}
.hz-ribkey i{display:inline-block;width:14px;height:10px;margin-right:5px;border:1px solid var(--ink);vertical-align:-1px}
.hz-tue-say{font-weight:700;margin:8px 0 0}
.hz-placeholder{border:1.5px dashed var(--line);border-radius:var(--r-card);padding:16px;color:var(--sub)}

/* Move File column / sheet */
.mf-route{font-size:22px}
.mf-count{color:var(--gold-text);font-weight:700;margin:.2em 0 .8em}
.mf-chips{list-style:none;padding:0;margin:0 0 10px;display:grid;gap:6px}
.mf-chip{display:flex;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:14px}
.mf-chip-k{color:var(--sub)}.mf-chip-v{text-align:right}
.mf-h3{font-weight:700;margin:16px 0 6px;font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--sub)}
.mf-list,.mf-qs{margin:0;padding-left:0;list-style:none;display:grid;gap:6px;font-size:14px}
.mf-qs{list-style:decimal;padding-left:20px}
.mf-qs li{display:list-item}
.mf-list li{display:flex;gap:8px;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:10px;padding:2px 2px 2px 10px}
.mf-num{color:var(--sub);margin-left:auto}
.mf-x{background:none;border:0;color:var(--ink);font-size:20px;cursor:pointer;min-width:44px;min-height:44px}
.mf-ownq{display:flex;gap:8px;margin-top:8px}
.mf-actions{display:grid;gap:8px;margin-top:16px}
.mf-linkrow{display:flex;gap:6px}
.mf-linkrow input{flex:1;background:var(--panel);color:var(--ink);border:1.5px solid var(--sub);border-radius:10px;padding:8px;font-size:13px;min-height:44px}
.mf-diff{border:1.5px solid var(--ink);border-radius:12px;padding:10px 12px;margin-top:12px;font-size:14px}
.mf-diff .mf-h3{margin-top:0}
.mf-ro{border:1.5px dashed var(--gold);border-radius:10px;padding:8px 10px;font-size:14px;margin-bottom:10px}
.hz-sheet-h{display:none}
@media (max-width:1099px){
  .hz-mf{position:fixed;left:0;right:0;bottom:0;z-index:40;max-height:84vh;overflow:auto;border-radius:22px 22px 0 0;border-bottom:0;padding:0 18px 22px;
    transform:translateY(calc(100% - 68px));transition:transform 320ms ease;box-shadow:0 -1px 0 var(--line)}
  .hz-mf.is-open{transform:none}
  .hz-sheet-h{display:flex;position:sticky;top:0;flex-direction:column;align-items:center;gap:4px;width:100%;min-height:68px;padding:8px 0 10px;border:0;background:var(--panel);color:var(--ink);font:700 16px var(--body);cursor:pointer}
  .hz-sheet-h::before{content:"";width:44px;height:5px;border-radius:3px;background:var(--sub)}
  main{padding-bottom:110px}
}

/* save: the gold dot that arcs to the counter, and the undo toast */
.hz-fly{position:fixed;width:12px;height:12px;border-radius:50%;background:var(--cta);z-index:60;pointer-events:none}
.hz-toast{position:fixed;left:50%;bottom:86px;transform:translateX(-50%);z-index:70;display:flex;gap:12px;align-items:center;background:var(--ink);color:var(--bg);border-radius:14px;padding:6px 8px 6px 16px;font-size:15px;max-width:calc(100vw - 24px)}
.hz-toast button{min-height:44px;padding:0 14px;border-radius:10px;border:1.5px solid var(--bg);background:transparent;color:var(--bg);font:700 15px var(--body);cursor:pointer}
@media (min-width:1100px){.hz-toast{bottom:24px}}

/* crime + sources */
.mf-crime,.mf-src{border:1px solid var(--line);border-radius:var(--r-card);padding:14px 16px;margin-top:14px;font-size:14px;background:var(--panel)}
.mf-crime ul,.mf-src ul{margin:6px 0 0;padding-left:18px}
.mf-crime li a{display:inline-flex;align-items:center;min-height:44px}

/* Ask at dusk: the panel carries its own data-stage="dusk" */
html .nsa{--a-bg:var(--panel);--a-ink:var(--ink);--a-sub:var(--sub);--a-mut:var(--sub);--a-line:var(--line);--a-btn:var(--cta);--a-on:var(--on-cta);--a-gnd:var(--bg);border-radius:var(--r-panel)}
.hz-chris{display:flex;gap:12px;align-items:center;margin:4px 0 8px}
.hz-chris img,.hz-chris .hz-initials{width:52px;height:52px;border-radius:50%;object-fit:cover;flex:none;border:2px solid var(--line)}
.hz-initials{display:flex;align-items:center;justify-content:center;font:600 18px var(--display);background:var(--bg)}
.hz-chris p{margin:0;font-size:14px;color:var(--sub)}.hz-chris b{color:var(--ink);font-size:15px}
.hz-track{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:10px}
.hz-track li{display:flex;gap:10px;align-items:center}
.hz-track i{width:18px;height:18px;border-radius:50%;border:2px solid var(--ink);flex:none;position:relative}
.hz-track .is-done i{background:var(--ink)}
.hz-track .is-done i::after{content:"";position:absolute;left:4px;top:1px;width:5px;height:9px;border:solid var(--bg);border-width:0 2px 2px 0;transform:rotate(45deg)}

/* footer (dusk on every screen) */
.lab-foot{background:var(--bg);color:var(--sub);font-size:13px;padding:22px 20px 28px}
.lab-foot > *{max-width:1280px;margin-left:auto;margin-right:auto}
.lab-foot a{color:var(--ink);display:inline-flex;align-items:center;min-height:44px}

/* Move Brief at golden hour: paper */
.br{max-width:900px;margin:0 auto}
.hz-paper{position:relative;background:#FFFCF6;color:#1C1F26;border:1px solid #E1CBA6;border-radius:6px;padding:48px 56px}
.hz-paper h1{font-size:clamp(34px,6vw,54px);padding-bottom:14px;border-bottom:2px solid #1C1F26;margin-bottom:12px;padding-right:90px}
.hz-paper h1 em{font-weight:400}
.hz-paper h2{font-size:24px;margin-top:4px}
.hz-paper h2 .hz-sec{color:#6E4609;font-family:var(--body);font-size:14px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;display:block;margin-bottom:2px}
.hz-routearc{position:absolute;right:48px;top:44px;width:84px;height:56px}
.hz-routearc path{fill:none;stroke:#9A620F;stroke-width:2;stroke-dasharray:4 4}
.hz-routearc circle{fill:#1C1F26}
.hz-moneyline{font-family:var(--display);font-size:22px;line-height:1.35;margin:0}
.br table{width:100%;border-collapse:collapse;font-size:14px;margin:8px 0}
.br th,.br td{border-bottom:1px solid #E1CBA6;padding:7px 6px;text-align:left;vertical-align:top}
.br th{color:#5A4F3E;font-weight:600}
.br .num{text-align:right;white-space:nowrap}
.br section{margin:26px 0}
.br-tools{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 18px}
.hz-lolli{width:100%;height:auto;overflow:visible}
.hz-lolli text{font:12px var(--body);fill:#1C1F26}
.hz-lolli .sub{fill:#5A4F3E}
.hz-lolli line.stem{stroke:#1C1F26;stroke-width:1.5}
.hz-lolli line.gold{stroke:#9A620F;stroke-width:2}
.hz-lolli circle{fill:#1C1F26}
.hz-lolli circle.over{fill:#FFFCF6;stroke:#1C1F26;stroke-width:2}
@media (max-width:640px){.hz-paper{padding:28px 20px}.hz-routearc{right:16px;top:22px;width:60px}}
@media print{
  @page{size:letter;margin:0.6in}
  html,body{background:#fff!important}
  .hz-sun,.lab-head,.lab-bar,.lab-foot,.br-tools,.no-print,.hz-toast{display:none!important}
  main{padding:0;max-width:none}
  .hz-paper{border:0;padding:0;background:#fff}
  body{font-size:12px}
  a{color:#1C1F26;text-decoration:none}
  section{break-inside:avoid}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
}
/* lab-launch3-oct2026: the front door, the path steps, the first answer and the Brief hand-off */
.lp-doors h1{font-size:clamp(30px,5vw,44px)}
.lp-grid{display:grid;grid-template-columns:1fr;gap:12px;margin:18px 0 6px}
@media (min-width:700px){.lp-grid{grid-template-columns:1fr 1fr}}
.lp-door{display:grid;gap:4px;align-content:center;text-align:left;min-height:84px;padding:16px 18px;background:var(--panel);color:var(--ink);border:1.5px solid var(--line);border-radius:var(--r-card);font:inherit;cursor:pointer}
.lp-door b{font-family:var(--display);font-size:20px;font-weight:600;line-height:1.2}
.lp-door span{color:var(--sub);font-size:15px}
.lp-door:hover{border-color:var(--ink)}
.lp-continue{display:grid;gap:2px;width:100%;min-height:64px;text-align:left;padding:14px 18px;margin:8px 0 4px;background:var(--panel);color:var(--ink);border:1.5px solid var(--ink);border-radius:var(--r-card);font:inherit;cursor:pointer}
.lp-continue b{font-weight:700}
.lp-continue span{color:var(--sub);font-size:14px}
.lp-known{margin:6px 0 4px}
.lp-known .mf-link,.lp-back .mf-link{min-height:44px}
.lp-steps{display:flex;flex-wrap:wrap;gap:4px 0;list-style:none;margin:0 0 16px;padding:0;font-size:14px;color:var(--sub)}
.lp-steps li{display:inline-flex;align-items:center}
.lp-steps li+li::before{content:"·";margin:0 8px;color:var(--sub)}
.lp-steps li[aria-current]{color:var(--ink);font-weight:700}
.lp-steps li.is-done{color:var(--ink)}
.lp{max-width:760px;margin:10px auto 0;padding:24px 0}
.lp-answer .lp-head{font-size:clamp(26px,4.4vw,38px);line-height:1.15}
.lp-sub{font-size:22px;margin-top:18px}
.lp-note{border-left:3px solid var(--sub);padding:6px 0 6px 12px;margin:12px 0}
.lp-count{font-size:18px;margin:16px 0 6px}
.lp-short{list-style:none;margin:12px 0;padding:0;display:grid;gap:10px;counter-reset:lp}
.lp-item{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-card);padding:14px 16px;counter-increment:lp}
.lp-item h3{font-size:19px;margin:0 0 4px}
.lp-item h3::before{content:counter(lp) ". ";color:var(--sub);font-family:var(--body);font-weight:700;font-size:16px}
.lp-item p{margin:.2em 0}
.lp-pay b{font-size:18px}
.lp-next{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;margin:18px 0 6px}
.lp-opt{margin:2px 0}
.lp-opt summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:600}
.lp-hand{max-width:820px;margin:22px auto 0;padding:22px 20px;border-radius:var(--r-card);background:var(--bg);color:var(--ink)}
.lp-hand h2{font-size:24px}
.lp-hand__btns{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 8px}
.br-eq{border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:12px}
@media print{.lp-hand{display:none!important}}
/* lab-l3fix-oct2026: no sideways scroll from the doors contour at 390; the Brief table scrolls inside its own box; 44px crime links; zero-fit next steps */
.hz-start{overflow-x:hidden;overflow-x:clip;overflow-clip-margin:6px}
.hz-contour{max-width:100%;left:0;right:0}
@media (min-width:900px){.hz-start{overflow-x:visible}.hz-contour{max-width:none;left:-60px;right:-60px}}
.br-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
.br-scroll:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.br-scroll table{min-width:520px}
@media print{.br-scroll{overflow:visible}.br-scroll table{min-width:0}}
.br-crime li{margin:0}
.br-crime a{display:inline-flex;align-items:center;min-height:44px;padding:0 2px}
.lp-what{margin:18px 0 6px;padding:16px 18px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.lp-what h2{font-size:18px;margin:0 0 8px}
.lp-what ul{margin:0 0 12px;padding-left:20px}
.lp-what li{margin:0 0 8px}
/* lab-launch4-oct2026: "Where should we live?" */
.lp-steps--5{flex-wrap:wrap}
.lw-anchor{border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin:0;display:grid;gap:10px}
.lw-anchor legend{font-weight:700;padding:0 6px}
.lw-modes{display:flex;flex-wrap:wrap;gap:8px}
.lw-modes .hz-chip{min-height:44px;display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.lw-modes input{width:18px;height:18px;margin:0}
.lw-b{display:grid;gap:10px}
.lw-card p{margin:4px 0}
.lw-ltx{margin:4px 0;padding-left:18px}
.lw-close{padding-left:18px}
.lw-close li{margin:8px 0}
.lw-close .mf-link,.lw-card .mf-link,.lw-town .mf-link{min-height:44px}
.lw-trade{margin:28px 0 8px}
.lw-svgbox{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:var(--r-card,14px);background:var(--panel)}
.lw-svg{display:block;width:100%;min-width:520px;height:auto}
.lw-svg .lw-band{fill:var(--line);opacity:.55}
.lw-svg .lw-axis{stroke:var(--sub);stroke-width:1}
.lw-svg .hz-goldline{stroke:var(--gold);stroke-width:2}
.lw-svg .lw-ax{font-size:11px;fill:var(--sub)}
.lw-svg .lw-lbl{font-size:11px;fill:var(--ink);font-weight:600}
.lw-svg circle.hz-dot{width:auto;height:auto;margin:0}
.lw-svg circle.hz-dot--fit{fill:var(--ink);stroke:var(--ink);stroke-width:2}
.lw-svg circle.hz-dot--over{fill:var(--panel);stroke:var(--sub);stroke-width:1.5}
.lw-svg circle.hz-dot--saved{stroke:var(--gold);stroke-width:3}
.lw-list summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:600}
.lw-cmp{border-collapse:collapse;width:100%;min-width:480px}
.lw-cmp caption{text-align:left;font-weight:700;padding:6px 0}
.lw-cmp th,.lw-cmp td{border-bottom:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
.lw-cmp thead th{font-weight:700}
.lw-best{font-weight:700;color:var(--gold-text)}
.lw-origin-local{margin-top:-4px}
/* towns table fits a phone (was 561px inside its own scroll box): no min width, tight cells, numbers stay whole */
@media (max-width:600px){
  .br-scroll table.lw-cmp{min-width:0;table-layout:fixed}
  .lw-cmp th,.lw-cmp td{padding:6px 3px;font-size:12.5px;overflow-wrap:normal}
  .lw-cmp tr > :first-child{width:22%}
  .lw-cmp tbody th{overflow-wrap:anywhere}
  .lw-cmp thead th{font-size:12px;hyphens:manual}
}
.lw-unk{list-style:none;padding:0;display:grid;gap:8px}
.lw-town{margin:22px 0}
.lw-ribbon{list-style:none;padding:0;margin:10px 0;display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.lw-stop{background:var(--panel);border:1px solid var(--ink);border-radius:999px;padding:6px 12px;font-weight:600}
.lw-leg{color:var(--sub);font-size:14px}
.lw-leg::before{content:"→ ";}
.lw-leg::after{content:" →";}
button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
/* lab-launch4-oct2026 live check: the header counter showed an empty pill while [hidden]; sort select was 19px tall */
.hz-count[hidden]{display:none!important}
#lw-sort,#lw-vs,#lw-vd,.lw-a,.lw-lim,#lw-loan{min-height:44px}
.lw-worktax .mf-link{min-height:44px}
/* lab-equity-oct2026 */
.hz-fits{margin:6px 0 10px;font-size:13px;color:var(--sub);max-width:70ch}
.hz-limsrc{flex-basis:100%;margin:-4px 0 6px}
.mf-cons li>span:first-child{flex:1 1 auto;min-width:0}
.mf-cons .mf-open{padding:0 6px}
.l2-ask{border:1.5px solid var(--ink);border-radius:12px;padding:10px 12px;margin:8px 0;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.l2-ask p{flex-basis:100%;margin:0 0 4px;font-weight:600}
/* lab-nomoney-oct2026: no budget = no fit colors; Wilson Gate hours note; the budget and retire questions */
.hz-dot--plain{background:color-mix(in srgb,var(--ink) 45%,var(--panel));border:1px solid var(--ink)}
.hz-legend .l-plain{background:color-mix(in srgb,var(--ink) 45%,var(--panel));border:1px solid var(--ink)}
.hz-bar.hz-dot--plain{background:color-mix(in srgb,var(--ink) 45%,var(--panel))}
.hz-gatenote{display:block;font-size:12.5px;color:var(--sub);margin-top:2px}
.hz-gatenote a{color:inherit;text-decoration:underline;display:inline-flex;align-items:center;min-height:44px}
.mf-unset{margin:8px 0}
.bq,.rq{border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin:14px 0;min-width:0}
.bq legend,.rq legend{font-weight:700;padding:0 4px}
.bq .lw-modes,.rq .lw-modes{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 10px}
.bq .hz-chip,.rq .hz-chip{min-height:44px;display:inline-flex;align-items:center;gap:6px}
.bq .bq-b[hidden],.rq .rq-pay[hidden],.bq-m[hidden]{display:none}
.rq .lw-q{margin:10px 0 0;font-weight:600}
/* towns-national-oct2026: metro-area chips wrap on phones; every target 44px */
.lw-chips{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 10px}
.lw-chips .hz-chip{min-height:44px;cursor:pointer}
.lw-chips .hz-chip b{margin-left:4px}
.lw-unkd summary,.lw-list summary{min-height:44px;display:flex;align-items:center;cursor:pointer}
.lw-card .hz-unknown{min-height:44px;text-align:left}
