/* ===== Kostenlose Werkzeuge · Sitzplan (28.10.2026) – nur /tools/sitzplan, nach tools.css einbinden =====
   Bühne in voller Breite (.wz-raster-breit): Namen „Noch ohne Platz“, Raum mit Tafel, Lehrertisch und Plätzen
   (Reihen, U-Form, Gruppentische), darunter die Einstellungen in zwei Karten. Breite Pläne scrollen INNERHALB
   des Raums (die Seite selbst nie, auch nicht bei 320 px). Druck: A4 quer, schwarz-weiß. Farben nur aus Variablen. */
.sp-inhalt{display:flex;flex-direction:column;gap:12px;min-width:0;padding:4px 0 0}

/* Namen ohne Platz */
.sp-pool{border:2px dashed var(--wz-ton-rand);border-radius:16px;padding:10px 12px 12px;background:var(--bg);min-width:0}
.sp-pool.sp-ueber{border-color:var(--wz-fokus)}
.sp-pool-titel{display:flex;align-items:center;gap:6px;margin:0 0 8px;font-weight:700;color:var(--text)}
.sp-pool-titel .ico{width:1.2em;height:1.2em;color:var(--wz-gut-text);flex:0 0 auto}
.sp-pool > .sp-pool-titel:last-child{margin-bottom:0}
.sp-pool-leer{margin:0 0 8px;color:var(--text-leicht)}
.sp-pool-namen{display:flex;flex-wrap:wrap;gap:6px}
.sp-name{cursor:grab;max-width:100%;overflow-wrap:anywhere}
.sp-status{margin:0;font-size:.95rem;line-height:1.45;color:var(--text-leicht)}
.sp-status:empty{display:none}
.sp-auswahl-knoepfe:not(:has(button:not([hidden]))){display:none}

/* Raum */
.sp-raum{overflow-x:auto;min-width:0;padding:6px 2px 10px;-webkit-overflow-scrolling:touch}
.sp-plan{width:max-content;margin:0 auto;display:flex;flex-direction:column;gap:12px}
.sp-vorn{display:flex;flex-direction:column;gap:8px}
.sp-tafel{align-self:center;width:min(100%,22rem);min-width:10rem;padding:6px 10px;border-radius:8px;border:2px solid var(--wz-ton-text);
  background:var(--wz-ton);color:var(--wz-ton-text);font-family:'Baloo 2',system-ui,sans-serif;font-weight:800;letter-spacing:.08em;text-transform:uppercase;text-align:center}
.sp-pult-zeile{display:flex;justify-content:center}
.sp-pult-zeile.sp-pult-links{justify-content:flex-start}
.sp-pult-zeile.sp-pult-rechts{justify-content:flex-end}
.sp-pult{display:inline-flex;align-items:center;min-height:36px;padding:4px 14px;border-radius:10px;border:2px solid var(--wz-warm-rand);background:var(--wz-warm);
  color:var(--wz-warm-text);font-weight:700;font-size:.92rem}
.sp-sitze{display:flex;flex-direction:column;gap:10px}
.sp-zeile{display:flex;align-items:flex-start;justify-content:center;gap:clamp(12px,2.6vw,28px)}
.sp-u-seite{justify-content:space-between}
.sp-u-seite .sp-fuell{flex:1 1 auto;min-width:2rem}
.sp-gruppen{display:grid;grid-template-columns:repeat(var(--sp-spalten,3),max-content);gap:22px 28px;justify-content:center}
.sp-tisch{display:flex;gap:4px;padding:5px;border-radius:12px;background:var(--wz-ton);border:1px solid var(--wz-ton-rand)}
.sp-gruppe{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px;border-radius:16px;background:var(--bg);border:1px solid var(--rand)}
.sp-gruppe-reihe{display:flex;gap:4px;min-height:4px}
.sp-gruppe-tisch{align-self:stretch;display:grid;place-items:center;min-height:28px;border-radius:10px;background:var(--wz-ton);border:1px solid var(--wz-ton-rand);
  color:var(--wz-ton-text);font-weight:800;font-size:.85rem}

/* Platz */
.sp-platz{display:flex;align-items:center;justify-content:center;width:5.6rem;min-height:52px;margin:0;padding:4px 6px;border:2px solid var(--wz-feldrand);border-radius:10px;
  background:var(--weiss);color:var(--text);font-family:'Baloo 2',system-ui,sans-serif;font-weight:700;font-size:.98rem;line-height:1.15;text-align:center;
  overflow-wrap:break-word;hyphens:auto;cursor:pointer;transition:background .15s ease,border-color .15s ease}
