/* =========================================================
   STAFF COURT SCHEDULE — THEME COLORS
   ========================================================= */

/* Main schedule shell */
.staff-court-schedule-page,
.staff-court-schedule-page .panel,
.staff-court-schedule,
.staff-court-schedule-wrap{
    --dp-schedule-accent: var(--dp-accent);
    --dp-schedule-accent-2: color-mix(in srgb, var(--dp-accent) 72%, white);
    --dp-schedule-accent-soft: color-mix(in srgb, var(--dp-accent) 16%, white);
    --dp-schedule-accent-border: color-mix(in srgb, var(--dp-accent) 34%, white);
    --dp-schedule-accent-deep: color-mix(in srgb, var(--dp-accent) 86%, black 10%);
}


/* ---------------------------------------------------------
   LEGEND CHIPS / STATUS DOTS
   --------------------------------------------------------- */

.staff-court-schedule-page .available,
.staff-court-schedule-page .status-available,
.staff-court-schedule-page .legend-available,
.staff-court-schedule-page .court-status.available{
    color: var(--dp-schedule-accent-deep) !important;
}

.staff-court-schedule-page .available::before,
.staff-court-schedule-page .status-available::before,
.staff-court-schedule-page .legend-available::before,
.staff-court-schedule-page .court-status.available::before{
    background: var(--dp-schedule-accent) !important;
}

