/*
 * Central do RH — DESIGN TOKENS (fonte da verdade visual; ver docs/design-system.md e o handoff
 * "design_handoff_central_rh"). Folha estática versionada, carregada ANTES das demais:
 *   - painéis Filament: registrada via FilamentAsset (AppServiceProvider);
 *   - páginas fora do Filament (auth/portal/landing): <link> nos layouts.
 * REGRA: componentes usam `var(--crh-*)` — nunca hex solto espalhado pelo código.
 *
 * O tema escuro redefine só o que muda (superfícies/texto/bordas); cores de marca e feedback são
 * as mesmas nos dois temas. `.dark` no <html> é a convenção do Filament e das páginas de auth.
 */
:root {
    /* ── Marca / Ações ─────────────────────────────────────────────── */
    --crh-primary: #2F6BD8;         /* botões primários, links, item ativo */
    --crh-primary-hover: #1F4FA8;   /* hover/pressed do primário */
    --crh-primary-disabled: #9DB8E7; /* primário desabilitado (ex.: "Entrando...") */
    --crh-primary-soft: #EEF3FB;    /* fundos suaves, tags, ícones de destaque */
    --crh-primary-border: #D9E4F6;  /* bordas de superfícies soft */
    --crh-navy: #12203A;            /* sidebar, topo, texto forte, card escuro */
    --crh-blue-300: #8FB4EF;        /* detalhes claros do logo, acentos */
    --crh-blue-400: #6D9CEA;        /* acentos do logo */

    /* Recuo do topo para QUALQUER elemento `position: sticky` dentro da página do painel: a topbar
       do Filament também é sticky e passa por cima, então grudar em `top: 1rem` esconde o conteúdo
       atrás dela (foi o que aconteceu com a sidebar das fichas). Um token só, para as telas não
       divergirem. A medida vem do próprio Filament: `.fi-topbar { min-height: calc(spacing * 16) }`
       = 4rem; o meio rem restante é o respiro. */
    --crh-sticky-top: 4.5rem;

    /* ── Neutros / Superfícies ─────────────────────────────────────── */
    --crh-text-strong: #12203A;
    --crh-text-muted: #55627A;
    --crh-text-subtle: #8A97AD;
    --crh-border: #E2E7EF;
    --crh-border-light: #EEF1F5;
    --crh-bg: #F5F7FA;
    --crh-surface: #FFFFFF;
    /* Texto sobre superfície COLORIDA e cheia (botão primário, badge sólido). Não é o `surface`:
       aquele vira navy no modo escuro, e o rótulo de um botão âmbar continua branco nos dois
       temas — quem muda é o fundo do botão, não o contraste que ele precisa. */
    --crh-on-accent: #FFFFFF;
    --crh-surface-raised: #FFFFFF;  /* superfícies FLUTUANTES (menus/dropdowns): no claro = surface;
                                       no escuro, um passo mais clara que o navy para não se fundir */
    --crh-table-header-bg: #F0F4FA; /* regra de contraste: cabeçalho de tabela (texto --crh-text-muted) */

    /* ── Feedback / Status (cor + fundo suave) ─────────────────────── */
    --crh-success: #1F9D6B;
    --crh-success-soft: #E2F4EC;
    --crh-warning: #D9A327;
    --crh-warning-soft: #FBF3DD;
    --crh-danger: #D64545;
    --crh-danger-soft: #FBE6E6;
    --crh-info: #2F6BD8;
    --crh-info-soft: #EEF3FB;
    --crh-neutral: #55627A;
    --crh-neutral-soft: #EEF1F5;

    /* ── Funil de candidatos — tons decorativos das colunas (handoff design_handoff_funil) ──
     * Cor por posição da etapa (faixa do topo + badge). Ciclo de 5: azul·roxo·âmbar·verde·cinza —
     * casa com o funil default (Triagem·Teste·Entrevista·Aprovado·Base). O roxo não tem equivalente de
     * marca, então é definido AQUI uma única vez (token), nunca hex solto na folha de componentes. */
    --crh-funnel-0: var(--crh-primary);       /* azul   — 1ª etapa (Inicial) */
    --crh-funnel-1: #7C5CD6;                   /* roxo   — intermediária */
    --crh-funnel-2: var(--crh-warning);        /* âmbar  — intermediária */
    --crh-funnel-3: var(--crh-success);        /* verde  — Aprovado */
    --crh-funnel-4: var(--crh-text-subtle);    /* cinza  — Base de talentos / demais */

    /* ── Texto de apoio (helperText/hint) ──────────────────────────────
     * PADRÃO ÚNICO do sistema (pedido 2026-08-14): a explicação abaixo/ao lado do campo é nota de
     * rodapé — menor e mais discreta que o conteúdo, para não disputar com o rótulo e o valor.
     * Antes cada tela decidia (ganchos `.crh-helper-sm`/`.crh-modal-helper-sm`, de 2026-07-30);
     * agora é o default de TODO formulário e ficha (ver centralrh.css §"Texto de apoio").
     */
    --crh-help-size: 12px;
    --crh-help-line: 1.35;

    /* ── Raios ─────────────────────────────────────────────────────── */
    --crh-radius-sm: 8px;    /* badges pequenos, botões small, itens de nav */
    --crh-radius-md: 10px;   /* inputs, botões */
    --crh-radius-lg: 14px;   /* cards de conteúdo */
    --crh-radius-xl: 20px;   /* painéis/containers principais, modais */
    --crh-radius-2xl: 24px;  /* card de auth (container fixo do split) */
    --crh-radius-pill: 999px;

    /* ── Vidro (repaginação v1.0) ──────────────────────────────────────
     * Superfícies ELEVADAS (cards, topbar, modais, dropdowns, popovers) são translúcidas sobre o
     * fundo em gradiente. `--crh-glass` = superfície principal; `--crh-glass-2` = recuo (inputs,
     * painel de formulário); `--crh-hair*` = fios de separação (bordas internas, linhas de tabela).
     * A sidebar NÃO é vidro — navy sólido nos dois temas (contraste e foco de navegação).
     * Onde `backdrop-filter` não é suportado, cair para `--crh-surface` sólido (`@supports not`).
     */
    --crh-glass: rgba(255, 255, 255, 0.72);
    --crh-glass-2: rgba(255, 255, 255, 0.55);
    --crh-glass-border: rgba(255, 255, 255, 0.70);
    --crh-blur: 20px;
    --crh-hair: rgba(18, 32, 58, 0.08);
    --crh-hair-2: rgba(18, 32, 58, 0.05);

    /* Fundo do app: gradiente + halos (nunca cor chapada). `--crh-bg` segue como fallback sólido. */
    --crh-bg-a: #EAF0F8;
    --crh-bg-b: #F6F8FC;

    /* Halos do fundo: NÃO trocam no escuro (são a marca vazando pelo fundo) — quem troca é bg-a/bg-b.
     * `--crh-app-bg` é o fundo COMPOSTO: um token único consumido pelo shell dos painéis e pelas
     * páginas de auth/portal, para os dois não poderem divergir. Como `var()` resolve no contexto do
     * elemento, o mesmo token já rende o gradiente escuro sob `.dark`. */
    --crh-halo-a: rgba(47, 107, 216, 0.14);
    --crh-halo-b: rgba(143, 180, 239, 0.18);
    --crh-app-bg:
        radial-gradient(1200px 600px at 12% -8%, var(--crh-halo-a), transparent 60%),
        radial-gradient(1000px 700px at 108% 12%, var(--crh-halo-b), transparent 55%),
        linear-gradient(160deg, var(--crh-bg-a), var(--crh-bg-b));

    /* Auth: TAMANHO ÚNICO de todas as telas (login, recuperar, definir senha, enviado, ativação,
     * termo, portal). É token para a regra "sem tilt" valer por construção — se uma tela inventar a
     * própria medida, o salto volta. Ver centralrh-auth.css §.login. */
    --crh-auth-card-w: 960px;
    --crh-auth-card-h: 560px;

    /* ── Sombras / Focus ───────────────────────────────────────────── */
    --crh-shadow-card: 0 12px 40px -24px rgba(18, 32, 58, 0.35);
    --crh-shadow-panel: 0 24px 60px -30px rgba(18, 32, 58, 0.45);
    --crh-focus-ring: 0 0 0 4px rgba(47, 107, 216, 0.14);
    --crh-focus-ring-danger: 0 0 0 4px rgba(214, 69, 69, 0.12);

    /* ── Shell (sidebar Azul-noite — igual nos dois temas; specs do Turno 8b) ── */
    --crh-sidebar-bg: #12203A;
    --crh-sidebar-text: #C4CFE0;          /* rótulo de item de TOPO inativo */
    --crh-sidebar-subitem-text: #AEB9D0;  /* rótulo de SUBITEM (grupo rotulado) inativo */
    --crh-sidebar-group-label: #7F8DB0;   /* rótulo do grupo (caps) e placeholders */
    --crh-sidebar-icon: #8FB4EF;          /* ícone de item de topo */
    --crh-sidebar-subicon: #8593B0;       /* ícone de subitem */
    --crh-sidebar-accent: #7FA8EE;        /* barra de acento do subitem ativo */
    --crh-sidebar-active-sub-bg: rgba(127, 168, 238, 0.22); /* realce do subitem ativo (o 0.14 do proto some sobre o navy em tela real) */
    --crh-sidebar-muted: #9FB6DD;         /* textos de apoio sobre navy (login/cards) */
    --crh-sidebar-hover: rgba(255, 255, 255, 0.06);
    --crh-sidebar-border: rgba(255, 255, 255, 0.08);

    /* ── Marca (logotipo oficial Central do RH · J2K, 2026-08-17) ─────────────────────────────
     * Paleta oficial: 01 Azul Controle #0054A6 · 06 Preto #0E284F · 05 Branco #F5F5F5. O símbolo e o
     * wordmark trocam de cor por TEMA/CONTEXTO (HANDOFF do mural §1): coloridos nos fundos claros,
     * BRANCOS sobre navy (o "Símbolo Branco" do pacote da marca). */
    --crh-brand-mark: #0054A6;            /* símbolo (losango + chevron) e endosso "J2K" */
    --crh-brand-word: #0E284F;            /* wordmark "CENTRAL DO RH" */
    --crh-brand-on-navy: #F5F5F5;         /* símbolo + wordmark sobre navy / tema escuro */
}

