/* ============================================================
   PLAYMEU OWNER — COURTS & SCHEDULE
   Canonical stylesheet
   Phase 1E exact-master frontend candidate

   This file is the only Courts & Schedule stylesheet.
   No override stylesheet. No legacy theme/layout layer.
   ============================================================ */

.pm-cs-page{
    --pm-cs-navy:#10213a;
    --pm-cs-lime:#b8f23c;
    --pm-cs-text:#14233a;
    --pm-cs-muted:#758399;
    --pm-cs-line:#e2e8f0;
    --pm-cs-card:#fff;
    --pm-cs-green:#1f9b58;
    --pm-cs-green-bg:#eaf8ef;
    --pm-cs-blue:#2c67ba;
    --pm-cs-blue-bg:#e9f2ff;
    --pm-cs-purple:#7048d4;
    --pm-cs-purple-bg:#f1ecff;
    --pm-cs-red:#bd4257;
    --pm-cs-red-bg:#ffedef;
    --pm-cs-amber:#a96a12;
    --pm-cs-amber-bg:#fff3dd;

    width:100%;
    max-width:1500px;
    margin:0 auto;
    color:var(--pm-cs-text);
    font-family:inherit;
}

.pm-cs-page *,
.pm-cs-page *::before,
.pm-cs-page *::after{
    box-sizing:border-box;
}

/* PAGE HEADER */
.pm-cs-page-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    margin-bottom:11px;
}
.pm-cs-page-heading h1{
    margin:0;
    font-size:25px;
    line-height:1.1;
    font-weight:850;
    letter-spacing:-.03em;
    color:var(--pm-cs-text);
}
.pm-cs-page-heading p{
    max-width:730px;
    margin:4px 0 0;
    color:var(--pm-cs-muted);
    font-size:12px;
    line-height:1.45;
}
.pm-cs-page-actions{
    display:flex;
    justify-content:flex-end;
    flex-wrap:wrap;
    gap:6px;
}

