/* =====================================================
   Astro Daily - Spiritual / Astrology Frontend Theme
   Calm cosmic palette: deep indigo, saffron, gold, teal
   Glassmorphism + soft animations
   ===================================================== */

@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;600;700&family=Poppins:wght@300;400;500;600;700&display=swap');

:root {
    --spiritual-bg: #0b0f24;
    --spiritual-bg-2: #1a103c;
    --spiritual-bg-3: #2c0b0e;
    --spiritual-saffron: #ff7e35;
    --spiritual-gold: #fbbf24;
    --spiritual-teal: #2dd4bf;
    --spiritual-purple: #8b5cf6;
    --spiritual-rose: #f43f5e;
    --spiritual-indigo: #6366f1;
    --spiritual-green: #22c55e;
    --spiritual-blue: #3b82f6;
    --spiritual-orange: #f97316;
    --spiritual-cyan: #06b6d4;
    --spiritual-pink: #ec4899;
    --spiritual-text: #f8fafc;
    --spiritual-muted: #94a3b8;
    --spiritual-glass: rgba(255, 255, 255, 0.08);
    --spiritual-glass-border: rgba(255, 255, 255, 0.15);
    --spiritual-card-bg: rgba(255, 255, 255, 0.95);
    --spiritual-shadow: 0 8px 32px rgba(0, 0, 0, 0.35);
    --spiritual-glow: 0 0 25px rgba(251, 191, 36, 0.25);
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
    font-family: 'Poppins', sans-serif;
    color: var(--spiritual-text);
    background: var(--spiritual-bg);
    min-height: 100vh;
    overflow-x: hidden;
    line-height: 1.6;
}

/* Animated gradient background layer */
#cosmos-canvas {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -2;
    pointer-events: none;
}

body::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    pointer-events: none;
    background:
        radial-gradient(circle at 20% 20%, rgba(139, 92, 246, 0.18) 0%, transparent 45%),
        radial-gradient(circle at 80% 80%, rgba(251, 191, 36, 0.12) 0%, transparent 40%),
        radial-gradient(circle at 50% 50%, rgba(45, 212, 191, 0.08) 0%, transparent 50%),
        linear-gradient(135deg, var(--spiritual-bg) 0%, var(--spiritual-bg-2) 50%, var(--spiritual-bg-3) 100%);
    animation: backgroundShift 20s ease-in-out infinite alternate;
}

@keyframes backgroundShift {
    0% { filter: hue-rotate(0deg); }
    100% { filter: hue-rotate(15deg); }
}

/* Typography */
h1, h2, h3, h4, h5, .display-5, .display-4, .display-3 {
    font-family: 'Cinzel', serif;
    font-weight: 600;
    letter-spacing: 0.3px;
}

.text-muted { color: var(--spiritual-muted) !important; }

.text-gradient {
    background: linear-gradient(90deg, var(--spiritual-gold), var(--spiritual-saffron), var(--spiritual-rose));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Navbar */
.navbar {
    background: rgba(15, 23, 42, 0.72) !important;
    backdrop-filter: blur(14px);
    border-bottom: 1px solid var(--spiritual-glass-border);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25);
    transition: all 0.3s ease;
}

.navbar-brand {
    font-family: 'Cinzel', serif;
    font-weight: 700;
    font-size: 1.55rem;
    color: var(--spiritual-gold) !important;
    text-shadow: 0 0 12px rgba(251, 191, 36, 0.35);
}

.navbar .nav-link {
    color: rgba(248, 250, 252, 0.92) !important;
    font-weight: 500;
    position: relative;
    transition: color 0.3s ease;
}

.navbar .nav-link:hover,
.navbar .nav-link:focus,
.navbar .nav-item.active .nav-link {
    color: var(--spiritual-gold) !important;
}

.navbar .nav-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 0;
    height: 2px;
    background: linear-gradient(90deg, var(--spiritual-gold), var(--spiritual-saffron));
    transition: all 0.3s ease;
    transform: translateX(-50%);
}

.navbar .nav-link:hover::after { width: 80%; }

.navbar .dropdown-menu {
    background: rgba(15, 23, 42, 0.92);
    backdrop-filter: blur(14px);
    border: 1px solid var(--spiritual-glass-border);
    border-radius: 0.75rem;
    box-shadow: var(--spiritual-shadow);
}

.navbar .dropdown-item {
    color: var(--spiritual-text);
    transition: all 0.2s ease;
}

.navbar .dropdown-item:hover {
    background: rgba(251, 191, 36, 0.12);
    color: var(--spiritual-gold);
}

.navbar .btn {
    border-radius: 2rem;
    font-weight: 600;
    letter-spacing: 0.3px;
}

.navbar .nav-link i {
    margin-right: 0.35rem;
    font-size: 1.05em;
    transition: transform 0.25s ease;
}

.navbar .nav-link:hover i {
    transform: scale(1.2) rotate(-8deg);
    color: var(--spiritual-gold);
}

.navbar .dropdown-item i {
    margin-right: 0.5rem;
    width: 1.25rem;
    text-align: center;
    display: inline-block;
    color: var(--spiritual-gold);
    transition: transform 0.25s ease;
}

.navbar .dropdown-item:hover i {
    transform: scale(1.25);
}

.navbar .dropdown-menu {
    animation: fadeInDown 0.35s ease forwards;
}

@keyframes fadeInDown {
    from { opacity: 0; transform: translateY(-10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* --- Desktop scrollable / carousel menu --- */
@media (min-width: 992px) {
    .navbar,
    .navbar-expand-lg {
        flex-wrap: nowrap !important;
    }

    .navbar-expand-lg .navbar-collapse {
        flex: 1 1 0% !important;
        min-width: 0 !important;
    }

    .navbar-inner {
        display: flex !important;
        align-items: center;
        width: 100%;
        gap: 50px;
    }

    .navbar-brand {
        margin-right: 50px;
        white-space: nowrap;
    }

    .nav-menu-wrapper {
        position: relative;
        flex: 1 1 0% !important;
        min-width: 0 !important;
        display: flex !important;
        align-items: center;
    }

    .navbar-right {
        flex: 0 0 auto !important;
        margin-left: 0 !important;
    }

    .menu-carousel {
        display: flex !important;
        flex: 1 1 0% !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: center;
        gap: 0.25rem;
        min-width: 0 !important;
        overflow-x: auto !important;
        overflow-y: visible;
        scrollbar-width: none;
        -ms-overflow-style: none;
        scroll-behavior: smooth;
        padding: 0 32px 300px 32px;
        margin-bottom: -300px;
        pointer-events: none;
    }

    .menu-carousel::-webkit-scrollbar {
        display: none;
    }

    .menu-carousel .nav-item,
    .menu-carousel .dropdown {
        flex: 0 0 auto;
        pointer-events: auto;
    }

    .menu-carousel .nav-link {
        white-space: nowrap;
        padding: 0.5rem 0.75rem;
    }

    .menu-carousel .dropdown-menu {
        pointer-events: auto;
        z-index: 1025;
    }

    .nav-scroll-btn {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        width: 28px;
        height: 42px;
        display: flex;
        align-items: center;
        justify-content: center;
        background: linear-gradient(90deg, rgba(15, 23, 42, 0.95), rgba(15, 23, 42, 0.6));
        border: 1px solid var(--spiritual-glass-border);
        border-radius: 0.5rem;
        color: #fff;
        z-index: 10;
        cursor: pointer;
        opacity: 0;
        transition: opacity 0.25s ease, transform 0.2s ease;
        pointer-events: auto;
    }

    .nav-menu-wrapper:hover .nav-scroll-btn,
    .nav-menu-wrapper:focus-within .nav-scroll-btn {
        opacity: 0.85;
    }

    .nav-scroll-btn:hover {
        background: rgba(251, 191, 36, 0.18);
        color: var(--spiritual-gold);
        opacity: 1 !important;
    }

    .nav-scroll-btn:disabled,
    .nav-scroll-btn.disabled {
        opacity: 0 !important;
        pointer-events: none;
    }

    .nav-scroll-btn.scroll-left { left: 0; }
    .nav-scroll-btn.scroll-right { right: 0; background: linear-gradient(-90deg, rgba(15, 23, 42, 0.95), rgba(15, 23, 42, 0.6)); }
}

/* Hide mobile menu scroll buttons */
@media (max-width: 991.98px) {
    .nav-scroll-btn { display: none !important; }
    .navbar-inner .menu-carousel { padding-bottom: 0; margin-bottom: 0; }
}

/* Hero */
.spiritual-hero {
    position: relative;
    padding: 6rem 0 4rem;
    margin-bottom: 2rem;
    border-radius: 0 0 3rem 3rem;
    overflow: hidden;
    text-align: center;
    background:
        linear-gradient(135deg, rgba(15, 23, 42, 0.85), rgba(68, 22, 70, 0.8)),
        url('https://images.unsplash.com/photo-1519681393784-d120267933ba?auto=format&fit=crop&w=1920&q=80');
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.4);
}

.spiritual-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 50% 30%, rgba(251, 191, 36, 0.15), transparent 55%);
    pointer-events: none;
}

.spiritual-hero h1 {
    font-size: 3rem;
    color: #fff;
    text-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
    margin-bottom: 1rem;
}

.spiritual-hero .lead {
    color: var(--spiritual-muted);
    font-size: 1.25rem;
    max-width: 700px;
    margin: 0 auto 2rem;
}

.spiritual-hero .hero-icon {
    font-size: 4rem;
    color: var(--spiritual-gold);
    text-shadow: 0 0 30px rgba(251, 191, 36, 0.5);
    animation: float 4s ease-in-out infinite;
}

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

.floating-symbols {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
}

.floating-symbols span {
    position: absolute;
    color: rgba(251, 191, 36, 0.22);
    font-size: 2rem;
    animation: floatSymbol 8s ease-in-out infinite;
}

@keyframes floatSymbol {
    0%, 100% { transform: translateY(0) rotate(0deg); opacity: 0.2; }
    50% { transform: translateY(-20px) rotate(12deg); opacity: 0.5; }
}

/* Buttons */
.btn {
    border-radius: 2rem;
    font-weight: 600;
    padding: 0.55rem 1.4rem;
    transition: all 0.3s ease;
    border: none;
}

.btn-primary, .btn-spiritual {
    background: linear-gradient(90deg, var(--spiritual-saffron), var(--spiritual-rose));
    color: #fff;
    box-shadow: 0 4px 15px rgba(244, 63, 94, 0.35);
}

.btn-primary:hover, .btn-spiritual:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(244, 63, 94, 0.5);
    color: #fff;
}

.btn-outline-primary {
    border: 2px solid var(--spiritual-saffron);
    color: var(--spiritual-saffron);
    background: transparent;
}

.btn-outline-primary:hover, .btn-outline-primary.active {
    background: linear-gradient(90deg, var(--spiritual-saffron), var(--spiritual-rose));
    color: #fff;
    border-color: transparent;
}

.btn-outline-light {
    border: 2px solid rgba(255, 255, 255, 0.6);
    color: #fff;
}

.btn-outline-light:hover {
    background: rgba(255, 255, 255, 0.12);
    color: var(--spiritual-gold);
}

