#sponsor{position:fixed;z-index:6;bottom:max(18px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:17px;padding:13px 25px;background:#151a24;color:#fff;border:1px solid #ffffff25;border-radius:20px;box-shadow:0 8px 30px #151a2440;max-width:calc(100vw - 28px);width:max-content;pointer-events:none}
.sponsor-label{font-size:14px;color:#c4cbd6;border-left:1px solid #ffffff30;padding-left:17px}.camp-wordmark{font-size:25px;font-weight:900;line-height:1.1;letter-spacing:-.05em;color:#ffb0cf;display:block}.sponsor-description{display:block;font-size:14px;line-height:1.5;margin-top:4px;color:#f1edf4}
#selected{bottom:112px}.stamp{bottom:20px}

#splash{position:fixed;inset:0;z-index:20;background:#fff;min-height:100dvh;text-align:center}#splash[hidden],.intro-stage[hidden]{display:none}
.intro-stage{position:absolute;inset:0;display:grid;place-items:center;overflow:hidden}
#intro-image{width:100%;height:100%;object-fit:contain;display:block;background:white}
.intro-progress{position:absolute;bottom:max(28px,env(safe-area-inset-bottom));left:12%;right:12%;height:5px;border-radius:9px;background:#e5eef3;overflow:hidden;direction:ltr}
.intro-progress span{display:block;height:100%;background:#168bb6;transform:scaleX(0);transform-origin:left}
#intro-logo.running .intro-progress span{animation:intro-progress 2s linear forwards}
#intro-sponsor{background:#151a24;color:#fff;padding:28px}.splash-content{width:min(100%,560px)}
.splash-kicker{display:block;font-size:22px;color:#f3c4d6}.splash-wordmark{font-size:clamp(66px,15vw,112px);font-weight:950;line-height:1.2;letter-spacing:-.065em;color:#ffb0cf;margin:22px 0 10px;text-shadow:0 0 45px #ff80b32c}
.splash-description{font-size:clamp(19px,4.7vw,27px);line-height:1.5;margin:0}.splash-invitation{font-size:24px;margin-top:30px;color:#fff}
@keyframes intro-progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
#pin{width:28px;height:64px;border:0;border-radius:0;background:none;box-shadow:none;pointer-events:none;transform-origin:50% 100%;align-items:flex-end;justify-content:center}
.beacon-beam{position:absolute;bottom:4px;left:1px;right:1px;height:60px;background:linear-gradient(to top,#00b7e8bb, #00b7e844 40%,#00b7e800);clip-path:polygon(0 0,100% 0,56% 100%,44% 100%);animation:beacon-glow 1.8s ease-in-out infinite}
.beacon-dot{position:absolute;bottom:0;left:11px;width:6px;height:6px;border-radius:50%;background:#00a9d6;box-shadow:0 0 5px #00b7e8,0 0 13px #00b7e8aa;outline:1px solid #fff}
@keyframes beacon-glow{50%{opacity:.45}}
@media(max-width:600px){#sponsor{padding:10px 19px;gap:13px;bottom:max(12px,env(safe-area-inset-bottom))}.sponsor-label{padding-left:13px}.camp-wordmark{font-size:23px}.sponsor-description{font-size:14px}#selected{bottom:103px;max-width:calc(100% - 84px);padding:9px 14px}.controls{bottom:155px}.stamp{bottom:103px;max-width:calc(100% - 26px);font-size:12px}body:has(#selected[style*="block"]) .stamp{display:none}}
@media(prefers-reduced-motion:reduce){.beacon-beam{animation:none}}

/* Compact floating sponsorship badge. */
#sponsor{transform:translateX(-50%) scale(.5);transform-origin:center bottom;opacity:.5}

/* Five-times larger light beam, anchored above the selected map label. */
#pin{width:140px;height:320px}
.beacon-beam{left:5px;right:5px;bottom:10px;height:300px;background:linear-gradient(to top,#009de9f2 0%,#00b7e8a6 32%,#00b7e84d 70%,#00b7e800 100%);filter:drop-shadow(0 0 12px #00a8e866)}
.beacon-dot{left:64px;bottom:4px;width:12px;height:12px;background:#00a7e8;outline:2px solid white;box-shadow:0 0 10px #00b7e8,0 0 24px #00b7e8cc,0 0 42px #00b7e877}
@keyframes beacon-glow{50%{opacity:.75}}

:root{font-family:system-ui,-apple-system,Arial,sans-serif;color:#192330;background:#0e1725;font-size:16px;--accent:#ff785d;--ink:#151a24;--blue:#00b7e8;--line:#e4e9ef}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid var(--line);border-radius:12px;background:white;color:var(--ink);padding:11px 15px;min-height:44px}button:hover{background:#f2f6fa}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #008fbf;outline-offset:3px}[hidden]{display:none!important}input:not([type=checkbox]){width:100%;border:1px solid #d6dde5;background:#f7f9fb;border-radius:12px;padding:13px;color:var(--ink);min-width:0}input[type=checkbox]{width:22px;height:22px;accent-color:#008fbf;flex-shrink:0}label{display:block;font-size:14px;font-weight:650;margin:14px 0 8px}h1,h2,h3,p{margin-top:0}p{line-height:1.6}h2{font-size:24px}a{color:#007da6}#map,#canvas-host{position:fixed;inset:0;touch-action:none;direction:ltr}#canvas-host{overflow:hidden}#canvas-host canvas{position:absolute;inset:0;display:block;width:100%;height:100%}#map-loading{position:absolute;inset:0;display:grid;place-content:center;color:#fff;background:#101b2c}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}aside{position:fixed;top:24px;right:24px;width:365px;background:white;border-radius:24px;overflow:hidden;z-index:5;box-shadow:0 12px 40px #0003}.heading{background:var(--ink);color:white;padding:20px 22px}.eyebrow{display:flex;justify-content:space-between;font-size:14px;color:#a8b6c6}.brand{color:var(--accent);font-weight:800;letter-spacing:.02em}.title-row{display:flex;justify-content:space-between;align-items:center;margin-top:10px}h1{font-size:27px;letter-spacing:-.035em;margin:0}.map-pill{font-size:14px;background:#ffffff15;border:1px solid #ffffff28;padding:5px 9px;border-radius:9px;direction:ltr}.search-section{padding:14px 16px}.search{position:relative}.search input{padding-left:42px}#clear{position:absolute;left:2px;top:2px;border:0;background:transparent;font-size:26px;width:42px;min-height:42px;padding:0;color:#667789}.quick-actions{display:flex;padding:0 16px 15px;gap:8px}.quick-actions button{font-size:14px;flex:1;padding:9px 6px}.meta,.note{font-size:14px;color:#657283}.meta{margin:10px 0}.note{border-top:1px solid var(--line);padding-top:10px;margin-bottom:0}#results{max-height:32dvh;overflow:auto}.result{display:flex;justify-content:space-between;align-items:center;width:100%;background:#fff;border:0;border-bottom:1px solid var(--line);border-radius:0;text-align:right;padding:12px 4px;gap:10px}.result strong{display:block;font-size:16px}.result small{display:block;font-size:14px;color:#718096;margin-top:3px}.result-mark{color:#008fbf;background:#e8f9ff;padding:8px;border-radius:10px}.controls{position:fixed;left:24px;top:24px;display:flex;flex-direction:column;gap:8px;z-index:4}.controls button{width:48px;height:48px;box-shadow:0 3px 12px #0002;font-size:24px;padding:0}.controls #mode{font-size:16px;font-weight:800}.controls #mode[aria-pressed=true]{background:#d9f6ff;color:#007b9e;border-color:#8ad9ed}#selected{position:fixed;right:24px;bottom:94px;width:365px;z-index:4;background:white;border:1px solid #ffffff88;border-radius:22px;box-shadow:0 16px 40px #0003;padding:22px;color:var(--ink);text-align:right;max-height:48dvh;overflow:auto;left:auto;transform:none}#selected h2{margin:6px 0 8px;padding-left:28px}#selected .kicker{font-size:14px;color:#667789}.close{position:absolute;top:10px;left:10px;background:transparent;border:0;font-size:26px;padding:0;width:38px;min-height:38px}#place-note{font-size:14px;color:#667789;margin-bottom:14px}.place-actions{display:flex;gap:8px}.place-actions button{flex:1;font-size:14px}.primary{background:var(--ink);color:white;border-color:var(--ink);font-weight:700}.primary:hover{background:#273448;color:white}.full{width:100%;margin-top:12px}.kicker{font-size:14px;letter-spacing:.03em;color:#697789}.bottom-info{position:fixed;bottom:16px;left:20px;display:flex;gap:10px;align-items:center;z-index:3;font-size:14px;color:#e1eaf4;background:#142133e6;padding:8px 12px;border-radius:12px}.bottom-info a{color:#d5edff}.bottom-info button{font-size:14px;background:none;color:#d5edff;border:0;padding:0;min-height:30px}.bottom-info span{border-left:1px solid #ffffff36;padding-left:10px}#toast{position:fixed;left:50%;transform:translateX(-50%);bottom:100px;width:max-content;max-width:min(540px,calc(100% - 32px));padding:14px 20px;color:white;background:#142133;border:1px solid #758ca0;border-radius:14px;z-index:35;box-shadow:0 8px 30px #0004;text-align:center;line-height:1.5}#route-summary{position:fixed;left:50%;transform:translateX(-50%);top:24px;max-width:calc(100% - 850px);background:#102b38e8;color:white;border:1px solid #35cbf0;border-radius:14px;padding:12px 16px;z-index:4;line-height:1.5;font-size:14px}#route-summary button{color:#fff;border:0;background:none;min-height:24px;padding:0 12px;font-size:22px}dialog{width:min(560px,calc(100% - 24px));border:0;border-radius:24px;padding:0;color:var(--ink);max-height:85dvh;box-shadow:0 25px 80px #0006}dialog::backdrop{background:#071326b8;backdrop-filter:blur(5px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;padding:20px 22px;margin:0;border-bottom:1px solid var(--line);position:sticky;top:0;background:white;z-index:2}.dialog-head h2{margin:4px 0;font-size:22px}.dialog-head button{border:0;font-size:27px;padding:0;min-width:38px}.dialog-body{padding:22px}.dialog-body h3{font-size:19px}.notice{font-size:14px;line-height:1.7;background:#fff3e9;border-right:3px solid #f2934a;padding:12px;margin-top:20px;border-radius:7px}.error{color:#b53a2b;margin:12px 0 0}.gallery{display:grid;grid-template-columns:1fr 1fr;gap:12px}.gallery figure{margin:0}.gallery img{width:100%;height:150px;object-fit:cover;border-radius:12px;background:#edf2f7}.gallery figcaption{font-size:14px;margin-top:6px}.gallery .empty{grid-column:1/-1;background:#f3f6fa;border-radius:14px;padding:22px;color:#657283;text-align:center}.upload-box{margin-top:24px;border-top:1px solid var(--line);padding-top:22px}.upload-box p{font-size:14px;color:#657283}.check{display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:1.6;font-weight:400}.link-button{display:block;text-decoration:none;text-align:center;padding:13px;border-radius:12px}.tabs{display:flex;gap:6px;margin-bottom:20px;flex-wrap:wrap}.tabs button{font-size:14px;padding:10px;flex:1}.tabs .active{background:#e6f7ff;border-color:#6ac7e5;color:#006b8e}.review-card{border:1px solid var(--line);border-radius:14px;padding:12px;margin-bottom:14px}.review-card img{width:100%;max-height:280px;object-fit:contain;background:#f3f6fa;border-radius:9px}.review-card h3{margin:10px 0}.review-card p{font-size:14px}.review-actions{display:flex;gap:8px}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}.field-pair input{direction:ltr}#calibration-panel p{font-size:14px}#cal-points{padding-right:24px;font-size:14px;line-height:2}#cal-points button{font-size:14px;min-height:28px;padding:1px 8px;margin-right:8px}#upload-preview{max-height:200px;max-width:100%;margin-top:12px;border-radius:12px}#photo-preview{display:flex;gap:8px;margin-top:12px;overflow:hidden}#photo-preview img{width:82px;height:58px;object-fit:cover;border-radius:8px}#photo-preview:empty{display:none}
@media(max-width:650px){aside{left:12px;right:12px;top:max(12px,env(safe-area-inset-top));width:auto;border-radius:20px}.heading{padding:13px 17px}.title-row{margin-top:5px}h1{font-size:23px}.search-section{padding:10px 13px}.quick-actions{padding:0 13px 11px}.quick-actions button{min-height:39px}.controls{left:12px;top:auto;bottom:105px;gap:6px}.controls button{width:44px;height:44px}.bottom-info{bottom:12px;left:10px;right:10px;justify-content:center;gap:8px;font-size:12px;padding:6px}.bottom-info button{font-size:12px}#selected{right:12px;left:68px;bottom:103px;width:auto;max-width:none;max-height:40dvh;padding:16px;border-radius:18px}#selected h2{font-size:22px}#selected .kicker{font-size:14px}.place-actions{flex-wrap:wrap}.place-actions button{padding:10px 8px}#route-summary{top:225px;left:12px;right:12px;max-width:none;transform:none;font-size:13px}#toast{bottom:78px;font-size:14px}dialog{max-height:88dvh;border-radius:20px}.dialog-body{padding:18px}.gallery img{height:130px}#sponsor{bottom:56px!important}.bottom-info span{font-size:12px}.eyebrow{font-size:13px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
#route-summary{left:92px;right:413px;transform:none;max-width:none;display:flex;align-items:center;justify-content:space-between;gap:12px;border-color:#ff9588;background:#172333f2;padding:10px 14px}
#route-summary-text{min-width:0;overflow-wrap:anywhere}
#route-summary-text strong,#route-summary-text small{display:block}
#route-summary-text strong{font-size:15px}
#route-summary-text small{font-size:13px;color:#d6e1ec;margin-top:3px}
#route-summary button{min-width:44px;min-height:44px;padding:0;flex-shrink:0}
#navigate:disabled{cursor:default}
@media(max-width:650px){#route-summary{left:12px;right:12px;top:var(--panel-bottom,225px)}}

.controls #tilt{font-size:14px;font-weight:700;color:#007b9e;background:#effbff}.controls #tilt:disabled{cursor:default;opacity:.4}
.camp-combobox{position:relative}.camp-suggestions{margin-top:6px;border:1px solid #9bcddc;border-radius:12px;overflow-y:auto;max-height:190px;background:#fff;box-shadow:0 8px 22px #102b3814;overscroll-behavior:contain}.camp-suggestions button{display:block;width:100%;min-height:46px;text-align:right;border:0;border-bottom:1px solid #e4e9ef;border-radius:0;font-size:16px;padding:11px 14px}.camp-suggestions button:last-child{border-bottom:0}.camp-suggestions button[aria-selected=true]{background:#e4f7ff;color:#006d8e}.suggestions-empty{padding:12px 14px;margin:0;font-size:14px;color:#667789}
#search-panel,.bottom-info,.controls{transition:opacity .3s ease}.route-active #search-panel,.route-active .bottom-info{opacity:.1}.route-active .controls{opacity:.3}.route-active .route-tools-awake,.route-active #search-panel:focus-within,.route-active .bottom-info:focus-within,.route-active .controls:focus-within{opacity:1}
#route-summary{top:auto;bottom:90px;left:92px;right:24px;z-index:6;align-items:flex-start;max-height:46dvh;overflow:auto}#route-summary-text{flex:1}#route-distance{display:block;font-size:16px;font-weight:700;color:#a6eaff;margin-top:5px}#route-instructions>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;gap:8px;font-size:14px;color:#fff;text-decoration:underline;text-underline-offset:3px}#route-instructions>summary:before{content:'+';font-size:21px;text-decoration:none}#route-instructions[open]>summary:before{content:'−'}#route-steps{padding-inline-start:22px;margin:6px 0 0}#route-steps li{padding:5px 0 10px 6px;font-size:15px;line-height:1.65}#route-steps li::marker{color:#a6eaff;font-weight:700}.route-disclaimer{font-size:13px;color:#c1ccda;border-top:1px solid #ffffff24;padding-top:10px;margin:4px 0}
@media(hover:hover){.route-active #search-panel:hover,.route-active .bottom-info:hover,.route-active .controls:hover{opacity:1}}
@media(max-width:650px){#route-summary{top:auto;left:72px;right:12px;bottom:104px;padding:10px 12px;gap:4px}#route-summary-text strong{font-size:14px}#route-distance{font-size:15px}.camp-suggestions{max-height:165px}}
@media(prefers-reduced-motion:reduce){#search-panel,.bottom-info,.controls{transition:none}}

.offline-panel{padding:0 16px 10px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.offline-panel button{border:1px solid #e57717;border-radius:10px;background:#ff941f;color:#291600;font:inherit;font-size:13px;font-weight:700;padding:7px 10px;min-height:36px;cursor:pointer}.offline-panel button:disabled{opacity:.65;cursor:wait}.offline-panel small{flex:1;min-width:110px;font-size:11px;color:#617183;line-height:1.4}

.photo-delete{display:block;min-height:44px;margin:10px auto;color:#a52236;border:1px solid #d9a0a9;background:#fff3f4;padding:8px 18px;border-radius:12px}

.photo-delete-note{font-size:14px;line-height:1.5;padding:0 12px;text-align:center}.photo-delete-cancel{min-height:44px;margin:6px auto;display:block}.photo-delete-cancel[hidden]{display:none}

/* Shared bus stops: exact map anchors; editing never changes the camp catalog. */
.bus-map-badges{position:absolute;inset:0;pointer-events:none;z-index:4}.bus-map-pin{position:absolute;transform:translate(-50%,-100%);pointer-events:auto;width:34px;height:39px;border:2px solid #ffe08c;border-radius:13px 13px 13px 2px;background:#116e91;color:white;font-size:24px;padding:0;box-shadow:0 3px 12px #062f4755;touch-action:manipulation}.bus-map-pin.draft{outline:3px dashed #ffbe42}.bus-map-pin[hidden]{display:none}.bus-code-row{display:flex;gap:10px}.bus-code-row input{min-width:0;width:100px;font-size:22px;letter-spacing:5px}#bus-dialog{width:min(94vw,480px);max-height:85dvh}#bus-dialog .dialog-body{display:grid;gap:16px}#bus-name{width:100%;font-size:18px;padding:12px}#bus-status{margin:0;color:#146474}#bus-list{display:grid;gap:8px}.bus-list-item{text-align:right;padding:12px}.bus-edit-actions{display:flex;gap:8px;flex-wrap:wrap}.bus-help{font-size:13px;color:#647581}.bus-pick-bar{position:fixed;bottom:110px;left:50%;transform:translateX(-50%);z-index:25;background:#174252;color:white;padding:14px;border:2px solid #ffd056;border-radius:16px;width:min(90vw,430px);display:flex;align-items:center;gap:12px;box-shadow:0 8px 30px #0005}.bus-pick-bar[hidden]{display:none}.bus-picking #canvas-host{cursor:crosshair}.bus-picking .photo-map-badges,.bus-picking .sos-map-badges,.bus-picking .landmark-map-badges{pointer-events:none!important}.bus-picking .photo-map-badges *,.bus-picking .sos-map-badges *,.bus-picking .landmark-map-badges *{pointer-events:none!important}.fpv-active .bus-map-badges{display:none}#bus-open{color:#ffe08c;background:#1f596d}

#sos-open{position:fixed;left:24px;top:368px;z-index:8;min-height:48px;width:64px;padding:8px 4px;border:2px solid #fff;border-radius:14px;background:#d6213b;color:#fff;font:800 18px system-ui,-apple-system,Arial;letter-spacing:.03em;box-shadow:0 4px 18px #a6002855;cursor:pointer;opacity:1}
#sos-open:hover{background:#a91729}
#sos-open:focus-visible,#sos-dialog button:focus-visible,#sos-dialog summary:focus-visible{outline:3px solid #007dba;outline-offset:3px}
#sos-dialog{width:min(680px,calc(100% - 24px));max-width:none;max-height:88vh;max-height:88dvh;padding:0;border:1px solid #ffffffa0;border-radius:24px;color:#203246;background:#f3f6fa;box-shadow:0 25px 80px #0006;font-family:system-ui,-apple-system,Arial;overflow:auto;overscroll-behavior:contain;scroll-padding-top:110px}
#sos-dialog::backdrop{background:#071326bf;backdrop-filter:blur(6px)}
#sos-dialog .sos-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0;padding:20px 22px;border:0;background:radial-gradient(circle at 10% 0,#ff697033,transparent 48%),linear-gradient(115deg,#6e1732,#a31d39);color:white;position:sticky;top:0;z-index:2;box-shadow:0 4px 18px #59152d12}
#sos-dialog .sos-heading{display:flex;align-items:center;gap:12px;min-width:0}
#sos-dialog .sos-badge{display:grid;place-items:center;flex-shrink:0;width:52px;height:52px;border:1px solid #ffffff66;border-radius:17px;background:#ffffff14;box-shadow:inset 0 1px #ffffff30;font-size:18px;font-weight:850;letter-spacing:.04em;direction:ltr}
#sos-dialog h2{font-size:25px;line-height:1.2;margin:0;font-weight:800;letter-spacing:-.025em}
#sos-dialog .sos-head small{display:block;color:#ffdae2;font-size:12px;margin-top:5px}
#sos-dialog .sos-head button{flex-shrink:0;width:44px;min-width:44px;height:44px;min-height:44px;padding:0;border:1px solid #ffffff40;background:#ffffff0d;color:white;border-radius:50%;font:27px system-ui;cursor:pointer}
#sos-dialog .sos-head button:hover{background:#ffffff22}
#sos-dialog .sos-head button:focus-visible{outline-color:#ffd9b2;outline-offset:2px}
#sos-dialog .sos-body{padding:17px;background:radial-gradient(ellipse at top right,#fff6f1,transparent 60%),#f3f6fa}
#sos-dialog #sos-description{font-size:14px;line-height:1.55;margin:0 2px 15px;color:#586b7d}
#sos-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px}
#sos-dialog .sos-row{--sos-accent:#bd2545;--sos-tint:#fff0f2;--sos-border:#f0cad3;min-width:0;overflow:hidden;border:1px solid var(--sos-border);border-radius:19px;background:#fff;box-shadow:0 4px 14px #15314708}
#sos-dialog .sos-row[data-aid=clinic],.sos-map-item[data-aid=clinic]{--sos-accent:#cc273d;--sos-tint:#fff0f1;--sos-border:#f4cbd2}
#sos-dialog .sos-row[data-aid=safe-zone],.sos-map-item[data-aid=safe-zone]{--sos-accent:#087666;--sos-tint:#e8f8f1;--sos-border:#bae2d4}
#sos-dialog .sos-row[data-aid=command],.sos-map-item[data-aid=command]{--sos-accent:#2c5bb3;--sos-tint:#edf3ff;--sos-border:#c6d8f5}
#sos-dialog .sos-row[data-aid=mita],.sos-map-item[data-aid=mita]{--sos-accent:#7950a6;--sos-tint:#f6efff;--sos-border:#dcc9ed}
#sos-dialog .sos-row[data-aid=soul-talks],.sos-map-item[data-aid=soul-talks]{--sos-accent:#a33172;--sos-tint:#fff0f8;--sos-border:#efc9df}
#sos-dialog .sos-row[data-aid=lost-children],.sos-map-item[data-aid=lost-children]{--sos-accent:#9c5909;--sos-tint:#fff5df;--sos-border:#efd29e}
#sos-dialog .sos-row[data-aid=nomads],.sos-map-item[data-aid=nomads]{--sos-accent:#08748a;--sos-tint:#e9f8fc;--sos-border:#bce2ec}
#sos-dialog .sos-option{display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center;width:100%;min-height:180px;padding:15px 10px 12px;border:0;border-radius:18px 18px 0 0;background:linear-gradient(165deg,var(--sos-tint),#fff 78%);color:#203246;font:inherit;cursor:pointer}
#sos-dialog .sos-option:hover{background:var(--sos-tint)}
#sos-dialog .sos-option:focus-visible{outline-color:var(--sos-accent);outline-offset:-4px}
#sos-dialog .sos-option:active .sos-icon{transform:scale(.94)}
#sos-dialog .sos-option:disabled{cursor:wait;opacity:.55}
#sos-dialog .sos-icon{display:grid;place-items:center;width:64px;height:64px;margin:0 0 3px;border:1px solid #fff;border-radius:20px;background:var(--sos-tint);color:var(--sos-accent);box-shadow:0 3px 10px #17314708;transition:transform .15s}
#sos-dialog .sos-icon svg{display:block;width:50px;height:50px}
#sos-dialog .sos-option strong{font-size:19px;line-height:1.3;font-weight:800;overflow-wrap:anywhere}
#sos-dialog .sos-caption{color:#5c6b7a;font-size:12px;line-height:1.3}
#sos-dialog .sos-action{display:flex;align-items:center;justify-content:center;gap:7px;font-size:13px;line-height:1.4;font-weight:700;color:var(--sos-accent);margin-top:auto;padding-top:6px}
#sos-dialog .sos-action span{display:flex}
#sos-dialog .sos-action svg{width:17px;height:17px}
#sos-dialog .sos-about{border-top:1px solid var(--sos-border);background:#ffffffa6}
#sos-dialog .sos-about summary{padding:10px 12px 8px;list-style:none;cursor:pointer;min-height:44px}
#sos-dialog .sos-about summary::-webkit-details-marker{display:none}
#sos-dialog .sos-description{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap;overflow-wrap:anywhere;color:#586b7d;font-size:12px;line-height:1.55}
#sos-dialog .sos-about[open] .sos-description{display:block;overflow:visible;-webkit-line-clamp:unset}
#sos-dialog .sos-more{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--sos-accent);font-size:12px;line-height:1.5;font-weight:700;margin-top:6px}
#sos-dialog .sos-more::after{content:'+';font-size:19px;line-height:1}
#sos-dialog .sos-about[open] .sos-more::after{content:'−'}
#sos-dialog .sos-edit{display:block;width:calc(100% - 20px);margin:0 10px 10px;padding:8px;border:1px solid var(--sos-border);border-radius:10px;background:var(--sos-tint);color:var(--sos-accent);min-height:44px;font:600 13px system-ui;cursor:pointer}
#sos-dialog .sos-disclaimer{display:flex;align-items:flex-start;gap:8px;margin:16px 3px 1px;padding:0;color:#637487;font-size:12px;line-height:1.55}
#sos-dialog .sos-disclaimer svg{width:17px;height:17px;flex-shrink:0;margin-top:1px}
@media(min-width:560px){#sos-options{grid-template-columns:repeat(3,minmax(0,1fr))}#sos-dialog .sos-body{padding:20px}}
@media(max-width:650px){#sos-open{left:12px;top:auto;bottom:max(56px,calc(env(safe-area-inset-bottom) + 44px));width:54px;min-height:44px;font-size:17px}}
@media(max-width:420px){#sos-dialog .sos-head{padding:15px}#sos-dialog h2{font-size:23px}#sos-dialog .sos-badge{width:46px;height:46px;border-radius:15px;font-size:16px}#sos-dialog .sos-body{padding:13px}#sos-options{gap:10px}#sos-dialog .sos-option{min-height:172px;padding:12px 8px 10px}#sos-dialog .sos-option strong{font-size:18px}#sos-dialog .sos-about summary{padding:9px 10px 7px}}
@media(max-width:340px){#sos-options{grid-template-columns:minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){#sos-dialog .sos-icon{transition:none}}

/* Persistent, screen-sized aid badges above both 3D and 2D maps. */
.sos-map-badges{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:2}
.sos-map-item{position:absolute;inset:0;pointer-events:none;color:var(--sos-accent,#bd2545)}
.sos-map-item[hidden],.sos-map-link[hidden],.sos-map-anchor[hidden]{display:none!important}
.sos-map-badge{position:absolute;display:grid;place-items:center;pointer-events:auto;transform:translate(-50%,-50%);width:30px;height:30px;min-height:30px;padding:5px;border:2px solid var(--sos-accent,#bd2545);border-radius:50%;background:#fff;color:inherit;box-shadow:0 2px 9px #09244355;touch-action:manipulation;cursor:pointer}
.sos-map-badge svg{display:block;width:16px;height:16px;pointer-events:none}
.sos-map-badge:hover,.sos-map-badge:focus-visible{background:var(--sos-tint,#fff0f2);outline:3px solid var(--sos-accent,#bd2545);outline-offset:4px}
.sos-map-item:focus-within{z-index:3}
.sos-map-link{position:absolute;height:0;border-top:1px dotted currentColor;transform-origin:0 0;filter:drop-shadow(0 1px 1px white);opacity:.85}
.sos-map-anchor{position:absolute;transform:translate(-50%,-50%);width:6px;height:6px;border:1px solid white;border-radius:50%;background:currentColor;box-shadow:0 1px 4px #09244355}

.place-details{border-top:1px solid #dce3ea;margin-top:16px;padding-top:12px;text-align:right}.place-details small{font-size:14px;color:#637386}.place-details .place-description{font-size:15px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;margin:6px 0 10px}.place-details button{font:14px system-ui;min-height:44px;padding:9px 12px;border:1px solid #c5d3df;border-radius:10px;background:#f3f8fc;color:#12486a;cursor:pointer}#gallery-details{margin:0 0 20px;border:0;padding:0}
#details-dialog{width:min(540px,calc(100% - 24px));max-height:90dvh;padding:0;border:0;border-radius:20px;background:#fff;color:#192330;font-family:system-ui,-apple-system,Arial;box-shadow:0 20px 70px #0005}#details-dialog::backdrop{background:#071326b8;backdrop-filter:blur(4px)}.details-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid #e4e9ef;margin:0}.details-head h2{font-size:22px;margin:0}.details-head button{border:0;background:#fff;color:#192330;font-size:27px;min-width:44px;min-height:44px;cursor:pointer}.details-body{padding:20px}.details-body label{display:block;font-size:16px;font-weight:700;margin:0 0 10px}.details-body p,.details-body small{font-size:14px;line-height:1.65;color:#536273}.details-body textarea{display:block;width:100%;resize:vertical;border:1px solid #a9bacb;border-radius:12px;background:#f7f9fb;color:#192330;padding:13px;font:16px/1.65 system-ui;min-height:150px;box-sizing:border-box}.details-body small{display:block;margin:8px 0 12px}.details-body button{font:600 16px system-ui;width:100%;padding:12px;border:1px solid #b9ccdd;border-radius:12px;background:#eef7ff;color:#192330;cursor:pointer;min-height:44px;margin-top:8px}#details-save{background:#152b40;color:#fff}#details-save:disabled{opacity:.5;cursor:wait}#details-status{margin:12px 0 0;white-space:pre-wrap}#details-dialog :focus-visible{outline:3px solid #009dcc;outline-offset:3px}#details-dialog [hidden]{display:none!important}
body:has(#plane) #selected{max-height:42dvh;overflow:auto}body:has(#plane) #selected .place-details small{color:#bdd3e7}

#edit-audit-panel{overflow-wrap:anywhere}#edit-audit-panel p{white-space:pre-wrap}#edit-audit-panel button{margin:4px;min-height:44px}#edit-audit-panel details{margin:12px 0}#edit-audit-panel summary{cursor:pointer;font-weight:700}.audit-entry,.audit-source{padding:14px;margin:12px 0;border:1px solid #cedae3;border-radius:14px;background:#f6f9fc;color:#223347}.audit-entry small{display:block;direction:ltr;text-align:right}#admin-dialog .tabs{flex-wrap:wrap}

.sign-design-open{margin-inline-start:8px!important;background:#fff2d4!important;border-color:#d4ad53!important;color:#745008!important}
/* Personal neon studio — shared renderer, transparent-light preview. */
#sign-dialog{width:min(960px,calc(100% - 24px));max-height:94dvh;padding:0;border:1px solid #a85fcd66;border-radius:23px;background:#131521;color:#f9eafa;font-family:system-ui;overflow:auto}#sign-dialog::backdrop{background:#090919c9;backdrop-filter:blur(5px)}#sign-dialog .details-head{position:sticky;top:0;background:#181724f2;z-index:2;border-bottom:1px solid #ffffff12;padding:17px 22px;backdrop-filter:blur(10px)}#sign-dialog .details-head h2{font-size:20px;margin:4px 0 0;color:#f9eafa}#sign-dialog .details-head button{background:#ffffff0b;color:#e8d8e9;border:1px solid #ffffff1c;border-radius:50%}.neon-eyebrow{font-size:9px;letter-spacing:2.2px;color:#ff91d4}#sign-dialog .details-body{padding:20px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;direction:ltr}#sign-dialog .details-body>div{direction:rtl}#sign-dialog :focus-visible{outline:3px solid #54eee0;outline-offset:3px}#sign-dialog [hidden]{display:none!important}.sign-preview-column,.sign-options{min-width:0}.sign-preview-column{align-self:start;position:sticky;top:110px}.sign-preview-stage{position:relative;padding:24px 14px 16px;min-height:245px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px;border-radius:17px;background:radial-gradient(ellipse at 50% 45%,#47314b60,transparent 70%),repeating-linear-gradient(0deg,#ffffff02 0 1px,transparent 1px 37px),#0b0e18;border:1px solid #b79cc923;box-shadow:inset 0 0 45px #0005}.sign-preview-stage canvas{max-width:100%;max-height:150px;width:auto;height:auto}.sign-preview-stage small{font-size:10px;color:#9292a6;margin:0}.neon-stage-label{font-size:11px;letter-spacing:.4px;color:#b9adbf}.sign-intro{font-size:12px;color:#b6a9bd;line-height:1.8;text-align:center;margin:16px 0}#sign-preview-motion{font-size:10px;padding:6px 12px;border-radius:20px;background:#ffffff08;color:#cab7d2;border:1px solid #ffffff16;min-height:32px}#sign-presets{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:12px}#sign-presets button{color:var(--preset-color);background:#171622;border:1px solid color-mix(in srgb,var(--preset-color) 40%,transparent);border-radius:12px;padding:11px 5px;font-size:12px;text-shadow:0 0 10px var(--preset-color)}.sign-controls{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 18px}.sign-controls label{font-size:12px!important;min-width:0;color:#e6d8e8}.sign-controls select,.sign-controls input{display:block;width:100%;height:42px;box-sizing:border-box;border:1px solid #ffffff26;background:#222231;color:#fff;border-radius:10px;margin-top:8px;font:13px system-ui;padding:7px}.sign-controls input[type=color]{cursor:pointer}.sign-controls input:disabled{opacity:.25;cursor:default}#sign-dialog fieldset{padding:0;border:0;margin:0}#sign-dialog legend{font-weight:650;font-size:12px;margin-bottom:10px;color:#efe0f1}.sign-color-pair{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:22px}.neon-palette{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.neon-palette .neon-swatch{width:30px;height:30px;min-height:30px;padding:0;border:3px solid #131521;border-radius:50%;background:var(--neon-color);box-shadow:0 0 0 1px #ffffff24,0 0 9px color-mix(in srgb,var(--neon-color) 25%,transparent)}.neon-palette .neon-swatch[aria-pressed=true]{box-shadow:0 0 0 2px #fff,0 0 14px var(--neon-color)}.neon-custom-color{display:flex!important;gap:8px;align-items:center;font-size:10px!important;color:#a89bb2;margin-top:12px!important}.neon-custom-color input{width:35px;height:26px;background:transparent;border:1px solid #ffffff30;border-radius:7px;padding:2px}.neon-checkbox{display:flex!important;align-items:center;gap:8px;font-size:11px!important;color:#c8b9ce;margin:0 0 12px!important}.neon-checkbox input{accent-color:#ed78c9;width:16px;height:16px}#sign-dialog .sign-frame-section{margin-bottom:20px}#sign-frames{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}#sign-frames button{padding:7px 4px;margin:0;display:flex;flex-direction:column;align-items:center;gap:5px;background:#0d101b;min-width:0;border:1px solid #ffffff18;border-radius:11px;color:#c8b9ce}#sign-frames button[aria-pressed=true]{border-color:#e67ecd;background:#31213a;box-shadow:0 0 0 1px #e67ecd55}#sign-frames canvas{height:30px;max-width:100%;object-fit:contain}#sign-frames span{font-size:9px}.sign-finish input[type=range]{padding:0;border:0;accent-color:#ff73ce;background:transparent}.sign-finish output{float:left;font-size:11px;color:#59e6d6}.sign-save-area{grid-column:1/-1;padding-top:15px;border-top:1px solid #ffffff15;text-align:center}.sign-save-area #sign-save{background:linear-gradient(110deg,#f778ce,#b6a0ff);color:#231229;border:0;padding:13px 24px;border-radius:12px;font-weight:800;font-size:14px;min-width:210px;box-shadow:0 3px 18px #c17bd324}#sign-save:disabled{opacity:.5;cursor:wait}#sign-reset{background:transparent;border:0;font-size:12px;color:#b7a9be}#sign-status{white-space:pre-wrap;font-size:13px;color:#9bf0df}.sign-save-area small{display:block;color:#958b9e;font-size:10px;margin-top:8px}#sign-reload{background:#313144;color:#f8ddf4}
@media(max-width:680px){#sign-dialog{width:calc(100% - 18px);max-height:95dvh}#sign-dialog .details-head{padding:14px 16px}#sign-dialog .details-head h2{font-size:17px}#sign-dialog .details-body{display:block;padding:14px}.sign-preview-column{position:static}.sign-preview-stage{min-height:150px;padding:14px 10px;gap:10px}.sign-preview-stage canvas{max-height:105px}.sign-preview-stage small{font-size:9px}.sign-intro{margin:12px 0 19px}.sign-options{padding-top:2px}#sign-frames{grid-template-columns:repeat(4,minmax(0,1fr))}.sign-save-area{margin-top:10px}.neon-palette .neon-swatch{width:32px;height:32px}}
@media(prefers-reduced-motion:reduce){#sign-dialog *{animation:none!important;transition:none!important}}

/* Keep the map dominant; color identifies the next action and the destination. */
#search-panel{border:1px solid #ffffff80;box-shadow:0 18px 50px #04172638}.heading{background:linear-gradient(120deg,#102b3f,#151a24 65%);border-bottom:3px solid #ff785d}.heading h1{font-weight:850}.map-pill{color:#a5edff;border-color:#34cce666;background:#123e50}.search input{background:#f1f7fa;border-color:#c3d7e1}.quick-actions button{border-color:#d3e3eb;background:#f4f9fc;font-weight:600}.quick-actions #route-open{color:#08718c;background:#e8f8fc;border-color:#a6dfe9}.result{border-radius:12px;margin:4px 0;border:1px solid #e7eef3;padding:12px}.result:hover,.result:focus-visible{background:#eaf8fd;border-color:#84d5e5}.result-mark{background:#d6f4fc;color:#007b9e}
#selected{border-top:4px solid #15b6d9;background:#fff;box-shadow:0 14px 44px #061c393b}#selected .kicker{display:inline-block;border-radius:7px;background:#e9f7fb;color:#146980;padding:5px 9px;font-weight:650}#selected h2{font-size:27px;letter-spacing:-.025em;margin-top:10px}.place-actions .primary{background:#087c99;border-color:#087c99;box-shadow:0 5px 14px #0786a329}.place-actions .primary:hover{background:#05667e}#photo-preview img{width:94px;height:68px;border:2px solid white;box-shadow:0 2px 10px #173a5b20}.place-details{background:#f5f9fc;border:0;border-radius:12px;padding:14px}.place-details button{background:#fff}#selected .place-details .place-description{margin-bottom:10px}
#route-dialog .dialog-head{background:#14283b;color:#fff;border-bottom:3px solid #17bcdb}#route-dialog .dialog-head button{background:transparent;color:white}#route-dialog .dialog-body{background:#f5f8fb}.destination-banner{display:flex;gap:12px;align-items:center;background:#e0f6f1;color:#0c625b;border:1px solid #a8dbd0;border-radius:14px;padding:14px;margin-bottom:18px}.destination-banner small{display:block;font-size:14px;margin-bottom:4px}.destination-banner strong{display:block;font-size:22px;overflow-wrap:anywhere}.destination-check{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#087b6c;color:white;font-size:22px;flex-shrink:0}.route-field{border:2px solid #dce5ed;background:#fff;border-radius:15px;padding:14px;margin:14px 0}.route-field label{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:16px}.field-number{display:inline-grid;place-items:center;width:27px;height:27px;background:#e5eef5;color:#355369;border-radius:50%;font-size:14px}.field-hint{font-size:14px;color:#587386;margin:0 0 12px}.route-field input:not([type=checkbox]){background:#f4f8fb}.needs-origin{border-color:#00a7cd;box-shadow:0 0 0 4px #0cc7ef24;animation:origin-glow 2.2s ease-in-out 3}.needs-origin .field-number{background:#0786a5;color:white}.needs-origin .field-hint{color:#086a84;font-weight:600}#route-dialog .notice{margin-top:14px;font-size:14px}#route-show{background:#087c99;border-color:#087c99;min-height:50px}#route-show:hover{background:#05667e}#route-dialog .camp-suggestions{max-height:160px}
@keyframes origin-glow{50%{box-shadow:0 0 0 7px #0cc7ef12,0 0 24px #06b1d22b}}
@media(max-width:650px){#selected h2{font-size:23px}.route-field{padding:12px}.destination-banner{padding:12px;margin-bottom:14px}#route-dialog .dialog-body{padding:16px}#route-dialog .camp-suggestions{max-height:140px}}
@media(prefers-reduced-motion:reduce){.needs-origin{animation:none}}

.route-swap{display:flex;align-items:center;justify-content:center;gap:10px;min-height:44px;margin:4px auto 18px;padding:8px 18px;border:1px solid #82d5e5;border-radius:24px;background:#e7f8fc;color:#067c98;font:inherit;font-weight:700;cursor:pointer}.route-swap span{font-size:26px;line-height:1}.route-swap:hover{background:#d1f3fa}.route-swap:focus-visible{outline:3px solid #067c98;outline-offset:3px}

/* Compact search and a permanently clear map-control lane. */
#search-panel .heading{padding:10px 14px}#search-panel .title-row{margin-top:2px}#search-panel h1{font-size:22px}#search-panel .eyebrow{font-size:12px}#search-panel .search-section{padding:8px 12px}#search-panel .search input{padding-top:10px;padding-bottom:10px;min-height:44px}#search-panel .quick-actions{padding:0 12px 9px}#search-panel .quick-actions button{min-height:44px;padding:6px}#mode-label{min-width:44px;min-height:44px;padding:5px 8px}.controls{z-index:7}
.route-summary-actions{display:flex;flex-shrink:0;align-items:center;gap:2px;position:sticky;top:0;background:#172333;border-radius:8px}#route-summary.minimized #route-instructions{display:none}#route-summary.minimized{max-height:none;align-items:center}#route-summary.minimized #route-endpoints{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
@media(max-width:650px){#search-panel{left:68px;right:10px;max-height:calc(100dvh - 120px);overflow-y:auto;border-radius:16px}#search-panel .heading{padding:7px 10px}#search-panel .eyebrow>span:last-child{display:none}#search-panel h1{font-size:20px}#search-panel .search-section{padding:7px 9px}#search-panel .quick-actions{padding:0 9px 8px;gap:5px}#search-panel .quick-actions button{font-size:14px}#route-summary.minimized{left:72px;right:12px}#results{max-height:25dvh}}

.photo-map-badges{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:1}.photo-map-badge{position:absolute;pointer-events:auto;display:grid;place-items:center;transform:translate(-50%,-50%);width:30px;height:30px;min-height:30px;padding:6px;border:2px solid white;border-radius:50%;color:#fff;background:#008c7d;box-shadow:0 2px 9px #003d3855;touch-action:manipulation}.photo-map-badge svg{width:16px;height:16px;display:block}.photo-map-badge:hover,.photo-map-badge:focus-visible{background:#005f55;z-index:2;outline:3px solid #8df2da}#photo-map-legend{font-size:14px;color:#00665b;padding:0 12px 8px;text-align:center}#photo-map-legend span{color:#008c7d}

.photo-map-badge.description-map-badge{background:#E9DDF5;color:#623d7d;border-color:#9162ad;box-shadow:0 2px 8px #63407840}.photo-map-badge.description-map-badge:hover,.photo-map-badge.description-map-badge:focus-visible{background:#dbc6ed;outline-color:#9162ad}.description-photo-dot{position:absolute;right:-4px;bottom:-3px;width:13px;height:13px;padding:1px;border-radius:50%;background:#008c7d;color:white;border:1px solid white;display:grid;place-items:center}.description-photo-dot svg{width:9px;height:9px}

/* WiseWaze / desert afterglow. Everything serves the map, in Hebrew RTL. */
:root{--city-bg:#101a28;--city-panel:#172536;--city-muted:#a4b5c8;--city-border:#ffffff1c;--city-orange:#ffad72;--city-aqua:#74dfd8;--city-pink:#e7a4d5;color-scheme:light}
#map{background:radial-gradient(ellipse at 22% 62%,#3b3942 0,transparent 48%),radial-gradient(ellipse at 80% 20%,#1c3f4a 0,transparent 48%),#101a28}
#map-loading{background:radial-gradient(ellipse at center,#20394a,#101a28);font-weight:650;letter-spacing:.01em}#map-loading:before{content:'✳';color:var(--city-orange);font-size:64px;text-align:center;margin-bottom:16px;animation:city-breathe 2s ease-in-out infinite}
#search-panel{width:368px;background:#142232f5;border:1px solid #93c6cb42;box-shadow:0 24px 64px #050d2550,0 1px 0 #fff1 inset;backdrop-filter:blur(18px);border-radius:24px;color:#f6f3ee;max-height:calc(100dvh - 110px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:#61878d transparent}
#search-panel .heading{padding:17px 20px 12px;background:linear-gradient(135deg,#203545,#152233 75%);border-bottom:0}
#search-panel .eyebrow{align-items:center;gap:12px}#search-panel .brand{font-size:27px;font-weight:800;letter-spacing:-1.2px;color:#f6f4ed;display:flex;align-items:center;gap:6px}.brand-star{font-size:35px;color:var(--city-orange);line-height:1}.brand-dot{color:var(--city-orange);margin-left:-5px}.city-edition{font-size:10px;letter-spacing:2px;line-height:1.45;text-align:left;color:#aabecd}
#search-panel .title-row{margin-top:4px}#search-panel h1{font-size:16px;font-weight:500;letter-spacing:0;color:#b9cbd8}#mode-label{background:#68dacf13;border:1px solid #78d5cf55;color:#a1eee4;font-size:12px;min-width:41px;min-height:30px;border-radius:9px;padding:4px 7px;font-weight:750}
.category-filters{display:flex;align-items:center;gap:4px;padding:5px 14px 8px;white-space:nowrap}.category-filters label{display:flex;align-items:center;justify-content:center;gap:5px;flex:1;margin:0;min-height:40px;padding:6px 4px;border:1px solid transparent;border-radius:10px;color:#91a4b9;font-size:12px;font-weight:650;cursor:pointer;transition:background .18s,color .18s}.category-filters label:has(input:checked){background:#ffffff08;border-color:#ffffff14;color:#ecf2f4}.category-filters input{width:13px;height:13px;margin:0;accent-color:#8cdfd1;cursor:pointer}.category-filters #filter-all{background:transparent;color:#a4b5c8;border:1px solid #ffffff1c;min-height:38px;padding:6px 9px;font-size:12px;border-radius:10px}.category-filters #filter-all[aria-pressed=true]{background:#ffe0bb;color:#493822;border-color:#ffe0bb}.category-dot{width:5px;height:5px;border-radius:50%;flex:none}.category-dot.camp{background:var(--city-aqua)}.category-dot.art{background:var(--city-pink)}.category-dot.service{background:var(--city-orange)}
#search-panel .search-section{padding:0 14px 11px}#search-panel .search input{border:1px solid #b4c8cf4a;background:#f4f5f1;color:#182a35;min-height:48px;border-radius:13px;padding-right:15px;font-size:15px;box-shadow:0 2px 5px #0001}#search-panel .search input::placeholder{color:#607686}#clear{color:#657789;top:3px}#search-panel .meta{color:#bacbd7;font-size:12px}#search-panel .note{color:#9fb2c2;border-color:#ffffff1c;font-size:11px;line-height:1.65}
#results{scrollbar-width:thin;scrollbar-color:#466879 transparent;max-height:29dvh}.result{background:#ffffff05;color:#f2f5f6;border:1px solid #ffffff13;border-radius:12px;margin:5px 0;padding:12px;min-height:60px}.result:hover,.result:focus-visible{background:#233f4f;border-color:#5faea8}.result small{font-size:12px;color:#a8bccd}.result-mark{background:#78d7d414;color:#8ce7df;border:1px solid #78d7d433;border-radius:50%;width:32px;height:32px;display:grid;place-items:center;padding:0}
#search-panel .quick-actions{padding:0 14px 11px;gap:6px}#search-panel .quick-actions button{background:#ffffff07;color:#d2dfe8;border:1px solid #ffffff22;font-size:12px;font-weight:650;padding:7px 3px;min-height:43px;border-radius:11px;flex:1;line-height:1.4}#search-panel .quick-actions button:hover{background:#ffffff13}#search-panel .quick-actions #route-open{background:#62d1c619;color:#b3f3e7;border-color:#78d7c84a}#search-panel .quick-actions #explore-open{background:#edafca14;color:#f3c0dd;border-color:#f0b4d336}#explore-open span,#route-open span{font-size:17px;vertical-align:-1px}
#search-panel .offline-panel{padding:0 14px 13px;gap:8px;flex-wrap:nowrap}#offline-download{background:#ffab67;color:#392719;border-color:#ffbc84;box-shadow:0 3px 12px #ff9d4122;min-height:36px;border-radius:9px;font-size:11px;white-space:nowrap;padding:6px 9px}#offline-status{font-size:10px;color:#99afbe;min-width:0;line-height:1.5}#photo-map-legend{color:#8fddce;font-size:11px;padding-bottom:10px}
.controls{gap:7px}.controls button{color:#e6f0f4;background:#172b3ce8;border:1px solid #a7d7dd39;box-shadow:0 8px 18px #020d2430;backdrop-filter:blur(12px);border-radius:15px;font-weight:400}.controls button:hover{background:#29465a}.controls #mode[aria-pressed=true]{background:#f4c193;color:#3e3127;border-color:#ffd8b5;box-shadow:0 5px 18px #f4bd6d22}.controls #tilt{color:#94e4df;background:#172b3cf0;border-color:#8fd6d539;font-size:12px}.controls #reset{color:#ffc996}.controls button:focus-visible{outline-color:#91ded4}
#selected{background:#f5f3edf7;color:#172b37;border:1px solid #f9e4c8;border-top:3px solid #edb582;border-radius:24px;box-shadow:0 24px 60px #04162b55;backdrop-filter:blur(14px);padding:20px}#selected h2{font-size:27px;font-weight:800;color:#1b2a37}#selected .kicker{background:#e1ebe7;color:#2b7168;border:1px solid #c8dcd5;font-size:12px;font-weight:650;border-radius:8px}#place-note{color:#697881;font-size:12px;line-height:1.65;margin-bottom:14px}#close-place{background:#e9e9e2;border-radius:50%;color:#52616b;font-size:24px}#selected .place-actions button{font-size:13px;min-height:44px;border-radius:12px}#selected .place-actions .primary{background:#1f665f;border:1px solid #1f665f;color:#fff;box-shadow:none}#selected .place-actions .primary:hover{background:#124b46}#selected .place-details{background:#e8ece7;border:1px solid #d4ded5;border-radius:12px}#selected .place-details p{font-size:13px}#selected .place-details button{background:#f8f7f1}
#landmark-info{margin:15px 0;background:#f0e7da;border:1px solid #dfcfb8;border-radius:12px;padding:0 12px;font-size:12px;line-height:1.7}#landmark-info summary{cursor:pointer;color:#826141;min-height:43px;display:flex;align-items:center;font-weight:650}#landmark-info p{margin:0 0 9px;color:#665c4c}#landmark-info a{display:block;color:#33746d;padding-bottom:12px;text-underline-offset:3px}
.landmark-map-badges{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden}.landmark-map-badge{position:absolute;transform:translate(-50%,-100%);pointer-events:auto;min-height:29px;padding:5px 10px;background:#112b3cf2;border:1px solid var(--landmark-color);color:var(--landmark-color);border-radius:20px;box-shadow:0 4px 12px #00132440;font-size:11px;font-weight:650;white-space:nowrap;backdrop-filter:blur(4px)}.landmark-map-badge:hover{background:#233c4d;box-shadow:0 0 0 3px #fff2}.landmark-map-badge:focus-visible{outline:3px solid var(--landmark-color)}
.bottom-info{background:#142536ed;border:1px solid #a3bdc333;color:#b0c4ce;box-shadow:0 8px 25px #08122344;border-radius:30px;backdrop-filter:blur(12px)}.bottom-info a{color:#d4e1e5;text-underline-offset:3px}.bottom-info button{background:#ffffff08;color:#acbdc9;border:1px solid #ffffff14;border-radius:15px}.bottom-info button:hover{background:#ffffff15}#toast{border:1px solid #83c7c55c;background:#183746;color:#f4ffff;border-radius:15px;box-shadow:0 14px 30px #03182750}
.city-caption{position:fixed;bottom:36px;right:30px;display:flex;gap:10px;align-items:center;color:#99b5be;font-size:12px;letter-spacing:.015em;pointer-events:none;z-index:1}.city-caption-line{width:27px;height:1px;background:#e7b589}.map-atmosphere{position:fixed;inset:0;pointer-events:none;box-shadow:inset 0 0 120px #04142628;z-index:0}
#sos-open{background:#c83c55;color:white;border:2px solid #fff0e7;border-radius:17px;box-shadow:0 0 0 4px #c9435920,0 7px 20px #061a3a44;opacity:1!important;font-weight:850}#sos-open:hover{background:#ab2943}.sos-map-badge{box-shadow:0 2px 9px #06152955}.sos-map-badges{z-index:3}
#explore-dialog{max-width:560px;background:#142535;border:1px solid #5d7c84;color:#e9f0f2;box-shadow:0 32px 120px #0007;border-radius:25px}#explore-dialog .dialog-head{background:linear-gradient(135deg,#233c4e,#142535);border-color:#ffffff19;padding:22px 24px}#explore-dialog .dialog-head h2{margin:6px 0 0;font-size:25px}#explore-dialog .dialog-head button{background:transparent;color:#beced6}.explore-eyebrow{font-size:10px;letter-spacing:2px;color:#e4b991;direction:ltr;display:block;text-align:right}#explore-dialog .dialog-body{padding:21px}.explore-intro{font-size:13px;color:#a5bbc9;line-height:1.8;margin-bottom:17px}#explore-list{display:grid;grid-template-columns:1fr 1fr;gap:12px}.explore-card{position:relative;display:flex;flex-direction:column;text-align:right;align-items:stretch;overflow:hidden;background:#1b3140;border:1px solid #ffffff18;color:#f3f1e9;padding:0;border-radius:17px;transition:transform .2s,border-color .2s}.explore-card:hover{transform:translateY(-3px);border-color:var(--landmark-color);background:#213b4c}.explore-art{display:grid;place-items:center;height:126px;background:radial-gradient(ellipse at 50% 100%,#afcfce18,transparent 68%);color:var(--landmark-color)}.explore-art svg{width:108px;height:108px;filter:drop-shadow(0 3px 10px #0002)}.explore-caption{display:block;padding:13px 14px 16px;border-top:1px solid #ffffff0c}.explore-caption strong{display:block;font-size:15px;font-weight:700}.explore-caption small{display:block;font-size:11px;color:#a6bdc9;margin-top:5px}.explore-arrow{position:absolute;left:12px;top:12px;color:#8da7b5;font-size:16px}.explore-note{font-size:11px;color:#819eaf;border-top:1px solid #ffffff15;padding-top:14px;margin:18px 0 0;line-height:1.8}
dialog{border-radius:24px;box-shadow:0 32px 90px #08152760}dialog::backdrop{background:#06101dbb;backdrop-filter:blur(7px)}#route-dialog .dialog-head{background:#1b3443;border-bottom:3px solid #cfb086}#route-dialog .dialog-body{background:#f4f3ed}#route-dialog .route-field{border-color:#d8e2d9;border-radius:16px}#route-dialog .destination-banner{background:#e0eee5;border-color:#b9d7c6}#route-dialog #route-show{background:#21655e;border-color:#21655e;border-radius:13px}#route-summary{background:#162d3eed;border-color:#dbb78b85;border-radius:18px;backdrop-filter:blur(16px)}#route-summary .route-summary-actions{background:#162d3e}#route-distance{color:#a4ece0}#route-steps li::marker{color:#eec89e}
.route-active .city-caption{opacity:0}.route-active .landmark-map-badges{opacity:.55}
@keyframes city-breathe{50%{opacity:.5;transform:scale(.93)}}
@media(min-width:1000px){#search-panel{top:28px;right:28px}.controls{left:28px;top:28px}.city-caption{bottom:32px}}
@media(max-width:650px){#search-panel{width:auto;left:68px;right:10px;top:max(10px,env(safe-area-inset-top));border-radius:19px;max-height:calc(100dvh - 116px)}#search-panel .heading{padding:10px 12px 7px}#search-panel .brand{font-size:24px;letter-spacing:-1px}.brand-star{font-size:28px}.city-edition{font-size:8px;letter-spacing:1.5px}#search-panel h1{font-size:13px}#search-panel .eyebrow>span:last-child{display:block}.category-filters{padding:2px 9px 7px;gap:3px}.category-filters label{font-size:11px;gap:3px;min-height:35px;padding:4px 3px}.category-filters input{width:12px;height:12px}.category-dot{display:none}.category-filters #filter-all{min-height:34px;font-size:11px;padding:5px 7px}#search-panel .search-section{padding:0 9px 8px}#search-panel .search input{min-height:44px;font-size:14px}#search-panel .quick-actions{padding:0 9px 9px;gap:4px}#search-panel .quick-actions button{font-size:10px;padding:7px 3px;min-height:39px}#search-panel .quick-actions button span{font-size:15px}#search-panel .offline-panel{padding:0 9px 10px;gap:6px}#offline-download{font-size:10px;min-height:32px;padding:5px 7px}#offline-status{font-size:9px}#results{max-height:24dvh}#photo-map-legend{font-size:10px;padding:0 9px 9px}#selected{border-radius:20px;padding:17px;bottom:104px;max-height:43dvh}#selected h2{font-size:24px}#selected .place-actions button{font-size:12px}.controls{gap:6px;bottom:112px;left:12px}.controls button{border-radius:13px;width:44px;height:44px}.controls #tilt{font-size:11px}.bottom-info{font-size:10px;left:10px;right:10px;bottom:max(9px,env(safe-area-inset-bottom));border-radius:22px;padding:5px 8px;gap:8px}.bottom-info span,.bottom-info button{font-size:10px}.bottom-info button{min-height:32px}.bottom-info a{font-size:10px}.city-caption{display:none}.landmark-map-badge{font-size:10px;padding:4px 8px;min-height:26px}#explore-dialog .dialog-head{padding:18px}#explore-dialog .dialog-body{padding:16px}#explore-list{gap:9px}.explore-art{height:102px}.explore-art svg{width:88px;height:88px}.explore-caption{padding:11px}.explore-caption strong{font-size:13px}.explore-caption small{font-size:10px}.explore-intro{font-size:12px}.explore-note{font-size:10px}}
@media(max-width:360px){#search-panel .quick-actions button{font-size:9px}#search-panel .offline-panel{flex-wrap:wrap}#offline-status{flex-basis:100%}#search-panel .brand{font-size:21px}.category-filters label{font-size:10px}.category-filters input{width:11px;height:11px}}
@media(prefers-reduced-motion:reduce){#map-loading:before{animation:none}.explore-card,.category-filters label{transition:none}.explore-card:hover{transform:none}}

/* The map is the main surface, including narrow phones and slow connections. */
.map-render-layer{position:absolute;inset:0;overflow:hidden}
.initial-map{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
#map-loading{inset:auto 16px 90px auto;display:block;background:#152c3eef;padding:9px 14px;border-radius:12px;font-size:13px;pointer-events:none;z-index:2}
#map-loading:before{display:none}
#search-panel .heading{padding-bottom:8px}
@media(max-width:650px){
 #search-panel{left:10px;right:10px;max-height:42dvh;border-radius:16px}
 #search-panel .heading{padding:8px 11px 5px;display:flex;align-items:center;justify-content:space-between;gap:8px}
 #search-panel .brand{font-size:20px}.brand-star{font-size:24px}
 #search-panel .city-edition,#search-panel h1{display:none!important}
 #search-panel .title-row{margin:0}
 #mode-label{min-height:32px}
 #search-panel .search-section{padding:0 8px 6px}
 #search-panel .search input{font-size:16px;min-height:44px;padding-block:9px}
 #search-panel .quick-actions{padding:0 8px 7px}
 #search-panel .quick-actions button{font-size:11px;min-height:36px;padding:5px 2px}
 #search-panel .offline-panel{padding:0 8px 7px;gap:8px}
 #offline-download{min-height:30px;font-size:10px}#offline-status{font-size:9px}
 #search-panel .offline-panel small{min-width:0}#results{max-height:23dvh}
 .controls{top:auto;bottom:112px;left:10px;gap:5px}
 .controls button{width:40px;height:40px;min-height:40px}
 .controls #tilt:disabled,.controls #rotate:disabled{display:none}
}

/* Owner-supplied Shaduza tower and the verified central Effigy. */
.explore-art.tower{background:#f4f2eb}.explore-art.tower img{width:100%;height:100%;object-fit:contain;display:block}
.landmark-reference{display:block;width:100%;max-height:290px;object-fit:contain;background:#f4f2eb;border-radius:9px;margin:4px 0 12px}
.landmark-flat-badges{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:1}
.landmark-flat-badge{position:absolute;display:flex;flex-direction:column;align-items:center;gap:0;pointer-events:auto;transform:translate(-50%,-100%) scale(var(--landmark-scale,.7));transform-origin:bottom center;min-height:44px;min-width:44px;padding:0;border:0;border-radius:0;background:transparent;color:#254553;box-shadow:none;touch-action:manipulation;filter:drop-shadow(0 2px 1px #fff)}
.landmark-flat-badge svg{width:53px;height:66px;stroke-width:2.6;background:#ffffffe8;border:1px solid #d7c4a3;border-radius:10px 10px 2px 2px;pointer-events:none}
.landmark-flat-badge[data-landmark=effigy]{color:#8d5c1b}.landmark-flat-badge[data-landmark=effigy] svg{height:53px}
.landmark-flat-badge span{font-size:11px;font-weight:750;white-space:nowrap;padding:3px 7px;background:#142c3df2;border:1px solid var(--landmark-color);border-radius:12px;color:var(--landmark-color);pointer-events:none}
.landmark-flat-badge:hover{background:transparent;filter:drop-shadow(0 0 4px var(--landmark-color))}

/* Compact, translucent search panel; its toggle always remains reachable. */
#search-panel{background:rgba(20,34,50,.58);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:0 10px 28px #050d2528}
#search-panel:focus-within{background:rgba(20,34,50,.80)}
#search-panel .heading{display:flex;align-items:center;justify-content:space-between;gap:8px;background:transparent;padding:8px 11px}
#search-panel .title-row{display:flex;align-items:center;gap:6px;margin:0}#search-panel .title-row h1{display:none}
#panel-toggle{min-height:44px;min-width:64px;padding:5px 8px;border:1px solid #c5e5ef80;border-radius:10px;background:#14223270;color:#f7fbff;font:inherit;font-size:12px;font-weight:700;white-space:nowrap}
#panel-toggle:hover,#panel-toggle:focus-visible{background:#285066;outline:2px solid #a9e9ed;outline-offset:1px}
#search-panel-content[hidden]{display:none!important}
#search-panel.collapsed{overflow:visible;background:rgba(20,34,50,.42)}
#search-panel.collapsed .heading{padding-block:5px}
.route-active #search-panel.collapsed{opacity:1}
@media(max-width:360px){#search-panel .brand{font-size:18px}#search-panel .brand-star{font-size:21px}#search-panel .heading{gap:4px;padding-inline:8px}#search-panel .title-row{gap:4px}#panel-toggle{min-width:58px;padding-inline:5px}}
.selection-glow{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:3}.selection-outline,.selection-ring{stroke:#00cfff;stroke-width:4;stroke-linejoin:round;filter:drop-shadow(0 0 4px #00cfff) drop-shadow(0 0 10px #009dff);vector-effect:non-scaling-stroke}.selection-leader{stroke:#00cfff;stroke-width:2;filter:drop-shadow(0 0 4px #00cfff)}.selection-map-label{position:absolute;z-index:3;pointer-events:none;background:#102b38ed;border:2px solid #42dcff;border-radius:14px;color:white;box-shadow:0 0 15px #00bfff88;height:38px;line-height:34px;text-align:center;padding:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:750;font-size:14px}
/* Place names belong to the single active selection bubble. Keep landmark
   controls compact and unnamed visually, with full screen-reader labels. */
.landmark-map-badge{width:30px;height:30px;min-height:30px;padding:0;display:grid;place-items:center;font-size:17px;border-radius:50%}
/* Keep Safari from recompositing blurred panels above every moving map frame. */
.map-interacting #search-panel,.map-interacting #selected,.map-interacting .bottom-info,.map-interacting .controls button,.map-interacting #route-summary,.map-interacting .landmark-map-badge{backdrop-filter:none;-webkit-backdrop-filter:none}
#canvas-host,.map-render-layer{touch-action:none;overscroll-behavior:none}
.photo-map-badge,.sos-map-badge,.landmark-flat-badge,.landmark-map-badge{touch-action:none}

/* Personal map companion: compact map controls, readable walking card and sheets. */
#search-panel .quick-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
#search-panel .quick-actions button{min-height:44px;font-size:12px;line-height:1.35}
#search-panel #saved-open{background:#3c315b80;color:#f2ddff;border-color:#b391c777}
.controls #go-home{color:#f7cf9b;background:#263e4d;font-size:25px}
#selected{padding-top:40px;overscroll-behavior:contain}
.sheet-handle{position:absolute;top:0;right:calc(50% - 48px);width:96px;min-height:36px;height:36px;border:0;background:transparent;padding:12px;touch-action:none}
.sheet-handle span{display:block;width:40px;height:4px;margin:auto;border-radius:9px;background:#7d9295}
.sheet-handle:hover{background:transparent}.sheet-handle:focus-visible{outline:2px solid #26736b}
.place-personal-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
#selected .place-personal-actions button{flex:1;min-height:44px;padding:8px 5px;font-size:12px;white-space:normal;background:#f0e9f6;border-color:#d8cce2;color:#5d3f77}
#selected .place-personal-actions button[aria-pressed=true]{background:#e1d1ee;color:#4b2468;border-color:#a184b7}
#selected.sheet-minimized #place-note,#selected.sheet-minimized .place-actions,#selected.sheet-minimized .place-personal-actions,#selected.sheet-minimized #photo-preview,#selected.sheet-minimized #landmark-info,#selected.sheet-minimized #selected-details{display:none}
#selected.sheet-minimized{overflow:hidden;padding-bottom:12px;max-height:130px}
#selected.sheet-minimized h2{font-size:21px;margin-bottom:0}
#saved-dialog,#share-dialog{background:#f5f3ed;color:#1b3440}
#saved-dialog .dialog-head,#share-dialog .dialog-head{background:#1a3441;color:#f7f0e4;border-bottom:3px solid #e9ba87}
#saved-dialog .dialog-head button,#share-dialog .dialog-head button{color:inherit;background:transparent}
#saved-dialog .dialog-head small{color:#b4d4d4;font-size:12px}
.home-card{padding:18px;background:linear-gradient(120deg,#deeee8,#edf2ed);border:1px solid #c7ded6;border-radius:18px;display:grid;grid-template-columns:44px 1fr;align-items:center;gap:10px}
.home-icon{font-size:37px;color:#226c64}.home-card h3{margin:5px 0;font-size:24px}.home-card small{color:#557770}.home-card button{grid-column:1/-1;background:#21665e;border-color:#21665e;color:white}
.home-picker{margin:14px 0 24px;padding:10px 12px;border:1px solid #d6dedb;border-radius:12px}.home-picker summary{cursor:pointer;min-height:36px;display:flex;align-items:center;font-size:14px}
.home-edit-actions,.share-actions{display:flex;gap:8px;margin-top:12px}.home-edit-actions button,.share-actions button{flex:1;font-size:14px}
#saved-count{font-size:17px}.saved-row{display:flex;gap:6px;margin-bottom:9px}.saved-row>button:first-child{flex:1;text-align:right;padding:13px 15px;background:#fff;border-color:#e2d8e8;min-width:0;font-weight:700}.saved-row small{display:block;color:#718087;font-size:12px;font-weight:400;margin-top:5px}.saved-row>button:last-child{width:44px;font-size:23px;color:#7c7382;background:transparent;border:0}
.empty-saved,.personal-note{font-size:13px;line-height:1.8;color:#607480}.personal-note{margin:18px 0 0;padding-top:12px;border-top:1px solid #d9dfdf}
#explore-dialog label{color:#d2e4e9;font-size:13px}#explore-dialog input{background:#f4f6f4;color:#183140;font-size:16px}
#explore-dialog .camp-suggestions{color:#183140;z-index:4}#explore-dialog .camp-suggestions button{color:#183140;background:#fff}
.explore-anchor-actions{display:flex;gap:7px;margin:10px 0 17px}.explore-anchor-actions button{font-size:12px;min-height:40px;padding:7px 10px;background:#243f4d;color:#cbe8e2;border-color:#42606d}
#explore-topics{display:flex;gap:7px;overflow:auto;padding:3px 0 9px}#explore-topics button{flex-shrink:0;background:#1d3445;color:#bbd2da;border-color:#466071;min-height:40px;font-size:13px;padding:8px 13px;border-radius:22px}#explore-topics button[aria-pressed=true]{background:#b9e7da;color:#153a34;border-color:#c8eee3;font-weight:750}
#explore-result-status{font-size:12px;color:#aac2cd;line-height:1.6;margin:8px 0 12px}
.discovery-result{width:100%;position:relative;display:block;text-align:right;padding:15px;border-radius:14px;background:#1c3545;color:#f4f2e9;border:1px solid #ffffff20;margin:0 0 9px}
.discovery-result:hover{background:#284858}.discovery-heading{display:block;padding-left:75px}.discovery-heading strong{font-size:16px;display:block}.discovery-heading small{font-size:11px;color:#b1c7cc;display:block;margin-top:4px}.near-distance{position:absolute;top:17px;left:13px;color:#a8e0d3;font-size:12px}.discovery-description{display:block;font-size:13px;line-height:1.65;margin-top:10px;color:#bed1da;overflow-wrap:anywhere}
#explore-more{width:100%;color:#143930;background:#bfe4d6;border:0}.landmarks-heading{margin-top:28px;padding-top:20px;border-top:1px solid #ffffff24;color:#e9cfab;font-size:17px}
#explore-results .empty-saved{color:#b1cbd1}
.origin-options{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}.origin-options button{font-size:13px;background:#e3efeb;border-color:#c5dcd4;color:#245c55}
#route-summary{max-width:430px;left:auto;right:24px;bottom:24px;max-height:48dvh;padding:16px 18px;border-radius:24px;border:1px solid #abc9c488;box-shadow:0 10px 36px #081d3944;background:#173440f5;scrollbar-width:thin}
#route-summary .route-summary-actions{display:flex;gap:2px;background:transparent;position:absolute;top:7px;left:9px}
#route-summary-text{width:100%}#route-endpoints{padding-left:90px;font-size:12px!important;color:#c8d9df;line-height:1.7}#route-distance{font-size:13px;margin-top:2px}
#walk-current{border-top:1px solid #ffffff20;margin-top:12px;padding-top:12px}.walk-step-heading{display:flex;align-items:center;gap:12px}.walk-step-heading>div{display:flex;gap:6px;flex-direction:column}.walk-step-heading small{font-size:11px;color:#b6cfd4}#walk-arrow{display:grid;place-items:center;font-size:36px;width:50px;height:50px;background:#bcf0dc;color:#123d37;border-radius:15px}#walk-step{font-size:18px;font-weight:650;line-height:1.6;margin:13px 0;max-height:8em;overflow:auto}#walk-mode{font-size:11px;color:#b1c9cf}
.walk-step-buttons{display:flex;gap:8px;margin-top:12px}#route-summary .walk-step-buttons button{flex:1;border:1px solid #ffffff35;border-radius:11px;font-size:13px;min-height:44px}#route-summary #walk-next{background:#b8e4d5;color:#153a33;border-color:#b8e4d5;font-weight:750}#route-summary #walk-prev{color:#d3e5e7}#route-summary button:disabled{opacity:.35;cursor:default}
#route-instructions>summary{font-size:12px;text-decoration:none;margin-top:5px}#route-steps li[aria-current=step]{color:#bcf0dc;font-weight:700}.route-disclaimer{font-size:11px}
#route-summary.minimized #walk-current,#route-summary.minimized #route-instructions{display:none}
.route-active #search-panel{opacity:.2}.route-active #search-panel.collapsed{opacity:.65}.route-active #search-panel:focus-within,.route-active #search-panel.route-tools-awake{opacity:1}
.route-active .bottom-info{display:none}.route-active .photo-map-badges{display:none}.route-active #sos-open{top:auto;bottom:24px}.route-active .controls{top:auto;bottom:90px;opacity:.55}.route-active .controls:focus-within,.route-active .controls.route-tools-awake{opacity:1}
.route-active #sponsor{right:auto;left:80px;bottom:24px!important;pointer-events:none;transform:scale(.5);transform-origin:left bottom}
@media(max-width:650px){
 #search-panel{max-height:46dvh}#search-panel .quick-actions button{font-size:10px;min-height:40px}
 #selected{left:66px;right:10px;bottom:96px;padding:36px 14px 14px;max-height:52dvh;border-radius:23px 23px 16px 16px}
 #selected h2{font-size:23px}#selected .place-personal-actions button{font-size:11px;padding:7px 4px}
 #route-summary{left:64px;right:10px;bottom:max(12px,env(safe-area-inset-bottom));width:auto;max-width:none;max-height:45dvh;padding:14px;border-radius:20px}
 #walk-step{font-size:16px;line-height:1.6}#walk-arrow{width:42px;height:42px;font-size:30px}#route-endpoints{padding-left:72px;line-height:1.5}#route-summary .route-summary-actions{left:4px;top:4px;gap:0}#route-summary .route-summary-actions button{min-width:36px;width:36px}
 .route-active #sos-open{bottom:max(12px,env(safe-area-inset-bottom));left:9px;width:46px;min-height:46px;font-size:15px}
 .route-active .controls{bottom:72px;left:10px;gap:4px}.route-active .controls button{width:38px;height:38px;min-height:38px}
 .route-active #sponsor{left:66px;bottom:auto!important;top:80px;transform-origin:left top}
 #saved-dialog .dialog-body,#share-dialog .dialog-body{padding:16px}.home-card{padding:14px}.home-card h3{font-size:21px}
}
@media(max-height:550px){#selected{max-height:65dvh}#route-summary{max-height:60dvh}.controls{gap:3px}.controls button{width:32px;height:32px;min-height:32px}.route-active .controls #tilt,.route-active .controls #rotate,.route-active .controls #reset{display:none}}
@media(prefers-reduced-motion:reduce){#selected,#route-summary{scroll-behavior:auto}}

/* FPV is a separate virtual camera. Regular map UI returns unchanged on exit. */
.controls #fpv-open{background:#c5a236;color:#211d0e;border:1px solid #efd780;box-shadow:0 4px 16px #a47c2340;font-size:13px;font-weight:850;letter-spacing:.5px;opacity:1}
.controls #fpv-open:hover{background:#dec05c}.controls #fpv-open:focus-visible{outline:3px solid #8f7220}
@media(min-width:651px){body:not(.fpv-active) #sos-open{top:auto;bottom:24px}.controls{max-height:calc(100dvh - 118px);overflow-y:auto;scrollbar-width:none;padding:4px;margin:-4px}}
.fpv-active #search-panel,.fpv-active .controls,.fpv-active #selected,.fpv-active #route-summary,.fpv-active .bottom-info,.fpv-active .city-caption,.fpv-active .selection-glow,.fpv-active .selection-map-label,.fpv-active .photo-map-badges,.fpv-active .sos-map-badges,.fpv-active .landmark-map-badges{display:none!important}
#fpv-hud{position:fixed;inset:0;z-index:7;pointer-events:none;color:#fff8e5;direction:rtl}
#fpv-hud button{pointer-events:auto;color:#fff8e5;border:1px solid #e0c57880;background:#243640e8;touch-action:none;user-select:none;-webkit-user-select:none}
#fpv-hud button:focus-visible{outline:3px solid #ebc757;outline-offset:4px}
.fpv-heading{position:absolute;top:max(14px,env(safe-area-inset-top));left:18px;right:18px;max-width:570px;margin:auto;background:#192e3de6;border:1px solid #d5b85580;box-shadow:0 9px 28px #08142230;border-radius:20px;backdrop-filter:blur(9px);padding:13px 15px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.fpv-heading>div{display:grid;grid-template-columns:auto 1fr;gap:5px 10px;align-items:center}.fpv-heading strong{font-size:16px}.fpv-heading small{grid-column:2;font-size:11px;color:#ced8d4}
.fpv-tag{grid-row:span 2;background:#c5a236;color:#231e0d;border-radius:10px;padding:11px 8px;font-size:13px;font-weight:900;letter-spacing:1px}
#fpv-exit{font-size:12px;padding:9px 12px;white-space:nowrap;min-height:44px}
.fpv-location{position:absolute;top:112px;right:20px;background:#193140cf;padding:7px 13px;border-radius:20px;font-size:12px;display:flex;align-items:center;gap:8px;max-width:calc(100% - 40px)}
.fpv-dot{width:6px;height:6px;background:#e7c65d;border-radius:50%}.fpv-reticle{position:absolute;left:50%;top:50%;width:5px;height:5px;border-radius:50%;background:#fff9;box-shadow:0 0 0 1px #0004;transform:translate(-50%,-50%)}
.fpv-walk-controls{position:absolute;left:24px;bottom:max(55px,calc(env(safe-area-inset-bottom) + 38px));display:flex;flex-direction:column;align-items:center;gap:8px}
#fpv-stick{width:136px;height:136px;border-radius:50%;position:relative;background:#142e398f;border:1px solid #f0d98799;box-shadow:inset 0 0 0 15px #e7c56b0c,0 5px 30px #0002;padding:0;cursor:grab;overflow:visible}
.fpv-pad-arrows{position:absolute;inset:8px;font-size:24px;color:#f2dfb183;line-height:1.5;text-align:center;direction:ltr}
.fpv-thumb{position:absolute;left:calc(50% - 23px);top:calc(50% - 23px);width:46px;height:46px;border-radius:50%;background:linear-gradient(145deg,#f4d777,#b7952b);border:1px solid #f5df99;box-shadow:0 4px 13px #0004;transform:translate(var(--stick-x,0px),var(--stick-y,0px));pointer-events:none}
.fpv-walk-controls>span,.fpv-look-controls>span{font-size:11px;text-shadow:0 1px 5px #081926;background:#182f3aaf;padding:4px 9px;border-radius:10px}
.fpv-look-controls{position:absolute;right:24px;bottom:max(55px,calc(env(safe-area-inset-bottom) + 38px));display:flex;align-items:center;gap:10px;flex-direction:column}
.fpv-look-controls>div{display:flex;gap:8px}.fpv-look-controls button{height:52px;width:52px;border-radius:16px;font-size:30px;padding:0}
.fpv-help{position:absolute;bottom:max(10px,env(safe-area-inset-bottom));left:10px;right:10px;margin:0;text-align:center;font-size:11px;text-shadow:0 1px 4px #07101b;color:#fdf9e9}
.fpv-touch-help{display:none}.fpv-active #sos-open{top:max(104px,calc(env(safe-area-inset-top) + 92px));bottom:auto;left:18px;width:46px;height:46px;min-height:46px;font-size:15px;z-index:8}
.fpv-active #sponsor{top:auto!important;left:50%;right:auto;bottom:40px!important;transform:translateX(-50%) scale(.5);transform-origin:center bottom;pointer-events:none}
.fpv-active #toast{bottom:205px}
@media(pointer:coarse){.fpv-key-help{display:none}.fpv-touch-help{display:inline}}
@media(max-width:420px){.fpv-heading{left:10px;right:10px;padding:10px;gap:8px}.fpv-heading strong{font-size:13px}.fpv-heading small{font-size:9px}.fpv-heading>div{gap:5px 7px}.fpv-tag{font-size:11px;padding:11px 6px}#fpv-exit{font-size:10px;padding:7px 9px}.fpv-location{top:99px;right:12px}.fpv-walk-controls{left:18px}.fpv-look-controls{right:18px}}
@media(max-height:550px){.fpv-heading{max-width:470px;top:7px;padding:7px 12px}.fpv-heading small{display:none}.fpv-tag{grid-row:auto;padding:9px}.fpv-location{top:76px}.fpv-active #sos-open{top:80px;left:14px}.fpv-walk-controls,.fpv-look-controls{bottom:30px}#fpv-stick{width:112px;height:112px}.fpv-pad-arrows{line-height:1.2}.fpv-help{bottom:4px}.fpv-active #sponsor{bottom:23px!important}}

.fpv-sign-edits{position:absolute;inset:0;pointer-events:none;z-index:6}
.fpv-sign-edit{position:absolute;transform:translate(-50%,-50%);width:44px;height:44px;min-height:44px;padding:0;border:0;background:transparent;box-shadow:none;pointer-events:auto;touch-action:manipulation;display:grid;place-items:center;cursor:pointer}
.fpv-sign-edit[hidden]{display:none}.fpv-sign-edit span{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#fff5d9;color:#413515;border:1px solid #b48b31;box-shadow:0 2px 6px #0006;font:700 20px/1 Arial,sans-serif}
.fpv-sign-edit:hover span,.fpv-sign-edit:focus-visible span{background:#edcd6d}.fpv-sign-edit:focus-visible{outline:2px solid #edcd6d;outline-offset:-7px;border-radius:50%}
/* Compact controls leave the road and the raised SOS action visible. */
.fpv-ride-toolbar{position:absolute;top:152px;right:18px;display:flex;gap:7px;align-items:center;flex-wrap:wrap;max-width:calc(100% - 88px);font-size:11px}.fpv-ride-toolbar button{border-radius:13px;min-height:42px;font-size:11px;padding:8px 11px;backdrop-filter:blur(8px)}#fpv-hud #fpv-ride-open{background:#c5a236;color:#211d0e;font-weight:850;border-color:#f5df88}.fpv-zoom{display:flex;align-items:center;direction:ltr;background:#192e3dba;border-radius:13px;overflow:hidden}.fpv-zoom button{font-size:22px!important;padding:4px 9px;min-width:36px;border:0!important;background:transparent!important}.fpv-zoom span{font-size:10px;color:#d1dcd6}
#fpv-flight{position:absolute;bottom:153px;right:18px;text-align:right;max-width:240px}#fpv-flight>span{display:block;font-size:10px;text-shadow:0 1px 5px #000;background:#162c39bd;padding:5px 8px;border-radius:10px;margin-bottom:6px}#fpv-flight>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}#fpv-flight button{font-size:12px;padding:10px;border-radius:13px;min-height:44px}#fpv-flight #fpv-land{grid-column:1/-1;color:#211d0e;background:#d1b34a;border-color:#f5df88;font-weight:800}#fpv-flight #fpv-land[aria-pressed=true]{color:#fff0dc;background:#794639;border-color:#e8a684}
.fpv-rides-dialog{width:min(540px,calc(100vw - 24px));max-height:calc(100dvh - 28px);padding:0;overflow:auto;color:#fcf2d8;background:linear-gradient(145deg,#172e39,#171c32);border:1px solid #c6a43e8c;border-radius:24px;box-shadow:0 24px 80px #0008}.fpv-rides-dialog::backdrop{background:#06121abb;backdrop-filter:blur(6px)}.fpv-rides-dialog header{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:22px 22px 12px}.ride-eyebrow{font-size:10px;letter-spacing:3px;color:#d7b849}.fpv-rides-dialog h2{font-size:23px;margin:5px 0}.fpv-rides-dialog header p{font-size:12px;color:#adbfc0;margin:0}.fpv-rides-dialog button{color:inherit}.fpv-rides-dialog #fpv-rides-close{background:#ffffff0c;border:1px solid #ffffff20;border-radius:50%;width:40px;height:40px;padding:0;font-size:26px}.fpv-ride-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px 20px}.fpv-ride-grid button{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;padding:14px 8px;border:1px solid #abbdc336;border-radius:18px;background:linear-gradient(145deg,#ffffff0e,#ffffff03);min-width:0;transition:background .15s,border-color .15s}.fpv-ride-grid button:hover{background:#d4b34f1a}.fpv-ride-grid button[aria-pressed=true]{border-color:#edd071;background:#b295322e;box-shadow:inset 0 0 22px #d8bc4712}.fpv-ride-grid button[aria-pressed=true]::after{content:'✓';position:absolute;top:8px;left:10px;color:#f4d776}.ride-symbol{font-size:35px;line-height:1.2;filter:drop-shadow(0 4px 9px #0004)}.fpv-ride-grid strong{font-size:15px}.fpv-ride-grid small{font-size:10px;font-weight:400;color:#b9c8c9;text-align:center}.fpv-rides-dialog footer{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 20px 16px}.fpv-rides-dialog footer button{background:#c5a236;color:#211d0e;font-size:12px;font-weight:700;padding:10px 12px;border:0;border-radius:12px}.fpv-rides-dialog footer span{font-size:10px;color:#c6d2cd}.fpv-rides-dialog button:focus-visible{outline:3px solid #f4d776;outline-offset:2px}#fpv-ride-status{margin:0 20px 14px;color:#ffd6ae;font-size:13px}#fpv-ride-status:empty{display:none}
@media(max-width:420px){.fpv-ride-toolbar{top:137px;right:12px;gap:5px;max-width:calc(100% - 30px)}.fpv-ride-toolbar button{padding:6px 9px}.fpv-location{max-width:calc(100% - 90px)}.fpv-rides-dialog header{padding:17px 17px 7px}.fpv-ride-grid{padding:10px 14px;gap:8px}.fpv-ride-grid button{padding:11px 6px}.fpv-rides-dialog h2{font-size:21px}#fpv-flight{max-width:210px;bottom:147px}}
@media(max-height:550px){.fpv-ride-toolbar{top:111px;right:12px}.fpv-location{right:12px}.fpv-ride-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.fpv-rides-dialog header{padding:10px 18px}.fpv-rides-dialog h2{font-size:18px}.fpv-rides-dialog header p{display:none}.fpv-ride-grid button{padding:8px}.ride-symbol{font-size:24px}.fpv-ride-grid small{display:none}#fpv-flight{bottom:123px}.fpv-rides-dialog footer{padding-bottom:12px}}

/* Direct touch camera controls replace redundant turn arrows on phones. */
@media(pointer:coarse){.fpv-look-controls{display:none!important}}

.fpv-destination{position:absolute;top:112px;right:16px;width:min(440px,calc(100% - 94px));pointer-events:auto;direction:rtl;background:#203c49ef;border-radius:16px;padding:8px;color:white}.fpv-destination-row{display:flex;gap:6px}.fpv-destination input{min-width:0;flex:1;border:0;border-radius:10px;padding:12px;font:inherit;font-size:16px}.fpv-destination button{border:0;border-radius:10px;padding:8px;background:#eac852;color:#253039;font:inherit}.fpv-destination-list{max-height:32vh;overflow:auto;display:grid;gap:4px;padding-top:6px}.fpv-destination-list[hidden]{display:none}.fpv-destination-list button{text-align:right;background:#fff;color:#203c49;padding:12px}.fpv-destination p{font-size:12px;margin:4px 0 0}.fpv-destination p:empty{display:none}#fpv-hud .fpv-location{top:218px}#fpv-hud .fpv-ride-toolbar{top:262px}.fpv-destination:focus-within{z-index:8}

/* One translucent navigation strip; controls stay out of the driving view. */
#fpv-hud .fpv-destination{top:max(10px,env(safe-area-inset-top));left:12px;right:12px;width:auto;max-width:620px;margin:auto;background:#203c4999;backdrop-filter:blur(8px);border:1px solid #ffffff36;padding:8px;border-radius:18px}
#fpv-hud .fpv-destination-row{align-items:center;gap:6px}
#fpv-hud .fpv-destination input{width:0;min-height:44px;padding:10px 8px;font-size:16px;background:#fffef0ed}
#fpv-hud .fpv-destination-row button{min-height:44px;padding:8px 10px;border-radius:10px}
#fpv-hud .fpv-destination-row .fpv-go{background:#19864a;color:white;border:1px solid #66d99a;font-size:16px;font-weight:900;direction:ltr}
#fpv-hud #fpv-exit{background:#19354099;font-size:14px;direction:ltr}
#fpv-hud #fpv-route-clear{padding:6px;min-width:28px;background:transparent}
#fpv-hud .fpv-location{top:max(86px,calc(env(safe-area-inset-top) + 76px));right:14px;max-width:calc(100% - 88px);background:#19314099}
#fpv-hud .fpv-ride-toolbar{top:auto;bottom:max(42px,calc(env(safe-area-inset-bottom) + 32px));right:14px;max-width:calc(100% - 180px)}
#fpv-hud .fpv-look-controls{display:none}
#fpv-hud #fpv-flight{bottom:112px;right:12px;max-width:180px}
.fpv-active #sos-open{top:max(86px,calc(env(safe-area-inset-top) + 76px))}
.fpv-active #sponsor{bottom:100px!important;left:auto;right:16px;transform:scale(.5);transform-origin:right bottom}
@media(max-height:550px){#fpv-hud #fpv-flight{bottom:97px;max-width:180px}.fpv-active #sponsor{display:none}#fpv-hud .fpv-ride-toolbar{bottom:30px}}

#fpv-hud #fpv-sound{min-width:44px;min-height:44px;font-size:19px;background:#203c49b3;border-color:#ffffff66}#fpv-hud .fpv-ride-toolbar{max-width:calc(100% - 165px)}
