.occupancy-page{background:#f5f7f7}.public-calendar-nav{display:flex;align-items:center;gap:4px;padding:4px;border:1px solid var(--line);border-radius:8px;background:#fff}.public-calendar-nav a{padding:9px 12px;border-radius:6px;color:var(--muted);font-size:.84rem;font-weight:750}.public-calendar-nav a:hover,.public-calendar-nav a.active{color:var(--accent-strong);background:var(--accent-soft)}.occupancy-main{width:min(1420px,calc(100% - 40px));margin:0 auto;padding:42px 0 64px}.occupancy-head{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:26px}.occupancy-head h1{margin:0;font-size:clamp(2rem,4vw,3.6rem);letter-spacing:0}.occupancy-head>div>p:last-child{margin:8px 0 0;color:var(--muted)}.occupancy-legend{display:flex;gap:16px;padding-bottom:6px}.occupancy-legend span{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:.8rem;font-weight:700}.occupancy-legend i{width:11px;height:11px;border:1px solid #bfd8d2;border-radius:3px;background:#edf8f5}.occupancy-legend .reserved i{border-color:#d8bd75;background:#fff4cf}.occupancy-legend .busy i{border-color:#d8a39f;background:#f5d8d5}.month-toolbar{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;margin-bottom:12px;border:1px solid var(--line);border-radius:8px;background:#fff}.month-toolbar>a,.month-toolbar>.month-nav-disabled{display:grid;place-items:center;height:48px;color:var(--accent-strong);font-size:1.8rem}.month-toolbar>.month-nav-disabled{color:#c5cfcd}.month-toolbar>a:hover{background:var(--accent-soft)}.month-toolbar>div{display:flex;align-items:baseline;justify-content:center;gap:12px}.month-toolbar strong{font-size:1.02rem}.month-toolbar div a{color:var(--accent-strong);font-size:.74rem;font-weight:750}.occupancy-calendar{overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--line);box-shadow:var(--shadow-soft)}.weekday-row,.occupancy-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px}.weekday-row span{padding:11px 12px;color:var(--muted);background:#f8faf9;font-size:.72rem;font-weight:800;text-transform:uppercase}.occupancy-day{min-width:0;min-height:152px;padding:12px;background:#fff}.occupancy-day.outside{background:#f8faf9;opacity:.52}.occupancy-day>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.occupancy-day>header span{display:none;color:var(--muted);font-size:.7rem;font-weight:800}.occupancy-day>header strong{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;font-size:.9rem}.occupancy-day.today>header strong{color:#fff;background:var(--accent)}.room-statuses{display:grid;gap:7px}.room-status{display:grid;gap:3px;min-width:0;padding:8px;border-left:3px solid #9dcfc4;border-radius:0 5px 5px 0;background:#f0f8f6}.room-status span{overflow:hidden;color:var(--muted);font-size:.65rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.room-status strong{color:#2e6c60;font-size:.72rem}.room-status.reserved{border-left-color:#c89b2c;background:#fff8df}.room-status.reserved strong{color:#8a6410}.room-status.reserved span{color:#756847}.room-status.busy{border-left-color:#c64b43;background:#fbedeb}.room-status.busy strong{color:#a6322c}.room-status.busy span{color:#7c5552}
@media(max-width:1000px){.occupancy-main{width:min(100% - 28px,900px)}.occupancy-day{min-height:140px;padding:9px}.room-status{padding:7px 6px}.room-status strong{font-size:.66rem}}
@media(max-width:760px){.shop-header{align-items:flex-start;flex-direction:column}.public-calendar-nav{width:100%}.public-calendar-nav a{flex:1;text-align:center}.occupancy-main{width:calc(100% - 24px);padding-top:28px}.occupancy-head{align-items:flex-start;flex-direction:column}.occupancy-legend{padding:0}.weekday-row{display:none}.occupancy-grid{grid-template-columns:1fr}.occupancy-day{display:grid;grid-template-columns:48px 1fr;gap:10px;min-height:0;padding:10px 12px}.occupancy-day.outside{display:none}.occupancy-day>header{align-items:center;flex-direction:column;justify-content:center;margin:0;border-right:1px solid var(--line)}.occupancy-day>header span{display:block}.room-statuses{grid-template-columns:repeat(2,minmax(0,1fr))}.room-status span{font-size:.68rem}.room-status strong{font-size:.74rem}.month-toolbar>div{align-items:center;flex-direction:column;gap:1px}}
@media(max-width:420px){.room-statuses{grid-template-columns:1fr}}

.occupancy-head-actions{display:flex;align-items:flex-end;gap:18px}.room-status.free{transition:background .18s ease,border-color .18s ease}.room-status.free:hover{border-left-color:#cf463e;background:#fff0ee}.room-status.free:hover strong{color:#b73631}
@media(max-width:760px){.occupancy-head-actions{width:100%;align-items:stretch;flex-direction:column}.occupancy-head-actions .primary-button{text-align:center}.occupancy-head-actions .occupancy-legend{justify-content:space-between}}