:root{--navy:#061821;--navy2:#0d2a36;--gold:#d5a64b;--gold2:#f0d28c;--cream:#f6f0e5;--paper:#fffdfa;--ink:#102832;--muted:#66777d;--line:rgba(6,24,33,.14);--red:#ba2637;--green:#11997e;--blue:#2873c7;--purple:#7749b0;--orange:#da7522;--shadow:0 18px 55px rgba(4,25,34,.18)}
.search-wrap{display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:8px}.search-wrap input{padding:0 14px!important}.search-wrap:after{display:none!important}.search-wrap button{min-height:48px;border:0;border-radius:14px;padding:0 16px;background:var(--gold);color:var(--navy);font-weight:900;cursor:pointer}.search-wrap button:active{transform:translateY(1px)}
*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:"DM Sans",system-ui,sans-serif;color:var(--ink);background:var(--cream);overflow:hidden}button,input,select{font:inherit}button,a{touch-action:manipulation}.app{height:100%;display:grid;grid-template-rows:auto 1fr}.topbar{z-index:20;display:flex;align-items:center;gap:16px;padding:10px 16px;background:rgba(6,24,33,.97);color:white;border-bottom:1px solid rgba(255,255,255,.1)}.brand{display:flex;align-items:center;gap:10px;min-width:max-content;color:white;text-decoration:none}.brand img{width:42px;height:42px;border-radius:50%;object-fit:cover;border:1px solid rgba(213,166,75,.7)}.brand strong{display:block;font-family:"Playfair Display",serif;font-size:1rem}.brand small{display:block;color:#a9bbc1;font-size:.7rem}.top-title{min-width:0}.top-title h1{font:700 clamp(1.05rem,2vw,1.35rem) "Playfair Display",serif;margin:0}.top-title p{margin:2px 0 0;color:#a9bbc1;font-size:.76rem}.top-actions{margin-left:auto;display:flex;gap:8px}.control-btn,.primary-btn,.search-result,.filter{border:0;border-radius:999px;min-height:42px;padding:0 15px;font-weight:800;cursor:pointer}.control-btn{background:rgba(255,255,255,.1);color:white;border:1px solid rgba(255,255,255,.15)}.control-btn:hover,.control-btn:focus-visible{background:rgba(255,255,255,.18)}.primary-btn{background:var(--gold);color:var(--navy)}.layout{min-height:0;display:grid;grid-template-columns:minmax(300px,380px) 1fr;position:relative}.panel{z-index:12;background:var(--paper);border-right:1px solid var(--line);overflow:auto;padding:16px}.mode-label{display:inline-flex;align-items:center;gap:7px;color:#8a651f;font-size:.72rem;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.mode-label:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--gold)}.intro h2{font:700 1.7rem/1.05 "Playfair Display",serif;margin:8px 0}.intro p{font-size:.87rem;color:var(--muted);line-height:1.45;margin:0 0 14px}.trip-controls{background:var(--navy);color:white;border-radius:18px;padding:15px;margin:14px 0}.trip-controls h3{margin:0 0 11px;font:700 1rem "Playfair Display",serif}.fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.field label{display:block;color:#b9c8cd;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;margin-bottom:5px}.field select,.field input{width:100%;min-height:42px;border:1px solid rgba(255,255,255,.14);border-radius:10px;background:#13303c;color:white;padding:0 10px}.turn-card{margin-top:12px;background:#153b43;border:1px solid rgba(240,210,140,.35);border-radius:13px;padding:12px}.turn-card small{display:block;color:#c3d2d5}.turn-card strong{display:block;color:var(--gold2);font-size:1.13rem;margin-top:2px}.turn-card span{display:block;color:white;font-size:.82rem;margin-top:5px}.search-wrap{position:relative;margin:14px 0 8px}.search-wrap input{width:100%;min-height:48px;border:1px solid var(--line);border-radius:14px;padding:0 42px 0 14px;background:white;color:var(--ink);box-shadow:0 6px 18px rgba(4,25,34,.06)}.search-wrap:after{content:"⌕";position:absolute;right:14px;top:7px;font-size:1.5rem;color:#557078}.filters{display:flex;gap:7px;overflow:auto;padding:2px 0 10px}.filter{min-height:34px;padding:0 12px;background:#edf1f1;color:#35505a;font-size:.74rem;white-space:nowrap}.filter.active{background:var(--navy);color:white}.results{display:grid;gap:8px}.search-result{display:block;text-align:left;border-radius:14px;padding:12px 13px;background:white;border:1px solid var(--line);min-height:0}.search-result:hover,.search-result:focus-visible{border-color:#8ca1a8;box-shadow:0 6px 18px rgba(4,25,34,.08)}.search-result strong{display:block;color:var(--ink);font-size:.9rem}.search-result span{display:block;color:var(--muted);font-size:.74rem;margin-top:2px}.badge{display:inline-flex!important;width:max-content;margin-top:6px!important;padding:3px 7px;border-radius:999px;background:#e7f1ee;color:#17624f!important;font-size:.66rem!important;font-weight:900}.map-wrap{min-width:0;position:relative}.map{position:absolute;inset:0;background:#bfd5df}.map-tools{position:absolute;z-index:7;top:12px;right:12px;display:grid;gap:8px}.map-tools button{width:48px;height:48px;border:0;border-radius:14px;background:rgba(6,24,33,.94);color:white;font-size:1.08rem;font-weight:900;box-shadow:var(--shadow);cursor:pointer}.map-tools button.active{background:var(--gold);color:var(--navy)}.map-note{position:absolute;z-index:6;left:12px;bottom:12px;max-width:470px;background:rgba(6,24,33,.92);color:white;border-radius:13px;padding:10px 13px;font-size:.74rem;box-shadow:var(--shadow)}.map-note strong{color:var(--gold2)}.fallback{display:none;position:absolute;inset:0;z-index:9;background:var(--navy);color:white;padding:22px;text-align:center;overflow:auto}.fallback.show{display:grid;place-items:center}.fallback img{width:min(850px,100%);border-radius:15px;margin:12px auto}.detail{position:absolute;z-index:15;right:14px;bottom:14px;width:min(390px,calc(100% - 28px));background:var(--paper);border-radius:20px;padding:17px;box-shadow:0 22px 75px rgba(2,20,28,.3);transform:translateY(calc(100% + 30px));transition:transform .22s ease}.detail.open{transform:translateY(0)}.detail-close{float:right;width:38px;height:38px;border:0;border-radius:50%;background:#edf1f1;font-size:1.2rem;cursor:pointer}.detail-type{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;font-weight:900;color:#8a651f}.detail h2{font:700 1.35rem "Playfair Display",serif;margin:5px 44px 5px 0}.detail p{margin:5px 0;color:var(--muted);font-size:.84rem;line-height:1.45}.detail-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}.detail-actions a,.detail-actions button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;border:0;border-radius:999px;padding:0 14px;background:var(--navy);color:white;text-decoration:none;font-weight:800;font-size:.78rem;cursor:pointer}.detail-actions .gold{background:var(--gold);color:var(--navy)}.poi-marker{width:34px;height:34px;border-radius:50% 50% 50% 5px;transform:rotate(-45deg);display:grid;place-items:center;border:3px solid white;box-shadow:0 5px 14px rgba(0,0,0,.32);background:var(--navy)}.poi-marker span{transform:rotate(45deg);font-size:14px}.poi-marker.checkpoint{background:var(--green)}.poi-marker.restaurant{background:var(--gold)}.poi-marker.fuel{background:var(--orange)}.poi-marker.launch{background:var(--red)}.maplibregl-popup-content{border-radius:12px!important;font-family:"DM Sans",sans-serif!important;padding:10px 12px!important}.briefing-card{margin-top:15px;border:1px solid var(--line);border-radius:16px;padding:13px;background:#f7f3e9}.briefing-card h3{margin:0 0 5px;font:700 1rem "Playfair Display",serif}.briefing-card p{font-size:.78rem;color:var(--muted);margin:0 0 10px}.briefing-links{display:flex;gap:7px;flex-wrap:wrap}.briefing-links a,.briefing-links button{min-height:38px;padding:0 11px;border:0;border-radius:999px;background:var(--navy);color:white;font-size:.72rem;font-weight:800;text-decoration:none;display:inline-flex;align-items:center;cursor:pointer}.qr-modal{position:fixed;z-index:100;inset:0;background:rgba(2,17,24,.8);display:none;place-items:center;padding:20px}.qr-modal.open{display:grid}.qr-sheet{background:white;border-radius:24px;padding:22px;text-align:center;width:min(430px,100%)}.qr-sheet h2{font:700 1.5rem "Playfair Display",serif;margin:0}.qr-sheet p{color:var(--muted);font-size:.82rem}.qr-sheet canvas,.qr-sheet img{margin:14px auto;border:12px solid white;box-shadow:0 10px 35px rgba(0,0,0,.15);max-width:100%}.qr-sheet .row{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.qr-sheet button{min-height:42px;border:0;border-radius:999px;padding:0 14px;font-weight:800;cursor:pointer}.qr-sheet .dark{background:var(--navy);color:white}.qr-sheet .gold{background:var(--gold);color:var(--navy)}
@media(max-width:820px){body{overflow:auto}.app{height:auto;min-height:100%;display:block}.topbar{position:sticky;top:0}.top-title p{display:none}.top-actions .hide-mobile{display:none}.layout{display:flex;flex-direction:column}.map-wrap{height:58vh;min-height:460px;order:1}.panel{order:2;border-right:0;border-top:1px solid var(--line);overflow:visible}.map-note{right:72px;max-width:none}.detail{position:fixed;bottom:12px}.fields{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.topbar{padding:8px 10px}.brand span{display:none}.top-title h1{font-size:1rem}.control-btn{padding:0 11px;font-size:.75rem}.map-wrap{height:56vh;min-height:430px}.panel{padding:14px}.map-note{left:8px;bottom:8px;right:65px;font-size:.68rem}.map-tools{top:8px;right:8px}.map-tools button{width:44px;height:44px}.fields{grid-template-columns:1fr}.detail{right:8px;bottom:8px;width:calc(100% - 16px)}}
@media print{body{overflow:visible}.topbar,.panel,.map-tools,.map-note,.detail{display:none!important}.layout{display:block}.map-wrap{height:100vh}.map{position:relative;height:100vh}}
html.embed-mode .topbar{display:none}html.embed-mode .app{grid-template-rows:1fr}
@media(max-width:820px){html.embed-mode,html.embed-mode body{height:auto;min-height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;scroll-padding-bottom:120px}html.embed-mode .app{height:auto;min-height:100%;display:block}html.embed-mode .panel{padding-bottom:calc(120px + env(safe-area-inset-bottom))}html.embed-mode .briefing-card{margin-bottom:24px}}
@media(max-width:820px){html.embed-mode .detail{position:absolute;top:auto;bottom:10px;max-height:calc(100% - 20px);overflow:auto;overscroll-behavior:contain}html.embed-mode .detail-actions{padding-bottom:8px}html.embed-mode .detail-actions a,html.embed-mode .detail-actions button{min-height:48px}}

/* Keep the location card completely out of view until a marker is selected. */
.detail:not(.open){opacity:0;visibility:hidden;pointer-events:none}
.detail.open{opacity:1;visibility:visible;pointer-events:auto}
.map-official-panel{display:none;position:fixed;z-index:200;left:50%;bottom:max(18px,env(safe-area-inset-bottom));width:min(560px,calc(100% - 24px));max-height:80vh;overflow:auto;transform:translateX(-50%);padding:24px;border:2px solid #d8ab58;border-radius:24px;background:linear-gradient(145deg,#0d3340,#071f2b);color:#f5f0e7;box-shadow:0 0 0 5px rgba(216,171,88,.18),0 28px 100px rgba(0,0,0,.58)}.map-official-panel.open{display:block}.map-official-panel small{color:#efc66f;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.map-official-panel h2{margin:8px 48px 8px 0;color:#fff;font:700 1.8rem "Playfair Display",serif}.map-official-panel p{color:#a9bdc4;line-height:1.5}.map-official-panel>a,.map-official-panel>.official-site-launch,.map-official-panel>.map-official-copy{display:inline-flex;min-height:48px;align-items:center;justify-content:center;margin:5px 5px 5px 0;padding:0 16px;border:0;border-radius:999px;background:#061d28;color:white;text-decoration:none;font-weight:900}.map-official-panel>.official-site-launch{background:#d8ab58;color:#071f2b}.map-official-panel>.map-official-copy{background:#173844;color:#f5f0e7}.map-official-panel>.official-site-status{font-size:.82rem;font-weight:800}.map-official-panel code{display:block;margin-top:10px;overflow-wrap:anywhere;color:#a9bdc4;font-size:.72rem}.map-official-close{position:absolute;right:16px;top:16px;width:42px;height:42px;border:1px solid rgba(216,171,88,.35);border-radius:50%;background:#061d28;color:#fff;font-size:25px}
.map-official-panel figure{margin:14px 0 10px}.map-official-panel figure img{display:block;width:100%;max-height:390px;object-fit:cover;border-radius:16px;background:#dfe8ea}.map-official-panel figcaption{margin-top:7px;color:var(--muted);font-size:.72rem;font-weight:700}

/* Public live-map dark theme: preserve the approved navy-and-gold site design. */
html,body{background:#061821!important;color:#f7f3e9}.panel{background:#0a2530;color:#f7f3e9;border-color:rgba(213,166,75,.25)}.intro p,.search-result span,.briefing-card p,.detail p{color:#adc0c5}.mode-label,.detail-type{color:#efc66f}.search-wrap input,.search-result{background:#0d2a36;color:#f7f3e9;border-color:rgba(213,166,75,.28)}.search-result strong{color:#fff}.filter{background:#153b43;color:#d9e5e7}.filter.active{background:#d5a64b;color:#061821}.briefing-card{background:#0d2a36;border-color:rgba(213,166,75,.28)}.detail{background:#0a2530;color:#f7f3e9;border:2px solid #d5a64b}.detail-close{background:#153b43;color:#fff}.fallback{background:linear-gradient(145deg,#0d3340,#061821);color:#fff}.fallback>div{width:min(560px,100%);padding:24px;border:2px solid #d5a64b;border-radius:24px;background:#0a2530}.fallback .primary-btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.maplibregl-popup-content{background:#0a2530!important;color:#fff!important;border:1px solid #d5a64b}.qr-sheet{background:#0a2530;color:#fff;border:2px solid #d5a64b}.qr-sheet p{color:#adc0c5}
