:root{color-scheme:light;--ink:#203936;--ink-2:#355451;--muted:#637773;--paper:#fffdf7;--surface:#fff;--cream:#fff6d9;--sun:#ffd85f;--sun-2:#f5a85b;--sky:#bce9ef;--sea:#c8eadc;--lilac:#e8def5;--night:#344967;--line:#d9e3dc;--danger:#9f3d3d;--warning:#fff0c4;--focus:#175b8e;--shadow:0 20px 60px #2f493e18;--radius:20px;font-family:"Trebuchet MS",ui-rounded,system-ui,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:linear-gradient(145deg,#fffdf8 0,#fff8e8 45%,#f0f8f2 100%);color:var(--ink)}button,input,select{font:inherit}button,a{touch-action:manipulation}.shell{width:min(1280px,calc(100% - 40px));margin-inline:auto}.prototype-label{padding:7px;text-align:center;background:var(--ink);color:#fff;font-size:.68rem;font-weight:800;letter-spacing:.11em}.top{display:flex;align-items:center;justify-content:space-between;padding-block:20px}.brand{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none;font-weight:900;font-size:1.15rem}.brand small{display:block;color:var(--muted);font-size:.62rem;font-weight:500}.brand-sun{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--sun);color:#8c5700;font-size:1.45rem}.fixed-origin{color:var(--muted);font-size:.78rem}.intro{display:grid;grid-template-columns:1.4fr .7fr;align-items:end;gap:40px;margin:32px 0 23px}.eyebrow{margin:0;color:#397866;font-size:.67rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.intro h1{margin:.14em 0 0;font:500 clamp(2.8rem,5vw,5rem)/1 Georgia,serif;letter-spacing:-.05em}.intro>p{max-width:420px;margin:0;color:var(--muted);line-height:1.65}.search-card{display:grid;grid-template-columns:1.8fr 1fr .8fr .6fr auto;gap:10px;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:#ffffffdf;box-shadow:var(--shadow)}label{display:grid;gap:5px;color:var(--muted);font-size:.66rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase}input,select{min-width:0;padding:11px 12px;border:1px solid #c7d7cd;border-radius:11px;background:#fff;color:var(--ink)}input[readonly]{background:#f3f5ef}.primary,.secondary{border:0;border-radius:11px;font-weight:900;cursor:pointer}.primary{align-self:end;padding:12px 17px;background:var(--ink);color:#fff}.primary:hover{background:var(--ink-2)}.secondary{padding:9px 11px;background:#edf4ed;color:var(--ink)}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.coverage{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin:13px 0 18px;padding:11px 14px;border:1px solid #bee0cc;border-radius:15px;background:#f4fff7}.coverage.stale{border-color:#e6c274;background:#fff8df}.fresh-dot{width:10px;height:10px;border-radius:50%;background:#3e9a6d;box-shadow:0 0 0 5px #ccebd9}.coverage.stale .fresh-dot{background:#c68122;box-shadow:0 0 0 5px #f9e2af}.coverage strong,.coverage span{display:block;font-size:.76rem}.coverage span{margin-top:2px;color:var(--muted);font-size:.68rem}.coverage button{border:0;background:transparent;color:var(--ink);font-size:.72rem;font-weight:900;text-decoration:underline;cursor:pointer}.coverage #coverage-detail{grid-column:2/-1;padding-top:9px;border-top:1px solid #cfe2d6;color:var(--muted);font-size:.72rem;line-height:1.5}.coverage dl{display:grid;grid-template-columns:1fr 1fr;gap:4px 20px}.coverage dl div,.detail-dialog dl div{display:flex;justify-content:space-between;gap:12px}.coverage dd{margin:0;text-align:right}.state-tools{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:14px}.state-tools label{min-width:260px}.state-tools select{padding:7px 9px}.state-tools>span{color:var(--muted);font-size:.65rem}.workspace{overflow:clip;border:1px solid var(--line);border-radius:26px;background:var(--surface);box-shadow:var(--shadow)}.workspace-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 22px;border-bottom:1px solid var(--line)}.workspace-head h2{margin:4px 0 3px;font:500 1.55rem Georgia,serif}.workspace-head p:last-child{margin:0;color:var(--muted);font-size:.72rem}.segmented{display:flex;padding:4px;border-radius:13px;background:#edf3ee}.segmented button{min-width:82px;padding:9px;border:0;border-radius:9px;background:transparent;color:var(--muted);font-weight:900;cursor:pointer}.segmented button[aria-pressed=true]{background:white;color:var(--ink);box-shadow:0 3px 10px #31483e18}.map-layout,.list-layout{display:grid;grid-template-columns:minmax(0,1fr) 370px;min-height:650px}.map{position:relative;min-height:650px;overflow:hidden;background:var(--sky);isolation:isolate}.map>img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}.map-wash{position:absolute;inset:0;background:linear-gradient(135deg,#fff2 10%,#ffd9781e 60%,#bce9ef33)}.markers{position:absolute;inset:0}.marker{position:absolute;z-index:3;display:grid;grid-template-columns:auto auto;place-items:center;gap:2px;min-width:48px;height:40px;padding:4px 8px;translate:-50% -50%;border:3px solid white;border-radius:20px;background:var(--cream);box-shadow:0 6px 16px #263b3450;color:var(--ink);cursor:pointer}.marker span{font-size:1.15rem}.marker b{display:grid;place-items:center;width:19px;height:19px;border-radius:50%;background:var(--sun);font-size:.7rem}.marker:hover,.marker.selected{background:#fff;border-color:#fff;scale:1.1}.marker.selected{box-shadow:0 0 0 4px var(--ink),0 8px 22px #263b3450}.origin{position:absolute;z-index:2;left:45.38%;top:66.4%;display:flex;align-items:center;gap:5px;translate:-50% -50%;padding:5px 8px 5px 5px;border-radius:999px;background:#fff;font-size:.64rem;font-weight:900;box-shadow:0 5px 15px #263b3440}.origin b{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--night);color:white}.map-note{position:absolute;z-index:2;left:14px;bottom:14px;max-width:285px;margin:0;padding:9px 11px;border:1px solid #fff;border-radius:12px;background:#fffffff0;color:var(--muted);font-size:.68rem;line-height:1.45}.popover{position:absolute;z-index:5;width:290px;padding:16px;translate:-50% -110%;border:1px solid var(--line);border-radius:17px;background:#fff;box-shadow:0 18px 50px #233d3555}.popover h3{margin:4px 24px 7px 0;font:500 1.05rem/1.2 Georgia,serif}.popover p{font-size:.72rem}.popover-weather{color:var(--muted)}.popover>div{display:flex;justify-content:space-between;margin:11px 0;color:var(--muted);font-size:.7rem}.popover>div b{color:var(--ink)}.popover .primary{width:100%;font-size:.74rem}.popover-close,.dialog-close{position:absolute;top:8px;right:9px;width:30px;height:30px;border:0;border-radius:50%;background:#eef2ed;color:var(--ink);font-size:1.2rem;cursor:pointer}.popover-anchor{position:absolute;bottom:-8px;left:50%;width:16px;height:16px;rotate:45deg;background:#fff}.rail{padding:22px;overflow:auto;border-left:1px solid var(--line);background:var(--paper)}.destination-head{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:start}.destination-head h3{margin:5px 0 4px;font:500 1.35rem/1.13 Georgia,serif}.destination-head p{margin:0;color:var(--muted);font-size:.7rem}.weather-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--cream);font-size:1.5rem}.score{grid-column:1/-1;display:flex;align-items:baseline;gap:6px;margin-top:5px;font-size:1.35rem}.score small{color:var(--muted);font-size:.58rem;text-transform:uppercase}.rail section,#dialog-content section{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.section-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.section-title h4{margin:0;font-size:.74rem;text-transform:uppercase;letter-spacing:.07em}.section-title span{color:var(--muted);font-size:.62rem}.rail section p,#dialog-content section p{margin:7px 0;color:var(--muted);font-size:.75rem;line-height:1.5}.weather-summary{color:var(--ink)!important;font-weight:900}.night{padding:13px!important;border:0!important;border-radius:13px;background:var(--night);color:#fff}.night p,.night span,.night small{color:#edf5ff!important}.warning{margin-top:14px;padding:12px;border-radius:12px;background:var(--warning);color:#6b4d18;font-size:.72rem}.warning ul{margin:5px 0 0;padding-left:18px;line-height:1.45}.confidence{padding:10px!important;border:0!important;border-radius:11px;background:#edf6f1}.confidence div{display:flex;justify-content:space-between;gap:10px;font-size:.68rem}.confidence span{color:var(--muted)}.rail>.secondary{width:100%;margin-top:15px}.list-layout{background:#f4f7f2}.result-list{display:grid;align-content:start;gap:9px;padding:15px}.result-card{display:grid;grid-template-columns:34px 38px 1fr auto;gap:12px;align-items:center;width:100%;padding:14px;border:1px solid var(--line);border-radius:16px;background:#fff;color:var(--ink);text-align:left;cursor:pointer}.result-card:hover,.result-card.selected{border-color:#55907e;background:#fbfff9;box-shadow:0 6px 16px #31504412}.rank{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--sea);font-weight:900}.mini-icon{font-size:1.4rem}.card-copy{display:grid;gap:4px}.card-copy small,.card-copy span{color:var(--muted);font-size:.7rem}.card-score{font-size:1.15rem;text-align:center}.card-score small{display:block;color:var(--muted);font-size:.52rem;text-transform:uppercase}.state-message{display:flex;align-items:center;justify-content:center;gap:20px;min-height:480px;padding:40px;background:#fafcf7}.state-icon{display:grid;place-items:center;width:68px;height:68px;border-radius:50%;background:var(--sky);font-size:2rem}.state-message h3{margin:0 0 8px;font:500 1.6rem Georgia,serif}.state-message p{max-width:560px;margin:0 0 14px;color:var(--muted);line-height:1.6}.legend{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}.legend div{display:grid;gap:3px;padding:12px;border:1px solid var(--line);border-radius:13px;background:#ffffffb5}.legend b{font-size:.75rem}.legend span{color:var(--muted);font-size:.65rem}dialog{width:min(760px,calc(100% - 28px));max-height:min(88vh,800px);padding:0;border:0;border-radius:24px;background:var(--paper);color:var(--ink);box-shadow:0 25px 90px #172c2766}dialog::backdrop{background:#20332f99;backdrop-filter:blur(3px)}#dialog-content{position:relative;padding:28px;overflow:auto}#dialog-content .destination-head{grid-template-columns:1fr auto auto}.component-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.component-grid>div{display:grid;grid-template-columns:1fr auto;gap:5px;padding:11px;border:1px solid var(--line);border-radius:12px;background:#fff}.component-grid span{display:grid}.component-grid b{font-size:.73rem}.component-grid small{color:var(--muted);font-size:.62rem}.component-grid progress{grid-column:1/-1;width:100%;height:7px;accent-color:#e4a634}.component-grid>div>small{grid-column:1/-1}details{margin-top:16px;font-size:.72rem}summary{font-weight:900;cursor:pointer}details dl div{display:flex;justify-content:space-between;gap:14px;padding:7px 0;border-bottom:1px solid var(--line)}details dd{margin:0;text-align:right}footer{margin-block:25px;padding-top:16px;border-top:1px solid var(--line);color:var(--muted);font-size:.7rem;line-height:1.6}footer a{color:var(--ink)}[hidden]{display:none!important}
@media(max-width:950px){.map-layout,.list-layout{grid-template-columns:1fr}.map{min-height:560px}.rail{border-top:1px solid var(--line);border-left:0}.list-layout .rail{display:none}.intro{grid-template-columns:1fr}.search-card{grid-template-columns:1fr 1fr}.search-card label:first-child,.primary{grid-column:1/-1}}
@media(max-width:620px){.shell{width:min(100% - 20px,1280px)}.top{align-items:flex-start}.fixed-origin{display:none}.intro{margin-top:20px}.intro h1{font-size:2.65rem}.search-card{grid-template-columns:1fr 1fr}.search-card label:first-child{grid-column:1/-1}.coverage{grid-template-columns:auto 1fr}.coverage>button{grid-column:2;justify-self:start;padding:0}.coverage #coverage-detail{grid-column:1/-1}.coverage dl{grid-template-columns:1fr}.state-tools{align-items:stretch;flex-direction:column}.state-tools>span{display:none}.state-tools label{min-width:0}.workspace-head{align-items:flex-start;flex-direction:column}.segmented{width:100%}.segmented button{flex:1}.map{min-height:500px}.rail{padding:18px}.popover{width:260px;padding:13px}.map-note{max-width:210px}.marker{min-width:42px;height:36px}.marker span{font-size:.95rem}.list-layout{display:block}.result-list{padding:10px}.result-card{grid-template-columns:30px 32px 1fr}.card-score{grid-column:3;justify-self:start}.card-copy small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60vw}.legend{grid-template-columns:1fr}.component-grid{grid-template-columns:1fr}#dialog-content{padding:22px 18px}#dialog-content .destination-head{grid-template-columns:1fr auto}#dialog-content .score{grid-column:1/-1}dialog{margin-top:auto;margin-bottom:0;width:100%;max-width:none;border-radius:22px 22px 0 0}}
.coverage em{display:inline-block;margin-top:5px;padding:3px 7px;border-radius:999px;background:#fff0c4;color:#70541d;font-size:.62rem;font-style:normal}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* V5 bounded MapLibre/PMTiles orientation layer. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
#map-canvas{position:absolute;inset:0;background:#acdce5}
#map-marker-controls{position:absolute;inset:0;pointer-events:none}
.maplibregl-marker.marker{position:absolute;z-index:4;translate:0;pointer-events:auto}
.maplibregl-marker.origin-marker{position:absolute;z-index:3;translate:0;pointer-events:none}
.origin-marker{display:grid;place-items:center;width:38px;height:38px;border:3px solid #fff;border-radius:50%;background:var(--night);color:var(--sun);box-shadow:0 4px 12px #20393666}
.origin-marker svg{display:block;width:21px;height:21px}
.maplibregl-ctrl-top-right{top:12px;right:12px}
.maplibregl-ctrl button{background-color:#fff;color:var(--ink)}
.map-status{position:absolute;z-index:6;top:14px;left:14px;max-width:390px;padding:7px 10px;border:1px solid #c6d8cd;border-radius:10px;background:#fffffff0;color:var(--ink-2);font-size:.65rem;line-height:1.35;box-shadow:0 4px 14px #233d3520}
.map-status.error{max-width:460px;border-color:#d8a2a2;background:#fff3f1;color:#7b2727;font-weight:800}
.map-note{left:14px;bottom:43px;max-width:355px}
.map-attribution{position:absolute;z-index:6;right:7px;bottom:7px;max-width:calc(100% - 14px);padding:4px 7px;border-radius:6px;background:#fffffff2;color:#465e58;font-size:.58rem;line-height:1.3;text-align:right}
.map-attribution a{color:#294e65;font-weight:800}
.map-degraded{display:grid;place-items:center;background:repeating-linear-gradient(135deg,#eef3ed,#eef3ed 12px,#f7f8f1 12px,#f7f8f1 24px)}
.map-degraded .map-status{position:relative;top:auto;left:auto;margin:24px;max-width:470px;font-size:.82rem;text-align:center}
.map-degraded .map-note{position:absolute}
.origin-autocomplete{position:relative;display:block}.origin-autocomplete input{width:100%}.origin-suggestions{position:absolute;z-index:8;left:0;right:0;top:calc(100% + 5px);max-height:250px;overflow:auto;margin:0;padding:5px;list-style:none;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 12px 28px #233d3530}.origin-suggestions li{padding:10px;border-radius:8px;color:var(--ink);font-size:.78rem;letter-spacing:normal;text-transform:none;cursor:pointer}.origin-suggestions li[aria-selected=true],.origin-suggestions li:hover{background:#edf6f1}.origin-status{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px;min-height:2.3em;color:var(--muted);font-size:.66rem;font-weight:500;letter-spacing:normal;line-height:1.35;text-transform:none}.origin-retry{align-self:start;padding:0;border:0;background:transparent;color:var(--ink);font-size:.66rem;font-weight:900;text-decoration:underline;cursor:pointer}.primary:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:620px){.map-status{max-width:calc(100% - 82px)}.map-note{bottom:58px;max-width:calc(100% - 28px)}.map-attribution{font-size:.54rem}.maplibregl-ctrl-top-right{top:54px}}

/* Reviewer machinery stays outside the ordinary traveler journey. */
.state-lab{margin:28px 0 38px;border:1px dashed #9baaa2;border-radius:14px;background:#f7f8f4;color:var(--ink-2)}
.state-lab>summary{display:flex;justify-content:space-between;gap:16px;padding:14px 16px;cursor:pointer;font-weight:850;list-style-position:inside}
.state-lab>summary span{color:var(--muted);font-size:.74rem;font-weight:650;text-transform:uppercase;letter-spacing:.08em}
.state-lab .state-tools{margin:0;border:0;border-top:1px dashed #bdc8c2;border-radius:0;background:transparent}
.coverage{grid-template-columns:auto 1fr}
.coverage>div{padding-right:8px}
.map{min-height:570px}
.map-note{max-width:400px}
.map-attribution{max-width:calc(100% - 28px)}
@media(max-width:620px){
  .map{min-height:64vh}
  .map-note{font-size:.64rem}
  .state-lab>summary{min-height:48px;align-items:center}
}

/* V8 traveler-first result cards and compact, non-color-only conditions. */
.coverage{margin-bottom:18px;background:#f7faf7;border-color:var(--line)}
.coverage .fresh-dot{background:#6b8e81;box-shadow:0 0 0 5px #dce9e2}
.coverage.stale{border-color:#d5a94e;background:#fff8df}
.coverage.stale .fresh-dot{background:#a76911;box-shadow:0 0 0 5px #f6dfaa}
.workspace-head h2{font-size:1.7rem}
.destination-head h3{font-size:1.45rem}
.destination-head .score{grid-column:1/-1}
.temperature-lead{margin-top:10px!important;color:var(--ink)!important}
.temperature-lead strong{font-size:1.35rem}
.condition-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-top:12px}
.condition{display:grid;justify-items:center;align-content:center;min-height:74px;padding:8px 5px;border:1px solid var(--line);border-radius:12px;background:#fff;text-align:center}
.condition i{font-size:1.15rem;font-style:normal;line-height:1}
.condition b{margin-top:5px;font-size:.88rem;line-height:1.15}
.condition small{margin-top:3px;color:var(--muted);font-size:.53rem;line-height:1.15}
.condition.unavailable{background:#f1f3f0;color:#71807a;border-style:dashed}
.condition.unavailable i,.condition.unavailable b{color:#71807a}
.condition-strip.compact{gap:4px;margin:6px 0 0}
.condition-strip.compact .condition{min-height:52px;padding:5px 3px;border:0;background:#f4f7f3}
.condition-strip.compact .condition i{font-size:1.05rem}
.condition-strip.compact .condition b{margin-top:2px;font-size:.72rem}
.condition-strip.compact .condition small{font-size:.46rem}
.result-card{grid-template-columns:34px 1fr auto;align-items:start}
.card-copy>b{font:600 .94rem/1.2 Georgia,serif}
.card-score{padding-top:2px}



.map-status:not(.error){padding:6px 9px;background:#ffffffe8;color:#405a52;font-weight:800}
.map-status:not(.error){opacity:.9}
.map-diagnostics{display:block;white-space:pre-wrap;margin:0;padding:13px 16px;border-top:1px dashed #bdc8c2;background:#222f2b;color:#e8f2ed;font:600 .67rem/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}
.map-note{display:none}
@media(max-width:620px){
  .condition-strip{gap:5px}
  .condition{min-height:67px;padding:7px 3px}
  .condition small{font-size:.5rem}
  .condition-strip.compact{grid-template-columns:repeat(2,1fr)}
  .card-copy small{white-space:normal;max-width:none}
}

/* V9 consumer hierarchy and invariant marker treatment. */
.intro{margin-top:24px;align-items:center}.intro h1{font-size:clamp(3.25rem,6vw,5.7rem)}
.intro>p{font-size:1rem}.search-card{grid-template-columns:1.65fr 1fr .8fr auto}
.coverage{margin-top:13px}.warning-dot{display:grid!important;place-items:center;width:24px;height:24px;border-radius:50%;background:#a76911;color:#fff!important;font-weight:900}
.workspace{margin-top:18px}.workspace-head{padding-block:20px}.workspace-head h2{font-size:1.9rem}
.marker,.marker:hover,.marker.selected{scale:none}.marker{min-width:48px;height:44px;padding:4px 7px;border:2px solid #fff;background:#fffdf7;box-shadow:0 4px 12px #2039364d}.marker.selected{border-color:var(--ink);background:#fff;box-shadow:0 0 0 3px #fff,0 0 0 6px var(--ink),0 8px 22px #263b3450}.marker b{background:#ffd85f}
.map-actions{position:absolute;z-index:7;left:14px;bottom:36px;display:flex;gap:8px}.map-actions button{min-height:44px;padding:9px 13px;border:1px solid #bdd0c5;border-radius:12px;background:#fffffff2;color:var(--ink);font-size:.72rem;font-weight:900;box-shadow:0 4px 14px #233d3520;cursor:pointer}.map-actions button:hover{background:#fff}
.selection-rank{display:flex!important;align-items:center;gap:7px;color:var(--muted)!important;font-weight:800}.selection-rank span{display:grid;place-items:center;min-width:28px;height:28px;border-radius:50%;background:var(--sun);color:var(--ink);font-size:.78rem}.destination-head h3{margin-top:10px;font-size:1.5rem}.weather-lead{display:flex;align-items:center;gap:12px;margin:20px 0 8px}.weather-lead>strong{font:500 3.8rem/1 Georgia,serif;letter-spacing:-.06em}.weather-lead>span{display:grid;gap:3px}.weather-lead b{font-size:1rem}.weather-lead small{color:var(--muted);font-size:.65rem}.fit-score{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:14px;margin-top:13px;padding:12px;border-radius:13px;background:#eef5ef}.fit-score>span{display:grid;min-width:62px;padding-right:12px;border-right:1px solid #cbd9cf}.fit-score b{font-size:1.45rem}.fit-score small{color:var(--muted);font-size:.58rem;font-weight:900;text-transform:uppercase}.fit-score p{margin:0;color:var(--muted);font-size:.65rem;line-height:1.4}.card-score small{max-width:54px;line-height:1.15}.state-lab{margin-top:24px;opacity:.82}
@media(max-width:950px){.search-card{grid-template-columns:1fr 1fr}.search-card label:first-child,.primary{grid-column:1/-1}}
@media(max-width:620px){.intro{gap:14px}.intro h1{font-size:3.25rem}.intro>p{font-size:.9rem;line-height:1.5}.workspace{margin-top:12px}.workspace-head h2{font-size:1.55rem}.map-actions{bottom:50px}.map-actions button{min-height:48px}.weather-lead>strong{font-size:3.3rem}}

/* V10 provisional location-context presentation. */
.location-context{display:grid;gap:4px;margin:14px 0 0;padding:11px 12px;border:1px solid #cbded4;border-radius:12px;background:#f5faf6;color:var(--ink-2);font-size:.72rem;line-height:1.45}
.location-context strong{font-size:.62rem;letter-spacing:.07em;text-transform:uppercase}
.location-context.fallback{border-style:dashed;background:#f7f8f4}
.place-matches{margin:14px 0 0;padding:11px 12px;border:1px solid #d4c7e1;border-radius:12px;background:#faf7fd;color:var(--ink-2);font-size:.72rem;line-height:1.45}
.place-matches summary{display:flex;justify-content:space-between;gap:10px;min-height:30px;color:var(--ink);font-weight:900}
.place-matches summary span{color:var(--muted);font-size:.62rem;font-weight:700}
.place-matches ol{display:grid;gap:6px;margin:10px 0 6px;padding-left:22px}
.place-matches p{margin:5px 0 0!important;font-size:.68rem!important}
@media(max-width:620px){.place-matches summary{display:grid}.destination-head h3{overflow-wrap:anywhere}.prototype-label{line-height:1.45}}

/* Semantic accents supplement labels; they never carry meaning alone. */
.condition:nth-child(1){background:#fff8db;border-color:#ead58f}.condition:nth-child(1) i,.condition:nth-child(1) b{color:#8a5a00}
.condition:nth-child(2){background:#f1eef7;border-color:#d9d0e8}.condition:nth-child(2) i,.condition:nth-child(2) b{color:#5c5570}
.condition:nth-child(3){background:#eaf7f5;border-color:#b9ddd8}.condition:nth-child(3) i,.condition:nth-child(3) b{color:#176b70}
.condition:nth-child(4){background:#eaf3fa;border-color:#bfd5e6}.condition:nth-child(4) i,.condition:nth-child(4) b{color:#285f82}
.condition.unavailable,.condition-strip.compact .condition.unavailable{background:#f1f3f0;color:#5f6d67;border:1px dashed #8b9992}.condition.unavailable i,.condition.unavailable b{color:#5f6d67}
.weather-lead>strong{color:#b46c16}
@media(max-width:620px){.condition i{font-size:1.35rem}.condition b{font-size:.92rem}}
.rail>.secondary{min-height:44px}

/* Task 0273: one airline-style Dates field controls both a day and a range. */
.date-controls{position:relative;display:grid;align-content:start;gap:5px;min-width:0}
.field-label{color:var(--muted);font-size:.66rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase}
.date-picker-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-width:0;min-height:40px;padding:9px 12px;border:1px solid #c7d7cd;border-radius:11px;background:#fff;color:var(--ink);font-weight:700;text-align:left;cursor:pointer}
.date-picker-toggle:hover,.date-picker-toggle.open{border-color:#55907e;background:#fbfff9}
.date-picker-toggle>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.date-picker-chevron{flex:none;color:var(--muted);font-size:1rem;transition:transform .15s ease}
.date-picker-toggle.open .date-picker-chevron{transform:rotate(180deg)}
.trip-date-panel{position:absolute;z-index:20;top:calc(100% + 8px);left:0;display:grid;gap:10px;width:min(650px,calc(100vw - 40px));min-width:0;margin:0;padding:14px;border:1px solid var(--line);border-radius:14px;background:#f8fbf7;box-shadow:0 16px 45px #2039362b}
.trip-date-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px}
.trip-date-toolbar p{margin:0;color:var(--muted);font-size:.72rem;line-height:1.4}
.one-day-toggle{display:flex;align-items:center;gap:9px;min-height:44px;padding:7px 9px;border-radius:10px;background:#edf4ed;color:var(--ink);font-size:.72rem;letter-spacing:normal;text-transform:none;cursor:pointer}
.one-day-toggle input{flex:none;width:20px;height:20px;margin:0;padding:0;accent-color:var(--ink)}
.trip-calendar{display:grid;grid-template-columns:repeat(7,minmax(44px,1fr));gap:6px;min-width:0}
.trip-day{display:grid;place-items:center;gap:2px;min-width:44px;min-height:44px;padding:6px 3px;border:1px solid #c7d7cd;border-radius:11px;background:#fff;color:var(--ink);cursor:pointer}
.trip-day span{font-size:.62rem;color:var(--muted)}
.trip-day b{font-size:.7rem}
.trip-day[aria-pressed=true]{border-color:#397866;background:#e5f3e9;box-shadow:inset 0 0 0 1px #397866}
.trip-day.start,.trip-day.end{background:var(--ink);color:#fff}
.trip-day.start span,.trip-day.end span{color:#dce8e3}
.trip-day.in-range{border-radius:7px;background:#e5f3e9}
.trip-day:disabled{border-style:dashed;background:#f1f3f0;color:#7b8984;cursor:not-allowed;opacity:.72}
.trip-date-feedback{display:flex;align-items:start;justify-content:space-between;gap:10px;min-height:1.4em;color:var(--muted);font-size:.7rem;line-height:1.4}
.trip-date-feedback .origin-retry{font-size:.7rem}
.trip-policy-copy{max-width:650px!important;margin:.35rem 0!important;color:var(--ink-2)!important;font-weight:800}
.lowest-day{margin-top:5px!important;color:var(--ink-2)!important;font-weight:800}
.trip-result-card .identity-copy{gap:5px}
.trip-breakdown{margin-top:16px;border-top:1px solid var(--line);padding-top:14px}
.trip-breakdown>summary{min-height:44px;padding:11px 12px;border-radius:11px;background:#edf4ed;color:var(--ink)}
.trip-days{display:grid;gap:12px;margin-top:12px}
.trip-day-detail{padding:13px;border:1px solid var(--line);border-radius:14px;background:#fff}
.trip-day-detail.missing{border-style:dashed;background:#f7f8f4}
.trip-day-detail>header{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.trip-day-detail h4,.trip-day-detail h5{margin:0;font-size:.78rem}
.trip-day-detail>header span,.trip-local-time{color:var(--muted);font-size:.65rem}
.trip-local-time{margin:4px 0 9px!important}
.trip-missing-copy{margin:7px 0!important;color:var(--danger)!important;font-weight:800}
.trip-evidence{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.trip-evidence>span{display:grid;gap:3px;min-width:0;padding:7px 8px;border-radius:9px;background:#f4f7f3}
.trip-evidence small{color:var(--muted);font-size:.59rem}
.trip-evidence b{font-size:.68rem;line-height:1.35;overflow-wrap:anywhere}
.trip-evidence .unavailable{border:1px dashed #8b9992;color:#5f6d67}
.trip-extrema{margin:8px 0}
.trip-night{margin-top:9px!important;padding:10px!important;border:0!important;border-radius:11px;background:var(--night);color:#fff}
.trip-night .section-title h5,.trip-night .section-title span{color:#fff}
.trip-night .trip-evidence>span{background:#ffffff13}
.trip-night .trip-evidence small{color:#d9e8f5}
.missing-trip-summary,.missing-trip-more{margin:0;padding:12px;border-radius:11px;background:#fff8df;color:var(--ink-2);font-size:.75rem;font-weight:800}
.missing-trip-results{display:grid;gap:9px;margin-top:8px;padding-top:15px;border-top:1px solid var(--line)}
.missing-trip-results>h3{margin:0;font:500 1.2rem Georgia,serif}
.missing-trip-card{padding:13px;border:1px dashed #aebbb4;border-radius:14px;background:#fff}
.missing-trip-card h4{margin:0 0 5px;font:600 .96rem Georgia,serif}
.missing-trip-card p{margin:4px 0;color:var(--muted);font-size:.7rem;line-height:1.45}
.trip-empty-rail{display:grid;gap:8px;align-content:start}
.trip-empty-rail h3,.trip-empty-rail p{margin:0}
.trip-empty-rail p{color:var(--muted);font-size:.75rem;line-height:1.5}
@media(max-width:950px){
  .date-controls{grid-column:auto}
  .trip-date-panel{right:0;left:auto}
}
@media(max-width:620px){
  .date-controls{grid-column:1/-1}
  .trip-date-panel{position:static;width:100%;box-shadow:none}
  .trip-date-toolbar{align-items:start;flex-direction:column}
  .trip-calendar{gap:5px}
  .trip-day{padding-inline:2px}
  .trip-day b{font-size:.64rem}
  .trip-evidence{grid-template-columns:1fr}
  .trip-day-detail>header{align-items:start;flex-direction:column;gap:4px}
}

/* Task 0286: Dates uses the same value typography and desktop box geometry as
   the neighboring Starting point and How far controls. */
.date-picker-toggle{font-size:.66rem;font-weight:900;line-height:normal}
@media(min-width:951px){.search-card .date-picker-toggle{padding-block:0}}

/* The origin combobox is a field group so its listbox and retry control are
   siblings of the label, not interactive descendants of it. */
.origin-field{display:grid;gap:5px;color:var(--muted);font-size:.66rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase}
.origin-field>label{display:block}
@media(max-width:950px){.search-card>.origin-field{grid-column:1/-1}}

/* The origin group has an extra reserved status row; on desktop it must not
   stretch the two-row Date and How far labels below the text-input top edge. */
@media(min-width:951px){.search-card{align-items:start}.search-card #origin-query,.search-card .date-picker-toggle,.search-card #radius,.search-card>#search-submit{height:40px}.search-card>#search-submit{align-self:start;display:inline-flex;align-items:center;justify-content:center;margin-top:17px;padding-block:0}}

/* Task 0186: keep the selected score with place identity, then stack it on mobile. */
.selected-destination-head{grid-template-columns:minmax(0,1fr) auto;gap:14px}
.selected-destination-identity{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start;min-width:0}
.selected-destination-copy{min-width:0}
.selected-destination-copy h2,.selected-destination-copy h3{overflow-wrap:anywhere}
.selected-score{display:grid;align-content:center;justify-items:center;min-width:86px;min-height:62px;padding:8px 10px;border:1px solid #cbd9cf;border-radius:13px;background:#eef5ef;color:var(--ink);line-height:1}
.selected-score b{font:700 1.8rem/1 Georgia,serif;letter-spacing:-.04em}
.selected-score small{margin-top:5px;color:var(--muted);font-size:.59rem;font-weight:900;line-height:1.1;text-transform:uppercase}
#dialog-content .selected-destination-head{grid-template-columns:minmax(0,1fr) auto;padding-right:32px}
@media(max-width:620px){
  .selected-destination-head,#dialog-content .selected-destination-head{grid-template-columns:minmax(0,1fr)}
  .selected-score{grid-template-columns:auto 1fr;align-items:baseline;justify-items:start;justify-self:stretch;gap:8px;min-height:0;padding:10px 12px}
  .selected-score b{font-size:1.65rem}
  .selected-score small{margin-top:0}
}
@media(max-width:620px){.segmented button{min-height:44px}}

/* Stable metric rows keep icons aligned when a condition label wraps. */
.condition{grid-template-rows:22px 2.35em 1.45em;align-content:center;min-height:82px}
.condition i{display:grid;place-items:center;height:22px}
.condition i svg{display:block;width:17px;height:20px}
.condition b,.condition small{align-self:center}
.condition-strip.compact .condition{grid-template-rows:19px 2.35em 1.45em;min-height:64px}
.condition-strip.compact .condition i{height:19px}
.condition-strip.compact .condition i svg{width:15px;height:18px}
@media(max-width:620px){.condition{min-height:76px}.condition-strip.compact .condition{min-height:68px}}

/* A one-line forecast description supports the selected result without explaining the score. */
.weather-summary{margin:8px 0 10px!important;color:var(--ink)!important;font-size:.78rem!important;font-weight:800;line-height:1.4}

/* The API's date range is brief, specific input help rather than a new panel. */
.date-feedback{color:var(--danger);font-size:.64rem;font-weight:700;letter-spacing:normal;line-height:1.35;text-transform:none}
.forecast-age{margin:.35rem 0 0!important;color:var(--muted);font-size:.68rem!important}.forecast-age.stale{color:var(--danger)}
.extrema-strip{display:flex;gap:10px;margin:10px 0 14px}.extremum{display:grid;gap:2px;min-width:90px;padding:8px 10px;border:1px solid #d7e1d8;border-radius:10px;background:#f7faf6}.extremum>b{font:600 1.35rem/1 Georgia,serif}.extremum small{color:var(--muted);font-size:.68rem;font-weight:800}.extremum-period{font-weight:500!important;overflow-wrap:anywhere}

/* Task 0107: give each result a readable identity and score. */
.result-row{display:block}
.result-row .result-card{display:grid;grid-template-columns:34px minmax(0,1fr);gap:14px;padding:14px;min-width:0;width:100%}
.card-copy{min-width:0}
.result-identity{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;min-width:0}
.identity-copy{display:grid;gap:4px;min-width:0}
.identity-copy>b{font-size:1rem;overflow-wrap:anywhere}
.identity-copy>small{color:var(--muted);font-size:.7rem}
.card-score{display:grid;align-content:start;justify-items:center;flex:0 0 82px;min-width:0;padding:2px 0 5px 12px;border-left:1px solid var(--line);font-size:1.3rem;line-height:1.1}.card-score b{font:700 1.7rem/1 Georgia,serif;letter-spacing:-.04em;color:var(--ink)}
.card-score small{margin-top:4px;font-size:.625rem;line-height:1.15;text-align:center}
.list-layout .rail{position:sticky;top:16px;align-self:start;max-height:calc(100vh - 32px);overflow:auto}
.condition-strip.compact .condition{min-height:72px;padding:7px 4px}
.condition-strip.compact .condition i{font-size:1.2rem}
.condition-strip.compact .condition i svg{width:17px;height:20px}
.condition-strip.compact .condition b{font-size:.78rem;line-height:1.2}
.condition-strip.compact .condition small{font-size:.625rem;line-height:1.2}
.condition:nth-child(4) i{font-size:1.55rem;font-weight:700;letter-spacing:-.08em}
.condition:nth-child(4) i svg{width:20px;height:20px}
@media(max-width:620px){
  .result-row{display:block}
  .result-row .result-card{grid-template-columns:30px minmax(0,1fr);gap:10px;padding:12px}
  .result-identity{gap:8px}
  .card-score{flex-basis:76px;padding-left:8px}.card-score b{font-size:1.55rem}
  .condition-strip.compact .condition{min-height:72px}
}
@media(max-width:950px){.list-layout .rail{position:static;max-height:none}}

/* Keep the desktop map generous while trimming avoidable laptop page scroll. */
@media(min-width:951px){.map-layout,.list-layout{height:clamp(400px,calc(100vh - 350px),650px);min-height:0}.map,.rail{min-height:0}}
@media(min-width:951px){.list-layout .result-list{min-height:0;overflow-y:auto}}
.secondary:hover{background:#dfece3}.secondary:active{background:#cfe3d5}.secondary:disabled{background:#edf1ed;color:#637773;cursor:not-allowed}
.rail>.secondary{min-height:44px}
