:root {
  /* Superfícies: tela branca, cromado cinzento e faixas planas a toda a largura. */
  --canvas: #ffffff;
  --chrome: #f5f6f7;
  --band: #eaecee;
  --band-blue: #ebf8ff;
  --band-lavender: #f7f4ff;
  /* Uma só cor que age: azul para ações, ligações e o separador ativo. */
  --primary: #0057d2;
  --primary-deep: #0040b0;
  --navy: #022879;
  --sky: #6bc0ff;
  /* Escada de texto: títulos a preto, corpo em ardósia, navegação em cinzento neutro. */
  --ink-heading: #000000;
  --ink-lead: #3c3c3c;
  --ink-body: #223548;
  --ink-list: #354a5f;
  --ink-meta: #475e75;
  --ink-nav: #545454;
  --hairline: #475e75;
  --font: "Inter", "Source Sans 3", system-ui, -apple-system, "Segoe UI", sans-serif;
  /* Nomes antigos, agora apontados para a nova paleta (usados em todo o ficheiro). */
  --ink: var(--ink-heading);
  --ink-soft: var(--ink-list);
  --paper: var(--canvas);
  --paper-deep: var(--band);
  --white: var(--canvas);
  --mint: var(--band-blue);
  --mint-bright: var(--sky);
  --green: var(--primary);
  --green-deep: var(--navy);
  --line: rgba(71, 94, 117, 0.22);
  --muted: var(--ink-meta);
  --orange: var(--hairline);
  --radius: 12px;
  --shadow: none;
}

html { color-scheme: light; }
html[data-theme="dark"] {
  color-scheme: dark;
  --canvas: #0b1018;
  --chrome: #111925;
  --band: #151f2d;
  --band-blue: #102541;
  --band-lavender: #1a1830;
  --primary: #6faaff;
  --primary-deep: #8bb8ff;
  --navy: #0d326a;
  --sky: #73c4ff;
  --ink-heading: #f6f8fb;
  --ink-lead: #d2d9e3;
  --ink-body: #c4cfdd;
  --ink-list: #b0bdcc;
  --ink-meta: #8495a9;
  --ink-nav: #b6c2d1;
  --hairline: #42546a;
  --line: rgba(198, 215, 235, .18);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; background: var(--paper); color: var(--ink); font-family: var(--font); }
button, select { font: inherit; }
a { color: inherit; text-decoration: none; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 99; left: 16px; top: -100px; padding: 12px 16px; background: var(--ink); color: white; border-radius: 8px; transition: top .2s; }
.skip-link:focus { top: 16px; }
.shell { width: min(1180px, calc(100% - 48px)); margin: 0 auto; }

.site-header { height: 78px; padding: 0 max(24px, calc((100vw - 1180px) / 2)); display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 44px; border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 50; background: var(--chrome); backdrop-filter: blur(18px); }
.brand { display: inline-flex; align-items: center; gap: 12px; font-family: var(--font); font-weight: 700; letter-spacing: 0; }
.brand-logo { width: 32px; height: 32px; display: block; flex: 0 0 auto; object-fit: contain; }
.primary-nav { display: flex; align-items: center; justify-content: center; gap: 25px; font-size: 14px; color: var(--ink-soft); }
.primary-nav a, .method-link { transition: color .2s; }
.primary-nav a:hover, .primary-nav a[aria-current="page"], .method-link:hover { color: var(--green); }
.method-link { font-size: 14px; font-weight: 600; }
.method-link span { margin-left: 5px; }
.menu-button { display: none; }

.page { display: none; }
.page.is-active { display: block; animation: pageIn .45s ease both; }
@keyframes pageIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

.hero { min-height: 690px; display: grid; grid-template-columns: .92fr 1.08fr; align-items: center; gap: 74px; padding-top: 56px; padding-bottom: 66px; }
.eyebrow { display: inline-flex; align-items: center; gap: 9px; letter-spacing: 0; font-size: 13px; font-weight: 700; color: var(--green); }
.eyebrow > span { display: inline-block; width: 18px; height: 1px; background: currentColor; }
.hero h1, .page-intro h1, .placeholder-inner h1 { margin: 24px 0 26px; font-family: var(--font); font-size: clamp(54px, 6.3vw, 92px); line-height: .96; letter-spacing: 0; font-weight: 600; }
.hero h1 em { color: var(--green); font-style: normal; }
.hero-lede { max-width: 580px; font-size: 19px; line-height: 1.65; color: var(--ink-soft); }
.hero-actions { display: flex; gap: 12px; margin-top: 36px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 22px; min-height: 52px; padding: 0 23px; border: 1px solid transparent; border-radius: 8px; font-weight: 600; font-size: 14px; transition: transform .2s, background .2s, border-color .2s; cursor: pointer; }
.button-primary { background: var(--green-deep); color: white; }
.button-primary:hover { background: var(--green); }
.button-secondary { border-color: var(--line); background: rgba(255,255,255,.36); }

.hero-proof { min-height: 530px; position: relative; display: grid; place-items: center; }
.proof-orbit { position: absolute; border: 1px solid rgba(0, 87, 210, .16); border-radius: 50%; }
.orbit-one { width: 495px; height: 495px; }
.orbit-two { width: 370px; height: 370px; border-style: dashed; animation: spin 35s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.proof-card { position: absolute; background: var(--canvas); border: 1px solid rgba(34, 53, 72, .1); box-shadow: var(--shadow); }
.proof-card-main { position: relative; width: min(425px, 86%); padding: 31px; border-radius: 26px; z-index: 2; }
.proof-meta { display: flex; justify-content: space-between; color: var(--muted); font-size: 13px; letter-spacing: 0; }
.reviewed-dot { color: var(--green); }
.reviewed-dot::before { content: ""; display: inline-block; width: 6px; height: 6px; margin-right: 6px; border-radius: 50%; background: var(--mint-bright); box-shadow: 0 0 0 4px rgba(107, 192, 255, .25); }
.proof-card h2 { margin: 24px 0 12px; font-family: var(--font); font-size: 29px; line-height: 1.14; letter-spacing: 0; }
.proof-card-main > p { color: var(--ink-soft); line-height: 1.6; font-size: 14px; }
.evidence-chain { margin-top: 24px; border-top: 1px solid var(--line); }
.evidence-chain button { width: 100%; display: grid; grid-template-columns: 34px 1fr auto; gap: 12px; align-items: center; padding: 13px 0; border: 0; border-bottom: 1px solid var(--line); background: none; color: var(--ink); text-align: left; cursor: pointer; }
.evidence-chain button:hover b { color: var(--green); }
.chain-icon { display: grid; place-items: center; width: 28px; height: 28px; background: var(--paper); border-radius: 50%; font-size: 12px; font-weight: 700; }
.evidence-chain span:nth-child(2) { display: grid; gap: 2px; }
.evidence-chain b { font-size: 13px; transition: color .2s; }
.evidence-chain small { color: var(--muted); }
.evidence-chain i { font-style: normal; color: var(--green); }
.proof-stamp { z-index: 3; right: 0; top: 75px; width: 126px; height: 126px; border-radius: 50%; display: grid; place-content: center; text-align: center; transform: rotate(7deg); }
.proof-stamp span, .proof-stamp small { letter-spacing: 0; font-size: 8px; color: var(--muted); }
.proof-stamp strong { font-family: var(--font); font-size: 26px; }
.proof-source { left: 6px; bottom: 76px; z-index: 3; padding: 14px 18px; border-radius: 12px; display: flex; align-items: center; gap: 13px; }
.document-glyph { width: 31px; height: 38px; display: block; border: 1px solid var(--green); border-radius: 4px; position: relative; background: var(--mint); }
.document-glyph::after { content: ""; position: absolute; left: 7px; right: 7px; top: 12px; height: 1px; background: var(--green); box-shadow: 0 6px var(--green), 0 12px var(--green); }
.proof-source div { display: grid; gap: 3px; }
.proof-source small { color: var(--muted); font-size: 12px; }
.proof-source strong { font-size: 13px; }

.trust-strip { background: var(--mint); border-top: 1px solid rgba(0, 87, 210, .12); border-bottom: 1px solid rgba(0, 87, 210, .12); }
.trust-inner { min-height: 78px; display: grid; grid-template-columns: auto 1fr auto; gap: 25px; align-items: center; }
.trust-inner p { font-family: var(--font); font-weight: 700; }
.trust-inner > span { color: var(--green-deep); font-size: 14px; }
.trust-inner a { font-weight: 700; font-size: 13px; }
.trust-inner b { margin-left: 8px; }

.explore-section { padding-top: 125px; padding-bottom: 135px; }
.section-heading { display: grid; grid-template-columns: .72fr 1.28fr; gap: 40px; align-items: start; margin-bottom: 56px; }
.section-heading > div { display: flex; gap: 18px; align-items: center; }
.section-number { display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid var(--line); border-radius: 50%; font-size: 12px; font-weight: 700; }
.kicker { margin: 0; letter-spacing: 0; font-size: 12px; font-weight: 700; color: var(--green); }
.section-heading h2 { margin: 0; max-width: 680px; font-family: var(--font); font-size: clamp(34px, 4vw, 55px); line-height: 1.08; letter-spacing: 0; font-weight: 600; }
.explore-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.explore-card { min-height: 470px; padding: 28px; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: var(--radius); background: var(--canvas); transition: transform .25s, box-shadow .25s; overflow: hidden; }
.explore-card:hover { box-shadow: 0 22px 50px rgba(34, 53, 72, .08); }
.card-top { letter-spacing: 0; font-size: 12px; color: var(--muted); }
.explore-card h3 { margin: 52px 0 13px; max-width: 290px; font-family: var(--font); font-size: 27px; line-height: 1.15; letter-spacing: 0; }
.explore-card > p { margin: 0; max-width: 310px; line-height: 1.6; color: var(--ink-soft); font-size: 14px; }
.card-link { margin-top: auto; padding-top: 28px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; font-size: 13px; }
.party-stack { display: flex; margin: 37px 0 24px; padding-left: 8px; }
.party-stack > span { width: 45px; height: 45px; margin-left: -8px; padding: 6px; display: grid; place-items: center; border-radius: 50%; border: 3px solid var(--white); background: var(--white); font-size: 12px; font-weight: 700; overflow: hidden; }
.party-stack img { width: 100%; height: 100%; object-fit: contain; }
.card-topics { background: var(--green-deep); color: white; }
.card-topics .card-top, .card-topics > p { color: rgba(255,255,255,.64); }
.card-topics .card-link { border-color: rgba(255,255,255,.16); }
.topic-list { display: grid; gap: 9px; margin: 30px 0; }
.topic-list span { display: flex; align-items: center; justify-content: space-between; padding: 9px 12px; background: rgba(255,255,255,.07); border-radius: 8px; font-size: 13px; }
.topic-list i { width: 35%; height: 3px; background: var(--mint); border-radius: 4px; opacity: .55; }
.topic-list span:nth-child(2) i { width: 56%; }.topic-list span:nth-child(3) i { width: 42%; }.topic-list span:nth-child(4) i { width: 64%; }
.card-concepts { background: var(--band-lavender); }
.concept-quote { margin: 36px 0 25px; display: flex; flex-wrap: wrap; gap: 8px; }
.concept-quote span { padding: 9px 12px; background: rgba(255,255,255,.6); border: 1px solid rgba(34, 53, 72, .1); border-radius: 8px; font-family: var(--font); font-size: 12px; }
.card-quiz { background: var(--band-blue); }
.quiz-card-preview { display: grid; gap: 17px; margin: 38px 2px 28px; }
.quiz-card-preview > span { position: relative; display: block; height: 4px; border-radius: 999px; background: linear-gradient(90deg, var(--sky), var(--band), var(--primary)); }
.quiz-card-preview > span::after { content: ""; position: absolute; top: -4px; left: 50%; width: 1px; height: 12px; background: var(--hairline); opacity: .35; }
.quiz-card-preview i { position: absolute; top: 50%; left: var(--quiz-position); width: 14px; height: 14px; border: 3px solid var(--canvas); border-radius: 50%; background: var(--primary); box-shadow: 0 0 0 1px var(--primary); transform: translate(-50%, -50%); }

.evidence-section { background: var(--green-deep); color: white; padding: 130px 0; }
.evidence-layout { display: grid; grid-template-columns: .82fr 1.18fr; gap: 105px; align-items: center; }
.section-heading.light { display: block; margin: 0; }
.section-heading.light > div { margin-bottom: 40px; }
.section-heading.light .section-number { border-color: rgba(255,255,255,.18); }
.section-heading.light .kicker { color: var(--mint-bright); }
.section-heading.light h2 { margin-bottom: 26px; }
.section-heading.light > p { max-width: 480px; color: rgba(255,255,255,.65); line-height: 1.75; }
.evidence-demo { position: relative; }
.demo-label { display: inline-block; margin-bottom: 13px; color: var(--mint-bright); letter-spacing: 0; font-size: 12px; font-weight: 700; }
.claim-card, .source-preview { background: var(--white); color: var(--ink); border-radius: 12px; }
.claim-card { padding: 25px; position: relative; z-index: 2; box-shadow: 0 30px 70px rgba(0,0,0,.18); }
.claim-header { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 13px; }
.neutral-avatar { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; background: var(--mint); color: var(--green); font-weight: 700; }
.claim-header div { display: grid; gap: 3px; }
.claim-header small { color: var(--muted); }
.claim-header strong { font-size: 14px; }
.confidence { padding: 7px 10px; border-radius: 8px; background: var(--band-blue); color: var(--primary-deep); font-size: 12px; font-weight: 700; letter-spacing: 0; }
.claim-card > p { margin: 26px 0; max-width: 540px; font-family: var(--font); font-size: 22px; line-height: 1.35; letter-spacing: 0; }
.why-button { width: 100%; padding: 15px 0 0; display: flex; justify-content: space-between; border: 0; border-top: 1px solid var(--line); background: none; color: var(--green); font-weight: 700; cursor: pointer; }
.why-button span { font-size: 20px; font-weight: 400; }
.source-preview { width: 91%; margin: -4px auto 0; padding: 28px 26px 23px; display: grid; grid-template-columns: 3px 1fr; gap: 18px; transform: rotate(-1deg) translateY(18px); background: var(--canvas); }
.source-rule { background: var(--orange); border-radius: 3px; }
.source-tag { color: var(--orange); letter-spacing: 0; font-size: 12px; font-weight: 700; }
.source-preview p { font-family: var(--font); line-height: 1.55; }
.source-preview footer { display: flex; justify-content: space-between; gap: 16px; font-size: 12px; color: var(--muted); }
.source-preview button { border: 0; background: none; color: var(--green); font-weight: 700; cursor: pointer; }

.difference-section { padding: 125px 0 145px; }
.difference-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.difference-card { min-height: 320px; padding: 27px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); display: flex; flex-direction: column; }
.difference-card > small { margin-left: auto; color: var(--muted); }
.difference-icon { font-family: var(--font); font-size: 32px; color: var(--green); }
.difference-card h3 { margin: auto 0 12px; font-family: var(--font); font-size: 21px; letter-spacing: 0; }
.difference-card p { margin: 0; color: var(--ink-soft); font-size: 13px; line-height: 1.6; }

.closing-section { background: var(--mint); padding: 100px 0; }
.closing-inner { display: grid; grid-template-columns: 1.3fr .7fr; gap: 100px; align-items: end; }
.closing-inner h2 { margin: 22px 0 0; font-family: var(--font); font-size: clamp(32px, 4vw, 57px); line-height: 1.1; letter-spacing: 0; font-weight: 700; }
.closing-inner > div:last-child p { line-height: 1.7; color: var(--green-deep); }
.button-light { margin-top: 18px; background: var(--white); }

.directory-page { min-height: 760px; padding: 100px 0 135px; }
.page-intro { display: grid; grid-template-columns: 1.2fr .8fr; gap: 90px; align-items: end; padding-bottom: 60px; border-bottom: 1px solid var(--line); }
.page-intro h1 { font-size: clamp(52px, 7vw, 88px); margin-bottom: 0; }
.page-intro > p { margin: 0 0 8px; max-width: 470px; color: var(--ink-soft); line-height: 1.7; }
.party-directory { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; padding-top: 45px; }
.party-item { min-height: 250px; padding: 25px; border: 1px solid var(--line); border-radius: 12px; background: var(--canvas); display: flex; flex-direction: column; transition: transform .2s, background .2s; }
.party-item:hover { background: var(--white); }
.party-item-header { display: flex; align-items: center; gap: 13px; }
.party-symbol { width: 58px; height: 58px; padding: 7px; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid var(--line); border-radius: 12px; background: var(--white); overflow: hidden; }
.party-symbol img { width: 100%; height: 100%; object-fit: contain; }
.party-abbr { display: block; margin-bottom: 4px; color: var(--green); font-size: 12px; font-weight: 800; letter-spacing: 0; }
.party-item h2 { margin: 0; font-family: var(--font); font-size: 18px; letter-spacing: 0; }
.party-item p { color: var(--muted); font-size: 13px; }
.party-card-facts { margin: 25px 0 20px; display: grid; grid-template-columns: 1fr auto; gap: 16px; }
.party-card-facts div { display: grid; gap: 4px; }
.party-card-facts dt { color: var(--muted); font-size: 12px; font-weight: 700; letter-spacing: 0; }
.party-card-facts dd { margin: 0; font-size: 12px; font-weight: 650; }
.coverage-row { margin-top: auto; display: flex; justify-content: space-between; padding-top: 18px; border-top: 1px solid var(--line); font-size: 13px; }
.coverage-row span:last-child { color: var(--green); font-weight: 700; }

.topic-directory { display: grid; grid-template-columns: repeat(2, 1fr); padding-top: 45px; }
.topic-item { padding: 25px 4px; margin-right: 35px; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 1fr auto; align-items: center; }
.topic-item h2 { margin: 0 0 5px; font-family: var(--font); font-size: 22px; letter-spacing: 0; }
.topic-item span { color: var(--muted); font-size: 12px; }
.topic-item i { font-style: normal; font-size: 24px; color: var(--green); transition: transform .2s; }
.topic-item:hover i { transform: translateX(5px); }

