/*
 * Vista de impresión (Archivo → Imprimir) y aspecto de las hojas de papel.
 *
 * Dos partes bien separadas:
 *
 *   1. La página de impresión —barra, panel de opciones y visor paginado— que
 *      solo existe en pantalla y desaparece al imprimir (`@media screen`).
 *   2. El aspecto de las hojas (`.print-sheet` y su contenido), que vale para
 *      los dos medios: la vista previa muestra exactamente el papel que sale de
 *      la impresora. Lo específico del papel —`@page`, saltos de página y
 *      ocultar la interfaz— vive en `print.css`.
 */

/* ---------- Página de impresión (solo pantalla) ---------- */

@media screen {
    /* Por debajo de `.overlay-root` (z-index 100): los menús y los avisos de
       la aplicación siguen viéndose sobre la página de impresión. */
    .printview {
        position: fixed;
        inset: 0;
        z-index: 90;
        display: flex;
        flex-direction: column;
        background: var(--ppt-panel-bg);
        font-family: var(--ppt-font-ui);
        font-size: var(--ppt-font-size-ui);
        color: var(--ppt-text);
        outline: none;
    }

    .printview__bar {
        display: flex;
        align-items: center;
        gap: 12px;
        height: var(--ppt-titlebar-h);
        padding: 0 12px;
        background: var(--ppt-brand);
        color: #FFFFFF;
    }

    .printview__back {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 28px;
        height: 28px;
        border-radius: 50%;
        color: #FFFFFF;
        background: rgba(255, 255, 255, 0.15);
    }

    .printview__back:hover { background: rgba(255, 255, 255, 0.28); }

    .printview__title {
        font-size: 15px;
        font-weight: 600;
    }

    .printview__body {
        flex: 1;
        display: grid;
        grid-template-columns: 320px 1fr;
        min-height: 0;
    }

    .printview__options {
        display: flex;
        flex-direction: column;
        gap: 6px;
        padding: 16px;
        overflow: auto;
        border-right: 1px solid var(--ppt-border);
    }

    .printview__print {
        align-self: flex-start;
        min-width: 120px;
        padding: 8px 18px;
        font-size: 14px;
    }

    .printview__hint {
        margin: 0 0 8px;
        color: var(--ppt-text-muted);
        font-size: var(--ppt-font-size-ui-sm);
    }

    .printview__section {
        margin-top: 10px;
        padding-bottom: 4px;
        border-bottom: 1px solid var(--ppt-border-soft);
        font-weight: 600;
    }

    .printview__checks {
        display: flex;
        flex-direction: column;
        gap: 4px;
        margin-top: 6px;
    }

    .printview__export { align-self: flex-start; }

    .printview__preview {
        position: relative;
        display: flex;
        align-items: flex-start;
        justify-content: center;
        padding: 20px 20px 52px;
        overflow: auto;
        background: var(--ppt-stage-bg);
    }

    .printview__scaler { flex: 0 0 auto; }

    .printview__paper { transform-origin: top left; }

    /* La vista previa es paginada: solo se ve la hoja actual. */
    .print-sheet { display: none; }
    .print-sheet.is-current { display: block; }

    .printview__empty {
        position: absolute;
        top: 50%;
        color: var(--ppt-text-muted);
    }

    .printview__nav {
        position: absolute;
        left: 0;
        right: 0;
        bottom: 10px;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 10px;
        color: var(--ppt-text-2);
    }

    .printview__navbtn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 26px;
        height: 26px;
        border-radius: var(--ppt-radius-sm);
        color: var(--ppt-text-2);
    }

    .printview__navbtn.is-flipped { transform: scaleX(-1); }

    .printview__navbtn:hover:not(:disabled) { background: var(--ppt-hover); }

    .printview__navbtn:disabled { color: var(--ppt-text-disabled); }

    .printview__count { min-width: 70px; text-align: center; }

    .print-sheet { box-shadow: var(--ppt-slide-shadow); }

    /* Escenario oculto donde se compone cada PNG antes de rasterizarlo. */
    .print-offscreen {
        position: fixed;
        left: -20000px;
        top: 0;
        width: 1px;
        height: 1px;
        overflow: hidden;
    }
}

/* ---------- Hojas de papel (pantalla e impresión) ---------- */

.print-root { display: block; }

.print-sheet {
    position: relative;
    overflow: hidden;
    background: #FFFFFF;
    color: #000000;
    font-family: var(--ppt-font-ui);
}

.print-sheet__header,
.print-sheet__footer {
    position: absolute;
    display: flex;
    align-items: center;
    font-size: 9pt;
    color: #595959;
}

.print-sheet__header { justify-content: space-between; }

.print-sheet__footer { justify-content: center; }

.print-slot {
    position: absolute;
    overflow: hidden;
}

/* La sombra del lienzo no se imprime: en papel es una mancha gris. */
.print-slot .slide { box-shadow: none; }

.print-slot.is-framed { outline: 1px solid #000000; }

/* Renglones para anotar del folleto de 3 diapositivas. */
.print-rule {
    position: absolute;
    height: 0;
    border-bottom: 1px solid #BFBFBF;
}

.print-notes__text {
    position: absolute;
    overflow: hidden;
    font-family: var(--ppt-font-slide);
    font-size: 11pt;
    line-height: 1.45;
    white-space: pre-wrap;
}

.print-outline {
    position: absolute;
    overflow: hidden;
}

.print-outline__row {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 11pt;
    line-height: 1.2;
}

.print-outline__row--title { font-weight: 600; }

.print-outline__marker {
    min-width: 20px;
    color: #595959;
}

.print-comments {
    position: absolute;
    overflow: hidden;
    font-size: 11pt;
}

.print-comments__title {
    margin-bottom: 10px;
    font-weight: 600;
}

.print-comments__item {
    margin-bottom: 10px;
    padding-left: 10px;
    border-left: 2px solid #BFBFBF;
}

.print-comments__reply {
    margin-top: 6px;
    padding-left: 14px;
}

.print-comments__author {
    color: #595959;
    font-size: 9pt;
}

/* Modos de color del cuadro de impresión (aproximados con filtros). */
.print-root[data-color="grayscale"] { filter: grayscale(1); }

.print-root[data-color="bw"] { filter: grayscale(1) contrast(2.6) brightness(1.05); }
