/* CIACE Registry: front-end components. Scoped to .ciace-* classes so the theme stays in charge of everything else. */

.ciace-form,
.ciace-verify,
.ciace-directory {
	--ciace-navy: #14284b;
	--ciace-gold: #b8913a;
	--ciace-ink: #1d2433;
	--ciace-muted: #5b6577;
	--ciace-line: #d9dde5;
	--ciace-soft: #f5f6f9;
	--ciace-ok-bg: #e7f5ec;
	--ciace-ok: #155a32;
	--ciace-warn-bg: #fdf3dc;
	--ciace-warn: #7a4b00;
	--ciace-bad-bg: #fbe8e8;
	--ciace-bad: #8a1c1c;
	color: var(--ciace-ink);
	max-width: 860px;
}

.ciace-form *,
.ciace-verify *,
.ciace-directory * {
	box-sizing: border-box;
}

/* Fields */
.ciace-fieldset {
	border: 1px solid var(--ciace-line);
	border-radius: 8px;
	padding: 16px 20px 6px;
	margin: 0 0 20px;
}
.ciace-fieldset legend {
	font-weight: 700;
	padding: 0 6px;
	color: var(--ciace-navy);
}
.ciace-fieldset legend small {
	font-weight: 400;
	color: var(--ciace-muted);
}
.ciace-field {
	margin: 0 0 14px;
}
.ciace-field label {
	display: block;
	font-weight: 600;
	margin-bottom: 4px;
	font-size: 0.95em;
}
.ciace-field input,
.ciace-field select,
.ciace-field textarea,
.ciace-verify-input input {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid #b7bdc8;
	border-radius: 6px;
	font: inherit;
	background: #fff;
	color: var(--ciace-ink);
}
.ciace-field input:focus,
.ciace-field select:focus,
.ciace-field textarea:focus,
.ciace-verify-input input:focus {
	outline: 2px solid var(--ciace-gold);
	outline-offset: 1px;
	border-color: var(--ciace-navy);
}
.ciace-field small {
	display: block;
	color: var(--ciace-muted);
	margin-top: 4px;
}
.ciace-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 16px;
}
@media (max-width: 640px) {
	.ciace-row {
		grid-template-columns: 1fr;
	}
}

.ciace-choice {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	padding: 10px 12px;
	border: 1px solid var(--ciace-line);
	border-radius: 6px;
	margin-bottom: 10px;
	cursor: pointer;
}
.ciace-choice:has(input:checked) {
	border-color: var(--ciace-navy);
	background: var(--ciace-soft);
}
.ciace-choice input {
	margin-top: 4px;
}
.ciace-choice small {
	color: var(--ciace-muted);
}

.ciace-agree {
	font-size: 0.95em;
	background: var(--ciace-soft);
	border-radius: 6px;
	padding: 12px 14px;
}
.ciace-agree input {
	margin-right: 6px;
}

.ciace-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.ciace-button {
	display: inline-block;
	background: var(--ciace-navy);
	color: #fff;
	border: 0;
	border-radius: 6px;
	padding: 11px 22px;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
	white-space: nowrap;
}
.ciace-button:hover,
.ciace-button:focus {
	background: #0c1a33;
	color: #fff;
}
.ciace-button:focus-visible {
	outline: 2px solid var(--ciace-gold);
	outline-offset: 2px;
}

/* Messages */
.ciace-box {
	border-radius: 8px;
	padding: 14px 18px;
	margin: 0 0 20px;
}
.ciace-box h3 {
	margin-top: 0;
}
.ciace-box ul {
	margin: 6px 0 0 18px;
}
.ciace-box--success {
	background: var(--ciace-ok-bg);
	color: var(--ciace-ok);
}
.ciace-box--error {
	background: var(--ciace-bad-bg);
	color: var(--ciace-bad);
}

.ciace-code {
	font-family: ui-monospace, Menlo, Consolas, "Courier New", monospace;
	letter-spacing: 0.02em;
	white-space: nowrap;
}

/* Verify */
.ciace-verify-form label {
	display: block;
	font-weight: 600;
	margin-bottom: 6px;
}
.ciace-verify-input {
	display: flex;
	gap: 8px;
}
.ciace-verify-input input {
	font-family: ui-monospace, Menlo, Consolas, "Courier New", monospace;
	text-transform: uppercase;
}