/*
 * ── Logo "Central do RH" (componente COMPARTILHADO) ─────────────────────────────────────────────
 * Vive aqui (e não no centralrh.css) porque esta folha carrega em TODAS as superfícies: painéis
 * Filament (asset) e páginas de auth/portal/landing (layouts). Markup único em
 * resources/views/components/brand-logo.blade.php (lockup: símbolo + wordmark [+ endosso "J2K"]) e
 * components/brand-symbol.blade.php (símbolo isolado) — vetores do arquivo OFICIAL da marca
 * (public/images/brand/central-do-rh-logotipo.svg), inline num <svg> só. As cores por classe trocam
 * a VARIANTE (identidade Central do RH · J2K, 2026-08-17):
 *   - padrão (fundos claros): símbolo Azul Controle #0054A6, wordmark Preto #0E284F;
 *   - sobre navy (`.crh-brand--on-navy`, sidebar do Filament ou tema `.dark`): símbolo E wordmark em
 *     Branco #F5F5F5 — a variante que o pacote da marca entrega como "Símbolo Branco".
 * `.crh-brand__mark` é o <svg> do lockup: os contextos dimensionam por ALTURA nele
 * (`.login__brand-logo .crh-brand__mark { height: 40px }`, `.fi-logo`) e a largura segue o viewBox.
 */
