.lew-availability-table-wrapper { margin: var(--lew-space-6) 0; overflow-x: auto; }
.lew-availability-legend { display: flex; gap: var(--lew-space-4); margin-bottom: var(--lew-space-4); flex-wrap: wrap; font-size: 0.88rem; }
.lew-legend-item { display: inline-flex; align-items: center; gap: 6px; color: var(--lew-color-text-muted); }
.lew-status-dot { width: 12px; height: 12px; border-radius: 50%; display: inline-block; }
.lew-status-dot.lew-status-available, .lew-bg-available { background: var(--lew-color-success); }
.lew-status-dot.lew-status-booked, .lew-bg-booked { background: var(--lew-color-warning); }
.lew-status-dot.lew-status-sold, .lew-bg-sold { background: var(--lew-color-text-muted); }
.lew-status-dot.lew-status-hold, .lew-bg-hold { background: var(--lew-color-primary); }

.lew-availability-table { border-collapse: separate; border-spacing: 6px; min-width: 100%; }
.lew-availability-table caption { text-align: left; font-weight: 700; margin-bottom: var(--lew-space-3); color: var(--lew-color-text); }
.lew-availability-table th[scope="row"] { text-align: left; padding-right: var(--lew-space-4); color: var(--lew-color-text-muted); font-weight: 600; white-space: nowrap; }
.lew-availability-cell {
	min-width: 56px; padding: var(--lew-space-2) var(--lew-space-3); border: none; border-radius: var(--lew-radius-sm); color: #fff;
	font-weight: 700; font-size: 0.85rem; cursor: pointer; transition: transform .15s ease, filter .15s ease;
}
.lew-availability-cell:hover { transform: scale(1.06); filter: brightness(1.08); }
.lew-bg-sold { cursor: not-allowed; opacity: .7; }
