﻿/* Light Theme (Default) */
:root, .theme-light {
	--bg-primary: #ffffff;
	--bg-secondary: #f8f9fa;
	--text-primary: #212529;
	--text-secondary: #6c757d;
	--border-color: #dee2e6;
	--sidebar-bg: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
	--navbar-brand-color: #ffffff;
	--navbar-text-color: #ffffff;
	/* ADD THESE BOOTSTRAP VARIABLES */
	--bs-body-bg: #ffffff;
	--bs-modal-bg: #ffffff;
	--card-bg: #ffffff;
	--modal-bg: #ffffff;
	--modal-header-bg: #f8f9fa;
	--input-bg: #ffffff;
	--input-border: #dee2e6;
	--input-text: #495057;
}

/* Dark Theme */
.theme-dark {
	--bg-primary: #212529;
	--bg-secondary: #343a40;
	--text-primary: #ffffff;
	--text-secondary: #adb5bd;
	--border-color: #495057;
	--sidebar-bg: linear-gradient(180deg, #1a1d29 0%, #2d1b3d 70%);
	--navbar-brand-color: #ffffff;
	--navbar-text-color: #ffffff;
	/* ADD THESE BOOTSTRAP VARIABLES */
	--bs-body-bg: #1a202c;
	--bs-modal-bg: #1a202c;
	--card-bg: #1a202c;
	--modal-bg: #1a202c;
	--modal-header-bg: #2d3748;
	--input-bg: #2d3748;
	--input-border: #4a5568;
	--input-text: #f7fafc;
}

/* Apply theme variables */
body {
	background-color: var(--bg-primary);
	color: var(--text-primary);
	transition: background-color 0.2s, color 0.2s;
}

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

/* Navbar/Top row styling */
.top-row, .navbar {
	background: var(--sidebar-bg) !important;
	color: var(--navbar-text-color) !important;
}

.navbar-brand {
	color: var(--navbar-brand-color) !important;
}

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

.navbar-toggler-icon {
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") !important;
}

.sidebar {
	background: var(--sidebar-bg) !important;
}

.form-control {
	background-color: var(--bg-primary);
	border-color: var(--border-color);
	color: var(--text-primary);
}

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

/* Themed Text Classes */
.themed-text-primary {
	color: var(--text-primary) !important;
}

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

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

/* Themed Card Classes */
.themed-card {
	background-color: var(--card-bg);
	border: 1px solid var(--border-color);
	border-radius: 8px;
	transition: all 0.2s ease;
}

.themed-card-header {
	background-color: var(--modal-header-bg);
	border-bottom: 1px solid var(--border-color);
	padding: 1rem;
}

.themed-card-body {
	background-color: var(--card-bg);
	padding: 1rem;
	color: var(--text-primary);
}

.themed-form-section {
	background-color: var(--bg-secondary);
	border-color: var(--border-color) !important;
}

/* Themed Table Classes */
.themed-table {
	background-color: var(--card-bg);
	color: var(--text-primary);
}

.themed-table thead {
	background-color: var(--modal-header-bg);
}

.themed-table thead th {
	background-color: var(--modal-header-bg);
	color: var(--text-primary);
	border-color: var(--border-color);
}

.themed-table tbody {
	background-color: var(--card-bg);
}

.themed-table tbody tr {
	border-color: var(--border-color);
	color: var(--text-primary);
	background-color: var(--card-bg);
}

.themed-table tbody tr:hover {
	background-color: var(--bg-secondary);
}

.themed-table tbody td,
.themed-table td {
	border-color: var(--border-color);
	color: var(--text-primary);
	background-color: transparent;
}

/* Override Bootstrap table defaults in dark mode */
.theme-dark .table {
	color: var(--text-primary);
	background-color: var(--card-bg);
	border-color: var(--border-color);
}

.theme-dark .table thead th {
	background-color: var(--modal-header-bg);
	color: var(--text-primary);
	border-color: var(--border-color);
}

.theme-dark .table tbody tr {
	background-color: var(--card-bg);
	color: var(--text-primary);
	border-color: var(--border-color);
}

.theme-dark .table tbody td {
	color: var(--text-primary);
	border-color: var(--border-color);
	background-color: transparent;
}

.theme-dark .table-hover tbody tr:hover {
	background-color: var(--bg-secondary);
	color: var(--text-primary);
}

.theme-dark .table-striped tbody tr:nth-of-type(odd) {
	background-color: rgba(255, 255, 255, 0.02);
}

.theme-dark .table-striped tbody tr:nth-of-type(even) {
	background-color: var(--card-bg);
}

/* Bootstrap btn-close styling for both themes */
.btn-close {
	width: 1em;
	height: 1em;
	padding: 0.25em;
	color: var(--text-primary);
	background: transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='m.235.867 4.805 4.805-4.805 4.805.708.708 4.805-4.805 4.805 4.805.708-.708-4.805-4.805 4.805-4.805-.708-.708-4.805 4.805-4.805-4.805z'/%3e%3c/svg%3e") center/1em auto no-repeat;
	border: 0;
	border-radius: 0.375rem;
	opacity: 0.8;
	transition: opacity 0.15s ease-in-out;
}

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

	.btn-close:focus {
		outline: 0;
		box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
		opacity: 1;
	}

	.btn-close:disabled {
		opacity: 0.25;
		pointer-events: none;
	}

/* Dark theme btn-close */
.theme-dark .btn-close {
	background: transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='m.235.867 4.805 4.805-4.805 4.805.708.708 4.805-4.805 4.805 4.805.708-.708-4.805-4.805 4.805-4.805-.708-.708-4.805 4.805-4.805-4.805z'/%3e%3c/svg%3e") center/1em auto no-repeat;
}

/* Override custom close button classes */
.tabbed-modal-close,
.themed-btn-close {
	width: 1em !important;
	height: 1em !important;
	padding: 0.25em !important;
	color: var(--text-primary) !important;
	background: transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='m.235.867 4.805 4.805-4.805 4.805.708.708 4.805-4.805 4.805 4.805.708-.708-4.805-4.805 4.805-4.805-.708-.708-4.805 4.805-4.805-4.805z'/%3e%3c/svg%3e") center/1em auto no-repeat !important;
	border: 0 !important;
	border-radius: 0.375rem !important;
	opacity: 0.8 !important;
	transition: opacity 0.15s ease-in-out !important;
	filter: none !important;
}

	.tabbed-modal-close:hover,
	.themed-btn-close:hover {
		opacity: 1 !important;
	}

	.tabbed-modal-close:focus,
	.themed-btn-close:focus {
		outline: 0 !important;
		box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25) !important;
		opacity: 1 !important;
	}

