:root{
  --bg:#0d1016;
  --bg-2:#20252d;
  --surface:#171b22;
  --surface-2:#20252e;
  --surface-soft:#282e38;
  --text:#ffffff;
  --muted:#adb5c1;
  --line:rgba(255,255,255,.10);
  --red:#ed1c24;
  --red-dark:#bd1017;
  --black:#080a0e;
  --shadow:0 20px 55px rgba(0,0,0,.34);
  --radius:20px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:radial-gradient(circle at 78% 2%,rgba(237,28,36,.09),transparent 30%),linear-gradient(145deg,var(--bg) 0%,#171b22 46%,var(--bg-2) 100%);background-attachment:fixed;color:var(--text);font-family:Inter,Arial,sans-serif;min-height:100vh}
button,input,select{font:inherit}.container{width:min(1480px,calc(100% - 42px));margin:auto}
.app-header{position:sticky;top:0;z-index:50;background:rgba(10,12,17,.88);backdrop-filter:blur(18px);border-bottom:1px solid var(--line);box-shadow:0 10px 32px rgba(0,0,0,.22)}
.header-main{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:14px;color:inherit;text-decoration:none}.brand img{width:46px;height:46px;object-fit:contain;filter:drop-shadow(0 8px 12px rgba(237,28,36,.18))}.brand span{display:flex;flex-direction:column}.brand strong{font-size:18px}.brand small{font-size:10px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase}.header-meta{display:flex;align-items:center;gap:18px}.header-meta>div{display:flex;flex-direction:column;text-align:right}.header-meta span{font-size:10px;color:var(--muted)}.header-meta strong{font-size:14px}.top-nav{display:flex;gap:6px;overflow:auto;padding-bottom:10px;scrollbar-width:none}.top-nav::-webkit-scrollbar{display:none}.top-nav a{white-space:nowrap;text-decoration:none;color:#c7ccd5;font-size:12px;font-weight:700;padding:9px 14px;border-radius:999px;transition:.2s}.top-nav a:hover,.top-nav a.active{background:var(--red);color:#fff;box-shadow:0 8px 22px rgba(237,28,36,.22)}
.btn{border:0;border-radius:12px;padding:11px 16px;font:700 12px Inter;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:.2s}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--red);color:#fff;box-shadow:0 10px 24px rgba(237,28,36,.28)}.btn-primary:hover{background:var(--red-dark)}.btn-secondary{background:#11151d;color:#fff;border:1px solid var(--line)}.btn-ghost{background:rgba(255,255,255,.10);color:#fff;border:1px solid rgba(255,255,255,.16)}
main{padding-top:28px}.alert,.data-mode{padding:13px 16px;border-radius:12px;margin-bottom:15px}.alert{background:#5f151a;color:#fff}.data-mode{background:#4f410d;color:#fff3bd}.hidden{display:none!important}
.hero-shell{margin-bottom:18px}.hero-card,.panel,.kpi{background:linear-gradient(155deg,rgba(35,40,49,.96),rgba(20,24,31,.96));border:1px solid var(--line);box-shadow:var(--shadow);border-radius:var(--radius)}.hero-premium{position:relative;min-height:430px;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.48fr);align-items:stretch}.hero-image{position:absolute;inset:0}.hero-image img{width:100%;height:100%;object-fit:cover;object-position:center 43%;filter:saturate(.9) contrast(1.08) brightness(.72)}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,7,11,.96) 0%,rgba(8,11,16,.82) 32%,rgba(9,12,18,.28) 63%,rgba(9,12,18,.62) 100%),linear-gradient(0deg,rgba(8,10,14,.78),transparent 56%)}.hero-brand-mark{position:absolute;left:44px;top:42px;width:170px;height:230px;opacity:.86;display:flex;align-items:center;justify-content:center}.hero-brand-mark:after{content:"";position:absolute;left:51%;top:0;bottom:0;width:9px;background:var(--red)}.hero-brand-mark img{max-width:100%;max-height:100%;object-fit:contain;filter:brightness(0) invert(1);opacity:.36}.hero-copy{position:relative;z-index:2;padding:170px 44px 38px;max-width:740px;display:flex;flex-direction:column;justify-content:flex-end}.eyebrow,.panel-heading span{color:var(--red);font-size:10px;font-weight:800;letter-spacing:.15em}.hero-copy h1{font-size:48px;line-height:1;margin:10px 0 10px;text-transform:uppercase;letter-spacing:-.03em}.hero-copy p,.section-heading p,.modal-header p{color:var(--muted);line-height:1.6}.hero-copy>p{font-size:14px;max-width:620px}.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.hero-meta{display:flex;gap:12px;margin-top:22px}.hero-meta div{min-width:150px;padding:12px 14px;border:1px solid rgba(255,255,255,.13);background:rgba(0,0,0,.28);backdrop-filter:blur(8px);border-radius:12px}.hero-meta span{display:block;font-size:9px;color:#aeb5c1;text-transform:uppercase;letter-spacing:.08em}.hero-meta strong{display:block;font-size:12px;margin-top:5px}.partners-card{position:relative;z-index:3;align-self:center;margin:30px 28px 30px 0;padding:24px;background:rgba(9,12,17,.78);backdrop-filter:blur(13px);border:1px solid rgba(255,255,255,.14);border-radius:18px;box-shadow:0 18px 45px rgba(0,0,0,.34)}.partners-card h2{font-size:17px;line-height:1.35;margin:8px 0 16px}.partners-grid{display:grid;gap:10px}.partner-logo{height:76px;background:#fff;border-radius:12px;display:flex;align-items:center;justify-content:center;padding:10px 16px;overflow:hidden}.partner-logo img{width:100%;height:100%;object-fit:contain}.partner-logo-feac{height:82px}
.kpi-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:13px;margin:18px 0 38px}.kpi{appearance:none;text-align:left;padding:17px;display:flex;gap:12px;align-items:flex-start;cursor:pointer;transition:.22s;color:var(--text)}.kpi:hover{transform:translateY(-4px);border-color:rgba(237,28,36,.55);box-shadow:0 24px 50px rgba(0,0,0,.42)}.kpi-icon{min-width:39px;height:39px;border-radius:12px;background:linear-gradient(145deg,#8d171c,#431014);color:#fff;display:grid;place-items:center;font-weight:900;border:1px solid rgba(237,28,36,.28)}.kpi>span:last-child{display:flex;flex-direction:column;min-width:0}.kpi span span{font-size:10px;color:var(--muted)}.kpi strong{font-size:21px;margin:4px 0;color:#fff}.kpi small{font-size:9px;color:#8f98a8;line-height:1.35}
.section{scroll-margin-top:126px;margin:0 0 48px}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:16px}.section-heading h2{font-size:29px;margin:5px 0;color:#fff}.section-heading p{margin:0}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.align-start{align-items:start}.panel{padding:20px;min-width:0}.panel.wide{margin-top:18px}.panel-heading{display:flex;justify-content:space-between;margin-bottom:14px}.panel-heading h3{font-size:17px;margin:5px 0;color:#fff}.chart-wrap{height:320px}.chart-wrap.tall{height:390px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:13px;background:rgba(0,0,0,.13)}.data-table{width:100%;border-collapse:collapse;font-size:12px}.data-table th{position:sticky;top:0;background:#222731;color:#d9dde5;text-align:left;padding:12px;font-size:9px;text-transform:uppercase;letter-spacing:.06em}.data-table td{padding:12px;border-top:1px solid var(--line);vertical-align:top;color:#f1f3f5}.data-table tbody tr:hover{background:rgba(237,28,36,.08)}.status{display:inline-flex;padding:5px 9px;border-radius:999px;background:#343b46;color:#d8dde5;font-size:10px;font-weight:700}.status.ok,.status.fechado,.status.concluido{background:#143d27;color:#7fe2a6}.status.critico,.status.atrasado,.status.pendente{background:#541d22;color:#ff9da2}
.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.photo{position:relative;min-height:180px;border:0;border-radius:14px;overflow:hidden;background:#222831;cursor:zoom-in;padding:0}.photo img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;transition:.35s}.photo:hover img{transform:scale(1.055)}.photo span{position:absolute;left:0;right:0;bottom:0;padding:28px 13px 12px;background:linear-gradient(transparent,rgba(0,0,0,.82));color:#fff;font-size:12px;font-weight:700;text-align:left}.layout-card{height:335px;background:#222831 center/cover no-repeat;border-radius:14px;display:flex;align-items:end;overflow:hidden}.layout-card a{width:100%;padding:18px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.86));text-decoration:none;font-weight:700}.layout-card>span{padding:20px;color:var(--muted)}
footer{padding:22px 0 38px;display:flex;justify-content:space-between;color:var(--muted);font-size:11px}.loading{position:fixed;inset:0;z-index:100;background:rgba(9,11,16,.94);display:flex;flex-direction:column;gap:12px;align-items:center;justify-content:center;color:#fff}.spinner{width:34px;height:34px;border:3px solid #343a44;border-top-color:var(--red);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.icon-btn{width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:#272d37;color:#fff;font-size:25px;cursor:pointer}.lightbox{position:fixed;inset:0;z-index:120;background:rgba(0,0,0,.94);display:none;align-items:center;justify-content:center;flex-direction:column;padding:30px}.lightbox.open{display:flex}.lightbox img{max-width:92vw;max-height:82vh;object-fit:contain}.lightbox p{color:#fff}.lightbox .icon-btn{position:absolute;right:24px;top:20px}.muted,.empty{color:var(--muted)}
@media(max-width:1160px){.hero-premium{grid-template-columns:1fr}.partners-card{align-self:auto;margin:0 28px 28px;max-width:none}.partners-grid{grid-template-columns:repeat(3,1fr)}.kpi-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.container{width:min(100% - 24px,1480px)}.header-main{min-height:68px}.header-meta>div{display:none}.top-nav{padding-bottom:8px}.hero-premium{min-height:0}.hero-image{height:100%}.hero-copy{padding:210px 24px 24px}.hero-copy h1{font-size:34px}.hero-brand-mark{left:24px;top:28px;width:105px;height:150px}.partners-card{margin:0 16px 16px;padding:18px}.partners-grid{grid-template-columns:1fr}.partner-logo{height:68px}.hero-meta{flex-direction:column}.hero-meta div{min-width:0}.kpi-grid{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}.gallery{grid-template-columns:1fr}.chart-wrap{height:280px}footer{flex-direction:column;gap:6px}}
@media(max-width:430px){.brand span{display:none}.kpi-grid{grid-template-columns:1fr}.hero-actions .btn{width:100%}.hero-copy{padding-top:185px}.hero-copy h1{font-size:29px}.section-heading h2{font-size:25px}}

/* Carrossel automático da imagem de capa — não altera o layout */
.hero-image .hero-slide{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 43%;
  filter:saturate(.9) contrast(1.08) brightness(.72);
  opacity:0;
  transition:opacity 1s ease-in-out;
}
.hero-image .hero-slide.active{opacity:1}

/* Botão de relatório ao final do dashboard */
.pdf-export-section{margin:8px 0 26px}
.pdf-export-card{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 26px;background:linear-gradient(145deg,rgba(35,40,49,.96),rgba(20,24,31,.96));border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.pdf-export-card h2{margin:5px 0 5px;font-size:21px;color:#fff}
.pdf-export-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}
.pdf-export-btn{min-width:190px;white-space:nowrap}
.pdf-export-btn:disabled{opacity:.65;cursor:wait;transform:none}
@media(max-width:760px){.pdf-export-card{align-items:flex-start;flex-direction:column}.pdf-export-btn{width:100%}}

/* Versão de impressão usada pelo botão "Gerar PDF do dia"
   Organizada para A4 paisagem, sem alterar o dashboard exibido na tela. */
@media print{
  @page{size:A4 landscape;margin:7mm}
  *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  html,body{background:#11151d!important;margin:0!important;padding:0!important}
  body{font-size:10px!important}

  /* Elementos de navegação/ação não fazem parte do relatório */
  .app-header,.pdf-export-section,.loading,.lightbox,.pdf-viewer-modal{display:none!important}

  .container{width:100%!important;max-width:none!important;margin:0!important;padding:0!important}
  main{padding:0!important}
  .alert,.data-mode{display:none!important}

  /* Capa + indicadores formam a primeira página */
  .hero-shell{margin:0 0 5mm!important;break-inside:avoid!important;page-break-inside:avoid!important}
  .hero-premium{
    min-height:112mm!important;
    height:112mm!important;
    grid-template-columns:minmax(0,1.45fr) minmax(220px,.48fr)!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important
  }
  .hero-copy{padding:42mm 9mm 8mm!important}
  .hero-copy h1{font-size:30px!important}
  .hero-brand-mark{left:9mm!important;top:8mm!important;width:34mm!important;height:46mm!important}
  .partners-card{margin:7mm 7mm 7mm 0!important;padding:5mm!important}
  .partner-logo{height:16mm!important}
  .partner-logo-feac{height:18mm!important}
  .hero-meta{margin-top:4mm!important}
  .hero-actions{display:none!important}

  .kpi-grid{
    grid-template-columns:repeat(6,1fr)!important;
    gap:3mm!important;
    margin:0!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
    break-after:page!important;
    page-break-after:always!important
  }
  .kpi{padding:4mm!important;min-height:25mm!important}
  .kpi-icon{min-width:8mm!important;width:8mm!important;height:8mm!important}
  .kpi strong{font-size:16px!important}

  /* Cada bloco principal começa de forma previsível */
  .section{
    scroll-margin-top:0!important;
    margin:0!important;
    padding:0!important;
    break-before:page!important;
    page-break-before:always!important
  }
  .section-heading{margin:0 0 4mm!important}
  .section-heading h2{font-size:22px!important;margin:1mm 0!important}
  .section-heading p{line-height:1.3!important}

  .panel,.hero-card,.partners-card,.photo,.layout-card,.table-wrap{
    break-inside:avoid!important;
    page-break-inside:avoid!important
  }
  .panel{padding:5mm!important}
  .panel-heading{margin-bottom:3mm!important}
  .panel-heading h3{font-size:15px!important;margin:1mm 0!important}

  /* Avanço físico: dois gráficos na primeira folha e Curva S em folha própria */
  #avanco .grid-2{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:5mm!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
    break-after:page!important;
    page-break-after:always!important
  }
  #avanco .panel.wide{
    margin:0!important;
    break-before:page!important;
    page-break-before:always!important
  }

  /* Demais grids permanecem alinhados em duas colunas */
  .grid-2{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:5mm!important;
    align-items:start!important
  }

  /* Alturas controladas para Chart.js no PDF */
  .chart-wrap{height:118mm!important;min-height:118mm!important}
  #avanco .grid-2 .chart-wrap{height:118mm!important;min-height:118mm!important}
  #chart-scurve{max-height:145mm!important}
  .chart-wrap.tall{height:145mm!important;min-height:145mm!important}

  /* Tabelas: sem barras internas e sem cortes de linhas */
  .table-wrap{overflow:visible!important;max-height:none!important}
  .data-table{font-size:9px!important}
  .data-table th{position:static!important;padding:2.5mm!important;font-size:7.5px!important}
  .data-table td{padding:2.5mm!important}
  .data-table tr{break-inside:avoid!important;page-break-inside:avoid!important}

  /* Fotos e canteiro */
  .gallery{grid-template-columns:repeat(2,1fr)!important;gap:3mm!important}
  .photo{min-height:48mm!important;height:48mm!important}
  .layout-card{height:118mm!important}

  /* Administrativo: tabela + documentos compactos no relatório */
  #administrativo .project-pdf-panel{margin-top:4mm!important;padding:4mm!important}
  #administrativo .project-pdf-preview{height:42mm!important}
  #administrativo .project-pdf-overlay{padding:10mm 4mm 3mm!important}

  footer{
    padding:4mm 0 0!important;
    margin:0!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important
  }

  /* Uma única imagem estática na capa impressa */
  #hero-image .hero-slide{opacity:0!important;transition:none!important}
  #hero-image .hero-slide.print-active{opacity:1!important}
}



/* Visualização de documentos em PDF */
.project-pdf-panel{margin-top:18px}
.project-pdf-preview{position:relative;width:100%;height:320px;padding:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#0b0f15;cursor:pointer;text-align:left}
.project-pdf-preview img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease}
.project-pdf-preview:hover img{transform:scale(1.015)}
.project-pdf-overlay{position:absolute;left:0;right:0;bottom:0;padding:42px 18px 16px;background:linear-gradient(transparent,rgba(0,0,0,.88));color:#fff;display:flex;flex-direction:column;gap:4px}
.project-pdf-overlay strong{font-size:15px}
.project-pdf-overlay small{font-size:11px;color:#d7dce5}
.pdf-viewer-modal{position:fixed;inset:0;z-index:130;display:none}
.pdf-viewer-modal.open{display:block}
.pdf-viewer-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.82);backdrop-filter:blur(5px)}
.pdf-viewer-card{position:absolute;inset:3vh 3vw;background:#151a22;border:1px solid rgba(255,255,255,.12);border-radius:20px;box-shadow:0 32px 100px rgba(0,0,0,.48);padding:18px;display:flex;flex-direction:column;gap:14px}
.pdf-viewer-header{display:flex;align-items:center;justify-content:space-between;gap:20px}
.pdf-viewer-header h2{margin:4px 0 0;font-size:21px;color:#fff}
.pdf-viewer-actions{display:flex;align-items:center;gap:10px}
.pdf-viewer-card iframe{width:100%;flex:1;min-height:0;border:0;border-radius:12px;background:#fff}
@media(max-width:760px){.project-pdf-preview{height:230px}.pdf-viewer-card{inset:12px;padding:12px}.pdf-viewer-header{align-items:flex-start}.pdf-viewer-actions .btn{display:none}}
@media print{.pdf-viewer-modal{display:none!important}}

/* Tabelas de dados dos gráficos: invisíveis na apresentação, exibidas apenas no PDF. */
.print-chart-data{display:none}

@media print{
  .print-chart-data{
    display:block!important;
    margin-top:3mm!important;
    color:#f5f7fa!important;
  }
  .print-chart-data-title{
    font-size:8px!important;
    font-weight:800!important;
    text-transform:uppercase!important;
    letter-spacing:.08em!important;
    color:#c9ced7!important;
    margin:0 0 1.5mm!important;
  }
  .print-chart-table-wrap{
    overflow:visible!important;
    border:1px solid rgba(255,255,255,.14)!important;
    border-radius:2mm!important;
  }
  .print-chart-table{
    width:100%!important;
    border-collapse:collapse!important;
    table-layout:fixed!important;
    font-size:7.2px!important;
    line-height:1.15!important;
  }
  .print-chart-table th{
    background:#222731!important;
    color:#fff!important;
    font-size:6.8px!important;
    padding:1.4mm 1.2mm!important;
    text-align:center!important;
    border-right:1px solid rgba(255,255,255,.10)!important;
    white-space:normal!important;
  }
  .print-chart-table td{
    color:#f1f3f5!important;
    padding:1.25mm 1.2mm!important;
    text-align:center!important;
    border-top:1px solid rgba(255,255,255,.10)!important;
    border-right:1px solid rgba(255,255,255,.08)!important;
    white-space:nowrap!important;
  }
  .print-chart-table th:first-child,.print-chart-table td:first-child{text-align:left!important}

  /* No relatório, reduz um pouco os canvases para acomodar a tabela completa abaixo. */
  .chart-wrap{height:78mm!important;min-height:78mm!important}
  #avanco .grid-2 .chart-wrap{height:78mm!important;min-height:78mm!important}
  .chart-wrap.tall{height:96mm!important;min-height:96mm!important}
  #chart-scurve{max-height:96mm!important}

  /* O painel gráfico pode continuar unido à respectiva tabela sem ser recortado. */
  .panel:has(.print-chart-data){break-inside:avoid!important;page-break-inside:avoid!important}
}

/* Compactação exclusiva do PDF: toda a seção Avanço físico em uma única página. */
@media print{
  #avanco{
    break-before:page!important;
    page-break-before:always!important;
    break-after:page!important;
    page-break-after:always!important;
  }

  #avanco .section-heading{
    margin:0 0 2mm!important;
  }
  #avanco .section-heading h2{
    font-size:15px!important;
    line-height:1!important;
    margin:.5mm 0!important;
  }
  #avanco .section-heading p{
    font-size:7px!important;
    line-height:1.05!important;
  }

  /* Retira as quebras que antes separavam os gráficos. */
  #avanco .grid-2{
    gap:2.5mm!important;
    margin:0!important;
    break-after:auto!important;
    page-break-after:auto!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }
  #avanco .panel.wide{
    margin-top:2.5mm!important;
    break-before:auto!important;
    page-break-before:auto!important;
  }

  #avanco .panel{
    padding:2.5mm!important;
    border-radius:3mm!important;
  }
  #avanco .panel-heading{
    margin-bottom:1mm!important;
  }
  #avanco .panel-heading span{
    font-size:5.2px!important;
  }
  #avanco .panel-heading h3{
    font-size:9px!important;
    line-height:1!important;
    margin:.5mm 0!important;
  }

  /* Gráficos menores apenas na impressão. */
  #avanco .grid-2 .chart-wrap{
    height:42mm!important;
    min-height:42mm!important;
  }
  #avanco .panel.wide .chart-wrap,
  #avanco #chart-scurve{
    height:46mm!important;
    min-height:46mm!important;
    max-height:46mm!important;
  }

  /* Tabelas de apoio mais compactas para caber junto com os gráficos. */
  #avanco .print-chart-data{
    margin-top:1mm!important;
  }
  #avanco .print-chart-data-title{
    font-size:5.4px!important;
    line-height:1!important;
    margin:0 0 .7mm!important;
  }
  #avanco .print-chart-table{
    font-size:5.2px!important;
    line-height:1!important;
  }
  #avanco .print-chart-table th{
    font-size:4.9px!important;
    line-height:1!important;
    padding:.65mm .45mm!important;
  }
  #avanco .print-chart-table td{
    font-size:5.1px!important;
    line-height:1!important;
    padding:.55mm .4mm!important;
  }
  #avanco .print-chart-table-wrap{
    border-radius:1mm!important;
  }
}


