/* ------------------------------------------------------------------ shell --
   The portal page's own document (templates/portal-page.php). Scoped to
   body.eha-portal-page, which only that template sets; the theme's other
   pages never see these rules. */

body.eha-portal-page {
	margin: 0;
	padding: 0;
	background: #f4f7fa;
	color: #172334;
	font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	line-height: 1.5;
	-webkit-text-size-adjust: 100%;
}

body.eha-portal-page > * {
	box-sizing: border-box;
}

.eha-portal-header {
	background: #12345b;
	color: #fff;
}

.eha-portal-header__inner,
.eha-portal-footer__inner,
.eha-portal-page__content {
	box-sizing: border-box;
	max-width: 1120px;
	margin: 0 auto;
	padding: 0 16px;
}

.eha-portal-header__inner {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 24px;
	align-items: center;
	justify-content: space-between;
	min-height: 64px;
	padding-top: 10px;
	padding-bottom: 10px;
}

.eha-portal-header__brand {
	display: inline-flex;
	flex-direction: column;
	gap: 1px;
	color: #fff;
	text-decoration: none;
}

.eha-portal-header__brand:hover,
.eha-portal-header__brand:focus {
	color: #fff;
}

.eha-portal-header__name {
	font-family: Georgia, "Times New Roman", serif;
	font-size: 20px;
	font-weight: 800;
	line-height: 1.15;
}

.eha-portal-header__sub {
	color: #dce7f3;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.eha-portal-header__nav {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 6px;
}

.eha-portal-header__nav a {
	display: inline-block;
	padding: 8px 12px;
	border-radius: 6px;
	color: #fff;
	font-weight: 800;
	text-decoration: none;
}

.eha-portal-header__nav a:hover {
	background: rgba(255, 255, 255, 0.1);
}

.eha-portal-page__content {
	padding-top: 0;
	padding-bottom: 0;
}

/* The portal supplies its own gutters; the shell adds none twice. */
.eha-portal-page__content > .eha-applicant-portal {
	padding-top: 24px;
	padding-left: 0;
	padding-right: 0;
}

.eha-portal-footer {
	margin-top: 8px;
	border-top: 4px solid #12345b;
	background: #fff;
	color: #172334;
}

.eha-portal-footer:focus {
	outline: none;
}

.eha-portal-footer__inner {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px 32px;
	padding-top: 28px;
	padding-bottom: 32px;
}

.eha-portal-footer__block--wide {
	grid-column: 1 / -1;
	padding-top: 16px;
	border-top: 1px solid #d9e1ea;
}

.eha-portal-footer__heading {
	margin: 0 0 8px;
	color: #12345b;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 18px;
	line-height: 1.25;
}

.eha-portal-footer p,
.eha-portal-footer address {
	margin: 0 0 8px;
	font-size: 15px;
	font-style: normal;
	line-height: 1.55;
}

.eha-portal-footer a {
	color: #12345b;
	font-weight: 700;
}

.eha-portal-header a:focus,
.eha-portal-footer a:focus {
	outline: 3px solid #71b37a;
	outline-offset: 2px;
}

/* One skip link: off screen until a keyboard reaches it, then the first
   thing on the page. Its target (main#eha-main) carries tabindex="-1" so
   focus lands at the start of the portal content. */
.eha-skip-link {
	position: absolute;
	top: -100px;
	left: 8px;
	z-index: 1000;
	padding: 10px 14px;
	border-radius: 6px;
	background: #12345b;
	color: #fff;
	font-weight: 800;
	text-decoration: none;
}

.eha-skip-link:focus {
	top: 8px;
	outline: 3px solid #71b37a;
	outline-offset: 2px;
}

.eha-applicant-portal:focus {
	outline: none;
}

/* ----------------------------------------------------------------- portal -- */

