/* The planning canvas, timeline and integrated trip overview. */
.journey-planner {
  --canvas-gutter:28px;
  width:min(1280px,100%);
  margin:0 auto;
  padding:18px 28px 44px;
  min-width:0;
}
.journey-planner :where(.journey-main,.journey-page,.journey-page-body,.stop-card,.stop-body,.section-stops,.journey-summary) { min-width:0; }
.journey-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:44px; margin-bottom:18px; }
.journey-breadcrumb { display:inline-flex; align-items:center; gap:9px; min-height:44px; font-size:13px; font-weight:500; }
.journey-breadcrumb>.icon { width:16px; height:16px; }
.journey-breadcrumb>span { color:var(--muted); font-weight:400; }
.journey-toolbar-actions { display:flex; align-items:center; justify-content:flex-end; gap:18px; }
.save-status { display:inline-flex; align-items:center; gap:5px; color:var(--muted); font-size:12px; }
.save-status>.icon { width:13px; height:13px; color:var(--teal); }
.journey-layout { display:grid; grid-template-columns:minmax(0,1fr) 288px; gap:32px; align-items:start; scroll-margin-top:calc(var(--header-height) + 18px); }
.journey-main { width:100%; }
.journey-day-nav { display:flex; align-items:center; gap:10px; margin:0 0 14px; min-height:44px; }
.journey-day-nav>.icon-btn { width:40px; height:40px; border:1px solid var(--line); background:white; color:var(--teal); }
.day-selector { display:flex; align-items:center; gap:12px; min-width:0; flex:1; }
.day-selector>label { margin:0; font-size:12px; color:var(--muted); white-space:nowrap; }
.day-selector>select { width:auto; max-width:100%; flex:1; min-height:40px; padding:8px 30px 8px 12px; font-size:13px; font-weight:500; border-color:var(--line); }
.day-position { color:var(--muted); font-size:11px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.journey-stack { position:relative; margin:8px 8px 0 0; padding-bottom:8px; isolation:isolate; }
.sleeve-edge { position:absolute; inset:4px -4px 4px 4px; z-index:-1; border:1px solid #dde5da; border-radius:11px; background:#f0f3ee; pointer-events:none; }
.sleeve-back { inset:8px -8px 0 8px; background:#e8eee5; border-color:#dce4d8; z-index:-2; }
.sleeve-edge>span { display:none; }
.journey-page { position:relative; background:white; border:1px solid var(--line); border-radius:10px; }
.populated-day-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:24px var(--canvas-gutter) 21px; border-bottom:1px solid var(--line); }
.populated-heading-copy { min-width:0; }
.populated-heading-copy>.eyebrow { font-size:10px; letter-spacing:.08em; margin-bottom:7px; }
.populated-heading-copy>h1 { font-size:clamp(22px,2.1vw,28px); line-height:1.2; letter-spacing:-.045em; }
.day-title-date { display:inline-block; margin-left:13px; color:#617368; font-size:16px; font-weight:400; line-height:1.4; letter-spacing:-.02em; }
.populated-heading-copy>p:last-child { margin-top:8px; color:var(--muted); font-size:12px; line-height:1.5; }
.day-heading-photo { width:66px; height:72px; flex-shrink:0; object-fit:cover; border-radius:7px; }
.journey-page-body { padding:8px var(--canvas-gutter) 10px; }
.journey-page .day-heading { display:none; }
.journey-page-footer { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:15px var(--canvas-gutter); border-top:1px solid var(--line); }
.journey-page-footer>span { color:var(--muted); font-size:12px; }
.journey-page-footer>.btn { min-height:40px; font-size:13px; }
.journey-page-footer>.btn:last-child { margin-left:auto; }
.journey-planner .day-help { min-height:40px; margin:6px 0 0 30px; font-size:13px; }
.journey-page[data-direction=next]:not(.journey-outgoing) { animation:page-arrive-next .18s ease-out both; }
.journey-page[data-direction=previous]:not(.journey-outgoing) { animation:page-arrive-previous .18s ease-out both; }
.journey-page.journey-outgoing { position:absolute; inset:0 0 auto; z-index:2; pointer-events:none; animation:page-leave .16s ease-out both; }
@keyframes page-arrive-next { from { opacity:.65; transform:translateX(5px); } to { opacity:1; transform:none; } }
@keyframes page-arrive-previous { from { opacity:.65; transform:translateX(-5px); } to { opacity:1; transform:none; } }
@keyframes page-leave { from { opacity:1; } to { opacity:0; } }

/* A continuous day: insertions stay between their own activity rows. */
.journey-planner .itinerary-day { min-width:0; scroll-margin-top:calc(var(--header-height) + 24px); }
.journey-planner .day-builder-timeline { display:grid; gap:0; }
.journey-planner .timeline-section { min-width:0; padding:14px 0 8px; border-bottom:1px solid #edf0eb; scroll-margin-top:calc(var(--header-height) + 22px); }
.journey-planner .timeline-section:last-child { border-bottom:0; }
.journey-planner .timeline-section-heading { display:flex; align-items:center; gap:9px; min-height:30px; padding:0 0 8px; }
.journey-planner .timeline-section-heading>.icon { width:16px; height:16px; color:var(--teal); }
.journey-planner .timeline-section-heading>h4 { margin-right:auto; font-size:14px; letter-spacing:-.02em; }
.journey-planner .section-summary { flex:0 1 auto; min-width:0; max-width:70%; color:var(--muted); font-size:12px; line-height:1.4; text-align:right; overflow-wrap:anywhere; }
.journey-planner .section-stops { min-width:0; }
.journey-planner button.timeline-slot { position:relative; display:flex; align-items:center; gap:8px; width:calc(100% - 30px); min-height:44px; margin:0 0 0 30px; padding:9px 10px; border:0; border-radius:5px; background:transparent; color:#668178; text-align:left; }
.journey-planner button.timeline-slot:after { content:""; flex:1; min-width:14px; margin-left:3px; border-top:1px dashed #d4ded4; }
.journey-planner button.timeline-slot>.icon { width:14px; height:14px; }
.journey-planner .slot-label { font-size:13px; line-height:1.5; font-weight:500; }
.journey-planner button.timeline-slot>small { order:2; margin-left:auto; color:var(--muted); font-size:12px; white-space:nowrap; }
.journey-planner button.timeline-slot:hover { background:#f4f7f1; color:var(--teal); }
.journey-planner button.timeline-slot:focus-visible { outline-offset:2px; }
.journey-planner .section-stops>.inline-discovery { width:calc(100% - 30px); margin:8px 0 12px 30px; }
.journey-planner .timeline-section>.section-suggestions { margin-left:30px; }
.journey-planner .stop { position:relative; display:grid; grid-template-columns:20px minmax(0,1fr); gap:10px; padding:8px 0; min-width:0; scroll-margin-top:calc(var(--header-height) + 22px); border-radius:5px; }
.journey-planner .time-rail { position:relative; display:flex; flex-direction:column; align-items:center; gap:10px; padding-top:3px; color:var(--teal); }
.journey-planner .time-rail:after { content:""; position:absolute; top:30px; bottom:-34px; left:9px; width:1px; background:#dce7da; z-index:0; }
.journey-planner .stop:last-of-type .time-rail:after { bottom:-16px; }
.journey-planner .stop-number { position:relative; z-index:1; display:grid; place-items:center; width:20px; height:20px; border-radius:50%; background:#e9f0e5; color:var(--teal); font-size:10px; font-weight:600; line-height:1; }
.journey-planner .drag-hint { position:relative; z-index:1; display:flex; align-items:center; justify-content:center; width:20px; height:24px; background:white; color:#92a18f; cursor:grab; }
.journey-planner .drag-hint>.icon { width:15px; height:15px; }
.journey-planner .stop-card { display:grid; grid-template-columns:76px minmax(0,1fr); align-items:start; gap:14px; padding:0 0 12px; border-bottom:1px solid #edf0e9; border-radius:0; background:transparent; }
.journey-planner .stop-photo { width:76px; height:92px; overflow:hidden; border-radius:6px; background:#edf2e9; }
.journey-planner .stop-photo>img { width:100%; height:100%; object-fit:cover; }
.journey-planner .custom-activity-photo { display:grid; place-items:center; width:100%; height:100%; color:#6c8771; }
.journey-planner .custom-activity-photo>.icon { width:25px; height:25px; }
.journey-planner .stop-body { min-width:0; }
.journey-planner .stop-heading { display:flex; align-items:baseline; flex-wrap:wrap; justify-content:space-between; gap:5px 12px; }
.journey-planner .stop-heading>h3 { flex:1 1 220px; min-width:0; font-size:16px; font-weight:600; line-height:1.35; letter-spacing:-.025em; }
.journey-planner .stop-timing { color:var(--teal); font-size:12px; font-weight:500; line-height:1.5; font-variant-numeric:tabular-nums; }
.journey-planner .stop-meta { display:flex; flex-wrap:wrap; align-items:center; gap:4px 5px; margin-top:5px; color:var(--muted); font-size:12px; line-height:1.5; overflow-wrap:anywhere; }
.journey-planner .stop-meta>.icon { width:12px; height:12px; }
.journey-planner .stop-meta>span { color:#a3ada3; }
.journey-planner .stop-cost-line { display:flex; flex-wrap:wrap; align-items:baseline; gap:3px 11px; margin-top:5px; }
.journey-planner .stop-cost { color:#405d51; font-size:13px; line-height:1.5; overflow-wrap:anywhere; }
.journey-planner .booking-state { color:var(--muted); font-size:12px; line-height:1.5; }
.journey-planner :where(.fixed-time-note,.placement-note,.stop-note) { margin-top:6px; color:var(--muted); font-size:12px; line-height:1.6; overflow-wrap:anywhere; }
.journey-planner .stop-note { padding-left:9px; border-left:2px solid #dbe5d5; }
.journey-planner .stop .included-itinerary { margin-top:3px; font-size:12px; }
.journey-planner .stop .included-itinerary>summary { display:flex; align-items:center; min-height:34px; padding:6px 0; color:var(--teal); font-size:13px; }
.journey-planner .stop .included-itinerary>summary:before { content:"+"; display:inline-block; width:15px; font-weight:500; }
.journey-planner .stop .included-itinerary[open]>summary:before { content:"−"; }
.journey-planner .stop .included-itinerary>ol { margin:3px 0 9px; padding-left:20px; color:var(--muted); }
.journey-planner .stop .included-itinerary li { margin:4px 0; line-height:1.55; }
.journey-planner .stop .included-itinerary>p { margin:7px 0; font-size:12px; }
.journey-planner .stop .included-itinerary>a { display:inline-flex; align-items:center; gap:4px; min-height:34px; color:var(--teal); text-decoration:underline; text-underline-offset:3px; font-size:13px; }
.journey-planner .stop .included-itinerary>a>.icon { width:12px; height:12px; }
.journey-planner .stop-bottom { margin-top:6px; }
.journey-planner .stop-main-actions { display:flex; align-items:center; flex-wrap:wrap; gap:3px 12px; }
.journey-planner .stop-main-actions>.btn { min-height:34px; padding:6px 9px; font-size:13px; }
.journey-planner .stop-main-actions>.link-btn { min-height:34px; font-size:13px; }
.journey-planner .stop-main-actions>.btn>.icon,.journey-planner .stop-main-actions>.link-btn>.icon { width:13px; height:13px; }
.journey-planner .activity-options>summary { display:flex; align-items:center; gap:5px; min-height:34px; font-size:13px; color:var(--muted); }
.journey-planner .activity-options>summary>.icon { width:13px; height:13px; }
.journey-planner .addition-confirmation { grid-column:1/-1; display:flex; align-items:center; gap:6px; margin:0 0 1px 30px; padding:7px 10px; border-radius:5px; background:#eff5e9; color:var(--teal); font-size:12px; line-height:1.5; }
.journey-planner .addition-confirmation>.icon { width:13px; height:13px; }
.journey-planner .stop.is-new .stop-card { animation:activity-added 1.3s ease-out both; }
@keyframes activity-added { from { background:#f0f6e9; } to { background:transparent; } }
.journey-planner .stop.is-dragging { opacity:.4; }
.journey-planner .timeline-section.is-drop-target { background:#f4f8ef; }
.journey-planner .timeline-slot.is-drop-target,.journey-planner .summary-day-list>button.is-drop-target { background:#e9f2de; outline:2px solid #acc399; outline-offset:-2px; }
.journey-planner .stop.is-drop-target .stop-card { outline:2px solid #acc399; outline-offset:4px; }

/* Inline edits belong to their row and stay reachable with a keyboard. */
.journey-planner .inline-stop-editor { grid-column:1/-1; display:grid; gap:12px; margin-top:6px; padding:16px; min-width:0; border:1px solid #d9e4d3; border-radius:8px; background:#f5f8f1; }
.journey-planner .inline-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 16px; }
.journey-planner .inline-fields>div { min-width:0; }
.journey-planner .inline-stop-editor label { margin-bottom:5px; font-size:12px; }
.journey-planner .inline-stop-editor textarea { min-height:75px; }
.journey-planner .inline-save { display:flex; align-items:center; gap:8px; }
.journey-planner .inline-save>small { flex:1; min-width:0; color:var(--muted); font-size:12px; }
.journey-planner .inline-save>.btn { flex-shrink:0; min-height:40px; font-size:13px; }

/* The overview is part of the application, separated by one quiet rule. */
.journey-summary { position:sticky; top:calc(var(--header-height) + 22px); padding-left:24px; border-left:1px solid var(--line); max-height:calc(100dvh - var(--header-height) - 42px); overflow-y:auto; scrollbar-width:thin; scrollbar-color:#d7e0d1 transparent; }
.summary-identity { padding:2px 0 15px; }
.summary-identity>.eyebrow { margin-bottom:7px; font-size:10px; }
.summary-identity>h2 { font-size:21px; line-height:1.3; letter-spacing:-.035em; }
.summary-identity>p:not(.eyebrow) { margin-top:7px; color:var(--muted); font-size:12px; }
.summary-identity>span { display:block; margin-top:4px; color:var(--muted); font-size:12px; }
.summary-day-list { display:grid; gap:1px; padding:0 0 16px; margin-bottom:18px; border-bottom:1px solid var(--line); }
.summary-day-list>button { display:grid; grid-template-columns:24px minmax(0,1fr) auto; align-items:center; gap:8px; width:100%; min-height:51px; padding:8px 7px; border:0; border-radius:6px; background:transparent; text-align:left; }
.summary-day-list>button:hover { background:#edf3e8; }
.summary-day-list>button.active { background:#eaf0e4; color:var(--teal); }
.summary-day-number { align-self:start; padding-top:2px; color:#9aa993; font-size:11px; font-variant-numeric:tabular-nums; }
.summary-day-list>button.active .summary-day-number { color:var(--teal); }
.summary-day-list>button>span:nth-child(2) { min-width:0; }
.summary-day-list strong { display:block; font-size:13px; font-weight:500; }
.summary-day-list small { display:block; margin-top:1px; color:var(--muted); font-size:12px; }
.summary-day-list>button>span:last-child { display:flex; align-items:center; gap:4px; color:var(--muted); font-size:12px; white-space:nowrap; }
.summary-day-list>button>span:last-child>.icon { width:13px; height:13px; }
.summary-budget { min-width:0; }
.summary-budget .companion-heading { display:block; margin-bottom:13px; }
.summary-budget .section-kicker { margin-bottom:4px; font-size:10px; letter-spacing:.06em; }
.summary-budget .companion-heading h2 { font-size:15px; letter-spacing:-.02em; }
.budget-total { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:3px 10px; align-items:baseline; }
.budget-total>span { font-size:12px; color:var(--muted); }
.budget-total>strong { font-size:29px; line-height:1.2; letter-spacing:-.045em; font-weight:500; font-variant-numeric:tabular-nums; }
.budget-total>strong,.current-day-subtotal>strong,.mobile-trip-summary>strong { min-width:0; overflow-wrap:anywhere; }
.budget-total>small { grid-column:1/-1; color:var(--muted); font-size:12px; text-align:right; }
.budget-target { display:flex; align-items:center; flex-wrap:wrap; gap:5px 8px; margin-top:14px; font-size:12px; }
.budget-target>span { margin-right:auto; color:var(--muted); }
.budget-target>.link-btn { min-height:32px; padding:3px 0; font-size:13px; }
.budget-meter { height:4px; margin:7px 0 8px; overflow:hidden; border-radius:3px; background:#e6ecdf; }
.budget-meter>span { display:block; height:100%; border-radius:inherit; background:#87a677; }
.budget-meter.over-budget>span { background:#b88661; }
.budget-remaining { color:var(--muted); font-size:12px; line-height:1.5; }
.budget-remaining>strong { color:var(--teal); font-weight:500; }
.budget-caveat { margin-top:6px; color:var(--muted); font-size:12px; line-height:1.55; }
.budget-tools { display:flex; flex-wrap:wrap; align-items:center; gap:2px 8px; margin:10px 0 7px; }
.budget-tools>.link-btn { min-height:32px; font-size:13px; }
.budget-tools>small { flex-basis:100%; color:var(--muted); font-size:12px; }
.current-day-subtotal { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:4px 8px; padding:13px 0; margin-top:12px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); font-size:12px; }
.current-day-subtotal>span { color:var(--muted); }
.current-day-subtotal>strong { color:var(--ink); font-variant-numeric:tabular-nums; }
.current-day-subtotal>small { grid-column:1/-1; color:var(--muted); font-size:12px; }
.current-day-subtotal>small:empty { display:none; }
.summary-review { margin:14px 0 6px; justify-content:flex-start; min-height:40px; font-size:13px; }
.journey-summary>details { margin-top:4px; }
.journey-summary>details>summary { min-height:36px; font-size:13px; color:var(--muted); }
.journey-summary>details>p { margin:6px 0; font-size:12px; }
.summary-note { margin-top:10px; color:var(--muted); font-size:12px; line-height:1.6; }
.journey-summary>.link-btn { justify-content:flex-start; min-height:34px; font-size:13px; }
.mobile-trip-summary { display:none; }

/* Whole-trip review keeps the same day and activity language. */
.whole-trip-review { padding:24px var(--canvas-gutter); background:white; border:1px solid var(--line); border-radius:10px; }
.review-heading { padding-bottom:22px; margin-bottom:5px; border-bottom:1px solid var(--line); }
.review-heading>.eyebrow { margin-bottom:8px; font-size:10px; }
.review-heading>h1 { font-size:29px; }
.review-heading>p:not(.eyebrow) { margin-top:8px; color:var(--muted); font-size:12px; }
.review-heading>.btn { margin-top:15px; min-height:38px; font-size:13px; }
.whole-trip-review .itinerary-day { padding-top:23px; }
.whole-trip-review .itinerary-day+.itinerary-day { margin-top:18px; border-top:1px solid var(--line); }
.day-heading { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:5px; }
.day-heading-identity { display:flex; align-items:center; gap:12px; min-width:0; }
.day-number { display:grid; place-items:center; width:32px; height:36px; flex-shrink:0; background:#eef3e8; border-radius:5px; color:var(--teal); font-size:12px; font-weight:500; font-variant-numeric:tabular-nums; }
.day-label { font-size:12px; color:var(--muted); }
.day-heading h3 { font-size:19px; line-height:1.25; margin-top:2px; }
.day-heading p { margin-top:4px; color:var(--muted); font-size:12px; }
.day-heading>.link-btn { flex-shrink:0; font-size:13px; }
.journey-planner .day-footnotes { margin-top:18px; color:var(--muted); font-size:12px; line-height:1.65; }
.journey-planner .day-footnotes>p { display:flex; align-items:flex-start; gap:7px; margin:8px 0; }
.journey-planner .day-footnotes>p>.icon { width:13px; height:13px; margin-top:3px; }
.journey-planner .day-footnotes a { text-decoration:underline; text-underline-offset:3px; }

@media (max-width:1100px) and (min-width:901px) {
  .journey-planner { padding-inline:22px; --canvas-gutter:21px; }
  .journey-layout { grid-template-columns:minmax(0,1fr) 258px; gap:23px; }
  .journey-summary { padding-left:19px; }
  .day-selector>label { display:none; }
  .stop-heading>h3 { flex-basis:100%; }
  .journey-planner .stop-main-actions { gap:2px 9px; }
}
@media (max-width:900px) {
  .journey-planner { padding:12px 24px calc(100px + env(safe-area-inset-bottom)); --canvas-gutter:24px; }
  .journey-toolbar { margin-bottom:10px; }
  .journey-layout { display:block; }
  .journey-toolbar-actions { gap:12px; }
  .journey-summary { display:none; }
  .mobile-trip-summary { position:fixed; z-index:25; bottom:0; left:0; right:0; display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; height:calc(64px + env(safe-area-inset-bottom)); min-width:0; padding:10px 24px calc(10px + env(safe-area-inset-bottom)); border:0; border-top:1px solid #cddbc7; background:#eef3e8; color:var(--ink); font-size:13px; }
  .mobile-trip-summary>span:first-child { color:var(--teal); font-weight:500; }
  .mobile-trip-summary>strong { font-size:14px; font-weight:500; font-variant-numeric:tabular-nums; }
  .mobile-trip-summary>span:last-child { display:inline-flex; align-items:center; gap:7px; }
  .mobile-trip-summary>span:last-child>.icon { width:15px; height:15px; }
  .mobile-trip-summary[aria-expanded=true]>span:last-child>.icon { transform:rotate(180deg); }
  .journey-summary.is-open { position:fixed; z-index:24; display:block; top:auto; left:24px; right:24px; bottom:calc(64px + env(safe-area-inset-bottom)); width:auto; max-height:calc(100dvh - var(--header-height) - 88px - env(safe-area-inset-bottom)); padding:22px 24px; overflow-y:auto; border:1px solid #d4dfce; border-bottom:0; border-radius:10px 10px 0 0; background:var(--cream); box-shadow:0 -12px 30px rgb(24 46 45 / 7%); overscroll-behavior:contain; }
  .journey-summary.is-open .summary-identity>h2 { font-size:24px; }
  .journey-summary.is-open .summary-day-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:5px 12px; }
  .journey-summary.is-open .summary-day-list>button { min-height:56px; }
  .journey-summary.is-open .budget-total>strong { font-size:30px; }
  .journey-summary.is-open :where(.budget-tools>.link-btn,.budget-target>.link-btn,.summary-review,.journey-summary>.link-btn) { min-height:44px; }
  .journey-summary.is-open :where(.budget-total>span,.budget-target,.budget-remaining,.current-day-subtotal) { font-size:12px; }
  .journey-summary.is-open :where(.summary-note,.budget-caveat,.budget-tools>small,.budget-total>small) { font-size:12px; }
  .journey-page,.journey-planner .stop,.journey-planner .timeline-section { scroll-margin-bottom:90px; }
  body:has(:is(input,select,textarea):focus) .journey-planner .mobile-trip-summary { display:none; }
  body:has(.inline-stop-editor :is(input,select,textarea):focus) .journey-summary.is-open { display:none; }
  .journey-planner .stop-main-actions :where(.btn,.link-btn,summary) { min-height:44px; }
  .journey-planner :is(button,.btn,.link-btn,summary) { min-height:44px; }
  .journey-planner .icon-btn { width:44px; height:44px; }
  .journey-planner .day-selector>select { min-height:44px; }
  .journey-planner .inline-stop-editor :where(input,select,textarea) { font-size:16px; min-height:44px; }
  .journey-planner .inline-save>.btn { min-height:44px; }
  .journey-planner .timeline-section-heading>h4 { font-size:15px; }
  .journey-planner .section-summary { font-size:12px; }
  .journey-planner .slot-label { font-size:13px; }
  .journey-planner button.timeline-slot>small { font-size:12px; }
}
@media (max-width:600px) {
  .journey-planner { padding-inline:12px; --canvas-gutter:16px; }
  .journey-toolbar { gap:8px; }
  .journey-breadcrumb { gap:6px; font-size:13px; }
  .journey-breadcrumb>span { display:none; }
  .journey-toolbar-actions { gap:8px; }
  .save-status { font-size:12px; max-width:120px; line-height:1.4; }
  .save-status>.icon { display:none; }
  .journey-day-nav { gap:7px; margin-bottom:12px; }
  .journey-day-nav>.icon-btn { width:44px; height:44px; }
  .day-selector { gap:0; }
  .day-selector>label { display:none; }
  .day-selector>select { width:100%; min-height:44px; padding-inline:10px; font-size:16px; }
  .day-position { display:none; }
  .journey-stack { margin-right:5px; }
  .sleeve-middle { inset:3px -3px 5px 3px; }
  .sleeve-back { inset:6px -6px 2px 6px; }
  .populated-day-heading { align-items:flex-start; gap:12px; padding-block:20px 18px; }
  .populated-heading-copy>.eyebrow { font-size:10px; letter-spacing:.06em; }
  .populated-heading-copy>h1 { font-size:24px; line-height:1.22; }
  .day-title-date { display:block; margin:5px 0 0; font-size:14px; line-height:1.4; }
  .populated-heading-copy>p:last-child { font-size:12px; }
  .day-heading-photo { width:46px; height:62px; margin-top:3px; }
  .journey-page-body { padding-top:5px; }
  .journey-page-footer { align-items:center; flex-wrap:wrap; gap:10px; padding-block:12px; }
  .journey-page-footer>span { flex-basis:100%; font-size:12px; }
  .journey-page-footer>.btn { flex:1; min-height:44px; padding-inline:9px; font-size:13px; }
  .journey-page-footer>.btn:last-child { margin-left:0; }
  .journey-planner .day-help { margin-left:0; }
  .journey-planner .timeline-section { padding-block:12px 8px; }
  .journey-planner .timeline-section-heading { gap:8px; }
  .journey-planner button.timeline-slot { width:100%; margin-left:0; padding-inline:5px; }
  .journey-planner .section-stops>.inline-discovery { width:100%; margin-left:0; }
  .journey-planner .timeline-section>.section-suggestions { margin-left:0; }
  .journey-planner .stop { grid-template-columns:18px minmax(0,1fr); gap:7px; padding-block:7px; }
  .journey-planner .stop-number { width:18px; height:18px; font-size:10px; }
  .journey-planner .time-rail:after { left:8px; }
  .journey-planner .drag-hint { width:18px; }
  .journey-planner .stop-card { grid-template-columns:56px minmax(0,1fr); gap:10px; padding-bottom:9px; }
  .journey-planner .stop-photo { width:56px; height:72px; }
  .journey-planner .stop-heading { gap:3px; }
  .journey-planner .stop-heading>h3 { flex-basis:100%; font-size:15px; line-height:1.35; }
  .journey-planner .stop-timing { font-size:12px; }
  .journey-planner .stop-meta { font-size:12px; margin-top:4px; }
  .journey-planner :where(.stop-cost,.fixed-time-note,.placement-note,.stop-note) { font-size:12px; }
  .journey-planner .booking-state { font-size:13px; }
  .journey-planner .stop-main-actions { gap:1px 10px; }
  .journey-planner .stop-main-actions>.btn { min-height:44px; padding-inline:8px; font-size:13px; }
  .journey-planner .stop-main-actions>.link-btn,.journey-planner .activity-options>summary { min-height:44px; font-size:13px; }
  .journey-planner .stop .included-itinerary>summary,.journey-planner .stop .included-itinerary>a { min-height:44px; font-size:13px; }
  .journey-planner .stop .included-itinerary>p,.journey-planner .stop .included-itinerary>ol { font-size:12px; }
  .journey-planner .addition-confirmation { margin-left:25px; font-size:12px; }
  .journey-planner .inline-stop-editor { padding:12px; gap:12px; }
  .journey-planner .inline-fields { gap:12px 10px; }
  .journey-planner .inline-stop-editor label { font-size:12px; }
  .journey-planner .inline-save { flex-wrap:wrap; }
  .journey-planner .inline-save>small { flex-basis:100%; font-size:12px; }
  .journey-planner .inline-save>.btn { flex:1; }
  .mobile-trip-summary { padding-inline:16px; gap:8px; font-size:13px; }
  .mobile-trip-summary>strong { font-size:13px; }
  .journey-summary.is-open { left:12px; right:12px; padding:20px 18px; }
  .journey-summary.is-open .summary-day-list { grid-template-columns:1fr; }
  .whole-trip-review { padding:20px var(--canvas-gutter); }
  .review-heading>h1 { font-size:27px; }
  .review-heading>p:not(.eyebrow) { font-size:12px; }
  .review-heading>.btn { min-height:44px; }
  .day-heading { align-items:flex-start; gap:8px; }
  .day-heading-identity { gap:8px; }
  .day-heading h3 { font-size:18px; }
  .day-heading>.link-btn { min-height:44px; padding-inline:0; }
  .journey-planner .day-footnotes { font-size:12px; }
}
@media (max-width:360px) {
  .journey-planner { --canvas-gutter:12px; }
  .save-status { display:none; }
  .day-heading-photo { width:38px; height:54px; }
  .populated-heading-copy>h1 { font-size:21px; }
  .journey-planner .stop-card { grid-template-columns:50px minmax(0,1fr); gap:8px; }
  .journey-planner .stop-photo { width:50px; height:68px; }
  .journey-planner .inline-fields { grid-template-columns:minmax(0,1fr); }
  .mobile-trip-summary>span:first-child { font-size:12px; }
}
@media (prefers-reduced-motion:reduce) {
  .journey-planner .journey-page,.journey-planner .stop.is-new .stop-card { animation:none; }
  .journey-planner .journey-outgoing { display:none; }
}
