.cal{padding:1.25rem;border-radius:20px}.cal__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.cal__title{margin:0;font-size:1.1rem;text-transform:capitalize;font-weight:700}.cal__nav{width:2.25rem;height:2.25rem;border:1px solid var(--border);border-radius:50%;background:#fff;cursor:pointer;font-size:1.25rem;line-height:1}.cal__nav:hover{background:var(--surface-muted)}.cal__weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px;font-size:.75rem;font-weight:600;color:var(--muted);text-align:center}.cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal__cell{aspect-ratio:1;min-height:2.5rem;border:none;border-radius:10px;font:inherit;font-size:.875rem;font-weight:500;cursor:pointer;background:var(--success-bg);color:var(--text)}.cal__cell--empty{background:transparent;cursor:default}.cal__cell--past{background:var(--surface-muted);color:#aab0bc;cursor:not-allowed}.cal__cell--busy{background:var(--danger-bg);color:var(--danger);cursor:not-allowed;text-decoration:line-through}.cal__cell--free:hover{background:#d4f0e0}.cal__cell--selected,.cal__cell--range{background:var(--accent);color:#fff}.cal__cell--selected:hover,.cal__cell--range:hover{background:var(--accent-hover)}.cal__cell:disabled{opacity:1}.cal__legend{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;margin:1.25rem 0 0;padding:0;list-style:none;font-size:.8125rem;color:var(--muted)}.cal__swatch{display:inline-block;width:1rem;height:1rem;border-radius:4px;vertical-align:middle;margin-right:.35rem}.cal__swatch--free{background:var(--success-bg);border:1px solid #b8dcc8}.cal__swatch--busy{background:var(--danger-bg);border:1px solid #f5c4bf}.cal__swatch--selected{background:var(--accent)}