.eha-applicant-portal {
	--eha-navy: #12345b;
	--eha-ink: #172334;
	--eha-muted: #5f6b7a;
	--eha-line: #d9e1ea;
	--eha-soft: #f4f7fa;
	--eha-green: #2f7d46;
	--eha-green-soft: #eaf6ee;
	--eha-gold: #a76b16;
	--eha-gold-soft: #fff7e6;
	--eha-red: #b42318;
	--eha-red-soft: #fff1ef;
	box-sizing: border-box;
	max-width: 1120px;
	margin: 0 auto;
	padding: 28px 16px 44px;
	color: var(--eha-ink);
	font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	line-height: 1.5;
}

.eha-applicant-portal *,
.eha-applicant-portal *::before,
.eha-applicant-portal *::after {
	box-sizing: border-box;
}

.eha-applicant-portal > h1 {
	margin: 0 0 18px;
	padding: 0 0 12px;
	border-bottom: 3px solid var(--eha-navy);
	color: var(--eha-navy);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(26px, 3.2vw, 34px);
	line-height: 1.15;
	letter-spacing: 0;
}

.eha-panel {
	margin: 0 0 18px;
	padding: 22px;
	border: 1px solid var(--eha-line);
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 10px 28px rgba(18, 52, 91, 0.08);
}

.eha-panel h2 {
	margin: 0 0 12px;
	color: var(--eha-navy);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 21px;
	line-height: 1.2;
	letter-spacing: 0;
}

.eha-panel h3 {
	margin: 0 0 8px;
	color: var(--eha-ink);
	font-size: 17px;
	line-height: 1.3;
	letter-spacing: 0;
}

.eha-panel p {
	margin: 0 0 12px;
}

.eha-panel--application {
	border-top: 4px solid var(--eha-green);
}

.eha-panel--compact {
	padding-bottom: 18px;
}

.eha-goal-banner {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 18px;
	align-items: center;
	border-width: 2px;
}

