/**
 * Screen-specific tweaks for portal stubs.
 */

.cft-hero {
	display: grid;
	gap: 1rem;
	padding: 1.25rem;
	border-radius: var(--cft-radius);
	background: linear-gradient(135deg, var(--cft-navy-800), var(--cft-navy-600));
	color: #fff;
	margin-bottom: 1.25rem;
}

.cft-hero h2 {
	margin: 0;
	font-size: 1.5rem;
}

.cft-hero p {
	margin: 0;
	opacity: 0.9;
	max-width: 36rem;
}

.cft-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.cft-stat {
	font-size: 1.6rem;
	font-weight: 700;
	color: var(--cft-control-navy);
	line-height: 1.1;
}

.cft-stat span {
	display: block;
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--cft-text-muted);
	margin-top: 0.25rem;
}

.cft-split {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 1rem;
}

@media (max-width: 900px) {
	.cft-split {
		grid-template-columns: 1fr;
	}
}

.cft-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.cft-list li {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.7rem 0;
	border-bottom: 1px solid var(--cft-border);
	font-size: 0.9rem;
}

.cft-list li:last-child {
	border-bottom: 0;
}

.cft-landing-options {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
	gap: 1rem;
	margin-top: 1rem;
}

.cft-landing-options .cft-card {
	min-height: 9rem;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.cft-feedback {
	margin: 0.75rem 0;
	padding: 0.65rem 0.85rem;
	border-radius: var(--cft-radius, 6px);
	font-size: 0.95rem;
}

.cft-feedback.is-ok {
	background: #e8f5e9;
	color: #1b5e20;
}

.cft-feedback.is-error {
	background: #fdecea;
	color: #8a1f11;
}

.cft-table select {
	max-width: 14rem;
	margin-right: 0.35rem;
}

/* —— Staff Trends & analytics (demo parity) —— */
.cft-analytics__kicker {
	font-size: 0.7rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--cft-text-muted, #667);
	margin-bottom: 0.25rem;
}

.cft-analytics__heading-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin-bottom: 0.25rem;
}

.cft-analytics__heading-row .cft-screen-title {
	margin: 0;
}

.cft-analytics__notif-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
}

.cft-analytics__notif-icon {
	display: inline-flex;
}

.cft-analytics__notif-icon svg {
	display: block;
}

.cft-analytics__export {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
}

.cft-analytics__export-icon {
	display: inline-flex;
	line-height: 0;
}

.cft-analytics__export-icon svg {
	display: block;
	width: 1rem;
	height: 1rem;
}

/* Notification settings modal */
.cft-notif-modal[hidden] {
	display: none !important;
}

.cft-notif-modal {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.25rem;
}

.cft-notif-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(15, 30, 50, 0.45);
}

.cft-notif-modal__panel {
	position: relative;
	z-index: 1;
	width: min(34rem, 100%);
	max-height: min(90vh, 40rem);
	overflow: auto;
	background: #fff;
	border-radius: 12px;
	box-shadow: 0 20px 50px rgba(15, 30, 50, 0.25);
	padding: 1.25rem 1.35rem 1rem;
}

.cft-notif-modal__header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
	padding-bottom: 0.85rem;
	border-bottom: 1px solid var(--cft-border, #e5ebf1);
}

.cft-notif-modal__title-wrap {
	display: flex;
	align-items: flex-start;
	gap: 0.65rem;
}

