/* Global site overrides layered on top of SB Admin 2 */

body {
	background-color: var(--charter-bg);
	color: var(--charter-text);
}

.bg-gradient-primary { background-image: linear-gradient(180deg, var(--charter-primary) 10%, var(--charter-secondary) 100%) !important; background-size: cover; }

.btn-primary {
	background-color: var(--charter-primary);
	border-color: var(--charter-primary);
	transition: all var(--transition-fast);
}

.btn-primary:hover {
	filter: brightness(0.9);
	box-shadow: var(--shadow-md);
}

.card { box-shadow: var(--shadow-sm); transition: box-shadow var(--transition-base); }
.card:hover { box-shadow: var(--shadow-md); }

/* Accessibility */
.skip-link { position: absolute; top: -40px; left: 0; background: var(--charter-primary); color: #fff; padding: var(--spacing-sm) var(--spacing-md); z-index: 100; text-decoration: none; }
.skip-link:focus { top: 0; }

/* Utility */
.shadow-charter { box-shadow: var(--shadow-lg) !important; }

/* Contrast helpers and focus-visible across modules */
.high-contrast { color: #000 !important; background: #fff !important; }
.low-contrast { color: #111 !important; background: #f8f9fc !important; }

*:focus-visible { outline: 3px solid var(--charter-accent); outline-offset: 2px; }

/* Ensure links and buttons meet contrast */
a, .btn-link { color: var(--charter-primary); }
a:hover, .btn-link:hover { color: #c35619; }

/* Improve contrast in light navbar contexts */
.navbar-light .navbar-nav .nav-link,
.navbar-light .navbar-brand,
.navbar-light .nav-link {
	color: rgba(0, 0, 0, 0.8) !important;
}
.navbar-light .navbar-nav .nav-link:hover,
.navbar-light .navbar-brand:hover,
.navbar-light .nav-link:hover {
	color: rgba(0, 0, 0, 0.95) !important;
}

/* Sidebar and topbar tweaks for brand */
.sidebar .nav-item.active .nav-link, .topbar .nav-link:focus-visible { outline: 2px solid var(--charter-accent); }

/* Toggle Switch Styles */
.form-switch {
	position: relative;
	padding-left: 0;
}

.form-switch .form-check-input {
	width: 3rem;
	height: 1.5rem;
	margin-left: 0;
	margin-top: 0;
	background-color: #6c757d;
	background-image: none;
	border: none;
	border-radius: 1.5rem;
	cursor: pointer;
	position: relative;
	transition: background-color 0.15s ease-in-out;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}

.form-switch .form-check-input:before {
	content: '';
	position: absolute;
	top: 2px;
	left: 2px;
	width: 1.25rem;
	height: 1.25rem;
	background-color: white;
	border-radius: 50%;
	transition: transform 0.15s ease-in-out;
}

.form-switch .form-check-input:checked {
	background-color: var(--charter-primary, #4e73df);
}

.form-switch .form-check-input:checked:before {
	transform: translateX(1.5rem);
}

.form-switch .form-check-input:focus {
	outline: 2px solid var(--charter-accent, #f6993f);
	outline-offset: 2px;
	box-shadow: none;
}

.form-switch .form-check-input:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.form-switch .form-check-label {
	margin-left: 0.5rem;
	cursor: pointer;
}

/* Table responsive wrapper - ensure horizontal scroll */
.table-responsive {
	overflow-x: auto !important;
	overflow-y: auto;
}

/* Enhanced scrollbar visibility for tables */
.table-responsive::-webkit-scrollbar {
	height: 12px;
	width: 8px;
}

.table-responsive::-webkit-scrollbar-track {
	background: #f1f1f1;
	border-radius: 6px;
}

.table-responsive::-webkit-scrollbar-thumb {
	background: #888;
	border-radius: 6px;
}

.table-responsive::-webkit-scrollbar-thumb:hover {
	background: #555;
}

/* For Firefox */
.table-responsive {
	scrollbar-width: auto;
	scrollbar-color: #888 #f1f1f1;
}

