/*
 * Becajo — instrumento de consultoría
 *
 * Solo lo que Tailwind no resuelve con clases utilitarias: el comportamiento
 * de impresión y dos ajustes de captura. Ningún color literal: los colores
 * salen de los tokens declarados en la configuración de Tailwind.
 */

/*
 * El guion oculta paneles, secciones y tarjetas con el atributo [hidden]. La
 * regla por omisión del navegador la gana cualquier utilidad de display de
 * Tailwind (flex, grid), así que aquí se le devuelve la última palabra.
 */
[hidden] {
    display: none !important;
}

/* La barra de pestañas se adhiere bajo el encabezado fijo del sitio (4 rem). */
[data-panel] {
    scroll-margin-top: 8rem;
}

/*
 * Llaves de captura.
 *
 * Las pestañas, las letras de riesgo, los tres estados y las cuatro respuestas
 * son teclas físicas: sueltas sobresalen, elegidas se hunden. Es el mismo par
 * de sombras de .rv-extruido-sm —el relieve corto—, porque son piezas de menos
 * de 40 px separadas por 4: el desplazamiento de una tarjeta caería entero
 * sobre la tecla vecina.
 *
 * El hundido lo dispara el propio estado del control (:checked) o el que ya
 * mantiene la pestaña (aria-selected), no una clase que tenga que escribir el
 * guion. Así la tecla se hunde también cuando el avance se restaura desde el
 * almacenamiento, que es cuando se marcan sin que nadie pulse nada.
 *
 * El combinador es ~ y no +: entre el input y su etiqueta hay comentarios de
 * plantilla, y un comentario no es hermano adyacente para el selector.
 */
.rv-opcion {
    box-shadow:
         3px  3px 7px rgba(var(--nm-sombra) / var(--nm-o)),
        -2px -2px 5px rgba(var(--nm-realce) / var(--nm-h));
    transition: box-shadow 0.2s ease, border-color 0.2s ease,
                color 0.2s ease, background-color 0.2s ease;
}

input:checked ~ .rv-opcion {
    box-shadow:
        inset  3px  3px 6px rgba(var(--nm-sombra) / var(--nm-o)),
        inset -2px -2px 4px rgba(var(--nm-realce) / var(--nm-h));
}

/*
 * La pestaña elegida se hunde SIN el realce. Es la única tecla que además se
 * llena de acento, y sobre el oro el blanco del realce —que en pergamino va al
 * 0,95— no se lee como luz sino como un bisel sucio en el canto interior.
 */
.rv-opcion[aria-selected='true'] {
    box-shadow: inset 3px 3px 7px rgba(var(--nm-sombra) / 0.28);
}

/*
 * Alto mínimo de los campos de texto largo. NO se les devuelve el tirador de
 * redimensionado: rivendel.css lo retira en todo el producto (decisión de
 * diseño general) y aquí la excepción sería justo la peor, porque son campos
 * repetidos 75 veces dentro de tarjetas de una rejilla.
 */
[data-campo="hallazgo"],
[data-campo="recomendacion"],
[data-campo="notas"] {
    min-height: 3.5rem;
}

/*
 * Informe impreso.
 *
 * Se retira todo lo que solo sirve para operar la herramienta —encabezado del
 * sitio, pestañas, buscador, filtros, botones de acción y navegación entre
 * dominios— y queda el contenido: identificación, controles evaluados y
 * tablero. La clase .no-imprimir marca esos elementos en las plantillas.
 */
@media print {
    .no-imprimir,
    body > header,
    body > footer {
        display: none !important;
    }

    body {
        background: white;
    }

    /* Sin el encabezado fijo, el relleno superior que lo compensaba sobra. */
    main > div {
        padding-top: 0 !important;
    }

    /* Ni sombras ni fondos de pantalla: tinta desperdiciada. */
    * {
        box-shadow: none !important;
    }

    /* Una tarjeta o una fila partida entre dos hojas es ilegible. */
    article,
    tr {
        break-inside: avoid;
        page-break-inside: avoid;
    }

    h2,
    h3 {
        break-after: avoid;
        page-break-after: avoid;
    }

    /* La tabla del tablero cabe en la hoja en lugar de desplazarse. */
    table {
        min-width: 0 !important;
        font-size: 0.7rem;
    }

    @page {
        margin: 1.5cm;
    }
}
