/* 一日行程範例（trips-<region>.html，由 tools/itineraries/build.py 產生）。
   版面：頂列 → 封面（藍底，標題＋數字）→ 別人怎麼排（範本歸納）→ 行程區（桌機：左清單／時間軸＋右側 sticky 地圖；
   ≤899：地圖在上、可收合、sticky 於頂列下方，內容在下）→ 參考範本 → 相關頁面 → 頁尾。容器、間距、字級用 site.css 的 token。 */
:root{
  --m-walk:#6f7682; --m-metro:#1f6fc7; --m-jr:#2e8b57; --m-rail:#8a5cb8; --m-bus:#d9822b; --m-taxi:#b38600; --m-ferry:#178aa3; --m-ropeway:#8a5a2b;
  --tp-map-h:calc(100vh - var(--head-h) - 32px);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--m-walk:#a3aab6; --m-metro:#5ea2f0; --m-jr:#5cc48a; --m-rail:#b48ae0; --m-bus:#f0a65a; --m-taxi:#e0b83c; --m-ferry:#45c0d6; --m-ropeway:#c59262}}
:root[data-theme="dark"]{--m-walk:#a3aab6; --m-metro:#5ea2f0; --m-jr:#5cc48a; --m-rail:#b48ae0; --m-bus:#f0a65a; --m-taxi:#e0b83c; --m-ferry:#45c0d6; --m-ropeway:#c59262}
.m-walk{--mc:var(--m-walk)} .m-metro{--mc:var(--m-metro)} .m-jr{--mc:var(--m-jr)} .m-rail{--mc:var(--m-rail)} .m-bus{--mc:var(--m-bus)}
.m-taxi{--mc:var(--m-taxi)} .m-ferry{--mc:var(--m-ferry)} .m-ropeway{--mc:var(--m-ropeway)}
.tp-sprite{position:absolute;width:0;height:0;overflow:hidden}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
html,body{overflow-x:clip}

/* ── 封面 ── */
.tp-hero{background:var(--cover);color:#f4f5f2;padding:var(--s7) 0 var(--s6)}
.tp-hero .kicker{margin:0 0 var(--s3);font:500 var(--fs-label)/1 var(--f-mono);letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.7);display:flex;gap:14px;flex-wrap:wrap}
.tp-hero h1{margin:0;font:900 var(--fs-h1)/1.15 var(--f-display);letter-spacing:.06em}
.tp-hero .lede{margin:var(--s3) 0 0;max-width:var(--measure);font-size:var(--fs-lede);line-height:1.75;color:rgba(255,255,255,.86)}
.tp-stats{list-style:none;margin:var(--s5) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:var(--s3) var(--s6)}
.tp-stats li{display:flex;align-items:baseline;gap:var(--s2)}
.tp-stats b{font:500 28px/1 var(--f-mono);font-variant-numeric:tabular-nums;color:var(--glow)}
.tp-stats span{font-size:var(--fs-small);color:rgba(255,255,255,.75)}
.tp-jump{margin:var(--s5) 0 0;display:flex;flex-wrap:wrap;gap:var(--s2) var(--s3)}
.tp-jump a{display:inline-flex;align-items:center;min-height:40px;padding:0 var(--s4);border-radius:var(--r-pill);border:1px solid rgba(255,255,255,.34);color:#f4f5f2;text-decoration:none;font-size:14px;font-weight:600}
.tp-jump a:first-child{background:var(--glow);border-color:var(--glow);color:#1b1f27}
.tp-jump a:hover{border-color:var(--glow)}
@media (max-width:760px){.tp-hero{padding:var(--s6) 0 var(--s5)}.tp-hero h1{font-size:28px}.tp-stats{gap:var(--s2) var(--s5)}.tp-stats b{font-size:22px}}

/* ── 別人怎麼排 ── */
.tp-pats{padding-top:var(--sec-y)}
.tp-patl{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:var(--grid-gap)}
.tp-pat{position:relative;background:var(--sheet);border:1px solid var(--line);border-radius:var(--r-card);padding:var(--s4) var(--s4) var(--s4) var(--s4);display:flex;flex-direction:column;gap:var(--s2)}
.tp-pi{font:500 var(--fs-label)/1 var(--f-mono);letter-spacing:.2em;color:var(--kin-text)}
.tp-pat h3{margin:0;font:700 var(--fs-h4)/1.45 var(--f-display);letter-spacing:.04em}
.tp-pat p{margin:0;font-size:14px;line-height:1.7;color:var(--ink-2)}
.tp-srcs{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto!important;padding-top:var(--s1)}
.tp-src{display:inline-flex;align-items:center;gap:6px;max-width:100%;min-height:28px;padding:2px 10px 2px 4px;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--paper);
  color:var(--ink-2);font-size:12.5px;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tp-src span{flex:none;font:500 10.5px/1 var(--f-mono);padding:4px 6px;border-radius:var(--r-pill);background:var(--sheet);color:var(--kin-text);letter-spacing:.06em}
.tp-src:hover{border-color:var(--ai);color:var(--ai)}
@media (max-width:760px){
  .tp-patl{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:calc(-1*var(--gutter));padding:0 var(--gutter) var(--s2);scroll-padding-inline:var(--gutter);scrollbar-width:none}
  .tp-patl::-webkit-scrollbar{display:none}
  .tp-pat{flex:0 0 min(300px,82vw);scroll-snap-align:start}
}

/* ── 行程區：桌機左右分欄，地圖 sticky ── */
.tp-app{margin-top:var(--sec-y);padding-top:var(--s5);border-top:1px solid var(--line);scroll-margin-top:calc(env(safe-area-inset-top,0px) + var(--head-h))}
.tp-split{max-width:calc(var(--container) + 2 * var(--gutter));margin:0 auto;padding-inline:max(var(--gutter),env(safe-area-inset-left,0px)) max(var(--gutter),env(safe-area-inset-right,0px));
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);gap:var(--s5);align-items:start}
.tp-col{min-width:0}
.tp-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s3);flex-wrap:wrap;margin-bottom:var(--s3)}
.tp-head h2{margin:0;font:700 var(--fs-h2)/var(--lh-head) var(--f-display);letter-spacing:.08em}
.tp-count{margin:0;font:500 12px var(--f-mono);color:var(--ink-3)}
.tp-mapcol{position:sticky;top:calc(env(safe-area-inset-top,0px) + var(--head-h) + 16px);height:var(--tp-map-h);min-height:420px}
.tp-mapbox{position:relative;height:100%;border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden;background:var(--paper-2)}
.tp-map{position:absolute;inset:0}
.tp-mapt{display:none}
.tp-maphint{position:absolute;left:12px;top:12px;margin:0;max-width:calc(100% - 80px);padding:6px 10px;border-radius:8px;background:color-mix(in srgb,var(--sheet) 92%,transparent);
  box-shadow:0 4px 14px -6px rgba(10,14,24,.35);font-size:12.5px;line-height:1.5;color:var(--ink-2);pointer-events:none}
.tp-app.is-detail .tp-maphint,.tp-app.no-map .tp-maphint{display:none}
.tp-app.no-map .tp-mapbox::after{content:"這個瀏覽器無法顯示互動地圖（需要 WebGL）；時間軸與交通資訊不受影響。";position:absolute;inset:0;display:grid;place-items:center;padding:24px;text-align:center;color:var(--ink-3);font-size:14px}
.tp-legend{position:absolute;left:10px;bottom:10px;display:flex;flex-wrap:wrap;gap:4px;max-width:calc(100% - 120px);pointer-events:none}
.tp-legend span{display:none;align-items:center;gap:5px;padding:3px 8px;border-radius:var(--r-pill);background:color-mix(in srgb,var(--sheet) 92%,transparent);box-shadow:0 2px 8px -4px rgba(10,14,24,.4);font-size:11.5px;color:var(--ink-2)}
.tp-legend span.on{display:inline-flex}
.tp-legend i{width:16px;height:0;border-top:3px solid var(--mc)}
.tp-legend .m-walk i{border-top-style:dotted}

/* 篩選 */
.tp-filter{display:flex;flex-direction:column;gap:var(--s2);margin-bottom:var(--s4);padding-bottom:var(--s4);border-bottom:1px solid var(--line)}
.tp-fg{display:grid;grid-template-columns:40px minmax(0,1fr);align-items:start;gap:var(--s2)}
.tp-fl{font:500 12px/32px var(--f-body);color:var(--ink-3);letter-spacing:.08em}
.tp-fo{display:flex;flex-wrap:wrap;gap:6px}
.tp-fo button{display:inline-flex;align-items:center;gap:5px;min-height:32px;padding:0 12px;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--sheet);color:var(--ink-2);font:inherit;font-size:13.5px;cursor:pointer}
.tp-fo button em{font:normal 500 11px var(--f-mono);color:var(--ink-3)}
.tp-fo button:hover{border-color:var(--ai);color:var(--ai)}
.tp-fo button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--paper);font-weight:600}
.tp-fo button[aria-pressed="true"] em{color:inherit;opacity:.7}
@media (max-width:760px){
  .tp-filter{gap:6px}
  .tp-fg{grid-template-columns:34px minmax(0,1fr);gap:4px}
  .tp-fl{line-height:40px;font-size:12px}
  .tp-fo{flex-wrap:nowrap;overflow-x:auto;margin-right:calc(-1*var(--gutter));padding:0 var(--gutter) 2px 0;scrollbar-width:none}
  .tp-fo::-webkit-scrollbar{display:none}
  .tp-fo button{flex:none;min-height:40px}
}

