/* CalendarGrid Molecule - Month-view calendar for date selection */

.calendar-grid {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    user-select: none;
}

.calendar-grid-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-1) 0;
}

.calendar-grid-title {
    font-family: var(--font-family-sans);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--text-primary);
}

.calendar-grid-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    width: var(--space-7);
    height: var(--space-7);
    padding: 0;
    background: none;
    border: none;
    border-radius: var(--border-radius-md);
    color: var(--text-muted);
    cursor: pointer;
    font: inherit;
    transition: all var(--duration-150) var(--easing-out);
}

.calendar-grid-nav:hover {
    background: var(--bg-surface-hover);
    color: var(--text-primary);
}

.calendar-grid-nav:focus-visible {
    outline: none;
    border-color: var(--border-focus);
    box-shadow: var(--focus-ring-shadow);
}

.calendar-grid-days,
.calendar-grid-cells {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
}

.calendar-grid-cells {
    gap: var(--space-0_5);
}

.calendar-grid-day-name {
    font-family: var(--font-family-sans);
    font-size: var(--text-xs);
    font-weight: var(--font-weight-medium);
    color: var(--text-muted);
    text-align: center;
    padding: var(--space-1) 0;
}

.calendar-grid-day {
    display: flex;
    align-items: center;
    justify-content: center;
    height: var(--space-7);
    font-family: var(--font-family-sans);
    font-size: var(--text-xs);
    color: var(--text-body);
    border-radius: var(--border-radius-md);
    cursor: pointer;
    transition: all var(--duration-150) var(--easing-out);
}

.calendar-grid-day:not(.outside):not(.disabled):not(.selected):hover {
    background: var(--bg-surface-hover);
    color: var(--text-primary);
}

.calendar-grid-day.outside {
    color: var(--text-light);
    cursor: default;
}

.calendar-grid-day.disabled {
    color: var(--text-light);
    cursor: not-allowed;
    opacity: 0.5;
}

.calendar-grid-day.today:not(.selected) {
    font-weight: var(--font-weight-semibold);
    color: var(--color-primary);
}

.calendar-grid-day.selected {
    background: var(--color-primary);
    color: var(--text-inverse);
    font-weight: var(--font-weight-medium);
}

.calendar-grid-day.selected:hover {
    background: var(--color-primary-hover);
}
