/**
 * Filing Notes - Soft Pastel Legal Color Palette
 *
 * A softer, pastel-toned color scheme with Bootstrap 5 CSS variable overrides.
 * Designed for a gentle, approachable feel while maintaining professionalism.
 */

:root {
    /* Primary Colors */
    --bs-primary: #4A5E80;
    --bs-primary-rgb: 74, 94, 128;

    --bs-secondary: #7B95B8;
    --bs-secondary-rgb: 123, 149, 184;

    /* Accent Gold */
    --accent: #D4AD6A;
    --accent-rgb: 212, 173, 106;
    --accent-hover: #C9A05E;
    --accent-active: #BE9555;

    /* Semantic Colors */
    --bs-success: #6BAF8D;
    --bs-success-rgb: 107, 175, 141;

    --bs-warning: #DEB36A;
    --bs-warning-rgb: 222, 179, 106;

    --bs-danger: #C87272;
    --bs-danger-rgb: 200, 114, 114;

    --bs-info: #7AAFC4;
    --bs-info-rgb: 122, 175, 196;

    /* Light/Background */
    --bs-light: #F0F1F4;
    --bs-light-rgb: 240, 241, 244;

    /* Body & Text */
    --bs-body-color: #4A5060;
    --bs-body-color-rgb: 74, 80, 96;
    --bs-body-bg: #F0F1F4;

    /* Muted Text */
    --muted-text: #8A90A0;

    /* Borders */
    --bs-border-color: #DDDFE5;

    /* Cards */
    --card-bg: #F7F8FA;

    /* Hover Highlight */
    --hover-highlight: #E8EAF0;

    /* Links */
    --bs-link-color: #4A5E80;
    --bs-link-hover-color: #7B95B8;
}

/* ============================================
   Body & Background
   ============================================ */

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

/* ============================================
   Navbar Styling
   ============================================ */

.navbar.bg-primary {
    background-color: var(--bs-primary) !important;
}

.navbar-dark .navbar-brand,
.navbar-dark .nav-link {
    color: rgba(255, 255, 255, 0.9);
}

.navbar-dark .nav-link:hover,
.navbar-dark .nav-link:focus {
    color: #FFFFFF;
}

.navbar-dark .nav-link.active {
    color: #FFFFFF;
}

/* ============================================
   Primary Button
   ============================================ */

.btn-primary {
    --bs-btn-bg: #4A5E80;
    --bs-btn-border-color: #4A5E80;
    --bs-btn-color: #FFFFFF;
    --bs-btn-hover-bg: #435670;
    --bs-btn-hover-border-color: #435670;
    --bs-btn-hover-color: #FFFFFF;
    --bs-btn-active-bg: #3E4F66;
    --bs-btn-active-border-color: #3E4F66;
    --bs-btn-active-color: #FFFFFF;
    --bs-btn-disabled-bg: #4A5E80;
    --bs-btn-disabled-border-color: #4A5E80;
    --bs-btn-disabled-color: #FFFFFF;
}

.btn-primary:focus-visible {
    box-shadow: 0 0 0 0.25rem rgba(74, 94, 128, 0.4);
}

.btn-outline-primary {
    --bs-btn-color: #4A5E80;
    --bs-btn-border-color: #4A5E80;
    --bs-btn-hover-bg: #4A5E80;
    --bs-btn-hover-border-color: #4A5E80;
    --bs-btn-hover-color: #FFFFFF;
    --bs-btn-active-bg: #435670;
    --bs-btn-active-border-color: #435670;
    --bs-btn-active-color: #FFFFFF;
}

.btn-outline-primary:focus-visible {
    box-shadow: 0 0 0 0.25rem rgba(74, 94, 128, 0.4);
}

/* ============================================
   Secondary Button
   ============================================ */

.btn-secondary {
    --bs-btn-bg: #7B95B8;
    --bs-btn-border-color: #7B95B8;
    --bs-btn-color: #FFFFFF;
    --bs-btn-hover-bg: #6E87A8;
    --bs-btn-hover-border-color: #6E87A8;
    --bs-btn-hover-color: #FFFFFF;
    --bs-btn-active-bg: #637A9A;
    --bs-btn-active-border-color: #637A9A;
    --bs-btn-active-color: #FFFFFF;
    --bs-btn-disabled-bg: #7B95B8;
    --bs-btn-disabled-border-color: #7B95B8;
    --bs-btn-disabled-color: #FFFFFF;
}

