/* 山水同行 · a single presentation layer. No external fonts or motion dependencies. */
:root{--ink:#20383c;--muted:#586e70;--paper:#f4f7f5;--line:#d9e3de;--accent:#275e62;--blue:#153f43;--teal:#377a78;--soft:#eaf0ec;--title:"Songti SC","STSong","Noto Serif CJK SC",serif}
html{scroll-behavior:smooth;scroll-padding-top:112px}
.journey-page{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;font-size:15px}
.journey-page ::selection{background:#d8bb82;color:#153f43}
.journey-page header{padding:24px max(calc((100vw - 1280px)/2),40px);border:0;background:var(--paper)}
.journey-page .brand{font-size:25px;font-weight:600;letter-spacing:3px;gap:15px;color:var(--ink)}
.journey-page .brand:before{width:35px;height:42px;border-radius:50% 50% 3px 3px;transform:none;background:#275e62;font-size:21px;font-weight:400}
.journey-page .brand span{letter-spacing:1px;font-size:14px;color:var(--muted)}
.journey-page .header-note{background:none;border:1px solid #cbd8d1;border-radius:30px;padding:7px 13px;color:#506969}
.journey-page main{max-width:1360px;padding:0 40px}
.journey-page h1,.journey-page h2{text-wrap:balance;font-weight:600}
.journey-page h2{letter-spacing:.02em}
.journey-page p{line-height:1.85}
.journey-page a{text-underline-offset:4px}
.skip-content{position:fixed;top:-90px;left:20px;z-index:1000;padding:14px 20px;background:#fff;color:#153f43;border:2px solid #275e62;border-radius:8px}
.skip-content:focus{top:12px}
.journey-page .journey-cover{border-radius:8px 8px 48px 8px;min-height:380px;padding:54px 56px;background:#153f43 url('karst-bridge.svg') center/cover no-repeat;align-items:center;margin-bottom:0;gap:28px}
.journey-page .journey-cover:after{background:none}
.journey-page .journey-cover>div:first-child{max-width:68%}
.journey-page .journey-cover h1{font-size:clamp(36px,4.2vw,60px);font-weight:500;line-height:1.32;letter-spacing:.04em;margin:24px 0 20px;color:#f5f5e9}
.journey-page .journey-cover .eyebrow{border:0;border-radius:0;padding:0;color:#d2dcd0;font-size:14px;font-weight:400;letter-spacing:1.2px}
.journey-page .journey-cover p{font-size:15px;color:#d5e4df;line-height:1.95;max-width:490px}
.journey-page .journey-cover .budget{background:#183e40e8;backdrop-filter:none;border:1px solid #b4c6b44d;border-radius:4px 4px 22px 4px;padding:22px 26px;max-width:285px;min-width:250px;align-self:flex-end;z-index:1}
.journey-page .journey-cover .budget strong{font-size:36px;line-height:1.55;color:#f0dfb9;font-variant-numeric:tabular-nums}
.journey-page .journey-cover .budget small{color:#d8e3db;line-height:1.7}
.booked-page .journey-cover{min-height:540px;align-items:center;padding-bottom:48px}
.booked-page .journey-cover h1{font-size:clamp(42px,4.9vw,70px)}
.cover-cta{display:inline-flex;align-items:center;gap:42px;padding:13px 0;border-bottom:1px solid #bac9b3;color:#f3eedf;text-decoration:none;font-size:14px;margin-top:20px}
.cover-cta span{font-size:23px;transition:transform .2s}.cover-cta:hover{color:white;text-decoration:none}.cover-cta:hover span{transform:translateY(4px)}
.landscape-caption{position:absolute;right:32px;top:30px;writing-mode:vertical-rl;letter-spacing:3px;font-size:14px;color:#e2e7d4;opacity:.85}
.journey-page .module-switcher{position:sticky;top:0;z-index:30;margin:0 0 48px;padding:16px 0;background:#f4f7f5f5;backdrop-filter:blur(12px);border-bottom:1px solid #d9e3de;border-radius:0}
.journey-page .module-hint{display:none}
.journey-page .module-switcher .page-nav{gap:6px;grid-template-columns:repeat(5,minmax(0,1fr))}
.journey-page .module-switcher .page-nav a{min-height:58px;background:none;border:0;border-radius:8px;gap:10px;color:#566d6c;font-size:14px;box-shadow:none;transition:color .18s,background .18s}
.journey-page .module-switcher .page-nav a strong{font-weight:550}
.journey-page .module-switcher .page-nav a:hover{background:#e6eeea;color:#153f43}
.journey-page .module-switcher .page-nav a.selected{background:#153f43;color:#f5f7ec;box-shadow:none;border:0}
.module-icon{width:22px;height:22px}
.journey-page .booking-summary{margin:52px 0 32px;gap:60px;align-items:flex-end}
.journey-page .booking-summary>div:first-child{max-width:690px}
.journey-page .booking-summary h2{font-size:clamp(26px,3vw,38px);margin:12px 0 18px}
.journey-page .booking-summary p{font-size:14px;color:#586e70;line-height:1.95;margin-bottom:0}
.journey-page .eyebrow{color:#47716a;letter-spacing:.5px;font-weight:500;font-size:14px}
.journey-page .booking-summary>.stay-actions{max-width:265px;gap:8px}
.journey-page .stay-actions a,.journey-page .stay-actions button{border-radius:6px;border:1px solid #cbd9d0;background:#f5f8f5;color:#275a54;font-size:14px;min-height:44px;padding:12px 16px;transition:background .18s,border-color .18s}
.journey-page .stay-actions a:first-child{background:#275e62;border-color:#275e62;color:white}
.journey-page .stay-actions a:hover,.journey-page .stay-actions button:hover{background:#dce9e2;border-color:#9ab6a9;text-decoration:none}
.journey-page .stay-actions a:first-child:hover{background:#153f43}
.journey-page .stay-jump{gap:0;border-top:1px solid #c8d7cd;border-bottom:1px solid #c8d7cd;margin:36px 0 60px}
.journey-page .stay-jump a{position:relative;background:none;border:0;border-right:1px solid #d9e3de;border-radius:0;padding:23px 26px;color:#365854;font-size:14px;transition:background .2s}
.journey-page .stay-jump a:last-child{border-right:0}
.journey-page .stay-jump small{font:32px/1.2 Georgia,serif;letter-spacing:-1px;color:#203f3f;margin-bottom:9px}
.journey-page .stay-jump a:hover,.journey-page .stay-jump a[aria-current="location"]{background:#e2ece5}
.journey-page .stay-jump a[aria-current="location"]:after{content:"";height:3px;background:#377a78;position:absolute;bottom:-1px;left:0;right:0}
.booked-page .confirmed-stays{gap:64px;padding-left:0}
.booked-page .confirmed-stays:before,.stay-stop-heading:before{display:none}
.stay-stop-heading{margin:0 0 18px;gap:16px}.stay-stop-heading time{font-family:Georgia,"Songti SC",serif;font-size:29px;font-weight:400;color:#254e4b}.stay-stop-heading span{color:#61766e}.stay-stop-heading b{background:#e1ebe2;color:#376249;border-radius:4px;margin-left:auto}
.confirmed-stay{grid-template-columns:43% 57%;border:1px solid #dce5de;border-radius:8px 8px 24px 8px;background:white;box-shadow:0 12px 42px #284a3604;scroll-margin-top:115px}
.stay-image{min-height:540px;background:#dce5de;overflow:hidden}.stay-image img{transition:transform .65s cubic-bezier(.2,.65,.3,1);filter:saturate(.88)}
.stay-image span{padding:44px 24px 20px;font-size:14px;background:linear-gradient(transparent,#173f43d9)}
.stay-content{padding:36px 40px}.stay-kicker{font-size:14px;color:#597469;gap:12px;letter-spacing:.3px}.stay-kicker b{padding:6px 10px;border-radius:4px;font-weight:500;background:#eaf2e9;color:#3c654b}
.journey-page .stay-content h2{font-size:28px;line-height:1.5;color:#203f3f;margin-top:18px}.stay-room{font-size:14px;color:#61756e}
.stay-dates{gap:28px;margin:26px 0;border-color:#e0e8e3;padding:20px;background:#f5f8f5;border-radius:5px;justify-content:space-between}
.stay-dates strong{font:22px/1.5 Georgia,serif;color:#284e4a}.stay-dates small,.stay-dates span{color:#5d746b}.stay-dates span{line-height:1.7}
.stay-price{margin:26px 0;gap:20px}.stay-price strong{font-size:43px;font-weight:400;letter-spacing:-1px;color:#245a53;font-variant-numeric:tabular-nums}.stay-price span{color:#5d746b}
.taxi-address{padding-top:18px;border-top:1px solid #e0e8e3;margin-bottom:18px;font-size:14px;color:#47645c}.taxi-address b{color:#5b7267;font-size:14px;letter-spacing:0}
.stay-content details{border-top:1px solid #e0e8e3;padding-top:16px;color:#5d7068}.stay-content details summary{min-height:28px;color:#47645c}.stay-content details[open] summary{margin-bottom:16px}
.journey-page .status{background:#eaf0ec;border-color:#85a799;color:#405e54;border-radius:4px;padding:18px 22px;margin-top:36px;font-size:14px}
.journey-page .trip-section{margin-top:64px;scroll-margin-top:116px}.journey-page .trip-section h2{font-size:32px;margin-bottom:20px}
.journey-page .anchor-nav a{border-color:#cbd9d0;color:#365a53;background:transparent;min-height:44px;display:inline-flex;align-items:center}
.journey-page .milestones a{border-color:#d9e3de;border-radius:6px;background:white}.journey-page .milestones strong{color:#376a62}
.journey-page .itinerary-tabs button{border-color:#d9e3de;border-radius:6px;padding:16px 20px}.journey-page .itinerary-tabs button[aria-pressed=true]{background:#275e62;border-color:#275e62}
.journey-page .itinerary-tabs button span{color:#375e54}.journey-page .itinerary-tabs button[aria-pressed=true] span{color:#fff}
.journey-page .itinerary-day{border-color:#d9e3de;border-radius:8px}.journey-page .day-heading{background:#e6efea;padding:28px 32px}.journey-page .day-date{color:#275e62;border-color:#bccfc4}.journey-page .timeline{padding:12px 32px}.journey-page .timeline li{padding:24px 0;border-color:#e0e8e3}.journey-page .timeline time{color:#3b6d62;font-variant-numeric:tabular-nums}.journey-page .timeline li>div{border-color:#b5cfc4}.journey-page .timeline li>div:before{background:#3b786e;box-shadow:0 0 0 4px #edf5ef}
.journey-page .ticket-box{background:#e9f0e8;border-color:#d4e1d1;border-radius:8px;padding:32px;gap:40px}.journey-page .ticket-qr{border-radius:4px}
.journey-page .contact-card{border-color:#d9e3de;border-radius:8px;padding:28px}.journey-page .contact-card.primary-contact{background:#e7f0e9;border-color:#b6cebd}.journey-page .contact-card .phone{color:#275e62}.journey-page .contact-card h3{line-height:1.6}.journey-page .area-guide,.journey-page .booking-note,.journey-page .hotel-pending{background:#e9f0ec;border-radius:8px}.journey-page .area-columns article{border-color:#d9e3de;border-radius:6px}
.journey-page .expenses thead,.journey-page .overview thead th{background:#e6efea;color:#3a5e52}.journey-page .table-wrap,.journey-page .expense-wrap{border-color:#d9e3de;border-radius:8px}.journey-page table th,.journey-page table td{border-color:#e1e8e3}
.journey-page footer{margin-top:64px;border-color:#cddcd3;padding:30px 0;color:#61736b;font-size:14px;max-width:100%;line-height:1.85}
/* Keep the shared notebook compact: the scenery gives way to the task. */
.community-page .journey-cover{min-height:280px;padding:36px 48px;background-position:center 55%}.community-page .journey-cover h1{font-size:40px;line-height:1.3;margin:14px 0}.community-page .journey-cover>div:first-child{max-width:75%}
.community-page .module-switcher{margin-bottom:24px}.community-page .sync-bar{padding:4px 0 18px;border-bottom:1px solid #dce5df;color:#567263}
.community-page .ledger-choice{padding:26px 30px;border-radius:8px;border-color:#cbdcd1;background:white}.community-page .ledger-choice:before{background:#679c84;width:4px}.community-page .ledger-choice select{background:#edf4ee;border-color:#9dbca8;color:#275d4e;min-height:48px}
.community-page .community-panel{border-color:#d9e3de;border-radius:8px;padding:30px}.community-page .community-panel h2{font-size:27px}.community-page .community-panel h3{font-size:17px}.community-page .hint{color:#597166}
.community-page .summary-strip{gap:16px;margin:24px 0 32px}.community-page .summary-strip>div{border-radius:7px;border-color:#d9e3de;padding:24px 28px}.community-page .summary-strip>div:first-child{background:#214e4d;border-color:#214e4d}.community-page .summary-strip strong{font-size:38px;letter-spacing:-1px;font-variant-numeric:tabular-nums}.community-page .summary-strip span{color:#597166}.community-page .summary-strip>div:first-child span{color:#d8e4d9}
.community-page .analysis-totals{background:#eef4ef;border-radius:6px}.community-page input:not([type=checkbox]),.community-page select,.community-page textarea{border-color:#b8cdc0;border-radius:6px;accent-color:#377a78}.community-page .community-panel button,.community-page .sync-bar button{background:#275e62;border-color:#275e62;border-radius:6px;min-height:44px}.community-page .community-panel button.secondary,.community-page .sync-bar button.secondary{background:#f4f8f4;color:#275e62;border-color:#cbdacf}
.community-page .empty-state{background:#f5f8f4;border-color:#bccfbd;color:#536e5c;border-radius:6px;padding:40px 24px}.community-page .receipt{border-color:#cadace;border-radius:6px}.community-page .receipt>summary{background:#edf3ed}.community-page .receipt-total b{color:#275e62}.community-page .record-jump{background:#e3f0e8;color:#275e62}
.community-page .photo-card{border-radius:7px;border-color:#d9e3de}.community-page #photo-files{background:#edf4ee;border-color:#9ebbab}.community-page #photo-files::file-selector-button{background:#275e62}.community-page .photo-open img{height:260px;object-fit:cover}
.journey-page :is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #aa762e;outline-offset:4px}
.journey-page :is(button,a,summary){-webkit-tap-highlight-color:#377a7826;touch-action:manipulation}
.journey-page button:active,.journey-page .stay-actions a:active{transform:translateY(1px)}
@media(hover:hover){.stay-image:hover img{transform:scale(1.035)}}
@media(min-width:1100px){.booked-page .journey-cover>div:first-child{max-width:65%}.stay-stop:nth-child(even) .confirmed-stay{grid-template-columns:57% 43%}.stay-stop:nth-child(even) .stay-image{grid-column:2;grid-row:1}.stay-stop:nth-child(even) .stay-content{grid-column:1;grid-row:1}}
@media(max-width:1100px){.journey-page main{padding:0 28px}.journey-page header{padding:22px 28px}.journey-page .journey-cover{padding:40px;min-height:360px}.booked-page .journey-cover{min-height:480px}.journey-page .journey-cover .budget{min-width:210px;max-width:240px;padding:18px}.journey-page .journey-cover .budget strong{font-size:30px}.confirmed-stay{grid-template-columns:40% 60%}.stay-content{padding:28px}.journey-page .stay-content h2{font-size:25px}.stay-dates{padding:16px;gap:16px}.stay-dates strong{font-size:20px}.journey-page .booking-summary{gap:28px}}
@media(max-width:800px){.confirmed-stay{grid-template-columns:1fr}.stay-image{height:280px;min-height:280px}.stay-content{padding:26px}.journey-page .booking-summary{display:block}.journey-page .booking-summary>.stay-actions{max-width:none;margin-top:22px}.journey-page .stay-jump{grid-template-columns:repeat(4,minmax(0,1fr))}.journey-page .stay-jump a{padding:18px 12px;font-size:14px}.journey-page .stay-jump small{font-size:28px}.journey-page .ticket-box{grid-template-columns:1fr}.journey-page .ticket-qr{max-width:300px}}
@media(max-width:760px){
 html{scroll-padding-top:18px}.journey-page header{padding:18px 20px}.journey-page .brand{font-size:21px;gap:10px;letter-spacing:2px}.journey-page .brand:before{width:28px;height:34px;font-size:18px}.journey-page .header-note{font-size:14px;padding:5px 8px}
 .journey-page main{padding:0 16px 98px}.journey-page .journey-cover{padding:28px 26px;min-height:305px;border-radius:6px 6px 32px 6px;background-position:62% center;margin-bottom:20px}.journey-page .journey-cover>div:first-child,.community-page .journey-cover>div:first-child{max-width:100%}
 .journey-page .journey-cover h1,.community-page .journey-cover h1{font-size:34px;letter-spacing:1px;line-height:1.38;max-width:390px;margin:22px 0 16px}.journey-page .journey-cover p{font-size:14px;line-height:1.9;max-width:295px}.journey-page .journey-cover .eyebrow{font-size:14px;letter-spacing:.8px}
 .booked-page .journey-cover{min-height:450px;background-position:65% center;padding-top:32px}.booked-page .journey-cover h1{font-size:38px}.cover-cta{font-size:14px;gap:30px;padding:7px 0;margin-top:14px}.landscape-caption{display:none}
 .journey-page .journey-cover .budget{margin-top:26px;padding:14px 16px;min-width:0;max-width:none;border-radius:4px 4px 15px 4px;width:100%;background:#163e40ee;gap:4px 8px}.journey-page .journey-cover .budget strong{font-size:26px}.journey-page .journey-cover .budget>span{font-size:14px}.journey-page .journey-cover .budget small{font-size:14px;line-height:1.75}
 .journey-page .module-switcher{position:static;padding:0;margin:0 0 28px;border:0;background:none;backdrop-filter:none}.journey-page .module-hint{display:flex;justify-content:center;padding:4px 0;margin:0;color:#536d5f}.journey-page .module-hint b{font-size:14px}.journey-page .module-hint b:before{display:none}.journey-page .module-hint b:after{content:' · 点击底部图标切换';color:#536d5f}
 .journey-page .module-switcher .page-nav{padding:8px 8px max(8px,env(safe-area-inset-bottom));gap:2px;background:#fbfdfaf5;backdrop-filter:blur(15px);box-shadow:0 -5px 30px #153f4308;border-top:1px solid #d2dfd5;z-index:50}.journey-page .module-switcher .page-nav a{min-height:54px;font-size:14px;border-radius:7px;gap:4px;padding:6px 1px}.journey-page .module-switcher .page-nav a.selected{background:#e3eee5;color:#214e4d}.module-icon{width:21px;height:21px}
 .journey-page .booking-summary{margin:26px 0 24px}.journey-page .booking-summary h2{font-size:27px;margin:10px 0 14px}.journey-page .booking-summary p{font-size:14px;line-height:1.9}.journey-page .booking-summary>.stay-actions{gap:6px}.journey-page .stay-actions a,.journey-page .stay-actions button{font-size:14px;padding:10px 12px;min-height:44px}
 .journey-page .stay-jump{margin:26px 0 34px}.journey-page .stay-jump a{font-size:14px;padding:15px 6px}.journey-page .stay-jump small{font-size:26px;margin-bottom:8px}
 .booked-page .confirmed-stays{padding-left:0;gap:38px}.stay-stop-heading{gap:12px;margin-bottom:13px}.stay-stop-heading time{font-size:25px}.stay-stop-heading span{font-size:14px}.stay-stop-heading b{font-size:14px}
 .confirmed-stay{border-radius:6px 6px 20px 6px;scroll-margin-top:20px}.stay-image{height:230px;min-height:230px}.stay-stop .stay-content{padding:23px 20px}.journey-page .stay-content h2{font-size:25px;margin:18px 0 12px}.stay-kicker{font-size:14px;gap:6px}.stay-kicker b{font-size:14px;padding:5px 7px}.stay-room{font-size:14px;line-height:1.8}
 .stay-stop .stay-dates{padding:14px 12px;gap:8px;margin:20px 0}.stay-stop .stay-dates strong{font-size:19px}.stay-dates small,.stay-dates span{font-size:14px}.stay-price{margin:24px 0;gap:16px}.stay-price strong{font-size:38px}.stay-price span{font-size:14px}.taxi-address{font-size:14px}.stay-content details{font-size:14px;margin-top:22px}.stay-content details summary{min-height:36px;display:list-item;align-content:center}
 .journey-page .trip-section{margin-top:40px;scroll-margin-top:20px}.journey-page .trip-section h2{font-size:27px}.journey-page .anchor-nav{gap:6px}.journey-page .anchor-nav a{font-size:14px;padding:8px 12px}.journey-page .ticket-box{padding:22px;gap:24px}.journey-page .day-heading{padding:22px 20px}.journey-page .timeline{padding:4px 20px}.journey-page .timeline li{padding:20px 0;gap:9px}.journey-page .timeline time{font-size:14px}.journey-page .timeline p{font-size:14px}.journey-page .contact-card{padding:23px}.journey-page .contact-card .phone{font-size:28px}.journey-page .status{font-size:14px;padding:16px 18px}.journey-page footer{margin-top:40px;font-size:14px;padding:24px 0}
 .community-page .journey-cover{min-height:230px;padding:26px}.community-page .journey-cover h1{font-size:30px;margin:17px 0 12px}.community-page .community-panel{padding:22px 18px;border-radius:7px}.community-page .community-panel h2{font-size:24px}.community-page .ledger-choice{gap:14px}.community-page .ledger-choice select{width:100%;min-width:0;font-size:16px}.community-page .summary-strip{gap:8px;margin:18px 0 24px}.community-page .summary-strip>div{padding:18px 14px;border-radius:6px}.community-page .summary-strip strong{font-size:26px}.community-page .summary-strip span{font-size:14px}.community-page .analysis-totals{padding:14px}.community-page .photo-gallery{gap:14px}.community-page .sync-bar{flex-wrap:wrap;gap:8px}.community-page .sync-bar button{font-size:14px;padding:8px 12px}
}
@media(max-width:360px){.journey-page .journey-cover{padding:25px 20px}.booked-page .journey-cover h1{font-size:33px}.journey-page .journey-cover .budget{grid-template-columns:1fr}.journey-page .journey-cover .budget strong{grid-column:1;grid-row:auto;font-size:30px}.journey-page .journey-cover .budget small{max-width:none}.stay-stop .stay-content{padding:22px 16px}.stay-stop .stay-dates strong{font-size:17px}.journey-page .stay-jump small{font-size:23px}.community-page .summary-strip strong{font-size:23px}}
@media(prefers-reduced-motion:no-preference){.journey-cover>div:first-child{animation:cover-intro .65s cubic-bezier(.2,.7,.25,1) both}@keyframes cover-intro{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}details[open]>:not(summary){animation:detail-in .18s ease-out}@keyframes detail-in{from{opacity:.3}to{opacity:1}}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.journey-page *, .journey-page *:before,.journey-page *:after{animation:none!important;transition:none!important}}
@media print{.journey-page .module-switcher,.cover-cta,.skip-content{display:none}.journey-page .journey-cover{min-height:0;background:#fff;color:#20383c;padding:20px}.journey-page .journey-cover h1,.journey-page .journey-cover p{color:#20383c}.journey-page main{padding:0}.confirmed-stay{break-inside:avoid}.landscape-caption{display:none}}
/* Second visual pass: remove compounded margins inherited from the first layout. */
.journey-page .booking-summary{padding:6px 0 12px}
@media(max-width:760px){.journey-page .booking-summary{padding:0;margin-top:24px}.journey-page .booking-summary>.stay-actions a{flex:1 1 auto}.community-page .sync-bar button{margin-top:0}}
.community-page .analysis-totals strong{color:#275e62}
.community-page .chart-columns>section{background:#f5f8f4;border-radius:6px}
.community-page .pie-0,.community-page .bar-shared{fill:#275e62}
.community-page .pie-1,.community-page .bar-personal{fill:#b99a54}
.community-page .pie-2{fill:#77a185}.community-page .pie-3{fill:#b4c5a2}.community-page .pie-4{fill:#708b9e}.community-page .pie-5{fill:#a18392}
.community-page .chart-legend .legend-shared:before{background:#275e62}.community-page .chart-legend .legend-personal:before{background:#b99a54}
.community-page .spend-bar{background:#e4ece5}
/* Readability revision: content is 16px, secondary information is at least 14px. */
.journey-page{font-size:16px}
.journey-page :is(.booking-summary p,.timeline p,.contact-card p,.area-columns p,.day-summary p,.status,.taxi-address,.stay-room,.community-panel>p){font-size:16px;line-height:1.85}
.journey-page :is(.stay-content details,.stay-dates small,.stay-dates span,.stay-price span,.stay-kicker,.stay-kicker b,.stay-stop-heading span,.stay-stop-heading b,.source-note,.hint,.receipt-note,.receipt-line,.chart-row-head,.chart-row-head b,.analysis-totals span,.summary-strip span,.module-hint b,.header-note,footer){font-size:14px;line-height:1.7}
.community-page .hint{font-size:14px!important}
.journey-page :is(.stay-actions a,.stay-actions button,.anchor-nav a,.itinerary-tabs button b,.community-panel label,.community-panel legend){font-size:15px}
.journey-page .stay-kicker{flex-wrap:wrap}.journey-page .stay-dates>div{min-width:0}.journey-page .stay-dates span{overflow-wrap:anywhere}
.journey-page .journey-cover p{font-size:17px}.journey-page .journey-cover .budget>span,.journey-page .journey-cover .budget small{font-size:14px;line-height:1.7}
.journey-page .module-switcher .page-nav{position:relative;isolation:isolate;background:#e6ede8;border-radius:12px;padding:6px}
.journey-page .module-switcher .page-nav a{position:relative;z-index:1;font-size:16px;min-height:58px;transition:color .2s,background .2s}
.journey-page .module-switcher .page-nav a strong{font-weight:650}
.nav-highlight{position:absolute;left:0;top:0;width:var(--tab-w,0px);height:var(--tab-h,0px);transform:translate(var(--tab-x,0px),var(--tab-y,0px));background:#275e62;border:1px solid #347273;border-radius:8px;box-shadow:0 4px 14px #153f4320;z-index:0;pointer-events:none}
.page-nav.nav-ready .nav-highlight{transition:transform .34s cubic-bezier(.22,.75,.25,1),width .34s cubic-bezier(.22,.75,.25,1),height .2s}
.journey-page .module-switcher .page-nav.nav-ready a.selected{background:transparent;color:#fff}
.journey-page .module-switcher .page-nav.nav-ready a.selected:hover{background:transparent}
.journey-page .module-switcher .page-nav a:active{transform:none}
.journey-page .module-switcher .page-nav .module-icon{transition:transform .22s}
.journey-page .module-switcher .page-nav a.selected .module-icon{transform:translateY(-1px)}
@media(max-width:760px){
 .journey-page .module-switcher .page-nav{position:fixed;border-radius:0;padding:8px 7px max(8px,env(safe-area-inset-bottom));background:#f9fcf8f5}
 .journey-page .module-switcher .page-nav a{font-size:12px;min-height:62px;gap:5px;white-space:nowrap}
 .journey-page .module-switcher .page-nav a.selected{background:#275e62;color:#fff}
 .journey-page .module-switcher .page-nav .module-icon{width:24px;height:24px}
 .journey-page main{padding-bottom:110px}
 .journey-page .stay-jump{grid-template-columns:repeat(2,minmax(0,1fr))}
 .journey-page .stay-jump a{font-size:15px;padding:18px}.journey-page .stay-jump a:nth-child(2){border-right:0}.journey-page .stay-jump a:nth-child(-n+2){border-bottom:1px solid #d9e3de}
 .journey-page .journey-cover .budget{display:flex;flex-direction:column;align-items:flex-start;gap:6px;max-width:100%;padding:16px 18px}
 .journey-page .journey-cover .budget>span,.journey-page .journey-cover .budget small{max-width:none}
 .journey-page .journey-cover .budget strong{font-size:34px;line-height:1.3}
 .journey-page .header-note{font-size:12px}.journey-page header{gap:8px}.journey-page .brand{letter-spacing:1px}
 .journey-page .module-hint b{font-size:14px}.journey-page .module-hint b:after{content:' · 底部切换模块'}
 .journey-page .stay-content .stay-actions{gap:8px}.journey-page .stay-content .stay-actions a,.journey-page .stay-content .stay-actions button{font-size:14px;padding:11px 12px}
 .community-page .analysis-totals span,.community-page .summary-strip span,.community-page .chart-row-head,.community-page .chart-row-head b,.community-page .receipt-note{font-size:14px}
 .journey-page .stay-price{flex-wrap:wrap}.journey-page .stay-stop-heading{flex-wrap:wrap}
}
@media(max-width:360px){.journey-page .header-note{max-width:128px;white-space:normal;text-align:right}.journey-page .stay-dates{flex-wrap:wrap}.journey-page .stay-dates>div{flex:1}.journey-page .stay-dates strong{font-size:18px}}
@media(prefers-reduced-motion:reduce){.page-nav.nav-ready .nav-highlight{transition:none}}
/* Atmosphere is confined to the cover; content never floats while being read. */
.journey-page .journey-cover.motion-scene{background-image:none}
.journey-cover.motion-scene:before{content:"";position:absolute;inset:-10px;z-index:-2;background:#153f43 url('karst-bridge.svg') center/cover no-repeat;transform:translate3d(var(--scene-x,0px),var(--scene-y,0px),0);transition:transform .65s cubic-bezier(.18,.7,.24,1);pointer-events:none}
.journey-page .journey-cover.motion-scene:after{inset:auto -10% 2% 38%;height:15%;z-index:-1;opacity:.28;background:repeating-linear-gradient(174deg,transparent 0 17px,#c8e3d533 18px 19px,transparent 21px 38px);mask-image:linear-gradient(90deg,transparent,#000 35%,#000 75%,transparent);animation:water-shimmer 9s ease-in-out infinite alternate}
@keyframes water-shimmer{from{transform:translate3d(-15px,0,0);opacity:.13}to{transform:translate3d(20px,3px,0);opacity:.34}}
.motion-toggle{position:absolute;top:20px;right:24px;z-index:2;border:1px solid #d0dfce80;background:#173f43db;color:#edf4e8;border-radius:30px;padding:8px 12px;font:14px/1.4 inherit;font-family:inherit;font-size:14px;min-height:38px;cursor:pointer}
.motion-toggle:hover{background:#285d5d}.motion-toggle:disabled{cursor:default;opacity:.85}
.journey-page .landscape-caption{top:80px}
.journey-page .tap-surface{position:relative;overflow:hidden}
.tap-wave{position:absolute;left:var(--wave-x);top:var(--wave-y);width:20px;height:20px;margin:-10px;border-radius:50%;background:currentColor;opacity:0;pointer-events:none;animation:tap-wave .5s ease-out forwards}
@keyframes tap-wave{0%{opacity:.22;transform:scale(.2)}100%{opacity:0;transform:scale(12)}}
.motion-off .journey-cover.motion-scene:before{transform:none!important;transition:none}
.motion-off .journey-cover.motion-scene:after{animation:none;opacity:.16}
.motion-off .tap-wave{display:none}
.motion-off .nav-highlight,.motion-off .module-icon{transition:none!important}
@media(max-width:760px){.journey-cover.motion-scene:before{background-position:65% center}.journey-page .journey-cover.motion-scene{padding-top:72px}.motion-toggle{top:17px;right:20px;font-size:14px;padding:7px 11px}.journey-page .journey-cover.motion-scene:after{left:10%;height:12%}}
@media(prefers-reduced-motion:reduce){.journey-cover.motion-scene:before{transform:none!important}.journey-page .journey-cover.motion-scene:after{animation:none;opacity:.16}.tap-wave{display:none}}
.journey-page .journey-cover.motion-scene:after{animation-play-state:var(--scene-visible,running)}
@media(max-width:360px){.journey-page .header-note{display:none}}
/* Public template readability: match chart legends to slices and keep name buttons legible. */
.journey-page .brand:before{content:'山'}
.community-page .community-panel button.chart-person{color:#204842;background:transparent;border-color:#afc6bb;margin:0;padding:7px 12px}
.community-page .community-panel button.chart-person[aria-pressed=true]{background:#275e62;color:white}
.community-page .category-0 .chart-row-head>span:before{background:#275e62}.community-page .category-1 .chart-row-head>span:before{background:#b99a54}.community-page .category-2 .chart-row-head>span:before{background:#77a185}.community-page .category-3 .chart-row-head>span:before{background:#b4c5a2}.community-page .category-4 .chart-row-head>span:before{background:#708b9e}.community-page .category-5 .chart-row-head>span:before{background:#a18392}
