/* Serie „Statik" · Modul „Kräfte mit gemeinsamem Angriffspunkt" — lokale Ergänzungen.
   Zeichenkonvention der Serie: eingeprägte Kräfte orange · Reaktions-/
   Stabkräfte teal · Resultierende rose · Geometrie neutral. */

/* Szenen-Kanalfarben (linke Kante der aktiven Scroll-Schritte) */
.sz .scrolly-step[data-scene="system"] { --scrolly-edge: var(--textcolor-80contrast); }
.sz .scrolly-step[data-scene="freischnitt"] { --scrolly-edge: rgb(var(--chart-teal-rgb)); }
.sz .scrolly-step[data-scene="zerlegung"] { --scrolly-edge: rgb(var(--chart-teal-rgb)); }
.sz .scrolly-step[data-scene="zusammensetzung"] { --scrolly-edge: rgb(var(--chart-rose-rgb)); }
.sz .scrolly-step[data-scene="gleichgewicht"] { --scrolly-edge: rgb(var(--chart-rose-rgb)); }
.sz .scrolly-step[data-scene="raum"] { --scrolly-edge: rgb(var(--chart-purple-rgb)); }

/* Readout-Farben */
.sz .scrolly-cell[data-c="g"] .scrolly-cell__v { color: rgb(var(--chart-orange-rgb)); }
.sz .scrolly-cell[data-c="s1"] .scrolly-cell__v,
.sz .scrolly-cell[data-c="s2"] .scrolly-cell__v { color: rgb(var(--chart-teal-rgb)); }

/* Panel-Proportionen (2026-08-05 korrigiert, Review-Befund):
   Feste Canvas-Höhen gehen in der höhenbegrenzten Bühne NICHT auf. Die
   Blueprint-Regel `.scrolly-panel canvas { flex: 1 1 0 }` lässt den Canvas
   das Panel füllen; ein `height` daneben wirkt nur noch als intrinsische
   Größe der Figur — der Lageplan nahm sich damit starr 300 px und der
   Kräfteplan bekam den Rest: gemessen 98 px bei 1440×950, 57 px bei
   1024×900 und 3 px bei 1440×760. Unterhalb von 76 px wurde der
   Zeichenmaßstab sogar negativ (Kräfte spiegelverkehrt).
   Jetzt teilen sich beide Panels die Bühnenhöhe über Flex-Anteile — der
   Kräfteplan trägt in den Kapiteln 03–06 die Argumentation und bekommt
   deshalb fast die Hälfte. */
@media (min-width: 901px) {
  .sz .scrolly-panel--circuit { flex: 1.15 1 0; }
  .sz .scrolly-panel--chart { flex: 1 1 0; min-height: 168px; }
  /* Der Wrapper des Lageplans ersetzt den Canvas als Flex-Kind — sonst
     bliebe unter der Zeichnung ein toter Kasten stehen. */
  .sz .sz-stage-wrap { display: flex; flex-direction: column; flex: 1 1 0; min-height: 0; }
  .sz .sz-stage-wrap > canvas { flex: 1 1 0; min-height: 0; }
  /* Niedrige Fenster: die Regler nebeneinander statt untereinander — das
     schafft der Bühne rund 60 px. */
  @media (max-height: 880px) {
    .sz .scrolly-controls { grid-template-columns: repeat(3, 1fr); }
  }
  /* Kippschwelle dieses Moduls: 760 px (base/statik.css). Die Wandkonsole
     ist eine breite Zeichnung und gewinnt gestapelt an Größe — gemessen
     bleiben bis 800 px Fensterhöhe beide Panels über 185 px. Erst darunter
     lohnt der Wechsel; dann teilen die Flex-Anteile die BREITE, und weil
     der Kräfteplan sein Parallelogramm samt Beschriftung unterbringen
     muss, bekommt der Lageplan nur einen leichten Vorsprung. */
  @media (max-height: 760px) {
    .sz .scrolly-panel--circuit { flex: 1.1 1 0; }
    .sz .scrolly-panel--chart { flex: 1 1 0; }
    /* Kein min-height im Nebeneinander-Fall: Die Panelhöhe IST die
       Bühnenhöhe; ein Mindestwert sprengt sie und `overflow: hidden`
       schneidet unten ab (gemessen im Balkenmodul bei 960×620). */
    .sz .scrolly-panel--circuit,
    .sz .scrolly-panel--chart { min-height: 0; }
  }
}
/* Schmale Fenster: Bühne steht oben und scrollt mit — feste Höhen sind hier
   richtig (Blueprint-Mobilregel), der Wrapper darf nicht flexen. */
