/*
 * ================================================================
 * NEXUS — POLITICAL INTELLIGENCE PLATFORM
 * Unified Design System V1.0 — 2026
 *
 * Author    : MAHADEVASWAMY S
 * Optimized for:
 * Bootstrap 5
 * Just-Validate
 * DataTables
 * Phosphor Icons
 *
 * Design Direction:
 * Executive • Intelligence • Analytics • Political Research
 *
 * Color System:
 * Primary   : Blue
 * Secondary : Deep Navy
 * Accent    : Indigo / Purple
 * Info      : Cyan
 * Success   : Emerald
 * Warning   : Amber
 * Danger    : Red
 * ================================================================
 */


/* ================================================================
   1. CORE CONFIGURATION
================================================================ */

:root {

    /* ------------------------------------------------------------
    NEXUS POLITECH — BRAND COLORS
    ------------------------------------------------------------ */

    --theme-primary: #1D4ED8;
    --theme-primary-dark: #1E3A8A;
    --theme-primary-light: #60A5FA;

    --theme-secondary: #071426;
    --theme-secondary-dark: #030A16;
    --theme-secondary-light: #0F2745;

    /* Brand accent — Indian tricolor inspired */
    --theme-accent: #FF7A00;
    --theme-accent-dark: #E85D00;
    --theme-accent-light: #FFB066;

    --theme-info: #0891B2;
    --theme-info-dark: #0E7490;
    --theme-info-light: #67E8F9;

    --theme-success: #16A34A;
    --theme-success-dark: #15803D;
    --theme-success-light: #86EFAC;

    --theme-warning: #F59E0B;
    --theme-warning-dark: #D97706;
    --theme-warning-light: #FCD34D;

    --theme-danger: #DC2626;
    --theme-danger-dark: #B91C1C;
    --theme-danger-light: #FCA5A5;


    /* ------------------------------------------------------------
    NEUTRALS
    ------------------------------------------------------------ */

    --theme-white: #FFFFFF;
    --theme-black: #000000;

    --theme-bg-body: #F8FAFC;
    --theme-bg-soft: #F1F5F9;
    --theme-bg-muted: #F8FAFC;

    --theme-text: #0F172A;
    --theme-text-secondary: #334155;
    --theme-text-muted: #64748B;
    --theme-text-light: #94A3B8;

    --theme-border: #E2E8F0;
    --theme-border-light: #F1F5F9;


    /* ------------------------------------------------------------
    SOFT COLORS
    ------------------------------------------------------------ */

    --theme-primary-soft: rgba(29, 78, 216, 0.10);
    --theme-primary-soft-strong: rgba(29, 78, 216, 0.16);

    --theme-secondary-soft: rgba(7, 20, 38, 0.08);

    --theme-accent-soft: rgba(255, 122, 0, 0.10);
    --theme-accent-soft-strong: rgba(255, 122, 0, 0.16);

    --theme-info-soft: rgba(8, 145, 178, 0.10);
    --theme-success-soft: rgba(22, 163, 74, 0.10);
    --theme-warning-soft: rgba(245, 158, 11, 0.10);
    --theme-danger-soft: rgba(220, 38, 38, 0.10);


    /* ------------------------------------------------------------
    SHADOWS
    ------------------------------------------------------------ */

    --theme-shadow-xs: 0 1px 2px rgba(15, 23, 42, 0.04);
    --theme-shadow-sm: 0 2px 8px rgba(15, 23, 42, 0.05);
    --theme-shadow: 0 4px 18px rgba(15, 23, 42, 0.06);
    --theme-shadow-md: 0 8px 25px rgba(15, 23, 42, 0.08);
    --theme-shadow-lg: 0 15px 40px rgba(15, 23, 42, 0.10);

    --theme-primary-shadow: rgba(29, 78, 216, 0.25);
    --theme-accent-shadow: rgba(255, 122, 0, 0.25);
    --theme-success-shadow: rgba(22, 163, 74, 0.25);
    --theme-danger-shadow: rgba(220, 38, 38, 0.25);


    /* ------------------------------------------------------------
    GRADIENTS
    ------------------------------------------------------------ */

    /* Main NEXUS brand */
    --theme-gradient:
        linear-gradient(
            135deg,
            #1D4ED8 0%,
            #0F3A78 55%,
            #071426 100%
        );

    /* Dark admin / authentication */
    --theme-gradient-dark:
        linear-gradient(
            180deg,
            #0F2745 0%,
            #071426 55%,
            #030A16 100%
        );

    /* Primary blue */
    --theme-gradient-blue:
        linear-gradient(
            135deg,
            #1D4ED8 0%,
            #1E3A8A 100%
        );

    /* Navy */
    --theme-gradient-navy:
        linear-gradient(
            135deg,
            #0F2745 0%,
            #071426 100%
        );

    /* Tricolor-inspired accent */
    --theme-gradient-accent:
        linear-gradient(
            135deg,
            #FF7A00 0%,
            #FFFFFF 50%,
            #16A34A 100%
        );

    /* Blue + cyan for analytics */
    --theme-gradient-cyan:
        linear-gradient(
            135deg,
            #0891B2 0%,
            #1D4ED8 100%
        );

    /* Success */
    --theme-gradient-green:
        linear-gradient(
            135deg,
            #16A34A 0%,
            #15803D 100%
        );

    /* Warning */
    --theme-gradient-warning:
        linear-gradient(
            135deg,
            #D97706 0%,
            #F59E0B 100%
        );

    /* Danger */
    --theme-gradient-danger:
        linear-gradient(
            135deg,
            #DC2626 0%,
            #991B1B 100%
        );

    /* Neutral */
    --theme-gradient-slate:
        linear-gradient(
            135deg,
            #334155 0%,
            #1E293B 100%
        );

    /* ------------------------------------------------------------
       NAVBAR
    ------------------------------------------------------------ */

    --theme-navbar-color: #FFFFFF;


    /* ------------------------------------------------------------
       RADIUS
    ------------------------------------------------------------ */

    --theme-radius-sm: 0.375rem;
    --theme-radius: 0.625rem;
    --theme-radius-md: 0.75rem;
    --theme-radius-lg: 1rem;
    --theme-radius-pill: 50rem;


    /* ------------------------------------------------------------
       TRANSITIONS
    ------------------------------------------------------------ */

    --theme-transition:all 0.2s ease;
    --theme-transition-smooth:all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}