.btn-secondary:focus-visible {
    box-shadow: 0 0 0 0.25rem rgba(123, 149, 184, 0.4);
}

.btn-outline-secondary {
    --bs-btn-color: #7B95B8;
    --bs-btn-border-color: #7B95B8;
    --bs-btn-hover-bg: #7B95B8;
    --bs-btn-hover-border-color: #7B95B8;
    --bs-btn-hover-color: #FFFFFF;
    --bs-btn-active-bg: #6E87A8;
    --bs-btn-active-border-color: #6E87A8;
    --bs-btn-active-color: #FFFFFF;
}

.btn-outline-secondary:focus-visible {
    box-shadow: 0 0 0 0.25rem rgba(123, 149, 184, 0.4);
}

/* ============================================
   Accent (Soft Gold) Button & Utilities
   ============================================ */

.btn-accent {
    background-color: var(--accent);
    border-color: var(--accent);
    color: #FFFFFF;
}

.btn-accent:hover {
    background-color: var(--accent-hover);
    border-color: var(--accent-hover);
    color: #FFFFFF;
}

.btn-accent:active,
.btn-accent.active {
    background-color: var(--accent-active);
    border-color: var(--accent-active);
    color: #FFFFFF;
}

.btn-accent:focus-visible {
    box-shadow: 0 0 0 0.25rem rgba(212, 173, 106, 0.4);
}

.btn-accent:disabled,
.btn-accent.disabled {
    background-color: var(--accent);
    border-color: var(--accent);
    color: #FFFFFF;
    opacity: 0.65;
}

.btn-outline-accent {
    color: var(--accent);
    border-color: var(--accent);
    background-color: transparent;
}

.btn-outline-accent:hover {
    background-color: var(--accent);
    border-color: var(--accent);
    color: #FFFFFF;
}

.btn-outline-accent:active,
.btn-outline-accent.active {
    background-color: var(--accent-hover);
    border-color: var(--accent-hover);
    color: #FFFFFF;
}

.btn-outline-accent:focus-visible {
    box-shadow: 0 0 0 0.25rem rgba(212, 173, 106, 0.4);
}

/* Text Accent */
.text-accent {
    color: var(--accent) !important;
}

/* Background Accent */
.bg-accent {
    background-color: var(--accent) !important;
}

/* Border Accent */
.border-accent {
    border-color: var(--accent) !important;
}

/* Badge Accent */
.badge-accent,
.badge.bg-accent {
    background-color: var(--accent) !important;
    color: #FFFFFF;
}

/* ============================================
   Success Button
   ============================================ */

.btn-success {
    --bs-btn-bg: #6BAF8D;
    --bs-btn-border-color: #6BAF8D;
    --bs-btn-color: #FFFFFF;
    --bs-btn-hover-bg: #5FA07F;
    --bs-btn-hover-border-color: #5FA07F;
    --bs-btn-hover-color: #FFFFFF;
    --bs-btn-active-bg: #559272;
    --bs-btn-active-border-color: #559272;
    --bs-btn-active-color: #FFFFFF;
}

.btn-success:focus-visible {
    box-shadow: 0 0 0 0.25rem rgba(107, 175, 141, 0.4);
}

.btn-outline-success {
    --bs-btn-color: #6BAF8D;
    --bs-btn-border-color: #6BAF8D;
    --bs-btn-hover-bg: #6BAF8D;
    --bs-btn-hover-border-color: #6BAF8D;
    --bs-btn-hover-color: #FFFFFF;
    --bs-btn-active-bg: #5FA07F;
    --bs-btn-active-border-color: #5FA07F;
    --bs-btn-active-color: #FFFFFF;
}

/* ============================================
   Warning Button
   ============================================ */

.btn-warning {
    --bs-btn-bg: #DEB36A;
    --bs-btn-border-color: #DEB36A;
    --bs-btn-color: #4A5060;
    --bs-btn-hover-bg: #D1A65E;
    --bs-btn-hover-border-color: #D1A65E;
    --bs-btn-hover-color: #4A5060;
    --bs-btn-active-bg: #C59A55;
    --bs-btn-active-border-color: #C59A55;
    --bs-btn-active-color: #4A5060;
}

