/**
 * ==============================================================================
 * ENT DEPARTMENT - LAVENDER, VIOLET & WHITE DESIGN SYSTEM (ent-theme.css)
 * Department of Otorhinolaryngology (ENT) - Thanjavur Medical College & Hospital
 * ==============================================================================
 * Primary Violet:    #7952CC
 * Deep Violet:       #56339A
 * Light Lavender:    #F0EAFE
 * Page Background:   #F8F6FF
 * White Surfaces:    #FFFFFF
 * Borders:           #E7E0F5
 * Primary Text:      #29233A
 * Secondary Text:    #777187
 * Success:           #23966A
 * Warning:           #E6A23C
 * Error:             #D9536B
 * ==============================================================================
 */

/* ------------------------------------------------------------------------------
   1. ROOT VARIABLES & BOOTSTRAP 5 FRAMEWORK OVERRIDES
   ------------------------------------------------------------------------------ */
:root,
[data-bs-theme="light"] {
    /* ENT Department Brand Design Tokens */
    --ent-primary-violet: #7952CC;
    --ent-primary-hover: #6740B7;
    --ent-deep-violet: #56339A;
    --ent-light-lavender: #F0EAFE;
    --ent-light-lavender-hover: #E7DCFA;
    --ent-page-bg: #F8F6FF;
    --ent-white-surface: #FFFFFF;
    --ent-borders: #E7E0F5;
    --ent-borders-strong: #D5CAEA;
    --ent-primary-text: #29233A;
    --ent-secondary-text: #777187;
    --ent-placeholder: #A49EB3;
    --ent-success: #23966A;
    --ent-success-light: #E8F7F0;
    --ent-success-border: #B3E6D0;
    --ent-warning: #E6A23C;
    --ent-warning-light: #FEF7EC;
    --ent-warning-border: #FAD9A6;
    --ent-error: #D9536B;
    --ent-error-light: #FDF0F2;
    --ent-error-border: #F7BAC4;

    /* Shadows & Radii */
    --ent-shadow-xs: 0 1px 2px 0 rgba(86, 51, 154, 0.03);
    --ent-shadow-sm: 0 2px 8px 0 rgba(86, 51, 154, 0.04), 0 1px 2px 0 rgba(86, 51, 154, 0.02);
    --ent-shadow-md: 0 4px 16px -2px rgba(86, 51, 154, 0.06), 0 2px 6px -1px rgba(86, 51, 154, 0.03);
    --ent-shadow-lg: 0 10px 24px -4px rgba(86, 51, 154, 0.08), 0 4px 8px -2px rgba(86, 51, 154, 0.04);
    --ent-shadow-xl: 0 20px 36px -6px rgba(86, 51, 154, 0.12);
    --ent-gradient-primary: linear-gradient(135deg, #7952CC 0%, #56339A 100%);

    /* --------------------------------------------------------------------------
       Bootstrap 5.3 Root Properties (Crucial: Overrides Blue #0d6efd & Gray Defaults)
       -------------------------------------------------------------------------- */
    --bs-primary: #7952CC !important;
    --bs-primary-rgb: 121, 82, 204 !important;
    --bs-primary-text-emphasis: #56339A !important;
    --bs-primary-bg-subtle: #F0EAFE !important;
    --bs-primary-border-subtle: #E7E0F5 !important;

    --bs-body-bg: #F8F6FF !important;
    --bs-body-bg-rgb: 248, 246, 255 !important;
    --bs-body-color: #29233A !important;
    --bs-body-color-rgb: 41, 35, 58 !important;

    --bs-secondary: #777187 !important;
    --bs-secondary-rgb: 119, 113, 135 !important;
    --bs-secondary-color: #777187 !important;
    --bs-secondary-bg: #F0EAFE !important;
    --bs-secondary-text-emphasis: #29233A !important;

    --bs-border-color: #E7E0F5 !important;
    --bs-border-color-translucent: rgba(231, 224, 245, 0.85) !important;
    --bs-border-radius: 0.65rem !important;
    --bs-border-radius-lg: 1rem !important;
    --bs-border-radius-xl: 1.25rem !important;

    --bs-light: #F8F6FF !important;
    --bs-light-rgb: 248, 246, 255 !important;
    --bs-light-bg-subtle: #F0EAFE !important;

    --bs-success: #23966A !important;
    --bs-success-rgb: 35, 150, 106 !important;
    --bs-success-bg-subtle: #E8F7F0 !important;
    --bs-success-border-subtle: #B3E6D0 !important;
    --bs-success-text-emphasis: #176446 !important;

    --bs-warning: #E6A23C !important;
    --bs-warning-rgb: 230, 162, 60 !important;
    --bs-warning-bg-subtle: #FEF7EC !important;
    --bs-warning-border-subtle: #FAD9A6 !important;
    --bs-warning-text-emphasis: #996316 !important;

    --bs-danger: #D9536B !important;
    --bs-danger-rgb: 217, 83, 107 !important;
    --bs-danger-bg-subtle: #FDF0F2 !important;
    --bs-danger-border-subtle: #F7BAC4 !important;
    --bs-danger-text-emphasis: #8F2236 !important;

    --bs-info: #7952CC !important;
    --bs-info-rgb: 121, 82, 204 !important;
    --bs-info-bg-subtle: #F0EAFE !important;
    --bs-info-border-subtle: #E7E0F5 !important;

    --bs-link-color: #7952CC !important;
    --bs-link-hover-color: #56339A !important;
    --bs-focus-ring-color: rgba(121, 82, 204, 0.22) !important;
}

/* ------------------------------------------------------------------------------
   2. GLOBAL BODY & TYPOGRAPHY
   ------------------------------------------------------------------------------ */
html, body {
    height: 100%;
}

body {
    font-family: 'Plus Jakarta Sans', 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
    background-color: var(--ent-page-bg) !important;
    color: var(--ent-primary-text) !important;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    letter-spacing: -0.01em;
    line-height: 1.5;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6,
.portal-title, .section-title {
    font-family: 'Outfit', 'Plus Jakarta Sans', sans-serif !important;
    color: var(--ent-primary-text) !important;
    letter-spacing: -0.02em;
    font-weight: 700;
}

a {
    color: var(--ent-primary-violet);
    text-decoration: none;
    transition: color 0.15s ease;
}

a:hover {
    color: var(--ent-deep-violet);
}

/* ------------------------------------------------------------------------------
   3. BUTTONS & ACTIONS
   ------------------------------------------------------------------------------ */
.btn {
    font-family: 'Plus Jakarta Sans', sans-serif !important;
    font-weight: 600 !important;
    letter-spacing: -0.01em;
    padding: 0.55rem 1.15rem;
    border-radius: 10px !important;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
}

.btn:active {
    transform: scale(0.98);
}

/* Violet Primary Button */
.btn-primary,
.btn-primary:active,
.btn-primary:focus {
    background-color: var(--ent-primary-violet) !important;
    border-color: var(--ent-primary-violet) !important;
    color: #FFFFFF !important;
    box-shadow: 0 4px 14px rgba(121, 82, 204, 0.25) !important;
}

.btn-primary:hover {
    background-color: var(--ent-primary-hover) !important;
    border-color: var(--ent-primary-hover) !important;
    color: #FFFFFF !important;
    box-shadow: 0 6px 18px rgba(121, 82, 204, 0.32) !important;
    transform: translateY(-1px);
}

/* Violet Outline Button */
.btn-outline-primary {
    color: var(--ent-primary-violet) !important;
    border: 1.5px solid var(--ent-primary-violet) !important;
    background-color: transparent !important;
}

.btn-outline-primary:hover,
.btn-outline-primary:active {
    background-color: var(--ent-primary-violet) !important;
    border-color: var(--ent-primary-violet) !important;
    color: #FFFFFF !important;
    box-shadow: 0 4px 12px rgba(121, 82, 204, 0.22) !important;
    transform: translateY(-1px);
}

/* Light / Secondary Buttons */
.btn-light {
    background-color: var(--ent-white-surface) !important;
    border: 1px solid var(--ent-borders) !important;
    color: var(--ent-primary-text) !important;
}

.btn-light:hover {
    background-color: var(--ent-page-bg) !important;
    border-color: var(--ent-borders-strong) !important;
    color: var(--ent-primary-violet) !important;
}

.btn-secondary {
    background-color: var(--ent-light-lavender) !important;
    border: 1px solid var(--ent-borders) !important;
    color: var(--ent-deep-violet) !important;
}

.btn-secondary:hover {
    background-color: #E7DCFA !important;
    color: var(--ent-deep-violet) !important;
}

.btn-outline-secondary {
    color: var(--ent-secondary-text) !important;
    border: 1.5px solid var(--ent-borders) !important;
    background-color: var(--ent-white-surface) !important;
}

.btn-outline-secondary:hover {
    background-color: var(--ent-light-lavender) !important;
    color: var(--ent-primary-violet) !important;
    border-color: var(--ent-primary-violet) !important;
}

.btn-outline-info {
    color: var(--ent-primary-violet) !important;
    border: 1.5px solid #DED4F7 !important;
    background-color: var(--ent-light-lavender) !important;
}

.btn-outline-info:hover {
    background-color: var(--ent-primary-violet) !important;
    color: #FFFFFF !important;
    border-color: var(--ent-primary-violet) !important;
}

.btn-success {
    background-color: var(--ent-success) !important;
    border-color: var(--ent-success) !important;
    color: #FFFFFF !important;
}

.btn-outline-success {
    color: var(--ent-success) !important;
    border: 1.5px solid var(--ent-success-border) !important;
    background-color: var(--ent-success-light) !important;
}

.btn-outline-success:hover {
    background-color: var(--ent-success) !important;
    border-color: var(--ent-success) !important;
    color: #FFFFFF !important;
    box-shadow: 0 4px 12px rgba(35, 150, 106, 0.22) !important;
}

.btn-outline-danger {
    color: var(--ent-error) !important;
    border: 1.5px solid var(--ent-error-border) !important;
    background-color: var(--ent-error-light) !important;
}

.btn-outline-danger:hover {
    background-color: var(--ent-error) !important;
    border-color: var(--ent-error) !important;
    color: #FFFFFF !important;
    box-shadow: 0 4px 12px rgba(217, 83, 107, 0.22) !important;
}

.btn-dark {
    background-color: var(--ent-primary-text) !important;
    border-color: var(--ent-primary-text) !important;
    color: #FFFFFF !important;
}

.btn-dark:hover {
    background-color: var(--ent-deep-violet) !important;
    border-color: var(--ent-deep-violet) !important;
}

/* ------------------------------------------------------------------------------
   4. SIDEBAR NAVIGATION & APP HEADER
   ------------------------------------------------------------------------------ */
.dashboard-layout {
    background-color: var(--ent-page-bg) !important;
}

.sidebar,
.bg-sidebar {
    width: 280px;
    background-color: var(--ent-white-surface) !important;
    border-right: 1px solid var(--ent-borders) !important;
    box-shadow: 2px 0 16px rgba(86, 51, 154, 0.03) !important;
    z-index: 100;
}

.sidebar-header {
    border-bottom: 1px solid var(--ent-borders);
    padding-bottom: 1.25rem;
}

.sidebar .nav-link {
    color: var(--ent-secondary-text) !important;
    font-weight: 500 !important;
    font-size: 0.92rem;
    border-radius: 12px !important;
    padding: 0.65rem 1rem;
    margin-bottom: 0.25rem;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
}

.sidebar .nav-link i {
    color: var(--ent-secondary-text);
    font-size: 1.25rem;
    transition: transform 0.2s ease, color 0.2s ease;
}

.sidebar .nav-link:hover {
    color: var(--ent-primary-violet) !important;
    background-color: var(--ent-page-bg) !important;
    transform: translateX(3px);
}

.sidebar .nav-link:hover i {
    color: var(--ent-primary-violet) !important;
    transform: scale(1.1);
}

/* Violet Active Navigation Item */
.sidebar .nav-link.active {
    color: var(--ent-deep-violet) !important;
    background-color: var(--ent-light-lavender) !important;
    font-weight: 700 !important;
    border-left: 3.5px solid var(--ent-primary-violet) !important;
    box-shadow: var(--ent-shadow-xs) !important;
    transform: none !important;
}

.sidebar .nav-link.active i {
    color: var(--ent-primary-violet) !important;
}

.sidebar-footer {
    border-top: 1px solid var(--ent-borders);
}

.sidebar-footer .bg-light {
    background-color: var(--ent-page-bg) !important;
    border: 1px solid var(--ent-borders) !important;
}

/* Header Navbar */
header.bg-white,
.main-wrapper header {
    background-color: var(--ent-white-surface) !important;
    border-bottom: 1px solid var(--ent-borders) !important;
    box-shadow: 0 2px 10px rgba(86, 51, 154, 0.03) !important;
}

.user-avatar {
    background: var(--ent-gradient-primary) !important;
    color: #FFFFFF !important;
    font-weight: 700;
}

/* ------------------------------------------------------------------------------
   5. CARDS, SURFACES & CONTAINERS
   ------------------------------------------------------------------------------ */
.card,
.glass-panel,
.container-fluid.bg-white {
    background-color: var(--ent-white-surface) !important;
    border: 1px solid var(--ent-borders) !important;
    border-radius: 16px !important;
    box-shadow: var(--ent-shadow-sm) !important;
    color: var(--ent-primary-text) !important;
    transition: box-shadow 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.card:hover {
    box-shadow: var(--ent-shadow-md) !important;
    border-color: var(--ent-borders-strong) !important;
}

.card-header {
    background-color: var(--ent-white-surface) !important;
    border-bottom: 1px solid var(--ent-borders) !important;
    color: var(--ent-primary-text) !important;
    padding: 1rem 1.25rem;
    font-weight: 600;
    border-top-left-radius: 16px !important;
    border-top-right-radius: 16px !important;
}

.card-footer {
    background-color: var(--ent-page-bg) !important;
    border-top: 1px solid var(--ent-borders) !important;
    border-bottom-left-radius: 16px !important;
    border-bottom-right-radius: 16px !important;
}

/* Stat & Metrics Icon Circles */
.icon-circle {
    width: 54px;
    height: 54px;
    border-radius: 14px !important;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--ent-light-lavender) !important;
    color: var(--ent-primary-violet) !important;
    border: 1px solid #DED4F7 !important;
    box-shadow: var(--ent-shadow-xs);
    flex-shrink: 0;
}

.icon-circle i {
    color: var(--ent-primary-violet) !important;
}

/* ------------------------------------------------------------------------------
   6. FORMS, INPUTS & CONTROLS
   ------------------------------------------------------------------------------ */
.form-label {
    font-size: 0.85rem;
    color: var(--ent-primary-text) !important;
    font-weight: 600;
    margin-bottom: 0.45rem;
    display: inline-block;
}

.form-control,
.form-select {
    background-color: var(--ent-white-surface) !important;
    border: 1.5px solid var(--ent-borders) !important;
    color: var(--ent-primary-text) !important;
    border-radius: 10px !important;
    padding: 0.65rem 0.95rem;
    font-size: 0.92rem;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    box-shadow: var(--ent-shadow-xs);
}

.form-control::placeholder {
    color: var(--ent-placeholder) !important;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--ent-primary-violet) !important;
    box-shadow: 0 0 0 3.5px rgba(121, 82, 204, 0.16) !important;
    outline: none !important;
    background-color: var(--ent-white-surface) !important;
}

.form-control:disabled,
.form-select:disabled {
    background-color: var(--ent-page-bg) !important;
    border-color: var(--ent-borders) !important;
    color: var(--ent-secondary-text) !important;
    cursor: not-allowed;
}

.form-check-input:checked {
    background-color: var(--ent-primary-violet) !important;
    border-color: var(--ent-primary-violet) !important;
}

.form-check-input:focus {
    border-color: var(--ent-primary-violet) !important;
    box-shadow: 0 0 0 3px rgba(121, 82, 204, 0.18) !important;
}

.search-wrapper .form-control {
    border: 1.5px solid var(--ent-borders) !important;
    border-radius: 9999px !important;
    padding-left: 2.75rem !important;
    background-color: var(--ent-white-surface) !important;
}

.search-wrapper .form-control:focus {
    border-color: var(--ent-primary-violet) !important;
    box-shadow: 0 0 0 3.5px rgba(121, 82, 204, 0.16) !important;
}

/* ------------------------------------------------------------------------------
   7. TABLES & CLINICAL DATA LISTS
   ------------------------------------------------------------------------------ */
.patient-table-container,
.table-responsive {
    border: 1px solid var(--ent-borders) !important;
    border-radius: 14px !important;
    background-color: var(--ent-white-surface) !important;
    box-shadow: var(--ent-shadow-xs);
}

.table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--ent-primary-text);
    --bs-table-border-color: var(--ent-borders);
    border-collapse: separate;
    border-spacing: 0;
    width: 100%;
    margin-bottom: 0;
}

