:root{
  --navy:#0f172a;
  --navy-2:#1e293b;
  --border:#e2e8f0;
  --muted:#64748b;
  --green:#22c55e;
  --red:#ef4444;
  --amber:#f59e0b;
}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;background:#f8fafc;color:#0f172a}
a{color:inherit;text-decoration:none}
.container{max-width:1120px;margin:0 auto;padding:0 20px}
.container-sm{max-width:440px;margin:0 auto;padding:0 16px}

/* Header institucional */
.top-header{background:var(--navy);color:#fff}
.top-header .inner{display:flex;flex-direction:column;align-items:center;gap:8px;padding:28px 16px;text-align:center}
.brand-badge{width:52px;height:52px;border-radius:14px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;font-size:24px}
.brand-title{font-weight:800;font-size:17px;letter-spacing:-.2px}
.brand-sub{margin-top:2px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.6)}

.site-footer{border-top:1px solid var(--border);background:#fff}
.site-footer .inner{max-width:440px;margin:0 auto;padding:16px;text-align:center;font-size:11px;line-height:1.6;color:var(--muted)}

/* Cards */
.card{background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:0 1px 2px rgba(0,0,0,.03)}
.card-pad{padding:22px}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:10px;padding:11px 18px;font-size:14px;font-weight:600;border:1px solid transparent;cursor:pointer;transition:.15s}
.btn-primary{background:var(--navy);color:#fff}
.btn-primary:hover{background:var(--navy-2)}
.btn-outline{background:#fff;border-color:var(--border);color:#0f172a}
.btn-outline:hover{background:#f1f5f9}
.btn-danger{background:#fee2e2;color:#b91c1c}
.btn-success{background:#dcfce7;color:#15803d}
.btn-sm{padding:7px 12px;font-size:13px;border-radius:8px}
.btn-block{width:100%}

/* Forms */
input,select,textarea{font-family:inherit;font-size:14px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;width:100%;background:#fff}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(15,23,42,.08)}
label{display:block;font-size:12.5px;font-weight:600;color:#334155;margin-bottom:5px}
.field{margin-bottom:14px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
@media (max-width:640px){.grid-2,.grid-3{grid-template-columns:1fr}}

/* Status pills */
.pill{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700}
.pill-green{background:#dcfce7;color:#15803d}
.pill-red{background:#fee2e2;color:#b91c1c}
.pill-amber{background:#fef3c7;color:#92400e}
.pill-slate{background:#f1f5f9;color:#475569}

/* Result banner (public verification) */
.result-banner{border-radius:16px;padding:28px 20px;text-align:center;color:#fff;box-shadow:0 10px 40px -10px rgba(0,0,0,.35)}
.result-banner.ok{background:var(--green)}
.result-banner.no{background:var(--red)}
.result-banner .icon{font-size:44px;line-height:1}
.result-banner h2{margin:10px 0 6px;font-size:22px;text-transform:uppercase;letter-spacing:-.3px}
.result-banner p{margin:0 auto;max-width:320px;font-size:14px;opacity:.95}

/* Admin layout */
.admin-wrap{display:flex;min-height:100vh}
.sidebar{width:230px;background:#fff;border-right:1px solid var(--border);flex-shrink:0}
.sidebar-brand{padding:18px;border-bottom:1px solid #f1f5f9;display:flex;align-items:center;gap:10px;font-weight:800}
.sidebar nav{padding:12px}
.sidebar nav a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;font-size:14px;font-weight:600;color:#475569;margin-bottom:2px}
.sidebar nav a:hover{background:#f1f5f9}
.sidebar nav a.active{background:var(--navy);color:#fff}
.admin-main{flex:1;min-width:0}
.admin-topbar{height:56px;border-bottom:1px solid var(--border);background:#fff;display:flex;align-items:center;padding:0 24px;justify-content:space-between}
.admin-content{padding:24px}
@media (max-width:900px){.sidebar{display:none}}

/* Tables */
table{width:100%;border-collapse:collapse;font-size:13.5px}
th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:10px 12px;border-bottom:1px solid var(--border)}
td{padding:12px;border-bottom:1px solid #f1f5f9}
tr:hover td{background:#fafbfc}

/* Stat cards */
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
@media (max-width:900px){.stat-grid{grid-template-columns:repeat(2,1fr)}}
.stat-card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:18px}
.stat-card .label{font-size:12px;color:var(--muted);font-weight:600}
.stat-card .value{font-size:26px;font-weight:800;margin-top:4px}

.credencial{width:360px;max-width:100%;border-radius:16px;overflow:hidden;border:1px solid var(--border);background:#fff}
.credencial-head{background:var(--navy);color:#fff;padding:14px 16px;font-size:12px;font-weight:700;text-align:center;letter-spacing:.05em;text-transform:uppercase}
.credencial-body{padding:16px;display:flex;gap:14px}
.credencial-foto{width:72px;height:72px;border-radius:10px;object-fit:cover;background:#f1f5f9;flex-shrink:0}
.credencial-strip{background:#f8fafc;border-top:1px solid var(--border);padding:10px 16px;font-size:11px;color:var(--muted);text-align:center}

.muted{color:var(--muted)}
.mt-0{margin-top:0}
.text-center{text-align:center}
.flex{display:flex}
.gap-2{gap:8px}
.items-center{align-items:center}
.justify-between{justify-content:space-between}
.w-full{width:100%}
