/* Map-first composition. Shared dialog/private-content styles remain in style.css. */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.day-strip button{width:auto;display:block;min-width:95px}
html,body{height:100%;height:100dvh}body{display:grid;grid-template-rows:auto auto minmax(0,1fr);overflow:hidden}.demo{padding:5px 16px;font-size:0.5625rem}.topbar{padding:10px 24px;min-height:64px;gap:16px;flex-wrap:nowrap}.brand{font-size:1.5rem}.topbar #trips{margin-left:auto;border:0}.topbar .avatar{flex-shrink:0}.map-workspace{display:grid;grid-template-rows:auto minmax(0,1fr);position:relative;padding:0;min-height:0;overflow:hidden;outline:0}.trip-bar{padding:14px 24px 10px;background:var(--paper);z-index:2;border-bottom:1px solid var(--line)}.trip-heading{display:flex;gap:20px;align-items:center;justify-content:space-between}.trip-heading h1{font:400 1.625rem/1.2 Georgia,serif;letter-spacing:-.025em}.trip-heading .eyebrow{font-size:0.5625rem;display:block;margin-bottom:4px}.map-search{display:flex;gap:8px;min-width:280px;max-width:390px;flex:1}.map-search input{padding:9px 12px;background:#f4f5ee;font-size:0.8125rem}.map-search button{min-width:44px;border:1px solid var(--line);background:var(--soft);border-radius:8px}.day-strip{display:flex;gap:8px;overflow-x:auto;scrollbar-width:thin;margin-top:14px;padding:0 0 4px}.day-strip button{flex-shrink:0;padding:9px 14px;min-height:44px;border:1px solid var(--line);border-radius:7px;background:transparent;font-size:0.75rem;text-align:left;white-space:nowrap}.day-strip button[aria-current=page]{background:var(--green);color:white;border-color:var(--green)}.day-strip button small{display:block;font-size:0.625rem;color:inherit;opacity:.75}.map-stage{position:relative;min-height:0;background:#e6ecdf}.map-stage #trip-map{height:100%;width:100%;min-height:0}.map-stage .map-controls{position:absolute;z-index:500;top:16px;left:70px;display:flex;gap:8px;align-items:start;flex-wrap:wrap;max-width:calc(100% - 500px)}.map-controls button{border:1px solid #d4dacf;background:var(--paper);padding:8px 12px;border-radius:7px;min-height:44px;box-shadow:0 2px 8px #22342612;font-size:0.75rem}.map-controls button[aria-pressed=true]{background:var(--soft);border-color:var(--green)}.map-stage .map-legend{position:absolute;z-index:450;bottom:6px;left:12px;background:#fffefae8;padding:5px 9px;font-size:0.625rem;border-radius:4px;max-width:calc(100% - 430px)}.map-legend i{display:inline-block;width:20px;border-top:2px dashed var(--green);margin-right:5px;vertical-align:middle}.map-legend .reference{border-color:#6d6c68;border-top-width:2px;margin-left:10px}.trip-information{position:absolute;z-index:550;right:20px;top:16px;bottom:30px;width:374px;background:var(--paper);border:1px solid #d5dbd0;border-radius:14px;box-shadow:0 8px 30px #1f382b1a;display:flex;flex-direction:column;overflow:hidden;max-height:calc(100% - 46px)}.trip-information.collapsed{top:auto;bottom:30px;max-height:260px}.sheet-toggle{display:flex;justify-content:center;align-items:center;min-height:32px;padding:4px 12px;border:0;background:transparent;width:100%;font-size:0.625rem;gap:12px;color:var(--muted);touch-action:none}.sheet-toggle .handle{width:32px;height:4px;background:#bcc7b7;border-radius:8px}.sheet-summary{padding:6px 22px 18px;flex-shrink:0}.sheet-summary h2{font-size:1.6875rem;margin:8px 0 10px}.sheet-metrics{display:flex;gap:16px;flex-wrap:wrap;font-size:0.75rem;color:var(--muted)}.sheet-summary .primary{margin-top:14px;width:100%;min-height:46px}.sheet-summary .secondary-link{display:block;margin-top:8px;font-size:0.6875rem;color:var(--muted)}.drawer-body{overflow-y:auto;overscroll-behavior:contain;min-height:0;padding:0 22px 24px;scrollbar-width:thin}.collapsed .drawer-body{display:none}.drawer-body h3{font-size:1rem;margin:20px 0 8px}.drawer-body p{font-size:0.8125rem;line-height:1.75;color:#56665b}.drawer-body .eyebrow{font-size:0.625rem}.drawer-body section{border-top:1px solid var(--line);padding:18px 0}.drawer-body .callout{margin:10px 0;font-size:0.75rem}.drawer-body .stay{border:0;padding:0;margin:0}.drawer-body .stay h3{margin:8px 0}.drawer-body .private{border:0;padding:0;margin:0}.drawer-body .private-head h2{font-size:1.5625rem}.drawer-body .private-head{align-items:start;flex-direction:column;gap:4px}.drawer-body .private-save{align-items:start;flex-direction:column}.drawer-body textarea{min-height:110px}.drawer-body .private-tabs{gap:20px}.drawer-body .compare{margin:10px 0}.drawer-body .weather{padding:0 0 10px;border:0}.drawer-body .private-help{font-size:0.6875rem}.map-popover{font-family:-apple-system,sans-serif;min-width:170px}.map-popover strong{display:block;font-size:0.8125rem;margin-bottom:8px}.map-popover button{display:block;width:100%;text-align:left;background:none;border:0;border-top:1px solid #e4e6de;min-height:44px;font-size:0.75rem;color:#285940;padding:9px 0}.map-popover small{display:block;font-size:0.625rem}.map-stage .movable-marker{cursor:grab}.map-stage .movable-marker:active{cursor:grabbing}.map-stage .leaflet-control-zoom a{min-width:40px;min-height:40px;line-height:40px!important}.map-instruction-badge{position:absolute;z-index:440;left:18px;top:72px;background:#fffefae6;border-radius:5px;font-size:0.625rem;padding:5px 10px;max-width:calc(100% - 460px);color:#4d6153;pointer-events:none}.trips-dialog{width:620px}.journey-choice{display:flex;justify-content:space-between;align-items:center;gap:14px;width:100%;border:0;border-bottom:1px solid var(--line);background:none;text-align:left;padding:18px 0;min-height:70px}.journey-choice strong{display:block;font-size:1rem;font-weight:500}.journey-choice small{display:block;margin-top:5px;font-size:0.6875rem}.journey-choice .tag{font-size:0.625rem;background:var(--soft);padding:4px 7px;border-radius:4px}.wizard-progress{display:flex;gap:8px;margin-bottom:16px}.wizard-progress span{height:3px;border-radius:4px;background:var(--line);flex:1}.wizard-progress .done{background:var(--green)}.wizard-form{display:grid;gap:0}.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px}.wizard-form select,.wizard-form input{min-height:46px}.wizard-form textarea{min-height:85px}.check-field{display:flex;gap:10px;align-items:center;min-height:44px}.check-field input{width:18px;min-height:18px}.wizard-summary{border-top:1px solid var(--line);padding:12px 0}.wizard-summary dt{font-size:0.6875rem;color:var(--muted)}.wizard-summary dd{margin:4px 0 12px;font-size:0.875rem}.fixed-item{padding:12px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;font-size:0.8125rem}.fixed-item button{min-width:44px;min-height:44px;border:0;background:none}.wizard-tip{font-size:0.75rem!important;padding:12px;background:var(--soft);border-radius:8px}.toast{bottom:36px;z-index:3000}.phone-demo .map-workspace{width:430px;max-width:100%;margin:auto}.phone-demo .topbar{max-width:430px}.phone-demo .map-controls{max-width:calc(100% - 90px)}.phone-demo .trip-information{left:12px;right:12px;top:auto;bottom:28px;width:auto;max-height:78%;}.phone-demo .trip-information.expanded{height:78%}.phone-demo .map-legend{bottom:4px;max-width:calc(100% - 24px);font-size:0.5625rem}.phone-demo .map-instruction-badge{display:none}.phone-demo .trip-heading{display:block}.phone-demo .map-search{min-width:0;max-width:none;margin-top:10px}.phone-demo .trip-bar{padding:12px 14px 8px}.phone-demo .trip-heading h1{font-size:1.4375rem}.phone-demo .sheet-summary h2{font-size:1.5rem}
@media(max-width:850px){.topbar{padding:8px 16px;min-height:60px}.topbar .brand{font-size:1.375rem}.topbar #trips{font-size:0.75rem;padding:8px}.demo span{display:none}.trip-heading{display:block}.trip-heading h1{font-size:1.4375rem}.map-search{min-width:0;max-width:none;margin-top:10px}.trip-bar{padding:12px 14px 7px}.day-strip{margin-top:10px}.map-stage .map-controls{left:62px;top:12px;max-width:calc(100% - 75px)}.map-controls button{font-size:0.6875rem;padding:8px 10px}.map-stage .trip-information{left:10px;right:10px;top:auto;bottom:28px;width:auto;max-height:78%;}.map-stage .trip-information.expanded{height:78%}.sheet-summary{padding:3px 18px 15px}.sheet-summary h2{font-size:1.4375rem;margin:6px 0 8px}.sheet-summary .primary{margin-top:10px}.sheet-toggle{min-height:28px}.drawer-body{padding:0 18px 22px}.map-stage .map-legend{max-width:calc(100% - 20px);bottom:4px;left:6px;font-size:0.5625rem}.map-instruction-badge{display:none}.trip-information.collapsed{max-height:230px}.form-pair{grid-template-columns:1fr;gap:0}.map-stage .leaflet-control-attribution{font-size:0.5625rem}.map-stage .leaflet-control-zoom a{min-width:40px;min-height:40px}.wizard-form label{margin-top:12px}}
@media(max-width:380px){.brand-mark{display:none}.topbar .brand{font-size:1.3125rem}.topbar{gap:5px}.sheet-summary .primary{min-height:44px}.trip-heading h1{font-size:1.3125rem}.map-search input{font-size:0.75rem}.trip-bar{padding-top:8px}.day-strip button{padding:7px 10px}.map-controls button{padding:7px 9px}.wizard-progress{margin-bottom:10px}}

.map-search input{min-width:0;flex:1;width:0}
.phone-demo .map-workspace{height:100%;align-self:stretch;margin:0 auto;padding:0}
.phone-demo .topbar{width:430px;max-width:100%;margin:0 auto;flex-wrap:nowrap}
.map-workspace{grid-template-columns:minmax(0,1fr)}
.trip-bar,.map-stage,.trip-heading,.drawer-body{min-width:0}

/* Planning preferences and point roles reuse the existing Roadbook tokens. */
.routing-chip{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:44px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--green);font-size:0.75rem;text-align:left;margin-top:8px;padding:8px 0}
.preference-choices{border:0;padding:0;margin:20px 0}.preference-choice{display:flex;gap:12px;align-items:flex-start;padding:14px 0;border-top:1px solid var(--line);cursor:pointer}.preference-choice input{width:20px;min-height:20px;margin:3px 0;flex-shrink:0;accent-color:var(--green)}.preference-choice strong{font-size:0.9375rem}.preference-choice small{display:block;font-weight:400;line-height:1.6;margin-top:4px}
.point-row{border-block-end:1px solid var(--line);padding:16px 0}.point-row label{font-size:0.75rem}.point-row input,.point-row select{min-height:44px}.point-row small{font-size:0.6875rem}.point-row-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}.point-row-actions button{min-height:44px;min-width:44px;border:1px solid var(--line);background:none;border-radius:8px;padding:8px 12px}.point-detail{display:block;padding:4px 0}.route-marker.shaping span{border-radius:4px;transform:rotate(45deg);width:18px;height:18px;font-size:0;background:var(--paper);border:2px solid var(--green)}
.trip-information.collapsed{max-height:320px}.phone-demo .trip-information.collapsed{max-height:280px}
@media(max-width:850px){.trip-information.collapsed{max-height:280px}.routing-chip{margin-top:4px}}
@media(max-width:850px){.trip-information.expanded .sheet-summary .primary,.trip-information.expanded .sheet-summary .secondary-link{display:none}.trip-information.expanded .sheet-summary h2{font-size:1.3125rem}.trip-information.expanded .sheet-summary{padding-bottom:8px}}
.phone-demo .trip-information.expanded .sheet-summary .primary,.phone-demo .trip-information.expanded .sheet-summary .secondary-link{display:none}