.staff-court-schedule-page .booked,
.staff-court-schedule-page .status-booked,
.staff-court-schedule-page .legend-booked,
.staff-court-schedule-page .court-status.booked{
    color: color-mix(in srgb, var(--dp-accent) 88%, #1d4ed8 12%) !important;
}

.staff-court-schedule-page .booked::before,
.staff-court-schedule-page .status-booked::before,
.staff-court-schedule-page .legend-booked::before,
.staff-court-schedule-page .court-status.booked::before{
    background: color-mix(in srgb, var(--dp-accent) 72%, #3b82f6 28%) !important;
}

.staff-court-schedule-page .hold,
.staff-court-schedule-page .on-hold,
.staff-court-schedule-page .status-hold,
.staff-court-schedule-page .legend-hold,
.staff-court-schedule-page .court-status.hold{
    color: #b76b00 !important;
}

.staff-court-schedule-page .hold::before,
.staff-court-schedule-page .on-hold::before,
.staff-court-schedule-page .status-hold::before,
.staff-court-schedule-page .legend-hold::before,
.staff-court-schedule-page .court-status.hold::before{
    background: #f2b233 !important;
}

.staff-court-schedule-page .openplay,
.staff-court-schedule-page .open-play,
.staff-court-schedule-page .status-openplay,
.staff-court-schedule-page .legend-openplay,
.staff-court-schedule-page .court-status.openplay{
    color: color-mix(in srgb, var(--dp-accent) 78%, #7c3aed 22%) !important;
}

.staff-court-schedule-page .openplay::before,
.staff-court-schedule-page .open-play::before,
.staff-court-schedule-page .status-openplay::before,
.staff-court-schedule-page .legend-openplay::before,
.staff-court-schedule-page .court-status.openplay::before{
    background: color-mix(in srgb, var(--dp-accent) 64%, #8b5cf6 36%) !important;
}

.staff-court-schedule-page .blocked,
.staff-court-schedule-page .offline,
.staff-court-schedule-page .status-blocked,
.staff-court-schedule-page .legend-blocked,
.staff-court-schedule-page .court-status.blocked,
.staff-court-schedule-page .court-status.offline{
    color: #5f6b7a !important;
}

.staff-court-schedule-page .blocked::before,
.staff-court-schedule-page .offline::before,
.staff-court-schedule-page .status-blocked::before,
.staff-court-schedule-page .legend-blocked::before,
.staff-court-schedule-page .court-status.blocked::before,
.staff-court-schedule-page .court-status.offline::before{
    background: #9aa3af !important;
}

.staff-court-schedule-page .past,
.staff-court-schedule-page .status-past,
.staff-court-schedule-page .legend-past{
    color: #8a94a6 !important;
}

.staff-court-schedule-page .past::before,
.staff-court-schedule-page .status-past::before,
.staff-court-schedule-page .legend-past::before{
    background: #d7dde6 !important;
}


/* ---------------------------------------------------------
   SCHEDULE TABLE / SLOT COLORS
   --------------------------------------------------------- */

.staff-court-schedule-page [class*="slot"].available,
.staff-court-schedule-page td.available,
.staff-court-schedule-page .schedule-cell.available{
    background:
        linear-gradient(
            135deg,
            color-mix(in srgb, var(--dp-accent) 14%, white) 0%,
            color-mix(in srgb, var(--dp-accent) 8%, white) 100%
        ) !important;

    border-color:
        color-mix(in srgb, var(--dp-accent) 26%, white) !important;
}

.staff-court-schedule-page [class*="slot"].booked,
.staff-court-schedule-page td.booked,
.staff-court-schedule-page .schedule-cell.booked{
    background:
        linear-gradient(
            135deg,
            color-mix(in srgb, var(--dp-accent) 22%, #dbeafe 78%) 0%,
            color-mix(in srgb, var(--dp-accent) 15%, #eff6ff 85%) 100%
        ) !important;

    border-color:
        color-mix(in srgb, var(--dp-accent) 38%, #bfdbfe 62%) !important;
}

.staff-court-schedule-page [class*="slot"].hold,
.staff-court-schedule-page [class*="slot"].on-hold,
.staff-court-schedule-page td.hold,
.staff-court-schedule-page .schedule-cell.hold{
    background:
        linear-gradient(
            135deg,
            #fff1c7 0%,
            #fff8df 100%
        ) !important;

    border-color: #f2d27a !important;
}

.staff-court-schedule-page [class*="slot"].openplay,
.staff-court-schedule-page [class*="slot"].open-play,
.staff-court-schedule-page td.openplay,
.staff-court-schedule-page .schedule-cell.openplay{
    background:
        linear-gradient(
            135deg,
            color-mix(in srgb, var(--dp-accent) 18%, #f3e8ff 82%) 0%,
            color-mix(in srgb, var(--dp-accent) 12%, #faf5ff 88%) 100%
        ) !important;

    border-color:
        color-mix(in srgb, var(--dp-accent) 32%, #d8b4fe 68%) !important;
}

.staff-court-schedule-page [class*="slot"].blocked,
.staff-court-schedule-page [class*="slot"].offline,
.staff-court-schedule-page td.blocked,
.staff-court-schedule-page td.offline,
.staff-court-schedule-page .schedule-cell.blocked,
.staff-court-schedule-page .schedule-cell.offline{
    background:
        repeating-linear-gradient(
            -45deg,
            #eef2f4 0px,
            #eef2f4 10px,
            #e5eaef 10px,
            #e5eaef 20px
        ) !important;

    border-color: #c7d0da !important;
}

.staff-court-schedule-page [class*="slot"].past,
.staff-court-schedule-page td.past,
.staff-court-schedule-page .schedule-cell.past{
    background:
        repeating-linear-gradient(
            -45deg,
            #f7f9fb 0px,
            #f7f9fb 10px,
            #f0f3f7 10px,
            #f0f3f7 20px
        ) !important;

    border-color: #e2e8f0 !important;
    opacity: .92;
}


/* ---------------------------------------------------------
   COURT LABELS / DATE BAR ACCENTS
   --------------------------------------------------------- */

.staff-court-schedule-page .court-name,
.staff-court-schedule-page .court-label b{
    color: var(--dp-text) !important;
}

.staff-court-schedule-page .court-meta,
.staff-court-schedule-page .court-label small{
    color: color-mix(in srgb, var(--dp-accent) 76%, #526079 24%) !important;
}

.staff-court-schedule-page .today,
.staff-court-schedule-page .is-today{
    border-color: var(--dp-accent) !important;
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--dp-accent) 25%, white) inset;
}


/* =========================================================
   STAFF COURT SCHEDULE — ACTUAL THEME OVERRIDES V2
   Uses real StaffCourtSchedule class names
   ========================================================= */


/* ---------------------------------------------------------
   LIVE HEADER
   --------------------------------------------------------- */

.staff-timeline-page
.staff-schedule-head h2 span{
    color:var(--dp-accent-text) !important;
}


/* ---------------------------------------------------------
   TOOLBAR / DATE CONTROLS
   --------------------------------------------------------- */

.staff-timeline-page
.staff-schedule-toolbar{
    border-color:
        var(--dp-theme-border) !important;

    background:
        linear-gradient(
            135deg,
            #fff 0%,
            var(--dp-theme-faint) 100%
        ) !important;
}

.staff-timeline-page
.staff-date-controls input{
    border-color:
        var(--dp-theme-border) !important;
}

.staff-timeline-page
.staff-date-controls button{
    border-color:
        var(--dp-theme-border) !important;

    color:
        var(--dp-accent-text) !important;

    background:#fff !important;
}

.staff-timeline-page
.staff-date-controls button:hover:not(:disabled){
    color:#fff !important;
    background:var(--dp-accent) !important;
    border-color:var(--dp-accent) !important;
}


/* TODAY BUTTON — stronger theme accent */

.staff-timeline-page
.staff-date-controls button:nth-of-type(2){
    color:#fff !important;

    background:
        linear-gradient(
            90deg,
            var(--dp-accent),
            var(--dp-accent-2)
        ) !important;

    border-color:
        var(--dp-accent) !important;
}


/* ---------------------------------------------------------
   LEGEND
   --------------------------------------------------------- */

.staff-timeline-page
.staff-schedule-legend span::before{
    box-shadow:
        0 0 0 2px #fff,
        0 0 0 3px rgba(15,23,42,.06);
}


/* AVAILABLE = CURRENT DEWPOINT THEME */

.staff-timeline-page
.staff-schedule-legend .available::before{
    background:
        var(--dp-accent) !important;
}


/* BOOKED = BLUE */

.staff-timeline-page
.staff-schedule-legend .booked::before{
    background:#3b82f6 !important;
}


/* ON HOLD = ORANGE */

.staff-timeline-page
.staff-schedule-legend .hold::before{
    background:#f59e0b !important;
}


/* OPEN PLAY = VIOLET */

.staff-timeline-page
.staff-schedule-legend .openplay::before{
    background:#8b5cf6 !important;
}


/* BLOCKED / OFFLINE = GRAY */

.staff-timeline-page
.staff-schedule-legend .blocked::before{
    background:#94a3b8 !important;
}


/* PAST */

.staff-timeline-page
.staff-schedule-legend .past::before{
    background:#d7dce3 !important;
}


/* ---------------------------------------------------------
   LOCAL TIME NOTICE
   --------------------------------------------------------- */

.staff-timeline-page
.staff-local-time-note{
    color:
        var(--dp-accent-text) !important;

    border-color:
        var(--dp-theme-border) !important;

    background:
        var(--dp-theme-faint) !important;
}


/* ---------------------------------------------------------
   TIMELINE CARD
   --------------------------------------------------------- */

.staff-timeline-page
.staff-timeline-card{
    border-color:
        var(--dp-theme-border) !important;
}

.staff-timeline-page
.staff-timeline-header{
    background:
        linear-gradient(
            180deg,
            var(--dp-theme-faint),
            #fff
        ) !important;
}

.staff-timeline-page
.staff-court-column-title{
    color:
        var(--dp-accent-text) !important;
}


/* ---------------------------------------------------------
   AVAILABLE COURT ROW
   --------------------------------------------------------- */

.staff-timeline-page
.staff-court-label span.available{
    color:
        var(--dp-accent-text) !important;
}

.staff-timeline-page
.staff-court-label span.available i{
    background:
        var(--dp-accent) !important;

    box-shadow:
        0 0 0 3px
        var(--dp-theme-soft) !important;
}


/* ---------------------------------------------------------
   EMPTY / AVAILABLE TIMELINE CELLS
   --------------------------------------------------------- */

.staff-timeline-page
.staff-timeline-cells{
    background:
        linear-gradient(
            135deg,
            var(--dp-theme-faint) 0%,
            color-mix(
                in srgb,
                var(--dp-accent) 4%,
                white
            ) 100%
        ) !important;
}

.staff-timeline-page
.staff-timeline-slot{
    border-color:
        color-mix(
            in srgb,
            var(--dp-accent) 12%,
            #e4e9ee
        ) !important;
}


/* FUTURE AVAILABLE CELLS — subtle theme stripes */

.staff-timeline-page
.staff-timeline-slot:not(.past){
    background:
        repeating-linear-gradient(
            -45deg,
            color-mix(
                in srgb,
                var(--dp-accent) 4%,
                white
            ) 0px,
            color-mix(
                in srgb,
                var(--dp-accent) 4%,
                white
            ) 10px,
            color-mix(
                in srgb,
                var(--dp-accent) 8%,
                white
            ) 10px,
            color-mix(
                in srgb,
                var(--dp-accent) 8%,
                white
            ) 20px
        ) !important;
}


/* PAST stays muted */

.staff-timeline-page
.staff-timeline-slot.past{
    background:
        repeating-linear-gradient(
            -45deg,
            #f7f8fa 0px,
            #f7f8fa 10px,
            #eef1f4 10px,
            #eef1f4 20px
        ) !important;

    opacity:.82;
}


/* ---------------------------------------------------------
   BOOKING EVENTS
   --------------------------------------------------------- */

.staff-timeline-page
.staff-timeline-event.booked{
    color:#1e3a8a !important;

    border-color:#60a5fa !important;

    background:
        linear-gradient(
            135deg,
            #dbeafe,
            #bfdbfe
        ) !important;
}


/* ON HOLD */

.staff-timeline-page
.staff-timeline-event.hold{
    color:#92400e !important;

    border-color:#f59e0b !important;

    background:
        linear-gradient(
            135deg,
            #fef3c7,
            #fde68a
        ) !important;
}


/* OPEN PLAY */

.staff-timeline-page
.staff-timeline-event.openplay{
    color:#5b21b6 !important;

    border-color:#a78bfa !important;

    background:
        linear-gradient(
            135deg,
            #ede9fe,
            #ddd6fe
        ) !important;
}


/* BLOCKED */

.staff-timeline-page
.staff-timeline-event.blocked{
    color:#475569 !important;

    border-color:#94a3b8 !important;

    background:
        repeating-linear-gradient(
            -45deg,
            #e2e8f0 0px,
            #e2e8f0 9px,
            #cbd5e1 9px,
            #cbd5e1 18px
        ) !important;
}


/* ---------------------------------------------------------
   ROW STATUS DOTS
   --------------------------------------------------------- */

.staff-timeline-page
.staff-court-label span.booked i{
    background:#3b82f6 !important;
}

.staff-timeline-page
.staff-court-label span.hold i{
    background:#f59e0b !important;
}

.staff-timeline-page
.staff-court-label span.openplay i{
    background:#8b5cf6 !important;
}

.staff-timeline-page
.staff-court-label span.blocked i,
.staff-timeline-page
.staff-court-label span.offline i{
    background:#94a3b8 !important;
}


/* ---------------------------------------------------------
   NOW MARKER
   --------------------------------------------------------- */

.staff-timeline-page
.staff-now-marker{
    background:
        var(--dp-accent) !important;
}

.staff-timeline-page
.staff-now-marker::before{
    background:
        var(--dp-accent) !important;
}
