.booking-grid{grid-template-columns:minmax(0,1fr) minmax(280px,340px);align-items:start}
.booking-grid>*{min-width:0}.booking-card{position:static}.booking-card .field{margin:18px 0}
.booking-card input,.booking-card select{width:100%;box-sizing:border-box}.booking-card .consent input{width:auto}
.seat-scroll{overflow:hidden;border:1px solid #d8cec0;border-radius:24px;background:#fbf8ef;margin-top:24px}
/* Preserve every pixel of the approved artwork; only state overlays are drawn. */
.seat-map{position:relative;min-width:0;width:100%;padding:0;isolation:isolate}
.seat-plan-art{display:block;width:100%;height:auto;max-width:100%;user-select:none;pointer-events:none}
.seat-row{position:absolute;inset:0;pointer-events:none}
.seat{position:absolute;display:flex;align-items:center;justify-content:center;pointer-events:auto;min-width:0;min-height:0;padding:0;border:2px solid transparent;border-radius:16px 16px 11px 11px;background:transparent;color:transparent;box-shadow:none;font:700 18px/1 Arial,sans-serif;cursor:pointer;opacity:1!important;touch-action:manipulation}
.seat[aria-pressed=true]{background:#285442ed;border-color:#e5dba9;color:#fff9eb;box-shadow:0 0 0 2px #285442}
.seat[data-occupied=true]{background:#b7b3a9ed;border-color:#8c8982;color:#323a34;cursor:not-allowed}
.seat:disabled{cursor:not-allowed}.seat:focus-visible{outline:3px solid #c8962d;outline-offset:3px}
.director{position:absolute;left:57.2%;top:75.5%;width:22.8%;height:5.5%;pointer-events:none}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;margin:16px 0}.legend span::before{content:'';display:inline-block;width:12px;height:12px;border-radius:4px;margin-right:6px;background:#8e3e55}.legend .chosen::before{background:#2d604c}.legend .occupied::before{background:#bcb7af}
.selected-seats{overflow-wrap:anywhere}.booking-result{padding:18px;background:#e0e9db;border-radius:14px;overflow-wrap:anywhere;margin-top:20px}.booking-result[hidden]{display:none}
.admin-wrap{max-width:1050px;margin:30px auto;padding:20px}.admin-login{max-width:450px}.admin-list{display:grid;gap:20px;margin-top:24px}.admin-booking{border:1px solid #d8cec0;border-radius:18px;padding:20px;background:#fbf8ef;overflow-wrap:anywhere}.admin-booking p{margin:8px 0}.admin-booking button{margin:8px 12px 0 0}.admin-tools{display:flex;gap:20px;align-items:center;flex-wrap:wrap}
@media(max-width:1000px){.booking-grid{grid-template-columns:1fr}.booking-card{max-width:none}.booking-card form{max-width:600px}}
@media(prefers-reduced-motion:reduce){.seat{transition:none}}

.shows .show-row{display:block;text-align:left;padding:18px 20px;font-size:16px}
/* The entire approved plan fits the page; touch-size controls remain available on narrow screens. */
.seat-picker{display:none}
@media(max-width:850px){
  .seat{font-size:clamp(8px,2.8vw,12px);border-width:1px;border-radius:5px}
  .seat-picker{display:block;background:#fffaf2;border:1px solid #d8cec0;border-radius:14px;padding:16px;margin-top:14px}
  .seat-picker p{font-size:12px;color:#686c64;margin:0 0 12px}
  .seat-picker-label{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;font-weight:600;margin-bottom:12px}
  .seat-picker-label select{min-height:44px;min-width:110px;border:1px solid #d8cec0;border-radius:8px;background:white;color:#2e3531;padding:8px;font:inherit}
  .seat-picker-seats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
  .seat-choice{min-width:0;min-height:44px;border:2px solid #963f52;border-radius:10px;background:#963f52;color:white;font:700 16px/1 Arial,sans-serif;cursor:pointer;touch-action:manipulation}
  .seat-choice[aria-pressed=true]{background:#285442;border-color:#285442;color:white}
  .seat-choice:disabled{background:#bbb7af;border-color:#bbb7af;color:#353935;opacity:1;cursor:not-allowed}
  .seat-choice:focus-visible{outline:3px solid #c8962d;outline-offset:3px}
}