.btn-warning:focus-visible {
    box-shadow: 0 0 0 0.25rem rgba(222, 179, 106, 0.4);
}

.btn-outline-warning {
    --bs-btn-color: #DEB36A;
    --bs-btn-border-color: #DEB36A;
    --bs-btn-hover-bg: #DEB36A;
    --bs-btn-hover-border-color: #DEB36A;
    --bs-btn-hover-color: #4A5060;
    --bs-btn-active-bg: #D1A65E;
    --bs-btn-active-border-color: #D1A65E;
    --bs-btn-active-color: #4A5060;
}

/* ============================================
   Danger Button
   ============================================ */

.btn-danger {
    --bs-btn-bg: #C87272;
    --bs-btn-border-color: #C87272;
    --bs-btn-color: #FFFFFF;
    --bs-btn-hover-bg: #BA6666;
    --bs-btn-hover-border-color: #BA6666;
    --bs-btn-hover-color: #FFFFFF;
    --bs-btn-active-bg: #AD5C5C;
    --bs-btn-active-border-color: #AD5C5C;
    --bs-btn-active-color: #FFFFFF;
}

.btn-danger:focus-visible {
    box-shadow: 0 0 0 0.25rem rgba(200, 114, 114, 0.4);
}

.btn-outline-danger {
    --bs-btn-color: #C87272;
    --bs-btn-border-color: #C87272;
    --bs-btn-hover-bg: #C87272;
    --bs-btn-hover-border-color: #C87272;
    --bs-btn-hover-color: #FFFFFF;
    --bs-btn-active-bg: #BA6666;
    --bs-btn-active-border-color: #BA6666;
    --bs-btn-active-color: #FFFFFF;
}

/* ============================================
   Info Button
   ============================================ */

.btn-info {
    --bs-btn-bg: #7AAFC4;
    --bs-btn-border-color: #7AAFC4;
    --bs-btn-color: #FFFFFF;
    --bs-btn-hover-bg: #6DA1B6;
    --bs-btn-hover-border-color: #6DA1B6;
    --bs-btn-hover-color: #FFFFFF;
    --bs-btn-active-bg: #6294A9;
    --bs-btn-active-border-color: #6294A9;
    --bs-btn-active-color: #FFFFFF;
}

.btn-info:focus-visible {
    box-shadow: 0 0 0 0.25rem rgba(122, 175, 196, 0.4);
}

.btn-outline-info {
    --bs-btn-color: #7AAFC4;
    --bs-btn-border-color: #7AAFC4;
    --bs-btn-hover-bg: #7AAFC4;
    --bs-btn-hover-border-color: #7AAFC4;
    --bs-btn-hover-color: #FFFFFF;
    --bs-btn-active-bg: #6DA1B6;
    --bs-btn-active-border-color: #6DA1B6;
    --bs-btn-active-color: #FFFFFF;
}

/* ============================================
   Light Button
   ============================================ */

.btn-light {
    --bs-btn-bg: #F0F1F4;
    --bs-btn-border-color: #DDDFE5;
    --bs-btn-color: #4A5060;
    --bs-btn-hover-bg: #E8EAF0;
    --bs-btn-hover-border-color: #D0D3DB;
    --bs-btn-hover-color: #4A5060;
    --bs-btn-active-bg: #E0E2E8;
    --bs-btn-active-border-color: #C5C8D0;
    --bs-btn-active-color: #4A5060;
}

.btn-light:focus-visible {
    box-shadow: 0 0 0 0.25rem rgba(221, 223, 229, 0.5);
}

/* ============================================
   Cards
   ============================================ */

.card {
    background-color: var(--card-bg);
    border-color: var(--bs-border-color);
}

.card-header {
    background-color: #EDEEF2;
    border-bottom-color: var(--bs-border-color);
}

/* ============================================
   Alerts
   ============================================ */

.alert-primary {
    --bs-alert-color: #3A4A60;
    --bs-alert-bg: #E2E6ED;
    --bs-alert-border-color: #D5DBE5;
}

.alert-secondary {
    --bs-alert-color: #4A5A70;
    --bs-alert-bg: #E8EDF4;
    --bs-alert-border-color: #DBE2ED;
}

.alert-success {
    --bs-alert-color: #3A5A48;
    --bs-alert-bg: #E4F0E9;
    --bs-alert-border-color: #D6E8DE;
}

