.calendar{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px;box-shadow:var(--card-shadow)}
.calendar__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.calendar__title{font-size:15px;font-weight:700;color:var(--text-primary)}
.calendar__nav{width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);border-radius:var(--radius);transition:all var(--ease);background:var(--bg-muted)}
.calendar__nav:hover{background:var(--gray-200);color:var(--text-primary)}
.calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.calendar__weekday{font-size:11px;font-weight:700;color:var(--text-muted);text-align:center;padding:6px 0}
.calendar__day{aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;font-size:13.5px;font-weight:600;color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--ease);position:relative;border:1.5px solid transparent}
.calendar__day:hover{background:var(--gray-100)}
.calendar__day--other{color:var(--gray-300)}
.calendar__day--today{border-color:var(--primary);color:var(--primary)}
.calendar__day--selected{background:var(--primary);color:#fff}
.calendar__day--has-apt::after{content:'';position:absolute;bottom:3px;left:50%;transform:translateX(-50%);width:5px;height:5px;border-radius:50%;background:var(--warning)}
.calendar__day--selected.calendar__day--has-apt::after{background:#fff}
