:root{--ink: #14202b;--ink2: #1e2e3c;--paper: #f3efe6;--mute: #8da0b0;--hi: #ffd23f}*,*:before,*:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;margin:0;background:var(--ink);color:var(--paper);font-family:Barlow Semi Condensed,Arial Narrow,system-ui,sans-serif;overscroll-behavior:none}#app{position:relative;width:100%;height:100%}#map{position:absolute;inset:0 0 auto;height:100%;background:#dfe6ea}#sheet{position:absolute;left:0;right:0;bottom:0;z-index:1000;background:var(--ink);color:var(--paper);border-radius:18px 18px 0 0;padding:6px 14px calc(12px + env(safe-area-inset-bottom,0px));box-shadow:0 -6px 24px #00000059;transition:transform .25s ease}#sheet.min{transform:translateY(calc(100% - 58px))}#grip{position:relative;display:flex;align-items:center;justify-content:space-between;height:46px;cursor:pointer}#grip h1{font-size:19px;font-weight:700;letter-spacing:.04em;margin:0;text-transform:uppercase}#grip h1 b{color:var(--hi)}#grip span{font-size:14px;color:var(--mute);font-weight:500}#grip:before{content:"";position:absolute;top:6px;left:50%;width:38px;height:4px;margin-left:-19px;border-radius:2px;background:#3a4c5c}#tabs{display:flex;gap:6px;margin:0 0 10px}#tabs button{flex:1;height:36px;border:0;border-radius:9px;background:var(--ink2);color:var(--mute);font:700 15px inherit;font-family:inherit;letter-spacing:.06em;text-transform:uppercase}#tabs button.act{background:var(--paper);color:var(--ink)}#chips{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:4px 0 10px}.chip{height:44px;border-radius:10px;border:2px solid var(--c);background:transparent;color:var(--paper);font:700 19px/1 inherit;font-family:inherit;opacity:.55}.chip.on{background:var(--c);color:#fff;opacity:1}.chip.lt.on{color:var(--ink)}#tools{display:flex;gap:8px}#tools button{flex:1;height:38px;border-radius:9px;border:0;background:var(--ink2);color:var(--paper);font:600 15px inherit;font-family:inherit;letter-spacing:.03em}#tools button.act{background:var(--hi);color:var(--ink)}#names{margin:10px 0 0;padding:0;list-style:none;max-height:22vh;overflow:auto;font-size:15px;font-weight:500}#names li{display:flex;gap:8px;align-items:center;padding:3px 0;color:#d6dde3}#names i{flex:0 0 30px;height:20px;border-radius:5px;background:var(--c);color:#fff;font:700 13px/20px inherit;font-family:inherit;text-align:center;font-style:normal}#loc,#cfg{position:absolute;right:12px;z-index:1000;width:46px;height:46px;border-radius:50%;border:0;background:var(--ink);color:var(--paper);box-shadow:0 2px 10px #00000059}#loc{top:calc(12px + env(safe-area-inset-top,0px));color:var(--hi);font-size:22px}#loc.on{background:#1a73e8;color:#fff}#cfg{top:calc(68px + env(safe-area-inset-top,0px));font-size:20px}#msg{position:absolute;left:12px;right:70px;top:calc(14px + env(safe-area-inset-top,0px));z-index:1000;background:var(--ink);color:var(--paper);padding:9px 12px;border-radius:10px;font-size:14px;display:none}#msg.show{display:block}.stop{width:12px;height:12px;border-radius:50%;background:#fff;border:3px solid var(--ink)}.arrow-marker svg{display:block;filter:drop-shadow(0 0 1px #fff)}.pin{width:26px;height:26px;border-radius:50%;border:3px solid #fff;box-shadow:0 1px 6px #00000080;font:700 13px/20px Barlow Semi Condensed,sans-serif;text-align:center;color:#14202b}.leaflet-popup-content-wrapper{border-radius:12px;background:var(--ink);color:var(--paper);font-family:inherit}.leaflet-popup-tip{background:var(--ink)}.leaflet-popup-content{margin:12px 14px;font-size:15px}.pop b{font-size:22px;font-weight:700;display:block;margin-bottom:6px}.pop small{color:var(--mute);display:block;margin-bottom:6px;text-transform:uppercase;letter-spacing:.06em}.pop button{margin:0 5px 5px 0;min-width:40px;min-height:44px;border-radius:7px;border:0;background:var(--c, #3a4c5c);color:#fff;font:700 15px inherit;font-family:inherit;padding:0 10px}.pop .pop-actions{margin-top:6px;border-top:1px solid #2a3c4b;padding-top:6px}.pop .pop-actions button{background:var(--ink2);color:var(--paper);font-weight:600;font-size:14px}.leaflet-control-attribution{font-size:10px}.leaflet-bottom{bottom:58px}.od{display:flex;gap:6px;margin-bottom:6px;align-items:center}.od em{flex:0 0 26px;height:26px;border-radius:50%;font:700 14px/26px inherit;font-family:inherit;text-align:center;font-style:normal;color:var(--ink);background:var(--hi)}.od em.d{background:var(--paper)}.od input{flex:1;min-width:0;height:44px;border-radius:9px;border:0;background:var(--ink2);color:var(--paper);padding:0 10px;font:500 15px inherit;font-family:inherit}.od button{flex:0 0 44px;height:44px;border-radius:9px;border:0;background:var(--ink2);color:var(--hi);font-size:17px}.od button.arm{background:var(--hi);color:var(--ink)}#res{max-height:40vh;overflow:auto;margin-top:8px;font-size:15px}#res .tot{display:flex;align-items:baseline;gap:10px;margin:4px 0 8px}#res .tot b{font-size:30px;font-weight:700;color:var(--hi)}#res .tot span{color:var(--mute)}.leg{display:flex;gap:10px;align-items:center;padding:6px 0;border-top:1px solid #2a3c4b}.leg i{flex:0 0 38px;height:24px;border-radius:6px;background:var(--c, #3a4c5c);color:#fff;font:700 14px/24px inherit;font-family:inherit;text-align:center;font-style:normal}.leg div{flex:1}.leg small{color:var(--mute);display:block}.leg u{text-decoration:none;color:var(--mute);white-space:nowrap}.alt{margin-top:8px;width:100%;height:44px;border:1px dashed #3a4c5c;border-radius:9px;background:transparent;color:var(--paper);font:600 14px inherit;font-family:inherit}.note{color:var(--mute);font-size:12.5px;margin-top:8px;line-height:1.35}#dlg{position:absolute;inset:0;z-index:2000;background:#0a1016b3;display:none;align-items:center;justify-content:center;padding:20px}#dlg.show{display:flex}#dlg>div{background:var(--ink);color:var(--paper);border-radius:16px;padding:18px;max-width:420px;width:100%}#dlg h2{margin:0 0 8px;font-size:20px;text-transform:uppercase;letter-spacing:.04em}#dlg p{font-size:14px;color:#c4ced6;line-height:1.4;margin:0 0 10px}#dlg input{width:100%;height:44px;border-radius:9px;border:0;background:var(--ink2);color:var(--paper);padding:0 10px;font:500 14px monospace}#dlg .row{display:flex;gap:8px;margin-top:12px}#dlg .row button{flex:1;height:44px;border:0;border-radius:9px;font:700 15px inherit;font-family:inherit;background:var(--ink2);color:var(--paper)}#dlg .row button.ok{background:var(--hi);color:var(--ink)}
