.seasonal-calendar { margin-bottom:24px; }
.availability-controls { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:20px 0 12px; }
.availability-controls[hidden], .availability-legend[hidden] { display:none; }
.availability-controls h3 { text-transform:capitalize; text-align:center; }
.availability-controls button { flex:0 0 44px; height:44px; border:1px solid #c6ded3; border-radius:50%; background:#edf7f1; color:#126c63; cursor:pointer; }
.availability-controls button:disabled { opacity:.4; cursor:default; }
.availability-controls button:focus-visible { outline:3px solid #126c63; outline-offset:3px; }
.availability-table { width:100%; table-layout:fixed; border-collapse:separate; border-spacing:4px; text-align:center; }
.availability-table th { font-size:.75rem; padding:6px 0; }
.availability-table td { padding:0; height:44px; }
.availability-table td span { display:flex; align-items:center; justify-content:center; min-height:44px; border-radius:8px; }
.seasonal-calendar .is-free { background:#e4f3eb; color:#165d42; }
.seasonal-calendar .is-busy { background:#fbe9e7; color:#942f29; text-decoration:line-through; }
.seasonal-calendar .is-past { background:#eef0f2; color:#65717d; }
.availability-table [aria-current] span { outline:2px solid #126c63; outline-offset:-2px; font-weight:700; }
.availability-legend { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; font-size:.8rem; }
.availability-legend span { padding:5px 10px; border-radius:8px; }
.smartlife-dark-mode .seasonal-calendar .is-free { background:#173d30; color:#abdfc5; }
.smartlife-dark-mode .seasonal-calendar .is-busy { background:#492c2c; color:#ffbcb5; }
.smartlife-dark-mode .seasonal-calendar .is-past { background:#29333c; color:#abb5be; }
