/*
    ═══════════════════════════════════════════════════════════════════════════
    REVISIÓN DE DATOS (/revision) — rev-*
    ═══════════════════════════════════════════════════════════════════════════
    Encima del formato homologado de pantalla.css: cabecera, filtros, tira y
    tarjetas son los de siempre; aquí sólo lo propio de la lista revisable
    (fuentes, hallazgos, evidencia, decisión y la lista para autorizar).
    Las variables (--pan-*) salen de pantalla.css.
*/

.rev-pantalla .pan-tira { margin-bottom: 10px; }

/* ── Las fuentes: una franja de botones, desplazable en el teléfono ── */
.rev-fuentes {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 12px;
}

.rev-fuente {
    display: grid;
    grid-template-rows: auto auto auto;
    gap: 2px;
    min-width: 150px;
    max-width: 220px;
    flex: 1 1 150px;
    padding: 8px 12px;
    text-align: left;
    background: var(--pan-papel);
    border: 1px solid var(--pan-linea);
    border-radius: var(--pan-radio);
    box-shadow: var(--pan-sombra-tarjeta);
    cursor: pointer;
    transition: box-shadow .15s ease, transform .15s ease, border-color .15s ease;
    font-family: var(--pan-sans);
    color: var(--pan-tinta);
}

.rev-fuente:hover { box-shadow: 0 6px 18px rgba(12, 39, 64, .12); transform: translateY(-1px); }
.rev-fuente:focus-visible { outline: 2px solid var(--pan-azul); outline-offset: 2px; }
.rev-fuente:disabled { opacity: .7; cursor: wait; }
.rev-fuente-activa { border-color: var(--pan-azul); box-shadow: inset 3px 0 0 var(--pan-azul), var(--pan-sombra-tarjeta); }

.rev-fuente-modulo { font-size: 9px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--pan-tenue); }
.rev-fuente-nombre { font-size: 12.5px; font-weight: 600; line-height: 1.2; }
.rev-fuente-pie { font-size: 10.5px; color: var(--pan-apagado); }

/* ── La ficha de la fuente ── */
/* .pan-tarjeta trae padding y margen 0 con !important (está hecha para rejillas
   a sangre) y no declara fondo: la ficha, que es texto, pone los suyos. */
.rev-ficha { padding: 14px 18px !important; margin: 0 0 12px !important; background: var(--pan-papel); }
.rev-ficha-cab { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.rev-ficha-titulo { margin: 0; font-size: 17px; font-weight: 700; display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.rev-ficha-modulo { font-size: 9.5px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--pan-tenue); }
.rev-ficha-desc { margin: 4px 0 0; font-size: 12.5px; color: var(--pan-apagado); max-width: 90ch; }

.rev-origen { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 6px 18px; margin: 10px 0 0; }
.rev-origen > div { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 6px; font-size: 11.5px; }
.rev-origen dt { color: var(--pan-tenue); font-weight: 600; letter-spacing: .06em; text-transform: uppercase; font-size: 9.5px; padding-top: 2px; }
.rev-origen dd { margin: 0; color: var(--pan-apagado); }

.rev-cifras { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.rev-cifra { display: grid; gap: 1px; min-width: 120px; padding: 6px 10px; border: 1px solid var(--pan-linea); border-radius: 8px; background: var(--pan-fondo); }
.rev-cifra-alerta { border-color: rgba(184, 84, 27, .35); background: rgba(184, 84, 27, .05); }
.rev-cifra-rotulo { font-size: 9px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--pan-tenue); }
.rev-cifra-valor { font-family: var(--pan-mono); font-size: 15px; font-weight: 600; color: var(--pan-tinta); }
.rev-cifra-pie { font-size: 10px; color: var(--pan-apagado); }

.rev-conclusion, .rev-aviso { display: flex; gap: 8px; align-items: flex-start; margin: 10px 0 0; font-size: 12px; color: var(--pan-apagado); }
.rev-conclusion .rzi, .rev-aviso .rzi { font-size: 16px !important; color: var(--pan-ambar); flex: 0 0 auto; }

.rev-sub { margin: 0 0 6px; font-size: 14px; font-weight: 700; display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.rev-contador { font-size: 11px; font-weight: 500; color: var(--pan-tenue); }
.rev-contador-lista { margin: 4px 0 8px; font-size: 11px; color: var(--pan-tenue); }

/* ── Los hallazgos ── */
.rev-hallazgos { display: grid; gap: 8px; margin-bottom: 72px; }

.rev-hallazgo {
    position: relative;
    padding: 10px 14px 10px 18px;
    background: var(--pan-papel);
    border: 1px solid var(--pan-linea);
    border-radius: var(--pan-radio);
    box-shadow: var(--pan-sombra-tarjeta);
}

.rev-hallazgo::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--pan-tenue); border-radius: var(--pan-radio) 0 0 var(--pan-radio); }
.rev-prio-1::before { background: var(--pan-rojo); }
.rev-prio-2::before { background: var(--pan-ambar); }
.rev-prio-3::before { background: var(--pan-tenue); }
.rev-cerrado { opacity: .78; }

