/* Estilos base do produto. Todas as cores vêm de CSS variables definidas em
   layouts/partials/tema.blade.php a partir de config/empresa.php. */

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; overflow-x: hidden; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior:auto !important; transition-duration:.01ms !important; animation-duration:.01ms !important; } }
body {
    margin: 0;
    font-family: var(--fonte, system-ui, sans-serif);
    background: var(--cor-fundo);
    color: var(--cor-texto);
    line-height: 1.5;
    min-height: 100vh;
    overflow-x: hidden;
}
a { color: var(--cor-primaria); text-decoration: none; }
a:hover { text-decoration: underline; }
img { max-width: 100%; height: auto; display: block; }
h1, h2, h3, h4, h5, h6 { font-family: var(--fonte-titulo, var(--fonte)); font-weight: 700; letter-spacing: -0.01em; color: var(--cor-primaria); }
button, input, select, textarea { font: inherit; }
.table-wrap { max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; }
button, [role="button"] { touch-action: manipulation; }
:focus-visible { outline: 3px solid var(--cor-destaque); outline-offset: 3px; }
input[aria-invalid="true"], select[aria-invalid="true"], textarea[aria-invalid="true"] { border-color: #b91c1c; }

/* Tema escuro: sobrescreve as variáveis de superfície/texto. */
:root[data-theme="dark"] {
    --cor-fundo: #0f172a;
    --cor-texto: #e2e8f0;
    --superficie: #1e293b;
    --superficie-2: #172033;
    --borda: #334155;
    --suave: #94a3b8;
}
:root {
    --superficie: #ffffff;
    --superficie-2: #f8fafc;
    --borda: #e2e8f0;
    --suave: #64748b;
    --raio: 12px;
    --sombra: 0 2px 10px rgba(0,0,0,.05), 0 1px 3px rgba(0,0,0,.035);
}

/* Layout */
.app { display: grid; grid-template-columns: 260px 1fr; grid-template-rows: auto 1fr auto; min-height: 100vh; grid-template-areas: "sidebar header" "sidebar main" "sidebar footer"; max-width:100%; overflow-x:clip; }
.app-header { grid-area: header; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .75rem 1.5rem; background: var(--superficie); border-bottom: 1px solid var(--borda); position: sticky; top: 0; z-index: 20; }
.app-sidebar { grid-area: sidebar; background: var(--superficie); border-right: 1px solid var(--borda); padding: 1rem; display: flex; flex-direction: column; gap: .25rem; }
.app-main { grid-area: main; padding: 1.5rem; max-width: 1400px; width: 100%; min-width: 0; }
.app-footer { grid-area: footer; padding: 1rem 1.5rem; color: var(--suave); font-size: .85rem; border-top: 1px solid var(--borda); }

.brand { display: flex; align-items: center; gap: .6rem; font-weight: 700; margin-bottom: 1rem; }
.brand img { height: 36px; width: auto; }
/* Sidebar escura: inverte o logo (navy) para branco, deixando-o visível. */
.app-sidebar .brand img { filter: brightness(0) invert(1); }

.nav-link { display: flex; align-items: center; gap: .6rem; padding: .6rem .8rem; border-radius: 8px; color: var(--cor-texto); font-weight: 500; }
.nav-link:hover { background: var(--superficie-2); text-decoration: none; }
.nav-link.ativo { background: var(--cor-primaria); color: #fff; }

/* Componentes */
.card { background: var(--superficie); border: 1px solid var(--borda); border-radius: var(--raio); padding: 1.25rem; box-shadow: var(--sombra); }
.grid { display: grid; gap: 1rem; }
.grid.cols-2 { grid-template-columns: repeat(2, 1fr); }
.grid.cols-3 { grid-template-columns: repeat(3, 1fr); }
.grid.cols-4 { grid-template-columns: repeat(4, 1fr); }

.stat { display: flex; flex-direction: column; gap: .25rem; }
.stat .valor { font-size: 1.8rem; font-weight: 700; font-family: var(--fonte-titulo, var(--fonte)); color: var(--cor-destaque); }
.stat .rotulo { color: var(--suave); font-size: .85rem; }

.btn { display: inline-flex; align-items: center; justify-content:center; gap: .5rem; min-height:40px; padding: .65rem 1.2rem; border-radius: 10px; border: 2px solid transparent; background: linear-gradient(180deg, #ff7a25, var(--cor-destaque)); color: #fff; font-weight: 700; cursor: pointer; font-size: .82rem; letter-spacing: .04em; text-transform: uppercase; font-family: var(--fonte-titulo, var(--fonte)); }
.btn:hover { filter: brightness(.95); text-decoration: none; }
.btn.secundario { background: transparent; border-color: var(--cor-primaria); color: var(--cor-primaria); }
.btn.perigo { background: #dc2626; }
.btn.whatsapp { background: linear-gradient(180deg,#20a95c,#128c4a); text-transform:none; letter-spacing:0; margin-top:.4rem; }
.btn.whatsapp:hover { filter: brightness(.96); }
.badge-nr { display:inline-block; padding:.15rem .5rem; border-radius:999px; font-size:.72rem; font-weight:700; white-space:nowrap; }
.badge-nr.enviado { background:#dcfce7; color:#166534; }
.badge-nr.pendente { background:#fef3c7; color:#92400e; }
.badge-nr.falhou { background:#fee2e2; color:#991b1b; }
.contato-kpis { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }
@media (min-width:640px) { .contato-kpis { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (min-width:1100px) { .contato-kpis { grid-template-columns:repeat(6,minmax(0,1fr)); } }
.var-chips { display:flex; flex-wrap:wrap; gap:.35rem; align-items:center; margin-top:.25rem; }
.btn.pequeno { padding: .35rem .7rem; font-size: .85rem; }

.campo { display: flex; flex-direction: column; gap: .35rem; margin-bottom: 1rem; }
.campo label { font-weight: 600; font-size: .9rem; }
.campo input, .campo select, .campo textarea { width:100%; min-height:40px; padding: .6rem .75rem; border: 1px solid var(--borda); border-radius: 8px; background: var(--superficie); color: var(--cor-texto); font: inherit; }
.campo textarea { min-height:96px; resize:vertical; }
.campo input:focus, .campo select:focus, .campo textarea:focus { outline: 2px solid var(--cor-destaque); outline-offset: 1px; }
.erro { color: #dc2626; font-size: .82rem; }

.alerta { padding: .8rem 1rem; border-radius: 8px; margin-bottom: 1rem; border: 1px solid transparent; }
.alerta.sucesso { background: #dcfce7; color: #166534; border-color: #bbf7d0; }
.alerta.erro { background: #fee2e2; color: #991b1b; border-color: #fecaca; }

.badge { display: inline-block; padding: .15rem .55rem; border-radius: 999px; font-size: .75rem; font-weight: 600; background: var(--superficie-2); color: var(--suave); }
.badge.destaque { background: var(--cor-primaria); color: #fff; }

.barra { height: 8px; border-radius: 999px; background: var(--superficie-2); overflow: hidden; }
.barra > span { display: block; height: 100%; background: var(--cor-primaria); }

.vazio { text-align: center; padding: 2.5rem 1rem; color: var(--suave); }

table.tabela { width: 100%; border-collapse: collapse; }
table.tabela th, table.tabela td { text-align: left; padding: .8rem .7rem; border-bottom: 1px solid var(--borda); }
table.tabela thead th { text-transform: uppercase; font-size: .72rem; letter-spacing: .04em; color: var(--suave); font-weight: 700; background: var(--superficie-2); }
table.tabela tbody tr { transition: background .15s ease; }
table.tabela tbody tr:hover { background: var(--superficie-2); }
.cel-candidato { display: flex; align-items: center; gap: .7rem; }
.cel-candidato .n { font-weight: 600; color: var(--cor-primaria); }
.cel-candidato .sub { font-size: .72rem; color: var(--suave); }
.tabela-scroll { overflow-x: auto; overscroll-behavior-inline:contain; -webkit-overflow-scrolling:touch; }

.toast-area { position: fixed; bottom: 1rem; right: 1rem; z-index: 50; display: flex; flex-direction: column; gap: .5rem; }
.toast { background: var(--superficie); border: 1px solid var(--borda); border-left: 4px solid var(--cor-primaria); border-radius: 8px; padding: .8rem 1rem; box-shadow: var(--sombra); }
.network-notice { position: fixed; z-index: 1000; top: 1rem; left: 50%; transform: translateX(-50%); width: min(94vw, 760px); display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .75rem; padding: .85rem 1rem; color: #7f1d1d; background: #fff7ed; border: 1px solid #fdba74; border-left: 5px solid #ea580c; border-radius: 10px; box-shadow: var(--sombra); }
.network-notice[hidden] { display: none; }
.network-notice.online { color: #14532d; background: #f0fdf4; border-color: #86efac; border-left-color: #16a34a; }
@media (max-width: 640px) { .network-notice { grid-template-columns: 1fr; top: .5rem; } .network-notice .btn { width: 100%; } }

.menu-mobile-btn, .app-sidebar-backdrop { display: none; }

/* Avatar por iniciais (sem upload de imagem) */
.avatar { display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--cor-primaria); color: #fff; font-weight: 700; font-family: var(--fonte-titulo, var(--fonte)); line-height: 1; flex-shrink: 0; letter-spacing: .02em; }
.avatar.destaque { background: var(--cor-destaque); }

/* Status badge (pílula colorida por status) */
.status-badge { display: inline-block; max-width:100%; padding: .2rem .6rem; border-radius: 999px; font-size: .72rem; font-weight: 700; line-height:1.35; text-transform: uppercase; letter-spacing: .03em; }
.sb-neutro { background: var(--superficie-2); color: var(--suave); }
.sb-ok { background: #dcfce7; color: #166534; }
.sb-erro { background: #fee2e2; color: #991b1b; }
.sb-info { background: #e0f2fe; color: #075985; }
.sb-destaque { background: #ffedd5; color: #9a3412; }

/* Skeleton loading */
.skeleton-wrap { display: flex; flex-direction: column; gap: .6rem; }
.skeleton { height: 14px; border-radius: 4px; background: linear-gradient(90deg, var(--superficie-2) 25%, var(--borda) 37%, var(--superficie-2) 63%); background-size: 400% 100%; animation: skel 1.4s ease infinite; }
@keyframes skel { 0% { background-position: 100% 50%; } 100% { background-position: 0 50%; } }

/* Timeline da candidatura */
.timeline { list-style: none; margin: 1rem 0 0; padding: 0; }
.tl-item { position: relative; padding: 0 0 1.5rem 2.2rem; border-left: 2px solid var(--borda); }
.tl-item:last-child { border-left-color: transparent; padding-bottom: 0; }
.tl-marca { position: absolute; left: -12px; top: 0; width: 22px; height: 22px; border-radius: 50%; background: var(--superficie-2); border: 2px solid var(--borda); color: #fff; display: flex; align-items: center; justify-content: center; font-size: .7rem; font-weight: 700; }
.tl-item.ok > .tl-marca { background: var(--cor-destaque); border-color: var(--cor-destaque); }
.tl-item.atual > .tl-marca { box-shadow: 0 0 0 4px rgba(255,97,0,.22); }
.tl-item.pendente > .tl-corpo strong { color: var(--suave); }
.tl-meta { color: var(--suave); font-size: .82rem; margin-top: .15rem; }
.tl-obs { margin-top: .4rem; background: var(--superficie-2); border-left: 3px solid var(--cor-destaque); padding: .5rem .7rem; font-size: .9rem; }

/* Pipeline Kanban */
.kanban-board { display: flex; gap: 1rem; overflow-x: auto; padding-bottom: 1rem; min-height: calc(100vh - 250px); align-items: flex-start; }
.kanban-column { flex: 0 0 285px; min-width: 285px; }
.kanban-column-header { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: 0 .25rem .65rem; border-bottom: 3px solid var(--borda); color: var(--cor-primaria); font-family: var(--fonte-titulo, var(--fonte)); font-size: .8rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.kanban-count { min-width: 1.6rem; padding: .15rem .4rem; border-radius: 999px; background: var(--superficie-2); color: var(--suave); text-align: center; font-size: .7rem; }
.kanban-dropzone { display: flex; flex-direction: column; gap: .75rem; min-height: 140px; padding: .75rem 0; border-radius: 8px; transition: background .15s, outline-color .15s; }
.kanban-dropzone.kanban-over { background: color-mix(in srgb, var(--cor-primaria) 7%, transparent); outline: 2px dashed var(--cor-primaria); outline-offset: 2px; }
.kanban-card { display: block; border-left: 4px solid var(--cor-primaria); padding: 1rem; cursor: grab; transition: box-shadow .15s, transform .15s, opacity .15s; }
.kanban-card:hover { transform: translateY(-2px); text-decoration: none; box-shadow: 0 8px 20px rgba(0,20,38,.12); }
.kanban-card:active { cursor: grabbing; }
.kanban-card.dragging { opacity: .45; }
.kanban-card-top, .kanban-card-footer { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.kanban-card-name { margin: .85rem 0 .15rem; color: var(--cor-primaria); font-size: 1rem; }
.kanban-card-job, .kanban-card-meta { margin: 0; color: var(--suave); font-size: .8rem; }
.kanban-card-footer { margin-top: .9rem; padding-top: .65rem; border-top: 1px solid var(--borda); }
.kanban-empty { margin: 0; padding: 1.5rem .75rem; border: 2px dashed var(--borda); border-radius: 8px; color: var(--suave); font-size: .8rem; text-align: center; }
.kanban-obs { display: inline-block; max-width: 130px; overflow: hidden; color: var(--suave); font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }

/* Telas operacionais RH — adaptação visual Stitch */
.page-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:1rem; flex-wrap:wrap; margin-bottom:1.5rem; }
.page-heading h2 { margin:0; font-size:1.75rem; }
.eyebrow { margin:0 0 .3rem; color:var(--cor-destaque); font-family:var(--fonte-titulo, var(--fonte)); font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.page-subtitle { margin:.25rem 0 0; color:var(--suave); }
.page-actions { display:flex; gap:.75rem; flex-wrap:wrap; }
.dashboard-kpis { margin-bottom:1rem; }
.dashboard-kpis .card { border-top:3px solid var(--cor-primaria); }
.dashboard-kpis .card:nth-child(2) { border-top-color:var(--cor-destaque); }
.dashboard-kpis .card:nth-child(3) { border-top-color:#0f766e; }
.dashboard-kpis .card:nth-child(4) { border-top-color:#7c3aed; }
.dashboard-summary { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:1rem; margin-bottom:1rem; }
.summary-grid { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:.75rem; }
.summary-grid div { border-left:3px solid var(--borda); padding-left:.65rem; }
.summary-grid span { display:block; color:var(--suave); font-size:.75rem; }
.summary-grid strong { color:var(--cor-primaria); font-family:var(--fonte-titulo, var(--fonte)); font-size:1.4rem; }
.dashboard-charts { margin-top:1rem; }
.chart-row { margin:.7rem 0; }
.chart-label { display:flex; justify-content:space-between; gap:.75rem; margin-bottom:.3rem; color:var(--suave); font-size:.84rem; }
.chart-label strong { color:var(--cor-primaria); }
.section-card { margin-bottom:1rem; }
.saved-filters, .save-filter-form, .filter-actions { display:flex; gap:1rem; flex-wrap:wrap; align-items:center; }
.filter-actions { margin-top:.5rem; }
.filter-actions label { display:inline-flex; align-items:center; gap:.4rem; }
.save-filter-form input { padding:.35rem .55rem; border:1px solid var(--borda); border-radius:6px; background:var(--superficie); color:var(--cor-texto); font:inherit; }
.data-card { padding:0; overflow:hidden; }
.data-card .tabela { min-width:700px; }
.data-card .sub { margin-top:.2rem; color:var(--suave); font-size:.76rem; }
.table-toolbar { display:flex; justify-content:space-between; align-items:center; padding:1rem 1.25rem; border-bottom:1px solid var(--borda); color:var(--suave); font-size:.82rem; }
.table-pagination { padding:1rem 1.25rem; border-top:1px solid var(--borda); }

/* RBAC administrativo */
.rbac-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin-bottom:1rem; }.rbac-summary .card { border-top:3px solid var(--cor-primaria); }.rbac-summary .card:nth-child(2) { border-top-color:var(--cor-destaque); }.rbac-summary .card:nth-child(3) { border-top-color:#0f766e; }.rbac-layout { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(300px,.75fr); gap:1rem; align-items:start; }.rbac-aside { display:grid; gap:1rem; }.rbac-card { margin:0; }.role-item { display:flex; align-items:center; justify-content:space-between; gap:.75rem; padding:.8rem 0; border-top:1px solid var(--borda); }.role-item:first-child { padding-top:0; border-top:0; }.role-item span { display:block; margin-top:.15rem; color:var(--suave); font-size:.78rem; }.permission-group { padding:.75rem 0; border-top:1px solid var(--borda); }.permission-group:first-child { padding-top:0; border-top:0; }.permission-group > strong { display:block; margin-bottom:.5rem; color:var(--cor-primaria); font-family:var(--fonte-titulo, var(--fonte)); font-size:.85rem; }.tag-list { display:flex; flex-wrap:wrap; gap:.35rem; }

/* Perfil RH, banco de talentos e detalhes de candidatura */
.rh-profile-hero { display:flex; align-items:center; gap:1rem; padding:1.5rem; margin-bottom:1rem; background:linear-gradient(135deg, #00548a 0%, #004069 55%, #002c49 100%); color:#fff; }.rh-profile-hero h2 { margin:0; color:#fff; }.rh-profile-hero p:not(.eyebrow) { margin:.15rem 0 0; color:#d0e4fe; }.rh-profile-hero .eyebrow { color:#ffb98c; }.rh-profile-meta { display:grid; gap:.15rem; margin-left:auto; text-align:right; font-size:.78rem; color:#d0e4fe; }.rh-profile-meta strong { color:#fff; font-size:.95rem; }.profile-nav { display:flex; gap:.4rem; flex-wrap:wrap; margin-bottom:1rem; }.profile-nav .btn { border-radius:999px; }.rh-profile-layout { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(310px,.8fr); gap:1rem; align-items:start; }.profile-section { margin-bottom:1rem; }.profile-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }.profile-facts div { display:grid; gap:.15rem; padding-left:.7rem; border-left:3px solid var(--borda); }.profile-facts span, .profile-entry span, .profile-entry small { color:var(--suave); font-size:.8rem; }.profile-summary { padding:.85rem; margin:.9rem 0 0; background:var(--superficie-2); border-left:3px solid var(--cor-destaque); white-space:pre-line; }.profile-entry { display:grid; gap:.15rem; padding:.8rem 0; border-top:1px solid var(--borda); }.profile-entry:first-of-type { margin-top:.7rem; }.profile-entry p { margin:.2rem 0 0; }.profile-sticky { position:sticky; top:5.5rem; }.rh-application { display:grid; gap:.65rem; padding:.9rem 0; border-top:1px solid var(--borda); }.rh-application:first-child { border-top:0; padding-top:0; }.rh-application > div { display:flex; justify-content:space-between; align-items:start; gap:.5rem; }.rh-application form { display:grid; grid-template-columns:1fr; gap:.45rem; }.rh-application select, .rh-application input { padding:.5rem .6rem; border:1px solid var(--borda); border-radius:6px; background:var(--superficie); color:var(--cor-texto); font:inherit; }.rh-application details { font-size:.82rem; color:var(--suave); }.history-line { margin:.35rem 0 0; }.internal-note { padding:.8rem 0; border-top:1px solid var(--borda); }.internal-note small { color:var(--suave); }.internal-note p { margin:.25rem 0 0; }.filtros-candidatos:has(input[name="banco_talentos"]:checked) { border-top:3px solid var(--cor-destaque); }.filtros-candidatos:has(input[name="banco_talentos"]:checked) + .saved-filters + .data-card { border-top:3px solid var(--cor-primaria); }.filtros-candidatos:has(input[name="banco_talentos"]:checked) + .saved-filters + .data-card .cel-candidato .avatar { background:var(--cor-destaque); }

/* Área do candidato — adaptação visual Stitch */
.app-candidato .app-sidebar { background:var(--cor-primaria); border-right:0; }
.app-candidato .nav-link { color:#b5c8e1; }
.app-candidato .nav-link:hover { color:#fff; background:rgba(255,255,255,.08); }
.app-candidato .nav-link.ativo { background:var(--cor-secundaria, #004069); color:#fff; }
.candidate-hero { display:flex; align-items:center; gap:1rem; padding:1.5rem; margin-bottom:1rem; background:linear-gradient(135deg, #00548a 0%, #004069 55%, #002c49 100%); color:#fff; border-radius:var(--raio); }
.candidate-hero h2 { margin:0; color:#fff; }.candidate-hero p:not(.eyebrow) { margin:.2rem 0 0; color:#d0e4fe; }.candidate-hero .eyebrow { color:#ffb98c; }.candidate-hero .btn { margin-left:auto; white-space:nowrap; }
.candidate-kpis { margin-bottom:1rem; }.candidate-kpis .card { border-top:3px solid var(--cor-destaque); }.candidate-kpis .card:nth-child(even) { border-top-color:var(--cor-primaria); }
.candidate-checklist { margin-bottom:1rem; }.checklist-heading { display:flex; justify-content:space-between; gap:1rem; margin-bottom:1rem; color:var(--suave); font-size:.86rem; }.checklist-grid { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:.6rem; }.checklist-item { display:flex; align-items:center; gap:.45rem; padding:.65rem; border:1px solid var(--borda); border-radius:6px; color:var(--suave); font-size:.82rem; }.checklist-item.is-complete { color:var(--cor-primaria); border-color:#b5c8e1; background:#f3f8fd; }.checklist-item.is-complete span { color:var(--cor-destaque); font-weight:700; }
.candidate-panels { margin-top:1rem; }.candidate-list-item { display:flex; align-items:center; justify-content:space-between; gap:.75rem; padding:.8rem 0; border-bottom:1px solid var(--borda); color:var(--cor-texto); }.candidate-list-item:last-of-type { border-bottom:0; }.candidate-list-item:hover { text-decoration:none; color:var(--cor-primaria); }.candidate-list-item small { display:block; margin-top:.15rem; color:var(--suave); }.last-login { margin:.8rem 0 0; color:var(--suave); font-size:.78rem; }
.back-link { display:inline-block; margin-bottom:.65rem; padding:.35rem 0; font-size:.88rem; font-weight:600; }.application-detail { display:grid; grid-template-columns:minmax(0, 1fr) minmax(300px, .8fr); gap:1rem; align-items:start; }.application-overview h2 { margin:.15rem 0; }.application-status { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin:1.25rem 0; padding:.8rem 0; border-top:1px solid var(--borda); border-bottom:1px solid var(--borda); color:var(--suave); font-size:.85rem; }
.vacancy-filter { display:grid; grid-template-columns:1fr minmax(160px, .35fr) auto; gap:.75rem; align-items:end; padding:1.25rem; margin-bottom:1rem; background:var(--superficie); border:1px solid var(--borda); border-radius:var(--raio); box-shadow:var(--sombra); }.vacancy-filter .campo { margin:0; }.vacancy-grid { margin-top:1rem; }.vacancy-card { display:flex; flex-direction:column; }.vacancy-card h3 { margin:1rem 0 .35rem; }.vacancy-card p { margin:0; color:var(--suave); }.vacancy-card-top, .vacancy-card-footer { display:flex; align-items:center; justify-content:space-between; gap:.5rem; }.vacancy-card-footer { margin-top:auto; padding-top:1rem; color:var(--suave); font-size:.8rem; }.favorite-button { border:0; background:transparent; color:var(--cor-destaque); cursor:pointer; font:700 1.1rem var(--fonte-titulo, sans-serif); }.vacancy-detail { display:grid; grid-template-columns:minmax(0, 1fr) minmax(270px, .42fr); gap:1rem; align-items:start; }.vacancy-main h2 { margin:1rem 0 .2rem; }.vacancy-content h3 { margin:1.5rem 0 .35rem; }.vacancy-content p { white-space:pre-line; color:var(--cor-texto); }.tag-list { display:flex; flex-wrap:wrap; gap:.4rem; }.vacancy-apply { position:sticky; top:5.5rem; }.vacancy-apply p { color:var(--suave); }.nr-fieldset { display:grid; gap:.5rem; margin:1rem 0; padding:1rem; border:1px solid var(--borda); border-radius:6px; }.nr-fieldset small { color:var(--suave); }.curriculo-page > .card { margin-bottom:1rem; }.curriculo-hero { display:flex; align-items:end; justify-content:space-between; gap:1rem; margin-bottom:1rem; }.curriculo-hero h2 { margin:0; }.curriculo-hero strong { color:var(--cor-destaque); font-family:var(--fonte-titulo, var(--fonte)); font-size:1.2rem; }.curriculo-progress { border-top:3px solid var(--cor-destaque); }.curriculo-nav { display:flex; gap:.4rem; flex-wrap:wrap; }.curriculo-nav a { border-radius:999px; }
@media (max-width: 768px) { .kanban-board { min-height: auto; } .kanban-column { flex-basis: 260px; min-width: 260px; } .dashboard-summary { grid-template-columns:1fr; } .summary-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); } }
@media (max-width: 768px) { .candidate-hero { align-items:flex-start; flex-wrap:wrap; } .candidate-hero .btn { margin-left:0; } .checklist-grid { grid-template-columns:repeat(2, minmax(0,1fr)); } .application-detail, .vacancy-detail { grid-template-columns:1fr; } .vacancy-apply { position:static; } .vacancy-filter { grid-template-columns:1fr; } .curriculo-hero { align-items:flex-start; flex-direction:column; } }
@media (max-width: 768px) { .rh-profile-hero { align-items:flex-start; flex-wrap:wrap; }.rh-profile-meta { margin-left:0; text-align:left; }.rh-profile-layout { grid-template-columns:1fr; }.profile-sticky { position:static; }.profile-facts { grid-template-columns:1fr; } }
@media (max-width: 768px) { .rbac-summary, .rbac-layout { grid-template-columns:1fr; } }

/* Responsividade */
@media (max-width: 1024px) { .grid.cols-4 { grid-template-columns: repeat(2, 1fr); } .grid.cols-3 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 768px) {
    .app { grid-template-columns: minmax(0, 1fr); grid-template-areas: "header" "main" "footer"; min-width:0; }
    .app-sidebar { position: fixed; inset: 0 auto 0 0; width: 260px; transform: translateX(-100%); transition: transform .2s ease; z-index: 40; }
    .app-sidebar.aberta { transform: translateX(0); }
    .app-sidebar-backdrop.ativa { display: block; position: fixed; inset: 0; background: rgba(0,0,0,.4); z-index: 30; }
    .menu-mobile-btn { display: inline-flex; }
    .grid.cols-2, .grid.cols-3, .grid.cols-4 { grid-template-columns: 1fr; }
    .app-header, .app-main, .app-footer { width:100%; max-width:100%; min-width:0; }
    .app-header { align-items:flex-start; padding:.75rem 1rem; }
    .app-header > div:last-child { flex-wrap:wrap; justify-content:flex-end; min-width:0; }
    .app-main { padding: 1rem; }
    .app-footer { padding:1rem; }
    .btn { min-height:44px; }
    .btn.pequeno { min-height:36px; }
    .page-heading, .table-toolbar { align-items:flex-start; }
    .table-toolbar { gap:.5rem; flex-wrap:wrap; }
}
@media (max-width: 400px) { .app-header { padding: .6rem .75rem; } .app-header > div:last-child > span { display:none; } .page-heading h2 { font-size:1.45rem; } .summary-grid, .checklist-grid { grid-template-columns:1fr; } }

/* ===== Card de aprovação no dashboard do candidato (BUILD 30) ===== */
.approval-card{display:flex;gap:1.25rem;align-items:flex-start;background:var(--superficie);border:1px solid var(--borda);border-left:6px solid #16a34a;border-radius:.75rem;padding:1.5rem 1.75rem;margin-bottom:1.5rem;box-shadow:0 10px 30px rgba(0,0,0,.08)}
.approval-card-icon{font-size:2.5rem;line-height:1;flex:none}
.approval-card-body{flex:1;min-width:0}
.approval-card-kicker{color:#16a34a;font-weight:800;text-transform:uppercase;letter-spacing:.05em;font-size:.85rem;margin:0 0 .25rem}
.approval-card-body h2{margin:0 0 .85rem;color:var(--cor-texto);font-size:1.4rem;line-height:1.25}
.approval-card-obs{background:rgba(22,163,74,.10);border-radius:.5rem;padding:.85rem 1rem;margin-bottom:1.1rem}
.approval-card-obs-title{margin:0 0 .45rem;font-weight:700;color:var(--cor-texto);font-size:.9rem}
.approval-card-obs ul{margin:0;padding:0;list-style:none;display:grid;gap:.45rem}
.approval-card-obs li{display:flex;justify-content:space-between;gap:1rem;color:var(--cor-texto);font-size:.92rem;line-height:1.4}
.approval-card-obs li time{color:var(--suave);font-size:.82rem;white-space:nowrap}
.approval-card-btn{background:#16a34a;border-color:#16a34a}
.approval-card-btn:hover{background:#15803d;border-color:#15803d}
@media(max-width:560px){.approval-card{flex-direction:column;gap:.75rem;padding:1.25rem}.approval-card-obs li{flex-direction:column;gap:.15rem}}

/* ===== Wizard do currículo (BUILD 30) ===== */
.wizard-bar{position:sticky;top:.5rem;z-index:5}
.wizard-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.6rem}
.wizard-counter{font-weight:800;color:var(--cor-destaque);text-transform:uppercase;font-size:.8rem;letter-spacing:.04em}
.wizard-steptitle{color:var(--suave);font-size:.9rem;text-align:right}
.wizard-progress{margin-bottom:.85rem}
.wizard-dots{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;margin:0;padding:0}
/* Cada etapa é uma etiqueta com o NOME (número num selinho ao lado). */
.wizard-dots li{display:inline-flex;align-items:center;gap:.45rem;padding:.32rem .7rem .32rem .38rem;border-radius:999px;background:var(--superficie-2);color:var(--suave);font-weight:600;font-size:.8rem;line-height:1.15;cursor:pointer;border:2px solid var(--borda);transition:.2s}
.wizard-dots li .wizard-dot-num{width:20px;height:20px;flex:none;display:grid;place-items:center;border-radius:50%;background:var(--borda);color:var(--texto);font-weight:800;font-size:.72rem}
.wizard-dots li.ativo{background:var(--cor-primaria);color:#fff;border-color:var(--cor-primaria)}
.wizard-dots li.ativo .wizard-dot-num{background:rgba(255,255,255,.28);color:#fff}
.wizard-dots li.feito{background:#16a34a;color:#fff;border-color:#16a34a}
.wizard-dots li.feito .wizard-dot-num{background:rgba(255,255,255,.28);color:#fff}
.wizard-nav{display:flex;justify-content:space-between;gap:1rem;margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--borda)}
@media(max-width:560px){.wizard-nav .btn{flex:1}.wizard-steptitle{display:none}.wizard-dots{gap:.3rem}.wizard-dots li{font-size:.74rem;padding:.28rem .6rem .28rem .32rem}.wizard-dots li .wizard-dot-num{width:18px;height:18px;font-size:.68rem}}

/* ===== Paginação (override da view tailwind padrão do Laravel) ===== */
.paginacao{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;margin-top:1.5rem}
.paginacao-info{color:var(--suave);font-size:.85rem}
.paginacao-links{display:flex;gap:.35rem;flex-wrap:wrap}
.paginacao-item{min-width:38px;height:38px;padding:0 .6rem;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--borda);border-radius:8px;background:var(--superficie);color:var(--cor-texto);font-weight:600;font-size:.85rem;transition:.15s}
.paginacao-item:hover{background:var(--superficie-2);text-decoration:none;border-color:var(--cor-destaque)}
.paginacao-item.ativo{background:var(--cor-primaria);border-color:var(--cor-primaria);color:#fff}
.paginacao-item.disabled{color:var(--suave);background:var(--superficie-2);cursor:default;opacity:.6}
@media(max-width:560px){.paginacao{justify-content:center}.paginacao-info{width:100%;text-align:center;order:2}}

/* ===== Asterisco vermelho em campos obrigatórios ===== */
.campo:has(> input[required], > select[required], > textarea[required]) > label::after {
    content: " *";
    color: #dc2626;
    font-weight: 700;
}
/* Asterisco manual (campos obrigatórios sem atributo required no HTML, ex.: itens
   de coleção que só valem quando preenchidos). */
.obrigatorio { color: #dc2626; font-weight: 700; }

/* ===== Minhas candidaturas (dashboard do candidato) ===== */
.candidate-applications .app-row{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;padding:.9rem 0;border-bottom:1px solid var(--borda)}
.candidate-applications .app-row:last-of-type{border-bottom:none}
.app-row-info{display:flex;flex-direction:column;gap:.15rem;min-width:0}
.app-row-info strong{color:var(--cor-primaria)}
.app-row-local,.app-row-data{color:var(--suave);font-size:.8rem}
.app-row-acoes{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}
.app-row-rodape{margin-top:1rem;text-align:right}
.app-empty{text-align:center;padding:1.5rem .5rem;display:flex;flex-direction:column;align-items:center;gap:1rem}
.app-empty p{color:var(--suave);margin:0}
@media(max-width:560px){.candidate-applications .app-row{flex-direction:column;align-items:flex-start}.app-row-rodape{text-align:center}}
@media(max-width:1024px){
    .app-candidato .tabela-scroll{overflow:visible}
    .app-candidato table.tabela{min-width:0!important;max-width:100%;table-layout:fixed}
    .app-candidato table.tabela,.app-candidato table.tabela tbody,.app-candidato table.tabela tr,.app-candidato table.tabela td{display:block;width:100%;box-sizing:border-box}
    .app-candidato table.tabela thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
    .app-candidato table.tabela tr{margin-bottom:1rem;padding:.4rem .9rem;border:1px solid var(--borda);border-radius:12px;background:var(--superficie)}
    .app-candidato table.tabela td{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 0;text-align:right!important;white-space:normal!important}
    .app-candidato table.tabela td::before{content:attr(data-label);flex:0 0 38%;color:var(--suave);font-size:.72rem;font-weight:800;letter-spacing:.04em;text-align:left;text-transform:uppercase}
    .app-candidato table.tabela td:first-child{align-items:flex-start}
    .app-candidato .candidate-application-actions{display:flex!important;align-items:stretch!important;flex-direction:column;flex-wrap:nowrap}
    .app-candidato .candidate-application-actions::before{flex:0 0 auto}
    .app-candidato .candidate-application-actions>a,.app-candidato .candidate-application-actions>form{width:100%}
    .app-candidato .candidate-application-actions .btn{width:100%;justify-content:center}
}

/* ===== Conteúdo enviado pelo candidato: força quebra de palavras longas =====
   Textos livres (resumo, atividades, observações) podem vir com sequências sem
   espaço (ex.: "aaaa...") que estouram o card e quebram o layout da página. */
.profile-summary,
.profile-entry,
.profile-facts strong,
.app-row-info strong,
.approval-card-obs li,
.card p,
table.tabela td { overflow-wrap: break-word; }
/* .profile-entry é um grid; seus itens têm min-width:auto e não encolhem abaixo
   do texto (um "palavrão" sem espaços mantém a largura e estoura para a direita).
   min-width:0 libera o encolhimento para o overflow-wrap quebrar a palavra. */
.profile-entry, .profile-entry > * { min-width: 0; }

/* ===== Observação do RH: destaque amarelo com ⚠️ (tela do candidato) ===== */
.obs-rh{display:flex;gap:.85rem;align-items:flex-start;background:#fffbeb;border:1px solid #fde68a;border-left:5px solid #f59e0b;border-radius:.5rem;padding:1rem 1.1rem;margin-bottom:1rem}
.obs-rh-icone{font-size:1.35rem;line-height:1.2;flex:none}
.obs-rh-corpo{min-width:0}
.obs-rh-titulo{margin:0 0 .25rem;font-weight:800;color:#92400e;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}
.obs-rh-texto{margin:0;color:#78350f;line-height:1.55;overflow-wrap:break-word;white-space:pre-line}
:root[data-theme="dark"] .obs-rh{background:#3a2c07;border-color:#78500a}
:root[data-theme="dark"] .obs-rh-titulo{color:#fcd34d}
:root[data-theme="dark"] .obs-rh-texto{color:#fde68a}

/* ===== Timeline: etapa não alcançada (processo encerrado) ===== */
.tl-item.bloqueada .tl-marca{background:#fee2e2;color:#991b1b;border-color:#fecaca}
.tl-item.bloqueada .tl-corpo strong{color:var(--suave);text-decoration:line-through}
.tl-nao-alcancada{display:block;font-size:.75rem;color:#991b1b;font-weight:600;margin-top:.15rem}
:root[data-theme="dark"] .tl-item.bloqueada .tl-marca{background:#4c1d1d;color:#fca5a5;border-color:#7f1d1d}

/* ===== Envio de documentação (Pré-aprovado) ===== */
.doc-envio{background:var(--superficie-2);border:1px dashed var(--borda);border-radius:.5rem;padding:1.1rem;margin-bottom:1rem}
.doc-envio-titulo{margin:0 0 .3rem;font-weight:800;color:var(--cor-primaria);font-size:.9rem}
.doc-envio-texto{margin:0 0 .85rem;color:var(--suave);font-size:.88rem;line-height:1.5}
.doc-envio-campo{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer}
.doc-envio-campo input[type="file"]{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}
.doc-envio-campo span{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:.6rem 1.1rem;border:2px solid var(--cor-primaria);border-radius:2px;color:var(--cor-primaria);font-weight:700;font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;font-family:var(--fonte-titulo,var(--fonte))}
.doc-envio-campo input[type="file"]:focus-visible + span{outline:3px solid var(--cor-destaque);outline-offset:3px}
.doc-envio-lista{list-style:none;margin:.85rem 0 0;padding:0;display:grid;gap:.35rem}
.doc-envio-lista li{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--cor-texto);background:var(--superficie);border:1px solid var(--borda);border-radius:.35rem;padding:.45rem .6rem}
.doc-envio-lista li::before{content:"📎";flex:none}
.doc-envio-aviso{margin:.85rem 0 0;font-size:.8rem;color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:.35rem;padding:.5rem .7rem}
:root[data-theme="dark"] .doc-envio-aviso{background:#3a2c07;border-color:#78500a;color:#fcd34d}
/* ---- Anexos reais da pré-aprovação ---- */
.doc-aviso-mte{display:flex;gap:.75rem;align-items:flex-start;background:#fffbeb;border:1px solid #fbbf24;border-left:5px solid #f59e0b;border-radius:.5rem;padding:.9rem 1rem;margin:0 0 1rem}
.doc-aviso-mte-icone{font-size:1.3rem;line-height:1.1;flex:none}
.doc-aviso-mte>div{min-width:0}
/* Só o título (strong filho direto) é bloco; negrito no meio da frase fica inline. */
.doc-aviso-mte>div>strong{display:block;color:#92400e;font-size:.9rem;margin-bottom:.4rem}
.doc-aviso-mte p{margin:.6rem 0 0;color:#78350f;font-size:.85rem;line-height:1.55}
.doc-aviso-mte p:first-of-type{margin-top:0}
.doc-aviso-mte p strong{display:inline;color:inherit;font-size:inherit;margin:0}
:root[data-theme="dark"] .doc-aviso-mte{background:#3a2c07;border-color:#78500a}
:root[data-theme="dark"] .doc-aviso-mte>div>strong{color:#fcd34d}
:root[data-theme="dark"] .doc-aviso-mte p{color:#fde68a}
.doc-lista{display:grid;gap:.7rem}
.doc-item{background:var(--superficie);border:1px solid var(--borda);border-radius:.5rem;padding:.8rem .9rem}
.doc-item-destaque{border-color:var(--cor-destaque);border-left:4px solid var(--cor-destaque)}
.doc-item-cab{display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.doc-item-cab strong{font-size:.9rem}
.doc-item-obs{margin:.4rem 0 0;font-size:.8rem;color:var(--suave);line-height:1.45}
.doc-item-destaque .doc-item-obs{color:#92400e;font-weight:600}
:root[data-theme="dark"] .doc-item-destaque .doc-item-obs{color:#fcd34d}
.doc-item-arquivo{margin:.5rem 0 0;font-size:.82rem}
.doc-item-form{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-top:.6rem}
.doc-item-form input[type="file"]{flex:1;min-width:0;font-size:.82rem;padding:.4rem 0}
@media (max-width:480px){.doc-item-form{display:grid;grid-template-columns:minmax(0,1fr)}.doc-item-form input[type="file"],.doc-item-form .btn{width:100%;max-width:100%}}
.badge.ok{background:#dcfce7;color:#166534}
:root[data-theme="dark"] .badge.ok{background:#14351f;color:#86efac}

/* O detalhe da candidatura/vaga tem 2 colunas, mas o painel já gasta ~260px com
   a sidebar: abaixo de 1024px as colunas ficam estreitas demais (texto quebrando
   no meio da palavra). Colapsa para 1 coluna antes disso. */
@media (max-width: 1024px) {
    .application-detail, .vacancy-detail { grid-template-columns: 1fr; }
}

/* Links dentro das observações do RH: legíveis sobre o fundo amarelo. */
.obs-rh-texto a{color:#92400e;font-weight:700;text-decoration:underline;overflow-wrap:break-word}
.obs-rh-texto a:hover{color:#78350f}
:root[data-theme="dark"] .obs-rh-texto a{color:#fcd34d}
.tl-obs a{color:var(--cor-primaria);font-weight:600;text-decoration:underline;overflow-wrap:break-word}

/* ===== Dark mode: contraste de títulos, links e textos "navy" =====
   No claro esses elementos usam var(--cor-primaria) (#004069) como COR de texto;
   no escuro ficariam navy sobre navy (ilegível). Aqui recebem tons claros. */
:root[data-theme="dark"] h1,
:root[data-theme="dark"] h2,
:root[data-theme="dark"] h3,
:root[data-theme="dark"] h4,
:root[data-theme="dark"] h5,
:root[data-theme="dark"] h6 { color: #e9eef6; }
:root[data-theme="dark"] a { color: #7fb3e3; }
:root[data-theme="dark"] .cel-candidato .n,
:root[data-theme="dark"] .kanban-column-header,
:root[data-theme="dark"] .kanban-card-name,
:root[data-theme="dark"] .summary-grid strong,
:root[data-theme="dark"] .chart-label strong,
:root[data-theme="dark"] .permission-group > strong,
:root[data-theme="dark"] .app-row-info strong,
:root[data-theme="dark"] .profile-facts strong,
:root[data-theme="dark"] .doc-envio-titulo { color: #d3dfec; }
:root[data-theme="dark"] .tl-obs a,
:root[data-theme="dark"] .checklist-heading a { color: #7fb3e3; }
/* Botão secundário e link "voltar": borda/texto navy → tom claro no escuro. */
:root[data-theme="dark"] .btn.secundario { border-color: #5b7fa6; color: #d3dfec; }
:root[data-theme="dark"] .back-link { color: #7fb3e3; }
/* "Selecionar arquivos" (anexo): contorno navy → claro. */
:root[data-theme="dark"] .doc-envio-campo span { color: #d3dfec; border-color: #4a6f96; }

/* ===== Barra de ação em lote (listagem de candidatos) ===== */
.lote-bar{position:fixed;left:50%;bottom:1rem;transform:translateX(-50%);z-index:45;display:flex;flex-wrap:wrap;align-items:center;gap:.85rem;width:min(960px,calc(100% - 2rem));background:var(--superficie);border:1px solid var(--borda);border-radius:.6rem;box-shadow:0 14px 40px rgba(0,20,38,.22);padding:.75rem 1rem}
.lote-bar[hidden]{display:none}
.lote-bar-info{font-size:.9rem;color:var(--cor-texto);white-space:nowrap}
.lote-bar-info strong{color:var(--cor-destaque);font-size:1.05rem}
.lote-bar-campos{display:flex;flex-wrap:wrap;gap:.6rem;flex:1;min-width:220px}
.lote-bar-campos select,.lote-bar-campos input{min-height:40px;padding:.5rem .7rem;border:1px solid var(--borda);border-radius:8px;background:var(--superficie);color:var(--cor-texto);font:inherit}
.lote-bar-campos select{flex:1 1 200px;min-width:180px}
.lote-bar-campos input[name="observacao"]{flex:2 1 200px;min-width:160px}
.lote-bar-campos input[type="number"]{flex:0 0 140px;max-width:140px;min-width:120px}
.lote-bar-acoes{display:flex;gap:.5rem;flex-shrink:0}
@media(max-width:860px){.lote-bar{flex-direction:column;flex-wrap:nowrap;align-items:stretch}.lote-bar-campos{flex-direction:column;flex-wrap:nowrap;min-width:0}.lote-bar-campos select,.lote-bar-campos input[name="observacao"],.lote-bar-campos input[type="number"]{flex:1 1 auto;max-width:none;min-width:0}.lote-bar-acoes{justify-content:space-between}}

/* ===== Dashboard: filtro por vaga + esteira ===== */
.dashboard-filtro{margin-bottom:1.25rem}
.dashboard-filtro-form{display:flex;align-items:flex-end;gap:1rem;flex-wrap:wrap}
.dashboard-filtro-form .campo{margin:0;flex:1;min-width:240px}
.dashboard-esteira{display:flex;align-items:stretch;gap:.5rem;flex-wrap:wrap}
.esteira-etapa{flex:1;min-width:120px;text-align:center;background:var(--superficie-2);border:1px solid var(--borda);border-radius:.6rem;padding:1rem .75rem}
.esteira-etapa strong{display:block;font-size:1.9rem;font-weight:800;font-family:var(--fonte-titulo,var(--fonte));color:var(--cor-destaque);line-height:1}
.esteira-etapa span{display:block;margin-top:.4rem;font-size:.78rem;color:var(--suave);font-weight:600;text-transform:uppercase;letter-spacing:.03em}
.esteira-seta{display:flex;align-items:center;color:var(--suave);font-size:1.3rem;flex:none}
@media(max-width:760px){.dashboard-esteira{flex-direction:column}.esteira-seta{transform:rotate(90deg);align-self:center}.esteira-etapa{min-width:0}}

/* Card de curso parceiro — DESTAQUE forte na pré-aprovação (RA Cursos) */
.curso-parceiro-destaque{position:relative;margin:1.25rem 0;padding:1.4rem 1.25rem 1.25rem;border:2px solid #16a34a;border-radius:.85rem;background:linear-gradient(135deg,#f0fdf4 0%,#ffffff 65%);box-shadow:0 10px 30px -12px rgba(22,163,74,.45);animation:curso-parceiro-glow 2.6s ease-in-out infinite;overflow:hidden}
.curso-parceiro-destaque::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 80% at 100% 0%,rgba(22,163,74,.10),transparent 60%)}
@keyframes curso-parceiro-glow{0%,100%{box-shadow:0 10px 30px -12px rgba(22,163,74,.35)}50%{box-shadow:0 12px 34px -10px rgba(22,163,74,.6)}}
.curso-parceiro-selo{position:relative;z-index:1;display:inline-block;background:#16a34a;color:#fff;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:.3rem .7rem;border-radius:999px;box-shadow:0 3px 8px -2px rgba(22,163,74,.55)}
.curso-parceiro-chamada{position:relative;z-index:1;margin:.7rem 0 .6rem;font-weight:700;color:#14532d;font-size:.98rem}
.curso-parceiro-conteudo{position:relative;z-index:1;display:flex;gap:1.1rem;align-items:center}
.curso-parceiro-foto{flex:none;width:130px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:.5rem;padding:.4rem;box-shadow:0 2px 6px -2px rgba(0,0,0,.12)}
.curso-parceiro-foto img{max-width:100%;height:auto;display:block}
.curso-parceiro-corpo{display:flex;flex-direction:column;gap:.25rem;min-width:0}
.curso-parceiro-corpo strong{font-size:1.15rem;color:#0f172a;line-height:1.2}
.curso-parceiro-desc{font-size:.9rem;color:#3f6212;line-height:1.5}
.curso-parceiro-botao{align-self:flex-start;margin-top:.55rem;display:inline-flex;align-items:center;gap:.4rem;background:#16a34a;color:#fff;font-weight:800;font-size:.95rem;text-decoration:none;padding:.6rem 1.15rem;border-radius:.55rem;box-shadow:0 6px 16px -6px rgba(22,163,74,.6);transition:transform .15s,box-shadow .15s,background .15s}
.curso-parceiro-botao:hover{background:#15803d;transform:translateY(-2px);box-shadow:0 10px 22px -8px rgba(22,163,74,.7)}
.curso-parceiro-botao:active{transform:translateY(0)}
:root[data-theme="dark"] .curso-parceiro-destaque{background:linear-gradient(135deg,#0d2818 0%,#0b1b2b 70%);border-color:#22c55e}
:root[data-theme="dark"] .curso-parceiro-chamada{color:#bbf7d0}
:root[data-theme="dark"] .curso-parceiro-corpo strong{color:#e2e8f0}
:root[data-theme="dark"] .curso-parceiro-desc{color:#86efac}
@media(max-width:560px){.curso-parceiro-conteudo{flex-direction:column;align-items:flex-start}.curso-parceiro-foto{width:170px}.curso-parceiro-botao{align-self:stretch;justify-content:center}}
@media(prefers-reduced-motion:reduce){.curso-parceiro-destaque{animation:none}}

/* Checkbox inline (ex.: "Indicar curso parceiro" no form de status do RH) */
.check-inline{display:flex;gap:.5rem;align-items:flex-start;font-size:.85rem;color:#334155;margin:.25rem 0 .75rem;cursor:pointer}
.check-inline input{margin-top:.15rem;flex:none}
:root[data-theme="dark"] .check-inline{color:#cbd5e1}

/* Candidatura rápida no passo Objetivo do currículo */
.vagas-rapidas{margin-top:1.25rem;padding-top:1rem;border-top:1px dashed #cbd5e1}
.vagas-rapidas h4{margin:0 0 .25rem;font-size:1rem}
.vagas-rapidas-lista{display:grid;gap:.5rem;margin:.6rem 0}
.vaga-rapida{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem .85rem;border:1px solid #e2e8f0;border-radius:.55rem;background:#f8fafc}
.vaga-rapida-info{display:flex;flex-direction:column;min-width:0}
.vaga-rapida-info strong{font-size:.95rem;color:#0f172a}
.vaga-rapida-info span{font-size:.82rem;color:#64748b}
.vaga-rapida-ok{font-size:.85rem;font-weight:700;color:#16a34a;white-space:nowrap}
.vagas-rapidas-todas{display:inline-block;margin-top:.35rem;font-size:.85rem;font-weight:600}
:root[data-theme="dark"] .vagas-rapidas{border-top-color:#334155}
:root[data-theme="dark"] .vaga-rapida{background:#0f1e2e;border-color:#1e293b}
:root[data-theme="dark"] .vaga-rapida-info strong{color:#e2e8f0}
:root[data-theme="dark"] .vaga-rapida-info span{color:#94a3b8}
@media(max-width:480px){.vaga-rapida{flex-direction:column;align-items:stretch}.vaga-rapida form,.vaga-rapida .btn{width:100%}}

/* Campo de NRs por tags no formulário de vaga */
.nrs-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.5rem;min-height:1.4rem}
.nrs-tag{display:inline-flex;align-items:center;gap:.35rem;background:var(--cor-primaria);color:#fff;font-size:.8rem;font-weight:600;padding:.25rem .35rem .25rem .6rem;border-radius:999px}
.nrs-tag-x{background:rgba(255,255,255,.22);color:#fff;border:none;border-radius:50%;width:18px;height:18px;line-height:1;cursor:pointer;font-size:.95rem;display:inline-flex;align-items:center;justify-content:center;padding:0}
.nrs-tag-x:hover{background:rgba(255,255,255,.4)}
.nrs-add{display:flex;gap:.5rem;align-items:center}
.nrs-add input{flex:1;min-width:0}
:root[data-theme="dark"] .nrs-tag{color:#fff}
