/* ============================================================
   RHSystem · tema oficial Ibifácil
   Paleta: #0A2A6B (primary), #0A84E0 (accent), #F5920C (deep)
   ============================================================ */

:root {
    /* Cores oficiais Ibifácil */
    --mm-navy:           #0A2A6B;   /* azul Ibifácil profundo - estrutura/texto/sidebar */
    --mm-navy-2:         #103A86;   /* azul mais claro p/ gradientes */
    --mm-cyan:           #0A84E0;   /* azul Ibifácil vivo - acentos/bordas/ícones */
    --mm-cyan-soft:      #e7f1fc;
    --mm-cyan-dark:      #0660B0;   /* azul hover */
    --mm-petrol:         #0A6BC0;
    --mm-sky:            #BBD7F5;
    --mm-orange:         #F5920C;   /* laranja Ibifácil - acento de destaque (CTAs) */
    --mm-orange-dark:    #D97908;   /* laranja hover */
    --mm-gold:           #FBC02D;   /* dourado Ibifácil */

    /* Aliases para componentes — CTA primária em laranja (destaque da marca) */
    --rh-primary:        var(--mm-orange);
    --rh-primary-hover:  var(--mm-orange-dark);
    --rh-primary-soft:   #FFF1DC;

    --rh-bg:             #eef1f4;   /* cinza pastel discreto (ajuste 260723) — antes #f5f7fa */
    --rh-surface:        #ffffff;
    --rh-text:           var(--mm-navy);
    --rh-muted:          #6b7785;
    --rh-border:         #e3e8ef;
    --rh-border-strong:  #cdd5df;

    --rh-success:        #16a34a;
    --rh-warning:        #d97706;
    --rh-danger:         #dc2626;

    --rh-radius:         12px;
    --rh-radius-sm:      8px;
    --rh-shadow-sm:      0 1px 2px rgba(1, 17, 38, .05);
    --rh-shadow:         0 8px 24px rgba(1, 17, 38, .08);

    --rh-sidebar-w:      260px;
    --rh-header-h:       62px;

    --rh-font:           "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI",
                         Roboto, "Helvetica Neue", Arial, sans-serif;
}

* { box-sizing: border-box; }

html, body {
    height: 100%;
}

body {
    margin: 0;
    font-family: var(--rh-font);
    font-size: 14px;
    line-height: 1.5;
    color: var(--rh-text);
    background: var(--rh-bg);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

a { color: var(--rh-primary); text-decoration: none; }
a:hover { color: var(--rh-primary-hover); }

/* ============================================================
   Layout shell
   ============================================================ */

.rh-shell {
    display: grid;
    grid-template-columns: var(--rh-sidebar-w) 1fr;
    grid-template-rows: 1fr;
    grid-template-areas: "sidebar main";
    min-height: 100vh;
}

/* ============================================================
   Header
   ============================================================ */

.rh-header {
    grid-area: header;
    background: var(--rh-surface);
    border-bottom: 1px solid var(--rh-border);
    display: none;            /* desktop: sem cabeçalho branco; ícones vão p/ a barra do menu */
    align-items: center;
    gap: 16px;
    padding: 0 24px;
    position: sticky;
    top: 0;
    z-index: 20;
}

.rh-header__brand-mobile {
    display: none;
    align-items: center;
    gap: 8px;
    font-weight: 600;
    color: var(--rh-text);
}

.rh-header__toggle {
    display: none;
    background: transparent;
    border: 1px solid var(--rh-border);
    border-radius: var(--rh-radius-sm);
    width: 38px; height: 38px;
    align-items: center; justify-content: center;
    color: var(--rh-text);
}

.rh-header__search {
    flex: 1;
    max-width: 420px;
    position: relative;
}

.rh-header__search input {
    width: 100%;
    height: 38px;
    padding: 0 12px 0 38px;
    border: 1px solid var(--rh-border);
    border-radius: var(--rh-radius-sm);
    background: #fafbfc;
    font: inherit;
    color: var(--rh-text);
    transition: border-color .15s, box-shadow .15s, background .15s;
}
.rh-header__search input:focus {
    outline: none;
    background: #fff;
    border-color: var(--mm-cyan);
    box-shadow: 0 0 0 3px rgba(10, 132, 224, .18);
}
.rh-header__search .bi {
    position: absolute;
    top: 50%; left: 12px;
    transform: translateY(-50%);
    color: var(--rh-muted);
}

.rh-header__actions {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rh-header__icon-btn {
    width: 38px; height: 38px;
    border: 1px solid var(--rh-border);
    background: var(--rh-surface);
    border-radius: var(--rh-radius-sm);
    color: var(--rh-muted);
    display: inline-flex; align-items: center; justify-content: center;
    cursor: pointer;
    transition: background .15s, color .15s, border-color .15s;
}
.rh-header__icon-btn:hover {
    background: var(--mm-cyan-soft);
    color: var(--mm-cyan-dark);
    border-color: #b9eaf3;
}

.rh-header__user {
    display: flex; align-items: center; gap: 10px;
    padding: 4px 12px 4px 4px;
    border: 1px solid var(--rh-border);
    border-radius: 999px;
    background: var(--rh-surface);
    cursor: pointer;
    transition: border-color .15s, box-shadow .15s;
}
.rh-header__user:hover {
    border-color: var(--mm-cyan);
    box-shadow: 0 0 0 3px rgba(10, 132, 224, .12);
}
.rh-header__avatar {
    width: 32px; height: 32px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--mm-navy), var(--mm-cyan));
    color: #fff;
    display: inline-flex; align-items: center; justify-content: center;
    font-weight: 600;
    font-size: 12px;
}
.rh-header__user-meta { line-height: 1.1; }
.rh-header__user-name { font-weight: 600; font-size: 13px; }
.rh-header__user-role { font-size: 11px; color: var(--rh-muted); }

/* ============================================================
   Sidebar (cor Ibifácil - azul)
   ============================================================ */

.rh-sidebar {
    grid-area: sidebar;
    background: linear-gradient(180deg, var(--mm-navy) 0%, var(--mm-navy-2) 100%);
    color: #cdd9e4;
    border-right: 1px solid var(--mm-navy);
    display: flex;
    flex-direction: column;
    position: sticky;
    top: 0;
    height: 100vh;
    /* NÃO usar overflow aqui: recortava o dropdown do sininho na borda da barra — os cartões e
       gráficos do dashboard apareciam "por cima" da notificação. Quem rola é o menu (.rh-nav--main),
       assim os ícones/sininho ficam sempre à vista. O modo topo (html.nav-top) já fazia isso. */
    overflow: visible;
    z-index: 30;              /* acima do conteúdo do dashboard, igual ao modo topo */
}

