.exita-app {
	--exita-ink: #12221b;
	--exita-muted: #5b675f;
	--exita-line: #d9e1dc;
	--exita-surface: #f5f8f6;
	--exita-green: #1f6b46;
	--exita-green-dark: #154d33;
	--exita-danger: #a32935;
	--exita-warning: #fff5d8;
	--exita-radius: 18px;
}

.exita-app {
	color: var(--exita-ink);
	font-size: 1rem;
	line-height: 1.55;
	margin: 2rem auto;
	max-width: 72rem;
}

.exita-app *,
.exita-app *::before,
.exita-app *::after {
	box-sizing: border-box;
}

.exita-app h1,
.exita-app h2 {
	color: var(--exita-ink);
	line-height: 1.2;
}

.exita-grid {
	display: grid;
	gap: 1rem;
}

.exita-grid--cards,
.exita-grid--pricing {
	grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
}

.exita-card,
.exita-price-card,
.exita-ice-card {
	background: #fff;
	border: 1px solid var(--exita-line);
	border-radius: var(--exita-radius);
	box-shadow: 0 6px 24px rgb(18 34 27 / 7%);
	padding: 1.25rem;
}

.exita-card__value,
.exita-price {
	color: var(--exita-green-dark);
	font-size: clamp(1.75rem, 4vw, 2.75rem);
	margin: .4rem 0;
}

.exita-ice-card canvas {
	display: block;
	image-rendering: pixelated;
	margin: 1rem 0 .5rem;
	max-width: 11.25rem;
	width: 100%;
}

.exita-ice-card > a {
	display: block;
	margin-top: 1rem;
}

