/* =====================================================================
   empregos2 — folha única (site público + áreas logadas). Sem framework,
   sem fonte externa. Celular primeiro; contraste AA em todos os pares.
   Identidade: cabeçalho preto do portal, azul de ação, laranja do Guia.
   ===================================================================== */
:root {
  --preto: #000;
  --grafite: #111827;
  --texto: #16202e;
  --texto-2: #3b4656;
  --texto-3: #5b6576;
  --borda: #dfe4eb;
  --borda-forte: #c9d1dc;
  --borda-campo: #7c8aa0;   /* borda de campo: 3,5:1 sobre branco (WCAG 1.4.11) */
  --fundo: #f3f5f8;
  --fundo-2: #f0f3f7;
  --cartao: #fff;
  --azul: #0050b4;
  --azul-escuro: #13294b;
  --azul-hover: #003f8f;
  --azul-claro: #e8f0fb;
  --azul-borda: #b9cff0;
  --azul-texto: #0a3f8a;
  --marinho: #13294b;       /* faixa do canal, títulos */
  --marinho-2: #0f1f38;
  --marinho-texto: #c5d3e8; /* texto claro sobre o marinho: 9:1 */
  --ambar: #f2a93b;
  --ambar-hover: #f6bb5f;
  --laranja: #c2410c;
  --laranja-vivo: #f97316;
  --laranja-claro: #fff4ed;
  --verde: #1b6b43;
  --verde-claro: #e5f3ea;
  --amarelo: #b45309;
  --amarelo-claro: #fff8ec;
  --vermelho: #b91c1c;
  --vermelho-claro: #fef2f2;
  --roxo: #6d28d9;
  --roxo-claro: #f5f3ff;
  --r: 14px;
  --r-p: 10px;
  --sombra: 0 1px 2px rgba(19, 41, 75, .05);
  --sombra-alta: 0 10px 30px rgba(15, 31, 56, .18);
  --sombra-hover: 0 8px 24px -14px rgba(19, 41, 75, .4);
  --fonte: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
  --fonte-canal: "Figtree", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --largura: 1200px;
}
/* Figtree (SIL OFL), servida pelo próprio canal: só o subconjunto latino (cobre o português), fonte variável */
@font-face {
  font-family: "Figtree";
  font-style: normal;
  font-weight: 300 900;
  font-display: swap;
  src: url("fontes/figtree-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}
body { margin: 0; font-family: var(--fonte-canal); font-size: 16px; line-height: 1.55; color: var(--texto); background: var(--fundo); }
img { max-width: 100%; height: auto; }
a { color: var(--azul); text-underline-offset: 2px; }
a:hover { color: var(--azul-hover); }
h1, h2, h3, h4 { line-height: 1.25; margin: 0 0 .5em; color: var(--texto); }
h1 { font-size: 1.6rem; font-weight: 800; letter-spacing: -.01em; }
h2 { font-size: 1.3rem; font-weight: 750; }
h3 { font-size: 1.08rem; font-weight: 700; }
p { margin: 0 0 1em; }
ul { margin: 0; padding: 0; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 3px solid #c2410c; outline-offset: 2px; border-radius: 4px; }
[hidden] { display: none !important; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.pular { position: absolute; left: 8px; top: -60px; z-index: 1000; background: #fff; color: var(--azul); padding: 10px 14px; border-radius: 8px; font-weight: 700; }
.pular:focus { top: 8px; }
.isca { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.ic { width: 1.15em; height: 1.15em; flex: none; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; vertical-align: -.2em; }
.ic-cheio { fill: currentColor; stroke: none; }
.cont { width: 100%; max-width: var(--largura); margin: 0 auto; padding: 0 16px; }
.pilha > * + * { margin-top: 16px; }
.linha { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.linha-entre { display: flex; gap: 12px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.muted { color: var(--texto-2); }
.pequeno { font-size: .875rem; }
.centro { text-align: center; }
.so-desktop {  }
@media (max-width: 999px) {
  .so-desktop { display: none !important; }
}
@media (min-width: 1000px) {
  .so-celular { display: none !important; }
}
/* --------------------------- faixa de teste --------------------------- */
.faixa-dev { background: #27272a; color: #e4e4e7; font-size: .8rem; line-height: 1.4; text-align: center; padding: 5px 16px; }
.faixa-dev a { color: #fde68a; font-weight: 700; }
/* --------------------------- topo no formato do portal --------------------------- */
/* O mesmo formato da agenda e do canal atual: barra preta, logo de 225 x 100 com o menu ao lado
   (ícone + nome, seta no item que abre lista, divisória fina) e "Entrar" à direita.
   Celular: ícone do logo + nome do portal e o botão de menu. */
.topo { background: #000; color: #fff; position: relative; z-index: 50; }
.topo :focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.topo-int { display: flex; align-items: center; min-height: 56px; padding-top: 6px; padding-bottom: 6px; }
.topo-logo { display: flex; align-items: center; gap: 6px; flex: none; min-height: 44px; color: #fff; text-decoration: none; }
.topo-logo:hover { color: #fff; }
.topo-logo img { display: block; width: 32px; height: 32px; object-fit: contain; }
.topo-nome { font-size: 24px; font-weight: 600; line-height: 1; white-space: nowrap; }
.topo-nav { display: none; }
.topo-acoes { margin-left: auto; display: flex; align-items: center; gap: 6px; }
.btn-entrar { display: inline-flex; align-items: center; gap: 6px; background: #2563eb; color: #fff; padding: 8px 16px; border-radius: 8px; text-decoration: none; font-size: .9rem; font-weight: 500; white-space: nowrap; transition: background-color .2s ease; }
.btn-entrar:hover { background: #1d4ed8; color: #fff; }
.btn-entrar .ic { width: .95em; height: .95em; }
.topo-btn-menu { background: none; border: 0; color: #fff; padding: 10px; border-radius: 4px; cursor: pointer; display: inline-flex; }
.topo-btn-menu:hover { background: rgba(255, 255, 255, .1); }
.topo-btn-menu .ic { width: 28px; height: 28px; }
@media (max-width: 400px) {
  .topo-nome { font-size: 20px; }
  .btn-entrar { padding: 8px 10px; }
}
@media (max-width: 359px) {
  .topo-nome { display: none; }
}
@media (min-width: 769px) {
  .topo-int { min-height: 112px; }
  .topo-logo img { width: 225px; height: 100px; }
  .topo-nome { display: none; }
}
@media (min-width: 1100px) {
  .topo-nav { display: flex; margin-left: 32px; }
  .topo-btn-menu { display: none; }
}
.topo-menu { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; }
.topo-menu > li { position: relative; display: flex; border-right: 1px solid #333; }
.topo-menu > li:last-child { border-right: 0; }
.topo-menu > li > a { display: flex; align-items: center; gap: 4px; padding: 8px 10px; color: #fff; text-decoration: none; font-size: .98rem; font-weight: 500; white-space: nowrap; transition: background-color .3s ease, color .3s ease; }
.topo-menu > li > a .ic { width: 1em; height: 1em; }
.topo-menu > li > a .seta { width: .8em; height: .8em; margin-left: 4px; transition: transform .3s ease; }
.topo-menu > li > a:hover, .topo-menu > li:focus-within > a, .topo-menu > li > a[aria-current="page"] { background: #fff; color: #000; }
.topo-menu > li > a:focus-visible { outline-color: #2563eb; outline-offset: -2px; }
.topo-menu > li.tem-sub:hover .seta, .topo-menu > li.tem-sub:focus-within .seta { transform: rotate(180deg); }
.topo-sub { position: absolute; top: 100%; left: 0; width: 560px; background: #fff; color: #444; padding: 16px; box-shadow: 0 5px 15px rgba(0, 0, 0, .2); opacity: 0; visibility: hidden; transform: translateY(-10px); transition: opacity .3s ease, transform .3s ease, visibility .3s; z-index: 70; text-align: left; }
.topo-menu > li.tem-sub:hover > .topo-sub, .topo-menu > li.tem-sub:focus-within > .topo-sub { opacity: 1; visibility: visible; transform: none; }
.topo-menu > li.tem-sub.fechado > .topo-sub { opacity: 0; visibility: hidden; }
.topo-sub ul { list-style: none; margin: 0; padding: 0; }
.topo-sub-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 20px; }
.topo-sub a { display: block; position: relative; padding: 2px 0 2px 14px; font-size: 13px; line-height: 18px; color: #444; text-decoration: none; }
.topo-sub a::before { content: ""; position: absolute; left: 3px; top: 8px; border-left: 4px solid #999; border-top: 3px solid transparent; border-bottom: 3px solid transparent; }
.topo-sub a:hover { text-decoration: underline; background: rgba(13, 110, 253, .05); }
.topo-sub a:focus-visible { outline-color: #2563eb; outline-offset: 0; }
.topo-sub .ver-todas a { font-weight: 600; color: #0b5ed7; }
.topo-sub-secao { margin-top: 12px; padding-top: 12px; border-top: 1px solid #eee; }
.topo-sub-titulo { margin: 0 0 6px; font-weight: 700; font-size: 14px; color: #444; }
.topo-sub .gratis { font-weight: 700; color: #008000; }
.topo-sub.estreita { width: 280px; }
.topo-sub.chapada { width: 240px; padding: 12px 16px; }
.topo-sub.estreita ul, .topo-sub.chapada ul { display: grid; gap: 4px; }
.usuario-menu { position: relative; }
.usuario-btn { display: inline-flex; align-items: center; gap: 8px; background: #18181b; color: #fff; border: 1px solid #3f3f46; border-radius: 999px; padding: 5px 12px 5px 5px; cursor: pointer; font-weight: 600; font-size: .9rem; }
.usuario-btn .avatar { width: 30px; height: 30px; font-size: .8rem; }
.usuario-btn:hover { background: #27272a; }
.suspenso { position: absolute; right: 0; top: calc(100% + 8px); min-width: 230px; background: #fff; color: var(--texto); border-radius: var(--r); box-shadow: var(--sombra-alta); padding: 8px; z-index: 60; border: 1px solid var(--borda); }
.suspenso a, .suspenso button { display: flex; width: 100%; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 8px; color: var(--texto); text-decoration: none; background: none; border: 0; font-size: .95rem; cursor: pointer; text-align: left; }
.suspenso a:hover, .suspenso button:hover { background: var(--fundo); }
.suspenso hr { border: 0; border-top: 1px solid var(--borda); margin: 6px 0; }
.suspenso .ic { color: var(--texto-2); }
.topo .suspenso :focus-visible { outline-color: #2563eb; }
/* gaveta do menu (celular) */
.gaveta-fundo { position: fixed; inset: 0; background: rgba(2, 6, 23, .55); z-index: 90; }
.gaveta { position: fixed; top: 0; bottom: 0; right: 0; width: min(88vw, 360px); background: #fff; z-index: 100; display: flex; flex-direction: column; box-shadow: var(--sombra-alta); transform: translateX(100%); transition: transform .22s ease; }
.gaveta.esquerda { right: auto; left: 0; transform: translateX(-100%); }
.gaveta[data-aberta="1"] { transform: none; }
.gaveta-cab { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px; border-bottom: 1px solid var(--borda); }
.gaveta-cab strong { font-size: 1.05rem; }
.gaveta-corpo { overflow-y: auto; padding: 8px 8px 24px; flex: 1; }
.gaveta-corpo a { display: flex; gap: 12px; align-items: center; padding: 12px; border-radius: 10px; color: var(--texto); text-decoration: none; font-weight: 600; }
.gaveta-corpo a:hover, .gaveta-corpo a[aria-current="page"] { background: var(--azul-claro); color: var(--azul); }
.gaveta-corpo .grupo { font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; color: var(--texto-3); padding: 14px 12px 4px; font-weight: 700; }
.gaveta-pe { padding: 12px 16px; border-top: 1px solid var(--borda); display: flex; gap: 8px; }
.btn-fechar { background: none; border: 0; padding: 8px; border-radius: 8px; cursor: pointer; color: var(--texto-2); display: inline-flex; }
.btn-fechar:hover { background: var(--fundo); }
/* menu do celular no formato do portal: tela cheia, fundo preto, ícones laranja, divisórias */
.gaveta-portal { width: 100vw; background: #000; color: #fff; }
.gaveta-portal :focus-visible { outline: 2px solid #fff; outline-offset: -3px; }
.gaveta-portal .gaveta-cab { min-height: 60px; padding: 0 12px 0 20px; border-bottom: 1px solid #333; }
.gaveta-portal .gaveta-cab strong { color: #fff; font-size: 1.2rem; font-weight: 600; }
.gaveta-portal .btn-fechar { color: #fff; }
.gaveta-portal .btn-fechar:hover { background: rgba(255, 255, 255, .1); }
.gaveta-portal .gaveta-corpo { padding: 0 0 24px; }
.gaveta-portal .gaveta-corpo a { color: #fff; border-radius: 0; padding: 16px 20px; border-bottom: 1px solid #333; font-weight: 500; font-size: 1.05rem; }
.gaveta-portal .gaveta-corpo a .ic { color: #ff6300; width: 22px; height: 22px; }
.gaveta-portal .gaveta-corpo a:hover, .gaveta-portal .gaveta-corpo a[aria-current="page"] { background: #222; color: #fff; }
.gaveta-portal .gaveta-corpo .grupo { color: #ff6300; background: #1a1a1a; padding: 14px 20px 10px; font-size: .85rem; letter-spacing: .05em; }
.gaveta-portal .gaveta-pe { border-top: 1px solid #333; }
/* seções do menu do portal no celular (abrem e fecham, como no portal) */
.menu-secao { border-bottom: 1px solid #333; }
.menu-secao > summary { display: flex; align-items: center; gap: 12px; padding: 16px 20px; color: #fff; font-weight: 500; font-size: 1.05rem; cursor: pointer; list-style: none; }
.menu-secao > summary::-webkit-details-marker { display: none; }
.menu-secao > summary:hover { background: #222; }
.menu-secao > summary .ic { color: #ff6300; width: 22px; height: 22px; }
.menu-secao > summary span { flex: 1; }
.menu-secao > summary .seta { color: #ccc; width: 16px; height: 16px; transition: transform .3s ease; }
.menu-secao[open] > summary .seta { transform: rotate(180deg); }
.gaveta-portal .menu-secao-corpo { background: #111; }
.gaveta-portal .menu-secao-corpo a { display: block; padding: 13px 20px 13px 54px; color: #e0e0e0; font-size: .95rem; font-weight: 400; border-bottom: 1px solid #333; }
.gaveta-portal .menu-secao-corpo a:hover, .gaveta-portal .menu-secao-corpo a[aria-current="page"] { background: #333; color: #fff; }
.menu-secao-extra { background: #1a1a1a; padding: 14px 0 4px; }
.menu-secao-extra p { margin: 0; padding: 0 20px 8px 54px; color: #ff6300; font-size: .85rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.gaveta-portal .menu-secao-extra a { border-bottom: 0; }
.gaveta-portal .gratis { color: #4caf50; font-weight: 700; }
/* --------------------------- botões --------------------------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 10px 18px; border-radius: 10px; border: 1px solid transparent; font-weight: 700; font-size: .98rem; text-decoration: none; cursor: pointer; line-height: 1.2; transition: background .15s, border-color .15s, color .15s, box-shadow .15s; white-space: nowrap; }
.btn-primario { background: var(--azul); color: #fff; }
.btn-primario:hover { background: var(--azul-hover); color: #fff; }
.btn-laranja { background: var(--laranja); color: #fff; }
.btn-laranja:hover { background: #9a3412; color: #fff; }
.btn-contorno { background: #fff; color: var(--azul); border-color: var(--azul-borda); }
.btn-contorno:hover { border-color: var(--azul); background: var(--azul-claro); color: var(--azul-hover); }
.btn-neutro { background: #fff; color: var(--texto); border-color: var(--borda-forte); }
.btn-neutro:hover { background: var(--fundo); color: var(--texto); }
.btn-fantasma { background: transparent; color: var(--texto-2); }
.btn-fantasma:hover { background: var(--fundo); color: var(--texto); }
.btn-perigo { background: #fff; color: var(--vermelho); border-color: #fecaca; }
.btn-perigo:hover { background: var(--vermelho-claro); color: var(--vermelho); }
.btn-wa { background: var(--verde); color: #fff; }
.btn-wa:hover { background: #166534; color: #fff; }
.btn-p { min-height: 36px; padding: 6px 12px; font-size: .88rem; border-radius: 8px; }
.btn-g { min-height: 52px; padding: 14px 24px; font-size: 1.05rem; }
.btn-bloco { width: 100%; }
.btn[disabled], .btn[aria-disabled="true"] { opacity: .55; cursor: not-allowed; }
.btn-icone { width: 44px; height: 44px; padding: 0; border-radius: 999px; }
/* --------------------------- formulário --------------------------- */
.campo { display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px; }
.campo label, .campo legend { font-weight: 650; font-size: .95rem; }
.campo .obrig { color: var(--vermelho); }
.campo .opcional { font-weight: 400; color: var(--texto-3); font-size: .85rem; }
.campo input[type=text], .campo input[type=email], .campo input[type=password], .campo input[type=tel], .campo input[type=number], .campo input[type=url], .campo input[type=date], .campo input[type=month], .campo input[type=search], .campo select, .campo textarea, .entrada { width: 100%; min-height: 46px; padding: 10px 12px; border: 1px solid var(--borda-campo); border-radius: 10px; background: #fff; font-size: 16px; }
.campo textarea { min-height: 120px; resize: vertical; line-height: 1.5; }
.campo input:focus, .campo select:focus, .campo textarea:focus, .entrada:focus { outline: none; border-color: var(--azul); box-shadow: 0 0 0 3px rgba(29, 78, 216, .2); }
.campo .ajuda { margin: 0; font-size: .85rem; color: var(--texto-2); }
.campo-erro input, .campo-erro select, .campo-erro textarea { border-color: var(--vermelho); }
.erro-campo { margin: 0; color: var(--vermelho); font-size: .87rem; font-weight: 600; display: flex; gap: 6px; align-items: center; }
fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.caixas-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 8px; }
.caixa { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border: 1px solid var(--borda); border-radius: 10px; background: #fff; cursor: pointer; font-weight: 500; font-size: .95rem; }
.caixa:hover { border-color: var(--azul-borda); }
.caixa input { margin-top: 3px; width: 18px; height: 18px; accent-color: var(--azul); flex: none; }
.caixa:has(input:checked) { border-color: var(--azul); background: var(--azul-claro); }
.alternar { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border: 1px solid var(--borda); border-radius: 10px; background: #fff; cursor: pointer; }
.alternar input { width: 20px; height: 20px; margin-top: 2px; accent-color: var(--azul); flex: none; }
.alternar strong { display: block; }
.alternar span { color: var(--texto-2); font-size: .9rem; }
.grade-form { display: grid; gap: 0 16px; grid-template-columns: 1fr; }
@media (min-width: 720px) {
  .grade-form { grid-template-columns: 1fr 1fr; }
  .grade-form .inteiro { grid-column: 1 / -1; }
  .grade-form.tres { grid-template-columns: 1fr 1fr 1fr; }
}
.contador { font-size: .8rem; color: var(--texto-3); text-align: right; margin-top: -2px; }
/* --------------------------- avisos --------------------------- */
.aviso { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border-radius: 10px; margin: 0 0 16px; font-size: .95rem; border: 1px solid; }
.aviso .ic { margin-top: 2px; }
.aviso > span { min-width: 0; overflow-wrap: anywhere; }
.aviso-ok { background: var(--verde-claro); border-color: #bbf7d0; color: #14532d; }
.aviso-erro { background: var(--vermelho-claro); border-color: #fecaca; color: #7f1d1d; }
.aviso-info { background: var(--azul-claro); border-color: var(--azul-borda); color: #1e3a8a; }
.aviso-alerta { background: var(--amarelo-claro); border-color: #fde68a; color: #78350f; }
.flashes { padding-top: 16px; }
/* --------------------------- selos e chips --------------------------- */
.selo { display: inline-flex; align-items: center; gap: 4px; padding: 3px 9px; border-radius: 999px; font-size: .78rem; font-weight: 700; line-height: 1.4; white-space: nowrap; }
.selo .ic { width: .95em; height: .95em; }
.selo-neutro { background: #f1f5f9; color: #334155; }
.selo-nova { background: #dcfce7; color: #14532d; }
.selo-ok { background: #dcfce7; color: #14532d; }
.selo-aviso { background: #fef3c7; color: #78350f; }
.selo-urgente { background: #ffedd5; color: #7c2d12; }
.selo-pcd { background: var(--roxo-claro); color: #4c1d95; }
.selo-azul { background: var(--azul-claro); color: #1e3a8a; }
.selo-erro { background: #fee2e2; color: #7f1d1d; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 6px 12px; border-radius: 999px; border: 1px solid var(--borda-forte); background: #fff; color: var(--texto); font-size: .9rem; font-weight: 600; text-decoration: none; cursor: pointer; }
.chip:hover { border-color: var(--azul); color: var(--azul); }
.chip .n { color: var(--texto-3); font-weight: 500; }
.chip[aria-pressed="true"], .chip.ativo { background: var(--azul); border-color: var(--azul); color: #fff; }
.chip[aria-pressed="true"] .n, .chip.ativo .n { color: #dbe5ff; }
/* --------------------------- cartões --------------------------- */
.cartao { background: var(--cartao); border: 1px solid var(--borda); border-radius: var(--r); box-shadow: var(--sombra); padding: 20px; }
.cartao-cab { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; flex-wrap: wrap; }
.cartao-cab h2, .cartao-cab h3 { margin: 0; }
.secao { padding: 28px 0; }
.secao-cab { display: flex; align-items: end; justify-content: space-between; gap: 12px; margin-bottom: 16px; flex-wrap: wrap; }
.secao-cab h2 { margin: 0; }
.ver-mais { font-weight: 700; text-decoration: none; display: inline-flex; gap: 6px; align-items: center; }
.busca-campo { position: relative; display: flex; align-items: center; }
.busca-campo .ic { position: absolute; left: 12px; color: var(--texto-3); pointer-events: none; }
.busca-campo input, .busca-campo select { width: 100%; min-height: 50px; border: 1px solid transparent; border-radius: 10px; padding: 10px 12px 10px 40px; background: var(--fundo); font-size: 16px; color: var(--texto); }
.busca-campo select { appearance: none; -webkit-appearance: none; background-image: linear-gradient(45deg, transparent 50%, #64748b 50%), linear-gradient(135deg, #64748b 50%, transparent 50%); background-position: calc(100% - 18px) 21px, calc(100% - 13px) 21px; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 32px; }
.busca-campo input:focus, .busca-campo select:focus { outline: none; border-color: var(--azul); background: #fff; box-shadow: 0 0 0 3px rgba(29, 78, 216, .2); }
.sugestoes { position: absolute; top: calc(100% + 6px); left: 0; right: 0; background: #fff; border: 1px solid var(--borda); border-radius: 12px; box-shadow: var(--sombra-alta); z-index: 30; padding: 6px; list-style: none; color: var(--texto); }
.sugestoes li a { display: flex; justify-content: space-between; gap: 10px; padding: 10px 12px; border-radius: 8px; text-decoration: none; color: var(--texto); }
.sugestoes li a:hover, .sugestoes li a.ativa { background: var(--azul-claro); }
.sugestoes .tipo { font-size: .75rem; color: var(--texto-3); }
.cv-logo { width: 52px; height: 52px; border-radius: 10px; border: 1px solid var(--borda); background: #fff; display: flex; align-items: center; justify-content: center; overflow: hidden; flex: none; }
.cv-logo img { width: 100%; height: 100%; object-fit: contain; }
.cv-logo .ic { width: 24px; height: 24px; color: var(--texto-3); }
.lista-simples { list-style: none; background: #fff; border: 1px solid var(--borda); border-radius: var(--r); overflow: hidden; }
.lista-simples li + li { border-top: 1px solid var(--borda); }
.lista-simples a { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; justify-content: space-between; padding: 12px 16px; text-decoration: none; color: var(--texto); }
/* o selo de situação ("Visualizada pela empresa") não encolhe: sem espaço, desce para baixo do título */
.lista-simples a > :first-child { flex: 1 1 180px; min-width: 0; }
.lista-simples a > .selo { flex: none; }
.lista-simples a:hover { background: var(--azul-claro); }
.lista-simples .t { font-weight: 650; }
.lista-simples .s { color: var(--texto-2); font-size: .88rem; }
.texto-vaga h2 { font-size: 1.12rem; margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--borda); }
.texto-vaga h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.texto-vaga p, .texto-vaga li { color: #1e293b; }
.texto-vaga ul { padding-left: 1.3em; margin: 0 0 1em; }
.texto-vaga li { margin: 4px 0; }
.cv-atual { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; background: var(--fundo); border-radius: 10px; padding: 10px 12px; margin-bottom: 12px; }
.cv-atual .ic { width: 28px; height: 28px; color: var(--vermelho); }
.cv-atual div { flex: 1 1 200px; min-width: 0; }
.cv-atual strong { display: block; font-size: .92rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.barra-candidatar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 45; background: #fff; border-top: 1px solid var(--borda); box-shadow: 0 -6px 18px rgba(15, 23, 42, .08); padding: 10px 16px max(10px, env(safe-area-inset-bottom)); display: flex; gap: 10px; align-items: center; }
.barra-candidatar .btn { flex: 1; }
@media (min-width: 1000px) {
  .barra-candidatar { display: none; }
}
body.tem-barra { padding-bottom: 76px; }
@media (min-width: 1000px) {
  body.tem-barra { padding-bottom: 0; }
}
.sucesso-candidatura { text-align: center; }
.sucesso-candidatura .ic { width: 52px; height: 52px; color: var(--verde); }
.previa-faixa { background: var(--amarelo-claro); border: 1px solid #fde68a; color: #78350f; border-radius: 10px; padding: 12px 14px; margin: 16px 0 0; font-weight: 600; }
/* --------------------------- empresas --------------------------- */
.empresas-grade { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
@media (min-width: 640px) {
  .empresas-grade { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 1000px) {
  .empresas-grade { grid-template-columns: repeat(6, 1fr); }
}
.empresa-card { background: #fff; border: 1px solid var(--borda); border-radius: var(--r); padding: 14px; text-align: center; text-decoration: none; color: var(--texto); display: flex; flex-direction: column; align-items: center; gap: 8px; box-shadow: var(--sombra); }
.empresa-card:hover { border-color: var(--azul-borda); color: var(--texto); }
.empresa-card .logo { width: 100%; height: 64px; display: flex; align-items: center; justify-content: center; }
.empresa-card .logo img { max-height: 64px; max-width: 100%; object-fit: contain; }
.empresa-card strong { font-size: .92rem; line-height: 1.25; }
.empresa-card span { color: var(--azul); font-weight: 700; font-size: .85rem; }
.empresa-topo { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; }
.empresa-topo .cv-logo { width: 96px; height: 96px; border-radius: 16px; }
/* --------------------------- blocos da home --------------------------- */
.dupla { display: grid; gap: 16px; grid-template-columns: 1fr; }
@media (min-width: 900px) {
  .dupla { grid-template-columns: 1fr 1fr; }
}
.cta-cards { display: grid; gap: 16px; grid-template-columns: 1fr; }
@media (min-width: 800px) {
  .cta-cards { grid-template-columns: 1fr 1fr; }
}
.cta-card { border-radius: var(--r); padding: 24px; display: flex; flex-direction: column; gap: 10px; }
.cta-card h2 { margin: 0; }
.cta-card p { margin: 0; }
.cta-card.candidato { background: linear-gradient(135deg, #eff4ff, #e0e9ff); border: 1px solid var(--azul-borda); }
.cta-card.empresa { background: linear-gradient(135deg, #fff4ed, #ffe7d6); border: 1px solid #fed7aa; }
.cta-card .linha { margin-top: 6px; }
.passos { display: grid; gap: 12px; grid-template-columns: 1fr; counter-reset: passo; list-style: none; }
@media (min-width: 800px) {
  .passos { grid-template-columns: repeat(3, 1fr); }
}
.passos li { background: #fff; border: 1px solid var(--borda); border-radius: var(--r); padding: 16px 16px 16px 58px; position: relative; }
.passos li::before { counter-increment: passo; content: counter(passo); position: absolute; left: 16px; top: 16px; width: 30px; height: 30px; border-radius: 999px; background: var(--azul); color: #fff; font-weight: 800; display: flex; align-items: center; justify-content: center; }
.passos strong { display: block; }
/* --------------------------- modal --------------------------- */
dialog.modal { border: 0; border-radius: 16px; padding: 0; width: min(560px, calc(100vw - 24px)); max-height: calc(100vh - 32px); box-shadow: var(--sombra-alta); color: var(--texto); }
dialog.modal::backdrop { background: rgba(2, 6, 23, .55); }
.modal-cab { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 16px 20px; border-bottom: 1px solid var(--borda); }
.modal-cab h2 { margin: 0; font-size: 1.15rem; }
.modal-corpo { padding: 18px 20px; overflow-y: auto; max-height: calc(100vh - 170px); }
.modal-pe { display: flex; gap: 8px; justify-content: flex-end; padding: 14px 20px; border-top: 1px solid var(--borda); flex-wrap: wrap; }
.notificacao { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); background: #0f172a; color: #fff; padding: 12px 18px; border-radius: 12px; z-index: 200; box-shadow: var(--sombra-alta); font-weight: 600; max-width: calc(100vw - 32px); }
/* --------------------------- áreas logadas --------------------------- */
body.painel { background: var(--fundo); }
.painel-grade { display: grid; grid-template-columns: 1fr; min-height: calc(100vh - 60px); }
@media (min-width: 1000px) {
  .painel-grade { grid-template-columns: 250px 1fr; }
}
.painel-nav { display: none; background: #fff; border-right: 1px solid var(--borda); padding: 16px 12px; }
@media (min-width: 1000px) {
  .painel-nav { display: block; position: sticky; top: 0; height: calc(100vh - 60px); overflow-y: auto; }
}
.painel-nav a { display: flex; gap: 12px; align-items: center; padding: 10px 12px; border-radius: 10px; color: var(--texto-2); text-decoration: none; font-weight: 650; font-size: .95rem; margin-bottom: 2px; }
.painel-nav a:hover { background: var(--fundo); color: var(--texto); }
.painel-nav a[aria-current="page"] { background: var(--azul-claro); color: var(--azul); }
.painel-nav .contagem { margin-left: auto; background: var(--laranja); color: #fff; border-radius: 999px; font-size: .75rem; padding: 1px 8px; font-weight: 800; }
.painel-nav .grupo { font-size: .72rem; text-transform: uppercase; letter-spacing: .07em; color: var(--texto-3); padding: 16px 12px 6px; font-weight: 800; }
.painel-nav .btn { margin: 4px 0 14px; width: 100%; }
.painel-main { padding: 20px 16px 96px; min-width: 0; }
@media (min-width: 1000px) {
  .painel-main { padding: 28px 32px 48px; }
}
.painel-main .flashes { padding-top: 0; }
.painel-cab { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 20px; flex-wrap: wrap; }
.painel-cab h1 { margin: 0; font-size: 1.5rem; }
.painel-cab p { margin: 4px 0 0; color: var(--texto-2); }
.nav-baixo { position: fixed; left: 0; right: 0; bottom: 0; z-index: 45; background: #fff; border-top: 1px solid var(--borda); display: grid; grid-template-columns: repeat(5, 1fr); padding-bottom: env(safe-area-inset-bottom); }
.nav-baixo a, .nav-baixo button { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 8px 2px 9px; font-size: .7rem; font-weight: 700; color: var(--texto-2); text-decoration: none; background: none; border: 0; cursor: pointer; position: relative; }
.nav-baixo .ic { width: 22px; height: 22px; }
.nav-baixo [aria-current="page"] { color: var(--azul); }
.nav-baixo .bolinha { position: absolute; top: 4px; left: calc(50% + 6px); background: var(--laranja); color: #fff; border-radius: 999px; font-size: .62rem; padding: 0 5px; line-height: 1.5; }
@media (min-width: 1000px) {
  .nav-baixo { display: none; }
}
.metricas { display: grid; gap: 12px; grid-template-columns: repeat(2, 1fr); margin-bottom: 20px; }
@media (min-width: 900px) {
  .metricas { grid-template-columns: repeat(4, 1fr); }
}
.metrica { background: #fff; border: 1px solid var(--borda); border-radius: var(--r); padding: 16px; box-shadow: var(--sombra); text-decoration: none; color: var(--texto); display: block; }
a.metrica:hover { border-color: var(--azul-borda); color: var(--texto); }
.metrica small { display: block; color: var(--texto-2); font-weight: 650; font-size: .85rem; }
.metrica strong { display: block; font-size: 1.8rem; line-height: 1.15; margin-top: 4px; font-weight: 800; }
.metrica span { font-size: .82rem; color: var(--texto-3); }
.metrica.destaque { border-color: #fed7aa; background: var(--laranja-claro); }
.metrica.destaque strong { color: var(--laranja); }
.painel-colunas { display: grid; gap: 20px; grid-template-columns: 1fr; }
@media (min-width: 1200px) {
  .painel-colunas { grid-template-columns: 1.4fr 1fr; }
}
.grafico { display: flex; align-items: flex-end; gap: 3px; height: 160px; padding-top: 8px; border-bottom: 1px solid var(--borda); }
.grafico .dia { flex: 1; display: flex; flex-direction: column; justify-content: flex-end; gap: 2px; height: 100%; position: relative; min-width: 0; }
.grafico .barra-v { background: #c7d6fb; border-radius: 3px 3px 0 0; min-height: 2px; }
.grafico .barra-c { background: var(--laranja-vivo); border-radius: 3px 3px 0 0; min-height: 0; }
.grafico .dia:hover .barra-v { background: #93b0f7; }
.grafico-legenda { display: flex; gap: 16px; font-size: .82rem; color: var(--texto-2); margin-top: 8px; flex-wrap: wrap; }
.grafico-legenda i { display: inline-block; width: 12px; height: 12px; border-radius: 3px; vertical-align: -1px; margin-right: 6px; }
.barras-h { display: flex; flex-direction: column; gap: 10px; }
.barras-h .item { display: grid; grid-template-columns: 120px 1fr 48px; gap: 10px; align-items: center; font-size: .9rem; }
.barras-h .trilho { background: #eef2f7; border-radius: 999px; height: 10px; overflow: hidden; }
.barras-h .enchimento { background: var(--azul); height: 100%; border-radius: 999px; }
.barras-h .item span:last-child { text-align: right; color: var(--texto-2); font-variant-numeric: tabular-nums; }
.progresso { background: #e5e7eb; border-radius: 999px; height: 10px; overflow: hidden; }
.progresso > div { height: 100%; background: linear-gradient(90deg, var(--azul), #3b82f6); border-radius: 999px; }
.lista-tarefas { list-style: none; display: flex; flex-direction: column; gap: 6px; }
.lista-tarefas a { display: flex; gap: 10px; align-items: center; padding: 8px 10px; border-radius: 8px; text-decoration: none; color: var(--texto); font-weight: 600; font-size: .93rem; }
.lista-tarefas a:hover { background: var(--fundo); }
.lista-tarefas .ic { color: var(--texto-3); }
.abas { display: flex; gap: 4px; border-bottom: 1px solid var(--borda); margin-bottom: 16px; overflow-x: auto; scrollbar-width: none; }
.abas::-webkit-scrollbar { display: none; }
.abas a { display: inline-flex; align-items: center; gap: 8px; padding: 10px 14px; text-decoration: none; color: var(--texto-2); font-weight: 700; font-size: .93rem; border-bottom: 3px solid transparent; white-space: nowrap; }
.abas a:hover { color: var(--texto); }
.abas a[aria-current="page"] { color: var(--azul); border-bottom-color: var(--azul); }
.abas .n { background: #eef2f7; color: var(--texto-2); border-radius: 999px; padding: 0 8px; font-size: .78rem; }
.abas a[aria-current="page"] .n { background: var(--azul-claro); color: var(--azul); }
.ferramentas { display: flex; gap: 10px; align-items: center; justify-content: space-between; flex-wrap: wrap; margin-bottom: 14px; }
.ferramentas form.busca-mini { display: flex; gap: 8px; flex: 1 1 280px; max-width: 520px; }
.busca-mini .entrada { flex: 1; min-width: 0; }
.ferramentas .entrada { min-height: 42px; }
.tabela-wrap { background: #fff; border: 1px solid var(--borda); border-radius: var(--r); box-shadow: var(--sombra); }
/* sem overflow:hidden (cortava o menu "Mais" das últimas linhas): os cantos arredondados vão nas células */
.tabela-wrap .tabela thead th:first-child { border-top-left-radius: var(--r); }
.tabela-wrap .tabela thead th:last-child { border-top-right-radius: var(--r); }
.tabela-wrap .tabela tr:last-child td:first-child { border-bottom-left-radius: var(--r); }
.tabela-wrap .tabela tr:last-child td:last-child { border-bottom-right-radius: var(--r); }
.tabela { width: 100%; border-collapse: collapse; font-size: .93rem; }
.tabela th { text-align: left; font-size: .78rem; text-transform: uppercase; letter-spacing: .05em; color: var(--texto-3); padding: 12px 14px; background: #fafbfd; border-bottom: 1px solid var(--borda); white-space: nowrap; }
.tabela td { padding: 12px 14px; border-bottom: 1px solid var(--borda); vertical-align: middle; }
.tabela tr:last-child td { border-bottom: 0; }
.tabela tr:hover td { background: #fafcff; }
.tabela .num { text-align: right; font-variant-numeric: tabular-nums; }
.tabela .acoes { white-space: nowrap; text-align: right; }
.tabela .titulo-link { font-weight: 700; color: var(--texto); text-decoration: none; }
.tabela .titulo-link:hover { color: var(--azul); }
.tabela .sub { display: block; font-size: .82rem; color: var(--texto-3); }
.tabela input[type=checkbox] { width: 18px; height: 18px; accent-color: var(--azul); }
.destaque-linha td { background: #fffbeb !important; }
@media (max-width: 1199px) {
  /* até notebook pequeno cada linha vira um cartão (a tabela inteira não cabe ao lado do menu do painel):
     título e ações na largura toda, o resto em 2 colunas */
  .tabela.responsiva thead { display: none; }
  .tabela.responsiva, .tabela.responsiva tbody { display: block; width: 100%; }
  .tabela.responsiva tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 14px; padding: 14px; border-bottom: 1px solid var(--borda); position: relative; }
  .tabela.responsiva td { display: block; border: 0; padding: 0; min-width: 0; }
  .tabela.responsiva tr:hover td, .tabela.responsiva tr.destaque-linha td { background: none !important; }
  .tabela.responsiva tr.destaque-linha { background: #fffbeb; }
  .tabela.responsiva td[data-rot]::before { content: attr(data-rot); display: block; color: var(--texto-3); font-size: .74rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; margin-bottom: 2px; }
  .tabela.responsiva td.principal, .tabela.responsiva td.acoes { grid-column: 1 / -1; }
  .tabela.responsiva td.principal::before { content: none; }
  .tabela.responsiva td.sel + td { padding-right: 38px; }
  .tabela.responsiva td.num { text-align: left; }
  .tabela.responsiva td.acoes { text-align: left; white-space: normal; display: flex; flex-wrap: wrap; gap: 8px; }
  .tabela.responsiva td.sel { position: absolute; right: 14px; top: 14px; }
}
.barra-lote { position: sticky; bottom: 76px; z-index: 30; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; background: #0f172a; color: #fff; border-radius: 12px; padding: 10px 14px; box-shadow: var(--sombra-alta); margin-top: 12px; }
@media (min-width: 1000px) {
  .barra-lote { bottom: 16px; }
}
.barra-lote select { min-height: 38px; border-radius: 8px; border: 0; padding: 4px 8px; }
.avatar { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 999px; color: #fff; font-weight: 800; font-size: .95rem; flex: none; letter-spacing: .02em; }
.pessoa { display: flex; gap: 12px; align-items: center; min-width: 0; }
.pessoa > div { min-width: 0; }
/* painel: nome em cima, vaga e data embaixo (o texto vem em <span>, não em <div>) */
.pessoa > span:last-child { display: flex; flex-direction: column; min-width: 0; }
.pessoa > div > strong { display: block; overflow: hidden; text-overflow: ellipsis; }
.pessoa > div > span { display: block; color: var(--texto-3); font-size: .85rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lista-cand { list-style: none; display: flex; flex-direction: column; gap: 10px; }
.cand-item { background: #fff; border: 1px solid var(--borda); border-radius: var(--r); padding: 14px; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; align-items: center; box-shadow: var(--sombra); }
@media (min-width: 900px) {
  .cand-item { grid-template-columns: auto minmax(0, 1.4fr) minmax(0, 1fr) auto; }
}
.cand-item.nao-visto { border-left: 4px solid var(--laranja-vivo); }
.cand-item .meta { color: var(--texto-2); font-size: .88rem; display: flex; flex-wrap: wrap; gap: 4px 12px; }
.cand-item .acoes-rapidas { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; grid-column: 1 / -1; }
@media (min-width: 900px) {
  .cand-item .acoes-rapidas { grid-column: auto; justify-content: flex-end; }
}
.cand-item .nome { font-weight: 750; color: var(--texto); text-decoration: none; }
.cand-item .nome:hover { color: var(--azul); }
.etapas-trilho { display: flex; gap: 6px; flex-wrap: wrap; }
.etapa-btn { border: 1px solid var(--borda-forte); background: #fff; border-radius: 999px; padding: 6px 12px; font-weight: 700; font-size: .85rem; cursor: pointer; color: var(--texto-2); }
.etapa-btn:hover { border-color: var(--azul); color: var(--azul); }
.etapa-btn[aria-pressed="true"] { background: var(--azul); color: #fff; border-color: var(--azul); }
.etapa-btn.reprovado[aria-pressed="true"] { background: #475569; border-color: #475569; }
.etapa-btn.aprovado[aria-pressed="true"] { background: var(--verde); border-color: var(--verde); }
.perfil-grade { display: grid; gap: 20px; grid-template-columns: 1fr; }
@media (min-width: 1100px) {
  .perfil-grade { grid-template-columns: 1.5fr 1fr; align-items: start; }
}
.dl-linhas { display: grid; grid-template-columns: max-content 1fr; gap: 8px 16px; margin: 0; font-size: .95rem; }
.dl-linhas dt { color: var(--texto-3); font-weight: 600; }
.dl-linhas dd { margin: 0; }
.linha-tempo { list-style: none; position: relative; padding-left: 22px; }
.linha-tempo::before { content: ""; position: absolute; left: 6px; top: 6px; bottom: 6px; width: 2px; background: var(--borda); }
.linha-tempo li { position: relative; margin-bottom: 14px; }
.linha-tempo li::before { content: ""; position: absolute; left: -21px; top: 6px; width: 12px; height: 12px; border-radius: 999px; background: #fff; border: 2px solid var(--azul); }
.linha-tempo strong { display: block; }
.linha-tempo span { color: var(--texto-2); font-size: .9rem; }
.repetidor-item { border: 1px solid var(--borda); border-radius: 10px; padding: 14px; margin-bottom: 12px; background: #fcfdff; position: relative; }
.repetidor-item .remover { position: absolute; top: 8px; right: 8px; }
.form-secao { scroll-margin-top: 16px; }
.form-secao + .form-secao { margin-top: 20px; }
.acoes-fixas { position: sticky; bottom: 0; z-index: 20; background: rgba(255, 255, 255, .96); backdrop-filter: blur(4px); border-top: 1px solid var(--borda); padding: 12px 0; margin-top: 20px; display: flex; gap: 10px; justify-content: flex-end; flex-wrap: wrap; }
@media (max-width: 999px) {
  .acoes-fixas { bottom: 64px; padding: 10px 0; }
}
.previa-card { background: var(--fundo); border-radius: var(--r); padding: 14px; }
.dicas { list-style: none; display: flex; flex-direction: column; gap: 8px; font-size: .92rem; }
.dicas li { display: flex; gap: 8px; }
.dicas .ok { color: var(--verde); }
.dicas .falta { color: var(--texto-3); }
.etapa-candidato { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; font-size: .85rem; }
.etapa-candidato i { width: 10px; height: 10px; border-radius: 999px; display: inline-block; }
.passo-trilha { display: flex; gap: 0; list-style: none; margin: 8px 0 0; }
.passo-trilha li { flex: 1 1 0; min-width: 0; text-align: center; font-size: .72rem; line-height: 1.25; color: var(--texto-3); position: relative; padding: 16px 2px 0; overflow-wrap: anywhere; }
.passo-trilha li::before { content: ""; position: absolute; top: 4px; left: 0; right: 0; height: 3px; background: var(--borda); }
.passo-trilha li::after { content: ""; position: absolute; top: 0; left: calc(50% - 5px); width: 11px; height: 11px; border-radius: 999px; background: #fff; border: 2px solid var(--borda-forte); }
.passo-trilha li.feito::before, .passo-trilha li.feito::after { background: var(--azul); border-color: var(--azul); }
.passo-trilha li.feito { color: var(--azul); font-weight: 700; }
/* login e cadastro */
.acesso { min-height: calc(100vh - 140px); display: flex; align-items: center; justify-content: center; padding: 28px 16px 48px; }
.acesso-caixa { width: 100%; max-width: 460px; }
.acesso-caixa .cartao { padding: 28px 24px; }
.acesso-caixa h1 { font-size: 1.45rem; text-align: center; }
.acesso-caixa .sub { text-align: center; color: var(--texto-2); margin-bottom: 20px; }
.acesso-alt { text-align: center; margin-top: 16px; color: var(--texto-2); }
.acesso-lado { display: none; }
.acesso.duplo { align-items: stretch; gap: 32px; max-width: 1040px; margin: 0 auto; }
/* no HTML o formulário (h1) vem antes do texto lateral; no computador o texto aparece à esquerda */
@media (min-width: 960px) {
  .acesso.duplo .acesso-lado { display: flex; flex-direction: column; justify-content: center; flex: 1; order: -1; }
  .acesso.duplo .acesso-caixa { max-width: 480px; }
}
.beneficios-ac { list-style: none; display: flex; flex-direction: column; gap: 14px; }
.beneficios-ac li { display: flex; gap: 12px; align-items: flex-start; }
.beneficios-ac .ic { width: 26px; height: 26px; color: var(--azul); flex: none; margin-top: 2px; }
.senha-campo { position: relative; }
.senha-campo input { padding-right: 52px !important; }
.senha-ver { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); background: none; border: 0; padding: 8px; border-radius: 8px; cursor: pointer; color: var(--texto-2); display: inline-flex; }
/* rodapé simples das áreas logadas */
.painel-rodape { text-align: center; font-size: .82rem; color: var(--texto-3); padding: 24px 16px 100px; }
@media (min-width: 1000px) {
  .painel-rodape { padding-bottom: 24px; }
}
/* impressão do currículo */
.folha { max-width: 820px; margin: 24px auto; background: #fff; padding: 40px 48px; box-shadow: var(--sombra); border-radius: 8px; }
.folha h1 { font-size: 1.9rem; margin-bottom: 2px; }
.folha h2 { font-size: 1rem; text-transform: uppercase; letter-spacing: .08em; color: var(--azul-escuro); border-bottom: 2px solid var(--azul-escuro); padding-bottom: 4px; margin-top: 22px; }
.folha .contato { color: var(--texto-2); }
.folha .item { margin-bottom: 10px; }
.folha .item strong { display: block; }
.barra-impressao { max-width: 820px; margin: 16px auto 0; display: flex; gap: 8px; justify-content: flex-end; padding: 0 16px; }
@media print {
  body { background: #fff; }
  .barra-impressao, .faixa-dev { display: none !important; }
  .folha { box-shadow: none; margin: 0; padding: 0; max-width: none; }
  a { color: inherit; text-decoration: none; }
}
.cor-estrela { color: #d97706; }
.dicas li.ok { color: var(--verde); }
.dicas li.falta { color: var(--texto-3); }
.dicas li.falta .ic { opacity: .35; }
.notificacao[hidden] { display: none; }
details.usuario-menu > summary { list-style: none; }
details.usuario-menu > summary::-webkit-details-marker { display: none; }
details.usuario-menu[open] > .suspenso { display: block; }
details.usuario-menu:not([open]) > .suspenso { display: none; }
.tabela .acoes details.usuario-menu .suspenso { text-align: left; }
/* filhos de grade/flex podem encolher abaixo do conteúdo (texto nowrap não estoura a tela) */
.painel-colunas > *, .perfil-grade > *, .dupla > *, .cta-cards > * { min-width: 0; }
.lista-simples a > span { min-width: 0; }
.linha-entre > .pessoa { flex: 1 1 240px; }
@media (max-width: 899px) {
  .cand-item .meta { grid-column: 1 / -1; }
}
/* ---------- campo de arquivo ---------- */
.arquivo-escolher { position: relative; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 12px; border: 2px dashed var(--borda-forte); border-radius: var(--r); background: var(--fundo); transition: border-color .15s, background-color .15s; }
.arquivo-escolher:hover, .arquivo-escolher.arrastando { border-color: var(--azul); background: var(--azul-claro); }
.arquivo-escolher:focus-within { outline: 3px solid #c2410c; outline-offset: 2px; }
.arquivo-escolher input[type=file] { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; font-size: 0; }
.arquivo-botao { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: var(--r-p); background: #fff; border: 1px solid var(--borda-forte); font-weight: 700; font-size: .92rem; color: var(--texto); pointer-events: none; }
.arquivo-botao .ic { width: 18px; height: 18px; }
.arquivo-nome { flex: 1 1 160px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--texto-3); font-size: .92rem; pointer-events: none; }
.arquivo-escolher.escolhido { border-style: solid; border-color: var(--verde); background: var(--verde-claro); }
.arquivo-escolher.escolhido .arquivo-nome { color: var(--texto); font-weight: 600; }
.campo-arquivo .erro-campo[hidden] { display: none; }
/* ---------- candidatura: arquivo ou "Não tenho arquivo" ---------- */
html:not(.js) .so-js { display: none !important; }
.escolha-cv { border: 0; padding: 0; margin: 0 0 14px; min-width: 0; }
.escolha-cv legend { font-weight: 700; padding: 0; margin-bottom: 8px; }
.caixas-grade.duas { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 12px; }
.caixas-grade.duas .caixa { align-items: center; font-weight: 600; }
ul.chips { list-style: none; padding: 0; margin: 0; }
.ativo-recente { display: inline-flex; align-items: center; gap: 3px; margin-left: 6px; color: var(--verde); font-weight: 600; font-size: .82rem; white-space: nowrap; }
.ativo-recente .ic { width: 14px; height: 14px; }
/* rodapé comum do portal: links das cidades com área de toque de 24px+ (WCAG 2.5.8) */
.pcr-rodape p a, .pcr-rodape li a { display: inline-block; padding: 3px 0; min-height: 24px; }
/* telas de 320 px: botão quebra a linha em vez de empurrar a página para o lado */
@media (max-width: 400px) {
  .btn { white-space: normal; text-align: center; }
}
.caixas-grade { grid-template-columns: repeat(auto-fill, minmax(min(190px, 100%), 1fr)); }
/* formulário enviando (trava de duplo clique) */
form.enviando button[type=submit], form.enviando .btn[type=submit] { opacity: .7; cursor: progress; }
/* erro escrito junto do campo pela validação do navegador */
.erro-campo[data-js-erro] { margin-top: 6px; }
@media (prefers-reduced-motion: reduce) {
  * { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
/* página "Cadastre seu currículo" */
.cadastro-cv h1 { font-size: 1.6rem; }
.cadastro-cv .sub { color: var(--texto-2); font-size: 1.05rem; max-width: 760px; }
.lista-check { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.lista-check li { display: flex; gap: 10px; align-items: flex-start; }
.lista-check .ic { color: var(--verde); flex: none; margin-top: 2px; }
.erro-icone { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 999px; background: var(--azul-claro); color: var(--azul); flex: none; }
.erro-icone .ic { width: 28px; height: 28px; }
.passos.passos-lista { grid-template-columns: 1fr; padding: 0; margin: 12px 0 0; }
.passo-trilha { padding: 0; }
form.retirar { margin-top: 10px; text-align: right; }
/* depois de se candidatar: mandar o currículo para vagas parecidas */
.mais-vagas fieldset { display: grid; gap: 8px; margin: 4px 0 10px; }
.mais-vagas legend { font-weight: 700; margin-bottom: 8px; }
.mais-vagas .caixa { align-items: flex-start; }
/* iPhone: barras fixas acima do indicador de início; aviso flutuante acima da barra inferior do painel */
.acoes-fixas { padding-bottom: max(12px, env(safe-area-inset-bottom)); }
.barra-lote { margin-bottom: env(safe-area-inset-bottom); }
@media (max-width: 999px) {
  .tem-nav-baixo .notificacao, .painel-main ~ .notificacao { bottom: calc(84px + env(safe-area-inset-bottom)); }
}

/* =====================================================================
   Layout do canal (referência aprovada pelo dono em 08/10/2026: "Empregos — Guia São Roque.html").
   Faixa azul-marinho do canal e da busca, filtros em cartão à esquerda (folha de baixo no celular),
   cards simples, diretório "Explore as vagas da região" e a página da vaga em painéis.
   O topo preto e o rodapé são os do portal e não mudam (fonte do sistema, como no portal).
   ===================================================================== */

/* títulos na cor da marca; o topo do portal e a faixa de teste ficam com a fonte de sempre */
h1, h2, h3, h4 { color: var(--marinho); }
.topo, .gaveta-portal, .faixa-dev { font-family: var(--fonte); }
details > summary .ao-aberto { display: none; }
details[open] > summary .ao-aberto { display: inline; }
details[open] > summary .ao-fechado { display: none; }

/* --------------------------- botões (tons do layout) --------------------------- */
.btn { border-radius: 10px; }
.btn-primario { background: var(--azul); color: #fff; }
.btn-primario:hover { background: var(--azul-hover); color: #fff; }
.btn-neutro { background: #fff; color: var(--marinho); border-color: var(--borda-forte); }
.btn-neutro:hover { background: #fff; border-color: var(--azul); color: var(--azul); }
.btn-contorno { background: #fff; color: var(--azul); border-color: var(--azul-borda); }
.btn-contorno:hover { background: var(--azul-claro); border-color: var(--azul); color: var(--azul-hover); }
.btn-ambar { background: var(--ambar); color: #16202e; }
.btn-ambar:hover { background: var(--ambar-hover); color: #16202e; }
/* "Continuar com o Google": padrão visual do Google (fundo branco, borda cinza, G colorido) */
.btn-google { gap: 12px; background: #fff; color: #1f1f1f; border-color: #747775; font-weight: 600; }
.btn-google:hover { background: #f8fafd; color: #1f1f1f; border-color: #1f1f1f; }
.btn-google svg { flex: none; width: 20px; height: 20px; }
.ou-sep { display: flex; align-items: center; gap: 12px; margin: 18px 0; color: var(--texto-3); font-size: 14px; }
.ou-sep::before, .ou-sep::after { content: ""; flex: 1; border-top: 1px solid var(--borda); }
.link-limpar { color: var(--azul); font-weight: 700; font-size: .875rem; text-decoration: underline; text-underline-offset: 3px; }

/* --------------------------- faixa azul-marinho do canal --------------------------- */
.canal { background: var(--marinho); color: #fff; }
.canal :focus-visible, .hero :focus-visible, .alerta-cartao :focus-visible { outline-color: var(--ambar); }
.canal-int { display: flex; align-items: center; gap: 4px; min-height: 60px; padding-top: 10px; padding-bottom: 10px; }
.canal-marca { display: inline-flex; align-items: center; gap: 8px; margin-right: 14px; font-weight: 800; font-size: 15px; white-space: nowrap; }
.canal-marca .ic { width: 18px; height: 18px; color: var(--ambar); }
.canal-abas { display: flex; align-items: center; gap: 4px; list-style: none; min-width: 0; overflow-x: auto; scrollbar-width: none; }
.canal-abas::-webkit-scrollbar { display: none; }
.canal-abas a { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 0 12px; border-radius: 8px; color: var(--marinho-texto); text-decoration: none; font-weight: 600; font-size: 14px; white-space: nowrap; }
.canal-abas a:hover { color: #fff; background: rgba(255, 255, 255, .08); }
.canal-abas a[aria-current="page"] { color: #fff; background: rgba(255, 255, 255, .13); }
.canal-n { min-width: 22px; height: 22px; padding: 0 6px; border-radius: 999px; background: var(--ambar); color: #16202e; font-size: 12px; font-weight: 800; display: inline-grid; place-items: center; }
.canal-cta { margin-left: auto; flex: none; display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 14px; border: 1px solid rgba(255, 255, 255, .35); border-radius: 10px; color: #fff; text-decoration: none; font-weight: 700; font-size: 14px; white-space: nowrap; }
.canal-cta:hover { background: rgba(255, 255, 255, .1); color: #fff; }
.canal-cta .ic { width: 16px; height: 16px; }
@media (max-width: 999px) { .canal-cta { display: none; } }
@media (max-width: 767px) { .canal { display: none; } }

/* --------------------------- faixa da busca (home e listagens) --------------------------- */
.hero { background: var(--marinho); color: #fff; }
.hero > .cont { position: relative; padding-top: 36px; padding-bottom: 34px; }
/* linha entre as abas do canal e a busca, na largura do conteúdo (como no layout) */
@media (min-width: 768px) { .canal + main > .hero:first-child > .cont::before, .canal + main > .flashes + .hero > .cont::before { content: ""; position: absolute; top: 0; left: 16px; right: 16px; border-top: 1px solid rgba(255, 255, 255, .14); } }
.hero .migalhas { padding: 0 0 14px; color: var(--marinho-texto); }
.hero .migalhas a { color: var(--marinho-texto); }
.hero .migalhas a:hover { color: #fff; }
.hero .migalhas li + li::before { color: var(--marinho-texto); }
.hero .migalhas [aria-current] { color: #fff; }
.hero h1 { margin: 0 0 14px; color: #fff; font-size: clamp(1.75rem, 3.4vw, 2.6rem); font-weight: 800; letter-spacing: -.02em; line-height: 1.1; text-wrap: balance; }
.hero-sub { margin: 0 0 22px; max-width: 680px; color: var(--marinho-texto); font-size: 1.06rem; text-wrap: pretty; }
.busca { display: flex; flex-wrap: wrap; gap: 8px; max-width: 900px; padding: 8px; background: #fff; border-radius: 14px; }
.busca .busca-campo { gap: 10px; padding: 0 14px; color: var(--texto-3); min-width: 0; border-radius: 10px; }
.busca .busca-q { flex: 2 1 300px; }
.busca .busca-cidade { flex: 1 1 210px; border-left: 1px solid #e3e7ee; border-radius: 0; }
.busca .busca-campo .ic { position: static; width: 20px; height: 20px; color: var(--texto-3); }
.busca .busca-campo input, .busca .busca-campo select { flex: 1; min-width: 0; min-height: 48px; padding: 0; border: 0; border-radius: 0; background-color: transparent; color: var(--texto); font-size: 16px; box-shadow: none; }
.busca .busca-campo input::placeholder { color: #6b7585; }
.busca .busca-campo input:focus, .busca .busca-campo select:focus { outline: none; background-color: transparent; box-shadow: none; }
.busca .busca-campo:focus-within { box-shadow: inset 0 0 0 2px var(--azul); border-radius: 10px; }
.busca .busca-campo select { padding-right: 26px; cursor: pointer; background-position: calc(100% - 12px) 21px, calc(100% - 7px) 21px; }
.busca-btn { flex: 1 1 150px; min-height: 52px; font-size: 1rem; }
.busca-btn .ic { display: none; }
.buscas-pop { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 16px; }
.buscas-pop-rot { margin-right: 4px; color: var(--marinho-texto); font-size: 14px; }
.pop { display: inline-flex; align-items: center; min-height: 38px; padding: 0 14px; border: 1px solid rgba(255, 255, 255, .3); border-radius: 999px; color: #fff; text-decoration: none; font-size: 14px; font-weight: 600; }
.pop:hover { background: rgba(255, 255, 255, .1); color: #fff; }
.pop.ligado { background: #fff; border-color: #fff; color: var(--marinho); }
/* cartão à direita da busca (só no computador): currículo do candidato, atalhos da empresa ou convite para cadastrar */
.hero-cartao { display: none; }
/* computador: busca e cartão lado a lado; as buscas populares numa linha inteira embaixo (não sobra uma sozinha) */
@media (min-width: 1000px) {
  .hero-int { display: grid; grid-template-columns: minmax(0, 1fr) 250px; align-items: center; gap: 14px 28px; }
  .hero-principal { grid-column: 1; grid-row: 1; }
  .hero-int .buscas-pop { grid-column: 1 / -1; grid-row: 2; margin-top: 0; }
  .hero-int .busca { max-width: none; }
  .hero-int .busca-q { flex-basis: 240px; }
  .hero-int .busca-cidade { flex-basis: 200px; }
  .hero-int .busca-btn { flex: 0 0 140px; }
  .hero-cartao { grid-column: 2; grid-row: 1; display: block; overflow: hidden; border-radius: var(--r); background: #fff; color: var(--texto); box-shadow: 0 24px 48px -28px rgba(0, 0, 0, .75); }
}
@media (min-width: 1200px) {
  .hero-int { grid-template-columns: minmax(0, 1fr) 280px; column-gap: 40px; }
  .hero-int .busca-btn { flex-basis: 180px; }
}
.hc-topo { display: flex; align-items: center; gap: 10px; padding: 12px 16px; background: var(--ambar); }
.hc-icone { display: grid; place-items: center; flex: none; width: 32px; height: 32px; border-radius: 9px; background: rgba(255, 255, 255, .6); color: var(--marinho); }
.hc-icone .ic { width: 17px; height: 17px; }
.hc-tit { margin: 0; color: var(--marinho); font-size: .9375rem; font-weight: 800; line-height: 1.25; overflow-wrap: anywhere; }
.hc-corpo { display: flex; flex-direction: column; gap: 9px; padding: 12px 16px 14px; }
.hc-corpo p { margin: 0; color: var(--texto-2); font-size: 13.5px; }
.hc-corpo .btn { min-height: 40px; padding: 8px 14px; font-size: .94rem; }
.hc-corpo strong { color: var(--texto); }
.hc-corpo a:not(.btn) { color: var(--azul); font-weight: 700; }
.hc-lista { display: grid; gap: 5px; margin: 0; padding: 0; list-style: none; color: var(--texto-2); font-size: 13.5px; }
.hc-lista li { display: flex; align-items: flex-start; gap: 8px; }
.hc-lista .ic { flex: none; width: 16px; height: 16px; margin-top: 2px; color: var(--verde); }
.hc-entrar { text-align: center; }
.hc-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 16px; }
.hero .hero-cartao :focus-visible { outline-color: var(--azul); }
/* lista de opções desenhada (Chrome e Edge 135+) na cidade da busca e na ordenação; nos outros navegadores fica a nativa */
@supports (appearance: base-select) {
  .busca-cidade select, .busca-cidade select::picker(select), .ordenar select, .ordenar select::picker(select) { appearance: base-select; }
  .busca .busca-cidade select { display: flex; align-items: center; padding-right: 4px; background-image: none; }
  .ordenar select { display: inline-flex; align-items: center; gap: 10px; padding: 0 12px; }
  /* seta fina no lugar do triângulo do navegador; vira para cima com a lista aberta */
  .busca-cidade select::picker-icon, .ordenar select::picker-icon { content: ""; flex: none; width: 7px; height: 7px; margin: -4px 4px 0 auto; border: solid var(--texto-3); border-width: 0 2px 2px 0; rotate: 45deg; transition: rotate .15s, margin .15s; }
  .busca-cidade select:open::picker-icon, .ordenar select:open::picker-icon { margin-top: 4px; rotate: 225deg; }
  .busca-cidade select::picker(select), .ordenar select::picker(select) { margin-block: 8px; padding: 6px; border: 1px solid var(--borda); border-radius: 12px; background: #fff; box-shadow: 0 18px 40px -18px rgba(19, 41, 75, .45); max-block-size: min(340px, 60dvh); overflow-y: auto; }
  .busca-cidade option, .ordenar option { display: flex; align-items: center; gap: 10px; min-height: 40px; padding: 8px 12px; border-radius: 8px; color: var(--texto); font-size: 15px; font-weight: 500; cursor: pointer; }
  .busca-cidade option:hover, .ordenar option:hover { background: var(--fundo-2); }
  .busca-cidade option:focus-visible, .ordenar option:focus-visible { outline: 2px solid var(--azul); outline-offset: -2px; background: var(--fundo-2); }
  .busca-cidade option:checked, .ordenar option:checked { background: var(--azul-claro); color: var(--azul-texto); font-weight: 700; }
  .busca-cidade option::checkmark, .ordenar option::checkmark { order: 1; margin-left: auto; color: var(--azul); }
}
@media (max-width: 767px) {
  .hero > .cont { padding-top: 18px; padding-bottom: 18px; }
  .hero h1 { margin-bottom: 14px; font-size: 1.375rem; letter-spacing: -.01em; line-height: 1.2; }
  .hero-sub, .buscas-pop, .hero .migalhas, .busca .busca-cidade { display: none; }
  .busca { flex-wrap: nowrap; gap: 0; padding: 0; border-radius: 12px; }
  .busca .busca-q { flex: 1 1 auto; }
  .busca .busca-q .ic { display: none; }
  .busca-btn { flex: none; width: 52px; padding: 0; border-radius: 0 12px 12px 0; }
  .busca-btn .ic { display: inline; width: 22px; height: 22px; }
  .busca-btn span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}

/* --------------------------- listagem: filtros + resultados --------------------------- */
.listagem { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; align-items: start; padding-top: 28px; padding-bottom: 56px; }
@media (min-width: 1000px) { .listagem { grid-template-columns: 280px minmax(0, 1fr); gap: 28px; } }
.coluna-lado { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.filtros { background: #fff; border: 1px solid var(--borda); border-radius: var(--r); }
.filtros-alca, .filtros-pe, .filtros .btn-fechar, .filtros-fundo { display: none; }
.filtros-cab { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 60px; padding: 16px 18px; }
.filtros-cab h2 { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 1.06rem; font-weight: 800; }
.filtros-cab h2 .ic { width: 18px; height: 18px; }
.filtro-grupo { min-width: 0; margin: 0; padding: 14px 18px 16px; border: 0; border-top: 1px solid #e8ecf1; }
.filtro-grupo legend { float: left; width: 100%; margin-bottom: 6px; padding: 0; color: var(--texto-2); font-size: 13px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.filtro-grupo legend + * { clear: both; }
.opcoes { display: flex; flex-direction: column; gap: 2px; }
.opcao { position: relative; display: flex; align-items: center; gap: 10px; min-height: 36px; margin: 0 -8px; padding: 0 8px; border-radius: 8px; color: #2a3442; font-size: 15px; cursor: pointer; }
.opcao:hover { background: #f3f6fa; }
.opcao input { flex: none; width: 18px; height: 18px; margin: 0; accent-color: var(--azul); cursor: pointer; }
.opcao .rot { flex: 1; }
.opcao .n { margin-left: auto; color: var(--texto-3); font-size: 13px; font-variant-numeric: tabular-nums; }
.opcao.zero { color: #8b95a5; cursor: default; }
.opcao.zero:hover { background: transparent; }
.opcao.zero .n { color: #8b95a5; }
.mais-opcoes > summary { display: inline-block; margin-top: 8px; color: var(--azul); font-weight: 700; font-size: 14px; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; list-style: none; }
.mais-opcoes > summary::-webkit-details-marker { display: none; }
.mais-opcoes[open] > summary { margin: 4px 0 6px; }
.filtro-chaves { display: flex; flex-direction: column; padding: 6px 18px 10px; border-top: 1px solid #e8ecf1; }
.chave { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 56px; color: #2a3442; font-size: 15px; cursor: pointer; }
.chave + .chave { border-top: 1px solid #eef1f5; }
.chave-txt { display: flex; flex-direction: column; line-height: 1.3; }
.chave-tit { font-weight: 600; }
.chave-sub { color: var(--texto-3); font-size: 13px; }
.chave.zero { color: #8b95a5; cursor: default; }
.interruptor { position: relative; flex: none; width: 42px; height: 24px; margin: 0; border-radius: 999px; background: #8b95a5; appearance: none; -webkit-appearance: none; cursor: pointer; transition: background-color .15s; }
.interruptor::after { content: ""; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(0, 0, 0, .25); transition: transform .15s; }
.interruptor:checked { background: var(--azul); }
.interruptor:checked::after { transform: translateX(18px); }
.interruptor:disabled { opacity: .45; cursor: default; }
.filtros-acoes { padding: 0 18px 18px; }

.resultados { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
@media (min-width: 1000px) {
  .resultados { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 14px 12px; }
  .resultados > * { grid-column: 1 / -1; }
  .resultados > .res-tit { grid-column: 1; }
  .resultados > .res-acoes { grid-column: 2; }
}
.res-tit h2 { margin: 0; font-size: 1.375rem; font-weight: 800; letter-spacing: -.01em; }
.res-tit p { margin: 2px 0 0; color: var(--texto-3); font-size: 14px; }
.res-acoes { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.res-acoes .btn { min-height: 40px; padding: 0 14px; font-size: 14px; font-weight: 600; }
.btn-filtros.com-filtro { background: var(--azul-claro); border-color: var(--azul-borda); color: var(--azul); }
.ordenar { display: flex; align-items: center; gap: 8px; color: var(--texto-3); font-size: 14px; }
.ordenar select { min-height: 40px; padding: 0 10px; border: 1px solid var(--borda-forte); border-radius: 10px; background: #fff; color: var(--texto); font-size: 14px; font-weight: 600; cursor: pointer; }
.rapidos { display: flex; gap: 8px; margin: 0 -16px; padding: 12px 16px 2px; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.rapidos::-webkit-scrollbar { display: none; }
.rapido { flex: none; display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 0 14px; border: 1px solid var(--borda-forte); border-radius: 999px; background: #fff; color: #2a3442; text-decoration: none; font-size: 14px; font-weight: 600; white-space: nowrap; }
.rapido:hover { border-color: var(--azul); color: var(--azul); }
.rapido.ligado { background: var(--marinho); border-color: var(--marinho); color: #fff; }
.rapido .ic { width: 16px; height: 16px; }
.ativos { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.chip-x { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 0 8px 0 12px; border: 1px solid #c9daf3; border-radius: 999px; background: var(--azul-claro); color: var(--azul-texto); text-decoration: none; font-size: 13px; font-weight: 600; }
.chip-x:hover { background: #d9e6f8; color: var(--azul-texto); }
.chip-x .ic { width: 14px; height: 14px; }
.alerta-cartao { display: flex; flex-direction: column; gap: 8px; margin-top: 8px; padding: 18px; background: var(--marinho); border-radius: var(--r); color: #fff; }
.alerta-cartao p { margin: 0; color: var(--marinho-texto); font-size: 14px; }
.alerta-cartao .alerta-tit { color: #fff; font-size: 1rem; font-weight: 800; }
.alerta-cartao .btn { margin-top: 4px; }
@media (min-width: 1000px) { .rapidos, .btn-filtros, .alerta-cartao { display: none; } }
@media (max-width: 999px) {
  .listagem { gap: 0; padding-top: 0; }
  .coluna-lado { gap: 0; }
  .res-acoes { order: -2; position: sticky; top: 0; z-index: 30; flex-wrap: nowrap; justify-content: space-between; margin: 0 -16px; padding: 10px 16px; background: #fff; border-bottom: 1px solid var(--borda); }
  .rapidos { order: -1; }
  .btn-alerta { display: none; }
  .res-acoes .btn-filtros { min-height: 44px; font-size: 15px; font-weight: 700; }
  .ordenar span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .ordenar select { min-height: 44px; font-size: 16px; }
  .res-tit { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 6px; padding-top: 4px; }
  .res-tit h2 { font-size: .95rem; }
  .res-tit p { margin: 0; }
}

/* --------------------------- card de vaga --------------------------- */
.lista-vagas { display: grid; gap: 12px; }
.lista-vagas.duas { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 900px) { .lista-vagas.duas { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.vcard { position: relative; display: flex; align-items: flex-start; gap: 16px; padding: 20px; background: #fff; border: 1px solid var(--borda); border-radius: var(--r); transition: border-color .15s, box-shadow .15s; }
.vcard:hover { border-color: #9db8dc; box-shadow: var(--sombra-hover); }
.vcard.aplicada { background: #fbfdff; }
.vcard-logo { flex: none; display: grid; place-items: center; width: 48px; height: 48px; overflow: hidden; border-radius: 12px; background: var(--azul-claro); color: var(--marinho); font-size: 16px; font-weight: 800; letter-spacing: .02em; }
.vcard-logo:has(img) { background: #fff; border: 1px solid var(--borda); }
.vcard-logo img { width: 100%; height: 100%; object-fit: contain; }
.vcard-logo .ic { width: 22px; height: 22px; color: var(--texto-3); stroke-width: 1.8; }
.vcard-corpo { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.vcard-tit { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.vcard-tit h2, .vcard-tit h3, .vcard-titulo-p { margin: 0; color: var(--marinho); font-size: 1.125rem; font-weight: 700; line-height: 1.3; overflow-wrap: anywhere; }
.vcard-link { color: var(--marinho); text-decoration: none; }
.vcard-link::after { content: ""; position: absolute; inset: 0; border-radius: var(--r); }
.vcard:hover .vcard-link { color: var(--azul); text-decoration: underline; text-underline-offset: 3px; }
.vcard-link:focus-visible { outline: none; }
.vcard-link:focus-visible::after { outline: 3px solid var(--laranja); outline-offset: 2px; }
.badge-pcd { display: inline-flex; align-items: center; min-height: 22px; padding: 0 8px; border: 1px solid #9db8dc; border-radius: 999px; background: #fff; color: var(--azul-texto); font-size: 12px; font-weight: 800; letter-spacing: .02em; }
.vcard-meta { display: flex; flex-wrap: wrap; gap: 2px 14px; margin: 0; color: var(--texto-3); font-size: 15px; }
.vcard-local { display: inline-flex; align-items: center; gap: 4px; }
.vcard-local .ic { width: 15px; height: 15px; }
.vcard-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 0; padding: 0; list-style: none; }
.tag { display: inline-flex; align-items: center; gap: 4px; min-height: 26px; padding: 0 10px; border-radius: 6px; background: var(--fundo-2); color: var(--texto-2); font-size: 13px; font-weight: 600; }
.tag .ic { width: 14px; height: 14px; }
.tag-salario { background: var(--verde-claro); color: var(--verde); }
.tag-destaque, .tag-aplicada { background: var(--azul-claro); color: var(--azul-texto); }
.tag-urgente { background: #fdf1de; color: #7a4a00; }
.tag-pcd { background: var(--roxo-claro); color: #4c1d95; }
.vcard-lado { position: relative; z-index: 2; flex: none; display: flex; flex-direction: column; align-items: flex-end; gap: 12px; }
.btn-salvar { display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 1px solid var(--borda); border-radius: 10px; background: #fff; color: var(--texto-3); cursor: pointer; }
.btn-salvar:hover { border-color: #9db8dc; color: var(--azul); }
.btn-salvar[aria-pressed="true"] { border-color: var(--azul-borda); background: var(--azul-claro); color: var(--azul); }
.btn-salvar .ic { width: 18px; height: 18px; }
.btn-salvar[aria-pressed="true"] .ic, .btn-salvar-txt[aria-pressed="true"] .ic { fill: currentColor; }
.vcard-quando { display: inline-flex; align-items: center; gap: 5px; color: var(--texto-3); font-size: 13px; white-space: nowrap; }
.vcard-quando .ic { width: 14px; height: 14px; }
.vcard-quando.hoje { color: var(--verde); font-weight: 700; }
.vcard.compacto { flex-direction: column; gap: 6px; padding: 16px; }
.vcard.compacto .vcard-tit { padding-right: 40px; }
.vcard.compacto .vcard-titulo-p { font-size: 1.06rem; }
.vcard.compacto .vcard-meta { font-size: 14px; }
.vcard.compacto .vcard-lado { display: contents; }
.vcard.compacto .btn-salvar { position: absolute; top: 10px; right: 10px; border: 0; background: transparent; }
.vcard.compacto:hover { border-color: var(--borda); box-shadow: none; }
@media (max-width: 599px) {
  .vcard { flex-direction: column; gap: 6px; padding: 16px; }
  .vcard-logo { display: none; }
  .vcard-tit { padding-right: 40px; }
  .vcard-tit h2, .vcard-tit h3 { font-size: 1.06rem; }
  .vcard-meta { font-size: 14px; }
  .vcard-tags { margin-top: 4px; }
  .vcard-lado { display: contents; }
  .vcard .btn-salvar { position: absolute; top: 8px; right: 8px; z-index: 2; width: 44px; height: 44px; border: 0; background: transparent; }
  .vcard .btn-salvar[aria-pressed="true"] { background: transparent; }
  .vcard .tag-area { display: none; }
  .vcard-quando { margin-top: 2px; }
}

/* --------------------------- paginação e vazio --------------------------- */
.pag-barra { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-top: 10px; }
.pag-barra p { margin: 0; color: var(--texto-3); font-size: 14px; }
.paginacao { margin: 24px 0 8px; }
.pag-barra .paginacao { margin: 0; }
.paginacao ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; padding: 0; list-style: none; }
.paginacao a, .paginacao span { display: inline-grid; place-items: center; min-width: 40px; height: 40px; padding: 0 8px; border: 1px solid var(--borda); border-radius: 10px; background: #fff; color: #2a3442; text-decoration: none; font-weight: 700; font-variant-numeric: tabular-nums; }
.paginacao a:hover { border-color: #9db8dc; color: var(--azul); }
.paginacao .atual { border-color: var(--marinho); background: var(--marinho); color: #fff; }
.paginacao .desab { opacity: .45; }
.paginacao li.reticencias { display: inline-grid; place-items: center; min-width: 20px; height: 40px; color: var(--texto-3); }
.paginacao .ic { width: 18px; height: 18px; }
.vazio { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 48px 24px; background: #fff; border: 1px solid var(--borda); border-radius: var(--r); text-align: center; }
.vazio > .ic { width: 40px; height: 40px; color: var(--texto-3); }
.vazio-icone { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: var(--fundo-2); color: var(--texto-3); }
.vazio-icone .ic { width: 26px; height: 26px; }
.vazio h2, .vazio h3 { margin: 0; font-size: 1.19rem; font-weight: 800; }
.vazio p { margin: 0; max-width: 460px; color: var(--texto-3); }
.vazio .linha { justify-content: center; margin-top: 6px; }

/* --------------------------- explore e empresas --------------------------- */
.explorar { background: #fff; border-top: 1px solid var(--borda); }
.explorar > .cont { padding-top: 48px; padding-bottom: 48px; }
.secao-tit { display: flex; flex-direction: column; gap: 4px; margin-bottom: 28px; }
.secao-tit h2 { margin: 0; font-size: 1.5rem; font-weight: 800; letter-spacing: -.01em; }
.secao-tit p { margin: 0; color: var(--texto-3); }
.secao-tit-linha { flex-direction: row; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px; }
.secao-tit-linha > a { font-weight: 700; font-size: 15px; }
.dir-grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); align-items: start; gap: 24px 40px; }
.dir-col h3 { margin: 0 0 8px; color: var(--texto-2); font-size: 13px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.dir-col .dir-sub { margin-top: 24px; }
.dir-lista { margin: 0; padding: 0; list-style: none; }
.dir-lista a { display: flex; justify-content: space-between; gap: 12px; padding: 7px 0; border-bottom: 1px solid #eef1f5; color: #2a3442; text-decoration: none; font-size: 15px; }
.dir-lista a:hover { color: var(--azul); }
.dir-lista a:hover span:first-child { text-decoration: underline; text-underline-offset: 3px; }
.dir-lista .n { color: var(--texto-3); font-variant-numeric: tabular-nums; }
.dir-mais > summary { display: inline-block; padding: 9px 0; color: var(--azul); font-weight: 700; cursor: pointer; list-style: none; }
.dir-mais > summary::-webkit-details-marker { display: none; }
.empresas-sec { background: var(--fundo); border-top: 1px solid var(--borda); }
.empresas-sec > .cont { padding-top: 44px; padding-bottom: 52px; }
.empresas-sec .secao-tit { margin-bottom: 22px; }
.empresas-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(160px, 100%), 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.empresa-tile { display: flex; flex-direction: column; align-items: center; gap: 10px; height: 100%; padding: 16px; background: #fff; border: 1px solid var(--borda); border-radius: var(--r); color: #2a3442; text-decoration: none; }
.empresa-tile:hover { border-color: #9db8dc; color: var(--azul); }
.empresa-tile-logo { display: grid; place-items: center; width: 100%; height: 56px; text-align: center; }
.empresa-tile-logo img { width: auto; height: auto; max-width: 100%; max-height: 56px; object-fit: contain; }
.empresa-tile-logo span { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; color: var(--marinho); font-size: 15px; font-weight: 800; line-height: 1.25; }
.empresa-tile-n { font-size: 14px; font-weight: 700; }
@media (min-width: 1000px) { .empresas-tiles { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
@media (max-width: 999px) { .empresas-tiles li:nth-child(n+9) { display: none; } }
@media (max-width: 599px) { .empresas-tiles li:nth-child(n+7) { display: none; } }
.secao-tit-linha > a { display: inline-flex; align-items: center; gap: 6px; }
.secao-tit-linha > a .ic { width: 16px; height: 16px; }
.convite-empresas { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 22px; margin-top: 28px; padding: 22px 24px; background: var(--amarelo-claro); border: 1px solid #f1d9ad; border-radius: var(--r); }
.convite-empresas:only-child { margin-top: 0; }
.convite-icone { display: grid; place-items: center; flex: none; width: 52px; height: 52px; border-radius: 14px; background: var(--ambar); color: var(--marinho); }
.convite-icone .ic { width: 26px; height: 26px; }
.convite-texto { flex: 1 1 360px; min-width: 0; }
.convite-texto p { margin: 0; color: var(--texto-2); font-size: 15px; }
.convite-texto .convite-tit { margin-bottom: 4px; color: var(--marinho); font-size: 1.15rem; font-weight: 800; line-height: 1.3; text-wrap: balance; }
.convite-acoes { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; }
.convite-acoes .btn { min-height: 48px; padding: 12px 22px; }
.convite-link { color: var(--azul); font-weight: 700; font-size: 14px; }
/* tela de toque: links soltos com área de toque confortável */
@media (pointer: coarse) {
  .link-limpar, .mais-opcoes > summary, .dir-mais > summary, .secao-tit-linha > a, .convite-link { display: inline-flex; align-items: center; min-height: 44px; }
}
@media (max-width: 599px) {
  .convite-empresas { padding: 18px; }
  .convite-acoes { width: 100%; flex-direction: column; }
  .convite-acoes .btn { width: 100%; }
}

/* --------------------------- migalhas --------------------------- */
.migalhas { padding: 14px 0 0; color: var(--texto-3); font-size: 14px; }
.migalhas ol { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0; padding: 0; list-style: none; }
.migalhas li + li::before { content: "›"; margin-right: 8px; color: var(--texto-3); }
.migalhas a { color: var(--texto-2); text-decoration: none; }
.migalhas a:hover { color: var(--azul); text-decoration: underline; }
.migalhas [aria-current] { color: var(--texto); font-weight: 600; }

/* --------------------------- página da vaga --------------------------- */
.vaga-topo { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; padding-top: 20px; }
.vaga-topo .migalhas { padding: 0; }
.voltar-busca { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; font-weight: 700; font-size: 14px; text-decoration: none; }
.voltar-busca .ic { width: 16px; height: 16px; }
.vaga-grade { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; gap: 16px 24px; padding-top: 18px; padding-bottom: 40px; }
@media (min-width: 1000px) { .vaga-grade { grid-template-columns: minmax(0, 1fr) 320px; } .vaga-lado { position: sticky; top: 12px; } }
.vaga-principal, .vaga-lado { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.painel-v { padding: 24px 26px; background: #fff; border: 1px solid var(--borda); border-radius: var(--r); }
.painel-v > h2 { margin: 0 0 14px; font-size: 1.19rem; font-weight: 800; letter-spacing: -.01em; }
.vaga-cab-cartao { display: flex; flex-direction: column; gap: 22px; }
.vaga-cab { display: flex; align-items: flex-start; gap: 18px; }
.vaga-logo { flex: none; display: grid; place-items: center; width: 72px; height: 72px; overflow: hidden; border-radius: 16px; background: var(--azul-claro); color: var(--marinho); font-size: 24px; font-weight: 800; letter-spacing: .02em; }
.vaga-logo:has(img) { background: #fff; border: 1px solid var(--borda); }
.vaga-logo img { width: 100%; height: 100%; object-fit: contain; }
.vaga-logo .ic { width: 30px; height: 30px; color: var(--texto-3); stroke-width: 1.8; }
.vaga-logo-p { width: 52px; height: 52px; border-radius: 12px; font-size: 18px; }
.vaga-cab-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.vaga-cab h1 { margin: 0; font-size: clamp(1.6rem, 3vw, 2.1rem); font-weight: 800; letter-spacing: -.02em; line-height: 1.15; overflow-wrap: anywhere; }
.vaga-empresa { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 16px; margin: 0; color: var(--texto-2); font-size: 1rem; }
.vaga-empresa a { font-weight: 700; }
.vaga-local { display: inline-flex; align-items: center; gap: 5px; }
.vaga-local .ic { width: 16px; height: 16px; }
.vaga-cab .tag { min-height: 28px; }
.fatos { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr)); gap: 18px 24px; margin: 0; padding: 20px 0 0; border-top: 1px solid #e8ecf1; }
.fatos dt { margin: 0 0 4px; color: var(--texto-3); font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.fatos dd { margin: 0; color: var(--texto); font-size: 15px; font-weight: 600; line-height: 1.4; overflow-wrap: anywhere; }
.painel-v.texto-vaga p, .painel-v.texto-vaga li { color: #2a3442; }
.painel-v.texto-vaga p { max-width: 72ch; }
.painel-v.texto-vaga > :last-child { margin-bottom: 0; }
.requisitos ul { display: flex; flex-direction: column; gap: 10px; margin: 0 0 1em; padding: 0; list-style: none; }
.requisitos li { display: flex; align-items: flex-start; gap: 10px; margin: 0; line-height: 1.45; }
.requisitos li::before { content: ""; flex: none; width: 18px; height: 18px; margin-top: 3px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231b6b43' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") no-repeat center / 18px 18px; }
.painel-v .lista-tit { margin: 14px 0 8px; color: var(--texto-2); font-size: 13px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.painel-v .lista-tit:first-child { margin-top: 0; }
.beneficios-lista { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.beneficios-lista li { display: inline-flex; align-items: center; min-height: 36px; margin: 0; padding: 0 14px; border-radius: 999px; background: var(--verde-claro); color: var(--verde); font-size: 14px; font-weight: 700; }
.empresa-linha { display: flex; align-items: flex-start; gap: 16px; }
.empresa-dados { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.empresa-dados p { margin: 0; color: var(--texto-2); font-size: 15px; }
.empresa-dados .empresa-nome { color: var(--marinho); font-size: 1.06rem; font-weight: 800; }
.empresa-links { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 14px; padding-top: 14px; border-top: 1px solid #e8ecf1; }
.empresa-links a { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; font-weight: 700; font-size: 15px; }
.caixa-candidatar { display: flex; flex-direction: column; gap: 14px; padding: 22px; }
.caixa-candidatar > h2 { margin: 0; font-size: 1.125rem; }
.caixa-candidatar .aviso { margin: 0; }
.caixa-candidatar .pilha > * + * { margin-top: 10px; }
.resumo-linhas { display: flex; flex-direction: column; gap: 6px; margin: 0; padding: 0; list-style: none; color: var(--texto-2); font-size: 15px; }
.resumo-linhas li { display: flex; justify-content: space-between; gap: 12px; }
.resumo-linhas strong { color: var(--texto); text-align: right; }
.candidatar-det > summary { list-style: none; }
.candidatar-det > summary::-webkit-details-marker { display: none; }
.candidatar-det[open] > summary { justify-content: flex-start; min-height: 0; margin-bottom: 12px; padding: 0; border: 0; background: none; color: var(--marinho); font-size: 1rem; font-weight: 800; }
.candidatar-det[open] > summary:hover { background: none; color: var(--azul); }
.candidatar-det[open] > summary .ic { display: none; }
.form-candidatar .campo { margin-bottom: 14px; }
.detalhe-opcional { margin-bottom: 12px; }
.detalhe-opcional > summary { display: inline-block; padding: 4px 0; color: var(--azul); font-weight: 700; font-size: 14px; cursor: pointer; list-style: none; }
.detalhe-opcional > summary::-webkit-details-marker { display: none; }
.nota { margin: 8px 0 0; color: var(--texto-3); font-size: 13px; text-align: center; }
.caixa-candidatar > .nota { margin: 0; }
.nota a { font-weight: 700; }
.acoes-v { display: flex; gap: 8px; padding-top: 14px; border-top: 1px solid #e8ecf1; }
.acoes-v .btn { flex: 1 1 0; min-height: 44px; padding: 0 10px; font-size: 14px; font-weight: 600; }
.btn-salvar-txt[aria-pressed="true"] { border-color: var(--azul-borda); background: var(--azul-claro); color: var(--azul); }
.btn-salvar-txt .ao-on { display: none; }
.btn-salvar-txt[aria-pressed="true"] .ao-on { display: inline; }
.btn-salvar-txt[aria-pressed="true"] .ao-off { display: none; }
.btn-wa-contorno { font-size: 14px; font-weight: 600; }
.btn-wa-contorno .ic { color: #1b6b43; }
.dica-seguranca { display: flex; align-items: flex-start; gap: 12px; padding: 18px 20px; background: var(--amarelo-claro); border: 1px solid #f3dcb0; border-radius: var(--r); color: #5c3800; font-size: 14px; }
.dica-seguranca > .ic { flex: none; width: 22px; height: 22px; margin-top: 1px; color: #8a5300; }
.dica-seguranca p { margin: 0 0 6px; }
.dica-seguranca .dica-tit { font-size: 15px; font-weight: 800; }
.link-btn { min-height: 28px; padding: 0; border: 0; background: none; color: #5c3800; font: inherit; font-size: 14px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.semelhantes { background: #fff; border-top: 1px solid var(--borda); }
.semelhantes > .cont { padding-top: 40px; padding-bottom: 48px; }
.semelhantes .secao-tit { margin-bottom: 20px; }
.semelhantes .secao-tit h2 { font-size: 1.375rem; }
.sim-grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.sim-card { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 18px; background: #fff; border: 1px solid var(--borda); border-radius: var(--r); transition: border-color .15s, box-shadow .15s; }
.sim-card:hover { border-color: #9db8dc; box-shadow: var(--sombra-hover); }
.sim-card h3 { margin: 0; font-size: 1.06rem; font-weight: 700; line-height: 1.3; overflow-wrap: anywhere; }
.sim-card h3 a { color: var(--marinho); text-decoration: none; }
.sim-card h3 a::after { content: ""; position: absolute; inset: 0; border-radius: var(--r); }
.sim-card:hover h3 a { color: var(--azul); text-decoration: underline; text-underline-offset: 3px; }
.sim-card h3 a:focus-visible { outline: none; }
.sim-card h3 a:focus-visible::after { outline: 3px solid var(--laranja); outline-offset: 2px; }
.sim-card p { margin: 0; color: var(--texto-3); font-size: 14px; }
.sim-pe { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-top: auto; padding-top: 6px; }
.sim-quando { color: var(--texto-3); font-size: 13px; }
.buscas-relacionadas { margin-top: 28px; }
.buscas-relacionadas h3 { margin: 0 0 10px; color: var(--texto-2); font-size: 13px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.rel-lista { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.rel-lista a { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 14px; border: 1px solid var(--borda-forte); border-radius: 999px; color: #2a3442; text-decoration: none; font-size: 14px; font-weight: 600; }
.rel-lista a:hover { border-color: var(--azul); color: var(--azul); }
.rel-lista .n { color: var(--texto-3); font-weight: 500; }
@media (max-width: 599px) {
  .vaga-topo .migalhas { display: none; }
  .painel-v { padding: 18px 16px; }
  .vaga-cab { gap: 12px; }
  .vaga-logo { width: 52px; height: 52px; border-radius: 12px; font-size: 18px; }
  .vaga-cab h1 { font-size: 1.375rem; line-height: 1.25; }
  .fatos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; }
  .semelhantes > .cont, .explorar > .cont { padding-top: 32px; padding-bottom: 36px; }
}

/* --------------------------- filtros no celular: folha que sobe de baixo --------------------------- */
@media (max-width: 999px) {
  .filtros { display: none; }
  .filtros[data-aberta="1"] { position: fixed; left: 0; right: 0; bottom: 0; z-index: 120; display: flex; flex-direction: column; height: 88vh; height: 88dvh; border: 0; border-radius: 20px 20px 0 0; background: #fff; box-shadow: 0 -10px 30px rgba(15, 31, 56, .25); }
  .filtros-fundo:not([hidden]) { position: fixed; inset: 0; z-index: 110; display: block; background: rgba(15, 31, 56, .55); }
  .filtros[data-aberta="1"] .filtros-alca { display: flex; justify-content: center; padding-top: 8px; }
  .filtros[data-aberta="1"] .filtros-alca::before { content: ""; width: 40px; height: 4px; border-radius: 999px; background: var(--borda-forte); }
  .filtros-cab { min-height: 0; padding: 4px 8px 8px 20px; border-bottom: 1px solid #e8ecf1; }
  .filtros-cab h2 { margin-right: auto; font-size: 1.19rem; }
  .filtros-cab h2 .ic { display: none; }
  .filtros .link-limpar { display: inline-flex; align-items: center; min-height: 44px; padding: 0 8px; text-decoration: none; font-size: 15px; }
  .filtros .btn-fechar { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; }
  .filtros-form { flex: 1; overflow-y: auto; overscroll-behavior: contain; padding: 6px 0 18px; }
  .filtros .filtro-grupo { padding: 14px 20px 10px; border-top: 0; }
  .filtros .opcoes { flex-direction: row; flex-wrap: wrap; gap: 8px; }
  .filtros .opcao { gap: 6px; min-height: 44px; margin: 0; padding: 0 14px; border: 1px solid var(--borda-forte); border-radius: 999px; background: #fff; font-weight: 600; }
  .filtros .opcao:hover { background: #fff; }
  .filtros .opcao input { position: absolute; width: 1px; height: 1px; margin: 0; opacity: 0; pointer-events: none; }
  .filtros .opcao .rot { flex: none; }
  .filtros .opcao .n { margin-left: 0; font-weight: 600; }
  .filtros .opcao:has(input:checked) { border-color: var(--azul); background: var(--azul-claro); box-shadow: inset 0 0 0 1px var(--azul); color: var(--azul-texto); }
  .filtros .opcao:has(input:checked) .n { color: var(--azul-texto); }
  .filtros .opcao:has(input:focus-visible) { outline: 3px solid var(--laranja); outline-offset: 2px; }
  .filtros .opcao.zero { border-color: #e3e7ee; }
  .filtros .filtro-chaves { padding: 6px 20px 10px; border-top: 0; }
  .filtros[data-aberta="1"] .filtros-pe { display: block; padding: 12px 20px max(20px, env(safe-area-inset-bottom)); border-top: 1px solid #e8ecf1; }
  html:not(.js) .filtros:target { position: fixed; inset: 0; z-index: 120; display: flex; flex-direction: column; overflow-y: auto; border-radius: 0; }
  html:not(.js) .filtros:target .filtros-pe { display: block; padding: 12px 20px; }
}

/* Painel da empresa (22/10/2026): topo simples como o do admin_novo (logo pequeno à esquerda, sem o menu do portal) */
.topo-simples { display: flex; align-items: center; gap: 16px; min-height: 56px; background: #0f172a; color: #fff;
  padding: 8px max(16px, env(safe-area-inset-right, 0px)) 8px max(16px, env(safe-area-inset-left, 0px)); }
.topo-simples :focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.ts-marca { display: flex; align-items: center; gap: 10px; min-width: 0; color: #fff; text-decoration: none; }
.ts-marca:hover { color: #fff; }
.ts-marca img { display: block; width: 32px; height: 32px; object-fit: contain; flex: none; }
.ts-marca strong { display: block; font-size: .95rem; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ts-marca small { display: block; font-size: .75rem; line-height: 1.2; color: #94a3b8; }
.ts-direita { margin-left: auto; display: flex; align-items: center; gap: 10px; min-width: 0; }
.ts-direita form { margin: 0; }
.ts-quem { font-size: .85rem; color: #cbd5e1; max-width: 260px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ts-botao { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 6px 10px; border: 1px solid #334155; border-radius: 8px;
  background: none; color: #e2e8f0; font: inherit; font-size: .85rem; text-decoration: none; cursor: pointer; }
.ts-botao:hover { background: #1e293b; color: #fff; }
@media (max-width: 720px) {
  .ts-quem, .ts-botao span { display: none; }
  .ts-botao { padding: 6px 9px; }
}
/* página inicial enxuta: até 3 atalhos (vagas no ar, candidatos novos, banco) */
@media (min-width: 900px) { .metricas.metricas-3 { grid-template-columns: repeat(3, 1fr); } }
.metricas-3 .metrica strong .ic { width: .9em; height: .9em; vertical-align: -.1em; }
@media (max-width: 899px) { .metricas-3 .metrica:nth-child(3):last-child { grid-column: 1 / -1; } }
