/**
 * CAS Design System — base tokens & components.
 *
 * @package College_Aptitude_Suite
 */



@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Source+Serif+4:opsz,wght@8..60,600;8..60,700&display=swap');



:root {
	--cas-primary: #1ba94c;
	--cas-primary-dark: #15803d;
	--cas-primary-light: #22c55e;
	--cas-primary-bg: rgba(27, 169, 76, 0.15);
	--cas-success: #1ba94c;
	--cas-success-bg: rgba(27, 169, 76, 0.15);
	--cas-warning: #d29922;
	--cas-warning-bg: rgba(210, 153, 34, 0.12);
	--cas-danger: #f85149;
	--cas-danger-bg: rgba(248, 81, 73, 0.12);
	--cas-info: #00aeef;
	--cas-bg: #0b0f14;
	--cas-surface: #151c26;
	--cas-surface-2: #1c2533;
	--cas-text: #f0f4f8;
	--cas-text-secondary: #9aa8b8;
	--cas-muted: #6b7a8c;
	--cas-border: rgba(255, 255, 255, 0.08);
	--cas-radius: 12px;
	--cas-radius-sm: 8px;
	--cas-shadow: 0 4px 24px rgba(0, 0, 0, 0.45);
	--cas-shadow-md: 0 8px 32px rgba(0, 0, 0, 0.5);
	--cas-shadow-lg: 0 16px 48px rgba(0, 0, 0, 0.55);
	--cas-font: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
	--cas-sidebar-width: 260px;
	--cas-transition: 0.15s ease;
}



/* Reset Blocksy/theme interference on CAS pages */

.cas-lms-page .cas-portal,

.cas-lms-page .cas-portal * {

	box-sizing: border-box;

}



.cas-lms-page {

	margin: 0 !important;

	padding: 0 !important;

	background: var(--cas-bg) !important;

}



.cas-lms-page #cas-main,

.cas-lms-main {

	margin: 0 !important;

	padding: 0 !important;

	max-width: none !important;

}



/* Buttons */

.cas-btn {

	display: inline-flex;

	align-items: center;

	justify-content: center;

	gap: 8px;

	background: var(--cas-primary);

	color: #fff !important;

	border: none;

	border-radius: var(--cas-radius-sm);

	padding: 11px 22px;

	font-family: var(--cas-font);

	font-size: 14px;

	font-weight: 600;

	cursor: pointer;

	text-decoration: none !important;

	transition: background var(--cas-transition), transform var(--cas-transition), box-shadow var(--cas-transition);

	box-shadow: 0 2px 8px rgba(0, 174, 239, 0.28);

	line-height: 1.4;

}



.cas-btn:hover {

	background: var(--cas-primary-dark);

	transform: translateY(-1px);

	box-shadow: 0 4px 14px rgba(0, 174, 239, 0.35);

	color: #fff !important;

}



.cas-btn:active { transform: translateY(0); }



.cas-btn:disabled,

.cas-btn.is-disabled {

	opacity: 0.45;

	cursor: not-allowed;

	transform: none !important;

	box-shadow: none !important;

}



.cas-btn-secondary {

	background: var(--cas-surface);

	color: var(--cas-primary) !important;

	border: 1.5px solid var(--cas-border-strong);

	box-shadow: var(--cas-shadow);

}



.cas-btn-secondary:hover {

	background: var(--cas-primary-bg);

	color: var(--cas-primary-dark) !important;

	border-color: var(--cas-primary);

	box-shadow: var(--cas-shadow-md);

}



.cas-btn-danger {

	background: var(--cas-danger);

	box-shadow: 0 2px 8px rgba(220, 53, 69, 0.28);

}



.cas-btn-sm {

	padding: 7px 14px;

	font-size: 13px;

}



.cas-btn-lg {

	padding: 14px 28px;

	font-size: 15px;

}



/* Cards */

.cas-card {

	background: var(--cas-surface);

	border: 1px solid var(--cas-border);

	border-radius: var(--cas-radius);

	padding: 24px;

	box-shadow: var(--cas-shadow);

	transition: box-shadow var(--cas-transition), transform var(--cas-transition);

}



