/* Restaurant seating availability, combinations and setup notices. */
.pxab-restaurant-table-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
    margin: 12px 0;
    font-size: 12px;
}
.pxab-restaurant-table-legend__item { display: inline-flex; align-items: center; gap: 6px; }
.pxab-restaurant-table-legend__item i { width: 10px; height: 10px; border: 1px solid currentColor; border-radius: 50%; background: currentColor; }
.pxab-restaurant-table-legend__item--available { color: #15803d; }
.pxab-restaurant-table-legend__item--extra_seats { color: #2563eb; }
.pxab-restaurant-table-legend__item--too_small,
.pxab-restaurant-table-legend__item--minimum_party { color: #c2410c; }
.pxab-restaurant-table-legend__item--unavailable { color: #b32d2e; }
.pxab-restaurant-public-table--extra_seats { border-style: dashed; border-color: #2563eb; background: #eff6ff; }
.pxab-restaurant-public-table--too_small,
.pxab-restaurant-public-table--minimum_party { opacity: 1; filter: none; cursor: pointer; }
.pxab-restaurant-public-table--unavailable { opacity: .58; background: repeating-linear-gradient(135deg,#f6d5d5,#f6d5d5 6px,#fff 6px,#fff 12px); cursor: not-allowed; }
.pxab-restaurant-public-table__capacity {
    position: absolute;
    right: 3px;
    bottom: 2px;
    z-index: 2;
    padding: 0 3px;
    border-radius: 8px;
    background: rgba(255,255,255,.88);
    font-size: 9px;
    line-height: 1.25;
}
.pxab-restaurant-combinations { margin-top: 14px; }
.pxab-restaurant-combinations h4 { margin: 0 0 8px; }
.pxab-restaurant-combinations__list { display: grid; grid-template-columns: repeat(auto-fit,minmax(210px,1fr)); gap: 8px; }
.pxab-restaurant-combination {
    display: grid;
    gap: 3px;
    width: 100%;
    min-height: 74px;
    padding: 10px 12px;
    border: 1px solid #c3c4c7;
    border-radius: 8px;
    background: #fff;
    color: inherit;
    text-align: left;
    cursor: pointer;
}
.pxab-restaurant-combination:hover,
.pxab-restaurant-combination:focus-visible { border-color: #2271b1; box-shadow: 0 0 0 1px #2271b1; }
.pxab-restaurant-combination.is-selected { border-color: #2271b1; background: #f0f6fc; box-shadow: 0 0 0 2px #2271b1; }
.pxab-restaurant-combination span,
.pxab-restaurant-combination small { color: #50575e; }
.pxab-restaurant-seating-note,
.pxab-restaurant-request-priority {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 8px;
    border: 1px solid #dba617;
    border-radius: 999px;
    background: #fff8dc;
    color: #5d3b00;
    font-weight: 600;
}
.pxab-restaurant-requests-dialog { display: grid; gap: 14px; }
.pxab-restaurant-requests-dialog section { padding: 12px; border: 1px solid #dcdcde; border-radius: 8px; background: #fff; }
.pxab-restaurant-requests-dialog h3 { margin: 0 0 6px; font-size: 14px; }
.pxab-restaurant-requests-dialog p { margin: 0; white-space: pre-wrap; }
@media (max-width: 782px) {
    .pxab-restaurant-table-legend { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
    .pxab-restaurant-combinations__list { grid-template-columns: 1fr; }
    .pxab-restaurant-public-table__capacity { font-size: 8px; }
}

/* Public state clarity: unavailable seating stays visible, legible and unmistakably disabled. */
.pxab-restaurant-table-legend__item--staff_only { color: #5b21b6; }
.pxab-restaurant-public-table,
.pxab-restaurant-combination { transition: border-color .16s ease, background-color .16s ease, color .16s ease, box-shadow .16s ease, transform .16s ease; }
.pxab-restaurant-public-table:not(:disabled):hover,
.pxab-restaurant-public-table:not(:disabled):focus-visible {
    border-color: var(--pxab-restaurant-accent, #b45309);
    background: #fff7ed;
    color: #431407;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--pxab-restaurant-accent, #b45309) 28%, transparent);
    outline: none;
}
.pxab-restaurant-public-table:disabled,
.pxab-restaurant-combination:disabled { opacity: 1; filter: none; cursor: not-allowed; }
.pxab-restaurant-public-table--available { border-color: #15803d; background: #ecfdf5; color: #14532d; }
.pxab-restaurant-public-table--extra_seats { border: 2px dashed #2563eb; background: #eff6ff; color: #1e3a8a; }
.pxab-restaurant-public-table--too_small,
.pxab-restaurant-public-table--minimum_party { border-color: #c2410c; background: #fff7ed; color: #7c2d12; }
.pxab-restaurant-public-table--unavailable { border-color: #991b1b; background: repeating-linear-gradient(135deg,#fee2e2,#fee2e2 7px,#fecaca 7px,#fecaca 14px); color: #450a0a; }
.pxab-restaurant-public-table--staff_only { border-color: #6d28d9; background: #f5f3ff; color: #2e1065; }
.pxab-restaurant-public-table--disabled { border-color: #78716c; background: #e7e5e4; color: #292524; }
.pxab-restaurant-public-table__label { line-height: 1.1; text-shadow: 0 1px rgba(255,255,255,.65); }
.pxab-restaurant-public-table__state {
    position: absolute;
    left: 50%;
    bottom: calc(100% + 5px);
    z-index: 5;
    width: max-content;
    max-width: 150px;
    padding: 3px 6px;
    border: 1px solid currentColor;
    border-radius: 999px;
    background: #fff;
    color: inherit;
    font-size: 9px;
    font-weight: 800;
    line-height: 1.15;
    text-align: center;
    transform: translateX(-50%) rotate(calc(-1 * var(--pxab-table-rotation, 0deg)));
    box-shadow: 0 2px 7px rgba(15,23,42,.12);
    pointer-events: none;
}
.pxab-restaurant-public-table__capacity { border: 1px solid rgba(15,23,42,.22); color: #111827; font-weight: 800; }
.pxab-restaurant-public-table.is-selected { background: #fff7ed; color: #431407; }
.pxab-restaurant-seating-state {
    justify-self: start;
    padding: 3px 7px;
    border: 1px solid currentColor;
    border-radius: 999px;
    font-size: 11px;
    font-style: normal;
    font-weight: 800;
    line-height: 1.2;
}
.pxab-restaurant-combination--available { border-color: #15803d; background: #ecfdf5; color: #14532d; }
.pxab-restaurant-combination--extra_seats { border: 2px dashed #2563eb; background: #eff6ff; color: #1e3a8a; }
.pxab-restaurant-combination--too_small,
.pxab-restaurant-combination--minimum_party { border-color: #c2410c; background: #fff7ed; color: #7c2d12; }
.pxab-restaurant-combination--unavailable { border-color: #991b1b; background: repeating-linear-gradient(135deg,#fee2e2,#fee2e2 8px,#fecaca 8px,#fecaca 16px); color: #450a0a; }
.pxab-restaurant-combination--staff_only { border-color: #6d28d9; background: #f5f3ff; color: #2e1065; }
.pxab-restaurant-combination:disabled span,
.pxab-restaurant-combination:disabled small { color: inherit; }
.pxab-restaurant-combination:not(:disabled):hover,
.pxab-restaurant-combination:not(:disabled):focus-visible {
    border-color: var(--pxab-restaurant-accent, #b45309);
    background: #fff7ed;
    color: #431407;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--pxab-restaurant-accent, #b45309) 28%, transparent);
    outline: none;
}
.pxab-restaurant-combination.is-selected { border-color: var(--pxab-restaurant-accent, #b45309); background: #fff7ed; color: #431407; box-shadow: 0 0 0 3px color-mix(in srgb,var(--pxab-restaurant-accent,#b45309) 28%,transparent); }
.pxab-restaurant-combinations__notice,
.pxab-restaurant-group-notice {
    margin: 10px 0;
    padding: 10px 12px;
    border: 1px solid #c4b5fd;
    border-radius: 9px;
    background: #f5f3ff;
    color: #2e1065;
    font-weight: 650;
}
@media (max-width: 600px) {
    .pxab-restaurant-public-table__state { max-width: 105px; font-size: 8px; }
}
@media (prefers-reduced-motion: reduce) {
    .pxab-restaurant-public-table,
    .pxab-restaurant-combination { transition: none; }
}
@media (forced-colors: active) {
    .pxab-restaurant-public-table,
    .pxab-restaurant-combination { border: 2px solid ButtonText; background: Canvas; color: CanvasText; }
    .pxab-restaurant-public-table:disabled,
    .pxab-restaurant-combination:disabled { border-style: dashed; color: GrayText; }
    .pxab-restaurant-public-table.is-selected,
    .pxab-restaurant-combination.is-selected { outline: 3px solid Highlight; }
}

/* Keep every seating state readable inside rotated floor-plan objects. */
.pxab-restaurant-public-table { overflow: visible; }
.pxab-restaurant-public-table__state {
    top: 3px;
    bottom: auto;
    width: auto;
    max-width: calc(100% - 6px);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.pxab-restaurant-status__badge--waitlisted { background: #fef3c7; color: #78350f; }
.pxab-restaurant-status__badge--pending { background: #e0f2fe; color: #075985; }
.pxab-restaurant-status__badge--late { background: #fef3c7; color: #92400e; }
.pxab-restaurant-status__badge--arrived { background: #ede9fe; color: #5b21b6; }
.pxab-restaurant-status__badge--cancelled,
.pxab-restaurant-status__badge--expired,
.pxab-restaurant-status__badge--no_show { background: #fee2e2; color: #991b1b; }

/* v1.0.385: rotation-safe labels, compact mobile details and state-aware patterns. */
.pxab-restaurant-table-picker [data-pxab-restaurant-public-floor] {
    background-color: var(--pxab-room-floor-color,#f8fafc);
    background-image: linear-gradient(90deg,rgba(148,163,184,.12) 1px,transparent 1px),linear-gradient(rgba(148,163,184,.12) 1px,transparent 1px);
    background-size:var(--pxab-room-floor-pattern-size,20px) var(--pxab-room-floor-pattern-size,20px);
}
.pxab-restaurant-table-picker [data-pxab-restaurant-public-floor][data-pxab-pattern="none"]{background-image:none}
.pxab-restaurant-table-picker [data-pxab-restaurant-public-floor][data-pxab-pattern="stripes"]{background-image:repeating-linear-gradient(135deg,var(--pxab-room-floor-accent,#eef2f7) 0 8px,transparent 8px 16px)}
.pxab-restaurant-table-picker [data-pxab-restaurant-public-floor][data-pxab-pattern="checker"]{background-image:linear-gradient(45deg,var(--pxab-room-floor-accent,#eef2f7) 25%,transparent 25%,transparent 75%,var(--pxab-room-floor-accent,#eef2f7) 75%),linear-gradient(45deg,var(--pxab-room-floor-accent,#eef2f7) 25%,transparent 25%,transparent 75%,var(--pxab-room-floor-accent,#eef2f7) 75%);background-position:0 0,10px 10px}
.pxab-restaurant-table-picker [data-pxab-restaurant-public-floor][data-pxab-pattern="dots"]{background-image:radial-gradient(circle,var(--pxab-room-floor-accent,#dbe4ee) 1.5px,transparent 1.7px)}
.pxab-restaurant-public-table{display:grid;grid-template-rows:minmax(0,1fr) auto minmax(0,1fr);place-items:center;padding:4px;isolation:isolate;overflow:visible;background-color:var(--pxab-table-color,#fff);opacity:var(--pxab-table-opacity,1)}
.pxab-restaurant-public-table__label{grid-row:2;align-self:center;max-width:calc(100% - 10px);padding:0 2px;line-height:1.05;text-align:center;white-space:normal;overflow-wrap:normal;word-break:normal;hyphens:none}
.pxab-restaurant-public-table__state{top:3px;bottom:auto;left:50%;width:max-content;max-width:calc(100% - 8px);min-width:0;padding:2px 5px;overflow:hidden;font-size:clamp(7px,1.05vw,9px);line-height:1.1;text-overflow:ellipsis;white-space:nowrap;transform:translateX(-50%)}
.pxab-restaurant-public-table__capacity{right:50%;bottom:3px;max-width:calc(100% - 10px);padding:1px 4px;overflow:hidden;line-height:1.1;text-overflow:ellipsis;transform:translateX(50%);white-space:nowrap}
.pxab-restaurant-public-table--round .pxab-restaurant-public-table__state{top:12%;max-width:68%}
.pxab-restaurant-public-table--round .pxab-restaurant-public-table__capacity{bottom:10%;max-width:58%}
.pxab-restaurant-public-table--round .pxab-restaurant-public-table__label{max-width:58%}
.pxab-restaurant-public-table--available{background-color:#ecfdf5;background-image:repeating-linear-gradient(135deg,rgba(22,163,74,.13) 0 7px,rgba(255,255,255,.5) 7px 14px)}
.pxab-restaurant-public-table--extra_seats{background-color:#eff6ff;background-image:repeating-linear-gradient(135deg,rgba(37,99,235,.16) 0 7px,rgba(255,255,255,.5) 7px 14px)}
.pxab-restaurant-public-table--too_small{background-color:#fff7ed;background-image:repeating-linear-gradient(135deg,rgba(194,65,12,.16) 0 7px,rgba(255,255,255,.5) 7px 14px)}
.pxab-restaurant-public-table--minimum_party{background-color:#fff7ed;background-image:repeating-linear-gradient(45deg,rgba(194,65,12,.15) 0 5px,transparent 5px 10px),repeating-linear-gradient(135deg,rgba(234,88,12,.10) 0 5px,transparent 5px 10px)}
.pxab-restaurant-public-table--unavailable{background-color:#fee2e2;background-image:repeating-linear-gradient(135deg,#fee2e2 0 7px,#fecaca 7px 14px)}
.pxab-restaurant-public-table--staff_only{background-color:#f5f3ff;background-image:repeating-linear-gradient(135deg,rgba(109,40,217,.14) 0 7px,rgba(255,255,255,.45) 7px 14px)}
.pxab-restaurant-public-table--disabled{background-color:#e7e5e4;background-image:repeating-linear-gradient(135deg,rgba(68,64,60,.13) 0 7px,rgba(255,255,255,.34) 7px 14px)}
.pxab-restaurant-public-table:not(:disabled):hover,.pxab-restaurant-public-table:not(:disabled):focus-visible,.pxab-restaurant-public-table.is-selected{color:#431407;background-color:#fff7ed;background-image:repeating-linear-gradient(135deg,rgba(180,83,9,.16) 0 7px,rgba(255,255,255,.5) 7px 14px)}
:is(.pxab-restaurant-booking,.pxab-restaurant-booking-controls-context) .pxab-restaurant-public-table--unavailable .pxab-restaurant-public-table__state,:is(.pxab-restaurant-booking,.pxab-restaurant-booking-controls-context) .pxab-restaurant-public-table--unavailable:hover .pxab-restaurant-public-table__state,:is(.pxab-restaurant-booking,.pxab-restaurant-booking-controls-context) .pxab-restaurant-public-table--unavailable:focus-visible .pxab-restaurant-public-table__state{background:#991b1b;color:#fff}
.pxab-restaurant-table-choice__details{margin-left:8px;padding:4px 8px;border:1px solid var(--pxab-restaurant-accent,#b45309);border-radius:999px;background:transparent;color:var(--pxab-restaurant-accent,#b45309);font:inherit;font-size:12px;font-weight:750;cursor:pointer}
.pxab-restaurant-public-fixture{border-color:var(--pxab-fixture-color,#64748b);background-color:var(--pxab-fixture-color,#64748b);color:var(--pxab-fixture-accent,#fff);opacity:var(--pxab-fixture-opacity,1)}
.pxab-restaurant-public-fixture--window{border:3px double var(--pxab-fixture-color,#0284c7);background:linear-gradient(180deg,rgba(224,242,254,.92),rgba(125,211,252,.52));box-shadow:inset 0 0 0 2px rgba(255,255,255,.8)}
.pxab-restaurant-public-fixture--sofa,.pxab-restaurant-public-fixture--built_in_wall_seating{border:3px solid var(--pxab-fixture-color,#7c3aed);border-radius:14px;background:linear-gradient(to bottom,var(--pxab-fixture-accent,#ede9fe) 0 34%,var(--pxab-fixture-color,#7c3aed) 35% 100%);background-color:var(--pxab-fixture-color,#7c3aed)}
.pxab-restaurant-public-fixture--built_in_corner_seating{border:12px solid var(--pxab-fixture-color,#92400e);border-right-color:transparent;border-bottom-color:transparent;border-radius:16px 0 0;background:transparent}
.pxab-restaurant-public-fixture--stool{border:4px solid var(--pxab-fixture-color,#475569);border-radius:50%;background:var(--pxab-fixture-accent,#e2e8f0)}
.pxab-restaurant-public-fixture--kitchen_zone,.pxab-restaurant-public-fixture--floor_zone{z-index:0;border:2px dashed var(--pxab-fixture-color,#64748b);border-radius:8px}
.pxab-restaurant-public-fixture--kitchen_counter{border:3px solid var(--pxab-fixture-color,#475569);border-radius:5px}
.pxab-restaurant-public-fixture--kitchen_appliance{border:3px solid var(--pxab-fixture-color,#64748b);border-radius:8px;background:linear-gradient(135deg,var(--pxab-fixture-accent,#f8fafc),var(--pxab-fixture-color,#64748b));background-color:var(--pxab-fixture-color,#64748b)}
.pxab-restaurant-public-fixture--toilet{border:3px solid var(--pxab-fixture-color,#0f766e);border-radius:45% 45% 30% 30%;background:var(--pxab-fixture-accent,#ccfbf1)}
.pxab-restaurant-public-fixture--stairs_straight,.pxab-restaurant-public-fixture--steps{border:2px solid var(--pxab-fixture-color,#64748b);background:repeating-linear-gradient(90deg,var(--pxab-fixture-accent,#f8fafc) 0 14px,var(--pxab-fixture-color,#64748b) 14px 17px);background-color:var(--pxab-fixture-color,#64748b)}
.pxab-restaurant-public-fixture--stairs_corner{border:3px solid var(--pxab-fixture-color,#64748b);border-radius:0 0 100% 0;background:repeating-radial-gradient(circle at 0 0,var(--pxab-fixture-accent,#f8fafc) 0 14px,var(--pxab-fixture-color,#64748b) 15px 18px);background-color:var(--pxab-fixture-color,#64748b)}
.pxab-restaurant-public-fixture--ramp,.pxab-restaurant-public-fixture--slope{border:2px solid var(--pxab-fixture-color,#0369a1);background:linear-gradient(150deg,var(--pxab-fixture-accent,#e0f2fe) 0 49%,var(--pxab-fixture-color,#0369a1) 50% 55%,var(--pxab-fixture-accent,#e0f2fe) 56%);background-color:var(--pxab-fixture-color,#0369a1)}
.pxab-restaurant-public-fixture--toilet_sign,.pxab-restaurant-public-fixture--exit_sign,.pxab-restaurant-public-fixture--mind_head_sign,.pxab-restaurant-public-fixture--mind_steps_sign{z-index:3;border:2px solid var(--pxab-fixture-color,#166534);border-radius:5px;font-size:clamp(.45rem,1.2vw,.7rem);font-weight:850;line-height:1;text-align:center}
@media(max-width:700px){.pxab-restaurant-public-table__state,.pxab-restaurant-public-table__capacity{display:none}.pxab-restaurant-public-table__label{max-width:76%;font-size:clamp(7px,2.1vw,10px)}.pxab-restaurant-public-table--round .pxab-restaurant-public-table__label{max-width:62%}.pxab-restaurant-table-picker [data-pxab-restaurant-public-floor]{min-height:260px}}

/* Square end-caps keep connected wall corners visually continuous. */
.pxab-restaurant-public-fixture--wall { overflow: visible; }
.pxab-restaurant-public-fixture--wall::before,
.pxab-restaurant-public-fixture--wall::after {
    content: "";
    position: absolute;
    top: 0;
    height: 100%;
    aspect-ratio: 1;
    background: var(--pxab-fixture-color, #475569);
    pointer-events: none;
}
.pxab-restaurant-public-fixture--wall::before { left: 0; transform: translateX(-50%); }
.pxab-restaurant-public-fixture--wall::after { right: 0; transform: translateX(50%); }


/* v1.0.393 compact customer floor labels and mirrored structures. */
.pxab-restaurant-public-table {
    display: grid;
    place-items: center;
    cursor: pointer;
    transition: filter .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.pxab-restaurant-public-table__label {
    grid-row: auto;
    max-width: calc(100% - 12px);
    padding: 2px 5px;
    border-radius: 999px;
    background: color-mix(in srgb,#fff 84%,transparent);
    color: #111827;
    font-size: clamp(9px,1.3vw,13px);
    font-weight: 900;
    line-height: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.pxab-restaurant-public-table__state,
.pxab-restaurant-public-table__capacity { display: none !important; }
.pxab-restaurant-public-table:hover,
.pxab-restaurant-public-table:focus-visible { filter: brightness(1.04); }
.pxab-restaurant-public-table[data-pxab-table-selectable="0"] { cursor: help; }
.pxab-restaurant-public-table.is-customer-pulse { animation: pxab-restaurant-customer-table-pulse .38s ease-out; }
.pxab-restaurant-table-details__panel.is-customer-revealing { animation: pxab-restaurant-customer-modal-reveal .32s ease-out; }
@keyframes pxab-restaurant-customer-table-pulse { 0% { filter: brightness(1.2); box-shadow: 0 0 0 5px rgba(180,83,9,.2); } 100% { filter: brightness(1); box-shadow: 0 0 0 0 rgba(180,83,9,0); } }
@keyframes pxab-restaurant-customer-modal-reveal { 0% { opacity: 0; translate: 0 16px; } 100% { opacity: 1; translate: 0 0; } }
.pxab-restaurant-public-fixture--reception_area { z-index: 0; border: 2px dashed var(--pxab-fixture-color,#475569); border-radius: 12px; background-color: color-mix(in srgb,var(--pxab-fixture-accent,#f1f5f9) 82%,transparent); }
.pxab-restaurant-public-fixture--reception_desk { border: 4px solid var(--pxab-fixture-color,#334155); border-radius: 18px 18px 7px 7px; background: linear-gradient(to bottom,var(--pxab-fixture-accent,#e2e8f0) 0 32%,var(--pxab-fixture-color,#334155) 33% 100%); background-color: var(--pxab-fixture-color,#334155); }
@media (prefers-reduced-motion: reduce) {
    .pxab-restaurant-public-table,
    .pxab-restaurant-public-table.is-customer-pulse,
    .pxab-restaurant-table-details__panel.is-customer-revealing { animation: none !important; transition: none !important; }
}

.pxab-restaurant-public-table__label,
.pxab-restaurant-public-fixture__label {
    transform: scaleX(var(--pxab-object-flip-x,1)) scaleY(var(--pxab-object-flip-y,1));
}
.pxab-restaurant-public-fixture__label { display: inline-block; }
[data-pxab-restaurant-public-floor].is-customer-revealing { animation: pxab-restaurant-customer-modal-reveal .32s ease-out; }
.pxab-restaurant-public-table[data-pxab-table-selectable="0"]:hover,
.pxab-restaurant-public-table[data-pxab-table-selectable="0"]:focus-visible { color: inherit; }
.pxab-restaurant-public-table--available:hover,
.pxab-restaurant-public-table--available:focus-visible { background-color:#ecfdf5;background-image:repeating-linear-gradient(135deg,#ecfdf5 0 7px,#d1fae5 7px 14px); }
.pxab-restaurant-public-table--extra_seats:hover,
.pxab-restaurant-public-table--extra_seats:focus-visible { background-color:#eff6ff;background-image:repeating-linear-gradient(135deg,#eff6ff 0 7px,#dbeafe 7px 14px); }
.pxab-restaurant-public-table--too_small:hover,
.pxab-restaurant-public-table--too_small:focus-visible,
.pxab-restaurant-public-table--minimum_party:hover,
.pxab-restaurant-public-table--minimum_party:focus-visible { background-color:#fff7ed;background-image:repeating-linear-gradient(135deg,#fff7ed 0 7px,#ffedd5 7px 14px); }
.pxab-restaurant-public-table--unavailable:hover,
.pxab-restaurant-public-table--unavailable:focus-visible { background-color:#fee2e2;background-image:repeating-linear-gradient(135deg,#fee2e2 0 7px,#fecaca 7px 14px); }
.pxab-restaurant-public-table--staff_only:hover,
.pxab-restaurant-public-table--staff_only:focus-visible { background-color:#f5f3ff;background-image:repeating-linear-gradient(135deg,rgba(109,40,217,.14) 0 7px,rgba(255,255,255,.45) 7px 14px); }
.pxab-restaurant-public-table--disabled:hover,
.pxab-restaurant-public-table--disabled:focus-visible { background-color:#e7e5e4;background-image:repeating-linear-gradient(135deg,rgba(68,64,60,.13) 0 7px,rgba(255,255,255,.34) 7px 14px); }
@media (prefers-reduced-motion: reduce) { [data-pxab-restaurant-public-floor].is-customer-revealing { animation:none!important; } }


/* v1.0.394 compact identifiers, state-stable focus and optional modern depth. */
:is(.pxab-restaurant-booking,.pxab-restaurant-booking-controls-context) .pxab-restaurant-public-table__label {
    position: relative;
    z-index: 4;
    display: inline-grid;
    place-items: center;
    inline-size: clamp(22px, 3.1vw, 31px);
    block-size: clamp(22px, 3.1vw, 31px);
    max-inline-size: none;
    min-inline-size: 22px;
    padding: 0;
    overflow: visible;
    border: 2px solid currentColor;
    border-radius: 50%;
    background: rgba(255,255,255,.94);
    color: #111827;
    box-shadow: 0 1px 4px rgba(15,23,42,.18);
    font-size: clamp(9px,1.15vw,12px);
    font-weight: 900;
    line-height: 1;
    text-overflow: clip;
    white-space: nowrap;
}
:is(.pxab-restaurant-booking,.pxab-restaurant-booking-controls-context) .pxab-restaurant-public-table--round .pxab-restaurant-public-table__label {
    max-inline-size: none;
}
:is(.pxab-restaurant-booking,.pxab-restaurant-booking-controls-context) .pxab-restaurant-public-table:focus:not(:focus-visible),
:is(.pxab-restaurant-booking,.pxab-restaurant-booking-controls-context) .pxab-restaurant-public-table.is-detail-focus-return {
    outline: 0 !important;
    box-shadow: none !important;
}
:is(.pxab-restaurant-booking,.pxab-restaurant-booking-controls-context) .pxab-restaurant-public-table.is-detail-focus-return {
    filter: none !important;
}
:is(.pxab-restaurant-booking,.pxab-restaurant-booking-controls-context) .pxab-restaurant-public-table.is-selected {
    outline: 3px solid var(--pxab-restaurant-focus,var(--pxab-restaurant-accent,#b45309));
    outline-offset: 3px;
}
/* Preserve the semantic fill on pointer, keyboard focus and returned modal focus. */
:is(.pxab-restaurant-booking,.pxab-restaurant-booking-controls-context) .pxab-restaurant-public-table--available:is(:hover,:focus-visible,.is-selected,.is-detail-focus-return) { border-color:#15803d; background-color:#ecfdf5; background-image:repeating-linear-gradient(135deg,#ecfdf5 0 7px,#d1fae5 7px 14px); color:#14532d; }
:is(.pxab-restaurant-booking,.pxab-restaurant-booking-controls-context) .pxab-restaurant-public-table--extra_seats:is(:hover,:focus-visible,.is-selected,.is-detail-focus-return) { border-color:#2563eb; background-color:#eff6ff; background-image:repeating-linear-gradient(135deg,#eff6ff 0 7px,#dbeafe 7px 14px); color:#1e3a8a; }
:is(.pxab-restaurant-booking,.pxab-restaurant-booking-controls-context) .pxab-restaurant-public-table--too_small:is(:hover,:focus-visible,.is-selected,.is-detail-focus-return),
:is(.pxab-restaurant-booking,.pxab-restaurant-booking-controls-context) .pxab-restaurant-public-table--minimum_party:is(:hover,:focus-visible,.is-selected,.is-detail-focus-return) { border-color:#c2410c; background-color:#fff7ed; background-image:repeating-linear-gradient(135deg,#fff7ed 0 7px,#ffedd5 7px 14px); color:#7c2d12; }
:is(.pxab-restaurant-booking,.pxab-restaurant-booking-controls-context) .pxab-restaurant-public-table--unavailable:is(:hover,:focus-visible,.is-selected,.is-detail-focus-return) { border-color:#991b1b; background-color:#fee2e2; background-image:repeating-linear-gradient(135deg,#fee2e2 0 7px,#fecaca 7px 14px); color:#450a0a; }
:is(.pxab-restaurant-booking,.pxab-restaurant-booking-controls-context) .pxab-restaurant-public-table--staff_only:is(:hover,:focus-visible,.is-selected,.is-detail-focus-return) { border-color:#6d28d9; background-color:#f5f3ff; background-image:repeating-linear-gradient(135deg,rgba(109,40,217,.14) 0 7px,rgba(255,255,255,.45) 7px 14px); color:#2e1065; }
:is(.pxab-restaurant-booking,.pxab-restaurant-booking-controls-context) .pxab-restaurant-public-table--disabled:is(:hover,:focus-visible,.is-selected,.is-detail-focus-return) { border-color:#78716c; background-color:#e7e5e4; background-image:repeating-linear-gradient(135deg,rgba(68,64,60,.13) 0 7px,rgba(255,255,255,.34) 7px 14px); color:#292524; }

.pxab-restaurant-public-fixture--computer {
    overflow: visible;
    border: 3px solid var(--pxab-fixture-color,#334155);
    border-radius: 7px;
    background: linear-gradient(155deg,#fff 0 12%,var(--pxab-fixture-accent,#dbeafe) 13% 78%,#93c5fd 79% 100%);
    background-color: var(--pxab-fixture-color,#334155);
    box-shadow: inset 0 0 0 2px rgba(255,255,255,.75);
}
.pxab-restaurant-public-fixture--computer::before {
    content:"";
    position:absolute;
    left:42%;
    top:100%;
    width:16%;
    height:22%;
    background:var(--pxab-fixture-color,#334155);
}
.pxab-restaurant-public-fixture--computer::after {
    content:"";
    position:absolute;
    left:28%;
    top:117%;
    width:44%;
    height:8%;
    border-radius:999px;
    background:var(--pxab-fixture-color,#334155);
}
[data-pxab-floor-object-style="modern_3d"] .pxab-restaurant-public-table,
[data-pxab-floor-object-style="modern_3d"] .pxab-restaurant-public-fixture:not(.pxab-restaurant-public-fixture--wall):not(.pxab-restaurant-public-fixture--divider):not(.pxab-restaurant-public-fixture--window):not([class*="pxab-restaurant-public-fixture--door"]):not(.pxab-restaurant-public-fixture--doorway):not(.pxab-restaurant-public-fixture--plant):not(.pxab-restaurant-public-fixture--plant_tall):not(.pxab-restaurant-public-fixture--plant_pot):not(.pxab-restaurant-public-fixture--planter_box) {
    box-shadow: 0 7px 0 color-mix(in srgb,currentColor 25%,#0f172a), 0 12px 18px rgba(15,23,42,.2), inset 0 1px rgba(255,255,255,.85);
}
[data-pxab-floor-object-style="modern_3d"] .pxab-restaurant-public-table:hover,
[data-pxab-floor-object-style="modern_3d"] .pxab-restaurant-public-table:focus-visible {
    translate: 0 -2px;
}
@media (max-width:700px) {
    :is(.pxab-restaurant-booking,.pxab-restaurant-booking-controls-context) .pxab-restaurant-public-table__label { inline-size:22px; block-size:22px; min-inline-size:22px; font-size:9px; }
}
@media (prefers-reduced-motion:reduce) {
    [data-pxab-floor-object-style="modern_3d"] .pxab-restaurant-public-table:hover,
    [data-pxab-floor-object-style="modern_3d"] .pxab-restaurant-public-table:focus-visible { translate:none; }
}

/* v1.0.395 attached openings use the host wall's complete visual thickness. */
.pxab-restaurant-public-fixture--doorway,
.pxab-restaurant-public-fixture--door_single,
.pxab-restaurant-public-fixture--door_double,
.pxab-restaurant-public-fixture--door_sliding,
.pxab-restaurant-public-fixture--door_staff,
.pxab-restaurant-public-fixture--door_emergency {
    box-sizing:border-box;
}


/* v1.0.402 semantic seating palette: suitable, extra-chair, warning and unavailable states. */
.pxab-restaurant-combination--available .pxab-restaurant-seating-state { border-color:#166534; background:#166534; color:#fff; }
.pxab-restaurant-combination--extra_seats .pxab-restaurant-seating-state { border-color:#1d4ed8; background:#1d4ed8; color:#fff; }
.pxab-restaurant-combination--too_small .pxab-restaurant-seating-state,
.pxab-restaurant-combination--minimum_party .pxab-restaurant-seating-state { border-color:#c2410c; background:#c2410c; color:#fff; }
.pxab-restaurant-combination--unavailable .pxab-restaurant-seating-state { border-color:#991b1b; background:#991b1b; color:#fff; }
.pxab-restaurant-combination--staff_only .pxab-restaurant-seating-state { border-color:#5b21b6; background:#5b21b6; color:#fff; }
.pxab-restaurant-combination--disabled .pxab-restaurant-seating-state { border-color:#44403c; background:#44403c; color:#fff; }

/* v1.0.747: mirror optional structure backing fills in the customer floor plan. */
.pxab-restaurant-public-fixture[data-pxab-background-mode="transparent"] {
    background-color: transparent;
}
.pxab-restaurant-public-fixture[data-pxab-background-mode="solid"] {
    background-color: var(--pxab-fixture-background-color, #fff);
}
