/**
 * Tamil Calendar 2026 - Verified Real Estate
 * Elegant & Extravagant Calendar Styling
 */

/* ========================================
   PAGE HEADER (Year View)
   ======================================== */

.calendar-page-header {
    background: linear-gradient(135deg, #ff6725 0%, #ff8f5c 50%, #ffb88c 100%);
    border-radius: 25px;
    padding: 40px;
    margin-bottom: 30px;
    box-shadow: 0 15px 50px rgba(255, 103, 37, 0.3);
    position: relative;
    overflow: hidden;
}

.calendar-header-decoration {
    position: absolute;
    top: -50px;
    right: -50px;
    width: 200px;
    height: 200px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 50%;
    pointer-events: none;
}

.calendar-header-decoration::before {
    content: '';
    position: absolute;
    bottom: -100px;
    left: -100px;
    width: 250px;
    height: 250px;
    background: rgba(255, 255, 255, 0.08);
    border-radius: 50%;
}

.calendar-header-icon {
    font-size: 4rem;
    margin-bottom: 15px;
    filter: drop-shadow(0 5px 15px rgba(0, 0, 0, 0.2));
    animation: float 3s ease-in-out infinite;
}

@keyframes float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
}

.calendar-header-title {
    color: white;
    font-size: 2.5rem;
    font-weight: 800;
    margin-bottom: 12px;
    text-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    line-height: 1.2;
}

.calendar-header-subtitle {
    color: rgba(255, 255, 255, 0.95);
    font-size: 1.3rem;
    font-weight: 600;
    margin-bottom: 8px;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);
}

.calendar-header-tamil {
    color: rgba(255, 255, 255, 0.85);
    font-size: 1rem;
    margin-bottom: 15px;
}

.calendar-header-description {
    color: rgba(255, 255, 255, 0.9);
    font-size: 1.05rem;
    margin-bottom: 0;
    line-height: 1.6;
}

.calendar-header-button {
    display: inline-block;
    background: white;
    color: #ff6725;
    padding: 14px 35px;
    border-radius: 50px;
    font-weight: 700;
    font-size: 1.05rem;
    text-decoration: none;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    z-index: 10;
}

.calendar-header-button:hover {
    transform: translateY(-3px) scale(1.05);
    box-shadow: 0 12px 35px rgba(0, 0, 0, 0.3);
    color: #ff6725;
}

.calendar-header-button i {
    margin-right: 8px;
}

/* ========================================
   MONTH HEADER (Month View)
   ======================================== */

.calendar-month-header-card {
    background: linear-gradient(135deg, #ffffff 0%, #fff5f0 100%);
    border: 3px solid #ff6725;
    border-radius: 25px;
    padding: 30px;
    margin-bottom: 30px;
    box-shadow: 0 12px 40px rgba(255, 103, 37, 0.15);
    position: relative;
    overflow: hidden;
}

.calendar-month-header-decoration {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background:
        radial-gradient(circle at 10% 20%, rgba(255, 103, 37, 0.05) 0%, transparent 50%),
        radial-gradient(circle at 90% 80%, rgba(255, 139, 92, 0.05) 0%, transparent 50%);
    pointer-events: none;
}

.calendar-month-title {
    color: #ff6725;
    font-size: 2.5rem;
    font-weight: 800;
    margin-bottom: 8px;
    background: linear-gradient(135deg, #ff6725 0%, #ff8f5c 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    text-shadow: 0 2px 10px rgba(255, 103, 37, 0.1);
}

.calendar-month-subtitle {
    color: #666;
    font-size: 1.2rem;
    font-weight: 500;
}

.calendar-nav-spacer {
    width: 120px;
}

.calendar-nav-button {
    display: inline-block;
    background: linear-gradient(135deg, #ff6725 0%, #ff8f5c 100%);
    color: white;
    padding: 12px 25px;
    border-radius: 15px;
    font-weight: 700;
    font-size: 1rem;
    text-decoration: none;
    box-shadow: 0 6px 20px rgba(255, 103, 37, 0.25);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    z-index: 10;
}

.calendar-nav-button:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 30px rgba(255, 103, 37, 0.35);
    color: white;
}

.calendar-nav-button i {
    transition: transform 0.3s;
}

.calendar-nav-prev:hover i {
    transform: translateX(-3px);
}

.calendar-nav-next:hover i {
    transform: translateX(3px);
}

/* ========================================
   MONTH CARDS
   ======================================== */

.month-card {
    position: relative;
    overflow: hidden;
}

.month-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 103, 37, 0.1), transparent);
    transition: left 0.5s;
}

.month-card:hover::before {
    left: 100%;
}

.month-card:hover {
    transform: translateY(-8px) scale(1.02);
    box-shadow: 0 15px 40px rgba(255, 103, 37, 0.2);
    border-color: #ff6725 !important;
    background: linear-gradient(135deg, #ffffff 0%, #ffe8dc 100%) !important;
}

/* ========================================
   FESTIVAL CARDS
   ======================================== */

.festival-card {
    cursor: url(../dashboard/images/icon/pointer.svg), pointer !important;
}

.festival-card::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 50%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent);
    transition: left 0.6s;
}

.festival-card:hover::after {
    left: 150%;
}

.festival-card:hover {
    transform: translateY(-6px) scale(1.03);
    box-shadow: 0 12px 35px rgba(255, 103, 37, 0.25);
    border-color: #ff6725 !important;
    background: linear-gradient(135deg, #ffffff 0%, #ffe8dc 100%) !important;
}

/* ========================================
   CALENDAR GRID (Month View)
   ======================================== */

.calendar-grid {
    /* Grid styling moved to .calendar-month-header and .calendar-month-body */
}

.calendar-day {
    aspect-ratio: 1;
    border: 2px solid #f0f0f0;
    border-radius: 12px;
    padding: 10px;
    transition: all 0.3s;
    background: white;
    position: relative;
    overflow: hidden;
}

.calendar-day:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(255, 103, 37, 0.15);
    border-color: #ff6725;
}

