body.admin { background: #f5f2ea; }
.admin__barra { background: linear-gradient(165deg, var(--azul-osc), var(--azul-noche)); color: #fff; }
.admin__barra-fila { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-block: 14px; }
.admin__marca { display: flex; align-items: center; gap: 14px; color: #fff; text-decoration: none; font-weight: 700; }
.admin__marca img { width: 86px; height: auto; }
.admin__marca span { padding-left: 14px; border-left: 1.5px solid rgba(255, 255, 255, 0.4); font-size: 0.95rem; }
@media (max-width: 520px) { .admin__marca span { display: none; } }
.admin__usuario { display: flex; align-items: center; gap: 12px; font-size: 0.85rem; }
.admin__usuario a { color: #fff; opacity: 0.85; }
.admin__usuario span { max-width: 22ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 520px) { .admin__usuario span { display: none; } }
.admin__principal { padding-block: 32px 96px; }
.admin__cargando { text-align: center; color: var(--tinta-2); padding: 80px 0; }

/* Entrada / sin acceso */
.tarjeta-central { max-width: 480px; margin: 48px auto; text-align: center; }
.tarjeta-central h1 { font-size: 1.6rem; margin-bottom: 10px; }
.tarjeta-central p { color: var(--tinta-2); margin-bottom: 22px; }

/* Listado */
.lista__cabecera { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 22px; }
.lista__cabecera h1 { font-size: clamp(1.5rem, 4vw, 2rem); font-weight: 800; }
.lista__cabecera p { color: var(--tinta-2); font-size: 0.92rem; }
.lista__acciones { display: flex; flex-wrap: wrap; gap: 10px; }
.filas { display: grid; gap: 12px; }
.fila {
  display: grid; grid-template-columns: 96px minmax(0, 1fr) auto; gap: 16px; align-items: center; background: #fff;
  padding: 12px 16px 12px 12px; border-radius: 14px; box-shadow: var(--sombra); border: 1px solid rgba(0, 0, 0, 0.04);
}
.fila__miniatura { width: 96px; aspect-ratio: 4 / 3; border-radius: 8px; overflow: hidden; background: var(--papel-2); position: relative; }
.fila__miniatura img { width: 100%; height: 100%; object-fit: cover; }
.fila__miniatura .portada-papel span { font-size: 1rem; padding: 0 8%; }
.fila__titulo { font-weight: 800; font-size: 1.05rem; line-height: 1.25; }
.fila__sub { color: var(--tinta-2); font-size: 0.88rem; }
.fila__datos { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin-top: 6px; font-size: 0.8rem; color: var(--tinta-2); }
.fila__datos span { display: inline-flex; align-items: center; gap: 0.35em; }
.fila__datos svg { width: 1.15em; }
.estado { font-weight: 700; padding: 0.15em 0.7em; border-radius: 999px; font-size: 0.75rem; }
.estado--si { background: #e3f1cc; color: #35590a; }
.estado--no { background: #fde9c9; color: #7a4600; }
.fila__botones { display: flex; gap: 6px; }
.icono-boton {
  width: 42px; height: 42px; border-radius: 12px; border: 1.5px solid var(--linea); background: #fff; display: grid; place-items: center;
  color: var(--tinta); text-decoration: none; transition: background 0.15s, border-color 0.15s;
}
.icono-boton:hover { background: var(--papel-2); border-color: var(--tinta-2); }
.icono-boton svg { width: 20px; }
.icono-boton--peligro { color: #b3261e; }
.icono-boton--peligro:hover { background: #fdecea; border-color: #b3261e; }
@media (max-width: 640px) {
  .fila { grid-template-columns: 72px minmax(0, 1fr); }
  .fila__miniatura { width: 72px; }
  .fila__botones { grid-column: 1 / -1; justify-content: flex-end; }
}

/* Editor */
.editor__migas { margin-bottom: 8px; }
.editor__migas a { display: inline-flex; align-items: center; gap: 0.3em; font-weight: 600; text-decoration: none; font-size: 0.9rem; }
.editor__migas svg { width: 1.1em; }
.editor h1 { font-size: clamp(1.5rem, 4vw, 2rem); font-weight: 800; margin-bottom: 22px; }
.formulario { display: grid; gap: 22px; }
.campos { display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.campo { display: grid; gap: 6px; align-content: start; }
.campo--ancho { grid-column: 1 / -1; }
.campo label, .campo legend { font-weight: 700; font-size: 0.9rem; }
.campo label small, .campo__ayuda { font-weight: 500; color: var(--tinta-2); font-size: 0.82rem; }
.campo input[type="text"], .campo select, .campo textarea {
  width: 100%; font: inherit; padding: 0.75em 0.95em; border-radius: 12px; border: 2px solid var(--linea); background: #fff; color: var(--tinta);
}
.campo textarea { min-height: 200px; resize: vertical; line-height: 1.55; }
.campo input:focus, .campo select:focus, .campo textarea:focus { outline: none; border-color: var(--azul); box-shadow: 0 0 0 4px rgba(0, 118, 190, 0.15); }
.campo input[readonly] { background: var(--papel); color: var(--tinta-2); }
.campo__contador { text-align: right; font-size: 0.78rem; color: var(--tinta-2); }
.req { color: #b3261e; }

.zona-subida {
  border: 2.5px dashed #b9c9d4; border-radius: 16px; padding: 28px 20px; text-align: center; background: #f7fbfe; transition: background 0.15s, border-color 0.15s;
}
.zona-subida.sobre, .zona-subida:hover { border-color: var(--azul); background: #eaf5fc; }
.zona-subida b { display: block; font-size: 1.05rem; margin-bottom: 4px; }
.zona-subida p { color: var(--tinta-2); font-size: 0.88rem; margin-bottom: 14px; }
.zona-subida input { display: none; }
.archivos { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 8px; }
.archivo {
  display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 10px 12px;
  border: 1.5px solid var(--linea); border-radius: 12px; background: #fff;
}
.archivo--error { border-color: #b3261e; background: #fdf3f2; }
.archivo__icono { width: 44px; height: 44px; border-radius: 10px; background: var(--papel-2); display: grid; place-items: center; overflow: hidden; color: var(--tinta-2); }
.archivo__icono svg { width: 22px; }
.archivo__icono img { width: 100%; height: 100%; object-fit: cover; }
.archivo__nombre { font-weight: 700; font-size: 0.92rem; overflow-wrap: anywhere; line-height: 1.3; }
.archivo__meta { font-size: 0.78rem; color: var(--tinta-2); }
.archivo__meta .mal { color: #b3261e; font-weight: 600; }
.archivo__acciones { display: flex; align-items: center; gap: 8px; }
.portada-radio { display: inline-flex; align-items: center; gap: 0.4em; font-size: 0.78rem; font-weight: 600; cursor: pointer; white-space: nowrap; }
.archivo__quitar { width: 34px; height: 34px; border-radius: 8px; border: 0; background: transparent; display: grid; place-items: center; color: var(--tinta-2); }
.archivo__quitar:hover { background: #fdecea; color: #b3261e; }
.archivo__quitar svg { width: 18px; }
progress { width: 100%; height: 8px; border-radius: 4px; accent-color: var(--azul); margin-top: 4px; }

.interruptor { display: flex; align-items: center; gap: 12px; cursor: pointer; font-weight: 700; }
.interruptor input { appearance: none; width: 48px; height: 28px; border-radius: 999px; background: #c2ccd3; position: relative; transition: background 0.15s; flex: none; cursor: pointer; }
.interruptor input::after { content: ""; position: absolute; top: 3px; left: 3px; width: 22px; height: 22px; border-radius: 50%; background: #fff; transition: transform 0.15s; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); }
.interruptor input:checked { background: var(--verde-texto); }
.interruptor input:checked::after { transform: translateX(20px); }
.interruptor small { display: block; font-weight: 500; color: var(--tinta-2); }

.barra-guardar {
  position: sticky; bottom: 0; margin: 28px calc(-1 * var(--gutter)) -96px; padding: 14px var(--gutter);
  background: rgba(245, 242, 234, 0.94); backdrop-filter: blur(8px); border-top: 1px solid var(--linea);
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; z-index: 5;
}
.barra-guardar__mensaje { font-size: 0.88rem; color: var(--tinta-2); }
.barra-guardar__mensaje.mal { color: #b3261e; font-weight: 600; }
.barra-guardar__botones { display: flex; gap: 10px; margin-left: auto; }

/* Diálogos */
dialog.dialogo { border: 0; border-radius: 20px; padding: 28px; width: min(92vw, 440px); box-shadow: var(--sombra-alta); color: var(--tinta); }
dialog.dialogo::backdrop { background: rgba(8, 18, 28, 0.6); }
.dialogo h2 { font-size: 1.3rem; margin-bottom: 10px; }
.dialogo p { color: var(--tinta-2); margin-bottom: 20px; }
.dialogo__botones { display: flex; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }
.dialogo--qr { text-align: center; }
.dialogo--qr svg.qr { width: min(260px, 100%); margin: 0 auto 14px; border-radius: 10px; border: 1px solid var(--linea); }
.dialogo--qr code { display: block; font-size: 0.78rem; word-break: break-all; color: var(--tinta-2); margin-bottom: 18px; }
.dialogo--qr .dialogo__botones { justify-content: center; }

/* Hoja de QR para imprimir */
.hoja-qr { display: none; }
@media print {
  @page { size: A4; margin: 12mm; }
  body.imprimiendo { background: #fff; }
  body.imprimiendo > :not(.hoja-qr) { display: none !important; }
  body.imprimiendo .hoja-qr { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8mm; }
  .qr-tarjeta { break-inside: avoid; border: 1.5px solid #222; border-radius: 4mm; padding: 6mm; text-align: center; display: grid; gap: 3mm; justify-items: center; }
  .qr-tarjeta img { width: 30mm; height: auto; }
  .qr-tarjeta svg { width: 52mm; height: 52mm; }
  .qr-tarjeta b { font-size: 15pt; line-height: 1.15; }
  .qr-tarjeta span { font-size: 10pt; color: #333; }
  .qr-tarjeta small { font-size: 8pt; color: #555; word-break: break-all; }
}
