html {
	font-size: 14px;
}

@media (min-width: 768px) {
	html {
		font-size: 16px;
	}
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
	box-shadow: 0 0 0 0.1rem rgba(37, 140, 251, .35);
}

body.app-body {
	background: #f3f4f6;
	min-height: 100vh;
	margin: 0;
	font-family: "Inter", "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
	color: #1f2933;
}

.app-shell {
	display: flex;
	min-height: 100vh;
}

.app-sidebar {
	width: 280px;
	background: linear-gradient(180deg, #0b1830 0%, #0f243f 100%);
	color: #fff;
	display: flex;
	flex-direction: column;
	padding: 2rem 1.5rem;
}

.sidebar-brand {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-bottom: 2rem;
}

.logo-circle {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .15);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.4rem;
}

.brand-title {
	font-weight: 600;
	font-size: 1.1rem;
}

.sidebar-nav .nav-link {
	color: rgba(255, 255, 255, .75);
	padding: 0.75rem 1rem;
	border-radius: 0.5rem;
	margin-bottom: 0.25rem;
	transition: background 0.2s, color 0.2s;
}

.sidebar-nav .nav-link:hover,
.sidebar-nav .nav-link.active {
	background: rgba(255, 255, 255, .12);
	color: #fff;
}

.sidebar-user .avatar-circle {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .25);
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 600;
	font-size: 1.1rem;
}

.app-main {
	flex: 1;
	display: flex;
	flex-direction: column;
}

.app-topbar {
	background: #fff;
	border-bottom: 1px solid #e5e7eb;
	padding: 1rem 2rem;
	display: flex;
	justify-content: space-between;
	align-items: center;
	position: sticky;
	top: 0;
	z-index: 10;
}

.topbar-search {
	position: relative;
}

.topbar-search i {
	position: absolute;
	left: 0.75rem;
	top: 50%;
	transform: translateY(-50%);
	color: #9ca3af;
}

.topbar-search .form-control {
	padding-left: 2.25rem;
	min-width: 220px;
}

.app-content {
	padding: 2rem;
	flex: 1;
}

.app-footer {
	padding: 1.5rem 2rem;
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-size: 0.85rem;
}

.auth-wrapper {
	min-height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 2rem;
}

.auth-wrapper .card {
	width: 420px;
	max-width: calc(100vw - 2rem);
}

@media (max-width: 991.98px) {
	.app-sidebar {
		width: 100%;
	}
	.app-shell {
		flex-direction: column;
	}
}