.rev-hallazgo-cab { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.rev-punto { width: 9px; height: 9px; border-radius: 50%; background: var(--pan-tenue); flex: 0 0 auto; }
.rev-prio-1 .rev-punto { background: var(--pan-rojo); }
.rev-prio-2 .rev-punto { background: var(--pan-ambar); }
.rev-hallazgo-titulo { margin: 0; font-size: 13.5px; font-weight: 700; flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; }
.rev-monto { font-family: var(--pan-mono); font-size: 12px; color: var(--pan-tinta); }
.rev-fecha { font-size: 11px; color: var(--pan-tenue); }

.rev-estado { font-size: 9.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: 2px 8px; border-radius: 999px; background: var(--pan-fondo); color: var(--pan-apagado); border: 1px solid var(--pan-linea); }
.rev-estado-propuesto { background: rgba(24, 95, 165, .10); color: var(--pan-azul); border-color: transparent; }
.rev-estado-aplicado { background: rgba(28, 138, 90, .12); color: var(--pan-verde); border-color: transparent; }
.rev-estado-descartado { background: rgba(143, 161, 177, .18); color: var(--pan-apagado); border-color: transparent; }
.rev-estado-rechazado { background: rgba(211, 47, 20, .10); color: var(--pan-rojo); border-color: transparent; }

.rev-hallazgo-detalle { margin: 4px 0 0; font-size: 12px; color: var(--pan-apagado); overflow-wrap: anywhere; }

.rev-evidencias { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 2px; font-size: 11.5px; }
.rev-evidencias li { padding-left: 14px; position: relative; color: var(--pan-apagado); overflow-wrap: anywhere; }
.rev-evidencias li::before { content: "·"; position: absolute; left: 4px; color: var(--pan-tenue); }
.rev-evidencias li.rev-ev-si::before { content: "✓"; color: var(--pan-verde); font-size: 10px; left: 2px; }
.rev-evidencias li.rev-ev-no::before { content: "✕"; color: var(--pan-rojo); font-size: 10px; left: 2px; }
.rev-evidencias b { color: var(--pan-tinta); font-weight: 600; }
.rev-evidencias a { color: var(--pan-azul); text-decoration: none; }
.rev-evidencias a:hover { text-decoration: underline; }
.rev-evidencias small { color: var(--pan-tenue); }

.rev-hallazgo-pie { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-top: 8px; font-size: 11.5px; }
.rev-enlace { display: inline-flex; align-items: center; gap: 4px; color: var(--pan-azul); font-weight: 600; text-decoration: none; min-height: 28px; }
.rev-enlace:hover { text-decoration: underline; }
.rev-enlace .rzi { font-size: 15px !important; }
.rev-decision { display: grid; gap: 1px; color: var(--pan-apagado); }
.rev-decision b { color: var(--pan-tinta); }
.rev-decision small { color: var(--pan-tenue); }

/* ── Decidir ── */
.rev-decidir { margin-top: 10px; padding: 10px 12px; border: 1px dashed var(--pan-linea); border-radius: 8px; background: var(--pan-fondo); display: grid; gap: 8px; }
.rev-opciones { border: 0; margin: 0; padding: 0; display: grid; gap: 4px; }
.rev-opciones legend { font-size: 9.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--pan-tenue); padding: 0; margin-bottom: 2px; }
.rev-opcion { display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 2px 8px; align-items: center; font-size: 12.5px; cursor: pointer; min-height: 28px; }
.rev-opcion input { margin: 0; width: 16px; height: 16px; }
.rev-opcion small { grid-column: 2; font-size: 11px; color: var(--pan-tenue); }
.rev-minimos { display: flex; gap: 12px; flex-wrap: wrap; align-items: flex-end; font-size: 11.5px; color: var(--pan-apagado); }
.rev-minimos label { display: grid; gap: 2px; font-weight: 600; }
.rev-minimos input { width: 120px; }
.rev-minimos small { flex-basis: 100%; }
.rev-motivo { display: grid; gap: 3px; font-size: 11.5px; color: var(--pan-apagado); font-weight: 600; }
.rev-motivo textarea { font-weight: 400; resize: vertical; }
.rev-acciones { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 4px; }
.rev-problema { font-size: 11.5px; color: var(--pan-rojo); }

