/* ╔══════════════════════════════════════════════════════════════╗
   ║  NOVA DESIGN SYSTEM v5.0 — MAXIMUM SMOOTH EDITION          ║
   ║  GPU-accelerated • 120fps targeting • Premium micro-motion  ║
   ║  Mobile-first • dvh safe • Maxed-out UI polish              ║
   ╚══════════════════════════════════════════════════════════════╝ */

/* ════════════════════════════════════════════
   §1. DESIGN TOKENS
   ════════════════════════════════════════════ */

:root {
    /* ── Color Palette ── */
    --primary-50: #eff6ff;
    --primary-100: #dbeafe;
    --primary-200: #bfdbfe;
    --primary-300: #93c5fd;
    --primary-400: #60a5fa;
    --primary-500: #3b82f6;
    --primary-600: #2563eb;
    --primary-700: #1d4ed8;
    --primary-800: #1e40af;
    --primary-900: #1e3a8a;
    --primary-950: #172554;

    --slate-25: #fcfdfe;
    --slate-50: #f8fafc;
    --slate-100: #f1f5f9;
    --slate-200: #e2e8f0;
    --slate-300: #cbd5e1;
    --slate-400: #94a3b8;
    --slate-500: #64748b;
    --slate-600: #475569;
    --slate-700: #334155;
    --slate-800: #1e293b;
    --slate-900: #0f172a;
    --slate-950: #020617;

    --success-50: #f0fdf4;
    --success-100: #dcfce7;
    --success-500: #22c55e;
    --success-600: #16a34a;
    --success-700: #15803d;

    --danger-50: #fef2f2;
    --danger-100: #fee2e2;
    --danger-500: #ef4444;
    --danger-600: #dc2626;

    --warning-50: #fffbeb;
    --warning-100: #fef3c7;
    --warning-500: #f59e0b;
    --warning-600: #d97706;

    --purple-50: #faf5ff;
    --purple-500: #a855f7;
    --purple-600: #9333ea;
    --indigo-400: #818cf8;
    --indigo-500: #6366f1;
    --indigo-600: #4f46e5;
    --cyan-500: #06b6d4;
    --cyan-600: #0891b2;
    --emerald-500: #10b981;
    --rose-500: #f43f5e;
    --amber-500: #f59e0b;

    /* ── Semantic Colors ── */
    --color-bg-body: var(--slate-100);
    --color-bg-surface: #ffffff;
    --color-bg-sunken: var(--slate-50);
    --color-bg-overlay: rgba(15, 23, 42, 0.6);

    --color-text-primary: var(--slate-800);
    --color-text-secondary: var(--slate-600);
    --color-text-muted: var(--slate-500);

    --color-border-default: var(--slate-200);
    --color-border-subtle: var(--slate-100);
    --color-border-strong: var(--slate-300);

    --color-brand: var(--primary-600);
    --color-brand-hover: var(--primary-700);
    --color-brand-light: var(--primary-500);
    --color-brand-surface: var(--primary-50);

    /* ── Spacing ── */
    --space-1: 4px;
    --space-1h: 6px;
    --space-2: 8px;
    --space-2h: 10px;
    --space-3: 12px;
    --space-3h: 14px;
    --space-4: 16px;
    --space-5: 20px;
    --space-6: 24px;
    --space-8: 32px;
    --space-10: 40px;
    --space-12: 48px;
    --space-16: 64px;

    /* ── Typography ── */
    --font-sans: 'Inter', 'Roboto', 'Segoe UI', system-ui, -apple-system, sans-serif;
    --font-display: 'Inter', 'Roboto', system-ui, sans-serif;
    --font-mono: 'JetBrains Mono', 'Fira Code', monospace;

    --text-2xs: 0.625rem;
    --text-xs: 0.75rem;
    --text-sm: 0.8125rem;
    --text-base: 0.875rem;
    --text-md: 1rem;
    --text-lg: 1.125rem;
    --text-xl: 1.25rem;
    --text-2xl: 1.5rem;
    --text-3xl: 1.875rem;
    --text-4xl: 2.25rem;

    /* ── Radii ── */
    --radius-xs: 4px;
    --radius-sm: 6px;
    --radius-md: 8px;
    --radius-lg: 12px;
    --radius-xl: 16px;
    --radius-2xl: 20px;
    --radius-3xl: 24px;
    --radius-full: 9999px;

    /* ── Shadows — Enhanced depth system ── */
    --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.03), 0 1px 1px rgba(0, 0, 0, 0.02);
    --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px -1px rgba(0, 0, 0, 0.06);
    --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.07), 0 2px 4px -2px rgba(0, 0, 0, 0.05);
    --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.07), 0 4px 6px -4px rgba(0, 0, 0, 0.05);
    --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.07), 0 8px 10px -6px rgba(0, 0, 0, 0.03);
    --shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.18);
    --shadow-brand: 0 4px 14px rgba(37, 99, 235, 0.18), 0 2px 6px rgba(37, 99, 235, 0.08);
    --shadow-brand-lg: 0 8px 28px rgba(37, 99, 235, 0.25), 0 4px 12px rgba(37, 99, 235, 0.1);
    --shadow-brand-xl: 0 16px 48px rgba(37, 99, 235, 0.3), 0 8px 20px rgba(37, 99, 235, 0.12);
    --shadow-card-hover: 0 24px 48px -8px rgba(37, 99, 235, 0.14), 0 8px 16px -4px rgba(0, 0, 0, 0.04);
    --shadow-success: 0 4px 14px rgba(34, 197, 94, 0.22), 0 2px 6px rgba(34, 197, 94, 0.08);
    --shadow-glow: 0 0 40px rgba(37, 99, 235, 0.12), 0 0 80px rgba(37, 99, 235, 0.06);
    --shadow-glow-lg: 0 0 60px rgba(37, 99, 235, 0.18), 0 0 120px rgba(37, 99, 235, 0.08);
    --shadow-inner-glow: inset 0 1px 0 rgba(255, 255, 255, 0.6), inset 0 -1px 0 rgba(0, 0, 0, 0.02);
    --shadow-inner-soft: inset 0 2px 4px rgba(0, 0, 0, 0.03);
    --shadow-float: 0 30px 60px -15px rgba(0, 0, 0, 0.12), 0 12px 24px -8px rgba(0, 0, 0, 0.06);

    /* ── Easing — Maximum Smooth Curves ── */
    --ease-default: cubic-bezier(0.4, 0, 0.2, 1);
    --ease-spring: cubic-bezier(0.175, 0.885, 0.32, 1.275);
    --ease-smooth: cubic-bezier(0.2, 0.8, 0.2, 1);
    --ease-expo: cubic-bezier(0.16, 1, 0.3, 1);
    --ease-butter: cubic-bezier(0.22, 0.68, 0, 1.12);
    --ease-silk: cubic-bezier(0.25, 0.46, 0.45, 0.94);
    --ease-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
    --ease-out-quint: cubic-bezier(0.22, 1, 0.36, 1);
    --ease-in-out-quart: cubic-bezier(0.76, 0, 0.24, 1);
    --ease-elastic: cubic-bezier(0.68, -0.55, 0.265, 1.55);
    --ease-ultra: cubic-bezier(0.19, 1, 0.22, 1);
    --ease-snappy: cubic-bezier(0.2, 0, 0, 1);
    --ease-luxe: cubic-bezier(0.4, 0, 0, 1);

    /* ── Durations ── */
    --duration-instant: 60ms;
    --duration-micro: 100ms;
    --duration-fast: 150ms;
    --duration-normal: 220ms;
    --duration-smooth: 380ms;
    --duration-slow: 550ms;
    --duration-slower: 750ms;
    --duration-cinema: 1100ms;
    --duration-epic: 1500ms;

    /* ── Z-Index ── */
    --z-sticky: 200;
    --z-overlay: 800;
    --z-sidebar: 900;
    --z-appbar: 1000;
    --z-modal: 1100;
    --z-toast: 1200;

    /* ── Dynamic Layout — mobile-first ── */
    --appbar-height: 56px;
    --sidebar-width: 260px;
    --page-pad: var(--space-3);
    --dash-margin: var(--space-2);
    --dash-radius: var(--radius-lg);
    --header-px: var(--space-4);
    --header-py: var(--space-4);
    --table-cell-px: var(--space-3);
    --table-cell-py: var(--space-2h);
    --table-font: var(--text-base);
    --table-header-font: var(--text-xs);

    /* ── Safe Areas ── */
    --safe-top: env(safe-area-inset-top, 0px);
    --safe-bottom: env(safe-area-inset-bottom, 0px);
    --safe-left: env(safe-area-inset-left, 0px);
    --safe-right: env(safe-area-inset-right, 0px);

    /* ── Legacy Aliases ── */
    --primary: var(--color-brand);
    --primary-brand: var(--color-brand);
    --primary-light: var(--color-brand-light);
    --primary-dark: var(--color-brand-hover);
    --primary-glow: rgba(37, 99, 235, 0.3);
    --bg-body: var(--color-bg-body);
    --bg-surface: var(--color-bg-surface);
    --text-main: var(--color-text-primary);
    --text-secondary: var(--color-text-secondary);
    --text-muted: var(--color-text-muted);
    --border-subtle: var(--color-border-subtle);
    --border-default: var(--color-border-default);
    --radius-std: var(--radius-lg);
}

/* ── Breakpoint Token Overrides ── */
@media (min-width: 640px) {
    :root {
        --appbar-height: 60px;
        --page-pad: var(--space-4);
        --dash-margin: var(--space-3);
        --dash-radius: var(--radius-xl);
        --header-px: var(--space-6);
        --header-py: var(--space-6);
        --table-cell-px: var(--space-4);
        --table-cell-py: var(--space-3);
        --table-font: var(--text-md);
        --table-header-font: var(--text-sm);
    }
}

@media (min-width: 1024px) {
    :root {
        --appbar-height: 64px;
        --page-pad: var(--space-6);
        --dash-radius: var(--radius-2xl);
        --header-px: var(--space-10);
        --header-py: var(--space-8);
        --table-cell-px: var(--space-6);
        --table-cell-py: var(--space-3h);
    }
}

@media (min-width: 1400px) {
    :root {
        --page-pad: var(--space-8);
        --dash-margin: var(--space-4);
        --header-px: var(--space-12);
        --header-py: var(--space-10);
        --table-cell-px: var(--space-8);
        --table-cell-py: var(--space-4);
        --table-font: var(--text-lg);
        --table-header-font: var(--text-base);
    }
}


/* ════════════════════════════════════════════
   §2. RESET & BASE
   ════════════════════════════════════════════ */

*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    height: 100%;
    -webkit-text-size-adjust: 100%;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    font-feature-settings: 'cv02', 'cv03', 'cv04', 'cv11';
    -webkit-tap-highlight-color: transparent;
    overflow-x: hidden;
}

body {
    font-family: var(--font-sans);
    font-size: var(--text-base);
    line-height: 1.5;
    color: var(--color-text-primary);
    background: transparent;
    height: 100vh;
    height: 100dvh;
    overflow: hidden;
    overscroll-behavior: none;
}

img,
video,
svg {
    display: block;
    max-width: 100%;
}

a {
    color: inherit;
    text-decoration: none;
}

button {
    cursor: pointer;
    font: inherit;
    border: none;
    background: none;
}

input,
textarea,
select {
    font: inherit;
    color: inherit;
}

:focus {
    outline: none;
}

:focus-visible {
    outline: 2px solid var(--color-brand);
    outline-offset: 2px;
    border-radius: var(--radius-sm);
    animation: focusRing 0.5s var(--ease-ultra);
}

::selection {
    background: var(--primary-200);
    color: var(--primary-900);
}

@supports (-webkit-touch-callout: none) {

    input,
    select,
    textarea {
        font-size: 16px !important;
    }
}

@media (prefers-reduced-motion: reduce) {

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}


/* ════════════════════════════════════════════
   §3. ANIMATIONS — MAXIMUM SMOOTH MOTION
   ════════════════════════════════════════════ */

/* ── Focus ── */
@keyframes focusRing {
    0% {
        outline-offset: 8px;
        opacity: 0;
    }

    40% {
        opacity: 0.5;
    }

    100% {
        outline-offset: 2px;
        opacity: 1;
    }
}

