/* ==========================================================================
   PRINT.CSS - Otimizado para Planners e Calendários (A4 / landscape+portrait)
   ========================================================================== */

@media screen {
    .print-container {
        display: none !important;
    }
}

@media print {

    /* 1. Configuração de Página Física */
    @page {
        size: A4;
        margin: 6mm !important;
    }

    @page landscape {
        size: A4 landscape;
        margin: 2mm 4mm !important;
    }

    @page portrait {
        size: A4 portrait;
        margin: 6mm !important;
    }

    .landscape-page {
        page: landscape;
    }

    .portrait-page {
        page: portrait;
    }

    /* 2. Limpeza da Tela */
    body > *:not(.print-container) {
        display: none !important;
    }

    .print-container {
        display: block !important;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        background: #fff !important;
        color: #000 !important;
        margin: 0;
        padding: 0;
    }

    .print-container,
    .print-container * {
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
        text-shadow: none !important;
        box-shadow: none !important;
        transition: none !important;
    }

    /* 3. Tipografia Global */
    .print-container h1,
    .print-container h2,
    .print-container h3,
    .print-container p,
    .print-container span,
    .print-container td,
    .print-container th,
    .print-container div {
        color: #000 !important;
        font-family: Arial, sans-serif !important;
    }

    /* Quebras de Página */
    .pdf-page {
        page-break-after: always;
        break-after: page;
        height: auto !important;
        width: 100% !important;
        padding: 0 !important;
        margin-bottom: 0 !important;
    }

    /* Cores FDS e feriados */
    .print-container .weekend-text,
    .print-container td.weekend-text,
    .print-container th.weekend-text,
    .print-container .holiday-text,
    .print-container span.weekend-text,
    .print-container div.weekend-text {
        color: #d32f2f !important;
    }

    /* =====================================================================
       4. CALENDÁRIO ANUAL (LANDSCAPE - 1 PÁGINA)
       ===================================================================== */
    .annual-pdf-page {
        height: 100vh !important;
        overflow: hidden !important;
        display: flex !important;
        flex-direction: column !important;
        padding: 0 2mm !important;
    }

    .annual-pdf-page .pdf-annual-title {
        font-size: 15pt !important;
        font-weight: bold !important;
        text-align: center !important;
        margin-bottom: 2mm !important;
        padding: 0 !important;
    }

    /* Grid 4×4 dos mini-meses */
    .annual-pdf-page .year-overview-grid {
        display: grid !important;
        grid-template-columns: repeat(4, 1fr) !important;
        gap: 3px !important;
        margin-bottom: 0 !important;
    }

    .annual-pdf-page .year-edge-notes {
        grid-column: span 2 !important;
    }

    /* Mini calendário */
    .annual-pdf-page .month-mini {
        border: 0.5pt solid #999 !important;
        font-size: 7pt !important;
        border-radius: 0 !important;
        overflow: hidden !important;
    }

    .annual-pdf-page .month-mini-header {
        background-color: #eaeaea !important;
        color: #000 !important;
        font-weight: bold !important;
        font-size: 7.5pt !important;
        padding: 1px 2px !important;
        border-bottom: 0.5pt solid #999 !important;
        text-align: center !important;
    }

    .annual-pdf-page .month-mini table {
        width: 100% !important;
        border-collapse: collapse !important;
        table-layout: fixed !important;
        border: none !important;
    }

    .annual-pdf-page .month-mini th,
    .annual-pdf-page .month-mini td {
        border: none !important;
        border-bottom: 0.3pt solid #ccc !important;
        padding: 1px 0 !important;
        text-align: center !important;
        vertical-align: middle !important;
        font-size: 7pt !important;
        line-height: 1.2 !important;
    }

    .annual-pdf-page .month-mini th {
        font-weight: bold !important;
        background-color: #f5f5f5 !important;
        border-bottom: 0.5pt solid #999 !important;
    }

    /* Células vazias antes do dia 1 e depois do último dia — sem borda */
    .annual-pdf-page .month-mini td.mini-empty {
        border: none !important;
    }

    /* Caixa de Observações */
    .annual-pdf-page .annual-notes-box {
        border: 0.5pt solid #999 !important;
        padding: 2px 4px !important;
        font-size: 5.5pt !important;
        line-height: 1.3 !important;
        background-color: #fff !important;
        border-radius: 0 !important;
        height: 100% !important;
    }

    .annual-pdf-page .annual-notes-title {
        font-weight: bold !important;
        font-size: 6.5pt !important;
        margin-bottom: 1px !important;
    }

    .annual-pdf-page .annual-note-item {
        font-size: 5.5pt !important;
        line-height: 1.25 !important;
        margin-bottom: 0.5mm !important;
    }

    /* 4mm entre calendário de meses e linear */
    .annual-pdf-page .annual-linear {
        margin-top: 4mm !important;
    }

    /* Tabela Linear */
    .annual-pdf-page .annual-linear-table {
        width: 100% !important;
        border-collapse: collapse !important;
        table-layout: fixed !important;
        font-size: 7pt !important;
    }

    .annual-pdf-page .annual-linear-table th,
    .annual-pdf-page .annual-linear-table td {
        border: 0.3pt solid #bbb !important;
        padding: 1px 1px !important;
        text-align: center !important;
        vertical-align: middle !important;
        font-size: 7pt !important;
        line-height: 1.2 !important;
    }

    .annual-pdf-page .annual-linear-table thead th {
        background-color: #f0f0f0 !important;
        font-weight: bold !important;
    }

    .annual-pdf-page .annual-linear-table tbody th {
        font-weight: bold !important;
        text-align: left !important;
        padding-left: 2px !important;
    }

    /* =====================================================================
       5. CALENDÁRIO MENSAL EM GRID (PORTRAIT)
       ===================================================================== */

    /* Layout flex para conter header + grid + rodapé sem overflow */
    .print-container .month-planner.pdf-page {
        display: flex !important;
        flex-direction: column !important;
        height: 100vh !important;
        overflow: hidden !important;
    }

    .print-container .planner-header {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        background-color: #eaeaea !important;
        color: #000 !important;
        font-weight: bold !important;
        padding: 4px 8px !important;
        border: 1pt solid #000 !important;
        border-bottom: none !important;
        font-size: 10pt !important;
        flex-shrink: 0 !important;
    }

    .print-container .planner-header .business-days-label {
        font-weight: normal !important;
        font-size: 8pt !important;
        margin-right: 8px !important;
    }

    .print-container .planner-table {
        width: 100% !important;
        border-collapse: collapse !important;
        table-layout: fixed !important;
        border: 1pt solid #000 !important;
        flex: 1 !important;
        height: auto !important;
    }

    /* Cabeçalho DoW */
    .print-container .planner-table thead th {
        background-color: #eaeaea !important;
        color: #000 !important;
        font-weight: bold !important;
        font-size: 9pt !important;
        font-style: italic !important;
        padding: 3px 2px !important;
        border: 1pt solid #000 !important;
        text-align: center !important;
    }

    /* Linha preta abaixo das linhas N (último turno de cada semana) */
    .print-container .planner-table .lane-last td {
        border-bottom: 1pt solid #000 !important;
    }

    /* Linha preta acima das linhas M (primeiro turno de cada semana) */
    .print-container .planner-table .lane-first td {
        border-top: 1pt solid #000 !important;
    }

    /* Células do grid */
    .print-container .planner-table .planner-lane-row td {
        border-top: 0.3pt solid #ccc !important;
        border-bottom: 0.3pt solid #ccc !important;
        border-left: 1pt solid #000 !important;
        border-right: 1pt solid #000 !important;
        padding: 2px !important;
        text-align: center !important;
        vertical-align: middle !important;
        position: relative !important;
    }

    /* Células vazias (fora do mês): sem bordas — especificidade corrigida */
    .print-container .planner-table .planner-lane-row td.empty-cell {
        border: none !important;
        background-color: transparent !important;
    }

    /* Coluna de turno M/A/T/N */
    .print-container .planner-table .turn-col {
        font-size: 12pt !important;
        font-weight: bold !important;
        text-align: center !important;
        vertical-align: middle !important;
        border-left: 1pt solid #000 !important;
        border-right: 1pt solid #000 !important;
    }

    /* Números do dia no topo-direito da lane M */
    .print-container .planner-table td .day-number,
    .print-container .planner-table th .day-number {
        position: absolute !important;
        top: 1px !important;
        right: 3px !important;
        font-weight: bold !important;
        font-size: 9pt !important;
    }

    /* Rodapé do planner grid */
    .print-container .planner-footer-note {
        text-align: left !important;
        line-height: 1.2 !important;
        margin-top: 3px !important;
        font-size: 6pt !important;
        flex-shrink: 0 !important;
        overflow: hidden !important;
        max-height: 14mm !important;
    }

    /* =====================================================================
       6. CALENDÁRIO MENSAL EM LISTA (PORTRAIT)
       ===================================================================== */
    .print-container .month-list-planner {
        display: flex !important;
        flex-direction: column !important;
        height: 100vh !important;
        overflow: hidden !important;
    }

    /* Cabeçalho: título à esquerda, coluna de dias à direita */
    .print-container .month-list-header {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        background-color: #fff !important;
        color: #000 !important;
        font-weight: bold !important;
        padding: 2mm 2mm !important;
        border: none !important;
        border-bottom: 1pt solid #000 !important;
        flex-shrink: 0 !important;
    }

    .print-container .month-list-title {
        font-size: 16pt !important;
        font-weight: bold !important;
        text-align: left !important;
    }

    /* Coluna direita: total de dias acima, dias úteis abaixo */
    .print-container .month-list-days-col {
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-end !important;
        text-align: right !important;
    }

    .print-container .month-list-total {
        font-size: 12pt !important;
        font-weight: bold !important;
        line-height: 1.2 !important;
        border: none !important;
        padding: 0 !important;
    }

    .print-container .month-list-business {
        font-size: 8pt !important;
        font-weight: normal !important;
        line-height: 1.2 !important;
        border: none !important;
        padding: 0 !important;
    }

    /* Tabela sem bordas verticais */
    .print-container .month-list-table {
        width: 100% !important;
        border-collapse: collapse !important;
        flex: 1 !important;
        table-layout: fixed !important;
        border: none !important;
    }

    /* Linhas com altura equitativa, divisória preta horizontal, sem bordas laterais */
    .print-container .month-list-row td {
        height: calc((100vh - 100px) / 31) !important;
        padding: 0 0 0 4px !important;
        border-bottom: 0.75pt solid #000 !important;
        border-top: none !important;
        border-left: none !important;
        border-right: none !important;
        vertical-align: top !important;
    }

    /* FDS/feriado com fundo cinza */
    .print-container .month-list-row-weekend td,
    .print-container .month-list-row-holiday td {
        background-color: #eaeaea !important;
    }

    /* Número do dia */
    .print-container .month-list-day {
        font-size: 11pt !important;
        font-weight: bold !important;
        line-height: 1.2 !important;
        text-align: left !important;
    }

    /* Dia da semana / feriado */
    .print-container .month-list-meta {
        font-size: 5.5pt !important;
        font-weight: normal !important;
        line-height: 1 !important;
        text-align: left !important;
        color: #333 !important;
    }

    /* Linhas vazias (meses < 31 dias) — sem exibição */
    .print-container .month-list-row-empty {
        display: none !important;
    }

    /* 7. Fix para Imagens */
    img {
        max-width: 100% !important;
        filter: grayscale(100%);
    }
}
