/* Sistema de impressão partilhado — substitui o antigo downloadPDF()/html2pdf.js.
   Cada botão de imprimir marca só o bloco relevante como .print-area (ver
   imprimirDocumento() em _Layout.cshtml); tudo o resto fica escondido no papel. */

.print-only {
    display: none;
}

@page {
    margin: 16mm 14mm 20mm;
}

@media print {
    body * {
        visibility: hidden;
    }

    .print-area, .print-area * {
        visibility: visible;
    }

    .print-area {
        display: block !important;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        padding: 0;
    }

    .no-print {
        display: none !important;
    }

    .print-only {
        display: block !important;
    }

    /* Letterhead — emblema + nome do clube à esquerda, título/data do
       documento à direita, com uma barra de acento verde/dourado a fechar
       (as cores do clube), tal como uma carta/certificado oficial. */
    .print-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 16px;
        border-bottom: 3px solid #1B8A4A;
        padding-bottom: 14px;
        margin-bottom: 22px;
        position: relative;
    }

        .print-header::after {
            content: "";
            position: absolute;
            left: 0;
            right: 0;
            bottom: -3px;
            height: 3px;
            background: linear-gradient(90deg, #1B8A4A 0%, #F0B429 100%);
        }

        .print-header-brasao {
            width: 54px;
            height: 54px;
            object-fit: contain;
            margin-right: 4px;
        }

        .print-header-texto,
        .print-header-doc {
            display: flex;
            flex-direction: column;
        }

        .print-header-clube {
            font-size: 17px;
            font-weight: 700;
            color: #0B1F4B;
            letter-spacing: 0.01em;
        }

        .print-header-tagline {
            font-size: 11px;
            color: #666;
            text-transform: uppercase;
            letter-spacing: 0.04em;
            margin-top: 2px;
        }

        .print-header-doc {
            text-align: right;
            margin-left: auto;
        }

        .print-header-doc-titulo {
            font-size: 15px;
            font-weight: 700;
            color: #1B8A4A;
            text-transform: uppercase;
            letter-spacing: 0.03em;
        }

        .print-header-doc-data {
            font-size: 11px;
            color: #666;
            margin-top: 2px;
        }

    /* Rodapé oficial — referência de emissão, fixo ao fundo de cada página
       impressa (a maioria dos motores de impressão do browser respeita
       position:fixed dentro de @@media print, repetindo-o em todas as
       páginas do documento). */
    .print-footer {
        position: fixed;
        left: 0;
        right: 0;
        bottom: -12mm;
        display: flex;
        justify-content: space-between;
        gap: 12px;
        border-top: 1px solid #ccc;
        padding-top: 6px;
        font-size: 9.5px;
        color: #888;
    }

        .print-footer-ref {
            flex-shrink: 0;
            font-variant-numeric: tabular-nums;
        }

    /* O resto do site usa um visual "premium" propositadamente escuro/brilhante
       (gradientes, sombras, glow) — óptimo no ecrã, péssimo no papel (gasta tinta,
       ilegível a preto-e-branco). Aqui neutraliza-se tudo dentro do documento a
       imprimir e volta-se a um layout claro, com as cores do clube só como
       acento (cabeçalhos, bordas, títulos) — o "design premium para impressão"
       é isto: limpo, sóbrio, sempre com o cabeçalho do clube (.print-header). */
    .print-area, .print-area * {
        background: transparent !important;
        background-image: none !important;
        box-shadow: none !important;
        text-shadow: none !important;
        color: #111 !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    .print-area {
        background: #fff !important;
    }

    .print-area h2, .print-area h3, .print-area h4 {
        color: #0B1F4B !important;
    }

    .print-area thead,
    .print-area .pricing-header {
        background: #e9f3ec !important;
        color: #0B1F4B !important;
    }

    .print-area table {
        border-collapse: collapse;
        width: 100%;
    }

        .print-area table th,
        .print-area table td {
            border: 1px solid #ccc !important;
        }

    /* CTAs (reservar/adicionar ao carrinho/etc.) não fazem sentido no papel */
    .print-area .buy-btn,
    .print-area .btn-premium,
    .print-area a[role="button"] {
        display: none !important;
    }

    .print-jornada,
    .print-bloco {
        page-break-inside: avoid;
        margin-bottom: 20px;
    }

    /* Comprovante de encomenda — layout de factura/recibo a sério: caixa de
       referência/data/estado lado a lado, tabela de itens, e uma linha de
       total destacada (não é só mais uma linha da tabela). */
    .print-recibo-info {
        display: flex;
        gap: 18px;
        margin-bottom: 18px;
        padding: 12px 16px;
        border: 1px solid #ddd;
        border-radius: 4px;
    }

        .print-recibo-info > div {
            display: flex;
            flex-direction: column;
            flex: 1;
        }

        .print-recibo-info span {
            font-size: 10px;
            text-transform: uppercase;
            letter-spacing: 0.04em;
            color: #888;
            margin-bottom: 2px;
        }

        .print-recibo-info strong {
            font-size: 13px;
            color: #111;
        }

        /* QR de verificação — canto do bloco de info, não disputa espaço com a
           tabela de itens que vem a seguir. */
        .print-recibo-qrcode {
            flex: 0 0 auto;
            width: 74px;
            height: 74px;
            image-rendering: pixelated;
        }

        /* Bilhete — QR maior que o da encomenda de propósito (pedido explícito): é o que
           se aponta ao leitor no portão, vale a pena maior e mais fácil de focar/ler. */
        .print-ticket-qrcode {
            width: 118px;
            height: 118px;
            image-rendering: pixelated;
        }

    .print-recibo-total td {
        font-weight: 700;
        font-size: 14px;
        background: #e9f3ec !important;
        color: #0B1F4B !important;
        border-top: 2px solid #1B8A4A !important;
    }

    .print-recibo-obrigado {
        margin-top: 18px;
        font-size: 11px;
        font-style: italic;
        color: #666;
        text-align: center;
    }

    /* Bilhete impresso — número de bilhete em destaque no topo (como um talão de
       verdade), corpo em duas colunas (dados do jogo/lugar à esquerda, QR grande à
       direita, para não competir por espaço com a tabela de dados). */
    .print-bilhete-numero {
        display: flex;
        align-items: baseline;
        justify-content: space-between;
        padding: 10px 16px;
        margin-bottom: 16px;
        background: #e9f3ec !important;
        border: 1px solid #1B8A4A;
        border-radius: 4px;
    }

        .print-bilhete-numero span {
            font-size: 10px;
            text-transform: uppercase;
            letter-spacing: 0.06em;
            color: #0B1F4B !important;
        }

        .print-bilhete-numero strong {
            font-size: 16px;
            font-weight: 800;
            letter-spacing: 0.03em;
            color: #0B1F4B !important;
            font-variant-numeric: tabular-nums;
        }

    .print-bilhete-corpo {
        display: flex;
        gap: 24px;
        align-items: flex-start;
    }

    .print-bilhete-info {
        flex: 1;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 12px 20px;
    }

        .print-bilhete-info > div {
            display: flex;
            flex-direction: column;
            border-bottom: 1px dashed #ddd;
            padding-bottom: 6px;
        }

        .print-bilhete-info-full {
            grid-column: 1 / -1;
        }

        .print-bilhete-info span {
            font-size: 10px;
            text-transform: uppercase;
            letter-spacing: 0.04em;
            color: #888;
            margin-bottom: 2px;
        }

        .print-bilhete-info strong {
            font-size: 13px;
            color: #111;
        }

    .print-bilhete-qr {
        flex: 0 0 auto;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 6px;
        width: 130px;
    }

        .print-bilhete-qr span {
            font-size: 9px;
            text-align: center;
            color: #888;
        }

    /* Ficha de inscrição de sócio — foto à esquerda, pares rótulo/valor à
       direita, como uma ficha/cartão oficial em vez do formulário do ecrã. */
    .print-ficha-socio {
        display: flex;
        gap: 24px;
        align-items: flex-start;
    }

    .print-ficha-socio-foto img {
        width: 110px;
        height: 130px;
        object-fit: cover;
        border: 1px solid #ccc;
    }

    .print-ficha-socio-dados {
        flex: 1;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 14px 24px;
    }

        .print-ficha-socio-dados > div {
            display: flex;
            flex-direction: column;
            border-bottom: 1px dashed #ddd;
            padding-bottom: 6px;
        }

        .print-ficha-socio-dados span {
            font-size: 10px;
            text-transform: uppercase;
            letter-spacing: 0.04em;
            color: #888;
            margin-bottom: 2px;
        }

        .print-ficha-socio-dados strong {
            font-size: 13px;
            color: #111;
        }
}