.alert-warning {
    --bs-alert-color: #5A4A30;
    --bs-alert-bg: #F8F0E2;
    --bs-alert-border-color: #F2E8D5;
}

.alert-danger {
    --bs-alert-color: #5A3A3A;
    --bs-alert-bg: #F4E6E6;
    --bs-alert-border-color: #EEDAD8;
}

.alert-info {
    --bs-alert-color: #3A5560;
    --bs-alert-bg: #E6F0F4;
    --bs-alert-border-color: #D8E8EE;
}

/* ============================================
   Badges
   ============================================ */

.badge.bg-primary {
    background-color: var(--bs-primary) !important;
}

.badge.bg-secondary {
    background-color: var(--bs-secondary) !important;
}

.badge.bg-success {
    background-color: var(--bs-success) !important;
}

.badge.bg-warning {
    background-color: var(--bs-warning) !important;
    color: #4A5060;
}

.badge.bg-danger {
    background-color: var(--bs-danger) !important;
}

.badge.bg-info {
    background-color: var(--bs-info) !important;
}

/* ============================================
   Forms
   ============================================ */

.form-control,
.form-select {
    color: var(--bs-body-color);
    background-color: #FFFFFF;
    border-color: var(--bs-border-color);
}

.form-control:focus,
.form-select:focus {
    border-color: var(--bs-secondary);
    box-shadow: 0 0 0 0.25rem rgba(123, 149, 184, 0.25);
}

.form-check-input:checked {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
}

.form-check-input:focus {
    border-color: var(--bs-secondary);
    box-shadow: 0 0 0 0.25rem rgba(74, 94, 128, 0.25);
}

.form-label {
    color: var(--bs-body-color);
}

/* ============================================
   Links
   ============================================ */

a {
    color: var(--bs-link-color);
}

a:hover {
    color: var(--bs-link-hover-color);
}

/* ============================================
   Tables
   ============================================ */

.table {
    --bs-table-color: var(--bs-body-color);
    --bs-table-border-color: var(--bs-border-color);
}

.table-striped > tbody > tr:nth-of-type(odd) > * {
    --bs-table-bg-type: rgba(74, 94, 128, 0.03);
}

.table-hover > tbody > tr:hover > * {
    --bs-table-bg-state: rgba(74, 94, 128, 0.06);
}

.table thead th {
    color: var(--bs-body-color);
}

/* ============================================
   Pagination
   ============================================ */

.page-link {
    color: var(--bs-primary);
    background-color: var(--card-bg);
    border-color: var(--bs-border-color);
}

.page-link:hover {
    color: var(--bs-primary);
    background-color: var(--hover-highlight);
    border-color: var(--bs-border-color);
}

.page-link:focus {
    box-shadow: 0 0 0 0.25rem rgba(74, 94, 128, 0.25);
}

.page-item.active .page-link {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
}

/* ============================================
   Dropdown
   ============================================ */

.dropdown-menu {
    background-color: var(--card-bg);
    border-color: var(--bs-border-color);
}

.dropdown-item {
    color: var(--bs-body-color);
}

.dropdown-item:hover,
.dropdown-item:focus {
    background-color: var(--hover-highlight);
    color: var(--bs-body-color);
}

.dropdown-item.active,
.dropdown-item:active {
    background-color: var(--bs-primary);
    color: #FFFFFF;
}

/* Navbar dropdown fix - ensure dark text on light dropdown background */
.navbar .dropdown-menu {
    background-color: var(--card-bg);
}

.navbar .dropdown-menu .dropdown-item {
    color: var(--bs-body-color) !important;
}

.navbar .dropdown-menu .dropdown-item:hover,
.navbar .dropdown-menu .dropdown-item:focus {
    background-color: var(--hover-highlight);
    color: var(--bs-body-color) !important;
}

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

.navbar .dropdown-menu .dropdown-item i {
    color: var(--muted-text);
}

/* ============================================
   Text Utilities
   ============================================ */

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

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

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

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

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

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

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

/* Ensure no harsh black text */
.text-dark {
    color: #4A5060 !important;
}

h1, h2, h3, h4, h5, h6 {
    color: var(--bs-body-color);
}

