/* Verificación pública: componentes del prototipo v2 vestidos con la marca v5 (tokens en marca.css, que va antes). */
*{box-sizing:border-box}html,body{margin:0}body{font:var(--fs-texto)/1.55 var(--f);background:var(--bg);color:var(--ink);overflow-x:hidden}
a{color:inherit}.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:clamp(16px,4vw,32px)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.hd{background:var(--n900);color:var(--on);border-bottom:1px solid var(--glass-line)}.hd .wrap{display:flex;align-items:center;justify-content:space-between;min-height:64px}
.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;color:var(--on)}.brand img{display:block;height:38px;width:auto}.brand__tag{font:500 12px/1 var(--m);letter-spacing:.14em;text-transform:uppercase;color:var(--on-2);border-left:1px solid var(--glass-line);padding-left:12px}.hd__link{color:var(--on-2);text-decoration:none;font-weight:600}
.dark{background:var(--n900);color:var(--on);position:relative;overflow:hidden}.dark>.wrap{position:relative;z-index:1}
.glow::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(640px 440px at 10% 90%,rgba(140,26,31,.34),transparent 62%),radial-gradient(760px 540px at 90% 8%,rgba(200,100,106,.4),transparent 62%)}
.kicker{font:800 12px/1 var(--f);letter-spacing:.14em;text-transform:uppercase;color:var(--acc-oscuro)}
.phead{padding-block:clamp(40px,6vw,72px) clamp(40px,6vw,64px)}.phead h1{font:800 clamp(30px,5vw,56px)/1.05 var(--f);letter-spacing:-.04em;margin:14px 0 0}
.phead p{color:var(--on-2);margin:14px 0 0;max-width:60ch;font-size:17px}
.vform{display:flex;flex-wrap:wrap;gap:10px;background:rgba(255,255,255,.07);border:1px solid var(--glass-line);border-radius:var(--r-lg);padding:9px;margin-top:28px;max-width:720px}
.vform input{flex:1 1 220px;min-width:0;background:transparent;border:0;color:var(--on);font:700 17px/1 var(--m);letter-spacing:.07em;text-transform:uppercase;padding:13px 14px;outline:none}
.vform input::placeholder{color:var(--on-3);text-transform:none;letter-spacing:0;font:500 16px/1 var(--f)}
.vform:focus-within{border-color:rgba(200,100,106,.7);box-shadow:0 0 0 4px rgba(200,100,106,.15)}
.btn{display:inline-flex;align-items:center;justify-content:center;font:700 15.5px/1 var(--f);padding:15px 22px;border-radius:var(--r-lg);border:1px solid transparent;cursor:pointer;text-decoration:none}
.btn-primary{background:var(--lacre);color:var(--sobre-lacre)}.btn-line{background:var(--surface);color:var(--ink);border-color:var(--line)}
.btn:focus-visible,a:focus-visible{outline:3px solid var(--foco);outline-offset:2px}
/* Celular: botones de 44 px de alto y, en la ficha de Mi Certif, el código en su propia línea (sin un «·» suelto al final de la anterior). */
@media (max-width:759px){.btn{min-height:44px}}
@media (max-width:520px){.note .sep-cod{display:none}.note .m.nb{display:block;margin-top:4px}}
.page{padding-block:40px 64px}.note{font-size:var(--fs-ayuda);color:var(--ink-3)}
.result{max-width:900px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow)}
.result__band{display:flex;gap:16px;align-items:center;padding:22px 24px}.result__band .i{width:40px;height:40px;flex:none}
.result[data-state=ok] .result__band{background:var(--ok-soft);color:var(--ok)}.result[data-state=bad] .result__band{background:var(--bad-soft);color:var(--bad)}
.result[data-state=hint] .result__band,.result[data-state=none] .result__band{background:var(--warn-soft);color:var(--warn)}
.result__band b{display:block;font:800 22px/1.2 var(--f);letter-spacing:-.02em}.result__band span{color:var(--ink-2);font-size:15px}
.result__body{padding:24px;display:grid;gap:24px}
dl.kv{margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 24px}@media (max-width:640px){dl.kv{grid-template-columns:repeat(2,minmax(0,1fr))}}
.kv div{min-width:0}.kv dt{font:800 11.5px/1 var(--f);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}.kv dd{margin:7px 0 0;font-weight:700;overflow-wrap:anywhere}.kv dd.m,.m{font-family:var(--m)}.kv dd.m{font-size:14px}
.proofs{list-style:none;margin:0;padding:20px 0 0;display:grid;gap:14px;border-top:1px solid var(--line)}.proofs li{display:grid;grid-template-columns:24px minmax(0,1fr);gap:12px;font-weight:600}
.proofs .i{width:22px;height:22px}.proofs .ok{color:var(--ok)}.proofs .no{color:var(--bad)}.proofs small{display:block;font:500 12.5px/1.5 var(--m);color:var(--ink-3);overflow-wrap:anywhere;margin-top:2px}
.actions{display:flex;flex-wrap:wrap;gap:10px}.ft{border-top:1px solid var(--line);padding-block:24px;color:var(--ink-3);font-size:14px}

