.plass-grid {
    display: flex;
    flex-wrap: nowrap;
    flex-direction: row;
    justify-content: space-evenly;
}

.seat {
    font-family: system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif;
}

.seat-free {
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .1);
}

.seat-occupied {
    opacity: .8;
}

.seat-pending {
    opacity: .9;
}

.seat-yours {
    opacity: .9;
}

.seat-selected {
    box-shadow: inset 0 0 0 2px rgba(0, 0, 0, .2);
}

.table-group {
    border: 1px solid rgba(0, 0, 0, .4);
    border-radius: 8px;
    padding: 8px;
    margin-bottom: 12px;
    background: rgba(0, 0, 0, .02);
}

.table-label {
    font-weight: 800;
    margin-bottom: 6px;
    opacity: .7;
}

.row-label-combined {
    text-align: center;
    font-size: 0.9rem;
    font-weight: 600;
    opacity: .7;
    margin: 2px 0 6px 0;
}

.table-grid {
    display: grid;
    gap: 4px;
}

.table-grid-vertical {
    align-items: stretch;
}

/* Smooth reveal for cart/checkout section */
.reveal {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transform: translateY(-4px);
    transition: max-height 0.35s ease, opacity 0.35s ease, transform 0.35s ease;
}
.reveal.show {
    max-height: 1000px; /* should exceed content height */
    opacity: 1;
    transform: translateY(0);
}

/* Vipps checkout container tweaks */
#vipps-checkout-frame-container {
    width: 100%;
    min-height: 0; /* grows when open */
    scroll-margin-top: 16px; /* offset when scrolling into view */
}
#vipps-checkout-frame-container.open {
    min-height: 70vh; /* ensure page grows to fit the iframe area */
}