.table thead th,
.table thead.table-light th,
thead.table-light th,
.table-light {
    background-color: var(--ent-light-lavender) !important;
    color: var(--ent-deep-violet) !important;
    border-bottom: 2px solid var(--ent-borders) !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    font-size: 0.74rem;
    letter-spacing: 0.05em;
    padding: 0.95rem 1rem;
    vertical-align: middle;
}

.table tbody tr {
    transition: background-color 0.15s ease;
    background-color: var(--ent-white-surface);
}

.table tbody tr:hover,
.table-hover tbody tr:hover {
    background-color: var(--ent-page-bg) !important;
}

.table tbody td {
    padding: 0.9rem 1rem;
    vertical-align: middle;
    border-bottom: 1px solid #F1ECFA !important;
    font-size: 0.9rem;
    color: var(--ent-primary-text);
}

.table tbody tr:last-child td {
    border-bottom: none !important;
}

/* ------------------------------------------------------------------------------
   8. STATUS BADGES & CHIPS
   ------------------------------------------------------------------------------ */
.badge {
    padding: 0.45em 0.85em;
    font-weight: 600;
    font-size: 0.75rem;
    letter-spacing: 0.02em;
    border-radius: 9999px;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.badge.bg-primary,
.badge.bg-primary-glass {
    background-color: var(--ent-light-lavender) !important;
    color: var(--ent-deep-violet) !important;
    border: 1px solid #DED4F7 !important;
}

.badge.bg-success,
.badge.bg-success-glass {
    background-color: var(--ent-success-light) !important;
    color: var(--ent-success) !important;
    border: 1px solid var(--ent-success-border) !important;
}

.badge.bg-warning,
.badge.bg-warning-glass {
    background-color: var(--ent-warning-light) !important;
    color: var(--ent-warning) !important;
    border: 1px solid var(--ent-warning-border) !important;
}

.badge.bg-danger,
.badge.bg-danger-glass {
    background-color: var(--ent-error-light) !important;
    color: var(--ent-error) !important;
    border: 1px solid var(--ent-error-border) !important;
}

.badge.bg-secondary,
.badge.bg-secondary-glass,
.badge.bg-light {
    background-color: #F0EAFE !important;
    color: var(--ent-secondary-text) !important;
    border: 1px solid var(--ent-borders) !important;
}

/* ------------------------------------------------------------------------------
   9. MODALS, TABS & DIALOGS
   ------------------------------------------------------------------------------ */
.modal-content {
    background-color: var(--ent-white-surface) !important;
    border: 1px solid var(--ent-borders) !important;
    border-radius: 20px !important;
    box-shadow: var(--ent-shadow-xl) !important;
    color: var(--ent-primary-text) !important;
    overflow: hidden;
}

.modal-header {
    border-bottom: 1px solid var(--ent-borders) !important;
    background: var(--ent-gradient-primary) !important;
    color: #FFFFFF !important;
    padding: 1.15rem 1.5rem;
}

.modal-header h4, .modal-header h5, .modal-header h6 {
    color: #FFFFFF !important;
    font-weight: 700;
    margin-bottom: 0;
}

.modal-header .text-muted {
    color: rgba(255, 255, 255, 0.78) !important;
}

.modal-header .text-main {
    color: #FFFFFF !important;
}

.modal-header .badge.bg-purple-subtle {
    background-color: rgba(255, 255, 255, 0.2) !important;
    color: #FFFFFF !important;
    border-color: rgba(255, 255, 255, 0.3) !important;
}

/* Modern Frosted Header Chips for Patient / Case Metadata */
.modal-header-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.25rem 0.75rem;
    border-radius: 9999px;
    background: rgba(255, 255, 255, 0.16);
    border: 1px solid rgba(255, 255, 255, 0.28);
    color: #FFFFFF;
    font-size: 0.825rem;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}