.crh-brand {
    display: inline-flex;
    align-items: center;
    height: 100%;
}

.crh-brand__mark {
    height: 100%;
    width: auto;
    flex: none;
}

.crh-brand__symbol,
.crh-brand__endosso { fill: var(--crh-brand-mark); }
.crh-brand__word { fill: var(--crh-brand-word); }

.crh-brand--on-navy .crh-brand__symbol,
.crh-brand--on-navy .crh-brand__endosso,
.crh-brand--on-navy .crh-brand__word,
.fi-sidebar .crh-brand__symbol,
.fi-sidebar .crh-brand__endosso,
.fi-sidebar .crh-brand__word,
.dark .crh-brand__symbol,
.dark .crh-brand__endosso,
.dark .crh-brand__word { fill: var(--crh-brand-on-navy); }

/*
 * ── Alternador de tema claro/escuro (componente COMPARTILHADO) ──────────────────────────────────
 * Vive aqui (como o `.crh-brand`) porque esta folha carrega em TODAS as superfícies: painéis Filament
 * (asset) e páginas de auth/portal/landing (<link>). PADRONIZAÇÃO 2026-07-19: antes existiam três
 * botões diferentes (`.crh-theme-toggle` 38px de traço no painel · `.portal-topbar__tema` 40px sólido
 * no portal · `.theme-toggle` circular no auth) — agora é UM só, com markup único no componente Blade
 * `resources/views/components/theme-toggle.blade.php`.
 *
 * Medidas: 40×40, raio `--crh-radius-md`, vidro de recuo + fio; ícone 19px em cinza utilitário. Hover
 * azulado (borda + fundo soft do primário). No mobile vira alvo de toque de 44px.
 */
