@font-face{font-family:OS;src:url(fonts/OpenSans-Regular.ttf);font-weight:400;font-display:swap}
@font-face{font-family:OS;src:url(fonts/OpenSans-Semibold.ttf);font-weight:600;font-display:swap}
@font-face{font-family:OS;src:url(fonts/OpenSans-Bold.ttf);font-weight:700;font-display:swap}
@font-face{font-family:OS;src:url(fonts/OpenSans-ExtraBold.ttf);font-weight:800;font-display:swap}

:root{
  --text:#202124;--leise:#5f6368;--grund:#f6f7f9;--karte:#fff;--linie:#dfe3e8;
  --akzent:#0068b2;--fehler:#b21334;--gut:#2f7d1e;
  --c1:#f39100;--c2:#50ae30;--c3:#009891;--c4:#0068b2;--c5:#6e2181;
}
*{box-sizing:border-box}
html,body{margin:0}
body{font-family:OS,system-ui,sans-serif;color:var(--text);background:var(--grund);line-height:1.5;font-size:17px;padding-bottom:8px}
main{max-width:920px;margin:0 auto;padding:24px 16px 48px}
body.breit main{max-width:1400px}
a{color:var(--akzent)}
h1{font-weight:800;font-size:clamp(28px,4vw,40px);line-height:1.15;margin:.2em 0 .4em;letter-spacing:-.01em}
h1 small{font-size:.5em;color:var(--leise);font-weight:600}
h2{font-weight:700;font-size:21px;margin:1.2em 0 .5em}
em{font-style:normal;color:var(--leise);font-weight:400}

.s1{--farbe:var(--c1)}.s2{--farbe:var(--c2)}.s3{--farbe:var(--c3)}.s4{--farbe:var(--c4)}.s5{--farbe:var(--c5)}

