/*
 * Modelos de currículo (app/Servicos/class.CurriculoModelo.php): a folha A4 (.cm-folha) nos três modelos, a página
 * de impressão (.cm-pagina, com a barra de ações que some na impressão) e as miniaturas da vitrine (.cm-mini).
 */
@page { size: A4; margin: 0; }
.cm-folha { --cm-tinta: #1f2937; --cm-cinza: #5b6474; --cm-cor: #28397f; --cm-fio: #d9dee8;
    box-sizing: border-box; width: 210mm; min-height: 297mm; padding: 16mm 17mm; background: #fff; color: var(--cm-tinta);
    font: 10.5pt/1.5 'Nunito Sans', 'Segoe UI', Arial, sans-serif; text-align: left; }
.cm-folha *, .cm-folha *::before, .cm-folha *::after { box-sizing: border-box; }
.cm-folha h1 { margin: 0; font-size: 24pt; line-height: 1.1; font-weight: 800; color: var(--cm-tinta); }
.cm-folha h2 { margin: 0 0 6px; font-size: 10pt; letter-spacing: .08em; text-transform: uppercase; color: var(--cm-cor); font-weight: 800; }
.cm-folha p { margin: 0 0 4px; }
.cm-folha ul { margin: 0; padding-left: 16px; }
.cm-folha li { margin: 0 0 2px; }
html body .cm-folha .cm-titulo { font-size: 12pt; color: var(--cm-cor); font-weight: 700; margin-top: 2px !important; }
html body .cm-folha .cm-contatos { color: var(--cm-cinza); font-size: 9.5pt; margin-top: 6px !important; }
html body .cm-folha .cm-cargos { color: var(--cm-cinza); font-size: 9.5pt; }
.cm-secao { margin-top: 14px; break-inside: avoid-page; }
.cm-item { margin-bottom: 9px; break-inside: avoid; }
.cm-item-topo { display: flex; justify-content: space-between; gap: 12px; margin: 0 !important; }
.cm-item-topo span { color: var(--cm-cinza); font-size: 9.5pt; white-space: nowrap; }
html body .cm-folha .cm-item-sub { color: var(--cm-cinza); margin: 0 0 2px !important; }
.cm-foto { width: 26mm; height: 26mm; object-fit: cover; border-radius: 50%; }
.cm-cabeca { display: flex; align-items: center; gap: 14px; }

/* a folha não herda o estilo da página em que aparece (miniaturas da vitrine dentro do site) */
html body .cm-folha h1, html body .cm-folha h2 { font-family: 'Nunito Sans', 'Segoe UI', Arial, sans-serif; line-height: 1.2; }
html body .cm-folha h1 { font-size: 24pt; font-weight: 800; color: var(--cm-tinta); margin: 0; }
html body .cm-folha h2 { font-size: 10pt; font-weight: 800; color: var(--cm-cor); margin: 0 0 6px; }
html body .cm-folha p { color: inherit; font-size: inherit; line-height: inherit; max-width: none; }
html body .cm-folha ul { list-style: disc; display: block; margin: 0; padding: 0 0 0 16px; }
html body .cm-folha li { display: list-item; margin: 0 0 2px; padding: 0; border: 0; background: none; box-shadow: none; min-height: 0; border-radius: 0; font: inherit; color: inherit; }

/* Clássico: títulos em serifa, linha fina sob o cabeçalho */
html body .cm-classico h1 { font-family: 'Lora', Georgia, serif; font-weight: 700; }
.cm-classico .cm-cabeca { padding-bottom: 12px; border-bottom: 2px solid var(--cm-tinta); }
html body .cm-classico h2 { color: var(--cm-tinta); border-bottom: 1px solid var(--cm-fio); padding-bottom: 3px; }

/* Moderno: coluna lateral colorida */
.cm-moderno { display: grid; grid-template-columns: 66mm minmax(0, 1fr); padding: 0; }
.cm-moderno .cm-lado { background: #28397f; color: #fff; padding: 16mm 8mm 12mm 10mm; }
html body .cm-moderno .cm-lado h1 { color: #fff; font-size: 19pt; }
html body .cm-moderno .cm-lado .cm-titulo { color: #fec345; }
html body .cm-moderno .cm-lado h2 { color: #fec345; }
html body .cm-moderno .cm-lado ul { list-style: none; padding: 0; }
.cm-moderno .cm-lado li { margin-bottom: 4px; overflow-wrap: anywhere; }
.cm-moderno .cm-lado .cm-foto { display: block; margin: 0 0 10px; border: 3px solid #fec345; }
.cm-moderno .cm-corpo { padding: 14mm 13mm 12mm 11mm; }
.cm-moderno .cm-corpo .cm-secao:first-child { margin-top: 0; }
.cm-moderno .cm-corpo h2 { border-left: 4px solid #fec345; padding-left: 7px; }

/* Compacto: margens menores, sem foto, títulos à esquerda */
.cm-compacto { padding: 12mm 14mm; font-size: 10pt; }
html body .cm-compacto h1 { font-size: 20pt; }
.cm-compacto .cm-secao { display: grid; grid-template-columns: 34mm minmax(0, 1fr); gap: 10px; margin-top: 10px; padding-top: 8px; border-top: 1px solid var(--cm-fio); }
html body .cm-compacto h2 { color: var(--cm-tinta); font-size: 9pt; }

/* Página de impressão */
.cm-pagina { margin: 0; background: #e9ecf2; }
.cm-barra { position: sticky; top: 0; z-index: 5; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 10px 16px;
    background: #24325b; color: #fff; font: 600 14px/1.3 'Nunito Sans', Arial, sans-serif; }
.cm-barra a, .cm-barra button { color: #fff; text-decoration: none; }
.cm-barra .cm-modelos { display: flex; gap: 6px; flex-wrap: wrap; }
.cm-barra .cm-modelos a { padding: 6px 12px; border-radius: 99px; border: 1px solid rgba(255, 255, 255, .35); }
.cm-barra .cm-modelos a[aria-current] { background: #fff; color: #24325b; }
.cm-barra button { margin-left: auto; padding: 9px 16px; border: 0; border-radius: 8px; background: #fec345; color: #24325b; font: inherit; font-weight: 800; cursor: pointer; }
.cm-aviso { max-width: 210mm; margin: 12px auto 0; padding: 0 16px; color: #4f5973; font: 13px/1.4 'Nunito Sans', Arial, sans-serif; }
.cm-papel { padding: 16px; overflow-x: auto; }
.cm-papel .cm-folha { margin: 0 auto; box-shadow: 0 4px 20px rgba(0, 0, 0, .15); }
@media print {
    .cm-barra, .cm-aviso { display: none !important; }
    .cm-pagina { background: #fff; }
    .cm-papel { padding: 0; overflow: visible; }
    .cm-papel .cm-folha { box-shadow: none; }
    .cm-moderno .cm-lado { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* Miniaturas da vitrine (a folha inteira, reduzida) */
.cm-mini { position: relative; width: 100%; aspect-ratio: 210 / 297; overflow: hidden; border-radius: 10px; border: 1px solid #dfe3ec; background: #fff; }
.cm-mini .cm-folha { position: absolute; top: 0; left: 0; transform-origin: top left; pointer-events: none; }