.concept-directory { padding-top: 45px; display: grid; gap: 13px; }
.concept-item { --concept-accent: #475e75; --concept-tint: #ebf8ff; min-height: 118px; display: grid; grid-template-columns: 96px 1fr auto; gap: 22px; align-items: center; padding: 0 25px 0 0; border: 1px solid var(--line); border-radius: 12px; background: var(--canvas); overflow: hidden; transition: transform .2s, background .2s, box-shadow .2s; }
.concept-item:hover { background: var(--white); box-shadow: 0 14px 34px rgba(34, 53, 72, .06); }
.concept-leading { align-self: stretch; min-height: 116px; padding: 16px 10px 11px; display: grid; place-items: center; align-content: center; gap: 8px; border-left: 7px solid var(--concept-accent); background: var(--concept-tint); color: var(--concept-accent); }
.concept-leading small { color: var(--concept-accent); font-size: 8px; font-weight: 800; letter-spacing: 0; }
.concept-icon { width: 48px; height: 48px; }
.concept-item h2 { margin: 0 0 4px; font-family: var(--font); font-size: 20px; letter-spacing: 0; }
.concept-item p { margin: 0; color: var(--muted); font-size: 12px; }
.framework-count { padding: 8px 12px; border: 1px solid var(--line); border-radius: 8px; font-size: 12px; font-weight: 700; }
.concept-theme-autoritarismo { --concept-accent: #52647a; --concept-tint: #e8edf2; }
.concept-theme-comunismo { --concept-accent: #80605c; --concept-tint: #f0e7e5; }
.concept-theme-conservadorismo { --concept-accent: #8a6a36; --concept-tint: #f2eadc; }
.concept-theme-democracia-crista { --concept-accent: #61708c; --concept-tint: #e8ebf2; }
.concept-theme-ecologismo { --concept-accent: #4f7868; --concept-tint: #e4eee9; }
.concept-theme-fascismo { --concept-accent: #75546d; --concept-tint: #eee5ec; }
.concept-theme-iliberalismo { --concept-accent: #7a6352; --concept-tint: #eee8e2; }
.concept-theme-liberalismo { --concept-accent: #39758a; --concept-tint: #e2eef1; }
.concept-theme-libertarianismo { --concept-accent: #527588; --concept-tint: #e5edf1; }
.concept-theme-nacionalismo { --concept-accent: #4e6f83; --concept-tint: #e5edf1; }
.concept-theme-nativismo { --concept-accent: #7b6845; --concept-tint: #efeade; }
.concept-theme-populismo { --concept-accent: #8a5f55; --concept-tint: #f2e7e3; }
.concept-theme-retrocesso-democratico { --concept-accent: #667054; --concept-tint: #e9ede3; }
.concept-theme-social-democracia { --concept-accent: #566d8b; --concept-tint: #e6ebf2; }
.concept-theme-socialismo-democratico { --concept-accent: #6d6388; --concept-tint: #ece9f2; }

.page-intro.compact { padding-bottom: 45px; }
.compare-builder { padding-top: 45px; }
.compare-controls { display: grid; grid-template-columns: 1.1fr 1fr auto 1fr auto; gap: 13px; align-items: end; padding: 22px; border: 1px solid var(--line); border-radius: 12px; background: var(--canvas); }
.compare-controls label { display: grid; gap: 7px; color: var(--muted); font-size: 12px; letter-spacing: 0; font-weight: 700; }
.compare-controls select { width: 100%; min-width: 0; min-height: 47px; padding: 0 14px; border: 1px solid var(--line); border-radius: 8px; background: var(--white); color: var(--ink); }
.compare-controls label { min-width: 0; }
.compare-controls .button { white-space: nowrap; }
.versus { align-self: center; padding-top: 18px; color: var(--muted); }
.compare-result { margin-top: 22px; }
.comparison-table { display: grid; grid-template-columns: 170px 1fr 1fr; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: var(--white); }
.comparison-table > div { min-height: 92px; padding: 20px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.comparison-table > div:nth-child(3n) { border-right: 0; }
.comparison-table > div:nth-last-child(-n+3) { border-bottom: 0; }
.comparison-table .table-head { min-height: 68px; background: var(--green-deep); color: white; font-family: var(--font); font-weight: 700; }
.party-table-head { display: flex; align-items: center; gap: 11px; }
.table-party-avatar { width: 38px; height: 38px; padding: 5px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: var(--white); color: var(--green-deep); overflow: hidden; }
.table-party-avatar img { width: 100%; height: 100%; object-fit: contain; }
.comparison-table .row-label { color: var(--muted); font-size: 13px; font-weight: 700; letter-spacing: 0; }
.empty-evidence { color: var(--muted); font-size: 13px; line-height: 1.5; }
.empty-evidence b { display: block; margin-bottom: 4px; color: var(--ink); }

.method-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; padding-top: 45px; }
.method-grid article { min-height: 265px; padding: 25px; border: 1px solid var(--line); border-radius: 12px; background: var(--canvas); }
.method-grid span { color: var(--green); font-size: 13px; font-weight: 700; }
.method-grid h2 { margin: 42px 0 10px; font-family: var(--font); font-size: 28px; letter-spacing: 0; }
.method-grid p { color: var(--ink-soft); line-height: 1.65; font-size: 13px; }
.mission-editorial { max-width: 980px; padding-top: 8px; padding-bottom: 62px; }
.mission-editorial p { max-width: 840px; margin: 0 0 22px; color: var(--ink-soft); font-size: 17px; line-height: 1.75; }
.mission-editorial p:first-child { color: var(--ink-heading); font-size: 24px; line-height: 1.55; letter-spacing: -.02em; }
.mission-editorial strong { color: var(--ink-heading); }
.mission-editorial .mission-signoff { margin: 36px 0 0; padding-top: 26px; border-top: 1px solid var(--line); color: var(--primary); font-size: 21px; }
.mission-editorial .mission-signoff strong { color: var(--primary); }
.mission-layout { display: grid; grid-template-columns: 1.08fr .92fr; gap: 16px; padding-top: 6px; }
.mission-manifesto { min-height: 430px; padding: 42px; display: flex; flex-direction: column; justify-content: flex-end; border-radius: 16px; background: linear-gradient(145deg, #092e68, #075bb7); color: white; }
.mission-manifesto > span, .mission-boundaries > div > span { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.mission-manifesto h2 { max-width: 650px; margin: 22px 0 18px; color: white; font-size: clamp(34px, 4vw, 56px); line-height: 1.02; letter-spacing: -.045em; }
.mission-manifesto p { max-width: 620px; margin: 0; color: rgba(255,255,255,.76); font-size: 16px; line-height: 1.65; }
.mission-pillars { display: grid; gap: 12px; }
.mission-pillars article { min-height: 135px; padding: 24px; display: grid; grid-template-columns: 36px 1fr; gap: 18px; align-items: start; border: 1px solid var(--line); border-radius: 14px; background: var(--canvas); }
.mission-pillars i { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: var(--band-blue); color: var(--primary); font-style: normal; font-size: 11px; font-weight: 700; }
.mission-pillars h2 { margin: 2px 0 8px; font-size: 20px; letter-spacing: -.02em; }
.mission-pillars p { margin: 0; color: var(--ink-soft); font-size: 13px; line-height: 1.55; }
.mission-boundaries { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; padding-top: 56px; }
.mission-boundaries > div { padding: 32px; border-top: 3px solid var(--primary); background: var(--chrome); }
.mission-boundaries > div > span { color: var(--primary); }
.mission-boundaries h2 { margin: 22px 0; font-size: 30px; letter-spacing: -.03em; }
.mission-boundaries ul { margin: 0; padding: 0; list-style: none; }
.mission-boundaries li { position: relative; padding: 12px 0 12px 22px; border-top: 1px solid var(--line); color: var(--ink-soft); font-size: 14px; line-height: 1.45; }
.mission-boundaries li::before { content: ""; position: absolute; left: 2px; top: 18px; width: 6px; height: 6px; border-radius: 50%; background: var(--primary); }
.mission-method-link { margin-top: 16px; padding: 30px 32px; display: flex; align-items: center; justify-content: space-between; gap: 24px; border: 1px solid var(--line); border-radius: 14px; }
.mission-method-link p { margin: 0; color: var(--ink-soft); }
.placeholder-page { display: none; place-items: center; }
.placeholder-page.is-active { display: grid; }
.placeholder-inner { max-width: 820px; text-align: center; }
.placeholder-inner p { max-width: 650px; margin: 0 auto 27px; color: var(--ink-soft); line-height: 1.7; font-size: 17px; }
.placeholder-inner a { color: var(--green); font-weight: 700; }

.site-footer { background: var(--green-deep); color: white; padding: 36px 0; }
.footer-inner { display: grid; grid-template-columns: 1fr 1fr auto; gap: 28px; align-items: start; }
.footer-brand { color: white; }
.footer-inner p { margin: 0; color: rgba(255,255,255,.65); line-height: 1.6; }
.footer-inner nav { display: grid; gap: 10px; font-size: 12px; }

.drawer-backdrop { position: fixed; inset: 0; z-index: 70; background: rgba(2, 20, 50, .42); opacity: 0; pointer-events: none; transition: opacity .3s; }
.evidence-drawer { position: fixed; z-index: 71; top: 0; right: 0; width: min(530px, 100%); height: 100dvh; padding: 44px; background: var(--white); transform: translateX(105%); visibility: hidden; transition: transform .35s cubic-bezier(.22,.61,.36,1), visibility 0s linear .35s; overflow-y: auto; }
body.drawer-open { overflow: hidden; }
body.drawer-open .drawer-backdrop { opacity: 1; pointer-events: auto; }
body.drawer-open .evidence-drawer { transform: none; visibility: visible; transition: transform .35s cubic-bezier(.22,.61,.36,1); box-shadow: -30px 0 90px rgba(0,0,0,.16); }
.drawer-close { position: absolute; right: 26px; top: 24px; width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--line); background: none; font-size: 24px; cursor: pointer; }
.drawer-kicker { color: var(--green); letter-spacing: 0; font-size: 12px; font-weight: 700; }
.evidence-drawer h2 { margin: 21px 0 13px; max-width: 390px; font-family: var(--font); font-size: 38px; line-height: 1.08; letter-spacing: 0; }
.drawer-note { color: var(--orange); font-size: 12px; }
.drawer-steps { padding: 0; margin: 38px 0; list-style: none; }
.drawer-steps li { display: grid; grid-template-columns: 31px 1fr; gap: 15px; padding-bottom: 25px; position: relative; }
.drawer-steps li:not(:last-child)::after { content: ""; position: absolute; left: 15px; top: 33px; bottom: 2px; width: 1px; background: var(--line); }
.drawer-steps li > span { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 50%; background: var(--mint); color: var(--green); font-size: 12px; font-weight: 700; z-index: 1; }
.drawer-steps div { display: grid; gap: 5px; padding-top: 2px; }
.drawer-steps small { color: var(--muted); letter-spacing: 0; font-size: 12px; }
.drawer-steps strong { font-size: 14px; }
.drawer-steps p, .drawer-steps blockquote { margin: 3px 0 0; color: var(--ink-soft); font-size: 13px; line-height: 1.6; }
.drawer-steps blockquote { padding: 14px; background: var(--paper); border-left: 2px solid var(--orange); }
.drawer-method { padding: 18px; display: grid; grid-template-columns: 1fr auto; gap: 10px; background: var(--paper); border-radius: 12px; font-size: 13px; }
.drawer-method span { color: var(--muted); }

.reveal { opacity: 0; transform: translateY(18px); transition: opacity .65s ease, transform .65s ease; }
.reveal.is-visible { opacity: 1; transform: none; }
.delay-1 { transition-delay: .09s; }.delay-2 { transition-delay: .18s; }.delay-3 { transition-delay: .27s; }

@media (max-width: 1050px) {
  .site-header { grid-template-columns: auto auto 1fr; gap: 20px; }
  .menu-button { display: grid; width: 39px; height: 39px; place-content: center; gap: 6px; border: 1px solid var(--line); border-radius: 50%; background: transparent; }
  .menu-button span:not(.sr-only) { display: block; width: 16px; height: 1px; background: var(--ink); }
  .primary-nav { display: none; position: fixed; left: 24px; right: 24px; top: 70px; padding: 22px; background: var(--white); border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow); flex-direction: column; align-items: flex-start; }
  .primary-nav.is-open { display: flex; }
  .method-link { justify-self: end; }
  .hero { grid-template-columns: 1fr; gap: 15px; padding-top: 90px; }
  .hero-copy { max-width: 760px; }
  .hero-proof { max-width: 680px; width: 100%; margin: 0 auto; }
  .explore-grid { grid-template-columns: 1fr 1fr; }
  .card-concepts { grid-column: auto; }
  .evidence-layout { grid-template-columns: 1fr; gap: 70px; }
  .evidence-demo { max-width: 700px; }
  .difference-grid { grid-template-columns: 1fr 1fr; }
  .party-directory { grid-template-columns: 1fr 1fr; }
  .compare-controls { grid-template-columns: 1fr 1fr; }
  .compare-controls .versus { display: none; }
  .compare-controls .button { grid-column: 1 / -1; }
}

@media (max-width: 700px) {
  .shell { width: min(100% - 32px, 1180px); }
  .site-header { height: 68px; padding: 0 15px; }
  .brand { font-size: 14px; }
  .brand-logo { width: 28px; height: 28px; }
  .method-link { display: none; }
  .hero { min-height: auto; padding: 72px 0 45px; }
  .hero h1 { font-size: 55px; }
  .hero-lede { font-size: 16px; }
  .hero-actions { flex-direction: column; align-items: stretch; }
  .hero-proof { min-height: 470px; }
  .proof-card-main { width: 96%; padding: 23px; }
  .proof-card-main h2 { font-size: 24px; }
  .proof-stamp { width: 94px; height: 94px; right: -3px; top: 40px; }
  .proof-source { left: -2px; bottom: 25px; }
  .orbit-one { width: 350px; height: 350px; }.orbit-two { width: 270px; height: 270px; }
  .trust-inner { padding: 22px 0; display: block; }
  .trust-inner p { margin: 0 0 8px; }.trust-inner > span { display: block; margin-bottom: 14px; line-height: 1.5; }
  .explore-section, .difference-section { padding-top: 86px; padding-bottom: 92px; }
  .section-heading { grid-template-columns: 1fr; gap: 25px; margin-bottom: 38px; }
  .section-heading h2 { font-size: 37px; }
  .explore-grid { grid-template-columns: 1fr; }
  .card-concepts { grid-column: auto; }
  .explore-card { min-height: 430px; }
  .evidence-section { padding: 88px 0; }
  .claim-header { grid-template-columns: auto 1fr; }.confidence { grid-column: 1 / -1; justify-self: start; }
  .claim-card > p { font-size: 18px; }
  .source-preview { width: 96%; padding: 24px 17px; }
  .source-preview footer { display: grid; }
  .difference-grid { grid-template-columns: 1fr; }
  .difference-card { min-height: 250px; }
  .closing-inner { grid-template-columns: 1fr; gap: 35px; }
  .directory-page { padding: 72px 0 95px; }
  .page-intro { grid-template-columns: 1fr; gap: 25px; padding-bottom: 40px; }
  .page-intro h1 { font-size: 53px; }
  .party-directory, .topic-directory, .method-grid, .mission-layout, .mission-boundaries { grid-template-columns: 1fr; }
  .mission-manifesto { min-height: 360px; }
  .mission-editorial { padding-bottom: 42px; }
  .mission-editorial p:first-child { font-size: 21px; }
  .topic-item { margin-right: 0; }
  .concept-item { grid-template-columns: 35px 1fr; }.framework-count { grid-column: 2; justify-self: start; }
  .compare-controls { grid-template-columns: 1fr; }
  .comparison-table { grid-template-columns: 100px 1fr 1fr; font-size: 12px; overflow-x: auto; }
  .comparison-table > div { padding: 13px; }
  .footer-inner { grid-template-columns: 1fr; }
  .mission-method-link { align-items: flex-start; flex-direction: column; }
  .evidence-drawer { padding: 36px 22px; }
  .evidence-drawer h2 { font-size: 32px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}

/* Detail views and editorial workflows */
.detail-page { min-height: 850px; padding: 42px 0 130px; }
.detail-breadcrumb { display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: 13px; }
.detail-breadcrumb a:hover { color: var(--green); }
.detail-breadcrumb b { color: var(--ink); }
.entity-hero { padding: 66px 0 58px; display: grid; grid-template-columns: 1fr auto; align-items: end; border-bottom: 1px solid var(--line); }
.entity-title { display: flex; align-items: center; gap: 26px; }
.entity-avatar { width: 108px; height: 108px; padding: 15px; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid var(--line); border-radius: 12px; background: var(--white); color: var(--green-deep); font-family: var(--font); font-size: 30px; font-weight: 700; overflow: hidden; }
.entity-avatar img { width: 100%; height: 100%; object-fit: contain; }
.entity-title h1 { margin: 13px 0 4px; font-family: var(--font); font-size: clamp(58px, 8vw, 102px); line-height: .92; letter-spacing: 0; font-weight: 600; }
.concept-hero h1 { margin: 13px 0 4px; font-family: var(--font); font-size: clamp(40px, 5.2vw, 68px); line-height: 1; letter-spacing: 0; font-weight: 600; }
.entity-title p { margin: 0; color: var(--muted); }
.profile-status { min-width: 230px; padding: 18px; display: grid; gap: 6px; border: 1px solid var(--line); border-radius: 12px; background: var(--canvas); }
.profile-status > span { color: var(--muted); letter-spacing: 0; font-size: 12px; }
.profile-status strong { display: flex; align-items: center; gap: 8px; font-size: 13px; }
.verified-mark, .source-status.is-verified i, .status-pill i { width: 17px; height: 17px; display: inline-grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: var(--green); color: white; font-style: normal; font-size: 12px; line-height: 1; box-shadow: 0 0 0 3px rgba(0, 87, 210, .09); }
.profile-status small { color: var(--muted); }
.profile-layout { display: grid; grid-template-columns: 210px 1fr; gap: 70px; padding-top: 45px; }
.profile-nav { position: sticky; top: 100px; align-self: start; display: grid; }
.profile-nav button { padding: 14px 0; border: 0; border-bottom: 1px solid var(--line); background: none; color: var(--muted); text-align: left; cursor: pointer; }
.profile-nav button.is-active, .profile-nav button:hover { color: var(--green); font-weight: 700; }
.profile-nav button.is-active { position: relative; }
.profile-nav button.is-active::after { content: ""; position: absolute; right: 0; bottom: -1px; width: 34px; height: 2px; background: var(--orange); }
.party-tab-panel[hidden] { display: none !important; }
.profile-content { display: grid; gap: 70px; }
.profile-section { scroll-margin-top: 110px; }
.profile-section-head { display: grid; grid-template-columns: 1fr .8fr; gap: 35px; align-items: end; margin-bottom: 28px; }
.profile-section-head > div > span { color: var(--green); letter-spacing: 0; font-size: 12px; font-weight: 700; }
.profile-section-head h2 { margin: 8px 0 0; font-family: var(--font); font-size: 31px; letter-spacing: 0; }
.profile-section-head > p, .profile-section-head > a { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.profile-section-head > a { justify-self: end; color: var(--green); font-weight: 700; }
.party-deputies { margin-top: 16px; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: var(--canvas); }
.deputies-heading { padding: 18px; display: grid; gap: 6px; border-bottom: 1px solid var(--line); }
.deputies-heading span { color: var(--green); letter-spacing: 0; font-size: 8px; font-weight: 800; }
.deputies-heading strong { font-family: var(--font); font-size: 16px; }
.deputies-heading small { color: var(--muted); font-size: 13px; line-height: 1.5; }
.deputies-groups { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); }
.deputies-groups article { padding: 14px 18px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); margin: 0 -1px -1px 0; }
.deputies-groups article > span { color: var(--muted); letter-spacing: 0; font-size: 12px; font-weight: 700; }
.deputies-groups ul { margin: 8px 0 0; padding: 0; list-style: none; display: grid; gap: 5px; }
.deputies-groups li { color: var(--ink); font-size: 12px; line-height: 1.35; }
.deputies-groups li small { display: block; color: var(--muted); font-size: 12px; }
.parliament-summary { margin-bottom: 16px; display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.parliament-summary article { min-height: 105px; padding: 17px; display: flex; flex-direction: column; border-right: 1px solid var(--line); background: var(--canvas); }
.parliament-summary article:last-child { border-right: 0; }
.parliament-summary small { align-self: flex-start; display: inline-flex; align-items: center; min-height: 26px; padding: 4px 10px; border-radius: 999px; background: var(--band-blue); color: var(--primary-deep); letter-spacing: 0; font-size: 12px; font-weight: 600; line-height: 1.2; }
.parliament-summary strong { margin-top: auto; font-family: var(--font); font-size: 19px; }
.parliament-empty { margin-top: 16px; }
.dimension-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; align-items: start; }
.dimension-grid article { min-height: 112px; padding: 18px; display: grid; align-content: start; border: 1px solid var(--line); border-radius: 12px; background: var(--canvas); }
.dimension-grid article > span { color: var(--ink); font-size: 12px; font-weight: 700; }
.dimension-grid strong { margin-top: 23px; color: var(--muted); font-family: var(--font); font-size: 16px; }
.dimension-grid small { margin-top: 4px; color: var(--muted); font-size: 12px; }
.methodology-notice { margin-top: 16px; padding: 20px; display: grid; grid-template-columns: auto 1fr auto; gap: 18px; align-items: center; border-radius: 12px; background: var(--mint); }
.methodology-notice strong { color: var(--green-deep); font-size: 12px; }
.methodology-notice span { color: var(--green-deep); font-size: 13px; line-height: 1.5; }
.methodology-notice a { color: var(--green); font-size: 12px; font-weight: 700; }
.profile-sources { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.profile-sources a { min-height: 120px; padding: 18px; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 12px; background: var(--canvas); transition: transform .2s, background .2s; }
.profile-sources a:hover { background: var(--white); }
.profile-sources span { color: var(--green); font-size: 12px; font-weight: 800; letter-spacing: 0; }
.profile-sources strong { margin: 22px 0 5px; font-size: 13px; }
.profile-sources small { color: var(--muted); line-height: 1.45; }
.profile-sources small .source-status { display: inline-flex; align-items: center; gap: 5px; color: var(--muted); text-transform: none; letter-spacing: 0; font-size: inherit; font-weight: 500; }
.profile-sources small .source-status.is-verified { color: var(--green); }
.source-status.is-verified i { width: 14px; height: 14px; font-size: 8px; box-shadow: none; }
.coverage-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-left: 1px solid var(--line); border-top: 1px solid var(--line); }
.coverage-grid article { min-height: 155px; padding: 19px; display: flex; flex-direction: column; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.coverage-grid small { min-height: 35px; color: var(--muted); }
.coverage-grid strong { margin-top: auto; font-family: var(--font); font-size: 39px; }
.coverage-grid span { color: var(--muted); font-size: 12px; }
.empty-panel { min-height: 185px; padding: 30px; display: flex; align-items: center; gap: 22px; border: 1px dashed rgba(34, 53, 72, .24); border-radius: 12px; background: var(--canvas); }
.empty-glyph { width: 53px; height: 53px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: var(--paper-deep); color: var(--muted); font-size: 22px; }
.empty-panel h3 { margin: 0 0 6px; font-family: var(--font); font-size: 18px; }
.empty-panel p { margin: 0; max-width: 540px; color: var(--muted); font-size: 13px; line-height: 1.6; }
.party-position-list { display: grid; gap: 13px; }
.position-card { padding: 24px 26px; border: 1px solid var(--line); border-radius: 12px; background: var(--canvas); }
.position-card-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.position-card-head span { color: var(--green); letter-spacing: 0; font-size: 12px; font-weight: 800; }
.position-card-head b { padding: 6px 9px; border-radius: 8px; background: var(--mint); color: var(--green); font-size: 12px; }
.position-card h3 { max-width: 790px; margin: 27px 0 9px; font-family: var(--font); font-size: 21px; line-height: 1.45; letter-spacing: 0; }
.position-context { margin: 0 0 23px; color: var(--muted); font-size: 12px; }
.position-card details { border-top: 1px solid var(--line); }
.position-card summary { padding-top: 17px; display: flex; align-items: center; justify-content: space-between; color: var(--green); font-size: 13px; font-weight: 700; cursor: pointer; list-style: none; }
.position-card summary::-webkit-details-marker { display: none; }
.position-card details[open] summary span { transform: rotate(45deg); }
.position-card summary span { font-size: 18px; transition: transform .2s; }
.position-evidence { margin-top: 16px; padding: 21px; border-radius: 12px; background: var(--paper); }
.position-evidence > small { color: var(--muted); letter-spacing: 0; font-size: 8px; font-weight: 700; }
.position-evidence blockquote { margin: 11px 0; padding-left: 15px; border-left: 2px solid var(--orange); font-family: var(--font); font-size: 17px; }
.position-evidence > p { color: var(--ink-soft); font-size: 12px; line-height: 1.6; }
.position-evidence dl { margin: 19px 0; display: grid; grid-template-columns: 1.5fr 1fr .7fr; gap: 10px; }
.position-evidence dl div { display: grid; gap: 4px; }
.position-evidence dt { color: var(--muted); letter-spacing: 0; font-size: 8px; }
.position-evidence dd { margin: 0; font-size: 12px; line-height: 1.45; }
.position-evidence a { color: var(--green); font-size: 13px; font-weight: 700; }
.comparison-evidence { display: grid; gap: 10px; align-content: start; color: var(--ink-soft); line-height: 1.5; }
.comparison-evidence b { color: var(--ink); font-size: 12px; }
.comparison-evidence span { color: var(--muted); font-size: 12px; }
.comparison-evidence a { color: var(--green); font-size: 12px; font-weight: 700; }
.source-checklist { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.source-checklist span { padding: 15px; display: flex; align-items: center; gap: 12px; border: 1px solid var(--line); border-radius: 11px; font-size: 12px; }
.source-checklist i { width: 25px; height: 25px; display: grid; place-items: center; border-radius: 50%; background: var(--paper-deep); color: var(--muted); font-style: normal; font-size: 12px; }

/* Diretórios alimentados pelo repositório editorial */
.directory-toolbar { margin: -18px auto 34px; padding: 16px 18px; display: grid; grid-template-columns: auto minmax(220px, 420px) 1fr; gap: 15px; align-items: center; border: 1px solid var(--line); border-radius: 12px; background: var(--canvas); }
.directory-toolbar label { color: var(--muted); letter-spacing: 0; font-size: 12px; font-weight: 700; }
.directory-toolbar input { min-height: 44px; padding: 0 14px; border: 1px solid var(--line); border-radius: 8px; background: var(--white); color: var(--ink); outline: none; }
.directory-toolbar input:focus { border-color: var(--green); box-shadow: 0 0 0 3px rgba(0, 87, 210, .08); }
.directory-toolbar p { margin: 0; justify-self: end; color: var(--muted); font-size: 13px; }
.directory-toolbar strong { margin-right: 3px; color: var(--ink); font-family: var(--font); font-size: 20px; }
.party-symbol-fallback { padding: 6px; color: var(--green-deep); font-size: 12px; font-weight: 800; text-align: center; overflow-wrap: anywhere; }
.directory-empty { grid-column: 1 / -1; }

.election-directory { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.election-card { min-height: 300px; padding: 28px; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 12px; background: var(--canvas); transition: transform .2s, background .2s; }
.election-card:hover { background: var(--white); }
.election-card > div { display: flex; justify-content: space-between; color: var(--muted); letter-spacing: 0; font-size: 12px; }
.election-card > div b { padding: 5px 8px; border-radius: 8px; background: var(--mint); color: var(--green); }
.election-card h2 { margin: 58px 0 10px; font-family: var(--font); font-size: 30px; line-height: 1.12; letter-spacing: 0; }
.election-card p { margin: 0; color: var(--muted); font-size: 12px; }
.election-card > strong { margin-top: auto; color: var(--green); font-size: 12px; }
.election-hero h1 { max-width: 950px; font-size: clamp(52px, 7vw, 90px); }
.election-meta { margin-top: 30px; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.election-meta article { min-height: 115px; padding: 18px; display: flex; flex-direction: column; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.election-meta small { color: var(--muted); letter-spacing: 0; font-size: 12px; }
.election-meta strong { margin-top: auto; font-family: var(--font); font-size: 16px; }
.election-section { padding-top: 76px; }
.entity-catalog { display: flex; flex-wrap: wrap; gap: 8px; }
.entity-chip { min-width: 105px; padding: 12px 14px; display: grid; gap: 3px; border: 1px solid var(--line); border-radius: 8px; background: var(--canvas); font-family: var(--font); font-size: 13px; font-weight: 700; }
.entity-chip.has-party-avatar { grid-template-columns: auto 1fr; align-items: center; gap: 9px; }
.entity-chip > span:last-child { display: grid; gap: 3px; }
.entity-chip b { font-weight: 700; }
.entity-party-avatar { width: 36px; height: 36px; padding: 5px; display: grid; place-items: center; border-radius: 50%; border: 1px solid var(--line); background: var(--white); font-size: 8px; overflow: hidden; }
.entity-party-avatar img { width: 100%; height: 100%; object-fit: contain; }
.entity-chip small { color: var(--muted); font-family: var(--font); font-size: 8px; font-weight: 600; letter-spacing: 0; }
.entity-chip.coalition { border-color: rgba(18,87,68,.28); background: var(--mint); }
.entity-chip.historical_party { border-style: dashed; }
.coalition-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.coalition-card { min-height: 260px; padding: 22px; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 15px; background: var(--canvas); }
.coalition-card > span { color: var(--green); font-size: 12px; font-weight: 800; letter-spacing: 0; }
.coalition-card h3 { margin: 31px 0 8px; font-family: var(--font); font-size: 21px; letter-spacing: 0; }
.coalition-card p { margin: 0; color: var(--ink-soft); font-size: 12px; }
.coalition-card small { margin: 7px 0 20px; color: var(--muted); }
.coalition-members { display: flex; gap: 8px; margin-bottom: 5px; }
.coalition-members > span { display: grid; justify-items: center; gap: 3px; }
.coalition-members small { margin: 0; font-size: 8px; font-weight: 700; }
.coalition-party-avatar { width: 38px; height: 38px; padding: 5px; display: grid; place-items: center; border-radius: 50%; border: 1px solid var(--line); background: var(--white); font-size: 8px; overflow: hidden; }
.coalition-party-avatar img { width: 100%; height: 100%; object-fit: contain; }
.coalition-card a, .coalition-card em { margin-top: auto; color: var(--green); font-size: 13px; font-style: normal; line-height: 1.45; }
.coalition-card em { color: var(--muted); }

.document-row { min-height: 78px; padding: 14px 20px; display: grid; grid-template-columns: 1.5fr .7fr .5fr .5fr; gap: 15px; align-items: center; border-top: 1px solid var(--line); transition: background .15s; }
.document-row:hover { background: var(--white); }
.document-row > span { color: var(--ink-soft); font-size: 13px; line-height: 1.4; }
.document-row > span:first-child { display: grid; gap: 4px; }
.document-row strong { color: var(--ink); font-size: 12px; }
.document-row small { color: var(--muted); }
.document-owner { display: flex; align-items: center; gap: 7px; }
.document-owner small { line-height: 1.25; }
.document-party-avatar { width: 26px; height: 26px; padding: 4px; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid var(--line); border-radius: 50%; background: var(--white); font-size: 7px; overflow: hidden; }
.document-party-avatar img { width: 100%; height: 100%; object-fit: contain; }
.status-pill { justify-self: start; padding: 6px 8px; display: inline-flex; align-items: center; gap: 7px; border-radius: 8px; background: var(--paper-deep); color: var(--muted) !important; font-size: 12px !important; font-weight: 700; }
.status-pill i { width: 14px; height: 14px; font-size: 8px; box-shadow: none; }
.status-verified { background: var(--mint); color: var(--green) !important; }
.status-partially_verified { background: #fff0d7; color: #8b5c13 !important; }

.concept-hero { padding: 95px 0 72px; border-bottom: 1px solid var(--line); }
.concept-definition-hero { display: grid; grid-template-columns: 1fr; gap: 0; align-items: center; }
.concept-hero p { max-width: 720px; margin: 26px 0 0; color: var(--ink-soft); font-size: 17px; line-height: 1.7; }
.concept-hero-visual { --concept-accent: #475e75; --concept-tint: #ebf8ff; width: 180px; height: 180px; display: grid; place-items: center; border: 1px solid color-mix(in srgb, var(--concept-accent) 28%, transparent); border-radius: 12px; background: var(--concept-tint); color: var(--concept-accent); transform: rotate(3deg); }
.concept-hero-icon { width: 108px; height: 108px; transform: rotate(-3deg); }
.concept-reference { padding: 54px 0 58px; display: grid; grid-template-columns: .72fr 1.28fr; gap: 80px; border-bottom: 1px solid var(--line); }
.concept-reference-heading > span { color: var(--green); font-size: 12px; font-weight: 700; }
.concept-reference-heading h2 { max-width: 390px; margin: 10px 0 0; font-family: var(--font); font-size: 32px; line-height: 1.12; letter-spacing: 0; }
.concept-reference-copy > p:first-child { margin: 0; color: var(--ink); font-family: var(--font); font-size: 19px; line-height: 1.7; white-space: pre-line; }
.concept-reference-basis { margin: 28px 0 0; padding-top: 20px; display: flex; align-items: baseline; gap: 12px; border-top: 1px solid var(--line); }
.concept-reference-basis[hidden], .concept-reference-notes[hidden] { display: none; }
.concept-reference-basis span, .concept-reference-notes span { color: var(--green); font-size: 11px; font-weight: 750; }
.concept-reference-basis strong { color: var(--ink-soft); font-size: 13px; font-weight: 650; line-height: 1.5; }
.concept-reference-notes { margin-top: 22px; display: grid; gap: 10px; }
.concept-reference-notes p { margin: 0; padding: 14px 16px; display: grid; grid-template-columns: 104px 1fr; gap: 14px; border-left: 3px solid var(--blue); border-radius: 0 8px 8px 0; background: var(--paper); color: var(--ink-soft); font-size: 13px; line-height: 1.6; }
.framework-intro { padding: 55px 0 35px; display: grid; grid-template-columns: 1.1fr .9fr; gap: 80px; align-items: end; }
.framework-intro span { color: var(--green); letter-spacing: 0; font-size: 12px; font-weight: 700; }
.framework-intro h2 { margin: 9px 0 0; font-family: var(--font); font-size: 36px; line-height: 1.1; letter-spacing: 0; }
.framework-intro p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.7; }
.framework-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.framework-card { min-width: 0; min-height: 560px; padding: 28px; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 12px; background: var(--canvas); }
.framework-card-meta { display: flex; justify-content: space-between; color: var(--muted); letter-spacing: 0; font-size: 12px; }
.framework-card-meta b { color: var(--green); }
.framework-card h2 { margin: 38px 0 7px; font-family: var(--font); font-size: 27px; letter-spacing: 0; }
.framework-card p { margin: 0; color: var(--ink-soft); font-size: 13px; line-height: 1.6; }
.framework-author { color: var(--green) !important; font-size: 12px !important; font-weight: 750; letter-spacing: 0; }
.framework-definition { margin-top: 23px !important; font-family: var(--font); font-size: 16px !important; line-height: 1.55 !important; }
.framework-criteria { margin-top: 28px; padding-top: 20px; border-top: 1px solid var(--line); }
.framework-criteria > span, .framework-limits > span { color: var(--muted); letter-spacing: 0; font-size: 12px; font-weight: 700; }
.framework-criteria ol { margin: 13px 0 0; padding-left: 24px; display: grid; gap: 8px; }
.framework-criteria li { padding-left: 5px; color: var(--ink-soft); font-size: 13px; line-height: 1.5; }
.framework-criteria li::marker { color: var(--green); font-weight: 800; }
.framework-limits { margin: 24px 0; padding: 15px; border-radius: 8px; background: var(--paper); }
.framework-limits p { margin-top: 7px; font-size: 13px; }
.framework-source { margin-top: auto; padding-top: 18px; display: flex; justify-content: space-between; align-items: end; gap: 20px; border-top: 1px solid var(--line); }
.framework-source > span { min-width: 0; display: grid; gap: 4px; }
.framework-source small { color: var(--muted); letter-spacing: 0; font-size: 8px; }
.framework-source strong { color: var(--ink); font-size: 13px; line-height: 1.4; }
.framework-source em { color: var(--muted); font-size: 12px; font-style: normal; }
.framework-source strong, .framework-source em { overflow-wrap: anywhere; }
.framework-source > b { flex: 0 0 auto; color: var(--green); font-size: 12px; }
.registry-note { margin-top: 18px; padding: 19px 22px; display: flex; align-items: center; gap: 24px; background: var(--mint); border-radius: 12px; }
.registry-note span { flex: 0 0 auto; color: var(--green); letter-spacing: 0; font-size: 12px; font-weight: 700; }
.registry-note p { margin: 0; color: var(--green-deep); font-size: 12px; line-height: 1.5; }
.concept-registry-note { margin-bottom: 95px; display: grid; grid-template-columns: auto 1fr auto; }
.concept-registry-note small { color: var(--green-deep); font-size: 12px; white-space: nowrap; }

.registry-toolbar { padding: 36px 0 22px; display: grid; grid-template-columns: 1.4fr .8fr .8fr; gap: 12px; }
.registry-toolbar label, .correction-form label, .contact-form label { display: grid; gap: 7px; color: var(--muted); letter-spacing: 0; font-size: 12px; font-weight: 700; }
.registry-toolbar input, .registry-toolbar select, .correction-form input, .correction-form select, .correction-form textarea, .contact-form input, .contact-form select, .contact-form textarea { width: 100%; padding: 0 14px; min-height: 47px; border: 1px solid var(--line); border-radius: 8px; background: var(--white); color: var(--ink); outline: none; }
.registry-toolbar input:focus, .registry-toolbar select:focus, .correction-form input:focus, .correction-form select:focus, .correction-form textarea:focus, .contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color: var(--green); box-shadow: 0 0 0 3px rgba(0, 87, 210, .08); }
.registry-summary { display: grid; grid-template-columns: 160px 160px 1fr; gap: 12px; padding: 18px; border-radius: 12px; background: var(--green-deep); color: white; }
.registry-summary div { display: grid; }
.registry-summary strong { font-family: var(--font); font-size: 29px; }
.registry-summary span, .registry-summary p { color: rgba(255,255,255,.58); font-size: 12px; }
.registry-summary p { margin: 0; align-self: center; line-height: 1.6; }
.document-table { margin-top: 15px; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: var(--canvas); }
.document-table-head { display: grid; grid-template-columns: 1.5fr .7fr .5fr .5fr; padding: 14px 20px; background: var(--paper-deep); color: var(--muted); letter-spacing: 0; font-size: 12px; font-weight: 700; }
.document-empty { min-height: 290px; display: flex; align-items: center; justify-content: center; gap: 20px; }
.document-empty h2 { margin: 0 0 6px; font-family: var(--font); font-size: 22px; }
.document-empty p { margin: 0; color: var(--muted); font-size: 12px; }

.correction-layout { padding-top: 45px; display: grid; grid-template-columns: .9fr 1.1fr; gap: 80px; }
.correction-principles ol { margin: 34px 0 0; padding: 0; list-style: none; }
.correction-principles li { padding: 20px 0; display: grid; grid-template-columns: 35px 1fr; gap: 14px; border-bottom: 1px solid var(--line); }
.correction-principles li i { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: var(--mint); color: var(--green); font-style: normal; font-size: 12px; font-weight: 700; }
.correction-principles strong { font-family: var(--font); font-size: 15px; }
.correction-principles p { margin: 5px 0 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.correction-form { padding: 28px; display: grid; gap: 19px; border: 1px solid var(--line); border-radius: 12px; background: var(--canvas); }
.correction-form textarea { padding-top: 13px; resize: vertical; }
.checkbox-label input { width: 15px; min-height: 15px; margin: 1px 0 0; }
.correction-form .button { justify-self: start; }
.form-result { min-height: 20px; margin: 0; color: var(--green); font-size: 12px; line-height: 1.5; }

.contact-layout { padding-top: 45px; padding-bottom: 95px; display: grid; grid-template-columns: .8fr 1.2fr; gap: 80px; }
.contact-guidance > ul { margin: 28px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.contact-guidance li { padding: 18px 0; border-bottom: 1px solid var(--line); }
.contact-guidance strong { color: var(--ink-heading); font-size: 14px; }
.contact-guidance li p { margin: 5px 0 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.contact-direct { margin: 24px 0 0; color: var(--ink-list); font-size: 12px; line-height: 1.6; }
.contact-direct a { color: var(--green); font-weight: 700; }
.contact-form { padding: 28px; display: grid; gap: 19px; border: 1px solid var(--line); border-radius: 12px; background: var(--canvas); }
.contact-form textarea { padding-top: 13px; resize: vertical; }
.contact-form .button { justify-self: start; }
.contact-privacy { margin: -2px 0 0; color: var(--muted); font-size: 10px; line-height: 1.5; }

@media (max-width: 900px) {
  .entity-hero, .profile-section-head, .concept-reference, .framework-intro, .correction-layout, .contact-layout { grid-template-columns: 1fr; gap: 28px; }
  .concept-definition-hero { grid-template-columns: 1fr; gap: 0; }
  .profile-layout { grid-template-columns: 1fr; gap: 38px; }
  .profile-nav { position: static; display: flex; overflow-x: auto; gap: 20px; }
  .profile-nav button { flex: 0 0 auto; }
  .coverage-grid, .parliament-summary { grid-template-columns: 1fr 1fr; }
  .profile-sources { grid-template-columns: 1fr 1fr; }
  .registry-toolbar { grid-template-columns: 1fr 1fr; }
  .registry-toolbar label:first-child { grid-column: 1 / -1; }
  .directory-toolbar { grid-template-columns: auto 1fr; }
  .directory-toolbar p { grid-column: 1 / -1; justify-self: start; }
  .election-meta { grid-template-columns: 1fr 1fr; }
  .coalition-grid { grid-template-columns: 1fr 1fr; }
  .concept-registry-note { grid-template-columns: 1fr; gap: 10px; }
}

@media (max-width: 620px) {
  .detail-page { padding-top: 25px; }
  .entity-hero { padding-top: 45px; }
  .entity-title { align-items: flex-start; gap: 16px; }
  .concept-item { grid-template-columns: 76px 1fr; padding-right: 16px; gap: 15px; }
  .concept-leading { min-height: 126px; }
  .concept-icon { width: 40px; height: 40px; }
  .concept-item .framework-count { grid-column: 2; margin: -10px 0 14px; justify-self: start; }
  .concept-definition-hero { grid-template-columns: 1fr; }
  .concept-reference { padding: 38px 0 42px; }
  .concept-reference-heading h2 { font-size: 28px; }
  .concept-reference-copy > p:first-child { font-size: 17px; }
  .concept-reference-notes p { grid-template-columns: 1fr; gap: 6px; }
  .concept-hero-visual { width: 110px; height: 110px; border-radius: 12px; }
  .concept-hero-icon { width: 68px; height: 68px; }
  .entity-avatar { width: 64px; height: 64px; padding: 9px; border-radius: 12px; font-size: 20px; }
  .entity-title h1 { font-size: 52px; }
  .concept-hero h1 { font-size: 42px; }
  .profile-status { width: 100%; }
  .coverage-grid, .source-checklist, .framework-grid, .profile-sources, .parliament-summary, .dimension-grid { grid-template-columns: 1fr; }
  .parliament-summary article { border-right: 0; border-bottom: 1px solid var(--line); }
  .methodology-notice { grid-template-columns: 1fr; gap: 7px; }
  .position-card { padding: 20px; }
  .position-evidence dl { grid-template-columns: 1fr; }
  .coverage-grid article { min-height: 125px; }
  .framework-card ul { grid-template-columns: 1fr; }
  .registry-note { align-items: flex-start; flex-direction: column; gap: 8px; }
  .registry-toolbar, .registry-summary { grid-template-columns: 1fr; }
  .registry-toolbar label:first-child { grid-column: auto; }
  .document-table-head { display: none; }
  .document-empty { padding: 50px 24px; align-items: flex-start; }
  .directory-toolbar, .election-directory, .coalition-grid { grid-template-columns: 1fr; }
  .directory-toolbar p { grid-column: auto; }
  .election-meta { grid-template-columns: 1fr; }
  .document-row { grid-template-columns: 1fr; gap: 7px; }
}

/* Cobertura, temas e evidência publicada */
.eyebrow-text { font-weight: inherit; }
.coverage-band { padding: 0 0 120px; }
.coverage-band-inner { padding: 34px; display: grid; grid-template-columns: .9fr 1.4fr auto; gap: 40px; align-items: center; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); }
.coverage-band h2 { margin: 10px 0 0; font-family: var(--font); font-size: 25px; line-height: 1.2; letter-spacing: 0; }
.coverage-band-stats { margin: 0; display: grid; grid-template-columns: repeat(4, 1fr); border-left: 1px solid var(--line); }
.coverage-band-stats div { padding: 4px 18px; display: grid; gap: 6px; border-right: 1px solid var(--line); }
.coverage-band-stats dt { color: var(--muted); letter-spacing: 0; font-size: 12px; font-weight: 700; }
.coverage-band-stats dd { margin: 0; font-family: var(--font); font-size: 34px; font-weight: 600; letter-spacing: 0; }
.coverage-band-link { color: var(--green); font-size: 13px; font-weight: 700; white-space: nowrap; }
.coverage-band-link b { margin-left: 6px; }
.topic-list i { transition: width .6s ease; }

.topic-groups { padding-top: 30px; display: grid; gap: 34px; }
.topic-group-title { margin: 0; padding-bottom: 12px; border-bottom: 2px solid var(--ink); color: var(--green); letter-spacing: 0; font-size: 12px; font-weight: 800; font-family: var(--font); }
.topic-groups .topic-directory { padding-top: 0; column-gap: 35px; }
.topic-item { grid-template-columns: 1fr auto auto; gap: 18px; margin-right: 0; }
.topic-item h3 { margin: 0 0 5px; font-family: var(--font); font-size: 21px; letter-spacing: 0; }
.topic-item p { margin: 0 0 9px; max-width: 430px; color: var(--ink-soft); font-size: 12px; line-height: 1.5; }
.topic-item > div > span { color: var(--green); font-size: 13px; font-weight: 700; }
.topic-item.is-empty > div > span { color: var(--muted); font-weight: 500; }
.topic-avatars { display: flex; padding-left: 8px; }
.topic-avatar { width: 30px; height: 30px; margin-left: -8px; padding: 4px; display: grid; place-items: center; flex: 0 0 auto; border: 2px solid var(--paper); border-radius: 50%; background: var(--white); font-size: 7px; overflow: hidden; }
.topic-avatar img { width: 100%; height: 100%; object-fit: contain; }
.topic-avatar-more { background: var(--paper-deep); color: var(--ink-soft); font-size: 12px; font-weight: 800; }
.coalition-symbol { background: var(--mint); color: var(--green-deep); }

.coverage-matrix-section { padding-top: 90px; }
.coverage-legend { margin-bottom: 14px; display: flex; flex-wrap: wrap; gap: 20px; color: var(--muted); font-size: 13px; }
.coverage-legend span { display: inline-flex; align-items: center; gap: 8px; }
.coverage-matrix-scroll { overflow-x: auto; border: 1px solid var(--line); border-radius: 12px; background: var(--white); }
.coverage-matrix-scroll:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }
.coverage-matrix { width: 100%; border-collapse: collapse; font-size: 13px; }
.coverage-matrix th, .coverage-matrix td { padding: 0; border-bottom: 1px solid var(--line); text-align: center; }
.coverage-matrix thead th { height: 150px; padding: 12px 0; vertical-align: bottom; font-weight: 600; }
.coverage-matrix thead th a { display: inline-block; writing-mode: vertical-rl; transform: rotate(180deg); color: var(--ink-soft); white-space: nowrap; }
.coverage-matrix thead th a:hover { color: var(--green); }
.coverage-matrix .matrix-corner { min-width: 120px; padding-left: 16px; text-align: left; color: var(--muted); letter-spacing: 0; font-size: 12px; }
.coverage-matrix .matrix-total-head span { writing-mode: vertical-rl; transform: rotate(180deg); color: var(--muted); }
.coverage-matrix tbody th { position: sticky; left: 0; z-index: 1; background: var(--white); text-align: left; }
.coverage-matrix tbody th a { padding: 9px 16px; display: flex; align-items: center; gap: 9px; font-weight: 700; }
.coverage-matrix tbody th a:hover span { color: var(--green); }
.coverage-matrix tbody tr:last-child > * { border-bottom: 0; }
.coverage-matrix tbody tr:hover td, .coverage-matrix tbody tr:hover th { background: #f5f6f7; }
.coverage-matrix td { min-width: 34px; }
.matrix-party-avatar { width: 28px; height: 28px; padding: 3px; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid var(--line); border-radius: 50%; background: var(--white); font-size: 7px; overflow: hidden; }
.matrix-party-avatar img { width: 100%; height: 100%; object-fit: contain; }
.matrix-dot { width: 12px; height: 12px; display: inline-block; vertical-align: middle; border: 1px solid rgba(34, 53, 72, .22); border-radius: 50%; background: transparent; }
.matrix-dot.is-own { border-color: var(--green); background: var(--green); }
.matrix-dot.is-coalition { border-color: var(--green); background: linear-gradient(90deg, var(--green) 50%, var(--white) 50%); }
.matrix-total { padding-right: 16px !important; color: var(--ink); font-family: var(--font); font-weight: 700; }

.topic-hero h1 { max-width: 950px; }
.topic-owner-list { display: grid; gap: 22px; }
.topic-owner { display: grid; grid-template-columns: 230px 1fr; gap: 30px; padding-top: 22px; border-top: 1px solid var(--line); }
.topic-owner-head { position: sticky; top: 100px; align-self: start; display: grid; gap: 12px; }
.topic-owner-head span { color: var(--muted); font-size: 12px; line-height: 1.45; }
.topic-owner-head h3 { margin: 4px 0 0; font-family: var(--font); font-size: 18px; line-height: 1.25; letter-spacing: 0; }
.topic-owner-head h3 a:hover { color: var(--green); }
.topic-owner-avatar { width: 56px; height: 56px; padding: 7px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 12px; background: var(--white); font-size: 13px; font-weight: 800; overflow: hidden; }
.topic-owner-avatar img { width: 100%; height: 100%; object-fit: contain; }
.topic-owner-positions { display: grid; gap: 12px; }
.topic-compare-note { margin-top: 70px; display: grid; grid-template-columns: auto 1fr auto; }
#topic-gaps a.entity-chip { transition: background .2s; }
#topic-gaps a.entity-chip:hover { background: var(--white); }

.confidence-badge { padding: 6px 9px; border-radius: 8px; font-size: 12px; font-weight: 700; white-space: nowrap; }
.confidence-high { background: var(--mint); color: var(--green); }
.confidence-medium { background: #f3ead6; color: #7a5a1c; }
.confidence-low { background: #f6e0d6; color: #8f4529; }
.position-card-head b.confidence-medium { background: #f3ead6; color: #7a5a1c; }
.position-card-head b.confidence-low { background: #f6e0d6; color: #8f4529; }
.position-evidence blockquote + p { margin-bottom: 18px; }
.position-actions { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding-top: 14px; border-top: 1px solid var(--line); }
.position-actions button { padding: 0; border: 0; background: none; color: var(--green-deep); font-size: 13px; font-weight: 700; cursor: pointer; }
.position-actions button:hover { color: var(--green); text-decoration: underline; text-underline-offset: 3px; }
.coalition-positions { margin-top: 30px; padding: 22px; display: grid; gap: 12px; border: 1px solid rgba(0, 87, 210, .22); border-radius: 12px; background: rgba(235, 248, 255, .32); }
.coalition-positions-head span { color: var(--green); letter-spacing: 0; font-size: 12px; font-weight: 800; }
.coalition-positions-head h3 { margin: 8px 0 6px; font-family: var(--font); font-size: 22px; letter-spacing: 0; }
.coalition-positions-head p { margin: 0 0 6px; max-width: 760px; color: var(--green-deep); font-size: 12px; line-height: 1.6; }
.coverage-coalition-note { margin: 14px 0 0; padding: 14px 16px; border-radius: 12px; background: var(--paper-deep); color: var(--ink-soft); font-size: 12px; line-height: 1.6; }
.coverage-coalition-note[hidden] { display: none; }
.coalition-positions-count { margin: 0 0 14px !important; color: var(--green) !important; font-size: 13px !important; font-weight: 700; }

.comparison-evidence { gap: 14px; }
.comparison-item { display: grid; gap: 6px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.comparison-item:last-child { padding-bottom: 0; border-bottom: 0; }
.comparison-item b { color: var(--ink); font-size: 13px; line-height: 1.45; }
.comparison-item span { color: var(--muted); font-size: 12px; }
.comparison-item button { justify-self: start; padding: 0; border: 0; background: none; color: var(--green); font-size: 13px; font-weight: 700; cursor: pointer; }
.comparison-evidence.is-coalition em { padding: 7px 9px; border-radius: 8px; background: var(--mint); color: var(--green-deep); font-size: 12px; font-style: normal; font-weight: 700; line-height: 1.4; }
.compare-footnote { margin: 16px 0 0; text-align: right; font-size: 12px; font-weight: 700; color: var(--green); }

.drawer-note.is-real { color: var(--green); }
.drawer-steps blockquote cite { display: block; margin-top: 8px; color: var(--muted); font-size: 12px; font-style: normal; }
.drawer-steps blockquote + blockquote { margin-top: 8px; }
.drawer-source-link { justify-self: start; margin-top: 4px; color: var(--green); font-size: 12px; font-weight: 700; }

/* Parlamento */
.parliament-layout { padding-top: 45px; display: grid; grid-template-columns: 1.15fr .85fr; gap: 40px; align-items: start; }
.hemicycle-card { margin: 0; padding: 30px 30px 24px; position: relative; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); }
.hemicycle-figure { position: relative; }
.hemicycle { width: 100%; height: auto; display: block; }
.seat-group { transition: opacity .2s; }
.hemicycle.is-highlighting .seat-group { opacity: .18; }
.hemicycle.is-highlighting .seat-group.is-highlighted { opacity: 1; }
.hemicycle-total { position: absolute; left: 50%; bottom: 3%; transform: translateX(-50%); display: grid; justify-items: center; text-align: center; }
.hemicycle-total strong { font-family: var(--font); font-size: 44px; letter-spacing: 0; line-height: 1; }
.hemicycle-total span { color: var(--muted); font-size: 13px; }
.hemicycle-total small { margin-top: 6px; color: var(--green); font-size: 12px; font-weight: 700; }
.hemicycle-card figcaption { margin-top: 22px; padding-top: 16px; border-top: 1px solid var(--line); color: var(--muted); font-size: 13px; line-height: 1.55; }
.parliament-groups { display: grid; gap: 6px; }
.parliament-group { min-height: 62px; padding: 9px 14px; display: grid; grid-template-columns: 6px auto 1fr auto; gap: 12px; align-items: center; border: 1px solid var(--line); border-radius: 12px; background: var(--canvas); transition: background .2s, transform .2s; }
.parliament-group:hover { transform: translateX(3px); background: var(--white); }
.seat-swatch { align-self: stretch; border-radius: 4px; }
.party-color-bar { width: 22px; height: 4px; display: block; border-radius: 2px; }
.parliament-group-avatar { width: 38px; height: 38px; padding: 5px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: var(--white); font-size: 8px; overflow: hidden; }
.parliament-group-avatar img { width: 100%; height: 100%; object-fit: contain; }
.parliament-group > span { min-width: 0; display: grid; gap: 2px; }
.parliament-group b { font-size: 13px; }
.parliament-group > span small { overflow: hidden; color: var(--muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.parliament-group strong { display: grid; justify-items: end; font-family: var(--font); font-size: 22px; letter-spacing: 0; }
.parliament-group strong small { color: var(--muted); font-family: var(--font); font-size: 12px; font-weight: 500; letter-spacing: 0; }
.parliament-activity { margin-bottom: 16px; }
.constituency-table { width: 100%; border-collapse: collapse; font-size: 12px; font-variant-numeric: tabular-nums; }
.constituency-table th, .constituency-table td { padding: 9px 10px; border-bottom: 1px solid var(--line); text-align: center; }
.constituency-table thead th { padding: 12px 8px; background: var(--paper-deep); color: var(--muted); font-size: 12px; font-weight: 700; }
.constituency-table thead th:first-child, .constituency-table tbody th, .constituency-table tfoot th { position: sticky; left: 0; z-index: 1; padding-left: 16px; background: var(--white); text-align: left; font-weight: 600; white-space: nowrap; }
.constituency-table thead th:first-child { background: var(--paper-deep); letter-spacing: 0; font-size: 12px; }
.constituency-table thead a { display: grid; justify-items: center; gap: 5px; color: var(--ink); }
.constituency-table thead a:hover span { color: var(--green); }
.constituency-table td.is-zero { color: rgba(34, 53, 72, .25); }
.constituency-table tbody tr:hover > * { background: #f5f6f7; }
.constituency-table tfoot > tr > * { border-bottom: 0; background: var(--paper-deep) !important; font-weight: 800; }
.constituency-table .matrix-total { padding-right: 16px; }
.parliament-sources { margin-top: 16px; grid-template-columns: repeat(3, 1fr); }

/* Votações parlamentares (cores indicam o sentido do voto, nunca o partido) */
.vote-pill, .vote-cell { display: inline-flex; align-items: center; justify-content: center; border-radius: 8px; font-weight: 700; white-space: nowrap; }
.vote-pill { padding: 5px 9px; font-size: 12px; }
.vote-favor { background: var(--mint); color: var(--green); }
.vote-against { background: #f6e0d6; color: #8f4529; }
.vote-abstention { background: #f3ead6; color: #7a5a1c; }
.vote-absent { background: var(--paper-deep); color: var(--muted); }
.vote-not_recorded { background: transparent; color: var(--muted); box-shadow: inset 0 0 0 1px var(--line); }
.vote-toolbar { margin: 16px 0; display: grid; grid-template-columns: minmax(200px, 320px) minmax(180px, 260px) 1fr; gap: 12px; align-items: end; }
.vote-toolbar label { display: grid; gap: 7px; color: var(--muted); letter-spacing: 0; font-size: 12px; font-weight: 700; }
.vote-toolbar.has-author { grid-template-columns: minmax(180px, 240px) minmax(200px, 300px) minmax(180px, 240px) 1fr; }
.vote-toolbar select { min-height: 44px; padding: 0 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--white); color: var(--ink); }
.vote-toolbar p { margin: 0 0 12px; justify-self: end; color: var(--muted); font-size: 12px; }
.vote-list { display: grid; gap: 12px; margin-bottom: 16px; }
.vote-card { padding: 22px; display: grid; gap: 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--canvas); }
.vote-card header { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 16px; color: var(--muted); font-size: 13px; }
.vote-result { color: var(--ink); font-size: 13px; }
.vote-card h3 { margin: 0; max-width: 900px; font-family: var(--font); font-size: 18px; line-height: 1.35; letter-spacing: 0; }
.vote-topic { justify-self: start; padding: 4px 9px; border: 1px solid var(--line); border-radius: 8px; color: var(--green); font-size: 12px; font-weight: 700; }
.vote-topic.is-none { color: var(--muted); font-weight: 500; }
.vote-groups { display: grid; gap: 8px; }
.vote-group { padding: 10px 12px; display: grid; grid-template-columns: 90px 1fr; gap: 12px; align-items: center; border-radius: 12px; }
.vote-group > small { font-size: 12px; font-weight: 800; letter-spacing: 0; }
.vote-group > span { display: flex; flex-wrap: wrap; gap: 6px; }
.vote-chip { box-shadow: inset 0 0 0 1.5px var(--party-color, transparent); padding: 3px 9px 3px 3px; display: inline-flex; align-items: center; gap: 6px; border-radius: 8px; background: var(--white); color: var(--ink); font-size: 13px; }
.vote-chip i { color: var(--muted); font-size: 12px; font-style: normal; }
.vote-avatar { width: 22px; height: 22px; padding: 2px; display: grid; place-items: center; border-radius: 50%; font-size: 6px; overflow: hidden; }
.vote-avatar img { width: 100%; height: 100%; object-fit: contain; }
.vote-note { margin: 0; color: var(--ink-soft); font-size: 12px; }
.vote-source-reference { color: var(--muted); font-size: 12px; }
.vote-source-reference b { color: var(--ink-list); }
.vote-parent { margin: -4px 0 0; color: var(--muted); font-size: 12px; }
.vote-more { justify-self: center; margin-top: 6px; }
.vote-card footer, .party-vote-links { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
.vote-card footer a, .party-vote-links a, .vote-matrix th small a { color: var(--green); font-size: 13px; font-weight: 700; }
.vote-matrix { width: 100%; border-collapse: collapse; font-size: 12px; }
.vote-matrix th, .vote-matrix td { padding: 10px 8px; border-bottom: 1px solid var(--line); text-align: center; }
.vote-matrix thead th { background: var(--paper-deep); color: var(--muted); font-size: 12px; }
.vote-matrix thead a { display: grid; justify-items: center; gap: 4px; color: var(--ink); }
.vote-matrix thead th:first-child, .vote-matrix tbody th { min-width: 280px; padding-left: 16px; text-align: left; }
.vote-matrix tbody th { position: sticky; left: 0; z-index: 1; background: var(--white); font-weight: 400; }
.vote-matrix tbody th b { display: block; font-size: 12px; line-height: 1.4; }
.vote-matrix tbody th small { margin-top: 4px; display: flex; flex-wrap: wrap; gap: 4px 10px; color: var(--muted); font-size: 12px; }
.vote-matrix tbody tr:last-child > * { border-bottom: 0; }
.vote-cell { width: 34px; height: 26px; font-size: 12px; }
.vote-cell.has-split { box-shadow: inset 0 0 0 2px currentColor; }
.vote-matrix-result { padding-right: 16px !important; color: var(--ink-soft); font-size: 13px; }
.vote-matrix-empty { padding: 26px 18px !important; color: var(--muted); text-align: left !important; }
.vote-legend { margin-top: 12px; display: flex; flex-wrap: wrap; gap: 14px; color: var(--muted); font-size: 13px; }
.vote-legend > span { display: inline-flex; align-items: center; gap: 6px; }
.vote-legend .vote-cell { width: 30px; height: 22px; }
.party-votes, .party-initiatives { margin-top: 16px; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: var(--canvas); }
.party-votes[hidden], .party-initiatives[hidden] { display: none; }
.party-initiatives .party-vote-list li { grid-template-columns: 1fr auto; }
.party-initiatives .vote-result { padding-top: 2px; white-space: nowrap; }
.party-votes-head { padding: 18px; display: grid; gap: 6px; border-bottom: 1px solid var(--line); }
.party-votes-head > span { color: var(--green); letter-spacing: 0; font-size: 8px; font-weight: 800; }
.party-votes-head strong { font-family: var(--font); font-size: 16px; }
.party-votes-head small { color: var(--muted); font-size: 13px; line-height: 1.5; }
.party-vote-counts { margin-top: 6px; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; }
.party-vote-counts b { margin-right: 8px; font-family: var(--font); font-size: 15px; }
.party-vote-list { margin: 0; padding: 0; list-style: none; max-height: 560px; overflow-y: auto; }
.party-vote-list li { padding: 12px 18px; display: grid; grid-template-columns: 92px 1fr auto; gap: 14px; align-items: start; border-bottom: 1px solid var(--line); }
.party-vote-list li:last-child { border-bottom: 0; }
.party-vote-list li > div { display: grid; gap: 3px; }
.party-vote-list b { font-size: 12px; line-height: 1.4; }
.party-vote-list small { color: var(--muted); font-size: 12px; }
.party-vote-list .vote-split { color: #7a5a1c; }
.party-vote-list .vote-pill { justify-self: start; }
.comparison-votes { display: grid; gap: 10px; }
.comparison-vote { display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: start; }
.comparison-vote b { display: -webkit-box; overflow: hidden; color: var(--ink); font-size: 12px; line-height: 1.4; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.comparison-vote small { color: var(--muted); font-size: 12px; }

/* Perfis: notas de liderança, fonte da fundação e resultados eleitorais do partido */
.party-tab-panel > .profile-section + .profile-section { margin-top: 64px; }
.party-election-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.party-election-grid article { min-height: 150px; padding: 20px; display: flex; flex-direction: column; gap: 6px; border: 1px solid var(--line); border-radius: 12px; background: var(--canvas); }
.party-election-grid small { color: var(--muted); letter-spacing: 0; font-size: 12px; font-weight: 700; }
.party-election-grid strong { margin-top: 10px; font-family: var(--font); font-size: 22px; letter-spacing: 0; }
.party-election-grid span { color: var(--ink-soft); font-size: 12px; line-height: 1.5; }
.party-election-grid a { margin-top: auto; padding-top: 10px; color: var(--green); font-size: 12px; font-weight: 700; }
#party-elections[hidden] { display: none; }

/* Resultados eleitorais */
.result-summary { margin-top: 0; }
.result-summary article > span { margin-top: 4px; color: var(--muted); font-size: 12px; }
.result-list { margin: 16px 0 0; padding: 0; list-style: none; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: var(--white); }
.result-row { padding: 11px 18px; display: grid; grid-template-columns: minmax(200px, 1.2fr) 1.6fr 72px 120px; gap: 16px; align-items: center; border-bottom: 1px solid var(--line); }
.result-list.has-seats .result-row { grid-template-columns: minmax(200px, 1.2fr) 1.6fr 72px 120px 84px; }
.result-row:last-child { border-bottom: 0; }
.result-row.is-highlighted { background: rgba(235, 248, 255, .28); }
.result-entity { min-width: 0; display: flex; align-items: center; gap: 10px; }
.result-entity > span:last-child { min-width: 0; display: grid; gap: 2px; }
.result-entity b { font-size: 13px; }
.result-entity small { overflow: hidden; color: var(--muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
a.result-entity:hover b { color: var(--green); }
.result-avatar { width: 30px; height: 30px; padding: 4px; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid var(--line); border-radius: 50%; background: var(--white); font-size: 7px; font-weight: 800; overflow: hidden; }
.result-avatar img { width: 100%; height: 100%; object-fit: contain; }
.result-avatar-stack { display: flex; flex: 0 0 auto; }
.result-avatar-stack .result-avatar + .result-avatar { margin-left: -10px; }
.result-bar { height: 8px; display: block; border-radius: 8px; background: var(--paper-deep); overflow: hidden; }
.result-bar i { height: 100%; display: block; border-radius: 8px; background: var(--green-deep); }
.result-row > b { font-family: var(--font); font-size: 15px; text-align: right; font-variant-numeric: tabular-nums; }
.result-votes { color: var(--muted); font-size: 13px; text-align: right; font-variant-numeric: tabular-nums; }
.result-seats { display: grid; justify-items: end; font-family: var(--font); font-size: 19px; line-height: 1; }
.result-seats small { margin-top: 3px; color: var(--muted); font-family: var(--font); font-size: 12px; font-weight: 500; }
.result-tag { margin-top: 3px; justify-self: start; padding: 3px 8px; border-radius: 8px; background: var(--paper-deep); color: var(--ink-soft); font-size: 12px; font-style: normal; font-weight: 700; }
.result-tag.is-elected { background: var(--mint); color: var(--green); }
.election-round { margin-top: 22px; padding: 24px; border: 1px solid var(--line); border-radius: 12px; background: var(--canvas); }
.election-round:first-child { margin-top: 0; }
.election-round header { margin-bottom: 18px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; }
.election-round header span { color: var(--green); letter-spacing: 0; font-size: 12px; font-weight: 800; }
.election-round header h3 { margin: 0; font-family: var(--font); font-size: 24px; letter-spacing: 0; }
.election-round header a { margin-left: auto; color: var(--green); font-size: 12px; font-weight: 700; }
.election-notes { margin: 0; padding-left: 18px; display: grid; gap: 8px; color: var(--ink-soft); font-size: 13px; line-height: 1.6; }
.election-notes.compact { margin-top: 16px; color: var(--muted); font-size: 13px; }
.election-section[hidden] { display: none; }
.elected-grid { margin-top: 14px; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.elected-grid article { padding: 16px 18px; border: 1px solid var(--line); border-radius: 12px; background: var(--white); }
.elected-grid header { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding-bottom: 10px; border-bottom: 1px solid var(--line); }
.elected-grid header b { color: var(--muted); font-size: 13px; white-space: nowrap; }
.elected-grid ol { margin: 10px 0 0; padding-left: 20px; display: grid; gap: 4px; color: var(--ink-soft); font-size: 12px; line-height: 1.45; }
.local-subtitle { margin: 48px 0 6px; font-family: var(--font); font-size: 22px; letter-spacing: 0; }
.local-hint { margin: 0 0 14px; max-width: 760px; color: var(--muted); font-size: 12px; line-height: 1.6; }
.local-types { margin-top: 14px; }
.local-types article { min-height: 130px; }
.local-participation thead th { max-width: 120px; white-space: normal; line-height: 1.3; }
.local-participation tbody th a { display: flex; align-items: center; gap: 9px; color: var(--ink); }
.municipality-toolbar input { min-height: 44px; padding: 0 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--white); color: var(--ink); }
.municipality-list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
.municipality-card { padding: 20px; border: 1px solid var(--line); border-radius: 12px; background: var(--canvas); }
.municipality-card header { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 12px 24px; }
.municipality-card header span { color: var(--green); letter-spacing: 0; font-size: 12px; font-weight: 800; }
.municipality-card h4 { margin: 4px 0 0; font-family: var(--font); font-size: 22px; letter-spacing: 0; }
.municipality-card dl { margin: 0; display: flex; gap: 22px; }
.municipality-card dl div { display: grid; gap: 2px; }
.municipality-card dt { color: var(--muted); font-size: 12px; letter-spacing: 0; }
.municipality-card dd { margin: 0; font-family: var(--font); font-size: 15px; font-weight: 700; }
.local-corrections { margin-top: 28px; align-items: flex-start; }
.local-corrections ul { margin: 8px 0 0; padding-left: 18px; color: var(--green-deep); font-size: 12px; line-height: 1.6; }
.local-corrections p { margin: 0; }
.local-corrections p + p { margin-top: 10px; }
.local-tabs { margin: 4px 0 22px; display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 4px; border: 1px solid var(--line); border-radius: 12px; background: var(--canvas); }
.local-tabs button { min-height: 42px; padding: 0 16px; display: inline-flex; align-items: center; gap: 10px; border: 0; border-radius: 8px; background: none; color: var(--ink-soft); font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; }
.local-tabs button small { padding: 2px 7px; border-radius: 8px; background: var(--paper-deep); color: var(--muted); font-size: 12px; font-variant-numeric: tabular-nums; }
.local-tabs button:hover { color: var(--green); }
.local-tabs button.is-active { background: var(--green-deep); color: white; }
.local-tabs button.is-active small { background: rgba(255,255,255,.16); color: white; }
.local-tabs button:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }
.local-plenary { margin-top: 12px; }
.municipality-bodies { margin-top: 16px; display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; }
.municipality-body h5 { margin: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; font-family: var(--font); font-size: 15px; letter-spacing: 0; }
.municipality-body h5 small { color: var(--muted); font-family: var(--font); font-size: 13px; font-weight: 500; }
.municipality-body .local-hint { margin: 6px 0 0; }
.municipality-body .result-list { margin-top: 10px; }
.parish-details { margin-top: 18px; border-top: 1px solid var(--line); }
.parish-details summary { padding: 14px 0 4px; display: flex; justify-content: space-between; align-items: center; color: var(--green); font-size: 13px; font-weight: 700; cursor: pointer; list-style: none; }
.parish-details summary::-webkit-details-marker { display: none; }
.parish-details summary::after { content: "+"; display: grid; place-items: center; width: 24px; height: 24px; border: 1px solid var(--line); border-radius: 50%; font-size: 14px; }
.parish-details[open] summary::after { content: "−"; }
.parish-details .coverage-matrix-scroll { margin-top: 10px; }
.parish-table th[scope="row"] { font-weight: 600; white-space: normal; min-width: 180px; }
.parish-table td { text-align: left; }
.parish-table thead th:not(:first-child) { text-align: left; }
.parish-table td b { display: block; font-size: 12px; }
.parish-table td small { display: block; max-width: 260px; overflow: hidden; color: var(--muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.parish-table tr.is-plenary td { color: var(--muted); font-size: 12px; font-style: italic; }

/* Metodologia detalhada */
.method-index { margin-top: 60px; display: flex; flex-wrap: wrap; gap: 8px; }
.method-index button { padding: 10px 14px; border: 1px solid var(--line); border-radius: 8px; background: var(--canvas); color: var(--ink-soft); font-size: 12px; cursor: pointer; transition: background .2s, color .2s; }
.method-index button:hover { background: var(--green-deep); color: white; }
.method-section { padding-top: 80px; scroll-margin-top: 100px; }
.method-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
#method-confidence-levels { grid-template-columns: repeat(3, 1fr); }
.method-cards article { min-height: 200px; padding: 20px; display: flex; flex-direction: column; gap: 10px; border: 1px solid var(--line); border-radius: 12px; background: var(--canvas); }
.method-cards article > span { color: var(--green); font-size: 13px; font-weight: 700; }
.method-cards h3 { margin: 18px 0 0; font-family: var(--font); font-size: 19px; letter-spacing: 0; }
.method-cards p { margin: 0; color: var(--ink-soft); font-size: 12px; line-height: 1.6; }
.method-cards small { margin-top: auto; color: var(--muted); font-size: 12px; }
.method-cards .confidence-badge { align-self: flex-start; }
.method-list { margin: 0; padding: 0; list-style: none; counter-reset: method; display: grid; border-top: 1px solid var(--line); }
.method-list li { counter-increment: method; padding: 16px 0 16px 46px; position: relative; border-bottom: 1px solid var(--line); color: var(--ink-soft); font-size: 14px; line-height: 1.55; }
.method-list li::before { content: counter(method, decimal-leading-zero); position: absolute; left: 0; top: 16px; color: var(--green); font-size: 13px; font-weight: 800; }
.method-list-columns { grid-template-columns: 1fr 1fr; column-gap: 40px; }
.method-section .registry-note { margin-top: 20px; }
.method-quote-head, .method-quote-row { grid-template-columns: 1.5fr .9fr .45fr .7fr; }
.method-quote-row .hash { font-family: ui-monospace, "SFMono-Regular", Consolas, monospace; font-size: 12px; }
.method-gaps { margin-top: 12px; display: grid; gap: 8px; }
.method-gaps .registry-note { margin-top: 0; }
.audit-list { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.audit-item { padding: 20px; border: 1px solid var(--line); border-radius: 12px; background: var(--canvas); }
.audit-item header { display: flex; align-items: center; gap: 10px; }
.audit-item header span { color: var(--green); letter-spacing: 0; font-size: 12px; font-weight: 800; }
.audit-item header b { margin-left: auto; font-size: 13px; }
.audit-item dl { margin: 16px 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.audit-item dl div { padding: 12px; display: grid; gap: 5px; border-radius: 8px; background: var(--paper); }
.audit-item dt { color: var(--muted); font-size: 12px; letter-spacing: 0; }
.audit-item dd { margin: 0; font-size: 12px; font-weight: 700; overflow-wrap: anywhere; }
.audit-item p { margin: 0; color: var(--ink-soft); font-size: 12px; line-height: 1.55; }

@media (max-width: 1050px) {
  .coverage-band-inner { grid-template-columns: 1fr; gap: 26px; }
  .parliament-layout { grid-template-columns: 1fr; }
  .method-cards { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 900px) {
  .topic-owner { grid-template-columns: 1fr; gap: 16px; }
  .topic-owner-head { position: static; grid-template-columns: auto 1fr; align-items: center; }
  .parliament-sources, .audit-list { grid-template-columns: 1fr 1fr; }
  .method-list-columns { grid-template-columns: 1fr; }
  .topic-compare-note { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
  .coverage-band { padding-bottom: 86px; }
  .coverage-band-inner { padding: 24px; }
  .coverage-band-stats { grid-template-columns: 1fr 1fr; border-left: 0; gap: 16px 0; }
  .coverage-band-stats div { padding: 0 14px 0 0; border-right: 0; }
  .topic-item { grid-template-columns: 1fr auto; }
  .topic-avatars { display: none; }
  .coverage-matrix-section { padding-top: 70px; }
  .party-election-grid { grid-template-columns: 1fr; }
  .vote-toolbar, .vote-toolbar.has-author { grid-template-columns: 1fr; }
  .vote-toolbar p { justify-self: start; margin: 0; }
  .vote-group { grid-template-columns: 1fr; gap: 6px; }
  .party-vote-list li { grid-template-columns: 1fr; gap: 6px; }
  .result-row, .result-list.has-seats .result-row { grid-template-columns: 1fr auto; gap: 8px 14px; }
  .result-entity { grid-column: 1 / -1; }
  .result-votes { text-align: left; }
  .result-list.has-seats .result-seats { grid-column: 2; grid-row: 3; }
  .election-round { padding: 18px 16px; }
  .election-round header a { margin-left: 0; }
}

@media (max-width: 620px) {
  .method-cards, #method-confidence-levels, .parliament-sources, .audit-list, .audit-item dl { grid-template-columns: 1fr; }
  .hemicycle-card { padding: 18px 16px; }
  .hemicycle-total strong { font-size: 32px; }
  .parliament-group { grid-template-columns: 5px auto 1fr auto; padding: 8px 10px; gap: 10px; }
  .method-quote-head { display: none; }
  .method-quote-row { grid-template-columns: 1fr; }
  .position-actions { flex-direction: column; }
}

/* Dimensões políticas: contagem das posições codificadas e lista auditável. */
.dimension-grid article.is-insufficient strong, .dimension-grid article.is-not-evaluated strong { color: var(--muted); }
.dimension-grid article:not(.is-insufficient):not(.is-not-evaluated) strong { color: var(--ink); }
.dimension-grid article small { font-size: 13px; line-height: 1.45; }
.dimension-grid article > a { margin-top: 10px; font-size: 12px; }
.dimension-grid details { margin-top: 12px; font-size: 12px; }
.dimension-grid summary { cursor: pointer; font-weight: 700; color: var(--ink); }
.dimension-grid details ul { margin: 10px 0 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.dimension-grid details li { display: grid; grid-template-columns: 18px 1fr; gap: 6px; line-height: 1.45; }
.dimension-grid details li > b { font-size: 14px; }
.dimension-grid details li small { display: block; margin-top: 2px; font-size: 13px; }
.dimension-rule { margin: 10px 0 0; padding-top: 8px; border-top: 1px solid var(--line); color: var(--muted); font-size: 13px; line-height: 1.5; }

.topic-search-empty { padding: 28px 0; color: var(--muted); font-size: 15px; }

/* ─── Sistema visual: moldura de aplicação ───
   Tela branca, cromado cinzento, faixas planas a toda a largura e um só azul que age.
   Sem sombras nem elevação; cantos de 8px nos controlos e 12px nas superfícies. */
body { background: var(--canvas); color: var(--ink-body); font-family: var(--font); font-weight: 400; }
:where(h1, h2, h3, h4) { color: var(--ink-heading); }
.evidence-section :where(h1, h2, h3, h4), .card-topics :where(h1, h2, h3, h4), .registry-summary :where(h1, h2, h3, h4), .claim-card :where(h1, h2, h3, h4) { color: inherit; }
:where(li) { font-weight: 350; }
:where(.page p, .page li, .page small, .page dd) a:where(:not([class])) { color: var(--primary); }

/* Cromado: barra global de 60px em cinzento claro; a navegação fica em cinzento neutro, distinta do conteúdo. */
.site-header { height: 60px; gap: 32px; background: var(--chrome); border-bottom: 0; backdrop-filter: none; }
.brand { font-weight: 700; color: var(--ink-heading); }
.primary-nav { gap: 24px; font-size: 15px; color: var(--ink-nav); }
.primary-nav a { color: var(--ink-nav); position: relative; display: inline-flex; align-items: center; height: 60px; }
.primary-nav a:hover { color: var(--primary); }
.primary-nav a[aria-current="page"] { color: var(--primary); }
.primary-nav a[aria-current="page"]::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--primary); }
.method-link { color: var(--primary); font-size: 15px; font-weight: 500; }

/* Tipografia: títulos a preto e apertados (≈1.1), corpo em ardósia e aberto (1.5). */
.hero h1 { font-size: clamp(50px, calc(4.6vw + 12px), 69px); line-height: 1.1; font-weight: 800; }
.hero h1 strong, .hero h1 em { font-weight: 800; }
.page-intro h1, .placeholder-inner h1 { font-size: clamp(30px, 3.4vw, 36px); line-height: 1.1; font-weight: 500; margin: 14px 0 0; }
.hero h1 em { color: var(--primary); }
.hero-lede { font-size: 20px; line-height: 1.5; color: var(--ink-lead); }
.page-intro p { color: var(--ink-lead); font-size: 18px; line-height: 1.5; }
.section-heading h2 { font-size: clamp(26px, 2.8vw, 32px); line-height: 1.1; font-weight: 500; }
.profile-section-head h2 { font-size: clamp(22px, 2.4vw, 28px); line-height: 1.1; font-weight: 500; }
.eyebrow, .kicker { font-size: 14px; font-weight: 500; color: var(--ink-meta); }
.eyebrow > span { background: var(--primary); }

/* Botões: azul cheio para a ação principal, contorno discreto para a secundária; planos, 44px, cantos de 8px. */
.button { min-height: 44px; padding: 12px 14px; gap: 12px; border-radius: 8px; font-size: 16px; font-weight: 500; line-height: 1.1; transition: background .15s, border-color .15s, color .15s; }
.button-primary { background: var(--primary); color: #ffffff; }
.button-primary:hover { background: var(--primary-deep); }
.button-secondary { background: var(--canvas); border-color: var(--hairline); color: var(--primary-deep); }
.button-secondary:hover { border-color: var(--primary-deep); }

/* Campos de pesquisa e filtros. */
input[type="search"], input[type="text"], select, textarea { border-radius: 8px; }
:where(input, select, textarea):focus-visible, :where(a, button):focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }

/* Faixas planas a toda a largura (sem cantos): introdução das páginas interiores e cabeçalho dos perfis. */
.page-intro, .entity-hero { position: relative; border-bottom: 0; }
.page-intro::before, .entity-hero::before { content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: calc(50% - 50vw); right: calc(50% - 50vw); background: var(--chrome); }
/* A faixa de título encosta à barra global; o espaço superior da página passa para dentro da faixa. */
.directory-page { padding-top: 0; }
.page-intro { padding-top: 56px; padding-bottom: 48px; margin-bottom: 40px; }
.site-header { box-shadow: inset 0 -1px 0 var(--line); }
.entity-hero { padding-top: 48px; padding-bottom: 40px; }
.page { position: relative; z-index: 0; overflow-x: clip; }

/* Os cartões de exploração elevam-se ligeiramente no hover e no foco; as restantes superfícies mantêm-se planas. */
.explore-card.reveal.is-visible:hover, .explore-card:focus-visible { transform: translateY(-6px); box-shadow: 0 18px 38px rgba(34, 53, 72, .09); border-color: var(--hairline); }
.concept-item:hover { box-shadow: none; border-color: var(--hairline); }
@media (prefers-reduced-motion: reduce) { .explore-card.reveal.is-visible:hover, .explore-card:focus-visible { transform: none; } }
.proof-card, .claim-card { box-shadow: none; }

/* Separadores dos perfis: o ativo sobe de peso e ganha o sublinhado azul. */
.profile-nav button.is-active { color: var(--primary); font-weight: 500; }
.profile-nav button.is-active::after { background: var(--primary); width: 100%; }

/* Tabelas e controlos de dados: cabeçalhos no cinzento do cromado, ativo em azul. */
.comparison-table .table-head { background: var(--chrome); color: var(--ink-heading); font-weight: 500; }
.local-tabs button.is-active, .method-index button:hover { background: var(--primary); color: #ffffff; }
.result-bar i { background: var(--primary); }

/* Rodapé: faixa cinzenta com ligações em cinzento neutro. */
.site-footer { background: var(--band); color: var(--ink-nav); padding: 36px 0; }
.footer-brand { color: var(--ink-heading); }
.footer-inner p { color: var(--ink-meta); }
.footer-inner nav { font-size: 15px; }
.footer-inner nav a:hover { color: var(--primary); }

@media (max-width: 760px) {
  .directory-page { padding-top: 0; }
  .page-intro { padding-top: 32px; padding-bottom: 32px; }
  .primary-nav a { height: auto; }
  .primary-nav a[aria-current="page"]::after { display: none; }
}
@media (max-width: 1050px) {
  .site-header { grid-template-columns: 1fr auto auto; gap: 20px; }
  .method-link { order: 2; }
  .menu-button { order: 3; justify-self: end; width: 44px; height: 44px; border-radius: 8px; border-color: var(--hairline); }
}
@media (max-width: 760px) {
  .site-header { grid-template-columns: 1fr auto auto; }
}

/* Diretório de partidos: ao passar o rato (ou com o foco do teclado), o cartão sobe ligeiramente; sem sombra, para manter a superfície plana. */
.party-item { transition: transform .22s cubic-bezier(.2, .7, .3, 1), border-color .22s ease; }
.party-item:hover, .party-item:focus-visible { transform: translateY(-4px); border-color: var(--hairline); }
@media (prefers-reduced-motion: reduce) {
  .party-item, .party-item:hover, .party-item:focus-visible { transition: none; transform: none; }
}
#party-unlisted { display: block; max-width: 360px; margin-top: 4px; color: var(--ink-meta); font-size: 12px; line-height: 1.4; }
#party-unlisted:empty { display: none; }

/* ─── Perfil do partido · Informação básica ───
   Cabeçalho editorial em branco (indicador, título, verificação, introdução), ilustração institucional muito suave à direita
   e uma faixa cinzenta plana onde assentam seis módulos brancos, sem sombra nem contorno.
   A grelha responde à largura da própria secção (a coluna do perfil é estreitada pela navegação lateral). */
.party-overview { container: party-overview / inline-size; }
.overview-header { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); padding: 8px 0 48px; }
.overview-heading { position: relative; z-index: 1; max-width: 64%; }
.overview-eyebrow { display: flex; align-items: center; gap: 12px; margin: 0; color: var(--ink-meta); font-size: 14px; font-weight: 400; line-height: 21px; }
.overview-eyebrow > span { width: 24px; height: 3px; background: var(--primary); }
.overview-header h2 { margin: 12px 0 0; color: var(--ink-heading); font-size: 36px; font-weight: 500; line-height: 39.6px; letter-spacing: 0; }
.overview-verification { display: flex; align-items: center; gap: 16px; margin-top: 16px; }
.verified-badge { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 6px; padding: 4px 8px; border-radius: 4px; background: var(--band-blue); color: var(--primary-deep); font-size: 13px; font-weight: 500; line-height: 18px; }
.verified-badge svg { width: 14px; height: 14px; fill: none; stroke: var(--primary); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.overview-verification p { margin: 0; padding-right: 16px; border-right: 1px solid var(--line); color: var(--ink-meta); font-size: 14px; line-height: 21px; }
.party-overview .party-profile-summary { max-width: 950px; margin: 32px 0 0; padding: 0; border: 0; color: var(--ink-body); font-size: 18px; font-weight: 400; line-height: 27px; }

/* Ilustração: fachada abstrata do Palácio de São Bento, de baixa intensidade, que se dissolve no branco à esquerda e em baixo. */
.overview-illustration { position: absolute; z-index: 0; top: -8px; right: 0; bottom: 44px; width: 36%; pointer-events: none; -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 50%), linear-gradient(to bottom, transparent 0%, #000 22%, #000 72%, transparent 100%); -webkit-mask-composite: source-in; mask-image: linear-gradient(to right, transparent 0%, #000 50%), linear-gradient(to bottom, transparent 0%, #000 22%, #000 72%, transparent 100%); mask-composite: intersect; }
.overview-illustration img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: 70% 22%; opacity: .82; filter: saturate(.88); }
.overview-illustration-note { position: absolute; z-index: 1; right: 0; bottom: 20px; max-width: 34%; margin: 0; color: var(--ink-meta); font-size: 12px; line-height: 18px; text-align: right; }

/* Faixa de dados: a profundidade vem da passagem do branco para o cinzento, não de sombras. */
.overview-band { padding: 24px; background: var(--chrome); }
.party-fact-grid { display: grid; grid-template-columns: minmax(0, 1.3fr) repeat(2, minmax(0, 1fr)); gap: 16px; }
.party-fact { min-width: 0; padding: 24px; display: flex; flex-direction: column; border-radius: 8px; background: var(--canvas); }
.party-fact-label { display: flex; align-items: center; gap: 12px; margin: 0; color: var(--ink-meta); font-size: 14px; font-weight: 400; line-height: 21px; letter-spacing: 0; }
.party-fact-icon { width: 32px; height: 32px; display: grid; flex: 0 0 auto; place-items: center; border-radius: 8px; background: var(--band-blue); }
.party-fact-icon svg { width: 18px; height: 18px; fill: none; stroke: var(--primary); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.party-fact-value { margin-top: 24px; color: var(--ink-heading); font-size: 20px; font-weight: 500; line-height: 22px; overflow-wrap: anywhere; }
.party-fact-value-lg { font-size: 28px; line-height: 30.8px; }
.party-fact-value em { color: inherit; font-size: inherit; font-style: normal; }
.party-fact-note { margin-top: 8px; color: var(--ink-meta); font-size: 14px; line-height: 21px; }
.party-fact-note a, .leader-note a { color: var(--primary); font-weight: 400; text-decoration: none; }
.party-fact-link { align-self: flex-start; margin-top: 24px; color: var(--primary); font-size: 16px; font-weight: 400; line-height: 24px; text-decoration: none; overflow-wrap: anywhere; }
.party-fact-link:hover, .leader-source:hover, .party-fact-note a:hover, .leader-note a:hover { text-decoration: underline; text-underline-offset: 3px; }
.party-fact-link:not([href]) { color: var(--ink-heading); font-size: 20px; font-weight: 500; line-height: 22px; }

/* Liderança: o módulo mais rico, com fotografia, nome, cargo e fonte. */
.leader-identity { display: flex; align-items: center; gap: 16px; margin-top: 20px; }
.leader-portraits { display: flex; flex: 0 0 auto; align-items: center; }
.leader-portraits a, .leader-photo-fallback { width: 96px; height: 96px; display: grid; flex: 0 0 auto; place-items: center; overflow: hidden; border: 2px solid var(--canvas); border-radius: 50%; background: var(--band-blue); color: var(--primary-deep); font-size: 28px; font-weight: 500; }
.leader-portraits a:nth-child(2) { margin-left: -24px; }
.leader-portraits a:first-child:nth-last-child(2), .leader-portraits a:first-child:nth-last-child(2) ~ a { width: 72px; height: 72px; }
.leader-portraits img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.leader-text { min-width: 0; display: grid; gap: 4px; }
.leader-text > strong { color: var(--ink-heading); font-size: 20px; font-weight: 500; line-height: 22px; }
.leader-text > span { color: var(--ink-body); font-size: 18px; line-height: 27px; }
.leader-meta { display: grid; gap: 2px; margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--line); }
.leader-source { justify-self: start; color: var(--primary); font-size: 14px; line-height: 21px; text-decoration: none; }
.leader-meta > small { color: var(--ink-meta); font-size: 12px; line-height: 18px; }
.leader-meta:has(> small:empty):has(> a[hidden]) { display: none; }
.leader-note { margin: 16px 0 0; color: var(--ink-meta); font-size: 14px; line-height: 21px; }

@container party-overview (max-width: 819px) {
  .party-fact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .party-fact-leader { grid-column: 1 / -1; }
  .party-fact-leader .leader-meta { margin-top: 16px; }
  .overview-heading { max-width: 70%; }
  .overview-illustration { width: 30%; opacity: .7; }
}
@container party-overview (max-width: 599px) {
  .overview-heading { max-width: none; }
  .overview-illustration, .overview-illustration-note { display: none; }
  .overview-header { padding-bottom: 32px; }
  .overview-header h2 { font-size: 28px; line-height: 30.8px; }
  .overview-verification { flex-direction: column; align-items: flex-start; gap: 12px; }
  .overview-verification p { padding-right: 0; border-right: 0; }
  .party-overview .party-profile-summary { margin-top: 24px; font-size: 16px; line-height: 24px; }
}
@container party-overview (max-width: 519px) {
  .overview-band { padding: 16px; }
  .party-fact-grid { grid-template-columns: 1fr; }
  .party-fact { padding: 20px; }
  .leader-identity { flex-direction: column; align-items: flex-start; }
}
/* Sem representação: o valor é texto, não número — tamanho normal e sem o travessão. */
.party-fact.is-empty .party-fact-value-lg { font-size: 20px; line-height: 22px; }
.party-fact.is-empty #party-seats { display: none; }
.party-fact.is-empty #party-seat-label { display: block; }
.party-fact.is-empty #party-seat-label::first-letter { text-transform: uppercase; }
/* Liderança não identificada: sem fotografia nem iniciais, a nota explicativa ocupa a largura do módulo. */
.party-fact.is-unidentified .leader-portraits { display: none; }
.party-fact.is-unidentified #party-leader-role { color: var(--ink-meta); font-size: 14px; line-height: 21px; }
.party-fact.is-unidentified .leader-meta { display: none; }

/* Diretório de conceitos: barra lateral na cor do conceito, título e definição, contagem de quadros à direita; sem ilustração nem numeração. */
.concept-directory { gap: 12px; }
.concept-item { position: relative; min-height: 0; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; padding: 18px 24px 18px 40px; border: 1px solid var(--line); border-radius: 8px; background: var(--canvas); overflow: hidden; transition: border-color .2s ease; }
.concept-item::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 6px; background: var(--concept-accent); }
.concept-item:hover { background: var(--canvas); border-color: var(--hairline); }
.concept-item .concept-leading { display: none; }
.concept-item h2 { margin: 0 0 4px; color: var(--ink-heading); font-size: 20px; font-weight: 600; line-height: 1.2; }
.concept-item p { color: var(--ink-meta); font-size: 16px; line-height: 1.5; }
.concept-item .framework-count { padding: 6px 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--chrome); color: var(--ink-list); font-size: 14px; font-weight: 500; white-space: nowrap; }
@media (max-width: 760px) {
  .concept-item { grid-template-columns: 1fr; gap: 14px; padding: 16px 16px 16px 28px; }
  .concept-item .framework-count { grid-column: 1; margin: 0; justify-self: start; }
}

/* ─── Pesquisa global ───
   Botão na barra global e campo destacado na página inicial; ambos abrem o mesmo painel modal.
   Superfície plana com linha fina; o azul marca só o resultado ativo e as palavras encontradas. */
.site-header { grid-template-columns: auto 1fr auto; }
.header-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.theme-toggle { width: 36px; height: 36px; padding: 0; display: inline-grid; place-items: center; border: 1px solid var(--line); border-radius: 8px; background: var(--canvas); color: var(--ink-nav); cursor: pointer; transition: border-color .15s, color .15s, background .15s; }
.theme-toggle:hover { border-color: var(--hairline); color: var(--ink-heading); }
.theme-toggle:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.theme-icon { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.theme-icon-sun { display: none; }
html[data-theme="dark"] .theme-icon-sun { display: block; }
html[data-theme="dark"] .theme-icon-moon { display: none; }
.search-trigger { display: inline-flex; align-items: center; gap: 8px; height: 36px; padding: 0 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--canvas); color: var(--ink-nav); font-size: 14px; cursor: pointer; transition: border-color .15s, color .15s; }
.primary-nav a { white-space: nowrap; }
.search-trigger:hover { border-color: var(--hairline); color: var(--ink-heading); }
.search-trigger svg, .hero-search svg, .search-field svg { width: 18px; height: 18px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; }
.search-trigger kbd, .hero-search kbd, .search-hint kbd, .search-close { display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; border: 1px solid var(--line); border-radius: 4px; background: var(--chrome); color: var(--ink-meta); font-family: var(--font); font-size: 12px; line-height: 1; }
.hero-search { display: flex; align-items: center; gap: 12px; width: min(100%, 560px); min-height: 52px; margin-top: 32px; padding: 0 12px 0 16px; border: 1px solid var(--hairline); border-radius: 8px; background: var(--canvas); color: var(--ink-meta); font-size: 16px; text-align: left; cursor: text; transition: border-color .15s; }
.hero-search:hover { border-color: var(--primary); }
.hero-search span { flex: 1; }
.hero-search svg { color: var(--primary); }
.hero-search + .hero-actions { margin-top: 20px; }

.search-dialog { width: min(760px, calc(100% - 32px)); max-height: min(720px, calc(100dvh - 96px)); margin: 72px auto auto; padding: 0; border: 1px solid var(--line); border-radius: 12px; background: var(--canvas); color: var(--ink-body); overflow: hidden; }
.search-dialog::backdrop { background: rgba(2, 20, 50, .32); }
.search-dialog-inner { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; max-height: inherit; }
.search-field { display: flex; align-items: center; gap: 12px; padding: 0 16px; border-bottom: 1px solid var(--line); color: var(--primary); }
.search-field input { flex: 1; min-width: 0; height: 60px; border: 0; outline: 0; background: transparent; color: var(--ink-heading); font-family: var(--font); font-size: 18px; }
.search-field input::-webkit-search-cancel-button { display: none; }
.search-field:focus-within { box-shadow: inset 0 -2px 0 var(--primary); }
.search-close { cursor: pointer; }
.search-results { overflow-y: auto; padding: 8px 0 12px; overscroll-behavior: contain; }
.search-group h3 { display: flex; justify-content: space-between; gap: 12px; margin: 12px 16px 4px; color: var(--ink-meta); font-size: 13px; font-weight: 500; line-height: 20px; }
.search-group h3 span { color: var(--ink-meta); font-weight: 400; }
.search-group ul { margin: 0; padding: 0; list-style: none; }
.search-result { display: grid; gap: 2px; margin: 0 8px; padding: 10px 12px; border-radius: 8px; color: var(--ink-body); text-decoration: none; }
.search-result strong { color: var(--ink-heading); font-size: 15px; font-weight: 500; line-height: 21px; }
.search-result-position strong { font-weight: 400; }
.search-result small { color: var(--ink-meta); font-size: 13px; line-height: 18px; }
.search-result mark { padding: 0 1px; border-radius: 2px; background: var(--band-blue); color: var(--primary-deep); }
.search-result.is-active, .search-result:focus-visible { background: var(--band-blue); outline: 0; box-shadow: inset 3px 0 0 var(--primary); }
.search-note { margin: 8px 16px 4px; padding: 12px 14px; border-radius: 8px; background: var(--chrome); color: var(--ink-list); font-size: 14px; line-height: 21px; }
.search-note a { color: var(--primary); }
.search-empty { padding: 20px 16px; color: var(--ink-meta); font-size: 15px; }
.search-empty p { margin: 0 0 12px; }
.search-suggestions { display: flex; flex-wrap: wrap; gap: 8px; }
.search-suggestions button { height: 32px; padding: 0 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--canvas); color: var(--ink-list); font-size: 14px; cursor: pointer; }
.search-suggestions button:hover { border-color: var(--primary); color: var(--primary-deep); }
.search-hint { display: flex; gap: 16px; margin: 0; padding: 10px 16px; border-top: 1px solid var(--line); background: var(--chrome); color: var(--ink-meta); font-size: 12px; }
.search-hint span { display: inline-flex; align-items: center; gap: 4px; }
.position-card.is-search-target { outline: 2px solid var(--primary); outline-offset: 4px; transition: outline-color .4s; }

@media (max-width: 1360px) {
  .search-trigger-label, .search-trigger kbd { display: none; }
  .search-trigger { width: 40px; justify-content: center; padding: 0; }
}
@media (max-width: 1050px) {
  .site-header { grid-template-columns: 1fr auto auto; }
  .header-actions { order: 2; }
  .theme-toggle, .search-trigger { width: 44px; height: 44px; }
}
@media (max-width: 760px) {
  .site-header { grid-template-columns: 1fr auto auto; }
  .search-dialog { width: 100%; max-width: none; max-height: 100dvh; height: 100dvh; margin: 0; border: 0; border-radius: 0; }
  .search-hint { display: none; }
  .hero-search { min-height: 48px; font-size: 15px; }
  .hero-search kbd { display: none; }
}

/* ─── Perfil · Atividade parlamentar (visão geral) ───
   Lista compacta das votações finais globais mais recentes e um resumo da cobertura documentada.
   Na coluna do perfil (estreitada pela navegação lateral) a cobertura passa para baixo, em três números. */
.party-activity { container: party-activity / inline-size; }
.activity-layout { display: grid; grid-template-columns: minmax(0, 1.75fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.activity-main, .activity-coverage { padding: 24px; border: 1px solid var(--line); border-radius: 8px; background: var(--canvas); }
.activity-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 12px; }
.activity-head h2, .activity-coverage h3 { margin: 0; color: var(--ink-heading); font-size: 20px; font-weight: 600; line-height: 26px; }
.activity-head p, .activity-coverage > p { margin: 2px 0 0; color: var(--ink-meta); font-size: 14px; line-height: 21px; }
.activity-more { flex: 0 0 auto; padding: 4px 0; border: 0; background: none; color: var(--primary); font: inherit; font-size: 14px; font-weight: 500; cursor: pointer; white-space: nowrap; }
.activity-more:hover { text-decoration: underline; text-underline-offset: 3px; }
.activity-list { margin: 0; padding: 0; list-style: none; }
.activity-list li { display: grid; grid-template-columns: 88px minmax(0, 1fr) auto auto; gap: 16px; align-items: center; padding: 12px 0; border-top: 1px solid var(--line); }
.activity-list time { align-self: start; padding-top: 1px; color: var(--ink-meta); font-size: 13px; line-height: 20px; font-variant-numeric: tabular-nums; }
.activity-title { min-width: 0; }
.activity-title p { display: -webkit-box; margin: 0; overflow: hidden; color: var(--ink-heading); font-size: 14px; line-height: 20px; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.activity-title b { font-weight: 600; }
.activity-title small { display: block; margin-top: 2px; color: var(--ink-meta); font-size: 12px; line-height: 18px; }
.activity-tag { padding: 2px 8px; border-radius: 4px; background: var(--chrome); color: var(--ink-list); font-size: 12px; line-height: 18px; white-space: nowrap; }
.activity-vote .vote-pill { white-space: nowrap; }
.activity-empty { display: block !important; color: var(--ink-meta); font-size: 14px; }
.activity-coverage dl { margin: 12px 0 0; }
.activity-stat { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 12px 0; border-top: 1px solid var(--line); }
.activity-stat dt { color: var(--ink-list); font-size: 14px; line-height: 21px; }
.activity-stat dd { display: flex; align-items: baseline; gap: 6px; margin: 0; text-align: right; }
.activity-stat strong { color: var(--ink-heading); font-size: 22px; font-weight: 600; line-height: 26px; font-variant-numeric: tabular-nums; }
.activity-stat dd span { color: var(--ink-meta); font-size: 12px; line-height: 18px; }

@container party-activity (max-width: 959px) {
  .activity-layout { grid-template-columns: 1fr; }
  .activity-coverage { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 3fr); gap: 4px 24px; align-items: center; }
  .activity-coverage > p { grid-column: 1; }
  .activity-coverage dl { grid-column: 2; grid-row: 1 / span 2; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 0; }
  .activity-stat { flex-direction: column; align-items: flex-start; gap: 2px; padding: 0 0 0 16px; border-top: 0; border-left: 1px solid var(--line); }
  .activity-stat dd { flex-direction: column; align-items: flex-start; gap: 0; text-align: left; }
}
@container party-activity (max-width: 620px) {
  .activity-coverage { grid-template-columns: 1fr; }
  .activity-coverage dl { grid-column: 1; grid-row: auto; margin-top: 12px; }
}
@container party-activity (max-width: 520px) {
  .activity-main, .activity-coverage { padding: 16px; }
  .activity-head { flex-direction: column; gap: 8px; }
  .activity-list li { grid-template-columns: minmax(0, 1fr) auto; gap: 6px 12px; }
  .activity-vote { grid-column: 2; grid-row: 1; justify-self: end; }
  .activity-title { grid-column: 1 / -1; }
  .activity-tag { grid-column: 1 / -1; justify-self: start; }
  .activity-coverage dl { grid-template-columns: 1fr; gap: 0; }
  .activity-stat { flex-direction: row; justify-content: space-between; align-items: baseline; padding: 10px 0; border-left: 0; border-top: 1px solid var(--line); }
  .activity-stat dd { flex-direction: row; align-items: baseline; gap: 6px; }
}

/* ─── Perfil · Parlamento: mapa da representação por concelho ─── */
.representation-toggle { display: inline-flex; margin: 16px 0 12px; padding: 2px; border: 1px solid var(--line); border-radius: 8px; background: var(--chrome); }
.representation-toggle button { min-width: 76px; height: 32px; padding: 0 14px; border: 0; border-radius: 6px; background: transparent; color: var(--ink-list); font: inherit; font-size: 14px; cursor: pointer; }
.representation-toggle button[aria-pressed="true"] { background: var(--canvas); color: var(--primary-deep); font-weight: 500; box-shadow: 0 0 0 1px var(--line); }
.representation-map { margin-bottom: 8px; }
.representation-map[hidden] { display: none; }
.representation-map-figure { position: relative; max-width: 620px; padding: 16px; border: 1px solid var(--line); border-radius: 8px; background: var(--canvas); }
.representation-map-figure svg { display: block; width: 100%; height: auto; }
.map-concelhos path { stroke: #ffffff; stroke-width: .5; stroke-linejoin: round; cursor: default; }
.map-concelhos path.is-hovered { stroke: var(--ink-heading); stroke-width: 1.4; }
.map-concelhos path.is-hovered { paint-order: stroke; }
.map-inset rect { fill: none; stroke: var(--line); stroke-width: 1; }
.map-inset text, .map-abroad text { fill: var(--ink-meta); font-family: var(--font); font-size: 11px; }
.map-abroad rect { stroke: var(--line); stroke-width: 1; }
.map-abroad.is-hovered rect { stroke: var(--ink-heading); stroke-width: 1.4; }
.map-abroad text { fill: var(--ink-heading); font-weight: 500; }
.map-abroad .map-abroad-count { fill: var(--ink-list); font-weight: 400; }
.map-tooltip { position: absolute; z-index: 2; display: grid; gap: 2px; min-width: 160px; max-width: 240px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--canvas); color: var(--ink-list); font-size: 13px; line-height: 18px; pointer-events: none; }
.map-tooltip strong { color: var(--ink-heading); font-size: 14px; font-weight: 600; }
.map-tooltip b { color: var(--ink-heading); font-weight: 600; }
.representation-map-foot { display: grid; gap: 8px; max-width: 620px; margin-top: 12px; }
.representation-map-foot > div { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; color: var(--ink-list); font-size: 13px; }
.map-legend { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.map-legend li { display: inline-flex; align-items: center; gap: 4px; color: var(--ink-list); font-size: 13px; font-weight: 400; font-variant-numeric: tabular-nums; }
.map-legend i { width: 14px; height: 14px; border: 1px solid var(--line); border-radius: 3px; }
.representation-map-foot p, .representation-loading { margin: 0; color: var(--ink-meta); font-size: 12px; line-height: 18px; }
.deputies-groups[hidden] { display: none; }
.map-tooltip[hidden] { display: none; }

/* ─── Página inicial · faixa das últimas iniciativas no Parlamento ───
   Faixa azul-clara a toda a largura, logo abaixo da barra global; o texto desliza em ciclo contínuo
   e para com o rato ou com o foco do teclado. Com «reduzir movimento», passa a lista deslizável à mão. */
.initiative-ticker { background: var(--band-blue); border-bottom: 1px solid rgba(0, 87, 210, .12); }
.initiative-ticker[hidden] { display: none; }
.initiative-ticker-inner { width: min(1180px, calc(100% - 48px)); height: 44px; margin: 0 auto; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 16px; }
.initiative-ticker-label { display: inline-flex; align-items: center; gap: 8px; margin: 0; color: var(--primary-deep); font-size: 13px; font-weight: 600; line-height: 1; white-space: nowrap; }
.initiative-ticker-label span { width: 8px; height: 8px; border-radius: 50%; background: var(--primary); box-shadow: 0 0 0 3px rgba(0, 87, 210, .18); animation: tickerPulse 2s ease-in-out infinite; }
@keyframes tickerPulse { 50% { box-shadow: 0 0 0 6px rgba(0, 87, 210, 0); } }
.initiative-ticker-viewport { position: relative; overflow: hidden; height: 100%; display: flex; align-items: center; outline-offset: -2px; -webkit-mask-image: linear-gradient(to right, transparent, #000 24px, #000 calc(100% - 40px), transparent); mask-image: linear-gradient(to right, transparent, #000 24px, #000 calc(100% - 40px), transparent); }
.initiative-ticker-track { display: flex; width: max-content; margin: 0; padding: 0; list-style: none; animation: tickerScroll var(--ticker-duration, 120s) linear infinite; }
@keyframes tickerScroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.initiative-ticker:hover .initiative-ticker-track, .initiative-ticker:focus-within .initiative-ticker-track { animation-play-state: paused; }
.initiative-ticker-track li { flex: 0 0 auto; display: flex; align-items: center; }
.initiative-ticker-track li::after { content: ""; width: 4px; height: 4px; margin: 0 20px; border-radius: 50%; background: rgba(0, 64, 176, .35); }
.initiative-ticker-track a { display: inline-flex; align-items: baseline; gap: 8px; color: var(--ink-body); font-size: 13px; line-height: 20px; white-space: nowrap; text-decoration: none; }
.initiative-ticker-track a:hover span:last-child { text-decoration: underline; text-underline-offset: 3px; }
.initiative-ticker-track time { color: var(--ink-meta); font-variant-numeric: tabular-nums; }
.initiative-ticker-track b { color: var(--ink-heading); font-weight: 600; }
.initiative-ticker-author { padding: 0 6px; border-radius: 4px; background: rgba(255, 255, 255, .75); color: var(--ink-list); font-size: 12px; }
@media (prefers-reduced-motion: reduce) {
  .initiative-ticker-track { animation: none; }
  .initiative-ticker-track li[aria-hidden="true"] { display: none; }
  .initiative-ticker-viewport { overflow-x: auto; -webkit-mask-image: none; mask-image: none; }
  .initiative-ticker-label span { animation: none; }
}
@media (max-width: 760px) {
  .initiative-ticker-inner { width: calc(100% - 32px); gap: 10px; }
}

/* Resultado das votações em etiqueta: verde aprovado, vermelho rejeitado, cinzento para outros desfechos. Cantos de 8px, sem pílula. */
.result-pill { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border: 1px solid transparent; border-radius: 8px; font-size: 13px; font-weight: 500; line-height: 20px; white-space: nowrap; }
.result-pill::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.result-approved { background: #e6f4ea; border-color: #c4e5cd; color: #1d6b38; }
.result-approved.is-unanimous { background: #d7eedf; border-color: #a9d8b8; color: #165a2f; }
.result-rejected { background: #fdecea; border-color: #f5c7c2; color: #a12d24; }
.result-other { background: var(--chrome); border-color: var(--line); color: var(--ink-list); }
.party-initiatives .result-pill { align-self: start; margin-top: 2px; }

/* ─── Página inicial · cartão «Resumo de política» ───
   Ilustração de interface: manchas azuis suaves por trás, cartão com brilho azul discreto, passos em mosaicos.
   A profundidade fica dentro da ilustração, como o sistema prevê para cartões que representam uma interface. */
.hero-proof .proof-orbit { border: 1px solid rgba(107, 192, 255, .22); border-radius: 50%; background: radial-gradient(circle at 45% 45%, rgba(107, 192, 255, .42), rgba(170, 215, 255, .18) 55%, rgba(235, 248, 255, 0) 72%); filter: blur(1px); animation: none; }
.hero-proof .orbit-one { width: 560px; height: 560px; transform: translate(-90px, -30px); }
.hero-proof .orbit-two { width: 440px; height: 440px; transform: translate(170px, 110px); background: radial-gradient(circle at 40% 40%, rgba(59, 140, 246, .30), rgba(107, 192, 255, .14) 55%, rgba(235, 248, 255, 0) 72%); }
.hero-proof .proof-card-main { width: min(480px, 92%); padding: 32px 30px 28px; border: 1px solid rgba(0, 87, 210, .12); border-radius: 24px; background: rgba(255, 255, 255, .92); box-shadow: 0 30px 70px -30px rgba(0, 87, 210, .35), 0 2px 6px rgba(34, 53, 72, .04); }
.hero-proof .proof-meta { align-items: center; color: var(--ink-meta); font-size: 13px; }
.proof-kicker { display: inline-flex; align-items: center; gap: 12px; white-space: nowrap; }
.proof-kicker i { width: 32px; height: 5px; border-radius: 3px; background: #3b8cf6; }
.hero-proof .reviewed-dot { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; border-radius: 999px; background: var(--band-blue); color: var(--primary); font-size: 13px; font-weight: 600; }
.hero-proof .reviewed-dot::before { width: 12px; height: 12px; margin: 0; background: var(--primary); box-shadow: none; }
.hero-proof .proof-card h2 { margin: 26px 0 12px; color: var(--ink-heading); font-size: clamp(26px, calc(2.3vw - 2px), 32px); font-weight: 700; line-height: 1.08; }
.hero-proof .proof-card-main > p { margin: 0; color: var(--ink-list); font-size: 15px; line-height: 1.5; }
.hero-proof .evidence-chain { display: grid; gap: 10px; margin-top: 22px; padding-top: 18px; border-top: 1px solid rgba(0, 87, 210, .14); }
.hero-proof .evidence-chain button { grid-template-columns: 44px 1fr 40px; gap: 16px; padding: 12px 14px 12px 12px; border: 1px solid rgba(34, 53, 72, .08); border-radius: 12px; background: #fbfdff; transition: border-color .2s, background .2s; }
.hero-proof .evidence-chain button:hover, .hero-proof .evidence-chain button:focus-visible { border-color: rgba(0, 87, 210, .35); background: var(--canvas); }
.hero-proof .chain-icon { width: 44px; height: 40px; border-radius: 8px; background: var(--band-blue); color: var(--primary); font-size: 18px; font-weight: 700; }
.hero-proof .chain-icon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.hero-proof .evidence-chain b { color: var(--ink-heading); font-size: 14px; font-weight: 700; }
.hero-proof .evidence-chain button:hover b { color: var(--ink-heading); }
.hero-proof .evidence-chain small { color: var(--ink-list); font-size: 13px; }
.hero-proof .evidence-chain i { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; background: var(--band-blue); color: var(--primary); font-size: 16px; font-weight: 600; transition: background .2s, color .2s; }
.hero-proof .evidence-chain button:hover i { background: var(--primary); color: #ffffff; }
@media (max-width: 760px) {
  .hero-proof .proof-card-main { padding: 24px 18px 20px; }
  .hero-proof .proof-meta, .hero-proof .reviewed-dot { font-size: 11px; }
  .proof-kicker { gap: 8px; }
  .proof-kicker i { width: 20px; }
  .hero-proof .evidence-chain button { grid-template-columns: 40px 1fr 36px; gap: 12px; }
  .hero-proof .chain-icon { width: 40px; height: 36px; font-size: 16px; }
  .hero-proof .evidence-chain i { width: 36px; height: 36px; }
  .hero-proof .orbit-one { width: 360px; height: 360px; }
  .hero-proof .orbit-two { width: 280px; height: 280px; }
}

/* Página inicial · composição flutuante de exemplos documentados. */
.hero-collage { min-height: 570px; isolation: isolate; overflow: visible; }
.hero-collage::before { content: ""; position: absolute; z-index: -4; inset: 2% -5% 0; border-radius: 48% 52% 45% 55%; background: radial-gradient(circle at 40% 45%, rgba(107, 192, 255, .2), rgba(235, 248, 255, 0) 68%); }
.hero-collage::after { content: ""; position: absolute; z-index: -1; top: -2%; bottom: -2%; left: -11%; width: 43%; pointer-events: none; background: linear-gradient(to right, var(--canvas) 8%, color-mix(in srgb, var(--canvas) 88%, transparent) 34%, color-mix(in srgb, var(--canvas) 48%, transparent) 66%, transparent 100%); }
.hero-collage-shapes, .hero-collage-building { position: absolute; z-index: -3; pointer-events: none; user-select: none; mix-blend-mode: multiply; }
.hero-collage-shapes { inset: 1% -8% 0 -10%; width: 118%; height: 98%; object-fit: cover; opacity: .42; -webkit-mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,.18) 10%, rgba(0,0,0,.72) 24%, #000 38%, #000 88%, transparent 100%); mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,.18) 10%, rgba(0,0,0,.72) 24%, #000 38%, #000 88%, transparent 100%); }
.hero-collage-building { right: -10%; bottom: -2%; width: 94%; height: 72%; object-fit: cover; object-position: 64% 58%; opacity: .3; -webkit-mask-image: linear-gradient(to top, black 45%, rgba(0,0,0,.7) 70%, transparent 100%); mask-image: linear-gradient(to top, black 45%, rgba(0,0,0,.7) 70%, transparent 100%); }
.hero-collage-orbit { position: absolute; z-index: -2; inset: 12% 3% 8% 2%; border: 1px solid rgba(0, 87, 210, .16); border-radius: 50%; transform: rotate(-11deg); }
.hero-collage-orbit::before, .hero-collage-orbit::after { content: ""; position: absolute; width: 10px; height: 10px; border: 4px solid rgba(235, 248, 255, .9); border-radius: 50%; background: var(--primary); }
.hero-collage-orbit::before { top: 12%; left: 7%; }.hero-collage-orbit::after { right: 4%; bottom: 19%; }
.hero-float-card { position: absolute; z-index: 2; display: block; border: 1px solid rgba(0, 87, 210, .13); border-radius: 18px; background: rgba(255, 255, 255, .94); box-shadow: 0 22px 55px -26px rgba(0, 64, 176, .42), 0 3px 12px rgba(34, 53, 72, .07); color: var(--ink-heading); backdrop-filter: blur(8px); transition: transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s, border-color .25s; }
.hero-float-card:hover, .hero-float-card:focus-visible { z-index: 4; border-color: rgba(0, 87, 210, .35); box-shadow: 0 28px 65px -24px rgba(0, 64, 176, .5), 0 8px 20px rgba(34, 53, 72, .08); }
.hero-float-meta { display: grid; grid-template-columns: auto 1fr auto; gap: 9px; align-items: center; color: var(--primary); font-size: 10px; text-transform: uppercase; }
.hero-float-meta > b { justify-self: start; padding: 7px 11px; border-radius: 999px; background: var(--band-blue); letter-spacing: .03em; }
.hero-float-meta > i { color: var(--ink-meta); font-size: 11px; font-style: normal; letter-spacing: 2px; }
.hero-card-icon { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: var(--band-blue); color: var(--primary); }
.hero-card-icon svg { width: 17px; height: 17px; fill: currentColor; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.hero-policy-card { left: 0; top: 70px; width: 58%; min-height: 425px; padding: 24px; transform: rotate(-2.2deg); }
.hero-policy-card:hover, .hero-policy-card:focus-visible { transform: rotate(-1deg) translateY(-8px); }
.hero-policy-card h2 { margin: 22px 0 8px; font-size: clamp(22px, 2.1vw, 29px); line-height: 1.08; letter-spacing: -.03em; }
.hero-policy-card > p { margin: 0; color: var(--ink-meta); font-size: 12px; }
.hero-verified { display: inline-flex; margin-top: 18px; padding: 7px 11px; border-radius: 999px; background: #e4f7ef; color: #087455; font-size: 11px; font-weight: 700; }
.hero-evidence-preview { display: grid; gap: 10px; margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); }
.hero-evidence-preview strong { font-size: 13px; }.hero-evidence-preview strong span { color: var(--primary); margin-right: 5px; }
.hero-evidence-preview blockquote { margin: 0; padding: 12px; border: 1px solid rgba(0,87,210,.09); border-radius: 10px; background: var(--chrome); color: var(--ink-list); font-size: 12px; line-height: 1.5; }
.hero-evidence-preview small { color: var(--primary); font-size: 10px; font-weight: 600; }
.hero-card-action { position: absolute; left: 24px; right: 24px; bottom: 20px; display: flex; justify-content: center; gap: 14px; padding: 10px; border-radius: 10px; background: var(--band-blue); color: var(--primary); font-size: 11px; }
.hero-vote-card { right: 1%; top: 20px; width: 44%; min-height: 238px; padding: 20px; transform: rotate(2.2deg); }
.hero-vote-card:hover, .hero-vote-card:focus-visible { transform: rotate(1deg) translateY(-8px); }
.hero-vote-card h3, .hero-fact-card h3 { margin: 16px 0 4px; font-size: 17px; line-height: 1.15; letter-spacing: -.02em; }
.hero-vote-card > p { margin: 0 0 13px; color: var(--ink-meta); font-size: 11px; }
.hero-vote-list { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.hero-vote-list li { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 7px 0; border-top: 1px solid var(--line); font-size: 11px; font-weight: 700; }
.hero-vote-list b { min-width: 66px; padding: 4px 7px; border-radius: 999px; font-size: 8px; text-align: center; text-transform: uppercase; }
.hero-vote-list .vote-favor { background: #e4f7ef; color: #087455; }.hero-vote-list .vote-against { background: #fdebea; color: #b13a32; }.hero-vote-list .vote-abstention { background: #f6eed9; color: #8a651a; }
.hero-fact-card { right: -2%; top: 296px; width: 47%; min-height: 205px; padding: 20px; transform: rotate(2.8deg); }
.hero-fact-card:hover, .hero-fact-card:focus-visible { transform: rotate(1.3deg) translateY(-8px); }
.hero-fact-card h3 { margin-top: 16px; font-size: 18px; }
.hero-fact-rating { display: inline-flex; margin-top: 12px; padding: 7px 10px; border-radius: 999px; background: #fff0c9; color: #8a5b00; font-size: 9px; font-weight: 700; }
.hero-fact-footer { position: absolute; left: 20px; right: 20px; bottom: 16px; display: flex; align-items: center; justify-content: space-between; color: var(--ink-meta); font-size: 10px; }
.hero-fact-footer b { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: var(--band-blue); color: var(--primary); }
.hero-method-pill { position: absolute; z-index: 5; left: 43%; bottom: 9px; display: flex; align-items: center; gap: 8px; padding: 10px 15px; border: 1px solid rgba(0,87,210,.12); border-radius: 999px; background: rgba(255,255,255,.95); box-shadow: 0 10px 25px rgba(34,53,72,.1); color: var(--ink-body); font-size: 10px; font-weight: 700; white-space: nowrap; }
.hero-method-pill > span { color: var(--primary); }.hero-method-pill i { width: 7px; height: 7px; border-radius: 50%; background: #1eae79; }
@media (max-width: 760px) {
  .hero-collage { min-height: 520px; margin-top: 14px; }
  .hero-policy-card { left: 0; top: 70px; width: 66%; min-height: 390px; padding: 16px; }
  .hero-policy-card h2 { margin-top: 16px; font-size: 19px; }
  .hero-policy-card > p, .hero-evidence-preview blockquote { font-size: 10px; }
  .hero-evidence-preview { margin-top: 13px; padding-top: 12px; }.hero-card-action { left: 16px; right: 16px; bottom: 15px; }
  .hero-vote-card { right: 0; top: 20px; width: 48%; min-height: 220px; padding: 14px; }
  .hero-vote-card h3 { font-size: 14px; }.hero-vote-list li { font-size: 9px; }.hero-vote-list b { min-width: 55px; font-size: 7px; }
  .hero-fact-card { right: -1%; top: 270px; width: 50%; min-height: 190px; padding: 14px; }
  .hero-fact-card h3 { font-size: 14px; }.hero-fact-footer { left: 14px; right: 14px; }
  .hero-float-meta > b { padding: 6px 8px; font-size: 8px; }.hero-card-icon { width: 26px; height: 26px; }
  .hero-method-pill { left: auto; right: 8%; bottom: 4px; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-policy-card, .hero-policy-card:hover, .hero-policy-card:focus-visible { transform: rotate(-2.2deg); }
  .hero-vote-card, .hero-vote-card:hover, .hero-vote-card:focus-visible { transform: rotate(2.2deg); }
  .hero-fact-card, .hero-fact-card:hover, .hero-fact-card:focus-visible { transform: rotate(2.8deg); }
}

/* ─── Página inicial · tipos de evidência ───
   Quatro cartões separados: ícone num círculo azul-claro, linha divisória, título e descrição. */
.difference-section .section-number { width: 52px; height: 52px; border: 0; background: var(--band-blue); color: var(--primary-deep); font-size: 15px; }
.difference-section .section-heading > div { gap: 20px; }
.difference-section .section-heading .kicker { padding-left: 20px; border-left: 1px solid var(--line); color: var(--ink-meta); font-size: 15px; font-weight: 400; }
.difference-section .section-heading h2 { font-weight: 700; }
.difference-grid { gap: 16px; border: 0; }
.difference-card { min-height: 0; padding: 32px 30px 36px; border: 1px solid var(--line); border-radius: 12px; background: var(--canvas); transition: border-color .2s; }
.difference-card:hover { border-color: rgba(0, 87, 210, .3); }
.difference-icon { width: 76px; height: 76px; display: grid; place-items: center; padding-bottom: 0; border-radius: 50%; background: var(--band-blue); color: var(--primary); }
.difference-icon svg { width: 36px; height: 36px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.difference-card h3 { margin: 0 0 12px; padding-top: 28px; border-top: 1px solid var(--line); color: var(--ink-heading); font-size: 22px; font-weight: 700; line-height: 1.2; }
.difference-icon { margin-bottom: 28px; }
.difference-card p { color: var(--ink-list); font-size: 16px; line-height: 1.6; }
@media (max-width: 760px) {
  .difference-card { padding: 24px 22px 26px; }
  .difference-icon { width: 56px; height: 56px; margin-bottom: 22px; }
  .difference-card h3 { padding-top: 22px; font-size: 20px; }
}

/* ─── Barra global · menus de navegação ───
   Abrem ao passar o rato, com o foco do teclado ou com o botão (toque). */
.nav-item { position: relative; display: inline-flex; align-items: center; gap: 2px; height: 60px; }
.submenu-toggle { width: 22px; height: 22px; display: grid; place-items: center; padding: 0; border: 0; border-radius: 4px; background: none; color: var(--ink-nav); cursor: pointer; }
.submenu-toggle svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s; }
.has-submenu:hover .submenu-toggle svg, .has-submenu.is-open .submenu-toggle svg { transform: rotate(180deg); }
.submenu { position: absolute; z-index: 60; top: 54px; left: -20px; width: 640px; display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 12px; padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--canvas); box-shadow: 0 18px 40px -18px rgba(34, 53, 72, .28); opacity: 0; visibility: hidden; transform: translateY(-4px); transition: opacity .15s ease, transform .15s ease, visibility 0s linear .15s; }
.submenu::before { content: ""; position: absolute; left: 0; right: 0; top: -10px; height: 10px; }
.has-submenu:hover .submenu, .has-submenu:focus-within .submenu, .has-submenu.is-open .submenu { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.submenu-kicker { margin: 4px 12px 6px; color: var(--ink-meta); font-size: 12px; font-weight: 600; }
.primary-nav .submenu-list a { height: auto; display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 12px; align-items: center; padding: 10px 12px; border-radius: 8px; color: var(--ink-heading); white-space: normal; }
.primary-nav .submenu-list a::after, .primary-nav .submenu-feature::after { display: none; }
.primary-nav .submenu-list a:hover, .primary-nav .submenu-list a:focus-visible { background: var(--chrome); color: var(--ink-heading); }
.submenu-list b { display: block; font-size: 15px; font-weight: 600; line-height: 20px; }
.submenu-list small { display: block; color: var(--ink-meta); font-size: 13px; line-height: 18px; }
.submenu-icon { width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 10px; background: var(--canvas); color: var(--ink-list); }
.submenu-icon svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.primary-nav .submenu-feature { height: auto; display: flex; flex-direction: column; gap: 8px; padding: 20px; border-radius: 10px; background: linear-gradient(160deg, var(--band-blue), #f7fbff 70%); color: var(--ink-list); white-space: normal; }
.submenu-feature-kicker { color: var(--primary-deep); font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.submenu-feature strong { color: var(--ink-heading); font-size: 20px; font-weight: 600; line-height: 1.2; }
.submenu-feature > span:not(.submenu-feature-kicker):not(.submenu-feature-link) { font-size: 14px; line-height: 21px; }
.submenu-feature-link { margin-top: auto; color: var(--primary); font-size: 14px; font-weight: 600; }
.primary-nav .submenu-feature:hover .submenu-feature-link { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 1050px) {
  .nav-item { height: auto; display: grid; gap: 4px; }
  .submenu-toggle { display: none; }
  .submenu { position: static; width: auto; display: block; padding: 0 0 0 12px; border: 0; box-shadow: none; opacity: 1; visibility: visible; transform: none; }
  .submenu-kicker, .submenu-feature, .submenu-list small, .submenu-icon { display: none !important; }
  .primary-nav .submenu-list a { display: block; padding: 6px 0; font-size: 14px; color: var(--ink-nav); }
  .submenu-list b { font-weight: 400; font-size: 14px; }
}

/* ─── Parlamento · vistas e agenda ─── */
.page[data-page="parliament"].is-agenda > :not(.page-intro):not(.parliament-views):not(.parliament-agenda) { display: none; }
.parliament-agenda[hidden] { display: none; }
.agenda-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 20px; }
.agenda-head h2 { margin: 0; font-size: 28px; font-weight: 600; }
.agenda-head p { margin: 4px 0 0; color: var(--ink-meta); font-size: 13px; }
.agenda-head > a { color: var(--primary); font-size: 14px; font-weight: 500; white-space: nowrap; text-decoration: none; }
.agenda-week { display: grid; grid-template-columns: 36px minmax(0, 1fr) 36px; gap: 8px; align-items: stretch; }
.agenda-week-nav { border: 1px solid var(--line); border-radius: 8px; background: var(--canvas); color: var(--ink-list); cursor: pointer; }
.agenda-week-nav svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.agenda-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
.agenda-days button { display: grid; gap: 2px; padding: 10px 8px; border: 1px solid var(--line); border-radius: 8px; background: var(--canvas); color: var(--ink-list); font: inherit; text-align: left; cursor: pointer; }
.agenda-days button span { color: var(--ink-meta); font-size: 12px; text-transform: capitalize; }
.agenda-days button b { color: var(--ink-heading); font-size: 15px; font-weight: 600; }
.agenda-days button small { color: var(--ink-meta); font-size: 12px; }
.agenda-days button[aria-current="date"] b::after { content: " · hoje"; color: var(--primary); font-weight: 500; font-size: 12px; }
.agenda-days button[aria-pressed="true"] { border-color: var(--primary); background: var(--band-blue); }
.agenda-days button[aria-pressed="true"] small { color: var(--primary-deep); }
.agenda-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 8px; }
.agenda-filters button { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--canvas); color: var(--ink-list); font: inherit; font-size: 14px; cursor: pointer; }
.agenda-filters button span { color: var(--ink-meta); font-size: 12px; }
.agenda-filters button[aria-pressed="true"] { border-color: var(--primary); background: var(--band-blue); color: var(--primary-deep); }
.agenda-day-title { margin: 24px 0 8px; font-size: 18px; font-weight: 600; }
.agenda-event { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 16px; padding: 16px 0; border-top: 1px solid var(--line); }
.agenda-time { color: var(--ink-heading); font-size: 15px; font-weight: 600; font-variant-numeric: tabular-nums; }
.agenda-section { display: inline-block; margin-bottom: 4px; padding: 1px 8px; border-radius: 4px; background: var(--chrome); color: var(--ink-list); font-size: 12px; line-height: 20px; }
.agenda-event-plenary .agenda-section { background: var(--band-blue); color: var(--primary-deep); }
.agenda-body h4 { margin: 0; color: var(--ink-heading); font-size: 16px; font-weight: 600; line-height: 1.35; }
.agenda-details { margin: 4px 0 0; color: var(--ink-meta); font-size: 14px; }
.agenda-body details { margin-top: 8px; }
.agenda-body summary { color: var(--primary); font-size: 14px; cursor: pointer; }
.agenda-text { margin-top: 8px; padding: 12px 14px; border-radius: 8px; background: var(--chrome); color: var(--ink-list); font-size: 14px; line-height: 1.55; white-space: pre-line; }
.agenda-empty { padding: 24px 0; color: var(--ink-meta); }
@media (max-width: 760px) {
  .agenda-head { flex-direction: column; align-items: flex-start; }
  .agenda-week { grid-template-columns: 32px minmax(0, 1fr) 32px; }
  .agenda-days { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; }
  .agenda-days button { flex: 0 0 96px; scroll-snap-align: start; }
  .agenda-event { grid-template-columns: 1fr; gap: 4px; }
}

.has-submenu.is-dismissed .submenu { opacity: 0; visibility: hidden; }

/* Menus compactos: o título abre o respetivo submenu e o estado ativo fica visível na barra. */
.nav-trigger { width: auto; height: 60px; display: inline-flex; align-items: center; gap: 4px; padding: 0; border: 0; border-radius: 0; background: none; color: var(--ink-nav); font: inherit; font-size: 15px; cursor: pointer; position: relative; white-space: nowrap; }
.nav-trigger svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s; }
.nav-trigger:hover, .has-submenu.is-open .nav-trigger, .has-submenu.is-current .nav-trigger { color: var(--primary); }
.has-submenu.is-current .nav-trigger::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--primary); }
.has-submenu:hover .nav-trigger svg, .has-submenu.is-open .nav-trigger svg { transform: rotate(180deg); }
.submenu { width: 240px; left: -12px; grid-template-columns: 1fr; padding: 8px; }
.primary-nav .submenu-list a { grid-template-columns: 32px minmax(0, 1fr); gap: 10px; padding: 8px 10px; }
.submenu-icon { width: 32px; height: 32px; border-radius: 8px; }
.submenu-icon svg { width: 18px; height: 18px; }
.submenu-list b { font-weight: 500; }

/* Cada vista do Parlamento mostra só o seu conteúdo. */
.page[data-page="parliament"][data-parliament-view="overview"] #parliament-votes { display: none; }
.page[data-page="parliament"][data-parliament-view="votes"] .parliament-layout,
.page[data-page="parliament"][data-parliament-view="votes"] #parliament-circles { display: none; }

@media (max-width: 1050px) {
  .nav-trigger { display: inline-flex; height: auto; padding: 0; color: var(--ink-heading); font-weight: 500; cursor: default; pointer-events: none; }
  .nav-trigger svg { display: none; }
  .has-submenu.is-current .nav-trigger::after { display: none; }
  .submenu { width: auto; padding: 0 0 0 12px; }
  .primary-nav .submenu-list a { display: block; padding: 6px 0; }
}

/* Esqueleto da agenda: blocos cinzentos com brilho suave, na forma dos dias, filtros e eventos. */
.skeleton-bar { display: block; height: 12px; border-radius: 4px; background: linear-gradient(90deg, var(--band) 0%, var(--chrome) 45%, var(--band) 90%); background-size: 220% 100%; animation: skeletonShimmer 1.4s ease-in-out infinite; }
.skeleton-bar.is-strong { height: 16px; }
.skeleton-bar.is-chip { height: 18px; margin-bottom: 8px; border-radius: 4px; }
.skeleton-bar.is-pill { height: 32px; border-radius: 8px; }
.agenda-head p .skeleton-bar { margin-top: 8px; }
.agenda-skeleton-day { display: grid; gap: 8px; padding: 12px 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--canvas); }
.agenda-skeleton-event .agenda-body { display: grid; gap: 8px; }
.agenda-skeleton-event .agenda-body .is-chip { margin-bottom: 0; }
@keyframes skeletonShimmer { from { background-position: 100% 0; } to { background-position: -120% 0; } }
@media (prefers-reduced-motion: reduce) { .skeleton-bar { animation: none; } }
@media (max-width: 760px) { .agenda-skeleton-day { flex: 0 0 96px; } }

/* Página Fact-check: diretório de verificações e método editorial. */
.factcheck-directory { display: grid; gap: 16px; padding-top: 36px; }
.factcheck-directory-card { min-height: 248px; display: flex; flex-direction: column; padding: 28px 34px 24px; overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: var(--canvas); transition: transform .25s, box-shadow .25s, border-color .25s; }
.factcheck-directory-card:hover { transform: translateY(-3px); border-color: var(--primary); box-shadow: 0 24px 55px rgba(34, 53, 72, .08); }
.factcheck-directory-meta { display: flex; align-items: center; gap: 10px; color: var(--ink-meta); font-size: 12px; }
.factcheck-directory-meta > span:last-child { padding-left: 10px; border-left: 1px solid var(--line); }
.factcheck-directory-card h2 { margin: 20px 0 12px; max-width: 950px; color: var(--ink-heading); font-size: clamp(23px, 2.5vw, 32px); line-height: 1.14; letter-spacing: -.025em; }
.factcheck-directory-card > p { max-width: 920px; margin: 0 0 22px; color: var(--ink-list); font-size: 14px; line-height: 1.55; }
.factcheck-directory-footer { margin-top: auto; padding-top: 16px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border-top: 1px solid var(--line); color: var(--primary); font-size: 12px; font-weight: 600; }
.factcheck-directory-footer .rating-pill { flex: none; font-size: 11px; }
.factcheck-directory-guide { margin-top: 48px; padding-top: 36px; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr); gap: 48px; border-top: 1px solid var(--line); }
.factcheck-detail-page { min-height: 850px; padding: 42px 0 120px; }
.factcheck-detail-layout { max-width: 980px; padding-top: 34px; padding-bottom: 80px; }
.factcheck-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 32px; align-items: start; padding-bottom: 80px; }
.factcheck-steps ol { display: grid; gap: 16px; margin: 16px 0 0; padding: 0; list-style: none; }
.factcheck-steps li { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 14px; padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--canvas); }
.factcheck-steps i { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 8px; background: var(--band-blue); color: var(--primary-deep); font-style: normal; font-weight: 700; }
.factcheck-steps strong { color: var(--ink-heading); font-size: 16px; }
.factcheck-steps p { margin: 4px 0 0; color: var(--ink-list); font-size: 14px; line-height: 1.5; }
.factcheck-empty a { display: inline-block; margin-top: 8px; color: var(--primary); font-weight: 500; }
@media (max-width: 860px) { .factcheck-directory-guide, .factcheck-layout { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .factcheck-directory-card { min-height: 0; padding: 24px 22px 20px; } .factcheck-directory-card h2 { font-size: 23px; } .factcheck-directory-footer { align-items: flex-end; } .factcheck-directory-footer > span:first-child { max-width: 125px; } }

/* Quiz político: percurso pergunta a pergunta e resultado multidimensional. */
.quiz-page { padding-bottom: 110px; }
.quiz-intro { position: relative; display: grid; grid-template-columns: 1.15fr .85fr; gap: 80px; align-items: end; padding-top: 56px; padding-bottom: 48px; margin-bottom: 46px; }
.quiz-intro::before { content: ""; position: absolute; z-index: -1; inset: 0 calc(50% - 50vw); background: var(--chrome); }
.quiz-intro h1 { margin: 14px 0 10px; font-size: clamp(38px, 5vw, 64px); line-height: 1; letter-spacing: -.04em; }
.quiz-intro h1 + p { margin: 0; color: var(--primary); font-size: 18px; font-weight: 600; }
.quiz-intro > p { max-width: 500px; margin: 0; color: var(--ink-lead); font-size: 17px; line-height: 1.6; }
.quiz-workspace { display: grid; grid-template-columns: 1fr; gap: 28px; align-items: start; }
.quiz-landing[hidden], .quiz-panel[hidden], .quiz-results[hidden] { display: none; }
.quiz-landing { position: relative; display: grid; grid-template-columns: 1fr; gap: 30px; align-items: start; padding: 44px; border: 1px solid var(--line); border-radius: 16px; background: var(--canvas); overflow: hidden; }
.quiz-landing::after { content: ""; position: absolute; right: -120px; bottom: -170px; width: 330px; height: 330px; border-radius: 50%; background: radial-gradient(circle, rgba(0, 87, 210, .1), rgba(0, 87, 210, 0) 68%); pointer-events: none; }
.quiz-landing-copy { position: relative; z-index: 1; }
.quiz-landing-copy h2 { max-width: 700px; margin: 13px 0 16px; color: var(--ink-heading); font-size: clamp(30px, 4vw, 45px); line-height: 1.06; letter-spacing: -.035em; }
.quiz-start-stack { position: relative; z-index: 1; width: 100%; min-width: 0; }
.quiz-start-card { display: grid; gap: 18px; padding: 28px; border: 1px solid var(--hairline); border-radius: 18px; background: var(--chrome); }
.quiz-start-card-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.quiz-card-kicker { color: var(--primary); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.quiz-duration-pill { display: inline-flex; align-items: center; gap: 8px; flex: 0 0 auto; padding: 8px 12px; border: 1px solid var(--line); border-radius: 999px; background: var(--canvas); color: var(--ink-meta); font-size: 12px; font-weight: 600; white-space: nowrap; }
.quiz-duration-pill svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.quiz-question-count { display: flex; align-items: baseline; gap: 12px; }
.quiz-question-count strong { color: var(--ink-heading); font-size: clamp(52px, 6vw, 72px); line-height: .9; letter-spacing: -.055em; }
.quiz-question-count span { color: var(--ink-heading); font-size: 21px; font-weight: 500; }
.quiz-start-description { max-width: 490px; margin: 0; color: var(--ink-list); font-size: 14px; line-height: 1.5; }
.quiz-start-card .button { width: 100%; justify-content: center; margin-top: 2px; }
.quiz-start-benefits { display: flex; flex-wrap: wrap; gap: 12px 30px; margin: 18px 0 0; padding: 0; color: var(--ink-list); list-style: none; font-size: 13px; }
.quiz-start-benefits li { display: flex; align-items: center; gap: 9px; }
.quiz-start-benefits li::before { content: ""; width: 7px; height: 7px; flex: 0 0 auto; border-radius: 50%; background: var(--primary); }
.quiz-landing-note { margin: 13px 0 0; color: var(--ink-meta); font-size: 11px; line-height: 1.5; }
.quiz-panel, .quiz-results { min-width: 0; border: 1px solid var(--line); border-radius: 16px; background: var(--canvas); overflow: hidden; }
.quiz-progress { padding: 22px 28px 18px; border-bottom: 1px solid var(--line); background: var(--chrome); }
.quiz-progress > div { display: flex; justify-content: space-between; gap: 20px; margin-bottom: 13px; color: var(--ink-meta); font-size: 12px; }
.quiz-progress b { color: var(--primary); font-weight: 600; }
.quiz-progress progress { display: block; width: 100%; height: 5px; overflow: hidden; appearance: none; border: 0; border-radius: 999px; background: var(--band); }
.quiz-progress progress::-webkit-progress-bar { background: var(--band); }
.quiz-progress progress::-webkit-progress-value { background: var(--primary); border-radius: 999px; }
.quiz-progress progress::-moz-progress-bar { background: var(--primary); border-radius: 999px; }
#political-quiz { padding: 38px 42px 32px; }
#quiz-question { min-width: 0; margin: 0; padding: 0; border: 0; }
#quiz-question legend { width: 100%; max-width: none; margin: 0 0 20px; color: var(--ink-heading); font-size: clamp(26px, 3.3vw, 39px); font-weight: 650; line-height: 1.14; letter-spacing: -.03em; }
.quiz-question-heading { display: inline; width: auto; }
.quiz-question-text { min-width: 0; }
.quiz-question-tail { white-space: nowrap; }
.quiz-context-pill { display: inline-flex; align-items: center; gap: 3px; margin: 0 0 0 8px; padding: 2px 6px 2px 3px; vertical-align: middle; border: 1px solid var(--line); border-radius: 999px; background: var(--chrome); color: var(--ink-meta); font: 650 11px/1.1 var(--font); letter-spacing: 0; white-space: nowrap; cursor: pointer; transition: transform .18s ease, border-color .18s ease, background .18s ease, color .18s ease; }
.quiz-context-pill:hover { transform: translateY(-1px); border-color: rgba(0, 87, 210, .35); background: var(--band-blue); color: var(--primary); }
.quiz-context-pill:focus-visible { outline: 3px solid rgba(0, 87, 210, .2); outline-offset: 2px; }
.quiz-context-pill i { width: 11px; height: 11px; display: grid; flex: 0 0 auto; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: var(--canvas); color: var(--primary); font: 750 6px/1 var(--font); font-style: normal; }
.quiz-context-dialog { width: min(580px, calc(100% - 32px)); max-width: none; margin: auto; padding: 0; border: 1px solid var(--line); border-radius: 14px; background: var(--canvas); color: var(--ink); box-shadow: 0 24px 80px rgba(2, 15, 35, .2); }
.quiz-context-dialog::backdrop { background: rgba(2, 15, 35, .48); backdrop-filter: blur(3px); }
.quiz-context-dialog-frame { position: relative; padding: 28px; }
.quiz-context-dialog-close { position: absolute; top: 14px; right: 14px; width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: var(--chrome); color: var(--ink-heading); font-size: 20px; line-height: 1; cursor: pointer; }
.quiz-context-dialog-close:hover { border-color: var(--primary); color: var(--primary); }
.quiz-context-dialog-kicker { color: var(--primary); font-size: 9px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.quiz-context-dialog h2 { max-width: 490px; margin: 12px 42px 8px 0; color: var(--ink-heading); font-size: 23px; line-height: 1.18; letter-spacing: -.025em; }
.quiz-context-dialog-frame > p { margin: 0; color: var(--ink-meta); font-size: 11px; line-height: 1.5; }
.quiz-context-dialog-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 20px; }
.quiz-context-dialog-columns section { min-width: 0; padding: 15px; border: 1px solid var(--line); border-radius: 10px; background: var(--chrome); }
.quiz-context-dialog-columns strong { display: block; margin-bottom: 10px; color: var(--ink-heading); font-size: 11px; }
.quiz-context-dialog-columns ul { display: grid; gap: 8px; margin: 0; padding-left: 17px; color: var(--ink-list); font-size: 11px; line-height: 1.45; }
.quiz-context-dialog-columns li::marker { color: var(--primary); }
.quiz-options { display: grid; grid-template-columns: 1fr; gap: 9px; }
.quiz-options label { position: relative; cursor: pointer; }
.quiz-options input { position: absolute; opacity: 0; pointer-events: none; }
.quiz-options span { min-height: 54px; display: flex; align-items: center; justify-content: flex-start; gap: 13px; padding: 12px 16px; border: 1px solid var(--line); border-radius: 10px; color: var(--ink-list); font-size: 13px; font-weight: 600; line-height: 1.25; text-align: left; transform: translateX(0) scale(1); transform-origin: left center; transition: transform .18s cubic-bezier(.2, .8, .2, 1), border-color .18s, background .18s, color .18s, box-shadow .18s; }
.quiz-options span::before { content: ""; width: 16px; height: 16px; flex: 0 0 auto; border: 1px solid var(--hairline); border-radius: 50%; background: var(--canvas); }
.quiz-options label:hover span { transform: translateX(6px) scale(1.006); border-color: var(--primary); background: var(--band-blue); color: var(--primary-deep); box-shadow: 0 8px 20px rgba(0, 87, 210, .09); }
.quiz-options label:active span { transform: translateX(3px) scale(.995); }
.quiz-options input:focus-visible + span { outline: 3px solid rgba(0, 87, 210, .2); outline-offset: 2px; }
.quiz-options input:checked + span { border-color: var(--primary); background: var(--band-blue); color: var(--primary-deep); box-shadow: inset 0 0 0 1px var(--primary); }
.quiz-options input:checked + span::before { border: 4px solid var(--primary); }
@media (prefers-reduced-motion: reduce) { .quiz-options span { transition: border-color .01ms, background .01ms, color .01ms, box-shadow .01ms; } .quiz-options label:hover span, .quiz-options label:active span { transform: none; } }
.quiz-actions { display: flex; justify-content: space-between; gap: 16px; margin-top: 38px; padding-top: 24px; border-top: 1px solid var(--line); }
.quiz-actions .button:disabled { opacity: .38; cursor: not-allowed; }
.quiz-results { padding: 36px 38px; scroll-margin-top: 100px; }
.quiz-result-heading { padding-bottom: 28px; border-bottom: 1px solid var(--line); }
.quiz-result-heading h2 { margin: 13px 0 10px; font-size: clamp(32px, 4vw, 48px); line-height: 1; letter-spacing: -.04em; }
.quiz-result-heading p { max-width: 780px; margin: 0; color: var(--ink-list); line-height: 1.6; }
.quiz-result-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 42px; padding-top: 30px; }
.quiz-result-grid > section, .quiz-ideology-lead > div, .quiz-match > div, .quiz-axis, .quiz-ideology-row { min-width: 0; }
.quiz-profile-section { grid-column: 1 / -1; }
.quiz-axes, .quiz-matches { display: grid; gap: 12px; margin-top: 18px; }
.quiz-axes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.quiz-axis { padding: 13px 14px; border: 1px solid var(--line); border-radius: 10px; }
.quiz-axis > div:first-child { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 11px; font-size: 11px; }
.quiz-axis > div:first-child span { color: var(--ink-meta); }
.quiz-axis > div:first-child strong { color: var(--ink-heading); text-align: right; }
.quiz-axis-scale { position: relative; height: 5px; border-radius: 999px; background: linear-gradient(90deg, var(--sky), var(--band), var(--primary)); }
.quiz-axis-scale::after { content: ""; position: absolute; top: -3px; bottom: -3px; left: 50%; width: 1px; background: var(--hairline); opacity: .45; }
.quiz-axis-scale i { position: absolute; z-index: 1; top: 50%; width: 13px; height: 13px; border: 3px solid var(--canvas); border-radius: 50%; background: var(--primary); box-shadow: 0 0 0 1px var(--primary); transform: translate(-50%, -50%); }
.quiz-axis > small { display: flex; justify-content: space-between; gap: 20px; margin-top: 8px; color: var(--ink-meta); font-size: 8px; line-height: 1.25; }
.quiz-axis > small span:last-child { text-align: right; }
.quiz-match { position: relative; display: grid; grid-template-columns: 38px 1fr auto; gap: 13px; align-items: center; padding: 16px; border: 1px solid var(--line); border-radius: 12px; }
.quiz-match > img { grid-column: 1; grid-row: 1; width: 38px; height: 38px; object-fit: contain; border: 1px solid var(--line); border-radius: 9px; background: #fff; }
.quiz-match-rank { position: absolute; top: -7px; left: -7px; width: 20px; height: 20px; display: grid; place-items: center; border-radius: 50%; background: var(--primary); color: white; font-size: 10px; font-weight: 700; }
.quiz-match > div { grid-column: 2; grid-row: 1; }
.quiz-match h3 { margin: 3px 0 4px; font-size: 16px; line-height: 1.15; }
.quiz-match small { color: var(--ink-meta); font-size: 9px; }
.quiz-match a { color: var(--primary); font-size: 10px; font-weight: 600; }
.quiz-match > strong { grid-column: 3; grid-row: 1; color: var(--primary); font-size: 22px; text-align: right; }
.quiz-match > strong small { display: block; font-size: 8px; font-weight: 500; }
.quiz-match-bar { grid-column: 1 / -1 !important; grid-row: 2 !important; height: 3px; overflow: hidden; border-radius: 999px; background: var(--band); }
.quiz-match-bar i { display: block; height: 100%; background: var(--primary); }
.quiz-section-note { margin: 9px 0 0; color: var(--ink-meta); font-size: 11px; line-height: 1.45; }
.quiz-ideology-lead { display: grid; grid-template-columns: 116px 1fr; gap: 22px; align-items: center; margin: 18px 0 22px; padding: 20px; border: 1px solid var(--line); border-radius: 14px; background: var(--chrome); }
.quiz-ideology-lead h3 { margin: 4px 0 7px; font-size: 24px; line-height: 1; }
.quiz-ideology-lead p { margin: 0; color: var(--ink-list); font-size: 11px; line-height: 1.5; }
.quiz-ideology-lead small { color: var(--ink-meta); font-size: 9px; text-transform: uppercase; letter-spacing: .07em; }
.quiz-percent-ring { width: 108px; height: 108px; display: grid; place-content: center; position: relative; isolation: isolate; border-radius: 50%; text-align: center; background: conic-gradient(var(--primary) calc(var(--percent) * 1%), var(--band) 0); }
.quiz-percent-ring::before { content: ""; position: absolute; z-index: -1; inset: 10px; border-radius: 50%; background: var(--canvas); }
.quiz-percent-ring strong { color: var(--primary); font-size: 23px; line-height: 1; }
.quiz-percent-ring span { color: var(--ink-meta); font-size: 8px; }
.quiz-ideology-chart { display: grid; gap: 14px; }
.quiz-ideology-row { display: grid; gap: 6px; padding-bottom: 13px; border-bottom: 1px solid var(--line); }
.quiz-ideology-row:last-child { border-bottom: 0; }
.quiz-ideology-row > div:first-child { display: flex; justify-content: space-between; gap: 18px; color: var(--ink-heading); font-size: 12px; font-weight: 600; }
.quiz-ideology-row > div:first-child b { color: var(--primary); }
.quiz-percentage-bar { height: 8px; overflow: hidden; border-radius: 999px; background: var(--band); }
.quiz-percentage-bar i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--sky), var(--primary)); }
.quiz-ideology-row p { margin: 0; color: var(--ink-meta); font-size: 10px; line-height: 1.4; }
.quiz-ideology-row a { justify-self: start; color: var(--primary); font-size: 10px; font-weight: 600; }
.quiz-result-note { display: grid; grid-template-columns: 1fr auto; gap: 8px 24px; align-items: center; margin-top: 30px; padding: 20px; border-radius: 12px; background: var(--chrome); }
.quiz-result-note p { margin: 0; color: var(--ink-list); font-size: 12px; line-height: 1.5; }
.quiz-result-note small { color: var(--ink-meta); font-size: 10px; }
.quiz-result-note .button { grid-column: 2; grid-row: 1 / 3; }
@media (max-width: 920px) { .quiz-landing { grid-template-columns: 1fr; gap: 30px; } .quiz-result-grid { grid-template-columns: 1fr; } .quiz-profile-section { grid-column: auto; } }
@media (max-width: 700px) { .quiz-intro { grid-template-columns: 1fr; gap: 22px; padding-top: 36px; padding-bottom: 34px; } .quiz-landing { padding: 28px 22px; } .quiz-start-card { gap: 16px; padding: 20px; } .quiz-question-count strong { font-size: 54px; } .quiz-question-count span { font-size: 18px; } .quiz-start-benefits { gap: 10px 22px; } #political-quiz { padding: 28px 22px 24px; } .quiz-axes { grid-template-columns: 1fr; } .quiz-results { padding: 28px 20px; } .quiz-ideology-lead { grid-template-columns: 92px 1fr; padding: 16px; } .quiz-percent-ring { width: 86px; height: 86px; } .quiz-result-note { grid-template-columns: 1fr; } .quiz-result-note .button { grid-column: 1; grid-row: auto; justify-self: start; } }
@media (max-width: 700px) { .quiz-context-pill { margin-left: 6px; } .quiz-context-dialog { width: calc(100% - 16px); border-radius: 12px; } .quiz-context-dialog-frame { padding: 24px 18px 18px; } .quiz-context-dialog h2 { font-size: 20px; } .quiz-context-dialog-columns { grid-template-columns: 1fr; } .quiz-context-dialog-columns section { padding: 13px; } }
@media (max-width: 560px) {
  .quiz-workspace { width: 100%; min-width: 0; }
  .quiz-results { width: 100%; max-width: 100%; padding: 24px 14px 18px; border-radius: 12px; overflow: clip; }
  .quiz-result-heading { padding-bottom: 22px; }
  .quiz-result-heading h2 { font-size: 31px; line-height: 1.04; overflow-wrap: anywhere; }
  .quiz-result-heading p { font-size: 13px; line-height: 1.55; }
  .quiz-result-grid { gap: 34px; padding-top: 24px; }
  .quiz-result-grid > section { width: 100%; max-width: 100%; min-width: 0; }
  .quiz-section-note { max-width: 100%; overflow-wrap: anywhere; }
  .quiz-ideology-lead { grid-template-columns: 1fr; gap: 16px; padding: 16px 14px; }
  .quiz-percent-ring { width: 82px; height: 82px; }
  .quiz-percent-ring::before { inset: 8px; }
  .quiz-percent-ring strong { font-size: 20px; }
  .quiz-ideology-lead h3 { font-size: 22px; overflow-wrap: anywhere; }
  .quiz-ideology-row > div:first-child { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: start; }
  .quiz-ideology-row > div:first-child span, .quiz-ideology-row p { min-width: 0; overflow-wrap: anywhere; }
  .quiz-match { grid-template-columns: 36px minmax(0, 1fr); gap: 10px 12px; align-items: start; padding: 15px 12px; }
  .quiz-match > img { grid-column: 1; grid-row: 1 / 3; width: 36px; height: 36px; }
  .quiz-match > div { grid-column: 2; grid-row: 1; min-width: 0; }
  .quiz-match h3 { font-size: 15px; overflow-wrap: anywhere; }
  .quiz-match > strong { grid-column: 2; grid-row: 2; display: flex; align-items: baseline; gap: 6px; font-size: 19px; text-align: left; }
  .quiz-match > strong small { display: inline; }
  .quiz-match-bar { grid-column: 1 / -1 !important; grid-row: 3 !important; }
  .quiz-axis { padding: 13px 12px; }
  .quiz-axis > div:first-child { display: grid; grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .quiz-axis > div:first-child strong { text-align: left; overflow-wrap: anywhere; }
  .quiz-axis > small { gap: 8px; }
  .quiz-axis > small span { max-width: 48%; overflow-wrap: anywhere; }
  .quiz-result-note { gap: 12px; margin-top: 24px; padding: 16px 14px; }
  .quiz-result-note .button { width: 100%; justify-content: center; }
}

/* Fact-check: verificações publicadas */
.factcheck-main { display: grid; gap: 32px; min-width: 0; }
.factcheck-aside { display: grid; gap: 32px; position: sticky; top: 96px; }
.factcheck-card { display: grid; gap: 24px; padding: 32px; border: 1px solid var(--line); border-radius: 12px; background: var(--canvas); }
.factcheck-card header h2 { margin: 12px 0 8px; color: var(--ink-heading); font-size: 28px; line-height: 1.2; letter-spacing: -0.01em; }
.factcheck-card header p { margin: 0; color: var(--ink-body); font-size: 16px; line-height: 1.6; }
.factcheck-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; color: var(--ink-meta); font-size: 13px; }
.factcheck-meta .topic-chip { padding: 3px 10px; border-radius: 8px; background: var(--band-blue); color: var(--primary-deep); font-weight: 500; text-decoration: none; }
.factcheck-claims { display: grid; gap: 16px; margin: 0; padding: 0; list-style: none; }
.factcheck-claim { display: grid; gap: 12px; padding: 20px; border: 1px solid var(--line); border-radius: 12px; background: var(--chrome); }
.factcheck-claim-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.factcheck-party { display: inline-flex; align-items: center; gap: 10px; color: inherit; text-decoration: none; min-width: 0; }
.factcheck-party strong { display: block; color: var(--ink-heading); font-size: 15px; }
.factcheck-party small { display: block; color: var(--ink-meta); font-size: 13px; }
.factcheck-party:hover strong { color: var(--primary); }
.factcheck-avatar { width: 36px; height: 36px; flex: none; display: grid; place-items: center; overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: var(--canvas); font-size: 10px; font-weight: 700; }
.factcheck-avatar img { width: 100%; height: 100%; object-fit: contain; }
.factcheck-claim blockquote { margin: 0; padding-left: 14px; border-left: 3px solid var(--primary); color: var(--ink-heading); font-size: 16px; line-height: 1.6; }
.factcheck-source { justify-self: start; color: var(--primary); font-size: 14px; font-weight: 500; }
.factcheck-checks { width: 100%; border-collapse: collapse; font-size: 14px; background: var(--canvas); border-radius: 8px; overflow: hidden; }
.factcheck-checks th, .factcheck-checks td { padding: 9px 12px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.factcheck-checks thead th { color: var(--ink-meta); font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; }
.factcheck-checks tbody th { color: var(--ink-list); font-weight: 400; }
.factcheck-checks td { color: var(--ink-heading); font-weight: 600; white-space: nowrap; font-variant-numeric: tabular-nums; }
.factcheck-checks tbody tr:last-child > * { border-bottom: 0; }
.factcheck-checks tr.is-mismatch td:last-child { color: #8a4b00; }
.factcheck-explanation { margin: 0; color: var(--ink-body); font-size: 15px; line-height: 1.6; }
.factcheck-datasets { color: var(--ink-meta); font-size: 13px; }
.factcheck-context { padding: 16px 20px; border-radius: 12px; background: var(--band-blue); }
.factcheck-context p { margin: 6px 0 0; color: var(--ink-body); font-size: 15px; line-height: 1.6; }
.factcheck-analysis { display: grid; border-top: 1px solid var(--line); }
.factcheck-analysis section { position: relative; padding: 34px 0 34px 52px; border-bottom: 1px solid var(--line); }
.factcheck-section-number { position: absolute; left: 0; top: 39px; color: var(--primary); font-size: 11px; font-weight: 700; }
.factcheck-analysis h3 { margin: 0 0 16px; color: var(--ink-heading); font-size: 24px; line-height: 1.18; letter-spacing: -.02em; }
.factcheck-analysis p { margin: 0 0 15px; color: var(--ink-body); font-size: 15px; line-height: 1.72; }
.factcheck-analysis p:last-child { margin-bottom: 0; }
.factcheck-analysis ul { display: grid; gap: 9px; margin: 18px 0 0; padding: 0; list-style: none; }
.factcheck-analysis li { position: relative; padding-left: 20px; color: var(--ink-list); font-size: 14px; line-height: 1.55; }
.factcheck-analysis li::before { content: ""; position: absolute; left: 1px; top: .65em; width: 7px; height: 2px; background: var(--primary); }
.factcheck-analysis .factcheck-formula { display: inline-flex; margin: 0 0 20px; padding: 11px 14px; border: 1px solid rgba(0, 87, 210, .2); border-radius: 8px; background: var(--band-blue); color: var(--primary-deep); font-size: 14px; font-weight: 700; font-variant-numeric: tabular-nums; }
.factcheck-sources ul { display: grid; gap: 10px; margin: 10px 0 0; padding: 0; list-style: none; }
.factcheck-sources li { display: grid; gap: 4px; padding: 13px 0; border-bottom: 1px solid var(--line); }
.factcheck-sources li > a { color: inherit; text-decoration: none; }
.factcheck-sources li > a strong { display: block; color: var(--primary); font-size: 14px; }
.factcheck-sources li > a span { display: block; color: var(--ink-list); font-size: 14px; }
.factcheck-sources small { color: var(--ink-meta); font-size: 13px; }
.factcheck-sources small a { color: var(--primary); }
.factcheck-sources dl { display: flex; flex-wrap: wrap; gap: 7px; margin: 8px 0 0; }
.factcheck-sources dl > div { display: inline-flex; gap: 5px; padding: 5px 8px; border-radius: 7px; background: var(--chrome); color: var(--ink-meta); font-size: 10px; }
.factcheck-sources dt::after { content: ":"; }
.factcheck-sources dd { margin: 0; color: var(--ink-heading); font-weight: 600; }
.factcheck-limits { margin: 16px 0 0; color: var(--ink-meta); font-size: 13px; line-height: 1.6; }
.factcheck-scale dl { display: grid; gap: 12px; margin: 12px 0 0; }
.factcheck-scale dl > div { display: grid; gap: 6px; }
.factcheck-scale dd { margin: 0; color: var(--ink-list); font-size: 13px; line-height: 1.5; }
.rating-pill { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border: 1px solid transparent; border-radius: 8px; font-size: 13px; font-weight: 600; line-height: 20px; white-space: nowrap; }
.rating-pill::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.rating-correct { background: #e6f4ea; border-color: #c4e5cd; color: #1d6b38; }
.rating-correct-with-caveats { background: #eef6e2; border-color: #d3e6b8; color: #46621a; }
.rating-imprecise { background: #fff3e0; border-color: #f6d7a7; color: #8a4b00; }
.rating-incorrect { background: #fdecea; border-color: #f5c7c2; color: #a12d24; }
.rating-unverifiable { background: var(--chrome); border-color: var(--line); color: var(--ink-list); }
@media (max-width: 860px) { .factcheck-layout { grid-template-columns: 1fr; } .factcheck-aside { position: static; } .factcheck-card { padding: 20px; } .factcheck-checks td { white-space: normal; } }
@media (max-width: 560px) { .factcheck-analysis section { padding-left: 36px; } .factcheck-analysis h3 { font-size: 21px; } .factcheck-checks { display: block; overflow-x: auto; } }

/* Articles */
.article-directory { display: grid; gap: 16px; padding-top: 36px; }
.article-card { display: grid; grid-template-columns: minmax(300px, .72fr) 1.28fr; min-height: 264px; border: 1px solid var(--line); border-radius: 16px; overflow: hidden; background: var(--canvas); transition: transform .25s, box-shadow .25s; }
.article-card:hover { transform: translateY(-3px); box-shadow: 0 24px 55px rgba(34, 53, 72, .08); }
.article-card-visual { padding: 28px 32px; display: grid; align-content: center; gap: 14px; background: linear-gradient(145deg, #0b3470, #0758b7); color: white; }
.article-card-visual > span { color: rgba(255,255,255,.76); font-size: 10px; font-weight: 700; letter-spacing: .09em; font-variant-numeric: tabular-nums; }
.article-card-visual > small { padding-top: 12px; border-top: 1px solid rgba(255,255,255,.2); color: rgba(255,255,255,.68); font-size: 10px; line-height: 1.4; }
.article-card-copy { padding: 28px 36px 24px; display: flex; flex-direction: column; }
.article-topic { color: var(--primary); font-size: 12px; font-weight: 700; }
.article-card h2 { margin: 14px 0 10px; max-width: 720px; font-size: clamp(25px, 3vw, 36px); line-height: 1.05; letter-spacing: -.035em; }
.article-card p { max-width: 720px; margin: 0; color: var(--ink-list); font-size: 14px; line-height: 1.5; }
.article-card-copy > div { margin-top: auto; padding-top: 16px; display: flex; justify-content: space-between; gap: 20px; border-top: 1px solid var(--line); color: var(--ink-meta); font-size: 12px; }
.article-card-copy b { color: var(--primary); }
.article-card-housing { grid-template-columns: 1fr; background: linear-gradient(145deg, #092e68, #075bb7); }
.article-card-columns { height: 118px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 13px; align-items: stretch; padding: 0 4px; border-bottom: 1px solid rgba(255,255,255,.28); }
.article-card-columns > span { display: grid; grid-template-rows: 20px 1fr 19px; min-width: 0; text-align: center; }
.article-card-columns b { color: white; font-size: 10px; font-weight: 700; font-variant-numeric: tabular-nums; }
.article-card-columns i { width: 100%; height: max(7px, var(--height)); align-self: end; border-radius: 4px 4px 0 0; background: linear-gradient(180deg, #49adff, #1483e8); }
.article-card-columns small { padding-top: 6px; color: rgba(255,255,255,.72); font-size: 9px; }
.article-card-law { grid-template-columns: 1fr; gap: 13px; align-content: center; background: linear-gradient(145deg, #0a376d, #0c5aa5); }
.article-card-law > strong { font-size: 25px; line-height: 1.05; letter-spacing: -.03em; }
.article-card-law > div { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; }
.article-card-law > div i { height: 7px; border-radius: 3px; background: rgba(255,255,255,.18); }
.article-card-law > div i.is-complete { background: var(--sky); }
.article-card-law > div i.is-current { background: white; box-shadow: 0 0 0 3px rgba(75,174,255,.32); }
.article-card-buyers { grid-template-columns: 1fr; gap: 13px; align-content: center; background: linear-gradient(145deg, #092e68, #075bb7); }
.article-card-bars { display: grid; gap: 13px; }
.article-card-bars > span { display: grid; grid-template-columns: minmax(105px, 1fr) minmax(80px, 1.2fr) 34px; align-items: center; gap: 9px; }
.article-card-bars b { color: rgba(255,255,255,.82); font-size: 9px; line-height: 1.25; }
.article-card-bars i { height: 8px; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.16); }
.article-card-bars em { display: block; width: var(--bar); min-width: 6px; height: 100%; border-radius: inherit; background: #4eb4ff; }
.article-card-bars strong { color: white; font-size: 13px; font-variant-numeric: tabular-nums; text-align: right; }

.article-page { min-height: 850px; padding: 42px 0 130px; }
.article-hero { max-width: 980px; padding-top: 75px; padding-bottom: 68px; border-bottom: 1px solid var(--line); }
.article-hero h1 { margin: 22px 0 28px; max-width: 950px; font-size: clamp(52px, 7vw, 84px); line-height: .99; letter-spacing: -.055em; font-weight: 600; }
.article-hero > p { max-width: 780px; margin: 0; color: var(--ink-list); font-size: 20px; line-height: 1.65; }
.article-byline { display: flex; flex-wrap: wrap; gap: 10px 28px; margin-top: 35px; color: var(--ink-meta); font-size: 12px; }
.article-byline span + span { position: relative; }
.article-byline span + span::before { content: ""; position: absolute; left: -15px; top: 5px; width: 3px; height: 3px; border-radius: 50%; background: var(--primary); }
.article-layout { max-width: 980px; display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 72px; padding-top: 62px; }
.article-aside { position: sticky; top: 110px; align-self: start; }
.article-aside nav { display: grid; margin-top: 15px; }
.article-aside nav a { padding: 11px 0; border-bottom: 1px solid var(--line); color: var(--ink-meta); font-size: 13px; }
.article-aside nav a:hover { color: var(--primary); }
.article-body { min-width: 0; }
.article-body > section { padding: 58px 0; border-bottom: 1px solid var(--line); scroll-margin-top: 105px; }
.article-body > section:first-child { padding-top: 0; }
.article-body h2 { margin: 12px 0 24px; font-size: clamp(30px, 4vw, 45px); line-height: 1.12; letter-spacing: -.035em; }
.article-body p { margin: 0 0 22px; color: var(--ink-body); font-size: 17px; line-height: 1.8; }
.article-body p:last-child { margin-bottom: 0; }
.article-body sup a { display: inline-grid; place-items: center; min-width: 19px; height: 19px; margin-left: 3px; border-radius: 50%; background: var(--band-blue); color: var(--primary); font-size: 11px; font-weight: 700; }
.article-section-number { color: var(--primary); font-size: 12px; font-weight: 700; }
.article-summary { padding: 32px !important; border: 1px solid rgba(0, 87, 210, .18) !important; border-radius: 14px; background: var(--band-blue); }
.article-summary h2 { font-size: 30px; }
.article-summary ol { display: grid; gap: 0; margin: 28px 0 0; padding: 0; list-style: none; }
.article-summary li { display: grid; grid-template-columns: 38px 1fr; gap: 2px 12px; padding: 16px 0; border-top: 1px solid rgba(0, 87, 210, .16); }
.article-summary li > i { grid-row: 1 / 3; width: 29px; height: 29px; display: grid; place-items: center; border-radius: 50%; background: var(--primary); color: white; font-size: 12px; font-style: normal; font-weight: 700; }
.article-summary li b { font-size: 14px; }
.article-summary li span { color: var(--ink-list); font-size: 13px; line-height: 1.55; }
.article-comparison { display: grid; gap: 16px; margin: 34px 0; padding: 28px; border-radius: 12px; background: var(--green-deep); color: white; }
.article-comparison > div { display: grid; grid-template-columns: 50px 82px 1fr; gap: 14px; align-items: center; }
.article-comparison span { color: rgba(255,255,255,.7); font-size: 12px; }
.article-comparison strong { font-size: 16px; font-variant-numeric: tabular-nums; }
.article-comparison i { width: var(--bar); height: 14px; border-radius: 2px; background: var(--sky); }
.article-chart { margin: 34px 0; padding: 28px; border: 1px solid var(--line); border-radius: 14px; background: var(--canvas); overflow: hidden; }
.article-chart figcaption { display: grid; gap: 5px; margin-bottom: 28px; }
.article-chart figcaption strong { font-size: 16px; }
.article-chart figcaption > span { color: var(--ink-meta); font-size: 12px; line-height: 1.5; }
.article-chart > small, .article-chart-split > small { display: block; margin-top: 22px; color: var(--ink-meta); font-size: 11px; line-height: 1.55; }
.article-chart-dark { border-color: var(--green-deep); background: var(--green-deep); color: white; }
.article-chart-dark figcaption > span, .article-chart-dark > small { color: rgba(255,255,255,.68); }
.article-chart-compact { padding: 25px 28px; }
.chart-bars-horizontal { display: grid; gap: 14px; }
.chart-bars-horizontal > div { display: grid; grid-template-columns: 125px minmax(0, 1fr) 58px; gap: 12px; align-items: center; }
.chart-bars-horizontal span { color: rgba(255,255,255,.72); font-size: 11px; }
.chart-bars-horizontal i { width: var(--bar); min-width: 4px; height: 14px; border-radius: 3px; background: var(--sky); }
.chart-bars-horizontal strong { font-size: 12px; text-align: right; font-variant-numeric: tabular-nums; }
.chart-bars-horizontal .is-forecast i { border: 1px solid var(--sky); background: repeating-linear-gradient(135deg, var(--sky) 0 5px, transparent 5px 9px); }
.chart-periods { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.chart-period { padding: 20px; border-radius: 10px; background: var(--chrome); }
.chart-period > b { display: block; margin-bottom: 18px; color: var(--primary-deep); font-size: 13px; }
.chart-period > div { display: grid; grid-template-columns: 76px 1fr; gap: 7px 10px; align-items: center; margin-top: 12px; }
.chart-period span { color: var(--ink-meta); font-size: 11px; }
.chart-period i { width: var(--bar); min-width: 3px; height: 10px; border-radius: 3px; background: var(--primary); }
.chart-period i.is-negative { background: #97a9ba; }
.chart-period strong { grid-column: 2; font-size: 12px; font-variant-numeric: tabular-nums; }
.chart-share { display: grid; gap: 17px; }
.chart-share > div { display: grid; grid-template-columns: 126px 1fr 42px; gap: 12px; align-items: center; }
.chart-share span { color: var(--ink-list); font-size: 12px; }
.chart-share > div > i { height: 17px; border-radius: 4px; background: var(--chrome); overflow: hidden; }
.chart-share > div > i > b { display: block; width: var(--bar); height: 100%; border-radius: inherit; background: var(--primary); }
.chart-share strong { color: var(--primary-deep); text-align: right; font-size: 14px; font-variant-numeric: tabular-nums; }
.chart-timeline { display: grid; grid-template-columns: repeat(4, 1fr); position: relative; }
.chart-timeline::before { content: ""; position: absolute; left: 9%; right: 9%; top: 17px; height: 2px; background: var(--line); }
.chart-timeline span { z-index: 1; display: grid; justify-items: center; gap: 10px; text-align: center; }
.chart-timeline i { width: 35px; height: 35px; display: grid; place-items: center; border: 2px solid var(--primary); border-radius: 50%; background: var(--canvas); color: var(--primary); font-size: 11px; font-style: normal; font-weight: 700; }
.chart-timeline b { max-width: 110px; font-size: 11px; line-height: 1.4; }
.chart-timeline-note { width: 58%; margin: 24px 8% 0 auto; text-align: center; }
.chart-timeline-note i { display: block; height: 7px; border: solid var(--sky); border-width: 0 1px 1px; }
.chart-timeline-note b { display: inline-block; margin-top: 6px; color: var(--primary); font-size: 12px; }
.chart-index-panels { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.chart-index-panels > div { padding: 20px 20px 16px; border-radius: 10px; background: var(--chrome); }
.chart-index-panels > div > b { color: var(--primary-deep); font-size: 12px; }
.chart-columns { height: 210px; display: flex; align-items: end; justify-content: center; gap: 28px; padding-top: 25px; border-bottom: 1px solid var(--hairline); }
.chart-columns span { height: 100%; flex: 0 1 72px; display: grid; grid-template-rows: 1fr auto auto; align-items: end; justify-items: center; gap: 7px; }
.chart-columns i { width: 48px; height: var(--bar); min-height: 3px; border-radius: 4px 4px 0 0; background: var(--primary); }
.chart-columns span + span i { background: var(--sky); }
.chart-columns strong { font-size: 14px; font-variant-numeric: tabular-nums; }
.chart-columns small { color: var(--ink-meta); font-size: 10px; }
.article-chart-split { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.article-chart-split > div + div { padding-left: 28px; border-left: 1px solid var(--line); }
.article-chart-split > small { grid-column: 1 / -1; }
.chart-subcaption { display: grid; gap: 5px; margin-bottom: 28px; }
.chart-subcaption strong { font-size: 16px; }
.chart-subcaption span { color: var(--ink-meta); font-size: 12px; line-height: 1.5; }
.chart-before-after { display: grid; grid-template-columns: 1fr auto 1fr; gap: 12px; align-items: end; min-height: 175px; }
.chart-before-after > span { height: 145px; display: grid; grid-template-rows: auto auto 1fr; gap: 5px; align-items: end; justify-items: center; }
.chart-before-after small { color: var(--ink-meta); font-size: 9px; text-align: center; }
.chart-before-after b { font-size: 14px; }
.chart-before-after i { width: 48px; height: var(--bar); border-radius: 4px 4px 0 0; background: var(--primary); }
.chart-before-after > em { align-self: center; padding: 5px 7px; border-radius: 6px; background: var(--band-blue); color: var(--primary); font-size: 10px; font-style: normal; font-weight: 700; }
.chart-affordability { display: grid; gap: 15px; }
.chart-affordability span { display: grid; grid-template-columns: 35px 58px 1fr 54px; gap: 8px; align-items: center; }
.chart-affordability small { color: var(--ink-meta); font-size: 10px; }
.chart-affordability b { font-size: 12px; font-variant-numeric: tabular-nums; }
.chart-affordability i { width: var(--bar); min-width: 3px; height: 13px; border-radius: 3px; background: var(--primary); }
.chart-affordability em { color: var(--ink-meta); font-size: 10px; font-style: normal; text-align: right; }
.article-chart-pie { display: grid; grid-template-columns: 210px 1fr; gap: 35px; align-items: center; }
.article-chart-pie figcaption { margin: 0; }
.chart-donut { width: 200px; height: 200px; position: relative; display: grid; place-items: center; }
.chart-donut > i { position: absolute; inset: 0; border-radius: 50%; background: conic-gradient(var(--primary-deep) 0 69.4%, var(--sky) 69.4% 87.9%, #8c73c7 87.9% 93.7%, #c5d0dc 93.7% 100%); }
.chart-donut::after { content: ""; position: absolute; inset: 45px; border-radius: 50%; background: var(--canvas); }
.chart-donut > span { z-index: 1; display: grid; justify-items: center; }
.chart-donut strong { font-size: 22px; }
.chart-donut small { color: var(--ink-meta); font-size: 10px; }
.article-chart-pie ul { display: grid; gap: 9px; margin: 14px 0 0; padding: 0; list-style: none; }
.article-chart-pie li { display: grid; grid-template-columns: 9px 1fr auto; gap: 8px; align-items: center; color: var(--ink-list); font-size: 11px; }
.article-chart-pie li > i { width: 9px; height: 9px; border-radius: 2px; background: var(--primary-deep); }
.article-chart-pie .legend-second > i { background: var(--sky); }
.article-chart-pie .legend-market > i { background: #8c73c7; }
.article-chart-pie .legend-empty > i { background: #c5d0dc; }
.article-chart-pie li b { font-variant-numeric: tabular-nums; }
.chart-share-al > div { grid-template-columns: 126px 1fr 30px; }
.chart-stacked { display: grid; gap: 20px; }
.chart-stacked > div { display: grid; gap: 8px; }
.chart-stacked > div > span { color: var(--ink-list); font-size: 11px; font-weight: 600; }
.chart-stacked > div > i { min-height: 34px; display: flex; overflow: hidden; border-radius: 6px; background: var(--chrome); }
.chart-stacked b { width: var(--bar); min-width: 34px; padding: 0 8px; display: flex; align-items: center; justify-content: center; color: white; font-size: 9px; font-style: normal; text-align: center; }
.chart-stacked .stack-small { background: var(--primary-deep); }
.chart-stacked .stack-mid { background: #4f8fe9; }
.chart-stacked .stack-rest { background: #86bff1; color: var(--navy); }
.article-stat-grid-public strong { font-size: 23px; }
.article-evidence-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 34px; }
.article-evidence-grid > div { padding: 23px; border: 1px solid var(--line); border-radius: 12px; }
.article-evidence-grid > div:first-child { background: var(--band-blue); border-color: rgba(0, 87, 210, .18); }
.article-evidence-grid span { color: var(--primary-deep); font-size: 12px; font-weight: 700; }
.article-evidence-grid ul { display: grid; gap: 9px; margin: 14px 0 0; padding-left: 18px; color: var(--ink-list); font-size: 12px; line-height: 1.5; }
.article-caveat { margin: 32px 0 0; padding: 22px 24px; border-left: 3px solid var(--primary); background: var(--chrome); }
.article-caveat strong { display: block; margin-bottom: 6px; color: var(--primary-deep); font-size: 13px; }
.article-caveat p { margin: 0; font-size: 14px; line-height: 1.65; }
.law-status { display: grid; grid-template-columns: repeat(5, 1fr); margin: 34px 0; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.law-status > div { min-height: 126px; padding: 18px 14px; display: grid; align-content: start; gap: 7px; background: var(--canvas); border-right: 1px solid var(--line); }
.law-status > div:last-child { border-right: 0; }
.law-status i { width: 27px; height: 27px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--ink-meta); font-size: 11px; font-style: normal; font-weight: 700; }
.law-status b { margin-top: 5px; font-size: 12px; }
.law-status span { color: var(--ink-meta); font-size: 11px; line-height: 1.4; }
.law-status .is-complete { background: var(--band-blue); }
.law-status .is-complete i { border-color: var(--primary); background: var(--primary); color: white; }
.law-status .is-current { box-shadow: inset 0 3px 0 var(--primary); }
.law-status .is-current i { border-color: var(--primary); color: var(--primary); }
.law-change-list { margin: 34px 0; border-top: 1px solid var(--line); }
.law-change-list article { display: grid; grid-template-columns: 145px minmax(0, 1fr) minmax(0, 1fr); gap: 24px; padding: 23px 0; border-bottom: 1px solid var(--line); }
.law-change-list header { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.law-change-list header span { font-size: 14px; font-weight: 700; line-height: 1.35; }
.law-change-list header b { padding: 4px 7px; border-radius: 5px; background: var(--chrome); color: var(--ink-meta); font-size: 9px; text-transform: uppercase; letter-spacing: .06em; }
.law-change-list small { display: block; margin-bottom: 8px; color: var(--primary); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; }
.law-change-list p { margin: 0; color: var(--ink-list); font-size: 13px; line-height: 1.6; }
.article-source-note { padding: 16px 18px; border-radius: 8px; background: var(--chrome); font-size: 13px !important; line-height: 1.65 !important; }
.law-vote-board { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 32px 0 14px; }
.law-vote-board > article { min-width: 0; padding: 18px; border: 1px solid var(--line); border-radius: 12px; background: var(--canvas); }
.law-vote-board > article.is-favor { box-shadow: inset 0 3px 0 #318257; }
.law-vote-board > article.is-abstention { box-shadow: inset 0 3px 0 #c38c28; }
.law-vote-board > article.is-against { box-shadow: inset 0 3px 0 #c9684a; }
.law-vote-board header { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 16px; }
.law-vote-board header span { font-size: 13px; font-weight: 700; }
.law-vote-board header b { color: var(--ink-meta); font-size: 10px; font-weight: 500; }
.law-vote-board article > div { display: flex; flex-wrap: wrap; gap: 7px; }
.law-party-chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 8px 4px 4px; border: 1px solid var(--line); border-radius: 999px; background: var(--chrome); font-size: 11px; }
.law-party-chip .result-avatar { width: 24px; height: 24px; }
.law-vote-result { padding: 21px 23px; border-radius: 12px; background: var(--band-blue); }
.law-vote-result > span { display: block; color: var(--primary); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; }
.law-vote-result > strong { display: block; margin: 5px 0 8px; font-size: 19px; }
.law-vote-result p { margin: 0; font-size: 13px; line-height: 1.6; }
.law-impact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 32px 0; }
.law-impact-grid article { padding: 24px; border: 1px solid var(--line); border-radius: 12px; }
.law-impact-grid article > span { color: var(--ink-meta); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; }
.law-impact-grid h3 { margin: 10px 0 16px; font-size: 18px; line-height: 1.35; }
.law-impact-grid ul { display: grid; gap: 10px; margin: 0; padding-left: 18px; color: var(--ink-list); font-size: 13px; line-height: 1.55; }
.law-impact-grid .is-benefit { background: color-mix(in srgb, var(--canvas) 82%, #d9f0e3); }
.law-impact-grid .is-risk { background: color-mix(in srgb, var(--canvas) 84%, #f6ddd4); }
.buyer-definition-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 32px 0; }
.buyer-definition-grid article { padding: 22px; border: 1px solid var(--line); border-radius: 12px; background: var(--canvas); }
.buyer-definition-grid span { color: var(--primary); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; }
.buyer-definition-grid h3 { margin: 9px 0 12px; font-size: 17px; }
.buyer-definition-grid p { margin: 0; color: var(--ink-list); font-size: 12px; line-height: 1.6; }
.buyer-donut-chart { display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 35px; align-items: center; }
.buyer-donut-chart figcaption { margin: 0; }
.buyer-donut { width: 200px; height: 200px; position: relative; display: grid; place-items: center; }
.buyer-donut > i { position: absolute; inset: 0; border-radius: 50%; background: conic-gradient(var(--primary) 0 calc(var(--share) * 1%), var(--chrome) calc(var(--share) * 1%) 100%); }
.buyer-donut::after { content: ""; position: absolute; inset: 43px; border-radius: 50%; background: var(--canvas); }
.buyer-donut > span { z-index: 1; max-width: 94px; display: grid; justify-items: center; text-align: center; }
.buyer-donut strong { color: var(--primary-deep); font-size: 29px; letter-spacing: -.04em; }
.buyer-donut small { color: var(--ink-meta); font-size: 9px; line-height: 1.3; }
.buyer-donut-chart ul { display: grid; gap: 10px; margin: 18px 0 0; padding: 0; list-style: none; }
.buyer-donut-chart li { display: grid; grid-template-columns: 10px 1fr auto; gap: 9px; align-items: center; color: var(--ink-list); font-size: 12px; }
.buyer-donut-chart li > i { width: 10px; height: 10px; border-radius: 3px; background: var(--primary); }
.buyer-donut-chart li.is-rest > i { background: var(--chrome); border: 1px solid var(--line); }
.buyer-stat-grid { grid-template-columns: repeat(3, 1fr); }
.buyer-dual-bars { display: grid; gap: 22px; }
.buyer-dual-bars > div { display: grid; grid-template-columns: 105px minmax(0, 1fr); gap: 15px; align-items: start; }
.buyer-dual-bars > div > span { padding-top: 8px; color: rgba(255,255,255,.7); font-size: 11px; }
.buyer-dual-bars i { display: grid; gap: 7px; font-style: normal; }
.buyer-dual-bars b { width: var(--bar); min-width: 102px; padding: 7px 10px; border-radius: 4px; background: var(--sky); color: var(--navy); font-size: 10px; font-weight: 700; white-space: nowrap; }
.buyer-dual-bars b.is-value { background: #8c73c7; color: white; }
.buyer-price-panels { margin: 34px 0; }
.buyer-price-panels .article-chart { margin: 0; }
.buyer-price-panels .chart-before-after { min-height: 160px; }
.buyer-premium-chart .chart-share > div { grid-template-columns: 125px 1fr 48px; }
.buyer-timeline { display: grid; grid-template-columns: repeat(3, 1fr); margin: 32px 0; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.buyer-timeline > div { min-height: 165px; padding: 23px; border-right: 1px solid var(--line); background: var(--canvas); }
.buyer-timeline > div:last-child { border-right: 0; }
.buyer-timeline i { display: inline-grid; min-width: 48px; height: 29px; padding: 0 8px; place-items: center; border-radius: 999px; background: var(--band-blue); color: var(--primary); font-size: 10px; font-style: normal; font-weight: 700; }
.buyer-timeline b { display: block; margin: 16px 0 8px; font-size: 14px; }
.buyer-timeline span { display: block; color: var(--ink-meta); font-size: 11px; line-height: 1.5; }
.buyer-timeline .is-cut { box-shadow: inset 0 3px 0 #c9684a; }
.buyer-timeline .is-cut i { background: color-mix(in srgb, var(--canvas) 72%, #f2b29f); color: #9b432b; }
.buyer-final-question { margin-top: 34px !important; padding: 25px; border-radius: 12px; background: var(--green-deep); color: white !important; font-size: 19px !important; line-height: 1.55 !important; }
.article-stat-grid { display: grid; grid-template-columns: repeat(3, 1fr); margin: 34px 0; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.article-stat-grid > div { min-height: 135px; padding: 24px 18px; display: flex; flex-direction: column; justify-content: space-between; }
.article-stat-grid > div + div { border-left: 1px solid var(--line); }
.article-stat-grid strong { color: var(--primary-deep); font-size: 27px; letter-spacing: -.035em; font-variant-numeric: tabular-nums; }
.article-stat-grid span { color: var(--ink-meta); font-size: 12px; line-height: 1.45; }
.article-factor-grid { display: grid; grid-template-columns: 1fr 1fr; margin-top: 32px; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.article-factor-grid article { padding: 25px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.article-factor-grid h3 { margin: 0 0 12px; font-size: 17px; }
.article-factor-grid p { margin: 0; color: var(--ink-list); font-size: 14px; line-height: 1.65; }
.article-sources ol { margin: 30px 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.article-sources li { border-bottom: 1px solid var(--line); scroll-margin-top: 100px; }
.article-sources li a { display: grid; gap: 5px; padding: 16px 0; }
.article-sources li a:hover strong { color: var(--primary); }
.article-sources li strong { font-size: 14px; transition: color .2s; }
.article-sources li span { color: var(--ink-meta); font-size: 12px; }

@media (max-width: 820px) {
  .article-card { grid-template-columns: 1fr; }
  .article-card-visual { min-height: 210px; }
  .article-layout { grid-template-columns: 1fr; gap: 35px; }
  .article-aside { position: static; }
  .article-aside nav { grid-template-columns: 1fr 1fr; gap: 0 18px; }
  .article-chart-split { grid-template-columns: 1fr; }
  .article-chart-split > div + div { padding: 26px 0 0; border-top: 1px solid var(--line); border-left: 0; }
  .article-chart-split > small { grid-column: auto; }
  .law-change-list article { grid-template-columns: 130px 1fr 1fr; gap: 18px; }
  .buyer-definition-grid { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .article-card-copy { padding: 24px; }
  .article-card-copy > div { display: grid; }
  .article-hero { padding-top: 55px; padding-bottom: 45px; }
  .article-hero h1 { font-size: 46px; }
  .article-hero > p { font-size: 17px; }
  .article-byline { display: grid; }
  .article-byline span + span::before { display: none; }
  .article-aside nav { grid-template-columns: 1fr; }
  .article-summary { padding: 24px !important; }
  .article-stat-grid, .article-factor-grid, .article-evidence-grid, .chart-index-panels { grid-template-columns: 1fr; }
  .article-stat-grid > div + div { border-left: 0; border-top: 1px solid var(--line); }
  .article-comparison { padding: 20px; }
  .article-comparison > div { grid-template-columns: 42px 70px 1fr; gap: 8px; }
  .article-chart { padding: 22px 18px; }
  .article-chart-pie { grid-template-columns: 1fr; justify-items: center; }
  .article-chart-pie figcaption { width: 100%; }
  .chart-periods { grid-template-columns: 1fr; }
  .chart-bars-horizontal > div { grid-template-columns: 98px minmax(0, 1fr) 52px; gap: 8px; }
  .chart-bars-horizontal span { font-size: 9px; }
  .chart-bars-horizontal strong { font-size: 10px; }
  .chart-share > div, .chart-share-al > div { grid-template-columns: 105px 1fr 34px; gap: 8px; }
  .chart-timeline { grid-template-columns: 1fr 1fr; gap: 22px 8px; }
  .chart-timeline::before { display: none; }
  .chart-timeline-note { width: 100%; margin: 18px 0 0; }
  .chart-affordability span { grid-template-columns: 31px 55px 1fr 48px; }
  .chart-stacked b { padding: 0 4px; font-size: 8px; }
  .article-body p { font-size: 16px; }
  .law-status, .law-vote-board, .law-impact-grid { grid-template-columns: 1fr; }
  .law-status > div { min-height: auto; grid-template-columns: 30px 72px 1fr; align-items: center; border-right: 0; border-bottom: 1px solid var(--line); }
  .law-status > div:last-child { border-bottom: 0; }
  .law-status b { margin-top: 0; }
  .law-change-list article { grid-template-columns: 1fr; gap: 16px; }
  .law-change-list article > div { padding-left: 14px; border-left: 2px solid var(--line); }
  .article-card-buyers { grid-template-columns: 1fr; }
  .buyer-donut-chart, .buyer-timeline { grid-template-columns: 1fr; }
  .buyer-donut-chart { justify-items: center; }
  .buyer-donut-chart figcaption { width: 100%; }
  .buyer-timeline > div { min-height: auto; border-right: 0; border-bottom: 1px solid var(--line); }
  .buyer-timeline > div:last-child { border-bottom: 0; }
  .buyer-dual-bars > div { grid-template-columns: 1fr; gap: 7px; }
  .buyer-dual-bars > div > span { padding-top: 0; }
}

/* Aplicações históricas: a mesma linguagem editorial dos conceitos, com casos
   compactos e uma leitura detalhada sem atribuições causais automáticas. */
.concept-registry-note { margin-bottom: 42px; }
.historical-applications { padding: 8px 0 96px; }
.historical-section-head { padding-top: 50px; display: grid; grid-template-columns: 1.15fr .85fr; gap: 72px; align-items: end; border-top: 1px solid var(--line); }
.historical-section-head > div > span,
.historical-dialog-section > span { color: var(--primary); font-size: 12px; font-weight: 750; }
.historical-section-head h2 { max-width: 700px; margin: 10px 0 0; font-size: clamp(30px, 3.2vw, 44px); line-height: 1.06; letter-spacing: -.025em; }
.historical-section-head > p { margin: 0; color: var(--ink-meta); font-size: 14px; line-height: 1.7; }
.historical-method-banner { margin-top: 30px; padding: 18px 20px; display: grid; grid-template-columns: 1fr auto; gap: 28px; align-items: center; border: 1px solid rgba(0, 87, 210, .14); border-radius: 12px; background: var(--band-blue); }
.historical-method-banner div { display: grid; grid-template-columns: auto 1fr; gap: 16px; align-items: baseline; }
.historical-method-banner span { color: var(--primary); font-size: 12px; font-weight: 750; white-space: nowrap; }
.historical-method-banner p { margin: 0; color: var(--ink-body); font-size: 13px; line-height: 1.55; }
.historical-method-banner a { color: var(--primary); font-size: 12px; font-weight: 700; white-space: nowrap; }
.historical-case-grid { margin-top: 16px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.historical-case-card { min-width: 0; min-height: 390px; padding: 24px; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 12px; background: var(--canvas); }
.historical-case-card-top { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.historical-flag { font-size: 26px; line-height: 1; }
.historical-case-type,
.historical-evidence-status { display: inline-flex; align-items: center; min-height: 26px; padding: 0 9px; border: 1px solid var(--line); border-radius: 999px; color: var(--ink-meta); background: var(--chrome); font-size: 10px; font-weight: 750; }
.historical-case-card h3 { margin: 28px 0 7px; font-size: 23px; line-height: 1.15; letter-spacing: -.015em; }
.historical-case-meta { margin: 0; color: var(--primary); font-size: 12px; font-weight: 700; }
.historical-case-summary { margin: 17px 0 20px; color: var(--ink-list); font-size: 13px; line-height: 1.62; }
.historical-preview-outcomes { margin: auto 0 20px; border-top: 1px solid var(--line); }
.historical-preview-outcomes div { padding: 11px 0; display: grid; grid-template-columns: 1fr auto; gap: 12px; align-items: center; border-bottom: 1px solid var(--line); }
.historical-preview-outcomes dt { color: var(--ink-meta); font-size: 11px; line-height: 1.35; }
.historical-preview-outcomes dd { margin: 0; color: var(--ink-heading); font-size: 12px; font-weight: 750; text-align: right; }
.historical-preview-pending { margin: auto 0 20px; padding: 13px 14px; border-radius: 8px; background: var(--chrome); color: var(--ink-meta); font-size: 12px; line-height: 1.5; }
.historical-case-card footer { padding-top: 16px; display: flex; justify-content: space-between; align-items: center; gap: 12px; border-top: 1px solid var(--line); }
.historical-case-card footer button { padding: 0; border: 0; background: none; color: var(--primary); font: inherit; font-size: 12px; font-weight: 750; cursor: pointer; text-align: right; }
.historical-case-card footer button:hover { text-decoration: underline; text-underline-offset: 3px; }
.historical-empty { margin-top: 16px; padding: 30px; border: 1px solid var(--line); border-radius: 12px; background: var(--chrome); }
.historical-empty > div { max-width: 760px; }
.historical-empty span { color: var(--primary); font-size: 11px; font-weight: 750; }
.historical-empty h3 { margin: 8px 0 10px; font-size: 23px; }
.historical-empty p { margin: 0; color: var(--ink-list); font-size: 14px; line-height: 1.65; }
.historical-empty ul { margin: 17px 0 0; padding-left: 20px; color: var(--ink-list); font-size: 13px; line-height: 1.65; }

.historical-case-dialog { width: min(1040px, calc(100% - 32px)); max-width: none; max-height: calc(100dvh - 32px); margin: auto; padding: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: var(--canvas); color: var(--ink); }
.historical-case-dialog::backdrop { background: rgba(2, 15, 35, .56); backdrop-filter: blur(3px); }
.historical-dialog-frame { position: relative; max-height: calc(100dvh - 34px); overflow-y: auto; overscroll-behavior: contain; }
.historical-dialog-close { position: sticky; z-index: 2; top: 14px; float: right; width: 38px; height: 38px; margin: 14px 14px -52px 0; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: var(--canvas); color: var(--ink-heading); font-size: 24px; line-height: 1; cursor: pointer; }
.historical-dialog-close:hover { color: var(--primary); border-color: var(--primary); }
.historical-dialog-hero { padding: 54px 62px 44px; border-bottom: 1px solid var(--line); background: var(--band-blue); }
.historical-dialog-meta { display: flex; align-items: center; gap: 9px; }
.historical-dialog-meta > span:not(.historical-flag) { min-height: 26px; padding: 0 10px; display: inline-flex; align-items: center; border: 1px solid rgba(0, 87, 210, .18); border-radius: 999px; background: var(--canvas); color: var(--primary); font-size: 10px; font-weight: 750; }
.historical-dialog-hero h2 { max-width: 760px; margin: 22px 0 8px; font-size: clamp(36px, 5vw, 60px); line-height: 1; letter-spacing: -.035em; }
.historical-dialog-hero > p { margin: 0; color: var(--ink-list); font-size: 14px; font-weight: 650; }
.historical-dialog-body { padding: 0 62px 46px; }
.historical-dialog-section { padding: 42px 0; border-bottom: 1px solid var(--line); }
.historical-dialog-section > p { max-width: 820px; margin: 12px 0 0; color: var(--ink-body); font-size: 15px; line-height: 1.72; }
.historical-inclusion > p,
.historical-interpretation > p:first-of-type { color: var(--ink-heading); font-size: 18px; line-height: 1.62; }
.historical-inline-sources { margin-top: 14px; display: flex; flex-wrap: wrap; gap: 7px; }
.historical-inline-sources a { max-width: 100%; padding: 7px 9px; display: inline-flex; gap: 5px; border: 1px solid var(--line); border-radius: 7px; color: var(--ink-meta); background: var(--canvas); font-size: 10px; line-height: 1.35; overflow-wrap: anywhere; }
.historical-inline-sources a:hover { color: var(--primary); border-color: var(--primary); }
.historical-inline-sources a span { color: var(--primary); font-weight: 750; }
.historical-policy-list,
.historical-factor-list { margin: 18px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.historical-policy-list > li,
.historical-factor-list > li { padding: 15px 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 20px; align-items: start; border-bottom: 1px solid var(--line); color: var(--ink-heading); font-size: 14px; font-weight: 650; }
.historical-policy-list small { margin-top: 5px; display: block; color: var(--ink-meta); font-size: 12px; font-weight: 400; line-height: 1.55; }
.historical-policy-list .historical-inline-sources,
.historical-factor-list .historical-inline-sources { margin-top: 0; justify-content: end; }
.historical-outcome-grid { margin-top: 18px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.historical-outcome { min-width: 0; padding: 20px; border: 1px solid var(--line); border-radius: 10px; background: var(--canvas); }
.historical-outcome-series { grid-column: 1 / -1; }
.historical-outcome header > span { color: var(--primary); font-size: 9px; font-weight: 800; }
.historical-outcome h4 { margin: 7px 0 0; font-size: 16px; line-height: 1.35; }
.historical-outcome > p { margin: 13px 0 0; color: var(--ink-list); font-size: 12px; line-height: 1.6; }
.historical-outcome-value { margin-top: 27px; display: block; color: var(--ink-heading); font-size: clamp(26px, 4vw, 42px); line-height: 1.05; letter-spacing: -.025em; overflow-wrap: anywhere; }
.historical-outcome-value small { color: var(--ink-meta); font-size: 13px; font-weight: 650; letter-spacing: 0; }
.historical-line-chart { margin: 18px 0 0; }
.historical-line-chart svg { width: 100%; height: auto; display: block; overflow: visible; }
.historical-line-chart polyline { fill: none; stroke: var(--primary); stroke-width: 3; stroke-linejoin: round; stroke-linecap: round; }
.historical-chart-grid line { stroke: var(--line); stroke-width: 1; }
.historical-chart-grid text,
.historical-chart-points text { fill: var(--ink-meta); font: 10px var(--font); }
.historical-chart-points circle { fill: var(--canvas); stroke: var(--primary); stroke-width: 3; }
.historical-line-chart figcaption { margin-top: 8px; color: var(--ink-meta); font-size: 11px; line-height: 1.5; }
.historical-before-after { margin-top: 20px; display: grid; gap: 14px; }
.historical-before-after > div { display: grid; grid-template-columns: minmax(115px, .85fr) minmax(80px, 1.4fr) auto; gap: 12px; align-items: center; }
.historical-before-after span { color: var(--ink-meta); font-size: 11px; line-height: 1.3; }
.historical-before-after > div > div { height: 7px; overflow: hidden; border-radius: 99px; background: var(--band); }
.historical-before-after i { height: 100%; display: block; border-radius: inherit; background: var(--primary); }
.historical-before-after b { min-width: 42px; color: var(--ink-heading); font-size: 12px; text-align: right; }
.historical-causal-card { margin-top: 17px; padding: 20px; border: 1px solid var(--line); border-left: 4px solid var(--primary); border-radius: 10px; background: var(--chrome); }
.historical-causal-card > div:first-child { display: flex; align-items: center; gap: 8px; }
.historical-causal-card b { font-size: 18px; }
.historical-causal-card p { margin: 12px 0 7px; color: var(--ink-body); font-size: 14px; line-height: 1.65; }
.historical-causal-card > small { color: var(--ink-meta); font-size: 11px; line-height: 1.55; }
.historical-causal-help { width: 20px; height: 20px; display: inline-grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--primary); background: var(--canvas); font-size: 11px; font-weight: 800; cursor: help; }
.historical-does-not-show { margin-top: 42px; padding: 25px; border: 1px solid var(--line); border-radius: 10px; background: var(--band-lavender); }
.historical-does-not-show > p { color: var(--ink-heading); }
.historical-review-note { margin-top: 16px !important; padding: 16px; border-radius: 8px; background: var(--chrome); color: var(--ink-list) !important; font-size: 13px !important; }
.historical-source-list { margin-top: 18px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.historical-source-list > a { min-width: 0; padding: 17px; display: grid; gap: 6px; border: 1px solid var(--line); border-radius: 9px; background: var(--canvas); }
.historical-source-list > a:hover { border-color: var(--primary); }
.historical-source-list > a > span { color: var(--primary); font-size: 10px; font-weight: 750; }
.historical-source-list > a strong { color: var(--ink-heading); font-size: 13px; line-height: 1.4; overflow-wrap: anywhere; }
.historical-source-list > a small { color: var(--ink-meta); font-size: 10px; line-height: 1.5; }
.historical-source-list .source-status { display: inline-flex; align-items: center; gap: 3px; }
.historical-dialog-review { padding-top: 26px; display: grid; grid-template-columns: auto 1fr auto 1fr; gap: 8px 14px; align-items: baseline; }
.historical-dialog-review span { color: var(--ink-meta); font-size: 11px; }
.historical-dialog-review b { color: var(--ink-heading); font-size: 12px; }

@media (max-width: 900px) {
  .historical-case-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .historical-section-head { gap: 32px; }
  .historical-dialog-hero { padding-inline: 40px; }
  .historical-dialog-body { padding-inline: 40px; }
}

@media (max-width: 620px) {
  .historical-applications { padding-bottom: 64px; }
  .historical-section-head { padding-top: 36px; grid-template-columns: 1fr; gap: 16px; }
  .historical-method-banner,
  .historical-method-banner div { grid-template-columns: 1fr; gap: 9px; }
  .historical-case-grid { grid-template-columns: 1fr; }
  .historical-case-card { min-height: 0; padding: 20px; }
  .historical-case-card h3 { margin-top: 22px; }
  .historical-case-card footer { align-items: flex-end; }
  .historical-case-dialog { width: calc(100% - 12px); max-height: calc(100dvh - 12px); border-radius: 10px; }
  .historical-dialog-frame { max-height: calc(100dvh - 14px); }
  .historical-dialog-close { top: 10px; margin: 10px 10px -48px 0; }
  .historical-dialog-hero { padding: 54px 18px 31px; }
  .historical-dialog-meta { padding-right: 44px; flex-wrap: wrap; }
  .historical-dialog-hero h2 { margin-top: 19px; font-size: 39px; }
  .historical-dialog-body { padding: 0 18px 30px; }
  .historical-dialog-section { padding: 32px 0; }
  .historical-inclusion > p,
  .historical-interpretation > p:first-of-type { font-size: 16px; }
  .historical-policy-list > li,
  .historical-factor-list > li { grid-template-columns: 1fr; gap: 8px; }
  .historical-policy-list .historical-inline-sources,
  .historical-factor-list .historical-inline-sources { justify-content: start; }
  .historical-outcome-grid,
  .historical-source-list { grid-template-columns: 1fr; }
  .historical-outcome-series { grid-column: auto; }
  .historical-outcome { padding: 17px; }
  .historical-line-chart svg { width: 100%; }
  .historical-before-after > div { grid-template-columns: 95px minmax(55px, 1fr) auto; gap: 8px; }
  .historical-does-not-show { margin-top: 30px; padding: 20px; }
  .historical-dialog-review { grid-template-columns: 1fr 1fr; }
}

/* Modo escuro: preserva a hierarquia e as cores semânticas do sistema visual. */
html[data-theme="dark"] .button-secondary,
html[data-theme="dark"] .concept-quote span { background: rgba(255, 255, 255, .045); border-color: var(--line); }
html[data-theme="dark"] .hero-proof .proof-card-main { background: rgba(11, 16, 24, .94); border-color: rgba(111, 170, 255, .24); box-shadow: 0 30px 70px -30px rgba(0, 0, 0, .75); }
html[data-theme="dark"] .hero-proof .evidence-chain button { background: #101925; border-color: var(--line); }
html[data-theme="dark"] .hero-proof .evidence-chain button:hover,
html[data-theme="dark"] .hero-proof .evidence-chain button:focus-visible { background: var(--band-blue); border-color: rgba(111, 170, 255, .52); }
html[data-theme="dark"] .hero-collage-shapes { opacity: .12; mix-blend-mode: screen; -webkit-mask-image: radial-gradient(ellipse 72% 72% at 55% 50%, black 32%, transparent 100%); mask-image: radial-gradient(ellipse 72% 72% at 55% 50%, black 32%, transparent 100%); }
html[data-theme="dark"] .hero-collage-building { opacity: .13; mix-blend-mode: screen; filter: grayscale(1) invert(1); }
html[data-theme="dark"] .hero-float-card, html[data-theme="dark"] .hero-method-pill { background: rgba(11, 16, 24, .94); border-color: rgba(111, 170, 255, .24); }
html[data-theme="dark"] .hero-verified { background: rgba(30, 174, 121, .15); color: #78dfbb; }
html[data-theme="dark"] .hero-fact-rating { background: rgba(219, 156, 37, .16); color: #f3c66d; }
html[data-theme="dark"] .initiative-ticker-author { background: rgba(255, 255, 255, .07); }
html[data-theme="dark"] .coverage-matrix tbody tr:hover td,
html[data-theme="dark"] .coverage-matrix tbody tr:hover th,
html[data-theme="dark"] .constituency-table tbody tr:hover > * { background: var(--chrome); }
html[data-theme="dark"] .search-dialog::backdrop { background: rgba(0, 0, 0, .72); }

html[data-theme="dark"] .party-stack > span,
html[data-theme="dark"] .party-symbol,
html[data-theme="dark"] .table-party-avatar,
html[data-theme="dark"] .entity-avatar,
html[data-theme="dark"] .document-party-avatar,
html[data-theme="dark"] .topic-avatar:not(.topic-avatar-more),
html[data-theme="dark"] .matrix-party-avatar,
html[data-theme="dark"] .topic-owner-avatar,
html[data-theme="dark"] .parliament-group-avatar,
html[data-theme="dark"] .result-avatar,
html[data-theme="dark"] .factcheck-avatar { background: #f8fafc; border-color: rgba(255, 255, 255, .22); color: #123766; }

html[data-theme="dark"] .trust-inner > span,
html[data-theme="dark"] .closing-inner > div:last-child p,
html[data-theme="dark"] .methodology-notice strong,
html[data-theme="dark"] .methodology-notice span,
html[data-theme="dark"] .registry-note p,
html[data-theme="dark"] .concept-registry-note small,
html[data-theme="dark"] .position-actions button,
html[data-theme="dark"] .coalition-positions-head p,
html[data-theme="dark"] .local-corrections ul { color: var(--primary); }

html[data-theme="dark"] .button-primary:hover,
html[data-theme="dark"] .chart-stacked .stack-small,
html[data-theme="dark"] .article-chart-pie li > i { background: #1157bb; }
html[data-theme="dark"] .chart-donut > i { background: conic-gradient(#1157bb 0 69.4%, var(--sky) 69.4% 87.9%, #9d85d5 87.9% 93.7%, #536377 93.7% 100%); }

html[data-theme="dark"] .status-partially_verified,
html[data-theme="dark"] .confidence-medium,
html[data-theme="dark"] .position-card-head b.confidence-medium,
html[data-theme="dark"] .vote-abstention { background: #3b301d; color: #f2ca7d !important; }
html[data-theme="dark"] .form-notice,
html[data-theme="dark"] .confidence-low,
html[data-theme="dark"] .position-card-head b.confidence-low,
html[data-theme="dark"] .vote-against { background: #3d251e; color: #f2a88d !important; }
html[data-theme="dark"] .result-approved,
html[data-theme="dark"] .result-approved.is-unanimous,
html[data-theme="dark"] .rating-correct { background: #173527; border-color: #2c6648; color: #8cddb0; }
html[data-theme="dark"] .rating-correct-with-caveats { background: #29351d; border-color: #516a31; color: #bddd82; }
html[data-theme="dark"] .result-rejected,
html[data-theme="dark"] .rating-incorrect { background: #3d211f; border-color: #743a35; color: #f3a09a; }
html[data-theme="dark"] .rating-imprecise { background: #3b2d19; border-color: #72542a; color: #f2bf70; }
html[data-theme="dark"] .factcheck-checks tr.is-mismatch td:last-child { color: #f2bf70; }