/* Headings inside colored backgrounds should be white */
.bg-primary h1, .bg-primary h2, .bg-primary h3, .bg-primary h4, .bg-primary h5, .bg-primary h6,
.bg-secondary h1, .bg-secondary h2, .bg-secondary h3, .bg-secondary h4, .bg-secondary h5, .bg-secondary h6,
.bg-success h1, .bg-success h2, .bg-success h3, .bg-success h4, .bg-success h5, .bg-success h6,
.bg-danger h1, .bg-danger h2, .bg-danger h3, .bg-danger h4, .bg-danger h5, .bg-danger h6,
.bg-info h1, .bg-info h2, .bg-info h3, .bg-info h4, .bg-info h5, .bg-info h6,
.bg-accent h1, .bg-accent h2, .bg-accent h3, .bg-accent h4, .bg-accent h5, .bg-accent h6 {
    color: #FFFFFF !important;
}

/* Headings inside warning background should be dark */
.bg-warning h1, .bg-warning h2, .bg-warning h3, .bg-warning h4, .bg-warning h5, .bg-warning h6 {
    color: #4A5060 !important;
}

/* ============================================
   Background Utilities
   ============================================ */

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

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

.bg-success {
    background-color: var(--bs-success) !important;
}

.bg-warning {
    background-color: var(--bs-warning) !important;
}

.bg-danger {
    background-color: var(--bs-danger) !important;
}

.bg-info {
    background-color: var(--bs-info) !important;
}

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

/* ============================================
   Border Utilities
   ============================================ */

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

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

.border-success {
    border-color: var(--bs-success) !important;
}

.border-warning {
    border-color: var(--bs-warning) !important;
}

.border-danger {
    border-color: var(--bs-danger) !important;
}

.border-info {
    border-color: var(--bs-info) !important;
}

/* ============================================
   List Groups
   ============================================ */

.list-group-item {
    background-color: var(--card-bg);
    border-color: var(--bs-border-color);
    color: var(--bs-body-color);
}

.list-group-item.active {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
    color: #FFFFFF;
}

.list-group-item-action:hover,
.list-group-item-action:focus {
    background-color: var(--hover-highlight);
    color: var(--bs-body-color);
}

/* ============================================
   Progress Bars
   ============================================ */

.progress {
    background-color: #E8EAF0;
}

.progress-bar {
    background-color: var(--bs-primary);
}

/* ============================================
   Spinners
   ============================================ */

.spinner-border.text-primary,
.spinner-grow.text-primary {
    color: var(--bs-primary) !important;
}

/* ============================================
   Accordion
   ============================================ */

.accordion-button {
    color: var(--bs-body-color);
    background-color: var(--card-bg);
}

.accordion-button:not(.collapsed) {
    color: var(--bs-primary);
    background-color: rgba(74, 94, 128, 0.08);
}

.accordion-button:focus {
    box-shadow: 0 0 0 0.25rem rgba(74, 94, 128, 0.25);
    border-color: var(--bs-border-color);
}

.accordion-item {
    border-color: var(--bs-border-color);
    background-color: var(--card-bg);
}

.accordion-body {
    background-color: var(--card-bg);
    color: var(--bs-body-color);
}

/* Accordion with primary background tint */
.accordion-button.bg-primary.bg-opacity-10,
.accordion-button.bg-primary[class*="bg-opacity"] {
    color: var(--bs-body-color);
}

.accordion-button.bg-primary.bg-opacity-10 small,
.accordion-button.bg-primary[class*="bg-opacity"] small,
.accordion-button.bg-primary.bg-opacity-10 .text-muted,
.accordion-button.bg-primary[class*="bg-opacity"] .text-muted {
    color: var(--muted-text) !important;
}

/* ============================================
   Dark Background Text Contrast
   Ensures white/light text on colored backgrounds
   ============================================ */

/* Primary background - white text */
.bg-primary,
.bg-primary.card-header,
.card-header.bg-primary,
.card .card-header.bg-primary {
    color: #FFFFFF !important;
}

.bg-primary small,
.bg-primary .small,
.bg-primary .text-muted,
.card-header.bg-primary small,
.card-header.bg-primary .small {
    color: rgba(255, 255, 255, 0.8) !important;
}

.bg-primary a:not(.btn),
.card-header.bg-primary a:not(.btn) {
    color: rgba(255, 255, 255, 0.9) !important;
}