/* ── Fade ── */
@keyframes fadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@keyframes fadeOut {
    from {
        opacity: 1;
    }

    to {
        opacity: 0;
    }
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(24px) scale(0.98);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes fadeInDown {
    from {
        opacity: 0;
        transform: translateY(-20px) scale(0.98);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes fadeInLeft {
    from {
        opacity: 0;
        transform: translateX(-24px) scale(0.98);
    }

    to {
        opacity: 1;
        transform: translateX(0) scale(1);
    }
}

@keyframes fadeInRight {
    from {
        opacity: 0;
        transform: translateX(24px) scale(0.98);
    }

    to {
        opacity: 1;
        transform: translateX(0) scale(1);
    }
}

/* ── Scale ── */
@keyframes scaleIn {
    from {
        opacity: 0;
        transform: scale(0.88);
        filter: blur(2px);
    }

    to {
        opacity: 1;
        transform: scale(1);
        filter: blur(0);
    }
}

@keyframes scaleInBounce {
    0% {
        opacity: 0;
        transform: scale(0.7);
        filter: blur(3px);
    }

    45% {
        opacity: 1;
        transform: scale(1.05);
        filter: blur(0);
    }

    70% {
        transform: scale(0.97);
    }

    85% {
        transform: scale(1.01);
    }

    100% {
        transform: scale(1);
    }
}

@keyframes scaleInSoft {
    0% {
        opacity: 0;
        transform: scale(0.94);
        filter: blur(4px);
    }

    60% {
        opacity: 0.8;
        filter: blur(1px);
    }

    100% {
        opacity: 1;
        transform: scale(1);
        filter: blur(0);
    }
}

/* ── Premium Reveals ── */
@keyframes cinemaReveal {
    0% {
        opacity: 0;
        transform: scale(0.94) translateY(24px);
        filter: blur(10px);
    }

    35% {
        opacity: 0.5;
        filter: blur(3px);
    }

    70% {
        opacity: 0.9;
        filter: blur(0.5px);
    }

    100% {
        opacity: 1;
        transform: scale(1) translateY(0);
        filter: blur(0);
    }
}

@keyframes silkFadeUp {
    0% {
        opacity: 0;
        transform: translateY(28px) scale(0.97);
        filter: blur(2px);
    }

    50% {
        opacity: 0.7;
        transform: translateY(6px) scale(0.998);
        filter: blur(0.5px);
    }

    80% {
        opacity: 0.95;
        transform: translateY(-1px) scale(1.001);
    }

    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
        filter: blur(0);
    }
}

@keyframes silkFadeIn {
    0% {
        opacity: 0;
        transform: scale(0.985);
        filter: blur(4px);
    }

    40% {
        opacity: 0.6;
        filter: blur(1.5px);
    }

    70% {
        opacity: 0.9;
        filter: blur(0.3px);
    }

    100% {
        opacity: 1;
        transform: scale(1);
        filter: blur(0);
    }
}

@keyframes elasticSlideUp {
    0% {
        opacity: 0;
        transform: translateY(36px) scaleY(0.88);
    }

    35% {
        opacity: 1;
        transform: translateY(-5px) scaleY(1.015);
    }

    55% {
        transform: translateY(3px) scaleY(0.995);
    }

    75% {
        transform: translateY(-1px) scaleY(1.003);
    }

    100% {
        transform: translateY(0) scaleY(1);
    }
}

@keyframes smoothUnfold {
    0% {
        opacity: 0;
        transform: translateY(16px) rotateX(10deg);
        transform-origin: top center;
    }

    60% {
        opacity: 0.8;
        transform: translateY(2px) rotateX(1deg);
    }

    100% {
        opacity: 1;
        transform: translateY(0) rotateX(0deg);
    }
}

@keyframes breatheIn {
    0% {
        opacity: 0;
        transform: scale(0.96);
        filter: blur(3px);
    }

    25% {
        opacity: 0.4;
        transform: scale(1.008);
        filter: blur(1px);
    }

    50% {
        opacity: 0.75;
        transform: scale(0.997);
    }

    75% {
        opacity: 0.92;
        transform: scale(1.002);
    }

    100% {
        opacity: 1;
        transform: scale(1);
        filter: blur(0);
    }
}

@keyframes butterReveal {
    0% {
        opacity: 0;
        transform: translateY(40px) scale(0.92);
        filter: blur(16px);
    }

    20% {
        opacity: 0.3;
        filter: blur(6px);
    }

    45% {
        opacity: 0.7;
        transform: translateY(8px) scale(0.998);
        filter: blur(2px);
    }

    65% {
        opacity: 0.9;
        transform: translateY(-3px) scale(1.005);
        filter: blur(0.5px);
    }

    80% {
        transform: translateY(1px) scale(0.999);
    }

    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
        filter: blur(0);
    }
}

@keyframes luxuryUnveil {
    0% {
        opacity: 0;
        transform: perspective(1000px) rotateX(15deg) translateY(50px);
        filter: blur(8px);
    }

    30% {
        opacity: 0.4;
        filter: blur(3px);
    }

    60% {
        opacity: 0.8;
        transform: perspective(1000px) rotateX(2deg) translateY(5px);
        filter: blur(0.5px);
    }

    80% {
        transform: perspective(1000px) rotateX(-0.5deg) translateY(-2px);
    }

    100% {
        opacity: 1;
        transform: perspective(1000px) rotateX(0deg) translateY(0);
        filter: blur(0);
    }
}

@keyframes crystalFadeIn {
    0% {
        opacity: 0;
        transform: scale(0.9) translateY(14px);
        filter: blur(10px) brightness(1.3);
    }

    35% {
        opacity: 0.5;
        filter: blur(3px) brightness(1.1);
    }

    65% {
        opacity: 0.85;
        filter: blur(1px) brightness(1.03);
    }

    100% {
        opacity: 1;
        transform: scale(1) translateY(0);
        filter: blur(0) brightness(1);
    }
}

@keyframes magneticPull {
    0% {
        opacity: 0;
        transform: translateY(60px) scale(0.82);
    }

    25% {
        transform: translateY(-10px) scale(1.03);
    }

    40% {
        transform: translateY(5px) scale(0.985);
    }

    55% {
        transform: translateY(-3px) scale(1.008);
    }

    70% {
        transform: translateY(1px) scale(0.998);
    }

    85% {
        transform: translateY(-0.5px) scale(1.001);
    }

    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes slideInRow {
    0% {
        opacity: 0;
        transform: translateX(-16px) scale(0.98);
    }

    60% {
        opacity: 0.8;
        transform: translateX(2px) scale(1.002);
    }

    100% {
        opacity: 1;
        transform: translateX(0) scale(1);
    }
}

@keyframes popIn {
    0% {
        opacity: 0;
        transform: scale(0.4);
        filter: blur(4px);
    }

    50% {
        opacity: 0.9;
        transform: scale(1.1);
        filter: blur(0);
    }

    70% {
        transform: scale(0.95);
    }

    85% {
        transform: scale(1.02);
    }

    100% {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes countUp {
    0% {
        opacity: 0;
        transform: translateY(16px) scale(0.9);
    }

    60% {
        opacity: 0.8;
        transform: translateY(-2px) scale(1.02);
    }

    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* ── Infinite / Ambient ── */
@keyframes shimmer {
    0% {
        background-position: -200% 0;
    }

    100% {
        background-position: 200% 0;
    }
}

@keyframes borderBeam {
    0% {
        background-position: 0% 0%;
    }

    100% {
        background-position: 200% 0%;
    }
}

@keyframes pulse {

    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: 0.5;
    }
}

@keyframes softPulse {

    0%,
    100% {
        opacity: 1;
        transform: scale(1);
    }

    50% {
        opacity: 0.88;
        transform: scale(0.985);
    }
}

@keyframes spin {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

@keyframes float {

    0%,
    100% {
        transform: translateY(0) rotate(0deg);
    }

    33% {
        transform: translateY(-5px) rotate(0.3deg);
    }

    66% {
        transform: translateY(-2px) rotate(-0.2deg);
    }
}

@keyframes gentleBob {

    0%,
    100% {
        transform: translateY(0) rotate(0deg);
    }

    20% {
        transform: translateY(-3px) rotate(0.4deg);
    }

    50% {
        transform: translateY(-5px) rotate(-0.2deg);
    }

    80% {
        transform: translateY(-1px) rotate(0.1deg);
    }
}

@keyframes gradientShift {
    0% {
        background-position: 0% 50%;
    }

    50% {
        background-position: 100% 50%;
    }

    100% {
        background-position: 0% 50%;
    }
}

@keyframes dotBreathe {

    0%,
    100% {
        transform: scale(1);
        box-shadow: 0 0 0 0 rgba(37, 99, 235, 0.4);
    }

    50% {
        transform: scale(1.2);
        box-shadow: 0 0 0 12px rgba(37, 99, 235, 0);
    }
}

@keyframes glowPulse {

    0%,
    100% {
        box-shadow: 0 0 0 0 rgba(37, 99, 235, 0.2);
    }

    50% {
        box-shadow: 0 0 24px 6px rgba(37, 99, 235, 0.08);
    }
}

@keyframes ambientGlow {

    0%,
    100% {
        opacity: 0.25;
        transform: scale(1);
    }

    33% {
        opacity: 0.5;
        transform: scale(1.03);
    }

    66% {
        opacity: 0.4;
        transform: scale(1.06);
    }
}

@keyframes ribbonFlow {
    0% {
        background-position: 0% 50%;
    }

    50% {
        background-position: 100% 50%;
    }

    100% {
        background-position: 0% 50%;
    }
}

@keyframes subtleRotate {
    0% {
        transform: rotate(0deg) scale(1);
    }

    25% {
        transform: rotate(0.3deg) scale(1.001);
    }

    50% {
        transform: rotate(0deg) scale(1);
    }

    75% {
        transform: rotate(-0.3deg) scale(0.999);
    }

    100% {
        transform: rotate(0deg) scale(1);
    }
}



@keyframes tooltipPop {
    0% {
        opacity: 0;
        transform: scale(0.75) translateY(6px);
        filter: blur(2px);
    }

    60% {
        transform: scale(1.06) translateY(-1px);
        filter: blur(0);
    }

    80% {
        transform: scale(0.98) translateY(0.5px);
    }

    100% {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

@keyframes hoverGlowPulse {

    0%,
    100% {
        box-shadow: var(--shadow-card-hover);
    }

    50% {
        box-shadow: var(--shadow-card-hover), var(--shadow-glow);
    }
}

@keyframes borderGlowSpin {
    0% {
        background-position: 0% 50%;
        filter: hue-rotate(0deg);
    }

    50% {
        background-position: 100% 50%;
    }

    100% {
        background-position: 200% 50%;
        filter: hue-rotate(15deg);
    }
}

@keyframes rowHighlight {
    0% {
        background: transparent;
    }

    30% {
        background: rgba(37, 99, 235, 0.06);
    }

    100% {
        background: transparent;
    }
}

@keyframes tabSwitchContent {
    0% {
        opacity: 0;
        transform: translateY(8px) scale(0.995);
        filter: blur(2px);
    }

    40% {
        opacity: 0.7;
        filter: blur(0.5px);
    }

    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
        filter: blur(0);
    }
}


/* ════════════════════════════════════════════
   §4. SCROLLBAR
   ════════════════════════════════════════════ */

::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}

::-webkit-scrollbar-track {
    background: transparent;
    border-radius: var(--radius-full);
}

::-webkit-scrollbar-thumb {
    background: var(--slate-300);
    border-radius: var(--radius-full);
    border: 1px solid transparent;
    background-clip: content-box;
    transition: background 0.3s;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--slate-400);
}

::-webkit-scrollbar-corner {
    background: transparent;
}

* {
    scrollbar-width: thin;
    scrollbar-color: var(--slate-300) transparent;
}

.modern-table .mud-table-container::-webkit-scrollbar {
    width: 5px;
}

.modern-table .mud-table-container::-webkit-scrollbar-thumb {
    background: rgba(37, 99, 235, 0.12);
    border-radius: var(--radius-full);
}

.modern-table .mud-table-container::-webkit-scrollbar-thumb:hover {
    background: rgba(37, 99, 235, 0.25);
}


/* ════════════════════════════════════════════
   §5. GLOBAL BUTTERY TRANSITIONS — GPU LAYER
   ════════════════════════════════════════════ */

/* Force GPU compositing on animated elements */
.app-bar,
.sidebar,
.dashboard-container,
.modern-card,
.login-card,
.header-section,
.mud-dialog,
.mud-popover-open,
.mud-snackbar {
    will-change: transform, opacity;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    transform: translateZ(0);
}

/* Every interactive element gets maximum-smooth transitions */
a,
button,
input,
select,
textarea,
[role="button"],
[tabindex],
.mud-button-root,
.mud-icon-button,
.mud-chip,
.mud-avatar,
.mud-nav-link,
.mud-tab,
.mud-list-item,
.mud-menu-item {
    transition:
        color var(--duration-normal) var(--ease-ultra),
        background-color var(--duration-normal) var(--ease-ultra),
        border-color var(--duration-normal) var(--ease-ultra),
        box-shadow var(--duration-smooth) var(--ease-ultra),
        transform var(--duration-normal) var(--ease-butter),
        opacity var(--duration-normal) var(--ease-ultra),
        filter var(--duration-smooth) var(--ease-ultra);
}



/* Layout and Navigation styles moved to MainLayout.razor.css */


/* ════════════════════════════════════════════
   §8. DASHBOARD CONTAINER
   ════════════════════════════════════════════ */

.dashboard-container {
    background: var(--color-bg-surface);
    flex: 1;
    min-height: 0;
    width: auto;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    animation: butterReveal 1.1s var(--ease-ultra) forwards;
    border-radius: var(--dash-radius);
    border: 1px solid rgba(226, 232, 240, 0.6);
    box-shadow: 0 8px 40px rgba(0, 0, 0, 0.035), var(--shadow-inner-glow);
}

.content-wrapper {
    flex: 1;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding: 0 var(--space-1);
    margin-top: var(--space-3);
    min-height: 0;
    animation: silkFadeUp 0.8s var(--ease-ultra) 0.2s backwards;
}


/* ════════════════════════════════════════════
   §9. HEADER SECTION
   ════════════════════════════════════════════ */

.header-section {
    background: linear-gradient(135deg, #1a365d 0%, var(--slate-900) 100%);
    padding: var(--space-3) var(--space-4);
    position: relative;
    overflow: hidden;
    color: white;
    border-radius: var(--radius-lg) !important;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    flex-shrink: 0;
    box-shadow: var(--shadow-md);
    animation: luxuryUnveil 0.9s var(--ease-ultra) forwards;
}

.dashboard-container .header-title {
    color: #ffffff !important;
    font-family: var(--font-display) !important;
    font-weight: 700 !important;
    font-size: clamp(var(--text-base), 3vw, var(--text-lg)) !important;
    margin: 0 !important;
    position: relative;
    z-index: 1;
}

.dashboard-container .header-subtitle {
    color: rgba(255, 255, 255, 0.55) !important;
    font-size: var(--text-xs) !important;
    position: relative;
    z-index: 1;
}

.header-section::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at 12% 50%, rgba(37, 99, 235, 0.1) 0%, transparent 55%),
        radial-gradient(ellipse at 88% 15%, rgba(96, 165, 250, 0.07) 0%, transparent 45%),
        radial-gradient(ellipse at 50% 90%, rgba(99, 102, 241, 0.04) 0%, transparent 40%);
    pointer-events: none;
    animation: ambientGlow 8s ease-in-out infinite;
}

.header-section::after {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.012) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.012) 1px, transparent 1px);
    background-size: 44px 44px;
    pointer-events: none;
    mask-image: radial-gradient(ellipse at center, black 25%, transparent 75%);
    -webkit-mask-image: radial-gradient(ellipse at center, black 25%, transparent 75%);
}

.header-breadcrumb {
    display: none;
    align-items: center;
    gap: var(--space-2h);
    font-size: var(--text-2xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: rgba(255, 255, 255, 0.3);
    position: relative;
    z-index: 1;
    animation: fadeIn 0.6s var(--ease-ultra) 0.2s backwards;
}

.icon-box {
    width: clamp(40px, 8vw, 64px);
    height: clamp(40px, 8vw, 64px);
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.15), rgba(30, 64, 175, 0.12));
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--primary-400);
    position: relative;
    z-index: 1;
    flex-shrink: 0;
    animation: magneticPull 0.8s var(--ease-ultra) 0.15s backwards;
    transition: all var(--duration-smooth) var(--ease-butter);
}

.icon-box:hover {
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.2), rgba(30, 64, 175, 0.18));
    border-color: rgba(255, 255, 255, 0.1);
    transform: scale(1.05) rotate(2deg);
}

.page-title {
    font-family: var(--font-display);
    font-size: clamp(var(--text-xl), 5vw, var(--text-4xl)) !important;
    font-weight: 800 !important;
    color: #ffffff !important;
    margin: 0;
    letter-spacing: -0.03em;
    position: relative;
    z-index: 1;
    line-height: 1.15;
    animation: textRevealUp 0.7s var(--ease-ultra) 0.25s backwards;
}

.page-subtitle {
    color: var(--slate-400) !important;
    font-size: clamp(var(--text-sm), 2vw, var(--text-md)) !important;
    font-weight: 400;
    position: relative;
    z-index: 1;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    animation: fadeIn 0.7s var(--ease-ultra) 0.45s backwards;
}

@media (min-width: 640px) {
    .header-breadcrumb {
        display: flex;
    }

    .header-section {
        gap: var(--space-3);
    }
}


/* ════════════════════════════════════════════
   §10. CONTROL PANEL
   ════════════════════════════════════════════ */

.dashboard-control-panel {
    background: var(--color-bg-surface) !important;
    border: 1px solid var(--color-border-default) !important;
    border-radius: var(--radius-lg) !important;
    box-shadow: var(--shadow-sm) !important;
    padding: var(--space-3);
    margin-top: var(--space-3);
    flex-shrink: 0;
    animation: crystalFadeIn 0.7s var(--ease-ultra) 0.28s backwards;
    transition: box-shadow var(--duration-smooth) var(--ease-ultra);
}

.dashboard-control-panel:hover {
    box-shadow: var(--shadow-md) !important;
}

.dashboard-grid-center {
    align-items: center;
}

.modern-search .mud-input-outlined-border {
    border-color: var(--color-border-default) !important;
    border-radius: var(--radius-md) !important;
    transition:
        border-color var(--duration-normal) var(--ease-ultra),
        box-shadow var(--duration-smooth) var(--ease-ultra);
}

.modern-search .mud-input-outlined {
    height: 40px;
}

.modern-search .mud-input-slot {
    padding-top: var(--space-2);
    padding-bottom: var(--space-2);
}

.modern-search:focus-within .mud-input-outlined-border {
    border-color: var(--color-brand) !important;
    box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.06), 0 2px 8px rgba(37, 99, 235, 0.06);
}

.action-btn {
    background: linear-gradient(135deg, var(--primary-600), var(--primary-700)) !important;
    color: white !important;
    font-weight: 700 !important;
    border-radius: var(--radius-md) !important;
    padding: var(--space-2) var(--space-4) !important;
    box-shadow: var(--shadow-brand) !important;
    position: relative;
    overflow: hidden !important;
    white-space: nowrap;
    font-size: var(--text-sm) !important;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
    transition:
        transform var(--duration-normal) var(--ease-butter),
        box-shadow var(--duration-smooth) var(--ease-ultra),
        background var(--duration-normal) var(--ease-ultra),
        filter var(--duration-normal) var(--ease-ultra) !important;
}

.action-btn:hover {
    transform: translateY(-3px) scale(1.03);
    box-shadow: var(--shadow-brand-lg) !important;
    filter: brightness(1.05);
}

.action-btn:active {
    transform: translateY(0) scale(0.97);
    transition-duration: var(--duration-instant);
    filter: brightness(0.95);
}

.stat-chip {
    background: linear-gradient(135deg, var(--primary-50), var(--slate-50)) !important;
    border: 1px solid var(--primary-100) !important;
    font-weight: 700 !important;
    color: var(--color-brand) !important;
    padding: var(--space-1) var(--space-3) !important;
    border-radius: var(--radius-md) !important;
    font-size: var(--text-sm);
    animation: countUp 0.6s var(--ease-ultra) 0.4s backwards;
    transition: all var(--duration-normal) var(--ease-butter);
}

.stat-chip:hover {
    transform: scale(1.05);
    box-shadow: 0 2px 8px rgba(37, 99, 235, 0.1);
}

@media (min-width: 640px) {
    .dashboard-control-panel {
        padding: var(--space-4);
    }

    .action-btn {
        padding: var(--space-2h) var(--space-6) !important;
        font-size: var(--text-base) !important;
        border-radius: var(--radius-lg) !important;
    }
}


/* ════════════════════════════════════════════
   §11. TABLE SYSTEM — LEFT-ALIGNED + DYNAMIC
   ════════════════════════════════════════════ */

.table-container {
    background: var(--color-bg-surface) !important;
    border: 1px solid var(--color-border-default) !important;
    border-radius: var(--radius-lg) !important;
    flex: 1;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    min-height: 0;
    animation: breatheIn 0.8s var(--ease-ultra) 0.35s backwards;
    transition: box-shadow var(--duration-smooth) var(--ease-ultra);
}

.table-container:hover {
    box-shadow: var(--shadow-md) !important;
}

.modern-table {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
}

.modern-table .mud-table-container {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden !important;
    min-height: 0;
    -webkit-overflow-scrolling: touch;
    scroll-behavior: smooth;
}

/* ── Force LEFT alignment globally ── */
.modern-table th,
.modern-table td,
.modern-table .mud-table-cell,
.modern-table .mud-table-head th,
.modern-table .mud-table-head td,
.modern-table .mud-table-head .mud-table-cell,
.modern-table .mud-table-body th,
.modern-table .mud-table-body td,
.modern-table .mud-table-body .mud-table-cell,
.modern-table .mud-table-cell[style],
.mud-table .mud-table-cell,
.mud-table-cell {
    text-align: left !important;
    justify-content: flex-start !important;
}

/* ── Header ── */
.modern-table .mud-table-head th,
.mud-table-head {
    position: sticky;
    top: 0;
    z-index: 10;
    background: rgba(248, 250, 252, 0.96) !important;
    backdrop-filter: blur(16px);
}

.modern-table .mud-table-head th {
    color: var(--color-text-secondary) !important;
    font-weight: 700 !important;
    font-size: var(--table-header-font) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
    padding: var(--table-cell-py) var(--table-cell-px) !important;
    border-bottom: 2px solid var(--color-border-default) !important;
    white-space: nowrap;
    user-select: none;
    text-align: left !important;
    transition: background var(--duration-normal) var(--ease-ultra);
}

/* ── Body ── */
.modern-table .mud-table-body td {
    border-bottom: 1px solid rgba(241, 245, 249, 0.8) !important;
    padding: var(--table-cell-py) var(--table-cell-px) !important;
    font-size: var(--table-font) !important;
    color: var(--color-text-primary) !important;
    line-height: 1.5;
    text-align: left !important;
    transition:
        background var(--duration-normal) var(--ease-ultra),
        color var(--duration-normal) var(--ease-ultra);
}

/* ── Mobile LEFT alignment override ── */
@media (max-width: 639px) {

    .modern-table th,
    .modern-table td,
    .modern-table .mud-table-cell,
    .modern-table .mud-table-head th,
    .modern-table .mud-table-body td,
    .modern-table .mud-table-head .mud-table-cell,
    .modern-table .mud-table-body .mud-table-cell,
    .mud-table th,
    .mud-table td,
    .mud-table .mud-table-cell,
    .mud-table-cell,
    .table-container th,
    .table-container td,
    .table-container .mud-table-cell,
    .table-4-rows th,
    .table-4-rows td,
    .table-4-rows .mud-table-cell,
    .table-4-rows .mud-table-head .mud-table-cell,
    .table-4-rows .mud-table-body .mud-table-cell,
    td[style*="text-align"],
    th[style*="text-align"],
    .mud-table-cell[style*="text-align"] {
        text-align: left !important;
        justify-content: flex-start !important;
    }

    .modern-table .mud-table-cell>*,
    .table-4-rows .mud-table-cell>*,
    .mud-table-cell>* {
        text-align: left !important;
        justify-content: flex-start !important;
        margin-right: auto !important;
        margin-left: 0 !important;
    }

    .modern-table .mud-table-sort-label,
    .mud-table-sort-label {
        justify-content: flex-start !important;
    }

    .id-pill {
        margin-right: auto;
        margin-left: 0;
    }

    .profile-container,
    .edit-container {
        justify-content: flex-start !important;
    }
}

/* ── Center ONLY ref and actions ── */
.modern-table .mud-table-cell.col-actions,
.modern-table th.col-actions,
.modern-table td.col-actions,
.table-4-rows .mud-table-cell.col-actions,
.table-4-rows th.col-actions,
.table-4-rows td.col-actions {
    text-align: center !important;
    justify-content: center !important;
}

.modern-table .mud-table-cell.col-ref,
.modern-table th.col-ref,
.modern-table td.col-ref,
.table-4-rows .mud-table-cell.col-ref,
.table-4-rows th.col-ref,
.table-4-rows td.col-ref {
    text-align: center !important;
    justify-content: center !important;
}

/* ── Row animations — max smooth ── */
.modern-table .mud-table-body tr {
    animation: slideInRow 0.45s var(--ease-ultra) backwards;
    transition:
        background var(--duration-normal) var(--ease-ultra),
        transform var(--duration-normal) var(--ease-butter),
        box-shadow var(--duration-smooth) var(--ease-ultra);
    will-change: transform;
}

.modern-table .mud-table-body tr:nth-child(1) {
    animation-delay: 0.04s;
}

.modern-table .mud-table-body tr:nth-child(2) {
    animation-delay: 0.07s;
}

.modern-table .mud-table-body tr:nth-child(3) {
    animation-delay: 0.10s;
}

.modern-table .mud-table-body tr:nth-child(4) {
    animation-delay: 0.13s;
}

.modern-table .mud-table-body tr:nth-child(5) {
    animation-delay: 0.16s;
}

.modern-table .mud-table-body tr:nth-child(6) {
    animation-delay: 0.19s;
}

.modern-table .mud-table-body tr:nth-child(7) {
    animation-delay: 0.22s;
}

.modern-table .mud-table-body tr:nth-child(8) {
    animation-delay: 0.25s;
}

.modern-table .mud-table-body tr:nth-child(9) {
    animation-delay: 0.28s;
}

.modern-table .mud-table-body tr:nth-child(10) {
    animation-delay: 0.31s;
}

