:root {
	/* Primary Colors */
	--color-primary: #703D57;        /* Deep burgundy - buttons, links, accents */
	--color-primary-light: #957186;  /* Muted mauve - secondary accents */
	--color-primary-lighter: #D9B8C4; /* Light rose - backgrounds, borders */
	
	/* Dark Colors */
	--color-dark: #402A2C;           /* Dark brown - text, dark elements */
	--color-darker: #241715;         /* Almost black - headings, strong text */
	
	/* Semantic Colors */
	--color-success: #27AE60;
	--color-warning: #F39C12;
	--color-danger: #E74C3C;
	--color-info: #3498DB;
	--color-light: #F5F5F5;
	--color-lighter: #FFFFFF;
	
	/* Typography */
	--font-family-base: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	--font-family-heading: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	
	--font-size-base: 1rem;
	--font-size-sm: 0.875rem;
	--font-size-lg: 1.125rem;
	--font-size-xl: 1.25rem;
	--font-size-2xl: 1.5rem;
	--font-size-3xl: 1.875rem;
	
	--font-weight-normal: 400;
	--font-weight-medium: 600;
	--font-weight-bold: 700;
	--font-weight-extra-bold: 800;
	
	--line-height-tight: 1.4;
	--line-height-normal: 1.6;
	--line-height-relaxed: 1.8;
	
	/* Spacing */
	--spacing-xs: 0.25rem;
	--spacing-sm: 0.5rem;
	--spacing-md: 1rem;
	--spacing-lg: 1.5rem;
	--spacing-xl: 2rem;
	--spacing-2xl: 3rem;
	
	/* Border Radius */
	--radius-sm: 0.25rem;
	--radius-md: 0.375rem;
	--radius-lg: 0.5rem;
	--radius-xl: 1rem;
	
	/* Shadows */
	--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
	--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
	--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
	--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
	
	/* Transitions */
	--transition-fast: 150ms ease-in-out;
	--transition-base: 250ms ease-in-out;
	--transition-slow: 350ms ease-in-out;
}

/* Override Bootstrap defaults with design system */
html {
	font-family: var(--font-family-base);
	font-size: 16px;
}

body {
	font-family: var(--font-family-base);
	font-size: var(--font-size-base);
	font-weight: var(--font-weight-normal);
	line-height: var(--line-height-normal);
	color: var(--color-dark);
	background-color: var(--color-lighter);
}

/* Headings */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
	font-family: var(--font-family-heading);
	font-weight: var(--font-weight-extra-bold);
	line-height: var(--line-height-tight);
	color: var(--color-darker);
	margin-bottom: var(--spacing-md);
	letter-spacing: -0.5px;
}

h1, .h1 {
	font-size: var(--font-size-3xl);
}

h2, .h2 {
	font-size: var(--font-size-2xl);
}

h3, .h3 {
	font-size: var(--font-size-xl);
}

h4, .h4,
h5, .h5,
h6, .h6 {
	font-size: var(--font-size-lg);
}

/* Paragraph */
p {
	margin-bottom: var(--spacing-md);
	line-height: var(--line-height-normal);
	color: var(--color-dark);
}

.lead {
	font-size: var(--font-size-lg);
	font-weight: var(--font-weight-normal);
	color: var(--color-primary-light);
	line-height: var(--line-height-relaxed);
}

/* Links */
a {
	color: var(--color-primary);
	text-decoration: none;
	transition: color var(--transition-fast);
}

a:hover {
	color: var(--color-primary-light);
	text-decoration: underline;
}

/* Buttons */
.btn {
	font-weight: var(--font-weight-bold);
	border-radius: var(--radius-md);
	transition: all var(--transition-base);
	border: none;
	padding: var(--spacing-md) var(--spacing-lg);
}

.btn-primary {
	background-color: var(--color-primary);
	border-color: var(--color-primary);
	color: var(--color-lighter);
}

.btn-primary:hover {
	background-color: var(--color-darker);
	border-color: var(--color-darker);
	color: var(--color-lighter);
	transform: translateY(-2px);
	box-shadow: var(--shadow-lg);
}

.btn-primary:active {
	transform: translateY(0);
}

.btn-lg {
	padding: var(--spacing-lg) var(--spacing-xl);
	font-size: var(--font-size-lg);
}

/* Form Controls */
.form-label {
	font-weight: var(--font-weight-medium);
	color: var(--color-dark);
	margin-bottom: var(--spacing-sm);
	font-size: var(--font-size-sm);
	text-transform: capitalize;
}

.form-control,
.form-select {
	border: 1px solid #E0E0E0;
	border-radius: var(--radius-md);
	font-size: var(--font-size-base);
	color: var(--color-dark);
	transition: all var(--transition-fast);
}

.form-control:focus,
.form-select:focus {
	border-color: var(--color-primary);
	box-shadow: 0 0 0 0.2rem rgba(112, 61, 87, 0.1);
	color: var(--color-dark);
}

.form-control-lg {
	padding: var(--spacing-md) var(--spacing-lg);
	font-size: var(--font-size-lg);
	min-height: 48px;
}

.form-check-input {
	border: 1.5px solid #D0D0D0;
	border-radius: var(--radius-sm);
	cursor: pointer;
	transition: all var(--transition-fast);
}

