:root{font-family:Arial,'Malgun Gothic',sans-serif;color:#163638;background:#f4f6f4;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid #d6e1dc;background:white;color:#244744;border-radius:10px;padding:10px 12px;min-height:42px}button:hover{background:#edf6f0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #de9d35;outline-offset:2px}button:disabled{opacity:.5;cursor:wait}a{color:#27645b}button.selected,button.primary{background:#166851;color:#fff;border-color:#166851}button[hidden],[hidden]{display:none!important}.topbar{height:74px;background:#0d3435;color:white;display:flex;align-items:center;padding:0 28px;gap:18px}.brand{text-decoration:none;color:white;font-size:27px;letter-spacing:2px;font-weight:800;display:flex;align-items:center;gap:17px}.brand span{font-size:13px;letter-spacing:0;font-weight:400;opacity:.8}.beta{font-size:11px;border:1px solid #75958b;border-radius:20px;padding:5px 10px;color:#d4e4bc}.mall-link{margin-left:auto;color:#e1ece8;font-size:13px;text-decoration:none}.workspace{display:grid;grid-template-columns:402px 1fr;height:calc(100dvh - 74px)}.sidebar{overflow-y:auto;background:#fcfdfb;border-right:1px solid #cbd7cc;scrollbar-width:thin}.search-area{padding:26px 23px 16px;border-bottom:1px solid #e0e6df}.eyebrow{font-size:12px;letter-spacing:1px;color:#628271;margin:0 0 10px}h1{font-size:26px;letter-spacing:-1px;margin:0 0 21px}#searchForm{display:flex;border:1.5px solid #377b60;border-radius:12px;padding:4px;background:white;gap:4px}#query{width:100%;min-width:0;border:0;padding:8px;background:transparent;font-size:14px}#searchForm button{background:#166851;color:white;font-size:13px;white-space:nowrap}.search-options{display:flex;justify-content:space-between;align-items:center;margin:12px 0 16px;font-size:12px}.search-options button{font-size:12px;padding:4px 10px;min-height:32px}.search-options select{border:0;background:#edf1ed;border-radius:5px;padding:6px}.themes{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.themes button{font-size:13px;border-radius:8px}.character{margin:17px 23px 10px;background:#eff4ec;border-radius:14px;padding:9px 14px;display:flex;align-items:center;gap:16px}.character #mic{border:0;background:transparent;width:77px;padding:0;font-size:11px;font-weight:700;flex-shrink:0}.character img{height:74px;width:70px;object-fit:contain;display:block;transition:transform .2s}.character.listening img{animation:listen .8s alternate infinite}.character b{font-size:13px}.character p{font-size:11px;color:#587164;line-height:1.6;margin:5px 0}.character #mute{font-size:10px;min-height:25px;padding:3px 6px}.character.speaking img{animation:listen .35s alternate infinite}@keyframes listen{to{transform:translateY(-5px) rotate(3deg)}}#status{font-size:12px;line-height:1.7;margin:12px 23px;color:#4b655b}.saved-tabs{display:flex;gap:6px;margin:8px 23px 16px}.saved-tabs button{font-size:11px;min-height:30px;padding:5px 7px}#results{padding:0 23px}.place-card{display:block;width:100%;text-align:left;margin:0 0 9px;padding:15px;background:white;border-color:#e2e7df;border-radius:12px}.place-card strong{display:block;font-size:15px;margin:5px 0}.place-card small{display:block;color:#738074;font-size:11px;line-height:1.6}.place-card .badge{font-size:10px;color:#277253;display:inline-block;background:#eef5e9;border-radius:4px;padding:3px 6px}.place-card .distance{float:right;font-size:12px;font-weight:600}.map-stage{position:relative;min-width:0;background:#e7eee5}#map{position:absolute;inset:0}.map-caption{position:absolute;left:25px;top:22px;pointer-events:none;background:#fffefaed;padding:13px 17px;border:1px solid #d4ded4;border-radius:10px;font-size:11px;letter-spacing:2px;box-shadow:0 4px 16px #27402c0a}.map-caption span{display:block;margin-top:5px;letter-spacing:0;font-size:10px;color:#637d67}.center-map{position:absolute;bottom:65px;right:15px;font-size:25px;width:45px;height:45px;padding:0;box-shadow:0 2px 6px #0002}.coverage{position:absolute;bottom:26px;left:15px;right:65px;background:#fff4d9;border:1px solid #e5bc61;border-radius:8px;padding:10px;font-size:12px}.map-marker{background:#1c6d54;border:3px solid white;border-radius:50%;box-shadow:0 3px 8px #14382744;color:white;font-size:13px;font-weight:700;width:33px;height:33px;min-height:0;padding:0}.map-marker.external{background:#4c6887}.map-marker.destination{background:#be7034}.data-note{font-size:10px;color:#7d8b7d;line-height:1.8;padding:20px 23px;border-top:1px solid #edf0e9;margin-top:15px}#detail{padding:0 23px 15px}#detail h2{font-size:22px;margin:16px 0 10px}#detail p{font-size:12px;line-height:1.8}#detail .details-meta{font-size:10px;color:#647c6a;overflow-wrap:anywhere}#detail .actions{display:flex;gap:8px;flex-wrap:wrap}#detail .events{border:1px solid #e1d5a4;border-radius:9px;padding:12px;background:#fffbec}.events a{display:block;font-size:12px;margin:8px 0}.modes{display:flex;gap:7px}.modes button{flex:1;font-size:12px}#navigation{padding:15px 23px;border-top:1px solid #e0e6df}.route-summary{font-size:24px;font-weight:700;letter-spacing:-1px}.instruction{padding:14px;background:#e8f3e9;border-radius:8px;font-size:15px;line-height:1.7}.nav-actions{display:flex;gap:8px}.nav-actions button{flex:1}#maneuvers{padding-left:21px;font-size:12px;line-height:1.7;color:#536955}#maneuvers li{padding:5px 0}.disclaimer{font-size:10px;line-height:1.7;color:#806838}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.maplibregl-ctrl-attrib{font-size:10px!important}.user-dot{width:18px;height:18px;background:#167dd4;border:3px solid white;border-radius:50%;box-shadow:0 0 0 7px #288ddd25}
@media(max-width:760px){.topbar{height:60px;padding:0 14px;gap:8px}.brand{font-size:22px;gap:9px}.brand span{display:none}.beta{font-size:10px}.mall-link{font-size:11px}.workspace{display:flex;flex-direction:column-reverse;height:auto;min-height:calc(100dvh - 60px)}.map-stage{height:38dvh;min-height:240px;flex-shrink:0;position:sticky;top:0;z-index:2}.sidebar{overflow:visible;border:0}.search-area{padding:20px 18px 13px}h1{font-size:23px;margin-bottom:14px}.eyebrow{font-size:11px}.character{margin:14px 18px 10px}.character img{height:57px}#results,#detail,#navigation{padding-left:18px;padding-right:18px}.map-caption{left:12px;top:12px;padding:9px 11px}.data-note{padding-bottom:calc(30px + env(safe-area-inset-bottom))}.center-map{bottom:48px}.maplibregl-ctrl-top-right{top:65px}.saved-tabs{margin-left:18px}}

.fullscreen-map-btn{position:absolute;top:calc(12px + env(safe-area-inset-top));right:60px;width:52px;height:44px;padding:0;min-height:44px;border-radius:12px;font-size:13px;display:grid;place-items:center;background:#0f473f;color:#eff9f1;border-color:#f2cf83;box-shadow:0 8px 22px #0a1c141f;z-index:4}
.map-stage.fullscreen{position:fixed!important;inset:0;z-index:1200;width:100vw;height:100dvh;max-height:100dvh}
.map-stage.fullscreen #map{position:absolute;inset:0;width:100%;height:100%}
.map-stage.fullscreen .map-caption{left:16px;top:calc(70px + env(safe-area-inset-top))}
.map-stage.fullscreen .coverage{right:16px}
.map-stage.fullscreen .center-map{bottom:calc(72px + env(safe-area-inset-bottom));right:16px}
body.map-fullscreen{overflow:hidden}
.match-reason{color:#34614d;line-height:1.6}
@media(max-width:760px){.map-caption{max-width:calc(100% - 135px)}.map-caption span{display:none}.fullscreen-map-btn{right:12px}}

/* Place labels retain the numbered marker coordinate anchor. */
.map-marker{overflow:visible}.map-marker-name{position:absolute;top:calc(100% + 5px);left:50%;transform:translateX(-50%);display:block;width:max-content;max-width:150px;padding:4px 7px;border:1px solid #c5d3cb;border-radius:7px;background:#fffffff5;color:#173e35;box-shadow:0 2px 5px #14382726;font-size:11px;font-weight:700;line-height:1.35;white-space:normal;overflow-wrap:anywhere;text-align:center;pointer-events:auto}.map-marker-name.above{top:auto;bottom:calc(100% + 5px)}.map-marker:hover,.map-marker:focus-visible{z-index:5}.map-marker:focus-visible{outline:3px solid #e4b44b;outline-offset:3px}@media(max-width:600px){.map-marker-name{max-width:125px;font-size:10px}}