.bg-primary a:not(.btn):hover,
.card-header.bg-primary a:not(.btn):hover {
    color: #FFFFFF !important;
}

/* Secondary background - white text */
.bg-secondary,
.bg-secondary.card-header,
.card-header.bg-secondary,
.card .card-header.bg-secondary {
    color: #FFFFFF !important;
}

.bg-secondary small,
.bg-secondary .small,
.bg-secondary .text-muted,
.card-header.bg-secondary small,
.card-header.bg-secondary .small {
    color: rgba(255, 255, 255, 0.8) !important;
}

.bg-secondary a:not(.btn),
.card-header.bg-secondary a:not(.btn) {
    color: rgba(255, 255, 255, 0.9) !important;
}

.bg-secondary a:not(.btn):hover,
.card-header.bg-secondary a:not(.btn):hover {
    color: #FFFFFF !important;
}

/* Success background - white text */
.bg-success,
.bg-success.card-header,
.card-header.bg-success,
.card .card-header.bg-success {
    color: #FFFFFF !important;
}

.bg-success small,
.bg-success .small,
.bg-success .text-muted,
.card-header.bg-success small,
.card-header.bg-success .small {
    color: rgba(255, 255, 255, 0.8) !important;
}

.bg-success a:not(.btn),
.card-header.bg-success a:not(.btn) {
    color: rgba(255, 255, 255, 0.9) !important;
}

.bg-success a:not(.btn):hover,
.card-header.bg-success a:not(.btn):hover {
    color: #FFFFFF !important;
}

/* Danger background - white text */
.bg-danger,
.bg-danger.card-header,
.card-header.bg-danger,
.card .card-header.bg-danger {
    color: #FFFFFF !important;
}

.bg-danger small,
.bg-danger .small,
.bg-danger .text-muted,
.card-header.bg-danger small,
.card-header.bg-danger .small {
    color: rgba(255, 255, 255, 0.8) !important;
}

.bg-danger a:not(.btn),
.card-header.bg-danger a:not(.btn) {
    color: rgba(255, 255, 255, 0.9) !important;
}

.bg-danger a:not(.btn):hover,
.card-header.bg-danger a:not(.btn):hover {
    color: #FFFFFF !important;
}

/* Info background - white text */
.bg-info,
.bg-info.card-header,
.card-header.bg-info,
.card .card-header.bg-info {
    color: #FFFFFF !important;
}

.bg-info small,
.bg-info .small,
.bg-info .text-muted,
.card-header.bg-info small,
.card-header.bg-info .small {
    color: rgba(255, 255, 255, 0.8) !important;
}

.bg-info a:not(.btn),
.card-header.bg-info a:not(.btn) {
    color: rgba(255, 255, 255, 0.9) !important;
}

.bg-info a:not(.btn):hover,
.card-header.bg-info a:not(.btn):hover {
    color: #FFFFFF !important;
}

/* Warning background - dark text for contrast */
.bg-warning,
.bg-warning.card-header,
.card-header.bg-warning,
.card .card-header.bg-warning {
    color: #4A5060 !important;
}

.bg-warning small,
.bg-warning .small,
.bg-warning .text-muted,
.card-header.bg-warning small,
.card-header.bg-warning .small {
    color: rgba(74, 80, 96, 0.75) !important;
}

/* Accent background - white text */
.bg-accent,
.card-header.bg-accent,
.card .card-header.bg-accent {
    color: #FFFFFF !important;
}

.bg-accent small,
.bg-accent .small,
.bg-accent .text-muted,
.card-header.bg-accent small,
.card-header.bg-accent .small {
    color: rgba(255, 255, 255, 0.8) !important;
}

/* text-white class - ensure it works on card headers */
.card-header.text-white,
.card .card-header.text-white,
.text-white {
    color: #FFFFFF !important;
}

/* ============================================
   Modal
   ============================================ */

.modal-content {
    background-color: var(--card-bg);
    border-color: var(--bs-border-color);
}

.modal-header {
    border-bottom-color: var(--bs-border-color);
    color: var(--bs-body-color);
}

.modal-footer {
    border-top-color: var(--bs-border-color);
}

.modal-title {
    color: var(--bs-body-color);
}

/* ============================================
   Breadcrumb
   ============================================ */

