/* NC Legislator Scorecard — inherits your theme's fonts; override the variables below to match your brand. */
.ncls {
	--ncls-ink: #1d2327;
	--ncls-muted: #5c6670;
	--ncls-line: #d7dce1;
	--ncls-bg: #ffffff;
	--ncls-soft: #f5f7f9;
	--ncls-accent: #2cc0aa;
	--ncls-btn: #fedd1a;
	--ncls-strong: #1b7f4f;
	--ncls-good: #4d8a1f;
	--ncls-mixed: #a8680f;
	--ncls-weak: #bf4a12;
	--ncls-poor: #b42318;
	--ncls-none: #6b7280;
	color: var(--ncls-ink);
	max-width: 860px;
	margin: 0 auto;
	line-height: 1.5;
}
.ncls *, .ncls *::before, .ncls *::after { box-sizing: border-box; }

/* Forms */
.ncls-form { margin: 0 0 1.25rem; }
.ncls-form label { display: block; font-weight: 700; margin-bottom: .4rem; }
.ncls-field { display: flex; gap: .5rem; }
.ncls-field input {
	flex: 1; min-width: 0; padding: .7rem .85rem; font-size: 1rem;
	border: 1px solid #8a949e; border-radius: 4px; background: var(--ncls-bg); color: var(--ncls-ink);
}
.ncls-field button {
	padding: .7rem 1.1rem; font-size: 1rem; font-weight: 700; cursor: pointer;
	border: 0; border-radius: 4px; background: var(--ncls-btn); color: #000;
}
.ncls-field button:hover { filter: brightness(.94); }
.ncls :focus-visible { outline: 3px solid var(--ncls-accent); outline-offset: 2px; }
.ncls-field input:focus { border-color: var(--ncls-accent); outline: 3px solid var(--ncls-accent); outline-offset: 0; }
.ncls-privacy { margin: .4rem 0 0; font-size: .85rem; color: var(--ncls-muted); }
.ncls-form--name label { font-weight: 600; }

.ncls-status { min-height: 1.5rem; margin: 0 0 1rem; color: var(--ncls-muted); }
.ncls-status.is-error { color: var(--ncls-poor); font-weight: 600; }

/* Groups */
.ncls-group { margin: 0 0 2rem; }
.ncls-group > h3 { margin: 0 0 .75rem; padding-bottom: .4rem; border-bottom: 3px solid var(--ncls-accent); font-size: 1.2rem; }
.ncls-empty { color: var(--ncls-muted); font-style: italic; margin: .5rem 0; }