/* Portada, credencial e ingreso (prototipo v2) */
.hd__nav{display:flex;align-items:center;gap:6px 20px;flex-wrap:wrap;justify-content:flex-end}.hd .wrap{gap:12px}.hd__link:hover{color:var(--on)}
.sec{padding-block:clamp(48px,7vw,88px)}.sec h2{font:800 clamp(26px,4vw,40px)/1.1 var(--f);letter-spacing:-.03em;margin:12px 0 0}
.sec.dark h2,.sec.dark p{color:var(--on)}.sec.dark p{color:var(--on-2)}.kicker-ink{color:var(--brand)}
.fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:18px;margin-top:32px}
.fcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:24px;box-shadow:var(--shadow);min-width:0}
.fcard h3{font:800 19px/1.2 var(--f);margin:16px 0 8px}.fcard p{margin:0;color:var(--ink-2);font-size:15.5px}
.ficon{display:inline-grid;place-items:center;width:46px;height:46px;border-radius:var(--r-lg);background:var(--lacre);color:var(--sobre-lacre)}.ficon .i{width:24px;height:24px}
.steps{list-style:none;margin:32px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:18px}
.step{background:rgba(255,255,255,.06);border:1px solid var(--glass-line);border-radius:var(--r-lg);padding:24px;min-width:0}.step h3{font:800 19px/1.2 var(--f);margin:14px 0 8px;color:var(--on)}.step p{margin:0;font-size:15.5px}
.step .n{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--lacre);color:var(--sobre-lacre);font-weight:800}.step a{color:var(--acc-oscuro)}
.cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px}.cta p{color:var(--ink-2);margin:8px 0 0;max-width:56ch}
.btn-li{background:var(--linkedin);color:#fff}.btn .i{width:18px;height:18px;margin-right:8px;flex:none}.btn{text-align:center}
.cred{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:20px;align-items:stretch}@media (max-width:760px){.cred{grid-template-columns:minmax(0,1fr)}}
.certcard{margin:0;padding:clamp(20px,4vw,36px);border:2px solid var(--line);border-radius:var(--r-lg);background:var(--bg);text-align:center;display:grid;gap:6px;align-content:center;min-width:0;overflow-wrap:anywhere}
.certcard p{margin:0}.cc-a{color:var(--ink-3);font-size:14px}.cc-n{font:800 clamp(22px,4vw,32px)/1.15 var(--f);letter-spacing:-.02em}.cc-c{font:800 clamp(18px,3vw,24px)/1.2 var(--f);color:var(--brand)}
.cc-k{margin-top:12px;color:var(--ink-3);font-size:12.5px;line-height:1.7}
.badgebig{display:grid;place-items:center;border-radius:var(--r-lg);padding:24px;background:radial-gradient(circle at 50% 40%,rgba(200,100,106,.18),transparent 62%),linear-gradient(160deg,var(--certif-grafito),var(--certif-grafito-2));min-width:0}
.badge-svg{width:min(80%,260px);height:auto;filter:drop-shadow(0 24px 34px rgba(0,0,0,.5))}
.authwrap{display:grid;place-items:start center}.authcard{width:min(100%,460px);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(20px,4vw,32px);box-shadow:var(--shadow)}
.authcard h1{font:800 28px/1.1 var(--f);letter-spacing:-.03em;margin:10px 0 8px}.authform{display:grid;gap:8px;margin-top:16px}.authform label{font-weight:700;font-size:14px}
.authform input{width:100%;padding:13px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--bg);color:var(--ink);font:inherit}.authform input:focus{outline:3px solid var(--foco);outline-offset:1px}
.authform .btn{margin-top:8px}.formerr{background:var(--bad-soft);color:var(--bad);border-radius:var(--r);padding:11px 14px;font-weight:600;margin:14px 0 0}
.authaviso{background:var(--warn-soft);color:var(--warn);border-radius:var(--r);padding:11px 14px;font-weight:600;margin:14px 0 0}.authpie{margin:20px 0 0;line-height:1.5}
/* Mi Certif */
.miaviso{background:var(--ok-soft);color:var(--ok);border-radius:var(--r);padding:11px 14px;font-weight:600;margin:14px 0 0}
.milista{list-style:none;padding:0;margin:0;display:grid;gap:16px;max-width:900px}
.miitem{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:20px;display:grid;gap:10px;min-width:0;box-shadow:var(--shadow)}
.miitem p{margin:0;overflow-wrap:anywhere}
.mihead{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;justify-content:space-between}.mihead h2{font:800 20px/1.2 var(--f);letter-spacing:-.02em;margin:0;min-width:0;overflow-wrap:anywhere}
.mitag{display:inline-flex;gap:6px;align-items:center;font-weight:700;font-size:14px;border-radius:var(--r-ctl);padding:5px 12px}.mitag .i{width:16px;height:16px}
.mitag-ok{background:var(--ok-soft);color:var(--ok)}.mitag-bad{background:var(--bad-soft);color:var(--bad)}
.miacciones{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}.miacciones form{margin:0}.miacciones .btn{padding:12px 16px;font-size:14.5px}
.miexit{margin-top:24px}

