/* AdiantaZap — print.css
   Camada 3: especificação da folha A4 gerada por print-to-PDF
   (window.print() a partir da página pública da proposta).
   Escopo: só @media print. Nada aqui afeta a tela.
   Uso no app:
     1) marque o card da proposta com  class="print-area"
     2) marque tudo que não deve sair no PDF com  class="print-hide"
        (header do app, stepper, aside, toasts, barra fixa, formulário)
     3) botão "Baixar orçamento em PDF" chama  window.print()
   Classes de chrome já escondidas por padrão: .app-header, .stepper,
   .wizard-nav, .app-aside, .toast-stack, .mobile-bar, .wizard-panel.
   Cores em pt para leitura em papel (10.5pt de corpo ≈ 14px). O DS atual
   é o Coinbase light: display Poppins 400 (sem tracking), corpo Inter,
   tudo preto sobre branco.

   Marca d'água: usa o lockup OFICIAL de fundo claro do cliente
   (AdiantaZap-bg-claro.svg — símbolo verde + wordmark em #3A3E3D), porque
   o papel é branco. Copie o arquivo para `Shared/propostazap/assets/`;
   o caminho abaixo é relativo a este CSS. Sem o arquivo, a folha imprime
   sem lockup (falha silenciosa, não quebra o layout).
   Marca d'água: `.print-watermark` só existe no papel. No app real esconda-a
   na tela com `.print-watermark{display:none}` (fora do @media print),
   senão o texto aparece solto no rodapé da página. */

/* ==========================================================================
   DOCUMENTO DE IMPRESSÃO (#printDoc)
   O PDF saía da impressão da página inteira: nav, stepper, rodapé do site e
   metadados do navegador, e só o que estava na etapa atual. Agora existe um
   documento próprio, montado a partir do estado pelo logic.js; aqui ele é o
   ÚNICO elemento visível no papel — o que garante que Ctrl+P dê o mesmo
   resultado do botão.
   ========================================================================== */

#printDoc { display: none; }        /* na tela nunca aparece */