/* ================================================================
   2. GLOBAL
================================================================ */

html {
    zoom: 90%;
}

body {
    background-color: var(--theme-bg-body);
    color: var(--theme-text);
}

a {
    color: var(--theme-primary);
    text-decoration: none;
    transition: color 0.2s ease;
}

a:hover {
    color: var(--theme-secondary);
}

a:focus-visible {
    color: var(--theme-secondary);
    outline: 2px solid var(--theme-primary);
    outline-offset: 2px;
}

/* ================================================================
   3. BACKGROUND UTILITIES
================================================================ */

.bg-theme {
    background-color: var(--theme-primary) !important;
    color: #fff !important;
}

.bg-theme-secondary {
    background-color: var(--theme-secondary) !important;
    color: #fff !important;
}

.bg-theme-accent {
    background-color: var(--theme-accent) !important;
    color: #fff !important;
}

.bg-theme-info {
    background-color: var(--theme-info) !important;
    color: #fff !important;
}

.bg-theme-success {
    background-color: var(--theme-success) !important;
    color: #fff !important;
}

.bg-theme-warning {
    background-color: var(--theme-warning) !important;
    color: #fff !important;
}

.bg-theme-danger {
    background-color: var(--theme-danger) !important;
    color: #fff !important;
}


/* Soft backgrounds */