.modern-table .mud-table-body tr:hover {
    transform: translateX(4px);
    box-shadow: inset 3px 0 0 var(--primary-400);
}

.modern-table .mud-table-body tr:hover td {
    background: rgba(37, 99, 235, 0.03) !important;
}

.modern-table .mud-table-body tr:active {
    transform: translateX(2px) scale(0.999);
    transition-duration: var(--duration-instant);
}

.modern-table .mud-table-body tr:last-child td {
    border-bottom: none !important;
}

.modern-table .mud-table-root {
    border-collapse: collapse !important;
}

.modern-table .mud-table-pagination {
    border-top: none !important;
    border: none !important;
}

.modern-table .mud-table-pagination-toolbar {
    height: 48px !important;
    border: none !important;
    min-height: 48px !important;
}

/* ── ID Pill ── */
.id-pill {
    background: var(--slate-100);
    color: var(--color-text-muted);
    padding: var(--space-1) var(--space-2);
    border-radius: var(--radius-sm);
    font-family: var(--font-mono);
    font-size: var(--text-sm) !important;
    font-weight: 600;
    display: inline-block;
    transition: all var(--duration-normal) var(--ease-butter);
}

.id-pill:hover {
    background: var(--primary-100);
    color: var(--primary-700);
    transform: scale(1.08) translateY(-1px);
    box-shadow: 0 2px 6px rgba(37, 99, 235, 0.1);
}

/* ── Action Buttons ── */
.action-btn-edit {
    color: var(--primary-500) !important;
    background: rgba(59, 130, 246, 0.06) !important;
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    border-radius: var(--radius-md) !important;
    -webkit-tap-highlight-color: transparent;
    transition:
        background var(--duration-fast) var(--ease-ultra),
        transform var(--duration-fast) var(--ease-butter),
        box-shadow var(--duration-normal) var(--ease-ultra),
        color var(--duration-fast) var(--ease-ultra) !important;
}

.action-btn-edit:hover {
    background: rgba(59, 130, 246, 0.14) !important;
    color: var(--primary-600) !important;
    transform: scale(1.15) translateY(-1px);
    box-shadow: 0 3px 10px rgba(59, 130, 246, 0.18);
}

.action-btn-edit:active {
    transform: scale(0.88);
    transition-duration: var(--duration-instant);
}

.action-btn-del {
    color: var(--danger-500) !important;
    background: rgba(239, 68, 68, 0.06) !important;
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    border-radius: var(--radius-md) !important;
    -webkit-tap-highlight-color: transparent;
    transition:
        background var(--duration-fast) var(--ease-ultra),
        transform var(--duration-fast) var(--ease-butter),
        box-shadow var(--duration-normal) var(--ease-ultra),
        color var(--duration-fast) var(--ease-ultra) !important;
}

.action-btn-del:hover {
    background: rgba(239, 68, 68, 0.14) !important;
    color: var(--danger-600) !important;
    transform: scale(1.15) translateY(-1px);
    box-shadow: 0 3px 10px rgba(239, 68, 68, 0.18);
}

.action-btn-del:active {
    transform: scale(0.88);
    transition-duration: var(--duration-instant);
}

.action-btn-save {
    background-color: rgba(var(--mud-palette-success-rgb), 0.1);
    color: var(--mud-palette-success);
}

.action-btn-cancel {
    background-color: rgba(var(--mud-palette-error-rgb), 0.1);
    color: var(--mud-palette-error);
}

.edit-btn-modern {
    color: var(--color-brand) !important;
    background: rgba(37, 99, 235, 0.06) !important;
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    border-radius: var(--radius-md) !important;
    transition:
        background var(--duration-fast) var(--ease-ultra),
        transform var(--duration-fast) var(--ease-butter),
        box-shadow var(--duration-normal) var(--ease-ultra) !important;
}

.edit-btn-modern:hover {
    background: rgba(37, 99, 235, 0.14) !important;
    transform: scale(1.15) translateY(-1px);
    box-shadow: 0 3px 10px rgba(37, 99, 235, 0.15);
}

.edit-btn-modern:active {
    transform: scale(0.88);
}

.action-btn-edit .mud-icon-root,
.action-btn-del .mud-icon-root,
.edit-btn-modern .mud-icon-root {
    font-size: var(--text-lg) !important;
    transition: transform var(--duration-fast) var(--ease-butter);
}

.action-btn-edit:hover .mud-icon-root,
.action-btn-del:hover .mud-icon-root,
.edit-btn-modern:hover .mud-icon-root {
    transform: scale(1.1);
}

@media (min-width: 640px) {

    .action-btn-edit,
    .action-btn-del,
    .edit-btn-modern {
        width: 40px !important;
        height: 40px !important;
        min-width: 40px !important;
    }

    .action-btn-edit .mud-icon-root,
    .action-btn-del .mud-icon-root,
    .edit-btn-modern .mud-icon-root {
        font-size: var(--text-xl) !important;
    }
}

.col-ref {
    width: 60px;
    text-align: center !important;
}

.col-code {
    width: auto;
    text-align: left !important;
}

.col-name {
    width: auto;
    text-align: left !important;
}

.col-actions {
    width: 90px;
    text-align: center !important;
}

@media (min-width: 640px) {
    .col-ref {
        width: 80px;
    }

    .col-actions {
        width: 120px;
    }
}


/* ════════════════════════════════════════════
   §12. TABLE PAGER
   ════════════════════════════════════════════ */

.modern-pager {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--space-2) var(--space-3);
    background: var(--color-bg-surface);
    border-top: 1px solid var(--color-border-subtle) !important;
    flex-shrink: 0;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.jump-to-container {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    background: var(--slate-50);
    padding: var(--space-1) var(--space-3);
    border-radius: var(--radius-md);
    transition: background var(--duration-normal) var(--ease-ultra);
}

.jump-to-container:hover {
    background: var(--slate-100);
}

.jump-btn {
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
}

.jump-label {
    font-size: var(--text-sm);
    color: var(--color-text-muted);
    font-weight: 600;
    white-space: nowrap;
}

.jump-input-wrapper {
    width: 60px;
}

.jump-field input {
    text-align: center;
    font-weight: 700;
    color: var(--color-text-primary) !important;
    padding: var(--space-1) 0 !important;
}

.footer-spacer {
    flex: 1;
    min-height: 0;
    background-color: var(--color-bg-body);
}

@media (min-width: 640px) {
    .modern-pager {
        padding: var(--space-3) var(--space-6);
    }

    .jump-input-wrapper {
        width: 70px;
    }
}


/* ════════════════════════════════════════════
   §13. TABLE 4-ROW
   ════════════════════════════════════════════ */

.table-4-rows {
    --row-height: 46px;
    --header-height: 42px;
}

.table-4-rows .mud-table-row {
    height: var(--row-height);
    min-height: var(--row-height);
}

.table-4-rows .mud-table-cell {
    padding: var(--space-2) var(--space-3);
    vertical-align: middle;
    font-size: var(--table-font) !important;
    text-align: left !important;
}

.table-4-rows .mud-table-head .mud-table-cell {
    height: var(--header-height);
    font-weight: 600;
    background: var(--slate-50);
    font-size: var(--table-header-font) !important;
    text-align: left !important;
}

@media (min-width: 640px) {
    .table-4-rows {
        --row-height: 52px;
        --header-height: 48px;
    }

    .table-4-rows .mud-table-cell {
        padding: var(--space-3) var(--space-4);
    }
}

@media (min-width: 1400px) {
    .table-4-rows {
        --row-height: 58px;
        --header-height: 52px;
    }
}


/* ── Employee / Student Profile Row ── */
.employee-profile {
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.profile-avatar {
    flex-shrink: 0;
    transition: transform var(--duration-normal) var(--ease-butter);
}

.profile-avatar:hover {
    transform: scale(1.12);
}

/* ── Role Badge ── */
.role-badge {
    display: inline-block;
    padding: var(--space-1) var(--space-2);
    border-radius: var(--radius-sm);
    background: rgba(99, 102, 241, 0.08);
    color: var(--indigo-600);
    font-size: var(--text-sm);
    font-weight: 600;
    letter-spacing: 0.01em;
    transition: all var(--duration-normal) var(--ease-butter);
}

.role-badge:hover {
    background: rgba(99, 102, 241, 0.15);
    transform: translateY(-1px);
}

/* ── Attach Badge ── */
.attach-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    height: 24px;
    padding: 0 var(--space-1);
    border-radius: var(--radius-full, 9999px);
    background: var(--primary-100);
    color: var(--primary-700);
    font-size: var(--text-xs, 0.75rem);
    font-weight: 700;
    transition: all var(--duration-normal) var(--ease-butter);
}

.attach-badge:hover {
    background: var(--primary-200);
    transform: scale(1.1);
}

/* ── Stat Chip ── */
.stat-chip {
    font-weight: 600 !important;
    letter-spacing: 0.02em;
}

/* ════════════════════════════════════════════
   §14. INLINE EDITING
   ════════════════════════════════════════════ */

.profile-name {
    font-size: var(--table-font);
    font-weight: 400;
    color: var(--slate-800);
    line-height: 1.5;
    font-family: var(--font-sans);
    transition: color var(--duration-normal) var(--ease-ultra);
}

.profile-container {
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.edit-container {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    animation: scaleInSoft 0.3s var(--ease-ultra);
}

.edit-input {
    margin: -12px 0 !important;
    padding: 0 !important;
    flex-grow: 1;
}

.edit-input .mud-input-outlined {
    background: transparent !important;
    border: none !important;
    border-radius: var(--radius-md);
    height: 34px !important;
    margin-left: 0 !important;
}

.edit-input .mud-input-outlined:focus-within {
    box-shadow: none !important;
    border: none !important;
    outline: none !important;
}

.edit-input .mud-input-outlined-border {
    display: none !important;
}

.edit-input .mud-input-slot {
    padding: 0 !important;
    height: 100%;
    display: flex;
    align-items: center;
    font-size: var(--table-font) !important;
    font-weight: 400;
    color: var(--slate-800) !important;
    font-family: var(--font-sans) !important;
    caret-color: var(--primary-500) !important;
}

.avatar-small {
    width: 24px !important;
    height: 24px !important;
    font-size: 10px !important;
    flex-shrink: 0;
    transition: transform var(--duration-normal) var(--ease-butter);
}

.avatar-small:hover {
    transform: scale(1.1);
}

@media (min-width: 640px) {

    .profile-container,
    .edit-container {
        gap: var(--space-3);
    }

    .avatar-small {
        width: 28px !important;
        height: 28px !important;
        font-size: 11px !important;
    }
}


/* ════════════════════════════════════════════
   §15. MODERN CARD
   ════════════════════════════════════════════ */

.modern-card {
    background: var(--color-bg-surface) !important;
    border-radius: var(--radius-xl) !important;
    box-shadow: var(--shadow-sm) !important;
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(226, 232, 240, 0.6) !important;
    z-index: 1;
    animation: crystalFadeIn 0.7s var(--ease-ultra) backwards;
    will-change: transform;
    transition:
        transform 0.55s var(--ease-butter),
        box-shadow 0.55s var(--ease-ultra),
        border-color 0.4s var(--ease-ultra) !important;
}

.modern-card:nth-child(1) {
    animation-delay: 0.05s;
}

.modern-card:nth-child(2) {
    animation-delay: 0.12s;
}

.modern-card:nth-child(3) {
    animation-delay: 0.19s;
}

.modern-card:nth-child(4) {
    animation-delay: 0.26s;
}

.modern-card:nth-child(5) {
    animation-delay: 0.33s;
}

.modern-card:nth-child(6) {
    animation-delay: 0.40s;
}

.modern-card:hover {
    transform: translateY(-10px) scale(1.018);
    box-shadow: var(--shadow-card-hover), var(--shadow-glow) !important;
    border-color: transparent !important;
}

.modern-card:active {
    transform: translateY(-4px) scale(1.005);
    transition-duration: 0.15s;
}

.modern-card::before {
    content: '';
    position: absolute;
    inset: -2px;
    background: linear-gradient(60deg,
            var(--primary-600), var(--primary-400), var(--primary-300),
            var(--indigo-400), var(--purple-500), var(--primary-600));
    background-size: 400% 400%;
    z-index: -1;
    opacity: 0;
    transition: opacity var(--duration-smooth) var(--ease-ultra);
    border-radius: calc(var(--radius-xl) + 2px);
}

.modern-card:hover::before {
    opacity: 1;
    animation: borderGlowSpin 5s linear infinite;
}

.modern-card::after {
    content: '';
    position: absolute;
    inset: 1.5px;
    background: var(--color-bg-surface);
    border-radius: calc(var(--radius-xl) - 1.5px);
    z-index: -1;
}

.home-icon-box {
    width: clamp(48px, 8vw, 64px);
    height: clamp(48px, 8vw, 64px);
    border-radius: var(--radius-lg);
    display: flex;
    justify-content: center;
    align-items: center;
    color: white;
    box-shadow: var(--shadow-md);
    flex-shrink: 0;
    transition: all var(--duration-smooth) var(--ease-butter);
}

.modern-card:hover .home-icon-box {
    transform: scale(1.08) rotate(3deg);
    box-shadow: var(--shadow-lg);
    animation: gentleBob 2.5s ease-in-out infinite;
}

.bg-blue {
    background: linear-gradient(135deg, var(--primary-500), var(--primary-700));
}

.bg-indigo {
    background: linear-gradient(135deg, var(--indigo-500), var(--indigo-600));
}

.bg-purple {
    background: linear-gradient(135deg, var(--purple-500), var(--purple-600));
}

.bg-cyan {
    background: linear-gradient(135deg, var(--cyan-500), var(--cyan-600));
}

.dashboard-banner {
    background: transparent !important;
    border: 2px dashed var(--color-border-default);
    border-radius: var(--radius-xl);
    width: 100%;
    max-width: 600px;
    transition: border-color var(--duration-normal) var(--ease-ultra);
}

.dashboard-banner:hover {
    border-color: var(--primary-300);
}

@media (min-width: 1024px) {
    .modern-card {
        border-radius: var(--radius-2xl) !important;
    }

    .modern-card::before {
        border-radius: calc(var(--radius-2xl) + 2px);
    }

    .modern-card::after {
        border-radius: calc(var(--radius-2xl) - 1.5px);
    }
}





/* ════════════════════════════════════════════
   §17. EMPLOYEE EDIT PAGE
   ════════════════════════════════════════════ */

.edit-employee-container {
    background: var(--color-bg-body);
    flex: 1;
    min-height: 0;
    width: 100%;
    padding: var(--space-2);
    font-family: var(--font-sans);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    animation: fadeIn var(--duration-smooth) var(--ease-ultra);
}

.edit-employee-container .header-section {
    flex-shrink: 0;
    background: linear-gradient(135deg, #1a365d 0%, var(--slate-900) 100%);
    border-radius: var(--radius-lg);
    padding: var(--space-3) var(--space-4);
    margin-bottom: var(--space-2);
    box-shadow: var(--shadow-md);
    position: relative;
    overflow: hidden;
}

.edit-employee-container .header-section::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 80% 50%, rgba(37, 99, 235, 0.08) 0%, transparent 60%);
    pointer-events: none;
    animation: ambientGlow 8s ease-in-out infinite;
}

.edit-employee-container .header-title {
    color: #ffffff !important;
    font-family: var(--font-display) !important;
    font-weight: 700 !important;
    font-size: clamp(var(--text-base), 3vw, var(--text-lg)) !important;
    margin: 0 !important;
    position: relative;
    z-index: 1;
}

.edit-employee-container .header-subtitle {
    color: rgba(255, 255, 255, 0.55) !important;
    font-size: var(--text-xs) !important;
    position: relative;
    z-index: 1;
}

.edit-employee-container .back-button {
    background: rgba(255, 255, 255, 0.06) !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    color: #ffffff !important;
    border-radius: var(--radius-md) !important;
    font-size: var(--text-xs) !important;
    padding: var(--space-1h) var(--space-3) !important;
    -webkit-tap-highlight-color: transparent;
    transition: all var(--duration-normal) var(--ease-ultra) !important;
}

.edit-employee-container .back-button:hover {
    background: rgba(255, 255, 255, 0.12) !important;
    transform: translateX(-4px);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

/* ── Progress Bar ── */
.progress-mini {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: var(--space-2);
    background: var(--color-bg-surface);
    border-radius: var(--radius-full);
    padding: var(--space-2) var(--space-3);
    margin-bottom: var(--space-2);
    box-shadow: var(--shadow-xs);
    border: 1px solid var(--color-border-default);
    animation: elasticSlideUp 0.6s var(--ease-ultra) 0.18s backwards;
    transition: box-shadow var(--duration-smooth) var(--ease-ultra);
}

.progress-mini:hover {
    box-shadow: var(--shadow-sm);
}

.progress-mini-icon {
    width: 26px;
    height: 26px;
    background: linear-gradient(135deg, var(--primary-500), var(--primary-700));
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 2px 6px rgba(37, 99, 235, 0.2);
}

.progress-mini-icon .mud-icon-root {
    font-size: 12px !important;
    color: white !important;
}

.progress-mini-label {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    font-weight: 600;
    white-space: nowrap;
    flex-shrink: 0;
    display: none;
}

.progress-mini-bar {
    flex: 1;
    background: var(--slate-200);
    border-radius: var(--radius-full);
    height: 8px;
    overflow: hidden;
    box-shadow: var(--shadow-inner-soft);
}

.progress-mini-fill {
    height: 100%;
    min-width: 8px;
    background: linear-gradient(90deg, var(--primary-500), var(--indigo-500), var(--purple-500), var(--emerald-500));
    border-radius: var(--radius-full);
    transition: width 1.2s var(--ease-ultra);
    position: relative;
    animation: slideRight 1.1s var(--ease-ultra) 0.45s backwards;
}

.progress-mini-fill::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.35) 50%, transparent 100%);
    background-size: 200% 100%;
    animation: shimmer 2.5s ease-in-out infinite;
}

.progress-mini-percent {
    font-size: var(--text-sm);
    font-weight: 800;
    min-width: 40px;
    text-align: right;
    flex-shrink: 0;
}

.progress-mini-percent span {
    background: linear-gradient(135deg, var(--primary-500), var(--purple-500));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

@media (min-width: 640px) {
    .edit-employee-container {
        padding: var(--space-4);
    }

    .progress-mini-label {
        display: block;
    }

    .progress-mini {
        padding: var(--space-2h) var(--space-5);
        gap: var(--space-3);
    }

    .progress-mini-bar {
        height: 10px;
    }

    .progress-mini-icon {
        width: 30px;
        height: 30px;
    }

    .progress-mini-icon .mud-icon-root {
        font-size: 14px !important;
    }
}

/* ── Form Container ── */
.form-container {
    flex: 1;
    min-height: 0;
    background: var(--color-bg-surface);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--color-border-default);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    animation: breatheIn 0.7s var(--ease-ultra) 0.28s backwards;
}

