:root{--paper:#f7efdb;--card:#fffaf0;--sea:#254b82;--sky:#b9d4dc;--orange:#ed8d2a;--ink:#173b4b;--line:#ded4b9;--font-body:system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;color-scheme:light}
html{background:var(--paper);scroll-padding-top:85px}body{background:var(--paper)!important;color:var(--ink);font:16px/1.7 var(--font-body);margin:0;overflow-x:clip}*,*:before,*:after{box-sizing:border-box}[hidden]{display:none!important}button,input,textarea,select{font:inherit}button,a,input,select,summary{touch-action:manipulation}button,select{min-height:44px}button{cursor:pointer;border:1px solid var(--line);background:var(--card);color:var(--sea);border-radius:10px;padding:8px 13px}button:disabled{opacity:.5;cursor:wait}a{color:var(--sea);text-underline-offset:4px}input,textarea,select{max-width:100%;border:1px solid #aba384;border-radius:9px;padding:10px;background:#fffdf7;color:var(--ink)}textarea{width:100%}:focus-visible{outline:3px solid var(--orange);outline-offset:3px}.topbar{height:64px;position:sticky;top:0;z-index:30;background:var(--paper);border-bottom:1px solid var(--line);padding:8px max(16px,calc((100vw - 1000px)/2));display:flex;justify-content:flex-start;gap:16px}.topbar .wordmark{font-size:17px;letter-spacing:.07em}.primary-navigation{display:none!important}#menu-open{font-size:22px;border:0;padding:4px 10px;min-width:44px}main,.mobile-view{max-width:1000px;margin:0 auto;padding:0 24px 70px}.hero{margin:24px 0 34px;padding:38px!important;min-height:240px!important;background:var(--sky)!important;border-radius:24px;display:grid;grid-template-columns:minmax(0,1fr) 190px;column-gap:25px;text-align:left;position:relative;overflow:hidden}.hero:before,.hero:after{display:none!important}.hero-mosaic{grid-column:2;grid-row:1/4;width:100%;height:auto;align-self:center;aspect-ratio:262/264;object-fit:contain;border-radius:14px;box-shadow:5px 5px 0 #e9a440}.hero__eyebrow{font-size:11px;letter-spacing:.16em;align-self:end;color:var(--sea)}#trip-title{font-size:clamp(26px,5vw,48px);line-height:1.3;font-weight:850;margin:12px 0;color:var(--ink)}#trip-date{font-size:14px;color:var(--ink);margin:0}.title-icon{width:23px;height:23px;flex-shrink:0;vertical-align:-4px;margin-right:8px;color:var(--sea)}#trip-title .title-icon{width:28px;height:28px}.section{padding:0;margin:28px 0 40px}.section-heading{margin-bottom:17px}.section-heading h2{font-size:23px;color:var(--ink)}.section-kicker{color:#906637;font-size:10px;letter-spacing:.2em}.section-index{font-size:11px}.mobile-view>h1{font-size:29px;margin:28px 0 20px}.content-card,.phrase-card,.focus-overview,.focus-card,.paid-row{background:var(--card);border:1px solid var(--line);border-radius:17px;padding:22px;margin:16px 0;box-shadow:0 3px 0 #ded4b922}.content-card p,.focus-body p{margin:12px 0;overflow-wrap:anywhere}.content-card summary,.focus-card summary{font-weight:750;cursor:pointer;list-style:none;min-height:34px}.content-card summary:after{content:'＋';float:right}.content-card[open] summary:after{content:'−'}.content-card summary::-webkit-details-marker,.focus-card summary::-webkit-details-marker{display:none}small,.source-note{color:#586b6a;font-size:12px;line-height:1.7}small{display:block}.focus-overview h2{font-size:19px;margin:0 0 16px}.focus-shortcuts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.focus-shortcuts button{padding:12px 5px;background:#f7efd9;font-size:12px;display:flex;align-items:center;flex-direction:column;gap:5px}.focus-shortcuts .title-icon{margin:0;width:22px}.focus-card{padding:0;scroll-margin-top:80px}.focus-card>summary{padding:19px 18px;display:flex;align-items:center;gap:3px;font-size:16px}.focus-body{padding:0 18px 20px}.fold-label{margin-left:auto;font-size:10px;font-weight:400;color:#687976}.now-schedule{list-style:none;padding:0;margin:0}.now-schedule li{border-bottom:1px solid var(--line);padding:12px 0;display:grid;grid-template-columns:90px 1fr;gap:10px}.spend-total{font-size:34px;color:var(--sea)}#now-todo-add{display:flex;align-items:end;gap:7px}#now-todo-add label{flex:1;font-size:12px}#now-todo-add input{display:block;width:100%}.pending-todo{display:flex;gap:8px;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line)}.pending-todo label{display:flex;gap:9px;align-items:center;overflow-wrap:anywhere}.pending-todo button{flex-shrink:0}#day-jump{display:flex;gap:7px;overflow-x:auto;padding:7px 0 18px;scrollbar-width:thin}#day-jump button{min-width:58px;flex-shrink:0;font-size:14px;border-bottom:3px solid var(--orange)}#day-jump small{font-size:10px}#timeline{padding:0;border:none}.day-card{padding:0;margin:12px 0;background:var(--card);border:1px solid var(--line);border-radius:15px;overflow:hidden;scroll-margin-top:80px}.day-card:before,.day-dot{display:none}.day-toggle{width:100%;padding:21px 20px!important;text-align:left;border:0;border-radius:0;background:transparent;display:flex;justify-content:space-between;align-items:center}.day-meta{color:var(--sea);font-size:11px;letter-spacing:.06em}.day-title{font-size:19px;line-height:1.5;margin-top:6px;color:var(--ink)}.day-locations{font-size:12px;display:none}.day-chevron{color:var(--sea)}.day-card.is-today{border:2px solid var(--orange);box-shadow:0 0 0 3px #ed8d2a22}.day-detail{padding:0 20px 22px}.schedule{padding:0;list-style:none}.schedule-item{display:grid;grid-template-columns:85px minmax(0,1fr);gap:12px;padding:18px 0;border-bottom:1px solid var(--line)}.schedule-time{font-size:12px;overflow-wrap:anywhere}.schedule-content{min-width:0}.schedule-text{font-size:15px;white-space:pre-line}.sight-title{border:0;padding:0;min-height:32px;display:inline;text-align:left;background:none;font-weight:700;text-decoration:underline;text-decoration-color:#b9d4dc;text-underline-offset:4px;line-height:1.8;overflow-wrap:anywhere}.schedule-map-links{display:none}.direct-map{display:block;font-size:12px;margin-top:9px}.visit-badge{border-radius:3px;display:inline-block;font-size:11px;line-height:1.5;padding:4px 8px;margin:8px 5px 5px 0;font-weight:700}.visit-badge.paid{background:#2e714c;color:white}.visit-badge.outside{background:#454c50;color:white}.visit-badge.free{background:#d4e7ee;color:#194b61}.ticket-status{font-size:11px;color:#596337}.reservation-note{font-size:12px;background:#f3e8cb;padding:9px;border-radius:6px}.trip-edit-actions{display:flex;flex-wrap:wrap;gap:5px}.trip-edit-actions button,.trip-edit-actions a{min-height:34px;font-size:11px;padding:5px 8px}.trip-day-editor{border-top:1px solid var(--line);padding-top:14px}.trip-day-editor>button:first-child{background:var(--sea);color:white}.trip-editor-status{font-size:12px;margin:8px 0}.trip-shared-refresh{font-size:12px}.daily-route{margin-top:24px}.daily-route h3{font-size:17px}.overview-three-maps{display:flex!important;overflow-x:auto;scroll-snap-type:x mandatory;gap:0;scrollbar-width:thin;border:1px solid var(--line);border-radius:18px;background:var(--card)}.overview-country-map{flex:0 0 100%;width:100%;min-width:0;scroll-snap-align:start;padding:15px;margin:0!important;border:none!important}.overview-country-map h3{font-size:14px}.map-pages{display:flex;gap:7px;justify-content:center;margin-top:10px}.map-pages button{font-size:11px;padding:5px 9px;min-height:34px}.map-pages [aria-pressed=true]{background:var(--sea);color:#fff}.travel-map{border-radius:10px}.travel-map-scroll{max-width:100%}.travel-map-canvas{min-width:0!important;width:100%!important}.map-utility{font-size:10px;flex-wrap:wrap}.map-utility button{font-size:11px}.daily-weather{background:#e8f0ed;border:1px solid #b9d4dc;border-radius:13px;padding:15px;margin-top:20px}.daily-weather header{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.daily-weather h3{font-size:16px}.weather-cities{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.weather-city{background:var(--card);min-width:0;padding:12px 8px}.weather-city strong{font-size:11px}.weather-city small{font-size:10px}.weather-credit{font-size:10px}.paid-row{display:grid;grid-template-columns:minmax(0,1fr) 130px;gap:16px}.paid-row h3{font-size:16px;margin:0}.paid-row p{font-size:12px}.paid-row select{width:100%;font-size:13px}.paid-row label{font-size:12px}.paid-row.declined .paid-copy{text-decoration:line-through;opacity:.55}.phrase-group{margin:24px 0}.phrase-group>h2{font-size:20px}.phrase-card h3{font-size:16px;margin:0 0 10px}.phrase-card p{margin:6px 0;font-size:14px}.phrase-card small{display:inline-block;width:26px;color:#697452;font-size:10px}.search-label{display:block}.search-label input{display:block;width:100%;margin-top:8px}.search-result{display:flex;flex-direction:column;gap:8px;text-align:left;width:100%;margin:12px 0;padding:18px;line-height:1.7}.search-result strong{font-size:14px}.search-result span{font-size:12px;color:#536367}.search-highlight{outline:3px solid var(--orange);outline-offset:3px}dialog{background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:20px;padding:24px;max-width:min(600px,calc(100vw - 24px));max-height:85dvh;overflow:auto}dialog::backdrop{background:#173b4b88;backdrop-filter:blur(3px)}dialog header{display:flex;justify-content:space-between;align-items:center;gap:8px}dialog h2{font-size:21px}dialog label{display:block}#site-menu{position:fixed;inset:0 auto 0 0;margin:0;border-radius:0 23px 23px 0;width:300px;max-width:86vw;height:100dvh;max-height:100dvh;border-right:7px solid var(--orange);padding:22px}#site-menu h2{font-size:19px;margin:22px 0}#drawer-links{display:flex;flex-direction:column;gap:8px}#drawer-links a{display:flex;align-items:center;gap:9px;padding:13px;border-radius:10px;text-decoration:none}#drawer-links a[aria-current=page]{background:var(--sea);color:white}#drawer-links a[aria-current=page] svg{color:white}.todo-form{display:flex;gap:7px}.todo-item{gap:8px}.todo-text{overflow-wrap:anywhere}.todo-edit,.todo-delete{font-size:12px;padding:5px 8px}.footer{border-top:1px solid var(--line)}.ledger-view{background:var(--paper)}.ledger-root{--ledger-bg:var(--paper);--ledger-card:var(--card)}#ledger-view{max-width:1100px}#ledger-root{padding-top:20px}
@media(max-width:600px){main,.mobile-view{padding:0 15px 50px}.hero{padding:23px!important;grid-template-columns:minmax(0,1fr) 114px;gap:0 13px;min-height:200px!important;margin:18px 0 28px}#trip-title{font-size:29px;letter-spacing:0;max-width:210px}#trip-title .title-icon{width:21px;height:21px;margin-right:5px}.hero__eyebrow{font-size:8px}#trip-date{font-size:10px}.hero-mosaic{border-radius:10px}.content-card,.phrase-card,.focus-overview,.paid-row{padding:17px}.day-toggle{padding:18px 15px!important}.day-title{font-size:17px}.day-detail{padding:0 14px 18px}.schedule-item{grid-template-columns:66px minmax(0,1fr);gap:9px}.schedule-time{font-size:11px}.schedule-text{font-size:14px}.paid-row{grid-template-columns:minmax(0,1fr);gap:7px}.paid-row label{display:flex;align-items:center;gap:14px}.paid-row select{width:140px}.map-pages button{font-size:10px;padding:4px 6px}.overview-country-map{padding:10px}.topbar{padding:8px 12px}.focus-card>summary{font-size:15px}.focus-body{padding:0 15px 18px}.now-schedule li{grid-template-columns:67px 1fr}.todo-item{flex-wrap:wrap}.todo-item label{flex:1;min-width:65%}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* Explicit grid placement replaces the previous absolute-positioned timeline. */
.schedule-item{--time-column:85px;--timeline-gap:26px;grid-template-columns:var(--time-column) minmax(0,1fr);gap:var(--timeline-gap)}
.schedule-item::before{content:"";display:block;position:absolute;left:calc(var(--time-column) + 12px);top:0;bottom:0;width:1px;background:#b6c8cd}
.schedule-item::after{content:"";display:block;position:absolute;left:calc(var(--time-column) + 8px);top:25px;width:9px;height:9px;border:2px solid var(--sea);border-radius:50%;background:var(--card)}
.schedule-item:last-child::before{display:block;bottom:18px}
.schedule-item>.schedule-time{position:static;inset:auto;grid-column:1;grid-row:1;width:auto;min-width:0;align-self:start;padding-top:3px;line-height:1.6}
.schedule-item>.schedule-content{grid-column:2;grid-row:1;min-width:0;width:100%;overflow-wrap:anywhere}
#timeline::before{display:none}
.daily-distance{margin:0 0 20px;padding:16px 18px;background:#e8f0f4;border:1px solid #b9d4dc;border-radius:12px}
.daily-distance h3{font-size:16px;margin:0 0 10px;color:var(--sea)}
.daily-distance p{margin:6px 0 12px}.distance-total{font-size:15px}.distance-total strong{color:var(--sea);font-size:20px}
.distance-segments{list-style:none;margin:0 0 12px;padding:0}
.distance-segments li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 16px;padding:9px 0;border-top:1px solid #bed0da;font-size:13px}
.distance-segments li>span{min-width:0;overflow-wrap:anywhere}.distance-segments strong{white-space:nowrap;color:var(--sea)}
#flights .flight-card{background:#173552;color:#fffaf0;border:1px solid #31597c}
#flights .flight-card__top,#flights .flight-card__airlines,#flights .flight-stop__city,#flights .flight-stop__timing,#flights .flight-segment,#flights .flight-countdown span{color:#d4e4ed;font-size:12px}
#flights .flight-stop__code,#flights .flight-stop__timing b,#flights .flight-countdown strong{color:#fffaf0}
#flights .flight-stop__timing b{font-size:13px}#flights .flight-stop__timing em{color:#ffd092;font-size:12px}
#flights .flight-stop__dot{background:#173552;border-color:#b9d4dc}#flights .flight-card .title-icon{color:#b9d4dc}
#flights .flight-segment span{font-size:11px}#flights .flight-card__countdown-row{border-top-color:#57738c;margin-top:20px}
#flights .flight-countdown{background:#244765;border-radius:10px;padding:13px 15px}
@media(max-width:600px){.schedule-item{--time-column:56px;--timeline-gap:26px;padding:16px 0}.schedule-item::after{top:22px}.schedule-item>.schedule-time{font-size:12px;padding:0;color:var(--sea);font-weight:700}.schedule-text{font-size:15px;line-height:1.8}.daily-distance{padding:14px}.distance-segments li{font-size:12px;gap:8px}.distance-total strong{font-size:18px}}
@media(max-width:350px){.distance-segments li{grid-template-columns:minmax(0,1fr)}#flights .flight-card{padding:16px}.flight-countdown strong{font-size:20px}}
