/* Reference appearance; surveyed shelf geometry and catalog behavior live in the existing modules. */
:root{--paper:var(--bio-bg);--paper-2:var(--bio-bg);--card:var(--bio-surface);--ink:var(--bio-text);--ink-soft:var(--bio-muted);--ink-faint:var(--bio-muted);--line:var(--bio-border);--accent:var(--bio-primary);--disp:Geist,ui-sans-serif,system-ui,sans-serif;--mono:Geist,ui-sans-serif,system-ui,sans-serif;--r:16px;--green:#14805b;--green-soft:#e4f3eb;--orange:#b56a14;--orange-soft:#fff0db;--char:#47556c;--char-soft:#e8ecf2;--slate:#64748b;--slate-soft:#e8edf4;--good:#0b6b43;--hi:#4b3fe4}
:root[data-theme=dark]{--green:#59bc93;--green-soft:#173c30;--orange:#eab36b;--orange-soft:#493421;--char:#92a1b7;--char-soft:#293548;--slate:#90a6c7;--slate-soft:#25354e;--good:#7ad3ad;--hi:#aaa2ff}
body{background-image:none;font:15px/1.5 Geist,ui-sans-serif,system-ui,sans-serif;color:var(--bio-text)}
.wrap{max-width:1280px;padding:28px 24px 64px}.top{border:0;padding:0;margin:0 0 20px;justify-content:flex-end}.top>.brand{display:none}.site-nav{gap:4px}.site-nav a{font-family:inherit;font-size:14px;letter-spacing:0;text-transform:none;border-radius:10px;min-height:44px;padding:10px 14px;border-color:transparent;background:transparent}.site-nav a[aria-current=page]{color:var(--bio-link);background:var(--bio-primary-soft);border-color:transparent}
h1{font-size:28px;line-height:34px;font-weight:650;letter-spacing:-.02em;margin:0 0 8px}h2{font-family:inherit;font-weight:650;letter-spacing:-.015em}.lede{font-family:inherit;font-size:15px;max-width:76ch;color:var(--bio-muted);margin-bottom:20px}.sm-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px}.sm-heading h1{margin:0}.sm-action{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border:1px solid var(--bio-border);border-radius:10px;background:var(--bio-surface);color:var(--bio-text);text-decoration:none;font-weight:600}
.whereami{background:var(--bio-surface);padding:12px 16px;margin:0;border:1px solid var(--bio-border);border-bottom:0;border-radius:16px 16px 0 0;font-size:13px;gap:12px;flex-wrap:wrap}.whereami select{background:var(--bio-surface);color:var(--bio-text);border-color:var(--bio-border);font:inherit;min-height:44px;max-width:100%}.whereami-note{color:var(--bio-muted)}
.lookup{background:var(--bio-surface);padding:16px;border:1px solid var(--bio-border);border-radius:16px;gap:10px;margin-top:0}.whereami+.lookup{border-radius:0 0 16px 16px}.lookup label{font-size:13px;letter-spacing:0;text-transform:none}.lookup input{background:var(--bio-surface);border:2px solid var(--bio-primary);border-radius:12px;min-height:52px;padding:10px 14px;font-family:ui-monospace,monospace;font-size:16px;color:var(--bio-text);min-width:0}.btn{border-radius:10px;min-height:44px;font:600 14px/1.4 Geist,system-ui,sans-serif;background:var(--bio-primary);color:var(--bio-on-primary);border-color:var(--bio-primary);box-shadow:none}.btn.ghost{background:var(--bio-surface);color:var(--bio-text);border-color:var(--bio-border)}.btn:hover{filter:brightness(.95)}.pill,.lvl{min-height:44px;font-family:inherit;border-radius:10px}.pill.active,.lvl.active{background:var(--bio-primary-soft);color:var(--bio-link);border-color:var(--bio-primary)}
.cat,.route,.stage,.detail,.itin-floor{background:var(--bio-surface);border:1px solid var(--bio-border);border-radius:16px;box-shadow:var(--bio-shadow)}.cat-head,.route-head{padding:16px 18px}.cat-head h2,.route-head h2{font-size:17px}.cat-body,.route-body{padding:0 18px 18px}.cat-hint,.route-hint{font-size:13px;color:var(--bio-muted)}.h2-sub{font-family:inherit;font-size:13px;letter-spacing:0;text-transform:none}.result{margin:16px 0}.hit{background:var(--bio-surface);border-color:var(--bio-border);border-radius:16px}.hit .loc{color:var(--bio-link)}.examples{font-size:13px;line-height:2}.preview .prevmap{background:var(--bio-bg);border-radius:12px}.cat-results{min-width:0}.cat-card{border-radius:12px}.cat-title{font-family:inherit}.cat-meta{font-size:13px}.cat-opts,.cat-scope,.cat-modes{gap:10px;flex-wrap:wrap}.cat-opts select,.f input,.f select,.af input,.af select{min-height:44px;background:var(--bio-surface);color:var(--bio-text);border-color:var(--bio-border);border-radius:8px}.filt{gap:12px}.sect{margin-top:24px}.sect-label{letter-spacing:0;font-size:13px}.levels{gap:6px}.stage{padding:18px}.planwrap{background:var(--bio-bg);border-radius:12px}.legend{font-size:12px;gap:8px 16px;color:var(--bio-muted)}.detail{padding:18px}.detail.empty{color:var(--bio-muted)}.face-row{font-family:ui-monospace,monospace}.sm-map-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start;margin-bottom:24px}.sm-map-layout .detail{margin:0}.sm-map-layout .stage{margin:0}.sm-orientation{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:var(--bio-muted);margin-bottom:12px}.sm-orientation strong{color:var(--bio-text)}
.route{scroll-margin-top:24px}.drop{border-radius:12px;border-color:var(--bio-border);background:var(--bio-bg);min-height:132px;justify-content:center;gap:12px}.cn-label{font-size:13px;letter-spacing:0;text-transform:none}#cnList{border-radius:10px;border-color:var(--bio-border);background:var(--bio-surface);font:14px/1.6 ui-monospace,monospace;color:var(--bio-text);width:100%}.itinerary{min-width:0}.itin-floor-h{width:100%;font:inherit;text-align:left;border:0;background:var(--bio-bg);color:var(--bio-text);cursor:pointer;min-height:44px}.itin-floor-h .lv{font-family:inherit}.itin-steps li{min-height:52px;overflow-wrap:anywhere}.itin-steps .scn,.itin-steps .srng{font-family:ui-monospace,monospace}.sm-stop-check{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-size:13px;color:var(--bio-muted)}.sm-stop-check input{width:20px;height:20px;accent-color:var(--bio-primary)}.itin-steps li:has(.sm-stop-check input:checked){background:var(--green-soft)}.sm-local-note{font-size:13px;color:var(--bio-muted);margin:12px 0}.sm-pickup-page .sm-map-controls,.sm-pickup-page>.wrap>main>.lookup,.sm-pickup-page>.wrap>main>#result{display:none}.sm-pickup-page .route{margin-top:0}
footer{font-family:inherit;font-size:13px;color:var(--bio-muted);border-color:var(--bio-border)}.by{font-size:12px}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--bio-primary);outline-offset:3px}main>*{min-width:0}main{overflow-wrap:anywhere}svg.prevmap,.walkmap,#plan{width:100%;height:auto;display:block}.walkwrap{max-width:100%;overflow:hidden}.cheat{overflow-wrap:anywhere}
@media(max-width:760px){.wrap{padding:20px 16px 32px}.top{justify-content:flex-start;margin-bottom:16px}.site-nav{flex-wrap:wrap}.site-nav a{padding:8px 10px;font-size:13px}.lookup{flex-wrap:wrap}.lookup label{flex-basis:100%}.lookup input{flex-basis:100%;width:100%}.lookup .btn{flex:1}.whereami{align-items:flex-start}.whereami label{flex-basis:100%}.whereami-note{flex-basis:100%}.sm-map-layout{grid-template-columns:1fr}.stage{padding:12px}.legend{font-size:11px}.levels{flex-wrap:wrap}.lvl-total{flex-basis:100%;margin-left:0}.itin-steps li{display:flex;flex-wrap:wrap;gap:6px 10px;padding:10px}.itin-steps .scn,.itin-steps .srng{flex-basis:100%;margin-left:0}.sm-stop-check{margin-left:auto}.cat-head,.route-head{gap:12px}.h2-sub{display:block;margin-left:0}.filt{grid-template-columns:repeat(2,minmax(0,1fr))}.f input,.f select{width:100%;min-width:0}.face-row{flex-wrap:wrap}.detail .rg{overflow-wrap:anywhere}.sm-orientation{flex-wrap:wrap}}
@media(max-width:380px){.filt{grid-template-columns:1fr}.sm-heading{align-items:flex-start}.sect .pill{width:100%}.route-actions{flex-wrap:wrap}.drop .btn{width:100%}}
.sm-pickup-editor,.sm-pickup-manual,.sm-pickup-photo{min-width:0}.sm-pickup-inputs{display:grid;grid-template-columns:1fr;gap:16px}.sm-pickup-editor>.route-hint:first-child{margin-top:0}.sm-pickup-photo .drop{margin:0}.sm-pickup-manual textarea{display:block}.sm-pickup-manual .route-actions{margin-top:12px}
/* The legacy 520px minimum cannot fit the desktop route sidebar. Scale the full
   surveyed viewBox at every width; the adjacent stop list retains readable text. */
.walkwrap{min-width:0;width:100%;max-width:100%}.walkwrap svg.walkmap{min-width:0;width:100%;max-width:100%;height:auto;display:block}
@media(min-width:960px){#routeBody:not([hidden]){display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:24px;align-items:start}.sm-pickup-inputs{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}.sm-pickup-photo .drop{min-height:164px;align-content:center}.sm-pickup-editor>.route-hint{margin:12px 0;font-size:13px}#routeBody>#itinerary{margin:0;min-width:0}#itinerary .itin-summary{margin-top:0}}
