:root{--ink:#161616;--deep:#191919;--deep2:#3a3a3a;--cream:#faf9f3;--line:#dedbd0;--muted:#595959;--white:#fff;--ok:#23673e;--warn:#985e23;--prd:#ffe000}*{box-sizing:border-box}body{font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;background:var(--cream);color:var(--ink);margin:0;line-height:1.5}a{color:var(--deep)}h1,h2,h3{line-height:1.15;letter-spacing:-.025em}h1{font-size:clamp(2rem,4vw,3rem);margin:.25em 0}h2{font-size:1.3rem}small{display:block;font-size:.75rem;color:var(--muted)}.top{background:var(--white);border-bottom:1px solid var(--line);display:flex;gap:1rem;justify-content:space-between;align-items:center;padding:1rem max(1.5rem,calc((100vw - 1200px)/2))}.brand{display:flex;gap:.8rem;align-items:center;letter-spacing:.09em;font-size:.9rem;font-weight:650}.brand-mark{background:var(--deep);color:#fff;padding:.6rem;border-radius:.35rem}.brand small{letter-spacing:0;font-weight:400}.top nav{display:flex;align-items:center;flex-wrap:wrap;gap:1rem}.top nav a{text-decoration:none}.identity{color:var(--muted);font-size:.85rem}.container{max-width:1200px;margin:2.5rem auto;padding:0 1.5rem;min-height:70vh}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:2rem;margin-bottom:2rem}.eyebrow{text-transform:uppercase;letter-spacing:.15em;color:var(--deep);font-size:.75rem;font-weight:700}.card{background:#fff;border:1px solid var(--line);border-radius:.6rem;padding:1.5rem;margin-bottom:1.1rem;box-shadow:0 2px 8px #32112008}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}.two{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.narrow{max-width:650px}.auth{max-width:430px;margin:6vh auto}.tag{display:inline-block;background:#f2e8ed;color:var(--deep);border-radius:4px;padding:.2rem .6rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.metric{text-align:center;min-width:180px;border-left:2px solid var(--deep);padding-left:1.5rem}.metric strong{font-size:3rem;display:block;line-height:1}.metric span{color:var(--muted)}form:not(.inline){display:flex;flex-direction:column;gap:1rem}label{display:flex;flex-direction:column;gap:.35rem;font-size:.86rem;font-weight:600}input,select,textarea{width:100%;min-height:2.6rem;padding:.65rem;border:1px solid #cbbfc7;border-radius:.3rem;background:#fff;font:inherit;font-weight:400;color:var(--ink)}textarea{min-height:90px}.form-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:end}.btn{display:inline-block;background:#fff;color:var(--deep);padding:.65rem .9rem;border:1px solid var(--deep);border-radius:.35rem;text-decoration:none;font:inherit;font-weight:650;cursor:pointer;white-space:normal}.btn:hover{background:#f8edf2}.btn.primary{background:var(--deep);color:#fff}.btn.primary:hover{background:var(--deep2)}.btn.small{font-size:.74rem;padding:.3rem .45rem;margin:.15rem}.btn.full{width:100%}.inline{display:inline}.nav-button{background:none;border:0;color:var(--deep);cursor:pointer;font:inherit}.actions{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem}.alert{border-left:4px solid #a37c3c;background:#fff5df;padding:1rem;margin-bottom:1rem}.alert.ok{border-color:var(--ok);background:#eef8f1}.alert.error{border-color:#a23030;background:#fff0f0}.warning{color:var(--warn);font-size:.87rem}.muted{color:var(--muted)}.ok{color:var(--ok)}.list-line{border-top:1px solid var(--line);padding:1rem 0}.list-line p{margin:.35rem 0}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;font-size:.85rem}td,th{border-bottom:1px solid var(--line);padding:.7rem;text-align:left;vertical-align:top}th{color:var(--deep);background:#faf6f8}.stat{display:inline-block;padding:.35rem .6rem;background:#f3e9ed;border-radius:4px}footer{text-align:center;padding:2rem;color:var(--muted);border-top:1px solid var(--line);font-size:.82rem}@media(max-width:800px){.top,.page-heading{flex-direction:column;align-items:flex-start}.two{grid-template-columns:1fr}.metric{text-align:left}.container{margin:1rem auto}}@media print{.top,footer,.print-hide,.btn{display:none!important}body{background:#fff}.card{box-shadow:none}table{font-size:10px}}

/* Identidad PRD Zacatecas: amarillo, negro y blanco */
.top{background:#ffe000;border-bottom:3px solid #181818}.brand-mark{background:#181818;color:#ffe000;border-radius:3px;padding:.55rem .7rem}.brand small{color:#333}.top nav a,.top .nav-button{color:#151515;font-weight:650}.eyebrow{color:#252525}.btn.primary{background:#ffe000;color:#151515;border-color:#121212}.btn.primary:hover{background:#f1ca00;color:#111}.btn:hover{background:#fff7c7}.btn{border-color:#282828;color:#171717}.tag,.stat{background:#fff4a8;color:#171717}.metric{border-left-color:#ffe000}th{background:#fff6bd;color:#151515}a{color:#171717;text-decoration-color:#c4a500}input:focus,select:focus,textarea:focus{outline:3px solid #ffe000;outline-offset:1px}.card{border-color:#d9d6ca}footer{background:#191919;color:#fff}footer a{color:#ffe000}.alert.ok{border-color:#1f7841}.h-register-banner{background:#ffe000}


/* Consejo PRD Zacatecas v0.5.2 — identidad visual institucional
   Paleta de referencia: amarillo solar, negro y blanco. */
:root{
 --prd-yellow:#f2c300;--prd-yellow-dark:#d9aa00;--prd-yellow-soft:#fff4b8;
 --prd-black:#111111;--prd-white:#ffffff;--prd-gray:#f5f5f5;
 --prd-border:#e2e2e2;--prd-success:#198754;--prd-danger:#c62828;
 --ink:var(--prd-black);--deep:var(--prd-black);--deep2:#343434;
 --cream:#f7f7f5;--line:var(--prd-border);--muted:#555a60;
 --ok:var(--prd-success);--warn:#795500;--prd:var(--prd-yellow);
}
body{background:var(--cream);color:var(--ink)}
.top{background:var(--prd-black);color:var(--prd-white);border-bottom:5px solid var(--prd-yellow);box-shadow:0 2px 12px #00000012;}
.brand{color:var(--prd-white);letter-spacing:.035em}
.brand strong{color:var(--prd-yellow)}
.brand small{color:#e6e6e6}
.brand-mark{background:var(--prd-yellow);color:var(--prd-black);font-weight:900;border-radius:.45rem;min-width:42px;text-align:center}
.top nav a,.top .nav-button{color:#fff;font-weight:650;transition:color .18s ease}
.top nav a:hover,.top .nav-button:hover{color:var(--prd-yellow)}
.container{max-width:1200px}
.eyebrow{color:#554600;font-weight:800}
h1,h2,h3{color:var(--prd-black)}
.card{border-color:var(--prd-border);border-radius:.75rem;box-shadow:0 3px 14px #00000008}
.card:focus-within{border-color:#d6b11e}
.btn{background:#fff;border:1.5px solid var(--prd-black);color:var(--prd-black);border-radius:.45rem;min-height:42px;font-weight:750;transition:background .15s ease,border-color .15s ease,transform .15s ease}
.btn:hover{background:var(--prd-yellow-soft);border-color:var(--prd-black)}
.btn.primary{background:var(--prd-yellow);color:var(--prd-black);border-color:var(--prd-black);font-weight:800}
.btn.primary:hover{background:var(--prd-yellow-dark);color:var(--prd-black)}
.btn:focus-visible,.nav-button:focus-visible,.top a:focus-visible,a:focus-visible{outline:3px solid var(--prd-yellow-dark);outline-offset:3px}
input,select,textarea{border-color:#9b9b9b;border-radius:.4rem;background:#fff;color:var(--prd-black)}
input:focus,select:focus,textarea:focus{outline:3px solid #f2c30088;outline-offset:0;border-color:#806900}
input[type=checkbox],input[type=radio]{accent-color:#9c7c00}
.tag,.stat{background:var(--prd-yellow-soft);color:#3d3100;font-weight:700}
.metric{border-left:4px solid var(--prd-yellow)}
th{background:#191919;color:#fff;font-weight:750}
.table-scroll{border-radius:.5rem;border:1px solid var(--prd-border)}
tr:nth-child(even) td{background:#fafaf8}
tr:hover td{background:#fff9e6}
.alert{border-left-color:var(--prd-yellow-dark);background:#fff8dd}
.alert.ok{border-left-color:var(--prd-success);background:#ecf8ef}
.alert.error{border-left-color:var(--prd-danger);background:#fff0f0}
.h-register-banner{background:linear-gradient(135deg,#fff5b1,#f2c300);color:#111;border:2px solid #111;border-radius:.65rem}
footer{background:#111;color:#eee;border-top:4px solid var(--prd-yellow)}
footer a{color:var(--prd-yellow)}
@media(max-width:800px){
 .top{padding:1rem 1.2rem;gap:.65rem}
 .brand{font-size:.83rem}
 .top nav{gap:.65rem}
 .container{padding:0 1rem}
 .btn{min-height:44px}
 .card{padding:1.15rem}
 .table-scroll{overflow-x:auto}
}
@media (prefers-reduced-motion:reduce){.btn,.top nav a{transition:none}}
@media print{.top,footer{display:none!important}body{background:#fff}th{background:#ddd!important;color:#000!important}}
