/**
 * DMS Custom Theme & Dark Mode Styling
 * Supports light/dark mode and dynamic company branding variables
 */

:root {
  --dms-primary: #0d6efd;
  --dms-primary-hover: #0b5ed7;
  --dms-accent: #0dcaf0;
  --dms-bg-body: #f8f9fa;
  --dms-card-bg: #ffffff;
  --dms-text-primary: #212529;
  --dms-text-muted: #6c757d;
  --dms-border-color: #dee2e6;
  --dms-header-bg: #ffffff;
  --dms-sidebar-bg: #ffffff;
  --dms-sidebar-text: #495057;
  --dms-sidebar-hover: #f1f3f5;
  --dms-input-bg: #ffffff;
}

[data-bs-theme="dark"] {
  --dms-bg-body: #0f172a;
  --dms-card-bg: #1e293b;
  --dms-text-primary: #f8fafc;
  --dms-text-muted: #94a3b8;
  --dms-border-color: #334155;
  --dms-header-bg: #1e293b;
  --dms-sidebar-bg: #0f172a;
  --dms-sidebar-text: #cbd5e1;
  --dms-sidebar-hover: #1e293b;
  --dms-input-bg: #1e293b;
  
  color-scheme: dark;
  background-color: var(--dms-bg-body) !important;
  color: var(--dms-text-primary) !important;
}

/* Dark mode overrides for Bootstrap elements */
[data-bs-theme="dark"] body {
  background-color: var(--dms-bg-body) !important;
  color: var(--dms-text-primary) !important;
}

[data-bs-theme="dark"] .card {
  background-color: var(--dms-card-bg) !important;
  border-color: var(--dms-border-color) !important;
  color: var(--dms-text-primary) !important;
}

[data-bs-theme="dark"] .card-header,
[data-bs-theme="dark"] .card-footer {
  background-color: rgba(255, 255, 255, 0.03) !important;
  border-color: var(--dms-border-color) !important;
}

[data-bs-theme="dark"] #page-topbar,
[data-bs-theme="dark"] .app-header {
  background-color: var(--dms-header-bg) !important;
  border-bottom: 1px solid var(--dms-border-color) !important;
}

[data-bs-theme="dark"] .navbar-header {
  background-color: var(--dms-header-bg) !important;
}

[data-bs-theme="dark"] .navbar-header .btn-topbar {
  color: var(--dms-text-muted) !important;
}

[data-bs-theme="dark"] .navbar-header .btn-topbar:hover,
[data-bs-theme="dark"] .navbar-header .btn-topbar:focus {
  background-color: rgba(255, 255, 255, 0.05) !important;
  color: var(--dms-text-primary) !important;
}

[data-bs-theme="dark"] .topbar-user .btn:hover {
  background-color: rgba(255, 255, 255, 0.05) !important;
}

[data-bs-theme="dark"] .topbar-user .text-dark,
[data-bs-theme="dark"] .dropdown-header .text-dark {
  color: var(--dms-text-primary) !important;
}

[data-bs-theme="dark"] .dropdown-header.bg-light {
  background-color: rgba(255, 255, 255, 0.05) !important;
}

[data-bs-theme="dark"] .btn.bg-light {
  background-color: rgba(255, 255, 255, 0.05) !important;
  border-color: var(--dms-border-color) !important;
  color: var(--dms-text-muted) !important;
}

[data-bs-theme="dark"] .btn.bg-light kbd {
  background-color: #334155 !important;
  color: #f8fafc !important;
  border-color: #475569 !important;
}

[data-bs-theme="dark"] .app-sidebar,
[data-bs-theme="dark"] .app-menu {
  background-color: var(--dms-sidebar-bg) !important;
  border-right: 1px solid var(--dms-border-color) !important;
}

[data-bs-theme="dark"] .table {
  color: var(--dms-text-primary) !important;
  border-color: var(--dms-border-color) !important;
}

[data-bs-theme="dark"] .table > :not(caption) > * > * {
  background-color: var(--dms-card-bg) !important;
  color: var(--dms-text-primary) !important;
  border-bottom-color: var(--dms-border-color) !important;
}

[data-bs-theme="dark"] .table-hover > tbody > tr:hover > * {
  background-color: rgba(255, 255, 255, 0.05) !important;
}

[data-bs-theme="dark"] .form-control,
[data-bs-theme="dark"] .form-select {
  background-color: var(--dms-input-bg) !important;
  border-color: var(--dms-border-color) !important;
  color: var(--dms-text-primary) !important;
}

[data-bs-theme="dark"] .form-control:focus,
[data-bs-theme="dark"] .form-select:focus {
  background-color: var(--dms-input-bg) !important;
  border-color: var(--dms-primary) !important;
  color: var(--dms-text-primary) !important;
  box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}

