/* Quiz-Widget der Fragenbank (assets/js/quiz.js; Einbettung <div class="quiz-bank" data-quiz="…">). Eigenständig: Eine Seite braucht
   nur site.css, diese Datei und für das Teilen quiz-teilen.css. Optik übernommen vom Query-Store-Quiz (qsv.css, .qv-quiz …) und
   dem Quiz im Beitrag „Der Leser, der die Tabelle sperrt“ (lesc.css), hier unter dem Präfix .qb- (06.10.2026). */
.qb-karte{background:var(--navy);color:#e6f0f7;border-radius:var(--radius);padding:28px 32px 30px;box-shadow:0 30px 70px rgba(5,28,44,.25)}
.qb-karte .eyebrow{color:#9ccbea;margin-bottom:0}
.qb-top{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.qb-dots{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.qb-dots li{width:26px;height:6px;border-radius:3px;background:rgba(255,255,255,.15)}
.qb-dots li.akt{background:#9ccbea}
.qb-dots li.ok{background:#7fd1a8}
.qb-dots li.nein{background:#e5533f}
.qb-laedt,.qb-fehler{color:#b9cddb;margin:0}
.qb-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* Frage */
.qb-q{animation:qb-ein .45s var(--ease) both}
.qb-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:26px;align-items:start}
.qb-n{font-family:var(--mono);font-size:.78rem;color:#7fa3bd}
.qb-q h3{color:#fff;margin:4px 0 10px;font-size:clamp(1.4rem,2.2vw,1.9rem);line-height:1.2;overflow-wrap:anywhere}
.qb-q h3:focus{outline:none}
.qb-frage{font-family:var(--display);font-weight:600;font-size:1.25rem;color:#fff;margin:0 0 14px}
.qb-karte code{font-family:var(--mono);font-size:.84em;background:rgba(255,255,255,.08);border-radius:6px;padding:1px 6px;color:#fff}

/* Antworten */
.qb-opts{display:flex;flex-direction:column;gap:10px}
.qb-opts button{display:flex;gap:14px;align-items:flex-start;text-align:left;font:500 .98rem var(--text);padding:14px 16px;border-radius:14px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.04);color:#e6f0f7;cursor:pointer;transition:border-color .2s,background .2s;overflow-wrap:anywhere}
.qb-opts button:hover:not(:disabled){border-color:var(--orange);background:rgba(240,125,26,.08)}
.qb-opts button:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
.qb-opts button .k{flex:none;width:26px;height:26px;margin-top:-1px;border-radius:50%;border:1px solid rgba(255,255,255,.3);display:grid;place-items:center;font-family:var(--mono);font-size:.78rem}
.qb-opts .qb-ot{display:block;color:#e6f0f7;line-height:1.45}
.qb-opts button:disabled{cursor:default}
.qb-opts button.richtig{border-color:#7fd1a8;background:rgba(127,209,168,.12)}
.qb-opts button.richtig .k{background:#7fd1a8;border-color:#7fd1a8;color:var(--navy)}
.qb-opts button.falsch{border-color:#e5533f;background:rgba(229,83,63,.12);animation:qb-wackel .4s}
.qb-opts button.falsch .k{background:#e5533f;border-color:#e5533f;color:#fff}
.qb-opts button.blass{opacity:.45}
.qb-opts.qb-wf{flex-direction:row}
.qb-opts.qb-wf button{flex:1;align-items:center}

/* Schätzregler mit Skala; nach der Abgabe Toleranzband und Ziel */
.qb-schaetz{max-width:760px}
.qb-schaetz-w{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px;margin-bottom:6px}
.qb-schaetz-w output{font-family:var(--display);font-weight:600;font-size:clamp(2.4rem,5vw,3.6rem);color:var(--orange);line-height:1;font-variant-numeric:tabular-nums}
.qb-schaetz-w small{color:#9fb7c8}
.qb-schaetz input[type=range]{width:100%;accent-color:var(--orange);min-height:36px;cursor:pointer;margin:0}
.qb-schaetz input[type=range]:focus-visible{outline:2px solid var(--orange);outline-offset:4px}
.qb-schaetz input[type=range]:disabled{cursor:default}
.qb-skala{position:relative;height:40px;font-family:var(--mono);font-size:.7rem;color:#7fa3bd;margin:0 6px}
.qb-skala span{position:absolute;top:0;transform:translateX(-50%);white-space:nowrap}
.qb-skala span:first-child{transform:none}
.qb-skala span:nth-child(2){transform:translateX(-100%)}
.qb-skala .ziel{top:16px;color:#7fd1a8;font-weight:700;transform:translateX(-50%)!important}
.qb-skala .ziel::before{content:"";position:absolute;left:50%;top:-14px;width:2px;height:12px;background:#7fd1a8}
.qb-skala .band{position:absolute;top:-28px;height:8px;border-radius:4px;background:rgba(127,209,168,.35);transform:none!important}

/* Auflösung */
.qb-aufl{margin-top:22px;padding-top:20px;border-top:1px solid rgba(255,255,255,.1);animation:qb-ein .5s var(--ease)}
.qb-aufl p{color:#d4e6f3;max-width:60em;margin:16px 0 0;overflow-wrap:anywhere}
.qb-aufl p b{color:#fff}
.qb-aufl a.qb-beleg{display:inline-flex;align-items:center;gap:6px;margin-top:10px;color:#9ccbea;font-size:.88rem}
.qb-aufl a.qb-beleg:hover{color:#fff}
.qb-aufl a.qb-beleg:focus-visible{outline:2px solid var(--orange);outline-offset:2px;border-radius:4px}
.qb-next{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}

/* Auswertung mit Rangtitel und Leiter der Ergebnisbänder */
.qb-ende{position:relative;animation:qb-ein .5s var(--ease) both}
.qb-score{font-family:var(--display);font-size:clamp(3rem,7vw,5rem);font-weight:600;color:var(--orange);line-height:1;margin:6px 0 10px}
.qb-score span{font-variant-numeric:tabular-nums}
.qb-rang h3{color:var(--orange);font-size:clamp(1.6rem,3vw,2.4rem);margin:0 0 .3em;overflow-wrap:anywhere}
.qb-rang p{color:#b9cddb;max-width:52em;margin:0}
.qb-leiter{display:flex;align-items:flex-end;gap:10px;margin:18px 0 6px;max-width:560px;height:130px}
.qb-leiter div{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:8px;height:100%}
.qb-leiter i{display:block;width:100%;border-radius:12px 12px 4px 4px;background:rgba(255,255,255,.08);height:var(--h);transform-origin:bottom;transform:scaleY(.06);transition:transform .6s cubic-bezier(.3,1.4,.5,1) var(--d),background .4s var(--d)}
.qb-leiter.an i{transform:scaleY(1)}
.qb-leiter div.erreicht i{background:linear-gradient(180deg,#5fa7d6,#2d78a8)}
.qb-leiter div.hier i{background:linear-gradient(180deg,#ffb066,var(--orange));box-shadow:0 0 30px rgba(240,125,26,.45)}
.qb-leiter span{font-family:var(--mono);font-size:.64rem;color:#7fa3bd;text-align:center;line-height:1.25;min-height:2.5em;overflow-wrap:anywhere;hyphens:auto}
.qb-leiter div.hier span{color:#fff;font-weight:700}

@keyframes qb-ein{from{opacity:0;transform:translateY(6px)}}
@keyframes qb-wackel{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}

@media (max-width:900px){
  .qb-grid{grid-template-columns:minmax(0,1fr)}
  .qb-karte{padding:22px 18px 24px}
}
@media (max-width:760px){
  .qb-leiter{height:110px;gap:6px}
  .qb-leiter span{font-size:.56rem}
  .qb-dots li{width:18px}
}
@media (max-width:420px){
  .qb-opts button{padding:12px 12px;gap:10px}
  .qb-opts.qb-wf{flex-direction:column}
}
@media (prefers-reduced-motion: reduce){
  .qb-q,.qb-aufl,.qb-ende,.qb-opts button.falsch{animation:none}
  .qb-opts button{transition:none}
  .qb-leiter i{transition:none}
}

/* Seit 07.10.2026 (Umzug des Query-Store-Quiz): Fragen mit Titel, Fließtext und Codeblock, Antworten mit Untertitel,
   eine Darstellung der Seite in der Auflösung (aufloesung=…) und Zusatzinhalt der Auswertung (<template data-quiz-ende>). */
.qb-q .qb-text{color:#b9cddb;margin:0 0 12px;overflow-wrap:anywhere}
.qb-q .qb-code{margin:0}
.qb-q .qb-code pre{background:#03131f}
.qb-opts .qb-ot:has(> small){font-weight:650;color:#fff}
.qb-opts .qb-ot small{display:block;font-weight:500;color:#9fb7c8;font-size:.82rem;margin-top:2px}
.qb-darstellung{margin-bottom:4px}
.qb-zusatz p{color:#b9cddb;max-width:52em;margin:14px 0 0}
