@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/montserrat-latin-400-normal-BLhwKU8k.woff2)format("woff2"),url(/assets/montserrat-latin-400-normal-xItZbAXg.woff)format("woff")}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/montserrat-latin-600-normal-UVxSCcoG.woff2)format("woff2"),url(/assets/montserrat-latin-600-normal-CdhFl4lI.woff)format("woff")}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/montserrat-latin-700-normal-BdjcYUrC.woff2)format("woff2"),url(/assets/montserrat-latin-700-normal-BWkrl476.woff)format("woff")}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/montserrat-latin-800-normal-axpkC1rd.woff2)format("woff2"),url(/assets/montserrat-latin-800-normal-C3dfDxXV.woff)format("woff")}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/montserrat-latin-900-normal-B0TD3Qnu.woff2)format("woff2"),url(/assets/montserrat-latin-900-normal-BDWDmVut.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2)format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2)format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2)format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-700-normal-Yt3aPRUw.woff2)format("woff2"),url(/assets/inter-latin-700-normal-BLAVimhd.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/inter-latin-800-normal-BYj_oED-.woff2)format("woff2"),url(/assets/inter-latin-800-normal-D1mf63XC.woff)format("woff")}:root{--bg:#fff;--surface:#fff;--surface-2:#f3f2ef;--line:#dcdad5;--text:#282832;--muted:#4a4955;--faint:#8a8892;--ink:#282832;--on-ink:#fff;--accent:#f26a42;--accent-ink:#282832;--accent-soft:#f26a421a;--good:#2ea981;--good-soft:#2ea9811a;--bad:#d64b3b;--bad-soft:#d64b3b14;--warn:#b98316;--stage:#f3f2ef;--font-display:"Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;--font-body:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--radius:6px;--radius-btn:4px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html,body{min-height:100%;margin:0}body{background:var(--stage);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-size:15px;line-height:1.45}button,input{font:inherit;color:inherit}a{color:inherit}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app{background:var(--bg);flex-direction:column;max-width:560px;min-height:100svh;margin:0 auto;display:flex}@media (min-width:600px){.app{border-left:1px solid var(--line);border-right:1px solid var(--line)}}.topbar{z-index:5;padding:calc(10px + var(--safe-top)) calc(16px + var(--safe-right)) 10px calc(16px + var(--safe-left));background:color-mix(in srgb, var(--bg) 90%, transparent);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;display:flex;position:sticky;top:0}.content{padding:8px calc(16px + var(--safe-right)) calc(96px + var(--safe-bottom)) calc(16px + var(--safe-left));flex:1}.content.plain{padding-bottom:calc(32px + var(--safe-bottom))}.wm{border:2px solid var(--text);font:600 13px var(--font-display);letter-spacing:.06em;color:var(--text);line-height:1;text-decoration:none;display:inline-flex}.wm b{background:var(--text);color:var(--bg);padding:5px 7px;font-weight:400}.wm i{padding:5px 8px;font-style:normal;font-weight:900}.wm.lg{border-width:3px;font-size:20px}.wm.lg b{padding:8px 11px}.wm.lg i{padding:8px 12px}.avatar{background:var(--surface-2);width:36px;height:36px;font:700 13px var(--font-display);border:1px solid var(--line);color:var(--text);border-radius:50%;place-items:center;text-decoration:none;display:grid}h1.large{font:900 32px/1.06 var(--font-display);letter-spacing:-1.2px;text-wrap:balance;margin:14px 0}h2.sec{font:800 19px/1.2 var(--font-display);letter-spacing:-.4px;margin:28px 0 10px}.eyebrow{font:700 11px var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.muted{color:var(--muted)}.small{font-size:13px}p{margin:0 0 10px}.btn{border-radius:var(--radius-btn);font:800 15px var(--font-body);cursor:pointer;border:0;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:14px 18px;text-decoration:none;display:inline-flex}.btn-accent{background:var(--accent);color:var(--accent-ink)}.btn-ghost{color:var(--text);border:2px solid var(--text);background:0 0;padding:12px 16px}.btn-link{color:var(--text);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:8px 0;font-weight:600;text-decoration:underline}.btn-block{width:100%}.btn:disabled{opacity:.45;cursor:not-allowed}.field{gap:6px;margin-bottom:14px;display:grid}.field label{font-size:14px;font-weight:600}.field input{border:2px solid var(--line);border-radius:var(--radius-btn);background:var(--surface);width:100%;min-height:48px;padding:13px 14px;font-size:16px}.field input:focus{border-color:var(--text);outline:none}.field .hint{color:var(--muted);font-size:13px}.code-input{letter-spacing:.35em;text-align:center;font:800 26px var(--font-display)!important}.note{border-radius:var(--radius);background:var(--surface-2);border-left:4px solid var(--line);margin:0 0 14px;padding:12px 14px;font-size:14px}.note.err{border-left-color:var(--bad)}.note.ok{border-left-color:var(--good)}.stack{gap:12px;display:grid}.course{background:var(--surface);border-radius:var(--radius);border:1px solid var(--line);border-top:4px solid var(--accent);text-align:left;width:100%;color:var(--text);gap:8px;padding:16px;text-decoration:none;display:grid}.course h3{font:900 22px/1.12 var(--font-display);letter-spacing:-.6px;margin:0}.course .meta{color:var(--muted);font-size:13px}.zfu{font:700 10.5px var(--font-body);letter-spacing:.06em;text-transform:uppercase;color:var(--good)}.tag{font:700 11px var(--font-body);background:var(--surface-2);color:var(--muted);border:1px solid var(--line);border-radius:3px;justify-self:start;padding:3px 8px}.tag.now{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.group{background:var(--surface);border-radius:var(--radius);border:1px solid var(--line);overflow:hidden}.row{align-items:center;gap:12px;min-height:52px;padding:12px 14px;display:flex;position:relative}.row+.row:before{content:"";background:var(--line);height:1px;position:absolute;top:0;left:14px;right:0}.row .body{flex:1;min-width:0}.row .t{font-weight:600}.row .s{color:var(--muted);font-size:12.5px}.ic{width:32px;height:32px;font:800 13px var(--font-display);background:var(--surface-2);color:var(--muted);border:1px solid var(--line);border-radius:4px;flex:none;place-items:center;display:grid}.empty{text-align:center;justify-items:center;gap:10px;padding:36px 12px;display:grid}.empty h2{font:800 20px/1.2 var(--font-display);margin:0}.tabbar{width:100%;max-width:560px;padding:8px calc(6px + var(--safe-right)) calc(10px + var(--safe-bottom)) calc(6px + var(--safe-left));background:color-mix(in srgb, var(--surface) 88%, transparent);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--line);z-index:5;grid-template-columns:repeat(2,1fr);display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tab{font:600 11px var(--font-body);color:var(--faint);flex-direction:column;align-items:center;gap:3px;padding:4px 0;text-decoration:none;display:flex}.tab svg{width:24px;height:24px}.tab.active{color:var(--accent)}.auth{min-height:100svh;padding:calc(32px + var(--safe-top)) calc(20px + var(--safe-right)) calc(32px + var(--safe-bottom)) calc(20px + var(--safe-left));flex-direction:column;justify-content:center;max-width:440px;margin:0 auto;display:flex}.auth-wrap{background:var(--bg);min-height:100svh}.auth .head{gap:18px;margin-bottom:26px;display:grid}.auth .head .wm{justify-self:start}.auth h1{font:900 30px/1.08 var(--font-display);letter-spacing:-1px;margin:0}.loading{place-items:center;min-height:50svh;display:grid}.spinner{border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2.4s}}.fortschritt{margin:0 0 14px}.fortschritt-zeile{color:var(--muted);justify-content:space-between;margin-bottom:6px;font-size:14px;display:flex}.fortschritt-zeile b{color:var(--text)}.balken{background:var(--surface-2);border-radius:4px;height:8px;overflow:hidden}.balken i{background:var(--accent);border-radius:4px;height:100%;transition:width .3s;display:block}.weiter-titel{text-align:center;margin:0 0 4px}.abschnitte{gap:10px;display:grid}.abschnitt{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.abschnitt summary{cursor:pointer;align-items:center;gap:12px;min-height:56px;padding:12px 14px;list-style:none;display:flex}.abschnitt summary::-webkit-details-marker{display:none}.abschnitt summary .body{flex:1;gap:2px;min-width:0;display:grid}.abschnitt summary .t{font:800 15.5px/1.25 var(--font-display);letter-spacing:-.2px}.abschnitt summary .zahl{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.abschnitt[open] summary{border-bottom:1px solid var(--line)}.ic.ok{background:var(--good);border-color:var(--good);color:#fff}.lektionen{margin:0;padding:4px 0;list-style:none}.lektionen a{color:var(--text);align-items:center;gap:12px;min-height:48px;padding:10px 14px;text-decoration:none;display:flex}.lektionen a:hover{background:var(--surface-2)}.lektionen .punkt{border:2px solid var(--line);border-radius:50%;flex:none;place-items:center;width:20px;height:20px;display:grid}.lektionen a.gelesen .punkt{background:var(--good);border-color:var(--good);color:#fff}.lektionen a.gelesen .lt{color:var(--muted)}.lektionen .lt{flex:1;min-width:0;font-size:15px}.lektionen .min{color:var(--faint);white-space:nowrap;font-size:12.5px}.zurueck{color:var(--muted);margin:14px 0 0;font-size:14px;font-weight:600;text-decoration:none;display:inline-block}.rd{max-width:68ch;padding:10px 0 8px;font-size:16.5px;line-height:1.68}.rd .meta{font:700 11px var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin:8px 0 6px}.rd h1{font:900 27px/1.12 var(--font-display);letter-spacing:-.8px;text-wrap:balance;margin:0 0 6px}.rd .mins{color:var(--muted);margin:0 0 18px;font-size:13px}.rd-body p{margin:0 0 1em}.rd-body p.lead{border-left:4px solid var(--accent);padding-left:14px;font-size:1.12em;line-height:1.6}.rd-body strong,.rd-body b{font-weight:700}.rd-body ul,.rd-body ol{margin:0 0 1em;padding-left:1.3em}.rd-body li{margin-bottom:.35em}.rd-body ol li::marker{color:var(--accent);font-weight:800}.rd-body h3{font:800 1.1em/1.25 var(--font-display);letter-spacing:-.2px;margin:1.4em 0 .5em}.rd-body h3.lbl{font:800 11px/1.3 var(--font-display);letter-spacing:.12em;color:var(--muted);margin:1.6em 0 .6em}.rd-body .stats{grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:8px;margin:1em 0 1.2em;display:grid}.rd-body .stats div{background:var(--surface-2);border-radius:var(--radius);text-align:center;padding:12px 8px}.rd-body .stats b{font:900 1.45em/1 var(--font-display);letter-spacing:-.5px;color:var(--accent);display:block}.rd-body .stats span{font:700 9.5px/1.35 var(--font-display);letter-spacing:.06em;color:var(--muted);margin-top:6px;display:block}.rd-body .box,.rd-body>div:not([class]){background:var(--surface-2);border-left:4px solid var(--accent);border-radius:0 var(--radius) var(--radius) 0;margin:1.4em 0;padding:14px 16px}.rd-body .box p:last-child,.rd-body>div:not([class])>div:last-child>:last-child{margin-bottom:0}.rd-body .box-label,.rd-body>div:not([class])>div:first-child{font:800 10.5px var(--font-display);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin:0 0 6px}.rd-body .tbl{border:1px solid var(--line);border-radius:var(--radius);margin:1.2em 0;overflow-x:auto}.rd-body table{border-collapse:collapse;width:100%;min-width:420px;font-size:.86em;line-height:1.45}.rd-body th{background:var(--ink);color:var(--on-ink);text-align:left;font:700 10.5px var(--font-display);letter-spacing:.08em;text-transform:uppercase;padding:9px 11px}.rd-body td{border-bottom:1px solid var(--line);vertical-align:top;padding:9px 11px}.rd-body tr:last-child td{border-bottom:0}.rd-done{justify-items:center;gap:4px;margin-top:8px;display:grid}.rd-nav{grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;display:grid}.rd-nav .btn{padding:12px;font-size:14px}a.row{color:inherit;text-decoration:none}a.row:hover{background:var(--surface-2)}.row .val{color:var(--muted);text-align:right;font-size:14px}.chev{font:700 22px/1 var(--font-body);color:var(--faint)}h2.sec small{font:600 13px var(--font-body);letter-spacing:0;color:var(--muted);margin-left:6px}.content>.group+.note,.content>.group+.btn,.content>.group+.small{margin-top:14px}.qhead{color:var(--muted);justify-content:space-between;margin:16px 0 6px;font-size:13px;font-weight:600;display:flex}.qtext{font:700 19px/1.4 var(--font-body);margin:18px 0 16px}.opts{gap:8px;display:grid}.opt{text-align:left;border:2px solid var(--line);border-radius:var(--radius);background:var(--surface);width:100%;min-height:52px;color:var(--text);font:500 15px/1.45 var(--font-body);cursor:pointer;align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.opt:hover{border-color:var(--muted)}.opt .k{background:var(--surface-2);border:1px solid var(--line);width:26px;height:26px;font:800 13px var(--font-display);border-radius:4px;flex:none;place-items:center;display:grid}.opt.sel{border-color:var(--accent);background:var(--accent-soft)}.opt.sel .k{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.prnav{grid-template-columns:1fr 1fr;gap:10px;margin-top:16px;display:grid}.qgrid{grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:6px;display:grid}.qgrid button{border:1px solid var(--line);border-radius:var(--radius-btn);background:var(--surface);height:40px;color:var(--muted);font:700 13px var(--font-body);cursor:pointer}.qgrid button.on{background:var(--ink);border-color:var(--ink);color:var(--on-ink)}.qgrid button.cur{outline:3px solid var(--accent);outline-offset:1px}.ergebnis{text-align:center;padding:18px 0 6px}.ergebnis .muted{max-width:36ch;margin:0 auto 14px}.score{font:900 64px/1 var(--font-display);letter-spacing:-2px;margin:10px 0 8px}.score.gut{color:var(--good)}.score.schlecht{color:var(--bad)}.ergebnis-zeile{margin:0 0 6px;font-weight:700}.cert{border:1px solid var(--line);border-top:4px solid var(--accent);border-radius:var(--radius);gap:10px;margin-top:14px;padding:16px;display:grid}.cert .eyebrow{margin:0}.cert .btn-link{justify-self:center}.angaben{gap:8px;margin:0;display:grid}.angaben div{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding-bottom:8px;display:flex}.angaben dt{color:var(--muted);font-size:14px}.angaben dd{text-align:right;margin:0;font-weight:700}.testcard{border:1px solid var(--line);border-top:4px solid var(--accent);border-radius:var(--radius);margin:6px 0 4px;padding:16px}.testcard h2,.angebot h2{font:800 21px/1.2 var(--font-display);letter-spacing:-.4px;margin:4px 0 12px}.schritte{counter-reset:schritt;gap:10px;margin:0;padding:0;list-style:none;display:grid}.schritte li{counter-increment:schritt;border-top:1px solid var(--line);align-items:center;gap:12px;padding:10px 0;display:flex}.schritte li:before{content:counter(schritt);border:1px solid var(--line);background:var(--surface-2);width:30px;height:30px;font:800 13px var(--font-display);color:var(--muted);border-radius:4px;flex:none;place-items:center;display:grid}.schritte li.jetzt:before{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.schritte li.fertig:before{content:"✓";background:var(--good);border-color:var(--good);color:var(--on-ink)}.schritte li>div{flex:1;gap:2px;display:grid}.schritte li>div span{color:var(--muted);font-size:13px}.schritte .btn{min-height:40px;padding:8px 14px;font-size:14px}.schritte .btn-ghost{padding:6px 12px}.angebot{background:var(--surface-2);border-radius:var(--radius);gap:10px;margin-top:18px;padding:18px 16px;display:grid}.angebot .eyebrow,.angebot .small{margin:0}.haken-liste{gap:8px;margin:0;padding:0;list-style:none;display:grid}.haken-liste li{padding-left:26px;font-size:15px;position:relative}.haken-liste li:before{content:"";border-left:3px solid var(--accent);border-bottom:3px solid var(--accent);width:12px;height:7px;position:absolute;top:4px;left:2px;transform:rotate(-45deg)}.check{color:var(--muted);cursor:pointer;align-items:flex-start;gap:10px;margin:0 0 16px;font-size:14px;display:flex}.check input{width:20px;height:20px;accent-color:var(--accent);flex:none;margin:1px 0 0}.hp{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.lektionen .gesperrt{min-height:48px;color:var(--faint);align-items:center;gap:12px;padding:10px 14px;display:flex}.lektionen .gesperrt .punkt{color:var(--faint);border-color:#0000}.abschnitt.zu summary .t{color:var(--muted)}.lektionen li.kf a .lt,.lektionen li.kf .gesperrt .lt{font-weight:700}.opt:disabled{cursor:default}.opt.richtig{border-color:var(--good);background:var(--good-soft)}.opt.richtig .k{background:var(--good);border-color:var(--good);color:var(--on-ink)}.opt.falsch{border-color:var(--bad);background:var(--bad-soft)}.opt.falsch .k{background:var(--bad);border-color:var(--bad);color:var(--on-ink)}.rueckmeldung{margin:14px 0 0;font-weight:700}.rueckmeldung.gut{color:var(--good)}.rueckmeldung.schlecht{color:var(--bad)}
