:root {
	/* RNMindsetPrep brand (nursing blue + gold accent) */
	--nip-navy: #1a3a6e;
	--nip-gold: #f5c518;
	--nip-blue: #2d6bb3;
	--nip-cream: #f8f6f0;
	--nip-bg: #f4f7fb;
	--nip-card: #ffffff;
	--nip-primary: var(--nip-navy);
	--nip-accent: var(--nip-blue);
	--nip-highlight: var(--nip-gold);
	--nip-text: #0f172a;
	--nip-muted: #5b6475;
	--nip-border: #e2e8f0;
	--nip-radius: 16px;
	--nip-shadow: 0 10px 30px rgba(26, 45, 90, 0.1);
	--nip-touch: 44px;
	--nip-safe-bottom: env(safe-area-inset-bottom, 0px);
}

.nip-lms-app {
	font-family: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	color: var(--nip-text);
	background: var(--nip-bg);
	padding: 1rem 1rem calc(5.5rem + var(--nip-safe-bottom));
	border-radius: var(--nip-radius);
	max-width: min(95vw, 1680px);
	margin: 0 auto;
	-webkit-text-size-adjust: 100%;
}

.nip-lms-app__title {
	margin: 0 0 0.35rem;
	font-size: clamp(1.35rem, 2.4vw, 1.75rem);
}

.nip-lms-app__subtitle {
	margin: 0 0 1rem;
	color: var(--nip-muted);
}

.nip-lms-card {
	background: var(--nip-card);
	border-radius: var(--nip-radius);
	padding: 1.25rem;
	box-shadow: var(--nip-shadow);
	border: 1px solid var(--nip-border);
	margin-bottom: 1rem;
}

.nip-lms-card--ghost {
	background: linear-gradient(135deg, rgba(11, 111, 164, 0.04), rgba(18, 164, 182, 0.06));
}

.nip-lms-card--locked {
	border-color: rgba(11, 111, 164, 0.35);
}

.nip-lms-grid {
	display: grid;
	gap: 1rem;
}

@media (min-width: 768px) {
	.nip-lms-grid--2 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.nip-lms-grid--3 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.nip-lms-button,
.nip-lms-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	min-height: var(--nip-touch);
	padding: 0.65rem 1.1rem;
	border-radius: 999px;
	border: none;
	cursor: pointer;
	background: linear-gradient(135deg, var(--nip-navy), var(--nip-blue));
	color: #fff;
	font-weight: 600;
	text-decoration: none;
	box-shadow: 0 4px 14px rgba(26, 45, 90, 0.2);
	touch-action: manipulation;
}

.nip-lms-button--ghost,
.nip-lms-btn--ghost {
	background: #fff;
	color: var(--nip-navy);
	border: 1px solid var(--nip-border);
	box-shadow: none;
}

.nip-lms-button--ghost:hover,
.nip-lms-btn--ghost:hover {
	background: var(--nip-bg);
}

.nip-lms-button--primary,
.nip-lms-btn--primary {
	background: linear-gradient(135deg, var(--nip-navy), var(--nip-blue));
	color: #fff;
}

.nip-lms-app__header {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-start;
	gap: 0.75rem 1rem;
	margin-bottom: 1rem;
	border-left: 4px solid var(--nip-gold);
	padding-left: 0.75rem;
	min-width: 0;
}