/* Dark theme overrides for custom classes */
.theme-dark .tabbed-modal-close,
.theme-dark .themed-btn-close {
	background: transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='m.235.867 4.805 4.805-4.805 4.805.708.708 4.805-4.805 4.805 4.805.708-.708-4.805-4.805 4.805-4.805-.708-.708-4.805 4.805-4.805-4.805z'/%3e%3c/svg%3e") center/1em auto no-repeat !important;
}

/* ==============================
   Global Dark Mode Bootstrap Overrides
   Auto-fixes dark mode for ALL pages
   ============================== */

/* Modal */
.theme-dark .modal-content {
	background-color: var(--modal-bg);
	border-color: var(--border-color);
	color: var(--text-primary);
}

.theme-dark .modal-header {
	background-color: var(--modal-header-bg);
	border-color: var(--border-color);
	color: var(--text-primary);
}

.theme-dark .modal-body {
	background-color: var(--modal-bg);
	color: var(--text-primary);
}

.theme-dark .modal-footer {
	background-color: var(--modal-bg);
	border-color: var(--border-color);
}

/* Card header/footer */
.theme-dark .card-header {
	background-color: var(--modal-header-bg);
	border-color: var(--border-color);
	color: var(--text-primary);
}

.theme-dark .card-footer {
	background-color: var(--card-bg);
	border-color: var(--border-color);
	color: var(--text-primary);
}

.theme-dark .card-body {
	color: var(--text-primary);
}

