/* Relatório: usado pela página pública e pelo painel */
:root {
    --roxo:        #a63a99;
    --roxo-escuro: #7a2a71;
    --roxo-suave:  #f7eef6;
    --roxo-fundo:  #2b1f2a;
    --cinza:       #7b7f80;
    --fundo:       #f5f3f6;
    --card:        #ffffff;
    --texto:       #241a23;
    --texto-fraco: #6b6470;
    --borda:       #e6dfe5;
    --ok:          #157347;
    --erro:        #b02a20;
    --d: #d64545;
    --i: #e39b1d;
    --s: #2e9e6b;
    --c: #2f6fd0;
    --raio: 14px;
    --sombra: 0 2px 4px rgba(43,31,42,.04), 0 12px 32px rgba(43,31,42,.08);
    --trans: .2s ease;
}
.ico { flex: none; stroke: currentColor; fill: none; }

/* ---------------------------------------------------------------
   Relatório
   --------------------------------------------------------------- */
.rel-capa {
    background: linear-gradient(135deg, var(--roxo-fundo) 0%, #4a2a46 60%, var(--roxo) 130%);
    color: #fff; border-radius: var(--raio); padding: 36px 32px; margin-bottom: 22px;
    display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: center;
}
.rel-capa h1, .rel-capa h2 { color: #fff; }
.rel-capa__sup { font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; opacity: .8; margin-bottom: 6px; }
.rel-capa__nome { font-size: clamp(1.4rem, 3vw, 2rem); margin-bottom: 4px; }
.rel-capa__meta { opacity: .85; font-size: .92rem; display: flex; gap: 14px; flex-wrap: wrap; }
.rel-capa__perfil { text-align: center; background: rgba(255,255,255,.1); border-radius: 14px; padding: 18px 26px; min-width: 200px; }
.rel-capa__codigo { font-size: 2.6rem; font-weight: 800; letter-spacing: .02em; line-height: 1; }
.rel-capa__perfilnome { font-size: 1.15rem; font-weight: 700; margin-top: 6px; }
.rel-capa__tag { opacity: .85; font-size: .88rem; }

.rel-secao { margin-bottom: 22px; }
.rel-secao__titulo { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.rel-secao__titulo .ico { color: var(--roxo); }
.rel-secao__titulo h2 { margin: 0; }
.rel-secao__intro { color: var(--texto-fraco); margin-bottom: 16px; }

.fatores-chips { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; }
.chip { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: 999px; font-size: .82rem; font-weight: 600; background: #f0ecf0; color: var(--texto); }
.chip__ponto { width: 10px; height: 10px; border-radius: 50%; }

.frase { border-left: 4px solid var(--roxo); padding: 12px 18px; background: var(--roxo-suave); border-radius: 0 10px 10px 0; font-size: 1.05rem; font-weight: 600; color: var(--roxo-escuro); margin-top: 16px; }

.graficos { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.grafico { background: #fff; border-radius: var(--raio); box-shadow: var(--sombra); padding: 20px; }
.grafico h3 { text-align: center; font-size: .95rem; color: var(--texto-fraco); margin-bottom: 8px; }
.grafico canvas { max-height: 320px; }
.grafico__legenda { font-size: .8rem; color: var(--texto-fraco); text-align: center; margin-top: 8px; }

.barras-fatores { display: grid; gap: 12px; }
.barra-fator { display: grid; grid-template-columns: 130px 1fr 52px; gap: 12px; align-items: center; font-size: .92rem; }
.barra-fator__nome { font-weight: 600; }
.barra-fator__trilha { height: 14px; background: #eee9ed; border-radius: 999px; overflow: hidden; position: relative; }
.barra-fator__trilha::after { content: ''; position: absolute; left: 50%; top: 0; bottom: 0; width: 2px; background: rgba(0,0,0,.18); }
.barra-fator__valor { height: 100%; border-radius: 999px; }
.barra-fator__num { text-align: right; font-weight: 700; }

.fator-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.fator-card { border: 1px solid var(--borda); border-radius: 12px; padding: 18px; border-top: 4px solid; }
.fator-card__topo { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin-bottom: 4px; }
.fator-card__nome { font-weight: 700; font-size: 1.05rem; }
.fator-card__nivel { font-size: .8rem; font-weight: 700; padding: 3px 10px; border-radius: 999px; background: #f0ecf0; }
.fator-card__pergunta { font-size: .82rem; color: var(--texto-fraco); margin-bottom: 10px; }
.fator-card p { font-size: .95rem; }
.fator-card__mini { margin-top: 10px; font-size: .85rem; color: var(--texto-fraco); }
.fator-card__mini strong { color: var(--texto); }

.duas-colunas { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.bloco-texto h3 { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.bloco-texto ul { margin: 0; padding-left: 20px; }
.bloco-texto li { margin-bottom: 6px; }
.bloco-texto + .bloco-texto { margin-top: 18px; }

.lista-forcas li::marker { color: var(--ok); }
.lista-atencao li::marker { color: var(--erro); }

.compat-destaque { display: grid; grid-template-columns: auto 1fr; gap: 24px; align-items: center; }
.compat-anel { width: 150px; height: 150px; border-radius: 50%; display: grid; place-items: center; background: conic-gradient(var(--roxo) calc(var(--p) * 1%), #ece6eb 0); position: relative; }
.compat-anel::before { content: ''; position: absolute; inset: 14px; background: #fff; border-radius: 50%; }
.compat-anel__num { position: relative; font-size: 2rem; font-weight: 800; color: var(--roxo-escuro); line-height: 1; }
.compat-anel__faixa { position: relative; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--texto-fraco); margin-top: 4px; text-align: center; padding: 0 10px; }
.compat-texto h3 { margin-bottom: 4px; }
.compat-texto .lacunas { margin: 10px 0 0; padding-left: 18px; font-size: .93rem; color: var(--texto-fraco); }

.ranking { display: grid; gap: 10px; }
.ranking__item { display: grid; grid-template-columns: 28px 1fr 60px; gap: 12px; align-items: center; font-size: .95rem; }
.ranking__pos { font-weight: 800; color: var(--texto-fraco); }
.ranking__nome { display: flex; flex-direction: column; }
.ranking__nome small { color: var(--texto-fraco); font-size: .8rem; }
.ranking__barra { height: 8px; background: #eee9ed; border-radius: 999px; overflow: hidden; margin-top: 4px; }
.ranking__barra span { display: block; height: 100%; background: var(--roxo); border-radius: 999px; }
.ranking__pct { text-align: right; font-weight: 700; }
.ranking__item.is-destaque .ranking__pos { color: var(--roxo); }

.adaptacao__indice { display: inline-flex; align-items: center; gap: 8px; margin-top: 8px; font-size: .9rem; color: var(--texto-fraco); }
.adaptacao__lista { margin: 12px 0 0; padding-left: 20px; }
.adaptacao__lista li { margin-bottom: 8px; }

.rel-acoes { display: flex; gap: 12px; flex-wrap: wrap; margin: 26px 0; }

.rel-legal { font-size: .85rem; color: var(--texto-fraco); border-top: 1px solid var(--borda); padding-top: 16px; }

@media (max-width: 800px) {
    .rel-capa { grid-template-columns: 1fr; }
    .graficos, .fator-cards, .duas-colunas { grid-template-columns: 1fr; }
    .compat-destaque { grid-template-columns: 1fr; justify-items: center; text-align: center; }
    .compat-texto .lacunas { text-align: left; }
    .barra-fator { grid-template-columns: 100px 1fr 46px; }
}

/* ---------------------------------------------------------------
   Impressão (Salvar como PDF)
   --------------------------------------------------------------- */
@media print {
    body { background: #fff; font-size: 12.5px; }
    .topo, .rodape, .rel-acoes, .no-print { display: none !important; }
    .pagina { max-width: none; padding: 0; }
    .card, .grafico { box-shadow: none; border: 1px solid #ddd; break-inside: avoid; }
    .rel-capa { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    .rel-secao { break-inside: avoid; }
    .graficos { grid-template-columns: 1fr 1fr; }
    .fator-cards { grid-template-columns: 1fr 1fr; }
    .compat-anel, .barra-fator__valor, .ranking__barra span, .chip__ponto, .fator-card { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    a { color: inherit; }
}

/* ---------------------------------------------------------------
   Multimodal: personalidade, interesses e afinidade composta
   --------------------------------------------------------------- */
.indicacao { display: grid; grid-template-columns: auto 1fr; gap: 24px; align-items: center; padding: 22px; border-radius: 14px; background: linear-gradient(135deg, var(--roxo-suave), #fff); border: 1px solid #e6c9e2; margin-bottom: 22px; }
.indicacao__rotulo { font-size: .76rem; letter-spacing: .1em; text-transform: uppercase; color: var(--roxo-escuro); font-weight: 700; margin-bottom: 4px; }
.indicacao h3 { font-size: 1.35rem; margin-bottom: 6px; }
.indicacao p { font-size: .95rem; }

.componentes { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.componente { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; background: #fff; border: 1px solid var(--borda); font-size: .8rem; }
.componente strong { font-weight: 800; }
.componente__ponto { width: 8px; height: 8px; border-radius: 50%; }

.bf-lista { display: grid; gap: 14px; }
.bf-item { display: grid; grid-template-columns: 200px 1fr 70px; gap: 12px; align-items: center; }
.bf-item__nome { font-weight: 600; font-size: .95rem; }
.bf-item__trilha { height: 12px; background: #eee9ed; border-radius: 999px; overflow: hidden; position: relative; }
.bf-item__trilha::before, .bf-item__trilha::after { content: ''; position: absolute; top: 0; bottom: 0; width: 1px; background: rgba(0,0,0,.15); }
.bf-item__trilha::before { left: 40%; } .bf-item__trilha::after { left: 65%; }
.bf-item__valor { height: 100%; border-radius: 999px; }
.bf-item__nivel { font-size: .78rem; font-weight: 700; text-align: right; text-transform: uppercase; letter-spacing: .03em; }

.bf-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 18px; }
.bf-card { border: 1px solid var(--borda); border-radius: 12px; padding: 16px; border-left: 5px solid; }
.bf-card__topo { display: flex; justify-content: space-between; gap: 8px; align-items: baseline; margin-bottom: 4px; }
.bf-card__topo strong { font-size: 1rem; }
.bf-card__desc { font-size: .82rem; color: var(--texto-fraco); margin-bottom: 8px; }
.bf-card p { font-size: .93rem; }
.bf-card__mini { font-size: .85rem; color: var(--texto-fraco); margin-top: 8px; }
.bf-card__mini strong { color: var(--texto); }

.ri-codigo { display: inline-flex; gap: 6px; align-items: center; margin: 4px 0 14px; }
.ri-letra { width: 44px; height: 44px; border-radius: 10px; color: #fff; display: grid; place-items: center; font-weight: 800; font-size: 1.3rem; }
.ri-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.ri-card { border: 1px solid var(--borda); border-radius: 12px; padding: 16px; border-top: 5px solid; }
.ri-card__pos { font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; color: var(--texto-fraco); }
.ri-card h4 { margin: 2px 0 8px; font-size: 1.05rem; }
.ri-card p { font-size: .9rem; }
.ri-card__mini { font-size: .84rem; color: var(--texto-fraco); margin-top: 8px; }
.ri-card__mini strong { color: var(--texto); }

.ri-barras { display: grid; gap: 10px; }
.ri-barra { display: grid; grid-template-columns: 130px 1fr 44px; gap: 12px; align-items: center; font-size: .9rem; }
.ri-barra__trilha { height: 12px; background: #eee9ed; border-radius: 999px; overflow: hidden; }
.ri-barra__valor { height: 100%; border-radius: 999px; }
.ri-barra__num { text-align: right; font-weight: 700; }

.ranking__comp { display: block; font-size: .74rem; color: var(--texto-fraco); margin-top: 2px; }

@media (max-width: 800px) {
    .indicacao { grid-template-columns: 1fr; justify-items: center; text-align: center; }
    .bf-item { grid-template-columns: 120px 1fr 60px; }
    .bf-cards, .ri-cards { grid-template-columns: 1fr; }
}
@media print {
    .bf-cards { grid-template-columns: 1fr 1fr; }
    .ri-cards { grid-template-columns: repeat(3, 1fr); }
    .indicacao, .bf-item__valor, .ri-barra__valor, .ri-letra, .bf-card, .ri-card { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
