:root {
	--primary-color: #2d9d78;
	--dark-color: #1a4d2e;
	--light-color: #e8f5f1;
	--border-color: #e0e0e0;
	--text-color: #333;
	--text-muted: #999;
	--surface-color: #fff;
}

* {
	box-sizing: border-box;
}

body {
	font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
	background:
		radial-gradient(circle at top right, rgba(45, 157, 120, 0.12), transparent 28%),
		linear-gradient(180deg, #f4fbf8 0%, #eef4f1 100%);
	min-height: 100vh;
	color: var(--text-color);
}

a {
	text-decoration: none;
}

.container-fluid {
	max-width: 1400px;
	margin: 0 auto;
}

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

.btn-primary:hover,
.btn-primary:focus {
	background-color: var(--dark-color);
	border-color: var(--dark-color);
}

.form-control:focus,
.form-select:focus,
.form-check-input:focus {
	border-color: var(--primary-color);
	box-shadow: 0 0 0 0.2rem rgba(45, 157, 120, 0.25);
}

.card {
	background-color: var(--surface-color);
	border: 1px solid var(--border-color);
	border-radius: 12px;
	box-shadow: 0 10px 24px rgba(16, 24, 40, 0.06);
}

.card:hover {
	box-shadow: 0 14px 32px rgba(16, 24, 40, 0.1);
}

.app-shell {
	min-height: 100vh;
}

.page-header {
	background: linear-gradient(120deg, rgba(45, 157, 120, 0.16), rgba(26, 77, 46, 0.08));
	border-bottom: 1px solid rgba(45, 157, 120, 0.1);
}

.stat-card {
	border: 0;
	overflow: hidden;
	position: relative;
}

.stat-card::after {
	content: '';
	position: absolute;
	inset: auto -24px -24px auto;
	width: 90px;
	height: 90px;
	border-radius: 50%;
	background: rgba(45, 157, 120, 0.08);
}

.table thead th {
	white-space: nowrap;
}

.badge.bg-draft {
	background-color: #6c757d;
}

.badge.bg-submitted {
	background-color: #0d6efd;
}

.badge.bg-approved {
	background-color: #198754;
}

.badge.bg-locked {
	background-color: #212529;
}

.auth-card {
	max-width: 480px;
	margin: 4rem auto;
}

.navbar-brand strong {
	letter-spacing: 0.04em;
}

@media (max-width: 768px) {
	.container-fluid {
		padding-left: 15px;
		padding-right: 15px;
	}
}