.form-container>form {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

/* ── Scroll Area (non-tabbed forms) ── */
.form-scroll-area {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    scroll-behavior: smooth;
    padding: var(--space-4);
}

@media (min-width: 640px) {
    .form-scroll-area {
        padding: var(--space-6);
    }
}

@media (min-width: 1024px) {
    .form-scroll-area {
        padding: var(--space-6) var(--space-8);
    }
}

/* ── Tabs ── */
.form-container .mud-tabs {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: var(--color-bg-surface);
}

.form-container .mud-tabs-toolbar {
    flex-shrink: 0;
    background: linear-gradient(180deg, #ffffff 0%, var(--slate-25) 100%) !important;
    border-bottom: 2px solid var(--color-border-default) !important;
    padding: var(--space-2) var(--space-2) 0 var(--space-2) !important;
    min-height: auto !important;
    gap: 2px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    flex-wrap: nowrap;
}

.form-container .mud-tabs-toolbar::-webkit-scrollbar {
    display: none;
}

.form-container .mud-tabs-toolbar {
    scrollbar-width: none;
}

.form-container .mud-tab {
    font-weight: 600 !important;
    font-size: var(--text-xs) !important;
    color: var(--color-text-muted) !important;
    padding: var(--space-2) var(--space-3) !important;
    border-radius: var(--radius-md) var(--radius-md) 0 0 !important;
    min-width: auto !important;
    min-height: 38px !important;
    text-transform: none !important;
    position: relative;
    background: transparent !important;
    border: 1px solid transparent !important;
    border-bottom: none !important;
    white-space: nowrap;
    flex-shrink: 0;
    -webkit-tap-highlight-color: transparent;
    transition:
        color var(--duration-normal) var(--ease-ultra),
        background var(--duration-normal) var(--ease-ultra),
        border-color var(--duration-normal) var(--ease-ultra),
        transform var(--duration-fast) var(--ease-butter),
        box-shadow var(--duration-smooth) var(--ease-ultra) !important;
}

.form-container .mud-tab:hover {
    background: rgba(37, 99, 235, 0.04) !important;
    color: var(--primary-600) !important;
    transform: translateY(-1px);
}

.form-container .mud-tab:active {
    transform: scale(0.96);
    transition-duration: var(--duration-instant);
}

.form-container .mud-tab.mud-tab-active {
    background: var(--color-bg-surface) !important;
    color: var(--primary-600) !important;
    border: 1px solid var(--color-border-default) !important;
    border-bottom: 0px solid var(--color-bg-surface) !important;
    margin-bottom: -2px !important;
    z-index: 1;
    box-shadow: 0 -2px 8px rgba(37, 99, 235, 0.04);
}

.form-container .mud-tab.mud-tab-active::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--primary-600), var(--primary-400));
    border-radius: var(--radius-md) var(--radius-md) 0 0;
    animation: slideRight 0.45s var(--ease-ultra);
}

.form-container .mud-tab .mud-icon-root {
    display: none !important;
}

.form-container .mud-tab .mud-tab-icon-text {
    gap: 0 !important;
}

.form-container .mud-tabs-toolbar .mud-tabs-indicator,
.form-container .mud-tabs .mud-tab-slider {
    display: none !important;
    height: 0 !important;
}

@media (min-width: 640px) {
    .form-container .mud-tabs-toolbar {
        padding: var(--space-3) var(--space-5) 0 var(--space-5) !important;
    }

    .form-container .mud-tab {
        font-size: var(--text-sm) !important;
        padding: var(--space-2h) var(--space-5) !important;
        min-height: 44px !important;
    }

    .form-container .mud-tab .mud-icon-root {
        display: inline-flex !important;
        font-size: 18px !important;
    }

    .form-container .mud-tab .mud-tab-icon-text {
        gap: var(--space-2) !important;
        display: flex;
        align-items: center;
    }
}

/* ── Tab Panels ── */
.form-container .mud-tabs-panels {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    scroll-behavior: smooth;
    padding: 0 !important;
    background: var(--color-bg-surface);
}

.form-container .mud-tab-panel {
    padding: var(--space-4) !important;
    min-height: 100%;
    box-sizing: border-box;
    animation: tabSwitchContent 0.5s var(--ease-ultra);
}

@media (min-width: 640px) {
    .form-container .mud-tab-panel {
        padding: var(--space-6) !important;
    }
}

@media (min-width: 1024px) {
    .form-container .mud-tab-panel {
        padding: var(--space-6) var(--space-8) !important;
    }
}

/* ── Form Inputs ── */
.form-container .mud-input-control {
    margin-bottom: 0 !important;
}

.form-container .mud-input-outlined .mud-input-slot {
    padding: var(--space-2h) var(--space-3) !important;
    font-size: max(16px, var(--text-sm)) !important;
}

.form-container .mud-input-outlined .mud-input-outlined-border {
    border-radius: var(--radius-md) !important;
    border-color: var(--color-border-default) !important;
    transition: all var(--duration-normal) var(--ease-ultra);
}

.form-container .mud-input-control:hover .mud-input-outlined-border {
    border-color: var(--primary-300) !important;
}

.form-container .mud-input-control:focus-within .mud-input-outlined-border {
    border-color: var(--primary-500) !important;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.06);
}

.form-container .mud-input-label {
    font-size: var(--text-xs) !important;
    color: var(--color-text-secondary) !important;
    transition: all var(--duration-normal) var(--ease-ultra);
}

.form-container .mud-checkbox {
    margin: 0 !important;
}

.form-container .mud-checkbox .mud-typography {
    font-size: var(--text-sm) !important;
}

.form-container .mud-grid {
    margin: 0 !important;
}

.form-container .mud-item {
    padding: var(--space-2) !important;
}

.form-container .mud-picker .mud-input-slot {
    padding: var(--space-2h) var(--space-3) !important;
    font-size: max(16px, var(--text-sm)) !important;
}

/* ── Adornment Icons ── */
.form-container .mud-input-adornment-start .mud-icon-root {
    color: var(--slate-400) !important;
    font-size: 18px !important;
    transition: color var(--duration-normal) var(--ease-ultra),
        transform var(--duration-normal) var(--ease-butter);
}

.form-container .mud-input-control:focus-within .mud-input-adornment-start .mud-icon-root {
    color: var(--primary-500) !important;
    transform: scale(1.1);
}

.form-container .mud-input-control:hover .mud-input-adornment-start .mud-icon-root {
    color: var(--primary-400) !important;
}

.form-container .mud-input ::placeholder {
    color: var(--slate-300) !important;
    font-style: italic;
    font-size: var(--text-xs) !important;
}

/* ── Autocomplete Dropdown Arrow ── */
.form-container .mud-autocomplete .mud-input-outlined::after {
    content: '▾';
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 16px;
    color: var(--slate-400);
    pointer-events: none;
}

.form-container .mud-autocomplete .mud-input-outlined {
    position: relative;
}

.form-container .mud-autocomplete .mud-input-control:focus-within .mud-input-outlined::after {
    color: var(--primary-500);
}

.form-container .mud-autocomplete .mud-input-slot {
    padding-right: 28px !important;
}

/* ── Autocomplete Dropdown Menu ── */
.mud-autocomplete .mud-popover {
    position: fixed !important;
}

.mud-popover .mud-list,
.mud-popover-cascading-value,
.mud-popover-open {
    max-height: none !important;
    height: auto !important;
    overflow: hidden !important;
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
}

.mud-popover .mud-list::-webkit-scrollbar,
.mud-popover-cascading-value::-webkit-scrollbar,
.mud-popover-open::-webkit-scrollbar {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
}


/* ── Section Title ── */
.section-title {
    font-family: var(--font-display);
    font-size: clamp(var(--text-md), 3vw, var(--text-xl));
    font-weight: 700;
    color: var(--slate-800);
    margin-bottom: var(--space-4);
    padding-bottom: var(--space-3);
    border-bottom: 2px solid var(--color-border-default);
    display: flex;
    align-items: center;
    gap: var(--space-2);
    position: relative;
    animation: fadeInLeft 0.55s var(--ease-ultra) 0.18s backwards;
}

.section-title::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 52px;
    height: 2px;
    background: linear-gradient(90deg, var(--primary-500), var(--primary-400));
    animation: slideRight 0.8s var(--ease-ultra) 0.4s backwards;
    transform-origin: left;
}

.section-title .mud-icon-root {
    color: var(--primary-500);
    font-size: var(--text-xl) !important;
    transition: transform var(--duration-normal) var(--ease-butter);
}

.section-title:hover .mud-icon-root {
    transform: scale(1.1) rotate(5deg);
}

/* ── Fixed Footer ── */
.fixed-footer {
    flex-shrink: 0;
    background: var(--color-bg-surface);
    border-top: 1px solid var(--color-border-default);
    padding: var(--space-2) var(--space-3);
    padding-bottom: max(var(--space-2), var(--safe-bottom));
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-radius: 0 0 var(--radius-lg) var(--radius-lg);
    gap: var(--space-2);
}

.footer-step {
    display: none;
}

.footer-buttons {
    display: flex;
    gap: var(--space-2);
    width: 100%;
    justify-content: space-between;
}

.btn-prev {
    background: var(--color-bg-surface) !important;
    border: 1.5px solid var(--color-border-default) !important;
    color: var(--color-text-secondary) !important;
    font-weight: 500 !important;
    padding: var(--space-2) var(--space-4) !important;
    border-radius: var(--radius-md) !important;
    font-size: var(--text-sm) !important;
    -webkit-tap-highlight-color: transparent;
    flex: 1;
    transition:
        transform var(--duration-normal) var(--ease-butter),
        box-shadow var(--duration-smooth) var(--ease-ultra),
        background var(--duration-normal) var(--ease-ultra),
        border-color var(--duration-normal) var(--ease-ultra),
        color var(--duration-normal) var(--ease-ultra) !important;
}

.btn-prev:hover:not(:disabled) {
    border-color: var(--primary-400) !important;
    color: var(--primary-600) !important;
    background: var(--primary-50) !important;
    transform: translateX(-4px);
    box-shadow: 0 2px 8px rgba(37, 99, 235, 0.08);
}

.btn-prev:active {
    transform: translateY(0) scale(0.97);
    transition-duration: var(--duration-instant);
}

.btn-next {
    background: linear-gradient(135deg, var(--primary-500), var(--primary-700)) !important;
    color: #ffffff !important;
    font-weight: 600 !important;
    padding: var(--space-2) var(--space-5) !important;
    border-radius: var(--radius-md) !important;
    font-size: var(--text-sm) !important;
    box-shadow: var(--shadow-brand) !important;
    -webkit-tap-highlight-color: transparent;
    flex: 1;
    transition:
        transform var(--duration-normal) var(--ease-butter),
        box-shadow var(--duration-smooth) var(--ease-ultra),
        background var(--duration-normal) var(--ease-ultra),
        filter var(--duration-normal) var(--ease-ultra) !important;
}

.btn-next:hover {
    transform: translateY(-3px) scale(1.02);
    box-shadow: var(--shadow-brand-lg) !important;
    filter: brightness(1.06);
}

.btn-next:active {
    transform: translateY(0) scale(0.97);
    transition-duration: var(--duration-instant);
    filter: brightness(0.95);
}

.btn-submit {
    background: linear-gradient(135deg, var(--success-500), var(--success-700)) !important;
    color: #ffffff !important;
    font-weight: 600 !important;
    padding: var(--space-2) var(--space-5) !important;
    border-radius: var(--radius-md) !important;
    font-size: var(--text-sm) !important;
    box-shadow: var(--shadow-success) !important;
    -webkit-tap-highlight-color: transparent;
    flex: 1;
    transition:
        transform var(--duration-normal) var(--ease-butter),
        box-shadow var(--duration-smooth) var(--ease-ultra),
        background var(--duration-normal) var(--ease-ultra),
        filter var(--duration-normal) var(--ease-ultra) !important;
}

.btn-submit:hover {
    transform: translateY(-3px) scale(1.02);
    box-shadow: 0 8px 28px rgba(34, 197, 94, 0.3) !important;
    filter: brightness(1.06);
}

.btn-submit:active {
    transform: translateY(0) scale(0.97);
    transition-duration: var(--duration-instant);
    filter: brightness(0.95);
}

@media (min-width: 640px) {
    .fixed-footer {
        padding: var(--space-3) var(--space-6);
    }

    .footer-step {
        display: flex;
        align-items: center;
        gap: var(--space-2h);
        background: linear-gradient(135deg, var(--slate-50), var(--primary-50));
        padding: var(--space-2) var(--space-4);
        border-radius: var(--radius-full);
        border: 1px solid var(--primary-100);
        transition: box-shadow var(--duration-smooth) var(--ease-ultra);
    }

    .footer-step:hover {
        box-shadow: 0 2px 8px rgba(37, 99, 235, 0.08);
    }

    .footer-buttons {
        width: auto;
        flex: none;
    }

    .btn-prev,
    .btn-next,
    .btn-submit {
        flex: none;
    }

    .btn-prev {
        padding: var(--space-2h) var(--space-5) !important;
    }

    .btn-next,
    .btn-submit {
        padding: var(--space-2h) var(--space-6) !important;
    }
}

.step-badge {
    width: 26px;
    height: 26px;
    background: linear-gradient(135deg, var(--primary-500), var(--primary-700));
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--text-xs);
    font-weight: 700;
    box-shadow: 0 2px 6px rgba(37, 99, 235, 0.2);
}

.step-label {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--slate-700);
}


/* ════════════════════════════════════════════
   §18. 404 PAGE
   ════════════════════════════════════════════ */

.not-found-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex: 1;
    min-height: 0;
    text-align: center;
    padding: var(--space-4);
    animation: butterReveal 1.1s var(--ease-ultra) forwards;
}

.not-found-container h1 {
    font-family: var(--font-display);
    font-size: clamp(60px, 20vw, 140px);
    background: linear-gradient(135deg, #1d3027, #2aa9a1, var(--cyan-500));
    background-size: 200% 200%;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    font-weight: 900;
    line-height: 1;
    animation: magneticPull 0.9s var(--ease-ultra) 0.1s backwards, gradientShift 4s ease infinite;
}

.not-found-container h2 {
    font-family: var(--font-display);
    font-size: clamp(var(--text-lg), 4vw, var(--text-3xl));
    color: var(--slate-800);
    margin-bottom: var(--space-3);
    font-weight: 700;
    animation: textRevealUp 0.7s var(--ease-ultra) 0.4s backwards;
}

.not-found-container p {
    color: var(--color-text-muted);
    margin-bottom: var(--space-6);
    max-width: 420px;
    font-size: var(--text-md);
    line-height: 1.6;
    animation: fadeIn 0.7s var(--ease-ultra) 0.55s backwards;
}

.not-found-container .btn {
    background: linear-gradient(135deg, #1d3027, #2aa9a1);
    border: none;
    padding: var(--space-3h) var(--space-8);
    border-radius: var(--radius-lg);
    color: white;
    font-weight: 600;
    font-size: var(--text-md);
    box-shadow: var(--shadow-md);
    -webkit-tap-highlight-color: transparent;
    animation: elasticSlideUp 0.7s var(--ease-ultra) 0.7s backwards;
    transition:
        transform var(--duration-normal) var(--ease-butter),
        box-shadow var(--duration-smooth) var(--ease-ultra),
        filter var(--duration-normal) var(--ease-ultra);
}

.not-found-container .btn:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 32px rgba(29, 48, 39, 0.3);
    filter: brightness(1.06);
}

.not-found-container .btn:active {
    transform: translateY(0) scale(0.97);
    filter: brightness(0.95);
}


/* ════════════════════════════════════════════
   §19. BUTTON SHINE + MICRO-INTERACTIONS
   ════════════════════════════════════════════ */

/* Button Shine — desktop only */
@media (hover: hover) {

    .mud-button-root,
    .action-btn,
    .login-btn,
    .not-found-container .btn {
        position: relative;
        overflow: hidden !important;
    }

    .mud-button-root::after,
    .action-btn::after,
    .login-btn::after,
    .not-found-container .btn::after {
        content: '';
        position: absolute;
        top: 0;
        left: -150%;
        width: 50%;
        height: 100%;
        background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.18), transparent);
        transform: skewX(-22deg);
        transition: left 0.8s var(--ease-ultra);
        pointer-events: none;
    }

    .mud-button-root:hover::after,
    .action-btn:hover::after,
    .login-btn:hover::after,
    .not-found-container .btn:hover::after {
        left: 150%;
        transition: left 1s var(--ease-ultra);
    }
}

/* Ripple Effect */
@media (hover: hover) {

    .action-btn::before,
    .login-btn::before,
    .btn-next::before,
    .btn-submit::before {
        content: '';
        position: absolute;
        inset: 0;
        background: radial-gradient(circle at var(--ripple-x, 50%) var(--ripple-y, 50%),
                rgba(255, 255, 255, 0.15) 0%, transparent 55%);
        opacity: 0;
        transition: opacity var(--duration-normal) var(--ease-ultra);
        pointer-events: none;
    }

    .action-btn:hover::before,
    .login-btn:hover::before,
    .btn-next:hover::before,
    .btn-submit:hover::before {
        opacity: 1;
    }
}

/* Focus — clean */
input:focus,
.mud-input-control input:focus {
    box-shadow: none !important;
    outline: none;
}

/* Smooth scroll */
.form-container .mud-tabs-panels,
.modern-table .mud-table-container {
    scroll-behavior: smooth;
}


/* ════════════════════════════════════════════
   §20. MUD COMPONENT ANIMATIONS
   ════════════════════════════════════════════ */

.mud-popover-open {
    animation: tooltipPop 0.35s var(--ease-butter) forwards !important;
}

.mud-overlay {
    transition: opacity var(--duration-smooth) var(--ease-ultra) !important;
}

.mud-picker-container {
    animation: crystalFadeIn 0.4s var(--ease-ultra) !important;
}

.mud-menu {
    animation: tooltipPop 0.3s var(--ease-butter) !important;
}

.mud-list-item {
    transition:
        background var(--duration-fast) var(--ease-ultra),
        color var(--duration-fast) var(--ease-ultra),
        transform var(--duration-fast) var(--ease-butter),
        box-shadow var(--duration-normal) var(--ease-ultra) !important;
}

.mud-list-item:hover {
    transform: translateX(3px);
}

.mud-list-item:active {
    transform: scale(0.98);
}

.mud-dialog {
    animation: loginCardEntrance 0.55s var(--ease-ultra) forwards !important;
}

.mud-overlay-dialog {
    animation: fadeIn 0.35s var(--ease-ultra) !important;
}

.mud-snackbar {
    animation: elasticSlideUp 0.55s var(--ease-ultra) forwards !important;
}

.mud-tooltip {
    animation: tooltipPop 0.25s var(--ease-butter) forwards !important;
}

.mud-chip {
    transition:
        background var(--duration-fast) var(--ease-ultra),
        transform var(--duration-fast) var(--ease-butter),
        box-shadow var(--duration-normal) var(--ease-ultra) !important;
}

.mud-chip:hover {
    transform: scale(1.06);
}

.mud-chip:active {
    transform: scale(0.94);
}

.mud-select-item {
    transition:
        background var(--duration-fast) var(--ease-ultra),
        padding-left var(--duration-normal) var(--ease-butter) !important;
}

.mud-select-item:hover {
    padding-left: calc(var(--space-4) + 5px) !important;
}

.mud-switch .mud-button-root {
    transition: all var(--duration-smooth) var(--ease-butter) !important;
}

/* Checkbox animation */
.mud-checkbox .mud-button-root {
    transition: transform var(--duration-fast) var(--ease-butter) !important;
}

.mud-checkbox .mud-button-root:active {
    transform: scale(0.85);
}

/* Radio */
.mud-radio .mud-button-root {
    transition: transform var(--duration-fast) var(--ease-butter) !important;
}

.mud-radio .mud-button-root:active {
    transform: scale(0.85);
}


