/* Classroom Booking R23: only the occupied-room details overlay, mobile and desktop. */
.schedule-matrix .matrix-room-busy:has([data-r23-booking]) {cursor:pointer}
.schedule-matrix [data-r23-booking]{cursor:pointer;outline-offset:3px;touch-action:manipulation}
.schedule-matrix [data-r23-booking]::after{content:' · 详情 ↗';font-size:.76em;opacity:.72;white-space:nowrap}
.schedule-matrix [data-r23-booking]:focus-visible{outline:2px solid #2766bb;border-radius:5px}
.r23-dialog{box-sizing:border-box;color:#192b42;background:#fff;border:1px solid #dbe6f0;border-radius:22px;box-shadow:0 26px 90px rgba(9,33,64,.22);width:min(550px,calc(100vw - 36px));max-width:none;max-height:min(90dvh,850px);padding:0;overflow:auto;overscroll-behavior:contain}
.r23-dialog::backdrop{background:rgba(8,23,45,.56);backdrop-filter:blur(3px)}
.r23-head{display:flex;gap:12px;justify-content:space-between;padding:29px 30px 22px;background:linear-gradient(126deg,#f0f7ff 0%,#fff 75%);border-bottom:1px solid #e5edf5}
.r23-overline{color:#306db0;font-size:11px;font-weight:800;letter-spacing:.14em}
.r23-head h2{font-size:23px;line-height:1.35;margin:10px 0 8px;color:#153658}
.r23-subtitle{color:#54657c;line-height:1.6;font-size:13px;margin:0;overflow-wrap:anywhere}
.r23-close{border:1px solid #dce5ee;background:#fff;color:#39516d;font-size:25px;line-height:1;width:37px;height:37px;flex:0 0 37px;border-radius:50%;cursor:pointer}
.r23-body{padding:23px 30px 12px}
.r23-info{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.r23-field{min-width:0;background:#f6f9fc;border:1px solid #e7eef6;border-radius:13px;padding:15px 13px}
.r23-label{font-size:12px;color:#677990;font-weight:700;display:block;margin-bottom:10px}
.r23-value-row{display:flex;align-items:center;gap:8px;min-width:0}
.r23-value{font-size:15px;line-height:1.5;font-weight:700;color:#19324f;min-width:0;overflow-wrap:anywhere;user-select:text}
.r23-copy{flex:0 0 auto;font-size:12px;font-weight:700;color:#2368b1;background:#fff;border:1px solid #bfd6ef;padding:6px 9px;border-radius:8px;cursor:pointer;white-space:nowrap}
.r23-copy:hover,.r23-close:hover{background:#eaf4ff}
.r23-note{font-size:12px;color:#647792;line-height:1.7;min-height:22px;margin:17px 0 7px}
.r23-bottom{border-top:1px solid #e6edf3;padding:14px 30px 20px;display:flex;justify-content:flex-end}
.r23-dismiss{border:0;border-radius:11px;background:#215f9d;color:#fff;font-weight:700;padding:11px 22px;cursor:pointer}
.r23-dialog button:focus-visible{outline:3px solid #80b6ed;outline-offset:2px}
@media(max-width:800px){
  .r23-dialog{width:100%;max-width:100%;max-height:min(90dvh,900px);margin:auto 0 0;position:fixed;inset:auto 0 0;border-radius:24px 24px 0 0;border-bottom:0;padding-bottom:env(safe-area-inset-bottom,0px);box-shadow:0 -14px 48px rgba(8,25,50,.18)}
  .r23-dialog::backdrop{background:rgba(11,26,46,.58)}
  .r23-head{padding:25px 20px 20px}
  .r23-head h2{font-size:21px}
  .r23-body{padding:19px 16px 10px}
  .r23-info{grid-template-columns:1fr;gap:10px}
  .r23-field{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:13px 14px}
  .r23-label{margin:3px 0 0;flex:0 0 85px}
  .r23-value-row{flex:1;justify-content:flex-end;text-align:right;flex-wrap:wrap}
  .r23-value{font-size:14px}
  .r23-bottom{padding:12px 16px 12px}
  .r23-dismiss{width:100%;min-height:44px}
}
@media(prefers-reduced-motion:reduce){.r23-dialog,.r23-dialog *{scroll-behavior:auto}}