/* Kopf, Fuß */
.kopf{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  padding:14px 16px;background:#fff;border-bottom:1px solid var(--linie)}
.marke{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--text);font-weight:800;font-size:19px}
.marke img{display:block;height:28px;width:auto}
.kopf nav{display:flex;gap:18px;flex-wrap:wrap}
.kopf nav a{text-decoration:none;font-weight:600}
.fuss{display:flex;flex-wrap:wrap;gap:8px 22px;padding:18px 16px 26px;color:var(--leise);font-size:14px}
.fuss .version{margin-right:auto;color:var(--leise)}
.leiste{display:flex;height:8px;position:fixed;left:0;right:0;bottom:0}
.leiste i{flex:1}
.leiste i:nth-child(1){background:#f39100}.leiste i:nth-child(2){background:#b21334}.leiste i:nth-child(3){background:#6e2181}
.leiste i:nth-child(4){background:#0068b2}.leiste i:nth-child(5){background:#009891}.leiste i:nth-child(6){background:#50ae30}

/* Ladebalken (sofortige Rückmeldung bei Klicks) */
#ladebalken{position:fixed;top:0;left:0;height:3px;width:0;background:var(--akzent);z-index:9;transition:width 8s cubic-bezier(.1,.7,.2,1)}
#ladebalken.laeuft{width:85%}

/* Bausteine */
.kicker{color:#b21334;font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:13px;margin:0}
.gross{font-size:19px}
.klein{font-size:14px;color:var(--leise)}
.karte{background:var(--karte);border:1px solid var(--linie);border-radius:12px;padding:22px;margin:18px 0}
.karte.schmal{max-width:420px;margin:40px auto}
.karte.mitte{text-align:center;max-width:640px;margin:40px auto}
.knopf{display:inline-flex;align-items:center;gap:8px;background:var(--akzent);color:#fff;border:0;border-radius:8px;
  padding:11px 20px;font:600 16px OS,sans-serif;text-decoration:none;cursor:pointer}
.knopf:hover{filter:brightness(1.08)}
.knopf.zweit{background:#fff;color:var(--akzent);box-shadow:inset 0 0 0 2px var(--akzent)}
.knopf.klein{padding:7px 12px;font-size:14px}
.knopf[disabled]{opacity:.6;cursor:wait}
.knopf .kreisel{width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;
  animation:dreh .7s linear infinite}
@keyframes dreh{to{transform:rotate(360deg)}}
.knoepfe{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:inherit}
.karte.mitte .knoepfe{justify-content:center}
form.inline{display:inline}
.meldung{border-radius:8px;padding:10px 14px;margin:10px 0;font-weight:600}
.meldung.fehler{background:#fbe9ec;color:var(--fehler);border-left:4px solid var(--fehler)}
.meldung.gut{background:#eaf5e6;color:var(--gut);border-left:4px solid var(--gut)}
.meldung.kurz{display:inline-block;margin:0 0 0 6px;padding:4px 10px;font-size:14px}
.unsichtbar{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.topf{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.nr{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--farbe,#999);
  color:#fff;font-weight:800;font-size:15px;flex:none}

/* Info-Knopf */
.info{display:inline-block;position:relative;margin-left:6px;vertical-align:middle}
.info summary{list-style:none;width:20px;height:20px;border-radius:50%;border:1.5px solid var(--leise);color:var(--leise);
  display:grid;place-items:center;font:700 12px OS,sans-serif;cursor:pointer}
.info summary::-webkit-details-marker{display:none}
.info[open] p{position:absolute;z-index:5;left:0;top:26px;width:min(300px,80vw);background:#202124;color:#fff;
  padding:10px 12px;border-radius:8px;font-size:14px;font-weight:400;margin:0}

/* Stufen-Leiste */
.stufen{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:18px 0}
.stufe{background:#fff;border:1px solid var(--linie);border-top:5px solid var(--farbe);border-radius:10px;padding:12px;
  display:flex;flex-direction:column;gap:4px;font-size:14px}
.stufe strong{font-size:16px}
@media (max-width:760px){.stufen{grid-template-columns:1fr 1fr}}

/* Formular */
.feld{display:flex;flex-direction:column;gap:6px;margin:12px 0;font-weight:600}
.feld>span{display:flex;align-items:center;gap:4px}
input,select,textarea{font:400 16px OS,sans-serif;padding:10px 12px;border:1.5px solid var(--linie);border-radius:8px;
  background:#fff;color:var(--text);width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid var(--akzent);outline-offset:1px;border-color:var(--akzent)}
textarea{resize:vertical;min-height:84px}
fieldset.frage{border:1px solid var(--linie);border-radius:10px;padding:6px 16px 4px;margin:16px 0}
fieldset.frage legend{font-weight:700;padding:0 6px}
.reihe{display:grid;grid-template-columns:2fr 1fr;gap:12px}
.reihe.fuenf{grid-template-columns:repeat(5,1fr)}
@media (max-width:640px){.reihe,.reihe.fuenf{grid-template-columns:1fr}}
.zaehler{font-weight:400;color:var(--leise);text-align:right;min-height:1em}

.beispiele summary{font-weight:700;cursor:pointer}
.beispiel-raster{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:12px}
.beispiel-raster h3{font-size:16px;margin:0 0 6px;padding-left:10px;border-left:5px solid var(--farbe)}
.beispiel-raster ul{margin:0;padding-left:18px;font-size:15px}

/* Wand */
.wand{display:grid;grid-template-columns:repeat(5,minmax(220px,1fr));gap:14px;overflow-x:auto;padding-bottom:12px}
@media (max-width:1100px){.wand{grid-template-columns:repeat(5,260px)}}
@media (max-width:640px){.wand{grid-template-columns:1fr;overflow:visible}.spalte{min-height:0}}
.spalte{background:#fff;border-radius:12px;border-top:6px solid var(--farbe);padding:12px;min-height:200px}
.spalte h2{display:flex;align-items:center;gap:8px;font-size:18px;margin:0}
.spalte h2 small{margin-left:auto;color:var(--leise);font-weight:600}
.satz{font-size:13px;color:var(--leise);margin:4px 0 10px}
.zettel{background:var(--grund);border-left:4px solid var(--farbe);border-radius:8px;padding:10px 12px;margin:10px 0}
.zettel p{margin:0 0 8px;white-space:pre-line;overflow-wrap:anywhere}
.zettel-fuss{display:flex;align-items:center;gap:8px}
.etikett{font-size:12px;background:#fff;border:1px solid var(--linie);border-radius:20px;padding:2px 8px}
.plus-form{margin-left:auto}
.plus{border:1.5px solid var(--farbe);background:#fff;color:var(--text);border-radius:20px;padding:3px 10px;
  font:700 14px OS,sans-serif;cursor:pointer}
.plus.an{background:var(--farbe);color:#fff;cursor:default}
.leer{color:var(--leise);font-size:14px}

/* Verwaltung */
.liste{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden}
.liste th,.liste td{padding:10px 12px;border-bottom:1px solid var(--linie);text-align:left;vertical-align:top}
.liste td p{margin:0 0 4px;white-space:pre-line;overflow-wrap:anywhere}
.liste tr.aus{opacity:.5}
.zeile{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.zeile select{width:auto;padding:6px 8px;font-size:14px}
.haken{display:flex;align-items:center;gap:4px;font-size:14px}
.haken input{width:auto}

/* Folien */
body.folien{background:#e9ecf0}
body.folien main{max-width:none}
.folien-hinweis{text-align:center;color:var(--leise);font-size:14px}
.folie{background:#fff;aspect-ratio:16/9;width:min(100%,calc((100vh - 40px)*16/9));margin:20px auto;padding:3.2% 4%;
  border-radius:6px;box-shadow:0 4px 20px rgba(0,0,0,.08);display:flex;flex-direction:column;overflow:hidden;
  border-bottom:10px solid;border-image:linear-gradient(90deg,#f39100 0 16.6%,#b21334 0 33.3%,#6e2181 0 50%,#0068b2 0 66.6%,#009891 0 83.3%,#50ae30 0) 1}
.folie h2{font-size:clamp(22px,3.2vw,46px);font-weight:800;margin:0}
.folie .unter{font-size:clamp(14px,1.6vw,24px);color:var(--leise);margin:.2em 0 1em}
.balken{width:100%;flex:1}
.balken .b-name{font:700 30px OS,sans-serif;fill:var(--text)}
.balken .b-zahl{font:600 22px OS,sans-serif;fill:var(--leise)}
.f1{fill:var(--c1)}.f2{fill:var(--c2)}.f3{fill:var(--c3)}.f4{fill:var(--c4)}.f5{fill:var(--c5)}
.hell{opacity:.35}
.top-raster{display:grid;grid-template-columns:repeat(5,1fr);gap:1.4%;flex:1;margin-top:2%}
.top{border-top:6px solid var(--farbe);padding-top:2%;font-size:clamp(11px,1.15vw,18px)}
.top h3{display:flex;align-items:center;gap:8px;margin:0 0 .6em;font-size:1.15em}
.top p{margin:0 0 .8em}
.top b{color:var(--farbe);white-space:nowrap}
.matrix{width:100%;border-collapse:separate;border-spacing:4px;margin-top:2%;font-size:clamp(10px,1.1vw,17px);flex:1}
.matrix th{font-weight:700;text-align:center;padding:4px}
.matrix tbody th{text-align:left;white-space:nowrap}
.matrix td{text-align:center;font-weight:800;border-radius:6px;background:#f1f3f5}
.matrix td.h1,.matrix td.h2,.matrix td.h3,.matrix td.h4{background:var(--farbe);color:#fff}
.matrix td.h1{opacity:.35}.matrix td.h2{opacity:.55}.matrix td.h3{opacity:.78}.matrix td.h4{opacity:1}

.text h2{margin-top:1.4em}

/* 0.2: Wand nur intern, Spalten ohne Überschrift */
.wand-kopf{display:flex;gap:10px;margin:0 0 16px}
.offen{margin-top:24px}
.offen .zettel{border-left-color:#bcbcbc}
.spalte{min-height:120px}
body.vollbild .kopf,body.vollbild .fuss{display:none}
body.vollbild main{padding:2vh 1.5vw}
body.vollbild .wand{grid-template-columns:repeat(5,1fr);gap:1.2vw;overflow:visible}
body.vollbild .zettel p{font-size:clamp(14px,1.15vw,22px)}
.vollbild-zurueck{position:fixed;top:10px;right:14px;text-decoration:none;font-size:22px;color:var(--leise)}
.beispiele ul{margin:10px 0 0;padding-left:20px}
