.rooms-shell { padding-top:24px; }
.room-nav { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:26px; }
.room-nav a { padding:9px 13px; border-radius:10px; color:var(--blue2); font-weight:750; text-decoration:none; }
.room-nav a[aria-current] { background:var(--blue); color:white; }
.room-heading h1 { font-size:clamp(25px,4vw,38px); margin:0 0 22px; }
.room-controls { display:flex; align-items:end; flex-wrap:wrap; gap:12px; padding:17px; background:white; border:1px solid var(--line); border-radius:16px; }
.room-controls label { display:grid; gap:5px; color:var(--muted); font-size:12px; font-weight:700; }
.room-controls select,.room-controls button { min-height:44px; padding:9px 15px; border:1px solid #bbd4e0; border-radius:9px; font:inherit; color:var(--blue); background:#fff; }
.room-controls select { min-width:130px; font-size:16px; }
.room-controls button { background:var(--blue); color:white; cursor:pointer; font-weight:800; }
.room-controls a { margin-left:auto; padding:12px 0; color:var(--blue2); font-weight:700; }
.room-week { display:flex; align-items:center; gap:16px; margin:22px 0 14px; }
.room-week button { width:42px; height:42px; border:1px solid var(--line); border-radius:10px; background:white; color:var(--blue); font-size:19px; cursor:pointer; }
.room-week strong { flex:1; text-align:center; }
#roomDays { display:flex; gap:7px; margin:14px 0; }
#roomDays button { min-height:42px; border:1px solid var(--line); border-radius:10px; padding:9px 14px; background:white; color:var(--blue2); font-weight:800; cursor:pointer; }
#roomDays button.active { background:var(--blue); color:white; border-color:var(--blue); }
#roomDays button:focus-visible,.room-controls select:focus-visible { outline:3px solid var(--cyan); outline-offset:2px; }
.coverage { display:grid; gap:4px; border:1px solid var(--line); border-radius:12px; padding:12px 15px; margin-bottom:15px; background:#eaf4fa; }
.coverage strong { font-size:13px; }.coverage span { font-size:12px; color:var(--muted); }
.coverage[data-state="ready"] { background:#eef8f4; border-color:#c5e2d6; }.coverage[data-state="error"] { background:#fff4e5; border-color:#eed4ab; }
.coverage progress { width:100%; height:5px; margin-top:6px; accent-color:var(--cyan); }
.occupancy-wrap { overflow:auto; border:1px solid var(--line); border-radius:14px; background:white; }
#occupancy { width:100%; min-width:1080px; border-collapse:collapse; table-layout:fixed; }
#occupancy caption { text-align:left; font-weight:800; font-size:19px; color:var(--blue); padding:16px; }
#occupancy th,#occupancy td { border:1px solid var(--line); padding:12px; vertical-align:top; overflow-wrap:anywhere; }
#occupancy thead th { background:var(--blue); color:white; font-size:14px; }
#occupancy thead th small { display:block; margin-top:5px; font-size:10px; font-weight:500; }
#occupancy th:first-child { width:115px; position:sticky; left:0; z-index:1; }.room-date { background:#f0f7fb; color:var(--blue); }.room-date small { display:block; font-weight:500; }
.room-free { background:#f1f9f5; color:#267452; }.room-unknown { color:#758793; background:#f6f8fa; }.slot-state { font-size:12px; font-weight:750; }
.room-busy { background:#fff; }.room-busy>.slot-state { color:var(--blue2); }
.room-event { margin-top:10px; border-top:3px solid var(--cyan); padding-top:9px; }.room-event h3 { margin:0 0 8px; font-size:13px; line-height:1.35; color:var(--blue); }.room-event p { margin:5px 0; font-size:11px; }.room-event a { color:var(--blue2); text-underline-offset:2px; }.room-event small { font-size:10px; color:var(--muted); }.room-event details { font-size:11px; margin-top:6px; }.room-event summary { cursor:pointer; color:var(--blue2); }.room-event ul { padding-left:15px; }
.room-explanation,.room-help { color:var(--muted); font-size:12px; line-height:1.6; margin:14px 0; }.room-help summary { cursor:pointer; color:var(--blue2); }
.occupancy-wrap.focus-day #occupancy { min-width:0; display:block; }.focus-day #occupancy caption { display:block; }.focus-day #occupancy thead { display:none; }.focus-day #occupancy tbody,.focus-day #occupancy tr { display:block; }.focus-day #occupancy th { width:auto; display:block; }.focus-day #occupancy td { display:block; padding:15px; }.focus-day #occupancy td::before { content:attr(data-pair); display:block; font-size:13px; font-weight:800; color:var(--blue); margin-bottom:8px; }
@media(max-width:620px) { .rooms-shell { padding-top:14px; }.room-nav { margin-bottom:20px; gap:2px; }.room-nav a { padding:8px 10px; font-size:12px; }.room-heading h1 { margin-bottom:16px; }.room-controls { gap:9px; padding:12px; }.room-controls label { flex:1; }.room-controls select { min-width:0; width:100%; }.room-controls button { flex:1; }.room-controls a { font-size:12px; }.room-week { margin-top:14px; gap:8px; }.room-week strong { font-size:13px; }#roomDays { gap:5px; flex-wrap:wrap; }#roomDays button { padding:8px 10px; min-width:0; min-height:40px; }.coverage { padding:10px; } }
#corpusPlan{margin-left:0;padding:11px 15px;border:1px solid #bbd4e0;border-radius:9px;background:#eaf5fc;text-decoration:none;min-height:44px}
#corpusPlan[hidden]{display:none}