.calendar-day.today {
    border-color: #ff6725;
    background: linear-gradient(135deg, #fff5f0 0%, #ffffff 100%);
}

.calendar-day.other-month {
    opacity: 0.3;
}

.calendar-day.sunday {
    background: linear-gradient(135deg, #fff9f9 0%, #ffffff 100%);
}

.calendar-day.holiday {
    background: linear-gradient(135deg, #fffbf0 0%, #ffffff 100%);
}

/* ========================================
   DATE VIEW
   ======================================== */

.auspicious-circle {
    width: 180px;
    height: 180px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 3rem;
    font-weight: 700;
    color: white;
    box-shadow: 0 10px 30px rgba(0,0,0,0.15);
    position: relative;
}

.auspicious-circle::before {
    content: '';
    position: absolute;
    inset: -5px;
    border-radius: 50%;
    padding: 5px;
    background: linear-gradient(45deg, transparent, rgba(255,255,255,0.5), transparent);
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
}

/* Score colors */
.score-excellent { background: linear-gradient(135deg, #10b981 0%, #059669 100%); }
.score-good { background: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%); }
.score-moderate { background: linear-gradient(135deg, #f97316 0%, #ea580c 100%); }
.score-low { background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%); }

/* ========================================
   BADGES & INDICATORS
   ======================================== */

.festival-badge {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 12px;
    font-size: 0.75rem;
    font-weight: 600;
    margin: 2px;
    background: #fff5f0;
    color: #ff6725;
    border: 1px solid #ffe8dc;
}

.status-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 8px 16px;
    border-radius: 20px;
    font-size: 0.85rem;
    font-weight: 600;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

.status-open {
    background: linear-gradient(135deg, #10b981 0%, #059669 100%);
    color: white;
}

.status-closed {
    background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
    color: white;
}

.status-holiday {
    background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
    color: white;
}

/* ========================================
   RASHI GRID
   ======================================== */

.rashi-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 15px;
}

.rashi-card {
    padding: 15px;
    border: 2px solid #f0f0f0;
    border-radius: 12px;
    background: linear-gradient(135deg, #ffffff 0%, #fafafa 100%);
    transition: all 0.3s;
}

.rashi-card:hover {
    border-color: #ff6725;
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(255, 103, 37, 0.15);
}

.rashi-name {
    font-weight: 700;
    color: #ff6725;
    font-size: 1rem;
    margin-bottom: 5px;
}

.rashi-prediction {
    color: #666;
    font-size: 0.9rem;
}

/* ========================================
   ACTIVITY LISTS
   ======================================== */

.activity-list {
    list-style: none;
    padding: 0;
}

.activity-list li {
    padding: 10px 15px;
    margin-bottom: 8px;
    border-radius: 10px;
    background: linear-gradient(135deg, #f9fafb 0%, #ffffff 100%);
    border-left: 4px solid #ff6725;
    transition: all 0.3s;
}

.activity-list li:hover {
    transform: translateX(5px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}

.activity-list.suitable li {
    border-left-color: #10b981;
}

.activity-list.avoid li {
    border-left-color: #ef4444;
}

/* ========================================
   STATISTICS CARDS
   ======================================== */

.stat-card {
    text-align: center;
    padding: 20px;
    border-radius: 15px;
    background: white;
    transition: all 0.3s;
}

.stat-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 25px rgba(0,0,0,0.1);
}

.stat-value {
    font-size: 2rem;
    font-weight: bold;
    margin-bottom: 8px;
}

.stat-label {
    font-size: 0.9rem;
    color: #666;
}

/* ========================================
   RESPONSIVE ADJUSTMENTS
   ======================================== */

@media (max-width: 768px) {
    .month-card {
        min-height: 140px;
    }

    .festival-card {
        min-height: 140px;
    }

    .auspicious-circle {
        width: 140px;
        height: 140px;
        font-size: 2.5rem;
    }

    .calendar-grid {
        gap: 5px;
    }
}

/* ========================================
   PRINT STYLES
   ======================================== */

@media print {
    .month-card,
    .festival-card,
    .calendar-day {
        break-inside: avoid;
    }

    .month-card:hover,
    .festival-card:hover,
    .calendar-day:hover {
        transform: none;
        box-shadow: none;
    }
}

/* ========================================
   FIND BEST DATES PAGE
   ======================================== */

/* Breadcrumb */
.calendar-breadcrumb {
    background: white;
    padding: 15px 20px;
    border-radius: 20px;
    margin-bottom: 20px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}

.calendar-breadcrumb .breadcrumb {
    background: transparent;
    margin: 0;
}

/* Page Header */
.find-dates-header {
    background: linear-gradient(135deg, #ff6725 0%, #ff8f5c 100%);
    padding: 40px;
    border-radius: 25px;
    margin-bottom: 30px;
    box-shadow: 0 10px 30px rgba(255, 103, 37, 0.25);
    display: flex;
    align-items: center;
    gap: 25px;
    position: relative;
    overflow: hidden;
}

.find-dates-header::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -10%;
    width: 200px;
    height: 200px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 50%;
}

.find-dates-header::after {
    content: '';
    position: absolute;
    bottom: -30%;
    left: -5%;
    width: 150px;
    height: 150px;
    background: rgba(255, 255, 255, 0.08);
    border-radius: 50%;
}

.find-dates-header-icon {
    width: 80px;
    height: 80px;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.5rem;
    color: white;
    flex-shrink: 0;
    backdrop-filter: blur(10px);
    box-shadow: 0 8px 20px rgba(0,0,0,0.1);
}

.find-dates-header-content {
    color: white;
    position: relative;
    z-index: 1;
}

.find-dates-header-content h1 {
    font-size: 2.2rem;
    font-weight: 700;
    margin-bottom: 8px;
    color: white;
}

.find-dates-header-content p {
    font-size: 1.1rem;
    margin: 0;
    opacity: 0.95;
}

/* Search Card */
.find-dates-search-card {
    background: white;
    padding: 35px;
    border-radius: 25px;
    margin-bottom: 30px;
    box-shadow: 0 8px 25px rgba(0,0,0,0.08);
    border: 2px solid #f5f5f5;
    transition: all 0.3s;
}

.find-dates-search-card:hover {
    box-shadow: 0 12px 35px rgba(255, 103, 37, 0.15);
    border-color: #ffe8dc;
}

.find-dates-search-header {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 1.3rem;
    font-weight: 700;
    color: #ff6725;
    margin-bottom: 25px;
    padding-bottom: 20px;
    border-bottom: 2px solid #fff5f0;
}

.find-dates-search-header i {
    font-size: 1.5rem;
}

/* Calendar Label */
.calendar-label {
    font-weight: 600;
    color: #333;
    margin-bottom: 10px;
    display: block;
    font-size: 0.95rem;
}

.calendar-label i {
    color: #ff6725;
}

/* Submit Button */
.find-dates-submit {
    height: 50px;
    font-weight: 600;
    font-size: 1rem;
    letter-spacing: 0.5px;
    box-shadow: 0 4px 15px rgba(255, 103, 37, 0.3);
    transition: all 0.3s;
}

.find-dates-submit:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(255, 103, 37, 0.4);
}

/* Results Section */
.find-dates-results {
    background: white;
    padding: 35px;
    border-radius: 25px;
    margin-bottom: 30px;
    box-shadow: 0 8px 25px rgba(0,0,0,0.08);
}

.find-dates-results-header {
    margin-bottom: 30px;
    padding-bottom: 20px;
    border-bottom: 3px solid #fff5f0;
}

.find-dates-results-header h3 {
    font-size: 1.8rem;
    font-weight: 700;
    color: #ff6725;
    margin: 0;
}

/* Result Cards Container */
.find-dates-results .row > [class*="col-"] {
    display: flex;
    flex-direction: column;
}

.find-dates-results .row > [class*="col-"] > a {
    display: flex;
    flex-direction: column;
    height: 100%;
    flex-grow: 1;
}

/* Result Cards */
.find-dates-result-card {
    background: linear-gradient(135deg, #ffffff 0%, #fef9f5 100%);
    border: 3px solid #f0f0f0;
    border-radius: 20px;
    padding: 25px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    height: 100%;
    display: flex;
    flex-direction: column;
    position: relative;
    overflow: hidden;
    flex-grow: 1;
}

.find-dates-result-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 103, 37, 0.05), transparent);
    transition: left 0.6s;
}

.find-dates-result-card:hover::before {
    left: 100%;
}

.find-dates-result-card:hover {
    transform: translateY(-8px) scale(1.02);
    box-shadow: 0 15px 40px rgba(255, 103, 37, 0.2);
    border-color: #ff6725;
    background: linear-gradient(135deg, #ffffff 0%, #ffe8dc 100%);
}

.find-dates-result-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 15px;
    padding-bottom: 15px;
    border-bottom: 2px solid #f5f5f5;
}

.find-dates-result-date {
    flex-grow: 1;
}

.find-dates-result-day {
    font-size: 1.8rem;
    font-weight: 700;
    color: #ff6725;
    line-height: 1.2;
}

.find-dates-result-weekday {
    font-size: 0.95rem;
    color: #666;
    margin-top: 4px;
}

.find-dates-result-score {
    width: 65px;
    height: 65px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    font-weight: 700;
    color: white;
    box-shadow: 0 6px 20px rgba(0,0,0,0.2);
    flex-shrink: 0;
}

.find-dates-result-tamil {
    font-size: 0.9rem;
    color: #888;
    margin-bottom: 15px;
    padding: 8px 12px;
    background: rgba(255, 103, 37, 0.08);
    border-radius: 10px;
    display: inline-block;
}

.find-dates-result-details {
    margin-bottom: 15px;
}

.find-dates-result-detail-item {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.9rem;
    color: #666;
    margin-bottom: 10px;
}

.find-dates-result-detail-item i {
    color: #ff6725;
    font-size: 1rem;
}

.find-dates-result-status {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 15px;
}

.find-dates-result-action {
    margin-top: auto;
    padding-top: 15px;
    border-top: 2px solid #f5f5f5;
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: #ff6725;
    font-weight: 600;
    font-size: 0.95rem;
}

.find-dates-result-action i {
    transition: transform 0.3s;
}

.find-dates-result-card:hover .find-dates-result-action i {
    transform: translateX(5px);
}

/* No Results */
.find-dates-no-results {
    background: white;
    padding: 80px 40px;
    border-radius: 25px;
    margin-bottom: 30px;
    box-shadow: 0 8px 25px rgba(0,0,0,0.08);
    text-align: center;
}

.find-dates-no-results-icon {
    font-size: 5rem;
    color: #ddd;
    margin-bottom: 25px;
}

.find-dates-no-results h4 {
    font-size: 1.5rem;
    color: #666;
    margin-bottom: 12px;
}

.find-dates-no-results p {
    color: #999;
    font-size: 1rem;
    max-width: 500px;
    margin: 0 auto;
}

/* ========================================
   CALENDAR MONTH VIEW GRID
   ======================================== */

/* Calendar Grid Container */
.calendar-grid {
    width: 100%;
    overflow: hidden;
}

/* Calendar Month Header */
.calendar-month-header {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 8px;
    margin-bottom: 15px;
    width: 100%;
}

.calendar-month-weekday {
    text-align: center;
    font-weight: 700;
    color: #fff;
    padding: 12px 10px;
    background: linear-gradient(135deg, #ff6725 0%, #ff8f5c 100%);
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(255, 103, 37, 0.2);
    font-size: 0.9rem;
    letter-spacing: 0.5px;
    box-sizing: border-box;
    min-width: 0;
}

/* Calendar Month Body */
.calendar-month-body {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 8px;
    grid-auto-rows: 1fr;
    width: 100%;
}

.calendar-month-day {
    border: 2px solid #f0f0f0;
    border-radius: 15px;
    padding: 15px 12px;
    min-height: 140px;
    position: relative;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    background: linear-gradient(135deg, #ffffff 0%, #fefaf8 100%);
    box-shadow: 0 2px 8px rgba(0,0,0,0.04);
    overflow: visible;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    min-width: 0;
}

.calendar-month-day::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 103, 37, 0.05), transparent);
    transition: left 0.6s;
    border-radius: 15px;
    pointer-events: none;
}

.calendar-month-day:hover::before {
    left: 100%;
}

.calendar-month-day:hover {
    transform: translateY(-4px) scale(1.03);
    box-shadow: 0 8px 25px rgba(255, 103, 37, 0.15);
    z-index: 10;
    border-color: #ff6725 !important;
    background: linear-gradient(135deg, #ffffff 0%, #ffe8dc 100%);
}

.calendar-day-link {
    text-decoration: none;
    display: flex;
    flex-direction: column;
    height: 100%;
    flex: 1;
    position: relative;
    z-index: 1;
}

.calendar-day-number {
    font-weight: 800;
    font-size: 1.4rem;
    margin-bottom: 8px;
    background: linear-gradient(135deg, #ff6725 0%, #ff8f5c 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    line-height: 1.2;
    padding-top: 2px;
}

.calendar-day-score {
    color: white;
    font-size: 0.75rem;
    font-weight: 700;
    padding: 5px 10px;
    border-radius: 15px;
    display: inline-block;
    margin-bottom: 8px;
    box-shadow: 0 3px 10px rgba(0,0,0,0.15);
    position: relative;
    z-index: 2;
}

/* Desktop Calendar - Outline Badge in Top-Right Corner */
.calendar-day-score-badge {
    position: absolute !important;
    top: 2px !important;
    right: 0px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 42px !important;
    height: 26px !important;
    padding: 4px 8px !important;
    border-radius: 13px !important;
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    background: transparent !important;
    border: 2px solid currentColor !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important;
    cursor: pointer;
    transition: all 0.2s ease;
    line-height: 1 !important;
    z-index: 3 !important;
}

.calendar-day-score-badge:hover {
    transform: scale(1.08);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
    border-width: 2.5px;
}

.calendar-day-festival {
    font-size: 0.7rem;
    color: #ff6725;
    margin-top: 6px;
    font-weight: 600;
    padding: 4px 8px;
    background: rgba(255, 103, 37, 0.08);
    border-radius: 8px;
    line-height: 1.3;
    word-break: break-word;
    overflow-wrap: break-word;
}

.calendar-day-status {
    font-size: 0.7rem;
    color: #fff;
    background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
    margin-top: 6px;
    padding: 4px 8px;
    border-radius: 8px;
    font-weight: 600;
    box-shadow: 0 2px 6px rgba(239, 68, 68, 0.2);
    word-break: break-word;
    overflow-wrap: break-word;
}

.calendar-day-nakshatra {
    font-size: 0.65rem;
    color: #888;
    margin-top: 6px;
    padding: 3px 6px;
    background: rgba(0, 0, 0, 0.03);
    border-radius: 6px;
    font-weight: 500;
    word-break: break-word;
    overflow-wrap: break-word;
}

.calendar-day-empty {
    color: #ddd;
    font-weight: 700;
    font-size: 1.3rem;
    display: flex;
    align-items: flex-start;
    flex: 1;
    padding-top: 2px;
}

/* Responsive */

/* iPad and tablets (portrait and landscape) */
@media (min-width: 769px) and (max-width: 1024px) {
    .calendar-month-weekday {
        font-size: 0.85rem;
        padding: 10px 8px;
    }

    .calendar-month-day {
        min-height: 120px;
        padding: 10px;
    }

    .calendar-day-number {
        font-size: 1.3rem;
    }

    .calendar-day-score {
        font-size: 0.7rem;
        padding: 4px 8px;
    }

    .calendar-day-score-badge {
        min-width: 38px !important;
        height: 24px !important;
        font-size: 0.7rem !important;
        padding: 3px 6px !important;
        top: 2px !important;
        right: 0px !important;
        border-width: 1.5px !important;
    }

    .calendar-day-festival {
        font-size: 0.65rem;
    }

    .calendar-day-status {
        font-size: 0.65rem;
    }

    .calendar-day-nakshatra {
        font-size: 0.6rem;
    }
}

/* Mobile devices */
@media (max-width: 768px) {
    /* Header Cards Mobile */
    .calendar-page-header {
        padding: 25px 20px;
        border-radius: 20px;
    }

    .calendar-header-icon {
        font-size: 3rem;
        margin-bottom: 10px;
    }

    .calendar-header-title {
        font-size: 1.8rem;
    }

    .calendar-header-subtitle {
        font-size: 1.1rem;
    }

    .calendar-header-tamil {
        font-size: 0.9rem;
    }

    .calendar-header-description {
        font-size: 0.95rem;
    }

    .calendar-header-button {
        padding: 12px 25px;
        font-size: 0.95rem;
        width: 100%;
        text-align: center;
        margin-top: 15px;
    }

    /* Month Header Mobile */
    .calendar-month-header-card {
        padding: 20px 15px;
    }

    .calendar-month-title {
        font-size: 1.6rem;
        margin-bottom: 5px;
    }

    .calendar-month-subtitle {
        font-size: 0.95rem;
    }

    .calendar-nav-spacer {
        width: 60px;
    }

    .calendar-nav-button {
        padding: 10px 18px;
        font-size: 0.85rem;
        border-radius: 12px;
    }

    .calendar-nav-button span {
        display: none;
    }

    /* Mobile Calendar View - List Style */
    .calendar-month-header {
        display: none !important; /* Hide weekday headers */
    }

    .calendar-month-body {
        display: block !important; /* Change from grid to block */
        gap: 0;
    }

    .calendar-month-day {
        display: block;
        width: 100%;
        min-height: 180px;
        margin-bottom: 20px;
        padding: 25px 20px;
        border-radius: 20px;
        background: linear-gradient(135deg, #ffffff 0%, #fef9f5 100%) !important;
        border: 3px solid #f0f0f0 !important;
        box-shadow: 0 4px 15px rgba(0,0,0,0.08) !important;
        transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
        position: relative;
        overflow: hidden;
    }

    .calendar-month-day:hover {
        transform: translateY(-3px);
        box-shadow: 0 8px 25px rgba(0,0,0,0.12) !important;
        border-color: #ff6725 !important;
    }

    .calendar-month-day.other-month {
        display: none !important; /* Hide other month dates */
    }

    .calendar-day-link {
        display: flex;
        align-items: flex-start;
        gap: 20px;
        position: relative;
    }

    .calendar-day-number {
        font-size: 2.8rem;
        margin-bottom: 0;
        min-width: 70px;
        flex-shrink: 0;
        font-weight: 900;
        color: #ff6725;
        line-height: 1;
        padding: 5px 0;
        text-align: center;
        text-shadow: 0 2px 4px rgba(255, 103, 37, 0.2);
    }

    .calendar-day-content {
        flex-grow: 1;
        display: flex;
        flex-direction: column;
        gap: 8px;
    }

    .calendar-day-score {
        font-size: 1.1rem;
        padding: 8px 18px;
        margin-bottom: 0;
        display: inline-block;
        border-radius: 50px;
        font-weight: 900;
        box-shadow: 0 3px 12px rgba(0, 0, 0, 0.15);
        letter-spacing: 0.5px;
        width: fit-content;
    }

    .calendar-day-festival {
        font-size: 0.9rem;
        padding: 10px 16px;
        margin-top: 0;
        display: block;
        background: linear-gradient(135deg, #f59e0b 0%, #fbbf24 100%);
        color: white;
        border-radius: 12px;
        font-weight: 700;
        box-shadow: 0 3px 12px rgba(245, 158, 11, 0.3);
        line-height: 1.4;
    }

    .calendar-day-status {
        font-size: 0.85rem;
        padding: 7px 14px;
        margin-top: 0;
        display: inline-block;
        background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
        color: white;
        border-radius: 10px;
        font-weight: 700;
        box-shadow: 0 3px 12px rgba(239, 68, 68, 0.3);
        width: fit-content;
    }

    .calendar-day-nakshatra {
        display: block !important;
        font-size: 0.8rem;
        margin-top: 10px;
        color: #999;
        font-weight: 500;
        padding: 10px 0 0 0;
        border-top: 1px solid #eee;
        letter-spacing: 0.2px;
    }

    /* Find Dates Mobile */
    .find-dates-header {
        flex-direction: column;
        text-align: center;
        padding: 30px 20px;
    }

    .find-dates-header-content h1 {
        font-size: 1.8rem;
    }

    .find-dates-header-content p {
        font-size: 1rem;
    }

    .find-dates-search-card {
        padding: 25px 20px;
    }

    .find-dates-result-card {
        padding: 20px;
    }
}

/* Extra small devices (very small phones) */
@media (max-width: 480px) {
    .calendar-month-weekday {
        padding: 6px 3px;
        font-size: 0.65rem;
    }

    .calendar-month-day {
        min-height: 85px;
        padding: 6px 4px;
    }

    .calendar-day-number {
        font-size: 1rem;
    }

    .calendar-day-festival {
        font-size: 0.55rem;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .calendar-day-status {
        font-size: 0.55rem;
    }
}

/* ========================================
   FESTIVAL PAGES - STATISTICS CARDS
   ======================================== */

.festival-stat-card {
    text-decoration: none;
    cursor: url(../dashboard/images/icon/pointer.svg), pointer !important;
    display: flex;
    flex-direction: column;
}

.festival-stat-card .stat-card {
    padding: 30px 25px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    border-radius: 20px;
    position: relative;
    overflow: hidden;
    text-align: center;
    min-height: 220px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.festival-stat-card:hover .stat-card {
    transform: translateY(-8px) scale(1.02);
    box-shadow: 0 12px 35px rgba(0, 0, 0, 0.15) !important;
}

.stat-card-hindu {
    background: linear-gradient(135deg, #fff5f0 0%, #ffffff 100%);
    border: 3px solid #ffede5;
    box-shadow: 0 4px 15px rgba(255, 103, 37, 0.1);
}

.stat-card-muslim {
    background: linear-gradient(135deg, #f0fdf4 0%, #ffffff 100%);
    border: 3px solid #d1fae5;
    box-shadow: 0 4px 15px rgba(16, 185, 129, 0.1);
}

.stat-card-christian {
    background: linear-gradient(135deg, #eff6ff 0%, #ffffff 100%);
    border: 3px solid #dbeafe;
    box-shadow: 0 4px 15px rgba(59, 130, 246, 0.1);
}

.stat-card-public-holidays {
    background: linear-gradient(135deg, #faf5ff 0%, #ffffff 100%);
    border: 3px solid #ede9fe;
    box-shadow: 0 4px 15px rgba(139, 92, 246, 0.1);
}

.stat-card-icon {
    font-size: 3.5rem;
    margin-bottom: 15px;
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
}

.stat-card-watermark {
    position: absolute;
    top: -20px;
    right: -20px;
    font-size: 6rem;
    opacity: 0.05;
}

.stat-card-number {
    font-size: 2.5rem;
    font-weight: 800;
    margin-bottom: 8px;
}

.stat-card-number-hindu {
    color: #ff6725;
    text-shadow: 0 2px 4px rgba(255, 103, 37, 0.1);
}

.stat-card-number-muslim {
    color: #10b981;
    text-shadow: 0 2px 4px rgba(16, 185, 129, 0.1);
}

.stat-card-number-christian {
    color: #3b82f6;
    text-shadow: 0 2px 4px rgba(59, 130, 246, 0.1);
}

.stat-card-number-public {
    color: #8b5cf6;
    text-shadow: 0 2px 4px rgba(139, 92, 246, 0.1);
}

.stat-card-title {
    color: #333;
    font-weight: 700;
    font-size: 1rem;
    letter-spacing: 0.5px;
}

.stat-card-subtitle {
    margin-top: 12px;
    font-size: 0.85rem;
    color: #666;
}

/* ========================================
   FESTIVAL CARDS (Individual Festivals)
   ======================================== */

.festival-card-link {
    text-decoration: none;
    cursor: url(../dashboard/images/icon/pointer.svg), pointer !important;
}

.festival-card {
    border: 3px solid #f0f0f0;
    border-radius: 20px;
    padding: 25px 20px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    background: linear-gradient(135deg, #ffffff 0%, #fef9f5 100%);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
    position: relative;
    overflow: hidden;
    min-height: 180px;
}

.festival-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
    border-color: #ff6725;
}

.festival-card-watermark {
    position: absolute;
    top: 10px;
    right: 10px;
    font-size: 3rem;
    opacity: 0.1;
}

.festival-card-date {
    display: inline-block;
    color: white;
    padding: 8px 16px;
    border-radius: 12px;
    font-weight: 700;
    font-size: 1.1rem;
    margin-bottom: 12px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
    width: fit-content;
}

.festival-card-title {
    font-size: 1rem;
    color: #222;
    font-weight: 600;
    line-height: 1.4;
    margin-bottom: 6px;
}

.festival-card-title-tamil {
    font-size: 0.85rem;
    color: #666;
    line-height: 1.3;
    margin-bottom: 10px;
}

.festival-card-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: white;
    padding: 6px 12px;
    border-radius: 20px;
    font-size: 0.7rem;
    font-weight: 600;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

.festival-card-badge-icon {
    font-size: 1rem;
}

.festival-badge-holiday {
    background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
    box-shadow: 0 2px 8px rgba(239, 68, 68, 0.3);
}

/* Festival Detail Page Badges */
.festival-detail-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: white;
    padding: 8px 20px;
    border-radius: 20px;
    font-size: 0.9rem;
    font-weight: 600;
    box-shadow: 0 3px 12px rgba(0,0,0,0.15);
}

.festival-detail-badge-icon {
    font-size: 1.2rem;
}

.festival-detail-badge-holiday {
    background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
    box-shadow: 0 3px 12px rgba(239, 68, 68, 0.3);
    margin-left: 10px;
}

/* Festival Info Cards */
.festival-info-card {
    padding: 30px;
}

.festival-info-card-primary {
    background: linear-gradient(135deg, #fff5f0 0%, #ffffff 100%);
}

.festival-info-card-amber {
    background: linear-gradient(135deg, #fffbeb 0%, #ffffff 100%);
    border-left: 5px solid #f59e0b;
}

.festival-info-card-title {
    color: #ff6725;
    font-size: 1.5rem;
    margin-bottom: 20px;
    font-weight: 700;
}

.festival-info-card-title-amber {
    color: #f59e0b;
}

.festival-info-card-text {
    font-size: 1.05rem;
    line-height: 1.8;
    color: #333;
}

.festival-info-card-text-large {
    font-size: 1.1rem;
}

/* Panchangam Detail Boxes */
.panchang-detail-box {
    padding: 0.75rem;
    border-radius: 0.75rem;
    text-align: center;
    border: 2px solid;
}

.panchang-detail-label {
    font-weight: 600;
    font-size: 0.9rem;
    margin-bottom: 5px;
}

.panchang-detail-value {
    color: #333;
    font-weight: 700;
    font-size: 1.1rem;
}

.panchang-box-nakshatra {
    background: linear-gradient(135deg, #fef9f5 0%, #fef3c7 100%);
    border-color: #ff6725;
}

.panchang-label-nakshatra {
    color: #ff6725;
}

.panchang-box-thithi {
    background: linear-gradient(135deg, #f0fdfa 0%, #ccfbf1 100%);
    border-color: #14b8a6;
}

.panchang-label-thithi {
    color: #14b8a6;
}

.panchang-box-sro {
    background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
    border-color: #3b82f6;
}

.panchang-label-sro {
    color: #3b82f6;
}

.panchang-box-bank {
    background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
    border-color: #f59e0b;
}

.panchang-label-bank {
    color: #f59e0b;
}

/* Button Styles */
.btn-primary-festival {
    background: #ff6725;
    color: white;
    border: none;
    padding: 12px 30px;
    border-radius: 10px;
    font-weight: 600;
}

/* ========================================
   QUICK LINKS & BUTTONS
   ======================================== */

.calendar-quick-link,
.btn.calendar-quick-link,
a.calendar-quick-link {
    cursor: url(../dashboard/images/icon/pointer.svg), pointer !important;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.calendar-quick-link:hover,
.btn.calendar-quick-link:hover,
a.calendar-quick-link:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15) !important;
    cursor: url(../dashboard/images/icon/pointer.svg), pointer !important;
}

/* ========================================
   HOLIDAY CARDS (Government Holidays)
   ======================================== */

.holiday-card {
    border: 3px solid #e9d5ff;
    border-radius: 20px;
    padding: 25px 20px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    background: linear-gradient(135deg, #ffffff 0%, #faf5ff 100%);
    box-shadow: 0 4px 15px rgba(139, 92, 246, 0.15);
    position: relative;
    overflow: hidden;
    min-height: 180px;
}

.holiday-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 25px rgba(139, 92, 246, 0.25);
    border-color: #8b5cf6;
}

.holiday-card-date {
    display: inline-block;
    background: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%);
    color: white;
    padding: 8px 16px;
    border-radius: 12px;
    font-weight: 700;
    font-size: 1.1rem;
    margin-bottom: 12px;
    box-shadow: 0 4px 12px rgba(139, 92, 246, 0.3);
    width: fit-content;
}

/* ========================================
   AUSPICIOUS DATE CARDS
   ======================================== */

.auspicious-date-card {
    border: 3px solid #fef3c7;
    border-radius: 20px;
    padding: 25px 20px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    background: linear-gradient(135deg, #ffffff 0%, #fffbeb 100%);
    box-shadow: 0 4px 15px rgba(245, 158, 11, 0.15);
    position: relative;
    overflow: hidden;
    min-height: 200px;
}

.auspicious-date-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 25px rgba(245, 158, 11, 0.25);
    border-color: #f59e0b;
}

.auspicious-date-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: linear-gradient(135deg, #10b981 0%, #059669 100%);
    color: white;
    padding: 6px 12px;
    border-radius: 20px;
    font-size: 0.7rem;
    font-weight: 600;
    box-shadow: 0 2px 8px rgba(16, 185, 129, 0.3);
}

.auspicious-date-badge-bank {
    background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
    box-shadow: 0 2px 8px rgba(59, 130, 246, 0.3);
}

/* ========================================
   FESTIVAL TYPE GRADIENTS
   ======================================== */

.gradient-hindu {
    background: linear-gradient(135deg, #ff6725 0%, #ff8f5c 100%);
}

.gradient-muslim {
    background: linear-gradient(135deg, #10b981 0%, #059669 100%);
}

.gradient-christian {
    background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
}

.gradient-government {
    background: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%);
}

.gradient-national {
    background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
}

.gradient-regional {
    background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
}

/* ========================================
   RESPONSIVE ADJUSTMENTS
   ======================================== */

@media (max-width: 768px) {
    .festival-stat-card .stat-card {
        padding: 20px 15px;
    }

    .stat-card-icon {
        font-size: 2.5rem;
    }

    .stat-card-number {
        font-size: 2rem;
    }

    .festival-card {
        min-height: 150px;
    }
}

/* ========================================
   PAGINATION
   ======================================== */

.calendar-pagination {
    display: flex;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.calendar-pagination .page-item {
    list-style: none;
}

.calendar-pagination .page-link {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 45px;
    height: 45px;
    padding: 10px 15px;
    border: 2px solid #f0f0f0;
    border-radius: 12px;
    background: linear-gradient(135deg, #ffffff 0%, #fef9f5 100%);
    color: #ff6725;
    font-weight: 600;
    font-size: 1rem;
    text-decoration: none;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    cursor: url(../dashboard/images/icon/pointer.svg), pointer !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.calendar-pagination .page-link:hover {
    background: linear-gradient(135deg, #ff6725 0%, #ff8f5c 100%);
    color: white;
    border-color: #ff6725;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(255, 103, 37, 0.3);
}

.calendar-pagination .page-item.active .page-link {
    background: linear-gradient(135deg, #ff6725 0%, #ff8f5c 100%);
    color: white;
    border-color: #ff6725;
    box-shadow: 0 8px 25px rgba(255, 103, 37, 0.4);
    transform: translateY(-2px) scale(1.05);
}

.calendar-pagination .page-item.disabled .page-link {
    background: linear-gradient(135deg, #f5f5f5 0%, #e5e5e5 100%);
    color: #999;
    border-color: #e0e0e0;
    cursor: not-allowed !important;
    opacity: 0.6;
    box-shadow: none;
}

.calendar-pagination .page-item.disabled .page-link:hover {
    background: linear-gradient(135deg, #f5f5f5 0%, #e5e5e5 100%);
    transform: none;
    box-shadow: none;
}

/* Pagination Info Text */
.pagination-info {
    text-align: center;
    color: #666;
    font-size: 0.95rem;
    margin-bottom: 15px;
    font-weight: 500;
}

/* Responsive Pagination */
@media (max-width: 768px) {
    .calendar-pagination .page-link {
        min-width: 38px;
        height: 38px;
        padding: 8px 12px;
        font-size: 0.9rem;
    }

    .calendar-pagination {
        gap: 5px;
    }
}

/* ========================================
   UTILITY CLASSES FOR INLINE STYLES
   ======================================== */

/* Padding Utilities */
.cal-padding-sm { padding: 15px 20px; }
.cal-padding-md { padding: 20px; }
.cal-padding-lg { padding: 25px; }
.cal-padding-xl { padding: 30px; }

/* Background Utilities */
.cal-bg-transparent { background: transparent; }
.cal-bg-gradient-primary {
    background: linear-gradient(135deg, #fff5f0 0%, #ffffff 100%);
}
.cal-bg-gradient-highlight {
    background: linear-gradient(135deg, #ffffff 0%, #fff5f0 100%);
}
.cal-bg-gradient-featured {
    background: linear-gradient(135deg, #fff5f0 0%, #ffffff 100%);
    border: 2px solid #ff6725;
}

/* Text Size Utilities */
.cal-text-2xs { font-size: 0.85rem; }
.cal-text-xs { font-size: 0.9rem; }
.cal-text-sm { font-size: 0.95rem; }
.cal-text-base { font-size: 1rem; }
.cal-text-md { font-size: 1.1rem; }
.cal-text-lg { font-size: 1.2rem; }
.cal-text-xl { font-size: 1.3rem; }
.cal-text-2xl { font-size: 1.5rem; }
.cal-text-3xl { font-size: 1.6rem; }
.cal-text-4xl { font-size: 2rem; }
.cal-text-5xl { font-size: 2.5rem; }
.cal-text-6xl { font-size: 3rem; }

/* Color Utilities */
.cal-color-primary { color: #ff6725; }
.cal-color-success { color: #10b981; }
.cal-color-info { color: #3b82f6; }
.cal-color-warning { color: #f59e0b; }
.cal-color-purple { color: #8b5cf6; }
.cal-color-danger { color: #ef4444; }
.cal-color-gray-light { color: #999; }
.cal-color-gray { color: #888; }
.cal-color-gray-dark { color: #666; }
.cal-color-gray-darker { color: #333; }
.cal-color-gray-darkest { color: #222; }

/* Background Color Utilities */
.cal-bg-primary { background: #ff6725; }
.cal-bg-success { background: #10b981; }
.cal-bg-info { background: #3b82f6; }
.cal-bg-warning { background: #f59e0b; }
.cal-bg-purple { background: #8b5cf6; }
.cal-bg-danger { background: #ef4444; }

/* Border Utilities */
.cal-border-light { border: 2px solid #f0f0f0; }
.cal-border-primary { border: 2px solid #ff6725; }

/* Stat Card - Elegant & Extravagant Design */
.cal-stat-card {
    padding: 30px 20px;
    text-align: center;
    min-height: 140px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    position: relative;
    overflow: hidden;
    border: none !important;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    background: linear-gradient(135deg, #ffffff 0%, #fafafa 100%);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08), 0 1px 3px rgba(0, 0, 0, 0.06);
}

.cal-stat-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, currentColor 0%, currentColor 100%);
    opacity: 0.8;
}

.cal-stat-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.12), 0 3px 8px rgba(0, 0, 0, 0.08);
}

.cal-stat-value {
    font-size: 2.5rem;
    font-weight: 800;
    line-height: 1;
    margin-bottom: 8px;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.cal-stat-label {
    font-size: 0.85rem;
    color: #666;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-top: 0;
}

/* Stat Card Decorative Background */
.cal-stat-card::after {
    content: '';
    position: absolute;
    bottom: -20px;
    right: -20px;
    width: 80px;
    height: 80px;
    background: currentColor;
    opacity: 0.05;
    border-radius: 50%;
    z-index: 0;
}

.cal-stat-value,
.cal-stat-label {
    position: relative;
    z-index: 1;
}

/* Month Card Component */
.cal-month-card {
    border: 2px solid #f0f0f0;
    border-radius: 20px;
    padding: 25px;
    transition: all 0.4s;
    background: linear-gradient(135deg, #ffffff 0%, #fff5f0 100%);
    box-shadow: 0 4px 15px rgba(0,0,0,0.05);
    min-height: 180px;
}

.cal-month-card-title {
    font-size: 1.6rem;
    font-weight: 700;
    color: #ff6725;
    margin-bottom: 8px;
    letter-spacing: -0.5px;
}

.cal-month-card-date {
    font-size: 0.95rem;
    color: #333;
    margin-bottom: 4px;
    font-weight: 500;
}

.cal-month-card-tamil {
    font-size: 0.85rem;
    color: #888;
    margin-bottom: 4px;
    font-style: italic;
}

.cal-month-card-info {
    font-size: 0.85rem;
    color: #999;
    margin-bottom: 10px;
}

.cal-month-card-arrow {
    color: #ff6725;
    font-size: 1.1rem;
}

/* Auspicious Score Circle */
.cal-score-circle {
    width: 150px;
    height: 150px;
    border-radius: 50%;
    color: white;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    box-shadow: 0 10px 30px rgba(0,0,0,0.2);
}

.cal-score-circle-value {
    font-size: 3rem;
    font-weight: bold;
}

.cal-score-circle-label {
    font-size: 0.9rem;
}

/* Date Header */
.cal-date-header {
    padding: 30px;
    background: linear-gradient(135deg, #fff5f0 0%, #ffffff 100%);
}

.cal-date-day-info {
    font-size: 0.9rem;
    color: #999;
    margin-bottom: 5px;
}

.cal-date-title {
    color: #ff6725;
    font-size: 2.5rem;
}

.cal-date-subtitle {
    font-size: 1.3rem;
    color: #666;
    margin-bottom: 15px;
}

.cal-date-info {
    font-size: 1.1rem;
    color: #666;
}

/* Festival Card */
.cal-festival-card {
    border-radius: 20px;
    padding: 20px;
    min-height: 200px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    background: linear-gradient(135deg, #ffffff 0%, #fefefe 100%);
    border: 2px solid #f0f0f0;
    box-shadow: 0 4px 15px rgba(0,0,0,0.08), 0 2px 4px rgba(0,0,0,0.04);
    position: relative;
    overflow: hidden;
}

.cal-festival-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 25px rgba(0,0,0,0.12), 0 4px 8px rgba(0,0,0,0.06);
    border-color: #e0e0e0;
}

.cal-festival-icon {
    position: absolute;
    top: 10px;
    right: 10px;
    font-size: 3rem;
    opacity: 0.1;
}

.cal-festival-badge {
    display: inline-block;
    padding: 5px 12px;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 600;
    color: white;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 10px;
}

.cal-festival-title {
    font-size: 1rem;
    color: #222;
    font-weight: 600;
    line-height: 1.4;
    margin-bottom: 6px;
}

.cal-festival-tamil {
    font-size: 0.85rem;
    color: #666;
    line-height: 1.3;
    margin-bottom: 10px;
}

.cal-festival-date {
    font-size: 0.85rem;
    color: #999;
    font-weight: 500;
}

/* Featured Box */
.cal-featured-box {
    padding: 25px;
    background: linear-gradient(135deg, #fff5f0 0%, #ffffff 100%);
    border: 2px solid #ff6725;
}

.cal-featured-title {
    color: #ff6725;
    font-size: 1.3rem;
    margin-bottom: 10px;
}

.cal-featured-value {
    font-size: 1.5rem;
    font-weight: bold;
    margin-bottom: 5px;
}

.cal-featured-score {
    color: #10b981;
    font-size: 1.2rem;
}

.cal-featured-btn {
    background: #ff6725;
    color: white;
    border: none;
    padding: 12px 30px;
    border-radius: 10px;
}

.cal-featured-btn:hover {
    background: #e55a1f;
    color: white;
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(255, 103, 37, 0.3);
}

/* Section Headers */
.cal-section-title {
    color: #ff6725;
    font-size: 1.3rem;
    margin-bottom: 20px;
}

/* Margin Utilities */
.cal-mb-5 { margin-bottom: 5px; }
.cal-mb-10 { margin-bottom: 10px; }
.cal-mb-15 { margin-bottom: 15px; }
.cal-mb-20 { margin-bottom: 20px; }

/* Position Utilities */
.cal-position-absolute { position: absolute; }
.cal-position-relative { position: relative; }

/* Display Utilities */
.cal-d-inline-block { display: inline-block; }
.cal-d-inline-flex { display: inline-flex; }

/* Flex Utilities */
.cal-flex-column { flex-direction: column; }
.cal-align-center { align-items: center; }
.cal-justify-center { justify-content: center; }

/* Border Radius */
.cal-rounded-10 { border-radius: 10px; }
.cal-rounded-12 { border-radius: 12px; }
.cal-rounded-20 { border-radius: 20px; }
.cal-rounded-circle { border-radius: 50%; }

/* Box Shadow */
.cal-shadow-sm { box-shadow: 0 4px 15px rgba(0,0,0,0.05); }
.cal-shadow-md { box-shadow: 0 4px 15px rgba(0,0,0,0.08); }
.cal-shadow-lg { box-shadow: 0 10px 30px rgba(0,0,0,0.2); }

/* Transitions */
.cal-transition { transition: all 0.3s; }
.cal-transition-slow { transition: all 0.4s; }

/* Font Weight */
.cal-fw-500 { font-weight: 500; }
.cal-fw-600 { font-weight: 600; }
.cal-fw-700 { font-weight: 700; }
.cal-fw-bold { font-weight: bold; }

/* Letter Spacing */
.cal-ls-tight { letter-spacing: -0.5px; }
.cal-ls-wide { letter-spacing: 0.5px; }

/* Line Height */
.cal-lh-1-3 { line-height: 1.3; }
.cal-lh-1-4 { line-height: 1.4; }

/* Opacity */
.cal-opacity-10 { opacity: 0.1; }

/* Font Style */
.cal-italic { font-style: italic; }

/* Text Transform */
.cal-uppercase { text-transform: uppercase; }

/* Overflow */
.cal-overflow-hidden { overflow: hidden; }

/* Quick Link Buttons */
.cal-quick-link-btn,
.btn.cal-quick-link-btn,
a.cal-quick-link-btn,
.btn-sm.cal-quick-link-btn {
    padding: 10px 20px !important;
    font-size: 0.95rem !important;
    white-space: nowrap !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    transition: all 0.3s ease !important;
    line-height: 1.5 !important;
    visibility: visible !important;
    opacity: 1 !important;
    color: white !important;
    text-decoration: none !important;
    min-width: 120px !important;
    justify-content: center !important;
}

.cal-quick-link-btn *,
.btn.cal-quick-link-btn *,
a.cal-quick-link-btn * {
    visibility: visible !important;
    opacity: 1 !important;
    font-size: inherit !important;
}

.cal-quick-link-btn:hover,
.btn.cal-quick-link-btn:hover,
a.cal-quick-link-btn:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2) !important;
    color: white !important;
}

/* Quick Links Container - Elegant & Extravagant */
.cal-quick-links-container {
    padding: 25px 30px !important;
    background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%) !important;
    border: none !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08), 0 2px 8px rgba(0, 0, 0, 0.04) !important;
    position: relative !important;
    overflow: hidden !important;
}

.cal-quick-links-container::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, #ff6725 0%, #ff8f5c 50%, #ff6725 100%);
    opacity: 0.8;
}

.cal-quick-links-container::after {
    content: '🔗';
    position: absolute;
    bottom: -10px;
    right: -10px;
    font-size: 80px;
    opacity: 0.03;
    z-index: 0;
}

.cal-quick-links-container > div {
    position: relative;
    z-index: 1;
    gap: 12px !important;
}

/* Month Stat Cards - Elegant Colored Values */
.cal-stat-value-success,
.cal-stat-value-info,
.cal-stat-value-warning,
.cal-stat-value-purple {
    font-size: 2.5rem !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    margin-bottom: 10px !important;
    padding-top: 5px !important;
    text-shadow: 0 2px 6px rgba(0, 0, 0, 0.1) !important;
    position: relative !important;
    z-index: 1 !important;
    display: inline-block !important;
}

.cal-stat-value-success {
    color: #10b981 !important;
}

.cal-stat-value-info {
    color: #3b82f6 !important;
}

.cal-stat-value-warning {
    color: #f59e0b !important;
}

.cal-stat-value-purple {
    color: #8b5cf6 !important;
}

/* Festival Card Enhancements */
.cal-festival-card-min { min-height: 160px; }

.cal-festival-date-badge {
    background: linear-gradient(135deg, #ff6725 0%, #ff8f5c 100%);
    color: white;
    padding: 8px 16px;
    border-radius: 12px;
    font-weight: 700;
    font-size: 1.1rem;
    box-shadow: 0 4px 12px rgba(255, 103, 37, 0.3);
    width: fit-content;
    margin-bottom: 12px;
}

.cal-festival-type-badge {
    gap: 5px;
    padding: 6px 14px;
    font-size: 0.75rem;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}

.cal-festival-type-icon {
    font-size: 1rem;
}

/* Article/Content Styles */
.cal-article-heading {
    font-size: 1.4rem;
    border-bottom: 2px solid #ff6725;
    padding-bottom: 10px;
}

.cal-article-heading-spaced {
    font-size: 1.4rem;
    margin-top: 30px;
    border-bottom: 2px solid #ff6725;
    padding-bottom: 10px;
}

.cal-article-text {
    line-height: 1.8;
}

.cal-article-list {
    line-height: 1.8;
    padding-left: 30px;
}

/* Min Height */
.cal-min-h-160 { min-height: 160px; }
.cal-min-h-180 { min-height: 180px; }
.cal-min-h-220 { min-height: 220px; }

/* ========================================
   MONTH VIEW SPECIFIC STYLES
   ======================================== */

/* Breadcrumb */
.cal-breadcrumb-bg { background: transparent; }

/* Best Day Highlight */
.cal-best-day-highlight {
    padding: 25px;
    background: linear-gradient(135deg, #fff5f0 0%, #ffffff 100%);
    border: 2px solid #ff6725;
}

.cal-best-day-title {
    color: #ff6725;
    font-size: 1.3rem;
    margin-bottom: 10px;
}

.cal-best-day-date {
    font-size: 1.5rem;
    font-weight: bold;
    margin-bottom: 5px;
}

.cal-best-day-score {
    color: #10b981;
    font-size: 1.2rem;
}

.cal-best-day-button {
    background: #ff6725;
    color: white;
    border: none;
    padding: 12px 30px;
    border-radius: 10px;
}

/* Calendar Grid Month View */
.cal-grid-day-other-month {
    background: #f9f9f9;
}

.cal-grid-day-current-month {
    background: #fff;
}

.cal-day-number-current {
    color: #333;
}

.cal-day-number-other {
    color: #999;
}

/* Mobile Date Card */
.cal-date-card-mobile {
    border: 3px solid #f0f0f0;
    border-radius: 20px;
    padding: 25px 20px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    background: linear-gradient(135deg, #ffffff 0%, #fef9f5 100%);
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
    position: relative;
    overflow: hidden;
    min-height: 220px;
}

.cal-date-card-day-overlay {
    position: absolute;
    top: 10px;
    right: 10px;
    font-size: 2.5rem;
    opacity: 0.08;
    font-weight: 900;
}

.cal-date-card-date-badge {
    display: inline-block;
    background: linear-gradient(135deg, #ff6725 0%, #ff8f5c 100%);
    color: white;
    padding: 8px 16px;
    border-radius: 12px;
    font-weight: 700;
    font-size: 1.1rem;
    margin-bottom: 12px;
    box-shadow: 0 4px 12px rgba(255, 103, 37, 0.3);
    width: fit-content;
}

.cal-date-card-score-label {
    font-size: 0.9rem;
    color: #666;
    margin-bottom: 8px;
}

.cal-date-card-score-badge {
    display: inline-block;
    color: white;
    padding: 6px 16px;
    border-radius: 20px;
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: 10px;
    box-shadow: 0 3px 10px rgba(0,0,0,0.15);
}

.cal-date-card-festival {
    font-size: 0.85rem;
    color: #f59e0b;
    font-weight: 600;
    margin-bottom: 4px;
}

.cal-date-card-nakshatra {
    font-size: 0.8rem;
    color: #888;
    margin-top: 8px;
}

.cal-date-card-status-sro {
    display: inline-block;
    background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
    color: white;
    padding: 5px 12px;
    border-radius: 15px;
    font-size: 0.7rem;
    font-weight: 600;
    box-shadow: 0 2px 8px rgba(239, 68, 68, 0.3);
}

.cal-date-card-status-bank {
    display: inline-block;
    background: linear-gradient(135deg, #f59e0b 0%, #fbbf24 100%);
    color: white;
    padding: 5px 12px;
    border-radius: 15px;
    font-size: 0.7rem;
    font-weight: 600;
    box-shadow: 0 2px 8px rgba(245, 158, 11, 0.3);
}

/* Festival Card Month View */
.cal-festival-card-month {
    border: 3px solid #f0f0f0;
    border-radius: 20px;
    padding: 25px 20px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    background: linear-gradient(135deg, #ffffff 0%, #fef9f5 100%);
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
    position: relative;
    overflow: hidden;
    min-height: 180px;
}

.cal-festival-icon-overlay {
    position: absolute;
    top: 10px;
    right: 10px;
    font-size: 3rem;
    opacity: 0.1;
}

.cal-festival-name-english {
    font-size: 1rem;
    color: #222;
    font-weight: 600;
    line-height: 1.4;
    margin-bottom: 6px;
}

.cal-festival-name-tamil {
    font-size: 0.85rem;
    color: #666;
    line-height: 1.3;
    margin-bottom: 10px;
}

.cal-festival-holiday-badge {
    display: inline-block;
    background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
    color: white;
    padding: 6px 12px;
    border-radius: 20px;
    font-size: 0.7rem;
    font-weight: 600;
    box-shadow: 0 2px 8px rgba(239, 68, 68, 0.3);
}

/* Score Legend */
.cal-legend-heading {
    font-size: 1.1rem;
    margin-bottom: 15px;
    color: #666;
}

.cal-legend-badge {
    padding: 5px 15px;
}

.cal-legend-badge-excellent {
    background: #10b981;
}

.cal-legend-badge-good {
    background: #fbbf24;
}

.cal-legend-badge-fair {
    background: #f97316;
}

.cal-legend-badge-avoid {
    background: #ef4444;
}

/* Section Heading */
.cal-section-heading {
    color: #ff6725;
    font-size: 1.5rem;
}

/* Stat Card Color Variations */
.cal-stat-value-success {
    font-size: 2rem;
    color: #10b981;
    font-weight: bold;
}

.cal-stat-value-info {
    font-size: 2rem;
    color: #3b82f6;
    font-weight: bold;
}

.cal-stat-value-warning {
    font-size: 2rem;
    color: #f59e0b;
    font-weight: bold;
}

.cal-stat-value-purple {
    font-size: 2rem;
    color: #8b5cf6;
    font-weight: bold;
}

/* Opacity Variations */
.cal-opacity-08 { opacity: 0.08; }
.cal-opacity-12 { opacity: 0.12; }
.cal-opacity-15 { opacity: 0.15; }
.cal-opacity-80 { opacity: 0.8; }
.cal-opacity-95 { opacity: 0.95; }

/* ========================================
   DATE VIEW SPECIFIC STYLES
   ======================================== */

/* Date Header */
.cal-date-header {
    padding: 30px;
    background: linear-gradient(135deg, #fff5f0 0%, #ffffff 100%);
}

.cal-date-day-info {
    font-size: 0.9rem;
    color: #999;
    margin-bottom: 5px;
}

.cal-date-main-title {
    color: #ff6725;
    font-size: 2.5rem;
}

.cal-date-weekday {
    font-size: 1.3rem;
    color: #666;
    margin-bottom: 15px;
}

.cal-date-tamil-info {
    font-size: 1.1rem;
    color: #666;
}

/* Auspicious Score Circle */
.cal-score-circle {
    width: 150px;
    height: 150px;
    border-radius: 50%;
    color: white;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    box-shadow: 0 10px 30px rgba(0,0,0,0.2);
}

.cal-score-circle-value {
    font-size: 3rem;
    font-weight: bold;
}

.cal-score-circle-label {
    font-size: 0.9rem;
}

/* Real Estate Guidance */
.cal-realestate-section {
    padding: 30px;
    background: linear-gradient(135deg, #fff5f0 0%, #ffffff 100%);
}

.cal-section-title {
    color: #ff6725;
    font-size: 1.5rem;
    margin-bottom: 25px;
    font-weight: 700;
}

.cal-guidance-highlight {
    background: linear-gradient(135deg, #ff6725 0%, #ff8f5c 100%);
    color: white;
    border-radius: 20px;
    box-shadow: 0 8px 25px rgba(255, 103, 37, 0.25);
    border: 3px solid rgba(255, 255, 255, 0.3);
}

.cal-guidance-title {
    font-size: 1.1rem;
    font-weight: 700;
    margin-bottom: 8px;
    opacity: 0.95;
}

.cal-guidance-text {
    font-size: 1.05rem;
    line-height: 1.6;
}

/* Suitable Activities Card */
.cal-suitable-card {
    background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);
    border: 3px solid #10b981;
    border-radius: 20px;
    padding: 25px;
    box-shadow: 0 6px 20px rgba(16, 185, 129, 0.15);
    position: relative;
    overflow: hidden;
}

.cal-suitable-decoration {
    position: absolute;
    top: -20px;
    right: -20px;
    width: 100px;
    height: 100px;
    background: rgba(16, 185, 129, 0.1);
    border-radius: 50%;
}

.cal-suitable-title {
    color: #10b981;
    font-size: 1.2rem;
    margin-bottom: 20px;
    font-weight: 700;
    position: relative;
}

.cal-suitable-item {
    margin-bottom: 12px;
    padding: 10px 15px;
    background: rgba(255, 255, 255, 0.7);
    border-radius: 12px;
    border-left: 4px solid #10b981;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

.cal-suitable-icon {
    color: #10b981;
    font-size: 1.1rem;
}

/* Avoid Activities Card */
.cal-avoid-card {
    background: linear-gradient(135deg, #fef2f2 0%, #fee2e2 100%);
    border: 3px solid #ef4444;
    border-radius: 20px;
    padding: 25px;
    box-shadow: 0 6px 20px rgba(239, 68, 68, 0.15);
    position: relative;
    overflow: hidden;
}

.cal-avoid-decoration {
    position: absolute;
    top: -20px;
    right: -20px;
    width: 100px;
    height: 100px;
    background: rgba(239, 68, 68, 0.1);
    border-radius: 50%;
}

.cal-avoid-title {
    color: #ef4444;
    font-size: 1.2rem;
    margin-bottom: 20px;
    font-weight: 700;
    position: relative;
}

.cal-avoid-item {
    margin-bottom: 12px;
    padding: 10px 15px;
    background: rgba(255, 255, 255, 0.7);
    border-radius: 12px;
    border-left: 4px solid #ef4444;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

.cal-avoid-icon {
    color: #ef4444;
    font-size: 1.1rem;
}

.cal-avoid-empty {
    padding: 15px;
    background: rgba(255, 255, 255, 0.7);
    border-radius: 12px;
    color: #666;
    font-weight: 500;
}

/* Property Tip Box */
.cal-property-tip {
    background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%);
    border: 3px solid #f59e0b;
    border-radius: 20px;
    box-shadow: 0 6px 20px rgba(245, 158, 11, 0.15);
    position: relative;
    overflow: hidden;
}

.cal-tip-decoration {
    position: absolute;
    top: 15px;
    right: 20px;
    font-size: 3rem;
    opacity: 0.15;
}

.cal-tip-title {
    color: #f59e0b;
    font-size: 1.15rem;
    margin-bottom: 12px;
    font-weight: 700;
    position: relative;
}

.cal-tip-text {
    color: #78350f;
    font-size: 1.05rem;
    line-height: 1.7;
    font-weight: 500;
    position: relative;
}

/* Astrology Section */
.cal-astrology-section {
    padding: 30px;
    background: linear-gradient(135deg, #fef9f5 0%, #ffffff 100%);
}

/* Astrology Cards - Generic */
.cal-astro-card {
    background: linear-gradient(135deg, #ffffff 0%, #fef9f5 100%);
    border-radius: 18px;
    box-shadow: 0 5px 18px rgba(0, 0, 0, 0.12);
    height: 100%;
}

.cal-astro-label {
    font-weight: 700;
    font-size: 0.95rem;
    margin-bottom: 8px;
    opacity: 0.8;
}

.cal-astro-value {
    color: #333;
    font-size: 1.15rem;
    font-weight: 600;
}

/* Astrology Card Color Variants */
.cal-astro-card-primary {
    border: 3px solid #ff6725;
}

.cal-astro-card-purple {
    border: 3px solid #8b5cf6;
}

.cal-astro-card-blue {
    border: 3px solid #3b82f6;
}

.cal-astro-card-amber {
    border: 3px solid #f59e0b;
}

.cal-astro-card-yellow {
    border: 3px solid #fbbf24;
    background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%);
}

.cal-astro-card-cyan {
    border: 3px solid #0ea5e9;
    background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);
}

.cal-astro-card-teal {
    border: 3px solid #14b8a6;
    background: linear-gradient(135deg, #f0fdfa 0%, #ccfbf1 100%);
}

/* Astrology Label Colors */
.cal-astro-label-primary { color: #ff6725; }
.cal-astro-label-purple { color: #8b5cf6; }
.cal-astro-label-blue { color: #3b82f6; }
.cal-astro-label-amber { color: #f59e0b; }
.cal-astro-label-cyan { color: #0ea5e9; }
.cal-astro-label-teal { color: #14b8a6; }

/* Day Timings Section */
.cal-timings-section {
    padding: 30px;
    background: linear-gradient(135deg, #fffbf0 0%, #ffffff 100%);
}

/* Good Times Card */
.cal-goodtime-card {
    background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);
    border: 3px solid #10b981;
    border-radius: 20px;
    padding: 25px;
    box-shadow: 0 6px 20px rgba(16, 185, 129, 0.15);
    position: relative;
    overflow: hidden;
}

.cal-goodtime-decoration {
    position: absolute;
    top: 15px;
    right: 20px;
    font-size: 2.5rem;
    opacity: 0.12;
}

.cal-goodtime-title {
    color: #10b981;
    font-size: 1.2rem;
    margin-bottom: 20px;
    font-weight: 700;
    position: relative;
}

.cal-time-slot {
    background: rgba(255, 255, 255, 0.7);
    border-left: 4px solid #10b981;
}

.cal-time-slot-label {
    color: #10b981;
    font-weight: 600;
    font-size: 0.9rem;
    margin-bottom: 4px;
}

.cal-time-slot-value {
    color: #333;
    font-weight: 500;
    font-size: 1.05rem;
}

/* Bad Times Card */
.cal-badtime-card {
    background: linear-gradient(135deg, #fef2f2 0%, #fee2e2 100%);
    border: 3px solid #ef4444;
    border-radius: 20px;
    padding: 25px;
    box-shadow: 0 6px 20px rgba(239, 68, 68, 0.15);
    position: relative;
    overflow: hidden;
}

.cal-badtime-decoration {
    position: absolute;
    top: 15px;
    right: 20px;
    font-size: 2.5rem;
    opacity: 0.12;
}

.cal-badtime-title {
    color: #ef4444;
    font-size: 1.2rem;
    margin-bottom: 20px;
    font-weight: 700;
    position: relative;
}

.cal-badtime-slot {
    background: rgba(255, 255, 255, 0.7);
    border-left: 4px solid #ef4444;
}

.cal-badtime-slot-label {
    color: #ef4444;
    font-weight: 600;
    font-size: 0.9rem;
    margin-bottom: 4px;
}

/* Cursor Style */
.cal-cursor-pointer {
    cursor: url(../dashboard/images/icon/pointer.svg), pointer !important;
}

/* Font Size Variations */
.cal-text-1-3rem { font-size: 1.3rem; }

/* Width Fit Content */
.cal-w-fit { width: fit-content; }

/* Position */
.cal-position-relative { position: relative; }

/* Muhurthams Section */
.cal-muhurtham-container {
    background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%);
    border: 3px solid #f59e0b;
    border-radius: 20px;
    box-shadow: 0 6px 20px rgba(245, 158, 11, 0.15);
}

.cal-muhurtham-title {
    color: #f59e0b;
    font-size: 1.2rem;
    margin-bottom: 20px;
    font-weight: 700;
}

.cal-muhurtham-slot {
    background: rgba(255, 255, 255, 0.7);
    border-left: 4px solid #f59e0b;
}

.cal-muhurtham-slot-label {
    color: #f59e0b;
    font-weight: 600;
    font-size: 0.85rem;
    margin-bottom: 4px;
}

.cal-muhurtham-slot-value {
    color: #333;
    font-weight: 600;
    font-size: 1.1rem;
}

/* ========================================
   AUSPICIOUS DATES PAGE STYLES
   ======================================== */

/* Header Icon */
.cal-header-icon-large {
    font-size: 4rem;
    margin-bottom: 10px;
}

/* Stats Box */
.cal-stats-box-amber {
    background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
    color: white;
    padding: 25px;
    border-radius: 20px;
    box-shadow: 0 10px 30px rgba(245, 158, 11, 0.3);
}

.cal-stats-box-purple {
    background: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%);
    color: white;
    padding: 25px;
    border-radius: 20px;
    box-shadow: 0 10px 30px rgba(139, 92, 246, 0.3);
}

.cal-stats-box-primary {
    background: linear-gradient(135deg, #ff6725 0%, #ff8f5c 100%);
    color: white;
    padding: 25px;
    border-radius: 20px;
    box-shadow: 0 10px 30px rgba(255, 103, 37, 0.3);
}

.cal-stats-box-dynamic {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    color: white;
    padding: 25px;
    border-radius: 20px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.2);
}

.cal-stats-box-label {
    font-size: 0.9rem;
    margin-bottom: 5px;
    opacity: 0.9;
}

.cal-stats-box-value {
    font-size: 3rem;
    font-weight: bold;
}

.cal-stats-box-sublabel {
    font-size: 0.9rem;
}

/* Info Box */
.cal-info-box {
    padding: 25px;
    background: linear-gradient(135deg, #fffbeb 0%, #ffffff 100%);
    border-left: 5px solid #f59e0b;
}

.cal-info-icon {
    font-size: 2.5rem;
    flex-shrink: 0;
}

.cal-info-title {
    color: #f59e0b;
    margin-bottom: 10px;
    font-weight: 700;
}

.cal-info-text {
    margin-bottom: 8px;
    line-height: 1.6;
    color: #333;
}

/* Quick Links */
.cal-quick-links-container {
    padding: 20px;
}

.cal-quick-link-primary {
    background: #ff6725;
    color: white;
    border: none;
    padding: 10px 20px;
    border-radius: 10px;
    font-weight: 600;
}

.cal-quick-link-purple {
    background: #8b5cf6;
    color: white;
    border: none;
    padding: 10px 20px;
    border-radius: 10px;
    font-weight: 600;
}

.cal-quick-link-green {
    background: #10b981;
    color: white;
    border: none;
    padding: 10px 20px;
    border-radius: 10px;
    font-weight: 600;
}

.cal-quick-link-gray {
    background: #6b7280;
    color: white;
    border: none;
    padding: 10px 20px;
    border-radius: 10px;
    font-weight: 600;
}

.cal-quick-link-amber {
    background: #f59e0b;
    color: white;
    border: none;
    padding: 10px 20px;
    border-radius: 10px;
    font-weight: 600;
}

/* Best Dates Section */
.cal-best-dates-section {
    padding: 30px;
    background: linear-gradient(135deg, #fef3c7 0%, #ffffff 100%);
}

.cal-best-dates-title {
    color: #f59e0b;
    font-size: 1.8rem;
    margin-bottom: 25px;
    font-weight: 700;
}

.cal-activity-card {
    padding: 20px;
    background: white;
    border-radius: 15px;
    box-shadow: 0 4px 15px rgba(245, 158, 11, 0.15);
    border: 2px solid #fef3c7;
}

/* Font Size */
.cal-text-1-8rem { font-size: 1.8rem; }
.cal-text-1-1rem { font-size: 1.1rem; }

/* Opacity */
.cal-opacity-09 { opacity: 0.9; }

/* Activity Card Elements */
.cal-activity-name {
    color: #f59e0b;
    font-weight: 700;
    font-size: 1.1rem;
    margin-bottom: 5px;
}

.cal-activity-date {
    color: #333;
    font-size: 1.2rem;
    font-weight: 600;
}

.cal-activity-nakshatra {
    color: #666;
    font-size: 0.9rem;
    margin-top: 5px;
}

.cal-activity-score-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: white;
    padding: 10px 15px;
    border-radius: 12px;
    font-weight: 700;
    font-size: 1.2rem;
    box-shadow: 0 3px 10px rgba(0,0,0,0.2);
}

.cal-activity-view-btn {
    background: #f59e0b;
    color: white;
    border: none;
    padding: 8px 16px;
    border-radius: 8px;
    font-weight: 600;
    font-size: 0.85rem;
}

/* All Dates Section */
.cal-all-dates-section {
    padding: 30px;
}

.cal-section-title-bordered {
    color: #f59e0b;
    font-size: 1.8rem;
    margin-bottom: 25px;
    font-weight: 700;
    border-bottom: 3px solid #f59e0b;
    padding-bottom: 10px;
}

.cal-section-title-purple {
    color: #8b5cf6;
    border-bottom-color: #8b5cf6;
}

.cal-festival-date-badge-amber {
    background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
}

/* Score Understanding Section */
.cal-score-understanding-section {
    padding: 30px;
    background: linear-gradient(135deg, #f0fdf4 0%, #ffffff 100%);
}

.cal-score-understanding-title {
    color: #10b981;
    font-size: 1.5rem;
    margin-bottom: 20px;
    font-weight: 700;
}

.cal-score-range-box {
    padding: 15px;
    border-radius: 10px;
    color: white;
}

.cal-score-range-value {
    font-size: 1.5rem;
    font-weight: bold;
    margin-bottom: 5px;
}

.cal-score-range-label {
    font-size: 0.85rem;
}

.cal-score-box-excellent {
    background: linear-gradient(135deg, #10b981 0%, #059669 100%);
}

.cal-score-box-very-good {
    background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
}

.cal-score-box-good {
    background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
}

.cal-score-box-fair {
    background: linear-gradient(135deg, #f97316 0%, #ea580c 100%);
}

.cal-score-box-highly-auspicious {
    background: linear-gradient(135deg, #84cc16 0%, #65a30d 100%);
}

.cal-score-box-less-favorable {
    background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
}

/* Date Details */
.cal-date-details {
    font-size: 0.8rem;
    color: #666;
    line-height: 1.3;
}

/* Text Center */
.cal-text-center { text-align: center; }

/* Text Color */
.cal-text-gray { color: #555; }

/* Margin Top */
.cal-mt-15 { margin-top: 15px; }
.cal-mt-25 { margin-top: 25px; }

/* Font Size */
.cal-text-1-05rem { font-size: 1.05rem; }
.cal-text-1-4rem { font-size: 1.4rem; }
.cal-text-1-6rem { font-size: 1.6rem; }

/* Margin Bottom */
.cal-mb-0 { margin-bottom: 0; }
.cal-mb-12 { margin-bottom: 12px; }
.cal-mb-15 { margin-bottom: 15px; }

/* Padding Left */
.cal-pl-25 { padding-left: 25px; }

/* Border Colors */
.cal-border-left-purple { border-left-color: #8b5cf6; }
.cal-border-left-primary { border-left-color: #ff6725; }
.cal-border-left-green { border-left-color: #10b981; }

/* Link Colors */
.cal-link-purple {
    color: #8b5cf6;
    text-decoration: underline;
}

.cal-link-primary {
    color: #ff6725;
    text-decoration: underline;
}

/* Article Section Heading with Border (accepts dynamic color) */
.cal-article-section-heading {
    font-size: 1.6rem;
    margin-bottom: 15px;
    font-weight: 700;
    border-bottom: 3px solid;
    padding-bottom: 10px;
}

.cal-article-subheading {
    font-size: 1.4rem;
    margin-top: 25px;
    margin-bottom: 12px;
    font-weight: 700;
}

.cal-article-heading-purple {
    color: #8b5cf6;
    border-bottom-color: #8b5cf6;
}

.cal-article-heading-green {
    color: #10b981;
    border-bottom-color: #10b981;
}

.cal-link-green {
    color: #10b981;
    text-decoration: underline;
}

/* Warning/Amber Box */
.cal-bg-amber-light {
    background: linear-gradient(135deg, #fef3c7 0%, #ffffff 100%);
}

.cal-border-left-amber {
    border-left-color: #f59e0b;
}

/* Best Practices Box (accepts dynamic colors) */
.cal-best-practices-box {
    padding: 20px;
    border-radius: 12px;
    margin-bottom: 20px;
    border-left: 5px solid;
}

.cal-best-practices-box p {
    margin-bottom: 12px;
    color: #333;
}

.cal-best-practices-box p:last-child {
    margin-bottom: 0;
}

/* Background colors for different categories */
.cal-bg-hindu-light {
    background: linear-gradient(135deg, #fff7ed 0%, #ffffff 100%);
}

.cal-bg-christian-light {
    background: linear-gradient(135deg, #eff6ff 0%, #ffffff 100%);
}

.cal-bg-islamic-light {
    background: linear-gradient(135deg, #ecfdf5 0%, #ffffff 100%);
}

.cal-bg-government-light {
    background: linear-gradient(135deg, #f3e8ff 0%, #ffffff 100%);
}

/* Pro Tips Section */
.cal-pro-tips-section {
    padding: 30px;
    background: linear-gradient(135deg, #ecfdf5 0%, #ffffff 100%);
    border-left: 5px solid #10b981;
}

.cal-pro-tips-title {
    color: #10b981;
    font-size: 1.5rem;
    margin-bottom: 20px;
    font-weight: 700;
}

.cal-pro-tip-box {
    padding: 15px;
    background: white;
    border-radius: 10px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}

.cal-pro-tip-box strong {
    color: #10b981;
}

.cal-pro-tip-box p {
    margin: 8px 0 0 0;
    color: #555;
}

/* Festival Detail Page - Info Cards */
.festival-info-card {
    padding: 30px;
}

.festival-info-card-primary {
    background: linear-gradient(135deg, #fff5f0 0%, #ffffff 100%);
}

.festival-info-card-secondary {
    background: linear-gradient(135deg, #fef9f5 0%, #ffffff 100%);
}

.festival-info-card-amber {
    background: linear-gradient(135deg, #fffbeb 0%, #ffffff 100%);
    border-left: 5px solid #f59e0b;
}

.festival-info-title-primary {
    color: #ff6725;
    font-size: 1.5rem;
    margin-bottom: 20px;
    font-weight: 700;
}

.festival-info-title-amber {
    color: #f59e0b;
    font-size: 1.5rem;
    margin-bottom: 20px;
    font-weight: 700;
}

.festival-info-text {
    font-size: 1.1rem;
    line-height: 1.8;
    color: #333;
}

.festival-info-text-sm {
    font-size: 1.05rem;
    line-height: 1.8;
    color: #333;
}

/* Panchangam Detail Boxes */
.panchang-detail-box {
    padding: 0.75rem;
    border-radius: 0.75rem;
    text-align: center;
    border: 2px solid;
}

.panchang-box-nakshatra {
    background: linear-gradient(135deg, #fef9f5 0%, #fef3c7 100%);
    border-color: #ff6725;
}

.panchang-box-thithi {
    background: linear-gradient(135deg, #f0fdfa 0%, #ccfbf1 100%);
    border-color: #14b8a6;
}

.panchang-box-sro {
    background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
    border-color: #3b82f6;
}

.panchang-box-bank {
    background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
    border-color: #f59e0b;
}

.panchang-box-label {
    font-weight: 600;
    font-size: 0.9rem;
    margin-bottom: 5px;
}

.panchang-box-label-nakshatra {
    color: #ff6725;
}

.panchang-box-label-thithi {
    color: #14b8a6;
}

.panchang-box-label-sro {
    color: #3b82f6;
}

.panchang-box-label-bank {
    color: #f59e0b;
}

.panchang-box-value {
    color: #333;
    font-weight: 700;
    font-size: 1.1rem;
}

.panchang-box-value-green {
    color: #10b981;
    font-weight: 700;
    font-size: 1.1rem;
}

.panchang-box-value-red {
    color: #ef4444;
    font-weight: 700;
    font-size: 1.1rem;
}

/* Festival Detail - Buttons */
.btn-primary-festival {
    background: #ff6725;
    color: white;
    border: none;
    padding: 12px 30px;
    border-radius: 10px;
    font-weight: 600;
}

.btn-primary-festival:hover {
    background: #e55515;
    color: white;
}

/* Festival Card Date Badge */
.festival-card-date-primary {
    background: linear-gradient(135deg, #ff6725 0%, #ff8f5c 100%);
}

/* Calendar Disclaimer Component */
.cal-disclaimer-container {
    padding: 20px;
    border-left: 4px solid #999;
}

.cal-disclaimer-title {
    font-size: 1rem;
    color: #666;
    margin-bottom: 10px;
}

.cal-disclaimer-text {
    font-size: 0.85rem;
    color: #666;
    margin-bottom: 10px;
}

.cal-disclaimer-list {
    font-size: 0.85rem;
    color: #666;
    margin-bottom: 0;
    padding-left: 20px;
}

.cal-disclaimer-footer {
    margin-top: 15px;
    font-size: 0.8rem;
    color: #999;
    text-align: center;
}

/* Article List Formatting */
.cal-article-nested-list {
    margin-top: 8px;
    padding-left: 20px;
}

/* Score Legend Colors */
.cal-score-legend-excellent {
    color: #059669;
}

.cal-score-legend-very-good {
    color: #10b981;
}

.cal-score-legend-good {
    color: #f59e0b;
}

.cal-score-legend-moderate {
    color: #ef4444;
}

/* Office Status Section */
.office-status-container {
    padding: 30px;
    background: linear-gradient(135deg, #fefefe 0%, #f9fafb 100%);
}

.office-status-title {
    color: #ff6725;
    font-size: 1.5rem;
    margin-bottom: 25px;
    font-weight: 700;
}

.office-status-card {
    padding: 1.5rem;
    border-radius: 1.25rem;
    position: relative;
    overflow: hidden;
}

.office-status-card-open {
    background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);
    border: 3px solid #10b981;
    box-shadow: 0 6px 20px rgba(16, 185, 129, 0.15);
}

.office-status-card-closed {
    background: linear-gradient(135deg, #fef2f2 0%, #fee2e2 100%);
    border: 3px solid #ef4444;
    box-shadow: 0 6px 20px rgba(239, 68, 68, 0.15);
}

.office-status-decoration {
    position: absolute;
    top: -15px;
    right: -15px;
    width: 80px;
    height: 80px;
    border-radius: 50%;
}

.office-status-decoration-open {
    background: rgba(16, 185, 129, 0.1);
}

.office-status-decoration-closed {
    background: rgba(239, 68, 68, 0.1);
}

.office-status-label {
    font-size: 0.95rem;
    font-weight: 600;
    margin-bottom: 12px;
    opacity: 0.8;
    position: relative;
}

.office-status-label-open {
    color: #10b981;
}

.office-status-label-closed {
    color: #ef4444;
}

.office-status-value {
    font-size: 2rem;
    font-weight: 700;
    position: relative;
}

.office-status-value-open {
    color: #10b981;
}

.office-status-value-closed {
    color: #ef4444;
}

/* Rasi Palangal Section */
.rasi-palangal-container {
    padding: 30px;
    background: linear-gradient(135deg, #fef9f5 0%, #ffffff 100%);
    position: relative;
    overflow: hidden;
}

.rasi-decoration-top {
    position: absolute;
    top: -50px;
    right: -50px;
    width: 200px;
    height: 200px;
    background: radial-gradient(circle, rgba(255, 103, 37, 0.05) 0%, transparent 70%);
    border-radius: 50%;
}

.rasi-decoration-bottom {
    position: absolute;
    bottom: -30px;
    left: -30px;
    width: 150px;
    height: 150px;
    background: radial-gradient(circle, rgba(139, 92, 246, 0.05) 0%, transparent 70%);
    border-radius: 50%;
}

.rasi-header {
    position: relative;
}

.rasi-title {
    color: #ff6725;
    font-size: 1.5rem;
    margin: 0;
    font-weight: 700;
}

.rasi-lang-btn {
    padding: 8px 16px;
    border: 2px solid #ff6725;
    font-weight: 600;
    transition: all 0.3s ease;
    font-size: 0.9rem;
}

.rasi-lang-btn-tamil {
    background: #ff6725;
    color: white;
    border-radius: 8px 0 0 8px;
}

.rasi-lang-btn-english {
    background: white;
    color: #ff6725;
    border-radius: 0;
}

.rasi-lang-btn-both {
    background: white;
    color: #ff6725;
    border-radius: 0 8px 8px 0;
}

.rasi-lang-btn:hover {
    background: #ff6725;
    color: white;
}

.rasi-content-relative {
    position: relative;
}

/* Rasi Card Styles */
.rasi-card {
    border-radius: 18px;
    padding: 25px 15px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    overflow: hidden;
    text-align: center;
    position: relative;
}

.rasi-card-bg-symbol {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 6rem;
    opacity: 0.08;
}

.rasi-card-content {
    position: relative;
    z-index: 1;
}

.rasi-zodiac-badge {
    display: inline-block;
    width: 50px;
    height: 50px;
    line-height: 50px;
    background: white;
    border-radius: 50%;
    font-size: 1.5rem;
    margin-bottom: 12px;
}

.rashi-name {
    font-weight: 700;
    margin-bottom: 12px;
    font-size: 1.1rem;
    text-shadow: 0 1px 2px rgba(0,0,0,0.05);
    transition: opacity 0.3s ease;
}

.rashi-prediction {
    display: inline-block;
    background: white;
    color: #333;
    padding: 8px 16px;
    border-radius: 12px;
    font-size: 0.95rem;
    font-weight: 600;
    box-shadow: 0 3px 10px rgba(0,0,0,0.08);
    transition: opacity 0.3s ease, transform 0.3s ease;
}

/* Similar Dates Section */
.similar-dates-container {
    padding: 25px;
}

.similar-dates-title {
    color: #ff6725;
    font-size: 1.3rem;
    margin-bottom: 20px;
}

.similar-date-card {
    border: 3px solid #f0f0f0;
    border-radius: 20px;
    padding: 25px 20px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    background: linear-gradient(135deg, #ffffff 0%, #fef9f5 100%);
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
    position: relative;
    overflow: hidden;
    min-height: 200px;
}

.similar-date-day-overlay {
    position: absolute;
    top: 10px;
    right: 10px;
    font-size: 2.5rem;
    opacity: 0.08;
    font-weight: 900;
}

.similar-date-badge {
    display: inline-block;
    background: linear-gradient(135deg, #ff6725 0%, #ff8f5c 100%);
    color: white;
    padding: 8px 16px;
    border-radius: 12px;
    font-weight: 700;
    font-size: 1.1rem;
    margin-bottom: 12px;
    box-shadow: 0 4px 12px rgba(255, 103, 37, 0.3);
    width: fit-content;
}

.similar-date-weekday {
    font-size: 0.95rem;
    color: #333;
    font-weight: 600;
    margin-bottom: 10px;
}

.similar-date-score-label {
    font-size: 0.9rem;
    color: #666;
    margin-bottom: 8px;
}

.similar-date-score-value {
    display: inline-block;
    color: white;
    padding: 6px 16px;
    border-radius: 20px;
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: 10px;
    box-shadow: 0 3px 10px rgba(0,0,0,0.15);
}

.similar-date-nakshatra {
    font-size: 0.8rem;
    color: #888;
    margin-top: 8px;
}