.exita-public-ice { margin-inline: auto; max-width: 46rem; }
.exita-public-ice__card {
	background: linear-gradient(145deg, #ffffff, #f3f8f4);
	border: 1px solid var(--exita-line);
	border-radius: 1.25rem;
	box-shadow: 0 1rem 2.5rem rgba(16, 54, 38, .1);
	display: grid;
	gap: 1rem;
	padding: clamp(1.4rem, 5vw, 2.75rem);
}
.exita-public-ice__card h2 { color: var(--exita-green-dark); font-size: clamp(1.75rem, 5vw, 2.6rem); margin: 0; }
.exita-public-ice__card p { margin: 0; }
.exita-public-ice__prepared { color: var(--exita-green-dark); font-weight: 800; }
.exita-public-ice__prepared::before { content: "✓ "; }
.exita-public-ice__card .exita-button { justify-self: start; }

.exita-unit,
.exita-price span {
	font-size: .45em;
	font-weight: 600;
}

.exita-form {
	display: grid;
	gap: .65rem;
	max-width: 44rem;
}

.exita-form label > span,
.exita-form > label:not(.exita-check) {
	font-weight: 650;
}

.exita-form input:not([type="checkbox"]),
.exita-form select,
.exita-form textarea {
	background: #fff;
	border: 1px solid #849187;
	border-radius: 8px;
	color: var(--exita-ink);
	font: inherit;
	min-height: 2.9rem;
	padding: .65rem .75rem;
	width: 100%;
}

.exita-form textarea {
	resize: vertical;
}

.exita-form input:focus-visible,
.exita-form select:focus-visible,
.exita-form textarea:focus-visible,
.exita-button:focus-visible,
.exita-app a:focus-visible {
	outline: 3px solid #d4a72c;
	outline-offset: 3px;
}

.exita-button {
	align-items: center;
	background: var(--exita-green);
	border: 0;
	border-radius: 8px;
	color: #fff;
	cursor: pointer;
	display: inline-flex;
	font: inherit;
	font-weight: 700;
	justify-content: center;
	min-height: 2.9rem;
	padding: .65rem 1.1rem;
	width: fit-content;
}

.exita-button:hover {
	background: var(--exita-green-dark);
}

.exita-button--danger {
	background: var(--exita-danger);
}

.exita-button--secondary {
	background: #fff;
	border: 1px solid var(--exita-green);
	color: var(--exita-green-dark);
}

.exita-button--secondary:hover {
	background: var(--exita-surface);
}

.exita-button--small {
	font-size: .875rem;
	min-height: 2.25rem;
	padding: .4rem .7rem;
}

.exita-button-row {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
}

.exita-button[disabled] {
	cursor: wait;
	opacity: .65;
}

.exita-notice:not(:empty),
.exita-warning {
	border-left: 4px solid var(--exita-green);
	border-radius: 4px;
	margin: 1rem 0;
	padding: .8rem 1rem;
}

.exita-notice--success {
	background: #e8f6ed;
}

.exita-notice--warning,
.exita-warning {
	background: var(--exita-warning);
	border-left-color: #9b6b00;
}

.exita-notice--error {
	background: #fdebed;
	border-left-color: var(--exita-danger);
}

.exita-check {
	align-items: flex-start;
	display: flex;
	gap: .6rem;
}

.exita-check input {
	margin-top: .3rem;
}

.exita-honeypot {
	height: 1px;
	left: -10000px;
	overflow: hidden;
	position: absolute;
	top: auto;
	width: 1px;
}

.exita-progress {
	background: var(--exita-line);
	border-radius: 999px;
	height: .65rem;
	margin: 1rem 0 1.5rem;
	overflow: hidden;
}

.exita-progress span {
	background: var(--exita-green);
	display: block;
	height: 100%;
	transition: width .25s ease;
}

.exita-question {
	background: var(--exita-surface);
	border: 1px solid var(--exita-line);
	border-radius: var(--exita-radius);
	margin-bottom: 1rem;
	padding: 1rem;
}

.exita-question legend {
	font-weight: 700;
}

.exita-question__actions {
	display: grid;
	gap: .4rem;
	margin-top: .75rem;
}

.exita-table-wrap {
	overflow-x: auto;
}

.exita-table {
	border-collapse: collapse;
	min-width: 38rem;
	width: 100%;
}

.exita-table th,
.exita-table td {
	border-bottom: 1px solid var(--exita-line);
	padding: .7rem;
	text-align: left;
}

.exita-settings-panel {
	border-top: 1px solid var(--exita-line);
	margin-top: 2rem;
	padding-top: 1.25rem;
}

.exita-dashboard .exita-settings-panel.exita-app {
	margin-left: 0;
	margin-right: 0;
}

.exita-enrollment-qr {
	background: #fff;
	border: 1px solid var(--exita-line);
	display: block;
	image-rendering: pixelated;
	margin: 1rem 0;
	max-width: 15rem;
	padding: .5rem;
	width: 100%;
}

.exita-secret,
.exita-recovery-codes code {
	background: var(--exita-surface);
	border-radius: 4px;
	font-size: .95rem;
	padding: .2rem .35rem;
	word-break: break-all;
}

.exita-recovery-codes {
	columns: 2 12rem;
	list-style: none;
	margin: 0 0 1rem;
	padding: 0;
}

.exita-recovery-codes li {
	margin-bottom: .45rem;
}

.exita-danger-zone {
	border: 1px solid #e3b8bd;
	border-radius: var(--exita-radius);
	margin-top: 1rem;
	max-width: 44rem;
	padding: 1rem;
}

.exita-danger-zone summary {
	color: var(--exita-danger);
	cursor: pointer;
	font-weight: 700;
}

.exita-fineprint,
.exita-form small {
	color: var(--exita-muted);
	font-size: .875rem;
}

.exita-kicker {
	color: var(--exita-green);
	font-size: .75rem;
	font-weight: 800;
	letter-spacing: .12em;
	margin: 0 0 .35rem;
	text-transform: uppercase;
}

.exita-dashboard__header,
.exita-interview__header,
.exita-dashboard__control {
	align-items: start;
	display: flex;
	gap: 1.5rem;
	justify-content: space-between;
	margin-bottom: 1.5rem;
}

.exita-dashboard__header h2,
.exita-interview__header h2,
.exita-death-case__header h2 {
	font-size: clamp(1.8rem, 4vw, 3rem);
	margin: 0;
}

.exita-dashboard__metrics {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 16.5rem), 1fr));
	margin-bottom: 1.5rem;
}