/* ════════════════════════════════════════════
   §21. UTILITIES
   ════════════════════════════════════════════ */

/* Display */
.d-none {
    display: none !important;
}

.d-block {
    display: block !important;
}

.d-flex {
    display: flex !important;
}

.d-inline-flex {
    display: inline-flex !important;
}

.d-grid {
    display: grid !important;
}

/* Flex */
.flex-row {
    flex-direction: row !important;
}

.flex-col {
    flex-direction: column !important;
}

.flex-wrap {
    flex-wrap: wrap !important;
}

.flex-1 {
    flex: 1 !important;
}

.flex-none {
    flex: none !important;
}

.flex-grow-1 {
    flex-grow: 1 !important;
}

.flex-shrink-0 {
    flex-shrink: 0 !important;
}

/* Align */
.align-start {
    align-items: flex-start !important;
}

.align-center {
    align-items: center !important;
}

.align-end {
    align-items: flex-end !important;
}

.justify-start {
    justify-content: flex-start !important;
}

.justify-center {
    justify-content: center !important;
}

.justify-end {
    justify-content: flex-end !important;
}

.justify-between {
    justify-content: space-between !important;
}

/* Gap */
.gap-1 {
    gap: var(--space-1) !important;
}

.gap-2 {
    gap: var(--space-2) !important;
}

.gap-3 {
    gap: var(--space-3) !important;
}

.gap-4 {
    gap: var(--space-4) !important;
}

.gap-5 {
    gap: var(--space-5) !important;
}

.gap-6 {
    gap: var(--space-6) !important;
}

.gap-8 {
    gap: var(--space-8) !important;
}

.gap-10 {
    gap: 10px !important;
}

/* Margin */
.m-0 {
    margin: 0 !important;
}

.mt-2 {
    margin-top: var(--space-2) !important;
}

.mt-3 {
    margin-top: var(--space-3) !important;
}

.mt-4 {
    margin-top: var(--space-4) !important;
}

.mt-6 {
    margin-top: var(--space-6) !important;
}

.mt-16 {
    margin-top: var(--space-4) !important;
}

.mb-2 {
    margin-bottom: var(--space-2) !important;
}

.mb-4 {
    margin-bottom: var(--space-4) !important;
}

.ml-2 {
    margin-left: var(--space-2) !important;
}

.mr-2 {
    margin-right: var(--space-2) !important;
}

.mx-auto {
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Padding */
.p-0 {
    padding: 0 !important;
}

.p-2 {
    padding: var(--space-2) !important;
}

.p-3 {
    padding: var(--space-3) !important;
}

.p-4 {
    padding: var(--space-4) !important;
}

.p-6 {
    padding: var(--space-6) !important;
}

.p-16 {
    padding: var(--space-4) !important;
}

.px-4 {
    padding-left: var(--space-4) !important;
    padding-right: var(--space-4) !important;
}

.py-2 {
    padding-top: var(--space-2) !important;
    padding-bottom: var(--space-2) !important;
}

/* Sizing */
.w-full {
    width: 100% !important;
}

.full-width {
    width: 100% !important;
}

.h-full {
    height: 100% !important;
}

.min-h-0 {
    min-height: 0 !important;
}

.max-w-400 {
    max-width: 400px !important;
}

.w-150 {
    width: 150px !important;
}

/* Text */
.text-left {
    text-align: left !important;
}

.text-center {
    text-align: center !important;
}

.text-right {
    text-align: right !important;
}

.text-xs {
    font-size: var(--text-xs) !important;
}

.text-sm {
    font-size: var(--text-sm) !important;
}

.text-base {
    font-size: var(--text-base) !important;
}

.text-md {
    font-size: var(--text-md) !important;
}

.text-lg {
    font-size: var(--text-lg) !important;
}

.font-medium {
    font-weight: 500 !important;
}

.font-semibold {
    font-weight: 600 !important;
}

.font-bold {
    font-weight: 700 !important;
}

.text-muted {
    color: var(--color-text-muted) !important;
}

.text-brand {
    color: var(--color-brand) !important;
}

.text-white {
    color: white !important;
}

.truncate {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.font-mono {
    font-family: var(--font-mono) !important;
}

/* Overflow */
.overflow-hidden {
    overflow: hidden !important;
}

.overflow-auto {
    overflow: auto !important;
}

.overflow-y-auto {
    overflow-y: auto !important;
}

/* Border */
.rounded-md {
    border-radius: var(--radius-md) !important;
}

.rounded-lg {
    border-radius: var(--radius-lg) !important;
}

.rounded-xl {
    border-radius: var(--radius-xl) !important;
}

.rounded-full {
    border-radius: var(--radius-full) !important;
}

.border {
    border: 1px solid var(--color-border-default) !important;
}

.border-none {
    border: none !important;
}

/* Position */
.relative {
    position: relative !important;
}

.absolute {
    position: absolute !important;
}

.fixed {
    position: fixed !important;
}

.sticky {
    position: sticky !important;
}

.inset-0 {
    inset: 0 !important;
}

/* Visibility */
.opacity-0 {
    opacity: 0 !important;
}

.opacity-50 {
    opacity: 0.5 !important;
}

.pointer-events-none {
    pointer-events: none !important;
}

.select-none {
    user-select: none !important;
}

.cursor-pointer {
    cursor: pointer !important;
}

/* Transitions */
.transition-all {
    transition: all var(--duration-normal) var(--ease-ultra) !important;
}

.transition-transform {
    transition: transform var(--duration-normal) var(--ease-butter) !important;
}

/* Shadows */
.shadow-none {
    box-shadow: none !important;
}

.shadow-sm {
    box-shadow: var(--shadow-sm) !important;
}

.shadow-md {
    box-shadow: var(--shadow-md) !important;
}

.shadow-lg {
    box-shadow: var(--shadow-lg) !important;
}

.shadow-brand {
    box-shadow: var(--shadow-brand) !important;
}

/* Background */
.bg-white {
    background-color: white !important;
}

.bg-surface {
    background-color: var(--color-bg-surface) !important;
}

.bg-transparent {
    background-color: transparent !important;
}

/* ── Animation Utilities ── */
.animate-fadeIn {
    animation: fadeIn 0.45s var(--ease-ultra) forwards;
}

.animate-fadeInUp {
    animation: fadeInUp 0.55s var(--ease-ultra) forwards;
}

.animate-scaleIn {
    animation: scaleIn 0.45s var(--ease-butter) forwards;
}

.animate-popIn {
    animation: popIn 0.55s var(--ease-butter) forwards;
}

.animate-pulse {
    animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

.animate-spin {
    animation: spin 1s linear infinite;
}

.animate-float {
    animation: float 3.5s ease-in-out infinite;
}

.animate-bob {
    animation: gentleBob 3.5s ease-in-out infinite;
}

.animate-butter {
    animation: butterReveal 1s var(--ease-ultra) forwards;
}

.animate-crystal {
    animation: crystalFadeIn 0.7s var(--ease-ultra) forwards;
}

.animate-magnetic {
    animation: magneticPull 0.8s var(--ease-ultra) forwards;
}

.animate-luxury {
    animation: luxuryUnveil 0.9s var(--ease-ultra) forwards;
}

.animate-silk {
    animation: silkFadeUp 0.7s var(--ease-ultra) forwards;
}

.animate-elastic {
    animation: elasticSlideUp 0.7s var(--ease-ultra) forwards;
}

.animate-shimmer {
    background: linear-gradient(90deg, var(--slate-200) 25%, var(--slate-100) 50%, var(--slate-200) 75%);
    background-size: 200% 100%;
    animation: shimmer 1.8s ease-in-out infinite;
}

.gradient-text {
    background: linear-gradient(135deg, var(--primary-600), var(--primary-400));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.glass {
    background: rgba(255, 255, 255, 0.55) !important;
    backdrop-filter: blur(20px) saturate(160%);
    -webkit-backdrop-filter: blur(20px) saturate(160%);
    border: 1px solid rgba(255, 255, 255, 0.45);
}

/* ── Hover Utilities ── */
.hover-lift {
    transition:
        transform var(--duration-normal) var(--ease-butter),
        box-shadow var(--duration-smooth) var(--ease-ultra);
}

.hover-lift:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-md);
}

.hover-lift:active {
    transform: translateY(-1px);
}

.hover-scale {
    transition: transform var(--duration-normal) var(--ease-butter);
}

.hover-scale:hover {
    transform: scale(1.06);
}

.hover-scale:active {
    transform: scale(0.97);
}

.hover-glow {
    transition:
        transform var(--duration-normal) var(--ease-butter),
        box-shadow var(--duration-smooth) var(--ease-ultra);
}

.hover-glow:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-glow);
}

.hover-shine {
    position: relative;
    overflow: hidden;
}

.hover-shine::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 50%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.12), transparent);
    transform: skewX(-20deg);
    transition: left 0.7s var(--ease-ultra);
}

.hover-shine:hover::after {
    left: 150%;
}

.press-feedback {
    transition: transform var(--duration-fast) var(--ease-butter);
}

.press-feedback:active {
    transform: scale(0.95);
}

/* Stagger */
.stagger-1 {
    animation-delay: 0.05s;
}

.stagger-2 {
    animation-delay: 0.10s;
}

.stagger-3 {
    animation-delay: 0.15s;
}

.stagger-4 {
    animation-delay: 0.20s;
}

.stagger-5 {
    animation-delay: 0.25s;
}

.stagger-6 {
    animation-delay: 0.30s;
}

.stagger-7 {
    animation-delay: 0.35s;
}

.stagger-8 {
    animation-delay: 0.40s;
}

/* Status */
.status-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    display: inline-block;
}

.status-dot-success {
    background: var(--success-500);
    box-shadow: 0 0 0 2px var(--success-100);
    animation: dotBreathe 3s ease-in-out infinite;
}

.status-dot-danger {
    background: var(--danger-500);
    box-shadow: 0 0 0 2px var(--danger-100);
}

/* Badge */
.badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 2px 8px;
    border-radius: var(--radius-full);
    font-size: var(--text-2xs);
    font-weight: 700;
    min-height: 18px;
    transition: transform var(--duration-fast) var(--ease-butter);
}

.badge:hover {
    transform: scale(1.08);
}

.badge-primary {
    background: var(--primary-100);
    color: var(--primary-700);
}

.badge-success {
    background: var(--success-100);
    color: var(--success-700);
}

.badge-danger {
    background: var(--danger-100);
    color: var(--danger-600);
}


/* ════════════════════════════════════════════
   §22. PRINT & ACCESSIBILITY
   ════════════════════════════════════════════ */

@media print {

    .sidebar,
    .app-bar,
    .overlay,
    .particles,
    .slideshow-background,
    .progress-mini,
    .fixed-footer,
    .dashboard-control-panel {
        display: none !important;
    }

    .main-content {
        margin-left: 0 !important;
    }

    body {
        background: white !important;
        overflow: visible !important;
        height: auto !important;
    }

    .dashboard-container {
        height: auto !important;
        overflow: visible !important;
        box-shadow: none !important;
        border: none !important;
        margin: 0 !important;
        background: white !important;
        backdrop-filter: none !important;
    }

    .page-title {
        color: black !important;
        -webkit-text-fill-color: black !important;
    }

    * {
        animation: none !important;
        transition: none !important;
    }
}

@media (forced-colors: active) {

    .modern-card,
    .dashboard-container,
    .login-card {
        border: 2px solid CanvasText !important;
    }

    .action-btn,
    .login-btn,
    .btn-next,
    .btn-submit {
        border: 2px solid ButtonText !important;
    }
}

/* Reduced motion — disable ALL */
@media (prefers-reduced-motion: reduce) {

    .dashboard-container,
    .content-wrapper,
    .header-section,
    .dashboard-control-panel,
    .table-container,
    .modern-table .mud-table-body tr,
    .modern-card,
    .icon-box,
    .page-title,
    .page-subtitle,
    .header-breadcrumb,
    .stat-chip,
    .login-card,
    .input-group,
    .login-btn,
    .form-container,
    .progress-mini,
    .progress-mini-fill,
    .section-title,
    .not-found-container,
    .not-found-container h1,
    .not-found-container h2,
    .not-found-container p,
    .not-found-container .btn,
    .app-bar,
    .form-container .mud-tab-panel,
    .slide,
    .mud-dialog,
    .mud-snackbar,
    .mud-popover-open,
    .mud-tooltip,
    .brand,
    .image-container,
    .tagline,
    .slideshow-background .orb,
    .edit-container {
        animation: none !important;
    }

    *,
    *::before,
    *::after {
        transition-duration: 0.01ms !important;
    }
}

/* ════════════════════════════════════════════
   §20. NOTIFICATION / SNACKBAR — FADE IN & OUT
   ════════════════════════════════════════════ */

/* Snackbar entrance — smooth fade in over 0.5s */
.mud-snackbar {
    animation: snackbarFadeInUp 0.5s var(--ease-ultra) forwards !important;
    transition:
        opacity 0.6s var(--ease-ultra),
        transform 0.6s var(--ease-ultra),
        filter 0.4s var(--ease-ultra) !important;
}

/* Snackbar exit — smooth fade out over 0.6s */
.mud-snackbar.mud-snackbar-closing,
.mud-snackbar[style*="opacity: 0"],
.mud-snackbar.closing {
    animation: snackbarFadeOut 0.6s var(--ease-ultra) forwards !important;
    pointer-events: none;
}

/* Success notification specific styling */
.mud-snackbar.mud-alert-filled-success,
.mud-snackbar.mud-alert-standard-success,
.mud-snackbar.mud-alert-outlined-success {
    background: linear-gradient(135deg, var(--success-500), var(--success-700)) !important;
    color: white !important;
    border: none !important;
    border-radius: var(--radius-lg) !important;
    box-shadow:
        var(--shadow-success),
        0 0 40px rgba(34, 197, 94, 0.1) !important;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    font-weight: 600 !important;
    padding: var(--space-3) var(--space-5) !important;
    min-width: 280px;
}

.mud-snackbar.mud-alert-filled-success .mud-icon-root,
.mud-snackbar.mud-alert-standard-success .mud-icon-root,
.mud-snackbar.mud-alert-outlined-success .mud-icon-root {
    color: white !important;
    animation: popIn 0.4s var(--ease-butter) 0.2s backwards;
}

/* All snackbar variants get smooth treatment */
.mud-snackbar.mud-alert-filled-info,
.mud-snackbar.mud-alert-standard-info {
    background: linear-gradient(135deg, var(--primary-500), var(--primary-700)) !important;
    border-radius: var(--radius-lg) !important;
    box-shadow: var(--shadow-brand) !important;
}

.mud-snackbar.mud-alert-filled-error,
.mud-snackbar.mud-alert-standard-error {
    background: linear-gradient(135deg, var(--danger-500), var(--danger-600)) !important;
    border-radius: var(--radius-lg) !important;
    box-shadow: 0 4px 14px rgba(239, 68, 68, 0.25) !important;
}

.mud-snackbar.mud-alert-filled-warning,
.mud-snackbar.mud-alert-standard-warning {
    background: linear-gradient(135deg, var(--warning-500), var(--warning-600)) !important;
    border-radius: var(--radius-lg) !important;
    box-shadow: 0 4px 14px rgba(245, 158, 11, 0.25) !important;
}

/* Close button inside snackbar */
.mud-snackbar .mud-snackbar-close-button,
.mud-snackbar .mud-alert-close {
    color: rgba(255, 255, 255, 0.7) !important;
    transition:
        color var(--duration-fast) var(--ease-ultra),
        transform var(--duration-fast) var(--ease-butter),
        background var(--duration-fast) var(--ease-ultra) !important;
    border-radius: var(--radius-sm) !important;
}

.mud-snackbar .mud-snackbar-close-button:hover,
.mud-snackbar .mud-alert-close:hover {
    color: white !important;
    background: rgba(255, 255, 255, 0.15) !important;
    transform: scale(1.1) rotate(90deg);
}

/* Snackbar container positioning smoothness */
.mud-snackbar-location-top-center,
.mud-snackbar-location-top-right,
.mud-snackbar-location-top-left,
.mud-snackbar-location-bottom-center,
.mud-snackbar-location-bottom-right,
.mud-snackbar-location-bottom-left {
    transition: all var(--duration-smooth) var(--ease-ultra) !important;
}

/* Multiple snackbars stack smoothly */
.mud-snackbar-postion-provider .mud-snackbar+.mud-snackbar {
    margin-top: var(--space-2);
    animation-delay: 0.1s;
}

/* ── Snackbar Keyframes ── */
@keyframes snackbarFadeInUp {
    0% {
        opacity: 0;
        transform: translateY(20px) scale(0.92);
        filter: blur(6px);
    }

    30% {
        opacity: 0.5;
        filter: blur(2px);
    }

    60% {
        opacity: 0.9;
        transform: translateY(-3px) scale(1.01);
        filter: blur(0.3px);
    }

    80% {
        transform: translateY(1px) scale(0.998);
    }

    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
        filter: blur(0);
    }
}

@keyframes snackbarFadeOut {
    0% {
        opacity: 1;
        transform: translateY(0) scale(1);
        filter: blur(0);
    }

    30% {
        opacity: 0.8;
        transform: translateY(-4px) scale(1.01);
    }

    100% {
        opacity: 0;
        transform: translateY(16px) scale(0.94);
        filter: blur(4px);
    }
}

/* Top-positioned snackbars slide from top */
.mud-snackbar-location-top-center .mud-snackbar,
.mud-snackbar-location-top-right .mud-snackbar,
.mud-snackbar-location-top-left .mud-snackbar {
    animation: snackbarFadeInDown 0.5s var(--ease-ultra) forwards !important;
}

.mud-snackbar-location-top-center .mud-snackbar.mud-snackbar-closing,
.mud-snackbar-location-top-right .mud-snackbar.mud-snackbar-closing,
.mud-snackbar-location-top-left .mud-snackbar.mud-snackbar-closing {
    animation: snackbarFadeOutUp 0.6s var(--ease-ultra) forwards !important;
}

@keyframes snackbarFadeInDown {
    0% {
        opacity: 0;
        transform: translateY(-20px) scale(0.92);
        filter: blur(6px);
    }

    30% {
        opacity: 0.5;
        filter: blur(2px);
    }

    60% {
        opacity: 0.9;
        transform: translateY(3px) scale(1.01);
        filter: blur(0.3px);
    }

    80% {
        transform: translateY(-1px) scale(0.998);
    }

    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
        filter: blur(0);
    }
}

@keyframes snackbarFadeOutUp {
    0% {
        opacity: 1;
        transform: translateY(0) scale(1);
        filter: blur(0);
    }

    30% {
        opacity: 0.8;
        transform: translateY(4px) scale(1.01);
    }

    100% {
        opacity: 0;
        transform: translateY(-16px) scale(0.94);
        filter: blur(4px);
    }
}

/* ════════════════════════════════════════════
   §21. CHECKBOX, PIN BADGE & LOCK TOGGLE
   ════════════════════════════════════════════ */

/* ── Checkbox Column ── */
.col-checkbox {
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    text-align: center !important;
    padding-left: var(--space-2) !important;
    padding-right: 0 !important;
}

.row-checkbox {
    margin: 0 !important;
    padding: 0 !important;
}

.row-checkbox .mud-button-root {
    padding: 4px !important;
    transition:
        transform var(--duration-fast) var(--ease-butter),
        color var(--duration-fast) var(--ease-ultra) !important;
}

