/* SCH Coach Dashboard */

/* ── Rajdhani font ──────────────────────────────────────────────────────── */
.sch-dashboard-wrap {
	font-family: 'Rajdhani', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
.sch-d-name {
	font-family: 'Rajdhani', sans-serif;
	letter-spacing: 0.5px;
}
.sch-d-kpi__val,
.sch-d-licence-value {
	font-family: 'Rajdhani', sans-serif;
}
.sch-d-section__title,
.sch-d-widget__head {
	font-family: 'Rajdhani', sans-serif;
}

/* ── Full-width layout overrides ───────────────────────────────────────── */
.sch-dashboard-wrap {
	width: 100%;
	max-width: 100% !important;
	padding: 0 2rem;
	box-sizing: border-box;
}

body .entry-content,
body .site-content .container,
body .buddyboss-theme .bb-grid,
body #buddypress,
body .buddypress-wrap {
	max-width: 100% !important;
	width: 100% !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

/* ── Chips with logos ────────────────────────────────────────────────── */
.sch-d-chip__logo {
	width: 18px;
	height: 18px;
	object-fit: contain;
	vertical-align: middle;
	margin-right: 4px;
	flex-shrink: 0;
}

.sch-d-chip__logo-ph {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
	font-size: 15px;
	line-height: 1;
	vertical-align: middle;
	margin-right: 4px;
}

/* ============================================================
   Tokens
   ============================================================ */
.sch-dashboard {
	--sch-primary:       #227F77;
	--sch-dark:          #025B54;
	--sch-navy:          #122B46;
	--sch-yellow:        #F1C40F;
	--sch-white:         #ffffff;
	--sch-bg:            #f8f9fa;
	--sch-border:        #e5e7eb;
	--sch-border-soft:   rgba(0,0,0,.06);
	--sch-text:          #1f2937;
	--sch-text-secondary:#6b7280;
	--sch-primary-light: #e8f5f4;
	--sch-radius:        12px;

	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	color: var(--sch-text);
	line-height: 1.5;
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 16px 48px;
}

.sch-dashboard *,
.sch-dashboard *::before,
.sch-dashboard *::after {
	box-sizing: border-box;
}

/* ============================================================
   Hero — dark navy three-section card
   ============================================================ */
.sch-d-hero {
	display: flex;
	align-items: center;
	gap: 2rem;
	background: #122B46;
	border-radius: 16px;
	padding: 2rem;
	margin-bottom: 1.5rem;
	position: relative;
	overflow: hidden;
}

.sch-d-hero::before {
	content: '';
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 3px;
	background: linear-gradient(90deg, #227F77, #F1C40F, #227F77);
}

/* Section A — User Identity */
.sch-d-hero__a {
	display: flex;
	align-items: center;
	gap: 18px;
	flex: 1;
	min-width: 0;
}

.sch-d-avatar {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	object-fit: cover;
	flex-shrink: 0;
	border: 2px solid #227F77;
}

.sch-d-hero__identity {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}

.sch-d-name {
	font-size: 30px;
	font-weight: 700;
	letter-spacing: 0.5px;
	
	margin: 0;
	line-height: 1.2;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.sch-glass-page:not(.sch-light) .sch-d-name { color: #ffffff; } /* dark-era ink, scoped */

.sch-d-account-type {
	font-size: 15px;
	
	margin: 0;
}
.sch-glass-page:not(.sch-light) .sch-d-account-type { color: rgba(255, 255, 255, 0.55); } /* dark-era ink, scoped */

/* Section B — Association Logos */
.sch-d-hero__b {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	flex-shrink: 0;
}

.sch-d-hero__logos {
	display: flex;
	align-items: center;
	gap: 16px;
}

.sch-d-logo-box {
	background: #ffffff;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	box-sizing: border-box;
}

.sch-d-logo-box--fa {
	width: 72px;
	height: 72px;
	border-radius: 12px;
	padding: 8px;
}

.sch-d-logo-box--conf {
	width: 56px;
	height: 56px;
	border-radius: 10px;
	padding: 6px;
}

.sch-d-logo-box img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}

.sch-d-logo-initials {
	font-family: 'Rajdhani', sans-serif;
	font-weight: 700;
	font-size: 21px;
	color: #122B46;
}

.sch-d-logo-divider {
	width: 1px;
	height: 48px;
	background: rgba(255, 255, 255, 0.15);
}

.sch-d-hero__logo-names {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	text-align: center;
}

.sch-d-fa-name-full {
	font-size: 15px;
	
	line-height: 1.3;
}
.sch-glass-page:not(.sch-light) .sch-d-fa-name-full { color: rgba(255, 255, 255, 0.75); } /* dark-era ink, scoped */

.sch-d-conf-name {
	font-size: 13px;
	
}
.sch-glass-page:not(.sch-light) .sch-d-conf-name { color: rgba(255, 255, 255, 0.45); } /* dark-era ink, scoped */

/* Section C — Licence Info */
.sch-d-hero__c {
	display: flex;
	flex-direction: column;
	gap: 4px;
	flex-shrink: 0;
	text-align: right;
	min-width: 160px;
}

.sch-d-hero__label {
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .12em;
	
}
.sch-glass-page:not(.sch-light) .sch-d-hero__label { color: rgba(255, 255, 255, 0.4); } /* dark-era ink, scoped */

.sch-d-hero__label--obnova {
	margin-top: 12px;
}

.sch-d-licence-value {
	font-size: 25px;
	font-weight: 700;
	
	line-height: 1.2;
}
.sch-glass-page:not(.sch-light) .sch-d-licence-value { color: #F1C40F; } /* dark-era ink, scoped */

.sch-d-renewal-date {
	font-size: 17px;
	
	line-height: 1.3;
}
.sch-glass-page:not(.sch-light) .sch-d-renewal-date { color: #ffffff; } /* dark-era ink, scoped */

.sch-d-mem-chip {
	display: inline-block;
	margin-top: 8px;
	align-self: flex-end;
	padding: 3px 10px;
	border-radius: 20px;
	background: rgba(34, 197, 94, 0.2);
	border: 1px solid rgba(34, 197, 94, 0.4);
	
	font-size: 13px;
	font-weight: 500;
	white-space: nowrap;
}
.sch-glass-page:not(.sch-light) .sch-d-mem-chip { color: #4ade80; } /* dark-era ink, scoped */

.sch-d-muted {
	
	font-size: 16px;
	font-weight: 400;
}
.sch-glass-page:not(.sch-light) .sch-d-muted { color: rgba(255, 255, 255, 0.35); } /* dark-era ink, scoped */

/* ============================================================
   KPI row
   ============================================================ */
.sch-d-kpi-row {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	padding: 1.25rem 0;
	border-bottom: .5px solid var(--sch-border);
	margin-bottom: 1.5rem;
}

.sch-d-kpi {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding: 0 1.5rem;
	border-right: .5px solid var(--sch-border);
}

.sch-d-kpi:first-child {
	padding-left: 0;
}

.sch-d-kpi:last-child {
	border-right: none;
}

.sch-d-kpi__val {
	font-size: 37px;
	font-weight: 700;
	color: var(--sch-navy);
	line-height: 1;
}

.sch-d-kpi__label {
	font-size: 15px;
	font-weight: 500;
	color: var(--sch-text);
	margin-top: 4px;
}

.sch-d-kpi__sub {
	font-size: 13px;
	color: var(--sch-text-secondary);
	margin-top: 1px;
}

/* ============================================================
   Two-column body
   ============================================================ */
.sch-d-body {
	display: grid;
	grid-template-columns: 1fr 300px;
	gap: 2rem;
	align-items: start;
}

/* ============================================================
   Sections — main column
   ============================================================ */
.sch-d-section {
	margin-bottom: 2rem;
}

.sch-d-section__head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 1rem;
}

.sch-d-section__title {
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--sch-text-secondary);
}

/* ============================================================
   Links
   ============================================================ */
.sch-d-link {
	font-size: 15px;
	color: var(--sch-text-secondary);
	text-decoration: none;
}

.sch-d-link:hover {
	color: var(--sch-text);
}

.sch-d-link--teal {
	color: var(--sch-primary);
	font-weight: 500;
}

.sch-d-link--teal:hover {
	color: var(--sch-dark);
}

/* ============================================================
   Course list
   ============================================================ */
.sch-d-course-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.sch-d-course-item {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 10px 0;
	border-bottom: .5px solid var(--sch-border);
}

.sch-d-course-item:last-child {
	border-bottom: none;
}

.sch-d-course-num {
	font-size: 14px;
	font-weight: 700;
	color: var(--sch-text-secondary);
	width: 22px;
	flex-shrink: 0;
	font-variant-numeric: tabular-nums;
}

.sch-d-course-body {
	flex: 1;
	min-width: 0;
}

.sch-d-course-title {
	font-size: 16px;
	font-weight: 500;
	color: var(--sch-text);
	text-decoration: none;
	display: block;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.sch-d-course-title:hover {
	color: var(--sch-primary);
}

.sch-d-course-meta {
	font-size: 13px;
	color: var(--sch-text-secondary);
	display: block;
	margin-top: 1px;
}

.sch-d-progress {
	height: 2px;
	background: var(--sch-border);
	border-radius: 1px;
	overflow: hidden;
	margin-top: 6px;
}

.sch-d-progress__fill {
	height: 100%;
	background: var(--sch-primary);
	width: 0;
	border-radius: 1px;
	transition: width .7s ease;
}

.sch-d-course-pct {
	font-size: 14px;
	font-weight: 600;
	color: var(--sch-primary);
	width: 36px;
	flex-shrink: 0;
	text-align: right;
}

/* ============================================================
   Empty state
   ============================================================ */
.sch-d-empty-state {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	padding: 28px 0;
	font-size: 15px;
	color: var(--sch-text-secondary);
	text-align: center;
}

.sch-d-empty-state__icon {
	font-size: 32px;
}

/* ============================================================
   Session list (Trace AI / Mentoring)
   ============================================================ */
.sch-d-session-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.sch-d-session-item {
	display: flex;
	align-items: center;
	gap: 12px;
}

.sch-d-session-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	flex-shrink: 0;
}

.sch-d-session-body {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.sch-d-session-title {
	font-size: 16px;
	font-weight: 500;
	color: var(--sch-text);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.sch-d-session-meta {
	font-size: 13px;
	color: var(--sch-text-secondary);
}

/* Locked card (Trace AI locked state) */
.sch-d-locked-card {
	display: flex;
	align-items: center;
	gap: 14px;
	border: .5px dashed var(--sch-border);
	border-radius: var(--sch-radius);
	padding: 16px;
}

.sch-d-locked-card__icon {
	font-size: 25px;
	flex-shrink: 0;
}

.sch-d-locked-card__title {
	font-size: 16px;
	font-weight: 600;
	color: var(--sch-navy);
	display: block;
}

.sch-d-locked-card__sub {
	font-size: 14px;
	color: var(--sch-text-secondary);
}

/* ============================================================
   Muted helper
   ============================================================ */
.sch-d-muted {
	color: var(--sch-text-secondary);
	font-size: 15px;
	margin: 0;
}

/* ============================================================
   Sidebar widgets
   ============================================================ */
.sch-d-sidebar {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.sch-d-widget {
	background: var(--sch-white);
	border: .5px solid var(--sch-border);
	border-radius: var(--sch-radius);
	overflow: hidden;
}

.sch-d-widget__head {
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--sch-text-secondary);
	padding: 12px 16px;
	border-bottom: .5px solid var(--sch-border);
}

.sch-d-widget__body {
	padding: 1.25rem;
}

/* Memberships */
.sch-d-mem-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.sch-d-mem-item {
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-size: 15px;
}

.sch-d-mem-name {
	font-weight: 600;
	color: var(--sch-text);
	display: block;
}

.sch-d-mem-expires {
	font-size: 13px;
	color: var(--sch-text-secondary);
	display: block;
}

.sch-d-badge {
	font-size: 13px;
	font-weight: 600;
	padding: 2px 9px;
	border-radius: 20px;
	white-space: nowrap;
}

.sch-d-badge--active {
	background: #d1fae5;
	color: #065f46;
}

/* Groups */
.sch-d-group-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.sch-d-group-item {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 15px;
}

.sch-d-group-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	flex-shrink: 0;
}

.sch-d-group-name {
	flex: 1;
	color: var(--sch-text);
	text-decoration: none;
	font-weight: 500;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.sch-d-group-name:hover {
	color: var(--sch-primary);
}

.sch-d-group-count {
	font-size: 13px;
	color: var(--sch-text-secondary);
	flex-shrink: 0;
}

/* FA Space widget */
.sch-d-fa-header {
	background: var(--sch-navy);
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 14px 16px;
}

.sch-d-fa-logo {
	width: 26px;
	height: 26px;
	object-fit: contain;
	border-radius: 4px;
	flex-shrink: 0;
}

.sch-d-fa-logo-ph {
	font-size: 21px;
	flex-shrink: 0;
}

.sch-d-fa-name {
	font-size: 15px;
	font-weight: 600;
	color: var(--sch-white);
}

.sch-d-post-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.sch-d-post-item {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.sch-d-post-title {
	font-size: 15px;
	font-weight: 500;
	color: var(--sch-text);
	text-decoration: none;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.sch-d-post-title:hover {
	color: var(--sch-primary);
}

.sch-d-post-date {
	font-size: 13px;
	color: var(--sch-text-secondary);
}

/* Recommended widget */
.sch-d-widget--recommended {
	border-left: 3px solid var(--sch-primary);
}

.sch-d-widget--recommended .sch-d-widget__head {
	color: var(--sch-primary);
}

.sch-d-rec-title {
	font-size: 16px;
	font-weight: 500;
	color: var(--sch-navy);
	text-decoration: none;
	display: block;
	margin-bottom: 10px;
	line-height: 1.4;
}

.sch-d-rec-title:hover {
	color: var(--sch-primary);
}

.sch-d-rec-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.sch-d-pill {
	font-size: 13px;
	font-weight: 500;
	padding: 3px 8px;
	border-radius: 20px;
}

.sch-d-pill--teal {
	background: var(--sch-primary-light);
	color: var(--sch-dark);
}

.sch-d-pill--navy {
	background: var(--sch-navy);
	color: var(--sch-white);
}

/* Locked widget */
.sch-d-widget--locked {
	border: .5px dashed var(--sch-border);
	opacity: 0.55;
}

.sch-d-widget--locked .sch-d-widget__head {
	display: flex;
	align-items: center;
	gap: 6px;
}

.sch-d-lock-icon {
	font-size: 15px;
}

/* ============================================================
   Login prompt
   ============================================================ */
.sch-d-login-prompt {
	text-align: center;
	padding: 60px 20px;
	color: var(--sch-text-secondary);
}

.sch-d-login-prompt p { margin-bottom: 16px; }

.sch-d-btn {
	display: inline-flex;
	align-items: center;
	padding: 9px 20px;
	border-radius: 8px;
	background: var(--sch-primary);
	color: var(--sch-white);
	font-size: 16px;
	font-weight: 500;
	text-decoration: none;
	border: none;
	cursor: pointer;
}

.sch-d-btn:hover {
	background: var(--sch-dark);
	color: var(--sch-white);
}

/* ============================================================
   Responsive — 768px: single column; KPI row 2×2
   ============================================================ */
@media (max-width: 768px) {
	.sch-d-hero {
		flex-direction: column;
		gap: 16px;
		padding: 1.5rem;
	}

	.sch-d-hero__a {
		width: 100%;
	}

	.sch-d-hero__c {
		text-align: left;
		width: 100%;
	}

	.sch-d-mem-chip {
		align-self: flex-start;
	}

	.sch-d-kpi-row {
		grid-template-columns: repeat(2, 1fr);
		row-gap: 1rem;
	}

	.sch-d-kpi:nth-child(2) {
		border-right: none;
	}

	.sch-d-kpi:nth-child(3) {
		padding-left: 0;
		border-right: .5px solid var(--sch-border);
	}

	.sch-d-kpi:last-child {
		padding-left: 1.5rem;
	}

	.sch-d-body {
		grid-template-columns: 1fr;
	}

	.sch-d-name {
		font-size: 25px;
	}
}

@media (max-width: 480px) {
	.sch-d-avatar {
		width: 52px;
		height: 52px;
	}

	.sch-d-name {
		font-size: 23px;
	}

	.sch-d-kpi__val {
		font-size: 30px;
	}
}

/* ── Global animation additions ────────────────────────────────────────── */

/* Loading skeleton */
.sch-skeleton {
	background: linear-gradient(90deg, #f1f5f9 25%, #e8f0f0 50%, #f1f5f9 75%);
	background-size: 200% 100%;
	animation: skeletonShimmer 1.5s infinite;
	border-radius: 6px;
}
@keyframes skeletonShimmer {
	0%   { background-position: 200% 0; }
	100% { background-position: -200% 0; }
}

/* Panel enter / exit */
.sch-panel-enter { animation: panelEnter .3s cubic-bezier(.4,0,.2,1) both; }
.sch-panel-exit  { animation: panelExit  .15s ease both; }
@keyframes panelEnter { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes panelExit  { from { opacity: 1; transform: none; } to { opacity: 0; transform: translateY(-4px); } }

/* Card hover lift */
.sch-card-lift { transition: transform .2s cubic-bezier(.4,0,.2,1), box-shadow .2s ease; }
.sch-card-lift:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,0,0,.08); }

/* Button press */
.sch-btn:active { transform: scale(.97); }

/* Ripple */
.sch-ripple {
	position: absolute;
	border-radius: 50%;
	background: rgba(255,255,255,.3);
	transform: scale(0);
	animation: ripple .5s linear;
	pointer-events: none;
}
@keyframes ripple { to { transform: scale(4); opacity: 0; } }

/* KPI card entry */
.sch-d-kpi { transition: opacity .4s ease, transform .4s cubic-bezier(.4,0,.2,1); }

/* ============================================================
   LIGHT LIQUID GLASS — CIS standard. Authoritative repaint of
   EVERY dashboard component, scoped to .sch-glass-page.sch-light
   with !important where a base / sch-glass.css rule would win.
   ============================================================ */

/* Wrapper + page stay light (sch-glass.css forces #0a1628 !important) */
.sch-glass-page.sch-light.sch-dashboard-wrap { background: transparent !important; }

/* Token overrides → light */
.sch-glass-page.sch-light .sch-dashboard {
	--sch-text:           #122B46;
	--sch-text-secondary: #5b6b7d;
	--sch-bg:             transparent;
	--sch-border:         rgba(18,43,70,0.10);
	--sch-border-soft:    rgba(18,43,70,0.07);
	--sch-white:          rgba(255,255,255,0.72);
	--sch-primary-light:  rgba(34,127,119,0.10);
	--sch-navy:           #122B46;
	font-family: 'Rajdhani', system-ui, sans-serif;
	color: #122B46;
	/* Full width — .lg-content provides the gutter (no 1100px centering). */
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Shared frosted-card surface for every dashboard card */
.sch-glass-page.sch-light .sch-d-section,
.sch-glass-page.sch-light .sch-d-kpi-row,
.sch-glass-page.sch-light .sch-d-widget,
.sch-glass-page.sch-light .sch-d-infocard {
	background: rgba(255,255,255,0.72) !important;
	backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
	border: 1px solid rgba(18,43,70,0.10) !important;
	border-radius: 16px;
	box-shadow: 0 1px 2px rgba(18,43,70,0.04), 0 8px 30px rgba(18,43,70,0.07);
}

/* Education / Trace / Mentoring panels become padded cards with a teal top accent */
.sch-glass-page.sch-light .sch-d-section { position:relative; padding:18px 20px; overflow:hidden; margin-bottom:1.5rem; }
.sch-glass-page.sch-light .sch-d-section::before { content:""; position:absolute; left:0; top:0; height:3px; width:100%; background:linear-gradient(90deg,#227F77,#5dcaa5); }

/* Info cards (avatar / licence / renewal) */
.sch-glass-page.sch-light .sch-d-infocards { display:grid; grid-template-columns:repeat(auto-fit, minmax(220px,1fr)); gap:14px; margin:18px 0 6px; }
.sch-glass-page.sch-light .sch-d-infocard { position:relative; padding:16px 18px; overflow:hidden; }
.sch-glass-page.sch-light .sch-d-infocard::before { content:""; position:absolute; left:0; top:0; height:3px; width:100%; background:linear-gradient(90deg,#227F77,#5dcaa5); }
.sch-glass-page.sch-light .sch-d-infocard--id { display:flex; align-items:center; gap:12px; }
.sch-glass-page.sch-light .sch-d-infocard__avatar { width:48px; height:48px; border-radius:50%; object-fit:cover; flex:0 0 48px; }
.sch-glass-page.sch-light .sch-d-infocard__name { font-size:17px; font-weight:700; color:#122B46 !important; line-height:1.15; }
.sch-glass-page.sch-light .sch-d-infocard__sub  { font-size:13px; font-weight:600; color:#5b6b7d !important; margin-top:2px; }
.sch-glass-page.sch-light .sch-d-infocard__label { font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#90a0b0 !important; }
.sch-glass-page.sch-light .sch-d-infocard__value { font-size:18px; font-weight:700; margin-top:4px;
	background:linear-gradient(120deg,#227F77,#5dcaa5); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }

/* Hero entity logos */
.sch-glass-page.sch-light .sch-d-herologos { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.sch-glass-page.sch-light .sch-d-herologo  { height:30px; width:auto; max-width:110px; object-fit:contain; }
.sch-glass-page.sch-light .sch-d-herochip  { display:inline-flex; align-items:center; height:28px; padding:0 12px; border-radius:999px;
	background:rgba(34,127,119,0.08); border:1px solid rgba(34,127,119,0.2); font-size:13px; font-weight:700; color:#227F77 !important; }

/* KPI strip */
.sch-glass-page.sch-light .sch-d-kpi-row { padding:1rem 0; }
.sch-glass-page.sch-light .sch-d-kpi { border-right-color:rgba(18,43,70,0.08) !important; }
.sch-glass-page.sch-light .sch-d-kpi__val {
	background:linear-gradient(120deg,#227F77,#5dcaa5); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.sch-glass-page.sch-light .sch-d-kpi__label { color:#122B46 !important; }
.sch-glass-page.sch-light .sch-d-kpi__sub   { color:#90a0b0 !important; }

/* Section titles / widget heads */
.sch-glass-page.sch-light .sch-d-section__title,
.sch-glass-page.sch-light .sch-d-widget__head { color:#90a0b0 !important; }
.sch-glass-page.sch-light .sch-d-widget__head { background:transparent !important; border-bottom:1px solid rgba(18,43,70,0.07) !important; }
.sch-glass-page.sch-light .sch-d-widget--recommended { border-left:2px solid #227F77 !important; }
.sch-glass-page.sch-light .sch-d-widget--recommended .sch-d-widget__head { color:#227F77 !important; }
.sch-glass-page.sch-light .sch-d-widget--locked { border:1px dashed rgba(18,43,70,0.18) !important; opacity:.6; }
.sch-glass-page.sch-light .sch-d-fa-header { background:rgba(34,127,119,0.06) !important; border-bottom:1px solid rgba(18,43,70,0.07) !important; }
.sch-glass-page.sch-light .sch-d-fa-name { color:#122B46 !important; }
.sch-glass-page.sch-light .sch-d-logo-box { background:#fff !important; border:1px solid rgba(18,43,70,0.10) !important; box-shadow:0 2px 8px rgba(18,43,70,0.06); }
.sch-glass-page.sch-light .sch-d-logo-initials { color:#227F77 !important; }

/* Course list */
.sch-glass-page.sch-light .sch-d-course-item  { color:#122B46 !important; border-bottom:1px solid rgba(18,43,70,0.07) !important; }
.sch-glass-page.sch-light .sch-d-course-title { color:#122B46 !important; }
.sch-glass-page.sch-light .sch-d-course-title:hover { color:#227F77 !important; }
.sch-glass-page.sch-light .sch-d-course-meta  { color:#5b6b7d !important; }
.sch-glass-page.sch-light .sch-d-course-num   { color:#90a0b0 !important; }
.sch-glass-page.sch-light .sch-d-course-pct   { color:#227F77 !important; }
.sch-glass-page.sch-light .sch-d-progress     { background:rgba(18,43,70,0.08) !important; }

/* Sessions */
.sch-glass-page.sch-light .sch-d-session-title { color:#122B46 !important; }
.sch-glass-page.sch-light .sch-d-session-meta  { color:#5b6b7d !important; }

/* Locked card (Trace AI) */
.sch-glass-page.sch-light .sch-d-locked-card { border-color:rgba(18,43,70,0.12) !important; background:rgba(18,43,70,0.03) !important; opacity:.75; }
.sch-glass-page.sch-light .sch-d-locked-card__title { color:#122B46 !important; }
.sch-glass-page.sch-light .sch-d-locked-card__sub   { color:#5b6b7d !important; }

/* Memberships / groups / posts / recommended */
.sch-glass-page.sch-light .sch-d-mem-name    { color:#122B46 !important; }
.sch-glass-page.sch-light .sch-d-mem-expires { color:#90a0b0 !important; }
.sch-glass-page.sch-light .sch-d-badge--active { background:rgba(34,127,119,0.12) !important; color:#1b655f !important; }
.sch-glass-page.sch-light .sch-d-group-name       { color:#122B46 !important; }
.sch-glass-page.sch-light .sch-d-group-name:hover { color:#227F77 !important; }
.sch-glass-page.sch-light .sch-d-group-count      { color:#90a0b0 !important; }
.sch-glass-page.sch-light .sch-d-post-title       { color:#122B46 !important; }
.sch-glass-page.sch-light .sch-d-post-title:hover { color:#227F77 !important; }
.sch-glass-page.sch-light .sch-d-post-date        { color:#90a0b0 !important; }
.sch-glass-page.sch-light .sch-d-rec-title        { color:#122B46 !important; }
.sch-glass-page.sch-light .sch-d-rec-title:hover  { color:#227F77 !important; }
.sch-glass-page.sch-light .sch-d-pill--teal { background:rgba(34,127,119,0.12) !important; color:#1b655f !important; }
.sch-glass-page.sch-light .sch-d-pill--navy { background:rgba(18,43,70,0.08) !important; color:#122B46 !important; border:1px solid rgba(18,43,70,0.12) !important; }

/* Links */
.sch-glass-page.sch-light .sch-d-link       { color:#5b6b7d !important; }
.sch-glass-page.sch-light .sch-d-link:hover { color:#122B46 !important; }
.sch-glass-page.sch-light .sch-d-link--teal { color:#227F77 !important; }
.sch-glass-page.sch-light .sch-d-link--teal:hover { color:#1b655f !important; }

/* Chips / muted / empty */
.sch-glass-page.sch-light .sch-d-mem-chip { background:rgba(34,127,119,0.12) !important; border-color:rgba(34,127,119,0.3) !important; color:#1b655f !important; }
.sch-glass-page.sch-light .sch-d-muted { color:#90a0b0 !important; }
.sch-glass-page.sch-light .sch-d-empty-state { color:#5b6b7d !important; }

/* Old (now-unused) hero — neutralise its navy fill defensively */
.sch-glass-page.sch-light .sch-d-hero { background: transparent !important; }

/* === Guaranteed light dashboard === */
.sch-glass-page.sch-light .sch-dashboard,
.sch-glass-page.sch-light .sch-dashboard * {
  background-color: transparent !important;
  background-image: none !important;
  color: #122B46 !important;
  border-color: transparent !important;
  box-shadow: none !important;
}
.sch-glass-page.sch-light .sch-dashboard .lg-card,
.sch-glass-page.sch-light .sch-dashboard .lg-stat,
.sch-glass-page.sch-light .sch-dashboard .sch-d-infocard,
.sch-glass-page.sch-light .sch-dashboard .sch-d-section {
  background-color: rgba(255,255,255,.78) !important;
  border: 1px solid rgba(18,43,70,.10) !important;
  box-shadow: 0 1px 2px rgba(18,43,70,.04), 0 8px 30px rgba(18,43,70,.07) !important;
}
.sch-glass-page.sch-light .sch-dashboard .lg-stat-icon,
.sch-glass-page.sch-light .sch-dashboard .sch-d-stat-icon,
.sch-glass-page.sch-light .sch-dashboard .sch-d-fa-header {
  background-color: rgba(34,127,119,.10) !important;
}
.sch-glass-page.sch-light .sch-dashboard .lg-stat-val,
.sch-glass-page.sch-light .sch-dashboard .lg-stat-val-accent {
  color: #227F77 !important;
  -webkit-text-fill-color: #227F77 !important;
}
.sch-glass-page.sch-light .sch-dashboard .sch-d-course-pct,
.sch-glass-page.sch-light .sch-dashboard .sch-d-link--teal,
.sch-glass-page.sch-light .sch-dashboard a { color: #227F77 !important; }
.sch-glass-page.sch-light .sch-dashboard .lg-stat-label,
.sch-glass-page.sch-light .sch-dashboard .sch-d-section-title,
.sch-glass-page.sch-light .sch-dashboard .sch-d-course-meta,
.sch-glass-page.sch-light .sch-dashboard .lg-muted { color: #90a0b0 !important; }
.sch-glass-page.sch-light .sch-dashboard .sch-d-progress { background-color: rgba(18,43,70,.08) !important; }
.sch-glass-page.sch-light .sch-dashboard .sch-d-progress > * { background-color: #227F77 !important; }

/* (Removed per-page .lg-hero card dup — shared sch-feedback.css defines the light .lg-hero.) */

/* FA Space card — plain like the other sidebar cards (no teal header bar, no box behind the name) */
.sch-glass-page.sch-light .sch-dashboard .sch-d-fa-header{ background:transparent !important; border:0 !important; padding:0 0 8px 0 !important; }
.sch-glass-page.sch-light .sch-dashboard .sch-d-fa-name,
.sch-glass-page.sch-light .sch-dashboard .sch-d-fa-header span{ background:transparent !important; color:#122B46 !important; }

/* ════════════════════════════════════════════════════════════════════════
   MY DASHBOARD v2 — design contract docs/mockups/my-dashboard-v1.html (+v1.1).
   Fresh .schd2- namespace; the old dashboard markup is gone. Tokens from the
   shared --l-* system where available.
   ════════════════════════════════════════════════════════════════════════ */

.schd2 .schd2-strip{background:#122B46;border-radius:14px;box-shadow:0 1px 2px rgba(18,43,70,.04),0 12px 32px -12px rgba(18,43,70,.16);
  margin-top:16px;display:flex;align-items:center;gap:14px;padding:14px 20px;flex-wrap:wrap}
.schd2 .schd2-strip-tag{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.schd2 .schd2-strip-name{font-size:16px;font-weight:700;color:#fff}
.schd2 .schd2-strip-links{margin-left:auto;display:flex;gap:10px;flex-wrap:wrap}
.schd2 .schd2-fa-btn{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:9px;font-size:14px;font-weight:600;
  background:rgba(255,255,255,.10);color:#fff !important;text-decoration:none;border:1px solid rgba(255,255,255,.16)}
.schd2 .schd2-fa-btn:hover{background:rgba(255,255,255,.18)}
.schd2 .schd2-fa-btn--primary{background:#227F77;border-color:transparent}

.schd2 .schd2-grid{display:grid;grid-template-columns:1fr 340px;gap:16px;margin-top:16px}
@media(max-width:1000px){.schd2 .schd2-grid{grid-template-columns:1fr}}
.schd2 .schd2-col{display:flex;flex-direction:column;gap:16px;min-width:0}

.schd2 .schd2-card{background:#fff;border:1px solid rgba(18,43,70,.10);border-radius:14px;overflow:hidden;
  box-shadow:0 1px 2px rgba(18,43,70,.04),0 12px 32px -12px rgba(18,43,70,.16)}
.schd2 .schd2-card::before{content:"";display:block;height:3px;background:linear-gradient(90deg,#227F77,#5dcaa5 55%,#F1C40F)}
.schd2 .schd2-card-h{display:flex;align-items:center;gap:10px;padding:16px 20px 0}
.schd2 .schd2-card-h h3{margin:0;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--l-ink-40,rgba(18,43,70,.42))}
.schd2 .schd2-card-h .schd2-lnk{margin-left:auto}
.schd2 .schd2-card-b{padding:14px 20px 18px}
.schd2 .schd2-lnk{font-size:14px;font-weight:600;color:#227F77 !important;text-decoration:none}
.schd2 .schd2-lnk:hover{text-decoration:underline}

.schd2 .schd2-lic{border:1px solid rgba(18,43,70,.10);border-radius:10px;padding:14px 16px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.schd2 .schd2-lic + .schd2-lic{margin-top:10px}
.schd2 .schd2-lic-nm{font-size:19px;font-weight:700;color:var(--l-ink,#122B46)}
.schd2 .schd2-lic-meta{font-size:14px;color:var(--l-ink-60,rgba(18,43,70,.62));font-weight:600;font-variant-numeric:tabular-nums}
.schd2 .schd2-lic-renew{margin-left:auto;display:flex;align-items:center}
/* Mini-calendar nav (client-side month paging) + linked event-day cells. */
.schd2 .schd2-calnav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 8px}
.schd2 .schd2-calnav-label{font-size:14px;font-weight:700;color:var(--l-ink,#122B46)}
.schd2 .schd2-calnav-btn{width:26px;height:26px;border-radius:8px;border:1px solid rgba(18,43,70,.18);background:#fff;color:var(--l-ink,#122B46);font-size:15px;font-weight:700;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.schd2 .schd2-calnav-btn:hover:not([disabled]){border-color:#227F77;color:#227F77}
.schd2 .schd2-calnav-btn:focus-visible{outline:2px solid #227F77;outline-offset:1px}
.schd2 .schd2-calnav-btn[disabled]{opacity:.35;cursor:default}
.schd2 a.schd2-mini-d--link{text-decoration:none;cursor:pointer}
.schd2 a.schd2-mini-d--link:not(.schd2-mini-d--today){color:var(--l-ink,#122B46)}
.schd2 a.schd2-mini-d--link:hover,.schd2 a.schd2-mini-d--link:focus-visible{outline:2px solid #227F77;outline-offset:-1px;border-radius:6px}
@media (prefers-reduced-motion:no-preference){
  .schd2 .schd2-anim{animation:schd2fade .18s ease}
  @keyframes schd2fade{from{opacity:.35}to{opacity:1}}
}
/* Admin preview: SAMPLE badge above a card whose gate failed for this account. */
.schd2 .schd2-samplebadge{margin:0 0 6px;padding:5px 10px;border:1px solid rgba(241,196,15,.55);border-radius:8px;background:rgba(241,196,15,.14);color:#7a5b00;font-size:12px;font-weight:700}
/* Hero: the USER'S NAME is the page's real subject — dominant line (20px/700 navy);
   "My Dashboard" stays the structural H1 above it, visually quieter. The base
   hero rules (sch-feedback.css:2422-2424) carry !important at (0,2,0), so these
   overrides need (0,3,0) + !important to win the computed chain. */
.schd2 .schd2-pill{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:999px}
.schd2 .schd2-pill--ok{background:rgba(93,202,165,.16);border:1px solid rgba(34,127,119,.28);color:#12665F}
.schd2 .schd2-pill--muted{background:rgba(18,43,70,.06);border:1px solid rgba(18,43,70,.18);color:var(--l-ink-60,rgba(18,43,70,.62))}

.schd2 .schd2-cpd-row{display:flex;align-items:center;gap:14px;padding:10px 0;border-bottom:1px solid rgba(18,43,70,.06)}
.schd2 .schd2-cpd-row:last-of-type{border-bottom:0}
.schd2 .schd2-cpd-nm{font-size:15px;font-weight:700;min-width:170px;color:var(--l-ink,#122B46)}
.schd2 .schd2-bar{flex:1;height:8px;border-radius:99px;background:#EEF2F3;overflow:hidden}
.schd2 .schd2-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#227F77,#5dcaa5)}
.schd2 .schd2-cpd-val{font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;min-width:88px;text-align:right;color:var(--l-ink,#122B46)}
.schd2 .schd2-note{font-size:13px;color:var(--l-ink-40,rgba(18,43,70,.42));font-weight:600;margin:10px 0 0}

.schd2 .schd2-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid rgba(18,43,70,.06)}
.schd2 .schd2-row:last-child{border-bottom:0}
.schd2 .schd2-row-t{font-size:15px;font-weight:600;color:var(--l-ink,#122B46) !important;text-decoration:none}
a.schd2-row-t:hover{color:#227F77 !important}
.schd2 .schd2-row-sub{font-size:13px;color:var(--l-ink-60,rgba(18,43,70,.62));font-weight:600}
.schd2 .schd2-row-right{margin-left:auto;font-size:14px;font-weight:700;color:#227F77;font-variant-numeric:tabular-nums;white-space:nowrap}
.schd2 .schd2-date-chip{min-width:52px;text-align:center;border:1px solid rgba(18,43,70,.10);border-radius:8px;padding:5px 6px;flex:none}
.schd2 .schd2-date-chip b{display:block;font-size:17px;line-height:1;color:var(--l-ink,#122B46)}
.schd2 .schd2-date-chip span{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--l-ink-40,rgba(18,43,70,.42))}

.schd2 .schd2-hook{border:1px dashed rgba(34,127,119,.45);background:rgba(93,202,165,.06);border-radius:10px;padding:16px 18px}
.schd2 .schd2-hook h4{margin:0 0 6px;font-size:17px;font-weight:700;color:var(--l-ink,#122B46)}
.schd2 .schd2-hook p{margin:0 0 12px;font-size:14.5px;color:var(--l-ink-60,rgba(18,43,70,.62));font-weight:500}
.schd2 .schd2-hook ol{margin:0 0 14px;padding-left:20px;font-size:14px;font-weight:600;color:var(--l-ink,#122B46)}
.schd2 .schd2-hook ol li{margin:4px 0}
.schd2 .schd2-btn{display:inline-flex;align-items:center;font-size:13.5px;font-weight:600;border-radius:8px;padding:8px 14px;cursor:pointer;
  border:1px solid rgba(18,43,70,.25);background:#fff;color:var(--l-ink,#122B46) !important;text-decoration:none}
.schd2 .schd2-btn--primary{background:#227F77;border-color:transparent;color:#fff !important}
.schd2 .schd2-btn--primary:hover{background:#1c6e67}

.schd2 .schd2-side-item{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid rgba(18,43,70,.06);font-size:14.5px;font-weight:600;flex-wrap:wrap}
.schd2 .schd2-side-item:last-child{border-bottom:0}
.schd2 .schd2-side-n{margin-left:auto;font-weight:700;color:#227F77;white-space:nowrap}
.schd2 .schd2-empty{font-size:14px;color:var(--l-ink-40,rgba(18,43,70,.42));font-weight:600;padding:6px 0}

.schd2 .schd2-mini{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin:2px 0 12px}
.schd2 .schd2-mini-d{position:relative;text-align:center;font-size:12px;font-weight:600;color:var(--l-ink-60,rgba(18,43,70,.62));padding:4px 0;border-radius:6px}
.schd2 .schd2-mini-d--today{background:#122B46;color:#fff}
.schd2 .schd2-mini-d--dot::after{content:"";position:absolute;left:50%;transform:translateX(-50%);bottom:1px;width:4px;height:4px;border-radius:50%;background:#227F77}
.schd2 .schd2-mini-d--today.schd2-mini-d--dot::after{background:#5dcaa5}
.schd2 .schd2-mini-d--pad{visibility:hidden}

/* ── Progressive Coach zone — COMPACT STRIP. Scoped constraints on the
   third-party output (course-blocks promo / countdown / wpgb grid) — no edits
   to those plugins; the grid collapses behind a native <details>. Dark inks. */
.schd2-prog-row {
	display: flex;
	align-items: center;
	gap: 20px;
	max-height: 200px;
	overflow: hidden;
}
.schd2-prog-promo {
	flex: 0 0 auto;
	max-width: 280px;
	overflow: hidden;
}
.schd2-prog-promo img { max-width: 100%; height: auto; display: block; border-radius: 10px; }
.schd2-prog-mid { flex: 1 1 auto; min-width: 0; }
.schd2-prog-eyebrow {
	font-family: 'Rajdhani', system-ui, sans-serif;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #227F77;
}
/* Compact countdown: scale the third-party internals down (best-effort scoped
   descendant rules — numbers ~24px, tightened rhythm). */
.schd2-prog-count { flex: 0 0 auto; max-width: 300px; font-size: 13px; overflow: hidden; }
.schd2-prog-count h1, .schd2-prog-count h2, .schd2-prog-count h3, .schd2-prog-count h4 { font-size: 16px; margin: 0 0 4px; }
.schd2-prog-count b, .schd2-prog-count strong, .schd2-prog-count [class*="num"] { font-size: 24px; line-height: 1.1; }
.schd2-prog-count p, .schd2-prog-count div { margin: 2px 0; padding: 2px 0; }
.schd2-prog-count img { max-width: 100%; height: auto; }
/* Collapsed grid: quiet toggle; grid safety inside. */
/* Grid: EXPANDED in place (the <details> toggle is gone). */
.schd2-prog-gridwrap { margin-top: 12px; max-width: 100%; }
.schd2-prog-gridwrap img { max-width: 100%; height: auto; }
.schd2-prog-standalone { overflow-x: auto; }
.schd2-prog-standalone img { max-width: 100%; height: auto; }
@media (max-width: 700px) {
	.schd2-prog-row { flex-direction: column; align-items: stretch; max-height: none; }
	.schd2-prog-promo { max-width: 100%; }
	.schd2-prog-count { max-width: 100%; }
}

/* ══════════════════════════════════════════════════════════════════════════
   PROGRESSIVE COACH — SIDEBAR WIDGET (right column, under profile completion).
   The zone moved out of the full-width main column, so the strip layout no
   longer applies: one narrow stack, promo thumbnail contained on top, compact
   countdown beneath, grid behind the toggle. Third-party output is constrained
   in WIDTH/HEIGHT only — none of their internals are restyled.
   ══════════════════════════════════════════════════════════════════════════ */
/* PART C — ONE consistent gap between the pieces (countdown · grid · promo),
   instead of per-piece margins that drift apart. overflow:visible so the promo
   card's own border-radius and box-shadow are not clipped by our container. */
.schd2 .schd2-prog--card { display: flex; flex-direction: column; gap: 18px; overflow: visible; }
/* The promo is a rendered CARD from sch-course-blocks (eyebrow, heading,
   benefits, CTA) — NOT an image. Clamping it to a 140px cropped thumbnail, as
   the first sidebar pass did, mangled it. Width-constrain only. */
.schd2 .schd2-prog--card .schd2-prog-promo {
	max-width: 100%;
	width: 100%;
	margin: 0;
	overflow-wrap: anywhere;
}
.schd2 .schd2-prog--card .schd2-prog-promo img { display: block; width: 100%; height: auto; border-radius: 10px; }
/* PART D — PARITY. This line used to read `padding: 0`, which stripped the
   card's own 30px/32px padding: that is what made it look cramped and misframed
   next to the Progressive page. The plugin's box is now left alone; the ONLY
   property we override is max-width (460px → 100%, i.e. narrower) and its outer
   margin, whose job the card's gap has taken over. */
.schd2 .schd2-prog .schd2-prog-promo .schcb,
.schd2 .schd2-prog .schd2-prog-promo .schcb-promo {
	max-width: 100%;
	margin: 0;
	box-sizing: border-box;   /* 30px/32px padding stays INSIDE the 100% width */
}
/* Countdown, compact: the big numerals stay readable in a 340px column. */
.schd2 .schd2-prog--card .schd2-prog-count {
	max-width: 100%;
	font-size: 12.5px;
	padding: 0;
	overflow: hidden;
}
.schd2 .schd2-prog--card .schd2-prog-count h1,
.schd2 .schd2-prog--card .schd2-prog-count h2,
.schd2 .schd2-prog--card .schd2-prog-count h3,
.schd2 .schd2-prog--card .schd2-prog-count h4 { font-size: 14px; margin: 0 0 3px; }
.schd2 .schd2-prog--card .schd2-prog-count b,
.schd2 .schd2-prog--card .schd2-prog-count strong,
.schd2 .schd2-prog--card .schd2-prog-count [class*="num"] { font-size: 22px; line-height: 1.05; }
.schd2 .schd2-prog--card .schd2-prog-count p,
.schd2 .schd2-prog--card .schd2-prog-count div { margin: 1px 0; padding: 1px 0; }
/* The grid is far wider than a sidebar: it stays behind the toggle and scrolls
   inside its own box rather than pushing the column open. */
.schd2 .schd2-prog--card .schd2-prog-gridwrap { max-width: 100%; }
/* Our card's side padding + the promo's own 32px would leave ~236px of content
   in a 340px column. Per the rule "reduce ours, not theirs", the progressive
   card runs tighter than the other sidebar cards. */
.schd2 .schd2-prog-card .schd2-card-b { padding: 12px 12px 14px; }

/* ── COACH ID (top of My Licences) — quotable, selectable, not a copy button ── */
.schd2 .schd2-coachid {
	display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
	margin: 0 0 12px; padding: 0 0 12px;
	border-bottom: 1px solid rgba(18,43,70,.08);
}
.schd2 .schd2-coachid-l {
	font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
	color: var(--l-ink-40, rgba(18,43,70,.42));
}
.schd2 .schd2-coachid-v {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 15px; font-weight: 700; letter-spacing: .06em;
	color: var(--l-ink, #122B46);
	background: rgba(18,43,70,.05);
	border: 1px solid rgba(18,43,70,.14);
	border-radius: 8px; padding: 4px 10px;
	-webkit-user-select: all; user-select: all;   /* one click selects the whole ID */
}

/* ── MY LICENCES — the dashboard's primary identity element ── */
.schd2 .schd2-lic--primary { padding: 16px 18px; border-color: rgba(18,43,70,.16); }
.schd2 .schd2-lic--primary .schd2-lic-nm { font-size: 18px; font-weight: 700; color: var(--l-ink, #122B46); }
.schd2 .schd2-lic--primary .schd2-lic-meta { font-size: 14.5px; color: var(--l-ink, #122B46); opacity: .78; }
/* The renewal hint sat at whisper weight next to the date — it is the action. */
.schd2 .schd2-lic--primary .sch-selfsrv-hint { font-size: 13px; font-weight: 700; }

/* ── FEEDBACK ZONE ── */
.schd2 .schd2-fb-lead { margin: 0 0 6px; font-size: 14px; font-weight: 700; color: var(--l-ink, #122B46); }
.schd2 .schd2-row--reopened { background: rgba(241,196,15,.07); border-left: 3px solid #E0A800; padding-left: 10px; border-radius: 0 8px 8px 0; }
.schd2 .schd2-fb-reason { margin-top: 4px; font-size: 12.5px; font-weight: 600; color: #7A5B00; }
.schd2 .schd2-pill--warn { background: rgba(241,196,15,.20); border: 1px solid rgba(224,168,0,.45); color: #7A5B00; margin-left: 6px; }
.schd2 .schd2-fb-more { margin: 8px 0 0; font-size: 13px; font-weight: 700; color: #227F77; }
.schd2 .schd2-fb-done { margin: 0; font-size: 14px; font-weight: 600; color: var(--l-ink-60, rgba(18,43,70,.62)); }
.schd2 .schd2-fb-done-when { color: var(--l-ink-40, rgba(18,43,70,.42)); font-weight: 600; }

/* ── RENEWAL REQUIREMENTS ── */
.schd2 .schd2-ren-row { padding: 10px 0; border-bottom: 1px solid rgba(18,43,70,.06); }
.schd2 .schd2-ren-row:last-of-type { border-bottom: 0; }
.schd2 .schd2-ren-req { font-size: 15px; font-weight: 700; color: var(--l-ink, #122B46); }
.schd2 .schd2-ren-have { margin-top: 3px; font-size: 13.5px; font-weight: 600; color: var(--l-ink-60, rgba(18,43,70,.62)); font-variant-numeric: tabular-nums; }
.schd2 .schd2-ren-gap { color: #991B1B; font-weight: 700; }
.schd2 .schd2-ren-ok { color: #12665F; font-weight: 700; }
.schd2 .schd2-ren-note { margin-top: 5px; font-size: 12.5px; font-weight: 600; color: var(--l-ink-40, rgba(18,43,70,.42)); }
.schd2 .schd2-ren-lead { margin: 10px 0 8px; font-size: 14px; font-weight: 700; color: var(--l-ink, #122B46); }
.schd2 .schd2-ren-declare { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.schd2 .schd2-ren-sel {
	flex: 1 1 200px; min-width: 0;
	font-size: 14px; font-weight: 600; color: var(--l-ink, #122B46);
	background: #fff; border: 1px solid rgba(18,43,70,.22); border-radius: 8px; padding: 8px 10px;
}
.schd2 .schd2-ren-msg { margin: 8px 0 0; font-size: 13px; font-weight: 600; color: var(--l-ink-60, rgba(18,43,70,.62)); min-height: 1em; }
.schd2 .schd2-ren-msg.is-error { color: #991B1B; }

/* ── Registration-licence mapping (renewal card) ── */
.schd2 .schd2-ren-from {
	margin: 8px 0 2px;
	font-size: 13px; font-weight: 600;
	color: var(--l-ink-60, rgba(18,43,70,.62));
}
/* "Change" — a quiet native disclosure, so the picker costs no JS and survives
   the card body being replaced by the endpoint. */
.schd2 .schd2-ren-more { margin-top: 6px; }
.schd2 .schd2-ren-more summary {
	cursor: pointer; list-style: none;
	display: inline-block;
	font-size: 13px; font-weight: 700; color: #227F77;
}
.schd2 .schd2-ren-more summary::-webkit-details-marker { display: none; }
.schd2 .schd2-ren-more summary:hover { text-decoration: underline; }
.schd2 .schd2-ren-more[open] summary { margin-bottom: 8px; }

/* ── Progressive widget: ADMIN-ONLY diagnostic notice ──
   Deliberately loud and unlike the rest of the card language: it is a build
   problem, not content, and only administrators ever see it. */
.schd2 .schd2-prog-warn {
	margin-top: 10px; padding: 9px 11px;
	border: 1px dashed rgba(153,27,27,.45); border-radius: 8px;
	background: rgba(153,27,27,.05);
	font-size: 12px; line-height: 1.45; color: #7A1F1F;
}
.schd2 .schd2-prog-warn b { display: block; margin-bottom: 4px; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; }
.schd2 .schd2-prog-warn-l { font-weight: 700; }
.schd2 .schd2-prog-warn-d { margin-top: 3px; font-weight: 600; opacity: .85; word-break: break-word; }
.schd2 .schd2-prog-warn-d code { font-family: ui-monospace, Menlo, Consolas, monospace; background: rgba(153,27,27,.10); padding: 1px 5px; border-radius: 4px; }

/* ══════════════════════════════════════════════════════════════════════════
   PROGRESSIVE WIDGET — LAYOUT, ORDER AND SIZING.

   EVERY rule below is scoped under .schd2-prog (the widget container). The same
   shortcodes rendered on the Progressive page, or anywhere else on the site,
   never match these selectors and keep their own styling untouched.

   The source plugins are NOT modified. Where the countdown exposes CSS custom
   properties we simply redefine them on our container and let its own rules
   consume the new values — no specificity fight, no !important.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── GRID CONTAINER ──
   Width only. The grid's own sizing is fixed at the SETTINGS level (see
   progressive_grid_html()); nothing here tries to out-specify its JavaScript. */
.schd2 .schd2-prog .schd2-prog-gridwrap {
	width: 100%;
	max-width: 100%;
	margin: 0;                 /* rhythm comes from the card gap, not here */
	overflow: visible;
	max-height: none;
}
/* The width !importants that used to live here are GONE. They were added blind
   and never worked: WP Grid Builder lays out with JavaScript (layout.js writes
   inline width/transform per .wpgb-card), and the column COUNT comes from the
   VIEWPORT, not this container — so no stylesheet could win, and forcing widths
   onto absolutely-positioned cards risks overlapping them. The real fix is the
   wp_grid_builder/grid/settings filter in progressive_grid_html().
   What remains is only what is safe and additive. */
.schd2 .schd2-prog .schd2-prog-gridwrap { box-sizing: border-box; }
.schd2 .schd2-prog .schd2-prog-gridwrap img { height: auto; max-width: 100%; }

/* PROMO WRAPPER — no padding of its own: the 18px rhythm comes from the card's
   gap (PART C) and the inner breathing room from the plugin's own padding.
   Competing paddings were what squeezed it. overflow:visible so the card's
   border, radius and shadow survive. Applies to BOTH variants — the member
   two-button card and the sales benefits+CTA card share this outer box. */
.schd2 .schd2-prog .schd2-prog-promo {
	padding: 0;
	overflow: visible;
	width: 100%;
	max-width: 100%;
}

/* ── STEP 4: COUNTDOWN COMPACT ──
   Sizes come from the source's own custom properties (--sch-digit-size 48px,
   --sch-unit-size 11px, --sch-title-size 20px, --sch-date-size 14px): we
   redefine them on our container, so the plugin's unchanged rules produce the
   compact values. Structure that is NOT a variable (wrap, gaps, min-width,
   padding) is overridden by scoped selectors at (0,4,0) against the source's
   (0,1,0) — comfortably ahead without !important. */
.schd2 .schd2-prog .schd2-prog-count {
	--sch-digit-size: 24px;
	--sch-unit-size: 9px;
	--sch-title-size: 13px;
	--sch-date-size: 11px;
	--sch-btn-size: 13px;
	width: 100%;
	max-width: 100%;
	font-size: 12.5px;
}
.schd2 .schd2-prog .schd2-prog-count .sch-countdown-wrap { max-width: 100%; margin: 0; }
.schd2 .schd2-prog .schd2-prog-count .sch-countdown-inner { padding: 10px 10px; max-width: 100%; border-radius: 10px; }
.schd2 .schd2-prog .schd2-prog-count .sch-countdown-title {
	margin: 0 0 4px;
	line-height: 1.2;
	display: -webkit-box;
	-webkit-line-clamp: 2;             /* event title capped at two lines */
	line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
/* All four units on ONE row. display/justify-content are set INLINE by the
   source markup and are already what we want; flex-wrap and gap are not, so
   these apply cleanly. */
.schd2 .schd2-prog .schd2-prog-count .sch-countdown-digits {
	flex-wrap: nowrap;
	gap: 2px;
	margin: 0 0 4px;
	align-items: flex-end;
}
.schd2 .schd2-prog .schd2-prog-count .sch-segment { min-width: 0; flex: 1 1 0; }
.schd2 .schd2-prog .schd2-prog-count .sch-digit { font-size: 24px; line-height: 1; }
.schd2 .schd2-prog .schd2-prog-count .sch-unit { font-size: 9px; letter-spacing: .06em; margin-top: 1px; }
/* Separators are what force the wrap in a 340px column — hidden, not shrunk. */
.schd2 .schd2-prog .schd2-prog-count .sch-colon { display: none; }
.schd2 .schd2-prog .schd2-prog-count .sch-countdown-date { font-size: 11px; margin: 0 0 4px; line-height: 1.3; }
.schd2 .schd2-prog .schd2-prog-count .sch-live-indicator { margin-bottom: 4px; gap: 6px; }
.schd2 .schd2-prog .schd2-prog-count .sch-live-text { font-size: 12px; }
.schd2 .schd2-prog .schd2-prog-count .sch-pulse-dot { width: 8px; height: 8px; }
.schd2 .schd2-prog .schd2-prog-count .sch-join-btn { padding: 6px 14px; margin-top: 0; border-radius: 8px; }

/* ASSOCIATION BAR — the coach variant of the management strip. Same shell and
   same position, so a coach and a manager see one bar in one place, never two
   stacked. The background is the ENTITY's colour (inline, from
   SCH_Entity_Branding) rather than the platform navy: on this bar the
   association is the subject, not the platform. */
.schd2-strip--assoc { background: #122B46; }
/* The association button is the PLATFORM YELLOW with navy ink, on both bars.
   It was a translucent ghost and read as secondary — but for a coach it is the
   primary destination, so it must lead. NOT the entity's own colour: the strip is
   dark navy and many association primaries (SFZ's blue among them) would vanish
   against it, whereas the platform yellow is legible on navy by construction and
   is the one accent the platform already owns. */
/* OUTLINE by default, FILLED on hover: it must read as available without
   competing with the strip's own management buttons for attention. */
/* WHY THE DESCENDANT SELECTOR: the base is `.schd2 .schd2-fa-btn` (0,2,0) and
   `.schd2-fa-btn--space` alone is (0,1,0), so the base won on background and
   colour however late this rule appeared. Matching its shape is what makes the
   modifier apply — !important would have hidden the real problem. */
.schd2 .schd2-fa-btn--space { background: transparent; border: 1px solid #F1C40F; color: #F1C40F; }
.schd2 .schd2-fa-btn--space:hover { background: #F1C40F; border-color: #F1C40F; color: #122B46; }

/* ADMINISTRATOR X-RAY BAND — sits above a widget the viewer would not see.
   Deliberately unlike the dashboard's own cards (dashed amber, uppercase lead)
   so an administrator can never mistake an x-rayed widget for their own view.
   Rendered for manage_options only; ?schd_preview=0 turns the surface off. */
.schd2 .schd2-xray-band{display:flex;flex-direction:column;gap:2px;margin:0 0 -6px;padding:8px 12px 14px;
	border:1px dashed rgba(241,196,15,.85);border-bottom:0;border-radius:12px 12px 0 0;
	background:rgba(241,196,15,.07)}
.schd2 .schd2-xray-band__t{font-size:10.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;
	color:#7a5c00;line-height:1.35}
.schd2 .schd2-xray-band__w{font-size:12.5px;color:rgba(18,43,70,.72);line-height:1.4}

/* X-RAY TOGGLE — administrators only, quiet by design: a text link in the hero,
   not a button competing with the dashboard's own controls. */
.schd2 .schd2-xray-toggle{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:8px;
	font-size:12px;font-weight:600;text-decoration:none;color:rgba(18,43,70,.55);
	border:1px solid rgba(18,43,70,.14);background:#fff;white-space:nowrap}
.schd2 .schd2-xray-toggle:hover{color:#122B46;border-color:rgba(18,43,70,.3)}
.schd2 .schd2-xray-toggle.is-on{color:#7a5c00;border-color:rgba(241,196,15,.8);background:rgba(241,196,15,.12)}
.schd2 .schd2-xray-toggle i{font-size:14px}

/* INSTRUCTOR EARNINGS — three figures in a row, then the honesty lines and the
   link. No chart: the instructor dashboard owns the detail. */
.schd2 .schd2-earn{display:flex;gap:22px;flex-wrap:wrap;margin:10px 0 8px}
.schd2 .schd2-earn__f{display:flex;flex-direction:column;min-width:104px}
.schd2 .schd2-earn__f b{font-family:'Rajdhani',sans-serif;font-size:26px;font-weight:700;color:#122B46;line-height:1}
.schd2 .schd2-earn__f i{font-style:normal;font-size:11.5px;color:rgba(18,43,70,.6);margin-top:3px}
.schd2 .schd2-earn-note{margin:0;font-size:12px;color:rgba(18,43,70,.6)}
/* The freshness caveat is a plain muted line, not a badge — it qualifies a
   figure, it does not warn about one. */
.schd2 .schd2-earn-fresh{margin:6px 0 0;font-size:11.5px;line-height:1.45;color:rgba(18,43,70,.55)}
.schd2 .schd2-earn-btn{display:inline-flex;align-items:center;margin-top:12px;padding:9px 16px;border-radius:9px;
	font-size:13.5px;font-weight:600;text-decoration:none;background:#227F77;color:#fff}
.schd2 .schd2-earn-btn:hover{background:#1a6b63;color:#fff}

/* ═══════════════════════════════════════════════════════════════════════════
   FEEDBACK CARD — THE TUTOR'S HALF

   The same card carries the viewer as a respondent and the viewer as a tutor.
   When both are present the second needs a visible seam, or the figure strip
   reads as belonging to the list of forms above it. A hairline and a little
   air: a section, not a second card.
   ═══════════════════════════════════════════════════════════════════════════ */

.schd2 .schd2-fb-lead--tutor {
	margin-top: 14px;
	padding-top: 12px;
	border-top: 1px solid var(--l-line-soft, rgba(18, 43, 70, 0.08));
}

/* First thing in the card — a pure tutor has no respondent half above it, so
   there is nothing to be separated from. */
.schd2 .schd2-fb-lead--tutor:first-child {
	margin-top: 0;
	padding-top: 0;
	border-top: 0;
}

/* ═══════════════════════════════════════════════════════════════════════════
   MY COURSES — a list row with the course's artwork

   THE ROW'S SCALE IS .schd2-row's, unchanged: display:flex, 12px gap, 11px
   vertical padding, the 15px/600 title and the 14px/700 tabular percentage.
   The only new decision is the thumbnail, and it is sized so those numbers
   still govern — 64x36 against a 20px line of text, so the thumbnail is the
   tallest thing in the row and the height follows from padding already there.

   NO min-height. One was set to 58px and produced 81px rows: this stylesheet
   does not put these elements on border-box, so it applied to the CONTENT box
   and the 22px of padding and the 1px rule were added on top. Measured, not
   assumed — and unnecessary, since the thumbnail already sets the floor.

   16:9 because that is what course artwork is; object-fit:cover so a poster or
   a square crop fills the slot without distorting. flex:none, or a long title
   squeezes the image.
   ═══════════════════════════════════════════════════════════════════════════ */

.schd2 .schd2-row-thumb {
	flex: none;
	display: block;
	width: 64px;
	height: 36px;
	border-radius: 8px;
	overflow: hidden;
	background: rgba(18, 43, 70, 0.06);
	line-height: 0;
}

.schd2 .schd2-row-img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* THE TITLE TAKES THE SLACK, so the percentage stays hard right — and it is
   held to ONE line, so every row is the same height whatever a course is
   called.

   -webkit-line-clamp was tried first and does not work here: the title is a
   flex item, and a flex item is blockified — its computed display came back
   `flow-root`, not `-webkit-box`, so the clamp never applied. Measured. A
   single-line ellipsis needs no blockification, is what the feedback form's
   recipient picker already does, and the full name rides on the link's title
   attribute. */
.schd2 .schd2-row--course .schd2-row-t {
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* ═══════════════════════════════════════════════════════════════════════════
   THE PROGRESSIVE COACH TILE — one square image, and nothing over it

   It replaced a WP Grid Builder grid, so the wrapper that used to constrain
   that grid (.schd2-prog-gridwrap, with its own overflow scrolling) still holds
   it; the tile simply fills the width it is given. Square by aspect-ratio
   rather than a fixed height, so it stays square at every card width without a
   second breakpoint.

   THE RADIUS IS THE CARD'S. .schd2-card is 14px; a tile sitting inside one at
   8px would read as a different family of object.
   ═══════════════════════════════════════════════════════════════════════════ */

.schd2 .schd2-tile {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	border-radius: 14px;
	overflow: hidden;
	line-height: 0;
	background: rgba(18, 43, 70, 0.06);
}

.schd2 .schd2-tile-img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* aspect-ratio is widely supported, but a browser without it would give the
   anchor a zero height and the tile would vanish. A min-height floor keeps it
   visible there; where aspect-ratio works this never applies. */
@supports not (aspect-ratio: 1 / 1) {
	.schd2 .schd2-tile { min-height: 220px; }
}
