:root { color-scheme: dark; --bg:#0a1422; --surface:#112439; --line:#27415b; --text:#e8f3f7; --muted:#a2b7c5; --cyan:#68d7cf; --gold:#f5bf72; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--text); background:radial-gradient(circle at 12% -8%,#1e4857 0,transparent 31%),radial-gradient(circle at 94% 9%,#183f46 0,transparent 29%),var(--bg); font:16px/1.55 system-ui,-apple-system,"Segoe UI",sans-serif; }
button,input { font:inherit; }
button { cursor:pointer; }
button:focus-visible,input:focus-visible,a:focus-visible,svg path:focus-visible { outline:3px solid var(--gold); outline-offset:3px; }
a { color:var(--cyan); }
.shell { width:min(1440px,calc(100% - 36px)); margin:auto; }
.topbar { min-height:84px; display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid #335065; }
.brand { color:var(--text); text-decoration:none; font-weight:800; letter-spacing:.02em; font-size:1.2rem; }
.brand span { color:var(--muted); font-weight:400; }
.topnav { display:flex; gap:22px; align-items:center; }
.topnav a { color:var(--muted); text-decoration:none; font-size:.92rem; }
.topnav a:hover { color:var(--cyan); }
.topnav a[aria-current="page"] { color:var(--cyan); box-shadow:0 2px var(--cyan); }
.site-page { padding-top:28px; }
.travel-map-controls { display:flex; flex-wrap:wrap; align-items:center; gap:12px 24px; margin:0 0 14px; }
.travel-map-controls label { display:inline-flex; align-items:center; gap:7px; font-size:.9rem; }
.travel-map-controls input { accent-color:var(--cyan); }
.travel-map-controls a { margin-left:auto; padding:9px 14px; border-radius:10px; text-decoration:none; font-size:.9rem; font-weight:700; }
#travel-map-status:empty,.archive-status:empty { display:none; }
.route-workspace { display:grid; grid-template-columns:minmax(350px,.85fr) minmax(0,1.15fr); align-items:start; gap:16px; }
.route-workspace[hidden],.edit-load-panel[hidden]{display:none!important;}
.route-scope-tools{display:grid;grid-template-columns:auto minmax(100px,150px);align-items:center;gap:6px 12px;margin-bottom:12px;}
.route-scope-tools label{font-size:.86rem;color:var(--muted);}
.route-scope-tools select{padding:6px 10px;background:#102b3c;color:var(--text);border:1px solid var(--line);border-radius:8px;font:inherit;}
.route-scope-tools .small{grid-column:1/-1;margin:0;font-size:.78rem;}
.route-scope-tools .route-visits-toggle{grid-column:1/-1;justify-self:start;min-height:28px;padding:3px 6px;font-size:.8rem;background:transparent;border-color:transparent;}
.route-scope-tools .route-visits-toggle .point-flag-mark{width:17px;height:17px;flex-basis:17px;font-size:.85rem;}
.point-date-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
.route-points .stop-open{text-align:left;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.route-points .stop-open:hover{color:var(--cyan);background:#ffffff08;}
.edit-load-panel{padding:24px;border:1px solid var(--line);border-radius:16px;background:var(--surface);}
.edit-load-panel a{display:inline-block;margin-right:18px;}
.route-workspace .route-panel { display:block; margin:0; padding:18px; min-width:0; }
.route-workspace .route-panel > div:first-child { margin-bottom:14px; }
.route-workspace .route-panel > div:first-child > p:not(.eyebrow) { display:none; }
.route-workspace #route-map-slot { position:sticky; top:16px; min-width:0; }
.route-workspace .route-points { max-height:none; overflow:visible; display:flex; flex-direction:column; align-items:stretch; gap:6px; }
.route-workspace .vehicle-picker { gap:8px; margin:0 0 12px; }
.route-workspace .vehicle-picker select { min-width:150px; font-size:.88rem; padding:7px; }
.route-workspace .map-panel .panel-top { display:none; }
.integrated-controls .trip-3d-head { display:block; }
.integrated-controls .trip-3d-head .eyebrow { display:none; }
.integrated-controls .trip-3d-head h2 { font-size:1rem; }
.integrated-controls .trip-3d-actions { margin-top:8px; gap:6px; }
.integrated-controls .trip-3d-actions button { min-height:34px; padding:5px 9px; font-size:.82rem; line-height:1.2; flex:0 0 auto; }
.integrated-controls .trip-3d-controls { gap:8px 12px; margin:10px 0; }
.integrated-controls .trip-3d-controls label { font-size:.8rem; flex-wrap:wrap; }
.integrated-controls .trip-3d-controls select { min-width:0; max-width:100%; padding:5px 7px; font-size:.82rem; }
.integrated-controls .export-actions { margin-top:10px; gap:6px; }
.integrated-controls .export-actions button,.integrated-controls .export-actions select { padding:6px 9px; font-size:.82rem; min-height:34px; }
.archive-regions { flex-basis:100%; }
.archive-status { color:var(--cyan) !important; }
.travel-trips { margin:20px 0; padding:20px; background:#102333; border:1px solid #294d61; border-radius:18px; }
.travel-trips[hidden] { display:none; }
.travel-trips h2 { margin-top:0; font-size:1.25rem; }
.travel-trip-row { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:8px 16px; padding:14px 0; border-top:1px solid #294d61; }
.travel-trip-row .small { margin:5px 0 0; }
.travel-trip-row > .archive-status { grid-column:1/-1; }
.travel-trip-actions { display:flex; flex-wrap:wrap; gap:6px; }
.travel-trip-actions button { padding:6px 9px; font-size:.82rem; min-height:36px; }
.travel-trip-actions button[aria-pressed="true"] { border-color:#68d7cf; background:#184445; }
.trip-archive-group { grid-column:1/-1; min-width:0; }
.trip-archive-group h3 { margin:6px 0 12px; font-size:1.1rem; }
.trip-archive-cards { display:grid; gap:12px; }
.portrait-guide { position:absolute; z-index:850; border:2px dashed #f5bf72; pointer-events:none; box-shadow:0 0 0 2000px #07132144; }
.portrait-guide[hidden] { display:none; }
.video-result { margin:12px 0 0; border-top:1px solid var(--line); padding-top:10px; }
.video-result[hidden] { display:none; }
.video-result summary { cursor:pointer; color:var(--cyan); }
.video-result video { display:block; max-width:100%; max-height:520px; margin:12px auto; border-radius:10px; background:#081827; }
.png-result img{display:block;max-width:100%;max-height:520px;width:auto;margin:12px auto;border-radius:10px;}
.video-result a { display:inline-block; text-decoration:none; padding:8px 12px; font-size:.85rem; }
@media(max-width:650px) { .travel-trips { padding:14px; }.travel-trip-row { grid-template-columns:1fr; }.travel-trip-actions { justify-content:flex-start; } }
@media(max-width:1000px) { .route-workspace { display:block; }.route-workspace #route-map-slot { position:static; margin-top:16px; } }
@media(max-width:480px) { .travel-map-controls { gap:10px; }.travel-map-controls label { font-size:.84rem; }.travel-map-controls a { margin-left:0; }.integrated-controls { margin:6px; padding:10px; }.integrated-controls .trip-3d-actions button { min-height:36px; padding:5px 8px; }.route-workspace .route-panel { padding:12px; }.route-workspace .vehicle-picker select { min-width:130px; } }
@media(max-width:800px) { .topbar { flex-wrap:wrap; gap:12px; padding:16px 0; }.topnav { flex-wrap:wrap; }.brand span { display:none; } }
body[data-site-page="travel"] #trip-3d-panel,
body[data-site-page="travel"] .map-leg-tools,
body[data-site-page="travel"] #route-pause,
body[data-site-page="travel"] #route-stop,
body[data-site-page="travel"] #route-visibility { display:none !important; }
body[data-site-page="travel"] .panel-top h2 { display:none; }
body:is([data-site-page="routes"],[data-site-page="edit"]) .map-selection,
body:is([data-site-page="routes"],[data-site-page="edit"]) #private-legend { display:none !important; }
.ghost { color:var(--text); border:1px solid var(--line); background:#ffffff08; padding:.62rem 1rem; border-radius:999px; }
.ghost:hover { border-color:var(--cyan); }
.hero { display:flex; gap:3rem; align-items:flex-end; justify-content:space-between; padding:68px 4px 34px; }
.eyebrow { color:var(--cyan); text-transform:uppercase; letter-spacing:.18em; font-size:.72rem; font-weight:800; }
h1 { margin:.3rem 0 1rem; font-size:clamp(2.5rem,5.5vw,5.7rem); line-height:1.03; letter-spacing:-.05em; font-weight:750; }
h1 em { color:var(--gold); font-style:normal; }
h2 { margin:0; font-size:1.3rem; letter-spacing:-.02em; }
.lead { max-width:690px; color:var(--muted); font-size:1.08rem; }
.hub-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:0 0 54px; }
.hub-card { min-height:180px; display:flex; flex-direction:column; gap:12px; color:var(--text); text-decoration:none; border:1px solid var(--line); border-radius:22px; background:linear-gradient(145deg,#18354a,#102336); padding:22px; transition:transform .18s,border-color .18s; }
.hub-card:hover { transform:translateY(-3px); border-color:var(--cyan); }
.hub-card.active { border-color:#4d9c9c; background:linear-gradient(145deg,#1e4d56,#143044); }
.hub-icon { font-size:1.8rem; line-height:1; }
.hub-card-copy { display:grid; gap:3px; }
.hub-card-copy strong { font-size:1.2rem; }
.hub-card-copy small { color:var(--muted); font-size:.84rem; }
.hub-tag { margin-top:auto; width:max-content; color:var(--cyan); font-size:.78rem; font-weight:750; }
.planned .hub-tag { color:var(--muted); }
.section-head { scroll-margin-top:18px; display:flex; justify-content:space-between; align-items:end; gap:22px; padding:0 4px 20px; }
.section-head .eyebrow { margin:0 0 4px; }
.section-head h2 { font-size:clamp(1.8rem,3vw,2.7rem); }
.section-head p:last-child { margin:4px 0 0; color:var(--muted); }
.score { display:flex; align-items:center; gap:16px; flex-shrink:0; padding:18px 24px; border:1px solid #466172; border-radius:20px; background:#143043aa; }
.score strong { color:var(--cyan); font-size:3.3rem; line-height:1; font-weight:800; }
.score span { color:var(--muted); font-size:.9rem; }
.map-panel,.region-panel,.route-panel,.next-panel { border:1px solid var(--line); background:linear-gradient(135deg,#12273aee,#0e1c2eee); border-radius:24px; }
.map-panel { overflow:hidden; }
.panel-top { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:22px 28px; border-bottom:1px solid var(--line); }
.panel-subtitle { color:var(--muted); font-size:.85rem; margin:.25rem 0 0; }
.map-toolbar { display:flex; align-items:center; gap:8px; padding:12px 24px 0; flex-wrap:wrap; }
.map-toolbar button { border:1px solid var(--line); background:#19354a; color:var(--text); border-radius:9px; min-width:38px; min-height:36px; padding:5px 11px; font-weight:700; }
.map-toolbar button:hover { border-color:var(--cyan); background:#27596a; }
.city-toggle { margin-left:auto; display:inline-flex; align-items:center; gap:7px; color:var(--muted); font-size:.85rem; cursor:pointer; }
.city-toggle input { accent-color:var(--cyan); }
.legend { display:flex; gap:18px; color:var(--muted); font-size:.85rem; white-space:nowrap; }
.legend span { display:flex; align-items:center; gap:6px; }
.swatch { width:13px; height:13px; border-radius:4px; display:inline-block; }
.swatch.visited { background:var(--gold); }
.swatch.future { background:#34536a; }
.map-wrap { position:relative; padding:10px; background:#dce8e7; }
#map { height:min(68vh,700px); min-height:480px; width:100%; border-radius:10px; background:#dce8e7; color:#1b3142; }
.map-status { position:absolute; top:24px; left:24px; z-index:500; max-width:430px; margin:0; padding:12px 16px; background:#fff8ea; color:#532f18; border-radius:10px; box-shadow:0 6px 22px #0003; }
.leaflet-container { font:14px/1.4 system-ui,-apple-system,"Segoe UI",sans-serif; }
.leaflet-control-attribution { font-size:11px; }
.leaflet-tooltip.region-tip { border:1px solid #527f8a; color:#173448; font-weight:700; }
.route-stop { width:28px; height:28px; display:block; background:transparent; filter:drop-shadow(0 1px 2px #10253655); }
.route-stop.subpoint-icon { width:20px; height:20px; }
@media(max-width:600px) { .route-stop { width:20px; height:20px; }.route-stop.subpoint-icon { width:14px; height:14px; } }
.route-stop svg { display:block; width:100%; height:100%; overflow:visible; }
.terrain-stop-emoji svg { display:block; width:28px; height:28px; overflow:visible; }
.hold-drag-active { outline:2px solid var(--cyan); outline-offset:4px; }
.route-stop-marker { display:grid; place-items:center; background:transparent; border:0; }
.leg-endpoint { display:grid; place-items:center; width:24px; height:24px; border-radius:50%; border:2px solid white; background:#2563eb; color:white; font:bold 12px/1 system-ui; box-shadow:0 1px 5px #17354866; }
.leg-focus-3d { position:relative; width:24px; height:24px; }
.leg-endpoint-label { position:absolute; bottom:30px; left:50%; transform:translateX(-50%); color:#1d4ea9; text-shadow:1px 0 white,-1px 0 white,0 1px white,0 -1px white; font:bold 10px/1.2 system-ui; white-space:nowrap; }
.leaflet-tooltip.leg-focus-label { color:#1d4ea9; }
.leaflet-journey-vehicle-pane .vehicle-icon { pointer-events:auto; }
.map-hint { margin:0; padding:10px 28px 18px; color:var(--muted); font-size:.85rem; }
.route-panel { display:grid; grid-template-columns:minmax(230px,.75fr) minmax(0,1.5fr); gap:28px; padding:24px; margin:20px 0; scroll-margin-top:20px; }
.route-panel p:not(.eyebrow) { color:var(--muted); }
.route-tools { min-width:0; }
.route-add,.route-actions { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.city-search { position:relative; min-width:220px; flex:1; }
.city-search input { width:100%; background:#081827; color:var(--text); border:1px solid var(--line); border-radius:10px; padding:.63rem .75rem; }
.city-results { position:relative; z-index:1; margin-top:4px; max-height:240px; overflow-y:auto; background:#10293c; border:1px solid var(--line); border-radius:10px; box-shadow:0 8px 20px #0004; }
.city-results[hidden] { display:none; }
.route-add .city-results button { display:block; width:100%; text-align:left; border:0; border-radius:0; background:transparent; padding:9px 12px; }
.route-add .city-results button:hover,.route-add .city-results button:focus-visible { background:#236064; }
.city-results p { padding:8px 12px; margin:0; color:var(--muted); }
.route-choices { display:grid; gap:8px; margin:8px 0 16px; }
.route-choices:empty { display:none; }
.route-choices label { display:flex; align-items:center; justify-content:space-between; gap:12px; font-size:.9rem; }
.route-choices select { max-width:100%; background:#081827; color:var(--text); border:1px solid var(--line); border-radius:10px; padding:.5rem; }
.vehicle-picker { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin:8px 0 16px; padding:10px 12px; border:1px solid var(--line); border-radius:14px; background:#08182780; }
.vehicle-picker label { font-size:.88rem; color:var(--muted); }
.vehicle-picker select { flex:1; min-width:210px; max-width:100%; padding:.55rem .7rem; border:1px solid var(--line); border-radius:10px; color:var(--text); background:#081827; }
.vehicle-preview { display:grid; place-items:center; width:38px; height:48px; flex:none; }
.vehicle-preview .vehicle-shape { width:32px; height:44px; }
#vehicle-gallery-open { flex:none; padding:.55rem .75rem; border:1px solid var(--line); border-radius:10px; color:var(--text); background:#19354a; }
#vehicle-gallery { width:min(1140px,calc(100% - 28px)); max-height:90vh; overflow:auto; }
.vehicle-gallery-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.vehicle-gallery-head h2 { margin:0; }
.vehicle-gallery-head .eyebrow { margin-top:0; }
.vehicle-gallery-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.vehicle-card { padding:12px; border:1px solid var(--line); border-radius:14px; color:var(--text); background:linear-gradient(135deg,#203b4e,#0b1927); text-align:left; cursor:pointer; min-width:0; }
.vehicle-card:hover,.vehicle-card:focus-visible { border-color:var(--cyan); }
.vehicle-card.selected { border-color:var(--gold); }
.vehicle-card strong { display:block; font-size:.9rem; min-height:2.5em; }
.vehicle-card-images { display:grid; grid-template-columns:minmax(0,1fr) 56px; align-items:center; gap:6px; }
.vehicle-card-images img { display:block; width:100%; height:148px; object-fit:contain; }
.vehicle-card-images .vehicle-top { width:56px; }
.vehicle-card small { display:block; margin-top:8px; color:var(--muted); line-height:1.4; }
@media(max-width:800px) { .vehicle-gallery-cards { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:480px) { .vehicle-gallery-cards { grid-template-columns:1fr; } }
.vehicle-icon { background:transparent; border:0; filter:drop-shadow(0 2px 4px #000c); }
.vehicle-icon .vehicle-shape { display:block; width:46px; height:64px; transform-origin:center center; }
.route-add button,.route-actions button,.route-actions a { border:1px solid var(--line); background:#19354a; color:var(--text); border-radius:10px; padding:.62rem .8rem; text-decoration:none; }
.route-add button:hover,.route-actions button:hover,.route-actions a:hover { border-color:var(--cyan); }
.route-actions .primary { background:var(--gold); color:#152334; border-color:var(--gold); }
.route-actions button:disabled { opacity:.45; cursor:not-allowed; }
#route-add-map[aria-pressed="true"] { border-color:var(--gold); color:var(--gold); }
.route-points { display:flex; flex-wrap:wrap; gap:8px; list-style:none; padding:0; margin:16px 0; }
.route-points li { display:flex; align-items:center; gap:7px; padding:5px 10px; border:1px solid var(--line); border-radius:12px; background:#ffffff0a; font-size:.84rem; }
.route-points input { width:135px; padding:4px 5px; background:#081827; color:var(--text); border:1px solid var(--line); border-radius:7px; font-size:.78rem; color-scheme:dark; }
.route-points li:not(:last-child)::after { content:"  →"; color:var(--cyan); }
.trip-editor { display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; margin:8px 0 15px; padding:12px; border:1px solid var(--line); border-radius:14px; background:#08182780; }
.trip-editor > label:first-child { color:var(--muted); font-size:.88rem; }
#trip-title { flex:1; min-width:200px; padding:.55rem .7rem; border:1px solid var(--line); border-radius:10px; color:var(--text); background:#081827; }
.trip-check { display:inline-flex; align-items:center; gap:6px; font-size:.87rem; color:var(--muted); cursor:pointer; }
.trip-check input { accent-color:var(--cyan); }
.trip-editor #trip-region-preview { flex-basis:100%; margin:0; }
.trip-3d-panel { margin:20px 0; padding:18px; border:1px solid #4a8692; border-radius:24px; background:#10283b; }
.trip-3d-panel[hidden] { display:none; }
.trip-3d-head { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:12px; }
.trip-3d-head p { margin:3px 0; color:var(--muted); font-size:.88rem; }
.trip-3d-actions { display:flex; flex-wrap:wrap; gap:8px; }
.trip-3d-actions button { border:1px solid var(--line); border-radius:9px; padding:8px 12px; background:#19354a; color:var(--text); }
.trip-3d-actions button:hover { border-color:var(--cyan); }
.trip-3d-actions button:disabled { opacity:.5; cursor:not-allowed; }
.trip-3d-controls { display:flex; flex-wrap:wrap; gap:12px 20px; align-items:center; margin:12px 0; }
.trip-3d-controls label { display:flex; align-items:center; gap:8px; font-size:.88rem; color:var(--text); }
.trip-3d-controls select { padding:7px 10px; border-radius:8px; border:1px solid var(--line); color:var(--text); background:#19354a; }
.trip-3d-controls input[type="range"] { width:140px; accent-color:#f5bf72; }
.trip-3d-controls output { min-width:2.5ch; color:#f5bf72; }
#trip-3d-map { width:100%; height:min(66vh,600px); min-height:360px; border-radius:12px; overflow:hidden; background:#173548; }
.map-wrap #trip-3d-map { height:min(68vh,700px); min-height:480px; border-radius:10px; }
.integrated-controls { margin:10px; padding:14px; border-radius:12px; }
.integrated-controls h2 { font-size:1.2rem; margin:0; }
.integrated-controls .trip-3d-head > div > p:not(.eyebrow) { display:none; }
.integrated-controls .trip-3d-head { margin:0; }
.integrated-controls .trip-3d-controls { margin-bottom:0; }
.integrated-controls #trip-3d-status { margin-bottom:0; }
.map-wrap .maplibregl-ctrl-attrib { font-size:11px; }
@media(max-width:480px) { .map-wrap #trip-3d-map { min-height:440px; height:60vh; } }
.trip-3d-panel .maplibregl-ctrl-attrib { font-size:11px; }
.trips-panel { display:grid; grid-template-columns:minmax(230px,.75fr) minmax(0,1.5fr); gap:28px; margin:20px 0; padding:24px; border:1px solid var(--line); background:linear-gradient(135deg,#12273aee,#0e1c2eee); border-radius:24px; scroll-margin-top:20px; }
.cabinet-panel { margin:20px 0; padding:24px; border:1px solid var(--line); background:linear-gradient(135deg,#12273aee,#0e1c2eee); border-radius:24px; scroll-margin-top:20px; }
.cabinet-panel p:not(.eyebrow) { color:var(--muted); }
.cabinet-panel button { margin:8px 8px 0 0; }
.cabinet-panel #cabinet-error { color:#ff9d8f; }
[hidden] { display:none !important; }
.trip-check:has(#trip-published) { display:none; }
.trips-panel p:not(.eyebrow) { color:var(--muted); }
.trips-list { display:grid; align-content:start; gap:10px; }
.trip-card { padding:14px 16px; border:1px solid var(--line); border-radius:14px; background:#ffffff08; }
.trip-card h3 { margin:0; font-size:1rem; }
.trip-card p { margin:3px 0; font-size:.84rem; }
.trip-card button { margin-top:8px; border:1px solid var(--line); border-radius:9px; background:#19354a; color:var(--text); padding:7px 11px; }
.trip-card button:hover { border-color:var(--cyan); }
.trip-card .trip-delete { margin-left:8px; color:#ffb7aa; border-color:#784f56; }
.trip-card-head { display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
.trip-card.selected-trip { border-color:var(--cyan); background:#1c55522b; }
.trip-card .trip-title-link { flex:1; text-align:left; font-size:1rem; font-weight:700; background:transparent; border:0; margin:0; padding:4px 0; min-width:140px; }
.trip-card .archive-regions { font-size:.84rem; cursor:pointer; }
.trip-card .archive-regions:has(input:disabled) { opacity:.6; cursor:default; }
.trip-thumbnail { width:100px; height:65px; flex:none; border-radius:9px; background:#081c2c; border:1px solid var(--line); }
.trip-thumbnail polyline { fill:none; stroke:var(--gold); stroke-width:3; stroke-linecap:round; stroke-linejoin:round; }
.trips-list { grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr)); }
.export-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; }
.export-actions button { border:1px solid var(--line); border-radius:10px; background:#19354a; color:var(--text); padding:9px 12px; }
.export-actions button:hover { border-color:var(--cyan); }
.export-actions button:disabled { opacity:.5; cursor:not-allowed; }
@media (max-width:700px) { .trip-3d-head { display:block; } .trip-3d-actions { margin-top:12px; } }
.route-actions a { color:var(--cyan); }
.route-workflow { margin:12px 0 16px; align-items:center; }
.auto-route-label { display:flex; align-items:center; gap:8px; font-size:.86rem; color:var(--muted); }
.auto-route-label input { accent-color:var(--cyan); }
.draft-tools { margin:10px 0; }
.route-points .stop-number { color:var(--cyan); font-size:.8rem; min-width:2ch; }
.route-points .stop-name { width:130px; min-width:80px; background:transparent; border:0; color:var(--text); padding:4px; font:inherit; }
.route-points .stop-name:focus { outline:1px solid var(--cyan); border-radius:4px; }
.route-points .stop-controls { display:flex; gap:3px; }
.route-points .stop-controls button { background:#102b3c; border:1px solid var(--line); border-radius:5px; color:var(--text); padding:3px 7px; }
.route-points .stop-controls button:disabled { opacity:.3; }
.route-insertion { display:flex; align-items:center; gap:8px; margin:12px 0; flex-wrap:wrap; }
.route-insertion select { max-width:100%; min-width:240px; }
.route-points li { flex-wrap:wrap; }
.route-points .stop-drag { cursor:grab; padding:3px 5px; background:transparent; border:0; color:var(--cyan); font-size:20px; }
.route-points .stop-drag:active { cursor:grabbing; }
.route-points .drag-source { opacity:.45; }
.route-points .drop-before { border-left:4px solid var(--cyan); }
.route-points .drop-after { border-right:4px solid var(--cyan); }
.route-points .stop-insert, .route-points .stop-address { padding:3px 6px; border-radius:5px; background:#102b3c; color:var(--text); border:1px solid var(--line); }
.place-policy { font-size:.72rem; opacity:.75; }
.stop-location { flex-basis:100%; color:var(--cyan); padding-left:28px; max-width:480px; }
.route-points.has-subpoints { display:flex; flex-direction:column; align-items:flex-start; }
.route-points .stop-subpoint { margin-left:28px; border-left:3px solid var(--cyan); background:#68d7cf08; }
.route-points .stop-level, .route-points .stop-kind { font-size:.75rem; padding:3px; max-width:165px; background:#102b3c; color:var(--text); border:1px solid var(--line); border-radius:5px; }
.stop-media { flex-basis:100%; padding:4px 0; }
.stop-media summary { cursor:pointer; color:var(--cyan); }
.stop-media input { margin:5px 4px 5px 0; }
.stop-media small { display:block; max-width:480px; opacity:.75; }
.stop-media button { padding:4px 7px; font-size:.78rem; }
.stop-via { font-size:.75rem; display:flex; align-items:center; }
.route-points .stop-via input { width:auto; }
.route-stop.attention-stop { outline:1px dashed #198eaa; outline-offset:2px; border-radius:5px; }
@media (max-width:600px) { .route-points li { max-width:100%; } .route-points .stop-subpoint { margin-left:14px; max-width:calc(100% - 14px); } }
.route-points .stop-controls button:last-child { color:#ffb7aa; }
#map.point-picking, #map.point-picking .leaflet-interactive { cursor:crosshair; }
.map-selection { display:flex; justify-content:space-between; align-items:center; gap:24px; margin:12px 24px 0; padding:14px 18px; border:1px solid #3f6a78; border-radius:16px; background:#163b4b; }
.map-selection .eyebrow { margin:0; }
.map-selection h2 { font-size:1.55rem; line-height:1.2; margin:6px 0 2px; }
.map-selection p:not(.eyebrow) { margin:3px 0 0; color:var(--muted); }
.map-selection .primary { flex-shrink:0; }
.below { display:block; margin:20px 0; }
.region-panel,.next-panel { padding:24px; }
.region-panel-head { display:flex; align-items:center; justify-content:space-between; gap:14px; }
#search { background:#081827; color:var(--text); border:1px solid var(--line); border-radius:12px; padding:.65rem .85rem; min-width:220px; }
.filters { display:flex; gap:8px; margin:20px 0; }
.filter { background:#0d2132; color:var(--muted); border:1px solid var(--line); border-radius:999px; padding:7px 14px; }
.filter.active { background:#1d5d60; color:white; border-color:#4baab1; }
.regions-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; max-height:510px; overflow:auto; padding:2px; }
.region-row { display:flex; justify-content:space-between; align-items:center; gap:12px; min-width:0; text-align:left; color:var(--text); background:#ffffff08; border:1px solid transparent; border-radius:10px; padding:10px 12px; }
.region-row:hover,.region-row.selected { border-color:var(--cyan); background:#23606448; }
.region-row span { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.region-row small { flex-shrink:0; }
.done { color:var(--gold); }.todo { color:var(--muted); }
.primary { background:var(--gold); color:#152334; border:0; border-radius:11px; padding:.7rem 1rem; font-weight:750; }
.primary:hover { background:#ffd296; }.primary:disabled { opacity:.5; cursor:wait; }
.small,.empty { font-size:.86rem; }
.future-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin:20px 0 38px; }
.next-panel { scroll-margin-top:20px; }.next-panel p:last-child { max-width:700px; color:var(--muted); }
footer { color:#8da9b9; border-top:1px solid var(--line); padding:26px 0 42px; font-size:.78rem; }
dialog { width:min(460px,calc(100% - 28px)); border:1px solid #41707b; border-radius:20px; background:#102536; color:var(--text); box-shadow:0 24px 90px #000b; padding:26px; }
dialog::backdrop { background:#06131bd9; }
dialog p { color:var(--muted); }.dialog-actions { display:flex; gap:10px; justify-content:flex-end; margin-top:20px; }
dialog label { display:block; font-weight:700; margin:18px 0 6px; }dialog input { width:100%; padding:11px; color:var(--text); background:#071522; border:1px solid var(--line); border-radius:10px; }
dialog [hidden] { display:none; }
dialog code { color:var(--gold); font-weight:700; }
dialog details { margin-top:20px; padding-top:14px; border-top:1px solid var(--line); }
dialog summary { cursor:pointer; color:var(--cyan); }
dialog .auth-submit { display:block; margin-top:12px; padding:.65rem .9rem; border-radius:10px; }
.error { color:#ff9d8f; min-height:1.3em; }
.stop-transport { display:flex; align-items:center; gap:8px; flex-basis:100%; font-size:.78rem; color:var(--muted); }
.stop-transport select { flex:1; min-width:0; max-width:240px; padding:4px; background:#102b3c; color:var(--text); border:1px solid var(--line); border-radius:5px; }
.journey-hud { position:absolute; left:50%; bottom:38px; transform:translateX(-50%); width:min(620px,calc(100% - 36px)); background:#0b1727ed; color:#fff; border:1px solid #8bb6c366; border-radius:16px; padding:14px 18px 26px; z-index:800; pointer-events:none; box-shadow:0 8px 32px #0004; }
.journey-hud[hidden] { display:none; }
.journey-hud output { font-size:1.3rem; font-weight:750; font-variant-numeric:tabular-nums; }
.journey-hud p { margin:4px 0 16px; color:#c8e4eb; font-size:.86rem; }
.journey-track { position:relative; height:7px; border-radius:8px; background:#4b6277; }
.journey-fill { height:100%; border-radius:8px; background:#f77f42; }
.journey-tick { position:absolute; top:-6px; transform:translateX(-50%); background:#eff6f8; color:#19344a; font-size:10px; font-weight:800; border:2px solid #19344a; min-width:18px; height:18px; line-height:14px; text-align:center; border-radius:50%; }
.journey-map-label { color:#24366c; background:transparent; border:0; box-shadow:none; font:600 10px/1.25 system-ui; padding:0; text-shadow:0 0 2px white,1px 0 1px white,-1px 0 1px white,0 1px 1px white,0 -1px 1px white; }
.journey-map-label:before { display:none; }
.terrain-stop-emoji { width:28px; height:28px; cursor:pointer; filter:drop-shadow(0 1px 2px #10253655); }
.map-leg-tools { display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding:12px; background:#102333; border:1px solid #294d61; border-radius:14px; margin:10px 0; }
.map-leg-tools[hidden] { display:none; }
.map-leg-tools select { max-width:100%; min-width:160px; flex:1; }
.stop-story { grid-column:1/-1; padding:5px 0; width:100%; }
.stop-story label { display:flex; align-items:center; justify-content:space-between; gap:8px; margin:8px 0; }
.stop-story input[type=number] { width:90px; }
.stop-story textarea { width:100%; min-height:80px; resize:vertical; font:inherit; color:#e6f0f7; background:#081928; border:1px solid #315069; border-radius:8px; padding:9px; }
.stop-story small { display:block; color:#afc9db; line-height:1.5; }
.journey-comment { grid-column:1/-1; white-space:pre-wrap; overflow-wrap:anywhere; margin:14px 0 0; padding:10px 0; font:15px/1.5 system-ui; color:white; border-top:1px solid #315069; }
.journey-comment[hidden] { display:none; }
.journey-story { position:absolute; bottom:54px; left:14px; right:14px; width:fit-content; max-width:430px; max-height:45%; overflow:auto; z-index:750; padding:11px 14px; border:1px solid #7ebcc47a; border-radius:12px; background:#0b1d2aee; color:#f2f8fb; box-shadow:0 3px 15px #0003; font:14px/1.45 system-ui; }
.journey-story[hidden] { display:none; }
.journey-story strong { display:block; font-size:.85rem; color:#7de0d6; }
.journey-story p { white-space:pre-wrap; overflow-wrap:anywhere; margin:5px 0 0; }
.point-editor-fields small { color:var(--muted); font-size:.72rem; font-weight:400; line-height:1.4; }
@media(max-width:600px) { .journey-story { bottom:64px; left:10px; right:10px; font-size:13px; padding:9px 11px; } }
.journey-tick { font-size:17px; }
.legend .visited { background:#68d7cf; }
.journey-stops { pointer-events:auto; }
.integrated-controls .journey-hud { position:relative; left:auto; bottom:auto; transform:none; width:100%; margin:16px 0; pointer-events:auto; box-shadow:none; padding-bottom:34px; }
.journey-track { height:8px; margin:0 12px; }
#journey-seek { position:absolute; inset:-9px -8px auto; width:calc(100% + 16px); margin:0; height:26px; background:transparent; appearance:none; cursor:ew-resize; z-index:2; }
#journey-seek::-webkit-slider-runnable-track { background:transparent; height:8px; }
#journey-seek::-webkit-slider-thumb { appearance:none; width:17px; height:24px; margin-top:-8px; border-radius:5px; background:#f77f42; border:2px solid white; box-shadow:0 2px 8px #0007; }
#journey-seek::-moz-range-track { background:transparent; }
#journey-seek::-moz-range-thumb { width:15px; height:22px; border-radius:5px; background:#f77f42; border:2px solid white; }
.journey-tick { top:18px; padding:0 2px; cursor:pointer; z-index:3; }
.journey-hud .journey-comment { margin:42px 0 0; padding-top:10px; font:15px/1.5 system-ui; color:#fff; }
.map-leg-tools select, .map-leg-tools button { color:#e6f0f7; background:#18364b; border:1px solid #315069; border-radius:9px; padding:9px; font:inherit; }
.route-workspace .route-points li { display:grid; grid-template-columns:24px 22px minmax(0,1fr) auto; gap:2px 4px; padding:6px 8px; width:100%; min-width:0; }
.route-workspace .route-points li::after { display:none; }
.route-workspace .route-points .stop-name { min-width:0; width:100%; font-size:.85rem; }
.route-workspace .route-points .stop-controls { gap:3px; }
.route-workspace .route-points .stop-controls button { min-height:30px; min-width:28px; padding:2px 5px; }
.route-workspace .route-points .stop-controls .stop-save { margin-left:3px; border-color:#4b817f; }
.stop-save-status { grid-column:1/-1; color:var(--cyan); font-size:.73rem; line-height:1.4; }
.stop-save-status[hidden] { display:none; }
@media(max-width:1000px) { .route-workspace .stop-save { display:none; } }
.route-workspace .route-points .stop-drag { touch-action:pan-y; user-select:none; -webkit-touch-callout:none; min-height:32px; }
.route-stop-marker { -webkit-touch-callout:none; user-select:none; }
.route-workspace .route-points .stop-subpoint { width:calc(100% - 18px); margin-left:18px; }
.route-workspace .route-points .drop-before { border-left:1px solid var(--line); border-top:3px solid var(--cyan); }
.route-workspace .route-points .drop-after { border-right:1px solid var(--line); border-bottom:3px solid var(--cyan); }
.stop-settings { grid-column:3/-1; min-width:0; }
.stop-settings summary { cursor:pointer; color:var(--muted); font-size:.72rem; padding:1px 0; }
.stop-settings[open] { grid-column:1/-1; }
.stop-settings-fields { display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding:10px 2px; }
.stop-settings-fields > label:first-child { font-size:.78rem; color:var(--muted); }
.stop-options-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;gap:8px;width:100%;}
.route-points .stop-options-grid>.point-flag-toggle,.route-points .stop-options-grid>select{width:100%;max-width:none;min-width:0;min-height:44px;border-radius:8px;font:inherit;font-size:.82rem;line-height:1.3;}
.route-points .stop-options-grid>select{height:100%;padding:8px 10px;color:var(--text);background:#102b3c;border:1px solid #42627a;}
.point-location-fields{border:1px solid #42627a;border-radius:8px;padding:8px 10px;min-width:0;}
.point-location-fields>summary{cursor:pointer;color:var(--cyan);font-size:.82rem;}
.point-location-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding-top:10px;}
.point-location-grid>input,.point-location-results,.point-location-grid>.small{grid-column:1/-1;}
.point-location-grid>.small{margin:0;font-size:.76rem;}
.point-location-results{display:grid;gap:5px;}
.point-location-results:empty{display:none;}
.point-location-grid>button{min-height:40px;justify-self:start;padding:7px 14px;font:inherit;font-size:.82rem;border:1px solid #42627a;border-radius:8px;background:#19354a;color:var(--text);}
.point-place-result{min-width:0;text-align:left;white-space:normal;font:inherit;font-size:.78rem;line-height:1.4;padding:7px 9px;border:1px solid #42627a;border-radius:7px;background:#102b3c;color:var(--text);}
.point-editor-fields select{min-height:44px;}
.route-insertion { display:flex; flex-wrap:wrap; gap:6px; align-items:center; font-size:.8rem; }
.route-insertion select { min-width:0; max-width:100%; padding:6px; color:var(--text); background:#102b3c; border:1px solid var(--line); border-radius:7px; font:inherit; }
.map-panel > .journey-hud { position:relative; left:auto; bottom:auto; transform:none; width:auto; margin:8px 12px; padding:8px 12px 32px; border-radius:12px; pointer-events:auto; box-shadow:none; }
.map-panel > .journey-hud output { font-size:.94rem; }
.map-panel > .journey-hud p { margin:2px 0 13px; font-size:.75rem; }
.map-panel > .journey-hud .journey-comment { margin:30px 0 0; font-size:.82rem; }
.map-panel > .journey-hud .journey-tick { font-size:13px; top:13px; height:18px; }
.map-panel > .journey-hud #journey-seek::-webkit-slider-thumb { width:13px; height:18px; margin-top:-5px; }
.map-panel > .journey-hud #journey-seek::-moz-range-thumb { width:12px; height:17px; }
body[data-site-page="travel"] #journey-hud { display:none !important; }
.map-leg-tools select { font-size:.8rem; text-overflow:ellipsis; min-width:100px; }
.map-leg-tools button { font-size:.8rem; padding:7px; }
.trip-color { display:inline-flex; align-items:center; gap:5px; font-size:.8rem; color:var(--muted); }
.trip-color .swatch { width:20px; height:20px; border:1px solid #ffffff90; }
.trip-color-dialog,.route-point-search { width:min(560px,calc(100vw - 28px)); max-height:85vh; box-sizing:border-box; overflow:auto; padding:20px; border:1px solid #42627a; border-radius:18px; background:#122b3d; color:#eef6fa; }
.trip-color-dialog::backdrop,.route-point-search::backdrop { background:#04101f99; backdrop-filter:blur(3px); }
.trip-color-dialog h2,.route-point-search h2 { margin:0 0 16px; font-size:1.15rem; }
.trip-color-palette { display:grid; grid-template-columns:repeat(8,1fr); gap:8px; margin-bottom:16px; }
.trip-color-palette button { min-width:0; height:36px; border:2px solid transparent; border-radius:7px; cursor:pointer; }
.trip-color-palette button[aria-pressed=true] { border-color:white; box-shadow:0 0 0 2px #f5bf72; }
.route-scope-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;}
.editor-route-color{display:inline-flex;align-items:center;gap:7px;padding:5px 9px;font:inherit;font-size:.8rem;min-height:32px;background:#19354a;color:var(--text);border:1px solid var(--line);border-radius:8px;cursor:pointer;}
.route-color-swatch{width:18px;height:18px;border-radius:5px;border:1px solid #ffffff90;flex-shrink:0;}
.trip-color-palette button{padding:0;}
@media(pointer:coarse){.trip-color-palette{gap:6px;}.trip-color-palette button{height:38px;}}
@media(max-width:600px){.trip-color-dialog{padding:14px;max-height:88dvh;}.trip-color-palette{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;}.trip-color-palette button{height:42px;}.trip-color-dialog h2{margin-bottom:12px;}}
.trip-color-dialog input { width:130px; padding:9px; background:#091d2c; color:#eef6fa; border:1px solid #42627a; border-radius:8px; font:inherit; }
.trip-color-dialog > button,.route-point-search > button { padding:9px 12px; margin:6px 8px 0 0; background:#19354a; color:#eef6fa; border:1px solid #42627a; border-radius:8px; cursor:pointer; }
.route-point-search .route-add { display:grid; grid-template-columns:1fr 1fr; align-items:start; }
.route-point-search .city-search { grid-column:1/-1; min-width:0; }
.route-point-search #route-search-place { grid-column:1/-1; }
.integrated-controls .playback-ranges { display:grid; gap:8px; flex:none; width:325px; max-width:100%; }
.integrated-controls .playback-ranges label { display:grid; grid-template-columns:110px minmax(80px,1fr) 45px; align-items:center; gap:8px; }
.integrated-controls .playback-ranges input[type=range] { width:100%; margin:0; min-width:0; }
.integrated-controls .playback-ranges output { min-width:0; text-align:left; }
#trip-title { resize:none; min-height:0; height:42px; line-height:22px; font:inherit; box-sizing:border-box; overflow:hidden; }
@media(max-width:480px) { .route-workspace .route-points li { grid-template-columns:22px 18px minmax(0,1fr); }.route-workspace .route-points .stop-controls { grid-column:3; grid-row:2; }.stop-settings { grid-column:1/3; grid-row:2; }.stop-settings[open] { grid-column:1/-1; grid-row:3; }.map-leg-tools { padding:8px; margin:6px; }.map-leg-tools select { flex-basis:calc(100% - 90px); }.map-panel > .journey-hud { margin:6px; }.integrated-controls .trip-3d-controls input[type=range] { width:115px; } }
.integrated-controls .vehicle-picker { margin:12px 0; padding:10px 12px; }
.export-actions select { max-width:100%; color:var(--text); background:#19354a; border:1px solid var(--line); border-radius:10px; padding:9px; }
.flight-ground-shadow { position:absolute; width:34px; height:12px; border-radius:50%; background:#16304750; filter:blur(2px); left:6px; top:35px; }
.vehicle-icon .vehicle-shape { position:relative; }
.vehicle-picker > label:has(#route-vehicle-type) { display:flex; align-items:center; gap:8px; }
.stop-transport { display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
.stop-transport select { flex:1; min-width:130px; }
.point-editor-dialog { width:min(660px,calc(100vw - 24px)); max-height:90vh; max-height:90dvh; box-sizing:border-box; overflow:hidden; padding:0; border:1px solid #42627a; border-radius:16px; background:#122b3d; color:#eef6fa; }
.point-editor-dialog form{display:flex;flex-direction:column;max-height:inherit;margin:0;}
.point-editor-header{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid #315069;flex-shrink:0;}
.point-editor-header h2{flex:1;min-width:0;}
.point-editor-header button{padding:4px 10px;font-size:1.3rem;min-width:36px;min-height:36px;}
.point-editor-body{overflow:auto;min-height:0;padding:12px 16px;overscroll-behavior:contain;}
.point-editor-actions{flex-shrink:0;margin:0;padding:10px 16px max(10px,env(safe-area-inset-bottom));border-top:1px solid #315069;background:#122b3d;}
.point-editor-actions button{min-height:40px;padding:8px 14px;}
#point-editor-error{width:100%;margin:0;color:#ffd29e;font-size:.8rem;}
.export-download{display:inline-block;padding:8px 12px;border:1px solid #60d5c4;border-radius:8px;color:#9de9dc;}
.export-download[hidden]{display:none;}
.point-editor-dialog::backdrop { background:#04101f99; backdrop-filter:blur(3px); }
.point-editor-dialog h2 { margin:0; font-size:1.05rem; }
.point-editor-fields { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.point-editor-fields label { display:flex; flex-direction:column; gap:6px; font-size:.85rem; margin:0; font-weight:500; }
.point-editor-fields .wide { grid-column:1/-1; }
.point-structure-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.point-structure-fields small { color:var(--muted); font-size:.73rem; }
.point-flag-toggle { display:flex; align-items:center; gap:8px; min-height:44px; min-width:0; padding:8px 10px; text-align:left; white-space:normal; border:1px solid #42627a; border-radius:8px; background:#102b3c; color:var(--text); font-size:.78rem; line-height:1.3; touch-action:manipulation; }
.point-flag-mark { display:grid; place-items:center; width:18px; height:18px; flex:0 0 18px; border:1.5px solid #93b5c5; border-radius:4px; line-height:1; font-weight:800; }
.point-flag-toggle[aria-checked="true"] { border-color:#60d5c4; background:#173d43; }
.point-flag-toggle[aria-checked="true"] .point-flag-mark { background:#68d7cf; border-color:#68d7cf; color:#091d2c; }
.point-flag-toggle:disabled { opacity:.7; cursor:default; }
.point-flag-toggle:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }
.point-editor-fields input,.point-editor-fields select,.point-editor-fields textarea { width:100%; box-sizing:border-box; min-width:0; padding:10px; color:#eef6fa; background:#091d2c; border:1px solid #42627a; border-radius:9px; font:inherit; }
.point-editor-fields textarea { resize:vertical; }
.point-editor-fields .point-editor-transport { display:grid; grid-template-columns:1fr 1fr; }
.point-editor-fields .point-editor-transport select { grid-row:2; }
.point-arrival-fields,.stop-arrival{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%;}
.point-arrival-fields[hidden],.stop-arrival[hidden],.point-editor-transport[hidden]{display:none!important;}
.point-arrival-fields small,.stop-arrival small,.stop-arrival .stop-transport{grid-column:1/-1;}
.point-arrival-fields small,.stop-arrival small{color:#afc9db;font-size:.75rem;line-height:1.45;}
.stop-arrival{grid-column:1/-1;}
.stop-arrival>label:not(.stop-transport){display:flex;flex-direction:column;gap:5px;font-size:.78rem;}
.stop-arrival input{width:100%;box-sizing:border-box;color:#e6f0f7;background:#081928;border:1px solid #315069;border-radius:6px;padding:6px;}
@media(max-width:480px){.point-arrival-fields,.stop-arrival{grid-template-columns:1fr;}}
@media(min-width:600px) { .point-editor-fields { grid-template-columns:repeat(2,1fr); }.point-editor-fields input,.point-editor-fields select { padding:8px; }.point-editor-fields textarea { height:60px; } }
@media(max-width:480px) { .point-editor-fields { gap:8px; }.point-editor-fields label{font-size:.75rem;gap:4px;}.point-editor-fields input,.point-editor-fields select{padding:8px;min-height:40px;}.point-editor-fields textarea{height:58px;}.point-editor-fields .point-editor-transport { grid-template-columns:1fr; }.point-editor-fields .point-editor-transport select { grid-row:auto; }.point-arrival-fields{grid-template-columns:1fr 1fr;gap:8px;} }
@media(max-width:800px) { .hero { padding:42px 0 30px; align-items:flex-start; flex-direction:column; gap:10px; }.score strong { font-size:2.4rem; }.hub-grid { grid-template-columns:1fr; margin-bottom:36px; }.hub-card { min-height:140px; }.future-grid { grid-template-columns:1fr; }.section-head { align-items:start; }.regions-list { grid-template-columns:1fr; }.route-panel,.trips-panel { grid-template-columns:1fr; }.panel-top { flex-direction:column; align-items:flex-start; }.region-panel-head { flex-direction:column; align-items:stretch; }#search { min-width:0; width:100%; }.map-selection { flex-direction:column; align-items:stretch; gap:12px; } }
@media(max-width:480px) { .brand span { display:none; }.topnav { gap:10px; }.topnav a { font-size:.78rem; }.shell { width:min(100% - 20px,1440px); }.topbar { min-height:65px; }.ghost { padding:.5rem .7rem; font-size:.87rem; }.map-panel,.region-panel,.next-panel { border-radius:16px; }.region-panel,.next-panel { padding:16px; }.panel-top { padding:16px; }.legend { font-size:.75rem; gap:10px; }.map-selection { margin:12px; padding:16px; }.section-head { flex-direction:column; }.score { padding:12px 16px; } }
@media(max-width:480px) { .map-toolbar { padding:12px 12px 0; }.city-toggle { margin-left:0; width:100%; }.map-hint { padding:12px; } }
@media(max-width:480px) { .route-panel { padding:16px; }.city-search { width:100%; }.route-add button { flex:1; }.route-choices label { align-items:stretch; flex-direction:column; }#map { min-height:440px; height:60vh; } }
@media(max-width:480px) {
  .route-workspace .route-points .stop-controls { grid-column:3; grid-row:2; align-self:start; justify-self:end; z-index:1; }
  .route-workspace .stop-settings,.route-workspace .stop-settings[open] { grid-column:1/-1; grid-row:2; }
  .route-workspace .stop-settings summary { min-height:30px; line-height:30px; max-width:calc(100% - 135px); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:.74rem; }
}
.trip-flag-toggle{font:inherit;font-size:.85rem;text-align:left;white-space:normal;justify-self:start;min-height:34px;padding:6px 10px;border:1px solid #315069;border-radius:8px;background:#19354a;color:#e6f0f7;}
.trip-flag-toggle[aria-pressed="true"]{border-color:#60d5c4;color:#9de9dc;background:#173d43;}

/* A viewport-sized workspace keeps playback reachable with arbitrarily long stop lists. */
.route-map-settings summary,.playback-help summary,.route-export-panel>summary{cursor:pointer;list-style:none;}
.route-map-settings summary::-webkit-details-marker,.playback-help summary::-webkit-details-marker,.route-export-panel>summary::-webkit-details-marker{display:none;}
.route-map-settings summary:focus-visible,.playback-help summary:focus-visible,.route-export-panel>summary:focus-visible{outline:2px solid var(--gold);outline-offset:2px;}
body[data-site-page="travel"] .route-map-settings>summary{display:none;}
body[data-site-page="travel"] .route-export-panel{display:none;}
body:is([data-site-page="routes"],[data-site-page="edit"]) .route-map-settings{position:absolute;top:12px;right:56px;z-index:1000;max-width:calc(100% - 72px);color:var(--text);background:#10283bea;border:1px solid var(--line);border-radius:9px;box-shadow:0 2px 10px #0003;}
body:is([data-site-page="routes"],[data-site-page="edit"]) .route-map-settings>summary{font-size:18px;line-height:32px;width:34px;text-align:center;}
body:is([data-site-page="routes"],[data-site-page="edit"]) .route-map-settings .map-toolbar{padding:6px 8px 10px;max-width:330px;gap:6px;}
body:is([data-site-page="routes"],[data-site-page="edit"]) .route-map-settings .city-toggle{margin:0;}
.playback-help{position:relative;z-index:1100;}
.playback-help>summary{color:var(--cyan);font-size:19px;line-height:32px;width:30px;text-align:center;}
.playback-help>div{position:absolute;right:0;bottom:calc(100% + 8px);width:320px;max-width:70vw;max-height:230px;overflow:auto;padding:12px;background:#10283bf5;border:1px solid var(--line);border-radius:10px;box-shadow:0 4px 18px #0005;}
.playback-help p{font-size:.78rem;margin:4px 0 10px;}
.route-export-panel{margin:0 10px 10px;display:flex;gap:8px;flex-shrink:0;}
.route-export-panel[hidden]{display:none;}
.integrated-controls .trip-3d-actions #video-format{min-width:0;width:130px;max-width:100%;padding:5px 7px;font-size:.75rem;border:1px solid var(--line);border-radius:8px;background:#19354a;color:var(--text);}
.integrated-controls #export-video{width:108px;white-space:nowrap;}
.integrated-controls[data-recording-state="recording"] #export-video,.integrated-controls[data-recording-state="paused"] #export-video{color:var(--gold);border-color:var(--gold);}
.recording-announcement{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;}
.route-export-panel>button{padding:7px 10px;font-size:.8rem;color:var(--cyan);}
.route-export-dialog{box-sizing:border-box;width:min(1100px,calc(100vw - 24px));max-width:none;max-height:94vh;max-height:94dvh;margin:auto;padding:0;border:1px solid #52798d;border-radius:16px;background:#102536;color:var(--text);overflow:auto;}
.route-export-dialog::backdrop{background:#030c15b3;}
.export-dialog-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:#102536;border-bottom:1px solid var(--line);}
.export-dialog-head h2{margin:0;font-size:1.1rem;}
.export-dialog-head button{padding:6px 12px;}
.route-export-dialog .route-export-body{padding:16px 20px;height:auto;max-height:none;overflow:visible;}
.route-export-dialog .video-result video,.route-export-dialog .png-result img{max-height:calc(90vh - 280px);max-height:calc(90dvh - 280px);width:100%;object-fit:contain;margin:12px auto;}
.route-export-dialog .video-result video{min-height:260px;}
.route-export-dialog .export-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;}
.route-export-dialog .export-actions button,.route-export-dialog .export-actions select{font-size:.85rem;padding:8px 12px;min-height:38px;}
.route-export-dialog .export-download{display:inline-block;margin:6px 0;}
.route-export-dialog>div button{border-radius:8px;}
.route-export-dialog [hidden]{display:none;}
.export-sidebar{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0;}
.export-sidebar .export-actions{width:100%;}
.export-previews{min-width:0;}
@media(min-width:801px){
  .route-export-body.has-preview{display:grid;grid-template-columns:270px minmax(0,1fr);gap:22px;align-items:start;}
  .route-export-body.has-preview .export-actions{flex-direction:column;align-items:stretch;}
  .route-export-body.has-preview .export-actions>*{width:100%;box-sizing:border-box;}
  .route-export-body.has-preview .video-result{margin:0;padding-top:0;border:0;}
  .route-export-body.has-preview .video-result+details{margin-top:10px;}
  .route-export-body.has-preview .video-result video,.route-export-body.has-preview .png-result img{max-height:calc(90vh - 130px);max-height:calc(90dvh - 130px);}
}
.route-export-panel>summary{padding:7px 10px;font-size:.8rem;color:var(--cyan);}
.route-export-panel>summary::before{content:"▸ ";}
.route-export-panel[open]>summary::before{content:"▾ ";}
.route-export-body{padding:0 10px 10px;}
.route-export-body .export-actions{gap:6px;margin:0;}
.route-export-body .export-actions button,.route-export-body .export-actions select{padding:6px 8px;font-size:.78rem;min-height:32px;}
.route-export-body .small{font-size:.76rem;line-height:1.45;}
.route-export-body #export-status:empty{display:none;}
.integrated-controls .trip-3d-head>div:first-child{display:none;}
.integrated-controls .trip-3d-actions{margin:0;gap:5px;align-items:center;}
.integrated-controls .trip-3d-actions button{min-height:32px;padding:5px 8px;font-size:.78rem;}
.integrated-controls .trip-3d-controls{display:grid;grid-template-columns:minmax(220px,1fr) minmax(170px,.85fr);gap:8px;margin:7px 0 0;}
.integrated-controls .playback-ranges{width:100%;gap:6px;}
.integrated-controls .trip-3d-controls .playback-ranges label{grid-template-columns:110px minmax(65px,1fr) 36px;font-size:.75rem;gap:6px;white-space:nowrap;}
.playback-camera-controls{display:flex;flex-direction:column;gap:6px;min-width:0;}
.playback-camera-controls label{margin:0;font-size:.75rem;}
.playback-camera-controls select{min-width:0;flex:1;width:0;}
.integrated-controls #trip-3d-status{font-size:.7rem;line-height:1.25;margin:4px 0 0;}
.map-panel:has(#journey-hud:not([hidden])) #trip-3d-status{display:none;}
.map-panel>.journey-hud{padding:6px 10px 12px;margin:5px 10px;border-radius:9px;}
.journey-summary{display:flex;align-items:baseline;gap:10px;min-width:0;margin-bottom:8px;}
.map-panel>.journey-hud output{font-size:.85rem;white-space:nowrap;}
.map-panel>.journey-hud .journey-summary p{font-size:.72rem;margin:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
.map-panel>.journey-hud .journey-track{height:5px;margin:0 6px;}
.map-panel>.journey-hud .journey-tick{top:-5px;min-width:0;width:10px;height:15px;padding:0;border:0;border-radius:0;font-size:0;background:transparent;}
.map-panel>.journey-hud .journey-tick::after{content:"";display:block;width:2px;height:8px;margin:3px auto;background:#d2edf2;border-radius:2px;}
.map-panel>.journey-hud .journey-tick:hover,.map-panel>.journey-hud .journey-tick:focus-visible{width:auto;min-width:22px;height:23px;top:-25px;font-size:14px;background:#10283b;border:1px solid #8bb6c3;border-radius:6px;z-index:4;}
.map-panel>.journey-hud .journey-tick:hover::after,.map-panel>.journey-hud .journey-tick:focus-visible::after{display:none;}
.map-panel>.journey-hud .journey-comment{display:none;}
body:is([data-site-page="routes"],[data-site-page="edit"]) .map-hint{display:none;}
@media(min-width:1001px){
  #routes-page.site-page{padding-top:12px;}
  #routes-page>.section-head{display:none;}
  .route-workspace #route-map-slot{top:8px;height:calc(100vh - 108px);height:calc(100dvh - 108px);}
  .route-workspace .map-panel{height:100%;display:flex;flex-direction:column;}
  .route-workspace .map-wrap{flex:1;min-height:0;padding:6px;}
  .route-workspace #map,.route-workspace .map-wrap #trip-3d-map{height:100%;min-height:0;}
  .route-workspace .map-leg-tools{flex-shrink:0;margin:5px 10px;padding:6px;gap:5px;}
  .route-workspace .map-leg-tools select,.route-workspace .map-leg-tools button{padding:5px;font-size:.73rem;}
  .route-workspace .map-panel>.journey-hud,.route-workspace .integrated-controls{flex-shrink:0;}
  .route-workspace .integrated-controls{margin:0 10px 5px;padding:8px 10px;border-radius:9px;overflow:visible;}
}
@media(max-width:600px){
  .route-export-dialog .video-result video,.route-export-dialog .png-result img{max-height:55dvh;}
  .route-export-dialog .route-export-body{padding:12px;}
  .export-dialog-head{padding:10px 12px;}
  .integrated-controls .trip-3d-controls{grid-template-columns:1fr;gap:8px;}
  .playback-camera-controls{flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px;}
  .playback-camera-controls>label:first-child{flex:1;min-width:180px;}
  .map-panel>.journey-hud .journey-summary{flex-wrap:wrap;gap:0 8px;}
  .route-map-settings .city-toggle{width:auto;}
}
/* Compact point timings, including touch screens; delay stays outside disclosures. */
.point-arrival-fields,.stop-arrival{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}
.point-arrival-fields>label,.stop-arrival>label:not(.stop-transport){min-width:0;}
.point-arrival-fields input,.stop-arrival input{width:100%;max-width:130px;min-width:0;min-height:36px;padding:6px 8px;font-size:.86rem;}
.stop-arrival .stop-transport[hidden]{display:none;}
.integrated-controls .trip-3d-actions #route-pause{width:112px;min-width:112px;text-align:center;}
.map-leg-play{white-space:nowrap;}
.integrated-controls .trip-3d-controls .playback-ranges label{grid-template-columns:128px minmax(60px,1fr) 64px;}
.playback-ranges output{min-width:64px;text-align:right;font-variant-numeric:tabular-nums;}
.point-arrival-fields,.stop-arrival{grid-template-columns:repeat(4,minmax(0,1fr));}
.playback-main-actions,.playback-export-actions{display:flex;flex-wrap:wrap;align-items:center;gap:5px;}
.leg-settings-apply{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;font-size:.73rem;}
.leg-settings-target{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.leg-settings-apply button{padding:5px 8px;min-height:32px;font-size:.75rem;border-radius:8px;border:1px solid #42627a;color:var(--text);background:#19354a;}
#leg-settings-status:empty{display:none;}
#leg-settings-status{flex-basis:100%;color:var(--cyan);}
.playback-camera-controls .comfort-view-control{display:flex;align-items:center;gap:5px;cursor:pointer;min-height:28px;}
.comfort-view-control input{width:16px;height:16px;margin:0;accent-color:var(--cyan);}
.comfort-view-control .point-flag-toggle{min-height:28px;padding:3px 5px;font-size:.72rem;background:transparent;border:0;border-radius:5px;}
.comfort-view-control .point-flag-mark{width:15px;height:15px;flex-basis:15px;}
.comfort-view-control{flex-wrap:wrap;gap:6px;}
.playback-camera-controls .comfort-factor{display:flex;align-items:center;gap:4px;margin:0;font-size:.7rem;white-space:nowrap;}
.comfort-factor input{width:58px;min-width:0;min-height:28px;height:28px;padding:3px 5px;box-sizing:border-box;color:var(--text);background:#071b2b;border:1px solid #42627a;border-radius:5px;font-size:.75rem;}
.comfort-factor input:disabled{opacity:.5;}
.comfort-factor input[aria-invalid="true"]{border-color:#ee7777;}
.comfort-status{flex-basis:100%;font-size:.68rem;color:var(--muted);line-height:1.25;}
.comfort-presets{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.comfort-presets[hidden],.comfort-status[hidden]{display:none;}
.comfort-presets button{padding:5px 8px;min-height:32px;}
@media(max-width:600px){.playback-camera-controls .comfort-view-control,.comfort-view-control .point-flag-toggle{min-height:44px;}.comfort-presets button{min-height:44px;}}
@media(max-width:600px){.comfort-factor input{height:44px;min-height:44px;width:68px;}}
@media(min-width:601px){
  .stop-options-grid{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:auto;gap:6px;}
  .route-points .stop-options-grid>.point-flag-toggle,.route-points .stop-options-grid>select{height:auto;min-height:34px;padding:4px 6px;font-size:.74rem;line-height:1.2;}
  .route-points .stop-options-grid .point-flag-mark{width:15px;height:15px;flex-basis:15px;}
  .point-structure-fields .point-flag-toggle{min-height:34px;padding:5px 8px;}
}
@media(max-width:600px){
  .point-arrival-fields,.stop-arrival{grid-template-columns:repeat(2,minmax(0,1fr));}
  .playback-main-actions,.playback-export-actions{width:100%;}
  .leg-settings-target{flex-basis:100%;}
  .leg-settings-apply button{min-height:44px;}
}
.offline-export{border-top:1px solid #42627a;margin-top:12px;padding-top:10px;display:grid;gap:8px;}
.offline-export h3,.offline-export p{margin:0;}
.offline-export h3{font-size:.95rem;}
.offline-export progress{width:100%;height:12px;accent-color:var(--cyan);}
.offline-export [hidden]{display:none;}
.offline-export button{min-height:36px;}
#offline-video-status{overflow-wrap:anywhere;}
@media(max-width:600px){.offline-export button{min-height:44px;}}
