/* ==========================================================================
   1. Buyer component shell
   ========================================================================== */

.red-curtain-seating{
    --rc-border:#d7dde5;
    --rc-border-strong:#c7d0db;
    --rc-surface:#ffffff;
    --rc-surface-soft:#f4f6f8;
    --rc-canvas:#fbfcfd;
    --rc-text:#172033;
    --rc-muted:#667085;
    --rc-accent:#b42318;

    /*
     * Selection no longer replaces the product color.
     * These variables define the universal selection halo.
     */
    --rc-selection-inner:#ffffff;
    --rc-selection-outer:#626975;

    --rc-other-cart:#c62828;
    --rc-unavailable:#7b8491;

    width:100%;
    max-width:100%;
    font:inherit;
    color:var(--rc-text);
    box-sizing:border-box;
}

.red-curtain-seating *,
.red-curtain-seating *::before,
.red-curtain-seating *::after{
    box-sizing:border-box;
}

.rc-buyer-shell{
    width:100%;
    overflow:hidden;
    border:1px solid var(--rc-border);
    border-radius:14px;
    background:var(--rc-surface);
    box-shadow:
        0 1px 2px rgba(16,24,40,.04),
        0 8px 24px rgba(16,24,40,.06);
}


/* ==========================================================================
   2. Top toolbar
   ========================================================================== */

.rc-buyer-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    min-height:68px;
    padding:.85rem 1rem;
    border-bottom:1px solid var(--rc-border);
    background:rgba(255,255,255,.96);
}

.rc-buyer-heading{
    display:flex;
    flex-direction:column;
    gap:.15rem;
    min-width:0;
}

.rc-buyer-heading strong{
    color:var(--rc-text);
    font-size:1rem;
    font-weight:750;
    line-height:1.25;
}

.rc-buyer-heading span{
    color:var(--rc-muted);
    font-size:.82rem;
    line-height:1.35;
}

.rc-view-controls{
    display:flex;
    align-items:center;
    gap:.35rem;
    flex:0 0 auto;
    padding:.25rem;
    border:1px solid var(--rc-border);
    border-radius:10px;
    background:#fff;
    box-shadow:0 1px 2px rgba(16,24,40,.04);
}

.rc-view-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:34px;
    height:34px;
    padding:0 .65rem;
    border:0;
    border-radius:7px;
    background:transparent;
    color:#344054;
    font:inherit;
    font-size:1rem;
    font-weight:700;
    line-height:1;
    cursor:pointer;
    transition:
        background-color .15s ease,
        color .15s ease,
        opacity .15s ease;
}

.rc-view-button:hover,
.rc-view-button:focus-visible{
    background:#eef2f6;
    color:#101828;
    outline:none;
}

.rc-view-button:focus-visible{
    box-shadow:0 0 0 3px rgba(23,105,170,.18);
}

.rc-view-button:disabled{
    opacity:.38;
    cursor:default;
}

.rc-fit-chart{
    font-size:.78rem;
    letter-spacing:.01em;
}


/* ==========================================================================
   3. Interactive chart viewport
   ========================================================================== */

.rc-chart-viewport{
    position:relative;
    width:100%;
    height:clamp(380px,68vh,700px);
    overflow:hidden;
    overscroll-behavior:contain;
    touch-action:none;
    user-select:none;
    -webkit-user-select:none;
    background:
        radial-gradient(
            circle at center,
            rgba(255,255,255,.92),
            rgba(247,249,252,.96)
        );
    outline:none;
    cursor:grab;
}

.rc-chart-viewport:active{
    cursor:grabbing;
}

.rc-chart-viewport:focus-visible{
    box-shadow:
        inset 0 0 0 3px rgba(23,105,170,.18);
}

.rc-chart-frame{
    position:absolute;
    inset:0;
    overflow:hidden;
    pointer-events:none;
}

.rc-chart{
    position:absolute;
    left:0;
    top:0;
    width:auto;
    height:auto;
    overflow:visible;
    transform-origin:0 0;
    background:transparent;
    pointer-events:auto;
}


/* ==========================================================================
   4. Saved layout objects
   ========================================================================== */

.rc-layout-object{
    position:absolute;
    display:flex;
    align-items:center;
    justify-content:center;
    box-sizing:border-box;
    pointer-events:none;
}

.rc-layout-object-label{
    position:absolute;
    left:50%;
    top:50%;
    width:calc(100% - 8px);
    box-sizing:border-box;
    line-height:1.1;
    overflow-wrap:break-word;
}

.rc-layout-object-label.rc-symbol-label{
    width:var(--rc-symbol-size,100%);
    height:var(--rc-symbol-size,100%);
    line-height:1;
}

.rc-accessible-icon{
    display:block;
    width:100%;
    height:100%;
    color:inherit;
    overflow:visible;
}

