/* Навигация по месяцам */
.cal-month-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-bottom: 8px;
}

.cal-nav-arrow {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    border: 1px solid var(--border-gray, #e5e7eb);
    background: var(--white, #fff);
    border-radius: var(--radius-full, 9999px);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all var(--transition-fast, 0.15s ease);
    color: var(--medium-gray, #6b7280);
}

.cal-nav-arrow:hover {
    background: var(--light-gray, #f3f4f6);
    border-color: var(--medium-gray, #d1d5db);
    color: var(--dark-gray, #1f2937);
}

.cal-month-title {
    text-align: center;
    width: 450px;
    flex-shrink: 0;
}

.cal-month-title-hijri {
    font-family: var(--font-arabic, 'Amiri', serif);
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--emerald-dark, #047857);
    line-height: 1.3;
}

.cal-month-title-greg {
    font-size: 0.8125rem;
    color: var(--medium-gray, #6b7280);
    margin-top: 2px;
}

/* Статус месяца */
.cal-month-status {
    text-align: center;
    margin-bottom: 16px;
    font-size: 0.75rem;
}

.cal-status-confirmed {
    color: var(--emerald, #059669);
    font-weight: 600;
}

.cal-status-confirmed::before {
    content: '✓ ';
}

.cal-status-projected {
    color: var(--cal-projected);
    font-style: italic;
}

.cal-status-projected::before {
    content: '◌ ';
}

/* Трёхмесячный вид */
.cal-triple-view {
    display: grid;
    grid-template-columns: 1fr 2.5fr 1fr;
    gap: 20px;
    align-items: start;
}

/* Боковые мини-месяцы */
.cal-side-month {
    background: var(--white, #fff);
    border-radius: var(--radius-md, 12px);
    padding: 12px;
    border: 1px solid var(--border-gray, #e5e7eb);
}

.cal-side-month-title {
    font-family: var(--font-arabic, 'Amiri', serif);
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--dark-gray, #374151);
    text-align: center;
    margin-bottom: 8px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--light-gray, #f3f4f6);
}

.cal-mini-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 1px;
}

.cal-mini-grid .cal-mini-header {
    font-size: 0.625rem;
    color: var(--cal-projected, #9ca3af);
    text-align: center;
    padding: 2px;
    font-weight: 500;
}

.cal-mini-grid .cal-mini-day {
    text-align: center;
    padding: 3px 2px;
    font-size: 0.6875rem;
    color: var(--medium-gray, #6b7280);
    border-radius: 4px;
    cursor: pointer;
    transition: background var(--transition-fast, 0.15s ease);
    line-height: 1.6;
}

.cal-mini-grid .cal-mini-day:hover {
    background: var(--light-gray, #f3f4f6);
}

.cal-mini-grid .cal-mini-day.today {
    background: var(--emerald, #059669);
    color: var(--white, #fff);
    font-weight: 600;
    border-radius: var(--radius-full, 9999px);
}

.cal-mini-grid .cal-mini-day.has-event::after {
    content: '';
    display: block;
    width: 3px;
    height: 3px;
    border-radius: var(--radius-full, 9999px);
    background: var(--cal-sunnah-fast);
    margin: 0 auto;
}

.cal-mini-grid .cal-mini-empty {
    padding: 3px 2px;
}

/* Основная сетка — текущий месяц */
.cal-current-month {
    background: var(--white, #fff);
    border-radius: var(--radius-lg, 16px);
    padding: 16px;
    border: 1px solid var(--border-gray, #e5e7eb);
    box-shadow: var(--shadow-sm);
}

.cal-weekday-headers {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 4px;
    margin-bottom: 8px;
    background: var(--emerald-dark, #065F46);
    border-radius: var(--radius-md, 12px);
    padding: 4px;
}

.cal-weekday-header {
    text-align: center;
    font-size: 0.75rem;
    font-weight: 600;
    color: #fff;
    padding: 8px 4px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.cal-weekday-header.friday {
    color: var(--gold-light, #d4b96a);
}

.cal-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 4px;
}

/* Ячейка дня */
.cal-day {
    position: relative;
    min-height: 80px;
    padding: 6px 8px;
    border-radius: 10px;
    border: 1px solid transparent;
    cursor: pointer;
    transition: all var(--transition-fast, 0.15s ease);
    display: flex;
    flex-direction: column;
    background: var(--light-gray, #fafafa);
}

.cal-day:hover {
    border-color: var(--border-gray, #d1d5db);
    background: var(--white, #fff);
    box-shadow: var(--shadow-sm);
}

.cal-day.empty {
    background: transparent;
    cursor: default;
    min-height: 0;
}

.cal-day.empty:hover {
    border-color: transparent;
    box-shadow: none;
}

/* Сегодня */
.cal-day.today {
    border-color: var(--emerald, #059669);
    background: var(--emerald-50, #ECFDF5);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--emerald) 15%, transparent);
}

/* Выбранный день */
.cal-day.selected {
    border-color: var(--info, #2563EB);
    background: var(--info-light, #EFF6FF);
}

/* Проекционный день */
.cal-day.projected {
    border-style: dashed;
    border-color: var(--border-gray, #e5e7eb);
}

/* Кнопка «+» — добавить событие в ячейке */
.cal-day {
    position: relative;
}

.cal-day-add {
    position: absolute;
    top: 3px;
    right: 3px;
    width: 18px;
    height: 18px;
    border: none;
    border-radius: 4px;
    background: var(--emerald, #059669);
    color: #fff;
    cursor: pointer;
    opacity: 0;
    transition: opacity 0.15s ease, transform 0.12s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    z-index: 2;
}

.cal-day:hover .cal-day-add,
.cal-day.selected .cal-day-add {
    opacity: 0.7;
}

.cal-day-add:hover {
    opacity: 1 !important;
    transform: scale(1.15);
}

.cal-day.empty .cal-day-add {
    display: none;
}

/* Хиджри число — крупно */
.cal-day-hijri {
    font-family: var(--font-arabic, 'Amiri', serif);
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--dark-gray, #1f2937);
    line-height: 1.2;
}

.cal-day.today .cal-day-hijri {
    color: var(--emerald, #059669);
}

/* Иконки событий */
.cal-day-events {
    display: flex;
    gap: 3px;
    flex-wrap: wrap;
    margin: 3px 0;
    min-height: 10px;
}

.cal-event-dot {
    width: 7px;
    height: 7px;
    border-radius: var(--radius-full, 9999px);
    flex-shrink: 0;
}

.cal-event-dot.fard_fast    { background: var(--cal-fard); }
.cal-event-dot.eid          { background: var(--cal-eid); }
.cal-event-dot.sunnah_fast  { background: var(--cal-sunnah-fast); }
.cal-event-dot.hijama       { background: var(--cal-hijama); }
.cal-event-dot.forbidden_fast { background: var(--cal-forbidden); }
.cal-event-dot.memorial     { background: var(--cal-memorial); }
.cal-event-dot.jumuah       { background: var(--cal-jumuah); }
.cal-event-dot.note         { background: var(--cal-note); }
.cal-event-dot.special_action { background: var(--cal-special); }
.cal-event-dot.historical   { background: #92400E; }

/* Григорианское число — мелко */
.cal-day-greg {
    font-size: 0.6875rem;
    color: var(--cal-projected, #9ca3af);
    margin-top: auto;
    line-height: 1.2;
}

/* Пятница — подсветка */
.cal-day.friday {
    background: var(--light-gray, #f9fafb);
}

.cal-day.friday .cal-day-hijri {
    color: var(--emerald-dark, #065F46);
}

/* ========================================
   НЕДЕЛЬНЫЙ ВИД
   ======================================== */
.cal-week-view {
    margin-bottom: 8px;
}

.cal-week-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-bottom: 16px;
}

.cal-week-title {
    font-family: var(--font-arabic, 'Amiri', serif);
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--emerald-dark, #047857);
    text-align: center;
    width: 460px;
    flex-shrink: 0;
}

.cal-week-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 8px;
}

/* Колонка-день */
.cal-week-day {
    background: var(--white, #fff);
    border-radius: var(--radius-md, 12px);
    border: 1px solid var(--border-gray, #e5e7eb);
    padding: 12px;
    min-height: 200px;
    cursor: pointer;
    transition: all var(--transition-fast, 0.15s ease);
    display: flex;
    flex-direction: column;
}

.cal-week-day:hover {
    border-color: var(--medium-gray, #d1d5db);
    box-shadow: var(--shadow-sm);
}

.cal-week-day.today {
    border-color: var(--emerald, #059669);
    background: var(--emerald-50, #ECFDF5);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--emerald) 12%, transparent);
}

.cal-week-day.selected {
    border-color: var(--info, #2563EB);
    background: var(--info-light, #EFF6FF);
}

.cal-week-day.friday {
    background: var(--light-gray, #f9fafb);
}

.cal-week-day.friday.today {
    background: var(--emerald-50, #ECFDF5);
}

/* Заголовок дня в неделе */
.cal-week-day-header {
    display: flex;
    align-items: baseline;
    gap: 6px;
    padding-bottom: 8px;
    margin-bottom: 8px;
    border-bottom: 1px solid var(--light-gray, #f3f4f6);
}

.cal-week-day-weekday {
    font-size: 0.6875rem;
    font-weight: 600;
    color: var(--medium-gray, #6b7280);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.cal-week-day.friday .cal-week-day-weekday {
    color: var(--emerald, #059669);
}

.cal-week-day.today .cal-week-day-weekday {
    color: var(--emerald, #059669);
}

.cal-week-day-hijri {
    font-family: var(--font-arabic, 'Amiri', serif);
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--dark-gray, #1f2937);
    line-height: 1;
}

.cal-week-day.today .cal-week-day-hijri {
    color: var(--emerald, #059669);
}

.cal-week-day-greg {
    font-size: 0.6875rem;
    color: var(--cal-projected, #9ca3af);
    margin-inline-start: auto;
}

/* События в неделе */
.cal-week-day-events {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.cal-week-event {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.75rem;
    color: var(--dark-gray, #374151);
    padding: 4px 6px;
    border-radius: 6px;
    line-height: 1.3;
    transition: background var(--transition-fast, 0.15s ease);
}

.cal-week-event:hover {
    background: rgba(0, 0, 0, 0.04);
}

.cal-week-event .cal-event-dot {
    width: 6px;
    height: 6px;
    flex-shrink: 0;
}

.cal-week-event.fard_fast     { color: var(--cal-fard); }
.cal-week-event.eid           { color: var(--cal-eid); font-weight: 600; }
.cal-week-event.forbidden_fast { color: var(--cal-forbidden); }

.cal-week-more {
    font-size: 0.6875rem;
    color: var(--emerald, #059669);
    font-weight: 500;
    padding: 2px 6px;
    cursor: pointer;
}

.cal-week-no-events {
    font-size: 0.75rem;
    color: var(--cal-projected, #d1d5db);
    text-align: center;
    padding: 8px 0;
}

/* Адаптив для недельного вида */
@media (max-width: 1024px) {
    .cal-week-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 768px) {
    .cal-week-grid {
        grid-template-columns: 1fr;
    }

    .cal-week-day {
        min-height: auto;
        padding: 10px;
    }

    .cal-week-title {
        font-size: 1rem;
        width: auto;
    }
}
