.jvSeatmapWrap{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}
.jvSeatmapCanvasShell,.jvPublicCanvasScroll{position:relative;min-height:540px;overflow:hidden;border:1px solid var(--ju-border);border-radius:var(--ju-radius);background:var(--ju-card);box-shadow:var(--ju-shadow)}
.jvSeatmapCanvas,.jvPublicCanvas{position:absolute;inset:0;transform-origin:0 0;transition:transform var(--ju-motion-fast) var(--ju-ease-standard)}
.jvPublicTools,.jvPublicToolbar{position:absolute;left:12px;top:12px;z-index:12;display:flex;gap:8px;flex-wrap:wrap}
.jvSeatObj{position:absolute;box-sizing:border-box;border:1px solid var(--ju-border);border-radius:var(--ju-radius);background:var(--ju-card);display:flex;align-items:center;justify-content:center;text-align:center;font-weight:800;color:var(--ju-text);user-select:none;cursor:pointer;transition:transform var(--ju-motion-fast) var(--ju-ease-standard),border-color var(--ju-motion-fast) var(--ju-ease-standard),background var(--ju-motion-fast) var(--ju-ease-standard)}
.jvSeatObj:hover{transform:translateY(-1px);border-color:var(--ju-accent-line)}
.jvSeatObj.is-selected{border-color:var(--ju-success);background:var(--ju-success-bg);color:var(--ju-text-strong)}
.jvSeatObj.is-sold,.jvSeatObj.is-held{cursor:not-allowed;opacity:.55;background:var(--ju-soft)}
.jvSeatObj[data-type="stage"],.jvSeatObj[data-type="door"],.jvSeatObj[data-type="area"]{cursor:default}
.jvSeatObj[data-type="stage"]{font-weight:900;letter-spacing:.04em;text-transform:uppercase;background:var(--ju-soft)}
.jvSeatObj[data-type="door"]{border-style:dashed;background:var(--ju-soft)}
.jvSeatmapGroupControls{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;padding:8px}
.jvSeatLegend{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px;font-size:12px;font-weight:800;color:var(--ju-text-muted)}
.jvCheckoutCard{border:1px solid var(--ju-border);border-radius:var(--ju-radius);background:var(--ju-card);box-shadow:var(--ju-shadow);padding:14px;display:grid;gap:12px}
.jvCheckoutCard h2{margin:0;font-size:18px;color:var(--ju-text-strong)}
.jvCartLine{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid var(--ju-border);padding:8px 0;font-weight:800}
.jvCartLine small{display:block;font-size:11px;color:var(--ju-text-muted)}
.jvCartTotal{display:flex;justify-content:space-between;gap:10px;font-size:18px;font-weight:900;color:var(--ju-text-strong)}
.jvCheckoutSheetToggle{display:none}
.jvSeatmapWrap[data-selection-count="0"] .jvCheckoutCard{border-color:var(--ju-border)}
.jvSeatmapWrap.has-selection .jvCheckoutCard{border-color:var(--ju-accent-line)}
@media (max-width:860px){
  .jvSeatmapWrap{grid-template-columns:1fr;padding-bottom:96px}
  .jvSeatmapCanvasShell,.jvPublicCanvasScroll{min-height:62vh;border-radius:var(--ju-radius)}
  .jvPublicTools,.jvPublicToolbar{left:8px;top:8px;gap:6px}
  .jvCheckoutCard{position:fixed;left:10px;right:10px;bottom:10px;z-index:820;max-height:74vh;overflow:hidden;border-radius:var(--ju-radius);box-shadow:var(--ju-shadow);padding:0}
  .jvCheckoutSheetToggle{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;width:100%;border:0;background:var(--ju-card);color:var(--ju-text);padding:10px 14px 12px;font:inherit;text-align:left;cursor:pointer}
  .jvCheckoutSheetToggle span[data-cart-summary]{font-size:13px;font-weight:900;color:var(--ju-text-strong)}
  .jvCheckoutSheetToggle strong{font-size:13px;font-weight:900;color:var(--ju-text-strong)}
  .jvCheckoutGrip{grid-column:1 / -1;justify-self:center;width:44px;height:4px;border-radius:999px;background:var(--ju-border)}
  .jvCheckoutBody{display:none;padding:0 14px 14px;max-height:56vh;overflow:auto}
  .jvCheckoutCard.is-expanded .jvCheckoutBody{display:grid;gap:12px}
  .jvCheckoutCard.is-expanded .jvCheckoutSheetToggle{border-bottom:1px solid var(--ju-border)}
  .jvCheckoutCard:not(.is-expanded) .jvCheckoutSheetToggle{min-height:56px}
  .jvCheckoutCard h2{font-size:15px}
}

