/* Nikodos Uni — Marken-Tokens aus nikodos.css (Papier, Tinte, Leise; Grün nur im Logo),
   IBM Plex Sans lokal, 8-px-Raster, Ecken 2 px, keine Schatten, keine Verläufe, keine Kartenrahmen. */
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/IBMPlexSans-Regular-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/IBMPlexSans-Regular-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/IBMPlexSans-SemiBold-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/IBMPlexSans-SemiBold-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  --nk-color-paper:#F8F7F7;--nk-color-ink:#000000;--nk-color-muted:#6B6767;
  --nk-color-accent:#2CA201;--nk-color-accent-text:#238101;
  --nk-font-body:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --s1:8px;--s2:16px;--s3:24px;--s4:32px;--s6:48px;--s8:64px;
  --t-sm:.75rem;--t-base:1rem;--t-lead:1.333rem;--t-h3:1.333rem;--t-h2:1.777rem;--t-h1:2.369rem;
  --radius:2px;--measure:62ch;--container:1120px;
  --surface:var(--nk-color-paper);--text:var(--nk-color-ink);--quiet:var(--nk-color-muted);
  --link:var(--nk-color-accent-text);--action-bg:var(--nk-color-ink);--action-text:var(--nk-color-paper);
  --rule:color-mix(in srgb,var(--nk-color-muted) 30%,transparent);
  --rule-strong:color-mix(in srgb,var(--nk-color-muted) 60%,transparent);
  --flaeche:color-mix(in srgb,var(--nk-color-muted) 8%,var(--nk-color-paper));
  --balken:var(--nk-color-ink);
}
[data-theme="dunkel"]{
  --surface:#000000;--text:#F8F7F7;--quiet:#9A9494;--link:#8FD46B;
  --action-bg:#F8F7F7;--action-text:#000000;
  --rule:color-mix(in srgb,#9A9494 35%,transparent);--rule-strong:color-mix(in srgb,#9A9494 65%,transparent);
  --flaeche:#161515;--balken:#F8F7F7;
}
[data-theme="dunkel"] .logo-gross,[data-theme="dunkel"] .logo-klein{filter:invert(1) hue-rotate(180deg) saturate(1.2)}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--surface);color:var(--text);font:400 var(--t-base)/1.6 var(--nk-font-body);-webkit-font-smoothing:antialiased;min-height:100vh;display:flex;flex-direction:column}
img,svg{display:block;max-width:100%}
a{color:var(--link);text-decoration:none;border-bottom:1px solid currentColor}
a:hover{border-bottom-width:2px}
:focus-visible{outline:2px solid var(--nk-color-accent);outline-offset:3px}
h1,h2,h3,h4{font-weight:600;line-height:1.15;letter-spacing:-.015em;margin:0 0 var(--s2);hyphens:auto;overflow-wrap:break-word}
h1{font-size:var(--t-h1)}h2{font-size:var(--t-h2);margin-top:var(--s4)}h3{font-size:var(--t-h3);margin-top:var(--s3)}h4{font-size:var(--t-base);margin-top:var(--s2)}
p{margin:0 0 var(--s2);max-width:var(--measure)}
ul,ol{margin:0 0 var(--s2);padding-left:1.4em;max-width:var(--measure)}
li{margin-bottom:var(--s1)}
code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em;background:var(--flaeche);padding:0 4px;border-radius:var(--radius)}
table{border-collapse:collapse;width:100%;margin:0 0 var(--s3);font-size:.95rem}
th,td{text-align:left;padding:var(--s1) var(--s2) var(--s1) 0;border-bottom:1px solid var(--rule);vertical-align:top}
th{font-weight:600;border-bottom:1px solid var(--rule-strong)}
.tabelle-scroll{overflow-x:auto;margin:0 0 var(--s3)}
.quiet{color:var(--quiet)}
.klein{font-size:var(--t-sm)}
.still{background:none;border:0;color:var(--quiet);font:inherit;cursor:pointer;padding:var(--s1)}
.still:hover{color:var(--text)}
button.aktion,.aktion{background:var(--action-bg);color:var(--action-text);border:0;border-radius:var(--radius);padding:var(--s1) var(--s2);font:600 var(--t-base) var(--nk-font-body);cursor:pointer}
button.aktion[disabled]{opacity:.5;cursor:default}
button.leise{background:none;border:1px solid var(--rule-strong);color:var(--text);border-radius:var(--radius);padding:var(--s1) var(--s2);font:inherit;cursor:pointer}
select,input{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--rule-strong);border-radius:var(--radius);padding:var(--s1)}

.wrap{max-width:var(--container);margin:0 auto;padding:0 var(--s2);width:100%}
@media (min-width:900px){.wrap{padding:0 var(--s4)}}

