:root {
    --ink:#142b36;
    --muted:#51656e;
    --accent:#087f76;
    --line:#dce5e4;
    --paper:#f7f9f7;
    --white:#fff;
    --radius:22px;
    color-scheme:light;
}

* {
    box-sizing:border-box;
}

html {
    scroll-behavior:smooth;
    scroll-padding-top:30px;
}

body {
    margin:0;
    font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    color:var(--ink);
    background:var(--paper);
    line-height:1.6;
}

a {
    color:var(--accent);
    text-underline-offset:4px;
}

button {
    font:inherit;
}

.container {
    width:min(1180px,calc(100% - 64px));
    margin-inline:auto;
}

.site-header {
    background:var(--white);
    border-bottom:1px solid var(--line);
}

.header-inner {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    min-height:92px;
}

.brand {
    display:inline-flex;
    align-items:center;
    gap:12px;
    color:var(--ink);
    text-decoration:none;
    font-size:22px;
    font-weight:750;
    letter-spacing:-.6px;
}

.brand-light {
    font-weight:400;
}

.brand-icon {
    display:block;
    width:auto;
    height:36px;
    flex:0 0 auto;
    object-fit:contain;
}

.brand-strong {
    font-weight:750;
}

nav {
    display:flex;
    flex-wrap:wrap;
    gap:8px 26px;
}

nav a,.site-footer .footer-inner>div a {
    display:inline-flex;
    align-items:center;
    min-height:44px;
}

main section>*,.section-heading>*,.method-grid>*,.footer-inner>* {
    min-width:0;
}

h1,h2,h3,p,dd,a {
    overflow-wrap:anywhere;
}

nav a,.site-footer a {
    color:var(--ink);
    text-decoration:none;
    font-size:14px;
}

.header-status {
    font-size:12px;
    color:var(--muted);
    display:flex;
    gap:8px;
    align-items:center;
}

.status-dot {
    width:7px;
    height:7px;
    background:var(--accent);
    border-radius:50%;
}

.hemicycle-section {
    padding-block:18px 46px;
}

.hemicycle-heading {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:16px;
}

.hemicycle-heading>div {
    flex:1 1 520px;
    min-width:0;
}

.hemicycle-heading .eyebrow {
    margin-bottom:10px;
}
.platform-eyebrows { display:flex; flex-wrap:wrap; justify-content:center; align-items:baseline; gap:4px 16px; margin-bottom:10px; }
.hemicycle-heading .platform-eyebrows .eyebrow { margin:0; text-align:center; }
.hemicycle-heading .platform-eyebrows .platform-launch { letter-spacing:.2px; white-space:nowrap; }

.hemicycle-heading h1 {
    font-size:clamp(30px,3.5vw,46px);
    line-height:1.15;
    letter-spacing:-.03em;
    margin:0;
}

.hemicycle-intro {
    max-width:760px;
    font-size:16px;
    color:var(--muted);
    /* margin:16px 0 0; */
    text-align: center;
}

.hemicycle-figure {
    margin:24px 0 0;
    padding:24px clamp(12px,2.5vw,32px) 20px;
    border:1px solid var(--line);
    border-radius:var(--radius);
    background:var(--white);
}