[data-bs-theme="dark"] .modal-content,
[data-bs-theme="dark"] .offcanvas {
  background-color: var(--dms-card-bg) !important;
  border-color: var(--dms-border-color) !important;
  color: var(--dms-text-primary) !important;
}

[data-bs-theme="dark"] .modal-header,
[data-bs-theme="dark"] .modal-footer,
[data-bs-theme="dark"] .offcanvas-header {
  border-color: var(--dms-border-color) !important;
}

[data-bs-theme="dark"] .dropdown-menu {
  background-color: var(--dms-card-bg) !important;
  border-color: var(--dms-border-color) !important;
  color: var(--dms-text-primary) !important;
}

[data-bs-theme="dark"] .dropdown-item {
  color: var(--dms-text-primary) !important;
}

[data-bs-theme="dark"] .dropdown-item:hover,
[data-bs-theme="dark"] .dropdown-item:focus {
  background-color: rgba(255, 255, 255, 0.08) !important;
}

[data-bs-theme="dark"] .nav-tabs .nav-link {
  color: var(--dms-text-muted) !important;
  border-color: transparent !important;
}

[data-bs-theme="dark"] .nav-tabs .nav-link.active {
  color: var(--dms-text-primary) !important;
  background-color: var(--dms-card-bg) !important;
  border-color: var(--dms-border-color) var(--dms-border-color) var(--dms-card-bg) !important;
}

/* Version History Timeline Styles */
.version-timeline {
  position: relative;
  padding-left: 20px;
  padding-right: 20px;
}

.version-item {
  position: relative;
  padding-bottom: 24px;
  border-right: 2px solid var(--dms-border-color);
  padding-right: 20px;
}

.version-item:last-child {
  border-right-color: transparent;
  padding-bottom: 0;
}

.version-dot {
  position: absolute;
  right: -7px;
  top: 0;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: var(--dms-primary);
  border: 2px solid var(--dms-card-bg);
}

.version-item.is-current .version-dot {
  background-color: #10b981;
  box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.2);
}

/* Dynamic Primary Brand Application */
.btn-primary,
.bg-primary {
  background-color: var(--dms-primary) !important;
  border-color: var(--dms-primary) !important;
}

.btn-primary:hover,
.btn-primary:focus {
  filter: brightness(0.9);
}

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

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

/* -------------------------------------------------------------------------- */
/* Expanded dark-mode coverage (layout, utilities, third-party widgets)         */
/* -------------------------------------------------------------------------- */

[data-bs-theme="dark"] .main-content,
[data-bs-theme="dark"] .page-content {
  background-color: var(--dms-bg-body) !important;
  color: var(--dms-text-primary) !important;
}

[data-bs-theme="dark"] .footer {
  background-color: var(--dms-header-bg) !important;
  border-top-color: var(--dms-border-color) !important;
  color: var(--dms-text-muted) !important;
}

/* Sidebar menu links */
[data-bs-theme="dark"] .navbar-menu,
[data-bs-theme="dark"] .navbar-nav {
  background-color: var(--dms-sidebar-bg) !important;
}

[data-bs-theme="dark"] .navbar-menu .nav-link,
[data-bs-theme="dark"] .navbar-nav .nav-link {
  color: var(--dms-sidebar-text) !important;
}

[data-bs-theme="dark"] .navbar-menu .nav-link:hover,
[data-bs-theme="dark"] .navbar-menu .nav-link.active,
[data-bs-theme="dark"] .navbar-nav .nav-link:hover,
[data-bs-theme="dark"] .navbar-nav .nav-link.active {
  color: var(--dms-text-primary) !important;
  background-color: var(--dms-sidebar-hover) !important;
}

[data-bs-theme="dark"] .navbar-menu .menu-title,
[data-bs-theme="dark"] .menu-title {
  color: var(--dms-text-muted) !important;
}

[data-bs-theme="dark"] .navbar-brand-box,
[data-bs-theme="dark"] .logo-dark,
[data-bs-theme="dark"] .logo-light {
  background-color: transparent !important;
}

/* Breadcrumbs */
[data-bs-theme="dark"] .breadcrumb,
[data-bs-theme="dark"] .breadcrumb-item,
[data-bs-theme="dark"] .breadcrumb-item a {
  color: var(--dms-text-muted) !important;
}

[data-bs-theme="dark"] .breadcrumb-item.active {
  color: var(--dms-text-primary) !important;
}

[data-bs-theme="dark"] .breadcrumb-item + .breadcrumb-item::before {
  color: var(--dms-text-muted) !important;
}

/* Pagination */
[data-bs-theme="dark"] .page-link {
  background-color: var(--dms-card-bg) !important;
  border-color: var(--dms-border-color) !important;
  color: var(--dms-text-primary) !important;
}