.form-check-input:checked {
	background-color: var(--color-primary);
	border-color: var(--color-primary);
}

.form-check-label {
	margin-bottom: 0;
	cursor: pointer;
	user-select: none;
}

/* Cards */
.card {
	border: 1px solid #E8E8E8;
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-sm);
	transition: all var(--transition-base);
}

.card:hover {
	box-shadow: var(--shadow-md);
}

.card-body {
	padding: var(--spacing-xl);
}

.card-header {
	background-color: var(--color-light);
	border-bottom: 1px solid #E8E8E8;
	padding: var(--spacing-lg);
	border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}

.card-title {
	color: var(--color-darker);
	font-weight: var(--font-weight-bold);
	margin-bottom: 0;
}

/* Alerts */
.alert {
	border-radius: var(--radius-md);
	font-weight: var(--font-weight-medium);
	border: none;
}

.alert-danger {
	background-color: #FADBD8;
	color: #78281F;
}

.alert-success {
	background-color: #D5F4E6;
	color: #0E6251;
}

.alert-warning {
	background-color: #FCF3CF;
	color: #856404;
}

.alert-info {
	background-color: #D1ECF1;
	color: #0C5460;
}

/* Text Utilities */
.text-muted {
	color: var(--color-primary-light) !important;
}

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

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

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

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

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

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

.text-small {
	font-size: var(--font-size-sm);
}

/* Background Utilities */
.bg-light {
	background-color: var(--color-light) !important;
}

.bg-lighter {
	background-color: #FAFAFA !important;
}

.bg-primary {
	background-color: var(--color-primary) !important;
	color: var(--color-lighter);
}

/* Navbar & Sidebar customizations */
.navbar-bg {
	background-color: var(--color-lighter);
	border-bottom: 1px solid #E8E8E8;
}

.sidebar {
	background-color: #FAFAFA;
	border-right: 1px solid #E8E8E8;
}

.sidebar-brand {
	color: var(--color-primary);
	font-weight: var(--font-weight-extra-bold);
	font-size: var(--font-size-xl);
	transition: color var(--transition-fast);
}

.sidebar-brand:hover {
	color: var(--color-primary-light);
}

.sidebar-link {
	color: var(--color-dark);
	font-weight: var(--font-weight-medium);
	transition: all var(--transition-fast);
	padding: var(--spacing-md) var(--spacing-lg);
}

.sidebar-link:hover,
.sidebar-link.active {
	color: var(--color-primary);
	background-color: #F0E8EB;
	border-left: 3px solid var(--color-primary);
	padding-left: calc(var(--spacing-lg) - 3px);
}

/* Badge customizations */
.badge {
	font-weight: var(--font-weight-bold);
	padding: var(--spacing-sm) var(--spacing-md);
	border-radius: var(--radius-sm);
	font-size: var(--font-size-sm);
}

.badge-primary {
	background-color: var(--color-primary);
	color: var(--color-lighter);
}

.badge-success {
	background-color: var(--color-success);
	color: var(--color-lighter);
}

.badge-danger {
	background-color: var(--color-danger);
	color: var(--color-lighter);
}

.badge-warning {
	background-color: var(--color-warning);
	color: var(--color-darker);
}

/* Focus styles for accessibility */
a:focus,
button:focus,
input:focus,
textarea:focus,
select:focus {
	outline: 2px solid var(--color-primary);
	outline-offset: 2px;
}

/* Utility classes */
.font-bold {
	font-weight: var(--font-weight-bold);
}

.font-extra-bold {
	font-weight: var(--font-weight-extra-bold);
}

.text-uppercase {
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

/* Responsive improvements */
@media (max-width: 768px) {
	h1, .h1 {
		font-size: var(--font-size-2xl);
	}

	h2, .h2 {
		font-size: var(--font-size-xl);
	}

	.btn-lg {
		padding: var(--spacing-md) var(--spacing-lg);
		font-size: var(--font-size-base);
	}
}

.logout-link {
	color: var(--color-danger);
	font-weight: var(--font-weight-bold);
	transition: color var(--transition-fast);
}

/* Sidebar Dropdown Styles */
.sidebar-submenu {
	list-style: none;
	padding-left: 0;
	margin-bottom: 0;
	background-color: rgba(0, 0, 0, 0.05);
	transition: all 150ms ease-in-out;
}

.sidebar-submenu .sidebar-item {
	padding-left: 2rem;
}

.sidebar-submenu .sidebar-link {
	padding-left: 0;
	font-size: 1rem;
	font-weight: 600;
	color: #ffffff;
	transition: color var(--transition-fast);
}

.sidebar-submenu .sidebar-link:hover {
	color: var(--color-primary-light);
	text-decoration: underline;
}

.sidebar-link .dropdown-icon {
	float: right;
	transition: transform 150ms ease-in-out;
}

.sidebar-link:not(.collapsed) .dropdown-icon {
	transform: rotate(180deg);
}

.sidebar-link.collapsed .dropdown-icon {
	transform: rotate(0deg);
}

/* Increase sidebar link size and weight */
.sidebar-link {
	font-size: 1rem;
	font-weight: 600;
	color: var(--color-dark);
	transition: color var(--transition-fast);
}

.sidebar-link:hover {
	color: var(--color-primary);
}