:root{--color-accent:#e4007c;--color-accent-strong:#ad0060;--color-accent-soft:#fbe3ef;--color-on-accent:#fff;--color-neutral-0:#fff;--color-neutral-50:#faf7f9;--color-neutral-100:#f2ecf0;--color-neutral-200:#e0d5dc;--color-neutral-400:#978790;--color-neutral-600:#5c4e56;--color-neutral-800:#2c232a;--color-neutral-900:#191218;--color-success:#1b7a45;--color-success-strong:#14512f;--color-success-bg:#e2f2e9;--color-on-success:#fff;--color-danger:#b3261e;--color-danger-bg:#fbe9e7;--color-warning-bg:#fbf0dc;--color-warning-text:#6b4a00;--color-bg:var(--color-neutral-50);--color-surface:var(--color-neutral-0);--color-text:var(--color-neutral-900);--color-text-muted:var(--color-neutral-600);--color-border:var(--color-neutral-200);--touch-target:52px;--radius-sm:8px;--radius:10px;--radius-lg:16px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--shadow-1:0 1px 2px #1912180d, 0 1px 3px #19121812;--shadow-2:0 4px 12px #19121814, 0 16px 40px #e4007c12;--ring:0 0 0 3px #e4007c38;--transition-fast:.12s ease;--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}html{font-size:106.25%}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;font-size:1rem;line-height:1.6}h1,h2,h3,p{margin:0 0 var(--space-3)}h1{font-size:var(--text-2xl);letter-spacing:-.015em;text-wrap:balance;font-weight:800;line-height:1.15}h2{font-size:var(--text-xl);letter-spacing:-.01em;text-wrap:balance;font-weight:700;line-height:1.2}h3{font-size:var(--text-lg);font-weight:700;line-height:1.25}button,input,select,textarea{font-family:inherit}:where(button,a,select,[tabindex]):focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.btn{min-height:var(--touch-target);min-width:var(--touch-target);padding:0 var(--space-5);border-radius:var(--radius);background:var(--color-accent);color:var(--color-on-accent);font-size:var(--text-lg);cursor:pointer;transition:background var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);border:1px solid #0000;justify-content:center;align-items:center;font-weight:700;display:inline-flex;box-shadow:0 1px 2px #1912181f}.btn:hover{background:var(--color-accent-strong)}.btn:active{box-shadow:none;transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-secondary{background:var(--color-surface);color:var(--color-accent-strong);border-color:var(--color-accent);box-shadow:none}.btn-secondary:hover{background:var(--color-accent-soft);color:var(--color-accent-strong)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-5);box-shadow:var(--shadow-1);gap:var(--space-4);flex-direction:column;display:flex}.card>h1,.card>h2,.card>h3{margin-bottom:0}.banner{padding:var(--space-4);border-radius:var(--radius);background:var(--color-accent);color:var(--color-on-accent);text-align:center;font-weight:700}.banner-danger{background:var(--color-danger-bg);color:var(--color-danger)}input[type=text],input[type=email],input[type=password],textarea{width:100%;min-height:var(--touch-target);padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);font-size:var(--text-lg);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);display:block}input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,textarea:focus{border-color:var(--color-accent);box-shadow:var(--ring);outline:none}textarea{min-height:calc(var(--touch-target) * 2);padding:var(--space-3)}.app-shell{flex-direction:column;min-height:100%;display:flex}.app-header{justify-content:space-between;align-items:center;gap:var(--space-4);min-height:var(--touch-target);padding:var(--space-3) var(--space-4);background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex}.app-status,.token-gate{min-height:100%;padding:var(--space-6);justify-content:center;align-items:center;display:flex}.app-status .card,.token-gate .card{width:100%;max-width:440px}.token-gate{background:radial-gradient(120% 90% at 50% 0%, var(--color-accent-soft) 0%, var(--color-bg) 55%)}.token-gate .card{padding:var(--space-8);border-radius:var(--radius-lg);border-top:4px solid var(--color-accent);box-shadow:var(--shadow-2)}.token-gate h1{font-size:var(--text-xl)}.token-gate form{gap:var(--space-3);flex-direction:column;display:flex}.token-gate label{font-weight:600;font-size:var(--text-sm);color:var(--color-text-muted)}.landing-actions{gap:var(--space-3);flex-direction:column;width:100%;display:flex}.landing-actions .btn,.landing-actions .btn-secondary{width:100%}.bienvenida-card{max-width:480px}.bienvenida-titulo{font-size:var(--text-2xl,1.75rem);letter-spacing:-.015em;margin-top:var(--space-2);line-height:1.12}.bienvenida-lema{color:var(--color-text-muted);margin-top:var(--space-2)}.bienvenida-pasos{margin:var(--space-5) 0 var(--space-6);gap:var(--space-4);flex-direction:column;padding:0;list-style:none;display:flex}.bienvenida-pasos li{gap:var(--space-3);align-items:flex-start;display:flex}.bienvenida-pasos .paso-num{color:#0000;-webkit-text-stroke:1.5px var(--color-accent);text-align:center;flex:none;min-width:1.4rem;padding-top:.1rem;font-size:1.6rem;font-weight:800;line-height:1}.bienvenida-pasos .paso-cuerpo{flex-direction:column;gap:2px;display:flex}.bienvenida-pasos .paso-cuerpo>span{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.5}.bienvenida-privacidad{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--color-border);font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.5}.link-btn{font:inherit;color:var(--color-accent);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.aviso-privacidad h2{font-size:var(--text-md,1.05rem);margin-top:var(--space-5);margin-bottom:var(--space-2)}.aviso-privacidad ul{padding-left:var(--space-5);gap:var(--space-2);flex-direction:column;display:flex}.aviso-privacidad .btn{margin-top:var(--space-6)}.session-list{gap:var(--space-2);flex-direction:column;display:flex}.session-list-item{justify-content:flex-start;width:100%}.totp-secret{background:var(--color-neutral-100);border-radius:var(--radius);padding:var(--space-2) var(--space-3);word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.link-button{width:100%;margin-top:var(--space-3);padding:var(--space-2);font:inherit;font-size:var(--text-sm);color:var(--color-accent-strong);cursor:pointer;background:0 0;border:none;text-decoration:underline;display:block}.link-button:hover{color:var(--color-accent)}.brand{align-items:center;gap:var(--space-1);margin-bottom:var(--space-6);text-align:center;flex-direction:column;display:flex}.brand-huella{background:var(--color-accent);width:32px;height:42px;margin-bottom:var(--space-2);border-radius:46% 46% 50% 50%/60% 60% 42% 42%;position:relative;transform:rotate(-8deg)}.brand-huella:after{content:"";border-radius:inherit;border:2px solid #ffffff73;border-bottom-color:#0000;position:absolute;inset:7px 6px 9px}.brand-name{font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--color-accent-strong);margin:0;font-weight:800}.brand-product{font-size:var(--text-xl);letter-spacing:-.01em;color:var(--color-text);margin:0;font-weight:800}.lobby{gap:var(--space-4);padding:var(--space-4);flex-direction:column;width:100%;max-width:560px;margin:0 auto;display:flex}.lobby-header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.lobby-status{color:var(--color-text-muted);margin:0}.badge{padding:var(--space-1) var(--space-3);background:var(--color-neutral-100);color:var(--color-text-muted);white-space:nowrap;border-radius:999px;align-items:center;font-size:.875rem;font-weight:700;display:inline-flex}.badge-success{background:var(--color-success);color:var(--color-on-success)}.quorum-widget{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.round-open-banner{gap:var(--space-3);flex-direction:column;align-items:center;display:flex}input[type=checkbox]{flex:none;width:22px;height:22px}.checkin-geo-toggle label{align-items:center;gap:var(--space-2);min-height:var(--touch-target);display:flex}.checkin-geo-copy{color:var(--color-text-muted);font-size:.875rem}.checkin-card>div,.checkin-card>.checkin-geo-toggle{margin-bottom:var(--space-3)}.presence-card{gap:var(--space-3);flex-direction:column;align-items:flex-start;display:flex}.banner-warning{background:var(--color-warning-bg);color:var(--color-warning-text);text-align:left}.checkout-confirm{gap:var(--space-3);flex-direction:column;width:100%;display:flex}.confirm-actions{gap:var(--space-3);display:flex}.round-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.round-list-item{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius);flex-wrap:wrap;display:flex}.round-list-status{color:var(--color-text-muted);font-size:.875rem}.round-list-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.banner-success{background:var(--color-success);color:var(--color-on-success)}.badge-danger{background:var(--color-danger-bg);color:var(--color-danger)}.round-view{gap:var(--space-4);padding:var(--space-4);flex-direction:column;width:100%;max-width:560px;margin:0 auto;display:flex}.round-view-back{align-self:flex-start}.banner-modality{font-size:1.05rem}.banner-modality-nominal{color:#6e4a00;background:#fbeed2}.banner-modality-registrada{color:#1c3d6e;background:#dfe9fb}.banner-modality-secreta{background:var(--color-success-bg);color:var(--color-success-strong)}.ballot-choices{gap:var(--space-3);flex-direction:column;display:flex}.ballot-choice-btn{min-height:calc(var(--touch-target) * 1.3);font-size:1.1rem}.ballot-confirm{gap:var(--space-3);flex-direction:column;display:flex}.ballot-consequence{color:var(--color-text-muted)}.ballot-done{gap:var(--space-2);flex-direction:column;align-items:flex-start;display:flex}.secret-stepper{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.secret-step{align-items:center;gap:var(--space-2);color:var(--color-text-muted);display:flex}.secret-step-done{color:var(--color-success)}.secret-step-active{color:var(--color-text);font-weight:700}.secret-step-spinner{border:2px solid var(--color-neutral-200);border-top-color:var(--color-accent);border-radius:50%;width:16px;height:16px;animation:.8s linear infinite secret-step-spin}@keyframes secret-step-spin{to{transform:rotate(360deg)}}.secret-cast-pending,.secret-terminal-error,.secret-authorize-error,.receipt-card{gap:var(--space-3);flex-direction:column;align-items:flex-start;display:flex}.receipt-explainer{color:var(--color-text-muted)}.receipt-hash-row{align-items:center;gap:var(--space-2);flex-wrap:wrap;width:100%;display:flex}.receipt-hash{background:var(--color-neutral-100);border-radius:var(--radius);padding:var(--space-2) var(--space-3);word-break:break-all;flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.receipt-check-form{gap:var(--space-2);flex-direction:column;width:100%;display:flex}.results-view{gap:var(--space-3);flex-direction:column;display:flex}.results-tally,.results-votes{border-collapse:collapse;width:100%}.results-tally th,.results-tally td,.results-votes th,.results-votes td{text-align:left;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border)}.results-annulled{gap:var(--space-2);flex-direction:column;align-items:flex-start;display:flex}.totp-qr{width:200px;height:200px;margin:0 auto var(--space-3);padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius);fill:#111;background:#fff;display:block}.field-hint{color:var(--color-text-muted);margin:var(--space-1) 0 0;font-size:.875rem}main.card{width:min(520px, calc(100% - var(--space-8)));margin:var(--space-10) auto;padding:var(--space-8);border-radius:var(--radius-lg);border-top:4px solid var(--color-accent);box-shadow:var(--shadow-2)}.photo-capture{gap:var(--space-3);flex-direction:column;align-items:stretch;display:flex}.photo-capture-btn{width:100%;position:relative}.photo-capture-input{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.photo-capture-preview{align-items:stretch;gap:var(--space-4);flex-direction:column;display:flex}.photo-capture-preview-img{border-radius:var(--radius);border:1px solid var(--color-border);width:100%;max-width:320px;display:block}.liveness-stub-actions{gap:var(--space-3);flex-direction:column;display:flex}.verify-captura .link-button{margin-top:var(--space-2)}.captura-dev-clave{gap:var(--space-2);flex-direction:column;display:flex}.preparate-tips{margin:var(--space-4) 0 var(--space-5);gap:var(--space-4);flex-direction:column;padding:0;list-style:none;display:flex}.preparate-tips li{gap:var(--space-3);align-items:flex-start;display:flex}.preparate-tip-num{color:#0000;-webkit-text-stroke:1.5px var(--color-accent);text-align:center;flex:none;min-width:1.4rem;font-size:1.4rem;font-weight:800;line-height:1.3}.preparate-photosensitivity{color:var(--color-text-muted);font-size:var(--text-sm);padding-top:var(--space-3);border-top:1px solid var(--color-border)}@media (prefers-reduced-motion:reduce){.btn,input[type=text],input[type=password],textarea{transition:none}.secret-step-spinner{animation:none}}.pase{max-width:34rem;padding:var(--space-6,1.5rem);margin:0 auto}.pase-instruccion{color:var(--color-text-muted,#55505a);margin-bottom:var(--space-5,1.25rem)}.pase-hoja{align-items:center;gap:var(--space-6,1.5rem);padding:var(--space-5,1.25rem);border:1px solid var(--color-border,#e7dce3);background:#fff;border-radius:12px;display:flex}.pase-qr{fill:#000;flex:none;width:11rem;height:11rem}.pase-datos{grid-template-columns:auto 1fr;align-items:baseline;gap:.35rem .9rem;margin:0;display:grid}.pase-datos dt{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted,#55505a);font-size:.75rem}.pase-datos dd{margin:0;font-weight:600}.pase-folio{overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;font-weight:500}.pase-aviso{margin-top:var(--space-5,1.25rem);color:var(--color-text-muted,#55505a);font-size:.9rem}.pase-siguiente{margin-top:var(--space-6,1.5rem)}@media print{body *{visibility:hidden}.pase-hoja,.pase-hoja *{visibility:visible}.pase-hoja{border:0;padding:0;position:absolute;inset:0 auto auto 0}.pase-siguiente,.pase-instruccion{display:none}}.kiosco{max-width:32rem;padding:var(--space-6,1.5rem);margin:0 auto}.kiosco-instruccion{color:var(--color-text-muted,#55505a);margin-bottom:var(--space-5,1.25rem)}.kiosco-aviso,.kiosco-error{padding:var(--space-4,1rem);margin-bottom:var(--space-5,1.25rem);border-radius:8px}.kiosco-aviso{background:var(--color-surface-muted,#f3ecf0)}.kiosco-error{color:#7a5309;background:#fbf0dc}.kiosco input{width:100%;padding:.75rem;font-size:1.25rem}.kiosco button{margin-top:var(--space-4,1rem);padding:.85rem 1.5rem;font-size:1.1rem}.kiosco-terminar{max-width:32rem;margin:var(--space-6,1.5rem) auto 0;padding:var(--space-5,1.25rem) var(--space-6,1.5rem);border-top:1px solid var(--color-border,#e7dce3)}.kiosco-terminar button{margin-top:var(--space-4,1rem);padding:.85rem 1.5rem;font-size:1.1rem}.app-frame{flex-direction:column;min-height:100%;display:flex}.app-frame>main.card{margin-top:var(--space-6)}.app-topbar{gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-direction:column;display:flex}.app-topbar-fila{justify-content:space-between;align-items:center;gap:var(--space-3);width:100%;max-width:1100px;margin:0 auto;display:flex}.app-topbar-brand{align-items:center;gap:var(--space-3);min-width:0;display:flex}.brand-huella-sm{flex:none;width:20px;height:26px;margin-bottom:0}.brand-huella-sm:after{border-width:1.5px;inset:4px 4px 6px}.app-topbar-nombre{flex-direction:column;min-width:0;line-height:1.2;display:flex}.app-topbar-marca{letter-spacing:.16em;text-transform:uppercase;color:var(--color-accent-strong);font-size:.68rem;font-weight:800}.app-topbar-eleccion{font-size:var(--text-sm);color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.app-topbar .link-button{width:auto;padding:var(--space-2) var(--space-1);white-space:nowrap;margin:0}.progreso{gap:var(--space-2);grid-template-columns:repeat(3,1fr);width:100%;max-width:520px;margin:0 auto;padding:0;list-style:none;display:grid}.progreso li{align-items:center;gap:var(--space-2);min-width:0;font-size:var(--text-xs);color:var(--color-neutral-400);letter-spacing:.02em;font-weight:700;display:flex}.progreso li:after{content:"";background:var(--color-neutral-200);border-radius:1px;flex:1;height:2px}.progreso li:last-child:after{display:none}.progreso-num{border:2px solid var(--color-neutral-200);background:var(--color-surface);width:26px;height:26px;color:var(--color-neutral-400);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:.8rem;line-height:1;display:inline-flex}.progreso-label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.progreso-hecho{color:var(--color-accent-strong)}.progreso-hecho .progreso-num{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent-strong)}.progreso-hecho:after{background:var(--color-accent)}.progreso-actual{color:var(--color-text)}.progreso-actual .progreso-num{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-on-accent)}@media (width<=380px){.progreso-label{display:none}.progreso{max-width:240px}}.landing{background:radial-gradient(120% 70% at 85% 0%, var(--color-accent-soft) 0%, var(--color-bg) 60%);flex-direction:column;min-height:100%;display:flex}.landing-topbar{align-items:center;gap:var(--space-3);width:100%;max-width:1100px;padding:var(--space-4) var(--space-5);margin:0 auto;display:flex}.landing-topbar .brand-huella{width:24px;height:31px;margin-bottom:0}.landing-topbar .brand-huella:after{border-width:1.5px;inset:5px 4px 7px}.landing-wordmark{flex-direction:column;line-height:1.15;display:flex}.landing-wordmark .brand-name{font-size:.68rem}.landing-wordmark .brand-product{font-size:var(--text-base)}.landing-hero{width:100%;max-width:1100px;padding:var(--space-2) var(--space-5) var(--space-6);gap:var(--space-5);grid-template-columns:1fr;align-items:center;margin:0 auto;display:grid}.landing-figura{justify-content:center;margin:0;display:flex}.landing-figura img{width:min(100%,300px);height:auto;display:block}.landing-texto{gap:var(--space-3);flex-direction:column;max-width:34rem;display:flex}.landing-eyebrow{font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--color-accent-strong);margin:0;font-weight:800}.landing-title{letter-spacing:-.02em;margin:0;font-size:clamp(2rem,8vw,3.4rem);font-weight:800;line-height:1.05}.landing-title-cargando{color:var(--color-neutral-400)}.landing-lede{font-size:var(--text-lg);color:var(--color-text-muted);text-wrap:pretty;margin:0;line-height:1.5}.landing-lede strong{color:var(--color-text)}.landing-estado{align-items:center;gap:var(--space-2);margin:var(--space-1) 0;padding:var(--space-2) var(--space-3);background:var(--color-neutral-100);color:var(--color-text-muted);font-size:var(--text-sm);border-radius:999px;align-self:flex-start;font-weight:700;line-height:1.3;display:inline-flex}.landing-estado:before{content:"";background:var(--color-neutral-400);border-radius:50%;flex:none;width:9px;height:9px}.landing-estado-abierta{background:var(--color-success-bg);color:var(--color-success-strong)}.landing-estado-abierta:before{background:var(--color-success);box-shadow:0 0 0 3px #1b7a452e}.landing-estado-cerrada{background:var(--color-neutral-100);color:var(--color-neutral-600)}.landing-estado-pronto{background:var(--color-warning-bg);color:var(--color-warning-text)}.landing-estado-pronto:before{background:#c98a00}.landing-actions{gap:var(--space-3);margin-top:var(--space-2);flex-direction:column;width:100%;max-width:26rem;display:flex}.landing-actions .btn{width:100%;min-height:60px;font-size:1.25rem}.landing-actions .btn-secondary{min-height:var(--touch-target);font-size:var(--text-lg)}.landing-error{max-width:34rem}.landing-pasos-seccion{width:100%;max-width:1100px;padding:var(--space-4) var(--space-5) var(--space-6);margin:0 auto}.landing-pasos-titulo{margin:0 0 var(--space-4);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-muted);font-weight:800}.landing-pasos{gap:var(--space-3);grid-template-columns:1fr;margin:0;padding:0;list-style:none;display:grid}.landing-pasos li{gap:var(--space-4);padding:var(--space-4) var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);align-items:flex-start;display:flex}.landing-pasos .paso-num{color:#0000;-webkit-text-stroke:1.5px var(--color-accent);text-align:center;flex:none;min-width:1.5rem;padding-top:2px;font-size:2rem;font-weight:800;line-height:1}.landing-pasos .paso-cuerpo{flex-direction:column;gap:2px;display:flex}.landing-pasos .paso-cuerpo strong{font-size:var(--text-lg)}.landing-pasos .paso-cuerpo span{color:var(--color-text-muted);line-height:1.5}.landing-footer{width:100%;max-width:1100px;padding:var(--space-4) var(--space-5) var(--space-8);gap:var(--space-2);border-top:1px solid var(--color-border);font-size:var(--text-sm);color:var(--color-text-muted);flex-direction:column;margin:auto auto 0;display:flex}.landing-footer p{margin:0}.landing-footer a{color:var(--color-accent-strong)}.landing-footer .link-btn{font-size:inherit}.landing-footer-links{gap:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}@media (width>=860px){.landing-hero{padding:var(--space-8) var(--space-8) var(--space-8);gap:var(--space-8);grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}.landing-figura{order:2;justify-content:flex-end}.landing-figura img{width:min(100%,460px)}.landing-texto{order:1}.landing-title{font-size:clamp(2.6rem,4.2vw,3.6rem)}.landing-actions{flex-direction:row;max-width:none}.landing-actions .btn{width:auto;min-width:12rem;padding:0 var(--space-8)}.landing-pasos{gap:var(--space-4);grid-template-columns:repeat(3,1fr)}.landing-pasos-seccion,.landing-footer,.landing-topbar{padding-left:var(--space-8);padding-right:var(--space-8)}.landing-footer{flex-direction:row;justify-content:space-between;align-items:baseline}}@keyframes landing-subir{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.landing-texto>*{animation:.55s ease-out both landing-subir}.landing-texto>:nth-child(2){animation-delay:60ms}.landing-texto>:nth-child(3){animation-delay:.12s}.landing-texto>:nth-child(4){animation-delay:.18s}.landing-texto>:nth-child(5){animation-delay:.24s}.landing-figura{animation:.7s ease-out .12s both landing-subir}.verify-volver{margin-top:var(--space-2)}.captura-instruccion{color:var(--color-text-muted)}.captura-slots{gap:var(--space-4);grid-template-columns:1fr;display:grid}@media (width>=560px){.captura-slots{grid-template-columns:1fr 1fr}}.captura-slot{gap:var(--space-2);flex-direction:column;display:flex}.captura-slot-titulo{font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted);font-weight:800}.captura-slot-vacio{justify-content:center;align-items:center;gap:var(--space-2);aspect-ratio:1.586;padding:var(--space-4);border:2px dashed var(--color-accent);border-radius:var(--radius);background:var(--color-accent-soft);color:var(--color-accent-strong);text-align:center;cursor:pointer;transition:background var(--transition-fast), box-shadow var(--transition-fast);flex-direction:column;font-weight:700;display:flex;position:relative}@media (hover:hover){.captura-slot-vacio:hover{background:#f7d3e6}}.captura-slot-vacio:focus-within{box-shadow:var(--ring)}.captura-slot-icono{background:var(--color-accent);width:44px;height:44px;color:var(--color-on-accent);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.captura-slot-icono svg{width:24px;height:24px}.captura-slot-texto{font-size:var(--text-base);line-height:1.3}.captura-slot-lleno{gap:var(--space-2);flex-direction:column;display:flex}.captura-slot-img{aspect-ratio:1.586;object-fit:cover;border-radius:var(--radius);border:2px solid var(--color-success);background:var(--color-neutral-100);width:100%;display:block}.captura-slot-pie{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.captura-slot-ok{align-items:center;gap:var(--space-1);color:var(--color-success-strong);font-weight:700;font-size:var(--text-sm);display:inline-flex}.captura-slot-ok p{margin:0}.captura-slot-ok-icono{background:var(--color-success);width:20px;height:20px;color:var(--color-on-success);border-radius:50%;justify-content:center;align-items:center;font-size:.75rem;display:inline-flex}.captura-slot-pie .link-button{width:auto;padding:var(--space-1) 0;margin:0}.captura-slot-estado{color:var(--color-text-muted);font-size:var(--text-sm);margin:0}.verify-captura form,.revision-clave-prompt form{gap:var(--space-3);flex-direction:column;display:flex}.verify-captura form label,.revision-clave-prompt form label{font-weight:700}.clave-input{letter-spacing:.08em;text-transform:uppercase;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1.2rem}.clave-input::placeholder{font-family:var(--font-sans);font-size:var(--text-base);letter-spacing:normal;text-transform:none}.captura-dev-clave .banner-warning,.liveness-stub .banner-warning{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);letter-spacing:.02em;border-radius:var(--radius-sm);font-weight:700}.captura-dev-clave{padding:var(--space-3);border:1px dashed var(--color-neutral-200);border-radius:var(--radius)}.captura-dev-clave label{font-size:var(--text-sm);color:var(--color-text-muted)}.consentimiento-biometrico ul,.preparate ul,.preparate ol{padding-left:var(--space-5)}.consentimiento-biometrico li+li{margin-top:var(--space-2)}.boleta-eyebrow{font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--color-accent-strong);margin:0;font-weight:800}.ballot-progress{font-size:var(--text-sm);color:var(--color-text-muted);margin:0;font-weight:700}.boleta-instruccion{color:var(--color-text-muted);margin:0}.ballot-option{align-items:center;gap:var(--space-4);width:100%;min-height:calc(var(--touch-target) * 1.3);padding:var(--space-3) var(--space-4);border:2px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);font:inherit;font-size:var(--text-lg);text-align:left;cursor:pointer;transition:border-color var(--transition-fast), background var(--transition-fast), box-shadow var(--transition-fast);font-weight:700;display:flex}@media (hover:hover){.ballot-option:hover{border-color:var(--color-accent);background:var(--color-accent-soft)}}.ballot-option:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.ballot-option[aria-pressed=true],.ballot-option-marcada{border-color:var(--color-accent);background:var(--color-accent-soft);box-shadow:var(--ring)}.ballot-mark{border:2px solid var(--color-neutral-600);background:var(--color-surface);width:34px;height:34px;color:var(--color-accent-strong);border-radius:6px;flex:none;justify-content:center;align-items:center;display:inline-flex}.ballot-mark svg{opacity:0;width:26px;height:26px;transition:opacity var(--transition-fast), transform .16s cubic-bezier(.2, .9, .3, 1.4);transform:scale(.6)}.ballot-option[aria-pressed=true] .ballot-mark svg,.ballot-option-marcada .ballot-mark svg{opacity:1;transform:none}.ballot-option-label{flex:1;line-height:1.3}.ballot-confirm{gap:var(--space-4)}.ballot-revision-titulo{margin:0;font-weight:700}.ballot-confirm .ballot-option{cursor:default}.ballot-consequence{padding:var(--space-3) var(--space-4);border-left:3px solid var(--color-accent);background:var(--color-accent-soft);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--color-text);margin:0}.ballot-confirm .confirm-actions{flex-direction:column}.ballot-confirm .confirm-actions .btn{width:100%}.boleta-progress,.boleta-done{text-align:center;align-items:center}.comprobante-exito{align-items:center;gap:var(--space-2);text-align:center;padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border);flex-direction:column;display:flex}.exito-icono{background:var(--color-success);width:64px;height:64px;color:var(--color-on-success);margin-bottom:var(--space-2);border-radius:50%;justify-content:center;align-items:center;animation:.5s cubic-bezier(.2,.9,.3,1.3) both exito-pop;display:inline-flex}.exito-icono svg{width:34px;height:34px}@keyframes exito-pop{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}.comprobante-exito h1{margin:0}.comprobante-exito p{color:var(--color-text-muted);margin:0}.comprobante h2{font-size:var(--text-lg)}.folio{gap:var(--space-2);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-neutral-50);flex-direction:column;display:flex}.folio-label{font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted);font-weight:800}.folio .receipt-hash{background:var(--color-surface);border:1px solid var(--color-border);font-size:.95rem;line-height:1.5}.folio-acciones{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.folio-acciones .btn{min-height:44px;font-size:var(--text-base)}.folio-copiado{color:var(--color-success-strong);font-weight:700;font-size:var(--text-sm);margin:0}.comprobante-pointer{color:var(--color-text-muted);margin:0}.acuse{gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--color-border);flex-direction:column;display:flex}.acuse h2{margin:0}.acuse p{color:var(--color-text-muted);margin:0}.acuse form{gap:var(--space-3);flex-direction:column;display:flex}.acuse form label{color:var(--color-text);font-weight:700}.acuse-error{padding:var(--space-3) var(--space-4);border-radius:var(--radius);background:var(--color-danger-bg);color:var(--color-danger);margin:0;font-weight:700}.verificar-voto form{gap:var(--space-3);flex-direction:column;display:flex}.verificar-voto form label{font-weight:700}.verificar-voto .receipt-hash-input{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--text-base)}.verificar-voto-intro{color:var(--color-text-muted)}.app-status-cargando{align-items:center;gap:var(--space-3);color:var(--color-text-muted);flex-direction:column;display:flex}.app-status-cargando .brand-huella{animation:1.4s ease-in-out infinite huella-latir}@keyframes huella-latir{0%,to{opacity:.85;transform:rotate(-8deg)scale(1)}50%{opacity:1;transform:rotate(-8deg)scale(1.08)}}@media (prefers-reduced-motion:reduce){.landing-texto>*,.landing-figura,.exito-icono,.app-status-cargando .brand-huella{animation:none}.ballot-mark svg,.ballot-option,.captura-slot-vacio{transition:none}}.landing-figura img{aspect-ratio:956/1085;width:min(100%,200px)}@media (width>=860px){.landing-figura img{width:min(100%,400px)}}.verify-captura form .btn,.revision-clave-prompt form .btn{width:100%}.liveness-error{gap:var(--space-3);flex-direction:column;display:flex}.progreso li{gap:6px}.progreso li:after{flex:10px;min-width:10px;margin:0 2px}@media (width<=480px){.progreso-label{letter-spacing:0;font-size:.7rem}.progreso-num{width:24px;height:24px;font-size:.72rem}}.consentimiento-biometrico,.preparate,.liveness-stub{gap:var(--space-3);flex-direction:column;display:flex}.consentimiento-biometrico>h1,.consentimiento-biometrico>p,.consentimiento-biometrico>ul,.preparate>h1,.preparate>p,.preparate>ol,.liveness-stub>p{margin:0}.preparate-tips{margin:var(--space-2) 0}.consentimiento-biometrico>.btn,.preparate>.btn{margin-top:var(--space-2)}.brand-marca{object-fit:contain;width:48px;height:48px;margin-bottom:var(--space-2);display:block}.brand-marca-sm{flex:none;width:28px;height:28px;margin-bottom:0}.landing-topbar .brand-marca{width:40px;height:40px;margin-bottom:0}.app-status-cargando .brand-marca{animation:1.4s ease-in-out infinite marca-latir}@keyframes marca-latir{0%,to{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}.ya-verificado p{margin:0}.demo-liveness{gap:var(--space-3);flex-direction:column;align-items:center;display:flex}.demo-liveness-marco{aspect-ratio:3/4;border-radius:var(--radius-lg);background:#16111a;width:100%;max-width:320px;position:relative;overflow:hidden}.demo-liveness-video{object-fit:cover;width:100%;height:100%;transform:scaleX(-1)}.demo-liveness-ovalo{border:4px solid var(--color-accent);border-radius:50%;position:absolute;inset:7% 16%;box-shadow:0 0 0 999px #16111a8c}.demo-liveness-guia{font-size:var(--text-lg);text-align:center;margin:0;font-weight:700}.demo-liveness-ok{color:var(--color-success-strong);margin:0;font-weight:700}.demo-liveness-etiqueta{font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);margin:0;font-weight:700}.demo-liveness-ovalo{justify-content:center;align-items:center;display:flex}.demo-liveness-marco-lista .demo-liveness-ovalo{border-color:var(--color-success)}.demo-liveness-check{background:var(--color-success);width:72px;height:72px;color:var(--color-on-success);border-radius:50%;justify-content:center;align-items:center;font-size:2.2rem;font-weight:800;animation:.4s cubic-bezier(.2,.9,.3,1.3) both exito-pop;display:inline-flex}.link-button,.link-btn{min-height:44px;padding:0 var(--space-4);border:1px solid var(--color-accent-soft);background:var(--color-surface);color:var(--color-accent-strong);font-size:var(--text-base);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast);border-radius:999px;justify-content:center;align-items:center;font-weight:700;text-decoration:none;display:inline-flex}.link-button{width:auto;margin:var(--space-2) auto 0}@media (hover:hover){.link-button:hover,.link-btn:hover{background:var(--color-accent-soft);border-color:var(--color-accent);color:var(--color-accent-strong)}}.link-button:focus-visible,.link-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.card>.link-button,.verify-volver{align-self:center}.app-topbar .link-button{min-height:36px;padding:0 var(--space-3);font-size:var(--text-sm);margin:0}.landing-footer .link-btn{min-height:40px;font-size:var(--text-sm)}.captura-slot-pie .link-button{min-height:36px;padding:0 var(--space-3);font-size:var(--text-sm);margin:0}.bienvenida-privacidad .link-btn{margin-top:var(--space-2)}