/* table-light override in dark mode */
.theme-dark .table-light,
.theme-dark .table-light th,
.theme-dark .table-light td {
	background-color: var(--modal-header-bg) !important;
	color: var(--text-primary) !important;
	border-color: var(--border-color) !important;
}

/* Form controls */
.theme-dark .form-select {
	background-color: var(--input-bg);
	border-color: var(--input-border);
	color: var(--input-text);
}

.theme-dark .form-control:focus,
.theme-dark .form-select:focus {
	background-color: var(--input-bg);
	border-color: #6366f1;
	color: var(--input-text);
	box-shadow: 0 0 0 0.2rem rgba(99, 102, 241, 0.25);
}

.theme-dark .form-control::placeholder {
	color: var(--text-secondary);
	opacity: 0.7;
}

.theme-dark .input-group-text {
	background-color: var(--bg-secondary);
	border-color: var(--input-border);
	color: var(--text-primary);
}

.theme-dark .form-check-label {
	color: var(--text-primary);
}

.theme-dark .form-label {
	color: var(--text-primary);
}

/* Override text-dark in dark mode (except on badges where contrast matters) */
.theme-dark .text-dark:not(.badge .text-dark) {
	color: var(--text-primary) !important;
}

/* Keep dark text on light-colored badges */
.theme-dark .badge.bg-warning {
	color: #212529 !important;
}

/* Background utilities */
.theme-dark .bg-white:not(.badge) {
	background-color: var(--card-bg) !important;
}

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

/* Shadow adjustment for dark mode */
.theme-dark .shadow-sm {
	box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.4) !important;
}

.theme-dark .shadow {
	box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.4) !important;
}

/* List group */
.theme-dark .list-group-item {
	background-color: var(--card-bg);
	border-color: var(--border-color);
	color: var(--text-primary);
}

.theme-dark .list-group-item:hover {
	background-color: var(--bg-secondary);
}

/* Dropdown */
.theme-dark .dropdown-menu {
	background-color: var(--card-bg);
	border-color: var(--border-color);
}

.theme-dark .dropdown-item {
	color: var(--text-primary);
}

.theme-dark .dropdown-item:hover,
.theme-dark .dropdown-item:focus {
	background-color: var(--bg-secondary);
	color: var(--text-primary);
}

.theme-dark .dropdown-divider {
	border-color: var(--border-color);
}

/* Alerts */
.theme-dark .alert-info {
	background-color: rgba(13, 202, 240, 0.15);
	border-color: rgba(13, 202, 240, 0.3);
	color: #6edff6;
}

.theme-dark .alert-warning {
	background-color: rgba(255, 193, 7, 0.15);
	border-color: rgba(255, 193, 7, 0.3);
	color: #ffda6a;
}

.theme-dark .alert-danger {
	background-color: rgba(220, 53, 69, 0.15);
	border-color: rgba(220, 53, 69, 0.3);
	color: #ea868f;
}

.theme-dark .alert-success {
	background-color: rgba(25, 135, 84, 0.15);
	border-color: rgba(25, 135, 84, 0.3);
	color: #75b798;
}

/* Pagination */
.theme-dark .page-link {
	background-color: var(--card-bg);
	border-color: var(--border-color);
	color: var(--text-primary);
}

.theme-dark .page-link:hover {
	background-color: var(--bg-secondary);
	border-color: var(--border-color);
}

.theme-dark .page-item.disabled .page-link {
	background-color: var(--bg-secondary);
	border-color: var(--border-color);
	color: var(--text-secondary);
}

/* Nav tabs/pills */
.theme-dark .nav-tabs {
	border-color: var(--border-color);
}

.theme-dark .nav-tabs .nav-link {
	color: var(--text-secondary);
}

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

.theme-dark .nav-tabs .nav-link:hover:not(.active) {
	border-color: var(--border-color);
	color: var(--text-primary);
}

/* Accordion */
.theme-dark .accordion-item {
	background-color: var(--card-bg);
	border-color: var(--border-color);
}

.theme-dark .accordion-button {
	background-color: var(--card-bg);
	color: var(--text-primary);
}

.theme-dark .accordion-button:not(.collapsed) {
	background-color: var(--bg-secondary);
	color: var(--text-primary);
}