.sp-platz-name{min-width:0;max-width:100%;overflow-wrap:anywhere;hyphens:auto}
.sp-platz.sp-lang{font-size:.86rem}
.sp-platz.sp-sehr-lang{font-size:.78rem}
.sp-platz:hover{border-color:var(--blau)}
.sp-platz.sp-frei{border-style:dashed}
.sp-frei-text{color:var(--text-leicht);font-family:'Nunito',system-ui,sans-serif;font-weight:600;font-size:.85rem}
.sp-platz.sp-belegt{cursor:grab}
.sp-platz.sp-ziel.sp-frei{border-color:var(--blau);border-style:solid}
.sp-platz[aria-pressed="true"]{background:#2F6A91;border-color:#2F6A91;color:#fff}
.sp-ueber{outline:3px dashed var(--wz-fokus);outline-offset:2px}
.sp-zieht{opacity:.55}
.sp-wisch{margin:-4px 0 0}
/* Handy: Plan auf die Breite stauchen (Plätze teilen sich die Breite); erst wenn auch das nicht reicht, scrollt der Raum */
@media (max-width:600px){
  .sp-buehne{padding-left:10px;padding-right:10px}
  .sp-raum{padding-left:0;padding-right:0}
  .sp-plan{width:100%;min-width:min-content}
  .sp-zeile{gap:6px}
  .sp-sitze{gap:8px}
  .sp-tisch{padding:3px;gap:3px;min-width:0}
  .sp-reihe .sp-tisch{flex:1 1 0}
  .sp-platz{width:auto;flex:1 1 0;min-width:44px;padding:3px 2px;font-size:.84rem;border-radius:8px}
  .sp-platz.sp-lang{font-size:.74rem}
  .sp-platz.sp-sehr-lang{font-size:.68rem}
  .sp-u-seite .sp-platz{flex:none;width:3.9rem}
  .sp-u-hinten .sp-tisch{flex:1 1 auto}
  .sp-gruppen{grid-template-columns:repeat(var(--sp-spalten,3),minmax(min-content,1fr));gap:10px 8px}
  .sp-gruppe{padding:4px;align-items:stretch}
  .sp-gruppe-reihe{gap:3px}
  .sp-frei-text{font-size:.78rem}
}

/* Steuerung */
.sp-steuer .wz-knopf-haupt{min-width:12em}
.sp-buehne .wz-meldung{text-align:center}

/* Einstellungen unter der Bühne: zwei Karten nebeneinander ab 900 px */
.sp-einstellungen{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}
@media (min-width:900px){.sp-einstellungen{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.sp-einstellungen .wz-karte + .wz-karte{margin-top:0}
.sp-wahl{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,6.5rem),1fr));gap:8px;margin:0 0 12px}
.sp-felder{display:flex;flex-direction:column;gap:12px;margin:0 0 12px}
.sp-stepper-zeile{display:flex;align-items:center;gap:8px}
.wz-seite .sp-stepper-zeile input[type="number"]{width:4.6em}
.sp-feld-titel{display:block;font-weight:700;color:var(--text);margin:0 0 6px}
.sp-plaetze-zeile{margin:0;font-weight:700;color:var(--wz-ton-text)}
.sp-plaetze-zeile.wz-warn{color:var(--wz-warn-text)}
#spPassend{margin-top:8px}
.sp-titel-feld input{width:100%}

/* Großansicht (Beamer): Plan groß, Bearbeiten ausgeblendet. --sp-skala-b (Breite) und --sp-skala-h (Höhe), je 1 … 0,4,
   setzt sitzplan.js (einpassen), damit breite oder tiefe Räume ohne Scrollen ganz zu sehen sind; die Schrift folgt dem
   kleineren Wert, Plätze bleiben mindestens 44 px groß (Prüfung 29.10.). */
.wz-buehne.wz-gross .sp-inhalt{justify-content:center;flex:1 1 auto}
.wz-buehne.wz-gross .sp-platz{width:max(44px,calc(clamp(5.6rem,8.5vw,11rem) * var(--sp-skala-b,1)));min-height:max(44px,calc(clamp(52px,7vh,96px) * var(--sp-skala-h,1)));
  font-size:max(.8rem,calc(clamp(1rem,1.5vw,1.8rem) * min(var(--sp-skala-b,1),var(--sp-skala-h,1))))}