.bg-theme-soft {
    background-color: var(--theme-primary-soft) !important;
    color: var(--theme-primary) !important;
}

.bg-theme-secondary-soft {
    background-color: var(--theme-secondary-soft) !important;
    color: var(--theme-secondary) !important;
}

.bg-theme-accent-soft {
    background-color: var(--theme-accent-soft) !important;
    color: var(--theme-accent) !important;
}

.bg-info-soft {
    background-color: var(--theme-info-soft) !important;
    color: var(--theme-info-dark) !important;
}

.bg-success-soft {
    background-color: var(--theme-success-soft) !important;
    color: var(--theme-success-dark) !important;
}

.bg-warning-soft {
    background-color: var(--theme-warning-soft) !important;
    color: var(--theme-warning-dark) !important;
}

.bg-danger-soft {
    background-color: var(--theme-danger-soft) !important;
    color: var(--theme-danger-dark) !important;
}


/* ================================================================
   4. GRADIENT UTILITIES
================================================================ */

.bg-gradient-theme {
    background: var(--theme-gradient) !important;
    color: #fff !important;
}

.bg-gradient-dark {
    background: var(--theme-gradient-dark) !important;
    color: #fff !important;
}

.bg-gradient-blue {
    background: var(--theme-gradient-blue) !important;
    color: #fff !important;
}

.bg-gradient-purple {
    background: var(--theme-gradient-purple) !important;
    color: #fff !important;
}

.bg-gradient-accent {
    background: var(--theme-gradient-accent) !important;
    color: #fff !important;
}

.bg-gradient-cyan {
    background: var(--theme-gradient-cyan) !important;
    color: #fff !important;
}

.bg-gradient-green {
    background: var(--theme-gradient-green) !important;
    color: #fff !important;
}

.bg-gradient-warning {
    background: var(--theme-gradient-warning) !important;
    color: #fff !important;
}

.bg-gradient-danger {
    background: var(--theme-gradient-danger) !important;
    color: #fff !important;
}

.bg-gradient-slate {
    background: var(--theme-gradient-slate) !important;
    color: #fff !important;
}


/* ================================================================
   5. TEXT UTILITIES
================================================================ */

.text-theme {
    color: var(--theme-primary) !important;
}

.text-theme-secondary {
    color: var(--theme-secondary) !important;
}

.text-theme-accent {
    color: var(--theme-accent) !important;
}

.text-theme-info {
    color: var(--theme-info-dark) !important;
}

.text-theme-success {
    color: var(--theme-success-dark) !important;
}

.text-theme-warning {
    color: var(--theme-warning-dark) !important;
}

.text-theme-danger {
    color: var(--theme-danger-dark) !important;
}

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

.text-theme-contrast {
    color: #fff !important;
}

.text-theme-hover {
    transition: color 0.2s ease;
}

.text-theme-hover:hover {
    color: var(--theme-secondary) !important;
}


/* ================================================================
   6. BORDER UTILITIES
================================================================ */

.border-theme {
    border-color: var(--theme-primary) !important;
}

.border-theme-secondary {
    border-color: var(--theme-secondary) !important;
}

.border-theme-accent {
    border-color: var(--theme-accent) !important;
}

.border-theme-soft {
    border-color: var(--theme-border) !important;
}

.border-top-theme {
    border-top: 3px solid var(--theme-primary) !important;
}

.border-top-theme-secondary {
    border-top: 3px solid var(--theme-secondary) !important;
}

.border-top-accent {
    border-top: 3px solid var(--theme-accent) !important;
}

.border-top-success {
    border-top: 3px solid var(--theme-success) !important;
}

.border-top-warning {
    border-top: 3px solid var(--theme-warning) !important;
}

.border-top-danger {
    border-top: 3px solid var(--theme-danger) !important;
}

.border-top-width-3 {
    border-top-width: 3px !important;
}


/* ================================================================
   7. NAVBAR
================================================================ */