.breadcrumb {
    background-color: transparent;
}

.breadcrumb-item a {
    color: var(--bs-link-color);
}

.breadcrumb-item.active {
    color: var(--muted-text);
}

/* ============================================
   Nav Tabs & Pills
   ============================================ */

.nav-link {
    color: var(--bs-body-color);
}

.nav-link:hover,
.nav-link:focus {
    color: var(--bs-primary);
}

.nav-tabs .nav-link.active {
    color: var(--bs-primary);
    background-color: var(--card-bg);
    border-color: var(--bs-border-color) var(--bs-border-color) var(--card-bg);
}

.nav-pills .nav-link.active {
    background-color: var(--bs-primary);
    color: #FFFFFF;
}

/* ============================================
   Toast
   ============================================ */

.toast {
    background-color: var(--card-bg);
    border-color: var(--bs-border-color);
}

.toast-header {
    background-color: #EDEEF2;
    border-bottom-color: var(--bs-border-color);
    color: var(--bs-body-color);
}

.toast-body {
    color: var(--bs-body-color);
}

/* ============================================
   Tooltip & Popover
   ============================================ */

.tooltip-inner {
    background-color: var(--bs-primary);
}

.popover {
    background-color: var(--card-bg);
    border-color: var(--bs-border-color);
}

.popover-header {
    background-color: #EDEEF2;
    border-bottom-color: var(--bs-border-color);
    color: var(--bs-body-color);
}

.popover-body {
    color: var(--bs-body-color);
}

/* ============================================
   Close Button
   ============================================ */

.btn-close {
    opacity: 0.5;
}

.btn-close:hover {
    opacity: 0.75;
}

/* ============================================
   Text utilities on dark backgrounds
   Helper classes for manual control
   ============================================ */

.text-white-75 {
    color: rgba(255, 255, 255, 0.75) !important;
}

.text-white-50 {
    color: rgba(255, 255, 255, 0.5) !important;
}

/* ============================================
   Ensure soft text everywhere
   Override any remaining black text
   ============================================ */

.text-body {
    color: var(--bs-body-color) !important;
}

small, .small {
    color: var(--muted-text);
}

/* Form text and help text */
.form-text {
    color: var(--muted-text);
}

/* Blockquote */
blockquote {
    color: var(--bs-body-color);
}

.blockquote-footer {
    color: var(--muted-text);
}

/* Code */
code {
    color: var(--bs-danger);
}

pre {
    color: var(--bs-body-color);
}

/* ============================================
   Calendar
   ============================================ */

.calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 1px;
    background-color: #dee2e6;
    border: 1px solid #dee2e6;
}

.calendar-header {
    background-color: #0d6efd;
    color: white;
    padding: 10px;
    text-align: center;
    font-weight: bold;
}

.calendar-day {
    background-color: white;
    min-height: 120px;
    padding: 8px;
    position: relative;
}

.calendar-day.other-month {
    background-color: #f8f9fa;
    color: #6c757d;
}

.calendar-day.today {
    background-color: #fff3cd;
}

.calendar-day-number {
    font-weight: bold;
    margin-bottom: 5px;
}

.calendar-appointment {
    font-size: 0.8rem;
    padding: 2px 5px;
    margin-bottom: 2px;
    border-radius: 3px;
    color: white;
    text-decoration: none;
    display: block;
    line-height: 1.3;
}

.calendar-appointment:hover {
    color: white;
    opacity: 0.8;
}