.nip-lms-breadcrumbs {
	font-size: 0.85rem;
	color: var(--nip-muted);
	margin-bottom: 0.75rem;
	line-height: 1.45;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.nip-lms-breadcrumbs__sep {
	margin: 0 0.35rem;
}

.nip-lms-video-placeholder {
	background: linear-gradient(135deg, rgba(26, 45, 90, 0.06), rgba(61, 126, 191, 0.08));
	border: 1px dashed var(--nip-border);
	border-radius: 14px;
	padding: 2rem;
	text-align: center;
	color: var(--nip-muted);
}

.nip-lms-related-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.nip-lms-related-list a {
	color: var(--nip-blue);
	font-weight: 600;
	text-decoration: none;
}

.nip-lms-rationale-panel {
	margin-top: 1rem;
	padding: 1rem;
	border-radius: 14px;
	border-left: 4px solid var(--nip-gold);
	background: var(--nip-cream);
}

.nip-lms-rationale-panel.is-correct {
	border-left-color: #16a34a;
}

.nip-lms-rationale-panel.is-incorrect {
	border-left-color: #dc2626;
}

.nip-lms-rationale-panel h4 {
	margin: 0 0 0.5rem;
	color: var(--nip-navy);
}

.nip-lms-rationale-panel .nip-rationale-option {
	margin: 0.5rem 0 0;
	font-size: 0.92rem;
}

.nip-lms-answer-reveal {
	margin-top: 0.9rem;
}

.nip-lms-answer-reveal [data-answer-details] > .nip-lms-button {
	margin-top: 0.65rem;
}

.nip-lms-ai-explain {
	margin-top: 0.75rem;
	padding: 0.85rem 1rem;
	border-radius: 10px;
	background: #fff;
	border: 1px solid rgba(11, 111, 164, 0.15);
	font-size: 0.95rem;
	line-height: 1.55;
}

.nip-lms-ai-explain h4 {
	margin: 0 0 0.5rem;
	font-size: 0.95rem;
	color: var(--nip-navy);
}

.nip-lms-button--ghost {
	background: transparent;
	color: var(--nip-primary);
	border: 1px solid rgba(11, 111, 164, 0.35);
}

.nip-lms-pill {
	display: inline-flex;
	align-items: center;
	padding: 0.2rem 0.65rem;
	border-radius: 999px;
	background: rgba(11, 111, 164, 0.08);
	color: var(--nip-primary);
	font-size: 0.78rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.nip-lms-pill.is-active {
	background: rgba(18, 164, 182, 0.2);
	color: var(--nip-accent);
}

.nip-lms-list {
	margin: 0;
	padding-left: 1.1rem;
	color: var(--nip-muted);
}

.nip-lms-stats {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.75rem;
}

.nip-lms-stats .label {
	display: block;
	font-size: 0.75rem;
	color: var(--nip-muted);
}

.nip-lms-progress {
	height: 10px;
	background: var(--nip-border);
	border-radius: 999px;
	overflow: hidden;
	margin-top: 0.75rem;
}

.nip-lms-progress__bar {
	height: 100%;
	background: linear-gradient(90deg, var(--nip-primary), var(--nip-accent));
	transition: width 0.3s ease;
}

.nip-lms-kpi {
	font-size: 1.75rem;
	font-weight: 700;
	margin: 0.25rem 0 0;
	color: var(--nip-primary);
}

.nip-lms-readiness-ring {
	width: 96px;
	height: 96px;
	border-radius: 50%;
	background: conic-gradient(var(--nip-accent) calc(var(--pct, 10) * 1%), rgba(226, 232, 240, 0.9) 0);
	display: grid;
	place-items: center;
	box-shadow: var(--nip-shadow);
}

.nip-lms-readiness-ring__value {
	width: 74px;
	height: 74px;
	border-radius: 50%;
	background: #fff;
	display: grid;
	place-items: center;
	font-weight: 700;
	color: var(--nip-primary);
}

.nip-lms-table-wrap {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.nip-lms-table {
	width: 100%;
	min-width: 28rem;
	border-collapse: collapse;
	font-size: 0.9375rem;
	line-height: 1.5;
}

.nip-lms-table th,
.nip-lms-table td {
	padding: 0.65rem 0.75rem;
	border-bottom: 1px solid var(--nip-border);
	text-align: left;
	white-space: normal;
	word-break: break-word;
	vertical-align: top;
}

.nip-lms-bottom-nav {
	position: sticky;
	bottom: 0;
	left: 0;
	right: 0;
	margin: 1rem -1.25rem -1.25rem;
	padding: 0.65rem 0.5rem calc(env(safe-area-inset-bottom) + 0.65rem);
	background: rgba(255, 255, 255, 0.92);
	backdrop-filter: blur(10px);
	border-top: 1px solid var(--nip-border);
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.35rem;
	z-index: 20;
}

.nip-lms-bottom-nav a {
	text-align: center;
	font-size: 0.78rem;
	color: var(--nip-muted);
	text-decoration: none;
	padding: 0.35rem 0.15rem;
	border-radius: 12px;
}

.nip-lms-bottom-nav a.is-active {
	color: var(--nip-primary);
	background: rgba(11, 111, 164, 0.08);
	font-weight: 600;
}

.nip-lms-quiz__option {
	width: 100%;
	text-align: left;
	padding: 0.85rem 1rem;
	border-radius: 14px;
	border: 1px solid var(--nip-border);
	background: #fff;
	margin-bottom: 0.55rem;
	cursor: pointer;
	font-size: 1rem;
}

.nip-lms-quiz__option.is-selected {
	border-color: var(--nip-primary);
	box-shadow: 0 8px 20px rgba(11, 111, 164, 0.12);
}

.nip-lms-quiz__header {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
}

.nip-lms-quiz__toolbar {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	flex-wrap: wrap;
}

.nip-lms-quiz__toolbar [data-action="flag"].is-active {
	border-color: #d97706;
	background: rgba(217, 119, 6, 0.12);
	color: #92400e;
}

.nip-lms-quiz__session-nav {
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid var(--nip-border, #e2e8f0);
}

.nip-lms-quiz__session-nav-controls {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
}

.nip-lms-quiz__session-hint {
	margin: 0.65rem 0 0;
}

.nip-lms-quiz-navigator {
	margin-top: 1rem;
	padding: 1rem;
	border: 1px solid var(--nip-border, #e2e8f0);
	border-radius: var(--nip-radius-sm, 10px);
	background: var(--nip-card, #fff);
}

.nip-lms-quiz-navigator__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin-bottom: 0.5rem;
}

.nip-lms-quiz-navigator__legend {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1rem;
	margin: 0.5rem 0 0.85rem;
	font-size: 0.82rem;
	color: var(--nip-muted, #64748b);
}

.nip-lms-quiz-navigator__legend span {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
}

.nip-lms-quiz-navigator__swatch {
	display: inline-block;
	width: 0.85rem;
	height: 0.85rem;
	border-radius: 4px;
	border: 1px solid var(--nip-border, #cbd5e1);
	background: #fff;
}

.nip-lms-quiz-navigator__swatch.is-current {
	background: var(--nip-blue, #3d7ebf);
	border-color: var(--nip-blue, #3d7ebf);
}

.nip-lms-quiz-navigator__swatch.is-answered {
	background: rgba(61, 126, 191, 0.2);
	border-color: rgba(61, 126, 191, 0.45);
}

.nip-lms-quiz-navigator__swatch.is-flagged {
	background: rgba(217, 119, 6, 0.25);
	border-color: #d97706;
}

.nip-lms-quiz-navigator__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(2.35rem, 1fr));
	gap: 0.4rem;
	max-width: 100%;
}

.nip-lms-quiz-navigator__cell {
	min-height: 2.35rem;
	padding: 0.25rem;
	border-radius: 8px;
	border: 1px solid var(--nip-border, #e2e8f0);
	background: #fff;
	font-weight: 600;
	font-size: 0.85rem;
	cursor: pointer;
}

.nip-lms-quiz-navigator__cell.is-current {
	border-color: var(--nip-blue, #3d7ebf);
	background: rgba(61, 126, 191, 0.18);
}

.nip-lms-quiz-navigator__cell.is-answered {
	border-color: rgba(61, 126, 191, 0.45);
	background: rgba(61, 126, 191, 0.1);
}

.nip-lms-quiz-navigator__cell.is-flagged {
	border-color: #d97706;
	box-shadow: inset 0 0 0 1px rgba(217, 119, 6, 0.35);
}

.nip-lms-quiz-navigator__cell.is-flagged.is-answered {
	background: linear-gradient(135deg, rgba(61, 126, 191, 0.12), rgba(217, 119, 6, 0.12));
}

.nip-lms-quiz__option.is-answered.is-selected {
	border-color: var(--nip-blue, #3d7ebf);
}

.nip-lms-button--ghost {
	background: transparent;
	border: 1px solid var(--nip-border);
	color: var(--nip-text);
}

.nip-lms-paused-list li {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	flex-wrap: wrap;
}

.nip-lms-ngn {
	display: grid;
	gap: 1rem;
	margin-top: 1rem;
}

.nip-lms-ngn--bowtie {
	grid-template-columns: 1fr auto 1fr;
	align-items: start;
	gap: 0.75rem 1rem;
}

@media (max-width: 720px) {
	.nip-lms-ngn--bowtie {
		grid-template-columns: 1fr;
	}
	.nip-lms-ngn__center {
		display: none;
	}
}

.nip-lms-ngn__center {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 4rem;
}

.nip-lms-ngn__tie {
	display: block;
	width: 2px;
	height: 100%;
	min-height: 3rem;
	background: linear-gradient(180deg, var(--nip-primary, #0b6fa4), var(--nip-navy, #1a2d5a));
	border-radius: 2px;
}

.nip-lms-ngn__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
}

.nip-lms-ngn-matrix-wrap {
	overflow-x: auto;
	margin: 0.75rem 0;
}

.nip-lms-ngn-matrix__legend {
	font-size: 0.88rem;
	color: var(--nip-muted, #64748b);
	margin: 0 0 0.5rem;
}

.nip-lms-ngn-matrix__select {
	width: 100%;
	max-width: 20rem;
}

.nip-lms-ngn-matrix th[scope='row'] {
	text-align: left;
	min-width: 10rem;
	font-weight: 600;
}

.nip-practice-format-hint,
.nip-practice-empty {
	font-size: 0.88rem;
	color: var(--nip-muted, #64748b);
	margin: 0.5rem 0 0;
}

.nip-practice-fill-inline {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem 0.5rem;
	line-height: 1.8;
}

.nip-practice-fill-inline__blank {
	min-width: 8rem;
	max-width: 14rem;
}

.nip-practice-fill__stem {
	margin: 0 0 0.5rem;
}

.nip-practice-reveal-list {
	margin: 0.5rem 0 0;
	padding-left: 1.25rem;
}

.nip-lms-ngn__col h4 {
	margin: 0 0 0.5rem;
	font-size: 0.95rem;
}

.nip-lms-ngn__chip {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	margin: 0.25rem 0.5rem 0.25rem 0;
	padding: 0.35rem 0.6rem;
	border-radius: 999px;
	border: 1px solid var(--nip-border);
	background: #fff;
	font-size: 0.9rem;
}

.nip-lms-ngn-matrix {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9rem;
}

.nip-lms-ngn-matrix th,
.nip-lms-ngn-matrix td {
	border: 1px solid var(--nip-border);
	padding: 0.4rem 0.5rem;
	text-align: center;
}

.nip-lms-ngn-case {
	padding: 0.75rem 1rem;
	margin-bottom: 1rem;
	border-radius: 12px;
	background: rgba(11, 111, 164, 0.06);
	border-left: 3px solid var(--nip-primary);
}

.nip-lms-ngn__instructions {
	margin: 0.5rem 0 0.75rem;
	color: var(--nip-muted);
	font-size: 0.92rem;
}

.nip-lms-ngn-drag-list {
	list-style: none;
	margin: 0.75rem 0 1rem;
	padding: 0;
	display: grid;
	gap: 0.5rem;
}

.nip-lms-ngn-drag-item {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	padding: 0.65rem 0.85rem;
	border: 1px solid var(--nip-border);
	border-radius: 12px;
	background: #fff;
	cursor: grab;
	min-height: var(--nip-touch);
}

.nip-lms-ngn-drag-item.is-dragging {
	opacity: 0.55;
}

.nip-lms-ngn-drag-item.is-drop-target {
	border-color: var(--nip-blue);
	box-shadow: 0 0 0 2px rgba(61, 126, 191, 0.2);
}

.nip-lms-ngn-drag-handle {
	color: var(--nip-muted);
	font-weight: 700;
	letter-spacing: -0.15em;
	user-select: none;
}

.nip-lms-ngn-drag-label {
	flex: 1;
	font-size: 0.95rem;
}

.nip-lms-ngn-drag-actions {
	display: flex;
	gap: 0.25rem;
}

.nip-lms-ngn-drag-actions .nip-lms-button {
	min-height: 2rem;
	padding: 0.2rem 0.55rem;
	width: auto;
}

.nip-lms-ngn-highlight-passage {
	line-height: 1.85;
	margin: 0.75rem 0 1rem;
	padding: 0.85rem 1rem;
	border-radius: 12px;
	background: rgba(26, 45, 90, 0.04);
	border: 1px solid var(--nip-border);
}

.nip-lms-ngn-highlight-seg {
	display: inline;
	margin: 0;
	padding: 0.1rem 0.15rem;
	border: 0;
	border-radius: 6px;
	background: transparent;
	color: inherit;
	font: inherit;
	line-height: inherit;
	cursor: pointer;
	text-align: left;
}

.nip-lms-ngn-highlight-seg:hover {
	background: rgba(61, 126, 191, 0.12);
}

.nip-lms-ngn-highlight-seg.is-selected {
	background: rgba(240, 180, 41, 0.35);
	box-shadow: inset 0 -2px 0 var(--nip-gold);
}

.nip-lms-ngn-highlight-seg:disabled {
	cursor: default;
	opacity: 0.85;
}

.nip-lms-ngn--hot-spot .nip-lms-ngn-hotspot-stage {
	position: relative;
	display: inline-block;
	max-width: 100%;
	margin: 0.75rem 0 1rem;
	border-radius: 12px;
	overflow: hidden;
	border: 1px solid var(--nip-border);
	background: #fff;
}

.nip-lms-ngn-hotspot-img {
	display: block;
	max-width: 100%;
	height: auto;
	vertical-align: middle;
}

.nip-lms-ngn-hotspot-overlay {
	position: absolute;
	inset: 0;
}

.nip-lms-ngn-hotspot-region {
	position: absolute;
	margin: 0;
	padding: 0;
	border: 2px solid transparent;
	border-radius: 6px;
	background: rgba(11, 111, 164, 0.08);
	cursor: pointer;
	transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.nip-lms-ngn-hotspot-region:hover {
	background: rgba(11, 111, 164, 0.18);
	border-color: rgba(11, 111, 164, 0.45);
}

.nip-lms-ngn-hotspot-region.is-selected {
	background: rgba(240, 180, 41, 0.35);
	border-color: var(--nip-gold, #f0b429);
	box-shadow: 0 0 0 2px rgba(240, 180, 41, 0.25);
}

.nip-lms-ngn-hotspot-region:disabled {
	cursor: default;
	opacity: 0.9;
}

.nip-lms-ngn--numeric .nip-lms-ngn-numeric-field {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 0.75rem;
	margin: 0.75rem 0 1rem;
}

.nip-lms-ngn-numeric-label {
	font-weight: 600;
	width: 100%;
}

.nip-lms-ngn-numeric-input {
	min-width: 10rem;
	max-width: 16rem;
	padding: 0.55rem 0.75rem;
	border: 1px solid var(--nip-border);
	border-radius: 10px;
	font-size: 1rem;
}

.nip-lms-ngn-numeric-unit {
	color: var(--nip-muted);
	font-size: 0.95rem;
}

.nip-lms-quiz-audio {
	margin: 0 0 1rem;
	padding: 0.85rem 1rem;
	border-radius: 12px;
	background: rgba(11, 111, 164, 0.06);
	border: 1px solid var(--nip-border);
}

.nip-lms-quiz-audio__label {
	margin: 0 0 0.5rem;
	font-size: 0.92rem;
	color: var(--nip-muted);
}

.nip-lms-quiz-audio__player {
	width: 100%;
	max-width: 28rem;
}

.nip-lms-quiz__option--graphic {
	align-items: flex-start;
	text-align: left;
}

.nip-lms-quiz__option--graphic img {
	display: block;
	max-width: min(100%, 220px);
	height: auto;
	margin-top: 0.35rem;
	border-radius: 8px;
	border: 1px solid var(--nip-border);
}

.nip-lms-ngn-rationale {
	margin-top: 0.75rem;
}

.nip-lms-audio-lesson {
	margin: 1.25rem 0;
	padding: 1rem;
	border-radius: 14px;
	background: rgba(11, 111, 164, 0.05);
	border: 1px solid var(--nip-border);
}

.nip-lms-audio-player {
	width: 100%;
	margin-top: 0.5rem;
}

.nip-lms-audio-episodes {
	list-style: none;
	margin: 0.75rem 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}

.nip-lms-video iframe {
	width: 100%;
	border-radius: 14px;
	border: 0;
	min-height: 240px;
}

.nip-lms-course-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 0.75rem;
	padding: 0.85rem 0;
	border-bottom: 1px solid var(--nip-border);
	min-width: 0;
}

.nip-lms-course-row__title {
	flex: 1 1 12rem;
	font-weight: 600;
	min-width: 0;
	overflow-wrap: anywhere;
}

.nip-lms-course-row .nip-lms-button {
	flex-shrink: 0;
}

.nip-lms-price-card {
	border: 1px solid var(--nip-border);
	border-radius: var(--nip-radius);
	padding: 1rem;
	background: #fff;
}

.nip-lms-price-card--premium {
	border-color: rgba(18, 164, 182, 0.45);
	box-shadow: var(--nip-shadow);
}

.nip-fc-stage {
	min-height: 200px;
}

.nip-fc-card {
	background: linear-gradient(145deg, #fff, var(--nip-cream));
	border: 2px solid rgba(26, 45, 90, 0.12);
	border-radius: var(--nip-radius);
	padding: 1.25rem;
	cursor: pointer;
	min-height: 160px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	box-shadow: var(--nip-shadow);
}

.nip-fc-card__body {
	font-size: 1.05rem;
	line-height: 1.5;
}

.nip-fc-hint {
	font-size: 0.8rem;
	color: var(--nip-muted);
	margin: 0.5rem 0 0;
}

.nip-fc-actions {
	display: flex;
	gap: 0.75rem;
	margin-top: 1rem;
	flex-wrap: wrap;
}

.nip-lms-resource-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 1rem;
}

.nip-lms-resource-link {
	color: var(--nip-navy);
	font-weight: 600;
	text-decoration: none;
}

.nip-lms-resource-link:hover {
	text-decoration: underline;
}

/* —— Mobile-first enhancements —— */
@media (max-width: 640px) {
	.nip-lms-app {
		padding-left: 0.85rem;
		padding-right: 0.85rem;
		border-radius: 12px;
	}

	.nip-lms-card {
		padding: 1rem;
	}

	.nip-lms-readiness-ring {
		width: 80px;
		height: 80px;
	}

	.nip-lms-readiness-ring__value {
		width: 62px;
		height: 62px;
		font-size: 0.9rem;
	}

	.nip-lms-grid--2,
	.nip-lms-grid--3,
	.nip-lms-practice-panel .nip-lms-grid--2 {
		grid-template-columns: 1fr;
	}

	.nip-lms-button,
	.nip-lms-button--ghost {
		width: 100%;
	}

	.nip-lms-quiz__option {
		min-height: var(--nip-touch);
	}

	.nip-lms-bottom-nav a {
		font-size: 0.72rem;
		min-height: var(--nip-touch);
		display: flex;
		align-items: center;
		justify-content: center;
	}

	.nip-lms-video iframe {
		max-width: 100%;
	}

	.nip-lms-course-row {
		flex-direction: column;
		align-items: stretch;
	}

	.nip-lms-course-row .nip-lms-button {
		width: 100%;
	}

	.nip-lms-breadcrumbs {
		font-size: 0.8rem;
	}

	.nip-lms-stats {
		grid-template-columns: 1fr;
	}

	.nip-lms-bottom-nav {
		margin-left: -0.85rem;
		margin-right: -0.85rem;
	}
}

.nip-lms-study-plan__head {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0.5rem;
	align-items: baseline;
}

.nip-lms-study-plan__exam {
	margin: 0;
	color: var(--nip-muted);
	font-size: 0.9rem;
}

.nip-lms-study-plan__bars {
	display: grid;
	gap: 0.85rem;
	margin: 1rem 0;
}

.nip-lms-study-plan__item span {
	display: block;
	font-size: 0.8rem;
	color: var(--nip-muted);
}

.nip-lms-study-plan__item strong {
	font-size: 1rem;
}

.nip-lms-study-plan__form label {
	display: block;
	margin-bottom: 0.65rem;
}

.nip-lms-study-plan__form input {
	width: 100%;
	max-width: 16rem;
	margin-top: 0.25rem;
	min-height: var(--nip-touch);
}

.nip-lms-video-gate {
	margin: 0.75rem 0 0;
}

.nip-lms-video-gate-msg {
	color: var(--nip-muted);
	background: rgba(240, 180, 41, 0.12);
	border-left: 4px solid var(--nip-gold);
	padding: 0.75rem 1rem;
	border-radius: 8px;
}

.nip-lms-pill--success {
	background: rgba(61, 126, 191, 0.15);
	color: var(--nip-navy);
}

.nip-lms-instructor__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: flex-end;
}

.nip-lms-instructor__select {
	display: block;
	margin-top: 0.35rem;
	min-height: var(--nip-touch);
	min-width: 12rem;
}

.nip-lms-instructor__kpis {
	margin-bottom: 1rem;
}

.nip-lms-heatmap {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr));
	gap: 0.65rem;
	margin-top: 1rem;
}

.nip-lms-heatmap__cell {
	border-radius: 10px;
	padding: 0.75rem;
	border: 1px solid var(--nip-border);
	text-align: center;
}

.nip-lms-heatmap__cell strong {
	display: block;
	font-size: 0.8rem;
	line-height: 1.3;
	margin-bottom: 0.35rem;
}

.nip-lms-heatmap__cell span {
	display: block;
	font-size: 1.35rem;
	font-weight: 700;
}

.nip-lms-heatmap__cell small {
	display: block;
	margin-top: 0.25rem;
	color: var(--nip-muted);
	font-size: 0.72rem;
}

.nip-lms-heatmap__cell.is-weak {
	background: rgba(220, 53, 69, 0.12);
	border-color: rgba(220, 53, 69, 0.35);
}

.nip-lms-heatmap__cell.is-medium {
	background: rgba(240, 180, 41, 0.15);
	border-color: rgba(240, 180, 41, 0.4);
}

.nip-lms-heatmap__cell.is-strong {
	background: rgba(40, 167, 69, 0.12);
	border-color: rgba(40, 167, 69, 0.35);
}

.nip-lms-price-card.is-featured {
	border: 2px solid var(--nip-gold);
	box-shadow: 0 8px 24px rgba(240, 180, 41, 0.15);
}

.nip-lms-pricing__manage {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
	align-items: center;
	margin-bottom: 1rem;
}

.nip-lms-discussion__thread {
	display: grid;
	gap: 0.85rem;
	margin-bottom: 1rem;
}

.nip-lms-discussion__post {
	border: 1px solid var(--nip-border);
	border-radius: 10px;
	padding: 0.85rem 1rem;
}

.nip-lms-discussion__post.is-answer {
	border-color: rgba(61, 126, 191, 0.45);
	background: rgba(61, 126, 191, 0.06);
}

.nip-lms-discussion__post header {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
	margin-bottom: 0.35rem;
}

.nip-lms-discussion__post time {
	color: var(--nip-muted);
	font-size: 0.8rem;
}

.nip-lms-discussion__actions {
	display: flex;
	gap: 0.5rem;
	margin-top: 0.5rem;
}

.nip-lms-discussion__form textarea {
	width: 100%;
	min-height: 5rem;
	margin-bottom: 0.65rem;
}

.nip-lms-topic-figure {
	margin: 0 0 1.25rem;
	text-align: center;
}

.nip-lms-topic-svg {
	max-width: 100%;
	height: auto;
	border-radius: 12px;
	border: 1px solid var(--nip-border);
}

.nip-lms-topic-figure figcaption {
	margin-top: 0.35rem;
	font-size: 0.85rem;
	color: var(--nip-muted);
}

.nip-cheat-sheet {
	margin-top: 0.5rem;
}

.nip-diagram-credit {
	font-size: 0.75rem;
	color: var(--nip-muted, #64748b);
	margin-top: 0.35rem;
	line-height: 1.35;
}

.nip-lesson-figure {
	margin: 1rem 0;
}

.nip-lesson-diagram,
.nip-quiz-diagram,
.nip-practice-visual img {
	max-width: 100%;
	height: auto;
	display: block;
	margin: 1rem auto;
	border-radius: 8px;
	box-shadow: 0 2px 12px rgba(15, 45, 82, 0.12);
}

.nip-practice-visual {
	margin-bottom: 1rem;
}

.nip-lesson-reveal-target.is-revealed,
.nip-lesson-reveal-target:not([hidden]) {
	display: block;
}

.nip-lesson-scenario-reveal {
	margin: 1rem 0;
}

.nip-lms-notice {
	padding: 0.75rem 1rem;
	border-radius: 8px;
	background: rgba(200, 120, 0, 0.12);
	color: #6b4a00;
}

.nip-cheat-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.85rem;
	table-layout: auto;
	word-wrap: break-word;
	overflow-wrap: anywhere;
}

.nip-cheat-table-wrap {
	width: 100%;
	max-width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	margin: 0.35rem 0;
}

.nip-cheat-table th,
.nip-cheat-table td {
	border: 1px solid var(--nip-border);
	padding: 0.4rem 0.5rem;
	vertical-align: top;
	text-align: left;
	word-wrap: break-word;
	overflow-wrap: anywhere;
}

.nip-cheat-table th {
	width: 28%;
	background: rgba(61, 126, 191, 0.08);
	color: var(--nip-navy);
}

.nip-lms-spaced-rep__deck-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem 0.75rem;
	padding: 0.65rem 0;
	border-bottom: 1px solid var(--nip-border);
}

.nip-lms-review + .nip-lms-quiz {
	margin-top: 0;
}

.nip-lms-review + .nip-lms-quiz .nip-lms-quiz__header .nip-lms-app__title {
	font-size: 1.15rem;
}

.nip-lms-push-panel {
	margin-top: 1.25rem;
	padding-top: 1rem;
	border-top: 1px solid var(--nip-border);
}

.nip-lms-push-panel h3 {
	margin: 0 0 0.35rem;
	font-size: 1rem;
	color: var(--nip-navy);
}

[data-push-status].is-ok {
	color: #16a34a;
}

[data-push-status].is-error {
	color: #dc2626;
}

.nip-lms-live-schedule__list {
	display: grid;
	gap: 1rem;
}

.nip-lms-live-schedule__item h2 {
	margin: 0 0 0.5rem;
	font-size: 1.1rem;
	color: var(--nip-navy);
}

.nip-lms-subscription-banner {
	margin: 0 0 1rem;
	padding: 1rem 1.25rem;
	border-radius: var(--nip-radius, 14px);
	border: 1px solid var(--nip-border, #e2e8f0);
	background: #fff8e6;
	color: var(--nip-navy, #1a2d5a);
}

.nip-lms-subscription-banner.is-lapsed {
	background: #fef2f2;
}

.nip-lms-subscription-banner a {
	font-weight: 600;
}

.nip-lms-lesson-content,
.nip-lms-lesson-body {
	overflow-wrap: anywhere;
	word-break: break-word;
	line-height: 1.65;
	font-size: 1rem;
	max-width: var(--nip-lesson-max, 95%);
}

.nip-lms-lesson-body h2,
.nip-lms-lesson-content h2 {
	margin-top: 1.75rem;
	margin-bottom: 0.75rem;
	color: var(--nip-navy, #1a2d5a);
}

.nip-lms-lesson-body .nip-cheat-table,
.nip-lms-lesson-body .nip-cheat-table-wrap,
.nip-lms-lesson-body table {
	box-shadow: 0 1px 4px rgba(15, 31, 61, 0.06);
	max-width: 100%;
}

.nip-lms-lesson-body .nip-cheat-table-wrap {
	overflow-x: auto;
}

.nip-lms-lesson-body table,
.nip-lms-lesson-content table {
	width: 100%;
	border-collapse: collapse;
	margin: 1rem 0;
	font-size: 0.92rem;
}

.nip-lms-lesson-body table th,
.nip-lms-lesson-body table td,
.nip-lms-lesson-content table th,
.nip-lms-lesson-content table td {
	border: 1px solid var(--nip-border, #e2e8f0);
	padding: 0.6rem 0.75rem;
	vertical-align: top;
	text-align: left;
}

.nip-lms-lesson-body table th,
.nip-lms-lesson-content table th {
	background: rgba(61, 126, 191, 0.08);
	color: var(--nip-navy, #1a2d5a);
	font-weight: 600;
}

.nip-lms-lesson-body table tbody tr:nth-child(even),
.nip-lms-lesson-content table tbody tr:nth-child(even) {
	background: rgba(248, 250, 252, 0.9);
}

.nip-lms-lesson-content img,
.nip-lms-lesson-content iframe,
.nip-lms-lesson-content video {
	max-width: 100%;
	height: auto;
}

.nip-cheat-sheet {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

@media (max-width: 640px) {
	.nip-cheat-table {
		display: block;
		overflow-x: auto;
	}

	.nip-cheat-table th {
		min-width: 7rem;
	}
}

/* Guided course path — sticky progress trail */
.nip-course-trail {
	position: sticky;
	top: 0;
	z-index: 40;
	background: var(--nip-surface, #fff);
	border-bottom: 1px solid var(--nip-border, #e2e8f0);
	padding: 0.65rem 1rem;
	box-shadow: 0 2px 12px rgba(15, 23, 42, 0.06);
	margin: 0 0 1rem;
}

.nip-course-trail__bar-wrap {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem 1.25rem;
}

.nip-course-trail__label {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.35rem 0.75rem;
	flex: 1;
	min-width: 12rem;
}

.nip-course-trail__title {
	font-size: 0.8rem;
	color: var(--nip-muted, #64748b);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.nip-course-trail__progress {
	flex: 1 1 8rem;
	max-width: 280px;
	margin-top: 0;
}

.nip-course-trail__panel {
	margin-top: 0.75rem;
	max-height: 220px;
	overflow-y: auto;
	border-top: 1px solid var(--nip-border, #e2e8f0);
	padding-top: 0.5rem;
}

.nip-course-trail__legend {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem 0.65rem;
	font-size: 0.75rem;
	margin-bottom: 0.5rem;
}

.nip-course-trail__legend .is-completed {
	color: #15803d;
}

.nip-course-trail__legend .is-partial {
	color: #b45309;
}

.nip-course-trail__legend .is-undone {
	color: #64748b;
}

.nip-course-trail__filters {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin: 0 0 0.5rem;
}

.nip-course-trail__filters .nip-lms-button.is-active {
	background: rgba(11, 111, 164, 0.14);
	border-color: var(--nip-primary, #1e3a5f);
}

.nip-course-trail__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.35rem;
}

.nip-course-trail__step a {
	text-decoration: none;
	font-weight: 600;
	color: var(--nip-primary, #1e3a5f);
}

.nip-course-trail__step.is-completed a,
.nip-course-trail__step.is-done a {
	color: var(--nip-success, #15803d);
}

.nip-course-trail__step.is-current a {
	text-decoration: underline;
}

.nip-course-trail__step.is-partial {
	background: rgba(240, 180, 41, 0.14);
	border-left: 3px solid #d97706;
	padding: 0.35rem 0.5rem;
	border-radius: 8px;
}

.nip-course-trail__step.is-undone {
	opacity: 0.78;
}

.nip-course-trail__step.is-completed {
	background: rgba(22, 163, 74, 0.12);
	border-left: 3px solid #15803d;
	padding: 0.35rem 0.5rem;
	border-radius: 8px;
}

.nip-course-trail__state {
	display: inline-block;
	margin-left: 0.45rem;
	font-size: 0.72rem;
	color: var(--nip-muted, #64748b);
}

.nip-course-trail__section {
	display: block;
	font-size: 0.72rem;
	color: var(--nip-muted, #64748b);
}

.nip-course-trail__sections {
	margin-top: 0.75rem;
	padding-top: 0.5rem;
	border-top: 1px dashed var(--nip-border, #e2e8f0);
}

.nip-course-trail__sections-title {
	font-size: 0.72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--nip-muted, #64748b);
	margin: 0 0 0.35rem;
}

.nip-course-trail__section-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.4rem;
}

.nip-course-trail__section-item {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem 0.5rem;
	font-size: 0.85rem;
	padding: 0.35rem 0.45rem;
	border-radius: 8px;
}

.nip-course-trail__section-item.is-partial {
	background: rgba(240, 180, 41, 0.14);
}

.nip-course-trail__section-item.is-completed {
	background: rgba(22, 163, 74, 0.12);
}

.nip-course-trail__section-item.is-undone {
	background: rgba(148, 163, 184, 0.14);
}

.nip-course-trail__section-item.is-ready .nip-course-trail__section-cta,
.nip-course-trail__section-item.is-partial .nip-course-trail__section-cta {
	font-weight: 700;
}

.nip-course-trail__section-cta {
	font-size: 0.8rem;
	font-weight: 600;
	color: var(--nip-primary, #1e3a5f);
}

.nip-section-focus-list li {
	display: grid;
	gap: 0.35rem;
	margin-bottom: 0.75rem;
}

.nip-lms-quiz__option--sata {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	margin-bottom: 0.5rem;
	cursor: pointer;
}

.nip-lms-quiz__sata .nip-lms-button {
	margin-top: 0.75rem;
}

.nip-topic-step-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-bottom: 1rem;
}

.nip-topic-hero {
	margin: 0 0 1rem;
	border-radius: 12px;
	overflow: hidden;
}

.nip-topic-hero img {
	display: block;
	width: 100%;
	max-height: 220px;
	object-fit: cover;
}

.nip-practice-match-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.5rem;
	margin-bottom: 0.5rem;
}

.nip-practice-rank {
	list-style: none;
	padding: 0;
	margin: 0;
}

.nip-practice-rank li {
	padding: 0.65rem 0.85rem;
	margin-bottom: 0.35rem;
	background: var(--nip-bg, #f8fafc);
	border: 1px solid var(--nip-border, #e2e8f0);
	border-radius: 8px;
	cursor: grab;
}

.nip-practice-activity__feedback,
.nip-practice-activity__reveal {
	margin-top: 0.75rem;
	padding: 0.75rem;
	background: #f8fafc;
	border-radius: 8px;
}

.nip-learning-steps {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1rem;
	list-style: none;
	margin: 0 0 1.25rem;
	padding: 0;
}

.nip-learning-steps__item a {
	font-weight: 600;
	text-decoration: none;
	color: var(--nip-primary, #1e3a5f);
}

.nip-learning-steps__item.is-current a {
	text-decoration: underline;
}

.nip-learning-steps__item.is-locked a {
	opacity: 0.45;
	pointer-events: none;
}

.nip-swot h3 {
	font-size: 0.95rem;
	margin: 1rem 0 0.35rem;
}

.nip-swot ul {
	margin: 0 0 0.5rem 1.1rem;
}

.nip-home__sub {
	max-width: 48rem;
	color: #4b5563;
}

.nip-course-architecture {
	padding: 2.5rem 0;
	background: #f8fafc;
}

.nip-course-architecture__flow {
	margin: 1rem 0 0;
	padding-left: 1.2rem;
	display: grid;
	gap: 0.55rem;
}

/* —— Branded auth pages —— */
.nip-lms-app.nip-auth-page.nip-lms-standalone-page {
	max-width: 93vw;
	width: 93%;
	padding-inline: 0;
}

.nip-auth-page {
	display: flex;
	justify-content: center;
	padding: 2rem 1rem 3rem;
	width: 93%;
	max-width: 93vw;
	margin-inline: auto;
	box-sizing: border-box;
}

.nip-auth-page .nip-auth-card {
	width: 100%;
	max-width: 52rem;
	background: #fff;
	border: 1px solid var(--nip-border);
	border-radius: var(--nip-radius);
	box-shadow: var(--nip-shadow);
	padding: 1.75rem;
}

.nip-auth-card__eyebrow {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--nip-teal, #12a4b6);
	margin: 0 0 0.35rem;
}

.nip-auth-card__title {
	font-size: 1.45rem;
	margin: 0 0 0.5rem;
	color: var(--nip-navy);
}

.nip-auth-card__lead {
	color: var(--nip-muted);
	margin: 0 0 1.25rem;
	line-height: 1.5;
}

.nip-auth-card__sso .nip-lms-sso-buttons,
.nip-auth-card__sso > * {
	display: grid;
	gap: 0.5rem;
}

.nip-auth-card__divider {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	color: var(--nip-muted);
	font-size: 0.85rem;
	margin: 1.25rem 0;
}

.nip-auth-card__divider::before,
.nip-auth-card__divider::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--nip-border);
}

.nip-auth-card__divider span {
	white-space: nowrap;
}

.nip-auth-form {
	display: grid;
	gap: 0.85rem;
}

.nip-auth-form label {
	display: grid;
	gap: 0.35rem;
	font-size: 0.88rem;
	font-weight: 600;
}

.nip-auth-form__remember {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-weight: 500;
}

.nip-lms-button--block {
	width: 100%;
	justify-content: center;
}

.nip-auth-card__foot {
	margin: 1rem 0 0;
	font-size: 0.9rem;
	text-align: center;
}

.nip-auth-card__foot--muted {
	color: var(--nip-muted);
}

.nip-auth-card__foot a {
	font-weight: 600;
}

.nip-auth-tier-picker {
	border: 0;
	margin: 0 0 1rem;
	padding: 0;
}

.nip-auth-tier-picker legend {
	font-weight: 600;
	margin-bottom: 0.5rem;
}

.nip-auth-tier-picker__grid {
	display: grid;
	gap: 0.75rem;
}

.nip-auth-tier-card {
	display: block;
	border: 2px solid var(--nip-border, #d8dee6);
	border-radius: 0.5rem;
	padding: 0.75rem 1rem;
	cursor: pointer;
}

.nip-auth-tier-card.is-selected,
.nip-auth-tier-card.is-featured.is-selected {
	border-color: var(--nip-teal, #12a4b6);
	background: rgba(18, 164, 182, 0.06);
}

.nip-auth-tier-card input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.nip-auth-tier-card__name {
	display: block;
	font-weight: 700;
}

.nip-auth-tier-card__price {
	display: block;
	font-size: 1.25rem;
	font-weight: 800;
}

.nip-auth-tier-card__interval {
	font-size: 0.85rem;
	font-weight: 500;
}

.nip-auth-tier-card__desc {
	display: block;
	font-size: 0.85rem;
	color: var(--nip-muted);
	margin-top: 0.35rem;
}

.nip-auth-compliance {
	margin: 1rem 0;
	padding: 1rem;
	border: 1px solid var(--nip-border, #d8dee6);
	border-radius: 0.5rem;
	background: var(--nip-surface-muted, #f6f7f7);
	font-size: 0.9rem;
}

.nip-auth-compliance__check {
	display: block;
	margin: 0.5rem 0;
}

.nip-auth-password {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 0.35rem;
	align-items: center;
}

.nip-auth-password .nip-lms-input {
	width: 100%;
}

.nip-auth-password__toggle {
	appearance: none;
	border: 1px solid var(--nip-border, #d8dee6);
	background: #fff;
	border-radius: 0.35rem;
	padding: 0.45rem 0.65rem;
	font-size: 0.82rem;
	font-weight: 600;
	cursor: pointer;
	color: var(--nip-navy, #1a2d5a);
}

.nip-auth-modal {
	position: fixed;
	inset: 0;
	z-index: 10050;
	display: grid;
	place-items: center;
	padding: 1rem;
}

.nip-auth-modal[hidden] {
	display: none;
}

.nip-auth-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(15, 31, 61, 0.45);
}

.nip-auth-modal__panel {
	position: relative;
	width: min(100%, 26rem);
	background: #fff;
	border-radius: var(--nip-radius, 12px);
	box-shadow: var(--nip-shadow, 0 12px 40px rgba(0, 0, 0, 0.15));
	padding: 1.25rem 1.5rem;
}

.nip-auth-modal__title {
	margin: 0 0 0.75rem;
	font-size: 1.1rem;
	color: var(--nip-navy, #1a2d5a);
}

.nip-auth-modal__errors {
	margin: 0 0 1rem;
	padding-left: 1.2rem;
	color: #b42318;
}

.nip-lms-paused-pager {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	margin-top: 1rem;
}

.nip-lms-schedule-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
	margin: 0 0 1rem;
}

.nip-schedule-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.2rem 0.55rem;
	border-radius: 999px;
	font-size: 0.78rem;
	font-weight: 600;
	background: rgba(26, 45, 90, 0.08);
	color: var(--nip-navy, #1a2d5a);
	border: 1px solid transparent;
}

.nip-schedule-chip.is-completed {
	background: rgba(22, 163, 74, 0.12);
	border-color: rgba(22, 163, 74, 0.35);
}

.nip-schedule-chip.is-current {
	background: rgba(45, 107, 179, 0.14);
	border-color: rgba(45, 107, 179, 0.4);
}

.nip-schedule-chip.is-started {
	background: rgba(18, 164, 182, 0.12);
	border-color: rgba(18, 164, 182, 0.35);
}

.nip-schedule-chip--link.is-completed,
.nip-schedule-chip.is-completed {
	color: #166534;
}

.nip-schedule-chip--link.is-current,
.nip-schedule-chip.is-current {
	color: #1d4ed8;
}

.nip-schedule-chip--link.is-started,
.nip-schedule-chip.is-started {
	color: #0f766e;
}

.nip-schedule-chip__state {
	font-size: 0.72rem;
	font-weight: 700;
	opacity: 0.85;
}

.nip-lms-cheat-sheets-hub__search {
	margin: 1rem 0;
}

.nip-lms-cheat-sheets-hub__section {
	margin-bottom: 1.5rem;
}

.nip-lms-cheat-sheets-hub__section-title {
	font-size: 1.1rem;
	margin: 0 0 0.5rem;
}

.nip-lms-cheat-sheets-hub__topics {
	list-style: none;
	margin: 0;
	padding: 0;
}

.nip-lms-cheat-sheets-hub__topics li {
	margin: 0.35rem 0;
}

.nip-lms-cheat-sheets-hub__topics a {
	display: block;
	padding: 0.5rem 0.75rem;
	border-radius: 0.35rem;
	text-decoration: none;
}

.nip-lms-cheat-sheets-hub__topics a:hover {
	background: rgba(18, 164, 182, 0.08);
}

.nip-lms-cheat-sheets-hub__excerpt {
	display: block;
	font-size: 0.85rem;
	color: var(--nip-muted);
	font-weight: 400;
}

.nip-lms-cheat-sheets-hub__layout {
	display: grid;
	grid-template-columns: minmax(260px, 340px) minmax(0, 1fr);
	gap: 1rem;
	align-items: start;
}

.nip-lms-cheat-sheets-hub__index {
	max-height: calc(100vh - 10rem);
	overflow: auto;
	position: sticky;
	top: 7.5rem;
}

.nip-lms-cheat-sheets-hub__phase,
.nip-lms-cheat-sheets-hub__module {
	margin: 0.35rem 0;
	border: 1px solid var(--nip-border);
	border-radius: 10px;
	background: rgba(248, 250, 252, 0.8);
}

.nip-lms-cheat-sheets-hub__phase-title,
.nip-lms-cheat-sheets-hub__module-title {
	cursor: pointer;
	font-weight: 700;
	font-size: 0.88rem;
	padding: 0.5rem 0.65rem;
	list-style: none;
}

.nip-lms-cheat-sheets-hub__phase-title::-webkit-details-marker,
.nip-lms-cheat-sheets-hub__module-title::-webkit-details-marker {
	display: none;
}

.nip-lms-cheat-sheets-hub__module {
	margin: 0.35rem 0.5rem 0.5rem;
}

.nip-lms-cheat-sheets-hub__topics {
	list-style: none;
	margin: 0;
	padding: 0 0.35rem 0.5rem;
}

.nip-lms-cheat-sheets-hub__topics li {
	margin: 0.25rem 0;
}

.nip-lms-cheat-sheets-hub__topic-btn {
	width: 100%;
	text-align: left;
	border: 1px solid transparent;
	background: transparent;
	padding: 0.45rem 0.55rem;
	border-radius: 8px;
	cursor: pointer;
	font: inherit;
	color: inherit;
}

.nip-lms-cheat-sheets-hub__topic-btn:hover,
.nip-lms-cheat-sheets-hub__topic-btn.is-active {
	background: rgba(61, 126, 191, 0.1);
	border-color: rgba(61, 126, 191, 0.25);
}

.nip-lms-cheat-sheets-hub__viewer-head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0.75rem;
	margin-bottom: 0.75rem;
}

.nip-lms-cheat-sheets-hub__viewer-title {
	margin: 0.25rem 0 0;
	font-size: 1.25rem;
}

.nip-lms-cheat-sheets-hub__crumb {
	margin: 0;
	font-size: 0.82rem;
	color: var(--nip-muted);
}

.nip-lms-cheat-sheets-hub__viewer-placeholder {
	color: var(--nip-muted);
	padding: 2rem 1rem;
	text-align: center;
}

@media (max-width: 960px) {
	.nip-lms-cheat-sheets-hub__layout {
		grid-template-columns: 1fr;
	}

	.nip-lms-cheat-sheets-hub__index {
		max-height: none;
		position: static;
	}
}

@media print {
	body.nip-cheat-sheet-print-mode .nip-lms-cheat-sheets-hub__index,
	body.nip-cheat-sheet-print-mode .nip-lms-cheat-sheets-hub__intro {
		display: none !important;
	}

	body.nip-cheat-sheet-print-mode .nip-lms-cheat-sheets-hub__viewer-head button {
		display: none !important;
	}
}

/* —— Case studies hub (mirrors cheat-sheet browse + inline quiz) —— */
.nip-lms-case-studies-hub__layout,
.nip-lms-cheat-sheets-hub__layout {
	display: grid;
	grid-template-columns: minmax(240px, 340px) minmax(0, 1fr);
	gap: 1rem;
	align-items: start;
}

.nip-lms-case-studies-hub__index,
.nip-lms-cheat-sheets-hub__index {
	max-height: calc(100vh - 12rem);
	overflow: auto;
	position: sticky;
	top: 7.5rem;
}

.nip-lms-case-studies-hub__search,
.nip-lms-cheat-sheets-hub__search {
	margin: 0 0 0.75rem;
}

.nip-lms-case-studies-hub__phase,
.nip-lms-case-studies-hub__module,
.nip-lms-cheat-sheets-hub__phase,
.nip-lms-cheat-sheets-hub__module {
	margin: 0 0 0.65rem;
}

.nip-lms-case-studies-hub__phase-title,
.nip-lms-case-studies-hub__module-title,
.nip-lms-cheat-sheets-hub__phase-title,
.nip-lms-cheat-sheets-hub__module-title {
	cursor: pointer;
	font-weight: 700;
	padding: 0.35rem 0;
}

.nip-lms-case-studies-hub__module {
	margin-left: 0.35rem;
}

.nip-lms-case-studies-hub__topics,
.nip-lms-cheat-sheets-hub__topics {
	list-style: none;
	margin: 0;
	padding: 0;
}

.nip-lms-case-studies-hub__topics li,
.nip-lms-cheat-sheets-hub__topics li {
	margin: 0 0 0.35rem;
}

.nip-lms-case-studies-hub__topic-btn,
.nip-lms-cheat-sheets-hub__topic-btn {
	display: block;
	width: 100%;
	text-align: left;
	border: 1px solid var(--nip-border);
	background: var(--nip-card, #fff);
	border-radius: var(--nip-radius-sm);
	padding: 0.55rem 0.65rem;
	cursor: pointer;
}

.nip-lms-case-studies-hub__topic-btn:hover,
.nip-lms-case-studies-hub__topic-btn.is-active,
.nip-lms-cheat-sheets-hub__topic-btn:hover,
.nip-lms-cheat-sheets-hub__topic-btn.is-active {
	border-color: rgba(45, 107, 179, 0.45);
	background: rgba(45, 107, 179, 0.08);
}

.nip-lms-case-studies-hub__excerpt,
.nip-lms-cheat-sheets-hub__excerpt {
	display: block;
	font-size: 0.82rem;
	color: var(--nip-muted);
	margin-top: 0.15rem;
}

.nip-lms-case-studies-hub__viewer-head,
.nip-lms-cheat-sheets-hub__viewer-head {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 1rem;
	margin-bottom: 1rem;
}

.nip-lms-case-studies-hub__viewer-title,
.nip-lms-cheat-sheets-hub__viewer-title {
	margin: 0.15rem 0 0;
}

.nip-lms-case-studies-hub__crumb,
.nip-lms-cheat-sheets-hub__crumb {
	margin: 0;
	font-size: 0.82rem;
	color: var(--nip-muted);
}

.nip-lms-case-studies-hub__viewer-placeholder {
	color: var(--nip-muted);
	padding: 2rem 1rem;
	text-align: center;
}

.nip-lms-case-studies-hub__options {
	border: 0;
	margin: 0 0 1rem;
	padding: 0;
}

.nip-lms-case-studies-hub__counts {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem;
}

.nip-lms-case-studies-hub__counts > span {
	font-weight: 600;
	margin-right: 0.35rem;
}

.nip-lms-quiz--case-study-hub .nip-lms-card {
	box-shadow: none;
	border: none;
	padding: 0;
}

@media (max-width: 960px) {
	.nip-lms-case-studies-hub__layout {
		grid-template-columns: 1fr;
	}

	.nip-lms-case-studies-hub__index {
		max-height: none;
		position: static;
	}
}

/* —— Premium cheat sheet & lesson callouts (Madison / Phase 1 style) —— */
.nip-cheat-sheet--premium {
	display: flow-root;
	line-height: 1.55;
}

.nip-cheat-sheet--premium h2,
.nip-cheat-sheet--premium h3,
.nip-lms-lesson-body .nip-cheat-star,
.nip-lms-lesson-body details.nip-cheat-review {
	scroll-margin-top: 5rem;
}

.nip-cheat-star {
	display: flex;
	gap: 0.5rem;
	align-items: flex-start;
	margin: 0.75rem 0;
	padding: 0.75rem 1rem;
	background: linear-gradient(135deg, #fff8e6, #ffefcc);
	border: 1px solid #e6b422;
	border-left-width: 4px;
	border-radius: 0.5rem;
	font-size: 0.95rem;
}

.nip-cheat-star__icon {
	color: #c58a00;
	font-size: 1.1rem;
	line-height: 1.2;
	flex-shrink: 0;
}

.nip-cheat-warn {
	margin: 0.75rem 0;
	padding: 0.75rem 1rem;
	background: #fff5f5;
	border: 1px solid #f5c2c2;
	border-left: 4px solid #dc2626;
	border-radius: 0.5rem;
}

.nip-cheat-review {
	margin: 0.5rem 0;
	border: 1px solid var(--nip-border);
	border-radius: 0.5rem;
	background: #fff;
}

.nip-cheat-review > summary {
	cursor: pointer;
	padding: 0.65rem 0.85rem;
	font-weight: 600;
	list-style: none;
}

.nip-cheat-review > summary::-webkit-details-marker {
	display: none;
}

.nip-cheat-review > summary::after {
	content: "+";
	float: right;
	font-weight: 700;
	color: var(--nip-muted);
}

.nip-cheat-review[open] > summary::after {
	content: "−";
}

.nip-cheat-review__body {
	padding: 0 0.85rem 0.85rem;
	border-top: 1px solid var(--nip-border);
}

.nip-cheat-table {
	width: 100%;
	border-collapse: collapse;
	margin: 0.5rem 0;
	font-size: 0.85rem;
	table-layout: auto;
	word-wrap: break-word;
	overflow-wrap: anywhere;
}

.nip-cheat-table-wrap {
	overflow-x: auto;
	max-width: 100%;
}

.nip-cheat-table th,
.nip-cheat-table td {
	border: 1px solid var(--nip-border);
	padding: 0.4rem 0.5rem;
	text-align: left;
	vertical-align: top;
	word-wrap: break-word;
}

.nip-cheat-table th {
	background: rgba(26, 45, 90, 0.06);
	font-weight: 700;
}

.nip-cheat-figure {
	margin: 1rem 0;
	text-align: center;
}

.nip-cheat-figure img {
	max-width: 100%;
	height: auto;
	border-radius: 0.5rem;
	border: 1px solid var(--nip-border);
}

.nip-cheat-figure figcaption {
	margin-top: 0.35rem;
	font-size: 0.85rem;
	color: var(--nip-muted);
}

.nip-cheat-flow {
	margin: 0.75rem 0;
	padding: 0.75rem;
	background: rgba(61, 126, 191, 0.06);
	border-radius: 0.5rem;
	border: 1px dashed var(--nip-border);
	overflow-x: auto;
}

.nip-cheat-toc {
	margin: 0 0 1rem;
	padding: 0.75rem 1rem;
	background: rgba(26, 45, 90, 0.04);
	border-radius: 0.5rem;
	border: 1px solid var(--nip-border);
}

.nip-cheat-toc ul {
	margin: 0.35rem 0 0;
	padding-left: 1.25rem;
}

.nip-cheat-toc a {
	color: var(--nip-navy);
	font-weight: 600;
	text-decoration: none;
}

.nip-cheat-toc a:hover {
	text-decoration: underline;
}

/* —— Pricing cards —— */
.nip-lms-grid--3 {
	grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
}

.nip-lms-price-card__badge {
	display: inline-block;
	font-size: 0.72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	background: rgba(18, 164, 182, 0.12);
	color: var(--nip-teal, #12a4b6);
	padding: 0.2rem 0.5rem;
	border-radius: 999px;
	margin-bottom: 0.5rem;
}

.nip-lms-price-card__amount {
	margin: 0.25rem 0 0.75rem;
}

.nip-lms-price-card__price {
	font-size: 2rem;
	font-weight: 800;
	color: var(--nip-navy);
}

.nip-lms-price-card__interval {
	font-size: 0.95rem;
	color: var(--nip-muted);
	margin-left: 0.15rem;
}

.nip-lms-pricing__note {
	margin-top: 1.5rem;
	max-width: 42rem;
}

/* Standalone public pages (FAQ, pricing, signup, signin) — no site header */
body.nip-theme-standalone .nip-site-main--portal {
	max-width: 960px;
	margin: 0 auto;
	padding: 1.5rem 1rem 2.5rem;
}

body.nip-theme-standalone .nip-lms-standalone-page .nip-lms-card,
body.nip-theme-standalone .nip-auth-card {
	box-shadow: 0 8px 32px rgba(15, 23, 42, 0.08);
}
