.seating-map-panel { padding: 28px; background: #fff; border: 1px solid #ccd6ce; border-radius: 16px; box-shadow: 0 12px 36px #112d2a0a; }
.map-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.map-toolbar h3 { font-size: 30px; }
.map-toolbar p { margin: 10px 0; }
.map-legend { display: flex; flex-wrap: wrap; gap: 12px 22px; padding-block: 16px; font-size: 14px; font-weight: 600; }
.map-legend span { display: flex; align-items: center; gap: 8px; }
.map-legend i { width: 16px; height: 16px; border-radius: 50%; border: 2px solid; }
.key-open { background: #e5f2e9; border-color: #32714d !important; }
.key-held { background: #fff0cd; border-color: #a77522 !important; }
.key-full { background: #f8e4df; border-color: #a74735 !important; }
.key-vip { background: #ece4f6; border-color: #77559d !important; }
.key-selected { background: #164b68; border-color: #164b68 !important; }
#availability-status { font-size: 14px; color: #52615a; min-height: 24px; }
.seating-map-scroll { max-width: 100%; overflow-x: auto; border: 1px solid #d5dfd6; border-radius: 12px; background: #fbfcf9; padding: 16px; }
.seating-map { display: grid; grid-template-columns: repeat(3,minmax(104px,1fr)) 32px repeat(4,minmax(104px,1fr)) 140px; grid-template-rows: repeat(5,132px) 34px 100px; gap: 12px 8px; min-width: 1000px; }
.map-table { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; padding: 7px 0 0; border: 2px solid transparent; border-radius: 10px; background: transparent; color: #143529; font-family: var(--sans); cursor: pointer; min-width: 0; }
.map-table:hover { background: #eaf0ea; }
.map-table:focus-visible { outline: 3px solid #164b68; outline-offset: 1px; }
.map-table[aria-disabled=true] { cursor: help; }
.table-ring { display: block; position: relative; width: 98px; height: 98px; flex-shrink: 0; }
.table-centre { position: absolute; inset: 12px; display: flex; flex-direction: column; align-items: center; justify-content: center; border-radius: 50%; border: 2px solid #32714d; background: #e5f2e9; line-height: 1.1; }
.table-word { font-size: 11px; letter-spacing: .05em; font-weight: 700; }
.table-centre strong { font-size: 25px; margin: 2px 0; }
.table-free { font-size: 14px; font-weight: 700; }
.table-booking-type { font-size: 12px; line-height: 1.3; text-align: center; min-height: 16px; }
.seat-dot { position: absolute; left: 44px; top: 44px; width: 10px; height: 10px; border-radius: 3px; transform: rotate(var(--seat-angle)) translateY(-45px); border: 1px solid #32714d; background: #e5f2e9; }
.seat-dot.is-reserved { background: #25583c; border-color: #25583c; }
.seat-dot.is-held { background: #ddb266; border-color: #9e7227; }
.seat-dot.is-vip { background: #b7a0ce; border-color: #77559d; }
.seat-dot.is-unknown { background: #ddd; border-color: #888; }
.is-partial .table-centre { background: #fff0cd; border-color: #a77522; color: #6c4813; }
.is-full .table-centre { background: #f8e4df; border-color: #a74735; color: #893423; }
.is-vip .table-centre { background: #ece4f6; border-color: #77559d; color: #65448a; }
.is-unknown .table-centre { background: #eee; border-color: #777; }
.map-table[aria-pressed=true] { border-color: #164b68; background: #e6f1f7; }
.map-table[aria-pressed=true] .table-centre { background: #164b68; border-color: #164b68; color: #fff; }
.map-aisle, .map-cross-aisle, .map-cocktails, .map-entrance, .map-stage, .map-dj, .map-registration { display: flex; align-items: center; justify-content: center; text-align: center; border-radius: 6px; font: 700 13px/1.5 var(--sans); }
.map-aisle { grid-column: 4; grid-row: 1/6; background: #edf1f3; color: #5a6f79; writing-mode: vertical-rl; letter-spacing: .12em; }
.map-cross-aisle { grid-column: 1/9; grid-row: 6; background: #edf1f3; color: #5a6f79; }
.map-cocktails { grid-column: 9; grid-row: 1/4; flex-direction: column; background: #f6edda; border: 1px solid #c59745; }
.map-entrance { grid-column: 9; grid-row: 5/7; color: #946725; }
.map-stage { grid-column: 5/8; grid-row: 7; flex-direction: column; background: #172f3a; color: #fff; border-top: 6px solid #b89045; font-size: 25px; }
.map-stage small, .map-cocktails small { display: block; font-size: 12px; font-weight: 400; }
.map-dj { grid-column: 8; grid-row: 7; background: #e8f0f4; }
.map-registration { grid-column: 9; grid-row: 7; background: #f6edda; border: 1px solid #c59745; }
.map-service-access { grid-column: 9; grid-row: 4; align-self: center; text-align: center; font-size: 12px; color: #52615a; }
.map-table-service { grid-column: 1/4; grid-row: 7; align-self: center; padding: 16px; font-size: 14px; font-weight: 700; color: #52615a; }
.map-table-service small { display: block; font-size: 13px; font-weight: 400; }
.map-selection-bar { display: flex; gap: 24px; justify-content: space-between; align-items: center; margin-top: 20px; }
.map-selection-bar p { margin: 0; flex: 1; font-size: 16px; }
.map-scroll-help { font-size: 14px; color: #52615a; }
.selected-table-summary { padding: 14px; margin-top: 12px; border-radius: 6px; background: #e9f1ed; font-size: 15px; }
@media(max-width: 700px) { .seating-map-panel { padding: 16px; } .map-toolbar, .map-selection-bar { align-items: stretch; flex-direction: column; gap: 12px; } .seating-map-scroll { padding: 10px; } }