/* 行程卡 */
.tp-list{display:flex;flex-direction:column;gap:var(--s3)}
.tp-trip[hidden]{display:none}
.tp-card{display:flex;flex-direction:column;gap:6px;padding:var(--s4) var(--s5);background:var(--sheet);border:1px solid var(--line);border-radius:var(--r-card);color:inherit;text-decoration:none;transition:border-color .15s,box-shadow .15s}
.tp-card:hover,.tp-trip.is-hover .tp-card{border-color:var(--ai);box-shadow:var(--shadow)}
.tp-k{display:flex;flex-wrap:wrap;gap:4px 12px;font:500 11px/1.5 var(--f-mono);letter-spacing:.12em;color:var(--ink-3)}
.tp-k b{font-weight:500;color:var(--kin-text)}
.tp-h{font:700 19px/1.45 var(--f-display);letter-spacing:.04em;color:var(--ink)}
.tp-chain{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;font-size:13.5px;font-weight:600;color:var(--ink)}
.tp-chain>span:not(.tp-arr){padding:1px 8px;border-radius:var(--r-pill);background:var(--paper-2)}
.tp-arr{color:var(--ink-3);font-weight:400}
.tp-lead{font-size:14px;line-height:1.7;color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tp-meta{display:flex;flex-wrap:wrap;gap:2px 14px;font:500 12px/1.6 var(--f-mono);color:var(--ink-3);font-variant-numeric:tabular-nums}
.tp-bar{display:flex;gap:2px;height:5px;border-radius:3px;overflow:hidden;margin-top:2px;background:var(--paper-2)}
.tp-bar i{display:block;background:var(--mc);min-width:3px}
.tp-bar i.m-walk{background:repeating-linear-gradient(90deg,var(--m-walk) 0 4px,transparent 4px 7px)}
.tp-go{font-size:12.5px;color:var(--ai);font-weight:600;align-self:flex-end}
.js-trips .tp-det{display:none}
@media (max-width:760px){.tp-card{padding:var(--s3) var(--s4)}.tp-h{font-size:17px}}

/* 詳細（選了一條行程） */
.tp-app.is-detail .tp-head,.tp-app.is-detail .tp-filter,.tp-app.is-detail .tp-empty{display:none}
.tp-app.is-detail .tp-trip:not(.is-open){display:none}
.tp-app.is-detail .tp-trip.is-open .tp-card{display:none}
.js-trips .tp-trip.is-open .tp-det{display:block}
.tp-det{padding-bottom:var(--s5)}
.tp-tools{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap;margin-bottom:var(--s3)}
.tp-sp{flex:1}
.tp-back,.tp-perma,.tp-print{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--sheet);color:var(--ink-2);font:inherit;font-size:14px;text-decoration:none;cursor:pointer}
.tp-back:hover,.tp-perma:hover,.tp-print:hover{border-color:var(--ai);color:var(--ai)}
.tp-apply{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 18px;border-radius:var(--r-pill);border:0;background:var(--btn-pri-bg);color:#fff;font:600 14px var(--f-body);letter-spacing:.04em;cursor:pointer}
.tp-apply:hover{filter:brightness(1.12)}
.tp-apply[aria-busy="true"]{opacity:.7;cursor:progress}
.tp-dh{margin:0;font:700 var(--fs-h2)/1.35 var(--f-display);letter-spacing:.06em}
.tp-dh:focus{outline:none}
.tp-dl{margin:var(--s2) 0 var(--s4);color:var(--ink-2);max-width:var(--measure)}
.tp-sum{margin:0 0 var(--s5);padding:var(--s3) var(--s4);background:var(--sheet);border:1px solid var(--line);border-radius:var(--r-card);display:grid;grid-template-columns:minmax(0,1fr);gap:0}
.tp-sum>div{display:grid;grid-template-columns:72px minmax(0,1fr);gap:var(--s3);padding:7px 0;border-bottom:1px solid var(--line)}
.tp-sum>div:last-child{border-bottom:0}
.tp-sum dt{font-size:12.5px;color:var(--ink-3);line-height:1.7}
.tp-sum dd{margin:0;font-size:14px;line-height:1.7;color:var(--ink)}
.tp-tlh{margin:0 0 var(--s3);font:700 var(--fs-h3)/1.4 var(--f-display);letter-spacing:.06em}

/* 時間軸：時間｜站號與連線｜內容 */
.tp-tl{list-style:none;margin:0;padding:0}
.tp-tl>li{display:grid;grid-template-columns:52px 30px minmax(0,1fr);column-gap:var(--s3);position:relative}
.tp-stop{padding:6px 0;border-radius:10px;cursor:pointer}
.tp-stop::before{content:"";position:absolute;left:calc(52px + var(--s3) + 14px);top:0;bottom:0;width:2px;background:var(--line)}
.tp-stop:first-child::before{top:18px}.tp-stop:last-child::before{bottom:calc(100% - 18px)}
.tp-t{display:flex;flex-direction:column;align-items:flex-end;padding-top:4px;font:500 13.5px/1.25 var(--f-mono);font-variant-numeric:tabular-nums}
.tp-t small{font-size:11px;color:var(--ink-3)}
.tp-n{position:relative;z-index:1;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:var(--paper);font:600 13px/1 var(--f-mono);
  box-shadow:0 0 0 3px var(--paper);transition:transform .15s,background .15s}
.tp-stop.is-meal .tp-n{background:var(--tabe);color:#fff}
.tp-b{min-width:0;padding:4px var(--s2) 4px 0}
.tp-b h4{margin:0;font:700 var(--fs-h4)/1.45 var(--f-display);letter-spacing:.03em;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}
.tp-meal{font:500 11px/1 var(--f-body);padding:4px 7px;border-radius:var(--r-pill);background:color-mix(in srgb,var(--tabe) 14%,transparent);color:var(--tabe);letter-spacing:.08em}
.tp-sm{margin:2px 0 0;display:flex;flex-wrap:wrap;gap:2px 12px;font-size:12.5px;color:var(--ink-3)}
.tp-lk{color:var(--ai);text-decoration:none;font-weight:600}
.tp-lk:hover{text-decoration:underline}
.tp-lk.ext::after{content:" ↗";font-weight:400}
.tp-note{margin:4px 0 0;font-size:14px;line-height:1.7;color:var(--ink-2)}
.tp-stop:hover,.tp-stop.is-hot{background:var(--sheet)}
.tp-stop.is-hot .tp-n{transform:scale(1.15);background:var(--glow);color:#1b1f27}
.tp-leg{padding:2px 0}
.tp-leg::before{content:"";position:absolute;left:calc(52px + var(--s3) + 13px);top:0;bottom:0;width:0;border-left:4px solid var(--mc)}
.tp-leg.m-walk::before{border-left-style:dotted}
.tp-leg .tp-ic{grid-column:2;position:relative;z-index:1;justify-self:center;align-self:center;width:24px;height:24px;padding:3px;border-radius:50%;background:var(--paper);
  fill:none;stroke:var(--mc);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;box-shadow:0 0 0 2px var(--mc)}
.tp-lc{grid-column:3;align-self:center;display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px;margin:6px 0;padding:6px 12px;border-radius:10px;background:var(--paper-2);
  font-size:13px;line-height:1.5;color:var(--ink-2);border-left:3px solid var(--mc)}
.tp-lc b{color:var(--ink);font-weight:600}
.tp-ft i{font-style:normal;color:var(--ink-3);padding:0 4px}
.tp-mi,.tp-yen{font:500 12.5px var(--f-mono);font-variant-numeric:tabular-nums;color:var(--ink)}
.tp-mn{flex-basis:100%;font-size:12.5px;color:var(--ink-3)}
.tp-leg.is-hot .tp-lc{background:color-mix(in srgb,var(--mc) 16%,var(--paper-2))}

.tp-alts,.tp-tips,.tp-based{margin-top:var(--s5)}
.tp-alts h4,.tp-tips h4,.tp-based h4{margin:0 0 var(--s2);font:700 var(--fs-h4)/1.4 var(--f-display);letter-spacing:.04em}
.tp-alts ul,.tp-tips ul,.tp-based ul{margin:0;padding-left:1.2em;font-size:14px;line-height:1.75;color:var(--ink-2)}
.tp-alts b{color:var(--ink);margin-right:8px}
.tp-based li span{display:block;font-size:12.5px;color:var(--ink-3)}
.tp-pn{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3);margin-top:var(--s6);padding-top:var(--s4);border-top:1px solid var(--line)}
.tp-pn:empty{display:none}
.tp-pn a{display:flex;flex-direction:column;gap:2px;padding:var(--s2) 0;color:inherit;text-decoration:none}
.tp-pn a.nx{grid-column:2;text-align:right;align-items:flex-end}
.tp-pn small{font:500 var(--fs-label)/1.4 var(--f-mono);letter-spacing:.18em;color:var(--kin-text)}
.tp-pn b{font:700 var(--fs-h4)/1.45 var(--f-display);letter-spacing:.04em}
.tp-pn a:hover b{text-decoration:underline;text-underline-offset:5px}
.tp-empty{padding:var(--s5) 0;color:var(--ink-2)}
.tp-empty button{font:inherit;color:var(--ai);background:none;border:0;padding:0 4px;cursor:pointer;text-decoration:underline}

/* 地圖上的站點標記（HTML 標記，可點、可鍵盤） */
.tp-mk{width:28px;height:28px;border-radius:50%;border:2px solid #fff;background:#1b1f27;color:#fff;font:700 12.5px/1 var(--f-mono);display:grid;place-items:center;cursor:pointer;padding:0;
  box-shadow:0 3px 10px -3px rgba(0,0,0,.55);transition:transform .15s,background .15s}
.tp-mk.is-meal{background:var(--tabe)}
.tp-mk.is-hot{transform:scale(1.3);background:var(--glow);color:#1b1f27;z-index:3}
.tp-mk:focus-visible{outline:3px solid var(--glow);outline-offset:2px}
.tp-se{display:inline-flex;align-items:center;gap:5px;padding:3px 8px 3px 4px;border-radius:var(--r-pill);background:#fff;color:#1b1f27;font:600 11.5px/1.2 var(--f-body);box-shadow:0 3px 10px -4px rgba(0,0,0,.5);white-space:nowrap;pointer-events:none}
.tp-se b{display:grid;place-items:center;width:18px;height:18px;border-radius:4px;background:#1b1f27;color:#fff;font:700 10.5px/1 var(--f-body)}
.tp-ov{width:12px;height:12px;border-radius:50%;background:var(--cover);border:2px solid #fff;box-shadow:0 2px 6px -2px rgba(0,0,0,.5);cursor:pointer;padding:0}
.tp-ov.is-hot{background:var(--glow);transform:scale(1.4)}
.tp-map .maplibregl-ctrl-attrib{font-size:10.5px}

/* ── 手機與平板直向（≤899）：地圖在上、sticky、可收合 ── */
@media (max-width:899px){
  .tp-split{display:flex;flex-direction:column;align-items:stretch;gap:0}
  .tp-mapcol{order:-1;position:sticky;top:calc(env(safe-area-inset-top,0px) + var(--head-h));z-index:12;height:auto;min-height:0;
    margin-inline:calc(-1*max(var(--gutter),env(safe-area-inset-left,0px)));background:var(--paper);margin-bottom:var(--s4);box-shadow:0 6px 14px -12px rgba(10,14,24,.5)}
  .tp-mapbox{height:34vh;height:34svh;min-height:220px;border-radius:0;border-inline:0}
  .tp-app.is-detail .tp-mapbox{height:40vh;height:40svh}
  .tp-mapt{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;height:36px;border:0;border-bottom:1px solid var(--line);background:var(--sheet);color:var(--ink-2);font:inherit;font-size:13px;cursor:pointer}
  .tp-mapt::after{content:"▴";font-size:11px}
  .tp-app.map-off .tp-mapbox{display:none}
  .tp-app.map-off .tp-mapt::after{content:"▾"}
  .tp-legend{max-width:calc(100% - 20px);bottom:22px}
  .tp-maphint{display:none}
  .tp-app{border-top:0;padding-top:0}
}
@media (max-width:760px){
  .tp-dh{font-size:23px}
  .tp-tl>li{grid-template-columns:44px 28px minmax(0,1fr);column-gap:var(--s2)}
  .tp-stop::before{left:calc(44px + var(--s2) + 13px)}
  .tp-leg::before{left:calc(44px + var(--s2) + 12px)}
  .tp-n{width:28px;height:28px}
  .tp-t{font-size:13px}
  .tp-sum>div{grid-template-columns:64px minmax(0,1fr)}
  .tp-tools{gap:6px}
  .tp-apply{flex:1 1 100%;justify-content:center;order:5;min-height:44px}
  .tp-back,.tp-perma{min-height:44px}
}

/* 參考範本 */
.tp-sources>p{max-width:var(--measure);color:var(--ink-2);font-size:14px}
.tp-sources h2 small{font:500 13px var(--f-mono);color:var(--ink-3);margin-left:8px}
.tp-sgs{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--s3) var(--s6)}
.tp-sg h3{margin:var(--s3) 0 var(--s2);font:700 var(--fs-h4)/1.4 var(--f-display)}
.tp-sg h3 em{font:normal 500 12px var(--f-mono);color:var(--ink-3);margin-left:8px}
.tp-sg ul{margin:0;padding-left:1.1em}
.tp-sg li{margin-bottom:6px;font-size:14px;line-height:1.6;overflow-wrap:anywhere}
.tp-sg li span{display:block;font-size:12px;color:var(--ink-3)}

/* 套用對話框（沿用 account.js 的 .ac-dlg 外觀） */
.tp-dlg{width:min(460px,100%)!important}
.tp-dlg .ac-fm{gap:12px}
.tp-opt{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:10px;cursor:pointer;font-size:14px;line-height:1.5}
.tp-opt:has(input:checked){border-color:var(--ai);box-shadow:inset 0 0 0 1px var(--ai)}
.tp-opt input{margin-top:3px;accent-color:var(--ai);flex:none}
.tp-opt>span{flex:1;min-width:0;display:block}
.tp-opt small{display:block;color:var(--ink-3);font-size:12.5px}
.tp-sel{display:flex;gap:8px;margin-top:8px;width:100%}
.tp-sel #tpDay{flex:0 0 116px}
.tp-sel select{flex:1 1 0;min-width:0;width:100%;height:40px;border:1px solid var(--line);border-radius:8px;background:var(--sheet);color:var(--ink);font:inherit;font-size:16px;padding:0 8px}
.tp-sel select:disabled{opacity:.5}
.tp-who{font-size:13px;color:var(--ink-2);line-height:1.6;background:var(--paper);border-radius:10px;padding:10px 12px}
.tp-who ul{margin:4px 0 0;padding-left:1.2em}
.tp-chk{display:flex;gap:8px;align-items:flex-start;font-size:13px;color:var(--ink-2);line-height:1.5}
.tp-chk input{margin-top:2px;accent-color:var(--ai)}

/* 列印：只印目前的行程（或全部行程卡） */
@media print{
  .mast,.tp-hero .tp-jump,.tp-pats,.tp-mapcol,.tp-filter,.tp-tools,.tp-pn,.related,.foot,.sources:not(.tp-sources),.tp-sources,#credits,.cr-mini{display:none!important}
  .tp-hero{background:none;color:#000;padding:0 0 12px}.tp-hero h1,.tp-hero .lede,.tp-stats span{color:#000}.tp-stats b{color:#000}
  .tp-split{display:block;padding:0}
  .tp-card{break-inside:avoid;box-shadow:none}
  .tp-stop,.tp-leg{break-inside:avoid}
  .tp-lc{background:none;border:1px solid #ccc;border-left:3px solid var(--mc)}
  body{background:#fff}
}
@media (prefers-reduced-motion:reduce){.tp-card,.tp-n,.tp-mk{transition:none}}
