.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:#ffffff80}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px #000000a6;border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px #0006;background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url("./media/layers-55W3Q4RM.png");width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url("./media/layers-2x-TBM42ERR.png");background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url("./media/marker-icon-2V3QKKVC.png")}.leaflet-container .leaflet-control-attribution{background:#fff;background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;-moz-box-sizing:border-box;box-sizing:border-box;background:#fffc;text-shadow:1px 1px #fff}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678,M12=.70710678,M21=-.70710678,M22=.70710678)}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url("./media/ibm-plex-sans-latin-400-normal-COQVXTP6.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url("./media/ibm-plex-sans-latin-ext-400-normal-EDOVP6TU.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-display:swap;src:url("./media/ibm-plex-sans-latin-500-normal-JTONHBWS.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-display:swap;src:url("./media/ibm-plex-sans-latin-ext-500-normal-SG2XNXKB.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-display:swap;src:url("./media/ibm-plex-sans-latin-600-normal-DTNZULF4.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-display:swap;src:url("./media/ibm-plex-sans-latin-ext-600-normal-ZNWKNRXL.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url("./media/ibm-plex-mono-latin-400-normal-A2WATXFY.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url("./media/ibm-plex-mono-latin-ext-400-normal-T6XOR2FX.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url("./media/ibm-plex-mono-latin-500-normal-33HAQIPI.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url("./media/ibm-plex-mono-latin-ext-500-normal-LJE4XY22.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url("./media/ibm-plex-mono-latin-600-normal-IIV3OB4N.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url("./media/ibm-plex-mono-latin-ext-600-normal-IEJYURAG.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:IBM Plex Sans,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-primary, oklch(97.5% .004 260deg));color:var(--text-secondary, oklch(50% .025 262deg));line-height:1.5;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body:before{content:"";position:fixed;inset:0;background-image:linear-gradient(var(--grid-color, transparent) 1px,transparent 1px),linear-gradient(90deg,var(--grid-color, transparent) 1px,transparent 1px);background-size:60px 60px;pointer-events:none;z-index:-1}body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}:root{--bg-primary: oklch(97.5% .004 260deg);--bg-secondary: oklch(100% 0 0deg);--bg-card: oklch(100% 0 0deg);--bg-card-hover: oklch(97.5% .006 262deg);--surface: oklch(100% 0 0deg);--surface-muted: oklch(98.8% .003 262deg);--surface-hover: oklch(97.5% .006 262deg);--border: oklch(91.5% .008 262deg);--border-subtle: oklch(95.5% .005 262deg);--border-soft: oklch(95.5% .005 262deg);--border-inner: oklch(94% .006 262deg);--border-strong: oklch(90% .01 262deg);--border-color: var(--border);--text-primary: oklch(23% .035 264deg);--text-secondary: oklch(50% .025 262deg);--text-muted: oklch(62% .02 262deg);--ink: oklch(23% .035 264deg);--ink-2: oklch(.33 .03 262);--ink-3: oklch(50% .025 262deg);--ink-4: oklch(62% .02 262deg);--accent-primary: oklch(47% .16 262deg);--accent-secondary: oklch(40% .16 262deg);--accent-glow: oklch(95.5% .02 262deg);--brand: oklch(55% .17 262deg);--brand-deep: oklch(42% .16 262deg);--brand-deeper: oklch(36% .16 262deg);--brand-ink: oklch(45% .14 262deg);--brand-wash: oklch(95.5% .02 262deg);--nav-bg: oklch(21.5% .035 264deg);--nav-fg: oklch(99% .002 260deg);--nav-fg-dim: oklch(80% .015 262deg);--nav-line: oklch(100% 0 0deg / .13);--nav-fill: oklch(100% 0 0deg / .04);--nav-fill-strong: oklch(100% 0 0deg / .13);--ok: oklch(66% .14 152deg);--ok-ink: oklch(45% .13 152deg);--ok-wash: oklch(95.5% .03 152deg);--warn: oklch(72% .14 75deg);--warn-ink: oklch(44% .09 75deg);--warn-wash: oklch(96.5% .035 85deg);--warn-border: oklch(89% .06 85deg);--danger-ink: oklch(50% .15 25deg);--danger-wash: oklch(96% .025 25deg);--category-infra: oklch(58% .06 262deg);--category-palvelut: oklch(62% .03 262deg);--category-terveys: oklch(62% .11 190deg);--category-kalusto: oklch(75% .14 75deg);--category-rakentaminen: oklch(60% .13 232deg);--cat-tontit: oklch(.62 .15 150);--cat-rakentaminen: oklch(60% .13 232deg);--cat-palvelut: oklch(62% .03 262deg);--cat-ict: oklch(.58 .16 300);--cat-energia: oklch(75% .14 75deg);--cat-infra: oklch(58% .06 262deg);--cat-terveys: oklch(62% .11 190deg);--cat-muu: oklch(.7 .015 262);--zoning-detailed-plan: #2563eb;--zoning-master-plan: #15803d;--zoning-partial-master-plan: #4d7c0f;--zoning-shore-detailed-plan: #0e7490;--zoning-regional-plan: #9333ea;--zoning-plan-other: #64748b;--zoning-status-initiated: #64748b;--zoning-status-oas: #0369a1;--zoning-status-draft: #b45309;--zoning-status-proposal: #c2410c;--zoning-status-approved: #15803d;--zoning-status-appealed: #b91c1c;--zoning-status-in-force: #166534;--zoning-status-inactive: #64748b;--value-highlight: oklch(52% .13 75deg);--shadow-card: 0 1px 2px oklch(24% .03 264deg / .04), 0 12px 34px oklch(24% .03 264deg / .05);--shadow-flat: 0 1px 2px oklch(24% .03 264deg / .04);--shadow-elevated: 0 18px 46px oklch(24% .03 264deg / .18), 0 2px 6px oklch(24% .03 264deg / .08);--shadow-pop: 0 18px 46px oklch(24% .03 264deg / .18), 0 2px 6px oklch(24% .03 264deg / .08);--shadow-glow: 0 0 0 3px oklch(55% .17 262deg / .18);--shadow-nav: 0 1px 0 oklch(100% 0 0deg / .06) inset, 0 8px 30px oklch(20% .03 264deg / .14);--grid-color: transparent;--btn-text: oklch(99% 0 0deg);--r-sm: 6px;--r-md: 11px;--r-lg: 14px;--r-xl: 18px;--r-pill: 999px;--page-max: 1360px;--header-h: 74px;--gutter: clamp(16px, 2.4vw, 32px);--font-sans: IBM Plex Sans, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;--font-mono: IBM Plex Mono, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, monospace}[data-theme=light]{color-scheme:light}[data-theme=dark]{color-scheme:dark;--bg-primary: oklch(.175 .022 264);--bg-secondary: oklch(.225 .025 264);--bg-card: oklch(.225 .025 264);--bg-card-hover: oklch(.265 .028 264);--surface: oklch(.225 .025 264);--surface-muted: oklch(.205 .024 264);--surface-hover: oklch(.265 .028 264);--border: oklch(.33 .025 264);--border-subtle: oklch(.285 .024 264);--border-soft: oklch(.285 .024 264);--border-inner: oklch(.3 .025 264);--border-strong: oklch(.38 .028 264);--text-primary: oklch(.97 .004 262);--text-secondary: oklch(.78 .015 262);--text-muted: oklch(.63 .018 262);--ink: oklch(.97 .004 262);--ink-2: oklch(.88 .01 262);--ink-3: oklch(.78 .015 262);--ink-4: oklch(.63 .018 262);--accent-primary: oklch(.72 .14 262);--accent-secondary: oklch(.8 .12 262);--accent-glow: oklch(.3 .055 264);--brand: oklch(.66 .16 262);--brand-deep: oklch(.58 .16 262);--brand-deeper: oklch(.66 .16 262);--brand-ink: oklch(.78 .12 262);--brand-wash: oklch(.3 .055 264);--nav-bg: oklch(.145 .02 264);--nav-fg: oklch(.99 .002 260);--nav-fg-dim: oklch(.76 .015 262);--nav-line: oklch(1 0 0 / .12);--nav-fill: oklch(1 0 0 / .05);--nav-fill-strong: oklch(1 0 0 / .14);--ok: oklch(.72 .15 152);--ok-ink: oklch(.8 .15 152);--ok-wash: oklch(.3 .05 152);--warn: oklch(.78 .14 75);--warn-ink: oklch(.84 .12 80);--warn-wash: oklch(.3 .05 80);--warn-border: oklch(.4 .07 80);--danger-ink: oklch(.75 .15 25);--danger-wash: oklch(.3 .06 25);--category-infra: oklch(.72 .1 262);--category-palvelut: oklch(.75 .05 262);--category-terveys: oklch(.74 .12 190);--category-kalusto: oklch(.82 .14 80);--category-rakentaminen: oklch(.74 .13 232);--cat-tontit: oklch(.74 .15 150);--cat-rakentaminen: oklch(.74 .13 232);--cat-palvelut: oklch(.75 .05 262);--cat-ict: oklch(.72 .16 300);--cat-energia: oklch(.82 .14 80);--cat-infra: oklch(.72 .1 262);--cat-terveys: oklch(.74 .12 190);--cat-muu: oklch(.72 .02 262);--zoning-detailed-plan: #7ba2f5;--zoning-master-plan: #4ade80;--zoning-partial-master-plan: #a3e635;--zoning-shore-detailed-plan: #38bdf8;--zoning-regional-plan: #c084fc;--zoning-plan-other: #94a3b8;--zoning-status-initiated: #94a3b8;--zoning-status-oas: #38bdf8;--zoning-status-draft: #fbbf24;--zoning-status-proposal: #fb923c;--zoning-status-approved: #4ade80;--zoning-status-appealed: #f87171;--zoning-status-in-force: #34d399;--zoning-status-inactive: #94a3b8;--value-highlight: oklch(.82 .14 80);--shadow-card: 0 1px 2px oklch(0 0 0 / .35), 0 12px 34px oklch(0 0 0 / .3);--shadow-flat: 0 1px 2px oklch(0 0 0 / .35);--shadow-elevated: 0 18px 46px oklch(0 0 0 / .55), 0 2px 6px oklch(0 0 0 / .35);--shadow-pop: 0 18px 46px oklch(0 0 0 / .55), 0 2px 6px oklch(0 0 0 / .35);--shadow-glow: 0 0 0 3px oklch(.72 .14 262 / .25);--shadow-nav: 0 1px 0 oklch(1 0 0 / .04) inset, 0 8px 30px oklch(0 0 0 / .35);--btn-text: oklch(.16 .02 264)}a{color:var(--accent-primary);text-decoration:none;transition:color .15s ease}a:hover{color:var(--accent-secondary)}button{font-family:inherit;cursor:pointer;border:none;background:none}input,select,textarea{font-family:inherit;font-size:16px}:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px;border-radius:var(--r-sm)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.container{width:100%;max-width:1360px;margin:0 auto;padding:0 var(--gutter)}.eyebrow{font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:10.5px;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--text-secondary)}.eyebrow--lg{font-size:11.5px;letter-spacing:.14em}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-card)}.card--flat{box-shadow:var(--shadow-flat)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1.125rem;border-radius:var(--r-md);font-size:.875rem;font-weight:500;letter-spacing:-.005em;cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease;border:1px solid transparent;background:transparent;font-family:inherit;color:var(--text-primary)}.btn-ghost{background:var(--surface);border-color:var(--border-strong);color:var(--text-primary)}.btn-ghost:hover{color:var(--text-primary);border-color:var(--accent-primary)}.btn-primary{background:var(--brand-deep);border-color:var(--brand-deep);color:var(--btn-text);font-weight:600}.btn-primary:hover{background:var(--brand-deeper);border-color:var(--brand-deeper)}.mono{font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace}@media print{.header,.app-footer,.km-search,.km-chipbar,.filter-drawer{display:none!important}body{background:#fff}.card,.km-card{box-shadow:none}}
