:root,:host{--ol-background-color: white;--ol-accent-background-color: #F5F5F5;--ol-subtle-background-color: rgba(128, 128, 128, .25);--ol-partial-background-color: rgba(255, 255, 255, .75);--ol-foreground-color: #333333;--ol-subtle-foreground-color: #666666;--ol-brand-color: #00AAFF}.ol-box{box-sizing:border-box;border-radius:2px;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color)}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);border-top:none;color:var(--ol-foreground-color);font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{width:1px;height:15px;background-color:var(--ol-foreground-color);float:right;z-index:10}.ol-scale-step-text{position:absolute;bottom:-5px;font-size:10px;z-index:11;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-text{position:absolute;font-size:12px;text-align:center;bottom:25px;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-singlebar{position:relative;height:10px;z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color)}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-viewport,.ol-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;user-select:text}.ol-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.ol-grab{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.ol-control{position:absolute;background-color:var(--ol-subtle-background-color);border-radius:4px}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{display:block;margin:1px;padding:0;color:var(--ol-subtle-foreground-color);font-weight:700;text-decoration:none;font-size:inherit;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:var(--ol-background-color);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:hover,.ol-control button:focus{text-decoration:none;outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em);display:flex;flex-flow:row-reverse;align-items:center}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{margin:0;padding:1px .5em;color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);font-size:12px}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);height:150px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:0;left:0;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-overviewmap .ol-viewport:hover{cursor:pointer}:root{color:#20251f;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;--ink: #20251f;--muted: #687067;--paper: #fffdf8;--green: #164a41;--green-hover: #0f3d35;--orange: #e4572e;--border: rgba(32, 37, 31, .14);--shadow: 0 18px 50px rgba(28, 37, 30, .18)}*{box-sizing:border-box}html,body,.app,.map{width:100%;height:100%;margin:0}body{overflow:hidden;background:#d9ddd5}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}.app{position:relative}.map{background:#d9ddd5}.map-popup{position:relative;width:245px;padding:16px;border:1px solid rgba(255,255,255,.78);border-radius:16px;background:#fffdf8f7;box-shadow:0 14px 36px #1c251e38;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.map-popup:after{position:absolute;top:100%;left:50%;width:12px;height:12px;border-right:1px solid rgba(32,37,31,.1);border-bottom:1px solid rgba(32,37,31,.1);background:var(--paper);content:"";transform:translate(-50%,-6px) rotate(45deg)}.popup-close,.dialog-close{position:absolute;top:8px;right:8px;display:grid;width:32px;height:32px;padding:0;place-items:center;border:0;border-radius:50%;color:var(--muted);background:transparent;font-size:1.35rem;cursor:pointer}.popup-close:hover,.dialog-close:hover{color:var(--ink);background:#20251f12}.popup-title{margin:0 34px 8px 0;color:var(--ink);font-size:.82rem;font-weight:800}.coordinates-button{padding:0;border:0;border-bottom:1px dashed currentColor;color:var(--orange);background:transparent;font-size:.9rem;font-weight:800;cursor:pointer}.popup-hint{margin:8px 0 0;color:var(--muted);font-size:.72rem;line-height:1.35}.control-panel{position:absolute;z-index:10;top:24px;left:24px;width:min(370px,calc(100% - 48px));padding:24px;border:1px solid rgba(255,255,255,.7);border-radius:24px;background:#fffdf8f0;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.eyebrow{margin:0 0 4px;color:var(--orange);font-size:.75rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}h1{margin:0;font-size:clamp(1.65rem,4vw,2.1rem);line-height:1.05;letter-spacing:-.04em}.icon-button{display:grid;flex:0 0 auto;width:44px;height:44px;padding:10px;border:1px solid var(--border);border-radius:50%;color:var(--green);background:#fff;cursor:pointer;transition:transform .15s ease,background .15s ease}.icon-button:hover{background:#f2eee4;transform:translateY(-1px)}.icon-button:disabled{cursor:wait;opacity:.55}.icon-button svg{width:100%;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.status{min-height:44px;margin:20px 0;color:var(--muted);font-size:.92rem;line-height:1.45}.status[data-type=error]{color:#a33b24}.status[data-type=success]{color:var(--green)}.controls{display:grid;gap:14px}.radius-field{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:.92rem;font-weight:700}.input-wrap{display:flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--border);border-radius:12px;color:var(--muted);background:#fff}.input-wrap:focus-within{border-color:var(--green);box-shadow:0 0 0 3px #164a411f}.input-wrap input{width:64px;padding:5px 0;border:0;outline:0;color:var(--ink);background:transparent;font-weight:800;text-align:right}.input-wrap:has(input[aria-invalid=true]){border-color:#b94228}.primary-button{min-height:52px;padding:14px 18px;border:0;border-radius:14px;color:#fff;background:var(--green);font-weight:800;cursor:pointer;transition:transform .15s ease,background .15s ease,opacity .15s ease}.primary-button:hover:not(:disabled){background:var(--green-hover);transform:translateY(-1px)}.primary-button:disabled{cursor:not-allowed;opacity:.4}.secondary-button{min-height:48px;padding:12px 18px;border:1px solid var(--border);border-radius:14px;color:var(--ink);background:#fff;font-weight:800;cursor:pointer}.secondary-button:hover{background:#f2eee4}.app-dialog{width:min(390px,calc(100% - 32px));padding:0;border:1px solid rgba(255,255,255,.7);border-radius:22px;color:var(--ink);background:var(--paper);box-shadow:var(--shadow)}.app-dialog::backdrop{background:#1218146b;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.app-dialog form{position:relative;padding:24px}.app-dialog h2{margin:0 36px 8px 0;font-size:1.35rem;letter-spacing:-.025em}.app-dialog p{margin:0 0 22px;color:var(--muted);line-height:1.45}.dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.dialog-actions .primary-button{min-height:48px}.dialog-coordinates{font-weight:700}.map-app-links{display:grid;gap:9px}.map-app-links a{padding:12px 14px;border:1px solid var(--border);border-radius:12px;color:var(--green);background:#fff;font-weight:800;text-decoration:none}.map-app-links a:hover{border-color:#164a4159;background:#f2eee4}.hint{margin:14px 0 0;color:var(--muted);font-size:.78rem;line-height:1.4}.legend{position:absolute;z-index:10;right:14px;bottom:28px;display:flex;gap:14px;padding:9px 12px;border:1px solid rgba(255,255,255,.7);border-radius:12px;background:#fffdf8eb;box-shadow:0 8px 24px #1c251e1f;color:var(--muted);font-size:.75rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.legend span{display:flex;align-items:center;gap:6px}.legend-dot{width:9px;height:9px;border-radius:50%}.legend-dot--origin{background:var(--green)}.legend-dot--destination{background:var(--orange)}.ol-zoom{inset:auto 14px 82px auto}.ol-control button{color:var(--green);background:#fffdf8f0}.ol-control button:hover,.ol-control button:focus{color:#fff;background:var(--green)}.ol-attribution{right:14px;bottom:8px;border-radius:8px 0 0}@media(max-width:700px){.control-panel{top:auto;right:12px;bottom:max(16px,env(safe-area-inset-bottom));left:12px;width:auto;padding:18px;border-radius:20px}.status{min-height:0;margin:12px 0 14px}.hint{display:none}.legend{top:max(12px,env(safe-area-inset-top));right:12px;bottom:auto}.ol-zoom{top:max(58px,calc(env(safe-area-inset-top) + 58px));right:12px;bottom:auto}.app .ol-attribution{top:max(12px,env(safe-area-inset-top));right:auto;bottom:auto;left:8px;width:auto;height:auto;max-width:calc(100% - 150px);font-size:.65rem}}@media(max-width:380px){.control-panel{padding:15px}.radius-field{align-items:flex-start;flex-direction:column;gap:7px}.input-wrap{width:100%;justify-content:flex-end}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