@media print {
  /* esconde tudo e mostra só o documento (funciona com #printDoc aninhado
   * dentro do <main>, que era o furo da versão anterior) */
  body { visibility: hidden !important; }
  #printDoc, #printDoc * { visibility: visible !important; }
  #printDoc {
    display: block !important;
    position: absolute; left: 0; top: 0; width: 100%;
  }

  html, body { background: #FFFFFF !important; }

  #printDoc {
    color: #0A0B0D;
    font-family: var(--font-sans);
    font-size: 10.5pt;
    line-height: 1.45;
  }

  .pd-head {
    display: flex; align-items: flex-start; justify-content: space-between; gap: 12mm;
    padding-bottom: 4mm; border-bottom: 1px solid rgba(10,11,13,.18);
  }
  .pd-lockup { height: 9mm; width: auto; }
  .pd-head-right { text-align: right; }
  .pd-title { font-family: var(--font-display); font-size: 15pt; line-height: 1.1; }
  .pd-sub { font-size: 8.5pt; color: #5B616E; margin-top: 1mm; }

  .pd-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8mm; margin-top: 6mm; }
  .pd-label {
    display: block; font-size: 7.5pt; letter-spacing: .04em; text-transform: uppercase;
    color: #8A919E; margin-bottom: 1mm;
  }
  .pd-strong { font-weight: 600; font-size: 11pt; }
  .pd-muted { font-size: 9pt; color: #5B616E; }

  .pd-table { width: 100%; border-collapse: collapse; margin-top: 7mm; }
  .pd-table th {
    text-align: left; font-size: 8pt; text-transform: uppercase; letter-spacing: .04em;
    color: #8A919E; border-bottom: 1px solid rgba(10,11,13,.25); padding: 0 2mm 2mm 0;
  }
  .pd-table td {
    padding: 2.4mm 2mm 2.4mm 0; border-bottom: 1px solid rgba(10,11,13,.1);
    vertical-align: top; font-size: 10pt;
  }
  .pd-table tr { break-inside: avoid; page-break-inside: avoid; }
  .pd-desc { width: 52%; }
  .pd-num { text-align: right; white-space: nowrap; }

  .pd-totais { margin-top: 5mm; margin-left: auto; width: 78mm; }
  .pd-linha { display: flex; justify-content: space-between; gap: 6mm; padding: 1.6mm 0; font-size: 10pt; }
  .pd-linha.pd-total {
    border-top: 1px solid rgba(10,11,13,.25); margin-top: 1mm; padding-top: 2.5mm;
    font-size: 12pt;
  }

  .pd-obs { margin-top: 6mm; }
  .pd-obs p { margin: 1.5mm 0 0; font-size: 9.5pt; color: #33383D; }

  .pd-pix {
    display: flex; gap: 6mm; align-items: flex-start;
    margin-top: 7mm; padding-top: 5mm; border-top: 1px solid rgba(10,11,13,.18);
  }
  .pd-pix-qr { flex: none; width: 150px; height: 150px; background: #FFFFFF; }
  .pd-pix-qr canvas { display: block; width: 150px; height: 150px; }
  .pd-pix-info { min-width: 0; flex: 1; }
  .pd-code {
    margin-top: 2mm; font-family: ui-monospace, Menlo, Consolas, monospace;
    font-size: 6.6pt; line-height: 1.35; color: #5B616E;
    word-break: break-all; overflow-wrap: anywhere;
  }

  .pd-foot {
    margin-top: 8mm; padding-top: 3mm; border-top: 1px solid rgba(10,11,13,.12);
    font-size: 8pt; color: #8A919E;
  }

  .pd-avoid { break-inside: avoid; page-break-inside: avoid; }
}

/* Tudo abaixo é folha de papel. Este @media print é o ÚNICO escopo válido:
 * qualquer regra de esconder chrome fora daqui vale na TELA e apaga o app
 * (foi o que aconteceu quando estas chaves ficaram desbalanceadas). */
@media print {

  /* ---- página ---- */
  @page{
    size:A4 portrait;
    margin:14mm 12mm 16mm 12mm;
  }

  html, body{
    background:var(--print-paper) !important;
    color:var(--print-ink) !important;
    font-family:var(--font-sans);
    font-size:10.5pt;
    line-height:1.45;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }

  /* ---- esconde o chrome do app ---- */
  .print-hide,
  .app-header,
  .stepper,
  .wizard-nav,
  .app-aside,
  .toast-stack,
  .toast,
  .mobile-bar,
  .wizard-panel:not(.print-area),
  .btn,
  .icon-btn,
  .seg,
  .opt-warn,
  .input,
  .select,
  .textarea,
  nav{
    display:none !important;
  }

  /* ---- a folha ---- */
  .print-area,
  #propostaCard{
    display:block !important;
    width:100%;
    max-width:none;
    margin:0;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    color:var(--print-ink);
  }
  .print-area *,
  #propostaCard *{
    background:transparent !important;
    box-shadow:none !important;
    text-shadow:none !important;
    color:var(--print-ink) !important;
  }

  /* ---- cabeçalho da proposta ---- */
  .print-area .h1,
  .print-area .h2,
  #propostaCard .h1,
  #propostaCard .h2{
    font-family:var(--font-display);
    font-size:15pt;
    line-height:1.2;
    letter-spacing:0;
    font-weight:400;
    margin:0 0 2mm;
  }
  .print-area .h3,
  #propostaCard .h3{ font-family:var(--font-sans); font-size:11pt; font-weight:600; margin:0; }

  /* identidade do prestador: linha única, sem logo colorido */
  .print-brand{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:6mm;
    padding-bottom:3mm;
    margin-bottom:4mm;
    border-bottom:1pt solid var(--print-ink);
  }
  .print-brand__name{ font-family:var(--font-display); font-size:15pt; font-weight:400; letter-spacing:0; }
  .print-brand__meta{ font-size:9pt; }

  /* metadados cliente / endereço em duas colunas */
  .print-meta{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:4mm 6mm;
    margin:0 0 5mm;
  }
  .print-meta dt{
    margin:0 0 1mm;
    font-size:8pt;
    font-weight:600;
    letter-spacing:.12em;
    text-transform:uppercase;
  }
  .print-meta dd{ margin:0; font-size:10.5pt; font-weight:500; }

  /* selo de status em papel: contorno, sem cor */
  .status,
  .chip,
  .badge{
    display:inline-block !important;
    padding:1mm 2.5mm !important;
    border:.5pt solid var(--print-ink) !important;
    border-radius:2mm !important;
    background:transparent !important;
    font-size:8pt !important;
    font-weight:600 !important;
    letter-spacing:.04em;
    text-transform:none;
  }
  .badge-dot{ display:none !important; }

  /* ---- itens ---- */
  .row-item{
    display:flex !important;
    align-items:flex-start;
    justify-content:space-between;
    gap:6mm;
    padding:2.4mm 0 !important;
    border-bottom:.5pt solid var(--print-line) !important;
    break-inside:avoid;
    page-break-inside:avoid;
  }
  .row-item:last-child{ border-bottom:.5pt solid var(--print-line) !important; }
  .row-item__title{ font-size:10.5pt; font-weight:500; }
  .row-item__meta{ font-size:8.5pt; }
  .row-item__value{
    font-size:10.5pt;
    font-weight:600;
    text-align:right;
    min-width:26mm;
    font-variant-numeric:tabular-nums;
  }

  /* ---- total ---- */
  .pix-total{
    display:flex !important;
    justify-content:space-between;
    align-items:baseline;
    gap:6mm;
    margin-top:4mm !important;
    padding-top:3mm !important;
    border-top:1pt solid var(--print-ink) !important;
    break-inside:avoid;
  }
  .pix-total dt{ font-size:9.5pt; }
  .pix-total dd{ font-size:15pt; font-weight:700; letter-spacing:-.01em; margin:0; }

  /* ---- bloco de sinal Pix ---- */
  .pix-block{
    margin-top:5mm !important;
    padding:4mm !important;
    border:.75pt solid var(--print-ink) !important;
    border-radius:3mm !important;
    background:transparent !important;
    break-inside:avoid;
    page-break-inside:avoid;
  }
  .pix-block__top{
    display:flex !important;
    align-items:flex-start;
    justify-content:space-between;
    gap:6mm;
  }
  .pix-block__label{ font-size:8pt !important; letter-spacing:.12em; }
  .pix-block__amount{ font-family:var(--font-display); font-size:17pt !important; font-weight:400; letter-spacing:0; margin:1mm 0 0 !important; }
  .pix-block__rest{ font-size:8.5pt !important; margin:1mm 0 0 !important; }

  /* QR precisa sair impresso com contraste real */
  .pix-qr{
    display:grid !important;
    place-items:center;
    width:30mm !important;
    height:30mm !important;
    border-radius:2mm !important;
    background:#FFFFFF !important;
    border:.5pt solid var(--print-line) !important;
  }
  .pix-qr svg{
    width:26mm !important;
    height:26mm !important;
    color:#000000 !important;
  }

  /* copia-e-cola: mono, quebra em vez de cortar */
  .pix-code{
    display:block !important;
    margin-top:3mm !important;
    padding:2.5mm !important;
    border:.5pt dashed var(--print-ink) !important;
    border-radius:2mm !important;
  }
  .pix-code code{
    display:block !important;
    font-family:var(--font-mono);
    font-size:7.5pt !important;
    line-height:1.4;
    white-space:normal !important;
    word-break:break-all;
    overflow:visible !important;
    text-overflow:clip !important;
  }
  .pix-copy{ display:none !important; }
  .pix-block__hint{ font-size:8pt !important; margin-top:2mm !important; }

  /* ---- observações, prazo e validade ---- */
  .print-notes{
    margin-top:5mm;
    padding-top:3mm;
    border-top:.5pt solid var(--print-line);
    font-size:9pt;
    line-height:1.5;
  }
  .print-notes strong{ font-weight:600; }

  .print-terms{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:4mm;
    margin:4mm 0 0;
  }

  /* ---- marca d'água fixa no pé de cada página ---- */
  .print-watermark{
    display:flex !important;
    position:fixed;
    left:12mm;
    right:12mm;
    bottom:6mm;
    align-items:center;
    justify-content:space-between;
    gap:4mm;
    padding-top:1.5mm;
    border-top:.5pt solid var(--print-line);
    font-size:7.5pt;
    line-height:1.2;
    color:#555555 !important;
  }
  /* lockup oficial de fundo claro (símbolo verde + wordmark escuro) */
  .print-watermark::before{
    content:'';
    flex:none;
    width:26mm;
    height:8.4mm;
    background:url("../assets/AdiantaZap-bg-claro.svg") left center / contain no-repeat;
  }
  /* o mark desenhado em SVG ficou obsoleto com o logo oficial */
  .print-watermark svg{ display:none !important; }
  /* QR do Pix nunca é afetado pela marca d'água: preto puro sobre branco */

  /* ---- rodapé da folha ---- */
  .proposal-footer,
  .print-footer{
    margin-top:8mm;
    padding-top:3mm;
    border-top:.5pt solid var(--print-line);
    font-size:8pt;
    line-height:1.5;
  }

  /* ---- tipografia e quebras ---- */
  h1, h2, h3, h4{ break-after:avoid; page-break-after:avoid; }
  p, li, blockquote{ orphans:3; widows:3; }
  ul, ol{ margin:0; padding-left:5mm; }
  img, svg{ max-width:100%; break-inside:avoid; }
  a{ color:var(--print-ink) !important; text-decoration:none; }
  a[href]::after{ content:none !important; }

  /* nunca imprimir URLs, nem animações */
  *{ animation:none !important; transition:none !important; }
}