.modal-header-chip .chip-label {
    color: rgba(255, 255, 255, 0.85);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.01em;
}

.modal-header-chip .chip-value {
    color: #FFFFFF !important;
    font-weight: 700;
}

.modal-header-chip .chip-badge {
    background: #FFFFFF !important;
    color: #56339A !important;
    font-family: var(--bs-font-monospace, monospace);
    font-weight: 700;
    padding: 0.15rem 0.6rem;
    border-radius: 9999px;
    font-size: 0.775rem;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
    display: inline-block;
    line-height: 1.25;
}

.modal-header .btn-close {
    filter: brightness(0) invert(1);
    opacity: 0.85;
}

.modal-header .btn-close:hover {
    opacity: 1;
}

.modal-body {
    padding: 1.5rem;
    color: var(--ent-primary-text);
}

.modal-footer {
    border-top: 1px solid var(--ent-borders) !important;
    background-color: var(--ent-page-bg) !important;
    padding: 1rem 1.5rem;
}

/* Scrollable modal enhancements */
.modal-dialog-scrollable {
    height: calc(100% - 3.5rem);
}

.modal-dialog-scrollable .modal-content {
    max-height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
}

.modal-dialog-scrollable form.modal-content {
    max-height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
}

.modal-dialog-scrollable .modal-body {
    overflow-y: auto !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}

