/* Chagua Regions – public blocks (hub, ballot, coverage, tips, embeds).
   Colours inherit from the theme where possible; override --chagua-* in the theme. */
.chagua-hub, .chagua-ballot, .chagua-coverage, .chagua-embed {
	--chagua-accent: #1a7f4b;
	--chagua-accent-ink: #fff;
	--chagua-ink: inherit;
	--chagua-muted: #5f6b76;
	--chagua-line: rgba(0, 0, 0, .1);
	--chagua-soft: rgba(0, 0, 0, .035);
	--chagua-ok: #1a7f4b;
	--chagua-err: #b3261e;
	color: var(--chagua-ink);
	line-height: 1.5;
	max-width: 960px;
	margin: 0 auto 32px;
	padding: 0 16px;
	box-sizing: border-box;
}
.chagua-hub *, .chagua-ballot *, .chagua-coverage *, .chagua-embed * { box-sizing: border-box; }
.chagua-hub h2, .chagua-ballot h2, .chagua-coverage h2 { font-size: 1.35rem; margin: 28px 0 12px; }
.chagua-hub h3, .chagua-ballot h3 { font-size: 1.05rem; margin: 0 0 10px; }
.chagua-muted { color: var(--chagua-muted); font-size: .9em; }
.chagua-note { background: var(--chagua-soft); border-left: 3px solid var(--chagua-line); padding: 10px 12px; border-radius: 4px; }
.chagua-ok { border-left-color: var(--chagua-ok); }
.chagua-err { border-left-color: var(--chagua-err); color: var(--chagua-err); }

.chagua-btn {
	display: inline-block; background: var(--chagua-accent); color: var(--chagua-accent-ink) !important;
	border: 0; border-radius: 6px; padding: 10px 16px; font-weight: 600; text-decoration: none; cursor: pointer;
	font-size: 1rem; line-height: 1.2; min-height: 44px;
}
.chagua-btn:hover, .chagua-btn:focus-visible { filter: brightness(1.08); }
.chagua-btn:focus-visible, .chagua-hub a:focus-visible, .chagua-ballot a:focus-visible, .chagua-ballot select:focus-visible { outline: 3px solid var(--chagua-accent); outline-offset: 2px; }
.chagua-btn-2 { background: transparent; color: var(--chagua-accent) !important; border: 2px solid var(--chagua-accent); }

