.roadbook-page .roadbook-frame{padding-block:2rem 4rem}#roadbook-explorer{--plan-color: var(--blue);--marker-via: #2563EB;--marker-scenic: #0F8A68;--marker-stay: #EA580C;line-height:1.65}#roadbook-explorer [hidden]{display:none!important}.roadbook-heading h1{max-width:none;font-size:clamp(2rem,4vw,3.5rem);line-height:1.15;letter-spacing:-.04em}.roadbook-heading h1 span{display:block;color:var(--plan-color);font-size:.65em;margin-top:.5rem}.roadbook-meta{margin-block:1.2rem;font-size:.85rem}#roadbook-explorer button{font:inherit;cursor:pointer}.plan-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;max-width:40rem}.plan-switch button{min-height:66px;padding:.75rem 1rem;border:1px solid var(--line);border-radius:.7rem;color:var(--ink);background:var(--paper);text-align:left}.plan-switch button span{display:block;font-size:.75rem}.plan-switch [aria-pressed=true]{color:var(--paper);background:var(--plan-color);border-color:var(--plan-color)}.day-nav{display:flex;overflow-x:auto;gap:.5rem;padding:1rem 0 .7rem;scrollbar-width:thin}.day-nav button{flex:0 0 auto;display:flex;align-items:center;gap:.4rem;min-height:44px;padding:.5rem .9rem;border:1px solid var(--line);border-radius:2rem;color:var(--ink);background:var(--paper)}.day-nav button span{font-size:.7rem}.day-nav [aria-pressed=true]{background:var(--blue-deep);color:var(--paper);border-color:var(--blue-deep)}.roadbook-notice{padding:1rem;border-left:3px solid var(--orange);background:var(--line);font-size:.8rem;margin-block:.8rem 1.5rem}.roadbook-workspace{display:grid;grid-template-columns:minmax(0,1fr);gap:1.5rem;align-items:start}.itinerary-column,.map-column{min-width:0}.map-column{order:-1}.plan-intro{margin-block:1rem 1.5rem}.plan-intro h2{color:var(--blue-deep);font-size:1.6rem;line-height:1.3}.plan-intro p{font-size:.9rem}.plan-intro .eyebrow{font-size:.7rem;color:var(--plan-color)}.route-summary{border-block:1px solid var(--line);padding-block:1rem}.day-card{padding:1.25rem;border:1px solid var(--line);border-radius:1rem;margin-bottom:1rem;background:var(--paper);box-shadow:var(--shadow)}.day-card-heading{display:flex;gap:1rem;align-items:center}.day-card-heading p{margin:0;font-size:.8rem}.day-card-heading h3{margin:.2rem 0;font-size:1.1rem;line-height:1.4}.day-number{flex:0 0 2.6rem;color:var(--plan-color);font-size:1.5rem;font-weight:750}.lodging{margin:1rem 0 .7rem;font-size:.85rem}.lodging span{display:block;font-size:.8rem}.tags{display:flex;flex-wrap:wrap;gap:.3rem}.tags span{border-radius:2rem;padding:.1rem .6rem;background:var(--line);font-size:.7rem}.day-risk{font-size:.8rem;margin-top:.8rem}.day-card summary{cursor:pointer;min-height:44px;padding-block:.5rem;color:var(--blue-deep);font-weight:650;font-size:.85rem}.timeline{list-style:none;margin:.5rem 0 1rem;padding:0}.timeline li{display:grid;grid-template-columns:6.5rem minmax(0,1fr);gap:.6rem;padding-block:.45rem;border-bottom:1px solid var(--line);font-size:.8rem}.timeline li span:first-child{color:var(--blue-deep);font-variant-numeric:tabular-nums}.weather-card{background:var(--line);border-radius:.65rem;padding:.7rem;margin-top:.6rem}.weather-card>div{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:.8rem}.weather-card p{margin:.5rem 0 0;font-size:.75rem}.weather-card button,.stop-list a,.stop-list button,.scenic-actions a,.roadbook-info a,.roadbook-info button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border:1px solid var(--blue);border-radius:.5rem;padding:.4rem .65rem;background:var(--paper);color:var(--blue-deep);text-decoration:none;font-size:.75rem}.stop-list{list-style:decimal-leading-zero;padding-left:1.6rem}.stop-list li{padding:.6rem 0;border-bottom:1px solid var(--line);font-size:.85rem}.stop-list li>div{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.3rem}.map-shell{position:relative;height:58svh;min-height:430px;overflow:hidden;border:1px solid var(--line);border-radius:1rem;background:var(--line)}#roadbook-map{position:absolute;inset:0}.map-caption{position:absolute;top:.75rem;left:.75rem;right:.75rem;z-index:5;pointer-events:none;padding:.65rem .8rem;border-radius:.65rem;background:var(--paper);box-shadow:var(--shadow)}.map-caption strong{display:block;font-size:.85rem}.map-caption span{font-size:.7rem}.map-legend{position:absolute;z-index:5;bottom:6.5rem;left:.75rem;display:grid;grid-template-columns:repeat(2,auto);gap:.35rem .75rem;padding:.6rem .75rem;border-radius:.5rem;background:var(--paper);font-size:.65rem;pointer-events:none}.legend-item{display:inline-flex;align-items:center;gap:.35rem;white-space:nowrap}.legend-item:before{content:"";width:10px;height:10px;flex:0 0 auto;background:currentColor}.legend-route:before{width:14px;height:3px;border-radius:999px;background:var(--plan-color)}.legend-via{color:var(--marker-via)}.legend-via:before{border-radius:50%}.legend-scenic{color:var(--marker-scenic)}.legend-scenic:before{transform:rotate(45deg);border-radius:2px}.legend-stay{color:var(--marker-stay)}.legend-stay:before{border-radius:2px}.legend-item>span{color:var(--ink)}.map-status{position:absolute;z-index:5;bottom:.75rem;left:.75rem;right:.75rem;margin:0;padding:.65rem .8rem;border-radius:.5rem;background:var(--paper);font-size:.75rem;pointer-events:none}.marker-wrap{display:flex;align-items:center;gap:4px;min-height:44px;padding:0;border:0;background:transparent;color:var(--ink)}.marker-pin{--marker-transform: none;display:grid;place-items:center;flex:0 0 24px;height:24px;border:2px solid var(--paper);border-radius:50%;color:var(--paper);background:var(--marker-via);font-size:10px;transform:var(--marker-transform);transition:transform .14s ease,box-shadow .14s ease}.marker-wrap.via .marker-pin{background:var(--marker-via)}.marker-wrap.scenic .marker-pin{--marker-transform: rotate(45deg);background:var(--marker-scenic);border-radius:5px}.marker-wrap.scenic .marker-symbol{transform:rotate(-45deg)}.marker-wrap.stay .marker-pin{background:var(--marker-stay);border-radius:3px}.marker-wrap.is-active .marker-pin{transform:var(--marker-transform) scale(1.16);box-shadow:0 0 0 3px var(--paper),0 4px 12px #15151547}.marker-name{white-space:nowrap;background:var(--paper);padding:2px 5px;border:1px solid var(--line);border-radius:4px;font-size:10px}.marker-wrap.overview .marker-pin{flex-basis:18px;height:18px;font-size:8px}.roadbook-info{max-width:240px;font:13px/1.5 system-ui,sans-serif;color:var(--ink)}.roadbook-info p{margin-block:.5rem}.roadbook-info>div{display:flex;gap:.5rem}.scenic-dialog{width:min(760px,calc(100vw - 2rem));max-height:90svh;padding:0;border:0;border-radius:1.2rem;background:var(--paper);color:var(--ink);overflow-y:auto}.scenic-dialog::backdrop{background:#323743b3}.scenic-figure{position:relative;min-height:240px;background:var(--line)}.scenic-figure img{display:block;width:100%;height:min(40svh,380px);object-fit:cover}.image-fallback{display:grid;place-items:center;min-height:240px;margin:0;padding:3rem;color:var(--blue-deep)}.scenic-close{position:absolute;top:.75rem;right:.75rem;min-width:44px;min-height:44px;border:0;border-radius:50%;background:var(--paper);color:var(--ink);font-size:1.5rem!important}.scenic-body{padding:1.4rem}.scenic-body h2{color:var(--blue-deep)}.scenic-body p{font-size:.85rem}.scenic-actions{display:flex;flex-wrap:wrap;gap:.6rem}@media(min-width:1100px){.roadbook-page{--frame: min(1440px, calc(100vw - 4rem) )}.roadbook-workspace{grid-template-columns:minmax(0,43fr) minmax(0,57fr)}.map-column{order:0;position:sticky;top:1rem}.map-shell{height:calc(100svh - 2rem);min-height:620px}}@media(max-width:767px){.roadbook-heading h1{font-size:2.1rem}.plan-switch button{padding:.6rem}.plan-switch strong{font-size:.9rem}.map-shell{display:grid;grid-template-rows:auto auto auto;height:auto;min-height:0;max-height:none;overflow:hidden}#roadbook-map{position:relative;inset:auto;width:100%;height:min(52svh,520px);min-height:360px}.map-caption{top:.6rem;left:.6rem;right:auto;max-width:calc(100% - 1.2rem);padding:.45rem .65rem;border:1px solid var(--line);box-shadow:none}.map-caption strong{font-size:.75rem;line-height:1.35}.map-caption span{font-size:.62rem;line-height:1.35}.map-legend{position:static;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem .7rem;padding:.7rem .85rem;border-top:1px solid var(--line);border-radius:0;background:var(--paper);font-size:.65rem}.map-status{position:static;margin:0;padding:.7rem .85rem;border-top:1px solid var(--line);border-radius:0;background:var(--paper);font-size:.7rem}.day-card{padding:1rem}.timeline li{grid-template-columns:5.8rem minmax(0,1fr);gap:.4rem;font-size:.75rem}.marker-name{max-width:86px;overflow:hidden;text-overflow:ellipsis;font-size:9px}.marker-wrap.overview .marker-name{max-width:68px;font-size:8px}.scenic-dialog{width:100%;max-width:none;max-height:88svh;margin:auto 0 0;border-radius:1.2rem 1.2rem 0 0}.scenic-body{padding:1.1rem 1rem calc(1.1rem + env(safe-area-inset-bottom))}}:root{--ink: #151515;--muted-ink: #6b6b70;--paper: #fafaf8;--surface: #ffffff;--line: #e7e7e3;--blue: #1e50a2;--blue-deep: #323743;--orange: #fd6d2e;--shadow: 0 14px 40px rgb(18 18 18 / 4%);--frame: min(1180px, calc(100vw - 3rem) );--font-sans: "PingFang SC", "Microsoft YaHei", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;color:var(--ink);background:var(--paper);font-family:var(--font-sans);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;margin:0;background:var(--paper)}img{max-width:100%}a{color:inherit;text-underline-offset:.18em}a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--orange);outline-offset:3px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--font-sans)}.eyebrow,.roadbook-meta,.tags,time{font-family:var(--font-mono)}.eyebrow{margin:0 0 .75rem;color:var(--muted-ink);font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.roadbook-frame{width:var(--frame);margin-inline:auto;padding-block:2rem 4rem}@media(min-width:1100px){.roadbook-page{--frame: min(1440px, calc(100vw - 4rem) )}}@media(max-width:767px){:root{--frame: min(100% - 1.5rem, 640px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}