.row-checkbox .mud-button-root:active {
    transform: scale(0.8) !important;
}

.row-checkbox .mud-icon-root {
    font-size: 20px !important;
    transition: all var(--duration-fast) var(--ease-ultra);
}

/* Header checkbox */
.mud-table-head .col-checkbox .row-checkbox .mud-icon-root {
    color: var(--primary-500) !important;
}

/* Checked animation */
.row-checkbox .mud-checkbox-true .mud-icon-root {
    animation: checkboxPop 0.3s var(--ease-butter);
    color: var(--primary-600) !important;
}

@keyframes checkboxPop {
    0% {
        transform: scale(0.6);
        opacity: 0.5;
    }

    50% {
        transform: scale(1.2);
    }

    75% {
        transform: scale(0.95);
    }

    100% {
        transform: scale(1);
        opacity: 1;
    }
}

/* Selected row highlight */
.modern-table .mud-table-body tr:has(.mud-checkbox-true) td {
    background: rgba(37, 99, 235, 0.04) !important;
}

.modern-table .mud-table-body tr:has(.mud-checkbox-true) {
    box-shadow: inset 3px 0 0 var(--primary-400);
}


/* ── Lock Column ── */
.col-lock {
    width: 100px !important;
    text-align: center !important;
}

@media (min-width: 640px) {
    .col-lock {
        width: 120px !important;
    }
}

.lock-toggle-container {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-1);
}

/* ── Lock Switch — iOS-style toggle ── */
.lock-switch {
    position: relative;
    display: inline-flex;
    align-items: center;
    cursor: pointer;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
}

.lock-switch input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.lock-slider {
    position: relative;
    width: 52px;
    height: 28px;
    border-radius: var(--radius-full);
    background: var(--success-500);
    transition:
        background var(--duration-smooth) var(--ease-ultra),
        box-shadow var(--duration-smooth) var(--ease-ultra);
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
    overflow: hidden;
}

/* Locked state = red */
.lock-switch.is-locked .lock-slider {
    background: var(--danger-500);
    box-shadow:
        inset 0 1px 3px rgba(0, 0, 0, 0.15),
        0 0 12px rgba(239, 68, 68, 0.15);
}

/* Unlocked state = green */
.lock-switch.is-unlocked .lock-slider {
    background: var(--success-500);
    box-shadow:
        inset 0 1px 3px rgba(0, 0, 0, 0.1),
        0 0 12px rgba(34, 197, 94, 0.15);
}

/* Thumb */
.lock-thumb {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: white;
    box-shadow:
        0 2px 4px rgba(0, 0, 0, 0.12),
        0 0 1px rgba(0, 0, 0, 0.08);
    transition:
        transform var(--duration-smooth) var(--ease-butter),
        box-shadow var(--duration-normal) var(--ease-ultra);
    z-index: 3;
}

/* Locked = thumb moves right */
.lock-switch.is-locked .lock-thumb {
    transform: translateX(24px);
}

/* Hover */
.lock-switch:hover .lock-thumb {
    box-shadow:
        0 2px 6px rgba(0, 0, 0, 0.18),
        0 0 0 4px rgba(0, 0, 0, 0.04);
    transform: scale(1.05);
}

.lock-switch.is-locked:hover .lock-thumb {
    transform: translateX(24px) scale(1.05);
}

/* Active press */
.lock-switch:active .lock-thumb {
    width: 28px;
    transition-duration: var(--duration-instant);
}

.lock-switch.is-locked:active .lock-thumb {
    transform: translateX(20px);
}

/* Lock Icons inside slider */
.lock-icon {
    position: absolute;
    width: 16px;
    height: 16px;
    top: 6px;
    fill: rgba(255, 255, 255, 0.85);
    transition:
        opacity var(--duration-normal) var(--ease-ultra),
        transform var(--duration-normal) var(--ease-butter);
    z-index: 2;
}

.lock-closed {
    right: 6px;
    opacity: 0;
    transform: scale(0.7) rotate(-10deg);
}

.lock-open {
    left: 6px;
    opacity: 1;
    transform: scale(1) rotate(0deg);
}

/* When locked: show closed, hide open */
.lock-switch.is-locked .lock-closed {
    opacity: 1;
    transform: scale(1) rotate(0deg);
}

.lock-switch.is-locked .lock-open {
    opacity: 0;
    transform: scale(0.7) rotate(10deg);
}

/* Disabled state */
.lock-switch input:disabled+.lock-slider {
    opacity: 0.5;
    cursor: not-allowed;
    filter: grayscale(30%);
}

.lock-switch input:disabled+.lock-slider .lock-thumb {
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

.lock-switch:has(input:disabled) {
    cursor: not-allowed;
    pointer-events: none;
}

/* Locked badge icon */
.locked-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: rgba(239, 68, 68, 0.1);
    color: var(--danger-500);
    animation: popIn 0.4s var(--ease-butter) backwards;
}

.locked-badge .mud-icon-root {
    font-size: 12px !important;
}

/* Locked text style */
.locked-text {
    color: var(--slate-400) !important;
    font-style: italic;
    user-select: none;
}


/* ── Pin / Attachment Button with iOS Badge ── */
.pin-btn-wrapper {
    position: relative;
    display: inline-flex;
}

.action-btn-pin {
    color: var(--slate-500) !important;
    background: rgba(100, 116, 139, 0.06) !important;
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    border-radius: var(--radius-md) !important;
    transition:
        background var(--duration-fast) var(--ease-ultra),
        transform var(--duration-fast) var(--ease-butter),
        color var(--duration-fast) var(--ease-ultra),
        box-shadow var(--duration-normal) var(--ease-ultra) !important;
}

.action-btn-pin:hover {
    background: rgba(37, 99, 235, 0.1) !important;
    color: var(--primary-600) !important;
    transform: scale(1.15) rotate(-10deg) translateY(-1px);
    box-shadow: 0 3px 10px rgba(37, 99, 235, 0.12);
}

.action-btn-pin:active {
    transform: scale(0.88) rotate(-5deg);
    transition-duration: var(--duration-instant);
}

.action-btn-pin .mud-icon-root {
    font-size: var(--text-lg) !important;
    transform: rotate(45deg);
    transition: transform var(--duration-fast) var(--ease-butter);
}

.action-btn-pin:hover .mud-icon-root {
    transform: rotate(25deg) scale(1.1);
}

/* iOS-style notification badge */
.pin-badge {
    position: absolute;
    top: -4px;
    right: -4px;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: var(--radius-full);
    background: linear-gradient(135deg, var(--danger-500), #e11d48);
    color: white;
    font-size: 10px;
    font-weight: 800;
    line-height: 18px;
    text-align: center;
    box-shadow:
        0 2px 6px rgba(239, 68, 68, 0.4),
        0 0 0 2px var(--color-bg-surface);
    z-index: 5;
    animation: badgeBounceIn 0.5s var(--ease-butter) backwards;
    pointer-events: none;
    font-family: var(--font-mono);
    letter-spacing: -0.03em;
}

/* Badge pulse when count > 0 */
.pin-badge::after {
    content: '';
    position: absolute;
    inset: -2px;
    border-radius: var(--radius-full);
    background: rgba(239, 68, 68, 0.3);
    animation: badgePulse 2.5s ease-in-out infinite;
    z-index: -1;
}

@keyframes badgeBounceIn {
    0% {
        opacity: 0;
        transform: scale(0) translateY(4px);
    }

    50% {
        transform: scale(1.3) translateY(-2px);
    }

    70% {
        transform: scale(0.9);
    }

    100% {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

@keyframes badgePulse {

    0%,
    100% {
        transform: scale(1);
        opacity: 0.3;
    }

    50% {
        transform: scale(1.6);
        opacity: 0;
    }
}

@media (min-width: 640px) {
    .action-btn-pin {
        width: 40px !important;
        height: 40px !important;
        min-width: 40px !important;
    }

    .action-btn-pin .mud-icon-root {
        font-size: var(--text-xl) !important;
    }

    .pin-badge {
        min-width: 20px;
        height: 20px;
        font-size: 11px;
        line-height: 20px;
        top: -5px;
        right: -5px;
    }
}


/* ── Bulk Actions Bar ── */
.bulk-actions-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    margin-top: var(--space-3);
    padding: var(--space-2h) var(--space-4);
    background: linear-gradient(135deg, var(--primary-50), rgba(37, 99, 235, 0.04));
    border: 1px solid var(--primary-200);
    border-radius: var(--radius-lg);
    animation: elasticSlideUp 0.4s var(--ease-ultra) forwards;
    flex-wrap: wrap;
}

.bulk-label {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-sm);
    font-weight: 700;
    color: var(--primary-700);
    white-space: nowrap;
}

.bulk-label .mud-icon-root {
    font-size: 18px !important;
    color: var(--primary-500) !important;
    animation: popIn 0.3s var(--ease-butter);
}

.bulk-buttons {
    display: flex;
    gap: var(--space-2);
    flex-wrap: wrap;
}

.bulk-btn-lock {
    background: rgba(245, 158, 11, 0.1) !important;
    color: var(--warning-600) !important;
    border: 1px solid rgba(245, 158, 11, 0.2) !important;
    font-weight: 600 !important;
    font-size: var(--text-xs) !important;
    border-radius: var(--radius-md) !important;
    transition:
        transform var(--duration-fast) var(--ease-butter),
        background var(--duration-fast) var(--ease-ultra),
        box-shadow var(--duration-normal) var(--ease-ultra) !important;
}

.bulk-btn-lock:hover {
    background: rgba(245, 158, 11, 0.18) !important;
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(245, 158, 11, 0.15);
}

.bulk-btn-unlock {
    background: rgba(34, 197, 94, 0.1) !important;
    color: var(--success-600) !important;
    border: 1px solid rgba(34, 197, 94, 0.2) !important;
    font-weight: 600 !important;
    font-size: var(--text-xs) !important;
    border-radius: var(--radius-md) !important;
    transition:
        transform var(--duration-fast) var(--ease-butter),
        background var(--duration-fast) var(--ease-ultra),
        box-shadow var(--duration-normal) var(--ease-ultra) !important;
}

.bulk-btn-unlock:hover {
    background: rgba(34, 197, 94, 0.18) !important;
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(34, 197, 94, 0.15);
}

.bulk-btn-delete {
    background: rgba(239, 68, 68, 0.1) !important;
    color: var(--danger-600) !important;
    border: 1px solid rgba(239, 68, 68, 0.2) !important;
    font-weight: 600 !important;
    font-size: var(--text-xs) !important;
    border-radius: var(--radius-md) !important;
    transition:
        transform var(--duration-fast) var(--ease-butter),
        background var(--duration-fast) var(--ease-ultra),
        box-shadow var(--duration-normal) var(--ease-ultra) !important;
}

.bulk-btn-delete:hover {
    background: rgba(239, 68, 68, 0.18) !important;
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(239, 68, 68, 0.15);
}

.bulk-btn-cancel {
    background: rgba(100, 116, 139, 0.08) !important;
    color: var(--slate-600) !important;
    border: 1px solid rgba(100, 116, 139, 0.15) !important;
    font-weight: 600 !important;
    font-size: var(--text-xs) !important;
    border-radius: var(--radius-md) !important;
    transition:
        transform var(--duration-fast) var(--ease-butter),
        background var(--duration-fast) var(--ease-ultra) !important;
}

.bulk-btn-cancel:hover {
    background: rgba(100, 116, 139, 0.14) !important;
    transform: translateY(-1px);
}


/* ── Stat Chips — Additional variants ── */
.stat-chip-selected {
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.08), rgba(99, 102, 241, 0.06)) !important;
    border: 1px solid rgba(37, 99, 235, 0.15) !important;
    font-weight: 700 !important;
    color: var(--primary-600) !important;
    padding: var(--space-1) var(--space-3) !important;
    border-radius: var(--radius-md) !important;
    font-size: var(--text-sm);
    transition: all var(--duration-normal) var(--ease-butter);
}

.stat-chip-selected:hover {
    transform: scale(1.05);
    box-shadow: 0 2px 8px rgba(37, 99, 235, 0.1);
}

.stat-chip-locked {
    background: linear-gradient(135deg, rgba(239, 68, 68, 0.06), rgba(244, 63, 94, 0.04)) !important;
    border: 1px solid rgba(239, 68, 68, 0.12) !important;
    font-weight: 700 !important;
    color: var(--danger-600) !important;
    padding: var(--space-1) var(--space-3) !important;
    border-radius: var(--radius-md) !important;
    font-size: var(--text-sm);
    transition: all var(--duration-normal) var(--ease-butter);
}

.stat-chip-locked:hover {
    transform: scale(1.05);
    box-shadow: 0 2px 8px rgba(239, 68, 68, 0.1);
}


/* ── Locked row visual treatment ── */
.modern-table .mud-table-body tr:has(.is-locked) td {
    background: rgba(239, 68, 68, 0.02) !important;
}

.modern-table .mud-table-body tr:has(.is-locked):hover td {
    background: rgba(239, 68, 68, 0.04) !important;
}

.modern-table .mud-table-body tr:has(.is-locked) {
    position: relative;
}

.modern-table .mud-table-body tr:has(.is-locked)::after {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: linear-gradient(180deg, var(--danger-400), var(--danger-500));
    border-radius: 0 2px 2px 0;
    opacity: 0.6;
}


/* ── Mobile adjustments ── */
@media (max-width: 639px) {
    .col-checkbox {
        width: 36px !important;
        min-width: 36px !important;
        max-width: 36px !important;
        padding-left: var(--space-1) !important;
    }

    .col-lock {
        width: 80px !important;
    }

    .lock-slider {
        width: 44px;
        height: 24px;
    }

    .lock-thumb {
        width: 20px;
        height: 20px;
    }

    .lock-switch.is-locked .lock-thumb {
        transform: translateX(20px);
    }

    .lock-icon {
        width: 13px;
        height: 13px;
        top: 5.5px;
    }

    .lock-closed {
        right: 5px;
    }

    .lock-open {
        left: 5px;
    }

    .bulk-actions-bar {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--space-2);
    }

    .bulk-buttons {
        width: 100%;
    }

    .locked-badge {
        display: none;
    }

    .pin-badge {
        min-width: 16px;
        height: 16px;
        font-size: 9px;
        line-height: 16px;
        top: -3px;
        right: -3px;
    }

    /* Force left alignment for new columns */
    .col-checkbox,
    .col-lock {
        text-align: center !important;
        justify-content: center !important;
    }
}


/* ── Disabled button states for locked rows ── */
.action-btn-edit:disabled,
.action-btn-del:disabled,
.action-btn-pin:disabled {
    opacity: 0.35 !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
    transform: none !important;
    filter: grayscale(40%);
}

/* 
   7. LOCK TOGGLE SWITCH (CUSTOM)
    */

.lock-toggle-wrapper {
    position: relative;
    display: inline-flex;
    align-items: center;
    cursor: pointer;
    vertical-align: middle;
}

.lock-toggle-input {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

.lock-toggle-track {
    width: 3.5rem;
    height: 1.75rem;
    background-color: #fb7185;
    border-radius: 9999px;
    transition: background-color 0.3s cubic-bezier(0.2, 0.8, 0.2, 1);
    position: relative;
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.1);
}

.lock-toggle-input:checked~.lock-toggle-track {
    background-color: #10b981;
}

/* Knob */
.lock-toggle-track::after {
    content: '';
    position: absolute;
    top: 0.125rem;
    left: 0.125rem;
    width: 1.5rem;
    height: 1.5rem;
    background-color: white;
    border-radius: 50%;
    transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
    z-index: 2;
}

.lock-toggle-track:hover::after {
    transform: scale(0.95);
}

.lock-toggle-input:checked~.lock-toggle-track::after {
    transform: translateX(1.75rem);
}

/* Icons */
.lock-icon {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 1rem;
    height: 1rem;
    fill: white;
    z-index: 1;
    pointer-events: none;
    transition: opacity 0.3s;
}

.lock-icon path {
    fill: currentColor;
}

.lock-icon-open {
    left: 0.375rem;
    opacity: 0;
}

.lock-icon-closed {
    right: 0.375rem;
    opacity: 1;
}

.lock-toggle-input:checked~.lock-toggle-track .lock-icon-open {
    opacity: 1;
}

.lock-toggle-input:checked~.lock-toggle-track .lock-icon-closed {
    opacity: 0;
}


/* ╔══════════════════════════════════════════════════════════════╗
   ║  §LOGIN PAGE — NOVA ERP PREMIUM AUTH UI                    ║
   ╚══════════════════════════════════════════════════════════════╝ */

/* ══════════ ROOT / FULL-SCREEN SHELL ══════════ */
.lp-root {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    font-family: var(--font-sans);
    background: #060c1a;
    z-index: 0;
}

/* ══════════ ANIMATED BACKGROUND ══════════ */
.lp-bg {
    position: absolute;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
    z-index: 0;
}

.lp-bg-orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(80px);
    will-change: transform, opacity;
}

.lp-bg-orb--1 {
    width: 600px;
    height: 600px;
    background: radial-gradient(circle, rgba(37, 99, 235, 0.28) 0%, rgba(37, 99, 235, 0.04) 70%);
    top: -180px;
    left: -160px;
    animation: orbDrift1 18s ease-in-out infinite alternate;
}

.lp-bg-orb--2 {
    width: 500px;
    height: 500px;
    background: radial-gradient(circle, rgba(99, 102, 241, 0.22) 0%, rgba(99, 102, 241, 0.03) 70%);
    bottom: -120px;
    right: -120px;
    animation: orbDrift2 22s ease-in-out infinite alternate;
}

.lp-bg-orb--3 {
    width: 360px;
    height: 360px;
    background: radial-gradient(circle, rgba(6, 182, 212, 0.15) 0%, transparent 70%);
    top: 40%;
    left: 55%;
    animation: orbDrift3 15s ease-in-out infinite alternate;
}

.lp-bg-grid {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(96, 165, 250, 0.045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(96, 165, 250, 0.045) 1px, transparent 1px);
    background-size: 48px 48px;
    mask-image: radial-gradient(ellipse 80% 80% at 50% 50%, black 40%, transparent 100%);
    -webkit-mask-image: radial-gradient(ellipse 80% 80% at 50% 50%, black 40%, transparent 100%);
}

@keyframes orbDrift1 {
    0% {
        transform: translate(0, 0) scale(1);
    }

    50% {
        transform: translate(60px, 40px) scale(1.08);
    }

    100% {
        transform: translate(30px, 80px) scale(0.95);
    }
}

@keyframes orbDrift2 {
    0% {
        transform: translate(0, 0) scale(1);
    }

    50% {
        transform: translate(-50px, -60px) scale(1.1);
    }

    100% {
        transform: translate(-20px, -30px) scale(0.92);
    }
}

@keyframes orbDrift3 {
    0% {
        transform: translate(0, 0) scale(1);
        opacity: 0.6;
    }

    100% {
        transform: translate(-40px, 50px) scale(1.15);
        opacity: 1;
    }
}

/* ══════════ PARTICLES ══════════ */
.lp-particles {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 1;
    overflow: hidden;
}

.lp-particle {
    position: absolute;
    bottom: -10px;
    border-radius: 50%;
    background: rgba(96, 165, 250, 0.55);
    box-shadow: 0 0 6px rgba(96, 165, 250, 0.6);
    animation: particleFloat linear infinite;
    will-change: transform, opacity;
}

