:root{--bg:#fff;--fg:#171a20;--m:#5c5e62;--l:#e8e8e8;--s:#f4f4f4;--g:#24855C;--a:#F59E0B;--k:#5F6368;--gs:#e9f6ef;--r:#d93025;--o:#8e8e8e;--u:#bcbcbc;--sh:0 4px 16px rgba(0,0,0,.10);
--font:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",system-ui,sans-serif}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#18191b;--fg:#f2f2f2;--m:#a2a3a6;--l:#2c2d30;--s:#232427;--gs:#14321f;--sh:0 4px 16px rgba(0,0,0,.5)}}
:root[data-theme=dark]{--bg:#18191b;--fg:#f2f2f2;--m:#a2a3a6;--l:#2c2d30;--s:#232427;--gs:#14321f;--sh:0 4px 16px rgba(0,0,0,.5)}
*{box-sizing:border-box}html,body{margin:0;height:100%;font-family:var(--font);color:var(--fg);background:var(--bg);overscroll-behavior:none;-webkit-font-smoothing:antialiased}
.i{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;flex:none}.i.s{width:16px;height:16px}
#map{position:fixed;inset:0}
.topbar{position:fixed;top:calc(env(safe-area-inset-top) + 12px);left:14px;right:14px;display:flex;justify-content:space-between;align-items:center;z-index:5;pointer-events:none}
.topbar>*{pointer-events:auto}.tb-r{display:flex;gap:10px}
.brand{background:var(--bg);padding:10px 16px;border-radius:999px;box-shadow:var(--sh);font-size:16px;font-weight:500;letter-spacing:.02em}.brand b{font-weight:700}
.rbtn{position:relative;width:44px;height:44px;border:0;border-radius:50%;background:var(--bg);color:var(--fg);box-shadow:var(--sh);display:grid;place-items:center;cursor:pointer;padding:0}
.rbtn.sm{width:38px;height:38px;box-shadow:none;background:var(--s)}.rbtn.on{color:#fff;background:var(--fg)}.rbtn.on .i{fill:currentColor}
.badge{position:absolute;top:-2px;right:-2px;background:var(--g);color:#fff;font-size:10px;font-weight:700;border-radius:9px;min-width:17px;height:17px;display:grid;place-items:center}.badge[hidden]{display:none}
.fab{position:fixed;right:14px;bottom:calc(env(safe-area-inset-bottom) + 70px);width:48px;height:48px;border-radius:50%;border:0;background:var(--bg);color:var(--fg);box-shadow:var(--sh);z-index:5;display:grid;place-items:center;cursor:pointer}
.status-line{position:fixed;left:14px;right:76px;bottom:calc(env(safe-area-inset-bottom) + 76px);background:var(--bg);border-radius:999px;padding:10px 16px;font-size:13px;font-weight:500;box-shadow:var(--sh);z-index:4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.status-line .dot{margin-right:6px;vertical-align:-1px}
.source{position:fixed;left:14px;bottom:calc(env(safe-area-inset-bottom) + 46px);font-size:10.5px;color:var(--m);background:color-mix(in srgb,var(--bg) 85%,transparent);padding:3px 9px;border-radius:999px;z-index:4}
.source a{color:inherit}.source .ver{opacity:.6}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;flex:0 0 auto}.dot.g{background:var(--g)}.dot.o{background:var(--o)}.dot.r{background:var(--r)}.dot.u{background:var(--u)}
.maplibregl-ctrl-top-right{top:calc(env(safe-area-inset-top) + 112px)}
.maplibregl-ctrl-group{border-radius:14px!important;box-shadow:var(--sh)!important}
.sheet{position:fixed;left:0;right:0;bottom:0;max-height:82vh;overflow-y:auto;background:var(--bg);border-radius:22px 22px 0 0;box-shadow:0 -4px 24px rgba(0,0,0,.14);padding:10px 20px calc(env(safe-area-inset-bottom) + 20px);z-index:1000;max-width:520px;margin:0 auto}
.sheet[hidden]{display:none}
.sheet-handle{width:36px;height:4px;border-radius:2px;background:var(--l);margin:0 auto 12px}
.sheet h2{margin:2px 44px 2px 0;font-size:20px;font-weight:600;letter-spacing:-.01em}
.close{position:absolute;top:14px;right:16px;border:0;background:var(--s);color:var(--fg);width:34px;height:34px;border-radius:50%;cursor:pointer;display:grid;place-items:center;padding:0}
.muted{color:var(--m);margin:2px 0;font-size:14px}.small{font-size:13px}.tiny{font-size:11px;margin-top:14px}
.op-row{display:flex;align-items:center;gap:8px;margin:0 0 6px}
.big{display:flex;align-items:baseline;gap:8px;margin:16px 0 4px}.bign{font-size:56px;font-weight:300;letter-spacing:-.03em;line-height:1}.bign small{font-size:22px;color:var(--m)}.bigl{font-size:15px;color:var(--m);flex:1}
.big .rbtn{align-self:center}
.pills{display:flex;flex-wrap:wrap;gap:12px;margin:4px 0 8px;font-size:12.5px;color:var(--m)}.pill{display:inline-flex;align-items:center;gap:5px}
.irows{list-style:none;padding:0;margin:10px 0 16px;border-top:1px solid var(--l)}
.irows li{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--l);font-size:14px;line-height:1.35}.irows li[hidden]{display:none}
.irows .i{color:var(--m)}.lbl{width:28px;font-weight:600}.pc{font-weight:600;font-size:16px}.pc small{color:var(--m);font-weight:400}.ph{color:var(--m);font-size:13px;margin-left:auto}
.irows a{color:var(--fg);font-weight:600}
.btn{flex:1;display:inline-flex;gap:8px;align-items:center;justify-content:center;height:48px;border-radius:12px;font:600 15px var(--font);text-decoration:none;cursor:pointer;border:0}
.btn.pri{background:var(--fg);color:var(--bg)}.btn.sec{background:var(--s);color:var(--fg)}.btn.wide{width:100%}.big-btn{height:54px;font-size:16px}
.links{display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:var(--m);margin:10px 0 14px}.links a{color:var(--m)}.links .sp{flex:1}
.note{background:var(--s);border-radius:12px;padding:10px 12px;font-size:12.5px;color:var(--m);margin:6px 0}.note[hidden]{display:none}
.alarm-box{border-top:1px solid var(--l);margin:0}.alarm-box:last-of-type{border-bottom:1px solid var(--l)}
.alarm-head{width:100%;display:flex;justify-content:space-between;align-items:center;background:none;border:0;padding:14px 0;font:inherit;font-size:15px;color:inherit;cursor:pointer;list-style:none}
.alarm-head::-webkit-details-marker{display:none}.ah{display:flex;align-items:center;gap:10px}.ah b{font-weight:500}
.alarm-head.on .ah>.i{color:var(--g)}.chev{color:var(--m);transition:transform .2s}.alarm-head[aria-expanded=true] .chev,details[open]>.alarm-head .chev{transform:rotate(180deg)}
.alarm-opts{display:grid;gap:4px;padding:0 0 12px}.alarm-opts[hidden]{display:none}
.sw{display:flex;justify-content:space-between;align-items:center;padding:8px 0;font-size:15px}
.sw input{appearance:none;-webkit-appearance:none;width:46px;height:28px;border-radius:14px;background:var(--l);position:relative;cursor:pointer;transition:.2s;margin:0}
.sw input::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:.2s}
.sw input:checked{background:var(--g)}.sw input:checked::after{left:21px}
details.info summary{cursor:pointer;color:var(--m);list-style:none;display:inline-flex;align-items:center;gap:5px}details.info summary::-webkit-details-marker{display:none}
details.info p{margin:8px 0;background:var(--s);padding:10px;border-radius:10px;font-size:12.5px;line-height:1.45;color:var(--m)}
details.info.inl{display:inline}details.info.inl[open]{display:block;width:100%}
.stats-in{padding:0 0 12px}.stats-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.stats-head p{margin:0}
.stats-head select,.field select{height:34px;border-radius:10px;border:0;background:var(--s);color:var(--fg);font:13px var(--font);padding:0 8px}
.chart{display:flex;align-items:flex-end;gap:2px;height:90px;margin:10px 0 2px}
.bar{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;position:relative;padding-bottom:14px}
.bar i{display:block;width:100%;background:var(--l);border-radius:3px 3px 0 0}.bar.cur i{background:var(--fg)}.bar.cur span{color:var(--fg);font-weight:700}
.bar span{position:absolute;bottom:0;font-size:10px;color:var(--m)}
.evses{list-style:none;padding:0;margin:0 0 10px;font-size:13px}
.evses li{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--l)}.evses li:last-child{border:0}.evses li span{flex:1}.evses b{font-weight:500;color:var(--m)}
.rel .amp{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:1px}
.amp.g{background:var(--g)}.amp.o{background:var(--o)}.amp.r{background:var(--r)}.amp.u{background:var(--u)}
.rel .def{color:var(--r);font-weight:600}
.cold.frost b{color:#2f6fb5}.cold[hidden]{display:none}
.row{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.tog{display:flex;gap:6px;align-items:center;background:var(--s);border-radius:999px;padding:9px 14px;font-weight:500;font-size:14px;cursor:pointer}
.tog input{accent-color:var(--g);width:16px;height:16px;margin:0}
.field{display:block;margin:16px 0;font-size:14px;font-weight:500}.field b{float:right;font-weight:500;color:var(--m)}
.field input[type=range]{width:100%;accent-color:var(--fg);margin-top:10px}.field select{width:100%;margin-top:8px;height:44px}
.sheet-actions{display:flex;gap:10px;margin:16px 0 4px}
.me{width:16px;height:16px;border-radius:50%;background:#3e6ae1;border:3px solid #fff;box-shadow:0 0 0 6px rgba(62,106,225,.22)}
.favlist{list-style:none;padding:0;margin:8px 0;max-height:55vh;overflow:auto}
.favlist li{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--l)}
.favlist .fn{flex:1;cursor:pointer}.favlist .fn small{display:block;color:var(--m);margin-top:2px}
.favlist .types{display:flex;gap:14px;font-size:12px;margin-top:6px;color:var(--m)}.favlist .types input{accent-color:var(--g)}
.favlist .bl{width:40px;height:40px;border-radius:50%;border:0;background:var(--s);color:var(--fg);display:grid;place-items:center;cursor:pointer}.favlist .bl.on{background:var(--fg);color:var(--bg)}
.toasts{position:fixed;left:50%;top:calc(env(safe-area-inset-top) + 12px);transform:translateX(-50%);z-index:2000;display:flex;flex-direction:column;gap:8px;width:min(92vw,420px)}
.toast{background:var(--fg);color:var(--bg);padding:12px 16px;border-radius:16px;box-shadow:var(--sh);cursor:pointer;font-size:14px;line-height:1.4}
.toast small{display:block;opacity:.65;font-size:11px;letter-spacing:.03em;text-transform:uppercase;margin-bottom:2px}
.drive-bar{position:fixed;left:14px;right:14px;top:calc(env(safe-area-inset-top) + 66px);z-index:60;background:var(--fg);color:var(--bg);border-radius:18px;padding:8px 8px 8px 16px;display:flex;gap:12px;align-items:center;font-size:13.5px;box-shadow:var(--sh)}
.drive-bar[hidden]{display:none}.drive-bar span{flex:1;line-height:1.35}.drive-bar span small{display:block;opacity:.65;font-size:11px;text-transform:uppercase;letter-spacing:.03em}
.drive-bar .rbtn{background:rgba(127,127,127,.25);color:inherit}
body.sheet-open .status-line,body.sheet-open .source,body.sheet-open .fab,body.sheet-open .maplibregl-ctrl-bottom-right,body.sheet-open .maplibregl-ctrl-bottom-left{display:none}
@media (min-width:700px){.status-line{right:auto;max-width:460px}.sheet{left:auto;right:16px;bottom:16px;max-height:calc(100vh - 140px);border-radius:22px;margin:0;width:420px}}
/* v11.1 */
.evses li.eh{border:0;padding:12px 0 4px;font-weight:600;color:var(--fg)}.evses li.eh b{color:var(--m);font-weight:500}.evses li.eh .i{color:var(--m)}
.evses li small{font-size:11.5px}
.chart-w{position:relative}.chart{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:pan-y}
.bar.hl i{background:var(--g)}
.tip{position:absolute;bottom:calc(100% + 4px);left:0;background:var(--fg);color:var(--bg);border-radius:12px;padding:8px 12px;font-size:12.5px;line-height:1.5;box-shadow:var(--sh);z-index:3;white-space:nowrap;pointer-events:none;display:flex;flex-direction:column}
.tip[hidden]{display:none}.tip span{display:flex;align-items:center;gap:6px}.tip small{opacity:.65}.tip .dot.o{background:currentColor;opacity:.6;width:8px;height:8px}
.wc{flex:1;min-width:0}.wch{display:block}
.wcl{list-style:none;padding:0;margin:6px 0 0}.wcl li a{display:flex;align-items:center;gap:10px;padding:7px 0;color:var(--fg);text-decoration:none;font-weight:400}
.wcl li+li a{border-top:1px solid var(--l)}.wcl .i{color:var(--m)}.wcl span{flex:1;min-width:0}.wcl b{font-weight:500;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wcl small{color:var(--m);font-size:12px}.wcl em{font-style:normal;color:var(--m);font-size:13px}.wcok{font-style:normal;color:var(--g);font-weight:600}
.wcn summary{cursor:pointer;color:var(--m);font-size:13px;margin-top:4px}
.dj{display:inline-flex;vertical-align:-3px;margin-left:4px;opacity:.8}
.dov{position:fixed;inset:0;z-index:3000;background:rgba(0,0,0,.45);display:flex;align-items:flex-end;justify-content:center;animation:dovIn .25s ease-out}
.dov[hidden]{display:none}
.dov-card{width:min(100%,520px);height:75vh;background:var(--bg);border-radius:26px 26px 0 0;padding:22px 22px calc(env(safe-area-inset-bottom) + 18px);display:flex;flex-direction:column;box-shadow:0 -8px 30px rgba(0,0,0,.3)}
.dov-t{display:flex;align-items:center;gap:8px;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--m);font-weight:600}
.dov h3{font-size:24px;font-weight:600;margin:10px 0 0;letter-spacing:-.01em}
.dov-big{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:22px;margin:16px 0;color:#fff;background:var(--g)}
.dov[data-state=busy] .dov-big{background:#171a20}.dov[data-state=unknown] .dov-big{background:#8e8e8e}
#dov-big{font-size:96px;font-weight:300;line-height:1;letter-spacing:-.04em}#dov-big small{font-size:36px;opacity:.7}#dov-l{font-size:18px;opacity:.9;margin-top:6px}
.dov-rows{list-style:none;padding:0;margin:0;display:flex;gap:10px}.dov-rows li{flex:1;display:flex;align-items:center;gap:8px;background:var(--s);border-radius:14px;padding:12px 14px;font-size:15px}
.dov-rows li span{font-weight:600}.dov-rows b{margin-left:auto;font-size:22px;font-weight:600}.dov-rows b small{font-size:14px;color:var(--m);font-weight:400}
.dov-dist{text-align:center;color:var(--m);margin:10px 0 4px;font-size:14px}.dov-act{display:flex;gap:10px;margin-top:8px}
@keyframes dovIn{from{opacity:0}to{opacity:1}}
@media (min-width:700px){.dov{align-items:center}.dov-card{border-radius:26px;height:min(75vh,640px)}}
.irows .wcl li{display:block;padding:0;border:0;gap:0;font-size:14px}.irows .wcl li a{width:100%;font-weight:400}.irows .wcl li+li a{border-top:1px solid var(--l)}
.irows .wcl b{font-weight:500}.wc .tiny{white-space:nowrap}.wcl em{margin-left:auto;padding-left:8px;white-space:nowrap}
.vbtn{border:0;background:none;color:var(--m);padding:2px;display:inline-grid;place-items:center;cursor:pointer}.vbtn.off{opacity:.55}.vbtn[hidden]{display:none}
.drive-bar .vbtn{color:inherit;background:rgba(127,127,127,.25)}
/* v11.2 */
details.info p .ip,.ip{display:flex;flex-direction:column;gap:8px}
.tbtns{display:flex;gap:8px;flex-wrap:wrap}.tbtns .btn{height:40px;font-size:13.5px;flex:1 1 auto;padding:0 12px}
.tres{color:var(--fg);font-weight:500}.tres:empty{display:none}
.links .esc{color:var(--fg);font-weight:500}
.drive-bar .btn.go{flex:0 0 auto;height:38px;padding:0 12px;border-radius:12px;background:var(--bg);color:var(--fg);font-size:13px;gap:6px}.drive-bar .btn.go[hidden]{display:none}
.drive-bar small.dn{display:inline;text-transform:none;letter-spacing:0;font-size:11.5px;opacity:.75}
.dov-play{margin-left:auto;white-space:nowrap;flex:none;display:inline-flex;align-items:center;gap:6px;border:0;border-radius:999px;background:var(--s);color:var(--fg);font:600 13px var(--font);padding:7px 12px;cursor:pointer;text-transform:none;letter-spacing:0}
.dov-play.pulse{background:var(--g);color:#fff;animation:pulse 1.2s ease-in-out infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(31,164,99,.55)}50%{box-shadow:0 0 0 8px rgba(31,164,99,0)}}

/* v11.2: Statuszeile mit Neu laden, Anmeldung abgelaufen */
.status-line{display:flex;align-items:center;gap:8px;padding:6px 6px 6px 16px}
#st-txt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:4px 0}
.st-rl{flex:none;border:0;background:var(--s);color:var(--fg);font:600 15px/1 var(--font);height:30px;min-width:30px;padding:0 9px;border-radius:999px;cursor:pointer;display:inline-flex;align-items:center;gap:4px}
.st-rl span{display:none;font-size:12.5px}
.status-line.err .st-rl,.status-line.stale .st-rl,body.auth-bad .st-rl{background:var(--fg);color:var(--bg)}
.status-line.err .st-rl span,.status-line.stale .st-rl span,body.auth-bad .st-rl span{display:inline}
.status-line.err #st-txt{color:var(--r)}
.dot.w{background:#e8a33d}
.aov{position:fixed;inset:0;z-index:3100;background:rgba(0,0,0,.45);display:flex;align-items:flex-end;justify-content:center;animation:dovIn .25s ease-out}
.aov[hidden]{display:none}
.aov-card{width:min(100%,520px);background:var(--bg);border-radius:26px 26px 0 0;padding:26px 22px calc(env(safe-area-inset-bottom) + 18px);display:flex;flex-direction:column;gap:10px;box-shadow:0 -8px 30px rgba(0,0,0,.3)}
.aov-ic{width:48px;height:48px;border-radius:50%;background:var(--s);display:grid;place-items:center}.aov-ic .i{width:24px;height:24px}
.aov h2{margin:6px 0 0;font-size:22px;font-weight:600;letter-spacing:-.01em}
.aov p{margin:0 0 8px;color:var(--m);font-size:15px;line-height:1.4}
@media (min-width:700px){.aov{align-items:center}.aov-card{border-radius:22px;width:420px}}
.aov-card .btn{flex:none}

/* iPhone-App (WKWebView): Texte nur in der App bzw. nur im Browser */
html:not(.native) .nat-only{display:none}.native .web-only{display:none}

/* v11.3: Ladeplätze (schematisch, 2 Reihen wie Tesla) + günstigster Anbieter */
.stalls{margin:14px 0 4px;display:flex;flex-direction:column;gap:12px;--sb:#3e6ae1;--carw:color-mix(in srgb,var(--bg) 70%,#9fb6ee)}
.stalls[hidden]{display:none}
.sg-h{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--m);margin:0 0 6px}
.sblk{display:flex;flex-direction:column;gap:0}
.srow{display:grid;grid-template-columns:repeat(var(--c),minmax(0,var(--w)));gap:6px;justify-content:center}
.lane{height:16px;margin:0 6px;background:linear-gradient(90deg,var(--l) 50%,transparent 0) center/14px 2px repeat-x}
.st{position:relative;height:var(--h);border-radius:11px;border:2px solid var(--sb);background:color-mix(in srgb,var(--sb) 9%,var(--bg));display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:5px 1px 4px;color:var(--sb);cursor:pointer;font:inherit;min-width:0}
.srow.dn .st{flex-direction:column-reverse;padding:4px 1px 5px}
.st .cv{flex:1;display:grid;place-items:center;width:100%;min-height:0}
.st .cv{overflow:hidden}.st .car{height:calc(var(--h) - 34px);width:auto;max-width:80%;color:#5d6f95}
.srow.up .st .car{transform:rotate(180deg)}
.st .bolt{width:15px;height:15px;opacity:.55}
.st .lb{font-size:9px;line-height:1.05;font-weight:700;text-align:center;letter-spacing:.01em;white-space:nowrap}
.st .lb i{display:block;font-style:normal;font-weight:600;opacity:.75;font-size:8.5px}
.st.busy{background:color-mix(in srgb,var(--sb) 16%,var(--bg))}
.st.defect{border-color:var(--r);background:color-mix(in srgb,var(--r) 14%,var(--bg));color:var(--r)}.st.defect .i{width:18px;height:18px;color:var(--r)}
.st.unknown{border-style:dashed;border-color:var(--u);background:transparent;color:var(--m)}
.st.sel{box-shadow:0 0 0 3px color-mix(in srgb,var(--sb) 35%,transparent)}
.smore{font-size:12px;color:var(--m);text-align:center}
.stall-i{margin:2px 0 8px;font-size:12px;color:var(--m);line-height:1.4;text-align:center}.stall-i[hidden]{display:none}.stall-i b{color:var(--fg);font-weight:600}
.pills .sw{display:inline-block;width:11px;height:14px;border-radius:3.5px;border:1.75px solid #3e6ae1;vertical-align:-2px}
.pills .sw.busy{background:#3e6ae1;border-color:#3e6ae1}.pills .sw.defect{border-color:var(--r);background:color-mix(in srgb,var(--r) 14%,var(--bg));position:relative}.pills .sw.defect::before,.pills .sw.defect::after{content:"";position:absolute;background:var(--r);left:50%;top:50%}.pills .sw.defect::before{width:5px;height:5px;border:1.25px solid var(--r);background:transparent;border-radius:50%;transform:translate(-50%,-50%)}.pills .sw.defect::after{width:6px;height:1.25px;transform:translate(-50%,-50%) rotate(-45deg)}
.pills .sw.unknown{border-style:dashed;border-color:var(--u)}
@media (prefers-color-scheme:dark){:where(:root:not([data-theme=light])) .stalls{--sb:#6d95f5;--carw:#1e2c4d}:where(:root:not([data-theme=light])) .st .car{color:#b8c8ec}:where(:root:not([data-theme=light])) .pills .sw{border-color:#6d95f5}:where(:root:not([data-theme=light])) .pills .sw.busy{background:#6d95f5}}
:where(:root[data-theme=dark]) .stalls{--sb:#6d95f5;--carw:#1e2c4d}:where(:root[data-theme=dark]) .st .car{color:#b8c8ec}:where(:root[data-theme=dark]) .pills .sw{border-color:#6d95f5}:where(:root[data-theme=dark]) .pills .sw.busy{background:#6d95f5}
.price{border:1px solid var(--l);border-radius:16px;padding:10px;margin:8px 0 14px;background:var(--s)}
.pr-best{display:grid;gap:8px}
.pr-row{display:flex;align-items:center;gap:12px;background:var(--bg);border-radius:14px;padding:12px}
.pr-row .nm{flex:1;min-width:0}.pr-row .nm b{display:block;font-size:14.5px;font-weight:600;overflow-wrap:anywhere}.pr-row .nm small{color:var(--m);font-size:12px}
.pr-open{flex:none;height:38px;padding:0 12px;border-radius:11px;font-size:13px;gap:5px;white-space:nowrap}

/* v11.4 (Vorschau): Marker-Schrift für Logo + Überschriften – «Sedgwick Ave» (SIL OFL 1.1, fonts/OFL.txt), selbst gehostet.
   Zahlen, Ports, Adressen, Fliesstext und Knöpfe bleiben in der Systemschrift (Lesbarkeit). */
@font-face{font-family:"CL Marker";src:url(fonts/SedgwickAve-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
:root{--font-brand:"CL Marker","Marker Felt","Segoe Print",var(--font)}
.wm{display:inline-block;font-family:var(--font-brand);font-weight:400;letter-spacing:.01em;line-height:1;transform:rotate(-4deg)}
.wm b{font-weight:400;display:inline-block;transform:translateY(2px)}
.brand{padding:8px 18px 8px 16px;font-size:24px;font-weight:400;line-height:1}
.wm-big{font-size:44px;margin:18px 0 6px}
/* Überschriften: Marker-Schrift, nie fett (Schrift hat nur einen Schnitt, sonst Kunst-Fettung) */
.sheet h2,.aov h2,.dov h3,.alarm-head .ah b,.pr-row .nm b,body>h1,body>h2{font-family:var(--font-brand);font-weight:400;letter-spacing:.005em}
.sheet h2{font-size:25px;line-height:1.1}
.aov h2{font-size:26px}.dov h3{font-size:29px}
.alarm-head .ah b{font-size:18.5px}
.pr-row .nm b{font-size:17px;line-height:1.15}
body>h1{font-size:34px}

/* v11.4: dunkle Karte im Dunkel-Modus (OpenFreeMap «dark») + passende Karten-Knöpfe */
.nb{white-space:nowrap}
.pr-row .nm b{overflow-wrap:normal;text-wrap:balance}
@media (prefers-color-scheme:dark){:where(:root:not([data-theme=light])) #map{background:#0c0c0c}:where(:root:not([data-theme=light])) .maplibregl-ctrl-group{background:var(--bg)!important}:where(:root:not([data-theme=light])) .maplibregl-ctrl-group button+button{border-top-color:var(--l)!important}:where(:root:not([data-theme=light])) .maplibregl-ctrl-group button .maplibregl-ctrl-icon{filter:invert(1)}:where(:root:not([data-theme=light])) .maplibregl-ctrl-attrib,:where(:root:not([data-theme=light])) .maplibregl-ctrl-attrib.maplibregl-compact{background:color-mix(in srgb,var(--bg) 85%,transparent)!important;color:var(--m)}:where(:root:not([data-theme=light])) .maplibregl-ctrl-attrib a{color:var(--m)!important}:where(:root:not([data-theme=light])) .maplibregl-ctrl-attrib-button{filter:invert(1)}}
:where(:root[data-theme=dark]) #map{background:#0c0c0c}:where(:root[data-theme=dark]) .maplibregl-ctrl-group{background:var(--bg)!important}:where(:root[data-theme=dark]) .maplibregl-ctrl-group button+button{border-top-color:var(--l)!important}:where(:root[data-theme=dark]) .maplibregl-ctrl-group button .maplibregl-ctrl-icon{filter:invert(1)}:where(:root[data-theme=dark]) .maplibregl-ctrl-attrib,:where(:root[data-theme=dark]) .maplibregl-ctrl-attrib.maplibregl-compact{background:color-mix(in srgb,var(--bg) 85%,transparent)!important;color:var(--m)}:where(:root[data-theme=dark]) .maplibregl-ctrl-attrib a{color:var(--m)!important}:where(:root[data-theme=dark]) .maplibregl-ctrl-attrib-button{filter:invert(1)}

/* v11.4: Filter als Schalter-Liste im Filter-Blatt (Schnellfilter-Leiste entfernt) */
.maplibregl-ctrl-top-right{top:calc(env(safe-area-inset-top) + 66px)}
body.driving .maplibregl-ctrl-top-right{top:calc(env(safe-area-inset-top) + 130px)}
.ftogs{margin:8px 0 4px;border-radius:14px;background:var(--s);padding:2px 14px}
.ftogs .ft{padding:11px 0;border-bottom:1px solid var(--l);cursor:pointer}.ftogs .ft:last-child{border:0}
.ftogs .fl{display:flex;align-items:center;gap:12px;font-weight:500}.ftogs .fl small{color:var(--m);font-weight:400;font-size:12.5px;margin-left:-4px}
.ftogs .fl .i{color:var(--m)}
.tglyph{width:20px;height:20px;display:grid;place-items:center;font:700 15px/1 var(--font);color:var(--m)}

/* v11.4: Kopfzeile mit sanftem Verlauf – Pins am oberen Rand verschwinden nicht hart unter Logo/Knöpfen */
body::before{content:"";position:fixed;left:0;right:0;top:0;height:calc(env(safe-area-inset-top) + 84px);z-index:4;pointer-events:none;
 background:linear-gradient(to bottom,var(--bg) 0,color-mix(in srgb,var(--bg) 82%,transparent) 45%,transparent 100%)}

/* v11.4: Betreiber nur als Schriftzug (keine farbigen Kürzel-Badges, keine Logos ohne Lizenz) */
.op-name{font:600 11.5px/1.2 var(--font);letter-spacing:.09em;text-transform:uppercase;color:var(--m)}
.sg-h{font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-size:10.5px}
.pr-row{padding:14px 12px 14px 16px}

/* v11.4: ohne Live-Status = grau, nur Anzahl Plätze */
.bign.unk{color:var(--m)}
.st.unknown{border-style:solid;border-color:color-mix(in srgb,var(--m) 45%,transparent);background:color-mix(in srgb,var(--m) 8%,transparent)}

/* v11.4.1: Darstellung Automatisch/Hell/Dunkel (data-theme auf <html>, gesetzt vor dem ersten Zeichnen) */
:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}
.seg{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;margin-top:8px;border-radius:14px;background:var(--s)}
.seg button{display:flex;flex-direction:column;align-items:center;gap:4px;padding:9px 4px 8px;border:0;border-radius:11px;background:transparent;color:var(--m);font:500 12.5px/1.1 var(--font);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s,color .15s}
.seg button .i{width:22px;height:22px}
.seg button[aria-checked=true]{background:var(--bg);color:var(--fg);box-shadow:0 1px 4px rgba(0,0,0,.18)}

.seg button:focus-visible{outline:2px solid var(--fg);outline-offset:1px}

/* v11.4.2: Kacheln, Legende, grosse Zahl wieder im bisherigen Blau-Stil (wie v11.4.0); neue Farben nur für Karten-Pins/Cluster.
   Ohne Live-Status: graue gestrichelte Kachel ohne Zeichen (Simon 9.10.2026) */
.st.unknown{border-style:dashed;border-color:var(--u);background:transparent;color:var(--m)}
/* v11.4.3: Favoriten-Stern aktiv = nur der Stern gefüllt (Weiss im Dunkel-, Dunkel im Hell-Modus), Knopf-Hintergrund wie inaktiv */
#d-fav.on{background:var(--s);color:var(--fg)}#d-fav.on .i{fill:currentColor;stroke:currentColor}

/* v11.5.0: «ChargeLive EV» – «EV» kleiner und leicht hochgestellt, gleiche Marker-Schrift und Farbe (Variante A) */
.wm .ev{display:inline-block;font-size:.7em;margin-left:.18em;vertical-align:.38em;font-weight:400;letter-spacing:.02em}

/* v11.5.3: Ladepunkt ausser Betrieb = neutrale graue Kachel mit Sperrzeichen ⊘ (wie Karten-Pin) + Text «Ausser Betrieb» (Simon 9.10.2026) */
:root{--oos:#5F6368}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--oos:#9AA0A6}}
:root[data-theme=dark]{--oos:#9AA0A6}
.st.defect{border-color:var(--oos);border-style:solid;background:color-mix(in srgb,var(--oos) 13%,var(--bg));color:var(--oos)}
.st.defect .oos{display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--oos)}
.st.defect .oos .i{width:15px;height:15px;color:var(--oos)}
.st.defect .oos b{font-size:8px;line-height:1.1;font-weight:700;letter-spacing:0;text-transform:none;text-align:center;white-space:nowrap}
.srow.sm .st.defect .oos{gap:2px}.srow.sm .st.defect .oos .i{width:12px;height:12px}.srow.sm .st.defect .oos b{font-size:6.5px}
.st.defect.sel{box-shadow:0 0 0 3px color-mix(in srgb,var(--oos) 35%,transparent)}
.pills .sw.defect{border-color:var(--oos);background:color-mix(in srgb,var(--oos) 13%,var(--bg))}.pills .sw.defect::before{border-color:var(--oos)}.pills .sw.defect::after{background:var(--oos)}

/* v11.5.4: Öffnungszeiten Laden/Einkaufszentrum (OSM) – eine Zeile, antippen = ganze Woche */
.oh{flex:1;min-width:0}
.ohd summary{list-style:none;display:flex;align-items:center;gap:6px;cursor:pointer;-webkit-tap-highlight-color:transparent}.ohd summary::-webkit-details-marker{display:none}
.ohn{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.ohs{white-space:nowrap;color:var(--m)}.ohs::before{content:"·";margin-right:6px;color:var(--m)}.ohs.on{color:var(--g)}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .ohs.on{color:#4cc38a}}:root[data-theme=dark] .ohs.on{color:#4cc38a}
.ohd .chev{margin-left:auto;flex:none;width:16px;height:16px}.ohd[open] .chev{transform:rotate(180deg)}
.ohw{list-style:none;padding:0;margin:10px 0 2px}
.irows .ohw li{display:flex;justify-content:space-between;padding:5px 0;border:0;font-size:13.5px;color:var(--m);gap:12px}
.irows .ohw li.td{color:var(--fg);font-weight:600}.irows .ohw li.phr{border-top:1px solid var(--l);margin-top:4px;padding-top:9px}
.ohf{margin:6px 0 0}.irows .ohf a{font-weight:600}
#d-oh-row{align-items:flex-start}#d-oh-row>.i{margin-top:1px}

/* v11.5.4: «Voll seit …» unter der grossen Zahl – klein, neutral, mit Uhr */
.fsince{display:flex;align-items:center;gap:6px;margin:-2px 0 6px;font-size:13px;font-weight:500;color:var(--m)}.fsince[hidden]{display:none}
.fsince .i{width:15px;height:15px;color:var(--m)}

/* v11.5.5: «voll seit …» in der Favoritenliste (gleiche Uhr wie im Detail, bleibt auf einer Zeile) */
.favlist .fvs{white-space:nowrap;display:inline-flex;align-items:center;gap:3px}.favlist .fvs .i{width:12px;height:12px;color:var(--m);vertical-align:-1px}
/* v11.6.0: eingefrorene Live-Daten – neutraler Hinweis */
.pills .pill.unsure{color:var(--m)}.pills .pill.unsure .i{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}

/* v11.6.1: Banner «Live-Daten ungenau» */
.unsure-ban{display:flex;gap:10px;align-items:flex-start;margin:10px 0 4px;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--fg) 6%,var(--bg));border:1px solid color-mix(in srgb,var(--fg) 14%,transparent) /* v11.10.0: ohne dunklen Streifen links (Simon 25.10.) */;font-size:14px;line-height:1.35}.unsure-ban .i{flex:none;width:18px;height:18px;margin-top:1px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.unsure-ban .small{color:var(--m)}
.unsure-ban[hidden]{display:none}

/* v11.8.0: Gratis / Plus – dezent, Tesla-Stil */
.plus-b{display:inline-flex;align-items:center;height:17px;padding:0 6px;border-radius:5px;border:1px solid var(--l);background:var(--s);color:var(--m);font:600 9.5px/1 -apple-system,system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;vertical-align:1px;white-space:nowrap}
.is-plus .plus-b{display:none}
.plk-row{display:flex;align-items:center;gap:8px;width:100%;padding:0;border:0;background:none;color:var(--m);font:inherit;text-align:left;cursor:pointer}
.plk-row span:first-child{flex:0 1 auto}
:root:not(.is-plus) .plk{opacity:.6}:root:not(.is-plus) .plk input,:root:not(.is-plus) .plk select{pointer-events:none}
:root:not(.is-plus) #d-fav{opacity:.55}
:root:not(.is-plus) #d-fav::after,:root:not(.is-plus) #btn-favs::after{content:"";position:absolute;right:3px;bottom:3px;width:11px;height:11px;border-radius:50%;background:var(--m) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center/7px no-repeat;border:1.5px solid var(--bg)}
:root:not(.is-plus) #btn-favs::after{right:6px;bottom:6px}
.plus-sheet h2 .pl-word{display:inline-block;padding:0 9px;border-radius:8px;background:var(--fg);color:var(--bg);font-size:.8em;vertical-align:2px}
.pl-sub{margin:6px 0 14px;font-size:14px;color:var(--m);line-height:1.4}
.pl-list{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:2px}
.pl-list li{display:flex;gap:12px;align-items:flex-start;padding:9px 10px;border-radius:12px}
.pl-list li.hl{background:var(--s)}
.pl-list .i{flex:none;width:20px;height:20px;margin-top:1px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.pl-list b{display:block;font-size:14.5px;font-weight:600}.pl-list small{display:block;font-size:12.5px;color:var(--m);line-height:1.35;margin-top:1px}
.pl-plans{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 14px}
.pl-plan{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:14px 14px 12px;border-radius:14px;border:1.5px solid var(--l);background:var(--bg);color:var(--fg);font:inherit;text-align:left;cursor:pointer}
.pl-plan[aria-checked=true]{border-color:var(--fg);box-shadow:0 0 0 1px var(--fg)}
.pl-plan b{font-size:13px;font-weight:600;color:var(--m)}.pl-pr{font-size:21px;font-weight:600;letter-spacing:-.01em}.pl-plan small{font-size:11.5px;color:var(--m)}
.pl-save{position:absolute;top:-9px;right:10px;padding:2px 7px;border-radius:6px;background:var(--g);color:#fff;font:600 10px/1.3 -apple-system,system-ui,sans-serif;font-style:normal}
.pl-st{min-height:1.2em;margin:8px 0 0;text-align:center;color:var(--m)}.pl-legal{text-align:center;line-height:1.5;margin-top:6px}
.pl-trial{margin:-6px 0 14px;padding:10px 12px;border-radius:12px;background:var(--s);font-size:14px;line-height:1.4}.pl-trial b{font-weight:600}
.menu-links{display:flex;flex-direction:column;gap:2px;margin:14px 0 6px;border-top:1px solid var(--l);padding-top:10px}.menu-links .ml{display:flex;align-items:center;gap:10px;padding:10px 4px;color:var(--fg);text-decoration:none;font-size:15px}.menu-links .i{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}.pl-fb{text-align:center;margin:4px 0 0}.src-l a{color:inherit}

/* v11.9 (Vorschau, Simon 18.10., v4): 3D-Schrägansicht für alle Standorte. Alle Reihen gleich ausgerichtet (Säulen hinten),
   Säulen neutral dunkelgrau; beim Laden Feld-Umriss, Säulen-LED und Kabel-Puls in Grün. Kleiner Massstab (.lo) = weniger Details. */
.isoblk{display:flex;justify-content:center;margin:2px 0}
.iso3{display:block;max-width:100%;height:auto;overflow:visible;font-family:var(--font);--chg:color-mix(in srgb,var(--g) 72%,#fff)}
.iso3 .lanex{fill:rgba(160,166,176,.14)}
.iso3 .st{cursor:pointer;outline:none}
.iso3 .st .bay{fill:color-mix(in srgb,var(--sb) 14%,transparent);stroke:var(--sb);stroke-width:1.3;stroke-linejoin:round}
.iso3 .st.busy .bay{fill:color-mix(in srgb,var(--chg) 20%,transparent);stroke:var(--chg)}
.iso3 .st.defect .bay{fill:color-mix(in srgb,var(--oos) 12%,transparent);stroke:var(--oos)}
.iso3 .st.unknown .bay{fill:color-mix(in srgb,var(--u) 5%,transparent);stroke:var(--u);stroke-dasharray:3 2.2}
.iso3.lo .st .bay{stroke-width:1.6}.iso3.lo .st.unknown .bay{stroke-dasharray:4 3}
.iso3 .st.sel .bay,.iso3 .st:focus-visible .bay{stroke-width:2.6;filter:drop-shadow(0 0 2px var(--sb))}
.iso3 .bn{color:var(--oos)}
.iso3 .isp,.iso3 .cbl3,.iso3 .pnt{pointer-events:none}
.iso3 .isp{--pl:color-mix(in srgb,var(--sb) 60%,#9aa0a6)}.iso3 .isp.busy{--pl:var(--chg)}.iso3 .isp.defect{--pl:var(--oos)}.iso3 .isp.unknown{--pl:var(--u)}
.iso3 .scr{opacity:.3}.iso3 .isp.busy .scr{opacity:.55}.iso3 .isp.defect .scr,.iso3 .isp.unknown .scr{opacity:.2}
.iso3 .led{filter:drop-shadow(0 0 1.2px var(--pl))}.iso3 .isp.busy .led{animation:cl-breathe 2.8s ease-in-out infinite}
.pt4{font-size:6.2px;font-weight:700;fill:var(--sb);fill-opacity:.5;text-anchor:middle;letter-spacing:.02em}
.pt4 tspan+tspan{font-weight:600;font-size:5.6px}
.pt4.unknown{fill:var(--m);fill-opacity:.4}.pt4.defect{fill:var(--oos)}
.cbl3 path{fill:none;stroke-linecap:round}
.cbl3 .cb{stroke:#07080a;stroke-width:1.5}
.cbl3 .cg{stroke:var(--chg);stroke-width:.55;opacity:.35}
/* v11.9.1 «alt, langsamer Start» (Simon 18.10.): EIN Puls mit weichem Halo Säule -> Auto (wie v4/v5). Zuerst sammelt
   sich die Energie an der Säule (Puls schwillt an, kriecht langsam), dann gleitet er ohne Sprung weiter und läuft sanft
   ins Auto aus. Geschwindigkeit stetig: Kriechen 0–34 % linear, danach Bezier mit gleicher Anfangssteigung. 2.8 s/Runde.
   Kein Glow-Kreis am Port. LED der Säule im selben Takt (hell beim Anschwellen). */
.cbl3 .fl{stroke:#e4ffef;stroke-width:1;stroke-dasharray:16 200;stroke-dashoffset:10;opacity:0;animation:cl-pulse4 2.8s linear infinite,cl-swell-k 2.8s ease-in-out infinite}
.cbl3 .fl.b{stroke:var(--chg);stroke-width:3.2;filter:blur(1px);animation:cl-pulse4 2.8s linear infinite,cl-swell-b 2.8s ease-in-out infinite}
@keyframes cl-pulse4{0%{stroke-dashoffset:10;opacity:0}24%{opacity:1}34%{stroke-dashoffset:4;animation-timing-function:cubic-bezier(.3,.025,.6,1)}80%{opacity:1}88%{stroke-dashoffset:-104}90%,100%{stroke-dashoffset:-104;opacity:0}}
@keyframes cl-swell-b{0%{stroke-width:1.6}28%{stroke-width:4.6}46%{stroke-width:3.2}100%{stroke-width:3.2}}
@keyframes cl-swell-k{0%{stroke-width:.6}28%{stroke-width:1.5}46%{stroke-width:1}100%{stroke-width:1}}
@keyframes cl-breathe{0%,60%,100%{opacity:.55}26%{opacity:1}}
.iso3 .p3.ac .led,.iso3 .p3.ac .scr{fill:var(--pl)}
@media (prefers-reduced-motion:reduce){.cbl3 .fl{animation:none;opacity:0}.cbl3 .cg{opacity:.7}.iso3 .led{animation:none!important}}
/* v5: grosse Standorte seitlich wischen (natives Scrollen, keine Senkrecht-Übernahme), weiche Kante + Hinweis; Legende «belegt» grün */
.isoblk.swp{justify-content:flex-start;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-x pan-y;scrollbar-width:none;margin:2px -20px;padding:0 20px;scroll-padding:0 20px;
  --ml:0px;--mr:0px;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 var(--ml),#000 calc(100% - var(--mr)),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 var(--ml),#000 calc(100% - var(--mr)),transparent 100%)}
.isoblk.swp::-webkit-scrollbar{display:none}
.isoblk.swp.fl{--ml:34px}.isoblk.swp.fr{--mr:46px}
.isoblk.swp .iso3{flex:none;max-width:none}
.sw-hint{margin:-2px 0 2px;text-align:right;font-size:11px;color:var(--m);display:flex;justify-content:flex-end;align-items:center;gap:2px;transition:opacity .3s}
.sw-hint .i{transform:rotate(-90deg);width:13px;height:13px}.sw-hint.gone{opacity:0}
:root{--chg:color-mix(in srgb,var(--g) 72%,#fff)}
.pills .sw.busy{background:var(--chg);border-color:var(--chg)}
/* v5b (Vorschau, Variante): Feld «ausser Betrieb» bleibt grau, Sperrzeichen rot und grösser; Säule mit schwach rotem, «aus»-Bildschirm. Karten-Pins unverändert. */
:root{--oosr:color-mix(in srgb,var(--r) 82%,#fff)}
.iso3 .bn{color:var(--oosr)}
.iso3 .bnb{fill:color-mix(in srgb,var(--bg) 70%,transparent)}
.iso3 .isp.defect .scr{fill:var(--oosr);opacity:.22}
.iso3 .isp.defect .p3.ac .led{fill:var(--oosr);opacity:.5}
.pills .sw.defect::before{border-color:var(--oosr)}.pills .sw.defect::after{background:var(--oosr)} /* v5b: Legende «ausser Betrieb»: Rahmen grau, Sperrzeichen rot */
.pt4 tspan.u{font-size:3.9px;font-weight:600;letter-spacing:0} /* v5c: «unbekannt» auf gestrichelten Feldern (ohne Live-Status), keine Legende */
/* v11.9.2: Wetter-Szene (Canvas) hinter dem Kopf des Detailblatts; Temperatur dezent rechts in der Betreiber-Zeile. */
#detail .op-row{margin-right:44px;min-height:18px}
#detail .op-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wxbg{position:absolute;left:0;top:0;width:100%;z-index:-1;pointer-events:none;display:block;border-radius:22px 22px 0 0;-webkit-mask-image:linear-gradient(#000 70%,transparent);mask-image:linear-gradient(#000 70%,transparent)}
.wxbg[hidden]{display:none}
.wx{margin-left:auto;flex:none;font:500 12.5px/1.2 var(--font);color:var(--fg);opacity:.82;white-space:nowrap;font-variant-numeric:tabular-nums;text-shadow:0 1px 2px rgba(0,0,0,.5)}
.wx[hidden]{display:none}
#detail:has(.wxbg:not([hidden])) .sheet-handle{background:rgba(255,255,255,.28)}
#detail:has(.wxbg:not([hidden])) #d-name,#detail:has(.wxbg:not([hidden])) .bign{text-shadow:0 1px 10px rgba(0,0,0,.45)}
/* v11.9.2: Statuszeile + Quellen einklappbar. Zu (Standard): nur kleiner Griff unten mittig mit Kurz-Attribution; Karte nutzt volle Höhe.
   Auf: alles wie bisher, um die Griff-Höhe (30px) nach oben versetzt. Nur transform/opacity animiert; reduzierte Bewegung = sofort. */
.ft-h{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom) + 8px);transform:translateX(-50%);z-index:6;display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 11px 0 7px;border:0;border-radius:13px;background:color-mix(in srgb,var(--bg) 88%,transparent);color:var(--m);box-shadow:0 2px 10px rgba(0,0,0,.35);font:500 9.5px/1 var(--font);letter-spacing:.01em;white-space:nowrap;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.ft-h::before{content:"";position:absolute;inset:-9px -4px}
.ft-h .ft-chev{width:15px;height:15px;color:var(--fg);transform:rotate(180deg);transition:transform .28s ease}
body.ft-open .ft-h .ft-chev{transform:rotate(0)}
.status-line,.source,.fab,.maplibregl-ctrl-bottom-right,.maplibregl-ctrl-bottom-left{transition:transform .3s cubic-bezier(.3,.7,.2,1),opacity .22s ease}
body.ft-open .status-line{transform:translateY(-40px)}
body.ft-open .source{transform:translateY(-30px)}
body.ft-open .maplibregl-ctrl-bottom-right,body.ft-open .maplibregl-ctrl-bottom-left{transform:translateY(-36px)}
body.ft-open .source{max-width:calc(100% - 28px)}
body.ft-open .fab{transform:translateY(-40px)}
body:not(.ft-open) .source,body:not(.ft-open) .maplibregl-ctrl-bottom-right,body:not(.ft-open) .maplibregl-ctrl-bottom-left{transform:translateY(90px);opacity:0;pointer-events:none}
body:not(.ft-open):not(.ft-err) .status-line{transform:translateY(130px);opacity:0;pointer-events:none}
body:not(.ft-open).ft-err .status-line{transform:translateY(38px)}
body:not(.ft-open) .fab{transform:translateY(58px)}
body:not(.ft-open).ft-err .fab{transform:translateY(0)}
body.sheet-open .ft-h{display:none}
@media (prefers-reduced-motion:reduce){.status-line,.source,.fab,.maplibregl-ctrl-bottom-right,.maplibregl-ctrl-bottom-left,.ft-h .ft-chev{transition:none}}
/* v11.9.3 (Vorschau): Gratis-Aufteilung ab App-Start – nur Karte + «X von Y frei», Rest Plus */
.tz,.frn,.min-only{display:none}
.fr-split .pl-list li.min-only{display:flex}
.fr-split .pl-list li.no-min{display:none}
.fr-min #detail :is(#d-op,#d-addr,#d-fav,#d-full,#d-pills,#d-unsure,#d-stall-i,#d-note,#d-dc-row,#d-ac-row,#d-rel-row,#d-cold-row,#d-price,.alarm-box:not(.stats)){display:none!important}
.fr-min #detail h2{margin-top:6px}
.fr-min #detail .big{margin-top:14px}
.fr-min #detail .bigl{font-size:17px;color:var(--fg);opacity:.82}
.fr-min .frn:not([hidden]){display:block;margin:2px 0 0;font-size:13px;color:var(--m)}
.fr-min .tzw{position:relative;margin:16px 0 8px;border-radius:18px;overflow:hidden;border:1px solid var(--l);background:var(--s);min-height:250px;max-height:300px}
.fr-min .tzw .stalls{margin:10px 8px;filter:blur(5px) saturate(.9);opacity:.85;pointer-events:none;user-select:none}
.fr-min .tzw .stalls *{animation-play-state:paused!important}
.fr-min .tz{display:flex;position:absolute;inset:0;align-items:center;justify-content:center;padding:18px;background:radial-gradient(ellipse at center,color-mix(in srgb,var(--bg) 72%,transparent) 0%,color-mix(in srgb,var(--bg) 35%,transparent) 75%)}
.tz-in{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;max-width:300px}
.tz-lk{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:color-mix(in srgb,var(--fg) 12%,transparent);border:1px solid color-mix(in srgb,var(--fg) 18%,transparent);backdrop-filter:blur(6px)}
.tz-lk .i{width:20px;height:20px;fill:none;stroke:var(--fg);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tz-t{font-size:17px;font-weight:600;letter-spacing:-.01em}
.tz-t .pl-word{display:inline-block;margin-left:4px;padding:0 7px;border-radius:6px;background:var(--fg);color:var(--bg);font-size:.78em;vertical-align:1px}
.tz-s{font-size:13.5px;line-height:1.4;color:var(--m)}
.tz-b{flex:none;height:44px;padding:0 22px;margin-top:4px;border-radius:12px}
.tz-p{font-size:12px;color:var(--m)}
/* v11.9.3: Suche */
.srch{position:fixed;inset:0;z-index:1100;background:var(--bg);display:flex;flex-direction:column;padding:calc(env(safe-area-inset-top) + 12px) 0 0}
.srch[hidden]{display:none}
.srch-bar{display:flex;align-items:center;gap:10px;margin:0 14px;padding:0 0 0 14px;height:46px;border-radius:14px;background:var(--s)}
.srch-bar>.i{flex:none;width:19px;height:19px;fill:none;stroke:var(--m);stroke-width:2;stroke-linecap:round}
.srch-bar input{flex:1;min-width:0;height:100%;border:0;background:transparent;color:var(--fg);font:400 16px var(--font);outline:none;-webkit-appearance:none;appearance:none}
.srch-bar input::-webkit-search-cancel-button{-webkit-appearance:none}
.srch-c{flex:none;height:100%;padding:0 14px;border:0;background:var(--bg);color:var(--fg);font:500 15px var(--font);cursor:pointer;border-radius:0 14px 14px 0;box-shadow:inset 1px 0 0 var(--l)}
.srch-n{margin:12px 20px 4px;font-size:12.5px;color:var(--m);min-height:16px}
.srch-r{list-style:none;margin:0;padding:0 6px calc(env(safe-area-inset-bottom) + 20px);overflow-y:auto;flex:1;-webkit-overflow-scrolling:touch}
.srch-r li{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:14px;cursor:pointer}
.srch-r li:active,.srch-r li:hover{background:var(--s)}
.srch-r .sn{flex:1;min-width:0}
.srch-r .sn b{display:block;font-size:15.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.srch-r .sn small{display:block;font-size:12.5px;color:var(--m);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.srch-r .sc{flex:none;min-width:48px;padding:5px 9px;border-radius:10px;text-align:center;font:600 14px/1.1 var(--font);background:var(--s);color:var(--m)}
.srch-r .sc.free{background:#24855C;color:#fff}.srch-r .sc.low{background:#F59E0B;color:#1A1205}.srch-r .sc.busy{background:#D93025;color:#fff}.srch-r .sc.defect{background:#5F6368;color:#fff}
.srch-r .sc small{display:block;font-size:10px;font-weight:500;opacity:.85;margin-top:1px}
.srch-r mark{background:none;color:var(--fg);text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:2px}
.seg.seg4{grid-template-columns:repeat(4,1fr)}.seg4 button{font-size:11.5px}.seg4 button b{font-size:15px;font-weight:600;letter-spacing:.02em}
.fr-min #detail:not([hidden]){display:flex;flex-direction:column}.fr-min #detail .irows{order:5}.fr-min #detail .tzw{order:6}.fr-min #detail .src-l,.fr-min #detail>.info{order:7}.fr-min #detail .irows{margin-top:14px}
.fr-min #detail>p:empty{display:none}
.evses li.res span,.evses li.res b{opacity:.75}.dot.n{background:transparent;border:1.5px dashed var(--m);width:8px;height:8px}.evses li.res-n{display:block;padding:4px 0 8px;font-size:11.5px;color:var(--m)}

/* v11.9.4: Feiertage (fest.js) – nur Detailblatt */
.isoblk.fest{position:relative;padding-top:24px}.fest-cv{position:absolute;left:0;top:0;pointer-events:none;z-index:2}.fest-bg{position:absolute;left:0;top:0;pointer-events:none;z-index:0}.isoblk.fest .iso3{position:relative;z-index:1}
.fr-min .fest-cv,.fr-min .fest-bg,.fr-min .fest-cd{display:none!important}
.fest-cd{position:absolute;right:86px;top:66px;z-index:3;pointer-events:none;font-family:var(--font-brand);font-size:76px;line-height:1;color:#fff4d6;text-shadow:0 0 18px rgba(255,200,90,.85),0 0 42px rgba(255,140,60,.55)}
.fest-cd[hidden]{display:none}.fest-cd.msg{font-size:30px;top:84px;max-width:46%;text-align:right}
.fest-cd.pop{animation:fcd .9s cubic-bezier(.2,1.4,.4,1)}@keyframes fcd{0%{transform:scale(1.6);opacity:0}35%{opacity:1}100%{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.fest-cd.pop{animation:none}}

/* v11.9.5.2 Meldungs-Pille */
.toast.pill{position:relative;display:grid;gap:2px;overflow:hidden;background:#000;color:#fff;border-radius:40px;padding:14px 24px 16px;font-size:16px;--tc:#F59E0B;box-shadow:0 0 0 3px var(--tc),0 0 28px color-mix(in srgb,var(--tc) 55%,transparent);animation:clpill .5s ease-out,clglow 2.4s ease-in-out .5s 2}
.toast.pill.ok{--tc:#24855C}.toast.pill.bad{--tc:#D93025}
.toast.pill b{display:block;font-size:17px}.toast.pill span{display:block;color:var(--tc);filter:brightness(1.35)}
.toast.pill .tbar{position:absolute;left:40px;right:40px;bottom:6px;height:4px;border-radius:2px;background:var(--tc);transform-origin:left;animation:cltbar 20s linear forwards}
@keyframes cltbar{to{transform:scaleX(0)}}@keyframes clpill{from{opacity:0;transform:translateY(-14px) scale(.96)}}
@keyframes clglow{50%{box-shadow:0 0 0 3px var(--tc),0 0 44px var(--tc)}}
@media (prefers-reduced-motion:reduce){.toast.pill{animation:none}}
.pr-row .nm small{display:block;margin-top:2px} /* v11.10.4 Ad hoc */
/* 1.0.7: Navi-Wahl (iPhone-App) */
.nav-pick{display:flex;align-items:center;gap:8px;margin:8px 0 2px;flex-wrap:wrap}
.nav-pick .np{border:1px solid rgba(127,127,127,.4);background:transparent;color:inherit;border-radius:999px;padding:5px 12px;font:inherit}
.nav-pick .np[aria-pressed="true"]{background:#2a8760;border-color:#2a8760;color:#fff;font-weight:600}

/* b20: Gratis wie Plus – grosser Navigieren-Knopf, «Ans Auto senden», Zeile Live-Belegung (mit Plus-Hinweis) nach den Infozeilen */
.fr-min #detail :is(#d-drive,#d-car,.links){order:5;flex-shrink:0}.fr-min #detail #d-drive{margin-top:14px;min-height:54px;height:54px}.fr-min #detail #d-car{min-height:46px}

/* b23: X oben rechts in der Detailansicht weg (Schliessen per Wischen nach unten); Knopf bleibt unsichtbar im Code, das Wischen nutzt ihn */
.native #detail #d-close{display:none!important}
