:root{--color-primary:#93624a;--color-primary-contrast:#fff;--color-background:#f5f0e6;--color-surface:#f5f0e6;--color-border:#e5e4e7;--color-text:#6b6375;--color-heading:#08060d;--color-accent:#ab7d2f;--color-error:#b3261e;--color-richtig:#d3e6d7;--color-richtig-rand:#4a6b52;--color-richtig-text:#1f3a28;--color-falsch:#f0d3cc;--color-falsch-rand:#a4503f;--color-falsch-text:#4a1e15;--color-theorie:#c8a184;--color-theorie-text:#3d2818;--color-ueben:#a8c9b0;--color-ueben-text:#1f3a28;--color-pruefung:#d9bf8c;--color-pruefung-text:#3d2c10;--color-verwaltung:var(--color-accent);--color-verwaltung-text:#22160a;--font-heading:"Nunito", system-ui, "Segoe UI", Roboto, sans-serif;--font-body:"Nunito Sans", system-ui, "Segoe UI", Roboto, sans-serif;--radius:20px;--radius-card:18px;--shadow:#00000014 0 24px 48px -12px, #0000000a 0 8px 16px -4px;--shadow-sm:#00000012 0 6px 16px -4px, #0000000a 0 2px 6px -1px}*,:before,:after{box-sizing:border-box}html,body{background:var(--color-background);color:var(--color-text);font-family:var(--font-body);letter-spacing:.18px;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:16px;line-height:1.45}h1,h2,h3{font-family:var(--font-heading)}#root{min-height:100dvh}.app{max-width:480px;padding:calc(40px + env(safe-area-inset-top)) 16px calc(32px + env(safe-area-inset-bottom));margin:0 auto}.home-header{text-align:center;margin-bottom:28px}.home-header h1{color:var(--color-primary);letter-spacing:-.01em;margin:0;font-size:2.25rem;font-weight:700}.home-header p{color:var(--color-text);margin:4px 0 0;font-size:1.05rem}.tiles{flex-direction:column;gap:14px;display:flex}.tile{border-radius:var(--radius);min-height:104px;box-shadow:var(--shadow-sm);align-items:center;gap:18px;padding:20px 22px;text-decoration:none;transition:transform .2s,box-shadow .2s,filter .2s;display:flex}.tile:hover,.tile:focus-visible{filter:brightness(1.06);box-shadow:var(--shadow)}.tile:active{transform:scale(.98)}.tile:focus-visible{outline-offset:-6px;outline:3px solid}.tile--theorie{background:var(--color-theorie);color:var(--color-theorie-text)}.tile--ueben{background:var(--color-ueben);color:var(--color-ueben-text)}.tile--pruefung{background:var(--color-pruefung);color:var(--color-pruefung-text)}.tile-icon{flex-shrink:0;place-items:center;display:grid}.tile-icon svg{width:32px;height:32px}.tile-title{font-family:var(--font-heading);font-size:1.25rem;font-weight:700;display:block}.tile-text{opacity:.85;margin-top:2px;display:block}.page-bar{align-items:center;gap:14px;margin-bottom:28px;display:flex}.back-button{background:var(--color-surface);width:44px;height:44px;box-shadow:var(--shadow-sm);color:var(--color-primary);border-radius:50%;flex-shrink:0;place-items:center;transition:background .2s,transform .15s;display:grid}.back-button:hover,.back-button:focus-visible{background:var(--color-border);outline:none}.back-button:active{transform:scale(.94)}.back-button svg{width:22px;height:22px}.page-bar h1{color:var(--color-primary);margin:0;font-size:1.75rem;font-weight:700}.page-placeholder{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);color:var(--color-text);margin:0;padding:16px 18px;font-size:1.05rem}.home-userbar{color:var(--color-text);justify-content:space-between;align-items:center;gap:12px;margin:-16px 0 28px;display:flex}.logout-button{border:1px solid var(--color-border);color:var(--color-text);font:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:8px 14px;font-size:.9rem;transition:background .2s,transform .15s}.logout-button:hover,.logout-button:focus-visible{background:var(--color-border);outline:none}.logout-button:active{transform:scale(.96)}.login{justify-content:center;align-items:center;min-height:100dvh;display:flex}.login-card{border:2px solid var(--color-primary);background:var(--color-surface);width:100%;max-width:360px;box-shadow:var(--shadow);border-radius:28px;flex-direction:column;gap:6px;padding:32px 28px;display:flex}.login-title{color:var(--color-primary);text-align:center;margin:0 0 16px;font-size:1.75rem;font-weight:700}.login-label{color:var(--color-text);margin-top:10px;font-size:.875rem;font-weight:700}.login-input{border:2px solid var(--color-border);background:var(--color-surface);color:var(--color-heading);font:inherit;border-radius:14px;padding:12px 14px;font-size:max(16px,1em)}.login-input:focus-visible{border-color:var(--color-primary);outline:none}.login-error{color:var(--color-error);margin:6px 0 0;font-size:.875rem}.login-button{background:var(--color-primary);color:var(--color-primary-contrast);font:inherit;cursor:pointer;border:none;border-radius:14px;margin-top:20px;padding:14px;font-weight:700;transition:filter .2s,transform .15s}.login-button:hover,.login-button:focus-visible{filter:brightness(1.1)}.login-button:active{transform:scale(.98)}.login-button:disabled{opacity:.6;cursor:default}.loading{place-items:center;min-height:100dvh;display:grid}.loading-dot{background:var(--color-primary);border-radius:50%;width:14px;height:14px;animation:1.4s ease-in-out infinite loading-pulse}@keyframes loading-pulse{0%,to{opacity:.25;transform:scale(.85)}50%{opacity:.8;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.loading-dot{opacity:.6;animation:none}}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.loading-inline{place-items:center;padding:48px 0;display:grid}.page-placeholder--abstand{margin-bottom:24px}.section-label{font-family:var(--font-heading);color:var(--color-text);margin:0 0 12px;font-weight:700}.stufe-badge{width:48px;height:48px;font-family:var(--font-heading);background:#ffffff80;border-radius:50%;flex-shrink:0;place-items:center;font-size:1.35rem;font-weight:700;display:grid}.tile--aus{background:var(--color-border);color:var(--color-text);box-shadow:none;opacity:.6;cursor:default}.tile--aus:hover{filter:none;box-shadow:none}.tile--aus:active{transform:none}.fortschritt{margin-bottom:20px}.fortschritt-text{margin:0 0 8px;font-size:.9rem;font-weight:700}.fortschritt-balken{background:var(--color-border);border-radius:999px;height:6px;overflow:hidden}.fortschritt-balken span{border-radius:inherit;background:var(--color-primary);height:100%;transition:width .3s;display:block}.frage-text{color:var(--color-heading);margin:0 0 12px;font-size:1.3rem;font-weight:700;line-height:1.35}.hinweis{margin-bottom:16px}.hinweis-button{border:1px solid var(--color-border);color:var(--color-primary);font:inherit;cursor:pointer;background:0 0;border-radius:999px;margin-left:-4px;padding:8px 14px;font-size:.9rem;font-weight:700}.hinweis-button:active{transform:scale(.96)}.hinweis-text{background:var(--color-border);color:var(--color-heading);border-radius:14px;margin:10px 0 0;padding:12px 14px}.antworten{flex-direction:column;gap:12px;margin-top:20px;display:flex}.antwort{border:2px solid var(--color-border);background:var(--color-surface);width:100%;min-height:60px;box-shadow:var(--shadow-sm);color:var(--color-heading);font:inherit;text-align:left;cursor:pointer;border-radius:16px;padding:14px 18px;transition:transform .15s,background .2s,border-color .2s,opacity .2s}.antwort:active:not(:disabled){transform:scale(.98)}.antwort:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.antwort:disabled{cursor:default}.antwort--richtig{border-color:var(--color-richtig-rand);background:var(--color-richtig);color:var(--color-richtig-text);font-weight:700}.antwort--falsch{border-color:var(--color-falsch-rand);background:var(--color-falsch);color:var(--color-falsch-text);font-weight:700}.antwort--neutral{opacity:.55;box-shadow:none}.erklaerung{border-left:4px solid;border-radius:14px;margin-top:20px;padding:16px 18px}.erklaerung p{margin:0}.erklaerung--richtig{border-color:var(--color-richtig-rand);background:var(--color-richtig);color:var(--color-richtig-text)}.erklaerung--falsch{border-color:var(--color-falsch-rand);background:var(--color-falsch);color:var(--color-falsch-text)}.erklaerung .erklaerung-titel{font-family:var(--font-heading);margin-bottom:4px;font-weight:700}.aktionen{flex-direction:column;gap:12px;margin-top:24px;display:flex}.button-primary,.button-secondary{width:100%;min-height:54px;font:inherit;text-align:center;cursor:pointer;border-radius:14px;padding:14px;font-weight:700;text-decoration:none;transition:filter .2s,transform .15s;display:block}.button-primary{background:var(--color-primary);color:var(--color-primary-contrast);border:none}.button-secondary{border:2px solid var(--color-border);background:var(--color-surface);color:var(--color-primary)}.button-primary:hover,.button-primary:focus-visible{filter:brightness(1.1)}.button-primary:active,.button-secondary:active{transform:scale(.98)}.ergebnis{text-align:center;padding-top:24px}.ergebnis-zahl{color:var(--color-primary);font-family:var(--font-heading);margin:0;font-size:2rem;font-weight:700}.tile--verwaltung{background:var(--color-verwaltung);color:var(--color-verwaltung-text)}.tile--karte{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-heading)}.tile--karte .tile-icon{color:var(--color-primary)}.aktionen--oben{margin:0 0 20px}.liste-fehler{margin:0 0 16px}.personen{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.person{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-sm);padding:16px 18px}.person-kopf{justify-content:space-between;align-items:center;gap:12px;display:flex}.person-name{min-width:0;color:var(--color-heading);font-family:var(--font-heading);word-break:break-word;font-size:1.1rem;font-weight:700}.rolle{border-radius:999px;flex-shrink:0;padding:3px 10px;font-size:.8rem;font-weight:700}.rolle--mitarbeiter{background:var(--color-ueben);color:var(--color-ueben-text)}.rolle--admin{background:var(--color-verwaltung);color:var(--color-verwaltung-text)}.person-datum{margin:2px 0 0;font-size:.9rem}.person-aktionen{gap:10px;margin-top:14px;display:flex}.button-klein{border:2px solid var(--color-border);background:var(--color-surface);min-height:46px;color:var(--color-primary);font:inherit;cursor:pointer;border-radius:14px;flex:1;padding:10px 12px;font-size:.95rem;font-weight:700;transition:transform .15s,background .2s}.button-klein:active:not(:disabled){transform:scale(.97)}.button-klein:disabled{opacity:.6;cursor:default}.button-klein--gefahr{color:var(--color-falsch-rand)}.button-danger{background:var(--color-falsch-rand);width:100%;min-height:54px;color:var(--color-primary-contrast);font:inherit;cursor:pointer;border:none;border-radius:14px;padding:14px;font-weight:700;transition:filter .2s,transform .15s;display:block}.button-danger:active:not(:disabled){transform:scale(.98)}.button-primary:disabled,.button-secondary:disabled,.button-danger:disabled{opacity:.6;cursor:default}.fenster-overlay{z-index:100;padding:16px 16px calc(16px + env(safe-area-inset-bottom));background:#00000073;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.fenster{overscroll-behavior:contain;background:var(--color-background);width:100%;max-width:448px;max-height:90dvh;box-shadow:var(--shadow);border-radius:24px;padding:24px 20px 20px;overflow-y:auto}@media (width>=600px){.fenster-overlay{align-items:center}}.fenster-titel{color:var(--color-primary);margin:0 0 12px;font-size:1.4rem;font-weight:700}.fenster-form{flex-direction:column;gap:6px;display:flex}.fenster-form .login-label{margin-top:0}.fenster-text{color:var(--color-heading);margin:0}.fenster-hinweis{margin:8px 0 0;font-size:.9rem}.fenster-hinweis--wichtig{color:var(--color-heading);font-weight:700}.zugang{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);margin:0;padding:14px 16px}.zugang dt{font-size:.85rem;font-weight:700}.zugang dd{color:var(--color-heading);word-break:break-all;margin:0 0 10px;font-size:1.15rem}.zugang dd:last-child{margin-bottom:0}.zugang-passwort{font-family:ui-monospace,SF Mono,Menlo,monospace;font-weight:700}
