:root{color:#17382e;background:#f7f8f3;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;margin:0;background:#f7f8f3}button,a{font:inherit;-webkit-tap-highlight-color:transparent}button{cursor:pointer}svg{display:block;width:1.2rem;height:1.2rem;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.85}::selection{color:#fff;background:#206551}::-webkit-scrollbar{width:.55rem;height:.55rem}::-webkit-scrollbar-thumb{border:2px solid #f7f8f3;border-radius:999px;background:#9eb9ad}.travel-app{width:min(100%,48rem);min-height:100vh;margin:0 auto;padding:1.15rem 1rem calc(6.25rem + env(safe-area-inset-bottom))}.tab-panel[hidden],.overview-dialog[hidden]{display:none}h1,h2,p{overflow-wrap:anywhere}h1{margin:0;color:#17382e;font-size:1.5rem;letter-spacing:-.035em}h2{margin:0;color:#17382e;font-size:1rem;line-height:1.42;letter-spacing:-.015em}.panel-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:2.75rem}.itinerary-toolbar{align-items:baseline;margin-bottom:.5rem}.itinerary-toolbar p{margin:0;color:#627a70;font-size:.79rem;line-height:1.45}.refresh-button{display:grid;width:2.55rem;height:2.55rem;place-items:center;padding:0;border:1px solid #cbdcd3;border-radius:50%;color:#205b4a;background:#eef5f0}.refresh-button:hover{border-color:#89b3a1;color:#174e3f;background:#e4f0e9}.refresh-button:disabled{opacity:.7;cursor:wait}.refresh-button.is-refreshing svg{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.weather-list{display:grid;gap:.75rem}.weather-card{padding:.95rem;border:1px solid #d8e4dc;border-radius:.9rem;background:#fff;box-shadow:0 .4rem .9rem #213e2f0b;transition:border-color .18s ease,box-shadow .18s ease}.weather-card.is-current-weather{border-color:#4f967c;box-shadow:0 .5rem 1.1rem #1d654f1a}.weather-card.is-next-weather{border-color:#bad6c8}.weather-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.weather-card-header>div{min-width:0}.weather-card-header h2{font-size:1.03rem}.proxy-label{display:inline-block;margin-top:.3rem;padding:.17rem .42rem;border-radius:999px;color:#4d6a5d;background:#edf5ef;font-size:.7rem;font-weight:750}.weather-navigation,.timeline-navigation{display:inline-flex;align-items:center;justify-content:center;gap:.2rem;flex:0 0 auto;min-height:2.1rem;padding:.42rem .56rem;border-radius:.58rem;color:#15563f;background:#e8f5ee;font-size:.78rem;font-weight:800;text-decoration:none}.weather-navigation svg,.timeline-navigation svg{width:.86rem;height:.86rem}.weather-navigation:hover,.timeline-navigation:hover{color:#fff;background:#216650}.weather-content{margin-top:.75rem}.weather-current-main{display:flex;align-items:baseline;gap:.42rem;color:#47675b;font-size:.9rem}.weather-current-main strong{color:#17382e;font-size:2rem;line-height:1;letter-spacing:-.055em}.weather-now-label{color:#5c766b;font-size:.78rem;font-weight:800}.weather-emoji{flex:0 0 auto;font-size:1.45rem;line-height:1}.weather-condition-icon{width:1.22rem;height:1.22rem;flex:0 0 auto;color:#3a866c}.weather-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem;margin:.7rem 0 0}.weather-details div,.forecast-details div{min-width:0}.weather-details dt,.forecast-details dt{color:#71847b;font-size:.68rem}.weather-details dd,.forecast-details dd{margin:.08rem 0 0;color:#24473b;font-size:.8rem;font-weight:800;white-space:nowrap}.observed-at,.weather-loading,.weather-unavailable{margin:.62rem 0 0;color:#71847b;font-size:.72rem}.weather-unavailable{color:#a95143;font-weight:800}.journey-forecast{margin-top:.78rem;padding-top:.75rem;border-top:1px solid #e5ece7}.forecast-heading{display:flex;align-items:center;gap:.28rem;color:#47675b;font-size:.9rem}.forecast-heading strong{color:#255443;font-size:.8rem}.forecast-heading time{color:#6e857b;font-size:.75rem;font-variant-numeric:tabular-nums}.forecast-heading .weather-condition-icon{width:1rem;height:1rem}.forecast-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem;margin:0}.forecast-details dd{color:#235d49;font-size:.87rem}.journey-brief{display:grid;gap:.45rem;margin:.15rem 0 .9rem;padding:.8rem 0;border-top:1px solid #dce6df;border-bottom:1px solid #dce6df}.journey-brief.is-hidden{display:none}.journey-node{margin:0 0 .05rem;color:#1d634e;font-size:.9rem;font-weight:800}.journey-plan-line{display:grid;grid-template-columns:3.55rem minmax(0,1fr) auto;gap:.4rem;align-items:baseline;padding:.3rem 0;border-radius:.4rem;color:#425f55;font-size:.83rem;line-height:1.45;text-decoration:none}.journey-plan-line:hover{color:#15563f;background:#eef5f0}.journey-plan-line.is-unavailable{pointer-events:none}.journey-plan-line>span:first-child{color:#71877f;font-size:.73rem;font-weight:800}.journey-plan-line p{margin:0}.journey-plan-line .plan-jump{color:#216650;font-size:.7rem;font-weight:800;white-space:nowrap}.timeline{position:relative;display:grid;gap:.78rem}.timeline:before{position:absolute;top:1.5rem;bottom:1.5rem;left:1.05rem;width:2px;background:#c8d8ce;content:""}.day-card{position:relative;display:grid;grid-template-columns:2.15rem minmax(0,1fr);gap:.65rem;scroll-margin-top:1rem}.day-marker{z-index:1;display:grid;width:2.15rem;height:2.15rem;place-items:center;border-radius:50%;color:#fff;background:#28745f;box-shadow:0 0 0 .3rem #f7f8f3;font-size:.76rem;font-weight:800}.day-content{padding:.88rem;border:1px solid #e0e9e2;border-radius:.85rem;background:#fff;box-shadow:0 .35rem .9rem #213e2f0a}.date{margin:0 0 .3rem;color:#568271;font-size:.73rem;font-weight:800;letter-spacing:.045em;font-variant-numeric:tabular-nums}.day-content h2{font-size:.94rem}.accommodation{display:flex;align-items:baseline;gap:.45rem;margin-top:.6rem;padding:.46rem .54rem;border-radius:.52rem;background:#f2f7f3;color:#49665b;font-size:.78rem}.accommodation strong{color:#2c4c3f}.accommodation-pending{background:#fff6e6;color:#93652d}.accommodation-pending strong{color:#80521e}.accommodation-none{background:#f3f3f1;color:#76766e}.place-list,.notes{padding:0;margin:.6rem 0 0;list-style:none}.place-row{display:flex;align-items:center;justify-content:space-between;gap:.65rem;padding:.46rem 0;border-bottom:1px solid #edf1ed;font-size:.86rem}.place-row:last-child{border-bottom:0}.notes{display:grid;gap:.35rem;color:#92612d;font-size:.78rem;line-height:1.45}.notes li{position:relative;padding-left:.9rem}.notes li:before{position:absolute;top:.45rem;left:.15rem;width:.27rem;height:.27rem;border-radius:50%;background:currentColor;content:""}.overview-panel{display:grid;min-height:calc(100vh - 8rem - env(safe-area-inset-bottom));place-items:center}.overview-map-button{width:100%;padding:0;border:0;border-radius:.85rem;background:#fff;box-shadow:0 .45rem 1.1rem #213e2f14;overflow:hidden}.overview-map-button img{display:block;width:100%;height:auto}.overview-map-button:active{transform:scale(.99)}.overview-dialog{position:fixed;z-index:20;inset:0;display:grid;place-items:center;padding:max(1rem,env(safe-area-inset-top)) 1rem max(1rem,env(safe-area-inset-bottom));background:#0c231ce6}.overview-dialog img{max-width:100%;max-height:100%;object-fit:contain}.overview-dialog-close{position:fixed;z-index:1;top:max(.8rem,env(safe-area-inset-top));right:.8rem;display:grid;width:2.65rem;height:2.65rem;place-items:center;border:1px solid rgba(255,255,255,.35);border-radius:50%;color:#fff;background:#12342ac7}.bottom-tab-bar{position:fixed;z-index:9;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(3,1fr);width:min(100%,48rem);min-height:calc(4.55rem + env(safe-area-inset-bottom));margin:0 auto;padding:.42rem .65rem calc(.42rem + env(safe-area-inset-bottom));border-top:1px solid #d5e0d9;background:#fafbf7f7;box-shadow:0 -.35rem .95rem #1c3e2f11}.bottom-tab-bar button{display:grid;align-content:center;justify-items:center;gap:.2rem;padding:.28rem;border:0;border-radius:.62rem;color:#74877e;background:transparent;font-size:.7rem;font-weight:750}.bottom-tab-bar button svg{width:1.22rem;height:1.22rem}.bottom-tab-bar button[aria-selected=true]{color:#175e48;background:#e9f4ed}.wechat-navigation-guide{position:fixed;z-index:30;inset:0;display:grid;place-items:end center;padding:1rem;background:#0d261e7a}.wechat-navigation-guide.is-hidden{display:none}.wechat-menu-cue{position:absolute;top:max(.75rem,env(safe-area-inset-top));right:.7rem;display:grid;justify-items:end;color:#dff0e6;filter:drop-shadow(0 .12rem .2rem rgba(10,35,27,.35));pointer-events:none}.wechat-menu-cue span{padding:.28rem .48rem;border:1px solid rgba(223,240,230,.6);border-radius:.45rem;color:#dff0e6;background:#1b5342e0;font-size:.74rem;font-weight:750;letter-spacing:.01em}.wechat-menu-cue svg{width:5.75rem;height:7.4rem;margin:-.08rem -.22rem 0 0;overflow:visible}.wechat-menu-cue path{stroke-dasharray:180;stroke-dashoffset:180;stroke-width:4;animation:reveal-menu-cue .72s cubic-bezier(.16,1,.3,1) .12s forwards}@keyframes reveal-menu-cue{to{stroke-dashoffset:0}}.wechat-guide-panel{width:min(100%,31rem);padding:1.15rem;border-radius:1rem;background:#fff;box-shadow:0 -.5rem 1.5rem #0d261e2b}.wechat-guide-panel h2{color:#183d31;font-size:1.15rem}.wechat-guide-panel p{margin:.55rem 0 1rem;color:#476258;font-size:.9rem;line-height:1.55}.wechat-guide-actions{display:grid;grid-template-columns:1fr 1.35fr;gap:.6rem}.wechat-guide-actions button,.wechat-guide-actions a{display:grid;min-height:2.75rem;place-items:center;padding:.55rem .7rem;border-radius:.65rem;font-weight:800;text-decoration:none}.wechat-guide-actions button{border:1px solid #cbdcd3;color:#426056;background:#fff}.wechat-guide-actions a{color:#fff;background:#1f6751}button:focus-visible,a:focus-visible{outline:3px solid #e6ad50;outline-offset:3px}@media(min-width:40rem){.travel-app{padding:1.65rem 1.5rem calc(6.25rem + env(safe-area-inset-bottom))}.weather-details{grid-template-columns:repeat(5,minmax(0,1fr))}.day-card{grid-template-columns:2.65rem minmax(0,1fr)}.day-marker{width:2.5rem;height:2.5rem}.timeline:before{left:1.23rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
