:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--akzent:#4f46e5;--akzent-hell:#6366f1;--akzent-schwach:#eef2ff;--akzent-kontrast:#fff;--kopf-von:#1e1b4b;--kopf-bis:#312e81;--hintergrund:#f6f7fb;--flaeche:#fff;--flaeche-leise:#f2f4f8;--rand:#e3e7ef;--text:#10151f;--text-schwach:#5b6577;--gut:#0f766e;--gut-flaeche:#e6f6f2;--mittel:#b45309;--mittel-flaeche:#fdf3e3;--schwach:#be123c;--schwach-flaeche:#fdeaee;--radius:14px;--radius-klein:10px;--abstand:14px;--ziel-hoehe:48px;--schatten:0 1px 2px #10151f0f, 0 8px 24px -12px #10151f2e;--schatten-hoch:0 12px 32px -8px #10151f47}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--akzent:#818cf8;--akzent-hell:#a5b4fc;--akzent-schwach:#23233f;--akzent-kontrast:#10131f;--kopf-von:#0b1020;--kopf-bis:#1a1a3d;--hintergrund:#0d1117;--flaeche:#161b25;--flaeche-leise:#1d2330;--rand:#2a3140;--text:#e8ecf4;--text-schwach:#9aa5b8;--gut:#5eead4;--gut-flaeche:#10312d;--mittel:#fcd34d;--mittel-flaeche:#35290f;--schwach:#fda4af;--schwach-flaeche:#3a1620;--schatten:0 1px 2px #0006, 0 8px 24px -12px #0009;--schatten-hoch:0 14px 36px -10px #000000b3}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--hintergrund);color:var(--text);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,sans-serif;font-size:16px;line-height:1.55}h1,h2,h3{letter-spacing:-.015em;line-height:1.25}button{font:inherit;cursor:pointer}a{color:var(--akzent);text-underline-offset:3px}:focus-visible{outline:2px solid var(--akzent);outline-offset:2px;border-radius:6px}.app{flex-direction:column;min-height:100dvh;display:flex}.app__kopf{z-index:10;padding:calc(10px + env(safe-area-inset-top)) var(--abstand) 10px;background:linear-gradient(135deg, var(--kopf-von), var(--kopf-bis));color:#fff;box-shadow:var(--schatten);align-items:center;gap:10px;display:flex;position:sticky;top:0}.app__marke{min-width:0;color:inherit;flex:1;align-items:center;gap:10px;text-decoration:none;display:flex}.app__marke-text{flex-direction:column;min-width:0;display:flex}.app__titel{letter-spacing:-.02em;margin:0;font-size:1.15rem;font-weight:700}.app__unterzeile{text-transform:uppercase;letter-spacing:.14em;opacity:.7;font-size:.7rem}.marke-logo{background:#ffffff29;border:1px solid #ffffff3d;border-radius:11px;flex:none;justify-content:center;align-items:center;width:34px;height:34px;font-size:1.05rem;font-weight:800;display:inline-flex}.app__benutzer{display:none}@media (width>=720px){.app__benutzer{opacity:.85;text-overflow:ellipsis;white-space:nowrap;max-width:26%;font-size:.85rem;display:block;overflow:hidden}}.app__inhalt{width:100%;max-width:1080px;padding:var(--abstand);padding-bottom:calc(104px + env(safe-area-inset-bottom));flex:1;margin:0 auto}.willkommen{min-height:100dvh;padding:var(--abstand);background:linear-gradient(160deg, var(--kopf-von), var(--kopf-bis));place-items:center;display:grid}.willkommen__karte{background:var(--flaeche);text-align:center;width:min(420px,100%);box-shadow:var(--schatten-hoch);border-radius:20px;padding:32px 24px}.willkommen__karte .marke-logo{background:var(--akzent);width:56px;height:56px;color:var(--akzent-kontrast);border:none;border-radius:18px;margin-bottom:12px;font-size:1.6rem}.willkommen__titel{margin:0;font-size:2rem}.willkommen__unterzeile{text-transform:uppercase;letter-spacing:.18em;color:var(--text-schwach);margin:2px 0 16px;font-size:.72rem}.willkommen__karte .knopf{margin-top:20px}.knopf{min-height:var(--ziel-hoehe);border-radius:var(--radius-klein);background:var(--akzent);color:var(--akzent-kontrast);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-weight:600;text-decoration:none;transition:transform .12s,filter .12s,background-color .12s;display:inline-flex}.knopf:hover:not(:disabled){filter:brightness(1.06)}.knopf:active:not(:disabled){transform:translateY(1px)}.knopf:disabled{opacity:.45;cursor:not-allowed}.knopf--sekundaer{background:var(--flaeche);color:var(--text);border-color:var(--rand)}.knopf--sekundaer:hover:not(:disabled){background:var(--flaeche-leise);filter:none}.knopf--leise{color:var(--text-schwach);background:0 0;border-color:#0000;min-height:40px;padding:0 12px;font-weight:500}.knopf--leise:hover:not(:disabled){background:var(--flaeche-leise);color:var(--text);filter:none}.knopf--auf-dunkel{color:#fff;background:#ffffff1f;border-color:#ffffff38;padding:0 14px}.knopf--gefahr{background:var(--schwach);color:#fff}.knopf--breit{width:100%}.knopf-zeile{flex-wrap:wrap;gap:10px;display:flex}.karte{background:var(--flaeche);border:1px solid var(--rand);border-radius:var(--radius);margin-bottom:var(--abstand);box-shadow:var(--schatten);padding:18px}.karte__kopf{justify-content:space-between;align-items:center;gap:var(--abstand);flex-wrap:wrap;display:flex}.karte h2,.karte h3{margin:0 0 4px}.schwach{color:var(--text-schwach);margin:0;font-size:.9rem}.schwach+.feld-raster,.schwach+.feld,.schwach+.marken,.marken+.feld{margin-top:var(--abstand)}.waffel{flex:none;position:relative}.waffel__knopf{color:#fff;fill:currentColor;background:#ffffff1a;border:1px solid #ffffff38;border-radius:11px;justify-content:center;align-items:center;width:42px;height:42px;display:inline-flex}.waffel__knopf[aria-expanded=true]{background:#ffffff38}.waffel__blatt{z-index:40;background:var(--flaeche);width:min(340px,100vw - 24px);color:var(--text);border:1px solid var(--rand);border-radius:var(--radius);box-shadow:var(--schatten-hoch);gap:2px;padding:6px;display:grid;position:absolute;top:calc(100% + 10px);left:0}.waffel__eintrag{width:100%;min-height:var(--ziel-hoehe);border-radius:var(--radius-klein);text-align:left;color:inherit;background:0 0;border:none;align-items:center;gap:12px;padding:10px 12px;display:flex}.waffel__eintrag:hover,.waffel__eintrag:focus-visible{background:var(--akzent-schwach)}.waffel__symbol{background:var(--akzent-schwach);width:38px;height:38px;color:var(--akzent);border-radius:11px;flex:none;justify-content:center;align-items:center;display:inline-flex}.waffel__text{flex-direction:column;flex:1;min-width:0;display:flex}.waffel__titel{font-weight:600}.waffel__beschreibung{color:var(--text-schwach);font-size:.78rem}.waffel__pfeil{color:var(--text-schwach);font-size:1.2rem}.waffel__zurueck{border:none;border-bottom:1px solid var(--rand);min-height:42px;color:var(--text-schwach);text-align:left;background:0 0;margin-bottom:2px;padding:0 12px;font-weight:600}.schueler-raster{grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:10px;display:grid}@media (width>=1024px){.schueler-raster{grid-template-columns:repeat(auto-fill,minmax(196px,1fr))}}.schueler{border:1px solid var(--rand);border-radius:var(--radius);background:var(--flaeche);min-height:96px;box-shadow:var(--schatten);text-align:left;flex-direction:column;justify-content:space-between;gap:10px;padding:12px;transition:transform .12s,border-color .12s;display:flex}.schueler:hover:not(:disabled){border-color:var(--akzent)}.schueler:active:not(:disabled){transform:scale(.985)}.schueler:disabled{opacity:.55}.schueler--abwesend{background:var(--flaeche-leise);border-style:dashed}.schueler__kopf{align-items:center;gap:10px;min-width:0;display:flex}.schueler__name{overflow-wrap:anywhere;font-size:.95rem;font-weight:600}.schueler__zeile{justify-content:space-between;align-items:center;gap:8px;display:flex}.zaehler{color:var(--text-schwach);font-size:.78rem}.zaehler--warnung{color:var(--schwach);font-weight:700}.punkte{font-variant-numeric:tabular-nums;background:var(--flaeche-leise);color:var(--text-schwach);border-radius:999px;padding:3px 10px;font-size:1.05rem;font-weight:700}.punkte--gut{color:var(--gut);background:var(--gut-flaeche)}.punkte--mittel{color:var(--mittel);background:var(--mittel-flaeche)}.punkte--schwach{color:var(--schwach);background:var(--schwach-flaeche)}.portrait{object-fit:cover;border:1px solid var(--rand);background:var(--flaeche-leise);width:96px;height:96px;color:var(--text-schwach);border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.portrait--klein{width:34px;height:34px;font-size:.75rem}.aktionsleiste{z-index:20;padding:12px var(--abstand);padding-bottom:calc(12px + env(safe-area-inset-bottom));background:color-mix(in srgb, var(--flaeche) 88%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--rand);gap:10px;display:flex;position:fixed;bottom:0;left:0;right:0}.aktionsleiste>*{flex:1}@media (width>=640px){.aktionsleiste{justify-content:flex-end}.aktionsleiste>*{flex:none;min-width:180px}}.blatt-hintergrund{z-index:30;background:#090c148c;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}@media (width>=640px){.blatt-hintergrund{align-items:center}}.blatt{background:var(--flaeche);width:100%;max-width:560px;padding:18px;padding-bottom:calc(18px + env(safe-area-inset-bottom));max-height:88dvh;box-shadow:var(--schatten-hoch);border-radius:20px 20px 0 0;overflow-y:auto}@media (width>=640px){.blatt{border-radius:20px}}.blatt__titel{margin:0 0 var(--abstand);font-size:1.2rem}.qualitaet-liste{margin-bottom:var(--abstand);gap:8px;display:grid}.qualitaet{border-radius:var(--radius-klein);border:1px solid var(--rand);background:var(--flaeche);min-height:56px;color:inherit;justify-content:space-between;align-items:center;padding:0 16px;font-weight:600;display:flex}.qualitaet:hover{border-color:var(--akzent);background:var(--akzent-schwach)}.qualitaet__punkte{font-variant-numeric:tabular-nums;color:var(--text-schwach);font-weight:500}.ereignis-raster{grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:8px;display:grid}.feld{margin-bottom:var(--abstand);display:block}.feld__beschriftung{color:var(--text-schwach);margin-bottom:6px;font-size:.82rem;font-weight:600;display:block}.feld input,.feld select,.feld textarea{width:100%;min-height:var(--ziel-hoehe);border:1px solid var(--rand);border-radius:var(--radius-klein);background:var(--flaeche);font:inherit;color:inherit;padding:11px 13px;transition:border-color .12s,box-shadow .12s}.feld input:focus,.feld select:focus,.feld textarea:focus{border-color:var(--akzent);box-shadow:0 0 0 3px color-mix(in srgb, var(--akzent) 22%, transparent);outline:none}.feld input[type=range]{accent-color:var(--akzent);background:0 0;border:none;padding:0}.feld textarea{resize:vertical;min-height:120px;line-height:1.5}.feld-raster{gap:var(--abstand);display:grid}@media (width>=640px){.feld-raster{grid-template-columns:repeat(2,1fr)}}.schalter{min-height:var(--ziel-hoehe);align-items:center;gap:8px;font-size:.9rem;display:inline-flex}.schalter input{width:22px;height:22px;accent-color:var(--akzent)}.schueler-formular{gap:var(--abstand);border-top:1px solid var(--rand);padding:18px 0;display:grid}@media (width>=640px){.schueler-formular{grid-template-columns:176px 1fr;align-items:start}}.schueler-formular__bild{flex-direction:column;align-items:center;gap:8px;display:flex}.schueler-formular__bild .knopf{white-space:nowrap;width:100%;padding:0 10px;font-size:.88rem}.schueler-formular__felder{min-width:0}.schueler-formular__felder textarea{min-height:72px}.knopf--datei{cursor:pointer;width:100%}.knopf--datei input[type=file]{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.segmente{background:var(--flaeche-leise);border:1px solid var(--rand);border-radius:999px;gap:3px;padding:3px;display:inline-flex}.segment{color:var(--text-schwach);background:0 0;border:none;border-radius:999px;padding:7px 14px;font-size:.85rem;font-weight:600}.segment--aktiv{background:var(--flaeche);color:var(--text);box-shadow:var(--schatten)}.marken{flex-wrap:wrap;gap:6px;display:flex}.marke{background:var(--akzent-schwach);color:var(--akzent);cursor:help;border-radius:999px;padding:4px 9px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.76rem}.ergebnis{margin:var(--abstand) 0;grid-template-columns:repeat(2,1fr);gap:10px;display:grid}@media (width>=640px){.ergebnis{grid-template-columns:repeat(4,1fr)}}.ergebnis__wert{border:1px solid var(--rand);border-radius:var(--radius);background:var(--flaeche-leise);flex-direction:column;align-items:center;gap:6px;padding:16px 10px;display:flex}.ergebnis__zahl{font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:1.45rem}.ergebnis__beschriftung{color:var(--text-schwach);text-align:center;font-size:.74rem}.angaben{margin:var(--abstand) 0 0;grid-template-columns:1fr;gap:2px;display:grid}@media (width>=640px){.angaben{gap:10px var(--abstand);grid-template-columns:200px 1fr;align-items:baseline}}.angaben dt{color:var(--text-schwach);font-size:.82rem}.angaben dd{margin:0 0 10px}@media (width>=640px){.angaben dd{margin-bottom:0}}.angaben__technisch{overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem}.tabelle-huelle{margin-top:var(--abstand);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{text-align:left;border-bottom:1px solid var(--rand);white-space:nowrap;padding:11px 10px}tbody tr:last-child td{border-bottom:none}th{text-transform:uppercase;letter-spacing:.06em;color:var(--text-schwach);font-size:.74rem;font-weight:600}td.zahl,th.zahl{text-align:right;font-variant-numeric:tabular-nums}.nachricht{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--flaeche-leise);border:1px solid var(--rand);border-radius:var(--radius-klein);margin:0 0 var(--abstand);padding:16px;font-family:inherit;font-size:.9rem;line-height:1.6}.nachricht-feld{width:100%;min-height:200px;margin-top:var(--abstand);border:1px solid var(--rand);border-radius:var(--radius-klein);background:var(--flaeche);color:inherit;font:inherit;padding:14px;font-size:.9rem}.vorschau__betreff{margin:var(--abstand) 0 8px;font-weight:600}.meldung{border-radius:var(--radius-klein);margin-bottom:var(--abstand);border:1px solid;padding:13px 15px;font-size:.92rem}.meldung--fehler{background:var(--schwach-flaeche);border-color:color-mix(in srgb, var(--schwach) 35%, transparent);color:var(--schwach)}.meldung--erfolg{background:var(--gut-flaeche);border-color:color-mix(in srgb, var(--gut) 35%, transparent);color:var(--gut)}.meldung--hinweis{background:var(--akzent-schwach);border-color:color-mix(in srgb, var(--akzent) 30%, transparent);color:var(--akzent)}.mittig{text-align:center;padding:64px var(--abstand)}.status-page{gap:var(--abstand);display:grid}.status-page>h1{margin:0}.status-card{border:1px solid var(--rand);border-radius:var(--radius);background:var(--flaeche);box-shadow:var(--schatten);padding:18px;position:relative}.status-card h2{margin:0 56px 10px 0;font-size:1.05rem}.status-indicator{color:#fff;border:2px solid #ffffffb8;border-radius:999px;place-items:center;width:42px;height:42px;transition:transform .12s,box-shadow .12s;display:inline-grid;position:absolute;top:14px;right:14px;box-shadow:0 2px 6px #10151f2e}.status-indicator:hover{transform:scale(1.06);box-shadow:0 4px 10px #10151f3d}.status-indicator[aria-expanded=true]{box-shadow:0 0 0 4px color-mix(in srgb, currentColor 25%, transparent)}.status-text,.status-detail{margin:0}.status-detail{color:var(--text-schwach);margin-top:6px;font-size:.9rem}.status-dot--ok{color:var(--gut)}.status-dot--error{color:var(--schwach)}.status-dot--unknown{color:var(--mittel)}.status-details{margin-top:var(--abstand);padding-top:var(--abstand);border-top:1px solid var(--rand)}.status-details .angaben{margin:0}.status-details__title{margin:20px 0 0;font-size:.95rem}.status-refresh{min-height:var(--ziel-hoehe);border-radius:var(--radius-klein);background:var(--akzent);color:var(--akzent-kontrast);border:1px solid #0000;justify-self:start;padding:0 18px;font-weight:600}.status-refresh:hover{filter:brightness(1.06)}.schueler-liste{gap:8px;margin:0;padding:0;list-style:none;display:grid}.schueler-liste li{border:1px solid var(--rand);border-radius:var(--radius-klein);background:var(--flaeche-leise);padding:10px 12px}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}@media (prefers-reduced-motion:no-preference){.blatt{animation:.18s cubic-bezier(.2,.8,.3,1) blatt-ein}.waffel__blatt{animation:.14s ease-out menue-ein}}@keyframes blatt-ein{0%{opacity:0;transform:translateY(18px)}}@keyframes menue-ein{0%{opacity:0;transform:translateY(-6px)}}