.rc-layout-aisle{
    border:1px dashed #b8c1cc;
    border-radius:6px;
    color:#667085;
    background:rgba(255,255,255,.52);
    font-size:.75rem;
    font-weight:650;
    letter-spacing:.07em;
}

.rc-layout-table{
    border:2px solid #667085;
    border-radius:8px;
    background:#eef2f6;
    color:#344054;
    font-size:11px;
    font-weight:900;
}

.rc-layout-table.rc-table-round{
    border-radius:50%;
}

.rc-layout-text{
    color:#344054;
    font-weight:700;
    padding:0;
    overflow:hidden;
    white-space:normal;
}

.rc-layout-shape{
    border-style:solid;
    border-width:2px;
    border-radius:8px;
    font-weight:700;
}

.rc-layout-shape.rc-shape-triangle,
.rc-layout-shape.rc-shape-diamond,
.rc-layout-shape.rc-shape-arrow{
    overflow:visible;
    background:transparent!important;
    border-color:transparent!important;
}

.rc-layout-shape.rc-shape-triangle::before,
.rc-layout-shape.rc-shape-diamond::before,
.rc-layout-shape.rc-shape-arrow::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:0;
    background:var(--rc-shape-fill,currentColor);
}

.rc-layout-shape.rc-shape-triangle::before{
    clip-path:polygon(50% 0,100% 100%,0 100%);
}

.rc-layout-shape.rc-shape-diamond::before{
    clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);
}

.rc-layout-shape.rc-shape-arrow::before{
    clip-path:polygon(0 32%,66% 32%,66% 9%,100% 50%,66% 91%,66% 68%,0 68%);
}

.rc-shape-triangle .rc-layout-object-label,
.rc-shape-diamond .rc-layout-object-label,
.rc-shape-arrow .rc-layout-object-label{
    z-index:1;
}

