/* Panel de administración de Chapa Pass */
body.adm { background: var(--sand); min-height: 100vh; }
.adm-wrap { max-width: 1320px; margin: 0 auto; padding: 0 32px; }
.adm-top { background: var(--deep); color: #eef2ee; position: sticky; top: env(safe-area-inset-top, 0px); z-index: 20; }
.adm-top .adm-wrap { display: flex; align-items: center; gap: 18px; height: 68px; }
.adm-top .brand { color: #fff; }
.adm-top .brand em { color: var(--sun-soft); }
.adm-top .label { color: var(--sage); }
.adm-user { margin-left: auto; display: flex; align-items: center; gap: 12px; font-size: 13.5px; color: #c8d3ce; }
.adm-user button { color: #fff; border: 1px solid rgba(255,255,255,.3); border-radius: 999px; padding: 7px 14px; font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }

.adm-gate { max-width: 520px; margin: 90px auto; text-align: center; display: flex; flex-direction: column; gap: 18px; }
.adm-gate h1 { font-family: var(--serif); font-weight: 300; font-size: 54px; line-height: 1; }
.adm-gate h1 em { color: var(--sun); }
.adm-gate p { color: var(--ink-soft); }
.gate-acciones { display: flex; flex-direction: column; gap: 10px; }

.stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin: 34px 0 26px; }
.stat { background: var(--paper); border: 1px solid var(--line); border-radius: 6px; padding: 20px 22px; }
.stat .label { color: var(--muted); font-size: 10.5px; }
.stat b { display: block; font-family: var(--serif); font-weight: 300; font-size: 44px; line-height: 1.1; font-variant-numeric: tabular-nums; }
.stat.alerta b { color: var(--sun); }

.adm-tabs { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 18px; }
.adm-sec { background: var(--paper); border: 1px solid var(--line); border-radius: 6px; padding: 22px; margin-bottom: 60px; }
.filtros { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 16px; }
.filtros .inp { flex: 1; min-width: 200px; }
.filtros select.inp { flex: 0 0 auto; min-width: 180px; }

.tabla-wrap { overflow-x: auto; }
.tabla { width: 100%; border-collapse: collapse; font-size: 14px; }
.tabla th { text-align: left; font-size: 10.5px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); padding: 10px 12px; border-bottom: 1px solid var(--line); white-space: nowrap; }
.tabla td { padding: 12px; border-bottom: 1px solid var(--line); vertical-align: top; }
.tabla td small { display: block; color: var(--muted); font-size: 12.5px; }
.tabla .cod { font-family: var(--serif); font-size: 18px; letter-spacing: .06em; white-space: nowrap; }
.tabla .num { font-variant-numeric: tabular-nums; white-space: nowrap; }
.tabla ul { list-style: none; }
.tabla li { padding: 2px 0; }
.tabla select.inp, .tabla input.inp { padding: 8px 10px; font-size: 13.5px; min-width: 140px; }
.tabla a { color: var(--ink-soft); }
.vacio { color: var(--muted); padding: 30px 0; text-align: center; }

.validar { max-width: 560px; }
.ficha-res { margin-top: 16px; border: 1px solid var(--line); border-radius: 6px; padding: 20px; display: grid; gap: 12px; max-width: 640px; }
.ficha-res .cod { font-family: var(--serif); font-size: 30px; letter-spacing: .06em; }

@media (max-width: 860px) {
  .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .adm-wrap { padding: 0 16px; }
  .adm-top .label { display: none; }
}

/* Páginas legales */
.legal-doc { max-width: 820px; padding-top: 60px; }
.legal-doc h1 { font-family: var(--serif); font-weight: 300; font-size: clamp(40px, 5vw, 60px); line-height: 1.05; margin-bottom: 14px; }
.legal-doc h1 em { color: var(--sun); }
.legal-doc h2 { font-size: 26px; margin: 42px 0 12px; }
.legal-doc p, .legal-doc li { color: var(--ink-soft); font-size: 16.5px; }
.legal-doc ul, .legal-doc ol { padding-left: 22px; display: grid; gap: 8px; }
.legal-doc .note { font-size: 14px; color: var(--muted); }
.legal-doc a { color: var(--ink); }
