.calendar-colorful {
    --ra-calendar-accent: #0f766e;
    --ra-calendar-accent-soft: #e6f6f4;
    --ra-calendar-sun: #c58a00;
    --ra-calendar-sun-soft: #fff6d8;
    --ra-calendar-berry: #a24472;
    --ra-calendar-berry-soft: #fdebf4;
    --ra-calendar-lilac: #6f5cc2;
    --ra-calendar-lilac-soft: #f0ebff;
    --ra-calendar-sky: #0c78a5;
    --ra-calendar-sky-soft: #e9f7fd;
    --ra-calendar-surface: linear-gradient(180deg, #ffffff 0%, #f7fbf9 100%);
}

.calendar-colorful .ra-page-header,
.calendar-colorful .ra-card,
.calendar-colorful .ra-detail-meta-card {
    box-shadow: 0 18px 36px rgba(18, 71, 52, 0.08);
}

.calendar-colorful .ra-calendar-shell {
    gap: 1.4rem;
}

.calendar-colorful .ra-calendar-main .ra-card,
.calendar-colorful .ra-calendar-panel,
.calendar-colorful .ra-calendar-list-card,
.calendar-colorful .ra-calendario-dia-card,
.calendar-colorful .ra-calendario-evento-card,
.calendar-colorful .ra-calendar-year-month {
    background: var(--ra-calendar-surface);
}

.calendar-colorful .ra-calendar-toolbar,
.calendar-colorful .ra-calendar-toolbar-year {
    padding: 1rem 1.15rem;
    border-radius: 20px;
    border: 1px solid rgba(15, 118, 110, 0.12);
    background:
        radial-gradient(circle at top left, rgba(12, 120, 165, 0.08), transparent 34%),
        radial-gradient(circle at top right, rgba(197, 138, 0, 0.10), transparent 28%),
        #ffffff;
}

.calendar-colorful .ra-calendar-toolbar-copy .ra-card-title,
.calendar-colorful .ra-card-title {
    color: #0f4032;
}

.calendar-colorful .ra-calendar-responsive-surface {
    width: 100%;
}

.calendar-colorful .ra-calendar-weekday,
.calendar-colorful .ra-calendar-mini-weekday {
    color: #326757;
    font-weight: 900;
}

.calendar-colorful .ra-calendar-day {
    border-radius: 20px;
    border-color: rgba(15, 118, 110, 0.12);
    background:
        linear-gradient(180deg, #ffffff 0%, #fbfdfc 100%);
    box-shadow: 0 12px 26px rgba(18, 71, 52, 0.07);
}

.calendar-colorful .ra-calendar-day:hover,
.calendar-colorful .ra-calendar-day:focus-visible {
    transform: translateY(-2px);
    border-color: rgba(12, 120, 165, 0.24);
    box-shadow: 0 18px 34px rgba(18, 71, 52, 0.12);
}

.calendar-colorful .ra-calendar-day.is-muted {
    background: linear-gradient(180deg, #f3f7f5 0%, #eef4f0 100%);
    opacity: 0.68;
}

.calendar-colorful .ra-calendar-day.is-today {
    border-color: rgba(197, 138, 0, 0.42);
    box-shadow: 0 0 0 0.18rem rgba(197, 138, 0, 0.10);
}

.calendar-colorful .ra-calendar-day.is-selected {
    border-color: rgba(12, 120, 165, 0.46);
    box-shadow: 0 0 0 0.22rem rgba(12, 120, 165, 0.12);
}

.calendar-colorful .ra-calendar-day.has-reservas {
    background:
        linear-gradient(180deg, rgba(230, 246, 244, 0.82) 0%, rgba(255, 255, 255, 0.98) 100%);
}

.calendar-colorful .ra-calendar-day-top {
    align-items: flex-start;
}

.calendar-colorful .ra-calendar-day-number {
    color: #124734;
    font-size: 1.02rem;
}

.calendar-colorful .ra-calendar-day-count {
    background: linear-gradient(135deg, rgba(15, 118, 110, 0.16), rgba(12, 120, 165, 0.14));
    color: #0d5248;
    border: 1px solid rgba(15, 118, 110, 0.14);
}

.calendar-colorful .ra-calendar-day-items {
    gap: 0.52rem;
}

.calendar-colorful .ra-calendar-pill {
    border-radius: 14px;
    border-color: rgba(18, 71, 52, 0.08);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6);
}

.calendar-colorful .ra-calendar-pill strong {
    color: #113a31;
}

.calendar-colorful .ra-calendar-pill.is-confirmed {
    background: linear-gradient(135deg, rgba(15, 118, 110, 0.18), rgba(230, 246, 244, 0.78));
    border-color: rgba(15, 118, 110, 0.24);
}

.calendar-colorful .ra-calendar-pill.is-blocked {
    background: linear-gradient(135deg, rgba(197, 138, 0, 0.18), rgba(255, 246, 216, 0.92));
    border-color: rgba(197, 138, 0, 0.26);
}

.calendar-colorful .ra-calendar-pill.is-progress {
    background: linear-gradient(135deg, rgba(12, 120, 165, 0.18), rgba(233, 247, 253, 0.88));
    border-color: rgba(12, 120, 165, 0.24);
}

.calendar-colorful .ra-calendar-pill.is-quote,
.calendar-colorful .ra-calendar-pill.is-draft {
    background: linear-gradient(135deg, rgba(111, 92, 194, 0.15), rgba(240, 235, 255, 0.94));
    border-color: rgba(111, 92, 194, 0.20);
}

.calendar-colorful .ra-calendar-pill.is-cancelled,
.calendar-colorful .ra-calendar-pill.is-done {
    background: linear-gradient(135deg, rgba(95, 111, 102, 0.14), rgba(242, 245, 243, 0.94));
    border-color: rgba(95, 111, 102, 0.18);
}

.calendar-colorful .ra-calendar-pill.is-exclusive-requested,
.calendar-colorful .ra-calendar-list-card.is-exclusive-requested {
    border-color: rgba(162, 68, 114, 0.28);
    background:
        linear-gradient(135deg, rgba(253, 235, 244, 0.94), rgba(255, 255, 255, 0.98));
}

.calendar-colorful .ra-calendar-pill.is-exclusive-blocked,
.calendar-colorful .ra-calendar-list-card.is-exclusive-blocked {
    border-color: rgba(197, 138, 0, 0.30);
    background:
        linear-gradient(135deg, rgba(255, 246, 216, 0.96), rgba(255, 255, 255, 0.98));
}

.calendar-colorful .ra-calendar-more {
    color: #0c78a5;
    font-weight: 800;
}

.calendar-colorful .ra-calendar-panel {
    border-radius: 22px;
}

.calendar-colorful .ra-calendar-list-card {
    border-radius: 18px;
    border-color: rgba(18, 71, 52, 0.10);
}

.calendar-colorful .ra-calendar-list-card:hover,
.calendar-colorful .ra-calendar-list-card:focus-visible {
    transform: translateY(-2px);
    border-color: rgba(12, 120, 165, 0.26);
    box-shadow: 0 16px 30px rgba(18, 71, 52, 0.11);
}

.calendar-colorful .ra-calendar-list-head {
    align-items: center;
}

.calendar-colorful .ra-calendar-list-grid,
.calendar-colorful .ra-calendar-list-body,
.calendar-colorful .ra-calendario-evento-meta {
    color: #496257;
}

.calendar-colorful .ra-calendar-year-month {
    border-radius: 22px;
    border: 1px solid rgba(15, 118, 110, 0.10);
}

.calendar-colorful .ra-calendar-month-action {
    border-radius: 999px;
}

.calendar-colorful .ra-calendar-mini-day {
    border-radius: 14px;
    border-color: rgba(18, 71, 52, 0.08);
    background: #ffffff;
}

.calendar-colorful .ra-calendar-mini-day.has-reservas {
    background: linear-gradient(180deg, rgba(230, 246, 244, 0.86) 0%, #ffffff 100%);
}

.calendar-colorful .ra-calendar-mini-day.is-today {
    border-color: rgba(197, 138, 0, 0.38);
}

.calendar-colorful .ra-calendar-mini-day.is-selected {
    border-color: rgba(12, 120, 165, 0.42);
}

.calendar-colorful .ra-calendar-mini-count {
    background: linear-gradient(135deg, rgba(15, 118, 110, 0.18), rgba(12, 120, 165, 0.14));
    color: #0d5248;
}

.calendar-colorful .ra-calendario-operativo-page .ra-detail-meta-card {
    border-radius: 18px;
    background:
        radial-gradient(circle at top right, rgba(12, 120, 165, 0.08), transparent 38%),
        #ffffff;
    border: 1px solid rgba(12, 120, 165, 0.10);
}

.calendar-colorful .ra-calendario-operativo-page .ra-meta-value {
    color: #0f4032;
}

.calendar-colorful .ra-toggle-chip {
    border-radius: 16px;
    border-color: rgba(15, 118, 110, 0.10);
    background: linear-gradient(180deg, #ffffff 0%, #f8fbfa 100%);
}

.calendar-colorful .ra-quick-range-btn.is-active {
    background: linear-gradient(135deg, #124734 0%, #0f766e 100%);
    border-color: #124734;
}

.calendar-colorful .ra-calendario-dia-stack {
    gap: 1.1rem;
}

.calendar-colorful .ra-calendario-dia-card {
    border-radius: 22px;
    border: 1px solid rgba(18, 71, 52, 0.10);
}

.calendar-colorful .ra-calendario-dia-card.is-today {
    border-color: rgba(197, 138, 0, 0.34);
    box-shadow: 0 16px 30px rgba(197, 138, 0, 0.10);
}

.calendar-colorful .ra-calendario-evento-card {
    border-radius: 18px;
    border-color: rgba(18, 71, 52, 0.10);
    box-shadow: 0 12px 24px rgba(18, 71, 52, 0.06);
}

.calendar-colorful .ra-calendario-evento-card:hover,
.calendar-colorful .ra-calendario-evento-card:focus-visible {
    border-color: rgba(12, 120, 165, 0.22);
    box-shadow: 0 16px 30px rgba(18, 71, 52, 0.10);
}

.calendar-colorful .ra-calendario-evento-card.is-reserva {
    background: linear-gradient(135deg, rgba(233, 247, 253, 0.96), #ffffff);
}

.calendar-colorful .ra-calendario-evento-card.is-plan {
    background: linear-gradient(135deg, rgba(230, 246, 244, 0.96), #ffffff);
}

.calendar-colorful .ra-calendario-evento-card.is-correctivo {
    background: linear-gradient(135deg, rgba(255, 246, 216, 0.94), #ffffff);
}

.calendar-colorful .ra-calendario-evento-card.is-vencida {
    background: linear-gradient(135deg, rgba(253, 235, 244, 0.96), #ffffff);
}

.calendar-colorful .ra-status-badge.is-reserva {
    background: rgba(12, 120, 165, 0.14);
    color: #0c5f80;
}

.calendar-colorful .ra-status-badge.is-plan {
    background: rgba(15, 118, 110, 0.14);
    color: #0d5248;
}

.calendar-colorful .ra-status-badge.is-correctivo {
    background: rgba(197, 138, 0, 0.14);
    color: #8c6200;
}

.calendar-colorful .ra-status-badge.is-review {
    background: rgba(111, 92, 194, 0.13);
    color: #5f4eb0;
}

.calendar-colorful .ra-status-badge.is-wait {
    background: rgba(162, 68, 114, 0.14);
    color: #8b3d62;
}

.calendar-colorful .ra-status-badge.is-progress {
    background: rgba(12, 120, 165, 0.15);
    color: #0c5f80;
}

.calendar-colorful .ra-status-badge.is-assigned {
    background: rgba(15, 118, 110, 0.14);
    color: #0d5248;
}

@media (max-width: 1024px) {
    .calendar-colorful .ra-calendar-shell {
        gap: 1.15rem;
    }

    .calendar-colorful .ra-calendar-day {
        min-height: 138px;
    }
}

@media (max-width: 767.98px) {
    .calendar-colorful .ra-calendar-toolbar,
    .calendar-colorful .ra-calendar-toolbar-year {
        padding: 0.9rem 0.95rem;
        border-radius: 18px;
    }

    .calendar-colorful .ra-calendar-page,
    .calendar-colorful .ra-calendar-shell,
    .calendar-colorful .ra-calendar-main,
    .calendar-colorful .ra-calendar-main-card,
    .calendar-colorful .ra-calendar-responsive-surface {
        width: 100%;
        max-width: 100%;
        min-width: 0 !important;
    }

    .calendar-colorful .ra-calendar-responsive-surface {
        overflow-x: hidden;
        overflow-y: visible;
        padding-bottom: 0;
    }

    .calendar-colorful .ra-calendar-month,
    .calendar-colorful .ra-calendar-grid,
    .calendar-colorful .ra-calendar-weekdays {
        width: 100%;
        max-width: 100%;
        min-width: 0 !important;
        grid-template-columns: repeat(7, minmax(0, 1fr));
    }

    .calendar-colorful .ra-calendar-month-desktop {
        display: none;
    }

    .calendar-colorful .ra-calendar-month-mobile {
        display: block;
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .calendar-colorful .ra-calendar-month {
        gap: 0.35rem;
    }

    .calendar-colorful .ra-calendar-grid,
    .calendar-colorful .ra-calendar-weekdays {
        gap: 0.22rem;
    }

    .calendar-colorful .ra-calendar-weekday {
        font-size: 0.65rem;
        letter-spacing: 0.02em;
        padding: 0.2rem 0;
    }

    .calendar-colorful .ra-calendar-mobile-weekdays,
    .calendar-colorful .ra-calendar-mobile-grid {
        width: 100%;
        max-width: 100%;
        min-width: 0 !important;
        grid-template-columns: repeat(7, minmax(0, 1fr));
    }

    .calendar-colorful .ra-calendar-mobile-weekdays {
        gap: 0.22rem;
        margin-bottom: 0.35rem;
    }

    .calendar-colorful .ra-calendar-mobile-grid {
        gap: 0.22rem;
    }

    .calendar-colorful .ra-calendar-mobile-weekday {
        color: #326757;
        font-weight: 900;
    }

    .calendar-colorful .ra-calendar-mobile-day {
        min-width: 0 !important;
        min-height: 60px;
        width: 100%;
        border-color: rgba(15, 118, 110, 0.10);
        background: #ffffff;
        box-shadow: none;
    }

    .calendar-colorful .ra-calendar-mobile-day.is-muted {
        background: #eef4f0;
        opacity: 1;
    }

    .calendar-colorful .ra-calendar-mobile-day.has-reservas {
        background: linear-gradient(180deg, rgba(230, 246, 244, 0.82) 0%, #ffffff 100%);
    }

    .calendar-colorful .ra-calendar-mobile-day.is-selected {
        border-color: rgba(12, 120, 165, 0.46);
        box-shadow: 0 0 0 0.18rem rgba(12, 120, 165, 0.10);
    }

    .calendar-colorful .ra-calendar-mobile-day.is-today {
        border-color: rgba(197, 138, 0, 0.42);
    }

    .calendar-colorful .ra-calendar-mobile-number {
        color: #124734;
    }

    .calendar-colorful .ra-calendar-mobile-dot {
        background: var(--ra-calendar-accent);
    }

    .calendar-colorful .ra-calendar-mobile-count {
        background: linear-gradient(135deg, rgba(15, 118, 110, 0.16), rgba(12, 120, 165, 0.14));
        color: #0d5248;
    }

    .calendar-colorful .ra-calendar-panel {
        position: static;
    }
}

@media (max-width: 576px) {
    .calendar-colorful .ra-calendar-day {
        min-height: 104px;
        border-radius: 16px;
    }

    .calendar-colorful .ra-calendar-pill {
        border-radius: 12px;
    }

    .calendar-colorful .ra-calendar-list-card,
    .calendar-colorful .ra-calendario-evento-card,
    .calendar-colorful .ra-calendario-dia-card {
        border-radius: 16px;
    }
}