.wz-buehne.wz-gross .sp-platz.sp-lang,.wz-buehne.wz-gross .sp-platz.sp-sehr-lang{font-size:max(.72rem,calc(clamp(.85rem,1.15vw,1.4rem) * min(var(--sp-skala-b,1),var(--sp-skala-h,1))))}
.wz-buehne.wz-gross .sp-zeile{gap:calc(clamp(12px,2.6vw,28px) * var(--sp-skala-b,1))}
.wz-buehne.wz-gross .sp-sitze{gap:calc(10px * var(--sp-skala-h,1))}
.wz-buehne.wz-gross .sp-gruppen{gap:calc(22px * var(--sp-skala-h,1)) calc(28px * var(--sp-skala-b,1))}
.wz-buehne.wz-gross .sp-vorn{gap:calc(8px * var(--sp-skala-h,1))}
.wz-buehne.wz-gross .sp-tafel{font-size:max(.9rem,calc(clamp(1rem,1.5vw,1.6rem) * var(--sp-skala-h,1)));width:min(100%,32rem)}
.wz-buehne.wz-gross .sp-pult{font-size:max(.85rem,calc(clamp(.95rem,1.3vw,1.4rem) * var(--sp-skala-h,1)))}

/* Druck: A4 quer, schwarz-weiß; Größe der Plätze nach Zahl je Zeile (--sp-n) und Zeilen (--sp-z) */
@media print{
  @page{size:A4 landscape;margin:10mm}
  .wz-kopf,.sp-pool,.sp-status,.sp-auswahl-knoepfe,.sp-steuer,.sp-wisch,.sp-buehne .wz-meldung{display:none!important}
  .sp-buehne .sp-druck-kopf{font-family:'Baloo 2',system-ui,sans-serif;font-weight:800;font-size:18pt;line-height:1.2;margin:0;color:#000}
  .sp-buehne .sp-druck-unter{font-size:9pt;margin:0 0 4mm;color:#000}
  .sp-buehne .sp-druck-ohne{font-size:10pt;margin:4mm 0 0;color:#000}
  .sp-inhalt{gap:0;padding:0}
  .sp-raum{overflow:visible!important;padding:0}
  .sp-plan{gap:4mm}
  .sp-sitze{gap:2mm}
  .sp-zeile{gap:5mm}
  .sp-tisch,.sp-gruppe-tisch{background:#fff!important;border:1pt solid #000!important;color:#000!important}
  .sp-tisch{padding:1mm;gap:1mm}
  .sp-gruppe{background:#fff!important;border:.8pt dashed #000!important;padding:1.5mm;border-radius:3mm;gap:1mm}
  .sp-gruppen{gap:4mm 6mm}
  .sp-platz{width:min(34mm,calc(200mm / var(--sp-n,8)));min-height:min(16mm,calc(105mm / var(--sp-z,6)));border:1.2pt solid #000!important;border-style:solid!important;
    background:#fff!important;color:#000!important;font-size:12pt;padding:1mm}
  .sp-platz.sp-lang{font-size:10pt}
  /* Tiefe Räume (mehr als 8 Zeilen, z. B. U-Form ab 8 je Seite, viele Reihen): kompakter, damit alles auf eine Seite passt
     (Prüfung 29.10.: U-Form mit 28 Namen lief sonst auf zwei Seiten) */
  .sp-tief .sp-platz{min-height:max(6mm,calc(128mm / var(--sp-z,9) - 5mm));font-size:9pt;padding:.5mm 1mm}
  .sp-tief .sp-sitze,.sp-tief .sp-vorn{gap:1.5mm}
  .sp-tief .sp-tafel{padding:1mm 3mm;font-size:10pt}
  .sp-tief .sp-pult{min-height:0;padding:.6mm 3mm;font-size:9pt}
  .sp-platz.sp-sehr-lang,.sp-breit .sp-platz{font-size:8pt}
  .sp-sehr-breit .sp-platz{font-size:6.5pt}
  .sp-frei-text{visibility:hidden}
  .sp-tafel,.sp-pult{background:#fff!important;color:#000!important;border:1.5pt solid #000!important}
}