.cft-notif-modal__gear {
	display: inline-flex;
	margin-top: 0.15rem;
	color: var(--cft-navy-800, #1a2b45);
}

.cft-notif-modal__title {
	margin: 0;
	font-size: 1.2rem;
	color: var(--cft-navy-900, #122033);
}

.cft-notif-modal__sub {
	margin: 0.15rem 0 0;
	font-size: 0.85rem;
	color: var(--cft-text-muted, #627d98);
}

.cft-notif-modal__x {
	appearance: none;
	border: 0;
	background: transparent;
	cursor: pointer;
	padding: 0.25rem;
	color: var(--cft-text-muted, #627d98);
}

.cft-notif-modal__lead {
	margin: 1rem 0 0.75rem;
	font-size: 0.9rem;
	color: var(--cft-text-muted, #627d98);
}

.cft-notif-modal__cols {
	display: grid;
	grid-template-columns: 1fr 3.25rem 3.25rem;
	gap: 0.5rem;
	align-items: center;
	font-size: 0.65rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--cft-text-muted, #627d98);
	font-weight: 600;
	margin-bottom: 0.35rem;
}

.cft-notif-modal__cols span:nth-child(2),
.cft-notif-modal__cols span:nth-child(3) {
	text-align: center;
}

.cft-notif-modal__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.cft-notif-modal__row {
	display: grid;
	grid-template-columns: 1fr 3.25rem 3.25rem;
	gap: 0.5rem;
	align-items: center;
	padding: 0.85rem 0;
	border-bottom: 1px solid var(--cft-border, #e8eef4);
}

.cft-notif-modal__copy strong {
	display: block;
	font-size: 0.95rem;
	color: var(--cft-navy-900, #122033);
}

.cft-notif-modal__copy span {
	display: block;
	margin-top: 0.15rem;
	font-size: 0.8rem;
	color: var(--cft-text-muted, #627d98);
}

.cft-notif-toggle {
	position: relative;
	display: inline-flex;
	justify-content: center;
	cursor: pointer;
}

.cft-notif-toggle input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
}

.cft-notif-toggle__ui {
	display: block;
	width: 2.6rem;
	height: 1.45rem;
	border-radius: 999px;
	background: #d5dee8;
	position: relative;
	transition: background 0.15s ease;
}

.cft-notif-toggle__ui::after {
	content: '';
	position: absolute;
	top: 0.18rem;
	left: 0.18rem;
	width: 1.1rem;
	height: 1.1rem;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
	transition: transform 0.15s ease;
}

.cft-notif-toggle input:checked + .cft-notif-toggle__ui {
	background: var(--cft-navy-800, #1a2b45);
}

.cft-notif-toggle input:checked + .cft-notif-toggle__ui::after {
	transform: translateX(1.15rem);
}

.cft-notif-toggle input:focus-visible + .cft-notif-toggle__ui {
	outline: 2px solid var(--cft-operational-orange, #e36b2c);
	outline-offset: 2px;
}

.cft-notif-modal__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-top: 1rem;
	padding-top: 0.85rem;
}

.cft-notif-modal__status {
	font-size: 0.8rem;
	color: var(--cft-text-muted, #627d98);
}

.cft-btn--navy {
	background: var(--cft-navy-800, #1a2b45);
	color: #fff;
	border: 0;
}

.cft-btn--navy:hover,
.cft-btn--navy:focus {
	background: var(--cft-navy-900, #122033);
	color: #fff;
}

.cft-analytics__filters {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin: 0.75rem 0 1.25rem;
}

.cft-analytics__range-chips {
	display: inline-flex;
	border: 1px solid var(--cft-border, #d7e0ea);
	border-radius: 8px;
	overflow: hidden;
}

.cft-analytics__chip {
	padding: 0.45rem 0.85rem;
	font-size: 0.85rem;
	font-weight: 600;
	text-decoration: none;
	color: var(--cft-text-muted, #5c6b7f);
	background: #fff;
	border-right: 1px solid var(--cft-border, #d7e0ea);
}

.cft-analytics__chip:last-child {
	border-right: 0;
}

.cft-analytics__chip.is-active {
	background: var(--cft-navy-800, #1a2b45);
	color: #fff;
}

.cft-analytics__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
	gap: 1rem;
}

.cft-analytics__card {
	background: #fff;
	border: 1px solid var(--cft-border, #d7e0ea);
	border-radius: 12px;
	padding: 1rem 1.1rem 0.75rem;
}

.cft-analytics__card-head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 0.5rem;
}

.cft-analytics__card-label {
	font-size: 0.7rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--cft-text-muted, #667);
	font-weight: 600;
}

.cft-analytics__delta {
	font-size: 0.85rem;
	font-weight: 700;
}

.cft-analytics__delta.is-up {
	color: #15803d;
}

.cft-analytics__delta.is-down {
	color: #b91c1c;
}

.cft-analytics__total {
	margin: 0.35rem 0 0.5rem;
	font-size: 1.75rem;
	font-weight: 700;
	color: var(--cft-navy-900, #122033);
	line-height: 1.15;
}

.cft-analytics__spark {
	display: block;
	width: 100%;
	height: 4.5rem;
}

.cft-analytics__months {
	display: flex;
	justify-content: space-between;
	gap: 0.15rem;
	margin-top: 0.25rem;
	font-size: 0.62rem;
	color: var(--cft-text-muted, #889);
	overflow: hidden;
}

.cft-analytics__report {
	margin-top: 1.75rem;
	padding: 1.25rem;
	background: #fff;
	border: 1px solid var(--cft-border, #d7e0ea);
	border-radius: 12px;
}

.cft-analytics__report h3 {
	margin: 0 0 0.35rem;
	font-size: 1.15rem;
}

.cft-analytics__customers {
	list-style: none;
	margin: 1rem 0 0;
	padding: 0;
}

.cft-analytics__customers li {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.7rem 0;
	border-bottom: 1px solid var(--cft-border, #e8eef4);
	font-size: 0.95rem;
}

.cft-analytics__customers li:last-child {
	border-bottom: 0;
}

.cft-staff-search__field {
	max-width: 28rem;
	margin-bottom: 0.5rem;
}

.cft-staff-search__input-wrap {
	position: relative;
	display: flex;
	align-items: center;
}

.cft-staff-search__input-wrap input[type="search"] {
	width: 100%;
	padding-right: 2.25rem;
}

.cft-staff-search__clear {
	position: absolute;
	right: 0.35rem;
	border: 0;
	background: transparent;
	color: var(--cft-text-muted, #667);
	font-size: 1.25rem;
	line-height: 1;
	cursor: pointer;
	padding: 0.25rem 0.45rem;
}

.cft-staff-search__status {
	min-height: 1.25rem;
	margin: 0 0 0.75rem;
	font-size: 0.85rem;
	color: var(--cft-text-muted, #667);
}

.cft-staff-search__row {
	cursor: pointer;
}

.cft-staff-search__row:hover,
.cft-staff-search__row:focus {
	background: rgba(15, 45, 80, 0.06);
	outline: none;
}

.cft-staff-learner__back {
	margin-bottom: 0.75rem;
}


/* Custom report (pivot) */
.cft-pivot {
	margin-top: 1.75rem;
	background: #fff;
	border: 1px solid var(--cft-border, #d7e0ea);
	border-radius: 12px;
	overflow: hidden;
}

.cft-pivot__head {
	padding: 1rem 1.25rem;
	border-bottom: 1px solid var(--cft-grey-100, #eef2f6);
}

.cft-pivot__title {
	margin: 0;
	font-size: 0.95rem;
	font-weight: 600;
}

.cft-pivot__lead {
	margin: 0.35rem 0 0;
	font-size: 0.78rem;
	color: var(--cft-text-muted, #6b7a8d);
	line-height: 1.45;
}

.cft-pivot__builder {
	padding: 1.1rem 1.25rem;
	display: flex;
	flex-direction: column;
	gap: 0.9rem;
	border-bottom: 1px solid var(--cft-grey-100, #eef2f6);
}

.cft-pivot__zones {
	display: grid;
	grid-template-columns: 1.2fr 1fr 1fr;
	gap: 0.9rem;
	align-items: start;
}

@media (max-width: 900px) {
	.cft-pivot__zones {
		grid-template-columns: 1fr;
	}
}

.cft-pivot__label {
	display: block;
	margin-bottom: 0.4rem;
	font-family: var(--cft-font-mono, ui-monospace, monospace);
	font-size: 0.62rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--cft-text-subtle, #8a97a8);
}

.cft-pivot__pills,
.cft-pivot__zone {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
	align-items: center;
	align-content: flex-start;
	min-height: 2.9rem;
}

.cft-pivot__zone {
	padding: 0.5rem;
	border-radius: 8px;
	border: 1.5px dashed var(--cft-border-strong, #c5d0dc);
	background: var(--cft-surface-2, #f5f8fb);
	transition: background 0.15s, border-color 0.15s;
}

.cft-pivot__zone.is-hot {
	border-color: var(--cft-navy-700, #103b58);
	background: rgba(16, 59, 88, 0.05);
}

.cft-pivot__pill {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.45rem 0.75rem;
	border-radius: 8px;
	font-size: 0.78rem;
	font-weight: 600;
	cursor: grab;
	user-select: none;
	background: #fff;
	color: var(--cft-navy-900, #122033);
}

.cft-pivot__pill--metric {
	border: 1px dashed var(--cft-orange, #e07a2a);
}

.cft-pivot__pill--segment {
	border: 1px dashed var(--cft-transport-blue, #2b6ca3);
}

.cft-pivot__pill--in-metric {
	border: 1px solid var(--cft-orange, #e07a2a);
	background: rgba(224, 122, 42, 0.08);
}

.cft-pivot__pill--in-segment {
	border: 1px solid var(--cft-transport-blue, #2b6ca3);
	background: rgba(43, 108, 163, 0.08);
}

.cft-pivot__pill-handle {
	font-size: 0.62rem;
	color: var(--cft-text-subtle, #8a97a8);
	letter-spacing: -0.08em;
}

.cft-pivot__pill-add,
.cft-pivot__pill-remove {
	border: 0;
	background: transparent;
	padding: 0 0.1rem;
	line-height: 1;
	font-size: 0.85rem;
	font-weight: 700;
	cursor: pointer;
	color: var(--cft-navy-700, #103b58);
	font-family: inherit;
}

.cft-pivot__pill-remove {
	color: var(--cft-text-subtle, #8a97a8);
}

.cft-pivot__pill-remove:hover {
	color: var(--cft-signal-red, #c62828);
}

.cft-pivot__hint {
	font-size: 0.75rem;
	color: var(--cft-text-subtle, #8a97a8);
	padding: 0.5rem 0.15rem;
}

.cft-pivot__controls {
	display: flex;
	align-items: flex-end;
	gap: 1.1rem;
	flex-wrap: wrap;
}

.cft-pivot__range {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}

.cft-pivot__range select,
.cft-pivot__dd-btn {
	padding: 0.5rem 0.7rem;
	border: 1px solid var(--cft-border-strong, #c5d0dc);
	border-radius: 8px;
	font-size: 0.78rem;
	font-family: inherit;
	background: #fff;
	color: var(--cft-navy-900, #122033);
	cursor: pointer;
}

.cft-pivot__dd {
	position: relative;
}

.cft-pivot__dd-btn {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.65rem;
	min-width: 12rem;
	font-weight: 600;
}

.cft-pivot__dd-caret {
	font-size: 0.55rem;
	color: var(--cft-text-subtle, #8a97a8);
}

.cft-pivot__dd-panel {
	position: absolute;
	z-index: 20;
	top: calc(100% + 0.35rem);
	left: 0;
	min-width: 16rem;
	max-height: 16rem;
	overflow: auto;
	padding: 0.55rem;
	background: #fff;
	border: 1px solid var(--cft-border, #d7e0ea);
	border-radius: 10px;
	box-shadow: 0 10px 28px rgba(15, 23, 42, 0.12);
}

.cft-pivot__dd-search {
	width: 100%;
	margin-bottom: 0.45rem;
	padding: 0.4rem 0.55rem;
	border: 1px solid var(--cft-border, #d7e0ea);
	border-radius: 6px;
	font-size: 0.78rem;
}

.cft-pivot__dd-row {
	display: flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.35rem 0.25rem;
	font-size: 0.8rem;
	cursor: pointer;
}

.cft-pivot__run {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	margin-left: auto;
}

.cft-pivot__run-icon,
.cft-pivot__export-icon {
	display: inline-flex;
	line-height: 0;
}

.cft-pivot__run-icon svg,
.cft-pivot__export-icon svg {
	display: block;
	width: 1rem;
	height: 1rem;
}

.cft-pivot__output {
	padding: 1.25rem;
}

.cft-pivot__output[hidden] {
	display: none !important;
}

.cft-pivot__output-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	flex-wrap: wrap;
	margin-bottom: 0.9rem;
}

.cft-pivot__output-title {
	font-family: var(--cft-font-mono, ui-monospace, monospace);
	font-size: 0.68rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--cft-text-subtle, #8a97a8);
}

.cft-pivot__export {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
}

.cft-pivot__chart {
	display: block;
	width: 100%;
	height: 200px;
	overflow: visible;
}

.cft-pivot__months {
	display: flex;
	justify-content: space-between;
	margin-top: 0.5rem;
	font-family: var(--cft-font-mono, ui-monospace, monospace);
	font-size: 0.55rem;
	color: var(--cft-text-subtle, #8a97a8);
}

.cft-pivot__legend {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	margin-top: 1rem;
}

.cft-pivot__legend-item {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.82rem;
}

.cft-pivot__swatch {
	width: 0.75rem;
	height: 0.75rem;
	border-radius: 3px;
	flex: none;
}

.cft-pivot__legend-label {
	font-weight: 600;
}

.cft-pivot__legend-total {
	font-family: var(--cft-font-mono, ui-monospace, monospace);
	font-size: 0.75rem;
	color: var(--cft-text-muted, #6b7a8d);
}

.cft-pivot__empty,
.cft-pivot__status {
	margin: 0 0 0.75rem;
	font-size: 0.85rem;
	color: var(--cft-text-muted, #6b7a8d);
	text-align: center;
}

/* —— Course content / builder —— */
.cft-courses__kicker {
	font-size: 0.72rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--cft-text-muted, #6b7a8d);
	margin-bottom: 0.35rem;
}

.cft-courses__heading-row {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
	margin-bottom: 1rem;
}

.cft-courses__heading-row .cft-screen-lead {
	margin-bottom: 0;
}

.cft-courses__heading-actions {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	flex-wrap: wrap;
}

.cft-btn--sm {
	padding: 0.35rem 0.65rem;
	font-size: 0.8rem;
	gap: 0.35rem;
}

.cft-btn--ghost {
	background: #fff;
	border: 1px solid var(--cft-border-strong, #c5ced6);
	color: var(--cft-control-navy, #103b58);
}

.cft-btn--ghost:hover,
.cft-btn--ghost:focus {
	background: var(--cft-grey-100, #f1f4f7);
}

.cft-courses__table .is-draft td {
	color: var(--cft-text-muted, #6b7a8d);
}

.cft-courses__code {
	font-family: var(--cft-font-mono, ui-monospace, monospace);
	font-size: 0.82rem;
	font-weight: 600;
}

.cft-courses__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	align-items: center;
}

.cft-course-modal[hidden] {
	display: none !important;
}

.cft-course-modal {
	position: fixed;
	inset: 0;
	z-index: 100050;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding: 2rem 1rem;
	overflow: auto;
}

.cft-course-modal__backdrop {
	position: fixed;
	inset: 0;
	background: rgba(10, 24, 36, 0.45);
}

.cft-course-modal__panel {
	position: relative;
	z-index: 1;
	width: min(720px, 100%);
	max-height: calc(100vh - 4rem);
	overflow: auto;
	background: #fff;
	border-radius: 12px;
	box-shadow: 0 16px 48px rgba(16, 59, 88, 0.22);
	padding: 1.25rem 1.35rem 1.1rem;
}

.cft-course-modal__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1rem;
}

.cft-course-modal__eyebrow {
	font-size: 0.7rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--cft-text-muted, #6b7a8d);
	font-family: var(--cft-font-mono, ui-monospace, monospace);
}

.cft-course-modal__title {
	margin: 0.15rem 0 0;
	font-size: 1.35rem;
	color: var(--cft-control-navy, #103b58);
}

.cft-course-modal__x {
	appearance: none;
	border: 0;
	background: transparent;
	color: var(--cft-text-muted, #6b7a8d);
	cursor: pointer;
	padding: 0.35rem;
	border-radius: 6px;
}

.cft-course-modal__x:hover {
	background: var(--cft-grey-100, #f1f4f7);
	color: var(--cft-control-navy, #103b58);
}

.cft-course-modal__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
	gap: 0.85rem;
	margin-bottom: 0.9rem;
}

.cft-field__hint {
	margin: 0.35rem 0 0;
	font-size: 0.72rem;
	color: var(--cft-text-muted, #6b7a8d);
}

.cft-course-modal__shop-image {
	margin-bottom: 0.85rem;
}

.cft-course-modal__description {
	margin-bottom: 0.85rem;
}

.cft-course-modal__description textarea {
	min-height: 6.5rem;
	resize: vertical;
}

.cft-course-modal__shop-image-add {
	appearance: none;
	background: transparent;
	border: 0;
	border-radius: 10px;
	padding: 0.4rem 1rem 0.4rem 0.4rem;
	margin-left: -0.4rem;
	font-family: inherit;
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	cursor: pointer;
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--cft-control-navy, #103b58);
	transition: background-color 0.15s ease, color 0.15s ease;
}

.cft-course-modal__shop-image-add:hover,
.cft-course-modal__shop-image-add:focus-visible {
	background: var(--cft-control-navy, #103b58);
	color: #fff;
}

.cft-course-modal__shop-image-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	border: 1.5px dashed #9eb4c8;
	border-radius: 8px;
	background: #eef3f7;
	color: var(--cft-control-navy, #103b58);
}

.cft-course-modal__shop-image-icon svg {
	width: 1.25rem;
	height: 1.25rem;
	stroke: currentColor;
	fill: none;
	stroke-width: 2;
}

.cft-course-modal__shop-image-add:hover .cft-course-modal__shop-image-icon,
.cft-course-modal__shop-image-add:focus-within .cft-course-modal__shop-image-icon {
	border-color: var(--cft-control-navy, #103b58);
}

.cft-course-modal__shop-image-preview {
	display: flex;
	align-items: center;
	gap: 0.85rem;
}

.cft-course-modal__shop-image-add[hidden],
.cft-course-modal__shop-image-preview[hidden] {
	display: none;
}

.cft-course-modal__shop-image-thumb {
	width: 7.5rem;
	height: 4.5rem;
	object-fit: cover;
	border-radius: 8px;
	border: 1px solid var(--cft-border, #dde3ea);
}

.cft-course-modal__shop-image-frame {
	position: relative;
	display: inline-flex;
}

.cft-course-modal__shop-image-remove {
	appearance: none;
	position: absolute;
	top: -0.5rem;
	right: -0.5rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.5rem;
	height: 1.5rem;
	padding: 0;
	border: 1px solid var(--cft-border-strong, #c5ced6);
	border-radius: 50%;
	background: #fff;
	color: var(--cft-text, #1f2933);
	cursor: pointer;
	box-shadow: 0 1px 3px rgba(15, 23, 42, 0.18);
}

.cft-course-modal__shop-image-remove svg {
	width: 0.85rem;
	height: 0.85rem;
}

.cft-course-modal__shop-image-remove:hover,
.cft-course-modal__shop-image-remove:focus-visible {
	background: #b42318;
	border-color: #b42318;
	color: #fff;
}

.cft-course-modal__status-seg {
	display: inline-flex;
	border: 1px solid var(--cft-border-strong, #c5ced6);
	border-radius: 8px;
	overflow: hidden;
	margin-bottom: 1rem;
}

.cft-seg {
	appearance: none;
	border: 0;
	background: #fff;
	padding: 0.45rem 0.9rem;
	font: inherit;
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--cft-text-muted, #6b7a8d);
	cursor: pointer;
}

.cft-seg.is-active {
	background: var(--cft-control-navy, #103b58);
	color: #fff;
}

.cft-course-modal__modules {
	margin-bottom: 1rem;
}

.cft-course-modal__modules-head {
	font-size: 0.7rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--cft-text-muted, #6b7a8d);
	font-family: var(--cft-font-mono, ui-monospace, monospace);
	margin-bottom: 0.55rem;
}

.cft-course-modal__modules-empty {
	border: 1.5px dashed var(--cft-border-strong, #c5ced6);
	border-radius: 10px;
	padding: 1.75rem 1rem;
	text-align: center;
	color: var(--cft-text-muted, #6b7a8d);
	font-size: 0.9rem;
	margin-bottom: 0.75rem;
}

.cft-course-modal__modules-list {
	list-style: none;
	margin: 0 0 0.75rem;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
}

.cft-course-module {
	border: 1px solid var(--cft-border, #dde3ea);
	border-radius: 10px;
	padding: 0.75rem 0.85rem;
	background: #fafbfc;
}

.cft-course-module__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 0.55rem;
}

.cft-course-module__type {
	font-size: 0.85rem;
}

.cft-course-module__head-check {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	margin: 0 auto 0 100px;
	font-size: 0.82rem;
	font-weight: 500;
	cursor: pointer;
}

.cft-course-module__remove {
	appearance: none;
	border: 0;
	background: transparent;
	cursor: pointer;
	color: var(--cft-text-muted, #6b7a8d);
	padding: 0.2rem;
}

.cft-course-module__body .cft-field {
	margin-bottom: 0.55rem;
}

.cft-course-module__file-name {
	display: block;
	margin-top: 0.35rem;
	font-size: 0.8rem;
	color: var(--cft-control-navy, #103b58);
	word-break: break-all;
}

.cft-course-module__types {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.45rem 1rem;
	align-items: start;
}

.cft-course-module__types label {
	display: flex;
	align-items: flex-start;
	justify-content: flex-start;
	gap: 10px;
	min-width: 0;
	font-size: 0.82rem;
	font-weight: 500;
	line-height: 1.3;
}

.cft-course-module__types input {
	flex: 0 0 auto;
	width: auto;
	height: auto;
	margin: 0.15rem 0 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
}

@media (max-width: 560px) {
	.cft-course-module__types {
		grid-template-columns: 1fr 1fr;
	}
}

.cft-course-modal__add-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
}

.cft-course-modal__csv {
	display: flex;
	gap: 0.85rem;
	align-items: flex-start;
	padding: 1rem;
	border-radius: 10px;
	border: 1.5px dashed #9eb4c8;
	background: #eef3f7;
	margin-bottom: 1rem;
}

.cft-course-modal__csv-icon {
	flex: none;
	color: var(--cft-control-navy, #103b58);
	opacity: 0.7;
}

.cft-course-modal__csv strong {
	display: block;
	margin-bottom: 0.25rem;
}

.cft-course-modal__csv p {
	margin: 0 0 0.65rem;
	font-size: 0.82rem;
	color: var(--cft-text-muted, #6b7a8d);
}

.cft-course-modal__csv-actions {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	flex-wrap: wrap;
}

.cft-course-modal__csv-name {
	font-size: 0.8rem;
	color: var(--cft-control-navy, #103b58);
}

.cft-course-modal__feedback {
	margin: 0 0 0.75rem;
	font-size: 0.85rem;
	color: #9a1f1f;
}

.cft-course-modal__feedback.is-ok {
	color: #1b6b3a;
}

.cft-course-modal__foot {
	display: flex;
	justify-content: flex-end;
	gap: 0.55rem;
	padding-top: 0.35rem;
	border-top: 1px solid var(--cft-border, #dde3ea);
}

.cft-course-modal__foot .cft-btn:disabled {
	background: var(--cft-grey-200, #e2e8ee);
	color: var(--cft-text-muted, #6b7a8d);
	border-color: transparent;
	cursor: not-allowed;
}

/* —— Live Classes —— */
.cft-live__seg {
	display: inline-flex;
	border: 1px solid var(--cft-border-strong, #c5ced6);
	border-radius: 8px;
	overflow: hidden;
	margin-bottom: 0.9rem;
}

.cft-live__seg .cft-seg {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
}

.cft-live__seg .cft-seg + .cft-seg {
	border-left: 1px solid var(--cft-border-strong, #c5ced6);
}

.cft-live__count {
	min-width: 1.4rem;
	padding: 0.05rem 0.4rem;
	border-radius: 999px;
	font-size: 0.7rem;
	text-align: center;
	background: var(--cft-grey-200, #e2e8ee);
	color: var(--cft-navy-700, #103b58);
}

.cft-live__seg .cft-seg.is-active .cft-live__count {
	background: rgba(255, 255, 255, 0.2);
	color: #fff;
}

/* width: 0 keeps the table out of the portal grid's min-content width, so it scrolls instead of widening the page. */
.cft-live__scroll {
	width: 0;
	min-width: 100%;
	overflow-x: auto;
}

.cft-live__table {
	min-width: 46rem;
}

.cft-live__table tr[hidden] {
	display: none;
}

.cft-live__name .cft-badge {
	margin-left: 0.35rem;
}

.cft-live__teacher {
	font-weight: 600;
}

.cft-live__sub {
	display: block;
	font-size: 0.75rem;
	color: var(--cft-text-muted, #6b7a8d);
}

.cft-live__date {
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}

.cft-badge--navy {
	background: var(--cft-control-navy, #103b58);
	color: #fff;
}

.cft-live__participants .cft-badge {
	margin-left: 0.4rem;
	vertical-align: 1px;
}

.cft-course-modal--participants .cft-course-modal__panel {
	width: min(760px, 100%);
}

.cft-course-modal--participants .cft-live__scroll {
	margin-bottom: 1rem;
}

.cft-live__participants-meta {
	margin: 0.3rem 0 0;
	font-size: 0.82rem;
	color: var(--cft-text-muted, #6b7a8d);
}

.cft-live__participants .cft-live__attended-col {
	width: 6.5rem;
	text-align: center;
}

.cft-live__attended {
	width: 1.1rem;
	height: 1.1rem;
	margin: 0;
	vertical-align: middle;
	accent-color: var(--cft-control-navy, #103b58);
	cursor: pointer;
}

.cft-live__attended:disabled {
	cursor: default;
}

.cft-live__attended:checked:disabled {
	-webkit-appearance: none;
	appearance: none;
	border-radius: 3px;
	background: var(--cft-control-navy, #103b58) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M3.5 8.5l3 3 6-7'/%3E%3C/svg%3E") center / 80% no-repeat;
}

.cft-live__attendance-status {
	margin: 0 0 1rem;
	background: var(--cft-grey-100, #f3f5f8);
	font-size: 0.88rem;
}

/* —— ILT class scheduling —— */
.cft-course-modal--ilt .cft-course-modal__panel {
	width: min(560px, 100%);
}

.cft-course-modal--ilt .cft-field {
	margin-bottom: 0.9rem;
}

.cft-course-modal--ilt .cft-course-modal__grid .cft-field {
	margin-bottom: 0;
}

.cft-course-modal--ilt .cft-ilt__tz {
	margin: -0.5rem 0 0.9rem;
}

.cft-field input[readonly] {
	background: var(--cft-grey-100, #eef1f3);
	color: var(--cft-grey-600, #4a5f70);
}

.cft-combo {
	position: relative;
}

.cft-combo__toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	width: 100%;
	border: 1px solid var(--cft-border-strong);
	border-radius: 8px;
	padding: 0.55rem 0.65rem;
	font: inherit;
	text-align: left;
	color: inherit;
	background: #fff;
	cursor: pointer;
}

.cft-combo__toggle.is-placeholder .cft-combo__current {
	color: var(--cft-text-muted, #6b7a8d);
}

.cft-combo__current {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.cft-combo__chevron {
	flex: none;
	width: 1rem;
	height: 1rem;
	transition: transform 0.15s ease;
}

.cft-combo.is-open .cft-combo__chevron {
	transform: rotate(180deg);
}

.cft-combo__pop {
	position: absolute;
	z-index: 5;
	top: calc(100% + 4px);
	left: 0;
	right: 0;
	background: #fff;
	border: 1px solid var(--cft-border-strong);
	border-radius: 8px;
	box-shadow: 0 10px 28px rgba(16, 59, 88, 0.18);
	overflow: hidden;
}

.cft-combo.is-up .cft-combo__pop {
	top: auto;
	bottom: calc(100% + 4px);
}

.cft-field .cft-combo__search {
	display: block;
	width: 100%;
	border: 0;
	border-bottom: 1px solid var(--cft-border, #dde3ea);
	border-radius: 0;
	padding: 0.55rem 0.65rem;
}

.cft-field .cft-combo__search:focus {
	outline: none;
	box-shadow: inset 0 -2px 0 var(--cft-navy-600, #1c4d6d);
}

.cft-combo__list {
	max-height: 14rem;
	margin: 0;
	padding: 0.25rem 0;
	overflow-y: auto;
	list-style: none;
}

.cft-combo__option {
	display: flex;
	flex-direction: column;
	padding: 0.45rem 0.65rem;
	cursor: pointer;
}

.cft-combo__option.is-active {
	background: var(--cft-grey-100, #eef1f3);
}

.cft-combo__option.is-selected .cft-combo__title {
	font-weight: 600;
}

.cft-combo__meta {
	font-size: 0.72rem;
	color: var(--cft-text-muted, #6b7a8d);
}

.cft-combo__empty {
	margin: 0;
	padding: 0.6rem 0.65rem;
	font-size: 0.82rem;
	color: var(--cft-text-muted, #6b7a8d);
}

.cft-combo__create {
	display: flex;
	gap: 0.4rem;
	padding: 0.45rem;
	border-bottom: 1px solid var(--cft-border, #dde3ea);
	background: var(--cft-grey-100, #f3f5f8);
}

.cft-field .cft-combo__create-input {
	flex: 1;
	min-width: 0;
	padding: 0.4rem 0.55rem;
}

.cft-combo__create-btn {
	flex: none;
}

/* —— ILT course files (Live Classes modal) —— */
.cft-field__label {
	display: block;
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--cft-grey-600);
	margin-bottom: 0.3rem;
}

.cft-field .cft-ilt-files-drop {
	position: relative;
	display: flex;
	align-items: center;
	gap: 0.6rem;
	margin: 0;
	padding: 0.75rem 0.85rem;
	border: 1px dashed var(--cft-border-strong);
	border-radius: 8px;
	font-size: 0.85rem;
	font-weight: 400;
	color: var(--cft-grey-600, #4a5f70);
	background: #fff;
	cursor: pointer;
}

.cft-field .cft-ilt-files-drop:hover,
.cft-field .cft-ilt-files-drop.is-dragover,
.cft-field .cft-ilt-files-drop:focus-within {
	border-color: var(--cft-navy-600, #1c4d6d);
	background: var(--cft-grey-100, #f3f5f8);
}

.cft-ilt-files-drop__icon {
	display: inline-flex;
	color: var(--cft-navy-600, #1c4d6d);
}

.cft-ilt-files-drop__icon svg {
	width: 1.25rem;
	height: 1.25rem;
}

.cft-field .cft-ilt-files-drop__input {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	border: 0;
	opacity: 0;
	overflow: hidden;
}

.cft-ilt-files-picked {
	margin: 0.5rem 0 0;
	padding: 0;
	list-style: none;
	border: 1px solid var(--cft-border, #dde3ea);
	border-radius: 8px;
}

.cft-ilt-files-picked__item {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	padding: 0.4rem 0.65rem;
	font-size: 0.85rem;
}

.cft-ilt-files-picked__item + .cft-ilt-files-picked__item {
	border-top: 1px solid var(--cft-border, #dde3ea);
}

.cft-ilt-files-picked__name {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.cft-ilt-files-picked__size {
	flex: none;
	font-size: 0.75rem;
	color: var(--cft-text-muted, #6b7a8d);
}

.cft-ilt-files-picked__remove {
	flex: none;
	border: 0;
	padding: 0.15rem 0.35rem;
	background: transparent;
	font: inherit;
	font-size: 0.78rem;
	color: var(--cft-danger, #b42318);
	cursor: pointer;
}

.cft-ilt-files-picked__remove:hover {
	text-decoration: underline;
}

.cft-ilt-customer-certs {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 0;
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--cft-text, #1c2834);
	cursor: pointer;
}

.cft-field .cft-ilt-customer-certs input[type="checkbox"] {
	width: auto;
	flex: 0 0 auto;
	margin: 0.2rem 0 0;
}

/* —— Staff Promotions —— */
.cft-promos__panel {
	background: #fff;
	border: 1px solid var(--cft-border, #dde3ea);
	border-radius: 10px;
	overflow: hidden;
}

.cft-promos__panel-head,
.cft-promos__form-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 0.85rem 1rem;
	border-bottom: 1px solid var(--cft-border, #dde3ea);
}

.cft-promos__panel-head h3,
.cft-promos__form-head h3 {
	margin: 0;
	font-size: 0.95rem;
}

.cft-promos__table-wrap {
	overflow-x: auto;
}

.cft-promos__table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.875rem;
}

.cft-promos__table th,
.cft-promos__table td {
	padding: 0.75rem 1rem;
	text-align: left;
	border-bottom: 1px solid var(--cft-border, #e8eef3);
	vertical-align: top;
}

.cft-promos__table th {
	font-size: 0.7rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--cft-text-muted, #6b7a8d);
	background: var(--cft-grey-100, #f3f6f8);
}

.cft-promos__code {
	font-family: var(--cft-font-mono, ui-monospace, monospace);
	letter-spacing: 0.02em;
}

.cft-promos__meta {
	margin-top: 0.2rem;
	font-size: 0.75rem;
	color: var(--cft-text-muted, #6b7a8d);
}

.cft-promos__badge {
	display: inline-block;
	padding: 0.15rem 0.45rem;
	border-radius: 4px;
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	background: var(--cft-grey-200, #e2e8ee);
	color: #445566;
}

.cft-promos__badge.is-active {
	background: #e6f4ea;
	color: #1b5e20;
}

.cft-promos__row-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
	margin-top: 0.35rem;
}

.cft-link-btn {
	appearance: none;
	border: 0;
	background: none;
	padding: 0;
	color: var(--cft-control-navy, #103b58);
	font: inherit;
	font-size: 0.8rem;
	cursor: pointer;
	text-decoration: underline;
}

.cft-link-btn--danger {
	color: #b32d2e;
}

.cft-promos__form {
	padding: 1rem;
	background: var(--cft-grey-100, #f3f6f8);
	border-top: 1px solid var(--cft-border, #dde3ea);
}

.cft-promos__form-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
	gap: 0.75rem;
	margin-bottom: 1rem;
}

.cft-promos__pct-wrap {
	display: flex;
	align-items: center;
	gap: 0.35rem;
}

.cft-promos__pct-wrap input {
	flex: 1 1 auto;
	min-width: 0;
}

.cft-promos__tiers {
	margin-top: 0.25rem;
	background: #fff;
	border: 1px solid var(--cft-border, #dde3ea);
	border-radius: 8px;
	overflow: hidden;
}

.cft-promos__tiers-head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.5rem 1rem;
	padding: 0.75rem 1rem;
	border-bottom: 1px solid var(--cft-border, #e8eef3);
}

.cft-promos__tiers-hint {
	font-size: 0.78rem;
	color: var(--cft-text-muted, #6b7a8d);
}

.cft-promos__tier-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.cft-promos__tier-list li {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 0.55rem 1rem;
	border-bottom: 1px solid var(--cft-border, #eef2f6);
	font-size: 0.875rem;
}

.cft-promos__tier-add {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	padding: 0.75rem 1rem;
	background: var(--cft-grey-100, #f3f6f8);
}

.cft-promos__tier-add input[type="number"] {
	width: 8rem;
}

.cft-promos__tiers-note {
	margin: 0;
	padding: 0.75rem 1rem;
	font-size: 0.78rem;
	color: var(--cft-text-muted, #6b7a8d);
}

.cft-promos__form-actions {
	margin-top: 0.85rem;
}

.cft-checkout-coupon {
	margin: 0.85rem 0;
}

.cft-checkout-coupon__row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
}

.cft-checkout-coupon__row input {
	flex: 1 1 8rem;
	min-width: 0;
}

.cft-checkout-coupon__msg {
	margin: 0.4rem 0 0;
	font-size: 0.85rem;
}

.cft-checkout-coupon__msg.is-error {
	color: #b32d2e;
}

/* —— Staff Customers (cards + profile) —— */

.cft-customers__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0.75rem;
	flex-wrap: wrap;
	margin-bottom: 1.1rem;
}

.cft-customers__lead {
	margin: 0;
	flex: 1 1 16rem;
}

.cft-customers__export {
	flex: none;
}

.cft-customers__export-icon {
	display: inline-flex;
	width: 1rem;
	height: 1rem;
}

.cft-customers__export-icon svg {
	width: 1rem;
	height: 1rem;
	stroke: currentColor;
	fill: none;
	stroke-width: 2;
}

.cft-customers__search {
	margin-bottom: 1rem;
}

.cft-customers__search input[type="search"] {
	width: 100%;
	box-sizing: border-box;
	padding: 0.6rem 0.75rem;
	border: 1px solid var(--border-strong, var(--cft-grey-400));
	border-radius: var(--radius-md, 10px);
	font: inherit;
	font-size: 0.9rem;
	background: var(--surface, #fff);
	color: var(--text, #242424);
}

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

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

.cft-cust-card {
	background: var(--surface, #fff);
	border: 1px solid var(--border, var(--cft-grey-200));
	border-radius: var(--radius-lg, 14px);
	box-shadow: 0 1px 2px rgba(16, 59, 88, 0.04);
	padding: 1.1rem;
	cursor: pointer;
	transition: box-shadow 0.15s ease, border-color 0.15s ease;
}

.cft-cust-card:hover,
.cft-cust-card:focus {
	outline: none;
	box-shadow: 0 6px 18px rgba(16, 59, 88, 0.1);
	border-color: var(--border-strong, var(--cft-grey-400));
}

.cft-cust-card__top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0.65rem;
	margin-bottom: 0.9rem;
}

.cft-cust-card__identity {
	min-width: 0;
	flex: 1;
}

.cft-cust-card__name {
	margin: 0;
	font-size: 0.97rem;
	font-weight: 600;
	line-height: 1.3;
	color: var(--cft-ink-900, #242424);
}

.cft-cust-card__meta {
	margin: 0.25rem 0 0;
	font-family: var(--font-mono, var(--cft-font-mono, ui-monospace, monospace));
	font-size: 0.72rem;
	color: var(--text-muted, var(--cft-grey-600));
}

.cft-cust-card__valid {
	flex: none;
	font-family: var(--font-mono, ui-monospace, monospace);
	font-size: 0.7rem;
	font-weight: 600;
	white-space: nowrap;
}

.cft-cust-card__metrics {
	display: flex;
	gap: 1.35rem;
}

.cft-cust-card__metric-val {
	font-size: 1.2rem;
	font-weight: 600;
	line-height: 1.15;
	color: var(--cft-ink-900, #242424);
}

.cft-cust-card__metric-val--accent {
	color: var(--cft-transport-blue);
}

.cft-cust-card__metric-lbl {
	margin-top: 0.15rem;
	font-family: var(--font-mono, ui-monospace, monospace);
	font-size: 0.62rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--text-subtle, var(--cft-grey-500));
}

.cft-cust-card__bar {
	margin-top: 0.75rem;
	height: 6px;
	background: var(--cft-grey-200);
	border-radius: 3px;
	overflow: hidden;
}

.cft-cust-card__bar > span {
	display: block;
	height: 100%;
	border-radius: 3px;
	min-width: 0;
}

.cft-customer-profile__back {
	appearance: none;
	background: transparent;
	border: 0;
	color: var(--text-muted, var(--cft-grey-600));
	font: inherit;
	font-size: 0.82rem;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	margin: 0 0 0.9rem;
	padding: 0;
}

.cft-customer-profile__back:hover,
.cft-customer-profile__back:focus {
	color: var(--cft-control-navy);
	text-decoration: underline;
}

.cft-customer-profile__header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0.75rem;
	flex-wrap: wrap;
	margin-bottom: 1.1rem;
}

.cft-customer-profile__name {
	margin: 0;
	font-size: 1.35rem;
}

.cft-customer-profile__meta {
	margin: 0.3rem 0 0;
	font-family: var(--font-mono, ui-monospace, monospace);
	font-size: 0.75rem;
	color: var(--text-muted, var(--cft-grey-600));
}

.cft-customer-profile__actions {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	flex-wrap: wrap;
}

.cft-customer-profile__compliant {
	font-family: var(--font-mono, ui-monospace, monospace);
	font-size: 0.75rem;
	font-weight: 600;
	white-space: nowrap;
}

.cft-customer-profile__login-mgr {
	background: var(--cft-control-navy);
	border-color: var(--cft-control-navy);
	white-space: nowrap;
}

.cft-customer-profile__login-mgr svg {
	width: 0.95rem;
	height: 0.95rem;
	stroke: currentColor;
	fill: none;
	stroke-width: 2;
}

.cft-customer-profile__kpis {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.9rem;
	margin-bottom: 1rem;
}

@media (max-width: 900px) {
	.cft-customer-profile__kpis {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.cft-customer-profile__kpi {
	background: var(--surface, #fff);
	border: 1px solid var(--border, var(--cft-grey-200));
	border-radius: var(--radius-lg, 14px);
	padding: 0.95rem 1rem;
}

.cft-customer-profile__kpi-lbl {
	font-family: var(--font-mono, ui-monospace, monospace);
	font-size: 0.62rem;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: var(--text-subtle, var(--cft-grey-500));
	margin-bottom: 0.35rem;
}

.cft-customer-profile__kpi-val {
	font-size: 1.5rem;
	font-weight: 600;
	line-height: 1.1;
	color: var(--cft-ink-900, #242424);
}

.cft-customer-profile__kpi-val--accent {
	color: var(--cft-transport-blue);
}

.cft-customer-profile__admins {
	background: var(--surface, #fff);
	border: 1px solid var(--border, var(--cft-grey-200));
	border-radius: var(--radius-lg, 14px);
	box-shadow: 0 1px 2px rgba(16, 59, 88, 0.04);
	padding: 1.1rem;
	margin-bottom: 1rem;
}

.cft-customer-profile__admins-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin-bottom: 0.9rem;
}

.cft-customer-profile__section-title {
	margin: 0 0 0.85rem;
	font-size: 0.92rem;
	font-weight: 600;
	color: var(--cft-ink-900, #242424);
}

.cft-customer-profile__admins .cft-customer-profile__section-title {
	margin: 0;
}

.cft-customer-profile__section-count {
	font-family: var(--font-mono, ui-monospace, monospace);
	font-size: 0.7rem;
	font-weight: 500;
	color: var(--text-subtle, var(--cft-grey-500));
	margin-left: 0.35rem;
}

.cft-customer-profile__admins-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.75rem;
}

@media (max-width: 900px) {
	.cft-customer-profile__admins-grid {
		grid-template-columns: 1fr;
	}
}

.cft-customer-profile__admin {
	border: 1px solid var(--border, var(--cft-grey-200));
	border-radius: var(--radius-md, 10px);
	padding: 0.9rem;
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
	min-height: 100%;
}

.cft-customer-profile__admin-top {
	display: flex;
	align-items: center;
	gap: 0.65rem;
}

.cft-customer-profile__admin-avatar {
	width: 2.375rem;
	height: 2.375rem;
	flex: none;
	border-radius: var(--radius-sm, 6px);
	background: var(--cft-control-navy);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 600;
	font-size: 0.8rem;
}

.cft-customer-profile__admin-name {
	font-weight: 600;
	font-size: 0.85rem;
	line-height: 1.2;
	color: var(--cft-ink-900, #242424);
}

.cft-customer-profile__admin-title {
	font-size: 0.72rem;
	color: var(--text-muted, var(--cft-grey-600));
}

.cft-customer-profile__admin-email {
	font-family: var(--font-mono, ui-monospace, monospace);
	font-size: 0.7rem;
	color: var(--text-subtle, var(--cft-grey-500));
	word-break: break-all;
}

.cft-customer-profile__admin-foot {
	margin-top: auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
}

.cft-customer-profile__admin-tag {
	font-family: var(--font-mono, ui-monospace, monospace);
	font-size: 0.6rem;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	padding: 0.15rem 0.45rem;
	border-radius: var(--radius-sm, 6px);
	background: var(--surface-2, var(--cft-grey-100));
	color: var(--text-muted, var(--cft-grey-600));
	white-space: nowrap;
}

.cft-customer-profile__admin-login {
	appearance: none;
	background: transparent;
	border: 0;
	color: var(--cft-control-navy);
	font: inherit;
	font-weight: 600;
	font-size: 0.75rem;
	cursor: pointer;
	padding: 0;
	white-space: nowrap;
}

.cft-customer-profile__admin-login:hover,
.cft-customer-profile__admin-login:focus {
	text-decoration: underline;
}

.cft-customer-profile__split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
	align-items: start;
}

@media (max-width: 900px) {
	.cft-customer-profile__split {
		grid-template-columns: 1fr;
	}
}

.cft-customer-profile__panel {
	background: var(--surface, #fff);
	border: 1px solid var(--border, var(--cft-grey-200));
	border-radius: var(--radius-lg, 14px);
	box-shadow: 0 1px 2px rgba(16, 59, 88, 0.04);
	padding: 1.1rem;
}

.cft-customer-profile__panel--orders {
	padding: 0;
	overflow: hidden;
}

.cft-customer-profile__panel-pad {
	padding: 1rem 1.1rem 0;
}

.cft-customer-profile__panel--orders .cft-customer-profile__section-title {
	margin-bottom: 0.75rem;
}

.cft-customer-profile__courses {
	display: flex;
	flex-direction: column;
	gap: 0.9rem;
}

.cft-customer-profile__course-row-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 0.35rem;
	gap: 0.5rem;
}

.cft-customer-profile__course-code {
	font-family: var(--font-mono, ui-monospace, monospace);
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--cft-navy-700);
}

.cft-customer-profile__course-frac {
	font-family: var(--font-mono, ui-monospace, monospace);
	font-size: 0.72rem;
	color: var(--text-muted, var(--cft-grey-600));
	white-space: nowrap;
}

.cft-customer-profile__course-bar {
	height: 7px;
	background: var(--cft-grey-200);
	border-radius: 3px;
	overflow: hidden;
}

.cft-customer-profile__course-bar > span {
	display: block;
	height: 100%;
	border-radius: 3px;
}

.cft-customer-profile__order {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.75rem 1.1rem;
	border-top: 1px solid var(--cft-grey-100);
}

.cft-customer-profile__order-main {
	flex: 1;
	min-width: 0;
}

.cft-customer-profile__order-no {
	font-family: var(--font-mono, ui-monospace, monospace);
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--cft-navy-700);
}

.cft-customer-profile__order-desc {
	font-size: 0.75rem;
	color: var(--text-muted, var(--cft-grey-600));
}

.cft-customer-profile__order-total {
	font-weight: 600;
	font-size: 0.85rem;
	color: var(--cft-ink-900, #242424);
}

.cft-customer-profile__order-badge {
	font-family: var(--font-mono, ui-monospace, monospace);
	font-size: 0.62rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding: 0.2rem 0.5rem;
	border-radius: var(--radius-sm, 6px);
	white-space: nowrap;
}

.cft-customer-profile__orders-empty {
	padding: 0 1.1rem 1.1rem;
}

/* —— Staff Cert registry —— */

.cft-registry__lead {
	margin: 0;
}

.cft-registry__toolbar {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
	margin: 0 0 1.1rem;
	flex-wrap: wrap;
}

.cft-registry__filters {
	display: flex;
	gap: 10px;
	align-items: center;
	margin: 0 0 12px;
}

.cft-registry__filters input[type="search"] {
	flex: 1 1 auto;
	min-width: 0;
	box-sizing: border-box;
	padding: 9px 12px;
	border: 1px solid var(--border-strong, var(--cft-grey-300));
	border-radius: var(--radius-md, 8px);
	font: inherit;
	font-size: 13.5px;
	line-height: 1.3;
	background: var(--surface, #fff);
	color: var(--text, #1a1a1a);
}

.cft-registry__filters select {
	flex: 0 0 auto;
	min-width: 11rem;
	max-width: 14rem;
	padding: 9px 30px 9px 12px;
	border: 1px solid var(--border-strong, var(--cft-grey-300));
	border-radius: var(--radius-md, 8px);
	font: inherit;
	font-size: 13.5px;
	line-height: 1.3;
	background-color: var(--surface, #fff);
	color: var(--text, #1a1a1a);
	cursor: pointer;
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.65rem center;
}

.cft-registry__per {
	display: flex;
	align-items: center;
	gap: 0.45rem;
	flex: 0 0 auto;
	font-size: 13.5px;
	color: var(--text-muted, var(--cft-grey-600));
}

.cft-registry__per select {
	min-width: 5.5rem;
	max-width: 6.5rem;
}

@media (max-width: 520px) {
	.cft-registry__filters {
		flex-wrap: wrap;
	}

	.cft-registry__filters input[type="search"],
	.cft-registry__filters select,
	.cft-registry__per {
		flex: 1 1 100%;
		max-width: none;
	}
}

.cft-registry__table {
	--cft-registry-row: 3.75rem;
	background: var(--surface, #fff);
	border: 1px solid var(--border, var(--cft-grey-200));
	border-radius: var(--radius-lg, 14px);
	box-shadow: 0 1px 2px rgba(16, 59, 88, 0.04);
	overflow: hidden;
}

.cft-registry__body {
	max-height: calc(var(--cft-registry-row) * 25);
	overflow: auto;
}

.cft-registry.is-loading .cft-registry__body {
	opacity: 0.55;
}

.cft-registry__head,
.cft-registry__row {
	display: grid;
	grid-template-columns: 1.3fr 0.95fr 1fr 0.85fr 0.95fr 0.75fr;
	gap: 0.75rem;
	align-items: center;
	padding: 0.75rem 1.1rem;
}

.cft-registry__head {
	background: var(--surface-2, var(--cft-grey-100));
	font-family: var(--font-mono, ui-monospace, monospace);
	font-size: 0.66rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--text-subtle, var(--cft-grey-500));
	font-weight: 500;
}

.cft-registry__col-status,
.cft-registry__status {
	text-align: right;
}

.cft-registry__row {
	min-height: var(--cft-registry-row, 3.75rem);
	box-sizing: border-box;
	border-top: 1px solid var(--cft-grey-100, #eef1f3);
}

.cft-registry__name {
	font-size: 0.85rem;
	font-weight: 600;
	line-height: 1.25;
	color: var(--cft-ink-900, #242424);
}

.cft-registry__code {
	margin-top: 0.15rem;
	font-family: var(--font-mono, ui-monospace, monospace);
	font-size: 0.72rem;
	color: var(--text-muted, var(--cft-grey-600));
}

.cft-registry__cert,
.cft-registry__date,
.cft-registry__mode {
	font-family: var(--font-mono, ui-monospace, monospace);
	font-size: 0.75rem;
	color: var(--text-muted, var(--cft-grey-600));
}

.cft-registry__cert {
	color: var(--cft-navy-700, #103b58);
}

.cft-registry__cert-link {
	color: inherit;
	text-decoration: none;
	font-weight: 500;
}

.cft-registry__cert-link:hover,
.cft-registry__cert-link:focus {
	text-decoration: underline;
	color: var(--cft-control-navy);
}

.cft-registry__badge {
	display: inline-block;
	font-family: var(--font-mono, ui-monospace, monospace);
	font-size: 0.62rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding: 0.2rem 0.5rem;
	border-radius: var(--radius-sm, 6px);
	white-space: nowrap;
}

.cft-registry__empty {
	padding: 1.1rem;
}

.cft-registry__pager {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem 1rem;
	flex-wrap: wrap;
	margin-top: 0.85rem;
}

.cft-registry__count,
.cft-registry__pager-nav span {
	margin: 0;
	font-size: 13px;
	color: var(--text-muted, var(--cft-grey-600));
}

.cft-registry__pager-nav {
	display: flex;
	align-items: center;
	gap: 0.55rem;
}

.cft-registry__pager-nav .cft-btn {
	min-height: 36px;
	padding: 0.4rem 0.8rem;
}

.cft-registry__pager-nav .cft-btn:disabled {
	opacity: 0.45;
	cursor: default;
}

@media (max-width: 820px) {
	.cft-registry__head {
		display: none;
	}

	.cft-registry__row {
		grid-template-columns: 1fr 1fr;
		gap: 0.5rem 0.75rem;
		padding: 1rem 1.1rem;
	}

	.cft-registry__holder {
		grid-column: 1 / -1;
	}

	.cft-registry__status {
		text-align: left;
	}
}




/* —— Staff Learners list + detail —— */

.cft-staff-learners__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0.75rem;
	flex-wrap: wrap;
	margin-bottom: 0.85rem;
}

.cft-staff-learners__lead {
	margin: 0;
	flex: 1 1 16rem;
}

.cft-staff-learners__export-icon {
	display: inline-flex;
	width: 1rem;
	height: 1rem;
}

.cft-staff-learners__export-icon svg {
	width: 1rem;
	height: 1rem;
	stroke: currentColor;
	fill: none;
	stroke-width: 2;
}

.cft-staff-learners__filters {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.65rem 0.75rem;
	margin-bottom: 0.75rem;
}

.cft-staff-learners__search,
.cft-staff-learners__filters input[type="search"] {
	flex: 1 1 16rem;
	min-width: 12rem;
}

.cft-staff-learners__per {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-size: 13px;
	color: var(--text-muted, var(--cft-grey-600));
}

.cft-staff-learners__per select {
	min-height: 36px;
	padding: 0.35rem 0.55rem;
	border: 1px solid var(--border-strong, var(--cft-grey-400));
	border-radius: var(--radius-md, 10px);
	font: inherit;
	background: var(--surface, #fff);
	color: var(--text, #242424);
}

.cft-staff-learners__pager {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem 1rem;
	flex-wrap: wrap;
	margin-top: 0.85rem;
}

.cft-staff-learners__count,
.cft-staff-learners__pager-nav span {
	margin: 0;
	font-size: 13px;
	color: var(--text-muted, var(--cft-grey-600));
}

.cft-staff-learners__pager-nav {
	display: flex;
	align-items: center;
	gap: 0.55rem;
}

.cft-staff-learners__pager-nav .cft-btn {
	min-height: 36px;
	padding: 0.4rem 0.8rem;
}

.cft-staff-learners__pager-nav .cft-btn:disabled {
	opacity: 0.45;
	cursor: default;
}

.cft-staff-learners.is-loading {
	opacity: 0.65;
	pointer-events: none;
}

.cft-staff-learners__search input[type="search"],
.cft-staff-learners__filters input[type="search"] {
	width: 100%;
	box-sizing: border-box;
	padding: 0.6rem 0.75rem;
	border: 1px solid var(--border-strong, var(--cft-grey-400));
	border-radius: var(--radius-md, 10px);
	font: inherit;
	font-size: 0.9rem;
	background: var(--surface, #fff);
	color: var(--text, #242424);
}

.cft-staff-learners__table {
	background: var(--surface, #fff);
	border: 1px solid var(--border, var(--cft-grey-200));
	border-radius: var(--radius-lg, 14px);
	box-shadow: 0 1px 2px rgba(16, 59, 88, 0.04);
	overflow: hidden;
}

.cft-staff-learners__thead,
.cft-staff-learners__row {
	display: grid;
	grid-template-columns: 1.3fr 1fr 1fr 1.6fr 1.3fr 0.9fr;
	gap: 0.75rem;
	align-items: center;
	padding: 0.75rem 1.1rem;
}

.cft-staff-learners__thead {
	background: var(--surface-2, var(--cft-grey-100));
	font-family: var(--font-mono, ui-monospace, monospace);
	font-size: 0.66rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--text-subtle, var(--cft-grey-500));
}

.cft-staff-learners__col-created,
.cft-staff-learners__created {
	text-align: right;
}

.cft-staff-learners__row {
	border-top: 1px solid var(--cft-grey-100);
	cursor: pointer;
}

.cft-staff-learners__row:hover,
.cft-staff-learners__row:focus {
	background: var(--surface-2, var(--cft-grey-100));
	outline: none;
}

.cft-staff-learners__user {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	min-width: 0;
}

.cft-staff-learners__avatar {
	width: 1.9rem;
	height: 1.9rem;
	flex: none;
	border-radius: var(--radius-sm, 6px);
	background: var(--cft-grey-200);
	color: var(--cft-navy-700);
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 600;
	font-size: 0.7rem;
}

.cft-staff-learners__username {
	font-family: var(--font-mono, ui-monospace, monospace);
	font-size: 0.82rem;
	font-weight: 600;
	color: var(--cft-navy-700);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.cft-staff-learners__mono {
	font-family: var(--font-mono, ui-monospace, monospace);
	font-size: 0.78rem;
	color: var(--text-muted, var(--cft-grey-600));
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.cft-staff-learners__muted,
.cft-staff-learners__created {
	font-size: 0.82rem;
	color: var(--text-muted, var(--cft-grey-600));
}

.cft-staff-learners__empty {
	padding: 1.1rem;
}

.cft-learner-detail__back {
	appearance: none;
	background: transparent;
	border: 0;
	color: var(--text-muted, var(--cft-grey-600));
	font: inherit;
	font-size: 0.82rem;
	cursor: pointer;
	margin: 0 0 0.85rem;
	padding: 0;
}

.cft-learner-detail__back:hover {
	color: var(--cft-control-navy);
	text-decoration: underline;
}

.cft-learner-detail__banner {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0.85rem;
	flex-wrap: wrap;
	padding: 1.1rem 1.15rem;
	background: var(--surface, #fff);
	border: 1px solid var(--border, var(--cft-grey-200));
	border-radius: var(--radius-lg, 14px);
	box-shadow: 0 1px 2px rgba(16, 59, 88, 0.04);
}

.cft-learner-detail__banner-main {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	min-width: 0;
}

.cft-learner-detail__avatar {
	width: 3rem;
	height: 3rem;
	flex: none;
	border-radius: var(--radius-md, 10px);
	background: var(--cft-control-navy);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 0.95rem;
}

.cft-learner-detail__name-row {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	flex-wrap: wrap;
}

.cft-learner-detail__name {
	margin: 0;
	font-size: 1.25rem;
	font-weight: 600;
	color: var(--cft-ink-900, #242424);
}

.cft-learner-detail__status {
	font-family: var(--font-mono, ui-monospace, monospace);
	font-size: 0.62rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding: 0.2rem 0.5rem;
	border-radius: var(--radius-sm, 6px);
	background: rgba(16, 59, 88, 0.1);
	color: var(--cft-control-navy);
}

.cft-learner-detail__status--certified {
	background: rgba(47, 125, 82, 0.12);
	color: #2f7d52;
}

.cft-learner-detail__status--disabled {
	background: rgba(140, 40, 40, 0.12);
	color: #8c2828;
}

.cft-learner-detail__subtitle {
	margin: 0.25rem 0 0;
	font-size: 0.85rem;
	color: var(--text-muted, var(--cft-grey-600));
}

.cft-learner-detail__banner-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.cft-learner-detail__banner-actions .cft-btn svg {
	width: 0.95rem;
	height: 0.95rem;
	stroke: currentColor;
	fill: none;
	stroke-width: 2;
}

.cft-learner-detail__meta {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 0.9rem;
	margin: 1rem 0;
	padding: 0.15rem 0.25rem;
}

@media (max-width: 900px) {
	.cft-learner-detail__meta,
	.cft-staff-learners__thead {
		display: none;
	}

	.cft-staff-learners__row {
		grid-template-columns: 1fr 1fr;
	}

	.cft-staff-learners__user {
		grid-column: 1 / -1;
	}

	.cft-staff-learners__created {
		text-align: left;
	}

	.cft-learner-detail__meta {
		display: grid;
		grid-template-columns: 1fr 1fr;
	}
}

.cft-learner-detail__meta-lbl {
	font-family: var(--font-mono, ui-monospace, monospace);
	font-size: 0.62rem;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: var(--text-subtle, var(--cft-grey-500));
	margin-bottom: 0.25rem;
}

.cft-learner-detail__meta-val {
	font-size: 0.88rem;
	color: var(--cft-ink-900, #242424);
}

.cft-learner-detail__edit-card,
.cft-learner-detail__enrol {
	background: var(--surface, #fff);
	border: 1px solid var(--border, var(--cft-grey-200));
	border-radius: var(--radius-lg, 14px);
	box-shadow: 0 1px 2px rgba(16, 59, 88, 0.04);
	padding: 1.1rem;
	margin-bottom: 1rem;
}

.cft-learner-detail__edit-title {
	font-family: var(--font-mono, ui-monospace, monospace);
	font-size: 0.66rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--text-subtle, var(--cft-grey-500));
	margin-bottom: 0.75rem;
}

.cft-learner-detail__edit-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.85rem;
}

@media (max-width: 700px) {
	.cft-learner-detail__edit-grid {
		grid-template-columns: 1fr;
	}
}

.cft-learner-detail__disable {
	display: flex;
	align-items: flex-start;
	gap: 0.55rem;
	margin-top: 0.95rem;
	font-size: 0.88rem;
	color: var(--cft-ink-900, #242424);
}

.cft-learner-detail__disable input {
	margin-top: 0.2rem;
}

.cft-learner-detail__disable-hint {
	display: block;
	margin-top: 0.15rem;
	font-size: 0.8rem;
	line-height: 1.4;
	color: var(--text-muted, var(--cft-grey-600));
}

.cft-learner-detail__edit-actions {
	display: flex;
	justify-content: flex-end;
	gap: 0.5rem;
	margin-top: 0.9rem;
}

.cft-learner-detail__enrol-head {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	margin-bottom: 0.4rem;
}

.cft-learner-detail__section-title {
	margin: 0 0 0.65rem;
	font-size: 0.92rem;
	font-weight: 600;
}

.cft-learner-detail__enrol-head .cft-learner-detail__section-title {
	margin: 0;
}

.cft-learner-detail__staff-tag {
	font-family: var(--font-mono, ui-monospace, monospace);
	font-size: 0.6rem;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	padding: 0.15rem 0.45rem;
	border-radius: var(--radius-sm, 6px);
	background: rgba(16, 59, 88, 0.08);
	color: var(--cft-control-navy);
}

.cft-learner-detail__enrol-lead {
	margin: 0 0 0.85rem;
	font-size: 0.8rem;
	color: var(--text-muted, var(--cft-grey-600));
	max-width: 62ch;
}

.cft-learner-detail__enrol-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
	align-items: center;
}

.cft-learner-detail__enrol-row select {
	flex: 1 1 14rem;
	min-width: 0;
	padding: 0.65rem 0.75rem;
	border: 1px solid var(--border-strong, var(--cft-grey-400));
	border-radius: var(--radius-md, 10px);
	font: inherit;
	background: #fff;
}

.cft-learner-detail__split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
	align-items: start;
}

@media (max-width: 900px) {
	.cft-learner-detail__split {
		grid-template-columns: 1fr;
	}
}

.cft-learner-detail__count {
	font-family: var(--font-mono, ui-monospace, monospace);
	font-size: 0.7rem;
	font-weight: 500;
	color: var(--text-subtle, var(--cft-grey-500));
	margin-left: 0.35rem;
}

.cft-learner-detail__stack {
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
}

.cft-learner-detail__empty {
	background: var(--surface, #fff);
	border: 1px dashed var(--border-strong, var(--cft-grey-400));
	border-radius: var(--radius-lg, 14px);
	padding: 1.35rem;
	text-align: center;
	color: var(--text-muted, var(--cft-grey-600));
	font-size: 0.85rem;
}

.cft-learner-detail__course,
.cft-learner-detail__cert {
	background: var(--surface, #fff);
	border: 1px solid var(--border, var(--cft-grey-200));
	border-radius: var(--radius-lg, 14px);
	box-shadow: 0 1px 2px rgba(16, 59, 88, 0.04);
	padding: 0.95rem 1rem;
	display: flex;
	align-items: center;
	gap: 0.85rem;
}

.cft-learner-detail__course-icon,
.cft-learner-detail__cert-icon {
	width: 2.5rem;
	height: 2.5rem;
	flex: none;
	border-radius: var(--radius-md, 10px);
	background: var(--cft-navy-800);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-mono, ui-monospace, monospace);
	font-size: 0.58rem;
	font-weight: 600;
	text-align: center;
	line-height: 1.1;
	padding: 0.2rem;
}

.cft-learner-detail__cert-icon {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='6'/%3E%3Cpath d='M15.5 13.5 17 22l-5-3-5 3 1.5-8.5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 1.1rem;
}

.cft-learner-detail__course-body,
.cft-learner-detail__cert-body {
	flex: 1;
	min-width: 0;
}

.cft-learner-detail__course-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	margin-bottom: 0.45rem;
}

.cft-learner-detail__course-title,
.cft-learner-detail__cert-title {
	font-size: 0.88rem;
	font-weight: 600;
	color: var(--cft-ink-900, #242424);
}

.cft-learner-detail__cert-code {
	font-family: var(--font-mono, ui-monospace, monospace);
	font-size: 0.7rem;
	font-weight: 600;
	color: var(--cft-navy-700);
}

.cft-learner-detail__pill {
	font-family: var(--font-mono, ui-monospace, monospace);
	font-size: 0.6rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding: 0.15rem 0.45rem;
	border-radius: var(--radius-sm, 6px);
	background: rgba(16, 59, 88, 0.1);
	color: var(--cft-control-navy);
	white-space: nowrap;
}

.cft-learner-detail__bar {
	height: 6px;
	background: var(--cft-grey-200);
	border-radius: 3px;
	overflow: hidden;
}

.cft-learner-detail__bar > span {
	display: block;
	height: 100%;
	border-radius: 3px;
}

.cft-learner-detail__prog-label,
.cft-learner-detail__cert-meta {
	font-family: var(--font-mono, ui-monospace, monospace);
	font-size: 0.7rem;
	color: var(--text-subtle, var(--cft-grey-500));
	margin-top: 0.35rem;
}

.cft-learner-detail__cert-btn {
	flex: none;
	padding: 0.45rem 0.7rem;
	font-size: 0.78rem;
}

.cft-learner-detail__cert-dl {
	display: inline-block;
	width: 0.9rem;
	height: 0.9rem;
	margin-right: 0.25rem;
	vertical-align: -0.1rem;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='7 10 12 15 17 10'/%3E%3Cline x1='12' x2='12' y1='15' y2='3'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='7 10 12 15 17 10'/%3E%3Cline x1='12' x2='12' y1='15' y2='3'/%3E%3C/svg%3E") center / contain no-repeat;
}


/* —— Staff Transactions —— */

.cft-transactions__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0.75rem;
	flex-wrap: wrap;
	margin-bottom: 1rem;
}

.cft-transactions__lead {
	margin: 0;
	flex: 1 1 16rem;
}

.cft-transactions__export-icon {
	display: inline-flex;
	width: 1rem;
	height: 1rem;
}

.cft-transactions__export-icon svg {
	width: 1rem;
	height: 1rem;
}

.cft-transactions__filters {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	gap: 10px;
	margin-bottom: 12px;
	align-items: center;
	width: 100%;
}

.cft-transactions__per {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	flex: 0 0 auto;
	font-size: 13px;
	color: var(--text-muted, var(--cft-grey-600));
	white-space: nowrap;
}

.cft-transactions__pager {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem 1rem;
	flex-wrap: wrap;
	margin-top: 0.85rem;
}

.cft-transactions__count,
.cft-transactions__pager-nav span {
	margin: 0;
	font-size: 13px;
	color: var(--text-muted, var(--cft-grey-600));
}

.cft-transactions__pager-nav {
	display: flex;
	align-items: center;
	gap: 0.55rem;
}

.cft-transactions__pager-nav .cft-btn {
	min-height: 36px;
	padding: 0.4rem 0.8rem;
}

.cft-transactions__pager-nav .cft-btn:disabled {
	opacity: 0.45;
	cursor: default;
}

.cft-transactions.is-loading {
	opacity: 0.65;
	pointer-events: none;
}

.cft-transactions__filters input[type="search"] {
	flex: 1 1 auto;
	width: auto;
	min-width: 0;
	box-sizing: border-box;
	padding: 9px 12px;
	border: 1px solid var(--border-strong, var(--cft-grey-300));
	border-radius: var(--radius-md, 8px);
	font: inherit;
	font-size: 13.5px;
	line-height: 1.3;
	background: var(--surface, #fff);
	color: var(--text, #1a1a1a);
}

.cft-transactions__filters select {
	flex: 0 0 auto;
	width: auto;
	min-width: 9.5rem;
	max-width: 14rem;
	padding: 9px 30px 9px 12px;
	border: 1px solid var(--border-strong, var(--cft-grey-300));
	border-radius: var(--radius-md, 8px);
	font: inherit;
	font-size: 13.5px;
	line-height: 1.3;
	background-color: var(--surface, #fff);
	color: var(--text, #1a1a1a);
	cursor: pointer;
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.65rem center;
}

.cft-transactions__clear,
.cft-transactions__clear-inline {
	flex: 0 0 auto;
	background: transparent;
	border: 0;
	color: var(--cft-control-navy, #1e3a5f);
	font: inherit;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	padding: 9px 4px;
	white-space: nowrap;
}

@media (max-width: 720px) {
	.cft-transactions__filters {
		flex-wrap: wrap;
	}

	.cft-transactions__filters input[type="search"] {
		flex: 1 1 100%;
		min-width: 100%;
	}

	.cft-transactions__filters select {
		flex: 1 1 calc(50% - 5px);
		max-width: none;
	}
}

.cft-transactions__table {
	background: var(--surface, #fff);
	border: 1px solid var(--border, var(--cft-grey-200));
	border-radius: var(--radius-lg, 12px);
	box-shadow: var(--shadow-xs, 0 1px 2px rgba(0, 0, 0, 0.04));
	overflow: hidden;
}

.cft-transactions__thead,
.cft-tx__main {
	display: grid;
	grid-template-columns: 1fr 1.3fr 0.9fr 1.4fr 0.8fr 0.8fr;
	gap: 0.75rem;
	align-items: center;
	padding: 0.7rem 1.1rem;
}

.cft-transactions__thead {
	background: var(--surface-2, #f3f5f7);
	font-family: var(--font-mono, ui-monospace, monospace);
	font-size: 0.66rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--text-subtle, var(--cft-grey-500));
}

.cft-transactions__col-status {
	text-align: right;
}

.cft-tx {
	border-top: 1px solid var(--cft-grey-100, #e8eaed);
}

.cft-tx__order {
	font-family: var(--font-mono, ui-monospace, monospace);
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--cft-navy-700, #163a5f);
}

.cft-tx__customer {
	font-size: 0.82rem;
}

.cft-tx__date {
	font-family: var(--font-mono, ui-monospace, monospace);
	font-size: 0.72rem;
	color: var(--text-muted, var(--cft-grey-600));
}

.cft-tx__items {
	font-size: 0.78rem;
	color: var(--text-muted, var(--cft-grey-600));
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	min-width: 0;
}

.cft-tx__items-icon {
	display: inline-flex;
	flex: none;
	width: 0.95rem;
	height: 0.95rem;
	opacity: 0.7;
}

.cft-tx__items-icon svg {
	width: 0.95rem;
	height: 0.95rem;
}

.cft-tx__total {
	font-weight: 600;
	font-size: 0.82rem;
}

.cft-tx__status {
	text-align: right;
}

.cft-tx__badge {
	font-family: var(--font-mono, ui-monospace, monospace);
	font-size: 0.62rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding: 0.2rem 0.5rem;
	border-radius: var(--radius-sm, 4px);
	display: inline-block;
}

.cft-tx__qb {
	padding: 0.5rem 1.1rem 0.75rem;
	display: flex;
	align-items: center;
	gap: 0.65rem;
	flex-wrap: wrap;
}

.cft-tx__qb-label {
	font-family: var(--font-mono, ui-monospace, monospace);
	font-size: 0.6rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--text-subtle, var(--cft-grey-500));
	white-space: nowrap;
}

.cft-tx__qb-view,
.cft-tx__qb-add,
.cft-tx__qb-form {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	flex: 1 1 16rem;
	flex-wrap: wrap;
	min-width: 0;
}

.cft-tx__qb-view[hidden],
.cft-tx__qb-add[hidden],
.cft-tx__qb-form[hidden],
.cft-tx__qb-sent[hidden],
.cft-tx__qb-await[hidden],
.cft-tx__qb-url[hidden] {
	display: none !important;
}

.cft-tx__qb-url {
	font-family: var(--font-mono, ui-monospace, monospace);
	font-size: 0.72rem;
	color: var(--cft-control-navy, #1e3a5f);
	text-decoration: none;
	border-bottom: 1px dotted var(--cft-control-navy, #1e3a5f);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	max-width: 22rem;
}

.cft-tx__qb-sent {
	font-family: var(--font-mono, ui-monospace, monospace);
	font-size: 0.6rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding: 0.15rem 0.45rem;
	border-radius: var(--radius-sm, 4px);
	background: rgba(47, 125, 82, 0.12);
	color: #2f7d52;
}

.cft-tx__qb-edit,
.cft-tx__qb-cancel {
	background: transparent;
	border: 0;
	color: var(--cft-control-navy, #1e3a5f);
	font: inherit;
	font-weight: 600;
	font-size: 0.75rem;
	cursor: pointer;
	padding: 0;
}

.cft-tx__qb-cancel {
	color: var(--text-subtle, var(--cft-grey-500));
}

.cft-tx__qb-edit:hover,
.cft-tx__qb-cancel:hover {
	text-decoration: underline;
}

.cft-tx__qb-add-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	background: transparent;
	border: 1px dashed var(--border-strong, var(--cft-grey-300));
	color: var(--cft-control-navy, #1e3a5f);
	padding: 0.4rem 0.75rem;
	border-radius: var(--radius-sm, 4px);
	font: inherit;
	font-weight: 600;
	font-size: 0.75rem;
	cursor: pointer;
}

.cft-tx__qb-add-btn svg {
	width: 0.9rem;
	height: 0.9rem;
}

.cft-tx__qb-await {
	font-size: 0.72rem;
	color: #8f6b26;
	font-weight: 600;
}

.cft-tx__qb-form input[type="url"] {
	flex: 1 1 14rem;
	min-width: 14rem;
	box-sizing: border-box;
	padding: 0.45rem 0.65rem;
	border: 1px solid var(--border-strong, var(--cft-grey-300));
	border-radius: var(--radius-sm, 4px);
	font-family: var(--font-mono, ui-monospace, monospace);
	font-size: 0.72rem;
	background: var(--surface, #fff);
}

.cft-tx__qb-feedback {
	flex: 1 1 100%;
	margin: 0;
}

.cft-transactions__empty {
	padding: 2rem 1.1rem;
	text-align: center;
}

.cft-transactions__empty--filtered {
	border-top: 1px solid var(--cft-grey-100, #e8eaed);
}

@media (max-width: 900px) {
	.cft-transactions__thead {
		display: none;
	}

	.cft-tx__main {
		grid-template-columns: 1fr 1fr;
		gap: 0.45rem 0.75rem;
	}

	.cft-tx__order {
		grid-column: 1 / -1;
	}

	.cft-tx__items {
		grid-column: 1 / -1;
	}

	.cft-tx__status {
		text-align: left;
	}
}


/* —— Staff Certificates —— */

.cft-certificates__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 1.25rem;
}

.cft-certificates__lead {
	margin: 0;
	max-width: none;
	flex: 1 1 auto;
	min-width: 0;
}

.cft-certificates__add {
	flex: 0 0 auto;
	white-space: nowrap;
	background: var(--cft-control-navy, #103b58);
	color: #fff;
	border: 0;
	border-radius: var(--radius-sm, 4px);
	font-weight: 700;
	padding: 0.55rem 0.95rem;
	text-decoration: none;
}

.cft-certificates__add:hover,
.cft-certificates__add:focus {
	background: var(--cft-navy-800, #0d334d);
	color: #fff;
	filter: brightness(1.06);
}

.cft-certificates__add-icon {
	display: inline-flex;
	width: 1rem;
	height: 1rem;
}

.cft-certificates__add-icon svg {
	width: 1rem;
	height: 1rem;
	stroke: currentColor;
}

.cft-certificates__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	align-items: center;
}

.cft-certificates__actions .cft-btn--secondary {
	border-color: var(--cft-control-navy, #103b58);
	color: var(--cft-control-navy, #103b58);
}

.cft-certificates__actions .cft-btn--secondary:hover,
.cft-certificates__actions .cft-btn--secondary:focus {
	background: var(--cft-grey-100, #f1f4f7);
	color: var(--cft-control-navy, #103b58);
	border-color: var(--cft-control-navy, #103b58);
}

.cft-certificates__actions .cft-btn svg {
	width: 0.95rem;
	height: 0.95rem;
	stroke: currentColor;
	fill: none;
}

/* ── Company admin Overview (CFT-LMS demo parity) ─────────────────────────── */
.cft-ov {
	--cft-ov-shadow: var(--shadow-xs, 0 1px 2px rgba(16, 59, 88, 0.06));
	font-family: var(--font-primary);
	color: var(--text);
}

.cft-ov svg {
	flex: none;
}

.cft-ov__manage:hover {
	background: var(--surface-2);
	color: inherit;
}

.cft-ov__card {
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	box-shadow: var(--cft-ov-shadow);
	min-width: 0;
}

.cft-ov__card--pad {
	padding: 16px 18px;
}

.cft-ov__kpis {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 14px;
}

.cft-ov__kpi {
	padding: 16px 18px;
}

.cft-ov__kpi-label {
	display: flex;
	align-items: center;
	gap: 8px;
	color: var(--cft-slate-blue);
	margin-bottom: 8px;
}

.cft-ov__kpi-label svg {
	width: 16px;
	height: 16px;
}

.cft-ov__kpi-label span {
	font-family: var(--font-mono);
	font-size: 10.5px;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: var(--text-subtle);
}

.cft-ov__kpi-value {
	display: flex;
	align-items: baseline;
	gap: 5px;
}

.cft-ov__kpi-num {
	font-size: 28px;
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: 1;
}

.cft-ov__kpi-unit {
	font-size: 13px;
	font-weight: 500;
	color: var(--text-muted);
}

.cft-ov__kpi-delta {
	font-family: var(--font-mono);
	font-size: 11.5px;
	font-weight: 500;
	margin-top: 8px;
}

.cft-ov__alert {
	display: flex;
	flex-direction: column;
	margin-top: 14px;
	padding: 12px 14px;
	border-left: 3px solid var(--cft-transport-blue);
	border-radius: var(--radius-md);
	background: #eaf0f4;
	color: var(--cft-navy-800);
}

.cft-ov__alert--success {
	border-left-color: var(--success);
	background: #e7f2eb;
	color: #1f5c3c;
}

.cft-ov__alert--warning {
	border-left-color: var(--cft-marker-yellow);
	background: #fbf1d8;
	color: #6f4e0c;
}

.cft-ov__alert--danger {
	border-left-color: var(--cft-signal-red);
	background: #fbe4e1;
	color: #8a2419;
}

.cft-ov__alert-title {
	font-size: 14px;
	font-weight: 600;
	margin-bottom: 3px;
}

.cft-ov__alert-body {
	font-size: 13px;
	line-height: 1.5;
	opacity: 0.92;
}

.cft-ov__split {
	display: grid;
	grid-template-columns: 1.7fr 1fr;
	gap: 14px;
	margin-top: 14px;
}

.cft-ov__side {
	display: flex;
	flex-direction: column;
	gap: 14px;
	min-width: 0;
}

.cft-ov__panel-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 15px 18px 12px;
	border-bottom: 1px solid var(--cft-grey-100);
}

.cft-ov__panel-title {
	font-size: 15px;
	font-weight: 600;
	line-height: 1.3;
	margin: 0;
	color: var(--text);
}

.cft-ov__panel-title--gap {
	margin-bottom: 14px;
}

.cft-ov__panel-title--gap-sm {
	margin-bottom: 12px;
}

.cft-ov__link {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 0;
	background: transparent;
	border: 0;
	color: var(--cft-control-navy);
	font-family: var(--font-primary);
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
}

.cft-ov__link:hover {
	text-decoration: underline;
	background: transparent;
	color: var(--cft-control-navy);
}

.cft-ov__link svg {
	width: 14px;
	height: 14px;
}

.cft-ov__team-row {
	display: grid;
	grid-template-columns: 1.5fr 1fr 0.8fr;
	align-items: center;
	gap: 12px;
	padding: 12px 18px;
	border-top: 1px solid var(--cft-grey-100);
}

.cft-ov__team-row:first-child {
	border-top: 0;
}

.cft-ov__who {
	display: flex;
	align-items: center;
	gap: 11px;
	min-width: 0;
}

.cft-ov__avatar {
	width: 32px;
	height: 32px;
	flex: none;
	border-radius: var(--radius-sm);
	background: var(--cft-grey-200);
	color: var(--cft-navy-700);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 12px;
	font-weight: 600;
}

.cft-ov__who-text {
	min-width: 0;
}

.cft-ov__who-name {
	font-size: 13.5px;
	font-weight: 600;
	overflow-wrap: anywhere;
}

.cft-ov__who-course {
	font-family: var(--font-mono);
	font-size: 12px;
	color: var(--text-muted);
	overflow-wrap: anywhere;
}

.cft-ov__prog {
	display: flex;
	flex-direction: column;
	gap: 5px;
	min-width: 0;
}

.cft-ov__bar {
	height: 6px;
	background: var(--cft-grey-200);
	border-radius: 3px;
	overflow: hidden;
}

.cft-ov__bar-fill {
	height: 100%;
	border-radius: 3px;
}

.cft-ov__prog-label {
	font-family: var(--font-mono);
	font-size: 10.5px;
	color: var(--text-subtle);
}

.cft-ov__status {
	justify-self: end;
}

.cft-ov__chip {
	display: inline-block;
	font-family: var(--font-mono);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	white-space: nowrap;
	padding: 3px 8px;
	border-radius: var(--radius-sm);
}

.cft-ov__eyebrow {
	font-family: var(--font-mono);
	font-size: 10.5px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--text-subtle);
	margin-bottom: 4px;
}

.cft-ov__health {
	margin-bottom: 11px;
}

.cft-ov__health-row {
	display: flex;
	justify-content: space-between;
	font-size: 12.5px;
	margin-bottom: 5px;
}

.cft-ov__health-label {
	color: var(--text-muted);
}

.cft-ov__health-pct {
	font-family: var(--font-mono);
	font-weight: 600;
}

.cft-ov__seat {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 7px 0;
	border-top: 1px solid var(--cft-grey-100);
}

.cft-ov__seat-code {
	font-family: var(--font-mono);
	font-size: 12px;
	font-weight: 600;
	color: var(--cft-navy-700);
	overflow-wrap: anywhere;
}

.cft-ov__seat-count {
	font-size: 12px;
	color: var(--text-muted);
	white-space: nowrap;
}

.cft-ov__manage {
	margin-top: 12px;
	width: 100%;
	padding: 9px;
	border: 1px solid var(--border);
	border-radius: var(--radius-md);
	background: var(--surface);
	color: var(--cft-control-navy);
	font-family: var(--font-primary);
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
}

.cft-ov__empty {
	margin: 0;
	padding: 18px;
	font-size: 13px;
	color: var(--text-muted);
}

.cft-ov__muted {
	margin: 0;
	font-size: 12.5px;
	color: var(--text-muted);
}

@media (max-width: 880px) {
	.cft-ov__kpis {
		grid-template-columns: 1fr 1fr;
	}

	.cft-ov__split {
		grid-template-columns: 1fr;
	}
}


/* ── Company admin page chrome: company name + page title ─────────────────── */
.cft-portal[data-role="admin"] .cft-portal__main {
	padding: 0;
}

.cft-portal[data-role="admin"] .cft-portal__screen.is-active {
	display: flex;
	flex-direction: column;
	min-height: 100%;
}

.cft-adm__head {
	padding: 14px 28px 0;
	font-family: var(--font-primary);
}

.cft-adm__company {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--text-subtle);
}

.cft-adm__title {
	font-family: var(--font-primary);
	font-size: 21px;
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: 1.25;
	margin: 2px 0 0;
	color: var(--text);
}

.cft-adm__body {
	flex: 1 0 auto;
	padding: 26px 28px;
}

.cft-adm__body > * {
	max-width: 1124px;
}

.cft-adm__body > .cft-screen-title {
	font-family: var(--font-mono);
	font-size: 11px;
	font-weight: 400;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--text-subtle);
	margin: 0 0 6px;
}

.cft-adm__body > .cft-screen-lead {
	margin: 0 0 20px;
	color: var(--text-muted);
	font-size: 14px;
	max-width: 60ch;
}

.cft-adm__body:has(> .cft-cat) {
	display: flex;
	flex-direction: column;
}

@media (max-width: 800px) {
	.cft-adm__head,
	.cft-adm__body {
		padding-left: 1.35rem;
		padding-right: 1.35rem;
	}
}

/* ── Company admin Course catalog (CFT-LMS demo parity) ───────────────────── */
.cft-cat {
	flex: 1 0 auto;
	display: flex;
	flex-direction: column;
	max-width: none;
	font-family: var(--font-primary);
	color: var(--text);
}

.cft-cat > :not(.cft-cat__bar) {
	max-width: 1124px;
}

.cft-cat svg {
	flex: none;
}

.cft-cat__eyebrow {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--text-subtle);
	margin-bottom: 6px;
}

.cft-cat .cft-cat__lead {
	margin: 0 0 20px;
	color: var(--text-muted);
	font-size: 14px;
}

.cft-cat__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
	margin-bottom: 26px;
}

.cft-cat__card {
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	overflow: hidden;
	box-shadow: var(--shadow-xs, 0 1px 2px rgba(16, 59, 88, 0.06));
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.cft-cat__media {
	height: 120px;
	position: relative;
	overflow: hidden;
	display: flex;
	align-items: flex-end;
	padding: 10px;
}

.cft-cat__media--blank {
	background: linear-gradient(135deg, var(--cft-navy-800), var(--cft-control-navy));
}

.cft-cat__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
}

.cft-cat__shade {
	position: absolute;
	inset: 0;
	background: linear-gradient(rgba(10, 38, 56, 0.1), rgba(10, 38, 56, 0.55));
}

.cft-cat__content {
	padding: 14px 16px;
	display: flex;
	flex-direction: column;
	flex: 1 1 0%;
}

.cft-cat .cft-cat__title {
	font-family: var(--font-primary);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.25;
	margin: 0 0 6px;
	color: var(--text);
}

.cft-cat__facts {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 10px;
}

.cft-cat__tags {
	display: flex;
	gap: 5px;
	flex-wrap: wrap;
	margin-bottom: 0;
	min-width: 0;
}

.cft-cat__cert {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	margin-left: auto;
	flex: 0 0 auto;
	font-family: var(--font-mono);
	font-size: 11px;
	color: var(--text-subtle);
	white-space: nowrap;
}

.cft-cat__cert svg {
	width: 13px;
	height: 13px;
}

.cft-cat__tag {
	font-family: var(--font-mono);
	font-size: 10px;
	border: 1px solid var(--border-strong);
	color: var(--text-muted);
	line-height: 14px;
	padding: 2px 6px;
	border-radius: var(--radius-sm);
}

.cft-cat__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 14px;
	font-family: var(--font-mono);
	font-size: 11px;
	color: var(--text-subtle);
	margin-bottom: 12px;
}

.cft-cat__meta-item {
	display: inline-flex;
	align-items: center;
	gap: 4px;
}

.cft-cat__meta-item svg {
	width: 13px;
	height: 13px;
}

.cft-cat__foot {
	margin-top: auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding-top: 12px;
	border-top: 1px solid var(--cft-grey-100);
}

.cft-cat__price {
	font-size: 20px;
	font-weight: 600;
}

.cft-cat__per {
	font-size: 12px;
	color: var(--text-muted);
}

.cft-cat__stepper {
	display: flex;
	align-items: center;
	gap: 8px;
	border: 1px solid var(--border-strong);
	border-radius: var(--radius-md);
	padding: 3px;
}

.cft-cat__stepper.is-busy {
	opacity: 0.6;
	pointer-events: none;
}

.cft-cat .cft-cat__step {
	appearance: none;
	width: 26px;
	height: 26px;
	min-height: 0;
	padding: 0;
	border: 0;
	border-radius: var(--radius-sm);
	cursor: pointer;
	font-family: var(--font-primary);
	font-size: 16px;
	line-height: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.cft-cat .cft-cat__step--less {
	background: var(--surface-2);
	color: var(--text);
}

.cft-cat .cft-cat__step--more {
	background: var(--cft-control-navy);
	color: #fff;
}

.cft-cat .cft-cat__step:hover {
	filter: brightness(0.95);
}

.cft-cat__qty {
	font-family: var(--font-mono);
	font-size: 13px;
	font-weight: 600;
	min-width: 20px;
	text-align: center;
}

.cft-cat__bar {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 30;
	margin: 0;
	background: var(--cft-navy-900);
	color: #fff;
	padding: 14px 28px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	box-shadow: 0 -4px 16px rgba(10, 38, 56, 0.18);
}

.cft-portal:not(.cft-portal--top) .cft-cat__bar {
	left: 15rem;
}

.cft-cat:has(> .cft-cat__bar:not([hidden])) {
	padding-bottom: 5.5rem;
}

.cft-cat__bar[hidden] {
	display: none;
}

.cft-cat__bar-left,
.cft-cat__bar-right {
	display: flex;
	align-items: center;
	gap: 18px;
}

.cft-cat__bar-icon {
	display: inline-flex;
	color: var(--cft-safety-orange);
}

.cft-cat__bar-icon svg {
	width: 18px;
	height: 18px;
}

.cft-cat__bar-title {
	font-size: 13px;
	font-weight: 600;
	white-space: nowrap;
}

.cft-cat__bar-sub {
	font-family: var(--font-mono);
	font-size: 11px;
	color: rgba(255, 255, 255, 0.65);
}

.cft-cat__bar-total {
	text-align: right;
}

.cft-cat__bar-label {
	font-family: var(--font-mono);
	font-size: 10px;
	color: rgba(255, 255, 255, 0.6);
	text-transform: uppercase;
	letter-spacing: 0.08em;
}

.cft-cat__bar-amount {
	font-size: 20px;
	font-weight: 600;
}

.cft-cat__review,
a.cft-cat__review:visited {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--cft-operational-orange);
	color: #fff;
	border: 0;
	padding: 12px 20px;
	border-radius: var(--radius-md);
	font-family: var(--font-primary);
	font-weight: 700;
	font-size: 14px;
	line-height: 1;
	text-decoration: none;
	white-space: nowrap;
}

a.cft-cat__review:hover,
a.cft-cat__review:focus-visible {
	color: #fff;
	filter: brightness(1.05);
	text-decoration: none;
}

.cft-cat__review svg {
	width: 16px;
	height: 16px;
}

@media (max-width: 880px) {
	.cft-cat__grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 800px) {
	.cft-cat__bar,
	.cft-portal:not(.cft-portal--top) .cft-cat__bar {
		left: 0;
		padding-left: 1.35rem;
		padding-right: 1.35rem;
	}
}

@media (max-width: 560px) {
	.cft-cat__bar,
	.cft-cat__bar-left,
	.cft-cat__bar-right {
		flex-wrap: wrap;
		gap: 12px;
	}

	.cft-cat__bar-right {
		width: 100%;
		justify-content: space-between;
	}
}

/* ── Public course catalog page (templates/shell/catalog-canvas.php) ──────── */
.cft-portal--catalog .cft-portal__main.cft-pubcat-page {
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	padding: 26px 28px;
	background: var(--cft-paper-warm);
}

.cft-portal--catalog a.cft-portal__nav-btn,
.cft-portal--catalog a.cft-portal__nav-btn:visited,
.cft-portal--catalog a.cft-portal__nav-btn:hover {
	color: inherit;
	text-decoration: none;
}

.cft-portal--catalog a.cft-portal__nav-btn.is-active {
	color: #fff;
}

.cft-pubcat.cft-cat > :not(.cft-cat__bar) {
	width: 100%;
	margin-left: auto;
	margin-right: auto;
}

.cft-pubcat .cft-pubcat__title {
	font-family: var(--font-primary);
	font-size: 24px;
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: 1.25;
	margin: 0 0 6px;
	color: var(--text);
}

.cft-pubcat .cft-cat__lead {
	margin-bottom: 8px;
}

.cft-pubcat__signin {
	margin: 0 0 20px;
	font-size: 13px;
	color: var(--text-muted);
}

.cft-pubcat__signin a {
	color: var(--cft-control-navy);
	font-weight: 600;
}

.cft-pubcat .cft-feedback:not([hidden]) {
	margin-bottom: 16px;
}

.cft-cat__action,
a.cft-cat__action:visited {
	display: inline-flex;
	align-items: center;
	padding: 8px 14px;
	border-radius: var(--radius-md);
	background: var(--cft-control-navy);
	color: #fff;
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
}

.cft-cat__action:hover {
	color: #fff;
	filter: brightness(1.08);
}

.cft-cat__action--done,
a.cft-cat__action--done:visited {
	background: transparent;
	color: var(--cft-control-navy);
	border: 1px solid var(--border-strong);
}

/* Quote-only products: catalog card and the Request a quote view. */
.cft-cat .cft-cat__summary {
	margin: 0 0 12px;
	font-size: 13px;
	line-height: 1.45;
	color: var(--text-muted);
	white-space: pre-line;
}

.cft-cat .cft-cat__price--quote {
	font-size: 15px;
}

.cft-cat__card--quote .cft-cat__media--blank {
	background: linear-gradient(135deg, var(--cft-control-navy), #1d5f86);
}

.cft-quote__back,
.cft-quote__back:visited {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 0 0 18px;
	font-size: 13px;
	font-weight: 600;
	color: var(--cft-control-navy);
	text-decoration: none;
}

.cft-quote__back svg {
	width: 16px;
	height: 16px;
}

.cft-quote__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr);
	gap: 28px;
	align-items: start;
}

.cft-quote .cft-quote__title {
	font-family: var(--font-primary);
	font-size: 24px;
	font-weight: 600;
	line-height: 1.25;
	margin: 0 0 6px;
	color: var(--text);
}

.cft-quote__price {
	margin: 0 0 14px;
	font-size: 16px;
	font-weight: 600;
	color: var(--cft-control-navy);
}

.cft-quote__desc,
.cft-quote__note {
	font-size: 14px;
	line-height: 1.55;
	color: var(--text-muted);
}

.cft-quote__note {
	margin-top: 14px;
	padding-top: 14px;
	border-top: 1px solid var(--cft-grey-100);
}

.cft-quote__form {
	padding: 20px 22px;
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-xs, 0 1px 2px rgba(16, 59, 88, 0.06));
}

.cft-quote .learning-templates-lxp-form {
	max-width: none;
	margin: 0;
}

.cft-quote .learning-templates-lxp-form-section-title {
	margin: 0 0 10px;
	font-family: var(--font-primary);
	font-size: 15px;
	font-weight: 600;
	color: var(--text);
}

.cft-quote .learning-templates-lxp-form-section-title:not(:first-of-type) {
	margin-top: 18px;
}

.cft-quote .learning-templates-lxp-form-field label,
.cft-quote .learning-templates-lxp-quote__label {
	font-size: 13px;
	font-weight: 600;
	color: var(--text);
}

.cft-quote .learning-templates-lxp-form-field input:not([type="radio"]):not([type="checkbox"]),
.cft-quote .learning-templates-lxp-form-field select,
.cft-quote .learning-templates-lxp-form-field textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 9px 12px;
	border: 1px solid var(--border-strong);
	border-radius: var(--radius-md);
	background: var(--surface);
	font-family: inherit;
	font-size: 14px;
	color: var(--text);
}

.cft-quote .learning-templates-lxp-form-field textarea {
	min-height: 110px;
}

.cft-quote .learning-templates-lxp-quote {
	padding: 14px 16px;
	border-color: var(--border);
	border-radius: var(--radius-md);
	background: var(--cft-paper-warm);
}

.cft-quote .learning-templates-lxp-quote__legend {
	font-size: 13px;
	color: var(--text);
}

.cft-quote .learning-templates-lxp-form-field label.learning-templates-lxp-quote__choice {
	background: var(--surface);
	border-color: var(--border-strong);
	border-radius: var(--radius-md);
	color: var(--text);
}

.cft-quote .learning-templates-lxp-form-field label.learning-templates-lxp-quote__choice:has(input:checked) {
	border-color: var(--cft-control-navy);
	box-shadow: inset 0 0 0 1px var(--cft-control-navy);
	color: var(--cft-control-navy);
}

.cft-quote .learning-templates-lxp-form-submit {
	padding: 10px 18px;
	border: 0;
	border-radius: var(--radius-md);
	background: var(--cft-control-navy);
	color: #fff;
	font-family: var(--font-primary);
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
}

.cft-quote .learning-templates-lxp-form-submit:hover,
.cft-quote .learning-templates-lxp-form-submit:focus-visible {
	filter: brightness(1.08);
}

.cft-quote .learning-templates-lxp-form-success {
	padding: 12px 14px;
	border-radius: var(--radius-md);
	background: #e8f5ec;
	color: #1d6b3a;
	font-weight: 600;
}

.cft-sc a.cft-sc__buy,
.cft-sc a.cft-sc__buy:visited {
	color: #fff;
	text-decoration: none;
}

@media (max-width: 900px) {
	.cft-quote__layout {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 800px) {
	.cft-portal--catalog .cft-portal__main.cft-pubcat-page {
		padding: 1.25rem 1.35rem;
	}

	.cft-pubcat .cft-cat__bar {
		margin: 0;
	}
}

/* ── Company admin Seats & assignments (CFT-LMS demo parity) ──────────────── */
.cft-seats {
	--cft-seats-shadow-lg: var(--shadow-lg, 0 8px 24px rgba(16, 59, 88, 0.12), 0 2px 6px rgba(16, 59, 88, 0.08));
	max-width: 1044px;
	font-family: var(--font-primary);
	line-height: 1.45;
	color: var(--text);
}

.cft-seats svg {
	flex: none;
}

.cft-seats__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 18px;
}

.cft-seats__eyebrow {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--text-subtle);
	margin-bottom: 4px;
}

.cft-seats .cft-seats__lead {
	margin: 0;
	color: var(--text-muted);
	font-size: 14px;
}

.cft-seats .cft-seats__btn {
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-height: 0;
	padding: 8px 14px;
	border-radius: var(--radius-md);
	font-family: var(--font-primary);
	font-size: 13px;
	font-weight: 600;
	line-height: normal;
	cursor: pointer;
	white-space: nowrap;
	text-decoration: none;
	transition: filter 120ms ease, background 120ms ease;
}

.cft-seats .cft-seats__btn svg {
	width: 16px;
	height: 16px;
}

.cft-seats .cft-seats__btn--navy {
	background: var(--cft-control-navy);
	color: #fff;
	border: 0;
}

.cft-seats .cft-seats__btn--navy:hover {
	color: #fff;
	filter: brightness(1.08);
}

.cft-seats .cft-seats__btn--navy[disabled],
.cft-seats .cft-seats__btn--outline[disabled] {
	opacity: 0.45;
	cursor: not-allowed;
	filter: none;
}

.cft-seats .cft-seats__btn--outline {
	background: var(--surface);
	color: var(--text);
	border: 1px solid var(--border-strong);
}

.cft-seats .cft-seats__btn--outline:hover {
	background: var(--surface-2);
	color: var(--text);
}

.cft-seats .cft-seats__add {
	gap: 8px;
	padding: 10px 16px;
	font-size: 13.5px;
}

.cft-seats .cft-seats__btn--manage {
	padding: 8px 12px;
}

.cft-seats .cft-seats__btn--modal {
	padding: 9px 16px;
	font-size: 13.5px;
}

.cft-seats__list {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.cft-seats__row {
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-xs, 0 1px 2px rgba(16, 59, 88, 0.06));
	padding: 16px 18px;
}

.cft-seats__empty {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
}

.cft-seats__empty p {
	margin: 0;
	color: var(--text-muted);
	font-size: 14px;
}

.cft-seats__main {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
}

.cft-seats__info {
	flex: 1;
	min-width: 200px;
}

.cft-seats__name {
	display: flex;
	align-items: center;
	gap: 9px;
}

.cft-seats__code {
	font-family: var(--font-mono);
	font-size: 11px;
	font-weight: 600;
	line-height: 1.4;
	color: #fff;
	background: var(--cft-navy-700);
	padding: 2px 7px;
	border-radius: var(--radius-sm);
	white-space: nowrap;
}

.cft-seats__title {
	font-size: 14.5px;
	font-weight: 600;
}

.cft-seats__stats {
	display: flex;
	gap: 22px;
	align-items: center;
	flex-wrap: wrap;
}

.cft-seats__stat {
	text-align: center;
}

.cft-seats__stat-num {
	font-size: 18px;
	font-weight: 600;
	line-height: 1.3;
}

.cft-seats__stat-num--assigned {
	color: var(--cft-transport-blue);
}

.cft-seats__stat-num--free {
	color: var(--success);
}

.cft-seats__stat-num--none {
	color: var(--text-muted);
}

.cft-seats__stat-label {
	font-family: var(--font-mono);
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--text-subtle);
}

.cft-seats__bar {
	margin-top: 10px;
	height: 6px;
	background: var(--cft-grey-200);
	border-radius: 3px;
	overflow: hidden;
}

.cft-seats__bar-fill {
	height: 100%;
	background: var(--cft-transport-blue);
	border-radius: 3px;
}

.cft-seats__panel {
	margin-top: 14px;
	border-top: 1px solid var(--cft-grey-100);
	padding-top: 12px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.cft-seats__panel[hidden] {
	display: none;
}

.cft-seats__panel-label {
	font-family: var(--font-mono);
	font-size: 10px;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: var(--text-subtle);
}

.cft-seats__holder {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 9px 12px;
	background: var(--surface-2);
	border-radius: var(--radius-md);
}

.cft-seats__avatar,
.cft-smodal__avatar {
	width: 30px;
	height: 30px;
	flex: none;
	border-radius: var(--radius-sm);
	background: var(--cft-grey-200);
	color: var(--cft-navy-700);
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 600;
	font-size: 11px;
}

.cft-seats__holder-text {
	flex: 1;
	min-width: 0;
}

.cft-seats__holder-name {
	font-size: 13px;
	font-weight: 600;
}

.cft-seats__holder-state {
	font-family: var(--font-mono);
	font-size: 11px;
	color: var(--text-subtle);
}

.cft-seats__holder-state.is-consumed {
	color: var(--cft-transport-blue);
}

.cft-seats__consumed,
.cft-seats__booked {
	font-family: var(--font-mono);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--text-subtle);
	display: inline-flex;
	align-items: center;
	gap: 5px;
}

.cft-seats__booked {
	color: var(--success);
}

.cft-seats__consumed svg,
.cft-seats__booked svg {
	width: 13px;
	height: 13px;
}

.cft-seats__sub {
	margin-top: 3px;
	font-family: var(--font-mono);
	font-size: 11px;
	color: var(--text-subtle);
}

.cft-seats__you {
	margin-left: 6px;
	padding: 1px 6px;
	border-radius: 999px;
	background: var(--surface-muted, #eef1f5);
	font-family: var(--font-mono);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--text-subtle);
	vertical-align: 1px;
}

.cft-seats__holder-actions {
	display: flex;
	gap: 7px;
}

.cft-seats .cft-seats__mini {
	appearance: none;
	display: inline-flex;
	align-items: center;
	gap: 5px;
	min-height: 0;
	border: 1px solid var(--border-strong);
	background: var(--surface);
	padding: 6px 11px;
	border-radius: var(--radius-md);
	font-family: var(--font-primary);
	font-size: 12px;
	font-weight: 600;
	line-height: normal;
	cursor: pointer;
	white-space: nowrap;
}

.cft-seats .cft-seats__mini svg {
	width: 13px;
	height: 13px;
}

.cft-seats .cft-seats__mini--reassign {
	color: var(--cft-control-navy);
}

.cft-seats .cft-seats__mini--reassign:hover {
	background: var(--surface);
	color: var(--cft-control-navy);
	filter: brightness(0.98);
}

.cft-seats .cft-seats__mini--unassign {
	color: var(--danger-strong, var(--cft-alert-red));
}

.cft-seats .cft-seats__mini--unassign:hover {
	background: rgba(219, 54, 39, 0.06);
	color: var(--danger-strong, var(--cft-alert-red));
}

.cft-seats .is-busy {
	opacity: 0.55;
	pointer-events: none;
}

/* Seats modals */
.cft-smodal {
	position: fixed;
	inset: 0;
	z-index: 100045;
	background: rgba(10, 38, 56, 0.45);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
}

.cft-smodal[hidden] {
	display: none;
}

.cft-smodal__dialog {
	background: var(--surface);
	border-radius: var(--radius-lg);
	box-shadow: var(--cft-seats-shadow-lg);
	width: 440px;
	max-width: 100%;
	overflow: hidden;
}

.cft-smodal__dialog--sm {
	width: 420px;
}

.cft-smodal__head {
	padding: 18px 22px;
	border-bottom: 1px solid var(--cft-grey-100);
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 10px;
}

.cft-smodal .cft-smodal__title {
	font-family: var(--font-primary);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.3;
	margin: 0;
	color: var(--text);
}

.cft-smodal .cft-smodal__title--sub {
	margin-top: 2px;
}

.cft-smodal__kicker,
.cft-smodal__label {
	font-family: var(--font-mono);
	font-size: 10.5px;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: var(--text-subtle);
}

.cft-smodal__label {
	display: block;
	margin-bottom: 5px;
}

.cft-smodal__label--list {
	margin-bottom: 8px;
}

.cft-smodal .cft-smodal__close {
	appearance: none;
	background: none;
	border: 0;
	padding: 0;
	min-height: 0;
	cursor: pointer;
	color: var(--text-muted);
	display: inline-flex;
}

.cft-smodal__close svg {
	width: 18px;
	height: 18px;
}

.cft-smodal__body {
	padding: 22px;
}

.cft-smodal__body--form {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.cft-smodal .cft-smodal__input {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid var(--border);
	border-radius: var(--radius-md);
	font-family: var(--font-primary);
	font-size: 14px;
	background: var(--surface);
	color: var(--text);
	box-shadow: none;
}

.cft-smodal__note {
	background: var(--surface-2);
	border-radius: var(--radius-md);
	padding: 11px 13px;
	font-size: 12.5px;
	color: var(--text-muted);
	line-height: 1.5;
}

.cft-smodal .cft-smodal__text {
	font-size: 13.5px;
	color: var(--text-muted);
	margin: 0 0 14px;
	line-height: 1.5;
}

.cft-smodal__text strong {
	color: var(--text);
}

.cft-smodal__picks {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 7px;
	max-height: 280px;
	overflow: auto;
}

.cft-smodal .cft-smodal__pick {
	appearance: none;
	display: flex;
	align-items: center;
	flex: 0 0 auto;
	gap: 11px;
	width: 100%;
	min-height: 52px;
	padding: 10px 12px;
	border: 1.5px solid var(--border);
	border-radius: var(--radius-md);
	background: var(--surface);
	color: var(--text);
	font-family: var(--font-primary);
	text-align: left;
	cursor: pointer;
	overflow: hidden;
}

.cft-smodal .cft-smodal__pick.is-picked {
	border-color: var(--cft-control-navy);
	background: rgba(16, 59, 88, 0.04);
}

.cft-smodal__pick-text {
	flex: 1;
	min-width: 0;
}

.cft-smodal__pick-name {
	font-size: 13.5px;
	font-weight: 600;
	line-height: 1.3;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.cft-smodal__you {
	display: inline-block;
	margin-left: 6px;
	padding: 1px 7px;
	border-radius: 999px;
	background: rgba(16, 59, 88, 0.08);
	color: var(--cft-control-navy);
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	vertical-align: 1px;
}

.cft-smodal__pick-email {
	margin-top: 1px;
	font-size: 11.5px;
	line-height: 1.35;
	color: var(--text-muted);
	font-family: var(--font-mono);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.cft-smodal__check {
	display: inline-flex;
	color: transparent;
}

.cft-smodal__pick.is-picked .cft-smodal__check {
	color: var(--cft-control-navy);
}

.cft-smodal__check svg {
	width: 16px;
	height: 16px;
}

.cft-smodal__none {
	text-align: center;
	padding: 20px 10px;
}

.cft-smodal__none p {
	color: var(--text-muted);
	font-size: 14px;
	margin: 0 0 14px;
}

.cft-smodal .cft-smodal__error {
	margin: 12px 0 0;
	font-size: 13px;
	color: var(--danger-strong, var(--cft-alert-red));
}

.cft-smodal__body--form .cft-smodal__error {
	margin-top: 0;
}

.cft-smodal__foot {
	padding: 16px 22px;
	border-top: 1px solid var(--cft-grey-100);
	display: flex;
	justify-content: flex-end;
	gap: 10px;
}

.cft-smodal__foot[hidden] {
	display: none;
}

/* Post-purchase confirmation on the portal */
.cft-purchase-success {
	margin: 0 0 16px;
	padding: 14px 16px;
	border-radius: var(--radius-md, 8px);
	background: #e8f5ef;
	border: 1px solid #b7dfc8;
	color: #0d3149;
	font-family: var(--font-primary);
	font-size: 14px;
	line-height: 1.45;
}

.cft-purchase-success strong {
	display: inline-block;
	margin-right: 6px;
}

/* Portal toast (demo parity) */
.cft-toast {
	position: fixed;
	bottom: 24px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 100060;
	background: var(--cft-navy-900);
	color: #fff;
	padding: 12px 20px;
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-lg, 0 8px 24px rgba(16, 59, 88, 0.12), 0 2px 6px rgba(16, 59, 88, 0.08));
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: var(--font-primary);
	font-size: 13.5px;
	font-weight: 500;
	max-width: calc(100vw - 32px);
	line-height: 1.45;
}

.cft-toast[hidden] {
	display: none;
}

.cft-toast__icon {
	display: inline-flex;
	color: var(--cft-safety-orange);
}

.cft-toast__icon svg {
	width: 16px;
	height: 16px;
}

@media (max-width: 640px) {
	.cft-seats__stats {
		gap: 14px;
	}
}

/* ── Company admin Learners (CFT-LMS demo parity; filters reuse .cft-transactions__filters) ── */
.cft-seats .cft-lrn__top {
	margin-bottom: 16px;
}

.cft-lrn__table {
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-xs, 0 1px 2px rgba(16, 59, 88, 0.06));
	overflow: hidden;
}

.cft-lrn__grid {
	display: grid;
	grid-template-columns: 1.6fr 1.3fr 1fr 0.9fr 72px 0.9fr;
	gap: 12px;
	align-items: center;
}

.cft-lrn__remind-head,
.cft-lrn__remind {
	text-align: center;
}

.cft-lrn__remind-btn {
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	padding: 0;
	border: 1px solid var(--border);
	border-radius: 8px;
	background: var(--surface);
	color: var(--cft-navy-800, #103b58);
	cursor: pointer;
}

.cft-lrn__remind-btn:hover,
.cft-lrn__remind-btn:focus {
	background: var(--surface-2);
}

.cft-lrn__remind-btn:disabled {
	opacity: 0.45;
	cursor: wait;
}

.cft-lrn__thead {
	padding: 11px 18px;
	background: var(--surface-2);
	font-family: var(--font-mono);
	font-size: 10.5px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--text-subtle);
}

.cft-lrn .cft-lrn__sort {
	appearance: none;
	background: transparent;
	border: 0;
	padding: 0;
	margin: 0;
	min-height: 0;
	font: inherit;
	color: inherit;
	letter-spacing: inherit;
	text-transform: inherit;
	line-height: inherit;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 3px;
	text-align: left;
}

.cft-lrn .cft-lrn__sort:hover,
.cft-lrn .cft-lrn__sort:focus {
	background: transparent;
	color: var(--text);
}

.cft-lrn .cft-lrn__sort--end {
	justify-content: flex-end;
}

.cft-lrn__arrow {
	white-space: pre;
}

.cft-lrn__row {
	padding: 12px 18px;
	border-top: 1px solid var(--cft-grey-100);
	cursor: pointer;
}

.cft-lrn__row[hidden] {
	display: none;
}

.cft-lrn__row:hover,
.cft-lrn__row:focus-visible {
	background: var(--surface-2);
}

.cft-lrn__row:focus-visible {
	outline: 2px solid var(--cft-control-navy);
	outline-offset: -2px;
}

.cft-lrn__who {
	display: flex;
	align-items: center;
	gap: 11px;
	min-width: 0;
}

.cft-lrn__avatar {
	width: 32px;
	height: 32px;
	flex: none;
	border-radius: var(--radius-sm);
	background: var(--cft-grey-200);
	color: var(--cft-navy-700);
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 600;
	font-size: 12px;
}

.cft-lrn__who-text {
	min-width: 0;
}

.cft-lrn__name {
	font-size: 13.5px;
	font-weight: 600;
}

.cft-lrn__email {
	font-size: 11.5px;
	color: var(--text-muted);
	font-family: var(--font-mono);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.cft-lrn__course {
	font-size: 13px;
	font-family: var(--font-mono);
	color: var(--text-muted);
	min-width: 0;
	overflow-wrap: anywhere;
}

.cft-lrn__prog {
	display: flex;
	align-items: center;
	gap: 8px;
}

.cft-lrn__bar {
	flex: 1;
	height: 6px;
	background: var(--cft-grey-200);
	border-radius: 3px;
	overflow: hidden;
}

.cft-lrn__bar-fill {
	height: 100%;
}

.cft-lrn__pct {
	font-family: var(--font-mono);
	font-size: 11px;
	color: var(--text-subtle);
	width: 30px;
	flex: none;
}

.cft-lrn__badge {
	display: inline-block;
	font-family: var(--font-mono);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding: 3px 8px;
	border-radius: var(--radius-sm);
	white-space: nowrap;
}

.cft-lrn__expiry {
	text-align: right;
	font-family: var(--font-mono);
	font-size: 12px;
}

.cft-lrn__empty {
	padding: 34px 18px;
	text-align: center;
	color: var(--text-muted);
	font-size: 13.5px;
	border-top: 1px solid var(--cft-grey-100);
}

.cft-lrn__empty[hidden] {
	display: none;
}

.cft-lrn .cft-transactions__clear-inline {
	font-size: 13.5px;
	padding: 0 4px;
}

@media (max-width: 720px) {
	.cft-lrn__grid {
		grid-template-columns: 1.6fr 1fr 0.9fr;
	}

	.cft-lrn__grid > :nth-child(2),
	.cft-lrn__grid > :nth-child(6) {
		display: none;
	}
}

/* ── Company admin Compliance register (CFT-LMS demo parity) ──────────────── */
.cft-comp__kpis {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px;
	margin-bottom: 16px;
}

.cft-comp__kpi {
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	padding: 18px;
}

.cft-comp__kpi--dark {
	background: var(--cft-navy-800);
	border-color: var(--cft-navy-800);
	color: #fff;
}

.cft-comp__kpi-label {
	font-family: var(--font-mono);
	font-size: 10.5px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--text-subtle);
	margin-bottom: 8px;
}

.cft-comp__kpi--dark .cft-comp__kpi-label {
	color: rgba(255, 255, 255, 0.6);
}

.cft-comp__kpi-value {
	font-size: 30px;
	font-weight: 600;
	line-height: 1.2;
}

.cft-comp__kpi-value--warn {
	color: var(--cft-marker-yellow);
}

.cft-comp__kpi-value--danger {
	color: var(--cft-signal-red);
}

.cft-comp__kpi-note {
	font-family: var(--font-mono);
	font-size: 11.5px;
	color: var(--text-muted);
	margin-top: 6px;
}

.cft-comp__kpi-note--accent {
	color: var(--cft-safety-orange);
}

.cft-comp__grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr 0.9fr 1fr 0.8fr 1.1fr;
	gap: 12px;
	align-items: center;
}

.cft-comp__row {
	padding: 12px 18px;
	border-top: 1px solid var(--cft-grey-100);
}

.cft-comp__row.is-clickable {
	cursor: pointer;
}

.cft-comp__row.is-clickable:hover,
.cft-comp__row.is-clickable:focus-visible {
	background: var(--surface-2);
}

.cft-comp__row.is-clickable:focus-visible {
	outline: 2px solid var(--cft-control-navy);
	outline-offset: -2px;
}

.cft-comp__holder {
	min-width: 0;
}

.cft-comp__mono {
	font-family: var(--font-mono);
	font-size: 12px;
	color: var(--text-muted);
	min-width: 0;
	overflow-wrap: anywhere;
}

.cft-comp__cert {
	color: var(--cft-navy-700);
}

.cft-comp__end {
	display: flex;
	justify-content: flex-end;
	text-align: right;
}

.cft-seats .cft-comp__act {
	appearance: none;
	display: inline-flex;
	align-items: center;
	gap: 5px;
	min-height: 0;
	border: 0;
	padding: 7px 12px;
	border-radius: var(--radius-md);
	font-family: var(--font-primary);
	font-size: 12px;
	font-weight: 600;
	line-height: normal;
	cursor: pointer;
	white-space: nowrap;
}

.cft-seats .cft-comp__act svg {
	width: 14px;
	height: 14px;
}

.cft-seats .cft-comp__act--navy,
.cft-seats .cft-comp__act--navy:hover {
	background: var(--cft-control-navy);
	color: #fff;
}

.cft-seats .cft-comp__act--navy:hover {
	filter: brightness(1.1);
}

.cft-seats .cft-comp__act--buy,
.cft-seats .cft-comp__act--buy:hover {
	background: var(--cft-operational-orange);
	color: #fff;
	font-weight: 700;
}

.cft-seats .cft-comp__act--buy:hover {
	filter: brightness(1.05);
}

.cft-comp__note {
	margin-top: 12px;
}

/* Multi-select dropdown */
.cft-msel {
	position: relative;
}

.cft-smodal .cft-msel__toggle {
	appearance: none;
	display: flex;
	align-items: center;
	width: 100%;
	min-height: 0;
	padding: 10px 34px 10px 12px;
	border: 1px solid var(--border-strong);
	border-radius: var(--radius-md);
	background: var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 12px center;
	color: var(--text);
	font-family: var(--font-primary);
	font-size: 14px;
	line-height: 1.35;
	text-align: left;
	cursor: pointer;
}

.cft-smodal .cft-msel__toggle[aria-expanded="true"] {
	border-color: var(--cft-control-navy);
}

.cft-msel__summary {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.cft-msel__summary.is-placeholder {
	color: var(--text-subtle);
}

.cft-msel__panel {
	position: absolute;
	left: 0;
	right: 0;
	top: calc(100% + 4px);
	z-index: 2;
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius-md);
	box-shadow: var(--cft-seats-shadow-lg);
	max-height: 260px;
	overflow: auto;
	padding: 6px;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.cft-msel__panel[hidden] {
	display: none;
}

.cft-msel__opt {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 9px 10px;
	border-radius: var(--radius-sm);
	cursor: pointer;
}

.cft-msel__opt:hover,
.cft-msel__opt.is-checked {
	background: rgba(16, 59, 88, 0.05);
}

.cft-msel__opt.is-disabled {
	cursor: not-allowed;
	opacity: 0.55;
	background: none;
}

.cft-msel__opt input {
	margin: 3px 0 0;
	accent-color: var(--cft-control-navy);
	flex: none;
}

.cft-msel__opt-text {
	display: flex;
	flex-direction: column;
	gap: 3px;
	min-width: 0;
}

.cft-msel__opt-top {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}

.cft-msel__opt-title {
	font-size: 13.5px;
	font-weight: 600;
}

.cft-msel__opt-meta {
	font-family: var(--font-mono);
	font-size: 11px;
	color: var(--text-muted);
}

@media (max-width: 880px) {
	.cft-comp__kpis {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 720px) {
	.cft-comp__grid {
		grid-template-columns: 1.4fr 0.9fr 1fr;
	}

	.cft-comp__grid > :nth-child(2),
	.cft-comp__grid > :nth-child(3),
	.cft-comp__grid > :nth-child(4) {
		display: none;
	}
}

/* ── Company admin Billing & orders (CFT-LMS demo parity) ─────────────────── */
.cft-seats.cft-bill {
	max-width: 944px;
}

.cft-bill__grid {
	display: grid;
	grid-template-columns: 1fr 1.6fr 0.8fr 0.9fr 0.9fr;
	gap: 12px;
	align-items: center;
}

.cft-bill__order {
	border-top: 1px solid var(--cft-grey-100);
}

.cft-bill__row {
	padding: 13px 18px;
}

.cft-bill__no {
	font-family: var(--font-mono);
	font-size: 12.5px;
	font-weight: 600;
	color: var(--cft-navy-700);
	overflow-wrap: anywhere;
}

.cft-bill__date {
	font-family: var(--font-mono);
	font-size: 11px;
	color: var(--text-subtle);
}

.cft-bill__items {
	font-size: 13px;
	color: var(--text-muted);
	min-width: 0;
	overflow-wrap: anywhere;
}

.cft-bill__method {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 12.5px;
}

.cft-bill__method svg {
	width: 14px;
	height: 14px;
}

.cft-bill__total {
	font-weight: 600;
	font-size: 13.5px;
}

.cft-bill__end {
	text-align: right;
}

.cft-bill__pay {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	padding: 0 18px 12px;
}

.cft-seats.cft-bill .cft-bill__pay-btn,
.cft-seats.cft-bill .cft-bill__pay-btn:hover,
.cft-seats.cft-bill .cft-bill__pay-btn:focus {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	background: var(--cft-operational-orange);
	color: #fff;
	text-decoration: none;
	padding: 8px 14px;
	border-radius: var(--radius-md);
	font-family: var(--font-primary);
	font-size: 12.5px;
	font-weight: 700;
	line-height: normal;
}

.cft-seats.cft-bill .cft-bill__pay-btn:hover {
	filter: brightness(1.05);
}

.cft-bill__pay-btn svg {
	width: 14px;
	height: 14px;
}

.cft-bill__pay-url {
	font-family: var(--font-mono);
	font-size: 11px;
	color: var(--text-muted);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	max-width: 320px;
}

.cft-bill__pay-note {
	font-size: 11.5px;
	color: var(--text-subtle);
}

.cft-bill__pending {
	padding: 0 18px 12px;
	font-size: 11.5px;
	font-weight: 600;
	color: #8f6b26;
}

.cft-seats.cft-bill .cft-bill__manage {
	display: inline-block;
	margin-top: 14px;
	font-size: 13px;
	font-weight: 600;
	color: var(--cft-control-navy);
	text-decoration: none;
}

.cft-seats.cft-bill .cft-bill__manage:hover {
	text-decoration: underline;
}

@media (max-width: 720px) {
	.cft-bill__grid {
		grid-template-columns: 1.2fr 0.9fr 0.9fr;
	}

	.cft-bill__grid > :nth-child(2),
	.cft-bill__grid > :nth-child(3) {
		display: none;
	}
}

/* ── Account (CFT-LMS demo parity) ────────────────────────────────────────── */
.cft-seats.cft-acct {
	max-width: 764px;
}

.cft-acct__name {
	font-size: 22px;
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: 1.3;
	margin: 0 0 4px;
	color: var(--text);
}

.cft-seats .cft-acct__lead {
	margin: 0 0 18px;
}

.cft-acct__name + .cft-acct__lead {
	margin-bottom: 22px;
}

.cft-acct__card {
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-xs, 0 1px 2px rgba(16, 59, 88, 0.06));
	padding: 20px;
	margin-bottom: 16px;
}

.cft-acct__card-title {
	font-family: var(--font-mono);
	font-size: 10.5px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--text-subtle);
	margin-bottom: 14px;
}

.cft-acct__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
}

.cft-acct__field {
	min-width: 0;
}

.cft-acct__field--full {
	grid-column: 1 / -1;
}

.cft-acct__required {
	color: var(--cft-red, #b42318);
}

.cft-acct__help {
	margin: 6px 0 0;
	font-size: 12px;
	line-height: 1.4;
	color: var(--text-subtle);
}

.cft-acct__help--above {
	margin: 0 0 10px;
}

.cft-acct__co-managers {
	list-style: none;
	margin: 0 0 8px;
	padding: 0;
}

.cft-acct__co-managers li + li {
	margin-top: 6px;
}

.cft-acct__field--full > .cft-acct__grid {
	margin-top: 0;
}

.cft-acct__heading {
	font-size: 14px;
	font-weight: 600;
	color: var(--text);
}

.cft-acct__check {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-size: 14px;
	line-height: 1.4;
}

.cft-acct__field .learning-templates-lxp-form-field {
	margin: 0;
	border: 0;
	padding: 0;
	min-width: 0;
}

.cft-acct__label {
	display: block;
	font-family: var(--font-mono);
	font-size: 10.5px;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: var(--text-subtle);
	margin-bottom: 6px;
}

.cft-seats .cft-acct__input {
	width: 100%;
	box-sizing: border-box;
	min-height: 0;
	margin: 0;
	padding: 10px 12px;
	border: 1px solid var(--border);
	border-radius: var(--radius-md);
	background: var(--surface);
	color: var(--text);
	font-family: var(--font-primary);
	font-size: 14px;
	line-height: 1.35;
	box-shadow: none;
}

.cft-seats .cft-acct__input:focus {
	outline: none;
	border-color: var(--cft-control-navy);
}

.cft-seats .cft-acct__select {
	border-color: var(--border-strong);
	cursor: pointer;
}

.cft-acct__error {
	margin: 0 0 12px;
}

.cft-seats .cft-acct__save {
	padding: 11px 22px;
	font-size: 14px;
}

@media (max-width: 720px) {
	.cft-acct__grid {
		grid-template-columns: 1fr;
	}
}

.cft-portal--top .cft-seats.cft-acct {
	max-width: 820px;
	margin: 0 auto;
	padding: 28px;
}

/* ── Learner: My learning (CFT-LMS demo parity) ───────────────────────────── */
.cft-ml {
	max-width: 1080px;
	margin: 0 auto;
	padding: 28px;
	font-family: var(--font-primary);
	color: var(--text);
	line-height: 1.45;
}

.cft-ml svg {
	flex: none;
}

.cft-ml__split {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: 16px;
	align-items: stretch;
}

.cft-ml__hero {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	min-height: 180px;
	padding: 26px;
	border-radius: var(--radius-lg);
	overflow: hidden;
	color: #fff;
	background-color: var(--cft-navy-900);
	background-image: linear-gradient(120deg, rgba(10, 38, 56, 0.96), rgba(13, 49, 73, 0.86)), radial-gradient(circle at 85% 20%, rgba(239, 128, 63, 0.35), transparent 55%);
	background-size: cover;
	background-position: center;
}

.cft-ml__hero-eyebrow {
	font-family: var(--font-mono);
	font-size: 10.5px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--cft-safety-orange);
	margin-bottom: 8px;
}

.cft-ml .cft-ml__hero-title {
	margin: 0 0 4px;
	font-size: 24px;
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: 1.25;
	color: #fff;
}

.cft-ml__hero-meta {
	font-family: var(--font-mono);
	font-size: 12px;
	color: rgba(255, 255, 255, 0.7);
}

.cft-ml__hero-actions {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-top: 18px;
}

.cft-ml .cft-ml__resume {
	appearance: none;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 11px 20px;
	border: 0;
	border-radius: var(--radius-md);
	background: var(--cft-operational-orange);
	color: #fff;
	font-family: var(--font-primary);
	font-size: 14px;
	font-weight: 700;
	line-height: normal;
	cursor: pointer;
}

.cft-ml .cft-ml__resume:hover,
.cft-ml .cft-ml__resume:focus-visible {
	filter: brightness(1.05);
	color: #fff;
}

.cft-ml__resume svg {
	width: 14px;
	height: 14px;
}

.cft-ml__hero-bar {
	flex: 1;
	max-width: 200px;
	height: 6px;
	border-radius: 3px;
	overflow: hidden;
	background: rgba(255, 255, 255, 0.25);
}

.cft-ml__hero-bar > div {
	height: 100%;
	border-radius: 3px;
	background: #fff;
}

.cft-ml__standing {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 18px;
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-xs, 0 1px 2px rgba(16, 59, 88, 0.06));
}

.cft-ml__label {
	font-family: var(--font-mono);
	font-size: 10.5px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--text-subtle);
}

.cft-ml__count {
	display: flex;
	align-items: baseline;
	gap: 6px;
}

.cft-ml__count-num {
	font-size: 30px;
	font-weight: 600;
	line-height: 1.1;
}

.cft-ml__count-text {
	font-size: 13px;
	color: var(--text-muted);
}

.cft-ml__rule {
	height: 1px;
	background: var(--cft-grey-100);
}

.cft-ml__certs {
	display: flex;
	flex-direction: column;
	gap: 9px;
}

.cft-ml__certs-empty {
	font-size: 12.5px;
	color: var(--text-muted);
}

.cft-ml__cert {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
}

.cft-ml__cert-code {
	font-family: var(--font-mono);
	font-size: 11px;
	font-weight: 600;
	color: var(--text);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.cft-ml__cert-exp {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	flex: none;
	font-size: 12px;
	font-weight: 600;
}

.cft-ml__dot {
	flex: none;
	width: 7px;
	height: 7px;
	border-radius: 999px;
}

.cft-ml .cft-ml__view-certs {
	appearance: none;
	width: 100%;
	margin-top: auto;
	padding: 9px;
	border: 1px solid var(--border);
	border-radius: var(--radius-md);
	background: var(--surface);
	color: var(--cft-control-navy);
	font-family: var(--font-primary);
	font-size: 13px;
	font-weight: 600;
	line-height: normal;
	cursor: pointer;
}

.cft-ml .cft-ml__view-certs:hover,
.cft-ml .cft-ml__view-certs:focus-visible {
	background: var(--surface-2);
	color: var(--cft-control-navy);
}

.cft-ml .cft-ml__heading {
	margin: 24px 0 12px;
	font-size: 16px;
	font-weight: 600;
	color: var(--text);
}

.cft-ml__empty {
	padding: 22px;
	border: 1px dashed var(--border-strong);
	border-radius: var(--radius-lg);
	background: var(--surface);
	color: var(--text-muted);
	font-size: 14px;
}

.cft-ml__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
}

.cft-ml__card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-xs, 0 1px 2px rgba(16, 59, 88, 0.06));
}

.cft-ml__thumb {
	position: relative;
	height: 96px;
	display: flex;
	align-items: flex-start;
	justify-content: flex-end;
	gap: 8px;
	padding: 10px;
	overflow: hidden;
	background: linear-gradient(135deg, var(--cft-navy-800), var(--cft-transport-blue));
}

.cft-ml__thumb img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cft-ml__thumb::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(10, 38, 56, 0.05), rgba(10, 38, 56, 0.5));
}

.cft-ml__badge {
	position: relative;
	z-index: 1;
	padding: 3px 7px;
	border-radius: var(--radius-sm);
	font-family: var(--font-mono);
	font-size: 9.5px;
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1.3;
	text-transform: uppercase;
	white-space: nowrap;
}

.cft-ml__card-body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 14px 16px;
}

.cft-ml .cft-ml__card-title {
	margin: 0 0 12px;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--text);
}

.cft-ml__card-foot {
	margin-top: auto;
}

.cft-ml__bar {
	height: 6px;
	margin-bottom: 6px;
	border-radius: 3px;
	overflow: hidden;
	background: var(--cft-grey-200);
}

.cft-ml__bar > div {
	height: 100%;
}

.cft-ml__card-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.cft-ml__pct {
	font-family: var(--font-mono);
	font-size: 11px;
	color: var(--text-subtle);
}

.cft-ml .cft-ml__cta {
	appearance: none;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--cft-control-navy);
	font-family: var(--font-primary);
	font-size: 13px;
	font-weight: 600;
	line-height: normal;
	cursor: pointer;
}

.cft-ml .cft-ml__cta:hover,
.cft-ml .cft-ml__cta:focus-visible {
	background: transparent;
	color: var(--cft-control-navy);
	text-decoration: underline;
}

.cft-ml__cta svg {
	width: 14px;
	height: 14px;
}

@media (max-width: 900px) {
	.cft-ml__split {
		grid-template-columns: 1fr;
	}

	.cft-ml__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 600px) {
	.cft-ml {
		padding: 18px;
	}

	.cft-ml__grid {
		grid-template-columns: 1fr;
	}
}

/* ── Learner: My certificates (CFT-LMS demo parity) ───────────────────────── */
.cft-mc {
	max-width: 980px;
	margin: 0 auto;
	padding: 28px;
	font-family: var(--font-primary);
	color: var(--text);
	line-height: 1.45;
}

.cft-mc svg {
	flex: none;
}

.cft-mc .cft-mc__lead {
	margin: 0 0 20px;
	font-size: 14px;
	color: var(--text-muted);
}

.cft-mc__list {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.cft-mc__card {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 18px;
	padding: 18px 20px;
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-xs, 0 1px 2px rgba(16, 59, 88, 0.06));
}

.cft-mc__icon {
	flex: none;
	width: 48px;
	height: 48px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--radius-md);
	background: var(--cft-navy-800);
	color: #fff;
}

.cft-mc__card--empty .cft-mc__icon {
	background: var(--cft-grey-200);
	color: var(--text-subtle);
}

.cft-mc__body {
	flex: 1;
	min-width: 200px;
}

.cft-mc__head {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
}

.cft-mc .cft-mc__title {
	margin: 0;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--text);
}

.cft-mc__badge {
	padding: 3px 8px;
	border-radius: var(--radius-sm);
	font-family: var(--font-mono);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.cft-mc__meta {
	margin-top: 4px;
	font-family: var(--font-mono);
	font-size: 12px;
	color: var(--text-muted);
}

.cft-mc__exp {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: 8px;
	font-size: 12.5px;
	font-weight: 600;
}

.cft-mc .cft-mc__btn {
	appearance: none;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 18px;
	border: 0;
	border-radius: var(--radius-md);
	background: var(--cft-control-navy);
	color: #fff;
	font-family: var(--font-primary);
	font-size: 13.5px;
	font-weight: 600;
	line-height: normal;
	text-decoration: none;
	cursor: pointer;
}

.cft-mc .cft-mc__btn:hover,
.cft-mc .cft-mc__btn:focus-visible {
	color: #fff;
	filter: brightness(1.08);
}

.cft-mc .cft-mc__btn--outline,
.cft-mc .cft-mc__btn--outline:hover {
	border: 1px solid var(--border-strong);
	background: var(--surface);
	color: var(--cft-control-navy);
}

.cft-mc__btn svg {
	width: 16px;
	height: 16px;
}

/* ---------- Individual learner: Browse courses / Checkout / Purchase history ---------- */

.cft-sc,
.cft-co,
.cft-ph {
	margin: 0 auto;
	padding: 28px;
	font-family: var(--font-primary);
	color: var(--text);
	line-height: 1.45;
}

.cft-sc {
	max-width: 1080px;
}

.cft-co {
	max-width: 560px;
}

.cft-ph {
	max-width: 900px;
}

.cft-sc__eyebrow {
	margin-bottom: 4px;
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--text-subtle);
}

.cft-portal .cft-sc__title {
	margin: 0 0 4px;
	font-family: var(--font-primary);
	font-size: 22px;
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: 1.25;
	color: var(--text);
}

.cft-portal .cft-co__title {
	margin-bottom: 20px;
}

.cft-sc .cft-sc__lead,
.cft-ph .cft-sc__lead {
	max-width: 60ch;
	margin: 0 0 22px;
	font-size: 14px;
	color: var(--text-muted);
}

.cft-ph .cft-sc__lead {
	max-width: none;
}

.cft-sc__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}

.cft-sc__card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-xs, 0 1px 2px rgba(16, 59, 88, 0.06));
}

.cft-sc__thumb {
	position: relative;
	height: 120px;
	display: flex;
	align-items: flex-start;
	padding: 10px;
	overflow: hidden;
	background: linear-gradient(135deg, var(--cft-navy-800), var(--cft-transport-blue));
}

.cft-sc__thumb img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cft-sc__thumb::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(10, 38, 56, 0.05), rgba(10, 38, 56, 0.5));
}

.cft-sc__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 16px;
}

.cft-portal .cft-sc__card-title {
	margin: 0 0 10px;
	font-family: var(--font-primary);
	font-size: 14.5px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--text);
}

.cft-sc__facts {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: 0 0 10px;
}

.cft-sc__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 5px;
	min-width: 0;
}

.cft-sc__tag {
	font-family: var(--font-mono);
	font-size: 10px;
	border: 1px solid var(--border-strong);
	color: var(--text-muted);
	line-height: 14px;
	padding: 2px 6px;
	border-radius: var(--radius-sm);
}

.cft-sc__cert {
	margin-left: auto;
	flex: 0 0 auto;
	font-family: var(--font-mono);
	font-size: 11px;
	color: var(--text-subtle);
	white-space: nowrap;
}

.cft-sc__summary {
	margin: 0 0 10px;
	font-size: 13px;
	line-height: 1.45;
	color: var(--text-muted);
	white-space: pre-line;
}

.cft-sc__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 14px;
	margin: 0 0 10px;
	font-family: var(--font-mono);
	font-size: 11px;
	color: var(--text-subtle);
}

.cft-sc__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-top: auto;
}

.cft-sc__price {
	font-size: 18px;
	font-weight: 600;
}

.cft-sc .cft-sc__buy,
.cft-sc .cft-sc__owned {
	appearance: none;
	padding: 9px 16px;
	border-radius: var(--radius-md);
	font-family: var(--font-primary);
	font-size: 13px;
	font-weight: 600;
	line-height: normal;
	white-space: nowrap;
	cursor: pointer;
}

.cft-sc .cft-sc__buy {
	border: 0;
	background: var(--cft-control-navy);
	color: #fff;
}

.cft-sc .cft-sc__buy:hover,
.cft-sc .cft-sc__buy:focus-visible {
	background: var(--cft-control-navy);
	color: #fff;
	filter: brightness(1.1);
}

.cft-sc .cft-sc__buy:disabled {
	opacity: 0.7;
	cursor: wait;
}

.cft-sc .cft-sc__owned {
	padding: 9px 15px;
	border: 1px solid var(--border-strong);
	background: var(--surface);
	color: var(--cft-control-navy);
}

.cft-sc .cft-sc__owned:hover,
.cft-sc .cft-sc__owned:focus-visible {
	background: var(--surface-2);
	color: var(--cft-control-navy);
}

.cft-co .cft-co__back {
	appearance: none;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-bottom: 14px;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--text-muted);
	font-family: var(--font-primary);
	font-size: 12.5px;
	cursor: pointer;
}

.cft-co .cft-co__back:hover,
.cft-co .cft-co__back:focus-visible {
	background: transparent;
	color: var(--cft-control-navy);
}

.cft-co__card {
	margin-bottom: 16px;
	padding: 20px;
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-xs, 0 1px 2px rgba(16, 59, 88, 0.06));
}

.cft-co__item {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 6px;
}

.cft-co__item-title {
	font-size: 14.5px;
	font-weight: 600;
}

.cft-co__item-code {
	flex: none;
	font-family: var(--font-mono);
	font-size: 11px;
	color: var(--text-subtle);
}

.cft-co__sub {
	margin-bottom: 16px;
	font-size: 12.5px;
	color: var(--text-muted);
}

.cft-co__rows {
	display: flex;
	flex-direction: column;
	gap: 8px;
	font-size: 13.5px;
}

.cft-co__row {
	display: flex;
	justify-content: space-between;
	gap: 12px;
}

.cft-co__row > span:first-child {
	color: var(--text-muted);
}

.cft-co__row[hidden] {
	display: none;
}

.cft-co__row--total {
	font-size: 15px;
	font-weight: 600;
}

.cft-co__row--total > span:first-child {
	color: var(--text);
}

.cft-co__rule {
	height: 1px;
	margin: 4px 0;
	background: var(--cft-grey-100);
}

.cft-co__coupon {
	display: flex;
	gap: 8px;
	margin-top: 16px;
	padding-top: 16px;
	border-top: 1px solid var(--cft-grey-100);
}

.cft-co .cft-co__coupon-input {
	flex: 1;
	min-width: 0;
	box-sizing: border-box;
	padding: 9px 12px;
	border: 1px solid var(--border);
	border-radius: var(--radius-md);
	background: var(--surface);
	font-family: var(--font-primary);
	font-size: 13.5px;
	text-transform: uppercase;
}

.cft-co .cft-co__coupon-btn,
.cft-co .cft-co__coupon-remove {
	appearance: none;
	padding: 9px 14px;
	border: 1px solid var(--border-strong);
	border-radius: var(--radius-md);
	background: var(--surface);
	color: var(--cft-control-navy);
	font-family: var(--font-primary);
	font-size: 13px;
	font-weight: 600;
	line-height: normal;
	cursor: pointer;
}

.cft-co .cft-co__coupon-remove {
	border-color: transparent;
	color: var(--text-muted);
}

.cft-co .cft-co__coupon-btn:hover,
.cft-co .cft-co__coupon-remove:hover {
	background: var(--surface-2);
	color: var(--cft-control-navy);
}

.cft-co__coupon-remove[hidden] {
	display: none;
}

.cft-co .cft-co__coupon-msg {
	margin: 8px 0 0;
	font-size: 12.5px;
	color: var(--success, #2f7d52);
}

.cft-co .cft-co__coupon-msg.is-error {
	color: var(--cft-signal-red);
}

.cft-co__label {
	margin-bottom: 10px;
	font-family: var(--font-mono);
	font-size: 10.5px;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: var(--text-subtle);
}

.cft-co__seg {
	display: flex;
	gap: 8px;
	margin-bottom: 16px;
}

.cft-co .cft-co__seg-btn {
	appearance: none;
	flex: 1;
	padding: 9px 12px;
	border: 1px solid var(--border);
	border-radius: var(--radius-md);
	background: var(--surface);
	color: var(--text-muted);
	font-family: var(--font-primary);
	font-size: 13px;
	font-weight: 600;
	line-height: normal;
	cursor: pointer;
}

.cft-co .cft-co__seg-btn.is-active,
.cft-co .cft-co__seg-btn.is-active:hover {
	border-color: var(--cft-control-navy);
	background: var(--cft-control-navy);
	color: #fff;
}

.cft-co .cft-co__seg-btn:not(.is-active):hover {
	background: var(--surface-2);
	color: var(--text);
}

.cft-co__stripe {
	min-height: 8px;
}

.cft-co__fields {
	display: flex;
	flex-direction: column;
	gap: 11px;
}

.cft-co__field {
	display: flex;
	flex-direction: column;
	gap: 5px;
	font-size: 12.5px;
	font-weight: 600;
	color: var(--text-muted);
}

.cft-co .cft-co__field input {
	box-sizing: border-box;
	width: 100%;
	padding: 11px 13px;
	border: 1px solid var(--border);
	border-radius: var(--radius-md);
	background: var(--surface);
	font-family: var(--font-primary);
	font-size: 14px;
	font-weight: 400;
	color: var(--text);
}

.cft-co .cft-co__note {
	margin: 0;
	font-size: 13px;
	line-height: 1.5;
	color: var(--text-muted);
}

.cft-co .cft-co__error {
	margin: 0 0 12px;
	padding: 10px 12px;
	border-radius: var(--radius-md);
	background: rgba(219, 54, 39, 0.08);
	color: #af2b1f;
	font-size: 13px;
}

.cft-co .cft-co__submit {
	appearance: none;
	width: 100%;
	padding: 13px;
	border: 0;
	border-radius: var(--radius-md);
	background: var(--cft-operational-orange);
	color: #fff;
	font-family: var(--font-primary);
	font-size: 15px;
	font-weight: 700;
	line-height: normal;
	cursor: pointer;
}

.cft-co .cft-co__submit:hover,
.cft-co .cft-co__submit:focus-visible {
	background: var(--cft-operational-orange);
	color: #fff;
	filter: brightness(1.05);
}

.cft-co .cft-co__submit:disabled {
	opacity: 0.65;
	cursor: not-allowed;
	filter: none;
}

.cft-ph__table {
	overflow: hidden;
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-xs, 0 1px 2px rgba(16, 59, 88, 0.06));
}

.cft-ph__row {
	display: grid;
	grid-template-columns: 1.3fr 2fr 1.1fr 1fr 0.9fr;
	gap: 12px;
	align-items: center;
	padding: 14px 18px;
	border-bottom: 1px solid var(--cft-grey-100);
	font-size: 13px;
}

.cft-ph__row:last-child {
	border-bottom: 0;
}

.cft-ph__row--head {
	padding: 12px 18px;
	background: var(--surface-2);
	border-bottom: 1px solid var(--border);
	font-family: var(--font-mono);
	font-size: 10.5px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--text-subtle);
}

.cft-ph .cft-ph__no {
	font-family: var(--font-mono);
	font-size: 12px;
	color: var(--cft-control-navy);
	text-decoration: none;
	word-break: break-all;
}

.cft-ph a.cft-ph__no:hover,
.cft-ph a.cft-ph__no:focus-visible {
	color: var(--cft-control-navy);
	text-decoration: underline;
}

.cft-ph__title {
	display: block;
	font-weight: 600;
}

.cft-ph__code {
	font-family: var(--font-mono);
	font-size: 11px;
	color: var(--text-subtle);
}

.cft-ph__muted {
	color: var(--text-muted);
}

.cft-ph__status {
	display: inline-block;
	margin-left: 4px;
	padding: 1px 6px;
	border-radius: var(--radius-sm);
	background: rgba(219, 54, 39, 0.12);
	color: #af2b1f;
	font-family: var(--font-mono);
	font-size: 9.5px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.cft-ph__num {
	text-align: right;
}

.cft-ph__total {
	font-weight: 600;
}

.cft-ph__empty {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 18px;
	font-size: 13.5px;
	color: var(--text-muted);
}

.cft-ph .cft-ph__browse {
	appearance: none;
	padding: 8px 14px;
	border: 0;
	border-radius: var(--radius-md);
	background: var(--cft-control-navy);
	color: #fff;
	font-family: var(--font-primary);
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
}

@media (max-width: 900px) {
	.cft-sc__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 700px) {
	.cft-sc,
	.cft-co,
	.cft-ph {
		padding: 20px 16px;
	}

	.cft-sc__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.cft-ph__row--head {
		display: none;
	}

	.cft-ph__row {
		grid-template-columns: 1fr auto;
		gap: 4px 12px;
	}

	.cft-ph__row > span:nth-child(2) {
		grid-column: 1 / -1;
		grid-row: 2;
	}

	.cft-ph__row > span:nth-child(3),
	.cft-ph__row > span:nth-child(4) {
		grid-row: 3;
	}

	.cft-ph__row > span:nth-child(4) {
		text-align: right;
	}

	.cft-ph__row > span:nth-child(5) {
		grid-column: 2;
		grid-row: 1;
	}
}

.cft-ml a.cft-ml__resume,
.cft-ml a.cft-ml__cta,
.cft-sc a.cft-sc__owned {
	text-decoration: none;
}

.cft-sc a.cft-sc__owned {
	display: inline-flex;
	align-items: center;
}

/*
 * Modal action buttons: one standard across portal modals, matching .cft-btn
 * (primary) and .cft-btn--secondary (cancel). Kept last so it wins over the
 * per-screen .cft-btn--navy / .cft-seats__btn sizing.
 */
.cft-smodal .cft-seats__btn,
.cft-course-modal__foot .cft-btn,
.cft-notif-modal__footer .cft-btn {
	min-height: 0;
	padding: 0.55rem 1rem;
	border: 1px solid var(--cft-primary);
	border-radius: 8px;
	font-family: var(--cft-font);
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.25;
	filter: none;
}

.cft-smodal .cft-seats__btn--navy,
.cft-course-modal__foot .cft-btn--navy,
.cft-notif-modal__footer .cft-btn--navy {
	background: var(--cft-primary);
	border-color: var(--cft-primary);
	color: #fff;
}

.cft-smodal .cft-seats__btn--navy:is(:hover, :focus-visible):not(:disabled),
.cft-course-modal__foot .cft-btn--navy:is(:hover, :focus-visible):not(:disabled),
.cft-notif-modal__footer .cft-btn--navy:is(:hover, :focus-visible):not(:disabled) {
	background: var(--cft-navy-600);
	border-color: var(--cft-navy-600);
	color: #fff;
	filter: none;
}

.cft-smodal .cft-seats__btn--outline,
.cft-course-modal__foot .cft-btn--secondary {
	background: #fff;
	border-color: var(--cft-primary);
	color: var(--cft-primary);
}

.cft-smodal .cft-seats__btn--outline:is(:hover, :focus-visible),
.cft-course-modal__foot .cft-btn--secondary:is(:hover, :focus-visible) {
	background: var(--cft-navy-600);
	border-color: var(--cft-navy-600);
	color: #fff;
}