/* AJUSTE FINAL PDF - AVANÇO FÍSICO EM 2 FOLHAS
   1ª folha: Avanço semanal + Avanço acumulado + tabelas
   2ª folha: Curva S + tabela
   Não altera a visualização normal do dashboard. */
@media print {

  /* Começa a seção Avanço Físico em uma nova folha */
  #avanco {
    break-before: page !important;
    page-break-before: always !important;
  }

  /* Primeira folha: dois gráficos lado a lado, com tabelas completas */
  #avanco .grid-2 {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 4mm !important;
    align-items: start !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
    break-after: page !important;
    page-break-after: always !important;
  }

  #avanco .grid-2 .panel {
    padding: 4mm !important;
    margin: 0 !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  #avanco .grid-2 .panel-heading {
    margin-bottom: 2mm !important;
  }

  #avanco .grid-2 .panel-heading h3 {
    font-size: 13px !important;
    line-height: 1.15 !important;
  }

  #avanco .grid-2 .panel-heading span {
    font-size: 7px !important;
  }

  #avanco .grid-2 .chart-wrap {
    height: 82mm !important;
    min-height: 82mm !important;
  }

  /* Tabela impressa de cada gráfico superior */
  #avanco .grid-2 .print-chart-data,
  #avanco .grid-2 .chart-data-table,
  #avanco .grid-2 .print-data-table {
    margin-top: 2mm !important;
    width: 100% !important;
    overflow: visible !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  #avanco .grid-2 table {
    width: 100% !important;
    border-collapse: collapse !important;
    table-layout: fixed !important;
    font-size: 6.8px !important;
  }

  #avanco .grid-2 table th,
  #avanco .grid-2 table td {
    padding: 1.1mm 1mm !important;
    line-height: 1.1 !important;
    white-space: normal !important;
    word-break: break-word !important;
  }

  /* Segunda folha: Curva S isolada com sua tabela completa */
  #avanco .panel.wide {
    margin: 0 !important;
    padding: 4mm !important;
    break-before: page !important;
    page-break-before: always !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  #avanco .panel.wide .panel-heading {
    margin-bottom: 2mm !important;
  }

  #avanco .panel.wide .panel-heading h3 {
    font-size: 14px !important;
    line-height: 1.15 !important;
  }

  #avanco .panel.wide .chart-wrap,
  #avanco .panel.wide .chart-wrap.tall {
    height: 105mm !important;
    min-height: 105mm !important;
  }

  #avanco .panel.wide .print-chart-data,
  #avanco .panel.wide .chart-data-table,
  #avanco .panel.wide .print-data-table {
    margin-top: 3mm !important;
    width: 100% !important;
    overflow: visible !important;
  }

  #avanco .panel.wide table {
    width: 100% !important;
    border-collapse: collapse !important;
    table-layout: fixed !important;
    font-size: 7px !important;
  }

  #avanco .panel.wide table th,
  #avanco .panel.wide table td {
    padding: 1.2mm 1mm !important;
    line-height: 1.1 !important;
    white-space: normal !important;
    word-break: break-word !important;
  }

  /* Evita que uma linha da tabela seja dividida entre páginas */
  #avanco table tr {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  /* Compacta somente o cabeçalho da seção no PDF */
  #avanco > .section-heading {
    margin-bottom: 3mm !important;
  }

  #avanco > .section-heading h2 {
    font-size: 19px !important;
    margin: 0 0 1mm !important;
  }

  #avanco > .section-heading p {
    font-size: 8px !important;
    margin: 0 !important;
  }
}