/* ── La lista para autorizar ── */
/* La lista para autorizar se distingue de la ficha por el filete azul del lado
   izquierdo (el marco lo fija .pan-tarjeta). */
.rev-autorizar { box-shadow: inset 3px 0 0 var(--pan-azul), var(--pan-sombra) !important; }
.rev-propuestas { display: grid; gap: 4px; margin: 8px 0; }
.rev-propuesta { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 8px; align-items: start; padding: 6px 8px; border-radius: 6px; background: var(--pan-fondo); font-size: 12px; cursor: pointer; }
.rev-propuesta input { margin: 3px 0 0; width: 16px; height: 16px; }
.rev-propuesta-texto { display: grid; gap: 1px; overflow-wrap: anywhere; }
.rev-propuesta-texto small { color: var(--pan-tenue); }
.rev-simulacion { margin-top: 8px; font-size: 12px; }

.rev-lista { margin: 4px 0 0; padding-left: 18px; font-size: 11.5px; color: var(--pan-apagado); max-height: 220px; overflow: auto; }
.rev-rechazada { color: var(--pan-rojo); }
.rev-resultado { align-items: flex-start; }
.rev-bitacora { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; font-size: 11.5px; color: var(--pan-apagado); }
.rev-bitacora b { color: var(--pan-tinta); font-family: var(--pan-mono); font-weight: 500; }
.rev-mas { display: flex; justify-content: center; padding: 6px; }

.rev-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ── Teléfono ── */
@media (max-width: 1023.98px) {
    .rev-fuentes { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; }
    .rev-fuente { flex: 0 0 170px; scroll-snap-align: start; }
    /* Las barras de prioridad y estado (cuatro y cinco opciones) ocupan el renglón
       entero y sus botones bajan de línea en vez de ensanchar la página; en táctil
       miden 40 px de alto, como el resto de lo que se pulsa. */
    .rev-filtros > .pan-filtro { grid-column: 1 / -1; }   /* la fuente y la búsqueda necesitan el ancho para leerse */
    .rev-filtros > .pan-filtro-estado .rz-selectbutton { display: flex; flex-wrap: wrap; width: 100%; }
    .rev-filtros > .pan-filtro-estado .rz-selectbutton .rz-button { flex: 1 1 auto; min-width: 0; min-height: 40px; justify-content: center; padding-inline: 8px; }
    .rev-filtros .pan-input { height: 40px; font-size: 16px; }   /* 16px: iOS no hace zoom al enfocar */
    .rev-origen > div { grid-template-columns: 1fr; }
    .rev-hallazgo-cab { gap: 6px; }
    .rev-opcion, .rev-propuesta { min-height: 40px; }
    .rev-enlace { min-height: 40px; }
    .rev-acciones .rz-button { min-height: 40px; }
    .rev-minimos input { height: 40px; font-size: 16px; }
    .rev-hallazgos { margin-bottom: 120px; }
}
