:root{color-scheme:light;--ink:#263548;--muted:#596b7c;--pink:#c91b60;--blue:#076cba;--card:#f4f5f8;--line:#e8ecf1;--radius:20px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans TC",sans-serif;color:var(--ink);background:#fff;font-synthesis:none}*{box-sizing:border-box}body{margin:0;font-size:16px;line-height:1.65}button,a,summary{-webkit-tap-highlight-color:transparent}button,input,textarea{font:inherit}button,a,summary{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}a{color:var(--blue);text-underline-offset:4px}button:focus-visible,a:focus-visible,summary:focus-visible,textarea:focus-visible{outline:3px solid #2369b2;outline-offset:4px}h1,h2,h3,p{margin:0}h2{font-size:25px;line-height:1.45;letter-spacing:-.5px}h3{font-size:19px;line-height:1.5}svg:not(.leaflet-zoom-animated){display:block;width:24px;height:24px;flex-shrink:0}.wrap{width:min(100% - 40px,900px);margin-inline:auto}.skip-link{position:fixed;top:-100px;left:20px;background:white;padding:14px;z-index:20}.skip-link:focus{top:10px}.brand{display:flex;align-items:center;gap:11px;padding-top:26px;font-weight:750;font-size:17px;line-height:1.4}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:14px;background:var(--ink);color:white;font-size:25px;font-weight:800}.brand small{display:block;font-size:9px;letter-spacing:1.6px;color:var(--muted);margin-top:4px}.trip-badge{margin-left:auto;border:1px solid var(--line);border-radius:20px;padding:7px 12px;font-size:12px;white-space:nowrap}.hero{position:relative;overflow:hidden;min-height:222px;display:flex;align-items:center}.hero-copy{position:relative;z-index:1;padding:27px 0}.eyebrow{font-size:12px;color:var(--pink);font-weight:750;letter-spacing:1.6px;margin-bottom:10px}h1{font-size:29px;line-height:1.4;letter-spacing:-1px}.hero-date{font-size:13px;letter-spacing:1px;margin-top:17px;font-weight:600}.hero-date span{color:#a6b1bc;padding:0 4px}.busan-art{position:absolute;width:330px;height:auto;right:-5px;bottom:0;opacity:.85}.hero-copy{max-width:65%}.day-nav{position:sticky;top:0;z-index:5;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line)}.tabs{display:flex;gap:26px;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.day-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;min-height:72px;min-width:48px;text-decoration:none;color:var(--muted);border-bottom:3px solid transparent;font-weight:650;padding:12px 0 9px;line-height:1.3}.day-tab small{font-size:10px;font-weight:450;margin-top:5px;letter-spacing:.3px}.day-tab[aria-current=page]{color:var(--ink);border-color:var(--pink)}main{padding-block:32px 12px;min-height:330px}.section-head{display:flex;align-items:start;gap:12px;margin-bottom:20px}.section-head .kicker{font-size:11px;letter-spacing:2px;color:var(--pink);font-weight:800;margin-bottom:6px}.subtle{color:var(--muted);font-size:14px}.intro{margin:8px 0 22px;color:#627184;font-size:15px}.info-chips{display:flex;gap:9px;flex-wrap:wrap;margin:16px 0 22px}.chip{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);padding:7px 12px;border-radius:12px;font-size:13px}.chip svg{width:17px;height:17px;color:#7d91a3}.section-title{display:flex;align-items:center;gap:8px;margin:32px 0 16px;font-size:20px}.section-title svg{width:21px;height:21px;color:var(--pink)}.day-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.day-shortcut{position:relative;background:var(--card);border-radius:var(--radius);padding:19px 17px;color:var(--ink);text-decoration:none;min-height:168px;display:flex;flex-direction:column;align-items:flex-start;gap:8px;border:1px solid transparent}.day-shortcut:hover{border-color:#e7afc5}.day-shortcut .day-number{font-size:11px;font-weight:800;color:var(--pink);letter-spacing:1px}.day-shortcut strong{font-size:16px;line-height:1.5}.day-shortcut .subtle{font-size:12px;margin-top:auto}.day-shortcut svg{position:absolute;right:15px;top:16px;color:#a0afbd;width:19px;height:19px}.panel-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.info-card{background:var(--card);border-radius:var(--radius);padding:22px}.info-card .eyebrow{margin-bottom:7px;letter-spacing:1px}.address{font-size:14px;color:#5d7085;overflow-wrap:anywhere;user-select:text;line-height:1.8}.address-block{margin:14px 0}.warning{font-size:13px;line-height:1.7;color:#90693b;background:#fff5e7;padding:10px 12px;border-radius:10px;margin-top:12px}.flight-path{display:grid;grid-template-columns:1fr 22px 1fr;align-items:center;gap:8px;margin:20px 0 14px}.flight-path strong{font-size:25px;display:block;line-height:1.3}.flight-path small{display:block;font-size:11px;color:var(--muted);margin-top:3px}.flight-path p{font-size:13px;margin-top:7px}.flight-path svg{color:#9cabb9;width:19px}.notes{padding-left:20px;margin:10px 0 0;color:#5f6d7d;font-size:14px}.notes li{padding:4px 0}.reminders{border:1px solid var(--line);border-radius:var(--radius);padding:12px 22px 18px}.day-date{font-size:27px;font-weight:750;letter-spacing:-.5px}.day-title{font-size:19px;margin-top:5px;line-height:1.6}.day-meta{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--muted);margin-top:9px}.day-meta svg{width:17px;height:17px}.view-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:24px 0}.view-switch{display:flex;background:#f1f3f6;padding:4px;border-radius:14px}.view-switch a{display:flex;align-items:center;justify-content:center;gap:7px;color:#56697d;min-height:44px;padding:8px 15px;text-decoration:none;border-radius:11px;font-size:14px;font-weight:650}.view-switch svg{width:18px;height:18px}.view-switch a[aria-current=true]{background:#fff;color:var(--ink);box-shadow:0 2px 6px #2534480b}.item-count{font-size:13px;color:var(--muted)}.notice{font-size:13px;color:#576a7e;border-left:3px solid #bdcddd;background:#f6f8fa;border-radius:0 10px 10px 0;padding:12px 14px;margin-bottom:24px}.itinerary-list{list-style:none;margin:0;padding:0;counter-reset:stops}.stop{position:relative;margin-bottom:20px}.stop-card{background:var(--card);border-radius:var(--radius);overflow:visible}.stop-summary{display:flex;gap:14px;position:relative;padding:21px 18px;list-style:none;cursor:pointer;min-height:125px}.stop-summary::-webkit-details-marker{display:none}.stop-art{width:57px;height:64px;flex-shrink:0;border-radius:15px;background:#e4edf3;display:grid;place-items:center;color:#6f91a7;margin-top:3px}.stop-art svg{width:29px;height:29px;stroke-width:1.4}.stop-art[data-kind=food]{background:#f4e8e1;color:#b18b70}.stop-art[data-kind=rest],.stop-art[data-kind=stay]{background:#eae5f1;color:#9a83ae}.stop-art[data-kind=shopping]{background:#f3e5ec;color:#b17e98}.stop-number{position:absolute;top:13px;left:-5px;display:flex;align-items:center;justify-content:center;background:var(--pink);color:white;font-size:12px;font-weight:800;width:29px;height:24px;clip-path:polygon(0 0,75% 0,100% 50%,75% 100%,0 100%)}.stop-copy{min-width:0;flex:1}.stop-time{font-weight:750;color:var(--pink);font-size:14px;margin-bottom:6px;letter-spacing:.2px}.stop-title{font-size:19px;line-height:1.55;overflow-wrap:anywhere;padding-right:15px}.stop-duration{font-size:12px;color:var(--muted);margin-top:6px}.expand-label{font-size:11px;color:#596c7f;display:flex;align-items:center;gap:3px;margin-top:9px}.expand-label svg{width:13px;height:13px;transition:transform .2s}.stop-card[open] .expand-label svg{transform:rotate(180deg)}.stop-detail{padding:0 20px 22px;border-top:1px solid #e3e7ee;margin-inline:18px;padding-inline:0}.stop-detail h4{font-size:13px;margin:16px 0 4px;color:var(--ink)}.stop-detail .notes{margin-top:13px}.stop-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;border-radius:12px;padding:10px 15px;font-size:13px;font-weight:650;text-decoration:none;border:1px solid transparent;line-height:1.5}.button svg{width:17px;height:17px}.primary{background:var(--blue);color:white}.quiet{color:#526c83;background:white;border-color:#dbe2e9}.link-button{max-width:100%;white-space:normal;overflow-wrap:anywhere}.transport{position:relative;display:flex;gap:8px;align-items:center;min-height:37px;color:#596c7f;font-size:12px;padding:10px 12px 0 30px;margin-left:10px}.transport::before{content:"";position:absolute;left:17px;top:0;bottom:-20px;border-left:2px dashed #dce2e9}.transport svg{width:17px;height:17px}.transport span{background:white;position:relative;padding:0 3px}.route-list{padding-left:20px}.route-list .stop{margin-left:8px}.route-list .stop::before{content:"";position:absolute;left:-20px;top:24px;bottom:-21px;border-left:2px dashed #e9b2c7}.route-list .stop:last-child::before{bottom:45px}.route-list .stop::after{content:"";position:absolute;left:-25px;top:29px;width:8px;height:8px;border:2px solid var(--pink);border-radius:50%;background:#fff}.route-list .stop-summary{min-height:110px}.route-list .stop-art{display:none}.route-list .stop-number{position:static;clip-path:none;width:29px;height:29px;border-radius:9px;flex-shrink:0;margin-top:4px}.route-list .transport{padding-left:4px;margin-left:0}.route-list .transport::before{display:none}.day-pagination{display:flex;justify-content:space-between;gap:12px;margin-top:30px}.day-pagination .button{flex:1}.offline-panel{border-top:1px solid var(--line);padding-top:25px;margin-top:30px}.offline-heading{display:flex;gap:13px;align-items:flex-start}.offline-heading h2{font-size:17px}.offline-heading p{font-size:12px;color:var(--muted);margin-top:5px}.offline-icon{display:grid;place-items:center;width:41px;height:41px;border-radius:13px;background:#edf5fb;color:var(--blue);flex-shrink:0}.offline-icon svg{width:21px;height:21px}.offline-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:17px}#offline-status[data-ready=true]{color:#287661}.footer{font-size:12px;color:#596c7f;padding:35px 0 calc(28px + env(safe-area-inset-bottom));text-align:center}.footer span{display:block;letter-spacing:2px;font-size:9px;margin-top:7px}dialog{border:0;border-radius:24px;max-width:460px;width:calc(100% - 36px);padding:26px;color:var(--ink);box-shadow:0 25px 100px #1b2c4660}dialog::backdrop{background:#18283c75}dialog h2{font-size:22px}dialog ol{padding-left:24px;font-size:14px}dialog li{padding:6px 0}dialog form{text-align:right}.toast{position:fixed;z-index:30;bottom:calc(22px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 36px);padding:13px 19px;border-radius:13px;background:#263548;color:white;font-size:14px;box-shadow:0 4px 25px #26354833}.copy-fallback{width:100%;min-height:95px;border:1px solid #c2cfdd;border-radius:10px;padding:10px;font-size:15px;background:white;color:var(--ink);resize:vertical;margin-top:12px}[hidden]{display:none!important}@media(min-width:700px){.hero{min-height:245px}.hero-copy{padding:32px 0}h1{font-size:35px}.busan-art{width:430px;right:12px}.tabs{gap:34px}.stop-summary{padding:24px;gap:20px}.stop-art{width:72px;height:74px}.stop-number{top:17px}.stop-title{font-size:21px}.stop-detail{margin-inline:24px}.day-grid{gap:16px}.day-shortcut{min-height:160px;padding:22px}.offline-actions{margin-left:54px}.info-card{padding:26px}}@media(max-width:499px){.wrap{width:calc(100% - 36px)}.brand{font-size:14px;gap:9px;padding-top:20px}.brand-mark{width:35px;height:35px;font-size:22px}.brand small{font-size:8px;letter-spacing:1.1px}.trip-badge{font-size:10px;padding:6px 9px}.hero{min-height:212px}.hero-copy{max-width:90%;padding-bottom:42px}h1{font-size:26px}.busan-art{width:235px;right:-36px;bottom:-1px;opacity:.5}.hero-date{font-size:11px}.hero-copy .eyebrow{font-size:10px}.tabs{gap:24px}.day-tab{font-size:15px;min-height:68px}.day-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.day-shortcut{min-height:161px;padding:16px 13px}.day-shortcut strong{font-size:15px}.day-shortcut svg{right:12px;top:14px;width:16px}.panel-grid{grid-template-columns:1fr}.section-head h2{font-size:24px}.day-date{font-size:25px}.day-title{font-size:18px}.stop-summary{gap:11px;padding:20px 14px}.stop-art{width:47px;height:58px}.stop-title{font-size:18px;padding-right:0}.stop-time{font-size:13px}.stop-detail{margin-inline:16px}.offline-actions .primary{flex:1}.offline-actions .quiet{flex:1}.day-pagination .button{font-size:12px;padding-inline:8px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
.uncertain-tag{display:inline-block;font-size:11px;line-height:1.6;color:#946735;background:#fff0dc;border-radius:6px;padding:3px 7px;margin-top:8px}
.stop-transport{display:flex;align-items:flex-start;gap:6px;color:#596c7f;font-size:12px;margin-top:8px;line-height:1.7}.stop-transport svg{width:16px;height:16px;margin-top:2px}

/* Interactive daily map; local markers also work without network tiles. */
.daily-map{border:1px solid var(--line);border-radius:20px;overflow:hidden;margin:0 0 26px;background:#fff}.map-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:18px 17px 8px}.map-heading h3{font-size:18px}.map-count{color:var(--muted);font-size:11px;white-space:nowrap}.map-toolbar{display:flex;justify-content:space-between;gap:8px;padding:4px 13px 13px}.map-regions{display:flex;gap:6px}.map-toolbar .button{padding:6px 11px;font-size:12px}.map-regions [aria-pressed=true]{background:#263548;color:#fff;border-color:#263548}.route-map{width:100%;height:440px;background-color:#eef2f5;background-image:linear-gradient(#dbe2e866 1px,transparent 1px),linear-gradient(90deg,#dbe2e866 1px,transparent 1px);background-size:40px 40px;isolation:isolate;z-index:0;font-family:inherit}.route-map .leaflet-control-zoom a{width:42px;height:42px;line-height:42px;font-size:23px}.route-map .leaflet-control-attribution{font-size:9px;max-width:88%;line-height:1.5}.route-map .leaflet-marker-icon{display:flex;align-items:flex-end;justify-content:center}.numbered-map-marker{background:none;border:none}.map-pin{display:grid;place-items:center;min-width:34px;height:34px;padding:0 8px;border-radius:12px 12px 12px 2px;background:#cb2868;color:#fff;font-size:13px;line-height:1;font-weight:800;border:2px solid white;box-shadow:0 3px 9px #26354844;white-space:nowrap}.map-pin-uncertain{background:#9b662e}.map-popup{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);line-height:1.6}.map-popup strong{display:block;font-size:14px}.map-popup p{font-size:12px;margin:8px 0}.map-popup-link{display:block;width:100%;margin-top:9px;padding:10px 8px;min-height:44px;text-align:left;background:#edf5fb;color:#076cba;border:0;border-radius:9px;font-size:12px;line-height:1.6;white-space:normal}.map-status{padding:11px 15px 4px;color:#566c80;font-size:12px}.map-retry{margin:8px 15px}.map-legend{font-size:11px;line-height:1.8;padding:6px 15px 10px;color:#a91c55}.map-stop-chips{display:flex;gap:8px;overflow-x:auto;padding:2px 15px 13px;scrollbar-width:thin}.map-stop-chip{flex-shrink:0;max-width:260px;padding:9px 12px;min-height:44px;border:1px solid #e4e8ee;border-radius:12px;font-size:12px;color:var(--ink);background:#f4f5f8;text-align:left}.map-sources,.map-flight-note{font-size:10px;color:#627184;line-height:1.8;padding:0 15px 12px}.map-flight-note{font-size:12px;background:#f5f8fc;padding:11px 15px}.unmapped-stops{border-top:1px solid var(--line);padding:13px 15px;font-size:12px;color:#5e6f80}.unmapped-stops summary{cursor:pointer;min-height:32px;display:list-item}.unmapped-stops ul{padding-left:17px;margin:5px 0}.unmapped-stops li{margin-top:8px}.unmapped-link{display:block;min-height:44px;text-align:left;border:0;padding:5px 0;background:none;color:#076cba;font-size:12px;line-height:1.7}.unmapped-stops small{display:block;color:#67798b;font-size:11px}.stop-card{scroll-margin-top:86px}.route-map button:focus-visible,.route-map a:focus-visible,.route-map .leaflet-marker-icon:focus-visible{outline:3px solid #076cba;outline-offset:3px}@media(max-width:499px){.route-map{height:410px}.map-heading{padding-inline:13px}.map-heading h3{font-size:17px}.map-count{font-size:10px}.map-toolbar{padding-inline:10px}.map-toolbar .button{padding-inline:9px}.map-pin{font-size:12px}.map-popup{max-height:250px;overflow-y:auto}}

/* The map links are siblings of details, so tapping a link never toggles a card. */
.stop-row{position:relative;background:var(--card);border-radius:var(--radius)}.stop-row .stop-summary{padding-right:94px;min-height:144px}.card-map-actions{position:absolute;right:12px;top:20px;width:64px;display:flex;flex-direction:column;gap:7px;z-index:1}.card-map-link{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:50px;border:1px solid #b5d6c7;border-radius:13px;background:#fff;color:#08724b;text-decoration:none;font-size:11px;font-weight:750;line-height:1.25;padding:7px 3px}.card-map-link svg{width:18px!important;height:18px!important}.card-map-link small{font-size:10px;font-weight:500;color:#627184}.card-map-link[data-provider=google]{color:#076cba;border-color:#b5d0e8}.card-map-link:hover{background:#e8f5ef}.card-map-link[data-provider=google]:hover{background:#eef6fc}.card-map-pending{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;min-height:55px;border:1px dashed #d5dce4;border-radius:13px;color:#69798a;font-size:10px}.card-map-pending svg{width:18px;height:18px}.hero-photo,.hero-credit{display:none}body[data-view=overview] .hero{margin-top:24px;border-radius:24px;min-height:340px;background:#284d65}body[data-view=overview] .hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0b243ac9 0%,#102b4085 45%,#142c4720 100%);z-index:1}body[data-view=overview] .hero-photo{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 55%}body[data-view=overview] .busan-art{display:none}body[data-view=overview] .hero-copy{padding:40px 32px;max-width:90%;z-index:2;color:white}body[data-view=overview] .hero-copy .eyebrow{color:#ffe4c2;letter-spacing:2px}body[data-view=overview] .hero-date{font-weight:650}body[data-view=overview] .hero-date span{color:#e0eaf1}body[data-view=overview] .hero-credit{display:block;font-size:10px;color:#6c7a88;padding:9px 3px 17px;line-height:1.7}body[data-view=overview] .hero-credit a{color:inherit;text-decoration-color:#bdc9d3}@media(max-width:499px){.stop-row .stop-summary{padding-right:87px;gap:10px}.stop-row .stop-art{width:39px;height:53px}.card-map-actions{right:11px;width:60px}.card-map-link{font-size:10px;min-height:48px}.stop-row .stop-title{font-size:17px}.stop-row .stop-transport{font-size:11px}.stop-row .stop-duration{font-size:11px}body[data-view=overview] .hero{min-height:315px;margin-top:20px;border-radius:20px}body[data-view=overview] .hero-copy{padding:32px 21px;max-width:100%}body[data-view=overview] .hero-photo{object-position:58% center}body[data-view=overview] .hero::after{background:linear-gradient(90deg,#0b243ac4,#102b4075 70%,#142c4720)}body[data-view=overview] .hero-credit{font-size:9px;padding-bottom:13px}body[data-view=overview] h1{font-size:28px;line-height:1.5}}

.stop-row.multiple-maps .stop-summary{min-height:180px}
