.seat3d { position:relative; width:100%; height:420px; overflow:hidden; isolation:isolate; border-radius:22px; background:#eae7e1; margin-top:16px; border:1px solid #e3dfd6; }
.seat3d[hidden] {display:none;}
.seat3d-canvas { display:block; width:100%; height:100%; touch-action:none; cursor:grab; }
.seat3d-canvas:active {cursor:grabbing;}
.seat3d-labels {position:absolute;inset:0;pointer-events:none;overflow:hidden;}
.seat3d-label {position:absolute; transform:translate(-50%,-18%);pointer-events:auto;display:flex; flex-direction:column;gap:2px;align-items:center;justify-content:center; min-width:86px;min-height:49px;padding:7px 11px;border:1px solid #ffffffd9;border-radius:12px;background:#fffffff2;box-shadow:0 3px 12px #32271918;color:#243628;font:inherit;line-height:1.15;cursor:pointer;white-space:nowrap;}
.seat3d-label strong {font-size:13px;font-weight:750;letter-spacing:.01em;}
.seat3d-label span {font-size:12px;font-weight:750;}
.seat3d-label[data-state="available"] span {color:#23703b;}
.seat3d-label[data-state="available"] {background:#f1f8ecf5;border-color:#d8e8ce;}
.seat3d-label[data-state="occupied"] span {color:#be3431;}
.seat3d-label[data-state="occupied"] {background:#fff0ecf5;border-color:#efd5cf;}
.seat3d-label[data-state="booked"] span {color:#9c6a00;}
.seat3d-label[data-state="booked"] {background:#fff8dcf5;border-color:#efdfab;}
.seat3d-label[data-state="unknown"] span,.seat3d-label[data-state="offline"] span,.seat3d-label[data-state="closed"] span {color:#656962;}
.seat3d-label:disabled {opacity:1;cursor:default;}
.seat3d-label:hover:not(:disabled) {background:#fff;box-shadow:0 4px 14px #24362838;}
.seat3d-label:focus-visible,.seat3d-actions button:focus-visible {outline:3px solid #557745;outline-offset:3px;}
.seat3d-toolbar {position:absolute;bottom:12px;left:14px;right:14px;display:flex;align-items:center;justify-content:space-between;gap:10px;pointer-events:none;}
.seat3d-hint {font-size:12px;color:#555a50;padding:8px 11px;border-radius:24px;background:#ffffffdf;line-height:1.2;}
.seat3d-actions {display:flex;gap:5px;pointer-events:auto;}
.seat3d-actions button {width:38px;height:38px;min-height:38px;border:1px solid #d9d9d0;background:#fffffff0;color:#293b2e;border-radius:50%;font:24px/1 system-ui;cursor:pointer;display:grid;place-items:center;padding:0;}
.seat3d-loading {position:absolute;inset:0;display:grid;place-content:center;color:#656962;font-size:14px;}
#seatGrid.seat3d-source {display:none;}
#seatGrid .seat.booked {border-color:#d6b859;background:#faf5df;}
#seatGrid .seat.booked .status-dot {background:#b98b00;}
#seatGrid .seat.booked small {color:#9c6a00;}
#seatGrid .seat.occupied small {color:#be3431;}
#seatGrid .seat.available small {color:#23703b;}
#seatGrid .seat.unknown,#seatGrid .seat.offline,#seatGrid .seat.closed {background:#efefeb;border-color:#d9d9d0;}
@media(min-width:1300px){.seat3d{height:450px;}}
@media(max-width:600px){
  .seat3d{height:310px;border-radius:16px;margin-top:12px;}
  .seat3d-label{min-width:61px;min-height:46px;padding:6px 5px;border-radius:9px;gap:3px;}
  .seat3d-label strong{font-size:11px;}.seat3d-label span{font-size:10px;}
  .seat3d-toolbar{bottom:9px;left:8px;right:8px;gap:4px;}
  .seat3d-hint{font-size:10px;max-width:155px;padding:7px 8px;}
  .seat3d-actions{gap:4px;}.seat3d-actions button{width:36px;height:36px;min-height:36px;}
}
@media(prefers-reduced-motion:reduce){.seat3d *{scroll-behavior:auto;transition:none;}}
