/*
 * ============================================================
 * KradPC - Owner Court
 * Canonical Owner Court presentation module
 *
 * Functionality:
 *   modules/owner/court.js
 *
 * Shared Court/Staff primitives remain temporarily in:
 *   dewpoint-app.css
 *
 * Theme values:
 *   dewpoint_theme / --kr-*
 *
 * Busy / Hold / Offline remain operational state colors.
 *
 * Three CSS priority flags remain temporarily on the
 * available mini-court because legacy shared Staff
 * state rules still use matching priority flags.
 * Remove them when shared Staff Court presentation
 * is migrated to KradPC.
 * ============================================================
 */

.owner-dashboard-grid>.owner-live-court-status {
grid-column:1 / -1;
}

.owner-live-court-status .staff-live-heading h2 {
font-size:16px;
    font-weight:800;
}

.owner-live-court-status .staff-live-heading h2 span {
font-size:10px;
color:var(--kr-accent-text);
}

.owner-live-court-status .staff-live-heading p {
font-size:10px;
}

.owner-live-court-status .staff-live-heading>small {
font-size:9px;
}

.owner-live-court-status .staff-status-summary article b {
font-size:19px;
}

.owner-live-court-status .staff-status-summary article small {
font-size:9px;
}

.owner-live-court-status .staff-court-card h3 {
font-size:13px;
    font-weight:700;
}

.owner-live-court-status .staff-court-card strong {
font-size:9px;
}

.owner-live-court-status .staff-court-card .court-detail {
font-size:10px;
    font-weight:800;
}

.owner-live-court-status .staff-court-card small {
font-size:9px;
}

.owner-live-court-status .staff-status-summary article.available>i {
color:var(--kr-accent-text);
    background:var(--kr-theme-soft);
}

.owner-live-court-status .staff-status-summary article.available b,.owner-live-court-status .staff-status-summary article.available small {
color:var(--kr-accent-text);
}

