/* dispolotse.de · LIVE page › „Händler live" › Aufbau = the dealer yard build panel (lane L5-HOFKARTE, 07.10.2026)
   Layout = the map lane's .lsz grid (live-szenen.css): tiles + sheet left, the yard picture right; phone: one column,
   an open sheet replaces the picture (no long scrolling). Below: the dealer-yard scene rules lifted from rd_grafik szenen.css. */
.lhk-unter { display: block; font-size: 12px; color: var(--matt); font-variant-numeric: tabular-nums; }
.lhk-kacheln { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); }
button.lhk-kachel { font: inherit; text-align: left; color: inherit; cursor: pointer; }
button.lhk-kachel:hover { border-color: var(--ton); }
button.lhk-kachel[aria-pressed="true"] { border-color: var(--ton); background: var(--tonhauch, var(--mulde)); }
button.lhk-kachel:focus-visible, .lhk-ort:focus-visible, .lhk-tasten button:focus-visible { outline: 2px solid var(--ton); outline-offset: 2px; }
.lhk-naechst { display: block; margin-top: 4px; font-size: 11.5px; color: var(--ton); line-height: 1.3; font-variant-numeric: tabular-nums; }
/* keyboard + screen readers: one real button per lot, visually hidden until focused (the SVG stays aria-hidden) */
.lhk-tasten { display: flex; flex-wrap: wrap; gap: 4px; }
.lhk-tasten button { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); border: 0; white-space: nowrap; }
.lhk-tasten button:focus { position: static; width: auto; height: auto; margin: 0; padding: 4px 10px; overflow: visible; clip: auto; font: inherit; font-size: 13px;
  border: 1px solid var(--ton); border-radius: 999px; background: var(--grund); color: var(--text); }
.lhk-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 6px; }
.lhk-chip { font-size: 12.5px; padding: 2px 9px; border-radius: 999px; border: 1px solid var(--rand); background: var(--mulde); color: var(--text); font-variant-numeric: tabular-nums; }
.lhk-chip-bau { border-color: var(--bild-lack-orange, var(--ton)); }
.lhk-chip-werk { border-color: var(--ton); }
.lhk-tank { margin: 8px 0 0; font-size: 13.5px; font-variant-numeric: tabular-nums; }
.lhk-chip-pumpt { border-color: var(--ton); color: var(--ton); margin-left: 6px; }
.lhk-h { margin: 10px 0 0; font-size: 13px; color: var(--matt); font-weight: 600; }
.lhk-zeilen li { grid-template-columns: minmax(0, 1fr) auto; }
.lhk-z-text { min-width: 0; color: var(--text); }
.lhk-z-ca { color: var(--matt); font-size: 12.5px; text-align: right; }
.lhk-z-rest { grid-column: 1 / 3; color: var(--ton); font-size: 12px; font-variant-numeric: tabular-nums; }
.lhk-orte { list-style: none; margin: 8px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 6px; }
.lhk-ort { width: 100%; font: inherit; font-size: 13px; text-align: left; display: flex; flex-direction: column; gap: 1px; padding: 6px 10px;
  border-radius: 10px; border: 1px solid var(--rand); background: var(--mulde); color: var(--text); cursor: pointer; }
