:root {
  --bg-body: #ffffff;
  --bg-card: #ffffff;
  --bg-input: #f8f9fa;
  --text-main: #1d2129;
  --text-title: #1a1d23;
  --text-secondary: #65676b;
  --border-color: #e5e5e5;
  --nav-bg: rgba(255, 255, 255, 0.95);
  --shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
  --dropdown-bg: #ffffff;
  --hover-bg: #f0f2f5;
  --primary-color: #1080a0;
}

.btn-primary {
    background: linear-gradient(180deg, #1080a0 0%, #175e77 100%) !important;
    border: none !important;
    color: #fff !important;
}

.btn-primary:hover, .btn-primary:focus, .btn-primary:active {
    background: linear-gradient(180deg, #175e77 0%, #1080a0 100%) !important;
    opacity: 0.9;
}

[data-theme="dark"] {
  --bg-body: #141414;
  --bg-card: #141414;
  --bg-input: #1f1f1f;
  --text-main: #e4e6eb;
  --text-title: #f5f5f5;
  --text-secondary: #b0b3b8;
  --border-color: #262626;
  --nav-bg: rgba(20, 20, 20, 0.95);
  --shadow-sm: 0 4px 6px -1px rgba(0, 0, 0, 0.8);
  --dropdown-bg: #141414;
  --hover-bg: #262626;
}

body {
  background-color: var(--bg-body) !important;
  color: var(--text-main) !important;
  transition: background-color 0.3s ease, color 0.3s ease;
}

/* Background Utilities Overrides */
.bg-white,
.bg-transparent-xl {
  background-color: var(--bg-card) !important;
}

.bg-light,
.bg-soft-secondary,
.bg-soft-primary {
  background-color: var(--bg-input) !important;
  color: var(--text-main) !important;
}

/* Text Utilities Overrides */
.text-dark,
.text-body,
.text-black {
  color: var(--text-main) !important;
}

.text-muted,
.text-secondary {
  color: var(--text-secondary) !important;
}

h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
  color: var(--text-title) !important;
}

/* Navbar & Menu */
.hk-navbar,
.hk-menu,
.navbar {
  background-color: var(--nav-bg) !important;
  border-color: var(--border-color) !important;
  color: var(--text-main) !important;
}

.navbar-light .navbar-nav .nav-link {
  color: var(--text-main) !important;
}

.navbar-light .navbar-brand {
  color: var(--text-title) !important;
}

/* Cards & Containers */
.card,
.card-body {
  background-color: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  color: var(--text-main) !important;
}

/* Inputs & Forms */
.form-control,
.form-select,
.input-group-text {
  background-color: var(--bg-input) !important;
  border-color: var(--border-color) !important;
  color: var(--text-main) !important;
}

.form-control::placeholder {
  color: var(--text-secondary) !important;
}

.form-control:focus {
  background-color: var(--bg-input) !important;
  color: var(--text-main) !important;
  border-color: var(--primary-color) !important;
  box-shadow: none; /* Simplify focus state for dark mode */
}

/* Dropdowns */
.dropdown-menu {
  background-color: var(--dropdown-bg) !important;
  border-color: var(--border-color) !important;
}

.dropdown-item {
  color: var(--text-main) !important;
}

.dropdown-item:hover,
.dropdown-item:focus {
  background-color: var(--hover-bg) !important;
  color: var(--text-main) !important;
}

.dropdown-header {
  color: var(--text-secondary) !important;
}

/* Modals */
.modal-content {
  background-color: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

.modal-header,
.modal-footer {
  border-color: var(--border-color) !important;
}

.btn-close {
  filter: invert(1) grayscale(100%) brightness(200%); /* Make close button white in dark mode if needed */
}

[data-theme="light"] .btn-close {
  filter: none;
}

/* Buttons */
.btn-light,
.btn-white {
  background-color: var(--bg-input) !important;
  border-color: var(--border-color) !important;
  color: var(--text-main) !important;
}

.btn-light:hover {
  background-color: var(--hover-bg) !important;
}

/* Specific Component Fixes */
.theme-toggle-icon,
.theme-icon,
.theme-icon-mobile {
  transition: transform 0.3s ease;
}

/* Tables */
.table {
  color: var(--text-main) !important;
  border-color: var(--border-color) !important;
}

.table > :not(caption) > * > * {
  background-color: transparent !important;
  color: var(--text-main) !important;
  border-bottom-color: var(--border-color) !important;
}

/* Alerts */
.alert {
  background-color: var(--bg-input) !important;
  border-color: var(--border-color) !important;
  color: var(--text-main) !important;
}

/* Navigation & Button Icons */
.hk-navbar .feather-icon,
.hk-navbar i,
.hk-menu .feather-icon,
.hk-menu i,
.nav-link .feather-icon,
.nav-link i {
  color: var(--text-main);
  stroke: var(--text-main);
}

.nav-link.active .feather-icon,
.nav-link.active i {
  color: #fff !important;
  stroke: #fff !important;
}

.btn-icon .feather-icon,
.btn-icon i {
  color: var(--text-main);
  stroke: var(--text-main);
}

.alert-primary,
.alert-secondary,
.alert-success,
.alert-danger,
.alert-warning,
.alert-info,
.alert-light,
.alert-dark {
  background-color: var(--bg-input) !important;
  border-color: var(--border-color) !important;
  color: var(--text-main) !important;
}

.alert * {
  color: var(--text-main) !important;
}

/* Force text color in card bodies for dynamic content */
.card-body,
.card-body p,
.card-body span,
.card-body div,
.card-body li {
  color: var(--text-main);
}

/* Breadcrumb */
.breadcrumb-item a {
  color: var(--text-secondary) !important;
}
.breadcrumb-item.active {
  color: var(--text-main) !important;
}

/* Borders */
.border,
.border-top,
.border-bottom,
.border-start,
.border-end {
  border-color: var(--border-color) !important;
}
