/* ==============================================================
   Relatório DISC — Rhomma Consultoria
   Folha de estilo do documento (A4, 210x297mm)
   ============================================================== */

:root{
  --navy:#0d1b2e; --navy-mid:#152238; --navy-light:#1e3150;
  --gold:#c9a84c; --gold-light:#d4b870; --gold-pale:#e8d49a;
  --white:#ffffff; --off-white:#f0ece4; --paper:#fffdf7;
  --exec:#c0392b; --com:#e6a520; --plan:#2e9c54; --anal:#1f6fb2;
  --muted:#5a6473;
}
*{box-sizing:border-box;margin:0;padding:0}
body{background:#dfe3e8;font-family:"Barlow",sans-serif;color:#1c2430;line-height:1.6;
     -webkit-print-color-adjust:exact;print-color-adjust:exact}
.page{width:210mm;min-height:297mm;margin:14px auto;background:var(--paper);
      box-shadow:0 8px 28px rgba(13,27,46,.18);padding:26mm 20mm;position:relative;overflow:hidden}
h1,h2,h3,.serif{font-family:"Playfair Display",serif}
.cond{font-family:"Barlow Condensed",sans-serif}

/* ---- cabeçalho de seção ---- */
.bar{background:linear-gradient(100deg,var(--navy) 0%,var(--navy-light) 100%);color:#fff;
     padding:16px 26px;border-left:8px solid var(--gold);margin-bottom:26px;border-radius:2px}
.bar h2{font-size:30px;font-weight:500;letter-spacing:.5px;line-height:1.1}
.bar .sub{font-family:"Barlow",sans-serif;color:var(--gold-pale);font-size:12px;
          letter-spacing:3px;text-transform:uppercase;margin-top:4px}

/* ---- rodapé ---- */
.pmark{position:absolute;bottom:14mm;left:20mm;right:20mm;display:flex;justify-content:space-between;
       font-size:11px;color:var(--muted);border-top:1px solid #e3ddd0;padding-top:8px;
       font-family:"Barlow Condensed",sans-serif;letter-spacing:1px}
.brandmini{display:flex;align-items:center;gap:7px;font-weight:600;color:var(--navy)}
.brandmini .dot{width:9px;height:9px;background:var(--gold);border-radius:2px;transform:rotate(45deg)}

/* ---- texto ----
   Justificado com hifenização: sem a hifenização, o justificado abre
   "rios" de espaço em branco no meio das linhas, sobretudo em coluna
   estreita. O lang="pt-BR" no <html> é o que ativa o dicionário. */
p{margin-bottom:12px;font-size:14.5px;color:#26303d;
  text-align:justify;text-justify:inter-word;
  hyphens:auto;-webkit-hyphens:auto;hyphenate-limit-chars:6 3 3}
