.clp-dashboard {
	--clp-accent: #2563eb;
	--clp-accent-dark: #1d4ed8;
	--clp-border: #dbe3eb;
	--clp-muted: #5d6975;
	--clp-surface: #ffffff;
	--clp-soft: #f5f8fb;
	--clp-text: #17212b;
	font-family: inherit;
	color: var(--clp-text);
	max-width: 1200px;
	margin: 2rem auto;
}

.clp-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1.5rem;
	padding: 1.75rem;
	background: var(--clp-surface);
	border: 1px solid var(--clp-border);
	border-radius: 18px;
	box-shadow: 0 12px 35px rgba(23, 33, 43, 0.07);
}

.clp-header h1 {
	margin: 0.15rem 0 0.4rem;
	font-size: clamp(1.8rem, 4vw, 2.7rem);
	line-height: 1.1;
}

.clp-header p,
.clp-panel-heading p {
	margin: 0;
	color: var(--clp-muted);
}

.clp-header-actions,
.clp-account-actions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 0.7rem;
	flex-wrap: wrap;
}

.clp-eyebrow {
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.clp-grid {
	display: grid;
	gap: 1rem;
	margin-top: 1rem;
}

.clp-grid--stats {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.clp-card {
	padding: 1.35rem;
	background: var(--clp-surface);
	border: 1px solid var(--clp-border);
	border-radius: 15px;
}

.clp-card h2 {
	margin: 0 0 0.55rem;
	font-size: 1.15rem;
}

.clp-card p,
.clp-card small,
.clp-muted {
	color: var(--clp-muted);
}

.clp-stat {
	border-top: 5px solid var(--clp-border);
	min-height: 150px;
}

.clp-stat--green { border-top-color: #31895a; }
.clp-stat--amber { border-top-color: #dda629; }
.clp-stat--red { border-top-color: #cf3338; }
.clp-stat--blue { border-top-color: #2d5fe5; }

.clp-stat span,
.clp-stat small {
	display: block;
}

.clp-stat strong {
	display: block;
	margin: 0.25rem 0;
	font-size: 2rem;
}

.clp-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 0.68rem 0.95rem;
	border: 0;
	border-radius: 9px;
	background: #e8edf2;
	color: #43515e;
	font: inherit;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
}

.clp-button:hover,
.clp-button:focus {
	text-decoration: none;
}

.clp-button--active {
	background: var(--clp-accent);
	color: #fff;
}

.clp-button--active:hover,
.clp-button--active:focus {
	background: var(--clp-accent-dark);
	color: #fff;
}

.clp-button--secondary {
	background: #e8edf2;
	color: #364451;
}

.clp-button--secondary:hover,
.clp-button--secondary:focus {
	background: #dce4eb;
	color: #17212b;
}

.clp-button--disabled {
	background: #eef2f5;
	color: #6a7681;
	cursor: default;
}

.clp-notice {
	max-width: 1200px;
	margin: 1rem auto;
	padding: 1rem 1.2rem;
	border-radius: 10px;
}

.clp-notice--success {
	background: #e8f7ef;
	border: 1px solid #9ed5b7;
	color: #174f31;
}

.clp-notice--warning {
	background: #fff8df;
	border: 1px solid #ecd990;
	color: #6d5413;
}

.clp-notice--error {
	background: #fff0f0;
	border: 1px solid #edb7b7;
	color: #7c2020;
}

.clp-account-back {
	max-width: 1200px;
	margin: 1rem auto;
}

.clp-course-panel,
.clp-account-panel {
	margin-top: 1rem;
	padding: 0;
	overflow: hidden;
}

.clp-panel-heading {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1.25rem;
	padding: 1.35rem;
	border-bottom: 1px solid var(--clp-border);
}

.clp-panel-heading h2 {
	margin: 0.2rem 0 0.25rem;
	font-size: 1.35rem;
}

.clp-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding: 0 0.7rem;
	border-radius: 999px;
	background: var(--clp-soft);
	font-weight: 800;
}

.clp-course-list {
	display: grid;
	gap: 0;
}

.clp-course-card {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 1.2rem;
	padding: 1.2rem 1.35rem;
	border-bottom: 1px solid var(--clp-border);
	border-left: 4px solid transparent;
}

.clp-course-card:last-child {
	border-bottom: 0;
}

.clp-course-card--compliant { border-left-color: #31895a; }
.clp-course-card--at-risk { border-left-color: #dda629; }
.clp-course-card--non-compliant { border-left-color: #cf3338; }
.clp-course-card--available { border-left-color: #2d5fe5; }

.clp-course-heading {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	flex-wrap: wrap;
}

.clp-course-card h3 {
	margin: 0;
	font-size: 1.05rem;
}

.clp-course-excerpt,
.clp-course-meta {
	margin: 0.45rem 0 0;
	color: var(--clp-muted);
}

.clp-course-actions form {
	margin: 0;
}

.clp-pill {
	display: inline-flex;
	align-items: center;
	padding: 0.38rem 0.65rem;
	border-radius: 999px;
	font-size: 0.78rem;
	font-weight: 750;
}

.clp-pill--compliant {
	background: #e8f7ef;
	color: #17643a;
}

.clp-pill--at-risk {
	background: #fff7dd;
	color: #77570d;
}

.clp-pill--non-compliant {
	background: #fff0f0;
	color: #9d2626;
}

.clp-progress {
	width: 100%;
	height: 9px;
	margin-top: 0.8rem;
	overflow: hidden;
	border-radius: 999px;
	background: #e7edf2;
}

.clp-progress span {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: var(--clp-accent);
}

.clp-empty-state {
	padding: 1.6rem 1.35rem;
	text-align: center;
}

.clp-empty-state strong {
	display: block;
	margin-bottom: 0.35rem;
}

.clp-empty-state p {
	margin: 0;
}

.clp-account-actions {
	justify-content: flex-start;
	padding: 1.35rem;
}

@media (max-width: 850px) {
	.clp-grid--stats {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.clp-header,
	.clp-panel-heading {
		align-items: stretch;
		flex-direction: column;
	}

	.clp-header-actions {
		justify-content: flex-start;
	}
}

@media (max-width: 650px) {
	.clp-course-card {
		grid-template-columns: 1fr;
	}

	.clp-course-actions,
	.clp-course-actions .clp-button,
	.clp-course-actions form,
	.clp-course-actions button {
		width: 100%;
	}
}

@media (max-width: 560px) {
	.clp-grid--stats {
		grid-template-columns: 1fr;
	}

	.clp-account-actions,
	.clp-account-actions .clp-button,
	.clp-header-actions,
	.clp-header-actions .clp-button {
		width: 100%;
	}
}


/* Learner dashboard v0.2: clearer learner-facing status rules. */
.clp-course-card--awaiting-marking { border-left-color: #2d5fe5; }

.clp-pill--awaiting-marking {
	background: #eef3ff;
	color: #234bb7;
}

/* Course access requests injected into the instructor dashboard. */
.clp-instructor-requests {
	margin-top: 1rem;
	padding: 0;
	overflow: hidden;
	scroll-margin-top: 48px;
}

.clp-instructor-requests .cip-notice--success {
	background: #e8f7ef;
	border: 1px solid #9ed5b7;
	color: #174f31;
}

.clp-instructor-requests .clp-request-actions {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	flex-wrap: wrap;
}

.clp-instructor-requests .clp-request-actions form {
	margin: 0;
}

.clp-instructor-requests .clp-request-actions .cip-button {
	margin-top: 0;
	white-space: nowrap;
}

.clp-instructor-requests .clp-request-table td:last-child {
	min-width: 245px;
}

@media (max-width: 650px) {
	.clp-instructor-requests .clp-request-actions,
	.clp-instructor-requests .clp-request-actions form,
	.clp-instructor-requests .clp-request-actions .cip-button {
		width: 100%;
	}
}


/* Learner dashboard v0.3: compact available-course catalogue. */
.clp-course-expander {
	border-top: 1px solid var(--clp-border);
}

.clp-course-expander__summary {
	display: flex;
	align-items: center;
	justify-content: center;
	width: fit-content;
	margin: 1rem auto;
	padding: 0.72rem 1rem;
	border-radius: 9px;
	background: #e8edf2;
	color: #364451;
	font-weight: 700;
	line-height: 1.2;
	cursor: pointer;
	list-style: none;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.clp-course-expander__summary::-webkit-details-marker {
	display: none;
}

.clp-course-expander__summary:hover,
.clp-course-expander__summary:focus-visible {
	background: #dce4eb;
	color: #17212b;
	outline: none;
}

.clp-course-expander__summary:focus-visible {
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.22);
}

.clp-course-expander__open {
	display: none;
}

.clp-course-expander[open] .clp-course-expander__closed {
	display: none;
}

.clp-course-expander[open] .clp-course-expander__open {
	display: inline;
}

.clp-course-list--available-more {
	border-top: 1px solid var(--clp-border);
}

@media (max-width: 650px) {
	.clp-course-expander__summary {
		width: calc(100% - 2rem);
		text-align: center;
	}
}

/* Account settings and cross-dashboard navigation. */
.clp-account-form-card {
	margin-top: 1rem;
	padding: 0;
	overflow: hidden;
}

.clp-profile-form {
	display: grid;
	gap: 1.35rem;
	padding: 1.35rem;
}

.clp-form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

.clp-field {
	display: grid;
	gap: 0.42rem;
}

.clp-field--wide {
	grid-column: 1 / -1;
}

.clp-field > span {
	font-weight: 750;
}

.clp-field input {
	width: 100%;
	min-height: 46px;
	padding: 0.7rem 0.8rem;
	border: 1px solid var(--clp-border);
	border-radius: 9px;
	background: #fff;
	color: var(--clp-text);
	font: inherit;
	box-sizing: border-box;
}

.clp-field input:focus {
	outline: 3px solid rgba(37, 99, 235, 0.16);
	border-color: var(--clp-accent);
}

.clp-form-divider {
	padding-top: 0.2rem;
	border-top: 1px solid var(--clp-border);
}

.clp-form-divider h2 {
	margin: 1rem 0 0.25rem;
	font-size: 1.2rem;
}

.clp-form-divider p {
	margin: 0;
	color: var(--clp-muted);
}

.clp-form-actions {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	flex-wrap: wrap;
}

.cip-header .clp-my-learning-button {
	margin-top: 0;
	white-space: nowrap;
}

@media (max-width: 650px) {
	.clp-form-grid {
		grid-template-columns: 1fr;
	}

	.clp-field--wide {
		grid-column: auto;
	}
}


/* Learner dashboard v0.5: decline reasons and request email workflow. */
.clp-request-feedback {
	margin-top: 0.75rem;
	padding: 0.75rem 0.85rem;
	border: 1px solid #ecd990;
	border-radius: 9px;
	background: #fff8df;
	color: #6d5413;
}

.clp-request-feedback strong {
	display: block;
}

.clp-request-feedback p {
	margin: 0.25rem 0 0;
	color: inherit;
}

.clp-decline-request {
	position: relative;
}

.clp-decline-request > summary {
	list-style: none;
	cursor: pointer;
}

.clp-decline-request > summary::-webkit-details-marker {
	display: none;
}

.clp-decline-form {
	display: grid;
	gap: 0.7rem;
	width: min(360px, 78vw);
	margin-top: 0.55rem !important;
	padding: 0.85rem;
	border: 1px solid #dbe3eb;
	border-radius: 10px;
	background: #fff;
	box-shadow: 0 10px 28px rgba(23, 33, 43, 0.12);
}

.clp-decline-form label,
.clp-decline-form label > span {
	display: grid;
	gap: 0.35rem;
	font-weight: 700;
}

.clp-decline-form textarea {
	width: 100%;
	min-height: 86px;
	padding: 0.65rem 0.7rem;
	border: 1px solid #cbd5df;
	border-radius: 8px;
	background: #fff;
	font: inherit;
	font-weight: 400;
	box-sizing: border-box;
	resize: vertical;
}

.clp-decline-form textarea:focus {
	outline: 3px solid rgba(37, 99, 235, 0.16);
	border-color: #2563eb;
}

.clp-instructor-requests .clp-request-table td:last-child {
	min-width: 330px;
}

@media (max-width: 650px) {
	.clp-decline-request,
	.clp-decline-request > summary,
	.clp-decline-form {
		width: 100%;
	}
}

/* Learner dashboard v0.6.1: branded LifterLMS account screens and certificate images. */
.clp-lifter-panel {
	margin-top: 1rem;
	padding: 0;
	overflow: hidden;
	box-shadow: 0 12px 35px rgba(23, 33, 43, 0.05);
}

.clp-lifter-content {
	padding: 1.35rem;
}

.clp-lifter-content > :first-child,
.clp-lifter-content .llms-student-dashboard > :first-child {
	margin-top: 0;
}

.clp-lifter-content > :last-child,
.clp-lifter-content .llms-student-dashboard > :last-child {
	margin-bottom: 0;
}

.clp-lifter-content .llms-student-dashboard,
.clp-lifter-content .llms-sd-content,
.clp-lifter-content .llms-sd-main {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
}

.clp-lifter-content .llms-sd-header,
.clp-lifter-content .llms-student-dashboard-header,
.clp-lifter-content .llms-sd-nav,
.clp-lifter-content .llms-student-dashboard-nav,
.clp-lifter-content .llms-student-dashboard-navigation,
.clp-lifter-content .llms-sd-sidebar,
.clp-lifter-content .llms-sd-menu,
.clp-lifter-content .llms-dashboard-menu {
	display: none !important;
}

.clp-lifter-content table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	border: 1px solid var(--clp-border);
	border-radius: 12px;
	overflow: hidden;
}

.clp-lifter-content th,
.clp-lifter-content td {
	padding: 0.8rem 0.9rem;
	border: 0;
	border-bottom: 1px solid var(--clp-border);
	text-align: left;
	vertical-align: top;
}

.clp-lifter-content th {
	background: var(--clp-soft);
	font-weight: 800;
}

.clp-lifter-content tr:last-child td {
	border-bottom: 0;
}

.clp-lifter-content input[type="text"],
.clp-lifter-content input[type="email"],
.clp-lifter-content input[type="password"],
.clp-lifter-content input[type="number"],
.clp-lifter-content select,
.clp-lifter-content textarea {
	width: 100%;
	min-height: 46px;
	padding: 0.7rem 0.8rem;
	border: 1px solid var(--clp-border);
	border-radius: 9px;
	background: #fff;
	color: var(--clp-text);
	font: inherit;
	box-sizing: border-box;
}

.clp-lifter-content input:focus,
.clp-lifter-content select:focus,
.clp-lifter-content textarea:focus {
	outline: 3px solid rgba(37, 99, 235, 0.16);
	border-color: var(--clp-accent);
}

.clp-lifter-content button,
.clp-lifter-content input[type="submit"],
.clp-lifter-content .llms-button-primary,
.clp-lifter-content .llms-button-secondary {
	min-height: 44px;
	padding: 0.68rem 0.95rem;
	border: 0;
	border-radius: 9px;
	font: inherit;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
}

.clp-lifter-content .llms-button-primary,
.clp-lifter-content button[type="submit"],
.clp-lifter-content input[type="submit"] {
	background: var(--clp-accent);
	color: #fff;
}

.clp-lifter-view--certificates .llms-certificates-loop,
.clp-lifter-view--certificates ul.llms-certificates-loop {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

.clp-lifter-view--certificates .llms-certificates-loop > li,
.clp-lifter-view--certificates .llms-certificate-loop-item {
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
	list-style: none !important;
}

.clp-lifter-view--certificates .llms-certificate {
	display: flex !important;
	flex-direction: column;
	gap: 0.85rem;
	height: 100%;
	min-height: 0;
	padding: 0.85rem;
	border: 1px solid #b7dcc7;
	border-top: 5px solid #31895a;
	border-radius: 14px;
	background: #ffffff;
	box-shadow: 0 9px 24px rgba(23, 100, 58, 0.08);
	color: var(--clp-text);
	text-decoration: none !important;
	box-sizing: border-box;
	transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}

.clp-lifter-view--certificates .llms-certificate:hover,
.clp-lifter-view--certificates .llms-certificate:focus {
	border-color: #72bb91;
	box-shadow: 0 12px 28px rgba(23, 100, 58, 0.14);
	transform: translateY(-1px);
}

.clp-certificate-image {
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	width: 100%;
	aspect-ratio: 1.414 / 1;
	border: 1px solid #dcebe3;
	border-radius: 10px;
	background: #f6f8f7;
}

.clp-certificate-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	background: #ffffff;
}

.clp-certificate-image--fallback {
	background: linear-gradient(135deg, #f0fbf5 0%, #ffffff 100%);
}

.clp-certificate-image--fallback > span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 58px;
	height: 58px;
	border-radius: 50%;
	background: #dff3e8;
	color: #17643a;
	font-size: 1.6rem;
	font-weight: 900;
}

.clp-certificate-meta {
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
}

.clp-lifter-view--certificates .llms-certificate-title {
	margin: 0;
	font-size: 1.05rem;
	line-height: 1.35;
	font-weight: 800;
	color: var(--clp-text);
}

.clp-lifter-view--certificates .llms-certificate-date {
	color: var(--clp-muted);
	font-size: 0.92rem;
}

.clp-certificate-action {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	align-self: flex-start;
	margin-top: auto;
	padding: 0.65rem 0.85rem;
	border-radius: 9px;
	background: #e8f7ef;
	color: #17643a;
	font-weight: 800;
}

.clp-certificate-empty {
	max-width: 680px;
	margin: 0 auto;
	padding: 2.4rem 1.5rem;
	border: 1px dashed #9ccdb0;
	border-radius: 15px;
	background: linear-gradient(180deg, #f5fff9 0%, #ffffff 100%);
}

.clp-certificate-empty__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 58px;
	height: 58px;
	margin-bottom: 0.9rem;
	border-radius: 50%;
	background: #e2f5ea;
	color: #17643a;
	font-size: 1.55rem;
	font-weight: 900;
}

.clp-certificate-empty strong {
	font-size: 1.25rem;
}

.clp-certificate-empty__hint {
	margin-top: 0.7rem !important;
	font-size: 0.92rem;
}

@media (max-width: 760px) {
	.clp-lifter-view--certificates .llms-certificates-loop,
	.clp-lifter-view--certificates ul.llms-certificates-loop {
		grid-template-columns: 1fr;
	}

	.clp-lifter-content {
		padding: 1rem;
	}

	.clp-lifter-content table {
		display: block;
		overflow-x: auto;
	}
}



/* Learner dashboard v0.6.3: compact certificate blocks. */
.clp-certificate-library-panel {
	margin-top: 1rem;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
}

.clp-certificate-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

.clp-certificate-card {
	display: grid;
	grid-template-columns: 68px minmax(0, 1fr);
	gap: 1rem;
	align-items: start;
	min-width: 0;
	padding: 1.2rem;
	border: 1px solid #cbe5d5;
	border-left: 5px solid #31895a;
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 9px 24px rgba(23, 100, 58, 0.08);
}

.clp-certificate-card__icon {
	display: grid;
	place-items: center;
	width: 68px;
	height: 68px;
	border-radius: 15px;
	background: #eaf7f0;
	color: #17643a;
}

.clp-certificate-card__icon svg {
	display: block;
	width: 39px;
	height: 39px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2.2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.clp-certificate-card__body {
	display: flex;
	min-width: 0;
	flex-direction: column;
	align-items: flex-start;
}

.clp-certificate-card__label {
	margin: 0 0 0.25rem;
	color: #17643a;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.clp-certificate-card__body h2 {
	margin: 0;
	font-size: 1.08rem;
	line-height: 1.35;
	color: var(--clp-text);
}

.clp-certificate-card__date {
	margin: 0.42rem 0 0;
	color: var(--clp-muted);
	font-size: 0.92rem;
}

.clp-certificate-card__action {
	margin-top: 0.9rem;
	padding: 0.68rem 0.9rem;
	background: #e8f7ef;
	color: #17643a;
	font-size: 0.9rem;
}

.clp-certificate-card__action:hover,
.clp-certificate-card__action:focus {
	background: #d7efe2;
	color: #104d2c;
}

@media (max-width: 820px) {
	.clp-certificate-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 520px) {
	.clp-certificate-card {
		grid-template-columns: 54px minmax(0, 1fr);
		gap: 0.8rem;
		padding: 1rem;
	}

	.clp-certificate-card__icon {
		width: 54px;
		height: 54px;
		border-radius: 12px;
	}

	.clp-certificate-card__icon svg {
		width: 32px;
		height: 32px;
	}

	.clp-certificate-card__action {
		width: 100%;
		text-align: center;
	}
}

