:root {
    --sidebar-width: 244px;
    --bg: #f6f5fa;
    --surface: #ffffff;
    --ink: #292337;
    --muted: #81798e;
    --line: #e7e2ed;
    --accent: #7439d0;
    --accent-dark: #5f27b5;
    --accent-soft: #f0e8fa;
    font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 14px;
    color: var(--ink);
    background: var(--bg);
}
* { box-sizing: border-box; }
body { margin: 0; }
a { color: var(--accent); text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, .button-link { cursor: pointer; }
button, input { min-height: 42px; }
button { border: 1px solid var(--line); border-radius: 9px; padding: 10px 15px; background: white; color: var(--ink); }
button:hover { border-color: var(--accent); color: var(--accent); }
button:disabled { opacity: .6; cursor: wait; }
a:focus-visible, button:focus-visible, input:focus-visible { outline: 3px solid #b79adf; outline-offset: 3px; }
button, a { -webkit-tap-highlight-color: transparent; }
svg { flex-shrink: 0; }
h1, h2, p { margin-top: 0; }
h1 { font-size: clamp(28px, 3vw, 40px); line-height: 1.2; letter-spacing: -1.6px; margin-bottom: 14px; }
h1 span { color: var(--accent); }
h2 { font-size: 23px; letter-spacing: -.7px; line-height: 1.35; }
.muted { color: var(--muted); line-height: 1.7; }
.eyebrow { font-size: 11px; letter-spacing: 1.8px; line-height: 1.5; font-weight: 700; color: var(--accent); }
.primary, .button-link { display: inline-flex; gap: 22px; align-items: center; justify-content: center; border-radius: 9px; padding: 13px 18px; font-size: 13px; font-weight: 600; }
.primary { background: var(--accent); color: white; border: 1px solid var(--accent); }
.primary:hover { background: var(--accent-dark); border-color: var(--accent-dark); color: white; }
.button-link:not(.primary) { background: var(--accent-soft); color: var(--accent); }
.button-link:not(.primary):hover { background: #e4d6f6; }
.brand { display: flex; align-items: center; gap: 12px; color: white; font-size: 22px; letter-spacing: -.9px; width: max-content; }
.brand-mark { flex-shrink: 0; display: grid; place-items: center; width: 43px; height: 43px; background: linear-gradient(145deg, #9252ea, #6824bb); border-radius: 13px; font-size: 34px; line-height: 1; font-weight: 800; }
.brand b { color: #c9b9e3; font-weight: 400; }
.brand small { display: block; font-size: 11px; letter-spacing: .85px; margin-top: 6px; color: #a79bb8; }
.sidebar { position: fixed; inset: 0 auto 0 0; width: var(--sidebar-width); background: #211b2e; padding: 31px 22px 26px; color: white; z-index: 30; display: flex; flex-direction: column; overflow-x: hidden; overflow-y: auto; transition: width .2s ease, transform .2s ease; }
.sidebar-section { font-size: 11px; letter-spacing: 1.5px; color: #8f829f; margin: 52px 13px 17px; white-space: nowrap; }
.sidebar nav { display: grid; gap: 8px; }
.nav-item { display: flex; align-items: center; gap: 13px; height: 49px; padding: 12px 14px; border-radius: 10px; color: #b6acc5; border: 1px solid transparent; font-size: 13px; white-space: nowrap; }
.nav-item > svg:last-child { margin-left: auto; width: 13px; opacity: .55; }
.nav-item:hover { background: #30253e; color: white; }
.nav-item.active { background: #372649; color: #d5b8fc; border-color: #543172; }
.nav-item.active > svg:first-child { color: #b27cf6; }
.sidebar-bottom { margin-top: auto; padding-top: 60px; display: flex; gap: 12px; align-items: center; font-size: 13px; white-space: nowrap; }
.workspace-mark { display: grid; place-items: center; width: 35px; height: 35px; border: 1px solid #584569; border-radius: 10px; background: #352a43; color: #c9aedf; flex-shrink: 0; font-size: 11px; }
.workspace-label small { display: block; color: #95869f; font-size: 11px; margin-top: 5px; }
.platform-frame { margin-left: var(--sidebar-width); min-height: 100dvh; display: flex; flex-direction: column; transition: margin-left .2s ease; }
.topbar { height: 83px; flex-shrink: 0; display: flex; align-items: center; justify-content: space-between; background: white; border-bottom: 1px solid var(--line); padding: 0 38px; gap: 20px; position: sticky; top: 0; z-index: 20; }
.topbar-left, .topbar-user { display: flex; align-items: center; gap: 16px; }
.topbar-user form { margin: 0; }
.icon-button { display: inline-grid; place-items: center; width: 40px; min-height: 40px; padding: 9px; border: 1px solid transparent; background: transparent; color: #8b8298; }
.icon-button:hover { background: var(--accent-soft); border-color: transparent; }
.breadcrumb { display: flex; gap: 14px; font-size: 12px; align-items: center; }
.breadcrumb span { color: #8c8498; }
.breadcrumb i { font-style: normal; color: #c9c3d1; }
.breadcrumb strong { font-weight: 500; }
.user-avatar { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: #efe6fb; color: var(--accent); border: 3px solid #f9f5fe; font-size: 13px; font-weight: 700; }
.user-info { display: block; font-size: 12px; max-width: 180px; overflow-wrap: anywhere; }
.user-info small { display: block; color: var(--muted); font-size: 11px; margin-top: 5px; }
.workspace-content { padding: 38px 42px 50px; flex: 1; width: 100%; max-width: 1600px; margin: 0 auto; }
.workspace-content:focus { outline: 0; }
.page-heading { display: flex; align-items: center; justify-content: space-between; gap: 25px; margin: 0 0 34px; }
.page-heading .eyebrow { margin-bottom: 13px; }
.page-heading .muted { font-size: 13px; margin-bottom: 0; }
.platform-footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 42px; color: #938b9f; font-size: 11px; border-top: 1px solid var(--line); }
.welcome-panel { position: relative; min-height: 345px; border-radius: 18px; border: 1px solid var(--line); background: #fff; display: flex; align-items: center; justify-content: space-between; padding: 45px 42px; gap: 28px; overflow: hidden; }
.welcome-panel > div:first-child { position: relative; z-index: 1; max-width: 460px; }
.section-number { display: block; font-size: 11px; letter-spacing: 1.7px; color: #a095b0; margin-bottom: 25px; }
.welcome-panel h2 { font-size: clamp(24px, 2.4vw, 32px); letter-spacing: -1px; margin-bottom: 17px; }
.welcome-panel p { font-size: 13px; margin-bottom: 23px; max-width: 390px; }
.welcome-panel a { font-size: 12px; font-weight: 600; }
.welcome-panel a:hover { color: var(--accent-dark); }
.welcome-art { position: relative; width: 270px; height: 240px; flex-shrink: 0; display: grid; place-items: center; }
.welcome-art > span { z-index: 2; display: grid; place-items: center; width: 96px; height: 96px; background: linear-gradient(135deg, #a464ee, #5d22aa); border-radius: 29px; color: white; font-size: 74px; font-weight: 800; box-shadow: 0 20px 50px #8143bd35; transform: rotate(-9deg); }
.welcome-art i { position: absolute; width: 170px; height: 170px; border: 1px solid #e6d8f7; border-radius: 50%; }
.welcome-art i:nth-of-type(2) { width: 230px; height: 230px; }
.welcome-art i:nth-of-type(3) { width: 295px; height: 295px; border-color: #f0e8f9; }
.welcome-art::before, .welcome-art::after { content: ""; position: absolute; border-radius: 50%; background: #b17be7; z-index: 1; width: 12px; height: 12px; top: 24px; right: 43px; }
.welcome-art::after { width: 9px; height: 9px; top: auto; bottom: 36px; right: auto; left: 38px; background: #d8bef2; }
.module-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-top: 24px; }
.module-card { display: flex; align-items: center; gap: 18px; padding: 26px; background: white; border: 1px solid var(--line); border-radius: 14px; color: var(--ink); }
.module-card:hover { border-color: #b79adf; box-shadow: 0 8px 22px #4a2b6b08; }
.module-card h2 { font-size: 18px; margin: 6px 0 9px; }
.module-card p { margin: 0; font-size: 12px; }
.module-card .eyebrow { font-size: 11px; }
.module-card > svg:last-child { margin-left: auto; color: #9c89b2; }
.module-icon, .empty-icon { display: grid; place-items: center; background: var(--accent-soft); color: var(--accent); border-radius: 14px; width: 53px; height: 53px; flex-shrink: 0; }
.subtle-badge { border: 1px solid #e3d7f1; background: #f1eafb; color: #8a66b0; padding: 10px 13px; border-radius: 20px; font-size: 11px; letter-spacing: .6px; white-space: nowrap; }
.empty-module { background: white; padding: 65px 25px; text-align: center; border: 1px solid var(--line); border-radius: 17px; }
.empty-icon { margin: 0 auto 25px; width: 65px; height: 65px; }
.empty-icon svg { width: 29px; height: 29px; }
.empty-module h2 { font-size: 26px; margin: 10px 0 16px; }
.empty-module > p:not(.eyebrow) { color: var(--muted); line-height: 1.8; max-width: 420px; margin: 0 auto 27px; font-size: 13px; }
.sidebar-collapsed { --sidebar-width: 82px; }
.sidebar-collapsed .sidebar { padding-inline: 16px; }
.sidebar-collapsed .brand-word, .sidebar-collapsed .sidebar-section, .sidebar-collapsed .nav-item span, .sidebar-collapsed .nav-item > svg:last-child, .sidebar-collapsed .workspace-label { display: none; }
.sidebar-collapsed .brand { margin: 0 auto; }
.sidebar-collapsed .sidebar nav { margin-top: 55px; }
.sidebar-collapsed .nav-item { width: 49px; padding: 13px; }
.sidebar-collapsed .sidebar-bottom { justify-content: center; }
.mobile-close, .sidebar-overlay { display: none; }
.skip-link { position: fixed; top: -80px; left: 15px; z-index: 100; padding: 12px; background: white; border: 2px solid var(--accent); border-radius: 6px; }
.skip-link:focus { top: 10px; }
.login-page { min-height: 100dvh; display: grid; grid-template-columns: 49% 51%; background: #fcfbfe; }
.login-story { min-height: 100dvh; background: radial-gradient(ellipse at 5% 95%, #49216d, transparent 60%), #21192f; color: white; padding: 45px 55px 33px; display: flex; flex-direction: column; overflow: hidden; position: relative; }
.login-story > .brand { position: relative; z-index: 2; }
.login-story > small { position: relative; z-index: 2; color: #8f7f9e; font-size: 11px; }
.login-message { flex: 1; display: flex; flex-direction: column; justify-content: center; position: relative; padding: 60px 0 135px; }
.login-message .eyebrow { color: #b893e3; font-size: 11px; z-index: 1; }
.login-message h1 { font-size: clamp(35px, 4.1vw, 62px); font-weight: 600; line-height: 1.13; letter-spacing: -2.5px; margin: 15px 0 26px; z-index: 1; }
.login-message h1 span { color: #ba8dea; }
.login-message > p:not(.eyebrow) { font-size: 14px; line-height: 1.9; color: #b8a8c8; z-index: 1; }
.login-orbit { position: absolute; width: 310px; height: 310px; display: grid; place-items: center; right: -120px; bottom: -10px; }
.login-orbit span { display: grid; place-items: center; background: linear-gradient(140deg, #9758d4, #56258c); color: #d9bbed; border-radius: 27px; width: 90px; height: 90px; font-weight: 800; font-size: 73px; transform: rotate(-15deg); box-shadow: 0 25px 55px #140c2188; }
.login-orbit i { position: absolute; border: 1px solid #68428377; border-radius: 50%; width: 190px; height: 190px; }
.login-orbit i:nth-of-type(2) { width: 255px; height: 255px; }
.login-orbit i:nth-of-type(3) { width: 320px; height: 320px; }
.login-main { display: flex; align-items: center; justify-content: center; flex-direction: column; padding: 55px 40px 28px; position: relative; }
.login-card { width: 100%; max-width: 365px; margin: auto; padding: 45px 0; }
.login-card h2 { font-size: 32px; letter-spacing: -1.1px; margin: 15px 0 13px; }
.login-card > .muted { font-size: 13px; margin: 0 0 35px; }
#login-form { display: grid; gap: 22px; }
#login-form label { display: flex; flex-direction: column; gap: 10px; font-weight: 500; font-size: 12px; }
#login-form input:not([type=hidden]) { width: 100%; height: 47px; padding: 13px; border: 1px solid #ded6e8; border-radius: 8px; font-size: 12px; color: var(--ink); background: white; }
#login-form input::placeholder { color: #aaa0b6; }
.password-field { display: flex; position: relative; }
#login-form .password-field input { padding-right: 49px; }
.password-field button { position: absolute; right: 5px; top: 3px; width: 36px; height: 40px; min-height: 40px; display: grid; place-items: center; color: #9b87b4; padding: 8px; border: 0; background: transparent; }
.password-field button svg { width: 20px; height: 20px; stroke-width: 1.8; }
.password-field button:hover { color: var(--accent); }
.login-submit { width: 100%; justify-content: space-between; min-height: 47px; margin-top: 2px; }
.login-help { color: #9a8ea6; font-size: 11px; line-height: 1.7; margin: 28px 0 0; text-align: center; }
.login-footer { font-size: 11px; color: #a89daf; }
.form-error { font-size: 12px; color: #a63854; border: 1px solid #f2d5dd; border-radius: 8px; padding: 12px; background: #fff3f6; line-height: 1.7; margin: 0; }
[hidden] { display: none !important; }
@media (max-width: 1100px) {
    .topbar { padding-inline: 24px; }
    .workspace-content { padding-inline: 28px; }
    .platform-footer { padding-inline: 28px; }
    .page-heading { align-items: flex-start; }
    .welcome-panel { padding: 35px 28px; }
    .welcome-art { width: 160px; margin-right: 10px; }
    .welcome-art i:nth-of-type(3) { width: 250px; height: 250px; }
    .module-links { grid-template-columns: 1fr; }
    .login-story { padding-inline: 35px; }
    .login-message h1 { font-size: 44px; }
}
@media (max-width: 760px) {
    :root { --sidebar-width: 244px; }
    .platform-frame { margin-left: 0; }
    .sidebar { transform: translateX(-100%); }
    .sidebar-mobile-open { overflow: hidden; }
    .sidebar-mobile-open .sidebar { transform: translateX(0); }
    .mobile-close { display: block; position: absolute; top: 90px; right: 23px; width: 30px; height: 30px; min-height: 30px; border: 0; padding: 3px; background: #34263f; color: #c8afd9; font-size: 20px; }
    .sidebar-overlay { display: block; position: fixed; inset: 0; background: #1a112c66; z-index: 25; border: 0; border-radius: 0; }
    .topbar { height: 73px; padding-inline: 15px; }
    .topbar-left, .topbar-user { gap: 9px; }
    .breadcrumb { font-size: 11px; gap: 8px; }
    .breadcrumb > span, .breadcrumb > i { display: none; }
    .user-info { max-width: 100px; font-size: 11px; }
    .user-info small { font-size: 11px; }
    .user-avatar { display: none; }
    .workspace-content { padding: 30px 19px; }
    .page-heading { flex-direction: column; gap: 22px; margin-bottom: 27px; }
    .page-heading h1 { font-size: 33px; }
    .welcome-panel { padding: 30px 25px; min-height: 325px; }
    .welcome-panel h2 { font-size: 27px; }
    .welcome-panel > div:first-child { max-width: 100%; }
    .welcome-art { display: none; }
    .module-card { padding: 23px; gap: 15px; }
    .module-card p:not(.eyebrow) { font-size: 11px; }
    .module-icon { width: 45px; height: 45px; border-radius: 12px; }
    .platform-footer { padding: 20px; font-size: 11px; align-items: flex-start; }
    .platform-footer > span:last-child { text-align: right; }
    .login-page { grid-template-columns: 1fr; }
    .login-story { min-height: auto; padding: 25px 25px 30px; }
    .login-story .brand { font-size: 20px; }
    .login-message { padding: 35px 0 0; }
    .login-message h1 { font-size: 35px; line-height: 1.15; letter-spacing: -1px; margin: 10px 0 15px; }
    .login-message h1 br { display: none; }
    .login-message h1 br::after { content: " "; }
    .login-message .eyebrow, .login-message > p:not(.eyebrow), .login-orbit, .login-story > small { display: none; }
    .login-main { padding: 30px 26px 25px; }
    .login-card { padding: 10px 0 35px; max-width: 400px; }
    .login-card h2 { font-size: 29px; }
    .login-footer { text-align: center; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { transition: none !important; scroll-behavior: auto !important; }
}

/* Validação de formulário: mensagens abaixo de cada campo, sem tooltip nativo. */
#login-form input.is-invalid {
    border-color: #d94761;
    background-color: #fff8fa;
}
#login-form input.is-invalid:focus-visible {
    outline-color: #edb1bd;
}
#login-form .field-error {
    display: block;
    color: #c4314e;
    font-size: 11px;
    font-weight: 400;
    line-height: 1.5;
    margin-top: -3px;
}


/* ===== EMPRESAS ===== */
/* Módulo Empresas · mantém o layout compartilhado. */
:is(#empresas-module, #vagas-module) button { display: inline-flex; align-items: center; justify-content: center; gap: 9px; font-size: 12px; font-weight: 500; }
:is(#empresas-module, #vagas-module) button svg { width: 16px; height: 16px; }
.emp-stats { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; margin-bottom: 28px; }
.emp-stats article { display: flex; gap: 19px; align-items: flex-start; padding: 25px; background: white; border: 1px solid var(--line); border-radius: 14px; }
.emp-stat-icon { display: grid; place-items: center; background: var(--accent-soft); color: var(--accent); width: 42px; height: 42px; border-radius: 12px; flex-shrink: 0; }
.emp-stat-icon svg { width: 20px; height: 20px; }
.emp-green { background: #eaf5ef; color: #4e8967; }
.emp-neutral { background: #f0eef3; color: #92869d; }
.emp-stats p { color: var(--muted); font-size: 11px; margin: 2px 0 13px; }
.emp-stats strong { display: block; font-size: 31px; font-weight: 600; letter-spacing: -1px; margin-bottom: 8px; }
.emp-stats small { color: #9d93aa; font-size: 11px; line-height: 1.5; }
.emp-panel { background: white; border: 1px solid var(--line); border-radius: 15px; overflow: hidden; }
.emp-panel-top { padding: 24px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.emp-panel-top .eyebrow { margin-bottom: 7px; }
.emp-panel-top h2 { font-size: 19px; margin-bottom: 0; }
.emp-filters { display: flex; align-items: flex-end; gap: 14px; padding: 20px 24px; background: #fcfbfe; border-block: 1px solid var(--line); }
.emp-filters label { flex: 1; }
.emp-filters label:first-child { flex: 2; }
.emp-filters label, .emp-field { display: flex; flex-direction: column; gap: 9px; font-size: 12px; font-weight: 500; }
.emp-filters input, .emp-filters select, .emp-field input, .emp-field select, .emp-field textarea { width: 100%; border: 1px solid #ded6e8; padding: 11px 12px; border-radius: 8px; background: white; color: var(--ink); min-width: 0; font-size: 12px; }
.emp-field textarea { resize: vertical; line-height: 1.7; font: inherit; font-size: 12px; }
.emp-field input:focus-visible, .emp-field textarea:focus-visible, .emp-field select:focus-visible { outline: 2px solid #c2a7e8; outline-offset: 1px; }
.emp-table-wrap { overflow-x: auto; }
.emp-table-wrap table { border-collapse: collapse; width: 100%; text-align: left; }
.emp-table-wrap th { padding: 15px 24px; background: #fcfbfe; color: var(--muted); font-size: 11px; font-weight: 500; border-bottom: 1px solid var(--line); }
.emp-table-wrap td { padding: 23px 24px; border-bottom: 1px solid #efebf5; font-size: 12px; }
.emp-table-wrap tr:last-child td { border-bottom: 0; }
.emp-company-cell { display: flex; align-items: center; gap: 13px; min-width: 190px; }
.emp-company-avatar { display: grid; place-items: center; background: #f1ebf9; color: #9570ba; width: 40px; height: 40px; flex-shrink: 0; border-radius: 11px; font-size: 12px; font-weight: 600; }
.emp-table-wrap strong { display: block; font-size: 12px; font-weight: 600; }
.emp-table-wrap small { display: block; color: #a094ad; font-size: 11px; margin-top: 7px; line-height: 1.5; }
.emp-badge { display: inline-block; padding: 5px 10px; font-size: 11px; border-radius: 15px; background: #eaf6ef; color: #548768; white-space: nowrap; }
.emp-badge.inativo { color: #93849d; background: #f1edf5; }
:is(#empresas-module, #vagas-module) .emp-edit { min-height: 32px; padding: 7px 11px; font-size: 11px; white-space: nowrap; }
.emp-pagination { padding: 19px 24px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; gap: 15px; align-items: center; color: #95899f; font-size: 11px; }
.emp-pagination > div { display: flex; gap: 9px; }
:is(#empresas-module, #vagas-module) .emp-pagination button { font-size: 11px; min-height: 34px; padding: 8px 12px; }
.emp-list-message { color: var(--muted); font-size: 12px; padding: 28px 24px; text-align: center; line-height: 1.7; }
.emp-list-message:empty { display: none; }
.emp-drawer { border: 0; border-left: 1px solid var(--line); border-radius: 0; position: fixed; inset: 0 0 0 auto; margin: 0; padding: 0; width: min(790px,100vw); max-width: 100vw; height: 100dvh; max-height: 100dvh; color: var(--ink); background: #fcfbfe; }
.emp-drawer::backdrop, .emp-confirm::backdrop { background: #21182f75; backdrop-filter: blur(2px); }
.emp-drawer-top { padding: 25px 28px; display: flex; justify-content: space-between; gap: 20px; align-items: center; background: white; border-bottom: 1px solid var(--line); }
.emp-drawer-top .eyebrow { margin-bottom: 7px; }
.emp-drawer-top h2 { margin: 0; font-size: 21px; }
.emp-form-hint { padding: 22px 28px 0; margin: 0; color: var(--muted); font-size: 11px; line-height: 1.7; }
.emp-form-section { border: 1px solid var(--line); border-radius: 11px; background: white; margin: 22px 28px; overflow: hidden; }
.emp-form-section h3 { margin: 0; background: #faf8fd; border-bottom: 1px solid var(--line); padding: 15px 18px; font-size: 13px; font-weight: 500; }
.emp-form-section h3 span { color: #b59aca; font-size: 11px; margin-right: 13px; }
.emp-form-grid { padding: 21px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.emp-wide { grid-column: 1/-1; }
.emp-field input.is-invalid, .emp-field select.is-invalid, .emp-field textarea.is-invalid { border-color: #d54462; background: #fff8fa; }
.emp-field .emp-field-error { color: #c43755; font-size: 11px; font-weight: 400; line-height: 1.5; margin-top: -3px; }
.emp-drawer-footer { display: flex; justify-content: flex-end; gap: 10px; padding: 20px 28px; background: white; border-top: 1px solid var(--line); position: sticky; bottom: 0; }
#emp-delete { margin-right: auto; }
:is(#empresas-module, #vagas-module) .emp-danger { color: #b23552; background: #fff2f5; border-color: #eccbd3; }
:is(#empresas-module, #vagas-module) .emp-danger:hover { background: #fde5ed; border-color: #d698aa; }
.emp-form-message { color: #b13654; font-size: 12px; line-height: 1.7; padding: 0 28px; margin: 0 0 20px; }
.emp-form-message:empty { display: none; }
.emp-confirm { border: 1px solid var(--line); border-radius: 16px; width: min(440px,92vw); padding: 30px; color: var(--ink); }
.emp-confirm h2 { font-size: 22px; margin: 18px 0 12px; }
.emp-confirm p { font-size: 12px; line-height: 1.8; }
.emp-confirm form > div { display: flex; justify-content: flex-end; gap: 10px; margin-top: 24px; }
.emp-confirm .emp-form-message { padding: 0; }
#emp-delete-name { font-weight: 600; overflow-wrap: anywhere; }
.emp-confirm-icon { display: grid; place-items: center; width: 45px; height: 45px; border-radius: 12px; color: #b94c66; background: #fff0f4; }
#emp-toast { position: fixed; left: 50%; bottom: 25px; transform: translateX(-50%); background: #2e233c; color: white; border-radius: 10px; padding: 15px 22px; font-size: 12px; max-width: 90vw; z-index: 100; box-shadow: 0 5px 25px #24172c33; }
.emp-sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media(max-width:1100px) {
    .emp-stats { gap: 12px; }
    .emp-stats article { padding: 20px 16px; gap: 12px; }
    .emp-stat-icon { width: 35px; height: 35px; }
    .emp-stats small { display: none; }
    .emp-table-wrap th, .emp-table-wrap td { padding-inline: 16px; }
}
@media(max-width:760px) {
    .emp-stats { grid-template-columns: 1fr; gap: 9px; }
    .emp-stats article { align-items: center; padding: 16px; }
    .emp-stats article > div { display: flex; flex: 1; align-items: center; justify-content: space-between; gap: 15px; }
    .emp-stats p, .emp-stats strong { margin: 0; }
    .emp-stats strong { font-size: 25px; }
    .emp-panel-top { padding: 20px 16px; align-items: flex-start; }
    .emp-panel-top h2 { font-size: 16px; }
    .emp-panel-top .eyebrow { font-size: 11px; letter-spacing: .7px; }
    #emp-reload { font-size: 0 !important; padding: 10px; min-width: 38px; gap: 0 !important; }
    .emp-filters { padding: 18px 16px; flex-wrap: wrap; }
    .emp-filters label:first-child { flex-basis: 100%; }
    .emp-pagination { padding: 15px; align-items: flex-start; }
    .emp-pagination > span { max-width: 120px; line-height: 1.7; }
    .emp-form-section { margin-inline: 16px; }
    .emp-form-grid { grid-template-columns: 1fr; padding: 18px; }
    .emp-form-hint { padding-inline: 16px; }
    .emp-drawer-top, .emp-drawer-footer { padding: 20px 16px; }
    .emp-drawer-footer { flex-wrap: wrap; }
}

/* Retorno da consulta de CEP. Mantém todos os campos editáveis. */
.cep-status { color: #867497; font-size: 11px; font-weight: 400; line-height: 1.6; }
.cep-status:empty { display: none; }
.cep-status.cep-failure { color: #b13654; }

/* Componentes reutilizáveis de validação e notificação. */
input.is-invalid, select.is-invalid, textarea.is-invalid { border-color: #d94761; background-color: #fff8fa; }
.field-error { color: #c4314e; font-size: 11px; line-height: 1.5; }
.global-toast { position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%); background: #2e233c; color: white; padding: 15px 22px; border-radius: 10px; font-size: 12px; z-index: 100; max-width: 90vw; }

/* Modais: esconde a barra principal sem alterar a posição da página. */
html.modal-open, html.modal-open body { overflow: hidden !important; }
dialog { overscroll-behavior: contain; }

/* Vagas: utiliza os componentes globais de lista e formulário. */
.vg-equipe { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; padding: 15px; border: 1px solid var(--line); border-radius: 8px; }
.vg-equipe label { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 400; }
.vg-equipe input[type=checkbox], #vg-restritaEquipe { min-height: 16px; width: 16px; height: 16px; accent-color: var(--accent); }
.vg-hint { font-size: 11px; color: var(--muted); line-height: 1.6; }
#vg-delete { margin-right: auto; }
.vg-overdue { color: #b13654; }
.emp-badge.pausada { color: #a4772a; background: #fff5dd; }
.emp-badge.fechada { color: #93849d; background: #f1edf5; }
@media(max-width:760px) { .vg-equipe { grid-template-columns: 1fr; } }

.vg-equipe.is-invalid { border-color: #d94761; }
.vg-lock { width: 13px; height: 13px; vertical-align: middle; color: #94819f; }


/* ===== MÓDULO CANDIDATOS ===== */
/* Estilos globais do módulo de candidatos. Reutiliza a identidade visual emp-* do painel. */
#candidatos-module .emp-table-wrap td { vertical-align: middle; }
#candidatos-module .cd-candidate-name { font-weight: 700; }
#candidatos-module .cd-subtitle { display: block; font-size: 12px; opacity: .65; margin-top: 3px; }
#candidatos-module .cd-status { display: inline-block; padding: 5px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; background: #eee; color: #333; }
#candidatos-module .cd-status.ativo { background: #def7e8; color: #126b38; }
#candidatos-module .cd-action { cursor: pointer; }
#candidatos-module .emp-form-grid { gap: 15px; }
#candidatos-module .emp-field-error:not([hidden]) { color: #c02424; display: block; margin-top: 4px; }
#candidatos-module .emp-form-message:not(:empty) { margin: 15px 0; }


/* Ícones Lucide: dimensões e alinhamento consistentes em todo o workspace. */
.nav-item > svg:first-child { width: 20px; height: 20px; flex: 0 0 20px; }
.nav-item > svg:last-child { width: 13px; height: 13px; flex: 0 0 13px; margin-left: auto; opacity: .55; }
.topbar .icon-button { display: inline-flex; align-items: center; justify-content: center; }
.topbar .icon-button svg { width: 20px; height: 20px; }
#candidatos-module button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
#candidatos-module button svg, .mobile-close svg { width: 16px; height: 16px; flex: 0 0 16px; }
#candidatos-module .cd-action svg { width: 15px; height: 15px; }

/* ===== Kanban dos candidatos ===== */
.kb-panel{margin-bottom:24px}.kb-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.kb-toolbar button,.kb-stage-actions button,.kb-card button{display:inline-flex;align-items:center;justify-content:center;gap:6px}.kb-toolbar i,.kb-stage-actions i,.kb-card i{width:16px;height:16px;flex-shrink:0}.kb-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:18px 22px}.kb-filters label{display:flex;flex-direction:column;gap:7px;font-size:12px}.kb-filters select{width:100%;padding:10px;border:1px solid #ded8e9;border-radius:9px;background:#fff;color:#252039}.kb-board{display:flex;overflow-x:auto;gap:15px;padding:16px 22px 24px;align-items:stretch;min-height:120px}.kb-stage{flex:0 0 270px;min-width:270px;background:#f5f3f9;border:1px solid #e7e1ef;border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:10px}.kb-stage-head{display:flex;align-items:center;justify-content:space-between;gap:6px}.kb-stage-head strong{font-size:13px;color:#29233b;overflow-wrap:anywhere}.kb-count{font-size:11px;border-radius:99px;background:#e9e1f7;padding:3px 7px}.kb-stage-actions{display:flex;gap:3px}.kb-stage-actions button{background:transparent;border:0;padding:4px;color:#6f647d;cursor:pointer}.kb-items{min-height:100px;display:flex;flex-direction:column;gap:9px;flex:1}.kb-items.kb-over{outline:2px dashed #7c3aed;outline-offset:2px;border-radius:8px}.kb-card{border:1px solid #e3deed;background:#fff;border-radius:10px;padding:13px;box-shadow:0 2px 4px #24163b09}.kb-card[draggable=true]{cursor:grab}.kb-card strong{display:block;font-size:13px;color:#262037;overflow-wrap:anywhere}.kb-card small{display:block;margin-top:5px;color:#796f87;overflow-wrap:anywhere}.kb-card-bottom{margin-top:10px;display:flex;align-items:center;gap:6px}.kb-card-bottom select{min-width:0;width:100%;background:#faf9fd;border:1px solid #ded8e9;border-radius:7px;padding:6px;font-size:11px}.kb-stage-empty{font-size:12px;color:#93899e;text-align:center;padding:20px 5px}.kb-card .kb-edit{border:0;background:transparent;color:#6634bb;cursor:pointer;padding:3px}.kb-message{padding:4px 22px 0;color:#755c88}.kb-toolbar button:disabled,.kb-card select:disabled{opacity:.55;cursor:default}@media(max-width:650px){.kb-filters{grid-template-columns:1fr}.kb-stage{flex-basis:245px;min-width:245px}}

/* Fechar menu lateral: somente quando a navegacao mobile estiver ativa. */
@media (min-width: 769px) {
    .sidebar .mobile-close { display: none !important; }
}

/* Perfil do candidato: nome clicável na lista e no Kanban. */
#candidatos-module .cd-open-profile,
#candidatos-module .kb-open-profile {
    border: 0; padding: 0; background: transparent; color: #5634aa;
    font: inherit; font-weight: 700; cursor: pointer; text-align: left;
    display: inline; width: auto; line-height: 1.45; overflow-wrap: anywhere;
}
#candidatos-module .cd-open-profile:hover,
#candidatos-module .kb-open-profile:hover { color: #7c3aed; text-decoration: underline; }
#candidatos-module .cd-open-profile:focus-visible,
#candidatos-module .kb-open-profile:focus-visible { outline: 2px solid #7c3aed; outline-offset: 3px; border-radius: 2px; }
/* O X do menu mobile permanece oculto no desktop. */
@media (min-width: 769px) { .sidebar .mobile-close { display: none !important; } }

/* Kanban — cores individuais e edição em modal */
#candidatos-module .kb-stage{border-top:4px solid var(--kb-stage-color,#7c3aed)}
#candidatos-module .kb-stage-head strong{border-left:3px solid var(--kb-stage-color,#7c3aed);padding-left:8px}
#candidatos-module .kb-count{color:var(--kb-stage-color,#7c3aed);background:#fff;border:1px solid var(--kb-stage-color,#7c3aed)}
#candidatos-module .kb-stage-dialog{border:1px solid #e8e1ef;border-radius:15px;padding:0;width:min(440px,calc(100vw - 28px));max-height:90vh;box-shadow:0 24px 70px #1f163449;color:#29233b}
#candidatos-module .kb-stage-dialog::backdrop{background:#1d142c88}
#candidatos-module .kb-stage-dialog form{display:flex;flex-direction:column;gap:18px;padding:24px}
#candidatos-module .kb-stage-dialog label{display:flex;flex-direction:column;gap:8px;font-size:13px;font-weight:600}
#candidatos-module .kb-stage-dialog input[type=text]{border:1px solid #ded8e9;border-radius:9px;padding:12px;font:inherit}
#candidatos-module .kb-stage-dialog input[type=color]{height:48px;width:100%;cursor:pointer;border:1px solid #ded8e9;border-radius:9px;padding:5px;background:#fff}
#candidatos-module .kb-modal-heading,#candidatos-module .kb-stage-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}
#candidatos-module .kb-modal-heading h2{font-size:20px;margin:3px 0 0}
#candidatos-module .kb-modal-heading button{border:0;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center}
#candidatos-module .kb-modal-heading svg,#candidatos-module .kb-stage-footer svg{width:17px;height:17px;flex-shrink:0}
#candidatos-module .kb-stage-footer{justify-content:flex-end;border-top:1px solid #eee8f5;padding-top:15px}
#candidatos-module .kb-stage-footer button{display:inline-flex;align-items:center;gap:7px;justify-content:center;padding:10px 16px;border-radius:8px;cursor:pointer}
#candidatos-module .kb-stage-help{font-size:12px;color:#766b86;margin:0}

/* Avatar de candidato: foto ou iniciais, reutilizado na tabela, modal e Kanban. */
.cd-avatar{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;min-width:38px;border-radius:50%;background:#ede7fa;color:#6035a9;font-weight:750;font-size:13px;line-height:1;overflow:hidden;vertical-align:middle;flex-shrink:0;text-transform:uppercase}
.cd-avatar img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}
.cd-avatar-large{width:68px;height:68px;min-width:68px;font-size:22px}
.cd-person-line{display:flex;align-items:center;gap:10px;min-width:0}
.cd-person-line button{min-width:0;text-align:left;overflow-wrap:anywhere}
.cd-profile-header{display:flex;align-items:center;gap:14px;padding:16px 20px;margin:0 0 12px;background:#f8f6fc;border-radius:12px}
.cd-profile-header strong{display:block;color:#262039;font-size:17px}
.cd-profile-header small{display:block;color:#756b83;margin-top:4px}
.kb-card .cd-person-line{margin-bottom:7px}
.kb-card .cd-avatar{width:34px;height:34px;min-width:34px;font-size:11px}
