:root {
	--smbf-primary: #4f46e5;
	--smbf-primary-hover: #4338ca;
	--smbf-bg: #f9fafb;
	--smbf-card-bg: #ffffff;
	--smbf-text-main: #111827;
	--smbf-text-muted: #6b7280;
	--smbf-border: #e5e7eb;
	--smbf-radius: 12px;
	--smbf-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
	--smbf-shadow-hover: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}

.smbf-frontend-dashboard {
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	color: var(--smbf-text-main);
	background-color: var(--smbf-bg);
	padding: 40px;
	border-radius: var(--smbf-radius);
	width: 100%;
	box-sizing: border-box;
	min-height: 80vh;
}

.smbf-dashboard-header {
	margin-bottom: 30px;
	text-align: left;
}

.smbf-dashboard-header h2 {
	font-size: 28px;
	font-weight: 700;
	color: var(--smbf-text-main);
	margin: 0;
}

/* Layout: Sidebar + Content */
.smbf-dashboard-layout {
	display: flex;
	gap: 30px;
	align-items: flex-start;
	width: 100%;
}

/* Sidebar Tabs */
.smbf-tabs {
	display: flex;
	flex-direction: column;
	width: 260px;
	flex-shrink: 0;
	background: var(--smbf-card-bg);
	padding: 20px;
	border-radius: var(--smbf-radius);
	box-shadow: var(--smbf-shadow);
	gap: 8px;
}

.smbf-tab-link {
	display: flex;
	align-items: center;
	gap: 12px;
	width: 100%;
	text-align: left;
	background: transparent;
	border: none;
	padding: 12px 16px;
	font-size: 15px;
	font-weight: 500;
	color: var(--smbf-text-muted);
	cursor: pointer;
	border-radius: 8px;
	transition: all 0.2s ease;
}

.smbf-tab-link svg {
	width: 20px;
	height: 20px;
	stroke-width: 2px;
	transition: stroke 0.2s ease;
}

.smbf-tab-link:hover {
	background-color: rgba(79, 70, 229, 0.05);
	color: var(--smbf-primary);
}

.smbf-tab-link:hover svg {
	stroke: var(--smbf-primary);
}

.smbf-tab-link.active {
	background-color: var(--smbf-primary);
	color: #ffffff;
	box-shadow: 0 4px 6px -1px rgba(79, 70, 229, 0.2);
}

.smbf-tab-link.active svg {
	stroke: #ffffff;
}

.smbf-logout-link {
	text-decoration: none;
	margin-top: 10px;
	border-top: 1px solid var(--smbf-border);
	border-radius: 0 0 8px 8px; /* Optional: distinct look */
}

.smbf-logout-link:hover {
	background-color: #fef2f2;
	color: #ef4444 !important;
}

.smbf-logout-link:hover svg {
	stroke: #ef4444;
}

/* Content Area */
.smbf-content-area {
	flex-grow: 1;
	width: 100%; /* Ensure full width */
	min-width: 0; /* Prevents overflow in flex items */
}

.smbf-tab-content {
	display: none;
	width: 100%; /* Ensure content takes full width */
	animation: smbfFadeIn 0.3s ease-out;
}

@keyframes smbfFadeIn {
	from { opacity: 0; transform: translateY(5px); }
	to { opacity: 1; transform: translateY(0); }
}

/* Dashboard Stats */
.smbf-dashboard-stats-row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 20px;
	margin-bottom: 30px;
}

.smbf-stat-card {
	background: var(--smbf-card-bg);
	padding: 20px;
	border-radius: var(--smbf-radius);
	box-shadow: var(--smbf-shadow);
	border: 1px solid var(--smbf-border);
	display: flex;
	align-items: center;
	gap: 15px;
	transition: transform 0.2s, box-shadow 0.2s;
}

.smbf-stat-card:hover {
	transform: translateY(-2px);
	box-shadow: var(--smbf-shadow-hover);
}

