.ndsa-wrap {
	--ndsa-ink: #241b2f;
	--ndsa-muted: #6b6178;
	--ndsa-line: #e3ddea;
	--ndsa-bg: #fbfaf9;
	--ndsa-card: #ffffff;
	--ndsa-accent: #6d4fa3;
	--ndsa-accent-dark: #533b7d;
	--ndsa-accent-soft: #f1ecf9;
	--ndsa-good: #3f7d5c;
	--ndsa-warn: #b5731c;
	--ndsa-crisis-bg: #fdf1f1;
	--ndsa-crisis-border: #d97a7a;
	--ndsa-crisis-text: #7a2323;
	max-width: 1200px;
	margin: 0 auto;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	color: var(--ndsa-ink);
	line-height: 1.55;
	box-sizing: border-box;
}
/* Step down from the 1200px desktop/laptop width as the viewport narrows */
@media (max-width: 1279px) {
	.ndsa-wrap { max-width: 960px; }
}
@media (max-width: 900px) {
	.ndsa-wrap { max-width: 760px; }
}
.ndsa-wrap * { box-sizing: border-box; }
.ndsa-wrap h1 { font-size: 1.5rem; margin: 0 0 .5rem; line-height: 1.3; }
.ndsa-wrap h2 { font-size: 1.15rem; margin: 0 0 .75rem; }
.ndsa-wrap h3 { font-size: 1rem; margin: 1.25rem 0 .5rem; }
.ndsa-wrap p { margin: 0 0 1rem; }

.ndsa-wrap a { color: var(--ndsa-accent); text-decoration: underline; }
.ndsa-wrap a:hover { color: var(--ndsa-accent-dark); }

.ndsa-card { background: var(--ndsa-card); border: 1px solid var(--ndsa-line); border-radius: 14px; padding: 1.5rem; margin-bottom: 1.25rem; }

.ndsa-kicker {
	text-transform: uppercase;
	letter-spacing: .08em;
	font-size: .72rem;
	font-weight: 600;
	color: var(--ndsa-accent);
	margin-bottom: .35rem;
}

.ndsa-notice {
	background: var(--ndsa-accent-soft);
	border: 1px solid var(--ndsa-line);
	border-radius: 10px;
	padding: .85rem 1rem;
	font-size: .92rem;
	color: var(--ndsa-accent-dark);
	margin-bottom: 1.25rem;
}

.ndsa-disclaimer {
	font-size: .85rem;
	color: var(--ndsa-muted);
	border-top: 1px solid var(--ndsa-line);
	margin-top: 1.5rem;
	padding-top: 1rem;
}

/* Crisis block: always visually distinct, never dismissible-only */
.ndsa-crisis {
	background: var(--ndsa-crisis-bg);
	border: 1.5px solid var(--ndsa-crisis-border);
	color: var(--ndsa-crisis-text);
	border-radius: 12px;
	padding: 1.1rem 1.25rem;
	margin: 1rem 0 1.5rem;
}
.ndsa-crisis h3 { margin-top: 0; color: var(--ndsa-crisis-text); }
.ndsa-crisis ul { margin: .5rem 0 0; padding-left: 1.2rem; }
.ndsa-crisis li { margin-bottom: .3rem; }
.ndsa-crisis-persistent {
	position: sticky;
	bottom: 0;
	text-align: center;
	font-size: .82rem;
	padding: .5rem;
	background: var(--ndsa-crisis-bg);
	border-top: 1px solid var(--ndsa-crisis-border);
	color: var(--ndsa-crisis-text);
	margin-top: 1rem;
	border-radius: 0 0 10px 10px;
}
.ndsa-crisis-persistent a { color: var(--ndsa-crisis-text); font-weight: 600; }

/* Module picker */
.ndsa-module-grid { display: grid; gap: .75rem; margin: 1rem 0; }
.ndsa-module-option {
	display: flex;
	align-items: flex-start;
	gap: .75rem;
	border: 1.5px solid var(--ndsa-line);
	border-radius: 12px;
	padding: 1rem;
	cursor: pointer;
	transition: border-color .15s ease, background .15s ease;
}
.ndsa-module-option:hover { border-color: var(--ndsa-accent); }
.ndsa-module-option.ndsa-checked { border-color: var(--ndsa-accent); background: var(--ndsa-accent-soft); }
.ndsa-module-option input { margin-top: .2rem; width: 18px; height: 18px; flex-shrink: 0; }
.ndsa-module-option strong { display: block; margin-bottom: .2rem; }
.ndsa-module-option span.ndsa-module-desc { font-size: .88rem; color: var(--ndsa-muted); }

/* Progress */
.ndsa-progress-track {
	height: 6px;
	background: var(--ndsa-line);
	border-radius: 4px;
	overflow: hidden;
	margin-bottom: 1.25rem;
}
.ndsa-progress-fill {
	height: 100%;
	background: var(--ndsa-accent);
	transition: width .25s ease;
}
.ndsa-progress-label { font-size: .8rem; color: var(--ndsa-muted); margin-bottom: .4rem; }

