:root{--paper:#f8f6ee;--card:#fffdf7;--ink:#203d39;--green:#245b4b;--muted:#60746a;--line:#c4d1c3;--soft:#e9eedf;--sand:#f0e6d4}*{box-sizing:border-box}[hidden]{display:none!important}html{scroll-padding-top:18px}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif;font-size:16px;line-height:1.75}a{color:#226552;text-decoration:none;overflow-wrap:anywhere}a:hover{text-decoration:underline}button,input,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button,select{min-height:44px}button{cursor:pointer}button:disabled{opacity:.4;cursor:default}:focus-visible{outline:3px solid #b67f38;outline-offset:3px}button,.btn{border:1px solid #b8cbbd;border-radius:8px;color:var(--green);background:transparent;padding:8px 14px;line-height:1.5}.btn[aria-selected=true],.btn[aria-pressed=true]{background:var(--green);color:white}select,input[type=search]{border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--card);padding:8px;min-width:0;max-width:100%}input[type=checkbox]{width:20px;height:20px;accent-color:var(--green);flex:none}.shell{max-width:1180px;margin:auto;padding:30px 24px}.hero,.section-top{display:flex;align-items:end;justify-content:space-between;gap:20px;flex-wrap:wrap}.eyebrow{font-size:12px;letter-spacing:3px;color:var(--muted);margin:0 0 12px}.hero h1{font-family:Georgia,'Songti SC',serif;font-size:38px;line-height:1.3;margin:0}.subtitle{font-size:18px;margin:14px 0 8px;color:var(--muted)}.dates{font-size:14px;color:var(--muted)}h2,h3{line-height:1.5;font-family:Georgia,'Songti SC',serif}h2{font-size:28px;margin:34px 0 18px}h3{font-size:23px;margin:12px 0 14px}h4{font-size:18px;line-height:1.6;margin:12px 0}.muted,figcaption{color:var(--muted);font-size:14px;line-height:1.75}.notice{border-left:3px solid #a98248;background:var(--sand);padding:12px 16px}.notice:empty{display:none}.controls{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;padding:22px 0;border-bottom:1px solid var(--line);margin-bottom:20px}.tabs{display:flex;gap:7px;flex-wrap:wrap}.tabs button{font-weight:600}.provider{display:flex;gap:10px;align-items:center;font-size:14px}.diagram{margin:28px 0 22px;background:#f3f1e7;border:1px solid #d8dece;padding:24px;border-radius:14px}.diagram svg{width:100%;height:auto;max-width:680px;display:block;margin:auto}.diagram figcaption{margin-top:16px}.city-grid,.card-grid,.photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.city-card,.info-card,.photo-card,.check-item{border:1px solid var(--line);border-radius:12px;background:var(--card);min-width:0;overflow-wrap:anywhere}.city-card{padding:20px;display:flex;gap:20px;align-items:center}.city-card img{width:110px;height:90px;object-fit:cover;border-radius:8px}.city-card p{margin:5px 0}.chip{display:inline-block;border-radius:5px;background:var(--soft);font-size:12px;padding:2px 7px;margin:0 5px 5px 0}.chip.optional{background:var(--sand);color:#806137}.map-section{margin-top:45px}.map-controls,.check-controls,.toolbar,.day-quick,.place-links{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:15px 0}.map-controls label{display:flex;align-items:center;gap:7px}.map-controls{font-size:14px}#route-map{height:550px;border-radius:12px;border:1px solid var(--line);background:#e8ede5;z-index:0;max-width:100%}.map-pin{background:var(--green);border:2px solid white;border-radius:50%;color:white;text-align:center;font-size:12px;line-height:25px;box-shadow:0 1px 6px #324d4555}.map-pin.alternative{background:#fff9e9;color:#876139;border:2px solid #9f7945}.leaflet-popup-content{font:14px/1.7 -apple-system,sans-serif}.leaflet-popup-content h4{font-size:16px;margin:5px 0}.leaflet-popup-content p{margin:7px 0}.legend{display:flex;flex-wrap:wrap;gap:20px;font-size:13px;color:var(--muted)}.place-links a{padding:6px 10px;border:1px solid var(--line);border-radius:5px;font-size:14px}.toolbar{justify-content:space-between}.toolbar>label{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.toolbar select{width:100%;max-width:540px}.day-heading{margin:30px 0 10px}.day-heading h2{font-size:30px;margin:6px 0}.day-quick a{font-size:14px;border-bottom:1px solid var(--line);padding:6px 10px}.day-layout{display:grid;grid-template-columns:minmax(230px,.9fr) minmax(0,1.4fr);gap:32px;margin:22px 0}.stops{list-style:none;padding:0}.stop{position:relative;padding:0 0 24px 30px}.stop:before{content:'';position:absolute;left:6px;top:12px;bottom:-10px;border-left:2px solid #acc2b0}.stop:last-child:before{display:none}.stop:after{content:'';position:absolute;left:0;top:6px;width:14px;height:14px;border-radius:50%;border:3px solid #387561;background:var(--paper)}.stop .time{font-size:13px;color:var(--muted);display:block}.stop .stop-name{font-weight:600}.stop p{font-size:14px;margin:5px 0}.small-link{display:block;font-size:13px;margin-top:4px;text-decoration:underline}.sleep,.budget{background:var(--soft);border-left:3px solid #719277;padding:13px 16px;margin:14px 0}.sleep strong{display:block}.leg-list{padding:0;list-style:none}.leg-list li{padding:13px 0;border-bottom:1px solid var(--line);font-size:14px}.leg-list p{margin:5px 0}.daily-section{padding-top:20px;border-top:2px solid var(--green);margin:35px 0;scroll-margin-top:20px}.photo-card{overflow:hidden;margin:0}.photo-card h4{padding:12px 16px;margin:0}.photo-button{padding:0;border:0;border-radius:0;display:block;width:100%;background:var(--soft);cursor:zoom-in}.photo-button img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover}.photo-card figcaption{padding:15px}.credit{display:block;font-size:12px;margin-top:7px}.info-card{padding:20px}.info-card p{margin:9px 0;font-size:15px}.info-card .price{color:var(--green);font-weight:650;font-size:20px}.info-card .evidence{color:#806b48;font-size:13px}.source-links{font-size:12px;color:var(--muted);line-height:1.9}.source-links a{text-decoration:underline}.nav-link{display:inline-flex;min-height:44px;padding:9px 14px;border-radius:7px;background:var(--green);color:white;margin:10px 0 4px}.swatches{display:flex;gap:8px}.swatch{width:24px;height:24px;border-radius:50%;border:1px solid #b5b8a8}.prep-nav{display:flex;gap:10px;flex-wrap:wrap}.prep-nav a{padding:8px 12px;border:1px solid var(--line);border-radius:6px}.prep-topic{margin:32px 0 50px;max-width:940px}.prep-topic h3{border-bottom:2px solid var(--green);padding-bottom:12px}.prep-topic p{line-height:1.9}.check-controls input[type=search]{width:240px}.check-controls label{display:flex;gap:8px;align-items:center}progress{width:100%;height:12px;accent-color:var(--green)}.check-group{margin-top:32px}.check-group>h3{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}.check-group>h3 span{font-size:14px;font-family:inherit;color:var(--muted)}.check-item{padding:20px;margin:14px 0}.check-item.is-done h4{text-decoration:line-through;color:var(--muted)}.check-item.is-skipped{opacity:.65}.check-item h4{margin:0 0 8px}.check-item p{font-size:14px;margin:6px 0}.owner-checks{display:flex;flex-wrap:wrap;gap:14px;margin-top:14px}.owner-checks label{display:flex;align-items:center;gap:8px;padding:6px 0}.check-actions{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;margin-top:12px}.check-state{font-size:13px;color:var(--muted)}.import-label{position:relative;overflow:hidden;cursor:pointer}.import-label input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}footer{margin-top:45px;padding-top:18px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}dialog{width:min(96vw,1100px);max-height:94dvh;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);padding:18px}dialog::backdrop{background:#173b30bb}.dialog-bar{display:flex;justify-content:space-between;align-items:center;gap:15px}.dialog-bar h2{font-size:19px;margin:4px 0}#photo-large{width:100%;height:auto;max-height:76dvh;object-fit:contain;display:block;margin-top:15px}#photo-credit{font-size:13px}.empty{padding:25px;background:var(--soft);border-radius:10px}
@media(max-width:640px){.shell{padding:22px 16px}.hero h1{font-size:30px}.subtitle{font-size:16px}.hero{gap:0}.dates{margin:0}.controls{gap:14px}.tabs{display:grid;grid-template-columns:1fr 1fr;width:100%}.tabs button{font-size:15px}.provider{margin-left:auto}.diagram{padding:14px 8px}.diagram h3{padding:0 8px}.diagram figcaption{padding:0 8px;font-size:13px}.city-grid,.card-grid,.photo-grid,.day-layout{grid-template-columns:1fr}.city-card{padding:15px;gap:14px}.city-card img{width:86px;height:80px}.map-controls label:first-child{flex-basis:100%}#route-map{height:430px}.map-controls{gap:8px}.toolbar>label{flex-basis:100%}.toolbar{gap:12px}.day-heading h2{font-size:26px}.day-layout{gap:5px}.info-card{padding:18px}.nav-link{width:100%;justify-content:center}.check-controls>label:first-child{width:100%}.check-controls input[type=search]{width:100%}.check-item{padding:16px}h2{font-size:25px}h3{font-size:22px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
@media print{body{background:white;font-size:12px}.shell{padding:0}.hero,.controls,.toolbar,.check-controls,.section-top>button,footer,dialog{display:none!important}body.print-checklist [role=tabpanel]:not(#view-checklist){display:none!important}body.print-checklist #view-checklist{display:block!important}.check-item{break-inside:avoid;border-color:#888}.check-actions button{display:none}.check-item input{appearance:auto}.notice{display:none}.check-group{margin-top:20px}}