.crh-theme-toggle {
    width: 40px;
    height: 40px;
    flex: none;
    margin: 0;
    padding: 0;
    display: grid;
    place-items: center;
    border-radius: var(--crh-radius-md);
    border: 1px solid var(--crh-hair);
    background: var(--crh-glass-2);
    color: var(--crh-text-subtle);
    cursor: pointer;
    line-height: 0;
    transition: background 150ms ease, border-color 150ms ease, color 150ms ease;
}

/* `@media (hover: hover)` (pedido 2026-08-16): no WebKit do iOS o `:hover` é aplicado no TOQUE e FICA
   aplicado até o toque seguinte em outro lugar — depois de alternar o tema (ou de abrir a Agenda, a
   Produtividade, o Secullum: os quatro ícones da topbar usam esta classe) o botão continuava aceso, com
   cara de "ativo". Só ponteiro de verdade recebe realce. Mesma conduta da folha do portal. */
@media (hover: hover) {
    .crh-theme-toggle:hover {
        border-color: var(--crh-primary-border);
        background: var(--crh-primary-soft);
        color: var(--crh-text-strong);
    }
}

.crh-theme-toggle:focus-visible {
    outline: none;
    box-shadow: var(--crh-focus-ring);
}

.crh-theme-toggle svg {
    width: 19px;
    height: 19px;
}

/* Variante FLUTUANTE (páginas de auth, que não têm topbar própria): canto superior direito. */
.crh-theme-toggle--fixed {
    position: fixed;
    top: 1rem;
    right: 1rem;
    z-index: 60;
}

/* Mostra o tema-ALVO: lua no claro (clica → escuro), sol no escuro (clica → claro). */
.crh-theme-toggle .icon-sun { display: none; }
.crh-theme-toggle .icon-moon { display: block; }
.dark .crh-theme-toggle .icon-sun { display: block; }
.dark .crh-theme-toggle .icon-moon { display: none; }

@media (max-width: 640px) {
    .crh-theme-toggle { width: 44px; height: 44px; }
}

.dark {
    --crh-text-strong: #E6EDFA;
    --crh-text-muted: #8FA5CC;
    --crh-text-subtle: #6E82A8;
    --crh-border: #24365C;
    --crh-border-light: #1C2C4C;
    --crh-bg: #0B1526;              /* fallback sólido; o fundo real é o gradiente bg-a → bg-b */
    --crh-surface: #12203A;
    --crh-surface-raised: #17294A; /* menu/dropdown sobre topbar/página navy: tom elevado, senão some */
    --crh-table-header-bg: rgba(255, 255, 255, 0.04);

    --crh-primary-soft: rgba(47, 107, 216, 0.16);
    --crh-primary-border: rgba(127, 168, 238, 0.22);

    --crh-success-soft: #123528;
    --crh-warning-soft: #392E12;
    --crh-danger-soft: #3A1A1A;
    --crh-info-soft: #16263F;
    --crh-neutral-soft: #1C2C4C;

    /* ── Vidro no escuro ───────────────────────────────────────────────
     * As superfícies translúcidas escurecem (o vidro claro sobre o navy vira leitoso e mata o
     * contraste do texto); marca e status NÃO trocam de hex — só neutros/superfície.
     */
    --crh-bg-a: #0A1424;
    --crh-bg-b: #0E1B30;
    --crh-glass: rgba(20, 33, 58, 0.62);
    --crh-glass-2: rgba(20, 33, 58, 0.42);
    --crh-glass-border: rgba(255, 255, 255, 0.10);
    --crh-hair: rgba(255, 255, 255, 0.09);
    --crh-hair-2: rgba(255, 255, 255, 0.05);
    --crh-shadow-card: 0 12px 40px -24px rgba(0, 0, 0, 0.6);
    --crh-shadow-panel: 0 24px 60px -30px rgba(0, 0, 0, 0.7);
}

/*
 * ── Descritivo da vaga (componente COMPARTILHADO) ───────────────────────────────────────────────
 * Markup único em resources/views/aprovacao/descritivo-vaga.blade.php, renderizado em DUAS
 * superfícies: o modal "Ver descritivo" do painel Filament (asset) e a página PÚBLICA de decisão do
 * aprovador (<link> no layout). Mora aqui — como o logo e o toggle de tema — porque esta é a única
 * folha carregada nas duas (centralrh.css só existe no painel; centralrh-portal.css só no público).
 *
 * Sem fundo próprio: só fios de separação (`--crh-hair*`), para assentar tanto no branco do modal
 * quanto no card de vidro da página pública, nos dois temas (os tokens já viram no `.dark`).
 */
