:root {
	/* User Palette */
	--primary-color: #7c3aed;
	/* Violet */
	--secondary-color: #ec4899;
	/* Pink */
	--accent-color: #fbbf24;
	/* Yellow */
	--background-color: #0f172a;
	/* Dark navy */
	--text-color: #f8fafc;
	/* Off-white */

	--card-bg: rgba(30, 41, 59, 0.7);
	/* Slate-800 with opacity */
	--navbar-bg: rgba(15, 23, 42, 0.8);

	--bs-primary: var(--primary-color);
	--bs-body-bg: var(--background-color);
	--bs-body-color: var(--text-color);
	--bs-font-sans-serif: 'Nunito', system-ui, -apple-system, sans-serif;

	--auth-bg-color: var(--background-color);
}

body {
	font-family: var(--bs-font-sans-serif);
	background-color: var(--background-color);
	background-image: radial-gradient(circle at 50% 0%, #1e293b 0%, #0f172a 100%);
	min-height: 100vh;
	color: var(--text-color);
	margin: 0;
	padding-top: 20px;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-weight: 700;
	color: #e2e8f0;
	/* Light slate for headings */
}

/* Navbar */
.navbar {
	background-color: var(--navbar-bg) !important;
	backdrop-filter: blur(10px);
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
	box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
	border-radius: 12px;
	margin-bottom: 2rem;
}

.navbar-brand {
	font-weight: 800;
	color: var(--text-color) !important;
	letter-spacing: 0.5px;
}

.nav-link {
	font-weight: 600;
	color: #94a3b8 !important;
	/* Slate-400 */
	transition: color 0.2s;
}

.nav-link:hover {
	color: var(--accent-color) !important;
}

/* Cards */
.card {
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 16px;
	background-color: var(--card-bg);
	box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.3), 0 4px 6px -2px rgba(0, 0, 0, 0.15);
	backdrop-filter: blur(10px);
	transition: transform 0.2s ease-in-out, border-color 0.2s;
	color: var(--text-color);
}

.card:hover {
	transform: translateY(-2px);
	border-color: rgba(255, 255, 255, 0.2);
}

.card-header {
	background-color: rgba(0, 0, 0, 0.2);
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
	font-weight: 700;
	border-radius: 16px 16px 0 0 !important;
	color: var(--text-color);
}

/* Buttons */
.btn {
	border-radius: 50px;
	font-weight: 600;
	padding: 0.5rem 1.5rem;
	transition: all 0.2s;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
	border: none;
}

.btn-primary {
	background: linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);
	color: white;
}

.btn-primary:hover {
	background: linear-gradient(135deg, #6d28d9 0%, #db2777 100%);
	/* Slightly darker gradient */
	color: white;
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(236, 72, 153, 0.4);
	/* Pink glow */
}

.btn-outline-secondary {
	border: 1px solid #475569;
	background: transparent;
	color: #cbd5e1;
}

.btn-outline-secondary:hover {
	background: #1e293b;
	color: white;
	border-color: #cbd5e1;
}

/* Forms */
.form-control,
.form-select,
textarea {
	border-radius: 12px;
	border: 1px solid #334155;
	/* Slate-700 */
	background-color: rgba(15, 23, 42, 0.6) !important;
	/* Extremely dark bg */
	color: var(--text-color) !important;
	padding: 0.75rem 1rem;
	box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2);
}

.form-control:focus,
.form-select:focus {
	border-color: var(--primary-color);
	box-shadow: 0 0 0 2px rgba(124, 58, 237, 0.3);
	background-color: rgba(15, 23, 42, 0.8) !important;
}

.form-control::placeholder {
	color: #64748b;
}

/* Tables */
.table {
	color: var(--text-color);
	background-color: transparent;
	border-collapse: separate;
	border-spacing: 0 0.5rem;
}

.table thead th {
	border: none;
	background-color: transparent;
	font-weight: 700;
	color: #94a3b8;
	/* Slate-400 */
	text-transform: uppercase;
	font-size: 0.75rem;
	letter-spacing: 0.05em;
}

.table tbody tr {
	background-color: rgba(30, 41, 59, 0.6);
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
	transition: background-color 0.2s;
	border-radius: 12px;
}

.table tbody tr td:first-child {
	border-top-left-radius: 12px;
	border-bottom-left-radius: 12px;
}

.table tbody tr td:last-child {
	border-top-right-radius: 12px;
	border-bottom-right-radius: 12px;
}

.table tbody tr:hover {
	background-color: rgba(30, 41, 59, 0.9);
}

.table td {
	border: none;
	vertical-align: middle;
	padding: 1rem;
	color: #e2e8f0;
}

/* Auth Pages Specific */
.auth-page {
	background-color: var(--background-color);
	/* Use the requested image */
	background-image: url('/static/img/transamerica_jp_style.png');
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	min-height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	/* For Pseudo-element overlay */
}

/* Semi-transparent overlay to ensure text readability on image if needed, though cards are opaque */
.auth-page::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(15, 23, 42, 0.4);
	/* Dark overlay */
	z-index: 1;
}

.auth-page .container {
	z-index: 2;
	/* Ensure content is above overlay */
	position: relative;
}

/* Ensure auth cards are distinct */
.auth-page .card {
	background-color: rgba(30, 41, 59, 0.9);
	border: 1px solid rgba(255, 255, 255, 0.05);
}

.container {
	max-width: 1140px;
	margin: auto;
}

/* Bootstrap Utility Overrides for Dark Mode */
.bg-light {
	background-color: rgba(255, 255, 255, 0.05) !important;
	color: var(--text-color) !important;
}

.text-muted {
	color: #94a3b8 !important;
	/* Slate-400 */
}

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

/* Custom badges */
.badge {
	border-radius: 6px;
	padding: 0.5em 0.8em;
	font-weight: 600;
}