.owner-live-court-status .staff-court-card.available .mini-court {
background:
        color-mix(
            in srgb,
            var(--kr-accent) 55%,
            white
        ) !important;

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

.owner-live-court-status .staff-court-card.available .mini-court::before,.owner-live-court-status .staff-court-card.available .mini-court::after,.owner-live-court-status .staff-court-card.available .mini-court .court-center-line,.owner-live-court-status .staff-court-card.available .mini-court .court-net,.owner-live-court-status .staff-court-card.available .mini-court .court-left-box,.owner-live-court-status .staff-court-card.available .mini-court .court-right-box {
border-color:var(--kr-accent) !important;
}

.owner-live-court-status .staff-court-card.available>strong {
color:var(--kr-accent-text);
    background:var(--kr-theme-soft);
}

.owner-live-court-status .staff-court-card.available .court-detail {
color:var(--kr-accent-text);
}

.owner-live-court-status .staff-live-heading h2 span,.owner-live-court-status .staff-status-summary article.available>i,.owner-live-court-status .staff-court-card.available .mini-court,.owner-live-court-status .staff-court-card.available>strong,.owner-live-court-status .staff-court-card.available .court-detail {
transition:
        color .18s ease,
        background .18s ease,
        border-color .18s ease;
}

/* ============================================================
   KRADPC 2B-13H-R4 — OWNER COURT STATUS STATES

   Scoped migration from the former global
   .staff-court-card state rules.

   Owner Available mini-court background/border remains
   governed by the existing canonical --kr-accent rule.
   ============================================================ */

/* AVAILABLE */
.owner-live-court-status
.staff-court-card.available .court-net {
    background:var(--dp-accent-2) !important;
}

/* IN USE */
.owner-live-court-status
.staff-court-card.busy .mini-court {
    background:#60a5fa !important;
    border-color:#2563eb !important;
}

.owner-live-court-status
.staff-court-card.busy .mini-court span {
    border-color:rgba(255,255,255,.95) !important;
}

.owner-live-court-status
.staff-court-card.busy .court-net {
    background:#1d4ed8 !important;
}

/* ON HOLD */
.owner-live-court-status
.staff-court-card.hold .mini-court {
    background:#fbbf24 !important;
    border-color:#d97706 !important;
}

.owner-live-court-status
.staff-court-card.hold .mini-court span {
    border-color:rgba(255,255,255,.95) !important;
}

.owner-live-court-status
.staff-court-card.hold .court-net {
    background:#b45309 !important;
}

/* OFFLINE */
.owner-live-court-status
.staff-court-card.offline .mini-court {
    background:#cbd5e1 !important;
    border-color:#64748b !important;
}

.owner-live-court-status
.staff-court-card.offline .mini-court span {
    border-color:rgba(255,255,255,.9) !important;
}

.owner-live-court-status
.staff-court-card.offline .court-net {
    background:#475569 !important;
}
/* Live Courts & Check-In: approved 70/30 workspace. */
.owner-court-page{width:100%;max-width:1180px;min-width:0;margin:0 auto;padding:20px;box-sizing:border-box}
.dp-live-page-grid{
display:grid;
grid-template-columns:minmax(300px,.85fr) minmax(0,1.65fr);
grid-template-areas:
"checkin dashboard"
"schedule schedule";
gap:18px;
align-items:start;
min-width:0;
width:100%;
}
.dp-live-checkin-area{grid-area:checkin;min-width:0}
.dp-live-dashboard-area{grid-area:dashboard;min-width:0}
.dp-live-schedule-area{grid-area:schedule;min-width:0}
.dp-checkin-column{display:grid;gap:18px;min-width:0}

main.shell.owner-sidebar-hidden .owner-court-page{
    max-width:1320px;
}
.dp-live-courts,.dp-today-schedule,.dp-owner-checkin,.dp-checkin-manual,.dp-checkin-result{background:#fff;border:1px solid #d8e0eb;border-radius:16px;box-shadow:0 10px 28px rgba(7,24,56,.055)}
.dp-live-courts,
.dp-today-schedule,
.dp-owner-checkin,
.dp-checkin-manual,
.dp-checkin-result{
min-width:0;
max-width:100%;
box-sizing:border-box;
}

.dp-live-courts,.dp-today-schedule,.dp-owner-checkin,.dp-checkin-manual{padding:20px}
.dp-live-courts>header,.dp-today-schedule>header,.dp-checkin-intro{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}
.dp-live-courts h2,.dp-today-schedule h2,.dp-checkin-intro h2{margin:0;color:#071838;font-size:21px;line-height:1.2}
.dp-live-courts p,.dp-checkin-intro p,.dp-today-schedule header p{margin:4px 0 0;color:#69778c;font-size:13px}
.dp-live-courts>header>span{color:#087653;font-size:12px;font-weight:850;white-space:nowrap}
.dp-live-court-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));gap:12px;min-width:0;max-width:100%}
.dp-live-court-card{min-width:0;overflow:hidden;border:1px solid #d8e0eb;border-radius:12px;background:#fff}
.dp-live-court-card.in-use{border-color:#163868}
.dp-live-court-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px;background:#071838;color:#fff}
.dp-live-court-head h3{margin:0;color:inherit;font-size:14px}.dp-live-court-head span{font-size:9px;font-weight:900;letter-spacing:.07em}
.dp-live-court-card.available .dp-live-court-head{background:#eef3f8;color:#071838}
.dp-live-court-current,.dp-live-court-next{display:grid;gap:5px;padding:13px}
.dp-live-court-current strong{min-height:36px;color:#071838;font-size:24px}.dp-live-court-current b,.dp-live-court-next b{color:#087653;font-size:13px}
.dp-live-court-current small,.dp-live-court-next small{margin-top:5px;color:#6b778b;font-size:9px;font-weight:900;letter-spacing:.08em}
.dp-live-court-current span,.dp-live-court-next span{color:#69778c;font-size:11px}.dp-live-court-next{border-top:1px solid #e1e7ef;background:#f9fbfd}
.dp-live-court-queue{display:grid;gap:5px;padding:10px 13px;border-top:1px solid #e1e7ef;color:#35445e;font-size:10px}
.dp-checkin-intro{justify-content:flex-start}.dp-checkin-intro>span{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:12px;background:#071838;color:#fff;font-size:20px}
.dp-checkin-camera{display:grid;gap:12px;padding:12px;border:1px solid #dce3ed;border-radius:12px;background:#f7f9fc}
.dp-checkin-camera>div{display:grid;place-items:center;min-height:150px;padding:16px;border:2px dashed #bac5d5;border-radius:10px;color:#66758b;text-align:center;font-size:12px}
.dp-checkin-camera video{width:100%;height:220px;object-fit:cover;border-radius:10px;background:#071838}
.dp-checkin-camera button,.dp-checkin-manual button,.dp-checkin-today button{border:0;border-radius:9px;background:#071838;color:#fff;font-weight:800;padding:12px 14px;cursor:pointer}.dp-checkin-camera button:disabled,.dp-checkin-manual button:disabled,.dp-checkin-today button:disabled{opacity:.55;cursor:not-allowed}
.dp-checkin-manual h3{margin:0 0 4px;color:#071838;font-size:18px}.dp-checkin-manual p{margin:0 0 12px;color:#69778c;font-size:12px}.dp-checkin-manual form{display:grid;gap:10px}.dp-checkin-manual input{min-width:0;border:1px solid #aebbd0;border-radius:9px;padding:12px;font-size:15px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.dp-checkin-result{overflow:hidden}.dp-checkin-result>header{display:flex;justify-content:space-between;gap:14px;padding:15px;background:#eaf8f2}.dp-checkin-result h3{margin:3px 0;color:#071838}.dp-checkin-result header>div:last-child{display:grid;text-align:right;font-size:12px}.dp-checkin-today{padding:15px}.dp-checkin-today h4{margin:0 0 8px;color:#071838}.dp-checkin-today article{display:grid;gap:9px;padding:12px 0;border-top:1px solid #e1e7ef}.dp-checkin-today article>div{display:grid;gap:3px}.dp-checkin-today .done{color:#087653}.dp-checkin-no-today{padding:15px;color:#69778c;font-size:12px}
.dp-checkin-success{margin-bottom:14px;border:1px solid #79c5aa;border-radius:10px;background:#e9f8f2;color:#075f43;padding:12px 15px;font-weight:800}
.dp-today-schedule>header small{color:#6020d0;font-weight:900;letter-spacing:.09em}.dp-schedule-legend{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:9px;font-size:9px}.dp-schedule-legend span::before{content:"";display:inline-block;width:8px;height:8px;margin-right:4px;border-radius:2px;background:#d8dee8}.dp-schedule-legend .booking-pending::before{background:#9aa6b5}.dp-schedule-legend .booking-checked-in::before{background:#159457}.dp-schedule-legend .openplay::before{background:#7435db}.dp-schedule-legend .walkin::before{background:#287bd7}.dp-schedule-legend .event::before{background:#df930d}.dp-schedule-legend .closed::before{background:#dc2f2f}.dp-schedule-legend .maintenance::before{background:#8d98a8}
.dp-today-schedule-scroll{width:100%;max-width:100%;min-width:0;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.dp-today-schedule-grid{display:grid;min-width:720px;border:1px solid #dce3ed;border-radius:10px;overflow:hidden}.dp-today-grid-head,.dp-today-grid-time,.dp-today-grid-cell{min-height:34px;padding:8px;border-right:1px solid #e0e6ee;border-bottom:1px solid #e0e6ee;box-sizing:border-box}.dp-today-grid-head{background:#f3f6fa;color:#071838;text-align:center;font-size:11px;font-weight:850}.dp-today-grid-head.time,.dp-today-grid-time{text-align:left}.dp-today-grid-time{color:#263956;font-size:10px;font-weight:800}.dp-today-grid-cell{display:grid;place-items:center;color:#fff;text-align:center;font-size:9px;font-weight:800;transition:background .18s ease,border-color .18s ease,color .18s ease}.dp-today-grid-cell.available{background:#fff}.dp-today-grid-cell.booking,.dp-today-grid-cell.booking-pending{background:#9aa6b5;color:#fff}.dp-today-grid-cell.booking-checked-in{background:#159457;color:#fff}.dp-today-grid-cell.openplay{background:#7435db}.dp-today-grid-cell.walkin{background:#287bd7}.dp-today-grid-cell.event{background:#df930d}.dp-today-grid-cell.closed{background:#dc2f2f}.dp-today-grid-cell.maintenance{background:#8d98a8}.dp-today-grid-cell.hold{background:#f6c344;color:#573b00}
@media(max-width:1100px){
.dp-live-page-grid{
grid-template-columns:1fr;
grid-template-areas:
"checkin"
"dashboard"
"schedule";
}
.dp-checkin-column{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}
.dp-checkin-result,.dp-checkin-column>.auth-error{grid-column:1/-1}
.dp-live-court-grid{grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr))}
}
@media(max-width:760px){
.owner-court-page{padding:12px}
.dp-live-courts,.dp-today-schedule,.dp-owner-checkin,.dp-checkin-manual{padding:14px}
.dp-checkin-column,.dp-live-court-grid{grid-template-columns:1fr}
.dp-checkin-result,.dp-checkin-column>.auth-error{grid-column:auto}
.dp-live-courts>header,.dp-today-schedule>header{align-items:flex-start;flex-direction:column}
.dp-schedule-legend{justify-content:flex-start}
.dp-checkin-result>header{flex-direction:column}
.dp-checkin-result header>div:last-child{text-align:left}
.dp-checkin-camera video{height:clamp(190px,56vw,280px)}
.dp-checkin-camera button,.dp-checkin-manual button,.dp-checkin-today button{width:100%}
.dp-checkin-manual input{width:100%;box-sizing:border-box}
}
@media(max-width:420px){
.owner-court-page{padding:10px}
.dp-live-courts,.dp-today-schedule,.dp-owner-checkin,.dp-checkin-manual{padding:12px;border-radius:13px}
.dp-live-page-grid,.dp-checkin-column{gap:12px}
.dp-live-courts h2,.dp-today-schedule h2,.dp-checkin-intro h2{font-size:19px}
}
