* { margin: 0; padding: 0; box-sizing: border-box; }
html, body { height: 100%; overflow: hidden; font-family: 'Inter', sans-serif; }

/* ── Animated Mesh Gradient ── */
.mesh-bg {
    background: linear-gradient(-45deg, #0f172a, #064e3b, #1e3a5f, #065f46, #0c4a6e);
    background-size: 400% 400%;
    animation: gradientShift 15s ease infinite;
}
@keyframes gradientShift {
    0%   { background-position: 0% 50%; }
    25%  { background-position: 100% 0%; }
    50%  { background-position: 100% 100%; }
    75%  { background-position: 0% 100%; }
    100% { background-position: 0% 50%; }
}

/* ── Decorative Orbs ── */
.orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(80px);
    opacity: 0.35;
    pointer-events: none;
}
.orb-1 { width: 500px; height: 500px; background: #10b981; top: -10%; right: -5%; animation: orbFloat1 8s ease-in-out infinite; }
.orb-2 { width: 400px; height: 400px; background: #3b82f6; bottom: -15%; left: -8%; animation: orbFloat2 10s ease-in-out infinite; }
.orb-3 { width: 300px; height: 300px; background: #f59e0b; top: 50%; left: 50%; transform: translate(-50%, -50%); animation: orbFloat3 12s ease-in-out infinite; }

@keyframes orbFloat1 {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(-40px, 30px) scale(1.1); }
}
@keyframes orbFloat2 {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(30px, -40px) scale(1.15); }
}
@keyframes orbFloat3 {
    0%, 100% { transform: translate(-50%, -50%) scale(1); }
    50% { transform: translate(-40%, -60%) scale(1.2); }
}

/* ── Floating Cards ── */
@keyframes float {
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-8px); }
}
.float-1 { animation: float 3s ease-in-out infinite; }
.float-2 { animation: float 3s ease-in-out 0.5s infinite; }
.float-3 { animation: float 3s ease-in-out 1s infinite; }

/* ── CTA Pulse Glow ── */
@keyframes pulseGlow {
    0%, 100% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.5); }
    50% { box-shadow: 0 0 30px 10px rgba(16, 185, 129, 0.3); }
}
.pulse-glow { animation: pulseGlow 2.5s ease-in-out infinite; }

/* ── Slide Up Animations ── */
@keyframes slideUp {
    from { opacity: 0; transform: translateY(40px); }
    to { opacity: 1; transform: translateY(0); }
}
.slide-up   { animation: slideUp 0.8s ease-out forwards; }
.slide-up-d1 { animation: slideUp 0.8s 0.15s ease-out forwards; opacity: 0; }
.slide-up-d2 { animation: slideUp 0.8s 0.3s ease-out forwards; opacity: 0; }
.slide-up-d3 { animation: slideUp 0.8s 0.45s ease-out forwards; opacity: 0; }
.slide-up-d4 { animation: slideUp 0.8s 0.6s ease-out forwards; opacity: 0; }

/* ── Toast ── */
@keyframes toastIn {
    from { opacity: 0; transform: translateY(20px) scale(0.95); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes toastOut {
    from { opacity: 1; transform: translateY(0) scale(1); }
    to { opacity: 0; transform: translateY(20px) scale(0.95); }
}
.toast-in { animation: toastIn 0.4s ease-out forwards; }
.toast-out { animation: toastOut 0.4s ease-in forwards; }

/* ── Stat Card Hover ── */
.stat-card {
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
    cursor: default;
}
.stat-card:hover {
    transform: translateY(-6px) scale(1.05);
    box-shadow: 0 16px 40px rgba(0,0,0,0.2);
    border-color: rgba(255,255,255,0.4);
}

/* ── Glassmorphism ── */
.glass {
    background: rgba(255, 255, 255, 0.08);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid rgba(255,255,255,0.15);
}

/* ── Grid Overlay ── */
.grid-overlay {
    background-image:
        linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
    background-size: 60px 60px;
}

/* ── Feature Pill Hover ── */
.feature-pill {
    transition: all 0.3s ease;
}
.feature-pill:hover {
    transform: scale(1.08);
    background: rgba(255,255,255,0.15);
}

/* ── Admin Table ── */
#adminTableBody tr {
    border-bottom: 1px solid rgba(255,255,255,0.05);
}
#adminTableBody tr:hover {
    background: rgba(255,255,255,0.03);
}

/* ── Custom Scrollbar (Admin) ── */
.overflow-auto::-webkit-scrollbar { width: 6px; }
.overflow-auto::-webkit-scrollbar-track { background: transparent; }
.overflow-auto::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.1); border-radius: 3px; }
.overflow-auto::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.2); }