/* BUTTONS */
.pm-cs-btn{
    min-height:34px;
    padding:6px 10px;
    border:1px solid var(--pm-cs-line);
    border-radius:8px;
    background:#fff;
    color:var(--pm-cs-text);
    font:inherit;
    font-size:12px;
    font-weight:700;
    line-height:1;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    cursor:pointer;
}
.pm-cs-btn:hover:not(:disabled){background:#f8fafc}
.pm-cs-btn:focus-visible,
.pm-cs-tab:focus-visible,
.pm-cs-slot:focus-visible,
.pm-cs-icon-button:focus-visible,
.pm-cs-switch-row:focus-visible,
.pm-cs-player-results button:focus-visible{
    outline:2px solid #4d7fc0;
    outline-offset:2px;
}
.pm-cs-btn:disabled{
    opacity:.5;
    cursor:not-allowed;
}
.pm-cs-btn-primary{
    background:var(--pm-cs-navy);
    border-color:var(--pm-cs-navy);
    color:#fff;
}
.pm-cs-btn-primary:hover:not(:disabled){background:#142c49}
.pm-cs-btn-icon{
    width:34px;
    padding:0;
    font-size:18px;
}
.pm-cs-date-button{
    min-width:126px;
    cursor:default;
}

/* SUMMARY CARDS */
.pm-cs-card{
    background:var(--pm-cs-card);
    border:1px solid var(--pm-cs-line);
    border-radius:12px;
    box-shadow:0 4px 15px rgba(30,50,80,.035);
}
.pm-cs-stats-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
    margin-bottom:11px;
}
.pm-cs-stat-card{padding:13px}
.pm-cs-stat-top{
    display:flex;
    align-items:center;
    justify-content:space-between;
}
.pm-cs-stat-label{
    color:#66758a;
    font-size:11px;
    font-weight:700;
}
.pm-cs-stat-icon{
    width:32px;
    height:32px;
    border-radius:9px;
    display:grid;
    place-items:center;
    background:#eff4fb;
    color:#25466c;
    font-size:16px;
    font-weight:800;
}
.pm-cs-stat-value{
    margin-top:4px;
    font-size:25px;
    font-weight:850;
    line-height:1.05;
    letter-spacing:-.03em;
}
.pm-cs-stat-sub{
    margin-top:2px;
    color:var(--pm-cs-muted);
    font-size:10px;
    line-height:1.4;
}

/* DAY / WEEK + DATE NAV */
.pm-cs-schedule-controls{
    display:flex;
    justify-content:space-between;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
    margin-bottom:9px;
}
.pm-cs-tabs{
    display:flex;
    width:max-content;
    gap:3px;
    padding:3px;
    border-radius:8px;
    background:#f2f5f9;
}
.pm-cs-tab{
    padding:6px 9px;
    border:0;
    border-radius:6px;
    background:transparent;
    color:#6c7b90;
    font:inherit;
    font-size:11px;
    font-weight:800;
    cursor:pointer;
}
.pm-cs-tab-active{
    background:#fff;
    color:var(--pm-cs-text);
    box-shadow:0 1px 4px rgba(20,35,58,.08);
}
.pm-cs-date-nav{
    display:flex;
    align-items:center;
    gap:7px;
}

/* LEGEND */
.pm-cs-toolbar{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:6px;
    padding:8px 10px;
    margin-bottom:9px;
    border:1px solid var(--pm-cs-line);
    border-radius:10px;
    background:#fbfcfe;
}
.pm-cs-tiny{font-size:10px}
.pm-cs-status{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:3px 7px;
    border-radius:999px;
    font-size:9px;
    font-weight:850;
    white-space:nowrap;
}
.pm-cs-status-blue{
    background:var(--pm-cs-blue-bg);
    color:var(--pm-cs-blue);
}
.pm-cs-status-purple{
    background:var(--pm-cs-purple-bg);
    color:var(--pm-cs-purple);
}
.pm-cs-status-red{
    background:var(--pm-cs-red-bg);
    color:var(--pm-cs-red);
}
.pm-cs-status-gray{
    background:#eef2f6;
    color:#68778b;
}
.pm-cs-legend-note{
    margin-left:auto;
    color:var(--pm-cs-muted);
    font-size:9px;
}

/* SCHEDULE */
.pm-cs-schedule-board{
    width:100%;
    overflow:auto;
    border:1px solid var(--pm-cs-line);
    border-radius:12px;
    background:#fff;
    overscroll-behavior-inline:contain;
    -webkit-overflow-scrolling:touch;
}
.pm-cs-schedule-table{
    width:100%;
    border-collapse:collapse;
    table-layout:fixed;
    font-size:11px;
}
.pm-cs-schedule-table thead th{
    min-width:142px;
    padding:8px 9px;
    border-bottom:1px solid var(--pm-cs-line);
    background:#f8fafc;
    color:#68778c;
    text-align:left;
    text-transform:uppercase;
    letter-spacing:.06em;
    font-size:9px;
    font-weight:800;
    white-space:nowrap;
}
.pm-cs-schedule-table tbody td{
    min-width:142px;
    padding:8px 9px;
    border-bottom:1px solid #edf1f5;
    vertical-align:middle;
    background:#fff;
}
.pm-cs-schedule-table tbody tr:last-child td{border-bottom:0}
.pm-cs-schedule-table th:first-child,
.pm-cs-schedule-table td:first-child{
    position:sticky;
    left:0;
    z-index:2;
    width:128px;
    min-width:128px;
    max-width:128px;
    background:#fff;
}
.pm-cs-schedule-table thead th:first-child{
    z-index:4;
    background:#f8fafc;
}
.pm-cs-schedule-table tbody td:first-child{
    color:#27364b;
    box-shadow:1px 0 0 #edf1f5;
}
.pm-cs-week-table thead th:not(:first-child){
    min-width:142px;
}
.pm-cs-week-day{
    display:block;
    color:#526179;
}
.pm-cs-week-table thead small{
    display:block;
    margin-top:2px;
    color:#8794a7;
    font-size:8px;
    text-transform:none;
    letter-spacing:0;
}

.pm-cs-slot{
    width:100%;
    min-height:31px;
    padding:5px 6px;
    border:0;
    border-radius:7px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:flex-start;
    gap:1px;
    text-align:left;
    font:inherit;
    font-size:9px;
    font-weight:800;
}
.pm-cs-slot strong{
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.pm-cs-slot small{
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    opacity:.8;
    font-size:8px;
    font-weight:700;
}
.pm-cs-slot:disabled{opacity:1}
.pm-cs-slot-action{cursor:pointer}
.pm-cs-slot-open{
    border:1px dashed #d9e1ea;
    background:#f1f5f9;
    color:#8794a7;
}
.pm-cs-slot-booked{
    background:#e9f2ff;
    color:#2c67ba;
}
.pm-cs-slot-openplay{
    background:#f1ecff;
    color:#7048d4;
}
.pm-cs-slot-blocked{
    background:#ffedef;
    color:#bd4257;
}
.pm-cs-slot-closed{
    background:#eef2f6;
    color:#96a2b2;
}

/* STATES */
.pm-cs-loading,
.pm-cs-empty{
    min-height:160px;
    display:grid;
    place-items:center;
    padding:24px;
    border:1px solid var(--pm-cs-line);
    border-radius:12px;
    background:#fff;
    color:var(--pm-cs-muted);
    font-size:12px;
}
.pm-cs-error{
    padding:9px 10px;
    border:1px solid #f0ccd3;
    border-radius:9px;
    background:#fff4f6;
    color:#a83248;
    font-size:10px;
    line-height:1.45;
}
.pm-cs-page-error{margin-bottom:9px}
.pm-cs-toast{
    position:fixed;
    right:20px;
    bottom:20px;
    z-index:105;
    padding:10px 13px;
    border-radius:10px;
    background:#10213a;
    color:#fff;
    box-shadow:0 12px 36px rgba(8,24,45,.22);
    font-size:11px;
    font-weight:750;
}

/* MODALS */
.pm-cs-modal-backdrop{
    position:fixed;
    inset:0;
    z-index:100;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:18px;
    background:rgba(8,24,45,.48);
}
.pm-cs-modal{
    width:min(560px,100%);
    max-height:min(86vh,760px);
    overflow:hidden;
    border:1px solid var(--pm-cs-line);
    border-radius:14px;
    background:#fff;
    box-shadow:0 28px 80px rgba(8,24,45,.26);
    display:flex;
    flex-direction:column;
}
.pm-cs-modal-wide{width:min(680px,100%)}
.pm-cs-modal-head{
    flex:0 0 auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:13px;
    border-bottom:1px solid var(--pm-cs-line);
}
.pm-cs-modal-head h3{
    margin:0;
    font-size:16px;
    font-weight:850;
}
.pm-cs-icon-button{
    width:32px;
    height:32px;
    border:0;
    border-radius:8px;
    background:transparent;
    color:#65758a;
    font-size:15px;
    cursor:pointer;
}
.pm-cs-icon-button:hover{background:#f2f5f9}
.pm-cs-modal-body{
    min-height:0;
    overflow:auto;
    padding:13px;
}
.pm-cs-modal-actions{
    flex:0 0 auto;
    display:flex;
    justify-content:flex-end;
    gap:6px;
    padding:9px 13px;
    border-top:1px solid var(--pm-cs-line);
}

/* FORMS */
.pm-cs-form-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:9px;
}
.pm-cs-form-group{
    min-width:0;
    display:grid;
    gap:4px;
}
.pm-cs-form-group-full{grid-column:1/-1}
.pm-cs-form-group label{
    color:#526179;
    text-transform:uppercase;
    letter-spacing:.04em;
    font-size:10px;
    font-weight:850;
}
.pm-cs-form-control{
    width:100%;
    min-height:36px;
    padding:7px 9px;
    border:1px solid #dfe6ef;
    border-radius:8px;
    background:#fff;
    color:var(--pm-cs-text);
    outline:0;
    font:inherit;
    font-size:12px;
}
.pm-cs-form-control:focus{
    border-color:#9fb9da;
    box-shadow:0 0 0 3px rgba(76,124,184,.10);
}
.pm-cs-form-control:disabled{
    background:#f5f7fa;
    color:#98a3b1;
}
.pm-cs-modal-note{
    margin-top:9px;
    padding:9px;
    border:1px solid #d9e4f1;
    border-radius:9px;
    background:#f7fafe;
    color:#526179;
    font-size:10px;
    line-height:1.5;
}
.pm-cs-preview-note{
    margin-top:0;
    padding:9px;
    border:1px solid #d9e4f1;
    border-radius:9px;
    background:#fbfcfe;
    color:#526179;
    font-size:10px;
    line-height:1.5;
}
.pm-cs-player-results{
    max-height:190px;
    overflow:auto;
    border:1px solid #dfe6ef;
    border-radius:8px;
    background:#fff;
    box-shadow:0 8px 24px rgba(20,35,58,.08);
}
.pm-cs-player-results button{
    width:100%;
    padding:8px 9px;
    border:0;
    border-bottom:1px solid #edf1f5;
    background:#fff;
    text-align:left;
    cursor:pointer;
}
.pm-cs-player-results button:last-child{border-bottom:0}
.pm-cs-player-results button:hover{background:#f8fafc}
.pm-cs-player-results strong{
    display:block;
    color:var(--pm-cs-text);
    font-size:11px;
}
.pm-cs-player-results small{
    display:block;
    padding-top:2px;
    color:var(--pm-cs-muted);
    font-size:9px;
}
.pm-cs-player-results > span{
    display:block;
    padding:9px;
    color:var(--pm-cs-muted);
    font-size:9px;
}

/* REPEAT SWITCH */
.pm-cs-switch-row{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
    padding:9px 0;
    border:0;
    border-bottom:1px solid #edf1f5;
    background:transparent;
    color:inherit;
    text-align:left;
    cursor:pointer;
}
.pm-cs-switch-copy strong{
    display:block;
    font-size:11px;
}
.pm-cs-switch-copy span{
    display:block;
    margin-top:3px;
    color:var(--pm-cs-muted);
    font-size:9px;
    line-height:1.45;
}
.pm-cs-switch{
    width:40px;
    height:22px;
    border-radius:999px;
    background:#cad3df;
    position:relative;
    flex:0 0 auto;
}
.pm-cs-switch::after{
    content:"";
    width:16px;
    height:16px;
    position:absolute;
    left:3px;
    top:3px;
    border-radius:50%;
    background:#fff;
    box-shadow:0 1px 3px rgba(0,0,0,.15);
    transition:.18s;
}
.pm-cs-switch-on{background:#25a95f}
.pm-cs-switch-on::after{left:21px}

/* RESPONSIVE */
@media(max-width:1000px){
    .pm-cs-stats-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:820px){
    .pm-cs-page-header{
        gap:10px;
    }
    .pm-cs-btn{
        min-height:38px;
        padding:7px 10px;
    }
    .pm-cs-stats-grid{
        gap:8px;
    }
    .pm-cs-stat-card{
        padding:12px;
    }
    .pm-cs-toolbar{
        padding:7px 8px;
    }
    .pm-cs-form-control{
        min-height:40px;
        font-size:16px;
    }
    .pm-cs-schedule-board{
        max-width:100%;
    }
}

@media(max-width:600px){
    .pm-cs-page-header{
        display:block;
        margin-bottom:10px;
    }
    .pm-cs-page-actions{
        justify-content:flex-start;
        margin-top:9px;
    }
    .pm-cs-page-heading h1{
        font-size:22px;
    }
    .pm-cs-stats-grid{
        grid-template-columns:1fr 1fr;
        gap:8px;
    }
    .pm-cs-stat-value{
        font-size:21px;
    }
    .pm-cs-schedule-controls{
        align-items:stretch;
    }
    .pm-cs-date-nav{
        width:100%;
        overflow-x:auto;
        padding-bottom:2px;
    }
    .pm-cs-date-button{
        min-width:150px;
    }
    .pm-cs-legend-note{
        width:100%;
        margin-left:0;
    }
    .pm-cs-form-grid{
        grid-template-columns:1fr;
    }
    .pm-cs-form-group-full{
        grid-column:auto;
    }
    .pm-cs-modal-backdrop{
        align-items:flex-end;
        padding:10px;
    }
    .pm-cs-modal{
        width:100%;
        max-height:88vh;
        border-radius:14px 14px 10px 10px;
    }
}

@media(max-width:420px){
    .pm-cs-stat-card{
        min-width:0;
    }
    .pm-cs-stat-label{
        font-size:10px;
    }
    .pm-cs-stat-value{
        font-size:18px;
    }
    .pm-cs-stat-sub{
        font-size:9px;
    }
    .pm-cs-page-actions{
        display:grid;
        grid-template-columns:1fr 1fr;
        width:100%;
    }
    .pm-cs-page-actions .pm-cs-btn{
        width:100%;
    }
}


/* ============================================================
   PLAYMEU_COURT_SCHEDULE_LIGHTWEIGHT_CALENDAR_UI_R1_3

   Courts & Schedule module only.
   No shared dashboard shell/sidebar/header styling.
   ============================================================ */


/* AVAILABLE = DEWPOINT GREEN */

.pm-cs-page .pm-cs-status-green{
    background:#f0f9e5;
    color:#458f13;
}

.pm-cs-page .pm-cs-slot-open{
    border:1px solid #d1ecbd;
    background:#eff9e8;
    color:#448d16;
}


/* DAY WORKSPACE */

.pm-cs-page .pm-cs-day-layout{
    display:grid;

    grid-template-columns:
        minmax(0,1.2fr)
        minmax(520px,.8fr);

    gap:12px;

    align-items:start;
}

.pm-cs-page .pm-cs-day-grid-panel{
    min-width:0;
}


/* COURT RANGE / SCROLL CONTROLS */

.pm-cs-page .pm-cs-court-scroll-meta{
    display:flex;
    align-items:center;
    justify-content:space-between;

    gap:8px;

    min-height:34px;

    margin-bottom:6px;

    padding:0 2px;

    color:var(--pm-cs-muted);

    font-size:10px;
    font-weight:700;
}

.pm-cs-page .pm-cs-court-scroll-actions{
    display:flex;

    align-items:center;

    gap:5px;
}


/* COMPACT DAY TABLE */

.pm-cs-page .pm-cs-schedule-board{
    scrollbar-gutter:stable;

    touch-action:
        pan-x pan-y;
}

.pm-cs-page .pm-cs-day-table{
    font-size:10px;
}

.pm-cs-page .pm-cs-day-table thead th{
    position:sticky;

    top:0;

    z-index:3;

    min-width:150px;

    padding:6px 7px;
}

.pm-cs-page .pm-cs-day-table tbody td{
    min-width:150px;

    padding:4px 6px;
}

.pm-cs-page .pm-cs-day-table th:first-child,
.pm-cs-page .pm-cs-day-table td:first-child{
    width:112px;
    min-width:112px;
    max-width:112px;
}

.pm-cs-page .pm-cs-day-table thead th:first-child{
    z-index:6;
}

.pm-cs-page .pm-cs-day-table tbody td:first-child{
    font-size:10px;
}


/* SLIM COURT STATUS BOXES */

.pm-cs-page .pm-cs-day-table .pm-cs-slot{
    width:auto;

    min-width:96px;
    max-width:116px;

    min-height:24px;

    padding:3px 7px;

    border-radius:6px;

    font-size:9px;

    line-height:1.1;
}

.pm-cs-page .pm-cs-day-table .pm-cs-slot small{
    font-size:7.5px;
}


/* MONTH CALENDAR */

.pm-cs-page .pm-cs-month-calendar{
    min-width:0;

    overflow:hidden;
}

.pm-cs-page .pm-cs-month-calendar-head{
    min-height:52px;

    display:flex;

    align-items:center;
    justify-content:space-between;

    gap:10px;

    padding:10px 12px;

    border-bottom:
        1px solid
        var(--pm-cs-line);
}

.pm-cs-page .pm-cs-month-calendar-title{
    display:flex;

    align-items:center;

    min-width:0;

    gap:8px;
}

.pm-cs-page .pm-cs-month-calendar-icon{
    color:#385a82;

    font-size:15px;
}

.pm-cs-page .pm-cs-month-calendar-title h2{
    margin:0;

    color:var(--pm-cs-text);

    font-size:17px;

    line-height:1.1;

    font-weight:500;

    letter-spacing:-.02em;

    white-space:nowrap;
}

.pm-cs-page .pm-cs-month-calendar-nav{
    display:flex;

    align-items:center;

    gap:5px;
}

.pm-cs-page .pm-cs-month-calendar-nav .pm-cs-btn{
    font-weight:500;
}

.pm-cs-page .pm-cs-month-grid-wrap{
    width:100%;

    overflow-x:auto;

    overscroll-behavior-inline:
        contain;

    -webkit-overflow-scrolling:
        touch;
}

.pm-cs-page .pm-cs-month-grid{
    min-width:560px;

    display:grid;

    grid-template-columns:
        repeat(
            7,
            minmax(80px,1fr)
        );
}

.pm-cs-page .pm-cs-month-weekday{
    min-height:30px;

    display:grid;

    place-items:center;

    padding:6px 4px;

    border-right:
        1px solid #e9eef4;

    border-bottom:
        1px solid
        var(--pm-cs-line);

    background:#f6f9fc;

    color:#456183;

    font-size:9px;

    font-weight:500;
}

.pm-cs-page
.pm-cs-month-weekday:nth-child(7){
    border-right:0;
}

.pm-cs-page .pm-cs-month-day{
    min-width:0;

    min-height:87px;

    display:flex;

    flex-direction:column;

    align-items:flex-start;

    justify-content:flex-start;

    gap:0;

    padding:7px 7px 6px;

    border:0;

    border-right:
        1px solid #e9eef4;

    border-bottom:
        1px solid #e9eef4;

    background:#fff;

    color:var(--pm-cs-text);

    text-align:left;

    font:inherit;

    cursor:pointer;

    position:relative;

    font-weight:400;
}

.pm-cs-page
.pm-cs-month-day:hover:not(:disabled){
    background:#fbfdf8;
}

.pm-cs-page
.pm-cs-month-day:nth-child(7n){
    border-right:0;
}

.pm-cs-page .pm-cs-month-day-number{
    display:block;

    margin-bottom:9px;

    color:#182a42;

    font-size:13px;

    line-height:1;

    font-weight:500;
}

.pm-cs-page .pm-cs-month-day-summary{
    width:100%;

    min-width:0;

    display:grid;

    gap:3px;
}

.pm-cs-page .pm-cs-month-booked,
.pm-cs-page .pm-cs-month-available,
.pm-cs-page .pm-cs-month-admin-block{
    display:block;

    min-width:0;

    overflow:hidden;

    text-overflow:ellipsis;

    white-space:nowrap;

    font-size:8.5px;

    line-height:1.25;

    font-weight:400;
}

.pm-cs-page .pm-cs-month-booked{
    color:var(--pm-cs-blue);
}

.pm-cs-page .pm-cs-month-available{
    color:#489811;
}

.pm-cs-page .pm-cs-month-admin-block{
    color:var(--pm-cs-red);
}

.pm-cs-page .pm-cs-month-day-outside{
    background:#fafbfd;

    opacity:.42;
}

.pm-cs-page .pm-cs-month-day-past{
    background:#fafbfd;

    cursor:default;
}

.pm-cs-page
.pm-cs-month-day-past
.pm-cs-month-day-number{
    color:#8d9aaa;
}

.pm-cs-page
.pm-cs-month-day-past
.pm-cs-month-day-summary{
    opacity:.62;
}

.pm-cs-page .pm-cs-month-day-selected{
    z-index:1;

    background:#f4fbe9;

    box-shadow:
        inset 0 0 0 2px
        var(--pm-cs-lime);
}

.pm-cs-page
.pm-cs-month-day-selected
.pm-cs-month-day-number{
    color:#274812;
}

.pm-cs-page .pm-cs-month-loading-cell,
.pm-cs-page .pm-cs-month-past-label{
    color:#9aa6b6;

    font-size:8px;

    font-weight:400;
}

.pm-cs-page .pm-cs-month-calendar-foot{
    min-height:32px;

    display:flex;

    align-items:center;

    justify-content:flex-end;

    padding:7px 10px;

    color:var(--pm-cs-muted);

    font-size:8.5px;

    line-height:1.35;

    text-align:right;

    font-weight:400;
}

.pm-cs-page
.pm-cs-month-calendar-foot-error{
    justify-content:flex-start;

    color:var(--pm-cs-red);

    text-align:left;
}


/* MOVE CALENDAR BELOW GRID WHEN WIDTH IS LIMITED */

@media(max-width:1250px){

    .pm-cs-page .pm-cs-day-layout{
        grid-template-columns:
            1fr;
    }
}


@media(max-width:820px){

    .pm-cs-page
    .pm-cs-day-table thead th{
        min-width:145px;
    }

    .pm-cs-page
    .pm-cs-day-table tbody td{
        min-width:145px;
    }

    .pm-cs-page
    .pm-cs-month-calendar-head{
        align-items:flex-start;
    }

    .pm-cs-page
    .pm-cs-month-calendar-title h2{
        font-size:15px;
    }
}


@media(max-width:600px){

    .pm-cs-page
    .pm-cs-court-scroll-meta{
        padding:0;
    }

    .pm-cs-page
    .pm-cs-month-calendar-head{
        flex-wrap:wrap;
    }

    .pm-cs-page
    .pm-cs-month-calendar-nav{
        width:100%;

        justify-content:flex-end;
    }

    .pm-cs-page .pm-cs-month-grid{
        min-width:520px;

        grid-template-columns:
            repeat(
                7,
                minmax(74px,1fr)
            );
    }

    .pm-cs-page .pm-cs-month-day{
        min-height:78px;

        padding:6px;
    }
}

/* END PLAYMEU_COURT_SCHEDULE_LIGHTWEIGHT_CALENDAR_UI_R1_3 */
/* ==========================================================
   PLAYMEU_NEW_BOOKING_COMPACT_MATRIX_R1
   Owner > Courts & Schedule > New Booking only
   ========================================================== */

.pm-cs-booking-top-grid{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(180px,.72fr);
    gap:10px;
    align-items:start;
}

.pm-cs-booking-player-field{
    position:relative;
    z-index:20;
}

.pm-cs-booking-player-field .pm-cs-player-results{
    position:absolute;
    top:calc(100% + 6px);
    left:0;
    right:0;
    z-index:40;

    max-height:220px;
    overflow-y:auto;
    overscroll-behavior:contain;

    background:#fff;
    border:1px solid #dbe3ec;
    border-radius:10px;
    box-shadow:0 12px 28px rgba(15,23,42,.14);
}

.pm-cs-booking-matrix-section{
    display:grid;
    gap:6px;
    min-width:0;
}

.pm-cs-booking-matrix-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    color:#0f172a;
}

.pm-cs-booking-matrix-heading strong{
    font-size:13px;
    line-height:1.3;
}

.pm-cs-booking-matrix-heading span{
    color:#64748b;
    font-size:12px;
}

.pm-cs-booking-matrix-scroll{
    --pm-cs-booking-time-width:72px;
    --pm-cs-booking-court-width:128px;

    width:100%;
    max-width:624px;
    margin-inline:auto;
    box-sizing:border-box;

    /*
      Reserve a dedicated lane on the right so the
      vertical scrollbar never covers Court 4.
    */
    padding-inline-end:12px;
    scrollbar-gutter:stable;
    scrollbar-width:thin;

    /*
      Compact six-row viewport.
      Extra schedules remain vertically scrollable.
    */
    max-height:246px;

    overflow:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-x pan-y;

    border:1px solid #dbe3ec;
    border-radius:10px;
    background:#fff;
}

.pm-cs-booking-matrix-scroll::-webkit-scrollbar{
    width:10px;
    height:10px;
}

.pm-cs-booking-matrix-scroll::-webkit-scrollbar-button{
    display:none;
    width:0;
    height:0;
}

.pm-cs-booking-matrix-scroll::-webkit-scrollbar-track{
    background:#f1f5f9;
}

.pm-cs-booking-matrix-scroll::-webkit-scrollbar-thumb{
    background:#94a3b8;
    border:2px solid #f1f5f9;
    border-radius:999px;
}

.pm-cs-booking-matrix{
    width:max-content;
    border-collapse:separate;
    border-spacing:0;
    table-layout:fixed;
    background:#fff;
}

.pm-cs-booking-matrix th,
.pm-cs-booking-matrix td{
    box-sizing:border-box;
    height:34px;
    padding:0;

    border-right:1px solid #edf1f5;
    border-bottom:1px solid #edf1f5;

    text-align:center;
    vertical-align:middle;
}

.pm-cs-booking-matrix tr:last-child th,
.pm-cs-booking-matrix tr:last-child td{
    border-bottom:0;
}

.pm-cs-booking-matrix th:last-child,
.pm-cs-booking-matrix td:last-child{
    border-right:0;
}

.pm-cs-booking-matrix thead th{
    position:sticky;
    top:0;
    z-index:3;

    height:28px;
    background:#f8fafc;

    color:#475569;
    font-size:11px;
    font-weight:800;
    letter-spacing:.02em;
}

.pm-cs-booking-matrix th:first-child,
.pm-cs-booking-matrix td:first-child{
    position:sticky;
    left:0;

    width:var(--pm-cs-booking-time-width);
    min-width:var(--pm-cs-booking-time-width);
    max-width:var(--pm-cs-booking-time-width);
}

.pm-cs-booking-matrix thead th:first-child{
    z-index:5;
    background:#f8fafc;
}

.pm-cs-booking-time-cell{
    z-index:2;
    background:#fff;

    color:#475569;
    font-size:10.5px;
    font-weight:700;
    white-space:nowrap;
}

.pm-cs-booking-court-head,
.pm-cs-booking-slot-cell{
    width:var(--pm-cs-booking-court-width);
    min-width:var(--pm-cs-booking-court-width);
    max-width:var(--pm-cs-booking-court-width);
}

.pm-cs-booking-slot{
    display:flex;
    align-items:center;
    justify-content:center;

    width:calc(100% - 4px);
    min-height:26px;
    margin:2px;

    border:1px solid transparent;
    border-radius:5px;

    font:inherit;
    font-size:18px;
    font-weight:900;
    line-height:1;

    transition:
        border-color .15s ease,
        box-shadow .15s ease,
        transform .15s ease;
}

.pm-cs-booking-slot-available{
    cursor:pointer;
    background:#16a34a;
    border-color:#15803d;
    color:#fff;
}

.pm-cs-booking-slot-available:hover:not(:disabled){
    transform:translateY(-1px);
    box-shadow:0 3px 8px rgba(22,163,74,.22);
}

.pm-cs-booking-slot-available:focus-visible{
    outline:3px solid rgba(14,165,233,.34);
    outline-offset:1px;
}

.pm-cs-booking-slot-unavailable{
    cursor:not-allowed;
    background:#e5e7eb;
    border-color:#d1d5db;
    color:#94a3b8;
}

.pm-cs-booking-slot-selected{
    background:#15803d;
    border-color:#166534;
    color:#fff;

    box-shadow:
        inset 0 0 0 2px rgba(255,255,255,.42),
        0 2px 8px rgba(21,128,61,.22);
}

.pm-cs-booking-slot:disabled{
    opacity:1;
}

.pm-cs-booking-scroll-hint{
    color:#64748b;
    font-size:11px;
    line-height:1.3;
}

.pm-cs-booking-matrix-empty{
    padding:20px 14px;

    border:1px dashed #cbd5e1;
    border-radius:10px;

    color:#64748b;
    font-size:12px;
    text-align:center;
}

.pm-cs-booking-summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;

    padding:8px 10px;

    border:1px solid #dbe3ec;
    border-radius:10px;
    background:#f8fafc;
}

.pm-cs-booking-summary strong{
    min-width:0;

    color:#0f172a;
    font-size:12px;
    line-height:1.4;
}

.pm-cs-booking-summary span{
    flex:0 0 auto;

    color:#475569;
    font-size:12px;
    font-weight:700;
}

@media (max-width:640px){
    .pm-cs-booking-top-grid{
        grid-template-columns:1fr;
    }

    .pm-cs-booking-matrix-section{
        min-width:0;
        max-width:100%;
    }

    .pm-cs-booking-matrix-scroll{
        --pm-cs-booking-time-width:64px;
        --pm-cs-booking-court-width:58px;

        width:100%;
        max-width:304px;
    }

    .pm-cs-booking-slot{
        min-height:36px;
        font-size:17px;
    }

    .pm-cs-booking-summary{
        align-items:flex-start;
        flex-direction:column;
        gap:3px;
    }
}

@media (max-width:340px){
    .pm-cs-booking-matrix-scroll{
        --pm-cs-booking-time-width:60px;
        --pm-cs-booking-court-width:54px;
        max-width:284px;
    }
}

/* END PLAYMEU_NEW_BOOKING_COMPACT_MATRIX_R1 */