/* v255 Venue Designer 2026: Public-Darstellung fuer reale Venue-Objekte */
.jvPublicObject{position:absolute;box-sizing:border-box;pointer-events:none;color:var(--ju-text)}
.jvPubFill{width:100%;height:100%;box-sizing:border-box;border:1px solid var(--ju-border);border-radius:var(--ju-radius);background:var(--ju-card);display:grid;place-items:center;text-align:center;font-weight:900;line-height:1.2;box-shadow:var(--ju-shadow)}
.jvPubFill--stage{background:linear-gradient(180deg,var(--ju-anth),var(--ju-text-strong));color:var(--ju-card);letter-spacing:.08em;text-transform:uppercase;border-color:var(--ju-anth)}
.jvPubFill--stage span:before,.jvPubFill--stage span:after{content:'•';margin:0 8px;color:var(--ju-gold)}
.jvPubFill--door,.jvPubFill--exit,.jvPubFill--aisle{background:var(--ju-soft);border-style:dashed;color:var(--ju-text-muted)}
.jvPubFill--exit{color:var(--ju-danger);font-weight:1000}
.jvPubFill--area,.jvPubFill--rowBlock{background:color-mix(in srgb,var(--zone-color,var(--ju-gold)) 10%,var(--ju-card));border-color:color-mix(in srgb,var(--zone-color,var(--ju-gold)) 40%,var(--ju-border))}
.jvPubFill--round,.jvPubFill--standing{border-radius:999px;background:var(--ju-card)}
.jvPubFill--standing{position:relative;display:grid;gap:2px;place-items:center;border-color:var(--ju-accent-line)}
.jvPubFill--standing:before{content:'';position:absolute;inset:16%;border:1px solid var(--ju-border);border-radius:999px;background:var(--ju-soft);z-index:0}
.jvPubFill--standing span,.jvPubFill--standing small{position:relative;z-index:1}.jvPubFill--standing small{font-size:10px;color:var(--ju-text-muted);font-weight:900}
.jvPubFill--beer{position:relative;background:var(--ju-soft);overflow:hidden}
.jvPubBeerTable{position:absolute;left:12%;right:12%;top:38%;height:24%;display:grid;place-items:center;border:1px solid var(--ju-accent-line);border-radius:var(--ju-radius);background:var(--ju-warning-bg);font-size:11px;font-weight:1000;color:var(--ju-text-strong);z-index:2}
.jvPubBeerBench{position:absolute;left:7%;right:7%;height:20%;border:1px solid var(--ju-border-strong);border-radius:var(--ju-radius);background:var(--ju-card);box-shadow:var(--ju-shadow);z-index:1}.jvPubBeerBench--top{top:9%}.jvPubBeerBench--bottom{bottom:9%}
.jvPubBeerJoin{position:absolute;left:49%;top:9%;bottom:9%;width:2%;border-radius:999px;background:var(--ju-border-strong);z-index:3}
.jvPublicSeatGroup em{display:block;margin:6px 0 0;font-size:11px;font-style:normal;font-weight:900;color:var(--ju-text-muted)}
@media(max-width:860px){.jvPubFill{font-size:11px}.jvPubBeerTable{font-size:10px}.jvPubFill--standing small{display:none}}
.jvPubFill--rect,.jvPubFill--bench,.jvPubFill--bar,.jvPubFill--wc,.jvPubFill--text{background:var(--ju-soft)}
.jvPubFill--bar{border-style:dashed;color:var(--ju-text-strong)}
.jvPubFill--wc{font-weight:1000;color:var(--ju-info)}
.jvPubFill--text{background:transparent;border:0;box-shadow:none}

