/*
 * GHA Fee Portal — only the components the theme's main.css does not already
 * provide. Everything else reuses .container, .section, .btn, .field,
 * .contact-form and .fancy-table from the theme.
 */

body.gha-portal-page .prose {
	max-width: 1120px;
}

.gha-portal {
	margin: 0 auto;
	max-width: 760px;
}

.gha-lead {
	color: var(--muted);
	margin-bottom: 24px;
}

.gha-hint {
	color: var(--muted);
	font-size: 0.9rem;
	margin: 8px 0 0;
}

.gha-hint--muted {
	font-size: 0.85rem;
	margin-top: 16px;
}

.gha-service-tag {
	color: var(--muted);
	font-size: 0.95rem;
	margin-bottom: 16px;
}

.gha-card {
	margin-bottom: 20px;
}

.gha-card__title {
	font-size: 1.1rem;
	margin: 0 0 16px;
}

/* ---- Step indicator -------------------------------------------------- */

.gha-steps {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 18px;
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
}

.gha-steps__item {
	align-items: center;
	color: var(--muted);
	display: flex;
	font-size: 0.85rem;
	gap: 8px;
}

.gha-steps__num {
	align-items: center;
	background: var(--bg-soft);
	border: 1px solid var(--line);
	border-radius: 50%;
	display: inline-flex;
	height: 26px;
	justify-content: center;
	width: 26px;
}

.gha-steps__item.is-now {
	color: var(--ink);
	font-weight: 600;
}

.gha-steps__item.is-now .gha-steps__num,
.gha-steps__item.is-done .gha-steps__num {
	background: var(--c-primary);
	border-color: var(--c-primary);
	color: #fff;
}

.gha-steps__item.is-done {
	color: var(--ink);
}

/* ---- Service tiles --------------------------------------------------- */

.gha-tiles {
	display: grid;
	gap: 18px;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.gha-tiles--one {
	grid-template-columns: minmax(0, 420px);
}

.gha-tile {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	box-shadow: var(--shadow-sm);
	display: flex;
	flex-direction: column;
	padding: 24px;
}

.gha-tile__title {
	font-size: 1.05rem;
	margin: 0 0 10px;
}

.gha-tile__desc {
	color: var(--muted);
	flex: 1;
	font-size: 0.92rem;
	margin: 0 0 18px;
}

.gha-tile__closed {
	color: var(--muted);
	font-size: 0.9rem;
	margin: 0;
}

.gha-tile form {
	margin: 0;
}

/* ---- Fields the theme does not style -------------------------------- */

.field select,
.field input[type="number"],
.field input[type="tel"] {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 10px;
	color: var(--ink);
	font: inherit;
	padding: 12px 14px;
	width: 100%;
}

.field select:focus,
.field input[type="number"]:focus,
.field input[type="tel"]:focus {
	border-color: var(--c-primary);
	outline: none;
}

.field--choice {
	display: block;
}

.gha-label {
	display: block;
	font-weight: 600;
	margin-bottom: 10px;
}

.gha-radio {
	align-items: flex-start;
	border: 1px solid var(--line);
	border-radius: 10px;
	cursor: pointer;
	display: flex;
	gap: 12px;
	margin-bottom: 10px;
	padding: 14px 16px;
}

.gha-radio:hover {
	border-color: var(--c-primary);
}

.gha-radio input {
	margin-top: 3px;
}

.gha-radio small {
	color: var(--muted);
	display: block;
	font-size: 0.85rem;
}

.gha-otp-input {
	font-size: 1.6rem;
	letter-spacing: 0.4em;
	text-align: center;
}

/* ---- Alerts ---------------------------------------------------------- */

.gha-alert {
	border: 1px solid var(--line);
	border-left-width: 4px;
	border-radius: 10px;
	margin: 0 0 20px;
	padding: 14px 16px;
}

.gha-alert--err {
	background: #fdf1f1;
	border-color: #d5555b;
}

.gha-alert--ok {
	background: #eefaf3;
	border-color: #2f9e68;
}

.gha-alert--info {
	background: #fff8e6;
	border-color: #d9a406;
}

.gha-alert code {
	background: rgba(0, 0, 0, 0.06);
	font-size: 1.05rem;
	letter-spacing: 0.15em;
	padding: 2px 6px;
}

/* ---- School details and summary -------------------------------------- */

.gha-meta {
	border-top: 1px solid var(--line);
	display: grid;
	gap: 0;
	grid-template-columns: 180px 1fr;
	margin: 0 0 8px;
}

.gha-meta dt {
	border-bottom: 1px solid var(--line);
	color: var(--muted);
	font-size: 0.9rem;
	padding: 10px 0;
}

.gha-meta dd {
	border-bottom: 1px solid var(--line);
	margin: 0;
	padding: 10px 0;
}

.gha-summary {
	margin-bottom: 20px;
	width: 100%;
}

.gha-summary th {
	color: var(--muted);
	font-weight: 500;
	text-align: left;
	white-space: nowrap;
	width: 200px;
}

.gha-summary small {
	color: var(--muted);
}

.gha-summary__total th,
.gha-summary__total td {
	font-size: 1.15rem;
	font-weight: 700;
}

/* ---- Actions --------------------------------------------------------- */

.gha-actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin-top: 20px;
}

.gha-subactions {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
	margin-top: 16px;
}

.gha-subactions form {
	margin: 0;
}

.gha-link {
	background: none;
	border: 0;
	color: var(--c-primary);
	cursor: pointer;
	font: inherit;
	padding: 0;
	text-decoration: underline;
}

.gha-link:disabled {
	color: var(--muted);
	cursor: default;
}

/* ---- Payment placeholder --------------------------------------------- */

.gha-placeholder {
	background: var(--bg-tint, var(--bg-soft));
	border: 2px dashed var(--c-primary);
	border-radius: var(--radius);
	padding: 20px 22px;
}

.gha-placeholder h4 {
	margin: 0 0 8px;
}

.gha-placeholder p {
	color: var(--muted);
	margin: 0;
}

@media (max-width: 600px) {
	.gha-meta {
		grid-template-columns: 1fr;
	}

	.gha-meta dt {
		border-bottom: 0;
		padding-bottom: 0;
	}

	.gha-summary th {
		width: 120px;
	}
}

@media print {
	.gha-steps,
	.gha-actions--print,
	.site-header,
	.site-footer,
	.page-hero {
		display: none !important;
	}
}

/* ---- Pay now / receipt ------------------------------------------------ */

.gha-pay {
	margin-top: 20px;
}

.gha-pay .btn {
	width: 100%;
	justify-content: center;
}

.gha-pay .gha-hint {
	margin-top: 10px;
}

.gha-gtse-count {
	margin-bottom: 18px;
}

.gha-receipt__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
}

.gha-receipt__org {
	color: var(--muted);
	margin: 0;
}

.gha-receipt__link {
	word-break: break-all;
}

@media print {
	body.gha-portal-page .site-header,
	body.gha-portal-page .site-footer,
	body.gha-portal-page .page-hero,
	body.gha-portal-page .gha-actions,
	body.gha-portal-page .gha-steps,
	body.gha-portal-page .gha-receipt__link,
	body.gha-portal-page .gha-alert {
		display: none !important;
	}

	body.gha-portal-page .gha-card {
		border: 1px solid #000;
		box-shadow: none;
	}
}
