/* =====================================================================
   /rh/tema.css — tema das telas do RH (mesmo padrão do painel de
   carteirinhas):
   fundo #f4f6fa, faixa navy em degradê, detalhes dourados, cards brancos
   com cantos de 18px, cabeçalho de tabela navy, fontes Sora + Inter.
   ===================================================================== */

:root {
    --cb-navy-esc: #0B1B32;
    --cb-navy: #1B3A63;
    --cb-gold: #D4A94A;
    --cb-gold-soft: #f8f0dd;
    --cb-bg: #f4f6fa;
    --cb-ink: #14213a;
    --cb-muted: #6b7a90;
    --cb-line: #e3e8f0;
    --cb-ok: #1f9d6a;
    --cb-ok-soft: #e6f6ef;
    --cb-err: #c64545;
    --cb-err-soft: #fbe9e9;
    --cb-warn: #9a6a00;
}

body { background: var(--cb-bg); color: var(--cb-ink); font-family: 'Inter', system-ui, 'Segoe UI', Arial, sans-serif; }
.cb-wrap h1, .cb-wrap h2, .cb-wrap h3, .cb-wrap h4, .cb-wrap h5, .cb-sora { font-family: 'Sora', 'Inter', sans-serif; }

/* ---------- faixa do topo ---------- */
.cb-hero { background: linear-gradient(120deg, var(--cb-navy-esc), var(--cb-navy)); color: #fff; padding: 26px 0 84px; }
.cb-hero-in { max-width: 1600px; margin: 0 auto; padding: 0 24px; display: flex; flex-wrap: wrap; gap: 16px; align-items: flex-end; justify-content: space-between; }
.cb-hero h1 { font-family: 'Sora', sans-serif; font-weight: 800; font-size: 1.7rem; color: #fff; margin: 14px 0 4px; line-height: 1.2; }
.cb-hero p { color: #c8d3e4; font-size: .93rem; margin: 0; max-width: 760px; }
.cb-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.cb-tag { display: inline-block; background: rgba(212,169,74,.18); color: var(--cb-gold); font-weight: 600; font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; padding: 5px 11px; border-radius: 999px; line-height: 1.4; }
.cb-tag-perfil { background: rgba(255,255,255,.1); color: #e6ecf5; letter-spacing: .06em; }
.cb-tag-perfil b { color: var(--cb-gold); }
.cb-hero-acoes { display: flex; flex-wrap: wrap; gap: 8px; }
.cb-hero .btn-cb-claro { background: rgba(255,255,255,.1); color: #fff; border: 1px solid rgba(255,255,255,.2); border-radius: 10px; font-weight: 600; }
.cb-hero .btn-cb-claro:hover { background: rgba(255,255,255,.2); color: #fff; }
.cb-hero .btn-cb-ouro { background: var(--cb-gold); color: var(--cb-navy-esc); border: 0; border-radius: 10px; font-weight: 700; }
.cb-hero .btn-cb-ouro:hover { background: #c89a38; color: var(--cb-navy-esc); }

/* ---------- área de conteúdo sobreposta à faixa ---------- */
.cb-wrap { max-width: 1600px; margin: -60px auto 0; padding: 0 24px 48px; position: relative; z-index: 1; }
@media (max-width: 600px) { .cb-hero-in, .cb-wrap { padding-left: 14px; padding-right: 14px; } }

.cb-card { background: #fff; border: 1px solid var(--cb-line); border-radius: 18px; box-shadow: 0 12px 30px -18px rgba(11,27,50,.22); }
.cb-card > .card-body, .cb-card-body { padding: 20px 22px; }
.cb-card-titulo { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.cb-card-titulo h2 { font-family: 'Sora', sans-serif; font-weight: 700; font-size: 1.02rem; color: var(--cb-navy-esc); margin: 0; }
.cb-card-ouro { box-shadow: inset 0 4px 0 var(--cb-gold), 0 12px 30px -18px rgba(11,27,50,.22); }

/* ---------- KPIs ---------- */
.cb-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 14px; margin-bottom: 18px; }
.cb-kpi { background: #fff; border: 1px solid var(--cb-line); border-radius: 16px; padding: 14px 18px; box-shadow: 0 12px 30px -18px rgba(11,27,50,.22); }
.cb-kpi .r { font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; color: var(--cb-muted); font-weight: 600; }
.cb-kpi .v { font-family: 'Sora', sans-serif; font-weight: 800; font-size: 1.7rem; color: var(--cb-navy-esc); line-height: 1.2; }
.cb-kpi.destaque { background: linear-gradient(140deg, var(--cb-navy-esc), var(--cb-navy)); border: 0; }
.cb-kpi.destaque .r { color: var(--cb-gold); }
.cb-kpi.destaque .v { color: #fff; }

/* ---------- formulários e botões ---------- */
.cb-wrap .form-label, .cb-label { font-weight: 600; font-size: .74rem; text-transform: uppercase; letter-spacing: .06em; color: var(--cb-muted); margin-bottom: 4px; }
.cb-wrap .form-control, .cb-wrap .form-select, .modal .form-control, .modal .form-select { border-radius: 10px; border-color: var(--cb-line); }
.cb-wrap .form-control:focus, .cb-wrap .form-select:focus, .modal .form-control:focus, .modal .form-select:focus { border-color: var(--cb-gold); box-shadow: 0 0 0 3px rgba(212,169,74,.18); }
.cb-wrap .btn, .modal .btn { border-radius: 10px; font-weight: 600; }
.btn-cb { background: var(--cb-navy); color: #fff; border: 1px solid var(--cb-navy); }
.btn-cb:hover, .btn-cb:focus { background: var(--cb-navy-esc); border-color: var(--cb-navy-esc); color: #fff; }
.btn-cb-ouro { background: var(--cb-gold); color: var(--cb-navy-esc); border: 1px solid var(--cb-gold); }
.btn-cb-ouro:hover { background: #c89a38; border-color: #c89a38; color: var(--cb-navy-esc); }
.btn-cb-linha { background: #fff; color: var(--cb-navy); border: 1px solid var(--cb-line); }
.btn-cb-linha:hover { background: #eef2f7; border-color: var(--cb-navy); color: var(--cb-navy); }

/* ---------- tabelas ---------- */
.cb-tabela { margin-bottom: 0; }
.cb-tabela thead th { background: var(--cb-navy-esc); color: #fff; font-weight: 600; font-size: .74rem; text-transform: uppercase; letter-spacing: .05em; border: 0; padding: 11px 12px; vertical-align: middle; white-space: nowrap; }
.cb-tabela thead th:first-child { border-top-left-radius: 12px; }
.cb-tabela thead th:last-child { border-top-right-radius: 12px; }
.cb-tabela tbody td { padding: 9px 12px; vertical-align: middle; border-color: var(--cb-line); }
.cb-tabela tbody tr:hover { background: #f8fafd; }

.cb-pill { display: inline-block; border-radius: 999px; padding: 3px 10px; font-size: .74rem; font-weight: 700; white-space: nowrap; background: #eef2f7; color: var(--cb-muted); }
.cb-pill.ok { background: var(--cb-ok-soft); color: var(--cb-ok); }
.cb-pill.warn { background: var(--cb-gold-soft); color: var(--cb-warn); }
.cb-pill.err { background: var(--cb-err-soft); color: var(--cb-err); }
.cb-pill.navy { background: rgba(27,58,99,.1); color: var(--cb-navy); }

.cb-acoes { display: inline-flex; gap: 4px; }
.cb-acoes .btn { width: 32px; height: 32px; padding: 0; display: inline-grid; place-items: center; border-radius: 9px; }

.pagination .page-link { border-radius: 9px; margin: 0 2px; border: 1px solid var(--cb-line); color: var(--cb-navy); font-weight: 600; }
.pagination .page-item.active .page-link { background: var(--cb-navy); border-color: var(--cb-navy); color: #fff; }

/* ---------- página inicial (cards de módulo) ---------- */
.cb-modulos { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 16px; }
.cb-modulo { display: flex; flex-direction: column; gap: 6px; background: #fff; border: 1px solid var(--cb-line); border-radius: 18px; padding: 20px; color: inherit; text-decoration: none; box-shadow: 0 12px 30px -18px rgba(11,27,50,.22); transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease; }
.cb-modulo:hover { transform: translateY(-3px); border-color: var(--cb-gold); box-shadow: 0 18px 34px -18px rgba(11,27,50,.35); color: inherit; }
.cb-modulo .ic { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; font-size: 1.2rem; color: #fff; background: linear-gradient(135deg, var(--cb-navy-esc), var(--cb-navy)); margin-bottom: 6px; }
.cb-modulo .ic.ouro { background: var(--cb-gold); color: var(--cb-navy-esc); }
.cb-modulo h3 { font-family: 'Sora', sans-serif; font-size: 1rem; font-weight: 700; margin: 0; color: var(--cb-navy-esc); }
.cb-modulo p { font-size: .86rem; color: var(--cb-muted); margin: 0; flex: 1; }
.cb-modulo .ir { font-size: .8rem; font-weight: 700; color: var(--cb-navy); }
.cb-modulo.externo .ir::after { content: ' ↗'; }
.cb-secao { font-family: 'Sora', sans-serif; font-size: .8rem; text-transform: uppercase; letter-spacing: .12em; color: var(--cb-muted); font-weight: 700; margin: 26px 0 10px; }

/* ---------- avisos ---------- */
.cb-toast-area { position: fixed; right: 18px; bottom: 18px; z-index: 3000; display: grid; gap: 8px; }
.cb-toast { background: var(--cb-navy-esc); color: #fff; padding: 11px 16px; border-radius: 12px; box-shadow: 0 10px 30px rgba(0,0,0,.25); font-size: .9rem; max-width: 420px; }
.cb-toast.ok { background: var(--cb-ok); }
.cb-toast.err { background: var(--cb-err); }

.modal-content { border: 0; border-radius: 18px; }
.modal-header { border-bottom-color: var(--cb-line); }
.modal-footer { border-top-color: var(--cb-line); }
.modal-title { font-family: 'Sora', sans-serif; font-weight: 700; color: var(--cb-navy-esc); }

/* ---------- abas ---------- */
.cb-abas .nav-link { border-radius: 10px; font-weight: 600; color: var(--cb-navy); }
.cb-abas .nav-link.active { background: var(--cb-navy); color: #fff; }


/* ---------- TI: voltar, cartões do painel e modais de atalhos ---------- */
.cb-voltar { display: inline-flex; align-items: center; gap: 6px; color: #c8d3e4; font-size: .82rem; font-weight: 600; text-decoration: none; margin-bottom: 10px; }
.cb-voltar:hover { color: var(--cb-gold); }

.ti-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 18px; }
.ti-card { display: flex; flex-direction: column; gap: 10px; text-align: left; width: 100%; background: #fff; border: 1px solid var(--cb-line); border-radius: 18px; padding: 22px; color: inherit; text-decoration: none; box-shadow: 0 12px 30px -18px rgba(11,27,50,.22); transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.ti-card:hover, .ti-card:focus-visible { transform: translateY(-4px); border-color: var(--cb-gold); box-shadow: 0 18px 36px -18px rgba(11,27,50,.35); color: inherit; outline: none; }
.ti-ico { width: 50px; height: 50px; border-radius: 14px; display: grid; place-items: center; font-size: 1.3rem; color: var(--cb-gold); background: linear-gradient(140deg, var(--cb-navy-esc), var(--cb-navy)); flex: none; }
.ti-card h2 { font-family: 'Sora', sans-serif; font-weight: 700; font-size: 1.05rem; color: var(--cb-navy-esc); margin: 4px 0 0; }
.ti-card p { font-size: .86rem; color: var(--cb-muted); margin: 0; flex: 1; }
.ti-rodape { display: flex; align-items: center; justify-content: space-between; font-size: .76rem; font-weight: 600; color: var(--cb-navy); padding-top: 10px; border-top: 1px solid var(--cb-line); }
.ti-rodape .fa-arrow-right { transition: transform .18s ease; }
.ti-card:hover .ti-rodape .fa-arrow-right { transform: translateX(4px); color: var(--cb-gold); }
.ti-qtd { background: var(--cb-gold-soft); color: #9a6b12; border-radius: 999px; padding: 2px 10px; }

.ti-modal .modal-content { border: 0; border-radius: 18px; overflow: hidden; box-shadow: 0 30px 60px -20px rgba(11,27,50,.45); }
.ti-modal .modal-header, .modal-header.cb-modal-navy { background: linear-gradient(135deg, var(--cb-navy-esc), var(--cb-navy)); color: #fff; border: 0; padding: 18px 22px; }
.ti-modal .modal-title, .cb-modal-navy .modal-title { color: #fff; font-size: 1.08rem; display: flex; align-items: center; gap: 10px; }
.ti-modal .modal-title i, .cb-modal-navy .modal-title i { color: var(--cb-gold); }
.ti-modal .modal-body.ti-lista { padding: 18px; display: grid; gap: 10px; }
.ti-opcao { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border: 1px solid var(--cb-line); border-radius: 14px; text-decoration: none; color: inherit; background: #fff; transition: background .15s ease, border-color .15s ease, transform .15s ease; }
.ti-opcao:hover, .ti-opcao:focus-visible { background: #f8fafd; border-color: var(--cb-navy); transform: translateX(3px); color: inherit; outline: none; }
.ti-opcao .ti-ico { width: 42px; height: 42px; font-size: 1.05rem; border-radius: 12px; }
.ti-opcao b { display: block; color: var(--cb-navy-esc); font-weight: 600; }
.ti-opcao small { color: var(--cb-muted); }
.ti-opcao .fa-chevron-right { margin-left: auto; color: #b6c1d1; }

/* ---------- miudezas ---------- */
.cb-vazio { text-align: center; color: var(--cb-muted); padding: 44px 16px; }
.cb-vazio i { font-size: 1.8rem; display: block; margin-bottom: 10px; color: #b6c1d1; }
.cb-trunc { max-width: 320px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cb-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .82rem; }
.cb-info { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.cb-info > div { background: #f8fafd; border: 1px solid var(--cb-line); border-radius: 12px; padding: 10px 14px; }
.cb-info span { display: block; font-size: .7rem; text-transform: uppercase; letter-spacing: .06em; color: var(--cb-muted); font-weight: 600; }
.cb-info b { color: var(--cb-navy-esc); font-weight: 600; }
.cb-status { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.cb-status-item { display: flex; align-items: center; gap: 12px; background: #fff; border: 1px solid var(--cb-line); border-radius: 14px; padding: 14px 16px; }
.cb-status-item .ponto { width: 12px; height: 12px; border-radius: 50%; flex: none; background: var(--cb-ok); box-shadow: 0 0 0 4px var(--cb-ok-soft); }
.cb-status-item.err .ponto { background: var(--cb-err); box-shadow: 0 0 0 4px var(--cb-err-soft); }
.cb-status-item b { display: block; color: var(--cb-navy-esc); font-weight: 600; word-break: break-all; }
.cb-status-item small { color: var(--cb-muted); }
.cb-medidor { height: 8px; border-radius: 999px; background: #eef2f7; overflow: hidden; }
.cb-medidor > span { display: block; height: 100%; background: var(--cb-ok); border-radius: 999px; }
.cb-medidor.alto > span { background: var(--cb-err); }


/* ---------- RH ---------- */
.cb-alerta { border-radius: 12px; }
.rh-filtros .form-label { margin-bottom: 4px; }
.rh-cand b { color: var(--cb-navy-esc); }
.rh-cand small { color: var(--cb-muted); }
.rh-chips { display: flex; flex-wrap: wrap; gap: 4px; }
.rh-chip { display: inline-block; background: #eef2f7; color: var(--cb-navy); border-radius: 999px; padding: 2px 9px; font-size: .74rem; font-weight: 600; }
.rh-chip.ouro { background: var(--cb-gold-soft); color: #8a5f0d; }
.rh-chip.pcd { background: rgba(27,58,99,.1); color: var(--cb-navy); }
.rh-sub { font-size: .7rem; text-transform: uppercase; letter-spacing: .06em; color: var(--cb-muted); font-weight: 700; margin: 6px 0 3px; }
.rh-sub:first-child { margin-top: 0; }
.rh-msg { max-width: 340px; white-space: pre-wrap; word-break: break-word; font-size: .86rem; }
.rh-obs { max-width: 280px; font-size: .84rem; cursor: pointer; border-radius: 10px; padding: 6px 8px; border: 1px dashed transparent; }
.rh-obs:hover { border-color: var(--cb-gold); background: #fffaf0; }
.rh-obs .vazio { color: var(--cb-muted); font-style: italic; }
.rh-obs p { margin: 0; }
.rh-contato { display: flex; flex-direction: column; gap: 6px; font-size: .86rem; }
.rh-contato .linha { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.rh-contato .linha span { word-break: break-all; }
.rh-tabela-wrap { max-height: 72vh; overflow: auto; border-radius: 12px; }
.rh-tabela-wrap .cb-tabela thead th { position: sticky; top: 0; z-index: 2; }
.rh-tabela-wrap .cb-tabela thead th:first-child, .rh-tabela-wrap .cb-tabela thead th:last-child { border-radius: 0; }
.cb-tabela .ord { cursor: pointer; user-select: none; }
.cb-tabela .ord i { opacity: .45; margin-left: 4px; font-size: .7rem; }
.cb-tabela .ord.ativa i { opacity: 1; color: var(--cb-gold); }
.ql-container { font-family: 'Inter', sans-serif; font-size: .92rem; }
#observacoes { min-height: 180px; }

/* ---------- páginas públicas (currículo) ---------- */
body.rh-pub { min-height: 100vh; }
.rh-pub-hero { background: radial-gradient(circle at 85% -20%, rgba(212,169,74,.28), transparent 45%), linear-gradient(120deg, var(--cb-navy-esc), var(--cb-navy)); color: #fff; padding: 28px 16px 92px; text-align: center; }
.rh-pub-hero h1 { font-family: 'Sora', sans-serif; font-weight: 800; font-size: clamp(1.45rem, 4.5vw, 1.95rem); margin: 10px 0 6px; color: #fff; }
.rh-pub-hero p { color: #c8d3e4; margin: 0 auto; max-width: 560px; font-size: .95rem; }
.rh-logo { display: inline-block; background: #fff; border-radius: 14px; padding: 8px 16px; margin-bottom: 14px; box-shadow: 0 8px 20px -12px rgba(0,0,0,.5); }
.rh-logo img { height: 40px; width: auto; display: block; }
.rh-pub-wrap { max-width: 820px; margin: -60px auto 40px; padding: 0 14px; position: relative; z-index: 1; }
.rh-pub-wrap .cb-card-body { padding: 26px; }
@media (max-width: 480px) { .rh-pub-wrap .cb-card-body { padding: 18px; } }
.rh-pub-rodape { text-align: center; color: var(--cb-muted); font-size: .78rem; margin-top: 18px; }
.rh-pub .form-label { font-weight: 600; font-size: .86rem; color: var(--cb-ink); text-transform: none; letter-spacing: 0; }
.rh-pub .form-control, .rh-pub .form-select { border-radius: 10px; border-color: var(--cb-line); padding: .62rem .85rem; }
.rh-pub .form-control:focus, .rh-pub .form-select:focus { border-color: var(--cb-gold); box-shadow: 0 0 0 3px rgba(212,169,74,.18); }
.rh-pub .btn { border-radius: 10px; font-weight: 600; }
.rh-secao { border: 1px solid var(--cb-line); border-radius: 16px; padding: 18px 18px 14px; margin-bottom: 16px; }
.rh-secao h2 { font-family: 'Sora', sans-serif; font-weight: 700; font-size: 1rem; color: var(--cb-navy-esc); margin: 0 0 4px; display: flex; align-items: center; gap: 8px; }
.rh-secao h2 i { color: var(--cb-gold); }
.rh-secao .dica { font-size: .8rem; color: var(--cb-muted); margin-bottom: 10px; }
.rh-opcoes { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 8px; }
.rh-opcao { position: relative; }
.rh-opcao input { position: absolute; opacity: 0; pointer-events: none; }
.rh-opcao label { display: flex; align-items: center; gap: 9px; border: 1px solid var(--cb-line); border-radius: 12px; padding: 9px 12px; cursor: pointer; font-size: .9rem; background: #fff; transition: border-color .15s, background .15s; height: 100%; }
.rh-opcao label::before { content: ''; width: 18px; height: 18px; border: 2px solid #c5cfdd; border-radius: 5px; flex: none; background: #fff center/12px no-repeat; transition: all .15s; }
.rh-opcao input[type=radio] + label::before { border-radius: 50%; }
.rh-opcao label:hover { border-color: var(--cb-navy); }
.rh-opcao input:checked + label { border-color: var(--cb-navy); background: rgba(27,58,99,.06); font-weight: 600; color: var(--cb-navy-esc); }
.rh-opcao input:checked + label::before { background-color: var(--cb-navy); border-color: var(--cb-navy); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round' d='M3.5 8.5l3 3 6-7'/%3E%3C/svg%3E"); }
.rh-opcao input[type=radio]:checked + label::before { background-image: radial-gradient(#fff 35%, transparent 40%); background-size: 100%; }
.rh-opcao input:focus-visible + label { box-shadow: 0 0 0 3px rgba(212,169,74,.35); }
.rh-aviso { background: var(--cb-gold-soft); border: 1px solid rgba(212,169,74,.4); color: #6d5214; border-radius: 12px; padding: 12px 14px; font-size: .88rem; margin-bottom: 18px; }
.rh-aviso ul { margin: 6px 0 0; padding-left: 18px; }
.rh-lgpd { display: flex; gap: 10px; align-items: flex-start; font-size: .86rem; background: #f8fafd; border: 1px solid var(--cb-line); border-radius: 12px; padding: 12px 14px; }
.rh-lgpd input { margin-top: 3px; width: 18px; height: 18px; flex: none; accent-color: var(--cb-navy); }
.rh-arquivo { border: 2px dashed #c9d3e1; border-radius: 14px; padding: 18px; text-align: center; background: #fafbfd; }
.rh-arquivo i { font-size: 1.6rem; color: var(--cb-navy); }
.rh-msg-resumo { font-size: .86rem; color: var(--cb-ink); line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; max-width: 300px; }
.rh-ver-msg { font-size: .78rem; font-weight: 600; color: var(--cb-navy); text-decoration: none; margin-top: 4px; }
.rh-ver-msg:hover { color: var(--cb-gold); }
.rh-msg-completa { white-space: pre-wrap; word-break: break-word; font-size: .95rem; line-height: 1.7; background: #f8fafd; border: 1px solid var(--cb-line); border-radius: 12px; padding: 16px 18px; }
.rh-tabela-wrap .cb-tabela td { vertical-align: top !important; padding-top: 14px !important; padding-bottom: 14px !important; }
.cb-tabela th.ord a { color: inherit; text-decoration: none; display: inline-flex; align-items: center; }
.cb-tabela th.ord a:hover { color: var(--cb-gold); }
.rh-tab-cv td { vertical-align: top !important; padding-top: 14px !important; padding-bottom: 14px !important; }
