/* ============================================================
   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-aqua:#20D5D2;
    --pm-cs-aqua-soft:#E8FBFA;
    --pm-cs-aqua-dark:#087C80;
    --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:var(--pm-cs-aqua-soft);

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

.pm-cs-page
.pm-cs-month-day-selected
.pm-cs-month-day-number{
    color:var(--pm-cs-aqua-dark);
}

.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 */

/* PLAYMEU COURTS SCHEDULE R1.2.4 — PHASE A, UI-ONLY REVIEW. */
/* No change to existing brand or semantic status CSS variables. */
.pm-cs-page .pm-cs-slot-late{
    background:var(--pm-cs-amber-bg);
    color:var(--pm-cs-amber);
    border:1px solid #eccb92;
}
.pm-cs-page .pm-cs-action-menu{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
    gap:10px;
}
.pm-cs-page .pm-cs-action-choice{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:7px;
    min-height:100px;
    padding:15px;
    text-align:left;
    border:1px solid var(--pm-cs-line);
    border-radius:11px;
    background:#fff;
    color:var(--pm-cs-text);
    cursor:pointer;
}
.pm-cs-page .pm-cs-action-choice:hover{
    background:var(--pm-cs-aqua-soft);
    border-color:var(--pm-cs-aqua);
}
.pm-cs-page .pm-cs-action-choice strong{font-size:13px}
.pm-cs-page .pm-cs-action-choice small{font-size:11px;line-height:1.4;color:var(--pm-cs-muted)}
.pm-cs-page .pm-cs-month-booked{font-weight:800;color:#18569b}
/* ==================================================================
   PLAYMEU COURTS & SCHEDULE R1.2.4 — ATTACHED FINAL HTML INTEGRATION
   Central PlayMeu only; scoped inside existing authenticated dashboard.
   Live Owner theme's aqua-blue #20D5D2; semantic status colors retained.
   ================================================================== */
.pm-cs-r124-page {
    --r124-aqua: #20D5D2;
    --r124-aqua-strong: #10C6C6;
    --r124-dark: #087C80;
    --r124-line: #dce8ed;
    --r124-ink: #132a3b;
    --r124-muted: #718798;
    width: 100%;
    max-width: 1770px;
    font-size: 12px;
}
.pm-cs-r124-page .pm-cs-page-header {align-items:center; margin-bottom:16px;}
.pm-cs-r124-page .pm-cs-page-heading h1 {font-size:28px;letter-spacing:-.045em;}
.pm-cs-r124-page .pm-cs-page-heading p {font-size:12px;color:var(--r124-muted);}
.pm-cs-r124-page .pm-cs-page-actions .pm-cs-btn-primary {
    background:var(--r124-aqua);color:#073b40;border:1px solid var(--r124-aqua-strong);
    padding:0 15px;min-height:40px;font-weight:850;border-radius:9px;
}
.pm-cs-r124-page .pm-cs-page-actions .pm-cs-btn-primary:hover {background:var(--r124-aqua-strong);}
.pm-cs-r124-page .pm-cs-status-green {background:#e8f8ed;color:#187c43;}
.pm-cs-r124-surface {background:#fff;border:1px solid var(--r124-line);border-radius:15px;overflow:hidden;box-shadow:0 7px 23px rgba(17,49,62,.045);}
.pm-cs-r124-toolbar {display:flex;justify-content:space-between;gap:15px;padding:13px 16px;align-items:center;flex-wrap:wrap;border-bottom:1px solid var(--r124-line);}
.pm-cs-r124-nav,.pm-cs-r124-filters {display:flex;gap:8px;align-items:center;flex-wrap:wrap;min-width:0;}
.pm-cs-r124-heading-date {font-weight:850;font-size:14px;min-width:135px;letter-spacing:-.015em;}
.pm-cs-r124-heading-date small {display:block;color:var(--r124-muted);font-size:10px;font-weight:500;margin-top:3px;letter-spacing:0;}
.pm-cs-r124-button {height:34px;min-width:0;background:#fff;border:1px solid #d0e0e5;border-radius:8px;color:#355167;font-size:11px;font-weight:800;cursor:pointer;padding:0 11px;}
.pm-cs-r124-button:hover:not(:disabled) {background:#e7fafa;border-color:#77dbd7;}
.pm-cs-r124-button:disabled {opacity:.45;cursor:not-allowed;}
.pm-cs-r124-square {height:34px;width:34px;padding:0;font-size:20px;}
.pm-cs-r124-filters label {font-size:10px;color:#718798;font-weight:800;display:flex;gap:5px;align-items:center;}
.pm-cs-r124-filters input,.pm-cs-r124-filters select {max-width:165px;height:33px;border:1px solid #d0e0e5;padding:5px 7px;background:#fff;color:#355167;border-radius:7px;font:inherit;font-size:11px;}
.pm-cs-r124-view-tabs {display:inline-flex;align-items:center;gap:2px;background:#f1f6f8;padding:4px;border:1px solid #e3eef1;border-radius:9px;}
.pm-cs-r124-view-tabs button {border:0;background:transparent;padding:7px 11px;border-radius:6px;color:#71899b;font-size:10px;font-weight:850;cursor:pointer;}
.pm-cs-r124-view-tabs button.active {background:#fff;color:var(--r124-dark);box-shadow:0 1px 5px #1e555b12;}
.pm-cs-r124-page .pm-cs-legend {border:0;border-bottom:1px solid var(--r124-line);border-radius:0;margin:0;box-shadow:none;min-height:41px;background:#fff;}
.pm-cs-r124-page .pm-cs-legend-note {margin-left:auto;color:#8ba2b0;font-size:9px;}
.pm-cs-r124-layout {display:grid;grid-template-columns:minmax(0,1fr) 295px;align-items:stretch;min-height:600px;}
.pm-cs-r124-main-schedule {min-width:0;overflow:hidden;padding:15px 14px 22px;border-right:1px solid var(--r124-line);}
.pm-cs-r124-schedule-title {display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;}
.pm-cs-r124-schedule-title h2 {font-size:13px;font-weight:850;letter-spacing:-.025em;margin:0;}
.pm-cs-r124-schedule-title p {font-size:10px;color:#8296a3;margin:4px 0 0;line-height:1.45;}
.pm-cs-r124-schedule-title>span {background:#f1f6f8;border-radius:6px;padding:6px 8px;color:#68869a;white-space:nowrap;font-size:9px;}
.pm-cs-r124-clock-note {padding:9px 11px;margin:10px 0 12px;background:#f0fbfa;border:1px solid #ccebe8;border-radius:8px;color:#3a7a78;font-size:10px;line-height:1.5;}
.pm-cs-r124-page .pm-cs-court-scroll-meta {background:#fff;padding:3px 0 9px;font-size:11px;}
.pm-cs-r124-page .pm-cs-schedule-board {border:1px solid #dbe6eb;border-radius:10px;overflow-x:auto;}
.pm-cs-r124-page .pm-cs-day-table {border-spacing:0;border-collapse:separate;}
.pm-cs-r124-page .pm-cs-day-table thead th {padding:11px 8px;background:#f5f9fb;font-size:10px;color:#44657a;font-weight:850;text-align:center;border-bottom:1px solid #dce8ed;}
.pm-cs-r124-page .pm-cs-day-table tbody td {padding:4px 5px;border-color:#eaf0f4;height:43px;}
.pm-cs-r124-page .pm-cs-day-table tbody td:first-child {white-space:nowrap;background:#f8fafb;color:#496579;font-size:10px;font-weight:800;}
.pm-cs-r124-page .pm-cs-day-table .pm-cs-slot {min-height:31px;border-radius:7px;line-height:1.25;}
.pm-cs-r124-page .pm-cs-slot-open {background:#eef9ec;color:#258a45;border:1px solid #cee8c6;}
.pm-cs-r124-page .pm-cs-slot-late {background:#fff2db;border:1px solid #eac681;color:#96621d;}
.pm-cs-r124-page .pm-cs-slot-hold {background:#fff2d7;border:1px solid #dfc992;color:#a17924;}
.pm-cs-r124-page .pm-cs-slot-closed {background:#edf2f5;color:#8194a5;border:1px solid #e9eff2;}
.pm-cs-r124-right-panel {min-width:0;background:#fff;}
.pm-cs-r124-right-panel .pm-cs-month-calendar {border:0;border-radius:0;box-shadow:none;overflow:hidden;}
.pm-cs-r124-right-panel .pm-cs-month-calendar-head {min-height:54px;padding:11px 12px;}
.pm-cs-r124-right-panel .pm-cs-month-calendar-title h2 {font-weight:730;font-size:14px;}
.pm-cs-r124-right-panel .pm-cs-month-grid-wrap {width:100%;overflow:visible;}
.pm-cs-r124-right-panel .pm-cs-month-grid {min-width:0!important;grid-template-columns:repeat(7,minmax(0,1fr));width:100%;}
.pm-cs-r124-right-panel .pm-cs-month-weekday {min-width:0;min-height:26px;padding:5px 0;font-size:8px;}
.pm-cs-r124-right-panel .pm-cs-month-day {min-width:0;min-height:47px;padding:5px 2px 4px;gap:3px;align-items:center;}
.pm-cs-r124-right-panel .pm-cs-month-day-number {font-size:10px;font-weight:800;margin:0;}
.pm-cs-r124-right-panel .pm-cs-month-day-summary {display:flex;flex-wrap:wrap;gap:2px;justify-content:center;}
.pm-cs-r124-right-panel .pm-cs-month-day-summary>span {font-size:0;width:5px;height:5px;border-radius:99px;background:#3e8fe3;}
.pm-cs-r124-right-panel .pm-cs-month-day-summary>.pm-cs-month-available {background:#61b954;}
.pm-cs-r124-right-panel .pm-cs-month-day-summary>.pm-cs-month-admin-block {background:#df7485;}
.pm-cs-r124-right-panel .pm-cs-month-calendar-foot {min-height:28px;font-size:8px;padding:6px 9px;}
.pm-cs-r124-side-section {padding:14px;border-top:1px solid #e0eaf0;}
.pm-cs-r124-side-section h3 {font-size:12px;margin:0 0 11px;font-weight:840;}
.pm-cs-r124-kpis {display:grid;grid-template-columns:1fr 1fr;gap:7px;}
.pm-cs-r124-kpi {background:#fbfdff;border:1px solid #e0eaf0;border-radius:8px;padding:10px;}
.pm-cs-r124-kpi strong {display:block;font-size:18px;letter-spacing:-.04em;color:#295e8d;}
.pm-cs-r124-kpi.green strong {color:#0c9885;}.pm-cs-r124-kpi.red strong {color:#c64c67;}.pm-cs-r124-kpi.slate strong {color:#748b9c;}
.pm-cs-r124-kpi small {color:#8296a3;font-size:9px;line-height:1.3;display:block;}
.pm-cs-r124-event-list {max-height:240px;overflow:auto;display:grid;gap:7px;}
.pm-cs-r124-event {border:1px solid #e0eaf0;border-left:3px solid #4a90e2;border-radius:8px;padding:9px;background:#fff;}
.pm-cs-r124-event.openplay {border-left-color:#815cda;}.pm-cs-r124-event.blocked {border-left-color:#d75870;}.pm-cs-r124-event.hold {border-left-color:#c78a2a;}
.pm-cs-r124-event strong {display:block;font-size:10px;color:#25445c;font-weight:800;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;}
.pm-cs-r124-event small {display:block;color:#7891a4;margin-top:4px;font-size:9px;}
.pm-cs-r124-layout-month {grid-template-columns:minmax(0,1fr) 290px;}
.pm-cs-r124-layout-month .pm-cs-month-calendar {overflow:hidden;}
.pm-cs-r124-layout-month .pm-cs-month-grid {min-width:630px;grid-template-columns:repeat(7,minmax(90px,1fr));}
.pm-cs-r124-layout-month .pm-cs-month-day {min-height:92px;}
.pm-cs-r124-layout-month .pm-cs-r124-main-schedule .pm-cs-month-calendar {box-shadow:none;}
/* Full combined Add-to-Schedule workspace from approved reference. */
.pm-cs-r124-overlay {position:fixed;inset:0;z-index:1500;background:rgba(5,30,48,.56);display:flex;align-items:center;justify-content:center;padding:16px;}
.pm-cs-r124-workspace {width:min(1260px,100%);max-height:95vh;overflow:hidden;display:flex;flex-direction:column;background:#fff;border-radius:15px;box-shadow:0 30px 80px #071c2c56;color:var(--r124-ink);font-family:inherit;}
.pm-cs-r124-workspace-head {padding:17px 20px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-bottom:1px solid var(--r124-line);}
.pm-cs-r124-workspace-head small {color:#098e96;font-size:9px;font-weight:850;letter-spacing:.095em;}
.pm-cs-r124-workspace-head h2 {font-size:22px;letter-spacing:-.04em;margin:4px 0;}
.pm-cs-r124-workspace-head p {margin:0;color:#718798;font-size:11px;line-height:1.4;}
.pm-cs-r124-close {width:34px;padding:0;font-size:18px;}
.pm-cs-r124-modes {background:#f5fafb;padding:8px 18px;display:flex;align-items:center;gap:7px;border-bottom:1px solid var(--r124-line);}
.pm-cs-r124-modes .pm-cs-r124-button {background:transparent;border:1px solid transparent;height:37px;color:#597d84;}
.pm-cs-r124-modes .pm-cs-r124-button.active {background:#fff;color:var(--r124-dark);border-color:#a8e5e5;box-shadow:0 2px 6px #124a3910;}
.pm-cs-r124-body {min-height:0;flex:1;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(335px,.88fr);}
.pm-cs-r124-matrix-pane {min-width:0;padding:16px;overflow:auto;}
.pm-cs-r124-matrix-head {display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:11px;}
.pm-cs-r124-matrix-head h3,.pm-cs-r124-editor h3 {margin:0;font-size:13px;font-weight:850;}
.pm-cs-r124-matrix-head p,.pm-cs-r124-editor p {margin:4px 0 0;color:#7a93a2;font-size:10px;line-height:1.5;}
.pm-cs-r124-matrix-actions {display:flex;align-items:center;gap:5px;flex-wrap:wrap;}
.pm-cs-r124-matrix-actions .pm-cs-r124-button {height:30px;padding:0 8px;font-size:10px;}
.pm-cs-r124-status-row {display:flex;gap:5px;flex-wrap:wrap;margin-bottom:10px;}
.pm-cs-r124-pill {font-size:9px;border-radius:99px;padding:4px 7px;font-weight:850;background:#f0f3f5;color:#8594a6;}
.pm-cs-r124-pill.pm-cs-r124-available{background:#e8f8ed;color:#088960}.pm-cs-r124-pill.pm-cs-r124-booked{background:#e7f0ff;color:#316ed0}
.pm-cs-r124-pill.pm-cs-r124-openplay{background:#f1eaff;color:#805bd2}.pm-cs-r124-pill.pm-cs-r124-hold{background:#fff2dc;color:#996e21}
.pm-cs-r124-pill.pm-cs-r124-blocked{background:#fff0f3;color:#c24b63}.pm-cs-r124-pill.pm-cs-r124-late{background:#fff2db;color:#b77921}
.pm-cs-r124-matrix-scroll {max-height:min(530px,60vh);border:1px solid #dce8ed;border-radius:11px;overflow:auto;overscroll-behavior:contain;}
.pm-cs-r124-matrix {width:100%;border-collapse:separate;border-spacing:0;min-width:570px;table-layout:fixed;}
.pm-cs-r124-matrix th:first-child {width:115px;}
.pm-cs-r124-matrix thead th {position:sticky;top:0;z-index:2;background:#f3f8fa;padding:7px 5px;border-bottom:1px solid #dce8ed;border-right:1px solid #e5edf1;text-align:center;}
.pm-cs-r124-matrix thead th small {display:block;font-size:8px;color:#92a6b5;font-weight:550;margin-top:4px;}
.pm-cs-r124-matrix tbody th {border-bottom:1px solid #eaf0f4;border-right:1px solid #e5edf1;background:#f9fbfc;}
.pm-cs-r124-matrix tbody td {height:44px;border-right:1px solid #eaf0f4;border-bottom:1px solid #eaf0f4;padding:3px;}
.pm-cs-r124-row-select,.pm-cs-r124-column-select {width:100%;padding:5px 2px;border:0;background:transparent;font-size:10px;font-weight:840;text-align:center;color:#44657a;cursor:pointer;}
.pm-cs-r124-row-select {font-size:9px;line-height:1.4;}
.pm-cs-r124-row-select:hover,.pm-cs-r124-column-select:hover {color:#087c80;}
.pm-cs-r124-cell {width:100%;min-height:36px;border:1px solid transparent;border-radius:7px;font-size:10px;font-weight:830;cursor:pointer;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pm-cs-r124-cell.pm-cs-r124-available {background:#edf9f5;color:#258268;}
.pm-cs-r124-cell.pm-cs-r124-available:hover {border-color:#75deda;background:#e3faf7;}
.pm-cs-r124-cell.pm-cs-r124-selected {background:#20D5D2;border-color:#10C6C6;color:#043a40;}
.pm-cs-r124-cell.pm-cs-r124-booked {background:#e7f0ff;color:#316ed0;}
.pm-cs-r124-cell.pm-cs-r124-openplay {background:#f1eaff;color:#805bd2;}
.pm-cs-r124-cell.pm-cs-r124-blocked {background:#fff0f3;color:#be536a;}
.pm-cs-r124-cell.pm-cs-r124-hold {background:#fff2dc;color:#996e21;}
.pm-cs-r124-cell.pm-cs-r124-closed {background:#edf2f5;color:#8b9fad;}
.pm-cs-r124-cell.pm-cs-r124-late {background:#fff2dc;color:#996e21;}
.pm-cs-r124-cell:disabled {cursor:not-allowed;opacity:1;}
.pm-cs-r124-explain {font-size:10px!important;line-height:1.5;color:#65828f!important;}
.pm-cs-r124-editor {overflow:auto;min-width:0;background:#fbfdfd;border-left:1px solid var(--r124-line);padding:16px 18px;display:flex;flex-direction:column;gap:14px;}
.pm-cs-r124-field {display:flex;flex-direction:column;gap:5px;min-width:0;color:#416176;font-size:10px;font-weight:850;}
.pm-cs-r124-field input,.pm-cs-r124-field select {font-family:inherit;height:36px;border:1px solid #d0e0e5;border-radius:8px;padding:6px 9px;background:#fff;min-width:0;width:100%;font-size:11px;color:#23445a;}
.pm-cs-r124-field input:focus,.pm-cs-r124-field select:focus {outline:2px solid #20D5D277;outline-offset:0;}
.pm-cs-r124-two-fields {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:end;}
.pm-cs-r124-form-section {display:flex;flex-direction:column;gap:10px;}
.pm-cs-r124-label {font-size:10px;font-weight:850;color:#416176;}
.pm-cs-r124-scope-tabs,.pm-cs-r124-court-chips {display:flex;gap:6px;flex-wrap:wrap;}
.pm-cs-r124-scope-tabs .pm-cs-r124-button {font-size:10px;padding:0 9px;}
.pm-cs-r124-scope-tabs .pm-cs-r124-button.active,.pm-cs-r124-court-chips .pm-cs-r124-button.active {background:#e5fbfa;border-color:#20D5D2;color:#087C80;}
.pm-cs-r124-court-chips {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));}
.pm-cs-r124-court-chips .pm-cs-r124-button {padding:0 5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pm-cs-r124-player-list {max-height:125px;overflow:auto;display:grid;gap:5px;}
.pm-cs-r124-player-list .pm-cs-r124-button {text-align:left;display:block;height:auto;min-height:30px;white-space:normal;line-height:1.3;padding:6px 9px;}
.pm-cs-r124-player-list .pm-cs-r124-button.active {background:#e4fbfa;border-color:#20D5D2;color:#087C80;}
.pm-cs-r124-month-btn {align-self:end;white-space:nowrap;}
.pm-cs-r124-summary {background:#fff;border:1px solid #d9e9e4;border-radius:10px;padding:11px;}
.pm-cs-r124-summary h4 {color:#1d5d62;font-size:11px;margin:0 0 9px;}
.pm-cs-r124-summary-numbers {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;}
.pm-cs-r124-summary-numbers strong {display:block;font-size:20px;letter-spacing:-.04em;color:#087C80;}
.pm-cs-r124-summary-numbers small {display:block;margin-top:3px;color:#8197a4;font-size:9px;}
.pm-cs-r124-summary p {margin:9px 0 0;color:#618391;font-size:10px;}
.pm-cs-r124-notice,.pm-cs-r124-danger,.pm-cs-r124-success {font-size:10px!important;line-height:1.55!important;border-radius:8px;padding:9px 10px;margin:0!important;}
.pm-cs-r124-notice {background:#fff3df;color:#936522!important;border:1px solid #ecd39d;}
.pm-cs-r124-danger {background:#fff0f2;color:#a3445b!important;border:1px solid #edc4cf;}
.pm-cs-r124-success {background:#ecfbfa;color:#347c7b!important;border:1px solid #c2eae8;}
.pm-cs-r124-workspace-footer {display:flex;gap:12px;justify-content:space-between;align-items:center;padding:12px 18px;border-top:1px solid var(--r124-line);background:#fff;}
.pm-cs-r124-workspace-footer small {font-size:10px;color:#8399a5;}
.pm-cs-r124-workspace-footer>div {display:flex;gap:8px;}
.pm-cs-r124-workspace-footer .pm-cs-r124-primary {background:#20D5D2;color:#063739;border-color:#10C6C6;}
.pm-cs-r124-workspace-footer .pm-cs-r124-primary:hover:not(:disabled) {background:#10C6C6;}
@media(max-width:1250px) {
    .pm-cs-r124-layout {grid-template-columns:minmax(0,1fr) 260px;}
    .pm-cs-r124-toolbar {padding:11px;}
}
@media(max-width:1000px) {
    .pm-cs-r124-layout {grid-template-columns:1fr;}
    .pm-cs-r124-main-schedule {border-right:0;}
    .pm-cs-r124-right-panel {border-top:1px solid var(--r124-line);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
    .pm-cs-r124-right-panel .pm-cs-month-calendar {grid-row:span 2;}
    .pm-cs-r124-workspace {max-height:97vh;}
    .pm-cs-r124-body {grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);}
}
@media(max-width:740px) {
    .pm-cs-r124-page .pm-cs-page-header {align-items:flex-start;}
    .pm-cs-r124-page .pm-cs-page-heading h1 {font-size:24px;}
    .pm-cs-r124-toolbar {display:block;}
    .pm-cs-r124-filters {margin-top:9px;gap:5px;}
    .pm-cs-r124-nav {gap:5px;}
    .pm-cs-r124-heading-date {font-size:12px;}
    .pm-cs-r124-schedule-title>span {display:none;}
    .pm-cs-r124-right-panel {grid-template-columns:1fr;}
    .pm-cs-r124-right-panel .pm-cs-month-calendar {grid-row:auto;}
    .pm-cs-r124-overlay {padding:0;align-items:stretch;}
    .pm-cs-r124-workspace {width:100%;height:100%;max-height:100vh;border-radius:0;}
    .pm-cs-r124-workspace-head {padding:12px;}
    .pm-cs-r124-workspace-head h2 {font-size:19px;}
    .pm-cs-r124-workspace-head p {font-size:10px;}
    .pm-cs-r124-modes {padding:6px;gap:3px;}
    .pm-cs-r124-modes .pm-cs-r124-button {flex:1;padding:0 4px;font-size:9px;}
    .pm-cs-r124-body {display:block;overflow:auto;}
    .pm-cs-r124-matrix-pane {padding:12px;overflow:visible;}
    .pm-cs-r124-matrix-scroll {max-height:340px;}
    .pm-cs-r124-editor {padding:13px;border-left:0;border-top:1px solid var(--r124-line);overflow:visible;}
    .pm-cs-r124-workspace-footer {position:sticky;bottom:0;z-index:2;padding:10px;}
    .pm-cs-r124-workspace-footer small {display:none;}
    .pm-cs-r124-workspace-footer>div {width:100%;justify-content:flex-end;}
}
@media(max-width:420px) {
    .pm-cs-r124-page .pm-cs-page-header {display:flex;flex-wrap:wrap;}
    .pm-cs-r124-filters label {max-width:100%;}
    .pm-cs-r124-filters input {max-width:140px;}
    .pm-cs-r124-two-fields {gap:6px;}
    .pm-cs-r124-court-chips {grid-template-columns:repeat(2,minmax(0,1fr));}
}
/* R1.2.4 visually grouped continuous court sessions in the Day timeline. */
.pm-cs-r124-timeline-scroll-head {display:flex;justify-content:space-between;align-items:center;padding:6px 2px 10px;font-size:10px;color:#718798;gap:8px;}
.pm-cs-r124-timeline-scroll-head>div {display:flex;gap:5px;}
.pm-cs-r124-timeline-scroll-head button {width:32px;height:29px;border:1px solid #dce8ed;border-radius:7px;background:white;color:#4b7082;font-size:19px;cursor:pointer;}
.pm-cs-r124-timeline-scroll {max-width:100%;overflow-x:auto;border:1px solid #dbe6eb;border-radius:10px;overscroll-behavior-inline:contain;}
.pm-cs-r124-timeline {display:grid;width:max-content;min-width:100%;}
.pm-cs-r124-track-time,.pm-cs-r124-court-track {min-width:0;border-right:1px solid #e7eff2;}
.pm-cs-r124-track-head {height:54px;background:#f5f9fb;border-bottom:1px solid #dce8ed;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#44657a;font-size:10px;font-weight:850;}
.pm-cs-r124-track-head small {font-size:8px;color:#078c83;background:#def8f6;border-radius:5px;padding:2px 5px;}
.pm-cs-r124-track-hour {height:43px;background:#f8fafb;border-bottom:1px solid #e8f0f3;padding:8px 6px 4px 9px;display:flex;flex-direction:column;gap:3px;}
.pm-cs-r124-track-hour strong {font-size:10px;font-weight:850;color:#44657a;}
.pm-cs-r124-track-hour small {font-size:9px;color:#98aab6;}
.pm-cs-r124-court-rows {position:relative;display:grid;grid-template-columns:1fr;grid-auto-rows:43px;}
.pm-cs-r124-floor-slot {border:0;border-bottom:1px solid #e7eff2;outline:none;width:100%;height:43px;font-size:9px;font-weight:800;background:#fff;color:#b1c0ca;}
.pm-cs-r124-floor-slot:nth-child(even) {background:#fdfefe;}
.pm-cs-r124-floor-slot.available {background:#f7fefb;color:#0b9870;cursor:pointer;}
.pm-cs-r124-floor-slot.available:hover {background:#e5faf7;box-shadow:inset 0 0 0 1px #20D5D2;}
.pm-cs-r124-floor-slot.closed {background:#f0f4f6;color:#a2b1bd;}
.pm-cs-r124-floor-slot.late {background:#fff3df;color:#9b6727;}
.pm-cs-r124-floor-slot.occupied {background:#fafcfd;}
.pm-cs-r124-floor-slot:disabled {cursor:default;opacity:1;}
.pm-cs-r124-event-tile {position:absolute;left:4px;right:4px;width:calc(100% - 8px);z-index:2;display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:8px 9px;border:1px solid;border-radius:8px;overflow:hidden;text-align:left;box-shadow:0 1px 5px #152a4310;cursor:pointer;}
.pm-cs-r124-event-tile strong {font-size:10px;font-weight:850;line-height:1.2;max-width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;}
.pm-cs-r124-event-tile small {font-size:8px;font-weight:850;letter-spacing:.06em;}
.pm-cs-r124-event-tile span {font-size:9px;}
.pm-cs-r124-event-tile i {font-size:8px;border-radius:5px;padding:2px 6px;background:#ffffff88;font-style:normal;font-weight:800;}
.pm-cs-r124-event-tile.booked {background:#e4edff;border-color:#aec7f9;color:#1956b3;}
.pm-cs-r124-event-tile.openplay {background:#f0eaff;border-color:#d1c0fb;color:#7953c4;}
.pm-cs-r124-event-tile.hold {background:#fff1d6;border-color:#f0c777;color:#925c13;}
.pm-cs-r124-event-tile.blocked {background:#fff0f3;border-color:#f6bfcb;color:#b83e5a;}
.pm-cs-r124-drawer {height:100vh;width:min(450px,100%);background:#fff;box-shadow:-20px 0 45px #071b2d38;display:flex;flex-direction:column;margin-left:auto;position:absolute;right:0;top:0;}
.pm-cs-r124-drawer-details {overflow:auto;flex:1;padding:16px;}
.pm-cs-r124-drawer-details>div {display:grid;grid-template-columns:135px minmax(0,1fr);gap:10px;padding:13px 5px;border-bottom:1px solid #ecf2f4;}
.pm-cs-r124-drawer-details span {font-size:11px;color:#8699a5;}
.pm-cs-r124-drawer-details strong {font-size:11px;color:#294b5b;overflow-wrap:anywhere;}

/* R1.2.4 R1.2.5 readability + fixed-payment correction — UI ONLY. */
.pm-cs-r124-event-tile.multislot {padding:7px 9px;gap:4px;}
.pm-cs-r124-event-tile.multislot .pm-cs-r124-event-name {
  white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;
  -webkit-line-clamp:3;line-clamp:3;max-height:3.8em;overflow-wrap:anywhere;
  font-size:11px;line-height:1.25;
}
.pm-cs-r124-event-tile.compact {padding:3px 7px;gap:1px;justify-content:flex-start;}
.pm-cs-r124-event-tile.compact .pm-cs-r124-event-label {line-height:1.05;font-size:8px;flex:0 0 auto;}
.pm-cs-r124-event-tile.compact .pm-cs-r124-event-name {
  white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;
  -webkit-line-clamp:2;line-clamp:2;max-height:2.25em;
  line-height:1.08;font-size:10px;overflow-wrap:anywhere;
}
.pm-cs-r124-payment-fixed {min-height:37px;border:1px solid #cee5e8;border-radius:8px;
  background:#f3fafb;display:flex;flex-direction:column;justify-content:center;
  gap:2px;padding:5px 10px;color:#264c5c;}
.pm-cs-r124-payment-fixed strong {font-size:11px;font-weight:850;line-height:1.2;}
.pm-cs-r124-payment-fixed small {font-size:9px;color:#6b8897;line-height:1.2;}
.pm-cs-r124-session-count {font-size:10px!important;color:#657f90!important;
  padding:8px 13px;margin:0!important;border-top:1px solid #eaf0f3;line-height:1.4!important;}
