/* LuftSign — hoja de estilos compartida (página pública y /admin) */
:root{
  --tinta:#1B2B4A; --tinta-osc:#13203A;
  --acento:#29A7D8; --acento-osc:#1E7FB5;
  --papel:#F4F6F8; --blanco:#FFFFFF;
  --grafito:#22262A; --gris:#5A6067; --linea:#DDE3EA;
  --valido:#1E7A4C; --valido-bg:#EAF3ED;
  --revocado:#B0342F; --revocado-bg:#F8ECEB;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Archivo',system-ui,sans-serif;background:var(--papel);color:var(--grafito);
     min-height:100vh;display:flex;flex-direction:column;font-size:16px;line-height:1.55}
a{color:var(--acento-osc)}
a:hover{color:var(--acento)}
header{background:var(--blanco);border-bottom:1px solid var(--linea)}
.barra{max-width:760px;margin:0 auto;padding:14px 20px;display:flex;
       justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.cabecera{align-items:center}
.logo{display:flex;align-items:center;gap:14px;text-decoration:none}
.logo img{display:block;height:42px;width:auto}
.cab-der{display:flex;flex-direction:column;align-items:flex-end;gap:7px}
.etiqueta{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--gris)}
/* Selector de idioma */
.idiomas{display:flex;gap:5px}
.idiomas button{background:none;border:1.5px solid transparent;padding:3px;border-radius:6px;
       cursor:pointer;line-height:0}
.idiomas button svg{width:25px;height:17px;border-radius:3px;display:block;
       box-shadow:0 0 0 1px rgba(27,43,74,.18)}
.idiomas button:hover{border-color:var(--linea)}
.idiomas button[aria-pressed="true"]{border-color:var(--acento-osc)}
main{flex:1;width:100%;max-width:760px;margin:0 auto;padding:40px 20px 56px}
h1{font-size:26px;font-weight:600;letter-spacing:-.01em;color:var(--grafito)}
.sub{color:var(--gris);margin:6px 0 26px;max-width:56ch}
.tarjeta{background:var(--blanco);border:1px solid var(--linea);border-radius:10px;padding:28px}
.tarjeta + .tarjeta{margin-top:26px}
.silencio{color:var(--gris)}
/* Formularios */
form.buscador{display:flex;gap:10px;flex-wrap:wrap}
label{width:100%;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--gris);margin-bottom:2px}
input[type=text],input[type=password]{font-family:'Archivo',system-ui,sans-serif;font-size:16px;
     padding:11px 14px;border:1.5px solid var(--linea);border-radius:8px;color:var(--grafito);
     background:var(--blanco);width:100%}
form.buscador input[type=text]{flex:1;min-width:220px;width:auto;font-family:'IBM Plex Mono',monospace;
     letter-spacing:.04em}
input.mono-input{font-family:'IBM Plex Mono',monospace;letter-spacing:.04em}
input:focus{outline:2px solid var(--acento-osc);outline-offset:1px;border-color:var(--acento-osc)}
button{font-family:inherit;font-size:15px;font-weight:600;padding:11px 22px;border:0;border-radius:8px;
     background:var(--tinta);color:#fff;cursor:pointer}
button:hover{background:var(--acento-osc)}
button:focus-visible,a:focus-visible{outline:2px solid var(--acento-osc);outline-offset:2px}
/* Sello */
.sello{display:inline-block;transform:rotate(-3.5deg);border:2.5px solid currentColor;border-radius:10px;
     padding:9px 18px 8px;font-weight:700;font-size:14.5px;letter-spacing:.16em;text-transform:uppercase;
     position:relative;margin:2px 0 22px}
.sello::after{content:"";position:absolute;inset:3px;border:1px solid currentColor;border-radius:6px;opacity:.55}
.sello.ok{color:var(--valido);background:var(--valido-bg)}
.sello.rev{color:var(--revocado);background:var(--revocado-bg)}
@media (prefers-reduced-motion: no-preference){
  .sello{animation:estampar .38s cubic-bezier(.2,1.4,.4,1) both}
  @keyframes estampar{from{transform:rotate(-3.5deg) scale(1.7);opacity:0}
                      to{transform:rotate(-3.5deg) scale(1);opacity:1}}
}
.titulo-doc{font-size:19px;font-weight:600;line-height:1.35;margin-bottom:4px}
.tipo-doc{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--gris);margin-bottom:20px}
/* Ficha */
dl{border-top:1px solid var(--linea)}
.fila{display:grid;grid-template-columns:180px 1fr;gap:6px 18px;padding:11px 0;border-bottom:1px solid var(--linea)}
dt{font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--gris);padding-top:2px}
dd{font-size:15px}
.mono{font-family:'IBM Plex Mono',monospace;font-size:13.5px;letter-spacing:.02em;word-break:break-all}
.estado-ok{color:var(--valido);font-weight:600}
.estado-rev{color:var(--revocado);font-weight:600}
.copiar{background:none;border:1px solid var(--linea);color:var(--gris);font-size:12px;font-weight:500;
     padding:3px 10px;border-radius:6px;margin-left:8px;cursor:pointer}
