/* Custom styles for Advisor Polaris - Professional Navy, Gold & Gray Theme with Sleek Animations */

/* Professional Color Palette */
:root {
    /* Primary Navy Blue Shades */
    --ac-navy-primary: #1e3a8a;      /* Main navy blue */
    --ac-navy-dark: #1e40af;         /* Darker navy for accents */
    --ac-navy-light: #3b82f6;        /* Lighter navy for hover states */
    --ac-navy-subtle: #eff6ff;       /* Very light navy background */
    
    /* Gold Accent Colors */
    --ac-gold-primary: #d4a017;      /* Main gold */
    --ac-gold-dark: #b8860b;         /* Darker gold */
    --ac-gold-light: #f7dc6f;        /* Light gold for backgrounds */
    --ac-gold-subtle: #fefcf3;       /* Very light gold background */
    
    /* Professional Grays */
    --ac-gray-primary: #6b7280;      /* Main gray */
    --ac-gray-dark: #374151;         /* Dark gray for text */
    --ac-gray-light: #d1d5db;        /* Light gray for borders */
    --ac-gray-subtle: #f9fafb;       /* Very light gray background */
    --ac-white: #ffffff;             /* Pure white */
    --ac-off-white: #f8fafc;         /* Off-white for contrast */
    
    /* Status Colors (maintaining functionality) */
    --ac-success: #059669;           /* Professional green */
    --ac-warning: var(--ac-gold-primary); /* Use gold for warnings */
    --ac-danger: #dc2626;            /* Professional red */
    --ac-info: var(--ac-navy-light); /* Use navy for info */
    
    /* Legacy compatibility */
    --ac-primary: var(--ac-navy-primary);
    --ac-secondary: var(--ac-gray-primary);
}

/* Professional UI Enhancements */

/* Body and background styling */
body {
    background-color: var(--ac-gray-subtle);
    color: var(--ac-gray-dark);
}