.smbf-stat-icon {
	width: 48px;
	height: 48px;
	border-radius: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.smbf-stat-icon svg {
	width: 24px;
	height: 24px;
	stroke: white;
}

.smbf-stat-info h4 {
	margin: 0;
	font-size: 14px;
	font-weight: 500;
	color: var(--smbf-text-muted);
}

.smbf-stat-value {
	display: block;
	font-size: 24px;
	font-weight: 700;
	color: var(--smbf-text-main);
	margin-top: 5px;
}

.smbf-stat-fees .smbf-stat-icon {
	background-color: #ef4444; /* Red for pending fees */
}

.smbf-stat-assignments .smbf-stat-icon {
	background-color: #f59e0b; /* Amber for assignments */
}

.smbf-stat-exams .smbf-stat-icon {
	background-color: #10b981; /* Green for exams */
}

/* Cards */
.smbf-dashboard-card {
	background: var(--smbf-card-bg);
	padding: 30px;
	border: 1px solid var(--smbf-border);
	border-radius: var(--smbf-radius);
	box-shadow: var(--smbf-shadow);
	margin-bottom: 30px;
	transition: transform 0.2s, box-shadow 0.2s;
	width: 100%; /* Force card to fill container */
	box-sizing: border-box; /* Include padding in width */
}

.smbf-dashboard-card:hover {
	transform: translateY(-2px);
	box-shadow: var(--smbf-shadow-hover);
}

.smbf-dashboard-card h3 {
	margin-top: 0;
	margin-bottom: 25px;
	font-size: 20px;
	font-weight: 600;
	color: var(--smbf-text-main);
	border-bottom: 2px solid var(--smbf-bg);
	padding-bottom: 15px;
}

/* Profile Section */
.smbf-profile-card ul {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
	gap: 20px;
}

.smbf-profile-card li {
	background: var(--smbf-bg);
	padding: 15px;
	border-radius: 8px;
	border: 1px solid var(--smbf-border);
}

.smbf-profile-card li strong {
	display: block;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: var(--smbf-text-muted);
	margin-bottom: 5px;
}

/* Tables */
.smbf-frontend-table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	width: 100%;
}

.smbf-frontend-table th,
.smbf-frontend-table td {
	padding: 16px;
	text-align: left;
	border-bottom: 1px solid var(--smbf-border);
}

.smbf-frontend-table th {
	background-color: var(--smbf-bg);
	font-weight: 600;
	color: var(--smbf-text-muted);
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.smbf-frontend-table tr:last-child td {
	border-bottom: none;
}

.smbf-frontend-table tr:hover td {
	background-color: rgba(249, 250, 251, 0.5);
}

/* Badges & Buttons */
.smbf-badge {
	display: inline-block;
	padding: 4px 10px;
	border-radius: 20px;
	font-size: 12px;
	font-weight: 600;
}

.smbf-badge-pending {
	background-color: #fef3c7;
	color: #d97706;
}

.smbf-btn-link {
	display: inline-block;
	padding: 6px 12px;
	background-color: var(--smbf-primary);
	color: white;
	text-decoration: none;
	border-radius: 6px;
	font-size: 13px;
	transition: background-color 0.2s;
}

.smbf-btn-link:hover {
	background-color: var(--smbf-primary-hover);
}

/* Login Form */
.smbf-login-form {
	max-width: 400px;
	margin: 50px auto;
	padding: 40px;
	background: white;
	border-radius: var(--smbf-radius);
	box-shadow: var(--smbf-shadow-hover);
	border: 1px solid var(--smbf-border);
}

.smbf-login-form h2 {
	text-align: center;
	margin-bottom: 30px;
	color: var(--smbf-primary);
}

.smbf-form-group {
	margin-bottom: 20px;
}

.smbf-form-group label {
	display: block;
	margin-bottom: 8px;
	font-weight: 500;
	color: var(--smbf-text-main);
}

.smbf-form-group input {
	width: 100%;
	padding: 12px;
	border: 1px solid var(--smbf-border);
	border-radius: 8px;
	font-size: 16px;
	transition: border-color 0.2s, box-shadow 0.2s;
}

.smbf-form-group input:focus {
	outline: none;
	border-color: var(--smbf-primary);
	box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.1);
}

.smbf-btn-primary {
	width: 100%;
	padding: 12px;
	background-color: var(--smbf-primary);
	color: white;
	border: none;
	border-radius: 8px;
	font-size: 16px;
	font-weight: 600;
	cursor: pointer;
	transition: background-color 0.2s;
}

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