/* Races */
.chagua-race { border: 1px solid var(--chagua-line); border-radius: 8px; padding: 14px 16px; margin: 0 0 12px; }
.chagua-race fieldset { border: 0; margin: 0; padding: 0; }
.chagua-cands { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.chagua-cand { display: flex; align-items: center; gap: 10px; padding: 8px; border-radius: 6px; background: var(--chagua-soft); }
.chagua-cand img, .chagua-avatar { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; flex: none; }
.chagua-avatar { display: inline-flex; align-items: center; justify-content: center; background: var(--chagua-line); font-weight: 700; }
.chagua-cand-text { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.chagua-cand-text a { font-weight: 600; overflow-wrap: anywhere; }
.chagua-pick { font-size: .85em; white-space: nowrap; display: flex; align-items: center; gap: 4px; min-height: 44px; cursor: pointer; }
.chagua-pick input { width: 20px; height: 20px; accent-color: var(--chagua-accent); }
.chagua-empty { margin: 0; color: var(--chagua-muted); }

/* Lists of places / links */
.chagua-links { margin: 0; padding-left: 18px; }
.chagua-links li { margin: 4px 0; }
.chagua-grid-links { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px 16px; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.chagua-grid-links li { display: flex; flex-direction: column; padding: 6px 0; border-bottom: 1px solid var(--chagua-line); }
.chagua-cta { margin: 24px 0; }

/* Forms */
.chagua-tip { margin: 28px 0; padding: 16px; border: 1px dashed var(--chagua-line); border-radius: 8px; }
.chagua-tip-form label, .chagua-picker-form label { display: block; font-weight: 600; margin-bottom: 4px; }
.chagua-tip-form input[type=text], .chagua-tip-form input[type=url], .chagua-tip-form input[type=email], .chagua-tip-form select, .chagua-picker-form select {
	width: 100%; max-width: 480px; min-height: 44px; padding: 8px 10px; border: 1px solid #8a959f; border-radius: 6px; font-size: 1rem; background: #fff; color: #1d2327;
}
.chagua-tip-form small { display: block; color: var(--chagua-muted); margin-top: 2px; }
.chagua-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* Ballot */
.chagua-ballot-head h2 { margin-top: 8px; }
.chagua-share { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 20px 0; }
.chagua-share p { flex-basis: 100%; margin: 0; }

/* Coverage */
.chagua-coverage-head { font-size: 1.6rem; font-weight: 700; margin: 8px 0 2px; }
.chagua-bars { list-style: none; margin: 16px 0; padding: 0; }
.chagua-bars li { display: grid; grid-template-columns: 9em 1fr 6.5em; gap: 10px; align-items: center; margin: 6px 0; }
.chagua-bar { height: 12px; background: var(--chagua-line); border-radius: 6px; overflow: hidden; }
.chagua-bar span { display: block; height: 100%; background: var(--chagua-accent); }
.chagua-map { width: 100%; max-width: 520px; height: auto; display: block; margin: 12px 0; }
.chagua-map a path { stroke: #fff; stroke-width: 1.2; transition: opacity .15s; }
.chagua-map a:hover path, .chagua-map a:focus path { opacity: .75; outline: none; }
.chagua-legend { display: flex; gap: 12px; flex-wrap: wrap; font-size: .85em; color: var(--chagua-muted); }
.chagua-legend i { display: inline-block; width: 14px; height: 14px; border-radius: 3px; vertical-align: -2px; margin-right: 4px; }
.chagua-table { width: 100%; border-collapse: collapse; font-size: .95em; }
.chagua-table th, .chagua-table td { text-align: left; padding: 6px 8px; border-bottom: 1px solid var(--chagua-line); }
.chagua-table td.num, .chagua-table th.num { text-align: right; font-variant-numeric: tabular-nums; }

/* Embeds */
.chagua-embed { max-width: none; margin: 0; padding: 12px; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }
.chagua-embed-foot { font-size: .8em; color: var(--chagua-muted); margin-top: 10px; }

@media (max-width: 600px) {
	.chagua-bars li { grid-template-columns: 1fr 5.5em; }
	.chagua-bars .chagua-bar { grid-column: 1 / -1; grid-row: 2; }
}

/* Candidate stages */
.chagua-stage { display: inline-block; font-size: .72rem; font-weight: 700; letter-spacing: .02em; text-transform: uppercase; padding: 2px 7px; border-radius: 10px; margin-top: 2px; width: max-content; }
.chagua-stage-aspirant { background: #eef1f4; color: #3c4650; }
.chagua-stage-party-nominated { background: #fff4d6; color: #7a5200; }
.chagua-stage-iebc-cleared { background: #dff3e6; color: #0f5c32; }

/* Claim */
.chagua-claim { box-sizing: border-box; margin: 16px auto; padding: 14px 16px; border: 1px solid rgba(0,0,0,.12); border-radius: 8px; background: #f7faf8; width: calc(100% - 32px); max-width: 640px; }
.chagua-claim * { box-sizing: border-box; }
.chagua-claim h3 { margin: 0 0 6px; font-size: 1.05rem; }
.chagua-claim form p { margin: 10px 0; }
.chagua-claim label { display: block; font-weight: 600; margin-bottom: 4px; }
.chagua-claim input[type=text], .chagua-claim input[type=url], .chagua-claim input[type=tel], .chagua-claim select, .chagua-claim textarea { width: 100%; max-width: 480px; min-height: 44px; padding: 8px 10px; border: 1px solid #8a959f; border-radius: 6px; font-size: 1rem; background: #fff; color: #1d2327; }
.chagua-claim .chagua-check label { font-weight: 400; display: flex; gap: 8px; align-items: flex-start; }
.chagua-claim-btn { display: inline-block; background: #006B3F; color: #fff !important; border-radius: 6px; padding: 10px 16px; font-weight: 700; text-decoration: none; min-height: 44px; }