/* Authentic Blue Nebula Background */
body.nebula-background {
    background: 
        /* Organic nebula clouds - more irregular shapes */
        radial-gradient(ellipse 800px 400px at 25% 40%, rgba(30, 144, 255, 0.4) 0%, transparent 70%),
        radial-gradient(ellipse 600px 800px at 75% 20%, rgba(65, 105, 225, 0.3) 0%, transparent 60%),
        radial-gradient(ellipse 700px 500px at 40% 85%, rgba(0, 191, 255, 0.25) 0%, transparent 65%),
        radial-gradient(ellipse 500px 600px at 80% 70%, rgba(70, 130, 180, 0.35) 0%, transparent 55%),
        radial-gradient(ellipse 900px 300px at 60% 30%, rgba(100, 149, 237, 0.2) 0%, transparent 80%),
        /* Dust and texture layers */
        radial-gradient(ellipse 1200px 600px at 30% 60%, rgba(25, 25, 112, 0.3) 0%, transparent 75%),
        radial-gradient(ellipse 800px 1000px at 70% 40%, rgba(72, 61, 139, 0.2) 0%, transparent 85%),
        /* Base space background with subtle variations */
        linear-gradient(135deg, 
            #0a0a1a 0%, 
            #001122 15%, 
            #001a33 30%, 
            #003366 45%, 
            #001a2e 60%, 
            #002244 75%, 
            #000d1a 90%, 
            #050510 100%) !important;
    background-attachment: fixed !important;
    min-height: 100vh !important;
    position: relative;
}

/* Create star field with CSS */
body.nebula-background::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: 
        /* Large bright stars */
        radial-gradient(2px 2px at 20px 30px, #fff, transparent),
        radial-gradient(2px 2px at 40px 70px, #fff, transparent),
        radial-gradient(1px 1px at 90px 40px, #fff, transparent),
        radial-gradient(1px 1px at 130px 80px, #fff, transparent),
        radial-gradient(2px 2px at 160px 30px, #fff, transparent),
        /* Medium stars */
        radial-gradient(1px 1px at 300px 200px, #fff, transparent),
        radial-gradient(1px 1px at 420px 150px, #fff, transparent),
        radial-gradient(1px 1px at 480px 250px, #fff, transparent),
        radial-gradient(1px 1px at 550px 100px, #fff, transparent),
        radial-gradient(1px 1px at 650px 300px, #fff, transparent);
    background-repeat: repeat;
    background-size: 700px 400px, 800px 500px, 900px 600px;
    animation: twinkle-field 8s ease-in-out infinite alternate;
    pointer-events: none;
    z-index: 1;
}

/* Animated twinkling effects */
@keyframes twinkle-field {
    0% { opacity: 0.7; }
    50% { opacity: 1; }
    100% { opacity: 0.8; }
}

@keyframes twinkle-star {
    0% { opacity: 0.3; transform: scale(1); }
    50% { opacity: 1; transform: scale(1.1); }
    100% { opacity: 0.4; transform: scale(1); }
}

@keyframes bright-twinkle {
    0% { opacity: 0.8; transform: scale(1); }
    50% { opacity: 1; transform: scale(1.2); }
    100% { opacity: 0.9; transform: scale(1); }
}

@keyframes north-star-pulse {
    0% { 
        opacity: 0.9; 
        transform: scale(1); 
        box-shadow: 0 0 15px #ffd700, 0 0 30px rgba(255, 215, 0, 0.6), 0 0 45px rgba(255, 215, 0, 0.3);
    }
    100% { 
        opacity: 1; 
        transform: scale(1.3); 
        box-shadow: 0 0 25px #ffd700, 0 0 50px rgba(255, 215, 0, 0.8), 0 0 75px rgba(255, 215, 0, 0.5);
    }
}

/* Z-index layers to ensure content stays above stars */
.landing-content {
    position: relative;
    z-index: 10;
}

/* Ensure all content elements stay above stars */
.card, .container, .navbar, .header-section, .row {
    position: relative;
    z-index: 10;
}

/* Specifically for cards and content boxes */
.card-polaris {
    position: relative;
    z-index: 15;
    background: rgba(52, 58, 64, 0.95) !important;
    backdrop-filter: blur(10px) saturate(180%);
    border: 1px solid rgba(108, 117, 125, 0.3) !important;
    color: white !important;
}

.card-polaris .card-body {
    color: white !important;
}

.card-polaris .card-text {
    color: rgba(255, 255, 255, 0.9) !important;
}

.card-polaris input {
    background: rgba(73, 80, 87, 0.8) !important;
    border: 1px solid rgba(108, 117, 125, 0.5) !important;
    color: white !important;
}

.card-polaris input::placeholder {
    color: rgba(255, 255, 255, 0.6) !important;
}

/* Navigation bar and all dropdowns stay above everything */
.navbar {
    position: relative;
    z-index: 1000000 !important;
}

/* Nuclear approach: Force navbar dropdowns above all dashboard widgets */
.navbar .nav-item {
    position: relative;
    z-index: 1000000 !important;
}

.navbar .nav-item.dropdown {
    position: relative;
    z-index: 1000001 !important;
}

/* Navigation styling */
.navbar {
    background: linear-gradient(135deg, var(--ac-navy-primary) 0%, var(--ac-navy-dark) 100%);
    border-bottom: 3px solid var(--ac-gold-primary);
}

.navbar-brand {
    color: var(--ac-white) !important;
    font-weight: 700;
    font-size: 1.4rem;
}

.navbar-nav .nav-link {
    color: rgba(255, 255, 255, 0.9) !important;
    font-weight: 500;
    transition: all 0.3s ease;
}

.navbar-nav .nav-link:hover {
    color: var(--ac-gold-light) !important;
    transform: translateY(-1px);
}

/* Card styling with professional enhancement */
.card {
    transition: all 0.3s ease-in-out;
    border: 1px solid var(--ac-gray-light);
    border-radius: 8px;
    background-color: var(--ac-white);
    box-shadow: 0 2px 4px rgba(30, 58, 138, 0.1);
}

.card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(30, 58, 138, 0.15);
    border-color: var(--ac-navy-light);
}

.card-header {
    background: linear-gradient(135deg, var(--ac-navy-subtle) 0%, var(--ac-off-white) 100%);
    border-bottom: 2px solid var(--ac-navy-light);
    font-weight: 600;
    color: var(--ac-navy-primary);
}

/* Professional Button Styling */
.btn {
    border-radius: 6px;
    font-weight: 600;
    padding: 8px 16px;
    transition: all 0.3s ease;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-size: 0.875rem;
}

.btn-primary {
    background: linear-gradient(135deg, var(--ac-navy-primary) 0%, var(--ac-navy-dark) 100%);
    border-color: var(--ac-navy-primary);
    color: var(--ac-white);
}

.btn-primary:hover {
    background: linear-gradient(135deg, var(--ac-navy-dark) 0%, var(--ac-navy-primary) 100%);
    border-color: var(--ac-navy-dark);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(30, 58, 138, 0.3);
}

.btn-warning {
    background: linear-gradient(135deg, var(--ac-gold-primary) 0%, var(--ac-gold-dark) 100%);
    border-color: var(--ac-gold-primary);
    color: var(--ac-white);
}

.btn-warning:hover {
    background: linear-gradient(135deg, var(--ac-gold-dark) 0%, var(--ac-gold-primary) 100%);
    border-color: var(--ac-gold-dark);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(212, 160, 23, 0.3);
}

.btn-secondary {
    background: linear-gradient(135deg, var(--ac-gray-primary) 0%, var(--ac-gray-dark) 100%);
    border-color: var(--ac-gray-primary);
    color: var(--ac-white);
}

.btn-secondary:hover {
    background: linear-gradient(135deg, var(--ac-gray-dark) 0%, var(--ac-gray-primary) 100%);
    border-color: var(--ac-gray-dark);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(107, 114, 128, 0.3);
}

/* Priority badges */
.badge.priority-high {
    background-color: var(--ac-danger) !important;
}

.badge.priority-medium {
    background-color: var(--ac-warning) !important;
    color: #000 !important;
}

.badge.priority-low {
    background-color: var(--ac-success) !important;
}

/* Status badges */
.badge.status-open {
    background-color: var(--ac-danger) !important;
}

.badge.status-in-progress {
    background-color: var(--ac-warning) !important;
    color: #000 !important;
}

.badge.status-resolved {
    background-color: var(--ac-success) !important;
}

/* Category badges */
.bg-purple {
    background-color: #8b5cf6 !important;
}

.bg-muted {
    background-color: #6c757d !important;
}

/* Clickable cards */
.clickable-card {
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.clickable-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

/* Professional Table Styling */
.table {
    background-color: var(--ac-white);
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 4px rgba(30, 58, 138, 0.1);
}

.table th {
    background: linear-gradient(135deg, var(--ac-navy-primary) 0%, var(--ac-navy-dark) 100%);
    color: var(--ac-white);
    border: none;
    font-weight: 600;
    text-transform: uppercase;
    font-size: 0.8rem;
    letter-spacing: 0.8px;
    padding: 16px 12px;
}

.table td {
    padding: 12px;
    border-color: var(--ac-gray-light);
    vertical-align: middle;
}

.table tbody tr:hover {
    background-color: var(--ac-navy-subtle);
    transition: background-color 0.2s ease;
}

/* Professional Form Styling */
.form-control,
.form-select {
    border: 2px solid var(--ac-gray-light);
    border-radius: 6px;
    padding: 10px 14px;
    font-size: 0.95rem;
    transition: all 0.3s ease;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--ac-navy-primary);
    box-shadow: 0 0 0 0.25rem rgba(30, 58, 138, 0.15);
    background-color: var(--ac-navy-subtle);
}

.form-label {
    font-weight: 600;
    color: var(--ac-navy-primary);
    margin-bottom: 6px;
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Priority form select styling */
.form-select.border-danger {
    border-color: var(--ac-danger) !important;
}

.form-select.border-warning {
    border-color: var(--ac-warning) !important;
}

.form-select.border-success {
    border-color: var(--ac-success) !important;
}

/* Loading states */
.loading {
    opacity: 0.6;
    pointer-events: none;
}

/* Professional Statistics Cards */
.stats-card {
    background: linear-gradient(135deg, var(--ac-white) 0%, var(--ac-off-white) 100%);
    border: none;
    border-left: 6px solid var(--ac-navy-primary);
    border-radius: 12px;
    padding: 20px;
    box-shadow: 0 4px 12px rgba(30, 58, 138, 0.12);
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.stats-card::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, var(--ac-navy-primary), var(--ac-navy-light));
    opacity: 0.1;
    border-radius: 50%;
    transform: translate(30px, -30px);
}

.stats-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 25px rgba(30, 58, 138, 0.2);
    border-left-color: var(--ac-gold-primary);
}

.stats-card.danger {
    border-left-color: var(--ac-danger);
}

.stats-card.danger::before {
    background: linear-gradient(135deg, var(--ac-danger), #fca5a5);
}

.stats-card.warning {
    border-left-color: var(--ac-gold-primary);
}

.stats-card.warning::before {
    background: linear-gradient(135deg, var(--ac-gold-primary), var(--ac-gold-light));
}

.stats-card.success {
    border-left-color: var(--ac-success);
}

.stats-card.success::before {
    background: linear-gradient(135deg, var(--ac-success), #6ee7b7);
}

.stats-card.info {
    border-left-color: var(--ac-navy-light);
}

.stats-card .card-title {
    color: var(--ac-navy-primary);
    font-weight: 700;
    font-size: 2.5rem;
    margin-bottom: 8px;
}

.stats-card .card-text {
    color: var(--ac-gray-primary);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-size: 0.85rem;
}

/* Professional Badge Styling */
.badge {
    font-weight: 600;
    padding: 6px 12px;
    border-radius: 20px;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.badge.bg-primary {
    background: linear-gradient(135deg, var(--ac-navy-primary), var(--ac-navy-light)) !important;
    color: var(--ac-white);
}

.badge.bg-warning {
    background: linear-gradient(135deg, var(--ac-gold-primary), var(--ac-gold-dark)) !important;
    color: var(--ac-white);
}

.badge.bg-secondary {
    background: linear-gradient(135deg, var(--ac-gray-primary), var(--ac-gray-dark)) !important;
    color: var(--ac-white);
}

.badge.bg-success {
    background: linear-gradient(135deg, var(--ac-success), #047857) !important;
    color: var(--ac-white);
}

/* Light Theme Heading Colors (ensure proper visibility) */
h1, h2, h3, h4, h5, h6 {
    color: var(--ac-gray-dark) !important;
}

/* Light mode card headers - ensure proper contrast */
body:not(.dark-theme) .card-header h1,
body:not(.dark-theme) .card-header h2,
body:not(.dark-theme) .card-header h3,
body:not(.dark-theme) .card-header h4,
body:not(.dark-theme) .card-header h5,
body:not(.dark-theme) .card-header h6 {
    color: var(--ac-navy-primary) !important;
}

/* Light mode navbar brand text */
body:not(.dark-theme) .navbar-brand,
body:not(.dark-theme) .navbar-nav .nav-link {
    color: var(--ac-white) !important;
}

/* Exception for landing page headings - make them white on starfield background */
.landing-content h1.hero-title,
.landing-content .hero-title,
.landing-content h2,
body.nebula-background .container .row .col-12 h2 {
    color: white !important;
    -webkit-text-fill-color: white !important;
    text-shadow: none !important;
    background: none !important;
    background-image: none !important;
}

/* Force landing page logo to be white without any effects */
.landing-content .adaptive-logo,
.hero-title .adaptive-logo,
h1.hero-title .adaptive-logo {
    filter: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
    opacity: 1 !important;
}

/* Dark mode footer text visibility */
body.dark-theme footer h5,
body.dark-theme footer p,
body.dark-theme footer .text-muted,
body.dark-theme footer * {
    color: white !important;
    opacity: 1 !important;
}

/* Light mode footer text - ensure proper contrast */
body:not(.dark-theme) footer h5,
body:not(.dark-theme) footer h6 {
    color: var(--ac-navy-primary) !important;
}

body:not(.dark-theme) footer p,
body:not(.dark-theme) footer .text-muted {
    color: var(--ac-gray-primary) !important;
}

/* Landing page footer (on dark background) needs white text */
body.nebula-background footer h5,
body.nebula-background footer p,
body.nebula-background footer .text-muted,
body.nebula-background footer * {
    color: white !important;
    opacity: 1 !important;
}

.card-header h1,
.card-header h2,
.card-header h3,
.card-header h4,
.card-header h5,
.card-header h6 {
    color: var(--ac-gray-dark) !important;
}

/* Dark Theme Overrides */
body.dark-theme {
    background-color: #1a1a1a;
    color: #e5e5e5;
}

/* Dark theme navigation */
body.dark-theme .navbar {
    background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%) !important;
    border-bottom: 3px solid var(--ac-gold-primary);
}

/* Dark theme cards */
body.dark-theme .card {
    background-color: #2d3748;
    border-color: #4a5568;
    color: #e5e5e5;
}

body.dark-theme .card-header {
    background: linear-gradient(135deg, #1a202c 0%, #2d3748 100%);
    border-bottom: 2px solid var(--ac-navy-light);
    color: #e5e5e5;
}

/* Dark theme tables */
body.dark-theme .table {
    background-color: #2d3748;
    color: #e5e5e5;
}

body.dark-theme .table th {
    background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%);
    color: var(--ac-white);
}

body.dark-theme .table td {
    border-color: #4a5568;
}

body.dark-theme .table tbody tr:hover {
    background-color: #374151;
}

/* Dark theme forms */
body.dark-theme .form-control,
body.dark-theme .form-select {
    background-color: #374151;
    border-color: #4a5568;
    color: #e5e5e5;
}

body.dark-theme .form-control:focus,
body.dark-theme .form-select:focus {
    background-color: #1a202c;
    border-color: var(--ac-navy-light);
    color: #e5e5e5;
}

body.dark-theme .form-label {
    color: #cbd5e0;
}

/* Dark theme statistics cards */
body.dark-theme .stats-card {
    background: linear-gradient(135deg, #2d3748 0%, #374151 100%);
    color: #e5e5e5;
}

body.dark-theme .stats-card .card-title {
    color: var(--ac-gold-light);
}

body.dark-theme .stats-card .card-text {
    color: #cbd5e0;
}

/* Dark theme text colors */
body.dark-theme .text-muted {
    color: #a0aec0 !important;
}

body.dark-theme h1, 
body.dark-theme h2, 
body.dark-theme h3, 
body.dark-theme h4, 
body.dark-theme h5, 
body.dark-theme h6 {
    color: #ffffff !important;
}

body.dark-theme .card-header h1,
body.dark-theme .card-header h2,
body.dark-theme .card-header h3,
body.dark-theme .card-header h4,
body.dark-theme .card-header h5,
body.dark-theme .card-header h6 {
    color: #ffffff !important;
}

/* Dark theme borders */
body.dark-theme .border-secondary {
    border-color: #4a5568 !important;
}

body.dark-theme hr {
    border-color: #4a5568;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .container {
        padding-left: 15px;
        padding-right: 15px;
    }
    
    .card-header h4,
    .card-header h5 {
        font-size: 1.1rem;
    }
    
    .btn-group-sm .btn {
        padding: 0.25rem 0.4rem;
    }
}

/* Chart container */
.chart-container {
    position: relative;
    height: 300px;
}

/* File upload styling */
.form-control[type="file"]:focus {
    border-color: var(--ac-primary);
    box-shadow: 0 0 0 0.2rem rgba(0, 102, 204, 0.25);
}

/* Navbar brand enhancement */
.navbar-brand {
    font-weight: 600;
    font-size: 1.35rem;
}

/* Footer styling */
footer {
    margin-top: auto;
}

/* Utility classes */
.text-truncate-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.border-left-primary {
    border-left: 4px solid var(--ac-primary) !important;
}

.border-left-danger {
    border-left: 4px solid var(--ac-danger) !important;
}

.border-left-warning {
    border-left: 4px solid var(--ac-warning) !important;
}

.border-left-success {
    border-left: 4px solid var(--ac-success) !important;
}

/* ====== SLEEK ANIMATION ENHANCEMENTS ====== */

/* Global Animation Settings */
* {
    scroll-behavior: smooth;
}

/* Page Load Animations */
.page-enter {
    animation: pageEnter 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes pageEnter {
    0% {
        opacity: 0;
        transform: translateY(20px) scale(0.98);
    }
    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* Staggered Card Animations */
.card-animate {
    opacity: 0;
    transform: translateY(30px);
    animation: cardSlideUp 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.card-animate:nth-child(1) { animation-delay: 0.1s; }
.card-animate:nth-child(2) { animation-delay: 0.2s; }
.card-animate:nth-child(3) { animation-delay: 0.3s; }
.card-animate:nth-child(4) { animation-delay: 0.4s; }
.card-animate:nth-child(5) { animation-delay: 0.5s; }
.card-animate:nth-child(6) { animation-delay: 0.6s; }

@keyframes cardSlideUp {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Enhanced Button Animations */
.btn {
    position: relative;
    overflow: hidden;
    transform: translateZ(0);
}

.btn::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transition: left 0.6s;
}

.btn:hover::before {
    left: 100%;
}

.btn:active {
    transform: scale(0.98);
    transition: transform 0.1s ease;
}

/* Ripple Effect for Buttons */
.btn-ripple {
    position: relative;
    overflow: hidden;
}

.btn-ripple::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.5);
    transform: translate(-50%, -50%);
    transition: width 0.6s, height 0.6s;
}

.btn-ripple:active::after {
    width: 300px;
    height: 300px;
}

/* Enhanced Card Hover Effects */
.card-smooth {
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    transform-origin: center;
}

.card-smooth:hover {
    transform: translateY(-8px) scale(1.02);
    box-shadow: 0 20px 40px rgba(30, 58, 138, 0.15);
}

/* Floating Animation for Important Elements */
.float-animation {
    animation: float 3s ease-in-out infinite;
}

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

/* Pulse Animation for Notifications */
.pulse-animation {
    animation: pulse 2s ease-in-out infinite;
}

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

/* Smooth Loading States */
.loading-shimmer {
    position: relative;
    overflow: hidden;
    background-color: #f8f9fa;
}

.loading-shimmer::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        90deg,
        transparent,
        rgba(255, 255, 255, 0.6),
        transparent
    );
    animation: shimmer 1.5s infinite;
}

@keyframes shimmer {
    to {
        left: 100%;
    }
}

/* Advanced Table Row Animations */
.table tbody tr {
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.table tbody tr:hover {
    transform: translateX(5px);
    background-color: var(--ac-navy-subtle);
    box-shadow: 0 4px 15px rgba(30, 58, 138, 0.1);
}

/* Form Field Focus Animations */
.form-control,
.form-select {
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    position: relative;
}

.form-control:focus,
.form-select:focus {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(30, 58, 138, 0.15);
}

/* Badge Animations */
.badge {
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.badge:hover {
    transform: scale(1.1);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

/* Navigation Link Animations */
.navbar-nav .nav-link {
    position: relative;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.navbar-nav .nav-link::after {
    content: '';
    position: absolute;
    bottom: -5px;
    left: 50%;
    width: 0;
    height: 2px;
    background: var(--ac-gold-primary);
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    transform: translateX(-50%);
}

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

/* Modal Entrance Animations */
.modal.fade .modal-dialog {
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    transform: translateY(-50px) scale(0.9);
}

.modal.show .modal-dialog {
    transform: translateY(0) scale(1);
}

/* Icon Rotation on Hover */
.icon-rotate {
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.icon-rotate:hover {
    transform: rotate(10deg);
}

/* Smooth Page Transitions */
.page-transition-enter {
    opacity: 0;
    transform: translateX(30px);
}

.page-transition-enter-active {
    opacity: 1;
    transform: translateX(0);
    transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Enhanced Stats Card Animations */
.stats-card {
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.stats-card:hover .stats-value {
    animation: numberPop 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes numberPop {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.1); }
}

/* Dropdown Animation */
.dropdown-menu {
    animation: dropdownSlide 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    transform-origin: top;
    z-index: 9999 !important; /* Ensure dropdowns appear above all content */
    position: absolute !important;
}

/* Reset any transforms or opacity that create stacking contexts */
.card,
.card-body,
.row,
.container-fluid {
    transform: none !important;
    will-change: auto !important;
    filter: none !important;
}

/* Create isolation context for supervision dropdown */
.supervision-dropdown {
    position: relative;
    z-index: 999999 !important;
    isolation: isolate !important;
}

/* Supervision dropdown specific styling */
.supervision-dropdown .dropdown-menu {
    z-index: 999999 !important;
    background: rgba(33, 37, 41, 0.98) !important;
    backdrop-filter: blur(10px) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3) !important;
    position: absolute !important;
    transform: none !important;
    will-change: auto !important;
}

/* Ensure Bootstrap dropdown toggle has proper z-index */
.dropdown-toggle {
    position: relative;
    z-index: 999998 !important;
}

/* Nuclear approach: Force ALL dropdown menus above everything */
.dropdown-menu,
.navbar .dropdown-menu,
.navbar .nav-item .dropdown-menu,
.supervision-dropdown .dropdown-menu[data-bs-popper] {
    z-index: 1000002 !important;
    position: absolute !important;
    transform: none !important;
    isolation: isolate !important;
    will-change: auto !important;
    filter: none !important;
    clip-path: none !important;
    overflow: visible !important;
}

/* Ensure dropdown containers don't clip */
.navbar .nav-item.dropdown,
.navbar .dropdown {
    overflow: visible !important;
    clip-path: none !important;
}

/* Force dropdown to appear above stats cards (z-index 1000) */
.navbar .nav-item .dropdown-menu {
    z-index: 1000002 !important;
    position: absolute !important;
}

/* Ensure cards don't create stacking contexts */
.card {
    position: static !important;
    z-index: auto !important;
    transform: none !important;
    isolation: auto !important;
}

@keyframes dropdownSlide {
    0% {
        opacity: 0;
        transform: translateY(-10px) scaleY(0.8);
    }
    100% {
        opacity: 1;
        transform: translateY(0) scaleY(1);
    }
}

/* Text Animation on Reveal */
.text-reveal {
    overflow: hidden;
}

.text-reveal .char {
    display: inline-block;
    transform: translateY(100%);
    animation: textReveal 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes textReveal {
    to {
        transform: translateY(0);
    }
}

/* Loading Spinner Enhancement */
.spinner-border {
    animation: modernSpin 1s linear infinite;
}

@keyframes modernSpin {
    0% { transform: rotate(0deg) scale(1); }
    50% { transform: rotate(180deg) scale(1.1); }
    100% { transform: rotate(360deg) scale(1); }
}

/* Parallax Effect for Background Elements */
.parallax-element {
    will-change: transform;
    transition: transform 0.1s ease-out;
}

/* Legacy Animation Classes (Updated) */
.fade-in {
    animation: modernFadeIn 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes modernFadeIn {
    from { 
        opacity: 0; 
        transform: translateY(20px) scale(0.95); 
    }
    to { 
        opacity: 1; 
        transform: translateY(0) scale(1); 
    }
}

/* Mobile dropdown fixes - Prevent clipping on vertical navigation */
@media (max-width: 991px) {
    /* Prevent navbar collapse from clipping dropdowns */
    .navbar-collapse {
        overflow: visible !important;
        clip-path: none !important;
    }
    
    /* Make dropdown menus static positioned on mobile for better visibility */
    .navbar .dropdown-menu {
        position: static !important;
        float: none;
        width: 100%;
        margin-top: 0;
        background-color: rgba(33, 37, 41, 0.95) !important;
        border: none !important;
        border-radius: 0 !important;
        box-shadow: inset 0 2px 5px rgba(0, 0, 0, 0.2) !important;
    }
    
    /* Ensure dropdown items are properly styled on mobile */
    .navbar .dropdown-menu .dropdown-item {
        padding: 0.75rem 1.5rem;
        color: rgba(255, 255, 255, 0.9) !important;
        background-color: transparent;
    }
    
    .navbar .dropdown-menu .dropdown-item:hover {
        background-color: rgba(212, 160, 23, 0.2) !important;
        color: var(--ac-gold-light) !important;
        padding-left: 2rem;
        transition: all 0.3s ease;
    }
    
    /* Remove transforms and positioning that cause clipping */
    .navbar .nav-item.dropdown {
        position: static !important;
        overflow: visible !important;
    }
    
    /* Ensure dropdown toggle is clickable */
    .navbar .dropdown-toggle {
        width: 100%;
        text-align: left;
    }
    
    /* Add visual indicator for expanded dropdowns on mobile */
    .navbar .dropdown-menu.show {
        display: block;
        animation: mobileDropdownSlide 0.3s ease-out;
    }
    
    @keyframes mobileDropdownSlide {
        from {
            opacity: 0;
            max-height: 0;
        }
        to {
            opacity: 1;
            max-height: 500px;
        }
    }
}

/* Tablet-specific adjustments */
@media (min-width: 768px) and (max-width: 991px) {
    .navbar .dropdown-menu {
        max-width: 400px;
    }
}

/* Print styles */
@media print {
    .navbar,
    .btn,
    footer {
        display: none !important;
    }
    
    .card {
        border: 1px solid #ddd !important;
        page-break-inside: avoid;
    }
}