.lead{font-size:16px;color:#33404f}
strong{color:var(--navy)}
.txt-menor{font-size:13px}
.graf-txt{font-size:13.5px;margin:0}

/* Textos curtos ou em coluna estreita ficam melhor alinhados à
   esquerda: justificar 2 ou 3 linhas só produz buracos. */
.graf-txt,.idx-txt p,.talento-legend,.legend{text-align:left}
.espaco-topo{margin-top:16px}
.espaco-topo-p{margin-top:10px}
.sem-topo{margin-top:0}
.sem-margem{margin:0}
.nota-priv{font-weight:400;color:var(--muted);font-size:12px}

.quote{border-left:4px solid var(--gold);background:#fbf7ec;padding:14px 20px;margin:18px 0;
       font-style:italic;color:#4a4433;border-radius:0 6px 6px 0}
.quote .who{display:block;font-style:normal;font-size:12px;letter-spacing:2px;text-transform:uppercase;
            color:var(--gold);margin-top:6px;font-family:"Barlow Condensed",sans-serif}

/* ---- índices ---- */
.idx{display:grid;grid-template-columns:118px 1fr;gap:18px;align-items:center;margin-bottom:16px}
.idx-chip{background:var(--navy);color:#fff;border-radius:8px;padding:12px 8px;text-align:center;
          border-bottom:4px solid var(--gold)}
.idx-chip .abbr{font-family:"Barlow Condensed",sans-serif;font-size:26px;font-weight:700;
                color:var(--gold-light);line-height:1}
.idx-chip .lab{font-size:11px;color:var(--gold-pale);letter-spacing:1px;text-transform:uppercase;margin:3px 0}
.idx-chip .val{font-size:19px;font-weight:600}
.idx-txt h3{font-size:17px;color:var(--navy);margin-bottom:2px}
.idx-txt p{font-size:13.5px;margin-bottom:0;color:#3a4756}

/* ---- grids ---- */
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px !important}

/* ---- cards de perfil ---- */
.profile-card{border-radius:10px;overflow:hidden;border:1px solid #e5ddcb;background:#fff}
.profile-card .head{padding:10px 14px;color:#fff;font-family:"Barlow Condensed",sans-serif;
                    font-weight:600;letter-spacing:1px;font-size:16px;display:flex;
                    justify-content:space-between;align-items:center}
.profile-card .body{padding:12px 14px}
.profile-card ul{list-style:none;font-size:12.5px;color:#3a4756}
.profile-card li{padding:2px 0;padding-left:14px;position:relative}
.profile-card li::before{content:"";position:absolute;left:0;top:9px;width:5px;height:5px;
                         background:var(--gold);border-radius:50%}
.pc-exec .head{background:var(--exec)} .pc-com .head{background:var(--com)}
.pc-plan .head{background:var(--plan)} .pc-anal .head{background:var(--anal)}

/* ---- tabela ---- */
table.data{width:100%;border-collapse:collapse;margin:10px 0;font-size:13.5px}
table.data th{background:var(--navy);color:var(--gold-pale);font-family:"Barlow Condensed",sans-serif;
              letter-spacing:1px;text-transform:uppercase;font-size:12px;padding:8px 10px;text-align:left}
table.data td{padding:8px 10px;border-bottom:1px solid #ece5d6}
table.data tr:nth-child(even){background:#faf6ec}
.tag{display:inline-block;font-weight:700;color:#fff;border-radius:4px;padding:1px 7px;font-size:12px}

/* ---- destaque ---- */
.callout{background:#fff;color:#26303d;border:1px solid #e7dfca;border-left:4px solid var(--gold);
         border-radius:10px;padding:18px 22px;margin:16px 0;box-shadow:0 4px 16px rgba(13,27,46,.06)}
.callout h3{color:var(--navy);margin-bottom:6px}
.callout p{color:#3a4756;margin-bottom:0;font-size:14px}

h3.sec{color:var(--navy);font-size:18px;margin:18px 0 6px;border-bottom:2px solid var(--gold-pale);
       padding-bottom:4px}

/* ---- gráficos ---- */
.chartbox{background:#fff;border:1px solid #e9e1d0;border-radius:10px;padding:14px;margin:8px 0}
.chartbox .cap{font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:2px;
               font-size:12px;color:var(--muted);text-align:center;margin-bottom:6px}
.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12.5px;margin:10px 0}
.legend span{display:flex;align-items:center;gap:6px}
.legend i{width:12px;height:12px;border-radius:3px;display:inline-block}
.legenda-graf{margin-bottom:12px}
.graf-linha{display:grid;grid-template-columns:250px 1fr;align-items:center;gap:22px}
.graf-linha.com-divisa{border-top:1px dotted #d9cfb6;padding-top:14px;margin-top:14px}
.cerebro-box{max-width:430px;margin:0 auto}
/* regra única: largura + centralização + respiro antes do texto seguinte */
.mapa-box{max-width:460px;margin:8px auto 36px}

/* ---- dicionário ---- */
.dict{columns:2;column-gap:30px;font-size:13px}
.dict p{break-inside:avoid;margin-bottom:9px;color:#39424f}
.dict b{color:var(--navy)}

/* ---- grade de talentos ---- */
.talent-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px 20px;margin-top:12px;font-size:13px}
.talent-grid .t{display:flex;align-items:center;gap:8px}
.talent-grid .n{width:24px;height:24px;background:var(--navy);color:var(--gold-light);border-radius:50%;
                display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;flex-shrink:0}
.talent-grid .t.on .n{background:var(--gold);color:var(--navy)}
.talent-grid .t.on{font-weight:600;color:var(--navy)}
.talento-legend{display:flex;gap:22px;font-size:12.5px;margin:8px 0 2px}
.talento-legend span{display:flex;align-items:center;gap:7px}
.talento-legend .ld{width:14px;height:14px;border-radius:50%;background:var(--navy-light)}
.talento-legend .ls{width:12px;height:12px;background:#7a1f1a}

/* ---- capa (imagem) ---- */
.cover-img{background:#efe9df url("capa.png") no-repeat top center;background-size:100% auto;
           display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden}
.cover-img .cl-card{margin:0 auto 12mm;width:100%;background:rgba(255,255,255,.92)}
.cover-img .cl-foot{text-align:center}

/* ---- capa ---- */
.cover-light{background:radial-gradient(80% 60% at 88% 8%,rgba(201,168,76,.14),transparent 60%),
             linear-gradient(180deg,var(--paper) 0%,#f6f1e6 100%);
             display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.cover-light::before{content:"";position:absolute;inset:0;
                     background-image:radial-gradient(circle,rgba(13,27,46,.05) 1.4px,transparent 1.4px);
                     background-size:26px 26px;opacity:.5;pointer-events:none}
.cover-top{display:flex;justify-content:space-between;align-items:flex-start}
.cl-logo{height:60px;position:relative;z-index:3}
.cl-tag{text-align:right;font-family:"Barlow Condensed",sans-serif;letter-spacing:3px;font-size:12px;
        color:var(--navy-light);text-transform:uppercase;padding-top:10px;position:relative;z-index:3;line-height:1.5}
.cl-graphic{display:block;margin:14px auto 4px;width:100%;max-width:430px;height:auto;z-index:2;position:relative}
.cl-mid{position:relative;z-index:3;margin-top:26px}
.cover-kicker{font-family:"Barlow Condensed",sans-serif;letter-spacing:6px;text-transform:uppercase;
              font-size:15px;margin-bottom:14px;color:var(--gold)}
.cl-mid h1{font-family:"Playfair Display",serif;font-size:54px;line-height:1.04;font-weight:800;
           color:var(--navy);max-width:15ch}
.cl-mid h1 span{color:var(--gold)}
.cover-rule{height:3px;width:120px;background:var(--gold);margin:28px 0;border:none}
.cover-rule.centrado{margin:0 auto 28px}
.cl-card{background:#fff;border:1px solid #e7dfca;border-left:6px solid var(--gold);border-radius:10px;
         padding:20px 26px;max-width:560px;box-shadow:0 10px 30px rgba(13,27,46,.08)}
.cl-card .row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px dashed #e7dfca;font-size:15px}
.cl-card .row:last-child{border-bottom:none}
.cl-card .k{color:var(--muted);font-family:"Barlow Condensed",sans-serif;letter-spacing:1.5px;
            text-transform:uppercase;font-size:13px}
.cl-card .v{font-weight:600;color:var(--navy)}
.cl-foot{position:relative;z-index:3;font-family:"Barlow Condensed",sans-serif;letter-spacing:2px;
         color:var(--navy-light);font-size:12px;text-transform:uppercase}

/* ---- encerramento ---- */
.pagina-fim{justify-content:center;text-align:center}
.fim-bloco{position:relative;z-index:3}
.fim-logo{height:120px;margin-bottom:26px}
.fim-titulo{font-family:"Playfair Display",serif;font-size:36px;font-weight:800;color:var(--navy);
            max-width:20ch;margin:0 auto 20px}
.fim-texto{color:#3a4756;max-width:60ch;margin:0 auto 30px;font-size:15px;text-align:center}
.fim-losangos{display:inline-flex;gap:10px;margin-bottom:26px}
.fim-losangos span{width:14px;height:14px;transform:rotate(45deg);border-radius:2px}
.fim-assinatura{font-family:"Barlow Condensed",sans-serif;letter-spacing:2px;color:var(--navy-light);
                font-size:13px;text-transform:uppercase}
.fim-conf{color:var(--muted)}

/* ==============================================================
   IMPRESSÃO / EXPORTAR PDF
   ==============================================================
   A4 210×297mm. Margens de segurança já garantidas pelo padding
   da .page (20mm laterais, 26mm topo/rodapé) — nenhum texto
   ultrapassa a área segura. Fundos preenchem a página inteira.

   INVARIANTE DO PROJETO — NÃO MUDAR SEM MUDAR JUNTO A NUMERAÇÃO:
   cada <section class="page"> precisa corresponder a EXATAMENTE
   uma página física impressa. A numeração "05 / 12" do rodapé é
   calculada em sections.php contando seções, não páginas físicas
   do PDF. Por isso .page usa altura fixa (297mm) e overflow:hidden
   em vez de height:auto/overflow:visible: se uma seção crescer além
   de 297mm, ela viraria 2 páginas físicas e todos os números do
   rodapé ficariam errados a partir dali (e o próprio rodapé, que é
   position:absolute dentro de .page, pararia de colar no fim real
   da página impressa). Se algum texto ficar comprovadamente maior
   que a página, encurte o texto ou reduza a fonte daquela seção —
   não solte a altura da .page.

   @page zera a margem do navegador. Sem isso, o navegador soma a
   própria margem ao padding de 26mm/20mm da .page e o conteúdo
   transborda, gerando páginas em branco entre as seções.

   No Chrome: Ctrl+P → Destino "Salvar como PDF" →
   Mais configurações → Margens: Nenhuma → Gráficos de plano de fundo: ligado
   ============================================================== */
@page{ size:A4; margin:0 }

@media print{
  body{background:#fff}
  .page{margin:0;box-shadow:none;width:210mm;height:297mm;min-height:297mm;
        page-break-after:always;break-after:page;overflow:hidden;padding:26mm 20mm}
  .page:last-child{page-break-after:auto;break-after:auto}

  /* Evitar cortes de elementos importantes */
  .chartbox,.callout,.profile-card,.idx,.quote,.bar,.grid2,.grid4,.mapa-box,.cerebro-box{break-inside:avoid}
  h3.sec,.talent-grid,table.data{break-inside:avoid}
  .graf-linha{break-inside:avoid}

  /* Gráficos grandes (mapa de talento e cérebro) ampliados para a
     impressão, mas com teto de largura — sem o teto, o cérebro (SVG
     quadrado) viraria ~660mm de altura e estouraria a página. Com o
     talento e as competências agora em páginas próprias, esses tamanhos
     dão folga e centralizam bem. */
  /* mapa no tamanho do navegador (~120mm): com a interpretação e a grade
     das 13 zonas na mesma página, isso garante folga e evita corte, mesmo
     em avaliados com texto de interpretação mais longo. */
  .mapa-box{max-width:120mm;margin:12px auto 16px;height:auto}
  .cerebro-box{max-width:120mm;margin:16px auto;height:auto}
  .chartbox{padding:18px;margin:14px 0}

  /* radar em página própria: pode ser grande e legível, só centralizado.
     (Radar e dicionário agora ficam em páginas separadas na impressão.) */
  .radar-box{max-width:150mm;margin-left:auto;margin-right:auto}

  /* SVG e imagens escalarem corretamente */
  svg{max-width:100%;height:auto;display:block}
  img{max-width:100%;height:auto}

  /* Tabelas em tamanho web (sem compactação) */
  table.data{font-size:13.5px;margin:14px 0}
  table.data td{padding:10px}
  table.data th{padding:10px}

  /* Melhor spacing entre seções */
  .bar{margin-bottom:18px;margin-top:20px;page-break-before:avoid}

  /* Grades DISC (Os 4 fatores) - SEMPRE 4 COLUNAS */
  .grid4{display:grid;grid-template-columns:repeat(4,1fr) !important;gap:16px !important;break-inside:avoid}
  .grid4 .profile-card{break-inside:avoid}

  /* Espaçamento antes de quebra */
  h2,h3{page-break-after:avoid;margin-top:14px}

  /* Evitar viúvas e órfãs em parágrafos */
  p{orphans:3;widows:3}

  /* Cards de perfil com espaço */
  .profile-card{margin-bottom:10px;page-break-inside:avoid}
}

/* Container de rolagem para tabelas largas (só rola se não couber;
   em telas grandes é invisível e não muda nada). */
.tabela-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* ---- tela pequena / celular ----
   IMPORTANTE: usar "screen and" para estas regras NÃO valerem na impressão.
   Sem isso, como a página A4 tem largura ~793px (< 820px), o navegador
   aplicaria as regras de celular também no PDF — quebrando os cards (2x2),
   a capa (layout mobile) e as tabelas. Na impressão vale só o @media print. */
@media screen and (max-width:820px){
  .page{width:auto;min-height:auto;padding:22px}
  .grid2,.graf-linha{grid-template-columns:1fr}
  /* os 4 cards DISC empilham em 2x2 em vez de 4 colunas espremidas */
  .grid4{grid-template-columns:repeat(2,1fr) !important;gap:12px !important}
  .dict{columns:1}
  .cl-mid h1{font-size:38px}
  .talent-grid{grid-template-columns:repeat(2,1fr)}
  .pmark{position:static;margin-top:24px}

  /* títulos de seção proporcionais à tela */
  .bar{padding:13px 18px}
  .bar h2{font-size:22px}
  h3.sec{font-size:16px}
  .fim-titulo{font-size:28px}

  /* a tabela larga (6 colunas) rola de lado dentro do container,
     sem espremer o texto nem estourar a página */
  .tabela-scroll table.data{min-width:520px}

  /* CAPA no mobile: a arte (capa.png) tem conteúdo só até ~66% da altura;
     o terço de baixo é vazio. No A4 a caixa de dados cabe nesse vazio, mas
     na largura de um celular ela subiria e cobriria o título. Então, no
     mobile, saímos do overlay (flex-end) para FLUXO NORMAL: a arte ocupa o
     topo e a caixa vem logo abaixo. O padding-top reserva a altura do
     conteúdo da arte (≈ 66,4% × proporção 1,415 ≈ 94vw). Se um dia a
     capa.png for trocada por outra com proporção/margem diferente, reveja
     este 94vw. */
  .cover-img{display:block;min-height:auto;padding:94vw 0 26px;
             background-size:100% auto;background-position:top center}
  .cover-img .cl-card{margin:0 16px;width:auto;max-width:none}
  .cover-img .cl-foot{margin:16px 16px 0;text-align:center}
  .cover-img .pmark{margin:20px 16px 0}
}

/* ---- celular estreito (só tela, nunca impressão) ---- */
@media screen and (max-width:430px){
  .idx{grid-template-columns:96px 1fr;gap:12px}
  .idx-chip{padding:10px 6px}
  .idx-chip .abbr{font-size:22px}
}