.exita-dashboard__metrics > .exita-card { min-width: 0; }

.exita-dashboard__metrics h2 {
	font-size: clamp(1.25rem, 1.8vw, 1.5rem);
	-webkit-hyphens: none;
	hyphens: none;
	word-break: normal;
	overflow-wrap: normal;
	text-wrap: balance;
}

.exita-dashboard__control,
.exita-invitation,
.exita-case-preview,
[data-exita-death-case-panel] {
	background: var(--exita-surface);
	border: 1px solid var(--exita-line);
	border-radius: var(--exita-radius);
	margin: 1.5rem 0;
	padding: clamp(1rem, 3vw, 2rem);
}

.exita-dashboard__control > div { flex: 1 1 58%; }

.exita-dashboard__facts,
.exita-case-preview__grid {
	display: grid;
	gap: .75rem;
	grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr));
	margin: 1.25rem 0 0;
}

.exita-dashboard__facts div,
.exita-case-preview__grid p {
	background: #fff;
	border: 1px solid var(--exita-line);
	border-radius: 12px;
	margin: 0;
	padding: .9rem;
}

.exita-dashboard__facts dt,
.exita-case-preview__grid span { color: var(--exita-muted); display: block; font-size: .8rem; }
.exita-dashboard__facts dd,
.exita-case-preview__grid strong { color: var(--exita-green-dark); font-size: 1.45rem; font-weight: 800; margin: .2rem 0 0; }

.exita-dashboard__quicklinks {
	display: grid;
	flex: 0 1 22rem;
	gap: .65rem;
}

.exita-dashboard__quicklinks a {
	background: #fff;
	border: 1px solid var(--exita-line);
	border-radius: 12px;
	color: var(--exita-ink);
	display: grid;
	padding: .8rem 1rem;
	text-decoration: none;
}

.exita-dashboard__quicklinks a:hover { border-color: var(--exita-green); }
.exita-dashboard__quicklinks span { color: var(--exita-muted); font-size: .85rem; }
.exita-permissions { border: 1px solid var(--exita-line); border-radius: 12px; display: grid; gap: .55rem; padding: 1rem; }
.exita-permissions legend { font-weight: 750; padding: 0 .3rem; }
.exita-consent-card { background: var(--exita-surface); border: 1px solid var(--exita-line); border-radius: 12px; padding: 1rem; }
.exita-interview__save-state { color: var(--exita-muted); font-size: .875rem; }
.exita-progress-label { margin-top: -1rem; }

.exita-case-steps {
	display: grid;
	gap: .5rem;
	grid-template-columns: repeat(6, 1fr);
	list-style: none;
	margin: 1.5rem 0;
	padding: 0;
}

.exita-case-steps li { border-top: 3px solid var(--exita-line); color: var(--exita-muted); font-size: .8rem; padding-top: .55rem; }
.exita-case-steps li.is-complete { border-color: var(--exita-green); color: var(--exita-green-dark); }
.exita-case-steps li.is-current { border-color: #d4a72c; color: var(--exita-ink); font-weight: 800; }
.exita-case-status { background: #e8f6ed; border-radius: 999px; color: var(--exita-green-dark); display: inline-block; font-weight: 750; padding: .35rem .75rem; }
[data-exita-death-case-panel] > .exita-form { margin-top: 1.25rem; }

@media (min-width: 120rem) {
	.exita-app { max-width: 90rem; }
	.exita-dashboard__metrics { grid-template-columns: repeat(3, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
	.exita-progress span {
		transition: none;
	}
}

@media (max-width: 40rem) {
	.exita-app {
		margin: 1rem auto;
	}

	.exita-button {
		width: 100%;
	}

	.exita-dashboard__header,
	.exita-interview__header,
	.exita-dashboard__control { display: grid; }
	.exita-dashboard__quicklinks { width: 100%; }
	.exita-case-steps { grid-template-columns: repeat(2, 1fr); }
}

@media print {
	.exita-secret,
	.exita-recovery-codes {
		display: none;
	}
}
