:root{--page:#f4f3ee;--card:#fffefa;--ink:#27372d;--muted:#687166;--line:#e1e3da;--accent:#795541}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:16px}body{margin:0;background:var(--page);color:var(--ink);font:15px/1.7 -apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif;-webkit-font-smoothing:antialiased}button,a,summary{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}h1,h2,h3,h4,p{margin:0}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}main{max-width:760px;padding:40px 24px 25px;margin:auto}.overview{padding:0 8px 26px}.eyebrow{font-size:12px;color:var(--muted);letter-spacing:.04em}h1{font-size:32px;line-height:1.4;font-weight:600;margin-top:10px;letter-spacing:-.03em}.trip-date{font-size:14px;color:var(--muted);margin-top:8px}.route{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:25px 0;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.route a{display:flex;align-items:baseline;gap:9px;min-height:44px;padding:8px 0}.route b{font-size:18px;font-weight:600}.route span{font-size:13px;color:var(--muted)}.route i{font-size:16px;font-style:normal;color:#9ba491}.flights p{display:flex;gap:20px;font-size:14px;margin-bottom:8px}.flights span{color:var(--muted);flex-shrink:0}.flights b{font-weight:500}.total{margin-top:22px;font-size:13px;color:var(--muted)}.total strong{font-size:23px;font-weight:500;color:var(--accent);margin-left:10px;font-variant-numeric:tabular-nums}.note{font-size:11px;color:var(--muted);line-height:1.85;margin-top:9px}.city-stack{display:flex;flex-direction:column;gap:20px}.city-card{background:var(--card);border:1px solid #dfe3d8;border-radius:14px;padding:28px;scroll-margin-top:18px}.city-header{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:22px}.city-header>div{display:flex;align-items:baseline;gap:14px}.city-header h2{font-size:26px;line-height:1.4;font-weight:600}.city-header .dates{font-size:13px;color:var(--muted)}.nights{font-size:12px;border-radius:20px;background:#edf0e8;padding:5px 13px;white-space:nowrap}.info-row{display:grid;grid-template-columns:36px 1fr;gap:14px;margin-bottom:18px;font-size:14px;line-height:1.85}.info-label{font-size:12px;color:var(--muted);padding-top:1px}.info-row>div{min-width:0}.info-row p{margin-top:3px}.day-list{list-style:none;margin:5px 0 22px;padding:0;border-top:1px solid var(--line)}.day-list li{display:grid;grid-template-columns:53px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.day-list time{color:var(--accent);font-size:12px;font-variant-numeric:tabular-nums;padding-top:2px}.day-list p{font-size:14px;line-height:1.8}.food-summary,.move-summary{color:var(--ink)}.move-summary{color:#596650;font-size:13px}.city-card details{border-top:1px solid var(--line);margin-top:0}.city-card details+details{border-top:1px solid var(--line)}summary{display:flex;justify-content:space-between;align-items:center;min-height:50px;gap:15px;padding:13px 0;font-size:13px;cursor:pointer;list-style:none;color:var(--ink)}summary:after{content:'＋';font-size:17px;color:#87907d;flex-shrink:0}details[open]>summary:after{content:'−'}summary::-webkit-details-marker{display:none}.detail-content{padding:3px 0 18px}.day-detail{padding:17px 0;border-top:1px solid var(--line)}.day-detail:first-child{padding-top:8px;border-top:0}.day-detail h4{font-size:14px;line-height:1.8;font-weight:600;margin-bottom:13px}.day-detail h4 time{font-size:12px;color:var(--accent);font-weight:400;margin-right:12px}.time-list{margin:0;padding:0;list-style:none}.time-list li{display:grid;grid-template-columns:67px 1fr;gap:12px;padding:9px 0}.time-list time{font-size:11px;color:var(--muted);padding-top:2px}.time-list b{display:block;font-size:13px;line-height:1.8;font-weight:500}.time-list p{font-size:12px;line-height:1.9;color:var(--muted);margin-top:3px}.day-note{font-size:11px;line-height:1.9;color:var(--muted);border-left:2px solid #c6ccb9;padding-left:12px;margin:13px 0 0}.detail-title{font-size:14px;font-weight:600;margin:22px 0 12px}.hotel-detail,.meal-detail{padding:12px 0;border-top:1px solid var(--line)}.hotel-detail b,.meal-detail b{font-size:13px;font-weight:500}.hotel-detail .meta{font-size:12px;color:var(--muted);margin:5px 0}.hotel-detail .price{font-size:14px;color:var(--accent)}.hotel-detail .quote-note{font-size:11px;line-height:1.9;color:var(--muted);margin-top:6px}.small-link{display:inline-flex;align-items:center;min-height:44px;color:var(--accent);font-size:12px}.meal-head{display:flex;justify-content:space-between;align-items:baseline;gap:15px}.meal-head span{font-size:11px;color:var(--muted);white-space:nowrap}.meal-detail p{font-size:12px;line-height:1.9;color:var(--muted);margin-top:6px}.concierge-note{margin-top:14px;padding:15px;background:#f0f2e9;border-radius:6px}.concierge-note h4{font-size:13px;font-weight:500}.concierge-note p{font-size:12px;color:var(--muted);margin:6px 0}.concierge-note a{color:var(--accent);font-size:12px;overflow-wrap:anywhere;display:inline-flex;min-height:40px;align-items:center}.copy-button{display:block;background:transparent;border:1px solid #b9c4b0;border-radius:5px;padding:10px 13px;color:var(--ink);font-size:12px;min-height:44px;margin-top:5px}.copy-status{font-size:11px!important}.copy-fallback{width:100%;min-height:160px;font:12px/1.8 inherit;margin-top:12px;border:1px solid var(--line);padding:10px;background:var(--card)}.copy-fallback[hidden]{display:none}
.map-note{font-size:11px;line-height:1.9;color:var(--muted);padding-bottom:12px}.map-legend{display:flex;gap:16px;margin:4px 0 13px;font-size:11px;color:var(--muted)}.map-legend span{display:flex;gap:6px;align-items:center}.map-legend i{display:inline-block;width:7px;height:7px;border-radius:2px;background:#25382d}.map-legend .sight i{background:#fffefa;border:1px solid #7a8e6e}.map-legend .food i{background:#dfb76d}.city-map{background:#edf1e7;border:1px solid #d9e0d1;border-radius:8px;padding:10px 0;overflow:hidden}.city-map svg{display:block;width:100%;max-width:360px;height:auto;margin:auto;font-family:inherit;overflow:visible}.place-node{cursor:pointer;outline:none}.place-node:hover .place-outline,.place-node:focus .place-outline,.place-node.selected .place-outline{stroke:#b27b2c;stroke-width:3}.map-detail{background:#f8efd9;border-left:3px solid #bd9349;padding:12px;margin-top:10px;border-radius:4px}.map-detail[hidden]{display:none}.map-detail b{font-size:13px;font-weight:500}.map-detail p{font-size:12px;color:#6b5d42;margin-top:4px;line-height:1.8}.travel-rows{margin:17px 0 0}.travel-rows p{display:flex;justify-content:space-between;gap:15px;padding:9px 0;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.travel-rows b{font-weight:500;color:var(--ink);white-space:nowrap}.map-foods{margin-top:16px}.map-foods p{font-size:12px;line-height:1.9;margin:8px 0}.map-foods b{color:var(--accent);font-weight:500}.map-foods span{color:var(--muted)}footer{padding:24px 8px 5px}.print-button{background:none;border:0;padding:10px 0;min-height:44px;font-size:12px;color:var(--muted)}.sources{border-top:1px solid var(--line);margin-top:6px}.sources summary{font-size:12px;color:var(--muted)}.sources p{font-size:11px;color:var(--muted);line-height:1.9;margin-bottom:13px}.source-links{display:grid;grid-template-columns:1fr 1fr;gap:0 25px;margin-bottom:15px}.source-links a{display:flex;align-items:center;min-height:44px;font-size:11px;color:var(--muted);border-bottom:1px solid var(--line)}.back-top{display:inline-flex;align-items:center;min-height:44px;font-size:12px;color:var(--muted);margin-top:5px}
@media(max-width:600px){main{padding:26px 16px 20px}.overview{padding:0 5px 23px}.eyebrow{font-size:11px}h1{font-size:29px}.trip-date{font-size:13px}.route{gap:8px;padding:11px 0;margin:20px 0}.route a{gap:6px}.route b{font-size:16px}.route span{font-size:12px}.route i{font-size:14px}.flights p{font-size:13px;gap:17px;margin-bottom:7px}.total{margin-top:18px;font-size:12px}.total strong{font-size:22px}.note{font-size:10px}.city-stack{gap:16px}.city-card{padding:22px 20px 7px;border-radius:12px}.city-header{margin-bottom:20px;gap:10px}.city-header>div{gap:10px}.city-header h2{font-size:24px}.city-header .dates{font-size:11px}.nights{font-size:11px;padding:4px 11px}.info-row{grid-template-columns:25px 1fr;gap:11px;margin-bottom:16px;font-size:13px}.info-label{font-size:11px}.day-list{margin:3px 0 18px}.day-list li{grid-template-columns:46px 1fr;gap:10px;padding:11px 0}.day-list time{font-size:11px}.day-list p{font-size:13px;line-height:1.85}.move-summary{font-size:12px}summary{font-size:12px;min-height:49px;padding:12px 0}.detail-content{padding-bottom:16px}.day-detail h4{font-size:13px}.day-detail h4 time{margin-right:9px;font-size:11px}.time-list li{grid-template-columns:57px 1fr;gap:10px;padding:8px 0}.time-list b{font-size:12px}.time-list p{font-size:11px}.time-list time{font-size:10px}.day-note{font-size:10px}.hotel-detail b,.meal-detail b{font-size:12px}.hotel-detail .meta{font-size:11px}.hotel-detail .quote-note{font-size:10px}.meal-detail p{font-size:11px}.meal-head span{font-size:10px}.map-note{font-size:10px}.map-legend{font-size:10px;gap:16px}.city-map{margin-left:-6px;margin-right:-6px}.map-detail p{font-size:11px}.travel-rows p{font-size:11px}.travel-rows b{font-size:11px}.map-foods p{font-size:11px}.map-detail b{font-size:12px}.source-links{gap:0 15px}.source-links a{font-size:10px}footer{padding:20px 5px 0}.concierge-note{padding:13px}.concierge-note p{font-size:11px}.concierge-note a{font-size:11px}}
@media(max-width:360px){.city-card{padding-left:16px;padding-right:16px}.city-header>div{gap:8px}.city-header .dates{font-size:10px}.city-header h2{font-size:22px}.route a{gap:4px}.route b{font-size:15px}.route span{font-size:11px}.route{gap:5px}.flights p{gap:12px;font-size:12px}.city-map{margin-left:-9px;margin-right:-9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{@page{margin:15mm}body{background:white;font-size:10pt}main{max-width:none;margin:0;padding:0}.overview{padding-bottom:18px}.route{margin:15px 0}.city-stack{gap:18px}.city-card{border:1px solid #ccc;box-shadow:none;padding:20px;break-before:auto}.city-header,.info-row,.day-list li,.day-detail,.hotel-detail,.meal-detail{break-inside:avoid}.print-button,.sources,.back-top,.copy-button,.copy-status,.copy-fallback{display:none!important}details::details-content{display:block!important}.city-map{max-width:330px;margin:auto}.map-accordion{break-before:page}.map-accordion[open]{display:block}summary{font-size:11pt}.day-list p{font-size:10pt}.time-list p{font-size:9pt}}
@media print{.map-accordion:not([open]){display:none}}

.flights p{margin-bottom:13px}.flights small{display:block;font-size:11px;font-weight:400;color:var(--muted);margin-top:2px}.flights .flight-note{font-size:11px;color:var(--muted);margin:2px 0 0}@media(max-width:360px){.flights p{gap:10px}.flights small{font-size:10px}}