/* AJUSTE PDF - proporção visual da Curva S */
@media print {
  #avanco .panel.wide {
    padding: 5mm !important;
  }

  #avanco .panel.wide .chart-wrap,
  #avanco .panel.wide .chart-wrap.tall {
    height: 78mm !important;
    min-height: 78mm !important;
    max-height: 78mm !important;
  }

  #avanco .panel.wide canvas,
  #chart-scurve {
    max-height: 78mm !important;
  }

  #avanco .panel.wide .print-chart-data,
  #avanco .panel.wide .chart-data-table,
  #avanco .panel.wide .print-data-table {
    margin-top: 4mm !important;
  }
}


/* Curva S + quadro contratual — mesmo padrão de leitura do dashboard de referência */
.curve-contract-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(420px,.95fr);gap:18px;align-items:stretch;margin-top:18px}
.curve-contract-grid .panel{margin:0;min-width:0}
.contract-progress-wrap{max-height:390px;overflow:auto}
.contract-progress-table{width:100%;border-collapse:collapse;font-size:12px}
.contract-progress-table th,.contract-progress-table td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:14px 12px;text-align:left;white-space:nowrap}
.contract-progress-table th:last-child,.contract-progress-table td:last-child{border-right:0}
.contract-progress-table thead th{position:sticky;top:0;z-index:2;background:#222936;color:#d9dde5;text-transform:uppercase;font-size:10px;letter-spacing:.04em}
.contract-progress-table thead tr:first-child th{text-align:center;color:#f1f3f7}
.contract-progress-table thead tr:first-child th:first-child{text-align:left}
.contract-progress-table tbody td{color:#d9dde5;font-weight:600}
.contract-progress-table tbody td:first-child{font-weight:700}
.contract-progress-table .deviation-positive{color:#f5f5f5}
.contract-progress-table .deviation-negative{color:#ff8b91}
.contract-progress-table tbody tr:hover{background:rgba(255,255,255,.025)}
@media(max-width:1100px){.curve-contract-grid{grid-template-columns:1fr}.contract-progress-wrap{max-height:330px}}

@media print{
  /* O relatório já possui a tabela completa de dados da Curva S; evita duplicação no PDF. */
  .curve-contract-grid{display:block!important;margin:0!important}
  .curve-contract-grid .contract-panel{display:none!important}
}


/* PADRONIZAÇÃO VISUAL DOS GRÁFICOS SCIC COM REFERÊNCIA AVENIDA
   Mantém dados, layout geral e integração da planilha. */
.chart-wrap canvas{
  filter:none;
}

/* Tabela contratual no padrão visual escuro */
.contractual-table-wrap{
  background:transparent;
}
.contractual-table{
  width:100%;
  border-collapse:collapse;
}
.contractual-table th,
.contractual-table td{
  border-color:rgba(255,255,255,.08);
}
.contractual-table thead th{
  background:#232a36;
  color:#d9e1ef;
  font-weight:800;
}
.contractual-table tbody td{
  color:#eef2f7;
}
.contractual-table tbody tr:hover{
  background:rgba(255,255,255,.025);
}

/* Apenas no PDF: mantém legibilidade das tabelas e rótulos */
@media print{
  #avanco .panel-heading h3{
    font-weight:800!important;
  }
  #avanco .chart-wrap{
    overflow:visible!important;
  }
}


/* Ajustes finais solicitados em 27/08 — sem alterar demais áreas */
#chart-weekly,#chart-cumulative,#chart-scurve,#chart-fin-weekly{
  max-width:100%!important;
}


/* =========================================================
   PDF LIMPO — sem tabelas auxiliares dos gráficos
   Mantém somente gráficos e tabelas originais do dashboard.
   ========================================================= */
@media print {
  .print-chart-data,
  .print-chart-data-title,
  .print-chart-table-wrap,
  .print-chart-table {
    display:none !important;
  }

  /* Cancela regras antigas ligadas às tabelas auxiliares. */
  .panel:has(.print-chart-data){
    break-inside:auto !important;
    page-break-inside:auto !important;
  }

  /* Gráficos: mais espaço útil e proporção legível no PDF. */
  .chart-wrap{
    height:112mm !important;
    min-height:112mm !important;
    overflow:visible !important;
  }

  #avanco .grid-2 .chart-wrap{
    height:105mm !important;
    min-height:105mm !important;
  }

  #avanco .panel.wide .chart-wrap,
  #avanco .panel.wide .chart-wrap.tall{
    height:112mm !important;
    min-height:112mm !important;
    max-height:112mm !important;
  }

  #financeiro .chart-wrap{
    height:108mm !important;
    min-height:108mm !important;
  }

  /* Tabelas originais: sem rolagem e com texto legível. */
  .table-wrap{
    overflow:visible !important;
    max-height:none !important;
  }

  .data-table,
  .contract-progress-table{
    width:100% !important;
    table-layout:auto !important;
    font-size:8.5px !important;
  }

  .data-table th,
  .data-table td,
  .contract-progress-table th,
  .contract-progress-table td{
    padding:2.2mm 2mm !important;
    line-height:1.2 !important;
    white-space:normal !important;
  }

  .data-table tr,
  .contract-progress-table tr{
    break-inside:avoid !important;
    page-break-inside:avoid !important;
  }

  /* Cards/painéis não devem criar vazios desnecessários. */
  .panel{
    break-inside:avoid !important;
    page-break-inside:avoid !important;
  }
}