.theme-dark .accordion-body {
	background-color: var(--card-bg);
	color: var(--text-primary);
}

/* Horizontal rules */
.theme-dark hr {
	border-color: var(--border-color);
	opacity: 0.5;
}

/* Progress bars */
.theme-dark .progress {
	background-color: var(--bg-secondary);
}

/* Tooltip-like elements */
.theme-dark .popover {
	background-color: var(--card-bg);
	border-color: var(--border-color);
}

.theme-dark .popover-body {
	color: var(--text-primary);
}

/* btn-link with text-dark */
.theme-dark .btn-link.text-dark,
.theme-dark .btn-link.text-decoration-none.text-dark {
	color: var(--text-primary) !important;
}

/* btn-outline variants text in dark mode */
.theme-dark .btn-outline-secondary {
	color: var(--text-secondary);
	border-color: var(--border-color);
}

.theme-dark .btn-outline-secondary:hover {
	background-color: var(--bg-secondary);
	color: var(--text-primary);
	border-color: var(--border-color);
}

/* Breadcrumbs */
.theme-dark .breadcrumb {
	background-color: transparent;
}

.theme-dark .breadcrumb-item + .breadcrumb-item::before {
	color: var(--text-secondary);
}

.theme-dark .breadcrumb-item a {
	color: #6ea8fe;
}

/* Tab content borders */
.theme-dark .tab-content {
	color: var(--text-primary);
}

/* bg-opacity helpers in dark mode */
.theme-dark .bg-primary.bg-opacity-10 {
	background-color: rgba(13, 110, 253, 0.15) !important;
}

.theme-dark .bg-success.bg-opacity-10 {
	background-color: rgba(25, 135, 84, 0.15) !important;
}

.theme-dark .bg-warning.bg-opacity-10 {
	background-color: rgba(255, 193, 7, 0.15) !important;
}

.theme-dark .bg-danger.bg-opacity-10 {
	background-color: rgba(220, 53, 69, 0.15) !important;
}

.theme-dark .bg-info.bg-opacity-10 {
	background-color: rgba(13, 202, 240, 0.15) !important;
}

.theme-dark .bg-secondary.bg-opacity-10 {
	background-color: rgba(108, 117, 125, 0.15) !important;
}

/* form-control-plaintext */
.theme-dark .form-control-plaintext {
	color: var(--text-primary);
}

/* Sticky table headers */
.theme-dark .sticky-top {
	background-color: var(--modal-header-bg);
}

/* Ensure text readability in dark mode for key elements */
.theme-dark label {
	color: var(--text-primary);
}

.theme-dark legend {
	color: var(--text-primary);
}

.theme-dark p {
	color: var(--text-primary);
}

.theme-dark h1, .theme-dark h2, .theme-dark h3,
.theme-dark h4, .theme-dark h5, .theme-dark h6 {
	color: var(--text-primary);
}

.theme-dark small:not(.badge small) {
	color: var(--text-secondary);
}

.theme-dark strong {
	color: var(--text-primary);
}

/* alert-light in dark mode */
.theme-dark .alert-light {
	background-color: var(--bg-secondary);
	border-color: var(--border-color);
	color: var(--text-primary);
}

/* form-text helper */
.theme-dark .form-text {
	color: var(--text-secondary) !important;
}

/* form-check-input */
.theme-dark .form-check-input {
	background-color: var(--input-bg);
	border-color: var(--input-border);
}

.theme-dark .form-check-input:checked {
	background-color: #0d6efd;
	border-color: #0d6efd;
}

/* Toast/notification containers */
.theme-dark .toast {
	background-color: var(--card-bg);
	border-color: var(--border-color);
	color: var(--text-primary);
}

/* Offcanvas */
.theme-dark .offcanvas {
	background-color: var(--card-bg);
	color: var(--text-primary);
}

.theme-dark .offcanvas-header {
	border-color: var(--border-color);
}

/* Print styles - always light */
@media print {
	.theme-dark .card,
	.theme-dark .modal-content,
	.theme-dark .table,
	.theme-dark body {
		background-color: #fff !important;
		color: #000 !important;
	}
}