.rc-layout-shape.rc-shape-curtains{
    background:
        repeating-linear-gradient(90deg,rgba(255,255,255,.10) 0 14px,rgba(0,0,0,.10) 14px 27px),
        var(--rc-shape-fill,#7a2330)!important;
}

.rc-shape-wheelchair{
    background:var(--rc-shape-fill,#2457c5)!important;
    border-color:var(--rc-shape-border,#1746a2)!important;
    padding:1px;
    min-width:22px;
    min-height:22px;
}

.rc-layout-shape.rc-shape-image{
    background:transparent!important;
    overflow:hidden;
    min-width:24px;
    min-height:24px;
}

.rc-layout-image-object{
    display:block;
    width:100%;
    height:100%;
    object-fit:contain;
    pointer-events:none;
    user-select:none;
}

.rc-shape-ellipse{
    border-radius:50%;
}

.rc-shape-stage{
    border-radius:8px;
    letter-spacing:.12em;
    box-shadow:
        0 1px 2px rgba(16,24,40,.08);
}

.rc-row-label{
    position:absolute;
    z-index:45;
    min-width:12px;
    color:#344054;
    font-size:11px;
    font-weight:800;
    line-height:1;
    pointer-events:none;
    transform:translateY(-50%);
}

.rc-row-label-left{
    text-align:right;
    transform:translate(-100%,-50%);
}

.rc-row-label-right{
    text-align:left;
}


/* ==========================================================================
   5. Seat markers
   ========================================================================== */

.rc-seat,
.red-curtain-seating button.rc-seat{
    position:absolute;
    z-index:50;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0!important;
    margin:0!important;
    border:1px solid rgba(17,24,39,.42)!important;
    border-radius:50%!important;

    /*
     * Available-seat color remains authoritative from the product/editor
     * pipeline. Buyer CSS does not substitute its own product color.
     */
    background:var(--rc-seat-product-color)!important;
    background-image:none!important;

    color:#fff!important;
    cursor:pointer;
    box-sizing:border-box;
    appearance:none;
    -webkit-appearance:none;
    min-width:0!important;
    min-height:0!important;

    box-shadow:
        inset 0 0 0 1px rgba(255,255,255,.28),
        0 1px 2px rgba(16,24,40,.18)!important;

    text-shadow:none!important;
    outline:none!important;

    transition:
        filter .12s ease,
        box-shadow .12s ease;
}

.rc-seat:hover,
.rc-seat:focus,
.rc-seat:focus-visible,
.rc-seat:active,
.red-curtain-seating button.rc-seat:hover,
.red-curtain-seating button.rc-seat:focus,
.red-curtain-seating button.rc-seat:focus-visible,
.red-curtain-seating button.rc-seat:active{
    z-index:80;
    background:var(--rc-seat-product-color)!important;
    background-image:none!important;
    color:#fff!important;
    filter:brightness(1.07);
    outline:none!important;

    box-shadow:
        inset 0 0 0 1px rgba(255,255,255,.42),
        0 0 0 2px rgba(255,255,255,.95),
        0 0 0 4px rgba(23,105,170,.34),
        0 3px 8px rgba(16,24,40,.2)!important;
}

.rc-seat-label{
    display:block;
    max-width:92%;
    overflow:hidden;
    white-space:nowrap;
    text-overflow:clip;
    opacity:0;
    transform:scale(.92);
    font-size:9px;
    font-weight:800;
    line-height:1;
    letter-spacing:-.02em;
    transition:opacity .12s ease;
    pointer-events:none;
}

.rc-chart.rc-show-seat-labels .rc-seat-label{
    opacity:1;
}


/* --------------------------------------------------------------------------
   Customer's own selection

   Preserve the underlying product color and communicate ownership using a
   universal double halo: white inner ring + dark outer ring.
   -------------------------------------------------------------------------- */

.rc-seat[data-state="SELECTED_BY_YOU"],
.red-curtain-seating button.rc-seat[data-state="SELECTED_BY_YOU"]{
    z-index:90;

    background:var(--rc-seat-product-color)!important;
    background-image:none!important;
    color:#fff!important;

    filter:none;

    box-shadow:
        inset 0 0 0 1px rgba(255,255,255,.38),
        0 0 0 .5px var(--rc-selection-inner),
        0 0 0 3.5px var(--rc-selection-outer),
        0 3px 8px rgba(16,24,40,.22)!important;
}

.rc-seat[data-state="SELECTED_BY_YOU"]:hover,
.rc-seat[data-state="SELECTED_BY_YOU"]:focus,
.rc-seat[data-state="SELECTED_BY_YOU"]:focus-visible,
.rc-seat[data-state="SELECTED_BY_YOU"]:active,
.red-curtain-seating button.rc-seat[data-state="SELECTED_BY_YOU"]:hover,
.red-curtain-seating button.rc-seat[data-state="SELECTED_BY_YOU"]:focus,
.red-curtain-seating button.rc-seat[data-state="SELECTED_BY_YOU"]:focus-visible,
.red-curtain-seating button.rc-seat[data-state="SELECTED_BY_YOU"]:active{
    background:var(--rc-seat-product-color)!important;
    background-image:none!important;
    color:#fff!important;
    filter:brightness(1.04);

    box-shadow:
        inset 0 0 0 1px rgba(255,255,255,.48),
        0 0 0 .5px var(--rc-selection-inner),
        0 0 0 3.5px var(--rc-selection-outer),
        0 4px 9px rgba(16,24,40,.25)!important;
}


/* --------------------------------------------------------------------------
   Seat temporarily held by another customer's cart
   -------------------------------------------------------------------------- */

.rc-seat[data-state="IN_OTHERS_CART"],
.red-curtain-seating button.rc-seat[data-state="IN_OTHERS_CART"]{
    background:var(--rc-other-cart)!important;
    background-image:none!important;
    color:#fff!important;
    filter:none;
    opacity:1;

    box-shadow:
        inset 0 0 0 1px rgba(255,255,255,.28),
        0 1px 2px rgba(16,24,40,.18)!important;
}


/* --------------------------------------------------------------------------
   Sold or otherwise unavailable
   -------------------------------------------------------------------------- */

.rc-seat[data-state="RESERVED"],
.rc-seat[data-state="UNAVAILABLE"],
.red-curtain-seating button.rc-seat[data-state="RESERVED"],
.red-curtain-seating button.rc-seat[data-state="UNAVAILABLE"]{
    background:var(--rc-unavailable)!important;
    background-image:none!important;
    color:#fff!important;
    filter:saturate(.2);
}


/* --------------------------------------------------------------------------
   Disabled interaction state

   Other-cart seats remain strongly red rather than being faded by the
   generic disabled-button treatment.
   -------------------------------------------------------------------------- */

.rc-seat:disabled,
.red-curtain-seating button.rc-seat:disabled{
    cursor:not-allowed;
    opacity:.7;
}

.rc-seat[data-state="IN_OTHERS_CART"]:disabled,
.red-curtain-seating button.rc-seat[data-state="IN_OTHERS_CART"]:disabled{
    opacity:1;
}


/* ==========================================================================
   6. Hover / focus seat tooltip
   ========================================================================== */

.rc-seat-tooltip{
    position:absolute;
    z-index:400;
    display:flex;
    flex-direction:column;
    gap:.18rem;
    min-width:120px;
    max-width:min(280px,80%);
    padding:.65rem .75rem;
    transform:translate(-50%,-100%);
    border:1px solid rgba(16,24,40,.10);
    border-radius:10px;
    background:rgba(255,255,255,.98);
    color:#101828;
    box-shadow:
        0 10px 30px rgba(16,24,40,.14),
        0 2px 8px rgba(16,24,40,.08);
    pointer-events:none;
}

.rc-seat-tooltip[hidden]{
    display:none;
}

.rc-seat-tooltip strong{
    font-size:.84rem;
    font-weight:750;
    line-height:1.2;
}

.rc-seat-tooltip span{
    font-size:.82rem;
    font-weight:700;
    line-height:1.2;
}

.rc-seat-tooltip small{
    color:#667085;
    font-size:.72rem;
    line-height:1.3;
}


/* ==========================================================================
   7. Gesture onboarding hint
   ========================================================================== */

.rc-gesture-hint{
    position:absolute;
    z-index:350;
    top:14px;
    right:14px;
    display:flex;
    align-items:center;
    justify-content:center;
    max-width:calc(100% - 28px);
    padding:.5rem .7rem;
    border:1px solid rgba(255,255,255,.58);
    border-radius:999px;
    background:rgba(17,24,39,.58);
    color:#fff;
    font-size:.75rem;
    font-weight:650;
    letter-spacing:.01em;
    line-height:1.2;
    box-shadow:0 3px 12px rgba(16,24,40,.14);
    backdrop-filter:blur(5px);
    -webkit-backdrop-filter:blur(5px);
    opacity:1;
    transform:translateY(0);
    transition:
        opacity .35s ease,
        transform .35s ease;
    pointer-events:none;
}

.rc-gesture-hint.is-hidden{
    opacity:0;
    transform:translateY(-6px);
}


/* ==========================================================================
   8. Floating seat key, footer and cart action
   ========================================================================== */


/* --------------------------------------------------------------------------
   Floating upper-left seat key
   -------------------------------------------------------------------------- */

.rc-floating-key{
    position:absolute;
    z-index:420;
    top:14px;
    left:14px;

    min-width:150px;
    max-width:min(300px,55%);

    overflow:hidden;

    border:1px solid rgba(255,255,255,.82);
    border-radius:11px;

    background:rgba(255,255,255,.94);
    color:#344054;

    box-shadow:
        0 8px 24px rgba(16,24,40,.11),
        0 2px 6px rgba(16,24,40,.06);

    backdrop-filter:blur(7px);
    -webkit-backdrop-filter:blur(7px);
}

.rc-key-toggle,
.red-curtain-seating button.rc-key-toggle{
    display:flex!important;
    align-items:center;
    justify-content:space-between;

    width:100%;
    min-height:35px;

    gap:.75rem;
    padding:.45rem .65rem!important;
    margin:0!important;

    border:0!important;
    border-radius:0!important;

    background:transparent!important;
    background-image:none!important;

    color:#344054!important;

    font:inherit;
    font-size:.76rem;
    font-weight:750;
    line-height:1.2;

    cursor:pointer;

    box-shadow:none!important;
    text-shadow:none!important;
    outline:none!important;
}

.rc-key-toggle:hover,
.rc-key-toggle:focus,
.rc-key-toggle:focus-visible,
.rc-key-toggle:active,
.red-curtain-seating button.rc-key-toggle:hover,
.red-curtain-seating button.rc-key-toggle:focus,
.red-curtain-seating button.rc-key-toggle:focus-visible,
.red-curtain-seating button.rc-key-toggle:active{
    background:#f3f5f7!important;
    background-image:none!important;
    color:#101828!important;
    outline:none!important;
    box-shadow:none!important;
}

.rc-key-chevron{
    flex:0 0 auto;
    font-size:1.05rem;
    line-height:1;
}

.rc-key-body{
    padding:.1rem .65rem .65rem;
}

.rc-floating-key.is-collapsed{
    width:auto;
    min-width:0;
}

.rc-floating-key.is-collapsed .rc-key-body{
    display:none;
}


/* --------------------------------------------------------------------------
   Seat-key entries
   -------------------------------------------------------------------------- */

.rc-legend{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:.45rem;

    min-width:0;

    color:#667085;

    font-size:.75rem;
    line-height:1.25;
}

.rc-legend-item{
    display:inline-flex;
    align-items:center;
    gap:.45rem;
    min-width:0;
}

.rc-legend-dot{
    width:12px;
    height:12px;

    flex:0 0 auto;

    border:1px solid rgba(17,24,39,.32);
    border-radius:50%;

    box-shadow:
        inset 0 0 0 1px rgba(255,255,255,.28);
}


/*
 * The selected example intentionally uses a neutral center.
 * The important visual language here is the same double halo used by seats.
 */
.rc-legend-selected{
    background:#98a2b3;

    box-shadow:
        0 0 0 .5px var(--rc-selection-inner),
        0 0 0 3px var(--rc-selection-outer);
}

.rc-legend-other-cart{
    background:var(--rc-other-cart);
}

.rc-legend-unavailable{
    background:var(--rc-unavailable);
}


/* --------------------------------------------------------------------------
   Buyer footer
   -------------------------------------------------------------------------- */

.rc-buyer-footer{
    display:flex;
    align-items:center;
    justify-content:flex-end;

    gap:1rem;

    padding:.8rem 1rem;

    border-top:1px solid var(--rc-border);

    background:#fff;
}

.rc-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;

    gap:.8rem;

    flex:0 0 auto;

    margin:0;
}

.rc-selection{
    color:#475467;

    font-size:.84rem;
    font-weight:650;

    white-space:nowrap;
}

.rc-checkout{
    min-height:40px;

    padding:.65rem 1rem;

    border:0;
    border-radius:8px;

    background:#b42318;
    color:#fff;

    font:inherit;
    font-size:.88rem;
    font-weight:750;

    cursor:pointer;

    box-shadow:
        0 1px 2px rgba(16,24,40,.08);

    transition:
        background-color .15s ease,
        opacity .15s ease,
        transform .15s ease;
}

.rc-checkout:hover:not(:disabled),
.rc-checkout:focus:not(:disabled),
.rc-checkout:focus-visible:not(:disabled){
    background:#912018;
    outline:none;

    box-shadow:
        0 0 0 3px rgba(180,35,24,.18);
}

.rc-checkout:active:not(:disabled){
    background:#7f1d16;
    transform:translateY(1px);
}

.rc-checkout:disabled{
    opacity:.42;
    cursor:not-allowed;
}

.rc-keep-shopping{
    min-height:40px;
    padding:.65rem 1rem;
    border:1px solid #98a2b3;
    border-radius:8px;
    background:#fff;
    color:#344054;
    font:inherit;
    font-size:.88rem;
    font-weight:750;
    cursor:pointer;

    box-shadow:
        0 1px 2px rgba(16,24,40,.08);

    transition:
        background-color .15s ease,
        border-color .15s ease;
}

.rc-keep-shopping:hover,
.rc-keep-shopping:focus-visible{
    border-color:#667085;
    background:#f9fafb;
    outline:3px solid rgba(52,64,84,.14);
}

/* ==========================================================================
   9. Waiting room and errors
   ========================================================================== */

.rc-holding{
    padding:2rem;
    border:1px solid #f0d98b;
    border-radius:12px;
    text-align:center;
    background:#fff8df;
    color:#42320a;
}

.rc-error{
    margin:0 0 .75rem;
    padding:.7rem .85rem;
    border:1px solid #f2c7c7;
    border-radius:8px;
    background:#fff2f2;
    color:#a00;
    font-weight:700;
}


/* ==========================================================================
   10. Mobile and narrow-screen behavior
   ========================================================================== */

@media(max-width:640px){

    .rc-buyer-shell{
        border-radius:10px;
    }

    .rc-buyer-toolbar{
        align-items:flex-start;
        min-height:62px;
        padding:.7rem .75rem;
    }

    .rc-buyer-heading span{
        display:none;
    }

    .rc-view-controls{
        gap:.2rem;
        padding:.2rem;
    }

    .rc-view-button{
        min-width:32px;
        height:32px;
        padding:0 .55rem;
    }

    .rc-chart-viewport{
        height:clamp(360px,62vh,560px);
    }


    /* Keep the seat key immediately visible without consuming much chart. */

    .rc-floating-key{
        top:10px;
        left:10px;
        max-width:58%;
    }

    .rc-key-toggle,
    .red-curtain-seating button.rc-key-toggle{
        min-height:32px;
        padding:.4rem .55rem!important;
        font-size:.72rem;
    }

    .rc-key-body{
        padding:.05rem .55rem .55rem;
    }

    .rc-legend{
        gap:.38rem;
        font-size:.7rem;
    }

    .rc-legend-dot{
        width:11px;
        height:11px;
    }


    /*
     * Navigation hint stays at upper right so it does not sit directly on top
     * of the seat key.
     */

    .rc-gesture-hint{
        top:10px;
        right:10px;
        max-width:40%;
        font-size:.7rem;
    }


    /* Footer contains the shopper-wide selection status and Checkout. */

    .rc-buyer-footer{
        padding:.75rem;
    }

    .rc-actions{
        width:100%;
        justify-content:space-between;
    }

    .rc-selection{
        white-space:normal;
    }

    .rc-checkout{
        flex:0 0 auto;
    }
}


/* ==========================================================================
   15. Session expiration
   ========================================================================== */

.rc-sr-only{
    position:absolute!important;
    width:1px!important;
    height:1px!important;
    padding:0!important;
    margin:-1px!important;
    overflow:hidden!important;
    clip:rect(0,0,0,0)!important;
    white-space:nowrap!important;
    border:0!important;
}

.rc-session-expired{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:420px;
    padding:2rem 1rem;
    border:1px solid var(--rc-border);
    border-radius:14px;
    background:
        radial-gradient(
            circle at center,
            rgba(255,255,255,.98),
            rgba(247,249,252,1)
        );
}

.rc-session-expired-card{
    width:min(520px,100%);
    padding:1.6rem;
    border:1px solid #d7dde5;
    border-radius:14px;
    background:#fff;
    text-align:center;
    box-shadow:
        0 12px 32px rgba(16,24,40,.10),
        0 2px 8px rgba(16,24,40,.06);
}

.rc-session-expired-card h2{
    margin:0 0 .55rem;
    color:#172033;
    font-size:1.25rem;
    line-height:1.25;
}

.rc-session-expired-card p{
    margin:0 auto 1.1rem;
    max-width:420px;
    color:#667085;
    font-size:.92rem;
    line-height:1.5;
}

.rc-session-restart,
.red-curtain-seating button.rc-session-restart{
    min-height:42px;
    padding:.7rem 1.2rem!important;
    margin:0!important;
    border:0!important;
    border-radius:8px!important;
    background:#b42318!important;
    background-image:none!important;
    color:#fff!important;
    font:inherit;
    font-weight:750;
    cursor:pointer;
    box-shadow:0 1px 2px rgba(16,24,40,.08)!important;
    text-shadow:none!important;
}

.rc-session-restart:hover,
.rc-session-restart:focus,
.rc-session-restart:focus-visible{
    background:#912018!important;
    color:#fff!important;
    outline:none!important;
    box-shadow:
        0 0 0 3px rgba(180,35,24,.18)!important;
}

.rc-session-restart:disabled{
    opacity:.58;
    cursor:wait;
}


/* ==========================================================================
   11. Reduced-motion preference
   ========================================================================== */

@media(prefers-reduced-motion:reduce){

    .rc-view-button,
    .rc-seat,
    .rc-seat-label,
    .rc-gesture-hint,
    .rc-checkout{
        transition:none;
    }
}

/* ==========================================================================
   12. Buyer toolbar guidance and session timer
   ========================================================================== */

.rc-buyer-toolbar{
    display:grid;
    grid-template-columns:minmax(220px,1fr) auto minmax(140px,1fr);
    align-items:center;
    gap:.6rem 1rem;
}

.rc-buyer-heading{
    justify-self:start;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:.12rem;
    min-width:0;
}

.rc-buyer-heading strong{
    white-space:nowrap;
}

.rc-session-timer{
    padding:.18rem .1rem;
    border:1px solid transparent;
    border-radius:999px;
    color:#667085;
    background:transparent;
    font-size:.84rem;
    font-weight:700;
    line-height:1.2;
    white-space:nowrap;
    transition:
        color .15s ease,
        background-color .15s ease,
        border-color .15s ease,
        padding .15s ease;
}

.rc-session-timer.is-warning{
    padding:.24rem .5rem;
    border-color:#e7c76c;
    background:#fff7dc;
    color:#8a5b00;
}

.rc-session-timer.is-critical{
    padding:.24rem .5rem;
    border-color:#e6a3a3;
    background:#fff0f0;
    color:#a61b1b;
    font-weight:800;
}

.rc-buyer-center{
    justify-self:center;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:.28rem;
    min-width:0;
}

.rc-event-title{
    max-width:560px;
    overflow:hidden;
    color:#1f2937;
    font-size:.98rem;
    font-weight:750;
    line-height:1.2;
    text-align:center;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.rc-buyer-tips{
    max-width:560px;
    padding:.38rem .65rem;
    border:1px solid #e3e8ef;
    border-radius:999px;
    background:#f7f9fb;
    color:#667085;
    font-size:.72rem;
    font-weight:650;
    line-height:1.25;
    text-align:center;
    white-space:nowrap;
}

.rc-view-controls{
    justify-self:end;
}

/* ==========================================================================
   13. Seat selection popup / mobile bottom sheet
   ========================================================================== */

.rc-selection-layer{
    position:fixed;
    inset:0;
    z-index:999999;
    display:block;
    pointer-events:none;
}

.rc-selection-layer[hidden]{
    display:none!important;
}

.rc-selection-dialog{
    position:fixed;
    width:min(430px,calc(100vw - 2rem));
    max-height:min(720px,calc(100vh - 2rem));
    overflow:auto;
    border:1px solid var(--rc-border);
    border-radius:14px;
    background:#fff;
    color:var(--rc-text);
    box-shadow:
        0 24px 60px rgba(15,23,42,.22),
        0 6px 18px rgba(15,23,42,.12);
    pointer-events:auto;
}

/* Same-page event-page launcher. The chart itself mounts only after opening. */
.rc-modal-launcher{
    display:inline-block;
}

.rc-modal-trigger{
    min-height:44px;
    padding:.72rem 1.2rem;
    border:0;
    border-radius:7px;
    background:#a20d05;
    color:#fff;
    font:inherit;
    font-weight:750;
    cursor:pointer;
}

.rc-modal-trigger:hover,
.rc-modal-trigger:focus-visible{
    background:#7f0a04;
    outline:3px solid rgba(162,13,5,.2);
    outline-offset:2px;
}

.rc-buyer-modal{
    width:min(1180px,calc(100vw - 2rem));
    max-width:none;
    max-height:calc(100vh - 2rem);
    padding:0;
    border:0;
    border-radius:14px;
    background:#fff;
    overflow:auto;
    box-shadow:0 28px 80px rgba(15,23,42,.32);
}

.rc-buyer-modal::backdrop{
    background:rgba(15,23,42,.68);
}

.rc-buyer-modal-frame{
    position:relative;
    padding:3rem 1rem 1rem;
}

.rc-buyer-modal-close{
    position:absolute;
    z-index:10;
    top:.55rem;
    right:.65rem;
    display:flex;
    align-items:center;
    justify-content:center;
    width:36px;
    height:36px;
    padding:0;
    border:0;
    border-radius:8px;
    background:#f2f4f7;
    color:#344054;
    font:inherit;
    font-size:1.5rem;
    line-height:1;
    cursor:pointer;
}

.rc-buyer-modal-close:hover,
.rc-buyer-modal-close:focus-visible{
    background:#e4e7ec;
    outline:2px solid #667085;
}

@media(max-width:640px){
    .rc-buyer-modal{
        width:100vw;
        max-height:100vh;
        margin:0;
        border-radius:0;
    }

    .rc-buyer-modal-frame{
        padding:3rem .35rem .35rem;
    }

    .rc-actions{
        flex-wrap:wrap;
    }
}

.rc-selection-dialog-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:1rem;
    padding:1rem 1rem .85rem;
    border-bottom:1px solid var(--rc-border);
}

.rc-selection-dialog-header > div{
    display:flex;
    flex-direction:column;
    gap:.18rem;
    min-width:0;
}

.rc-selection-dialog-header strong{
    font-size:1.05rem;
    font-weight:800;
    line-height:1.2;
}

.rc-selection-dialog-header span{
    color:var(--rc-muted);
    font-size:.8rem;
}

.rc-dialog-close,
.red-curtain-seating button.rc-dialog-close{
    display:flex!important;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    width:32px;
    height:32px;
    min-width:32px!important;
    min-height:32px!important;
    padding:0!important;
    margin:0!important;
    border:0!important;
    border-radius:8px!important;
    background:transparent!important;
    background-image:none!important;
    color:#667085!important;
    font:inherit;
    font-size:1.45rem;
    font-weight:500;
    line-height:1;
    cursor:pointer;
    box-shadow:none!important;
    text-shadow:none!important;
}

.rc-dialog-close:hover,
.rc-dialog-close:focus-visible{
    background:#f2f4f7!important;
    color:#101828!important;
    outline:none!important;
}

.rc-quantity-block,
.rc-ticket-options{
    padding:.9rem 1rem;
}

.rc-quantity-block{
    border-bottom:1px solid var(--rc-border);
}

.rc-field-label{
    display:block;
    margin-bottom:.55rem;
    color:#344054;
    font-size:.78rem;
    font-weight:750;
}

.rc-quantity-control{
    display:inline-flex;
    align-items:center;
    gap:.3rem;
    padding:.2rem;
    border:1px solid var(--rc-border-strong);
    border-radius:10px;
    background:#fff;
}

.rc-quantity-control button,
.red-curtain-seating .rc-quantity-control button{
    display:flex!important;
    align-items:center;
    justify-content:center;
    width:38px;
    height:38px;
    min-width:38px!important;
    min-height:38px!important;
    padding:0!important;
    margin:0!important;
    border:0!important;
    border-radius:8px!important;
    background:#f2f4f7!important;
    background-image:none!important;
    color:#344054!important;
    font:inherit;
    font-size:1.15rem;
    font-weight:800;
    cursor:pointer;
    box-shadow:none!important;
}

.rc-quantity-value{
    min-width:42px;
    text-align:center;
    font-size:1rem;
}

.rc-range-preview{
    display:block;
    margin-top:.5rem;
    color:var(--rc-muted);
    font-size:.78rem;
    font-weight:650;
}

.rc-ticket-options{
    display:flex;
    flex-direction:column;
    gap:.5rem;
}

.rc-ticket-option{
    display:flex;
    align-items:center;
    gap:.7rem;
    width:100%;
    padding:.7rem .75rem;
    border:1px solid var(--rc-border);
    border-radius:10px;
    background:#fff;
    cursor:pointer;
}

.rc-ticket-option:hover{
    border-color:#aeb8c5;
    background:#fafbfc;
}

.rc-ticket-option:has(input:checked){
    border-color:#667085;
    box-shadow:0 0 0 2px rgba(102,112,133,.12);
}

.rc-ticket-option input{
    width:17px;
    height:17px;
    flex:0 0 auto;
    margin:0;
}

.rc-ticket-option-copy{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    width:100%;
}

.rc-ticket-option-copy strong{
    color:#344054;
    font-size:.84rem;
    font-weight:750;
}

.rc-ticket-option-copy > span{
    color:#101828;
    font-size:.84rem;
    font-weight:800;
    white-space:nowrap;
}

.rc-selection-warning{
    margin:0;
    padding:.75rem;
    border-radius:8px;
    background:#fff4e5;
    color:#8a4b08;
    font-size:.8rem;
    font-weight:650;
}

.rc-selection-dialog-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:.55rem;
    padding:.85rem 1rem 1rem;
    border-top:1px solid var(--rc-border);
}

.rc-dialog-cancel,
.rc-dialog-remove,
.rc-dialog-confirm,
.red-curtain-seating button.rc-dialog-cancel,
.red-curtain-seating button.rc-dialog-remove,
.red-curtain-seating button.rc-dialog-confirm{
    min-height:40px;
    padding:.6rem .85rem!important;
    margin:0!important;
    border-radius:8px!important;
    font:inherit;
    font-size:.82rem;
    font-weight:750;
    cursor:pointer;
    text-shadow:none!important;
}

.rc-dialog-cancel,
.red-curtain-seating button.rc-dialog-cancel{
    border:1px solid var(--rc-border-strong)!important;
    background:#fff!important;
    background-image:none!important;
    color:#344054!important;
    box-shadow:none!important;
}

.rc-dialog-remove,
.red-curtain-seating button.rc-dialog-remove{
    margin-right:auto!important;
    border:1px solid #efc3bf!important;
    background:#fff7f6!important;
    background-image:none!important;
    color:#a52a20!important;
    box-shadow:none!important;
}

.rc-dialog-confirm,
.red-curtain-seating button.rc-dialog-confirm{
    border:0!important;
    background:var(--rc-accent)!important;
    background-image:none!important;
    color:#fff!important;
    box-shadow:0 1px 2px rgba(16,24,40,.08)!important;
}

.rc-dialog-confirm:hover:not(:disabled),
.rc-dialog-confirm:focus-visible:not(:disabled){
    background:#912018!important;
    outline:none!important;
    box-shadow:0 0 0 3px rgba(180,35,24,.18)!important;
}

.rc-dialog-confirm:disabled{
    opacity:.45;
    cursor:not-allowed;
}


/* ==========================================================================
   14. Narrow-screen toolbar and bottom-sheet behavior
   ========================================================================== */

@media(max-width:760px){

    .rc-buyer-toolbar{
        display:grid;
        grid-template-columns:minmax(0,1fr) auto;
        grid-template-rows:auto auto;
        gap:.65rem .7rem;
        align-items:start;
        padding:.75rem;
    }

    .rc-buyer-heading{
        grid-column:1;
        grid-row:1;
        justify-self:start;
        min-width:0;
    }

    .rc-buyer-heading span{
        display:none;
    }

    .rc-buyer-heading strong{
        font-size:.98rem;
    }

    .rc-session-timer{
        margin-top:.28rem;
        font-size:.72rem;
    }

    .rc-view-controls{
        grid-column:2;
        grid-row:1;
        justify-self:end;
        align-self:start;
    }

    .rc-buyer-center{
        grid-column:1 / -1;
        grid-row:2;
        justify-self:stretch;
        width:100%;
        gap:.35rem;
    }

    .rc-event-title{
        width:100%;
        max-width:100%;
        font-size:.95rem;
        white-space:normal;
    }

    .rc-buyer-tips{
        width:auto;
        max-width:100%;
        padding:.34rem .58rem;
        font-size:.7rem;
        white-space:normal;
    }
}

@media(max-width:640px){

    .rc-selection-layer{
        display:flex;
        align-items:flex-end;
        justify-content:center;
        padding:0;
        background:rgba(15,23,42,.32);
        backdrop-filter:blur(2px);
        -webkit-backdrop-filter:blur(2px);
        pointer-events:auto;
    }

    .rc-selection-dialog{
        position:relative;
        left:auto!important;
        top:auto!important;
        width:100%;
        max-height:82vh;
        border-right:0;
        border-bottom:0;
        border-left:0;
        border-radius:16px 16px 0 0;
        box-shadow:0 -12px 36px rgba(15,23,42,.18);
    }

    .rc-selection-dialog::before{
        content:'';
        display:block;
        width:38px;
        height:4px;
        margin:.45rem auto 0;
        border-radius:999px;
        background:#c7d0db;
    }

    .rc-selection-dialog-actions{
        position:sticky;
        bottom:0;
        background:#fff;
    }

    .rc-dialog-confirm,
    .red-curtain-seating button.rc-dialog-confirm{
        min-width:116px;
    }
}
