/* Academy (spec §2 / Phase 4f). Valid tokens.css scale only — no sp-5/sp-7. */

/* ---- Track listing ---- */
.t101-acad__intro {
	max-width: 62ch;
	color: var(--t101-ink-muted);
	margin-bottom: var(--t101-sp-8);
}
.t101-acad__empty { color: var(--t101-ink-muted); }

.t101-mod {
	display: flex;
	gap: var(--t101-sp-6);
	align-items: flex-start;
	background: var(--t101-paper-raised);
	border: 1px solid var(--t101-line);
	border-radius: var(--t101-radius-sm);
	box-shadow: var(--t101-shadow-sm);
	padding: var(--t101-sp-6);
	margin-bottom: var(--t101-sp-4);
}
.t101-mod.is-done { border-left: 3px solid var(--t101-brass); }

.t101-mod__num {
	font-family: var(--t101-font-display);
	font-size: var(--t101-fs-3xl);
	font-weight: 900;
	line-height: 1;
	color: var(--t101-brass);
	min-width: 2.2em;
}

.t101-mod__body { flex: 1 1 auto; min-width: 0; }
.t101-mod__title { margin: 0 0 var(--t101-sp-2); font-size: var(--t101-fs-lg); }
.t101-mod__title a { color: var(--t101-evergreen); text-decoration: none; }
.t101-mod__title a:hover { color: var(--t101-clay); }

.t101-mod__obj {
	margin: 0;
	padding-left: 1.2em;
	color: var(--t101-ink-muted);
	font-size: var(--t101-fs-sm);
}
.t101-mod__obj li { margin-bottom: var(--t101-sp-1); }

.t101-mod__side {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: var(--t101-sp-2);
	white-space: nowrap;
}
.t101-mod__badge {
	font-family: var(--t101-font-mono);
	font-size: var(--t101-fs-xs);
	color: var(--t101-brass);
}

.t101-mod__complete {
	font-family: var(--t101-font-mono);
	font-size: var(--t101-fs-sm);
	color: var(--t101-evergreen);
	text-decoration: none;
	border: 1px solid var(--t101-line);
	border-radius: var(--t101-radius-pill);
	padding: var(--t101-sp-1) var(--t101-sp-3);
}
.t101-mod__complete:hover { background: var(--t101-brass-soft); }
.t101-mod__complete.is-on { color: var(--t101-brass); border-color: var(--t101-brass); }
.t101-mod__complete.is-locked { color: var(--t101-ink-muted); }

/* ---- Module single ---- */
.t101-mod-single__head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--t101-sp-4);
	border-bottom: 1px solid var(--t101-line);
	padding-bottom: var(--t101-sp-4);
	margin-bottom: var(--t101-sp-8);
}
.t101-mod-single__track {
	font-family: var(--t101-font-mono);
	font-size: var(--t101-fs-sm);
	color: var(--t101-brass);
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.t101-mod-single__sec { margin-bottom: var(--t101-sp-8); }
.t101-mod-single__sec h2 {
	font-family: var(--t101-font-display);
	color: var(--t101-evergreen);
	font-size: var(--t101-fs-xl);
	margin-bottom: var(--t101-sp-3);
}
.t101-mod-single__sec h3 {
	font-size: var(--t101-fs-md);
	color: var(--t101-evergreen);
	margin: var(--t101-sp-6) 0 var(--t101-sp-2);
}
.t101-mod-single__obj { padding-left: 1.2em; margin-top: var(--t101-sp-3); }
.t101-mod-single__obj li { margin-bottom: var(--t101-sp-2); }

.t101-mod-single__stub {
	color: var(--t101-ink-muted);
	font-style: italic;
	background: var(--t101-brass-soft);
	border-radius: var(--t101-radius-sm);
	padding: var(--t101-sp-4);
}

.t101-mod-single__rel { margin-bottom: var(--t101-sp-6); }
.t101-mod-single__rel h2 {
	font-family: var(--t101-font-display);
	color: var(--t101-evergreen);
	font-size: var(--t101-fs-lg);
	margin-bottom: var(--t101-sp-2);
}
.t101-mod-single__rel ul { margin: 0; padding-left: 1.2em; }
.t101-mod-single__rel li { margin-bottom: var(--t101-sp-1); }

.t101-mod-single__cta {
	border-top: 1px solid var(--t101-line);
	padding-top: var(--t101-sp-6);
	margin-bottom: var(--t101-sp-12);
}
.t101-mod-single__prep {
	display: inline-block;
	font-family: var(--t101-font-mono);
	background: var(--t101-evergreen);
	color: var(--t101-paper);
	text-decoration: none;
	border-radius: var(--t101-radius-sm);
	padding: var(--t101-sp-3) var(--t101-sp-6);
}
.t101-mod-single__prep:hover { background: var(--t101-clay); color: var(--t101-paper); }

/* ---- Mobile ---- */
@media (max-width: 640px) {
	.t101-mod { flex-wrap: wrap; }
	.t101-mod__side { flex-direction: row; align-items: center; width: 100%; justify-content: flex-start; }
	.t101-mod-single__head { flex-wrap: wrap; }
}
