.calendar-layout{display:grid;grid-gap:22px;gap:22px;grid-template-columns:minmax(0,1.35fr) minmax(320px,.8fr)}.calendar-panel{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:0 16px 44px rgba(16,34,56,.08);padding:24px;transition:transform .22s var(--ease),box-shadow .22s ease}.calendar-panel:hover{box-shadow:0 20px 52px rgba(16,34,56,.12);transform:translateY(-3px)}.calendar-heading{align-items:center;display:flex;justify-content:space-between}.calendar-heading h2,.reservation-form h2{font-family:var(--font-serif),Georgia,serif;font-size:2.1rem;margin:0}.room-filter{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.room-filter button{background:var(--surface-muted);border:1px solid var(--line);border-radius:999px;color:var(--ink-soft);cursor:pointer;font-size:.78rem;font-weight:900;min-height:34px;padding:0 12px}.room-filter button.active,.room-filter button:hover{background:var(--blue);border-color:var(--blue);color:var(--white)}.date-grid,.week-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.week-row{color:var(--ink-soft);font-size:.72rem;font-weight:900;gap:8px;margin:24px 0 10px;text-transform:uppercase}.date-grid{gap:8px}.date-cell{background:var(--surface-muted);border:1px solid transparent;border-radius:8px;color:var(--ink);display:flex;flex-direction:column;gap:6px;height:86px;min-height:68px;min-width:0;overflow:hidden;padding:8px;text-align:left;transition:background .18s ease,border-color .18s ease,transform .18s var(--ease),box-shadow .18s ease}.date-cell:hover{border-color:rgba(21,79,163,.24);box-shadow:0 10px 20px rgba(16,34,56,.08);transform:translateY(-2px)}.date-cell[data-selected=true]{background:var(--blue);border-color:var(--blue);box-shadow:0 14px 30px rgba(21,79,163,.24);color:var(--white)}.date-cell[data-selected=true] .reservation-stack small{background:rgba(255,255,255,.92);color:#102238}.date-cell[data-selected=true] .reservation-stack .more-count{background:rgba(240,201,93,.95);color:#102238}.date-number{font-weight:900;line-height:1}.reservation-stack{display:grid;grid-gap:4px;gap:4px;margin-top:auto;min-width:0;overflow:hidden}.reservation-stack small{background:rgba(21,79,163,.1);border-radius:6px;color:var(--blue);display:block;font-size:.68rem;font-weight:900;line-height:1.2;max-width:100%;overflow:hidden;padding:3px 5px;text-overflow:ellipsis;white-space:nowrap}.reservation-stack .more-count{background:rgba(184,51,47,.1);color:var(--red)}.date-cell.booked{background:var(--gold-soft);border-color:rgba(226,178,58,.5)}.selected-day-panel{background:var(--surface-muted);border:1px solid var(--line);border-radius:8px;margin-top:18px;padding:18px}.selected-day-panel h3{font-family:var(--font-serif),Georgia,serif;font-size:1.7rem;margin:0 0 12px}.selected-reservations{display:grid;grid-gap:10px;gap:10px}.selected-reservations article{background:var(--surface);border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:5px;gap:5px;padding:12px}.open-day,.selected-reservations span{color:var(--ink-soft);line-height:1.45;margin:0}.event-row,.events-panel{display:grid;grid-gap:14px;gap:14px}.event-row{border-top:1px solid var(--line);grid-template-columns:74px 1fr;padding-top:14px}.event-date{background:var(--blue);border-radius:8px;color:var(--white);display:grid;font-weight:900;min-height:58px;padding:10px;place-items:center;text-align:center}.event-row h3{margin:0 0 6px}.event-row p{align-items:center;color:var(--ink-soft);display:flex;gap:6px;margin:0 0 8px}.event-row span{color:var(--red);font-size:.78rem;font-weight:900}.reservation-day{align-items:start}.reservation-list{display:grid;grid-gap:12px;gap:12px}.reservation-item{border-bottom:1px solid var(--line);padding-bottom:12px}.reservation-item:last-child{border-bottom:0;padding-bottom:0}.reservation-form{grid-column:1/-1}.reservation-form .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.reservation-form .field:nth-child(5),.reservation-form .form-status,.reservation-form button{grid-column:1/-1}.split{grid-template-columns:repeat(2,minmax(0,1fr))}.split span{display:grid;grid-gap:8px;gap:8px}@media (max-width:900px){.calendar-layout,.reservation-form .form-grid{grid-template-columns:1fr}.date-cell{height:58px;min-height:52px;padding:6px}.reservation-stack{gap:2px}.reservation-stack small{font-size:.62rem;padding:2px 4px}}