/* Custom modern scrollbar for modal-body */
.modal-dialog-scrollable .modal-body::-webkit-scrollbar {
    width: 8px;
}

.modal-dialog-scrollable .modal-body::-webkit-scrollbar-track {
    background: #F8F6FF;
    border-radius: 8px;
}

.modal-dialog-scrollable .modal-body::-webkit-scrollbar-thumb {
    background: #D5CAEA;
    border-radius: 8px;
}

.modal-dialog-scrollable .modal-body::-webkit-scrollbar-thumb:hover {
    background: #7952CC;
}

/* Nav Pills & Tabs */
.nav-pills .nav-link,
.nav-tabs .nav-link {
    color: var(--ent-secondary-text) !important;
    font-size: 0.88rem;
    font-weight: 600;
    border-radius: 10px !important;
    padding: 0.5rem 1rem;
    transition: all 0.2s ease;
}

.nav-pills .nav-link:hover,
.nav-tabs .nav-link:hover {
    color: var(--ent-primary-violet) !important;
    background-color: var(--ent-light-lavender) !important;
}

.nav-pills .nav-link.active,
.nav-tabs .nav-link.active {
    background-color: var(--ent-primary-violet) !important;
    color: #FFFFFF !important;
    box-shadow: 0 4px 12px rgba(121, 82, 204, 0.25) !important;
    border: 1px solid var(--ent-primary-violet) !important;
}

