.hall-map-wrapper {
    overflow-x: auto;
}

.hall-row {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin-bottom: .6rem;
    min-width: max-content;
}

.hall-row-label {
    width: 90px;
    font-weight: 600;
    color: #555;
    text-align: right;
}

.hall-seats {
    display: flex;
    flex-wrap: nowrap;
    gap: .35rem;
}

.seat {
    min-width: 34px;
    height: 34px;
    border-radius: .55rem;
    border: 1px solid #adb5bd;
    font-size: .8rem;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.seat-available {
    background: #fff;
    color: #212529;
}

.seat-unavailable {
    background: #dc3545;
    color: #fff;
    border-color: #dc3545;
}

.seat-vip {
    background: #0d6efd;
    color: #fff;
    border-color: #0d6efd;
}

.seat-protocol {
    background: #ffc107;
    color: #212529;
    border-color: #ffc107;
}

.seat:hover {
    transform: translateY(-1px);
    box-shadow: 0 .25rem .5rem rgba(0,0,0,.15);
}