.ciace-result {
	margin-top: 24px;
	border: 1px solid var(--ciace-line);
	border-top: 5px solid var(--ciace-navy);
	border-radius: 8px;
	padding: 20px 22px;
	background: #fff;
}
.ciace-result--ok {
	border-top-color: #1f7a45;
}
.ciace-result--warn {
	border-top-color: #c58a00;
}
.ciace-result--bad {
	border-top-color: #b42323;
}
.ciace-result-top {
	display: flex;
	gap: 22px;
	align-items: center;
	margin-bottom: 16px;
}
.ciace-result-seal {
	flex: 0 0 auto;
}
@media (max-width: 560px) {
	.ciace-result-top {
		flex-direction: column;
		align-items: flex-start;
	}
}
.ciace-result-head {
	margin: 0 0 6px;
}
.ciace-result-name {
	margin: 0 0 4px;
	color: var(--ciace-navy);
}
.ciace-result-sub {
	margin: 0 0 8px;
	color: var(--ciace-muted);
}

.ciace-pill {
	display: inline-block;
	padding: 3px 10px;
	border-radius: 6px;
	font-size: 0.82em;
	font-weight: 700;
	line-height: 1.5;
}
.ciace-pill--ok {
	background: var(--ciace-ok-bg);
	color: var(--ciace-ok);
}
.ciace-pill--warn {
	background: var(--ciace-warn-bg);
	color: var(--ciace-warn);
}
.ciace-pill--bad {
	background: var(--ciace-bad-bg);
	color: var(--ciace-bad);
}

.ciace-details {
	width: 100%;
	border-collapse: collapse;
	margin: 0;
	font-size: 0.95em;
}
.ciace-details th,
.ciace-details td {
	text-align: left;
	vertical-align: top;
	padding: 9px 10px;
	border-top: 1px solid var(--ciace-line);
}
.ciace-details th {
	width: 34%;
	color: var(--ciace-muted);
	font-weight: 600;
}
.ciace-domains {
	margin: 0;
	padding: 0;
	list-style: none;
	font-family: ui-monospace, Menlo, Consolas, "Courier New", monospace;
}
.ciace-checked,
.ciace-disclaimer {
	color: var(--ciace-muted);
	font-size: 0.85em;
	margin-top: 14px;
}

/* Directory */
.ciace-filters {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr auto;
	gap: 10px;
	align-items: end;
	margin-bottom: 8px;
}
.ciace-filters .ciace-field {
	margin: 0;
}
.ciace-filters .ciace-field:first-child {
	grid-column: 1 / -1;
}
@media (max-width: 640px) {
	.ciace-filters {
		grid-template-columns: 1fr 1fr;
	}
}
.ciace-count {
	color: var(--ciace-muted);
	font-size: 0.9em;
}
.ciace-table-wrap {
	overflow-x: auto;
}
.ciace-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.95em;
}
.ciace-table th,
.ciace-table td {
	text-align: left;
	padding: 10px;
	border-bottom: 1px solid var(--ciace-line);
	vertical-align: top;
}
.ciace-table thead th {
	color: var(--ciace-navy);
	border-bottom: 2px solid var(--ciace-navy);
}
.ciace-table small {
	color: var(--ciace-muted);
}
.ciace-table td:first-child {
	min-width: 210px;
}
.ciace-table .ciace-nowrap {
	white-space: nowrap;
}
@media (max-width: 640px) {
	.ciace-table thead {
		display: none;
	}
	.ciace-table tr {
		display: block;
		border-bottom: 1px solid var(--ciace-line);
		padding: 8px 0;
	}
	.ciace-table td {
		display: block;
		border: 0;
		padding: 3px 0;
	}
	.ciace-table td[data-label]::before {
		content: attr(data-label) ": ";
		font-weight: 600;
		color: var(--ciace-muted);
	}
	.ciace-table td:first-child::before {
		content: none;
	}
}
.ciace-pager {
	display: flex;
	gap: 6px;
	margin-top: 14px;
}
.ciace-pager a,
.ciace-pager span {
	padding: 4px 10px;
	border: 1px solid var(--ciace-line);
	border-radius: 4px;
	text-decoration: none;
}
.ciace-pager span {
	background: var(--ciace-navy);
	color: #fff;
	border-color: var(--ciace-navy);
}
.ciace-empty {
	padding: 20px;
	background: var(--ciace-soft);
	border-radius: 8px;
}
