@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap";:root{--font-family:"DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-page:28px;--font-size-heading:22px;--font-size-section:18px;--font-size-station:20px;--font-size-card:16px;--font-size-body:16px;--font-size-secondary:14px;--font-size-meta:12px;--font-size-button:14px;--font-size-metric:clamp(28px, 2.4vw, 32px);--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-heading:1.2;--line-height-body:1.5;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--radius-small:8px;--radius-control:12px;--radius-card:16px;--radius-panel:20px;--radius-sheet:24px;--radius-circle:999px;--target-min:44px;--control-height:48px;--control-height-large:52px;--motion-fast:.14s;--motion-state:.18s;--motion-panel:.24s;--motion-easing:cubic-bezier(.2, 0, 0, 1)}:root,[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#fff9f2;--surface:#fff;--surface-elevated:#fffdf9;--surface-muted:#f5f2ef;--border:#ded9d4;--text-primary:#18212e;--text-secondary:#485569;--primary:#c83c12;--primary-hover:#ad320d;--primary-foreground:#fff;--primary-subtle:#fce9e0;--accent-bright:#f05a28;--secondary-accent:#172554;--success:#15803d;--warning:#b45309;--danger:#b42318;--neutral-status:#64748b;--overlay:#10111299;--shadow-float:0 2px 12px #18212e14, 0 8px 24px #18212e08;--shadow-dialog:0 24px 80px #18212e30;--shadow-sheet:0 -8px 32px #18212e14;--control-border:var(--neutral-status);--focus-ring:var(--primary);--page-bg:var(--background);--surface-hover:var(--primary-subtle);--text:var(--text-primary);--muted:var(--text-secondary);--accent:var(--primary);--available:var(--success);--unavailable:var(--danger);--selected-foreground:var(--primary-hover)}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#050506;--surface:#121315;--surface-elevated:#212225;--surface-muted:#1b1c1f;--border:#303236;--text-primary:#fff;--text-secondary:#bfc3cb;--primary:#ff784b;--primary-hover:#ff906c;--primary-foreground:#101112;--primary-subtle:#34221d;--accent-bright:#ff784b;--secondary-accent:#8ea9ff;--success:#4ade80;--warning:#fbbf24;--danger:#f87171;--neutral-status:#94a3b8;--overlay:#000000b3;--shadow-float:0 2px 12px #00000028;--shadow-dialog:0 24px 80px #0006;--shadow-sheet:0 -8px 32px #0003;--control-border:var(--neutral-status);--focus-ring:var(--primary);--page-bg:var(--background);--surface-hover:var(--primary-subtle);--text:var(--text-primary);--muted:var(--text-secondary);--accent:var(--primary);--available:var(--success);--unavailable:var(--danger);--selected-foreground:var(--primary)}:root{--map-gap:32px;font-family:var(--font-family);color:var(--text-primary);background:var(--background);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.theme-picker{gap:var(--space-2);border:0;min-width:0;margin:0;padding:0;display:grid}.theme-option{align-items:center;gap:var(--space-3);min-height:var(--control-height);padding:var(--space-3);border:1px solid var(--control-border);border-radius:var(--radius-control);background:var(--surface);color:var(--text-primary);font-size:var(--font-size-secondary);cursor:pointer;display:flex}.theme-option input{width:var(--space-4);height:var(--space-4);accent-color:var(--primary);margin:0}.theme-option svg,.theme-option input{flex-shrink:0}.theme-option:hover{background:var(--surface-muted)}.theme-option:has(:checked){background:var(--primary-subtle);color:var(--selected-foreground);border-color:var(--primary)}.theme-option:has(:focus-visible){outline:3px solid var(--focus-ring);outline-offset:3px}@media (width>=761px){.theme-picker{grid-template-columns:repeat(3,minmax(0,1fr))}}[data-theme=dark] .maplibregl-ctrl-group,[data-theme=dark] .maplibregl-ctrl-attrib{background:var(--surface);color:var(--text)}[data-theme=dark] .maplibregl-ctrl-attrib a{color:var(--muted)}[data-theme=dark] .maplibregl-ctrl-group button+button{border-top-color:var(--border)}[data-theme=dark] .maplibregl-ctrl-group button:hover{background:var(--surface-hover)}[data-theme=dark] .maplibregl-ctrl-icon{filter:invert()}[data-theme=dark] .maplibregl-ctrl-group button:disabled .maplibregl-ctrl-icon{opacity:.35}[data-theme=dark] .maplibregl-ctrl-attrib-button{filter:invert()}*{box-sizing:border-box}body{min-width:320px;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);margin:0}#root{height:calc(var(--app-height,100dvh) - env(safe-area-inset-top) - env(safe-area-inset-bottom));flex-direction:column;display:flex}.pwa-notice{border-bottom:1px solid var(--border);background:var(--surface);color:var(--muted);flex-wrap:wrap;flex-shrink:0;justify-content:center;align-items:center;gap:8px 16px;padding:10px 20px;font-size:13px;line-height:1.5;display:flex}.pwa-notice-actions{flex-wrap:wrap;gap:8px;display:flex}.pwa-notice button{border:1px solid var(--border);background:var(--surface);min-height:44px;color:var(--text);cursor:pointer;border-radius:8px;padding:8px 12px}.pwa-notice button:hover:enabled{background:var(--surface-hover)}.pwa-notice button:disabled{opacity:.6;cursor:default}.pwa-install-dialog ol{padding-left:22px;font-size:14px;line-height:1.7}.pwa-install-dialog li+li{margin-top:10px}.pwa-install-dialog>.account-button{width:100%;min-height:44px;margin-top:12px}.pwa-install-dialog .dialog-close{width:44px;height:44px;top:8px;right:8px}.pwa-install-button{min-height:44px}button,input,select{font:inherit}.site-header{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;position:relative}.header-inner{align-items:center;margin:0 auto;display:flex}.brand{min-width:0;color:inherit;align-items:center;text-decoration:none;display:flex}.brand-symbol{flex-shrink:0;place-items:center;display:grid}.main-content{width:100%;max-width:1600px;min-height:0;padding:var(--map-gap) 48px;flex:1;margin:0 auto;display:flex}h1{letter-spacing:-.7px;margin:0;font-size:clamp(20px,2.2vw,28px);font-weight:600;line-height:1.2}h1>span{color:var(--accent)}.map-panel{isolation:isolate;border:0;border-radius:0;flex:1;width:100%;min-height:0;position:relative;overflow:hidden}.map-container{height:100%}.main-content.map-main{max-width:none;margin:0;padding:0}.maplibregl-map{font-family:DM Sans,sans-serif}.city-button{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:10px;align-items:center;gap:9px;padding:0 15px;font-weight:600;transition:background .16s;display:flex;position:absolute}.city-button svg{color:var(--accent)}.city-button:hover:enabled{background:var(--surface-hover)}.city-button:disabled{cursor:default}.city-button-divider{width:1px;height:14px;margin:0 2px}.city-button-country{color:var(--muted);font-weight:400}.scan-button{z-index:2;border:1px solid var(--border);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:9px;padding:0 16px;font-weight:600;display:flex;position:absolute}.station-filters{z-index:3;width:max-content;max-width:calc(100% - 84px);color:var(--text);font-size:13px;position:absolute;top:20px;left:204px}.station-filters summary{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:10px;align-items:center;gap:8px;width:max-content;height:44px;padding:0 14px;font-weight:600;list-style:none;display:flex;box-shadow:0 2px 8px #313a2412}.station-filters summary::-webkit-details-marker{display:none}.station-filters summary:hover{background:var(--surface-hover)}.station-filters[open] summary{color:var(--accent)}.filter-count{place-items:center;min-width:20px;height:20px;padding:0 5px;font-size:11px;display:grid}.station-filter-fields{gap:var(--space-4);margin-top:var(--space-2);border:1px solid var(--border);background:var(--surface);overscroll-behavior:contain;display:grid;overflow-y:auto}.station-filter-fields fieldset{border:0;min-width:0;margin:0;padding:0}.station-filter-fields legend{margin-bottom:8px;padding:0;font-weight:600}.filter-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.filter-option{min-height:var(--target-min);padding:var(--space-2);border:1px solid var(--control-border);border-radius:var(--radius-control);background:var(--surface);color:var(--muted);cursor:pointer;justify-content:center;align-items:center;gap:7px;display:flex}.filter-option:hover{background:var(--surface-hover)}.filter-option[aria-pressed=true]{border-color:var(--accent)}.filter-charge-types .filter-option{font-size:var(--font-size-button);letter-spacing:.5px;font-weight:700}.filter-provider{flex-direction:column;font-weight:600}.filter-provider svg{width:22px;height:22px}.filter-provider[aria-pressed=true] svg{color:var(--accent)}.power-range-values{justify-content:space-between;gap:8px;display:flex}.power-range-values label{color:var(--muted);font-size:var(--font-size-meta);gap:3px;display:grid}.power-range-values label:last-child{text-align:right}.power-range-values strong{color:var(--text);font-size:13px;font-weight:600}.power-range{touch-action:none;height:44px;margin-top:4px;position:relative}.power-range-track{background:var(--border);border-radius:3px;height:6px;position:absolute;top:19px;left:12px;right:12px}.power-range-selected{left:var(--range-min);right:calc(100% - var(--range-max));border-radius:inherit;background:var(--accent);height:100%;position:absolute}.power-range input{appearance:none;pointer-events:none;background:0 0;width:100%;height:44px;margin:0;position:absolute;inset:0}.power-range .power-range-max{z-index:2}.power-range input::-webkit-slider-runnable-track{background:0 0;height:6px}.power-range input::-moz-range-track{background:0 0;height:6px}.power-range input::-moz-range-progress{background:0 0;height:6px}.power-range input::-webkit-slider-thumb{appearance:none;border:2px solid var(--accent);background:var(--surface);pointer-events:auto;cursor:grab;touch-action:none;border-radius:50%;width:24px;height:24px;margin-top:-9px;box-shadow:0 1px 4px #0002}.power-range input::-moz-range-thumb{border:2px solid var(--accent);background:var(--surface);pointer-events:auto;cursor:grab;touch-action:none;border-radius:50%;width:20px;height:20px;box-shadow:0 1px 4px #0002}.power-range input:active::-webkit-slider-thumb{cursor:grabbing}.power-range input:active::-moz-range-thumb{cursor:grabbing}.power-range-ticks{height:var(--space-4);margin:0 var(--space-3);color:var(--text-secondary);font-size:var(--font-size-meta);position:relative}.power-range-ticks span{position:absolute;transform:translate(-50%)}.station-filter-fields p{color:var(--muted);margin:0;line-height:1.5}.maplibregl-ctrl-group{border:1px solid var(--border);overflow:hidden}.maplibregl-ctrl-group button+button{border-top-color:var(--surface-muted)}.maplibregl-ctrl-bottom-right{bottom:7px;right:7px}.maplibregl-ctrl-attrib{font-size:10px}.map-key{z-index:2;pointer-events:none;flex-direction:column;align-items:flex-start;max-width:calc(100% - 40px);display:flex;position:absolute}.map-key>*{pointer-events:auto}.station-legend{border:1px solid var(--border);background:var(--surface);border-radius:10px;max-width:100%;font-size:12px;box-shadow:0 2px 8px #313a2412}.station-legend summary{cursor:pointer;font-weight:600}.legend-content{gap:12px;padding-top:12px;display:grid}.legend-colors{gap:10px;display:grid}.legend-colors>span{align-items:center;gap:14px;display:flex}.legend-marker{color:#fff;border:1px solid #fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;margin-right:4px;font:700 11px system-ui,sans-serif;display:inline-flex;position:relative}.marker-badge{border:1px solid var(--border);background:var(--surface);width:16px;height:16px;color:var(--text-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.marker-badge svg{width:11px;height:11px}.marker-badge-top{position:absolute;top:-5px;right:-5px}.marker-badge-bottom{position:absolute;bottom:-5px;right:-5px}.legend-categories{color:var(--muted);margin:0;line-height:1.7}.legend-categories strong{color:var(--text)}.legend-symbols{border-top:1px solid var(--border);grid-template-columns:auto auto;gap:8px 16px;padding-top:10px;display:grid}.legend-symbols>span{align-items:center;gap:6px;display:flex}.station-details .station-details-network{color:var(--muted);margin-bottom:8px;font-size:12px}.legend-dot{border-radius:50%;width:10px;height:10px}.available-dot{background:var(--available)}.unavailable-dot{background:var(--unavailable)}.station-status{flex-wrap:wrap;align-items:center;gap:8px;display:flex;position:absolute}.sync-indicator{z-index:2;color:var(--muted);position:relative}.sync-indicator-button{border:1px solid var(--border);background:var(--surface);height:30px;color:inherit;cursor:help;border-radius:15px;align-items:center;gap:5px;padding:0 9px;font-size:11px;font-weight:600;display:flex;box-shadow:0 2px 8px #313a2412}.sync-indicator[data-sync-state=fresh]{color:var(--available)}.sync-indicator[data-sync-state=checking]{color:var(--warning)}.sync-indicator[data-sync-state=stale]{color:var(--unavailable)}.sync-indicator[data-sync-state=checking] svg{animation:2s linear infinite spin}.sync-indicator-tooltip{border:1px solid var(--border);background:var(--surface);width:260px;max-width:calc(100vw - 100px);color:var(--text);visibility:hidden;opacity:0;pointer-events:none;border-radius:8px;padding:10px 12px;font-size:12px;line-height:1.5;position:absolute;bottom:36px;left:0;box-shadow:0 3px 16px #313a2420}.sync-indicator:hover .sync-indicator-tooltip,.sync-indicator:focus-within .sync-indicator-tooltip{visibility:visible;opacity:1}.station-status .loading-spinner{width:14px;height:14px}.station-status button{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.station-panel{z-index:4;background:var(--surface);color:var(--text);flex-direction:column;font-size:14px;display:flex;position:absolute;bottom:24px;left:20px;overflow:hidden}.station-panel-body,.station-details{flex-direction:column;flex:1;min-height:0;display:flex}.station-panel-body{overflow:hidden}.station-summary{border-bottom:1px solid var(--border);flex-shrink:0}.station-points{overscroll-behavior:contain;scrollbar-width:thin;flex:1;min-height:0;overflow-y:auto}.station-panel-close{z-index:1;width:44px;height:44px;color:var(--muted);cursor:pointer;border:0;border-radius:10px;place-items:center;padding:0;font-size:28px;line-height:1;display:grid;position:absolute}.station-panel-close:hover{color:var(--text);background:var(--surface-hover)}.station-panel-close:focus-visible,.station-panel-handle:focus-visible,.charge-point-select:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}.station-panel-handle{display:none}.station-details{overflow-wrap:anywhere}@keyframes station-panel-enter{0%{opacity:0;translate:0 12px}}@keyframes station-sheet-enter{0%{opacity:0;translate:0 32px}}@media (width<=760px){.station-panel{max-width:none}.station-panel[data-sheet-state=closed]{pointer-events:none}.station-panel-handle{cursor:grab;touch-action:none;background:0 0;border:0;flex-shrink:0;justify-content:center;width:100%;padding:0;display:flex}.station-panel-handle:before{content:"";border-radius:2px;width:36px;height:4px}.station-panel[data-dragging=true] .station-panel-handle{cursor:grabbing}.station-panel .station-details h2{margin-right:44px}:is(.map-panel:has(.station-panel) .map-key,.map-panel:has(.station-panel) .scan-button){visibility:hidden}}@media (height<=500px){.station-panel{max-height:calc(100% - 28px);bottom:14px}.station-panel .station-summary{padding-top:16px;padding-bottom:12px}.station-panel .station-points{padding-top:12px}}@media (width<=760px) and (height<=500px){.station-panel{max-height:64%;bottom:0}.station-panel .station-summary{padding-top:4px}}.station-details p{margin:0;font-size:13px}.station-details .station-details-note{color:var(--muted);margin-top:8px;font-size:12px;line-height:1.5}.station-details p[role=status]:not([hidden]){align-items:center;gap:8px;display:flex}.station-details .loading-spinner{flex:0 0 14px;width:14px;height:14px}.station-choice-list{margin:0;list-style:none}.station-choice-list li+li{border-top:1px solid var(--border)}.station-choice{width:100%;min-height:64px;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;padding:6px 4px;display:flex}.station-choice:hover{background:var(--surface-hover)}.station-choice:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.station-choice canvas{pointer-events:none;flex:0 0 56px;width:56px;height:56px}.station-choice>span{gap:3px;min-width:0;display:grid}.station-choice strong{font-size:13px}.station-choice span span{color:var(--muted);font-size:11px;line-height:1.4}.station-details h3{margin:0 0 12px;font-weight:600}.charge-point-list{margin:0;padding:0;list-style:none}.charge-point{padding:0}.charge-point-select{border:1px solid var(--border);width:100%;color:var(--text);text-align:left;cursor:pointer;display:block}.charge-point-select:hover{border-color:var(--accent);background:var(--surface-hover)}.charge-point-select .charge-point-header strong:after{content:" ›";color:var(--accent)}.charge-point-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;display:flex}.charge-point-status{color:var(--muted);font-size:12px;font-weight:600}.charge-point-status[data-status=free]{color:var(--available)}.charge-point-status[data-status=used]{color:var(--warning)}.charge-point-status[data-status=damaged]{color:var(--unavailable)}.station-details .charge-point-id{color:var(--muted);overflow-wrap:anywhere;margin-top:3px;font-size:11px}.charge-point-placeholder{cursor:default;pointer-events:none;min-height:78px}.charge-point-skeleton-line{background:var(--border);border-radius:4px;height:12px;animation:1.6s ease-in-out infinite charge-point-pulse;display:block}.charge-point-skeleton-label{width:88px;height:14px}.charge-point-skeleton-status{width:64px}.charge-point-skeleton-id{width:65%;margin-top:8px}.charge-point-skeleton-specifications{width:90%;margin-top:8px}@keyframes charge-point-pulse{50%{opacity:.45}}.station-available{color:var(--available);font-weight:600}.station-unavailable{font-weight:600}.map-status{border:1px solid var(--border);background:var(--surface);width:max-content;color:var(--muted);border-radius:12px;align-items:center;gap:12px;padding:18px 24px;font-size:14px;display:flex;position:absolute;top:50%;transform:translate(-50%,-50%)}[data-map-status=error] .map-status,[data-map-status=offline] .map-status{text-align:center;flex-direction:column;line-height:1.6}.map-status>svg{color:var(--accent);flex-shrink:0}.map-status p{margin:0}.retry-button{color:var(--primary-foreground);background:var(--primary);cursor:pointer;border:0;border-radius:7px;padding:10px 14px}.retry-button:hover{background:var(--primary-hover)}.station-details .retry-button{min-height:0;color:var(--accent);text-align:left;background:0 0;border-radius:0;margin:6px 0 0;padding:0;font-size:12px;line-height:1.5;text-decoration:underline}.station-details .retry-button:not([hidden]){display:block}.station-details .retry-button:hover{color:var(--text);background:0 0}.loading-spinner{border:2px solid var(--primary-subtle);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=760px){.main-content{padding:var(--map-gap) 0}.station-filters{top:14px;left:198px}.station-filter-fields{position:relative}}@media (width<=420px){.header-inner{padding:0 20px}:root{--map-gap:30px}.city-button-country,.city-button-divider{display:none}.station-filters{left:110px}.station-filter-fields{left:-96px}}@media (prefers-reduced-motion:reduce){.sync-indicator svg,.charge-point-skeleton-line{animation:none}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.main-navigation{align-items:center;margin-left:24px;display:flex}.main-navigation a{color:var(--muted);font-size:14px;text-decoration:none}.main-navigation a:hover{background:var(--surface-hover)}.account-button{border:1px solid var(--border);cursor:pointer;justify-content:center;align-items:center;gap:8px;font-weight:600;line-height:1.4;display:inline-flex}.account-button.primary{color:var(--primary-foreground);background:var(--primary);border-color:var(--primary)}.account-button.primary:hover:enabled{background:var(--primary-hover);border-color:var(--primary-hover)}.account-button:disabled{opacity:.5;cursor:default}.shell-account-error{background:var(--surface);color:var(--unavailable);border-top:1px solid var(--border);flex-shrink:0;justify-content:center;align-items:center;gap:12px;padding:10px 24px;font-size:13px;display:flex}.shell-account-error button{min-height:var(--target-min);color:inherit;cursor:pointer;background:0 0;border:0;text-decoration:underline}.account-description{color:var(--muted)}.account-error{color:var(--unavailable);font-size:14px;line-height:1.6}.login-dialog{border:1px solid var(--border);max-height:calc(100dvh - 40px);color:var(--text);background:var(--surface);margin:auto;position:fixed}.login-dialog::backdrop{background:var(--overlay)}.qr-scan-dialog{padding:var(--space-5)}.login-dialog.qr-scan-dialog h2{margin:0 var(--space-10) var(--space-3) 0;font-size:var(--font-size-heading)}.qr-scan-dialog .dialog-close{width:44px;height:44px;top:12px;right:12px}.qr-viewfinder{height:var(--qr-preview-height,240px);border:1px solid var(--border);background:var(--background);border-radius:12px;margin:20px 0;position:relative;overflow:hidden}.qr-viewfinder[data-state=error]{aspect-ratio:auto;border:0;height:0;margin:0}.qr-camera{width:var(--qr-reader-width,480px);transform:translate(-50%, -50%) scale(var(--qr-preview-scale,1));transform-origin:50%;top:50%;left:50%;position:absolute!important}.qr-camera video{display:block}.qr-camera-placeholder{color:var(--text-secondary);background:var(--background);place-items:center;display:grid;position:absolute;inset:0}.qr-camera-options{margin-bottom:18px}.qr-camera-controls{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;display:grid}.qr-camera-controls .account-button{justify-content:center;align-items:center;gap:8px;min-width:0;min-height:48px;padding:8px 10px;font-size:13px;line-height:1.3;display:flex}.qr-camera-controls svg{flex-shrink:0}.qr-camera-controls [aria-pressed=true]{border-color:var(--accent);color:var(--accent);background:var(--surface-hover)}.qr-camera-note{color:var(--muted);overflow-wrap:anywhere;margin:8px 0 0;font-size:12px;line-height:1.5}.qr-control-error{margin:10px 0 0}.qr-scan-status{min-height:24px;margin:0 0 18px}.qr-scan-error p{color:var(--unavailable);margin:0 0 16px;font-size:14px;line-height:1.6}.qr-scan-error .account-button,.qr-scan-cancel{width:100%;min-height:44px}.qr-scan-cancel{margin-top:12px}.charge-point-dialog{border:1px solid var(--border);max-height:calc(100dvh - 32px);color:var(--text);background:var(--surface);overscroll-behavior:contain;margin:auto;padding:0;position:fixed;overflow-y:auto}.charge-point-dialog::backdrop{background:var(--overlay)}.point-dialog-header{border-bottom:1px solid var(--border);position:relative}.point-back{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0}.point-back:hover{color:var(--accent)}.point-location{color:var(--muted);overflow-wrap:anywhere;margin:0 36px 8px 0;font-size:14px}.point-title{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;display:flex}.point-title h2{letter-spacing:-.5px;margin:0}.point-evse{margin:var(--space-2) 0 0;color:var(--text-secondary);font-size:var(--font-size-meta);overflow-wrap:anywhere;font-weight:500}.point-address{color:var(--muted);margin:6px 0 0;font-size:13px}.point-specifications{flex-wrap:wrap;justify-content:space-between;margin-top:20px;font-size:14px;display:flex}.point-specifications strong{font-weight:600}.point-dialog-body{padding:0 var(--space-4)}.point-section{padding:var(--space-4) 0}.point-section+.point-section{border-top:1px solid var(--border)}.point-section h3{margin:0 0 var(--space-2);font-weight:var(--font-weight-semibold)}.point-hours{gap:8px;margin:0;font-size:14px;line-height:1.5;display:grid}.point-hours>div{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);align-items:baseline;gap:4px 16px;display:grid}.point-hours dt{color:var(--muted)}.point-hours dd{overflow-wrap:anywhere;margin:0}.point-hours-compact .point-hours>div{justify-content:space-between;gap:var(--space-1) var(--space-3);flex-wrap:wrap;display:flex}.point-hours-empty{color:var(--muted);margin:0;font-size:14px;line-height:1.5}.point-details-note{color:var(--muted);margin:12px 0 0;font-size:12px;line-height:1.6}.point-loading{color:var(--muted);align-items:center;gap:10px;font-size:14px;display:flex}.point-request-error p{color:var(--unavailable);font-size:14px;line-height:1.6}.point-login-prompt{border:1px solid var(--border);background:var(--page-bg);border-radius:12px;padding:18px}.point-login-prompt p{color:var(--muted);margin:0 0 16px;font-size:14px;line-height:1.6}.point-price-note{margin:0 0 var(--space-3);color:var(--muted);font-size:12px;line-height:1.6}.point-tariff+.point-tariff{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border)}.point-tariff h4{margin:0 0 12px;font-size:14px}.tariff-summary{gap:var(--space-3);display:grid}.tariff-charge{min-width:0}.tariff-charge+.tariff-charge{padding-top:var(--space-3);border-top:1px solid var(--border)}.tariff-charge-heading{justify-content:space-between;align-items:baseline;gap:var(--space-1) var(--space-3);flex-wrap:wrap;display:flex}.tariff-charge-heading h4{color:var(--text-primary);font-size:var(--font-size-secondary);font-weight:var(--font-weight-semibold);line-height:var(--line-height-body);margin:0}.tariff-summary .tariff-price{color:var(--text-primary);font-size:var(--font-size-secondary);line-height:var(--line-height-heading);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:0}.tariff-price strong{font-size:var(--font-size-section);font-weight:var(--font-weight-bold)}.tariff-charge-primary .tariff-charge-heading{align-items:flex-start;gap:var(--space-1);flex-direction:column}.tariff-charge-primary .tariff-price{font-size:var(--font-size-section);order:-1}.tariff-charge-primary .tariff-price strong{font-size:var(--font-size-metric)}.tariff-charge-primary .tariff-charge-heading h4{color:var(--text-secondary);font-weight:var(--font-weight-regular)}.tariff-current-badge{margin-top:var(--space-2);padding:var(--space-1) var(--space-2);border-radius:var(--radius-small);color:var(--selected-foreground);background:var(--primary-subtle);font-size:var(--font-size-meta);font-weight:var(--font-weight-semibold);display:inline-flex}.tariff-summary .tariff-additional{margin:var(--space-1) 0 0;color:var(--text-secondary);font-size:var(--font-size-meta)}.tariff-conditions{gap:var(--space-1);margin:var(--space-2) 0 0;color:var(--text-primary);font-size:var(--font-size-secondary);line-height:var(--line-height-body);overflow-wrap:anywhere;padding:0;list-style:none;display:grid}.tariff-billing-step{margin-top:var(--space-1);color:var(--text-secondary);font-size:var(--font-size-secondary);line-height:var(--line-height-body);display:block}.tariff-free-period{gap:var(--space-1);color:var(--text-secondary);font-size:var(--font-size-secondary);line-height:var(--line-height-body);overflow-wrap:anywhere;display:grid}.tariff-charge .tariff-free-period{margin-top:var(--space-2)}.tariff-free-period-heading{gap:0 var(--space-2);flex-wrap:wrap;display:flex}.tariff-free-period strong{color:var(--text-primary);font-weight:var(--font-weight-medium)}.tariff-summary .tariff-no-fee{align-items:center;gap:var(--space-2);color:var(--success);font-size:var(--font-size-secondary);line-height:var(--line-height-body);margin:0;display:flex}.point-dialog-footer{border-top:1px solid var(--border);background:var(--surface);position:sticky;bottom:0}.point-start{width:100%;font-size:15px}.point-dialog-footer p{color:var(--muted);text-align:center;margin:10px 0 0;font-size:11px;line-height:1.5}@media (width<=480px){.charge-point-dialog{border-radius:14px;width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}.point-dialog-header{padding:18px 20px 20px}.point-dialog-body{padding:0 var(--space-4)}.point-dialog-footer{padding:16px 20px}}.dialog-close{color:var(--muted);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid;position:absolute}.dialog-close:hover{color:var(--text);background:var(--surface-hover)}.login-dialog h2{margin:10px 0}.login-dialog form{margin-top:var(--space-4)}.login-dialog label{margin:var(--space-4) 0 var(--space-2);font-weight:600;display:block}.login-dialog input{border:1px solid var(--control-border);width:100%;color:var(--text);padding:10px 12px;font-size:16px}.login-submit{width:100%;margin-top:var(--space-4)}.login-note{color:var(--muted);margin:14px 0 0;font-size:12px;line-height:1.6}.account-main{display:block;overflow-y:auto}.transactions-page{width:100%;margin:0 auto}.transactions-heading h2:focus{outline:none}.transactions-heading p{color:var(--muted);margin:0}.transactions-content{border:1px solid var(--border);background:var(--surface);overflow:hidden}.account-message{color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;line-height:1.65;display:flex}.account-message p{max-width:430px;margin:0}.account-message h3{color:var(--text);margin:0}.transactions-welcome{padding:58px 24px}.transactions-welcome svg{color:var(--accent)}.transactions-welcome .account-button{margin-top:4px}.transactions-toolbar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;display:flex}.transactions-toolbar p{color:var(--muted);margin:0;font-size:14px}.transaction-record{border-bottom:1px solid var(--border);align-items:center;display:grid}.transaction-state{background:var(--page-bg);color:var(--muted);font-weight:600;display:inline-flex}.transaction-location{min-width:0}.transaction-location h3{overflow-wrap:anywhere;font-weight:600}.transaction-location p{color:var(--muted);overflow-wrap:anywhere;margin:0}.transaction-values{margin:0;display:grid}.transaction-values div{min-width:0}.transaction-values dt{color:var(--muted);margin-bottom:5px}.transaction-values dd{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:0;line-height:1.5}.transactions-pagination{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);display:flex}.transactions-pagination>span{color:var(--muted);font-size:12px}.transactions-pagination>div{gap:8px;display:flex}.transaction-note{color:var(--muted);margin:0;padding:0 24px 20px;font-size:11px;line-height:1.6}.profile-contract{padding:var(--space-4)}.profile-contract-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.profile-contract-heading h3{margin:0;font-size:18px;font-weight:600}.profile-connection{color:var(--warning);align-items:center;gap:7px;font-size:12px;display:inline-flex}.profile-connection[data-connected=true]{color:var(--available)}.profile-connection>span{background:currentColor;border-radius:50%;width:7px;height:7px}.profile-details{gap:var(--space-3) var(--space-4);margin:var(--space-4) 0;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.profile-details>div{min-width:0}.profile-details dt{margin-bottom:var(--space-1);color:var(--muted);font-size:12px}.profile-details dd{font-size:var(--font-size-secondary);overflow-wrap:anywhere;margin:0;line-height:1.5}.profile-actions{gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--border);flex-wrap:wrap;display:flex}.profile-actions a{text-decoration:none}@media (width<=480px){.profile-contract{padding:var(--space-4)}.profile-details{grid-template-columns:1fr}.profile-actions .account-button{width:100%}}@media (width<=1100px){.header-inner{gap:12px;padding-inline:24px}.main-navigation{margin-left:8px}.main-navigation a{padding-inline:10px}h1{font-size:22px}}@media (width<=760px){.header-inner{flex-wrap:nowrap;padding-top:0}.brand h1{max-width:165px;font-size:20px}.main-navigation{flex-direction:column;align-items:stretch;gap:4px;width:100%;margin:0}.main-navigation a{border-radius:8px;min-height:44px;padding:12px}.transactions-toolbar,.transactions-pagination,.transaction-note{padding-inline:20px}}@media (width<=380px){.header-inner{gap:8px;padding-inline:14px}.brand{gap:8px}.brand h1{max-width:145px;font-size:18px}.brand-symbol{width:28px;height:32px}.transactions-pagination{flex-direction:column;align-items:flex-start}.login-dialog{padding:30px 24px}}.transaction-session-link{color:var(--accent);text-underline-offset:3px;font-size:12px;display:inline-block}.session-detail{padding:var(--space-4)}.session-location{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.session-location h3{overflow-wrap:anywhere;margin:12px 0 6px}.session-location p{color:var(--muted);overflow-wrap:anywhere;margin:0;font-size:13px}.session-update{margin:var(--space-3) 0 var(--space-4);color:var(--muted);font-size:12px;line-height:1.6}.session-stop{gap:var(--space-3);margin-bottom:var(--space-6);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-control);display:grid}.session-stop>p{margin:0}.session-stop-actions,.session-stop-dialog-actions{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.session-stop-actions{align-items:stretch}.session-stop-actions>.sf-button{min-height:var(--control-height);flex:15rem}.session-stop-schedule{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--border);color:var(--text-primary);font-size:var(--font-size-secondary);flex-wrap:wrap;display:flex}.session-stop-schedule>div{flex:240px;min-width:0}.session-stop-schedule p{overflow-wrap:anywhere;margin:0}.session-stop-countdown{color:var(--text-secondary);font-variant-numeric:tabular-nums}.session-stop-form{gap:var(--space-4);display:grid}.session-stop-dialog-actions{padding-top:var(--space-4);border-top:1px solid var(--border);justify-content:flex-end}.session-columns{gap:var(--space-6);grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);display:grid}.session-card{min-width:0;padding:var(--space-4) 0 0;border-top:1px solid var(--border)}.session-card-heading{margin-bottom:var(--space-3);justify-content:space-between;align-items:center;gap:12px;display:flex}.session-card-heading h3{margin:0;font-weight:600}.session-card-heading span{color:var(--muted);font-size:var(--font-size-meta)}.session-chart-toggle{flex-wrap:wrap;gap:6px;margin-bottom:18px;display:flex}.session-chart-toggle button{border:1px solid var(--border);background:var(--page-bg);min-height:44px;color:var(--muted);font:inherit;cursor:pointer;border-radius:8px;padding:10px 12px;font-size:12px}.session-chart-toggle button:hover{background:var(--surface-hover);color:var(--text)}.session-chart-toggle button[aria-pressed=true]{border-color:var(--primary);background:var(--primary-subtle);color:var(--selected-foreground)}.session-chart-toggle button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.session-chart-unit{color:var(--muted);margin:0 0 0 48px;font-size:11px;display:block}.session-note{color:var(--muted);overflow-wrap:anywhere;font-size:12px;line-height:1.7}.session-warning{color:var(--warning);margin:16px 0;font-size:12px;line-height:1.7}.charging-session-page>.transactions-content>.session-warning{padding:0 28px}.session-readings{border-top:1px solid var(--border);margin-top:18px;padding-top:16px}.session-readings summary{min-height:var(--target-min);cursor:pointer;font-size:var(--font-size-secondary);align-items:center;display:flex}.session-readings summary:after{content:"⌄";margin-left:auto}.session-readings[open] summary:after{content:"⌃"}.session-table-scroll{max-height:320px;margin-top:16px;overflow:auto}.session-readings table{border-collapse:collapse;width:100%;font-size:var(--font-size-meta);font-variant-numeric:tabular-nums}.session-readings caption{text-align:left;color:var(--muted);margin-bottom:12px}.session-readings th,.session-readings td{text-align:right;border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 8px}.session-readings th:first-child,.session-readings td:first-child{text-align:left}.session-readings th{color:var(--muted);font-weight:500}.session-costs,.session-facts{margin:0}.session-costs>div{justify-content:space-between;align-items:baseline;gap:var(--space-3);margin:var(--space-2) 0;font-size:var(--font-size-secondary);display:flex}.session-costs dt{color:var(--muted)}.session-costs dd{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:0}.session-costs>div:nth-child(4){margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border);font-weight:600}.session-costs>div:nth-child(4) dt{color:var(--text)}.session-facts{border-top:1px solid var(--border);margin-top:20px;padding-top:8px}.session-facts>div{margin-top:14px;font-size:12px}.session-facts dt{color:var(--muted)}.session-facts dd{overflow-wrap:anywhere;margin:5px 0 0}.session-footer{margin:24px 0 0}.session-footer a,.charging-session-page .transactions-welcome a{color:var(--accent);text-underline-offset:3px}.session-selector{border-bottom:1px solid var(--border);align-items:center;gap:16px;padding:20px 28px;font-size:13px;display:flex}.session-selector select{border:1px solid var(--border);background:var(--surface);min-width:0;max-width:100%;color:var(--text);border-radius:8px;padding:8px}.session-discovery-message{border-bottom:1px solid var(--border);color:var(--warning);padding:16px 28px;font-size:13px}#session-heading:focus{outline:none}@media (width<=760px){.session-columns{grid-template-columns:1fr}.session-location{flex-wrap:wrap}.session-location h3{font-size:18px}.session-selector{flex-direction:column;align-items:stretch;padding:16px 20px}}.transaction-record{color:inherit;cursor:pointer;text-decoration:none}.transaction-record:hover{background:var(--surface-hover)}.transaction-record:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}.transaction-back-link{min-height:var(--target-min);width:fit-content;margin-bottom:var(--space-2);color:var(--accent);align-items:center;font-size:13px;text-decoration:none;display:flex}.transaction-back-link:hover{text-underline-offset:3px;text-decoration:underline}:root{--discovery-width:400px}[hidden]{display:none!important}body{background:var(--background);overflow:hidden}button,a,input,summary{-webkit-tap-highlight-color:transparent}button{touch-action:manipulation}button,a{transition:color .14s,background-color .14s,border-color .14s}button:disabled{cursor:not-allowed;opacity:.55}button:active:enabled{filter:brightness(.94)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--primary);outline-offset:3px}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.site-header{z-index:10}.header-inner{max-width:none;height:64px;padding:0 var(--space-6);gap:var(--space-8)}.brand{min-height:var(--target-min);flex-shrink:0;gap:12px}.brand-symbol{background:var(--primary);width:40px;height:40px;color:var(--primary-foreground);border-radius:12px}.brand-name{letter-spacing:-.8px;gap:2px;font-size:21px;font-weight:700;line-height:1.1;display:grid}.brand-name>span{letter-spacing:.1px;color:var(--text-secondary);font-size:11px;font-weight:500}.main-navigation{gap:8px;margin:0 0 0 auto}.main-navigation a{border-radius:10px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:10px 16px;font-weight:600;display:flex}.main-navigation a svg{width:18px;height:18px}.main-navigation a[aria-current=page]{background:var(--primary-subtle);color:var(--selected-foreground)}.mobile-navigation{display:none}.account-button{min-width:var(--target-min);min-height:var(--target-min);padding:var(--space-2) var(--space-4);border-radius:var(--radius-control);font-size:14px;text-decoration:none}.account-button.primary,.retry-button{min-height:var(--control-height);background:var(--primary);color:var(--primary-foreground);border-color:var(--primary)}.account-button.primary:hover:enabled,.retry-button:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.account-button.secondary{border-color:var(--control-border);background:var(--surface);color:var(--text-primary)}.account-button.secondary:hover:enabled{background:var(--surface-muted)}.persistent-map{flex:1;min-height:0;display:flex}.map-panel{background:var(--surface-muted)}.map-container{margin-left:var(--discovery-width);width:calc(100% - var(--discovery-width))}[data-theme=dark] .map-panel{background:var(--background)}.station-discovery{z-index:3;width:var(--discovery-width);background:var(--surface);border-right:1px solid var(--border);flex-direction:column;display:flex;position:absolute;inset:0 auto 0 0}.discovery-heading{padding:var(--space-5) var(--space-4) var(--space-4);position:relative}.discovery-heading h2{font-size:var(--font-size-heading);line-height:var(--line-height-heading);letter-spacing:-.5px;margin:0;font-weight:700}.discovery-heading p{margin:var(--space-2) 0 0;color:var(--text-secondary);font-size:14px}.discovery-heading-icon{right:var(--space-4);top:var(--space-5);color:var(--primary);position:absolute}.discovery-controls{padding:0 var(--space-4) var(--space-4);border-bottom:1px solid var(--border)}.station-search{border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface-muted);align-items:center;gap:12px;min-height:50px;padding:0 14px;display:flex;position:relative}.station-search>svg{color:var(--text-secondary);flex:0 0 20px}.station-search:focus-within{border-color:var(--primary);outline:3px solid var(--focus-ring);outline-offset:3px}.station-search input{width:100%;min-width:0;height:48px;color:var(--text-primary);background:0 0;border:0;outline:none;flex:1;padding:0;font-size:14px}.station-search input::placeholder{color:var(--text-secondary);opacity:1}.station-search input::-webkit-search-cancel-button{display:none}.search-close{width:44px;height:44px;color:var(--text-secondary);background:0 0;border:0;border-radius:10px;flex:0 0 44px;place-items:center;margin-right:-12px;padding:0;display:none}.station-discovery[data-searching=true] .search-close{display:grid}.discovery-search-row{align-items:center;gap:var(--space-2);display:flex;position:relative}.discovery-search-row .station-search{flex:1;min-width:0}.discovery-search-row .station-filters{z-index:5;flex-shrink:0;width:auto;max-width:none;position:static}.station-filters summary,.availability-filter{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--target-min);height:auto;padding:0 var(--space-3);border:1px solid var(--control-border);border-radius:var(--radius-control);color:var(--text-primary);background:var(--surface);box-shadow:none;cursor:pointer;font-size:13px;font-weight:600;display:flex}.availability-filter .status-dot{background:var(--success)}.availability-filter[aria-pressed=true],.station-filters[open] summary{border-color:var(--primary);color:var(--primary);background:var(--primary-subtle)}.filter-count{background:var(--primary);color:var(--primary-foreground);border-radius:6px}.station-filter-fields{width:350px;max-width:calc(100vw - 32px);max-height:min(510px, calc(var(--app-height,100dvh) - 250px));margin:var(--space-1) 0 0;padding:var(--space-4);border-radius:var(--radius-card);box-shadow:var(--shadow-float);position:absolute;top:48px;left:0}.station-filter-fields legend{font-size:14px}.filter-option[aria-pressed=true]{color:var(--selected-foreground);background:var(--primary-subtle);box-shadow:none}.filter-provider,.station-filter-fields p{font-size:12px}.filter-actions{gap:var(--space-2);display:grid}.discovery-results{overscroll-behavior:contain;scrollbar-width:thin;flex:1;min-height:0;overflow-y:auto}.discovery-list-heading{padding:var(--space-4) var(--space-4) 0;justify-content:space-between;align-items:center;display:flex}.discovery-list-heading h3{font-size:var(--font-size-secondary);margin:0;font-weight:600}.discovery-list-heading>span{min-width:28px;color:var(--text-secondary);background:var(--surface-muted);text-align:center;font-variant-numeric:tabular-nums;border-radius:6px;padding:4px 7px;font-size:12px}.discovery-search-note{padding:0 var(--space-4);margin:var(--space-2) 0 var(--space-3);color:var(--text-secondary);font-size:12px;line-height:1.5}.discovery-list{margin:0;padding:0;list-style:none}.discovery-list li+li{border-top:1px solid var(--border)}.discovery-station{width:100%;min-height:var(--target-min);padding:var(--space-3) var(--space-4);color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;display:flex}.discovery-station:hover{background:var(--surface-muted)}.discovery-station:focus-visible{outline-offset:-4px}.discovery-station>svg{color:var(--text-secondary);flex:0 0 16px}.discovery-station-icon{border:1px solid var(--border);background:var(--surface-muted);height:44px;color:var(--neutral-status);border-radius:10px;flex:0 0 40px;place-items:center;display:grid}.discovery-station-icon[data-status=available]{--station-color:var(--success);color:var(--station-color);background:color-mix(in srgb, var(--station-color) 8%, var(--surface));border-color:color-mix(in srgb, var(--station-color) 25%, var(--border))}.discovery-station-icon[data-status=available][data-operator=wien-energie]{--station-color:var(--primary)}.discovery-station-copy{gap:var(--space-1);flex:1;min-width:0;display:grid}.discovery-station-copy>strong{font-size:var(--font-size-card);overflow-wrap:anywhere;font-weight:600;line-height:1.35}.discovery-station-copy>span{color:var(--text-secondary);font-size:12px;line-height:1.5}.discovery-station-meta{flex-wrap:wrap;align-items:center;gap:4px 12px;display:flex}.station-status-label{color:var(--neutral-status);align-items:center;gap:5px;font-size:12px;font-weight:600;display:inline-flex}.station-status-label[data-status=available]{color:var(--success)}.station-status-label[data-status=occupied]{color:var(--warning)}.station-status-label[data-status=broken]{color:var(--danger)}.status-dot{background:currentColor;border-radius:50%;flex:0 0 6px;width:6px;height:6px;display:inline-block}.discovery-empty{color:var(--text-secondary);text-align:center;flex-direction:column;align-items:center;gap:12px;padding:40px 24px;display:flex}.discovery-empty h3{color:var(--text-primary);margin:0;font-size:17px}.discovery-empty p{max-width:280px;margin:0;font-size:14px;line-height:1.6}.discovery-skeleton{padding:0 var(--space-4)}.discovery-skeleton>div{gap:var(--space-2);padding:var(--space-3) 0;border-bottom:1px solid var(--border);display:grid}.discovery-skeleton span{background:var(--surface-muted);border-radius:4px;width:65%;height:12px}.discovery-skeleton span:first-child{width:85%;height:18px}.discovery-skeleton span:last-child{width:45%}.discovery-footer{padding:var(--space-3) var(--space-4);border-top:1px solid var(--border);color:var(--text-secondary);font-size:var(--font-size-meta);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.discovery-footer>.status-dot{background:var(--success)}.discovery-footer>span:last-child{margin-left:auto}.city-button{top:20px;left:calc(var(--discovery-width) + 20px);height:48px;box-shadow:var(--shadow-float);font-size:14px}.city-button-country{font-size:12px}.city-button-divider{background:var(--border)}.maplibregl-ctrl-top-right{top:10px;right:10px}.maplibregl-ctrl-group{background:var(--surface);border-radius:var(--radius-control)}.maplibregl-ctrl-group button{width:44px;height:44px}.maplibregl-ctrl-group button+button{border-color:var(--border)}.maplibregl-ctrl-group:not(:empty){box-shadow:var(--shadow-float)}.maplibregl-ctrl-group button:hover{background-color:var(--surface-muted)}.scan-button{border-color:var(--control-border);min-height:48px;color:var(--text-primary);background:var(--surface);box-shadow:var(--shadow-float);font-size:var(--font-size-button);bottom:44px;right:20px}.scan-button svg{color:inherit}.scan-button:hover{background:var(--surface-muted)}.map-key{left:calc(var(--discovery-width) + 20px);gap:8px;bottom:24px}.station-legend,.sync-indicator-button{box-shadow:var(--shadow-float)}.sync-indicator-button{min-height:44px}.station-legend{padding:0}.station-legend>summary{align-items:center;min-height:44px;padding:0 14px;display:flex}.legend-content{padding:0 16px 16px}.legend-marker{background:var(--neutral-status)}.legend-marker[data-availability=available]{background:var(--success)}.legend-marker[data-availability=available][data-operator=wien-energie]{background:var(--primary)}[data-theme=dark] .legend-marker{color:var(--background)}.station-status{top:80px;left:calc(var(--discovery-width) + 20px);max-width:calc(100% - var(--discovery-width) - 100px);background:var(--surface);color:var(--text-secondary);box-shadow:var(--shadow-float);border-radius:8px;padding:6px 10px;font-size:12px}.station-status button{min-height:44px}.map-status{left:calc(50% + var(--discovery-width) / 2);max-width:calc(100% - var(--discovery-width) - 40px);box-shadow:var(--shadow-float)}.station-panel{width:var(--discovery-width);border:0;border-right:1px solid var(--border);max-width:none;max-height:none;box-shadow:none;border-radius:0;animation:none;inset:0 auto 0 0}.station-panel-close{top:var(--space-3);right:var(--space-2);background:0 0}.station-summary{padding:var(--space-4)}.station-details h2{font-size:var(--font-size-station);line-height:var(--line-height-heading);letter-spacing:0;margin:0 var(--target-min) var(--space-1) 0;font-weight:700}.station-details-network{color:var(--text-secondary);margin-bottom:var(--space-2)!important}.station-details .station-available{align-items:center;gap:8px;font-size:14px;display:inline-flex}.station-available:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.station-unavailable{color:var(--neutral-status)}.station-points{padding:var(--space-3) var(--space-4)}.station-details h3{font-size:var(--font-size-section);margin-bottom:var(--space-2)}.charge-point+.charge-point{border-top:1px solid var(--border);margin-top:0}.charge-point-select{min-height:var(--target-min);padding:var(--space-3) 0;background:0 0;border:0;border-radius:0}.charge-point-header{gap:var(--space-2);font-size:var(--font-size-card)}.charge-point-status{align-items:center;gap:5px;display:inline-flex}.charge-point-status:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px;display:inline-block}.station-details .charge-point-id{margin-top:var(--space-1);font-size:12px}.station-details .charge-point-specifications{margin-top:var(--space-1);font-variant-numeric:tabular-nums;font-size:14px;font-weight:500}.station-directions{border:1px solid var(--border);min-height:44px;color:var(--text-primary);border-radius:10px;justify-content:center;align-items:center;gap:8px;margin-top:16px;font-size:14px;font-weight:600;text-decoration:none;display:flex}.station-directions:hover{background:var(--surface-muted)}.station-power-summary{font-variant-numeric:tabular-nums;font-weight:600;margin-top:16px!important;font-size:16px!important}.loading-spinner{border-color:var(--primary-subtle);border-top-color:var(--primary)}.account-main{max-width:none;padding:var(--space-6) var(--space-8);background:var(--background)}.transactions-page{max-width:1100px;padding:0 0 32px}.transactions-heading{margin-bottom:var(--space-4)}.transactions-heading h2{font-weight:700;font-size:var(--font-size-page);letter-spacing:-.5px;margin:var(--space-1) 0}.account-eyebrow{color:var(--primary);letter-spacing:0;text-transform:none;font-size:13px;font-weight:600}.transactions-heading p{font-size:15px;line-height:1.6}.transactions-content{border-radius:var(--radius-card)}.account-message{gap:var(--space-3);min-height:0;font-size:var(--font-size-secondary);padding:var(--space-6) var(--space-4)}.account-message h3{font-weight:600;font-size:var(--font-size-section);letter-spacing:0}.transactions-welcome>svg{width:var(--space-8);height:var(--space-8)}.transactions-toolbar{min-height:var(--target-min);padding:var(--space-2) var(--space-4)}.transaction-record{padding:var(--space-3) var(--space-4);gap:var(--space-6);grid-template-columns:minmax(220px,1fr) minmax(0,1.7fr)}.transaction-location h3{font-size:var(--font-size-card);margin:var(--space-1) 0}.transaction-location p{font-size:12px}.transaction-values{gap:var(--space-4);grid-template-columns:repeat(4,minmax(0,1fr))}.transaction-values dt{font-size:12px}.transaction-values dd{font-size:14px}.transaction-price dd{font-size:var(--font-size-section);font-weight:700}.transaction-state{border-radius:6px;padding:4px 8px;font-size:12px}.transaction-state.completed{color:var(--success);background:color-mix(in srgb, var(--success) 9%, var(--surface))}.transaction-state.open{color:var(--warning);background:color-mix(in srgb, var(--warning) 10%, var(--surface))}.transaction-session-link{margin-top:var(--space-1)}.profile-page{max-width:800px}.profile-settings{margin-top:var(--space-4)}.profile-settings h3{margin:0 0 var(--space-2);font-size:var(--font-size-section);font-weight:var(--font-weight-semibold)}.profile-settings>p{margin:0 0 var(--space-3);color:var(--text-secondary);font-size:var(--font-size-secondary);line-height:var(--line-height-body)}.profile-debug-details{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border)}.profile-debug-details .profile-details{margin-top:0}.profile-debug-message{margin:0 0 var(--space-4);font-size:var(--font-size-secondary);line-height:var(--line-height-body)}.profile-debug-message.success{color:var(--success)}.profile-debug-message.error{color:var(--danger)}.profile-app-info{color:var(--text-secondary);align-items:flex-start;gap:12px;margin-top:24px;display:flex}.profile-app-info svg{color:var(--primary);flex-shrink:0;margin-top:2px}.profile-app-info p{margin:0;font-size:12px;line-height:1.7}.profile-logout{margin-top:var(--space-3)}.session-location h3{font-weight:600;font-size:var(--font-size-station)}.session-detail>.session-summary-metrics{margin-bottom:var(--space-4)}.session-card-heading h3{font-size:var(--font-size-section)}.session-stop{background:var(--surface-muted)}.login-dialog{width:min(440px,100vw - 32px);padding:var(--space-5);border-radius:var(--radius-panel);box-shadow:var(--shadow-dialog)}.login-dialog::backdrop,.charge-point-dialog::backdrop{background:var(--overlay)}.login-dialog h2{font-size:var(--font-size-heading);letter-spacing:-.8px;font-weight:700}.login-brand{width:var(--target-min);height:var(--target-min);border-radius:var(--radius-control);background:var(--primary-subtle);color:var(--primary);margin-bottom:var(--space-4);place-items:center;display:grid}.account-description{font-size:14px;line-height:1.7}.login-dialog input{background:var(--surface-muted);border-radius:12px;min-height:50px}.login-dialog label{font-size:14px}.dialog-close{border-radius:12px;width:44px;height:44px;top:12px;right:12px}.password-field{position:relative}.password-field input{padding-right:52px}.password-visibility{width:44px;height:44px;color:var(--text-secondary);background:0 0;border:0;border-radius:10px;place-items:center;padding:0;display:grid;position:absolute;top:3px;right:3px}.login-note{border-top:1px solid var(--border);padding-top:16px}.login-independent{color:var(--text-secondary);margin:20px 0 0;font-size:12px;line-height:1.6}.charge-point-dialog{width:min(600px,100vw - 40px);box-shadow:var(--shadow-dialog);border-radius:24px}.point-dialog-header{padding:var(--space-4)}.point-back{align-items:center;min-height:44px;margin-bottom:8px;font-size:14px;display:inline-flex}.point-title h2{font-weight:700;font-size:var(--font-size-card)}.point-title .charge-point-status{background:var(--surface-muted);border:0;border-radius:8px;min-height:30px;padding:6px 10px;font-size:13px}.point-specifications{margin-top:var(--space-3);gap:var(--space-2)}.point-specifications strong{font-variant-numeric:tabular-nums}.point-section h3{font-size:18px}.point-login-prompt{background:0 0;border:0;border-radius:0;padding:0}.point-dialog-footer{padding:var(--space-3) var(--space-4)}.point-start{min-height:52px}.point-dialog-footer p,.point-price-note,.point-details-note{font-size:12px}[data-theme=dark] .station-panel,[data-theme=dark] .station-legend,[data-theme=dark] .station-filter-fields,[data-theme=dark] .maplibregl-ctrl-group,[data-theme=dark] .map-status{box-shadow:none}@media (width<=1100px) and (width>=761px){:root{--discovery-width:360px}.header-inner{gap:20px;padding-inline:20px}.main-navigation{gap:4px;margin-left:0}.main-navigation a{padding-inline:12px}.transaction-record{grid-template-columns:minmax(180px,1fr) minmax(0,1.5fr)}.transaction-values{grid-template-columns:repeat(2,minmax(0,1fr))}.station-filter-fields{width:312px}}@media (width<=760px){.site-header{display:none}.brand{flex:1;gap:10px}.brand-symbol{border-radius:10px;width:32px;height:34px}.brand-symbol svg{width:20px}.brand-name{letter-spacing:-.6px;font-size:19px}.brand-name>span{font-size:10px}.mobile-navigation{z-index:6;border-top:1px solid var(--border);background:var(--surface);flex-shrink:0;grid-template-columns:repeat(3,1fr);min-height:64px;display:grid;position:relative}.mobile-navigation a{min-height:64px;color:var(--text-secondary);font-size:var(--font-size-meta);font-weight:var(--font-weight-semibold);flex-direction:column;justify-content:center;align-items:center;gap:4px;text-decoration:none;display:flex;position:relative}.mobile-navigation a[aria-current=page]{color:var(--primary)}.mobile-navigation a[aria-current=page]:before{content:"";background:var(--primary);border-radius:0 0 3px 3px;width:28px;height:3px;position:absolute;top:0}.map-container{width:100%;margin-left:0}.station-discovery{inset:var(--space-3);pointer-events:none;background:0 0;border:0;width:auto}.discovery-heading,.discovery-footer{display:none}.discovery-controls{pointer-events:auto;border:0;flex:none;padding:0}.station-search{background:var(--surface);min-height:50px;box-shadow:var(--shadow-float)}.station-search input{font-size:16px}.station-filters summary,.availability-filter{min-height:44px;box-shadow:var(--shadow-float)}.station-filter-fields{width:100%;max-width:100%;max-height:max(var(--target-min), calc(var(--app-height,100dvh) - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 160px));top:48px;left:0}.discovery-results{max-height:none;margin-top:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-float);pointer-events:auto;flex:0 auto;display:none}.station-discovery[data-searching=true] .discovery-results{display:block}.station-discovery[data-searching=true] .discovery-count{display:none}.station-discovery:has(.station-filters[open]) .discovery-results{display:none}.discovery-list-heading{padding:16px 20px 0}.discovery-search-note{padding-inline:20px}.discovery-station{min-height:var(--target-min);padding:var(--space-3) var(--space-4)}.city-button{justify-content:center;width:44px;height:44px;padding:0;top:72px;left:auto;right:12px}.city-button>span{display:none}.maplibregl-ctrl-top-right{top:120px;right:2px}.maplibregl-ctrl-fullscreen{display:none}.scan-button{border-radius:12px;min-height:48px;padding-inline:14px;font-size:13px;bottom:36px;right:12px}.scan-button>span{display:none}.map-key{gap:8px;max-width:calc(100% - 80px);bottom:28px;left:12px}.sync-indicator-button{min-height:36px;font-size:11px}.station-legend>summary{min-height:36px;padding-inline:12px;font-size:12px}.station-status{pointer-events:none;max-width:calc(100% - 80px);padding:6px 10px;font-size:11px;top:124px;left:12px}.station-status button{pointer-events:auto}.station-status:has(.loading-spinner){max-width:calc(100% - 76px)}.map-status{max-width:calc(100% - 32px);padding:20px;left:50%}.map-panel:has(.station-panel) .station-status{visibility:hidden}.station-panel{width:100%;max-height:min(58%,420px);height:var(--sheet-height,auto);border:1px solid var(--border);transform:translateY(var(--sheet-drag,0px));box-shadow:var(--shadow-sheet);border-width:1px 0 0;border-radius:24px 24px 0 0;transition:height .22s ease-out,transform .22s ease-out;animation:.2s ease-out station-sheet-enter;inset:auto 0 0}.station-panel[data-sheet-ready=true]{max-height:calc(100% - 12px)}.station-panel[data-dragging=true],.station-panel[data-sheet-measuring=true]{transition:none}.station-panel-handle:before{background:var(--text-secondary);opacity:.5}.station-panel-close{width:44px;height:44px;right:12px}.station-panel .station-summary{padding:0 20px 16px}.station-panel .station-details h2{margin-bottom:8px;font-size:23px}.station-details-network{margin-bottom:10px!important}.station-panel .station-points{padding:16px 20px 24px}.station-panel[data-sheet-state=middle] .station-panel-body{overflow-y:hidden}.station-power-summary{margin-top:10px!important;font-size:14px!important}.station-directions{margin-top:12px}.account-main{padding:24px 16px}.transactions-heading h2{font-size:var(--font-size-page)}.transactions-heading{margin-bottom:var(--space-4)}.transactions-page{padding-bottom:16px}.transactions-content{border-radius:16px}.transactions-welcome{padding:var(--space-6) var(--space-4)}.transactions-welcome h3{font-size:var(--font-size-section)}.transactions-toolbar{padding:var(--space-2) var(--space-4);gap:var(--space-2)}.transactions-toolbar .account-button{padding-inline:var(--space-3);font-size:var(--font-size-button)}.transaction-record{gap:var(--space-3);padding:var(--space-3) var(--space-4);grid-template-columns:1fr}.transaction-values{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.transaction-values dd{font-size:14px}.transaction-price dd{font-size:18px}.transaction-session-link{float:right;margin-top:8px}.transactions-pagination{align-items:stretch;gap:var(--space-2);padding:var(--space-3) var(--space-4);flex-direction:column}.transactions-pagination>div{justify-content:space-between}.session-detail{padding:var(--space-4)}.session-card{padding:var(--space-4) 0 0}.login-dialog{padding:var(--space-5);border-radius:20px;max-height:calc(100dvh - 24px)}.login-dialog h2{font-size:var(--font-size-heading)}.charge-point-dialog{width:100%;max-width:100%;max-height:calc(100dvh - env(safe-area-inset-top) - 12px);border:1px solid var(--border);border-width:1px 0 0;border-radius:24px 24px 0 0;margin:auto 0 0}.point-dialog-header{padding:var(--space-4)}.point-dialog-body{padding:0 var(--space-4)}.point-dialog-footer{padding:var(--space-3) var(--space-4) max(var(--space-3), env(safe-area-inset-bottom))}.point-title h2{font-size:var(--font-size-card)}}@media (height<=540px) and (width<=760px){.header-inner{height:52px}.mobile-navigation,.mobile-navigation a{min-height:52px}.station-panel{max-height:70%}.station-panel .station-summary{padding-bottom:12px}.maplibregl-ctrl-top-right{top:64px}.maplibregl-ctrl-top-right .maplibregl-ctrl-group:first-child{display:none}.station-filter-fields{max-height:max(var(--target-min), calc(var(--app-height,100dvh) - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 160px))}}@media (width<=760px){.map-panel .maplibregl-ctrl-group:has(.maplibregl-ctrl-fullscreen){display:none}.map-panel .maplibregl-ctrl button.maplibregl-ctrl-compass{display:none}.station-panel-handle{height:44px;color:var(--text-secondary);align-items:flex-end;padding-bottom:6px;position:relative}.station-panel-handle:before{position:absolute;top:10px}.station-panel-close{top:44px}}@media (height<=540px) and (width>=761px){.discovery-heading,.discovery-footer,.station-status{display:none}.discovery-controls{padding-top:16px;padding-bottom:16px}.discovery-list-heading{padding-top:16px}.discovery-search-note{margin-bottom:8px}.map-key{flex-direction:row;align-items:flex-end}.scan-button>span{display:none}.station-panel-body{overflow-y:auto}.station-panel .station-details{flex:none}.station-panel .station-points{overflow:visible}.station-panel .station-summary{padding:20px 24px}}@media (height<=540px) and (width<=760px){.station-panel-body{overflow-y:auto}.station-panel .station-details{flex:none}.station-panel .station-points{overflow:visible}}.login-dialog,.charge-point-dialog{max-height:min(calc(100dvh - 24px), calc(var(--app-height,100dvh) - 24px))}.discovery-count{color:var(--text-secondary);font-size:var(--font-size-meta);font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;margin-left:auto;display:none}.station-search.sf-search{min-height:var(--control-height);border-color:var(--control-border)}.station-search.sf-search input{height:calc(var(--control-height) - 2px)}.station-search .sf-search-clear{margin-right:calc(-1 * var(--space-2))}.availability-filter[aria-pressed=true],.station-filters[open] summary{color:var(--selected-foreground)}.map-panel .maplibregl-ctrl-group{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-control);box-shadow:var(--shadow-float)}.map-panel .maplibregl-ctrl-group button{width:var(--target-min);height:var(--target-min)}.map-panel .maplibregl-ctrl-top-right{top:var(--space-3);right:var(--space-3)}.map-panel .maplibregl-ctrl-top-right .maplibregl-ctrl{margin:0 0 var(--space-2)}.map-key{align-items:flex-end;gap:var(--space-2);bottom:var(--space-3);flex-direction:row}.station-legend>summary,.map-options>summary{min-height:var(--target-min);padding-inline:var(--space-3);list-style:none}.station-legend>summary::-webkit-details-marker{display:none}.map-options>summary::-webkit-details-marker{display:none}.station-legend[open]>summary,.map-options[open]>summary{color:var(--selected-foreground);background:var(--primary-subtle)}.legend-content{bottom:calc(var(--target-min) + var(--space-2));width:min(350px, calc(100vw - var(--space-6)));overscroll-behavior:contain;max-height:calc(100% + 60dvh);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-float);position:absolute;left:0;overflow-y:auto}.legend-colors,.legend-colors>span{gap:var(--space-3)}.legend-colors .sf-station-marker{margin:var(--space-1);flex-shrink:0}.legend-note{color:var(--text-secondary);font-size:var(--font-size-meta);line-height:var(--line-height-body);margin:0}.legend-content .sync-indicator-tooltip{visibility:visible;opacity:1;width:auto;max-width:none;padding:var(--space-2) 0 0;box-shadow:none;font-size:var(--font-size-meta);border:0;display:block;position:static}.map-options{color:var(--text-primary);font-size:var(--font-size-secondary)}.map-options>summary{width:var(--target-min);border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface);box-shadow:var(--shadow-float);cursor:pointer;place-items:center;padding:0;display:grid}.map-options-content{bottom:calc(var(--target-min) + var(--space-2));gap:var(--space-2);width:min(300px, calc(100vw - var(--space-6)));max-height:60dvh;padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-float);display:grid;position:absolute;left:0;overflow-y:auto}.map-touch-zoom{display:none}.station-status[data-status=ready]{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.map-panel{--map-action-right:var(--space-5)}.scan-button{right:var(--map-action-right);min-width:var(--control-height);min-height:var(--control-height);border-radius:var(--radius-control);bottom:calc(var(--target-min) + var(--space-10))}@media (width<=760px){.map-panel{--map-action-right:var(--space-3)}.map-key>.map-options{display:none}.station-search.sf-search{min-height:var(--target-min);background:var(--surface)}.station-search.sf-search input{height:calc(var(--target-min) - 2px)}.discovery-count{text-overflow:ellipsis;width:fit-content;max-width:100%;margin:var(--space-2) 0 0;min-width:0;padding:var(--space-1) var(--space-2);border-radius:var(--radius-small);background:var(--surface);display:block;overflow:hidden}.map-panel .maplibregl-ctrl-top-right{top:calc(var(--space-3) + var(--target-min) + var(--space-2));right:var(--space-3)}.map-key{bottom:var(--space-3);max-width:calc(100% - var(--space-6))}.station-legend>summary{min-height:var(--target-min);font-size:var(--font-size-meta)}.legend-content{max-height:max(var(--target-min), calc(var(--app-height,100dvh) - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 240px))}.scan-button{width:var(--control-height);height:var(--control-height);bottom:calc(var(--target-min) + var(--space-10));padding:0}.station-status{top:calc(var(--space-3) + var(--target-min) * 2 + var(--space-4));font-size:var(--font-size-meta)}.station-status[data-status=loading]{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden}}.legend-sync{color:var(--text-secondary);font-weight:var(--font-weight-medium)}.legend-sync[data-state=stale]{color:var(--danger)}.legend-sync[data-state=checking]{color:var(--warning)}.legend-sync[data-state=fresh]{color:var(--success)}.station-legend>summary{gap:var(--space-2);border-radius:inherit}.map-panel .maplibregl-ctrl-bottom-right{max-width:calc(100% - var(--space-6))}.map-panel .maplibregl-ctrl-attrib.maplibregl-compact{box-sizing:border-box;max-width:100%;min-height:var(--target-min);padding:var(--space-3) var(--target-min) var(--space-3) var(--space-2);border-radius:var(--radius-control);background:var(--surface);color:var(--text-secondary)}.map-panel .maplibregl-ctrl-attrib.maplibregl-compact:not(.maplibregl-compact-show){padding:0}.map-panel .maplibregl-ctrl-attrib a{color:var(--text-secondary)}.map-panel .maplibregl-ctrl-attrib-button{width:var(--target-min);height:var(--target-min);border-radius:var(--radius-control);background-position:50%;background-repeat:no-repeat}@media (width<=760px),(pointer:coarse){:is(.map-panel .maplibregl-ctrl-group:has(.maplibregl-ctrl-zoom-in),.map-panel .maplibregl-ctrl-group:has(.maplibregl-ctrl-fullscreen)){display:none}.map-touch-zoom{gap:var(--space-2);display:grid}}.sync-indicator-label{align-items:center;gap:var(--space-2);font-size:var(--font-size-secondary);font-weight:var(--font-weight-semibold);display:flex}.map-panel .maplibregl-ctrl-bottom-right .maplibregl-ctrl-group:has(.maplibregl-ctrl-geolocate){right:var(--map-action-right);bottom:calc(var(--target-min) + var(--space-10) + var(--control-height) + var(--space-2));width:var(--control-height);height:var(--control-height);box-sizing:border-box;margin:0;position:absolute}.map-panel .maplibregl-ctrl-bottom-right .maplibregl-ctrl-geolocate{width:calc(var(--control-height) - 2px);height:calc(var(--control-height) - 2px)}.map-panel .maplibregl-ctrl-bottom-right .maplibregl-ctrl-attrib{margin:0 var(--space-3) var(--space-3) 0}.mobile-map-actions{display:none}@media (width<=760px){.mobile-map-actions{gap:var(--space-2);border-top:1px solid var(--border);padding-top:var(--space-3);display:grid}.mobile-map-actions h3{font-size:var(--font-size-secondary);margin:0}}.station-summary .station-address{color:var(--text-secondary);font-size:var(--font-size-meta);line-height:var(--line-height-body)}.station-overview{align-items:baseline;gap:var(--space-1) var(--space-4);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.station-summary .station-power-summary{color:var(--text-secondary);font-weight:var(--font-weight-medium);white-space:nowrap;font-size:var(--font-size-secondary)!important;margin:0!important}.station-summary .station-connector-summary{margin-top:var(--space-1);color:var(--text-secondary);font-size:var(--font-size-secondary);line-height:var(--line-height-body)}.station-preview-actions{justify-content:flex-start;align-items:center;gap:var(--space-2);margin-top:var(--space-2);display:flex}.station-preview-actions .station-directions{min-height:var(--target-min);border-radius:var(--radius-control);font-size:var(--font-size-secondary);color:var(--primary);border:0;flex-shrink:0;justify-content:flex-start;margin:0;padding:0;display:inline-flex}.station-points .station-price-hint{margin:0 0 var(--space-2);color:var(--text-secondary);font-size:var(--font-size-meta);line-height:var(--line-height-body)}.station-points .retry-button{min-height:var(--target-min);margin:0}@media (width<=760px){.station-panel{max-height:calc(100% - var(--space-3))}.station-panel .station-panel-handle{z-index:1;width:96px;height:var(--target-min);min-height:var(--target-min);align-self:center;align-items:flex-start;padding:0;position:relative}.station-panel .station-panel-handle:before{top:var(--space-2)}.station-panel .station-panel-handle:after{content:none}.station-panel .station-panel-close{top:var(--target-min);right:var(--space-2);background:0 0}.station-panel .station-panel-body{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-gutter:stable;flex:auto;display:block;overflow-y:auto}.station-panel .station-details{flex:none;display:block}.station-panel .station-summary{padding:0 var(--space-4) var(--space-3);border:0}.station-panel .station-details h2{margin:0 var(--space-10) var(--space-1) 0;font-size:var(--font-size-station);line-height:var(--line-height-heading);letter-spacing:0;display:block}.station-panel .station-details-network{color:var(--text-secondary);font-size:var(--font-size-meta);line-height:var(--line-height-body);margin:0!important}.station-panel .station-details .station-available,.station-panel .station-details .station-unavailable{font-size:var(--font-size-section);line-height:var(--line-height-body)}.station-panel .station-points{padding:var(--space-3) var(--space-4) var(--space-4);border-top:1px solid var(--border);flex:none;overflow:visible}.station-panel .station-details h3{margin:0 0 var(--space-2);font-size:var(--font-size-section)}.station-panel .charge-point-header{font-size:var(--font-size-card)}.station-panel .charge-point-select .charge-point-header strong:after{content:" ›"}.station-panel .station-details .charge-point-id{margin-top:var(--space-1);font-size:var(--font-size-meta)}.station-panel .station-details .charge-point-specifications{margin-top:var(--space-1);font-size:var(--font-size-secondary);font-weight:var(--font-weight-regular)}.station-panel .charge-point-placeholder{min-height:96px}.station-panel .station-selection .station-summary{padding-right:var(--space-10)}.station-panel .station-selection .station-points{display:block}}.station-panel .station-available{color:var(--success)}.station-point-footer:empty{display:none}.station-point-footer{background:var(--surface);border-top:1px solid var(--border);flex:none;max-height:45%;overflow-y:auto}.station-point-footer .point-inline-footer{padding:var(--space-3) var(--space-4);background:var(--surface);border:0;margin:0}.point-inline-footer .point-start{width:100%;min-height:var(--control-height-large);display:block}.point-inline-footer>p{margin:var(--space-2) 0 0;color:var(--text-secondary);font-size:var(--font-size-meta);line-height:var(--line-height-body)}.point-inline-view{min-width:0;padding-bottom:var(--space-3);margin:0}.point-inline-view .point-dialog-body{padding:0}.point-inline-view .point-section{padding:var(--space-3) 0}.point-inline-view .point-login-prompt{background:0 0;border:0;border-radius:0;margin:0;padding:0}.point-inline-view .point-login-prompt p{color:var(--text-secondary);font-size:var(--font-size-secondary);line-height:var(--line-height-body)}.point-inline-view .point-price-note,.point-inline-view .point-loading{margin:var(--space-2) 0;font-size:var(--font-size-meta)}.point-hours-disclosure>summary,.point-technical>summary{min-height:var(--target-min);color:var(--text-primary);font-size:var(--font-size-secondary);font-weight:var(--font-weight-semibold);cursor:pointer;align-items:center;display:flex}.point-inline-view .point-hours-disclosure{padding:0}.point-technical{border-top:1px solid var(--border)}.point-technical-content{gap:var(--space-2);padding-bottom:var(--space-3);color:var(--text-secondary);display:grid}.point-identifier{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.point-identifier>div{gap:var(--space-1);min-width:0;display:grid}.point-identifier span{font-size:var(--font-size-meta)}.point-identifier code{color:var(--text-secondary);font-size:var(--font-size-meta);overflow-wrap:anywhere;-webkit-user-select:text;user-select:text}.point-identifier .sf-button{min-height:var(--target-min);padding:var(--space-2) var(--space-3);flex-shrink:0}.station-details .charge-point-tariff-preview{margin-top:var(--space-1);color:var(--text-secondary);font-size:var(--font-size-meta)}.station-panel .charge-point[data-selected=true]>.charge-point-select{padding:var(--space-3);border-radius:var(--radius-control);background:var(--primary-subtle)}.station-panel .charge-point[data-selected=true]>.charge-point-select .charge-point-header strong:after{content:" ⌃"}.station-panel .charge-point{display:flow-root;position:relative}.station-panel .charge-point+.charge-point{border-top:0}.station-panel .charge-point+.charge-point:before{content:"";top:0;right:calc(var(--space-3) * -1);left:calc(var(--space-3) * -1);background:var(--border);height:1px;position:absolute}.station-panel .charge-point-select{width:calc(100% + var(--space-6));margin:var(--space-1) calc(var(--space-3) * -1);padding:var(--space-3);border-radius:var(--radius-control)}.station-panel .charge-point-select:hover{background:var(--surface-muted)}.station-panel .charge-point-inline{padding:0}@media (width<=760px){.station-point-footer .point-inline-footer{padding-bottom:var(--space-3)}}.point-footer-selection{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2);color:var(--text-primary);font-size:var(--font-size-secondary);display:flex}.point-technical>summary:after,.point-hours-disclosure>summary:after{content:"⌄";margin-left:auto}.point-technical[open]>summary:after,.point-hours-disclosure[open]>summary:after{content:"⌃"}.station-panel .charge-point[data-selected=true] .charge-point-tariff-preview{display:none}.sf-button{justify-content:center;align-items:center;gap:var(--space-2);min-width:var(--target-min);min-height:var(--target-min);padding:var(--space-2) var(--space-4);border-radius:var(--radius-control);font:var(--font-weight-semibold) var(--font-size-button)/var(--line-height-body) var(--font-family);cursor:pointer;transition:background-color var(--motion-fast), border-color var(--motion-fast), color var(--motion-fast);border:1px solid #0000;text-decoration:none;display:inline-flex}.sf-button-primary{min-height:var(--control-height);color:var(--primary-foreground);background:var(--primary);border-color:var(--primary)}.sf-button-primary:hover:enabled{background:var(--primary-hover);border-color:var(--primary-hover)}.sf-button-secondary{color:var(--text-primary);background:var(--surface);border-color:var(--control-border)}.sf-button-secondary:hover:enabled{background:var(--surface-muted)}.sf-button-ghost{color:var(--primary);background:0 0}.sf-button-ghost:hover:enabled{background:var(--primary-subtle)}.sf-button-danger{color:var(--danger);background:var(--surface);border-color:var(--danger)}.sf-button-danger:hover:enabled{background:color-mix(in srgb, var(--danger) 10%, var(--surface))}.sf-button:active:enabled{filter:brightness(.94)}.sf-button:disabled{opacity:.55;cursor:not-allowed}.sf-icon-button{min-width:var(--target-min);min-height:var(--target-min);width:var(--target-min);height:var(--target-min);flex:0 0 var(--target-min);padding:0}.sf-button:focus-visible,.sf-input:focus-visible,.sf-search input:focus-visible,.sf-navigation a:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}.sf-spinner{width:var(--space-4);height:var(--space-4);border-radius:var(--radius-circle);border:2px solid;border-right-color:#0000;flex-shrink:0;animation:.8s linear infinite sf-spin}@keyframes sf-spin{to{transform:rotate(360deg)}}.sf-field{gap:var(--space-2);min-width:0;display:grid}.sf-field>label{font-size:var(--font-size-secondary);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.sf-input{width:100%;min-width:0;min-height:var(--control-height);padding:var(--space-3) var(--space-4);color:var(--text-primary);background:var(--surface-muted);border:1px solid var(--control-border);border-radius:var(--radius-control);font:inherit;font-size:var(--font-size-body);line-height:var(--line-height-body)}.sf-input::placeholder,.sf-search input::placeholder{color:var(--text-secondary);opacity:1}.sf-input[aria-invalid=true]{border-color:var(--danger);outline-color:var(--danger)}.sf-input:disabled{opacity:.65;cursor:not-allowed}.sf-field-hint,.sf-field-error{font-size:var(--font-size-secondary);line-height:var(--line-height-body);margin:0}.sf-field-hint{color:var(--text-secondary)}.sf-field-error{color:var(--danger)}.sf-search{align-items:center;gap:var(--space-3);min-width:0;min-height:var(--control-height);padding:0 var(--space-3);color:var(--text-secondary);background:var(--surface-muted);border:1px solid var(--control-border);border-radius:var(--radius-control);display:flex}.sf-search>svg{flex-shrink:0}.sf-search input{width:100%;min-width:0;height:var(--control-height);color:var(--text-primary);font:inherit;font-size:var(--font-size-body);background:0 0;border:0;border-radius:0;flex:1;padding:0}.sf-search:focus-within{border-color:var(--primary);outline:3px solid var(--focus-ring);outline-offset:3px}.sf-search input:focus-visible{outline:none}.sf-search input::-webkit-search-cancel-button{display:none}.sf-search-clear{color:var(--text-secondary);margin-right:calc(var(--space-2) * -1);background:0 0;border:0}.sf-card{padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-card);color:var(--text-primary);background:var(--surface);min-width:0}.sf-card[data-surface=muted]{background:var(--surface-muted)}.sf-card[data-surface=elevated]{background:var(--surface-elevated)}.sf-panel{border-radius:var(--radius-panel)}.sf-status{align-items:center;gap:var(--space-2);width:fit-content;padding:var(--space-1) var(--space-2);border-radius:var(--radius-small);background:var(--surface);color:var(--neutral-status);font-size:var(--font-size-meta);font-weight:var(--font-weight-semibold);line-height:var(--line-height-body);display:inline-flex}.sf-status>span{border-radius:var(--radius-circle);background:currentColor;width:6px;height:6px}.sf-status[data-status=available],.sf-status[data-status=success]{color:var(--success)}.sf-status[data-status=occupied],.sf-status[data-status=warning]{color:var(--warning)}.sf-status[data-status=broken],.sf-status[data-status=danger]{color:var(--danger)}.sf-filter-chip{min-height:var(--target-min);padding:var(--space-2) var(--space-4)}.sf-filter-chip[aria-pressed=true]{border-color:var(--primary);color:var(--selected-foreground);background:var(--primary-subtle)}.sf-switch{justify-content:space-between;align-items:center;gap:var(--space-4);min-height:var(--target-min);cursor:pointer;display:flex;position:relative}.sf-switch-copy{gap:var(--space-1);display:grid}.sf-switch-label{color:var(--text-primary);font-size:var(--font-size-secondary);font-weight:var(--font-weight-semibold);line-height:var(--line-height-body)}.sf-switch-hint{color:var(--text-secondary);font-size:var(--font-size-meta);line-height:var(--line-height-body)}.sf-switch-input{opacity:0;width:1px;height:1px;margin:0;position:absolute}.sf-switch-track{border:1px solid var(--control-border);border-radius:var(--radius-circle);background:var(--surface-muted);width:48px;height:28px;transition:background-color var(--motion-fast), border-color var(--motion-fast);flex:0 0 48px;position:relative}.sf-switch-track:after{content:"";border-radius:var(--radius-circle);background:var(--text-secondary);width:20px;height:20px;transition:transform var(--motion-fast), background-color var(--motion-fast);position:absolute;top:3px;left:3px}.sf-switch-input:checked+.sf-switch-track{border-color:var(--primary);background:var(--primary)}.sf-switch-input:checked+.sf-switch-track:after{background:var(--primary-foreground);transform:translate(20px)}.sf-switch-input:focus-visible+.sf-switch-track{outline:3px solid var(--focus-ring);outline-offset:3px}.sf-switch-input:disabled+.sf-switch-track{opacity:.55}.sf-switch:has(.sf-switch-input:disabled){cursor:not-allowed}.sf-skeleton{gap:var(--space-3);width:100%;display:grid}.sf-skeleton>span{height:var(--space-3);border-radius:var(--space-1);background:var(--border);width:85%;animation:1.6s ease-in-out infinite sf-skeleton-fade}.sf-skeleton>span:first-child{height:var(--space-5);width:65%}.sf-skeleton>span:last-child{width:45%}@keyframes sf-skeleton-fade{50%{opacity:.5}}.sf-state{align-items:center;gap:var(--space-4);padding:var(--space-8) var(--space-5);color:var(--text-secondary);text-align:center;line-height:var(--line-height-body);flex-direction:column;display:flex}.sf-state h3{color:var(--text-primary);font-size:var(--font-size-section);font-weight:var(--font-weight-semibold);margin:0}.sf-state p{max-width:42ch;font-size:var(--font-size-secondary);margin:0}.sf-error-state h3{color:var(--danger)}.sf-navigation{align-items:center;gap:var(--space-2);padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface);display:flex}.sf-navigation a{justify-content:center;align-items:center;gap:var(--space-2);min-width:var(--target-min);min-height:var(--target-min);padding:var(--space-2) var(--space-4);color:var(--text-secondary);border-radius:var(--radius-small);font-size:var(--font-size-secondary);font-weight:var(--font-weight-semibold);text-decoration:none;display:flex}.sf-navigation a[aria-current=page]{color:var(--selected-foreground);background:var(--primary-subtle)}.sf-station-marker{width:36px;height:36px;margin:var(--space-2);border:1px solid var(--surface);border-radius:var(--radius-circle);color:var(--primary-foreground);background:var(--neutral-status);font-size:var(--font-size-meta);font-weight:var(--font-weight-bold);place-items:center;display:inline-grid;position:relative}.sf-station-marker[data-availability=available]{background:var(--success)}.sf-station-marker[data-availability=available][data-operator=wien-energie]{background:var(--primary)}.sf-marker-badge{width:var(--space-4);height:var(--space-4);color:var(--text-primary);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-circle);place-items:center;display:grid;position:absolute;right:-6px}.sf-marker-badge svg{width:11px;height:11px}.sf-marker-provider{top:-4px}.sf-marker-status{bottom:-4px}.sf-metrics{gap:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));margin:0;display:grid}.sf-metrics>div{min-width:0;padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-muted)}.sf-metrics dt{color:var(--text-secondary);font-size:var(--font-size-secondary)}.sf-metrics dd{margin:var(--space-2) 0;color:var(--text-primary);font-size:var(--font-size-metric);font-weight:var(--font-weight-bold);line-height:var(--line-height-heading);letter-spacing:-.8px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.sf-metrics span{color:var(--text-secondary);font-size:var(--font-size-meta);line-height:var(--line-height-body)}.sf-dialog{width:min(560px, calc(100vw - var(--space-8)));max-height:min(calc(100dvh - var(--space-8)), calc(var(--app-height,100dvh) - var(--space-8)));padding:var(--space-5);overscroll-behavior:contain;color:var(--text-primary);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-panel);box-shadow:var(--shadow-dialog);margin:auto;overflow-y:auto}.sf-dialog::backdrop{background:var(--overlay)}.sf-dialog header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);display:flex}.sf-dialog h2{margin:var(--space-2) 0;font-size:var(--font-size-heading);line-height:var(--line-height-heading);font-weight:var(--font-weight-bold)}.sf-dialog-description{margin:var(--space-2) 0 var(--space-4);color:var(--text-secondary);font-size:var(--font-size-secondary);line-height:var(--line-height-body)}.sf-dialog-content{margin-top:var(--space-4)}.sf-dialog footer{justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border);flex-wrap:wrap;display:flex}.sf-sheet-host{inset:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);z-index:30;pointer-events:none;position:fixed}.sf-bottom-sheet{pointer-events:auto;top:auto;bottom:var(--space-4);left:var(--space-4);width:min(400px, calc(100% - var(--space-8)));max-height:calc(100% - var(--space-8));border:1px solid var(--border);border-radius:var(--radius-panel);box-shadow:var(--shadow-sheet)}.sf-bottom-sheet .station-panel-close{font-size:inherit}@media (width<=760px){.sf-navigation{justify-content:space-around;gap:var(--space-1)}.sf-navigation a{padding-inline:var(--space-2);font-size:var(--font-size-meta);flex-direction:column;flex:1}.sf-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.sf-metrics>div{padding:var(--space-4)}.sf-metrics>div:last-child:nth-child(odd){grid-column:1/-1}.sf-bottom-sheet{border-radius:var(--radius-sheet) var(--radius-sheet) 0 0;width:100%;max-height:60%;inset:auto 0 0}.sf-bottom-sheet[data-sheet-ready=true]{max-height:calc(100% - var(--space-3))}}@media (prefers-reduced-motion:reduce){.sf-spinner,.sf-skeleton>span{animation:none}.sf-button,.sf-switch-track,.sf-switch-track:after{transition:none}}.sf-station-marker[data-selected=true]{outline:3px solid var(--text-primary);outline-offset:4px;box-shadow:0 0 0 4px var(--surface)}.sf-section{min-width:0;padding-block:var(--space-4);border-top:1px solid var(--border)}.sf-section>h3{margin:0 0 var(--space-2);font-size:var(--font-size-section);font-weight:var(--font-weight-semibold);line-height:var(--line-height-heading)}
