:root,:host{--ol-background-color:white;--ol-accent-background-color:#f5f5f5;--ol-subtle-background-color:#80808040;--ol-partial-background-color:#ffffffbf;--ol-foreground-color:#333;--ol-subtle-foreground-color:#666;--ol-brand-color:#0af}.ol-box{box-sizing:border-box;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color);border-radius:2px}.ol-mouse-position{position:absolute;top:8px;right:8px}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;padding:2px;position:absolute;bottom:8px;left:8px}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color);text-align:center;will-change:contents, width;border-top:none;margin:1px;font-size:10px;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{background-color:var(--ol-foreground-color);float:right;z-index:10;width:1px;height:15px}.ol-scale-step-text{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);font-size:10px;position:absolute;bottom:-5px}.ol-scale-text{text-align:center;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);font-size:12px;position:absolute;bottom:25px}.ol-scale-singlebar{z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color);height:10px;position:relative}.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;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;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{background-color:var(--ol-subtle-background-color);border-radius:4px;position:absolute}.ol-rotate{transition:opacity .25s linear,visibility linear;top:.5em;right:.5em}.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{top:.5em;right:.5em}.ol-control button{color:var(--ol-subtle-foreground-color);font-weight:700;font-size:inherit;text-align:center;background-color:var(--ol-background-color);border:none;border-radius:2px;width:1.375em;height:1.375em;margin:1px;padding:0;line-height:.4em;text-decoration:none;display:block}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{will-change:transform;font-weight:400;display:block}.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{outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color);text-decoration:none}.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;flex-flow:row-reverse;align-items:center;max-width:calc(100% - 1.3em);display:flex;bottom:.5em;right:.5em}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);margin:0;padding:1px .5em;font-size:12px}.ol-attribution li{list-style:none;display:inline}.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{border-radius:4px 0 0;bottom:0;right:0}.ol-attribution.ol-uncollapsible img{max-height:1.6em;margin-top:-.2em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{height:200px;top:4.5em;left:.5em}.ol-zoomslider button{height:10px;position:relative}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{bottom:.5em;left:.5em}.ol-overviewmap.ol-uncollapsible{border-radius:0 4px 0 0;bottom:0;left:0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);width:150px;height:150px}.ol-overviewmap:not(.ol-collapsed) button{position:absolute;bottom:0;left:0}.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{--bg:#fff;--surface:#fff;--surface-2:#f3f5f4;--text:#17201b;--muted:#5b6760;--border:#d9dfdb;--accent:#1f8a3a;--accent-text:#fff;--danger:#b42318;--shadow:0 2px 10px #1018142e;--radius:12px;--topbar-h:56px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#101512;--surface:#18201b;--surface-2:#212b25;--text:#e8eee9;--muted:#9aa8a0;--border:#2f3b34;--accent:#3fbf62;--accent-text:#08130b;--danger:#ff8a7a;--shadow:0 2px 12px #0000008c}}:root[data-theme=dark]{--bg:#101512;--surface:#18201b;--surface-2:#212b25;--text:#e8eee9;--muted:#9aa8a0;--border:#2f3b34;--accent:#3fbf62;--accent-text:#08130b;--danger:#ff8a7a;--shadow:0 2px 12px #0000008c}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) [class^=base-plan] canvas{filter:invert()hue-rotate(180deg)brightness(.92)contrast(.92)saturate(.8)}}:root[data-theme=dark] [class^=base-plan] canvas{filter:invert()hue-rotate(180deg)brightness(.92)contrast(.92)saturate(.8)}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.map{position:fixed;inset:0}[hidden]{display:none!important}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.topbar{z-index:10;padding:8px max(12px, env(safe-area-inset-right)) 8px max(12px, env(safe-area-inset-left));min-height:var(--topbar-h);background:color-mix(in srgb, var(--surface) 94%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:var(--shadow);align-items:center;gap:10px;display:flex;position:fixed;top:0;left:0;right:0}.brand{white-space:nowrap;align-items:center;gap:8px;margin:0;font-size:16px;font-weight:700;display:flex}.brand img{border-radius:6px}.brand small{color:var(--muted);margin-left:2px;font-size:12px;font-weight:500}.search{flex:auto;min-width:0;max-width:560px;position:relative}.search .ico{width:18px;height:18px;color:var(--muted);pointer-events:none;position:absolute;top:50%;left:12px;translate:0 -50%}.search input{border:1px solid var(--border);background:var(--surface-2);width:100%;height:42px;color:var(--text);font:inherit;border-radius:999px;padding:0 14px 0 38px}.search input::placeholder{color:var(--muted)}.search input:focus{background:var(--surface)}.suggest{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);max-height:50vh;box-shadow:var(--shadow);margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:auto}.suggest li{cursor:pointer;border-radius:8px;padding:10px 12px}.suggest li:hover,.suggest li[aria-selected=true]{background:var(--surface-2)}.suggest li[aria-selected=true]{outline:2px solid var(--accent);outline-offset:-2px}.actions{gap:6px;margin-left:auto;display:flex}.ico{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:20px;height:20px}.btn{border:1px solid var(--border);background:var(--surface);height:42px;color:var(--text);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:0 12px;font-weight:600;display:inline-flex}.btn:hover{background:var(--surface-2)}.btn[aria-pressed=true],.btn[aria-expanded=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);justify-content:center;width:100%}.btn.small{height:36px;font-size:14px}.panel,.sheet{z-index:11;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:12px 14px 14px;position:fixed}.panel{top:calc(var(--topbar-h) + 14px);width:280px;max-height:calc(100dvh - var(--topbar-h) - 40px);right:12px;overflow:auto}.sheet{left:12px;top:calc(var(--topbar-h) + 14px);width:340px;max-height:calc(100dvh - var(--topbar-h) - 40px);overflow:auto}.panel-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.panel-head h2{margin:0;font-size:17px}.btn-close{width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;font-size:24px;line-height:1}.btn-close:hover{background:var(--surface-2);color:var(--text)}fieldset{border:0;margin:10px 0 0;padding:0}legend{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:4px;padding:0;font-size:12px;font-weight:700}.opt{cursor:pointer;align-items:center;gap:10px;min-height:40px;padding:4px 2px;display:flex}.opt input{width:20px;height:20px;accent-color:var(--accent);margin:0}.swatch{background:var(--c);border-radius:3px;width:18px;height:6px}dl{grid-template-columns:max-content 1fr;gap:6px 14px;margin:6px 0 4px;display:grid}dt{color:var(--muted)}dd{overflow-wrap:anywhere;margin:0;font-weight:600}.muted{color:var(--muted);margin:6px 0}.sheet-actions{gap:8px;margin-top:12px;display:flex}.chip{z-index:9;left:50%;bottom:calc(34px + env(safe-area-inset-bottom));background:var(--surface);color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow);pointer-events:none;white-space:nowrap;border-radius:999px;padding:8px 14px;font-weight:600;position:fixed;translate:-50%}.toast{z-index:30;left:50%;bottom:calc(80px + env(safe-area-inset-bottom));border-radius:var(--radius);color:#fff;max-width:min(92vw,520px);box-shadow:var(--shadow);background:#1f2a24;padding:12px 16px;position:fixed;translate:-50%}.login{background:var(--surface);width:min(92vw,380px);color:var(--text);box-shadow:var(--shadow);border:0;border-radius:16px;padding:24px}.login::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#080e0a99}.login form{gap:12px;display:grid}.login img{border-radius:10px}.login h2{margin:0}.login label{gap:4px;font-weight:600;display:grid}.login input{border:1px solid var(--border);background:var(--surface-2);height:44px;color:var(--text);font:inherit;border-radius:10px;padding:0 12px}.error{color:var(--danger);margin:0;font-weight:600}.ol-control{background:0 0}.ol-control button{background:var(--surface);width:40px;height:40px;color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:10px;margin:2px;font-size:22px;font-weight:600}.ol-control button:hover,.ol-control button:focus{background:var(--surface-2);color:var(--text)}.ol-zoom{top:calc(var(--topbar-h) + 18px);left:12px}.ol-rotate{top:calc(var(--topbar-h) + 18px + 92px);left:12px;right:auto}.ol-scale-line{left:12px;bottom:calc(10px + env(safe-area-inset-bottom));background:color-mix(in srgb, var(--surface) 85%, transparent);border-radius:6px}.ol-scale-line-inner{color:var(--text);border-color:var(--text)}.ol-attribution{bottom:calc(6px + env(safe-area-inset-bottom));right:6px}.ol-attribution ul{color:var(--text);background:color-mix(in srgb, var(--surface) 90%, transparent);text-shadow:none;border-radius:8px;padding:2px 8px}.ol-attribution a{color:var(--accent)}.ol-attribution button{width:28px;height:28px;font-size:14px}.range{color:var(--muted);align-items:center;gap:10px;margin-top:8px;font-size:14px;display:flex}.range input[type=range]{min-width:0;accent-color:var(--accent);flex:1;height:28px}.range output{text-align:right;min-width:3.2em;color:var(--text);font-weight:600}fieldset select{border:1px solid var(--border);background:var(--surface-2);width:100%;height:42px;color:var(--text);font:inherit;border-radius:10px;padding:0 10px}.btn.wide{justify-content:center;width:100%;margin-top:8px}.avatar{letter-spacing:.02em;justify-content:center;width:42px;padding:0;font-weight:700}.menu{width:260px}.map{background:var(--surface-2)}.account{overflow-wrap:anywhere;margin:2px 0 0;font-weight:600}@media (max-width:720px){.brand,.brand small,.brand span,.btn .lbl{display:none}.btn{justify-content:center;width:42px;padding:0}.search{max-width:none}.panel{width:auto;top:auto;left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));max-height:60dvh}.sheet{width:auto;top:auto;left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));max-height:55dvh}.chip{bottom:calc(44px + env(safe-area-inset-bottom))}.ol-scale-line{display:none}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.field{color:var(--muted);gap:4px;margin-top:8px;font-size:14px;display:grid}.field select,.field input{border:1px solid var(--border);background:var(--surface-2);height:40px;color:var(--text);font:inherit;border-radius:10px;width:100%;padding:0 10px}.field input:invalid{border-color:var(--danger)}.legend{flex-wrap:wrap;gap:4px 12px;margin-top:10px;font-size:13px;display:flex}.lg{align-items:center;gap:6px;display:inline-flex}.lg i{border-radius:3px;width:12px;height:12px;display:inline-block}.sheet-actions{flex-wrap:wrap}.chip.pill{pointer-events:auto;white-space:normal;align-items:center;gap:4px;max-width:92vw;padding:4px 6px 4px 14px;display:flex}.chip.pill .btn-close{width:32px;height:32px;font-size:20px}.measure{top:auto;left:50%;right:auto;bottom:calc(40px + env(safe-area-inset-bottom));width:min(92vw,420px);translate:-50%}.measure-out{min-height:1.4em;margin:10px 0 2px;font-weight:600}.btn[aria-pressed=true].small{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.ol-measure{top:calc(var(--topbar-h) + 18px + 92px);left:12px}.ol-rotate{top:calc(var(--topbar-h) + 18px + 138px)!important}.ol-measure button[aria-pressed=true]{background:var(--accent);color:var(--accent-text)}@media (max-width:720px){.measure{width:auto;left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));translate:none}.chip.pill{bottom:calc(52px + env(safe-area-inset-bottom))}.btn.small{justify-content:center;width:auto;padding:0 14px}.btn.small.wide{width:100%}.sheet-actions .btn.small{flex:auto}}.fold{border-top:1px solid var(--border);margin:10px 0 0;padding-top:6px}.fold>summary{cursor:pointer;letter-spacing:.04em;text-transform:uppercase;min-height:40px;color:var(--muted);align-items:center;gap:8px;font-size:12px;font-weight:700;list-style:none;display:flex}.fold>summary::-webkit-details-marker{display:none}.fold>summary:before{content:"▸";font-size:12px;transition:transform .15s}.fold[open]>summary:before{transform:rotate(90deg)}.badge{background:var(--accent);color:var(--accent-text);letter-spacing:0;text-transform:none;border-radius:999px;padding:1px 8px;font-size:11px}.note{color:var(--muted);margin:-2px 0 6px 40px;font-size:12px;display:block}.tags{flex-wrap:wrap;gap:6px;margin:8px 0 4px;display:flex}.tag{background:#0a84ff2e;border:1px solid #0a84ff73;border-radius:999px;padding:3px 10px;font-size:13px;font-weight:600}.small-print{margin-top:10px;font-size:12px}