[data-bs-theme="dark"] .page-link:hover {
  background-color: rgba(255, 255, 255, 0.08) !important;
  color: var(--dms-text-primary) !important;
}

[data-bs-theme="dark"] .page-item.active .page-link {
  background-color: var(--dms-primary) !important;
  border-color: var(--dms-primary) !important;
  color: #fff !important;
}

[data-bs-theme="dark"] .page-item.disabled .page-link {
  background-color: var(--dms-card-bg) !important;
  color: var(--dms-text-muted) !important;
}

/* Alerts */
[data-bs-theme="dark"] .alert {
  border-color: var(--dms-border-color) !important;
}

[data-bs-theme="dark"] .alert-success {
  background-color: rgba(16, 185, 129, 0.15) !important;
  color: #6ee7b7 !important;
}

[data-bs-theme="dark"] .alert-danger {
  background-color: rgba(239, 68, 68, 0.15) !important;
  color: #fca5a5 !important;
}

[data-bs-theme="dark"] .alert-warning {
  background-color: rgba(245, 158, 11, 0.15) !important;
  color: #fcd34d !important;
}

[data-bs-theme="dark"] .alert-info {
  background-color: rgba(14, 165, 233, 0.15) !important;
  color: #7dd3fc !important;
}

[data-bs-theme="dark"] .alert-primary {
  background-color: rgba(13, 110, 253, 0.18) !important;
  color: #93c5fd !important;
}

/* List groups */
[data-bs-theme="dark"] .list-group-item {
  background-color: var(--dms-card-bg) !important;
  border-color: var(--dms-border-color) !important;
  color: var(--dms-text-primary) !important;
}

[data-bs-theme="dark"] .list-group-item-action:hover,
[data-bs-theme="dark"] .list-group-item-action:focus,
[data-bs-theme="dark"] .list-group-item.active {
  background-color: rgba(255, 255, 255, 0.08) !important;
  color: var(--dms-text-primary) !important;
}

/* Bootstrap light utilities — neutralize in dark mode */
[data-bs-theme="dark"] .text-dark {
  color: var(--dms-text-primary) !important;
}

[data-bs-theme="dark"] .bg-white {
  background-color: var(--dms-card-bg) !important;
}

[data-bs-theme="dark"] .bg-light,
[data-bs-theme="dark"] .bg-light-subtle,
[data-bs-theme="dark"] .bg-body-tertiary,
[data-bs-theme="dark"] .bg-body-secondary {
  background-color: rgba(255, 255, 255, 0.05) !important;
}

[data-bs-theme="dark"] .badge.bg-light,
[data-bs-theme="dark"] .badge.bg-light-subtle {
  background-color: rgba(255, 255, 255, 0.08) !important;
  color: var(--dms-text-primary) !important;
  border-color: var(--dms-border-color) !important;
}

[data-bs-theme="dark"] .border,
[data-bs-theme="dark"] .border-top,
[data-bs-theme="dark"] .border-bottom,
[data-bs-theme="dark"] .border-start,
[data-bs-theme="dark"] .border-end {
  border-color: var(--dms-border-color) !important;
}

[data-bs-theme="dark"] .text-body,
[data-bs-theme="dark"] .text-body-emphasis {
  color: var(--dms-text-primary) !important;
}

[data-bs-theme="dark"] .text-muted,
[data-bs-theme="dark"] .text-body-secondary {
  color: var(--dms-text-muted) !important;
}

[data-bs-theme="dark"] .form-control-plaintext {
  color: var(--dms-text-primary) !important;
}

[data-bs-theme="dark"] .form-check-input {
  background-color: var(--dms-input-bg) !important;
  border-color: var(--dms-border-color) !important;
}

[data-bs-theme="dark"] .input-group-text {
  background-color: rgba(255, 255, 255, 0.05) !important;
  border-color: var(--dms-border-color) !important;
  color: var(--dms-text-muted) !important;
}

[data-bs-theme="dark"] .accordion-item {
  background-color: var(--dms-card-bg) !important;
  border-color: var(--dms-border-color) !important;
  color: var(--dms-text-primary) !important;
}

[data-bs-theme="dark"] .accordion-button {
  background-color: var(--dms-card-bg) !important;
  color: var(--dms-text-primary) !important;
}

[data-bs-theme="dark"] .accordion-button:not(.collapsed) {
  background-color: rgba(255, 255, 255, 0.05) !important;
  color: var(--dms-text-primary) !important;
  box-shadow: none !important;
}

[data-bs-theme="dark"] .accordion-button::after {
  filter: invert(1) grayscale(100%);
}

[data-bs-theme="dark"] hr {
  border-color: var(--dms-border-color) !important;
  opacity: 1;
}

