:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:var(--surface-page);color:var(--text-primary);--brand-page:#001f3f;--brand-panel:#036;--brand-primary:#0074d9;--brand-primary-hover:#005fa3;--brand-secondary:#ff851b;--brand-secondary-hover:#cc6c16;--state-success:#2ecc40;--state-error:#ff4136;--text-primary:#fff;--text-secondary:#ccc;--text-muted:#8fa1ad;--surface-page:#00162d;--surface-app:#041b31;--surface-panel:#062947;--surface-panel-strong:#036;--surface-inset:#031223;--surface-overlay:#031223f0;--surface-rail:#041625;--surface-row:#051d31;--border-subtle:#ffffff14;--border-strong:#ffffff24;--focus-ring:#5eb8ff;--state-selection:#4dabf7;--state-exact-tariff:#7dd3fc;--state-fallback-tariff:#ffb85c;--state-inferred-tariff:#9bd5ff;--state-missing-tariff:#f0b83e;--state-full:#ff6b3a;--state-favorite:#ffd166;--button-primary:linear-gradient(180deg, var(--brand-primary) 0%, var(--brand-primary-hover) 100%);--button-primary-hover:linear-gradient(180deg, #1689ec 0%, var(--brand-primary) 100%);--button-secondary:linear-gradient(145deg, var(--surface-panel), #0003);--button-secondary-hover:linear-gradient(145deg, var(--surface-panel-strong), #00000024);--button-danger:linear-gradient(180deg, #8f2d2a 0%, #5f1f1d 100%);--button-danger-hover:linear-gradient(180deg, var(--state-error) 0%, #8f2d2a 100%);--button-radius:8px;--radius-sheet:14px;--button-shadow:0 6px 14px #00000047, inset 0 1px 0 #ffffff1a;--button-shadow-hover:0 8px 18px #00000057, inset 0 1px 0 #ffffff1f;--control-height:42px;--control-padding-x:14px;--control-gap:7px;--control-font-size:14px;--control-font-weight:700;--control-shadow:var(--button-shadow);--control-shadow-hover:var(--button-shadow-hover);--shadow-floating:0 24px 70px #00000080;--shadow-sheet:0 -18px 50px #0000008c;--motion-fast:.14s ease;--motion-control:.16s ease;--motion-sheet:.18s cubic-bezier(.2, .8, .2, 1);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}html,body{height:100%}body{background:var(--surface-page);color:var(--text-primary);font-variant-numeric:tabular-nums;margin:0}.version-badge{min-height:30px;color:var(--text-primary);box-shadow:none;opacity:.86;background:#0000008c;border:1px solid #ffffff1f;border-radius:10px;align-items:center;padding:5px 10px;font-size:13px;font-weight:700;text-decoration:none;transition:border-color .16s,background .16s,box-shadow .16s,color .16s,opacity .16s,transform .16s;display:inline-flex}.version-badge:hover,.version-badge:focus-visible{border-color:var(--focus-ring);opacity:1;background:#000000b8;outline:none;transform:translateY(-1px);box-shadow:0 0 0 3px #5eb8ff38}.settings-link,.logout-link{--control-height:32px;--control-padding-x:10px;--control-gap:6px;--control-font-size:13px;--control-border:var(--border-subtle);--control-bg:var(--button-secondary);--control-color:var(--text-secondary);--control-hover-bg:var(--button-secondary-hover);--control-hover-color:var(--text-primary);text-decoration:none}.shell{grid-template-rows:auto minmax(0,1fr);max-width:100vw;height:100dvh;min-height:100dvh;display:grid;overflow:hidden}.search-panel{--brand-text-offset:48px;background:linear-gradient(145deg, var(--surface-app), var(--surface-page));border-bottom:1px solid var(--border-subtle);grid-template-columns:minmax(320px,360px) minmax(420px,1fr);align-items:start;gap:8px 18px;padding:12px 16px 10px;display:grid;box-shadow:0 1px #ffffff0a}h1,h2,p{margin:0}h1{font-size:21px;line-height:1.2}p{color:var(--text-muted);margin-top:1px;font-size:13px;line-height:1.25}.brand-lockup{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;display:grid}.brand-mark{object-fit:contain;filter:drop-shadow(0 8px 16px #0000004d);width:38px;height:38px}.brand-copy{padding-top:1px}.price-note{max-width:340px;color:var(--text-muted);grid-column:2;margin-top:3px;font-size:11px;line-height:1.25}.icon{stroke-width:2px;flex:none;width:1em;height:1em}.controls{grid-template-columns:minmax(260px,1fr) 110px 92px;align-items:center;gap:10px;padding-top:6px;display:grid}.top-actions{grid-area:2/2;justify-content:flex-end;align-self:end;align-items:flex-end;gap:8px;display:flex}.top-actions .settings-link,.top-actions .logout-link{--control-height:28px;--control-padding-x:9px;--control-shadow:none;--control-shadow-hover:0 0 0 3px #5eb8ff33;white-space:nowrap}.settings-panel{border:1px solid var(--border-subtle);background:var(--surface-panel);border-radius:8px;grid-column:2}.settings-panel>summary{min-height:38px;color:var(--text-secondary);cursor:pointer;padding:9px 12px;font-size:14px;font-weight:700}.settings-panel[open]>summary{border-bottom:1px solid var(--border-subtle)}.settings-form{grid-template-columns:minmax(220px,1fr) 120px 118px 108px 84px 96px;align-items:end;gap:10px;padding:12px;display:grid}.settings-form label{color:var(--text-muted);gap:5px;font-size:12px;font-weight:700;display:grid}.settings-form input,.settings-form select,.settings-form button{width:100%}.settings-form button:disabled{cursor:wait;opacity:.6}.poll-status{color:var(--text-muted);padding:0 12px 12px;font-size:13px}input,select,button{height:var(--control-height,42px);border:1px solid var(--control-border,var(--border-subtle));border-radius:var(--control-radius,var(--button-radius));font:inherit}input,select{background:var(--surface-inset);color:var(--text-primary);padding:0 12px;box-shadow:inset 0 1px #ffffff0d}button,.settings-link,.logout-link,.route-link,.charger-action-button,.icon-copy-button{gap:var(--control-gap,7px);min-height:var(--control-height,42px);height:var(--control-height,42px);padding:0 var(--control-padding-x,14px);border:1px solid var(--control-border,#0074d9b3);border-radius:var(--control-radius,var(--button-radius));cursor:pointer;background:var(--control-bg,var(--button-primary));color:var(--control-color,#fff);font-size:var(--control-font-size,14px);font-weight:var(--control-font-weight,700);box-shadow:var(--control-shadow,var(--button-shadow));transition:border-color var(--motion-control), background var(--motion-control), box-shadow var(--motion-control), color var(--motion-control), opacity var(--motion-control), transform var(--motion-control);justify-content:center;align-items:center;line-height:1;display:inline-flex}button:hover,button:focus-visible,.settings-link:hover,.settings-link:focus-visible,.logout-link:hover,.logout-link:focus-visible,.route-link:hover,.route-link:focus-visible,.charger-action-button:hover,.charger-action-button:focus-visible,.icon-copy-button:hover,.icon-copy-button:focus-visible{border-color:var(--control-hover-border,var(--focus-ring));background:var(--control-hover-bg,var(--button-primary-hover));color:var(--control-hover-color,var(--control-color,#fff));box-shadow:var(--control-shadow-hover,var(--button-shadow-hover));outline:none;transform:translateY(-1px)}input:focus-visible,select:focus-visible,a:focus-visible,.charger:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}button:active{transform:translateY(0)}button:disabled{cursor:wait;opacity:.65;transform:none}.link-button{height:auto;min-height:0;color:var(--state-exact-tariff);font:inherit;box-shadow:none;background:0 0;border:0;align-items:center;gap:6px;padding:0;font-weight:700;display:inline-flex}.link-button:hover,.link-button:focus-visible{box-shadow:none;background:0 0;text-decoration:underline;transform:none}.danger-button{--control-border:#ff413699;--control-bg:var(--button-danger);--control-color:#ffd5d1;--control-hover-border:var(--state-error);--control-hover-bg:var(--button-danger-hover)}.danger-button:hover,.danger-button:focus-visible{color:#ffe8e5}.switch{height:42px;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:14px;font-weight:700;display:inline-flex}.switch input{opacity:0;pointer-events:none;position:absolute}.switch-track{border:1px solid var(--border-subtle);background:var(--surface-inset);width:42px;height:24px;transition:background var(--motion-fast), border-color var(--motion-fast);border-radius:999px;position:relative}.switch-thumb{background:var(--text-muted);width:16px;height:16px;transition:transform var(--motion-fast), background var(--motion-fast);border-radius:999px;position:absolute;top:3px;left:3px}.switch input:checked+.switch-track{border-color:var(--state-success);background:#2ecc4029}.switch input:checked+.switch-track .switch-thumb{background:var(--state-success);transform:translate(18px)}.status{color:var(--text-muted);white-space:nowrap;margin-left:auto;font-size:13px}.status[hidden]{display:none}.search-meta{min-height:28px;padding-left:var(--brand-text-offset);grid-area:2/1;justify-content:flex-start;align-items:center;gap:12px;display:flex}.search-meta[hidden]{display:none}.location-mode{border:1px solid var(--border-subtle);min-height:28px;color:var(--text-secondary);white-space:nowrap;background:#00000057;border-radius:999px;align-items:center;padding:4px 9px;font-size:12px;font-weight:700;line-height:1;display:inline-flex}.location-mode[hidden]{display:none}.location-mode[data-state=gps]{color:#a6f5ad;background:#2ecc401f;border-color:#2ecc4070}.location-mode[data-state=saved]{color:var(--state-inferred-tariff);background:#5eb8ff1f;border-color:#5eb8ff70}.location-mode[data-state=address]{color:#ffd8a8;background:#ffb85c1f;border-color:#ffb85c70}.saved-location-buttons{flex-wrap:wrap;gap:8px;display:flex}.saved-location-buttons button{--control-height:30px;--control-padding-x:10px;--control-font-size:13px;--control-border:var(--border-subtle);--control-bg:var(--button-secondary);--control-color:var(--text-secondary);--control-hover-bg:var(--button-secondary-hover);--control-hover-color:var(--text-primary);--control-shadow:none;--control-shadow-hover:0 0 0 3px #5eb8ff33}.saved-location-buttons button:hover,.saved-location-buttons button:focus-visible{border-color:var(--focus-ring)}.mobile-location-button{display:none}.content{grid-template-columns:minmax(420px,1fr) 430px;width:100vw;height:100%;min-height:0;display:grid;overflow:hidden}#map{z-index:0;background:var(--surface-inset);min-width:0;max-width:calc(100vw - 430px);height:100%;min-height:420px;position:relative;overflow:hidden}.map-version-badge{z-index:500;min-height:28px;position:absolute;top:54px;right:10px;box-shadow:0 10px 24px #0000005c}.map-filter-button{z-index:520;--control-height:36px;--control-padding-x:12px;--control-gap:8px;--control-font-size:13px;--control-border:var(--border-subtle);--control-bg:var(--button-secondary);--control-color:var(--text-secondary);--control-hover-bg:var(--button-secondary-hover);--control-hover-color:var(--text-primary);line-height:1;position:absolute;top:10px;right:10px}.map-filter-button:hover,.map-filter-button:focus-visible,.map-filter-button.has-active-filters{border-color:var(--focus-ring);background:var(--button-secondary-hover);color:var(--text-primary)}.map-filter-button span{min-height:18px;color:var(--text-muted);align-self:center;align-items:center;font-size:12px;font-weight:700;line-height:1;display:inline-flex}.map-filter-button #filter-summary{transform:translateY(1px)}.map-filter-button.has-active-filters span{color:#cce8ff}.filter-panel{z-index:530;border:1px solid var(--border-strong);background:var(--surface-overlay);width:min(360px,100% - 20px);max-height:calc(100% - 74px);box-shadow:var(--shadow-floating);border-radius:8px;gap:14px;padding:14px;display:grid;position:absolute;top:54px;right:10px;overflow:auto}.filter-panel[hidden]{display:none}.filter-panel-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.filter-panel-header h2{margin:0;font-size:16px}.filter-close{--control-height:30px;--control-padding-x:10px;--control-font-size:12px;--control-border:var(--border-subtle);--control-bg:var(--button-secondary);--control-color:var(--text-secondary);--control-hover-bg:var(--button-secondary-hover);--control-hover-color:var(--text-primary)}.filter-grid{gap:12px;display:grid}.filter-grid label{color:var(--text-muted);gap:6px;font-size:12px;font-weight:700;display:grid}.filter-grid .switch{height:30px;display:flex}.filter-grid input,.filter-grid select{width:100%;height:38px}.filter-actions{justify-content:flex-end;margin-top:-4px;display:flex}#filter-reset{--control-height:36px;--control-padding-x:14px}.maplibregl-map{width:100%;height:100%}#map .maplibregl-canvas{filter:brightness(1.02)saturate(1.08)}.results{z-index:1;border-left:1px solid var(--border-subtle);background:var(--surface-rail);min-width:0;min-height:0;position:relative;overflow:auto}.results-header{z-index:2;background:var(--surface-rail);border-bottom:1px solid var(--border-subtle);gap:8px;padding:16px;display:grid;position:sticky;top:0}.results-close,.results-open{display:none}.results-title-row{justify-content:space-between;align-items:center;display:flex}.filter-chips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.filter-chips[hidden]{display:none}.filter-chips span{color:#cce8ff;background:#00000061;border:1px solid #5eb8ff52;border-radius:999px;align-items:center;min-height:24px;padding:3px 8px;font-size:13px;font-weight:700;display:inline-flex}.charger{border-bottom:1px solid var(--border-subtle);cursor:pointer;padding:16px;transition:background .14s,border-color .14s}.charger h3{margin:0 0 4px;font-size:17px;line-height:1.25}.charger-heading{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px;margin-bottom:10px;display:grid}.charger-heading h3{overflow-wrap:anywhere;min-width:0;margin:0}.charger-actions,.route-links{flex:none;align-items:center;gap:6px;display:inline-flex}.route-link,.charger-action-button{--control-height:34px;--control-padding-x:0;--control-font-size:13px;--control-border:var(--border-subtle);--control-bg:var(--button-secondary);--control-color:var(--text-secondary);--control-hover-bg:var(--button-secondary-hover);--control-hover-color:var(--text-primary);--control-shadow:none;--control-shadow-hover:0 0 0 3px #5eb8ff33;width:34px;text-decoration:none}.route-link:hover,.route-link:focus-visible,.charger-action-button:hover,.charger-action-button:focus-visible{border-color:var(--focus-ring)}.route-link img{object-fit:contain;width:24px;height:24px;display:block}.favorite-button{color:var(--text-muted);font-size:16px}.favorite-button.is-favorite{color:var(--state-favorite);background:linear-gradient(#ffd1662e 0%,#ffd16614 100%);border-color:#ffd16699}.favorite-button.is-favorite:hover,.favorite-button.is-favorite:focus-visible{border-color:var(--state-favorite);color:#ffe4a3}.charger:hover,.charger:focus{background:var(--surface-row);outline:none}.charger.is-active{border-left:3px solid var(--state-selection);background:#4dabf71f;padding-left:13px}.charger.no-tariff{border-left:3px solid var(--state-missing-tariff);padding-left:13px}.charger.fallback-tariff{border-left:3px solid var(--state-fallback-tariff);padding-left:13px}.charger.inferred-tariff{border-left:3px solid var(--state-inferred-tariff);padding-left:13px}.charger.is-full{box-shadow:inset 3px 0 0 var(--state-full)}.charger.is-favorite{background-image:linear-gradient(90deg,#ffd16614,#0000 48%)}.charger-quick-stats{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:8px;margin-bottom:8px;display:grid}.charger-primary-stat{border-left:3px solid var(--border-strong);background:#0000002e;border-radius:6px;gap:3px;min-width:0;padding:8px 10px;display:grid}.charger-primary-stat strong{min-width:0;color:var(--text-primary);overflow-wrap:anywhere;font-size:20px;font-weight:800;line-height:1.05}.charger-primary-stat span{min-width:0;color:var(--text-muted);text-transform:uppercase;overflow-wrap:anywhere;font-size:11px;font-weight:800;line-height:1.2}.availability-free{border-left-color:var(--state-success)}.availability-free strong{color:#a6f5ad}.availability-full{border-left-color:var(--state-full)}.availability-full strong{color:#ffb0aa}.availability-unknown,.price-summary-missing{border-left-color:var(--state-missing-tariff)}.availability-unknown strong,.price-summary-missing strong{color:var(--state-missing-tariff)}.price-summary-exact{border-left-color:var(--state-exact-tariff)}.price-summary-exact strong{color:#c7efff}.price-summary-fallback{border-left-color:var(--state-fallback-tariff)}.price-summary-fallback strong{color:#ffcf91}.price-summary-inferred{border-left-color:var(--state-inferred-tariff)}.price-summary-inferred strong{color:#cdeaff}.charger-support{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:5px 10px;margin-bottom:7px;font-size:12px;font-weight:700;line-height:1.35;display:flex}.support-item{overflow-wrap:anywhere;align-items:center;gap:5px;min-width:0;display:inline-flex}.support-distance{color:var(--text-secondary)}.support-item .icon{width:13px;height:13px}.meta{color:var(--text-muted);font-size:14px;line-height:1.45}.freshness{color:var(--text-muted);flex-wrap:wrap;gap:5px 8px;margin-top:6px;font-size:12px;line-height:1.35;display:flex}.freshness span{border:1px solid var(--border-subtle);border-radius:var(--button-radius);background:#0000003d;padding:2px 6px}.freshness-fresh{color:#a6f5ad}.freshness-warn{color:var(--state-fallback-tariff)}.freshness-stale,.freshness-unknown{color:var(--brand-secondary)}.connector-list{border-top:1px solid var(--border-subtle);margin-top:10px;display:grid}.connector{border-bottom:1px solid var(--border-subtle);padding:10px 0}.connector-title{color:var(--text-secondary);margin-bottom:3px;font-size:13px;font-weight:800}.connector-meta{color:var(--text-muted);margin-bottom:8px;font-size:12px;font-weight:700;line-height:1.35}.connector:last-child{border-bottom:0}.connector-toggle{--control-height:34px;--control-padding-x:10px;--control-font-size:12px;--control-border:transparent;--control-bg:transparent;--control-color:var(--state-exact-tariff);--control-hover-bg:#5eb8ff1a;--control-hover-color:#c7efff;--control-shadow:none;--control-shadow-hover:none;justify-self:start;margin:8px 0 2px;font-weight:800}.connector-toggle:hover,.connector-toggle:focus-visible{border-color:#5eb8ff66}.prices{flex-wrap:wrap;gap:6px;display:flex}.price{border-radius:var(--button-radius);color:#c7efff;overflow-wrap:anywhere;background:#7dd3fc1f;border:1px solid #7dd3fc70;flex-direction:column;align-items:flex-start;gap:6px;max-width:100%;min-height:28px;padding:4px 8px;font-size:13px;line-height:1.2;display:inline-flex}.price small,.history-row em{color:var(--state-fallback-tariff);text-transform:uppercase;font-size:11px;font-style:normal;font-weight:800}.price-current{border-color:var(--state-exact-tariff);box-shadow:inset 0 0 0 1px #7dd3fc57}.price-fallback{color:#ffcf91;background:#ffb85c24;border-color:#ffb85c8a}.price-inferred{color:#cdeaff;background:#9bd5ff1f;border-color:#9bd5ff7a}.price-note{color:#ffd8a8;flex-basis:100%;font-size:12px;line-height:1.35}.empty{color:var(--text-muted)}.map-marker{border:3px solid var(--surface-inset);cursor:pointer;width:34px;height:34px;color:var(--surface-inset);letter-spacing:0;transition:transform var(--motion-fast), box-shadow var(--motion-fast);border-radius:999px;place-items:center;font-size:11px;font-weight:900;display:grid;position:relative;box-shadow:0 0 0 2px #ffffffe0,0 0 0 7px #5eb8ff1f,0 8px 18px #00000085}.map-marker-origin{background:var(--state-error);width:24px;height:24px}.map-marker-origin:after{content:"";background:var(--text-primary);border-radius:999px;width:10px;height:10px;position:absolute;top:7px;left:7px}.map-marker-charger{background:#8ee7ff}.map-marker-charger.no-tariff{background:#ffd166}.map-marker-charger.fallback-tariff{background:#ff9d2e}.map-marker-charger.inferred-tariff{background:#66c4ff}.map-marker-charger.is-full{border-color:var(--state-full);box-shadow:0 0 0 2px #ffffffe0,0 0 0 7px #ff6b3a8c,0 8px 18px #00000085}.maplibregl-marker{cursor:pointer}.maplibregl-marker:hover .map-marker{transform:scale(1.22);box-shadow:0 0 0 3px #ffffffe6,0 0 0 9px #5eb8ff4d,0 10px 22px #0000008c}.popup{min-width:260px;max-width:340px}.popup h3{font-size:18px;line-height:1.2}.popup-kicker{color:var(--state-exact-tariff);text-transform:uppercase;margin-bottom:5px;font-size:12px;font-weight:700}.popup-connector{border-top:1px solid var(--border-subtle);margin-top:10px;padding-top:8px}.popup-connector .prices{justify-content:flex-start;margin-top:8px;padding-left:0;display:flex}.popup-connector .price{margin-left:0}.tariff-warning{border-radius:var(--button-radius);color:var(--state-missing-tariff);background:#f0b83e24;border:1px solid #f0b83e85;margin-top:10px;padding:7px 9px;font-size:13px;font-weight:700}.tariff-warning.fallback{color:var(--state-fallback-tariff);background:#ffb85c24;border-color:#ffb85c85}.tariff-warning.inferred{color:var(--state-inferred-tariff);background:#9bd5ff1f;border-color:#9bd5ff7a}.maplibregl-popup{z-index:20}#map .maplibregl-popup-content{border:1px solid var(--border-strong);border-radius:var(--button-radius);background:var(--surface-overlay);color:var(--text-primary);margin:0;padding:12px;box-shadow:0 18px 46px #0000006b}#map .maplibregl-popup-anchor-top .maplibregl-popup-tip,#map .maplibregl-popup-anchor-top-left .maplibregl-popup-tip,#map .maplibregl-popup-anchor-top-right .maplibregl-popup-tip{border-bottom-color:var(--surface-overlay)}#map .maplibregl-popup-anchor-bottom .maplibregl-popup-tip,#map .maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip,#map .maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip{border-top-color:var(--surface-overlay)}#map .maplibregl-popup-anchor-left .maplibregl-popup-tip{border-right-color:var(--surface-overlay)}#map .maplibregl-popup-anchor-right .maplibregl-popup-tip{border-left-color:var(--surface-overlay)}.charger-sheet{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:sheet-backdrop-in var(--motion-sheet);background:#030c16bd;align-items:end;display:grid;position:fixed;inset:0}.charger-sheet[hidden]{display:none}.mobile-locations-sheet{z-index:980;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:sheet-backdrop-in var(--motion-sheet);background:#030c16bd;align-items:end;display:grid;position:fixed;inset:0}.mobile-locations-sheet[hidden]{display:none}.mobile-locations-panel{max-height:min(72dvh,560px);padding:14px 14px calc(14px + env(safe-area-inset-bottom));border:1px solid var(--border-strong);border-radius:var(--radius-sheet) var(--radius-sheet) 0 0;background:var(--surface-panel);box-shadow:var(--shadow-sheet);animation:sheet-panel-in var(--motion-sheet);border-bottom:0;overflow:auto}.mobile-locations-header{z-index:2;border-bottom:1px solid var(--border-subtle);background:var(--surface-panel);justify-content:space-between;align-items:center;gap:10px;margin:-14px -14px 12px;padding:14px;display:flex;position:sticky;top:-14px}.mobile-locations-header h2{font-size:18px}.mobile-locations-close{--control-height:32px;--control-padding-x:11px;--control-font-size:12px;--control-border:var(--border-subtle);--control-bg:var(--button-secondary);--control-color:var(--text-secondary);--control-hover-bg:var(--button-secondary-hover);--control-hover-color:var(--text-primary)}.mobile-locations-list{gap:8px;display:grid}.mobile-location-option{--control-height:auto;--control-padding-x:11px;--control-border:var(--border-subtle);--control-bg:var(--button-secondary);--control-color:var(--text-primary);--control-hover-bg:var(--button-secondary-hover);--control-hover-color:var(--text-primary);--control-shadow:none;text-align:left;justify-items:start;gap:4px;width:100%;min-height:56px;padding-block:9px;display:grid}.mobile-location-option:hover,.mobile-location-option:focus-visible{border-color:var(--focus-ring);background:var(--button-secondary-hover);color:var(--text-primary);transform:translateY(-1px)}.mobile-location-option span{font-size:14px;font-weight:800}.mobile-location-option small{color:var(--text-muted);font-size:12px;font-weight:700;line-height:1.3}.charger-sheet-panel{max-height:92dvh;padding:18px 14px calc(22px + env(safe-area-inset-bottom));border:1px solid var(--border-strong);border-radius:var(--radius-sheet) var(--radius-sheet) 0 0;background:var(--surface-panel);box-shadow:var(--shadow-sheet);animation:sheet-panel-in var(--motion-sheet);border-bottom:0;position:relative;overflow:auto}@keyframes sheet-backdrop-in{0%{opacity:0}}@keyframes sheet-panel-in{0%{transform:translateY(18px)}}.charger-sheet-close{float:right;z-index:2;--control-height:32px;--control-padding-x:11px;--control-font-size:12px;--control-border:var(--border-subtle);--control-bg:var(--button-secondary);--control-color:var(--text-secondary);--control-hover-bg:var(--button-secondary-hover);--control-hover-color:var(--text-primary);position:sticky;top:0}#charger-sheet-content .popup{clear:both;min-width:0;max-width:none}.maplibregl-ctrl-group,.maplibregl-ctrl-attrib{border:1px solid var(--border-subtle);background:var(--surface-panel);color:var(--text-secondary);box-shadow:0 10px 28px #00000052}.maplibregl-ctrl-group{gap:5px;padding:4px;display:grid}.maplibregl-ctrl-group button{--control-bg:var(--surface-panel);--control-hover-bg:var(--surface-panel-strong);--control-padding-x:0;border-radius:var(--button-radius);box-shadow:none;border:0;transform:none}.maplibregl-ctrl-group button+button{border-top:0}.maplibregl-ctrl button .maplibregl-ctrl-icon{filter:invert()brightness(1.2)}.maplibregl-ctrl-attrib a{color:var(--state-exact-tariff)}.popup-history{border-top:1px solid var(--border-subtle);margin-top:12px;padding-top:10px}.history-title{color:var(--state-exact-tariff);text-transform:uppercase;margin-bottom:8px;font-size:12px;font-weight:800}.history-subtitle{color:var(--text-secondary);letter-spacing:.04em;text-transform:uppercase;margin:10px 0 5px;font-size:11px;font-weight:800}.history-row{grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:4px 8px;margin-bottom:8px;display:grid}.history-row span{color:var(--text-secondary);overflow-wrap:anywhere;min-width:0;font-weight:700}.history-row b{color:var(--state-exact-tariff);text-transform:uppercase;font-size:10px;font-weight:800}.history-row strong{color:var(--text-primary);white-space:nowrap}.history-row small{color:var(--text-muted);overflow-wrap:anywhere;grid-column:1/-1;min-width:0}.history-row em{grid-column:1/-1}.history-availability,.history-change,.history-note{color:var(--text-muted);margin-top:8px;font-size:12px;line-height:1.45}.history-hour-list{gap:6px;margin-top:8px;display:grid}.history-hour{min-height:28px;color:var(--text-muted);grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:8px;font-size:12px;display:grid}.history-hour strong{color:var(--text-primary)}.history-hour small{color:var(--text-muted);white-space:nowrap}.history-hour-bars{gap:6px;margin-top:8px;display:grid}.history-hour-bar{min-height:22px;color:var(--text-muted);grid-template-columns:52px minmax(72px,1fr) 54px;align-items:center;gap:8px;font-size:12px;display:grid}.history-hour-track{background:#ffffff1a;border-radius:999px;height:8px;overflow:hidden}.history-hour-track i{border-radius:inherit;background:var(--state-success);height:100%;display:block}.history-hour-bar small{text-align:right;white-space:nowrap}@media (width<=850px){.maplibregl-ctrl-top-left{display:none}.search-panel{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"meta actions""controls controls";align-items:center;gap:7px 8px;padding:8px 10px}.brand-copy{display:none}.controls{grid-area:controls;grid-template-columns:minmax(0,1fr) 88px 42px;gap:7px;padding-top:0}.controls input,.controls select{height:38px}.controls button{--control-height:38px;--control-padding-x:0;min-width:0}.controls button .button-label{display:none}.top-actions{grid-area:actions;justify-content:flex-end;place-self:center end}.search-meta{flex-flow:wrap;grid-area:meta;align-items:center;gap:6px;min-width:0;min-height:0;padding-left:0}.location-mode{text-overflow:ellipsis;max-width:100%;min-height:28px;overflow:hidden}.mobile-location-button{--control-height:28px;--control-padding-x:9px;--control-gap:6px;--control-font-size:12px;--control-border:var(--border-subtle);--control-bg:var(--button-secondary);--control-color:var(--text-secondary);--control-hover-bg:var(--button-secondary-hover);--control-hover-color:var(--text-primary);--control-shadow:none;--control-shadow-hover:0 0 0 3px #5eb8ff33;display:inline-flex}.mobile-location-button[hidden]{display:none}.mobile-location-button:hover,.mobile-location-button:focus-visible{border-color:var(--focus-ring)}.saved-location-buttons{gap:6px;display:none}.saved-location-buttons button{--control-height:28px}.status{white-space:normal;flex-basis:100%;margin-left:0}.settings-form{grid-template-columns:1fr 1fr}.content{grid-template-columns:1fr}#map{max-width:100vw;height:100%;min-height:0}.map-filter-button{--control-height:34px;--control-padding-x:10px;top:10px;right:10px}.map-version-badge{top:52px;right:10px}.filter-panel{width:min(340px,100% - 20px);max-height:min(72vh,560px);top:52px;right:10px}.results{z-index:900;border-top:1px solid var(--border-strong);border-radius:var(--radius-sheet) var(--radius-sheet) 0 0;min-height:220px;max-height:min(82dvh,680px);box-shadow:var(--shadow-sheet);transition:transform var(--motion-sheet);will-change:transform;border-left:0;grid-template-rows:auto minmax(0,1fr);display:grid;position:fixed;inset:auto 0 0;transform:translateY(100%)}.results.is-open{transform:translateY(0)}.results-header{padding:12px;position:relative}.results-close{--control-height:30px;--control-padding-x:10px;--control-font-size:12px;--control-border:var(--border-subtle);--control-bg:var(--button-secondary);--control-color:var(--text-secondary);--control-hover-bg:var(--button-secondary-hover);--control-hover-color:var(--text-primary);display:inline-flex;position:absolute;top:10px;right:10px}.results-title-row{padding-right:70px}#results{padding-bottom:env(safe-area-inset-bottom);scroll-padding-bottom:calc(24px + env(safe-area-inset-bottom));overflow:auto}.results-open{z-index:850;--control-height:40px;--control-padding-x:13px;--control-gap:8px;border-radius:var(--button-radius);bottom:14px;right:12px;bottom:calc(14px + env(safe-area-inset-bottom));display:inline-flex;position:fixed;box-shadow:0 14px 34px #00000073}.results-open[hidden]{display:none}.results-open span{color:#cce8ff;font-size:12px}}.changelog-page{background:var(--surface-page);min-height:100dvh}.changelog-shell{width:min(860px,100vw - 32px);margin:0 auto;padding:48px 0}.back-link{color:var(--state-exact-tariff);margin-bottom:22px;font-weight:700;text-decoration:none;display:inline-flex}.back-link:hover,.back-link:focus{text-decoration:underline}.changelog-heading{margin-bottom:24px}.changelog-list{gap:14px;display:grid}.version-block{border:1px solid var(--border-subtle);background:var(--surface-panel);border-radius:8px}.version-block>summary{cursor:pointer;color:var(--text-primary);padding:14px 16px;font-weight:800}.version-block .current{color:var(--state-exact-tariff);font-size:13px}.version-block ul{color:var(--text-secondary);margin:0;padding:0 18px 16px 36px}.version-block li{margin:8px 0}.settings-page{background:var(--surface-page);min-height:100dvh}.settings-shell{width:min(1240px,100vw - 32px);margin:0 auto;padding:30px 0 42px}.page-nav{border-bottom:1px solid var(--border-subtle);align-items:center;gap:14px;min-height:44px;margin-bottom:24px;padding-bottom:12px;display:flex}.page-nav a{color:var(--state-exact-tariff);font-weight:700;text-decoration:none}.page-nav a:hover,.page-nav a:focus{text-decoration:underline}.nav-brand{align-items:center;gap:8px;margin-right:4px;display:inline-flex;color:var(--text-primary)!important}.nav-brand .brand-mark{width:28px;height:28px}.page-nav .link-button{margin-left:auto}.settings-heading{margin-bottom:22px}.page-brand{justify-content:start}.settings-grid{grid-template-columns:minmax(0,1fr);align-items:start;gap:16px;margin-bottom:16px;display:grid}.settings-layout-main{grid-template-columns:minmax(0,1fr)}.settings-layout-main:has(>.settings-side-stack[hidden]){grid-template-columns:minmax(0,1fr)}.settings-layout-admin{grid-template-columns:minmax(0,1fr)}.settings-card-primary{grid-row:auto}.compact-security-grid{grid-template-columns:minmax(0,1fr)}.settings-card{border:1px solid var(--border-subtle);background:#041b31b8;border-radius:8px;margin-bottom:16px;overflow:hidden;box-shadow:0 1px #ffffff0a}.settings-layout-main>.settings-card,.settings-layout-admin>.settings-card,.settings-side-stack>.settings-card{margin-bottom:0}.settings-side-stack{align-content:start;gap:16px;display:grid}.section-heading{border-bottom:1px solid var(--border-subtle);background:#00000024;justify-content:space-between;align-items:center;gap:16px;min-height:52px;padding:12px 14px;display:flex}.section-heading h2{font-size:16px;line-height:1.2}.section-toggle{--control-height:30px;--control-padding-x:0;--control-gap:8px;--control-font-size:16px;--control-border:transparent;--control-bg:transparent;--control-color:var(--text-primary);--control-hover-bg:transparent;--control-hover-color:var(--state-exact-tariff);--control-shadow:none;--control-shadow-hover:none;text-align:left;justify-content:flex-start;min-width:0}.section-toggle:hover,.section-toggle:focus-visible{border-color:#0000}.section-toggle .icon{width:18px;height:18px;color:var(--text-muted);transition:transform .16s}.settings-card.is-collapsed .section-toggle .icon{transform:rotate(-90deg)}.settings-section-content{gap:14px;display:grid}.settings-section-content[hidden]{display:none}.section-heading.compact{min-height:0;margin-bottom:12px;padding:0 0 12px}.section-heading.compact h3{margin:0}.section-heading span{color:var(--text-muted);font-size:13px;font-weight:700}.section-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:inline-flex}.settings-form-page{gap:14px;padding:0 14px 14px;display:grid}.settings-form-page.is-collapsed{gap:0;padding-bottom:0}.settings-form-page .section-heading{margin:0 -14px}.admin-dialog{border:1px solid var(--border-strong);background:var(--surface-app);width:min(100vw - 32px,520px);color:var(--text-primary);box-shadow:var(--shadow-floating);border-radius:8px;padding:0}.admin-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#00000094}.dialog-panel{gap:14px;margin:0;padding:0 14px 14px;display:grid}.dialog-panel .section-heading{margin:0 -14px}.dialog-panel label{color:var(--text-muted);gap:6px;font-size:12px;font-weight:700;display:grid}.icon-only-button{--control-height:34px;--control-padding-x:0;--control-border:var(--border-subtle);--control-bg:var(--button-secondary);--control-color:var(--text-secondary);--control-hover-bg:var(--button-secondary-hover);--control-hover-color:var(--text-primary);width:34px}.settings-form-page label,.settings-row label{color:var(--text-muted);gap:6px;font-size:12px;font-weight:700;display:grid}.settings-switch .switch{color:var(--text-secondary);justify-content:flex-start}.settings-row{grid-template-columns:minmax(0,1fr);gap:12px;display:grid}.saved-locations-list{border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);gap:0;display:grid}.saved-location-row{border-bottom:1px solid var(--border-subtle);grid-template-columns:minmax(0,1fr);align-items:stretch;gap:10px;padding:12px 0;display:grid}.saved-location-row>button{justify-self:flex-end}.saved-location-row:last-child{border-bottom:0}.saved-location-row label{color:var(--text-muted);gap:6px;font-size:12px;font-weight:700;display:grid}.session-list{border-top:1px solid var(--border-subtle);gap:0;display:grid}.session-row{border-bottom:1px solid var(--border-subtle);grid-template-columns:minmax(0,1fr);align-items:stretch;gap:12px;padding:12px 0;display:grid}.session-row>button{justify-self:flex-end}.session-row:last-child{border-bottom:0}.session-row strong,.session-row span,.session-row small{display:block}.session-row small{color:var(--text-muted);overflow-wrap:anywhere}.actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.settings-page button:not(.link-button):not(.icon-copy-button):not(.section-toggle){--control-height:36px;--control-padding-x:12px;--control-font-size:13px}.secondary-button{--control-border:var(--border-subtle);--control-bg:var(--button-secondary);--control-color:var(--text-secondary);--control-hover-bg:var(--button-secondary-hover);--control-hover-color:var(--text-primary)}.secondary-button:hover,.secondary-button:focus-visible{border-color:var(--focus-ring)}.status-line{min-height:20px;color:var(--text-muted);font-size:14px}.status-line:empty{min-height:0}.status-line[data-state=ok]{color:#a6f5ad}.status-line[data-state=error]{color:#ffb0aa}.login-page{background:linear-gradient(180deg, var(--surface-app), var(--surface-page));min-height:100dvh}.login-shell{place-items:center;min-height:100dvh;padding:24px;display:grid}.login-card{border:1px solid var(--border-subtle);background:linear-gradient(145deg, var(--surface-panel), var(--surface-app));border-radius:8px;gap:18px;width:min(420px,100%);padding:28px;display:grid;box-shadow:0 24px 80px #0000005c}.login-logo{object-fit:contain;width:72px;height:72px;margin-bottom:2px}.login-brand{grid-template-columns:auto minmax(0,1fr)}.login-card label{color:var(--text-muted);gap:7px;font-size:12px;font-weight:700;display:grid}.checkbox-row{align-items:center;gap:10px;display:flex}.checkbox-row input{width:18px;height:18px}.card-copy{padding:16px}.totp-panel{gap:14px;min-width:0;display:grid}.security-card-body{gap:14px;padding:14px;display:grid}.security-card .settings-grid{margin:0;padding:0}.security-card .totp-panel{align-content:start;padding:0}.security-panel-section{align-content:start;min-width:0}.security-card .compact-security-grid>.totp-panel+.totp-panel,.totp-enabled-grid>.totp-panel+.totp-panel{border-top:1px solid var(--border-subtle);padding-top:16px}.security-subhead{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:12px;min-height:38px;padding-bottom:10px;display:flex}.security-subhead h3{margin:0;font-size:18px;line-height:1.2}.password-panel{align-content:start}.password-panel label,.security-form-stack label,.totp-state-panel label{color:var(--text-muted);gap:7px;font-size:12px;font-weight:700;display:grid}.password-panel input,.security-form-stack input,.totp-state-panel input,.password-panel .actions{width:100%}.totp-state-panel{gap:14px;min-width:0;display:grid}.totp-single-state{max-width:620px}.totp-enabled-grid{grid-template-columns:minmax(0,1fr);align-items:start;gap:16px}.totp-state-panel p{max-width:680px}.security-form-stack{gap:14px;display:grid}.security-info-panel{border:1px solid var(--border-subtle);background:#00000024;border-radius:8px;gap:8px;padding:12px;display:grid;position:relative}.security-info-panel>div:first-child{color:var(--text-primary);justify-content:space-between;align-items:center;gap:12px;display:flex}.security-info-panel span{color:var(--text-muted);font-size:13px;font-weight:700}.security-info-panel p{max-width:680px;color:var(--text-muted);font-size:13px;line-height:1.45}.recovery-panel{padding-right:54px}.security-message-row{min-height:20px}.recovery-codes{gap:10px;display:grid}#recovery-help[data-state=warning]{color:var(--state-fallback-tariff);font-weight:700}.recovery-code-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;display:grid}.recovery-code-grid code{border:1px solid var(--border-subtle);background:var(--surface-inset);color:var(--text-primary);border-radius:6px;padding:8px 10px;font-size:13px}.icon-copy-button{--control-height:34px;--control-padding-x:0;--control-font-size:13px;--control-border:var(--border-subtle);--control-bg:var(--button-secondary);--control-color:var(--text-secondary);--control-hover-bg:var(--button-secondary-hover);--control-hover-color:var(--text-primary);width:34px;position:absolute;bottom:10px;right:10px}.icon-copy-button:hover,.icon-copy-button:focus-visible{border-color:var(--focus-ring)}.icon-copy-button[data-copied=true]{border-color:var(--state-success);color:#a6f5ad;background:#2ecc4024}.icon-copy-button span{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.table-actions{flex-wrap:wrap;gap:12px;display:flex}.table-actions button{--control-height:34px;--control-padding-x:10px;--control-font-size:12px}.metrics-grid{background:0 0;grid-template-columns:minmax(0,1fr);gap:0;margin:0;padding:4px 14px 14px;display:grid}.metrics-grid div{border-bottom:1px solid var(--border-subtle);background:0 0;padding:10px 0}.metrics-grid div:last-child{border-bottom:0}.metrics-grid dt{color:var(--text-muted);font-size:12px;font-weight:700}.metrics-grid dd{color:var(--text-primary);margin:6px 0 0;font-size:18px;font-weight:800}.data-table{max-height:none;overflow:visible}.data-table table{border-collapse:collapse;width:100%;min-width:0}.data-table th,.data-table td{border-bottom:1px solid var(--border-subtle);text-align:left;vertical-align:top;padding:11px 14px;font-size:13px}.data-table th{z-index:1;background:var(--surface-rail);color:var(--text-muted);font-weight:800;position:sticky;top:0}.settings-page .data-table table,.settings-page .data-table thead,.settings-page .data-table tbody,.settings-page .data-table tr,.settings-page .data-table td{display:block}.settings-page .data-table thead{display:none}.settings-page .data-table tbody{display:grid}.settings-page .data-table tr{border-bottom:1px solid var(--border-subtle);gap:8px;padding:12px 14px;display:grid}.settings-page .data-table tr:last-child{border-bottom:0}.settings-page .data-table td{overflow-wrap:anywhere;border-bottom:0;grid-template-columns:minmax(0,1fr);gap:3px;min-width:0;padding:0;display:grid}.settings-page .data-table td:before{content:attr(data-label);min-width:0;color:var(--text-muted);font-size:12px;font-weight:800}.settings-page .data-table td small{color:var(--text-muted);margin-top:2px;display:block}#notification-table{max-height:none}#notification-table table{min-width:0}.status-pill{min-height:24px;color:var(--text-secondary);background:#0000003d;border-radius:999px;align-items:center;padding:3px 7px;font-weight:800;display:inline-flex}.status-success{color:#a6f5ad;background:#2ecc4024}.status-failed{color:#ffb0aa;background:#ff413624}.status-running{color:var(--state-fallback-tariff);background:#ffb85c24}.empty-state{color:var(--text-muted);padding:16px}@media (width<=850px){.settings-shell{width:min(100vw - 20px,680px);padding:18px 0 28px}.page-nav{flex-wrap:wrap;gap:10px 12px}.page-nav .link-button{margin-left:0}.settings-heading{margin-bottom:16px}.settings-grid,.settings-row,.compact-security-grid,.totp-enabled-grid,.session-row,.saved-location-row{grid-template-columns:1fr}.settings-card-primary{grid-row:auto}.section-heading{flex-direction:column;align-items:flex-start}.security-card .compact-security-grid>.totp-panel+.totp-panel,.totp-enabled-grid>.totp-panel+.totp-panel{border-left:0;border-top:1px solid var(--border-subtle);padding-top:16px;padding-left:0}.metrics-grid{grid-template-columns:1fr}.metrics-grid div:nth-last-child(-n+2){border-bottom:1px solid var(--border-subtle)}.metrics-grid div:last-child{border-bottom:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;transition-delay:0s!important;animation-duration:1ms!important;animation-iteration-count:1!important}button:hover,button:focus-visible,.settings-link:hover,.settings-link:focus-visible,.logout-link:hover,.logout-link:focus-visible,.route-link:hover,.route-link:focus-visible,.charger-action-button:hover,.charger-action-button:focus-visible,.icon-copy-button:hover,.icon-copy-button:focus-visible,.version-badge:hover,.version-badge:focus-visible,.mobile-location-option:hover,.mobile-location-option:focus-visible,.maplibregl-marker:hover .map-marker{transform:none}.charger-sheet,.mobile-locations-sheet,.charger-sheet-panel,.mobile-locations-panel{animation:none}.results{will-change:auto;transition:none}}