.platform-start { margin:20px 0 0; text-align:center; }
.response-total-number { display:block; margin-bottom:4px; color:var(--accent); font-size:clamp(52px,8vw,88px); font-weight:800; line-height:1; }
.response-total span { display:block; font-size:clamp(14px,1.8vw,18px); line-height:1.4; }
.intent-chart { width:100%; height:clamp(230px,38vw,420px); }
.intent-chart-legend { display:flex; flex-wrap:wrap; justify-content:center; gap:8px 20px; margin:12px 0 0; padding:0; list-style:none; font-size:13px; }
.intent-chart-legend li { display:flex; align-items:center; }
.chart-empty { text-align:center; color:var(--muted); }
.results-table { width:100%; border-collapse:collapse; font-size:14px; }
.results-table caption { text-align:left; font-weight:700; padding-block:16px; }
.results-table th,.results-table td { padding:12px 8px; border-bottom:1px solid var(--line); text-align:right; }
.results-table th:first-child { text-align:left; }
.party-dot { display:inline-block; flex:none; width:12px; height:12px; border-radius:50%; border:1px solid #142b3633; margin-right:8px; }
.participation { grid-template-columns:1fr; }
.trial-voting { min-width:0; }
.vote-form { display:grid; gap:16px; }
.vote-form select { 
    width:100%; max-width:450px; min-width:0; min-height:48px; padding:12px; font:inherit; color:var(--ink); background:var(--white); border:1px solid var(--line); border-radius:10px; }
.vote-form fieldset { min-width:0; padding:0; border:0; margin:0; }
.vote-form legend { font-weight:700; margin-bottom:12px; }
.party-options { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.party-option { 
    position:relative; overflow:hidden; display:flex; flex-direction:column; align-items:center; justify-content:flex-start; gap:10px; min-height:164px; padding:12px 12px 0px 18px; 
    /* border:1px solid var(--line);  */
    border-left:4px solid var(--line); 
    border-radius:12px; cursor:pointer; 
}
.party-option:has(input:checked) { 
    /* border-color:var(--accent); box-shadow:0 0 0 1px var(--accent); background:#f1faf7;  */
    box-shadow: 0 0 8px 3px #c9c7c7;
}
.party-option input,.synthetic-confirmation input { flex:none; width:20px; height:20px; accent-color:var(--accent); }
.party-option input { position:absolute; top:12px; left:12px; z-index:2; }
.party-accent { 
    position:absolute; inset:0 auto 0 0; width:8px; height:100%; pointer-events:none; }
.party-card-content { display:flex; flex-direction:column; align-items:center; gap:8px; width:100%; padding-top:10px; }
.party-option img,.party-option .party-logo,.party-monogram { width:108px; height:84px; object-fit:contain; flex:none; }
.party-option img.party-logo-wide,.party-option .party-logo.party-logo-wide { width:180px; max-width:100%; }
.party-option img.logo-on-dark { background:var(--ink); padding:4px; border-radius:5px; }
.party-monogram { display:grid; place-items:center; font-size:18px; font-weight:700; }
.party-name { 
    flex:1; min-width:0; font-size:14px; line-height:1.4; text-align:center; }
.party-name strong,.party-name>span { display:block; }
.party-name strong { font-size:15px; margin-bottom:4px; }
.other-option { flex-direction:row; align-items:center; justify-content:flex-start; min-height:72px; padding:16px; }
.other-option input { position:static; }
.party-order-note { margin:0 0 12px; }
.synthetic-confirmation { display:flex; align-items:flex-start; gap:12px; font-size:14px; }
.vote-form .button { justify-self:start; }
.withdraw-form { margin-top:18px; }
.withdraw-form button { background:none; border:0; padding:10px 0; font:inherit; cursor:pointer; }
.withdraw-form--prominent { margin: 0 0 12px; text-align: right; }
.withdraw-form--prominent button.button.secondary { padding: 10px 16px; border: 1px solid #aeb5bb; background: #f1f3f4; color: #263238; }
.form-message,.form-error { padding:14px; background:#eaf4ee; border-radius:10px; overflow-wrap:anywhere; }
.form-error { background:#fff1ef; color:#8a2920; }
input:focus-visible,select:focus-visible,button:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }

.results-summary {
    display:grid;
    grid-template-columns:1fr;
    gap:24px;
    margin:20px 0 0;
}

.results-summary>div {
    min-width:0;
    border-bottom:1px solid var(--line);
    padding-block:12px;
}

.results-summary dt {
    font-size:12px;
}

.results-summary dd {
    font-size:17px;
    font-weight:650;
}

.results-overview { margin:32px 0 40px; padding-inline:clamp(12px,2.5vw,32px); }
.results-overview-heading { display:flex; justify-content:center; }
.results-breakdown-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; }
.results-breakdown-actions button { min-height:38px; padding:8px 12px; border:1px solid #c4dcd7; border-radius:9px; background:#edf6f3; color:#205c54; font:inherit; font-size:12px; font-weight:600; line-height:1.4; cursor:pointer; }
.results-breakdown-actions button:hover { background:#dcefe8; }
.results-breakdown-actions button[aria-expanded="true"] { border-color:var(--accent); background:var(--accent); color:#fff; }
.results-breakdown-actions button:disabled { opacity:.6; cursor:default; }
.results-breakdown[hidden] { display:none; }
.results-breakdown-table { max-width:960px; min-width:0; margin:20px auto 0; padding:0 clamp(12px,3vw,32px) 10px; border:1px solid var(--line); border-radius:12px; background:var(--white); }
.results-breakdown .results-table { table-layout:fixed; min-width:0; font-size:13px; line-height:1.45; }
.results-breakdown .results-table caption { padding-block:12px; }
.results-breakdown-scroll { width:100%; max-width:100%; overflow-x:auto; overscroll-behavior-x:contain; }
.results-breakdown-scroll:focus-visible { outline:3px solid var(--accent); outline-offset:4px; }
.results-breakdown .results-table .breakdown-party { text-align:center; }
.results-breakdown .results-table th { overflow-wrap:anywhere; }
.breakdown-percentage { white-space:nowrap; }
.breakdown-response-short { display:none; }
.breakdown-note { margin:12px 0 4px; color:var(--muted); font-size:12px; line-height:1.5; }
.results-breakdown .results-table th,.results-breakdown .results-table td { padding:5px 8px; }
.results-breakdown .results-table thead th { padding-block:9px; background:var(--accent); color:#fff; font-weight:700; border-bottom:2px solid #06675f; }
.results-breakdown .results-table :is(tbody,tfoot) th { font-weight:400; }
.results-breakdown .results-table :is(tbody,tfoot) td { font-weight:700; }
.results-breakdown .results-table tfoot { background:#eaf0ed; }
.results-breakdown .results-table tfoot th,.results-breakdown .results-table tfoot td { padding-block:9px; border-top:2px solid var(--line); border-bottom:0; }
@media(max-width:700px) {
    .results-overview { margin-block:28px 36px; padding-inline:0; }
    .results-breakdown-actions button { min-width:0; min-height:44px; padding:8px; font-size:11px; }
    .results-breakdown-table { padding-inline:6px; }
    .results-breakdown .results-table { font-size:12px; }
    .results-breakdown .results-table th,.results-breakdown .results-table td { padding-inline:2px; }
    .breakdown-response-label { display:none; }
    .breakdown-response-short { display:inline; }
    .breakdown-community-detail { display:none; }
}

.hemicycle-section .hero-actions {
    justify-content:center;
    align-items:center;
    flex-direction:row;
    flex-wrap:wrap;
    margin-block:28px 20px;
}

.hemicycle-section .honesty-note {
    max-width:760px;
    margin:0 auto;
}

.hero-copy h2 span {
    color:var(--accent);
}

.eyebrow {
    font-size:11px;
    font-weight:750;
    letter-spacing:1.8px;
    color:var(--accent);
    margin:0 0 20px;
}

h1 {
    font-size:clamp(40px,4.3vw,61px);
    letter-spacing:-2.8px;
    line-height:1.12;
    margin:0 0 25px;
    font-weight:720;
}

h1 span {
    color:var(--accent);
}

.hero-description {
    font-size:18px;
    line-height:1.65;
    color:var(--muted);
    max-width:530px;
}

.honesty-note {
    max-width:530px;
    font-size:14px;
    color:var(--muted);
    border-left:3px solid #8fbbb4;
    padding-left:16px;
    margin-block:24px;
}

.hero-actions {
    display:flex;
    align-items:center;
    gap:25px;
    margin-block:32px;
}

.button {
    display:inline-flex;
    justify-content:center;
    align-items:center;
    gap:20px;
    min-height:50px;
    padding:12px 20px;
    border-radius:10px;
    font-size:14px;
    font-weight:650;
    text-decoration:none;
    border:0;
}

.primary {
    background:var(--accent);
    color:#fff;
}

.primary:hover {
    background:#066b64;
}

.text-link {
    font-size:13px;
    font-weight:600;
    text-decoration:none;
}

.pill {
    font-size:11px;
    font-weight:650;
    color:var(--accent);
    background:#e5f3ee;
    padding:7px 12px;
    border-radius:20px;
}

.hemicycle {
    display: block;
    width: 100%;
    height: auto;
    margin: 0;
}

.hemicycle-seat {
    fill: #b8cdc6;
}

.hemicycle-total {
    fill: var(--ink);
    font-size: 29px;
    font-weight: 700;
}

.hemicycle-label {
    fill: var(--muted);
    font-size: 12px;
}

.chart-caption {
    text-align:center;
    font-size:13px;
    color:var(--muted);
    max-width:760px;
    margin:16px auto 0;
}

.preview-details {
    background:var(--white);
    border:1px solid var(--line);
    border-radius:15px;
    padding:20px 24px;
    margin-bottom:36px;
}

.preview-details summary {
    font-size:14px;
    font-weight:650;
    cursor:pointer;
}

.overview-details {
    font-size:12px;
    margin:24px 0 0;
}

.overview-details div {
    display:flex;
    justify-content:space-between;
    gap:15px;
    padding:11px 0;
    border-bottom:1px solid #edf1ef;
}

dt {
    color:var(--muted);
}

dd {
    margin:0;
}

.overview-details dd {
    text-align:right;
    font-weight:600;
}

.small-note {
    font-size:11px!important;
    color:var(--muted);
    line-height:1.65;
}

.principles {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:38px;
    border-block:1px solid var(--line);
    padding-block:30px;
}

.principle-number {
    font-size:11px;
    font-weight:700;
    color:var(--accent);
}

.principles h2 {
    font-size:16px;
    margin:6px 0;
}

.principles p {
    font-size:13px;
    color:var(--muted);
    margin:0;
}

.section {
    padding-block:80px;
}

.participation,.privacy {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:clamp(32px,6vw,80px);
    align-items:start;
}

.section h2 {
    font-size:35px;
    line-height:1.2;
    letter-spacing:-1.2px;
    margin:0 0 22px;
}

.section-intro {
    font-size:16px;
    color:var(--muted);
    max-width:480px;
}

.steps-card {
    background:var(--white);
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:30px;
}

.steps {
    list-style:none;
    padding:0;
    margin:0;
}

.steps li {
    display:flex;
    gap:18px;
    margin-bottom:24px;
}

.steps li>span {
    display:grid;
    place-items:center;
    width:29px;
    height:29px;
    flex-shrink:0;
    border:1px solid #b8d4ca;
    border-radius:50%;
    color:var(--accent);
    font-size:12px;
    font-weight:650;
}

.steps h3 {
    font-size:16px;
    margin:1px 0 5px;
}

.steps p {
    font-size:14px;
    color:var(--muted);
    margin:0;
}

.unavailable {
    width:100%;
    background:#eaf0ed;
    color:#536b63;
    cursor:not-allowed;
}

.methodology {
    background:#edf3f0;
    border-block:1px solid var(--line);
}

.section-heading {
    display:flex;
    justify-content:space-between;
    gap:60px;
    align-items:flex-end;
    margin-bottom:36px;
}

.section-heading h2 {
    max-width:550px;
    margin-bottom:0;
}

.section-heading>p {
    max-width:280px;
    font-size:14px;
    color:var(--muted);
}

.method-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:28px;
    margin-bottom:34px;
}

.method-grid article {
    background:#fafffc;
    border:1px solid var(--line);
    border-radius:15px;
    padding:23px;
}

.method-grid h3 {
    font-size:16px;
    margin:0 0 10px;
}

.method-grid p {
    color:var(--muted);
    font-size:13px;
    margin:0;
}

.technical-sheet {
    background:var(--white);
    border:1px solid var(--line);
    border-radius:15px;
    padding:24px;
}

.technical-sheet summary {
    font-size:15px;
    font-weight:650;
    cursor:pointer;
}

.technical-sheet dl {
    margin:20px 0 0;
}

.technical-sheet dl>div {
    display:grid;
    grid-template-columns:230px 1fr;
    gap:28px;
    padding:13px 0;
    border-top:1px solid #edf1ef;
    font-size:12px;
}

.technical-sheet dt {
    font-weight:600;
}

.source-note {
    font-size:11px;
    color:var(--muted);
    margin-top:18px;
}

.privacy-card {
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:28px;
    background:#fff;
}

.privacy-card h3 {
    font-size:17px;
    margin:0 0 16px;
}

.privacy-card ul {
    padding-left:19px;
    font-size:13px;
    color:var(--muted);
}

.privacy-card li {
    margin-bottom:12px;
}

.privacy-card p {
    font-size:12px;
    color:var(--muted);
}

.legal-note {
    border-top:1px solid var(--line);
    padding-block:26px 50px;
}

.legal-note h2 {
    font-size:16px;
    margin:0 0 10px;
}

.legal-note p {
    font-size:12px;
    color:var(--muted);
    max-width:900px;
}

.site-footer {
    background:#eaf0ed;
    border-top:1px solid var(--line);
    padding-block:30px;
}

.footer-inner {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:25px;
}

.site-footer .brand {
    font-size:18px;
    gap:8px;
}

.site-footer .brand-icon {
    height:26px;
}

.site-footer p {
    font-size:11px;
    color:var(--muted);
}

.site-footer .footer-inner>div {
    display:flex;
    gap:20px;
}

.site-footer .footer-inner>div a {
    font-size:11px;
}

.skip-link {
    position:absolute;
    left:20px;
    top:-80px;
    background:#fff;
    padding:12px;
    z-index:10;
}

.skip-link:focus {
    top:12px;
}

:focus-visible {
    outline:3px solid #cd8620;
    outline-offset:4px;
}

@media(max-width:1000px) {
    .container {
        width:calc(100% - 48px);
    }
    .participation,.privacy {
        grid-template-columns:1fr;
        gap:32px;
    }
    .header-status {
        display:none;
    }
    .technical-sheet dl>div {
        grid-template-columns:170px 1fr;
    }
    .footer-inner {
        flex-wrap:wrap;
    }
}

@media(max-width:700px) {
    .container {
        width:calc(100% - 36px);
    }
    .header-inner {
        flex-wrap:wrap;
        justify-content:center;
        gap:12px;
        padding-block:20px;
    }
    .brand {
        font-size:21px;
    }
    nav {
        width:100%;
        justify-content:center;
        gap:4px 20px;
    }
    nav a {
        font-size:12px;
    }
    .hemicycle-section {
        padding-block:10px 34px;
    }
    .hemicycle-heading {
        gap:12px;
    }
    .hemicycle-heading h1 {
        font-size:clamp(28px,6vw,36px);
    }
    .hemicycle-intro {
        font-size:15px;
    }
    .hemicycle-figure {
        padding:16px 10px 14px;
        border-radius:16px;
    }
    .results-summary {
        gap:16px;
    }
    .results-summary dd {
        font-size:15px;
    }
    .hemicycle-section .hero-actions .button {
        width:100%;
    }
    .hemicycle-section .text-link {
        text-align:center;
        min-height:44px;
        display:inline-flex;
        align-items:center;
        justify-content:center;
        gap:8px;
    }
    h1 {
        font-size:43px;
        letter-spacing:-2px;
    }
    .hero-description {
        font-size:16px;
    }
    .hero-actions {
        flex-direction:row;
        align-items:center;
        flex-wrap:wrap;
        gap:18px;
    }
    .principles {
        grid-template-columns:1fr;
        gap:24px;
    }
    .section {
        padding-block:48px;
    }
    .participation,.privacy {
        grid-template-columns:1fr;
        gap:25px;
    }
    .section h2 {
        font-size:30px;
    }
    .steps-card {
        padding:24px;
    }
    .section-heading {
        display:block;
        margin-bottom:24px;
    }
    .section-heading>p {
        max-width:none;
    }
    .method-grid {
        grid-template-columns:1fr;
        gap:14px;
    }
    .technical-sheet {
        padding:20px;
    }
    .technical-sheet dl>div {
        grid-template-columns:1fr;
        gap:5px;
    }
    .preview-details {
        padding:18px;
    }
    .overview-details div {
        flex-direction:column;
        gap:4px;
    }
    .overview-details dd {
        text-align:left;
    }
    .footer-inner {
        flex-direction:column;
        align-items:flex-start;
        gap:12px;
    }
    .site-footer p {
        margin:0;
    }
}

@media(max-width:1000px) { .party-options { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:800px) { .party-options { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:520px) { .party-options { grid-template-columns:1fr; } }

@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto;
    }
}

.construction-page {
    display: grid;
    place-items: center;
    min-height: 100vh;
    min-height: 100svh;
    padding: 32px 18px;
    background: radial-gradient(ellipse at top, #e0efea 0, var(--paper) 65%);
}

.construction-card {
    width: min(760px, 100%);
    padding: 60px 48px 40px;
    text-align: center;
    background: var(--white);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: 0 24px 80px #142b3608;
}

.construction-card .brand {
    margin-bottom: 46px;
}

.construction-card h1 {
    font-size: clamp(31px, 5vw, 51px);
    letter-spacing: -1.8px;
}

.construction-card > p {
    color: var(--muted);
}

.construction-card .eyebrow {
    color: var(--accent);
}

.construction-description {
    max-width: 480px;
    margin: 22px auto 12px;
    font-size: 17px;
}

.construction-values {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px;
    margin: 32px 0 22px;
}

.construction-values span {
    padding: 6px 12px;
    border: 1px solid var(--line);
    border-radius: 20px;
    font-size: 12px;
    color: var(--accent);
}

@media(max-width:700px) {
    .construction-card {
        padding: 40px 20px 28px;
    }

    .construction-card .brand {
        margin-bottom: 32px;
    }

    .construction-card .eyebrow {
        font-size: 9px;
        letter-spacing: 1.2px;
    }
}


.share-strip {
    display:flex; align-items:center; justify-content:center; flex-wrap:wrap;
    gap:10px; margin:24px 0 8px;
}
.share-strip p {
    width:100%; margin:0; text-align:center; color:var(--muted); font-size:14px;
}
.share-link {
    display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px;
    padding:8px 15px; border:1px solid var(--line); border-radius:999px;
    background:var(--white); color:var(--ink); font-size:14px; font-weight:650;
    text-decoration:none;
}
.share-label { min-width:0; line-height:1.3; text-align:left; }
.share-label small { display:block; font-size:11px; line-height:1.25; font-weight:500; }
.share-link:hover { border-color:var(--accent); color:var(--accent); } .share-link img,.share-link svg { display:block; width:32px; height:32px; flex:0 0 32px; object-fit:contain; } .share-link svg { fill:currentColor; }
.footer-links { display:flex; flex-wrap:wrap; gap:10px 20px; }
.legal-page { max-width:900px; padding-block:42px 72px; }
.legal-page h1 { margin-bottom:16px; font-size:clamp(32px,5vw,48px); letter-spacing:-1.5px; }
.legal-page section { padding-block:22px; border-bottom:1px solid var(--line); }
.legal-page h2 { margin:0 0 12px; font-size:clamp(22px,3vw,30px); }
.legal-page p { max-width:760px; color:var(--muted); }
@media(max-width:480px) {
    .share-link { flex:1 1 calc(50% - 10px); max-width:180px; }
}


.party-request-note { margin:18px 0 10px; color:var(--muted); }
.party-request { background:var(--white); border:1px solid var(--line); border-radius:12px; padding:16px 18px; }
.party-request summary { cursor:pointer; font-weight:650; }
.party-request>p { color:var(--muted); font-size:13px; }
.party-request-form { display:grid; gap:10px; }
.party-request-form label { font-size:13px; font-weight:650; }
.party-request-form input,.party-request-form textarea { width:100%; min-height:44px; padding:10px 12px; border:1px solid var(--line); border-radius:8px; font:inherit; }
.party-request-form textarea { resize:vertical; }
.party-request-form .button { justify-self:start; }
.party-request-form [role="status"] { margin:0; }
.share-link { cursor:pointer; font:inherit; }
.share-status { flex-basis:100%; min-height:1.5em; text-align:center; color:var(--accent); font-size:13px; }
.share-link svg { fill:currentColor; }
.share-link svg[stroke] { fill:none; }
.law-explainer { max-width:900px; margin-inline:auto; }
.law-explainer>p { color:var(--muted); font-size:15px; }
.law-steps { display:grid; gap:16px; padding-left:24px; color:var(--ink); }
.law-steps li { padding-left:6px; }
.law-steps strong { color:var(--accent); }
.seat-hemicycle-figure { max-width:980px; margin:28px auto 0; }
.seat-hemicycle { max-width:760px; margin-inline:auto; }
.seat-hemicycle .hemicycle-seat { stroke:#fff; stroke-width:1.25; }
.seat-legend { display:flex; justify-content:center; flex-wrap:wrap; gap:10px 20px; margin:16px auto 0; font-size:13px; }
.seat-legend span { display:inline-flex; align-items:center; gap:7px; }
.seat-legend i { display:inline-block; width:12px; height:12px; border:1px solid #142b3633; border-radius:50%; }
.seat-legend i.seat-unallocated { background:#CBD5D1; }
@media(max-width:700px) { .party-request { padding:14px; } .seat-legend { justify-content:flex-start; } }


.party-request-note { margin:18px 0 10px; color:var(--muted); }
.party-request { background:var(--white); border:1px solid var(--line); border-radius:12px; padding:16px 18px; }
.party-request summary { cursor:pointer; font-weight:650; }
.party-request>p { color:var(--muted); font-size:13px; }
.party-request-form { display:grid; gap:10px; }
.party-request-form label { font-size:13px; font-weight:650; }
.party-request-form input,.party-request-form textarea { width:100%; min-height:44px; padding:10px 12px; border:1px solid var(--line); border-radius:8px; font:inherit; }
.party-request-form textarea { resize:vertical; }
.party-request-form .button { justify-self:start; }
.party-request-form [role="status"] { margin:0; }
.share-link { cursor:pointer; font:inherit; }
.share-status { flex-basis:100%; min-height:1.5em; text-align:center; color:var(--accent); font-size:13px; }
.share-link svg { fill:currentColor; }
.share-link svg[stroke] { fill:none; }
.law-explainer { max-width:900px; margin-inline:auto; }
.law-explainer>p { color:var(--muted); font-size:15px; }
.law-steps { display:grid; gap:16px; padding-left:24px; color:var(--ink); }
.law-steps li { padding-left:6px; }
.law-steps strong { color:var(--accent); }
.seat-hemicycle-figure { max-width:980px; margin:28px auto 0; }
.seat-hemicycle { max-width:760px; margin-inline:auto; }
.seat-hemicycle .hemicycle-seat { stroke:#fff; stroke-width:1.25; }
.seat-legend { display:flex; justify-content:center; flex-wrap:wrap; gap:10px 20px; margin:16px auto 0; font-size:13px; }
.seat-legend span { display:inline-flex; align-items:center; gap:7px; }
.seat-legend i { display:inline-block; width:12px; height:12px; border:1px solid #142b3633; border-radius:50%; }
.seat-legend i.seat-unallocated { background:#CBD5D1; }
@media(max-width:700px) { .party-request { padding:14px; } .seat-legend { justify-content:flex-start; } }


.citizen-identification { margin:0 0 24px; padding:20px; background:var(--white); border:1px solid var(--line); border-radius:12px; }
.citizen-identification h3 { margin:0 0 10px; }
.citizen-identification>.small-note { margin:0 0 16px; }
.identification-methods { display:grid; grid-template-columns:minmax(0,1fr); grid-auto-rows:1fr; gap:12px; min-width:0; border:0; padding:0; margin:0; }
.identification-methods legend { padding:0; margin-bottom:12px; font-size:14px; font-weight:650; }
.identification-method { display:flex; align-items:flex-start; gap:10px; padding:14px; border:1px solid var(--line); border-radius:10px; color:var(--ink); }
.identification-method-current { border:4px solid var(--accent); }
.identification-method-current input { accent-color:var(--accent); }
.identification-method input { flex:none; width:18px; height:18px; margin:3px 0 0; }
.identification-method strong,.identification-method small { display:block; }
.identification-method small { margin-top:5px; font-size:13px; line-height:1.5; color:var(--muted); }
#constituency-help { margin:0; }
@media(max-width:600px) { .citizen-identification { padding:16px; } .identification-methods { grid-template-columns:1fr; } }

.identification-method { align-items:center; gap:12px; }
.identification-icon { flex:none; width:64px; height:52px; object-fit:contain; }
.identification-method>span { min-width:0; }
.identification-method-unavailable { background:#f4f5f5; cursor:not-allowed; }
.identification-method-unavailable .identification-icon { opacity:.55; }
.party-logo-cc { display:block; flex:none; width:86px; height:84px; overflow:hidden; }
.party-option .party-logo-cc img { display:block; width:305.455px; height:84px; max-width:none; object-fit:fill; }
.party-pending { display:block; margin-top:6px; color:var(--muted); font-size:12px; }
.seat-hemicycle { max-width:980px; }

.law-page-link { display:flex; justify-content:center; margin:24px 0 36px; }
.nonparty-options { display:grid; gap:12px; }
.nonparty-options .other-option { width:100%; background:#f1f3f4; border-color:#cbd1d5; }
.nonparty-options .other-option:has(input:checked) { background:#e3e8e6; border-color:var(--accent); }
.law-page-link .button { min-height:50px; }
.electoral-heading h1 { font-size:clamp(28px,5vw,42px); line-height:1.2; }
.recovery-form { max-width:620px; margin:28px 0; }
.recovery-form fieldset { display:grid; gap:12px; padding:20px; border:1px solid var(--line); border-radius:15px; }
.recovery-form legend { font-weight:700; }
.recovery-form input,.recovery-form textarea { width:100%; min-width:0; border:1px solid var(--line); border-radius:8px; padding:12px; font:inherit; }
.recovery-form button:disabled { opacity:.55; cursor:not-allowed; }
@media(max-width:700px) { .law-page-link .button { width:100%; } }
@media(max-width:600px) { .identification-icon { width:48px; height:44px; } }


.participation-intro { text-align:center; font-size:30px; font-weight:300; margin-bottom:0; }
.participation-question { text-align:center; font-size:36px; margin-top:0; }
.results-table-scroll { width:100%; max-width:100%; overflow-x:auto; overscroll-behavior-x:contain; }
.results-table-scroll:focus-visible { outline:3px solid var(--accent); outline-offset:4px; }
.vote-form select { font-size:16px; }
@media(max-width:700px) {
    .container { width:calc(100% - 32px); }
    .header-inner { min-height:0; padding-block:16px 12px; gap:12px; }
    .header-inner nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; width:100%; }
    .header-inner nav a { justify-content:center; min-height:44px; padding:6px 8px; font-size:14px; border-radius:8px; background:var(--paper); text-align:center; }
    .hemicycle-heading .eyebrow { margin-bottom:4px; font-size:10px; line-height:1.4; letter-spacing:.6px; }
    .hemicycle-heading h1 { font-size:clamp(21px,6vw,26px); line-height:1.15; letter-spacing:-.6px; }
    .hemicycle-heading .overview-description { margin-top:6px; font-size:13px; line-height:1.35; }
    .hemicycle-section .platform-start { margin-top:6px; padding:4px 6px; font-size:11px; line-height:1.3; }
    .hemicycle-figure { margin-top:10px; padding:10px 8px 12px; }
    .intent-chart { height:auto; aspect-ratio:2 / 1; }
    .intent-chart-legend { gap:4px 10px; margin-top:6px; font-size:11px; }
    .chart-caption { font-size:13px; line-height:1.55; }
    .results-table { font-size:13px; min-width:350px; }
    .results-table th,.results-table td { padding:10px 8px; }
    .results-table td { white-space:nowrap; }
    .results-table th:first-child { max-width:190px; }
    .results-summary { margin-top:12px; }
    .results-summary>div { padding-block:8px; }
    .participation-intro { font-size:22px; line-height:1.4; margin-top:0; }
    .participation-question { font-size:30px; line-height:1.2; margin-bottom:20px; }
    .steps-card { padding:16px; border-radius:16px; }
    .vote-form { gap:12px; }
    .vote-form select { max-width:none; padding:12px 10px; }
    .vote-form legend { font-size:18px; }
    .small-note { font-size:13px; line-height:1.55; }
    .party-options { grid-template-columns:1fr; gap:10px; }
    .party-option { flex-direction:row; align-items:center; justify-content:flex-start; min-height:86px; padding:12px; border:1px solid var(--line); border-left-width:4px; }
    .party-option input { top:50%; left:12px; transform:translateY(-50%); }
    .party-card-content { flex-direction:row; align-items:center; gap:12px; padding:0 0 0 28px; }
    .party-option img,.party-option .party-logo,.party-monogram { width:68px; height:60px; }
    .party-name { text-align:left; font-size:13px; line-height:1.4; }
    .party-name strong { font-size:16px; margin-bottom:3px; }
    .party-option img.party-logo-wide,.party-option .party-logo.party-logo-wide { width:96px; }
    .party-logo-cc { width:61.1px; height:60px; }
    .party-option .party-logo-cc img { width:218.182px; height:60px; }
    .other-option { min-height:64px; gap:12px; }
    .other-option input { position:static; transform:none; }
    .vote-form .button,.party-request-form .button { width:100%; min-height:50px; justify-self:stretch; margin:16px 0 !important; }
    .party-request { padding:14px; }
    .party-request-form input,.party-request-form textarea { font-size:16px; }
    .citizen-identification { padding:14px; margin-bottom:20px; border-radius:10px; }
    .citizen-identification h3 { font-size:18px; line-height:1.35; }
    .identification-methods { grid-template-columns:1fr; gap:10px; }
    .identification-methods legend { font-size:13px; line-height:1.45; }
    .identification-method { display:grid; grid-template-columns:18px 64px minmax(0,1fr); gap:6px 10px; padding:12px; }
    .identification-method input { grid-column:1; grid-row:1; margin:0; }
    .identification-icon { grid-column:2; grid-row:1; width:64px; height:40px; }
    .identification-method>span { display:contents; }
    .identification-method strong { grid-column:3; grid-row:1; font-size:14px; line-height:1.35; }
    .identification-method small { grid-column:2 / 4; margin:0; font-size:13px; line-height:1.5; }
    .share-strip { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:20px; }
    .share-strip>h2,.share-strip>p,.share-status { grid-column:1 / -1; }
    .site-footer .share-strip>p { padding-inline:0 !important; text-align:justify; hyphens:none; }
    .share-strip .share-link { width:100%; max-width:none; min-height:64px; padding:8px 10px; justify-content:flex-start; font-size:13px; white-space:normal; }
    .share-strip .share-link img,.share-strip .share-link svg { width:28px; height:28px; flex-basis:28px; }
    .section { padding-block:34px; }
    .section h2 { font-size:28px; }
    .law-explainer>p,.law-steps { font-size:14px; line-height:1.65; }
    .law-steps { gap:12px; padding-left:20px; }
    .seat-hemicycle-figure { margin-top:20px; }
    .seat-legend { font-size:12px; gap:8px 14px; line-height:1.4; }
    .footer-inner { gap:16px; }
    .footer-links { gap:4px 18px; }
}
@media(max-width:359px) {
    .container { width:calc(100% - 24px); }
    .steps-card { padding:12px; }
    .citizen-identification { padding:10px; }
    .identification-method { grid-template-columns:18px 52px minmax(0,1fr); gap:6px 8px; padding:10px; }
    .identification-icon { width:52px; }
    .share-strip .share-link { font-size:13px; gap:6px; }
    .party-card-content { gap:10px; }
    .party-option img,.party-option .party-logo,.party-monogram { width:58px; height:54px; }
    .party-option img.party-logo-wide,.party-option .party-logo.party-logo-wide { width:80px; }
    .party-logo-cc { width:55px; height:54px; }
    .party-option .party-logo-cc img { width:196.364px; height:54px; }
}
.account-page { max-width: 900px; padding-top: 30px; padding-bottom: 40px; }
.account-tabs { display: grid; gap: 24px; max-width: 460px; margin: 24px auto; text-align: center; }
.account-access-option { display: grid; gap: 8px; min-width: 0; }
.account-tabs .button { width: 100%; box-sizing: border-box; white-space: normal; text-align: center; }
.account-access-option p { 
    margin: 0; 
    font-size: 14px; 
    /* line-height: 1.5;  */
    text-align: center;
    color: #333;
}
.account-form { max-width: 560px; margin-bottom: 28px; }
.account-form fieldset { border: 0; padding: 0; display: grid; gap: 12px; min-width: 0; }
.account-form input:not([type="checkbox"]):not([type="radio"]), .account-form select { width: 100%; max-width: 100%; box-sizing: border-box; padding: 12px; border: 1px solid #cbd1d5; border-radius: 8px; font: inherit; }
.account-check { display: flex; align-items: flex-start; gap: 10px; margin: 10px 0; }
.account-check input { flex: 0 0 auto; margin-top: 4px; }
.account-check span { min-width: 0; }
.account-privacy { margin: 20px 0; padding: 16px; background: #f1f3f4; border-radius: 8px; overflow-wrap: anywhere; }
.account-token-panel { margin: 32px 0; }
.political-consent { padding: 18px; background: #f1f3f4; border-radius: 10px; margin: 20px 0; }
body.consent-embedded { background:#fcfdfc; }
.consent-links { display:flex; flex-wrap:wrap; gap:6px 10px; }
.consent-links a { min-height:44px; display:inline-flex; align-items:center; }
.consent-dialog { max-width: 520px; width: calc(100% - 40px); box-sizing: border-box; padding: 24px; border: 0; border-radius: 16px; }
.consent-dialog::backdrop { background: rgb(0 0 0 / 55%); }
.dialog-actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
.account-page .vote-party-option,.account-page .vote-other-option { display: flex; align-items: center; gap: 12px; padding: 14px; min-height: 64px; border: 1px solid #cbd1d5; border-radius: 10px; cursor: pointer; overflow-wrap: anywhere; }
.account-page .vote-other-option { width: 100%; background: #f1f3f4; }
.account-page .vote-party-option:has(input:checked),.account-page .vote-other-option:has(input:checked) { border-color: var(--accent); background: #e3e8e6; }
.account-page .vote-option-pending { opacity: .6; cursor: not-allowed; }
.account-page .vote-party-option span,.account-page .vote-other-option span { min-width: 0; }
.account-page .vote-party-name { display: flex; align-items: center; gap: 12px; }
.account-page .vote-party-name > img { width: 64px; height: 48px; flex: none; object-fit: contain; }
.account-page .vote-party-name > span { display: grid; gap: 2px; }
.account-page .vote-party-name small { color: var(--muted); }
.account-form input,.account-form select { font-size: 16px; }

/* Controles de acceso y visibilidad de contraseñas. */
.password-field { position:relative; display:block; width:100%; min-width:0; }
.account-form .password-field input { padding-right: 56px; }
.password-toggle { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); display: inline-flex; justify-content: center; align-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 6px; background: transparent; color: #46515b; cursor: pointer; }
.password-toggle:hover { background: #edf0f2; }
.password-toggle[hidden], .password-toggle[aria-pressed="false"] .password-eye-slash { display: none; }
.password-toggle:disabled { cursor: default; opacity: .5; }

.account-form #account-code { max-width: 240px; font-size: 24px; letter-spacing: .18em; }
.account-code-passwords { display: grid; gap: 12px; }
.account-token-panel[hidden] { display: none; }

.identification-panel { margin-top: 16px; padding-top: 16px; min-width: 0; }
.identification-panel[hidden] { display: none; }
.account-inline.account-page { max-width: none; padding: 0; }
.account-inline .account-tabs { margin: 0 auto 24px; }
.account-inline h2 { margin: 0 0 12px; font-size: 20px; }
.account-inline .account-form { margin: 0 0 12px; }
.account-inline .account-form fieldset { gap: 8px; }
.account-inline .account-form label:not(.account-check) { font-size: 14px; font-weight: 600; }
.account-inline .account-form input:not([type="checkbox"]):not([type="radio"]) { min-height: 46px; padding-block: 10px; }
.account-inline .account-check { margin: 4px 0; font-size: 14px; line-height: 1.45; }
.account-inline .small-note { margin: 4px 0 12px; }
.account-recovery-link { margin: 0; font-size: 14px; line-height: 1.4; }
.account-recovery-link a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: underline; }
.account-session-status { display: grid; gap: 4px; margin-bottom: 12px; padding: 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--paper); overflow-wrap: anywhere; }
.account-session-status span { font-size: 14px; color: var(--muted); }
.account-participation { margin: 12px 0; }
.account-participation summary { cursor: pointer; font-weight: 650; }
.header-account { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; min-width: 0; }
.header-account-status { display:flex; flex-direction:column; gap:2px; padding:6px 9px; border:1px solid #c4dcd7; border-radius:9px; background:#edf6f3; color:#205c54; font-size:12px; font-weight:400; line-height:1.4; text-align:left; text-decoration:none; overflow-wrap:anywhere; }
.header-account-status small { font-size:11px; color:var(--muted); }
.header-account-status:hover { background:#dcefe8; }
.header-account form { margin: 0; }
.header-account .button { min-height: 44px; padding: 8px 12px; gap: 0; }
@media(max-width:700px) {
    .header-account { width: 100%; justify-content: space-between; }
    .header-account-status { flex: 1 1 160px; }
    .account-inline .account-form { max-width: none; }
    .account-inline .account-form > fieldset > .button, .account-inline .account-logout-form .button { width: 100%; box-sizing: border-box; }
}

.account-logout-form { margin: 12px 0 0; }

/* Elección de formación y continuación de la identificación. */
.regional-parties, .party-order-details { margin: 12px 0; }
.regional-parties summary, .party-order-details summary { cursor: pointer; padding: 14px; border: 1px solid var(--line); border-radius: 8px; font-weight: 600; }
.regional-parties .party-options { margin-top: 12px; }
.intention-submit { margin: 24px auto; }
.identification-page { max-width: 900px; }
.mail-delivery-note { padding: 16px; border: 1px solid var(--line); border-radius: 8px; background: #f1f3f4; margin: 0 0 16px; overflow-wrap: anywhere; }
.intention-summary.last-intention { padding: 28px 24px; margin: 0 0 24px; border-radius: 12px; }
.intention-summary .pending-intention-choice { display: grid; grid-template-columns: minmax(0, 1fr); justify-items: center; gap: 12px; margin: 0 0 24px; }
.intention-summary .pending-intention-province { font-size: 16px; color: var(--muted); text-align: center; }
.intention-summary .pending-intention-next-step { margin: 0 auto 20px; max-width: 600px; text-align: center; }
.intention-summary .pending-intention-access { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; max-width: 600px; margin: 0 auto 24px; }
.intention-summary .account-access-option p { text-align: center; }
.intention-summary .pending-intention-change { min-height: 44px; padding: 10px 18px; border: 1px solid #aeb5bb; background: var(--white); color: var(--ink); }
.intention-summary .pending-intention-change:hover { background: #eaf0ed; }
@media(max-width:520px) {
    .intention-summary.last-intention { padding: 24px 16px; }
    .intention-summary .pending-intention-access { grid-template-columns: 1fr; gap: 16px; }
}
@media(max-width:700px) { .intention-submit { width: 100%; box-sizing: border-box; } }

/* Provincia obligatoria y confirmación de la participación. */
.constituency-section { display: grid; gap: 14px; margin: 24px 0; padding: 24px; border: 2px solid #7b858b; border-radius: 12px; background: #f1f3f4; text-align: center; }
.constituency-section h3, .constituency-section p { margin: 0; }
.constituency-section label { font-size: 18px; font-weight: 650; }
.constituency-section select { width: 100%; max-width: 600px; margin-inline: auto; min-height: 52px; font-size: 16px; font-weight:700; box-sizing: border-box; }
.constituency-section p, .participation-availability, .party-order-details p, .citizen-identification > .small-note { font-size: 16px; line-height: 1.6; }
.last-intention-section { margin-top: 24px; }
.last-intention-section:not(:has(> *)) { display:none; }
.last-intention { padding: 24px; border: 1px solid var(--line); border-radius: 12px; background: #f1f3f4; text-align: center; }
.last-intention h2 { font-size: 22px; margin: 0 0 18px; }
.last-intention-choice { display: flex; justify-content: center; align-items: center; gap: 20px; flex-wrap: wrap; margin-bottom: 20px; }
.last-intention-choice img { object-fit: contain; }
.last-intention-choice p { margin: 4px 0; overflow-wrap: anywhere; }
.last-intention-party { font-size: 22px; font-weight: 700; }
.last-intention-choice .last-intention-party { text-align:center; }
.last-intention-choice .last-intention-method { margin-top:10px; font-size:14px; color:var(--muted); text-align:center; }
.account-inline .account-check, .account-inline .small-note { font-size: 16px; }
.advertising-slot { margin-block: 30px; }
.advertising-slot > p { color: var(--muted); text-align: center; }
.header-account { margin-left: auto; }
@media(max-width:520px) { .constituency-section, .last-intention { padding: 18px 14px; } .last-intention .button { width: 100%; box-sizing: border-box; } }
@media(max-width:400px) { .constituency-section { padding-inline:4px; } .constituency-section select { font-size:14px; font-weight:400; } }

.account-inline .account-form label:not(.account-check) { font-size: 16px; }

/* Inscripción electoral, solicitud separada e invitación a compartir. */
.constituency-section .census-origin { display: flex; align-items: center; justify-content: center; gap: 10px; font-size: 16px; font-weight: 400; }
.census-origin input { width: 20px; height: 20px; flex: 0 0 20px; }
.party-order-note { font-size: 13px; line-height: 1.6; color: var(--muted); }
.party-request-page { max-width: 800px; }
.share-invitation { margin-top: 24px; padding-top: 18px; border-top: 1px solid var(--line); }
.share-invitation p { margin: 0 0 14px; }
.share-invitation [role="status"]:empty { display: none; }
.post-response-share { width:min(560px,calc(100% - 32px)); max-height:calc(100vh - 32px); padding:28px; overflow:auto; border:1px solid var(--line); border-radius:var(--radius); color:var(--ink); background:var(--white); box-shadow:0 12px 48px #142b3630; }
.post-response-share[hidden] { display:none; }
.post-response-share::backdrop { background:rgb(20 43 54 / 55%); }
.post-response-share-logo { display:block; width:88px; height:50px; margin:0 auto 18px; object-fit:contain; }
.post-response-share h2 { margin:0 0 16px; text-align:center; font-size:clamp(22px,5vw,28px); line-height:1.3; }
.post-response-share p { margin:0 0 20px; text-align:justify; hyphens:none; font-size:15px; line-height:1.6; }
.post-response-share-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-bottom:16px; }
.post-response-share-actions .button { display:flex; align-items:center; justify-content:center; gap:8px; min-width:0; min-height:46px; padding:10px; font-size:14px; }
.post-response-share-actions img { flex:none; }
.post-response-share-actions [data-native-share] { grid-column:1 / -1; }
.post-response-share>[data-post-share-continue] { width:100%; min-height:44px; font-size:14px; }
.post-response-share .post-response-share-status { color:var(--muted); font-size:13px; }
.post-response-share-status:empty { display:none; }
.share-strip h2 { width: 100%; margin: 0 0 8px; text-align: center; font-size: 24px; }

.coalition-logos { display:inline-grid; grid-template-columns:repeat(2, 1fr); gap:4px; width:108px; height:84px; flex:none; vertical-align:middle; }
.party-option .coalition-logos img, .last-intention-choice .coalition-logos img { width:100%; height:40px; object-fit:contain; }
@media (max-width:600px) {
    .party-option .coalition-logos { width:68px; height:60px; }
    .party-option .coalition-logos img { height:28px; }
}

.account-form input[aria-invalid="true"] { border-color:#9b2226; }
.swal2-popup.account-validation-alert { font-family:inherit; font-size:16px; border-radius:16px; }
.account-validation-alert .swal2-title { font-size:24px; line-height:1.3; }
.account-validation-alert .swal2-html-container { max-height:45vh; overflow-y:auto; text-align:left; font-size:18px; }
.account-error-list { margin:0; padding-left:24px; line-height:1.5; }
.account-error-list li + li { margin-top:16px; }
.account-error-list strong { display:block; }
.account-error-list p { margin:4px 0 0; font-size:16px; }

/* Lectura jurídica: párrafos justificados y con separación visual amplia. */
.article-9-page section[aria-label="Texto del artículo 9"] p,
.article-9-page section[aria-label="Texto del artículo 9"] li {
    text-align: justify;
    text-justify: inter-word;
    hyphens: auto;
    line-height: 1.75;
}
.article-9-page section[aria-label="Texto del artículo 9"] p { margin-block: 0 2em; }
.article-9-page section[aria-label="Texto del artículo 9"] li { margin-block: 0 1.35em; }
.article-9-page section[aria-label="Texto del artículo 9"] p:last-child,
.article-9-page section[aria-label="Texto del artículo 9"] li:last-child { margin-block-end: 0; }


/* El texto corrido de la web se justifica por defecto. */
p { text-align: justify; text-justify: inter-word; hyphens: auto; }
.overview-description { margin: 8px auto 0; color: #535252; font-size: 18px; line-height: 1.6; text-align: center; }
.encryption-highlight { max-width: 850px; margin: 12px auto 0; color: var(--ink); font-size: clamp(18px, 2vw, 24px); line-height: 1.45; text-align: center; }
.encryption-highlight strong { font-weight: 800; }
.encryption-claim { font-size: 1.15em; }
.registration-cta { display:flex; justify-content:center; margin-block:24px; }
.intention-registration .political-consent { font-size: 14px; line-height: 1.6; text-align: justify; }
.intention-registration .political-consent p { margin-block: 0 1em; text-align: justify; text-justify: inter-word; hyphens: auto; }
.intention-registration .political-consent .account-check { font-size: 14px; line-height: 1.55; text-align: justify; }

/* Navegación, filtros de resultados y preferencias de cookies. */
.site-header .header-nav { display:flex; flex-wrap:nowrap; gap:8px; }
.site-header .header-nav>a,.site-header .header-info>summary { display:flex; align-items:center; justify-content:center; min-height:44px; padding:8px 12px; border:1px solid #c4dcd7; border-radius:10px; background:#edf6f3; color:#205c54; font-size:14px; font-weight:600; text-decoration:none; text-align:center; transition:background .18s,box-shadow .18s,transform .18s; }
.site-header .header-nav>a:hover,.site-header .header-info>summary:hover { background:#dcefe8; box-shadow:0 3px 8px #142b3614; transform:translateY(-1px); }
.site-header .header-nav>a[aria-current="page"],.site-header .header-info.is-current>summary { background:#dcefe8; border-color:#5a9c91; }
.site-header .header-nav a:focus-visible,.site-header .header-info>summary:focus-visible,.site-header .header-actions .button:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
.header-info { position:relative; }
.header-info>summary { list-style:none; cursor:pointer; gap:10px; }
.header-info>summary::-webkit-details-marker { display:none; }
.header-info>summary::after { content:""; width:7px; height:7px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg); margin-top:-4px; }
.header-info[open]>summary::after { transform:rotate(225deg); margin-top:4px; }
.header-info-menu { position:absolute; z-index:50; top:calc(100% + 8px); left:0; min-width:244px; padding:6px; border:1px solid var(--line); border-radius:12px; background:var(--white); box-shadow:0 8px 24px #142b3626; }
.site-header .header-info-menu a { display:flex; justify-content:flex-start; min-height:44px; padding:10px 12px; border:0; border-radius:7px; background:transparent; color:var(--ink); font-size:14px; font-weight:500; text-align:left; text-decoration:none; }
.site-header .header-info-menu a:hover,.site-header .header-info-menu a[aria-current="page"] { background:#edf6f3; }
.header-actions { display:flex; flex-shrink:0; align-items:center; justify-content:flex-end; gap:10px; margin-left:auto; }
.site-header .header-inner { flex-wrap:wrap; }
.site-header .header-actions .button { min-height:44px; padding:8px 12px; gap:0; text-align:center; }
.site-header .header-actions .header-account { width:auto; margin:0; justify-content:flex-end; }
.result-filters { display:flex; flex-direction:column; align-items:center; gap:8px; margin:0 0 14px; padding:0; border:0; background:transparent; }
.result-filters label { display:block; min-width:0; }
.result-filter-label { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.result-identification { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:5px; min-width:0; max-width:100%; }
.result-locations { display:flex; justify-content:center; gap:8px; width:min(100%,338px); }
.result-locations label { flex:1 1 150px; }
.result-locations label:first-child { flex-basis:180px; }
.result-identification button,.result-filters select,.result-location-search input { min-width:0; min-height:36px; margin:0; padding:7px 9px; border:1px solid #c4dcd7; border-radius:9px; background:#edf6f3; color:#205c54; font:inherit; font-size:12px; font-weight:600; line-height:1.4; }
.result-identification button { white-space:nowrap; cursor:pointer; font-size:11px; }
.result-identification button[aria-pressed="true"] { background:var(--accent); border-color:var(--accent); color:#fff; box-shadow:inset 0 0 0 1px var(--accent); }
.result-filters select,.result-location-search input { width:100%; text-align:left; }
.result-filters select { cursor:pointer; }
.result-filters select[hidden] { display:none; }
.result-identification button:hover,.result-filters select:hover,.result-location-search input:hover { background:#dcefe8; }
.result-identification button[aria-pressed="true"]:hover { background:#076d65; }
.result-filters :is(select,button,input):focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
.result-location-search { display:block; position:relative; }
.result-location-search input { padding-right:26px; }
.result-location-search::after { content:""; position:absolute; right:12px; top:14px; width:6px; height:6px; border-right:1.5px solid #205c54; border-bottom:1.5px solid #205c54; transform:rotate(45deg); pointer-events:none; }
.result-location-options { display:block; position:absolute; z-index:40; top:calc(100% + 5px); left:0; right:0; min-width:200px; max-height:250px; overflow:auto; padding:5px; border:1px solid #c4dcd7; border-radius:9px; background:#fff; box-shadow:0 6px 20px #142b3620; }
.result-locations label:last-child .result-location-options { left:auto; right:0; }
.result-location-options[hidden] { display:none; }
.result-location-options [role="option"] { display:block; padding:8px; border-radius:5px; color:var(--ink); font-size:12px; line-height:1.5; font-weight:400; cursor:pointer; text-align:left; }
.result-location-options [role="option"]:is(:hover,.is-highlighted),.result-location-options [aria-selected="true"] { background:#edf6f3; color:#205c54; }
.result-filter-note { margin:4px 0 12px; text-align:justify; font-size:12px; color:var(--muted); }
.result-filter-note[hidden] { display:none; }
.site-footer { padding-block:40px; }
.site-footer .footer-inner { min-height:88px; align-items:center; gap:32px; }
.site-footer .brand { flex:none; gap:12px; font-size:24px; background:transparent; }
.site-footer .brand-icon { height:44px; background:transparent; }
.site-footer .footer-inner .footer-links { display:grid; flex:1; width:100%; max-width:820px; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:start; gap:28px 36px; }
.site-footer .footer-link-group { display:flex; flex-direction:column; align-items:flex-start; gap:4px; min-width:0; }
.site-footer .footer-link-group h3 { margin:0 0 8px; color:var(--ink); font-size:14px; font-weight:750; text-align:left; }
.site-footer .footer-inner .footer-links a,.site-footer .footer-links button { display:flex; align-items:center; min-height:32px; max-width:100%; color:var(--muted); font:inherit; font-size:13px; line-height:1.6; text-align:left; text-decoration:none; }
.site-footer .footer-links button { padding:0; border:0; background:transparent; cursor:pointer; }
.site-footer .footer-cookie-links { display:flex; align-items:center; gap:8px; white-space:nowrap; color:var(--muted); font-size:13px; }
.site-footer .footer-links :is(a,button):hover { color:var(--accent); text-decoration:underline; }
.site-footer .footer-links :is(a,button):focus-visible { outline:2px solid var(--accent); outline-offset:4px; border-radius:2px; }
.cookie-inline-settings { border:0; padding:4px; background:none; color:var(--accent); font:inherit; text-decoration:underline; cursor:pointer; }
@media(max-width:900px) {
    .site-footer .footer-inner { flex-direction:column; align-items:center; gap:20px; }
    .site-footer .footer-inner .footer-links { max-width:760px; }
}
@media(max-width:700px) {
    .site-footer .footer-inner .footer-links { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 16px; }
    .site-footer .footer-inner .footer-links a,.site-footer .footer-links button { min-height:40px; }
    .site-footer .footer-cookie-links { flex-wrap:wrap; gap:4px 8px; white-space:normal; }
    .site-footer .brand { gap:10px; font-size:26px; }
    .site-footer .brand-icon { height:48px; }
}
.cookie-banner { position:fixed; z-index:1000; inset:auto 16px 16px; display:flex; align-items:center; gap:24px; max-width:1180px; margin:auto; padding:18px 22px; border:1px solid #adc2bf; border-radius:14px; background:#fff; box-shadow:0 6px 32px #142b3624; max-height:55vh; overflow:auto; }
.cookie-banner[hidden] { display:none; }
.cookie-banner h2 { margin:0 0 8px; font-size:18px; }
.cookie-banner p { margin:0; font-size:14px; line-height:1.6; text-align:justify; }
.cookie-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; flex:none; }
.cookie-actions .button { min-height:44px; padding:10px 12px; border-radius:9px; font-size:14px; text-align:center; cursor:pointer; }
.cookie-choice { background:#edf6f3; border:1px solid #5a9c91; color:#205c54; }
.cookie-choice:hover { background:#dcefe8; }
.cookie-dialog { width:min(560px,calc(100% - 32px)); max-height:85vh; padding:24px; border:1px solid var(--line); border-radius:18px; color:var(--ink); background:var(--white); }
.cookie-dialog::backdrop { background:#142b3666; }
.cookie-dialog h2 { margin-top:0; font-size:22px; }
.cookie-dialog p,.cookie-option small { font-size:14px; line-height:1.65; text-align:justify; }
.cookie-dialog p { margin:16px 0; }
.cookie-option { display:flex; align-items:flex-start; gap:12px; margin:16px 0; }
.cookie-option input { flex:none; width:20px; height:20px; margin:4px 0; accent-color:var(--accent); }
.cookie-option small { display:block; margin-top:4px; }
.cookie-status { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
@media(max-width:1100px) {
    .header-inner { flex-wrap:wrap; padding-block:16px; gap:12px; }
    .site-header .header-nav { order:0; width:auto; justify-content:flex-start; }
    .site-header .header-actions { flex:1 1 100%; justify-content:flex-end; }
    .cookie-banner { align-items:stretch; flex-direction:column; gap:14px; }
}
@media(max-width:700px) {
    .site-header .header-inner { justify-content:center; padding-block:8px; gap:8px; }
    .site-header .brand { flex-basis:100%; justify-content:center; gap:10px; font-size:26px; }
    .site-header .brand-icon { height:48px; }
    .site-header .header-actions .button { padding:6px 8px; font-size:12px; }
    .site-header .header-inner .header-nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); width:100%; }
    .site-header .header-nav>a,.site-header .header-info>summary { padding:6px 4px; font-size:12px; white-space:nowrap; }
    .site-header .header-info>summary { gap:5px; }
    .header-info-menu { left:50%; transform:translateX(-50%); }
    .site-header .header-actions { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(0,1fr); width:100%; gap:8px; }
    .site-header .header-actions>.button { align-self:stretch; }
    .site-header .header-actions .header-account { display:contents; }
    .site-header .header-actions .header-account :is(.button,form) { width:100%; }
    .site-header .header-actions .header-account-status { grid-column:1/-1; order:1; align-items:center; text-align:center; }
    .result-filters select,.result-location-search input { min-height:40px; font-size:12px; }
    .result-location-search::after { top:16px; }
    .result-filters { gap:6px; margin-bottom:6px; }
    .result-identification { gap:4px; }
    .result-identification button { flex:0 0 auto; padding:7px 3px; font-size:10px; }
    .result-location-options [role="option"] { min-height:40px; font-size:12px; }
    .site-header nav a { background:#edf6f3; }
    .cookie-banner { inset:auto 8px 8px; padding:16px; }
    .cookie-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; }
    .cookie-banner .cookie-actions [data-cookie-settings] { grid-column:1/-1; }
    .cookie-dialog { padding:20px; }
}
@media(prefers-reduced-motion:reduce) { .site-header .header-nav>a,.site-header .header-info>summary { transition:none; } .site-header .header-nav>a:hover,.site-header .header-info>summary:hover { transform:none; } }

.site-header .brand { flex-shrink:0; }
.encryption-info-link { color:inherit; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; }
.contact-page p,.encryption-page p { max-width:none; margin-block:0 1.4em; line-height:1.8; text-align:justify; }
.contact-page .eyebrow,.encryption-page .eyebrow { margin-bottom:12px; }
.encryption-intro { font-size:20px; }
.security-table-wrap { overflow-x:auto; margin-block:24px; }
.security-table { width:100%; border-collapse:collapse; font-size:14px; line-height:1.7; }
.security-table caption { margin-bottom:12px; font-weight:700; text-align:left; }
.security-table th,.security-table td { padding:14px; border:1px solid var(--line); vertical-align:top; text-align:justify; overflow-wrap:anywhere; }
.security-table thead th { background:#edf6f3; }
.security-table tbody th { width:32%; }
.security-steps { padding-left:24px; line-height:1.8; text-align:justify; }
.security-steps li { margin-bottom:18px; padding-left:6px; }
.security-detail { margin-block:14px; padding:18px; border:1px solid var(--line); border-radius:12px; background:var(--white); }
.security-detail summary { font-weight:650; cursor:pointer; line-height:1.6; }
.security-detail[open] summary { margin-bottom:20px; }
.encryption-page code { overflow-wrap:anywhere; }
.contact-form { display:grid; gap:12px; margin-block:28px; padding:28px; border:1px solid var(--line); border-radius:16px; background:var(--white); }
.contact-form label { font-size:14px; font-weight:650; }
.contact-form label span { font-weight:400; }
.contact-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),.contact-form select,.contact-form textarea { width:100%; min-width:0; min-height:46px; padding:11px 12px; border:1px solid #aebfbc; border-radius:9px; background:var(--white); color:var(--ink); font:inherit; }
.contact-form textarea { resize:vertical; }
.contact-fields { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.contact-fields>div { display:grid; gap:8px; min-width:0; }
.contact-form .small-note { margin:0 0 12px; font-size:13px; line-height:1.6; }
.contact-form #contact-guidance { font-size:14px; }
.contact-captcha { display:grid; gap:10px; min-width:0; margin:4px 0; padding:18px; border:1px solid var(--line); border-radius:10px; }
.contact-captcha legend { padding-inline:6px; font-weight:650; }
.contact-captcha #contact-captcha { max-width:130px; }
.contact-captcha .small-note { margin:0; }
.contact-privacy { display:flex; align-items:flex-start; gap:12px; margin-block:8px; line-height:1.7; text-align:justify; }
.contact-privacy input { flex:none; width:20px; height:20px; margin:3px 0 0; accent-color:var(--accent); }
.contact-form .button { justify-self:start; cursor:pointer; }
.contact-form :is(input,select,textarea,button):focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
.contact-honeypot { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
@media(max-width:700px) {
    .contact-form { padding:18px; }
    .contact-fields { grid-template-columns:1fr; }
    .contact-form input,.contact-form select,.contact-form textarea { font-size:16px; }
    .contact-form .button { width:100%; justify-self:stretch; }
    .security-table th,.security-table td { padding:10px; }
}



/* Ajustes de lectura y jerarquía del formulario */
.census-origin-panel{max-width:620px;margin:18px auto 8px;padding:16px 18px;background:#fff;border:1px solid #d7e3e0;border-left:4px solid #087f76;border-radius:10px;text-align:left}
.census-origin-panel p{margin:0 0 10px}
.census-origin-panel .census-origin{justify-content:flex-start;margin:0 0 8px}
.census-origin-panel small{display:block;margin-left:30px;color:var(--muted);line-height:1.5}
.consent-details{margin:12px 0 18px;padding:0 14px;background:#fff;border:1px solid var(--line);border-radius:8px}
.consent-details summary{min-height:48px;display:flex;align-items:center;cursor:pointer;font-weight:600;color:#087f76}
.consent-details[open]{padding-bottom:14px}
.consent-details p{line-height:1.65}
.account-first-step{max-width:680px;margin:24px auto;padding:24px;background:#f1f7f5;border:1px solid #d7e3e0;border-radius:14px;text-align:center}
.account-first-step h3{margin-top:0}
.account-first-step .button{margin:6px}
.consent-dialog a{color:#087f76;text-decoration:underline}

.account-choice-options{display:flex;justify-content:center;gap:16px;max-width:640px;margin:28px auto}
.account-choice-options .button{flex:1;min-height:52px;display:inline-flex;justify-content:center;align-items:center;text-align:center}
@media(max-width:560px){.account-choice-options{flex-direction:column;max-width:360px}}

.consent-iframe{display:block;width:100%;height:700px;min-height:600px;border:1px solid var(--line);border-radius:10px;background:#fff;margin:12px 0 18px}

.account-flow-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:24px 0 30px;padding:0;border:0}
.account-flow-choice{position:relative;min-width:0;min-height:106px;padding:20px;display:flex;align-items:center;justify-content:center;text-align:center;border:2px solid #087f76;border-radius:14px;background:#fff;color:#087f76;cursor:pointer;transition:background-color .15s ease,color .15s ease,border-color .15s ease}
.account-flow-choice>input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.account-flow-choice>span{display:flex;flex-direction:column;align-items:center}
.account-flow-choice strong{font-size:1.12rem;line-height:1.35}
.account-flow-choice.is-selected{border-color:#087f76;background:#087f76;color:#fff}
.account-flow-choice:focus-within{outline:3px solid #183d57;outline-offset:3px}
.identification-methods--choice{margin:28px 0 0;padding-bottom:8px}
.identification-choice-submit{display:flex;justify-content:center;align-items:center;min-width:min(100%,360px);min-height:56px;margin:36px auto 0}
@media(max-width:640px){.account-flow-options{grid-template-columns:1fr}.account-flow-choice{min-height:79px;padding:18px}}

@media(max-width:359px) {
    .site-header .header-actions .button { font-size:11px; white-space:nowrap; }
    .hemicycle-section { padding-top:6px; }
    .hemicycle-heading h1 { font-size:21px; line-height:1.15; }
    .hemicycle-heading .overview-description { margin-top:4px; font-size:12px; line-height:1.3; }
    .hemicycle-section .platform-start { margin-top:4px; padding-block:3px; line-height:1.2; }
    .hemicycle-figure { margin-top:8px; padding-top:8px; }
    .result-filters { gap:4px; margin-bottom:4px; }
}


/* Public response history */
.response-history-section{padding-block:48px 64px}
.response-history-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:28px;margin:0 0 18px}
.response-history-heading>div:first-child{flex:1 1 640px;min-width:0}
.response-history-heading h1{margin:0;font-size:clamp(32px,4vw,48px);line-height:1.12;letter-spacing:-.035em}
.response-history-intro{max-width:760px;margin:16px 0 0;color:var(--muted);font-size:18px}
.response-history-current{flex:0 0 220px;display:flex;flex-direction:column;gap:4px;padding:20px 24px;border:1px solid var(--line);border-radius:16px;background:var(--white)}
.response-history-current span{color:var(--muted);font-size:14px}
.response-history-current strong{font-size:34px;line-height:1.1}
.response-history-context,.response-history-data-note{max-width:900px;color:var(--muted)}
.response-history-period{display:flex;gap:10px;margin:28px 0 16px}
.response-history-period a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 18px;border:1px solid var(--line);border-radius:999px;background:var(--white);color:var(--ink);font-weight:650;text-decoration:none}
.response-history-period a[aria-current=page]{border-color:var(--accent);background:var(--accent);color:var(--white)}
.response-history-panel{padding:clamp(18px,3vw,32px);border:1px solid var(--line);border-radius:var(--radius);background:var(--white);box-shadow:0 8px 28px rgba(20,43,54,.045)}
.response-history-panel h2{margin:0;font-size:clamp(22px,2.5vw,30px);line-height:1.25}
.response-history-period-note{margin:8px 0 0;color:var(--muted);font-size:14px}
.response-history-figure{margin:20px 0 0}
.response-history-chart{display:block;width:100%;height:auto;overflow:visible}
.response-history-grid{stroke:#e4ebea;stroke-width:1}
.response-history-axis-label{fill:#51656e;font:12px system-ui,-apple-system,"Segoe UI",sans-serif}
.response-history-bar{fill:#087f76}
.response-history-bar:hover{fill:#075d57}
.response-history-figure figcaption{margin-top:10px;color:var(--muted);font-size:14px}
.response-history-table-wrap{max-height:420px;overflow:auto;margin-top:20px;border:1px solid var(--line);border-radius:12px}
.response-history-table{width:100%;border-collapse:collapse;background:var(--white);font-variant-numeric:tabular-nums}
.response-history-table caption{padding:12px;text-align:left;font-weight:700}
.response-history-table th,.response-history-table td{padding:9px 14px;border-top:1px solid var(--line);text-align:left}
.response-history-table thead th{position:sticky;top:0;background:#f2f7f6}
.response-history-table td:last-child{text-align:right}
.response-history-empty{padding:18px 0;color:var(--muted)}
.response-history-data-note{margin-top:18px;font-size:14px}
@media(max-width:720px){
 .response-history-section{padding-block:30px 44px}
 .response-history-heading{flex-direction:column;gap:16px}
 .response-history-current{flex-basis:auto;width:100%;padding:14px 18px}
 .response-history-current strong{font-size:29px}
 .response-history-intro{font-size:16px}
 .response-history-period{margin-top:20px}
 .response-history-chart{min-width:640px}
 .response-history-figure{overflow-x:auto;padding-bottom:8px}
}

/* Registro guiado: conserva el contenido al avanzar y al volver. */
[data-registration-step][hidden], [data-registration-next-container][hidden], [data-registration-submit][hidden], [data-registration-previous][hidden] { display:none !important; }
.registration-progress { margin:0 auto 28px; max-width:760px; scroll-margin-top:24px; }
.registration-progress p { font-size:20px; margin:0 0 12px; }
.registration-progress p:focus-visible { outline:3px solid #087f76; outline-offset:5px; }
.registration-progress progress { display:block; width:100%; height:14px; border:0; border-radius:20px; overflow:hidden; background:#dce7e6; accent-color:#087f76; }
.registration-progress progress::-webkit-progress-bar { background:#dce7e6; border-radius:20px; }
.registration-progress progress::-webkit-progress-value { background:#087f76; border-radius:20px; }
.registration-progress progress::-moz-progress-bar { background:#087f76; border-radius:20px; }
.registration-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:16px; margin:28px 0 8px; }
.registration-actions .button { min-height:52px; min-width:160px; font-size:18px; }
.registration-progress-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.registration-progress-heading p { flex:1; min-width:0; margin:0; text-align:left; }
.registration-progress-heading .registration-previous { flex:0 0 auto; min-width:0; min-height:40px; padding:6px 10px; font-size:14px; line-height:1.3; }
.registration-actions--bottom .button { max-width:100%; }
[data-registration-wizard] .residence-options { margin:12px 0 28px; }
[data-registration-wizard] #constituency-title { font-size:22px; margin:24px auto 0; }
[data-registration-wizard] #constituency { display:block; box-sizing:border-box; width:100%; max-width:460px; min-height:52px; margin:28px auto 32px; padding:12px 32px 12px 12px; background:#e1e3e3; border:2px solid #a5a3a3; border-radius:10px; box-shadow:0 0 8px 2px #bbb; font-size:16px; }
.residence-options { display:flex; flex-wrap:wrap; gap:16px; justify-content:center; margin:20px 0 28px; padding:0; border:0; }
.residence-options legend { width:100%; margin-bottom:12px; font-size:18px; }
.residence-choice { position:relative; flex:1 1 230px; max-width:360px; cursor:pointer; }
.residence-choice input { position:absolute; opacity:0; width:1px; height:1px; }
.residence-choice span { display:flex; align-items:center; justify-content:center; min-height:72px; padding:16px 20px; border:2px solid #8b9d9b; border-radius:12px; background:white; color:#243b38; font-size:19px; font-weight:600; }
.residence-choice input:checked + span { background:#087f76; border-color:#087f76; color:white; box-shadow:0 0 0 3px #c8e6e1; }
.residence-choice input:checked + span::before { content:'✓'; margin-right:10px; }
.residence-choice input:focus-visible + span { outline:3px solid #1d4ed8; outline-offset:4px; }
.registration-success { text-align:center; }
.registration-success .share-strip { padding-top:20px; }
.registration-account-switch { text-align:center; margin:24px 0 0; }
.development-banner { padding:10px 16px; text-align:center; background:#fff2c7; color:#533f00; font-weight:600; }
@media (max-width:540px) {
    .registration-actions .button { flex:0 1 auto; }
    .residence-choice { max-width:none; flex-basis:100%; }
    .registration-progress p { font-size:18px; }
}

/* Formularios del registro por pasos. */
.password-toggle svg { width:24px; height:24px; }
.password-toggle:focus-visible { outline:3px solid #087f76; outline-offset:1px; }
[data-registration-method][hidden], [data-step-submit][hidden] { display:none !important; }
.registration-reset-method { margin:20px auto; text-align:center; }
.registration-reset-method button { border:0; background:transparent; color:#087f76; text-decoration:underline; cursor:pointer; font:inherit; }
[data-registration-step] .account-form { max-width:760px; margin-inline:auto; }

[data-registration-intro][hidden] { display:none !important; }
[data-registration-methods] .identification-methods { margin-bottom:28px; }
[data-registration-method] { margin-block:28px; }
