/**
 * Appointment Scheduler Module Styles
 */

[data-module="appointment-scheduler"] .appointment-scheduler__content {
    display: grid;
    gap: var(--wl-space-6);
}

@media (min-width: 768px) {
    [data-module="appointment-scheduler"] .appointment-scheduler__content {
        grid-template-columns: 1fr 280px;
        grid-template-rows: auto auto;
    }

    [data-module="appointment-scheduler"] .appointment-scheduler__calendar {
        grid-row: 1 / 3;
    }
}

/* Calendar */
[data-module="appointment-scheduler"] .appointment-scheduler__calendar {
    background-color: var(--wl-surface);
    border-radius: var(--wl-radius-lg);
    padding: var(--wl-space-4);
    box-shadow: var(--wl-shadow);
}

[data-module="appointment-scheduler"] .appointment-scheduler__calendar-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--wl-space-4);
    padding-bottom: var(--wl-space-3);
    border-bottom: 1px solid var(--wl-border);
}

[data-module="appointment-scheduler"] .appointment-scheduler__month {
    font-size: var(--wl-text-lg);
    font-weight: var(--wl-font-semibold);
    text-transform: capitalize;
}

[data-module="appointment-scheduler"] .appointment-scheduler__nav {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background: none;
    border: 1px solid var(--wl-border);
    border-radius: var(--wl-radius);
    color: var(--wl-text);
    cursor: pointer;
    transition: all var(--wl-transition-fast);
}

[data-module="appointment-scheduler"] .appointment-scheduler__nav:hover {
    background-color: var(--wl-bg);
    border-color: var(--wl-text-muted);
}

/* Week Grid */
[data-module="appointment-scheduler"] .appointment-scheduler__week {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: var(--wl-space-2);
}

[data-module="appointment-scheduler"] .appointment-scheduler__day {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: var(--wl-space-3) var(--wl-space-2);
    background: none;
    border: 2px solid var(--wl-border);
    border-radius: var(--wl-radius);
    cursor: pointer;
    transition: all var(--wl-transition-fast);
}

[data-module="appointment-scheduler"] .appointment-scheduler__day:hover:not(.appointment-scheduler__day--disabled) {
    border-color: var(--wl-secondary);
    background-color: rgba(49, 130, 206, 0.05);
}

[data-module="appointment-scheduler"] .appointment-scheduler__day--selected {
    border-color: var(--wl-secondary);
    background-color: rgba(49, 130, 206, 0.1);
}

[data-module="appointment-scheduler"] .appointment-scheduler__day--disabled {
    opacity: 0.4;
    cursor: not-allowed;
    background-color: var(--wl-bg);
}

[data-module="appointment-scheduler"] .appointment-scheduler__day--weekend {
    background-color: var(--wl-bg);
}

[data-module="appointment-scheduler"] .appointment-scheduler__day-name {
    font-size: var(--wl-text-xs);
    color: var(--wl-text-muted);
    text-transform: uppercase;
    font-weight: var(--wl-font-medium);
}

[data-module="appointment-scheduler"] .appointment-scheduler__day-number {
    font-size: var(--wl-text-xl);
    font-weight: var(--wl-font-semibold);
    margin: var(--wl-space-1) 0;
}

[data-module="appointment-scheduler"] .appointment-scheduler__day-slots {
    font-size: var(--wl-text-xs);
    color: var(--wl-success);
}

/* Loading & Empty States */
[data-module="appointment-scheduler"] .appointment-scheduler__loading,
[data-module="appointment-scheduler"] .appointment-scheduler__empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: var(--wl-space-8);
    text-align: center;
    color: var(--wl-text-muted);
    gap: var(--wl-space-2);
}

/* Time Slots Panel */
[data-module="appointment-scheduler"] .appointment-scheduler__slots {
    background-color: var(--wl-surface);
    border-radius: var(--wl-radius-lg);
    padding: var(--wl-space-4);
    box-shadow: var(--wl-shadow);
}

[data-module="appointment-scheduler"] .appointment-scheduler__slots-title {
    font-size: var(--wl-text-base);
    font-weight: var(--wl-font-semibold);
    margin-bottom: var(--wl-space-3);
}

[data-module="appointment-scheduler"] .appointment-scheduler__slots-hint {
    font-size: var(--wl-text-sm);
    color: var(--wl-text-muted);
    text-align: center;
    padding: var(--wl-space-4);
}

[data-module="appointment-scheduler"] .appointment-scheduler__slots-list {
    display: flex;
    flex-direction: column;
    gap: var(--wl-space-2);
    max-height: 300px;
    overflow-y: auto;
}

[data-module="appointment-scheduler"] .appointment-scheduler__slot {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--wl-space-3);
    background: none;
    border: 2px solid var(--wl-border);
    border-radius: var(--wl-radius);
    cursor: pointer;
    transition: all var(--wl-transition-fast);
    text-align: left;
}

[data-module="appointment-scheduler"] .appointment-scheduler__slot:hover {
    border-color: var(--wl-secondary);
    background-color: rgba(49, 130, 206, 0.05);
}

[data-module="appointment-scheduler"] .appointment-scheduler__slot--selected {
    border-color: var(--wl-secondary);
    background-color: rgba(49, 130, 206, 0.1);
}

[data-module="appointment-scheduler"] .appointment-scheduler__slot-time {
    font-weight: var(--wl-font-medium);
}

[data-module="appointment-scheduler"] .appointment-scheduler__slot-available {
    font-size: var(--wl-text-xs);
    color: var(--wl-text-muted);
}

[data-module="appointment-scheduler"] .appointment-scheduler__no-slots {
    text-align: center;
    color: var(--wl-text-muted);
    padding: var(--wl-space-4);
}

/* Summary Panel */
[data-module="appointment-scheduler"] .appointment-scheduler__summary {
    background-color: var(--wl-bg);
    border-radius: var(--wl-radius-lg);
    padding: var(--wl-space-4);
    border: 2px solid var(--wl-success);
}

[data-module="appointment-scheduler"] .appointment-scheduler__summary-title {
    font-size: var(--wl-text-sm);
    font-weight: var(--wl-font-semibold);
    color: var(--wl-success);
    margin-bottom: var(--wl-space-3);
}

[data-module="appointment-scheduler"] .appointment-scheduler__summary-content {
    margin-bottom: var(--wl-space-3);
}

[data-module="appointment-scheduler"] .appointment-scheduler__summary-item {
    display: flex;
    justify-content: space-between;
    padding: var(--wl-space-1) 0;
}

[data-module="appointment-scheduler"] .appointment-scheduler__summary-label {
    color: var(--wl-text-muted);
    font-size: var(--wl-text-sm);
}

[data-module="appointment-scheduler"] .appointment-scheduler__summary-value {
    font-weight: var(--wl-font-medium);
    text-transform: capitalize;
}

[data-module="appointment-scheduler"] .appointment-scheduler__change {
    width: 100%;
}

/* Mobile adjustments */
@media (max-width: 480px) {
    [data-module="appointment-scheduler"] .appointment-scheduler__day {
        padding: var(--wl-space-2);
    }

    [data-module="appointment-scheduler"] .appointment-scheduler__day-number {
        font-size: var(--wl-text-lg);
    }

    [data-module="appointment-scheduler"] .appointment-scheduler__day-slots {
        display: none;
    }
}
