:root{--onimg:#f4f2ec;--lead:#2b2c28;--okfg:#3a4a24;--line2:rgba(28,29,26,.16);--ink2:#3d3f3a;--okbg:#e4e9d8;--warnbg:#f3e3dd;--bg:#f4f2ec;--ink:#1c1d1a;--sub:#5d5f59;--mute:#8d8f88;--red:#a63d27;--pink:#f2c9bf;--card:#ebe8df;--green:#4f6233;--blue:#2f5f74;--line:rgba(28,29,26,.12);
  --serif:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong",serif;
  --sans:"Noto Sans SC",-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:60px}
body{margin:0;background:var(--bg);color:var(--ink);font:16px var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}img{display:block;max-width:100%}
h1,h2,h3{margin:0;font-family:var(--serif);font-weight:900}
button{font-family:inherit}
:focus-visible{outline:2px solid var(--red);outline-offset:2px}
main{max-width:430px;margin:0 auto;background:var(--bg);min-height:100vh;position:relative}
@media (min-width:600px){body{background:#e4e1d8}main{box-shadow:0 0 0 1px rgba(28,29,26,.06)}}
.top,.crumbs{display:none}

/* ——— 行程页 ——— */
.hero{position:relative;height:380px;overflow:hidden;background:#1d140d}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 100%}
.hero.text{height:300px}
.hero .mark{position:absolute;right:-6px;top:56px;font:900 132px/1 var(--serif);color:rgba(244,242,236,.09);white-space:nowrap}
.hero-t{position:absolute;left:20px;right:20px;bottom:18px;color:var(--onimg);display:flex;flex-direction:column;gap:6px}
.kick{font:700 12px var(--sans);letter-spacing:.2em;color:var(--pink)}
.hero-t h1{font-size:34px;line-height:1.15}
.sq{position:absolute;top:14px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--bg);color:var(--ink);border:0;cursor:pointer;z-index:2}
.sq.l{left:14px}.sq.l2{left:64px}.sq.rt{right:14px}.sq.home b{font:900 18px var(--serif)}
.glance{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:16px 20px 0}
.glance>div{display:flex;flex-direction:column;gap:4px;min-width:0}
.glance b{font:900 20px/1.4 var(--serif);white-space:nowrap}
.glance b.big{font-size:28px;line-height:1}.glance b.big small{font:600 14px var(--sans)}
.glance b.price{font-size:15px;line-height:1.3}
.glance small{font-size:13px;color:var(--sub)}
.glance .pp{align-self:flex-start;height:32px;margin:-6px 0 -6px -2px;padding:0 2px;border:0;background:transparent;font:700 13px var(--sans);color:var(--red);cursor:pointer}
.ppl[hidden]{display:none}.ppl{margin:12px 20px 0;padding:8px 8px 8px 16px;background:var(--card);display:flex;align-items:center;justify-content:space-between}
.ppl span{font-size:13px;color:var(--ink2)}.ppl div{display:flex;align-items:center;gap:4px}
.ppl button{width:44px;height:40px;border:0;background:var(--bg);font-size:18px;font-weight:700;cursor:pointer}
.ppl b{min-width:40px;text-align:center;font-size:15px}
.pre{margin:22px 20px 0;padding:16px;background:var(--card)}
.pre h2{font:700 12px var(--sans);letter-spacing:.16em;color:var(--red);margin-bottom:10px}
.pre ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}
.pre label{display:flex;gap:10px;align-items:flex-start;cursor:pointer}
.pre input{appearance:none;-webkit-appearance:none;flex:none;width:18px;height:18px;margin:2px 0 0;border:2px solid var(--ink);background:var(--bg);cursor:pointer}
.pre input:checked{background:var(--ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f4f2ec' stroke-width='3.5'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center/14px no-repeat}
.pre label span{font-size:15px;font-weight:700;line-height:1.45}
.pre input:checked+span{color:var(--mute);text-decoration:line-through}
.pre li.fit{position:relative;padding-left:28px;font-size:14px;line-height:1.55;color:var(--ink2)}
.pre li.fit:before{content:"";position:absolute;left:6px;top:.55em;width:6px;height:6px;background:var(--mute)}
.overview{padding:30px 20px 0}
.overview h2{font-size:22px;line-height:normal}
.overview ol{list-style:none;margin:6px 0 0;padding:0}
.overview a{display:flex;align-items:center;gap:12px;padding:10px 0}.overview i{flex:none;width:40px;font-style:normal;font-size:13px;color:var(--sub);font-variant-numeric:tabular-nums}
.overview b{flex:none;width:22px;font:900 17px var(--serif);color:var(--red)}
.overview .ot{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.overview .ot strong{font-size:15px}.overview .ot small{font-size:12px;color:var(--sub)}
.overview em{flex:none;font-style:normal;font-size:13px;color:var(--sub);font-variant-numeric:tabular-nums}
.daynav{position:sticky;top:0;z-index:10;display:flex;background:var(--bg);box-shadow:0 1px 0 var(--line);margin-top:24px}
.daynav a{flex:1;min-width:0;height:44px;display:flex;align-items:center;justify-content:center;font:900 15px var(--serif)}
.daynav a.on{background:var(--ink);color:var(--bg)}
.day{padding:44px 20px 0}
.day header{display:flex;align-items:flex-end;gap:14px}
.day .no{font:900 56px/.88 var(--serif);color:var(--red)}
.day header div{display:flex;flex-direction:column;gap:4px;min-width:0}
.day header small{font-size:13px;color:var(--sub)}
.day h2{font-size:24px;line-height:1.2}
.facts{margin-top:16px;display:grid;grid-template-columns:repeat(auto-fit,minmax(58px,1fr));gap:4px}
.fx{display:flex;flex-direction:column;gap:2px}
.fx small{font-size:12px;color:var(--sub)}.fx b{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}
.note{margin:8px 0 0;font-size:13px;color:var(--ink2)}.note b{color:var(--red);margin-right:1em}
.day .lead{margin:14px 0 0;font:17px/1.9 var(--serif);color:var(--lead)}
.tl{list-style:none;margin:14px 0 0;padding:0}
.r{position:relative;display:flex;align-items:center;gap:12px;min-height:48px;padding:6px 0}
.r:before{content:"";position:absolute;left:64px;top:0;bottom:0;width:2px;background:var(--line2)}
.r:first-child:before{top:50%}.r:last-child:before{bottom:50%}
.r time{flex:none;width:48px;font:900 16px var(--serif);font-variant-numeric:tabular-nums}
.r .dot{flex:none;position:relative;z-index:1;width:10px;height:10px;border-radius:5px;background:var(--ink);box-shadow:0 0 0 3px var(--bg)}
.r.dep .dot{background:var(--bg);box-shadow:inset 0 0 0 2px var(--ink),0 0 0 3px var(--bg)}
.r.eat .dot{background:var(--red)}.r.fun .dot{background:var(--blue)}.r.stay .dot{background:var(--green)}
.rb{flex:1;min-width:0}
.r .m{margin:0;font-size:15px;font-weight:700;display:flex;align-items:center;flex-wrap:wrap}
.r.dep .m{font-weight:500;color:var(--ink2)}
.r .s{margin:2px 0 0;font-size:13px;line-height:1.45;color:var(--sub)}
.ic{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;margin:-9px -8px -9px -2px;color:var(--red);font-weight:400}
.stays{margin-top:18px;background:var(--card)}
.stays .sh{display:flex;justify-content:space-between;align-items:center;padding:12px 14px 0}
.stays .sh span{font-size:12px;color:var(--sub)}
.stays .sh .lbl{font:700 12px/1.4 var(--sans);letter-spacing:.16em;color:var(--red)}
.stays ul{list-style:none;margin:0;padding:6px 14px 0}
.stays li{display:flex;gap:10px;align-items:flex-start;padding:8px 0}
.stays li.more{display:none}.stays.open li.more{display:flex}
.tier{flex:none;width:30px;padding-top:2px;font-size:12px;font-weight:700;color:var(--red)}
.stays li div{flex:1;min-width:0}.stays li b{display:block;font-size:15px;line-height:1.4}
.stays li small{display:block;font-size:12px;color:var(--sub);line-height:1.5}
.stays .tog{display:block;width:100%;height:40px;padding:0 14px;border:0;border-top:1px solid var(--line);background:transparent;text-align:left;font-size:13px;font-weight:700;color:var(--ink);cursor:pointer}
.stays .bk{display:grid;grid-template-columns:minmax(0,1fr) 52px;gap:6px;padding:8px 14px 14px}
.btn{display:flex;align-items:center;justify-content:center;height:44px;padding:0 16px;background:var(--ink);color:var(--bg);font-size:14px;font-weight:700}
.btn2{display:flex;align-items:center;justify-content:center;height:44px;background:var(--bg);color:var(--red)}
.story{margin-top:18px;padding:16px;background:var(--card)}
.story .lbl{font:700 12px/1.4 var(--sans);letter-spacing:.16em;color:var(--red)}
.story p{margin:8px 0 0;font:16px/1.85 var(--serif)}
.morelink{padding:28px 20px 0;margin:0}.morelink a{display:inline-flex;align-items:center;min-height:44px;font-weight:700}
.dock{position:sticky;bottom:0;z-index:12;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:40px;padding:12px 16px calc(14px + env(safe-area-inset-bottom,0)) 20px;background:var(--bg);box-shadow:0 -1px 0 var(--line)}
.dock div{display:flex;flex-direction:column;min-width:0}
.dock b{font:900 15px var(--serif)}.dock small{font-size:12px;color:var(--sub)}
.dock button{flex:none;height:48px;padding:0 14px;border:0;background:var(--ink);color:var(--bg);font-size:14px;font-weight:700;cursor:pointer}
.dock button.on{background:var(--green)}
.acts{display:flex;gap:16px;padding:12px 20px 0}
.acts button{height:36px;padding:0;border:0;background:transparent;font-size:13px;font-weight:700;color:var(--red);cursor:pointer}

/* ——— 去哪儿、目的地 ——— */
.pagehead{display:flex;justify-content:space-between;align-items:center;padding:12px 20px 0}
.pagehead a{height:44px;display:flex;align-items:center;gap:4px;padding:0 8px;font-size:14px;font-weight:700}.pagehead a.back{margin-left:-8px}.pagehead a.home{margin-right:-8px;color:var(--red)}
.pagehead span{font-size:13px;color:var(--sub)}
.where h1,.dest h1,.nf h1{font-size:32px;line-height:1.2;padding:2px 20px 0}
.where .stick{position:sticky;top:0;z-index:10;background:var(--bg);padding:12px 20px 10px;box-shadow:0 1px 0 var(--line)}
.tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.tabs button{height:40px;border:0;background:var(--card);font-size:14px;font-weight:700;color:var(--ink);cursor:pointer}
.tabs button.on{background:var(--ink);color:var(--bg)}
.mon{display:flex;gap:4px;overflow-x:auto;margin-top:8px}
.mon button{flex:none;min-width:44px;height:36px;border:0;background:var(--card);font-size:13px;font-weight:700;color:var(--ink);cursor:pointer}
.mon button.on{background:var(--ink);color:var(--bg)}
.gl{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:8px}
.gl p{margin:0;min-width:0;font-size:13px;line-height:1.45;color:var(--ink2)}
.gl button{flex:none;height:36px;padding:0 12px;border:0;background:var(--card);font-size:13px;font-weight:700;color:var(--ink);cursor:pointer}
.gl button.on{background:var(--ink);color:var(--bg)}
.flt{margin-top:10px;display:flex;flex-direction:column;gap:8px}
.flt[hidden]{display:none}
.flt input{width:100%;height:42px;padding:0 12px;border:0;background:var(--card);font:15px var(--sans);color:var(--ink);border-radius:0;-webkit-appearance:none}
.row{display:flex;align-items:center;gap:4px;overflow-x:auto}
.row>span{flex:none;width:40px;font-size:12px;font-weight:700;color:var(--sub)}
.row button,.row select{flex:none;height:36px;padding:0 12px;border:0;background:var(--card);font:700 13px var(--sans);color:var(--ink);cursor:pointer;border-radius:0;-webkit-appearance:none;appearance:none}
.row button.on{background:var(--ink);color:var(--bg)}
.cnt{display:block;margin-top:6px;font-size:13px;font-weight:700}
.scope[hidden]{display:none}
.reg{padding:0 20px}
.rh{margin:22px 0 10px;font:700 12px var(--sans);letter-spacing:.16em;color:var(--red)}
.cards{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.card{display:flex;flex-direction:column;gap:6px;padding:14px 16px;background:var(--card)}
.ch{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;min-height:36px;margin:-3px 0}
.tr{display:flex;flex-direction:column;margin-top:4px}.tr a{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:36px;font-size:13px}.tr a b{flex:none;font-weight:700}.tr a span{min-width:0;color:var(--sub);text-align:right}
.q{align-self:flex-start;display:inline-flex;align-items:center;min-height:32px;margin-bottom:-4px;font-size:13px;font-weight:700;color:var(--red)}
.ch div{display:flex;align-items:baseline;gap:8px;min-width:0}
.card h3{font-size:21px;line-height:normal}
.card .base{font-size:13px;color:var(--sub);white-space:nowrap}
.card .fit{flex:none;height:26px;padding:0 9px;display:flex;align-items:center;font-size:12px;font-weight:700;background:var(--ink);color:var(--bg)}
.card .fit.ok{background:var(--okbg);color:var(--okfg)}.card .fit.no{background:transparent;color:var(--mute);box-shadow:inset 0 0 0 1px var(--line2)}
.card p{margin:0;font-size:14px;line-height:1.5}
.card .cl{font-size:13px;font-weight:500;color:var(--blue)}
.card .kv b{margin-right:8px}
.card .n{font-size:13px;font-weight:700;color:var(--green)}.card .n:empty{display:none}
.card .dist{font-size:13px;font-weight:700;color:var(--ink2)}.card .hit{font-size:13px;font-weight:700;color:var(--red)}
.card[hidden],.reg[hidden]{display:none}
.dh{padding:4px 20px 0}
.dh small{display:block;font-size:13px;color:var(--sub);margin-top:6px}
.dest .lead,.where .lead{margin:10px 0 0;font:16px/1.8 var(--serif);color:var(--lead)}
.where .lead{padding:0 20px}
.entry,.tip{margin:8px 0 0;font-size:14px}.entry b,.tip b{color:var(--red);margin-right:8px}
.dest section{padding:24px 20px 0}
.dest h2{font:700 12px/1.4 var(--sans);letter-spacing:.14em;color:var(--red);margin-bottom:10px;display:flex;gap:6px}
.ct{color:var(--sub);letter-spacing:0}
.hint{margin:-4px 0 10px;font-size:12px;color:var(--sub)}
.months{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}
.months li{padding:8px;box-shadow:inset 0 0 0 1px var(--line);display:flex;flex-direction:column}
.months li.on{background:var(--ink);color:var(--bg);box-shadow:none}
.months b{font-size:14px}.months small{font-size:12px;opacity:.8}
.se{display:flex;flex-direction:column;gap:16px}.se p{margin:0;font-size:15px}
.trips,.qual,.list,.niche{list-style:none;margin:0;padding:0}
.trips a,.list a{display:flex;flex-direction:column;gap:2px;padding:12px 0;box-shadow:0 1px 0 var(--line)}
.trips b,.list b{font:900 18px var(--serif)}.trips span,.list span{font-size:14px}.trips small,.list small{font-size:13px;color:var(--sub)}
.trips li>span{display:block;padding:12px 0;color:var(--sub);box-shadow:0 1px 0 var(--line)}
.qual li{display:flex;align-items:center;gap:6px;min-height:36px;font-size:14px}
.qual span{flex:1;min-width:0}.qual small{flex:none;font-size:11px;font-weight:700;color:var(--red)}
.niche li{padding:12px 0;box-shadow:0 1px 0 var(--line)}
.niche .nh{display:flex;align-items:center;gap:8px}.niche b{flex:1;min-width:0}
.niche p{margin:6px 0 0;font-size:14px;line-height:1.6;color:var(--ink2)}
.niche a:not(.ic){display:inline-flex;align-items:center;min-height:40px;font-size:13px;font-weight:700}
.st{flex:none;height:24px;padding:0 8px;display:flex;align-items:center;font-size:12px;font-weight:700}
.st.open{background:var(--okbg);color:var(--okfg)}.st.restricted{background:var(--card);color:var(--red);box-shadow:inset 0 0 0 1px var(--red)}.st.paused{color:var(--mute);box-shadow:inset 0 0 0 1px var(--line2)}.st.check{color:#8a5a00;box-shadow:inset 0 0 0 1px #8a5a00}

/* ——— 首页（本期） ——— */
.cover{position:relative;display:block;min-height:700px;background:#2b2433;color:var(--onimg);overflow:hidden}
.cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.cover:after{content:"";position:absolute;inset:45% 0 0 0;background:linear-gradient(to bottom,rgba(20,18,24,0),rgba(20,18,24,.92))}
.mast{position:absolute;z-index:2;left:20px;right:20px;top:14px;display:flex;justify-content:space-between;align-items:flex-start}
.mast h1{font-size:60px;line-height:1;letter-spacing:.02em}
.mast small{display:block;margin-top:8px;font-size:11px;font-weight:700;letter-spacing:.3em}
.mast span{height:36px;padding:0 12px;display:flex;align-items:center;background:var(--bg);color:var(--ink);font-size:13px;font-weight:700}
.cv{position:absolute;z-index:2;left:20px;right:20px;bottom:24px;display:flex;flex-direction:column;gap:10px}
.cv h2{font-size:38px;line-height:1.15}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chips span{height:28px;padding:0 8px;display:flex;align-items:center;font-size:13px;box-shadow:inset 0 0 0 1px rgba(244,242,236,.5)}
.cv .go{height:48px;margin-top:6px;display:flex;align-items:center;justify-content:center;background:var(--bg);color:var(--ink);font-size:16px;font-weight:700}
.toc{padding:24px 20px 0}
.toc h2{font-size:22px;line-height:normal;display:flex;justify-content:space-between;align-items:baseline}
.toc h2 small{font:13px var(--sans);color:var(--sub)}
.items{list-style:none;margin:8px 0 0;padding:0}
.items li{display:flex;gap:12px;padding:18px 0;box-shadow:0 -1px 0 var(--line)}
.items li:first-child{box-shadow:none}
.items .num{flex:none;width:32px;font:900 26px/1 var(--serif);color:var(--red)}
.items .tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.items .k{font-size:11px;font-weight:700;letter-spacing:.14em;color:var(--red)}
.items h3{font-size:19px;line-height:1.3}
.items p{margin:0;font-size:14px;line-height:1.6;color:var(--ink2)}
.items small{font-size:12px;color:var(--sub)}.items .c{font-size:12px;color:var(--blue)}
.items .open{align-self:flex-start;height:32px;margin-top:4px;padding:0 10px;display:flex;align-items:center;background:var(--ink);color:var(--bg);font-size:12px;font-weight:700}
.items .tile{flex:none;width:88px;height:116px;display:flex;align-items:flex-end;padding:8px;color:var(--onimg);font:900 18px/1.15 var(--serif);background:#c8432f}
.items .tile img{width:100%;height:100%;object-fit:cover}
.items .tile.img{padding:0}
.allbar{display:flex;align-items:center;justify-content:space-between;height:48px;margin:14px 20px 0;padding:0 14px;background:var(--ink);color:var(--bg);font-size:15px;font-weight:700}
.mine[hidden]{display:none}
.mine{padding:24px 20px 0}
.mine h2{font-size:20px}
.foot{max-width:430px;margin:0 auto;padding:28px 20px 40px;font-size:12px;color:var(--sub)}
.foot p{margin:4px 0}.foot a{margin-right:14px;font-weight:700;color:var(--ink)}
.nf p{padding:0 20px}
.toast{position:fixed;left:50%;bottom:88px;transform:translateX(-50%);padding:10px 16px;background:var(--ink);color:var(--bg);font-size:14px;z-index:30}
.day .cl{margin:8px 0 0;font-size:13px;color:var(--sub)}.day .cl:empty{display:none}
.dchips{display:flex;gap:4px;overflow-x:auto;margin-top:12px}
.dchips button{flex:none;height:36px;padding:0 12px;border:0;background:var(--card);font-size:13px;font-weight:700;color:var(--ink);cursor:pointer}
.dchips button.on{background:var(--ink);color:var(--bg)}
.items li[hidden]{display:none}
.items .left{font-size:12px;font-weight:700;color:var(--green)}.items .left.urgent{color:var(--red)}
.moreb{display:block;width:100%;height:44px;margin-top:4px;border:0;background:var(--card);font-size:14px;font-weight:700;color:var(--ink);cursor:pointer}
.gb{display:inline-flex;align-items:center;height:18px;margin-left:6px;padding:0 5px;font-size:11px;font-weight:700;font-style:normal;color:var(--red);box-shadow:inset 0 0 0 1px var(--red)}
.r .s.tre{color:var(--ink2)}.r .s.tre b{margin-right:6px;color:var(--red);font-weight:700}
.qual.mus li{align-items:flex-start;padding:8px 0}.qual.mus span{display:flex;flex-direction:column;gap:2px}.qual.mus b{font-weight:700;font-size:15px}
.qual.mus .gt{font-size:12px;color:var(--sub);font-weight:400}.qual.mus .gb{margin:2px 0 0}
html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
a,button{-webkit-tap-highlight-color:transparent}
.btn:active,.dock button:active,.items .open:active,.cv .go:active,.allbar:active,.moreb:active{opacity:.82}
.ic:active,.btn2:active{background:rgba(166,61,39,.1)}.card .ch:active,.tr a:active,.overview a:active{background:rgba(28,29,26,.04)}
.months li.now{box-shadow:inset 0 -3px 0 var(--red)}.months li.on.now{box-shadow:inset 0 -3px 0 var(--pink)}
.mine .empty{padding:14px 0;font-size:14px;line-height:1.7;color:var(--sub)}
.flt .clr{align-self:flex-start;height:32px;padding:0;border:0;background:transparent;font-size:13px;font-weight:700;color:var(--red);cursor:pointer}
.glance .g1{position:relative}
.glance .dt{align-self:flex-start;height:32px;margin:-6px 0 -8px -2px;padding:0 2px;border:0;background:transparent;font:13px var(--sans);color:var(--sub);cursor:pointer;text-align:left}
.glance .dt i{font-style:normal;font-weight:700;color:var(--red);margin-left:2px}
.dpk{position:absolute;left:0;bottom:0;width:1px;height:1px;opacity:0;pointer-events:none;border:0;padding:0}
.stays .bk{grid-template-columns:minmax(0,1.3fr) 52px minmax(0,1fr)}
.mk{height:44px;border:0;background:var(--bg);font-size:13px;font-weight:700;color:var(--ink);cursor:pointer}.mk.on{background:var(--green);color:var(--bg)}
.datebar{position:absolute;z-index:2;left:20px;right:20px;top:118px}
.hdt{width:100%;height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;border:0;background:var(--bg);color:var(--ink);cursor:pointer}
.hdt b{font-size:15px}.hdt i{font-style:normal;font-size:13px;font-weight:700;color:var(--red)}
.hdpk{position:absolute;left:0;bottom:0;width:1px;height:1px;opacity:0;pointer-events:none;border:0;padding:0}
.mn{margin-top:16px}.mn ul{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.mn li{padding:5px 9px;font-size:13px;line-height:1.4;box-shadow:inset 0 0 0 1px var(--line2)}
.rb.nav{display:block;color:inherit}.rb.nav em{font-style:normal;font-weight:700;color:var(--red)}.rb.nav:active{background:rgba(166,61,39,.06)}
.hmap{margin:16px 0 0;padding:0}.hmap svg{display:block;width:100%;height:auto}
.today{position:sticky;bottom:72px;z-index:11;display:flex;align-items:center;gap:8px;width:calc(100% - 40px);margin:24px 20px 0;padding:10px 14px;border:0;background:var(--ink);color:var(--bg);text-align:left;cursor:pointer}
.today b{flex:none;font:900 14px var(--serif)}.today span{flex:1;min-width:0;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.today i{flex:none;font-style:normal;font-size:12px;font-weight:700;color:var(--pink)}
.daynav a.now:after{content:"今";margin-left:3px;font:700 10px var(--sans);color:var(--red)}.daynav a.on.now:after{color:var(--pink)}
.r.flash{background:rgba(166,61,39,.12);transition:background .4s}
.offline{position:fixed;left:0;right:0;top:0;z-index:40;padding:8px 16px;background:var(--red);color:var(--bg);font-size:13px;text-align:center}
.hlegend{margin:8px 0 0;font-size:12px;line-height:1.9;color:var(--ink2)}.hlegend b{margin-right:3px;color:var(--red);font-weight:700}
.dtw{position:relative;align-self:flex-start;display:inline-flex;align-items:center;min-height:40px;margin:-10px 0 -10px -4px;padding:0 4px;cursor:pointer}
.dtw .dt{display:inline-flex;align-items:center;height:40px;padding:0;font:13px var(--sans);color:var(--sub)}
.dtw .dt i{font-style:normal;font-weight:700;color:var(--red);margin-left:2px}
.dtw .dpk,.datebar .hdpk{position:absolute;left:0;top:0;width:100%;height:100%;margin:0;padding:0;border:0;opacity:0;font-size:16px;cursor:pointer;-webkit-appearance:none;appearance:none;pointer-events:auto}
.datebar{display:block}.datebar .hdt{width:100%;height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;background:var(--bg);color:var(--ink)}
.dh h1{padding:0}
.dtw.dt{align-self:flex-start;display:inline-flex;align-items:center;height:40px;margin:-10px 0 -10px -4px;padding:0 4px;border:0;background:transparent;font:13px var(--sans);color:var(--sub);cursor:pointer}
.dtw.dt i{font-style:normal;font-weight:700;color:var(--red);margin-left:3px}
.datebar .hdt{border:0;cursor:pointer;font:inherit}
.pk-mask{position:fixed;inset:0;z-index:50;background:rgba(28,29,26,.45)}
.pk{position:fixed;left:50%;bottom:0;z-index:51;width:100%;max-width:430px;transform:translateX(-50%);padding:16px 20px calc(18px + env(safe-area-inset-bottom,0));background:var(--bg);box-shadow:0 -1px 0 var(--line)}
.pk-open{overflow:hidden}
.pk-h{display:flex;justify-content:space-between;align-items:center}.pk-h b{font:900 20px var(--serif)}
.pk-x{height:40px;padding:0 4px;border:0;background:transparent;font-size:14px;font-weight:700;color:var(--sub);cursor:pointer}
.pk-q{display:flex;gap:6px;margin-top:10px}.pk-q button{flex:1;min-width:0;height:48px;border:0;background:var(--card);font-size:13px;font-weight:700;color:var(--ink);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}
.pk-q small{font-size:11px;font-weight:500;color:var(--sub)}.pk-q button:disabled{opacity:.4}
.pk-m{display:flex;justify-content:space-between;align-items:center;margin-top:14px}.pk-m b{font:900 16px var(--serif)}
.pk-m button{width:44px;height:40px;border:0;background:var(--card);font-size:18px;font-weight:700;color:var(--ink);cursor:pointer}.pk-m button:disabled{opacity:.3}
.pk-w,.pk-g{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.pk-w{margin-top:10px}
.pk-w span{text-align:center;font-size:12px;color:var(--sub)}
.pk-g{margin-top:6px}.pk-g button{height:42px;border:0;background:transparent;font:700 15px var(--serif);color:var(--ink);cursor:pointer;font-variant-numeric:tabular-nums}
.pk-g button.we{color:var(--red)}.pk-g button.best{background:var(--okbg)}.pk-g button.td0{box-shadow:inset 0 0 0 1px var(--ink)}
.pk-g button.on{background:var(--ink);color:var(--bg)}.pk-g button.off{color:#c5c3bc;cursor:default}
.pk-tip{display:flex;align-items:center;gap:6px;margin:10px 0 0;font-size:12px;color:var(--sub)}.pk-tip i{width:14px;height:10px;background:var(--okbg)}
.hmap{cursor:zoom-in}.dmap{margin:0 0 6px}
.hmap-zoom{position:fixed;inset:0;z-index:52;background:rgba(28,29,26,.85);display:flex;flex-direction:column}
.hz-x{align-self:flex-end;height:44px;margin:calc(8px + env(safe-area-inset-top,0)) 12px 0;padding:0 14px;border:0;background:var(--bg);font-size:14px;font-weight:700;cursor:pointer}
.hz-b{flex:1;overflow:auto;-webkit-overflow-scrolling:touch;display:flex;align-items:center}.hz-b svg{display:block;width:220vw;max-width:none;height:auto;margin:auto;flex:none}
@media (min-width:600px){.hz-b svg{width:min(1100px,95vw)}}
.mine .list small{display:block;font-size:12px;color:var(--red);font-weight:700}
.addday{padding:32px 20px 0;display:flex;flex-direction:column;gap:6px}
.addday .add{height:44px;border:0;background:var(--card);font-size:14px;font-weight:700;color:var(--ink);cursor:pointer}
.addday small{font-size:12px;color:var(--sub)}
.xday h2 .xt{display:block;margin-top:4px;font:600 12px var(--sans);color:var(--sub)}
.rmday{margin-top:14px;height:40px;padding:0 14px;border:0;background:var(--card);font-size:13px;font-weight:700;color:var(--red);cursor:pointer}
.xd{display:flex;flex-direction:column;gap:6px;margin-top:12px;max-height:60vh;overflow:auto}
.xd button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:48px;padding:8px 12px;border:0;background:var(--card);text-align:left;cursor:pointer;color:var(--ink)}
.xd button b{font-size:14px}.xd button small{font-size:12px;color:var(--sub)}.xd .xg{margin:8px 0 0;font-size:12px;font-weight:700;color:var(--red);letter-spacing:.1em}
.stays .tl2{display:inline-flex;align-items:center;min-height:32px;font-size:12px;font-weight:700;color:var(--red)}
.stays .sn{margin:0;padding:8px 14px 0;font-size:12px;color:var(--sub)}
.hlegend b{display:inline;width:auto;margin-right:3px;font:700 12px var(--sans);color:var(--red)}
.stays li b.tg{font-size:14px;font-weight:700}.stays .sh span:last-child{font-size:12px;color:var(--sub)}
.stays .tog{height:36px}.stays .sn{padding:2px 14px 0}

.hero-t.long h1{font-size:28px}.hero-t.xlong h1{font-size:24px}
.icg{display:inline-flex;white-space:nowrap}
.gb.bk2{color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}
.hsearch{display:flex;gap:6px;margin:16px 20px 0}.hsearch input{flex:1;min-width:0;height:44px;padding:0 12px;border:0;border-radius:0;background:var(--card);font:16px var(--sans);color:var(--ink);-webkit-appearance:none}
.hsearch button{flex:none;width:56px;height:44px;border:0;background:var(--ink);color:var(--bg);font-size:15px;font-weight:700;cursor:pointer}
.acts{flex-wrap:wrap}.wmap{margin:12px 20px 0}.wmap svg{display:block;width:100%;height:auto}.scope.maphide{display:none}
.gl .mtog{flex:none;height:36px;padding:0 12px;border:0;background:var(--card);font-size:13px;font-weight:700;color:var(--ink);cursor:pointer}.gl .mtog.on{background:var(--ink);color:var(--bg)}
.shotv .hz-b img{display:block;width:min(86vw,420px);height:auto;margin:auto;box-shadow:0 4px 30px rgba(0,0,0,.3)}.shotp{margin:10px 0 calc(16px + env(safe-area-inset-bottom,0));text-align:center;color:#f4f2ec;font-size:13px}.shotp a{color:#f2c9bf;font-weight:700}
.where .stick{padding-bottom:8px}.wbar{padding:10px 20px 0}.wbar .goodline{margin:0;font-size:13px;line-height:1.5;color:var(--ink2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.wbar .gl{display:flex;align-items:center;gap:6px;margin-top:8px}.wbar .gl .cnt{flex:1;margin:0}.wbar .flt{margin-top:8px}
.months li{position:relative}.months li.now:after{content:"本月";position:absolute;right:4px;top:4px;font-size:10px;font-weight:700;color:var(--red)}.months li.on.now:after{color:var(--pink)}
.qual li small{width:52px;text-align:right}.qual .icg,.niche .icg{flex:none}
.hlegend span{white-space:nowrap;margin-right:12px}
.r .s em.bkn{font-style:normal;font-weight:700;color:var(--blue);margin-right:6px}
h2,h3,.items h3{text-wrap:balance}.hero-t h1 .nw,.cv h2 .nw{display:inline-block}
.r .s.sn2{color:#6b6d66}
.addday{padding:28px 20px 0}
.minebtn{height:36px;padding:0 12px;border:0;background:var(--bg);color:var(--ink);font:700 13px var(--sans);cursor:pointer}
.xd a.mr{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:48px;padding:8px 12px;background:var(--card);color:var(--ink)}
.xd a.mr b{font-size:14px}.xd a.mr span{font-size:12px;color:var(--sub)}.xd .mw{font-size:12px;font-weight:700;color:var(--red)}
.mempty{margin:4px 0;font-size:14px;line-height:1.7;color:var(--sub)}
.pk-g button{margin:0;padding:0;width:100%;min-width:0;-webkit-appearance:none;appearance:none;border-radius:0;color:var(--ink)}
.pk-g button.on{color:var(--bg)}.pk-g button.off{color:#c5c3bc}.pk-g button.we:not(.on):not(.off){color:var(--red)}
.pk-q button,.pk-x,.xd button{-webkit-appearance:none;appearance:none;border-radius:0;color:var(--ink)}
.hlegend a{display:inline-flex;align-items:center;min-height:32px;color:var(--ink)}
.daynav.long{overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.daynav.long::-webkit-scrollbar{display:none}.daynav.long a{flex:0 0 auto;min-width:44px;padding:0 6px}
.overview.folded ol li:nth-child(n+11){display:none}.overview.folded.open ol li{display:block}
.ovmore{display:block;width:100%;height:44px;margin-top:4px;border:0;background:var(--card);font-size:14px;font-weight:700;color:var(--ink);cursor:pointer}
.xnote{margin:6px 0 0;font-size:12px;color:var(--sub)}
.r .s a.bkl{margin-right:6px;font-weight:700;color:var(--blue)}.r .s .bkh{margin-right:6px;color:var(--blue)}
.pre li{display:flex;flex-wrap:wrap;align-items:center;gap:0 8px}.pre li a.bkl{display:inline-flex;align-items:center;min-height:32px;margin-left:30px;font-size:13px;font-weight:700;color:var(--blue)}.pre li .bkh{margin-left:30px;font-size:12px;color:var(--blue)}

/* 行程页顶部三格：三项同一种字号和行高，第一行、第二行各自对齐 */
.glance{grid-template-columns:minmax(0,.9fr) minmax(0,1fr) minmax(0,1.35fr);gap:10px;align-items:start}
.glance>div{gap:0}
.glance b,.glance b.big,.glance b.price{display:block;height:28px;font:900 20px/28px var(--serif);white-space:nowrap;overflow:hidden;text-overflow:clip}
.glance b.big small{font:700 13px/28px var(--sans);margin-left:2px}
.glance small,.glance>div>small{display:block;margin-top:4px;font:400 12px/18px var(--sans);color:var(--sub)}
.glance .dtw.dt,.glance .dt{position:relative;display:block;height:18px;margin:4px 0 0;padding:0;font:400 12px/18px var(--sans);color:var(--sub);text-align:left;align-self:flex-start}
.glance .dt:after{content:"";position:absolute;left:-8px;right:-8px;top:-12px;bottom:-12px}
.glance .dt i{font-weight:700;color:var(--red);margin-left:3px}
/* 收藏：书签图标 */
.dock .fav{display:inline-flex;align-items:center;gap:6px}.dock .fav .fi{flex:none}
.dock .fav.on .fi path{fill:currentColor}
.minebtn{display:inline-flex;align-items:center;gap:5px}.minebtn .fi{width:16px;height:16px;color:var(--red)}
.glance b.big small{display:inline;margin:0 0 0 2px;font:700 13px/28px var(--sans);color:var(--ink)}
.hz-t{display:flex;justify-content:flex-end;gap:6px;margin:calc(8px + env(safe-area-inset-top,0)) 12px 0}.hz-t .hz-x{margin:0}
.hz-m,.hz-p{width:44px;height:44px;border:0;background:var(--bg);font-size:20px;font-weight:700;color:var(--ink);cursor:pointer}.hz-m:disabled,.hz-p:disabled{opacity:.4}
.hz-b{align-items:flex-start}.hz-b svg{width:200vw;max-width:none;margin:12px auto}
.glance span.dt{display:block;height:18px;margin:4px 0 0;padding:0;font:400 12px/18px var(--sans);color:var(--sub);cursor:pointer;-webkit-tap-highlight-color:transparent;position:relative;white-space:nowrap}
.glance span.dt:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.glance .dtw.dt,.glance span.dt{min-height:0;align-items:initial}
.glance .pp{position:relative;display:block;height:18px;min-height:0;margin:4px 0 0;padding:0;border:0;background:none;-webkit-appearance:none;appearance:none;border-radius:0;font:400 12px/18px var(--sans);color:var(--red);text-align:left;cursor:pointer}
.glance .pp:after{content:"";position:absolute;left:-8px;right:-8px;top:-12px;bottom:-12px}
.fx .st{display:inline-flex;align-items:baseline;gap:3px;cursor:pointer;position:relative;padding:0;height:auto}.fx .st i{font-style:normal;font-size:12px;font-weight:700;color:var(--red)}.fx .st:after{content:"";position:absolute;inset:-10px -8px}
.stg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:12px}.stg button{height:44px;border:0;background:var(--card);font:700 15px var(--serif);color:var(--ink);cursor:pointer;-webkit-appearance:none;appearance:none;border-radius:0}.stg button.on{background:var(--ink);color:var(--bg)}
.latewarn{margin:14px 0 0;padding:10px 12px;background:var(--warnbg);color:#6b2a1c;font-size:13px;line-height:1.6}.latewarn p{margin:0}.latewarn div{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.latewarn button{height:36px;padding:0 10px;border:0;background:var(--bg);font-size:13px;font-weight:700;color:var(--ink);cursor:pointer;-webkit-appearance:none;appearance:none;border-radius:0}.latewarn .drop{background:var(--ink);color:var(--bg)}
.r .s .adj{margin-left:8px;padding:0 6px;height:24px;border:0;background:var(--card);font-size:12px;font-weight:700;color:var(--ink);cursor:pointer;-webkit-appearance:none;appearance:none;border-radius:0;vertical-align:middle;position:relative}.r .s .adj:after{content:"";position:absolute;inset:-10px -4px}
.slowbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:20px 20px 0}.slowbar small{font-size:12px;color:var(--sub)}
.slowbar .slow{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0;border:0;background:none;font:inherit;color:var(--ink);cursor:pointer;-webkit-appearance:none;appearance:none}
.slowbar .slow b{font-size:14px}.slowbar .sw{position:relative;width:38px;height:22px;border-radius:11px;background:#d8d3c7;transition:background .2s;flex:none}.slowbar .sw:after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:left .2s}
.slowbar .slow.on .sw{background:var(--red)}.slowbar .slow.on .sw:after{left:19px}
.day .fc{margin:4px 0 0;font-size:13px;line-height:1.6;color:var(--ink)}.day .fc b{margin-right:6px;font-weight:700;color:var(--blue)}.day .fc em{margin-left:6px;font-style:normal;font-weight:700;color:var(--red)}

/* ⑧ 打印 / 存成 PDF：一份干净的行程单 */
@media print{
  @page{margin:12mm}
  html,body{background:#fff!important}
  body{color:#000;font-size:11pt}
  .sq,.dock,.daynav,.addday,.slowbar,.hmap-zoom,.pk,.pk-mask,.toast,.offline,.today,.icg,.ic,.adj,.stays .tog,.stays .bk,.stays .sn,.latewarn div,.morelink,.foot,.crumbs,.ovmore,.mtog,.ftog,.tl2,.st i,.dt i{display:none!important}
  .hero{height:auto!important;min-height:0!important;background:none!important;padding:0!important}.hero img,.hero:after{display:none!important}
  .hero-t{position:static!important;padding:0 0 6pt!important;background:none!important}.hero-t h1{color:#000!important;font-size:20pt!important}.hero-t .kick{color:#a63d27!important}
  .glance,.pre,.overview,.day{padding-left:0!important;padding-right:0!important}
  .overview.folded ol li{display:block!important}
  .hmap svg{max-height:90mm;width:auto;max-width:100%}
  .day{break-before:auto;padding-top:10pt!important;border-top:1px solid #ccc}.day header{break-after:avoid}
  .r{break-inside:avoid}.r time{font-size:10pt}.r .m{font-size:10.5pt}.r .s{font-size:9pt}
  .stays li.more{display:flex!important}.stays{break-inside:avoid;background:none!important;border:1px solid #ddd}
  .story,.manners{break-inside:avoid}
  a{color:#000;text-decoration:none}
}
.r .s.tix{color:var(--sub)}.r .s.tix i{margin-left:6px;font-style:normal;font-size:11px;color:#8b8d86}
.allst{display:flex;align-items:center;gap:8px;flex-wrap:wrap;width:100%;margin-top:2px}.allst span{font-size:14px;font-weight:700}.allst small{font-size:12px;color:var(--sub)}
.allbtn{display:inline-flex;align-items:baseline;gap:3px;min-height:36px;padding:0 10px;border:0;background:var(--card);font:inherit;font-size:14px;color:var(--ink);cursor:pointer;-webkit-appearance:none;appearance:none;border-radius:0}.allbtn b{font:900 16px var(--serif)}.allbtn i{font-style:normal;font-weight:700;color:var(--red)}
.fc .rn{display:block;margin-top:2px;color:var(--sub)}.fc .rn button{margin-left:6px;height:28px;padding:0 8px;border:0;background:var(--ink);color:var(--bg);font-size:12px;font-weight:700;cursor:pointer;-webkit-appearance:none;appearance:none;border-radius:0}.fc .rn .rainback{background:var(--card);color:var(--ink)}
.fc.mon b{color:var(--red)}

/* 「今天」和「要办的事」 */
.tv{position:fixed;inset:0;z-index:53;overflow:auto;-webkit-overflow-scrolling:touch;background:var(--bg);padding-bottom:calc(24px + env(safe-area-inset-bottom,0))}
.tvh{position:sticky;top:0;z-index:2;display:flex;align-items:center;height:calc(48px + env(safe-area-inset-top,0));padding:env(safe-area-inset-top,0) 12px 0;background:var(--bg);box-shadow:0 1px 0 var(--line)}
.tvx{height:44px;padding:0 6px;border:0;background:none;font-size:14px;font-weight:700;color:var(--ink);cursor:pointer;-webkit-appearance:none;appearance:none}
.tvtabs{position:sticky;top:calc(48px + env(safe-area-inset-top,0));z-index:2;display:flex;overflow-x:auto;scrollbar-width:none;background:var(--bg);box-shadow:0 1px 0 var(--line)}.tvtabs::-webkit-scrollbar{display:none}
.tvtabs button{flex:0 0 auto;min-width:52px;height:44px;padding:0 10px;border:0;background:none;font:900 15px var(--serif);color:var(--ink);cursor:pointer;-webkit-appearance:none;appearance:none;border-radius:0}.tvtabs button.on{background:var(--ink);color:var(--bg)}
.tvb{padding:16px 20px}.tvb h2{margin:2px 0 6px;font:900 24px/1.3 var(--serif)}.tvd{margin:0;font-size:13px;color:var(--sub)}.tvw{margin:4px 0 0;font-size:13px;color:var(--ink2)}.tvw.red{color:var(--red)}
.tvnext{margin:14px 0 6px;padding:14px;background:var(--ink);color:var(--bg)}.tvnext small{display:block;font-size:12px;color:#d8d3c7}.tvnext b{display:block;margin-top:4px;font:900 22px/1.3 var(--serif)}.tvnext p{margin:4px 0 0;font-size:13px;color:#d8d3c7}
.tvnext .tvnav{display:inline-flex;align-items:center;margin-top:10px;height:44px;padding:0 18px;background:var(--bg);color:var(--ink);font-size:15px;font-weight:700}
.tvl{list-style:none;margin:12px 0 0;padding:0}.tvl li{display:flex;align-items:center;gap:12px;min-height:52px;padding:8px 0;border-bottom:1px solid var(--line)}
.tvl time{flex:none;width:52px;font:900 16px var(--serif)}.tvl li div{flex:1;min-width:0}.tvl b{display:block;font-size:16px;font-weight:700}.tvl small{display:block;font-size:12px;color:var(--sub)}
.tvl li.dep b{font-size:14px;font-weight:500;color:var(--sub)}.tvl li.past{opacity:.45}.tvl li.nx{background:var(--warnbg);margin:0 -20px;padding:8px 20px}
.tvl .tvnav{flex:none;display:inline-flex;align-items:center;height:36px;padding:0 12px;background:var(--card);font-size:13px;font-weight:700;color:var(--ink)}
.tvbox{margin-top:14px;padding:12px 14px;background:var(--card)}.tvbox small{display:block;font-size:12px;font-weight:700;color:var(--red);letter-spacing:.08em}.tvbox b{display:block;margin-top:4px;font-size:15px}.tvbox p{margin:6px 0 0;font-size:14px}.tvbox a{display:inline-flex;margin-top:6px;font-size:14px;font-weight:700;color:var(--red)}
.dock .tvbtn{flex:none;height:48px;margin-left:8px;padding:0 14px;border:0;background:var(--card);font-size:15px;font-weight:700;color:var(--ink);cursor:pointer;-webkit-appearance:none;appearance:none;border-radius:0}
.todoall{display:flex;align-items:center;width:100%;min-height:44px;margin-top:10px;padding:0 12px;border:0;background:var(--bg);font-size:14px;font-weight:700;color:var(--ink);cursor:pointer;-webkit-appearance:none;appearance:none;border-radius:0;text-align:left}.todoall b{margin-left:4px;font-family:var(--serif);color:var(--red)}
.todo h3{margin:18px 0 6px;font-size:13px;font-weight:700;color:var(--red);letter-spacing:.1em}.tdl{list-style:none;margin:0;padding:0}.tdl li{display:flex;align-items:center;gap:10px;min-height:52px;padding:6px 0;border-bottom:1px solid var(--line)}
.tdl li span{flex:1;min-width:0;font-size:15px;line-height:1.5}.tdl li span small{display:block;font-size:12px;color:var(--sub)}.tdl li.on span{color:#8b8d86;text-decoration:line-through}
.tck{flex:none;width:28px;height:28px;border:1.8px solid var(--ink);background:var(--bg);cursor:pointer;-webkit-appearance:none;appearance:none;border-radius:0;position:relative}.tck:after{content:"";position:absolute;inset:-8px}.tdl li.on .tck{background:var(--ink)}.tdl li.on .tck:before{content:"";position:absolute;left:8px;top:3px;width:7px;height:13px;border:solid var(--bg);border-width:0 2px 2px 0;transform:rotate(45deg)}
.tdl li a{flex:none;font-size:14px;font-weight:700;color:var(--red)}
@media print{.tv,.todoall,.tvbtn{display:none!important}}

/* 首页：替我挑三条 */
.pick{padding:24px 20px 4px}.pick h2{display:flex;align-items:baseline;justify-content:space-between;margin:0;font:900 22px var(--serif)}.pick h2 small{font:400 12px var(--sans);color:var(--sub)}
.pkq{margin:14px 0 6px;font-size:12px;font-weight:700;color:var(--sub);letter-spacing:.08em}
.pkr{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:0 -20px;padding:0 20px}.pkr::-webkit-scrollbar{display:none}
.pkr button{flex:0 0 auto;height:36px;padding:0 12px;border:0;background:var(--card);font-size:14px;color:var(--ink);cursor:pointer;-webkit-appearance:none;appearance:none;border-radius:0}.pkr button.on{background:var(--ink);color:var(--bg);font-weight:700}
.pkhint{margin:14px 0 0;font-size:13px;color:var(--sub)}
.pkres{list-style:none;margin:16px 0 0;padding:0}.pkres li a{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line);color:var(--ink)}
.pkres .pkn{flex:none;font:900 28px var(--serif);color:var(--red);width:22px}.pkres div{flex:1;min-width:0}.pkres b{display:block;font:900 17px/1.35 var(--serif)}.pkres small{display:block;margin-top:3px;font-size:12px;line-height:1.5;color:var(--sub)}
.pkres img{flex:none;width:56px;height:72px;object-fit:cover;object-position:50% 100%}
@media print{.pick{display:none}}
.latewarn .sum{margin-top:4px;color:var(--ink2)}.latewarn .gap{margin-top:4px;color:var(--ink2)}.latewarn .gap .fill{margin-left:6px;height:30px;padding:0 10px;border:0;background:var(--ink);color:var(--bg);font-size:12px;font-weight:700;cursor:pointer;-webkit-appearance:none;appearance:none;border-radius:0}
.r.filled .m{color:var(--red)}

/* 去掉的站真的不显示（.r 的 display:flex 会盖过 hidden） */
[hidden]{display:none!important}
/* 每天顶部：没问题时一行灰字，有问题才红 */
.latewarn{margin:12px 0 0;padding:0;background:none;color:var(--sub);font-size:12px}.latewarn p{margin:2px 0}.latewarn.bad p:first-child{color:var(--red);font-weight:700}
.latewarn button{height:auto;min-height:0;padding:0;border:0;background:none;font-size:12px;font-weight:700;color:var(--ink);text-decoration:underline;cursor:pointer}.latewarn .drop,.latewarn .fill{text-decoration:none;color:var(--bg);background:var(--ink);padding:3px 8px;margin-left:4px}
.allck{display:flex;align-items:center;gap:8px;margin:12px 0 0;font-size:14px;color:var(--ink)}.allck input{width:20px;height:20px;accent-color:var(--ink)}
.pre li.tip{display:block;padding-left:30px;font-size:13px;color:var(--sub)}
.tvx{display:inline-flex;align-items:center;gap:4px;min-height:44px;font-size:15px}.tvx svg{flex:none}

/* 出发前：“官网预约”统一靠右，和这一条同一行（放不下时换到下一行也靠右） */
.pre li{display:flex;flex-wrap:wrap;align-items:center;column-gap:8px}.pre li label{flex:1 1 auto;min-width:0}.pre li a.bkl,.pre li .bkh{margin-left:auto!important}
/* 小屏底栏：收进行程只留图标，按天看缩短 */
@media (max-width:359px){.dock .fav span{display:none}.dock .fav{padding:0 14px}.dock .tvbtn{padding:0 10px;font-size:14px}.dock small{font-size:11px}}
.tf{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:10px -20px 4px;padding:0 20px}.tf::-webkit-scrollbar{display:none}
.tf button{flex:0 0 auto;height:34px;padding:0 12px;border:0;background:var(--card);font-size:13px;color:var(--ink);cursor:pointer;-webkit-appearance:none;appearance:none;border-radius:0}.tf button.on{background:var(--ink);color:var(--bg);font-weight:700}

.rmnote{margin:8px 0 0;font-size:13px;color:var(--sub)}.rmnote .rmback{margin-left:6px;height:30px;padding:0 10px;border:0;background:var(--card);font-size:13px;font-weight:700;color:var(--ink);cursor:pointer;-webkit-appearance:none;appearance:none;border-radius:0}
@media print{.rmorig,.rmnote .rmback{display:none!important}}
.tvhint{margin:18px 0 0;font-size:12px;color:var(--sub);text-align:center}
.rmday{display:inline-flex;align-items:center;-webkit-appearance:none;appearance:none;border-radius:0}
.xd button.had{opacity:.55;cursor:default}.hadt{margin-left:8px;padding:1px 6px;background:var(--ink);color:var(--bg);font-size:11px;font-weight:700;vertical-align:middle}
@media print{.rmday{display:none!important}}
.todoall{justify-content:space-between}.todoall i{font-style:normal;font-size:18px;color:var(--sub)}
@media (max-width:359px){.glance small,.glance>div>small,.glance .dt,.glance .pp{font-size:11px}}
.nearr{padding:32px 20px 0}.nearr h2{margin:0 0 6px;font:900 20px var(--serif)}.nearr ul{list-style:none;margin:0;padding:0}
.nearr li a{display:block;padding:12px 0;border-top:1px solid var(--line);color:var(--ink)}.nearr b{display:block;font:900 16px/1.4 var(--serif)}.nearr span{display:block;margin-top:2px;font-size:13px;color:var(--ink2)}.nearr small{display:block;margin-top:2px;font-size:12px;color:var(--sub)}
.nearr+.morelink{padding-top:12px}
@media print{.nearr{display:none}}

@media print{body,.wrap,main,article,.trip{max-width:none!important;width:auto!important;margin:0!important}.hero-t,.glance,.pre,.overview,.day,.nearr{max-width:none!important}}

/* 常见问题（和“附近还能去”同一个版式） */
.faq{padding:32px 20px 0}.faq h2{margin:0 0 6px;font:900 20px var(--serif)}.faq dl{margin:0}.faq dt{padding-top:12px;border-top:1px solid var(--line);font:900 16px/1.4 var(--serif);color:var(--ink)}.faq dt:first-child{border-top:0}.faq dd{margin:4px 0 12px;font-size:14px;line-height:1.7;color:var(--ink2)}
/* 怎么去、怎么回：沿用“出发前”卡片；两条都是说明，不打勾 */
.pre.go{margin-bottom:12px}.pre.go li.tip{padding-left:0;font-size:14px;color:var(--ink)}
/* 「今天」：晚了按现在重排；要办的事里“加到日历” */
.tvnext .tvlate{display:block;margin-top:8px;height:40px;padding:0 14px;border:0;background:var(--bg);color:var(--ink);font-size:14px;font-weight:700;cursor:pointer;-webkit-appearance:none;appearance:none;border-radius:0}
.todoall.tvcal{margin:10px 0 0;background:var(--card)}
@media print{.faq{break-inside:avoid}.tvlate,.tvcal{display:none!important}}

/* 《舌尖上的中国》：每天一行（和天气那行同一个样式）、目的地页“吃”下面一段、合集页 */
.day .sjn{margin:4px 0 0;font-size:13px;line-height:1.6;color:var(--ink)}.day .sjn b{margin-right:6px;font-weight:700;color:var(--red)}
.se .sjd{margin:8px 0 0;font-size:13px;line-height:1.7;color:var(--ink2)}.se .sjd b{margin-right:6px;color:var(--red)}.se .sjd a{font-weight:700;color:var(--red)}
.sjs{padding:24px 20px 0}.sjs h2{margin:0;font:900 22px var(--serif)}.sjs h3{margin:16px 0 4px;font-size:13px;font-weight:700;color:var(--red);letter-spacing:.06em}
.sjl{list-style:none;margin:0;padding:0}.sjl li{padding:10px 0;border-top:1px solid var(--line)}.sjl b{display:block;font:900 16px/1.4 var(--serif)}.sjl span{display:block;font-size:13px;color:var(--ink2)}.sjl small{display:block;margin-top:2px;font-size:13px}.sjl small a{margin-right:10px;font-weight:700;color:var(--red)}

/* 出发前：只是提示（没有打勾框）的那条不缩进 */
.pre li.tip{padding-left:0}
/* 常见问题按钮：和“看全部 N 天”同一个样子 */
.faqmore{display:block;width:100%;height:44px;margin-top:4px;border:0;background:var(--card);font-size:14px;font-weight:700;color:var(--ink);cursor:pointer;-webkit-appearance:none;appearance:none;border-radius:0}
.faq dl:not([hidden])+.faqmore{margin-top:8px}
/* 底栏：收进行程、按天看两个按钮挨着放在右边 */
.dock{justify-content:flex-start}.dock>div:first-child,.dock>a:first-child{flex:1;min-width:0}.dock .fav{margin-left:auto}.dock .tvbtn{margin-left:6px}
/* 目的地页博物馆：名字和镇馆之宝占左边一整块，国宝和图标靠右不挤 */
.qual.mus li>span{flex:1;min-width:0}.qual.mus li>span b{display:block}.qual.mus .gt{display:block;margin-top:2px;font-size:12px;font-weight:400;color:var(--sub)}.qual.mus .gb,.qual.mus .icg{flex:none}
.qual.mus li>span{flex:none}.qual.mus li>span:first-child{flex:1 1 auto;min-width:0}.qual.mus li>span.icg{flex:none;display:inline-flex;flex-wrap:nowrap}.qual.mus small.gt{display:block;white-space:normal;word-break:normal}
.qual.mus small.gt{width:auto;text-align:left;align-self:stretch}.qual.mus li>span.icg{flex-direction:row;width:auto;gap:6px}

.dh .sjo{margin-top:6px;font-size:13px}.dh .sjo a{margin-right:8px;font-weight:700;color:var(--red)}

/* 懂一点：当天几个地方各一句 */
.story .stk{list-style:none;margin:10px 0 0;padding:0}.story .stk li{margin-top:6px;font-size:14px;line-height:1.7;color:var(--ink)}.story .stk b{margin-right:6px;font-weight:700}
/* 酒店：名字旁边和景点一样的图标 */
.stays li .icg{margin-left:6px;vertical-align:middle}

/* 电脑上、微信里打不开 App：不放导航、订酒店、点评、小红书入口 */
.noapp .ic.map,.noapp .ic.dp,.noapp .ic.xhs,.noapp .tl2,.noapp .tvnav,.noapp .ic[href*="amap"],.noapp .ic[href*="dianping"]{display:none!important}

.story p b{margin-right:6px;font-weight:700}.story p+p{margin-top:8px}

/* 住宿卡：酒店名和图标同一行；懂一点里的地方名用红字区分 */
.stays li b.tg,.stays li div>b{display:inline}.stays li .icg{display:inline-flex;margin-left:6px;vertical-align:-3px}.stays li small{display:block}
.story p b{color:var(--red)}

/* 每天末尾的“下一天 ›” */
.nextday{display:block;margin:14px 0 0;padding:12px 0 2px;border-top:1px solid var(--line);font-size:14px;font-weight:700;color:var(--red);text-align:right;text-decoration:none}

/* 多城市长线：住哪、住几晚 */
.ovstay{margin:-4px 0 10px;font-size:13px;line-height:1.7;color:var(--sub)}

/* 简洁：每天开头只留“出发”和“日落”两格（日出对多数人没用）；目的地页列表的图标改灰，三十行一排红图标太花 */
.day .fx:has(.sun[data-k="rise"]){display:none}
.qual .icg .ic{color:var(--sub)}
.qual .icg .ic svg{opacity:.75}

/* 纪录片合集页：红色只留给一处（每条“能去”的链接前的小点），其余按层次用墨色和灰色 */
.sjs h3{color:var(--sub);font-weight:700;letter-spacing:.04em}
.sjl span{color:var(--sub)}
.sjl small{margin-top:4px;color:var(--sub)}
.sjl small a{font-weight:400;color:var(--ink);margin-right:0;text-decoration:none;border-bottom:1px solid var(--line)}
.sjl small a+a::before{content:'·';display:inline-block;margin:0 6px;color:var(--sub);border:0}
.sjl small a::after{content:''}
.dh .sjo{color:var(--sub)}
.dh .sjo a{font-weight:400;color:var(--ink);margin-right:0}
.dh .sjo a+a::before{content:'·';margin:0 6px;color:var(--sub)}

/* ——— 全站减红：红色只留给要点的东西（改、要预约、去订、买票）和真正要注意的提醒（快截止、晚了、限行）；标题标签、序号、等级、来源名一律墨色或灰色 ——— */
.pre h2,.stays .sh .lbl,.story .lbl,.todo h3{color:var(--sub)}
.overview b{color:var(--sub)}
.tier{color:var(--sub)}
.qual small{color:var(--sub)}
.gb{color:var(--sub);border-color:var(--line)}
.r .s.tre b{color:var(--ink)}
.day .sjn b{color:var(--ink)}
.se .sjd b{color:var(--ink)}
.se .sjd a{color:var(--ink);font-weight:400;border-bottom:1px solid var(--line)}
.items .k{color:var(--sub)}
.dest h2{color:var(--ink)}
.hlegend b{color:var(--sub)}
.entry b,.tip b{color:var(--ink)}
/* 懂一点里的地方名：放在段首一行小灰字，不再用红 */
.story p b{display:block;margin:0 0 2px;font:700 12px/1.5 var(--sans,system-ui);color:var(--sub);letter-spacing:.04em}
.r .gb,.qual .gb,em.gb,span.gb{color:var(--sub)!important;border-color:var(--line)!important}

/* ——— 频道页（走哪儿、跟片走）统一版式：顶栏、小字频道名、大标题、导语、下划线切换 ——— */
.where .kick,.chan .kick{margin:18px 20px 0;font:700 12px/1.4 var(--sans,system-ui);letter-spacing:.14em;color:var(--sub)}
.where h1,.chan h1{margin:6px 20px 6px;font:900 34px/1.2 var(--serif)}
.deck{margin:0 20px 16px;font:400 15px/1.7 var(--serif);color:var(--sub)}
.ctabs{display:flex;gap:18px;overflow-x:auto;margin:0 20px;border-bottom:1px solid var(--line);scrollbar-width:none}
.ctabs::-webkit-scrollbar{display:none}
.ctabs a{flex:none;padding:10px 0;font-size:14px;color:var(--sub);text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px}
.ctabs a.on{color:var(--ink);font-weight:700;border-color:var(--ink)}
.where .tabs{display:flex;gap:18px;margin:0;padding:0;background:none;border-bottom:1px solid var(--line)}
.where .tabs button{flex:none;width:auto;height:auto;padding:10px 0;margin-bottom:-1px;background:none!important;color:var(--sub)!important;border:0;border-bottom:2px solid transparent;border-radius:0;font-size:14px;font-weight:400}
.where .tabs button.on{color:var(--ink)!important;border-color:var(--ink);font-weight:700}
.chan .sjs{padding-top:20px}
.chan .sjs h2{font:900 22px var(--serif)}

.where h1{padding:0;text-indent:0}

/* 跟片走目录：像杂志目录，序号、片名、一句话 */
.toc{list-style:none;margin:8px 20px 32px;padding:0;border-top:1px solid var(--ink)}
.toc li{border-bottom:1px solid var(--line)}
.toc a{display:flex;align-items:baseline;gap:16px;padding:16px 0;color:var(--ink);text-decoration:none}
.toc i{flex:none;width:28px;font:400 13px/1 var(--serif);font-style:normal;color:var(--sub)}
.toc b{display:block;font:900 22px/1.3 var(--serif)}
.toc small{display:block;margin-top:4px;font-size:13px;color:var(--sub)}
/* 走哪儿：本月一句放大成导语，像杂志的引言 */
.where .goodline{margin:4px 0 14px;font:700 17px/1.7 var(--serif);color:var(--ink)}
/* 频道页标题统一字距 */
.where h1,.chan h1{letter-spacing:.02em}

/* 走哪儿：分区（华北、华东…）改成宋体标题加细线，像杂志栏目 */
.where .rh{margin:28px 0 10px;padding-top:12px;border-top:1px solid var(--ink);font:900 20px/1.3 var(--serif);color:var(--ink);letter-spacing:.04em}
/* 频道页之间的留白统一 */
.chan .sjs h2{margin-top:8px;padding-top:14px;border-top:1px solid var(--ink)}

/* 每天下面“这天后面加一天” */
.addafter{display:block;width:100%;margin:14px 0 0;padding:10px 0;border:1px dashed var(--line);border-radius:8px;background:none;color:var(--sub);font-size:13px}
/* 原有天底部两个按钮并一行：去掉（左，窄）+ 加一天（右，撑满） */
.dayact{display:flex;gap:8px;align-items:stretch;margin-top:14px}
.dayact .rmday{margin:0;flex:0 0 auto;height:40px}
.dayact .addafter{margin:0;flex:1 1 auto;width:auto;min-width:0;height:40px;padding:0 8px;white-space:nowrap}
@media print{.dayact{display:none}}
.addafter:active{background:var(--bg2,#ece8df)}

/* 小控件的可点击区域放大到约 44px（外观不变）：每天的“调整”、页脚链接。手慢、手指粗的人容易点错 */
.r .s .adj{position:relative}
.r .s .adj:after{content:"";position:absolute;left:-8px;right:-8px;top:-10px;bottom:-10px}
.foot a{position:relative}
.foot a:after{content:"";position:absolute;left:-6px;right:-6px;top:-14px;bottom:-14px}

/* 高海拔每天的行动建议 */
.day .alt{margin:8px 0 0;font-size:13px;line-height:1.6;color:var(--ink)}
.day .alt b{margin-right:8px}

/* 微信里的“复制”按钮（只在微信里出现）；点击区域放大到约 44px */
.cpy{display:none}.wx .cpy{display:inline-block;position:relative;margin-left:8px;padding:0 6px;height:22px;border:1px solid var(--line);background:none;border-radius:11px;font:700 12px var(--sans);color:var(--sub);vertical-align:middle;-webkit-appearance:none;appearance:none;cursor:pointer}
.wx .cpy:after{content:"";position:absolute;left:-8px;right:-8px;top:-12px;bottom:-12px}

/* 剪贴板不能用时的文本框 */
.cpbox{width:100%;box-sizing:border-box;margin-top:8px;padding:10px;font:15px/1.5 var(--sans);border:1px solid var(--line);background:var(--card);color:var(--ink);resize:none;border-radius:0}

/* ===== 2026-10 频道页完善：走哪儿月份条、片里一行、分区跳转；跟片走分栏目录、跳转条、上下部 ===== */
.where .ms{display:flex;gap:2px;margin:10px 0 4px}
.where .ms i{flex:1;height:6px;border-radius:1px;background:var(--line)}
.where .ms i.o{background:#c9c4b8}
.where .ms i.b{background:var(--ink)}
.where .ms i.now{box-shadow:0 0 0 1.5px var(--bg,#f3f1ec),0 0 0 2.5px var(--sub)}
.where .msl{margin:0 0 6px;font-size:12px;line-height:1.5;color:var(--sub)}
.where .kv a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line)}
.where .rj{display:flex;gap:16px;overflow-x:auto;margin:14px 20px 0;padding:0 0 2px;scrollbar-width:none}
.where .rj::-webkit-scrollbar{display:none}
.where .rj a{flex:none;font-size:13px;color:var(--sub);text-decoration:none;padding:4px 0;border-bottom:1px solid transparent}
.where .rj a:active{color:var(--ink);border-color:var(--ink)}
.where .reg{scroll-margin-top:96px}
.chan .ph{display:flex;justify-content:space-between;align-items:baseline;margin:28px 20px 0;padding-top:12px;border-top:1px solid var(--ink);font:900 20px/1.3 var(--serif);letter-spacing:.04em}
.chan .ph small{font:400 12px var(--sans);letter-spacing:0;color:var(--sub)}
.chan.pian .toc{margin:4px 20px 0;border-top:0}
.chan.pian .toc a{padding:14px 0}
.chan.pian .toc b{font-size:20px}
.chan.pian .toc em{display:block;margin-top:3px;font:400 12px/1.5 var(--sans);font-style:normal;color:var(--sub)}
.chan .pm{margin:10px 20px 36px;font:400 15px/2.1 var(--serif);color:var(--ink)}
.chan .pm a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line)}
.chan .pm a small{margin-left:3px;font:400 11px var(--sans);color:var(--sub)}
.chan .pm .sep{color:var(--sub)}
.chan .jump{display:flex;gap:14px;overflow-x:auto;margin:0 20px;padding:12px 0 2px;scrollbar-width:none}
.chan .jump::-webkit-scrollbar{display:none}
.chan .jump a{flex:none;font-size:13px;color:var(--sub);text-decoration:none;padding:3px 0;border-bottom:1px solid var(--line)}
.chan .sjs,.chan .sjs h3{scroll-margin-top:12px}
.chan .pn{display:flex;justify-content:space-between;gap:12px;margin:36px 20px 40px;padding-top:14px;border-top:1px solid var(--ink)}
.chan .pn a{flex:1;display:block;color:var(--ink);text-decoration:none;font:700 15px/1.4 var(--serif)}
.chan .pn a:nth-child(2){text-align:center}.chan .pn a:last-child{text-align:right}
.chan .pn small{display:block;font:400 11px var(--sans);color:var(--sub);letter-spacing:.06em;margin-bottom:2px}

/* 2026-10 用户：下划线真的很丑。频道页里的链接和标签一律不要下划线，靠墨色和灰色区分；标签只留一条细分隔线 */
.sjl small a,.chan .jump a,.chan .pm a,.where .kv a,.chan .ph a{border-bottom:0!important;text-decoration:none}
.sjl small a{color:var(--ink)}
.ctabs a,.ctabs a.on,.where .tabs button,.where .tabs button.on{border-bottom-color:transparent!important}
.ctabs a.on,.where .tabs button.on{color:var(--ink)!important;font-weight:700}
.chan .jump a{color:var(--sub)}
.chan .jump a:active,.chan .jump a:hover{color:var(--ink)}
.where .rj a,.where .rj a:active{border-bottom:0}
.chan .pn a{text-decoration:none}

/* 2026-10 用户：第一季、第二季为啥不用和月份一样的样式 —— 频道页跳转条改成和走哪儿的月份条同款（灰块，当前项墨色底），滚动时跟着当前位置高亮 */
.chan .jump{position:sticky;top:0;z-index:5;gap:4px;margin:0;padding:10px 20px;background:var(--bg,#f3f1ec)}
.chan .jump a{flex:none;display:flex;align-items:center;justify-content:center;min-width:44px;height:36px;padding:0 12px;border:0;background:var(--card);color:var(--ink);font-size:13px;font-weight:700}
.chan .jump a.on{background:var(--ink);color:var(--bg)}
.chan .sjs,.chan .sjs h3{scroll-margin-top:64px}

/* 2026-10 插图：跟片走的片子封面、走哪儿卡片缩略图，用和行程海报同一套画法；“好在哪”一行 */
.chan .shero{margin:0 20px 18px;height:210px;overflow:hidden;background:var(--card)}
.chan .shero img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 60%}
.chan.pian .toc a{align-items:center}
.chan.pian .toc a>span{flex:1;min-width:0}
.chan .toc .pt{flex:none;width:60px;height:80px;object-fit:cover;background:var(--card)}
.sjl .why{margin:3px 0 4px;font:400 14px/1.7 var(--sans);color:var(--ink)}
.where .ch .ct{flex:none;width:44px;height:58px;object-fit:cover;background:var(--card);margin-right:2px}
.where .ch>div{flex:1}

/* 条目小插图（tools/motifs.py）：五个颜色变量 + 平涂符号 */
.ma{fill:var(--a)}.mb{fill:var(--b)}.mc{fill:var(--c)}.md{fill:var(--d)}.me{fill:var(--e)}
.ti{display:block;width:56px;height:75px;flex:none}

/* 条目小插图排版：左边一张，右边是名字、地点、好在哪、链接 */
.sjl li{display:grid;grid-template-columns:56px 1fr;column-gap:14px;align-items:start}
.sjl li>.ti{grid-column:1;grid-row:1 / span 4;margin-top:2px}
.sjl li>b,.sjl li>span,.sjl li>p,.sjl li>small{grid-column:2}
.where .ch .ti{width:44px;height:58px;margin-right:2px}

.sjl li>div.nm{grid-column:2;display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.sjl li>div.nm b{flex:1;min-width:0}
.sjl li>div.nm .icg{flex:none;margin-top:2px}
.sjl .ic{color:var(--sub)}

/* 交互体验修正（build/ux 报告）：点击热区不小于 44px，站点后的三个小图标不重叠 */
.fx .st:after{inset:-14px -8px}
.glance .pp:after{content:"";position:absolute;inset:-14px -6px}
.dtw .dt i{position:relative}.dtw .dt i:after{content:"";position:absolute;inset:-14px -10px}
.adj{position:relative}.adj:after{content:"";position:absolute;inset:-12px -8px}
.rmnote .rmback{min-height:44px;height:44px}
.r .ic{width:42px;height:42px;margin:-10px 0 -10px 0}
.toast .toast-act{margin-left:12px;height:32px;padding:0 10px;border:1px solid currentColor;background:transparent;color:inherit;font:700 14px var(--sans);cursor:pointer}
img[loading=lazy]{background-color:var(--card)}
.orgnote{margin:6px 0 0;font-size:13px;color:var(--sub)}.orgnote .orgx{height:44px;padding:0 6px;border:0;background:transparent;color:var(--red);font:700 13px var(--sans);cursor:pointer}
.chan2{display:flex;gap:8px;margin:10px 20px 16px}.chan2 a{flex:1;min-height:56px;padding:8px 12px;display:flex;flex-direction:column;justify-content:center;background:var(--card);color:var(--ink);text-decoration:none}.chan2 a:active{background:rgba(28,29,26,.08)}.chan2 b{font-size:15px;font-weight:900}.chan2 small{margin-top:2px;font-size:12px;color:var(--sub)}
.pkrs{display:block;margin:8px 0 0;height:44px;padding:0 4px;border:0;background:transparent;color:var(--red);font:700 13px var(--sans);cursor:pointer}
.dock small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* 深色模式：跟系统。只换变量；海报、封面是图片，保持原样 */
@media (prefers-color-scheme:dark){
:root{--lead:#e2e0d8;--okfg:#b5d494;--line2:rgba(236,235,229,.26);--ink2:#d6d4cc;--okbg:#2a3424;--warnbg:#3a2722;--bg:#161714;--ink:#ecebe5;--sub:#b3b5ad;--mute:#8b8d86;--red:#e27a62;--card:#21221f;--green:#9bbf78;--blue:#7bb8d2;--line:rgba(236,235,229,.16)}
body{background:var(--bg);color:var(--ink)}
@media (min-width:600px){body{background:#0e0f0d}main{box-shadow:0 0 0 1px rgba(236,235,229,.08)}}
:focus-visible{outline-color:var(--red)}
}
.toc a.allbar{color:var(--bg)}
.mapmore{margin:8px 20px 0;font-size:13px;line-height:1.8;color:var(--sub)}.mapmore a{display:inline-block;padding:4px 2px;color:var(--red);font-weight:700}

/* 地图底图：海、陆、本省/本国；四边渐隐、不画边框（颜色走类，深色模式换一套） */
.mp-sea{fill:#e3eaea}.mp-land{fill:#f6f3ec;stroke:#cdc4b1}.mp-home{fill:#efe6d3;stroke:#cdc4b1}
@media (prefers-color-scheme:dark){.mp-sea{fill:#1d2326}.mp-land{fill:#2a2c28;stroke:#43423a}.mp-home{fill:#36342b;stroke:#4d4b41}}
.wmap .mk-fit{fill:#1c1d1a}.wmap .mk-ok{fill:#4f6233}.wmap .mk-no{fill:#7c7e77}.wmap .mk-t{stroke:#f6f3ec}.wmap .mk-lg{fill:#5d5f59}
@media (prefers-color-scheme:dark){.wmap .mk-fit{fill:#ecebe5}.wmap .mk-ok{fill:#9bbf78}.wmap .mk-no{fill:#8b8d86}.wmap .mk-t{stroke:#1d2326}.wmap .mk-lg{fill:#b3b5ad}}

/* 用户体验第二轮 */
.mzoom{display:flex;gap:8px;margin:0 20px 8px;overflow-x:auto}.mzoom button{flex:none;height:44px;padding:0 14px;border:0;background:var(--card);color:var(--ink);font:700 13px var(--sans);cursor:pointer}.mzoom button.on{background:var(--ink);color:var(--bg)}
.reset{position:relative}.reset:after{content:"";position:absolute;inset:-12px -10px}
.dock b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}.dock small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dock{gap:8px}.dock button{padding:0 11px}
.tvx2{display:block;width:calc(100% - 40px);margin:18px 20px 28px;height:48px;border:0;background:var(--ink);color:var(--bg);font:700 15px var(--sans);cursor:pointer}
.flt .clr{min-height:44px;min-width:72px}
.mrw{display:flex;align-items:stretch}.mrw .mr{flex:1;min-width:0}.mrw .mrx{flex:none;width:56px;border:0;background:transparent;color:var(--red);font:700 13px var(--sans);cursor:pointer}
@media (prefers-color-scheme:dark){.cv .go{border:1px solid rgba(236,235,229,.55)}.allbar i{color:var(--bg)}}
.toast{z-index:60}