/* Visible route character, original app identity, and non-overlapping map tools. */
.brand-icon{display:block;flex-shrink:0;width:40px;height:40px;border-radius:9px;object-fit:cover}
.routing-chip{background:var(--soft);border:1px solid #c7d3c3;border-radius:8px;min-height:76px;margin-top:12px;padding:10px 12px;color:var(--green);gap:16px}
.routing-chip strong{display:block;font-size:1.25rem;line-height:1.2;margin:2px 0}.routing-chip small{display:block;font-size:0.625rem;line-height:1.4;color:var(--muted)}.routing-chip>span:last-child{font-size:1.125rem}
.route-marker.fixed svg{width:23px;height:23px;display:block}.route-marker.fixed span{width:36px;height:36px}
.map-stage .map-tools{position:absolute;z-index:500;top:16px;left:70px;right:420px;display:flex;flex-direction:column;gap:8px;align-items:flex-start;pointer-events:none;min-width:0}
.map-stage .map-tools .map-controls{position:static;display:flex;flex-wrap:wrap;gap:8px;max-width:100%;pointer-events:auto}
.map-stage .map-tools .map-controls button{max-width:100%;white-space:normal;text-align:left}
.map-stage .map-tools .map-instruction-badge{display:block;position:static;max-width:100%;width:fit-content;white-space:normal;overflow-wrap:anywhere;margin:0;padding:7px 10px;line-height:1.5;background:#fffefaf5}
.map-controls #add-point{font-weight:600;color:var(--green)}
.trip-information.collapsed{max-height:calc(100% - 46px)}.sheet-summary #name-destination{padding-block:6px;text-align:left;min-height:44px}
.phone-demo .map-stage .map-tools{left:62px;right:12px;top:12px}.phone-demo .trip-information.collapsed{max-height:calc(100% - 40px)}
@media(max-width:850px){.map-stage .map-tools{top:12px;left:62px;right:12px}.routing-chip{min-height:66px;margin-top:8px;padding:8px 12px}.routing-chip strong{font-size:1.125rem}.trip-information.collapsed{max-height:calc(100% - 40px)}.map-stage .map-tools .map-instruction-badge{font-size:0.625rem}}
@media(max-width:380px){.brand-icon{width:34px;height:34px;border-radius:8px}.map-stage .map-tools .map-controls{gap:6px}.map-stage .map-tools .map-controls button{font-size:0.6875rem;padding:7px 8px}}
.compact-control-icon{display:none}
@media(max-width:850px){.map-controls .wide-control-label{display:none}.map-controls .compact-control-icon{display:block;font-size:1.375rem;line-height:1}.map-stage .map-tools .map-controls{gap:6px}.map-stage .map-tools .map-controls button{min-width:44px;min-height:44px;text-align:center;padding:7px}.map-stage .map-tools .map-controls #add-point{font-size:0.625rem;padding:7px 6px}.topbar #trips{white-space:nowrap}}
.phone-demo .map-controls .wide-control-label{display:none}.phone-demo .map-controls .compact-control-icon{display:block;font-size:1.375rem;line-height:1}.phone-demo .map-stage .map-tools .map-controls{gap:6px}.phone-demo .map-stage .map-tools .map-controls button{min-width:44px;text-align:center;padding:7px}.phone-demo .map-stage .map-tools .map-controls #add-point{font-size:0.625rem;padding:7px 6px}
@media(max-width:380px){.topbar{padding-inline:12px;gap:4px}.topbar #trips{padding-inline:4px;font-size:0.6875rem}.brand{gap:8px}.sheet-metrics{gap:8px;font-size:0.6875rem}.sheet-summary h2{font-size:1.375rem}}
.compact-map-help{display:none}
@media(max-width:850px){.wide-map-help{display:none}.compact-map-help{display:inline}}
.phone-demo .wide-map-help{display:none}.phone-demo .compact-map-help{display:inline}

/* Whole detail panel can close; collapsed is a short summary, separate from hidden. */
.trip-information[hidden],.map-controls button[hidden]{display:none!important}
.sheet-bar{display:flex;align-items:center;flex-shrink:0;min-height:44px;border-bottom:1px solid var(--line)}
.sheet-bar .sheet-toggle{flex:1;min-width:0;width:auto;min-height:44px}.sheet-bar .icon-button{flex-shrink:0;min-width:44px;min-height:44px;font-size:1rem}
.trip-information.collapsed .sheet-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:10px 16px 12px}
.trip-information.collapsed .sheet-summary>.eyebrow{display:none}
.trip-information.collapsed .sheet-summary h2{grid-column:1/-1;font-size:1.3125rem;line-height:1.25;margin:0}
.trip-information.collapsed .sheet-metrics{grid-column:1;grid-row:2;align-content:center;gap:4px 8px;font-size:0.625rem}
.trip-information.collapsed .routing-chip{grid-column:2;grid-row:2;min-height:44px;width:auto;margin:0;padding:6px 10px;gap:10px}
.trip-information.collapsed .routing-chip small{display:none}.trip-information.collapsed .routing-chip strong{font-size:1rem;margin:0}
.trip-information.collapsed .sheet-summary .primary{grid-column:1/-1;min-height:44px;margin:0;padding:8px 12px}
.trip-information.collapsed .sheet-summary .secondary-link,.trip-information.collapsed #name-destination{grid-column:1/-1;margin:0;font-size:0.625rem}
.day-strip .day-route-profile{font-weight:600;font-size:0.625rem;opacity:1;margin-top:3px}
.map-choice-dialog .choice{min-height:64px}.map-choice-dialog .choice strong{font-size:0.9375rem}.map-choice-dialog .choice small{line-height:1.6}
#editor{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}

/* Compact visible map symbols retain the larger invisible marker hit areas. */
.route-marker span{width:24px;height:24px;font-size:0.625rem;border-width:2px;box-shadow:0 1px 4px #20382c35}
.route-marker.fixed span{width:26px;height:26px;border-width:2px}.route-marker.fixed svg{width:16px;height:16px}
.route-marker.shaping span{width:12px;height:12px;border-width:2px}
.map-stage #trip-map .leaflet-control-zoom a{width:28px;height:28px;min-width:28px;min-height:28px;font-size:1.125rem;line-height:28px!important}
.map-stage .map-tools{left:54px}
.stage-profile-control{display:flex;align-items:center;gap:8px;background:var(--soft);border:1px solid #c7d3c3;border-radius:8px;padding:0 10px;margin-top:10px;min-width:0}
.stage-profile-control label{font-size:0.75rem;font-weight:500;margin:0;white-space:nowrap}
.stage-profile-control select{width:auto;min-width:0;flex:1;min-height:44px;font-size:0.8125rem;font-weight:600;border:0;background:transparent;padding:8px 2px;color:var(--green)}
.trip-information.collapsed .stage-profile-control{grid-column:1/-1;margin:0;min-height:44px}
.trip-information.collapsed .sheet-metrics{grid-row:auto;grid-column:1/-1}
.map-stage .map-controls #compare{font-size:0.6875rem;white-space:nowrap}
@media(max-width:850px){.map-stage .map-tools{left:50px}}
.phone-demo .map-stage .map-tools{left:50px}
@media(pointer:coarse){.map-stage #trip-map .leaflet-control-zoom a{width:32px;height:32px;min-width:32px;min-height:32px;line-height:32px!important}}

/* Shared journey content stays in the existing collapsible detail surface. */
.content-prose{white-space:pre-line;overflow-wrap:anywhere}
.content-facts{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px 14px;margin:16px 0;font-size:0.8125rem}.content-facts dt{color:var(--muted)}.content-facts dd{margin:0;overflow-wrap:anywhere}
.content-option{border:1px solid var(--line);border-radius:8px;padding:16px;margin:16px 0}.content-option h3{font-size:1.125rem;margin:8px 0}.content-option p{font-size:0.8125rem;margin:8px 0;line-height:1.6}.content-actions{display:flex;align-items:center;gap:8px 16px;flex-wrap:wrap;margin-top:12px}.content-actions .secondary{font-size:0.75rem}
.content-status{font-size:0.6875rem!important;color:var(--green)!important}.notice-item{border-left:2px solid var(--line);padding:10px 12px;margin:12px 0}.notice-item.important{border-left:3px solid #ab8650;background:var(--warm)}.notice-item strong{font-size:0.75rem}.notice-item .text-button{display:block}
#content-form textarea{min-height:100px}#content-form [hidden]{display:none!important}#content-form .check-field{font-weight:400;align-items:flex-start;line-height:1.6}#content-form .check-field input{flex-shrink:0;margin-top:3px}
@media(max-width:480px){.content-facts{grid-template-columns:1fr;gap:4px}.content-facts dd{margin-bottom:10px}.content-actions{align-items:stretch;flex-direction:column}.content-option{padding:12px}}
.map-location-notice{position:absolute;z-index:460;top:130px;left:16px;max-width:270px;margin:0;padding:12px 16px;background:var(--paper);border:1px solid var(--line);border-radius:8px;font-size:0.75rem;color:var(--muted);pointer-events:none}
.map-location-notice[hidden]{display:none}

/* Adding and removing days belongs beside the day list, always within reach. */
.day-navigation{display:flex;align-items:center;gap:14px;min-width:0;margin-top:14px}.day-navigation .day-strip{margin-top:0;min-width:0;flex:0 1 auto}.day-actions{display:flex;align-items:center;gap:6px;flex-shrink:0;padding-bottom:4px}.day-actions .secondary{display:flex;align-items:center;gap:4px;min-height:44px;padding:8px 12px;font-size:0.75rem;white-space:nowrap}.day-actions .icon-button{display:grid;place-items:center;min-width:44px;min-height:44px;border:0;background:transparent;color:var(--muted)}.day-actions .icon-button:hover{background:var(--soft);color:var(--green)}.day-change-summary{padding:14px 16px;background:var(--soft);border-radius:8px}.day-change-summary h3{margin:8px 0}.day-change-summary p{margin:0;font-size:0.8125rem}.calendar-shifts{margin:16px 0;font-size:0.8125rem}.calendar-shifts li{margin:8px 0}.removed-private{border-top:1px solid var(--line);margin-top:18px}
@media(max-width:850px){.day-navigation{gap:6px;margin-top:10px}.day-actions{gap:0}.day-actions .secondary{padding:6px 8px;white-space:normal;width:82px;line-height:1.4;text-align:left}.day-actions .secondary>span:first-child{font-size:1.125rem}.day-actions .icon-button{min-width:44px}.day-navigation .day-strip{flex:1}.day-navigation .day-strip button{min-width:85px}}

/* Day types supplement the existing profile text without making the strip taller. */
.route-state{font-size:0.6875rem;color:var(--muted);line-height:1.5;margin:8px 0 0}.route-caution,.route-error{font-size:0.6875rem;line-height:1.5;margin:8px 0 0}.route-error{color:#873b2e}.route-notes{font-size:0.6875rem;margin-top:10px;color:var(--muted)}.route-notes summary{cursor:pointer;min-height:32px;display:list-item}.route-notes p{line-height:1.6;margin:10px 0}.route-actions .text-button{font-size:0.6875rem;min-height:32px}.trip-information.collapsed{max-height:min(460px,80%);overflow-y:auto}.sheet-summary{min-height:0}.trip-information.expanded .sheet-summary{max-height:58%;overflow-y:auto}.map-legend.computed i:first-child{border-top-style:solid}
@media(max-width:850px){.map-stage .trip-information.collapsed{max-height:55%}.map-stage .trip-information.expanded .sheet-summary{max-height:60%}.trip-information.expanded .sheet-summary .route-actions .primary{display:block}.route-state,.route-caution{font-size:0.6875rem}.route-notes{margin-top:8px}}
.day-label{display:flex;align-items:center;gap:6px}.stage-type-icon{width:16px;height:16px;flex-shrink:0;vertical-align:middle}.day-label .sr-only{position:absolute}.map-location-notice{max-width:220px}
@media(max-width:850px){.map-location-notice{top:105px;font-size:0.6875rem;max-width:200px}}

/* The destination is chosen in the day form, with the inherited start already set. */
.automatic-start{padding:12px 0;border-top:1px solid var(--line);margin-top:16px}.automatic-start strong,.automatic-start small{display:block;margin-top:6px}.automatic-start small{font-size:0.75rem;color:var(--muted)}#different-start{font-size:0.75rem;margin:8px 0 16px}.place-field-tools{font-size:0.75rem}.place-field-tools .text-button{font-size:0.75rem;margin-right:16px}.place-field-tools p{font-size:0.75rem;margin:4px 0}.place-result{display:block;width:100%;text-align:left;min-height:44px;padding:10px 12px;border:0;border-bottom:1px solid var(--line);background:var(--soft);font:inherit;color:var(--green)}.place-source{font-size:0.625rem!important;color:var(--muted);margin-top:18px}.inline-place-map{height:260px;border-radius:8px;margin:12px 0}.inline-place-map[hidden]{display:none}.inline-place-map .leaflet-control-zoom a{color:var(--green)}.day-preview-map{height:230px;margin-top:16px;border-radius:8px}#content-form .place-field-tools .inline-place-map{display:block}#content-form .place-field-tools .inline-place-map[hidden]{display:none!important}

/* The overview contains routes, while the calendar includes every travel day. */
.overview-route-status{font-size:0.75rem;line-height:1.6;color:var(--muted);margin:12px 0 0}.map-legend.transport-only i:first-child{border-color:#626663}

/* Information belongs to its day, leaving the map free until requested. */
.day-tab{position:relative;flex:0 0 auto}
.day-navigation .day-strip .day-tab .day-select{min-width:132px;padding-right:46px;width:100%;height:100%}
.day-navigation .day-strip .day-tab .day-info{position:absolute;right:1px;top:1px;display:grid;place-items:center;width:44px;min-width:44px;height:44px;min-height:44px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--muted);box-shadow:none}
.day-tab:has(.day-select[aria-current=page]) .day-info{color:var(--paper)!important}
.day-navigation .day-strip .day-tab .day-info:hover,.day-navigation .day-strip .day-tab .day-info[aria-expanded=true]{background:#81927e24}
.day-info:focus-visible{outline:2px solid currentColor;outline-offset:-4px}
.trip-information:focus-visible{outline:2px solid var(--green);outline-offset:2px}
@media(max-width:850px){.day-navigation .day-strip .day-tab .day-select{min-width:126px;padding-right:46px}}

/* Keep only trip start and numbered daily destinations in the overview. */
.route-marker.overview-target span{min-width:28px;width:auto;height:28px;padding:0 4px;font-size:0.6875rem;white-space:nowrap}
.leaflet-tooltip.overview-place-label{font-family:inherit;font-size:0.6875rem;line-height:1.4;white-space:nowrap;color:var(--green);background:var(--paper);border:1px solid var(--line);border-radius:5px;box-shadow:0 1px 4px #22342614;padding:4px 7px}

/* Stages hold calendar days; rest days use the journal workspace without a map. */
.day-strip .stage-range{font-size:0.625rem;color:var(--muted)}.day-select[aria-current=page] .stage-range{color:inherit;opacity:.85}.day-strip .day-route-profile{display:flex;align-items:center;margin-top:3px}.profile-symbol{display:inline-flex;align-items:center}.stage-days{display:flex;gap:8px;flex-wrap:wrap;padding:10px 0 3px}.stage-days button{display:flex;gap:7px;align-items:center;min-height:44px;padding:8px 12px;background:var(--paper);border:1px solid var(--line);border-radius:7px;font-size:0.75rem;color:var(--green)}.stage-days button[aria-current=page]{background:var(--green);color:var(--paper)}.stage-days svg{width:16px;height:16px}.rest-day-view{background:var(--soft);overflow-y:auto}.rest-day-view .map-tools,.rest-day-view .map-legend,.rest-day-view .leaflet-map{display:none!important}.map-search[hidden]{display:none!important}.rest-day-content{max-width:720px;padding:50px 32px;margin:0 auto}.rest-day-heading{display:flex;gap:14px;align-items:center;margin:20px 0}.rest-day-heading>svg{width:32px;height:32px;color:var(--green)}.rest-day-heading h2{font-family:var(--serif);font-size:2.125rem;margin:0}.rest-day-content>p{line-height:1.8;font-size:1rem;max-width:58ch}.rest-stay{border-top:1px solid var(--line);margin:28px 0;padding-top:24px}.rest-stay h3{font-size:1.25rem;margin:8px 0}.rest-stay p{color:var(--muted);font-size:0.8125rem}.rest-day-content>.primary{margin-top:20px}@media(max-width:850px){.rest-day-content{padding:28px 20px}.rest-day-heading h2{font-size:1.75rem}.rest-day-content>p{font-size:0.875rem}.stage-days button{font-size:0.6875rem}.day-strip .day-select{min-width:112px}}

.stage-days{margin-top:0}.stage-days button{width:auto;flex:0 0 auto}.stage-card-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:3px}.stage-card-meta .profile-symbol svg{width:20px;height:20px}

/* One context selector and chronological itinerary instead of two tab bars. */
.day-navigation{align-items:center;gap:8px}.day-strip.journey-toolbar{display:flex;flex:1;align-items:center;gap:8px;overflow:visible;margin:10px 0 0;min-width:0}.journey-toolbar .day-select{display:flex;align-items:center;justify-content:center;gap:9px;min-width:0;width:auto;min-height:46px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--green)}.journey-toolbar .day-select[aria-current=page]{background:var(--soft);color:var(--green);border-color:#bdc9ba}.journey-toolbar .context-picker{justify-content:space-between;min-width:190px;max-width:380px;flex:1;text-align:left}.journey-toolbar .context-picker strong{font-size:0.8125rem;font-weight:600;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.journey-toolbar .context-picker small{font-size:0.625rem;display:block;margin-top:3px;color:var(--muted)}.journey-toolbar .context-picker>span{min-width:0}.journey-toolbar .day-info{position:static;flex:0 0 44px;width:44px;height:44px;padding:0;display:grid;place-items:center;border:0;transform:none}.journey-toolbar .day-stepper{display:flex;flex:0 0 auto;gap:0}.journey-toolbar .day-stepper button,.journey-toolbar .quick-profile{width:44px;min-height:44px;padding:8px;display:grid;place-items:center;border:0;background:none;border-radius:6px}.journey-toolbar .quick-profile .profile-symbol{width:24px}.journey-toolbar .quick-profile{flex:0 0 44px}.day-actions{margin-top:10px}.day-actions #add-day{border:1px solid var(--line);background:var(--paper);border-radius:8px;padding:8px;display:grid;place-items:center;min-width:44px}.itinerary-group{padding:12px 0;border-bottom:1px solid var(--line)}.itinerary-group-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:5px}.itinerary-group-head h3{font-size:0.9375rem;font-weight:600}.itinerary-group-head small{font-size:0.6875rem;color:var(--muted)}.itinerary-row{display:flex;align-items:center;gap:8px;border-radius:7px}.itinerary-row.current{background:var(--soft)}.itinerary-day{flex:1;display:flex;align-items:center;gap:12px;text-align:left;border:0;background:none;padding:12px 10px;min-height:52px}.itinerary-day>svg{width:18px;height:18px;flex:0 0 18px}.itinerary-day strong{font-size:0.8125rem;font-weight:500;display:block;line-height:1.5}.itinerary-day small{display:block;font-size:0.6875rem;color:var(--muted);margin-top:3px}.itinerary-row>.icon-button{flex:0 0 44px}#remove-point{margin-right:auto;color:#873b2e}@media(max-width:850px){.day-strip.journey-toolbar{gap:5px;flex-wrap:wrap}.journey-toolbar .overview-link{width:44px;padding:8px}.journey-toolbar .overview-link>span{display:none}.journey-toolbar .context-picker{min-width:160px;max-width:none;flex:1}.journey-toolbar .day-stepper{order:3;margin-left:44px}.journey-toolbar .quick-profile,.journey-toolbar .day-info{order:4}.journey-toolbar .context-picker strong{font-size:0.75rem}.day-navigation{align-items:flex-start}.day-actions #add-day{margin-top:0}.journey-toolbar .day-select{min-height:44px}.itinerary-group-head h3{font-size:0.875rem}}
.day-navigation .journey-toolbar button{min-width:44px}.day-navigation .journey-toolbar .context-picker{min-width:190px}.journey-toolbar .context-picker{padding:6px 10px}.journey-toolbar .context-picker strong{line-height:1.3}.journey-toolbar .context-picker small{line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}@media(max-width:850px){.day-navigation .journey-toolbar .context-picker{min-width:160px}.journey-toolbar .day-info{min-width:44px}.journey-toolbar .day-stepper button{min-width:44px}}

.itinerary-group{padding:8px 0}.itinerary-group-head{margin-bottom:3px}.itinerary-day{padding:8px 10px;min-height:48px}.itinerary-day strong,.itinerary-day small{line-height:1.3}

/* The full-trip control stays readable on every screen. */
@media(max-width:850px){.journey-toolbar .overview-link>span{display:inline}.day-navigation .journey-toolbar .overview-link{width:auto;min-width:108px;font-size:0.6875rem;gap:5px;padding:7px}.journey-toolbar .context-picker{flex-basis:100%;order:2}.journey-toolbar .day-stepper{margin-left:0}.journey-toolbar .day-info{order:4}.day-navigation .day-actions{margin-top:10px}}

@media(max-width:850px){.day-strip.journey-toolbar{display:grid;grid-template-columns:auto 1fr 44px;grid-template-areas:"context context context" "overview stepper info";gap:6px}.journey-toolbar .context-picker{grid-area:context;max-width:none;width:100%}.journey-toolbar .overview-link{grid-area:overview}.journey-toolbar .day-stepper{grid-area:stepper;justify-self:center;margin-left:0}.journey-toolbar .day-info{grid-area:info}.journey-toolbar .quick-profile,.day-navigation .day-actions{display:none}}
@media(max-width:850px){.day-navigation{position:relative}.day-navigation .day-actions{display:flex;position:absolute;right:0;top:0;margin-top:10px}.journey-toolbar .context-picker{width:calc(100% - 50px)}}

/* Ortsnamen und aktuelle Streckendaten bleiben in der Tagesauswahl lesbar. */
.journey-toolbar .context-picker strong,.journey-toolbar .context-picker small{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}.journey-toolbar .context-picker small{font-size:0.6875rem;line-height:1.4}.journey-toolbar .context-picker>svg{flex:0 0 17px}.itinerary-day{min-width:0}.itinerary-day>span{min-width:0;overflow-wrap:anywhere}

.navigation-facts{display:grid;grid-template-columns:auto 1fr;gap:10px 18px;margin:22px 0}.navigation-facts dt{color:var(--muted);font-size:0.8125rem}.navigation-facts dd{margin:0;overflow-wrap:anywhere}.navigation-stops{margin:16px 0;line-height:1.6}.navigation-link{display:block;text-align:center;text-decoration:none;padding:13px 16px;border-radius:7px;min-height:44px;margin:16px 0;font-size:0.875rem}#navigation-sections details .navigation-link{border:1px solid var(--line)}

/* Ein vollständiges Infofenster mit einem gemeinsamen Scrollbereich. */
.map-stage .trip-information{display:block;z-index:1100;top:16px;bottom:30px;max-height:calc(100% - 46px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.trip-information .sheet-bar{position:sticky;top:0;z-index:2;justify-content:space-between;padding:0 8px 0 20px;background:var(--paper)}.sheet-heading{font-size:0.6875rem;color:var(--muted)}.trip-information .sheet-summary{max-height:none;overflow:visible}.trip-information .drawer-body{overflow:visible;min-height:auto}.phone-demo .map-stage .trip-information{left:10px;right:10px;top:10px;bottom:28px;width:auto;height:auto;max-height:calc(100% - 38px)}
@media(max-width:850px){.map-stage .trip-information{top:10px;bottom:28px;height:auto;max-height:calc(100% - 38px)}.trip-information .sheet-bar{padding-left:18px}}

/* A single route attachment, using the existing palette and responsive dialog. */
.gpx-attachment{display:flex;align-items:center;gap:16px;padding:18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--soft);text-decoration:none;min-width:0;color:var(--green)}
.gpx-attachment[hidden]{display:none}
.gpx-attachment>svg{flex-shrink:0}.gpx-attachment>span{flex:1;min-width:0}.gpx-attachment strong{display:block;overflow-wrap:anywhere}.gpx-attachment small{display:block;margin-top:4px}.gpx-attachment:hover{border-color:var(--green)}
/* Keep the diary separate without adding another full navigation row on a phone. */
@media(max-width:600px){.topbar{gap:8px;padding:12px}.topbar .brand{font-size:1.5rem}.topbar #trips{font-size:0.75rem;padding:8px 10px}.topbar #journal-open{font-size:0.75rem;padding:8px 4px}.topbar .avatar{flex-shrink:0}}
.lodging-list{list-style:none;margin:0;padding:0}.lodging-list li+li{border-top:1px solid var(--line)}.lodging-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:52px;text-align:left;padding:12px 0;border:0;background:transparent;color:var(--ink);font:inherit}.lodging-row>span:first-child{flex:1;min-width:0}.lodging-status{display:inline-block;flex-shrink:0;padding:4px 8px;border-radius:6px;background:var(--soft);font-size:0.75rem;font-weight:600;white-space:nowrap}.lodging-status-booked{background:#dfeee3;color:#245237}.lodging-status-asked{background:#fff1cf;color:#77560f}.lodging-status-unavailable{background:#f8e4df;color:#843f35}.day-diary{border-top:1px solid var(--line)}

.manual-day {border-top:1px solid var(--line);padding-top:20px;margin-top:20px;}
.manual-day h3 {margin:0 0 8px;}
[data-map-center] {margin-top:10px;}
@media(max-width:500px){body{grid-template-columns:minmax(0,1fr)}.topbar{min-width:0;gap:4px;padding-inline:10px}.topbar .brand{font-size:1.25rem;gap:5px}.topbar .brand-icon{width:30px;height:30px}.topbar #trips{padding-inline:5px;white-space:nowrap}.topbar #journal-open{font-size:0.6875rem;padding-inline:4px;white-space:nowrap}.topbar .avatar{min-width:44px;width:44px;min-height:44px;padding:8px}.topbar button{min-height:44px}.map-workspace,.trip-bar{min-width:0}}
@media(max-width:360px){.topbar{flex-wrap:wrap}.topbar .brand{margin-right:auto}.topbar #trips{margin-left:0}}

@media(max-width:500px){.form-pair{grid-template-columns:minmax(0,1fr)}}

.demo #shared-workspace{border:0;background:none;color:inherit;font:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:4px;min-height:32px}.demo span{white-space:normal}

.sync-difference{border-top:1px solid var(--line);padding:12px 0}.sync-difference h3{font-size:0.875rem;margin:0 0 8px}.sync-difference p{font-size:0.8125rem;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}

.route-update-feedback{position:absolute;z-index:510;left:12px;bottom:36px;max-width:min(460px,calc(100% - 24px));padding:10px 14px;background:var(--paper);border:1px solid var(--line);border-radius:8px;font-size:0.75rem;line-height:1.5;box-shadow:0 2px 8px #22342612}.route-update-feedback button{display:block;margin-top:6px;min-height:44px;border:0;background:none;padding:0;color:var(--green);font:inherit;text-decoration:underline}.route-update-feedback[role=alert]{border-color:#b98470}

/* Details stay in the existing 44px action; the symbol is larger and clearer. */
.journey-toolbar .day-info,.itinerary-row>.itinerary-info{color:var(--green)}
.day-info>svg,.itinerary-info>svg{display:block;flex-shrink:0}

/* The header shows route freshness; storage appears only when action is needed. */
body{grid-template-rows:auto minmax(0,1fr)}
.topbar{align-items:center;justify-content:flex-start}
.topbar #journal-open{text-decoration:none}
.header-status{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;flex:0 1 auto;min-width:0;max-width:240px;min-height:44px;line-height:1.3;margin-left:12px;text-align:right}
#route-current-status{font-size:0.75rem;font-weight:600;color:var(--green)}
#route-current-status[data-state=error]{color:#873b2e}
#route-current-status[data-state=pending],#route-current-status[data-state=neutral]{color:var(--muted)}
.header-status button{border:0;background:none;padding:3px 0;font-size:0.6875rem;min-height:24px;color:var(--muted);text-align:right;text-underline-offset:3px;cursor:pointer}
.header-status #route-status-retry{text-decoration:underline;color:var(--green)}
#shared-workspace[data-state=error]{color:#873b2e;font-weight:600;text-decoration:underline}
#shared-workspace[data-state=notice]{color:var(--green);font-weight:600;text-decoration:underline}
@media(max-width:850px){.topbar{gap:8px;flex-wrap:nowrap}.brand-wordmark{display:none}.topbar .brand{flex-shrink:0}.header-status{max-width:170px}.header-status button{font-size:0.625rem}#route-current-status{font-size:0.6875rem}.topbar #trips{white-space:nowrap;padding:8px 4px}.topbar #journal-open{white-space:nowrap;font-size:0.75rem}}
@media(max-width:480px){.topbar{padding:8px;gap:6px}.brand-icon{width:32px;height:32px}.header-status{flex:0 1 110px;max-width:110px;margin-left:auto}.header-status #shared-workspace{font-size:0.5625rem}#route-current-status{font-size:0.625rem}.topbar #trips{font-size:0.6875rem}.topbar #journal-open{font-size:0.6875rem}.topbar .avatar{width:36px;min-width:36px;height:44px;padding:6px}.topbar #trips{margin-left:0}}

/* Marker feedback changes the inner symbol, never Leaflet's positioning transform. */
.leaflet-map .route-marker{cursor:pointer}
.leaflet-map .route-marker.movable-marker{cursor:grab}
.leaflet-map .route-marker.is-dragging{cursor:grabbing}
.leaflet-map .route-marker>span{transition:background-color .12s,color .12s,border-color .12s}
.leaflet-map .route-marker.selected>span,.leaflet-map .route-marker:focus-visible>span{background:var(--warm);color:var(--ink);border-color:#b37632;outline:3px solid #b37632;outline-offset:2px;box-shadow:0 0 0 5px var(--paper)}
@media(hover:hover){.leaflet-map .route-marker:hover>span{background:var(--warm);color:var(--ink);border-color:#b37632;outline:2px solid #b37632;outline-offset:2px}}
@media(prefers-reduced-motion:reduce){.leaflet-map .route-marker>span{transition:none}}

/* Private diary excerpts stay within the existing day list on every screen size. */
.diary-choice>span{min-width:0;width:100%}.diary-preview{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;overflow-wrap:anywhere;white-space:normal;font-size:0.875rem;line-height:1.5;color:var(--ink);margin-top:8px;text-align:left}

/* One trip identity and one contextual heading keep the map in view. */
.topbar .brand{flex:0 0 40px;gap:0;min-height:44px;align-items:center}
.header-trip-name{min-width:0;flex:1;font-size:1.25rem;font-weight:600;line-height:1.3;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar #trips{margin-left:0;flex-shrink:0}.header-nav-icon{display:none}
.topbar #journal-open{flex-shrink:0}.header-status{margin-left:0;flex-shrink:0}
.map-workspace .trip-bar{padding:8px 24px}
.trip-bar .day-navigation{margin:0;display:block}
.day-navigation .day-strip.journey-toolbar{display:flex;align-items:center;flex-wrap:nowrap;gap:8px;width:100%;margin:0;padding:0;overflow:visible}
.journey-toolbar .context-heading{flex:1;min-width:0;max-width:none;margin:0;font-size:1.375rem;line-height:1.2}
.day-navigation .journey-toolbar .context-picker{display:flex;align-items:center;gap:12px;width:100%;min-width:0;max-width:none;min-height:56px;padding:4px 8px;border:0;background:transparent;color:var(--ink);text-align:left;border-radius:7px}
.journey-toolbar .context-picker>span{flex:1;min-width:0}
.journey-toolbar .context-picker strong{font:400 1.375rem/1.25 Georgia,"Times New Roman",serif;letter-spacing:-.025em;color:var(--ink);white-space:normal}
.journey-toolbar .context-picker small{font:400 0.75rem/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--muted);opacity:1;white-space:normal;margin-top:4px}
.journey-toolbar .context-picker>svg{color:var(--green)}
.day-navigation .journey-toolbar .overview-link{width:auto;min-width:44px;display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:8px;font-size:0.75rem;background:transparent;border:0}
.journey-toolbar .overview-link>span{display:inline}
.journey-toolbar .day-stepper{display:flex;margin:0;order:0;flex:0 0 88px;justify-self:auto}
.day-navigation .journey-toolbar .quick-profile,.day-navigation .journey-toolbar .day-info,.day-navigation .journey-toolbar #add-day{display:grid;place-items:center;flex:0 0 44px;min-width:44px;width:44px;height:44px;min-height:44px;order:0;padding:8px;border:0;background:transparent;border-radius:7px;color:var(--green)}
.day-navigation .journey-toolbar .day-info[aria-expanded=true]{background:var(--soft)}
@media(hover:hover){.journey-toolbar button:hover{background:var(--soft)!important}}
@media(max-width:850px){
  .map-workspace .trip-bar{padding:6px 12px}
  .day-navigation .day-strip.journey-toolbar{flex-wrap:wrap;gap:4px}
  .journey-toolbar .context-heading{order:-1;flex:0 0 100%}
  .day-navigation .journey-toolbar .context-picker{width:100%;min-height:52px;padding:4px 2px}
  .journey-toolbar .context-picker strong{font-size:1.3125rem}
  .day-navigation .journey-toolbar .overview-link{width:44px;padding:8px}
  .journey-toolbar .overview-link>span{display:none}
  .day-navigation .journey-toolbar .quick-profile{margin-left:auto}
  .journey-toolbar .day-stepper+.day-info{margin-left:auto}
}

@media(max-width:700px){
  .topbar{display:grid;grid-template-columns:32px minmax(0,1fr) 44px 44px 44px;grid-template-rows:minmax(22px,auto) minmax(18px,auto);column-gap:6px;row-gap:0;min-height:64px;padding:8px;align-items:center;flex-wrap:nowrap}
  .topbar .brand{grid-column:1;grid-row:1/3;min-width:32px;margin:0;min-height:44px}
  .topbar .brand-icon{width:32px;height:32px}
  .header-trip-name{grid-column:2;grid-row:1;font-size:1rem;line-height:22px;align-self:end}
  .topbar #trips,.topbar #journal-open{display:grid;place-items:center;padding:0;width:44px;min-width:44px;height:44px;grid-row:1/3;margin:0;border:0}
  .topbar #trips{grid-column:3}.topbar #journal-open{grid-column:4}
  .header-nav-icon{display:block}
  .header-nav-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  .topbar .header-status{grid-column:2;grid-row:2;align-self:start;align-items:flex-start;max-width:none;min-width:0;min-height:18px;margin:0;text-align:left}
  #route-current-status{font-size:0.625rem;line-height:18px}
  .header-status button{font-size:0.625rem;text-align:left}
  .topbar #settings{grid-column:5;grid-row:1/3;width:44px;min-width:44px;height:44px;padding:8px;margin:0}
}

/* Curated proposals remain separate from the current journey until accepted. */
.planning-method{border:0;border-top:1px solid var(--line);padding:20px 0 0;margin:24px 0 0;min-width:0}.planning-method legend{font-size:0.875rem;font-weight:600}.planning-method .private-help{margin:4px 0 16px 28px}.planning-method input{width:auto;flex-shrink:0}.curation-dialog{width:760px;max-width:min(760px,calc(100vw - 24px))}.curation-map{height:260px;border-radius:8px;overflow:hidden;margin:20px 0}.curation-day{border-top:1px solid var(--line);padding:18px 0}.curation-day-heading{display:flex;gap:12px;align-items:center;justify-content:space-between}.curation-day-heading h3{font-size:1.0625rem}.curation-day-heading button{flex-shrink:0}.curation-day p{font-size:0.875rem;line-height:1.7}.curation-day .curation-metrics{font-size:0.75rem;color:var(--muted);margin:4px 0 10px}.curation-day h4{font-size:0.8125rem;margin:14px 0 6px}.curation-day ul,.curation-sources{font-size:0.8125rem;line-height:1.7;padding-left:20px;overflow-wrap:anywhere}.curation-day details{margin:12px 0}.curation-day li+li{margin-top:6px}
@media(max-width:480px){.curation-day-heading{align-items:flex-start}.curation-day-heading h3{font-size:0.9375rem}.curation-map{height:220px}}

/* A personal planning result stays reachable without interrupting the map. */
.curation-notification[hidden]{display:none!important}
.topbar .curation-notification{display:flex;align-items:center;gap:7px;flex:0 0 auto;min-height:44px;min-width:44px;padding:8px;border:0;border-radius:7px;background:transparent;color:var(--green);font-size:0.75rem}
.curation-bell{display:grid;place-items:center;position:relative;width:24px;height:24px}
.curation-notification-dot{display:none;position:absolute;right:-2px;top:-2px;width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 2px var(--paper)}
.curation-notification[data-unread=true] .curation-notification-dot{display:block}
.curation-notification[data-state=error] .curation-notification-dot{background:var(--ink)}
.curation-notification[data-state=working] .curation-bell{border:2px solid var(--line);border-top-color:var(--green);border-radius:50%;animation:curation-working 1.2s linear infinite}
.curation-notification[data-state=working] .curation-bell>svg{visibility:hidden}
@keyframes curation-working{to{transform:rotate(360deg)}}
#curation-announcement.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:1050px){.curation-notification-label{display:none}}
@media(max-width:700px){
 .topbar:has(#curation-notification:not([hidden])){grid-template-columns:32px minmax(0,1fr) 44px 44px 44px 44px}
 .topbar #curation-notification{grid-column:5;grid-row:1/3;width:44px;padding:8px;justify-content:center}
 .topbar:has(#curation-notification:not([hidden])) #settings{grid-column:6}
}
@media(prefers-reduced-motion:reduce){.curation-notification[data-state=working] .curation-bell{animation:none}}

.lodging-route-target{display:block;margin-top:4px;color:var(--green);font-size:0.75rem;font-weight:600}

.diary-media-section{margin-top:24px;border-top:1px solid var(--line);padding-top:20px}.diary-media-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:16px 0}.diary-media-item{min-width:0}.diary-media-preview{position:relative;min-width:0;min-height:0;aspect-ratio:4/3;display:grid;place-items:center;background:var(--soft);border-radius:var(--radius);overflow:hidden}.diary-media-preview img,.diary-media-preview video{display:block;width:100%;height:100%;max-height:100%;object-fit:contain}.diary-media-item label{font-size:0.75rem;margin-top:8px}.diary-media-item input{font-size:0.875rem}.diary-media-remove{display:block}.diary-media-add{display:inline-flex;align-items:center;cursor:pointer;margin:8px 0}.diary-removed-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line)}.diary-removed-row>span{min-width:0;overflow-wrap:anywhere}#diary-form [hidden]{display:none}#diary-files:focus-visible+.private-help{outline:2px solid var(--green)}
@media(max-width:540px){.diary-media-grid{grid-template-columns:minmax(0,1fr);gap:16px}}

/* A separate preview keeps the diary draft and its scroll position intact. */
.diary-photo-open{position:absolute;inset:0;min-width:0;min-height:0;display:block;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:zoom-in}
.diary-photo-open>span{position:absolute;right:8px;bottom:8px;padding:5px 9px;border-radius:6px;background:var(--paper);color:var(--green);font-size:0.75rem}
dialog.diary-media-viewer{width:1000px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);padding:20px;margin:auto}
.diary-viewer-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}
.diary-viewer-head h3{font-size:1.1875rem}.diary-viewer-head button{flex-shrink:0}
.diary-viewer-content{display:grid;place-items:center;min-height:120px;background:var(--soft);border-radius:var(--radius);overflow:hidden}
.diary-viewer-content img,.diary-viewer-content video{display:block;max-width:100%;width:auto;max-height:calc(100dvh - 180px);object-fit:contain}
.diary-viewer-caption{font-size:0.875rem;line-height:1.5;overflow-wrap:anywhere;margin-top:12px}
.diary-viewer-caption:empty,#diary-media-status:empty{display:none}
@media(max-width:540px){dialog.diary-media-viewer{padding:16px}.diary-viewer-head{gap:8px}.diary-viewer-head button{padding-inline:12px}.diary-photo-open img{max-height:100%}}

.diary-video-open{cursor:pointer}.diary-video-open video{pointer-events:none}

/* Diary reading comes first; editing controls appear only when requested. */
.diary-entry-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:16px;margin:4px 0 12px;min-height:44px}
.diary-read-text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:1rem;line-height:1.7;margin:0 0 20px}
.diary-media-meta{display:flex;align-items:flex-start;gap:8px;min-height:44px}
.diary-media-caption{flex:1;min-width:0;overflow-wrap:anywhere;font-size:0.875rem;line-height:1.5;margin:10px 0 0}
.diary-media-actions,.diary-entry-actions{position:relative;flex-shrink:0;margin:0 0 0 auto}
.diary-media-actions summary,.diary-entry-actions summary{display:grid;place-items:center;list-style:none;width:44px;min-height:44px;padding:0;border-radius:7px;font-size:1.4375rem;line-height:1;color:var(--muted)}
.diary-media-actions summary::-webkit-details-marker,.diary-entry-actions summary::-webkit-details-marker{display:none}
.diary-entry-actions{margin-left:0}.diary-media-actions[open],.diary-entry-actions[open]{z-index:3}
.diary-media-menu{position:absolute;right:0;top:44px;min-width:190px;max-width:calc(100vw - 64px);padding:6px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 24px #20322b20}
.diary-media-menu button{display:block;width:100%;min-height:44px;padding:10px 12px;border:0;border-radius:6px;background:transparent;text-align:left;font-size:0.875rem;white-space:normal}
.diary-media-menu button:hover{background:var(--soft)}
.diary-caption-fields{margin-top:4px}.diary-caption-fields label{margin-top:0}
.diary-photo-open .diary-video-badge{display:grid;place-items:center;right:10px;bottom:10px;width:32px;height:32px;padding:0;border-radius:50%;font-size:0.875rem;background:var(--paper);color:var(--green)}

.private-content-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.private-content-heading h3{margin:0!important}.personal-note-text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:0.875rem;line-height:1.7}#private-notes [hidden]{display:none}
/* Diary backup keeps maintenance behind the existing overflow menu. */
.backup-import{margin-top:24px}
.backup-import label{display:inline-flex;align-items:center;min-height:44px;cursor:pointer}
.backup-download{display:inline-flex;align-items:center;justify-content:center;min-height:44px;text-decoration:none}
#diary-backup-panel [hidden]{display:none}
.private-content-heading .dialog-title{margin-bottom:0}
.diary-version-row{padding:12px 0;border-bottom:1px solid var(--line,#dedfd5)}
.diary-version-row .journey-choice{margin-bottom:0}
#diary-auto-content .private-save{display:flex;flex-wrap:wrap;gap:12px}
#diary-auto-content .check-field{margin:16px 0}
#diary-auto-panel,#diary-versions-panel,#diary-version-preview{overflow-wrap:anywhere}
.diary-version-excerpt{padding:12px 0;border-bottom:1px solid var(--line,#dedfd5);font-size:0.875rem}

/* Backup setup: one folder choice, then status; maintenance stays folded away. */
#diary-auto-content .diary-backup-state{font-weight:600;margin-top:8px}
.diary-backup-options{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
#diary-auto-options{border-top:1px solid var(--line);padding-top:8px}

.diary-originals article+article{border-top:1px solid var(--line);margin-top:20px;padding-top:20px}
.diary-originals h3{font-size:0.875rem;color:var(--muted);margin-bottom:12px}

/* Past original journeys are retained; personal memories remain editable. */
body[data-trip-archived="true"] :is(#add-day,#add-point,#quick-profile,#stage-edit,#day-ai-replan,#notice-add,[data-notice],[data-add-lodging],#lodging-status-edit,#lodging-use,#trip-preference,#trip-description-edit,#itinerary-add,#itinerary-remove,[data-profile-day],#day-ai-plan,#route-options,#stay-nights,[data-start]){display:none!important}
/* Prepared personal migration: one visible entry point and a compact confirmation. */
.diary-import-prompt{margin:16px 0 20px}.diary-import-prompt p{margin-bottom:10px}
#diary-backup-panel .dialog-title{font-size:2rem}
@media(max-width:600px){#diary-backup-panel .dialog-title{font-size:1.75rem}}

/* Shared reading and control scale: retain the existing paper/green identity. */
:root{--ui-copy:0.9375rem;--ui-help:0.8125rem;--ui-control:0.875rem;--ui-dialog-title:1.75rem;--ui-space:8px}
#editor{padding:20px 24px 24px;max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain}
#editor .dialog-head{margin-bottom:var(--ui-space);gap:var(--ui-space)}
#editor .dialog-head .eyebrow{font-size:0.6875rem;line-height:1.5}
#editor .dialog-head .icon-button{font-size:1.375rem;flex-shrink:0}
#editor .dialog-title{font-size:var(--ui-dialog-title);line-height:1.2;margin:4px 0 16px;overflow-wrap:anywhere}
#editor #dialog-body{font-size:var(--ui-copy);line-height:1.6;overflow-wrap:anywhere}
#editor p+p{margin-top:var(--ui-space)}
#editor .private-help,#editor .dialog-copy,#editor .error{font-size:var(--ui-help);line-height:1.6}
#editor label{font-size:var(--ui-control);line-height:1.5;margin-top:16px}
#editor :is(input,select,textarea){font-size:1rem;line-height:1.5;min-height:44px}
#editor :is(.primary,.secondary,.text-button){font-size:var(--ui-control);line-height:1.5;min-height:44px}
#editor .dialog-actions{gap:var(--ui-space);margin-top:24px}
#editor .dialog-actions :is(.primary,.secondary){padding:10px 16px}
#editor .journey-choice strong,#editor .itinerary-day strong{font-size:var(--ui-copy);line-height:1.5}
#editor .journey-choice small,#editor .itinerary-day small{font-size:var(--ui-help);line-height:1.5}
#editor summary{line-height:1.5;min-height:44px}
#editor .diary-version-contents{margin:24px 0}
#editor .diary-version-contents h3{font-size:1rem}
#editor .diary-version-excerpt{padding:16px 0;font-size:var(--ui-copy)}
#editor .diary-version-excerpt p{margin-top:var(--ui-space);font-size:var(--ui-help);color:var(--muted)}
#editor .diary-version-contents details{margin:8px 0}
.trip-information .sheet-summary h2{font-size:1.625rem;line-height:1.2}
.trip-information :is(.drawer-body,.content-prose){font-size:var(--ui-copy);line-height:1.65}
.trip-information .private-help,.trip-information .sheet-metrics{font-size:var(--ui-help);line-height:1.6}
.trip-information :is(.primary,.secondary,.text-button){font-size:var(--ui-control);min-height:44px}
.topbar #journal-open{text-decoration:none}
/* Guidance is available behind ?; the map stays focused on the route. */
.map-stage .map-tools .map-instruction-badge{display:none}
.map-route-open{position:absolute;right:24px;bottom:24px;z-index:700;box-shadow:0 2px 8px #20382c26}
.map-stage:has(.trip-information:not([hidden])) .map-route-open{display:none}
@media(max-width:700px){
 :root{--ui-dialog-title:1.625rem;--ui-copy:1rem}
 #editor{padding:16px;max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}
 #editor .dialog-actions{gap:8px}
 #editor .dialog-actions :is(.primary,.secondary){flex:1 1 auto;white-space:normal}
 .trip-information .sheet-summary h2{font-size:1.5rem}
 .map-route-open{right:16px;bottom:56px;min-height:48px;padding:10px 16px;font-size:0.875rem}
 .map-legend{max-width:calc(100% - 24px);white-space:normal}
}

/* A tap identifies a point; editing is a deliberate next step on every device. */
.map-point-label{overflow-wrap:anywhere}
.map-point-label>strong{display:block;font:600 0.875rem/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink)}
.map-point-label>small{display:block;margin-top:4px;font-size:0.75rem;line-height:1.5;color:var(--muted)}
.map-point-label>button{font-size:0.875rem;min-height:44px;margin-top:8px}
.map-point-popup .leaflet-popup-content{margin:16px 36px 12px 16px}
.map-point-popup .leaflet-popup-close-button{width:44px;height:44px;line-height:44px;font-size:1.375rem}

/* One compact weather control, with route-local details on demand. */
.weather-control{position:absolute;left:16px;bottom:56px;z-index:650;display:flex;align-items:center;max-width:min(440px,calc(100% - 32px));gap:8px;padding:4px 10px;background:var(--paper);border:1px solid var(--line);border-radius:8px;box-shadow:0 2px 8px #20382c14}
.weather-control>button{display:flex;align-items:center;gap:8px;min-width:0;min-height:44px;background:transparent;border:0;padding:4px 0;text-align:left;font-size:0.8125rem;color:var(--green)}
#weather-control-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.weather-attribution{font-size:0.6875rem;white-space:nowrap;flex-shrink:0;color:var(--muted)}
.weather-lead{font-weight:600}.weather-point{padding:16px 0;border-bottom:1px solid var(--line)}
.weather-point-heading{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px}.weather-role{font-size:0.8125rem;color:var(--muted)}
#editor .weather-point .private-help{margin:4px 0 8px}.weather-metrics{font-size:0.875rem;line-height:1.7}
#editor .weather-point details{margin:8px 0 0}.weather-hours{list-style:none;padding:0;margin:0}
.weather-hours li{display:flex;align-items:baseline;gap:12px;padding:6px 0;font-size:0.8125rem}.weather-hours li>span:last-child{margin-left:auto}
.weather-source{border-top:1px solid var(--line);padding-top:16px}
.rest-day-view .weather-control{position:relative;left:auto;bottom:auto;max-width:calc(100% - 40px);width:fit-content;margin:0 auto 24px}
@media(min-width:851px){.map-stage:has(.trip-information:not([hidden])) .weather-control{max-width:calc(100% - 452px)}}
@media(max-width:700px){.weather-control{bottom:116px;left:16px;right:16px;width:auto;max-width:none;justify-content:space-between}.weather-control>button{flex:1;font-size:0.8125rem}.map-stage:has(.trip-information:not([hidden])) .weather-control{display:none}.rest-day-view .weather-control{right:auto;width:calc(100% - 40px);max-width:none}}

/* Small weather strip: unlabeled icons and values; context and units in details. */
.weather-control{display:block;width:calc(var(--weather-columns,3) * 76px + 16px);padding:6px 8px}
.weather-control>button{display:block;width:100%;min-height:44px;padding:0}
#weather-control-text{display:block;white-space:normal;overflow:visible}
.weather-overview{display:grid;grid-template-columns:repeat(var(--weather-columns),minmax(0,1fr));gap:4px}
.weather-column{display:flex;align-items:center;flex-direction:column;min-width:0;gap:2px;padding:0 2px}
.weather-column+.weather-column{border-left:1px solid var(--line)}
.weather-column-condition{display:flex;align-items:center;justify-content:center;gap:3px;min-height:22px;white-space:nowrap}
.weather-column-icon{font-size:1.125rem;line-height:22px}
.weather-column-condition strong{font-size:0.75rem;font-weight:600}
.weather-column-wind{display:flex;align-items:center;justify-content:center;gap:4px;font-size:0.6875rem;line-height:16px;color:var(--muted)}
.weather-column-wind svg{flex-shrink:0}
.weather-control-footer{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:0.625rem;line-height:12px;color:var(--muted)}
.weather-control-footer .weather-attribution{font-size:0.625rem;line-height:12px}
.weather-control:not(.weather-control-graphic){width:fit-content;max-width:min(440px,calc(100% - 32px))}
.rest-day-view .weather-control{width:calc(var(--weather-columns,1) * 76px + 16px)}
@media(max-width:700px){
 .weather-control{right:auto;max-width:calc(100% - 32px)}
 .weather-control:not(.weather-control-graphic){max-width:calc(100% - 32px)}
 .rest-day-view .weather-control{width:calc(var(--weather-columns,1) * 76px + 16px);max-width:calc(100% - 40px)}
}

#offline-map-progress{width:100%;height:12px;accent-color:var(--green);margin:12px 0}#offline-map-scope{width:100%;margin:8px 0 12px}#offline-map-status{margin-block:16px;font-weight:600}.maplibregl-canvas{outline:none}.maplibregl-canvas-container{pointer-events:none}

#offline-map-download[hidden],#offline-map-cancel[hidden],#offline-map-progress[hidden],#offline-map-remove[hidden],#offline-map-remove-confirm[hidden]{display:none!important}

.map-background-notice{position:absolute;z-index:500;left:50%;top:50%;transform:translate(-50%,-50%);width:max-content;max-width:calc(100% - 48px);padding:12px 16px;background:var(--paper);color:var(--muted);border:1px solid var(--line);border-radius:var(--radius);font-size:0.8125rem;line-height:1.5;pointer-events:none}.map-background-notice[hidden]{display:none!important}
body:has(>.shared-conflict-notice:not([hidden])){grid-template-rows:auto auto minmax(0,1fr)}
.shared-conflict-notice{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px;border-bottom:1px solid var(--line);border-left:4px solid var(--green);background:var(--warm);color:var(--ink);font-size:var(--ui-copy);line-height:1.5}
.shared-conflict-notice[hidden]{display:none}
.shared-conflict-notice>div{min-width:0}
.shared-conflict-notice strong{display:block;font-weight:600}
.shared-conflict-notice p{margin-top:4px}
.shared-conflict-notice .primary{flex-shrink:0;font-size:var(--ui-copy);min-height:48px;white-space:normal}
@media(max-width:600px){.shared-conflict-notice{align-items:stretch;flex-direction:column;gap:12px;padding:14px 16px}.shared-conflict-notice .primary{width:100%}}

/* Everyday amenities remain two quiet facts under each lodging name. */
.lodging-amenities{display:block;margin-top:6px;color:var(--muted)}.lodging-amenity{display:block;font-size:var(--type-caption,0.75rem);font-weight:400;line-height:1.55;overflow-wrap:anywhere}.lodging-amenity>span{font-weight:600}.lodging-row:has(.lodging-amenities){align-items:flex-start}.lodging-row .lodging-status{margin-top:2px}.curation-day .lodging-amenities{margin-bottom:10px}

/* Nearby facts: quiet symbols in lists, full names only in the accommodation detail. */
.lodging-amenities{display:flex;flex-direction:column;gap:3px;margin-top:7px;color:var(--muted)}
.lodging-amenity{display:flex;align-items:center;gap:6px;font-size:var(--type-caption,0.75rem);font-weight:400;line-height:1.5;overflow-wrap:anywhere}
.lodging-amenity>span{font-weight:400}.lodging-amenity>svg{width:16px;height:16px;flex:0 0 16px}
.lodging-amenities-compact{flex-direction:row;flex-wrap:wrap;column-gap:16px;row-gap:4px}
.lodging-amenities-compact .lodging-amenity{white-space:nowrap}

.app-update{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 20px;background:var(--soft);color:var(--ink);font-size:var(--type-caption,0.75rem);line-height:1.5}
.app-update[hidden],.app-update button[hidden]{display:none}.app-update .secondary{padding:7px 12px;font-size:inherit;flex-shrink:0}
@media(max-width:480px){.app-update{padding:9px 12px;gap:8px}}

/* Each temporary notice has its own row; the map keeps the remaining height. */
body,body:has(>.shared-conflict-notice:not([hidden])){grid-template-rows:auto auto auto minmax(0,1fr)}
body>.topbar{grid-row:1}body>.app-update{grid-row:2}body>.shared-conflict-notice{grid-row:3}body>.map-workspace{grid-row:4}
/* Arrival/departure and booking facts use the same reading scale as nearby prose. */
#editor .content-facts,.trip-information .content-facts{font-size:var(--ui-copy);line-height:1.6}
#editor .content-facts dt,.trip-information .content-facts dt{font-size:var(--ui-help)}
#editor .info-list{font-size:var(--ui-copy);line-height:1.65}

@media(max-width:700px){#editor #phone-toggle{display:none}}

/* Day switching belongs to the title; route facts keep the full line below it. */
/* One itinerary of stays; existing lodging rows and editing dialogs remain shared. */
.map-workspace.lodgings-workspace{display:block;overflow-y:auto;overscroll-behavior:contain;background:var(--paper)}
.lodgings-page{max-width:880px;margin:0 auto;padding:24px 28px 56px}
.lodgings-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}
.lodgings-heading h1{font:400 1.75rem/1.2 Georgia,serif;letter-spacing:-.02em}
.lodgings-heading p{font-size:var(--ui-help,0.8125rem);color:var(--muted);margin-top:7px}
.lodgings-heading .secondary{flex:0 0 auto;min-height:44px}
.lodgings-stay{border-top:1px solid var(--line);padding:22px 0;scroll-margin-top:16px}
.lodgings-stay-heading{margin-bottom:12px}
.lodgings-stay-heading .eyebrow{font-size:0.6875rem}
.lodgings-stay-heading h2{font-size:1.25rem;line-height:1.3;margin:5px 0}
.lodgings-stay-heading p,.lodgings-empty{font-size:var(--ui-help,0.8125rem);color:var(--muted);line-height:1.5}
.lodgings-page .lodging-row{width:100%;font-size:var(--ui-copy,0.875rem);text-align:left;min-height:60px}
.lodgings-page .lodging-row>span:first-child{min-width:0;overflow-wrap:anywhere}
.lodgings-page .lodging-row .lodging-status{flex-shrink:0}
.lodgings-alternatives{margin:8px 0}
.lodgings-alternatives>summary{font-size:var(--ui-help,0.8125rem);color:var(--muted);padding:12px 0;min-height:44px;cursor:pointer}
.lodgings-add{min-height:44px;margin-top:6px;font-size:var(--ui-help,0.8125rem)}
.topbar #lodgings-open{display:inline-flex;align-items:center;gap:8px;text-decoration:none;min-height:44px;flex-shrink:0}
.topbar #lodgings-open[aria-pressed=true]{background:var(--soft);border-radius:8px}
@media(max-width:700px){
 .topbar #trips{display:none} /* The app icon already opens Meine Reisen. */
 .topbar #lodgings-open{display:grid;place-items:center;grid-column:3;grid-row:1/3;width:44px;min-width:44px;height:44px;padding:0;border:0}
 .lodgings-page{padding:20px 16px 40px}
 .lodgings-heading{gap:12px;margin-bottom:20px}
 .lodgings-heading h1{font-size:1.625rem}
 .lodgings-heading p{max-width:210px}
 .lodgings-heading .secondary{padding:9px 12px}
 .lodgings-page .lodging-row{gap:10px}
}
.journey-toolbar .context-navigation{flex:1;min-width:0}
.journey-toolbar .context-title-row{display:flex;align-items:center;gap:12px;min-width:0}
.journey-toolbar .context-title-row .context-heading{flex:0 1 auto;min-width:0;order:0}
.day-navigation .journey-toolbar .context-title-row .context-picker{width:auto;min-height:44px;padding:4px 2px}
.journey-toolbar .context-metadata{font:400 0.75rem/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--muted);margin:3px 2px 0;overflow-wrap:anywhere}
.journey-toolbar .context-title-row .day-stepper{display:flex;flex:0 0 auto;gap:6px;margin:0}
.journey-toolbar .context-title-row .day-stepper button{display:grid;place-items:center;width:44px;height:44px;min-width:44px;min-height:44px;padding:8px;background:var(--soft);border:1px solid var(--line);border-radius:8px;color:var(--green)}
.journey-toolbar .context-title-row .day-stepper button svg{display:block;width:26px;height:26px}
.journey-toolbar .context-title-row .day-stepper button:disabled{opacity:.35}
@media(hover:hover){.journey-toolbar .context-title-row .day-stepper button:not(:disabled):hover{border-color:var(--green)}}
@media(max-width:850px){
 .journey-toolbar .context-navigation{order:-1;flex:0 0 100%;width:100%}
 .journey-toolbar .context-title-row{gap:8px}
 .journey-toolbar .context-title-row .context-heading{flex:1;order:0}
 .day-navigation .journey-toolbar .context-title-row .context-picker{width:100%;min-height:44px}
 .journey-toolbar .context-navigation+.day-info{margin-left:auto}
}

/* Three labelled destinations below the content leave the trip title its own space. */
body,body:has(>.shared-conflict-notice:not([hidden])){grid-template-rows:auto auto auto minmax(0,1fr) auto}
.workspace-tabs{grid-row:5;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:var(--paper);border-top:1px solid var(--line);padding:6px max(8px,calc((100% - 640px)/2)) calc(6px + env(safe-area-inset-bottom,0px));z-index:800}
.workspace-tabs .workspace-tab{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;min-width:0;min-height:48px;padding:5px 10px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:0.75rem;line-height:1.35;text-decoration:none}
.workspace-tab .header-nav-icon{display:block;width:22px;height:22px;flex-shrink:0}
.workspace-tabs .workspace-tab[aria-current=page]{background:var(--soft);color:var(--green);font-weight:600}
.workspace-tab-label{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto;white-space:normal}
.topbar,.topbar:has(#curation-notification:not([hidden])){display:grid;grid-template-columns:40px minmax(0,1fr) 44px 44px;grid-template-rows:auto auto;column-gap:12px;row-gap:0;min-height:64px;padding:8px 20px}
.topbar:has(#curation-notification[hidden]){grid-template-columns:40px minmax(0,1fr) 44px}
.topbar .brand{grid-column:1;grid-row:1/3;min-width:40px;min-height:44px}
.topbar .brand-icon{width:40px;height:40px}
.topbar .header-trip-name{grid-column:2;grid-row:1;align-self:end;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;font-size:1.25rem;line-height:1.25;max-width:none}
.topbar .header-status{grid-column:2;grid-row:2;align-self:start;align-items:flex-start;justify-content:flex-start;flex-wrap:wrap;max-width:none;min-width:0;min-height:18px;margin:0;text-align:left}
.topbar #route-current-status,.topbar .header-status button{font-size:0.6875rem;line-height:18px;text-align:left}
.topbar #settings,.topbar:has(#curation-notification:not([hidden])) #settings{grid-column:-2/-1;grid-row:1/3;width:44px;min-width:44px;height:44px;padding:8px;margin:0}
.topbar #curation-notification{grid-column:3;grid-row:1/3;width:44px;min-width:44px;height:44px;padding:8px;justify-content:center}
.topbar .curation-notification-label{display:none}
.map-workspace.workspace-list{display:block;overflow-y:auto;overscroll-behavior:contain;background:var(--paper)}
.workspace-list-page{max-width:880px;margin:0 auto;padding:24px 28px 40px}
.workspace-list-page h1{font:400 1.75rem/1.25 Georgia,serif;margin-bottom:12px;letter-spacing:-.02em}
.workspace-list-page>.dialog-copy,.workspace-list-page>p{font-size:var(--ui-copy,0.875rem);line-height:1.6;margin:10px 0;color:var(--muted)}
.workspace-list-page .journey-choice strong{font-size:var(--ui-copy,0.875rem);line-height:1.5}
.workspace-list-page .journey-choice small{font-size:var(--ui-help,0.75rem);line-height:1.5}
.workspace-list-page .private-content-heading{margin-bottom:12px}
.workspace-list-page .private-content-heading h1{margin-bottom:0}
.toast{bottom:calc(76px + env(safe-area-inset-bottom,0px))}
@media(max-width:700px){
 .topbar,.topbar:has(#curation-notification:not([hidden])){grid-template-columns:32px minmax(0,1fr) 44px 44px;column-gap:8px;padding:8px}
 .topbar:has(#curation-notification[hidden]){grid-template-columns:32px minmax(0,1fr) 44px}
 .topbar .brand{min-width:32px}.topbar .brand-icon{width:32px;height:32px}
 .topbar .header-trip-name{font-size:1rem;line-height:1.25}
 .topbar #route-current-status,.topbar .header-status button{font-size:0.625rem}
 .workspace-list-page{padding:20px 16px 32px}.workspace-list-page h1{font-size:1.625rem}
}

/* Keep journey navigation with its title, and information with the map actions. */
.day-navigation .journey-toolbar .context-navigation{order:0;flex:1;width:100%}
.day-navigation .journey-toolbar .context-title-row{gap:8px}
.day-navigation .journey-toolbar .context-title-row .overview-link{flex:0 0 44px;width:44px;min-width:44px;height:44px;padding:8px;align-self:center}
.journey-toolbar .context-title-row .overview-link>span{display:none}
.journey-toolbar .context-facts-row{display:flex;align-items:center;gap:4px;min-width:0}
.journey-toolbar .context-facts-row .context-metadata{flex:1;min-width:0;margin:3px 2px}
.day-navigation .journey-toolbar .context-facts-row .quick-profile{margin-left:0}
/* Details is a labelled, warm-coloured action, separate from map features. */
.map-stage{--details-accent:#a14b16;--details-border:#cba77c}
.map-stage .map-details-open{position:absolute;right:24px;top:16px;z-index:700;display:flex;align-items:center;justify-content:center;gap:8px;width:118px;min-height:48px;padding:10px 12px;background:var(--warm);color:var(--ink);border:1px solid var(--details-border);border-radius:8px;box-shadow:0 2px 8px #20382c26;font-size:0.875rem;font-weight:600}
.map-details-open>svg{display:block;flex:0 0 24px;color:var(--details-accent)}
.map-stage .map-details-open:focus-visible{outline:2px solid var(--details-accent);outline-offset:3px}
.map-stage:has(.map-details-open) .map-tools{right:156px}
.map-stage:has(.trip-information:not([hidden])) .map-details-open{display:none}
@media(hover:hover){.map-stage .map-details-open:hover{border-color:var(--details-accent)}}
@media(max-width:850px){
 .map-stage .map-details-open{right:16px;top:12px}
 .map-stage:has(.map-details-open) .map-tools{right:146px}
}

/* Reading preferences apply to the entire workspace, including its WebKit shell. */
@supports (font: -apple-system-body){:root{font:-apple-system-body;line-height:1.5}}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
/* The close action stays reachable while long forms scroll underneath it. */
#editor>.dialog-head{position:sticky;top:-20px;z-index:20;background:var(--paper);padding-block:4px}
:where(.context-heading,.lodgings-heading>div,.private-content-heading>h1,.private-content-heading>h2){min-width:0}
:where(.workspace-list-page,.lodgings-page,.journey-choice,.lodging-row,.lodgings-stay-heading,.dialog-head){overflow-wrap:anywhere}
.workspace-tabs .workspace-tab{height:auto}
/* Larger reading sizes reflow controls instead of squeezing text between fixed icons. */
.topbar #route-current-status,.topbar .header-status button{line-height:1.5}
.workspace-tab-label{max-width:100%;overflow-wrap:anywhere;hyphens:auto}
.lodgings-heading{flex-wrap:wrap;align-items:flex-start}
.lodgings-heading>div{flex:1 1 12rem}
.journey-toolbar .context-title-row{flex-wrap:wrap}
.journey-toolbar .context-title-row .context-heading{flex:1 1 8rem;min-width:min(100%,8rem)}
.journey-toolbar .context-title-row .day-stepper{margin-left:auto}
/* A readable map minimum also handles landscape, short windows and large text. */
body:has(>.map-workspace:not(.workspace-list):not(.lodgings-workspace)){overflow-y:auto}
.map-workspace:not(.workspace-list):not(.lodgings-workspace){grid-template-rows:auto minmax(14rem,1fr)}
.workspace-tabs{position:sticky;bottom:0}
.map-stage .map-tools .map-controls button{overflow-wrap:anywhere}
/* Preview headings and the return action may occupy separate lines at large sizes. */
dialog.diary-media-viewer{--viewer-padding:20px}
.diary-viewer-head{flex-wrap:wrap;position:sticky;top:calc(-1 * var(--viewer-padding));z-index:5;background:var(--paper);padding-block:4px}
.diary-viewer-head h3{flex:0 0 auto;max-width:100%}
.diary-viewer-head button{flex:0 1 auto;max-width:100%;white-space:normal}
@media(max-width:540px){dialog.diary-media-viewer{--viewer-padding:16px}}
/* Forecast values stay legible when the reader enlarges text. */
.weather-control.weather-control-graphic,.rest-day-view .weather-control.weather-control-graphic{width:calc(var(--weather-columns,3) * 4.75rem + 1rem)}
.weather-column-condition{flex-wrap:wrap;white-space:normal}
.weather-column-icon{line-height:1.25}
.weather-column-condition strong{line-height:1.4}
.weather-column-wind{line-height:1.4}
.weather-control-footer,.weather-control-footer .weather-attribution{line-height:1.3}
/* The map's minimum must never compress a multi-line trip header. */
.topbar{padding-block:10px}
.topbar,.topbar:has(#curation-notification:not([hidden])){grid-template-rows:max-content max-content;min-height:64px}
body:has(>.map-workspace:not(.workspace-list):not(.lodgings-workspace)){grid-template-rows:max-content auto auto minmax(min-content,1fr) max-content}

/* Short viewports retain a usable list area rather than compressing the header. */
body,body:has(>.shared-conflict-notice:not([hidden])){grid-template-rows:max-content auto auto minmax(8rem,1fr) max-content;overflow-y:auto}
.account-user-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line,#dce1d7)}
.account-user-row>div{min-width:0;display:grid;gap:.3rem;overflow-wrap:anywhere}
.account-user-row small{color:var(--muted,#65736a)}
.account-user-row button{flex-shrink:0}
@media(max-width:480px){.account-user-row{align-items:flex-start;flex-direction:column}.account-user-row button{align-self:flex-start}}