/* Dropdowns */
.dropdown-menu {
    background-color: var(--ent-white-surface) !important;
    border: 1px solid var(--ent-borders) !important;
    border-radius: 14px !important;
    box-shadow: var(--ent-shadow-lg) !important;
    padding: 0.5rem !important;
}

.dropdown-item {
    color: var(--ent-primary-text) !important;
    border-radius: 8px !important;
    font-weight: 500;
    padding: 0.5rem 0.85rem;
    transition: all 0.15s ease;
}

.dropdown-item:hover {
    background-color: var(--ent-light-lavender) !important;
    color: var(--ent-deep-violet) !important;
}

.dropdown-item.active,
.dropdown-item:active {
    background-color: var(--ent-primary-violet) !important;
    color: #FFFFFF !important;
}

/* ------------------------------------------------------------------------------
   10. GLASS UTILITY CLASSES & ACCENTS
   ------------------------------------------------------------------------------ */
.bg-primary-glass {
    background-color: var(--ent-light-lavender) !important;
    border: 1px solid #DED4F7 !important;
    color: var(--ent-primary-violet) !important;
}

.bg-secondary-glass {
    background-color: var(--ent-page-bg) !important;
    border: 1px solid var(--ent-borders) !important;
    color: var(--ent-secondary-text) !important;
}