/* Kopf */
.kopf{display:flex;align-items:center;gap:var(--s2);padding:var(--s2);border-bottom:1px solid var(--rule);flex-wrap:wrap;max-width:var(--container);margin:0 auto;width:100%}
@media (min-width:900px){.kopf{padding:var(--s3) var(--s4)}}
.logo{border:0;display:block}
.logo-gross{width:120px;display:none}.logo-klein{width:32px}
@media (min-width:720px){.logo-gross{display:block}.logo-klein{display:none}}
.titel{font-weight:600;font-size:var(--t-lead);margin-right:var(--s2)}
.tabs{display:flex;gap:var(--s1);flex:1;overflow-x:auto;white-space:nowrap;scrollbar-width:none;order:3;flex-basis:100%}
.tabs::-webkit-scrollbar{display:none}
@media (min-width:900px){.tabs{order:0;flex-basis:auto}}
.tab{background:none;border:0;border-bottom:2px solid transparent;color:var(--quiet);font:inherit;padding:var(--s1) 0;margin-right:var(--s2);cursor:pointer;border-radius:0}
.tab:hover{color:var(--text)}
.tab.aktiv{color:var(--text);border-bottom-color:var(--text)}
.rechts{display:flex;align-items:center;gap:var(--s1);margin-left:auto}
@media (max-width:719px){.wer{display:none}}
.wer{white-space:nowrap}
main{flex:1;padding-top:var(--s4);padding-bottom:var(--s8)}
.fuss{padding:var(--s3) var(--s2);border-top:1px solid var(--rule);font-size:var(--t-sm)}

/* Login */
body.login{align-items:center;justify-content:center}
.login-box{width:min(420px,100% - 2*var(--s3));padding:var(--s4) 0}
.login-box .logo{width:150px;margin-bottom:var(--s4)}
.login-box label{display:block;margin-bottom:var(--s2);font-weight:600}
.login-box input{display:block;width:100%;margin-top:4px;font-weight:400}
.login-box button{margin-top:var(--s1);background:var(--action-bg);color:var(--action-text);border:0;border-radius:var(--radius);padding:var(--s1) var(--s3);font:600 var(--t-base) var(--nk-font-body);cursor:pointer}
.fehler{color:var(--text);border-left:2px solid var(--text);padding-left:var(--s2);margin-top:var(--s2)}

/* Bereiche */
.bereich>h1:first-child{margin-top:0}
.laden{color:var(--quiet)}
.zeile{display:flex;gap:var(--s3);flex-wrap:wrap;align-items:baseline}
.kennzahlen{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--s3);margin:var(--s3) 0 var(--s4)}
.kennzahl{border-top:2px solid var(--text);padding-top:var(--s1)}
.kennzahl .wert{font-size:var(--t-h2);font-weight:600;line-height:1.1}
.kennzahl .label{color:var(--quiet);font-size:var(--t-sm)}
.raster{display:grid;gap:var(--s4);grid-template-columns:1fr}
@media (min-width:720px){.raster-2{grid-template-columns:1fr 1fr}}
.block{border-top:1px solid var(--rule-strong);padding-top:var(--s2);margin-bottom:var(--s3)}
.block>h2,.block>h3{margin-top:0}
details{border-top:1px solid var(--rule);padding:var(--s1) 0}
details:last-of-type{border-bottom:1px solid var(--rule)}
summary{cursor:pointer;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:var(--s2);padding:var(--s1) 0}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";color:var(--quiet)}
details[open]>summary::after{content:"−"}
.details-inhalt{padding:var(--s1) 0 var(--s2)}
.band{display:inline-block;font-size:var(--t-sm);font-weight:600;letter-spacing:.02em;text-transform:uppercase;border:1px solid var(--text);border-radius:var(--radius);padding:0 var(--s1);margin-left:var(--s1);vertical-align:middle}
.band.leise{border-color:var(--quiet);color:var(--quiet)}
.level-liste{list-style:none;padding:0;max-width:none}
.level-liste li{display:grid;grid-template-columns:3.2em 1fr;gap:var(--s1);padding:var(--s1) 0;border-bottom:1px solid var(--rule)}
.level-liste li.aktuell{font-weight:600}
.level-liste li.aktuell .level-nr::after{content:" ●"}
.level-nr{color:var(--quiet)}
.anker{display:grid;grid-template-columns:2em 1fr;gap:var(--s1);margin:0 0 var(--s1);max-width:none}
.anker dt{color:var(--quiet)}
.anker dd{margin:0}
.punkte{letter-spacing:.1em;white-space:nowrap}
.liste-leer{color:var(--quiet);padding:var(--s2) 0}
.lernende-liste button{display:block;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--rule);padding:var(--s2) 0;font:inherit;color:var(--text);cursor:pointer}
.lernende-liste button.aktiv{font-weight:600}
.chart{width:100%;height:auto;max-width:760px;margin:0 0 var(--s3)}
.chart text{font:400 11px var(--nk-font-body);fill:var(--quiet)}
.chart .balken{fill:var(--balken)}
.chart .ziel{stroke:var(--quiet);stroke-dasharray:4 4}
.chart .achse{stroke:var(--rule-strong)}
.hinweis{border-left:2px solid var(--text);padding-left:var(--s2);margin:var(--s2) 0;max-width:var(--measure)}
.schwaechen li{margin-bottom:var(--s1)}
.schwaechen .meta{color:var(--quiet);font-size:var(--t-sm)}
.studium-text{max-width:var(--measure)}
.fragen li{margin-bottom:var(--s2)}
.karte{padding:var(--s2);background:var(--flaeche);border-radius:var(--radius);margin-bottom:var(--s2)}
.karte h3{margin-top:0}
.schema{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;white-space:pre-wrap;background:var(--flaeche);padding:var(--s2);border-radius:var(--radius);max-width:none;overflow-x:auto}
.auswahl-zeile{display:flex;gap:var(--s2);align-items:center;flex-wrap:wrap;margin-bottom:var(--s3)}