@keyframes particleFloat {
    0% {
        transform: translateY(0) scale(1);
        opacity: 0;
    }

    10% {
        opacity: 0.7;
    }

    90% {
        opacity: 0.4;
    }

    100% {
        transform: translateY(-100vh) scale(0.3);
        opacity: 0;
    }
}

/* ══════════ MAIN CARD ══════════ */
.lp-card {
    position: relative;
    z-index: 10;
    display: flex;
    width: min(960px, 95vw);
    max-height: 95dvh;
    border-radius: 24px;
    overflow: hidden;
    box-shadow:
        0 0 0 1px rgba(96, 165, 250, 0.12),
        0 32px 80px rgba(0, 0, 0, 0.55),
        0 8px 24px rgba(0, 0, 0, 0.35),
        inset 0 1px 0 rgba(255, 255, 255, 0.06);
    animation: cardReveal 0.9s var(--ease-expo) both;
}

@keyframes cardReveal {
    from {
        opacity: 0;
        transform: scale(0.92) translateY(32px);
        filter: blur(6px);
    }

    to {
        opacity: 1;
        transform: scale(1) translateY(0);
        filter: blur(0);
    }
}

/* ══════════ LEFT PANEL ══════════ */
.lp-left {
    flex: 0 0 52%;
    display: flex;
    flex-direction: column;
    padding: 36px 40px 32px;
    background:
        linear-gradient(145deg, rgba(14, 28, 60, 0.98) 0%, rgba(10, 18, 44, 0.99) 100%);
    border-right: 1px solid rgba(96, 165, 250, 0.1);
    position: relative;
    overflow: hidden;
}

.lp-left::before {
    content: '';
    position: absolute;
    top: -80px;
    right: -80px;
    width: 280px;
    height: 280px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(37, 99, 235, 0.12) 0%, transparent 70%);
    pointer-events: none;
}

/* Brand */
.lp-brand {
    display: flex;
    align-items: center;
    gap: 10px;
    animation: fadeInDown 0.7s var(--ease-expo) 0.1s both;
}

.lp-brand-icon {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    box-shadow: 0 4px 16px rgba(37, 99, 235, 0.4);
    flex-shrink: 0;
}

.lp-brand-name {
    font-family: var(--font-display);
    font-size: 1.25rem;
    font-weight: 500;
    color: rgba(226, 232, 240, 0.9);
    letter-spacing: -0.01em;
}

.lp-brand-name strong {
    font-weight: 800;
    color: #fff;
}

/* Illustration */
.lp-illustration {
    position: relative;
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    animation: fadeIn 1s var(--ease-smooth) 0.25s both;
    min-height: 0;
}

.lp-illus-orb {
    position: absolute;
    width: 200px;
    height: 200px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(37, 99, 235, 0.15) 0%, transparent 70%);
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    animation: breathePulse 4s ease-in-out infinite;
    pointer-events: none;
}

@keyframes breathePulse {

    0%,
    100% {
        transform: translate(-50%, -50%) scale(1);
        opacity: 0.7;
    }

    50% {
        transform: translate(-50%, -50%) scale(1.15);
        opacity: 1;
    }
}

.lp-illus-svg {
    width: 100%;
    max-width: 380px;
    height: auto;
    filter: drop-shadow(0 8px 32px rgba(37, 99, 235, 0.18));
    animation: svgFloat 6s ease-in-out infinite;
}

@keyframes svgFloat {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-8px);
    }
}

/* Tagline */
.lp-tagline {
    animation: fadeInUp 0.7s var(--ease-expo) 0.35s both;
}

.lp-tagline-headline {
    font-family: var(--font-display);
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.35;
    color: #fff;
    letter-spacing: -0.02em;
    margin-bottom: 8px;
}

.lp-tagline-sub {
    font-size: 0.8125rem;
    line-height: 1.6;
    color: rgba(148, 163, 184, 0.8);
}

/* Feature Pills */
.lp-features {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 18px;
    animation: fadeInUp 0.7s var(--ease-expo) 0.45s both;
}

.lp-feature-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 12px;
    background: rgba(37, 99, 235, 0.12);
    border: 1px solid rgba(96, 165, 250, 0.18);
    border-radius: var(--radius-full);
    font-size: 0.72rem;
    font-weight: 500;
    color: rgba(147, 197, 253, 0.9);
    letter-spacing: 0.01em;
    transition: background var(--duration-fast) var(--ease-default),
        border-color var(--duration-fast) var(--ease-default),
        transform var(--duration-fast) var(--ease-spring);
    cursor: default;
}

.lp-feature-pill:hover {
    background: rgba(37, 99, 235, 0.22);
    border-color: rgba(96, 165, 250, 0.35);
    transform: translateY(-1px);
    color: #bfdbfe;
}

/* ══════════ RIGHT PANEL ══════════ */
.lp-right {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(15, 20, 40, 0.97);
    overflow-y: auto;
    padding: 40px 32px;
    scrollbar-width: thin;
    scrollbar-color: rgba(96, 165, 250, 0.2) transparent;
}

.lp-right::-webkit-scrollbar {
    width: 4px;
}

.lp-right::-webkit-scrollbar-thumb {
    background: rgba(96, 165, 250, 0.2);
    border-radius: 2px;
}

.lp-form-wrap {
    width: 100%;
    max-width: 360px;
    animation: cardReveal 0.8s var(--ease-expo) 0.15s both;
}

/* Form Header */
.lp-form-header {
    text-align: center;
    margin-bottom: 32px;
}

.lp-form-icon {
    width: 52px;
    height: 52px;
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.25) 0%, rgba(99, 102, 241, 0.25) 100%);
    border: 1px solid rgba(96, 165, 250, 0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 16px;
    color: #60a5fa;
    box-shadow: 0 0 24px rgba(37, 99, 235, 0.15);
    animation: scaleInBounce 0.7s var(--ease-bounce) 0.2s both;
}

.lp-form-title {
    font-family: var(--font-display);
    font-size: 1.7rem;
    font-weight: 700;
    color: #f1f5f9;
    letter-spacing: -0.03em;
    margin-bottom: 6px;
    line-height: 1.2;
}

.lp-form-subtitle {
    font-size: 0.8375rem;
    color: rgba(100, 116, 139, 0.9);
    font-weight: 400;
}

/* Form */
.lp-form {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* Error Alert */
.lp-error-alert {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 11px 14px;
    background: rgba(239, 68, 68, 0.1);
    border: 1px solid rgba(239, 68, 68, 0.25);
    border-radius: var(--radius-md);
    color: #fca5a5;
    font-size: 0.8125rem;
    font-weight: 500;
    animation: fadeInDown 0.3s var(--ease-expo);
    line-height: 1.4;
}

.lp-error-alert svg {
    flex-shrink: 0;
    opacity: 0.85;
}

/* Fields */
.lp-field {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.lp-label {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.78rem;
    font-weight: 600;
    color: rgba(148, 163, 184, 0.85);
    letter-spacing: 0.03em;
    text-transform: uppercase;
    cursor: default;
}

.lp-label svg {
    opacity: 0.7;
    flex-shrink: 0;
}

.lp-input-wrap {
    position: relative;
}

.lp-input {
    width: 100%;
    padding: 13px 16px;
    background: rgba(30, 41, 59, 0.6);
    border: 1.5px solid rgba(51, 65, 85, 0.8);
    border-radius: var(--radius-md);
    color: #e2e8f0;
    font-size: 0.9rem;
    font-family: var(--font-sans);
    font-weight: 400;
    outline: none;
    transition:
        border-color 0.22s var(--ease-default),
        background 0.22s var(--ease-default),
        box-shadow 0.22s var(--ease-default),
        color 0.15s var(--ease-default);
    letter-spacing: 0.01em;
    -webkit-font-smoothing: antialiased;
}

.lp-input::placeholder {
    color: rgba(100, 116, 139, 0.55);
    font-weight: 400;
}

.lp-input:hover {
    border-color: rgba(71, 85, 105, 0.95);
    background: rgba(30, 41, 59, 0.75);
}

.lp-input:focus {
    border-color: #3b82f6;
    background: rgba(30, 41, 59, 0.9);
    box-shadow:
        0 0 0 3px rgba(37, 99, 235, 0.18),
        0 0 20px rgba(37, 99, 235, 0.08);
    color: #f1f5f9;
}

/* Glowing underline on focus */
.lp-input-highlight {
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 0;
    height: 2px;
    background: linear-gradient(90deg, #3b82f6, #818cf8);
    border-radius: 0 0 var(--radius-md) var(--radius-md);
    transition: width 0.35s var(--ease-expo), left 0.35s var(--ease-expo);
    pointer-events: none;
}

.lp-input:focus~.lp-input-highlight {
    width: 100%;
    left: 0;
}

/* Password toggle */
.lp-input-wrap--pw .lp-input {
    padding-right: 48px;
}

.lp-pw-toggle {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: var(--radius-sm);
    background: transparent;
    border: none;
    color: rgba(100, 116, 139, 0.7);
    cursor: pointer;
    transition:
        color 0.18s var(--ease-default),
        background 0.18s var(--ease-default),
        transform 0.18s var(--ease-spring);
    z-index: 2;
}

.lp-pw-toggle:hover {
    color: #60a5fa;
    background: rgba(37, 99, 235, 0.1);
    transform: translateY(-50%) scale(1.1);
}

.lp-pw-toggle:active {
    transform: translateY(-50%) scale(0.92);
}

/* Validation message */
.lp-validation {
    font-size: 0.75rem;
    color: #fca5a5;
    font-weight: 500;
    padding-left: 2px;
    animation: fadeInDown 0.25s var(--ease-expo);
}

/* Submit Button */
.lp-submit-btn {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 14px 24px;
    margin-top: 4px;
    background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 50%, #4f46e5 100%);
    background-size: 200% 200%;
    border: none;
    border-radius: var(--radius-md);
    color: #fff;
    font-family: var(--font-sans);
    font-size: 0.9rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    cursor: pointer;
    overflow: hidden;
    box-shadow:
        0 4px 20px rgba(37, 99, 235, 0.38),
        0 1px 4px rgba(37, 99, 235, 0.2),
        inset 0 1px 0 rgba(255, 255, 255, 0.12);
    transition:
        transform 0.2s var(--ease-spring),
        box-shadow 0.2s var(--ease-default),
        background-position 0.5s var(--ease-default),
        opacity 0.2s;
    will-change: transform;
}

.lp-submit-btn::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.12) 0%, transparent 60%);
    opacity: 0;
    transition: opacity 0.25s var(--ease-default);
    pointer-events: none;
    border-radius: inherit;
}

.lp-submit-btn:hover:not(:disabled) {
    transform: translateY(-2px);
    box-shadow:
        0 8px 32px rgba(37, 99, 235, 0.5),
        0 2px 8px rgba(37, 99, 235, 0.25),
        inset 0 1px 0 rgba(255, 255, 255, 0.15);
    background-position: right center;
}

.lp-submit-btn::before:hover {
    opacity: 1;
}

.lp-submit-btn:active:not(:disabled) {
    transform: translateY(0) scale(0.975);
    box-shadow:
        0 2px 10px rgba(37, 99, 235, 0.3),
        inset 0 1px 0 rgba(255, 255, 255, 0.1);
    transition-duration: 0.08s;
}

.lp-submit-btn:disabled {
    opacity: 0.72;
    cursor: not-allowed;
    transform: none;
}

/* Ripple shimmer on button */
.lp-submit-btn::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 60%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.12), transparent);
    transform: skewX(-20deg);
    animation: btnShimmer 3s ease-in-out infinite 1.2s;
}

@keyframes btnShimmer {
    0% {
        left: -80%;
    }

    40%,
    100% {
        left: 140%;
    }
}

/* Loading Spinner */
.lp-spinner {
    display: inline-block;
    width: 17px;
    height: 17px;
    border: 2.5px solid rgba(255, 255, 255, 0.25);
    border-top-color: #fff;
    border-radius: 50%;
    animation: spinLoop 0.7s linear infinite;
    flex-shrink: 0;
}

@keyframes spinLoop {
    to {
        transform: rotate(360deg);
    }
}

/* Footer */
.lp-form-footer {
    margin-top: 28px;
    text-align: center;
    font-size: 0.72rem;
    color: rgba(71, 85, 105, 0.75);
    line-height: 1.5;
}

/* ══════════ RESPONSIVE ══════════ */

/* Tablet: stack vertically */
@media (max-width: 768px) {
    .lp-card {
        flex-direction: column;
        width: 100vw;
        max-height: 100dvh;
        border-radius: 0;
        box-shadow: none;
    }

    .lp-left {
        flex: 0 0 auto;
        padding: 28px 28px 20px;
        border-right: none;
        border-bottom: 1px solid rgba(96, 165, 250, 0.1);
    }

    .lp-illustration {
        display: none;
    }

    .lp-tagline-headline {
        font-size: 1.1rem;
    }

    .lp-tagline-sub {
        display: none;
    }

    .lp-right {
        flex: 1;
        padding: 28px 24px;
    }

    .lp-form-wrap {
        max-width: 100%;
    }

    .lp-form-title {
        font-size: 1.45rem;
    }
}

/* Mobile */
@media (max-width: 480px) {
    .lp-left {
        padding: 20px 20px 16px;
    }

    .lp-features {
        display: none;
    }

    .lp-right {
        padding: 24px 20px;
    }

    .lp-form-icon {
        width: 44px;
        height: 44px;
    }

    .lp-form-title {
        font-size: 1.3rem;
    }
}

/* Large screens: wider card */
@media (min-width: 1200px) {
    .lp-card {
        width: min(1080px, 92vw);
    }

    .lp-tagline-headline {
        font-size: 1.5rem;
    }

    .scrollable-dropdown .mud-popover {
        max-height: 250px;
        overflow-y: auto;
    }

    .scrollable-dropdown .mud-popover .mud-list {
        max-height: 250px;
        overflow-y: auto;
    }

}

/* ══════════════════════════════════════════════════════════════
   GLOBAL TYPOGRAPHY — Inter / Roboto / Segoe UI
   Applies consistent font sizes across all pages & components.
   ══════════════════════════════════════════════════════════════ */

html,
body,
* {
    font-family: 'Inter', 'Roboto', 'Segoe UI', system-ui, -apple-system, sans-serif;
}

/* Page heading (.header-title / MudText h6) */
.header-title {
    font-size: 1.125rem;
    font-weight: 700;
    letter-spacing: -0.01em;
    line-height: 1.3;
}

/* Page sub-heading */
.header-subtitle {
    font-size: 0.8125rem;
    font-weight: 400;
    line-height: 1.5;
}

/* Table column headers */
.mud-table-head .mud-table-cell,
th.mud-table-cell {
    font-size: 0.6875rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.07em !important;
}

/* Table body rows */
.mud-table-body .mud-table-cell,
td.mud-table-cell {
    font-size: 0.875rem !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
}

/* Profile name in row — Aligned to table base 0.875rem */
.profile-name {
    font-size: 0.875rem !important;
    font-weight: 500 !important;
    color: var(--slate-900) !important;
    font-family: var(--font-sans) !important;
}

/* Supplemental info (City, State, Company) */
.text-secondary {
    font-size: 0.875rem !important;
    color: var(--slate-500) !important;
    font-family: var(--font-sans) !important;
}

/* Category badges */
.role-badge {
    display: inline-flex;
    padding: 2px 10px;
    background: var(--primary-50);
    color: var(--primary-700);
    border-radius: 99px;
    font-size: 0.75rem !important;
    font-weight: 600 !important;
}

/* ID pill badge */
.id-pill {
    padding: 2px 8px;
    background: var(--slate-100);
    color: var(--slate-500);
    border-radius: 4px;
    font-family: var(--font-mono) !important;
    font-size: 0.75rem !important;
    font-weight: 600 !important;
}

/* Inline-edit / search inputs — weight 300 per spec */
.mud-input input,
.mud-input textarea {
    font-family: 'Inter', 'Roboto', 'Segoe UI', sans-serif !important;
    font-size: 0.875rem !important;
    font-weight: 300 !important;
}

.mud-input input::placeholder,
.mud-input textarea::placeholder {
    font-weight: 400 !important;
    color: #94a3b8 !important;
}

/* Buttons */
.mud-button-root {
    font-family: 'Inter', 'Roboto', 'Segoe UI', sans-serif !important;
    font-size: 0.875rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.01em !important;
}

/* Dropdown / list items */
.mud-list-item .mud-list-item-text {
    font-family: 'Inter', 'Roboto', 'Segoe UI', sans-serif !important;
    font-size: 0.875rem !important;
}

/* Tooltip */
.mud-tooltip-root {
    font-size: 0.75rem !important;
    font-weight: 500 !important;
}

/* ----------------------------------------------------------
   Global Popover Fixes (Unit & Company Selectors)
   Ensures local scrolling only
   ---------------------------------------------------------- */

.mud-popover.company-popover,
.mud-popover.context-popover {
    width: clamp(140px, 22vw, 250px) !important;
    max-width: 250px !important;
    border: 1px solid rgba(0, 0, 0, 0.1) !important;
    border-radius: 8px !important;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1) !important;
    background: white !important;
    z-index: 9999 !important;
    margin-top: 4px !important;
    overflow: hidden !important;
}

.company-popover .mud-list,
.context-popover .mud-list {
    max-height: 160px !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding: 0 !important;
}

.company-popover .mud-list-item,
.context-popover .mud-list-item {
    height: 40px !important;
    min-height: 40px !important;
    padding: 0 12px !important;
    display: flex !important;
    align-items: center !important;
    font-size: 0.8125rem !important;
    color: #1e293b !important;
}

.company-popover .mud-list-item:hover,
.context-popover .mud-list-item:hover {
    background-color: #eff6ff !important;
    color: #1d4ed8 !important;
}

.company-popover .mud-list::-webkit-scrollbar,
.context-popover .mud-list::-webkit-scrollbar {
    width: 5px;
}

.company-popover .mud-list::-webkit-scrollbar-track,
.context-popover .mud-list::-webkit-scrollbar-track {
    background: #f8fafc;
}

.company-popover .mud-list::-webkit-scrollbar-thumb,
.context-popover .mud-list::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 10px;
}


/* Final overflow lockout to prevent page scroll when popovers open */
.mud-popover-provider,
.mud-popover-cascading-value {
    overflow: visible !important;
}

/* Ensure no elements inside the popover push the body height */
.mud-popover.company-popover .mud-paper,
.mud-popover.context-popover .mud-paper {
    max-height: 160px !important;
    overflow: hidden !important;
}


/* -- Revamping Company Selector for Clarity -- */

/* Match the users 200px MaxHeight */
.company-popover .mud-list,
.context-popover .mud-list {
    max-height: 200px !important;
    overflow-y: auto !important;
}

/* Ensure items are spacious and never overlap */
.company-popover .mud-list-item,
.context-popover .mud-list-item {
    height: auto !important;
    min-height: 48px !important;
    /* Slightly taller for clarity */
    padding: 8px 16px !important;
    display: flex !important;
    align-items: center !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.03);
    /* Subtle separator for clarity */
}

/* Prevent text from bunching up */
.company-popover .mud-list-item-text,
.context-popover .mud-list-item-text {
    margin: 0 !important;
    line-height: 1.4 !important;
    font-size: 0.8125rem !important;
    font-weight: 500 !important;
}

/* Maintain ellipsis in dropdown to prevent vertical expansion */
.company-popover .mud-list-item .mud-typography,
.context-popover .mud-list-item .mud-typography {
    display: block !important;
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
    overflow: hidden !important;
    width: 100% !important;
}

