/* Kartenseite: was das Design System Kartenbüro nicht abdeckt (Schritt M2 Punkt 1). Nur Variablen aus kartenbuero.css (tokens.json),
   keine eigenen Farben. Steht nach kartenbuero.css; die Farben des Veranstalters setzt der Server im Kopf der Seite. */

/* Saalplan: seatmap.js bleibt unverändert und setzt platz, <Zustand>, gewaehlt, zusatz-markiert, reihe, reihe-text, platz-text,
   buehne, buehne-text, saalplan-svg (die hb-Klassen gelten nur mit hb.css). Werte wie .kb-sitz im Baustein Saalplan. */
.saalplan-svg { display: block; width: 100%; max-width: 640px; height: auto; margin: 0 auto; }
.reihe.inaktiv { opacity: 0.5; }
.platz { cursor: pointer; }
.platz rect, .platz circle { stroke-width: 1.5; }
.platz.frei rect, .platz.frei circle { fill: var(--sitz-frei); stroke: var(--sitz-frei-rand); }
.platz.frei:hover rect, .platz.frei:hover circle { stroke-width: 3; }
.platz-text { font: 600 10px var(--font-text); fill: var(--tinte); pointer-events: none; }
.platz-text.klein { font-size: 7.5px; }
.platz.belegt, .platz.gehalten, .platz.gesperrt, .platz.reserviert, .platz.bezahlt, .platz.haus, .platz.zusatz, .platz.inaktiv { cursor: default; }
.platz.belegt rect, .platz.belegt circle, .platz.gehalten rect, .platz.gehalten circle, .platz.gesperrt rect, .platz.gesperrt circle,
.platz.reserviert rect, .platz.reserviert circle, .platz.bezahlt rect, .platz.bezahlt circle, .platz.haus rect, .platz.haus circle,
.platz.zusatz rect, .platz.zusatz circle, .platz.inaktiv rect, .platz.inaktiv circle { fill: var(--sitz-vergeben); stroke: var(--sitz-vergeben-rand); stroke-width: 1; }
.platz.belegt .platz-text, .platz.gehalten .platz-text, .platz.gesperrt .platz-text, .platz.reserviert .platz-text, .platz.bezahlt .platz-text,
.platz.haus .platz-text, .platz.zusatz .platz-text, .platz.inaktiv .platz-text { display: none; }
.platz.zusatz-markiert rect, .platz.zusatz-markiert circle { stroke-dasharray: 3 2; }
.platz.gewaehlt rect, .platz.gewaehlt circle { fill: var(--sitz-gewaehlt); stroke: var(--sitz-gewaehlt-rand); stroke-width: 2.5; }
.platz.gewaehlt .platz-text { display: inline; fill: var(--auf-sitz-gewaehlt); font-weight: 800; }
.platz:focus-visible { outline: none; box-shadow: none; }
.platz:focus-visible rect, .platz:focus-visible circle { stroke: var(--fokus); stroke-width: 3; }
.buehne { fill: var(--buehne); }
.buehne-text { fill: var(--auf-buehne); font: 700 11px var(--font-text); letter-spacing: 0.24em; }
.reihe-text { fill: var(--tinte-leise); font: 700 11px var(--font-text); }
.reihe-text.preis-text { font-weight: 400; }
.slot { display: none; }   /* Plus-Felder gibt es nur im Saalplan-Editor */

/* Bot-Falle: Menschen sehen das Feld nicht, Skripte füllen es aus */
.nichtausfuellen { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Karten, Texte und Abstände der Seiten */
.kb-karte p { margin: 0 0 var(--abstand-3); }
.kb-karte .kb-meldung { margin-bottom: var(--abstand-3); }
.kb-saal + .kb-legende, .kb-anzahl + .kb-saal { margin-top: var(--abstand-3); }
.kb-formular p { margin: 0; }
.kb-kontakt { margin: var(--abstand-5) 0 0; }
.kb-termine + .kb-kontakt, .kb-meldung + .kb-kontakt { margin-top: var(--abstand-5); }
.kb-vorstellung .kb-marke + .kb-marke { margin-left: var(--abstand-2); }
.kb-lauftext { max-width: var(--billett-max); }
.kb-lauftext__text { white-space: pre-line; margin: 0 0 var(--abstand-4); }
.kb-bestaetigung > .kb-meldung { max-width: var(--billett-max); margin-bottom: var(--abstand-4); }
.kb-bestaetigung > .kb-meldung p { margin: 0; }
.kb-bestaetigung__texte { max-width: var(--billett-max); margin-top: var(--abstand-5); }
.kb-bestaetigung__texte p { margin: 0 0 var(--abstand-3); }
.kb-fuss__unten .kb-ueber { margin-left: auto; }
@media (max-width: 640px) {
  .kb-inhalt { padding: var(--abstand-5) var(--abstand-4) var(--abstand-7); }
  .kb-karte { padding: var(--abstand-4); }
  .kb-fuss__innen, .kb-fuss__unten { padding-left: var(--abstand-4); padding-right: var(--abstand-4); }
}
