*{box-sizing:border-box}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  background:linear-gradient(135deg,#10162d,#213a78);
  color:#f7f8ff;
  min-height:100vh;
}
body.modal-abierto{overflow:hidden}
.shell{width:min(920px,92vw);margin:0 auto;padding:42px 0 28px}
.hero{text-align:center;margin-bottom:24px}
.brand{
  display:inline-block;
  letter-spacing:.16em;
  font-weight:800;
  color:#b8c8ff;
  border:1px solid rgba(255,255,255,.3);
  padding:7px 14px;
  border-radius:999px;
  margin-bottom:16px;
}
h1{margin:0;font-size:clamp(34px,7vw,64px)}
.hero p{color:#d8defc;font-size:18px;line-height:1.35}
.card,.resultado{
  background:rgba(255,255,255,.96);
  color:#10162d;
  border-radius:24px;
  padding:24px;
  box-shadow:0 22px 80px rgba(0,0,0,.28);
}
label{display:block;font-weight:800;margin-bottom:10px}
input{
  width:100%;
  font-size:18px;
  padding:16px;
  border:2px solid #d8ddf0;
  border-radius:14px;
  outline:none;
}
input:focus{border-color:#365dff}
button{
  width:100%;
  margin-top:14px;
  padding:16px;
  border:0;
  border-radius:14px;
  background:#2447d8;
  color:white;
  font-size:17px;
  font-weight:800;
  cursor:pointer;
}
button:hover{background:#1937ad}
#mensaje{margin:14px 0 0;color:#a01818;font-weight:700}
.estado-publicacion{color:#5c6380;margin:14px 0 0}
.resultado{margin-top:22px}
.oculto{display:none!important}
.datos{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:12px 0 18px}
.dato{background:#f1f4ff;border-radius:14px;padding:12px}
.dato b{display:block;font-size:12px;text-transform:uppercase;color:#4b5d93;margin-bottom:4px}
.dato span{font-size:18px}
.lista{display:grid;gap:12px}
.archivo-card{background:#f3f6ff;border-radius:16px;padding:14px;border:1px solid #dfe6ff}
.archivo-nombre{font-weight:900;color:#10162d;margin-bottom:10px;word-break:break-word}
.archivo-boton{
  width:100%;
  display:block;
  padding:16px;
  margin-top:10px;
  border:0;
  border-radius:14px;
  background:#2447d8;
  color:#fff;
  font-size:17px;
  font-weight:900;
  cursor:pointer;
}
.galeria{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px}
.galeria a{display:block;background:#eef2ff;border-radius:14px;overflow:hidden;text-decoration:none;color:#1433a2;font-weight:700}
.galeria img{width:100%;display:block;background:#dfe6ff}
.galeria span{display:block;padding:10px}
.vacio{color:#68708f;background:#f3f5fb;padding:14px;border-radius:12px}
.nota{color:#5c6380;font-size:14px;margin-top:18px}
footer{text-align:center;color:#cbd4ff;padding:0 0 30px}
.modal-aviso{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.76);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  z-index:99999999;
}
.modal-caja{
  width:min(760px,100%);
  max-height:86vh;
  overflow:auto;
  -webkit-overflow-scrolling:touch;
  background:white;
  color:#10162d;
  border-radius:22px;
  padding:24px;
  box-shadow:0 22px 80px rgba(0,0,0,.45);
}
.modal-caja h2{margin-top:0}
.modal-caja p{line-height:1.45;font-size:16px}
.modal-caja hr{border:0;border-top:1px solid #d9def0;margin:18px 0}
#btnAceptarAviso{
  position:sticky;
  bottom:0;
  background:#2447d8;
  margin-top:18px;
  font-size:18px;
  padding:18px;
}
.panel-archivo{
  position:fixed;
  inset:0;
  background:rgba(8,16,45,.96);
  z-index:99999998;
  padding:18px;
  overflow:auto;
  -webkit-overflow-scrolling:touch;
}
.panel-archivo-caja{
  width:min(760px,100%);
  margin:0 auto;
  background:white;
  color:#10162d;
  border-radius:22px;
  padding:20px;
  box-shadow:0 22px 80px rgba(0,0,0,.45);
}
.btn-volver{
  background:#2447d8;
  margin-top:0;
}
.ayuda-movil{
  background:#f1f4ff;
  color:#334155;
  padding:14px;
  border-radius:14px;
  line-height:1.35;
  margin:14px 0;
}
.btn-compartir{
  background:#0f766e;
}
\n
/* NovaID V15 - botones globales por Llave */
.archivo-card-todo {
  border-width: 2px;
  margin-bottom: 14px;
}

.archivo-detalle {
  font-size: 0.92rem;
  opacity: 0.85;
  margin: 6px 0 10px;
  line-height: 1.35;
}

.archivo-boton-todo {
  font-weight: 800;
}
