/*
 * ============================================================
 * 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{max-width:1540px;margin:0 auto;padding:20px}
.dp-live-workspace{display:grid;grid-template-columns:minmax(0,7fr) minmax(310px,3fr);gap:18px;align-items:start}
.dp-live-main,.dp-checkin-column{display:grid;gap:18px;min-width:0}
.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{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(4,minmax(0,1fr));gap:12px}
.dp-live-court-card{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::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{overflow-x:auto}.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}.dp-today-grid-cell.available{background:#fff}.dp-today-grid-cell.booking{background:#159457}.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:1180px){.dp-live-workspace{grid-template-columns:1fr}.dp-checkin-column{grid-template-columns:1fr 1fr;align-items:start}.dp-checkin-result,.dp-checkin-column>.auth-error{grid-column:1/-1}}
@media(max-width:900px){.dp-live-court-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.owner-court-page{padding:12px}.dp-live-courts,.dp-today-schedule,.dp-owner-checkin,.dp-checkin-manual{padding:14px}.dp-live-court-grid,.dp-checkin-column{grid-template-columns:1fr}.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}}
