body{padding-bottom:calc(78px + env(safe-area-inset-bottom))}#home [hidden],.trip-shared [hidden]{display:none!important}.trip-panel{max-width:860px;margin:auto;padding:52px 28px 32px;color:#1c2532}.trip-panel h1{font-size:clamp(25px,5vw,40px);line-height:1.5;letter-spacing:-.035em;margin:8px 0 32px}.trip-panel h2{font-size:18px;margin:36px 0 20px;border-top:1px solid #d7d2c9;padding-top:26px}.trip-kicker{font-size:11px;letter-spacing:.2em;color:#667080}.trip-countdown{font-size:20px;font-weight:700}.trip-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.trip-panel label{display:grid;gap:8px;font-size:13px;font-weight:600;margin-bottom:16px}.trip-panel input,.trip-panel select,.trip-panel textarea{box-sizing:border-box;width:100%;min-width:0;min-height:46px;border:1px solid #c9c6bf;border-radius:4px;padding:10px;background:#fff;color:#1c2532;font:inherit}.trip-panel button,.trip-shared button,.trip-dialog button{min-height:44px;border:1px solid #c9c6bf;border-radius:4px;padding:10px 16px;background:transparent;color:#1c2532;font:inherit;cursor:pointer;margin:4px 8px 4px 0}.trip-panel button[type=submit],.trip-panel form>button:not([type]),.trip-dialog button{background:#1c2532;color:white;border-color:#1c2532}.trip-panel a{color:#3159d8;display:inline-block;min-height:44px;line-height:44px}.trip-list{padding:0;list-style:none}.trip-list li{display:flex;align-items:center;gap:20px;justify-content:space-between;padding:16px 0;border-bottom:1px solid #d7d2c9;overflow-wrap:anywhere}.trip-list li>span,.trip-list li>div{flex:1;min-width:0}.trip-list p{font-size:13px;margin:8px 0}.trip-list label{display:flex;align-items:center;margin:0;flex:1}.trip-list input[type=checkbox]{width:20px;min-height:20px;accent-color:#3159d8}.trip-list button{flex-shrink:0;font-size:12px}.trip-list time{font-weight:700;font-variant-numeric:tabular-nums}.trip-memo{white-space:pre-wrap}.trip-shared{max-width:860px;padding:20px 28px 30px;margin:auto;font-size:12px;color:#667080}.trip-nav{position:fixed;bottom:0;left:0;right:0;z-index:1000;display:flex;justify-content:center;border-top:1px solid #d7d2c9;background:#fcfaf6;padding-bottom:env(safe-area-inset-bottom)}.trip-nav button{position:relative;flex:1;max-width:180px;height:66px;border:0;background:transparent;color:#667080;font:600 12px/1.2 system-ui;cursor:pointer;padding:8px 2px}.trip-nav button[aria-current=page]{color:#1c2532}.trip-nav button[aria-current=page]:before{content:'';position:absolute;top:0;left:25%;right:25%;height:3px;background:#3159d8}.trip-dialog{max-width:440px;width:calc(100% - 64px);border:1px solid #d7d2c9;border-radius:8px;padding:24px;color:#1c2532;background:#fcfaf6;line-height:1.8}.trip-dialog::backdrop{background:#1c253266}.trip-dialog h2{font-size:22px}.trip-panel :focus-visible,.trip-nav :focus-visible,.trip-shared :focus-visible{outline:3px solid #3159d8;outline-offset:3px}@media(max-width:540px){.trip-grid{grid-template-columns:1fr}.trip-panel{padding:30px 20px}.trip-shared{padding:20px}.trip-countdown{font-size:17px}}

.trip-panel input,.trip-panel select,.trip-panel textarea{font-size:16px}
/* Keep focused controls above persistent navigation, including Safari auto-scroll. */
html{scroll-padding-top:100px;scroll-padding-bottom:calc(100px + env(safe-area-inset-bottom))}
.trip-panel input,.trip-panel select,.trip-panel textarea,.trip-panel button,.trip-shared button{scroll-margin-block:100px}


