.update-bereit[data-v-a420741d]{background:#166534;color:#fff;padding:8px 16px;font-size:14px;display:flex;align-items:center;gap:10px;justify-content:center;flex-wrap:wrap}.update-bereit button[data-v-a420741d]{background:#fff;color:#166534;border:none;border-radius:6px;padding:4px 12px;font-weight:700;cursor:pointer}.update-bereit button.spaeter[data-v-a420741d]{background:transparent;color:#bbf7d0;font-weight:400}.update-banner[data-v-a420741d]{background:#b91c1c;color:#fff;padding:8px 16px;font-size:14px;text-align:center}.update-overlay[data-v-a420741d]{position:fixed;inset:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:9999;padding:24px}.update-box[data-v-a420741d]{background:var(--p-surface-0, #fff);color:var(--p-text-color, #111);border-radius:12px;padding:24px;max-width:420px}.update-box h3[data-v-a420741d]{margin:0 0 8px}.update-actions[data-v-a420741d]{display:flex;flex-direction:column;gap:8px;margin-top:16px}.device-overlay[data-v-a420741d]{position:fixed;inset:0;background:#0b1f33;color:#fff;display:flex;align-items:center;justify-content:center;z-index:10000;padding:24px}.device-box[data-v-a420741d]{max-width:460px;text-align:center}.device-box h3[data-v-a420741d]{margin:0 0 12px;font-size:22px}.device-id[data-v-a420741d]{margin:18px 0}.device-id code[data-v-a420741d]{display:inline-block;margin-top:6px;font-size:18px;letter-spacing:1px;background:#ffffff1f;padding:8px 14px;border-radius:8px;word-break:break-all}.device-hint[data-v-a420741d]{color:#9fb4c9;font-size:14px;margin-bottom:18px}:root{color-scheme:light;--paper: #eef1f4;--surface: #ffffff;--surface2: #e3e8ec;--ink: #15222c;--ink-soft: #5b6b77;--line: #d3dae0;--navy: #0f2f45;--navy-ink: #e8f1f7;--navy-soft: #9db4c4;--accent: #0e7fae;--accent-ink: #ffffff;--ok: #1e9e5a;--ok-ink: #ffffff;--danger: #d33131;--danger-ink: #fff;--warn: #e08a00;--shadow: 0 8px 28px rgba(15, 47, 69, .18)}*{box-sizing:border-box}html,body,#app{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior:none}button{font:inherit;color:inherit;border:0;background:none;cursor:pointer;touch-action:manipulation}button:focus-visible,input:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:6px}.num{font-variant-numeric:tabular-nums}.label{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-soft);font-weight:600}.device{height:100%;max-width:520px;margin:0 auto;background:var(--paper);overflow:hidden;position:relative;display:flex;flex-direction:column}.appbar{background:var(--navy);color:var(--navy-ink);padding:10px 14px;display:flex;align-items:center;gap:10px;flex:0 0 auto}.appbar .who{min-width:0}.appbar .who b{display:block;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appbar .who span{font-size:12px;color:var(--navy-soft)}.appbar .spacer{flex:1}.stat{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--navy-soft)}.dot{width:9px;height:9px;border-radius:50%;background:var(--ok);box-shadow:0 0 6px var(--ok)}.dot.bad{background:var(--danger);box-shadow:0 0 6px var(--danger)}.qbadge{background:var(--warn);color:#fff;border-radius:9px;padding:0 7px;font-size:11px;font-weight:800}.iconbtn{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:#ffffff14;font-size:17px}.appbar .who .faehrebtn{display:block;padding:0;font-size:12px;color:var(--navy-soft);text-decoration:underline;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}.trainbar{flex:0 0 auto;width:100%;background:#e08a00;color:#fff;font-weight:800;font-size:14px;text-align:center;padding:8px 10px;letter-spacing:.02em}.custzone{flex:0 0 auto;padding:0 10px}.custzone.mitfoto{display:flex;align-items:flex-start;gap:8px}.custzone.mitfoto .custbanner{flex:1}.kfotomini{margin-top:8px;flex:0 0 auto;width:58px;height:58px;padding:0;border:0;border-radius:12px;overflow:hidden;background:var(--surface2, #e3e8ec);cursor:pointer}.kfotomini img{width:100%;height:100%;object-fit:cover;display:block}.fotoovl{position:fixed;inset:0;z-index:70;background:var(--surface, #fff);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:20px;text-align:center}.fotoovl img{max-width:min(92vw,620px);max-height:70vh;object-fit:contain;border-radius:14px}.fotoovl .fotoname{font-size:16px;font-weight:700;color:var(--ink-soft, #5b6b77)}.fotoovl .spin{width:52px;height:52px;border-radius:50%;border:5px solid var(--surface2, #e3e8ec);border-top-color:var(--accent, #0e7fae);animation:kf-spin 1s linear infinite}@media(prefers-reduced-motion:reduce){.fotoovl .spin{animation:none}}.custbanner{margin-top:8px;border-radius:14px;padding:10px 14px;display:flex;gap:12px;align-items:center;cursor:pointer;width:100%;text-align:left}.custbanner .big{font-size:19px;font-weight:800}.custbanner small{display:block;font-size:12px;opacity:.85}.custbanner.guthaben{background:var(--accent);color:var(--accent-ink)}.custbanner.zeitok{background:var(--ok);color:var(--ok-ink)}.custbanner.zeitbad{background:var(--danger);color:var(--danger-ink)}.custbanner .rides{margin-left:auto;background:#00000047;border-radius:50%;width:38px;height:38px;display:grid;place-items:center;font-weight:800;flex:0 0 auto}.prodwrap{flex:1 1 auto;overflow-y:auto;padding:10px;scrollbar-width:thin}.pagehint{display:flex;justify-content:space-between;align-items:baseline;margin:2px 2px 8px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tile{position:relative;border-radius:14px;min-height:84px;padding:10px 12px;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;font-weight:700;font-size:16px;text-align:left;line-height:1.2;box-shadow:0 1px 3px #00000026}.tile:active{transform:scale(.97)}.tile .ic{font-size:22px}.tile .price{font-size:13px;font-weight:600;opacity:.85}.tile.half{min-height:60px}.badge{position:absolute;top:-6px;right:-6px;min-width:26px;height:26px;padding:0 7px;border-radius:13px;background:var(--danger);color:#fff;font-size:14px;font-weight:800;display:grid;place-items:center;box-shadow:0 2px 6px #0000004d}.gridmsg{grid-column:1 / -1;text-align:center;color:var(--ink-soft);padding:30px 10px}.actionrow{flex:0 0 auto;display:flex;gap:8px;padding:10px;background:var(--surface);border-top:1px solid var(--line);align-items:stretch}.abtn{border-radius:12px;font-weight:800;font-size:18px;padding:0 14px;min-height:58px;background:var(--surface2)}.abtn.toggleon{background:var(--accent);color:var(--accent-ink)}.chip{border-radius:12px;background:var(--accent);color:var(--accent-ink);font-weight:700;font-size:14px;padding:0 12px;display:flex;align-items:center}.sum{flex:1;border-radius:12px;background:var(--ok);color:var(--ok-ink);font-weight:800;font-size:24px;display:flex;align-items:center;justify-content:center;gap:8px}.sum small{font-size:13px;font-weight:600;opacity:.9}.footer{flex:0 0 auto;display:flex;background:var(--navy)}.footer button{flex:1;color:var(--navy-ink);font-size:24px;padding:12px 0}.footer button:active{background:#ffffff1a}.scrim{position:absolute;inset:0;background:#0a141c80;z-index:20}.sheet{position:absolute;left:0;right:0;bottom:0;max-height:88%;overflow-y:auto;background:var(--surface);border-radius:20px 20px 0 0;z-index:21;padding:16px 16px 20px;box-shadow:var(--shadow)}.sheet h3{margin:2px 0 12px;font-size:19px}.sheet .grab{width:44px;height:5px;border-radius:3px;background:var(--line);margin:0 auto 12px}.paybtn{width:100%;border-radius:14px;min-height:64px;font-size:18px;font-weight:800;margin-bottom:8px;padding:8px 14px}.paybtn.bar{background:var(--ok);color:var(--ok-ink);min-height:84px;font-size:21px}.paybtn.ec{background:var(--accent);color:var(--accent-ink)}.paybtn.ghost{background:var(--surface2)}.paybtn.gh{background:var(--navy);color:var(--navy-ink)}.paybtn:disabled{opacity:.5;cursor:default}.carttab{width:100%;border-collapse:collapse;margin-bottom:14px;font-size:15px}.carttab td{padding:7px 4px;border-bottom:1px solid var(--line)}.carttab td:nth-child(2){text-align:center;color:var(--ink-soft)}.carttab td:last-child{text-align:right}.carttab tr.total td{border-top:2px solid var(--ink);border-bottom:0;font-weight:800;font-size:18px}.hint{background:var(--surface2);border-radius:12px;padding:10px 14px;font-size:14px;color:var(--ink-soft);margin-bottom:10px}.hint b{color:var(--ink)}.errbox{background:var(--danger);color:var(--danger-ink);border-radius:12px;padding:10px 14px;font-size:14px;font-weight:700;margin-bottom:10px}.field{display:block;margin-bottom:10px}.field span{display:block;font-size:13px;color:var(--ink-soft);margin-bottom:4px}.field input{width:100%;padding:12px;font-size:17px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink)}.tick{border-bottom:1px solid var(--line);padding:10px 2px;display:grid;grid-template-columns:1fr auto;gap:4px 10px;font-size:14px}.tick .when{color:var(--ink-soft);font-size:12px}.tick .amt{font-weight:800;text-align:right}.tick .tag{display:inline-block;border-radius:6px;padding:1px 7px;font-size:11px;font-weight:700;margin-left:6px}.tag.gh{background:var(--navy);color:var(--navy-ink)}.tag.ec{background:#d9edf9;color:#0f5e8a}.tag.re{background:#eadff0;color:#6a3579}.tag.storno{background:var(--danger);color:#fff}.tickbtns{grid-column:1 / -1;display:flex;gap:8px}.minibtn{border-radius:9px;padding:7px 13px;font-size:13px;font-weight:700;background:#fff;border:1px solid #c8d2da;color:#40525f}.minibtn.red{background:var(--danger);color:#fff}.topuprow{display:flex;gap:8px;margin-bottom:10px}.topuprow .paybtn{margin-bottom:0}.loginwrap{height:100%;display:flex;flex-direction:column;background:var(--paper)}.loginhead{background:var(--navy);color:var(--navy-ink);padding:26px 20px}.loginhead h1{margin:0;font-size:22px}.loginhead p{margin:4px 0 0;color:var(--navy-soft);font-size:13px}.loginform{padding:20px;max-width:430px;width:100%;margin:0 auto}.redeemresult{border-radius:12px;padding:14px;margin:10px 0;font-size:15px;line-height:1.5}.redeemresult b{display:block;font-size:18px;margin-bottom:6px}.redeemresult.entwertet{background:var(--ok);color:var(--ok-ink)}.redeemresult.bereits_entwertet{background:var(--warn, #e08a00);color:#fff}.redeemresult.storniert,.redeemresult.ungueltig{background:var(--danger);color:var(--danger-ink, #fff)}.redeemresult.jahreskarte_gueltig{background:var(--ok);color:var(--ok-ink)}.redeemresult.jahreskarte_abgelaufen{background:var(--danger);color:var(--danger-ink, #fff)}.dot.unknown{background:#94a3b8;box-shadow:none}.ecwait{position:fixed;inset:0;z-index:60;background:var(--surface, #fff);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;text-align:center}.ecwait .spin{width:52px;height:52px;border-radius:50%;border:5px solid var(--surface2, #e3e8ec);border-top-color:var(--accent, #0e7fae);animation:kf-spin 1s linear infinite}@keyframes kf-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.ecwait .spin{animation:none}}.ecwait .ecstatus{font-size:22px;font-weight:800}.ecwait .ecstatus.fehler{color:var(--danger, #d33131)}.ecwait .echint{color:var(--ink-soft, #5b6b77);font-size:14px}.barkasse{background:var(--ok);color:var(--ok-ink, #fff);border-radius:14px;padding:14px 18px;margin:10px 0;text-align:center}
