@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+TC:wght@400;500;600;700&display=swap');
:root{--paper:#f8f9fa;--ink:#1B2631;--muted:#73818e;--line:#dde2e6;--accent:#CD7F32;--gold:#CD7F32;--shadow:0 8px 30px #1b342018;--font:'DM Sans','Noto Sans TC',sans-serif}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--font);font-size:14px;overflow:hidden}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{cursor:pointer}button{color:inherit;border:0;background:none}a{color:inherit;text-decoration:none}svg.icon{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle;flex:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #c29157;outline-offset:3px}button:disabled{opacity:.45;cursor:default}[hidden]{display:none!important}
.site-header{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 30px;border-bottom:1px solid var(--line);background:#f8f9fa;position:relative;z-index:30}.brand{display:flex;gap:13px;align-items:center}.brand-mark{font-family:Georgia,serif;font-weight:bold;font-size:29px;letter-spacing:-2px;display:inline-flex;align-items:center;color:var(--ink)}.brand-mark span{font-family:Arial,sans-serif;color:#b78354;font-size:28px;line-height:1;margin-left:4px}.brand-copy{font-size:10px;letter-spacing:1px;font-weight:700;padding-left:14px;border-left:1px solid #d6dcd2}.brand-copy small{display:block;font-size:8px;letter-spacing:1.6px;margin-top:5px;color:#829087}.season{font-size:11px;letter-spacing:3px;color:#8b8e81}.season span{margin-left:12px;color:var(--ink);font-weight:600}.header-actions{display:flex;gap:14px;align-items:center}.soft-button{border:1px solid var(--line);border-radius:7px;height:38px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 13px;font-size:12px;background:#fff9}.soft-button:hover{background:#f0f2ea}.soft-button[aria-pressed=true]{background:var(--ink);color:white}.soft-button b{background:#e4eadd;color:var(--ink);border-radius:10px;padding:2px 5px;font-size:10px}.icon-button{height:38px;width:38px;border-radius:50%;display:inline-grid;place-items:center}.icon-button:hover{background:#e9ece3}
.toolbar{display:flex;align-items:center;gap:24px;padding:15px 30px;height:73px;border-bottom:1px solid var(--line);position:relative;z-index:25;background:var(--paper)}.search-box{display:flex;align-items:center;gap:10px;border:1px solid #e0e4dc;background:white;border-radius:7px;padding:0 12px;min-width:260px;height:40px}.search-box svg{color:#8c988d}.search-box input{border:0;outline:none;min-width:0;width:100%;background:none;font-size:12px;color:var(--ink)}.search-box input:focus-visible{outline:0}.categories{display:flex;align-items:center;gap:8px}.category-scroller{min-width:0;overflow:auto;scrollbar-width:none;flex:1}.category-scroller::-webkit-scrollbar{display:none}.category{display:flex;gap:7px;align-items:center;white-space:nowrap;font-size:12px;font-weight:500;padding:10px 14px;border-radius:7px;border:1px solid transparent}.category .icon{width:16px;height:16px;color:var(--category)}.category:hover{background:#f0f1ea}.category.active{background:var(--ink);color:#fff}.category.active .icon{color:#e7dac0}.filter-trigger{flex:none}.filter-trigger i{width:6px;height:6px;background:var(--accent);border-radius:50%}
.workspace{position:relative;height:calc(100dvh - 149px);display:grid;grid-template-columns:354px 1fr}.map-panel{position:relative;overflow:hidden;grid-column:2;grid-row:1;background:#eeeae1}#map,#map-markers{position:absolute;inset:0;overflow:hidden}#map canvas{width:100%;height:100%;display:block;touch-action:none}#map-markers{pointer-events:none;z-index:5}.map-caption{position:absolute;z-index:6;left:29px;top:28px;pointer-events:none}.eyebrow{display:block;font-size:9px;letter-spacing:2px;font-weight:600;color:#849087}.map-caption h1{font-family:var(--font);font-size:30px;letter-spacing:-1px;line-height:1.45;margin:12px 0 10px;font-weight:500}.map-caption p{font-size:11px;color:#75837c;margin:0}.map-caption .eyebrow{font-size:8px;letter-spacing:1.6px}.region-pills{position:absolute;left:28px;bottom:59px;z-index:10;display:flex;border:1px solid #dce0d3;background:#fffdf4ed;border-radius:8px;padding:4px;box-shadow:var(--shadow)}.region-pills button{padding:9px 12px;font-size:11px;border-radius:5px;white-space:nowrap}.region-pills button.active{background:var(--ink);color:white}.map-controls{position:absolute;right:22px;top:24px;z-index:10;border:1px solid #dce0d3;background:#fffdf7f5;border-radius:9px;padding:5px;display:flex;flex-direction:column;gap:2px;box-shadow:var(--shadow)}.map-controls button{height:40px;width:40px;border-radius:5px;font-size:12px;font-weight:600}.map-controls button:hover{background:#e9eee3}.map-controls>span{height:1px;background:var(--line);margin:2px 5px}.map-bottom{position:absolute;bottom:15px;left:28px;right:22px;z-index:6;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:9px;letter-spacing:.2px;color:#79867e;pointer-events:none}.map-bottom button{font-size:9px;display:flex;gap:5px;align-items:center;pointer-events:auto}.map-bottom .icon{width:14px;height:14px}.tiny-dot{display:inline-block;width:5px;height:5px;background:#85a897;border-radius:50%;margin:1px 5px 1px 0}.map-tip{position:absolute;z-index:20;top:25px;left:50%;transform:translateX(-50%);max-width:80%;background:#fffdf7f5;border:1px solid var(--line);box-shadow:var(--shadow);padding:12px 17px;border-radius:10px;font-size:12px}.loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;background:#f0eee8;z-index:15;font-size:12px}.loading-orbit{width:35px;height:35px;border:2px solid #d6dcca;border-top-color:#CD7F32;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#map-fallback{position:absolute;left:20px;top:20px;right:70px;z-index:11;background:white;padding:10px;font-size:12px}.flat-map{position:absolute;inset:0;width:100%;height:100%}
.map-pin{position:absolute;pointer-events:auto;display:flex;align-items:center;gap:0;transform:translate(-50%,-100%);padding:0;white-space:nowrap;filter:drop-shadow(0 3px 4px #1B263120);transition:opacity .12s;outline-offset:5px}.pin-symbol{display:grid;place-items:center;background:var(--pin);color:white;width:34px;height:34px;border-radius:50% 50% 50% 5%;transform:rotate(-45deg);border:2px solid #fff9;position:relative;z-index:1}.pin-symbol svg{width:16px;height:16px;transform:rotate(45deg);stroke-width:1.8}.pin-title{display:block;max-width:190px;overflow:hidden;text-overflow:ellipsis;margin-left:-3px;padding:7px 11px 7px 14px;border-radius:0 6px 6px 0;background:#fffdf6ed;color:#1B2631;font-size:10px;font-weight:600;border:1px solid #e7e8df;border-left:0}.map-pin.no-label .pin-title{display:none}.map-pin.selected{z-index:200!important}.map-pin.selected .pin-symbol{background:#CD7F32;border-color:#fff;box-shadow:0 0 0 5px #ac66542b;width:40px;height:40px}.map-pin.selected .pin-title{background:var(--ink);color:white;font-size:11px;padding-block:10px}.map-pin.pending .pin-symbol{background:#f6f3e8;color:#a9843c;border:2px dashed #b79954}.map-pin:hover .pin-symbol{scale:1.1}.cluster{position:absolute;pointer-events:auto;transform:translate(-50%,-50%);width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:var(--ink);color:white;border:4px solid #fff9;box-shadow:0 0 0 5px #173e3610;font-weight:600;font-size:12px}.cluster:hover{background:#CD7F32}
.explorer{position:relative;z-index:12;grid-column:1;grid-row:1;background:var(--paper);border-right:1px solid var(--line);min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#d9ded2 transparent;box-shadow:8px 0 20px #31463404}.explorer-heading{padding:28px 25px 0}.explorer-heading h2{font-size:21px;font-weight:600;letter-spacing:-.5px;margin:10px 0}.explorer-heading h2 span{color:#CD7F32;margin-left:8px;font-size:20px}.explorer-heading p{font-size:11px;margin:0 0 20px}.muted{color:var(--muted)}.view-tabs{display:flex;margin:0 25px 15px;border-bottom:1px solid var(--line);gap:25px}.view-tabs button{padding:10px 1px;font-size:12px;border-bottom:2px solid transparent;margin-bottom:-1px;color:#869083}.view-tabs button.active{color:var(--ink);font-weight:600;border-color:var(--ink)}.place-list{padding:0 14px}.place-card{padding:17px 11px;display:flex;gap:11px;border-bottom:1px solid var(--line);align-items:flex-start;cursor:pointer;position:relative;text-align:left;width:100%;border-radius:5px}.place-card:hover{background:#f0f2f4}.place-card.active{background:#edf0f3}.place-visual{width:55px;height:62px;flex:none;display:grid;place-items:center;border-radius:9px;background:var(--tint);position:relative;overflow:hidden}.place-visual:after{content:'';position:absolute;bottom:0;width:100%;height:14px;opacity:.13;background:var(--category)}.place-visual .icon{width:28px;height:28px;color:var(--category);stroke-width:1.4}.place-copy{min-width:0;flex:1}.card-kicker{font-size:8px;letter-spacing:1px;color:#7d8b7e;text-transform:uppercase;margin-bottom:5px}.place-copy h3{font-size:14px;font-weight:600;line-height:1.35;margin:0 0 3px;padding-right:18px}.place-copy .zh-name{font-size:11px;color:#727f73;margin-bottom:8px}.card-meta{display:flex;flex-wrap:wrap;gap:5px;align-items:center;font-size:9px}.fee-badge{padding:3px 6px;border-radius:3px;background:#e9edde;color:#506949}.fee-badge.paid{background:#f4e7dd;color:#936c48}.fee-badge.unknown{background:#edeae3;color:#8a806d}.meta-date{color:#7e877c}.student-badge{color:#aa6651;background:#f5e9e2;padding:3px 6px;border-radius:3px}.card-chevron{position:absolute;right:10px;top:34px;color:#98a093}.card-chevron .icon{width:14px;height:14px}.list-foot{padding:15px 25px 25px;font-size:9px;line-height:1.9;color:#91988b}.active-filters{display:flex;gap:6px;flex-wrap:wrap;margin:0 25px}.active-filters:empty{margin:0}.active-filters button{border:1px solid #d9decc;background:#eef1e7;padding:4px 7px;border-radius:4px;font-size:9px;margin-bottom:8px}.date-hint{margin:0 25px 9px;font-size:10px;line-height:1.6;color:#8b8170}.empty{padding:35px 17px;text-align:center;color:#798776;font-size:12px;line-height:2}.empty b{display:block;color:var(--ink);font-size:16px}.empty button{display:block;margin:20px auto;border-bottom:1px solid var(--ink);padding-bottom:3px}.sheet-toggle{display:none}.route-list{padding:0 22px}.route-card{border-bottom:1px solid var(--line);padding:16px 0}.route-card h3{font-size:16px;margin:0 0 6px}.route-card p{font-size:11px;line-height:1.8;color:#7b8579;margin:0 0 11px}.route-stops{display:flex;flex-wrap:wrap;gap:4px;align-items:center;font-size:10px;line-height:1.7}.route-stops span{color:#a3aa9b}.route-stops button{border-bottom:1px dotted #9caa97;padding:2px}.route-card>.soft-button{margin-top:14px;font-size:11px;width:100%}
.detail-top{padding:18px 22px 12px;display:flex;align-items:center;justify-content:space-between}.back-button{font-size:11px;color:#7d887a;display:flex;align-items:center;gap:7px}.detail-top .icon{width:17px;height:17px}.save-place.is-saved{color:#CD7F32;background:#f3e3db}.save-place.is-saved .icon{fill:currentColor}.detail-banner{margin:0 22px 18px;min-height:103px;padding:22px;border-radius:10px;background:#e7ecf0;display:flex;align-items:center;justify-content:space-between;color:var(--category);overflow:hidden;position:relative}.detail-banner:after{content:'';position:absolute;width:180px;height:180px;right:-60px;top:15px;border:1px solid currentColor;opacity:.15;border-radius:50%}.detail-banner .icon{width:49px;height:49px;stroke-width:1.2}.detail-banner span{font-size:10px;letter-spacing:2px;line-height:2}.detail-body{padding:0 25px}.detail-body .eyebrow{font-size:9px}.detail-body h2{font-size:24px;line-height:1.25;letter-spacing:-.6px;margin:10px 0 7px}.detail-body .detail-zh{font-size:13px;color:#68798a;margin:0 0 15px}.detail-desc{font-size:12px;line-height:1.9;color:#61717f}.detail-facts{margin:20px 0;border-top:1px solid var(--line)}.fact{display:grid;grid-template-columns:22px 1fr;gap:8px;padding:13px 0;border-bottom:1px solid var(--line)}.fact>.icon{width:15px;height:15px;color:#a2a78e;margin-top:2px}.fact small{display:block;font-size:9px;color:#8f9686;margin-bottom:4px}.fact p{font-size:12px;line-height:1.7;margin:0}.detail-discount{border:1px solid #d4ddc8;background:#edf1e5;border-radius:7px;padding:14px;margin:16px 0}.detail-discount b{font-size:12px;display:flex;gap:7px;align-items:center}.detail-discount p{font-size:11px;line-height:1.8;margin:9px 0 0;color:#5c7259}.detail-tips h3{font-size:12px;margin:18px 0 10px}.detail-tips ul{padding-left:15px;margin:0;color:#6c7986;font-size:11px;line-height:1.85}.detail-tips li{margin:6px 0}.source-line{font-size:9px;color:#919887;line-height:1.8;margin:20px 0}.source-line a{border-bottom:1px solid #b7c0ad;color:#647584}.detail-actions{position:sticky;bottom:0;background:#f8f9faf5;backdrop-filter:blur(8px);padding:16px 22px 20px;border-top:1px solid var(--line);display:flex;gap:8px;margin-top:20px;z-index:3}.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:13px 17px;background:var(--ink);color:white;border-radius:6px;font-size:12px;font-weight:500;min-height:44px}.primary-button:hover{background:#ae6829}.detail-actions .primary-button{flex:1}.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);border-radius:6px;padding:12px 15px;font-size:12px;background:#fff9}
.dialog{border:1px solid var(--line);padding:26px;border-radius:16px;max-width:470px;width:calc(100% - 32px);color:var(--ink);background:var(--paper);box-shadow:0 20px 100px #16352933;max-height:85dvh}.dialog::backdrop{background:#14302550;backdrop-filter:blur(4px)}.dialog header{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:23px}.dialog h2{font-size:21px;margin:9px 0 0}.dialog h3{font-size:13px;margin:20px 0 5px}.dialog p{font-size:12px;line-height:1.9;color:#6c7986}.about-content a{text-decoration:underline}.field-label{font-size:12px;font-weight:500;display:block;margin-bottom:10px}.dialog input[type=date]{appearance:none;border:1px solid #d8decd;border-radius:6px;background:white;font:inherit;color:var(--ink);height:46px;width:100%;padding:0 13px}.dialog .field-note{font-size:10px;margin:7px 0 20px}.check-row{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:17px 0;border-bottom:1px solid var(--line)}.check-row b{font-size:12px;font-weight:500}.check-row small{display:block;font-size:10px;color:#8a9482;margin-top:5px;line-height:1.6}.check-row input{appearance:none;width:35px;height:20px;flex:none;background:#d7decc;border-radius:15px;position:relative;cursor:pointer;margin:0}.check-row input:after{content:'';width:14px;height:14px;background:white;border-radius:50%;position:absolute;top:3px;left:3px;transition:transform .15s}.check-row input:checked{background:var(--ink)}.check-row input:checked:after{transform:translateX(15px)}.dialog footer{display:flex;justify-content:space-between;align-items:center;margin-top:24px}.text-button{font-size:12px;text-decoration:underline;text-underline-offset:4px}.toast{position:fixed;bottom:35px;left:50%;transform:translate(-50%,20px);background:var(--ink);color:white;padding:12px 18px;border-radius:8px;font-size:12px;z-index:100;opacity:0;pointer-events:none;transition:.2s;max-width:85%;text-align:center;box-shadow:var(--shadow)}.toast.show{opacity:1;transform:translate(-50%,0)}.noscript{position:fixed;inset:0;background:var(--paper);display:grid;place-content:center;z-index:200;text-align:center}
@media(min-width:1600px){.workspace{grid-template-columns:390px 1fr}.map-caption h1{font-size:37px}.explorer-heading h2{font-size:23px}.place-card{padding-block:21px}}
@media(max-width:1050px){.toolbar{gap:12px;padding-inline:20px}.search-box{min-width:220px;width:220px}.category{padding:10px}.workspace{grid-template-columns:320px 1fr}.map-caption h1{font-size:23px}.map-caption .eyebrow{font-size:6px}.map-bottom>span{max-width:160px;line-height:1.6}.map-bottom button span{display:none}.season{display:none}.place-copy h3{font-size:13px}.pin-title{font-size:9px}.map-caption{left:23px}}
@media(max-width:700px){.site-header{height:59px;padding:0 17px}.brand-mark{font-size:27px}.brand-copy{font-size:8px;letter-spacing:.5px;padding-left:11px}.brand-copy small{font-size:6px;letter-spacing:1.1px}.brand{gap:10px}.header-actions{gap:4px}.header-actions .soft-button{border:0;padding:0 7px;height:35px;background:none}.save-word{display:none}.header-actions .icon-button{width:30px;height:35px}.toolbar{height:108px;padding:11px 15px 7px;display:grid;grid-template-columns:1fr 72px;grid-template-rows:38px 40px;gap:6px 9px}.search-box{min-width:0;width:100%;height:36px}.filter-trigger{grid-column:2;grid-row:1;height:36px;padding:0 8px;font-size:11px}.filter-trigger svg{width:15px}.category-scroller{grid-column:1/-1;grid-row:2;width:calc(100% + 15px)}.categories{gap:5px;padding-right:15px}.category{font-size:11px;padding:8px 11px;gap:6px;border-radius:6px}.category .icon{width:14px;height:14px}.workspace{height:calc(100dvh - 167px);display:block}.map-panel{position:absolute;inset:0}.map-caption{left:18px;top:17px}.map-caption h1{font-size:21px;line-height:1.4;letter-spacing:-.7px;margin:8px 0 0}.map-caption p{display:none}.map-caption .eyebrow{font-size:6px;letter-spacing:1px}.map-controls{right:13px;top:16px;padding:3px;border-radius:8px}.map-controls button{width:32px;height:34px;font-size:10px}.map-controls svg{width:16px;height:16px}.map-pin .pin-symbol{width:30px;height:30px}.map-pin .pin-symbol svg{width:14px;height:14px}.pin-title{font-size:9px;max-width:145px;padding:6px 8px 6px 12px}.cluster{width:35px;height:35px;border-width:3px;font-size:11px}.map-pin.selected .pin-title{font-size:10px;padding-block:8px}.map-pin.selected .pin-symbol{width:34px;height:34px}.map-bottom{left:17px;right:15px;bottom:197px;font-size:7px}.map-bottom>span{max-width:none}.map-bottom button{font-size:7px}.region-pills{bottom:223px;left:15px;padding:3px;max-width:calc(100% - 30px);overflow:auto}.region-pills button{padding:8px 10px;font-size:9px}.explorer{position:absolute;left:10px;right:10px;bottom:calc(8px + env(safe-area-inset-bottom));height:172px;border:1px solid #dce0d3;border-radius:15px 15px 11px 11px;box-shadow:0 -3px 30px #283d1714;overflow:auto;transition:height .28s cubic-bezier(.2,.7,.2,1);z-index:15;background:#f8f9faf7;backdrop-filter:blur(12px);overscroll-behavior:contain}.explorer.expanded{height:min(73%,560px)}.explorer.detail-open{height:48%;min-height:215px}.explorer.detail-open.expanded{height:85%}.sheet-toggle{display:flex;position:sticky;top:0;background:#f8f9faed;backdrop-filter:blur(5px);height:22px;width:100%;align-items:center;justify-content:center;z-index:20;touch-action:none}.sheet-toggle span{height:4px;width:32px;background:#cdd4c6;border-radius:4px}.explorer-heading{padding:3px 17px 0}.explorer-heading .eyebrow{display:none}.explorer-heading h2{font-size:18px;margin:4px 0 6px}.explorer-heading h2 span{font-size:17px}.explorer-heading p{font-size:10px;margin-bottom:6px}.view-tabs{margin:0 17px 8px;gap:22px}.view-tabs button{padding:8px 0;font-size:11px}.place-list{padding:0 8px}.place-card{padding:13px 10px}.place-visual{width:46px;height:52px}.place-copy h3{font-size:13px}.place-copy .zh-name{font-size:10px;margin-bottom:6px}.card-meta{font-size:9px}.active-filters{margin-inline:17px}.date-hint{margin-inline:17px}.list-foot{padding:12px 18px;font-size:9px}.detail-top{padding:1px 17px 6px}.detail-banner{display:none}.detail-body{padding:0 20px}.detail-body h2{font-size:23px;margin-top:8px}.detail-body .detail-zh{font-size:12px}.detail-desc{font-size:12px}.detail-actions{padding:12px 17px 14px;margin-top:18px}.detail-facts{margin-top:15px}.detail-top .icon-button{width:31px;height:31px}.dialog{padding:22px;max-height:90dvh}.dialog h2{font-size:20px}.map-tip{top:110px;font-size:11px;max-width:calc(100% - 60px);width:270px}.toast{bottom:calc(30px + env(safe-area-inset-bottom))}.map-panel:has(+.explorer.detail-open) .map-caption{display:none}.map-panel:has(+.explorer.expanded) .map-bottom,.map-panel:has(+.explorer.detail-open) .map-bottom{display:none}.map-panel:has(+.explorer.expanded) .region-pills,.map-panel:has(+.explorer.detail-open) .region-pills{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important;transition:none!important}}

/* Walking routes remain clear above both WebGL and software-rendered buildings. */
.walking-route-overlay{position:absolute;inset:0;width:100%;height:100%;z-index:4;pointer-events:none;overflow:hidden}
.walking-route-overlay path{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.route-halo{stroke:#fff;stroke-width:10;opacity:.96}.route-line{stroke:var(--route-color,#CD7F32);stroke-width:6}
.route-approach{stroke:#CD7F32;stroke-width:3.5;stroke-dasharray:3 6}.route-direction{stroke:#fff;stroke-width:2.5}
.route-stop-marker{position:absolute;pointer-events:auto;transform:translate(-50%,-50%);padding:0;z-index:210;filter:drop-shadow(0 2px 4px #1b263130)}
.route-stop-number{width:32px;height:32px;border:3px solid white;box-shadow:0 0 0 1px #CD7F32;display:grid;place-items:center;border-radius:50%;background:#CD7F32;color:white;font-weight:700;font-size:13px;position:relative;z-index:2}
.route-stop-marker.is-start .route-stop-number{background:#1B2631;box-shadow:0 0 0 1px #1B2631}.route-stop-marker.is-end .route-stop-number{border-radius:8px;background:#1B2631;box-shadow:0 0 0 2px #CD7F32}
.route-stop-name{position:absolute;left:25px;top:-6px;display:block;width:max-content;max-width:190px;text-align:left;padding:6px 10px 6px 12px;background:#fff;border:1px solid #dfd7cc;border-radius:6px;font-size:11px;font-weight:600;white-space:nowrap}
.route-stop-name small{display:block;color:#9a601f;font-size:8px;line-height:1.4;font-weight:600;margin-bottom:1px}.route-stop-marker.label-left .route-stop-name{left:auto;right:25px;padding:6px 12px 6px 10px}.route-stop-marker.active .route-stop-name{background:#1B2631;color:white}.route-stop-marker.active small{color:#efaf6b}
.route-map-summary{position:absolute;top:23px;left:27px;right:90px;max-width:570px;z-index:11;background:#f8fafbf5;border:1px solid #c6d1d9;border-radius:10px;padding:14px 14px 10px;display:flex;align-items:center;flex-wrap:wrap;gap:8px 15px;box-shadow:0 5px 20px #1b263110;backdrop-filter:blur(7px)}
.route-map-summary>div{flex:1;min-width:0}.route-map-summary span{display:block;font-size:7px;letter-spacing:1.7px;color:#a66729;font-weight:600}.route-map-summary b{display:block;font-size:18px;margin:5px 0}.route-map-summary small{font-size:11px;color:#5d6d7b}.route-map-summary p{margin:0;padding-top:7px;border-top:1px solid #dde2e6;flex-basis:100%;font-size:9px;line-height:1.5;color:#6e7c88}.route-refit{display:flex;align-items:center;gap:6px;border:1px solid #d7a16a;padding:9px;border-radius:6px;color:#92561e;font-size:11px}.route-exit{padding:3px}.route-exit .icon{width:17px;height:17px}
.route-active .map-caption,.route-active .map-layer-switches,.route-active .landmark-jump,.route-active .region-pills{display:none}
.route-active .map-pin{opacity:.6}.route-active .map-pin:hover{opacity:1}
.route-intro{font-size:12px;line-height:1.7;color:#687b87;margin:10px 0}.route-card{padding:20px 0}.route-card h3{margin:7px 0;font-size:18px}.route-card .route-metrics,.route-metrics{font-size:11px!important;font-weight:600;color:#9a6028!important}.route-stops{display:grid;gap:6px}.route-stops button{text-align:left;border:0;display:flex;align-items:center;gap:8px}.route-stops button b{width:18px;height:18px;display:inline-grid;place-items:center;background:#edf0f3;color:#6d7c87;border-radius:50%;font-size:9px}.route-card>.soft-button{background:#1B2631;color:#fff;border-color:#1B2631}.route-card>.soft-button:hover{background:#CD7F32;border-color:#CD7F32}
.route-itinerary{padding:3px 0 22px}.route-itinerary>.back-button{margin-bottom:22px}.route-itinerary h3{font-size:20px;margin:8px 0}.route-itinerary .route-context{font-size:11px;line-height:1.8;color:#6a7885;margin:12px 0 22px}.route-timeline{list-style:none;margin:0;padding:0}.route-timeline>li{position:relative;margin:0;padding:0 0 12px}.route-timeline>li:not(:last-child):before{content:'';position:absolute;top:25px;bottom:0;left:16px;width:2px;background:#e1b88f}.route-itinerary-stop{position:relative;display:flex;align-items:center;text-align:left;gap:12px;width:100%;padding:0}.route-itinerary-stop>span{width:34px;height:34px;background:#1B2631;border:3px solid #f8f9fa;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:11px;font-weight:600;flex:none}.route-timeline li:last-child .route-itinerary-stop>span{background:#CD7F32}.route-itinerary-stop>div{flex:1;min-width:0}.route-itinerary-stop small{font-size:9px;color:#a26426;display:block;margin-bottom:3px}.route-itinerary-stop b{font-size:13px;display:block}.route-itinerary-stop em{font-style:normal;font-size:10px;color:#74828f;display:block;margin-top:4px}.route-itinerary-stop>.icon{width:13px;flex:none;color:#8b98a0}.route-leg-info{padding:14px 0 14px 46px;display:grid;gap:6px}.route-leg-info>b{font-size:10px;font-weight:500;color:#5a6c7d}.route-leg-info>span{font-size:10px;color:#8b949d;line-height:1.7}.route-leg-info a{font-size:10px;color:#9b6025;display:flex;align-items:center;gap:5px;width:fit-content}.route-leg-info .icon{width:12px;height:12px}.route-smallprint{font-size:10px;line-height:1.8;color:#7b8791}.route-itinerary-actions{position:sticky;bottom:0;display:flex;gap:7px;background:#f8f9faf5;border-top:1px solid #dde2e6;padding:12px 0 0;margin-top:15px}.route-itinerary-actions>*{flex:1;white-space:nowrap;font-size:11px;padding-inline:8px}.route-itinerary-actions .icon{width:15px}
@media(max-width:700px){.route-map-summary{top:14px;left:13px;right:58px;padding:11px 10px 8px;gap:7px;max-width:none;border-radius:8px}.route-map-summary b{font-size:15px;margin:4px 0}.route-map-summary small{font-size:9px}.route-map-summary p{font-size:8px;line-height:1.5;padding-top:6px}.route-refit{font-size:9px;padding:7px;gap:3px}.route-refit .icon{width:14px;height:14px}.route-exit{padding:0}.route-exit .icon{width:14px}.route-stop-number{width:27px;height:27px;font-size:11px;border-width:2px}.route-stop-name{font-size:9px;max-width:142px;padding:5px 7px 5px 9px;left:21px;top:-7px}.route-stop-name small{font-size:7px}.route-stop-marker.label-left .route-stop-name{right:21px;padding:5px 9px 5px 7px}.route-list{padding:0 17px}.route-itinerary h3{font-size:19px}.route-itinerary-actions{padding-bottom:9px}.route-card h3{font-size:17px}.route-active .map-bottom{bottom:186px}}

/* Keep the marker point anchored to its geographic position. */
.map-pin .pin-title{position:absolute;left:26px;top:2px;width:max-content;margin-left:0;padding-left:14px}.map-pin.label-left .pin-title{left:auto;right:26px;border:1px solid #e7e8df;border-right:0;border-radius:6px 0 0 6px;padding-left:11px;padding-right:14px}.map-pin.selected .pin-title{left:32px;top:1px}.map-pin.selected.label-left .pin-title{left:auto;right:32px}
@media(max-width:700px){.map-pin .pin-title{left:23px;top:1px}.map-pin.label-left .pin-title{left:auto;right:23px}.map-pin.selected .pin-title{left:28px}.map-pin.selected.label-left .pin-title{left:auto;right:28px}.map-caption h1{font-size:23px}.fact p{font-size:13px}.detail-tips ul,.detail-discount p{font-size:12px}.map-bottom>span{background:#f8f9fadc;border-radius:4px;padding:4px 6px}.map-bottom{bottom:191px}}

.filter-trigger{position:relative;white-space:nowrap}.filter-trigger i{position:absolute;right:5px;top:5px}

/* TUF city atlas — official brand colours and compact map controls. */
.site-header{background:#1B2631;color:#fff;border-bottom-color:#33404b;padding-inline:27px}
.brand-group{display:flex;align-items:center;gap:22px}.brand{display:block}.official-logo{display:block;width:82px;height:57px}
.brand-links{display:flex;gap:15px;align-items:center;padding-left:22px;border-left:1px solid #ffffff29;font-size:11px;color:#e3e7eb}.brand-links a{display:flex;align-items:center;gap:6px}.brand-links a:hover{color:#efa85f}.brand-links .icon{width:14px;height:14px}
.season{color:#d2d9df;letter-spacing:2px}.season span{color:#e9a665}.header-actions .soft-button{background:#ffffff09;border-color:#ffffff24}.header-actions .soft-button:hover,.header-actions .soft-button[aria-pressed=true]{background:#CD7F32;border-color:#CD7F32}.header-actions .soft-button b{background:#fff;color:#1B2631}.header-actions .icon-button:hover{background:#ffffff15}
.map-panel{background:#dfe7ed}.map-caption{top:24px;left:27px;filter:drop-shadow(0 1px 3px #dfe7ed)}.map-caption h1{font-size:28px;font-weight:600;margin:8px 0}.map-caption p{color:#5f7181}.map-caption .eyebrow{color:#687c8f;letter-spacing:2px}.eyebrow{color:#7e8c97}.map-controls{background:#f8fafbf5;border-color:#cdd7de}.map-controls button:hover{background:#e5ebef}.region-pills{background:#f8fafbf2;border-color:#cbd5dd}.region-pills button.active{background:#1B2631}.map-bottom{color:#536979}.map-bottom a{pointer-events:auto;text-decoration:underline;text-underline-offset:2px}.tiny-dot{background:#CD7F32}.loading{background:#dfe7ed}.loading-orbit{border-color:#b6c4ce;border-top-color:#CD7F32}
.map-layer-switches{position:absolute;top:137px;left:27px;z-index:8;display:flex;gap:6px}.map-layer-switches button{height:31px;display:flex;gap:6px;align-items:center;padding:0 10px;font-size:10px;border-radius:5px;background:#f8fafbd9;border:1px solid #c9d3db}.map-layer-switches button[aria-pressed=true]{background:#1B2631;color:#fff;border-color:#1B2631}.map-layer-switches .icon{width:13px;height:13px}.landmark-jump{position:absolute;left:27px;bottom:117px;z-index:9;padding:10px 12px;background:#f8fafbe8;border:1px solid #cbd5dd;border-radius:8px;box-shadow:0 3px 15px #1b263109;max-width:280px}.landmark-jump label{display:block;font-size:9px;letter-spacing:.8px;color:#6b7d8c;margin-bottom:6px}.landmark-jump select{font:500 11px var(--font);color:#1B2631;background:transparent;border:0;max-width:100%;width:246px;padding:0 20px 0 0;outline-color:#CD7F32;cursor:pointer}
.station-marker{position:absolute;pointer-events:auto;display:flex;align-items:center;transform:translate(-50%,-50%);height:24px;padding:0;z-index:7}.station-symbol{display:grid;place-items:center;width:21px;height:21px;border:2px solid #aa573c;border-radius:50%;background:#fff;box-shadow:0 1px 4px #20374928;flex:none}.station-symbol .icon{width:12px;height:12px;stroke-width:2;color:#1B2631}.station-name{display:none;font-size:9px;background:#fffffff0;border:1px solid #d4dce1;border-radius:3px;white-space:nowrap;padding:4px 6px;margin-left:3px;box-shadow:0 1px 3px #2037490d;color:#1B2631}.station-marker.named .station-name{display:block}.station-marker.named{transform:translate(-11px,-50%)}.station-marker.nearby{z-index:100}.station-marker.nearby .station-symbol{width:25px;height:25px;border-color:#CD7F32;box-shadow:0 0 0 4px #cd7f3220}.station-marker.nearby .station-name{font-size:10px;font-weight:600}.station-popup{position:absolute;pointer-events:auto;top:24px;right:84px;z-index:240;width:230px;padding:20px;background:#f8fafb;border:1px solid #cbd5dd;border-radius:10px;box-shadow:0 12px 35px #1b263130}.station-popup b{display:block;font-size:17px;margin:10px 0}.station-popup p{font-size:11px;line-height:1.6;color:#667888}.station-popup a{display:flex;align-items:center;gap:7px;font-size:11px;color:#a46125;text-decoration:underline}.popup-close{position:absolute;right:5px;top:5px;width:28px;height:28px}.popup-close .icon{width:14px;height:14px}
.landmark-marker{position:absolute;pointer-events:auto;transform:translate(-50%,-100%);font-size:10px;white-space:nowrap;padding:3px 5px;color:#344b5d;font-weight:600;text-shadow:0 1px 2px #fff,1px 0 2px #fff,-1px 0 2px #fff;background:#f8fafb99;border-radius:3px;border:1px solid #f8fafb77;z-index:3}.landmark-marker span{display:inline-block;background:#CD7F32;width:4px;height:4px;border-radius:50%;margin:0 5px 2px 0}.landmark-marker:hover,.landmark-marker.active{color:#1B2631;background:#fff;border-color:#CD7F32}.road-label{position:absolute;pointer-events:none;white-space:nowrap;font-size:9px;font-weight:500;color:#7b7c75;letter-spacing:.4px;text-shadow:0 1px 2px #fff,1px 0 2px #fff;z-index:1}.map-tip{top:23px;max-width:320px;left:auto;right:85px;transform:none;padding:13px 36px 13px 16px;background:#f8fafbf0;pointer-events:auto}.map-tip b,.map-tip span,.map-tip small{display:block}.map-tip b{font-size:15px}.map-tip span{font-size:10px;margin-top:5px;color:#677d8e}.map-tip small{font-size:9px;color:#8b969f;margin-top:8px}.map-tip button{position:absolute;right:5px;top:5px;width:28px;height:28px}.map-tip button .icon{width:14px;height:14px}
.pin-title{background:#fdfefef2;border-color:#d6dee4;color:#1B2631}.map-pin.selected .pin-symbol{background:#CD7F32;box-shadow:0 0 0 5px #CD7F322b}.cluster{background:#1B2631}.cluster:hover{background:#CD7F32}.primary-button{background:#CD7F32;color:#fff}.primary-button:hover{background:#af6829}.view-tabs button.active{border-color:#CD7F32}.check-row input:checked{background:#CD7F32}.category.active .icon{color:#e7a66c}.category:hover{background:#eef1f4}.soft-button:hover{background:#e9eef2}.detail-banner{background:#e6edf2}.detail-discount{border-color:#dfc4aa;background:#fcf2e8}.detail-discount b{color:#a96528}.detail-discount p{color:#806343}.source-line a{color:#a96528;border-color:#d8b08c}.fee-badge.free,.fee-badge.mixed{background:#e8eeef;color:#526a72}.fee-badge.paid{background:#f6e9dc;color:#9d662f}.card-kicker,.meta-date,.place-copy .zh-name{color:#74828e}.list-foot{color:#8a98a3}.sheet-toggle span{background:#b9c5ce}.dialog::backdrop{background:#1B263166}.dialog p{color:#647585}.dialog input[type=date]{border-color:#ccd5dd}.check-row small{color:#7a8a97}.check-row input{background:#c8d2da}
.nearby-stations{margin:20px 0;border:1px solid #d8e1e8;border-radius:8px;padding:12px;background:#f0f4f7}.nearby-stations h3{display:flex;align-items:center;gap:7px;font-size:12px;margin:0 0 9px}.nearby-stations h3 .icon{width:15px;height:15px;color:#CD7F32}.nearby-stations>a{display:flex;align-items:center;gap:8px;padding:10px 0;border-top:1px solid #dbe3e9}.nearby-stations>a>span:nth-child(2){min-width:0;flex:1}.nearby-stations b{display:block;font-size:11px;line-height:1.4}.nearby-stations small{display:block;font-size:9px;color:#7d8d99;margin-top:3px;line-height:1.4}.station-rank{display:grid;place-items:center;width:20px;height:20px;border:1px solid #d1a47d;border-radius:50%;color:#a8672e;font-size:10px;flex:none}.nearby-stations em{font-style:normal;font-size:9px;color:#7a8b98;white-space:nowrap}.nearby-stations em .icon{width:11px;height:11px}.nearby-stations>p{font-size:9px;line-height:1.6;color:#82919d;margin:5px 0 0}
@media(max-width:1050px){.brand-links{gap:12px}.landmark-jump{max-width:250px}.map-caption{left:23px}.map-layer-switches{left:23px}.map-caption h1{font-size:24px}}
@media(max-width:700px){
 .site-header{height:65px;padding:0 14px}.brand-group{gap:13px}.official-logo{width:65px;height:46px}.brand-links{padding-left:13px;gap:7px;flex-direction:column;align-items:flex-start;font-size:9px}.brand-links .icon{width:11px;height:11px}.header-actions .soft-button{border:0;background:none}.header-actions{gap:1px}.toolbar{height:102px;padding-top:8px;padding-bottom:5px}.workspace{height:calc(100dvh - 167px)}
 .map-caption{top:15px;left:16px}.map-caption h1{font-size:21px;margin-top:6px}.map-caption .eyebrow{font-size:6px}.map-controls{right:12px;top:14px}.map-controls button{width:31px;height:32px}.map-layer-switches{left:16px;top:75px;gap:5px}.map-layer-switches button{height:28px;padding:0 8px;font-size:9px}.map-layer-switches .icon{width:12px;height:12px}
 .landmark-jump{left:15px;bottom:271px;max-width:215px;padding:8px 10px;border-radius:6px}.landmark-jump label{display:none}.landmark-jump select{width:190px;font-size:10px;min-height:20px}.region-pills{bottom:225px}.region-pills button{padding:8px 9px}.map-bottom{bottom:192px;font-size:7px;left:15px}.map-bottom>span{background:#f8fafbe0}.map-bottom button{display:none}.station-symbol{width:19px;height:19px}.station-symbol .icon{width:10px;height:10px}.station-marker.nearby .station-name{font-size:9px;max-width:150px;overflow:hidden;text-overflow:ellipsis}.landmark-marker{font-size:9px}.road-label{font-size:8px}.station-popup{top:113px;right:12px;width:205px;padding:15px;max-height:180px;overflow:auto}.station-popup b{font-size:15px}.map-tip{left:15px;right:auto;top:113px;max-width:265px;padding:11px 33px 11px 12px}.map-tip b{font-size:13px}.map-tip small{font-size:8px;margin-top:5px}.map-tip span{font-size:9px}.explorer{border-color:#ccd7df;background:#f8f9faf7}.sheet-toggle{background:#f8f9faed}.detail-actions{background:#f8f9faf5}.nearby-stations b{font-size:12px}.nearby-stations small,.nearby-stations em{font-size:10px}
 .workspace:has(.explorer.detail-open) .landmark-jump,.workspace:has(.explorer.expanded) .landmark-jump,.workspace:has(.explorer.detail-open) .region-pills,.workspace:has(.explorer.expanded) .region-pills{display:none}
}

@media(max-width:700px){.map-tip{top:14px;left:15px;max-width:calc(100% - 82px);padding:10px 33px 10px 12px}.map-tip small{display:none}.map-panel:has(#map-tip:not([hidden])) .map-caption{visibility:hidden}.map-caption{filter:drop-shadow(0 1px 2px #dfe7ed) drop-shadow(0 0 5px #dfe7ed)}}

.station-marker.named.label-left{flex-direction:row-reverse;transform:translate(calc(-100% + 11px),-50%)}.station-marker.label-left .station-name{margin-left:0;margin-right:3px}

.primary-button{color:#1B2631;font-weight:600}.primary-button:hover{background:#dc9149;color:#1B2631}.header-actions .soft-button:hover,.header-actions .soft-button[aria-pressed=true]{color:#1B2631}

/* TUF partner layer: compact shop signs remain distinct from seasonal pins. */
#north-up{position:relative;height:47px;gap:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#1B2631}
#north-up b{font-size:9px;line-height:12px}.north-arrow{display:block;color:#CD7F32;font-size:16px;line-height:19px;transform-origin:50% 50%}
.filter-trigger:disabled{opacity:.4;cursor:default}
.view-tabs{gap:20px}.view-tabs button{white-space:nowrap}
.partner-intro{padding:15px 12px 18px;border-bottom:1px solid #dce1e5;margin-bottom:6px}.partner-intro .eyebrow{color:#ac6626}.partner-intro p{margin:7px 0;font-size:14px;font-weight:600}.partner-intro small{display:block;font-size:10px;color:#6c747e;line-height:1.7}
.merchant-card{display:flex;align-items:center;position:relative;text-align:left;gap:13px;width:100%;padding:18px 12px;background:transparent;border-bottom:1px solid #e3e6e8;transition:background .16s}.merchant-card:hover{background:#f2e9dd}.merchant-card>img{width:57px;height:57px;object-fit:contain;background:white;border:1px solid #e0e1de;border-radius:11px;padding:5px;flex-shrink:0}.merchant-card-copy{min-width:0;flex:1}.merchant-card h3{font-size:15px;line-height:1.3;color:#1B2631;margin:4px 0 8px}.merchant-card .card-kicker{font-size:10px;line-height:1.4;display:block}.merchant-offer{display:inline-block;font-size:12px;line-height:1.5;background:#f1ddc5;color:#86501f;font-weight:700;border-radius:5px;padding:3px 7px}.merchant-card small{display:block;font-size:10px;color:#73808a;margin-top:6px;line-height:1.5}.merchant-card .card-chevron{flex:0 0 13px}
.related-service{margin:22px 12px;padding:17px;background:#edf0f3;border-radius:10px}.related-service a{display:block;margin-top:9px}.related-service b{display:flex;align-items:center;justify-content:space-between;font-size:14px}.related-service span:not(.eyebrow){display:block;font-size:11px;color:#6b7681;margin-top:7px}.related-service p{font-size:11px;color:#5b6772;line-height:1.8;margin:8px 0 0}
.search-section{padding:20px 12px 5px;color:#9b602d;font-size:12px;font-weight:700}
.merchant-brand{display:flex;align-items:center;gap:13px;margin:15px 0 22px}.merchant-brand img{width:66px;height:66px;object-fit:contain;padding:6px;background:white;border:1px solid #e2e3df;border-radius:12px}.merchant-brand>div{min-width:0}.merchant-brand h2{font-size:22px;line-height:1.2;margin:6px 0}.merchant-brand p{font-size:12px;color:#71808d;margin:0}.merchant-brand .eyebrow{font-size:9px;letter-spacing:.13em}
.merchant-benefit{border-radius:12px;padding:19px;background:#1B2631;color:white;position:relative;overflow:hidden}.merchant-benefit:after{content:'TUF';position:absolute;right:-6px;top:-12px;font-size:78px;font-weight:800;opacity:.035;pointer-events:none}.merchant-benefit>span{display:block;font-size:11px;color:#dfa36d;margin-bottom:9px}.merchant-benefit>b{display:block;font-size:25px;font-weight:600;line-height:1.4;color:#f4bd86}.merchant-benefit p{font-size:12px;line-height:1.85;margin:12px 0 0;color:#e5e9ec}
.merchant-branches{margin:23px 0}.merchant-branches h3{display:flex;align-items:center;gap:7px;font-size:14px}.merchant-branch{padding:13px;border:1px solid #dce0e3;background:#fff;border-radius:9px;margin:9px 0}.merchant-branch.current{border-color:#cb8c51;background:#fcf7f0}.merchant-branch>div{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.merchant-branch b{font-size:12px;line-height:1.5}.merchant-branch>div>span{font-size:9px;color:#7d8790;flex-shrink:0;padding-top:3px}.merchant-branch p{font-size:11px;line-height:1.75;margin:7px 0 10px;color:#56626d;overflow-wrap:anywhere}.merchant-branch a,.branch-focus{font-size:11px;display:inline-flex;align-items:center;gap:4px;margin-right:12px;color:#8e5728;padding:5px 0;font-weight:600}.merchant-branch .icon{width:13px;height:13px}
.merchant-links{display:flex;flex-wrap:wrap;gap:8px}.merchant-links a{display:flex;align-items:center;gap:5px;font-size:11px;padding:8px 10px;border:1px solid #d8dee2;border-radius:6px}.merchant-links .icon{width:12px;height:12px}.coordinate-note,.online-note{font-size:12px;line-height:1.8;background:#eef1f4;padding:14px;border-radius:9px;color:#596874}.online-note{display:flex;gap:10px;margin:18px 0}.online-note p{margin:4px 0 0}.merchant-detail .source-line{margin-top:20px}.detail-actions button.secondary-button{display:flex;align-items:center;justify-content:center;gap:5px}
.merchant-pin{--pin:#CD7F32}.merchant-pin-logo{display:block;position:relative;width:37px;height:37px;background:#fff;border:2px solid #CD7F32;border-radius:9px;box-shadow:0 3px 7px #1b263133;z-index:2;flex-shrink:0}.merchant-pin-logo img{width:100%;height:100%;object-fit:contain;padding:3px;border-radius:6px}.merchant-pin-logo i{font-style:normal;position:absolute;bottom:-6px;left:4px;right:4px;background:#1B2631;color:#fff;text-align:center;font-size:7px;font-weight:800;letter-spacing:1px;line-height:11px;border-radius:3px}.merchant-pin .pin-title{top:-2px!important;min-height:42px;max-width:185px;border-color:#ead8c6;padding-top:5px;padding-bottom:5px}.merchant-pin .pin-title b{display:block;font-size:11px;line-height:16px;font-weight:650}.merchant-pin .pin-title small{display:block;color:#9e6027;font-size:9px;line-height:14px}.merchant-pin.selected .merchant-pin-logo{border-color:#1B2631;box-shadow:0 0 0 4px #CD7F3233}.merchant-pin.selected .pin-title{border:1px solid #CD7F32;background:#fff9f1;color:#1B2631}.merchant-pin.area-pin .merchant-pin-logo{border-style:dashed}.merchant-cluster{background:#1B2631!important;border-color:#CD7F32!important;border-radius:10px!important;color:#fff}.merchant-cluster:after{content:'TUF';position:absolute;bottom:-8px;left:0;right:0;text-align:center;font-size:7px;color:#1B2631;font-weight:800;letter-spacing:.8px;background:#e8b988;border-radius:3px}
@media(max-width:700px){.view-tabs{gap:22px}.view-tabs button{font-size:12px}.merchant-card{padding:14px 10px}.merchant-card>img{width:50px;height:50px}.merchant-card h3{font-size:14px}.partner-intro{padding-top:10px}.merchant-brand{margin:10px 0 16px}.merchant-brand h2{font-size:21px}.merchant-brand img{width:58px;height:58px}.merchant-benefit{padding:16px}.merchant-benefit>b{font-size:23px}.merchant-pin-logo{width:33px;height:33px}.merchant-pin .pin-title b{font-size:10px}.merchant-pin .pin-title small{font-size:9px}.merchant-pin .pin-title{min-height:39px}.map-layer-switches{gap:4px}.map-layer-switches button{padding:7px 8px;font-size:10px}.map-layer-switches .icon{width:12px;height:12px}#north-up{height:41px}}

/* Everyday atlas — build a day, keep the city in view. */
.view-tabs{gap:14px;margin-inline:22px;justify-content:space-between}.view-tabs button{font-size:11px}
.quick-filters{display:flex;gap:5px;flex-wrap:wrap;padding:0 22px 13px}.quick-filters button{border:1px solid #d9e0e5;border-radius:20px;padding:7px 10px;font-size:10px;display:flex;align-items:center;gap:4px;background:#fff}.quick-filters button[aria-pressed=true]{background:#1B2631;border-color:#1B2631;color:#fff}.quick-filters .icon{width:13px;height:13px}.quick-filters button:hover{border-color:#CD7F32}
.place-card-row{position:relative}.place-card-row>.place-card{padding-right:41px}.place-card-row .place-copy h3{padding-right:0}.card-add{position:absolute;right:5px;top:20px;display:grid;place-items:center;width:33px;height:33px;background:#edf1f4;border:1px solid #d9e0e6;border-radius:50%;color:#92581f}.card-add:not(:disabled):hover{background:#CD7F32;color:#1B2631}.card-add .icon{width:15px;height:15px}.card-add:disabled{background:#e9efec;color:#4e7060;opacity:1}.indoor-badge{padding:3px 6px;border-radius:3px;background:#e6edf5;color:#4a667e}
.life-pin .pin-symbol{border-radius:8px;transform:rotate(-45deg)}.life-pin .pin-symbol svg{transform:rotate(45deg)}
.detail-plan-button{display:flex;justify-content:center;align-items:center;gap:7px;width:100%;margin:16px 0;padding:11px 10px;border:1px solid #c58a52;background:#f9efe4;color:#85511f;border-radius:7px;font-size:12px;font-weight:600;min-height:42px}.detail-plan-button:disabled{opacity:1;color:#6a7c86;border-color:#dce3e7;background:#eff3f5}.merchant-branch .detail-plan-button{margin:8px 0 0;font-size:11px;padding:7px;min-height:36px}
.walk-editor{margin:12px 0 24px;padding:20px 15px;background:#fff;border:1px solid #d5dfe6;border-radius:10px;box-shadow:0 4px 18px #1b263104}.walk-editor .eyebrow{font-size:8px;color:#98612d}.walk-editor h3{margin:8px 0;font-size:19px;display:flex;justify-content:space-between;align-items:center}.walk-editor h3 small{font-size:11px;font-weight:500;color:#75828c}.walk-editor>p{font-size:11px;color:#75818b;line-height:1.8;margin:8px 0 15px}.draft-empty{display:flex;flex-direction:column;align-items:center;gap:9px;text-align:center;padding:25px 10px;background:#f4f6f7;border:1px dashed #d1dce4;border-radius:8px;margin:16px 0}.draft-empty>.icon{color:#CD7F32;width:34px;height:34px;stroke-width:1.2}.draft-empty b{font-size:13px;font-weight:500}.draft-empty span{font-size:10px;color:#83919c}
.draft-stops{padding:0;margin:18px 0;list-style:none}.draft-stops li{display:flex;gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid #e4e9ec}.draft-number{width:22px;height:22px;display:grid;place-items:center;flex:none;background:#1B2631;color:#fff;border-radius:50%;font-size:10px}.draft-place{flex:1;min-width:0;text-align:left;padding:0}.draft-place b{display:block;font-size:11px;font-weight:600;line-height:1.5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.draft-place small{display:block;font-size:9px;line-height:1.5;color:#7a8892;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.draft-controls{display:flex;gap:1px;flex:none}.draft-controls button{display:grid;place-items:center;width:29px;height:36px;border-radius:5px;background:#f2f5f7}.draft-controls .icon{width:13px;height:13px}.draft-controls button:not(:disabled):hover{background:#f3dfc9;color:#8c5520}.draft-controls button:disabled{opacity:.25}
.draft-add-actions{display:flex;align-items:center;justify-content:space-between;gap:8px}.draft-add-actions .secondary-button{font-size:11px;padding:9px 10px}.draft-add-actions .text-button{font-size:10px}.plan-date-label{display:flex;align-items:center;justify-content:space-between;font-size:11px;margin:20px 0 7px}.plan-date-label span{font-size:9px;color:#82909a}.plan-date{display:block;width:100%;max-width:100%;min-width:0;height:39px;border:1px solid #d3dde4;border-radius:6px;padding:8px;background:#f9fafb;color:#1B2631;font:inherit;font-size:12px;appearance:none}.build-route{width:100%;margin-top:12px;font-size:12px}.planner-note{display:block;font-size:9px;line-height:1.8;color:#82919d;margin-top:10px}.planner-error,.planner-status{font-size:12px;line-height:1.8;border:1px solid #e7c8a6;background:#fff5e9;padding:14px;border-radius:8px;margin:12px 0}.planner-status{color:#6c7c88;background:#edf2f5;border-color:#d8e2e9}.preset-heading{margin-top:30px}.preset-heading h3{font-size:15px;font-weight:500;margin:8px 0}.route-card .route-stops{margin-bottom:12px}
.route-top-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:8px 0 24px}.route-top-actions .text-button{font-size:11px}.route-top-actions .back-button{margin:0}.route-itinerary>.walk-editor{padding:16px 12px}.route-date-note{padding:12px;margin:16px 0;border:1px solid #e2d3bc;border-radius:7px;background:#fcf7ed;font-size:10px;line-height:1.8;color:#7d653f}.route-date-note b{display:block;font-weight:600}.route-date-note ul{padding-left:15px;margin:6px 0}.route-date-note p{margin:5px 0 0}
.share-actions{display:flex;gap:7px;margin:18px 0 24px}.share-actions>*{flex:1;display:flex;justify-content:center;align-items:center;gap:6px;border:1px solid #d1dbe2;padding:11px 7px;font-size:11px;border-radius:6px;background:#fff}.share-actions #share-line{color:#276147;border-color:#afccbd;background:#f1f7f3}.share-actions .icon{width:14px;height:14px}.share-actions>*:hover{border-color:#CD7F32}.share-actions button{color:#637887}#share-fallback{margin:10px 0 20px}#share-fallback label{font-size:11px;display:block;margin-bottom:6px}#share-url{width:100%;min-width:0;padding:10px;border:1px solid #cdd8e0;border-radius:6px;font-size:11px}
.route-offers{border-top:1px solid #dbe1e5;padding-top:22px;margin-top:10px}.route-offers>.eyebrow{font-size:7px;letter-spacing:1.2px;color:#a56931}.route-offers>h3{font-size:17px;margin:8px 0 14px}.route-offers>p,#detour-list>p{font-size:10px;line-height:1.8;color:#778795}.detour-card{border:1px solid #dec4a7;background:#fffaf4;padding:12px;border-radius:9px;margin:10px 0}.detour-info{display:flex;text-align:left;gap:10px;width:100%;padding:0}.detour-info img{width:40px;height:40px;border:1px solid #e6ded5;border-radius:8px;background:#fff;padding:4px;object-fit:contain;flex:none}.detour-info span{min-width:0}.detour-info b,.detour-info small,.detour-info em{display:block}.detour-info b{font-size:13px}.detour-info small{font-size:9px;color:#7b7c76;margin:4px 0}.detour-info em{font-size:11px;font-style:normal;font-weight:600;color:#93591f}.detour-card>p{font-size:10px;color:#8d734f;margin:12px 0 8px}.detour-add{padding:8px 9px;border:1px solid #d6b38f;border-radius:5px;display:flex;align-items:center;justify-content:center;gap:5px;width:100%;font-size:10px;color:#805025;background:#f6eadb}.detour-add .icon{width:12px;height:12px}.detour-add:disabled{opacity:.7;color:#777}
.add-stop-dialog{max-width:490px;padding:23px;overflow:hidden;max-height:90dvh}.add-stop-dialog header{margin-bottom:17px}.add-stop-dialog .search-box{width:100%;min-width:0}.stop-picker-tabs{display:flex;gap:18px;border-bottom:1px solid #d9e0e6;margin-top:12px}.stop-picker-tabs button{font-size:11px;padding:10px 0}.stop-picker-tabs button.active{color:#99612c;border-bottom:2px solid #CD7F32}.add-stop-dialog .field-note{font-size:10px;margin:10px 0;color:#798793}.stop-results{overflow:auto;max-height:50dvh;overscroll-behavior:contain;padding-bottom:4px}.stop-result{display:flex;align-items:center;gap:11px;width:100%;padding:14px 3px;text-align:left;border-bottom:1px solid #e2e7eb}.stop-result>span:nth-child(2){flex:1;min-width:0}.stop-result b{font-size:12px;display:block;line-height:1.5}.stop-result small{font-size:10px;display:block;color:#7e8a93;margin-top:4px;line-height:1.5}.stop-result-icon{width:33px;height:37px;display:grid;place-items:center;background:#edf1f4;border-radius:6px;color:#a26932;flex:none}.stop-result-icon .icon{width:18px;height:18px}.stop-result>.icon{width:15px;height:15px;color:#9a682e}.stop-result:not(:disabled):hover{background:#f6eadb}.stop-result:disabled{opacity:.5}
@media(max-width:700px){.view-tabs{margin-inline:17px;gap:12px}.view-tabs button{font-size:11px}.quick-filters{padding:0 17px 10px;gap:5px;flex-wrap:nowrap}.quick-filters button{font-size:10px;padding:6px 9px;white-space:nowrap}.header-actions{gap:0}.header-actions .soft-button{gap:5px;padding-inline:6px}.header-actions .soft-button .icon{width:18px;height:18px}.brand-group{gap:10px}.brand-links{padding-left:10px}.route-list{padding-inline:16px}.walk-editor{padding:16px 12px}.walk-editor h3{font-size:18px}.draft-controls button{width:31px;height:38px}.draft-stops li{gap:6px}.draft-place b{font-size:11px}.draft-controls .icon{width:14px;height:14px}.explorer.expanded{height:min(78%,650px)}.route-itinerary-actions>*{min-height:44px}.route-top-actions{margin-top:5px;margin-bottom:19px}.add-stop-dialog{padding:20px 16px}.add-stop-dialog header h2{font-size:19px}.stop-result{padding-block:15px}.stop-results{max-height:49dvh}.place-card-row .card-add{top:18px;right:4px;width:31px;height:34px}.place-card-row>.place-card{padding-right:39px}.route-offers>h3{font-size:16px}}
@media(max-width:360px){.brand-links{display:none}.draft-controls button{width:27px}.quick-filters button{padding-inline:7px}.view-tabs{gap:8px}.view-tabs button{font-size:10px}}

.route-sheet-open{display:none}
@media(max-width:700px){.route-active .explorer:not(.expanded) .route-itinerary,.route-active .explorer:not(.expanded) .list-foot{display:none}.route-active .explorer:not(.expanded) .route-sheet-open{display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%;min-height:33px;font-size:11px;color:#8f5a28;padding:7px 4px}.route-sheet-open .icon{width:14px;height:14px}.route-active .explorer:not(.expanded) .route-list{padding-top:0}}

/* Mobile map: keep the streets open; tools appear only on request. */
.map-mobile-actions,.map-mobile-zoom,.tool-control-label{display:none}
.map-tools-dialog{max-width:460px;padding:22px;color:#1B2631;border-color:#ccd7df}
.map-tools-dialog header{margin:0 0 20px}.map-tools-dialog h2{font-size:22px}
.map-tools-dialog section{margin:0 0 19px}.map-tools-dialog h3,.map-tools-dialog section>label{display:block;font-size:12px;font-weight:600;margin:0 0 9px}
.map-tools-dialog .tool-note{font-size:10px;line-height:1.6;margin:8px 0 0;color:#73818e}
.map-tools-dialog .map-layer-switches{position:static;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.map-tools-dialog .map-layer-switches button{height:44px;justify-content:flex-start;padding:0 14px;font-size:12px;border-radius:7px}
.map-tools-dialog .map-layer-switches .icon{width:17px;height:17px}
.map-tools-dialog .region-pills{position:static;display:grid;grid-template-columns:repeat(3,1fr);max-width:none;gap:5px;border:0;box-shadow:none;background:transparent;padding:0;overflow:visible}
.map-tools-dialog .region-pills button{min-height:40px;background:#edf1f4;border:1px solid #d6dfe5;font-size:11px;padding:8px 4px}
.map-tools-dialog .region-pills button.active{background:#1B2631;color:#fff;border-color:#1B2631}
.map-tools-dialog select{width:100%;height:44px;min-width:0;max-width:100%;font:12px var(--font);padding:0 12px;color:#1B2631;border:1px solid #cbd5dd;border-radius:7px;background:#fff}
.map-tools-dialog .landmark-jump{position:static;max-width:none;width:100%;padding:0;border:0;box-shadow:none;background:transparent}.map-tools-dialog .landmark-jump label{display:none}.map-tools-dialog .landmark-jump select{width:100%}
.map-tools-dialog .map-controls{position:static;display:grid;grid-template-columns:repeat(3,1fr);border:0;padding:0;box-shadow:none;background:transparent;gap:8px}
.map-tools-dialog .map-controls button{width:100%;height:44px;display:flex;align-items:center;justify-content:center;gap:6px;font-size:12px;background:#edf1f4;border:1px solid #d6dfe5}
.map-tools-dialog .map-controls #zoom-in,.map-tools-dialog .map-controls #zoom-out,.map-tools-dialog .map-controls>span{display:none}
.map-tools-dialog .tool-control-label{display:inline}.map-tools-dialog #north-up .north-arrow{width:auto;font-size:13px}.map-tools-dialog #north-up b{display:none}
#done-map-tools{width:100%;margin-top:4px}.campus-pin .pin-symbol{background:#476984;border-radius:8px;transform:none}.campus-pin .pin-symbol svg{transform:none}
@media(max-width:700px){
 .map-mobile-actions{position:absolute;z-index:23;right:12px;top:12px;display:flex;gap:6px}
 .map-mobile-actions button{height:40px;padding:0 10px;display:flex;align-items:center;justify-content:center;gap:6px;font-size:11px;font-weight:500;color:#1B2631;background:#f8fafbf5;border:1px solid #cbd5dd;border-radius:8px;box-shadow:0 3px 12px #1b263112}
 .map-mobile-actions .icon{width:16px;height:16px}.map-mobile-actions button[aria-pressed=true]{background:#1B2631;color:#fff;border-color:#1B2631}
 .map-mobile-zoom{display:flex;flex-direction:column;position:absolute;z-index:12;right:12px;top:66px;border:1px solid #cbd5dd;border-radius:8px;background:#f8fafbef;box-shadow:0 3px 12px #1b263112;overflow:hidden}
 .map-mobile-zoom button{display:grid;place-items:center;width:40px;height:40px}.map-mobile-zoom button+button{border-top:1px solid #dbe3e8}.map-mobile-zoom .icon{width:17px;height:17px}
 .map-caption{left:14px;top:12px;max-width:calc(100% - 180px);padding:7px 0;filter:drop-shadow(0 1px 3px #e5edf3) drop-shadow(0 0 4px #e5edf3)}
 .map-caption .eyebrow,.map-caption p{display:none}.map-caption h1{font-size:16px;line-height:25px;margin:0;letter-spacing:-.3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .map-panel>.map-layer-switches,.map-panel>.landmark-jump,.map-panel>.region-pills,.map-panel>.map-controls{display:none}
 .map-bottom{bottom:calc(187px + env(safe-area-inset-bottom));left:12px;right:12px;font-size:7px}.map-bottom>span{padding:3px 5px}.map-bottom .tiny-dot{display:none}
 .map-tools-dialog{margin:auto auto calc(12px + env(safe-area-inset-bottom));width:calc(100% - 24px);max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:20px;border-radius:18px;overflow:auto;overscroll-behavior:contain}
 .map-tools-dialog::backdrop{background:#1b263159;backdrop-filter:blur(3px)}
 .map-tip{top:64px;left:12px;max-width:calc(100% - 77px)}.station-popup{top:64px;left:12px;right:auto;max-width:calc(100% - 77px)}
 .route-map-summary{top:64px;left:12px;right:65px;padding:9px 10px;gap:6px;border-radius:8px;pointer-events:auto}
 .route-map-summary>div>span,.route-map-summary>p{display:none}.route-map-summary b{font-size:13px;margin:0 0 4px}.route-map-summary small{font-size:8px}.route-refit{padding:6px;font-size:8px}.route-refit .icon{width:12px;height:12px}
 .map-focus .site-header,.map-focus .toolbar,.map-focus .explorer{display:none}
 .map-focus .workspace{height:100dvh}.map-focus .map-mobile-actions,.map-focus .map-caption{top:calc(12px + env(safe-area-inset-top))}
 .map-focus .map-mobile-zoom,.map-focus .route-map-summary,.map-focus .map-tip,.map-focus .station-popup{top:calc(66px + env(safe-area-inset-top))}
 .map-focus .map-panel .map-bottom{display:flex;bottom:calc(12px + env(safe-area-inset-bottom))}
 .map-focus .map-panel .map-caption{display:block}
}
@media(max-width:360px){.map-mobile-actions{gap:4px;right:9px}.map-mobile-actions button{padding:0 8px;gap:4px}.map-caption{left:11px;max-width:calc(100% - 160px);font-size:15px}}
.campus-cluster{background:#476984;border-radius:8px;width:43px;height:34px;display:flex;gap:3px;align-items:center;justify-content:center}.campus-cluster .icon{width:14px;height:14px}.campus-cluster b{font-size:11px}
@media(max-width:700px){.search-box input,.dialog input[type=date],.plan-date,.map-tools-dialog select{font-size:16px}}

/* Underground roundels keep their red ring and blue bar in every map state. */
.roundel-marker .station-symbol{width:24px;height:24px;border:0;background:transparent;box-shadow:none}
.roundel-marker .station-symbol .icon{width:24px;height:24px;filter:drop-shadow(0 0 2px #fff) drop-shadow(0 1px 2px #1b26313d)}
.roundel-marker.nearby .station-symbol{width:28px;height:28px;background:#fff;box-shadow:0 0 0 3px #cd7f322b}
.roundel-marker.nearby .station-symbol .icon{width:28px;height:28px}
.toilet-pin .pin-symbol{background:#507878;border-radius:7px;transform:none}.toilet-pin .pin-symbol svg{transform:none}
.toilet-pin .pin-title b{display:block;font-size:10px;line-height:1.4;font-weight:600}.toilet-pin .pin-title small{display:block;font-size:8px;color:#507878;margin-top:2px}.toilet-pin.selected .pin-title small{color:#edc491}
.toilet-cluster{background:#507878;border-radius:8px;width:44px;height:34px;display:flex;gap:4px;align-items:center;justify-content:center}.toilet-cluster .icon{width:15px;height:15px}.toilet-cluster b{font-size:11px}
.toilet-info{margin:0 22px 14px;padding:12px;border:1px solid #d5e0df;border-radius:8px;background:#edf3f2;font-size:11px;line-height:1.8;color:#506564}.toilet-info p{margin:0 0 8px}.toilet-info details{padding-top:8px;border-top:1px solid #d3dfdd}.toilet-info summary{cursor:pointer;color:#885727;font-weight:600}.toilet-info details p{margin:8px 0}.toilet-info a{text-decoration:underline;text-underline-offset:2px}.toilet-info .toilet-credit{margin:9px 0 0;font-size:9px;color:#6f8180}
.map-tools-dialog .map-layer-switches button:last-child:nth-child(odd){grid-column:1/-1}
@media(max-width:700px){.toilet-info{margin-inline:17px;font-size:11px}.toilet-pin .pin-title b{font-size:9px}.toilet-pin.selected .pin-title b{font-size:10px}.roundel-marker .station-symbol{width:22px;height:22px}.roundel-marker .station-symbol .icon{width:22px;height:22px}.roundel-marker.nearby .station-symbol,.roundel-marker.nearby .station-symbol .icon{width:26px;height:26px}}

/* Toilet access is distinct from its charge. */
.access-badge{color:#865726;background:#f7ecde;border-radius:3px;padding:2px 5px;font-size:10px}.toilet-audit-link{padding:8px 0}.toilet-audit-link>a{font-weight:600;color:#1b2631}.toilet-audit-link small{display:block;margin-top:4px;font-size:10px;line-height:1.7}
.list-toilet-code{display:block;margin:0 0 7px;font-size:11px;color:#865726;font-weight:600;letter-spacing:.03em}
.list-toilet-code code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.toilet-code-card{margin:16px 0;padding:15px 16px;background:#fcf3e9;border:1px solid #e9cba8;border-radius:10px;color:#1b2631}
.code-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px}.code-heading>span{font-size:10px;color:#886949}
.code-values{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0}.code-value{display:flex;align-items:center;gap:14px}.code-value>code{font:600 28px/1.3 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.06em;user-select:all;-webkit-user-select:all}
.code-value>button{border:1px solid #c69c70;background:#fffaf4;color:#744c28;border-radius:6px;padding:8px 11px;font-size:11px;min-height:36px;cursor:pointer}.code-value>button:hover{background:#f1dfc9}.code-value>button:focus-visible{outline:2px solid #1b2631;outline-offset:3px}
.code-provenance,.code-conflict{font-size:10px;line-height:1.7;margin:7px 0 0;color:#755f49}.code-conflict{font-weight:600}
@media(max-width:700px){.toilet-code-card{padding:12px 14px;margin:12px 0}.code-value>button{min-height:40px}.list-toilet-code{font-size:10px}.code-provenance{font-size:10px}}

/* Art in London — compact controls within the existing explorer. */
.art-discover{margin:0 22px 16px}.art-discover>button{width:100%;padding:16px 14px;background:#1b2631;color:#fff;border-radius:9px;display:flex;align-items:center;gap:12px;text-align:left}.art-discover-icon{color:#dfa66d;display:grid;place-items:center}.art-discover-icon .icon{width:29px;height:29px;stroke-width:1.4}.art-discover>button>span:nth-child(2){flex:1;min-width:0}.art-discover b{display:block;font-size:15px;font-weight:600;letter-spacing:.02em}.art-discover small{display:block;color:#c5cfd6;font-size:10px;line-height:1.6;margin-top:5px}.art-discover>button>.icon{width:17px;flex:none;color:#dfa66d}
.art-tools{margin:0 22px 12px}.art-tools select{width:100%;min-width:0;padding:10px 12px;border:1px solid #d3dde3;border-radius:6px;font:inherit;font-size:12px;min-height:42px;color:#1b2631;background:#fff}.art-tools details{margin-top:9px;border:1px solid #dce3e7;border-radius:6px;background:#f8fafb;padding:0 12px 10px}.art-tools details:not([open]){padding-bottom:0}.art-tools summary{cursor:pointer;font-size:11px;padding:12px 0;color:#596c79}.art-check{display:flex;align-items:center;gap:7px;min-height:39px;font-size:12px}.art-check input{accent-color:#cd7f32;width:16px;height:16px}.art-check small{font-size:10px;color:#6a7b87;margin-left:auto}.art-sort-label{display:block;font-size:11px;margin:9px 0 6px}.sr-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.art-phase{display:inline-block;padding:3px 7px;border-radius:3px;font-size:10px;line-height:1.5;background:#f5e6d5;color:#85501e}.art-phase.upcoming{background:#e7eef3;color:#516d81}.art-phase.ended{background:#e9ecee;color:#75818b}.art-venue-line{font-size:12px;color:#805a34;margin:10px 0 0;line-height:1.6}.related-art{margin:22px 0}.related-art h3,.nearby-places h3{font-size:14px;margin:0 0 12px}.related-art>button{display:grid;grid-template-columns:1fr 18px;gap:5px;text-align:left;width:100%;padding:12px 0;border-bottom:1px solid #e0e6ea}.related-art b{font-size:12px;line-height:1.5}.related-art small{font-size:10px;color:#6c7d88;grid-column:1}.related-art .icon{grid-column:2;grid-row:1/3;width:16px;align-self:center;color:#a76e35}
.nearby-places{margin:26px 0 12px;padding-top:23px;border-top:1px solid #d8e0e6}.nearby-tabs{display:flex;gap:5px;margin:0 0 10px}.nearby-tabs button{font-size:10px;min-height:37px;padding:8px 10px;border:1px solid #d3dde4;border-radius:5px;background:#fff}.nearby-tabs button[aria-pressed=true]{background:#1b2631;color:#fff;border-color:#1b2631}.nearby-place{width:100%;display:flex;align-items:center;gap:10px;text-align:left;padding:12px 0;border-bottom:1px solid #e0e6ea}.nearby-place>span{flex:1;min-width:0}.nearby-place b{font-size:12px;display:block;line-height:1.5}.nearby-place small{font-size:10px;color:#6b7b87;display:block;line-height:1.6;margin-top:4px}.nearby-place em{font-style:normal;font-size:10px;white-space:nowrap;display:flex;align-items:center;gap:2px;color:#9b622a}.nearby-place .icon{width:13px;height:13px}.nearby-places>p,.nearby-empty{font-size:10px;color:#6d7e8b;line-height:1.8;margin:12px 0 0}
@media(max-width:700px){.art-discover{margin:0 18px 13px}.art-tools{margin:0 18px 10px}.art-discover>button{padding:13px}.art-discover b{font-size:14px}.art-tools select{font-size:13px}.art-check{min-height:42px}.nearby-tabs button{min-height:42px}.art-phase{font-size:10px}}
/* Daily plans: keep the map clear; settings live inside the existing mobile sheet. */
.trip-discover{margin:0 24px 14px}.trip-discover button,.auto-route-cta{width:100%;display:flex;align-items:center;gap:12px;text-align:left;background:#1b2631;color:#fff;border:0;border-radius:15px;padding:17px;cursor:pointer}.trip-discover button>span:nth-child(2),.auto-route-cta>span:nth-child(2){flex:1}.trip-discover b,.trip-discover small,.auto-route-cta b,.auto-route-cta small{display:block}.trip-discover b,.auto-route-cta b{font-size:16px}.trip-discover small,.auto-route-cta small{margin-top:5px;color:#d7dde1;font-size:12px;line-height:1.5}.trip-discover svg,.auto-route-cta svg{width:21px;height:21px;flex:none}.auto-route-cta{margin-bottom:22px}.auto-planner{padding:0 24px 28px;--trip-muted:#5c6b74}.trip-intro h3,.trip-result-heading h3{font-size:23px;line-height:1.4;margin:10px 0}.trip-intro p,.trip-result-heading p{font-size:13px;color:var(--trip-muted);line-height:1.65}.trip-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px 12px;margin:22px 0}.trip-fields label{display:flex;flex-direction:column;gap:8px;font-size:12px;font-weight:600;min-width:0}.trip-fields label.trip-wide{grid-column:1/-1}.trip-fields input,.trip-fields select{width:100%;min-width:0;height:45px;border:1px solid #d9dfe2;border-radius:8px;background:white;color:#1b2631;padding:0 10px;font:inherit;font-size:14px}.trip-fields small{font-size:11px;font-weight:400;line-height:1.5;color:var(--trip-muted)}.trip-interests{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}.trip-interests legend{font-size:13px;font-weight:600;margin-bottom:12px}.trip-interests legend small{color:var(--trip-muted);font-size:11px;margin-left:10px;font-weight:400}.trip-interests label{position:relative;cursor:pointer}.trip-interests input{position:absolute;opacity:0}.trip-interests span{display:block;border:1px solid #dbe0e2;border-radius:25px;padding:9px 12px;font-size:12px;background:white}.trip-interests input:checked+span{border-color:#CD7F32;background:#fcf0e2;color:#8c4b13}.trip-interests input:focus-visible+span{outline:2px solid #1b2631;outline-offset:2px}.trip-note,.trip-method p{font-size:12px;line-height:1.8;color:var(--trip-muted)}.trip-generate{width:100%;justify-content:center}.auto-planner #auto-status{font-size:13px;line-height:1.6;color:#8c4b13}.trip-action-row{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.trip-action-row button{font-size:12px;padding:8px 11px}.trip-day-tabs{display:flex;gap:8px;overflow-x:auto;scrollbar-width:thin;padding:2px 0 13px}.trip-day-tabs button{flex:0 0 91px;background:#f0f3f4;border:1px solid transparent;padding:12px 9px;border-radius:11px;text-align:left;color:#566773;cursor:pointer}.trip-day-tabs button[aria-pressed=true]{background:#1b2631;color:white}.trip-day-tabs b,.trip-day-tabs small{display:block}.trip-day-tabs b{font-size:12px;letter-spacing:.08em}.trip-day-tabs small{font-size:11px;margin-top:6px}.trip-day-summary{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:14px 0}.trip-day-summary div{display:flex;flex-direction:column;gap:6px}.trip-day-summary b{font-size:15px}.trip-day-summary span{font-size:11px;line-height:1.6;color:var(--trip-muted)}.trip-day-summary button{display:flex;align-items:center;gap:5px;flex:none;border:0;background:#CD7F32;color:white;border-radius:8px;padding:10px;font-size:12px;cursor:pointer}.trip-day-summary svg{width:16px;height:16px}.trip-service-note,.trip-empty-note{background:#fcf0e2;color:#805021;font-size:12px;line-height:1.8;padding:12px;border-radius:10px}.trip-legend{font-size:11px;color:var(--trip-muted);display:flex;align-items:center;gap:7px;margin:0 0 22px}.trip-legend i{display:inline-block;width:16px;height:3px;background:#CD7F32}.trip-legend i.tube{background:none;border-top:3px dashed #3276a8}.trip-timeline{list-style:none;padding:0;margin:0}.trip-timeline>li{display:grid;grid-template-columns:46px minmax(0,1fr);gap:13px;position:relative;padding-bottom:22px}.trip-timeline>li:before{content:'';position:absolute;left:51px;top:7px;bottom:-7px;width:1px;background:#dce2e5}.trip-timeline>li:after{content:'';position:absolute;left:48px;top:6px;width:7px;height:7px;border:2px solid #fff;border-radius:50%;background:#CD7F32;box-sizing:content-box}.trip-timeline time{font-size:12px;font-weight:650;text-align:left;padding-top:3px;font-variant-numeric:tabular-nums}.trip-timeline time small{display:block;font-weight:400;font-size:10px;margin-top:5px;color:var(--trip-muted)}.trip-timeline>li>div{padding-left:8px;min-width:0}.trip-start div>b,.trip-start div>small{display:block}.trip-start div>b{font-size:15px;margin-top:5px}.trip-start small{font-size:11px;color:var(--trip-muted)}.trip-move>div{border-radius:8px;background:#f1f4f5;padding:12px!important;margin-left:8px;font-size:12px;line-height:1.65}.trip-move b{font-size:12px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.trip-move svg{width:15px;height:15px}.trip-move span,.trip-move small{display:block;font-size:11px;color:var(--trip-muted);margin-top:5px}.trip-move a,.trip-visit a,.trip-method a{display:inline-block;color:#8e501c;font-size:11px;margin-top:7px;text-underline-offset:3px}.trip-transit{padding-left:15px;margin:8px 0 0}.trip-transit li{margin:8px 0;font-size:11px;line-height:1.7}.trip-transit em{font-style:normal;color:#246998;font-weight:600}.trip-transit .tube-line-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--line);margin:0 4px 0 0}.trip-timeline .trip-move.transit:after{background:#3276a8}.trip-visit>div>button{position:relative;display:block;background:none;border:0;padding:0 18px 0 0;text-align:left;width:100%;color:#1b2631;cursor:pointer}.trip-visit button>small{display:block;text-transform:uppercase;font-size:10px;color:var(--trip-muted);letter-spacing:.04em}.trip-visit button>b{display:block;font-size:17px;line-height:1.45;margin:5px 0}.trip-visit button>span{font-size:12px;color:var(--trip-muted)}.trip-visit button>svg{position:absolute;right:0;top:24px;width:15px;height:15px}.trip-visit p{font-size:12px;line-height:1.6;margin:9px 0 0;color:#8e501c}.trip-duration{display:block;font-size:10px;color:var(--trip-muted);line-height:1.7;margin-top:8px}.trip-toilets{margin-top:13px;border-top:1px solid #e7ebed;padding-top:9px}.trip-toilets summary{font-size:11px;cursor:pointer}.trip-toilets summary svg{width:13px;height:13px;vertical-align:middle;margin-right:5px}.trip-toilets button{display:block;width:100%;background:none;border:0;padding:11px 0;text-align:left;cursor:pointer;border-bottom:1px solid #e7ebed}.trip-toilets button b{font-size:12px!important;display:block}.trip-toilets button small,.trip-toilets>small{font-size:10px;line-height:1.7;display:block;color:var(--trip-muted)}.trip-break b,.trip-break small{display:block;font-size:12px;line-height:1.7}.trip-break small{font-size:11px;color:var(--trip-muted);margin-top:5px}.trip-finish{padding:16px;background:#1b2631;color:white;border-radius:11px;margin-bottom:20px}.trip-finish b,.trip-finish span{display:block;font-size:13px;line-height:1.6}.trip-finish span{font-size:11px;color:#cbd4db;margin-top:5px}.trip-method{border-top:1px solid #dee4e7;padding-top:17px}.trip-method summary{font-size:12px;cursor:pointer}.auto-planner textarea{width:100%;min-height:180px;margin-top:16px;font-size:12px;padding:10px}.route-tube{fill:none;stroke:#3276a8;stroke-width:5;stroke-dasharray:10 7;stroke-linecap:round;stroke-linejoin:round}.art-tools>select+label+select{margin-top:9px}.auto-planner [hidden],.trip-discover[hidden]{display:none!important}
@media(max-width:700px){.trip-discover{margin:0 16px 12px}.trip-discover button{padding:13px 15px}.trip-discover small{font-size:11px}.auto-planner{padding:0 18px 28px}.trip-intro h3,.trip-result-heading h3{font-size:21px}.trip-day-tabs button{flex-basis:85px}.trip-timeline>li{grid-template-columns:42px minmax(0,1fr);gap:10px}.trip-timeline>li:before{left:46px}.trip-timeline>li:after{left:43px}.trip-visit button>b{font-size:16px}.trip-fields input,.trip-fields select{font-size:16px}.trip-legend{font-size:10px;flex-wrap:wrap}.trip-day-summary{gap:8px}}

@media(max-width:700px){.route-active .explorer:not(.expanded) .auto-planner>:not(.route-sheet-open){display:none}.route-active .explorer:not(.expanded) .auto-planner{padding-top:0;padding-bottom:0}}

@media(max-width:700px){.route-active .explorer:not(.expanded) .auto-route-cta{display:none}}

/* The expanded region list remains within the map viewport. */
.map-panel>.region-pills{max-width:calc(100% - 56px);overflow-x:auto;scrollbar-width:thin}

/* TfL: one compact header entry, details only when requested. */
.tfl-dialog{width:min(560px,calc(100% - 28px));max-height:88dvh;padding:24px;overflow:auto;overscroll-behavior:contain}.tfl-dialog header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px}.tfl-dialog h2{font-size:24px;margin:7px 0}.tfl-intro{font-size:11px;line-height:1.6;color:#657581;margin:0 0 20px}.tfl-update{display:flex;gap:16px;align-items:center;padding:13px 0;border-top:1px solid #dce3e8;border-bottom:1px solid #dce3e8;margin-bottom:8px}.tfl-update p{flex:1;margin:0;font-size:11px;line-height:1.7}.tfl-update button{flex:none;min-height:42px}.tfl-line{padding:15px 0;border-bottom:1px solid #e0e6eb}.tfl-line-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.tfl-line h3{font-size:14px;margin:0 0 7px}.tfl-line-heading>span{font-size:10px;color:#73818e}.tfl-line-status>b{font-size:11px;color:#4c7563;background:#e9f0ec;padding:3px 7px;border-radius:4px;display:inline-block}.tfl-line.disrupted .tfl-line-status>b{color:#97511d;background:#fcf0e3}.tfl-line-status details{margin-top:7px;font-size:11px;line-height:1.7}.tfl-line-status summary{cursor:pointer;color:#6c7277;min-height:24px}.tfl-line-status p{margin:8px 0 10px}.tfl-line-status+.tfl-line-status{margin-top:9px}.tfl-stale .tfl-line-status>b{color:#59656f;background:#e8ecf0}.tfl-footnote{font-size:11px;line-height:1.8;color:#657581}.tfl-official{font-size:12px;text-decoration:underline;text-underline-offset:4px}.tfl-attribution{font-size:10px;line-height:1.8;color:#64737f;margin:22px 0 3px}.tfl-attribution small{font-size:9px}.trip-tfl-badge{color:#4f7565!important}.trip-estimate{display:block;padding:7px 9px;margin-bottom:7px;border-left:2px solid #cd7f32;color:#955820!important;background:#fcf1e7}.trip-provider-note{font-size:10px;line-height:1.8;color:#607680;padding:10px 12px;background:#eef3f4;border-radius:6px}.trip-transit li>strong,.trip-transit li>span,.trip-transit li>small{display:block}.trip-transit li>small{margin-bottom:3px}.trip-transit .trip-instruction{font-size:10px;line-height:1.6;color:#6c7c87;margin-top:4px}.trip-legend i.transit{background:#4c738c;border:0}.walking-route-overlay .route-transit{stroke:#4c738c;stroke-width:4;fill:none;stroke-linecap:round;stroke-linejoin:round}.tfl-button-label{font-weight:600;white-space:nowrap}
@media(max-width:700px){#tfl-button{gap:4px;padding-inline:6px}.tfl-button-label{font-size:10px}.tfl-dialog{padding:21px 18px;border-radius:16px;max-height:calc(100dvh - 28px);margin:auto}.tfl-dialog h2{font-size:23px}.tfl-line-status summary{min-height:32px;padding-top:3px}.tfl-dialog .icon-button{width:40px;height:40px}.tfl-update{gap:9px}.tfl-update p{font-size:10px}.tfl-update button{font-size:11px;padding-inline:10px}.trip-attribution{padding-inline:12px}}
@media(max-width:360px){.site-header{padding-inline:10px}.brand-group{gap:8px}.official-logo{width:54px}.brand-links{padding-left:8px;font-size:8px}.header-actions .soft-button{padding-inline:5px;gap:4px}#tfl-button{padding-inline:5px}.header-actions .icon-button{width:27px}}