@media (max-width: 900px) {
  .sz .sz-stage-wrap { display: block; }
  .sz .sz-stage-wrap > canvas { height: clamp(240px, 52vw, 360px); }
}

/* Freikörperbild direkt auf der Bühne (2026-08-05): Das Baukasten-SVG liegt
   deckungsgleich über dem Canvas — Leitsystem und Freikörperbild sind EIN
   Bild. Klicks gehen an den Canvas (Schnittstellen-Wahl), bis der Baukasten
   aktiv ist; dann fängt das Overlay Drop und Pfeil-Drehung ab. */
.sz .sz-stage-wrap { position: relative; }
.sz .sz-fkb-overlay {
  position: absolute; inset: 0; width: 100%; height: 100%;
  /* Nur in Kapitel 02 sichtbar: Ablageziele und Wahlringe sind Möblierung
     der Aufgabe — in den Rechenkapiteln hätten sie nichts zu suchen. */
  visibility: hidden; pointer-events: none;
  /* Pfeil-Drehung per Pointer: ohne touch-action wird der Drag zum Scroll */
  touch-action: none;
  overflow: visible;
}
.sz .sz-fkb-overlay.is-aktiv { visibility: visible; pointer-events: auto; }
/* Nach bestandener Prüfung bleibt das gezeichnete Freikörperbild stehen —
   auch mit Druckannahme. Gesperrt wird nur die Bedienung. */
.sz .sz-fkb-overlay.is-fertig { pointer-events: none; }
/* Fertig heißt fertig: Die Ablageziele der übrigen Anker verschwinden,
   stehen bleibt allein das gezeichnete Freikörperbild. */
.sz .sz-fkb-overlay.is-fertig .fkb__slot,
.sz .sz-fkb-overlay.is-fertig .fkb__hit { display: none; }
.sz #szFkb.is-fertig .fkb__palette,
.sz #szFkb.is-fertig .fkb__check { opacity: .45; pointer-events: none; }
.sz .sz-fkb-overlay .fkb__arrow-label {
  paint-order: stroke; stroke: var(--neutrals-0, #fff); stroke-width: 3px;
}

/* Formelzeichen in Aufgabentexten */
.sz-var { font-style: italic; font-family: KaTeX_Math, Georgia, serif; }

/* Aufgabenbilder (inline-SVG) */
.sz-bild svg { width: 100%; max-width: 26rem; height: auto; display: block; margin: 0 auto; }
.sz-svg-mast { stroke: var(--textcolor-80contrast); stroke-width: 4; stroke-linecap: round; }
.sz-svg-seil { stroke: var(--textcolor-fullcontrast); stroke-width: 2.4; stroke-linecap: round; }
.sz-svg-knoten { fill: var(--textcolor-fullcontrast); }
.sz-svg-last { fill: rgb(var(--chart-orange-rgb)); }
.sz-svg-text { font: italic 600 13px KaTeX_Math, Georgia, serif; fill: var(--textcolor-fullcontrast); }
.sz-svg-hilf { stroke: var(--textcolor-80contrast); stroke-width: 1.2; stroke-dasharray: 5 4; }
.sz-svg-bogen { fill: none; stroke: var(--textcolor-80contrast); stroke-width: 1.4; }
.sz-svg-nr { font: italic 600 13px KaTeX_Math, Georgia, serif; fill: var(--textcolor-80contrast); }
.sz-svg-g { font: italic 600 14px KaTeX_Math, Georgia, serif; fill: rgb(var(--chart-orange-rgb)); }
.scrolly-cell__art { display: block; margin-top: 0.15rem; }

/* Bühnen-Staffelung: In den Kapiteln 01 und 02 hat der Kräfteplan noch
   nichts zu sagen — dort bekommt das Tragwerk die volle Höhe. Ab Kapitel 03
   („Zusammensetzung") bleibt er stehen; vorher blendete er in Kapitel 04
   irrtümlich wieder aus (Review-Befund 2026-08-05). */
.sz.is-solo .scrolly-panel--chart { display: none; }
.sz .scrolly-panel--chart { animation: sz-panel-auf .4s ease both; }
@keyframes sz-panel-auf {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .sz .scrolly-panel--chart { animation: none; }
}