.eha-goal-banner--green {
	border-color: #87c997;
	background: linear-gradient(180deg, #ffffff, #f2fbf5);
}

.eha-goal-banner--yellow {
	border-color: #87c997;
	background: linear-gradient(180deg, #ffffff, #f2fbf5);
}

.eha-goal-banner--red {
	border-color: #e2aaa5;
	background: linear-gradient(180deg, #ffffff, #fff4f2);
}

.eha-goal-banner--gray {
	border-color: #c5cdd6;
	background: linear-gradient(180deg, #ffffff, #f6f8fa);
}

.eha-goal-banner__mark {
	display: grid;
	place-items: center;
	width: 70px;
	height: 70px;
	border-radius: 50%;
	color: #fff;
	font-size: 34px;
	font-weight: 900;
	line-height: 1;
	box-shadow: inset 0 -5px 0 rgba(0, 0, 0, 0.14), 0 8px 20px rgba(18, 52, 91, 0.14);
}

.eha-goal-banner--green .eha-goal-banner__mark {
	background: var(--eha-green);
}

.eha-goal-banner--yellow .eha-goal-banner__mark {
	background: var(--eha-green);
}

.eha-goal-banner--red .eha-goal-banner__mark {
	background: var(--eha-red);
}

.eha-goal-banner--gray .eha-goal-banner__mark {
	background: #657386;
}

.eha-goal-banner__body {
	min-width: 0;
}

.eha-goal-banner__kicker {
	margin: 0 0 4px;
	color: var(--eha-muted);
	font-size: 13px;
	font-weight: 900;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.eha-goal-banner h2 {
	margin-bottom: 6px;
	font-size: clamp(22px, 2.6vw, 30px);
}

.eha-goal-banner p {
	font-size: 16px;
	line-height: 1.55;
}

.eha-goal-banner p:last-child {
	margin-bottom: 0;
}

.eha-goal-progress h2 {
	margin-bottom: 14px;
}

.eha-goal-cards {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.eha-goal-card {
	min-width: 0;
	padding: 14px;
	border: 1px solid var(--eha-line);
	border-top: 5px solid #8792a0;
	border-radius: 8px;
	background: #fff;
}

.eha-goal-card--green {
	border-top-color: var(--eha-green);
}

.eha-goal-card--yellow {
	border-top-color: var(--eha-green);
}

.eha-goal-card--red {
	border-top-color: var(--eha-red);
}

.eha-goal-card--gray {
	border-top-color: #8792a0;
}

.eha-goal-card__label,
.eha-goal-card__detail {
	display: block;
}

.eha-goal-card__label {
	margin-bottom: 8px;
	color: var(--eha-navy);
	font-weight: 900;
}

/* Supporting copy is read, not glanced at: 15px on a 1.5 line, muted but
   still 5:1 against white. */
.eha-goal-card__detail {
	margin-top: 9px;
	color: var(--eha-muted);
	font-size: 15px;
	line-height: 1.5;
}

.eha-status {
	display: inline-flex;
	gap: 6px;
	align-items: center;
	min-height: 28px;
	padding: 4px 9px;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 900;
	line-height: 1.2;
}

.eha-status--green {
	background: var(--eha-green-soft);
	color: #1f6534;
}

.eha-status--yellow {
	background: var(--eha-green-soft);
	color: #1f6534;
}

.eha-status--red {
	background: var(--eha-red-soft);
	color: #8b1b12;
}

.eha-status--gray {
	background: #eef2f6;
	color: #4f5e70;
}

.eha-status__glyph {
	font-size: 15px;
	line-height: 1;
}

/* The Goal: Green disclaimer is a required statement, not fine print. */
.eha-status__disclaimer,
.eha-goal-disclaimer {
	color: var(--eha-muted);
	font-size: 15px;
	line-height: 1.55;
}

.eha-status__disclaimer {
	display: block;
	margin-top: 6px;
}

.eha-goal-disclaimer {
	margin: 14px 0 0;
	padding-top: 12px;
	border-top: 1px solid var(--eha-line);
}

.eha-summary-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin: 0;
}

.eha-detail-panel {
	padding: 0;
	overflow: hidden;
}

/* Section summary: title, short state, one fixed-size control on the right.
   A grid with named areas, so the control keeps its column whatever the
   title and state do; on a phone the state moves under the title and the
   control spans both rows instead of dropping to a line of its own. */
.eha-detail-summary {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto 30px;
	grid-template-areas: "title meta icon";
	gap: 4px 14px;
	align-items: center;
	min-height: 64px;
	padding: 16px 22px;
	cursor: pointer;
	list-style: none;
}

.eha-detail-summary::-webkit-details-marker,
.eha-detail-summary::marker {
	display: none;
	content: "";
}

.eha-detail-summary::after {
	content: "+";
	display: grid;
	grid-area: icon;
	align-self: center;
	place-items: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--eha-soft);
	color: var(--eha-navy);
	font-size: 22px;
	font-weight: 900;
	line-height: 1;
}

.eha-detail-panel[open] .eha-detail-summary::after {
	content: "\2212";
}

.eha-detail-summary:focus-visible {
	outline: 3px solid #71b37a;
	outline-offset: -3px;
}

.eha-detail-summary__title {
	grid-area: title;
	min-width: 0;
	color: var(--eha-navy);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 20px;
	font-weight: 800;
	line-height: 1.2;
	overflow-wrap: anywhere;
}

.eha-detail-summary__meta {
	grid-area: meta;
	min-width: 0;
	color: var(--eha-muted);
	font-size: 15px;
	font-weight: 800;
	line-height: 1.4;
	text-align: right;
	overflow-wrap: anywhere;
}

.eha-detail-panel__body {
	padding: 0 22px 22px;
	border-top: 1px solid var(--eha-line);
}

.eha-detail-panel__body > :first-child {
	margin-top: 18px;
}

.eha-summary-list dt {
	margin: 0 0 4px;
	color: var(--eha-muted);
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
}

.eha-summary-list dd {
	margin: 0;
	padding: 12px 14px;
	border: 1px solid var(--eha-line);
	border-radius: 8px;
	background: var(--eha-soft);
	color: var(--eha-navy);
	font-size: 20px;
	font-weight: 800;
}

.eha-form {
	display: grid;
	gap: 14px;
}

.eha-field,
.eha-fieldset {
	min-width: 0;
}

.eha-fieldset {
	margin: 0;
	padding: 16px;
	border: 1px solid var(--eha-line);
	border-radius: 8px;
	background: #fbfcfe;
}

.eha-legend,
.eha-label {
	color: var(--eha-ink);
	font-weight: 800;
}

.eha-label {
	display: block;
	margin: 0 0 6px;
}

.eha-input,
.eha-form input[type="email"],
.eha-form input[type="password"],
.eha-form input[type="text"],
.eha-form input[type="date"],
.eha-form input[type="number"],
.eha-form input[type="file"],
.eha-form select,
.eha-form textarea {
	width: 100%;
	min-height: 44px;
	margin: 0;
	padding: 9px 11px;
	border: 1px solid #c9d3df;
	border-radius: 6px;
	background: #fff;
	color: var(--eha-ink);
	font: inherit;
}

.eha-form textarea {
	min-height: 108px;
	resize: vertical;
}

.eha-choice {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	margin: 12px 0 0;
	padding: 10px 12px;
	border: 1px solid var(--eha-line);
	border-radius: 8px;
	background: #fff;
}

.eha-choice input {
	width: auto;
	min-height: 0;
	margin-top: 0.25em;
}

.eha-button,
.eha-form button,
.eha-form input[type="submit"] {
	appearance: none;
	border: 0;
	border-radius: 6px;
	background: var(--eha-navy);
	color: #fff;
	cursor: pointer;
	font: inherit;
	font-weight: 800;
	justify-self: start;
	min-height: 42px;
	padding: 10px 18px;
	text-decoration: none;
}

.eha-button:hover,
.eha-form button:hover,
.eha-form input[type="submit"]:hover {
	background: #0b2544;
	color: #fff;
}

.eha-applicant-portal a {
	color: var(--eha-navy);
	font-weight: 700;
}

.eha-applicant-portal input:focus,
.eha-applicant-portal select:focus,
.eha-applicant-portal textarea:focus,
.eha-applicant-portal button:focus,
.eha-applicant-portal a:focus {
	outline: 3px solid #71b37a;
	outline-offset: 2px;
}

.eha-notice {
	margin: 0 0 18px;
	padding: 13px 16px;
	border-left: 5px solid var(--eha-navy);
	border-radius: 6px;
	background: var(--eha-soft);
	color: var(--eha-ink);
	font-weight: 650;
}

.eha-notice--success {
	border-left-color: var(--eha-green);
	background: var(--eha-green-soft);
}

.eha-notice--error {
	border-left-color: var(--eha-red);
	background: var(--eha-red-soft);
}

.eha-notice--warning {
	border-left-color: var(--eha-gold);
	background: var(--eha-gold-soft);
}

.eha-preferences-form {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.eha-preferences-form .eha-button,
.eha-current-preferences {
	grid-column: 1 / -1;
}

.eha-current-preferences,
.eha-preference__status {
	display: inline-block;
	padding: 6px 10px;
	border-radius: 999px;
	background: var(--eha-green-soft);
	color: #1f6534;
	font-weight: 800;
}

.eha-preference__test {
	color: var(--eha-muted);
}

.eha-household-member {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px 14px;
}

.eha-household-member .eha-legend {
	grid-column: 1 / -1;
}

.eha-household-summary,
.eha-message-list,
.eha-accommodation-list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 8px;
}

.eha-household-summary li,
.eha-message-list li,
.eha-accommodation-list li {
	padding: 10px 12px;
	border: 1px solid var(--eha-line);
	border-radius: 8px;
	background: var(--eha-soft);
}

.eha-documents-summary {
	display: inline-flex;
	margin: 0 0 12px;
	padding: 7px 12px;
	border-radius: 999px;
	background: var(--eha-navy);
	color: #fff;
	font-weight: 800;
}

.eha-checklist {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
	margin: 16px 0 0;
	padding: 0;
	list-style: none;
}

.eha-checklist-item {
	min-width: 0;
	padding: 16px;
	border: 1px solid var(--eha-line);
	border-left: 5px solid var(--eha-gold);
	border-radius: 8px;
	background: #fff;
}

.eha-checklist-item--satisfied {
	border-left-color: var(--eha-green);
	background: #fbfffc;
}

.eha-checklist-status {
	display: inline-block;
	margin: 0 0 10px;
	padding: 4px 9px;
	border-radius: 999px;
	background: var(--eha-gold-soft);
	color: #74490d;
	font-size: 13px;
	font-weight: 800;
}

.eha-checklist-item--satisfied .eha-checklist-status {
	background: var(--eha-green-soft);
	color: #1f6534;
}

.eha-checklist-detail,
.eha-checklist-reason,
.eha-checklist-cite {
	color: var(--eha-muted);
}

.eha-checklist-more {
	margin: 4px 0 0;
}

.eha-checklist-more summary {
	color: var(--eha-navy);
	cursor: pointer;
	font-weight: 800;
}

.eha-checklist-more p {
	margin-top: 8px;
	margin-bottom: 0;
}

.eha-checklist-files {
	margin: 10px 0 0;
	padding-left: 18px;
}

.eha-upload-form {
	margin-top: 12px;
	padding-top: 12px;
	border-top: 1px solid var(--eha-line);
}

.eha-panel--submit {
	border-color: #bed8c5;
	background: linear-gradient(180deg, #fff, #f7fbf8);
}

/* Logged out: sign in is the primary panel, create account is plainly for
   new applicants. Different top rules and button weights so the two never
   read as the same form. */
.eha-panel--signin {
	border-top: 4px solid var(--eha-navy);
}

.eha-panel--register {
	border-top: 4px solid var(--eha-line);
	background: #fbfcfe;
}

.eha-panel__kicker {
	margin: 0 0 4px;
	color: var(--eha-muted);
	font-size: 13px;
	font-weight: 900;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.eha-panel__lead {
	margin: 0 0 14px;
	color: var(--eha-ink);
	font-size: 15px;
	line-height: 1.55;
}

.eha-panel--claim {
	border-top: 4px solid var(--eha-gold);
}

.eha-panel--imported {
	border-top: 4px solid var(--eha-navy);
	background: #fbfcfe;
}

.eha-signin-help {
	margin: 12px 0 0;
	font-size: 15px;
}

.eha-button--secondary,
.eha-form .eha-button--secondary {
	background: #fff;
	border: 2px solid var(--eha-navy);
	color: var(--eha-navy);
}

.eha-button--secondary:hover,
.eha-form .eha-button--secondary:hover {
	background: var(--eha-soft);
	color: var(--eha-navy);
}

@media (max-width: 760px) {
	.eha-applicant-portal {
		padding: 18px 10px 32px;
	}

	.eha-applicant-portal > h1 {
		font-size: 24px;
	}

	.eha-panel {
		padding: 16px;
	}

	.eha-summary-list,
	.eha-goal-banner,
	.eha-preferences-form,
	.eha-household-member,
	.eha-checklist {
		grid-template-columns: 1fr;
	}

	.eha-detail-summary {
		grid-template-columns: minmax(0, 1fr) 30px;
		grid-template-areas:
			"title icon"
			"meta icon";
		gap: 2px 12px;
		padding: 14px 16px;
	}

	.eha-detail-summary__title {
		font-size: 18px;
	}

	.eha-detail-summary__meta {
		text-align: left;
	}

	.eha-portal-footer__inner {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.eha-portal-page__content > .eha-applicant-portal {
		padding-top: 16px;
	}

	.eha-detail-panel__body {
		padding: 0 16px 16px;
	}

	.eha-goal-banner__mark {
		width: 58px;
		height: 58px;
		font-size: 28px;
	}

	.eha-goal-cards {
		grid-template-columns: 1fr;
	}
}

/* ---------------------------------------------------------------------
 * 0.8.1 — household add/remove controls, requested documents, staff notice
 * ------------------------------------------------------------------- */

.eha-household-help,
.eha-household-limit {
	margin: 0 0 12px;
	color: var(--eha-muted);
	font-size: 15px;
	line-height: 1.5;
}

.eha-household-member__remove {
	grid-column: 1 / -1;
	display: flex;
	justify-content: flex-end;
}

.eha-household-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
	margin-top: 14px;
}

.eha-household-actions .eha-button {
	margin: 0;
}

.eha-checklist-item--requested {
	border-color: var(--eha-red, #b3261e);
}

.eha-checklist-item--requested .eha-checklist-status {
	color: var(--eha-red, #b3261e);
	font-weight: 700;
}

.eha-panel--staff .eha-button {
	display: inline-block;
}

@media (max-width: 760px) {
	.eha-household-actions {
		flex-direction: column;
		align-items: stretch;
	}

	.eha-household-actions .eha-button {
		width: 100%;
		text-align: center;
	}

	.eha-household-member__remove {
		justify-content: stretch;
	}

	.eha-household-member__remove .eha-button {
		width: 100%;
		text-align: center;
	}
}

/* A link styled as a button keeps the button's colours: the portal's own
 * link rule is more specific than .eha-button and was painting the staff
 * notice's link navy-on-navy. */
.eha-applicant-portal a.eha-button,
.eha-applicant-portal a.eha-button:visited {
	display: inline-flex;
	align-items: center;
	color: #fff;
	text-decoration: none;
}

.eha-applicant-portal a.eha-button:hover,
.eha-applicant-portal a.eha-button:focus {
	color: #fff;
	text-decoration: underline;
}

/* ---------------------------------------------------------------------
 * 0.8.2 — certification before submit, rejected documents
 * ------------------------------------------------------------------- */

.eha-certification {
	margin: 0 0 16px;
}

.eha-certification__statement {
	margin: 0 0 14px;
	padding: 14px 16px;
	border-left: 4px solid var(--eha-navy);
	background: var(--eha-soft);
	font-size: 16px;
	line-height: 1.6;
}

.eha-field--choice .eha-choice {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	padding: 12px 14px;
	border: 1px solid var(--eha-line);
	border-radius: 8px;
	background: #fff;
	font-weight: 700;
	cursor: pointer;
}

.eha-field--choice .eha-choice input {
	margin-top: 4px;
	width: 20px;
	height: 20px;
	flex: 0 0 auto;
}

.eha-field--error .eha-choice {
	border-color: var(--eha-red);
	border-width: 2px;
}

.eha-certification__record {
	color: var(--eha-muted);
}

.eha-checklist-item--rejected {
	border-color: var(--eha-red);
}

.eha-checklist-item--rejected .eha-checklist-status {
	color: var(--eha-red);
	font-weight: 700;
}

/* ---------------------------------------------------------------------
 * 0.8.4 — "Signed in as … · Sign out" on the applicant portal
 * In the shell header it sits after the navigation; standalone it sits
 * under the H1. The email may be long: it wraps, never overflows.
 * ------------------------------------------------------------------- */

.eha-account-bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 14px;
	min-width: 0;
	font-size: 15px;
	line-height: 1.4;
}

.eha-portal-header .eha-account-bar {
	flex-basis: 100%;
	justify-content: flex-end;
	color: #fff;
}

.eha-account-bar__who {
	min-width: 0;
	overflow-wrap: anywhere;
}

.eha-account-bar__who strong {
	font-weight: 700;
}

.eha-account-bar__signout {
	flex: 0 0 auto;
	padding: 6px 12px;
	border: 2px solid currentColor;
	border-radius: 6px;
	font-weight: 800;
	text-decoration: none;
	color: inherit;
}

.eha-portal-header .eha-account-bar__signout {
	color: #fff;
}

.eha-account-bar__signout:hover,
.eha-account-bar__signout:focus {
	text-decoration: underline;
}

.eha-applicant-portal > .eha-account-bar {
	margin: 0 0 16px;
	padding: 10px 14px;
	border: 1px solid var(--eha-line);
	border-radius: 8px;
	background: var(--eha-soft);
	color: var(--eha-ink, #172334);
}

@media (max-width: 760px) {
	.eha-portal-header .eha-account-bar {
		justify-content: space-between;
	}

	.eha-account-bar__signout {
		width: 100%;
		text-align: center;
	}
}

/* ---------------------------------------------------------------------
 * 0.8.5 — income/assets/expenses summary panel, household review note
 * ------------------------------------------------------------------- */

.eha-intake-help,
.eha-household-review {
	margin: 0 0 14px;
	color: var(--eha-muted);
	font-size: 15px;
	line-height: 1.55;
}

.eha-household-review {
	padding: 10px 14px;
	border-left: 4px solid var(--eha-navy, #12345b);
	background: #f4f7fb;
	color: var(--eha-ink, #1b2733);
	border-radius: 0 6px 6px 0;
}

.eha-intake-form .eha-hint {
	margin: 14px 0 4px;
	color: var(--eha-muted);
	font-size: 14px;
	line-height: 1.5;
}

.eha-intake-form fieldset {
	margin: 0 0 8px;
}

.eha-summary-list {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 8px 16px;
	margin: 0;
}

.eha-summary-list dt {
	margin: 0;
	font-weight: 500;
	line-height: 1.45;
}

.eha-summary-list dd {
	margin: 0;
	font-weight: 700;
	white-space: nowrap;
}

@media (max-width: 760px) {
	.eha-summary-list {
		grid-template-columns: minmax(0, 1fr);
	}
	.eha-summary-list dd {
		margin: 0 0 8px;
	}
}

/* ---------------------------------------------------------------------
 * 0.9.0 — documents required before submission: one row per person,
 * the optional categories collapsed, the no-income statement.
 * ------------------------------------------------------------------- */
.eha-checklist-heading {
	margin: 18px 0 4px;
	color: var(--eha-navy);
	font-size: 18px;
}

.eha-checklist-people {
	margin: 10px 0 0;
	padding: 0;
	list-style: none;
}

.eha-checklist-person {
	padding: 10px 0;
	border-top: 1px solid var(--eha-line);
}

.eha-checklist-person__name {
	margin: 0 0 6px;
	overflow-wrap: anywhere;
}

.eha-checklist-person .eha-checklist-status {
	margin: 0;
}

.eha-checklist-person--satisfied .eha-checklist-status {
	background: var(--eha-green-soft);
	color: #1f6534;
}

.eha-checklist-person .eha-upload-form {
	margin-top: 8px;
	padding-top: 0;
}

.eha-checklist-note {
	margin: 0 0 8px;
	font-weight: 700;
}

.eha-checklist-optional {
	margin: 18px 0 0;
}

.eha-checklist-optional > summary {
	color: var(--eha-navy);
	cursor: pointer;
	font-weight: 800;
}

.eha-zero-income {
	margin-top: 12px;
}

.eha-zero-income__statement {
	margin: 8px 0 12px;
	padding: 10px 12px;
	border-left: 4px solid var(--eha-navy);
	background: var(--eha-soft);
}

.eha-zero-income__title {
	margin: 0;
	font-size: 16px;
}

/* 0.9.2 — "Can't provide this? Ask for an exception" */
.eha-exception {
	margin-top: 8px;
}

.eha-exception > summary {
	color: var(--eha-navy);
	cursor: pointer;
	font-weight: 700;
}

.eha-exception__help {
	margin: 8px 0;
	color: var(--eha-muted);
}