.descritivo-vaga {
    margin: 1rem 0 1.25rem;
    border: 1px solid var(--crh-hair);
    border-radius: var(--crh-radius-lg);
    overflow: hidden;               /* os fios das linhas respeitam o raio do card */
    font-size: 0.875rem;
    line-height: 1.5;
}

.descritivo-vaga__campo {
    display: grid;
    grid-template-columns: minmax(0, 11rem) minmax(0, 1fr);
    gap: 0.15rem 1rem;
    align-items: baseline;
    padding: 0.6rem 0.9rem;
}

.descritivo-vaga__campo + .descritivo-vaga__campo {
    border-top: 1px solid var(--crh-hair-2);
}

/* Campo LONGO (lista ou texto extenso): rótulo em cima, valor ocupando a linha inteira. */
.descritivo-vaga__campo--bloco {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.3rem;
}

.descritivo-vaga dt {
    margin: 0;
    color: var(--crh-text-muted);
    font-weight: 600;
    font-size: 0.75rem;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.descritivo-vaga dd {
    margin: 0;
    color: var(--crh-text-strong);
    /* Texto colado sem espaços (ex.: "aaaa…" digitado no campo) não pode estourar a largura. */
    overflow-wrap: anywhere;
}

/* Quebras de linha digitadas no textarea (descrição) são preservadas nos campos em bloco. */
.descritivo-vaga__campo--bloco dd {
    white-space: pre-line;
}

/* 1º campo da constante = título da vaga: é o cabeçalho do descritivo. */
.descritivo-vaga__campo--destaque dd {
    font-size: 1.0625rem;
    font-weight: 700;
    line-height: 1.35;
}

.descritivo-vaga__lista {
    margin: 0;
    padding-left: 1.1rem;
    display: grid;
    gap: 0.2rem;
    list-style: disc;
}

.descritivo-vaga__lista li::marker {
    color: var(--crh-primary);
}

.descritivo-vaga__vazio {
    color: var(--crh-text-subtle);
}

/* "Exibir salário": Sim/Não como chip (o par de status já usado nos painéis). */
.descritivo-vaga__chip {
    display: inline-flex;
    align-items: center;
    padding: 0.1rem 0.55rem;
    border-radius: var(--crh-radius-pill);
    font-size: 0.75rem;
    font-weight: 600;
}

.descritivo-vaga__chip--sim {
    background: var(--crh-success-soft);
    color: var(--crh-success);
}

.descritivo-vaga__chip--nao {
    background: var(--crh-neutral-soft);
    color: var(--crh-neutral);
}

.dark .descritivo-vaga__chip--nao {
    color: var(--crh-text-muted);   /* o cinza do tema claro não tem contraste sobre o soft escuro */
}

/* iPhone / coluna estreita: rótulo em cima em TODOS os campos. */
@media (max-width: 480px) {
    .descritivo-vaga__campo {
        grid-template-columns: minmax(0, 1fr);
        gap: 0.2rem;
    }
}

/* ------------------------------------------------------------------------------------------------
 * LOGO DA ORGANIZAÇÃO — variante clara × escura (pedido 2026-08-12)
 *
 * `<x-tenant-logo>` emite os DOIS <img> quando a organização enviou as duas variantes; a escolha é
 * aqui, por CSS, porque o tema mora na classe `.dark` do <html> (aplicada antes da pintura) e o
 * servidor não sabe qual é ao renderizar — escolher no PHP daria o logo errado a cada troca de tema
 * (a troca não recarrega a página).
 *
 * As duas regras são MUTUAMENTE EXCLUSIVAS por tema e só ESCONDEM: a variante visível nunca é
 * tocada, então cada superfície mantém o `display` da sua própria classe (`portal-topbar__logo` é
 * bloco, `tp-brand__logo` é inline-block, …) — sem precisar readequar `display` aqui.
 *
 * Superfície de fundo FIXO escuro (o rodapé público, navy nos dois temas) NÃO passa por aqui: lá a
 * escolha é do servidor, em portal-footer.blade.php, porque não depende do tema do usuário.
 * ------------------------------------------------------------------------------------------------ */
html:not(.dark) .crh-logo--dark {
    display: none !important;
}

html.dark .crh-logo--light {
    display: none !important;
}