.lhk-ort span { color: var(--matt); font-size: 12px; font-variant-numeric: tabular-nums; }
.lhk-ort:hover { border-color: var(--ton); }
.lhk-bild .sz-bild { max-height: 400px; }
@media (max-width: 760px) {
  .lhk-kacheln { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .lhk-kacheln .lsz-kachel { padding: 8px; }
  .lhk-kacheln .lsz-kachel b { font-size: 20px; }
  .lhk-kacheln .lsz-kachel span { font-size: 11.5px; }
  .lhk-bild .sz-bild { max-height: 300px; }
  .lhk-orte { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lhk-zeilen li { grid-template-columns: minmax(0, 1fr); gap: 1px; }
  .lhk-z-ca { text-align: left; }
  .lhk-z-rest { grid-column: 1; }
}

/* HP1-FINAL 07.10.2026 (Marco P3 „2"): the lots Schauraum / Waschanlage / Einfahrt (tor) have no public rows today → hidden until the
   server delivers public data. live-hofkarte.js sets lhk-aus-<lot> on the picture only while the lot has no row; every
   part of that lot goes (building states, ring, hit area, plates, slot texts) — the yard ground stays, no hole. */
.lhk-bild.lhk-aus-schauraum .sz-ah-schauraum, .lhk-bild.lhk-aus-schauraum .sz-ah-ring-schauraum, .lhk-bild.lhk-aus-schauraum .sz-ah-hit-schauraum, .lhk-bild.lhk-aus-schauraum [data-platz="schauraum"], .lhk-bild.lhk-aus-schauraum [data-slot="anzahl-schauraum"], .lhk-bild.lhk-aus-schauraum [data-slot="bau-schauraum"] { display: none !important; }
.lhk-bild.lhk-aus-waschanlage .sz-ah-waschanlage, .lhk-bild.lhk-aus-waschanlage .sz-ah-ring-waschanlage, .lhk-bild.lhk-aus-waschanlage .sz-ah-hit-waschanlage, .lhk-bild.lhk-aus-waschanlage [data-platz="waschanlage"], .lhk-bild.lhk-aus-waschanlage [data-slot="anzahl-waschanlage"], .lhk-bild.lhk-aus-waschanlage [data-slot="bau-waschanlage"] { display: none !important; }
.lhk-bild.lhk-aus-tor .sz-ah-tor, .lhk-bild.lhk-aus-tor .sz-ah-ring-tor, .lhk-bild.lhk-aus-tor .sz-ah-hit-tor, .lhk-bild.lhk-aus-tor [data-platz="tor"], .lhk-bild.lhk-aus-tor [data-slot="anzahl-tor"], .lhk-bild.lhk-aus-tor [data-slot="bau-tor"] { display: none !important; }

/* HP4-FUNDE 07.10.2026 (pre-walk #6, Marco 12:54 „echt nicht schön“): the OLD build-up band of karte.js („Wie weit ist der
   Händler aufgebaut“ — ring, dot row, plants) above the dealer tabs duplicates the NEW yard card of the „Aufbau“ tab.
   Public HP only (this file is loaded by live.html alone); karte.js keeps drawing it, it is just not shown. */
#live .lk-aufbauband { display: none !important; }

/* HP9-WUENSCHE 07.10.2026 (Marco 12:35 „man kann fast nichts lesen“): the small texts of the live page one step bigger —
   dealer tab chips, tile captions of the scenes and the yard card, its countdown lines, the new workshop countdown (live-szenen.js
   .lsz-uhr, Marco 13:04). Public HP only (this file is loaded by live.html alone). */
body .l1b-live .live-reiter button { font-size: 14.5px; }
body .lsz-kachel span, body .lhk-kacheln .lsz-kachel span { font-size: 14px; }
body .lhk-kachel small, body .lhk-naechst { font-size: 13.5px; }
body .lsz-kachel .lsz-uhr { display: block; margin-top: 4px; font-size: 13.5px; line-height: 1.3; color: var(--ton); font-variant-numeric: tabular-nums; white-space: nowrap; }   /* HP10-LETZTE: one line at 390 */
@media (max-width: 480px) { body .lsz-kachel .lsz-uhr { font-size: 12.5px; } }   /* HP10-LETZTE: fits a 390 tile (12 h 50 min too) */

/* ── dealer-yard scene rules, lifted verbatim from rd_grafik szenen/szenen.css by hof_ziehen.py (137 lines; contract HOOKS.md „buehne_haendlerhof_aufbau") ── */
/* ── Paket 6 (07.10.) — buehne_haendlerhof_aufbau, generated by _quelle/bauen.py css_paket6(); edit there. Contract: HOOKS.md ── */
.sz-ah-aus { display: none; }
.sz-ah-losrand { fill: none; stroke: var(--bild-zier); stroke-opacity: .32; stroke-width: .6; stroke-dasharray: 3 3; }
.sz-ah-strasse { fill: var(--bild-reifen-tief); fill-opacity: .75; }
.sz-ah-kies { fill: var(--bild-erde, var(--bild-reifen)); fill-opacity: .45; }
.sz-ah-leerrand { fill: none; stroke: var(--bild-leuchte); stroke-opacity: .7; stroke-width: .8; stroke-dasharray: 4 3; }
.sz-ah-ringspur { fill: none; stroke: var(--bild-zier); stroke-opacity: .25; stroke-width: 1.7; }
.sz-ah-ring { fill: none; stroke: var(--bild-leuchte); stroke-width: 1.7; stroke-linecap: round; stroke-dasharray: 1 1; transition: stroke-dashoffset .5s ease; }
.sz-ah-zahl { font-size: 8.5px; }
.sz-ah-bauplatte { stroke: var(--bild-lack-orange); }
.sz-ah-bauzeichen { fill: none; stroke: var(--bild-lack-orange); stroke-width: 1.1; stroke-linecap: round; }
svg[class*="haendlerhof_aufbau"] * { pointer-events: none; }
svg[class*="haendlerhof_aufbau"] .sz-ah-klick, svg[class*="haendlerhof_aufbau"] .sz-ah-klick * { pointer-events: auto; cursor: pointer; }
.sz-ah-hit { fill: var(--bild-leuchte); fill-opacity: 0; stroke: var(--bild-leuchte); stroke-opacity: 0; stroke-width: 1; transition: fill-opacity .2s ease, stroke-opacity .2s ease; }
.sz-ah-hit:hover, .sz-ah-hit:focus-visible { fill-opacity: .07; stroke-opacity: .55; outline: none; }
.mit-zahlen .sz-ah-teil, .mit-zahlen .sz-ah-schild, .mit-zahlen .sz-ah-bauschild { display: none; }
.mit-zahlen .sz-ah-werk { filter: brightness(.5) saturate(.35); }
.mit-zahlen .sz-ah-voll .sz-werk-fertig { display: none; }
.sz-ah-werk { transition: filter .4s ease; }
svg.sz-mobil[class*="haendlerhof_aufbau"] .sz-ah-schild { transform-box: fill-box; transform-origin: 50% 100%; transform: scale(2.1); } svg.sz-mobil[class*="haendlerhof_aufbau"] .sz-ah-ring, svg.sz-mobil[class*="haendlerhof_aufbau"] .sz-ah-ringspur { display: none; } svg.sz-mobil[class*="haendlerhof_aufbau"] .sz-ah-zahl { transform: translateX(-4px); } .mit-zahlen svg.sz-mobil[class*="haendlerhof_aufbau"] .sz-ah-bauschild, svg.sz-mobil[class*="haendlerhof_aufbau"] .sz-ah-bauschild { display: none !important; }
@media (prefers-reduced-motion: reduce) { .sz-ah-ring, .sz-ah-hit { transition: none; } }
.platz-werk_lkw-fertig .sz-ah-werk_lkw.sz-ah-voll, .platz-werk_lkw-bau:not(.platz-werk_lkw-fertig) .sz-ah-werk_lkw.sz-ah-roh, .platz-werk_lkw-fertig.platz-werk_lkw-bau .sz-ah-werk_lkw.sz-ah-anbau, .platz-werk_lkw-leer .sz-ah-werk_lkw.sz-ah-leer, .platz-werk_lkw-fertig .sz-ah-schild.sz-ah-werk_lkw, .platz-werk_lkw-bau .sz-ah-schild.sz-ah-werk_lkw, .platz-werk_lkw-bau .sz-ah-bauschild.sz-ah-werk_lkw { display: inline; }
.gewaehlt-werk_lkw .sz-ah-hit-werk_lkw { fill-opacity: .1; stroke-opacity: .8; } .platz-werk_lkw-bau .sz-ah-schild.sz-ah-werk_lkw .sz-slotplatte { stroke: var(--bild-lack-orange); }
.platz-1-fertig .sz-ah-werk_lkw.sz-ah-voll, .platz-1-bau:not(.platz-1-fertig) .sz-ah-werk_lkw.sz-ah-roh, .platz-1-fertig.platz-1-bau .sz-ah-werk_lkw.sz-ah-anbau, .platz-1-leer .sz-ah-werk_lkw.sz-ah-leer, .platz-1-fertig .sz-ah-schild.sz-ah-werk_lkw, .platz-1-bau .sz-ah-schild.sz-ah-werk_lkw, .platz-1-bau .sz-ah-bauschild.sz-ah-werk_lkw { display: inline; }
.gewaehlt-1 .sz-ah-hit-werk_lkw { fill-opacity: .1; stroke-opacity: .8; } .platz-1-bau .sz-ah-schild.sz-ah-werk_lkw .sz-slotplatte { stroke: var(--bild-lack-orange); }
.sz-ah-ring-werk_lkw { stroke-dashoffset: calc(1 - var(--platz-werk_lkw-anteil, 1)); }
.platz-werk_auflieger-fertig .sz-ah-werk_auflieger.sz-ah-voll, .platz-werk_auflieger-bau:not(.platz-werk_auflieger-fertig) .sz-ah-werk_auflieger.sz-ah-roh, .platz-werk_auflieger-fertig.platz-werk_auflieger-bau .sz-ah-werk_auflieger.sz-ah-anbau, .platz-werk_auflieger-leer .sz-ah-werk_auflieger.sz-ah-leer, .platz-werk_auflieger-fertig .sz-ah-schild.sz-ah-werk_auflieger, .platz-werk_auflieger-bau .sz-ah-schild.sz-ah-werk_auflieger, .platz-werk_auflieger-bau .sz-ah-bauschild.sz-ah-werk_auflieger { display: inline; }
.gewaehlt-werk_auflieger .sz-ah-hit-werk_auflieger { fill-opacity: .1; stroke-opacity: .8; } .platz-werk_auflieger-bau .sz-ah-schild.sz-ah-werk_auflieger .sz-slotplatte { stroke: var(--bild-lack-orange); }
.platz-2-fertig .sz-ah-werk_auflieger.sz-ah-voll, .platz-2-bau:not(.platz-2-fertig) .sz-ah-werk_auflieger.sz-ah-roh, .platz-2-fertig.platz-2-bau .sz-ah-werk_auflieger.sz-ah-anbau, .platz-2-leer .sz-ah-werk_auflieger.sz-ah-leer, .platz-2-fertig .sz-ah-schild.sz-ah-werk_auflieger, .platz-2-bau .sz-ah-schild.sz-ah-werk_auflieger, .platz-2-bau .sz-ah-bauschild.sz-ah-werk_auflieger { display: inline; }
.gewaehlt-2 .sz-ah-hit-werk_auflieger { fill-opacity: .1; stroke-opacity: .8; } .platz-2-bau .sz-ah-schild.sz-ah-werk_auflieger .sz-slotplatte { stroke: var(--bild-lack-orange); }
.sz-ah-ring-werk_auflieger { stroke-dashoffset: calc(1 - var(--platz-werk_auflieger-anteil, 1)); }
.platz-lager-fertig .sz-ah-lager.sz-ah-voll, .platz-lager-bau:not(.platz-lager-fertig) .sz-ah-lager.sz-ah-roh, .platz-lager-fertig.platz-lager-bau .sz-ah-lager.sz-ah-anbau, .platz-lager-leer .sz-ah-lager.sz-ah-leer, .platz-lager-fertig .sz-ah-schild.sz-ah-lager, .platz-lager-bau .sz-ah-schild.sz-ah-lager, .platz-lager-bau .sz-ah-bauschild.sz-ah-lager { display: inline; }
.gewaehlt-lager .sz-ah-hit-lager { fill-opacity: .1; stroke-opacity: .8; } .platz-lager-bau .sz-ah-schild.sz-ah-lager .sz-slotplatte { stroke: var(--bild-lack-orange); }
.platz-3-fertig .sz-ah-lager.sz-ah-voll, .platz-3-bau:not(.platz-3-fertig) .sz-ah-lager.sz-ah-roh, .platz-3-fertig.platz-3-bau .sz-ah-lager.sz-ah-anbau, .platz-3-leer .sz-ah-lager.sz-ah-leer, .platz-3-fertig .sz-ah-schild.sz-ah-lager, .platz-3-bau .sz-ah-schild.sz-ah-lager, .platz-3-bau .sz-ah-bauschild.sz-ah-lager { display: inline; }
.gewaehlt-3 .sz-ah-hit-lager { fill-opacity: .1; stroke-opacity: .8; } .platz-3-bau .sz-ah-schild.sz-ah-lager .sz-slotplatte { stroke: var(--bild-lack-orange); }
.sz-ah-ring-lager { stroke-dashoffset: calc(1 - var(--platz-lager-anteil, 1)); }
.platz-schauraum-fertig .sz-ah-schauraum.sz-ah-voll, .platz-schauraum-bau:not(.platz-schauraum-fertig) .sz-ah-schauraum.sz-ah-roh, .platz-schauraum-fertig.platz-schauraum-bau .sz-ah-schauraum.sz-ah-anbau, .platz-schauraum-leer .sz-ah-schauraum.sz-ah-leer, .platz-schauraum-fertig .sz-ah-schild.sz-ah-schauraum, .platz-schauraum-bau .sz-ah-schild.sz-ah-schauraum, .platz-schauraum-bau .sz-ah-bauschild.sz-ah-schauraum { display: inline; }
.gewaehlt-schauraum .sz-ah-hit-schauraum { fill-opacity: .1; stroke-opacity: .8; } .platz-schauraum-bau .sz-ah-schild.sz-ah-schauraum .sz-slotplatte { stroke: var(--bild-lack-orange); }
.platz-4-fertig .sz-ah-schauraum.sz-ah-voll, .platz-4-bau:not(.platz-4-fertig) .sz-ah-schauraum.sz-ah-roh, .platz-4-fertig.platz-4-bau .sz-ah-schauraum.sz-ah-anbau, .platz-4-leer .sz-ah-schauraum.sz-ah-leer, .platz-4-fertig .sz-ah-schild.sz-ah-schauraum, .platz-4-bau .sz-ah-schild.sz-ah-schauraum, .platz-4-bau .sz-ah-bauschild.sz-ah-schauraum { display: inline; }
.gewaehlt-4 .sz-ah-hit-schauraum { fill-opacity: .1; stroke-opacity: .8; } .platz-4-bau .sz-ah-schild.sz-ah-schauraum .sz-slotplatte { stroke: var(--bild-lack-orange); }
.sz-ah-ring-schauraum { stroke-dashoffset: calc(1 - var(--platz-schauraum-anteil, 1)); }
.platz-buero-fertig .sz-ah-buero.sz-ah-voll, .platz-buero-bau:not(.platz-buero-fertig) .sz-ah-buero.sz-ah-roh, .platz-buero-fertig.platz-buero-bau .sz-ah-buero.sz-ah-anbau, .platz-buero-leer .sz-ah-buero.sz-ah-leer, .platz-buero-fertig .sz-ah-schild.sz-ah-buero, .platz-buero-bau .sz-ah-schild.sz-ah-buero, .platz-buero-bau .sz-ah-bauschild.sz-ah-buero { display: inline; }
.gewaehlt-buero .sz-ah-hit-buero { fill-opacity: .1; stroke-opacity: .8; } .platz-buero-bau .sz-ah-schild.sz-ah-buero .sz-slotplatte { stroke: var(--bild-lack-orange); }
.platz-5-fertig .sz-ah-buero.sz-ah-voll, .platz-5-bau:not(.platz-5-fertig) .sz-ah-buero.sz-ah-roh, .platz-5-fertig.platz-5-bau .sz-ah-buero.sz-ah-anbau, .platz-5-leer .sz-ah-buero.sz-ah-leer, .platz-5-fertig .sz-ah-schild.sz-ah-buero, .platz-5-bau .sz-ah-schild.sz-ah-buero, .platz-5-bau .sz-ah-bauschild.sz-ah-buero { display: inline; }
.gewaehlt-5 .sz-ah-hit-buero { fill-opacity: .1; stroke-opacity: .8; } .platz-5-bau .sz-ah-schild.sz-ah-buero .sz-slotplatte { stroke: var(--bild-lack-orange); }
.sz-ah-ring-buero { stroke-dashoffset: calc(1 - var(--platz-buero-anteil, 1)); }
.platz-werkstatt_halle-fertig .sz-ah-werkstatt_halle.sz-ah-voll, .platz-werkstatt_halle-bau:not(.platz-werkstatt_halle-fertig) .sz-ah-werkstatt_halle.sz-ah-roh, .platz-werkstatt_halle-fertig.platz-werkstatt_halle-bau .sz-ah-werkstatt_halle.sz-ah-anbau, .platz-werkstatt_halle-leer .sz-ah-werkstatt_halle.sz-ah-leer, .platz-werkstatt_halle-fertig .sz-ah-schild.sz-ah-werkstatt_halle, .platz-werkstatt_halle-bau .sz-ah-schild.sz-ah-werkstatt_halle, .platz-werkstatt_halle-bau .sz-ah-bauschild.sz-ah-werkstatt_halle { display: inline; }
.gewaehlt-werkstatt_halle .sz-ah-hit-werkstatt_halle { fill-opacity: .1; stroke-opacity: .8; } .platz-werkstatt_halle-bau .sz-ah-schild.sz-ah-werkstatt_halle .sz-slotplatte { stroke: var(--bild-lack-orange); }
.platz-6-fertig .sz-ah-werkstatt_halle.sz-ah-voll, .platz-6-bau:not(.platz-6-fertig) .sz-ah-werkstatt_halle.sz-ah-roh, .platz-6-fertig.platz-6-bau .sz-ah-werkstatt_halle.sz-ah-anbau, .platz-6-leer .sz-ah-werkstatt_halle.sz-ah-leer, .platz-6-fertig .sz-ah-schild.sz-ah-werkstatt_halle, .platz-6-bau .sz-ah-schild.sz-ah-werkstatt_halle, .platz-6-bau .sz-ah-bauschild.sz-ah-werkstatt_halle { display: inline; }
.gewaehlt-6 .sz-ah-hit-werkstatt_halle { fill-opacity: .1; stroke-opacity: .8; } .platz-6-bau .sz-ah-schild.sz-ah-werkstatt_halle .sz-slotplatte { stroke: var(--bild-lack-orange); }
.sz-ah-ring-werkstatt_halle { stroke-dashoffset: calc(1 - var(--platz-werkstatt_halle-anteil, 1)); }
.platz-fahrerhaus-fertig .sz-ah-fahrerhaus.sz-ah-voll, .platz-fahrerhaus-bau:not(.platz-fahrerhaus-fertig) .sz-ah-fahrerhaus.sz-ah-roh, .platz-fahrerhaus-fertig.platz-fahrerhaus-bau .sz-ah-fahrerhaus.sz-ah-anbau, .platz-fahrerhaus-leer .sz-ah-fahrerhaus.sz-ah-leer, .platz-fahrerhaus-fertig .sz-ah-schild.sz-ah-fahrerhaus, .platz-fahrerhaus-bau .sz-ah-schild.sz-ah-fahrerhaus, .platz-fahrerhaus-bau .sz-ah-bauschild.sz-ah-fahrerhaus { display: inline; }
.gewaehlt-fahrerhaus .sz-ah-hit-fahrerhaus { fill-opacity: .1; stroke-opacity: .8; } .platz-fahrerhaus-bau .sz-ah-schild.sz-ah-fahrerhaus .sz-slotplatte { stroke: var(--bild-lack-orange); }
.platz-7-fertig .sz-ah-fahrerhaus.sz-ah-voll, .platz-7-bau:not(.platz-7-fertig) .sz-ah-fahrerhaus.sz-ah-roh, .platz-7-fertig.platz-7-bau .sz-ah-fahrerhaus.sz-ah-anbau, .platz-7-leer .sz-ah-fahrerhaus.sz-ah-leer, .platz-7-fertig .sz-ah-schild.sz-ah-fahrerhaus, .platz-7-bau .sz-ah-schild.sz-ah-fahrerhaus, .platz-7-bau .sz-ah-bauschild.sz-ah-fahrerhaus { display: inline; }
.gewaehlt-7 .sz-ah-hit-fahrerhaus { fill-opacity: .1; stroke-opacity: .8; } .platz-7-bau .sz-ah-schild.sz-ah-fahrerhaus .sz-slotplatte { stroke: var(--bild-lack-orange); }
.sz-ah-ring-fahrerhaus { stroke-dashoffset: calc(1 - var(--platz-fahrerhaus-anteil, 1)); }
.platz-waschanlage-fertig .sz-ah-waschanlage.sz-ah-voll, .platz-waschanlage-bau:not(.platz-waschanlage-fertig) .sz-ah-waschanlage.sz-ah-roh, .platz-waschanlage-fertig.platz-waschanlage-bau .sz-ah-waschanlage.sz-ah-anbau, .platz-waschanlage-leer .sz-ah-waschanlage.sz-ah-leer, .platz-waschanlage-fertig .sz-ah-schild.sz-ah-waschanlage, .platz-waschanlage-bau .sz-ah-schild.sz-ah-waschanlage, .platz-waschanlage-bau .sz-ah-bauschild.sz-ah-waschanlage { display: inline; }
.gewaehlt-waschanlage .sz-ah-hit-waschanlage { fill-opacity: .1; stroke-opacity: .8; } .platz-waschanlage-bau .sz-ah-schild.sz-ah-waschanlage .sz-slotplatte { stroke: var(--bild-lack-orange); }
.platz-8-fertig .sz-ah-waschanlage.sz-ah-voll, .platz-8-bau:not(.platz-8-fertig) .sz-ah-waschanlage.sz-ah-roh, .platz-8-fertig.platz-8-bau .sz-ah-waschanlage.sz-ah-anbau, .platz-8-leer .sz-ah-waschanlage.sz-ah-leer, .platz-8-fertig .sz-ah-schild.sz-ah-waschanlage, .platz-8-bau .sz-ah-schild.sz-ah-waschanlage, .platz-8-bau .sz-ah-bauschild.sz-ah-waschanlage { display: inline; }
.gewaehlt-8 .sz-ah-hit-waschanlage { fill-opacity: .1; stroke-opacity: .8; } .platz-8-bau .sz-ah-schild.sz-ah-waschanlage .sz-slotplatte { stroke: var(--bild-lack-orange); }
.sz-ah-ring-waschanlage { stroke-dashoffset: calc(1 - var(--platz-waschanlage-anteil, 1)); }
.platz-bautrupphaus-fertig .sz-ah-bautrupphaus.sz-ah-voll, .platz-bautrupphaus-bau:not(.platz-bautrupphaus-fertig) .sz-ah-bautrupphaus.sz-ah-roh, .platz-bautrupphaus-fertig.platz-bautrupphaus-bau .sz-ah-bautrupphaus.sz-ah-anbau, .platz-bautrupphaus-leer .sz-ah-bautrupphaus.sz-ah-leer, .platz-bautrupphaus-fertig .sz-ah-schild.sz-ah-bautrupphaus, .platz-bautrupphaus-bau .sz-ah-schild.sz-ah-bautrupphaus, .platz-bautrupphaus-bau .sz-ah-bauschild.sz-ah-bautrupphaus { display: inline; }
.gewaehlt-bautrupphaus .sz-ah-hit-bautrupphaus { fill-opacity: .1; stroke-opacity: .8; } .platz-bautrupphaus-bau .sz-ah-schild.sz-ah-bautrupphaus .sz-slotplatte { stroke: var(--bild-lack-orange); }
.platz-9-fertig .sz-ah-bautrupphaus.sz-ah-voll, .platz-9-bau:not(.platz-9-fertig) .sz-ah-bautrupphaus.sz-ah-roh, .platz-9-fertig.platz-9-bau .sz-ah-bautrupphaus.sz-ah-anbau, .platz-9-leer .sz-ah-bautrupphaus.sz-ah-leer, .platz-9-fertig .sz-ah-schild.sz-ah-bautrupphaus, .platz-9-bau .sz-ah-schild.sz-ah-bautrupphaus, .platz-9-bau .sz-ah-bauschild.sz-ah-bautrupphaus { display: inline; }
.gewaehlt-9 .sz-ah-hit-bautrupphaus { fill-opacity: .1; stroke-opacity: .8; } .platz-9-bau .sz-ah-schild.sz-ah-bautrupphaus .sz-slotplatte { stroke: var(--bild-lack-orange); }
.sz-ah-ring-bautrupphaus { stroke-dashoffset: calc(1 - var(--platz-bautrupphaus-anteil, 1)); }
.platz-hof-fertig .sz-ah-hof.sz-ah-voll, .platz-hof-bau:not(.platz-hof-fertig) .sz-ah-hof.sz-ah-roh, .platz-hof-fertig.platz-hof-bau .sz-ah-hof.sz-ah-anbau, .platz-hof-leer .sz-ah-hof.sz-ah-leer, .platz-hof-fertig .sz-ah-schild.sz-ah-hof, .platz-hof-bau .sz-ah-schild.sz-ah-hof, .platz-hof-bau .sz-ah-bauschild.sz-ah-hof { display: inline; }
.gewaehlt-hof .sz-ah-hit-hof { fill-opacity: .1; stroke-opacity: .8; } .platz-hof-bau .sz-ah-schild.sz-ah-hof .sz-slotplatte { stroke: var(--bild-lack-orange); }
.platz-10-fertig .sz-ah-hof.sz-ah-voll, .platz-10-bau:not(.platz-10-fertig) .sz-ah-hof.sz-ah-roh, .platz-10-fertig.platz-10-bau .sz-ah-hof.sz-ah-anbau, .platz-10-leer .sz-ah-hof.sz-ah-leer, .platz-10-fertig .sz-ah-schild.sz-ah-hof, .platz-10-bau .sz-ah-schild.sz-ah-hof, .platz-10-bau .sz-ah-bauschild.sz-ah-hof { display: inline; }
.gewaehlt-10 .sz-ah-hit-hof { fill-opacity: .1; stroke-opacity: .8; } .platz-10-bau .sz-ah-schild.sz-ah-hof .sz-slotplatte { stroke: var(--bild-lack-orange); }
.sz-ah-ring-hof { stroke-dashoffset: calc(1 - var(--platz-hof-anteil, 1)); }
.platz-tankstelle-fertig .sz-ah-tankstelle.sz-ah-voll, .platz-tankstelle-bau:not(.platz-tankstelle-fertig) .sz-ah-tankstelle.sz-ah-roh, .platz-tankstelle-fertig.platz-tankstelle-bau .sz-ah-tankstelle.sz-ah-anbau, .platz-tankstelle-leer .sz-ah-tankstelle.sz-ah-leer, .platz-tankstelle-fertig .sz-ah-schild.sz-ah-tankstelle, .platz-tankstelle-bau .sz-ah-schild.sz-ah-tankstelle, .platz-tankstelle-bau .sz-ah-bauschild.sz-ah-tankstelle { display: inline; }
.gewaehlt-tankstelle .sz-ah-hit-tankstelle { fill-opacity: .1; stroke-opacity: .8; } .platz-tankstelle-bau .sz-ah-schild.sz-ah-tankstelle .sz-slotplatte { stroke: var(--bild-lack-orange); }
.platz-11-fertig .sz-ah-tankstelle.sz-ah-voll, .platz-11-bau:not(.platz-11-fertig) .sz-ah-tankstelle.sz-ah-roh, .platz-11-fertig.platz-11-bau .sz-ah-tankstelle.sz-ah-anbau, .platz-11-leer .sz-ah-tankstelle.sz-ah-leer, .platz-11-fertig .sz-ah-schild.sz-ah-tankstelle, .platz-11-bau .sz-ah-schild.sz-ah-tankstelle, .platz-11-bau .sz-ah-bauschild.sz-ah-tankstelle { display: inline; }
.gewaehlt-11 .sz-ah-hit-tankstelle { fill-opacity: .1; stroke-opacity: .8; } .platz-11-bau .sz-ah-schild.sz-ah-tankstelle .sz-slotplatte { stroke: var(--bild-lack-orange); }
.sz-ah-ring-tankstelle { stroke-dashoffset: calc(1 - var(--platz-tankstelle-anteil, 1)); }
.platz-stellplatz-fertig .sz-ah-stellplatz.sz-ah-voll, .platz-stellplatz-bau:not(.platz-stellplatz-fertig) .sz-ah-stellplatz.sz-ah-roh, .platz-stellplatz-fertig.platz-stellplatz-bau .sz-ah-stellplatz.sz-ah-anbau, .platz-stellplatz-leer .sz-ah-stellplatz.sz-ah-leer, .platz-stellplatz-fertig .sz-ah-schild.sz-ah-stellplatz, .platz-stellplatz-bau .sz-ah-schild.sz-ah-stellplatz, .platz-stellplatz-bau .sz-ah-bauschild.sz-ah-stellplatz { display: inline; }
.gewaehlt-stellplatz .sz-ah-hit-stellplatz { fill-opacity: .1; stroke-opacity: .8; } .platz-stellplatz-bau .sz-ah-schild.sz-ah-stellplatz .sz-slotplatte { stroke: var(--bild-lack-orange); }
.platz-12-fertig .sz-ah-stellplatz.sz-ah-voll, .platz-12-bau:not(.platz-12-fertig) .sz-ah-stellplatz.sz-ah-roh, .platz-12-fertig.platz-12-bau .sz-ah-stellplatz.sz-ah-anbau, .platz-12-leer .sz-ah-stellplatz.sz-ah-leer, .platz-12-fertig .sz-ah-schild.sz-ah-stellplatz, .platz-12-bau .sz-ah-schild.sz-ah-stellplatz, .platz-12-bau .sz-ah-bauschild.sz-ah-stellplatz { display: inline; }
.gewaehlt-12 .sz-ah-hit-stellplatz { fill-opacity: .1; stroke-opacity: .8; } .platz-12-bau .sz-ah-schild.sz-ah-stellplatz .sz-slotplatte { stroke: var(--bild-lack-orange); }
.sz-ah-ring-stellplatz { stroke-dashoffset: calc(1 - var(--platz-stellplatz-anteil, 1)); }
.platz-tor-fertig .sz-ah-tor.sz-ah-voll, .platz-tor-bau:not(.platz-tor-fertig) .sz-ah-tor.sz-ah-roh, .platz-tor-fertig.platz-tor-bau .sz-ah-tor.sz-ah-anbau, .platz-tor-leer .sz-ah-tor.sz-ah-leer, .platz-tor-fertig .sz-ah-schild.sz-ah-tor, .platz-tor-bau .sz-ah-schild.sz-ah-tor, .platz-tor-bau .sz-ah-bauschild.sz-ah-tor { display: inline; }
.gewaehlt-tor .sz-ah-hit-tor { fill-opacity: .1; stroke-opacity: .8; } .platz-tor-bau .sz-ah-schild.sz-ah-tor .sz-slotplatte { stroke: var(--bild-lack-orange); }
.platz-13-fertig .sz-ah-tor.sz-ah-voll, .platz-13-bau:not(.platz-13-fertig) .sz-ah-tor.sz-ah-roh, .platz-13-fertig.platz-13-bau .sz-ah-tor.sz-ah-anbau, .platz-13-leer .sz-ah-tor.sz-ah-leer, .platz-13-fertig .sz-ah-schild.sz-ah-tor, .platz-13-bau .sz-ah-schild.sz-ah-tor, .platz-13-bau .sz-ah-bauschild.sz-ah-tor { display: inline; }
.gewaehlt-13 .sz-ah-hit-tor { fill-opacity: .1; stroke-opacity: .8; } .platz-13-bau .sz-ah-schild.sz-ah-tor .sz-slotplatte { stroke: var(--bild-lack-orange); }
.sz-ah-ring-tor { stroke-dashoffset: calc(1 - var(--platz-tor-anteil, 1)); }
.werk-werk_lkw-aktiv .sz-ah-werk-werk_lkw { filter: none; } .werk-werk_lkw-aktiv .sz-ah-werk_lkw .sz-werk-fertig { display: inline; }
.werk-1-aktiv .sz-ah-werk-werk_lkw { filter: none; } .werk-1-aktiv .sz-ah-werk_lkw .sz-werk-fertig { display: inline; }
.mit-zahlen .sz-ah-werklicht-werk_lkw { opacity: 0; } .werk-werk_lkw-aktiv .sz-ah-werklicht-werk_lkw, .werk-1-aktiv .sz-ah-werklicht-werk_lkw { opacity: 1; }
.werk-werk_auflieger-aktiv .sz-ah-werk-werk_auflieger { filter: none; } .werk-werk_auflieger-aktiv .sz-ah-werk_auflieger .sz-werk-fertig { display: inline; }
.werk-2-aktiv .sz-ah-werk-werk_auflieger { filter: none; } .werk-2-aktiv .sz-ah-werk_auflieger .sz-werk-fertig { display: inline; }
.mit-zahlen .sz-ah-werklicht-werk_auflieger { opacity: 0; } .werk-werk_auflieger-aktiv .sz-ah-werklicht-werk_auflieger, .werk-2-aktiv .sz-ah-werklicht-werk_auflieger { opacity: 1; }
/* ── Paket 8 (07.10.) — buehne_spielerhof_aufbau (player / VTC yard), generated by _quelle/bauen.py css_paket8(); edit there. The lot rules are the Paket-6 ones (same sz-ah-* classes, art names only). Contract: HOOKS.md ── */
svg[class*="spielerhof_aufbau"] .sz-ah-klick, svg[class*="spielerhof_aufbau"] .sz-ah-klick * { pointer-events: auto; cursor: pointer; }
/* ── Paket 9 (07.10.) — the tank on both yard cards (buehne_haendlerhof_aufbau + buehne_spielerhof_aufbau), generated by _quelle/bauen.py css_paket9(); edit there. The levels use the stage hooks (--fuell-diesel / --fuell-adblue, knapp-*, pumpt); every sz-tk-* class exists only in the yard-card scenes. Contract: HOOKS.md ── */
.sz-tk-rohr { fill: none; stroke: var(--bild-stahl); stroke-width: .9; stroke-linecap: round; stroke-linejoin: round; }
.sz-tk-rohr-ab { stroke: var(--bild-lack-kobalt); stroke-opacity: .85; }
.sz-tk-platte { stroke-width: .9; transition: stroke .3s ease; }
.sz-tk-schrift { fill: var(--bild-zier); font: 700 5.6px system-ui, sans-serif; text-anchor: middle; dominant-baseline: central; letter-spacing: .2px; }
.sz-tk-tanker, .sz-tk-kuppe { display: none; }
.pumpt .sz-tk-tanker { display: inline; }
.sz-tk-kuppe { fill: var(--bild-licht-warm); transition: transform .6s ease; }
.sz-tk-kuppe-adblue { fill: var(--bild-scheibe); }
.sz-tk-kuppe-diesel { transform: translateY(calc((1 - clamp(0, var(--fuell-diesel, .7), 1)) * 18.4px)); }
.sz-tk-kuppe-adblue { transform: translateY(calc((1 - clamp(0, var(--fuell-adblue, .55), 1)) * 18.4px)); }
.pumpt .sz-tk-kuppe { display: inline; animation: sz-tk-puls 1.1s ease-in-out infinite alternate; }
.pumpt .sz-tk-pegel { filter: brightness(1.3); }
.pumpt .sz-tk-platte { stroke: var(--bild-licht-warm); stroke-width: 1.3; }
@keyframes sz-tk-puls { from { opacity: .3; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .pumpt .sz-tk-kuppe { animation: none; opacity: 1; } .sz-tk-kuppe, .sz-tk-platte { transition: none; } }
/* phone crops: the plate grows about its foot (like the Paket-8 plate pair) and moves to free space — dealer: into the empty sky
   left above its lot (13 pills leave no room on the lot); player: a little to the front, clear of the lot pill pair */
svg.sz-mobil[class*="hof_aufbau"] .sz-tk-tafel { transform-box: fill-box; transform-origin: 50% 100%; }
svg.sz-mobil[class*="haendlerhof_aufbau"] .sz-tk-tafel { transform: translate(-116px, -50px) scale(1.6); }
svg.sz-mobil[class*="spielerhof_aufbau"] .sz-tk-tafel { transform: translate(6px, 20px) scale(1.5); }
/* ── Paket 11 (07.10.) — waiting tank trailers on the dealer YARD CARD follow the real count (trd-0..8 / tra-0..8, drawn at most 5 diesel + 3 AdBlue, „+n" via trd-mehr / tra-mehr). Generated by _quelle/bauen.py css_paket11(); every line names sz-ah, so hof_ziehen.py lifts the block. Contract: HOOKS.md ── */
.sz-ah-trx { display: none; }
.sz-ah-trzeig { display: inline; }
.mit-zahlen .sz-ah-trzeig, .trd-0 .sz-ah-trzeig, .trd-1 .sz-ah-trzeig, .trd-2 .sz-ah-trzeig, .trd-3 .sz-ah-trzeig, .trd-4 .sz-ah-trzeig, .trd-5 .sz-ah-trzeig, .trd-6 .sz-ah-trzeig, .trd-7 .sz-ah-trzeig, .trd-8 .sz-ah-trzeig, .tra-0 .sz-ah-trzeig, .tra-1 .sz-ah-trzeig, .tra-2 .sz-ah-trzeig, .tra-3 .sz-ah-trzeig, .tra-4 .sz-ah-trzeig, .tra-5 .sz-ah-trzeig, .tra-6 .sz-ah-trzeig, .tra-7 .sz-ah-trzeig, .tra-8 .sz-ah-trzeig { display: none; }
.trd-1 .sz-ah-trk-1.sz-ah-trx-di { display: inline; }
.trd-2 .sz-ah-trk-1.sz-ah-trx-di, .trd-2 .sz-ah-trk-2.sz-ah-trx-di { display: inline; }
.trd-3 .sz-ah-trk-1.sz-ah-trx-di, .trd-3 .sz-ah-trk-2.sz-ah-trx-di, .trd-3 .sz-ah-trk-3.sz-ah-trx-di { display: inline; }
.trd-4 .sz-ah-trk-1.sz-ah-trx-di, .trd-4 .sz-ah-trk-2.sz-ah-trx-di, .trd-4 .sz-ah-trk-3.sz-ah-trx-di, .trd-4 .sz-ah-trk-4.sz-ah-trx-di { display: inline; }
.trd-5 .sz-ah-trk-1.sz-ah-trx-di, .trd-5 .sz-ah-trk-2.sz-ah-trx-di, .trd-5 .sz-ah-trk-3.sz-ah-trx-di, .trd-5 .sz-ah-trk-4.sz-ah-trx-di, .trd-5 .sz-ah-trk-5.sz-ah-trx-di { display: inline; }
.trd-6 .sz-ah-trk-1.sz-ah-trx-di, .trd-6 .sz-ah-trk-2.sz-ah-trx-di, .trd-6 .sz-ah-trk-3.sz-ah-trx-di, .trd-6 .sz-ah-trk-4.sz-ah-trx-di, .trd-6 .sz-ah-trk-5.sz-ah-trx-di { display: inline; }
.trd-7 .sz-ah-trk-1.sz-ah-trx-di, .trd-7 .sz-ah-trk-2.sz-ah-trx-di, .trd-7 .sz-ah-trk-3.sz-ah-trx-di, .trd-7 .sz-ah-trk-4.sz-ah-trx-di, .trd-7 .sz-ah-trk-5.sz-ah-trx-di { display: inline; }
.trd-8 .sz-ah-trk-1.sz-ah-trx-di, .trd-8 .sz-ah-trk-2.sz-ah-trx-di, .trd-8 .sz-ah-trk-3.sz-ah-trx-di, .trd-8 .sz-ah-trk-4.sz-ah-trx-di, .trd-8 .sz-ah-trk-5.sz-ah-trx-di { display: inline; }
.tra-1 .sz-ah-trk-8.sz-ah-trx-ab { display: inline; }
.tra-2 .sz-ah-trk-7.sz-ah-trx-ab, .tra-2 .sz-ah-trk-8.sz-ah-trx-ab { display: inline; }
.tra-3 .sz-ah-trk-6.sz-ah-trx-ab, .tra-3 .sz-ah-trk-7.sz-ah-trx-ab, .tra-3 .sz-ah-trk-8.sz-ah-trx-ab { display: inline; }
.tra-4 .sz-ah-trk-6.sz-ah-trx-ab, .tra-4 .sz-ah-trk-7.sz-ah-trx-ab, .tra-4 .sz-ah-trk-8.sz-ah-trx-ab { display: inline; }
.tra-5 .sz-ah-trk-6.sz-ah-trx-ab, .tra-5 .sz-ah-trk-7.sz-ah-trx-ab, .tra-5 .sz-ah-trk-8.sz-ah-trx-ab { display: inline; }
.tra-6 .sz-ah-trk-6.sz-ah-trx-ab, .tra-6 .sz-ah-trk-7.sz-ah-trx-ab, .tra-6 .sz-ah-trk-8.sz-ah-trx-ab { display: inline; }
.tra-7 .sz-ah-trk-6.sz-ah-trx-ab, .tra-7 .sz-ah-trk-7.sz-ah-trx-ab, .tra-7 .sz-ah-trk-8.sz-ah-trx-ab { display: inline; }
.tra-8 .sz-ah-trk-6.sz-ah-trx-ab, .tra-8 .sz-ah-trk-7.sz-ah-trx-ab, .tra-8 .sz-ah-trk-8.sz-ah-trx-ab { display: inline; }
.sz-ah-mehr { display: none; }
.trd-mehr .sz-ah-mehr-diesel, .tra-mehr .sz-ah-mehr-adblue { display: inline; }
