:root {
  color-scheme: light;
  font-family: Inter, "Avenir Next", Avenir, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: #26343c;
  background: #faf8f5;
  font-size: 16px;
  --ink: #26343c;
  --muted: #66757e;
  --quiet: #819097;
  --paper: #faf8f5;
  --surface: #ffffff;
  --mist: #f4f7f6;
  --wash: #edf6f4;
  --line: rgba(13, 92, 99, .14);
  --green: #0d5c63;
  --green-soft: #edf6f4;
  --where: #0d5c63;
  --where-soft: #edf6f4;
  --when: #b76c2d;
  --when-soft: #fff1e4;
  --matters: #66757e;
  --matters-soft: #eef1f2;
  --stays: #786b83;
  --stays-soft: #f3eff5;
  --deep-ocean: #143d46;
  --gold: #c89b3c;
  --shadow: none;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; min-width: 320px; background: #ffffff; }
body, button, input, select { font-weight: 400; }
strong, b { font-weight: 500; }
button, input { font: inherit; }
button { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible { outline: 3px solid rgba(13,92,99,.42); outline-offset: 3px; }
.icon-library { position: absolute; width: 0; height: 0; overflow: hidden; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
svg { width: 1.1rem; height: 1.1rem; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

.site-header {
  min-height: 68px;
  padding: 0 max(24px, calc((100vw - 1280px) / 2));
  display: flex;
  align-items: center;
  gap: clamp(24px, 4vw, 58px);
  border-bottom: 1px solid rgba(65, 91, 88, .14);
  background: rgba(250, 248, 245, .94);
  backdrop-filter: blur(18px);
  position: relative;
  z-index: 15;
}
.brand { color: var(--green); text-decoration: none; display: inline-flex; align-items: center; gap: 10px; font-weight: 600; letter-spacing: .12em; font-size: .86rem; }
.brand svg { width: 21px; height: 21px; }
.site-nav { align-self: stretch; display: flex; align-items: center; gap: clamp(18px, 2.7vw, 36px); margin-right: auto; }
.site-nav a { height: 100%; display: inline-flex; align-items: center; position: relative; color: #455653; text-decoration: none; font-size: .84rem; font-weight: 450; }
.site-nav a::after { content: ""; position: absolute; right: 0; bottom: -1px; left: 0; height: 2px; background: transparent; }
.site-nav a:hover, .site-nav a.is-current { color: var(--green); }
.site-nav a.is-current::after { background: var(--where); }
.saved-link { display: inline-flex; align-items: center; gap: 7px; color: var(--green); text-decoration: none; font-size: .8rem; font-weight: 500; white-space: nowrap; }
.saved-link span { min-width: 22px; height: 22px; padding: 0 6px; display: inline-grid; place-items: center; border-radius: 999px; background: var(--green-soft); font-size: .7rem; }

main { max-width: 1280px; margin: 0 auto; padding: 28px 24px 80px; }
.intro { margin-bottom: 22px; text-align: center; }
.eyebrow { color: var(--green); font-size: .76rem; line-height: 1.2; letter-spacing: .13em; font-weight: 550; text-transform: uppercase; }
h1, h2, h3, p { margin-top: 0; }
h1, h2 { font-family: inherit; font-weight: 450; letter-spacing: -.025em; }
h1 { margin: 0; color: var(--deep-ocean); font-size: clamp(1.55rem, 2.3vw, 2.05rem); line-height: 1.15; }
h2 { margin-bottom: 6px; font-size: clamp(1.35rem, 2vw, 1.7rem); line-height: 1.18; }
h3 { margin-bottom: 7px; font-size: 1.02rem; }
.results-toolbar p:last-child { color: var(--muted); font-size: 1rem; line-height: 1.55; }

.journey-ribbon { margin-bottom: 18px; padding: 19px 20px 17px; border: 2px solid rgba(20,61,70,.42); border-radius: 20px; background: var(--paper); box-shadow: 0 8px 24px rgba(20,61,70,.055); }
body.results-mode .journey-ribbon { position: sticky; z-index: 12; top: 10px; box-shadow: 0 12px 30px rgba(20,61,70,.14); }
body.results-mode .journey-ribbon { padding: 14px 16px 12px; }
body.results-mode .journey-ribbon-heading { align-items: center; margin-bottom: 9px; }
body.results-mode .journey-ribbon-heading .eyebrow { margin-bottom: 2px; font-size: .68rem; }
body.results-mode .journey-ribbon-heading h2 { font-size: 1.05rem; }
body.results-mode .journey-ribbon-body { grid-template-columns: minmax(0,1fr) 178px; gap: 12px; }
body.results-mode .journey-track { padding: 5px 2px; }
body.results-mode .journey-node, body.results-mode .journey-placeholder { min-height: 44px; border-radius: 11px; }
body.results-mode .journey-node > button { min-height: 42px; }
body.results-mode .journey-gateway { padding: 7px 10px; }
body.results-mode .journey-gateway > span { font-size: .65rem; }
body.results-mode .journey-gateway strong { font-size: 1.45rem; }
body.results-mode .journey-gateway > small { display: none; }
body.results-mode .preference-strand { margin-top: 8px; padding-top: 8px; }
.journey-ribbon-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.journey-ribbon-heading .eyebrow { margin-bottom: 5px; }
.journey-ribbon-heading h2 { margin: 0; color: var(--deep-ocean); font-size: 1.26rem; }
.ribbon-tools { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 10px; }
.inventory-status { color: var(--muted); font-size: .68rem; letter-spacing: .015em; }
.inventory-status.is-live::before { content: ""; width: 6px; height: 6px; margin-right: 6px; display: inline-block; border-radius: 50%; background: #4e8b68; box-shadow: 0 0 0 3px rgba(78,139,104,.12); vertical-align: 1px; }
.inventory-status.is-loading { color: var(--quiet); }
.inventory-status.is-error { color: #8c4f37; }
.inventory-status button { padding: 0; border: 0; border-bottom: 1px solid currentColor; background: transparent; color: inherit; cursor: pointer; font: inherit; }
.journey-ribbon-body { display: grid; grid-template-columns: minmax(0,1fr) 196px; gap: 18px; align-items: stretch; }
.journey-track { min-width: 0; padding: 13px 4px; display: flex; align-items: center; overflow-x: auto; scrollbar-width: thin; scrollbar-color: #a8b8b5 transparent; }
.journey-node { min-height: 52px; flex: 0 0 auto; display: inline-flex; align-items: center; border: 1px solid rgba(13,92,99,.28); border-radius: 14px; background: white; overflow: hidden; transition: border-color .18s ease, background .18s ease, transform .18s ease; }
.journey-node:hover { border-color: var(--where); transform: translateY(-1px); }
.journey-node > button { min-height: 50px; border: 0; background: transparent; cursor: pointer; }
.journey-node .chip-edit { padding: 8px 5px 8px 12px; color: var(--deep-ocean); font-size: .79rem; font-weight: 500; }
.journey-node .chip-remove { width: 30px; padding: 7px 8px 8px 3px; color: #65736c; font-size: 1rem; line-height: 1; }
.journey-node.is-stay { border-color: rgba(120,107,131,.62); background: var(--stays-soft); }
.journey-node.is-finish { border-color: rgba(102,117,126,.48); }
.journey-placeholder { min-height: 52px; flex: 0 0 auto; padding: 8px 12px; display: inline-flex; align-items: center; border: 1px dashed #aebcb9; border-radius: 14px; background: rgba(255,255,255,.58); color: var(--muted); font-size: .76rem; white-space: nowrap; }
button.journey-placeholder { cursor: pointer; }
button.journey-placeholder:hover { border-color: var(--where); color: var(--where); }
.journey-placeholder.is-date { color: #7a8589; background: transparent; }
.journey-link { width: 24px; min-width: 24px; height: 1px; position: relative; background: #9bb2ae; }
.journey-link::after { content: ""; position: absolute; top: -3px; right: 0; width: 7px; height: 7px; border-top: 1px solid #75918c; border-right: 1px solid #75918c; transform: rotate(45deg); }
.journey-gateway { padding: 13px 14px; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 5px 10px; border-left: 1px solid rgba(20,61,70,.18); }
.journey-gateway > span { color: var(--muted); font-size: .72rem; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; }
.journey-gateway strong { color: var(--deep-ocean); font-size: 1.8rem; font-weight: 400; letter-spacing: -.045em; transition: opacity 150ms ease, transform 150ms ease; }
.journey-gateway > small { grid-column: 1 / -1; color: var(--quiet); font-size: .64rem; }
.journey-gateway strong.is-counting-up { opacity: .82; transform: translateY(-1px); }
.journey-gateway strong.is-counting-down { opacity: .82; transform: translateY(1px); }
.journey-gateway button { grid-column: 1 / -1; min-height: 44px; padding: 9px 12px; display: flex; align-items: center; justify-content: space-between; gap: 8px; border: 0; border-radius: 10px; background: var(--green); color: white; cursor: pointer; font-size: .82rem; font-weight: 500; }
.journey-gateway button:hover { background: var(--deep-ocean); }
.journey-gateway button:disabled { background: #9ca9a7; cursor: wait; }
.journey-gateway button.is-current { background: #dce9e7; color: var(--green); cursor: default; }
.journey-gateway button.is-current:hover { background: #dce9e7; }
.journey-gateway svg { width: .95rem; height: .95rem; }
.request-guidance { margin-top: 12px; padding: 12px 14px; display: grid; grid-template-columns: minmax(170px,.7fr) minmax(0,1.3fr); gap: 10px 18px; align-items: center; border: 1px solid rgba(157,94,66,.38); border-radius: 12px; background: #fff8f3; color: #754731; }
.request-guidance > strong { font-size: .8rem; font-weight: 550; line-height: 1.4; }
.request-guidance-actions { display: flex; flex-wrap: wrap; gap: 7px; }
.request-guidance-actions button { padding: 7px 10px; border: 1px solid rgba(157,94,66,.34); border-radius: 999px; background: white; color: #754731; cursor: pointer; font-size: .72rem; text-align: left; }
.request-guidance-actions button:hover { border-color: #9d5e42; background: #fffdfb; }
.journey-ribbon.has-request-issues { border-color: rgba(157,94,66,.58); }
.preference-strand { margin-top: 11px; padding-top: 11px; display: flex; align-items: center; gap: 10px; border-top: 1px solid rgba(20,61,70,.13); font-size: .72rem; }
.preference-label { flex: 0 0 auto; color: var(--matters); font-weight: 500; }
.preference-placeholder { color: var(--quiet); }
.preference-items { min-width: 0; display: flex; gap: 6px; overflow-x: auto; scrollbar-width: thin; }
.preference-items button { flex: 0 0 auto; padding: 6px 9px; border: 1px solid rgba(102,117,126,.28); border-radius: 999px; background: white; color: #59676e; cursor: pointer; font-size: .7rem; }
.preference-items button:hover { border-color: var(--matters); color: var(--ink); }

.intent-groups { display: grid; grid-template-columns: minmax(0,3fr) minmax(230px,1.05fr); gap: 16px; }
.intent-cluster { min-width: 0; padding: 8px; border: 1px solid rgba(13,92,99,.18); border-radius: 18px; background: #f6faf9; }
.stay-intent-cluster { border-color: rgba(120,107,131,.24); background: #f8f5f9; }
.intent-cluster-label { margin: 0 4px 7px; color: var(--quiet); font-size: .63rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.intent-grid { display: grid; gap: 8px; margin-bottom: 0; }
.cruise-intent-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.stay-intent-grid { grid-template-columns: minmax(0,1fr); }
.intent-tile {
  --tile-accent: var(--where);
  --tile-soft: var(--where-soft);
  position: relative;
  min-height: 132px;
  padding: 13px 14px 12px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  text-align: left;
  overflow: visible;
  border: 2px solid rgba(13,92,99,.24);
  border-radius: 13px;
  background: var(--surface);
  cursor: pointer;
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.intent-tile:hover { transform: translateY(-2px); border-color: color-mix(in srgb, var(--tile-accent) 58%, white); box-shadow: 0 5px 14px rgba(38,52,60,.055); }
.intent-tile.is-active { z-index: 2; border-color: var(--tile-accent); background: var(--tile-soft); box-shadow: inset 0 -3px 0 var(--tile-accent); }
.intent-tile.is-active::after { content: ""; position: absolute; z-index: 3; left: 50%; bottom: -23px; width: 34px; height: 24px; transform: translateX(-50%); background: var(--wash); clip-path: polygon(0 0, 100% 0, 50% 100%); filter: drop-shadow(0 2px 0 var(--tile-accent)); }
.intent-icon { width: 30px; height: 30px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 9px; background: var(--tile-soft); color: var(--tile-accent); }
.intent-icon svg { width: 17px; height: 17px; stroke-width: 1.55; }
.intent-heading { display: flex; align-items: center; gap: 9px; font-size: 1.22rem; font-weight: 475; line-height: 1.1; letter-spacing: -.025em; }
.intent-value { margin-top: 3px; color: var(--muted); font-size: .74rem; line-height: 1.3; }
.intent-edit { margin-top: auto; display: inline-flex; align-items: center; gap: 6px; color: var(--tile-accent); font-size: .72rem; font-weight: 500; }
.intent-edit svg { width: .82rem; height: .82rem; }
.when-intent { --tile-accent: var(--when); --tile-soft: var(--when-soft); }
.when-intent.is-active::after { background: var(--when-soft); }
.matters-intent { --tile-accent: var(--matters); --tile-soft: var(--matters-soft); }
.matters-intent.is-active::after { background: var(--matters-soft); }
.stays-intent { --tile-accent: var(--stays); --tile-soft: var(--stays-soft); }
.stays-intent.is-active::after { background: var(--stays-soft); }
.where-shell, .when-shell, .matters-shell, .stays-shell { position: relative; margin-top: 16px; padding: 25px 28px 30px; border: 2px solid rgba(13,92,99,.42); border-top: 4px solid var(--where); border-radius: 20px; background: var(--wash); box-shadow: none; }
.when-shell { border-color: rgba(183,108,45,.42); border-top-color: var(--when); background: var(--when-soft); }
.matters-shell { border-color: rgba(102,117,126,.46); border-top-color: var(--matters); background: var(--matters-soft); }
.stays-shell { border-color: rgba(120,107,131,.46); border-top-color: var(--stays); background: var(--stays-soft); }
body:not(.where-open) main > .where-shell { display: none; }
body:not(.when-open) main > .when-shell { display: none; }
body:not(.matters-open) main > .matters-shell { display: none; }
body:not(.stays-open) main > .stays-shell { display: none; }
.sheet-grabber { display: none; }
.where-header { display: flex; justify-content: space-between; gap: 24px; align-items: flex-start; margin-bottom: 17px; }
.where-header .eyebrow { margin-bottom: 6px; color: var(--where); }
.icon-button { width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: var(--surface); cursor: pointer; flex: 0 0 auto; }
.panel-close { position: absolute; z-index: 8; top: 9px; right: 12px; width: 44px; height: 44px; }
.panel-close svg { width: .95rem; height: .95rem; }

.clear-all, .section-clear { min-height: 44px; padding: 4px 0; border: 0; background: transparent; color: var(--green); cursor: pointer; font-size: .72rem; font-weight: 500; text-decoration: underline; text-underline-offset: 4px; }
.route-section, .geography-browser { padding: 20px; border: 2px solid rgba(13,92,99,.32); border-radius: 18px; background: var(--mist); }
.section-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 20px; }
.section-heading h3 { margin-bottom: 6px; font-size: clamp(1.28rem, 1.7vw, 1.52rem); font-weight: 450; letter-spacing: -.02em; }
.section-heading p { margin: 0; color: var(--muted); font-size: .8rem; }
.route-composer { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 42px minmax(0, 1fr) 42px minmax(0, 1fr); align-items: center; gap: 3px; padding: 15px 17px; border: 2px solid rgba(13,92,99,.24); border-radius: 14px; background: var(--paper); }
.route-clear { margin-left: auto; }
.route-step { position: relative; min-width: 0; }
.route-step > span { display: block; margin-bottom: 5px; color: var(--where); font-size: .7rem; font-weight: 550; letter-spacing: .06em; text-transform: uppercase; }
.route-step strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 500; }
.route-arrow { justify-self: center; color: #789086; }
.route-button { min-height: 44px; max-width: 100%; padding: 0; border: 0; background: transparent; font-size: .9rem; font-weight: 500; display: inline-flex; align-items: center; gap: 6px; cursor: pointer; text-align: left; }
.route-button svg { width: .9rem; height: .9rem; }
.nearby-inline { min-height: 44px; width: max-content; max-width: 100%; margin: -4px 0 -8px; padding: 0; display: inline-flex; align-items: center; gap: 6px; border: 0; background: transparent; color: #55716e; cursor: pointer; font-size: .68rem; line-height: 1.2; }
.nearby-switch { width: 27px; height: 15px; padding: 2px; display: inline-flex; align-items: center; border-radius: 999px; background: #b8c7c5; transition: background .2s ease; }
.nearby-switch i { width: 11px; height: 11px; display: block; border-radius: 50%; background: white; box-shadow: 0 1px 3px rgba(20,49,48,.24); transform: translateX(0); transition: transform .2s ease; }
.nearby-inline[aria-pressed="true"] { color: var(--where); }
.nearby-inline[aria-pressed="true"] .nearby-switch { background: var(--where); }
.nearby-inline[aria-pressed="true"] .nearby-switch i { transform: translateX(12px); }
.route-menu { position: absolute; z-index: 8; top: calc(100% + 11px); left: -12px; min-width: 210px; padding: 8px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); box-shadow: 0 18px 44px rgba(30, 43, 37, .18); }
.endpoint-menu { width: min(350px, 82vw); padding: 10px; }
.endpoint-menu-right { left: auto; right: -12px; }
.route-menu button { width: 100%; min-height: 44px; padding: 10px 11px; border: 0; border-radius: 10px; background: transparent; text-align: left; cursor: pointer; }
.route-menu button:hover { background: var(--wash); }
.route-menu button strong, .route-menu button small { display: block; }
.route-menu button small { margin-top: 3px; color: var(--muted); font-size: .74rem; }
.endpoint-search { display: flex; align-items: center; margin-bottom: 8px; padding: 7px 10px; border: 1px solid var(--line); border-radius: 10px; }
.endpoint-search input { min-width: 0; flex: 1; border: 0; outline: 0; }
.endpoint-zone-suggestions { margin: 0 0 8px; padding: 5px; border: 1px solid #c8d3cd; border-radius: 10px; background: #f3f7f4; }
.route-menu .endpoint-zone-suggestions button { padding: 9px; }
.endpoint-zone-suggestions button + button { border-top: 1px solid var(--line); }
.live-endpoint-options { margin-top: 3px; }
.live-endpoint-options button + button { border-top: 1px solid rgba(102,117,126,.13); }
.endpoint-empty { margin: 7px 9px 9px; color: var(--muted); font-size: .72rem; line-height: 1.4; }
.reference-loading { min-width: 240px; padding: 20px; color: var(--muted); font-size: .78rem; }
.reference-loading.is-error { color: #8c4f37; }
.menu-kicker { margin: 11px 10px 4px; color: var(--quiet); font-size: .68rem; font-weight: 550; letter-spacing: .09em; text-transform: uppercase; }
.near-me-panel { margin: 2px 2px 10px; padding: 10px; border: 1px solid var(--line); border-radius: 10px; background: var(--wash); text-align: center; }
.route-menu .near-me-panel .location-button { padding: 8px 10px; border: 1px solid var(--green); background: white; color: var(--green); text-align: center; font-weight: 500; }
.near-me-panel > span { display: block; margin: 7px 0; color: var(--quiet); font-size: .7rem; }
.near-me-fallback { display: flex; gap: 6px; }
.near-me-fallback input { min-width: 0; flex: 1; padding: 7px 9px; border: 1px solid #b8c2bc; border-radius: 8px; background: white; }
.route-menu .near-me-fallback button { width: auto; padding: 7px 10px; background: var(--green); color: white; font-weight: 500; }
#location-status { display: block; margin-top: 7px; color: var(--muted); font-size: .72rem; text-align: left; }
.endpoint-tolerance { margin-top: 8px; padding: 10px 2px 2px; border-top: 1px solid var(--line); }
.endpoint-tolerance > span { display: block; margin: 0 4px 7px; color: var(--quiet); font-size: .68rem; font-weight: 750; letter-spacing: .07em; text-transform: uppercase; }
.endpoint-tolerance > div { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 3px; border-radius: 10px; background: var(--wash); }
.route-menu .endpoint-tolerance button { padding: 7px 8px; border: 1px solid transparent; border-radius: 8px; text-align: center; font-size: .74rem; }
.route-menu .endpoint-tolerance button[aria-pressed="true"] { border-color: #c5cec9; background: white; color: var(--green); box-shadow: 0 1px 4px rgba(24,63,52,.08); font-weight: 750; }
.journey-menu { right: -12px; left: auto; width: min(440px, calc(100vw - 44px)); padding: 10px; }
.journey-menu > .menu-kicker { display: block; margin: 3px 4px 8px; }
.journey-search { margin-bottom: 0; }
.journey-search #add-place { width: auto; padding: 6px 10px; background: var(--green); color: white; font-weight: 500; }
.resolver-suggestions { margin-top: 6px; padding: 6px; border: 1px solid var(--line); border-radius: 12px; background: white; box-shadow: 0 12px 30px rgba(25, 38, 32, .1); }
.resolver-suggestions button { width: 100%; padding: 9px 10px; display: flex; justify-content: space-between; gap: 20px; border: 0; border-radius: 8px; background: transparent; text-align: left; cursor: pointer; }
.resolver-suggestions button:hover { background: var(--wash); }
.resolver-suggestions small { color: var(--muted); }
.place-resolution { margin-top: 10px; padding: 14px 15px; border-left: 3px solid var(--gold); border-radius: 4px 12px 12px 4px; background: #f5f0e5; line-height: 1.45; }
.place-resolution strong, .place-resolution span { display: block; }
.place-resolution span { margin-top: 3px; color: var(--muted); font-size: .86rem; }
.place-resolution .resolution-actions { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 11px; }
.place-resolution button { padding: 7px 11px; border: 1px solid #a7b3ac; border-radius: 999px; background: white; cursor: pointer; font-size: .8rem; }
.land-stay-card { margin-top: 10px; padding: 13px; display: flex; justify-content: space-between; align-items: center; gap: 16px; border: 1px solid #cdb88f; border-radius: 12px; background: white; }
.land-stay-card span { margin: 0; }
.land-stay-card select { padding: 7px 9px; border: 1px solid var(--line); border-radius: 8px; background: white; }

.time-designer { padding: 20px; border: 2px solid rgba(183,108,45,.34); border-radius: 18px; background: #fffcf9; }
.time-designer .section-heading h3 { color: #78451d; }
.time-designer .section-clear { color: #884c20; }
.date-range-question { min-width: 0; margin: 0; padding: 15px; border: 1px solid rgba(183,108,45,.3); border-radius: 14px; background: white; }
.date-range-question legend { padding: 0 5px; color: #78451d; font-size: .86rem; font-weight: 500; }
.time-composer { display: grid; grid-template-columns: minmax(0,1fr) 48px minmax(0,1fr); align-items: center; }
.time-field { min-width: 0; }
.time-field-heading { min-height: 24px; margin-bottom: 6px; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.time-field-label { display: block; color: #78451d; font-size: .72rem; font-weight: 550; letter-spacing: .04em; text-transform: uppercase; }
.boundary-state { padding: 3px 7px; border-radius: 999px; font-size: .58rem; font-weight: 650; letter-spacing: .02em; white-space: nowrap; }
#start-boundary-state { background: var(--where-soft); color: var(--where); }
#end-boundary-state { background: #ffe2ca; color: #854619; }
.date-field-trigger { width: 100%; min-height: 46px; padding: 9px 11px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border: 1px solid rgba(183,108,45,.3); border-radius: 10px; background: #fffcf9; color: var(--ink); cursor: pointer; font: inherit; font-size: .94rem; text-align: left; transition: border-color .18s ease, background .18s ease, box-shadow .18s ease; }
.date-field-trigger svg { width: 18px; height: 18px; flex: 0 0 auto; fill: none; stroke: #884c20; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
.date-field-trigger.is-placeholder { color: var(--quiet); }
.date-field-trigger[aria-expanded="true"] { box-shadow: 0 0 0 3px rgba(183,108,45,.13); }
#start-date-trigger.is-active-boundary { border-color: var(--where); background: var(--where-soft); box-shadow: 0 0 0 3px rgba(13,92,99,.11); }
#end-date-trigger.is-active-boundary { border-color: var(--when); background: #fff0e3; box-shadow: 0 0 0 3px rgba(183,108,45,.13); }
.time-equation { color: #a16331; text-align: center; font-size: 1.05rem; }
.time-resolution { margin: 11px 2px 0; color: var(--muted); font-size: .78rem; line-height: 1.45; }
.availability-shortcuts { margin-top: 12px; display: flex; align-items: center; gap: 10px; }
.availability-shortcuts > span { flex: 0 0 auto; color: #78451d; font-size: .7rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.availability-shortcuts > div { min-width: 0; display: flex; gap: 6px; overflow-x: auto; }
.availability-shortcuts button { min-height: 42px; padding: 6px 11px; flex: 0 0 auto; border: 1px solid rgba(183,108,45,.24); border-radius: 9px; background: white; color: var(--ink); cursor: pointer; }
.availability-shortcuts strong, .availability-shortcuts small { display: block; }
.availability-shortcuts strong { font-size: .7rem; font-weight: 550; }
.availability-shortcuts small { margin-top: 2px; color: var(--muted); font-size: .58rem; }
.availability-shortcuts button:hover { border-color: var(--when); background: var(--when-soft); }
.availability-shortcuts button:disabled { opacity: .45; cursor: not-allowed; }
.availability-picker { margin-top: 12px; padding: 14px; border: 1px solid rgba(183,108,45,.3); border-top: 3px solid var(--when); border-radius: 14px; background: white; box-shadow: 0 14px 34px rgba(96,50,20,.1); }
.availability-picker.is-choosing-start { border-top-color: var(--where); }
.availability-picker.is-choosing-end { border-top-color: var(--when); }
.availability-picker-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.availability-picker-heading .eyebrow { color: #995623; font-size: .6rem; }
.availability-picker-heading h4 { margin: 2px 0 0; color: #713f1a; font-size: 1rem; font-weight: 550; }
.availability-picker-help { margin: 4px 0 10px; color: var(--muted); font-size: .7rem; }
.availability-months { padding: 2px 1px 8px; display: flex; gap: 6px; overflow-x: auto; scroll-snap-type: x proximity; }
.availability-month { min-width: 116px; min-height: 52px; padding: 7px 8px; flex: 0 0 auto; border: 1px solid rgba(128,99,31,.2); border-radius: 9px; background: #fffdfa; color: var(--ink); cursor: pointer; scroll-snap-align: center; }
.availability-month strong, .availability-month small { display: block; }
.availability-month strong { font-size: .7rem; font-weight: 600; }
.availability-month small { margin-top: 3px; color: var(--muted); font-size: .58rem; }
.availability-month .availability-month-pool { height: 5px; overflow: hidden; border-radius: 999px; background: #dce8e5; }
.availability-month .availability-month-pool > i { height: 100%; display: block; border-radius: inherit; background: linear-gradient(90deg,#c89b3c,#0d5c63); }
.availability-month.is-in-range { background: #f7efd9; }
.availability-month.is-active { border-color: #8d6d25; box-shadow: inset 0 0 0 1px #8d6d25; }
.availability-month.has-no-signal small { color: #7c7363; }
.availability-signal-note { margin: 1px 2px 11px; color: var(--quiet); font-size: .62rem; line-height: 1.35; }
.availability-calendar { max-width: 620px; margin: 0 auto; padding: 10px 12px 12px; border: 1px solid rgba(128,99,31,.16); border-radius: 11px; background: #fffdfa; }
.availability-calendar-heading { margin-bottom: 6px; display: grid; grid-template-columns: 34px 1fr 34px; align-items: center; }
.availability-calendar-heading h5 { margin: 0; color: #5f4818; font-size: .82rem; font-weight: 600; text-align: center; }
.availability-calendar-heading button { width: 34px; height: 32px; border: 0; border-radius: 7px; background: transparent; color: #80631f; cursor: pointer; }
.availability-calendar-heading button:hover { background: var(--when-soft); }
.availability-calendar-heading button:disabled { opacity: .28; cursor: default; }
.availability-weekdays, .availability-days { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 3px; }
.availability-weekdays span { padding: 3px 0; color: var(--quiet); font-size: .56rem; text-align: center; text-transform: uppercase; }
.availability-day { min-height: 34px; border: 0; border-radius: 7px; background: transparent; color: var(--ink); cursor: pointer; font-size: .7rem; }
.availability-day:hover { background: var(--when-soft); }
.availability-day.is-in-range { background: #f7efd9; }
.availability-day.is-boundary { background: #7a5f22; color: white; font-weight: 600; }
.availability-day[aria-current="date"]:not(.is-boundary) { box-shadow: inset 0 0 0 1px #a58031; }
.availability-day:disabled { color: #b7b2a8; cursor: not-allowed; opacity: .55; }
.journey-span-question { min-width: 0; margin: 16px 0 0; padding: 15px; border: 1px solid rgba(183,108,45,.27); border-radius: 14px; background: #fff8f2; }
.journey-span-question legend { padding: 0 5px; color: #78451d; font-size: .86rem; font-weight: 500; }
.journey-span-question > p { margin: 0 0 11px; color: var(--muted); font-size: .7rem; }
.journey-span-choices { display: flex; flex-wrap: wrap; gap: 5px; }
.journey-span-choices button { min-width: 138px; flex: 0 1 148px; }
.journey-span-choices button:last-child { flex-basis: 184px; }
.journey-span-choices button[aria-pressed="true"] { border-color: #8d6d25; background: #7a5f22; }

.stay-designer, .stay-timing { padding: 20px; border: 2px solid rgba(120,107,131,.34); border-radius: 18px; background: #fdfcfd; }
.stay-timing { margin-top: 16px; }
.stay-designer .section-heading h3, .stay-timing .section-heading h3 { color: #594f62; }
.stay-designer .section-clear { color: var(--stays); }
.stay-composer { display: grid; grid-template-columns: 1.08fr .92fr; gap: 12px; }
.stay-place-field, .stay-length-question { min-width: 0; margin: 0; padding: 15px; border: 1px solid rgba(120,107,131,.28); border-radius: 14px; background: white; }
.stay-place-field { position: relative; }
.stay-place-field > label, .stay-length-question legend { display: block; padding: 0 5px; color: #594f62; font-size: .8rem; font-weight: 500; }
.stay-place-field > label { margin: 0 0 9px; padding: 0; }
.stay-place-input { min-height: 46px; padding: 5px 5px 5px 11px; display: flex; align-items: center; gap: 7px; border: 1px solid rgba(120,107,131,.34); border-radius: 10px; background: #fdfcfd; }
.stay-place-input input { min-width: 0; flex: 1; border: 0; outline: 0; background: transparent; }
.stay-place-input button { min-height: 34px; padding: 7px 12px; border: 0; border-radius: 8px; background: var(--stays); color: white; cursor: pointer; font-size: .76rem; }
.stay-place-field > p { margin: 9px 1px 0; color: var(--muted); font-size: .72rem; line-height: 1.4; }
.stay-suggestions { position: absolute; z-index: 4; width: min(430px, calc(100vw - 80px)); }
.stay-length-question .compact-choices { grid-template-columns: repeat(4, minmax(0,1fr)); }
.stay-length-question .choice-pills button[aria-pressed="true"] { border-color: var(--stays); background: var(--stays); }
.stay-mode-choices { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 8px; }
.stay-mode-choices button { min-height: 92px; padding: 14px; border: 1px solid rgba(120,107,131,.28); border-radius: 13px; background: white; cursor: pointer; text-align: left; }
.stay-mode-choices strong, .stay-mode-choices small { display: block; }
.stay-mode-choices strong { font-size: .84rem; font-weight: 500; }
.stay-mode-choices small { margin-top: 6px; color: var(--muted); font-size: .7rem; line-height: 1.35; }
.stay-mode-choices button[aria-pressed="true"] { border-color: var(--stays); background: var(--stays); color: white; }
.stay-mode-choices button[aria-pressed="true"] small { color: rgba(255,255,255,.75); }
.stay-date-editor { margin-top: 11px; padding: 14px; display: grid; grid-template-columns: minmax(0,1fr) 36px minmax(0,1fr); align-items: end; gap: 7px; border: 1px solid rgba(120,107,131,.28); border-radius: 13px; background: white; }
.stay-date-editor > span { align-self: center; color: var(--stays); text-align: center; }
.stay-date-field label { display: block; margin-bottom: 7px; color: #594f62; font-size: .7rem; font-weight: 550; letter-spacing: .04em; text-transform: uppercase; }
.stay-date-field input { width: 100%; min-height: 44px; padding: 8px 10px; border: 1px solid rgba(120,107,131,.3); border-radius: 9px; background: #fdfcfd; outline: 0; }
.stay-date-field input:focus { border-color: var(--stays); box-shadow: 0 0 0 3px rgba(120,107,131,.11); }
.stay-timing-summary { margin-top: 11px; padding: 13px 14px; border-left: 3px solid var(--stays); border-radius: 4px 11px 11px 4px; background: white; }
.stay-timing-summary strong, .stay-timing-summary span { display: block; }
.stay-timing-summary strong { color: #594f62; font-size: .84rem; font-weight: 500; }
.stay-timing-summary span { margin-top: 4px; color: var(--muted); font-size: .74rem; line-height: 1.45; }
.stay-timing-summary button { margin-top: 9px; padding: 6px 0; border: 0; border-bottom: 1px solid currentColor; background: transparent; color: var(--stays); cursor: pointer; font-size: .72rem; }

.journey-tags span { padding: 8px 12px; border: 1px solid var(--line); border-radius: 999px; background: var(--paper); color: #45544d; font-size: .84rem; }

.geography-browser { margin-top: 16px; background: var(--paper); }
.browser-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 20px; }
.browser-heading h3 { margin-bottom: 6px; font-size: clamp(1.28rem, 1.7vw, 1.52rem); font-weight: 450; letter-spacing: -.02em; }
.browser-heading p { margin: 0; color: var(--muted); font-size: .8rem; }
.browser-actions { display: flex; align-items: center; gap: 14px; }
.rail-controls { display: flex; gap: 6px; }
.rail-controls button { width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 50%; background: white; cursor: pointer; }
.zone-rail { display: flex; gap: 10px; overflow-x: auto; padding: 2px 2px 12px; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: #9cadaa transparent; }
.zone-card { position: relative; min-width: 202px; height: 140px; padding: 14px; overflow: hidden; display: flex; align-items: flex-start; justify-content: flex-end; scroll-snap-align: start; border: 2px solid rgba(13,92,99,.3); border-radius: 14px; color: var(--ink); background: linear-gradient(125deg, #dcebea, #eef2ed 58%, #eee5d8); text-align: left; cursor: pointer; box-shadow: none; transition: transform 150ms ease, border-color 200ms ease, background 200ms ease; }
.zone-card:nth-child(3n+2) { background: linear-gradient(125deg, #e4ece9, #e9edf0 55%, #e9e1d6); }
.zone-card:nth-child(3n) { background: linear-gradient(125deg, #e9e2d8, #e7ece9 54%, #dbe9e8); }
.zone-card:hover { transform: translateY(-2px); border-color: rgba(13,92,99,.58); background: #dcecea; }
.zone-card-copy { position: absolute; z-index: 1; right: 10px; bottom: 9px; left: 10px; padding: 8px 10px; border: 1px solid rgba(255,255,255,.84); border-radius: 9px; background: rgba(255,255,255,.79); backdrop-filter: blur(4px); text-align: left; box-shadow: 0 2px 10px rgba(20,61,70,.06); }
.zone-card strong, .zone-card small { display: block; }
.zone-card strong { font-size: .9rem; font-weight: 500; line-height: 1.18; }
.zone-card small { margin-top: 3px; color: var(--muted); font-size: .68rem; line-height: 1.2; }
.zone-card.great-crossings-zone { background: linear-gradient(125deg, #d8e8e7, #ebe9df 58%, #e1d3bf); }
.zone-card[aria-pressed="true"] { border-color: var(--where); background: #d9ebe8; box-shadow: inset 0 0 0 1px var(--where); }
.zone-card.has-selection { border-color: var(--gold); box-shadow: inset 0 0 0 1px var(--gold); }
.zone-card.has-selection[aria-pressed="true"] { border-color: var(--where); box-shadow: inset 0 0 0 1px var(--where), 0 0 0 2px var(--gold); }
.zone-selected-indicator { position: absolute; z-index: 2; top: 9px; right: 9px; min-width: 24px; height: 24px; padding: 0 7px; display: inline-flex; align-items: center; justify-content: center; gap: 3px; border-radius: 999px; background: var(--gold); color: white; box-shadow: none; font-size: .7rem; font-weight: 550; }
.zone-selected-indicator span { font-size: .76rem; }
.region-panel { margin-top: 2px; padding: 16px 0 0; border: 0; border-top: 1px solid #dbe4e2; border-radius: 0; background: transparent; }
.region-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 11px; }
.region-panel-head h4 { margin: 0; font-family: inherit; font-size: 1.12rem; font-weight: 450; letter-spacing: -.015em; }
.region-panel-tools { display: flex; align-items: center; gap: 9px; }
.region-panel-tools span { color: var(--muted); font-size: .8rem; }
.region-panel-tools button { padding: 5px 0; border: 0; border-bottom: 1px solid currentColor; background: transparent; color: var(--green); cursor: pointer; font-size: .72rem; font-weight: 500; }
.region-panel-tools button:disabled { border-bottom-color: transparent; color: #9da7a2; cursor: default; }
.region-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.region-pill { min-height: 44px; padding: 8px 12px; display: inline-flex; align-items: center; gap: 7px; border: 1px solid var(--line); border-radius: 999px; background: white; color: var(--ink); cursor: pointer; transition: border-color 150ms ease, background 200ms ease, transform 150ms ease; }
.region-pill:hover { transform: translateY(-1px); border-color: #81968b; }
.region-pill .region-mark { width: 15px; height: 15px; flex: 0 0 auto; color: #69817d; stroke-width: 1.45; }
.region-pill strong { font-size: .78rem; font-weight: 450; white-space: nowrap; }
.region-pill small { padding-left: 7px; border-left: 1px solid #dde2de; color: var(--muted); font-size: .68rem; white-space: nowrap; }
.region-pill[aria-pressed="true"] { border-color: var(--green); background: var(--green); color: white; box-shadow: 0 3px 10px rgba(24,63,52,.16); }
.region-pill[aria-pressed="true"] small { border-color: rgba(255,255,255,.3); color: rgba(255,255,255,.76); }
.region-pill[aria-pressed="true"] .region-mark { color: white; }
.region-pill.is-unavailable, .line-pill.is-unavailable { opacity: .46; cursor: not-allowed; }
.results-experience { margin-top: 0; }
.results-toolbar { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 18px; }
.results-toolbar h2 { margin-bottom: 5px; color: var(--deep-ocean); }
.results-toolbar .eyebrow { margin-bottom: 7px; color: var(--where); }
.results-toolbar button { min-height: 44px; padding: 10px 16px; border: 1px solid rgba(13,92,99,.26); border-radius: 999px; background: var(--surface); color: var(--green); cursor: pointer; font-weight: 550; }
.results-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.search-progress { margin: 0; padding: 0 24px 16px; color: var(--ink); font-size: .85rem; }
.diagnostic-handoff { margin: -6px 0 16px auto; width: min(100%, 620px); border: 1px solid var(--line); border-radius: 13px; background: var(--surface); }
.diagnostic-handoff > summary { padding: 10px 13px; cursor: pointer; color: var(--muted); font-size: .76rem; font-weight: 500; }
.diagnostic-handoff[open] { padding: 0 13px 13px; }
.diagnostic-handoff[open] > summary { margin: 0 -13px 11px; border-bottom: 1px solid var(--line); }
.diagnostic-handoff label { display: block; margin: 12px 0 6px; color: var(--muted); font-size: .72rem; }
.diagnostic-handoff textarea { width: 100%; resize: vertical; padding: 9px 10px; border: 1px solid var(--line); border-radius: 9px; background: white; color: var(--ink); font: .7rem/1.45 ui-monospace, SFMono-Regular, Menlo, monospace; }
.diagnostic-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.diagnostic-actions button, .diagnostic-link { padding: 8px 11px; border: 1px solid var(--line); border-radius: 999px; background: white; color: var(--green); cursor: pointer; font-size: .72rem; text-decoration: none; }
#diagnostic-status { color: var(--muted); font-size: .72rem; }
.results-notices { display: grid; gap: 8px; margin-bottom: 14px; }
.results-notice { padding: 13px 15px; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; border: 1px solid rgba(13,92,99,.28); border-radius: 13px; background: var(--wash); color: var(--ink); font-size: .82rem; }
.results-notice strong, .results-notice span { display: block; }
.results-notice span { color: var(--muted); }
.results-notice button { margin-left: auto; padding: 7px 11px; border: 1px solid currentColor; border-radius: 999px; background: white; color: var(--green); cursor: pointer; }
.results-notice.is-warning { border-color: rgba(200,155,60,.45); background: #fffaf0; }
.results-notice.is-error { border-color: rgba(150,70,65,.38); background: #fff7f5; }
.zero-result-intro { display: block; }
.zero-result-intro strong { margin-bottom: 3px; }
.zero-result-reason { justify-content: space-between; }
.zero-result-reason-copy { min-width: 0; flex: 1 1 360px; display: grid; gap: 3px; }
.zero-result-reason-copy small { color: var(--green); font-size: .66rem; font-weight: 650; letter-spacing: .04em; text-transform: uppercase; }
.zero-result-reason-copy strong, .zero-result-reason-copy span { display: block; }
.zero-result-actions { margin-left: auto; display: flex; flex-wrap: wrap; gap: 7px; }
.zero-result-actions button { margin-left: 0; }
.preflight-notice > strong { flex-basis: 100%; font-size: 1rem; }
.preflight-notice b { color: var(--ink); }
.results-browse-tools { margin-bottom: 18px; padding: 14px; display: flex; align-items: flex-start; gap: 12px; border: 1px solid rgba(13,92,99,.17); border-radius: 15px; background: #f7faf9; }
.results-sort-control { display: grid; gap: 4px; flex: 0 0 220px; }
.results-sort-control label { color: var(--muted); font-size: .7rem; font-weight: 650; letter-spacing: .06em; text-transform: uppercase; }
.results-sort-control select { min-height: 44px; padding: 8px 34px 8px 12px; border: 1px solid rgba(13,92,99,.27); border-radius: 10px; background: white; color: var(--ink); font: inherit; font-size: .82rem; }
.results-sort-control > small { color: var(--muted); font-size: .65rem; line-height: 1.35; }
.results-filters { flex: 1; min-width: 0; }
.results-filters > summary { min-height: 44px; padding: 10px 12px; display: flex; align-items: center; gap: 7px; border: 1px solid rgba(13,92,99,.27); border-radius: 10px; background: white; color: var(--green); cursor: pointer; font-size: .82rem; font-weight: 600; list-style: none; }
.results-filters > summary::-webkit-details-marker { display: none; }
.results-filters > summary::after { content: "+"; margin-left: auto; font-size: 1rem; }
.results-filters[open] > summary::after { content: "−"; }
#active-filter-count:empty { display: none; }
#active-filter-count { min-width: 20px; height: 20px; padding: 0 6px; display: inline-grid; place-items: center; border-radius: 999px; background: var(--green); color: white; font-size: .62rem; }
.results-filter-panel { margin-top: 9px; padding: 14px; border: 1px solid var(--line); border-radius: 13px; background: white; }
.results-filter-heading { margin-bottom: 13px; display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; }
.results-filter-heading strong, .results-filter-heading span { display: block; }
.results-filter-heading strong { color: var(--deep-ocean); font-size: .88rem; }
.results-filter-heading span { margin-top: 4px; color: var(--muted); font-size: .72rem; line-height: 1.4; }
.results-filter-heading button { min-height: 40px; padding: 7px 0; border: 0; border-bottom: 1px solid currentColor; background: transparent; color: var(--green); cursor: pointer; font-size: .74rem; }
.results-filter-grid { display: grid; grid-template-columns: repeat(5, minmax(125px,1fr)); gap: 15px; }
.results-filter-grid fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.results-filter-grid legend { margin-bottom: 8px; color: var(--ink); font-size: .75rem; font-weight: 650; }
.filter-options { max-height: 164px; display: grid; align-content: start; gap: 4px; overflow: auto; }
.filter-options label { min-height: 36px; padding: 7px 6px; display: grid; grid-template-columns: 18px minmax(0,1fr) auto; align-items: center; gap: 7px; border-radius: 7px; color: var(--muted); cursor: pointer; font-size: .72rem; line-height: 1.3; }
.filter-options label:hover { background: var(--wash); color: var(--ink); }
.filter-options input { width: 16px; height: 16px; margin: 0; accent-color: var(--green); }
.filter-options small { color: var(--quiet); font-size: .67rem; }
.filter-options .filter-empty { color: var(--quiet); font-size: .65rem; }
.results-exclusions { margin: -3px 0 15px; padding: 10px 12px; display: flex; align-items: center; flex-wrap: wrap; gap: 7px; border: 1px solid rgba(150,70,65,.22); border-radius: 12px; background: #fff9f7; }
.results-exclusions[hidden] { display: none; }
.results-exclusions > strong { margin-right: 2px; color: #795650; font-size: .72rem; }
.exclusion-chip { min-height: 36px; padding: 6px 7px 6px 10px; display: inline-flex; align-items: center; gap: 7px; border: 1px solid rgba(150,70,65,.25); border-radius: 999px; background: white; color: #795650; font-size: .7rem; }
.exclusion-chip button, .clear-exclusions { border: 0; background: transparent; color: inherit; cursor: pointer; }
.exclusion-chip button { width: 26px; height: 26px; padding: 0; border-radius: 50%; font-size: .9rem; }
.clear-exclusions { min-height: 36px; margin-left: auto; padding: 6px 0; border-bottom: 1px solid currentColor; font-size: .7rem; }
.results-layout { display: grid; grid-template-columns: minmax(0,1fr); gap: 20px; align-items: start; }
.journey-list { display: grid; gap: 15px; }
.result-group { display: grid; gap: 12px; }
.result-group + .result-group { margin-top: 10px; }
.result-group > header,
.result-group > summary { min-height: 70px; padding: 14px 17px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border: 1px solid rgba(13,92,99,.2); border-radius: 15px; background: #f7faf9; color: var(--deep-ocean); }
.result-group > header span,
.result-group > summary span { min-width: 0; display: grid; gap: 3px; }
.result-group > header strong,
.result-group > summary strong { font-size: .92rem; font-weight: 650; }
.result-group > header small,
.result-group > summary small { color: var(--muted); font-size: .72rem; font-weight: 450; line-height: 1.4; }
.result-group > header em,
.result-group > summary em { flex: 0 0 auto; color: var(--green); font-size: .72rem; font-style: normal; font-weight: 650; white-space: nowrap; }
.result-group-cards { display: grid; gap: 15px; }
.result-group.is-match > header { border-color: rgba(13,92,99,.35); background: #eef7f5; }
.result-group.is-close_alternative > header { border-color: rgba(200,155,60,.34); background: #fffbf2; }
.result-group.is-further { border: 1px solid rgba(13,92,99,.17); border-radius: 15px; background: #fafcfb; }
.result-group.is-further > summary { border: 0; background: transparent; cursor: pointer; list-style: none; }
.result-group.is-further > summary::-webkit-details-marker { display: none; }
.result-group.is-further > summary::after { content: "+"; width: 28px; height: 28px; flex: 0 0 28px; display: grid; place-items: center; border: 1px solid rgba(13,92,99,.24); border-radius: 50%; color: var(--green); font-size: 1rem; }
.result-group.is-further[open] > summary::after { content: "−"; }
.result-group.is-further > .result-group-cards { padding: 0 12px 12px; }
.journey-card { display: grid; grid-template-columns: 44px minmax(0, 1.45fr) minmax(300px, .8fr) 108px; align-items: stretch; column-gap: 20px; row-gap: 11px; padding: 22px; border: 1px solid rgba(13,92,99,.17); border-radius: 18px; background: #fff; cursor: pointer; box-shadow: 0 2px 9px rgba(20,61,70,.035); transition: border-color 150ms ease, box-shadow 150ms ease, transform 150ms ease; }
.journey-card:hover { border-color: rgba(13,92,99,.38); box-shadow: 0 8px 24px rgba(20,61,70,.08); transform: translateY(-2px); }
.journey-card:focus-visible { outline: 3px solid rgba(13,92,99,.28); outline-offset: 3px; border-color: var(--green); }
.journey-card.is-selected { border-color: var(--green); background: #fbfdfc; box-shadow: 0 7px 24px rgba(13,92,99,.1); }
.journey-card-index { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 12px; background: var(--wash); color: var(--green); font-size: .75rem; font-weight: 550; letter-spacing: .07em; }
.journey-card-copy { min-width: 0; }
.journey-card-primary { align-self: center; }
.journey-card-supporting { min-width: 0; padding-left: 18px; display: flex; flex-direction: column; justify-content: center; border-left: 1px solid var(--line); }
.journey-card-kicker { margin-bottom: 7px; padding-right: 1px; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.journey-card-kicker .eyebrow { margin: 0 1px 0 0; flex: 0 0 auto; color: var(--green); font-size: .67rem; text-align: right; white-space: nowrap; }
.journey-card-date { display: inline-flex; align-items: center; gap: 7px; color: var(--deep-ocean); font-size: .84rem; font-weight: 650; white-space: nowrap; }
.journey-card-date svg { width: 15px; height: 15px; flex: 0 0 15px; fill: none; stroke: var(--green); stroke-width: 1.8; }
.journey-card h3 { margin-bottom: 10px; font-family: inherit; font-weight: 520; font-size: 1.28rem; letter-spacing: -.025em; }
.journey-card-route { display: flex; align-items: baseline; flex-wrap: wrap; gap: 3px 6px; line-height: 1.18; }
.journey-card-route i { color: var(--quiet); font-style: normal; font-size: .78rem; }
.journey-card-route small { color: var(--green); font-size: .78rem; font-weight: 550; letter-spacing: 0; }
.journey-card-route small em { color: var(--quiet); font-style: normal; font-weight: 450; }
.journey-pvsa-label { width: fit-content; margin: -2px 0 10px; padding: 5px 9px; display: inline-flex; align-items: center; gap: 7px; border: 1px solid #d9aa5a; border-radius: 3px; background: #fff7e8; color: #765011; font-size: .72rem; font-weight: 700; }
.journey-pvsa-label span { width: 15px; height: 15px; display: inline-grid; place-items: center; border-radius: 50%; background: #98631a; color: #fff; font-size: .66rem; line-height: 1; }
.journey-card-lines { margin: -3px 0 10px; color: var(--muted); font-size: .73rem; font-weight: 500; }
.journey-card-ship-sequence { margin: 0 0 11px; display: flex; align-items: center; flex-wrap: wrap; gap: 3px; }
.ship-pill { min-height: 32px; padding: 4px 9px 4px 5px; display: inline-flex; align-items: center; gap: 6px; border: 1px solid rgba(13,92,99,.2); border-radius: 999px; background: #f6faf9; color: var(--deep-ocean); font-size: .67rem; font-weight: 600; }
.ship-pill-icon { width: 22px; height: 22px; display: inline-grid; place-items: center; border-radius: 50%; background: #fff; color: var(--green); }
.ship-pill-icon svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.ship-sequence-connector { width: 34px; min-width: 34px; flex: 0 0 34px; height: 22px; position: relative; display: block; }
.ship-sequence-connector::before { content: ""; width: 24px; position: absolute; top: 7px; left: 50%; border-top: 1px solid #b5c8c5; box-shadow: 0 5px 0 #cbd8d6; transform: translateX(-50%); }
.ship-sequence-connector::after { content: ""; width: 7px; height: 7px; position: absolute; top: 6px; left: calc(50% + 4px); border-top: 1.5px solid var(--green); border-right: 1.5px solid var(--green); transform: rotate(45deg); }
.ship-sequence-connector i { width: 5px; height: 5px; position: absolute; z-index: 1; top: 8px; left: calc(50% + 1px); border-top: 1px solid var(--gold); border-right: 1px solid var(--gold); background: #fff; transform: rotate(45deg); }
.ship-sequence-connector.is-stay-aboard::before { content: "∞"; width: auto; top: -1px; left: 50%; border: 0; box-shadow: none; color: var(--green); font-family: Georgia, serif; font-size: 1.35rem; font-weight: 600; line-height: 1; transform: translateX(-50%); }
.ship-sequence-connector.is-stay-aboard::after,
.ship-sequence-connector.is-stay-aboard i { display: none; }
.stay-sequence-pill { margin: 0 3px; padding: 5px 8px; display: inline-flex; align-items: center; gap: 4px; border: 1px solid rgba(120,107,131,.34); border-radius: 7px; background: var(--stays-soft); color: #65596d; font-size: .67rem; font-weight: 600; }
.stay-sequence-pill::before, .stay-sequence-pill::after { content: ""; width: 6px; height: 1px; margin: 0 1px; background: rgba(120,107,131,.45); }
.stay-sequence-pill svg { width: 11px; height: 11px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.journey-card-metrics { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 8px; margin-bottom: 16px; color: var(--muted); font-size: .69rem; line-height: 1.3; }
.journey-card-metrics span { padding-right: 8px; border-right: 1px solid var(--line); }
.journey-card-metrics span:last-child { border-right: 0; }
.journey-card-metrics strong { display: block; margin-bottom: 3px; color: var(--deep-ocean); font-size: 1rem; font-weight: 600; }
.journey-fit { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 8px; }
.journey-fit span { color: var(--green); font-size: .65rem; font-weight: 500; }
.journey-fit span + span::before { content: "·"; margin-right: 5px; color: var(--quiet); }
.view-journey { grid-column: 4; min-height: 44px; align-self: center; justify-self: end; padding: 10px 0 7px; display: inline-flex; align-items: center; gap: 7px; border-bottom: 1px solid currentColor; color: var(--green); font-size: .76rem; font-weight: 650; white-space: nowrap; }
.journey-card:hover .view-journey, .journey-card:focus-visible .view-journey { color: var(--deep-ocean); }
.journey-tags { display: flex; flex-wrap: wrap; gap: 7px; }
.journey-tags span { padding: 5px 8px; border-radius: 999px; cursor: inherit; background: var(--wash); color: var(--muted); font-size: .68rem; }
.journey-tags .is-stay { border: 1px solid rgba(120,107,131,.24); background: var(--stays-soft); color: #65596d; font-weight: 600; }
.journey-destinations { margin-top: 1px; }
.journey-destinations > small { margin-bottom: 6px; display: block; color: var(--muted); font-size: .65rem; font-weight: 650; letter-spacing: .07em; text-transform: uppercase; }
.result-chain { margin: 12px 0; padding: 0; display: flex; gap: 5px; overflow-x: auto; list-style: none; }
.result-chain li { flex: 0 0 auto; max-width: 245px; padding: 7px 9px; position: relative; border: 1px solid rgba(13,92,99,.18); border-radius: 9px; background: #f9fbfa; color: var(--muted); font-size: .68rem; }
.result-chain li + li::before { content: "→"; margin-right: 7px; color: var(--quiet); }
.result-chain li:not(.is-cruise) { border-style: dashed; background: #fcfaf5; }
.results-pagination { margin-top: 15px; display: flex; justify-content: center; align-items: center; gap: 12px; }
.results-pagination button { min-height: 44px; min-width: 92px; padding: 9px 14px; border: 1px solid rgba(13,92,99,.24); border-radius: 999px; background: white; color: var(--green); cursor: pointer; font-weight: 550; }
.results-pagination button:disabled { opacity: .4; cursor: default; }
.results-pagination span { color: var(--muted); font-size: .78rem; }
.results-empty { padding: 28px; border: 1px dashed var(--line); border-radius: 18px; background: var(--surface); text-align: center; color: var(--muted); }
.searching-journeys { min-height: 230px; display: grid; align-content: center; gap: 12px; }
.searching-journeys span { height: 58px; border-radius: 14px; background: linear-gradient(100deg, #f2f4f2 20%, #fbfcfb 38%, #f2f4f2 56%); background-size: 200% 100%; animation: search-shimmer 1.3s linear infinite; }
@keyframes search-shimmer { to { background-position-x: -200%; } }
.results-side { min-height: 430px; padding: 0; position: sticky; top: 306px; scroll-margin-top: 306px; max-height: calc(100vh - 326px); overflow: auto; border: 1px solid rgba(13,92,99,.24); border-radius: 20px; background: var(--surface); box-shadow: 0 12px 36px rgba(20,61,70,.07); }
.results-side.is-empty { min-height: 430px; display: grid; place-items: center; border-style: dashed; box-shadow: none; }
.detail-placeholder { max-width: 430px; padding: 54px; text-align: center; }
.detail-placeholder-mark { width: 48px; height: 48px; margin: 0 auto 18px; display: grid; place-items: center; border-radius: 50%; background: var(--wash); color: var(--green); font-size: 1.25rem; }
.detail-placeholder .eyebrow { margin-bottom: 8px; }
.detail-placeholder h3 { margin-bottom: 10px; color: var(--deep-ocean); font-size: 1.3rem; font-weight: 450; }
.detail-placeholder p:last-child { color: var(--muted); font-size: .82rem; line-height: 1.6; }
.journey-detail-hero { padding: 25px 26px 23px; background: linear-gradient(145deg, #f5faf8, #eef5f4 58%, #f8f5ec); border-bottom: 1px solid var(--line); }
.result-detail-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.result-detail-heading .eyebrow { margin: 0; }
.journey-detail-hero > h1, .journey-detail-hero > h3 { margin: 14px 0 5px; color: var(--deep-ocean); font-size: clamp(1.75rem, 2.6vw, 2.4rem); font-weight: 480; letter-spacing: -.035em; }
.result-detail-heading button { width: 32px; height: 32px; border: 1px solid var(--line); border-radius: 50%; background: white; cursor: pointer; }
.detail-date-range { margin-bottom: 17px; color: var(--muted); font-size: .82rem; }
.detail-metrics { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 8px; }
.detail-metrics span { padding: 10px; border: 1px solid rgba(13,92,99,.12); border-radius: 11px; background: rgba(255,255,255,.72); color: var(--muted); font-size: .64rem; line-height: 1.3; }
.detail-metrics strong { display: block; color: var(--deep-ocean); font-size: 1.05rem; font-weight: 500; }
.detail-fit { margin-top: 16px; padding-top: 14px; display: grid; grid-template-columns: auto 1fr; gap: 12px; border-top: 1px solid rgba(13,92,99,.13); }
.detail-fit > strong { color: var(--deep-ocean); font-size: .76rem; }
.detail-fit > div { display: flex; flex-wrap: wrap; gap: 5px 10px; }
.detail-fit span { color: var(--muted); font-size: .72rem; }
.detail-fit span::before { content: "·"; margin-right: 6px; color: var(--green); font-weight: 700; }
.detail-section-heading { padding: 20px 26px 8px; display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; }
.detail-section-heading .eyebrow { margin-bottom: 5px; font-size: .62rem; }
.detail-section-heading h2, .detail-section-heading h4 { margin: 0; color: var(--deep-ocean); font-family: inherit; font-size: 1.16rem; font-weight: 550; letter-spacing: -.015em; }
.detail-section-heading > span { color: var(--quiet); font-size: .68rem; text-align: right; }
.detail-segments { margin: 4px 26px 20px; position: relative; }
.detail-segments::before { content: ""; position: absolute; top: 20px; bottom: 20px; left: 17px; width: 1px; background: #b8cfcb; }
.detail-segment { position: relative; display: grid; grid-template-columns: 36px minmax(0,1fr); gap: 12px; padding: 9px 0; background: transparent; }
.detail-segment-marker { z-index: 1; width: 36px; height: 36px; display: grid; place-items: center; border: 4px solid white; border-radius: 50%; background: var(--green); color: white; font-size: .7rem; font-weight: 600; }
.detail-segment:not(.is-cruise) .detail-segment-marker { background: var(--stays); }
.detail-segment-body { padding: 14px 15px; border: 1px solid var(--line); border-radius: 13px; background: white; }
.detail-segment.is-cruise .detail-segment-body { border-top: 3px solid var(--green); }
.detail-segment.is-land_stay .detail-segment-body, .detail-segment.is-port_stay .detail-segment-body, .detail-segment.is-landstay .detail-segment-body, .detail-segment.is-portstay .detail-segment-body { background: var(--stays-soft); border-color: rgba(120,107,131,.24); }
.detail-segment.is-layover .detail-segment-body, .detail-segment.is-transfer .detail-segment-body, .detail-segment.is-connection .detail-segment-body { padding: 10px 14px; background: #f7f8f7; border-style: dashed; }
.detail-segment.is-layover .detail-segment-marker { background: #96a2a1; font-size: .58rem; letter-spacing: -.02em; }
.detail-segment.is-layover .detail-segment-body { padding: 12px 14px; border: 1px dashed rgba(86,105,104,.28); background: #f7f8f7; }
.detail-layover-note { margin: 10px 0 0; padding-top: 9px; border-top: 1px solid rgba(120,107,131,.18); color: var(--muted); font-size: .68rem; line-height: 1.5; }
.detail-layover-note strong { margin-right: 5px; color: #65596d; }
.detail-segment.is-ship-change .detail-segment-marker { border-color: #fffaf3; background: #a87337; font-size: .82rem; }
.detail-segment.is-ship-change .detail-segment-body { padding: 14px; border: 1px solid rgba(168,115,55,.34); border-left: 4px solid #a87337; background: #fffaf3; }
.detail-connection-facts { margin: 9px 0 11px; display: grid; grid-template-columns: minmax(120px,.7fr) minmax(160px,1fr); gap: 8px; }
.detail-connection-facts > span { padding: 9px 10px; border-radius: 9px; background: white; }
.detail-connection-facts small, .detail-connection-facts strong { display: block; }
.detail-connection-facts small { margin-bottom: 3px; color: var(--quiet); font-size: .57rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.detail-connection-facts strong { color: var(--deep-ocean); font-size: .8rem; font-weight: 600; }
.detail-segment.is-ship-change h3, .detail-segment.is-ship-change h4 { margin-top: 0; color: var(--ink); line-height: 1.4; }
.detail-segment.is-ship-change h3 span, .detail-segment.is-ship-change h4 span { color: var(--deep-ocean); }
.detail-connection-note { margin: 9px 0 0; padding-top: 9px; border-top: 1px solid rgba(168,115,55,.2); color: var(--muted); font-size: .68rem; line-height: 1.5; }
.detail-connection-note strong { margin-right: 5px; color: #80592f; }
.detail-segment.is-exploration-transfer .detail-segment-marker { border-color: #f4f8f7; background: #5d7f7c; font-size: .78rem; }
.detail-segment.is-exploration-transfer .detail-segment-body { padding: 14px; border: 1px solid rgba(63,105,102,.25); border-left: 3px solid #5d7f7c; background: linear-gradient(135deg, #f7faf9, #fbfcfb); }
.detail-segment.is-exploration-transfer h3, .detail-segment.is-exploration-transfer h4 { margin-top: 8px; color: var(--deep-ocean); line-height: 1.35; }
.detail-transfer-arrival { margin-top: 11px; padding: 9px 10px; display: flex; align-items: center; gap: 9px; border: 1px solid rgba(13,92,99,.12); border-radius: 9px; background: white; }
.detail-transfer-arrival > span { width: 25px; height: 25px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; background: var(--wash); color: var(--green); }
.detail-transfer-arrival p { margin: 0; }
.detail-transfer-arrival small, .detail-transfer-arrival strong { display: block; }
.detail-transfer-arrival small { color: var(--muted); font-size: .6rem; }
.detail-transfer-arrival strong { margin-top: 2px; color: var(--deep-ocean); font-size: .76rem; }
.detail-transfer-arrival em { display: block; margin-top: 3px; color: #8b5c28; font-size: .68rem; font-style: normal; font-weight: 600; }
.detail-transfer-ships { margin: 9px 0 0; color: var(--quiet); font-size: .61rem; }
.detail-segment.is-featured-stay { padding: 15px 0; }
.detail-segment.is-featured-stay .detail-segment-marker { width: 42px; height: 42px; margin-left: -3px; border-color: #f8f3ed; background: #65596d; box-shadow: 0 4px 12px rgba(73,60,82,.2); }
.detail-segment.is-featured-stay .detail-segment-marker svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.detail-segment.is-featured-stay .detail-segment-body { padding: 0; overflow: hidden; border: 1px solid rgba(120,107,131,.34); border-top: 4px solid #65596d; background: white; box-shadow: 0 5px 15px rgba(73,60,82,.07); }
.detail-stay-hero { padding: 16px 18px 15px; position: relative; background: linear-gradient(135deg, #f7f3f8, #fbfafb 70%); }
.detail-stay-hero .detail-segment-top > span { color: #65596d; }
.detail-stay-hero .detail-segment-top time { color: var(--quiet); }
.detail-segment.is-featured-stay .detail-stay-hero h3, .detail-segment.is-featured-stay .detail-stay-hero h4 { margin: 13px 0 0; color: var(--deep-ocean); font-size: 1.3rem; font-weight: 600; letter-spacing: -.02em; }
.detail-stay-hero > p:last-child { margin: 4px 0 0; max-width: 520px; color: var(--muted); font-size: .69rem; line-height: 1.45; }
.detail-stay-window { margin: 14px 16px 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border: 1px solid rgba(120,107,131,.18); border-radius: 11px; background: #faf8fb; }
.detail-stay-window span { padding: 11px 12px; border-right: 1px solid rgba(120,107,131,.14); color: var(--muted); }
.detail-stay-window span:last-child { border-right: 0; }
.detail-stay-window .is-primary { background: var(--stays-soft); }
.detail-stay-window strong, .detail-stay-window small { display: block; }
.detail-stay-window strong { color: #574c60; font-size: 1.05rem; font-weight: 600; }
.detail-stay-window small { margin-top: 2px; font-size: .59rem; line-height: 1.25; }
.detail-stay-window small em { margin-top: 4px; display: block; color: #755943; font-style: normal; font-weight: 600; }
.detail-stay-movements { margin: 13px 16px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.detail-stay-movements > div { padding: 10px; display: grid; grid-template-columns: 27px minmax(0,1fr); gap: 8px; border: 1px solid rgba(13,92,99,.12); border-radius: 10px; background: #fafcfb; }
.movement-icon { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 50%; background: var(--wash); color: var(--green); font-size: .72rem; }
.detail-stay-movements p { margin: 0; min-width: 0; }
.detail-stay-movements small, .detail-stay-movements strong, .detail-stay-movements p > span { display: block; }
.detail-stay-movements small { color: var(--quiet); font-size: .56rem; line-height: 1.35; }
.detail-stay-movements strong { margin: 3px 0; color: var(--deep-ocean); font-size: .69rem; font-weight: 600; }
.detail-stay-movements p > span { color: var(--muted); font-size: .59rem; line-height: 1.35; }
.detail-stay-note { margin: 0; padding: 11px 16px 13px; border-top: 1px solid rgba(120,107,131,.15); background: #faf8fb; color: var(--muted); font-size: .63rem; line-height: 1.45; }
.detail-stay-note strong { margin-right: 5px; color: #65596d; }
.detail-segment-top { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.detail-segment-top > span { color: var(--green); font-size: .62rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.detail-segment-top time { color: var(--quiet); font-size: .65rem; }
.detail-segment h3, .detail-segment h4 { margin: 6px 0 4px; color: var(--ink); font-family: inherit; font-size: 1rem; font-weight: 600; letter-spacing: -.01em; }
.detail-route { margin: 0; color: var(--muted); font-size: .72rem; line-height: 1.45; }
.detail-region-list { margin-top: 8px; display: flex; flex-wrap: wrap; gap: 5px; }
.detail-region-list span { padding: 3px 6px; border-radius: 999px; background: var(--wash); color: var(--muted); font-size: .6rem; }
.client-sailing-id { margin-top: 8px; display: block; color: var(--quiet); font-size: .62rem; }
.detail-leg-actions { margin-top: 10px; }
.detail-leg-actions > summary { width: max-content; color: var(--green); cursor: pointer; font-size: .66rem; font-weight: 550; }
.detail-leg-action-list { margin-top: 7px; padding: 7px; display: grid; gap: 4px; border: 1px solid var(--line); border-radius: 9px; background: #fafcfb; }
.detail-leg-action-list > span { padding: 3px 8px; color: var(--quiet); font-size: .6rem; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; }
.detail-leg-action-list button { padding: 7px 8px; border: 0; border-radius: 6px; background: transparent; color: var(--ink); cursor: pointer; text-align: left; font-size: .66rem; }
.detail-leg-action-list button:hover { background: var(--wash); color: var(--green); }
.detail-planning-note { margin: 0 26px 20px; padding: 13px 14px; display: grid; gap: 4px; border-radius: 12px; background: #faf6eb; color: #665b42; }
.detail-planning-note strong { font-size: .75rem; }
.detail-planning-note span { font-size: .68rem; line-height: 1.45; }
.structured-detail { margin: 0 26px 24px; }
.results-side details { margin-top: 12px; }
.results-side pre { max-height: 320px; overflow: auto; white-space: pre-wrap; font-size: .62rem; }
.detail-loading { min-height: 430px; padding: 24px 10px; display: grid; place-items: center; color: var(--muted); text-align: center; }

.sailings-section, .connections-section { padding: 20px; border: 2px solid rgba(102,117,126,.32); border-radius: 18px; background: #f9faf9; }
.connections-section { margin-top: 16px; }
.sailings-section .section-heading h3, .connections-section .section-heading h3 { color: #46555d; }
.line-category-rail { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 8px; }
.line-category-card { min-height: 112px; padding: 15px; position: relative; border: 1px solid rgba(102,117,126,.26); border-radius: 14px; background: white; cursor: pointer; text-align: left; }
.line-category-card strong, .line-category-card small { display: block; }
.line-category-card strong { max-width: 90%; font-size: .9rem; font-weight: 500; }
.line-category-card small { margin-top: 7px; color: var(--muted); font-size: .7rem; line-height: 1.4; }
.line-category-card[aria-pressed="true"] { border: 2px solid var(--matters); background: #eef1f2; }
.line-category-card.has-selection:not([aria-pressed="true"]) { border-color: rgba(102,117,126,.62); }
.line-category-count { min-width: 25px; height: 25px; padding: 0 7px; position: absolute; top: 10px; right: 10px; display: grid; place-items: center; border-radius: 999px; background: var(--matters); color: white; font-size: .68rem; }
.line-panel { margin-top: 9px; padding: 14px; border: 1px solid rgba(102,117,126,.28); border-radius: 14px; background: white; }
.line-panel-head { display: flex; justify-content: space-between; align-items: center; gap: 15px; margin-bottom: 12px; }
.line-panel-head h4 { margin: 0 0 3px; font-size: .94rem; font-weight: 500; }
.line-panel-head span { color: var(--muted); font-size: .72rem; }
.line-panel-head > div:last-child { display: flex; gap: 5px; }
.line-panel-head button { min-height: 34px; padding: 5px 9px; border: 1px solid rgba(102,117,126,.24); border-radius: 999px; background: white; cursor: pointer; font-size: .7rem; }
.line-panel-head button:disabled { opacity: .4; cursor: default; }
.line-pills { display: flex; flex-wrap: wrap; gap: 7px; }
.line-pill { min-height: 43px; padding: 6px 10px 6px 7px; display: grid; grid-template-columns: 28px auto; grid-template-rows: auto auto; column-gap: 7px; align-items: center; border: 1px solid rgba(102,117,126,.25); border-radius: 999px; background: #fafbfb; cursor: pointer; text-align: left; }
.line-pill strong { align-self: end; font-size: .75rem; font-weight: 500; }
.line-pill small { align-self: start; color: var(--quiet); font-size: .62rem; }
.line-pill[aria-pressed="true"] { border-color: var(--matters); background: var(--matters); color: white; }
.line-pill[aria-pressed="true"] small { color: rgba(255,255,255,.72); }
.sailing-constraints { margin-top: 12px; display: grid; grid-template-columns: 1.15fr .85fr; gap: 10px; }
.preference-question, .connection-question { min-width: 0; margin: 0; padding: 15px; border: 1px solid rgba(102,117,126,.26); border-radius: 14px; background: white; }
.preference-question legend, .connection-question legend { padding: 0 5px; color: #46555d; font-size: .86rem; font-weight: 500; }
.preference-question > p, .connection-question > p { margin: 0 0 11px; color: var(--muted); font-size: .7rem; }
.choice-pills { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 6px; }
.choice-pills.compact-choices { grid-template-columns: repeat(4, minmax(0,1fr)); }
.choice-pills button { min-height: 52px; padding: 8px; border: 1px solid rgba(102,117,126,.24); border-radius: 10px; background: #f8f9f9; cursor: pointer; }
.choice-pills strong, .choice-pills small { display: block; }
.choice-pills strong { font-size: .74rem; font-weight: 500; }
.choice-pills small { margin-top: 3px; color: var(--quiet); font-size: .64rem; }
.choice-pills button[aria-pressed="true"] { border-color: var(--matters); background: var(--matters); color: white; }
.choice-pills button[aria-pressed="true"] small { color: rgba(255,255,255,.72); }
.choice-pills button:disabled { border-color: rgba(102,117,126,.12); background: #f4f5f5; color: #a6afb3; cursor: not-allowed; opacity: .58; }
.choice-pills.journey-span-choices { width: 100%; max-width: 100%; display: flex; flex-wrap: nowrap; overflow-x: auto; }
.choice-pills.journey-span-choices button { min-width: 126px; flex: 1 1 138px; }
.choice-pills.journey-span-choices button:last-child { flex-basis: 168px; }
.connection-preview { margin-bottom: 16px; padding: 16px; display: grid; grid-template-columns: minmax(0,1fr) 260px; align-items: center; gap: 18px; border: 1px solid rgba(102,117,126,.28); border-radius: 14px; background: white; }
.connection-chain { min-width: 0; display: flex; align-items: center; overflow-x: auto; }
.connection-cruise { min-width: 72px; height: 66px; padding: 8px; flex: 0 0 auto; display: grid; place-items: center; border: 1px solid rgba(102,117,126,.36); border-radius: 12px; background: #f3f5f5; color: #506068; }
.connection-cruise svg { width: 19px; height: 19px; }
.connection-cruise small { font-size: .65rem; }
.connection-link { min-width: 74px; flex: 1 0 74px; display: grid; place-items: center; color: var(--muted); }
.connection-link i { width: 100%; height: 1px; position: relative; display: block; background: #9ca8ac; }
.connection-link i::after { content: ""; position: absolute; right: 0; top: -3px; width: 7px; height: 7px; border-top: 1px solid #7c8a90; border-right: 1px solid #7c8a90; transform: rotate(45deg); }
.connection-link small { margin-top: 7px; font-size: .6rem; white-space: nowrap; }
.connection-preview > p { margin: 0; }
.connection-preview > p strong, .connection-preview > p span { display: block; }
.connection-preview > p strong { color: #46555d; font-size: .9rem; font-weight: 500; }
.connection-preview > p span { margin-top: 5px; color: var(--muted); font-size: .7rem; line-height: 1.45; }
.connection-question + .connection-question { margin-top: 10px; }
.connection-scale { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 6px; }
.connection-scale button { min-height: 96px; padding: 10px; position: relative; border: 1px solid rgba(102,117,126,.24); border-radius: 11px; background: #f8f9f9; cursor: pointer; text-align: left; }
.connection-scale button > span, .connection-scale strong, .connection-scale small { display: block; }
.connection-scale button > span { margin-bottom: 12px; color: var(--quiet); font-size: .62rem; letter-spacing: .08em; }
.connection-scale strong { font-size: .76rem; font-weight: 500; }
.connection-scale small { margin-top: 4px; color: var(--quiet); font-size: .64rem; line-height: 1.35; }
.connection-scale button.is-included { border-color: rgba(102,117,126,.42); background: #e9edee; }
.connection-scale button[aria-pressed="true"] { border-color: var(--matters); background: var(--matters); color: white; }
.connection-scale button[aria-pressed="true"] > span, .connection-scale button[aria-pressed="true"] small { color: rgba(255,255,255,.72); }
.gap-question .compact-choices { max-width: 720px; grid-template-columns: repeat(5, minmax(0,1fr)); }

.sheet-backdrop { display: none; }
footer { max-width: 1280px; margin: 0 auto; padding: 20px 24px 32px; display: flex; justify-content: space-between; gap: 20px; color: var(--muted); font-size: .78rem; }

/* Desktop and tablet density pass: preserve the rich controls while showing more of the designer. */
@media (min-width: 721px) {
  main { padding-top: 20px; padding-bottom: 58px; }
  .intro { margin-bottom: 15px; }

  body:not(.results-mode) .journey-ribbon { margin-bottom: 12px; padding: 13px 16px 11px; border-radius: 16px; }
  body:not(.results-mode) .journey-ribbon-heading { margin-bottom: 8px; }
  body:not(.results-mode) .journey-ribbon-heading .eyebrow { margin-bottom: 2px; font-size: .67rem; }
  body:not(.results-mode) .journey-ribbon-heading h2 { font-size: 1.08rem; }
  body:not(.results-mode) .journey-ribbon-body { grid-template-columns: minmax(0,1fr) 180px; gap: 12px; }
  body:not(.results-mode) .journey-track { padding: 5px 2px; }
  body:not(.results-mode) .journey-node, body:not(.results-mode) .journey-placeholder { min-height: 44px; border-radius: 11px; }
  body:not(.results-mode) .journey-node > button { min-height: 42px; }
  body:not(.results-mode) .journey-gateway { padding: 7px 10px; }
  body:not(.results-mode) .journey-gateway strong { font-size: 1.45rem; }
  body:not(.results-mode) .preference-strand { margin-top: 7px; padding-top: 7px; }

  .intent-groups { gap: 12px; }
  .intent-cluster { padding: 6px; border-radius: 15px; }
  .intent-cluster-label { margin-bottom: 5px; }
  .intent-grid { gap: 7px; }
  .intent-tile { min-height: 108px; padding: 9px 11px; gap: 2px; border-radius: 12px; }
  .intent-icon { width: 27px; height: 27px; border-radius: 8px; }
  .intent-icon svg { width: 17px; height: 17px; }
  .intent-heading { gap: 7px; font-size: 1.12rem; }
  .intent-value { font-size: .74rem; line-height: 1.25; }
  .intent-edit { font-size: .67rem; }
  .intent-tile.is-active::after { bottom: -17px; width: 28px; height: 18px; }

  .where-shell, .when-shell, .matters-shell, .stays-shell { margin-top: 10px; padding: 14px 16px 18px; border-radius: 16px; }
  .panel-close { top: 6px; right: 8px; width: 38px; height: 38px; }
  .route-section, .geography-browser,
  .time-designer,
  .sailings-section, .connections-section,
  .stay-designer, .stay-timing { padding: 14px; border-radius: 14px; }
  .section-heading, .browser-heading { margin-bottom: 12px; }
  .section-heading h3, .browser-heading h3 { margin-bottom: 3px; font-size: clamp(1.12rem, 1.45vw, 1.3rem); }
  .section-heading p, .browser-heading p { font-size: .74rem; }
  .clear-all, .section-clear { min-height: 36px; font-size: .69rem; }

  .route-composer { padding: 9px 12px; border-radius: 11px; }
  .route-step > span { margin-bottom: 2px; font-size: .65rem; }
  .route-button { min-height: 38px; font-size: .84rem; }
  .nearby-inline { min-height: 36px; margin: -3px 0 -5px; }
  .geography-browser, .connections-section, .stay-timing { margin-top: 10px; }
  .rail-controls button { width: 38px; height: 38px; }
  .zone-rail { gap: 8px; padding-bottom: 8px; }
  .zone-card { min-width: 174px; height: 106px; padding: 10px; border-radius: 11px; }
  .zone-card-copy { right: 7px; bottom: 7px; left: 7px; padding: 6px 8px; }
  .zone-card strong { font-size: .82rem; }
  .zone-card small { font-size: .64rem; }
  .region-panel { padding-top: 10px; }
  .region-panel-head { margin-bottom: 8px; }
  .region-panel-head h4 { font-size: 1rem; }
  .region-pill { min-height: 38px; padding: 6px 10px; }

  .date-range-question { padding: 10px 12px 11px; border-radius: 11px; }
  .date-range-question legend { font-size: .8rem; }
  .time-composer { grid-template-columns: minmax(0,1fr) 36px minmax(0,1fr); }
  .time-field-heading { min-height: 21px; margin-bottom: 4px; }
  .time-field-label { font-size: .66rem; }
  .date-field-trigger { min-height: 40px; padding: 7px 10px; border-radius: 8px; font-size: .86rem; }
  .time-resolution { margin-top: 7px; font-size: .72rem; }
  .journey-span-question { margin-top: 10px; padding: 10px 12px; border-radius: 11px; }
  .journey-span-question legend { font-size: .8rem; }
  .journey-span-question > p { margin-bottom: 7px; }
  .choice-pills { gap: 5px; }
  .choice-pills button { min-height: 42px; padding: 6px 7px; border-radius: 8px; }

  .line-category-rail { gap: 6px; }
  .line-category-card { min-height: 84px; padding: 11px 12px; border-radius: 11px; }
  .line-category-card strong { font-size: .83rem; }
  .line-category-card small { margin-top: 4px; font-size: .66rem; line-height: 1.3; }
  .line-category-count { top: 7px; right: 7px; min-width: 22px; height: 22px; }
  .line-panel { margin-top: 7px; padding: 10px; border-radius: 11px; }
  .line-panel-head { margin-bottom: 8px; }
  .line-pill { min-height: 38px; padding-top: 4px; padding-bottom: 4px; }
  .sailing-constraints { margin-top: 8px; gap: 8px; }
  .preference-question, .connection-question { padding: 10px 11px; border-radius: 11px; }
  .preference-question legend, .connection-question legend { font-size: .8rem; }
  .preference-question > p, .connection-question > p { margin-bottom: 7px; }
  .connection-preview { margin-bottom: 10px; padding: 10px 12px; grid-template-columns: minmax(0,1fr) 240px; gap: 12px; border-radius: 11px; }
  .connection-cruise { min-width: 62px; height: 52px; padding: 6px; border-radius: 9px; }
  .connection-link { min-width: 62px; flex-basis: 62px; }
  .connection-question + .connection-question { margin-top: 7px; }
  .connection-scale { gap: 5px; }
  .connection-scale button { min-height: 72px; padding: 7px 8px; border-radius: 9px; }
  .connection-scale button > span { margin-bottom: 6px; }

  .stay-composer { gap: 8px; }
  .stay-place-field, .stay-length-question { padding: 10px 11px; border-radius: 11px; }
  .stay-place-field > label { margin-bottom: 5px; }
  .stay-place-input { min-height: 40px; padding: 3px 4px 3px 9px; border-radius: 8px; }
  .stay-place-input button { min-height: 32px; padding: 6px 10px; }
  .stay-place-field > p { margin-top: 6px; }
  .stay-mode-choices { gap: 6px; }
  .stay-mode-choices button { min-height: 68px; padding: 9px 11px; border-radius: 10px; }
  .stay-mode-choices small { margin-top: 3px; }
  .stay-date-editor { margin-top: 8px; padding: 9px 11px; border-radius: 10px; }
  .stay-date-field label { margin-bottom: 4px; }
  .stay-date-field input { min-height: 40px; padding: 7px 9px; }
  .stay-timing-summary { margin-top: 8px; padding: 9px 11px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

@media (max-width: 1100px) {
  .journey-card { grid-template-columns: 40px minmax(0,1.25fr) minmax(250px,.8fr); column-gap: 14px; }
  .journey-card-supporting { padding-left: 14px; }
  .view-journey { grid-column: 2 / -1; justify-self: end; padding-top: 2px; }
}

@media (max-width: 900px) {
  .site-header { gap: 24px; }
  .site-nav { gap: 18px; }
  .site-nav a:nth-last-child(-n+2) { display: none; }
  .intent-groups { grid-template-columns: 1fr; }
  .stay-intent-grid { grid-template-columns: 1fr; }
  .journey-ribbon-body { grid-template-columns: minmax(0,1fr) 176px; }
  .time-composer { grid-template-columns: minmax(0,1fr) 34px minmax(0,1fr); }
  .line-category-rail { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .sailing-constraints { grid-template-columns: 1fr; }
  .connection-preview { grid-template-columns: 1fr; }
  .connection-scale { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .results-layout { grid-template-columns: minmax(0,1fr); }
}

@media (max-width: 720px) {
  .site-header { min-height: 62px; padding: 0 16px; }
  .brand span { display: none; }
  .site-nav { margin-right: auto; }
  .site-nav a { display: none; }
  .site-nav a.is-current { display: inline-flex; }
  .saved-link { font-size: 0; }
  .saved-link span { font-size: .7rem; }
  .request-guidance { grid-template-columns: 1fr; }
  main { padding: 24px 16px 70px; }
  .intro { margin-bottom: 17px; }
  h1 { font-size: 1.55rem; }
  .journey-ribbon { padding: 16px; }
  .journey-ribbon-body { display: block; }
  .journey-track { margin: 0 -2px; padding: 8px 2px 14px; }
  .journey-gateway { margin-top: 4px; padding: 12px 0 0; grid-template-columns: 1fr auto; border-top: 1px solid rgba(20,61,70,.18); border-left: 0; }
  .journey-gateway > small { grid-column: 1; grid-row: 2; }
  .journey-gateway button { grid-column: 1 / -1; grid-row: 3; }
  .journey-gateway strong { grid-column: 2; grid-row: 1 / 3; }
  .preference-strand { align-items: flex-start; flex-direction: column; gap: 6px; }
  .preference-items { width: 100%; }
  .intent-groups { grid-template-columns: 1fr; gap: 10px; }
  .intent-cluster { padding: 7px; }
  .cruise-intent-grid, .stay-intent-grid { grid-template-columns: 1fr; gap: 7px; }
  .intent-tile { min-height: 82px; padding: 10px 12px; display: grid; grid-template-columns: minmax(0,1fr) auto; grid-template-rows: auto auto; column-gap: 11px; row-gap: 2px; align-items: center; }
  .intent-heading { grid-column: 1; align-self: end; }
  .intent-value { grid-column: 1; align-self: start; }
  .intent-edit { grid-column: 2; grid-row: 1 / 3; margin: 0; font-size: 0; }
  .intent-edit svg { width: 1rem; height: 1rem; }
  .intent-tile.is-active::after { right: 34px; bottom: -19px; left: auto; width: 28px; height: 20px; transform: none; }
  .sheet-backdrop { position: fixed; z-index: 20; inset: 0; display: block; background: rgba(13, 25, 20, .42); opacity: 0; pointer-events: none; transition: opacity .24s ease; }
  body.where-open, body.when-open, body.matters-open, body.stays-open { overflow: hidden; }
  body.where-open .sheet-backdrop, body.when-open .sheet-backdrop, body.matters-open .sheet-backdrop, body.stays-open .sheet-backdrop { opacity: 1; pointer-events: auto; }
  .where-shell, .when-shell, .matters-shell, .stays-shell { position: fixed; z-index: 21; inset: 70px 0 0; overflow-y: auto; margin: 0; padding: 12px 16px 30px; border: 0; border-top: 4px solid var(--where); border-radius: 24px 24px 0 0; background: var(--paper); box-shadow: 0 -20px 50px rgba(18, 30, 24,.22); transform: translateY(105%); transition: transform .28s cubic-bezier(.2,.75,.25,1); }
  .when-shell { border-top-color: var(--when); background: var(--when-soft); }
  .matters-shell { border-top-color: var(--matters); background: var(--matters-soft); }
  .stays-shell { border-top-color: var(--stays); background: var(--stays-soft); }
  body.where-open .where-shell { transform: translateY(0); }
  body.when-open .when-shell { transform: translateY(0); }
  body.matters-open .matters-shell { transform: translateY(0); }
  body.stays-open .stays-shell { transform: translateY(0); }
  .sheet-grabber { display: block; width: 42px; height: 4px; margin: 0 auto 18px; border-radius: 99px; background: #bec7c2; }
  .where-header { margin-bottom: 18px; }
  .where-header h2 { font-size: 1.45rem; }
  .route-section, .geography-browser { padding: 14px; }
  .time-designer { padding: 14px; }
  .sailings-section, .connections-section { padding: 14px; }
  .line-category-rail { display: flex; overflow-x: auto; padding-bottom: 5px; }
  .line-category-card { min-width: 190px; }
  .line-pills { display: grid; grid-template-columns: 1fr 1fr; }
  .line-pill { border-radius: 12px; }
  .choice-pills, .choice-pills.compact-choices, .gap-question .compact-choices { display: flex; overflow-x: auto; }
  .choice-pills button { min-width: 118px; }
  .connection-scale { display: flex; overflow-x: auto; }
  .connection-scale button { min-width: 148px; }
  .time-composer { display: block; }
  .date-range-question { padding: 11px; }
  .journey-span-choices { display: flex; flex-wrap: nowrap; overflow-x: auto; }
  .journey-span-choices button { min-width: 126px; }
  .stay-composer { grid-template-columns: 1fr; }
  .stay-mode-choices { display: flex; overflow-x: auto; }
  .stay-mode-choices button { min-width: 190px; }
  .stay-date-editor { grid-template-columns: 1fr; }
  .stay-date-editor > span { display: none; }
  .stay-date-field + .stay-date-field { margin-top: 5px; }
  .time-field + .time-field { margin-top: 14px; }
  .time-equation { display: none; }
  .availability-shortcuts { align-items: flex-start; flex-direction: column; gap: 6px; }
  .availability-shortcuts > div { width: 100%; }
  .availability-shortcuts button { min-width: 145px; min-height: 44px; }
  .availability-picker { padding: 12px; }
  .availability-month { min-width: 112px; min-height: 52px; }
  .availability-calendar { padding-right: 7px; padding-left: 7px; }
  .availability-day { min-height: 40px; }
  .section-heading, .browser-heading { align-items: flex-start; }
  .route-composer { grid-template-columns: 1fr 28px 1fr; padding: 14px; }
  .route-arrow:nth-of-type(2) { display: none; }
  .finish-step { display: block; grid-column: 1 / -1; margin-top: 6px; padding-top: 13px; border-top: 1px solid #cbd7d0; }
  .rail-controls { display: none; }
  .zone-rail { margin-right: -16px; padding-right: 16px; }
  .zone-card { min-width: 164px; height: 110px; }
  .region-panel { padding: 14px 0 0; }
  .region-panel-head { align-items: flex-start; flex-direction: column; gap: 7px; }
  .region-panel-tools { width: 100%; flex-wrap: wrap; }
  .region-panel-tools span { margin-right: auto; }
  .region-pills { gap: 7px; }
  .region-pill { min-height: 38px; }
  .results-toolbar { align-items: flex-start; flex-direction: column; }
  .results-browse-tools { flex-direction: column; }
  .results-sort-control, .results-filters { width: 100%; flex-basis: auto; }
  .results-filter-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .results-layout { display: flex; flex-direction: column; }
  .results-side { order: -1; width: 100%; position: static; max-height: none; min-height: 0; margin: 0 0 14px; }
  .journey-card { grid-template-columns: 36px minmax(0,1fr); }
  .journey-card-primary, .journey-card-supporting { grid-column: 2; }
  .journey-card-supporting { padding: 12px 0 0; border-top: 1px solid var(--line); border-left: 0; }
  .view-journey { grid-column: 1 / -1; width: 100%; justify-content: center; }
  .detail-placeholder { padding: 36px 24px; }
  .journey-detail-hero { padding: 21px 18px; }
  .detail-metrics { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .detail-fit { grid-template-columns: 1fr; }
  .detail-section-heading { padding: 18px 18px 7px; align-items: flex-start; flex-direction: column; gap: 5px; }
  .detail-section-heading > span { text-align: left; }
  .detail-segments { margin-right: 18px; margin-left: 18px; }
  .detail-connection-facts { grid-template-columns: 1fr; }
  .detail-stay-window, .detail-stay-movements { grid-template-columns: 1fr; }
  .detail-stay-window span { border-right: 0; border-bottom: 1px solid rgba(120,107,131,.14); }
  .detail-stay-window span:last-child { border-bottom: 0; }
  .detail-planning-note, .structured-detail { margin-right: 18px; margin-left: 18px; }
  body.results-mode .journey-ribbon { top: 0; margin: -24px 0 12px; padding: 11px 12px 10px; border-radius: 0 0 15px 15px; }
  body.results-mode .journey-ribbon-heading { display: none; }
  body.results-mode .journey-ribbon-body { display: grid; grid-template-columns: minmax(0,1fr) 145px; gap: 8px; }
  body.results-mode .journey-track { margin: 0; padding: 0 2px 7px; }
  body.results-mode .journey-node, body.results-mode .journey-placeholder { min-height: 42px; border-radius: 10px; }
  body.results-mode .journey-node > button { min-height: 40px; }
  body.results-mode .journey-gateway { margin: 0; padding: 0 0 0 9px; display: flex; border-top: 0; border-left: 1px solid rgba(20,61,70,.18); }
  body.results-mode .journey-gateway > span, body.results-mode .journey-gateway > strong, body.results-mode .journey-gateway > small { display: none; }
  body.results-mode .journey-gateway button { width: 100%; min-height: 40px; padding: 7px 9px; }
  body.results-mode .preference-strand { margin-top: 5px; padding-top: 6px; flex-direction: row; align-items: center; }
  body.results-mode .preference-label { font-size: .64rem; }
  footer { padding: 18px 16px 28px; flex-direction: column; }
}

/* Results ribbon: a non-interactive visual expression of the journey design. */
.ribbon-eyebrow-results { display: none; }
body.results-mode .ribbon-eyebrow-designer { display: none; }
body.results-mode .ribbon-eyebrow-results { display: inline; }
body.results-mode .ribbon-tools { display: none; }
body.results-mode .journey-ribbon-heading { margin-bottom: 13px; }
body.results-mode .journey-ribbon-body {
  grid-template-columns: minmax(0,1fr) auto;
  align-items: center;
  gap: 24px;
}
body.results-mode .journey-track {
  padding: 4px 0 7px;
  display: flex;
  align-items: flex-start;
  overflow: visible;
}
body.results-mode .results-ribbon-step {
  min-width: 0;
  flex: 1 1 0;
  display: flex;
  align-items: flex-start;
}
body.results-mode .results-journey-point {
  min-width: 0;
  flex: 1 1 auto;
  position: relative;
  display: grid;
  grid-template-rows: 16px minmax(34px,auto);
  align-content: start;
}
body.results-mode .results-journey-point small {
  display: flex;
  align-items: center;
  gap: 7px;
  color: #6a7c80;
  font-size: .61rem;
  font-weight: 650;
  letter-spacing: .075em;
  text-transform: uppercase;
}
body.results-mode .results-journey-point strong {
  min-width: 0;
  padding-top: 3px;
  color: var(--deep-ocean);
  font-size: .8rem;
  font-weight: 600;
  line-height: 1.25;
  overflow-wrap: anywhere;
}
body.results-mode .results-journey-point .results-point-detail {
  margin-top: 2px;
  color: #718286;
  font-size: .66rem;
  font-weight: 450;
  line-height: 1.25;
}
body.results-mode .results-journey-point.is-destination strong { color: var(--green); }
body.results-mode .results-journey-point.is-anchor small::before {
  content: "";
  width: 8px;
  height: 8px;
  flex: 0 0 8px;
  border: 1.5px solid var(--green);
  border-radius: 50%;
  background: #fff;
}
body.results-mode .results-journey-point.is-waypoint small::before {
  content: "";
  width: 8px;
  height: 8px;
  flex: 0 0 8px;
  border: 1.5px solid var(--gold);
  background: #fff;
  transform: rotate(45deg);
}
body.results-mode .journey-wake-link {
  width: 30px;
  min-width: 30px;
  height: 22px;
  margin: 0 9px 0 3px;
  position: relative;
  display: block;
}
body.results-mode .journey-wake-link::before {
  content: "";
  width: 20px;
  position: absolute;
  top: 8px;
  left: 1px;
  border-top: 1px solid #b5c8c5;
  box-shadow: 0 5px 0 #cbd8d6;
}
body.results-mode .journey-wake-link::after {
  content: "";
  width: 8px;
  height: 8px;
  position: absolute;
  top: 7px;
  right: 2px;
  border-top: 1.5px solid var(--green);
  border-right: 1.5px solid var(--green);
  transform: rotate(45deg);
}
body.results-mode .journey-wake-link i {
  width: 5px;
  height: 5px;
  position: absolute;
  z-index: 1;
  top: 9px;
  right: 7px;
  border-top: 1px solid var(--gold);
  border-right: 1px solid var(--gold);
  background: #fff;
  transform: rotate(45deg);
}
body.results-mode .journey-gateway {
  min-width: 140px;
  padding: 0;
  display: block;
  border: 0;
}
body.results-mode .journey-gateway > span,
body.results-mode .journey-gateway > strong { display: none; }
body.results-mode .journey-gateway button {
  min-width: 140px;
  min-height: 42px;
  padding: 9px 13px;
  border-radius: 3px;
  background: var(--green);
  color: #fff;
  cursor: pointer;
}
body.results-mode .journey-gateway button:hover { background: var(--deep-ocean); }
body.results-mode .preference-strand {
  margin-top: 10px;
  padding-top: 10px;
  display: block;
  border-top: 1px solid #e0e8e6;
}
body.results-mode .results-design-summary { display: grid; gap: 6px; }
body.results-mode .results-summary-line { min-width: 0; display: grid; grid-template-columns: 146px minmax(0,1fr); align-items: baseline; gap: 12px; }
body.results-mode .results-summary-line > span { color: #6a7c80; font-size: .62rem; font-weight: 650; letter-spacing: .045em; text-transform: uppercase; white-space: nowrap; }
body.results-mode .results-summary-line p { min-width: 0; margin: 0; color: #465d61; font-size: .7rem; line-height: 1.45; }
body.results-mode .results-summary-line i { margin: 0 9px; color: #a8b8b5; font-style: normal; }

@media (max-width: 900px) {
  body.results-mode .journey-ribbon { position: relative; top: auto; }
  body.results-mode .journey-ribbon-body { grid-template-columns: 1fr; gap: 12px; }
  body.results-mode .journey-gateway { min-width: 0; }
  body.results-mode .journey-gateway button { width: auto; min-width: 150px; }
}

@media (max-width: 620px) {
  body.results-mode .journey-track { display: grid; grid-template-columns: 1fr; gap: 2px; }
  body.results-mode .results-ribbon-step { display: grid; grid-template-columns: 32px minmax(0,1fr); }
  body.results-mode .results-ribbon-step:first-child { padding-left: 32px; }
  body.results-mode .journey-wake-link { margin: -2px 0 0; transform: rotate(90deg); transform-origin: center; }
  body.results-mode .results-journey-point { grid-template-rows: 16px minmax(28px,auto); }
  body.results-mode .results-summary-line { grid-template-columns: 1fr; gap: 2px; }
  body.results-mode .journey-gateway button { width: 100%; }
}

@media (max-width: 390px) {
  .site-header { gap: 16px; }
  .site-nav a.is-current { font-size: .78rem; }
  body.results-mode .journey-ribbon-body { display: block; }
  body.results-mode .journey-gateway { padding: 6px 0 0; border-top: 1px solid rgba(20,61,70,.18); border-left: 0; }
}

/* Designer-only ribbon concept. Results keeps its established sticky presentation. */
.preference-toggle { display: none; }
body:not(.results-mode) .journey-ribbon {
  position: relative;
  margin-bottom: 12px;
  padding: 11px 15px 9px;
  border: 1px solid rgba(13,92,99,.48);
  border-radius: 18px;
  background: linear-gradient(125deg, #f6fbfa 0%, #fbfcfa 62%, #fffaf4 100%);
  box-shadow: 0 6px 22px rgba(20,61,70,.07);
}
body:not(.results-mode) .journey-ribbon::before {
  content: "";
  position: absolute;
  top: 0;
  right: 17px;
  left: 17px;
  height: 3px;
  border-radius: 0 0 8px 8px;
  background: linear-gradient(90deg, var(--where), #6f9d96 52%, var(--when));
  opacity: .8;
}
body:not(.results-mode) .journey-ribbon-heading { margin-bottom: 5px; align-items: center; }
body:not(.results-mode) .journey-ribbon-heading > div:first-child { display: flex; align-items: baseline; gap: 10px; }
body:not(.results-mode) .journey-ribbon-heading .eyebrow { margin: 0; color: #5b7773; font-size: .59rem; letter-spacing: .11em; }
body:not(.results-mode) .journey-ribbon-heading h2 { font-size: 1.14rem; font-weight: 550; }
body:not(.results-mode) .inventory-status.is-live { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
body:not(.results-mode) .ribbon-tools { gap: 6px; }
body:not(.results-mode) .clear-all { min-height: 30px; }
body:not(.results-mode) .journey-ribbon-body { grid-template-columns: minmax(0,1fr) 165px; gap: 12px; align-items: center; }
body:not(.results-mode) .journey-track { min-height: 60px; padding: 4px 2px 9px; scrollbar-color: #b1c4bf transparent; }
body:not(.results-mode) .journey-node,
body:not(.results-mode) .journey-placeholder { min-height: 44px; border-radius: 15px 7px 15px 7px; }
body:not(.results-mode) .journey-node { border-color: rgba(13,92,99,.42); background: #fff; box-shadow: inset 0 0 0 2px rgba(255,255,255,.85), 0 2px 5px rgba(20,61,70,.06); }
body:not(.results-mode) .journey-node.is-region { background: #f1f8f5; }
body:not(.results-mode) .journey-node.is-stay { border-color: rgba(120,107,131,.7); background: var(--stays-soft); }
body:not(.results-mode) .journey-node.is-startDate,
body:not(.results-mode) .journey-node.is-endDate { border-color: rgba(102,117,126,.32); background: #fafbfa; }
body:not(.results-mode) .journey-node > button { min-height: 42px; }
body:not(.results-mode) .journey-node .chip-edit { padding: 7px 5px 7px 11px; }
body:not(.results-mode) .journey-placeholder { border-color: #b9c9c4; background: rgba(255,255,255,.48); }
body:not(.results-mode) .journey-link {
  width: 30px;
  min-width: 30px;
  height: 26px;
  background: center / 30px 26px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 26'%3E%3Cpath d='M0 16 C8 16 8 10 15 10 S22 16 30 10' fill='none' stroke='%23c5d4ce' stroke-width='4' stroke-linecap='round'/%3E%3Cpath d='M0 16 C8 16 8 10 15 10 S22 16 30 10' fill='none' stroke='%230d5c63' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
}
body:not(.results-mode) .journey-link::after { display: none; }
body:not(.results-mode) .journey-gateway { padding: 0; border: 0; grid-template-columns: 1fr auto; align-content: center; gap: 4px 5px; }
body:not(.results-mode) .journey-gateway > span { font-size: .57rem; letter-spacing: .04em; }
body:not(.results-mode) .journey-gateway strong { font-size: .97rem; font-weight: 550; letter-spacing: -.02em; }
body:not(.results-mode) .journey-gateway > small { display: none; }
body:not(.results-mode) .journey-gateway button { min-height: 40px; padding: 7px 10px; border-radius: 10px; }
body:not(.results-mode) .preference-strand { min-height: 26px; margin-top: 1px; padding-top: 5px; flex-wrap: wrap; gap: 2px 8px; border-color: rgba(20,61,70,.1); }
body:not(.results-mode) .preference-label { color: #65767a; font-size: .65rem; }
body:not(.results-mode) .preference-toggle { min-height: 25px; padding: 2px 5px; display: inline-flex; align-items: center; gap: 4px; border: 0; border-radius: 5px; background: transparent; color: var(--green); cursor: pointer; font-size: .65rem; }
body:not(.results-mode) .preference-toggle:hover { background: var(--green-soft); }
body:not(.results-mode) .preference-toggle span { display: inline-block; transition: transform .18s ease; }
body:not(.results-mode) .preference-strand.is-expanded .preference-toggle span { transform: rotate(180deg); }
body:not(.results-mode) .preference-items { display: none; width: 100%; padding: 5px 0 1px; }
body:not(.results-mode) .preference-strand.is-expanded .preference-items { display: flex; }

@media (max-width: 720px) {
  body:not(.results-mode) .journey-ribbon { padding: 10px 12px 9px; }
  body:not(.results-mode) .journey-ribbon-heading { align-items: flex-start; }
  body:not(.results-mode) .journey-ribbon-heading > div:first-child { display: block; }
  body:not(.results-mode) .journey-ribbon-heading .eyebrow { margin-bottom: 2px; }
  body:not(.results-mode) .journey-ribbon-body { display: block; }
  body:not(.results-mode) .journey-track { margin: 0 -2px; padding: 2px 2px 6px; }
  body:not(.results-mode) .journey-gateway { margin-top: 2px; padding: 6px 0 0; display: grid; grid-template-columns: 1fr auto; border-top: 1px solid rgba(20,61,70,.1); border-left: 0; }
  body:not(.results-mode) .journey-gateway > span { grid-column: 1; grid-row: 1; }
  body:not(.results-mode) .journey-gateway strong { grid-column: 2; grid-row: 1; }
  body:not(.results-mode) .journey-gateway button { grid-column: 1 / -1; grid-row: 2; }
  body:not(.results-mode) .preference-strand { align-items: center; flex-direction: row; gap: 2px 5px; }
  body:not(.results-mode) .preference-toggle { min-height: 30px; }
}

/* Designer journey canvas: quiet sea-glass surface and an uncropped, wrapping flow. */
.ribbon-title-designer, .journey-kind, .journey-text-designer { display: none; }
.ribbon-step { display: contents; }
body:not(.results-mode) .ribbon-title-designer { display: inline; }
body:not(.results-mode) .ribbon-title-results,
body:not(.results-mode) .journey-ribbon-heading .eyebrow,
body:not(.results-mode) .journey-text-results { display: none; }
body:not(.results-mode) .journey-text-designer { display: inline; }
body:not(.results-mode) .journey-ribbon {
  margin-bottom: 24px;
  border-color: #a6c0cd;
  background: linear-gradient(180deg, #d8e8f0 0%, #e7f1f5 58%, #f2f6f7 100%);
  color: var(--deep-ocean);
  box-shadow: 0 6px 20px rgba(20,61,70,.075);
}
body:not(.results-mode) .journey-ribbon::before { display: none; }
body:not(.results-mode) .journey-ribbon-heading h2 { color: var(--deep-ocean); font-size: 1.2rem; }
body:not(.results-mode) .clear-all { color: var(--green); }
body:not(.results-mode) .inventory-status.is-loading { color: var(--muted); }
body:not(.results-mode) .inventory-status.is-error { color: #8c4f37; }
body:not(.results-mode) .journey-track { align-content: center; flex-wrap: wrap; gap: 6px 0; overflow: visible; }
body:not(.results-mode) .ribbon-step { max-width: 100%; display: inline-flex; align-items: center; flex: 0 0 auto; }
body:not(.results-mode) .journey-node,
body:not(.results-mode) .journey-placeholder { max-width: min(240px, 100%); min-height: 48px; }
body:not(.results-mode) .journey-node { border-width: 1.5px; }
body:not(.results-mode) .journey-node .chip-edit { max-width: 209px; min-height: 46px; padding: 5px 5px 5px 12px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 1px; text-align: left; }
body:not(.results-mode) .journey-node .chip-edit > span { max-width: 100%; overflow-wrap: anywhere; line-height: 1.2; }
body:not(.results-mode) .journey-node .chip-remove { min-height: 46px; }
body:not(.results-mode) .journey-kind { display: block; color: #5a7580; font-size: .57rem; font-weight: 650; letter-spacing: .08em; line-height: 1.1; text-transform: uppercase; }
body:not(.results-mode) .journey-node.is-startDate,
body:not(.results-mode) .journey-node.is-endDate { border-color: #d8b996; border-radius: 999px; background: #fff7ec; }
body:not(.results-mode) .journey-node.is-startDate .journey-kind,
body:not(.results-mode) .journey-node.is-endDate .journey-kind { color: #9d5c2a; }
body:not(.results-mode) .journey-node.is-start,
body:not(.results-mode) .journey-node.is-finish { border-color: #8eb8aa; border-radius: 16px 6px 16px 6px; background: #d0e7de; }
body:not(.results-mode) .journey-node.is-start .chip-edit,
body:not(.results-mode) .journey-node.is-finish .chip-edit { color: #123d43; }
body:not(.results-mode) .journey-node.is-start .journey-kind,
body:not(.results-mode) .journey-node.is-finish .journey-kind { color: #255a4f; }
body:not(.results-mode) .journey-node.is-region { border-color: #bacbb0; border-radius: 7px 17px 7px 17px; background: #f4f8ef; }
body:not(.results-mode) .journey-node.is-region .journey-kind { color: #4d6e3f; }
body:not(.results-mode) .journey-node.is-stay { border-color: #b9a9cb; border-radius: 17px 8px 17px 8px; background: #f6f0fa; box-shadow: inset 3px 0 0 #89759c, 0 2px 5px rgba(20,61,70,.06); }
body:not(.results-mode) .journey-node.is-stay .journey-kind { color: #766287; }
body:not(.results-mode) .journey-placeholder { padding: 7px 11px; border-color: #a9beb8; background: rgba(255,255,255,.42); color: #49615e; white-space: normal; text-align: left; }
body:not(.results-mode) .journey-placeholder.is-date { color: #806447; border-color: #d2bfa6; background: rgba(255,250,242,.56); }
body:not(.results-mode) button.journey-placeholder:hover { border-color: var(--where); background: white; color: var(--where); }
body:not(.results-mode) .journey-link {
  width: 25px;
  min-width: 25px;
  height: 2px;
  border-radius: 99px;
  background: linear-gradient(90deg, transparent, #7fa39b 18%, #7fa39b 82%, transparent);
}
body:not(.results-mode) .ribbon-step.is-row-start:not(:first-child) .journey-link { opacity: 0; }
body:not(.results-mode) .journey-gateway > span { color: #597570; }
body:not(.results-mode) .journey-gateway strong { color: var(--deep-ocean); }
body:not(.results-mode) .journey-gateway button { background: var(--green); color: white; font-weight: 600; }
body:not(.results-mode) .journey-gateway button:hover { background: var(--deep-ocean); }
body:not(.results-mode) .journey-gateway button:disabled { background: #9ca9a7; color: white; }
body:not(.results-mode) .journey-gateway button.is-current { background: #d4e3df; color: #184954; }
body:not(.results-mode) .preference-strand { border-color: rgba(20,61,70,.15); }
body:not(.results-mode) .preference-label { color: #526c68; }
body:not(.results-mode) .preference-toggle { color: var(--green); }
body:not(.results-mode) .preference-toggle:hover { background: rgba(255,255,255,.48); }
body:not(.results-mode) .preference-items button { border-color: #b8cdc5; background: rgba(255,255,255,.6); color: #3b5956; }
body:not(.results-mode) .preference-items button:hover { border-color: var(--green); color: var(--deep-ocean); }
body:not(.results-mode) .journey-ribbon button:focus-visible { outline-color: var(--green); }

@media (max-width: 720px) {
  body:not(.results-mode) .journey-track { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 7px 6px; }
  body:not(.results-mode) .ribbon-step { max-width: 100%; min-width: 0; width: 100%; }
  body:not(.results-mode) .ribbon-step:first-child { padding-left: 13px; }
  body:not(.results-mode) .journey-link { width: 13px; min-width: 13px; }
  body:not(.results-mode) .ribbon-step:nth-child(odd) .journey-link { opacity: 0; }
  body:not(.results-mode) .ribbon-step:nth-child(even) .journey-link { opacity: 1; }
  body:not(.results-mode) .journey-node,
  body:not(.results-mode) .journey-placeholder { max-width: 100%; width: 100%; min-width: 0; flex: 1 1 auto; }
  body:not(.results-mode) .journey-node .chip-edit { min-width: 0; flex: 1 1 auto; }
}

/* Review prototype: clearer zone discovery and a quieter, consistently shaped region vignette. */
.zone-jump { width: 145px; min-height: 38px; padding: 6px 28px 6px 10px; border: 1px solid #b6c9c5; border-radius: 9px; background: white; color: var(--green); font: inherit; font-size: .73rem; font-weight: 600; cursor: pointer; }
.zone-jump:focus-visible { outline: 3px solid var(--where); outline-offset: 2px; }
.zone-card { height: 130px; }
.zone-card, .zone-card:nth-child(3n+2), .zone-card:nth-child(3n), .zone-card.great-crossings-zone { background: linear-gradient(160deg, #e2f0ef 0%, #edf4f0 55%, #f5f3ec 100%); }
.zone-card:hover { background: linear-gradient(160deg, #d9ece9, #e9f2ec 58%, #f4f2e8); }
.zone-card[aria-pressed="true"] { background: linear-gradient(160deg, #d6eae7, #e5f0ea 58%, #f3f1e7); }
.zone-card-copy { right: 0; bottom: 0; left: 0; padding: 16px 11px 9px; border: 0; border-radius: 0; background: linear-gradient(180deg, rgba(249,252,250,.8), rgba(249,252,250,.98) 35%); backdrop-filter: none; box-shadow: none; }
.zone-card-copy strong { color: #243e45; font-weight: 600; }
.zone-card-copy small { color: #5a6c73; }

/* The two decisions are peers on wide screens; all choices remain visible and touch-sized. */
.line-category-card { min-height: 54px; }
.line-category-card small { display: none; }
.line-panel-head h4 { margin-bottom: 1px; }
.connection-preview { min-height: 49px; margin-bottom: 10px; padding: 8px 11px; display: block; }
.connection-preview > p { display: flex; flex-wrap: wrap; align-items: baseline; gap: 3px 9px; }
.connection-preview > p strong { font-size: .72rem; }
.connection-preview > p span { margin: 0; }
.connection-scale button { min-height: 65px; }
.connection-scale button > span { margin-bottom: 4px; }
@media (min-width: 1050px) {
  body.matters-open:not(.results-mode) .matters-shell { display: grid; grid-template-columns: minmax(0,1.12fr) minmax(0,.88fr); align-items: start; gap: 12px; }
  .matters-shell .sailings-section, .matters-shell .connections-section { min-width: 0; margin: 0; }
  .matters-shell .connections-section .section-heading { padding-right: 35px; }
  .matters-shell .line-category-card { padding: 8px; }
  .matters-shell .line-category-card strong { max-width: 100%; font-size: .72rem; line-height: 1.2; }
  .matters-shell .line-category-count { top: 3px; right: 3px; min-width: 18px; height: 18px; font-size: .55rem; }
  .matters-shell .sailing-constraints { grid-template-columns: 1fr; }
  .matters-shell .connection-scale { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .matters-shell .connection-scale button { padding: 6px; }
  .matters-shell .connection-scale strong { font-size: .72rem; }
  .matters-shell .connection-scale small { font-size: .63rem; }
  .matters-shell .gap-question .compact-choices { grid-template-columns: repeat(5,minmax(0,1fr)); }
}
@media (max-width: 720px) {
  .browser-heading { align-items: flex-start; }
  .browser-actions { flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
  .zone-jump { width: 125px; min-height: 44px; }
  .zone-card { height: 120px; }
  .zone-card-copy { padding: 13px 8px 7px; }
}

/* Designer simplification study. The approved journey ribbon and Results view are unchanged. */
body:not(.results-mode) .intent-cluster { padding: 0; border: 0; border-radius: 0; background: transparent; }
body:not(.results-mode) .stay-intent-cluster { padding-left: 12px; border-left: 1px solid #d6e0e1; }
body:not(.results-mode) .intent-cluster-label { margin: 0 0 7px 2px; color: #64747a; letter-spacing: .07em; }
body:not(.results-mode) .intent-tile { min-height: 64px; padding: 12px 14px; display: flex; justify-content: center; border: 1px solid #cbd6d7; border-radius: 8px; background: white; box-shadow: none; }
body:not(.results-mode) .intent-tile:hover { transform: none; border-color: var(--tile-accent); box-shadow: none; }
body:not(.results-mode) .intent-tile.is-active { border-color: var(--tile-accent); border-bottom-width: 3px; background: white; box-shadow: none; }
body:not(.results-mode) .intent-tile.is-active::after { display: none; }
body:not(.results-mode) .intent-heading { color: #30434b; font-size: 1.03rem; font-weight: 600; }
body:not(.results-mode) .intent-tile.is-active .intent-heading { color: var(--tile-accent); }
body:not(.results-mode) .intent-value, body:not(.results-mode) .intent-edit { display: none; }

body:not(.results-mode) .where-shell { --pane-accent: var(--where); }
body:not(.results-mode) .when-shell { --pane-accent: var(--when); }
body:not(.results-mode) .matters-shell { --pane-accent: var(--matters); }
body:not(.results-mode) .stays-shell { --pane-accent: var(--stays); }
body:not(.results-mode) :is(.where-shell,.when-shell,.matters-shell,.stays-shell) { border-color: #d0dadd; border-top: 2px solid var(--pane-accent); background: white; box-shadow: none; }
body:not(.results-mode) :is(.route-section,.geography-browser,.time-designer,.sailings-section,.connections-section,.stay-designer,.stay-timing) { border: 0; border-radius: 0; background: transparent; }
body:not(.results-mode) :is(.geography-browser,.stay-timing) { border-top: 1px solid #dce4e5; }
body:not(.results-mode) .connections-section { border-top: 1px solid #dce4e5; }
body:not(.results-mode) :is(.section-heading,.browser-heading) { margin-bottom: 15px; align-items: center; }
body:not(.results-mode) :is(.section-heading h3,.browser-heading h3) { margin: 0; color: #2f4149; font-size: 1.11rem; font-weight: 600; letter-spacing: -.025em; }
body:not(.results-mode) :is(.section-heading p,.browser-heading p) { display: none; }
body:not(.results-mode) .panel-close { top: 7px; right: 12px; width: auto; height: 44px; padding: 0 4px; border: 0; border-radius: 0; background: transparent; color: #596b73; font-size: .72rem; font-weight: 600; }
body:not(.results-mode) .panel-close svg { display: none; }
body:not(.results-mode) .panel-close::after { content: "Close"; }
body:not(.results-mode) .panel-close:hover { color: var(--pane-accent); }
body:not(.results-mode) :is(.section-clear,.region-panel-tools button) { color: var(--pane-accent); font-size: .7rem; text-decoration: none; }

body:not(.results-mode) :is(.date-range-question,.journey-span-question,.stay-place-field,.stay-length-question,.preference-question,.connection-question) { min-width: 0; padding: 8px 0 0; border: 0; border-top: 1px solid #dce4e5; border-radius: 0; background: transparent; }
body:not(.results-mode) :is(.date-range-question,.journey-span-question,.stay-length-question,.preference-question,.connection-question) legend { padding: 0 5px 0 0; color: #3f5058; font-size: .75rem; font-weight: 650; letter-spacing: .025em; }
body:not(.results-mode) .date-range-question { padding-top: 10px; }
body:not(.results-mode) .journey-span-question { margin-top: 16px; }
body:not(.results-mode) :is(.preference-question,.connection-question) > p { display: none; }
body:not(.results-mode) .route-composer { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; padding: 0; border: 0; border-radius: 0; background: transparent; }
body:not(.results-mode) .route-step { padding: 4px 0 7px; border-bottom: 1px solid #d5e0e1; }
body:not(.results-mode) .route-step > span { color: #5d7077; }
body:not(.results-mode) .route-arrow, body:not(.results-mode) .route-button svg { display: none; }
body:not(.results-mode) .route-button { width: 100%; min-height: 44px; font-weight: 550; }
body:not(.results-mode) .route-step:focus-within { border-bottom-color: var(--where); }

body:not(.results-mode) .zone-rail { gap: 7px; padding-bottom: 8px; }
body:not(.results-mode) .zone-card, body:not(.results-mode) .zone-card:nth-child(3n+2), body:not(.results-mode) .zone-card:nth-child(3n) { min-width: 175px; height: 54px; padding: 0 10px 0 6px; display: flex; align-items: center; border: 0; border-bottom: 1px solid #cbd7d9; border-radius: 0; background: transparent; box-shadow: none; }
body:not(.results-mode) .zone-card:hover { transform: none; border-bottom-color: var(--where); background: transparent; }
body:not(.results-mode) .zone-card[aria-pressed="true"] { border-bottom: 2px solid var(--where); background: transparent; box-shadow: none; }
body:not(.results-mode) .zone-card.has-selection { box-shadow: none; }
body:not(.results-mode) .zone-card-copy { position: static; min-width: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
body:not(.results-mode) .zone-card-copy strong { color: #32454d; font-size: .76rem; font-weight: 550; line-height: 1.25; }
body:not(.results-mode) .zone-card[aria-pressed="true"] .zone-card-copy strong { color: var(--where); }
body:not(.results-mode) .zone-card.has-selection .zone-card-copy strong::after { content: "•"; margin-left: 6px; color: var(--where); font-size: .9rem; vertical-align: middle; }
body:not(.results-mode) .zone-jump { min-height: 38px; border: 0; border-bottom: 1px solid #b8c9cb; border-radius: 0; background: transparent; }
body:not(.results-mode) .rail-controls button { width: auto; height: 36px; padding: 0 5px; border: 0; border-radius: 0; background: transparent; color: var(--where); font-size: .69rem; }
body:not(.results-mode) .region-panel { margin-top: 7px; border-top-color: #dce4e5; }
body:not(.results-mode) .region-panel-head h4 { color: #32454d; font-size: .89rem; font-weight: 600; }
body:not(.results-mode) .region-panel-tools { gap: 12px; }
body:not(.results-mode) .region-panel-tools span { font-size: .69rem; }
body:not(.results-mode) :is(.region-pills,.line-pills) { gap: 5px 14px; }
body:not(.results-mode) :is(.region-pill,.line-pill) { min-height: 44px; padding: 7px 2px; display: inline-flex; align-items: center; gap: 8px; border: 0; border-bottom: 1px solid #d5dfe0; border-radius: 0; background: transparent; box-shadow: none; color: #34464d; text-align: left; }
body:not(.results-mode) :is(.region-pill,.line-pill)::before { content: ""; width: 14px; height: 14px; flex: 0 0 auto; border: 1.5px solid #99a8aa; border-radius: 50%; background: white; }
body:not(.results-mode) :is(.region-pill,.line-pill)::before { border-radius: 3px; }
body:not(.results-mode) :is(.region-pill,.line-pill)[aria-pressed="true"] { border-color: var(--pane-accent); background: transparent; color: var(--pane-accent); box-shadow: none; }
body:not(.results-mode) :is(.region-pill,.line-pill)[aria-pressed="true"]::before { content: "✓"; display: grid; place-items: center; border-color: var(--pane-accent); background: var(--pane-accent); color: white; font-size: .62rem; font-weight: 700; }
body:not(.results-mode) :is(.region-pill,.line-pill) strong { font-size: .75rem; font-weight: 550; white-space: normal; }
body:not(.results-mode) :is(.region-pill,.line-pill) small { padding: 0; border: 0; font-size: .62rem; }
body:not(.results-mode) :is(.region-pill,.line-pill).is-unavailable { opacity: .55; }

body:not(.results-mode) .line-category-rail { gap: 7px; }
body:not(.results-mode) .line-category-card { min-height: 50px; padding: 6px 5px; display: flex; align-items: center; gap: 7px; border: 0; border-bottom: 1px solid #d1dbdd; border-radius: 0; background: transparent; text-align: left; }
body:not(.results-mode) .line-category-card::before { content: ""; width: 13px; height: 13px; flex: 0 0 auto; border: 1.5px solid #9aa8aa; border-radius: 50%; }
body:not(.results-mode) .line-category-card[aria-pressed="true"] { border: 0; border-bottom: 2px solid var(--matters); background: transparent; }
body:not(.results-mode) .line-category-card[aria-pressed="true"]::before { border-color: var(--matters); background: radial-gradient(circle, var(--matters) 0 3px, white 3.5px); }
body:not(.results-mode) .line-category-card strong { max-width: 100%; color: #34464d; font-size: .72rem; font-weight: 550; }
body:not(.results-mode) .line-category-card.has-selection strong::after { content: "•"; margin-left: 5px; color: var(--matters); font-size: .9rem; vertical-align: middle; }
body:not(.results-mode) .line-panel { margin-top: 12px; padding: 7px 0 0; border: 0; border-top: 1px solid #dce4e5; border-radius: 0; background: transparent; }
body:not(.results-mode) .line-panel-head h4 { color: #34464d; font-size: .84rem; font-weight: 600; }
body:not(.results-mode) .line-panel-head button { min-height: 44px; padding: 4px; border: 0; border-radius: 0; background: transparent; color: var(--matters); }
body:not(.results-mode) .sailing-constraints { margin-top: 14px; }
body:not(.results-mode) .connection-preview { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
body:not(.results-mode) .connection-scale button { min-height: 48px; padding: 6px 4px; }

body:not(.results-mode) :is(.choice-pills button,.connection-scale button,.stay-mode-choices button) { min-height: 44px; padding: 7px 5px; display: flex; align-items: center; gap: 7px; border: 0; border-bottom: 1px solid #d4dddf; border-radius: 0; background: transparent; box-shadow: none; color: #34464d; text-align: left; }
body:not(.results-mode) :is(.choice-pills button,.connection-scale button,.stay-mode-choices button)::before { content: ""; width: 13px; height: 13px; flex: 0 0 auto; border: 1.5px solid #9aa8aa; border-radius: 50%; background: white; }
body:not(.results-mode) :is(.choice-pills button,.connection-scale button,.stay-mode-choices button)[aria-pressed="true"] { border: 0; border-bottom: 2px solid var(--pane-accent); background: transparent; color: var(--pane-accent); }
body:not(.results-mode) :is(.choice-pills button,.connection-scale button,.stay-mode-choices button)[aria-pressed="true"]::before { border-color: var(--pane-accent); background: radial-gradient(circle, var(--pane-accent) 0 3px, white 3.5px); }
body:not(.results-mode) :is(.choice-pills button,.connection-scale button,.stay-mode-choices button) strong { color: inherit; font-size: .73rem; font-weight: 550; line-height: 1.25; }
body:not(.results-mode) :is(.choice-pills button,.connection-scale button,.stay-mode-choices button) small { display: none; }
body:not(.results-mode) :is(.choice-pills button,.connection-scale button,.stay-mode-choices button):disabled { color: #8f9a9e; background: transparent; opacity: .55; }
body:not(.results-mode) .connection-scale button > span { display: none; }
body:not(.results-mode) .gap-question .compact-choices { max-width: none; }

body:not(.results-mode) .date-field-trigger { min-height: 44px; padding: 6px 2px; border: 0; border-bottom: 1px solid #cbd7d9; border-radius: 0; background: transparent; box-shadow: none; }
body:not(.results-mode) :is(#start-date-trigger,#end-date-trigger).is-active-boundary { border: 0; border-bottom: 2px solid var(--when); background: transparent; box-shadow: none; }
body:not(.results-mode) .date-range-question { background: transparent; }
body:not(.results-mode) .availability-shortcuts button { min-height: 42px; padding: 5px 8px; border: 0; border-bottom: 1px solid #d4dddf; border-radius: 0; background: transparent; }
body:not(.results-mode) .availability-shortcuts button:hover { border-color: var(--when); background: transparent; }
body:not(.results-mode) .availability-month { min-height: 49px; padding: 6px 4px; border: 0; border-bottom: 1px solid #d6dfe1; border-radius: 0; background: transparent; }
body:not(.results-mode) .availability-month.is-active { border: 0; border-bottom: 2px solid var(--when); box-shadow: none; }
body:not(.results-mode) .availability-month.is-in-range { background: #faf8f3; }
body:not(.results-mode) .availability-picker { border: 1px solid #d6dfe0; border-top: 2px solid var(--when); background: white; box-shadow: 0 8px 24px rgba(25,49,51,.08); }
body:not(.results-mode) #close-availability-picker { width: auto; height: 34px; padding: 0 4px; border: 0; border-radius: 0; background: transparent; color: #596b73; font-size: .72rem; }
body:not(.results-mode) #close-availability-picker svg { display: none; }
body:not(.results-mode) #close-availability-picker::after { content: "Close"; }
body:not(.results-mode) .availability-signal-note { color: #64747a; }

body:not(.results-mode) :is(.stay-place-field,.stay-length-question) { padding-top: 10px; }
body:not(.results-mode) .stay-place-field > label { padding: 0; color: #3f5058; font-size: .75rem; font-weight: 650; }
body:not(.results-mode) .stay-place-input { border: 0; border-bottom: 1px solid #cbd7d9; border-radius: 0; background: transparent; }
body:not(.results-mode) .stay-place-input button { border-radius: 5px; }
body:not(.results-mode) .stay-mode-choices button { min-height: 48px; }
body:not(.results-mode) .stay-timing-summary { margin-top: 8px; padding: 8px 0; border: 0; border-top: 1px solid #dce4e5; border-radius: 0; background: transparent; }

@media (min-width: 1050px) {
  body:not(.results-mode) .matters-shell .connections-section { border-top: 0; border-left: 1px solid #dce4e5; padding-left: 21px; }
}
@media (max-width: 720px) {
  body:not(.results-mode) :is(.section-clear,.region-panel-tools button) { min-height: 44px; }
  body:not(.results-mode) .intent-groups { grid-template-columns: 1fr; gap: 11px; }
  body:not(.results-mode) .cruise-intent-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  body:not(.results-mode) .stay-intent-cluster { padding: 0; border: 0; }
  body:not(.results-mode) .intent-tile { min-height: 50px; padding: 8px; }
  body:not(.results-mode) .intent-heading { font-size: .78rem; }
  body:not(.results-mode) .intent-tile.is-active::after { display: none; }
  body:not(.results-mode) :is(.where-shell,.when-shell,.matters-shell,.stays-shell) { border: 0; border-top: 2px solid var(--pane-accent); background: white; }
  body:not(.results-mode) .route-composer { grid-template-columns: 1fr 1fr; gap: 8px 12px; }
  body:not(.results-mode) .finish-step { grid-column: 1 / -1; margin-top: 0; padding-top: 4px; border-top: 0; }
  body:not(.results-mode) .line-category-rail { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); overflow: visible; }
  body:not(.results-mode) .line-category-card { min-width: 0; }
  body:not(.results-mode) .line-pills { grid-template-columns: 1fr 1fr; }
  body:not(.results-mode) :is(.choice-pills,.choice-pills.compact-choices,.gap-question .compact-choices,.stay-mode-choices,.connection-scale) { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); overflow: visible; }
  body:not(.results-mode) .choice-pills.journey-span-choices { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); overflow: visible; }
  body:not(.results-mode) :is(.choice-pills button,.connection-scale button,.stay-mode-choices button) { min-width: 0; }
  body:not(.results-mode) .zone-card, body:not(.results-mode) .zone-card:nth-child(3n+2), body:not(.results-mode) .zone-card:nth-child(3n) { min-width: 145px; height: 54px; }
}

/* Designer polish: one visual family, distinct navigation/choice/multi-select behavior. */
body:not(.results-mode) .where-shell { --pane-wash: #f3f8f8; --pane-selected: #e7f2f0; }
body:not(.results-mode) .when-shell { --pane-wash: #fbf8f4; --pane-selected: #f8eadc; }
body:not(.results-mode) .matters-shell { --pane-wash: #f5f8f9; --pane-selected: #eaf0f2; }
body:not(.results-mode) .stays-shell { --pane-wash: #f8f6f9; --pane-selected: #f0eaf3; }
body:not(.results-mode) :is(.where-shell,.when-shell,.matters-shell,.stays-shell) { background: linear-gradient(180deg,#f5f9fb 0,#ffffff 185px); border-color: #cedce2; border-top-color: var(--pane-accent); }
body:not(.results-mode) :is(.route-section,.geography-browser,.time-designer,.sailings-section,.connections-section,.stay-designer,.stay-timing) { padding: 16px; border: 1px solid #e0e8eb; border-radius: 12px; background: var(--pane-wash); }
body:not(.results-mode) :is(.geography-browser,.stay-timing) { margin-top: 12px; }
body:not(.results-mode) .section-heading h3, body:not(.results-mode) .browser-heading h3 { color: #2d4650; }
body:not(.results-mode) .intent-tile { background: #fbfcfc; }
body:not(.results-mode) .intent-tile.is-active { background: #f8fbfc; }

body:not(.results-mode) .route-heading { position: relative; min-height: 44px; padding-right: 105px; }
body:not(.results-mode) .route-clear { position: absolute; top: 0; right: 0; margin: 0; }
body:not(.results-mode) .route-composer { align-items: stretch; }
body:not(.results-mode) .route-step { min-height: 119px; padding: 10px 12px 8px; display: grid; grid-template-rows: auto minmax(44px,auto) 44px; align-content: start; border: 1px solid #d8e4e5; border-radius: 9px; background: #fff; }
body:not(.results-mode) .route-step:focus-within { border-color: var(--where); }
body:not(.results-mode) .route-step > span { margin: 0; align-self: center; }
body:not(.results-mode) .route-aux-slot { min-height: 44px; display: flex; align-items: center; }
body:not(.results-mode) .nearby-inline { min-height: 44px; margin: 0; }
body:not(.results-mode) .finish-step { margin: 0; border: 1px solid #d8e4e5; }

body:not(.results-mode) .zone-rail { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 8px; overflow: visible; padding: 0; scroll-snap-type: none; }
body:not(.results-mode) .zone-card, body:not(.results-mode) .zone-card:nth-child(3n+2), body:not(.results-mode) .zone-card:nth-child(3n) { min-width: 0; width: 100%; height: 72px; padding: 10px 12px; justify-content: flex-start; border: 1px solid #d0dfe1; border-radius: 9px; background: #fff; }
body:not(.results-mode) .zone-card:hover { border-color: #90b2b7; background: #fbfdfd; }
body:not(.results-mode) .zone-card[aria-pressed="true"] { border: 1px solid var(--where); background: var(--pane-selected); box-shadow: inset 0 0 0 1px var(--where); }
body:not(.results-mode) .zone-card.has-selection { border-color: #8eaeb0; }
body:not(.results-mode) .zone-card-copy strong { font-size: .8rem; font-weight: 600; line-height: 1.25; }
body:not(.results-mode) .zone-jump, body:not(.results-mode) .rail-controls { display: none; }
body:not(.results-mode) .region-panel { margin-top: 15px; padding-top: 13px; }

body:not(.results-mode) :is(.region-pill,.line-pill) { min-height: 40px; padding: 7px 12px; gap: 5px; border: 1px solid #cbd9dc; border-radius: 999px; background: #fff; }
body:not(.results-mode) :is(.region-pill,.line-pill)::before { display: none; }
body:not(.results-mode) :is(.region-pill,.line-pill)[aria-pressed="true"] { border: 1px solid var(--pane-accent); background: var(--pane-selected); box-shadow: none; }
body:not(.results-mode) :is(.region-pill,.line-pill)[aria-pressed="true"]::after { content: "✓"; margin-left: 3px; font-size: .69rem; font-weight: 700; }
body:not(.results-mode) :is(.region-pill,.line-pill).is-unavailable { opacity: .42; }
body:not(.results-mode) .region-pill strong, body:not(.results-mode) .line-pill strong { font-size: .76rem; }

body:not(.results-mode) .line-category-rail { gap: 7px; }
body:not(.results-mode) .line-category-card { min-height: 55px; padding: 9px 10px; border: 1px solid #d5e0e3; border-radius: 8px; background: #fff; }
body:not(.results-mode) .line-category-card::before { display: none; }
body:not(.results-mode) .line-category-card[aria-pressed="true"] { border: 1px solid var(--matters); background: var(--pane-selected); box-shadow: inset 0 0 0 1px var(--matters); }
body:not(.results-mode) .line-category-card strong { font-size: .76rem; }
body:not(.results-mode) .line-panel { margin-top: 10px; padding: 10px 0 0; }

body:not(.results-mode) :is(.choice-pills button,.connection-scale button,.stay-mode-choices button) { min-height: 44px; padding: 8px 9px; border: 1px solid #d4dfe2; border-radius: 7px; background: #fff; text-align: center; justify-content: center; }
body:not(.results-mode) :is(.choice-pills button,.connection-scale button,.stay-mode-choices button)::before { display: none; }
body:not(.results-mode) :is(.choice-pills button,.connection-scale button,.stay-mode-choices button)[aria-pressed="true"] { border: 1px solid var(--pane-accent); background: var(--pane-selected); box-shadow: inset 0 0 0 1px var(--pane-accent); }
body:not(.results-mode) :is(.choice-pills button,.connection-scale button,.stay-mode-choices button) strong { font-size: .76rem; text-align: center; }

body:not(.results-mode) .availability-shortcuts { display: block; }
body:not(.results-mode) .availability-shortcuts > span { display: block; margin-bottom: 8px; }
body:not(.results-mode) .availability-shortcuts > div { display: flex; flex-wrap: wrap; overflow: visible; }
body:not(.results-mode) .availability-shortcuts button { min-height: 44px; padding: 7px 11px; border: 1px solid #e1d5ca; border-radius: 7px; background: #fff; }
body:not(.results-mode) .availability-shortcuts button:hover { border-color: var(--when); background: var(--pane-selected); }
body:not(.results-mode) .choice-pills.journey-span-choices { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 7px; overflow: visible; }
body:not(.results-mode) .choice-pills.journey-span-choices button, body:not(.results-mode) .choice-pills.journey-span-choices button:last-child { min-width: 0; width: 100%; min-height: 44px; flex: none; }

@media (max-width: 1099px) {
  body:not(.results-mode) .zone-rail { grid-template-columns: repeat(4,minmax(0,1fr)); }
  body:not(.results-mode) .choice-pills.journey-span-choices { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 720px) {
  body:not(.results-mode) :is(.route-section,.geography-browser,.time-designer,.sailings-section,.connections-section,.stay-designer,.stay-timing) { padding: 14px; }
  body:not(.results-mode) .line-panel-head { align-items: flex-start; flex-direction: column; gap: 4px; }
  body:not(.results-mode) .line-panel-head > div:last-child { align-self: flex-end; white-space: nowrap; }
  body:not(.results-mode) .route-composer { align-items: stretch; }
  body:not(.results-mode) .route-step { min-height: 119px; }
  body:not(.results-mode) .finish-step { grid-column: 1 / -1; }
  body:not(.results-mode) .zone-rail { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; margin: 0; padding: 0; }
  body:not(.results-mode) .zone-card, body:not(.results-mode) .zone-card:nth-child(3n+2), body:not(.results-mode) .zone-card:nth-child(3n) { height: 64px; }
  body:not(.results-mode) .zone-jump { display: block; min-height: 44px; }
  body:not(.results-mode) :is(.region-pill,.line-pill) { min-height: 44px; }
  body:not(.results-mode) .choice-pills.journey-span-choices { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

/* Designer field and transfer rhythm refinement. */
body:not(.results-mode) .time-composer { grid-template-columns: repeat(3,minmax(0,1fr)); align-items: stretch; gap: 16px; }
body:not(.results-mode) :is(.time-field,.journey-span-question) { min-width: 0; min-height: 119px; margin: 0; padding: 10px 12px 8px; border: 1px solid #eaded3; border-radius: 9px; background: #fff; }
body:not(.results-mode) .time-field-heading { min-height: 18px; margin: 0; }
body:not(.results-mode) :is(.time-field-label,.journey-span-question label) { color: #6f5848; font-size: .64rem; font-weight: 650; letter-spacing: .055em; text-transform: uppercase; }
body:not(.results-mode) .date-field-trigger { min-height: 55px; padding: 5px 0; border: 0; background: transparent; color: #34464d; font-size: .78rem; font-weight: 550; }
body:not(.results-mode) .date-field-trigger.is-placeholder { color: #77868a; }
body:not(.results-mode) :is(#start-date-trigger,#end-date-trigger).is-active-boundary { border: 0; background: transparent; color: #9b602c; box-shadow: none; }
body:not(.results-mode) .time-field:focus-within, body:not(.results-mode) .journey-span-question:focus-within { border-color: var(--when); box-shadow: inset 0 0 0 1px var(--when); }
body:not(.results-mode) .journey-span-question label { display: block; margin: 0; }
body:not(.results-mode) .journey-span-question select { width: 100%; min-height: 55px; padding: 6px 20px 6px 0; border: 0; background: transparent; color: #34464d; font: inherit; font-size: .78rem; font-weight: 550; cursor: pointer; }
body:not(.results-mode) .journey-span-question small { display: block; color: #7a7773; font-size: .61rem; line-height: 1.2; }
body:not(.results-mode) .date-range-question { border-top: 0; padding-top: 0; }
body:not(.results-mode) .date-range-question legend { margin-bottom: 10px; }
body:not(.results-mode) .availability-shortcuts { margin-top: 16px; padding-top: 12px; border-top: 1px solid #e7ded6; }
body:not(.results-mode) .stay-place-field { padding: 10px 12px 8px; border: 1px solid #e2dbe7; border-radius: 9px; background: #fff; }
body:not(.results-mode) .stay-place-field > label { color: #665969; font-size: .64rem; letter-spacing: .055em; text-transform: uppercase; }
body:not(.results-mode) .stay-place-input { min-height: 44px; border: 0; background: transparent; }
body:not(.results-mode) .stay-place-input input { font-size: .78rem; }
body:not(.results-mode) .stay-place-field:focus-within { border-color: var(--stays); box-shadow: inset 0 0 0 1px var(--stays); }
body:not(.results-mode) :is(.region-pill,.line-pill) { justify-content: center; text-align: center; }
body:not(.results-mode) :is(.region-pill,.line-pill)[aria-pressed="true"]::before { display: none; }
body:not(.results-mode) :is(.region-pill,.line-pill)[aria-pressed="true"]::after { display: none; }
body:not(.results-mode) :is(.zone-card,.line-category-card) { justify-content: center; text-align: center; }
body:not(.results-mode) .zone-card-copy { width: 100%; text-align: center; }
body:not(.results-mode) :is(.choice-pills button,.connection-scale button,.stay-mode-choices button) { text-align: center; }
body:not(.results-mode) .connection-preview { position: static; width: auto; height: auto; margin: 14px 0 0; padding: 13px 14px; overflow: visible; clip: auto; white-space: normal; border: 1px solid #d9e2e5; border-radius: 9px; background: #fff; }
body:not(.results-mode) .connection-preview-heading { display: flex; justify-content: space-between; gap: 10px; align-items: baseline; }
body:not(.results-mode) .connection-preview-heading strong { color: #425861; font-size: .74rem; font-weight: 600; }
body:not(.results-mode) .connection-preview-heading small { color: #75848a; font-size: .7rem; }
body:not(.results-mode) .connection-chain { display: flex; align-items: center; gap: 0; overflow: visible; margin-top: 13px; }
body:not(.results-mode) .connection-cruise { min-width: 0; width: 78px; height: 36px; padding: 5px; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid #b9cbd0; border-radius: 7px; background: #f4f8f9; color: #3d5964; font-size: .68rem; font-weight: 600; }
body:not(.results-mode) .connection-link { min-width: 0; height: 39px; flex: 1 1 auto; display: flex; flex-direction: column; justify-content: center; gap: 6px; }
body:not(.results-mode) .connection-link i { min-height: 1px; }
body:not(.results-mode) .connection-link small { margin: 0; color: #647780; font-size: .68rem; text-align: center; white-space: nowrap; }
@media (max-width: 720px) {
  body:not(.results-mode) .time-composer { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
  body:not(.results-mode) .time-field { min-height: 106px; }
  body:not(.results-mode) .journey-span-question { grid-column: 1 / -1; grid-row: 2; min-height: 0; }
  body:not(.results-mode) .connection-preview { padding: 12px; }
  body:not(.results-mode) .connection-cruise { width: 68px; }
  body:not(.results-mode) .connection-link small { font-size: .62rem; }
  body:not(.results-mode) .connection-preview-heading { flex-wrap: wrap; }
}

/* Compact, aligned entry fields and a clearer cruise/stay navigation boundary. */
@media (min-width: 901px) {
  body:not(.results-mode) .intent-groups { grid-template-columns: minmax(0,2.7fr) minmax(225px,.9fr); gap: 42px; }
  body:not(.results-mode) .stay-intent-cluster { padding-left: 19px; border-left-color: #bdcbd1; }
}
body:not(.results-mode) .panel-close { top: 9px; right: 11px; width: 44px; height: 44px; padding: 0; display: grid; place-items: center; border-radius: 50%; }
body:not(.results-mode) .panel-close svg { display: block; width: 16px; height: 16px; }
body:not(.results-mode) .panel-close::after { display: none; }
body:not(.results-mode) .panel-close:hover { background: rgba(210,223,227,.5); }
body:not(.results-mode) :is(.route-heading,.time-designer > .section-heading,.stay-designer > .section-heading,.sailings-section > .section-heading,.connections-section > .section-heading) { min-height: 44px; }
body:not(.results-mode) .date-range-question { padding: 0; border: 0; }
body:not(.results-mode) .date-range-question legend { margin: 0; }
body:not(.results-mode) .route-step { min-height: 107px; padding: 7px 10px; grid-template-rows: 15px 42px 34px; align-content: start; }
body:not(.results-mode) .route-step > span { font-size: .65rem; }
body:not(.results-mode) .route-button { min-height: 44px; width: 100%; justify-content: center; color: #30454e; font-size: 1rem; text-align: center; }
body:not(.results-mode) .route-aux-slot { min-height: 34px; justify-content: center; }
body:not(.results-mode) .nearby-inline { min-height: 44px; }
body:not(.results-mode) :is(.time-field,.journey-span-question) { min-height: 93px; padding: 9px 10px 7px; position: relative; }
body:not(.results-mode) .time-field-heading { min-height: 15px; }
body:not(.results-mode) .date-field-trigger, body:not(.results-mode) .journey-span-question select { min-height: 57px; padding: 5px 24px 5px 0; justify-content: center; color: #30454e; font-size: 1rem; text-align: center; text-align-last: center; }
body:not(.results-mode) .journey-span-question select { appearance: none; -webkit-appearance: none; cursor: pointer; }
body:not(.results-mode) .date-field-trigger > span:first-child { min-width: 0; flex: 1; }
body:not(.results-mode) .field-chevron { position: absolute; right: 10px; top: 41px; color: #7b888c; font-size: 1.15rem; line-height: 1; pointer-events: none; }
body:not(.results-mode) .date-field-trigger .field-chevron { right: 10px; }
body:not(.results-mode) .journey-span-question label { min-height: 15px; }
body:not(.results-mode) .journey-span-question small { display: none; }
body:not(.results-mode) .stay-place-group { min-width: 0; }
body:not(.results-mode) .stay-place-field { min-height: 88px; padding: 9px 10px 7px; }
body:not(.results-mode) .stay-place-field > label { margin: 0; }
body:not(.results-mode) .stay-place-input { min-height: 58px; }
body:not(.results-mode) .stay-place-input input { font-size: 1rem; text-align: center; }
body:not(.results-mode) .stay-place-group > p { margin: 6px 2px 0; color: #65747a; font-size: .7rem; line-height: 1.35; }
body:not(.results-mode) .line-browser-heading { margin: 1px 0 12px; display: flex; align-items: center; gap: 8px; color: #3f5058; font-size: .75rem; font-weight: 650; letter-spacing: .025em; }
body:not(.results-mode) .line-browser-heading::after { content: ""; min-width: 0; height: 1px; flex: 1; background: #dce4e5; }
body:not(.results-mode) .line-category-card { min-height: 58px; }
body:not(.results-mode) .line-category-card strong { width: 100%; min-height: 2.5em; max-width: 100%; display: grid; place-items: center; line-height: 1.25; }
body:not(.results-mode) .line-panel-head { min-height: 36px; align-items: center; }
body:not(.results-mode) .line-panel-head > div { white-space: nowrap; }
@media (max-width: 720px) {
  body:not(.results-mode) .route-step { min-height: 107px; }
  body:not(.results-mode) .time-field { min-height: 93px; }
  body:not(.results-mode) .journey-span-question { min-height: 93px; }
  body:not(.results-mode) .line-panel-head { flex-direction: row; align-items: center; }
}

/* Ribbon-first Designer exploration. Results retain their approved presentation. */
.results-mode .designer-preferences-access, .results-mode .ribbon-readiness { display: none; }
body:not(.results-mode) .intent-groups { display: none; }
body:not(.results-mode) .journey-ribbon { padding-bottom: 17px; }
body:not(.results-mode) .journey-ribbon-body { grid-template-columns: minmax(0,1fr) 184px; gap: 20px; }
body:not(.results-mode) .journey-track { min-height: 110px; align-content: center; gap: 8px 0; }
body:not(.results-mode) .journey-placeholder { min-width: 155px; min-height: 56px; padding: 7px 12px; display: flex; flex-direction: column; justify-content: center; gap: 2px; border-style: dashed; background: rgba(255,255,255,.66); }
body:not(.results-mode) .journey-placeholder small { color: #667b82; font-size: .59rem; font-weight: 650; letter-spacing: .06em; text-transform: uppercase; }
body:not(.results-mode) .journey-placeholder span { color: #36515a; font-size: .75rem; font-weight: 600; line-height: 1.25; }
body:not(.results-mode) .journey-placeholder.is-date { min-width: 165px; }
body:not(.results-mode) .ribbon-step.is-stay-step { margin-left: 12px; }
body:not(.results-mode) .ribbon-stay-action { min-height: 48px; padding: 8px 12px; border: 1px dashed #b9abc7; border-radius: 14px 7px 14px 7px; background: rgba(255,255,255,.62); color: #675476; cursor: pointer; font: inherit; font-size: .74rem; font-weight: 600; }
body:not(.results-mode) .ribbon-stay-action:hover { border-style: solid; background: #fff; }
body:not(.results-mode) .is-stay-step .journey-node { min-height: 48px; }
body:not(.results-mode) .is-destination-group { max-width: min(440px,100%); }
body:not(.results-mode) .is-destination-group .chip-edit { max-width: 405px; }
body:not(.results-mode) .journey-gateway { align-self: center; }
body:not(.results-mode) .journey-gateway button:disabled { cursor: not-allowed; background: #a6b6ba; }
body:not(.results-mode) .journey-ribbon:not(.is-ready) .journey-gateway > span, body:not(.results-mode) .journey-ribbon:not(.is-ready) .journey-gateway > strong, body:not(.results-mode) .journey-ribbon:not(.is-ready) .journey-gateway > small { display: none; }
body:not(.results-mode) .ribbon-readiness { margin: 7px 0 0; color: #506973; font-size: .68rem; line-height: 1.3; }
body:not(.results-mode) .preference-strand { display: none; }
body:not(.results-mode) .designer-preferences-access { margin: 10px 0 0; display: flex; justify-content: flex-end; }
body:not(.results-mode) .designer-preferences-access button { min-height: 44px; padding: 6px 10px; display: inline-flex; align-items: center; gap: 8px; border: 1px solid #d2dfe3; border-radius: 8px; background: white; color: #344c55; cursor: pointer; font: inherit; font-size: .72rem; font-weight: 650; }
body:not(.results-mode) .designer-preferences-access button span:first-child { color: #687980; font-size: .68rem; font-weight: 450; }
body:not(.results-mode) .designer-preferences-access button[aria-expanded="true"] { border-color: var(--matters); background: #f4f8f9; }
body:not(.results-mode) :is(.journey-placeholder,.ribbon-stay-action,.designer-preferences-access button):focus-visible { outline: 3px solid #346a72; outline-offset: 2px; }
body:not(.results-mode) .destination-disclosure { margin: 15px 0 12px; padding: 13px 0 0; border: 0; border-top: 1px solid #dce8e5; border-radius: 0; background: transparent; }
body:not(.results-mode) .destination-disclosure > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
body:not(.results-mode) .destination-disclosure strong { color: #31584f; font-size: .76rem; }
body:not(.results-mode) .destination-disclosure button { min-height: 44px; padding: 5px 9px; border: 0; border-radius: 6px; background: transparent; color: #31584f; cursor: pointer; font: inherit; font-size: .7rem; }
body:not(.results-mode) .destination-disclosure ul { margin: 7px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; list-style: none; }
body:not(.results-mode) .destination-disclosure li { padding: 0 0 0 10px; display: inline-flex; align-items: center; gap: 3px; border: 1px solid #cdded5; border-radius: 999px; background: white; color: #36564f; font-size: .72rem; }
body:not(.results-mode) .destination-disclosure li button { width: 44px; min-height: 44px; padding: 0; }
body:not(.results-mode) .endpoint-menu { width: min(410px,90vw); max-height: min(690px,75vh); overflow-y: auto; }
body:not(.results-mode) .endpoint-browser { margin-top: 10px; padding-top: 10px; border-top: 1px solid #d9e4e4; }
body:not(.results-mode) .endpoint-browser label { margin-bottom: 6px; display: block; color: #3b5960; font-size: .72rem; font-weight: 650; }
body:not(.results-mode) .endpoint-browser select { width: 100%; min-height: 44px; padding: 7px 10px; border: 1px solid #c9d8dc; border-radius: 8px; background: #fff; color: #314b54; font: inherit; font-size: .75rem; }
body:not(.results-mode) .endpoint-browser-help { margin: 7px 2px 2px; color: #667a80; font-size: .69rem; }
body:not(.results-mode) .endpoint-browser-list { max-height: 235px; margin-top: 6px; overflow-y: auto; border-top: 1px solid #e3e9ea; }
body:not(.results-mode) .endpoint-browser-list button + button { border-top: 1px solid #eef1f2; border-radius: 0; }
@media (max-width: 900px) {
  body:not(.results-mode) .journey-ribbon-body { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  body:not(.results-mode) .journey-track { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body:not(.results-mode) .journey-placeholder { min-width: 0; width: 100%; }
  body:not(.results-mode) .ribbon-step.is-stay-step { margin-left: 0; }
  body:not(.results-mode) .ribbon-stay-action { width: 100%; }
  body:not(.results-mode) .designer-preferences-access button span:first-child { display: none; }
  body:not(.results-mode) .endpoint-menu { width: min(380px,calc(100vw - 64px)); }
}

/* The Designer ribbon is the primary choice surface; Results retains its own compact ribbon. */
body:not(.results-mode) .journey-ribbon { padding: 25px 28px 23px; border-radius: 20px; background: linear-gradient(180deg,#dcebf4 0%,#edf5f9 100%); }
body:not(.results-mode) .journey-ribbon-heading { margin-bottom: 18px; }
body:not(.results-mode) .journey-ribbon-heading h2 { font-size: clamp(1.32rem,2vw,1.7rem); font-weight: 610; letter-spacing: -.025em; }
body:not(.results-mode) .journey-ribbon-body { display: block; }
body:not(.results-mode) .journey-track { min-height: 122px; padding: 0; display: flex; flex-wrap: wrap; align-items: stretch; gap: 12px; }
body:not(.results-mode) .ribbon-step { position: relative; display: flex; flex: 1 1 185px; min-width: 175px; max-width: 100%; margin: 0; padding: 0; }
body:not(.results-mode) .ribbon-step.is-stay-step { margin-left: 0; }
body:not(.results-mode) .ribbon-step .journey-link { position: absolute; z-index: 0; top: 50%; left: -12px; width: 12px; min-width: 12px; height: 1px; background: #82a1b4; opacity: 1; }
body:not(.results-mode) .ribbon-step.is-row-start .journey-link { opacity: 0; }
body:not(.results-mode) .journey-node,
body:not(.results-mode) .journey-placeholder,
body:not(.results-mode) .ribbon-stay-action { width: 100%; max-width: none; min-width: 0; min-height: 105px; padding: 13px 14px 30px; border-radius: 14px; box-shadow: none; text-align: left; }
body:not(.results-mode) .journey-node { padding: 0; }
body:not(.results-mode) .journey-node .chip-edit { width: 100%; max-width: none; min-height: 105px; padding: 13px 31px 29px 14px; gap: 6px; }
body:not(.results-mode) .journey-node .chip-edit > span { font-size: .97rem; font-weight: 620; line-height: 1.28; }
body:not(.results-mode) .journey-node .chip-remove { position: absolute; top: 4px; right: 4px; z-index: 1; width: 36px; min-height: 36px; padding: 0; border-radius: 8px; color: #416b8d; }
body:not(.results-mode) .journey-kind,
body:not(.results-mode) .journey-placeholder small,
body:not(.results-mode) .ribbon-stay-action small { display: block; color: #577487; font-size: .66rem; font-weight: 700; letter-spacing: .08em; line-height: 1.15; text-transform: uppercase; }
body:not(.results-mode) .journey-placeholder,
body:not(.results-mode) .ribbon-stay-action { display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 8px; font: inherit; cursor: pointer; }
body:not(.results-mode) .journey-placeholder span,
body:not(.results-mode) .ribbon-stay-action span { color: #314a5b; font-size: .97rem; font-weight: 580; line-height: 1.28; }
body:not(.results-mode) .ribbon-step.is-complete .journey-node,
body:not(.results-mode) .ribbon-step.is-complete .journey-node:is(.is-startDate,.is-start,.is-region,.is-finish,.is-stay) { border: 1.5px solid #1e557e; border-radius: 14px; background: #245d87; box-shadow: 0 3px 8px rgba(29,75,111,.15); }
body:not(.results-mode) .ribbon-step.is-complete .journey-node .chip-edit,
body:not(.results-mode) .ribbon-step.is-complete .journey-node .journey-kind,
body:not(.results-mode) .ribbon-step.is-complete .journey-node .chip-remove,
body:not(.results-mode) .ribbon-step.is-complete .journey-choice-status { color: white; }
body:not(.results-mode) .ribbon-step.is-required-incomplete .journey-placeholder { border: 1.5px dashed #648ba9; background: #fcfeff; }
body:not(.results-mode) .ribbon-step.is-optional-incomplete :is(.journey-placeholder,.ribbon-stay-action) { border: 1.5px dashed #afc0cb; background: rgba(255,255,255,.56); }
body:not(.results-mode) .ribbon-step.is-optional-incomplete :is(.journey-placeholder,.ribbon-stay-action) :is(small,span) { color: #647b89; }
body:not(.results-mode) .journey-choice-status { position: absolute; bottom: 10px; left: 14px; color: #426e91; font-size: .66rem; font-weight: 650; letter-spacing: .02em; pointer-events: none; }
body:not(.results-mode) .is-optional-incomplete .journey-choice-status { color: #748894; }
body:not(.results-mode) .journey-gateway { min-height: 67px; margin-top: 20px; padding: 15px 0 0; display: flex; align-items: center; flex-wrap: wrap; gap: 8px; border-top: 1px solid #bfd1dc; }
body:not(.results-mode) .journey-gateway .ribbon-readiness { order: 0; flex: 1 1 270px; margin: 0; color: #496779; font-size: .8rem; }
body:not(.results-mode) .journey-gateway > span { order: 1; color: #597486; }
body:not(.results-mode) .journey-gateway > strong { order: 2; color: #244f70; font-size: 1.2rem; }
body:not(.results-mode) .journey-gateway > small { display: none; }
body:not(.results-mode) .journey-gateway button { order: 3; width: 195px; min-height: 48px; margin-left: 14px; padding: 9px 15px; background: #205d86; font-size: .86rem; }
body:not(.results-mode) .journey-gateway button:hover { background: #16496e; }
body:not(.results-mode) .journey-gateway button:disabled { background: #aab9c3; }
body:not(.results-mode) .designer-preferences-access { margin: 16px 0 0; padding: 15px 20px 17px; display: block; border: 1px solid #cbdde7; border-radius: 16px; background: #f7fafc; }
body:not(.results-mode) .designer-preferences-heading { display: flex; align-items: center; justify-content: space-between; gap: 15px; }
body:not(.results-mode) .designer-preferences-kicker { color: #667e8d; font-size: .63rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
body:not(.results-mode) .designer-preferences-heading h2 { margin: 1px 0 0; color: #2a4759; font-size: 1rem; }
body:not(.results-mode) .designer-preferences-access #preferences-entry { min-height: 40px; padding: 5px 9px; border-color: #c3d4df; background: white; color: #265b7e; font-size: .75rem; }
body:not(.results-mode) .designer-preferences-summary { margin-top: 12px; display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 7px; }
body:not(.results-mode) .designer-preferences-summary button { min-width: 0; min-height: 60px; padding: 8px 10px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 4px; border: 1px solid #d4e1e9; border-radius: 9px; background: white; color: #335468; text-align: left; cursor: pointer; font: inherit; }
body:not(.results-mode) .designer-preferences-summary button:hover { border-color: #6f9dba; background: #f1f8fc; }
body:not(.results-mode) .designer-preferences-summary small { color: #6d8290; font-size: .59rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
body:not(.results-mode) .designer-preferences-summary span { font-size: .73rem; font-weight: 580; line-height: 1.2; }
body:not(.results-mode) :is(.ribbon-stay-action,.designer-preferences-summary button,#preferences-entry):focus-visible { outline: 3px solid #205d86; outline-offset: 2px; }
body:not(.results-mode) .journey-track :is(.chip-edit,.journey-placeholder):focus-visible { outline: 2px solid #205d86; outline-offset: -3px; }
body:not(.results-mode) .journey-track .endpoint-search:focus-within { border-color: #205d86; box-shadow: 0 0 0 2px rgba(32,93,134,.2); }
@media (max-width: 1100px) { body:not(.results-mode) .designer-preferences-summary { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media (max-width: 720px) {
  body:not(.results-mode) .journey-ribbon { padding: 17px 15px 18px; }
  body:not(.results-mode) .journey-ribbon-heading { margin-bottom: 13px; }
  body:not(.results-mode) .journey-track { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
  body:not(.results-mode) .ribbon-step { width: 100%; min-width: 0; padding: 0; }
  body:not(.results-mode) .ribbon-step:first-child { padding-left: 0; }
  body:not(.results-mode) .ribbon-step .journey-link { display: none; }
  body:not(.results-mode) .journey-node,
  body:not(.results-mode) .journey-placeholder,
  body:not(.results-mode) .ribbon-stay-action { min-height: 112px; }
  body:not(.results-mode) .journey-node .chip-edit { min-height: 112px; }
  body:not(.results-mode) .journey-gateway { margin-top: 14px; }
  body:not(.results-mode) .journey-gateway .ribbon-readiness { flex-basis: 100%; }
  body:not(.results-mode) .journey-gateway button { order: 4; width: 100%; margin: 3px 0 0; }
  body:not(.results-mode) .designer-preferences-access { padding: 13px; }
  body:not(.results-mode) .designer-preferences-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

/* Editorial ribbon refinement: one journey surface, with preferences quietly within it. */
body:not(.results-mode) { background: var(--paper); }
body:not(.results-mode) .intro { margin: 22px 0 36px; }
body:not(.results-mode) .intro h1 { font-size: clamp(1.9rem,3vw,2.25rem); font-weight: 450; }
body:not(.results-mode) .journey-ribbon { margin-bottom: 32px; padding: 26px 30px 24px; border: 1px solid rgba(13,92,99,.18); border-radius: 22px; background: linear-gradient(180deg,#edf6f4 0%,#f4f7f6 100%); box-shadow: none; }
body:not(.results-mode) .journey-ribbon-heading { min-height: 22px; margin: 0 0 10px; justify-content: flex-end; }
body:not(.results-mode) .journey-ribbon-heading h2 { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
body:not(.results-mode) .journey-ribbon-heading .inventory-status.is-live { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
body:not(.results-mode) .journey-ribbon-heading .inventory-status.is-live::before { display: none; }
body:not(.results-mode) .journey-track { min-height: 140px; gap: 12px; }
body:not(.results-mode) .journey-node,
body:not(.results-mode) .journey-placeholder,
body:not(.results-mode) .ribbon-stay-action { min-height: 138px; padding: 26px 17px; border-radius: 18px; }
body:not(.results-mode) .journey-node { padding: 0; }
body:not(.results-mode) .journey-node .chip-edit { min-height: 138px; padding: 25px 31px 28px 17px; gap: 8px; }
body:not(.results-mode) .journey-node .chip-edit > span { font-size: clamp(1.03rem,1.6vw,1.28rem); font-weight: 440; line-height: 1.28; }
body:not(.results-mode) .journey-node .journey-kind { font-size: .73rem; font-weight: 500; letter-spacing: .04em; text-transform: none; }
body:not(.results-mode) .journey-placeholder,
body:not(.results-mode) .ribbon-stay-action { justify-content: center; }
body:not(.results-mode) .journey-placeholder span,
body:not(.results-mode) .ribbon-stay-action span { color: #263e43; font-size: clamp(1.35rem,2.2vw,1.7rem); font-weight: 400; letter-spacing: -.03em; line-height: 1.12; }
body:not(.results-mode) .ribbon-step.is-complete .journey-node,
body:not(.results-mode) .ribbon-step.is-complete .journey-node:is(.is-startDate,.is-start,.is-region,.is-finish,.is-stay) { border: 1px solid #0d5c63; border-radius: 18px; background: #0d5c63; box-shadow: none; }
body:not(.results-mode) .ribbon-step.is-required-incomplete .journey-placeholder { border: 1.5px dashed #ad8331; background: #fefcf7; }
body:not(.results-mode) .ribbon-step.is-optional-incomplete :is(.journey-placeholder,.ribbon-stay-action) { border: 1px dashed #a9bdb9; background: rgba(250,248,245,.55); }
body:not(.results-mode) .ribbon-step.is-optional-incomplete :is(.journey-placeholder,.ribbon-stay-action) span { color: #62757a; }
body:not(.results-mode) .journey-choice-status { bottom: 16px; left: 17px; color: #81621e; font-size: .7rem; font-weight: 500; }
body:not(.results-mode) .is-optional-incomplete .journey-choice-status { color: #718186; }
body:not(.results-mode) .is-complete .journey-choice-status { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
body:not(.results-mode) .journey-gateway { margin-top: 22px; border-color: rgba(13,92,99,.15); }
body:not(.results-mode) .journey-gateway button { background: var(--green); border-radius: 10px; }
body:not(.results-mode) .journey-gateway button:hover { background: var(--deep-ocean); }
body:not(.results-mode) .designer-preferences-access { margin: 17px 0 0; padding: 15px 0 0; border: 0; border-top: 1px solid rgba(13,92,99,.15); border-radius: 0; background: transparent; }
body:not(.results-mode) .designer-preferences-heading h2 { margin: 0; color: #455c60; font-size: .9rem; font-weight: 500; }
body:not(.results-mode) .designer-preferences-access #preferences-entry { min-height: 44px; padding: 7px 10px; border: 1px solid rgba(13,92,99,.25); border-radius: 10px; background: var(--paper); color: var(--green); }
body:not(.results-mode) .designer-preferences-summary { margin-top: 5px; display: flex; flex-wrap: wrap; gap: 0; }
body:not(.results-mode) .designer-preferences-summary button { min-height: 44px; min-width: 0; width: auto; padding: 6px 12px 6px 0; margin-right: 12px; display: inline-flex; flex-direction: row; align-items: center; justify-content: flex-start; gap: 5px; border: 0; border-radius: 0; background: transparent; color: #435a5e; box-shadow: none; }
body:not(.results-mode) .designer-preferences-summary button:not(:last-child)::after { content: "·"; margin-left: 8px; color: #a9b8b5; }
body:not(.results-mode) .designer-preferences-summary button:hover { background: transparent; color: var(--green); }
body:not(.results-mode) .designer-preferences-summary small { color: #66777a; font-size: .71rem; font-weight: 450; letter-spacing: 0; text-transform: none; }
body:not(.results-mode) .designer-preferences-summary span { font-size: .72rem; font-weight: 500; }
@media (max-width: 720px) {
  body:not(.results-mode) .intro { margin: 8px 0 20px; }
  body:not(.results-mode) .journey-ribbon { padding: 16px 15px 19px; }
  body:not(.results-mode) .journey-ribbon-heading { margin-bottom: 5px; }
  body:not(.results-mode) .journey-node,
  body:not(.results-mode) .journey-placeholder,
  body:not(.results-mode) .ribbon-stay-action { min-height: 124px; padding: 18px 13px 28px; }
  body:not(.results-mode) .journey-node { padding: 0; }
  body:not(.results-mode) .journey-node .chip-edit { min-height: 124px; padding: 18px 28px 27px 13px; }
  body:not(.results-mode) .journey-placeholder span,
  body:not(.results-mode) .ribbon-stay-action span { font-size: 1.35rem; }
  body:not(.results-mode) .journey-choice-status { left: 13px; bottom: 11px; }
  body:not(.results-mode) .designer-preferences-summary { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 10px; }
  body:not(.results-mode) .designer-preferences-summary button { width: 100%; min-height: 48px; margin: 0; padding: 7px 0; flex-direction: column; align-items: flex-start; gap: 2px; border-bottom: 1px solid rgba(13,92,99,.1); }
  body:not(.results-mode) .designer-preferences-summary button:not(:last-child)::after { display: none; }
}

/* Horizon Designer: a compact journey strip over a quiet, full-width coastal wash. */
.intro-title-designer { display: none; }
body:not(.results-mode) .intro-title-designer { display: inline; }
body:not(.results-mode) .intro-title-results { display: none; }
.results-mode .designer-cruise-count,
.results-mode .designer-stay-slot,
.results-mode .designer-sailing-context { display: none; }
body:not(.results-mode) main { position: relative; isolation: isolate; }
body:not(.results-mode) main::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  left: 50%;
  width: 100vw;
  height: 740px;
  transform: translateX(-50%);
  background:
    radial-gradient(ellipse 42% 65% at 17% 87%, rgba(235,231,214,.73), transparent 72%),
    radial-gradient(ellipse 58% 70% at 80% 13%, rgba(114,166,165,.67), transparent 80%),
    linear-gradient(180deg,#477c80 0%,#8baea9 58%,#dce6de 82%,#faf8f5 100%);
}
body:not(.results-mode) .intro { margin: 17px 0 48px; text-align: left; }
body:not(.results-mode) .intro h1 { color: #fff; font-size: clamp(1.75rem,3.2vw,2.65rem); font-weight: 400; letter-spacing: -.035em; text-shadow: 0 1px 10px rgba(20,61,70,.23); }
body:not(.results-mode) .journey-ribbon {
  position: relative;
  margin: 0 0 44px;
  padding: 0;
  display: flex;
  flex-direction: column;
  border: 0;
  border-radius: 0;
  background: #fff;
  box-shadow: 0 12px 32px rgba(20,61,70,.12);
}
body:not(.results-mode) .journey-ribbon-heading { position: absolute; top: -29px; right: 0; z-index: 1; min-height: 0; margin: 0; }
body:not(.results-mode) .journey-ribbon-heading h2 { position: absolute; }
body:not(.results-mode) .ribbon-tools { gap: 10px; }
body:not(.results-mode) .ribbon-tools .inventory-status { color: #fff; text-shadow: 0 1px 4px rgba(20,61,70,.35); }
body:not(.results-mode) .ribbon-tools .clear-all { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.designer-ribbon-prompt { display: none; }
body:not(.results-mode) .designer-ribbon-prompt { order: 0; margin: 0; padding: 18px 27px 16px; display: block; border-bottom: 1px solid #b8d0ce; background: #fff; color: #143d46; font-size: 1rem; font-weight: 550; line-height: 1.3; }
body:not(.results-mode) .journey-ribbon-body { display: contents; }
body:not(.results-mode) .journey-track {
  position: relative;
  order: 1;
  min-height: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  align-items: stretch;
  gap: 0;
  overflow: visible;
  border-bottom: 2px solid #b8d0ce;
  background: #f3f8f7;
}
body:not(.results-mode) .journey-track .route-menu { z-index: 35; top: calc(100% + 6px); left: 0; right: auto; width: min(410px,calc(100vw - 56px)); max-height: min(70vh,620px); overflow-y: auto; }
body:not(.results-mode) .journey-track .journey-menu,
body:not(.results-mode) .journey-track .endpoint-menu-right { left: auto; right: 0; }
.destination-menu-actions { margin-top: 10px; padding: 8px 3px 2px; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 3px 12px; border-top: 1px solid #dce8e5; }
.destination-menu-actions:not(:has(button:not([hidden]))) { display: none; }
.route-menu .destination-menu-actions button { width: auto; min-height: 44px; padding: 7px 9px; color: #0d5c63; font-size: .76rem; font-weight: 500; }
.route-menu .destination-menu-actions button:hover { text-decoration: underline; text-underline-offset: 3px; }
body:not(.results-mode) .ribbon-step { position: relative; width: auto; min-width: 0; max-width: none; margin: 0; padding-bottom: 18px; display: block; border-right: 2px solid #b8d0ce; }
body:not(.results-mode) .ribbon-step:last-of-type { border-right: 0; }
body:not(.results-mode) .journey-track .journey-node,
body:not(.results-mode) .journey-track .journey-placeholder { width: 100%; max-width: none; min-width: 0; min-height: 90px; border: 0 !important; border-radius: 0 !important; background: #f3f8f7 !important; box-shadow: none !important; transform: none; }
body:not(.results-mode) .journey-track .journey-node { padding: 0; }
body:not(.results-mode) .journey-track .journey-placeholder { padding: 16px 38px 16px 17px; }
body:not(.results-mode) .journey-placeholder { padding: 16px 33px 16px 17px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 6px; text-align: left; }
body:not(.results-mode) .journey-node .chip-edit { position: relative; width: 100%; max-width: none; min-height: 90px; padding: 16px 38px 16px 17px; gap: 6px; color: #143d46 !important; }
body:not(.results-mode) .journey-node .chip-edit::after,
body:not(.results-mode) .journey-placeholder::after { content: ""; position: absolute; right: 17px; top: 43px; width: 7px; height: 7px; border-right: 1.5px solid #0d5c63; border-bottom: 1.5px solid #0d5c63; transform: rotate(45deg); opacity: .78; }
body:not(.results-mode) .journey-placeholder { position: relative; }
body:not(.results-mode) .journey-node .chip-edit > span,
body:not(.results-mode) .journey-placeholder span { width: 100%; max-width: 100%; min-width: 0; color: #263e43 !important; font-size: clamp(.88rem,1.3vw,1.05rem); font-weight: 450; line-height: 1.25; letter-spacing: -.015em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body:not(.results-mode) .journey-node .chip-edit > .journey-subvalue,
body:not(.results-mode) .journey-placeholder .journey-subvalue { position: absolute; right: 38px; bottom: 11px; left: 17px; width: auto; margin: 0; color: #62777b !important; font-size: .72rem; font-weight: 500; letter-spacing: 0; line-height: 1.2; overflow: visible; text-overflow: clip; white-space: normal; }
body:not(.results-mode) .journey-node .journey-kind,
body:not(.results-mode) .journey-placeholder small { color: #31525b !important; font-size: .68rem; font-weight: 650; letter-spacing: .085em; text-transform: uppercase; }
body:not(.results-mode) .ribbon-step.is-complete .journey-kind::before,
body:not(.results-mode) .ribbon-step.is-required-incomplete :is(.journey-kind,small)::before { content: ""; width: 5px; height: 5px; margin-right: 6px; display: inline-block; border-radius: 50%; background: #0d5c63; vertical-align: 2px; }
body:not(.results-mode) .ribbon-step.is-required-incomplete :is(.journey-kind,small)::before { background: #a47828; }
body:not(.results-mode) .ribbon-step.is-required-incomplete .journey-placeholder small { color: #795a22 !important; }
body:not(.results-mode) .ribbon-step.is-optional-incomplete .journey-placeholder span { color: #718186 !important; }
body:not(.results-mode) .journey-node .chip-remove { position: absolute; z-index: 2; top: 1px; right: 3px; width: 31px; min-height: 31px; color: #667b82 !important; font-size: 1rem; }
body:not(.results-mode) .journey-node .chip-remove:hover { color: #143d46 !important; background: #edf6f4; }
body:not(.results-mode) .journey-choice-status { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
body:not(.results-mode) .journey-link { display: none; }
body:not(.results-mode) .ribbon-step :is(.journey-node,.journey-placeholder):hover { background: #eaf4f2 !important; }
body:not(.results-mode) .journey-track .journey-node .chip-edit:hover { background: #eaf4f2; }
body:not(.results-mode) .designer-cruise-count { order: 2; padding: 14px 18px; display: flex; align-items: center; flex-wrap: wrap; gap: 10px 22px; border-top: 1px solid #e4ebe7; }
body:not(.results-mode) .designer-cruise-count > span { color: #143d46; font-size: .82rem; font-weight: 500; }
body:not(.results-mode) .designer-cruise-options { display: flex; flex-wrap: wrap; gap: 6px; }
body:not(.results-mode) .designer-cruise-options button { min-height: 40px; padding: 7px 13px; border: 1px solid #cbd9d8; border-radius: 3px; background: #fff; color: #143d46; cursor: pointer; font-size: .77rem; }
body:not(.results-mode) .designer-cruise-options button[aria-pressed="true"] { border-color: #0d5c63; background: #edf6f4; box-shadow: inset 0 -2px #0d5c63; }
body:not(.results-mode) .journey-gateway { order: 3; align-self: stretch; width: 100%; min-width: 0; min-height: 0; margin: 0; padding: 11px 18px 8px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; border-top: 1px solid #e4ebe7; border-left: 0; }
body:not(.results-mode) .designer-stay-slot { margin-right: auto; }
body:not(.results-mode) .designer-stay-slot .ribbon-stay-action { width: auto; min-width: 0; min-height: 44px; padding: 5px 0; display: inline-flex; flex-direction: row; align-items: center; justify-content: flex-start; gap: 7px; border: 0; border-radius: 0; background: transparent; color: #143d46; font-size: .82rem; font-weight: 500; text-align: left; }
body:not(.results-mode) .designer-stay-slot .ribbon-stay-action::before { content: "+"; flex: 0 0 auto; margin: 0; font-size: 1rem; line-height: 1; }
body:not(.results-mode) .designer-stay-slot .ribbon-stay-action:hover { background: transparent; color: #143d46; text-decoration: underline; text-underline-offset: 3px; }
body:not(.results-mode) .designer-stay-selected { min-width: 0; max-width: 100%; min-height: 44px; display: flex; align-items: center; gap: 2px; }
body:not(.results-mode) .designer-stay-selected button { min-height: 44px; margin: 0; border: 0; border-radius: 0; background: transparent; color: #143d46; cursor: pointer; font: inherit; }
body:not(.results-mode) .designer-stay-selected button:hover { background: #edf6f4; }
body:not(.results-mode) .designer-stay-selected .stay-summary-action { min-width: 0; max-width: 100%; padding: 5px 4px 5px 0; display: inline-flex; align-items: center; gap: 6px; text-align: left; white-space: nowrap; font-size: .8rem; }
body:not(.results-mode) .stay-summary-action span { flex: 0 0 auto; color: #4b6269; }
body:not(.results-mode) .stay-summary-action strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; font-weight: 600; }
body:not(.results-mode) .designer-stay-selected .stay-summary-remove { flex: 0 0 44px; width: 44px; padding: 0; color: #667b82; font-size: 1rem; }
body:not(.results-mode) .cruise-pool-control { order: 1; width: max-content; display: grid; gap: 7px; }
body:not(.results-mode) .cruise-pool-label { color: #66757e; font-size: .72rem; letter-spacing: 0; line-height: 1; text-transform: none; white-space: nowrap; }
body:not(.results-mode) .cruise-pool { width: 100%; }
body:not(.results-mode) .cruise-pool-track { position: relative; height: 8px; overflow: visible; border-radius: 999px; background: #dce8e5; }
body:not(.results-mode) .cruise-pool-track > span { position: absolute; inset: 0 auto 0 0; width: 0; border-radius: inherit; background: linear-gradient(90deg,#c89b3c,#0d5c63); transition: width 360ms ease; }
body:not(.results-mode) .cruise-pool-track > i { position: absolute; top: 50%; left: 0; width: 13px; height: 13px; border: 2px solid #fff; border-radius: 50%; background: #143d46; box-shadow: 0 1px 4px rgba(20,61,70,.28); transform: translate(-50%,-50%); transition: left 360ms ease; }
body:not(.results-mode) .cruise-pool-scale { margin-top: 4px; display: flex; justify-content: space-between; color: #66757e; font-size: .62rem; line-height: 1; }
body:not(.results-mode) .journey-gateway > small { display: none; }
body:not(.results-mode) .journey-ribbon:not(.is-ready) .cruise-pool-control { display: grid; }
body:not(.results-mode) .journey-gateway > button { order: 3; width: auto; min-height: 44px; margin: 0 0 0 10px; padding: 8px 14px; justify-content: center; border-radius: 4px; background: #143d46; font-size: .8rem; }
body:not(.results-mode) .journey-gateway > button:disabled { background: #a8b8b5; cursor: not-allowed; }
body:not(.results-mode) .journey-gateway .ribbon-readiness { order: 4; flex: 1 1 100%; margin: 0; color: #66757e; font-size: .7rem; }
@media (prefers-reduced-motion: reduce) {
  body:not(.results-mode) .cruise-pool-track > :is(span,i) { transition: none; }
}
body.results-mode .cruise-pool-control { display: none; }
body:not(.results-mode) .journey-ribbon.is-ready .ribbon-readiness { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
body:not(.results-mode) .designer-sailing-context { order: 5; flex: 1 1 100%; margin: 0; color: #6d7d81; font-size: .68rem; text-align: right; }
body:not(.results-mode) .request-guidance { order: 5; }
body:not(.results-mode) .designer-preferences-access { order: 6; margin: 0; padding: 8px 18px; display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 8px 22px; border: 0; border-top: 1px solid #e4ebe7; border-radius: 0; background: #fbfcfa; }
body:not(.results-mode) .designer-preferences-heading { display: contents; }
body:not(.results-mode) .designer-preferences-heading h2 { font-size: .84rem; }
body:not(.results-mode) .designer-preferences-access #preferences-entry { grid-column: 3; grid-row: 1; min-height: 38px; border: 0; border-radius: 0; background: transparent; }
body:not(.results-mode) .designer-preferences-summary { grid-column: 2; grid-row: 1; min-width: 0; margin: 0; display: flex; flex-wrap: nowrap; align-items: center; overflow: hidden; }
body:not(.results-mode) .designer-preferences-summary button { flex: 0 1 auto; min-width: 0; min-height: 35px; margin-right: 9px; padding: 4px 0; display: inline-flex; flex-direction: row; align-items: center; border: 0; text-align: left; }
body:not(.results-mode) .designer-preferences-summary button:not(:last-child)::after { flex: 0 0 auto; margin-left: 9px; }
body:not(.results-mode) .designer-preferences-summary small { display: none; }
body:not(.results-mode) .designer-preferences-summary span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 1080px) {
  body:not(.results-mode) .designer-preferences-access { grid-template-columns: 1fr auto; }
  body:not(.results-mode) .designer-preferences-heading h2 { grid-column: 1; grid-row: 1; }
  body:not(.results-mode) .designer-preferences-access #preferences-entry { grid-column: 2; grid-row: 1; }
  body:not(.results-mode) .designer-preferences-summary { grid-column: 1 / -1; grid-row: 2; }
}
@media (max-width: 760px) {
  body:not(.results-mode) main::before { height: 850px; }
  body:not(.results-mode) .intro { margin: 8px 0 35px; }
  body:not(.results-mode) .designer-ribbon-prompt { padding: 15px 17px 13px; font-size: .9rem; }
  body:not(.results-mode) .journey-track { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body:not(.results-mode) .ribbon-step { padding-bottom: 12px; }
  body:not(.results-mode) .journey-track .route-menu { top: calc(100% + 3px); }
  body:not(.results-mode) .journey-track .ribbon-step:nth-child(odd) .route-menu { left: 0; right: auto; }
  body:not(.results-mode) .journey-track .ribbon-step:nth-child(even) .route-menu { left: auto; right: 0; }
  body:not(.results-mode) .ribbon-step:nth-child(2) { border-right: 0; }
  body:not(.results-mode) .ribbon-step:nth-child(-n+2) { border-bottom: 1px solid #e2e9e6; }
  body:not(.results-mode) .journey-node,
  body:not(.results-mode) .journey-placeholder,
  body:not(.results-mode) .journey-node .chip-edit { min-height: 84px; }
  body:not(.results-mode) .journey-gateway .ribbon-readiness { flex-basis: 100%; }
  body:not(.results-mode) .journey-gateway > button { margin-left: 0; }
  body:not(.results-mode) .designer-sailing-context { text-align: left; }
  body:not(.results-mode) .designer-preferences-summary { flex-wrap: wrap; overflow: visible; }
  body:not(.results-mode) .designer-preferences-summary button { width: auto; min-height: 40px; margin-right: 10px; padding: 5px 0; border: 0; }
  body:not(.results-mode) .designer-preferences-summary button:not(:last-child)::after { display: inline; }
}
@media (max-width: 480px) {
  body:not(.results-mode) .journey-ribbon-heading { top: -25px; }
  body:not(.results-mode) .journey-ribbon { margin-bottom: 30px; }
  body:not(.results-mode) .journey-gateway > button { order: 4; width: 100%; }
  body:not(.results-mode) .journey-gateway .ribbon-readiness { order: 5; }
  body:not(.results-mode) .designer-sailing-context { order: 6; }
  body:not(.results-mode) .designer-cruise-options button { min-height: 44px; }
}

/* Preferences follows the ribbon's quieter, flat editing language. */
body:not(.results-mode) .matters-shell {
  --pane-accent: #0d5c63;
  --pane-selected: #edf6f4;
  padding: 20px 24px 25px;
  border: 1px solid #cfdddc;
  border-top: 2px solid #0d5c63;
  border-radius: 4px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(20,61,70,.06);
}
body:not(.results-mode) .matters-shell > h2 {
  grid-column: 1 / -1;
  margin: 0 44px 2px 0;
  padding: 0 0 14px;
  border-bottom: 1px solid #e1eae7;
  color: #143d46;
  font-size: 1.25rem;
  font-weight: 450;
  letter-spacing: -.025em;
}
body:not(.results-mode) .matters-shell > .panel-close { top: 9px; right: 15px; }
body:not(.results-mode) .matters-shell :is(.sailings-section,.connections-section) {
  min-width: 0;
  margin: 0;
  padding: 4px 0 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
body:not(.results-mode) .matters-shell :is(.sailings-section,.connections-section) > .section-heading { min-height: 40px; margin-bottom: 11px; }
body:not(.results-mode) .matters-shell .section-heading h3 { color: #143d46; font-size: 1rem; font-weight: 550; }
body:not(.results-mode) .matters-shell .section-clear { color: #0d5c63; }
body:not(.results-mode) .matters-shell .line-browser-heading { margin: 0 0 7px; color: #4b6269; font-size: .71rem; }
body:not(.results-mode) .matters-shell .line-category-rail { gap: 4px; }
body:not(.results-mode) .matters-shell .line-category-card {
  min-width: 0;
  min-height: 52px;
  padding: 5px 7px 7px;
  border: 0;
  border-bottom: 1px solid #d8e2e1;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: #54686e;
}
body:not(.results-mode) .matters-shell .line-category-card:hover { background: #f6faf9; }
body:not(.results-mode) .matters-shell .line-category-card[aria-pressed="true"] {
  border: 0;
  border-bottom: 2px solid #0d5c63;
  background: #f4f9f8;
  box-shadow: none;
}
body:not(.results-mode) .matters-shell .line-category-card strong { min-height: 2.5em; color: inherit; font-size: .72rem; font-weight: 500; }
body:not(.results-mode) .matters-shell .line-category-card[aria-pressed="true"] strong { color: #143d46; font-weight: 600; }
body:not(.results-mode) .matters-shell .line-category-card.has-selection strong::after { display: none; }
body:not(.results-mode) .matters-shell .line-category-card.has-selection::after { content: ""; position: absolute; top: 7px; right: 7px; width: 5px; height: 5px; border-radius: 50%; background: #0d5c63; }
body:not(.results-mode) .matters-shell .line-panel { margin-top: 10px; padding: 5px 0 0; border-top: 0; }
body:not(.results-mode) .matters-shell .line-panel-head { min-height: 36px; margin-bottom: 5px; }
body:not(.results-mode) .matters-shell .line-panel-head button { color: #0d5c63; }
body:not(.results-mode) .matters-shell .line-pills { display: flex; flex-wrap: wrap; gap: 6px; }
body:not(.results-mode) .matters-shell .line-pill {
  min-height: 42px;
  padding: 7px 13px;
  border: 1px solid #cbd9d8;
  border-radius: 999px;
  background: #fff;
  color: #344e54;
}
body:not(.results-mode) .matters-shell .line-pill:hover:not(:disabled) { border-color: #79a4a4; background: #f6faf9; }
body:not(.results-mode) .matters-shell .line-pill[aria-pressed="true"] { border-color: #7ba6a2; background: #edf6f4; box-shadow: none; color: #143d46; }
body:not(.results-mode) .matters-shell .line-pill strong { font-weight: 550; }
body:not(.results-mode) .matters-shell .sailing-constraints { margin-top: 16px; gap: 13px; }
body:not(.results-mode) .matters-shell :is(.preference-question,.connection-question) { padding: 9px 0 0; border: 0; border-top: 1px solid #e1eae7; border-radius: 0; background: transparent; }
body:not(.results-mode) .matters-shell :is(.preference-question,.connection-question) legend { color: #4b6269; font-size: .72rem; }
body:not(.results-mode) .matters-shell :is(.choice-pills,.connection-scale) { gap: 6px; overflow: visible; }
body:not(.results-mode) .matters-shell :is(.choice-pills button,.connection-scale button) {
  min-width: 0;
  min-height: 44px;
  padding: 7px 8px;
  border: 1px solid #cbd9d8;
  border-radius: 3px;
  background: #fff;
  box-shadow: none;
  color: #344e54;
}
body:not(.results-mode) .matters-shell :is(.choice-pills button,.connection-scale button):hover:not(:disabled) { border-color: #79a4a4; background: #f6faf9; }
body:not(.results-mode) .matters-shell :is(.choice-pills button,.connection-scale button)[aria-pressed="true"] {
  border: 1px solid #0d5c63;
  background: #edf6f4;
  box-shadow: inset 0 -2px #0d5c63;
  color: #143d46;
}
body:not(.results-mode) .matters-shell :is(.choice-pills button,.connection-scale button) strong { font-size: .74rem; font-weight: 500; }
body:not(.results-mode) .matters-shell :is(.choice-pills button,.connection-scale button):disabled { opacity: .46; }
body:not(.results-mode) .matters-shell .connection-question + .connection-question { margin-top: 14px; }
@media (min-width: 1050px) {
  body.matters-open:not(.results-mode) .matters-shell { gap: 8px 26px; }
  body:not(.results-mode) .matters-shell .connections-section { padding-left: 24px; border-left: 1px solid #e1eae7; }
  body:not(.results-mode) .matters-shell .connections-section .section-heading { padding-right: 0; }
}
@media (max-width: 1049px) {
  body:not(.results-mode) .matters-shell .connections-section { margin-top: 20px; padding-top: 17px; border-top: 1px solid #e1eae7; }
}
@media (max-width: 720px) {
  body:not(.results-mode) .matters-shell { padding: 14px 16px 28px; border: 0; border-top: 2px solid #0d5c63; border-radius: 0; box-shadow: none; }
  body:not(.results-mode) .matters-shell .sheet-grabber { margin-bottom: 10px; }
  body:not(.results-mode) .matters-shell .line-category-rail { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  body:not(.results-mode) .matters-shell .line-panel-head { flex-wrap: wrap; }
  body:not(.results-mode) .matters-shell .line-panel-head > div:last-child { align-self: auto; }
  body:not(.results-mode) .matters-shell .connection-scale { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  body:not(.results-mode) .matters-shell .gap-question .compact-choices { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
}

/* One visual frame for the remaining Designer editors; only the active task changes. */
body:not(.results-mode) :is(.where-shell,.when-shell,.stays-shell) {
  --pane-accent: #0d5c63;
  --pane-selected: #edf6f4;
  padding: 20px 24px 25px;
  border: 1px solid #cfdddc;
  border-top: 2px solid #0d5c63;
  border-radius: 4px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(20,61,70,.06);
}
body:not(.results-mode) :is(.where-shell,.when-shell,.stays-shell) > h2 {
  margin: 0 44px 14px 0;
  padding: 0 0 14px;
  border-bottom: 1px solid #e1eae7;
  color: #143d46;
  font-size: 1.25rem;
  font-weight: 450;
  letter-spacing: -.025em;
}
body:not(.results-mode) :is(.where-shell,.when-shell,.stays-shell) > .panel-close { top: 9px; right: 15px; }
body:not(.results-mode) :is(.where-shell,.when-shell,.stays-shell) :is(.route-section,.geography-browser,.time-designer,.stay-designer,.stay-timing) {
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
body:not(.results-mode) :is(.where-shell,.when-shell,.stays-shell) :is(.geography-browser,.stay-timing) {
  margin-top: 19px;
  padding-top: 18px;
  border-top: 1px solid #e1eae7;
}
body:not(.results-mode) :is(.where-shell,.when-shell,.stays-shell) :is(.section-heading,.browser-heading) { min-height: 40px; margin-bottom: 11px; }
body:not(.results-mode) :is(.where-shell,.when-shell,.stays-shell) :is(.section-heading h3,.browser-heading h3) { color: #143d46; font-size: 1rem; font-weight: 550; }
body:not(.results-mode) :is(.where-shell,.when-shell,.stays-shell) .section-clear { color: #0d5c63; }

/* Where: compact field trio, light destination tiles, and the same multi-select pills. */
body:not(.results-mode) .where-shell .route-composer { gap: 10px; }
body:not(.results-mode) .where-shell .route-step {
  min-height: 92px;
  padding: 8px 10px 5px;
  border: 1px solid #cbd9d8;
  border-radius: 3px;
  background: #fff;
}
body:not(.results-mode) .where-shell .route-step:focus-within { border-color: #0d5c63; box-shadow: inset 0 -2px #0d5c63; }
body:not(.results-mode) .where-shell .route-step > span { color: #4b6269; }
body:not(.results-mode) .where-shell .route-button { color: #143d46; font-weight: 500; }
body:not(.results-mode) .where-shell .zone-rail { gap: 6px; padding: 0; }
body:not(.results-mode) .where-shell .zone-card,
body:not(.results-mode) .where-shell .zone-card:nth-child(3n+2),
body:not(.results-mode) .where-shell .zone-card:nth-child(3n) {
  min-width: 0;
  height: 64px;
  padding: 8px;
  border: 1px solid #d5e1df;
  border-radius: 3px;
  background: #fff;
  box-shadow: none;
}
body:not(.results-mode) .where-shell .zone-card:hover { border-color: #83aaa7; background: #f6faf9; }
body:not(.results-mode) .where-shell .zone-card[aria-pressed="true"] { border: 1px solid #0d5c63; background: #edf6f4; box-shadow: inset 0 -2px #0d5c63; }
body:not(.results-mode) .where-shell .zone-card.has-selection:not([aria-pressed="true"]) { border-color: #91b8b3; }
body:not(.results-mode) .where-shell .zone-card-copy strong { color: #344e54; font-weight: 500; }
body:not(.results-mode) .where-shell .zone-card.has-selection .zone-card-copy strong::after { display: none; }
body:not(.results-mode) .where-shell .zone-card.has-selection::after { content: ""; position: absolute; top: 7px; right: 7px; width: 5px; height: 5px; border-radius: 50%; background: #0d5c63; }
body:not(.results-mode) .where-shell .region-panel { margin-top: 14px; padding-top: 13px; border-top-color: #e1eae7; }
body:not(.results-mode) .where-shell .region-pill { min-height: 42px; border-color: #cbd9d8; color: #344e54; }
body:not(.results-mode) .where-shell .region-pill[aria-pressed="true"] { border-color: #7ba6a2; background: #edf6f4; box-shadow: none; color: #143d46; }
body:not(.results-mode) .where-shell .region-pill:hover:not(:disabled) { border-color: #79a4a4; background: #f6faf9; }

/* When: clear editable bounds, restrained quick choices, and a distinct active bound. */
body:not(.results-mode) .when-shell :is(.time-field,.journey-span-question) {
  min-height: 93px;
  border: 1px solid #cbd9d8;
  border-radius: 3px;
  background: #fff;
}
body:not(.results-mode) .when-shell :is(.time-field-label,.journey-span-question label) { color: #4b6269; }
body:not(.results-mode) .when-shell :is(.date-field-trigger,.journey-span-question select) { color: #143d46; font-weight: 500; }
body:not(.results-mode) .when-shell :is(.time-field,.journey-span-question):focus-within { border-color: #0d5c63; box-shadow: inset 0 -2px #0d5c63; }
body:not(.results-mode) .when-shell .time-field:has(.is-active-boundary) { border-color: #0d5c63; background: #f4f9f8; box-shadow: inset 0 -2px #0d5c63; }
body:not(.results-mode) .when-shell .time-field:has(#end-date-trigger.is-active-boundary) { border-color: #577891; background: #f3f7fa; box-shadow: inset 0 -2px #577891; }
body:not(.results-mode) .when-shell :is(#start-date-trigger,#end-date-trigger).is-active-boundary { color: #143d46; }
body:not(.results-mode) .when-shell .availability-shortcuts { border-top-color: #e1eae7; }
body:not(.results-mode) .when-shell .availability-shortcuts > span { color: #4b6269; font-size: .71rem; }
body:not(.results-mode) .when-shell .availability-shortcuts button { min-height: 44px; border: 1px solid #cbd9d8; border-radius: 3px; color: #344e54; }
body:not(.results-mode) .when-shell .availability-shortcuts button:hover { border-color: #0d5c63; background: #edf6f4; }
body:not(.results-mode) .when-shell .availability-picker { border: 1px solid #cbd9d8; border-top: 2px solid #0d5c63; border-radius: 3px; box-shadow: 0 10px 25px rgba(20,61,70,.07); }
body:not(.results-mode) .when-shell .availability-picker-heading :is(.eyebrow,h4) { color: #143d46; }
body:not(.results-mode) .when-shell .availability-month { border-radius: 3px; }
body:not(.results-mode) .when-shell .availability-calendar { border-color: #dce7e4; border-radius: 3px; background: #fff; }

/* Stays: one level of section framing, with the same lightweight choice vocabulary. */
body:not(.results-mode) .stays-shell .stay-composer { gap: 14px; }
body:not(.results-mode) .stays-shell .stay-place-field { border: 1px solid #cbd9d8; border-radius: 3px; background: #fff; }
body:not(.results-mode) .stays-shell .stay-place-field:focus-within { border-color: #0d5c63; box-shadow: inset 0 -2px #0d5c63; }
body:not(.results-mode) .stays-shell .stay-place-field > label,
body:not(.results-mode) .stays-shell :is(.stay-length-question legend,.stay-date-field label) { color: #4b6269; }
body:not(.results-mode) .stays-shell .stay-place-input button { min-height: 40px; border-radius: 3px; background: #143d46; }
body:not(.results-mode) .stays-shell :is(.stay-length-question,.stay-date-editor) { border-color: #e1eae7; border-radius: 3px; background: #fff; }
body:not(.results-mode) .stays-shell :is(.choice-pills button,.stay-mode-choices button) {
  min-width: 0;
  min-height: 44px;
  border: 1px solid #cbd9d8;
  border-radius: 3px;
  background: #fff;
  box-shadow: none;
  color: #344e54;
}
body:not(.results-mode) .stays-shell :is(.choice-pills button,.stay-mode-choices button)[aria-pressed="true"] {
  border: 1px solid #0d5c63;
  background: #edf6f4;
  box-shadow: inset 0 -2px #0d5c63;
  color: #143d46;
}
body:not(.results-mode) .stays-shell :is(.choice-pills button,.stay-mode-choices button):hover:not(:disabled) { border-color: #79a4a4; background: #f6faf9; }
body:not(.results-mode) .stays-shell .stay-mode-choices button { min-height: 54px; padding: 7px 10px; }
body:not(.results-mode) .stays-shell .stay-mode-choices small { display: none; }
body:not(.results-mode) .stays-shell .stay-date-field input { border-color: #cbd9d8; border-radius: 3px; background: #fff; }
body:not(.results-mode) .stays-shell .stay-timing-summary { padding: 9px 0; border-color: #e1eae7; background: transparent; }

@media (max-width: 720px) {
  body:not(.results-mode) :is(.where-shell,.when-shell,.stays-shell) { padding: 14px 16px 28px; border: 0; border-top: 2px solid #0d5c63; border-radius: 0; box-shadow: none; }
  body:not(.results-mode) :is(.where-shell,.when-shell,.stays-shell) .sheet-grabber { margin-bottom: 10px; }
  body:not(.results-mode) .where-shell .route-composer { gap: 8px; }
  body:not(.results-mode) .where-shell .zone-rail { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body:not(.results-mode) .when-shell .time-composer { gap: 8px; }
  body:not(.results-mode) .stays-shell .stay-composer { grid-template-columns: 1fr; }
  body:not(.results-mode) .stays-shell .stay-mode-choices { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); overflow: visible; }
  body:not(.results-mode) .stays-shell .stay-mode-choices button { min-width: 0; }
}

/* Separate endpoint exploration from destination discovery. */
body:not(.endpoints-open) main > .endpoints-shell { display: none; }
body:not(.results-mode) .endpoints-shell {
  position: relative;
  margin-top: 16px;
  padding: 20px 24px 25px;
  border: 1px solid #cfdddc;
  border-top: 2px solid #0d5c63;
  border-radius: 4px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(20,61,70,.06);
}
body:not(.results-mode) .endpoints-shell > h2 { margin: 0 44px 14px 0; padding-bottom: 14px; border-bottom: 1px solid #e1eae7; color: #143d46; font-size: 1.25rem; font-weight: 450; letter-spacing: -.025em; }
body:not(.results-mode) .endpoints-shell > .panel-close { top: 9px; right: 15px; }
body:not(.results-mode) .endpoints-shell :is(.route-section,.endpoint-explorer) { margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; }
body:not(.results-mode) .endpoints-shell .endpoint-explorer { margin-top: 19px; padding-top: 18px; border-top: 1px solid #e1eae7; }
body:not(.results-mode) .endpoints-shell .section-heading { min-height: 40px; margin-bottom: 11px; }
body:not(.results-mode) .endpoints-shell .section-heading h3 { color: #143d46; font-size: 1rem; font-weight: 550; }
body:not(.results-mode) .endpoints-shell .section-clear { color: #0d5c63; }
body:not(.results-mode) .endpoints-shell .route-composer { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; padding: 0; border: 0; border-radius: 0; background: transparent; }
body:not(.results-mode) .endpoints-shell .route-step { min-height: 96px; padding: 8px 10px 5px; display: grid; grid-template-rows: 15px 42px 34px; align-content: start; border: 1px solid #cbd9d8; border-radius: 3px; background: #fff; }
body:not(.results-mode) .endpoints-shell .route-step:focus-within { border-color: #0d5c63; box-shadow: inset 0 -2px #0d5c63; }
body:not(.results-mode) .endpoints-shell .route-step > span { color: #4b6269; }
body:not(.results-mode) .endpoints-shell .route-button { width: 100%; justify-content: center; color: #143d46; font-size: 1rem; font-weight: 500; }
body:not(.results-mode) .endpoints-shell .route-aux-slot { justify-content: center; }
body:not(.results-mode) .endpoints-shell .finish-step { grid-column: auto; margin: 0; }
body:not(.results-mode) .route-menu .endpoint-browser { display: none; }
body:not(.results-mode) :is(.endpoint-pane-areas,.endpoint-pane-ports) button { min-height: 44px; padding: 8px 12px; border: 1px solid #cbd9d8; border-radius: 3px; background: #fff; color: #344e54; cursor: pointer; text-align: center; }
body:not(.results-mode) :is(.endpoint-pane-areas,.endpoint-pane-ports) button:hover { border-color: #79a4a4; background: #f6faf9; }
body:not(.results-mode) :is(.endpoint-pane-areas,.endpoint-pane-ports) button[aria-pressed="true"] { border-color: #0d5c63; background: #edf6f4; box-shadow: inset 0 -2px #0d5c63; color: #143d46; }
body:not(.results-mode) .endpoint-pane-search-label { margin-bottom: 7px; display: block; color: #4b6269; font-size: .72rem; font-weight: 600; }
body:not(.results-mode) #endpoint-pane-search { width: min(100%,440px); min-height: 44px; padding: 8px 12px; border: 1px solid #cbd9d8; border-radius: 3px; background: #fff; color: #143d46; }
body:not(.results-mode) #endpoint-return-to-start:not([hidden]) { min-height: 44px; margin: 10px 0 0; padding: 7px 12px; display: block; border: 1px solid #cbd9d8; border-radius: 3px; background: #fff; color: #143d46; cursor: pointer; font: inherit; font-size: .78rem; }
body:not(.results-mode) #endpoint-return-to-start:hover,
body:not(.results-mode) #endpoint-return-to-start[aria-pressed="true"] { border-color: #0d5c63; background: #edf6f4; }
body:not(.results-mode) .endpoint-pane-areas { margin: 13px 0; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 6px; }
body:not(.results-mode) .endpoint-pane-ports { padding-top: 13px; border-top: 1px solid #e1eae7; }
body:not(.results-mode) .endpoint-pane-ports > p { margin: 0; color: #667a80; font-size: .78rem; }
body:not(.results-mode) .endpoint-pane-ports .endpoint-pane-zone-choice { margin-bottom: 9px; }
body:not(.results-mode) .endpoint-pane-port-grid { max-height: 340px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; overflow-y: auto; }
body:not(.results-mode) .endpoint-pane-port-grid button { min-width: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
body:not(.results-mode) .endpoint-pane-port-grid strong { font-size: .78rem; font-weight: 500; }
body:not(.results-mode) .endpoint-pane-port-grid small { margin-top: 3px; color: #65777b; font-size: .66rem; }
body:not(.results-mode) .where-shell .destination-entry { position: relative; width: min(100%,440px); margin: 0 0 16px; padding: 6px 12px; border: 1px solid #cbd9d8; border-radius: 3px; }
body:not(.results-mode) .where-shell .destination-entry .route-button { width: 100%; color: #143d46; font-size: .9rem; font-weight: 500; }
body:not(.results-mode) .where-shell .destination-entry:focus-within { border-color: #0d5c63; }
@media (max-width: 900px) {
  body:not(.results-mode) .endpoint-pane-areas { grid-template-columns: repeat(3,minmax(0,1fr)); }
  body:not(.results-mode) .endpoint-pane-port-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 720px) {
  body.endpoints-open { overflow: hidden; }
  body.endpoints-open .sheet-backdrop { opacity: 1; pointer-events: auto; }
  body:not(.results-mode) .endpoints-shell { position: fixed; z-index: 21; inset: 70px 0 0; overflow-y: auto; margin: 0; padding: 14px 16px 28px; border: 0; border-top: 2px solid #0d5c63; border-radius: 0; box-shadow: none; }
  body:not(.results-mode) .endpoints-shell .sheet-grabber { margin-bottom: 10px; }
  body:not(.results-mode) .endpoint-pane-areas { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body:not(.results-mode) .endpoint-pane-port-grid { max-height: none; grid-template-columns: repeat(2,minmax(0,1fr)); }
}

/* Compact edit panes: the field strip chooses the port-browser context. */
body:not(.results-mode) :is(.endpoints-shell,.where-shell,.when-shell,.stays-shell) { padding: 15px 20px 19px; }
body:not(.results-mode) :is(.endpoints-shell,.where-shell,.when-shell,.stays-shell) > h2 { margin-bottom: 9px; padding-bottom: 10px; font-size: 1.16rem; }
body:not(.results-mode) :is(.endpoints-shell,.where-shell,.when-shell,.stays-shell) :is(.section-heading,.browser-heading) { min-height: 32px; margin-bottom: 8px; }
body:not(.results-mode) :is(.endpoints-shell,.where-shell,.when-shell,.stays-shell) :is(.section-heading h3,.browser-heading h3) { font-size: .94rem; }
body:not(.results-mode) .endpoints-shell .route-composer { gap: 8px; }
body:not(.results-mode) .endpoints-shell .route-step { min-height: 76px; padding: 7px 38px 5px 10px; grid-template-rows: 13px 34px 20px; }
body:not(.results-mode) .endpoints-shell .route-step.is-browsing { border-color: #0d5c63; background: #e6f1ef; box-shadow: inset 0 -3px #0d5c63; }
body:not(.results-mode) .endpoints-shell .route-step > span { font-size: .62rem; }
body:not(.results-mode) .endpoints-shell .route-button { min-height: 34px; font-size: .9rem; }
body:not(.results-mode) .endpoints-shell .route-aux-slot { min-height: 20px; justify-content: center; }
body:not(.results-mode) .endpoints-shell .finish-step .route-aux-slot { gap: 10px; }
body:not(.results-mode) .endpoints-shell .nearby-inline { min-height: 20px; margin: 0; font-size: .64rem; }
body:not(.results-mode) .endpoints-shell .route-aux-slot #endpoint-return-to-start:not([hidden]) { min-height: 20px; margin: 0; padding: 0; display: inline-flex; align-items: center; border: 0; border-radius: 0; background: transparent; color: #0d5c63; font-size: .64rem; font-weight: 650; text-decoration: underline; text-underline-offset: 2px; white-space: nowrap; }
body:not(.results-mode) .endpoints-shell .route-aux-slot #endpoint-return-to-start[aria-pressed="true"] { color: #143d46; font-weight: 800; }
body:not(.results-mode) .endpoints-shell .endpoint-field-clear { position: absolute; top: 4px; right: 5px; z-index: 1; width: 28px; height: 28px; padding: 0; border: 0; background: transparent; color: #526c71; font-size: 1.1rem; cursor: pointer; }
body:not(.results-mode) .endpoints-shell .endpoint-field-clear:hover { color: #0d5c63; }
body:not(.results-mode) .endpoints-shell .endpoint-field-clear:focus-visible { outline: 2px solid #0d5c63; outline-offset: -2px; }
body:not(.results-mode) .endpoints-shell .endpoint-explorer { position: relative; margin-top: 11px; padding-top: 11px; }
body:not(.results-mode) .endpoints-shell .endpoint-browser-heading { gap: 14px; }
body:not(.results-mode) .endpoints-shell #endpoint-pane-search { width: min(100%,230px); min-height: 34px; padding: 5px 9px; border: 1px solid #cbd9d8; border-radius: 3px; background: #fff; color: #143d46; font-size: .76rem; }
body:not(.results-mode) .endpoints-shell #endpoint-pane-search:focus-visible { outline: 2px solid #0d5c63; outline-offset: 2px; }
body:not(.results-mode) .endpoint-pane-areas { margin: 10px 0 14px; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 8px; }
body:not(.results-mode) .endpoint-pane-areas button { min-width: 0; min-height: 88px; padding: 12px 9px; border: 1px solid #cadad8; border-radius: 3px; background: linear-gradient(145deg,#fff 15%,#f0f7f6); color: #344e54; font-size: .78rem; font-weight: 600; line-height: 1.2; text-align: center; }
body:not(.results-mode) .endpoint-pane-areas button:hover { border-color: #7ba6a2; background: #f4f9f8; }
body:not(.results-mode) .endpoint-pane-areas button[aria-pressed="true"] { border: 1px solid #0d5c63; background: #e9f3f1; box-shadow: inset 0 -2px #0d5c63; color: #143d46; font-weight: 650; }
body:not(.results-mode) .endpoint-pane-areas button:disabled { border-color: #e1e8e6; background: #f8faf9; color: #889996; cursor: not-allowed; }
body:not(.results-mode) .endpoint-pane-ports { height: 330px; padding-top: 12px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; align-content: start; overflow-y: auto; scrollbar-gutter: stable; }
body:not(.results-mode) .endpoint-pane-ports:has(> .endpoint-port-section:only-child) { grid-template-columns: 1fr; }
body:not(.results-mode) .endpoint-pane-ports > p { grid-column: 1 / -1; }
body:not(.results-mode) .endpoint-port-section { min-width: 0; }
body:not(.results-mode) .endpoint-port-heading { min-height: 37px; margin-bottom: 7px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid #dce8e5; }
body:not(.results-mode) .endpoint-port-heading h4 { margin: 0; color: #143d46; font-size: .86rem; font-weight: 600; }
body:not(.results-mode) .endpoint-port-heading > div > span { color: #667a80; font-size: .66rem; }
body:not(.results-mode) .endpoint-port-section .endpoint-pane-zone-choice { width: auto; min-height: 32px; margin: 0; padding: 3px 2px; border: 0; border-radius: 0; background: transparent; box-shadow: none; color: #0d5c63; font-size: .71rem; font-weight: 650; text-align: right; text-decoration: underline; text-underline-offset: 3px; }
body:not(.results-mode) .endpoint-port-section .endpoint-pane-zone-choice[aria-pressed="true"] { border: 0; background: transparent; box-shadow: none; color: #0a4850; font-weight: 800; }
body:not(.results-mode) .endpoint-port-section .endpoint-pane-port-grid { max-height: none; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 4px 6px; overflow: visible; }
body:not(.results-mode) .endpoint-pane-ports:has(> .endpoint-port-section:only-child) .endpoint-pane-port-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
body:not(.results-mode) .endpoint-port-section .endpoint-pane-port-grid button { width: 100%; min-width: 0; min-height: 32px; padding: 4px 7px; display: flex; flex-direction: row; align-items: center; justify-content: flex-start; gap: 5px; border: 1px solid transparent; border-radius: 3px; background: #eef7f8; box-shadow: none; color: #234b57; font-size: .72rem; line-height: 1.15; text-align: left; }
body:not(.results-mode) .endpoint-port-section .endpoint-pane-port-grid button:hover { border-color: #9dbdbd; background: #e4f2f3; color: #143d46; }
body:not(.results-mode) .endpoint-port-section .endpoint-pane-port-grid button[aria-pressed="true"] { border: 1px solid #0d5c63; border-radius: 3px; background: #0d4e5a; box-shadow: none; color: #fff; font-weight: 700; }
body:not(.results-mode) .endpoint-port-section .endpoint-pane-port-grid button:focus-visible { position: relative; z-index: 1; outline: 2px solid #0d5c63; outline-offset: 2px; }
body:not(.results-mode) .endpoint-port-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body:not(.results-mode) .endpoint-scroll-more { position: absolute; right: 20px; bottom: 0; min-height: 32px; padding: 4px 12px; border: 1px solid #aac7c4; border-radius: 3px 3px 0 0; background: #fff; box-shadow: 0 -8px 18px #fff; color: #0d5c63; font-size: .72rem; font-weight: 700; cursor: pointer; }
body:not(.results-mode) .endpoint-scroll-more:focus-visible { outline: 2px solid #0d5c63; outline-offset: 2px; }
body:not(.results-mode) .where-shell .destination-entry { margin-bottom: 10px; padding: 2px 10px; }
body:not(.results-mode) .where-shell .zone-rail { gap: 5px; }
body:not(.results-mode) .where-shell .zone-card,
body:not(.results-mode) .where-shell .zone-card:nth-child(3n+2),
body:not(.results-mode) .where-shell .zone-card:nth-child(3n) { height: 52px; padding: 6px; }
body:not(.results-mode) .where-shell .region-panel { margin-top: 10px; padding-top: 9px; }
body:not(.results-mode) .when-shell .time-composer { gap: 9px; }
body:not(.results-mode) .when-shell :is(.time-field,.journey-span-question) { min-height: 74px; padding: 6px 9px 3px; }
body:not(.results-mode) .when-shell :is(.date-field-trigger,.journey-span-question select) { min-height: 44px; font-size: .88rem; }
body:not(.results-mode) .when-shell .field-chevron { top: 30px; }
body:not(.results-mode) .when-shell .availability-shortcuts { margin-top: 10px; padding-top: 9px; }
body:not(.results-mode) .stays-shell .stay-composer { gap: 9px; }
body:not(.results-mode) .stays-shell .stay-place-field { min-height: 74px; padding: 7px 9px 4px; }
body:not(.results-mode) .stays-shell .stay-place-input { min-height: 44px; }
body:not(.results-mode) .stays-shell .stay-place-group > p { margin-top: 4px; }
body:not(.results-mode) .stays-shell .stay-timing { margin-top: 11px; padding-top: 11px; }
body:not(.results-mode) .stays-shell .stay-mode-choices button { min-height: 44px; }
@media (max-width: 1100px) {
  body:not(.results-mode) .endpoint-pane-areas { grid-template-columns: repeat(4,minmax(0,1fr)); }
}
@media (max-width: 720px) {
  body:not(.results-mode) :is(.endpoints-shell,.where-shell,.when-shell,.stays-shell) { padding: 13px 16px 25px; }
  body:not(.results-mode) .endpoints-shell .endpoint-browser-heading { flex-wrap: wrap; }
  body:not(.results-mode) .endpoints-shell #endpoint-pane-search { width: 100%; }
  body:not(.results-mode) .endpoint-pane-areas { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body:not(.results-mode) .endpoint-pane-ports { height: auto; grid-template-columns: 1fr; gap: 19px; overflow: visible; scrollbar-gutter: auto; }
  body:not(.results-mode) .endpoint-port-section .endpoint-pane-port-grid,
  body:not(.results-mode) .endpoint-pane-ports:has(> .endpoint-port-section:only-child) .endpoint-pane-port-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body:not(.results-mode) .endpoint-port-section .endpoint-pane-port-grid button,
  body:not(.results-mode) .endpoint-port-section .endpoint-pane-zone-choice { min-height: 44px; }
  body:not(.results-mode) .endpoints-shell .route-step { min-height: 76px; }
  body:not(.results-mode) .endpoint-scroll-more { display: none; }
  body:not(.results-mode) .when-shell .time-composer { gap: 7px; }
}

/* Keep the blank ribbon invitational, with stay directly beneath the Where field. */
body:not(.results-mode) .designer-cruise-count {
  padding: 7px 18px;
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  align-items: center;
  gap: 6px 12px;
}
body:not(.results-mode) .designer-cruise-count > span { grid-column: 1; font-size: .8rem; }
body:not(.results-mode) .designer-cruise-options { grid-column: 2; flex-wrap: nowrap; gap: 4px; }
body:not(.results-mode) .designer-cruise-options button { min-height: 44px; padding: 6px 7px; white-space: nowrap; font-size: .7rem; }
body:not(.results-mode) .designer-stay-slot { grid-column: 3; min-width: 0; margin: 0; }
body:not(.results-mode) .designer-stay-slot .ribbon-stay-action { min-height: 44px; white-space: nowrap; font-size: .8rem; }
body:not(.results-mode) .journey-gateway { padding: 7px 18px; justify-content: flex-end; gap: 8px; }
body:not(.results-mode) .journey-gateway > button { margin-left: 8px; }
body:not(.results-mode) .journey-gateway .ribbon-readiness {
  position: absolute !important;
  width: 1px;
  height: 1px;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  flex: none !important;
}
@media (max-width: 1100px) {
  body:not(.results-mode) .designer-cruise-count { grid-template-columns: minmax(120px,.8fr) minmax(260px,1.3fr) minmax(190px,1fr); }
}
@media (max-width: 760px) {
  body:not(.results-mode) .designer-cruise-count { grid-template-columns: minmax(0,1fr) auto; }
  body:not(.results-mode) .designer-cruise-count > span { grid-column: 1; }
  body:not(.results-mode) .designer-cruise-options { grid-column: 2; }
  body:not(.results-mode) .designer-stay-slot { grid-column: 1 / -1; }
  body:not(.results-mode) .journey-gateway { justify-content: flex-start; }
}
@media (max-width: 540px) {
  body:not(.results-mode) .designer-cruise-count { grid-template-columns: 1fr; }
  body:not(.results-mode) .designer-cruise-options { grid-column: 1; flex-wrap: wrap; }
  body:not(.results-mode) .designer-stay-slot { grid-column: 1; }
  body:not(.results-mode) .journey-gateway > button { margin-left: auto; }
}

/* The journey-length proposition and its selectors read as one sentence. */
body:not(.results-mode) .designer-cruise-choice {
  min-width: 0;
  grid-column: 1 / 3;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 12px;
}
body:not(.results-mode) .designer-cruise-choice > span { color: #143d46; font-size: .8rem; font-weight: 500; }
body:not(.results-mode) .designer-cruise-choice .designer-cruise-options { display: flex; flex-wrap: wrap; gap: 4px; }
@media (max-width: 1100px) {
  body:not(.results-mode) .designer-cruise-count { grid-template-columns: minmax(0,2fr) minmax(190px,1fr); }
  body:not(.results-mode) .designer-cruise-choice { grid-column: 1; }
  body:not(.results-mode) .designer-stay-slot { grid-column: 2; }
}
@media (max-width: 760px) {
  body:not(.results-mode) .designer-cruise-choice,
  body:not(.results-mode) .designer-stay-slot { grid-column: 1 / -1; }
}

/* When editor: one visual grammar with Port Explorer, with distinct date-boundary states. */
@media (min-width: 1101px) {
  body:not(.results-mode) .when-shell .time-composer { grid-template-columns: minmax(0,1fr) minmax(360px,1.3fr) minmax(0,1fr); }
}
body:not(.results-mode) .when-shell .time-field { border-color: #cbd9d8; background: linear-gradient(145deg,#fff,#f7fbfa); }
body:not(.results-mode) .when-shell .time-field:has(#start-date-trigger.is-active-boundary) { border-color: #0d5c63; background: #e6f1ef; box-shadow: inset 0 -3px #0d5c63; }
body:not(.results-mode) .when-shell .time-field:has(#end-date-trigger.is-active-boundary) { border-color: #52768e; background: #eaf1f7; box-shadow: inset 0 -3px #52768e; }
body:not(.results-mode) .when-shell .journey-span-question { border-color: #cbd9d8; background: #fff; }
body:not(.results-mode) .when-shell .journey-length-label { display: block; min-height: 15px; color: #4b6269; font-size: .64rem; font-weight: 650; letter-spacing: .055em; text-transform: uppercase; }
body:not(.results-mode) .when-shell .journey-length-options { min-width: 0; min-height: 44px; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); align-items: center; gap: 4px; }
body:not(.results-mode) .when-shell .journey-length-options button { min-width: 0; min-height: 36px; padding: 4px 3px; border: 1px solid #cbd9d8; border-radius: 3px; background: #fff; color: #344e54; font: inherit; font-size: .68rem; line-height: 1.1; white-space: nowrap; cursor: pointer; }
body:not(.results-mode) .when-shell .journey-length-options button:hover { border-color: #7ba6a2; background: #f4f9f8; }
body:not(.results-mode) .when-shell .journey-length-options button[aria-pressed="true"] { border-color: #0d5c63; background: #e9f3f1; box-shadow: inset 0 -2px #0d5c63; color: #143d46; font-weight: 700; }
body:not(.results-mode) .when-shell .journey-length-options button:focus-visible { outline: 2px solid #0d5c63; outline-offset: 2px; }
body:not(.results-mode) .when-shell .availability-picker.is-choosing-start { border-top-color: #0d5c63; background: #fbfdfc; }
body:not(.results-mode) .when-shell .availability-picker.is-choosing-end { border-top-color: #52768e; background: #fbfcfe; }
body:not(.results-mode) .when-shell .availability-picker.is-choosing-start .availability-calendar { border-color: #c6ddda; background: #f2f8f7; }
body:not(.results-mode) .when-shell .availability-picker.is-choosing-end .availability-calendar { border-color: #ccdae6; background: #f2f6fa; }
body:not(.results-mode) .when-shell .availability-picker.is-choosing-start :is(.availability-day.is-in-range,.availability-month.is-in-range) { background: #e2f0ed; }
body:not(.results-mode) .when-shell .availability-picker.is-choosing-end :is(.availability-day.is-in-range,.availability-month.is-in-range) { background: #e7eff7; }
body:not(.results-mode) .when-shell .availability-picker.is-choosing-start .availability-day:not(:disabled):hover { background: #d4e9e4; }
body:not(.results-mode) .when-shell .availability-picker.is-choosing-end .availability-day:not(:disabled):hover { background: #dce9f4; }
body:not(.results-mode) .when-shell .availability-picker.is-choosing-start .availability-day.is-boundary { background: #0d5c63; }
body:not(.results-mode) .when-shell .availability-picker.is-choosing-end .availability-day.is-boundary { background: #52768e; }
body:not(.results-mode) .when-shell .availability-month { border: 1px solid #d8e4e4; background: #fff; }
body:not(.results-mode) .when-shell .availability-month.year-tone-1 { background: #f4f8fa; }
body:not(.results-mode) .when-shell .availability-month.is-year-start { position: relative; margin-left: 16px; }
body:not(.results-mode) .when-shell .availability-month.is-year-start::before { content: ""; position: absolute; left: -11px; top: 4px; bottom: 4px; width: 2px; background: #9db9bd; }
body:not(.results-mode) .when-shell .availability-month.is-active { border: 1px solid #0d5c63; box-shadow: inset 0 -2px #0d5c63; }
body:not(.results-mode) .when-shell .availability-picker.is-choosing-end .availability-month.is-active { border-color: #52768e; box-shadow: inset 0 -2px #52768e; }
body:not(.results-mode) .when-shell .time-resolution { min-height: 20px; }
body:not(.results-mode) .when-shell .availability-picker-help { min-height: 2.6em; }
body:not(.results-mode) .when-shell .availability-days { grid-template-rows: repeat(6,34px); }
@media (max-width: 1100px) {
  body:not(.results-mode) .when-shell .journey-length-options button { min-height: 44px; }
}
@media (max-width: 560px) {
  body:not(.results-mode) .when-shell .journey-length-options { grid-template-columns: repeat(3,minmax(0,1fr)); }
}

/* Destination Explorer: Port Explorer structure with more expressive area cards. */
body:not(.results-mode) .where-shell .geography-browser { margin-top: 0; padding-top: 2px; border-top: 0; }
body:not(.results-mode) .where-shell .browser-heading { align-items: flex-end; }
body:not(.results-mode) .where-shell .browser-heading p { margin: 3px 0 0; color: #667a80; font-size: .7rem; }
body:not(.results-mode) .where-shell .zone-rail { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 8px; overflow: visible; }
body:not(.results-mode) .where-shell .zone-card,
body:not(.results-mode) .where-shell .zone-card:nth-child(3n+2),
body:not(.results-mode) .where-shell .zone-card:nth-child(3n) {
  min-width: 0;
  height: 104px;
  padding: 12px;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border: 1px solid #cadad8;
  border-radius: 3px;
  background: linear-gradient(145deg,#fff 10%,#eef6f4);
  text-align: center;
}
body:not(.results-mode) .where-shell .zone-card:nth-child(even) { background: linear-gradient(145deg,#fff 10%,#f1f5f6); }
body:not(.results-mode) .where-shell .zone-card:hover { transform: none; border-color: #7ba6a2; background: linear-gradient(145deg,#fbfdfd,#e7f2ef); }
body:not(.results-mode) .where-shell .zone-card[aria-pressed="true"] { border: 1px solid #0d5c63; background: linear-gradient(145deg,#f8fbfa,#dfeeea); box-shadow: inset 0 -3px #0d5c63; }
body:not(.results-mode) .where-shell .zone-card.has-selection:not([aria-pressed="true"]) { border-color: #84aaa6; }
body:not(.results-mode) .where-shell .zone-card-copy { width: 100%; text-align: center; }
body:not(.results-mode) .where-shell .zone-card-copy strong { color: #23464d; font-size: .78rem; font-weight: 650; line-height: 1.15; white-space: normal; }
body:not(.results-mode) .where-shell .zone-card-copy small { margin-top: 5px; display: block; color: #64787c; font-size: .62rem; line-height: 1.25; }
body:not(.results-mode) .where-shell .zone-card.has-selection::after { display: none; }
body:not(.results-mode) .where-shell .zone-selection-count { position: absolute; top: 7px; right: 7px; min-width: 20px; height: 20px; padding: 0 5px; display: grid; place-items: center; border-radius: 999px; background: #0d5c63; color: #fff; font-size: .61rem; font-weight: 750; }
body:not(.results-mode) .where-shell .region-panel { min-height: 142px; margin-top: 14px; padding: 12px 13px 13px; border: 1px solid #d4e1df; border-radius: 3px; background: #fbfdfc; }
body:not(.results-mode) .where-shell .region-panel-head { min-height: 40px; margin-bottom: 9px; }
body:not(.results-mode) .where-shell .region-panel-head > div:first-child > span { display: block; color: #667a80; font-size: .61rem; font-weight: 650; letter-spacing: .055em; text-transform: uppercase; }
body:not(.results-mode) .where-shell .region-panel-head h4 { margin-top: 2px; color: #143d46; font-size: .94rem; }
body:not(.results-mode) .where-shell .region-pills { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 6px; }
body:not(.results-mode) .where-shell .region-pill { width: 100%; min-width: 0; min-height: 36px; padding: 5px 9px; justify-content: center; border-radius: 999px; }
body:not(.results-mode) .where-shell .region-pill strong { overflow: hidden; color: inherit; font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
body:not(.results-mode) .where-shell .region-pill[aria-pressed="true"] { border-color: #0d5c63; background: #0d5c63; color: #fff; font-weight: 700; }
body:not(.results-mode) .where-shell .region-pill[aria-pressed="true"]:hover:not(:disabled) { border-color: #0a4b51; background: #0a4b51; color: #fff; }
body:not(.results-mode) .where-shell .destination-disclosure { margin: 11px 0 0; padding: 10px 12px 0; }
@media (max-width: 1100px) {
  body:not(.results-mode) .where-shell .zone-rail { grid-template-columns: repeat(4,minmax(0,1fr)); }
  body:not(.results-mode) .where-shell .region-pills { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 720px) {
  body:not(.results-mode) .where-shell .zone-rail { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body:not(.results-mode) .where-shell .zone-card,
  body:not(.results-mode) .where-shell .zone-card:nth-child(3n+2),
  body:not(.results-mode) .where-shell .zone-card:nth-child(3n) { min-height: 88px; height: auto; }
  body:not(.results-mode) .where-shell .region-panel { min-height: 0; }
  body:not(.results-mode) .where-shell .region-pills { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body:not(.results-mode) .where-shell .region-pill { min-height: 44px; }
}

/* Approved Designer hierarchy: essentials, shape, refinements, then the results action. */
body:not(.results-mode) .designer-section-heading {
  min-height: 52px;
  padding: 0 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  background: #fff;
}
body:not(.results-mode) .designer-section-heading h2 {
  margin: 0;
  color: #143d46;
  font-size: .86rem;
  font-weight: 650;
  letter-spacing: -.01em;
}
body:not(.results-mode) .designer-section-heading p {
  margin: 0;
  color: #66777a;
  font-size: .72rem;
  font-weight: 450;
}
body:not(.results-mode) .designer-ribbon-prompt {
  order: 0;
  padding: 0 18px;
  border-bottom: 1px solid #b8d0ce;
  line-height: normal;
}
body:not(.results-mode) .designer-cruise-count.designer-shape-section {
  order: 2;
  padding: 0;
  display: block;
  border-top: 0;
  background: #fff;
}
body:not(.results-mode) .designer-shape-section > .designer-section-heading {
  border-bottom: 1px solid #e4ebe7;
}
body:not(.results-mode) .designer-shape-grid {
  display: grid;
  grid-template-columns: minmax(0,1.22fr) minmax(0,1fr) minmax(0,1.1fr);
  align-items: stretch;
}
body:not(.results-mode) .designer-shape-control {
  min-width: 0;
  padding: 13px 18px 15px;
  display: block;
  border-left: 1px solid #e4ebe7;
}
body:not(.results-mode) .designer-shape-control:first-child { border-left: 0; }
body:not(.results-mode) .designer-shape-control > span {
  min-height: 18px;
  margin: 0 0 8px;
  display: block;
  color: #143d46;
  font-size: .72rem;
  font-weight: 500;
}
body:not(.results-mode) .designer-cruise-choice,
body:not(.results-mode) .designer-cruise-choice .designer-cruise-options {
  grid-column: auto;
}
body:not(.results-mode) .designer-cruise-choice .designer-cruise-options,
body:not(.results-mode) .designer-cruise-length-options {
  display: grid;
  align-items: stretch;
  gap: 5px;
}
body:not(.results-mode) .designer-cruise-choice .designer-cruise-options { grid-template-columns: repeat(4,minmax(0,1fr)); }
body:not(.results-mode) .designer-cruise-length-options { grid-template-columns: repeat(3,minmax(0,1fr)); }
body:not(.results-mode) :is(.designer-cruise-options,.designer-cruise-length-options) button {
  min-width: 0;
  min-height: 42px;
  padding: 7px 6px;
  border: 1px solid #cbd9d8;
  border-radius: 3px;
  background: #fff;
  color: #143d46;
  cursor: pointer;
  font: inherit;
  font-size: .69rem;
  line-height: 1.2;
  white-space: nowrap;
}
body:not(.results-mode) :is(.designer-cruise-options,.designer-cruise-length-options) button:hover {
  border-color: #7ba6a2;
  background: #f4f9f8;
}
body:not(.results-mode) :is(.designer-cruise-options,.designer-cruise-length-options) button[aria-pressed="true"] {
  border-color: #0d5c63;
  background: #edf6f4;
  box-shadow: inset 0 -2px #0d5c63;
  color: #143d46;
  font-weight: 650;
}
body:not(.results-mode) .designer-stay-slot {
  min-width: 0;
  margin: 0;
}
body:not(.results-mode) .designer-stay-slot .ribbon-stay-action {
  width: 100%;
  min-height: 42px;
  padding: 7px 10px;
  justify-content: center;
  border: 1px dashed #b9abc7;
  border-radius: 3px;
  background: #fff;
  color: #675476;
  font-size: .72rem;
  white-space: normal;
  text-align: center;
}
body:not(.results-mode) .designer-stay-slot .ribbon-stay-action:hover {
  border-style: solid;
  background: #f8f4f9;
  color: #594a63;
  text-decoration: none;
}
body:not(.results-mode) .designer-stay-selected {
  min-height: 42px;
  border: 1px solid #cfc1d5;
  border-radius: 3px;
  background: #f8f4f9;
}
body:not(.results-mode) .designer-stay-selected .stay-summary-action {
  min-height: 40px;
  padding-left: 10px;
}
body:not(.results-mode) .designer-preferences-access {
  order: 3;
  margin: 0;
  padding: 0;
  display: block;
  border: 0;
  border-top: 1px solid #e4ebe7;
  border-radius: 0;
  background: #fff;
}
body:not(.results-mode) .designer-preferences-access > .designer-section-heading {
  border-bottom: 1px solid #e4ebe7;
}
body:not(.results-mode) .designer-refinement-row {
  min-height: 66px;
  padding: 10px 18px;
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: center;
  gap: 18px;
  background: #fbfcfa;
}
body:not(.results-mode) .designer-preferences-summary {
  grid-column: auto;
  grid-row: auto;
  min-width: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  overflow: visible;
}
body:not(.results-mode) .designer-preferences-summary button {
  flex: 0 1 auto;
  width: auto;
  min-width: 0;
  min-height: 38px;
  margin: 0 9px 0 0;
  padding: 4px 0;
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #435a5e;
  text-align: left;
  box-shadow: none;
}
body:not(.results-mode) .designer-preferences-summary button:not(:last-child)::after {
  content: "·";
  margin-left: 9px;
  color: #a9b8b5;
}
body:not(.results-mode) .designer-preferences-summary button:hover { background: transparent; color: var(--green); }
body:not(.results-mode) .designer-preferences-summary small { display: none; }
body:not(.results-mode) .designer-preferences-summary span {
  min-width: 0;
  overflow: visible;
  font-size: .72rem;
  font-weight: 500;
  text-overflow: clip;
  white-space: nowrap;
}
body:not(.results-mode) .designer-preferences-access #preferences-entry {
  grid-column: auto;
  grid-row: auto;
  min-height: 40px;
  padding: 7px 9px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--green);
  font-size: .74rem;
  font-weight: 650;
  white-space: nowrap;
}
body:not(.results-mode) .request-guidance { order: 4; }
body:not(.results-mode) .journey-gateway {
  order: 5;
  min-height: 64px;
  padding: 10px 18px;
  justify-content: flex-end;
  gap: 8px 12px;
  border-top: 1px solid #e4ebe7;
  background: #f3f8f7;
}
body:not(.results-mode) .journey-gateway > button {
  margin-left: 2px;
  border-radius: 3px;
}

@media (max-width: 900px) {
  body:not(.results-mode) .designer-shape-grid { grid-template-columns: 1fr; }
  body:not(.results-mode) .designer-shape-control {
    border-top: 1px solid #e4ebe7;
    border-left: 0;
  }
  body:not(.results-mode) .designer-shape-control:first-child { border-top: 0; }
}
@media (max-width: 760px) {
  body:not(.results-mode) .designer-section-heading {
    min-height: 0;
    padding: 13px 17px;
    align-items: flex-start;
    flex-direction: column;
    gap: 3px;
  }
  body:not(.results-mode) .designer-ribbon-prompt { padding: 13px 17px; }
  body:not(.results-mode) .designer-refinement-row { grid-template-columns: 1fr; gap: 4px; }
  body:not(.results-mode) .designer-preferences-access #preferences-entry { justify-self: start; margin-left: -9px; }
}
@media (max-width: 540px) {
  body:not(.results-mode) .designer-cruise-choice .designer-cruise-options { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body:not(.results-mode) .designer-cruise-length-options { grid-template-columns: 1fr; }
  body:not(.results-mode) .journey-gateway { justify-content: flex-start; }
  body:not(.results-mode) .journey-gateway > button { width: 100%; margin-left: 0; }
}

/* Journey Refinements: destination-style cruise-line browsing. */
body:not(.results-mode) .matters-shell .line-browser-heading {
  margin-bottom: 10px;
}
body:not(.results-mode) .matters-shell .line-category-rail {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 8px;
}
body:not(.results-mode) .matters-shell .line-category-card {
  min-width: 0;
  min-height: 92px;
  padding: 12px 14px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #cadad8;
  border-radius: 3px;
  background: linear-gradient(145deg,#fff 10%,#eef6f4);
  box-shadow: none;
  color: #23464d;
  text-align: center;
}
body:not(.results-mode) .matters-shell .line-category-card:nth-child(even) {
  background: linear-gradient(145deg,#fff 10%,#f1f5f6);
}
body:not(.results-mode) .matters-shell .line-category-card:hover {
  border-color: #7ba6a2;
  background: linear-gradient(145deg,#fbfdfd,#e7f2ef);
}
body:not(.results-mode) .matters-shell .line-category-card[aria-pressed="true"] {
  border: 1px solid #0d5c63;
  background: linear-gradient(145deg,#f8fbfa,#dfeeea);
  box-shadow: inset 0 -3px #0d5c63;
}
body:not(.results-mode) .matters-shell .line-category-copy {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
}
body:not(.results-mode) .matters-shell .line-category-card strong {
  width: 100%;
  min-height: 0;
  display: block;
  color: inherit;
  font-size: .78rem;
  font-weight: 650;
  line-height: 1.2;
}
body:not(.results-mode) .matters-shell .line-category-card small {
  display: block;
  color: #64787c;
  font-size: .62rem;
  line-height: 1.25;
}
body:not(.results-mode) .matters-shell .line-category-card.has-selection::after { display: none; }
body:not(.results-mode) .matters-shell .line-category-count {
  min-width: 20px;
  height: 20px;
  padding: 0 5px;
  top: 7px;
  right: 7px;
  border-radius: 999px;
  background: #0d5c63;
  color: #fff;
  font-size: .61rem;
  font-weight: 750;
}
body:not(.results-mode) .matters-shell .line-panel {
  min-height: 142px;
  margin-top: 12px;
  padding: 12px 13px 13px;
  border: 1px solid #d4e1df;
  border-radius: 3px;
  background: #fbfdfc;
}
body:not(.results-mode) .matters-shell .line-panel-head {
  min-height: 40px;
  margin-bottom: 9px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
body:not(.results-mode) .matters-shell .line-panel-head > div:first-child > span {
  display: block;
  color: #667a80;
  font-size: .61rem;
  font-weight: 650;
  letter-spacing: .055em;
  text-transform: uppercase;
}
body:not(.results-mode) .matters-shell .line-panel-head h4 {
  margin: 2px 0 0;
  color: #143d46;
  font-size: .94rem;
  font-weight: 600;
}
body:not(.results-mode) .matters-shell .line-panel-tools {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 3px 8px;
}
body:not(.results-mode) .matters-shell .line-panel-tools > span {
  color: #667a80;
  font-size: .68rem;
}
body:not(.results-mode) .matters-shell .line-panel-head button {
  min-height: 36px;
  padding: 5px 7px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #0d5c63;
  font-size: .69rem;
  font-weight: 600;
}
body:not(.results-mode) .matters-shell .line-pills {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 6px;
}
body:not(.results-mode) .matters-shell .line-pill {
  width: 100%;
  min-width: 0;
  min-height: 40px;
  padding: 7px 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #cbd9dc;
  border-radius: 999px;
  background: #fff;
  color: #344e54;
  text-align: center;
}
body:not(.results-mode) .matters-shell .line-pill:hover:not(:disabled) {
  border-color: #79a4a4;
  background: #f6faf9;
}
body:not(.results-mode) .matters-shell .line-pill[aria-pressed="true"] {
  border-color: #0d5c63;
  background: #0d5c63;
  color: #fff;
  font-weight: 700;
}
body:not(.results-mode) .matters-shell .line-pill[aria-pressed="true"]:hover:not(:disabled) {
  border-color: #0a4b51;
  background: #0a4b51;
  color: #fff;
}
body:not(.results-mode) .matters-shell .line-pill strong {
  width: 100%;
  overflow: hidden;
  color: inherit;
  font-size: .72rem;
  font-weight: inherit;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 1100px) {
  body:not(.results-mode) .matters-shell .line-pills { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 520px) {
  body:not(.results-mode) .matters-shell .line-category-rail { grid-template-columns: 1fr; }
  body:not(.results-mode) .matters-shell .line-category-card { min-height: 78px; }
  body:not(.results-mode) .matters-shell .line-panel-head { align-items: flex-start; flex-direction: column; }
  body:not(.results-mode) .matters-shell .line-panel-tools { justify-content: flex-start; }
  body:not(.results-mode) .matters-shell .line-pills { grid-template-columns: 1fr; }
  body:not(.results-mode) .matters-shell .line-pill { min-height: 44px; }
}

/* Results Summary: carry the Journey Designer's sectional language forward. */
body.results-mode { background: #f7f9f7; }
body.results-mode main { max-width: 1340px; }
body.results-mode .intro { margin: 2px 0 20px; text-align: left; }
body.results-mode .intro h1 { font-size: clamp(1.75rem,2.5vw,2.35rem); }
body.results-mode .journey-ribbon {
  top: 8px;
  margin-bottom: 22px;
  padding: 12px 15px;
  border: 1px solid #b8d0ce;
  border-top: 3px solid var(--green);
  border-radius: 3px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(20,61,70,.08);
}
body.results-mode .journey-node,
body.results-mode .journey-placeholder { border-radius: 3px; }
body.results-mode .journey-gateway button { border-radius: 3px; }
body.results-mode .preference-item { border-radius: 999px; }
.results-experience { display: grid; gap: 0; }
.results-toolbar {
  min-height: 98px;
  margin: 0;
  padding: 20px 22px;
  align-items: center;
  border: 1px solid #d5e1de;
  border-top: 3px solid var(--green);
  border-radius: 3px 3px 0 0;
  background: #fff;
}
.results-toolbar .eyebrow { margin-bottom: 5px; font-size: .65rem; letter-spacing: .09em; }
.results-toolbar h2 { margin: 0 0 3px; font-size: 1.18rem; font-weight: 650; }
.results-toolbar p:last-child { margin: 0; max-width: 820px; color: #667a80; font-size: .76rem; line-height: 1.45; }
.results-toolbar button {
  min-height: 42px;
  padding: 8px 12px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--green);
  font-size: .75rem;
  font-weight: 650;
}
.results-toolbar button::after { content: " →"; margin-left: 4px; }
.diagnostic-handoff {
  margin: 0;
  border: solid #dfe8e5;
  border-width: 0 1px 1px;
  border-radius: 0;
  background: #fbfcfa;
}
.diagnostic-handoff > summary { padding: 9px 22px; }
.results-notices { margin: 12px 0 0; }
.results-notice { border-radius: 3px; box-shadow: none; }
.results-browse-tools {
  margin: 12px 0 16px;
  padding: 0;
  display: block;
  border: 1px solid #d5e1de;
  border-radius: 3px;
  background: #fff;
}
.results-controls-heading {
  min-height: 54px;
  padding: 13px 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border-bottom: 1px solid #e1e9e6;
}
.results-controls-heading h3 { margin: 0; color: var(--deep-ocean); font-size: .9rem; font-weight: 700; }
.results-controls-heading p { margin: 0; color: #6c7c80; font-size: .7rem; }
.results-controls-body { padding: 12px 18px; display: flex; align-items: flex-start; gap: 12px; background: #fbfcfa; }
.results-sort-control select,
.results-filters > summary { border-color: #cbdad7; border-radius: 3px; background: #fff; }
.results-filters > summary { color: var(--green); }
.results-filter-panel { border-radius: 3px; box-shadow: none; }
.filter-options label { border-radius: 3px; }
.results-exclusions { border-radius: 3px; }
.journey-list { gap: 10px; }
.journey-card {
  column-gap: 18px;
  padding: 19px 20px;
  overflow: hidden;
  border-color: #d4e1de;
  border-radius: 3px;
  box-shadow: none;
  transform: none;
}
.journey-card::before {
  content: "";
  width: 3px;
  position: absolute;
  inset: 0 auto 0 0;
  border-radius: 3px 0 0 3px;
  background: transparent;
}
.journey-card { position: relative; }
.journey-card:hover { border-color: #79a4a0; box-shadow: 0 6px 18px rgba(20,61,70,.06); transform: none; }
.journey-card:hover::before,
.journey-card.is-selected::before { background: var(--green); }
.journey-card.is-selected { background: #f8fbfa; box-shadow: none; }
.journey-card-index { border-radius: 3px; background: #edf6f4; font-weight: 700; }
.journey-card-kicker .eyebrow { letter-spacing: .08em; }
.journey-card h3 { color: var(--deep-ocean); font-size: 1.18rem; font-weight: 600; }
.ship-pill,
.stay-sequence-pill,
.journey-tags span { border-radius: 999px; }
.view-journey { min-height: 42px; padding: 8px 0; }
.results-pagination button { border-radius: 3px; }
.results-empty,
.searching-journeys span { border-radius: 3px; }

@media (max-width: 720px) {
  body.results-mode .intro { margin-bottom: 14px; }
  .results-toolbar { padding: 16px; align-items: flex-start; flex-direction: column; gap: 8px; }
  .results-toolbar button { margin-left: -12px; }
  .results-controls-heading { padding: 12px 14px; align-items: flex-start; flex-direction: column; gap: 3px; }
  .results-controls-body { padding: 12px 14px; flex-direction: column; }
  .results-sort-control, .results-filters { width: 100%; flex-basis: auto; }
  .journey-card { border-radius: 3px; }
}

/* Results reward: a compact design ribbon, discovery total, and unified sort/filter band. */
body.results-mode .journey-ribbon {
  padding: 14px 18px 13px;
  border-top-width: 4px;
  background: linear-gradient(110deg,#ffffff 0%,#f4f9f7 68%,#eaf5f2 100%);
  box-shadow: 0 10px 28px rgba(20,61,70,.1);
}
body.results-mode .journey-ribbon-heading { margin-bottom: 9px; }
body.results-mode .journey-ribbon-body { gap: 20px; }
body.results-mode .journey-track {
  padding: 2px 8px 4px;
  display: grid;
  grid-template-columns: repeat(var(--results-ribbon-count,4),minmax(0,1fr));
  align-items: start;
  overflow: visible;
}
body.results-mode .results-ribbon-step {
  min-width: 0;
  position: relative;
  display: block;
  padding: 0 12px;
  text-align: center;
}
body.results-mode .results-journey-point {
  width: 100%;
  display: grid;
  grid-template-rows: 16px minmax(20px,auto);
  justify-items: center;
}
body.results-mode .results-journey-point small { justify-content: center; }
body.results-mode .results-journey-point strong { padding-top: 2px; }
body.results-mode .journey-wake-link {
  width: 42px;
  min-width: 42px;
  height: 22px;
  margin: 0;
  position: absolute;
  z-index: 1;
  top: 2px;
  left: 0;
  transform: translateX(-50%);
}
body.results-mode .journey-wake-link::before { width: 30px; }
body.results-mode .preference-strand { margin-top: 8px; padding-top: 8px; }
body.results-mode .results-summary-line { grid-template-columns: 174px minmax(0,1fr); gap: 10px; }
body.results-mode .results-summary-line > span { white-space: nowrap; }

.results-experience { gap: 0; scroll-margin-top: 210px; }
.results-discovery-shell {
  margin: 0 0 16px;
  position: relative;
  border: 1px solid #cbdcd8;
  border-top: 4px solid var(--green);
  border-radius: 3px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(20,61,70,.07);
}
.results-toolbar {
  min-height: 0;
  margin: 0;
  padding: 21px 24px 20px;
  display: block;
  border: 0;
  border-radius: 0;
  background: #fff;
}
.results-toolbar .eyebrow {
  margin: 0 0 6px;
  color: var(--green);
  font-size: .66rem;
  letter-spacing: .1em;
}
.results-discovery-count {
  display: flex;
  align-items: baseline;
  gap: 13px;
}
.results-discovery-count > strong {
  min-width: 2.15ch;
  color: var(--deep-ocean);
  font-size: clamp(2.6rem,5vw,4.2rem);
  font-weight: 680;
  line-height: .95;
  letter-spacing: -.055em;
  font-variant-numeric: tabular-nums;
}
.results-toolbar h2 {
  margin: 0;
  color: #51686d;
  font-size: clamp(.92rem,1.5vw,1.15rem);
  font-weight: 520;
}
.results-compromise {
  max-width: 900px;
  margin-top: 15px;
  padding: 11px 13px;
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 4px 10px;
  border-left: 3px solid var(--gold);
  background: #fffaf0;
  color: var(--deep-ocean);
  font-size: .74rem;
  line-height: 1.45;
}
.results-compromise[hidden] { display: none; }
.results-compromise strong { font-weight: 700; }
.results-compromise span { color: #66757e; }
.results-toolbar.is-loading .results-discovery-count > strong { color: #9aacab; }

.results-browse-tools {
  margin: 0;
  padding: 13px 18px;
  position: relative;
  display: grid;
  grid-template-columns: minmax(230px,1fr) auto;
  align-items: center;
  gap: 18px;
  border: 0;
  border-top: 1px solid #d6e3e0;
  border-radius: 0;
  background: linear-gradient(90deg,#edf6f4,#e5f1ee);
}
.results-controls-heading {
  min-height: 0;
  padding: 0;
  display: block;
  border: 0;
}
.results-controls-heading h3 {
  font-size: .86rem;
  font-weight: 680;
}
.results-controls-body {
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 9px;
  background: transparent;
}
.results-sort-control {
  flex: 0 0 205px;
  display: block;
}
.results-sort-control label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}
.results-sort-control select,
.results-filters > summary {
  min-height: 42px;
  border-color: #b9cfca;
  border-radius: 3px;
  background: rgba(255,255,255,.92);
}
.results-filters { flex: 0 0 178px; }
.results-filters > summary { justify-content: center; }
.results-filter-panel {
  margin-top: 0;
  position: absolute;
  z-index: 20;
  top: calc(100% + 8px);
  right: 0;
  width: min(1100px,calc(100vw - 56px));
  border-radius: 3px;
  box-shadow: 0 14px 34px rgba(20,61,70,.14);
}
.results-notices { margin: 0 0 12px; }

@media (max-width: 900px) {
  body.results-mode .journey-ribbon-body { gap: 10px; }
  body.results-mode .results-summary-line { grid-template-columns: 174px minmax(0,1fr); }
  .results-browse-tools { grid-template-columns: 1fr; gap: 10px; }
  .results-controls-body { justify-content: flex-start; }
}

@media (max-width: 620px) {
  body.results-mode .journey-track {
    padding: 0 2px 7px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 2px;
  }
  body.results-mode .results-ribbon-step {
    display: grid;
    grid-template-columns: 32px minmax(0,1fr);
    padding: 0;
    text-align: left;
  }
  body.results-mode .results-ribbon-step:first-child { padding-left: 32px; }
  body.results-mode .journey-wake-link {
    width: 30px;
    min-width: 30px;
    margin: -2px 0 0;
    position: relative;
    top: auto;
    left: auto;
    transform: rotate(90deg);
    transform-origin: center;
  }
  body.results-mode .results-journey-point { justify-items: start; }
  body.results-mode .results-journey-point small { justify-content: flex-start; }
  body.results-mode .results-summary-line { grid-template-columns: 1fr; gap: 2px; }
  .results-toolbar { padding: 18px 16px; }
  .results-discovery-count { align-items: flex-end; gap: 10px; }
  .results-discovery-count > strong { font-size: 2.65rem; }
  .results-browse-tools { padding: 13px 14px; }
  .results-controls-body { width: 100%; flex-direction: column; align-items: stretch; }
  .results-sort-control,
  .results-filters { width: 100%; flex: 0 0 auto; }
  .results-filter-panel { width: 100%; position: static; margin-top: 9px; }
}

/* Results polish: more ribbon rhythm, a lighter count, and persistent controls. */
body.results-mode .journey-ribbon-heading { margin-bottom: 18px; }
body.results-mode .results-journey-point {
  min-height: 44px;
  padding: 4px 2px;
  border: 0;
  border-radius: 3px;
  background: transparent;
  color: inherit;
  font: inherit;
  cursor: pointer;
  grid-template-rows: auto auto;
  row-gap: 6px;
}
body.results-mode .results-journey-point:hover { background: #e4f0ed; }
body.results-mode .results-summary-line button { min-height: 32px; padding: 2px 0; border: 0; background: transparent; color: inherit; font: inherit; cursor: pointer; text-align: left; }
body.results-mode .results-summary-line button:hover { text-decoration: underline; text-underline-offset: 3px; }
.results-notice.is-search-stopped { padding: 9px 14px; gap: 4px 12px; align-items: baseline; }
.results-notice.is-search-stopped strong { flex: none; }
@media (max-width: 720px) {
  body.results-mode .results-summary-line button { min-height: 44px; }
}
body.results-mode .results-journey-point strong { padding-top: 0; }
.results-discovery-shell {
  margin-bottom: 0;
  border-radius: 3px 3px 0 0;
  box-shadow: none;
}
.results-discovery-count > strong {
  font-size: clamp(2.25rem,4vw,3.45rem);
}
.results-browse-tools {
  margin: 0 0 16px;
  position: sticky;
  z-index: 11;
  top: 194px;
  border: 1px solid #cbdcd8;
  border-top: 1px solid #d6e3e0;
  border-radius: 0 0 3px 3px;
  box-shadow: 0 7px 18px rgba(20,61,70,.08);
}
.results-pagination #results-first {
  border-color: transparent;
  background: transparent;
  text-decoration: underline;
  text-underline-offset: 3px;
}

@media (max-width: 900px) {
  .results-browse-tools { top: 0; }
}

@media (max-width: 620px) {
  .results-discovery-count > strong { font-size: 2.35rem; }
  .results-browse-tools { position: static; }
  .results-pagination { flex-wrap: wrap; }
}

/* Keep result controls below the shared sticky navigation as content changes. */
body.results-mode .journey-ribbon {
  top: var(--cw-site-header-height,68px);
  box-shadow: 0 8px 18px rgba(20,61,70,.09);
}
body.results-mode .results-browse-tools {
  top: calc(var(--cw-site-header-height,68px) + var(--results-ribbon-sticky-height,184px));
  border-top-color: #cbdcd8;
  box-shadow: 0 8px 18px rgba(20,61,70,.09);
}
body.results-mode .results-experience {
  scroll-margin-top: calc(var(--cw-site-header-height,68px) + var(--results-ribbon-sticky-height,184px) + 66px);
}

@media (max-width: 900px) {
  body.results-mode .results-browse-tools { top: var(--cw-site-header-height,68px); }
}

body.results-mode .results-filter-grid {
  grid-template-columns: repeat(3,minmax(170px,1fr));
  gap: 18px 22px;
}
body.results-mode #filtered-results-count {
  margin-left: 7px;
  padding: 3px 7px;
  border-radius: 999px;
  background: rgba(13,92,99,.1);
  color: var(--green);
  font-size: .66rem;
  font-weight: 650;
  white-space: nowrap;
}
body.results-mode #filtered-results-count:empty { display: none; }

@media (max-width: 760px) {
  body.results-mode .results-filter-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 520px) {
  body.results-mode .results-filter-grid { grid-template-columns: 1fr; }
}

/* TAN-18: compact stay planning and a protected day block. */
body:not(.results-mode) .stays-shell .stay-day-control { display:flex; align-items:center; gap:7px; min-height:44px; }
body:not(.results-mode) .stays-shell .stay-day-control button,
body:not(.results-mode) .stays-shell .stay-calendar-heading button { width:32px; height:32px; padding:0; border:1px solid #cbd9d8; border-radius:4px; background:#fff; color:#143d46; cursor:pointer; font-size:1.1rem; }
body:not(.results-mode) .stays-shell .stay-day-control button:disabled { opacity:.45; cursor:default; }
body:not(.results-mode) .stays-shell .stay-day-control input { width:52px; height:38px; border:1px solid #cbd9d8; border-radius:4px; background:#fff; color:#143d46; text-align:center; font:inherit; font-weight:650; }
body:not(.results-mode) .stays-shell .stay-day-control span { color:#4b6269; font-size:.8rem; }
body:not(.results-mode) .stays-shell .stay-mode-choices { grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
body:not(.results-mode) .stays-shell .stay-mode-choices button { min-height:40px; padding:6px 10px; }
body:not(.results-mode) .stays-shell .stay-mode-choices strong { font-size:.78rem; }
body:not(.results-mode) .stays-shell .stay-mode-choices button[hidden],
body:not(.results-mode) .stays-shell .stay-calendar[hidden],
body:not(.results-mode) .stays-shell .stay-date-editor[hidden],
body:not(.results-mode) .when-shell .when-stay-block[hidden] { display:none; }
body:not(.results-mode) .stays-shell .stay-calendar { margin-top:10px; padding:12px; border:1px solid #d9e4e2; border-radius:5px; background:#fff; }
body:not(.results-mode) .stays-shell .stay-calendar-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; }
body:not(.results-mode) .stays-shell .stay-calendar-heading strong { color:#143d46; font-size:.87rem; }
body:not(.results-mode) .stays-shell .stay-calendar-heading div { display:flex; gap:5px; }
body:not(.results-mode) .stays-shell .stay-calendar-heading button:disabled { opacity:.4; cursor:default; }
body:not(.results-mode) .stays-shell .stay-calendar > p { margin:5px 0 9px; color:#617477; font-size:.7rem; line-height:1.35; }
body:not(.results-mode) .stays-shell .stay-calendar-weekdays,
body:not(.results-mode) .stays-shell .stay-calendar-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:3px; text-align:center; }
body:not(.results-mode) .stays-shell .stay-calendar-weekdays { margin-bottom:4px; color:#698081; font-size:.61rem; }
body:not(.results-mode) .stays-shell .stay-calendar-days button { min-width:0; height:35px; border:0; border-radius:4px; background:#f6f9f8; color:#29484e; cursor:pointer; font:inherit; font-size:.75rem; }
body:not(.results-mode) .stays-shell .stay-calendar-days button:hover:not(:disabled) { outline:1px solid #0d5c63; }
body:not(.results-mode) .stays-shell .stay-calendar-days button:disabled { opacity:.35; cursor:default; }
body:not(.results-mode) .stays-shell .stay-calendar-days button.is-stay-day { background:#e4d6ed; color:#563d65; font-weight:700; }
body:not(.results-mode) .stays-shell .stay-calendar-days button.is-stay-start { box-shadow:inset 0 0 0 2px #795c8a; }
body:not(.results-mode) .when-shell .when-stay-block { margin:10px 0 0; padding:8px 10px; display:flex; align-items:center; justify-content:space-between; gap:10px; border-left:3px solid #795c8a; background:#f6f0f8; }
body:not(.results-mode) .when-shell .when-stay-block strong,
body:not(.results-mode) .when-shell .when-stay-block small { display:block; }
body:not(.results-mode) .when-shell .when-stay-block strong { color:#563d65; font-size:.75rem; }
body:not(.results-mode) .when-shell .when-stay-block small { margin-top:2px; color:#635b69; font-size:.68rem; }
body:not(.results-mode) .when-shell .when-stay-block button,
body:not(.results-mode) .when-shell #time-resolution button { border:0; background:transparent; color:#563d65; cursor:pointer; text-decoration:underline; white-space:nowrap; font-size:.72rem; }
body:not(.results-mode) .when-shell .availability-day.is-stay-day { background:#e4d6ed; color:#563d65; box-shadow:inset 0 0 0 1px #b89ac8; font-weight:700; }
body:not(.results-mode) .stays-shell .stay-conflict { color:#8b3e37; font-weight:600; }
@media (min-width: 980px) {
  body:not(.results-mode) .stays-shell { display:grid; grid-template-columns:minmax(0,.9fr) minmax(380px,1.1fr); gap:12px 16px; align-items:start; }
  body:not(.results-mode) .stays-shell > h2 { grid-column:1/-1; }
  body:not(.results-mode) .stays-shell .stay-composer { grid-template-columns:1fr; }
  body:not(.results-mode) .stays-shell .stay-timing { margin-top:0; padding-top:14px; }
}
@media (max-width: 979px) {
  body:not(.results-mode) .stays-shell .stay-composer { grid-template-columns:1fr 1fr; }
}
@media (max-width: 620px) {
  body:not(.results-mode) .stays-shell .stay-composer { grid-template-columns:1fr; }
  body:not(.results-mode) .stays-shell .stay-calendar-days button { height:38px; }
}

/* A single compact control row; explanatory text remains available on hover
   and to assistive technology without changing the row's height. */
body.results-mode .results-browse-tools { padding: 8px 18px; }
body.results-mode .results-controls-body { align-items: center; }
body.results-mode .results-sort-control { flex: 0 1 270px; min-width: 0; }
body.results-mode .results-sort-control select,
body.results-mode .results-filters > summary { width: 100%; height: 44px; min-height: 44px; box-sizing: border-box; }
body.results-mode #results-sort-help {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0;
}
@media (max-width: 620px) {
  body.results-mode .results-browse-tools { padding: 10px 14px; gap: 8px; }
  body.results-mode .results-controls-body { flex-direction: row; align-items: center; gap: 8px; }
  body.results-mode .results-sort-control { flex: 1 1 0; width: auto; }
  body.results-mode .results-filters { flex: 0 0 auto; width: auto; }
  body.results-mode .results-filters > summary { padding: 8px 10px; gap: 8px; }
  body.results-mode .results-filters[open] { flex: 1 1 100%; }
  body.results-mode .results-controls-body:has(.results-filters[open]) { flex-wrap: wrap; }
}

/* TAN-38 recovery remains visible beside the preserved journey design. */
.designer-search-recovery { margin: 16px 0; padding: 18px; }
.designer-search-recovery p { margin: 6px 0 12px; line-height: 1.6; }
#results-discovered-count[hidden], #designer-search-recovery[hidden] { display: none; }
