.mobile-menu{position:fixed;inset:0 0 0 auto;margin:0;padding:0;width:min(304px,calc(100vw - 32px));max-width:none;height:100dvh;max-height:none;border:0;border-left:1px solid var(--ds-line);border-radius:0;color:var(--ds-text);background:var(--ds-surface);box-shadow:-16px 0 48px #0003}.mobile-menu::backdrop{background:#0009}.mobile-menu-content{display:flex;flex-direction:column;min-height:100%;padding:calc(6px + env(safe-area-inset-top)) 12px max(24px,env(safe-area-inset-bottom))}.mobile-menu-heading{display:flex;align-items:center;justify-content:space-between;min-height:56px;gap:4px;padding-left:8px}.mobile-menu-heading h2{margin:0;font-family:Space Grotesk,Inter,system-ui,sans-serif;font-size:18px;font-weight:700;color:var(--ds-text)}.mobile-menu-heading .icon-button{display:grid;place-items:center;padding:0;border:0;border-radius:12px;color:var(--ds-text);width:44px;height:44px;flex-shrink:0;background:transparent}.mobile-menu-nav{display:flex;flex-direction:column;gap:2px;margin:8px 0 24px}.mobile-menu-nav :is(a,button){border:0;font-family:inherit;line-height:1.5;display:flex;align-items:center;gap:14px;min-height:48px;padding:12px;border-radius:12px;text-decoration:none;background:transparent;color:var(--ds-text);font-size:16px;font-weight:500;text-align:left}.mobile-menu-nav svg{color:var(--ds-sec);flex-shrink:0}.mobile-menu-nav :is(a,button):hover{background:var(--ds-hover)}.mobile-menu-nav :is([aria-current=page],[aria-pressed=true]){background:var(--ds-raised);color:var(--ds-accent)}.mobile-menu-nav [aria-current=page] svg{color:inherit}.mobile-menu-nav hr{width:calc(100% - 24px);margin:8px 12px;border:0;border-top:1px solid var(--ds-line)}.mobile-menu-footer{margin-top:auto;padding:0 4px}.mobile-menu .site-controls{display:grid;grid-template-columns:1fr auto;align-items:center;gap:16px 8px}.menu-control-label{color:var(--ds-sec);font-size:14px}.mobile-menu .language-control{display:inline-flex;gap:2px;padding:3px;border:1px solid var(--ds-border);border-radius:12px;background:var(--ds-raised);border-color:var(--ds-border)}.mobile-menu .language-control :is(a,button){display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:9px;background:transparent;font-size:13px;font-weight:650;line-height:1.4;text-decoration:none;min-width:44px;min-height:38px;padding:6px 8px;color:var(--ds-text)}.mobile-menu .language-control :is([aria-pressed=true],[aria-current=page]){color:var(--ds-accent);background:var(--ds-surface)}.mobile-menu .theme-toggle{border:0;justify-self:end;width:50px;min-height:30px;height:30px;padding:3px;background:#8e8e93;border-radius:20px;display:block}.mobile-menu .theme-toggle svg{display:none}.mobile-menu .theme-toggle:after{content:"";display:block;width:24px;height:24px;border-radius:50%;background:#fff;transition:transform .15s}.mobile-menu .theme-toggle[aria-checked=true]{background:#34c759}.mobile-menu .theme-toggle[aria-checked=true]:after{transform:translate(20px)}.mobile-menu-status{display:flex;align-items:center;gap:8px;padding-top:16px;margin-top:20px;border-top:1px solid var(--ds-line);color:var(--ds-sec);font-size:12px;line-height:1.6}.menu-status-dot{width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:#34c759}.menu-status-dot.offline{background:#8e8e93}@media(prefers-reduced-motion:reduce){.mobile-menu .theme-toggle:after{transition:none}}.mobile-menu.menu-popover{inset:calc(var(--site-header-height) - 4px) 12px auto auto;width:300px;height:auto;border:1px solid var(--ds-border);border-radius:16px;box-shadow:0 16px 40px #00000059}.mobile-menu.menu-popover::backdrop{background:transparent}.menu-popover .mobile-menu-content{min-height:0;padding:8px}.menu-popover .mobile-menu-nav{margin:0}.menu-popover .mobile-menu-nav :is(a,button){font-size:15px}.menu-popover .mobile-menu-nav hr{margin:4px 8px;width:calc(100% - 16px)}.menu-popover .mobile-menu-footer{padding:6px 8px 6px 12px}.menu-popover .site-controls{gap:12px 8px}.install-dialog{width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - 32px);margin:auto;padding:0;border:1px solid var(--ds-line);border-radius:20px;color:var(--ds-text);background:var(--ds-surface);box-shadow:0 16px 64px #0004}.install-dialog::backdrop{background:#0009}.install-dialog-content{padding:20px}.install-dialog header{display:flex;align-items:center;gap:12px}.install-dialog h2{margin:0;flex:1;font-size:20px}.install-dialog p,.install-dialog li{line-height:1.6}.install-dialog ol{padding-left:22px}.install-dialog li+li{margin-top:12px}.install-dialog .install-note{font-size:13px;margin-bottom:0}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/static/map/assets/inter-latin-ext-B_-bZUTo.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/static/map/assets/inter-latin-8kRkwJBP.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:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(/static/map/assets/space-grotesk-latin-ext-wJGaI8U0.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(/static/map/assets/space-grotesk-latin-DPT1xrvW.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}h1,h2,h3,.brand{font-family:Space Grotesk,Inter,system-ui,sans-serif}:root{--ds-page: #f3f5f7;--ds-surface: #fff;--ds-raised: #eef1f4;--ds-sunken: #f3f5f7;--ds-line: #e3e7eb;--ds-border: #d3d9df;--ds-handle: #c5ccd3;--ds-text: #111820;--ds-sec: #4a5562;--ds-muted: #6b7582;--ds-glass: rgba(255, 255, 255, .94);--ds-accent: #1c7a3c;--ds-green: #34c759;--ds-on-green: #0b0f14;--ds-hover: rgba(127, 127, 127, .12);--ds-shadow: 0 8px 24px rgba(0, 0, 0, .25)}:root[data-theme=dark]{--ds-page: #0b0f14;--ds-surface: #141a21;--ds-raised: #1c232c;--ds-sunken: #0f141a;--ds-line: #1e2730;--ds-border: #2a3440;--ds-handle: #3d4a59;--ds-text: #e8ecef;--ds-sec: #a7b1bd;--ds-muted: #6c7684;--ds-glass: rgba(20, 26, 33, .94);--ds-accent: #34c759;--dark-background: var(--ds-page);--dark-surface: var(--ds-surface);--dark-raised: var(--ds-raised);--dark-selected: var(--ds-raised);--dark-separator: var(--ds-border);--dark-label: var(--ds-text);--dark-secondary: var(--ds-sec);--dark-tertiary: var(--ds-muted);--dark-accent: var(--ds-accent);color-scheme:dark;color:var(--dark-label);background:var(--dark-background)}:root[data-theme=light]{color-scheme:light}[data-theme=dark] .content-page{--green: var(--dark-accent);--line: var(--dark-separator);--muted: var(--dark-secondary);color:var(--dark-label);background:var(--dark-background)}[data-theme=dark] .content-page :is(a,.text-button):where(:not(.site-header *,.mobile-menu *)),[data-theme=dark] .content-page #tietosuoja summary{color:var(--dark-accent)}[data-theme=dark] .content-page :is(a:hover,.text-button:hover):where(:not(.site-header *,.mobile-menu *)){color:#73e694}[data-theme=dark] .content-page :is(.site-footer,.city-stats,.finder,.station-card,.comparison,.city-links a,.empty-results,.filter-dropdown summary,.filter-dropdown fieldset,.skip-link:focus){background:var(--dark-surface);color:var(--dark-label);border-color:var(--dark-separator)}[data-theme=dark] .content-page :is(button,.button-link,input,select,.check-filter,.search-input,.sort-label select,.empty-icon,.rank){background:var(--dark-raised);color:var(--dark-label);border-color:var(--dark-separator)}[data-theme=dark] .content-page .search-input input{background:transparent}[data-theme=dark] .content-page :is(.station-list,.map-shell,.map-placeholder){background:var(--dark-background)}[data-theme=dark] .content-page :is(.breadcrumbs [aria-current],.card-heading h3 a,.brand,.map-placeholder h3){color:var(--dark-label)}[data-theme=dark] .content-page :is(.introduction p,.information-lead,.operator,.comparison-note,.data-columns p,.map-placeholder-icon){color:var(--dark-secondary)}[data-theme=dark] .content-page :is(.city-stats>div+div,.filters,.list-panel,.results-toolbar,.card-footer,.comparison li,.comparison-action){border-color:var(--dark-separator)}[data-theme=dark] .content-page :is(button:hover,.button-link:hover,.city-links a:hover,.filter-dropdown label:hover,.filter-dropdown[open] summary,.view-toggle,.station-card.selected,.map-selection,.disclaimer){background:var(--dark-selected);color:var(--dark-label);border-color:var(--dark-separator)}[data-theme=dark] .content-page :is(.quick-row [aria-pressed=true],.view-toggle [aria-pressed=true],.check-filter:has(:checked)),[data-theme=dark] #city-map-controls button[aria-pressed=true]{background:var(--dark-selected);color:var(--dark-accent);border-color:var(--dark-accent)}[data-theme=dark] .content-page .primary-button{background:var(--dark-accent);color:#071a0d}[data-theme=dark] .content-page .power-tag{background:var(--dark-selected);color:var(--dark-label)}[data-theme=dark] .content-page .availability{background:var(--dark-raised);color:var(--dark-secondary)}[data-theme=dark] .content-page .availability.free{background:#173321;color:#30d158}[data-theme=dark] .content-page .availability.busy{background:#3a2b16;color:#ff9f0a}[data-theme=dark] .content-page .availability.broken{background:#391d1c;color:#ff6b62}[data-theme=dark] .content-page .notice{background:#3a2b16;color:#ffd38b;border-color:#705021}[data-theme=dark] .content-page .text-button{background:transparent}[data-theme=dark] .content-page .station-card.selected{border-color:var(--dark-accent)}[data-theme=dark] .station-map-canvas :is(.maplibregl-ctrl-group,.maplibregl-ctrl-group button,.maplibregl-ctrl-scale,.maplibregl-ctrl-attrib){background:var(--dark-surface);color:var(--dark-label);border-color:var(--dark-separator)}[data-theme=dark] .station-map-canvas .maplibregl-ctrl-icon,[data-theme=dark] .station-map-canvas .maplibregl-ctrl-attrib-button{filter:invert(1)}[data-theme=dark] .station-map-canvas .maplibregl-ctrl-attrib a{color:var(--dark-label)}[data-theme=dark] .station-chooser,[data-theme=dark] .station-chooser .station-row{background:var(--dark-surface);color:var(--dark-label);border-color:var(--dark-separator)}:root{--site-header-height: 60px}.site-header,.header.site-header{height:var(--site-header-height);padding:0;background:var(--ds-surface);border-bottom:1px solid var(--ds-line);color:var(--ds-text)}.site-header .site-header-inner{width:100%;height:100%;padding:0 12px 0 20px;display:flex;align-items:center;gap:28px}.site-header .brand{flex:none;gap:10px;font-size:19px;font-weight:700;letter-spacing:-.3px;line-height:1.4;white-space:nowrap;color:var(--ds-text)}.site-header .brand-icon{width:34px;height:34px;border-radius:10px}.site-header .brand span{display:inline}.site-header .site-nav{display:flex;align-items:center;flex:1;min-width:0;gap:4px;margin:0}.site-header .site-nav a{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border-radius:12px;font-size:15px;font-weight:500;line-height:1.2;color:var(--ds-text);white-space:nowrap;text-decoration:none}.site-header .site-nav a:hover{background:var(--ds-hover)}.site-header .site-nav a[aria-current=page]{background:var(--ds-raised);color:var(--ds-accent);font-weight:600}.site-header .header-right{display:flex;align-items:center;flex:none;gap:2px;margin-left:auto}.site-header .map-tools{display:flex;align-items:center;gap:2px}.site-header .site-controls{display:flex;align-items:center;flex:none;gap:6px;margin-left:auto}.site-header .header-right .site-controls{margin-left:6px;padding-left:12px;border-left:1px solid var(--ds-line)}.site-header .site-languages{display:flex;align-items:center;gap:2px;margin:0;padding:3px;border:1px solid var(--ds-border);border-radius:12px;background:var(--ds-sunken)}.site-header .site-languages :is(a,button){display:inline-flex;justify-content:center;align-items:center;width:40px;min-width:0;height:32px;min-height:0;margin:0;padding:0;border:0;border-radius:9px;background:transparent;color:var(--ds-text);font-family:inherit;font-size:13px;font-weight:700;line-height:1;text-decoration:none}.site-header .site-languages :is(a,button):hover{background:var(--ds-hover)}.site-header .site-languages :is([aria-current=page],[aria-pressed=true]){background:var(--ds-raised);color:var(--ds-accent)}.site-header :is(.icon-button,.site-controls .theme-toggle){display:inline-grid;place-items:center;flex:0 0 44px;width:44px;min-width:44px;height:44px;min-height:44px;padding:0;border:0;border-radius:12px;background:transparent;color:var(--ds-text)}.site-header :is(.icon-button,.theme-toggle):hover,.site-header .menu-toggle[aria-expanded=true]{background:var(--ds-hover)}.site-header .theme-toggle[hidden]{display:none}.site-header .map-tools .icon-button[aria-pressed=true]{color:var(--ds-accent)}.header.site-header+main{height:calc(100dvh - var(--site-header-height))}.information-page{max-width:900px;padding-top:30px;padding-bottom:64px;line-height:1.75}.information-page h1{font-size:clamp(28px,4vw,40px);line-height:1.2;margin:24px 0 16px}.information-page section{margin-top:36px;scroll-margin-top:24px}.information-page h2{font-size:22px}.information-page #tietosuoja{font-size:inherit}.information-lead{font-size:19px;color:var(--ds-sec)}.information-sources{padding-left:22px}.information-sources li+li{margin-top:8px}.information-details{margin-top:20px;border-top:1px solid var(--ds-line);border-bottom:1px solid var(--ds-line);overflow-wrap:anywhere}.information-details>summary{padding:14px 0;cursor:pointer;font-weight:600}.information-details>summary:focus-visible{outline:2px solid var(--ds-accent);outline-offset:4px}.site-header .theme-moon,[data-theme=dark] .site-header .theme-sun{display:none}[data-theme=dark] .site-header .theme-moon{display:block}@media(max-width:1000px){.site-header:not(.header):not(.navigation-ready),.header.site-header:not(.map-header):not(.navigation-ready){height:112px}.site-header:not(.map-header):not(.navigation-ready) .site-header-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:56px 55px;gap:0 8px;padding:0 16px}.site-header:not(.map-header):not(.navigation-ready) .brand{grid-row:1;grid-column:1}.site-header:not(.map-header):not(.navigation-ready) .site-controls{grid-row:1;grid-column:2;justify-self:end}.site-header:not(.map-header):not(.navigation-ready) .site-nav{grid-row:2;grid-column:1 / -1;margin:0 -16px;padding:0 16px;overflow-x:auto;scrollbar-width:none}.site-header:not(.map-header):not(.navigation-ready) .site-nav::-webkit-scrollbar{display:none}.site-header:not(.map-header):not(.navigation-ready) .site-nav a{padding:0 10px;font-size:14px}.header.site-header:not(.map-header):not(.navigation-ready)+main{height:calc(100dvh - 112px)}}@media(min-width:761px)and (max-width:1000px){.map-header.site-header .site-header-inner{gap:12px}.map-header.site-header .site-nav a{padding:0 10px}}@media(max-width:400px){.site-header .brand span:not(.brand-icon){display:none}}@media(max-width:380px){.site-header .site-nav{gap:0}.site-header:not(.map-header):not(.navigation-ready) .site-nav{margin:0 -12px;padding:0 12px}.site-header .site-nav a{padding-inline:6px}.site-header .site-header-inner{padding:0 12px}.site-header .brand{font-size:17px;gap:8px}.site-header .brand-icon{width:30px;height:30px}.site-header .site-languages :is(a,button){width:34px}}.site-header .server-navigation{display:none}@media(max-width:1199px){.site-header.navigation-ready>.site-header-inner>.site-controls{display:none}.site-header.navigation-ready .server-navigation{display:flex}.site-header.navigation-ready .site-header-inner{gap:12px}.site-header.navigation-ready .site-nav a{padding:0 10px}}@media(max-width:760px){.site-header.navigation-ready{--site-header-height: calc(56px + env(safe-area-inset-top)) ;padding-top:env(safe-area-inset-top)}.site-header.navigation-ready .site-header-inner{height:56px;padding:0 max(6px,env(safe-area-inset-right)) 0 max(16px,env(safe-area-inset-left));gap:8px}.site-header.navigation-ready .site-nav{display:none}.site-header.navigation-ready .brand{font-size:18px;gap:10px}.site-header.navigation-ready .brand span{display:inline}.site-header.navigation-ready .brand-icon{width:32px;height:32px;border-radius:9px}}
