/* SSO Citymall Daily Operations v9: full court-booking calendar and detailed records. */
#rentals .court-board { grid-template-columns:minmax(0,1fr); }
#rentals .court-board > .mini-calendar-panel { display:none; }
.court-bookings-workspace { display:grid; grid-template-columns:minmax(0,1fr); gap:18px; margin-top:18px; }
.court-month-panel,.court-rental-records { padding:20px; }
.court-month-head,.court-records-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.court-month-head h3,.court-records-head h3 { margin:2px 0 5px; color:var(--sso-text); font:800 22px Outfit,sans-serif; }
.court-month-head p,.court-records-head p { margin:0; max-width:690px; color:var(--sso-muted); font-size:13px; }
.court-month-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:7px; }
.court-month-actions button { white-space:nowrap; }
.court-month-label { margin:16px 0 10px; color:var(--sso-text); font:800 18px Outfit,sans-serif; text-align:center; }
.court-month-calendar { display:grid; grid-template-columns:repeat(7,minmax(115px,1fr)); overflow:auto; border-top:1px solid var(--sso-border); border-left:1px solid var(--sso-border); }
.court-month-weekday { min-width:115px; padding:10px 8px; border-right:1px solid var(--sso-border); border-bottom:1px solid var(--sso-border); background:#f7f9fc; color:#697b91; font-size:11px; font-weight:900; letter-spacing:.07em; text-align:center; text-transform:uppercase; }
.court-month-date { position:relative; min-width:115px; min-height:124px; padding:7px; border-right:1px solid var(--sso-border); border-bottom:1px solid var(--sso-border); background:#fff; text-align:left; }
.court-month-date.empty { min-height:72px; background:#fafbfc; }
.court-month-date.selected { box-shadow:inset 0 0 0 2px #f4c323; background:#fffdf4; }
.court-month-date:hover:not(.empty) { background:#fffef9; }
.court-date-button { display:flex; align-items:center; justify-content:center; width:25px; height:25px; padding:0; border:0; border-radius:7px; background:transparent; color:#2c405a; font:800 12px Outfit,sans-serif; }
.court-month-date.selected .court-date-button,.court-date-button:hover { background:#ffd133; color:#15253c; }
.month-bookings { display:grid; gap:4px; margin-top:6px; }
.month-booking { width:100%; overflow:hidden; border:0; border-radius:5px; padding:5px 6px; color:#172638; font:800 10px/1.25 DM Sans,sans-serif; text-align:left; white-space:normal; cursor:pointer; }
.month-booking:hover { filter:brightness(.96); transform:translateY(-1px); }
.month-booking small { display:block; margin-top:2px; font-size:9px; font-weight:700; opacity:.82; }
.month-more { padding:2px 4px; border:0; background:transparent; color:#35587e; font-size:10px; font-weight:900; text-align:left; cursor:pointer; }
.court-selected-day-panel { margin-top:17px; padding-top:17px; border-top:1px solid var(--sso-border); }
.court-selected-day-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.court-selected-day-head h4 { margin:2px 0 4px; color:var(--sso-text); font:800 20px Outfit,sans-serif; }
.court-selected-day-head p { margin:0; color:var(--sso-muted); font-size:13px; }
.court-selected-day-schedules { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:12px; margin-top:14px; }
.court-selected-card { min-width:0; border:1px solid var(--sso-border); border-left:5px solid #8fa4b9; border-radius:12px; padding:13px; background:#fff; box-shadow:0 5px 18px rgba(28,49,76,.06); }
.court-selected-card.booking-reservation { border-left-color:#e98ba7; }
.court-selected-card.booking-coaching { border-left-color:#e2ad35; }
.court-selected-card.booking-pencil { border-left-color:#75b9ec; }
.court-selected-card.booking-balance { border-left-color:#ec9a43; }
.court-selected-card.booking-completed { border-left-color:#97a6b5; }
.court-selected-card.booking-openplay { border-left-color:#9d7be6; }
.court-selected-card.booking-not_applicable { border-left-color:#8d9bad; }
.court-selected-card.booking-other { border-left-color:#56b9b3; }
.court-selected-card-head { display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:19px; }
.court-selected-state { color:#263b55; font-size:10px; font-weight:900; letter-spacing:.04em; text-transform:uppercase; }
.court-selected-card h5 { margin:8px 0 2px; color:var(--sso-text); font:800 16px Outfit,sans-serif; overflow-wrap:anywhere; }
.court-selected-slot { margin:0; color:#536a85; font-size:12px; font-weight:800; }
.court-selected-meta { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:12px; }
.court-selected-meta span { min-width:0; color:var(--sso-text); font-size:12px; font-weight:800; overflow-wrap:anywhere; }
.court-selected-meta small { display:block; margin-bottom:2px; color:var(--sso-muted); font-size:9px; font-weight:900; letter-spacing:.05em; text-transform:uppercase; }
.court-selected-notes { margin:11px 0 0; color:#596c83; font-size:11px; line-height:1.45; overflow-wrap:anywhere; }
.court-selected-actions { display:flex; flex-wrap:wrap; gap:7px; margin-top:13px; }
.court-selected-actions button { padding:7px 10px; font-size:11px; }
.court-selected-empty { grid-column:1 / -1; margin:0; padding:13px; border:1px dashed var(--sso-border); border-radius:10px; }
.court-month-legend { display:flex; flex-wrap:wrap; gap:8px; margin-top:13px; }
.court-rental-records { overflow:hidden; }
.court-rental-records .toolbar { margin:17px 0 13px; }
.court-rental-records .table-wrap { margin:0 -4px; border:1px solid var(--sso-border); border-radius:12px; }
.court-rental-records .list-pagination { margin:0 0 12px; }
body.dark-mode .court-month-date { background:#172234; border-color:#33445c; }
body.dark-mode .court-month-date.empty,body.dark-mode .court-month-weekday { background:#1d2a3d; border-color:#33445c; }
body.dark-mode .court-month-date.selected { background:#39321b; box-shadow:inset 0 0 0 2px #f4c323; }
body.dark-mode .court-date-button { color:#edf5ff; }
body.dark-mode .court-month-label,body.dark-mode .court-month-head h3,body.dark-mode .court-records-head h3,body.dark-mode .court-selected-day-head h4,body.dark-mode .court-selected-card h5 { color:#f5f8ff; }
body.dark-mode .court-selected-card { background:#172234; border-color:#33445c; }
body.dark-mode .court-selected-state,body.dark-mode .court-selected-meta span { color:#edf5ff; }
body.dark-mode .court-selected-slot,body.dark-mode .court-selected-notes { color:#b9c9dc; }
@media(max-width:750px) { .court-month-panel,.court-rental-records { padding:15px; } .court-month-head,.court-records-head,.court-selected-day-head { flex-direction:column; } .court-month-actions { justify-content:flex-start; } .court-month-calendar { grid-template-columns:repeat(7,minmax(92px,1fr)); } .court-month-weekday,.court-month-date { min-width:92px; } .court-month-date { min-height:105px; padding:5px; } .month-booking { padding:4px; font-size:9px; } .court-selected-day-schedules { grid-template-columns:1fr; } .court-rental-records .toolbar { flex-direction:column; } }