/* Reset the legacy global nav rule, which sets top:0 and vertical padding. */
.trip-nav{top:auto;height:calc(67px + env(safe-area-inset-bottom));padding:0 0 env(safe-area-inset-bottom);border-bottom:0;backdrop-filter:none;-webkit-backdrop-filter:none}
.trip-budget-note{font-size:13px;line-height:1.8;color:#667080;margin:14px 0 20px}
.trip-budget-summary{border-block:1px solid #d7d2c9;padding:18px 0;margin:24px 0}
.trip-budget-summary dl>div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin:8px 0}
.trip-budget-summary dt{font-size:13px;flex:1;min-width:0}
.trip-budget-summary dd{font-size:clamp(18px,4vw,24px);font-weight:700;font-variant-numeric:tabular-nums;margin:0;text-align:right;overflow-wrap:anywhere;max-width:65%}
.trip-budget-summary p,#trip-budget-save-status{font-size:12px;line-height:1.7;margin:14px 0 0;color:#667080}
.trip-budget-error,#trip-budget-remaining[data-over=true]{color:#a13528}
.trip-budget-error{font-size:13px;margin-bottom:12px}
.trip-panel [aria-invalid=true]{border-color:#a13528}

.hotel-comparison-facts{margin:16px 0;border-block:1px solid #d7d2c9;padding:8px 0}.hotel-comparison-facts>div{display:grid;grid-template-columns:130px 1fr;gap:12px;padding:9px 0}.hotel-comparison-facts dt{font-size:12px;color:#667080}.hotel-comparison-facts dd{margin:0;font-size:13px;overflow-wrap:anywhere}.hotel-comparison-facts .hotel-tag{display:inline-block;margin:2px 4px 2px 0}.trip-hotel-link{border-block:1px solid #d7d2c9;padding:0 0 18px;margin:24px 0;overflow-wrap:anywhere}.trip-hotel-link p{font-size:14px;line-height:1.8}.trip-hotel-link a{color:#3159d8}.trip-hotel-link button{max-width:100%}@media(max-width:540px){.hotel-comparison-facts>div{grid-template-columns:95px 1fr;gap:10px}}

#yohku-selected-details [data-trip-open]{display:inline-block;min-height:44px;max-width:100%;margin:8px 8px 0 0;padding:10px 14px;border:1px solid #b7b5af;border-radius:6px;background:#fcfaf6;color:#1c2532;font:600 14px/1.5 system-ui;cursor:pointer}#yohku-selected-details [data-trip-open]:focus-visible{outline:3px solid #3159d8;outline-offset:3px}

/* Approved travel-journal design. Scope all changes below the existing entrance. */
.trip-panel{max-width:760px;padding:42px 28px 32px;--trip-rule:#d7d2c9;--trip-muted:#626971;--trip-mint:#23806b}
.trip-panel h1{font-family:"Hiragino Mincho ProN","Yu Mincho","Noto Serif CJK JP",serif;font-size:clamp(28px,4.5vw,40px);font-weight:600;line-height:1.55;letter-spacing:-.045em;margin:8px 0 18px;text-wrap:balance}
.trip-kicker{color:var(--trip-muted);font-size:11px;letter-spacing:.18em;margin-bottom:12px}
.trip-context{font-size:12px;line-height:1.9;color:var(--trip-muted);overflow-wrap:anywhere;margin-bottom:20px}
.trip-panel h2{font-size:16px;font-weight:600;letter-spacing:.03em}
.trip-panel a{color:#215f54;text-underline-offset:4px;line-height:1.8;padding:10px 0}
.trip-panel button{font-size:14px;line-height:1.6}
.trip-panel .trip-primary{display:block;width:100%;min-height:52px;margin:20px 0 8px;border-radius:5px;font-weight:600;letter-spacing:.06em}
.trip-icon{width:22px;height:22px;flex:none;display:block}
.trip-nav button{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;font-size:10px;font-weight:500;color:#46515d}
.trip-nav button[aria-current=page]{color:#23806b}
.trip-nav button[aria-current=page]:before{background:#37a884;border-radius:0 0 2px 2px;height:3px;left:22%;right:22%}
.trip-nav .trip-icon{width:21px;height:21px}
.trip-day-photo{margin:20px 0 26px}
.trip-day-photo img{display:block;width:100%;height:auto;aspect-ratio:2/1;object-fit:cover}
.trip-day-photo figcaption{font-size:10px;color:var(--trip-muted);margin-top:5px;text-align:right}
.trip-section-heading{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin:24px 0 12px}
.trip-section-heading h2{margin:0;padding:0;border:0}
.trip-section-heading p{font-size:11px;color:var(--trip-muted)}
.trip-timeline{margin:8px 0 28px}
.trip-timeline li{position:relative;display:grid;grid-template-columns:56px minmax(0,1fr) 44px;align-items:start;gap:10px;padding:10px 0 18px 24px;border:0;min-height:68px}
.trip-timeline li::before{content:"";position:absolute;left:3px;top:20px;width:9px;height:9px;border-radius:50%;background:#37a884;box-shadow:0 0 0 3px var(--paper,#f4efe6);z-index:1}
.trip-timeline li:not(:last-child)::after{content:"";position:absolute;left:7px;top:25px;bottom:-22px;width:1px;background:#37a884}
.trip-timeline time{font-family:var(--lat,system-ui);font-size:15px;line-height:30px}
.trip-timeline li>span{font-size:15px;font-weight:500;line-height:1.9;padding-top:1px}
.trip-timeline button{padding:0;margin:-6px 0 0;min-width:44px;min-height:44px;border:0;border-radius:0;text-decoration:underline;text-underline-offset:4px;color:var(--trip-muted);font-size:11px;background:transparent}
.trip-timeline .trip-empty{display:block;padding:20px 0;color:var(--trip-muted);font-size:13px;line-height:1.9}
.trip-timeline .trip-empty::before,.trip-timeline .trip-empty::after{display:none}
#trip-timeline-form{grid-template-columns:100px minmax(0,1fr);gap:12px;padding:20px 0;border-block:1px solid var(--trip-rule)}
#trip-timeline-form label{margin:0}
#trip-timeline-form button{grid-column:2;margin:0;justify-self:end}
.trip-hotel-link h2{border:0;margin:24px 0 12px;padding:0}
#trip-day-hotel{padding:0 0 16px;margin:26px 0}
#trip-day-hotel a{display:flex;align-items:center;justify-content:center;background:#1c2532;color:#fff;padding:14px 16px;border-radius:4px;text-decoration:none;min-height:52px;font-size:13px;font-weight:500}
#trip-budget>.trip-budget-note{margin:0 0 22px}
.trip-budget-sheet{padding:26px 26px 18px;background:#fffcf7;border-radius:6px}
.trip-budget-summary{padding:0 0 22px;margin:0 0 18px;border:0;border-bottom:1px solid var(--trip-rule)}
.trip-budget-summary dt{font-size:12px;color:#46515d;margin-bottom:12px}
.trip-budget-summary dd{font-family:Georgia,"Hiragino Mincho ProN",serif;font-weight:500;font-size:clamp(32px,6.5vw,52px);line-height:1.15;letter-spacing:-.035em;text-align:left;max-width:100%;overflow-wrap:anywhere;color:#1c2532;font-variant-numeric:tabular-nums}
.trip-panel .trip-ledger-heading{margin:0 0 10px;padding:0;border:0;font-size:11px;color:var(--trip-muted);font-weight:400}
.trip-panel .trip-money-row{display:grid;grid-template-columns:22px minmax(0,1fr) minmax(90px,135px);gap:12px;align-items:center;min-height:62px;margin:0;font-size:13px;font-weight:500;line-height:1.7}
.trip-money-row>span{overflow-wrap:anywhere}
.trip-panel .trip-money-row input{background:transparent;border:0;border-bottom:1px solid #b7bbb9;border-radius:0;padding:8px 0 6px;text-align:right;font-family:var(--lat,system-ui);font-size:19px;font-weight:500;font-variant-numeric:tabular-nums;line-height:1.5;min-height:44px;appearance:textfield;-moz-appearance:textfield}
.trip-money-row input::-webkit-inner-spin-button,.trip-money-row input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.trip-money-row input::placeholder{font-size:13px;font-weight:400;color:#777d84;opacity:1}
.trip-budget-balance{border-top:1px solid var(--trip-rule);margin-top:22px;padding-top:12px}
.trip-budget-balance dl{display:flex;justify-content:space-between;gap:16px;align-items:baseline;margin-top:14px}
.trip-budget-balance dt{font-size:13px;flex:1;min-width:0}
.trip-budget-balance dd{font-family:Georgia,"Hiragino Mincho ProN",serif;font-size:27px;color:var(--trip-mint);text-align:right;max-width:65%;line-height:1.4;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
#trip-budget-progress{font-size:11px;line-height:1.8;color:var(--trip-muted);margin:18px 0 0}
.trip-budget-error:empty{display:none}
.trip-panel [aria-invalid=true]{border-bottom-color:#a13528}
.trip-budget-note{color:var(--trip-muted)}
.trip-shared{max-width:760px;border-top:1px solid #d7d2c9;margin-top:24px;line-height:1.8}
#analyzer #stock-mount .hotel-editorial-intro{margin:28px 0 18px}
#analyzer #stock-mount .hotel-editorial-intro h3{font:600 clamp(26px,4vw,34px)/1.5 "Hiragino Mincho ProN","Yu Mincho","Noto Serif CJK JP",serif;letter-spacing:-.035em;margin:0 0 10px;color:#1c2532}
#analyzer #stock-mount .hotel-editorial-intro p{font-size:13px;line-height:1.9;color:#626971}
#analyzer #stock-mount .h-card{padding:24px;margin-top:24px;border:1px solid #d7d2c9;border-radius:4px;background:#fffcf7;box-shadow:none;overflow:hidden}
#analyzer #stock-mount .h-card.recommended{border-left:1px solid #d7d2c9}
#analyzer #stock-mount .h-card .h-top{display:block}
#analyzer #stock-mount .h-card .h-top b{font:600 clamp(20px,3vw,25px)/1.6 "Hiragino Mincho ProN","Yu Mincho","Noto Serif CJK JP",serif;color:#1c2532;overflow-wrap:anywhere}
#analyzer #stock-mount .h-card .h-yen{display:block;font-size:26px;font-weight:600;line-height:1.6;color:#1c2532;letter-spacing:-.025em;margin-top:8px}
#analyzer #stock-mount .hotel-photo{margin:-24px -24px 20px;background:#e8e3da}
#analyzer #stock-mount .hotel-photo img{display:block;width:100%;height:auto;max-height:380px;object-fit:contain;aspect-ratio:16/10}
#analyzer #stock-mount .hotel-photo figcaption{padding:7px 14px;font-size:10px;line-height:1.6;color:#5c625f;background:#f6f2e9}
.hotel-photo-fallback{display:none}
#analyzer #stock-mount .hotel-photo.is-unavailable{margin:0 0 14px;background:transparent}
.hotel-photo.is-unavailable figcaption{display:none}
.hotel-photo.is-unavailable .hotel-photo-fallback,.hotel-photo-missing{display:block;font-size:11px;color:#626971;line-height:1.7;margin-bottom:14px}
#analyzer #stock-mount .hotel-comparison-facts{border-block:1px solid #d7d2c9;margin:18px 0;padding:8px 0}
#analyzer #stock-mount .hotel-comparison-facts>div{grid-template-columns:112px minmax(0,1fr);gap:12px;padding:9px 0}
#analyzer #stock-mount .hotel-comparison-facts dt{font-size:11px;color:#626971}
#analyzer #stock-mount .hotel-comparison-facts dd{font-size:13px;line-height:1.9}
#analyzer #stock-mount .hotel-comparison-facts .hotel-tag{border:0;background:transparent;padding:0;margin:0 10px 3px 0;color:#1c2532;border-radius:0;font-size:12px}
#analyzer #stock-mount .hotel-reason{background:transparent;border:0;border-radius:0;padding:4px 0 10px;font-size:13px;line-height:1.9;color:#1c2532}
#analyzer #stock-mount .h-links{display:flex;flex-direction:column;gap:8px;margin-top:18px}
#analyzer #stock-mount .h-links a.hotel-plan-link{background:#1c2532;color:#fff;text-decoration:none;padding:12px 14px;border-radius:4px;justify-content:center;line-height:1.8;font-size:13px}
#analyzer #stock-mount .h-links a:not(.hotel-plan-link){font-size:12px;color:#215f54;line-height:1.9;min-height:44px;align-items:center}
@media(max-width:540px){
 .trip-panel{padding:26px 20px 24px}.trip-panel h1{font-size:29px;line-height:1.5;margin-bottom:16px}.trip-context{font-size:11px;margin-bottom:16px}
 .trip-day-photo{margin-inline:-20px}.trip-day-photo figcaption{padding-inline:20px}.trip-day-photo img{aspect-ratio:1.85/1}
 .trip-budget-sheet{padding:22px 18px 18px;margin-inline:-2px}.trip-budget-summary dd{font-size:44px}
 .trip-panel .trip-money-row{grid-template-columns:21px minmax(0,1fr) 109px;gap:10px;font-size:12px;min-height:62px}.trip-budget-balance dd{font-size:25px}
 .trip-shared{margin-inline:20px;padding:20px 0}.trip-shared button{font-size:11px}
 #analyzer #stock-mount .h-card{padding:20px}#analyzer #stock-mount .hotel-photo{margin:-20px -20px 18px}
 #analyzer #stock-mount .hotel-comparison-facts>div{grid-template-columns:88px minmax(0,1fr);gap:10px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Keep the day agenda actionable before the decorative image. */
#trip-day .trip-day-photo { margin:32px 0 24px; }
#trip-day .trip-day-photo img { max-height:220px; border-radius:6px; }
#trip-day .trip-day-photo figcaption { font-size:12px; line-height:1.7; }
#trip-day .trip-section-heading p { font-size:12px; }
.trip-nav button { font-size:11px; }
@media(max-width:540px) {
 #trip-day .trip-day-photo { margin:28px 0 20px; }
 #trip-day .trip-day-photo img { max-height:160px; aspect-ratio:2/1; }
 #trip-day .trip-day-photo figcaption { padding-inline:0; }
 #trip-timeline-form { grid-template-columns:88px minmax(0,1fr); }
 #trip-timeline-form button { grid-column:1 / -1; width:100%; }
}

/* Keep retry reachable after a hotel lookup fails or expires. */
#analyzer #stock-mount [data-hotel-refresh] {
 display:inline-flex; align-items:center; justify-content:center;
 min-height:48px; min-width:44px; max-width:100%; padding:12px 20px;
 border:1px solid #1c2532; border-radius:4px; background:#1c2532; color:#fff;
 font-family:inherit; font-size:13px; font-weight:600; line-height:1.6;
 text-align:center; cursor:pointer;
}
#analyzer #stock-mount [data-hotel-refresh]:focus-visible { outline:3px solid #3159d8; outline-offset:3px; }
#analyzer #stock-mount [data-hotel-refresh]:disabled { opacity:.6; cursor:wait; }
@media(max-width:540px) { #analyzer #stock-mount [data-hotel-refresh] { width:100%; } }

/* Oshi schedule overview/editor. Keep every rule scoped to this tab. */
#trip-oshi { max-width:760px; padding-top:20px; padding-bottom:24px; }
#trip-oshi > .trip-kicker { margin:0 0 4px; }
#trip-oshi > h1 { margin:4px 0 12px; }
#trip-oshi #trip-countdown { margin:8px 0 12px; }
#trip-oshi #trip-plan-overview,
#trip-oshi #trip-plan-editor { min-width:0; }
#trip-oshi #trip-plan-empty {
 margin:12px 0; padding:18px 20px; border:1px dashed #b7bbb9;
 border-radius:6px; background:#fffcf7; line-height:1.9; overflow-wrap:anywhere;
}
#trip-oshi #trip-plan-empty p { margin:8px 0; color:var(--trip-muted,#626971); }
#trip-oshi #trip-plan-cards { display:grid; gap:12px; margin:12px 0; padding:0; list-style:none; }
#trip-oshi .trip-plan-card {
 display:block; min-width:0; padding:16px; border:1px solid var(--trip-rule,#d7d2c9);
 border-radius:6px; background:#fffcf7; overflow-wrap:anywhere;
}
#trip-oshi .trip-plan-card[data-current=true] { border-left:4px solid var(--trip-mint,#23806b); padding-left:13px; }
#trip-oshi .trip-plan-card h3 {
 margin:0 0 8px; font-family:"Hiragino Mincho ProN","Yu Mincho","Noto Serif CJK JP",serif;
 font-size:22px; font-weight:600; line-height:1.6; color:#1c2532;
}
#trip-oshi .trip-plan-card > p { margin:6px 0; }
#trip-oshi .trip-plan-meta { margin:6px 0; font-size:13px; line-height:1.9; color:var(--trip-muted,#626971); }
#trip-oshi .trip-card-actions { display:grid; grid-template-columns:repeat(auto-fit,minmax(110px,1fr)); gap:10px; margin-top:12px; }
#trip-oshi .trip-card-actions button { width:100%; margin:0; padding:10px 12px; }
#trip-oshi button { min-height:44px; max-width:100%; overflow-wrap:anywhere; }
#trip-oshi #trip-add-plan { display:block; width:100%; min-height:48px; margin:12px 0 0; border-color:#23806b; color:#215f54; background:#fffcf7; }
#trip-oshi:has(#trip-plan-empty:not([hidden])) #trip-add-plan { background:#23806b; color:#fff; }
#trip-oshi .trip-plan-back { margin:0 0 4px; padding:10px 0; border:0; text-decoration:underline; text-underline-offset:4px; color:#215f54; }
#trip-oshi .trip-plan-intro { margin:0 0 8px; font-size:14px; line-height:1.9; color:var(--trip-muted,#626971); }
#trip-oshi #trip-plan { min-width:0; }
#trip-oshi .trip-plan-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 18px; margin:14px 0; }
#trip-oshi .trip-plan-fields label { min-width:0; margin:0; line-height:1.7; }
#trip-oshi #trip-plan input:not([type=radio]),
#trip-oshi #trip-plan select,
#trip-oshi #trip-plan textarea { width:100%; min-width:0; max-width:100%; min-height:48px; font-size:16px; }
#trip-oshi #trip-plan input,
#trip-oshi #trip-plan select,
#trip-oshi #trip-plan textarea { scroll-margin-block:110px; }
#trip-oshi .trip-plan-details { margin:18px 0; border-block:1px solid var(--trip-rule,#d7d2c9); }
#trip-oshi .trip-plan-details summary {
 display:list-item; min-height:48px; box-sizing:border-box; padding:13px 4px;
 font-size:14px; font-weight:600; line-height:1.7; cursor:pointer;
}
#trip-oshi .trip-plan-details[open] { padding-bottom:8px; }
#trip-oshi .trip-plan-details[open] summary { margin-bottom:8px; }
#trip-oshi .trip-plan-details .trip-plan-fields { margin-top:12px; }
#trip-oshi .trip-result-options {
 display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px;
 min-width:0; margin:22px 0; padding:0; border:0;
}
#trip-oshi .trip-result-options legend { margin-bottom:10px; padding:0; font-size:13px; font-weight:600; line-height:1.7; }
#trip-oshi .trip-result-options label {
 display:flex; align-items:center; justify-content:center; gap:7px;
 min-width:0; min-height:48px; box-sizing:border-box; margin:0; padding:9px 6px;
 border:1px solid #c9c6bf; border-radius:4px; background:#fffcf7; cursor:pointer;
}
#trip-oshi .trip-result-options input[type=radio] {
 flex:none; width:18px; height:18px; min-width:18px; min-height:18px; margin:0; padding:0;
 appearance:auto; -webkit-appearance:auto; accent-color:#23806b;
}
#trip-oshi .trip-result-options span { min-width:0; font-size:14px; line-height:1.5; }
#trip-oshi .trip-result-options label:has(input:checked) { border-color:#23806b; background:#edf5f0; color:#215f54; }
#trip-oshi .trip-result-options label:focus-within { outline:3px solid #3159d8; outline-offset:3px; }
#trip-oshi .trip-plan-actions {
 position:sticky; bottom:calc(75px + env(safe-area-inset-bottom)); z-index:20;
 display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px 12px;
 margin:18px 0 12px; padding:16px; border:1px solid var(--trip-rule,#d7d2c9);
 border-radius:6px; background:#fcfaf6; box-shadow:0 -4px 16px #1c25320a;
}
#trip-oshi .trip-plan-actions #trip-plan-save { width:100%; min-height:48px; margin:0; }
#trip-oshi .trip-plan-actions #trip-cancel-plan { min-height:48px; margin:0; padding:10px 14px; }
#trip-oshi #trip-plan-hint,
#trip-oshi #trip-plan-save-status { grid-column:1 / -1; margin:0; font-size:12px; line-height:1.8; overflow-wrap:anywhere; }
#trip-oshi #trip-plan-hint { color:var(--trip-muted,#626971); }
#trip-oshi #trip-plan-save-status { color:#215f54; }
#trip-oshi #trip-plan-save-status:empty { display:none; }
#trip-oshi #trip-plan-save-status[data-error=true],
#trip-oshi #trip-plan-save-status[role=alert] { color:#a13528; }
#trip-oshi button:disabled { opacity:.55; cursor:not-allowed; }
#trip-oshi summary:focus-visible,
#trip-oshi button:focus-visible { outline:3px solid #3159d8; outline-offset:3px; }
/* Avoid moving actions when focus changes during a pointer click. Small viewports use normal flow below. */
@media(max-width:540px) {
 #trip-oshi { padding-top:18px; }
 #trip-oshi .trip-plan-fields { grid-template-columns:minmax(0,1fr); gap:16px; }
 #trip-oshi #trip-plan-empty { padding:16px; }
 #trip-oshi .trip-plan-card { padding:14px; }
 #trip-oshi .trip-plan-card[data-current=true] { padding-left:11px; }
 #trip-oshi .trip-plan-card h3 { font-size:21px; }
 #trip-oshi .trip-plan-actions { gap:10px 8px; padding:12px; }
 #trip-oshi .trip-plan-actions #trip-cancel-plan { padding-inline:10px; }
}
@media(max-height:560px) {
 #trip-oshi .trip-plan-actions { position:static; }
}

#trip-oshi #trip-plan-editor-title{margin:4px 0 8px;padding:0;border:0;font-size:22px}
#trip-oshi:has(#trip-plan-editor:not([hidden]))>.trip-kicker,#trip-oshi:has(#trip-plan-editor:not([hidden]))>h1{display:none}
#trip-oshi .trip-plan-badge{display:inline-block;color:#215f54;font-size:12px;font-weight:600;margin-bottom:8px}
#trip-oshi #trip-archive-cards{display:grid;gap:12px;margin:8px 0 0;padding:0;list-style:none}
#trip-oshi #trip-archived-plans{padding:0}
#trip-oshi #trip-archived-plans > h2{margin:8px 0 8px;padding-top:8px}
#trip-oshi #trip-plan-overview-status:empty,#trip-oshi #trip-plan-edit-context:empty{display:none}
#trip-oshi #trip-plan-overview-status{font-size:13px;line-height:1.8;margin:8px 0;overflow-wrap:anywhere}
#trip-oshi #trip-plan-editor{padding-bottom:24px}

#trip-oshi #trip-plan input,#trip-oshi #trip-plan select,#trip-oshi #trip-plan textarea{scroll-margin-bottom:280px}

/* Three preparation entries; reuse existing panels and form elements. */
.trip-flow{max-width:860px;margin:0 auto;padding:20px 20px 12px;color:#1c2532}
.trip-flow-main{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.trip-flow button{font:600 14px/1.5 system-ui;color:#46515d;background:#fffcf7;border:1px solid #c9c6bf;border-radius:8px;min-height:48px;padding:10px 6px;cursor:pointer}
.trip-flow button[aria-current=page]{background:#e2f1e9;color:#185344;border-color:#23806b}
.trip-flow-tools{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}
.trip-flow-tools button{font-size:12px;min-height:44px;padding:6px 14px;background:transparent;border-color:transparent;text-decoration:underline;text-underline-offset:4px}
.trip-flow :focus-visible,.trip-record-details summary:focus-visible,.trip-route-help summary:focus-visible{outline:3px solid #3159d8;outline-offset:3px}
.trip-nav button{max-width:240px;font-size:12px}
.trip-panel{padding-top:24px}
#trip-return-context-inputs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 22px}
#trip-return-context-inputs #stayVenueField,#trip-return-context-inputs #eventChoicesL{grid-column:1/-1}
#trip-return-context-inputs .form-row{min-width:0}
#trip-return-context-inputs label{font-weight:600}
#trip-return-context-inputs #planDateHint,#trip-return-context-inputs .season-note{font-size:12px;line-height:1.7}
#trip-return .plan-step{display:none}
#trip-return .plan-tools{display:block;margin:0;padding:0}
#trip-return .maps-route-panel{display:block;padding:0;border:0;background:transparent;box-shadow:none}
#trip-return .planning-tool-intro{padding:0}
#trip-return .planning-tool-body{padding:0}
#trip-return .maps-route-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
#trip-return .maps-route-fields>*{min-width:0}
#trip-return .maps-station-field{position:relative}
#trip-return .maps-station-feedback{position:absolute;left:0;right:0;z-index:10;pointer-events:none}
#trip-return .maps-station-list{max-height:288px;overflow-y:auto;overscroll-behavior:contain;border:1px solid #cbc9c2;border-radius:4px;margin-top:6px;background:#fffdfa;pointer-events:auto}
#trip-return .maps-station-list[hidden],#trip-return .maps-station-status:empty{display:none}
#trip-return .maps-station-option{min-height:48px;padding:10px 12px;cursor:pointer;overflow-wrap:anywhere;border-bottom:1px solid #e9e6df}
#trip-return .maps-station-option:last-child{border-bottom:0}
#trip-return .maps-station-option.is-active,#trip-return .maps-station-option:hover{background:#e8efe8;box-shadow:inset 3px 0 #315447}
#trip-return .maps-station-name{display:block;font-size:15px;font-weight:500;line-height:1.5}
#trip-return .maps-station-detail{display:block;font-size:12px;line-height:1.6;color:#595b55;margin-top:3px}
#trip-return .maps-station-help,#trip-return .maps-station-status{font-size:12px;line-height:1.75;margin:7px 0 0;color:#595b55}
#trip-return .maps-station-status:not(:empty){padding:8px 10px;border:1px solid #cbc9c2;border-radius:4px;background:#fffdfa}
#trip-return .maps-route-panel h2{margin-top:24px;padding-top:22px}
#trip-return .maps-route-link{display:block;width:100%;box-sizing:border-box;text-align:center;margin:12px 0;padding:12px 16px;border:1px solid #b7c9c0;border-radius:6px;line-height:1.7;font-size:14px}
#trip-return a.maps-route-link{background:#215f54;color:white;text-decoration:none}
#trip-return .maps-route-link[aria-disabled=true]{background:#eef0ed;color:#64716b;cursor:default}
#trip-return .maps-route-hint{font-size:13px;line-height:1.8;margin:18px 0;padding:12px;background:#f5efdf;border-radius:6px}
#trip-return .maps-route-note{font-size:12px;line-height:1.8;margin:8px 0 16px}
.trip-route-help summary,.trip-record-details>summary{cursor:pointer;min-height:44px;padding:12px 0;font-weight:600;font-size:14px}
.trip-route-help{font-size:12px;color:#515968}
.trip-weather{font-size:12px!important;color:#215f54!important;line-height:1.6!important;min-height:36px!important;display:inline-block;padding:8px 0!important;text-underline-offset:3px}
.trip-day-return{display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px;margin-bottom:24px}
.trip-day-return #trip-day-return-note{font-weight:600}
.trip-record-details{border-top:1px solid #d7d2c9;margin-top:24px}
#trip-record{padding:0}
#trip-record h2{margin:8px 0 20px;padding:0;border:0}
#trip-record .trip-countdown{font-size:15px}
@media(max-width:540px){.trip-flow{padding:14px 16px 10px}.trip-flow-main{gap:5px}.trip-flow-main button{font-size:12px;padding:10px 2px}.trip-nav button{font-size:11px}#trip-return-context-inputs,#trip-return .maps-route-fields{grid-template-columns:minmax(0,1fr);gap:10px}.trip-panel{padding-top:20px}#trip-return .maps-route-panel h2{margin-top:20px}}

/* Local screenshots are separate from handwritten return notes. */
.return-shot{background:#fff;border:1px solid #d7d2c9;border-radius:14px;padding:22px;margin:20px 0;color:#1c2532;overflow-wrap:anywhere}
.return-shot-context{font-size:13px;color:#515968;margin:0 0 14px}
.return-shot-empty{font-size:15px;line-height:1.75;margin:0 0 18px}
.return-shot button,.return-shot a{font:inherit;min-height:44px}
.return-shot-pick{display:block;width:100%;border:1px solid #1c2532;border-radius:8px;background:#1c2532;color:#fff;padding:14px 16px;cursor:pointer;font-weight:650}
.return-shot-pick:disabled{opacity:.5;cursor:default}
.return-shot-preview{display:block;border:1px solid #d7d2c9;border-radius:8px;overflow:hidden;background:#f4efe6;margin:16px 0}
.return-shot-preview img{display:block;width:100%;max-height:400px;object-fit:contain;margin:0}
.return-shot-open{display:inline-flex;align-items:center;margin:0 16px 8px 0;color:#245d59}
.return-shot-delete,.return-shot-retry,.return-shot-confirm button{padding:10px 14px;border:1px solid #d7d2c9;border-radius:8px;background:#fff;color:#1c2532;cursor:pointer}
.return-shot-confirm{padding:12px;border:1px solid #d7d2c9;border-radius:8px;margin:12px 0}
.return-shot-confirm button{margin:4px 8px 4px 0}
.return-shot-status{font-size:14px;font-weight:600;line-height:1.7;margin:14px 0 0}
.return-shot-note{font-size:12px;color:#515968;line-height:1.7}
.return-shot :focus-visible{outline:3px solid #718bdc;outline-offset:3px}
.return-shot [hidden]{display:none!important}
.return-shot .return-shot-heading{font-size:20px;line-height:1.4;margin:0 0 12px;padding:0;border:0}
.return-shot-gallery{display:grid;gap:14px;margin:16px 0}
.return-shot-card{display:grid;grid-template-columns:112px minmax(0,1fr);gap:10px 14px;align-items:center;border:1px solid #d7d2c9;border-radius:10px;padding:12px;min-width:0}
.return-shot-card .return-shot-preview{margin:0;width:112px}
.return-shot-card .return-shot-preview img{width:100%;height:112px;max-height:112px;object-fit:contain}
.return-shot-card-label{font-size:14px;font-weight:650;line-height:1.6;margin:0;min-width:0}
.return-shot-card-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.return-shot-card-actions .return-shot-open{margin:0 6px 0 0}
.return-shot-pin{padding:10px 14px;border:1px solid #d7d2c9;border-radius:8px;background:#fff;color:#1c2532;cursor:pointer}
.return-shot-pin[aria-pressed=true]{border-color:#245d59;background:#eaf4ed;color:#245d59}
.return-shot-card-actions button{min-height:44px;margin:0;font-size:14px}
.return-shot-card-actions button:disabled{opacity:.5;cursor:default}
@media(max-width:360px){.return-shot-card{grid-template-columns:88px minmax(0,1fr);padding:10px;gap:8px}.return-shot-card .return-shot-preview{width:88px}.return-shot-card .return-shot-preview img{height:88px;max-height:88px}.return-shot-card-actions{gap:6px}.return-shot-card-actions button{padding:10px 12px}}
.trip-return-context-picker,.trip-return-legacy,.return-legacy{margin:18px 0;border-top:1px solid #d7d2c9;padding-top:8px}
.trip-return-context-picker>summary,.trip-return-legacy>summary,.return-legacy>summary{font-size:14px;line-height:1.7;cursor:pointer;padding:10px 0}
.trip-return-context-picker{margin:12px 0 4px}
.trip-return-context-picker>summary{font-weight:600}
#trip-return-context-inputs .trip-weather{display:none}
#trip-return-legacy-end .form-row{margin-top:16px}
.return-weather{font-size:13px;margin:8px 0}
@media(max-width:480px){.return-shot{padding:18px 16px;margin:16px 0}.return-shot-preview img{max-height:320px}}

.trip-panel .return-shot-pick{background:#1c2532;color:#fff;border-color:#1c2532;font-weight:650;width:100%}