/* Card */
.ncls-card { border: 1px solid var(--ncls-line); border-radius: 6px; background: var(--ncls-bg); padding: 1rem 1.1rem; margin: 0 0 1rem; }
.ncls-head { display: flex; gap: 1rem; align-items: center; margin-bottom: .9rem; }
.ncls-photo { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; flex: none; background: var(--ncls-soft); }
.ncls-photo--blank { display: flex; align-items: center; justify-content: center; font-size: 1.6rem; font-weight: 700; color: var(--ncls-muted); }
.ncls-id h4 { margin: 0 0 .2rem; font-size: 1.2rem; line-height: 1.25; }
.ncls-id h4 a { color: inherit; text-decoration: none; }
.ncls-id h4 a:hover { text-decoration: underline; }
.ncls-meta { display: flex; flex-wrap: wrap; gap: .35rem .6rem; align-items: center; font-size: .9rem; color: var(--ncls-muted); margin-bottom: .2rem; }
.ncls-party { font-weight: 700; color: var(--ncls-ink); }
.ncls-badge { border: 1px solid var(--ncls-line); border-radius: 999px; padding: 0 .55rem; font-size: .8rem; }
.ncls-badge.is-candidate { border-color: var(--ncls-accent); background: #e6f7f4; color: var(--ncls-ink); font-weight: 600; }
.ncls a { color: var(--ncls-ink); text-decoration: underline; text-decoration-color: var(--ncls-accent); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.ncls a:hover { background: #e6f7f4; }

/* Score */
.ncls-score { --tier: var(--ncls-none); display: flex; gap: 1rem; align-items: center; padding: .85rem 1rem; background: var(--ncls-soft); border-left: 6px solid var(--tier); border-radius: 4px; margin-bottom: .75rem; }
.ncls-tier-strong { --tier: var(--ncls-strong); }
.ncls-tier-good { --tier: var(--ncls-good); }
.ncls-tier-mixed { --tier: var(--ncls-mixed); }
.ncls-tier-weak { --tier: var(--ncls-weak); }
.ncls-tier-poor { --tier: var(--ncls-poor); }
.ncls-score-num { flex: none; min-width: 4.5rem; text-align: center; line-height: 1; }
.ncls-score-num strong { font-size: 2.4rem; color: var(--tier); }
.ncls-score-num span { font-size: .85rem; color: var(--ncls-muted); }
.ncls-score-text { flex: 1; min-width: 0; }
.ncls-tier { font-weight: 700; }
.ncls-bar { height: 8px; background: #dfe4e8; border-radius: 4px; overflow: hidden; margin: .35rem 0; }
.ncls-bar span { display: block; height: 100%; background: var(--tier); }
.ncls-basis { font-size: .85rem; color: var(--ncls-muted); }
.ncls-notes { margin: .5rem 0 0; font-size: .92rem; white-space: pre-line; }

/* Details */
.ncls-card details { border-top: 1px solid var(--ncls-line); padding: .55rem 0; }
.ncls-card summary { cursor: pointer; font-weight: 600; }
.ncls-sub { font-size: .85rem; color: var(--ncls-muted); }

/* Votes table */
.ncls-table-wrap { overflow-x: auto; margin-top: .6rem; }
.ncls-table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.ncls-table th, .ncls-table td { text-align: left; vertical-align: top; padding: .5rem .5rem; border-bottom: 1px solid var(--ncls-line); }
.ncls-table th { font-size: .85rem; color: var(--ncls-muted); }

/* Pills (always paired with text, never color alone) */
.ncls-pill { display: inline-block; padding: .05rem .55rem; border-radius: 999px; font-size: .8rem; font-weight: 600; border: 1px solid currentColor; white-space: nowrap; }
.ncls-pill-good, .ncls-stance-supportive { color: var(--ncls-strong); }
.ncls-pill-bad, .ncls-stance-opposed { color: var(--ncls-poor); }
.ncls-pill-neutral, .ncls-stance-unclear { color: var(--ncls-none); }
.ncls-stance-mixed { color: var(--ncls-mixed); }

/* Statements */
.ncls-statements { list-style: none; margin: .6rem 0 0; padding: 0; }
.ncls-statements li { padding: .6rem 0; border-bottom: 1px solid var(--ncls-line); }
.ncls-statements li:last-child { border-bottom: 0; }
.ncls-statements p { margin: .4rem 0 .2rem; }

/* Methodology */
.ncls-method { margin-top: 1.5rem; padding: .8rem 1rem; background: var(--ncls-soft); border-left: 5px solid var(--ncls-accent); border-radius: 4px; }
.ncls-method summary { cursor: pointer; font-weight: 600; }

@media (max-width: 560px) {
	.ncls-field { flex-direction: column; }
	.ncls-score { flex-direction: column; align-items: flex-start; }
	.ncls-head { align-items: flex-start; }
}

/* Survey responses */
.ncls-survey { list-style: none; margin: .6rem 0 0; padding: 0; }
.ncls-survey li { padding: .7rem 0; border-bottom: 1px solid var(--ncls-line); }
.ncls-survey li:last-child { border-bottom: 0; }
.ncls-q { font-weight: 600; margin-bottom: .35rem; }
.ncls-ans-strongly_support, .ncls-ans-somewhat_support { color: var(--ncls-ink); border-color: var(--ncls-accent); background: #e6f7f4; }
.ncls-ans-neutral, .ncls-ans-no_position { color: var(--ncls-none); }
.ncls-ans-somewhat_oppose, .ncls-ans-strongly_oppose { color: var(--ncls-mixed); }
.ncls-comment { margin: .5rem 0 0; white-space: pre-line; }

/* Nonpartisan disclaimer */
.ncls-disclaimer { margin: 0 0 1rem; padding: .7rem 1rem; background: var(--ncls-soft); border-left: 5px solid var(--ncls-accent); border-radius: 4px; font-size: .92rem; }

/* Survey status note (shown when there are no answers) */
.ncls-survey-note { border-top: 1px solid var(--ncls-line); padding: .7rem .75rem; margin-top: .25rem; background: var(--ncls-soft); border-left: 5px solid var(--ncls-none); border-radius: 0 4px 4px 0; }
.ncls-survey-note--pending { border-left-style: dashed; }