.copiar:hover{background:var(--papel);color:var(--grafito)}
.acciones{margin-top:24px;display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.btn-desc{display:inline-block;text-decoration:none;background:var(--tinta);color:#fff;font-weight:600;
     padding:12px 22px;border-radius:8px}
.btn-desc:hover{background:var(--acento-osc);color:#fff}
.nota{margin-top:26px;background:var(--papel);border:1px solid var(--linea);border-radius:8px;
     padding:16px 18px;font-size:13.5px;color:var(--gris)}
.nota strong{color:var(--grafito)}
.aviso{border-left:3px solid var(--revocado);padding-left:16px}
.aviso h2{font-size:17px;margin-bottom:6px}
.aviso p{font-size:14.5px;color:var(--gris)}
footer{border-top:1px solid var(--linea);background:var(--blanco)}
footer .barra{font-size:12.5px;color:var(--gris)}
/* ——— Panel /admin ——— */
.formulario{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}
.campo{display:flex;flex-direction:column;gap:4px}
.campo label{width:auto;margin:0}
.campo.ancho{grid-column:1 / -1}
.campo input[type=file]{font-size:14px;padding:9px 10px;border:1.5px dashed var(--linea);
     border-radius:8px;background:var(--papel);width:100%}
.formulario .envio{grid-column:1 / -1;display:flex;justify-content:flex-end}
h2.seccion{font-size:18px;font-weight:600;margin-bottom:16px}
.msj{border-radius:8px;padding:13px 16px;margin-bottom:22px;font-size:14.5px;border:1px solid}
.msj.ok{background:var(--valido-bg);color:var(--valido);border-color:#CBE3D3}
.msj.err{background:var(--revocado-bg);color:var(--revocado);border-color:#EBD2D0}
.msj.avi{background:#FDF6E7;color:#8A6116;border-color:#F0E2C0}
.tabla-envoltura{overflow-x:auto}
table.tabla{width:100%;border-collapse:collapse;font-size:14px}
.tabla th{text-align:left;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;
     color:var(--gris);font-weight:600;padding:8px 10px;border-bottom:2px solid var(--linea)}
.tabla td{padding:9px 10px;border-bottom:1px solid var(--linea);vertical-align:top}
.btn-peligro{background:none;border:1px solid var(--revocado);color:var(--revocado);
     font-size:12.5px;font-weight:600;padding:5px 12px;border-radius:6px}
.btn-peligro:hover{background:var(--revocado);color:#fff}
.btn-liga{display:inline-block;text-decoration:none;font-weight:600;font-size:14px;
     border:1.5px solid var(--tinta);color:var(--tinta);padding:9px 18px;border-radius:8px}
.btn-liga:hover{background:var(--tinta);color:#fff}
.qr-res{margin-top:16px}
.qr-res img{width:132px;height:132px;border:1px solid var(--linea);border-radius:8px;padding:8px;background:#fff}
.pie-admin{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:22px}
.pie-admin form{margin:0}
.btn-suave{background:none;border:1px solid var(--linea);color:var(--gris);font-size:13px;
     font-weight:500;padding:7px 14px;border-radius:7px}
.btn-suave:hover{background:var(--papel);color:var(--grafito)}
@media (max-width:560px){
  .fila{grid-template-columns:1fr} dt{padding-top:0} .tarjeta{padding:20px}
  .formulario{grid-template-columns:1fr}
  .cab-der{align-items:flex-start}
}