/* v255.2 Public Seatmap Performance/Realgeraet-Hardening */
.jvPublicCanvasScroll{touch-action:pan-x pan-y pinch-zoom;overscroll-behavior:contain}
.jvSeatmapWrap.is-public-density-high .jvPublicSeat span{font-size:0}
.jvSeatmapWrap.is-public-density-high .jvPublicSeat span:after{content:'';display:block;width:6px;height:6px;border-radius:999px;background:currentColor}
.jvSeatmapWrap.is-public-viewport-mode .jvPublicCanvas{will-change:transform}
.jvSeatmapWrap.is-public-viewport-mode .jvPublicBuyerGuide{border-color:var(--ju-accent-line)}
.jvSeatmapWrap.is-public-viewport-mode .jvPublicSeat{box-shadow:none}
@media(max-width:860px){
  .jvSeatmapWrap.is-public-density-high .jvPublicToolbar{max-width:calc(100vw - 32px)}
  .jvSeatmapWrap.is-public-density-high .jvPublicBestSeatControl{min-width:86px}
}

/* v255.4: Public-Toolbar ist eine einklappbare Aufgabenleiste, keine schwebende Werkzeugwand. */
.jvPublicAdvancedTools .jvPublicToolbar{position:static;left:auto;top:auto;display:flex;gap:8px;flex-wrap:wrap;padding:10px;z-index:auto}
.jvSeatmapWrap .jvBuyerChoicePanel + .jvPublicAdvancedTools{position:relative;z-index:14}
.jvPublicCanvasShell{margin-top:8px}

/* v255.5: Kapazitaetsbereiche sind direkt im Public-Saalplan buchbar. */
.jvPublicObject--capacityPool{cursor:pointer;outline:0}
.jvPublicObject--capacityPool .jvPubFill--capacityPool{gap:4px;padding:8px;background:color-mix(in srgb,var(--zone-color,var(--ju-gold)) 16%,var(--ju-card));border-color:color-mix(in srgb,var(--zone-color,var(--ju-gold)) 58%,var(--ju-border))}
.jvPublicObject--capacityPool .jvPubFill--capacityPool strong{font-size:13px;color:var(--ju-text-strong)}
.jvPublicObject--capacityPool .jvPubFill--capacityPool span,.jvPublicObject--capacityPool .jvPubFill--capacityPool small{font-size:11px;color:var(--ju-text-muted);font-weight:900}
.jvPublicObject--capacityPool:focus-visible .jvPubFill--capacityPool,.jvPublicObject--capacityPool.is-selected .jvPubFill--capacityPool{border-color:var(--ju-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--ju-accent) 18%,transparent),var(--ju-shadow)}
.jvPublicObject--capacityPool.is-selected .jvPubFill--capacityPool{background:color-mix(in srgb,var(--ju-accent) 14%,var(--ju-card))}
.jvPublicObject--capacityPool.is-soldout{cursor:not-allowed;opacity:.62}
.jvPublicObject--capacityPool.is-soldout .jvPubFill--capacityPool{filter:grayscale(.25)}
.jvCartLine--capacityPool{align-items:center}
.jvCartQtyControls{display:inline-flex;align-items:center;gap:6px;justify-content:flex-end}
.jvCartQtyControls em{min-width:24px;text-align:center;font-style:normal;font-weight:1000;color:var(--ju-text-strong)}
@media(max-width:860px){.jvPublicObject--capacityPool .jvPubFill--capacityPool span{font-size:10px}.jvPublicObject--capacityPool .jvPubFill--capacityPool small{display:none}.jvCartLine--capacityPool{display:grid;grid-template-columns:1fr auto;align-items:center}.jvCartLine--capacityPool>strong{grid-column:1 / -1;text-align:right}}