.bg-success-glass {
    background-color: var(--ent-success-light) !important;
    border: 1px solid var(--ent-success-border) !important;
    color: var(--ent-success) !important;
}

.bg-warning-glass {
    background-color: var(--ent-warning-light) !important;
    border: 1px solid var(--ent-warning-border) !important;
    color: var(--ent-warning) !important;
}

.bg-danger-glass {
    background-color: var(--ent-error-light) !important;
    border: 1px solid var(--ent-error-border) !important;
    color: var(--ent-error) !important;
}

.border-white-glass {
    border: 1px solid var(--ent-borders) !important;
}

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

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

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

.bg-light {
    background-color: var(--ent-page-bg) !important;
}

.bg-white {
    background-color: var(--ent-white-surface) !important;
}

.border,
.border-bottom,
.border-top,
.border-start,
.border-end {
    border-color: var(--ent-borders) !important;
}

/* ------------------------------------------------------------------------------
   11. MODERN CLINICAL PORTAL COMPONENT UTILITIES
   ------------------------------------------------------------------------------ */
.font-outfit {
    font-family: 'Outfit', sans-serif !important;
}

.bg-lavender-subtle {
    background-color: #F0EAFE !important;
    color: #7952CC !important;
}

.border-lavender-subtle {
    border-color: #E7E0F5 !important;
}