.sello{display:inline-block;margin-left:6px;padding:2px 9px;border:1px solid var(--line,currentColor);border-radius:var(--r-ctl);font:700 11.5px/1.6 var(--f);color:var(--ink-3);white-space:nowrap;vertical-align:middle}.sello-ok{color:var(--ok)}

/* Pie con enlaces legales y páginas legales (/privacidad, /terminos): texto largo legible desde 390 px, sin estilos en línea */
.ft .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 24px}.ft__nav{display:flex;flex-wrap:wrap;gap:6px 18px}.ft__nav a{color:var(--ink-2);font-weight:600}
@media (max-width:759px){.ft__nav{gap:0 12px}.ft__nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 4px}}
.legal{max-width:780px}.legal section{margin-top:36px}.legal section:first-of-type{margin-top:0}
.legal h2{font:800 clamp(20px,3vw,25px)/1.25 var(--f);letter-spacing:-.02em;margin:0 0 12px}
.legal p,.legal li{color:var(--ink-2);font-size:16.5px;line-height:1.7;overflow-wrap:anywhere}.legal p{margin:0 0 12px}
.legal ul{margin:0 0 12px;padding-left:1.25em;display:grid;gap:10px}.legal b{color:var(--ink)}
.legal a{color:var(--ink);text-decoration-color:var(--brand);text-underline-offset:3px}.legal code{font:600 .92em var(--m);overflow-wrap:anywhere}
.legal-borrador{display:grid;gap:4px;margin:0 0 32px;padding:14px 18px;border:1px solid var(--warn);border-left-width:6px;border-radius:var(--r-lg);background:var(--warn-soft);color:var(--warn)}
.legal-borrador b{color:var(--warn);font-size:16px;letter-spacing:.01em}.legal-borrador span{font-size:14.5px;color:var(--ink-2)}
.legal-resp{margin:0 0 14px;display:grid;gap:12px;padding:18px 20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}
.legal-resp div{min-width:0}.legal-resp dt{font:800 11.5px/1 var(--f);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}.legal-resp dd{margin:7px 0 0;font-weight:700;color:var(--ink);overflow-wrap:anywhere}
.legal-falta{font-weight:600;color:var(--warn)}
/* /planes */
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:18px;align-items:stretch}
.plan{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:24px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:12px;min-width:0}
.plan header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}.plan h3{font:800 22px/1.1 var(--f);letter-spacing:-.025em;margin:0}
.plan__cr{font-size:15px;color:var(--ink-2)}.plan__cr b{font:800 30px/1 var(--f);letter-spacing:-.03em;color:var(--ink);margin-right:4px}
.plan__price{display:grid;gap:3px;padding-block:12px;border-block:1px solid var(--line)}.plan__price b{font:800 30px/1.05 var(--f);letter-spacing:-.03em;overflow-wrap:anywhere}.plan__price small{font-size:13.5px;color:var(--ink-3)}
.plan__unit{font:700 14px/1.4 var(--f);color:var(--ink-2);margin:0;overflow-wrap:anywhere}.plan__fx{font:500 12.5px/1.6 var(--m);color:var(--ink-3);overflow-wrap:anywhere;margin:0}
.plan__req{font:700 13px/1.3 var(--f);color:var(--warn);background:var(--warn-soft);padding:9px 11px;border-radius:var(--r-lg);margin:0}
.plan__ul{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:14.5px;color:var(--ink-2)}
.plan__ul li{position:relative;padding-left:20px}.plan__ul li::before{content:"";position:absolute;left:2px;top:.55em;width:8px;height:8px;border-radius:50%;background:var(--ok)}
.plan--free{background:linear-gradient(180deg,var(--ok-soft),var(--surface) 55%)}
.plan--wide{grid-column:1/-1;background:linear-gradient(135deg,var(--certif-grafito),var(--certif-grafito-2));border-color:transparent;color:var(--on)}.plan--wide h3{color:var(--on)}.plan--wide p{color:var(--on-2);margin:0;max-width:60ch}
.pill{display:inline-block;font:800 12px/1 var(--f);padding:6px 10px;border-radius:var(--r-ctl)}.pill-ok{background:var(--ok-soft);color:var(--ok)}
.tag-ref{display:inline-block;font:800 10.5px/1 var(--f);letter-spacing:.08em;text-transform:uppercase;padding:3px 6px;border-radius:var(--r-lg);background:var(--surface-2);color:var(--ink-3);margin-right:4px}
.plsec{margin-top:clamp(36px,6vw,60px)}.tabla-precios{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);max-width:100%}
.tabla-precios table{border-collapse:collapse;width:100%;min-width:560px;font-variant-numeric:tabular-nums}.tabla-precios caption{text-align:left;padding:14px 16px;color:var(--ink-2);font-size:14px}
.tabla-precios th,.tabla-precios td{padding:11px 16px;text-align:right;border-top:1px solid var(--line);white-space:nowrap}.tabla-precios th:first-child,.tabla-precios td:first-child{text-align:left}
.tabla-precios thead th{font:400 11.5px/1.2 var(--m);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
.calc{margin-top:36px;display:grid;gap:18px;padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}.calc[hidden]{display:none}
.calc h3{font:800 20px/1.2 var(--f);margin:0}.calc__in .field{width:min(100%,230px)}.calc__in label{display:block;font-weight:700;font-size:14px;margin-bottom:6px}
.calc__in input{width:100%;padding:12px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--bg);color:var(--ink);font:700 16px var(--f)}
.calc__out{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:18px 32px;background:var(--surface-2);border-radius:var(--r);padding:20px 22px}@media (max-width:760px){.calc__out{grid-template-columns:minmax(0,1fr)}}
.combo{font:800 22px/1.25 var(--f);letter-spacing:-.02em;margin-top:8px;overflow-wrap:anywhere}.combo small{display:block;font:500 14px/1.5 var(--f);letter-spacing:0;color:var(--ink-2);margin-top:4px}
.calc__tot b{display:block;font:800 32px/1.05 var(--f);letter-spacing:-.03em;overflow-wrap:anywhere}.calc__tot span{display:block;font-size:14px;color:var(--ink-2);margin-top:6px;overflow-wrap:anywhere}
.calc__out .note{grid-column:1/-1;margin:0}
.cmp{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:18px}.cmp__col{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;min-width:0}.cmp__col h3{font:800 18px/1.2 var(--f);margin:0 0 12px}.cmp__col--libre{background:linear-gradient(180deg,var(--ok-soft),var(--surface) 60%)}
.idstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:14px;margin-top:26px}
.idstats>div{background:rgba(255,255,255,.06);border:1px solid var(--glass-line);border-radius:var(--r);padding:14px 16px;min-width:0}
.idstats b{display:block;font:800 22px/1.2 var(--f);color:var(--on)}.idstats span{display:block;font-size:13.5px;color:var(--on-2);margin-top:2px}
.sh{margin-bottom:20px}.sh h2{font:800 clamp(22px,3.4vw,30px)/1.2 var(--f);letter-spacing:-.025em;margin:0}.sh p{color:var(--ink-2);margin:6px 0 0;max-width:70ch}
.eyebrow{font:800 11.5px/1 var(--f);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.faq{display:grid;gap:10px}.faq details{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 18px}.faq summary{font-weight:700;cursor:pointer}.faq p{color:var(--ink-2);margin:10px 0 0;overflow-wrap:anywhere}
.qrbox{width:200px;max-width:100%;background:#fff;padding:8px;border-radius:var(--r);margin:10px 0}.qrbox svg{display:block;width:100%;height:auto}
.codeline{overflow-wrap:anywhere;font-size:14px;margin:4px 0 12px}
.codes{list-style:none;margin:8px 0 14px;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}.codes li{border:1px solid var(--line);border-radius:var(--r);padding:8px 10px;font-size:13.5px;overflow-wrap:anywhere}
/* Verificar un PDF (la huella se calcula en el navegador). */
.archivo{max-width:900px;margin-top:40px;padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}
.archivo h2{margin:0 0 6px;font:800 20px/1.2 var(--f);letter-spacing:-.02em}.archivo p{color:var(--ink-2);margin:8px 0 14px;overflow-wrap:anywhere}
.archivo .btn{cursor:pointer}.archivo input[type=file]:focus-visible+#v-archivo-res{outline:0}
.archivo [data-arrastre]{outline:2px dashed var(--brand)}
.archivo #v-archivo-res{margin-top:18px}.archivo #v-archivo-res:empty{display:none}.archivo #v-archivo-res .result{box-shadow:none}
.archivo .vform{background:var(--bg);border-color:var(--line)}.archivo .vform input{color:var(--ink);text-transform:none;letter-spacing:0;font-size:14px}
.archivo .vform input::placeholder{color:var(--ink-3)}.archivo .vform:focus-within{border-color:var(--brand)}
.archivo code{overflow-wrap:anywhere}

/* Marca v5 en las páginas (chunk 68): vestidas como Verificar y Perfil del sitio aprobado.
   Títulos en Cormorant, rótulos y datos en Fragment Mono, botones rectos en mayúsculas, la constancia como papel marfil. Solo cambia el aspecto, no las funciones. */
:root{--r-lg:4px;--r:3px}
.phead h1,.sec h2,.sh h2,.authcard h1,.fcard h3,.step h3,.plan h3,.legal h2,.mihead h2,.archivo h2,.calc h3,.cmp__col h3,.result__band b,.cc-n,.cc-c,.combo,.plan__price b,.plan__cr b,.calc__tot b,.idstats b{font-family:var(--ft);font-weight:500;letter-spacing:-.01em}
.phead h1{font-size:var(--fs-h1);line-height:1.02;font-weight:400}
.sec h2{font-size:var(--fs-h2);line-height:1.05;font-weight:400}.sh h2{font-size:clamp(28px,4vw,38px)}
.authcard h1{font-size:36px}.fcard h3,.step h3,.plan h3{font-size:var(--fs-h3)}.legal h2{font-size:clamp(25px,3.4vw,31px)}.mihead h2{font-size:25px}.archivo h2,.calc h3{font-size:26px}
.result__band b{font-size:clamp(26px,3.6vw,34px);font-weight:500}.cc-n{font-size:clamp(28px,4.6vw,40px)}.cc-c{font-size:clamp(22px,3.4vw,29px)}
.phead p{font-family:var(--ft);font-size:clamp(19px,2.2vw,23px);line-height:1.4;color:var(--on-2)}
.kicker,.eyebrow,.kv dt,.legal-resp dt,.plan__req,.tag-ref{font-family:var(--m);font-weight:400;letter-spacing:.16em}
.kv dt{font-size:11.5px}.kicker{font-size:var(--fs-rotulo)}
.btn{font:700 13px/1 var(--f);letter-spacing:.1em;text-transform:uppercase;border-radius:var(--r-ctl);padding:16px 22px}
.btn-line{background:transparent}
.vform{border-radius:var(--r-ctl);background:rgba(255,255,255,.05)}.vform input{font:400 19px/1 var(--m);letter-spacing:.12em}
.authform input,.calc__in input{border-radius:var(--r-ctl)}
.hd{border-bottom:1px solid var(--glass-line)}.hd__link{font-weight:500;font-size:14.5px}
.hd__nav a.hd__link:last-child{border:1px solid var(--glass-line);padding:9px 16px;border-radius:var(--r-ctl);font:700 12.5px/1 var(--f);letter-spacing:.1em;text-transform:uppercase;color:var(--on)}
/* constancia: papel marfil aun en modo oscuro (se reponen los tokens claros dentro de la hoja) */
.result,.certcard{--surface:var(--certif-marfil);--bg:var(--certif-marfil);--ink:var(--certif-tinta);--ink-2:var(--certif-tinta-2);--ink-3:var(--certif-texto-2-sobre-marfil);--line:var(--certif-linea);--brand:var(--certif-lacre);--foco:var(--certif-lacre);--ok:var(--ok-sobre-claro);--ok-soft:var(--ok-soft-claro);--bad:var(--certif-lacre);--bad-soft:var(--bad-soft-claro);--warn:var(--warn-sobre-claro);--warn-soft:var(--warn-soft-claro);background:var(--surface);color:var(--ink)}
.result{border-radius:var(--r-ctl)}.result__band{border-bottom:1px solid var(--ink)}
.result[data-state=ok] .result__band,.result[data-state=bad] .result__band,.result[data-state=hint] .result__band,.result[data-state=none] .result__band{background:transparent}
.result[data-state=ok] .result__band b{color:var(--ink)}.result[data-state=ok] .result__band .i{color:var(--ok)}
.result[data-state=bad] .result__band b{color:var(--bad)}.result[data-state=hint] .result__band b,.result[data-state=none] .result__band b{color:var(--warn)}
.kv dd{font-family:var(--ft);font-weight:500;font-size:19px}.kv dd.m{font-family:var(--m);font-size:14px;font-weight:400}
.fcard,.plan,.miitem,.authcard,.archivo,.calc,.cmp__col{box-shadow:none}.ficon{border-radius:50%}
.miitem h2{font-weight:500}
.sello,.pill,.mitag{border-radius:var(--r-ctl);font-family:var(--m);font-weight:400;letter-spacing:.06em}
/* contraste sobre bandas oscuras (revisión del DOM real, chunk 68) */
.btn-line{background:var(--surface)}
.step a{color:var(--on);text-decoration-color:var(--acc-oscuro);text-underline-offset:3px}
.dark .sello{color:var(--on-2);border-color:var(--glass-line)}.dark .sello-ok{color:var(--ok-sobre-oscuro)}
@media (min-width:1100px){.result,.archivo{max-width:none}}
/* Vista previa (CERTIF_VISTA_PREVIA=1): aviso «Demostración» arriba de toda verificación. */
.vp{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 14px;padding:12px 20px;background:var(--certif-lacre-palido);color:var(--certif-vino);border-bottom:2px solid var(--certif-lacre);font-size:14px;line-height:1.4;text-align:center}
.vp b{font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:13px}

/* Enlace «Ir al contenido»: oculto hasta que el teclado lo enfoca; entonces se ve (foco visible). */
a.sr:focus-visible{position:fixed;top:8px;left:8px;z-index:100;width:auto;height:auto;clip:auto;overflow:visible;padding:12px 16px;border-radius:var(--r-ctl);background:var(--n900);color:var(--on);font-weight:700;text-decoration:none;outline:3px solid var(--foco);outline-offset:2px}
/* Celular: objetivos táctiles de al menos 44 px (cabecera, pie y botones chicos), como en el sitio. */
@media (max-width:640px){.hd .brand,.hd__link{min-height:44px;display:inline-flex;align-items:center}.btn-sm{min-height:44px}.ft__nav a{display:inline-flex;align-items:center;min-height:44px}}
/* Foco sobre las bandas siempre oscuras (cabecera y héroes): el lacre #8C1A1F apenas se distingue del grafito (2.1:1); aquí va el acento claro (3:1 o más). */
.hd a:focus-visible,.hd button:focus-visible,.dark a:focus-visible,.dark .btn:focus-visible{outline-color:var(--acc-oscuro)}

/* ===== Componentes comunes (revisión 10/10 E): una sola cara para botón, campo, aviso, tabla, píldora, tarjeta y pie en TODAS las superficies.
   Los nombres antiguos (formerr, authaviso, miaviso, banner, legal-borrador…) son alias: comparten regla con las clases nuevas (.aviso, .btn-peligro). Los colores salen de marca.css. ===== */
/* Botón: pasar, pulsar, deshabilitado, cargando y peligro (antes solo existían primario y secundario, sin estados) */
.btn{min-height:var(--alto-ctl);transition:background var(--t),border-color var(--t),color var(--t)}
.btn-primary:hover:not([disabled]):not([aria-disabled=true]){background:var(--certif-lacre-hover)}
.btn-primary:active:not([disabled]):not([aria-disabled=true]){background:var(--certif-lacre-oscuro)}
.btn-line:hover:not([disabled]):not([aria-disabled=true]){border-color:var(--ink-3)}
.btn-line:active:not([disabled]):not([aria-disabled=true]){background:var(--surface-2)}
.btn-peligro{background:var(--surface);color:var(--bad);border-color:var(--bad)}
.btn-peligro:hover:not([disabled]):not([aria-disabled=true]){background:var(--bad-soft)}
.btn[disabled],.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}
.btn[aria-busy=true]{cursor:progress;opacity:.75}
.btn-sm{min-height:0}
@media (max-width:759px){.btn-sm{min-height:var(--alto-ctl-movil)}}
/* Campo: misma altura, borde, esquinas y estados (pasar, deshabilitado, con error) en ingreso, Mi Certif, panel y calculadora */
.authform input,.calc__in input,.app input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),.app select{min-height:var(--alto-ctl);padding:10px 13px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--bg);color:var(--ink);font-family:var(--f);font-size:16px;line-height:1.4}
.authform input:hover,.calc__in input:hover,.app input:not([type=checkbox]):not([type=radio]):not([type=file]):hover,.app select:hover{border-color:var(--ink-3)}
.authform input:disabled,.calc__in input:disabled,.app input:disabled,.app select:disabled{background:var(--surface-2);color:var(--ink-3);cursor:not-allowed}
.authform input[aria-invalid=true],.calc__in input[aria-invalid=true],.app input[aria-invalid=true],.app select[aria-invalid=true]{border-color:var(--bad)}
/* Etiquetas de un formulario seguido: un respiro entre un campo y la etiqueta siguiente */
.authform label:not(:first-of-type){margin-top:6px}
/* Aviso (éxito, advertencia, error, información): barra de color a la izquierda, fondo suave y texto del mismo estado, en todas las superficies */
.aviso,.formerr,.authaviso,.miaviso,.legal-borrador,.banner{--av-c:var(--info);--av-f:var(--info-soft);border:1px solid transparent;border-left:3px solid var(--av-c);border-radius:var(--r);background:var(--av-f);color:var(--ink)}
.aviso--ok,.miaviso{--av-c:var(--ok);--av-f:var(--ok-soft)}
.aviso--warn,.authaviso,.legal-borrador,.banner.warn{--av-c:var(--warn);--av-f:var(--warn-soft)}
.aviso--bad,.formerr,.banner.bad{--av-c:var(--bad);--av-f:var(--bad-soft)}
.aviso--ok,.miaviso,.aviso--warn,.authaviso,.aviso--bad,.formerr{color:var(--av-c)}
.legal-borrador{color:var(--warn)}
.err{color:var(--bad)}
/* Tabla: rótulos mono como en el sitio, cifras tabulares y fila resaltada al pasar */
table{font-variant-numeric:tabular-nums}
tbody tr:hover td{background:var(--bg)}
/* Píldora de estado: la misma en Mi Certif, panel, planes y constancia (éxito, error, advertencia e información) */
.pill,.mitag{padding:4px 10px;font:400 12.5px/1.2 var(--m);letter-spacing:.06em}
.pill-warn,.mitag-warn{background:var(--warn-soft);color:var(--warn)}.pill-info{background:var(--info-soft);color:var(--info)}
/* Tarjeta: plana, con línea fina (como las del sitio); la sombra queda para lo que flota (menús, la constancia sobre fondo oscuro) */
.card,.kpi,.tablewrap{box-shadow:none}
/* Pie de las superficies de aplicación (ingreso, Mi Certif, invitaciones): misma voz mono que la línea legal del pie del sitio. El pie del sitio (.ft--sitio) queda fuera: sus enlaces llevan la letra de texto */
.ft:not(.ft--sitio){font:400 12px/1.6 var(--m);letter-spacing:.02em}.ft__nav a{font-weight:400}
/* Selección legible sobre las bandas siempre oscuras */
.dark ::selection,.hd ::selection,.ft--sitio ::selection,.cf ::selection,.ve ::selection,.cz ::selection,.es ::selection{background:var(--certif-lacre-claro);color:var(--certif-grafito)}