/* Progress / empty states */
[data-bs-theme="dark"] .progress {
  background-color: rgba(255, 255, 255, 0.08) !important;
}

/* Command palette */
[data-bs-theme="dark"] .command-palette-modal .modal-content {
  background-color: var(--dms-card-bg) !important;
  color: var(--dms-text-primary) !important;
}

[data-bs-theme="dark"] .command-palette-modal .command-item:hover,
[data-bs-theme="dark"] .command-palette-modal .command-item:focus {
  background-color: rgba(255, 255, 255, 0.08) !important;
}

/* Select2 (bootstrap-5 theme) */
[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-selection {
  background-color: var(--dms-input-bg) !important;
  border-color: var(--dms-border-color) !important;
  color: var(--dms-text-primary) !important;
}

[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-selection--single .select2-selection__rendered {
  color: var(--dms-text-primary) !important;
}

[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-dropdown {
  background-color: var(--dms-card-bg) !important;
  border-color: var(--dms-border-color) !important;
  color: var(--dms-text-primary) !important;
}

[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-results__option {
  color: var(--dms-text-primary) !important;
}

[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-results__option--highlighted,
[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-results__option--selected {
  background-color: rgba(255, 255, 255, 0.1) !important;
  color: var(--dms-text-primary) !important;
}

[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-search__field {
  background-color: var(--dms-input-bg) !important;
  border-color: var(--dms-border-color) !important;
  color: var(--dms-text-primary) !important;
}

[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__choice {
  background-color: rgba(255, 255, 255, 0.08) !important;
  border-color: var(--dms-border-color) !important;
  color: var(--dms-text-primary) !important;
}

/* Flatpickr */
[data-bs-theme="dark"] .flatpickr-calendar {
  background: var(--dms-card-bg) !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45) !important;
  border-color: var(--dms-border-color) !important;
  color: var(--dms-text-primary) !important;
}

[data-bs-theme="dark"] .flatpickr-months,
[data-bs-theme="dark"] .flatpickr-weekdays,
[data-bs-theme="dark"] .flatpickr-days {
  background: var(--dms-card-bg) !important;
}

[data-bs-theme="dark"] .flatpickr-months .flatpickr-month,
[data-bs-theme="dark"] .flatpickr-current-month,
[data-bs-theme="dark"] .flatpickr-weekday,
[data-bs-theme="dark"] .flatpickr-day {
  color: var(--dms-text-primary) !important;
  fill: var(--dms-text-primary) !important;
}

[data-bs-theme="dark"] .flatpickr-day:hover,
[data-bs-theme="dark"] .flatpickr-day:focus {
  background: rgba(255, 255, 255, 0.1) !important;
  border-color: transparent !important;
}

[data-bs-theme="dark"] .flatpickr-day.selected,
[data-bs-theme="dark"] .flatpickr-day.startRange,
[data-bs-theme="dark"] .flatpickr-day.endRange {
  background: var(--dms-primary) !important;
  border-color: var(--dms-primary) !important;
  color: #fff !important;
}

[data-bs-theme="dark"] .flatpickr-day.flatpickr-disabled,
[data-bs-theme="dark"] .flatpickr-day.prevMonthDay,
[data-bs-theme="dark"] .flatpickr-day.nextMonthDay {
  color: var(--dms-text-muted) !important;
}

[data-bs-theme="dark"] .flatpickr-time input,
[data-bs-theme="dark"] .flatpickr-time .flatpickr-time-separator,
[data-bs-theme="dark"] .flatpickr-time .flatpickr-am-pm {
  color: var(--dms-text-primary) !important;
  background: var(--dms-card-bg) !important;
}

/* SweetAlert2 */
[data-bs-theme="dark"] .swal2-popup {
  background: var(--dms-card-bg) !important;
  color: var(--dms-text-primary) !important;
}

[data-bs-theme="dark"] .swal2-title,
[data-bs-theme="dark"] .swal2-html-container,
[data-bs-theme="dark"] .swal2-content {
  color: var(--dms-text-primary) !important;
}

[data-bs-theme="dark"] .swal2-input,
[data-bs-theme="dark"] .swal2-textarea,
[data-bs-theme="dark"] .swal2-select {
  background-color: var(--dms-input-bg) !important;
  border-color: var(--dms-border-color) !important;
  color: var(--dms-text-primary) !important;
}

/* Simplebar / scrollbars */
[data-bs-theme="dark"] .simplebar-scrollbar::before {
  background-color: rgba(248, 250, 252, 0.35) !important;
}

/* Auth / guest pages — keep readable cards in dark */
[data-bs-theme="dark"] .auth-card-wrapper {
  background: rgba(30, 41, 59, 0.92) !important;
  border-color: rgba(255, 255, 255, 0.12) !important;
  color: var(--dms-text-primary) !important;
}