.btn-info {
    background: linear-gradient(90deg, var(--spiritual-teal), #0ea5e9);
    color: #fff;
}

.btn-success {
    background: linear-gradient(90deg, #10b981, #059669);
    color: #fff;
}

.btn-warning {
    background: linear-gradient(90deg, var(--spiritual-gold), #f59e0b);
    color: #1e293b;
}

/* Cards (glass / light) */
.card {
    border: none;
    border-radius: 1.25rem;
    background: var(--spiritual-card-bg);
    box-shadow: var(--spiritual-shadow);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    color: #1e293b;
    overflow: hidden;
}

.card:hover {
    transform: translateY(-5px);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.35);
}

.card-header {
    background: linear-gradient(90deg, rgba(124, 58, 237, 0.12), rgba(244, 63, 94, 0.08));
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
    font-weight: 600;
    color: #1e293b;
}

.card-header.bg-primary {
    background: linear-gradient(90deg, #7c3aed, #a855f7) !important;
    color: #fff !important;
}

.card-header.bg-success {
    background: linear-gradient(90deg, #10b981, #059669) !important;
    color: #fff !important;
}

.card-header.bg-info {
    background: linear-gradient(90deg, #0ea5e9, #2dd4bf) !important;
    color: #fff !important;
}

.card-header.bg-danger {
    background: linear-gradient(90deg, #ef4444, #f43f5e) !important;
    color: #fff !important;
}

/* Rasi cards */
.rasi-card {
    background: rgba(255, 255, 255, 0.96);
    border-radius: 1.25rem;
    border: 1px solid rgba(251, 191, 36, 0.25);
    text-decoration: none;
    display: block;
    transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.rasi-card::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, rgba(251, 191, 36, 0.12) 0%, transparent 60%);
    opacity: 0;
    transition: opacity 0.35s ease;
}

.rasi-card:hover {
    transform: translateY(-8px) scale(1.02);
    box-shadow: var(--spiritual-glow), 0 20px 40px rgba(0, 0, 0, 0.25);
    border-color: var(--spiritual-gold);
}

.rasi-card:hover::before { opacity: 1; }

.rasi-symbol {
    font-family: 'Segoe UI Symbol', 'Noto Sans Symbols', 'Apple Symbols', 'Noto Color Emoji', sans-serif;
    color: var(--spiritual-saffron);
    text-shadow: 0 0 18px rgba(255, 126, 53, 0.35);
    display: inline-block;
}

.rasi-card .rasi-symbol {
    font-size: 3.2rem;
    transition: transform 0.4s ease;
}

.rasi-card:hover .rasi-symbol {
    transform: rotate(8deg) scale(1.15);
}

.rasi-card .card-title {
    font-family: 'Poppins', sans-serif;
    color: #1e293b;
    font-weight: 600;
    margin-top: 0.75rem;
}

.rasi-card .text-muted { color: #64748b !important; }

/* Module cards */
.module-card {
    background: rgba(255, 255, 255, 0.95);
    border-radius: 1.25rem;
    border: 1px solid rgba(124, 58, 237, 0.12);
    transition: all 0.3s ease;
    height: 100%;
    position: relative;
}

.module-card:hover,
.hover-lift:hover {
    transform: translateY(-6px);
    box-shadow: 0 16px 40px rgba(124, 58, 237, 0.18);
    border-color: var(--spiritual-purple);
}

.module-card .card-title { color: #1e293b; }

.module-card .badge { margin: 0.2rem; }
.module-card .card-body .btn { position: relative; z-index: 2; }
.module-card .badge-secondary {
    background: rgba(0, 0, 0, 0.05);
    color: #1e293b;
    border-color: rgba(0, 0, 0, 0.08);
}

.module-icon-circle {
    width: 88px;
    height: 88px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: radial-gradient(circle at 30% 30%, rgba(255,255,255,0.95), rgba(255,255,255,0.75));
    box-shadow: 0 6px 18px rgba(0,0,0,0.12), 0 0 0 3px rgba(255,255,255,0.5);
    font-size: 2.6rem;
    transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.module-icon-circle::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: currentColor;
    opacity: 0.12;
    z-index: 0;
}

.module-icon-circle i {
    position: relative;
    z-index: 1;
    filter: drop-shadow(0 2px 4px rgba(0,0,0,0.12));
}

.module-card:hover .module-icon-circle {
    transform: scale(1.1) rotate(6deg);
    box-shadow: 0 8px 24px rgba(0,0,0,0.15), 0 0 28px currentColor;
}

.module-card:hover .module-icon-circle::after {
    opacity: 0.22;
}

.icon-glow {
    font-size: 2.5rem;
    display: inline-block;
    filter: drop-shadow(0 0 12px currentColor);
    transition: transform 0.4s ease;
}

.home-feature-card:hover .icon-glow,
.rasi-card:hover .icon-glow {
    transform: scale(1.15) rotate(-4deg);
    filter: drop-shadow(0 0 18px currentColor);
}

.home-feature-card {
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(255,255,255,0.5);
    transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.home-feature-card:hover {
    transform: translateY(-8px) scale(1.02);
    box-shadow: 0 20px 40px rgba(0,0,0,0.25), var(--spiritual-glow);
    background: #fff;
}

/* Jumbotron */
.jumbotron {
    background: rgba(255, 255, 255, 0.06);
    backdrop-filter: blur(10px);
    border: 1px solid var(--spiritual-glass-border);
    border-radius: 1.5rem;
    color: #fff;
}

.jumbotron .display-5 { color: var(--spiritual-gold); }

/* Forms */
.form-control {
    border-radius: 0.75rem;
    border: 1px solid rgba(124, 58, 237, 0.25);
    background: rgba(255, 255, 255, 0.95);
    color: #1e293b;
    transition: all 0.25s ease;
}

.form-control:focus {
    border-color: var(--spiritual-purple);
    box-shadow: 0 0 0 0.2rem rgba(139, 92, 246, 0.25);
    background: #fff;
}

.form-control::placeholder { color: #94a3b8; }

select.form-control { color: #1e293b; }

label { color: var(--spiritual-text); font-weight: 500; }

/* Labels inside light cards should be dark so they are readable */
.card .card-body .form-group label,
.card .card-body label,
.card .card-body .form-control-label {
    color: #1e293b;
}

/* Badges */
.badge {
    border-radius: 2rem;
    padding: 0.45em 0.9em;
    font-weight: 600;
}

.badge-primary { background: linear-gradient(90deg, #7c3aed, #a855f7); }
.badge-success { background: linear-gradient(90deg, #10b981, #059669); }
.badge-info { background: linear-gradient(90deg, #0ea5e9, #2dd4bf); }
.badge-warning { background: linear-gradient(90deg, #fbbf24, #f59e0b); color: #1e293b; }
.badge-danger { background: linear-gradient(90deg, #ef4444, #f43f5e); }
.badge-secondary { background: rgba(255, 255, 255, 0.15); color: #fff; border: 1px solid rgba(255, 255, 255, 0.2); }
.badge-light { background: rgba(255, 255, 255, 0.9); color: #1e293b; }

/* Breadcrumb */
.breadcrumb {
    background: rgba(255, 255, 255, 0.07);
    border-radius: 0.75rem;
    padding: 0.75rem 1.25rem;
    border: 1px solid var(--spiritual-glass-border);
}

.breadcrumb-item a { color: var(--spiritual-gold); }
.breadcrumb-item.active { color: var(--spiritual-muted); }

/* Footer */
.footer-spiritual {
    background: rgba(15, 23, 42, 0.85);
    backdrop-filter: blur(10px);
    border-top: 1px solid var(--spiritual-glass-border);
    color: var(--spiritual-muted);
    padding: 2rem 0;
    margin-top: 3rem;
}

.footer-spiritual a { color: var(--spiritual-gold); }

/* Alerts */
.alert {
    border: none;
    border-radius: 1rem;
    backdrop-filter: blur(6px);
}

.alert-success { background: rgba(16, 185, 129, 0.18); color: #34d399; border: 1px solid rgba(16, 185, 129, 0.25); }
.alert-danger { background: rgba(239, 68, 68, 0.15); color: #f87171; border: 1px solid rgba(239, 68, 68, 0.25); }
.alert-info { background: rgba(14, 165, 233, 0.15); color: #38bdf8; border: 1px solid rgba(14, 165, 233, 0.25); }
.alert-warning { background: rgba(251, 191, 36, 0.15); color: #fbbf24; border: 1px solid rgba(251, 191, 36, 0.25); }

/* Scroll reveal */
.reveal {
    opacity: 0;
    transform: translateY(35px);
    transition: opacity 0.7s cubic-bezier(0.4, 0, 0.2, 1),
                transform 0.5s cubic-bezier(0.4, 0, 0.2, 1),
                box-shadow 0.3s ease;
}

.reveal.reveal-visible {
    opacity: 1;
    transform: translateY(0);
}

.reveal-scale {
    opacity: 0;
    transform: scale(0.92);
    transition: opacity 0.7s cubic-bezier(0.4, 0, 0.2, 1),
                transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.reveal-scale.reveal-visible { opacity: 1; transform: scale(1); }

/* Language carousel */
.lang-carousel {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    max-width: 100%;
    margin: 0 auto;
    padding: 0 0.5rem;
}

.lang-carousel-track {
    display: flex;
    gap: 1.25rem;
    overflow-x: auto;
    scroll-behavior: smooth;
    padding: 0.75rem 0.25rem;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    flex: 1 1 auto;
    justify-content: flex-start;
}

.lang-carousel-track::-webkit-scrollbar {
    display: none;
}

.lang-carousel-arrow {
    flex: 0 0 auto;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    border: 0;
    background: rgba(255, 255, 255, 0.15);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.2s, transform 0.2s;
}

.lang-carousel-arrow:hover {
    background: rgba(255, 255, 255, 0.3);
    transform: scale(1.08);
}

.lang-group {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    min-width: max-content;
}

.lang-country-header {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.85);
    background: rgba(0, 0, 0, 0.18);
    padding: 0.2rem 0.7rem;
    border-radius: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.lang-country-header .lang-flag {
    font-size: 0.95rem;
}

.lang-group-items {
    display: flex;
    gap: 0.5rem;
}

.lang-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    border-radius: 2rem;
    padding: 0.45rem 1rem;
    font-size: 0.88rem;
    font-weight: 500;
    white-space: nowrap;
    border-width: 1px;
}

.lang-chip-flag {
    font-size: 1.1rem;
    line-height: 1;
}

.lang-chip-label {
    display: inline-block;
    max-width: 120px;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: middle;
}

@media (max-width: 768px) {
    .lang-carousel {
        padding: 0;
    }
    .lang-carousel-arrow {
        display: none;
    }
    .lang-carousel-track {
        gap: 0.85rem;
        overflow-x: scroll;
    }
    .lang-chip {
        padding: 0.4rem 0.75rem;
        font-size: 0.8rem;
    }
}

/* Language dropdown with search */
.lang-dropdown {
    position: relative;
}

/* Keep the language-switcher row above later .reveal sections (e.g. rasi cards) */
.lang-switcher-row {
    position: relative;
    z-index: 100;
}

.lang-switcher-row .lang-dropdown-menu {
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
    margin-top: 0.35rem;
}

.lang-dropdown-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    border-radius: 2rem;
    padding: 0.55rem 1.1rem;
    font-weight: 500;
    border-width: 1px;
    min-width: 180px;
    justify-content: center;
}

.lang-dropdown-toggle::after {
    margin-left: 0.5rem;
}

.lang-current-flag {
    font-size: 1.15rem;
    line-height: 1;
}

.lang-current-code {
    opacity: 0.75;
    margin-left: 0.25rem;
}

.lang-dropdown-menu {
    min-width: 280px;
    max-width: 340px;
    padding: 0;
    border-radius: 1rem;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.08);
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
    overflow: hidden;
}

.lang-dropdown-scroll {
    max-height: 320px;
    overflow-y: auto;
    padding: 0.35rem 0;
}

.lang-search {
    background: rgba(0, 0, 0, 0.02);
    position: sticky;
    top: 0;
    z-index: 2;
}

.lang-search .input-group-text {
    border-color: rgba(0, 0, 0, 0.12);
    color: #6c757d;
}

.lang-search-input {
    border-color: rgba(0, 0, 0, 0.12);
    box-shadow: none !important;
}

.lang-search-input:focus {
    border-color: rgba(0, 0, 0, 0.2);
    background: #fff;
}

.lang-dropdown-item {
    display: flex;
    align-items: center;
    padding: 0.65rem 1rem;
    color: #333;
    border-bottom: 1px solid rgba(0, 0, 0, 0.03);
    transition: background 0.15s, color 0.15s;
}

.lang-dropdown-item:last-child {
    border-bottom: 0;
}

.lang-dropdown-item:hover,
.lang-dropdown-item:focus {
    background: rgba(108, 75, 179, 0.08);
    color: #4a2c7a;
    text-decoration: none;
}

.lang-dropdown-item.active,
.lang-dropdown-item:active {
    background: #6f42c1;
    color: #fff;
}

.lang-dropdown-item.active .lang-item-code {
    background: rgba(255, 255, 255, 0.25);
    color: #fff;
}

.lang-item-flag {
    font-size: 1.15rem;
    line-height: 1;
    flex-shrink: 0;
    width: 1.6rem;
    text-align: center;
}

.lang-item-label {
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.lang-item-code {
    flex-shrink: 0;
    font-size: 0.7rem;
    letter-spacing: 0.03em;
    padding: 0.25rem 0.45rem;
    border-radius: 0.5rem;
    background: #f0f0f0;
    color: #555;
    margin-left: 0.5rem;
}

@media (max-width: 576px) {
    .lang-dropdown-toggle {
        min-width: unset;
        width: 100%;
    }
    .lang-dropdown-menu {
        max-width: 95vw;
        left: 50% !important;
        right: auto !important;
        transform: translateX(-50%) !important;
    }
}

/* Lists inside cards */
.list-group-item {
    background: transparent;
    border-color: rgba(0, 0, 0, 0.05);
}

/* Ad slots */
.ad-slot {
    margin: 1.5rem 0;
    text-align: center;
    overflow: hidden;
    border-radius: 1rem;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid var(--spiritual-glass-border);
    padding: 0.75rem;
}

.ad-label {
    font-size: 0.7rem;
    color: var(--spiritual-muted);
    text-transform: uppercase;
    margin-bottom: 0.5rem;
    letter-spacing: 1px;
}

/* Special decorative elements */
.mandala-divider {
    width: 100%;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--spiritual-gold), var(--spiritual-saffron), var(--spiritual-gold), transparent);
    margin: 2.5rem 0;
    opacity: 0.5;
}

.icon-glow {
    filter: drop-shadow(0 0 8px rgba(251, 191, 36, 0.5));
}

/* Avoid double-nested Bootstrap containers when header already opens one */
.container > .container {
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
    margin-left: 0;
    margin-right: 0;
}

/* Responsive */
@media (max-width: 768px) {
    .spiritual-hero {
        padding: 4rem 0 3rem;
        border-radius: 0 0 2rem 2rem;
        background-attachment: scroll;
    }
    .spiritual-hero h1 { font-size: 2rem; }
    .spiritual-hero .lead { font-size: 1rem; }
    .rasi-card .rasi-symbol { font-size: 2.4rem; }
    .navbar .btn { padding: 0.35rem 0.8rem; font-size: 0.85rem; }
}

/* ---------------------------------------------------------------------------
 * Fun / game module result cards
 * --------------------------------------------------------------------------- */
.fun-result-card {
    background: linear-gradient(145deg, #fffdf5, #fff9e6);
    border-radius: 1.25rem;
    padding: 1.75rem;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08);
    text-align: center;
    position: relative;
    overflow: hidden;
}

.fun-result-card::before {
    content: '';
    position: absolute;
    top: -50px; right: -50px;
    width: 120px; height: 120px;
    background: radial-gradient(circle, rgba(251, 191, 36, 0.25) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
}

.fun-result-header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    margin-bottom: 1rem;
    position: relative;
    z-index: 2;
}

.fun-gift-badge {
    position: absolute;
    top: 12px;
    right: 12px;
    background: linear-gradient(135deg, #e91e63, #9c27b0);
    color: #fff;
    font-size: 0.72rem;
    font-weight: 700;
    padding: 0.35rem 0.75rem;
    border-radius: 2rem;
    box-shadow: 0 4px 10px rgba(233, 30, 99, 0.35);
    z-index: 3;
    animation: fun-bounce 1.4s ease-in-out infinite;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.gift-emoji {
    margin-right: 0.25rem;
}

.confetti-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    overflow: hidden;
    z-index: 1;
}

.confetti-piece {
    position: absolute;
    top: -12px;
    width: 8px;
    height: 8px;
    border-radius: 2px;
    opacity: 0.9;
    animation: confetti-fall 2.4s ease-out forwards;
}

@keyframes confetti-fall {
    0% { transform: translateY(0) rotate(0deg); opacity: 1; }
    100% { transform: translateY(280px) rotate(720deg); opacity: 0; }
}

.fun-result-emoji {
    font-size: 2.5rem;
    animation: fun-bounce 1.2s ease-in-out infinite;
}

@keyframes fun-bounce {
    0%, 100% { transform: translateY(0) scale(1); }
    50% { transform: translateY(-6px) scale(1.08); }
}

.fun-result-title {
    margin: 0;
    color: #3d2e1e;
    font-weight: 700;
}

.fun-result-summary {
    color: #6c5e4d;
    margin: 0;
    font-size: 0.95rem;
}

.fun-result-details {
    color: #5a4b3c;
    font-size: 1rem;
    margin-bottom: 1.25rem;
    line-height: 1.6;
}

.fun-section-title {
    font-size: 1.1rem;
    font-weight: 700;
    color: #3d2e1e;
    margin-bottom: 0.75rem;
}

/* FLAMES */
.flames-reveal {
    background: linear-gradient(135deg, #ff6b6b, #ff9f43);
    color: #fff;
    border-radius: 1rem;
    padding: 2rem 1rem;
    margin: 1rem 0;
    position: relative;
    box-shadow: 0 8px 20px rgba(255, 107, 107, 0.25);
}

.flames-letter {
    font-size: 5rem;
    font-weight: 800;
    line-height: 1;
    text-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
    margin-bottom: 0.5rem;
}

.flames-meaning {
    font-size: 1.75rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
}

.flames-names {
    opacity: 0.9;
    margin-bottom: 0;
    font-size: 1rem;
}

/* Compatibility meter */
.compatibility-meter {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    background: #fff;
    border-radius: 1rem;
    padding: 1.5rem;
    margin: 1rem 0;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.06);
    text-align: left;
}

.compatibility-score {
    font-size: 2.5rem;
    font-weight: 800;
    color: #e91e63;
    line-height: 1;
    flex-shrink: 0;
}

.compatibility-score small {
    font-size: 1rem;
    color: #9c8b76;
    font-weight: 600;
}

.compatibility-body {
    flex: 1;
}

.compatibility-status {
    font-size: 1.25rem;
    font-weight: 700;
    color: #3d2e1e;
    margin-bottom: 0.5rem;
}

.compatibility-progress {
    height: 12px;
    border-radius: 6px;
    background: #f1e7d6;
    overflow: hidden;
    margin-bottom: 0.5rem;
}

.compatibility-progress .progress-bar {
    background: linear-gradient(90deg, #ff9a9e, #fad0c4, #ff9a9e);
    background-size: 200% 100%;
    animation: love-shimmer 2s linear infinite;
    border-radius: 6px;
}

@keyframes love-shimmer {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

.compatibility-pair {
    color: #8c7b66;
    display: block;
}

/* Zodiac mini-meters */
.zodiac-meters {
    margin: 1rem 0;
    padding: 0 0.5rem;
}

.zodiac-meter {
    margin-bottom: 0.75rem;
}

.zodiac-meter:last-child {
    margin-bottom: 0;
}

/* Name generator */
.name-generator-result {
    margin-top: 1rem;
}

.name-badges {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.5rem;
}

.name-badge {
    display: inline-block;
    background: #fff;
    border: 2px solid #f0c040;
    color: #3d2e1e;
    border-radius: 2rem;
    padding: 0.45rem 1rem;
    font-weight: 600;
    font-size: 0.95rem;
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.06);
    transition: transform 0.15s ease;
}

.name-badge:hover {
    transform: translateY(-2px);
}

.name-groups {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.name-group {
    background: rgba(255, 255, 255, 0.5);
    border-radius: 1rem;
    padding: 1rem;
    border: 1px solid rgba(0, 0, 0, 0.05);
}

.name-group-title {
    font-size: 0.85rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #6f42c1;
    margin: 0 0 0.75rem 0.25rem;
}

.name-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
}

.name-card {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #fff 0%, #fff9e6 100%);
    border: 1.5px solid rgba(240, 192, 64, 0.6);
    color: #4a3b20;
    border-radius: 2rem;
    padding: 0.5rem 1.1rem;
    font-weight: 600;
    font-size: 0.95rem;
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.05);
    transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
    cursor: default;
}

.name-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 14px rgba(0, 0, 0, 0.1);
    border-color: #f0c040;
}

.name-count-note {
    text-align: center;
    font-size: 0.85rem;
    color: #6c757d;
    margin-top: 1rem;
    font-style: italic;
}

/* Fortune cookie */
.fortune-cookie {
    background: #fff8e7;
    border: 2px dashed #e0c080;
    border-radius: 1rem;
    padding: 1.5rem;
    margin: 1rem 0;
}

.fortune-cookie-shell {
    font-size: 3rem;
    margin-bottom: 0.75rem;
    animation: fun-bounce 1.5s ease-in-out infinite;
}

.fortune-message {
    font-style: italic;
    color: #5a4b3c;
    font-size: 1.1rem;
    line-height: 1.6;
}

.fortune-numbers {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.5rem;
    margin: 1rem 0;
}

.fortune-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 50%;
    background: #fff;
    color: #e91e63;
    font-weight: 700;
    border: 2px solid #e0c080;
    font-size: 0.95rem;
}

.fortune-extras {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px dashed #e0c080;
}

.fortune-extra {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    margin-bottom: 0.75rem;
}

.fortune-extra-label {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #8c7b66;
    margin-bottom: 0.25rem;
}

.fortune-extra-value {
    font-weight: 700;
    color: #3d2e1e;
    font-size: 1rem;
}

.fortune-advice {
    background: #fffdf5;
    border-radius: 0.75rem;
    padding: 1rem;
    font-size: 0.95rem;
    color: #5a4b3c;
    border: 1px solid #f0e0c0;
}

/* Recommendation */
.recommendation-reveal {
    background: linear-gradient(135deg, #a18cd1, #fbc2eb);
    color: #fff;
    border-radius: 1rem;
    padding: 1.5rem;
    margin: 1rem 0;
    font-size: 1.4rem;
    font-weight: 700;
    box-shadow: 0 8px 20px rgba(161, 140, 209, 0.25);
}

.recommendation-icon {
    font-size: 3rem;
    margin-bottom: 0.5rem;
}

/* Game outcome */
.game-outcome {
    background: linear-gradient(135deg, #4facfe, #00f2fe);
    color: #fff;
    border-radius: 1rem;
    padding: 1.5rem;
    margin: 1rem 0;
    font-size: 1.35rem;
    font-weight: 700;
    box-shadow: 0 8px 20px rgba(79, 172, 254, 0.25);
}

.bonus-gift {
    font-size: 0.85rem;
    font-weight: 600;
    margin-top: 0.75rem;
    padding: 0.4rem 0.9rem;
    background: rgba(255, 255, 255, 0.25);
    border-radius: 2rem;
    display: inline-block;
    color: #fff;
}

/* Quiz result */
.quiz-result {
    background: #fff;
    border-radius: 1rem;
    padding: 1.25rem;
    margin: 1rem 0;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.06);
    font-size: 1.1rem;
    color: #3d2e1e;
}

.quiz-result strong {
    color: #e91e63;
}

/* Color swatch */
.color-swatch-wrapper {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    background: #fff;
    border-radius: 1rem;
    padding: 0.75rem 1.25rem;
    margin: 1rem 0;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.color-swatch {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    border: 3px solid #fff;
    box-shadow: 0 0 0 2px #e9dcc3;
}

.color-name {
    font-weight: 700;
    color: #3d2e1e;
}

.fun-meta {
    text-align: left;
    background: rgba(255, 255, 255, 0.6);
    border-radius: 0.75rem;
    padding: 1rem;
    margin-top: 1rem;
}

.fun-meta dt {
    color: #6c5e4d;
    font-weight: 600;
}

.fun-meta dd {
    color: #3d2e1e;
}

/* Spinning wheel game */
.wheel-outer {
    padding: 1rem;
}

.wheel-wrapper {
    position: relative;
    width: 360px;
    height: 360px;
    margin: 0 auto 1.5rem;
    border-radius: 50%;
    box-shadow: 0 12px 35px rgba(0, 0, 0, 0.2);
    background: radial-gradient(circle at center, #fff8e7 0%, #f1e7d6 100%);
}

.wheel-canvas {
    width: 360px;
    height: 360px;
    border-radius: 50%;
    display: block;
}

.wheel-pointer {
    position: absolute;
    top: -18px;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 18px solid transparent;
    border-right: 18px solid transparent;
    border-top: 30px solid #d9534f;
    filter: drop-shadow(0 2px 4px rgba(0,0,0,0.3));
    z-index: 10;
}

.wheel-hub {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 44px;
    height: 44px;
    background: linear-gradient(135deg, #fff, #e9dcc3);
    border: 3px solid #c5a880;
    border-radius: 50%;
    box-shadow: 0 2px 8px rgba(0,0,0,0.25);
    z-index: 5;
}

.wheel-spin-btn {
    margin-top: 0.5rem;
}

.wheel-result {
    background: #fff;
    border-radius: 1rem;
    padding: 1rem 1.5rem;
    display: inline-block;
    box-shadow: 0 6px 18px rgba(0,0,0,0.08);
    min-width: 220px;
}

.wheel-result-label {
    font-size: 0.8rem;
    text-transform: uppercase;
    color: #8c7b66;
    letter-spacing: 0.05em;
}

.wheel-result-value {
    font-size: 1.75rem;
    font-weight: 700;
    color: #3d2e1e;
    margin: 0.25rem 0;
}

.wheel-result-text {
    font-size: 0.95rem;
    color: #6c5e4d;
}

@media (max-width: 768px) {
    .compatibility-meter { flex-direction: column; text-align: center; }
    .flames-letter { font-size: 3.5rem; }
    .recommendation-reveal, .game-outcome { font-size: 1.15rem; }
}

/* ---------------------------------------------------------------------------
 * Learning / Vedic / Sloka / Encyclopedia result cards
 * --------------------------------------------------------------------------- */
.learning-result-card {
    background: #fffdf8;
    border-radius: 1rem;
    padding: 1.5rem;
    box-shadow: 0 8px 24px rgba(61, 46, 30, 0.08);
    text-align: left;
    color: #3d2e1e;
}

.learning-result-card.type-sloka,
.learning-result-card.type-vedic {
    background: linear-gradient(145deg, #fff9f0, #fff2e2);
    border-left: 5px solid #c45a12;
}

.learning-result-header {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    margin-bottom: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid #e9dcc3;
}

.learning-result-icon {
    font-size: 2rem;
    flex-shrink: 0;
}

.learning-result-title {
    margin: 0;
    font-weight: 700;
    color: #3d2e1e;
}

.learning-result-summary {
    color: #6c5e4d;
    margin: 0.25rem 0 0;
    font-size: 0.95rem;
}

.learning-result-intro {
    font-size: 1rem;
    line-height: 1.7;
    color: #4a3d2f;
    margin-bottom: 1.25rem;
}

.learning-section-title {
    font-size: 1.1rem;
    font-weight: 700;
    color: #3d2e1e;
    margin-bottom: 0.75rem;
    border-bottom: 2px solid #e9dcc3;
    padding-bottom: 0.35rem;
    display: inline-block;
}

.learning-list {
    padding-left: 1.25rem;
    margin-bottom: 1.25rem;
}

.learning-list li {
    margin-bottom: 0.5rem;
    line-height: 1.6;
}

.learning-practice,
.learning-examples,
.learning-key-points,
.learning-related,
.learning-tips {
    margin-bottom: 1.25rem;
}

.learning-practice p,
.learning-examples p,
.learning-tips p {
    line-height: 1.7;
    margin-bottom: 0;
}

.learning-tips {
    display: grid;
    gap: 1rem;
}

.learning-tip {
    border-radius: 0.75rem;
    padding: 1rem;
    background: #fff;
    border-left: 4px solid #b8860b;
}

.learning-tip-warning {
    border-left-color: #dc3545;
    background: #fff5f5;
}

.learning-tip-next {
    border-left-color: #28a745;
    background: #f5fff7;
}

.learning-tip strong {
    display: block;
    margin-bottom: 0.25rem;
    color: #3d2e1e;
}

.learning-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.learning-tag {
    background: rgba(184, 134, 11, 0.12);
    color: #3d2e1e;
    border: 1px solid #b8860b;
    border-radius: 2rem;
    padding: 0.35rem 0.9rem;
    font-size: 0.85rem;
    font-weight: 600;
}

.learning-source {
    font-size: 0.9rem;
    color: #7a6b59;
    font-style: italic;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px dashed #e9dcc3;
}

.learning-meta {
    background: rgba(255, 255, 255, 0.7);
    border-radius: 0.75rem;
    padding: 1rem;
    margin-top: 1rem;
    font-size: 0.95rem;
}

.learning-meta dt {
    color: #6c5e4d;
    font-weight: 600;
}

.learning-meta dd {
    color: #3d2e1e;
}

/* Sloka block */
.sloka-block {
    background: #fff;
    border: 1px solid #e9dcc3;
    border-radius: 1rem;
    padding: 1.5rem;
    margin: 1.25rem 0;
    text-align: center;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}

.sloka-deity {
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #c45a12;
    font-weight: 700;
    margin-bottom: 0.75rem;
}

.sloka-text {
    font-size: 1.35rem;
    line-height: 1.8;
    color: #3d2e1e;
    margin-bottom: 1rem;
    font-family: 'Georgia', 'Noto Sans Devanagari', serif;
}

.sloka-transliteration {
    font-style: italic;
    color: #6c5e4d;
    margin-bottom: 1rem;
    font-size: 1.05rem;
}

/* DOB Palan premium module */
.dobp-view { padding: 0.5rem 0; }
.dobp-hero { background: linear-gradient(135deg, #1a0f2e 0%, #2d1b4e 100%); color: #fff; border-radius: 1.25rem; overflow: hidden; }
.dobp-hero .card-body { color: #fff; }
.dobp-hero h1, .dobp-hero .lead { color: #fff; }
.dobp-hero .text-muted { color: rgba(255,255,255,0.75) !important; }
.dobp-hero .badge-dobp { font-size: 0.85rem; padding: 0.5em 1em; }
.dobp-date-wheel { width: 150px; height: 150px; border-radius: 50%; background: conic-gradient(from 0deg, #ffd700, #ff6b6b, #4ecdc4, #45b7d1, #96c93d, #ffd700); display: flex; align-items: center; justify-content: center; box-shadow: 0 8px 32px rgba(0,0,0,0.3); }
.dobp-wheel-inner { width: 120px; height: 120px; border-radius: 50%; background: #1a0f2e; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.dobp-wheel-day { font-size: 2rem; font-weight: 700; line-height: 1; color: #fff; }
.dobp-wheel-month { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.1em; color: #ffd700; }
.dobp-wheel-year { font-size: 0.9rem; color: rgba(255,255,255,0.8); }
.dobp-number-card { transition: transform 0.2s; }
.dobp-number-card:hover { transform: translateY(-4px); }
.dobp-number { display: block; font-size: 2.5rem; font-weight: 800; background: linear-gradient(90deg, #7c3aed, #2563eb); -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
.dobp-number-compound { display: block; font-size: 0.8rem; color: #6c5e4d; margin-top: -0.25rem; }
.dobp-history-item { display: flex; gap: 1rem; padding: 0.75rem 0; border-bottom: 1px solid rgba(0,0,0,0.05); }
.dobp-history-year { min-width: 4rem; font-weight: 700; color: #7c3aed; }
.dobp-timeline { position: relative; padding-left: 1.5rem; border-left: 2px solid #e9dcc3; }
.dobp-timeline-item { position: relative; padding: 0.5rem 0 0.5rem 1.25rem; }
.dobp-timeline-dot { position: absolute; left: -0.55rem; top: 0.85rem; width: 0.7rem; height: 0.7rem; border-radius: 50%; background: #7c3aed; }
.dobp-timeline-year { font-weight: 700; color: #7c3aed; display: block; }
.dobp-scroll-list { max-height: 500px; overflow-y: auto; padding-right: 0.5rem; }
.dobp-person-card .card-body { position: relative; }
.dobp-person-card .dobp-history-year { position: absolute; top: 1rem; right: 1rem; font-size: 0.8rem; }
.dobp-year-events { max-height: 320px; overflow-y: auto; }
.badge-dobp { font-weight: 600; }

.sloka-meaning {
    background: #fff9f0;
    border-radius: 0.75rem;
    padding: 1rem;
    text-align: left;
}

.sloka-meaning strong {
    display: block;
    margin-bottom: 0.35rem;
    color: #c45a12;
}

.sloka-meaning p {
    margin-bottom: 0;
    color: #4a3d2f;
}

.sloka-source,
.sloka-audio-note {
    color: #7a6b59;
    font-size: 0.9rem;
    margin-top: 0.75rem;
    display: block;
}

@media (max-width: 768px) {
    .sloka-text { font-size: 1.1rem; }
    .learning-result-header { align-items: center; }
}

/* ---------------------------------------------------------------------------
 * Nadi Josiyam — ancient palm-leaf experience
 * --------------------------------------------------------------------------- */
.nadi-josiyam {
    --nadi-parchment: #f7f0e3;
    --nadi-parchment-dark: #e9dcc3;
    --nadi-ink: #3d2e1e;
    --nadi-gold: #b8860b;
    --nadi-saffron: #c45a12;
    color: var(--nadi-ink);
}

.nadi-josiyam .breadcrumb,
.nadi-josiyam h1,
.nadi-josiyam .lead {
    color: var(--nadi-parchment);
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
}

.nadi-josiyam .breadcrumb a,
.nadi-josiyam .breadcrumb-item.active {
    color: var(--nadi-parchment);
}

.nadi-lead {
    color: var(--nadi-parchment);
    font-style: italic;
    margin-bottom: 1.5rem;
}

.nadi-parchment {
    background: var(--nadi-parchment) url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23d8c8a8' fill-opacity='0.15'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
    border: 2px solid var(--nadi-parchment-dark);
    border-radius: 1rem;
    box-shadow: 0 12px 30px rgba(61, 46, 30, 0.15);
    padding: 2rem;
    position: relative;
    overflow: hidden;
}

.nadi-parchment::before {
    content: '';
    position: absolute;
    top: 0; right: 0; bottom: 0; left: 0;
    pointer-events: none;
    background: radial-gradient(circle at 20% 20%, rgba(255,255,255,0.4) 0%, transparent 60%);
}

.nadi-form-header {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.5rem;
    border-bottom: 1px dashed var(--nadi-parchment-dark);
    padding-bottom: 1rem;
}

.nadi-form-icon {
    font-size: 2.5rem;
    filter: drop-shadow(0 2px 4px rgba(0,0,0,0.1));
}

.nadi-form-header h4 {
    color: var(--nadi-ink);
    font-weight: 700;
}

.nadi-muted {
    color: #7a6b59;
}

.nadi-form .form-group label {
    font-weight: 600;
    color: var(--nadi-ink);
}

.nadi-form .form-control,
.nadi-form .custom-select {
    background: rgba(255,255,255,0.75);
    border: 1px solid var(--nadi-parchment-dark);
    color: var(--nadi-ink);
}

.nadi-form .form-control:focus {
    background: #fff;
    border-color: var(--nadi-gold);
    box-shadow: 0 0 0 0.2rem rgba(184, 134, 11, 0.2);
}

.nadi-upload-card {
    border: 2px dashed var(--nadi-gold);
    border-radius: 1rem;
    padding: 2rem;
    text-align: center;
    cursor: pointer;
    background: rgba(255,255,255,0.45);
    transition: all 0.2s ease;
    min-height: 220px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.nadi-upload-card:hover {
    background: rgba(255,255,255,0.75);
    border-color: var(--nadi-saffron);
    transform: translateY(-2px);
}

.nadi-upload-icon {
    font-size: 3rem;
    margin-bottom: 0.5rem;
}

.nadi-upload-text {
    display: block;
    font-weight: 700;
    color: var(--nadi-ink);
    margin-bottom: 0.25rem;
}

.nadi-palm-preview img {
    max-height: 140px;
    border: 4px solid #fff;
    box-shadow: 0 4px 12px rgba(0,0,0,0.12);
    margin-top: 1rem;
}

.btn-nadi {
    background: linear-gradient(135deg, var(--nadi-saffron), var(--nadi-gold));
    border: none;
    color: #fff;
    font-weight: 700;
    border-radius: 0.6rem;
    padding: 0.85rem 1.5rem;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.btn-nadi:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 18px rgba(196, 90, 18, 0.35);
    color: #fff;
}

.nadi-loader {
    display: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 280px;
    background: var(--nadi-parchment);
    border: 2px solid var(--nadi-parchment-dark);
    border-radius: 1rem;
    text-align: center;
    padding: 2rem;
}

.nadi-loader-leaf {
    font-size: 4rem;
    animation: nadi-pulse 1.2s ease-in-out infinite;
    margin-bottom: 1rem;
}

@keyframes nadi-pulse {
    0%, 100% { transform: scale(1); opacity: 0.8; }
    50% { transform: scale(1.15); opacity: 1; }
}

.nadi-loader-text {
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--nadi-ink);
    margin-bottom: 1.5rem;
    min-height: 2rem;
}

.nadi-loader-bar {
    width: 220px;
    height: 8px;
    background: var(--nadi-parchment-dark);
    border-radius: 4px;
    overflow: hidden;
}

.nadi-loader-progress {
    height: 100%;
    width: 100%;
    background: linear-gradient(90deg, var(--nadi-saffron), var(--nadi-gold));
    border-radius: 4px;
    animation: nadi-load 2s ease-in-out infinite;
}

@keyframes nadi-load {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(100%); }
}

.nadi-result-wrapper {
    animation: nadi-fade-in 0.8s ease forwards;
}

@keyframes nadi-fade-in {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

.nadi-hero-parchment {
    display: flex;
    gap: 1.5rem;
    align-items: center;
    background: var(--nadi-parchment);
    border: 2px solid var(--nadi-parchment-dark);
    border-radius: 1rem;
    padding: 2rem;
    box-shadow: 0 12px 30px rgba(61, 46, 30, 0.12);
    margin-bottom: 2rem;
    position: relative;
    overflow: hidden;
}

.nadi-leaf-stamp {
    flex-shrink: 0;
    width: 110px;
    height: 110px;
    border: 4px double var(--nadi-gold);
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,0.6);
}

.nadi-leaf-number {
    font-size: 2rem;
    font-weight: 800;
    color: var(--nadi-saffron);
    line-height: 1;
}

.nadi-leaf-label {
    color: var(--nadi-ink);
    font-weight: 600;
}

.nadi-hero-title {
    color: var(--nadi-ink);
    font-weight: 800;
    margin-bottom: 0.5rem;
}

.nadi-hero-meta {
    color: #6c5e4d;
    margin-bottom: 1rem;
    font-size: 0.95rem;
}

.nadi-hero-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.nadi-tag {
    background: rgba(184, 134, 11, 0.12);
    color: var(--nadi-ink);
    border: 1px solid var(--nadi-gold);
    border-radius: 2rem;
    padding: 0.35rem 0.9rem;
    font-size: 0.85rem;
    font-weight: 600;
}

.nadi-primary-kandam {
    display: flex;
    gap: 1.5rem;
    background: linear-gradient(135deg, #fffdf8, #f7f0e3);
    border-left: 6px solid var(--nadi-saffron);
    border-radius: 1rem;
    padding: 2rem;
    margin-bottom: 2rem;
    box-shadow: 0 8px 24px rgba(61, 46, 30, 0.1);
}

.nadi-primary-number {
    flex-shrink: 0;
    width: 80px;
    height: 80px;
    background: var(--nadi-saffron);
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.5rem;
    font-weight: 800;
    box-shadow: 0 4px 12px rgba(196, 90, 18, 0.3);
}

.nadi-primary-title {
    color: var(--nadi-ink);
    font-weight: 700;
    margin-bottom: 0.25rem;
}

.nadi-primary-theme {
    color: var(--nadi-gold);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-size: 0.9rem;
    margin-bottom: 0.75rem;
}

.nadi-primary-prediction {
    color: #4a3d2f;
    font-size: 1.05rem;
    line-height: 1.7;
    margin-bottom: 0;
}

.nadi-kandam-list-title {
    color: var(--nadi-ink);
    font-weight: 700;
    margin-bottom: 1rem;
    border-bottom: 2px solid var(--nadi-parchment-dark);
    padding-bottom: 0.5rem;
}

.nadi-kandam-list {
    display: grid;
    gap: 1rem;
}

.nadi-kandam-item {
    display: flex;
    gap: 1rem;
    background: var(--nadi-parchment);
    border: 1px solid var(--nadi-parchment-dark);
    border-radius: 0.75rem;
    padding: 1.25rem;
    transition: all 0.3s ease;
    opacity: 0;
    transform: translateY(10px);
}

.nadi-kandam-item.nadi-visible {
    opacity: 1;
    transform: translateY(0);
}

.nadi-kandam-item.active {
    border-left: 5px solid var(--nadi-saffron);
    background: #fffdf8;
}

.nadi-kandam-num {
    flex-shrink: 0;
    width: 46px;
    height: 46px;
    background: var(--nadi-gold);
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 1.1rem;
}

.nadi-kandam-info strong {
    color: var(--nadi-ink);
    display: block;
    margin-bottom: 0.35rem;
}

.nadi-kandam-text {
    color: #5c4f3f;
    margin-bottom: 0;
    line-height: 1.6;
}

.nadi-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

@media (max-width: 768px) {
    .nadi-hero-parchment,
    .nadi-primary-kandam {
        flex-direction: column;
        text-align: center;
        align-items: center;
    }
    .nadi-leaf-stamp {
        width: 90px; height: 90px;
    }
    .nadi-upload-card {
        min-height: 180px;
        margin-top: 1rem;
    }
}

.bg-nadi-gold { background-color: var(--nadi-gold) !important; }
.bg-nadi-saffron { background-color: var(--nadi-saffron) !important; }
.text-nadi-saffron { color: var(--nadi-saffron) !important; }
.text-nadi-gold { color: var(--nadi-gold) !important; }
.border-nadi-gold { border-color: var(--nadi-gold) !important; }
.border-nadi-saffron { border-color: var(--nadi-saffron) !important; }

.nadi-emblem-leaf { font-size: 3rem; display: block; }
.nadi-emblem-script { font-size: 1.4rem; font-weight: 800; color: var(--nadi-saffron); letter-spacing: 0.1em; }
.nadi-leaf-emblem { width: 150px; height: 150px; border-radius: 50%; background: var(--nadi-parchment); border: 4px double var(--nadi-gold); display: flex; flex-direction: column; align-items: center; justify-content: center; margin: 0 auto; }

.nadi-transparency-alert { background: rgba(184,134,11,0.08); border-left: 4px solid var(--nadi-gold); }
.nadi-transparency-alert i { margin-right: 0.5rem; }

.nadi-step { display: flex; gap: 1rem; padding: 0.75rem 0; border-bottom: 1px dashed var(--nadi-parchment-dark); }
.nadi-step:last-child { border-bottom: none; }
.nadi-step-num { width: 32px; height: 32px; border-radius: 50%; background: var(--nadi-gold); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 700; flex-shrink: 0; }

.nadi-source-dot { width: 14px; height: 14px; border-radius: 50%; display: inline-block; margin-bottom: 0.5rem; }
.border-nadi-gold { border: 1px solid var(--nadi-gold) !important; }
.border-muted { border: 1px solid #e0d8c8 !important; }

.nadi-timeline { position: relative; padding-left: 1.5rem; border-left: 2px solid var(--nadi-parchment-dark); }
.nadi-timeline-item { position: relative; padding: 0.6rem 0 0.6rem 1.25rem; }
.nadi-timeline-dot { position: absolute; left: -0.55rem; top: 1rem; width: 0.7rem; height: 0.7rem; border-radius: 50%; background: var(--nadi-gold); }
.nadi-timeline-year { font-weight: 700; color: var(--nadi-saffron); display: block; }

.nadi-kandam-item { cursor: pointer; transition: transform 0.2s; }
.nadi-kandam-item:hover { transform: translateY(-4px); }
.nadi-kandam-item.active { background: #fffdf8; border: 1px solid var(--nadi-saffron); }
.nadi-kandam-item .card-body { position: relative; }

.nadi-theme-card.active { border: 1px solid var(--nadi-saffron); background: #fffdf8; }
.nadi-story-card { padding: 1rem; background: #fffdf8; border-left: 4px solid var(--nadi-gold); border-radius: 0.5rem; }
.nadi-term-card { background: var(--nadi-parchment); border: 1px solid var(--nadi-parchment-dark); }

.nadi-table th { background: var(--nadi-parchment); color: var(--nadi-ink); }
.nadi-table td { vertical-align: top; }

.nadi-loader-steps { max-width: 90%; text-align: center; }

/* Body Palan modules (Palli Vilum, Macha Sastram etc.) */
.body-map {
    width: 100%;
    max-width: 260px;
    height: auto;
    display: block;
    margin: 0 auto;
    filter: drop-shadow(0 6px 16px rgba(0, 0, 0, 0.12));
}

.body-part-dot {
    fill: rgba(251, 191, 36, 0.55);
    stroke: rgba(255, 255, 255, 0.8);
    stroke-width: 2;
    cursor: pointer;
    transition: fill 0.2s, transform 0.2s, r 0.2s;
    pointer-events: all;
}

.body-part-dot:hover,
.body-part-dot.active {
    fill: rgba(233, 30, 99, 0.8);
    stroke: #fff;
    stroke-width: 3;
}

.body-part-dot.active {
    animation: pulse-dot 1.4s infinite;
}

@keyframes pulse-dot {
    0% { stroke-width: 3; }
    50% { stroke-width: 6; }
    100% { stroke-width: 3; }
}

.selected-part-label {
    font-weight: 600;
    color: #3d2e1e;
    min-height: 1.5em;
}

.three-body-view {
    width: 100%;
    height: 420px;
    border-radius: 1rem;
    background: radial-gradient(circle at center, #241450 0%, #0d0820 100%);
    position: relative;
    overflow: hidden;
}

.three-body-view canvas {
    width: 100%;
    height: 100%;
    display: block;
    border-radius: 1rem;
    outline: none;
    touch-action: none;
}

.body-part-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    justify-content: center;
}

.body-part-chip {
    border-radius: 2rem;
    font-size: 0.75rem;
    padding: 0.3rem 0.75rem;
    color: #fff;
    border-color: rgba(255, 255, 255, 0.4);
}

.body-part-chip:hover,
.body-part-chip.btn-primary {
    background: #e91e63;
    border-color: #e91e63;
}

/* Mystic animated result cards for Section 97 World Divination */
.mystic-result {
    position: relative;
    background: linear-gradient(135deg, #1a0f3c 0%, #2d1b69 50%, #1a0f3c 100%);
    color: #fff;
    overflow: hidden;
    border: 0;
    box-shadow: 0 0 40px rgba(139, 92, 246, 0.35), 0 8px 32px rgba(0, 0, 0, 0.3);
    animation: mystic-pulse 4s ease-in-out infinite;
}

.mystic-result::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: conic-gradient(from 0deg, transparent 0%, rgba(255, 255, 255, 0.08) 25%, transparent 50%, rgba(233, 30, 99, 0.12) 75%, transparent 100%);
    animation: mystic-rotate 8s linear infinite;
    pointer-events: none;
}

.mystic-result .fun-result-header,
.mystic-result .fun-result-title,
.mystic-result .fun-result-summary,
.mystic-result .fun-result-details,
.mystic-result .fun-meta {
    position: relative;
    z-index: 1;
}

.mystic-result .fun-result-emoji {
    filter: drop-shadow(0 0 12px rgba(251, 191, 36, 0.8));
    animation: mystic-float 3s ease-in-out infinite;
}

@keyframes mystic-rotate {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

@keyframes mystic-pulse {
    0%, 100% { box-shadow: 0 0 40px rgba(139, 92, 246, 0.35), 0 8px 32px rgba(0, 0, 0, 0.3); }
    50% { box-shadow: 0 0 70px rgba(233, 30, 99, 0.45), 0 12px 40px rgba(0, 0, 0, 0.35); }
}

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

/* Jathagam print styles */
.jathagam-table {
    background: #fff;
}
@media print {
    body, .card, .jathagam-table {
        background: #fff !important;
        color: #000 !important;
    }
    .jathagam-table th {
        background: #333 !important;
        color: #fff !important;
    }
    .jathagam-table .badge {
        border: 1px solid #999;
    }
    header, footer, .btn, .breadcrumb, .mandala-divider, .card-header form, .module-form {
        display: none !important;
    }
    .reveal, .card-body {
        display: block !important;
        width: 100% !important;
    }
    .card {
        border: none !important;
        box-shadow: none !important;
    }
}


/* Lords table personalization */
.personalized-result-card {
    background: linear-gradient(135deg, rgba(251, 191, 36, 0.12), rgba(124, 58, 237, 0.08));
    border: 1px solid rgba(251, 191, 36, 0.35);
    border-radius: 1rem;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}
.personalized-result-card .card-title {
    color: var(--spiritual-gold);
    font-weight: 600;
}
.table-highlight-row {
    background-color: rgba(251, 191, 36, 0.18) !important;
    border-left: 4px solid var(--spiritual-gold);
}
.badge-gold {
    background: var(--spiritual-gold);
    color: #1e293b;
}
.lords-table th {
    background: #333;
    color: #fff;
}

/* Jathagam interactive chart wheel */
.jathagam-wheel {
    max-width: 100%;
    height: auto;
    font-family: inherit;
}
.jathagam-wheel .jwheel-segment {
    transition: fill 0.15s ease;
    cursor: pointer;
}
.jathagam-wheel .jwheel-segment-label {
    pointer-events: none;
}
.jathagam-wheel .jwheel-planet {
    cursor: pointer;
    transition: transform 0.15s ease;
}
.jathagam-wheel .jwheel-planet:hover {
    stroke: #ffd700;
    stroke-width: 2;
}
.jwheel-tooltip {
    white-space: nowrap;
}

/* Mystic / divination card-flip reveal */
.mystic-flip-scene {
    perspective: 1000px;
    width: 100%;
    max-width: 520px;
    margin: 0 auto;
    overflow: hidden;
}
.mystic-flip-card {
    position: relative;
    width: 100%;
    min-height: 260px;
    transform-style: preserve-3d;
    transition: transform 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    cursor: pointer;
}
.mystic-flip-card.is-flipped {
    transform: rotateY(180deg);
}
.mystic-flip-front,
.mystic-flip-back {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    min-height: 260px;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    border-radius: 1rem;
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
}
.mystic-flip-front {
    background: linear-gradient(135deg, #2c1a4d, #5e3a7e);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
    transform: rotateY(0deg);
}
.mystic-flip-back {
    transform: rotateY(180deg);
    background: #fff;
    overflow: visible;
}
.mystic-card-face {
    text-align: center;
    padding: 2rem;
    position: relative;
    width: 100%;
}
.mystic-card-pattern {
    position: absolute;
    inset: 1rem;
    border: 2px dashed rgba(255,255,255,0.25);
    border-radius: 0.75rem;
    pointer-events: none;
}
.mystic-card-icon {
    font-size: 3rem;
    color: var(--spiritual-gold);
    margin-bottom: 1rem;
    display: block;
}
.mystic-card-title {
    font-size: 1.25rem;
    font-weight: 600;
    margin-bottom: 0.5rem;
}
.mystic-card-hint {
    font-size: 0.9rem;
    opacity: 0.8;
    margin-bottom: 0;
}

/* Peyarchi / transit zodiac-wheel timeline */
.peyarchi-wheel {
    max-width: 100%;
    height: auto;
}
.peyarchi-timeline {
    gap: 0.5rem;
}
.peyarchi-step {
    flex: 0 0 90px;
    padding: 0.5rem 0.25rem;
    border: 1px solid #e2d9c8;
    border-radius: 0.5rem;
    text-align: center;
    background: #fff;
}
.peyarchi-step.active {
    background: rgba(23, 162, 184, 0.12);
    border-color: #17a2b8;
    font-weight: 600;
}
.peyarchi-step-sign {
    font-size: 0.9rem;
    color: #5a4f3f;
}
.peyarchi-step-dates {
    font-size: 0.75rem;
}

/* Vastu 2D floor-plan grid */
.vastu-floor-plan {
    max-width: 100%;
    height: auto;
}
.vastu-floor-plan .vastu-zone {
    fill: #f8f9fa;
    stroke: #d4c5a9;
    stroke-width: 2;
    transition: all 0.15s ease;
    cursor: pointer;
}
.vastu-floor-plan .vastu-zone.hover,
.vastu-floor-plan .vastu-zone:hover {
    stroke: #5e3a7e;
    stroke-width: 3;
    filter: brightness(0.98);
}
.vastu-floor-plan .vastu-zone.good {
    fill: #d4edda;
    stroke: #28a745;
}
.vastu-floor-plan .vastu-zone.caution {
    fill: #fff3cd;
    stroke: #ffc107;
}
.vastu-floor-plan .vastu-zone.bad {
    fill: #f8d7da;
    stroke: #dc3545;
}
.vastu-floor-plan .vastu-zone.unknown {
    fill: #e9ecef;
    stroke: #adb5bd;
}

/* AR Constellation map */
.ar-constellation-result {
    background: linear-gradient(135deg, #05081a, #0b1026);
    border-radius: 1rem;
    padding: 1rem;
    border: 1px solid rgba(110, 195, 255, 0.2);
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.35);
    display: inline-block;
    width: 100%;
    max-width: 760px;
}

.ar-constellation-result .small {
    color: #a8d8ff !important;
    opacity: 0.9;
}

.ar-constellation-svg {
    width: 100%;
    height: auto;
    border-radius: 0.75rem;
    display: block;
    margin: 0 auto;
}

/* ===== Complete Jathagam Premium ===== */
.complete-jathagam-view {
    --jg-gold: #fbbf24;
    --jg-indigo: #4f46e5;
    --jg-saffron: #ff7e35;
    --jg-rose: #f43f5e;
    --jg-teal: #2dd4bf;
    --jg-cream: #fdfbf6;
    --jg-ink: #1e1b4b;
}

.complete-jathagam-view .jathagam-hero {
    position: relative;
}

.complete-jathagam-view .jathagam-title {
    font-family: 'Cinzel', serif;
    font-weight: 700;
    color: var(--jg-gold);
    text-shadow: 0 2px 12px rgba(251, 191, 36, 0.2);
    letter-spacing: 0.5px;
}

.complete-jathagam-view .jathagam-form-card {
    background: linear-gradient(145deg, #1a103c, #0b0f24);
    border: 1px solid rgba(251, 191, 36, 0.15);
    color: #f8f9fa;
}

.complete-jathagam-view .jathagam-form-card label {
    color: #d1d5db;
    font-size: 0.9rem;
}

.complete-jathagam-view .jathagam-form-card .form-control {
    background: rgba(15, 23, 42, 0.7);
    border: 1px solid rgba(251, 191, 36, 0.25);
    color: #f8f9fa;
}

.complete-jathagam-view .jathagam-submit-btn {
    background: linear-gradient(90deg, var(--jg-gold), var(--jg-saffron));
    border: none;
    font-weight: 600;
    letter-spacing: 0.5px;
}

.complete-jathagam-view .jathagam-summary-card {
    background: linear-gradient(135deg, #1e1b4b, #312e81);
    color: #f8f9fa;
    border: 1px solid rgba(251, 191, 36, 0.2);
}

.complete-jathagam-view .jathagam-summary-text {
    background: rgba(255, 255, 255, 0.08) !important;
    border: 1px solid rgba(251, 191, 36, 0.15) !important;
    color: #f3f4f6;
}

.complete-jathagam-view .jathagam-toolbar .btn {
    background: rgba(30, 27, 75, 0.85);
    border-color: rgba(251, 191, 36, 0.3);
    color: #f8f9fa;
}

.complete-jathagam-view .jathagam-toolbar .btn.active,
.complete-jathagam-view .jathagam-toolbar .btn:hover {
    background: var(--jg-gold);
    color: #1e1b4b;
    border-color: var(--jg-gold);
}

.complete-jathagam-view .jathagam-chart-wrap,
.complete-jathagam-view .jathagam-divisional,
.complete-jathagam-view .jathagam-planet-table,
.complete-jathagam-view .jathagam-house-table,
.complete-jathagam-view .jathagam-dasa,
.complete-jathagam-view .jathagam-nakshatra,
.complete-jathagam-view .jathagam-yogas,
.complete-jathagam-view .jathagam-themes,
.complete-jathagam-view .jathagam-remedies,
.complete-jathagam-view .jathagam-faq {
    background: #0f172a;
    border: 1px solid rgba(251, 191, 36, 0.12);
    color: #f8f9fa;
    overflow: hidden;
}

.complete-jathagam-view .jathagam-chart-header {
    background: linear-gradient(90deg, #312e81, #1e1b4b);
    color: #f8f9fa;
    border-bottom: 1px solid rgba(251, 191, 36, 0.15);
}

.complete-jathagam-view .jathagam-chart-header .nav-tabs .nav-link {
    color: #cbd5e1;
    border: none;
    background: transparent;
}

.complete-jathagam-view .jathagam-chart-header .nav-tabs .nav-link.active {
    color: var(--jg-gold);
    background: rgba(255, 255, 255, 0.06);
    border-bottom: 2px solid var(--jg-gold);
}

/* 3D chart scene */
.complete-jathagam-view .jathagam-3d-scene {
    perspective: 1200px;
    perspective-origin: center;
    min-height: 520px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: radial-gradient(circle at 50% 30%, #1e1b4b, #0b0f24 70%);
    position: relative;
    overflow: hidden;
    cursor: grab;
}

.complete-jathagam-view .jathagam-3d-scene:active {
    cursor: grabbing;
}

.complete-jathagam-view .jathagam-3d-grid {
    display: grid;
    grid-template-columns: repeat(4, 110px);
    grid-template-rows: repeat(4, 110px);
    gap: 8px;
    transform-style: preserve-3d;
    transform: perspective(1200px) rotateX(var(--rx, 20deg)) rotateY(var(--ry, -15deg));
    transition: transform 0.1s linear;
    position: relative;
}

.complete-jathagam-view .jathagam-cell {
    transform-style: preserve-3d;
    position: relative;
}

.complete-jathagam-view .jathagam-cell-inner {
    width: 100%;
    height: 100%;
    background: linear-gradient(145deg, #f8f5ef, #fff8e1);
    border: 1px solid #7d6e55;
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.6);
    transform: translateZ(18px);
    padding: 8px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    cursor: pointer;
    position: relative;
    overflow: hidden;
}

.complete-jathagam-view .jathagam-cell-inner:hover {
    transform: translateZ(32px) scale(1.03);
    box-shadow: 0 12px 30px rgba(251, 191, 36, 0.18);
    border-color: var(--jg-gold);
}

.complete-jathagam-view .jathagam-cell-lagna .jathagam-cell-inner {
    background: linear-gradient(145deg, #fff8e1, #ffecb3);
    border-color: #8b0000;
    box-shadow: 0 8px 24px rgba(139, 0, 0, 0.2);
}

.complete-jathagam-view .jathagam-cell-meta {
    display: flex;
    justify-content: space-between;
    font-size: 0.72rem;
    line-height: 1.1;
    color: #5a4a3a;
    font-weight: 700;
}

.complete-jathagam-view .jathagam-sign-name {
    max-width: 70%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.complete-jathagam-view .jathagam-house-num {
    color: #9e8e74;
    font-weight: 600;
}

.complete-jathagam-view .jathagam-asc-mark {
    position: absolute;
    right: 8px;
    bottom: 8px;
    color: #8b0000;
    font-size: 0.65rem;
    font-weight: bold;
}

.complete-jathagam-view .jathagam-planets {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    justify-content: center;
    margin-top: auto;
}

.complete-jathagam-view .jathagam-planet-badge {
    font-size: 0.65rem;
    font-weight: 700;
    color: #1e1b4b;
    background: linear-gradient(135deg, #fbbf24, #f59e0b);
    border-radius: 50%;
    width: 22px;
    height: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transform: translateZ(8px);
    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
    cursor: pointer;
}

.complete-jathagam-view .jathagam-planet-badge.retro {
    background: linear-gradient(135deg, #f43f5e, #e11d48);
    color: #fff;
}

.complete-jathagam-view .jathagam-2d-scene {
    background: #fdfbf6;
    padding: 1.5rem;
}

/* Info panel */
.complete-jathagam-view .jathagam-info-panel {
    position: absolute;
    top: 1rem;
    right: 1rem;
    width: 320px;
    max-width: calc(100% - 2rem);
    background: rgba(15, 23, 42, 0.96);
    border: 1px solid rgba(251, 191, 36, 0.25);
    border-radius: 12px;
    box-shadow: 0 16px 40px rgba(0,0,0,0.45);
    z-index: 100;
    color: #f8f9fa;
    padding: 1rem;
}

.complete-jathagam-view .jathagam-info-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid rgba(251, 191, 36, 0.2);
    padding-bottom: 0.5rem;
    margin-bottom: 0.75rem;
}

.complete-jathagam-view .jathagam-info-title {
    color: var(--jg-gold);
    margin: 0;
    font-size: 1.1rem;
    font-weight: 700;
}

.complete-jathagam-view .jathagam-info-close {
    color: #f8f9fa;
    background: none;
    border: none;
    font-size: 1.5rem;
    line-height: 1;
}

.complete-jathagam-view .jathagam-info-body {
    font-size: 0.9rem;
    line-height: 1.5;
    max-height: 320px;
    overflow-y: auto;
}

/* Tables and filters */
.complete-jathagam-view .jathagam-filter {
    width: 220px;
    background: #1e1b4b;
    border: 1px solid rgba(251, 191, 36, 0.25);
    color: #f8f9fa;
}

.complete-jathagam-view .table {
    color: #f8f9fa;
    background: #0f172a;
}

.complete-jathagam-view .table th {
    background: #1e1b4b;
    color: var(--jg-gold);
    cursor: pointer;
    user-select: none;
}

.complete-jathagam-view .table th:hover {
    background: #312e81;
}

.complete-jathagam-view .table td,
.complete-jathagam-view .table th {
    border-color: rgba(251, 191, 36, 0.1);
    vertical-align: middle;
}

.complete-jathagam-view .table-hover tbody tr:hover {
    background: rgba(251, 191, 36, 0.06);
}

.complete-jathagam-view .badge-light {
    color: #1e1b4b;
}

/* Theme and remedy cards */
.complete-jathagam-view .jathagam-theme-card,
.complete-jathagam-view .jathagam-remedies .border {
    background: rgba(255, 255, 255, 0.04);
    border-color: rgba(251, 191, 36, 0.15) !important;
    color: #f8f9fa;
}

.complete-jathagam-view .jathagam-theme-card h6 {
    color: var(--jg-gold);
}

.complete-jathagam-view .jathagam-why-btn {
    color: var(--jg-teal);
}

/* Progress */
.complete-jathagam-view .jathagam-dasa-progress {
    background: #1e1b4b;
}

.complete-jathagam-view .jathagam-dasa-progress .progress-bar {
    background: linear-gradient(90deg, var(--jg-gold), var(--jg-saffron));
}

/* Print */
@media print {
    .complete-jathagam-view .jathagam-form-card,
    .complete-jathagam-view .jathagam-toolbar,
    .complete-jathagam-view .jathagam-3d-scene,
    .complete-jathagam-view .jathagam-divisional,
    .complete-jathagam-view .d-print-none {
        display: none !important;
    }
    .complete-jathagam-view .jathagam-2d-scene,
    .complete-jathagam-view .jathagam-print-only {
        display: block !important;
    }
    .complete-jathagam-view .jathagam-print-only svg {
        max-width: 100%;
        height: auto;
    }
}

/* Mobile */
@media (max-width: 767px) {
    .complete-jathagam-view .jathagam-3d-grid {
        grid-template-columns: repeat(4, 70px);
        grid-template-rows: repeat(4, 70px);
        gap: 4px;
    }
    .complete-jathagam-view .jathagam-cell-inner {
        padding: 4px;
    }
    .complete-jathagam-view .jathagam-cell-meta {
        font-size: 0.55rem;
    }
    .complete-jathagam-view .jathagam-planet-badge {
        width: 16px;
        height: 16px;
        font-size: 0.5rem;
    }
}

/* =====================================================
   Pancha Pakshi Shastra premium module styles
   ===================================================== */

.pancha-pakshi-shastra-module {}

.pp-hero { position: relative; }
.pp-orb {
    width: 120px;
    height: 120px;
    margin: 0 auto;
    border-radius: 50%;
    background: radial-gradient(circle at 30% 30%, rgba(255,255,255,0.25), rgba(0,0,0,0.1));
    box-shadow: 0 0 40px var(--spiritual-gold), inset 0 0 30px rgba(255,255,255,0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    animation: ppFloat 6s ease-in-out infinite;
}
.pp-orb-emoji { font-size: 3.5rem; }
@keyframes ppFloat {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-8px); }
}

.pp-card,
.pp-bird-card,
.pp-now-card,
.pp-best-card,
.pp-timeline-card,
.pp-birds-ref,
.pp-learn-card,
.pp-compare-card {
    border: 1px solid var(--spiritual-glass-border);
    background: var(--spiritual-card-bg);
    color: #212529;
}

.pp-card .card-header,
.pp-timeline-card .card-header,
.pp-birds-ref .card-header,
.pp-learn-card .card-header,
.pp-compare-card .card-header,
.pp-history-card .card-header,
.pp-guidance-card .card-header {
    background: linear-gradient(135deg, #1a103c, #2c0b0e);
    color: #fff;
    border-bottom: 1px solid var(--spiritual-glass-border);
}

.btn-pp-primary {
    background: linear-gradient(135deg, #ff7e35, #fbbf24);
    color: #1a103c;
    font-weight: 600;
    border: none;
}
.btn-pp-primary:hover { filter: brightness(1.1); color: #1a103c; }

.bg-pp-primary { background: linear-gradient(135deg, #1a103c, #4c1d95); }

.pp-bird-card { border-left: 6px solid var(--bird-color, #6c757d); }
.pp-bird-avatar {
    width: 72px; height: 72px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 2.2rem; box-shadow: 0 4px 15px rgba(0,0,0,0.2);
}
.pp-bird-name { display: block; font-size: 1.1rem; color: var(--spiritual-indigo); }

.pp-now-card { border-left: 6px solid var(--spiritual-gold); }
.pp-rating-circle {
    width: 48px; height: 48px; border-radius: 50%;
    background: #1a103c; color: var(--spiritual-gold);
    display: flex; align-items: center; justify-content: center;
    font-weight: 700; font-size: 1.1rem;
    box-shadow: 0 0 15px rgba(251,191,36,0.3);
}

.pp-best-activity {
    width: 56px; height: 56px; border-radius: 50%;
    background: linear-gradient(135deg, #fbbf24, #ff7e35);
    display: flex; align-items: center; justify-content: center;
    font-size: 1.8rem;
}

.pp-timeline .pp-major-row {
    padding: 1rem;
    border-bottom: 1px solid rgba(0,0,0,0.08);
}
.pp-timeline .pp-major-row:last-child { border-bottom: none; }
.pp-major-row[data-kind="night"] { background: rgba(26,16,60,0.04); }
.pp-major-meta { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.5rem; }
.pp-major-time { font-weight: 600; color: #4c1d95; }
.pp-major-main { display: flex; gap: 1rem; flex-wrap: wrap; align-items: center; margin-bottom: 0.75rem; }
.pp-major-bird { font-weight: 600; }
.pp-major-activity { font-weight: 500; }
.pp-major-support { display: block; width: 100%; }
.pp-sub-list { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.pp-sub-pill {
    padding: 0.35rem 0.6rem; border-radius: 999px;
    background: rgba(0,0,0,0.05); font-size: 0.8rem;
    border: 1px solid rgba(0,0,0,0.08); position: relative;
    cursor: default; transition: transform 0.2s;
}
.pp-sub-pill:hover { transform: translateY(-2px); background: rgba(0,0,0,0.08); }
.pp-sub-current { background: var(--spiritual-gold) !important; color: #1a103c !important; font-weight: 600; border-color: var(--spiritual-gold) !important; }
.pp-current-dot { width: 8px; height: 8px; border-radius: 50%; background: #22c55e; display: inline-block; margin-left: 4px; animation: ppPulse 1.2s infinite; }
@keyframes ppPulse { 0%,100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.5; transform: scale(1.2); } }

.pp-birds-ref .card-body { padding: 1.5rem; }
.pp-ref-bird {
    padding: 1rem 0.5rem; border-radius: 12px;
    background: rgba(0,0,0,0.03); border: 2px solid transparent;
    transition: all 0.2s;
}
.pp-ref-bird:hover { transform: translateY(-3px); box-shadow: 0 4px 12px rgba(0,0,0,0.1); }
.pp-ref-bird-active { border-color: var(--c, #fbbf24); background: rgba(251,191,36,0.08); box-shadow: 0 0 20px var(--c, rgba(251,191,36,0.2)); }
.pp-ref-emoji { font-size: 2rem; }
.pp-ref-name { font-weight: 600; font-size: 0.85rem; }

.pp-activity-legend li { display: flex; align-items: center; gap: 0.5rem; padding: 0.35rem 0; }
.pp-legend-icon { font-size: 1.2rem; width: 24px; text-align: center; }

.pp-result-surface { background: rgba(255,255,255,0.97); border: 1px solid #28a745; }
.pp-result-surface > .card-body { padding: 1.25rem; }

.pp-guidance-card .font-weight-500 { font-weight: 500; }
.pp-guidance-card .text-success { color: #155724 !important; }

.pp-birth-table th,
.pp-birth-table td { vertical-align: middle; }

.pp-empty { background: var(--spiritual-card-bg); }
.pp-empty-emoji { font-size: 2.5rem; margin-bottom: 1rem; }

@media print {
    .no-print, .pp-hero, .pp-card, .pp-birds-ref, .pp-learn-card, .pp-compare-card { display: none !important; }
    .pp-timeline-card, .pp-now-card, .pp-best-card, .pp-bird-card { page-break-inside: avoid; }
}

@media (max-width: 767px) {
    .pp-orb { width: 90px; height: 90px; }
    .pp-orb-emoji { font-size: 2.5rem; }
    .pp-major-main { gap: 0.5rem; }
    .pp-major-support { font-size: 0.75rem; }
    .pp-sub-pill { font-size: 0.7rem; padding: 0.25rem 0.45rem; }
}

/* =====================================================
   Chaya Shastra premium module styles
   ===================================================== */

.chaya-shastra-module {}

.chaya-hero { position: relative; }
.chaya-orb {
    width: 120px;
    height: 120px;
    margin: 0 auto;
    border-radius: 50%;
    background: radial-gradient(circle at 30% 30%, rgba(255,255,255,0.25), rgba(0,0,0,0.2));
    box-shadow: 0 0 40px #ff8c00, inset 0 0 30px rgba(255,255,255,0.1);
    display: flex;
    align-items: center;
    justify-content: center;
}
.chaya-orb-icon { font-size: 3rem; }
.chaya-empty-icon { font-size: 2.5rem; margin-bottom: 1rem; }

.chaya-form-card .bg-chaya-primary,
.chaya-form-card .btn-chaya-primary,
.chaya-map-card .card-header,
.chaya-sun-card .card-header,
.chaya-shadow-card .card-header,
.chaya-graha-card .card-header,
.chaya-edu-card .card-header,
.chaya-faq-card .card-header,
.chaya-science-card .card-header,
.chaya-note-card .card-header,
.chaya-image-card .card-header {
    background: linear-gradient(135deg, #2c3e50 0%, #1a252f 100%);
    color: #fff;
}

.btn-chaya-primary {
    background: linear-gradient(135deg, #d35400 0%, #e67e22 100%);
    border: none;
    color: #fff;
}
.btn-chaya-primary:hover { color: #fff; opacity: 0.9; }

.badge-chaya-tradition { background: #d35400; color: #fff; }
.badge-chaya-traditional { background: #6b5b95; color: #fff; }

.chaya-map-wrap {
    position: relative;
    background: linear-gradient(180deg, #0f1720 0%, #1c2833 100%);
    border-radius: 0.25rem 0.25rem 0 0;
    overflow: hidden;
    height: 360px;
}
.chaya-map-toggle {
    position: absolute;
    top: 8px;
    left: 8px;
    z-index: 5;
}
.chaya-map-toggle button { color: #fff; border-color: rgba(255,255,255,0.3); }
.chaya-map-toggle button.active { background: #d35400; border-color: #d35400; }
.chaya-map-svg { width: 100%; height: 100%; }
.chaya-3d-canvas { width: 100%; height: 100%; display: block; }
.chaya-map-label { font-size: 10px; fill: rgba(255,255,255,0.6); text-anchor: middle; dominant-baseline: middle; }
.chaya-map-axis { stroke: rgba(255,255,255,0.1); stroke-width: 0.5; }
.chaya-sun-orb { filter: drop-shadow(0 0 8px #ffd700); }
.chaya-observer-head { fill: #f0c27b; }
.chaya-observer-body { stroke: #f0c27b; stroke-width: 3; stroke-linecap: round; }
.chaya-shadow-line { stroke: rgba(0,0,0,0.75); stroke-width: 4; stroke-linecap: round; }
.chaya-map-time {
    position: absolute;
    top: 8px;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(0,0,0,0.5);
    color: #fff;
    padding: 2px 10px;
    border-radius: 12px;
    font-size: 0.8rem;
}

.chaya-timeline-slider {
    width: 100%;
    -webkit-appearance: none;
    height: 6px;
    background: rgba(255,255,255,0.2);
    border-radius: 3px;
    outline: none;
}
.chaya-timeline-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #d35400;
    cursor: pointer;
}

.chaya-result-surface { background: rgba(255,255,255,0.97); border: 1px solid #d35400; }
.chaya-result-surface > .card-body { padding: 1.25rem; }

.chaya-faq-item { border-bottom: 1px solid rgba(255,255,255,0.1); padding: 0.75rem 0; }
.chaya-faq-item:last-child { border-bottom: none; }

@media print {
    .no-print, .chaya-hero, .chaya-form-card, .chaya-edu-card, .chaya-faq-card { display: none !important; }
    .chaya-map-card, .chaya-sun-card, .chaya-shadow-card, .chaya-graha-card, .chaya-science-card, .chaya-note-card { page-break-inside: avoid; }
}

@media (max-width: 767px) {
    .chaya-orb { width: 90px; height: 90px; }
    .chaya-orb-icon { font-size: 2.5rem; }
    .chaya-map-wrap { height: 280px; }
}



/* =====================================================
   Upashruti Shastra premium module styles
   ===================================================== */

.upashruti-module { --upashruti-primary: #9b59b6; --upashruti-secondary: #5e2e7e; --upashruti-tertiary: #f1c40f; --upashruti-soft: #f3e5f5; }

.upashruti-hero { background: linear-gradient(135deg, #f3e5f5 0%, #e1bee7 100%); border-radius: 1rem; padding: 2rem; }
.upashruti-orb { width: 100px; height: 100px; border-radius: 50%; background: radial-gradient(circle at 30% 30%, #d7bde2, #9b59b6); box-shadow: 0 8px 24px rgba(155,89,182,0.35); margin: 0 auto; display: flex; align-items: center; justify-content: center; animation: upashruti-pulse 3s ease-in-out infinite; }
.upashruti-orb-icon { font-size: 2.8rem; color: #fff; }
@keyframes upashruti-pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.05); } }

.btn-upashruti-primary, .bg-upashruti-primary { background: var(--upashruti-primary); border-color: var(--upashruti-primary); color: #fff; }
.btn-upashruti-primary:hover { background: var(--upashruti-secondary); border-color: var(--upashruti-secondary); color: #fff; }
.btn-outline-upashruti { border-color: var(--upashruti-primary); color: var(--upashruti-primary); }
.btn-outline-upashruti:hover, .btn-outline-upashruti.active { background: var(--upashruti-primary); color: #fff; }

.badge-upashruti-tradition { background: var(--upashruti-soft); color: var(--upashruti-secondary); border: 1px solid var(--upashruti-primary); }
.badge-upashruti-confidence { border: 1px solid rgba(0,0,0,0.1); }

.upashruti-form-card, .upashruti-result-card, .upashruti-omen-card, .upashruti-dict-card, .upashruti-faq-card, .upashruti-related-card, .upashruti-education-card, .upashruti-edu-panel { border: none; border-radius: 1rem; overflow: hidden; box-shadow: 0 4px 20px rgba(0,0,0,0.08); }

.upashruti-empty-icon { font-size: 3rem; margin-bottom: 0.75rem; }

.upashruti-mini-card { background: #fff; border-radius: 0.6rem; padding: 0.75rem; box-shadow: 0 2px 8px rgba(0,0,0,0.05); border-top: 3px solid var(--upashruti-primary); }
.upashruti-observed-box { background: var(--upashruti-soft); }
.upashruti-meaning-box { background: #fff8e1; border-left: 4px solid var(--upashruti-tertiary); }
.upashruti-meaning { font-size: 1.05rem; line-height: 1.6; color: #4a148c; }

.upashruti-notes .upashruti-note-card { background: #fff; border-radius: 0.6rem; box-shadow: 0 2px 10px rgba(0,0,0,0.05); border: 1px solid #eee; }

.upashruti-table th { background: var(--upashruti-soft); color: var(--upashruti-secondary); width: 40%; }
.upashruti-table td { background: #fff; }

.upashruti-disclaimer { background: #fff3cd; border-color: #ffeeba; color: #856404; }

.upashruti-compass { width: 160px; height: 160px; margin: 0 auto; position: relative; }
.upashruti-compass-svg { width: 100%; height: 100%; transform: rotate(-90deg); }

.upashruti-wave-stage { position: relative; min-height: 180px; background: radial-gradient(circle at center, #f3e5f5 0%, transparent 70%); }
.upashruti-observer { font-size: 3rem; color: var(--upashruti-secondary); position: relative; z-index: 2; display: inline-block; }
.upashruti-waves { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); z-index: 1; }
.upashruti-waves span { position: absolute; top: 0; left: 0; width: 40px; height: 40px; border-radius: 50%; border: 2px solid rgba(155,89,182,0.4); transform: translate(-50%,-50%) scale(0); animation: upashruti-wave 2.4s ease-out infinite; }
.upashruti-waves span:nth-child(2) { animation-delay: 0.6s; }
.upashruti-waves span:nth-child(3) { animation-delay: 1.2s; }
.upashruti-waves span:nth-child(4) { animation-delay: 1.8s; }
@keyframes upashruti-wave { to { transform: translate(-50%,-50%) scale(4); opacity: 0; } }

.upashruti-dict-entry { background: #fff; border: 1px solid #e0e0e0; border-left: 4px solid var(--upashruti-primary); transition: transform 0.2s; }
.upashruti-dict-entry:hover { transform: translateY(-3px); box-shadow: 0 6px 16px rgba(0,0,0,0.08); }

.upashruti-faq .card { border: none; border-bottom: 1px solid #eee; }
.upashruti-faq .card-header { background: transparent; padding: 0.75rem 1rem; }
.upashruti-faq-q { color: var(--upashruti-secondary); font-weight: 500; text-decoration: none; }

.bg-upashruti-secondary { background: var(--upashruti-secondary); color: #fff; }
.bg-upashruti-tertiary { background: #d4ac0d; color: #fff; }
.text-upashruti-primary { color: var(--upashruti-primary); }

/* 3D chamber */
.upashruti-3d-stage { perspective: 800px; min-height: 260px; display: flex; align-items: center; justify-content: center; background: radial-gradient(circle at 50% 60%, #1a0b2e 0%, #0d0618 100%); border-radius: 1rem; overflow: hidden; }
.upashruti-chamber { position: relative; width: 160px; height: 160px; transform-style: preserve-3d; animation: upashruti-float 5s ease-in-out infinite; }
.chamber-observer { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); font-size: 3.5rem; color: #d7bde2; }
.chamber-ring { position: absolute; top: 50%; left: 50%; width: 120px; height: 120px; border-radius: 50%; border: 2px solid rgba(155,89,182,0.6); transform: translate(-50%,-50%) rotateX(70deg); }
.chamber-ring.r1 { width: 100px; height: 100px; animation: chamber-ring 2s linear infinite; }
.chamber-ring.r2 { width: 140px; height: 140px; animation: chamber-ring 2.6s linear infinite; }
.chamber-ring.r3 { width: 180px; height: 180px; animation: chamber-ring 3.2s linear infinite; }
.chamber-moon { position: absolute; top: -10%; right: -10%; width: 30px; height: 30px; border-radius: 50%; background: #f1c40f; box-shadow: 0 0 20px rgba(241,196,15,0.6); }
.chamber-label { position: absolute; bottom: -30px; width: 100%; text-align: center; color: #d7bde2; font-size: 0.8rem; }
@keyframes chamber-ring { from { transform: translate(-50%,-50%) rotateX(70deg) rotateZ(0deg); } to { transform: translate(-50%,-50%) rotateX(70deg) rotateZ(360deg); } }
@keyframes upashruti-float { 0%, 100% { transform: translateY(0) rotateY(0deg); } 50% { transform: translateY(-8px) rotateY(15deg); } }

@media (max-width: 768px) {
    .upashruti-hero { padding: 1.25rem; }
    .upashruti-orb { width: 70px; height: 70px; }
    .upashruti-orb-icon { font-size: 2rem; }
    .upashruti-compass { width: 120px; height: 120px; }
}

@media print {
    .upashruti-hero, .upashruti-form-card, .upashruti-view-toggle, .upashruti-omen-card, .upashruti-dict-card, .upashruti-faq-card, .upashruti-related-card, .upashruti-education-card, .upashruti-edu-panel, .upashruti-print-form { display: none !important; }
    .upashruti-result-card, .upashruti-print-only { display: block !important; }
    body { background: #fff !important; color: #000 !important; }
}



/* =====================================================
   Nadi Svara Shastra (Swarodaya) premium module styles
   ===================================================== */

.nadisvara-module { --nadisvara-primary: #16a085; --nadisvara-secondary: #0e6655; --nadisvara-tertiary: #f1c40f; --nadisvara-soft: #e8f8f5; --nadisvara-warm: #fdf2e9; }

.nadisvara-hero { background: linear-gradient(135deg, #e8f8f5 0%, #d1f2eb 100%); border-radius: 1rem; padding: 2rem; }
.nadisvara-orb { width: 100px; height: 100px; border-radius: 50%; background: radial-gradient(circle at 30% 30%, #a9dfbf, #16a085); box-shadow: 0 8px 24px rgba(22,160,133,0.35); margin: 0 auto; display: flex; align-items: center; justify-content: center; animation: nadisvara-pulse 3s ease-in-out infinite; }
.nadisvara-orb-icon { font-size: 2.8rem; color: #fff; }
@keyframes nadisvara-pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.05); } }

.btn-nadisvara-primary, .bg-nadisvara-primary { background: var(--nadisvara-primary); border-color: var(--nadisvara-primary); color: #fff; }
.btn-nadisvara-primary:hover { background: var(--nadisvara-secondary); border-color: var(--nadisvara-secondary); color: #fff; }
.btn-outline-nadisvara { border-color: var(--nadisvara-primary); color: var(--nadisvara-primary); }
.btn-outline-nadisvara:hover, .btn-outline-nadisvara.active { background: var(--nadisvara-primary); color: #fff; }

.badge-nadisvara-tradition { background: var(--nadisvara-soft); color: var(--nadisvara-secondary); border: 1px solid var(--nadisvara-primary); }

.nadisvara-form-card, .nadisvara-result-card, .nadisvara-nadi-card, .nadisvara-elements-card, .nadisvara-faq-card, .nadisvara-related-card, .nadisvara-education-card, .nadisvara-edu-panel { border: none; border-radius: 1rem; overflow: hidden; box-shadow: 0 4px 20px rgba(0,0,0,0.08); }

.nadisvara-empty-icon { font-size: 3rem; margin-bottom: 0.75rem; }

.nadisvara-mini-card { background: #fff; border-radius: 0.6rem; padding: 0.75rem; box-shadow: 0 2px 8px rgba(0,0,0,0.05); border-top: 3px solid var(--nadisvara-primary); }
.nadisvara-dashboard { background: var(--nadisvara-soft); }
.nadisvara-meaning { background: #fff; border-left: 4px solid var(--nadisvara-tertiary); }
.nadisvara-activity { background: var(--nadisvara-warm); border-left: 4px solid var(--nadisvara-primary); }

.nadisvara-section-label { color: var(--nadisvara-secondary); font-weight: 600; }

.nadisvara-table th { background: var(--nadisvara-soft); color: var(--nadisvara-secondary); width: 45%; }
.nadisvara-table td { background: #fff; }

.nadisvara-science-note { background: #d1ecf1; border-color: #bee5eb; color: #0c5460; }
.nadisvara-disclaimer { background: #fff3cd; border-color: #ffeeba; color: #856404; }

/* Breath visual */
.nadisvara-breath-stage { position: relative; min-height: 200px; background: radial-gradient(circle at center, #e8f8f5 0%, transparent 70%); }
.nadisvara-silhouette { position: relative; width: 100px; height: 120px; margin: 0 auto; background: rgba(22,160,133,0.1); border-radius: 50% 50% 40% 40%; }
.nadisvara-face { font-size: 3.5rem; position: absolute; top: 25%; left: 50%; transform: translateX(-50%); }
.nadisvara-nostril { position: absolute; top: 55%; width: 8px; height: 8px; border-radius: 50%; background: #aaa; transition: all 0.4s; }
.nadisvara-nostril-left { left: 32%; }
.nadisvara-nostril-right { right: 32%; }
.nadisvara-nostril.active { background: #16a085; box-shadow: 0 0 10px #16a085; }
.nadisvara-sushumna { position: absolute; top: 55%; left: 50%; width: 6px; height: 6px; border-radius: 50%; background: #aaa; transform: translateX(-50%); }
.nadisvara-sushumna.active { background: #f1c40f; box-shadow: 0 0 12px #f1c40f; }

.nadisvara-airflow { position: absolute; top: 40%; left: 50%; transform: translateX(-50%); width: 120px; height: 60px; }
.nadisvara-stream { position: absolute; width: 20px; height: 20px; border-radius: 50%; border: 2px solid transparent; opacity: 0; }
.nadisvara-stream.stream-left { left: 20px; top: 0; border-color: rgba(46,134,193,0.5); animation: nadisvara-air 1.6s ease-out infinite; }
.nadisvara-stream.stream-right { right: 20px; top: 0; border-color: rgba(231,76,60,0.5); animation: nadisvara-air 1.6s ease-out 0.3s infinite; }
.nadisvara-stream.stream-center { left: 50%; top: 10px; border-color: rgba(241,196,15,0.5); animation: nadisvara-air 1.8s ease-out 0.6s infinite; transform: translateX(-50%); }
@keyframes nadisvara-air { 0% { opacity: 0.8; transform: scale(0.5) translateY(0); } 100% { opacity: 0; transform: scale(2.2) translateY(40px); } }

/* Nadi cards */
.nadisvara-nadi-entry { background: #fff; border: 1px solid #e0e0e0; border-left: 4px solid var(--nadisvara-primary); transition: transform 0.2s; }
.nadisvara-nadi-entry:hover { transform: translateY(-3px); box-shadow: 0 6px 16px rgba(0,0,0,0.08); }
.nadisvara-nadi-active { background: #e8f8f5; border-left: 4px solid var(--nadisvara-secondary); }

/* Elements */
.nadisvara-element-token { background: #fff; border: 1px solid #eee; border-radius: 0.5rem; padding: 0.75rem; transition: all 0.2s; }
.nadisvara-element-token:hover { transform: translateY(-2px); }
.nadisvara-element-active { background: var(--nadisvara-soft); border-color: var(--nadisvara-primary); box-shadow: 0 4px 12px rgba(22,160,133,0.2); }
.nadisvara-element-icon { width: 32px; height: 32px; border-radius: 50%; margin: 0 auto 0.5rem; }
.nadisvara-element-prithvi { background: #795548; }
.nadisvara-element-apas { background: #3498db; }
.nadisvara-element-agni { background: #e74c3c; }
.nadisvara-element-vayu { background: #95a5a6; }
.nadisvara-element-akasha { background: #9b59b6; }

/* 3D chamber */
.nadisvara-3d-stage { perspective: 800px; min-height: 260px; display: flex; align-items: center; justify-content: center; background: radial-gradient(circle at 50% 60%, #0b3d2e 0%, #061812 100%); border-radius: 1rem; overflow: hidden; }
.nadisvara-chamber { position: relative; width: 160px; height: 160px; transform-style: preserve-3d; animation: nadisvara-float 5s ease-in-out infinite; }
.chamber-figure { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); font-size: 3.5rem; color: #a9dfbf; }
.chamber-flow { position: absolute; top: 50%; width: 50px; height: 50px; border-radius: 50%; border: 2px solid rgba(255,255,255,0.3); transform: translateY(-50%) rotateY(70deg); animation: chamber-flow 2s linear infinite; }
.chamber-flow.flow-left { left: -30px; border-color: rgba(52,152,219,0.6); }
.chamber-flow.flow-right { right: -30px; border-color: rgba(231,76,60,0.6); }
.chamber-sushumna-glow { position: absolute; top: 50%; left: 50%; width: 20px; height: 20px; border-radius: 50%; background: #f1c40f; box-shadow: 0 0 30px #f1c40f; transform: translate(-50%,-50%); }
.chamber-ring { position: absolute; top: 50%; left: 50%; width: 120px; height: 120px; border-radius: 50%; border: 2px solid rgba(22,160,133,0.5); transform: translate(-50%,-50%) rotateX(70deg); }
.chamber-ring.r1 { animation: chamber-ring 2s linear infinite; }
.chamber-ring.r2 { width: 150px; height: 150px; animation: chamber-ring 2.6s linear infinite; }
.chamber-ring.r3 { width: 180px; height: 180px; animation: chamber-ring 3.2s linear infinite; }
.chamber-label { position: absolute; bottom: -35px; width: 100%; text-align: center; color: #a9dfbf; font-size: 0.8rem; }
@keyframes chamber-ring { from { transform: translate(-50%,-50%) rotateX(70deg) rotateZ(0deg); } to { transform: translate(-50%,-50%) rotateX(70deg) rotateZ(360deg); } }
@keyframes chamber-flow { from { transform: translateY(-50%) scale(0.8) rotateY(70deg); opacity: 0.8; } to { transform: translateY(-50%) scale(2) rotateY(70deg); opacity: 0; } }
@keyframes nadisvara-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }

.bg-nadisvara-secondary { background: var(--nadisvara-secondary); color: #fff; }
.bg-nadisvara-tertiary { background: #d4ac0d; color: #fff; }
.text-nadisvara-primary { color: var(--nadisvara-primary); }
.text-nadisvara-secondary { color: var(--nadisvara-secondary); }

.nadisvara-faq .card { border: none; border-bottom: 1px solid #eee; }
.nadisvara-faq .card-header { background: transparent; padding: 0.75rem 1rem; }
.nadisvara-faq-q { color: var(--nadisvara-secondary); font-weight: 500; text-decoration: none; }

@media (max-width: 768px) {
    .nadisvara-hero { padding: 1.25rem; }
    .nadisvara-orb { width: 70px; height: 70px; }
    .nadisvara-orb-icon { font-size: 2rem; }
}

@media print {
    .nadisvara-hero, .nadisvara-form-card, .nadisvara-view-toggle, .nadisvara-nadi-card, .nadisvara-elements-card, .nadisvara-faq-card, .nadisvara-related-card, .nadisvara-education-card, .nadisvara-edu-panel, .nadisvara-print-form { display: none !important; }
    .nadisvara-result-card, .nadisvara-print-only { display: block !important; }
    body { background: #fff !important; color: #000 !important; }
}



.nadisvara-timeline { display: flex; overflow-x: auto; padding: 1rem 0; gap: 0.5rem; }
.nadisvara-timeline-item { min-width: 80px; text-align: center; padding: 0.5rem; border-radius: 0.5rem; background: #fff; border: 1px solid #e0e0e0; }
.nadisvara-timeline-current { background: var(--nadisvara-soft); border-color: var(--nadisvara-primary); box-shadow: 0 4px 12px rgba(22,160,133,0.2); }
.nadisvara-timeline-dot { width: 14px; height: 14px; border-radius: 50%; margin: 0 auto 0.3rem; background: #aaa; }
.nadisvara-timeline-dot.left { background: #3498db; }
.nadisvara-timeline-dot.right { background: #e74c3c; }
.nadisvara-timeline-time { font-size: 0.75rem; color: #6c757d; }
.nadisvara-timeline-label { font-size: 0.8rem; font-weight: 600; }

.nadisvara-source-box, .nadisvara-daily-item, .nadisvara-state-card .col-md-6, .nadisvara-breath-card, .nadisvara-science-card, .nadisvara-history-card, .nadisvara-tamil-card, .nadisvara-suitable-card { background: #fff; border-radius: 0.5rem; }
.nadisvara-source-box { border: 1px solid #eee; padding: 0.75rem; }
.nadisvara-daily-item { border-left: 3px solid var(--nadisvara-primary); background: var(--nadisvara-soft); }



/* =====================================================
   Ashtamangala Prashna premium module styles
   ===================================================== */

.ashtamangala-module { --ashtamangala-primary: #b9770e; --ashtamangala-secondary: #7d4e0c; --ashtamangala-tertiary: #1e8449; --ashtamangala-soft: #fdf5e6; --ashtamangala-warm: #f9e79f; }

.ashtamangala-hero { background: linear-gradient(135deg, #fdf5e6 0%, #f5cba7 100%); border-radius: 1rem; padding: 2rem; }
.ashtamangala-orb { width: 100px; height: 100px; border-radius: 50%; background: radial-gradient(circle at 30% 30%, #f9e79f, #b9770e); box-shadow: 0 8px 24px rgba(185,119,14,0.35); margin: 0 auto; display: flex; align-items: center; justify-content: center; animation: ashtamangala-pulse 3s ease-in-out infinite; }
.ashtamangala-orb-icon { font-size: 2.8rem; color: #fff; }
@keyframes ashtamangala-pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.05); } }

.btn-ashtamangala-primary, .bg-ashtamangala-primary { background: var(--ashtamangala-primary); border-color: var(--ashtamangala-primary); color: #fff; }
.btn-ashtamangala-primary:hover { background: var(--ashtamangala-secondary); border-color: var(--ashtamangala-secondary); color: #fff; }
.btn-outline-ashtamangala { border-color: var(--ashtamangala-primary); color: var(--ashtamangala-primary); }
.btn-outline-ashtamangala:hover, .btn-outline-ashtamangala.active { background: var(--ashtamangala-primary); color: #fff; }

.badge-ashtamangala-tradition { background: var(--ashtamangala-soft); color: var(--ashtamangala-secondary); border: 1px solid var(--ashtamangala-primary); }
.badge-ashtamangala-strength { background: var(--ashtamangala-soft); color: var(--ashtamangala-secondary); border: 1px solid var(--ashtamangala-primary); }

.ashtamangala-form-card, .ashtamangala-result-card, .ashtamangala-chart-card, .ashtamangala-planets-card, .ashtamangala-navamsa-card, .ashtamangala-faq-card, .ashtamangala-related-card, .ashtamangala-education-card, .ashtamangala-astro-panel, .ashtamangala-history-card, .ashtamangala-tamil-card { border: none; border-radius: 1rem; overflow: hidden; box-shadow: 0 4px 20px rgba(0,0,0,0.08); }

.ashtamangala-empty-icon { font-size: 3rem; margin-bottom: 0.75rem; }

.ashtamangala-section-label { color: var(--ashtamangala-secondary); font-weight: 600; }

.ashtamangala-question-box { background: var(--ashtamangala-soft); border-left: 4px solid var(--ashtamangala-primary); }
.ashtamangala-judgement { background: #fff; border-left: 4px solid var(--ashtamangala-tertiary); }
.ashtamangala-source-box { background: var(--ashtamangala-warm); border-left: 4px solid var(--ashtamangala-primary); }
.ashtamangala-reasoning { background: #fff; border: 1px solid #e0e0e0; }

.ashtamangala-table th { background: var(--ashtamangala-soft); color: var(--ashtamangala-secondary); }
.ashtamangala-table td { background: #fff; }

.ashtamangala-science-note { background: #d1ecf1; border-color: #bee5eb; color: #0c5460; }
.ashtamangala-disclaimer { background: #fff3cd; border-color: #ffeeba; color: #856404; }

/* Ashtamangala board */
.ashtamangala-board { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.75rem; padding: 1rem; background: linear-gradient(145deg, #3e2723, #5d4037); border-radius: 1rem; }
.ashtamangala-symbol { text-align: center; padding: 0.75rem; border-radius: 0.75rem; background: rgba(255,255,255,0.92); box-shadow: 0 4px 12px rgba(0,0,0,0.2); cursor: pointer; transition: transform 0.2s; }
.ashtamangala-symbol:hover { transform: translateY(-4px); }
.ashtamangala-symbol.favorable { border-top: 4px solid #1e8449; }
.ashtamangala-symbol.mixed { border-top: 4px solid #f1c40f; }
.ashtamangala-symbol.challenging { border-top: 4px solid #c0392b; }
.ashtamangala-symbol-icon { font-size: 2rem; margin-bottom: 0.25rem; }
.ashtamangala-symbol-name { font-size: 0.8rem; font-weight: 600; color: var(--ashtamangala-secondary); }
.ashtamangala-symbol-state { font-size: 0.7rem; }
.ashtamangala-symbol-house { font-size: 0.7rem; color: #888; }

/* 3D board */
.ashtamangala-3d-stage { perspective: 800px; min-height: 300px; display: flex; align-items: center; justify-content: center; background: radial-gradient(circle at 50% 60%, #3e2723 0%, #1a100e 100%); border-radius: 1rem; overflow: hidden; }
.ashtamangala-3d-board { position: relative; width: 220px; height: 220px; transform-style: preserve-3d; animation: ashtamangala-spin 18s linear infinite; }
.ashtamangala-3d-board .a3d-ring { position: absolute; top: 50%; left: 50%; border-radius: 50%; border: 2px solid rgba(241,196,15,0.35); transform: translate(-50%,-50%) rotateX(70deg); }
.a3d-r1 { width: 200px; height: 200px; }
.a3d-r2 { width: 160px; height: 160px; }
.a3d-center { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); font-size: 2.5rem; }
.a3d-symbol { position: absolute; font-size: 1.6rem; transform: translateZ(20px); }
.a3d-mirror { top: 0; left: 50%; transform: translateX(-50%); }
.a3d-lamp { top: 20%; right: 0; }
.a3d-conch { bottom: 20%; right: 0; }
.a3d-bell { bottom: 0; left: 50%; transform: translateX(-50%); }
.a3d-parasol { bottom: 20%; left: 0; }
.a3d-whisk { top: 20%; left: 0; }
.a3d-banner { top: 0; left: 50%; transform: translateX(-50%) translateZ(10px); display: none; }
.a3d-fish { top: 50%; left: 50%; transform: translate(-50%,-50%) translateZ(-10px); font-size: 2rem; }
@keyframes ashtamangala-spin { from { transform: rotateZ(0deg); } to { transform: rotateZ(360deg); } }

.bg-ashtamangala-secondary { background: var(--ashtamangala-secondary); color: #fff; }
.bg-ashtamangala-tertiary { background: var(--ashtamangala-tertiary); color: #fff; }
.text-ashtamangala-primary { color: var(--ashtamangala-primary); }
.text-ashtamangala-secondary { color: var(--ashtamangala-secondary); }

.ashtamangala-faq .card { border: none; border-bottom: 1px solid #eee; }
.ashtamangala-faq .card-header { background: transparent; padding: 0.75rem 1rem; }
.ashtamangala-faq-q { color: var(--ashtamangala-secondary); font-weight: 500; text-decoration: none; }

@media (max-width: 768px) {
    .ashtamangala-hero { padding: 1.25rem; }
    .ashtamangala-orb { width: 70px; height: 70px; }
    .ashtamangala-orb-icon { font-size: 2rem; }
    .ashtamangala-board { grid-template-columns: repeat(2, 1fr); }
}

@media print {
    .ashtamangala-hero, .ashtamangala-form-card, .ashtamangala-view-toggle, .ashtamangala-faq-card, .ashtamangala-related-card, .ashtamangala-education-card, .ashtamangala-history-card, .ashtamangala-tamil-card, .ashtamangala-print-form { display: none !important; }
    .ashtamangala-result-card, .ashtamangala-chart-card, .ashtamangala-planets-card, .ashtamangala-navamsa-card, .ashtamangala-print-only { display: block !important; }
    body { background: #fff !important; color: #000 !important; }
}



/* =====================================================
   Tajika Shastra / Varshaphala premium module styles
   ===================================================== */

.tajika-module { --tajika-primary: #1f618d; --tajika-secondary: #154360; --tajika-tertiary: #117a65; --tajika-soft: #eaf2f8; --tajika-warm: #d4e6f1; }

.tajika-hero { background: linear-gradient(135deg, #eaf2f8 0%, #d4e6f1 100%); border-radius: 1rem; padding: 2rem; }
.tajika-orb { width: 100px; height: 100px; border-radius: 50%; background: radial-gradient(circle at 30% 30%, #a9cce3, #1f618d); box-shadow: 0 8px 24px rgba(31,97,141,0.35); margin: 0 auto; display: flex; align-items: center; justify-content: center; animation: tajika-pulse 3s ease-in-out infinite; }
.tajika-orb-icon { font-size: 2.8rem; color: #fff; }
@keyframes tajika-pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.05); } }

.btn-tajika-primary, .bg-tajika-primary { background: var(--tajika-primary); border-color: var(--tajika-primary); color: #fff; }
.btn-tajika-primary:hover { background: var(--tajika-secondary); border-color: var(--tajika-secondary); color: #fff; }
.btn-outline-tajika { border-color: var(--tajika-primary); color: var(--tajika-primary); }
.btn-outline-tajika:hover, .btn-outline-tajika.active { background: var(--tajika-primary); color: #fff; }

.badge-tajika-tradition { background: var(--tajika-soft); color: var(--tajika-secondary); border: 1px solid var(--tajika-primary); }

.tajika-form-card, .tajika-result-card, .tajika-chart-card, .tajika-planets-card, .tajika-sahams-card, .tajika-aspects-card, .tajika-areas-card, .tajika-timeline-card, .tajika-faq-card, .tajika-related-card, .tajika-education-card, .tajika-astro-panel, .tajika-history-card, .tajika-tamil-card { border: none; border-radius: 1rem; overflow: hidden; box-shadow: 0 4px 20px rgba(0,0,0,0.08); }

.tajika-empty-icon { font-size: 3rem; margin-bottom: 0.75rem; }

.tajika-mini-card { background: #fff; border-radius: 0.6rem; padding: 0.75rem; box-shadow: 0 2px 8px rgba(0,0,0,0.05); border-top: 3px solid var(--tajika-primary); }
.tajika-varsha-box { background: var(--tajika-soft); border-left: 4px solid var(--tajika-primary); }
.tajika-muntha-box { background: #fff; border-left: 4px solid var(--tajika-tertiary); }
.tajika-varshesha-box { background: var(--tajika-warm); border-left: 4px solid var(--tajika-secondary); }
.tajika-progress-box { background: #e8f7ed; border-left: 4px solid #28a745; }
.tajika-theme-card .tajika-mini-card { border-top-color: var(--tajika-secondary); }
.tajika-sources-card .badge-light { background: #f0f4ff; color: #4c1d95; }
.tajika-world-card { background: linear-gradient(135deg, #fff, #f8f6ff); }

.tajika-table th { background: var(--tajika-soft); color: var(--tajika-secondary); }
.tajika-table td { background: #fff; }

.tajika-science-note { background: #d1ecf1; border-color: #bee5eb; color: #0c5460; }
.tajika-disclaimer { background: #fff3cd; border-color: #ffeeba; color: #856404; }

.tajika-area-item { background: #fff; border-left: 4px solid var(--tajika-primary); border-radius: 0.4rem; }
.tajika-area-favorable { border-left-color: #1e8449; }
.tajika-area-mixed { border-left-color: #f1c40f; }
.tajika-area-challenging { border-left-color: #c0392b; }

/* 3D orrery */
.tajika-3d-stage { perspective: 800px; min-height: 300px; display: flex; align-items: center; justify-content: center; background: radial-gradient(circle at 50% 60%, #0b2638 0%, #06121a 100%); border-radius: 1rem; overflow: hidden; }
.tajika-3d-orrery { position: relative; width: 220px; height: 220px; transform-style: preserve-3d; animation: tajika-spin 24s linear infinite; }
.tajika-3d-orrery .t3d-sun { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); font-size: 3rem; z-index: 2; }
.t3d-orbit { position: absolute; top: 50%; left: 50%; border-radius: 50%; border: 1px solid rgba(255,255,255,0.2); transform: translate(-50%,-50%); }
.t3d-orbit.o1 { width: 80px; height: 80px; }
.t3d-orbit.o2 { width: 130px; height: 130px; }
.t3d-orbit.o3 { width: 180px; height: 180px; }
.t3d-planet { position: absolute; top: 50%; left: 50%; font-size: 1.4rem; transform: translate(-50%,-50%); }
.t3d-planet.p1 { animation: tajika-planet1 6s linear infinite; }
.t3d-planet.p2 { animation: tajika-planet2 10s linear infinite; }
.t3d-planet.p3 { animation: tajika-planet3 16s linear infinite; }
@keyframes tajika-spin { from { transform: rotateZ(0deg); } to { transform: rotateZ(360deg); } }
@keyframes tajika-planet1 { from { transform: translate(-50%,-50%) rotate(0deg) translateX(40px) rotate(0deg); } to { transform: translate(-50%,-50%) rotate(360deg) translateX(40px) rotate(-360deg); } }
@keyframes tajika-planet2 { from { transform: translate(-50%,-50%) rotate(0deg) translateX(65px) rotate(0deg); } to { transform: translate(-50%,-50%) rotate(360deg) translateX(65px) rotate(-360deg); } }
@keyframes tajika-planet3 { from { transform: translate(-50%,-50%) rotate(0deg) translateX(90px) rotate(0deg); } to { transform: translate(-50%,-50%) rotate(360deg) translateX(90px) rotate(-360deg); } }

/* Bhava Vichara */
:root { --bhava-primary: #4c1d95; --bhava-secondary: #5b21b6; --bhava-tertiary: #6d28d9; --bhava-soft: #f3f0ff; --bhava-gold: #d4af37; }
.bhava-hero { background: linear-gradient(135deg, #0f0c29, #302b63, #24243e); padding: 2rem; border-radius: 1rem; margin-bottom: 1.5rem; color: #fff; }
.bhava-orb { font-size: 3rem; margin-bottom: 0.5rem; }
.bhava-hero-title { font-family: 'Cinzel', serif; color: var(--spiritual-gold); margin-bottom: 0.5rem; }
.bhava-hero-lead { color: var(--spiritual-muted); max-width: 760px; margin: 0 auto; }
.bg-bhava-primary { background: var(--bhava-primary); color: #fff; }
.bg-bhava-secondary { background: var(--bhava-secondary); color: #fff; }
.bg-bhava-tertiary { background: var(--bhava-tertiary); color: #fff; }
.text-bhava-primary { color: var(--bhava-primary); }
.bhava-form-card { border: none; background: #fff; }
.bhava-form-card .card-header { background: var(--bhava-primary); color: #fff; }
.btn-bhava-primary { background: var(--bhava-primary); color: #fff; border: none; }
.btn-bhava-primary:hover { background: var(--bhava-secondary); color: #fff; }
.btn-outline-bhava { color: var(--bhava-primary); border-color: var(--bhava-primary); }
.btn-outline-bhava:hover, .btn-outline-bhava.active { background: var(--bhava-primary); color: #fff; }
.badge-bhava-tradition { background: var(--bhava-gold); color: #000; }
.bhava-mini-card { background: #fff; border-radius: 0.6rem; padding: 0.75rem; box-shadow: 0 2px 8px rgba(0,0,0,0.05); border-top: 3px solid var(--bhava-primary); }
.bhava-house-card { transition: transform .2s, box-shadow .2s; }
.bhava-house-card:hover { transform: translateY(-3px); box-shadow: 0 6px 16px rgba(0,0,0,0.1); }
.bhava-house-card .card-header { cursor: pointer; }
.bhava-area-item { background: #fff; border-left: 4px solid var(--bhava-primary); border-radius: 0.4rem; }
.bhava-area-supportive { border-left-color: #1e8449; }
.bhava-area-mixed { border-left-color: #f1c40f; }
.bhava-area-challenging { border-left-color: #c0392b; }
.bhava-table th { background: var(--bhava-soft); color: var(--bhava-secondary); }
.bhava-3d-stage { perspective: 800px; min-height: 300px; display: flex; align-items: center; justify-content: center; background: radial-gradient(circle at 50% 60%, #1a102e 0%, #0a0614 100%); border-radius: 1rem; overflow: hidden; }
.bhava-3d-orrery { position: relative; width: 240px; height: 240px; transform-style: preserve-3d; animation: bhava-spin 30s linear infinite; }
.bhava-3d-orrery .b3d-sun { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); font-size: 3rem; z-index: 2; }
.b3d-orbit { position: absolute; top: 50%; left: 50%; border-radius: 50%; border: 1px solid rgba(255,255,255,0.2); transform: translate(-50%,-50%); }
.b3d-orbit.o1 { width: 80px; height: 80px; }
.b3d-orbit.o2 { width: 120px; height: 120px; }
.b3d-orbit.o3 { width: 160px; height: 160px; }
.b3d-orbit.o4 { width: 200px; height: 200px; }
.b3d-planet { position: absolute; top: 50%; left: 50%; font-size: 1.4rem; transform: translate(-50%,-50%); }
.b3d-planet.p1 { animation: bhava-planet1 6s linear infinite; }
.b3d-planet.p2 { animation: bhava-planet2 9s linear infinite; }
.b3d-planet.p3 { animation: bhava-planet3 12s linear infinite; }
.b3d-planet.p4 { animation: bhava-planet4 15s linear infinite; }
@keyframes bhava-spin { from { transform: rotateZ(0deg) rotateX(20deg); } to { transform: rotateZ(360deg) rotateX(20deg); } }
@keyframes bhava-planet1 { from { transform: translate(-50%,-50%) rotate(0deg) translateX(40px) rotate(0deg); } to { transform: translate(-50%,-50%) rotate(360deg) translateX(40px) rotate(-360deg); } }
@keyframes bhava-planet2 { from { transform: translate(-50%,-50%) rotate(0deg) translateX(60px) rotate(0deg); } to { transform: translate(-50%,-50%) rotate(360deg) translateX(60px) rotate(-360deg); } }
@keyframes bhava-planet3 { from { transform: translate(-50%,-50%) rotate(0deg) translateX(80px) rotate(0deg); } to { transform: translate(-50%,-50%) rotate(360deg) translateX(80px) rotate(-360deg); } }
@keyframes bhava-planet4 { from { transform: translate(-50%,-50%) rotate(0deg) translateX(100px) rotate(0deg); } to { transform: translate(-50%,-50%) rotate(360deg) translateX(100px) rotate(-360deg); } }

@media print {
    .bhava-print-form, .bhava-view-toggle, .bhava-faq-card, .bhava-3d-stage { display: none !important; }
    .bhava-print-only { display: block !important; }
    .bhava-detail-panel { display: block !important; }
}

/* Gochar Shastra */
:root { --gochar-primary: #1a3a5c; --gochar-secondary: #214162; --gochar-tertiary: #2d5a87; --gochar-soft: #e8f1f8; --gochar-gold: #f1c40f; }
.gochar-hero { background: linear-gradient(135deg, #0b1d2e, #1a3a5c, #122b42); padding: 2rem; border-radius: 1rem; margin-bottom: 1.5rem; color: #fff; }
.gochar-orb { font-size: 3rem; margin-bottom: 0.5rem; }
.gochar-hero-title { font-family: 'Cinzel', serif; color: var(--spiritual-gold); margin-bottom: 0.5rem; }
.gochar-hero-lead { color: var(--spiritual-muted); max-width: 760px; margin: 0 auto; }
.bg-gochar-primary { background: var(--gochar-primary); color: #fff; }
.bg-gochar-secondary { background: var(--gochar-secondary); color: #fff; }
.bg-gochar-tertiary { background: var(--gochar-tertiary); color: #fff; }
.text-gochar-primary { color: var(--gochar-primary); }
.gochar-form-card { border: none; background: #fff; }
.gochar-form-card .card-header { background: var(--gochar-primary); color: #fff; }
.btn-gochar-primary { background: var(--gochar-primary); color: #fff; border: none; }
.btn-gochar-primary:hover { background: var(--gochar-secondary); color: #fff; }
.btn-outline-gochar { color: var(--gochar-primary); border-color: var(--gochar-primary); }
.btn-outline-gochar:hover, .btn-outline-gochar.active { background: var(--gochar-primary); color: #fff; }
.badge-gochar-tradition { background: var(--gochar-gold); color: #000; }
.gochar-mini-card { background: #fff; border-radius: 0.6rem; padding: 0.75rem; box-shadow: 0 2px 8px rgba(0,0,0,0.05); border-top: 3px solid var(--gochar-primary); }
.gochar-planet-card { transition: transform .2s; }
.gochar-planet-card:hover { transform: translateY(-3px); }
.gochar-planet-icon { width: 44px; height: 44px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: #fff; font-size: 1.4rem; margin-bottom: 0.5rem; }
.gochar-influence-item { background: #fff; border-left: 4px solid var(--gochar-primary); border-radius: 0.4rem; }
.gochar-strength-strong { border-left-color: #1e8449; }
.gochar-strength-moderate { border-left-color: #3498db; }
.gochar-strength-mixed { border-left-color: #f1c40f; }
.gochar-strength-mild { border-left-color: #95a5a6; }
.gochar-table th { background: var(--gochar-soft); color: var(--gochar-primary); }
.gochar-3d-stage { perspective: 800px; min-height: 300px; display: flex; align-items: center; justify-content: center; background: radial-gradient(circle at 50% 60%, #0b2638 0%, #06121a 100%); border-radius: 1rem; overflow: hidden; }
.gochar-3d-orrery { position: relative; width: 240px; height: 240px; transform-style: preserve-3d; animation: gochar-spin 30s linear infinite; }
.gochar-3d-orrery .g3d-sun { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); font-size: 3rem; z-index: 2; }
.g3d-orbit { position: absolute; top: 50%; left: 50%; border-radius: 50%; border: 1px solid rgba(255,255,255,0.2); transform: translate(-50%,-50%); }
.g3d-orbit.o1 { width: 80px; height: 80px; }
.g3d-orbit.o2 { width: 120px; height: 120px; }
.g3d-orbit.o3 { width: 160px; height: 160px; }
.g3d-orbit.o4 { width: 200px; height: 200px; }
.g3d-planet { position: absolute; top: 50%; left: 50%; font-size: 1.4rem; transform: translate(-50%,-50%); }
.g3d-planet.p1 { animation: gochar-planet1 6s linear infinite; }
.g3d-planet.p2 { animation: gochar-planet2 9s linear infinite; }
.g3d-planet.p3 { animation: gochar-planet3 12s linear infinite; }
.g3d-planet.p4 { animation: gochar-planet4 15s linear infinite; }
@keyframes gochar-spin { from { transform: rotateZ(0deg) rotateX(20deg); } to { transform: rotateZ(360deg) rotateX(20deg); } }
@keyframes gochar-planet1 { from { transform: translate(-50%,-50%) rotate(0deg) translateX(40px) rotate(0deg); } to { transform: translate(-50%,-50%) rotate(360deg) translateX(40px) rotate(-360deg); } }
@keyframes gochar-planet2 { from { transform: translate(-50%,-50%) rotate(0deg) translateX(60px) rotate(0deg); } to { transform: translate(-50%,-50%) rotate(360deg) translateX(60px) rotate(-360deg); } }
@keyframes gochar-planet3 { from { transform: translate(-50%,-50%) rotate(0deg) translateX(80px) rotate(0deg); } to { transform: translate(-50%,-50%) rotate(360deg) translateX(80px) rotate(-360deg); } }
@keyframes gochar-planet4 { from { transform: translate(-50%,-50%) rotate(0deg) translateX(100px) rotate(0deg); } to { transform: translate(-50%,-50%) rotate(360deg) translateX(100px) rotate(-360deg); } }

@media print {
    .gochar-print-form, .gochar-view-toggle, .gochar-faq-card, .gochar-3d-stage { display: none !important; }
    .gochar-print-only { display: block !important; }
}

/* Ashtakavarga Shastra */
:root { --ashtaka-primary: #1f0d28; --ashtaka-secondary: #2d1b3e; --ashtaka-tertiary: #3d2552; --ashtaka-soft: #f4eef9; --ashtaka-gold: #e5b80b; }
.ashtaka-hero { background: linear-gradient(135deg, #1a0b23 0%, #2d1b3e 50%, #1f0d28 100%); padding: 2rem; border-radius: 1rem; margin-bottom: 1.5rem; color: #fff; }
.ashtaka-orb { font-size: 3rem; margin-bottom: 0.5rem; }
.ashtaka-hero-title { font-family: 'Cinzel', serif; color: var(--ashtaka-gold); margin-bottom: 0.5rem; }
.ashtaka-hero-lead { color: var(--spiritual-muted); max-width: 760px; margin: 0 auto; }
.bg-ashtaka-primary { background: var(--ashtaka-primary); color: #fff; }
.bg-ashtaka-secondary { background: var(--ashtaka-secondary); color: #fff; }
.bg-ashtaka-tertiary { background: var(--ashtaka-tertiary); color: #fff; }
.text-ashtaka-primary { color: var(--ashtaka-primary); }
.badge-ashtaka-tradition { background: var(--ashtaka-gold); color: #000; }
.ashtaka-form-card { border: none; background: #fff; }
.ashtaka-form-card .card-header { background: var(--ashtaka-primary); color: #fff; }
.btn-ashtaka-primary { background: var(--ashtaka-primary); color: #fff; border: none; }
.btn-ashtaka-primary:hover { background: var(--ashtaka-secondary); color: #fff; }
.btn-outline-ashtaka { color: var(--ashtaka-primary); border-color: var(--ashtaka-primary); }
.btn-outline-ashtaka:hover, .btn-outline-ashtaka.active { background: var(--ashtaka-primary); color: #fff; }
.ashtaka-mini-card { background: #fff; border-radius: 0.6rem; padding: 0.75rem; box-shadow: 0 2px 8px rgba(0,0,0,0.05); border-top: 3px solid var(--ashtaka-gold); }
.ashtaka-influence-item { background: #fff; border-left: 4px solid var(--ashtaka-gold); border-radius: 0.4rem; }
.ashtaka-strength-strong { border-left-color: #27ae60; }
.ashtaka-strength-moderate { border-left-color: #2980b9; }
.ashtaka-strength-mixed { border-left-color: #f1c40f; }
.ashtaka-strength-lower { border-left-color: #95a5a6; }
.ashtaka-table th { background: var(--ashtaka-soft); color: var(--ashtaka-primary); }
.ashtaka-table .ashtaka-cell-0 { background: #f8d7da; color: #721c24; }
.ashtaka-table .ashtaka-cell-1 { background: #fff3cd; }
.ashtaka-table .ashtaka-cell-2 { background: #fff3cd; }
.ashtaka-table .ashtaka-cell-3 { background: #d4edda; }
.ashtaka-table .ashtaka-cell-4 { background: #c3e6cb; }
.ashtaka-table .ashtaka-cell-5 { background: #a9dfc5; }
.ashtaka-table .ashtaka-cell-6 { background: #8fd2b5; }
.ashtaka-table .ashtaka-cell-7 { background: #75c5a5; }
.ashtaka-table .ashtaka-cell-8 { background: #5bb894; color: #fff; }
.ashtaka-score-strong { color: #27ae60; font-weight: bold; }
.ashtaka-score-moderate { color: #2980b9; font-weight: bold; }
.ashtaka-score-mixed { color: #f39c12; font-weight: bold; }
.ashtaka-score-lower { color: #95a5a6; font-weight: bold; }
.ashtaka-wheel-card { cursor: pointer; transition: transform .2s; }
.ashtaka-wheel-card:hover { transform: scale(1.05); }
.ashtaka-3d-stage { perspective: 900px; min-height: 340px; display: flex; align-items: center; justify-content: center; }
.ashtaka-3d-wheel { position: relative; width: 260px; height: 260px; border-radius: 50%; border: 2px solid rgba(229,184,11,0.3); transform-style: preserve-3d; transform: rotateX(55deg); box-shadow: 0 20px 50px rgba(0,0,0,0.2); animation: ashtaka-spin 60s linear infinite; }
.ashtaka-wheel-segment { position: absolute; width: 70px; height: 70px; top: 50%; left: 50%; margin: -35px; text-align: center; transform: rotate(var(--a)) translateY(-110px) rotate(calc(var(--a) * -1)); background: rgba(255,255,255,0.95); border-radius: 0.6rem; box-shadow: 0 4px 12px rgba(0,0,0,0.15); display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 0.3rem; cursor: pointer; }
.ashtaka-wheel-segment:hover { background: #fff; box-shadow: 0 6px 16px rgba(229,184,11,0.4); transform: rotate(var(--a)) translateY(-110px) rotate(calc(var(--a) * -1)) scale(1.1); z-index: 2; }
.ashtaka-wheel-score { font-size: 1.3rem; font-weight: bold; line-height: 1; }
.ashtaka-wheel-sign { font-size: 0.72rem; font-weight: 700; color: #333; }
.ashtaka-wheel-house { font-size: 0.65rem; color: #777; }
.ashtaka-wheel-detail { min-height: 80px; }
@keyframes ashtaka-spin { from { transform: rotateX(55deg) rotateZ(0deg); } to { transform: rotateX(55deg) rotateZ(360deg); } }

@media (max-width: 576px) {
    .ashtaka-3d-wheel { width: 210px; height: 210px; }
    .ashtaka-wheel-segment { width: 58px; height: 58px; margin: -29px; transform: rotate(var(--a)) translateY(-88px) rotate(calc(var(--a) * -1)); }
}

@media print {
    .ashtaka-print-form, .ashtaka-view-toggle, .ashtaka-faq-card { display: none !important; }
    .ashtaka-print-only { display: block !important; }
}

.bg-tajika-secondary { background: var(--tajika-secondary); color: #fff; }
.bg-tajika-tertiary { background: var(--tajika-tertiary); color: #fff; }
.text-tajika-primary { color: var(--tajika-primary); }
.text-tajika-secondary { color: var(--tajika-secondary); }

.tajika-faq .card { border: none; border-bottom: 1px solid #eee; }
.tajika-faq .card-header { background: transparent; padding: 0.75rem 1rem; }
.tajika-faq-q { color: var(--tajika-secondary); font-weight: 500; text-decoration: none; }

@media (max-width: 768px) {
    .tajika-hero { padding: 1.25rem; }
    .tajika-orb { width: 70px; height: 70px; }
    .tajika-orb-icon { font-size: 2rem; }
}

@media print {
    .tajika-hero, .tajika-form-card, .tajika-view-toggle, .tajika-faq-card, .tajika-related-card, .tajika-education-card, .tajika-history-card, .tajika-tamil-card, .tajika-print-form { display: none !important; }
    .tajika-result-card, .tajika-chart-card, .tajika-planets-card, .tajika-sahams-card, .tajika-aspects-card, .tajika-areas-card, .tajika-timeline-card, .tajika-print-only { display: block !important; }
    body { background: #fff !important; color: #000 !important; }
}



/* =====================================================
   Ratna Shastra premium module styles
   ===================================================== */

.ratna-module { --ratna-primary: #9b59b6; --ratna-secondary: #6c3483; --ratna-tertiary: #1e8449; --ratna-soft: #f4ecf7; --ratna-warm: #e8daef; }

.ratna-hero { background: linear-gradient(135deg, #f4ecf7 0%, #d7bde2 100%); border-radius: 1rem; padding: 2rem; }
.ratna-orb { width: 100px; height: 100px; border-radius: 50%; background: radial-gradient(circle at 30% 30%, #d7bde2, #9b59b6); box-shadow: 0 8px 24px rgba(155,89,182,0.35); margin: 0 auto; display: flex; align-items: center; justify-content: center; animation: ratna-pulse 3s ease-in-out infinite; }
.ratna-orb-icon { font-size: 2.8rem; color: #fff; }
@keyframes ratna-pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.05); } }

.btn-ratna-primary, .bg-ratna-primary { background: var(--ratna-primary); border-color: var(--ratna-primary); color: #fff; }
.btn-ratna-primary:hover { background: var(--ratna-secondary); border-color: var(--ratna-secondary); color: #fff; }
.btn-outline-ratna { border-color: var(--ratna-primary); color: var(--ratna-primary); }
.btn-outline-ratna:hover, .btn-outline-ratna.active { background: var(--ratna-primary); color: #fff; }

.ratna-form-card, .ratna-result-card, .ratna-all-card, .ratna-navaratna-card, .ratna-uparatna-card, .ratna-gemology-card, .ratna-history-card, .ratna-tamil-card, .ratna-faq-card, .ratna-related-card, .ratna-education-card, .ratna-astro-panel, .ratna-3d-card { border: none; border-radius: 1rem; overflow: hidden; box-shadow: 0 4px 20px rgba(0,0,0,0.08); }

.ratna-empty-icon { font-size: 3rem; margin-bottom: 0.75rem; color: var(--ratna-primary); }
.ratna-hero h2 { text-transform: none; font-weight: 700; color: var(--ratna-secondary); }
.ratna-hero .lead { text-transform: none; color: var(--ratna-secondary); }
.ratna-empty h5 { text-transform: none; font-weight: 600; color: var(--ratna-secondary); }
.ratna-edu-title { text-transform: none; font-size: 1.15rem; font-weight: 700; color: var(--ratna-secondary); margin-bottom: 0.75rem; }

.ratna-gem-primary { background: #fff; border-radius: 1rem; padding: 1rem; box-shadow: 0 4px 16px rgba(0,0,0,0.08); border-top: 5px solid var(--ratna-primary); }
.ratna-gem-emoji { font-size: 3.5rem; }
.ratna-gem-name { font-size: 1.3rem; font-weight: 600; color: var(--ratna-secondary); }

.ratna-table th { background: var(--ratna-soft); color: var(--ratna-secondary); }
.ratna-table td { background: #fff; }

.ratna-reasoning { background: #fff; border-left: 4px solid var(--ratna-tertiary); }

.ratna-row-traditionally_recommended { border-left: 4px solid #1e8449; }
.ratna-row-consider_with_caution { border-left: 4px solid #f1c40f; }
.ratna-row-neutral { border-left: 4px solid #95a5a6; }
.ratna-row-not_traditionally_recommended { border-left: 4px solid #c0392b; }
.ratna-row-insufficient_evidence { border-left: 4px solid #bdc3c7; }

.ratna-navaratna-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.75rem; }
.ratna-navaratna-gem { text-align: center; padding: 0.75rem; border-radius: 0.75rem; background: #fff; box-shadow: 0 2px 8px rgba(0,0,0,0.06); cursor: pointer; transition: transform 0.2s; }
.ratna-navaratna-gem:hover { transform: translateY(-3px); }
.ratna-navaratna-emoji { font-size: 2.2rem; }

.ratna-disclaimer { background: #fff3cd; border-color: #ffeeba; color: #856404; }
.ratna-science-note { background: #d1ecf1; border-color: #bee5eb; color: #0c5460; }

.ratna-3d-stage { perspective: 800px; min-height: 300px; display: flex; align-items: center; justify-content: center; background: radial-gradient(circle at 50% 60%, #2c0e37 0%, #120518 100%); border-radius: 1rem; overflow: hidden; }
.ratna-3d-universe { position: relative; width: 220px; height: 220px; transform-style: preserve-3d; animation: ratna-spin 20s linear infinite; }
.ratna-3d-universe .r3d-center { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); font-size: 3rem; }
.r3d-gem { position: absolute; font-size: 1.5rem; }
.r3d-gem.g1 { top: 5%; left: 50%; transform: translateX(-50%); }
.r3d-gem.g2 { top: 20%; right: 5%; }
.r3d-gem.g3 { bottom: 20%; right: 5%; }
.r3d-gem.g4 { bottom: 5%; left: 50%; transform: translateX(-50%); }
.r3d-gem.g5 { bottom: 20%; left: 5%; }
.r3d-gem.g6 { top: 20%; left: 5%; }
.r3d-gem.g7 { top: 35%; left: 75%; }
.r3d-gem.g8 { top: 60%; left: 75%; }
.r3d-gem.g9 { top: 47%; left: 47%; transform: translateZ(20px); }
@keyframes ratna-spin { from { transform: rotateZ(0deg); } to { transform: rotateZ(360deg); } }

.bg-ratna-secondary { background: var(--ratna-secondary); color: #fff; }
.bg-ratna-tertiary { background: var(--ratna-tertiary); color: #fff; }
.text-ratna-primary { color: var(--ratna-primary); }
.text-ratna-secondary { color: var(--ratna-secondary); }

.ratna-faq .card { border: none; border-bottom: 1px solid #eee; }
.ratna-faq .card-header { background: transparent; padding: 0.75rem 1rem; }
.ratna-faq-q { color: var(--ratna-secondary); font-weight: 500; text-decoration: none; }

@media (max-width: 768px) {
    .ratna-hero { padding: 1.25rem; }
    .ratna-orb { width: 70px; height: 70px; }
    .ratna-orb-icon { font-size: 2rem; }
    .ratna-navaratna-grid { grid-template-columns: repeat(2, 1fr); }
    .ratna-gem-emoji { font-size: 2.5rem; }
}

@media print {
    .ratna-hero, .ratna-form-card, .ratna-view-toggle, .ratna-faq-card, .ratna-related-card, .ratna-education-card, .ratna-history-card, .ratna-tamil-card, .ratna-gemology-card, .ratna-uparatna-card, .ratna-navaratna-card, .ratna-print-form { display: none !important; }
    .ratna-result-card, .ratna-all-card, .ratna-print-only { display: block !important; }
    body { background: #fff !important; color: #000 !important; }
}

/* =====================================================
   Muhurta Shastra module premium styles
   ===================================================== */
.muhurta-hero { background: linear-gradient(135deg, #0f0c29, #302b63, #24243e); padding: 2rem; border-radius: 1rem; margin-bottom: 1.5rem; box-shadow: var(--spiritual-shadow); }
.muhurta-hero-icon { font-size: 3rem; margin-bottom: 0.5rem; }
.muhurta-hero-title { font-family: 'Cinzel', serif; color: var(--spiritual-gold); margin-bottom: 0.5rem; }
.muhurta-hero-lead { color: var(--spiritual-muted); max-width: 760px; margin: 0 auto; }

.muhurta-best-card { border: none; border-top: 4px solid var(--spiritual-gold); background: var(--spiritual-card-bg); }
.muhurta-best-card .card-header { background: linear-gradient(90deg, #4c1d95, #7c3aed); }
.muhurta-best-time { display: flex; align-items: center; justify-content: center; gap: 0.5rem; flex-wrap: wrap; }
.muhurta-best-time .time-main { font-size: 1.6rem; font-weight: 700; color: var(--spiritual-indigo); }
.muhurta-best-time .time-divider { color: var(--spiritual-muted); }

.muhurta-reason-list .list-group-item { padding: 0.5rem 0; background: transparent; border: none; border-bottom: 1px solid rgba(0,0,0,0.05); }

.muhurta-calendar-card { background: var(--spiritual-card-bg); }
.muhurta-calendar-card .card-header { background: linear-gradient(90deg, #0f766e, #14b8a6); }
.muhurta-calendar-scroll { overflow-x: auto; padding: 0.5rem; }
.muhurta-calendar-days { gap: 0.75rem; min-width: max-content; }
.muhurta-day-column { width: 160px; flex: 0 0 160px; border: 1px solid rgba(0,0,0,0.08); border-radius: 0.5rem; background: #fff; overflow: hidden; }
.muhurta-day-column .day-header { background: #f1f5f9; padding: 0.5rem; text-align: center; font-size: 0.85rem; border-bottom: 1px solid rgba(0,0,0,0.08); }
.muhurta-day-column .day-bars { position: relative; height: 600px; background: #f8fafc; }
.muhurta-day-column .period-bar { position: absolute; left: 4px; right: 4px; border-radius: 4px; font-size: 0.65rem; display: flex; align-items: center; justify-content: center; text-align: center; overflow: hidden; color: #fff; padding: 2px; line-height: 1.1; }
.muhurta-day-column .period-bar.bad { background: #ef4444; opacity: 0.85; }
.muhurta-day-column .period-bar.good { background: #3b82f6; opacity: 0.75; }
.muhurta-day-column .period-bar.window { background: #10b981; opacity: 0.9; }
.muhurta-day-column .sunrise-marker, .muhurta-day-column .sunset-marker { position: absolute; left: 0; right: 0; height: 2px; background: #f59e0b; }

.muhurta-day-card { border: none; background: var(--spiritual-card-bg); }
.muhurta-day-card .card-header { background: #f1f5f9; }
.muhurta-window-list .list-group-item { padding: 0.5rem 0; }

.muhurta-explorer-card { background: var(--spiritual-card-bg); }
.muhurta-explorer-card .card-header { background: linear-gradient(90deg, #0369a1, #0ea5e9); }
.muhurta-panchang-table th { background: #f1f5f9; }

.muhurta-dosha-card { background: var(--spiritual-card-bg); }
.muhurta-dosha-card .card-header { background: #fee2e2; color: #7f1d1d; }

.muhurta-edu-card { background: var(--spiritual-card-bg); }
.muhurta-edu-card .card-header { background: #ede9fe; color: #5b21b6; }

.bg-muhurta-primary { background: linear-gradient(90deg, #4c1d95, #7c3aed); color: #fff; }
.bg-muhurta-secondary { background: linear-gradient(90deg, #0f766e, #14b8a6); color: #fff; }
.bg-muhurta-tertiary { background: linear-gradient(90deg, #0369a1, #0ea5e9); color: #fff; }
.bg-muhurta-warning { background: #fee2e2; }
.bg-muhurta-light { background: #ede9fe; }
.text-muhurta-primary { color: #7c3aed; }

.muhurta-form-card { border: none; background: var(--spiritual-card-bg); }
.muhurta-form-card .card-header { background: linear-gradient(90deg, #4c1d95, #7c3aed); color: #fff; }

.btn-muhurta-primary { background: linear-gradient(90deg, #4c1d95, #7c3aed); color: #fff; border: none; }
.btn-muhurta-primary:hover { background: linear-gradient(90deg, #5b21b6, #7c3aed); color: #fff; }

.muhurta-spinner { margin-left: 0.5rem; }

@media (max-width: 768px) {
    .muhurta-hero { padding: 1.25rem; }
    .muhurta-day-column { width: 120px; flex: 0 0 120px; }
}

@media print {
    .muhurta-hero, .muhurta-calendar-card, .muhurta-dosha-card, .muhurta-edu-card { display: none !important; }
    .muhurta-best-card, .muhurta-day-card, .muhurta-explorer-card, .muhurta-print-only { display: block !important; }
}

/* ---------------------------------------------------------------------------
 * Home important modules carousel
 * --------------------------------------------------------------------------- */
.home-modules-section { padding: 0 0 2rem; }

.home-modules-carousel {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.home-modules-track {
    display: flex;
    gap: 1rem;
    overflow-x: auto;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    padding: 0.5rem 0;
    flex: 1 1 auto;
    -ms-overflow-style: none;
    scrollbar-width: none;
}

.home-modules-track::-webkit-scrollbar { display: none; }

.home-module-card {
    flex: 0 0 245px;
    min-width: 245px;
    min-height: 240px;
    scroll-snap-align: start;
    background: linear-gradient(145deg, rgba(255,255,255,0.98), rgba(245,243,255,0.94));
    border: 1px solid rgba(255, 255, 255, 0.75);
    border-radius: 1.25rem;
    padding: 1.5rem 1.25rem;
    text-align: center;
    text-decoration: none;
    color: #1f2937;
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.35s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    height: 100%;
    box-shadow: 0 10px 25px rgba(0,0,0,0.12), 0 4px 10px rgba(0,0,0,0.04);
    position: relative;
    overflow: hidden;
}

.home-module-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: var(--accent, var(--spiritual-purple));
    opacity: 0.85;
}

.home-module-card:hover {
    transform: translateY(-8px) scale(1.03);
    box-shadow: 0 24px 48px rgba(0,0,0,0.22), 0 8px 20px rgba(124,58,237,0.12);
    background: #fff;
    text-decoration: none;
    color: #1f2937;
}

.home-module-icon {
    width: 58px;
    height: 58px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.7rem;
    margin-bottom: 0.85rem;
    box-shadow: 0 8px 24px rgba(0,0,0,0.18), 0 0 0 4px rgba(255,255,255,0.5);
}

.home-module-card h5 {
    font-size: 0.9rem;
    font-weight: 700;
    margin: 0;
    line-height: 1.35;
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.home-module-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 1rem;
    padding: 0.45rem 1.25rem;
    border-radius: 2rem;
    background: linear-gradient(90deg, #ff8a4c, #f43f5e);
    color: #fff;
    font-size: 0.78rem;
    font-weight: 600;
    box-shadow: 0 6px 16px rgba(244,63,94,0.35);
    transition: transform 0.2s, box-shadow 0.2s;
}

.home-module-card:hover .home-module-cta {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(244,63,94,0.45);
}

.home-modules-btn {
    flex: 0 0 auto;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: none;
    background: rgba(255, 255, 255, 0.15);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    cursor: pointer;
    transition: background 0.2s, transform 0.2s;
    z-index: 2;
}

.home-modules-btn:hover {
    background: rgba(255, 255, 255, 0.3);
    transform: scale(1.08);
}

.home-modules-btn:disabled,
.home-modules-btn.disabled {
    opacity: 0.3;
    cursor: default;
}

@media (max-width: 768px) {
    .home-module-card { flex: 0 0 220px; min-width: 220px; }
    .home-modules-btn { display: none; }
}