/* Premium hover effect */
.company-popover .mud-list-item:hover {
    background-color: var(--primary-50) !important;
    color: var(--primary-700) !important;
}

.company-popover .mud-paper,
.context-popover .mud-paper {
    max-height: 200px !important;
}

/* ══════════════════════════════════════════════════════════
   NOVA NavMenu — Premium Sidebar Theme v9.0
   ══════════════════════════════════════════════════════════ */

:root {
    --nova-blue: #3b82f6;
    --nova-blue-400: #60a5fa;
    --nova-blue-700: #1d4ed8;
    --nova-gradient: linear-gradient(135deg, #3b82f6 0%, #1d4ed8 100%);
    --sb-bg-deep: #070d1a;
    --sb-bg-primary: #0b1526;
    --sb-bg-secondary: #0f1d32;
    --sb-surface-hover: rgba(255, 255, 255, 0.07);
    --sb-surface-active: rgba(59, 130, 246, 0.10);
    --sb-text-bright: #ffffff;
    --sb-text-primary: rgba(255, 255, 255, 0.92);
    --sb-text-secondary: rgba(255, 255, 255, 0.68);
    --sb-text-muted: rgba(255, 255, 255, 0.38);
    --sb-icon-default: rgba(255, 255, 255, 0.35);
    --sb-icon-hover: #60a5fa;
    --sb-icon-active: #ffffff;
    --sb-border: rgba(255, 255, 255, 0.05);
    --sb-border-hover: rgba(59, 130, 246, 0.20);
    --sb-glow-sm: rgba(59, 130, 246, 0.10);
    --sb-glow-md: rgba(59, 130, 246, 0.20);
    --sb-glow-lg: rgba(59, 130, 246, 0.35);
    --sb-glow-xl: rgba(29, 78, 216, 0.50);
    --sb-tree-line: rgba(59, 130, 246, 0.12);
    --sb-tree-line-active: rgba(59, 130, 246, 0.30);
    --sb-ease: cubic-bezier(0.4, 0, 0.2, 1);
}

/* ── Sidebar Dark Background ── */
aside.sidebar {
    background: linear-gradient(180deg,
            var(--sb-bg-deep) 0%,
            var(--sb-bg-primary) 15%,
            var(--sb-bg-secondary) 50%,
            var(--sb-bg-primary) 85%,
            var(--sb-bg-deep) 100%) !important;
    border-right: 1px solid var(--sb-border) !important;
}

/* Top ambient glow */
aside.sidebar::before {
    content: '';
    position: absolute;
    top: -100px;
    left: 50%;
    transform: translateX(-50%);
    width: 220px;
    height: 220px;
    background: radial-gradient(circle, rgba(59, 130, 246, 0.08) 0%, transparent 70%);
    pointer-events: none;
    z-index: 0;
}

/* Scrollbar */
aside.sidebar::-webkit-scrollbar {
    width: 3px;
}

aside.sidebar::-webkit-scrollbar-track {
    background: transparent;
}

aside.sidebar::-webkit-scrollbar-thumb {
    background: rgba(59, 130, 246, 0.20);
    border-radius: 999px;
}

aside.sidebar::-webkit-scrollbar-thumb:hover {
    background: var(--nova-blue);
}

/* ── Brand Header ── */
.sidebar-brand {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 28px 22px 22px;
    position: relative;
    z-index: 1;
}

.brand-icon {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    background: var(--nova-gradient);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    position: relative;
    overflow: hidden;
    box-shadow:
        0 6px 20px rgba(59, 130, 246, 0.30),
        0 0 0 1px rgba(255, 255, 255, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.20);
}

.brand-icon::before {
    content: '';
    position: absolute;
    inset: -60%;
    background: conic-gradient(from 0deg,
            transparent 0%, rgba(255, 255, 255, 0.12) 15%,
            transparent 30%, rgba(255, 255, 255, 0.08) 50%,
            transparent 65%, rgba(255, 255, 255, 0.06) 80%,
            transparent 100%);
    animation: brandSpin 10s linear infinite;
}

@keyframes brandSpin {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

.brand-icon::after {
    content: '';
    position: absolute;
    inset: -4px;
    border-radius: 17px;
    border: 1.5px solid rgba(59, 130, 246, 0.20);
    animation: iconPulse 4s ease-in-out infinite;
}

@keyframes iconPulse {

    0%,
    100% {
        opacity: 0.2;
        transform: scale(1);
    }

    50% {
        opacity: 0.6;
        transform: scale(1.06);
    }
}

.brand-icon .mud-icon-root {
    color: white !important;
    font-size: 1.35rem !important;
    position: relative;
    z-index: 2;
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.25));
}

.brand-text {
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    color: var(--sb-text-bright);
    text-transform: uppercase;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.4);
}

.sidebar.closed .sidebar-brand {
    opacity: 0;
    padding: 0;
    height: 0;
    overflow: hidden;
}

/* ── Section Labels ── */
.nav-section {
    padding: 24px 22px 10px;
    position: relative;
    z-index: 1;
}

.nav-label {
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.28em;
    color: var(--sb-text-muted);
    text-transform: uppercase;
    display: flex;
    align-items: center;
    gap: 12px;
    white-space: nowrap;
}

.nav-label::after {
    content: '';
    flex: 1;
    height: 1px;
    background: linear-gradient(90deg,
            rgba(59, 130, 246, 0.18), rgba(255, 255, 255, 0.04), transparent);
}

.sidebar.closed .nav-section {
    opacity: 0;
    height: 0;
    padding: 0;
}

/* ── Dividers ── */
.sidebar-divider {
    border-color: var(--sb-border) !important;
    margin: 6px 20px !important;
}

.sidebar.closed .sidebar-divider {
    opacity: 0;
    margin: 0 !important;
}

/* ── Nav Menu Wrapper ── */
.nova-nav.mud-navmenu {
    padding: 4px 12px !important;
    position: relative;
    z-index: 1;
}

.nav-bottom-section {
    margin-top: auto;
    padding: 12px 0 28px;
    position: relative;
}

.nav-bottom-section::before {
    content: '';
    position: absolute;
    top: -50px;
    left: 0;
    right: 0;
    height: 50px;
    background: linear-gradient(180deg, transparent, rgba(0, 0, 0, 0.12));
    pointer-events: none;
}

/* ══════════════════════════════════
   ALL NAV LINKS — Default
   ══════════════════════════════════ */
aside.sidebar .nova-nav .mud-nav-link,
aside.sidebar .nova-link.mud-nav-link {
    border-radius: 14px !important;
    margin: 3px 0 !important;
    padding: 11px 16px !important;
    text-decoration: none !important;
    background: transparent !important;
    transition: all 0.25s var(--sb-ease) !important;
    position: relative !important;
    overflow: hidden !important;
    border: 1px solid transparent !important;
}

/* Text */
aside.sidebar .nova-nav .mud-nav-link .mud-nav-link-text,
aside.sidebar .nova-nav .mud-nav-link>span,
aside.sidebar .nova-link .mud-nav-link-text,
aside.sidebar .nova-link>span {
    color: var(--sb-text-secondary) !important;
    font-size: 0.855rem !important;
    font-weight: 500 !important;
    letter-spacing: 0.02em !important;
    text-decoration: none !important;
}

/* Icons */
aside.sidebar .nova-nav .mud-nav-link .mud-icon-root,
aside.sidebar .nova-link .mud-icon-root {
    color: var(--sb-icon-default) !important;
    font-size: 1.25rem !important;
    margin-right: 14px !important;
    transition: all 0.25s var(--sb-ease) !important;
}

/* ══════════════════════════════════
   ALL NAV LINKS — Hover
   ══════════════════════════════════ */
aside.sidebar .nova-nav .mud-nav-link:hover,
aside.sidebar .nova-link.mud-nav-link:hover {
    background: var(--sb-surface-hover) !important;
    border-color: var(--sb-border-hover) !important;
    transform: translateX(5px) !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.15), 0 0 18px rgba(59, 130, 246, 0.05) !important;
}

aside.sidebar .nova-nav .mud-nav-link:hover .mud-nav-link-text,
aside.sidebar .nova-nav .mud-nav-link:hover>span,
aside.sidebar .nova-link:hover .mud-nav-link-text,
aside.sidebar .nova-link:hover>span {
    color: var(--sb-text-bright) !important;
}

aside.sidebar .nova-nav .mud-nav-link:hover .mud-icon-root,
aside.sidebar .nova-link:hover .mud-icon-root {
    color: var(--sb-icon-hover) !important;
    transform: scale(1.12) !important;
    filter: drop-shadow(0 0 8px var(--sb-glow-md)) !important;
}

/* ══════════════════════════════════
   ALL NAV LINKS — Active (NOVA GLOW)
   ══════════════════════════════════ */
aside.sidebar .nova-nav .mud-nav-link.active,
aside.sidebar .nova-link.mud-nav-link.active {
    background: var(--nova-gradient) !important;
    border-color: transparent !important;
    transform: translateX(3px) scale(1.015) !important;
    z-index: 2 !important;
    box-shadow:
        0 8px 28px -6px var(--sb-glow-xl),
        0 4px 10px rgba(59, 130, 246, 0.20),
        inset 0 1px 0 rgba(255, 255, 255, 0.12) !important;
}

/* Glass shine */
aside.sidebar .nova-nav .mud-nav-link.active::after,
aside.sidebar .nova-link.mud-nav-link.active::after {
    content: '' !important;
    position: absolute !important;
    top: 0;
    left: 0;
    right: 0 !important;
    height: 50% !important;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.10), transparent) !important;
    border-radius: 14px 14px 0 0 !important;
    pointer-events: none !important;
}

/* Breathing glow */
aside.sidebar .nova-nav .mud-nav-link.active::before,
aside.sidebar .nova-link.mud-nav-link.active::before {
    content: '' !important;
    position: absolute !important;
    inset: -3px !important;
    border-radius: 17px !important;
    background: var(--nova-gradient) !important;
    z-index: -1 !important;
    opacity: 0.30 !important;
    filter: blur(14px) !important;
    animation: novaBreathe 3.5s ease-in-out infinite !important;
    pointer-events: none !important;
}

@keyframes novaBreathe {

    0%,
    100% {
        opacity: 0.20;
    }

    50% {
        opacity: 0.40;
    }
}

aside.sidebar .nova-nav .mud-nav-link.active .mud-nav-link-text,
aside.sidebar .nova-nav .mud-nav-link.active>span,
aside.sidebar .nova-link.active .mud-nav-link-text,
aside.sidebar .nova-link.active>span {
    color: var(--sb-text-bright) !important;
    font-weight: 700 !important;
    text-shadow: 0 1px 6px rgba(0, 0, 0, 0.25) !important;
}

aside.sidebar .nova-nav .mud-nav-link.active .mud-icon-root,
aside.sidebar .nova-link.active .mud-icon-root {
    color: var(--sb-icon-active) !important;
    transform: scale(1.08) !important;
    filter: drop-shadow(0 0 10px rgba(255, 255, 255, 0.40)) !important;
}

/* ══════════════════════════════════
   GROUP HEADERS (Masters, Paymaster)
   ══════════════════════════════════ */
aside.sidebar .nova-group.mud-nav-group>.mud-nav-link {
    border-radius: 14px !important;
    margin: 3px 0 !important;
    padding: 11px 16px !important;
    border: 1px solid transparent !important;
}

aside.sidebar .nova-group.mud-nav-group>.mud-nav-link .mud-nav-link-text,
aside.sidebar .nova-group.mud-nav-group>.mud-nav-link>span {
    color: var(--sb-text-secondary) !important;
    font-size: 0.855rem !important;
    font-weight: 600 !important;
}

aside.sidebar .nova-group.mud-nav-group>.mud-nav-link .mud-icon-root {
    color: var(--sb-icon-default) !important;
    font-size: 1.25rem !important;
    margin-right: 14px !important;
}

aside.sidebar .nova-group.mud-nav-group>.mud-nav-link .mud-expand-icon {
    color: var(--sb-text-muted) !important;
    font-size: 1.1rem !important;
}

/* Group Hover */
aside.sidebar .nova-group.mud-nav-group>.mud-nav-link:hover {
    background: var(--sb-surface-hover) !important;
    transform: translateX(3px) !important;
}

aside.sidebar .nova-group.mud-nav-group>.mud-nav-link:hover .mud-nav-link-text,
aside.sidebar .nova-group.mud-nav-group>.mud-nav-link:hover>span {
    color: var(--sb-text-bright) !important;
}

aside.sidebar .nova-group.mud-nav-group>.mud-nav-link:hover .mud-icon-root {
    color: var(--sb-icon-hover) !important;
}

aside.sidebar .nova-group.mud-nav-group>.mud-nav-link:hover .mud-expand-icon {
    color: var(--nova-blue-400) !important;
}

/* Group Expanded */
aside.sidebar .nova-group.mud-nav-group.mud-expanded>.mud-nav-link {
    background: rgba(255, 255, 255, 0.03) !important;
    border-color: rgba(59, 130, 246, 0.06) !important;
}

aside.sidebar .nova-group.mud-nav-group.mud-expanded>.mud-nav-link .mud-nav-link-text,
aside.sidebar .nova-group.mud-nav-group.mud-expanded>.mud-nav-link>span {
    color: var(--sb-text-primary) !important;
    font-weight: 650 !important;
}

aside.sidebar .nova-group.mud-nav-group.mud-expanded>.mud-nav-link .mud-icon-root {
    color: var(--nova-blue) !important;
    filter: drop-shadow(0 0 6px var(--sb-glow-md)) !important;
}

aside.sidebar .nova-group.mud-nav-group.mud-expanded>.mud-nav-link .mud-expand-icon {
    color: var(--nova-blue-400) !important;
}

/* ══════════════════════════════════
   GROUP CHILDREN
   ══════════════════════════════════ */
aside.sidebar .nova-group .mud-collapse-container {
    transition: height 0.3s var(--sb-ease) !important;
}

aside.sidebar .nova-group .mud-nav-group-items {
    margin-left: 22px !important;
    padding: 6px 0 6px 14px !important;
    border-left: 2px solid var(--sb-tree-line) !important;
    position: relative !important;
}

aside.sidebar .nova-group .mud-nav-group-items::before {
    content: '';
    position: absolute;
    left: -2px;
    top: 0;
    bottom: 0;
    width: 2px;
    background: linear-gradient(180deg,
            var(--sb-tree-line-active) 0%,
            var(--sb-tree-line) 50%,
            transparent 100%);
    pointer-events: none;
}

/* Child Links */
aside.sidebar .nova-child-link.mud-nav-link {
    padding: 9px 14px !important;
    border-radius: 10px !important;
    margin: 2px 0 !important;
    border: 1px solid transparent !important;
}

aside.sidebar .nova-child-link.mud-nav-link .mud-nav-link-text,
aside.sidebar .nova-child-link.mud-nav-link>span {
    font-size: 0.82rem !important;
    font-weight: 450 !important;
    color: var(--sb-text-secondary) !important;
}

aside.sidebar .nova-child-link.mud-nav-link .mud-icon-root {
    font-size: 1.05rem !important;
    margin-right: 11px !important;
    color: var(--sb-icon-default) !important;
    opacity: 0.8;
}

/* Child Hover */
aside.sidebar .nova-child-link.mud-nav-link:hover {
    background: var(--sb-surface-hover) !important;
    border-color: rgba(59, 130, 246, 0.08) !important;
    transform: translateX(4px) !important;
}

aside.sidebar .nova-child-link.mud-nav-link:hover .mud-nav-link-text,
aside.sidebar .nova-child-link.mud-nav-link:hover>span {
    color: var(--sb-text-bright) !important;
}

aside.sidebar .nova-child-link.mud-nav-link:hover .mud-icon-root {
    color: var(--sb-icon-hover) !important;
    opacity: 1;
    transform: scale(1.1) !important;
}

/* Child Active */
aside.sidebar .nova-child-link.mud-nav-link.active {
    background: var(--sb-surface-active) !important;
    border-color: var(--sb-border-hover) !important;
    transform: translateX(3px) !important;
    box-shadow: 0 2px 10px rgba(59, 130, 246, 0.10) !important;
}

aside.sidebar .nova-child-link.mud-nav-link.active .mud-nav-link-text,
aside.sidebar .nova-child-link.mud-nav-link.active>span {
    color: var(--nova-blue-400) !important;
    font-weight: 600 !important;
}

aside.sidebar .nova-child-link.mud-nav-link.active .mud-icon-root {
    color: var(--nova-blue) !important;
    opacity: 1;
    filter: drop-shadow(0 0 6px var(--sb-glow-md)) !important;
}

/* Glowing dot on tree line */
aside.sidebar .nova-child-link.mud-nav-link.active::after {
    content: '' !important;
    position: absolute !important;
    left: -21px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 8px !important;
    height: 8px !important;
    background: var(--nova-blue) !important;
    border-radius: 50% !important;
    box-shadow: 0 0 8px var(--sb-glow-lg), 0 0 16px var(--sb-glow-sm) !important;
    z-index: 2 !important;
    animation: dotGlow 2.5s ease-in-out infinite !important;
}

@keyframes dotGlow {

    0%,
    100% {
        box-shadow: 0 0 6px var(--sb-glow-md);
    }

    50% {
        box-shadow: 0 0 12px var(--sb-glow-lg);
    }
}

aside.sidebar .nova-child-link.mud-nav-link.active::before {
    display: none !important;
}

/* Link Reset */
aside.sidebar .nova-nav .mud-nav-link,
aside.sidebar .nova-nav .mud-nav-link:visited,
aside.sidebar .nova-nav .mud-nav-link:hover {
    text-decoration: none !important;
}

/* ── Responsive ── */
@media (max-width: 960px) {
    aside.sidebar {
        position: fixed;
        top: var(--appbar-height, 56px);
        left: 0;
        bottom: 0;
        z-index: 900;
        box-shadow: 8px 0 40px rgba(0, 0, 0, 0.35);
        transform: translateX(0);
    }

    aside.sidebar.closed {
        transform: translateX(-100%);
        width: 270px;
        min-width: 270px;
        box-shadow: none;
    }
}

@media (max-width: 600px) {
    .sidebar-brand {
        padding: 20px 18px 16px;
    }

    .brand-icon {
        width: 38px;
        height: 38px;
    }

    .brand-text {
        font-size: 0.75rem;
    }

    .nova-nav.mud-navmenu {
        padding: 4px 10px !important;
    }

    aside.sidebar .nova-nav .mud-nav-link {
        padding: 9px 12px !important;
    }
}

/* ── Cyber-Noir Reporting Button ── */
.neon-btn {
    border-radius: 0 !important;
    font-family: 'Space Grotesk', sans-serif !important;
    letter-spacing: 1px;
    text-transform: uppercase !important;
    position: relative;
    overflow: hidden;
    transition: all 0.3s var(--ease-out-quint) !important;
    border: 1px solid var(--cyan-500) !important;
    background: rgba(6, 182, 212, 0.1) !important;
    color: var(--cyan-500) !important;
    font-weight: 600 !important;
}

.neon-btn:hover {
    background: var(--cyan-500) !important;
    color: #0e0e0e !important;
    box-shadow: 0 0 20px rgba(6, 182, 212, 0.4);
    transform: translateY(-2px);
}

.neon-btn:active {
    transform: translateY(0);
}

.report-btn {
    min-width: 180px;
    height: 40px;
}