/* ===============================
   GLOBAL WRAPPER
=================================*/
#concert-seating-wrapper {
    text-align: center;
    margin: 20px auto;
    max-width: 1100px;
}

/* ===============================
   LEGEND
=================================*/
#cs-legend {
    display: flex;
    gap: 20px;
    justify-content: center;
    margin: 25px 0;
}

.cs-legend-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
}

.cs-legend-box {
    width: 20px;
    height: 20px;
    border-radius: 5px;
}

/* ===============================
   SECTION BLOCK (NO BACKGROUND)
=================================*/
.cs-section-block {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 30px auto !important;
    max-width: 900px;
}

/* BIG SECTION HEADER */
.cs-section-header {
    font-size: 32px;
    font-weight: 900;
    text-align: center;
    margin: 40px 0 20px 0;
    color: #111;
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* Row wrapper */
.cs-row-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 6px 0;
    padding: 6px 0;
    border-bottom: 1px dashed #ddd;
}

/* Row container */
.cs-row {
    display: flex !important;
    justify-content: center;
    align-items: center;
    gap: 4px;
}

/* Center aisle */
.cs-aisle {
    width: 40px;
    flex-shrink: 0;
}

/* Row labels */
.cs-row-label {
    width: 50px;
    text-align: right;
    padding-right: 10px;
    font-weight: 700;
    font-size: 16px;
    color: #222;
}
.cs-row-label-right {
    width: 50px;
    text-align: left;
    padding-left: 10px;
    font-weight: 700;
    font-size: 16px;
    color: #222;
}

/* Seats */
.cs-seat {
    width: 34px;
    height: 34px;
    background: #3498db;
    color: #fff;
    border-radius: 6px;
    line-height: 34px;
    text-align: center;
    cursor: pointer;
    transition: .15s;
    position: relative;
}

.cs-seat:hover {
    transform: scale(1.15);
}

.cs-seat.selected {
    background: #2ecc71 !important;
    transform: scale(1.2);
}

.cs-seat.sold {
    background: #c0392b !important;
    cursor: not-allowed;
}

.cs-seat.reserved {
    background: #e67e22 !important;
    cursor: not-allowed;
}

/* Tooltip */
.cs-seat-tooltip {
    display: none;
    position: absolute;
    top: -40px;
    left: 50%;
    transform: translateX(-50%);
    background: #222;
    color: #fff;
    padding: 4px 8px;
    border-radius: 5px;
    font-size: 12px;
    white-space: nowrap;
    z-index: 20;
}

.cs-seat:hover .cs-seat-tooltip {
    display: block;
}

/* Stage */
.cs-stage {
    background: #333;
    color: #fff;
    font-weight: bold;
    font-size: 22px;
    height: 55px;
    border-radius: 8px;
    line-height: 55px;
    max-width: 400px;
    margin: 40px auto 0 auto;
}