/* Caixa retangular do logo (Master e Cliente) = fundo branco */
.rh-sidebar__brand {
    height: var(--rh-header-h);
    display: flex; align-items: center; justify-content: center;
    padding: 0 16px;
    border-bottom: 1px solid var(--rh-border);
    background: #fff;
}
.rh-sidebar__brand img {
    max-height: 52px;
    width: auto;
    display: block;
}
/* logo do cliente na sidebar: imagem + nome, com respiro */
/* logo do cliente na sidebar: preenche o retângulo (largura da coluna × altura do cabeçalho), sem texto */
.rh-sidebar__brand--cliente { gap: 0; justify-content: center; padding: 5px 14px; }
.rh-sidebar__brand--cliente .rh-sidebar__logo {
    height: 46px; width: auto; max-width: 100%; flex: 0 1 auto;
    object-fit: contain; border-radius: 0;
    background: transparent; padding: 0; border: 0;
}
.rh-sidebar__brand--cliente .rh-sidebar__nome {
    color: var(--mm-navy); font-weight: 700; font-size: 14px; line-height: 1.15;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
/* respiro entre o logo (brand) e o primeiro item do menu */
.rh-sidebar__brand + .rh-nav { margin-top: 14px; }

/* caixa do logo no cabeçalho do dashboard do cliente */
.cli-logo {
    align-items: center; justify-content: center;
    padding: 8px 14px; border-radius: 12px;
    background: #fff; border: 1px solid var(--rh-border, #e5e7eb);
}
.cli-logo img { max-height: 46px; max-width: 180px; width: auto; display: block; }
/* empresa atendida: marca da consultoria (ícone já tem fundo próprio → sem cartão branco) */
.cli-logo--consultoria { background: transparent; border: none; padding: 0; }
.cli-logo--consultoria img { max-height: 54px; border-radius: 12px; }
/* dashboard da consultoria: lockup do robô Ibifácil RH (252×300, retrato → sem cartão) */
.cli-logo--robo { background: transparent; border: none; padding: 0; }
.cli-logo--robo img { max-height: 72px; max-width: none; }
/* barra de ações de formulário: separa os botões do card acima (pula uma linha) */
.rh-formbar {
    display: flex; justify-content: flex-end; gap: 8px;
    margin-top: 18px; padding-top: 16px;
    border-top: 1px solid var(--rh-border, #e5e7eb);
}

.rh-sidebar__section {
    padding: 18px 20px 6px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(255,255,255,.45);
}

.rh-nav {
    list-style: none;
    margin: 0;
    padding: 2px 12px 12px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.rh-nav__item a {
    display: flex; align-items: center; gap: 12px;
    padding: 10px 12px;
    border-radius: var(--rh-radius-sm);
    color: #cdd9e4;
    font-weight: 500;
    transition: background .15s, color .15s;
}
.rh-nav__item a:hover {
    background: rgba(10, 132, 224, .12);
    color: #fff;
}
.rh-nav__item.active a {
    background: linear-gradient(90deg, rgba(10, 132, 224, .22), rgba(10, 132, 224, .05));
    color: #fff;
    font-weight: 600;
    box-shadow: inset 3px 0 0 var(--mm-cyan);
}
.rh-nav__item .bi { font-size: 16px; opacity: .9; }
.rh-nav__item.disabled a {
    opacity: .55;
    cursor: not-allowed;
    pointer-events: none;
}


.rh-sidebar__footer {
    margin-top: auto;
    padding: 16px 20px;
    border-top: 1px solid rgba(255,255,255,.08);
    font-size: 12px;
    color: rgba(255,255,255,.55);
}

/* ============================================================
   Main
   ============================================================ */

.rh-main {
    grid-area: main;
    padding: 24px 32px 48px;
}

.rh-page-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 24px;
    flex-wrap: wrap;
}
.rh-page-title {
    font-size: 22px;
    font-weight: 700;
    letter-spacing: -.01em;
    margin: 0;
    color: var(--mm-navy);
}
.rh-page-subtitle {
    color: var(--rh-muted);
    font-size: 13px;
    margin-top: 4px;
}

.rh-breadcrumb {
    display: flex; align-items: center; gap: 6px;
    font-size: 12px;
    color: var(--rh-muted);
    margin-bottom: 6px;
}
.rh-breadcrumb a { color: var(--rh-muted); }
.rh-breadcrumb a:hover { color: var(--mm-cyan-dark); }

/* ============================================================
   Cards
   ============================================================ */

.rh-card {
    background: var(--rh-surface);
    border: 1px solid var(--rh-border);
    border-radius: var(--rh-radius);
    box-shadow: var(--rh-shadow-sm);
}
.rh-card__body { padding: 20px; }
.rh-card__header {
    padding: 16px 20px;
    border-bottom: 1px solid var(--rh-border);
    display: flex; align-items: center; justify-content: space-between;
}
.rh-card__title {
    font-weight: 600;
    font-size: 14px;
    margin: 0;
    color: var(--mm-navy);
}

/* KPI */
.rh-kpi {
    background: var(--rh-surface);
    border: 1px solid var(--rh-border);
    border-radius: var(--rh-radius);
    padding: 18px 20px;
    display: flex;
    align-items: center;
    gap: 16px;
    box-shadow: var(--rh-shadow-sm);
    transition: box-shadow .2s, transform .2s;
}
.rh-kpi:hover {
    box-shadow: var(--rh-shadow);
    transform: translateY(-1px);
}
.rh-kpi__icon {
    width: 44px; height: 44px;
    border-radius: 10px;
    background: var(--mm-cyan-soft);
    color: var(--mm-cyan-dark);
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 20px;
}
.rh-kpi__label {
    font-size: 11px;
    color: var(--rh-muted);
    text-transform: uppercase;
    letter-spacing: .06em;
    font-weight: 600;
}
.rh-kpi__value {
    font-size: 24px;
    font-weight: 700;
    color: var(--mm-navy);
    line-height: 1.1;
    margin-top: 2px;
}

/* status pill */
.rh-status {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 4px 12px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    border: 1px solid var(--rh-border);
    background: #fff;
}
.rh-status__dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: var(--rh-muted);
}
.rh-status--ok  { color: #14532d; border-color: #bbf7d0; background: #f0fdf4; }
.rh-status--ok  .rh-status__dot { background: var(--rh-success); }
.rh-status--err { color: #7f1d1d; border-color: #fecaca; background: #fef2f2; }
.rh-status--err .rh-status__dot { background: var(--rh-danger); }

/* ============================================================
   Botões Ibifácil
   ============================================================ */

.rh-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    height: 42px;
    padding: 0 18px;
    border-radius: 8px;
    border: 1px solid transparent;
    font-weight: 600;
    font-size: 14px;
    cursor: pointer;
    transition: background .15s, border-color .15s, color .15s, box-shadow .15s, transform .05s;
    text-decoration: none;
    line-height: 1;
}
.rh-btn:active { transform: translateY(1px); }
.rh-btn--primary {
    background: var(--mm-cyan);
    color: #fff;
}
.rh-btn--primary:hover {
    background: var(--mm-cyan-dark);
    color: #fff;
}
.rh-btn--primary:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(10, 132, 224, .35);
}
.rh-btn--block { width: 100%; }
.rh-btn--ghost {
    background: transparent;
    color: var(--mm-navy);
    border-color: var(--rh-border);
}
.rh-btn--ghost:hover { background: var(--rh-bg); }

/* ============================================================
   Login (split-screen com identidade Ibifácil)
   ============================================================ */

.login-page {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 1.05fr 1fr;
    background: var(--rh-bg);
}

.login-hero {
    position: relative;
    background:
        radial-gradient(1200px 600px at 20% 10%, rgba(10,132,224,.28), transparent 60%),
        radial-gradient(900px 500px at 90% 90%, rgba(10,107,192,.45), transparent 55%),
        linear-gradient(135deg, var(--mm-navy) 0%, var(--mm-navy-2) 55%, var(--mm-petrol) 100%);
    color: #fff;
    padding: 46px 52px 30px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.login-hero__copy { margin-top: 6px; position: relative; }
.login-hero__tag {
    display: inline-block;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--mm-cyan);
    background: rgba(10,132,224,.12);
    border: 1px solid rgba(10,132,224,.35);
    padding: 5px 12px;
    border-radius: 999px;
    margin-bottom: 18px;
}
.login-hero__title {
    font-size: 32px;
    font-weight: 800;
    line-height: 1.16;
    letter-spacing: -.01em;
    margin: 0 0 14px;
    max-width: 540px;
    color: #fff;
}
.login-hero__title em { color: var(--mm-orange); font-style: normal; }
.login-hero__lead {
    font-size: 14.5px;
    line-height: 1.6;
    color: rgba(255,255,255,.85);
    max-width: 540px;
    margin: 0;
}
.login-hero__pitch { margin: 22px 0 0; display: grid; gap: 9px; max-width: 540px; }
.login-hero__pitch p {
    margin: 0; font-size: 14.5px; font-weight: 600; color: #fff;
    padding: 11px 15px; border-radius: 10px;
    background: rgba(255,255,255,.08);
    border-left: 3px solid var(--mm-orange);
}
.login-hero__pitch strong { color: var(--mm-gold); }
.login-hero__plans-line { margin: 20px 0 0; font-size: 14px; line-height: 1.55; color: rgba(255,255,255,.9); max-width: 540px; }
.login-hero__plans-line strong { color: #fff; }

.login-hero__bullets {
    list-style: none;
    padding: 0;
    margin: 24px 0 0;
    display: grid;
    gap: 10px;
}
.login-hero__bullets li {
    display: flex; align-items: center; gap: 10px;
    font-size: 13.5px;
    color: var(--rh-text);
}
.login-hero__bullets .bi {
    color: var(--mm-cyan);
    font-size: 16px;
}

.login-hero__foot {
    margin-top: auto;
    padding-top: 26px;
    text-align: center;
    position: relative;
}
.login-hero__seal {
    display: block;
    width: 100%;
    max-width: 500px;
    height: auto;
    margin: 0 auto;
    background: #eef1f6;            /* cinza bem leve, do tamanho do logo */
    border-radius: 12px 12px 0 0;
}
.login-hero__copyr {
    max-width: 500px;
    margin: 0 auto;
    box-sizing: border-box;
    background: var(--mm-navy);     /* azul escuro forte */
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    padding: 11px 14px;
    border-radius: 0 0 12px 12px;
}

.login-panel {
    display: flex; align-items: center; justify-content: center;
    padding: 40px 24px;
}
.login-card {
    width: 100%;
    max-width: 420px;
}
.login-card h1 {
    font-size: 19px;
    font-weight: 700;
    color: var(--mm-navy);
    margin: 0 0 6px;
}
.login-card .login-sub {
    color: var(--rh-muted);
    font-size: 13px;
    margin: 0 0 28px;
}

.rh-form-group { margin-bottom: 16px; }
/* Padrão 260723 (definido pelo dono): fonte menor em TODAS as CRUDs/forms. */
.rh-label {
    display: block;
    font-size: 11px;
    font-weight: 600;
    color: var(--mm-navy);
    margin-bottom: 5px;
    letter-spacing: .02em;
}
.rh-input {
    width: 100%;
    height: 38px;
    padding: 0 10px;
    border: 1px solid var(--rh-border);
    border-radius: 8px;
    background: #fff;
    color: var(--rh-text);
    font: inherit;
    font-size: 13px;
    transition: border-color .15s, box-shadow .15s;
}
textarea.rh-input { height: auto; padding: 8px 10px; }
.rh-input:focus {
    outline: none;
    border-color: var(--mm-cyan);
    box-shadow: 0 0 0 3px rgba(10, 132, 224, .18);
}
.rh-input-group { position: relative; }
.rh-input-group .rh-input { padding-left: 42px; }
.rh-input-group__icon {
    position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
    color: var(--rh-muted);
    pointer-events: none;
}
.rh-input-group__toggle {
    position: absolute; right: 8px; top: 50%; transform: translateY(-50%);
    width: 32px; height: 32px;
    display: inline-flex; align-items: center; justify-content: center;
    color: var(--rh-muted);
    background: transparent;
    border: 0; border-radius: 6px;
    cursor: pointer;
}
.rh-input-group__toggle:hover { background: var(--rh-bg); color: var(--mm-navy); }

.rh-check {
    display: inline-flex; align-items: center; gap: 8px;
    font-size: 13px;
    color: var(--rh-muted);
    user-select: none;
}
.rh-check input { accent-color: var(--mm-cyan); }

.rh-alert {
    border-radius: 8px;
    padding: 10px 12px;
    font-size: 13px;
    margin-bottom: 16px;
    display: flex; align-items: flex-start; gap: 8px;
}
.rh-alert--error  { background: #fef2f2; color: #7f1d1d; border: 1px solid #fecaca; }
.rh-alert--info   { background: var(--mm-cyan-soft); color: var(--mm-cyan-dark); border: 1px solid #b9eaf3; }
/* `--warn` já era usada em 5 telas (candidato, empresa, cliente, vaga) mas NUNCA foi definida:
   o aviso saía sem cor nenhuma, igual a um parágrafo comum. Definido aqui, no lugar único. */
.rh-alert--warn   { background: #fffbeb; color: #92400e; border: 1px solid #fde68a; }
.rh-alert--warn i { color: #b45309; }

/* ===== Aviso central elegante (padrão do sistema — substitui a barra do topo) ===== */
.rh-notice-wrap{position:fixed;inset:0;z-index:4000;display:flex;align-items:center;justify-content:center;padding:20px;
    background:rgba(8,20,40,.34);opacity:0;transition:opacity .2s ease}
.rh-notice-wrap.is-in{opacity:1}
.rh-notice{position:relative;width:100%;max-width:400px;background:#fff;border-radius:18px;
    box-shadow:0 24px 70px -14px rgba(8,30,50,.5);padding:26px 26px 22px;text-align:center;
    border-top:5px solid #dc2626;transform:translateY(10px) scale(.96);opacity:0;transition:transform .24s cubic-bezier(.2,.9,.3,1.2),opacity .24s ease}
.rh-notice-wrap.is-in .rh-notice{transform:translateY(0) scale(1);opacity:1}
.rh-notice__ic{font-size:42px;line-height:1;margin-bottom:6px;color:#dc2626}
.rh-notice__title{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:17px;color:#0c1c2b;margin-bottom:5px}
.rh-notice__msg{font-size:14px;color:#5c7286;line-height:1.45}
/* 05/08: a confirmação dos benefícios lista um item por linha. O rhConfirm usa textContent (não
   HTML, de propósito), então quem preserva as quebras é o CSS. */
.rh-notice__msg{white-space:pre-line;max-height:46vh;overflow:auto}
.rh-notice__x{position:absolute;top:12px;right:14px;border:0;background:none;font-size:22px;line-height:1;color:#94a3b8;cursor:pointer}
.rh-notice__x:hover{color:#475569}
.rh-notice--error{border-top-color:#dc2626}.rh-notice--error .rh-notice__ic{color:#dc2626}
.rh-notice--ok{border-top-color:#16a34a}.rh-notice--ok .rh-notice__ic{color:#16a34a}
.rh-notice--warn{border-top-color:#f59e0b}.rh-notice--warn .rh-notice__ic{color:#d97706}
.rh-notice--info{border-top-color:#0ea5e9}.rh-notice--info .rh-notice__ic{color:#0284c7}
/* Ações do confirm central (RH.confirm) */
.rh-notice__actions{display:flex;gap:10px;justify-content:center;margin-top:18px;flex-wrap:wrap}
.rh-notice__actions .rh-btn{min-width:130px;justify-content:center}

.login-foot {
    margin-top: 24px;
    text-align: center;
    font-size: 12px;
    color: var(--rh-muted);
}

/* Logo no topo do card de campos (movido do hero) */
.login-card__logo { margin-bottom: 16px; text-align: center; }
/* o robô ocupava quase metade da tela no celular (inline de 210px) */
.login-card__logo img { max-width: 132px; max-height: 132px; height: auto; margin: 0 auto; }
/* título de boas-vindas: menor e centralizado, junto do subtítulo */
.login-card h1 { text-align: center; }
.login-card .login-sub { text-align: center; }
@media (max-width: 575.98px) {
    .login-card__logo { margin-bottom: 12px; }
    .login-card__logo img { max-width: 104px; max-height: 104px; }
}

/* link discreto (esqueceu senha) */
.login-link { color: var(--mm-cyan-dark); text-decoration: none; font-weight: 600; }
.login-link:hover { color: var(--mm-cyan); text-decoration: underline; }

/* divisor "é candidato?" */
.login-divider {
    display: flex; align-items: center; gap: 12px;
    margin: 22px 0 16px;
    color: var(--rh-muted); font-size: 12px;
    text-transform: uppercase; letter-spacing: .08em;
}
.login-divider::before, .login-divider::after {
    content: ""; flex: 1; height: 1px; background: var(--rh-border);
}

.login-cta-help {
    margin: 12px 0 0; text-align: center;
    font-size: 12.5px; color: var(--rh-muted); line-height: 1.5;
}
.login-cta-help a { color: var(--mm-cyan-dark); font-weight: 600; text-decoration: none; }
.login-cta-help a:hover { text-decoration: underline; }

/* planos citados no hero */
.login-hero__plans { margin-top: 26px; position: relative; }
.login-hero__plans-label {
    display: block; font-size: 12px; color: rgba(255,255,255,.6);
    margin-bottom: 10px;
}
.login-hero__plans-row { display: flex; flex-wrap: wrap; gap: 8px; }
.login-hero__plan {
    font-size: 12px; font-weight: 600;
    color: rgba(255,255,255,.9);
    border: 1px solid rgba(255,255,255,.18);
    background: rgba(255,255,255,.06);
    padding: 5px 12px; border-radius: 999px;
}
.login-hero__plan--hl {
    color: var(--mm-navy); background: var(--mm-cyan);
    border-color: var(--mm-cyan);
}

/* ============================================================
   Responsivo
   ============================================================ */

@media (max-width: 992px) {
    .rh-shell {
        grid-template-columns: 1fr;
        grid-template-rows: var(--rh-header-h) 1fr;
        grid-template-areas:
            "header"
            "main";
    }
    .rh-header { display: flex; }
    .rh-sidebar { display: none; }
    .rh-header__toggle { display: inline-flex; }
    .rh-header__brand-mobile { display: inline-flex; }
    .rh-main { padding: 20px; }

    .login-page { grid-template-columns: 1fr; }
    .login-hero { padding: 36px 28px; min-height: 240px; }
    .login-hero__title { font-size: 26px; }
    .login-hero__bullets { display: none; }
    .login-hero__plans { display: none; }
}

@media (max-width: 480px) {
    .login-hero { padding: 24px 20px; }
    .login-panel { padding: 28px 20px; }
}

.offcanvas .rh-sidebar {
    display: flex !important;          /* o .rh-sidebar fica display:none em ≤992px — restaura dentro do offcanvas */
    flex-direction: column !important;
    position: static;
    height: 100%;
    border-right: 0;
}

/* Dentro do offcanvas o menu é SEMPRE vertical — neutraliza o modo "topo" (horizontal) */
html.nav-top .offcanvas .rh-sidebar {
    flex-direction: column !important; height: 100%; padding: 0; gap: 0; align-items: stretch;
}
html.nav-top .offcanvas .rh-sidebar__brand {
    height: var(--rh-header-h); padding: 0 20px; border-bottom: 1px solid rgba(255,255,255,.08);
}
html.nav-top .offcanvas .rh-sidebar__footer { display: flex; }
html.nav-top .offcanvas .rh-nav--main { flex-direction: column; padding: 10px 0; gap: 2px; }
html.nav-top .offcanvas .rh-nav__group { position: static; }
html.nav-top .offcanvas .rh-nav__submenu {
    position: static; max-height: 0; overflow: hidden;
    opacity: 1; visibility: visible; transform: none;
    background: transparent; border: 0; border-radius: 0; box-shadow: none;
    min-width: 0; padding: 0; margin: 2px 0 4px;
}
html.nav-top .offcanvas .rh-nav__group.is-open > .rh-nav__submenu { max-height: 640px; }
html.nav-top .offcanvas .rh-nav__item > a::after,
html.nav-top .offcanvas .rh-nav__toggle::after { display: none; }

/* ============================================================
   Configurações - tabs e formulário
   ============================================================ */

.rh-tabs.nav-tabs {
    border-bottom: 1px solid var(--rh-border);
    gap: 4px;
    /* gap único entre a barra de abas e o conteúdo (evita "salto" entre abas) */
    margin-bottom: 16px;
    /* Uma linha só: se não couber, rola na horizontal em vez de quebrar em 2 linhas. */
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: thin;
}
.rh-tabs.nav-tabs::-webkit-scrollbar { height: 5px; }
.rh-tabs.nav-tabs::-webkit-scrollbar-thumb { background: var(--rh-border-strong); border-radius: 3px; }
/* exceção: quando as abas vivem DENTRO do header do card (ex.: Integrações),
   o espaçamento é controlado pelo card, não pela barra. */
.rh-card__header > .rh-tabs.nav-tabs { margin-bottom: 0; }
.rh-tabs .nav-link {
    border: 0;
    border-bottom: 2px solid transparent;
    color: var(--rh-muted);
    background: transparent;
    font-weight: 600;
    font-size: 13px;
    padding: 10px 11px;
    border-radius: 0;
    display: inline-flex; align-items: center; gap: 6px;
    white-space: nowrap;   /* rótulo não quebra dentro da aba */
}
.rh-tabs .nav-link:hover {
    color: #000;
    border-bottom-color: var(--rh-border-strong);
}
/* PADRÃO GLOBAL: aba ativa em PRETO com texto branco (aplicado em todo o software) */
.rh-tabs .nav-link.active {
    color: #fff;
    background: #000;
    border-bottom-color: #000;
    border-radius: 8px 8px 0 0;
    font-weight: 700;
}
.rh-tabs .nav-link.active i { color: #fff; }

/* ------------------------------------------------------------------
   PADRÃO preto/branco de CLIENTES (criar/editar) — escopo .rh-clientes-edit.
   As abas ativas já são preto/branco pelo padrão global (.rh-tabs .nav-link.active).
   ------------------------------------------------------------------ */

/* Cabeçalho de TODOS os cards em PRETO (título, ícone e seta de colapso brancos).
   O colapso (abre/fecha) é automático em qualquer .rh-card com cabeçalho próprio. */
.rh-clientes-edit .rh-card__header {
    background: #000 !important;          /* vence as cores por seção (.rh-sec--*) */
    border-bottom-color: #000 !important;
}
.rh-clientes-edit .rh-card__header .rh-card__title,
.rh-clientes-edit .rh-card__header .rh-card__title i,
.rh-clientes-edit .rh-card__header .vaga-coll__chev {
    color: #fff !important;
}
.rh-clientes-edit .rh-sec[class*="rh-sec--"] { border-top-color: #000 !important; }

/* Borda superior colorida (roxo/verde/âmbar/etc., por painel, passo ou variante de card)
   → PRETO em qualquer card dentro do escopo de clientes (create, edit e painéis avulsos). */
.rh-clientes-edit .rh-card {
    border-top-color: #000 !important;
}

/* Botões dentro do cabeçalho preto (ex.: "Voltar aos padrões do plano") em BRANCO */
.rh-clientes-edit .rh-card__header .rh-btn {
    background: transparent;
    color: #fff;
    border-color: rgba(255,255,255,.55);
}
.rh-clientes-edit .rh-card__header .rh-btn:hover {
    background: rgba(255,255,255,.14);
    color: #fff;
    border-color: #fff;
}

/* Stepper (criar): passo ATIVO em preto + branco (mesmo padrão das abas) */
.rh-clientes-edit .rh-stepper li.is-active {
    background: #000;
    border-color: #000;
    color: #fff;
}
.rh-clientes-edit .rh-stepper li.is-active span {
    background: #fff;
    color: #000;
}

/* ------------------------------------------------------------------
   Uploader por CLIQUE na imagem (padrão reutilizável) — substitui o
   "escolher arquivo". Toque no quadro p/ incluir/alterar; preview na hora.
   ------------------------------------------------------------------ */
.rh-imgpick { display: block; cursor: pointer; }
.rh-imgpick__input {
    position: absolute; width: 1px; height: 1px;
    padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); border: 0;
}
.rh-imgpick__frame {
    position: relative;
    display: flex; align-items: center; justify-content: center;
    width: 100%; min-height: 110px; padding: 10px;
    border: 2px dashed var(--rh-border-strong); border-radius: 10px;
    background: var(--rh-bg); overflow: hidden;
    transition: border-color .15s ease, background .15s ease;
}
.rh-imgpick:hover .rh-imgpick__frame,
.rh-imgpick__input:focus + .rh-imgpick__frame { border-color: var(--mm-cyan); background: var(--mm-cyan-soft); }
.rh-imgpick__img { max-width: 100%; max-height: 150px; object-fit: contain; display: none; }
.rh-imgpick.has-image .rh-imgpick__img { display: block; }
.rh-imgpick__hint {
    display: inline-flex; align-items: center; gap: 7px;
    color: var(--rh-muted); font-size: 12.5px; font-weight: 600; text-align: center;
}
.rh-imgpick__hint i { font-size: 20px; }
.rh-imgpick.has-image .rh-imgpick__hint {
    position: absolute; right: 6px; bottom: 6px; margin: 0;
    background: rgba(0,0,0,.72); color: #fff; padding: 4px 9px; border-radius: 999px; font-size: 11.5px;
}
/* variante AVATAR: quadro quadrado com preview recortado (foto de usuário) */
.rh-imgpick--avatar .rh-imgpick__frame { aspect-ratio: 1 / 1; max-width: 160px; min-height: 0; border-radius: 14px; }
.rh-imgpick--avatar .rh-imgpick__img { max-height: none; width: 100%; height: 100%; object-fit: cover; border-radius: 12px; }

.rh-settings-section-title {
    font-size: 16px;
    font-weight: 700;
    color: var(--mm-navy);
    margin: 4px 0 14px;
    display: flex; align-items: center; gap: 10px;
    /* faixa de título: delimita o grupo de campos */
    background: #f8fafc;
    border-left: 4px solid #94a3b8;
    border-radius: 8px;
    padding: 10px 14px;
}
.rh-settings-section-title--green { background:#ecfdf5; border-left-color:#10b981; color:#047857; }
.rh-settings-section-title--blue  { background:#eff6ff; border-left-color:#3b82f6; color:#1d4ed8; }
.rh-settings-section-title--amber { background:#fffbeb; border-left-color:#f59e0b; color:#b45309; }
.rh-settings-section-title--dark  { background:#000; border-left-color:#000; color:#fff; }
.rh-settings-section-title--dark i { color:#fff; }

.rh-settings-form select.rh-input {
    appearance: none;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 16 16' fill='%23647785'><path d='M3 6l5 5 5-5z'/></svg>");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 34px;
}

.rh-settings-form code {
    background: var(--rh-bg);
    color: var(--mm-navy);
    padding: 1px 6px;
    border-radius: 4px;
    font-size: 12.5px;
}

/* ============================================================
   Painel CRUD (estilo legado: header navy + banner ciano)
   ============================================================ */
.rh-panel {
    background: var(--rh-surface);
    border: 1px solid var(--rh-border);
    border-radius: var(--rh-radius);
    box-shadow: var(--rh-shadow-sm);
    overflow: hidden;
}
.rh-panel__toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 16px;
    border-bottom: 1px solid var(--rh-border);
    background: #fafbfc;
}
.rh-panel__count {
    color: var(--rh-muted);
    font-size: 13px;
}
.rh-panel__count strong {
    color: var(--mm-navy);
    font-weight: 700;
    margin-right: 4px;
}
.rh-panel__body { padding: 0; }
.rh-panel__body .table-responsive { padding: 0; }

.rh-panel-table {
    width: 100%;
    margin: 0;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 13px;
}
.rh-panel-table thead th {
    text-align: left;
    color: #fff;
    font-weight: 600;
    font-size: 10.5px;
    letter-spacing: .05em;
    text-transform: uppercase;
    padding: 9px 10px;
    background: #000;
    border-bottom: 1px solid var(--rh-border);
    white-space: nowrap;
    position: sticky;
    top: 0;
}

.rh-panel-table tbody td {
    padding: 9px 10px;
    border-bottom: 1px solid var(--rh-border);
    color: var(--rh-text);
    vertical-align: middle;
    line-height: 1.45;
}
.rh-panel-table tbody td:not([style*="white-space"]) { white-space: normal; }
.rh-panel-table tbody td.rh-cell--nowrap { white-space: nowrap; }
.rh-panel-table tbody td.rh-cell--num    { font-variant-numeric: tabular-nums; color: var(--rh-muted); width: 56px; }

.rh-panel-table tbody tr:last-child td { border-bottom: 0; }
.rh-panel-table tbody tr:hover { background: rgba(10, 132, 224, .035); }
.rh-panel-table tbody tr.dragging { opacity: .5; background: var(--mm-cyan-soft); }
.rh-panel-table__handle { cursor: grab; color: var(--rh-muted); }
.rh-panel-table__handle:hover { color: var(--mm-cyan-dark); }
.rh-panel-table__handle i { font-size: 14px; opacity: .55; transition: opacity .15s; }
.rh-panel-table__handle:hover i { opacity: 1; }

/* Coluna de Nome / título principal */
.rh-cell--main {
    font-weight: 600;
    color: var(--mm-navy);
}
.rh-cell--desc {
    color: var(--rh-muted);
    font-size: 13px;
}

.rh-panel-btn {
    width: 32px; height: 32px;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 6px;
    border: 1px solid var(--rh-border);
    background: transparent;
    color: var(--rh-muted);
    margin: 0 2px;
    cursor: pointer;
    font-size: 15px;
    transition: background .15s, color .15s, border-color .15s, transform .05s;
}
.rh-panel-btn:hover  { background: rgba(0,0,0,.04); }
.rh-panel-btn:active { transform: translateY(1px); }
/* sem fundo: a cor fica no ÍCONE */
.rh-panel-btn--edit   { color: var(--mm-cyan-dark); }
.rh-panel-btn--edit:hover   { border-color: var(--mm-cyan-dark); background: rgba(10,132,224,.08); }
.rh-panel-btn--delete { color: #ef4444; }
.rh-panel-btn--delete:hover { border-color: #ef4444; background: rgba(239,68,68,.08); }
.rh-panel-btn--view   { color: #0891b2; text-decoration:none; }
.rh-panel-btn--view:hover   { border-color: #0891b2; background: rgba(8,145,178,.08); }

.rh-panel__cta {
    border-radius: 8px;
    padding: 12px 16px;
    font-size: 14px;
    margin-bottom: 4px;
}

/* Container do CRUD ocupa largura do conteúdo, com max razoável */
.rh-crud-container { max-width: 1180px; margin: 0 auto; }

/* Grid (mantido por compatibilidade, sem uso atual) */
.rh-panel-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 18px;
}

/* ============================================================
   Tabela / Lista CRUD (legado - mantida para casos antigos)
   ============================================================ */
.rh-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 13.5px;
}
.rh-table thead th {
    text-align: left;
    background: #000;
    color: #fff;
    font-weight: 600;
    font-size: 11px;
    letter-spacing: .04em;
    text-transform: uppercase;
    padding: 10px 14px;
    border-bottom: 1px solid #000;
    border-top: 1px solid #000;
}
/* Cabeçalho de lista em PRETO/BRANCO — padrão GLOBAL (todas as listas). Ícones/links do thead em branco. */
.rh-table thead th a, .rh-table thead th i,
.rh-panel-table thead th a, .rh-panel-table thead th i { color:#fff; }
.rh-headdark thead th { background:#000 !important; color:#fff !important; border-color:#000 !important; }
.rh-table tbody td {
    padding: 12px 14px;
    border-bottom: 1px solid var(--rh-border);
    color: var(--rh-text);
    vertical-align: middle;
}
.rh-table tbody tr:hover { background: rgba(10, 132, 224, .04); }
.rh-table tbody tr.dragging { opacity: .5; background: var(--mm-cyan-soft); }
.rh-table__handle {
    cursor: grab;
    color: var(--rh-muted);
    text-align: center;
}
.rh-table__handle:hover { color: var(--mm-cyan-dark); }

.rh-icon-btn {
    width: 32px; height: 32px;
    display: inline-flex; align-items: center; justify-content: center;
    border: 1px solid var(--rh-border);
    background: #fff;
    border-radius: 6px;
    color: var(--rh-muted);
    margin-left: 4px;
    cursor: pointer;
    transition: background .15s, color .15s, border-color .15s;
}
.rh-icon-btn:hover { background: var(--mm-cyan-soft); color: var(--mm-cyan-dark); border-color: #b9eaf3; }
.rh-icon-btn--danger:hover { background: #fef2f2; color: #b91c1c; border-color: #fecaca; }

.rh-badge {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 2px 10px;
    border-radius: 999px;
    background: var(--rh-bg);
    color: var(--rh-muted);
    font-size: 11.5px;
    font-weight: 600;
    border: 1px solid var(--rh-border);
}
.rh-badge--ok     { background: #f0fdf4; color: #166534; border-color: #bbf7d0; }
.rh-badge--info   { background: var(--mm-cyan-soft); color: var(--mm-cyan-dark); border-color: #b9eaf3; }
.rh-badge--danger { background: #fef2f2; color: #b91c1c; border-color: #fecaca; }

/* Tabela de Usuários - célula composta com avatar */
.rh-user-row { display: flex; align-items: center; gap: 12px; }
.rh-user-row__avatar {
    position: relative;
    width: 38px; height: 38px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--mm-navy), var(--mm-cyan));
    color: #fff;
    display: inline-flex; align-items: center; justify-content: center;
    font-weight: 700; font-size: 12px;
    flex-shrink: 0;
    overflow: hidden;
}
.rh-user-row__avatar img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.rh-user-row__status {
    position: absolute;
    right: -1px; bottom: -1px;
    width: 11px; height: 11px;
    border-radius: 50%;
    background: #cbd5e1;
    border: 2px solid #fff;
}
.rh-user-row__status.is-online { background: #16a34a; }
.rh-user-row__info { min-width: 0; }
.rh-user-row__name { font-weight: 600; color: var(--mm-navy); }
.rh-user-row__email { font-size: 12.5px; color: var(--rh-muted); }

.rh-code {
    background: var(--rh-bg);
    color: var(--mm-navy);
    padding: 2px 8px;
    border-radius: 5px;
    font-size: 12.5px;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

/* ============================================================
   Configurações - layout interno (sub-nav lateral + conteúdo)
   ============================================================ */
.rh-settings {
    max-width: 1320px;
    margin: 0 auto;
}

.rh-settings__head {
    margin-bottom: 24px;
}
.rh-settings__title {
    margin: 6px 0 4px;
    font-size: 24px;
    font-weight: 700;
    color: var(--mm-navy);
    letter-spacing: -.015em;
    display: inline-flex; align-items: center; gap: 10px;
}
.rh-settings__title .bi { color: var(--mm-cyan); }
.rh-settings__subtitle {
    color: var(--rh-muted);
    font-size: 14px;
    margin: 0;
    max-width: 720px;
}

.rh-settings__body {
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 28px;
    align-items: flex-start;
}

/* Sub-nav lateral */
.rh-settings__nav {
    position: sticky;
    top: calc(var(--rh-header-h) + 16px);
}
.rh-settings__nav-toggle {
    display: none;
    align-items: center; gap: 8px;
    width: 100%;
    padding: 10px 14px;
    border: 1px solid var(--rh-border);
    background: var(--rh-surface);
    border-radius: 8px;
    color: var(--mm-navy);
    font-weight: 600;
    font-size: 13px;
    cursor: pointer;
}
.rh-settings__nav-inner {
    background: var(--rh-surface);
    border: 1px solid var(--rh-border);
    border-radius: var(--rh-radius);
    padding: 6px;
    box-shadow: var(--rh-shadow-sm);
    /* menu longo (várias seções) rola sozinho, sem esticar a página */
    max-height: calc(100vh - var(--rh-header-h) - 40px);
    overflow-y: auto;
}
.rh-settings__nav-group + .rh-settings__nav-group {
    margin-top: 4px;
    padding-top: 8px;
    border-top: 1px solid var(--rh-border);
}
.rh-settings__nav-grouptitle {
    padding: 10px 12px 6px;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: #000;
}
.rh-settings__nav-inner ul {
    list-style: none;
    padding: 0; margin: 0;
}
.rh-settings__nav-inner li a {
    display: grid;
    grid-template-columns: 18px 1fr;
    grid-template-rows: auto auto;
    column-gap: 10px;
    align-items: center;
    padding: 8px 12px;
    border-radius: 7px;
    color: #475569;
    font-size: 13.5px;
    font-weight: 500;
    text-decoration: none;
    transition: background .15s, color .15s;
    position: relative;
}
.rh-settings__nav-inner li a .bi {
    grid-row: 1 / span 2;
    font-size: 14px;
    color: var(--rh-muted);
    align-self: center;
}
.rh-settings__nav-inner li a span {
    grid-column: 2;
    grid-row: 1;
}
.rh-settings__nav-inner li a small {
    grid-column: 2;
    grid-row: 2;
    font-size: 11px;
    color: var(--rh-muted);
    line-height: 1.3;
}
.rh-settings__nav-inner li a:hover {
    background: #f3f6fb;
    color: var(--mm-navy);
}
.rh-settings__nav-inner li a:hover .bi { color: var(--mm-cyan-dark); }
.rh-settings__nav-inner li.active a {
    background: var(--mm-cyan-soft);
    color: var(--mm-cyan-dark);
    font-weight: 600;
}
.rh-settings__nav-inner li.active a .bi { color: var(--mm-cyan-dark); }
.rh-settings__nav-inner li.active a::before {
    content: "";
    position: absolute;
    left: 0; top: 8px; bottom: 8px;
    width: 3px;
    background: var(--mm-cyan);
    border-radius: 0 3px 3px 0;
}

/* Conteúdo */
.rh-settings__content { min-width: 0; }

/* Cabeçalho de cada sub-página */
.rh-section-head {
    display: flex; align-items: flex-start; justify-content: space-between;
    gap: 16px;
    margin-bottom: 20px;
    flex-wrap: wrap;
}
.rh-section-title {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
    color: var(--mm-navy);
    display: inline-flex; align-items: center; gap: 8px;
}
.rh-section-title .bi { color: var(--mm-cyan-dark); }
.rh-section-sub {
    margin: 4px 0 0;
    color: var(--rh-muted);
    font-size: 13.5px;
    max-width: 720px;
}

/* Responsivo */
@media (max-width: 992px) {
    .rh-settings__body { grid-template-columns: 1fr; }
    .rh-settings__nav { position: static; }
    .rh-settings__nav-toggle { display: inline-flex; }
    .rh-settings__nav-inner {
        display: none;
        margin-top: 8px;
    }
    .rh-settings__nav-inner.is-open { display: block; }
}

/* ============================================================
   Hub de Configurações (cards agrupados)
   ============================================================ */
.rh-hub-group { margin-bottom: 24px; }
.rh-hub-group__title {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .12em;
    color: #000;
    margin: 0 0 10px;
}
.rh-config-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 12px;
}
.rh-config-card {
    display: block;
    background: var(--rh-surface);
    border: 1px solid var(--rh-border);
    border-radius: 10px;
    padding: 14px 14px 12px;
    transition: box-shadow .2s, transform .2s, border-color .2s;
    text-decoration: none;
    color: inherit;
}
.rh-config-card:hover {
    border-color: var(--mm-cyan);
    box-shadow: 0 4px 16px rgba(1, 17, 38, .06);
    transform: translateY(-2px);
    color: inherit;
}
.rh-config-card__icon {
    width: 34px; height: 34px;
    border-radius: 8px;
    background: var(--mm-cyan-soft);
    color: var(--mm-cyan-dark);
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 16px;
    margin-bottom: 10px;
}
.rh-config-card__title {
    font-weight: 700;
    color: var(--mm-navy);
    margin: 0 0 3px;
    font-size: 14px;
}
.rh-config-card__desc {
    color: var(--rh-muted);
    font-size: 12px;
    margin: 0;
    line-height: 1.45;
}
.rh-config-card__count {
    margin-top: 10px;
    font-size: 10.5px;
    color: var(--rh-muted);
    text-transform: uppercase;
    letter-spacing: .05em;
    font-weight: 600;
}

/* ============================================================
   Modal Bootstrap - versão compacta global
   ============================================================ */
.modal-content {
    border-radius: var(--rh-radius);
    border: 1px solid var(--rh-border);
}
.modal-header {
    padding: 12px 18px;
    border-bottom: 1px solid var(--rh-border);
}
.modal-header .btn-close { padding: 8px; }
.modal-body   { padding: 16px 18px; }
.modal-footer {
    padding: 10px 18px;
    border-top: 1px solid var(--rh-border);
    gap: 8px;
}
.modal-title {
    color: var(--mm-navy);
    font-weight: 700;
    font-size: 15px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.modal-title .bi { font-size: 16px; }

/* Inputs e labels mais compactos dentro de modais */
.modal-body .rh-label {
    font-size: 11.5px;
    margin-bottom: 4px;
}
.modal-body .rh-input,
.modal-body .form-select,
.modal-body select.rh-input,
.modal-body textarea.rh-input {
    height: 36px;
    padding: 0 12px;
    font-size: 13.5px;
    border-radius: 7px;
}
.modal-body textarea.rh-input {
    height: auto;
    padding: 8px 12px;
    line-height: 1.45;
}
.modal-body small.rh-text-muted,
.modal-body small[class*="text-muted"] {
    font-size: 11px;
    line-height: 1.3;
    display: block;
    margin-top: 3px;
}
.modal-body .row.g-3 > * { padding-top: 6px; padding-bottom: 6px; }
.modal-body hr { margin: 10px 0; }

/* Separador "SENHA" / outras seções dentro do modal */
.modal-body .rh-modal-sep {
    margin: 8px 0 4px;
    padding-top: 8px;
    border-top: 1px solid var(--rh-border);
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--rh-muted);
}

/* Dialog médio mais usável em telas pequenas */
.modal-dialog.modal-lg { max-width: 720px; }
@media (max-height: 720px) {
    /* Modal comum: ancora no topo p/ não cortar em telas baixas. */
    .modal-dialog-centered:not(.modal-dialog-scrollable) { align-items: flex-start; margin-top: 24px; }
    /* Modal COM rolagem: mantém cabeçalho e RODAPÉ (botão Salvar) sempre visíveis,
       corpo rola por dentro. Sem esta altura o rodapé ficava cortado ("meio botão"). */
    .modal-dialog-scrollable { height: calc(100% - 24px); margin-top: 12px; margin-bottom: 12px; }
}
/* CORREÇÃO do rodapé cortado: nossos modais envolvem header/body/footer num <form>.
   Isso quebra o modal-dialog-scrollable do Bootstrap (que espera esses 3 como filhos
   diretos de .modal-content). Fazemos o <form> ser a COLUNA flex que rola: cabeçalho e
   rodapé fixos (flex-shrink:0), só o corpo rola. Vale p/ qualquer modal com rolagem. */
.modal-dialog-scrollable .modal-content { overflow: hidden; }
.modal-dialog-scrollable .modal-content > form {
    display: flex; flex-direction: column; min-height: 0; max-height: 100%; overflow: hidden;
}
.modal-dialog-scrollable .modal-content > form > .modal-body { overflow-y: auto; min-height: 0; }
.modal-header, .modal-footer { flex-shrink: 0; }

/* Botões dentro do footer um pouquinho menores */
.modal-footer .rh-btn { height: 38px; padding: 0 16px; font-size: 13.5px; }

/* ===== Ajuda contextual por aba (modal) ===== */
.rh-help-intro { font-size: 14px; color: var(--rh-text); margin: 0 0 14px; line-height: 1.5; }
.rh-help-list { margin: 0; }
.rh-help-list dt {
    font-weight: 700; font-size: 13.5px; color: var(--mm-navy);
    margin-top: 12px; display: flex; align-items: center; gap: 7px;
}
.rh-help-list dt::before {
    content: ''; flex: 0 0 7px; width: 7px; height: 7px; border-radius: 50%;
    background: var(--mm-cyan); display: inline-block;
}
.rh-help-list dt:first-child { margin-top: 0; }
.rh-help-list dd { margin: 3px 0 0 14px; font-size: 13px; color: var(--rh-muted); line-height: 1.55; }
.rh-help-list dd b, .rh-help-intro b { color: var(--rh-text); font-weight: 700; }
.rh-help-list dd code, .rh-help-intro code { background: #eef2f7; padding: 1px 5px; border-radius: 4px; font-size: 12px; color: var(--mm-navy); }
.rh-help-list dd br { line-height: 2; }
/* botão de ajuda por aba (cabeçalho do card) — herda .rh-btn--ghost, cor ciano p/ destaque */
.rh-btn.rh-help-tab { white-space: nowrap; }

/* Rede de segurança: em formulários CRUD longos (ex.: Requisitos), o corpo do modal
   rola e o rodapé (Cancelar/Salvar) fica SEMPRE visível na tela. */
.modal[id^="modal_p_"] .modal-body,
.modal[id^="modal_panel_"] .modal-body {
    max-height: calc(100vh - 210px);
    overflow-y: auto;
}

/* ============================================================
   Pricing Cards (módulo de Planos)
   ============================================================ */
.rh-plans-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 18px;
    margin-top: 8px;
}
.rh-plan-card {
    position: relative;
    background: var(--rh-surface);
    border: 1px solid var(--rh-border);
    border-radius: 14px;
    padding: 20px 20px 16px;
    box-shadow: var(--rh-shadow-sm);
    transition: box-shadow .2s, transform .2s, border-color .2s;
    display: flex; flex-direction: column;
    --plan-accent: var(--mm-cyan);
}
.rh-plan-card:hover { box-shadow: var(--rh-shadow); transform: translateY(-2px); }
.rh-plan-card.is-highlight {
    border-color: var(--plan-accent);
    box-shadow: 0 12px 28px rgba(10, 132, 224, .18);
}
.rh-plan-card.is-highlight::before {
    content: "";
    position: absolute; inset: 0;
    border-radius: 14px;
    pointer-events: none;
    box-shadow: 0 0 0 1px var(--plan-accent) inset;
}
.rh-plan-card__badge {
    position: absolute; top: -10px; right: 16px;
    background: var(--plan-accent); color: #fff;
    font-size: 11px; font-weight: 700; letter-spacing: .04em;
    padding: 4px 10px; border-radius: 999px;
    text-transform: uppercase;
    box-shadow: 0 4px 10px rgba(10, 132, 224, .35);
}
/* Card de CONSULTORIA: borda destacada (roxo), distinta do "Recomendado" */
.rh-plan-card.is-consultoria {
    border-color: var(--plan-accent);
    border-width: 2px;
    box-shadow: 0 14px 30px rgba(124, 58, 237, .20);
}
.rh-plan-card.is-consultoria::before {
    content: "";
    position: absolute; inset: 0;
    border-radius: 14px;
    pointer-events: none;
    box-shadow: 0 0 0 1px var(--plan-accent) inset;
}
.rh-plan-card__badge--consultoria {
    box-shadow: 0 4px 10px rgba(124, 58, 237, .35);
}
.rh-plan-card__head { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; }
.rh-plan-card__dot {
    width: 12px; height: 12px; border-radius: 4px;
    background: var(--plan-accent);
}
.rh-plan-card__name { margin: 0; font-size: 16px; font-weight: 700; color: var(--mm-navy); }
.rh-plan-card__desc { margin: 0 0 14px; color: var(--rh-muted); font-size: 13px; min-height: 36px; }
.rh-plan-card__price { display: flex; align-items: flex-end; gap: 4px; margin-bottom: 12px; }
.rh-plan-card__price-currency { font-size: 14px; color: var(--rh-muted); font-weight: 600; padding-bottom: 6px; }
.rh-plan-card__price-big { font-size: 28px; font-weight: 800; color: var(--mm-navy); line-height: 1; letter-spacing: -.02em; }
.rh-plan-card__price-period { font-size: 12px; color: var(--rh-muted); padding-bottom: 6px; }
.rh-plan-card__features {
    list-style: none; padding: 0; margin: 0 0 14px;
    border-top: 1px dashed var(--rh-border);
    padding-top: 12px;
    display: flex; flex-direction: column; gap: 6px;
}
.rh-plan-card__features li {
    display: flex; align-items: center; gap: 8px;
    font-size: 13px; color: #334155;
}
.rh-plan-card__features li .bi { color: var(--plan-accent); }
.rh-plan-card__features li strong { color: var(--mm-navy); font-weight: 700; }

.rh-plan-card__feats { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.rh-feat {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 3px 8px;
    border: 1px solid var(--rh-border);
    border-radius: 999px;
    font-size: 11.5px;
    color: #94a3b8;
    background: #fff;
}
.rh-feat.is-on { color: var(--mm-cyan-dark); border-color: #b9eaf3; background: var(--mm-cyan-soft); font-weight: 600; }
.rh-plan-card__actions { display: flex; gap: 8px; margin-top: auto; }
.rh-plan-card__actions .rh-btn { flex: 1; }
.rh-plan-card__cta {
    width: 100%;
    margin-top: 8px;
    justify-content: center;
    background: var(--mm-navy);
    color: #fff;
    font-weight: 600;
}
.rh-plan-card__cta:hover { background: var(--mm-navy-2); color: #fff; }
.rh-plan-card__cta:focus { outline: none; box-shadow: 0 0 0 3px rgba(6, 40, 66, .30); }

/* Mini tabs (visualizações: cards / tabela) */
.rh-tabs-mini {
    display: inline-flex;
    background: #fff;
    border: 1px solid var(--rh-border);
    border-radius: 8px;
    padding: 3px;
    gap: 2px;
}
.rh-tabs-mini a {
    padding: 6px 12px;
    font-size: 12.5px;
    color: var(--rh-muted);
    border-radius: 6px;
    text-decoration: none;
    display: inline-flex; align-items: center; gap: 6px;
    transition: background .15s, color .15s;
}
.rh-tabs-mini a:hover { color: var(--mm-navy); }
.rh-tabs-mini a.is-active { background: var(--mm-cyan-soft); color: var(--mm-cyan-dark); font-weight: 600; }

/* ============================================================
   Form de Assinatura: campos com indicador "personalizado"
   ============================================================ */
.rh-field { position: relative; }
.rh-field__input {
    display: flex; align-items: stretch;
    border: 1px solid var(--rh-border);
    border-radius: 8px;
    background: #fff;
    transition: border-color .15s, box-shadow .15s;
}
.rh-field__input:focus-within {
    border-color: var(--mm-cyan);
    box-shadow: 0 0 0 3px rgba(10,132,224,.18);
}
.rh-field__input .rh-input {
    border: 0;
    box-shadow: none;
    border-radius: 0 8px 8px 0;
    width: 100%;
    background: transparent;
}
.rh-field__input .rh-input:focus { box-shadow: none; }
.rh-field__prefix {
    display: inline-flex; align-items: center;
    padding: 0 10px;
    color: var(--rh-muted);
    font-size: 12.5px;
    background: #f8fafc;
    border-right: 1px solid var(--rh-border);
    border-radius: 8px 0 0 8px;
}
.rh-field [data-default-hint] {
    margin-top: 3px;
    display: block;
    font-size: 11px;
    color: var(--rh-muted);
}
.rh-field__pill {
    display: none;
    position: absolute; top: 6px; right: 8px;
    background: #f59e0b;
    color: #fff;
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    padding: 2px 7px;
    border-radius: 999px;
    pointer-events: none;
}
.rh-field.is-customized .rh-field__pill { display: inline-flex; }
.rh-field.is-customized .rh-field__input {
    border-color: #f59e0b;
    box-shadow: 0 0 0 3px rgba(245,158,11,.12);
}

/* ============================================================
   Clientes - listagem em cards + hero do detalhe
   ============================================================ */
.rh-client-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 16px;
}
.rh-client-card {
    background: var(--rh-surface);
    border: 1px solid var(--rh-border);
    border-radius: 12px;
    overflow: hidden;
    box-shadow: var(--rh-shadow-sm);
    display: flex; flex-direction: column;
    transition: box-shadow .2s, transform .2s, border-color .2s;
}
.rh-client-card:hover { box-shadow: var(--rh-shadow); transform: translateY(-2px); }
.rh-client-card__head {
    padding: 16px 16px 14px;
    display: flex; justify-content: space-between; align-items: center;
    min-height: 92px;
}
.rh-client-card__logo {
    width: 56px; height: 56px;
    border-radius: 12px;
    object-fit: cover;
    background: rgba(255,255,255,.92);
    padding: 6px;
    box-shadow: 0 4px 10px rgba(0,0,0,.18);
}
.rh-client-card__logo--placeholder {
    color: #fff;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 24px;
    background: rgba(255,255,255,.18);
}
.rh-client-card__body { padding: 14px 16px 8px; }
.rh-client-card__name { margin: 0 0 2px; font-size: 15px; font-weight: 700; color: var(--mm-navy); }
.rh-client-card__cnpj { font-size: 12.5px; color: var(--rh-muted); margin-bottom: 10px; }
.rh-client-card__plan {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 4px 10px; border-radius: 999px;
    background: var(--mm-cyan-soft); color: var(--mm-cyan-dark);
    font-size: 12px; font-weight: 600;
}
.rh-client-card__stats {
    margin-top: 12px;
    display: flex; gap: 12px;
    color: var(--rh-muted);
    font-size: 12.5px;
}
.rh-client-card__stats .bi { color: var(--mm-navy); margin-right: 3px; }
.rh-client-card__foot {
    padding: 12px 14px;
    border-top: 1px solid var(--rh-border);
    display: flex; gap: 8px;
    background: #fafbfc;
}
.rh-client-card__foot .rh-btn { flex: 1; height: 36px; padding: 0 10px; font-size: 12.5px; }

/* Hero da página de detalhe do cliente */
.rh-client-hero {
    color: #fff;
    border-radius: 14px;
    padding: 24px;
    display: flex; align-items: center; gap: 18px;
    box-shadow: 0 10px 30px rgba(1, 17, 38, .12);
    flex-wrap: wrap;
}
.rh-client-hero__logo {
    width: 72px; height: 72px;
    border-radius: 14px;
    background: rgba(255,255,255,.94);
    padding: 8px;
    object-fit: contain;
}
.rh-client-hero__logo--placeholder {
    background: rgba(255,255,255,.18);
    color: #fff;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 32px;
}
.rh-client-hero__info { flex: 1 1 280px; }
.rh-client-hero__info h1 { margin: 0; font-size: 24px; font-weight: 700; }
.rh-client-hero__meta {
    margin-top: 6px; display: flex; gap: 18px; flex-wrap: wrap;
    color: rgba(255,255,255,.85); font-size: 13px;
}
.rh-client-hero__meta .bi { margin-right: 4px; opacity: .85; }
.rh-client-hero__meta .bi-circle-fill { font-size: 8px; }

/* dl bonito para visualizações */
.rh-dl {
    display: grid;
    grid-template-columns: 140px 1fr;
    gap: 6px 14px;
    margin: 0;
    font-size: 13.5px;
}
.rh-dl dt { color: var(--rh-muted); font-weight: 600; font-size: 12px; padding-top: 1px; }
.rh-dl dd { margin: 0; color: var(--mm-navy); }

.rh-swatch {
    display: inline-block;
    width: 16px; height: 16px;
    border-radius: 4px;
    border: 1px solid var(--rh-border);
    vertical-align: middle;
    margin-right: 4px;
}

/* Estado vazio */
.rh-empty-state {
    text-align: center;
    background: var(--rh-surface);
    border: 1px dashed var(--rh-border);
    border-radius: var(--rh-radius);
    padding: 56px 24px;
    color: var(--rh-muted);
}
.rh-empty-state i { font-size: 40px; color: var(--mm-cyan-dark); }
.rh-empty-state h3 { margin: 12px 0 6px; color: var(--mm-navy); font-size: 18px; }

/* ============================================================
   Wizard de cadastro
   ============================================================ */
.rh-stepper {
    list-style: none;
    counter-reset: step;
    display: flex; gap: 12px;
    padding: 0; margin: 0 0 18px;
    align-items: center;
    flex-wrap: wrap;
}
.rh-stepper li {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 8px 14px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid var(--rh-border);
    font-size: 13px;
    color: var(--rh-muted);
    font-weight: 600;
}
.rh-stepper li span {
    width: 22px; height: 22px;
    border-radius: 50%;
    background: var(--rh-bg);
    color: var(--rh-muted);
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 12px;
    font-weight: 700;
}
.rh-stepper li.is-active {
    border-color: var(--mm-cyan);
    background: var(--mm-cyan-soft);
    color: var(--mm-cyan-dark);
}
.rh-stepper li.is-active span { background: var(--mm-cyan); color: #fff; }
.rh-stepper li.is-done {
    border-color: #bbf7d0; background: #f0fdf4; color: #166534;
}
.rh-stepper li.is-done span { background: #16a34a; color: #fff; }

.rh-wizard__nav {
    display: flex; align-items: center;
    margin-top: 18px;
    padding-top: 14px;
    border-top: 1px solid var(--rh-border);
}

/* ============================================================
   Variações compactas (wizard e cards)
   ============================================================ */
.rh-page-header--compact { margin-bottom: 14px; }
.rh-page-title--sm { font-size: 19px; }

.rh-wizard--compact { max-width: 980px; margin: 0 auto; }

.rh-stepper--compact { gap: 6px; margin-bottom: 14px; }
.rh-stepper--compact li {
    padding: 5px 10px;
    font-size: 12px;
    gap: 6px;
}
.rh-stepper--compact li span {
    width: 18px; height: 18px;
    font-size: 11px;
}

.rh-card--compact .rh-card__body { padding: 14px 16px; }
.rh-card--narrow { max-width: 720px; margin: 0 auto; }

.rh-step__title {
    font-size: 14px;
    font-weight: 700;
    color: var(--mm-navy);
    margin: 0 0 12px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--rh-border);
    display: flex; align-items: center; gap: 6px;
}
.rh-step__title .bi { color: var(--mm-cyan-dark); font-size: 16px; }

/* Inputs do wizard compactos */
.rh-wizard--compact .rh-label  { font-size: 11.5px; margin-bottom: 3px; }
.rh-wizard--compact .rh-input  { height: 36px; font-size: 13.5px; padding: 0 12px; border-radius: 7px; }
.rh-wizard--compact select.rh-input { height: 36px; }
.rh-wizard--compact .rh-color-input input[type="color"] { width: 36px; height: 36px; }
.rh-wizard--compact .rh-modal-sep { margin: 6px 0 2px; padding-top: 8px; }
.rh-wizard--compact small.rh-text-muted { font-size: 10.5px; }

/* Features grid (etapa Plano do wizard) */
.rh-features-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 14px;
    margin-top: 8px;
}
.rh-features-group {
    background: #fafbfc;
    border: 1px solid var(--rh-border);
    border-radius: 10px;
    padding: 10px 12px;
}
.rh-features-group__title {
    font-size: 10.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--rh-muted);
    margin-bottom: 8px;
}
.rh-feature-toggle {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 8px 8px;
    border-radius: 7px;
    cursor: pointer;
    transition: background .15s;
    user-select: none;
    position: relative;
}
.rh-feature-toggle:hover { background: rgba(10, 132, 224, .06); }
.rh-feature-toggle input { margin: 3px 0 0; }
.rh-feature-toggle__icon {
    width: 28px; height: 28px;
    border-radius: 6px;
    background: #fff;
    border: 1px solid var(--rh-border);
    display: inline-flex; align-items: center; justify-content: center;
    color: var(--rh-muted);
    font-size: 14px;
    flex-shrink: 0;
}
.rh-feature-toggle:has(input:checked) {
    background: var(--mm-cyan-soft);
}
.rh-feature-toggle:has(input:checked) .rh-feature-toggle__icon {
    border-color: var(--mm-cyan);
    color: var(--mm-cyan-dark);
    background: #fff;
}
.rh-feature-toggle__text {
    display: flex; flex-direction: column; gap: 2px;
    font-size: 13px;
    color: var(--mm-navy);
    line-height: 1.35;
}
.rh-feature-toggle__text strong { font-weight: 600; }
.rh-feature-toggle__text small { color: var(--rh-muted); font-size: 11.5px; }

/* Cards de plano compactos */
.rh-plans-grid--compact { gap: 10px; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); }
.rh-plan-card--compact { padding: 14px 14px 12px; border-radius: 10px; }
.rh-plan-card--compact .rh-plan-card__desc { font-size: 12px; min-height: 28px; margin-bottom: 8px; }
.rh-plan-card--compact .rh-plan-card__name { font-size: 14.5px; }
.rh-plan-card--compact .rh-plan-card__price { margin-bottom: 8px; }
.rh-plan-card--compact .rh-plan-card__price-big { font-size: 22px; }
.rh-plan-card--compact .rh-plan-card__features { padding-top: 8px; gap: 4px; font-size: 12px; margin-bottom: 0; }
.rh-plan-card--compact .rh-plan-card__features li .bi { font-size: 13px; }

/* Color picker compacto */
.rh-color-input { display: flex; align-items: center; gap: 6px; }
.rh-color-input input[type="color"] {
    width: 38px; height: 38px;
    border: 1px solid var(--rh-border);
    border-radius: 6px;
    padding: 2px;
    cursor: pointer;
    background: #fff;
}
.rh-color-input .rh-input { flex: 1; font-family: ui-monospace, Menlo, monospace; }

/* Card de plano em modo seleção (radio) */
.rh-plan-card--pick { cursor: pointer; }
.rh-plan-card--pick input[type="radio"] { display: none; }
.rh-plan-card--pick.is-picked,
.rh-plan-card--pick:has(input:checked) {
    border-color: var(--plan-accent);
    box-shadow: 0 0 0 3px rgba(10, 132, 224, .18);
}

/* Preview do painel do cliente (mini-frame) */
.rh-preview {
    --p-primary:   #0A84E0;
    --p-secondary: #0A2A6B;
    --p-accent:    #F5920C;
    display: grid;
    grid-template-columns: 110px 1fr;
    background: #fff;
    border: 1px solid var(--rh-border);
    border-radius: 10px;
    overflow: hidden;
    height: 340px;
    box-shadow: var(--rh-shadow-sm);
}
.rh-preview__sidebar {
    background: var(--p-secondary);
    color: rgba(255,255,255,.85);
    display: flex; flex-direction: column;
}
.rh-preview__brand {
    padding: 12px 10px;
    border-bottom: 1px solid rgba(255,255,255,.08);
    display: flex; flex-direction: column; gap: 6px; align-items: center;
}
.rh-preview__brand img {
    max-width: 72px; max-height: 36px;
    background: rgba(255,255,255,.95);
    border-radius: 6px;
    padding: 4px;
    display: block;
    object-fit: contain;
}
.rh-preview__brand img:not([src]) { display: none; }
.rh-preview__brand span { font-size: 11.5px; font-weight: 600; color: #fff; text-align: center; }
.rh-preview__nav { list-style: none; padding: 8px 6px; margin: 0; display: flex; flex-direction: column; gap: 2px; }
.rh-preview__nav li {
    display: flex; align-items: center; gap: 8px;
    padding: 6px 10px;
    border-radius: 6px;
    font-size: 11.5px;
}
.rh-preview__nav li.is-active {
    background: rgba(10, 132, 224, .18);
    color: #fff;
    box-shadow: inset 3px 0 0 var(--p-primary);
}
.rh-preview__nav .bi { font-size: 13px; }

.rh-preview__main { display: flex; flex-direction: column; }
.rh-preview__header {
    background: #fff;
    border-bottom: 1px solid var(--rh-border);
    padding: 10px 14px;
}
.rh-preview__tagline { font-size: 12px; color: var(--p-secondary); font-weight: 600; }
.rh-preview__body { padding: 14px; flex: 1; background: #f7f8fb; }
.rh-preview__body h3 { font-size: 16px; color: var(--p-secondary); margin: 0 0 12px; }
.rh-preview__cta {
    background: var(--p-primary);
    color: #fff;
    border: 0;
    padding: 8px 14px;
    border-radius: 6px;
    font-size: 12.5px;
    font-weight: 600;
}

/* ============================================================
   WhatsApp - dashboard, KPI cards, tabela, QR pane
   ============================================================ */
.rh-wa-kpis {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 14px;
    margin-top: 4px;
}
.rh-wa-kpi {
    position: relative;
    background: var(--mm-navy);
    color: #fff;
    border-radius: 12px;
    padding: 16px 18px 12px;
    box-shadow: 0 6px 16px rgba(1, 17, 38, .12);
    overflow: hidden;
    display: flex; flex-direction: column;
    min-height: 110px;
}
.rh-wa-kpi__head { display: flex; flex-direction: column; gap: 2px; }
.rh-wa-kpi__title {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .06em;
    font-weight: 600;
    opacity: .9;
}
.rh-wa-kpi__value {
    font-size: 28px;
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -.02em;
    margin-top: 2px;
}
.rh-wa-kpi__icon {
    position: absolute;
    right: 10px; top: 8px;
    font-size: 64px;
    opacity: .14;
    pointer-events: none;
}
.rh-wa-kpi__link {
    margin-top: auto;
    align-self: flex-end;
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
    opacity: .9;
    display: inline-flex; align-items: center; gap: 4px;
}
.rh-wa-kpi__link:hover { color: #fff; opacity: 1; }
.rh-wa-kpi__link .bi { font-size: 14px; }

.rh-wa-kpi--total { background: linear-gradient(135deg, #16a34a 0%, #15803d 100%); }
.rh-wa-kpi--ok    { background: linear-gradient(135deg, #2563eb 0%, #1e40af 100%); }
.rh-wa-kpi--info  { background: linear-gradient(135deg, #6366f1 0%, #4338ca 100%); }
.rh-wa-kpi--warn  { background: linear-gradient(135deg, #f59e0b 0%, #b45309 100%); }

.rh-wa-table tbody td { vertical-align: middle; }
.rh-wa-avatar {
    width: 42px; height: 42px;
    border-radius: 50%;
    object-fit: cover;
    background: #f1f5f9;
    border: 1px solid var(--rh-border);
}
.rh-wa-avatar--placeholder {
    display: inline-flex; align-items: center; justify-content: center;
    color: var(--rh-muted);
    font-size: 18px;
}
.rh-wa-avatar--lg { width: 96px; height: 96px; font-size: 36px; }

/* Linha do canal padrão */
.rh-wa-row--default {
    background: linear-gradient(90deg, rgba(10, 132, 224, .06), transparent 80%);
}
.rh-wa-row--default td:first-child {
    box-shadow: inset 3px 0 0 var(--mm-cyan);
}

/* Estrela "padrão" */
.rh-wa-default-badge {
    display: inline-flex; align-items: center; justify-content: center;
    width: 30px; height: 30px;
    border-radius: 50%;
    background: linear-gradient(135deg, #fbbf24, #f59e0b);
    color: #fff;
    box-shadow: 0 4px 10px rgba(245, 158, 11, .35);
    font-size: 13px;
}
.rh-wa-default-btn {
    background: #fff;
    border: 1px solid var(--rh-border);
    color: var(--rh-muted);
    border-radius: 6px;
    padding: 5px 10px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: background .15s, color .15s, border-color .15s;
    display: inline-flex; align-items: center; gap: 5px;
}
.rh-wa-default-btn:hover:not([disabled]) {
    background: #fff7ed;
    color: #b45309;
    border-color: #fed7aa;
}
.rh-wa-default-btn[disabled] {
    opacity: .45;
    cursor: not-allowed;
}

/* Aviso amarelo do form Conectar Canal */
.rh-wa-warn {
    background: #fff8e1;
    border: 1px solid #fde68a;
    border-radius: 10px;
    padding: 12px 14px;
    margin-top: 14px;
    color: #92400e;
    font-size: 13px;
}
.rh-wa-warn__title {
    font-weight: 700;
    margin-bottom: 4px;
    display: flex; align-items: center; gap: 6px;
    color: #b45309;
}
.rh-wa-warn ul { margin: 0; padding-left: 18px; }
.rh-wa-warn li { margin-top: 2px; }

/* Tela do QR Code */
.rh-wa-qr-wrap {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    align-items: center;
    padding: 12px 8px;
    min-height: 320px;
}
@media (max-width: 768px) { .rh-wa-qr-wrap { grid-template-columns: 1fr; } }

.rh-wa-qr { text-align: center; }
.rh-wa-qr__frame {
    display: inline-block;
    padding: 14px;
    background: #fff;
    border: 1px solid var(--rh-border);
    border-radius: 14px;
    box-shadow: 0 8px 24px rgba(1, 17, 38, .08);
}
.rh-wa-qr__frame img { display: block; width: 280px; height: 280px; }
.rh-wa-qr__caption { color: var(--rh-muted); font-size: 13px; margin-top: 10px; }

.rh-wa-qr-info h3 {
    font-size: 16px;
    color: var(--mm-navy);
    margin: 0 0 12px;
    font-weight: 700;
    display: flex; align-items: center; gap: 6px;
}
.rh-wa-qr-info ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.rh-wa-qr-info ul li { color: #334155; font-size: 13.5px; display: flex; align-items: center; gap: 8px; }
.rh-wa-qr-info ul .bi { color: var(--mm-cyan-dark); }
.rh-wa-qr-pairing {
    margin-top: 14px;
    padding: 8px 12px;
    background: var(--mm-cyan-soft);
    border: 1px dashed var(--mm-cyan);
    border-radius: 8px;
    color: var(--mm-cyan-dark);
    font-size: 13px;
    display: flex; align-items: center; justify-content: space-between;
}
.rh-wa-qr-pairing strong { font-family: ui-monospace, Menlo, monospace; }
.rh-wa-qr-status {
    margin-top: 16px;
    padding: 10px 12px;
    background: #f8fafc;
    border: 1px solid var(--rh-border);
    border-radius: 8px;
    color: var(--rh-muted);
    font-size: 13px;
    display: flex; align-items: center; gap: 8px;
}
.rh-wa-qr-status.is-ok { background: #f0fdf4; border-color: #bbf7d0; color: #166534; }

/* Loader / spinner */
.rh-wa-loader {
    grid-column: 1 / -1;
    text-align: center;
    padding: 56px 24px;
    color: var(--mm-navy);
}
.rh-wa-loader strong { display: block; font-size: 16px; font-weight: 700; }
.rh-wa-loader span { color: var(--rh-muted); font-size: 13px; }
.rh-wa-loader__bar {
    width: 60%;
    max-width: 320px;
    height: 4px;
    margin: 0 auto 14px;
    background: linear-gradient(90deg, transparent, var(--mm-cyan), transparent);
    background-size: 200% 100%;
    animation: rhWaLoading 1.4s linear infinite;
    border-radius: 2px;
}
@keyframes rhWaLoading {
    0%   { background-position: -100% 0; }
    100% { background-position:  100% 0; }
}
.rh-wa-spinner {
    width: 14px; height: 14px;
    border: 2px solid var(--rh-border);
    border-top-color: var(--mm-cyan);
    border-radius: 50%;
    display: inline-block;
    animation: rhSpin .8s linear infinite;
}
@keyframes rhSpin { to { transform: rotate(360deg); } }

/* ============================================================
   Chat estilo WhatsApp Web (Histórico de mensagens)
   ============================================================ */
.rh-chat {
    display: grid;
    grid-template-columns: 320px 1fr;
    background: var(--rh-surface);
    border: 1px solid var(--rh-border);
    border-radius: 12px;
    overflow: hidden;
    height: calc(100vh - 220px);
    min-height: 540px;
    box-shadow: var(--rh-shadow-sm);
}
@media (max-width: 768px) {
    .rh-chat { grid-template-columns: 1fr; height: auto; }
}

/* Sidebar (lista de conversas) */
.rh-chat__sidebar {
    border-right: 1px solid var(--rh-border);
    background: #fafbfc;
    display: flex; flex-direction: column;
    min-width: 0;
}
.rh-chat__sidebar-header {
    padding: 10px 14px;
    background: var(--mm-navy);
    color: #fff;
    display: flex; align-items: center; gap: 10px;
}
.rh-chat__sidebar-header input {
    flex: 1;
    border: 0;
    background: rgba(255,255,255,.15);
    color: #fff;
    padding: 6px 10px;
    border-radius: 6px;
    font-size: 13px;
}
.rh-chat__sidebar-header input::placeholder { color: rgba(255,255,255,.6); }
.rh-chat__sidebar-header input:focus { outline: none; background: rgba(255,255,255,.22); }

.rh-chat__list { overflow-y: auto; flex: 1; }
.rh-chat__item {
    display: flex; gap: 10px;
    padding: 12px 14px;
    border-bottom: 1px solid var(--rh-border);
    text-decoration: none;
    color: inherit;
    transition: background .15s;
}
.rh-chat__item:hover { background: rgba(10, 132, 224, .04); }
.rh-chat__item.is-active { background: var(--mm-cyan-soft); border-left: 3px solid var(--mm-cyan); padding-left: 11px; }

.rh-chat__avatar {
    width: 40px; height: 40px;
    border-radius: 50%;
    background: linear-gradient(135deg, #cbd5e1, #94a3b8);
    color: #fff;
    display: inline-flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    font-size: 18px;
}
.rh-chat__avatar--lg { width: 44px; height: 44px; font-size: 22px; }

.rh-chat__item-body { flex: 1; min-width: 0; }
.rh-chat__item-head {
    display: flex; justify-content: space-between; align-items: baseline;
    gap: 6px;
}
.rh-chat__item-head strong {
    color: var(--mm-navy);
    font-size: 13.5px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}
.rh-chat__time {
    font-size: 11px;
    color: var(--rh-muted);
    flex-shrink: 0;
}
.rh-chat__item-meta {
    display: flex; align-items: center; gap: 6px;
    margin-top: 2px;
}
.rh-chat__preview {
    color: var(--rh-muted);
    font-size: 12.5px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex: 1; min-width: 0;
}
.rh-chat__badge {
    background: #25D366;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    padding: 1px 7px;
    border-radius: 999px;
    min-width: 20px;
    text-align: center;
}

/* Conversa */
.rh-chat__main {
    display: flex; flex-direction: column;
    min-width: 0;
    background: #efeae2;
    background-image:
        linear-gradient(rgba(239, 234, 226, .85), rgba(239, 234, 226, .85)),
        url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30'><circle cx='2' cy='2' r='1' fill='%23d4cdbf'/></svg>");
}

.rh-chat__placeholder {
    margin: auto;
    text-align: center;
    color: var(--rh-muted);
    padding: 40px;
}
.rh-chat__placeholder i { font-size: 64px; color: #94a3b8; }
.rh-chat__placeholder h3 { color: var(--mm-navy); margin: 12px 0 4px; font-size: 18px; }
.rh-chat__placeholder p { margin: 0; font-size: 13.5px; }

.rh-chat__header {
    display: flex; align-items: center; gap: 12px;
    padding: 10px 16px;
    background: #f0f2f5;
    border-bottom: 1px solid var(--rh-border);
}

.rh-chat__messages {
    flex: 1;
    overflow-y: auto;
    padding: 16px 16px;
    display: flex; flex-direction: column; gap: 4px;
}

.rh-chat__date {
    text-align: center;
    margin: 8px 0;
}
.rh-chat__date span {
    display: inline-block;
    background: rgba(255,255,255,.85);
    color: #475569;
    padding: 3px 10px;
    border-radius: 6px;
    font-size: 11.5px;
    font-weight: 600;
    box-shadow: 0 1px 1px rgba(0,0,0,.06);
}

.rh-bubble {
    max-width: 65%;
    padding: 6px 10px 5px;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 1px 1px rgba(0,0,0,.08);
    font-size: 13.5px;
    color: #111b21;
    position: relative;
}
.rh-bubble--me {
    align-self: flex-end;
    background: #d9fdd3;
    border-bottom-right-radius: 2px;
}
.rh-bubble--them {
    align-self: flex-start;
    background: #fff;
    border-bottom-left-radius: 2px;
}
.rh-bubble__text { white-space: pre-wrap; word-break: break-word; }
.rh-bubble__media { margin-bottom: 4px; }
.rh-bubble__media img,
.rh-bubble__media video {
    max-width: 100%;
    border-radius: 6px;
    display: block;
}
.rh-bubble__media audio { width: 100%; }
.rh-bubble__meta {
    text-align: right;
    font-size: 10.5px;
    color: #667781;
    margin-top: 2px;
    display: flex; justify-content: flex-end; align-items: center; gap: 4px;
}

.rh-chat__composer {
    display: flex; gap: 8px;
    padding: 10px 12px;
    background: #f0f2f5;
    border-top: 1px solid var(--rh-border);
}
.rh-chat__composer input[type="text"] {
    flex: 1;
    border: 1px solid var(--rh-border);
    border-radius: 8px;
    padding: 10px 14px;
    font-size: 14px;
    background: #fff;
}
.rh-chat__composer input[type="text"]:focus {
    outline: none;
    border-color: var(--mm-cyan);
    box-shadow: 0 0 0 3px rgba(10,132,224,.15);
}
.rh-chat__composer button { padding: 0 14px; height: 42px; }

.rh-chat__empty {
    text-align: center;
    padding: 40px 16px;
    color: var(--rh-muted);
}
.rh-chat__empty i { color: #94a3b8; }
.rh-chat__empty p { margin: 8px 0 0; font-size: 13.5px; color: var(--mm-navy); }
.rh-chat__empty small { font-size: 11.5px; }

/* Utilitários */
.rh-text-muted { color: var(--rh-muted); }
.rh-divider { height: 1px; background: var(--rh-border); margin: 12px 0; }

/* ============================================================
   Linhas repetíveis (sócios / CNAEs) e barra de busca de CNPJ/CEP
   ============================================================ */
.rh-repeat-row {
    border: 1px solid var(--rh-border);
    border-radius: var(--rh-radius-sm);
    padding: 12px;
    margin-bottom: 10px;
    background: #fff;
}
.rh-repeat-empty {
    border: 1px dashed var(--rh-border-strong);
    border-radius: var(--rh-radius-sm);
    padding: 14px;
    color: var(--rh-muted);
    font-size: 13px;
    text-align: center;
    margin-bottom: 10px;
}
.rh-lookup-msg { font-size: 12.5px; min-height: 16px; }
.rh-input-with-btn { display: flex; gap: 8px; }
.rh-input-with-btn .rh-input { flex: 1; }

/* badge de alerta (amarelo) para status "Em atraso/Suspensa" */
.rh-badge--warn { background:#fef3c7; color:#92400e; }

/* ============================================================
   Padrão de botões de ação (CRUD) — cores e tamanho consistentes
   ============================================================ */
.rh-btn--create, .rh-btn--edit, .rh-btn--view, .rh-btn--delete, .rh-btn--back { min-height:38px; }
.rh-btn--create { background:#16a34a; color:#fff; border-color:#16a34a; }
.rh-btn--create:hover { background:#15803d; color:#fff; }
.rh-btn--edit   { background:#2563eb; color:#fff; border-color:#2563eb; }
.rh-btn--edit:hover   { background:#1d4ed8; color:#fff; }
.rh-btn--view   { background:#0891b2; color:#fff; border-color:#0891b2; }
.rh-btn--view:hover   { background:#0e7490; color:#fff; }
.rh-btn--delete { background:#dc2626; color:#fff; border-color:#dc2626; }
.rh-btn--delete:hover { background:#b91c1c; color:#fff; }
.rh-btn--back   { background:#fff; color:var(--rh-text); border:1px solid var(--rh-border-strong); }
.rh-btn--back:hover   { background:#f1f5f9; color:var(--rh-text); }
.rh-btn--cancel { min-height:38px; background:#6b7280; color:#fff; border-color:#6b7280; }
.rh-btn--cancel:hover { background:#4b5563; color:#fff; border-color:#4b5563; }
.rh-btn--cancel i { color:#fff; }

/* botão-ícone quadrado para ações em tabela */
.rh-iconbtn { display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px;
    border-radius:8px; border:1px solid var(--rh-border); background:#fff; color:var(--rh-text);
    transition:all .15s; cursor:pointer; }
.rh-iconbtn:hover { transform:translateY(-1px); box-shadow:var(--rh-shadow-sm); }
.rh-iconbtn--view   { color:#0891b2; border-color:#bae6fd; } .rh-iconbtn--view:hover   { background:#0891b2; color:#fff; }
.rh-iconbtn--edit   { color:#2563eb; border-color:#bfdbfe; } .rh-iconbtn--edit:hover   { background:#2563eb; color:#fff; }
.rh-iconbtn--delete { color:#dc2626; border-color:#fecaca; } .rh-iconbtn--delete:hover { background:#dc2626; color:#fff; }

/* ============================================================
   Dashboard — cartões de estatística (faturamento por status)
   ============================================================ */
.rh-stat { background:var(--rh-surface); border:1px solid var(--rh-border); border-radius:var(--rh-radius);
    padding:16px 18px; box-shadow:var(--rh-shadow-sm); display:flex; flex-direction:column; gap:6px;
    border-left:4px solid var(--rh-primary); transition:transform .15s, box-shadow .15s; }
.rh-stat:hover { transform:translateY(-2px); box-shadow:var(--rh-shadow); }
.rh-stat__top { display:flex; align-items:center; justify-content:space-between; }
.rh-stat__label { font-size:12px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--rh-muted); }
.rh-stat__icon { width:34px; height:34px; border-radius:9px; display:inline-flex; align-items:center; justify-content:center;
    background:var(--rh-primary-soft); color:var(--rh-primary); font-size:17px; }
.rh-stat__value { font-size:22px; font-weight:800; color:var(--rh-text); line-height:1.1; }
.rh-stat__hint { font-size:12px; color:var(--rh-muted); }
.rh-stat--ok     { border-left-color:#16a34a; } .rh-stat--ok .rh-stat__icon     { background:#dcfce7; color:#16a34a; }
.rh-stat--warn   { border-left-color:#d97706; } .rh-stat--warn .rh-stat__icon   { background:#fef3c7; color:#b45309; }
.rh-stat--danger { border-left-color:#dc2626; } .rh-stat--danger .rh-stat__icon { background:#fee2e2; color:#dc2626; }
.rh-stat--info   { border-left-color:#0891b2; } .rh-stat--info .rh-stat__icon   { background:#cffafe; color:#0891b2; }
.rh-stat--muted  { border-left-color:#94a3b8; } .rh-stat--muted .rh-stat__icon  { background:#f1f5f9; color:#64748b; }
.rh-stat--money  { border-left-color:#7c3aed; } .rh-stat--money .rh-stat__icon  { background:#ede9fe; color:#7c3aed; }

/* ============================================================
   Portal do Candidato — telas de autenticação (responsivo)
   ============================================================ */

.cand-auth {
    min-height: 100vh;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    padding: 32px 16px;
    background:
        radial-gradient(900px 480px at 12% 0%, rgba(10,132,224,.12), transparent 60%),
        radial-gradient(700px 420px at 100% 100%, rgba(1,102,135,.12), transparent 55%),
        var(--rh-bg);
}
.cand-auth__card {
    width: 100%; max-width: 460px;
    background: #fff;
    border: 1px solid var(--rh-border);
    border-radius: 16px;
    box-shadow: 0 12px 40px rgba(1,17,38,.08);
    padding: 32px 28px;
}
.cand-auth__card--wide { max-width: 540px; }
.cand-auth__logo { text-align: center; margin-bottom: 18px; }
.cand-auth__logo img { max-width: 170px; height: auto; }
.cand-auth__title { font-size: 22px; font-weight: 700; color: var(--mm-navy); margin: 0 0 6px; text-align: center; }
.cand-auth__sub { font-size: 13.5px; color: var(--rh-muted); text-align: center; margin: 0 0 22px; line-height: 1.5; }
.cand-auth__foot { margin-top: 18px; text-align: center; font-size: 13px; color: var(--rh-muted); }
.cand-auth__foot a { color: var(--mm-cyan-dark); font-weight: 600; text-decoration: none; }
.cand-auth__foot a:hover { text-decoration: underline; }
.cand-auth__back { margin-top: 22px; text-align: center; font-size: 12px; }
.cand-auth__back a { color: var(--rh-muted); text-decoration: none; }
.cand-auth__back a:hover { color: var(--mm-navy); }

/* foto / avatar */
.cand-photo { display: flex; flex-direction: column; align-items: center; gap: 12px; margin-bottom: 8px; }
.cand-photo__preview {
    width: 104px; height: 104px; border-radius: 50%;
    background: var(--rh-bg) center/cover no-repeat;
    border: 3px solid var(--mm-cyan-soft);
    display: flex; align-items: center; justify-content: center;
    color: var(--rh-muted); overflow: hidden;
}
.cand-photo__preview i { font-size: 42px; }
.cand-photo__preview img { width: 100%; height: 100%; object-fit: cover; }
.cand-photo__actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.cand-photo__btn {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 12.5px; font-weight: 600;
    padding: 7px 12px; border-radius: 8px; cursor: pointer;
    border: 1px solid var(--rh-border); background: #fff; color: var(--mm-navy);
}
.cand-photo__btn:hover { background: var(--rh-bg); border-color: var(--mm-cyan); }
.cand-avatars { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-top: 4px; }
.cand-avatars img {
    width: 44px; height: 44px; border-radius: 50%; cursor: pointer;
    border: 2px solid transparent; transition: border-color .12s, transform .08s;
}
.cand-avatars img:hover { transform: translateY(-1px); }
.cand-avatars img.is-selected { border-color: var(--mm-cyan); }

/* câmera (selfie) */
.cand-cam { margin-top: 10px; display: none; flex-direction: column; align-items: center; gap: 8px; }
.cand-cam.is-open { display: flex; }
.cand-cam video { width: 100%; max-width: 280px; border-radius: 12px; background: #000; transform: scaleX(-1); }
.cand-cam__row { display: flex; gap: 8px; }

/* checklist de senha */
.pw-rules { list-style: none; padding: 0; margin: 8px 0 0; display: grid; grid-template-columns: 1fr 1fr; gap: 4px 14px; }
.pw-rules li { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--rh-muted); transition: color .12s; }
.pw-rules li i { font-size: 14px; }
.pw-rules li.ok { color: #16a34a; }
.pw-rules li.ok i::before { content: "\F26B"; } /* bi-check-circle-fill */

@media (max-width: 480px) {
    .cand-auth { padding: 18px 12px; }
    .cand-auth__card { padding: 24px 18px; border-radius: 14px; }
    .pw-rules { grid-template-columns: 1fr; }
}

/* ============================================================
   Portal de Vagas PÚBLICO (/vagas)
   ============================================================ */
.portal { min-height: 100vh; display: flex; flex-direction: column; background: var(--rh-bg); }

.portal-top {
    background: #fff; border-bottom: 1px solid var(--rh-border);
    position: sticky; top: 0; z-index: 30;
}
.portal-top__in {
    max-width: 1240px; margin: 0 auto; padding: 12px 20px;
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
}
.portal-top__logo img { height: 52px; width: auto; }
.portal-top__actions { display: flex; align-items: center; gap: 8px; }
.portal-top__hi { font-size: 13px; color: var(--rh-muted); }
.portal-top__hi strong { color: var(--mm-navy); }

.portal-hero {
    background: linear-gradient(135deg, var(--mm-navy) 0%, var(--mm-navy-2) 55%, var(--mm-petrol) 100%);
    color: #fff; padding: 40px 20px 32px;
}
.portal-hero__in { max-width: 1240px; margin: 0 auto; }
.portal-hero__tag {
    display: inline-block; font-size: 11px; font-weight: 600; letter-spacing: .16em;
    text-transform: uppercase; color: var(--mm-cyan);
    background: rgba(10,132,224,.12); border: 1px solid rgba(10,132,224,.35);
    padding: 5px 12px; border-radius: 999px; margin-bottom: 14px;
}
.portal-hero__title { font-size: 30px; font-weight: 700; margin: 0 0 6px; letter-spacing: -.01em; }
.portal-hero__sub { font-size: 14.5px; color: rgba(255,255,255,.82); margin: 0; }

/* filtros */
.portal-filters {
    max-width: 1240px; margin: -22px auto 0; padding: 0 20px; position: relative; z-index: 5;
}
.portal-filters__card {
    background: #fff; border: 1px solid var(--rh-border); border-radius: 14px;
    box-shadow: 0 8px 30px rgba(1,17,38,.08); padding: 16px;
    display: grid; grid-template-columns: 1.4fr 1.2fr .9fr 1fr .9fr auto auto auto; gap: 10px; align-items: end;
}
.portal-field { display: flex; flex-direction: column; gap: 5px; }
.portal-field label { font-size: 11.5px; font-weight: 600; color: var(--mm-navy); }
.portal-field .rh-input, .portal-field select.rh-input { height: 40px; }
.portal-filters .rh-btn { height: 40px; }

/* resultado */
.portal-results { max-width: 1240px; margin: 0 auto; padding: 22px 20px 48px; width: 100%; }
.portal-results__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; flex-wrap: wrap; gap: 8px; }
.portal-results__count { font-size: 14px; color: var(--mm-navy); font-weight: 600; }
.portal-results__count span { color: var(--rh-muted); font-weight: 400; }

.vaga-grid {
    display: grid; gap: 16px;
    grid-template-columns: repeat(auto-fill, minmax(232px, 1fr));
}

.vaga-card {
    background: #fff; border: 1px solid var(--rh-border); border-radius: 14px;
    padding: 16px; display: flex; flex-direction: column; gap: 10px;
    transition: box-shadow .15s, transform .08s, border-color .15s;
}
.vaga-card:hover { box-shadow: 0 10px 28px rgba(1,17,38,.10); transform: translateY(-2px); border-color: var(--mm-cyan-soft); }
.vaga-card__empresa { display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--rh-muted); }
.vaga-card__empresa img { width: 22px; height: 22px; border-radius: 5px; object-fit: contain; background: var(--rh-bg); }
.vaga-card__empresa span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.vaga-card__titulo { font-size: 16px; font-weight: 700; color: var(--mm-navy); margin: 0; line-height: 1.25; }
.vaga-card__cod { font-size: 11px; color: var(--rh-muted); }
.vaga-card__sal { font-size: 15px; font-weight: 700; color: #16a34a; }
.vaga-card__sal small { color: var(--rh-muted); font-weight: 600; }
.vaga-card__meta { display: flex; flex-direction: column; gap: 5px; font-size: 12.5px; color: var(--rh-text); }
.vaga-card__meta div { display: flex; align-items: center; gap: 7px; }
.vaga-card__meta i { color: var(--mm-cyan-dark); width: 15px; text-align: center; }
.vaga-card__tags { display: flex; flex-wrap: wrap; gap: 6px; }
.vaga-tag {
    font-size: 11px; font-weight: 600; color: var(--mm-cyan-dark);
    background: var(--mm-cyan-soft); border-radius: 999px; padding: 3px 9px;
    display: inline-flex; align-items: center; gap: 4px;
}
.vaga-tag--ok    { color: #15803d; background: #dcfce7; }
.vaga-tag--muted { color: var(--rh-muted); background: var(--rh-bg); }
.vaga-tag--warn  { color: #b45309; background: #fef3c7; font-weight:600; }
.vaga-card__foot { margin-top: auto; display: flex; gap: 8px; padding-top: 6px; }
.vaga-card__foot .rh-btn { flex: 1; height: 38px; font-size: 13px; }
.vaga-card__detail { background:#e5e7eb; border:1px solid #d1d5db; color:#475569; transition: transform .12s ease, background .12s ease; }
.vaga-card__detail:hover { background:#d1d5db; border-color:#9ca3af; color:#334155; }
.vaga-card__detail-zoom { font-size:13px; font-weight:600; letter-spacing:.2px; display:inline-block; transition: transform .12s ease; transform-origin:center; }
.vaga-card__detail:hover .vaga-card__detail-zoom { transform: scale(1.16); }
/* Detalhes menor (largura pelo conteúdo); Candidate-se ocupa o resto, em 1 linha */
.vaga-card__foot .vaga-card__detail { flex: 0 0 auto; padding: 0 12px; white-space: nowrap; }
.vaga-card__foot .vaga-card__apply  { flex: 1 1 auto; white-space: nowrap; }
/* botão verde "Candidate-se" (card e modal) */
.vaga-card__apply { background:#16a34a; border:1px solid #16a34a; color:#fff; }
.vaga-card__apply:hover { background:#15803d; border-color:#15803d; color:#fff; }
/* botão Pesquisar: só ícone, amarelo com azul-marinho */
.rh-btn--search { background:#f5c518; color:var(--mm-navy); border-color:#f5c518; width:46px; padding:0; display:inline-flex; align-items:center; justify-content:center; }
.rh-btn--search .bi { font-size:18px; }
.rh-btn--search:hover { background:#e6b800; color:var(--mm-navy); border-color:#e6b800; }
/* checkbox de filtro PCD */
.portal-field--check { display:flex; align-items:flex-end; }
.portal-check { display:flex; align-items:center; gap:7px; font-size:13px; font-weight:600; color:var(--mm-navy); cursor:pointer; height:42px; white-space:nowrap; }
.portal-check input { width:17px; height:17px; accent-color:var(--mm-cyan); cursor:pointer; }
.portal-check .bi { color:var(--mm-cyan-dark); }
/* rodapé do modal: mensagem positiva + botão full-width */
.vaga-modal__foot { flex-direction: column; align-items: stretch; gap: 10px; }
.vaga-modal__cta { margin:0; text-align:center; font-size:13.5px; color:#15803d; background:#dcfce7; border-radius:10px; padding:10px 12px; font-weight:600; }
.vaga-modal__cta .bi { color:#16a34a; }
.vaga-modal__cta-sub { margin:-2px 0 0; text-align:center; font-size:12.5px; color:#3f6212; font-weight:500; line-height:1.35; }
.vaga-modal__cta-sub strong { color:#15803d; font-weight:700; }

.portal-empty { text-align: center; padding: 60px 20px; color: var(--rh-muted); }
.portal-empty i { font-size: 46px; color: var(--rh-border-strong); }

.portal-foot { margin-top: auto; background: var(--mm-navy); color: rgba(255,255,255,.7); text-align: center; padding: 20px; font-size: 12.5px; }

/* modal de detalhe */
.vaga-modal__sal { font-size: 18px; font-weight: 700; color: #16a34a; }
/* blocos do modal como CARDS (destaque elegante) */
.vaga-modal__sec { margin-top: 12px; background:#fff; border:1px solid var(--rh-border,#e5e7eb);
    border-top:3px solid #cbd5e1; border-radius:12px; padding:12px 14px; box-shadow:0 1px 3px rgba(16,24,40,.06); }
.vaga-modal__sec h6 { font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--mm-navy);
    margin: 0 0 8px; font-weight:700; display:flex; align-items:center; gap:7px; }
.vaga-modal__sec--blue  { border-top-color:#3b82f6; } .vaga-modal__sec--blue  h6 { color:#1d4ed8; }
.vaga-modal__sec--cyan  { border-top-color:#06b6d4; } .vaga-modal__sec--cyan  h6 { color:#0e7490; }
.vaga-modal__sec--green { border-top-color:#10b981; } .vaga-modal__sec--green h6 { color:#047857; }
.vaga-modal__sec--amber { border-top-color:#f59e0b; } .vaga-modal__sec--amber h6 { color:#b45309; }
.vaga-modal__desc { font-size: 14px; color: var(--rh-text); line-height: 1.6; white-space: pre-wrap; }
.vaga-modal__chips { display: flex; flex-wrap: wrap; gap: 6px; }
/* Requisitos e benefícios UM POR LINHA (pedido do cliente via dono, 04/08): em chips lado a lado o
   candidato lia dois itens como se fossem um só. Empilhado, cada item é uma leitura. */
.vaga-modal__chips--lista { flex-direction: column; align-items: flex-start; gap: 5px; }
.vaga-modal__chips--lista .vaga-tag { white-space: normal; text-align: left; line-height: 1.35;
    display: flex; align-items: flex-start; gap: 7px; }
/* marcador antes de cada item — o texto que quebra em 2 linhas fica alinhado sob si mesmo,
   e não sob o bullet (por isso flex + flex:0 0 auto, em vez de list-style) */
.vaga-modal__chips--lista .vaga-tag::before { content: "•"; font-weight: 700; opacity: .55; flex: 0 0 auto; }
/* o "+N" no fim não é item da lista: não leva marcador */
.vaga-modal__chips--lista .vaga-tag--muted::before { content: none; }
/* HORÁRIO em lista (dono, 05/08): as faixas vinham numa linha só ("Seg a Qui: … · Sex: … · Sáb: …"),
   ilegível no celular. Uma por linha, com bullet discreto, indentadas sob o rótulo "Horário:". */
.vaga-modal__horarios { list-style: none; margin: 3px 0 0; padding: 0 0 0 20px; }
.vaga-modal__horarios li { position: relative; line-height: 1.5; }
.vaga-modal__horarios li::before { content: "•"; position: absolute; left: -11px; opacity: .55; font-weight: 700; }

.vaga-modal__reqcat { font-size: 11px; font-weight: 700; color: var(--mm-navy); margin: 10px 0 4px; }
.vaga-modal__reqcat:first-child { margin-top: 0; }
.vaga-modal__reqnote { font-size: 12px; color: var(--rh-muted); margin: 10px 0 0; font-style: italic; }
.vaga-modal__reqnote .bi { color: var(--mm-cyan-dark); }

@media (max-width: 1100px) { .portal-filters__card { grid-template-columns: 1fr 1fr 1fr; } }
@media (max-width: 680px) {
    .portal-hero__title { font-size: 24px; }
    .portal-filters__card { grid-template-columns: 1fr 1fr; }
    .portal-filters { margin-top: -16px; }
    .vaga-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   Dashboard do Candidato (área logada) — responsivo
   ============================================================ */
.cand-dash { max-width: 1080px; margin: 0 auto; padding: 24px 20px 48px; width: 100%; }
.cand-dash__grid { display: grid; grid-template-columns: 300px 1fr; gap: 20px; align-items: start; }

.cand-profile {
    background: #fff; border: 1px solid var(--rh-border); border-radius: 14px; padding: 22px; text-align: center;
}
.cand-profile__photo {
    width: 96px; height: 96px; border-radius: 50%; margin: 0 auto 12px;
    background: var(--mm-cyan-soft) center/cover no-repeat;
    display: flex; align-items: center; justify-content: center; overflow: hidden;
    border: 3px solid #fff; box-shadow: 0 0 0 1px var(--rh-border);
}
.cand-profile__photo img { width: 100%; height: 100%; object-fit: cover; }
.cand-profile__photo i { font-size: 40px; color: var(--mm-cyan-dark); }
.cand-profile__nome { font-size: 18px; font-weight: 700; color: var(--mm-navy); margin: 0 0 2px; }
.cand-profile__contato { font-size: 12.5px; color: var(--rh-muted); margin: 0; word-break: break-all; }
.cand-profile__sep { height: 1px; background: var(--rh-border); margin: 16px 0; }

.cand-dash__main { display: flex; flex-direction: column; gap: 20px; }
.cand-panel { background: #fff; border: 1px solid var(--rh-border); border-radius: 14px; padding: 20px; }
.cand-panel__title { font-size: 15px; font-weight: 700; color: var(--mm-navy); margin: 0 0 14px; display: flex; align-items: center; gap: 8px; }
.cand-panel__title .badge-count { font-size: 12px; background: var(--mm-cyan-soft); color: var(--mm-cyan-dark); border-radius: 999px; padding: 1px 9px; font-weight: 600; }

.cand-apps { display: flex; flex-direction: column; gap: 10px; }
.cand-app {
    display: flex; align-items: center; gap: 12px; padding: 12px 14px;
    border: 1px solid var(--rh-border); border-radius: 10px; transition: border-color .12s, background .12s;
}
.cand-app:hover { border-color: var(--mm-cyan-soft); background: var(--rh-bg); }
.cand-app__info { flex: 1; min-width: 0; }
.cand-app__titulo { font-size: 14px; font-weight: 600; color: var(--mm-navy); margin: 0; }
.cand-app__sub { font-size: 12px; color: var(--rh-muted); margin: 2px 0 0; }
.cand-app__status { font-size: 11.5px; font-weight: 600; padding: 4px 10px; border-radius: 999px; white-space: nowrap;
    background: var(--mm-cyan-soft); color: var(--mm-cyan-dark); }
.cand-app__status--ok { background: #ecfdf5; color: #047857; }
.cand-app__status--no { background: #fef2f2; color: #b91c1c; }

.cand-empty { text-align: center; padding: 28px 16px; color: var(--rh-muted); }
.cand-empty i { font-size: 34px; color: var(--rh-border-strong); }

@media (max-width: 760px) {
    .cand-dash__grid { grid-template-columns: 1fr; }
}

/* ============================================================
   Ficha cadastral do candidato (Etapa 1) — stepper, contato, grid
   ============================================================ */
.cand-auth__card--form { max-width: 760px; }

/* Linha de etapas */
.cand-step { list-style: none; display: flex; gap: 6px; padding: 0; margin: 0 0 22px; }
.cand-step__item { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 6px; position: relative; text-align: center; }
.cand-step__item::before { content: ""; position: absolute; top: 18px; left: -50%; width: 100%; height: 3px; background: var(--rh-border, #e5e7eb); z-index: 0; }
.cand-step__item:first-child::before { display: none; }
.cand-step__dot { position: relative; z-index: 1; width: 38px; height: 38px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
    background: #fff; border: 2px solid var(--rh-border, #e5e7eb); color: var(--rh-muted); font-size: 16px; }
.cand-step__dot b { position: absolute; right: -3px; bottom: -3px; width: 16px; height: 16px; border-radius: 50%; background: var(--rh-border, #e5e7eb);
    color: #fff; font-size: 10px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.cand-step__lbl { font-size: 11px; line-height: 1.15; color: var(--rh-muted); font-weight: 600; }
/* azul = etapa atual/concluída · cinza apagado = a fazer */
.cand-step__item.is-active .cand-step__dot { border-color: var(--mm-cyan); color: var(--mm-cyan-dark); box-shadow: 0 0 0 4px rgba(10,132,224,.15); }
.cand-step__item.is-active .cand-step__dot b { background: var(--mm-cyan); }
.cand-step__item.is-active .cand-step__lbl { color: var(--mm-navy); }
.cand-step__item.is-done .cand-step__dot { border-color: var(--mm-cyan); background: var(--mm-cyan); color: #fff; }
.cand-step__item.is-done .cand-step__dot b { background: var(--mm-navy); }
.cand-step__item.is-done .cand-step__lbl { color: var(--mm-navy); }
.cand-step__item.is-done::before { background: var(--mm-cyan); }
.cand-step__item.is-todo .cand-step__dot,
.cand-step__item.is-todo .cand-step__lbl { opacity: .5; }
/* Estrela "Contratado!" no fim da linha do tempo */
.cand-step__dot--star { border-color: #f59e0b !important; background: #f59e0b !important; color: #fff !important;
    box-shadow: 0 0 0 4px rgba(245,158,11,.18); }
.cand-step__item--star .cand-step__lbl { color: #b45309; font-weight: 800; }
.cand-step__item--star::before { background: #f59e0b !important; }

/* Título e mensagens da ficha */
.fc-title { font-size: 16px; font-weight: 800; color: var(--mm-navy); display: flex; align-items: center; gap: 9px;
    margin: 24px 0 2px; padding-bottom: 10px; border-bottom: 2px solid var(--mm-cyan); }
.fc-title i { color: var(--mm-cyan-dark); }
.fc-err { font-size: 11.5px; color: #dc2626; margin-top: 4px; font-weight: 600; }
.fc-opt { font-size: 10.5px; font-weight: 500; color: var(--rh-muted); }
.fc-submit { margin-top: 30px; text-transform: uppercase; letter-spacing: .4px; }

/* Avatar do candidato no topo do painel (no lugar do logo) */
.portal-top__me { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; }
.portal-top__me img, .portal-top__me-ph { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; border: 2px solid var(--mm-cyan); background: #fff; }
.portal-top__me-ph { display: inline-flex; align-items: center; justify-content: center; color: var(--rh-muted); font-size: 20px; }
.portal-top__me-nome { font-weight: 700; color: var(--mm-navy); font-size: 15px; }

/* Seções e grids do formulário */
.fc-section { margin-top: 22px; padding-top: 16px; border-top: 1px solid var(--rh-border, #eef1f4); }
.fc-section__title { font-size: 13px; font-weight: 700; color: var(--mm-navy); display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }
.fc-section__title i { color: var(--mm-cyan-dark); }
.fc-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px 14px; }
.fc-grid--3 { grid-template-columns: repeat(3, 1fr); }
.fc-grid .rh-form-group { margin-bottom: 0; }
.fc-col-2 { grid-column: span 2; }
.fc-col-3 { grid-column: 1 / -1; }
.fc-hint { font-size: 11px; color: var(--rh-muted); margin-top: 4px; }
.fc-soon-tag { font-size: 10px; font-weight: 600; color: #b45309; background: #fff7ed; border: 1px solid #fed7aa; padding: 1px 6px; border-radius: 999px; }
select.rh-input { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 16 16'%3E%3Cpath fill='%2364748b' d='M8 11L3 6h10z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; padding-right: 30px; }
.rh-input.is-invalid { border-color: #dc2626; box-shadow: 0 0 0 3px rgba(220,38,38,.12); }
.fc-spin { animation: fc-spin 0.8s linear infinite; display: inline-block; }
@keyframes fc-spin { to { transform: rotate(360deg); } }

/* Sim/Não */
.fc-radio { display: flex; gap: 16px; padding-top: 6px; }
.fc-radio label { display: inline-flex; align-items: center; gap: 6px; font-size: 13.5px; color: var(--mm-navy); cursor: pointer; }

/* Como quer ser informado */
/* Seletor de DDD da vaga (aba Região) — destaca o passo "escolha o DDD" */
.vaga-ddd-pick {
    background: var(--rh-bg);
    border: 1px solid var(--rh-border);
    border-radius: 10px;
    padding: 14px 14px 4px;
    margin-bottom: 12px;
}
.vaga-ddd-pick #vagaDDD { font-weight: 600; }

.contact-opts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.contact-opt { position: relative; display: flex; flex-direction: column; align-items: center; gap: 4px; text-align: center;
    padding: 14px 10px; border: 1.5px solid var(--rh-border, #e5e7eb); border-radius: 12px; background: #fff; cursor: pointer; transition: .14s; }
.contact-opt i { font-size: 24px; color: var(--mm-cyan-dark); }
.contact-opt strong { font-size: 13px; color: var(--mm-navy); }
.contact-opt small { font-size: 11px; color: var(--rh-muted); line-height: 1.25; }
.contact-opt:hover { border-color: var(--mm-cyan); transform: translateY(-1px); }
.contact-opt.is-active { border-color: var(--mm-cyan); background: rgba(10,132,224,.06); box-shadow: 0 0 0 3px rgba(10,132,224,.12); }
.contact-opt.is-soon { opacity: .7; }
.contact-opt.is-soon i, .contact-opt.is-soon strong { color: var(--rh-muted); }

/* Portal em DESTAQUE: ocupa a 1ª linha inteira; os demais (WhatsApp/SMS/E-mail) ficam abaixo */
.contact-opt--featured {
    grid-column: 1 / -1;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 14px;
    text-align: left;
    border-width: 2px;
    border-color: var(--mm-cyan);
    background: rgba(10,132,224,.06);
}
.contact-opt--featured i { font-size: 30px; }
.contact-opt__txt { display: flex; flex-direction: column; gap: 2px; }
.contact-opt--featured strong { font-size: 15px; }
.contact-opt__tag {
    margin-left: auto;
    font-size: 11px; font-weight: 700; color: #fff;
    background: var(--mm-cyan); padding: 4px 12px; border-radius: 999px; white-space: nowrap;
}
@media (max-width: 520px) {
    .contact-opts { grid-template-columns: repeat(2, 1fr); }
    .contact-opt--featured { flex-wrap: wrap; }
    .contact-opt__tag { margin-left: 0; }
}
.contact-opt__soon { position: absolute; top: 6px; right: 6px; font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: .3px;
    color: #b45309; background: #fff7ed; border: 1px solid #fed7aa; padding: 1px 6px; border-radius: 999px; }
.fc-soon-note { margin-top: 10px; font-size: 12.5px; color: #92400e; background: #fffbeb; border: 1px solid #fde68a; border-radius: 10px; padding: 9px 12px; }

@media (max-width: 620px) {
    .fc-grid, .fc-grid--3 { grid-template-columns: 1fr 1fr; }
    .fc-col-2, .fc-col-3 { grid-column: 1 / -1; }
    .contact-opts { grid-template-columns: 1fr; }
    .cand-step__lbl { font-size: 10px; }
}
/* celular estreito: tudo em 1 coluna (nome, celular, e-mail, nascimento, CPF, transporte) */
@media (max-width: 440px) {
    .fc-grid, .fc-grid--3 { grid-template-columns: 1fr; }
}

/* ============================================================
   Candidato — banner de vaga, painel em linha, modal de dados
   ============================================================ */

/* Banner "está se candidatando" na tela de criar conta */
.vaga-aplica { border: 1.5px solid var(--mm-cyan); background: rgba(10,132,224,.06); border-radius: 14px; padding: 14px 16px; margin-top: 24px; margin-bottom: 18px; }
.vaga-aplica__head { display: flex; gap: 12px; align-items: flex-start; }
.vaga-aplica__head > i { font-size: 26px; color: var(--mm-cyan-dark); margin-top: 2px; }
.vaga-aplica__tag { display: block; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .4px; color: var(--mm-cyan-dark); }
.vaga-aplica__titulo { display: block; font-size: 16px; font-weight: 800; color: var(--mm-navy); line-height: 1.2; }
.vaga-aplica__meta { display: block; font-size: 12.5px; color: var(--rh-muted); margin-top: 2px; }
.vaga-aplica__disp { margin-top: 12px; padding-top: 12px; border-top: 1px dashed rgba(10,132,224,.5); }
.vaga-aplica__disp-title { font-size: 12.5px; font-weight: 700; color: var(--mm-navy); margin-bottom: 8px; }
.vaga-aplica__disp-title span { font-weight: 500; color: var(--rh-muted); }
.vaga-aplica__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.vaga-chip { position: relative; cursor: pointer; }
.vaga-chip input { position: absolute; opacity: 0; pointer-events: none; }
.vaga-chip span { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--mm-navy);
    border: 1.5px solid var(--rh-border, #e5e7eb); background: #fff; border-radius: 999px; padding: 6px 12px; transition: .12s; }
.vaga-chip span i { color: var(--rh-muted); }
.vaga-chip input:checked + span { border-color: var(--mm-cyan); background: var(--mm-cyan); color: #fff; }
.vaga-chip input:checked + span i { color: #fff; }

/* Hero centralizado + CTA */
.portal-hero--center .portal-hero__in { text-align: center; display: flex; flex-direction: column; align-items: center; }
.portal-hero__cta { margin-top: 14px; }

/* Painel de identificação em linha */
.cand-id { display: flex; align-items: center; gap: 16px; background: #fff; border: 1px solid var(--rh-border, #eef1f4);
    border-radius: 16px; padding: 16px 18px; box-shadow: 0 6px 20px rgba(1,17,38,.05); }
.cand-id__photo { width: 64px; height: 64px; border-radius: 50%; overflow: hidden; flex: 0 0 64px; border: 2px solid var(--mm-cyan);
    display: flex; align-items: center; justify-content: center; background: var(--rh-bg, #f1f5f9); color: var(--rh-muted); font-size: 28px; }
.cand-id__photo img { width: 100%; height: 100%; object-fit: cover; }
.cand-id__info { flex: 1; min-width: 0; }
.cand-id__nome { font-size: 18px; font-weight: 800; color: var(--mm-navy); margin: 0 0 4px; }
.cand-id__contatos { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 13px; color: var(--rh-muted); }
.cand-id__contatos i { color: var(--mm-cyan-dark); margin-right: 2px; }
.cand-id__actions { display: flex; flex-direction: column; gap: 8px; flex: 0 0 auto; }

/* Divisor tracejado */
.cand-divider { border-top: 2px dashed var(--rh-border, #dbe2ea); margin: 22px 0; }

/* Modal "meus dados" */
.cand-dados { margin: 0; }
.cand-dados__row { display: grid; grid-template-columns: 200px 1fr; gap: 6px 14px; padding: 8px 0; border-bottom: 1px solid var(--rh-border, #f1f5f9); }
.cand-dados__row dt { color: var(--rh-muted); font-weight: 600; font-size: 13px; margin: 0; }
.cand-dados__row dd { color: var(--mm-navy); font-size: 13.5px; margin: 0; word-break: break-word; }

/* Ações da edição */
.fc-edit-actions { display: flex; justify-content: space-between; gap: 12px; margin-top: 28px; }

/* Alerta de sucesso */
.rh-alert--ok { display: flex; gap: 10px; align-items: flex-start; background: #ecfdf5; border: 1px solid #a7f3d0; color: #065f46;
    border-radius: 10px; padding: 11px 14px; margin-bottom: 16px; font-size: 13.5px; }
.rh-alert--ok i { font-size: 17px; }

@media (max-width: 620px) {
    .cand-id { flex-direction: column; text-align: center; }
    .cand-id__contatos { justify-content: center; }
    .cand-id__actions { flex-direction: row; width: 100%; }
    .cand-id__actions .rh-btn { flex: 1; }
    .cand-dados__row { grid-template-columns: 1fr; gap: 0; }
}

/* ============================================================
   Dashboard do candidato v2 — card na barra, botão amarelo, abas
   ============================================================ */
.portal-hero--slim { padding: 22px 20px 24px; }
.cand-hero { display: flex; flex-direction: column; align-items: center; gap: 14px; }

/* card de identificação sobre a barra azul */
.cand-id--hero { width: 100%; max-width: 780px; }
.cand-id--hero .cand-id__nome { font-size: 17px; }

/* botão amarelo em LINHA (corrige o quadradinho do rh-btn--search) */
.cand-explore { display: inline-flex; align-items: center; gap: 9px; white-space: nowrap;
    background: #f5c518; color: var(--mm-navy); font-weight: 700; font-size: 14.5px;
    border: none; border-radius: 11px; padding: 11px 22px; text-decoration: none;
    box-shadow: 0 6px 16px rgba(245,197,24,.35); transition: .14s; }
.cand-explore:hover { background: #e6b800; color: var(--mm-navy); transform: translateY(-1px); }
.cand-explore i { font-size: 16px; }

/* Abas */
.cand-tabs { border: none; gap: 6px; margin-bottom: 0; flex-wrap: wrap; }
.cand-tab { border: 1px solid var(--rh-border, #e5e7eb); background: #fff; color: var(--rh-muted);
    font-weight: 700; font-size: 13.5px; border-radius: 12px 12px 0 0; padding: 10px 13px;
    display: inline-flex; align-items: center; gap: 6px; cursor: pointer; transition: .12s; margin-bottom: -1px; }
.cand-tab:hover { color: var(--mm-navy); border-color: var(--mm-cyan); }
.cand-tab.active { color: var(--mm-navy); background: #fff; border-color: var(--rh-border, #e5e7eb); border-bottom-color: #fff; }
.cand-tab .badge-count { background: var(--mm-cyan); color: #fff; }
.cand-tabs__content { background: #fff; border: 1px solid var(--rh-border, #e5e7eb); border-radius: 0 14px 14px 14px;
    padding: 22px; box-shadow: 0 6px 20px rgba(1,17,38,.05); }

/* placeholder das abas CV / Questionário */
.cand-soon { text-align: center; padding: 36px 20px; color: var(--rh-muted); }
.cand-soon i { font-size: 42px; color: var(--mm-cyan); }
.cand-soon h3 { font-size: 18px; font-weight: 800; color: var(--mm-navy); margin: 12px 0 8px; }
.cand-soon p { font-size: 14px; max-width: 540px; margin: 0 auto; line-height: 1.55; }

/* CTA do Currículo (Etapa 2) — card horizontal com botão sempre visível */
.cand-cv-cta { display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
    background: #f8fafc; border: 1px dashed #cbd5e1; border-radius: 12px; padding: 18px 20px; }
.cand-cv-cta__icon { flex: 0 0 auto; width: 52px; height: 52px; border-radius: 12px; display: inline-flex;
    align-items: center; justify-content: center; background: rgba(10,132,224,.10); color: var(--mm-cyan-dark); }
.cand-cv-cta__icon i { font-size: 26px; }
.cand-cv-cta__body { flex: 1 1 280px; min-width: 0; }
.cand-cv-cta__body h3 { font-size: 16px; font-weight: 800; color: var(--mm-navy); margin: 0 0 4px; }
.cand-cv-cta__body h3 span { color: var(--mm-cyan-dark); font-weight: 700; font-size: 13px; }
.cand-cv-cta__body p { font-size: 13.5px; color: var(--rh-muted, #64748b); margin: 0; line-height: 1.5; }
.cand-cv-cta__btn { flex: 0 0 auto; white-space: nowrap; }
@media (max-width: 560px) { .cand-cv-cta__btn { width: 100%; justify-content: center; } }

/* Avisos do candidato (notificações no corpo do dashboard) */
.cand-notifs { background: #fff; border: 1px solid var(--rh-border, #e5e7eb); border-radius: 12px; padding: 12px 14px; margin-bottom: 14px; }
.cand-notifs__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-weight: 800; color: var(--mm-navy); font-size: 14px; margin-bottom: 8px; }
.cand-notifs__head .badge-count { background: var(--mm-cyan); color: #fff; }
.cand-notifs__clear { border: 1px solid var(--rh-border, #e5e7eb); background: #f8fafc; color: var(--mm-cyan-dark); border-radius: 8px; padding: 5px 10px; font-size: 12.5px; font-weight: 600; cursor: pointer; }
.cand-notifs__clear:hover { background: rgba(10,132,224,.07); }
.cand-notif { display: flex; gap: 9px; align-items: flex-start; font-size: 13px; color: #334155; padding: 7px 0; border-top: 1px dashed #eef2f7; }
.cand-notif:first-of-type { border-top: none; }
.cand-notif i { color: var(--mm-cyan-dark); margin-top: 2px; }
.cand-notif.is-unread { color: var(--mm-navy); }
.cand-notif.is-unread strong { color: var(--mm-navy); }
.cand-notif__time { display: block; font-size: 11px; color: #94a3b8; margin-top: 1px; }

/* a linha do tempo dentro da aba ganha um respiro */
.cand-tabs__content .cand-step { margin-bottom: 24px; }

@media (max-width: 620px) {
    .cand-tab { font-size: 13px; padding: 9px 12px; }
    .cand-tabs__content { padding: 16px; border-radius: 0 0 14px 14px; }
}

/* ============================================================
   Currículo do candidato (Etapa 2) — listas dinâmicas
   ============================================================ */
.cv-list { display: flex; flex-direction: column; gap: 12px; }
.cv-row { position: relative; border: 1px solid var(--rh-border, #e5e7eb); border-radius: 12px; padding: 14px 14px 6px; background: #fcfdff; }
.cv-row__rm { position: absolute; top: 8px; right: 8px; width: 26px; height: 26px; border-radius: 8px; border: none;
    background: #fef2f2; color: #dc2626; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; font-size: 12px; z-index: 2; }
.cv-row__rm:hover { background: #fee2e2; }
.cv-inline { display: flex; gap: 8px; align-items: center; }
/* No celular o combo "Encerrado/Atual" desce para a linha de baixo do campo Fim */
@media (max-width: 480px) {
    .cv-inline { flex-direction: column; align-items: stretch; }
    .cv-inline .cv-atual { max-width: 100% !important; }
}
.cv-add { margin-top: 12px; display: inline-flex; align-items: center; gap: 7px; background: #fff; color: var(--mm-cyan-dark);
    border: 1.5px dashed var(--mm-cyan); border-radius: 10px; padding: 9px 16px; font-weight: 700; font-size: 13.5px; cursor: pointer; transition: .12s; }
.cv-add:hover { background: rgba(10,132,224,.07); }
.cv-file-atual { font-size: 13px; color: #065f46; background: #ecfdf5; border: 1px solid #a7f3d0; border-radius: 10px; padding: 9px 12px; margin-bottom: 10px; }
.cv-file-atual a { color: var(--mm-cyan-dark); font-weight: 600; }

/* resumo do CV na aba 2 */
.cv-summary__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.cv-summary__ok { font-weight: 800; color: #059669; display: inline-flex; align-items: center; gap: 7px; font-size: 15px; }
.cv-summary__resumo { font-size: 14px; color: var(--mm-navy); background: var(--rh-bg, #f8fafc); border-radius: 10px; padding: 12px 14px; margin: 0 0 12px; line-height: 1.5; }
.cv-summary__chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.cv-summary__chips span { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--mm-navy);
    background: #fff; border: 1px solid var(--rh-border, #e5e7eb); border-radius: 999px; padding: 5px 12px; }
.cv-summary__chips i { color: var(--mm-cyan-dark); }
.cv-summary__pdf { display: inline-flex; align-items: center; gap: 7px; font-weight: 700; color: #dc2626; text-decoration: none; font-size: 13.5px; }
.cv-summary__pdf:hover { text-decoration: underline; }

/* ============================================================
   Questionário do candidato (Etapa 3)
   ============================================================ */
/* `.quiz-cat` (o selo ESSENCIAL/BÁSICO/…) saiu da tela do candidato em 07/08: era informação do
   RH e, pior, entregava a resposta — quem lê "Essencial" deduz o que a empresa quer ouvir.
   A classe fica aqui porque as telas do RH ainda mostram a categoria, onde ela faz sentido. */
.quiz-cat { display: inline-block; font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .4px;
    padding: 3px 12px; border-radius: 999px; border: 1px solid; }
/* Numeração da sequência: dá noção de progresso sem revelar de que tipo é a pergunta. */
.quiz-q__n { color: var(--rh-muted, #64748b); font-weight: 700; margin-right: 2px; }
.quiz-intro { font-size: 13px; color: var(--rh-muted); background: var(--rh-bg, #f8fafc); border-radius: 10px; padding: 10px 14px; margin-bottom: 14px; }
.quiz-q { padding: 12px 0; border-bottom: 1px solid var(--rh-border, #f1f5f9); }
.quiz-q:last-child { border-bottom: none; }
.quiz-q__txt { font-size: 14.5px; color: var(--mm-navy); font-weight: 600; margin: 0 0 8px; }
.quiz-opts { display: flex; gap: 10px; }
.quiz-opt { cursor: pointer; }
.quiz-opt input { position: absolute; opacity: 0; pointer-events: none; }
.quiz-opt span { display: inline-flex; align-items: center; gap: 6px; font-size: 13.5px; font-weight: 600; color: var(--mm-navy);
    border: 1.5px solid var(--rh-border, #e5e7eb); background: #fff; border-radius: 10px; padding: 7px 18px; transition: .12s; }
.quiz-opt input:checked + span { border-color: var(--mm-cyan); background: var(--mm-cyan); color: #fff; }
.quiz-just { margin-top: 8px; }

/* ===== Revisão da Etapa 3 (candidato): CV + questionário + decisão ===== */
.cv-item { padding:7px 0; border-bottom:1px dashed #e5e7eb; }
.cv-item:last-child { border-bottom:0; }
.cv-item__head { font-size:13.5px; display:flex; flex-wrap:wrap; align-items:baseline; gap:4px; }
.cv-item__per { margin-left:auto; color:#64748b; font-size:12px; white-space:nowrap; }
.cv-item__txt { font-size:12.5px; color:#475569; margin-top:2px; }

.quiz-ans { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; padding:6px 0; border-bottom:1px solid #f1f5f9; font-size:13.5px; }
.quiz-ans:last-child { border-bottom:0; }
.quiz-ans__q { flex:1; }
.quiz-ans__r { display:flex; align-items:center; gap:6px; white-space:nowrap; }
.quiz-ans__elim { color:#b45309; font-size:11px; font-weight:600; margin-left:4px; }
.quiz-ans__obs { color:#475569; font-size:12px; margin-top:2px; font-style:italic; }

.dec-state { display:flex; gap:10px; align-items:flex-start; padding:10px; border-radius:8px; font-size:13.5px; }
.dec-state i { font-size:20px; line-height:1; }
.dec-state--ok { background:#ecfdf5; border:1px solid #a7f3d0; color:#065f46; }
.dec-state--no { background:#fef2f2; border:1px solid #fecaca; color:#991b1b; }
.dec-warn { color:#b45309; font-size:12.5px; margin:6px 0 0; }

/* ===== Cards agrupados do dashboard (Slide 2 — Novas Func. 03/06) ===== */
.rh-group { background:#fff; border:1px solid var(--rh-border,#e5e7eb); border-radius:14px; padding:14px 16px; height:100%;
    box-shadow:0 1px 2px rgba(16,24,40,.04); }
.rh-group__title { display:flex; align-items:center; gap:8px; font-weight:700; font-size:13.5px; color:var(--mm-navy,#0a2540);
    padding-bottom:10px; margin-bottom:6px; border-bottom:1px solid #f1f5f9; }
.rh-group__title i { color:var(--mm-cyan-dark,#0660B0); }
.rh-group__plan, .rh-group__title .rh-group__plan { margin-left:auto; font-size:11px; font-weight:700; color:var(--mm-cyan-dark);
    background:var(--mm-cyan-soft,#e6f9fd); border:1px solid #b9eaf3; padding:2px 8px; border-radius:999px; }
.rh-group__row { display:flex; align-items:center; gap:10px; padding:7px 0; border-bottom:1px dashed #f1f5f9; }
.rh-group__row:last-child { border-bottom:0; }
.rh-group__ic { width:30px; height:30px; flex:0 0 30px; display:flex; align-items:center; justify-content:center;
    border-radius:8px; background:#f1f5f9; color:#475569; font-size:15px; }
.rh-group__lbl { flex:1; min-width:0; overflow-wrap:anywhere; font-size:13px; color:#334155; }
.rh-group__tag { font-style:normal; font-size:10.5px; font-weight:600; color:#94a3b8; background:#f1f5f9; padding:1px 6px; border-radius:999px; margin-left:4px; }
.rh-group__val { font-weight:700; font-size:15px; color:var(--mm-navy,#0a2540); white-space:nowrap; }
.rh-group__row--ok     .rh-group__ic { background:#ecfdf5; color:#047857; } .rh-group__row--ok     .rh-group__val { color:#047857; }
.rh-group__row--danger .rh-group__ic { background:#fef2f2; color:#b91c1c; } .rh-group__row--danger .rh-group__val { color:#b91c1c; }
.rh-group__row--warn   .rh-group__ic { background:#fffbeb; color:#b45309; } .rh-group__row--warn   .rh-group__val { color:#b45309; }
.rh-group__row--muted  .rh-group__ic { background:#f8fafc; color:#94a3b8; } .rh-group__row--muted  .rh-group__val { color:#94a3b8; }
/* sub-linha (ex.: Mensalidades/Setup sob o mês na Previsão) — fonte menor, recuada, discreta */
.rh-group__row--sub { padding:2px 0 2px 18px; border-bottom:0; }
.rh-group__row--sub .rh-group__ic { width:20px; height:20px; flex:0 0 20px; font-size:11px; background:#f8fafc; color:#94a3b8; border-radius:6px; }
.rh-group__row--sub .rh-group__lbl { font-size:11px; color:#94a3b8; }
.rh-group__row--sub .rh-group__val { font-size:11.5px; font-weight:600; color:#64748b; }

/* Cards agrupados colapsáveis (clique no título abre/fecha). Fechado por padrão. */
.rh-group--collapsible { height:auto; }
.rh-group--collapsible > .rh-group__title { cursor:pointer; user-select:none; margin-bottom:0; }
.rh-group__caret { margin-left:auto; font-size:12px; opacity:.55; transition:transform .25s ease; }
.rh-group--collapsible.is-open > .rh-group__title { margin-bottom:6px; }
.rh-group--collapsible.is-open .rh-group__caret { transform:rotate(90deg); }
.rh-group--collapsible:not(.is-open) > .rh-group__title { border-bottom:0; padding-bottom:0; }
.rh-group__body { display:none; }
.rh-group--collapsible.is-open > .rh-group__body { display:block; }

/* barra de consumo uso/limite */
.rh-meter { padding:8px 0; border-bottom:1px dashed #f1f5f9; }
.rh-meter:last-of-type { border-bottom:0; }
.rh-meter__head { display:flex; justify-content:space-between; align-items:baseline; gap:8px; font-size:13px; color:#334155; }
.rh-meter__head > span { min-width:0; overflow-wrap:anywhere; }
.rh-meter__head b { font-weight:700; color:var(--mm-navy,#0a2540); flex:0 0 auto; white-space:nowrap; } .rh-meter__head small { color:#94a3b8; font-weight:600; }
.rh-meter__bar { height:7px; border-radius:999px; background:#eef2f7; overflow:hidden; margin:5px 0 3px; }
.rh-meter__bar i { display:block; height:100%; background:var(--mm-cyan,#0a84e0); border-radius:999px; }
.rh-meter__hint { font-size:11px; color:#94a3b8; }
.rh-meter.is-warn .rh-meter__bar i { background:#f59e0b; } .rh-meter.is-warn .rh-meter__hint { color:#b45309; }
.rh-meter.is-full .rh-meter__bar i { background:#ef4444; } .rh-meter.is-full .rh-meter__hint { color:#b91c1c; font-weight:600; }

/* atalhos rápidos do painel do cliente */
.rh-quick { display:flex; align-items:center; gap:10px; padding:10px 12px; border:1px solid var(--rh-border,#e5e7eb);
    border-radius:12px; text-decoration:none; color:var(--mm-navy,#0a2540); transition:.15s; height:100%; }
.rh-quick:hover { border-color:var(--mm-cyan,#0a84e0); box-shadow:0 2px 8px rgba(10,132,224,.12); transform:translateY(-1px); }
.rh-quick__ic { width:38px; height:38px; flex:0 0 38px; display:flex; align-items:center; justify-content:center; border-radius:10px;
    background:var(--mm-cyan-soft,#e6f9fd); color:var(--mm-cyan-dark,#0660B0); font-size:18px; }
.rh-quick b { display:block; font-size:13.5px; } .rh-quick small { display:block; color:#64748b; font-size:11.5px; }

/* ===== Cards de quantidade por status (tela de Candidatos) ===== */
/* Padrão 260723 (definido pelo dono): a régua é a linha de Vagas = 7 colunas
   iguais no desktop. Vagas (7 cards) fica sempre numa linha; telas com mais
   (Candidatos 12+) quebram em 2+ linhas com o MESMO tamanho de card.
   Tela menor = menos colunas (5/4/3/2/1) — ver media queries no fim do bloco. */
.cand-statgrid { display:grid; grid-template-columns:repeat(7,1fr); gap:13px; margin-bottom:18px; }
.cand-stat { position:relative; overflow:hidden; display:flex; flex-direction:column; align-items:flex-start; gap:3px; background:var(--cand-c,#0a84e0); color:#fff; border:0;
    border-radius:12px; padding:10px 12px; box-shadow:0 8px 22px -12px rgba(8,30,50,.40); }
.cand-stat__ic { position:absolute; right:10px; top:9px; font-size:20px; color:#fff; opacity:.28; }
.cand-stat__n { font-size:20px; font-weight:800; line-height:1; color:#fff; }
.cand-stat__l { font-size:10.5px; color:#fff; opacity:.92; font-weight:600; text-transform:uppercase; letter-spacing:.03em; }
.cand-stat--total  { --cand-c:#0a84e0; }
.cand-stat--ok     { --cand-c:#10b981; }
.cand-stat--danger { --cand-c:#ef4444; }
.cand-stat--warn   { --cand-c:#f59e0b; }
.cand-stat--info   { --cand-c:#0ea5e9; }
/* Barra de filtros (empresa/vaga/status) das Candidaturas em PRETO/BRANCO */
.cand-filtro .rh-label { color:#fff; }
/* cards de status clicáveis (filtram a lista) */
a.cand-stat { text-decoration:none; cursor:pointer; transition:box-shadow .15s ease, transform .12s ease, border-color .15s ease; }
a.cand-stat:hover { box-shadow:0 4px 12px rgba(16,24,40,.10); transform:translateY(-1px); }
.cand-stat.is-active { box-shadow:0 0 0 3px rgba(255,255,255,.75) inset, 0 6px 16px -8px rgba(8,30,50,.45); }
/* Linhas de subtotal (por consultoria) e total geral na lista de clientes (Master) */
.rh-cli-tot td { background:#f8fafc; border-top:1px solid var(--rh-border,#e5e7eb); }
.rh-cli-tot--grand td { background:#eef4fb; border-top:2px solid var(--mm-cyan-dark,#0660B0); }
.rh-autohdr td { background:#f8fafc; border-top:1px solid var(--rh-border,#e5e7eb); }
.rh-totchip { display:inline-flex; align-items:center; gap:4px; background:#fff; border:1px solid var(--rh-border,#e5e7eb); border-radius:999px; padding:2px 9px; font-size:11px; color:#475569; margin:2px 4px 2px 0; }
.rh-totchip b { color:var(--mm-navy,#0a2540); font-weight:800; }

/* =====================================================================
 * PADRÃO GERAL (2026-06-03) — cards compactos, barra de lista, filtro,
 * erro de campo e checklist de senha. Reutilizável em todo o sistema.
 * ===================================================================== */

/* Cards compactos por status (mesma linguagem visual dos candidatos).
   Padrão 260723: grade fixa de 7 colunas (mesmo tamanho da linha de Vagas). */
.rh-statgrid { display:grid; grid-template-columns:repeat(7,1fr); gap:13px; margin-bottom:18px; }
.rh-mstat { position:relative; overflow:hidden; display:flex; flex-direction:column; align-items:flex-start; gap:3px; background:var(--mstat-c,#0a84e0); color:#fff; border:0;
    border-radius:12px; padding:10px 12px; box-shadow:0 8px 22px -12px rgba(8,30,50,.40); }
.rh-mstat__ic { position:absolute; right:10px; top:9px; font-size:20px; color:#fff; opacity:.28; }
.rh-mstat__n  { font-size:20px; font-weight:800; line-height:1; color:#fff; }
.rh-mstat__l  { font-size:10.5px; color:#fff; opacity:.92; font-weight:600; text-transform:uppercase; letter-spacing:.03em; }
.rh-mstat--total  { --mstat-c:var(--mm-cyan,#0a84e0); }
.rh-mstat--ok     { --mstat-c:#16a34a; }
.rh-mstat--danger { --mstat-c:#ef4444; }
.rh-mstat--warn   { --mstat-c:#f59e0b; }
.rh-mstat--info   { --mstat-c:#0ea5e9; }
.rh-mstat--muted  { --mstat-c:#94a3b8; }
.rh-mstat--accent { --mstat-c:#7c3aed; }
.rh-mstat--dark   { --mstat-c:#000; }
.rh-mstat--dark .rh-mstat__ic { color:var(--mm-cyan); opacity:.55; }
/* Statcards clicáveis (filtro por cartão) */
.rh-stathint { display:flex; align-items:center; gap:7px; font-size:12.5px; color:var(--rh-muted); margin-bottom:8px; }
.rh-stathint i { color:var(--mm-cyan-dark); }
.rh-mstat.is-filterable { cursor:pointer; transition:transform .1s ease, box-shadow .15s ease; }
.rh-mstat.is-filterable:hover { transform:translateY(-2px); }
.rh-mstat.is-active { outline:3px solid rgba(255,255,255,.9); outline-offset:-2px; box-shadow:0 12px 28px -10px rgba(8,30,50,.6); }

/* =====================================================================
 * BLOCOS DE CONTADORES (dono, 05/08/2026) — a linguagem que nasceu na lista de Vagas
 * e o dono pediu para valer em todo o sistema: *"ficou uma visão clean, bem elegante"*.
 *
 * Antes: fileiras de cartões coloridos grandes, um por número. Vinte deles na tela de Vagas.
 * Agora: um CARTÃO BRANCO por assunto, com os números pequenos dentro. A cor sobrevive como
 * uma barra fina à esquerda de cada contador — informa sem gritar.
 *
 * Usado por: partials/statcards (14 telas), lista de Vagas, lista de Clientes e os 4 dashboards.
 * ===================================================================== */
.rh-blocos { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:13px; margin-bottom:16px; }
.rh-bloco { background:#fff; border:1px solid var(--rh-line,#e9eef3); border-radius:14px; overflow:hidden;
    box-shadow:0 1px 2px rgba(8,30,50,.05); display:flex; flex-direction:column; }
.rh-bloco__h { display:flex; align-items:center; gap:7px; padding:9px 13px; font-size:12px; font-weight:800;
    letter-spacing:.04em; text-transform:uppercase; color:var(--mm-navy,#011126); background:#f7fafc;
    border-bottom:1px solid var(--rh-line,#e9eef3); }
.rh-bloco__h .bi { color:var(--mm-cyan-dark,#006F93); }
.rh-bloco__tot { margin-left:auto; background:var(--mm-navy,#011126); color:#fff; border-radius:99px;
    padding:1px 10px; font-size:12.5px; font-weight:800; border:0; font-family:inherit; }
button.rh-bloco__tot, a.rh-bloco__tot { cursor:pointer; }
button.rh-bloco__tot:hover, a.rh-bloco__tot:hover { background:var(--mm-cyan-dark,#006F93); }
a.rh-bloco__tot, a.rh-bloco__tot:hover { color:#fff; text-decoration:none; }
/* Total com filtro ativo: mostra que dá para clicar para limpar. */
.rh-bloco__tot--link { background:var(--mm-cyan-dark,#006F93); }
.rh-bloco__b { padding:10px 12px; display:flex; flex-wrap:wrap; gap:7px; flex:1; align-content:flex-start; }
.rh-bloco__vazio { color:#8aa0b2; font-size:13px; margin:2px 0; }

/* mini-contador: número + rótulo, com a cor do assunto na barra da esquerda */
.rh-mini { display:flex; align-items:baseline; gap:7px; border:1px solid var(--rh-line,#e9eef3);
    border-left:3px solid var(--c,#94a3b8); background:#fff; border-radius:9px; padding:5px 10px 5px 8px;
    font:inherit; text-align:left; transition:background .15s, border-color .15s, transform .12s; }
button.rh-mini, .rh-mini[role="button"], a.rh-mini { cursor:pointer; }
button.rh-mini:hover, .rh-mini[role="button"]:hover, a.rh-mini:hover { background:#f7fafc; transform:translateY(-1px); }
/* Atalho dentro de um bloco de contadores: parece contador, mas leva para outra tela. */
a.rh-mini, a.rh-mini:hover { text-decoration:none; }
.rh-mini--link .rh-mini__n .bi { color:var(--c,#94a3b8); }
.rh-mini.is-on { background:#eef6fa; border-color:var(--c,#94a3b8); }
.rh-mini__n { font-size:16px; font-weight:800; color:var(--rh-ink,#0c1c2b); font-variant-numeric:tabular-nums; line-height:1; }
.rh-mini__l { font-size:12px; color:var(--rh-muted,#5c7286); white-space:nowrap; }
.rh-mini__l .bi { color:var(--c,#94a3b8); margin-right:2px; }

/* dois números grandes lado a lado (ex.: "Ativas: 9 vagas / 4 empresas") */
.rh-bloco__b--duo { display:grid; grid-template-columns:1fr 1fr; gap:10px; align-content:center; }
.rh-big { text-align:center; }
.rh-big__n { display:block; font-size:30px; font-weight:800; line-height:1.05; color:var(--rh-ink,#0c1c2b); font-variant-numeric:tabular-nums; }
.rh-big__l { display:block; font-size:11px; color:var(--rh-muted,#5c7286); margin-top:3px; line-height:1.25; }
.rh-bloco--ok  .rh-bloco__h { background:#f0fdf4; color:#14532d; border-bottom-color:#bbf7d0; }
.rh-bloco--ok  .rh-bloco__h .bi, .rh-bloco--ok .rh-big__n { color:#15803d; }
.rh-bloco--off .rh-bloco__h { background:#f8fafc; color:#334155; }
.rh-bloco--off .rh-bloco__h .bi, .rh-bloco--off .rh-big__n { color:#64748b; }
.rh-bloco--warn .rh-bloco__h { background:#fffbeb; color:#78350f; border-bottom-color:#fde68a; }
.rh-bloco--warn .rh-bloco__h .bi, .rh-bloco--warn .rh-big__n { color:#b45309; }

/* Barra de lista: pesquisa à esquerda, ações à direita */
.rh-listbar { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:12px; }
.rh-listbar__grow { flex:1 1 260px; min-width:220px; }
.rh-listbar__actions { display:flex; gap:8px; flex-wrap:wrap; }
.rh-search { position:relative; }
.rh-search .bi { position:absolute; left:12px; top:50%; transform:translateY(-50%); color:#94a3b8; font-size:15px; pointer-events:none; }
.rh-search input { width:100%; height:40px; padding:0 14px 0 36px; border:1px solid var(--rh-border,#e5e7eb);
    border-radius:10px; background:#fff; font-size:14px; color:var(--rh-text,#0f172a); }
.rh-search input:focus { outline:none; border-color:var(--mm-cyan,#0a84e0); box-shadow:0 0 0 3px rgba(10,132,224,.15); }

/* Erro de campo inline (validação client) */
.rh-field-err { color:#dc2626; font-size:12px; font-weight:600; margin-top:4px; }
.is-invalid { border-color:#dc2626 !important; }
.is-invalid:focus { box-shadow:0 0 0 3px rgba(220,38,38,.15) !important; }

/* Checklist de senha forte */
.rh-pass-checks { display:flex; flex-wrap:wrap; gap:6px; margin-top:6px; }
.rh-pass-checks span { font-size:11px; font-weight:600; color:#94a3b8; background:#f1f5f9; border:1px solid #e5e7eb;
    border-radius:999px; padding:2px 8px; }
.rh-pass-checks span::before { content:"○ "; }
.rh-pass-checks span.ok { color:#047857; background:#ecfdf5; border-color:#a7f3d0; }
.rh-pass-checks span.ok::before { content:"✓ "; }

/* Mini-medidores de uso do plano (coluna "Uso do plano" em listas) */
.rh-use { display:flex; flex-wrap:wrap; gap:6px; }
.rh-use__i { display:flex; flex-direction:column; gap:2px; min-width:56px; }
.rh-use__l { font-size:9.5px; font-weight:700; text-transform:uppercase; letter-spacing:.02em; color:#94a3b8; }
.rh-use__v { font-size:11.5px; font-weight:700; color:var(--mm-navy,#0a2540); white-space:nowrap; }
.rh-use__b { height:4px; border-radius:999px; background:#eef2f7; overflow:hidden; }
.rh-use__b i { display:block; height:100%; background:var(--mm-cyan,#0a84e0); border-radius:999px; }
.rh-use__i--warn .rh-use__b i { background:#f59e0b; } .rh-use__i--warn .rh-use__v { color:#b45309; }
.rh-use__i--full .rh-use__b i { background:#ef4444; } .rh-use__i--full .rh-use__v { color:#b91c1c; }
.rh-use__i--soon .rh-use__v { color:#94a3b8; font-weight:600; }

/* Variante de cards compactos p/ valores monetários (texto mais longo) */
.rh-statgrid--money .rh-mstat__n { font-size:14px; }

/* Rótulo nunca estoura o card (nome completo no tooltip). */
.rh-mstat__l, .cand-stat__l { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%; }

/* Menos colunas conforme a tela diminui (padrão 260723). */
@media (max-width:1100px){ .rh-statgrid, .cand-statgrid { grid-template-columns:repeat(5,1fr); } }
@media (max-width:900px) { .rh-statgrid, .cand-statgrid { grid-template-columns:repeat(4,1fr); } }
@media (max-width:768px) { .rh-statgrid, .cand-statgrid { grid-template-columns:repeat(3,1fr); } }
@media (max-width:560px) { .rh-statgrid, .cand-statgrid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:360px) { .rh-statgrid, .cand-statgrid { grid-template-columns:1fr; } }

/* Ícone de ação "redefinir senha" (padrão de ações) */
.rh-iconbtn--key { color:#b45309; border-color:#fde68a; } .rh-iconbtn--key:hover { background:#d97706; color:#fff; }

/* =====================================================================
 * PADRÃO DE CARDS COLORIDOS (2026-06-03) — cabeçalho em tom pastel +
 * borda superior colorida, para separar visualmente seções nos CRUDs
 * (visualização / edição / cadastro). Aplicar .rh-card--<cor> no .rh-card.
 * ===================================================================== */
.rh-card { overflow: hidden; }
.rh-card__header { background: #f8fafc; }           /* tom sutil padrão */

/* helper p/ aplicar em qualquer header (quando o card não é .rh-card) */
.rh-cardhead { display:flex; align-items:center; justify-content:space-between;
    padding:14px 18px; border-bottom:1px solid var(--rh-border,#e5e7eb); background:#f8fafc; }

/* variantes — fundo pastel no header, borda-topo colorida, título colorido */
.rh-card--dark   { border-top:3px solid #000; }
.rh-card--dark   > .rh-card__header { background:#000; border-bottom-color:#000; }
.rh-card--dark   > .rh-card__header .rh-card__title,
.rh-card--dark   > .rh-card__header .rh-card__title i { color:#fff; }
.rh-card--cyan   { border-top:3px solid #06b6d4; }
.rh-card--cyan   > .rh-card__header { background:#ecfeff; border-bottom-color:#bae6fd; }
.rh-card--cyan   > .rh-card__header .rh-card__title,
.rh-card--cyan   > .rh-card__header .rh-card__title i { color:#0e7490; }

.rh-card--green  { border-top:3px solid #10b981; }
.rh-card--green  > .rh-card__header { background:#ecfdf5; border-bottom-color:#a7f3d0; }
.rh-card--green  > .rh-card__header .rh-card__title,
.rh-card--green  > .rh-card__header .rh-card__title i { color:#047857; }

.rh-card--blue   { border-top:3px solid #3b82f6; }
.rh-card--blue   > .rh-card__header { background:#eff6ff; border-bottom-color:#bfdbfe; }
.rh-card--blue   > .rh-card__header .rh-card__title,
.rh-card--blue   > .rh-card__header .rh-card__title i { color:#1d4ed8; }

.rh-card--amber  { border-top:3px solid #f59e0b; }
.rh-card--amber  > .rh-card__header { background:#fffbeb; border-bottom-color:#fde68a; }
.rh-card--amber  > .rh-card__header .rh-card__title,
.rh-card--amber  > .rh-card__header .rh-card__title i { color:#b45309; }

.rh-card--purple { border-top:3px solid #8b5cf6; }
.rh-card--purple > .rh-card__header { background:#f5f3ff; border-bottom-color:#ddd6fe; }
.rh-card--purple > .rh-card__header .rh-card__title,
.rh-card--purple > .rh-card__header .rh-card__title i { color:#6d28d9; }

.rh-card--red    { border-top:3px solid #ef4444; }
.rh-card--red    > .rh-card__header { background:#fef2f2; border-bottom-color:#fecaca; }
.rh-card--red    > .rh-card__header .rh-card__title,
.rh-card--red    > .rh-card__header .rh-card__title i { color:#b91c1c; }

.rh-card--teal   { border-top:3px solid #14b8a6; }
.rh-card--teal   > .rh-card__header { background:#f0fdfa; border-bottom-color:#99f6e4; }
.rh-card--teal   > .rh-card__header .rh-card__title,
.rh-card--teal   > .rh-card__header .rh-card__title i { color:#0f766e; }

.rh-card--pink   { border-top:3px solid #ec4899; }
.rh-card--pink   > .rh-card__header { background:#fdf2f8; border-bottom-color:#fbcfe8; }
.rh-card--pink   > .rh-card__header .rh-card__title,
.rh-card--pink   > .rh-card__header .rh-card__title i { color:#be185d; }

.rh-card--slate  { border-top:3px solid #64748b; }
.rh-card--slate  > .rh-card__header { background:#f8fafc; border-bottom-color:#e2e8f0; }
.rh-card--slate  > .rh-card__header .rh-card__title,
.rh-card--slate  > .rh-card__header .rh-card__title i { color:#334155; }

/* =====================================================================
 * PADRONIZAÇÃO 2026-07-04 (pedido do Paulo — perfil de cliente não curte
 * as cores): cabeçalho de TODOS os cards coloridos vira PRETO (mesmo tom do
 * card "Vagas que se candidatou": #011126, título branco, ícone accent ciano).
 * Vale p/ create/edit/visualizar de todos os cadastros. Uma única fonte.
 * ===================================================================== */
.rh-card--cyan, .rh-card--green, .rh-card--blue, .rh-card--amber, .rh-card--purple,
.rh-card--red, .rh-card--teal, .rh-card--pink, .rh-card--slate {
    border-top-color: #011126;
}
.rh-card--cyan   > .rh-card__header, .rh-card--green  > .rh-card__header,
.rh-card--blue   > .rh-card__header, .rh-card--amber  > .rh-card__header,
.rh-card--purple > .rh-card__header, .rh-card--red    > .rh-card__header,
.rh-card--teal   > .rh-card__header, .rh-card--pink   > .rh-card__header,
.rh-card--slate  > .rh-card__header {
    background: #011126;
    border-bottom-color: rgba(255,255,255,.10);
    color: #e2e8f0;
}
.rh-card--cyan   > .rh-card__header .rh-card__title, .rh-card--green  > .rh-card__header .rh-card__title,
.rh-card--blue   > .rh-card__header .rh-card__title, .rh-card--amber  > .rh-card__header .rh-card__title,
.rh-card--purple > .rh-card__header .rh-card__title, .rh-card--red    > .rh-card__header .rh-card__title,
.rh-card--teal   > .rh-card__header .rh-card__title, .rh-card--pink   > .rh-card__header .rh-card__title,
.rh-card--slate  > .rh-card__header .rh-card__title {
    color: #fff;
}
.rh-card--cyan   > .rh-card__header .rh-card__title i, .rh-card--green  > .rh-card__header .rh-card__title i,
.rh-card--blue   > .rh-card__header .rh-card__title i, .rh-card--amber  > .rh-card__header .rh-card__title i,
.rh-card--purple > .rh-card__header .rh-card__title i, .rh-card--red    > .rh-card__header .rh-card__title i,
.rh-card--teal   > .rh-card__header .rh-card__title i, .rh-card--pink   > .rh-card__header .rh-card__title i,
.rh-card--slate  > .rh-card__header .rh-card__title i {
    color: #00B6D6;
}

/* pílula de status no hero do cliente */
.rh-hero-status { display:inline-flex; align-items:center; gap:5px; font-weight:700; font-size:12px;
    padding:3px 10px; border-radius:999px; background:rgba(255,255,255,.9); }
.rh-hero-status--ok   { color:#047857; }
.rh-hero-status--off  { color:#b45309; }
.rh-hero-status--bad  { color:#b91c1c; }
.rh-hero-status .bi { font-size:9px; }

/* Cores por aba na EDIÇÃO de cliente e por passo no CADASTRO (wizard) */
[data-panel="empresa"]      > .rh-card { border-top:3px solid #3b82f6; }
[data-panel="responsaveis"] > .rh-card { border-top:3px solid #14b8a6; }
[data-panel="cnae"]         > .rh-card { border-top:3px solid #10b981; }
[data-panel="visual"]       .rh-card  { border-top:3px solid #ec4899; }
[data-panel="plano"]        > .rh-card { border-top:3px solid #8b5cf6; }
[data-panel="faturamento"]  > .rh-card { border-top:3px solid #f59e0b; }
[data-step-panel="1"] > .rh-card { border-top:3px solid #3b82f6; }
[data-step-panel="2"] > .rh-card { border-top:3px solid #8b5cf6; }
[data-step-panel="3"] > .rh-card { border-top:3px solid #10b981; }
[data-step-panel="4"] > .rh-card { border-top:3px solid #ec4899; }

/* Destaque maior: header pastel + título colorido por aba/passo (tira o "tudo branco") */
[data-panel="empresa"]      > .rh-card > .rh-card__header { background:#eff6ff; }
[data-panel="empresa"]      > .rh-card > .rh-card__header .rh-card__title { color:#1d4ed8; }
[data-panel="responsaveis"] > .rh-card > .rh-card__header { background:#effcfa; }
[data-panel="responsaveis"] > .rh-card > .rh-card__header .rh-card__title { color:#0f766e; }
[data-panel="cnae"]         > .rh-card > .rh-card__header { background:#ecfdf5; }
[data-panel="cnae"]         > .rh-card > .rh-card__header .rh-card__title { color:#047857; }
[data-panel="visual"]         .rh-card > .rh-card__header { background:#fdf2f8; }
[data-panel="visual"]         .rh-card > .rh-card__header .rh-card__title { color:#be185d; }
[data-panel="plano"]        > .rh-card > .rh-card__header { background:#f5f3ff; }
[data-panel="plano"]        > .rh-card > .rh-card__header .rh-card__title { color:#6d28d9; }
[data-panel="faturamento"]  > .rh-card > .rh-card__header { background:#fffbeb; }
[data-panel="faturamento"]  > .rh-card > .rh-card__header .rh-card__title { color:#b45309; }
[data-step-panel] > .rh-card > .rh-card__header { background:#f8fafc; }

/* #2 — o respiro acima dos painéis agora é o margin-bottom da barra .rh-tabs.
   Estes painéis (form próprio, fora do form principal) não precisam de margin-top extra
   (senão somava com o gap das abas → "salto" entre abas). */

/* Cores por aba — Minha Empresa (cliente).
   conta/visual têm <form> entre o painel e o .rh-card → usar descendente, não filho (>). */
[data-panel="conta"]        .rh-card { border-top:3px solid #06b6d4; }
[data-panel="conta"]        .rh-card > .rh-card__header { background:#ecfeff; }
[data-panel="conta"]        .rh-card > .rh-card__header .rh-card__title { color:#0e7490; }
[data-panel="mensalidades"] > .rh-card { border-top:3px solid #f59e0b; }
[data-panel="mensalidades"] > .rh-card > .rh-card__header { background:#fffbeb; }
[data-panel="mensalidades"] > .rh-card > .rh-card__header .rh-card__title { color:#b45309; }
/* Form de Vagas: cada aba usa rh-card--COLOR (borda + cabeçalho coloridos),
   alinhado às cores da tela de visualização (show.php). */

/* Cards de seção coloridos no cadastro/editar de cliente — tira o "tudo branco".
   Classe dupla (.rh-sec.rh-sec--KEY) p/ vencer as regras genéricas de aba/passo
   ([data-step-panel] > .rh-card > .rh-card__header e [data-panel=...] equivalentes). */
.rh-sec { margin-bottom: 14px; }
.rh-sec > .rh-card__header { padding: 12px 18px; }
.rh-sec > .rh-card__header .rh-card__title { font-size: 13.5px; display:flex; align-items:center; gap:8px; }
.rh-sec.rh-sec--empresa     { border-top:3px solid #3b82f6; }
.rh-sec.rh-sec--empresa     > .rh-card__header { background:#eff6ff; }
.rh-sec.rh-sec--empresa     > .rh-card__header .rh-card__title { color:#1d4ed8; }
.rh-sec.rh-sec--fiscais     { border-top:3px solid #f59e0b; }
.rh-sec.rh-sec--fiscais     > .rh-card__header { background:#fffbeb; }
.rh-sec.rh-sec--fiscais     > .rh-card__header .rh-card__title { color:#b45309; }
.rh-sec.rh-sec--operacao    { border-top:3px solid #8b5cf6; }
.rh-sec.rh-sec--operacao    > .rh-card__header { background:#f5f3ff; }
.rh-sec.rh-sec--operacao    > .rh-card__header .rh-card__title { color:#6d28d9; }
.rh-sec.rh-sec--contato     { border-top:3px solid #06b6d4; }
.rh-sec.rh-sec--contato     > .rh-card__header { background:#ecfeff; }
.rh-sec.rh-sec--contato     > .rh-card__header .rh-card__title { color:#0e7490; }
.rh-sec.rh-sec--endereco    { border-top:3px solid #10b981; }
.rh-sec.rh-sec--endereco    > .rh-card__header { background:#ecfdf5; }
.rh-sec.rh-sec--endereco    > .rh-card__header .rh-card__title { color:#047857; }
.rh-sec.rh-sec--responsavel { border-top:3px solid #14b8a6; }
.rh-sec.rh-sec--responsavel > .rh-card__header { background:#effcfa; }
.rh-sec.rh-sec--responsavel > .rh-card__header .rh-card__title { color:#0f766e; }
.rh-sec.rh-sec--socios      { border-top:3px solid #ec4899; }
.rh-sec.rh-sec--socios      > .rh-card__header { background:#fdf2f8; }
.rh-sec.rh-sec--socios      > .rh-card__header .rh-card__title { color:#be185d; }
.rh-sec.rh-sec--cnae        { border-top:3px solid #6366f1; }
.rh-sec.rh-sec--cnae        > .rh-card__header { background:#eef2ff; }
.rh-sec.rh-sec--cnae        > .rh-card__header .rh-card__title { color:#4338ca; }

/* Variantes de cor para os cards agrupados (.rh-group) dos dashboards */
.rh-group--cyan   { border-top:3px solid #06b6d4; } .rh-group--cyan   .rh-group__title { color:#0e7490; border-bottom-color:#bae6fd; } .rh-group--cyan   .rh-group__title i { color:#0e7490; }
.rh-group--green  { border-top:3px solid #10b981; } .rh-group--green  .rh-group__title { color:#047857; border-bottom-color:#a7f3d0; } .rh-group--green  .rh-group__title i { color:#047857; }
.rh-group--blue   { border-top:3px solid #3b82f6; } .rh-group--blue   .rh-group__title { color:#1d4ed8; border-bottom-color:#bfdbfe; } .rh-group--blue   .rh-group__title i { color:#1d4ed8; }
.rh-group--amber  { border-top:3px solid #f59e0b; } .rh-group--amber  .rh-group__title { color:#b45309; border-bottom-color:#fde68a; } .rh-group--amber  .rh-group__title i { color:#b45309; }
.rh-group--purple { border-top:3px solid #8b5cf6; } .rh-group--purple .rh-group__title { color:#6d28d9; border-bottom-color:#ddd6fe; } .rh-group--purple .rh-group__title i { color:#6d28d9; }
.rh-group--teal   { border-top:3px solid #14b8a6; } .rh-group--teal   .rh-group__title { color:#0f766e; border-bottom-color:#99f6e4; } .rh-group--teal   .rh-group__title i { color:#0f766e; }
.rh-group--pink   { border-top:3px solid #ec4899; } .rh-group--pink   .rh-group__title { color:#be185d; border-bottom-color:#fbcfe8; } .rh-group--pink   .rh-group__title i { color:#be185d; }
.rh-group--slate  { border-top:3px solid #64748b; } .rh-group--slate  .rh-group__title { color:#475569; border-bottom-color:#cbd5e1; } .rh-group--slate  .rh-group__title i { color:#475569; }

/* Grade de cards do dashboard — 5 por linha (xl) → 9 cards = 5 em cima + 4 embaixo. Responsiva.
 * minmax(0,1fr) (e não 1fr=minmax(auto,1fr)): deixa a coluna encolher abaixo do conteúdo, senão
 * rótulos longos "esticam" a coluna e o Firefox não quebra a linha como o Chrome. */
.rh-cardgrid { display:grid; gap:14px; align-items:start; grid-template-columns:repeat(5,minmax(0,1fr)); }
@media (max-width:1399.98px){ .rh-cardgrid{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:991.98px){ .rh-cardgrid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:575.98px){ .rh-cardgrid{ grid-template-columns:minmax(0,1fr); } }

/* =====================================================================
 * Portal do CANDIDATO — seções (fc-section) com faixa de título colorida
 * (mesmo padrão pastel dos demais módulos). 2026-06-04
 * ===================================================================== */
.fc-section { margin-top: 18px; padding-top: 0; border-top: none; }
.fc-section__title {
    background: #f1f5f9; color: #334155; border-left: 4px solid #94a3b8;
    padding: 8px 12px; border-radius: 0 8px 8px 0; margin-bottom: 14px;
}
.fc-section__title i { color: inherit; }
.fc-section__title .fc-opt { color: inherit; opacity: .7; font-weight: 600; }

.fc-section--cyan   .fc-section__title { background:#ecfeff; color:#0e7490; border-left-color:#06b6d4; }
.fc-section--green  .fc-section__title { background:#ecfdf5; color:#047857; border-left-color:#10b981; }
.fc-section--blue   .fc-section__title { background:#eff6ff; color:#1d4ed8; border-left-color:#3b82f6; }
.fc-section--amber  .fc-section__title { background:#fffbeb; color:#b45309; border-left-color:#f59e0b; }
/* preto e branco: cabeçalho escuro com texto branco */
.fc-section--pb     .fc-section__title { background:#011126; color:#fff; border-left-color:#000; }
.fc-section--pb     .fc-section__title i { color:#fff; }
.fc-section--purple .fc-section__title { background:#f5f3ff; color:#6d28d9; border-left-color:#8b5cf6; }
.fc-section--teal   .fc-section__title { background:#f0fdfa; color:#0f766e; border-left-color:#14b8a6; }
.fc-section--pink   .fc-section__title { background:#fdf2f8; color:#be185d; border-left-color:#ec4899; }

/* =====================================================================
 * CRIAR CONTA — cada seção vira um CARTÃO com fundo (19/07).
 * Antes só a faixa do título tinha cor e o corpo ficava branco sobre
 * branco: o candidato não enxergava onde um assunto terminava e o outro
 * começava. Com o fundo suave, os campos (brancos) ganham contraste e
 * viram o ponto de foco natural.
 * ===================================================================== */
.fc-section{ background:#f4f6f8; border:1px solid #e3e8ee; border-radius:14px; padding:0 0 16px;
    margin-top:20px; overflow:hidden; box-shadow:0 1px 2px rgba(8,30,50,.04); }
.fc-section .fc-section__title{ margin:0 0 14px; border-radius:0; border-left-width:5px; padding:11px 14px; font-size:13.5px; }
.fc-section__body{ padding:0 14px; }
/* o campo branco sobre o fundo cinza-azulado é o que "chama" o preenchimento */
.fc-section__body .rh-input,
.fc-section__body .rh-input-group .rh-input{ background:#fff; }
.fc-section__body .rh-input:focus{ border-color:var(--mm-cyan-dark,#0660B0); box-shadow:0 0 0 3px rgba(6,96,176,.12); }
/* CINZA em tudo (decisão do dono 19/07): fundo neutro faz o campo BRANCO saltar como ponto
   de foco. A COR fica só no ícone do título — separa os assuntos sem competir com os campos.
   ⚠️ Este bloco precisa vir DEPOIS das regras .fc-section--cor acima: mesma especificidade,
   quem vem por último vence. */
.fc-section .fc-section__title{ background:#e9edf2; color:#334155; border-left-color:#9aa7b5; }
.fc-section--cyan   .fc-section__title i{ color:#0891b2 }
.fc-section--blue   .fc-section__title i{ color:#2563eb }
.fc-section--purple .fc-section__title i{ color:#7c3aed }
.fc-section--green  .fc-section__title i{ color:#059669 }
.fc-section--teal   .fc-section__title i{ color:#0d9488 }
.fc-section--amber  .fc-section__title i{ color:#d97706 }
.fc-section--pb     .fc-section__title{ background:#e9edf2; color:#334155 }
.fc-section--pb     .fc-section__title i{ color:#0f172a }

.fc-section--cyan, .fc-section--blue, .fc-section--purple, .fc-section--green,
.fc-section--teal, .fc-section--amber, .fc-section--pb, .fc-section--pink{
    background:#f4f6f8; border-color:#e3e8ee;
}
@media(max-width:575.98px){
    .fc-section{ border-radius:12px; padding-bottom:13px; margin-top:16px; }
    .fc-section .fc-section__title{ padding:10px 12px; font-size:12.5px; margin-bottom:12px; }
    .fc-section__body{ padding:0 11px; }
}

/* Ficha do criar-conta: cabeçalhos das seções em PRETO/BRANCO (padrão do sistema).
   Escopado em #ficha p/ não afetar outras telas do candidato (currículo, questionário, editar). */
#ficha .fc-section__title {
    background: #000;
    color: #fff;
    border-left-color: #000;
}
#ficha .fc-section__title i,
#ficha .fc-section__title .fc-opt {
    color: #fff;
}

/* Dashboard do candidato: realce nas candidaturas e placeholders */
.cand-app { border-left: 3px solid var(--mm-cyan, #06b6d4); }
.cand-soon { background:#f8fafc; border:1px dashed #cbd5e1; border-radius:12px; }

/* Portal público de vagas: faixa-topo colorida rotativa nos cards (2026-06-04) */
.vaga-grid > .vaga-card { border-top-width: 3px; }
.vaga-grid > .vaga-card:nth-child(7n+1) { border-top-color:#3b82f6; }
.vaga-grid > .vaga-card:nth-child(7n+2) { border-top-color:#06b6d4; }
.vaga-grid > .vaga-card:nth-child(7n+3) { border-top-color:#10b981; }
.vaga-grid > .vaga-card:nth-child(7n+4) { border-top-color:#f59e0b; }
.vaga-grid > .vaga-card:nth-child(7n+5) { border-top-color:#8b5cf6; }
.vaga-grid > .vaga-card:nth-child(7n+6) { border-top-color:#14b8a6; }
.vaga-grid > .vaga-card:nth-child(7n)   { border-top-color:#ec4899; }

/* =====================================================================
 * Gráficos simples em CSS (sem dependência) — dashboard. 2026-06-04
 * ===================================================================== */
.rh-charts { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:14px; }
.rh-chart { background:#fff; border:1px solid var(--rh-border,#e5e7eb); border-radius:14px; padding:14px 16px; box-shadow:0 1px 2px rgba(16,24,40,.04); }
.rh-chart__title { display:flex; align-items:center; gap:8px; font-weight:700; font-size:13.5px; color:var(--mm-navy,#0a2540);
    padding-bottom:10px; margin-bottom:8px; border-bottom:1px solid #f1f5f9; }
.rh-chart__title i { color:var(--mm-cyan-dark,#0660B0); }
.rh-chart__row { display:grid; grid-template-columns:118px 1fr auto; align-items:center; gap:10px; padding:5px 0; }
.rh-chart__lbl { font-size:12px; color:#475569; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rh-chart__track { height:13px; background:#eef2f7; border-radius:999px; overflow:hidden; }
.rh-chart__bar { height:100%; border-radius:999px; min-width:2px; transition:width .4s ease; }
.rh-chart__val { font-size:12.5px; font-weight:700; color:var(--mm-navy,#0a2540); white-space:nowrap; }
.rh-chart__divider { height:1px; background:var(--rh-border,#e5e7eb); margin:18px 0 14px; }
.rh-chart__caption { font-size:12px; color:#94a3b8; margin:-4px 0 12px; }

/* Gráfico de colunas (vertical) por semana — dashboard. 2026-06-04 */
.rh-vchart { display:flex; align-items:flex-end; justify-content:space-around; gap:6px; height:190px; padding:22px 6px 0; border-bottom:2px solid #eef2f7; }
.rh-vgroup { display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%; flex:1; }
.rh-vbars { display:flex; gap:4px; align-items:flex-end; height:100%; }
.rh-vbar { width:16px; border-radius:4px 4px 0 0; min-height:3px; position:relative; transition:height .4s ease; }
.rh-vbar__v { position:absolute; top:-15px; left:50%; transform:translateX(-50%); font-size:9px; font-weight:700; color:#475569; white-space:nowrap; }
.rh-vweek { font-size:11px; color:#64748b; margin-top:7px; font-weight:600; white-space:nowrap; }
.rh-vlegend { display:flex; gap:16px; justify-content:center; margin-top:12px; font-size:11.5px; color:#475569; }
.rh-vlegend span { display:inline-flex; align-items:center; gap:5px; }
.rh-vlegend i { width:11px; height:11px; border-radius:3px; display:inline-block; }

/* Gráfico de colunas — variante compacta (por dia) */
.rh-vchart--compact { gap:2px; padding-top:10px; height:150px; }
.rh-vchart--compact .rh-vbar { width:9px; }
.rh-vchart--compact .rh-vweek { font-size:9px; margin-top:4px; }

/* =====================================================================
 * MENU dinâmico (topo↔lateral) + dropdowns + hover (2026-06-04)
 * Paleta da marca (navy + ciano). PPTX mudança de menu.
 * ===================================================================== */

/* botão-toggle de grupo (igual a um item de nav) */
.rh-nav__toggle {
    display:flex; align-items:center; gap:12px; width:100%;
    padding:10px 12px; border:0; background:transparent; cursor:pointer;
    color:#cdd9e4; font-weight:500; font-size:14px; font-family:inherit;
    border-radius:var(--rh-radius-sm); position:relative;
    transition:background .2s, color .2s, transform .12s;
}
.rh-nav__toggle > span { flex:1; text-align:left; }
.rh-nav__caret { font-size:11px !important; opacity:.7; transition:transform .25s; }
.rh-nav__group.is-open > .rh-nav__toggle .rh-nav__caret { transform:rotate(180deg); }
.rh-nav__group.active-group > .rh-nav__toggle { color:#fff; }

/* submenu — modo lateral: acordeão */
.rh-nav__submenu { list-style:none; margin:2px 0 4px; padding:0;
    max-height:0; overflow:hidden; transition:max-height .28s ease; }
/* 17/08: era 320px e o submenu de Vagas cresceu (Parâmetros ganhou Modelos/Kits/Folha)
   — o que passava do teto sumia cortado no lateral e "fantasma" no topo. */
.rh-nav__group.is-open > .rh-nav__submenu { max-height:640px; }
.rh-nav__submenu .rh-nav__item > a { padding-left:42px; font-size:13px; }
.rh-nav__submenu .rh-nav__item .bi { font-size:14px; }

/* hover bem legal — acento ciano à esquerda (lateral) + leve deslize */
.rh-nav__item > a, .rh-nav__toggle { position:relative; }
.rh-nav__item > a::before {
    content:''; position:absolute; left:2px; top:50%; transform:translateY(-50%);
    width:3px; height:0; background:var(--mm-cyan); border-radius:2px; transition:height .22s; }
.rh-nav__item > a:hover::before { height:55%; }
.rh-nav__item.active > a::before { height:65%; }
.rh-nav__item > a:hover, .rh-nav__toggle:hover { background:rgba(10,132,224,.14); color:#fff; transform:translateX(2px); }

/* ===== MODO TOPO ===== */
html.nav-top .rh-shell {
    grid-template-columns:1fr;
    grid-template-rows:auto 1fr;
    grid-template-areas:"sidebar" "main";
}
html.nav-top .rh-sidebar {
    flex-direction:row; align-items:center; gap:2px;
    height:auto; position:sticky; top:0; z-index:30;
    overflow:visible; border-right:0;
    border-bottom:1px solid rgba(255,255,255,.10);
    padding:0 14px;
}
/* logo aparece no início da barra (antes do Dashboard) */
html.nav-top .rh-sidebar__brand {
    height:auto; padding:0 8px 0 0; border-bottom:0; background:transparent; flex:0 0 auto;
}
/* No modo TOP o Master troca o wordmark largo pelo robô (selo quadrado) — ocupa muito menos
   largura e padroniza com o selo do Cliente. Fora do modo TOP, segue o wordmark. */
.rh-sidebar__brand .rh-brand-mark { display:none; }   /* lateral: só o wordmark */
html.nav-top .rh-sidebar__brand .rh-brand-full { display:none; }
html.nav-top .rh-sidebar__brand .rh-brand-mark {
    display:block; height:30px; width:30px; object-fit:contain;
    background:#fff; border-radius:8px; padding:3px; border:1px solid var(--rh-border);
}
html.nav-top .rh-sidebar__brand--cliente .rh-sidebar__nome { display:none; }
/* Cliente/Consultoria no modo TOP: logo compacto em caixa BRANCA (igual ao selo do Master).
   Sem isto, um logo horizontal fica grande demais (46px→~220px) e some no fundo escuro da barra. */
html.nav-top .rh-sidebar__brand--cliente { padding:0; }
html.nav-top .rh-sidebar__brand--cliente .rh-sidebar__logo {
    height:30px; width:auto; max-width:150px;
    background:#fff; border-radius:8px; padding:3px 6px; border:1px solid var(--rh-border);
    object-fit:contain;
}
html.nav-top .rh-sidebar__footer { display:none; }
/* min-width:0 + flex-wrap garantem que o menu QUEBRA em 2 linhas se não couber,
   em vez de empurrar a barra além da largura da tela (sem barra de rolagem horizontal). */
/* overflow:visible desfaz a rolagem do modo lateral — aqui os submenus abrem PRA FORA da barra. */
html.nav-top .rh-nav--main { flex-direction:row; align-items:center; padding:6px 0; gap:2px; flex:1 1 auto; min-width:0; flex-wrap:wrap; overflow:visible; min-height:auto; }
html.nav-top .rh-nav__item > a, html.nav-top .rh-nav__toggle { padding:8px 9px; gap:7px; font-size:13px; white-space:nowrap; }
html.nav-top .rh-nav__item .bi { font-size:15px; }
html.nav-top .rh-nav__item > a:hover, html.nav-top .rh-nav__toggle:hover { transform:none; }
/* no topo o acento vira sublinhado animado */
html.nav-top .rh-nav__item > a::before { display:none; }
html.nav-top .rh-nav__item > a::after, html.nav-top .rh-nav__toggle::after {
    content:''; position:absolute; left:14px; right:14px; bottom:5px; height:2px;
    background:var(--mm-cyan); border-radius:2px; transform:scaleX(0); transform-origin:left; transition:transform .22s; }
html.nav-top .rh-nav__item > a:hover::after,
html.nav-top .rh-nav__toggle:hover::after,
html.nav-top .rh-nav__item.active > a::after,
html.nav-top .rh-nav__group.active-group > .rh-nav__toggle::after { transform:scaleX(1); }

/* dropdown flutuante no topo */
html.nav-top .rh-nav__group { position:relative; }
html.nav-top .rh-nav__submenu {
    position:absolute; top:calc(100% + 6px); left:0; min-width:212px;
    background:var(--mm-navy-2,#103A86); border:1px solid rgba(255,255,255,.10);
    border-radius:12px; padding:6px; box-shadow:0 16px 38px rgba(0,0,0,.45);
    max-height:none; overflow:visible; margin:0;
    opacity:0; visibility:hidden; transform:translateY(-6px);
    transition:opacity .18s, transform .18s, visibility .18s; }
html.nav-top .rh-nav__group.is-open > .rh-nav__submenu { opacity:1; visibility:visible; transform:translateY(0); max-height:none; }
html.nav-top .rh-nav__submenu .rh-nav__item > a { padding-left:14px; }

/* ===== Header: ícones de comunicação + separador + toggle de menu ===== */
.rh-header__sep { width:1px; height:22px; background:var(--rh-border,#e5e7eb); margin:0 4px; }
.rh-ico--wa:hover   { color:#25D366 !important; background:rgba(37,211,102,.14) !important; }
.rh-ico--mail:hover { color:#2563eb !important; background:rgba(37,99,235,.14) !important; }
.rh-ico--sms:hover  { color:#7c3aed !important; background:rgba(124,58,237,.14) !important; }
.rh-header__navpos:hover { color:var(--mm-cyan-dark) !important; background:var(--mm-cyan-soft,#e6f9fd) !important; }
html.nav-top .rh-header__navpos { color:var(--mm-cyan-dark); background:var(--mm-cyan-soft,#e6f9fd); }

/* Kit Admissional — upload pelo candidato (painel do candidato) */
.kit-docs { display:flex; flex-direction:column; gap:8px; }
.kit-doc { display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:12px;
    padding:10px 12px; border:1px solid var(--rh-border,#e5e7eb); border-radius:10px; background:#fff; }
.kit-doc__name { font-size:13.5px; color:var(--mm-navy,#0a2540); font-weight:600; }
.kit-doc__form { display:flex; align-items:center; gap:8px; }
.kit-doc__file { max-width:200px; padding:5px 8px; font-size:12px; }
@media (max-width:640px){ .kit-doc{ grid-template-columns:1fr; } .kit-doc__file{ max-width:none; } }

/* === Ferramentas (ícones + usuário) na barra do menu (cor da marca) 2026-06-04 === */
/* A rolagem do menu mora AQUI (e não no .rh-sidebar), senão a barra recorta o dropdown do sininho.
   min-height:0 é o que permite o flex item encolher e de fato rolar. */
.rh-nav--main { flex:1 1 auto; overflow-y:auto; overflow-x:hidden; min-height:0; }
.rh-sidebar__tools { display:flex; align-items:center; gap:3px; flex-wrap:wrap;
    padding:10px 12px; border-top:1px solid rgba(255,255,255,.08); }
.rh-tool { width:36px; height:36px; display:inline-flex; align-items:center; justify-content:center;
    border:0; background:transparent; color:#cdd9e4; border-radius:10px; cursor:pointer;
    font-size:16px; transition:background .15s, color .15s; text-decoration:none; position:relative; }
.rh-tool:hover { background:rgba(10,132,224,.16); color:#fff; }
.rh-tool__sep { width:1px; height:20px; background:rgba(255,255,255,.15); margin:0 3px; }
.rh-tool__avatar { width:30px; height:30px; border-radius:50%; background:var(--mm-cyan); color:#04212f;
    font-weight:700; font-size:12px; display:inline-flex; align-items:center; justify-content:center; flex:0 0 30px; }
.rh-tool-user .rh-tool { width:auto; padding:0 6px; gap:7px; }
.rh-tool-user .rh-tool__name { font-size:12.5px; color:#cdd9e4; max-width:140px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:600; }
/* foto do usuário no avatar (cai pras iniciais quando não há imagem) */
.rh-tool__avatar img { width:100%; height:100%; object-fit:cover; border-radius:50%; }
/* nome + função empilhados no botão de conta */
.rh-tool__id { display:flex; flex-direction:column; line-height:1.15; text-align:left; min-width:0; }
.rh-tool__role { font-size:10.5px; color:#8aa0b4; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:140px; }
/* avatar (foto/iniciais) no cabeçalho do dropdown de conta */
.rh-acct-avatar { width:40px; height:40px; flex:0 0 40px; border-radius:50%; background:var(--mm-cyan); color:#04212f;
    font-weight:700; font-size:15px; display:inline-flex; align-items:center; justify-content:center; overflow:hidden; }
.rh-acct-avatar img { width:100%; height:100%; object-fit:cover; }
/* badge de não-lidas no menu Comunicação (igual ao sininho) */
.rh-nav__toggle > span.rh-nav__badge { flex:0 0 auto; min-width:18px; height:18px; padding:0 5px; border-radius:9px;
    background:#dc2626; color:#fff; font-size:10.5px; font-weight:700; line-height:18px; text-align:center; }
.rh-nav__badge--inline { display:inline-block; min-width:16px; height:16px; padding:0 4px; border-radius:8px;
    background:#dc2626; color:#fff; font-size:10px; font-weight:700; line-height:16px; text-align:center; margin-left:6px; }
.rh-tool.rh-ico--wa:hover   { color:#25D366; background:rgba(37,211,102,.16); }
.rh-tool.rh-ico--mail:hover { color:#7db4ff; background:rgba(37,99,235,.18); }
.rh-tool.rh-ico--sms:hover  { color:#c4b5fd; background:rgba(124,58,237,.20); }
.rh-tool--navpos { color:var(--mm-cyan); }
/* TOP mode: ferramentas à direita, na mesma barra */
html.nav-top .rh-sidebar__tools { margin-left:auto; border-top:0; padding:0 0 0 8px; flex-wrap:nowrap; }
html.nav-top .rh-tool-user .rh-tool__id { display:none; }

/* ===== Sininho de notificações (Fase 2 esteira) ===== */
.rh-tool-bell{position:relative;display:inline-block}
.rh-bell-btn{position:relative}
.rh-bell-badge{position:absolute;top:-2px;right:-2px;min-width:16px;height:16px;padding:0 4px;border-radius:9px;
  background:#dc2626;color:#fff;font-size:10px;font-weight:700;line-height:16px;text-align:center;box-shadow:0 0 0 2px var(--mm-navy,#0A2A6B)}
.rh-bell-menu{width:340px;max-width:92vw;padding:0;border:1px solid var(--rh-border,#e5e7eb);border-radius:12px;overflow:hidden;box-shadow:0 12px 32px rgba(2,12,40,.18)}
.rh-bell-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;background:#f8fafc;border-bottom:1px solid var(--rh-border,#e5e7eb);font-size:13px;font-weight:600;color:#0f172a}
.rh-bell-readall{background:none;border:0;color:var(--mm-cyan-dark,#0660B0);font-size:11.5px;cursor:pointer;padding:0;font-weight:600}
.rh-bell-readall:hover{text-decoration:underline}
.rh-bell-list{max-height:380px;overflow-y:auto}
.rh-bell-empty{padding:22px 14px;text-align:center;color:var(--rh-muted,#64748b);font-size:13px}
.rh-bell-item{display:flex;gap:10px;padding:10px 12px;border-bottom:1px solid #f1f5f9;color:#0f172a;text-decoration:none;align-items:flex-start}
.rh-bell-item:hover{background:#f8fafc}
.rh-bell-item.is-unread{background:#eff6ff}
.rh-bell-item.is-unread:hover{background:#e0edff}
.rh-bell-item__ic{flex:0 0 30px;width:30px;height:30px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;background:#e0edff;color:var(--mm-cyan-dark,#0660B0);font-size:14px}
.rh-bell-item__body{display:flex;flex-direction:column;gap:2px;min-width:0}
.rh-bell-item__t{font-size:12.8px;font-weight:600;line-height:1.25}
.rh-bell-item__m{font-size:11.8px;color:var(--rh-muted,#64748b);line-height:1.3}
/* página cheia de notificações (menu Comunicação) */
.rh-notif-page .rh-bell-item{padding:14px 16px;align-items:center}
.rh-notif-page .rh-bell-item__t{font-size:14px}
.rh-notif-page .rh-bell-item__m{font-size:12.8px}
.rh-notif-page__when{margin-left:auto;flex:0 0 auto;font-size:11.5px;color:var(--rh-muted,#64748b);white-space:nowrap;padding-left:12px}

/* Filtro por tipo na lista de requisitos da vaga */
.rh-req-chip{padding:4px 12px;font-size:12.5px;font-weight:600}
.rh-req-chip.is-active{background:var(--mm-cyan-dark,#0660B0);color:#fff;border-color:var(--mm-cyan-dark,#0660B0)}

/* ===== Marca d'água de fundo — DESLIGADA no sistema todo (dono 10/08: "tira essa
   coisa de fundo"). As telas continuam usando .rh-marca-box/.rh-marca-wm e o estilo
   inline --rh-marca-wm sem efeito; religar = devolver o background ao ::before. ===== */
.rh-marca-wm,.rh-marca-box{position:relative}
.rh-marca-wm::before,.rh-marca-box::before{content:none}
.rh-marca-wm::before{position:fixed;inset:0;background-position:center 64px}
.rh-marca-box::before{position:absolute;inset:0;background-position:center 8px}
.rh-marca-wm>*,.rh-marca-box>*{position:relative;z-index:1}
/* EXCEÇÃO: modais/backdrops do Bootstrap são filhos diretos do body e PRECISAM de
   position:fixed — a regra acima (mesma especificidade, carregada DEPOIS do bootstrap)
   os jogava no fluxo normal: a página rolava até o fim e a modal "abria lá embaixo". */
.rh-marca-wm>.modal{position:fixed;z-index:1055}
.rh-marca-wm>.modal-backdrop{position:fixed;z-index:1050}
/* o wrapper .portal tem fundo opaco (var(--rh-bg)) que cobria a marca d'água
   fixa do body; quando a página é marcada, deixa-o transparente p/ a marca
   aparecer atrás dos cards (o fundo da página vem do próprio body). */
body.rh-marca-wm{background:var(--rh-bg)}
body.rh-marca-wm .portal{background:transparent}
/* Barra de contato (topo da tela do candidato): ícones de ação telefone/email/whats/sms */
.cand-contact__ico{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:9px;border:1px solid var(--rh-border);color:var(--mm-cyan-dark);background:#fff;text-decoration:none;font-size:16px;transition:.12s}
.cand-contact__ico:hover{background:var(--mm-cyan);color:#fff;border-color:var(--mm-cyan)}
.cand-contact__ico--wa{color:#25D366;border-color:#bdebcb}
.cand-contact__ico--wa:hover{background:#25D366;color:#fff;border-color:#25D366}

/* Carimbo PEQUENO embutido no corpo/detalhe da vaga (anti-cópia: vai junto no print).
   Fica no canto do card de conteúdo, discreto e sem capturar cliques. */
.vaga-wm-stamp{position:relative}
.vaga-wm-stamp .vaga-wm-mini{position:absolute;right:10px;bottom:10px;width:48px;height:auto;
  opacity:1;pointer-events:none;user-select:none;z-index:1}
/* nos cards da listagem o rodapé tem botões; logo vai no canto superior-direito, menor */
.vaga-card.vaga-wm-stamp .vaga-wm-mini{top:8px;right:8px;bottom:auto;width:30px}

/* Descrição da vaga em HTML (rich text) */
.rh-vaga-desc{font-size:14px;line-height:1.6}
.rh-vaga-desc p{margin:0 0 8px}
.rh-vaga-desc ul,.rh-vaga-desc ol{margin:6px 0 10px;padding-left:22px}
.rh-vaga-desc li{margin:2px 0}
.rh-vaga-desc h3,.rh-vaga-desc h4,.rh-vaga-desc h5{margin:10px 0 6px;font-size:15px;color:var(--mm-navy,#0A2A6B)}
.rh-vaga-desc a{color:var(--mm-cyan-dark,#0660B0)}
.rh-vaga-desc strong{color:var(--mm-navy,#0A2A6B)}
.vaga-modal__desc ul,.vaga-modal__desc ol{padding-left:20px;margin:6px 0}
.vaga-modal__desc p{margin:0 0 8px}

/* Chips de filtro no CRUD de configurações (requisitos por tipo, etc.) */
.rh-crud-chip{padding:4px 12px;font-size:12.5px;font-weight:600}
.rh-crud-chip.is-active{background:var(--mm-cyan-dark,#0660B0);color:#fff;border-color:var(--mm-cyan-dark,#0660B0)}

/* ===== Kit Admissional — documentos (cards frente/verso + zoom) ===== */
/* Preview do candidato (frente/verso) */
.kit-lados{display:flex;flex-wrap:wrap;gap:14px;margin-top:6px}
/* o bloco inteiro é clicável (21/08) — só a imagem respondia e o dedo errava */
.kit-lado{flex:1 1 180px;min-width:160px;cursor:pointer}
.kit-lado a,.kit-lado button,.kit-lado input,.kit-lado select{cursor:auto}
.kit-lado__lbl{font-size:12px;font-weight:600;color:#475569;margin-bottom:4px;display:block}
.kit-prev{width:100%;max-width:220px;height:130px;object-fit:cover;border:1px dashed #cbd5e1;border-radius:8px;background:#f8fafc;cursor:zoom-in;display:block;margin-top:6px}
.kit-prev.has-img{border-style:solid;border-color:#94a3b8}
/* upload "na própria imagem": clica na imagem p/ enviar a foto */
.kit-prev--pick{cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .05s}
.kit-prev--pick:hover{border-color:#0ea5e9;box-shadow:0 0 0 3px rgba(14,165,233,.15)}
.kit-prev--pick:active{transform:scale(.99)}
.kit-prev__hint{font-size:11px;color:#64748b;margin-top:4px;text-align:center;max-width:220px}
.kit-prev--pick.has-img + .kit-prev__hint{color:#94a3b8}
/* mensagem de obrigatório (vermelho, mesmo padrão da ficha) */
.kit-err{color:#dc2626;font-size:11.5px;margin-top:4px;font-weight:600}
.kit-field input.is-invalid,.kit-field select.is-invalid{border-color:#dc2626 !important;background:#fef2f2}
.kit-lado.is-invalid .kit-prev{border-color:#dc2626;border-style:solid}
.kit-obrig{font-size:12px;color:#475569;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;padding:7px 10px;margin-bottom:10px}
.kit-field{margin-bottom:10px}
.kit-fields{display:flex;flex-wrap:wrap;gap:10px}
.kit-fields .kit-field{flex:1 1 160px}
.kit-consolida{margin:10px 0;padding:10px 12px;border:1px solid #fde68a;background:#fffbeb;border-radius:8px;font-size:13px}
.kit-consolida label{display:inline-flex;align-items:center;gap:6px;margin-right:14px;font-weight:500}
.kit-coberto{padding:10px 12px;border:1px dashed #93c5fd;background:#eff6ff;border-radius:8px;font-size:13px;color:#1e3a8a}

/* Lightbox (zoom maior) — usado por candidato e aprovador */
.kit-lightbox{position:fixed;inset:0;background:rgba(15,23,42,.85);display:none;align-items:center;justify-content:center;z-index:2000;cursor:zoom-out;padding:24px}
.kit-lightbox.open{display:flex}
.kit-lightbox img{max-width:96vw;max-height:92vh;border-radius:8px;box-shadow:0 10px 40px rgba(0,0,0,.5)}

/* Aprovador — grade de cards com zoom on hover */
.kit-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.kit-card{border:1px solid var(--rh-border,#e5e7eb);border-radius:10px;overflow:hidden;background:#fff;display:flex;flex-direction:column}
.kit-card__head{padding:8px 10px;background:var(--mm-navy,#0b2447);color:#fff;font-size:13px;font-weight:600;display:flex;justify-content:space-between;align-items:center;gap:8px}
.kit-card__body{padding:10px;font-size:12.5px;flex:1}
.kit-card__dl{margin:0 0 8px}
.kit-card__dl div{display:flex;gap:6px;padding:1px 0}
.kit-card__dl dt{color:#64748b;min-width:96px;flex:0 0 auto}
.kit-card__dl dd{margin:0;font-weight:500}
.kit-card__imgs{display:flex;gap:10px;flex-wrap:wrap}
.zoom-container{flex:1 1 170px;min-width:170px;overflow:hidden;border-radius:8px;border:1px solid #e5e7eb;position:relative;background:#f8fafc}
.zoom-image{width:100%;height:200px;object-fit:contain;display:block;transition:transform .25s ease;cursor:zoom-in}
.zoom-container:hover .zoom-image{transform:scale(1.7)}
.zoom-tag{position:absolute;top:6px;left:6px;background:rgba(15,23,42,.65);color:#fff;font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:99px;pointer-events:none;z-index:2;transition:opacity .2s}
.zoom-container:hover .zoom-tag{opacity:0}
.kit-card__foot{padding:8px 10px;border-top:1px solid #f1f5f9;display:flex;gap:6px;flex-wrap:wrap;align-items:center}

/* ===== Kit Admissional — aba do candidato (grid 3 col + lista) ===== */
/* grade dos documentos (dono 24/08: "4 por linha, responsivo no celular").
   celular = 1 · celular grande/tablet pequeno = 2 · tablet = 3 · desktop = 4. */
.kit-grid{display:grid;grid-template-columns:1fr;gap:14px}
@media (min-width:560px){ .kit-grid{grid-template-columns:repeat(2,1fr)} }
@media (min-width:860px){ .kit-grid{grid-template-columns:repeat(3,1fr)} }
@media (min-width:1160px){ .kit-grid{grid-template-columns:repeat(4,1fr)} }
.kit-card-doc{border:1px solid var(--rh-border,#e5e7eb);border-radius:10px;background:#fff;display:flex;flex-direction:column;overflow:hidden}
.kit-card-doc__head{padding:9px 12px;border-bottom:1px solid #f1f5f9;display:flex;align-items:center;gap:8px;font-weight:600;font-size:13.5px;background:#f8fafc}
.kit-card-doc__body{padding:12px}
.kit-verso-tog{display:flex;align-items:center;gap:7px;font-size:12.5px;color:#334155;margin:8px 0 4px;cursor:pointer}
.kit-lista{display:flex;flex-direction:column;gap:6px}
.kit-lista__item{display:flex;align-items:center;gap:9px;padding:8px 11px;border:1px solid var(--rh-border,#e5e7eb);border-radius:9px;background:#fff;font-size:13px}
.kit-lista__item .nome{flex:1;font-weight:500}
.kit-lista__acoes{display:flex;gap:6px}

/* ===== Kit Admissional — blocos colapsáveis coloridos ===== */
.kit-card-doc__head{cursor:pointer;color:#fff;border-bottom:none;user-select:none}
.kit-card-doc__head .bi{color:#fff}
.kit-card-doc__body{display:none}
.kit-card-doc.is-open .kit-card-doc__body{display:block;border-top:1px solid #eef2f7}
.kit-chevron{transition:transform .2s ease;font-size:12px;opacity:.9}
.kit-card-doc.is-open .kit-chevron{transform:rotate(180deg)}
.kit-card-doc{transition:box-shadow .15s}
.kit-card-doc.is-open{box-shadow:0 4px 14px rgba(15,23,42,.10)}
.kit-head--pend{background:#0b2447}
.kit-head--rep{background:#dc2626}
.kit-head--env{background:#2563eb}
.kit-head--ok{background:#16a34a}
.kit-card-doc__head .rh-badge{background:rgba(255,255,255,.22);color:#fff;border-color:transparent}

/* ===== Dashboard candidato — abas de fase (bloqueada/apagada) ===== */
.cand-tab.is-locked{opacity:.45;cursor:not-allowed;filter:grayscale(.7)}
.cand-tab.is-locked:hover{opacity:.5;background:transparent}
.cand-fase-num{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;font-size:10px;font-weight:700;border-radius:9px;background:rgba(0,0,0,.10);padding:0 4px;margin-left:4px}
.cand-fase-lock{display:flex;gap:13px;align-items:center;padding:20px;border:1px dashed #cbd5e1;border-radius:12px;background:#f8fafc;color:#475569;font-size:14px;line-height:1.45}
.cand-fase-lock .bi{font-size:28px;color:#94a3b8;flex:0 0 auto}

/* ===== Dashboard candidato — visual pastel/elegante (redesign) ===== */
body.portal-cand{background:linear-gradient(160deg,#eef2ff 0%,#f5f7fb 28%,#fdf2f8 100%);min-height:100vh}
.portal-cand .portal{background:transparent}
/* topo */
.portal-top--cand{background:rgba(255,255,255,.92);backdrop-filter:blur(8px);border-bottom:1px solid #e7ecf5;box-shadow:0 1px 8px rgba(15,23,42,.05)}
/* ordem fixa do cabeçalho: [logo][menu] ..... [ações][Sair][logo pai] — o menu ANCORA no logo
   (flex-start) e as ações são empurradas p/ a direita pelo margin-left:auto */
.portal-top--cand .portal-top__in{display:flex;align-items:center;justify-content:flex-start;gap:10px;flex-wrap:wrap}
.portal-top--cand .portal-top__actions{margin-left:auto}
/* o ☰ com o mesmo visual dos demais botões do cabeçalho (cartão com borda) */
.portal-top--cand .cand-act--menu{width:34px;height:34px;font-size:17px;color:#0f172a;
    border:1px solid var(--rh-border,#e5e7eb);border-radius:9px;background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.05)}
.portal-top--cand .cand-act--menu:hover{background:#0f172a;color:#fff;border-color:#0f172a;transform:none;filter:none}
/* mesma medida do logo do Master (.rh-sidebar__brand img = 52px) — padrão da plataforma */
.portal-top__emp img{max-height:52px;max-width:210px;object-fit:contain}
.portal-top__empnome{font-weight:700;color:var(--mm-navy,#0b2447);font-size:15px}
.portal-top__actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.portal-top__master img{max-height:34px;max-width:140px;object-fit:contain;opacity:.95}
.cand-canais{display:flex;gap:8px;align-items:center}
.canal-ic{position:relative;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;font-size:15px;color:#fff;box-shadow:0 2px 6px rgba(15,23,42,.12)}
.canal-ic--wa{background:#25d366}.canal-ic--mail{background:#2563eb}.canal-ic--sms{background:#0ea5e9}.canal-ic--bell{background:#f59e0b}
.canal-badge{position:absolute;top:-4px;right:-4px;background:#dc2626;color:#fff;border-radius:9px;font-size:10px;line-height:15px;min-width:15px;text-align:center;padding:0 3px;border:1.5px solid #fff}
/* sininho de avisos do candidato — dropdown clicável (mostra as mensagens) */
.cand-bell{position:relative}
.cand-bell > .canal-ic{border:0;cursor:pointer;padding:0}
.cand-bell__menu{width:330px;max-width:92vw;max-height:62vh;overflow:auto;padding:0;border:0;box-shadow:0 12px 32px rgba(15,23,42,.18);border-radius:12px}
.cand-bell__head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 14px;border-bottom:1px solid #eef1f6;font-weight:700;color:#0f172a;font-size:13px;position:sticky;top:0;background:#fff}
.cand-bell__clear{border:0;background:none;color:#2563eb;font-size:12px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:4px}
.cand-bell__item{display:flex;gap:10px;padding:10px 14px;border-bottom:1px solid #f3f4f6;font-size:13px;color:#334155}
.cand-bell__item:last-child{border-bottom:0}
.cand-bell__item.is-unread{background:#eff6ff}
.cand-bell__item > i{color:#f59e0b;font-size:16px;margin-top:1px;flex:0 0 auto}
.cand-bell__item strong{display:block;color:#0f172a;font-weight:600}
.cand-bell__msg{display:block;margin-top:1px}
.cand-bell__time{display:block;margin-top:3px;color:#94a3b8;font-size:11px}
/* linha de ações do candidato — só ícones coloridos (sem fundo de botão nem texto) */
.cand-acts{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cand-act{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;border:0;padding:0;background:transparent;cursor:pointer;font-size:18px;line-height:1;text-decoration:none;box-shadow:none;transition:transform .12s,filter .15s;position:relative}
.cand-act:hover{transform:translateY(-1px);filter:brightness(1.12)}
.cand-act:focus-visible{outline:2px solid #1e293b;outline-offset:2px;border-radius:6px}
.cand-act--view{color:#0ea5e9}
.cand-act--edit{color:#6366f1}
.cand-act--explore{color:#10b981}
.cand-act--phone{color:#0891b2}
.cand-act--wa{color:#25d366}
.cand-act--mail{color:#2563eb}
.cand-act--sms{color:#8b5cf6}
.cand-act--bell{color:#f59e0b}
.cand-act--quit{color:#dc2626}
/* ===== Candidato: ícones + menu no CABEÇALHO (18/07) ===== */
/* as ações saíram de baixo do nome e foram p/ a barra do topo, antes do Sair */
.cand-acts--header{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
/* ÍCONE + NOME, com borda: o ícone sozinho não diz o que faz (pedido do dono 19/07) */
.cand-acts--header .cand-act{width:auto;height:34px;gap:6px;padding:0 11px;font-size:14px;
    border:1px solid var(--rh-border,#e5e7eb);border-radius:9px;background:#fff;
    box-shadow:0 1px 2px rgba(15,23,42,.05);transition:background .15s,border-color .15s,color .15s}
.cand-acts--header .cand-act__t{font-size:12.5px;font-weight:600;line-height:1;white-space:nowrap;color:#334155}
.cand-acts--header .cand-act:hover{background:currentColor;border-color:currentColor;transform:none}
.cand-acts--header .cand-act:hover .cand-act__t,
.cand-acts--header .cand-act:hover > i{color:#fff}
.cand-act__t{display:none}                     /* fora do cabeçalho o nome não aparece */
.cand-acts--header .cand-act__t{display:inline}

/* as abas Histórico/Candidaturas/WhatsApp/E-mail/SMS viraram MENU do topo:
   o <button> continua no HTML (o menu o aciona), mas some da faixa de abas */
.cand-tab-oculta{display:none !important}
.cand-menu__list{min-width:230px;padding:6px;border:1px solid var(--rh-border,#e5e7eb);border-radius:12px;
    box-shadow:0 12px 32px rgba(15,23,42,.18)}
.cand-menu__item{display:flex;align-items:center;gap:10px;border-radius:8px;font-size:13.5px;padding:9px 10px}
.cand-menu__item i{font-size:15px;color:var(--mm-cyan-dark,#0660B0);width:18px;text-align:center}
.cand-menu__item:hover{background:#f1f5f9}
.cand-menu__item .badge-count{margin-left:auto}
.cand-act--menu{position:relative}
.portal-top--cand .cand-menu{margin-left:10px;flex:0 0 auto}

/* MENU: o ☰ é ÚNICO em todas as telas (pedido do dono 21/07 — no desktop a barra aberta
   quebrava a linha; dentro do menu fica tudo numa linha só). A nav "aberta" fica no HTML
   mas nunca aparece. */
.cand-menu__aberto{display:none}
.cand-menu__mobile{display:inline-block}

/* TABLET (768–1100px): os nomes dos ícones de ação cedem espaço (viram só ícone). */
@media(max-width:1100px){
    .cand-acts--header .cand-act{width:34px;padding:0}
    .cand-acts--header .cand-act__t{display:none}
}
/* Botões DENTRO das abas do candidato: altura única, menor que o rh-btn global (42px).
   Antes cada aba herdava o tamanho cheio e o painel ficava com botões de tamanhos diferentes. */
.portal-cand .cand-tabs__content .rh-btn{height:36px;padding:0 14px;font-size:13px}
.portal-cand .cand-tabs__content .rh-btn i{font-size:14px}
.portal-cand .cand-tabs__content .rh-btn--block{width:100%}
/* "Sair": no celular fica só o ícone (como os demais do cabeçalho) */
.cand-sair{height:34px;padding:0 12px;font-size:13px}
/* CELULAR (≤767px): o ☰ volta (não há barra que caiba 5 opções + ações) e os rótulos somem.
   O cabeçalho vira UMA linha: [logo][☰] ..... [ícones][Sair][logo pai] (pedido do dono 21/07). */
@media(max-width:767px){
    .portal-top--cand .portal-top__in{flex-wrap:nowrap;gap:8px;padding:9px 12px}
    .portal-top--cand .cand-menu{margin-left:2px}
    .portal-top--cand .portal-top__actions{flex-wrap:nowrap;gap:6px}
    .cand-acts--header{flex-wrap:nowrap;gap:5px}
    .portal-top__emp img{max-height:38px;max-width:118px}
    .portal-top__master img{max-height:26px;max-width:80px}
    .portal-top--cand .cand-act--menu{width:31px;height:31px;font-size:16px}
    .cand-acts--header .cand-act{width:31px;height:31px;font-size:13px}
    .cand-sair__t{display:none}
    .cand-sair{width:31px;height:31px;padding:0}
}
/* TELA ESTREITA (≤430px — cobre do piso de 320px aos 360-430px dos aparelhos atuais, ex.
   Moto One Fusion ≈393px): tudo mais compacto p/ o cabeçalho caber com folga em UMA linha. */
@media(max-width:430px){
    .portal-top--cand .portal-top__in{padding:8px 10px;gap:6px;flex-wrap:nowrap}
    .portal-top__emp img{max-height:34px;max-width:96px}
    .portal-top__empnome{font-size:12.5px}
    .portal-top__master img{max-height:24px;max-width:70px}
    .portal-top--cand .portal-top__actions{gap:4px}
    .cand-acts--header{gap:4px}
    .portal-top--cand .cand-act--menu{width:29px;height:29px;font-size:15px}
    .cand-acts--header .cand-act{width:29px;height:29px;font-size:12.5px}
    .cand-sair{width:29px;height:29px}
    .cand-topcard{padding:12px 13px;gap:11px}
    .cand-topcard__nome{font-size:17px}
    .portal-cand .cand-tab{padding:10px 11px;font-size:12.5px}
    .cand-menu__list{min-width:auto;width:min(92vw,260px)}
}

/* Botão "Atualizar página" — fora do card de ações, antes da foto */
/* Atualizar: é ação SECUNDÁRIA — não deve competir em tamanho com os botões da etapa */
.cand-topcard__refresh{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;align-self:center;min-width:56px;flex:0 0 auto}
.cand-refresh-btn{width:30px;height:30px;border-radius:50%;border:0;background:#f1f5f9;color:#0d9488;font-size:15px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .2s,background .15s}
.cand-refresh-btn:hover{background:#e2e8f0;transform:rotate(90deg)}
.cand-refresh-btn.is-spinning i{animation:cand-spin .7s linear infinite}
.cand-refresh-lbl{font-size:9.5px;font-weight:600;color:#94a3b8;text-align:center;line-height:1.1;letter-spacing:.01em}
@keyframes cand-spin{to{transform:rotate(360deg)}}
/* Tooltip no hover dos ícones de ação (nome visível p/ quem é leigo) */
.cand-act[aria-label]::after{content:attr(aria-label);position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%) translateY(-3px);
    background:#0f172a;color:#fff;font-size:11px;font-weight:600;line-height:1;white-space:nowrap;padding:5px 8px;border-radius:6px;
    opacity:0;pointer-events:none;transition:opacity .12s,transform .12s;z-index:40}
.cand-act[aria-label]:hover::after{opacity:1;transform:translateX(-50%) translateY(0)}
/* ícones de canal ainda "em breve" (telefone/e-mail/sms) — leve atenuação; WhatsApp já é clicável */
.cand-act--phone,.cand-act--mail,.cand-act--sms{opacity:.92;cursor:default}
.cand-act--phone:hover,.cand-act--mail:hover,.cand-act--sms:hover{transform:none}
/* card do candidato (sem fundo azul) */
.cand-topwrap{max-width:1080px;margin:18px auto 0;padding:0 16px}
.cand-topcard{display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:linear-gradient(120deg,#ffffff 0%,#f0f7ff 60%,#eef9f4 100%);border:1px solid #e3ecf7;border-left:5px solid var(--mm-cyan-dark,#0660B0);border-radius:16px;padding:16px 20px;box-shadow:0 8px 26px rgba(15,23,42,.07)}
.cand-topcard__photo{width:64px;height:64px;border-radius:50%;overflow:hidden;flex:0 0 auto;background:#e2e8f0;display:flex;align-items:center;justify-content:center;font-size:28px;color:#94a3b8;border:2px solid #fff;box-shadow:0 2px 8px rgba(15,23,42,.12)}
.cand-topcard__photo img{width:100%;height:100%;object-fit:cover}
.cand-topcard__info{flex:1 1 200px;min-width:160px}
.cand-topcard__nome{margin:0 0 4px;font-size:20px;font-weight:800;color:var(--mm-navy,#0b2447)}
.cand-topcard__contatos{display:flex;gap:14px;flex-wrap:wrap;color:#475569;font-size:13px}
.cand-topcard__actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
/* cartão do topo do candidato na família premium (10/08) — deck escuro; segue a cor do painel
   da empresa quando houver (--rh-deck), senão o navy padrão */
.cand-topcard--deck{position:relative;overflow:hidden;border:none;border-left:none;color:#e8eef7;--deck:var(--rh-deck,#0f172a);
  background:radial-gradient(820px 280px at 88% -50%,rgba(10,132,224,.30),transparent 60%),
             radial-gradient(640px 240px at -8% 130%,rgba(16,58,134,.45),transparent 60%),
             linear-gradient(160deg,color-mix(in srgb,var(--deck) 74%,#3a6fc9) 0%,var(--deck) 60%,color-mix(in srgb,var(--deck) 86%,#000) 100%);
  box-shadow:0 18px 44px -18px rgba(10,23,43,.5);border-radius:18px}
.cand-topcard--deck::before{content:'';position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:42px 42px;mask-image:radial-gradient(620px 300px at 28% 0%,#000 25%,transparent 75%)}
.cand-topcard--deck > *{position:relative}
.cand-topcard--deck .cand-topcard__photo{border-color:rgba(255,255,255,.35);box-shadow:0 0 0 4px rgba(255,255,255,.08)}
.cand-topcard__kicker{font-size:10.5px;letter-spacing:.22em;font-weight:700;color:#63b8f6;text-transform:uppercase;margin-bottom:2px}
.cand-topcard--deck .cand-topcard__nome{color:#fff;letter-spacing:-.3px}
.cand-topcard--deck .cand-topcard__nome small{color:#9fb3cd!important}
.cand-topcard--deck .cand-topcard__contatos{color:#9fb3cd}
.cand-topcard--deck .cand-refresh-btn{background:rgba(255,255,255,.1);color:#dbe7f1;border:1px solid rgba(255,255,255,.16)}
.cand-topcard--deck .cand-refresh-btn:hover{background:rgba(255,255,255,.2)}
.cand-topcard--deck .cand-refresh-lbl{color:#8fa8c6}
@media (max-width:640px){ .cand-topcard{align-items:flex-start} .cand-topcard__actions{width:100%} .cand-topcard__actions .rh-btn{flex:1 1 auto;justify-content:center} }
/* conteúdo levinho */
.portal-cand .cand-dash{max-width:1080px;margin:16px auto 40px;padding:0 16px}
.portal-cand .cand-tabs__content,.portal-cand .cv-summary{background:rgba(255,255,255,.9);border-radius:14px}

/* ===== Dashboard candidato — larguras maiores + abas em card colorido ===== */
.portal-cand .cand-dash{max-width:1280px}
.cand-topwrap{max-width:1280px}

/* faixa das abas como CARD COLORIDO, numa linha só (rola no mobile) */
.portal-cand .cand-tabs{
    background:#eef1f5;
    border:1px solid #e2e8f0;border-radius:14px;
    padding:8px;gap:6px;margin-bottom:12px;
    flex-wrap:wrap;overflow:visible;
    box-shadow:0 4px 16px rgba(15,23,42,.06)
}
/* Grupo separado (embaixo): Mensagens e Histórico */
.cand-commgrp{margin-top:22px}
.cand-commgrp__title{font-size:14px;font-weight:800;color:#011126;margin:0 0 8px;display:flex;align-items:center;gap:8px}
.cand-commgrp__title i{color:#011126}
.portal-cand .cand-tab .badge-count{background:#011126;color:#fff}
/* CELULAR: as abas empilham (uma embaixo da outra) — em fila horizontal o candidato
   não enxerga metade das etapas e precisa arrastar p/ descobrir onde está. */
@media(max-width:640px){
    .portal-cand .cand-tabs{flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:5px;padding:6px}
    .portal-cand .cand-tab{width:100%;justify-content:flex-start;border-radius:9px;padding:11px 13px}
    .portal-cand .cand-tab .badge-count{margin-left:auto}
    .cand-tabs__content{border-radius:14px}
}
/* AJUDA na faixa das abas (11/09): encosta à direita e não disputa espaço com as etapas */
.cand-tabs__ajuda{margin-left:auto;display:flex;align-items:center}
.cand-tabs__ajuda .rh-help-tab{white-space:nowrap}
@media(max-width:640px){.portal-cand .cand-tabs .cand-tabs__ajuda{margin-left:0}
    .portal-cand .cand-tabs .cand-tabs__ajuda .rh-help-tab{width:100%;justify-content:center}}
.portal-cand .cand-tabs::-webkit-scrollbar{height:6px}
.portal-cand .cand-tabs::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:6px}
.portal-cand .cand-tab{
    border:1px solid #d7dde5;background:#fff;color:#334155;
    border-radius:10px;padding:9px 14px;white-space:nowrap;font-weight:600;flex:0 0 auto;transition:.15s
}
.portal-cand .cand-tab:hover{background:#fff;color:#011126;border-color:#011126}
.portal-cand .cand-tab.active{
    background:#011126;
    color:#fff;border-color:#011126;box-shadow:0 4px 12px rgba(1,17,38,.28)
}
.portal-cand .cand-tab.active .badge-count,.portal-cand .cand-tab.active .cand-fase-num{background:rgba(255,255,255,.28);color:#fff}
.portal-cand .cand-tab.active .bi{color:#fff}
/* conteúdo vira card independente (abas já são um card acima) */
.portal-cand .cand-tabs__content{border-radius:14px;border:1px solid #e5e7eb;box-shadow:0 6px 22px rgba(15,23,42,.06)}

/* canais: cor no próprio ícone (sem bolinha de fundo) */
.cand-canais{gap:14px}
.canal-ic{background:none;box-shadow:none;width:auto;height:auto;border-radius:0;font-size:20px;line-height:1}
.canal-ic--wa{background:none;color:#25d366}
.canal-ic--mail{background:none;color:#2563eb}
.canal-ic--sms{background:none;color:#0ea5e9}
.canal-ic--bell{background:none;color:#f59e0b}
.canal-ic .bi{color:inherit}
.canal-badge{top:-7px;right:-9px}

/* ===== Visualização do candidato — colunas iguais (masonry) ===== */
/* grid de 2 colunas IGUAIS (esquerda/direita do mesmo tamanho), lado a lado.
   Dados=(1,1), Questionário=(1,2), demais cards seguem em linhas. */
.cand-cols{display:flow-root}
/* ABAS por etapa — mostra um card de cada vez (sem flash: esconde via CSS) */
.rh-card[data-tab]{display:none !important;margin-top:0 !important}
.rh-card[data-tab].tab-on{display:block !important}
.cand-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
.cand-tab{display:inline-flex;align-items:center;gap:6px;background:#f1f5f9;color:#475569;border:1px solid var(--rh-border);border-radius:8px;padding:7px 12px;font-size:12.5px;font-weight:600;cursor:pointer;transition:background .15s,color .15s}
.cand-tab:hover{background:#e2e8f0}
.cand-tab.is-active{background:linear-gradient(120deg,var(--mm-navy),var(--mm-cyan));color:#fff;border-color:transparent}
.cand-tab:disabled{opacity:.4;cursor:not-allowed}
.cand-tab__n{background:rgba(10,42,107,.10);border-radius:6px;padding:0 6px;font-size:11px}
.cand-tab.is-active .cand-tab__n{background:rgba(255,255,255,.25)}
@media (max-width:640px){ .cand-tab__l{display:none} }
/* botões um pouco menores nesta tela */
.rh-card[data-tab] .rh-btn{padding:6px 12px;font-size:12.5px}
/* cores dos blocos de comunicação + histórico */
.rh-card--wa > .rh-card__header{background:#dcfce7;border-bottom-color:#86efac}
.rh-card--wa > .rh-card__header .rh-card__title{color:#15803d}
.rh-card--sms > .rh-card__header{background:#dbeafe;border-bottom-color:#93c5fd}
.rh-card--sms > .rh-card__header .rh-card__title{color:#1e3a8a}
.rh-card[data-tab="hist"] > .rh-card__header{background:#1f2937}
.rh-card[data-tab="hist"] > .rh-card__header .rh-card__title,
.rh-card[data-tab="hist"] > .rh-card__header .rh-card__title i{color:#fff}
.com-thread{max-height:300px;overflow:auto;border:1px solid var(--rh-border);border-radius:10px;padding:10px;background:#f8fafc;margin-bottom:10px}
/* sub-abas da Comunicação (E-mail / WhatsApp / SMS) */
.cand-subtabs[data-tab]{display:none !important}
.cand-subtabs[data-tab].tab-on{display:flex !important;gap:6px;flex-wrap:wrap;margin-bottom:0}
.cand-subtab{display:inline-flex;align-items:center;gap:6px;background:#fff;color:#475569;border:1px solid var(--rh-border);border-radius:8px 8px 0 0;padding:6px 14px;font-size:12.5px;font-weight:600;cursor:pointer}
.cand-subtab:hover{background:#f1f5f9}
.cand-subtab.is-active{background:var(--mm-navy);color:#fff;border-color:var(--mm-navy)}
.rh-card[data-comm]{margin-top:0 !important;border-top-left-radius:0}
.rh-card[data-comm]:not(.subtab-on){display:none !important}
/* linha do tempo (8 bolinhas) acima das abas */
.cand-timeline{display:flex;align-items:center;margin:20px 0 22px;flex-wrap:wrap}
.cand-tl-dot{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;background:#e2e8f0;color:#94a3b8;border:2px solid #e2e8f0;flex:0 0 auto}
.cand-tl-dot.done{background:var(--mm-cyan);color:#fff;border-color:var(--mm-cyan)}
.cand-tl-dot.active{background:#fff;color:var(--mm-navy);border-color:var(--mm-navy);box-shadow:0 0 0 3px rgba(10,42,107,.15)}
.cand-tl-bar{height:3px;background:#e2e8f0;flex:0 1 26px}
.cand-tl-bar.done{background:var(--mm-cyan)}
.cand-tl-star{display:inline-flex;align-items:center;gap:5px;margin-left:8px;color:var(--mm-gold);font-weight:800;font-size:13px}
@media (max-width:640px){ .cand-tl-bar{flex:0 1 14px} .cand-tl-dot{width:22px;height:22px;font-size:11px} }

/* Questionário em abas (visualização do candidato) */
.quiz-tabs{gap:6px;flex-wrap:nowrap}
/* nome em cima, score embaixo → as 4 abas (inclusive Comportamental) cabem na mesma linha */
.quiz-tabs .nav-item{flex:1 1 0;min-width:0}
.quiz-tabs .nav-link{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:#f1f5f9;color:#475569;border-radius:8px;padding:6px 8px;font-size:12px;font-weight:600;line-height:1.15;text-align:center}
.quiz-tabs .nav-link:hover{background:#e2e8f0}
.quiz-tabs .nav-link.active{background:linear-gradient(120deg,#16a34a,#22c55e);color:#fff}
.quiz-tab-name{white-space:nowrap}
.quiz-tab-score{font-size:11px;font-weight:700}
.quiz-tabs .nav-link.active .quiz-tab-score{color:#fff!important}
@media (max-width:480px){ .quiz-tabs{flex-wrap:wrap} .quiz-tabs .nav-item{flex:1 1 40%} }

/* Kit (visão do RH): cards a revisar colapsáveis + lista de aprovados */
details.kit-card{overflow:hidden}
details.kit-card > summary.kit-card__head{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none;user-select:none}
details.kit-card > summary.kit-card__head::-webkit-details-marker{display:none}
details.kit-card > summary.kit-card__head > span:first-child{flex:1}
.kit-card__chev{margin-left:auto;transition:transform .2s ease;opacity:.7}
details.kit-card[open] .kit-card__chev{transform:rotate(180deg)}
.kit-lista__thumb{width:42px;height:42px;object-fit:cover;border-radius:6px;cursor:zoom-in;border:1px solid #e5e7eb;flex:0 0 auto}

/* ===== Modelos de Contrato (CRUD + visualização) ===== */
.ct-doc{font-family:Georgia,'Times New Roman',serif;line-height:1.65;color:#1f2937;max-width:740px;margin:0 auto}
.ct-doc .ct-clausula__tit{font-size:15px;font-weight:700;margin:18px 0 6px;color:var(--mm-navy,#0b2447)}
.ct-doc .ct-clausula__txt p{margin:0 0 10px;text-align:justify}
/* headings vindos de gabaritos gerados por IA (que emitem <h1>/<h2> sem controle) — 25/08 */
.ct-doc h1,.ct-doc .ct-clausula__txt h1{font-size:15px;font-weight:700;margin:16px 0 6px;color:var(--mm-navy,#0b2447)}
.ct-doc h2,.ct-doc .ct-clausula__txt h2{font-size:13px;font-weight:700;margin:14px 0 4px}
.ct-doc h3,.ct-doc h4,.ct-doc h5,.ct-doc h6{font-size:12.5px;font-weight:700;margin:12px 0 3px}
.ct-claus-row{border:1px solid var(--rh-border,#e5e7eb);border-radius:10px;padding:10px;margin-bottom:10px;background:#fff}
.ct-claus-row__head{display:flex;gap:8px;align-items:center;margin-bottom:6px}
.ct-claus-row__head input{flex:1;font-weight:600}
.ct-claus-txt{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px;width:100%}
.ct-vars{display:flex;flex-wrap:wrap;gap:6px}
.ct-var{border:1px solid #ddd6fe;background:#f5f3ff;color:#6d28d9;border-radius:8px;padding:4px 8px;font-size:11.5px;font-family:ui-monospace,monospace;cursor:pointer}
.ct-var:hover{background:#ede9fe}

/* ===== Central de mensagens WhatsApp (cliente) ===== */
.wa-chat{display:grid;grid-template-columns:300px 1fr;border:1px solid #e5e7eb;border-radius:14px;overflow:hidden;background:#fff;height:70vh;min-height:460px}
.wa-chat__list{border-right:1px solid #eef2f7;overflow-y:auto;background:#fff}
.wa-chat__new{padding:10px;border-bottom:1px solid #eef2f7;position:sticky;top:0;background:#fff;z-index:1}
.wa-conv{display:flex;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid #f3f4f6;text-decoration:none;color:inherit}
.wa-conv:hover{background:#f8fafc}
.wa-conv.is-active{background:#eef6ff}
.wa-conv__av{flex:0 0 38px;width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#25d366,#128c7e);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700}
.wa-conv__mid{flex:1;min-width:0}
.wa-conv__nome{font-weight:600;font-size:13px;color:#0b2447;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wa-conv__prev{font-size:11.5px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wa-conv__meta{flex:0 0 auto;text-align:right}
.wa-conv__time{font-size:10.5px;color:#94a3b8;display:block}
.wa-conv__badge{display:inline-block;min-width:18px;height:18px;border-radius:9px;background:#25d366;color:#fff;font-size:11px;font-weight:700;text-align:center;line-height:18px;padding:0 5px;margin-top:2px}
.wa-chat__thread{display:flex;flex-direction:column;background:#efeae2}
.wa-thread__head{display:flex;gap:10px;align-items:center;padding:10px 14px;background:#fff;border-bottom:1px solid #eef2f7}
.wa-thread__nome{font-weight:700;color:#0b2447;font-size:14px}
.wa-thread__num{font-size:11.5px;color:#64748b}
.wa-thread__body{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:8px}
.wa-msg{max-width:72%;padding:7px 10px;border-radius:10px;font-size:13px;box-shadow:0 1px 1px rgba(0,0,0,.06)}
.wa-msg__time{font-size:10px;color:#94a3b8;text-align:right;margin-top:2px}
.wa-msg--in{align-self:flex-start;background:#fff}
.wa-msg--out{align-self:flex-end;background:#d9fdd3}
.wa-thread__compose{display:flex;gap:8px;padding:10px;background:#fff;border-top:1px solid #eef2f7}
.wa-thread__compose textarea{flex:1;resize:none}
.wa-empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#94a3b8;gap:8px}
.wa-empty i{font-size:32px}
@media(max-width:760px){.wa-chat{grid-template-columns:1fr;height:auto}.wa-chat__list{max-height:220px}}

/* ===== Vaga · linha de gestão (esteira · ações · isenção · convite) ===== */
.rh-vaga-mgmt{margin-bottom:14px}
.rh-vaga-mgmt .rh-card{height:100%}
.rh-vaga-mgmt .rh-card__body{padding:12px 14px}
/* ícone do cabeçalho "flat": cor no ícone, sem fundo */
.rh-ico--flat{background:none!important;color:inherit;margin-right:4px}
/* botão SÓ ícone (ações da vaga + envio do link): sem fundo, cor no ícone, tooltip */
.vaga-iconrow{display:flex;flex-wrap:wrap;gap:8px}
.vaga-send-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.vaga-iconact{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:5px;
  width:40px;height:40px;padding:0;border:1px solid #e5e7eb;border-radius:9px;background:#fff;
  color:var(--ia-cor,#475569);font-size:18px;cursor:pointer;transition:background .12s,border-color .12s,transform .08s}
.vaga-iconact i{color:var(--ia-cor,#475569)}
.vaga-iconact:hover{background:color-mix(in srgb,var(--ia-cor,#475569) 12%,#fff);border-color:var(--ia-cor,#475569);transform:translateY(-1px)}
.vaga-iconact--all{width:auto;padding:0 12px;font-size:13px;font-weight:600}
/* tooltip (descrição ao passar o mouse) */
.vaga-iconact[aria-label]::after{content:attr(aria-label);position:absolute;bottom:calc(100% + 7px);left:50%;transform:translateX(-50%);
  background:#1e293b;color:#fff;font-size:11.5px;font-weight:500;line-height:1.3;white-space:normal;text-align:center;width:max-content;max-width:200px;
  padding:5px 9px;border-radius:6px;opacity:0;visibility:hidden;transition:opacity .12s;z-index:30;pointer-events:none}
.vaga-iconact[aria-label]::before{content:"";position:absolute;bottom:calc(100% + 2px);left:50%;transform:translateX(-50%);
  border:5px solid transparent;border-top-color:#1e293b;opacity:0;visibility:hidden;transition:opacity .12s;z-index:30}
.vaga-iconact[aria-label]:hover::after,.vaga-iconact[aria-label]:hover::before{opacity:1;visibility:visible}
/* dentro de popup (.vs-modal, que tem overflow:hidden) o balão centralizado estourava a
   borda esquerda e era cortado — alinha pela ESQUERDA do botão */
.vs-modal__b .vaga-iconact[aria-label]::after{left:0;transform:none;text-align:left}
.vs-modal__b .vaga-iconact[aria-label]::before{left:14px;transform:none}
/* deixa o tooltip dos ícones de ação "escapar" do card (que tem overflow:hidden), p/ ler os da esquerda */
.rh-card:has(.vaga-iconrow){overflow:visible}
/* idem p/ os botões de envio do "Convidar candidatos" — sem isso o balão (que fica ACIMA) era cortado */
.rh-card:has(.vaga-send-row){overflow:visible}
.vaga-send-row{gap:10px}
.vaga-send-row .vaga-iconact--all{margin-left:4px}
.vaga-iconrow{position:relative;z-index:1}
.vaga-link-row{display:flex;gap:6px;align-items:center}
.vaga-link-row .rh-input{flex:1}

/* Editar/Excluir do cabeçalho: 100% flat (sem fundo, cor no ícone) + tooltip */
.vaga-iconflat{position:relative;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;
  border:none;background:none;padding:0;font-size:20px;line-height:1;color:var(--ia-cor,#475569);cursor:pointer;
  text-decoration:none;transition:transform .08s,filter .12s}
.vaga-iconflat i{color:var(--ia-cor,#475569)}
.vaga-iconflat:hover{transform:translateY(-1px);filter:brightness(.88)}
.vaga-iconflat[aria-label]::after{content:attr(aria-label);position:absolute;top:calc(100% + 7px);left:50%;transform:translateX(-50%);
  background:#1e293b;color:#fff;font-size:11.5px;font-weight:500;line-height:1.3;white-space:nowrap;max-width:220px;
  padding:5px 9px;border-radius:6px;opacity:0;visibility:hidden;transition:opacity .12s;z-index:30;pointer-events:none}
.vaga-iconflat[aria-label]:hover::after{opacity:1;visibility:visible}

/* Cards colapsáveis da visualização da vaga (fechados por padrão) */
.vaga-coll > .rh-card__header{cursor:pointer;user-select:none;display:flex;align-items:center;justify-content:space-between;gap:8px}
/* `.rh-panel__body` entra junto (05/08): metade das listas do sistema usa o corpo do painel dentro
   de um .rh-card (kits, isenções, provas...). Sem isto o cabeçalho fechava e o corpo continuava
   à mostra — o cartão "abria e fechava" sem fechar nada. */
.vaga-coll > .rh-card__body,
.vaga-coll > .rh-panel__body{display:none}
.vaga-coll.is-open > .rh-card__body,
.vaga-coll.is-open > .rh-panel__body{display:block}
.vaga-coll__chev{transition:transform .2s ease;font-size:13px;opacity:.65;flex:0 0 auto}
.vaga-coll.is-open .vaga-coll__chev{transform:rotate(180deg)}
.vaga-coll__cnt{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:18px;padding:0 6px;
  border-radius:9px;background:#e2e8f0;color:#475569;font-size:11px;font-weight:700;margin-left:6px}

/* Abas dos Requisitos (Básico/Técnico/Essencial/Comportamental + total) */
.vaga-rtabs{display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid #e5e7eb;margin-bottom:10px}
.vaga-rtab{appearance:none;background:none;border:none;border-bottom:2px solid transparent;padding:6px 12px;margin-bottom:-1px;
  font-size:13px;font-weight:600;color:#64748b;cursor:pointer;display:inline-flex;flex-direction:column;align-items:center;gap:2px;line-height:1.25}
.vaga-rtab__top{display:inline-flex;align-items:center;gap:6px}
.vaga-rtab:hover{color:#0f172a}
.vaga-rtab.is-active{color:#0f766e;border-bottom-color:#0f766e}
.vaga-rtab__n{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:18px;padding:0 5px;
  border-radius:9px;background:#e2e8f0;color:#475569;font-size:11px;font-weight:700}
.vaga-rtab.is-active .vaga-rtab__n{background:#0f766e;color:#fff}
.vaga-rtab__score{font-size:10.5px;font-weight:600;color:#94a3b8;letter-spacing:.2px}
.vaga-rtab.is-active .vaga-rtab__score{color:#0f766e}
.vaga-rpane{display:none}
.vaga-rpane.is-active{display:block}

/* Lista de candidatos dentro da vaga */
.vaga-cand-list{display:flex;flex-direction:column;gap:1px}
.vaga-cand{display:flex;align-items:center;gap:10px;padding:8px 6px;border-radius:8px;text-decoration:none;color:inherit;border-bottom:1px solid #f1f5f9}
.vaga-cand:last-child{border-bottom:none}
.vaga-cand:hover{background:#f8fafc}
.vaga-cand__av{width:34px;height:34px;border-radius:50%;overflow:hidden;flex:0 0 auto;background:#eef2f7;display:inline-flex;align-items:center;justify-content:center;color:#94a3b8}
.vaga-cand__av img{width:100%;height:100%;object-fit:cover}
.vaga-cand__info{display:flex;flex-direction:column;min-width:0;flex:1}
.vaga-cand__nome{font-size:13.5px;font-weight:600;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vaga-cand__meta{font-size:11.5px;color:#64748b}
.vaga-cand__go{color:#cbd5e1;font-size:13px;flex:0 0 auto}
.vaga-cand__view{width:32px;height:32px;border-radius:8px;border:1px solid #e5e7eb;display:inline-grid;place-items:center;color:#0891b2;background:#fff;flex:0 0 auto;font-size:15px}
.vaga-cand:hover .vaga-cand__view{background:#eef6fb;border-color:#bae6fd}

/* ===== Dashboard premium (.dash) — global (Master + Consultoria + Cliente) 2026-07-02 ===== */

/* ====== Dashboard premium — escopo .dash (não vaza pro resto do painel) ====== */
.dash{--nv:#011126;--cy:#00B6D6;--cyd:#006F93;--ink:#0c1c2b;--mut:#5c7286;--faint:#8aa0b2;--line:#e9eef3;--bg:#f5f9fc;--card:#fff;
    font-family:'Inter',system-ui,sans-serif;color:var(--ink);
    max-width:1200px;margin-left:auto;margin-right:auto}
.dash *{box-sizing:border-box}
.dash h1,.dash h2,.dash h3,.dash .pjk{font-family:'Plus Jakarta Sans',sans-serif;letter-spacing:-.01em}
/* ===== BLOCOS COLAPSÁVEIS DOS DASHBOARDS (dono, 05/08/2026) =====
   Cabeçalho preto/branco no padrão jul-2026. Nasceu no dashboard do Master (Negócio × Operacional)
   e o dono pediu o mesmo na Consultoria (Panorama × Sua carteira) e no painel da empresa — por isso
   mora aqui, e não no <style> de uma view só.
   O corpo NÃO usa display:none: anima `grid-template-rows` de 1fr para 0fr, então a altura continua
   sendo a do conteúdo, sem número mágico que quebre quando entrar um gráfico novo.
   ⚠️ Exige UM filho único dentro de .dash-bloco__b (o .dash-bloco__i). */
.dash-bloco{border:1px solid var(--line);border-radius:16px;overflow:hidden;margin-bottom:16px;
    background:var(--card);box-shadow:0 1px 2px rgba(8,30,50,.05)}
.dash-bloco__h{display:flex;align-items:center;gap:10px;width:100%;padding:13px 18px;border:0;cursor:pointer;
    background:var(--nv);color:#fff;font:inherit;font-size:14px;font-weight:700;text-align:left;
    font-family:'Plus Jakarta Sans',sans-serif;letter-spacing:.01em}
.dash-bloco__h:hover{background:#04203c}
.dash-bloco__h > .bi:first-child{font-size:17px;color:var(--cy)}
.dash-bloco__h small{font-weight:500;font-size:12px;opacity:.72;margin-left:4px}
.dash-bloco__chev{margin-left:auto;font-size:15px;opacity:.85;transition:transform .22s}
.dash-bloco.is-off .dash-bloco__chev{transform:rotate(-90deg)}
.dash-bloco__b{display:grid;grid-template-rows:1fr;transition:grid-template-rows .24s ease}
.dash-bloco__b > *{overflow:hidden;min-height:0;padding:16px 18px 18px}
.dash-bloco.is-off .dash-bloco__b{grid-template-rows:0fr}
.dash-bloco.is-off .dash-bloco__b > *{padding-top:0;padding-bottom:0}
.dash-bloco__b .dash-kpis{margin-top:0}
.dash-bloco__b > * > .dash-sec:first-child{margin-top:0}
@media(prefers-reduced-motion:reduce){.dash-bloco__b,.dash-bloco__chev{transition:none}}

.dash-sec{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--cyd);margin:26px 0 14px}
.dash-sec i{font-size:16px}
.dash-sec--first{margin-top:8px}
/* KPIs */
.dash-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px}
.kcard{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 12px;box-shadow:0 1px 2px rgba(8,30,50,.05)}
.kcard__l{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--mut)}
.kcard__l i{font-size:13px;color:var(--cyd)}
.kcard__v{font-size:20px;font-weight:800;font-family:'Plus Jakarta Sans',sans-serif;margin-top:5px;line-height:1}
.kcard__v.warn{color:#b45309}.kcard__v.ok{color:#15803d}
a.kcard{text-decoration:none;color:inherit;display:block}
.kcard--link{cursor:pointer;transition:transform .1s ease,box-shadow .15s ease}
.kcard--link:hover{transform:translateY(-2px);box-shadow:0 12px 26px -12px rgba(8,30,50,.4);border-color:var(--cy,#00B6D6)}
/* Cartões genéricos */
.dcard{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:0 1px 2px rgba(8,30,50,.05)}
.dcard__t{font-size:15px;font-weight:700;font-family:'Plus Jakarta Sans',sans-serif;color:var(--nv);margin-bottom:14px;display:flex;align-items:center;gap:8px}
.dcard__t i{color:var(--cyd)}
.dgrid2{display:grid;grid-template-columns:1.5fr 1fr;gap:14px}
.dgrid-fat{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:980px){.dgrid2,.dgrid-fat{grid-template-columns:1fr}}
/* Carteira de clientes */
.cli{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid var(--line)}
.cli:first-of-type{border-top:none}
.cli__av{width:38px;height:38px;border-radius:10px;flex:0 0 auto;display:grid;place-items:center;font-weight:700;font-size:14px;font-family:'Plus Jakarta Sans',sans-serif;background:#eef6fb;color:var(--cyd)}
.cli__nm{flex:1;min-width:0}
.cli__nm b{font-size:14px;color:var(--nv);font-weight:600;display:block}
.cli__nm small{font-size:12px;color:var(--faint)}
.pill{font-size:11px;font-weight:700;padding:3px 10px;border-radius:999px;white-space:nowrap}
.pill--ok{background:#dcfce7;color:#15803d}.pill--warn{background:#fef3c7;color:#b45309}
.pill--danger{background:#fee2e2;color:#b91c1c}.pill--info{background:#e0f2fe;color:#0369a1}.pill--muted{background:#f1f5f9;color:#64748b}
.cli__val{width:84px;text-align:right;font-size:14px;font-weight:700;font-family:'Plus Jakarta Sans',sans-serif;color:var(--nv)}
/* Donut saúde das contas */
.donut-wrap{display:flex;align-items:center;gap:18px}
.donut{width:128px;height:128px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;position:relative}
.donut::after{content:"";position:absolute;width:84px;height:84px;border-radius:50%;background:var(--card)}
.donut__c{position:relative;z-index:1;text-align:center}
.donut__c b{font-size:24px;font-weight:800;font-family:'Plus Jakarta Sans',sans-serif;color:var(--nv);display:block;line-height:1}
.donut__c span{font-size:11px;color:var(--mut)}
.donut-leg{flex:1;display:flex;flex-direction:column;gap:7px}
.donut-leg div{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--mut)}
.donut-leg i{width:10px;height:10px;border-radius:3px;flex:0 0 auto}
.donut-leg b{margin-left:auto;color:var(--nv)}
/* Listas chave->valor (faturamento, previsão) */
.kv{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-top:1px solid var(--line);font-size:13.5px}
.kv:first-of-type{border-top:none}
.kv span{color:var(--mut);display:flex;align-items:center;gap:8px}.kv span i{color:var(--cyd);font-size:15px}
.kv b{font-weight:700;font-family:'Plus Jakarta Sans',sans-serif;color:var(--nv)}
.kv b.ok{color:#15803d}.kv b.danger{color:#b91c1c}
/* Gráficos */
.dcharts{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.dchart{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px}
.dchart__t{font-size:14px;font-weight:700;font-family:'Plus Jakarta Sans',sans-serif;color:var(--nv);margin-bottom:14px;display:flex;align-items:center;gap:8px}
.dchart__t i{color:var(--cyd)}
.dchart__plot{display:flex;align-items:flex-end;gap:10px;height:140px;padding-top:18px}
.dchart__g{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}
.dchart__bars{display:flex;align-items:flex-end;gap:3px;height:120px;width:100%;justify-content:center}
.dbar{width:60%;max-width:34px;border-radius:5px 5px 0 0;position:relative;min-height:2px}
.dbar__v{position:absolute;top:-15px;left:50%;transform:translateX(-50%);font-size:10px;font-weight:700;color:var(--mut);white-space:nowrap}
.dbar--stack{width:60%;max-width:30px;border-radius:5px 5px 0 0;overflow:hidden;display:flex;flex-direction:column-reverse}
.dbar--stack>i{display:block;width:100%}
.dchart__x{font-size:11px;color:var(--faint);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.dchart__leg{display:flex;flex-wrap:wrap;gap:14px;margin-top:12px;font-size:12px;color:var(--mut)}
.dchart__leg i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}
/* Subtítulo dentro de um bloco do dashboard (05/08): o Funil passou a morar DENTRO do Operacional,
   então precisa de uma divisória — sem ela os dois assuntos viram uma parede só de cartões. */
.dash-sub{display:flex;align-items:center;gap:7px;margin:20px 0 10px;padding-top:14px;
  border-top:1px solid var(--line,#e9eef3);font-size:12px;font-weight:800;letter-spacing:.04em;
  text-transform:uppercase;color:var(--nv,#011126)}
.dash-sub .bi{color:var(--cyd,#006F93)}
/* Operação — cards de detalhe (tudo visível) */
.opgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.opcard{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px}
.opcard__h{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.opcard__ic{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-size:16px;flex:0 0 auto}
.opcard__t{font-size:11.5px;color:var(--mut)}
.opcard__n{font-size:19px;font-weight:800;font-family:'Plus Jakarta Sans',sans-serif;color:var(--nv);line-height:1.1}
.opcard__rows{border-top:1px solid var(--line);padding-top:7px}
.opcard__row{display:flex;align-items:center;justify-content:space-between;padding:3px 0;font-size:11.5px;color:var(--mut)}
.opcard__row b{color:var(--ink);font-weight:600}

/* ===== Botões .va (reusáveis: vaga show + dashboards) 2026-07-02 ===== */
.va-actions{display:flex;flex-wrap:wrap;gap:8px}
.va-actions form{margin:0}
.va-btn{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;padding:8px 15px;border-radius:8px;border:1px solid var(--rh-border,#e5e7eb);background:#fff;color:#011126;cursor:pointer;font-family:Inter,sans-serif;text-decoration:none}
/* Padronizados à paleta oficial (cor por ação, preenchido) — iguais aos rh-btn--* */
.va-btn--edit{background:#2563eb;color:#fff;border-color:#2563eb}
.va-btn--edit:hover{background:#1d4ed8;border-color:#1d4ed8;color:#fff}
.va-btn--danger{background:#dc2626;color:#fff;border-color:#dc2626}
.va-btn--danger:hover{background:#b91c1c;border-color:#b91c1c;color:#fff}
.va-btn--rep{background:#0891b2;color:#fff;border-color:#0891b2}
.va-btn--rep:hover{background:#0e7490;border-color:#0e7490;color:#fff}
.va-btn--edit i,.va-btn--danger i,.va-btn--rep i{color:#fff}
.va-btn:hover{filter:brightness(.97);box-shadow:0 2px 8px -4px rgba(8,30,50,.2)}

/* ===== Chips de isenção (presets 3/6/12 meses) 2026-07-02 ===== */
.isencao-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}
.isencao-chip{font-size:12px;padding:4px 11px;border:1px solid var(--rh-border,#e5e7eb);border-radius:999px;background:#fff;color:#0891b2;font-weight:600;cursor:pointer}
.isencao-chip:hover{background:#eef6fb;border-color:#bae6fd}
.isencao-chip.is-active{background:#0891b2;border-color:#0891b2;color:#fff}

/* Botão "Ajuda" (manuais) em destaque — qualquer .rh-btn que contenha o ícone de interrogação.
   question-circle só é usado nesses botões dentro de .rh-btn (conferido). */
.rh-btn:has(> .bi-question-circle){
    background:#0891b2;border-color:#0891b2;color:#fff;font-weight:600;
    box-shadow:0 1px 5px rgba(8,145,178,.35)
}
.rh-btn:has(> .bi-question-circle):hover,
.rh-btn:has(> .bi-question-circle):focus{
    background:#0e7490;border-color:#0e7490;color:#fff
}
.rh-btn:has(> .bi-question-circle) .bi-question-circle{color:#fff}
/* Ajuda GERAL (visão geral de todas as abas) — cor distinta (roxo) dos Ajudas por card (ciano). */
.rh-btn.rh-help-overview{background:#6d28d9 !important;border-color:#6d28d9 !important;color:#fff !important;font-weight:600;box-shadow:0 1px 5px rgba(109,40,217,.35)}
.rh-btn.rh-help-overview:hover,.rh-btn.rh-help-overview:focus{background:#5b21b6 !important;border-color:#5b21b6 !important;color:#fff !important}
.rh-btn.rh-help-overview .bi-question-circle{color:#fff !important}

/* Cabeçalho preto/branco em cards colapsáveis (reuso do padrão vagas/show) — agora global (preto puro) */
.vaga-coll--dark > .rh-card__header{background:#000;border-color:#000}
.vaga-coll--dark > .rh-card__header .rh-card__title,
.vaga-coll--dark > .rh-card__header .vaga-coll__chev{color:#fff}
.vaga-coll--dark > .rh-card__header .rh-card__title i{color:#00B6D6}

/* ===== Jornada por faixas no cadastro de vaga (04/08/2026) =====
   Uma linha por horário diferente da semana (Seg-Qui, Sexta, Sábado). Substituiu os 3 campos de
   texto livre que não conseguiam representar mais de um horário e faziam a carga sair errada. */
.jor-lista { display: flex; flex-direction: column; gap: 8px; }
.jor-linha { display: flex; flex-wrap: wrap; align-items: center; gap: 7px;
    background: var(--rh-bg, #f8fafc); border: 1px solid var(--rh-bord, #e2e8f0);
    border-radius: 10px; padding: 8px 10px; }
.jor-num { width: 22px; height: 22px; border-radius: 50%; background: #011126; color: #fff;
    font-size: 12px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.jor-linha .rh-input { width: auto; padding: 5px 8px; font-size: 13px; }
.jor-dia  { min-width: 104px; }
.jor-hora { width: 108px; }
.jor-int  { width: 74px; }
.jor-sep  { font-size: 12.5px; color: var(--rh-muted, #64748b); }
.jor-calc { margin-left: auto; font-size: 12.5px; font-weight: 600; color: #0f172a; }
.jor-conta { font-weight: 400; color: var(--rh-muted, #64748b); }
/* 2ª linha da faixa: intervalo + a conta completa, para o intervalo não parecer campo solto */
.jor-linha2 { flex: 1 0 100%; display: flex; flex-wrap: wrap; align-items: center; gap: 7px;
    margin-top: 2px; padding-top: 7px; border-top: 1px dashed var(--rh-bord, #e2e8f0); }
.jor-del  { margin-left: auto; background: none; border: 0; color: #b91c1c; cursor: pointer; padding: 2px 6px; border-radius: 6px; }
.jor-del:hover { background: #fee2e2; }
.jor-rodape { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 9px; }
.jor-total { margin-left: auto; font-size: 13.5px; color: #0f172a; }
.jor-total strong { font-size: 15px; }
@media (max-width: 720px) {
    .jor-calc { margin-left: 0; width: 100%; }
    .jor-hora { width: 96px; }
}

/* Botão "transferir de vaga" na lista de candidatos da vaga (04/08/2026) */
.vaga-cand__transf { flex: 0 0 auto; background: none; border: 1px solid var(--rh-bord, #e2e8f0);
    color: #0891b2; border-radius: 8px; width: 32px; height: 32px; cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center; font-size: 15px; }
.vaga-cand__transf:hover { background: #ecfeff; border-color: #67e8f9; }

/* Painel de transferência aberto NA LINHA do candidato (04/08) — substituiu o modal, que abria
   no fim da página e ficava deslocado do que o usuário tinha clicado. */
.vaga-cand-transf { margin: -2px 0 8px 34px; padding: 10px 12px; border: 1px solid #a5f3fc;
    border-left: 3px solid #0891b2; border-radius: 10px; background: #ecfeff; }
.vaga-cand-transf__form { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.vaga-cand-transf__lbl { font-size: 12.5px; font-weight: 700; color: #155e75; white-space: nowrap; }
.vaga-cand-transf__form .rh-input { width: auto; padding: 5px 9px; font-size: 13px; }
.vaga-cand-transf__form select.rh-input { max-width: 420px; }
.vaga-cand-transf__motivo { flex: 1 1 220px; min-width: 180px; }
.vaga-cand-transf__form .rh-btn { padding: 5px 12px; font-size: 13px; }
.vaga-cand-transf__nota { flex: 1 0 100%; font-size: 11.5px; color: #155e75; }
.vaga-cand-transf__vazio { font-size: 12.5px; color: #155e75; }
@media (max-width: 720px) {
    .vaga-cand-transf { margin-left: 0; }
    .vaga-cand-transf__form select.rh-input,
    .vaga-cand-transf__motivo { flex: 1 0 100%; max-width: none; }
}

/* Marcador discreto do modo de processo no card do portal (05/08/2026).
   O selo em texto ("100% IA", "IA + Analista de RH", "Analista de RH") saiu a pedido do cliente:
   não ajudava o candidato e predispunha contra a vaga. Sobrou um ponto de 7px cuja COR identifica
   o modo para quem cuida da plataforma — ciano = IA total, roxo = IA + analista, cinza = manual.
   Sem texto e sem tooltip de propósito. */
/* 05/08: passou a ficar NA LINHA do código (antes ocupava uma linha só dele). O margin-top saiu e
   entrou um respiro à direita — visualmente vira o bullet do "Cód. XXX". */
.vaga-card__marca { display:inline-block; width:7px; height:7px; border-radius:50%;
    margin-right:5px; opacity:.55; vertical-align:middle; }

/* ============================================================
   SIDEBAR PREMIUM (09/08/2026, pedido do dono) — o menu acompanha
   a cor do DECK das telas novas: no Master é o navy padrão; no
   portal do cliente é a 4ª cor (cor_painel → --rh-deck, definida
   no layouts/cliente.php); cliente sem cor configurada = padrão.
   Vale também para a barra de rolagem: o menu rola SEM barra
   aparente (dono: "não podemos ter isso ali").
   ============================================================ */
.rh-sidebar {
    --deck: var(--rh-deck, #0f172a);
    background:
        radial-gradient(320px 240px at 90% -6%, rgba(10, 132, 224, .16), transparent 70%),
        linear-gradient(175deg, color-mix(in srgb, var(--deck) 74%, #33619f) 0%, var(--deck) 48%, color-mix(in srgb, var(--deck) 86%, #000) 100%);
    border-right: 1px solid rgba(255, 255, 255, .06);
}
/* o menu rola, a barra não aparece (wheel/touch continuam funcionando) */
.rh-nav--main { scrollbar-width: none; -ms-overflow-style: none; }
.rh-nav--main::-webkit-scrollbar { width: 0; height: 0; display: none; }
/* itens: pílulas suaves; ativa com filete ciano e leve sombra */
.rh-nav__item a { color: #c9d6e6; border-radius: 10px; }
.rh-nav__item a:hover { background: rgba(255, 255, 255, .07); color: #fff; }
.rh-nav__item.active a {
    background: linear-gradient(90deg, rgba(10, 132, 224, .30), rgba(10, 132, 224, .06));
    color: #fff;
    box-shadow: inset 3px 0 0 var(--mm-cyan), 0 6px 14px -9px rgba(0, 0, 0, .55);
}
/* respiros e divisórias na cor do deck */
.rh-sidebar__brand { border-bottom: 1px solid rgba(255, 255, 255, .06); }
.rh-sidebar__footer {
    border-top: 1px solid rgba(255, 255, 255, .08);
    background: color-mix(in srgb, var(--deck) 90%, #000);
}

/* ============================================================
   TOOLTIP DO SISTEMA (10/08/2026, pedido do dono — padrão
   W3Schools estilizado). USO: data-tip="texto" em qualquer
   elemento; o balão navy com seta aparece no hover. Dentro de
   tabelas (.lc-table) ele abre PARA BAIXO, senão o overflow do
   scroll horizontal cortaria o balão da primeira linha.
   ============================================================ */
/* 10/08 (dono: "tooltips SEMPRE na frente, tá cortando"): o balão virou ELEMENTO FLUTUANTE
   criado por JS no <body> (app.js) — pseudo-elemento sempre acaba cortado por overflow ou
   preso em stacking context. As regras ::after/::before abaixo ficam NEUTRALIZADAS aqui e
   servem só de histórico das posições por contexto. */
[data-tip]::after, [data-tip]::before { content: none !important; }
.rh-tip-fly { position: fixed; z-index: 99999; background: #132441; color: #fff;
    font-size: 11.5px; font-weight: 500; line-height: 1.45; padding: 7px 11px;
    border-radius: 8px; width: max-content; max-width: 280px; white-space: normal; text-align: left;
    pointer-events: none; box-shadow: 0 10px 24px -8px rgba(8, 15, 30, .5);
    animation: rhTipIn .12s ease-out }
@keyframes rhTipIn { from { opacity: 0; transform: translateY(3px) } to { opacity: 1; transform: none } }
[data-tip] { position: relative; }
[data-tip]::after {
    content: attr(data-tip);
    position: absolute; bottom: calc(100% + 8px); left: 50%;
    transform: translateX(-50%) translateY(4px);
    background: #132441; color: #fff;
    font-size: 11.5px; font-weight: 500; line-height: 1.45;
    padding: 7px 11px; border-radius: 8px;
    width: max-content; max-width: 280px; white-space: normal; text-align: left;
    box-shadow: 0 10px 24px -8px rgba(8, 15, 30, .5);
    opacity: 0; visibility: hidden; transition: opacity .15s, transform .15s;
    z-index: 95; pointer-events: none;
}
[data-tip]::before {
    content: ''; position: absolute; bottom: calc(100% + 3px); left: 50%;
    transform: translateX(-50%); border: 5px solid transparent; border-top-color: #132441;
    opacity: 0; visibility: hidden; transition: opacity .15s; z-index: 95; pointer-events: none;
}
[data-tip]:hover::after { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }
[data-tip]:hover::before { opacity: 1; visibility: visible; }
/* o elemento em hover sobe na pilha — senão as LINHAS seguintes da tabela pintam POR CIMA
   do balão (elementos posicionados depois no DOM vencem quando o z-index é auto) */
[data-tip]:hover { z-index: 96; }
/* dentro de tabela: abre para BAIXO (o wrap com overflow cortaria em cima) e alinhado à
   ESQUERDA do elemento (centralizado estourava a borda do scroll e era recortado) */
.lc-table [data-tip]::after { bottom: auto; top: calc(100% + 8px); left: 0; transform: translateY(-4px); }
.lc-table [data-tip]::before { bottom: auto; top: calc(100% + 3px); left: 14px; transform: none; border-top-color: transparent; border-bottom-color: #132441; }
.lc-table [data-tip]:hover::after { transform: translateY(0); }
/* na coluna de AÇÕES (borda direita) o balão alinha pela DIREITA para não ser cortado */
.lc-table .lc-act [data-tip]::after { left: auto; right: 0; }
.lc-table .lc-act [data-tip]::before { left: auto; right: 14px; }
/* pills encostadas na borda direita dos cards de abas (Ver Vaga): balão alinha pela DIREITA
   do elemento — centralizado estourava o card e era recortado/ficava por trás */
.vt-row [data-tip]::after, .vcd-acts [data-tip]::after { left: auto; right: 0; transform: translateY(4px); }
.vt-row [data-tip]::before, .vcd-acts [data-tip]::before { left: auto; right: 14px; transform: none; }
.vt-row [data-tip]:hover::after, .vcd-acts [data-tip]:hover::after { transform: translateY(0); }

/* ============================================================
   .ctgx — RESKIN PREMIUM DAS TELAS DE PARÂMETROS (10/08/2026)
   Requisitos/Benefícios/Documentos (catalogo/index) + Provas.
   ESCOPADO de propósito: o motor (crud_panel/statcards/
   familia_replicar) é compartilhado com o Master — lá o visual
   antigo permanece até a passada daquelas telas.
   ============================================================ */
/* Resumo (statcards) */
.ctgx .rh-bloco{border:1px solid #e6ebf2;border-radius:16px;overflow:hidden;background:#fff;
  box-shadow:0 2px 4px rgba(10,42,107,.03),0 14px 34px -24px rgba(10,42,107,.28)}
.ctgx .rh-bloco__h{background:#fff;color:#475569;font-size:11px;font-weight:800;letter-spacing:.08em;
  text-transform:uppercase;border-bottom:1px solid #eef2f7;padding:10px 14px;display:flex;align-items:center;gap:9px}
.ctgx .rh-bloco__h > i{width:24px;height:24px;border-radius:7px;background:#e8f3fd;color:#0A84E0;
  display:inline-flex;align-items:center;justify-content:center;font-size:12px}
.ctgx .rh-bloco__tot{margin-left:auto;background:#0f172a;color:#fff;border:none;border-radius:999px;
  padding:2px 12px;font-weight:800;font-size:12.5px}
/* painel do CRUD */
.ctgx .rh-panel{background:#fff;border:1px solid #e6ebf2;border-radius:16px;padding:14px 16px;
  box-shadow:0 2px 4px rgba(10,42,107,.03),0 14px 34px -24px rgba(10,42,107,.28)}
.ctgx .rh-panel__count{color:#64748b;font-size:12.5px}
/* botão principal (Novo …) = âmbar pílula; Replicar/criar = verde suave */
.ctgx .rh-btn--primary{background:linear-gradient(135deg,#ffb54d,#F5920C)!important;color:#241503!important;
  border:none!important;border-radius:10px!important;padding:8px 15px!important;font-size:12.5px!important;
  font-weight:700!important;box-shadow:0 6px 16px -6px rgba(245,146,12,.5)!important}
.ctgx .rh-btn--primary:hover{filter:brightness(1.06)}
.ctgx .rh-btn--view{background:color-mix(in srgb,#0891b2 12%,#fff)!important;color:#0e7490!important;
  border:none!important;border-radius:10px!important;font-size:12.5px!important;font-weight:700!important;box-shadow:none!important}
.ctgx .rh-btn--view:hover{background:#0891b2!important;color:#fff!important}
.ctgx .rh-btn--create{background:color-mix(in srgb,#16a34a 12%,#fff)!important;color:#15803d!important;
  border:none!important;border-radius:10px!important;padding:8px 15px!important;font-size:12.5px!important;font-weight:700!important}
.ctgx .rh-btn--create:hover{background:#16a34a!important;color:#fff!important}
.ctgx .rh-btn--ghost,.ctgx .rh-btn--cancel,.ctgx .rh-btn--back{border-radius:10px!important;font-size:12.5px!important;font-weight:700!important}
/* abas/chips de filtro: pílulas (a aba preta antiga morreu aqui) */
.ctgx .rh-tabs{border:none!important;display:flex;flex-wrap:wrap;gap:6px}
.ctgx .rh-tabs .nav-link{border:1px solid #e6ebf2!important;background:#fff!important;color:#475569!important;
  border-radius:999px!important;padding:5px 13px!important;font-size:12px!important;font-weight:700!important;margin:0!important}
.ctgx .rh-tabs .nav-link:hover{border-color:#0A84E0!important;color:#0A84E0!important}
.ctgx .rh-tabs .nav-link.active{background:#0f172a!important;border-color:#0f172a!important;color:#fff!important}
.ctgx .rh-crud-chip{border:1px solid #e6ebf2!important;background:#fff!important;color:#475569!important;
  border-radius:999px!important;padding:5px 13px!important;font-size:12px!important;font-weight:700!important}
.ctgx .rh-crud-chip:hover{border-color:#0A84E0!important;color:#0A84E0!important}
.ctgx .rh-crud-chip.is-active{background:#0f172a!important;border-color:#0f172a!important;color:#fff!important}
/* tabela do painel e tabela comum */
.ctgx .rh-panel-table th,.ctgx .rh-table th{background:#fff;color:#64748b;font-size:10.5px;font-weight:800;
  text-transform:uppercase;letter-spacing:.06em;border-bottom:2px solid #eef2f7;padding:9px 10px}
.ctgx .rh-panel-table td,.ctgx .rh-table td{padding:8px 10px;border-bottom:1px solid #f1f5f9;font-size:12.5px}
.ctgx .rh-panel-table tbody tr:hover,.ctgx .rh-table tbody tr:hover{background:#f8fafc}
/* botõezinhos de ação por linha */
.ctgx .rh-panel-btn,.ctgx .rh-iconbtn{border:none!important;border-radius:8px!important;width:28px;height:28px;
  display:inline-flex;align-items:center;justify-content:center;font-size:12.5px;transition:.15s;
  background:color-mix(in srgb,var(--pb,#0A84E0) 12%,#fff)!important;color:var(--pb,#0A84E0)!important}
.ctgx .rh-panel-btn--view,.ctgx .rh-iconbtn--view{--pb:#0891b2}
.ctgx .rh-panel-btn--edit,.ctgx .rh-iconbtn--edit{--pb:#4338ca}
.ctgx .rh-panel-btn--delete,.ctgx .rh-iconbtn--delete{--pb:#dc2626}
.ctgx .rh-panel-btn:hover,.ctgx .rh-iconbtn:hover{background:var(--pb)!important;color:#fff!important;transform:translateY(-1px)}
/* cards escuros (Replicar família / lista de provas) viram brancos com chip de ícone */
.ctgx .rh-card{border:1px solid #e6ebf2;border-radius:16px;overflow:hidden;
  box-shadow:0 2px 4px rgba(10,42,107,.03),0 14px 34px -24px rgba(10,42,107,.28)}
.ctgx .vaga-coll--dark > .rh-card__header{background:#fff!important;border-bottom:1px solid #eef2f7!important;padding:12px 16px}
.ctgx .vaga-coll--dark > .rh-card__header .rh-card__title{color:#0f172a!important;font-size:13.5px;display:inline-flex;align-items:center;gap:9px}
.ctgx .vaga-coll--dark > .rh-card__header .rh-card__title i{width:28px;height:28px;border-radius:9px;
  background:#ede9fe;color:#7c3aed!important;display:inline-flex;align-items:center;justify-content:center;font-size:14px}
.ctgx .vaga-coll--dark > .rh-card__header .vaga-coll__chev{color:#94a3b8!important}
.ctgx .vaga-coll__cnt{background:#0f172a;color:#fff}
/* campos e avisos */
.ctgx .rh-input{border-radius:10px}
.ctgx .rh-alert{display:block;line-height:1.6}
.ctgx .rh-alert > i:first-child{margin-right:6px}
/* "globais (base do sistema)" — o details vira uma caixinha leve */
.ctgx details{border:1px dashed #cbd5e1;border-radius:12px;background:#f8fafc;padding:10px 14px}
.ctgx details summary{font-size:12.5px;color:#475569}

/* ===== DECK premium compartilhado (10/08) — versão canônica do bloco que as telas
   repetiam inline (Parâmetros/Contas/Candidaturas): kicker + título + botões-pílula no topo,
   KPIs (.ctg-kpis) flutuando na borda e filtros translúcidos dentro do deck. ===== */
.ctg-deck{position:relative;border-radius:18px;color:#e8eef7;overflow:hidden;--deck:var(--rh-deck,#0f172a);
  background:radial-gradient(820px 280px at 88% -50%,rgba(10,132,224,.30),transparent 60%),
             radial-gradient(640px 240px at -8% 130%,rgba(16,58,134,.45),transparent 60%),
             linear-gradient(160deg,color-mix(in srgb,var(--deck) 74%,#3a6fc9) 0%,var(--deck) 60%,color-mix(in srgb,var(--deck) 86%,#000) 100%);
  padding:20px 22px 46px;box-shadow:0 18px 44px -18px rgba(10,23,43,.5)}
.ctg-deck::before{content:'';position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:42px 42px;mask-image:radial-gradient(620px 300px at 28% 0%,#000 25%,transparent 75%)}
.ctg-deck__top{position:relative;display:flex;justify-content:flex-end;gap:8px;margin-bottom:2px}
.ctg-kicker{position:relative;font-size:10.5px;letter-spacing:.22em;font-weight:700;color:#63b8f6;text-transform:uppercase}
.ctg-nome{position:relative;font-size:22px;font-weight:800;letter-spacing:-.4px;color:#fff;margin-top:2px}
.ctg-sub{position:relative;font-size:12.5px;color:#9fb3cd;margin-top:4px;max-width:760px}
.ctg-btn{border:none;border-radius:10px;padding:8px 15px;font-size:12.5px;font-weight:700;cursor:pointer;
  display:inline-flex;align-items:center;gap:7px;transition:.15s;text-decoration:none;
  background:rgba(255,255,255,.08);color:#dbe7f1;border:1px solid rgba(255,255,255,.14)}
.ctg-btn:hover{background:rgba(255,255,255,.16);color:#fff}
.ctg-btn--primary{background:linear-gradient(135deg,#ffb54d,#F5920C);color:#241503;border:none}
.ctg-btn--primary:hover{background:linear-gradient(135deg,#ffb54d,#F5920C);color:#241503;filter:brightness(1.06)}
.ctg-kpis{position:relative;z-index:2;margin:-30px 14px 16px}
.ctg-kpis .rh-statgrid{margin:0}
.ctg-kpis .rh-stathint{color:#cbd9ec;margin:0 4px 6px} /* a dica de clique fica sobre o deck */
.ctg-filtros{position:relative;margin-top:14px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ctg-filtros select,.ctg-filtros input{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);
  border-radius:10px;color:#fff;font-size:12.5px;padding:8px 12px;outline:none;transition:.15s;color-scheme:dark}
.ctg-filtros select:hover,.ctg-filtros select:focus,.ctg-filtros input:focus{border-color:rgba(255,255,255,.35);background:rgba(255,255,255,.12)}
.ctg-filtros select option{color:#0f172a;background:#fff}
.ctg-filtros input::placeholder{color:#7f96b4}
.ctg-filtros label{display:inline-flex;align-items:center;gap:6px;color:#9fb3cd;font-size:12px;font-weight:600;margin:0}
/* cartões colapsáveis premium do miolo (lista + inativos) */
.ctgx details.cand-coll{border:1px solid #e6ebf2;border-radius:16px;background:#fff;padding:0;overflow:hidden}
.ctgx details.cand-coll summary{list-style:none;cursor:pointer;display:flex;flex-wrap:wrap;align-items:center;gap:10px;
  padding:12px 16px;background:#fff;font-size:13.5px;font-weight:800;color:#0f172a}
.ctgx details[open].cand-coll summary{border-bottom:1px solid #eef2f7}
.cand-coll summary::-webkit-details-marker{display:none}
.cand-chip{width:28px;height:28px;border-radius:9px;background:#e8f3fd;color:#0A84E0;display:inline-flex;align-items:center;justify-content:center;font-size:14px;flex:0 0 auto}
.cand-cnt{background:#0f172a;color:#fff;border-radius:999px;font-size:11.5px;font-weight:700;padding:2px 10px}
.cand-cnt:empty{display:none}
.cand-coll .chev{margin-left:auto;color:#94a3b8;font-size:13px;transition:.2s}
details[open].cand-coll .chev{transform:rotate(180deg)}

/* ---- CIDADE COM BUSCA (20/08) — sugestões do campo de cidade da ficha/documentos.
   A caixa é criada pelo kit-docs.js dentro de um .cid-wrap; o filtro ignora acento. ---- */
.cid-wrap{display:block;position:relative}
.cid-sug{position:absolute;z-index:60;left:0;right:0;top:calc(100% + 3px);background:#fff;
  border:1px solid #e6ebf2;border-radius:12px;box-shadow:0 14px 32px rgba(1,17,38,.18);
  max-height:250px;overflow:auto;padding:5px}
.cid-sug[hidden]{display:none}
.cid-sug__i{display:block;width:100%;text-align:left;background:none;border:0;cursor:pointer;
  padding:9px 11px;border-radius:9px;font-size:14px;font-weight:600;color:#1f2937}
.cid-sug__i:hover,.cid-sug__i.is-on{background:#e8f3fd;color:#0A84E0}
/* ⚠️ ESCAPE DO CARTÃO (fix 24/08): os cartões da Ficha de Documentos (.kit-card-doc) têm
   overflow:hidden — isso RECORTAVA a caixa de sugestões da cidade, e a tela parecia que "só o
   estado funcionava" (o dropdown do <select> de UF é desenhado pelo SO, então aparecia; o da
   cidade é HTML nosso e sumia). Nos cartões da ficha de documentos deixamos o conteúdo escapar
   e arredondamos o cabeçalho por conta própria (o overflow:hidden é que fazia isso antes). */
.kit-card-doc[data-fdoc]{overflow:visible}
.kit-card-doc[data-fdoc] > .kit-card-doc__head{border-top-left-radius:10px;border-top-right-radius:10px}

/* Botão de excluir dos catálogos da Folha — padrão "soft" da lista de kits (dono 26/08):
   sem contorno, fundo vermelho bem claro e ÍCONE VERMELHO; inverte no hover. */
.fc-catbtn{border:none!important;background:#fee2e2;color:#dc2626;width:30px;height:30px;border-radius:8px;
  display:inline-flex;align-items:center;justify-content:center;font-size:13px;cursor:pointer;transition:.15s}
.fc-catbtn:hover{background:#dc2626;color:#fff;transform:translateY(-1px)}