.cas-card:hover {

	box-shadow: var(--cas-shadow-md);

}



.cas-card--flat {

	box-shadow: none;

}



.cas-card__title {

	font-size: 16px;

	font-weight: 700;

	color: var(--cas-text);

	margin: 0 0 8px;

}



.cas-card__desc {

	font-size: 14px;

	color: var(--cas-text-secondary);

	margin: 0 0 16px;

	line-height: 1.6;

}



/* Forms */

.cas-form label {

	display: block;

	margin-bottom: 6px;

	font-weight: 600;

	font-size: 13px;

	color: var(--cas-text-secondary);

}



.cas-form input[type="text"],

.cas-form input[type="password"],

.cas-form input[type="email"],

.cas-form select {

	width: 100%;

	padding: 12px 14px;

	border: 1.5px solid var(--cas-border-strong);

	border-radius: var(--cas-radius-sm);

	background: var(--cas-surface);

	color: var(--cas-text);

	font-family: var(--cas-font);

	font-size: 14px;

	margin-bottom: 16px;

	transition: border-color var(--cas-transition), box-shadow var(--cas-transition);

}



.cas-form input:focus,

.cas-form select:focus {

	outline: none;

	border-color: var(--cas-primary);

	box-shadow: 0 0 0 3px var(--cas-primary-ring);

}



/* Notices & badges */

.cas-notice {

	padding: 14px 18px;

	background: var(--cas-info-bg);

	border-left: 4px solid var(--cas-primary);

	border-radius: var(--cas-radius-sm);

	font-size: 14px;

	color: var(--cas-text);

}



.cas-badge {

	display: inline-flex;

	align-items: center;

	padding: 4px 10px;

	border-radius: 20px;

	font-size: 12px;

	font-weight: 600;

}



.cas-badge--easy { background: var(--cas-success-bg); color: var(--cas-success); }

.cas-badge--moderate { background: var(--cas-warning-bg); color: var(--cas-warning); }

.cas-badge--difficult { background: var(--cas-danger-bg); color: var(--cas-danger); }

.cas-badge--primary { background: var(--cas-primary-bg); color: var(--cas-primary-dark); }



/* Theme toggle */

.cas-theme-btn {

	width: 40px;

	height: 40px;

	border-radius: 10px;

	border: 1px solid var(--cas-border);

	background: var(--cas-surface);

	cursor: pointer;

	display: flex;

	align-items: center;

	justify-content: center;

	font-size: 18px;

	transition: background var(--cas-transition);

}



.cas-theme-btn:hover { background: var(--cas-primary-bg); }



/* Avatar */

.cas-avatar {

	width: 40px;

	height: 40px;

	border-radius: 50%;

	background: linear-gradient(135deg, var(--cas-surface-2), var(--cas-primary));

	color: #fff;

	display: flex;

	align-items: center;

	justify-content: center;

	font-weight: 700;

	font-size: 16px;

	flex-shrink: 0;

}



/* WordPress login form overrides */

.cas-login-card #loginform {

	margin: 0;

	padding: 0;

	border: none;

	background: transparent;

	box-shadow: none;

}



.cas-login-card #loginform p { margin-bottom: 12px; }



.cas-login-card #loginform label {

	font-size: 13px;

	font-weight: 600;

	color: var(--cas-text-secondary);

}



.cas-login-card #loginform input[type="text"],

.cas-login-card #loginform input[type="password"] {

	width: 100%;

	padding: 12px 14px;

	border: 1.5px solid var(--cas-border-strong);

	border-radius: var(--cas-radius-sm);

	background: var(--cas-surface);

	color: var(--cas-text);

	font-size: 14px;

}



.cas-login-card #loginform input[type="submit"] {

	width: 100%;

	background: var(--cas-primary);

	color: #fff;

	border: none;

	border-radius: var(--cas-radius-sm);

	padding: 13px;

	font-weight: 700;

	font-size: 15px;

	cursor: pointer;

	margin-top: 8px;

}



.cas-login-card #loginform input[type="submit"]:hover {

	background: var(--cas-primary-dark);

}