.navbar-theme {
    background: var(--theme-gradient-dark) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    box-shadow: 0 4px 20px rgba(2, 6, 23, 0.25);
}

.navbar-brand img {
    transition: transform 0.3s ease;
    filter:drop-shadow(0 0 8px rgba(255, 255, 255, 0.20) );
}

.navbar-brand:hover img {
    transform: scale(1.04);
}

.navbar-toggler {
    color: var(--theme-navbar-color) !important;
    border-color: rgba(255, 255, 255, 0.15);
}

/* User navigation pill */
.navbar-nav-link {
    background: rgba(255, 255, 255, 0.08);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: var(--theme-radius-pill);
    color: #fff !important;
    transition: var(--theme-transition);
}

.navbar-nav-link:hover {
    background: rgba(255, 255, 255, 0.15) !important;
    border-color: rgba(255, 255, 255, 0.20);
}

/* ================================================================
   8. SIDEBAR
================================================================ */

.sidebar-main {
    background: var(--theme-gradient-dark) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.05);
}

.sidebar-section-body {
    background: rgba(0, 0, 0, 0.15);
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.nav-sidebar .nav-link {
    color: rgba(255, 255, 255, 0.70);
    margin: 2px 10px;
    border-radius: 8px;
    transition: var(--theme-transition);
}

.nav-sidebar .nav-link:hover {
    color: #fff;
    background: rgba(255, 255, 255, 0.08);
}

.nav-sidebar .nav-item > .nav-link.active {
    background: var(--theme-gradient) !important;
    color: #fff !important;
    box-shadow: 0 4px 12px rgba(37, 99, 235, 0.30);
}

.nav-group-sub {
    background-color: rgba(0, 0, 0, 0.20);
    margin: 0 10px;
    border-radius: 8px;
}

.nav-item-header {
    letter-spacing: 1.5px;
    font-size: 0.65rem;
    margin-top: 1rem;
    color: rgba(255, 255, 255, 0.45);
}


/* ================================================================
   9. BUTTONS
================================================================ */

.btn-theme {
    background: var(--theme-gradient) !important;
    border: none !important;
    color: #fff !important;
    box-shadow:0 4px 12px rgba(37, 99, 235, 0.20);
    transition: var(--theme-transition);
}

.btn-theme:hover {
    color: #fff !important;
    transform: translateY(-1px);
    box-shadow: 0 7px 18px rgba(37, 99, 235, 0.30);
}

.btn-theme:active {
    transform: translateY(0);
}


/* Solid primary */

.btn-theme-primary {
    background: var(--theme-primary) !important;
    border: 1px solid var(--theme-primary) !important;
    color: #fff !important;
    box-shadow:0 4px 12px rgba(37, 99, 235, 0.20);
    transition: var(--theme-transition);
}

.btn-theme-primary:hover {
    background: var(--theme-primary-dark) !important;
    border-color: var(--theme-primary-dark) !important;
    color: #fff !important;
    transform: translateY(-1px);
    box-shadow: 0 6px 15px rgba(37, 99, 235, 0.30);
}

/* Secondary */

.btn-theme-second {
    background: #fff !important;
    color: #475569 !important;
    border: 1px solid #CBD5E1 !important;
    transition: var(--theme-transition);
}

.btn-theme-second:hover {
    background: #F8FAFC !important;
    color: var(--theme-secondary) !important;
    border-color: #94A3B8 !important;
    transform: translateY(-1px);
}

/* Accent */

.btn-accent {
    background: var(--theme-gradient-accent) !important;
    border: none !important;
    color: #fff !important;
    font-weight: 600;
    box-shadow: 0 4px 14px var(--theme-accent-shadow);
    transition: var(--theme-transition);
}

.btn-accent:hover {
    color: #fff !important;
    transform: translateY(-1px);
    box-shadow: 0 7px 18px rgba(124, 58, 237, 0.30);
}

/* Insights */

.btn-insights {
    background: var(--theme-gradient-purple) !important;
    border: none !important;
    color: #fff !important;
    box-shadow: 0 3px 8px rgba(79, 70, 229, 0.20);
    transition: var(--theme-transition);
}

.btn-insights:hover {
    color: #fff !important;
    transform: translateY(-1px);
    box-shadow: 0 5px 12px rgba(79, 70, 229, 0.30);
}

/* Semantic danger */

.btn-light-danger {
    background: var(--theme-danger-soft) !important;
    color: var(--theme-danger-dark) !important;
    border: 1px solid transparent !important;
    transition: var(--theme-transition);
}

.btn-light-danger:hover {
    background: var(--theme-danger) !important;
    color: #fff !important;
}


/* ================================================================
   10. ICON BUTTONS
================================================================ */

.btn-icon-action {
    transition: var(--theme-transition);
}

.btn-icon-action:hover {
    transform: translateY(-1px);
}

.btn-icon-action:hover i {
    transform: scale(1.15);
}

/* ================================================================
   11. CARDS
================================================================ */

.card {
    border-radius: var(--theme-radius-md);
    box-shadow: 0 2px 15px rgba(15, 23, 42, 0.03);
    border: 1px solid rgba(15, 23, 42, 0.06);
    background: #fff;
    overflow: hidden;
}

.card-header {
    background-color: #fff;
    padding: 1.1rem 1.25rem;
    border-bottom: 1px solid #F1F5F9;
}

.card-title {
    font-weight: 700;
    color: var(--theme-secondary);
    margin-bottom: 0;
}

.card-body {
    background: #fff;
}

/* ================================================================
   12. DASHBOARD CARDS
================================================================ */

.stat-card {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.stat-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.07) !important;
}