.sidebar-brand-icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: linear-gradient(135deg, #7952CC 0%, #56339A 100%);
    box-shadow: 0 4px 12px rgba(121, 82, 204, 0.28);
}

.sidebar-category-label {
    font-size: 0.72rem !important;
    letter-spacing: 0.08em;
    font-weight: 700 !important;
    color: #777187 !important;
}

.nav-icon-wrapper {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: rgba(121, 82, 204, 0.07);
    color: #7952CC;
    transition: all 0.15s ease;
}

.sidebar .nav-link.active .nav-icon-wrapper {
    background-color: #7952CC !important;
    color: #FFFFFF !important;
}

.kpi-card {
    border: 1px solid var(--ent-borders) !important;
    transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s ease, border-color 0.2s ease !important;
}

.kpi-card:hover {
    transform: translateY(-3px) !important;
    box-shadow: 0 12px 24px -4px rgba(86, 51, 154, 0.09) !important;
    border-color: var(--ent-borders-strong) !important;
}

.btn-subtle-primary {
    background-color: #F0EAFE !important;
    color: #7952CC !important;
    border: 1px solid #E7E0F5 !important;
}

.btn-subtle-primary:hover {
    background-color: #7952CC !important;
    color: #FFFFFF !important;
    border-color: #7952CC !important;
}

.btn-subtle-success {
    background-color: #E8F7F0 !important;
    color: #23966A !important;
    border: 1px solid #B3E6D0 !important;
}

.btn-subtle-success:hover {
    background-color: #23966A !important;
    color: #FFFFFF !important;
    border-color: #23966A !important;
}

.btn-subtle-danger {
    background-color: #FDF0F2 !important;
    color: #D9536B !important;
    border: 1px solid #F7BAC4 !important;
}

.btn-subtle-danger:hover {
    background-color: #D9536B !important;
    color: #FFFFFF !important;
    border-color: #D9536B !important;
}

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

/* ------------------------------------------------------------------------------
   12. PRINT STYLES PRESERVATION
   ------------------------------------------------------------------------------ */
@media print {
    body {
        background-color: #FFFFFF !important;
        color: #000000 !important;
    }
    .sidebar,
    header.bg-white,
    .btn,
    .no-print {
        display: none !important;
    }
    .container-fluid.bg-white,
    .main-content {
        box-shadow: none !important;
        border: none !important;
        padding: 0 !important;
    }
}