/* Responsive */
@media (max-width: 768px) {
	.smbf-frontend-dashboard {
		padding: 20px;
	}

	.smbf-dashboard-layout {
		flex-direction: column;
	}

	.smbf-tabs {
		width: 100%;
		flex-direction: row;
		overflow-x: auto;
		padding: 10px;
		gap: 10px;
	}

	.smbf-tab-link {
		width: auto;
		white-space: nowrap;
		flex-shrink: 0;
	}
	
	.smbf-profile-card ul {
		grid-template-columns: 1fr;
	}
}

/* Authentication Pages */
.smbf-container {
	width: 100%;
	display: block;
	box-sizing: border-box;
}

.smbf-auth-wrapper {
	max-width: 500px;
	margin: 50px auto;
	background: #ffffff;
	padding: 40px;
	border-radius: var(--smbf-radius);
	box-shadow: var(--smbf-shadow-hover);
	border: 1px solid var(--smbf-border);
}

.smbf-auth-tabs-header {
	display: flex;
	margin-bottom: 30px;
	border-bottom: 2px solid var(--smbf-border);
}

.smbf-auth-tab-btn {
	flex: 1;
	padding: 15px;
	border: none;
	background: transparent !important;
	box-shadow: none !important;
	text-shadow: none !important;
	font-weight: 600;
	cursor: pointer;
	border-bottom: 2px solid transparent;
	transition: all 0.3s;
	font-size: 16px;
	color: var(--smbf-text-muted);
	border-radius: 0;
	margin: 0;
}

.smbf-auth-tab-btn:hover {
	color: var(--smbf-primary);
	background-color: rgba(79, 70, 229, 0.05) !important;
}

.smbf-auth-tab-btn.smbf-active {
	color: var(--smbf-primary);
	border-bottom-color: var(--smbf-primary);
	background-color: transparent !important;
}

.smbf-frontend-login-form p,
.smbf-frontend-register-form p,
.smbf-frontend-forgot-password-form p {
	margin-bottom: 15px;
}

.smbf-frontend-login-form label,
.smbf-frontend-register-form label,
.smbf-frontend-forgot-password-form label {
	display: block;
	margin-bottom: 8px;
	font-weight: 500;
	color: var(--smbf-text-main);
}

.smbf-frontend-login-form input[type="text"],
.smbf-frontend-login-form input[type="password"],
.smbf-frontend-login-form input[type="email"],
.smbf-frontend-register-form input[type="text"],
.smbf-frontend-register-form input[type="email"],
.smbf-frontend-forgot-password-form input[type="text"] {
	width: 100%;
	padding: 12px;
	border: 1px solid var(--smbf-border);
	border-radius: 8px;
	font-size: 16px;
	transition: border-color 0.2s, box-shadow 0.2s;
	box-sizing: border-box;
}

.smbf-frontend-login-form input:focus,
.smbf-frontend-register-form input:focus,
.smbf-frontend-forgot-password-form input:focus {
	outline: none;
	border-color: var(--smbf-primary);
	box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.1);
}

.smbf-frontend-login-form .button-primary,
.smbf-frontend-register-form .button-primary,
.smbf-frontend-forgot-password-form .button-primary {
	width: 100%;
	padding: 12px;
	background-color: var(--smbf-primary);
	color: white;
	border: none;
	border-radius: 8px;
	font-size: 16px;
	font-weight: 600;
	cursor: pointer;
	transition: background-color 0.2s;
	margin-top: 10px;
}

.smbf-frontend-login-form .button-primary:hover,
.smbf-frontend-register-form .button-primary:hover,
.smbf-frontend-forgot-password-form .button-primary:hover {
	background-color: var(--smbf-primary-hover);
}

.smbf-frontend-login-form a,
.smbf-frontend-forgot-password-form a {
	color: var(--smbf-primary);
	text-decoration: none;
	font-size: 14px;
}

.smbf-frontend-login-form a:hover,
.smbf-frontend-forgot-password-form a:hover {
	text-decoration: underline;
}