.dashboard-circle {
    width: 48px;
    height: 48px;
}


/* ================================================================
   13. MODULE CARDS
================================================================ */

.module-card {
    background: #fff;
    border: 1px solid #E2E8F0 !important;
    transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.module-card:hover {
    transform: translateY(-5px);
    border-color: #CBD5E1 !important;
    box-shadow: 0 20px 40px rgba(15, 23, 42, 0.08) !important;
}

.module-card:hover .action-text {
    transform: translateX(4px);
}

.action-text {
    transition: transform 0.2s ease;
}

.module-icon {
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 26px;
}

/* ================================================================
   14. BADGES
================================================================ */

.badge-soft-success {
    background-color: var(--theme-success-soft) !important;
    color: var(--theme-success-dark) !important;
    border: 1px solid rgba(16, 185, 129, 0.20);
}

.badge-soft-danger {
    background-color: var(--theme-danger-soft) !important;
    color: var(--theme-danger-dark) !important;
    border: 1px solid rgba(239, 68, 68, 0.20);
}

.badge-soft-warning {
    background-color: var(--theme-warning-soft) !important;
    color: var(--theme-warning-dark) !important;
    border: 1px solid rgba(245, 158, 11, 0.20);
}

.badge-soft-info {
    background-color: var(--theme-info-soft) !important;
    color: var(--theme-info-dark) !important;
    border: 1px solid rgba(6, 182, 212, 0.20);
}

.badge-soft-primary {
    background-color: var(--theme-primary-soft) !important;
    color: var(--theme-primary-dark) !important;
    border: 1px solid rgba(37, 99, 235, 0.20);
}

.badge-accent {
    background-color: var(--theme-accent-soft) !important;
    color: var(--theme-accent-dark) !important;
    border: 1px solid rgba(124, 58, 237, 0.20);
    font-weight: 600;
}

.badge-system {
    background-color: #F1F5F9;
    color: #64748B;
    border: 1px solid #E2E8F0;
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* ================================================================
   15. TABLES
================================================================ */

.table {
    --bs-table-hover-bg: rgba(37, 99, 235, 0.025);
}

.table thead th {
    background-color: #F8FAFC;
    color: #64748B;
    text-transform: uppercase;
    font-size: 0.70rem;
    letter-spacing: 0.7px;
    font-weight: 700;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid #E2E8F0;
}

.table tbody td {
    vertical-align: middle;
    color: #334155;
}

.table tbody tr:hover {
    background-color: rgba(37, 99, 235, 0.025) !important;
}

.table a {
    /* color: var(--theme-primary); */
    font-weight: 600;
}

.table a:hover {
    color: var(--theme-secondary);
}

/* Dedicated table theme */

.table-theme thead th {
    background: #F7F9FD;
    color: #667085;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* ================================================================
   20. PAGINATION
================================================================ */

.page-link {
    color: var(--theme-primary);
    border-color: #E2E8F0;
    transition: var(--theme-transition);
}

.page-link:hover {
    color: var(--theme-primary-dark);
    background-color: var(--theme-primary-soft);
    border-color: #CBD5E1;
}

.page-link:focus {
    color: var(--theme-primary);
    box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.12);
    background-color: var(--theme-primary-soft);
}

.active > .page-link,
.page-link.active {
    z-index: 3;
    color: #fff !important;
    background: var(--theme-gradient) !important;
    border-color: var(--theme-primary) !important;
    box-shadow: 0 4px 10px rgba(37, 99, 235, 0.25);
    font-weight: 600;
}

/* ================================================================
   21. BREADCRUMBS
================================================================ */

.breadcrumb-item a {
    color: var(--theme-primary) !important;
    font-weight: 500;
}

.breadcrumb-item a:hover {
    color: var(--theme-secondary) !important;
}

.breadcrumb-item + .breadcrumb-item::before {
    color: #CBD5E1;
    content: "/";
    font-family: inherit;
}


/* ================================================================
   22. PAGE HEADER
================================================================ */

.page-header {
    background: #fff;
    border-bottom: 1px solid #E2E8F0;
}

.page-header-content {
    background: #fff;
}

.dashboard-header-icon {
    width: 52px;
    height: 52px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

/* ================================================================
   24. ICONS — PHOSPHOR
================================================================ */

i[class^="ph-"],
i[class*=" ph-"] {
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    display: inline-block;
    vertical-align: middle;
}

/* Sidebar */

.nav-sidebar .nav-link:hover i {
    transform: translateX(3px) scale(1.08);
    color: #fff;
    filter: drop-shadow( 0 0 5px rgba(255, 255, 255, 0.30));
}


/* Primary buttons */

.btn-theme:hover i,
.btn-accent:hover i,
.btn-insights:hover i {
    transform: rotate(-8deg) scale(1.12);
}


/* Action buttons */

.btn-icon-action:hover i {
    transform: scale(1.18);
}

/* ================================================================
   25. SPINNER
================================================================ */

.ph-spin {
    animation: ph-rotation 1s infinite linear;
}

@keyframes ph-rotation {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(359deg);
    }
}

/* ================================================================
   26. SUCCESS POP
================================================================ */

.ph-pop {
    animation: ph-pop-in 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

@keyframes ph-pop-in {
    0% {
        transform: scale(0.5);
        opacity: 0;
    }
    100% {
        transform: scale(1);
        opacity: 1;
    }
}

/* ================================================================
   27. STATUS PULSE
================================================================ */

@keyframes pulse-emerald {
    0% {
        transform: scale(0.95);
        box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7);
    }
    70% {
        transform: scale(1);
        box-shadow: 0 0 0 6px rgba(16, 185, 129, 0);
    }
    100% {
        transform: scale(0.95);
        box-shadow: 0 0 0 0 rgba(16, 185, 129, 0);
    }
}


/* ================================================================
   28. UTILITY CLASSES
================================================================ */

.hover-opacity {
    transition: opacity 0.2s ease;
}

.hover-opacity:hover {
    opacity: 0.8;
}

.fw-black {
    font-weight: 900 !important;
}

.f-18 {
    font-size: 18px !important;
}

.f-20 {
    font-size: 20px !important;
}

.f-48 {
    font-size: 48px !important;
}

.fs-xs {
    font-size: 0.70rem !important;
}

.fs-sm {
    font-size: 0.85rem !important;
}

.tracking-tight {
    letter-spacing: -0.02em;
}

.tracking-wide {
    letter-spacing: 0.05em;
}

.tracking-wider {
    letter-spacing: 0.08em;
}

.tracking-tighter {
    letter-spacing: -0.01em;
}


/* ================================================================
   29. TEXT CLAMP
================================================================ */

.line-clamp-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 38px;
}


/* ================================================================
   30. CARD LINKS
================================================================ */

.card a {
    /* color: var(--theme-primary); */
}

.card a:hover {
    color: var(--theme-secondary);
}


/* ================================================================
   31. ACTION ICON COLORS
================================================================ */

.btn-action-view {
    background: var(--theme-info-soft) !important;
    color: var(--theme-info-dark) !important;
    border: 1px solid rgba(6, 182, 212, 0.15) !important;
}

.btn-action-view:hover {
    background: var(--theme-info) !important;
    color: #fff !important;
}

.btn-action-edit {
    background: var(--theme-primary-soft) !important;
    color: var(--theme-primary-dark) !important;
    border: 1px solid rgba(37, 99, 235, 0.15) !important;
}

.btn-action-edit:hover {
    background: var(--theme-primary) !important;
    color: #fff !important;
}

.btn-action-delete {
    background: var(--theme-danger-soft) !important;
    color: var(--theme-danger-dark) !important;
    border: 1px solid rgba(239, 68, 68, 0.15) !important;
}

.btn-action-delete:hover {
    background: var(--theme-danger) !important;
    color: #fff !important;
}

.btn-action-insight {
    background: var(--theme-accent-soft) !important;
    color: var(--theme-accent-dark) !important;
    border: 1px solid rgba(124, 58, 237, 0.15) !important;
}

.btn-action-insight:hover {
    background: var(--theme-accent) !important;
    color: #fff !important;
}


/* ================================================================
   32. STATUS INDICATORS
================================================================ */

.status-dot {
    width: 8px;
    height: 8px;
    display: inline-block;
    border-radius: 50%;
    flex-shrink: 0;
}

.status-dot-active {
    background: var(--theme-success);
}

.status-dot-inactive {
    background: var(--theme-danger);
}

.status-dot-warning {
    background: var(--theme-warning);
}

.status-dot-info {
    background: var(--theme-info);
}

/* ================================================================
   33. RESPONSIVE
================================================================ */

@media (max-width: 991.98px) {
    .page-header-content {
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }
    .module-icon {
        width: 48px;
        height: 48px;
        font-size: 22px;
    }
    .card-header {
        padding: 1rem;
    }
}

@media (max-width: 575.98px) {

    .dashboard-header-icon {
        width: 46px;
        height: 46px;
    }
    .dashboard-header-icon i {
        font-size: 1.35rem !important;
    }
    .page-header h4 {
        font-size: 1rem;
    }
    .page-header .text-muted {
        font-size: 0.75rem;
    }
    .btn {
        font-size: 0.825rem;
    }
}

/* ================================================================
   34. LARGE MODAL
================================================================ */

@media (min-width: 1400px) {
    .modal-xxl {
        max-width: 1400px;
    }
}

/* ================================================================
   35. ACCESSIBILITY
================================================================ */

button:focus-visible,
.btn:focus-visible,
.form-control:focus-visible,
.form-select:focus-visible,
.form-check-input:focus-visible {
    outline: 2px solid var(--theme-primary);
    outline-offset: 2px;
}


/* ================================================================
   36. REDUCED MOTION
================================================================ */

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}