.calendar-appointment-title {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.calendar-appointment-location {
    font-size: 0.7rem;
    opacity: 0.9;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-top: 1px;
}

.calendar-appointment-location i {
    font-size: 0.65rem;
    margin-right: 2px;
}

.agenda-view .agenda-date {
    background-color: #f8f9fa;
    padding: 10px;
    font-weight: bold;
    margin-top: 15px;
    border-left: 4px solid #0d6efd;
}

.agenda-view .agenda-item {
    padding: 10px;
    border-bottom: 1px solid #dee2e6;
}

.view-toggle {
    display: flex;
    gap: 10px;
    margin-bottom: 20px;
}

.view-toggle input[type="radio"] {
    display: none;
}

.view-toggle label {
    padding: 8px 20px;
    border: 1px solid #0d6efd;
    border-radius: 5px;
    cursor: pointer;
    transition: all 0.3s;
}

.view-toggle input[type="radio"]:checked + label {
    background-color: #0d6efd;
    color: white;
}

.calendar-grid {
    background-color: var(--bs-border-color) !important;
    border-color: var(--bs-border-color) !important;
}

.calendar-header {
    background-color: var(--bs-primary) !important;
    color: #FFFFFF !important;
}

.calendar-day {
    background-color: var(--card-bg) !important;
    color: var(--bs-body-color) !important;
}

.calendar-day.other-month {
    background-color: var(--bs-light) !important;
    color: var(--muted-text) !important;
}

.calendar-day.today {
    background-color: #F5EED8 !important;
    border: 2px solid var(--accent) !important;
}

.calendar-day-number {
    color: var(--bs-body-color);
}

.calendar-day.other-month .calendar-day-number {
    color: var(--muted-text);
}

.calendar-day.today .calendar-day-number {
    color: var(--bs-primary);
    font-weight: bold;
}

/* Agenda view */
.agenda-view .agenda-date {
    background-color: var(--hover-highlight) !important;
    border-left-color: var(--bs-primary) !important;
    color: var(--bs-body-color) !important;
}

.agenda-view .agenda-item {
    border-bottom-color: var(--bs-border-color) !important;
    color: var(--bs-body-color);
}

.agenda-view .agenda-item h6 {
    color: var(--bs-body-color);
}

.agenda-view .agenda-item a {
    color: var(--bs-link-color);
}

.agenda-view .agenda-item a:hover {
    color: var(--bs-link-hover-color);
}

/* View toggle */
.view-toggle label {
    border-color: var(--bs-primary) !important;
    color: var(--bs-primary);
    background-color: var(--card-bg);
}

.view-toggle label:hover {
    background-color: var(--hover-highlight);
}

.view-toggle input[type="radio"]:checked + label {
    background-color: var(--bs-primary) !important;
    color: #FFFFFF !important;
    border-color: var(--bs-primary) !important;
}

/* Calendar appointments */
.calendar-appointment {
    font-size: 0.8rem;
    padding: 3px 6px;
    margin-bottom: 3px;
    border-radius: 4px;
    background-color: var(--appointment-color, var(--bs-primary));
    color: #FFFFFF !important;
    text-decoration: none;
    display: block;
    line-height: 1.3;
    transition: opacity 0.2s ease;
}

.calendar-appointment:hover {
    color: #FFFFFF !important;
    opacity: 0.85;
    text-decoration: none;
}

/* Appointment type badge in agenda view */
.appointment-type-badge {
    background-color: var(--appointment-color, var(--bs-primary)) !important;
    color: #FFFFFF !important;
}

.calendar-appointment-title {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-weight: 500;
}

.calendar-appointment-location {
    font-size: 0.7rem;
    opacity: 0.9;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-top: 2px;
}

.calendar-appointment-location i {
    font-size: 0.65rem;
    margin-right: 2px;
}

/* ============================================
   Compact Navbar Buttons
   ============================================ */

/* Desktop: icon-only compact buttons */
@media (min-width: 992px) {
    .navbar .quick-actions .btn {
        min-width: 36px;
        padding: 0.375rem 0.5rem;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    .navbar .quick-actions .btn i {
        font-size: 1rem;
    }
}

/* Mobile: full-width navbar sections with proper spacing */
@media (max-width: 991.98px) {
    .navbar-collapse {
        padding-top: 1rem;
        padding-bottom: 0.5rem;
    }

    .navbar .quick-actions {
        width: 100%;
        padding: 0.75rem 0;
        border-top: 1px solid rgba(255, 255, 255, 0.15);
        margin-top: 0.5rem;
    }

    .navbar .quick-actions .btn {
        display: inline-flex;
        align-items: center;
        padding: 0.5rem 0.75rem;
    }

    .navbar .navbar-search {
        width: 100%;
        padding: 0.5rem 0;
    }

    .navbar .navbar-utility {
        width: 100%;
        padding: 0.75rem 0;
        border-top: 1px solid rgba(255, 255, 255, 0.15);
    }

    .navbar .navbar-utility .dropdown {
        flex: 0 0 auto;
    }

    .navbar .navbar-utility .btn {
        display: inline-flex;
        align-items: center;
        padding: 0.5rem 0.75rem;
    }
}