/* Questions */
.ndsa-question {
	border-bottom: 1px solid var(--ndsa-line);
	padding: 1.1rem 0;
}
.ndsa-question:last-child { border-bottom: none; }
.ndsa-question-text { font-weight: 500; margin-bottom: .65rem; }
.ndsa-options { display: flex; flex-wrap: wrap; gap: .5rem; }
.ndsa-option-btn {
	border: 1.5px solid var(--ndsa-line);
	background: #fff;
	border-radius: 999px;
	padding: .5rem 1rem;
	font-size: .88rem;
	cursor: pointer;
	color: var(--ndsa-ink);
}
.ndsa-option-btn:hover { border-color: var(--ndsa-accent); }
.ndsa-option-btn.ndsa-selected {
	border-color: var(--ndsa-accent);
	background: var(--ndsa-accent);
	color: #fff;
}
.ndsa-followup {
	margin-top: .85rem;
	margin-left: .25rem;
	padding: .85rem 1rem;
	background: #f7f5fb;
	border-left: 3px solid var(--ndsa-accent);
	border-radius: 0 8px 8px 0;
	font-size: .92rem;
}
.ndsa-followup .ndsa-options { margin-top: .5rem; }

/* Buttons */
.ndsa-btn-row { display: flex; justify-content: space-between; gap: .75rem; margin-top: 1.5rem; }
.ndsa-btn {
	border: none;
	border-radius: 999px;
	padding: .75rem 1.5rem;
	font-size: .95rem;
	font-weight: 600;
	cursor: pointer;
}
.ndsa-btn-primary { background: var(--ndsa-accent); color: #fff; }
.ndsa-btn-primary:hover { background: var(--ndsa-accent-dark); }
.ndsa-btn-primary:disabled { background: #c9c0d9; cursor: not-allowed; }
.ndsa-btn-secondary { background: transparent; color: var(--ndsa-accent); border: 1.5px solid var(--ndsa-line); }
.ndsa-btn-secondary:hover { border-color: var(--ndsa-accent); }
.ndsa-btn-text { background: none; color: var(--ndsa-muted); text-decoration: underline; padding: .5rem; font-weight: 400; }

/* Results */
.ndsa-domain-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: .6rem 0;
	border-bottom: 1px solid var(--ndsa-line);
	gap: 1rem;
}
.ndsa-domain-row:last-child { border-bottom: none; }
.ndsa-tag {
	font-size: .78rem;
	font-weight: 600;
	padding: .25rem .65rem;
	border-radius: 999px;
	white-space: nowrap;
}
.ndsa-tag-strong { background: #f6e3e3; color: #93342f; }
.ndsa-tag-partial { background: #fbeecd; color: var(--ndsa-warn); }
.ndsa-tag-managed { background: #e4ecf7; color: #2e5490; }
.ndsa-tag-minimal { background: #e6f1ea; color: var(--ndsa-good); }

.ndsa-overlap-note {
	background: var(--ndsa-accent-soft);
	border-radius: 10px;
	padding: 1rem;
	margin: 1rem 0;
	font-size: .92rem;
}

.ndsa-script-quote {
	font-style: italic;
	background: #f7f5fb;
	border-left: 3px solid var(--ndsa-accent);
	padding: .85rem 1rem;
	border-radius: 0 8px 8px 0;
}

.ndsa-print-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin: 1.25rem 0; }

/* Save/resume banner */
.ndsa-resume-banner {
	background: var(--ndsa-accent-soft);
	border: 1px solid var(--ndsa-line);
	border-radius: 10px;
	padding: .85rem 1rem;
	margin-bottom: 1.25rem;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	flex-wrap: wrap;
	font-size: .9rem;
}

/* Glossary */
.ndsa-glossary dt { font-weight: 600; margin-top: .75rem; }
.ndsa-glossary dd { margin: .2rem 0 0; color: var(--ndsa-muted); }

@media (max-width: 480px) {
	.ndsa-wrap { padding: 0 .25rem; }
	.ndsa-btn-row { flex-direction: column-reverse; }
	.ndsa-btn { width: 100%; text-align: center; }
}

/* ---- Print document (appended directly to <body>, outside the app wrapper) ---- */
.ndsa-print-doc { display: none; }
@media print {
	body > *:not(.ndsa-print-doc) { display: none !important; }
	.ndsa-print-doc {
		display: block !important;
		font-family: Georgia, 'Times New Roman', serif;
		color: #111;
		max-width: 100%;
		padding: 0 .5in;
	}
	.ndsa-print-doc h1 { font-size: 20pt; margin-bottom: .1in; }
	.ndsa-print-doc h2 { font-size: 14pt; margin-top: .3in; border-bottom: 1px solid #999; padding-bottom: 2pt; }
	.ndsa-print-doc table { width: 100%; border-collapse: collapse; margin: .1in 0; }
	.ndsa-print-doc td, .ndsa-print-doc th { border: 1px solid #ccc; padding: 4pt 6pt; font-size: 10pt; text-align: left; }
	.ndsa-print-doc .ndsa-print-meta { font-size: 9pt; color: #555; margin-bottom: .2in; }
	.ndsa-print-doc .ndsa-print-footer { font-size: 8pt; color: #555; margin-top: .3in; border-top: 1px solid #ccc; padding-top: 6pt; }
	.ndsa-print-doc .ndsa-print-q { margin-bottom: 8pt; page-break-inside: avoid; }
	.ndsa-print-doc .ndsa-print-q .q { font-weight: bold; }
	.ndsa-print-doc .ndsa-print-q .a { color: #333; }
}
