/* Estilos do projeto original (mantidos) */
/* Tom Select: acima do modal do Bootstrap (z-index 1055) */
.ts-dropdown{ z-index:1060; font-size:12.5px; border-radius:8px; box-shadow:0 8px 24px rgba(16,24,40,.12); }
.ts-wrapper.form-select{ padding:0; }
.ts-control{ min-height:32px; padding:3px 8px !important; font-size:12.5px; border-radius:6px; }
.ts-wrapper.is-invalid .ts-control{ border-color:var(--danger); }
.ts-wrapper.is-empty:not(.is-invalid) .ts-control{ border-color:#E0A458; background-color:#FFF8EC; }

/* Seletor de OU em árvore (emails.js > enhanceOuTree) */
.ts-dropdown.ou-tree .ts-dropdown-content{ max-height:340px; }
.ts-dropdown.ou-tree .option{ display:flex; align-items:center; gap:6px; padding:5px 8px 5px calc(8px + var(--lvl,0) * 16px); }
.ts-dropdown.ou-tree .option[hidden]{ display:none !important; }
.ou-toggle,.ou-toggle-spacer{ flex:0 0 18px; width:18px; height:18px; display:inline-flex; align-items:center; justify-content:center; border-radius:4px; color:var(--ink-faint); }
.ou-toggle{ cursor:pointer; }
.ou-toggle:hover{ background:var(--accent-soft); color:var(--accent); }
.ou-toggle i{ font-size:11px; transition:transform .15s; }
.ou-toggle.open i{ transform:rotate(90deg); }
.ou-icon{ color:var(--ink-faint); font-size:13px; }
.ou-name{ flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ou-count{ flex:0 0 auto; font-size:10.5px; font-weight:500; color:var(--ink-soft); background:var(--bg); border:1px solid var(--border); border-radius:100px; padding:0 6px; }
.ou-path{ display:none; }
.ou-toolbar{ display:flex; gap:4px; padding:4px 6px; border-bottom:1px solid var(--border); }
.ou-toolbar button{ display:inline-flex; align-items:center; gap:4px; border:0; background:none; font-size:11.5px; color:var(--accent-ink); padding:2px 6px; border-radius:5px; }
.ou-toolbar button:hover{ background:var(--accent-soft); }
/* Durante a busca: lista plana com o caminho completo de cada OU */
.ts-dropdown.ou-searching .option{ flex-wrap:wrap; padding-left:8px; }
.ou-searching .ou-toggle,.ou-searching .ou-toggle-spacer,.ou-searching .ou-toolbar{ display:none; }
.ou-searching .ou-path{ display:block; flex-basis:100%; padding-left:19px; color:var(--ink-faint); font-size:11px; font-weight:400; }
.ou-item{ display:flex; align-items:baseline; gap:6px; min-width:0; max-width:100%; }
.ou-item > span{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ou-item > small{ color:var(--ink-faint); font-size:11px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
:root{
  --bg:#F5F6F9; --surface:#fff; --ink:#121826; --ink-soft:#5A6577; --ink-faint:#8A94A6;
  --accent:#3B5BDB; --accent-ink:#2B44A8; --accent-soft:#EDF1FE;
  --success:#0F7B55; --success-bg:#E4F6EE;
  --warning:#B25A0B; --warning-bg:#FDF0E2;
  --danger:#C42B3A; --border:#E4E7EE; --radius:10px;
  --shadow:0 1px 2px rgba(16,24,40,.05),0 1px 3px rgba(16,24,40,.06);
  --fs:clamp(12px,.72rem + .1vw,13px);
}
*{ box-sizing:border-box; }
body{ background:var(--bg); color:var(--ink); font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; font-size:var(--fs); line-height:1.45; -webkit-font-smoothing:antialiased; }
.mono{ font-family:'Roboto Mono',ui-monospace,monospace; font-size:11.5px; letter-spacing:-.01em; }

/* Controles compactos */
.form-control,.form-select{ border-color:var(--border); font-size:12.5px; padding:.38rem .65rem; border-radius:6px; min-height:32px; }
.form-select{ padding-right:2rem; }
.form-control:focus,.form-select:focus,.ts-wrapper.focus .ts-control{ border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
.form-label{ font-size:11.5px; font-weight:600; color:var(--ink-soft); margin-bottom:.25rem; }
textarea.form-control{ min-height:60px; }
.form-check-input:checked{ background-color:var(--accent); border-color:var(--accent); }

/* Topbar */
.topbar{ position:relative; z-index:10; background:rgba(255,255,255,.85); backdrop-filter:saturate(1.4) blur(10px); border-bottom:1px solid var(--border);
  padding:.5rem clamp(.75rem,2vw,1.5rem); display:flex; align-items:center; justify-content:space-between; gap:.75rem; flex-wrap:wrap; }
.topbar .brand{ display:flex; align-items:center; gap:.5rem; font-weight:700; font-size:13.5px; }
.topbar .brand .mark{ width:26px; height:26px; border-radius:7px; background:var(--accent); color:#fff; display:flex; align-items:center; justify-content:center; font-size:13px; }
.topbar .org-context{ font-size:12px; color:var(--ink-soft); }
.topbar .org-context .form-select{ min-height:28px; padding:.2rem 1.8rem .2rem .5rem; font-size:12px; }
.topbar .who{ display:flex; align-items:center; gap:.5rem; font-size:12px; color:var(--ink-soft); }
.who .avatar{ width:26px; height:26px; border-radius:50%; background:var(--accent-soft); color:var(--accent-ink); display:flex; align-items:center; justify-content:center; font-weight:700; font-size:10px; }

main{ max-width:1600px; margin:0 auto; }

/* Cabeçalho da página */
.page-head{ display:flex; align-items:center; justify-content:space-between; gap:.75rem; flex-wrap:wrap; margin-bottom:1rem; }
.page-head h1{ font-size:clamp(16px,1.2rem + .3vw,19px); font-weight:700; margin:0 0 .1rem; letter-spacing:-.015em; }
.page-head p{ margin:0; color:var(--ink-soft); font-size:12px; }
.btn-accent{ background:var(--accent); border:1px solid var(--accent); color:#fff; font-weight:600; font-size:12.5px; padding:.4rem .85rem; border-radius:7px; box-shadow:var(--shadow); }
.btn-accent:hover,.btn-accent:focus{ background:var(--accent-ink); border-color:var(--accent-ink); color:#fff; }

/* Cards de estatística (fluidos) */
.stat-strip{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:.75rem; margin-bottom:.9rem; }
.stat{ background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:.8rem 1rem; box-shadow:var(--shadow); position:relative; overflow:hidden; }
.stat::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--border); }
.stat.ok::before{ background:var(--success); } .stat.warn::before{ background:var(--warning); } .stat:has(.text-danger)::before{ background:var(--danger); }
.stat .num{ font-size:clamp(18px,1.4rem + .4vw,23px); font-weight:700; line-height:1.1; letter-spacing:-.02em; }
.stat .label{ margin-top:.25rem; font-size:11.5px; color:var(--ink-soft); }
.stat.ok .num{ color:var(--success); } .stat.warn .num{ color:var(--warning); }

/* Toolbar */
.panel{ background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow); }
.toolbar{ padding:.65rem .75rem; display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; margin-bottom:.75rem; }
.filters{ display:flex; align-items:center; gap:.4rem; flex:1 1 560px; flex-wrap:wrap; min-width:0; }
.search-wrap{ position:relative; flex:2 1 220px; min-width:180px; }
.search-wrap i{ position:absolute; left:.65rem; top:50%; transform:translateY(-50%); color:var(--ink-faint); font-size:12px; pointer-events:none; }
.search-wrap input{ padding-left:1.9rem; width:100%; }
.filters #isSupended{ flex:0 0 auto; width:auto; min-width:96px; }
.filters .ou-wrap{ flex:2 1 240px; min-width:180px; }
.filters .ou-wrap .ts-wrapper,.filters .ou-wrap select{ width:100%; }
.toolbar .actions{ display:flex; align-items:center; gap:.4rem; flex-wrap:wrap; margin-left:auto; }
.toolbar .actions #limitSelect{ width:auto; }
.btn-ghost,.btn-clear{ background:#fff; border:1px solid var(--border); color:var(--ink); font-size:12px; font-weight:500; padding:.38rem .7rem; min-height:32px; border-radius:6px; display:inline-flex; align-items:center; gap:.35rem; white-space:nowrap; }
.btn-ghost:hover,.btn-clear:hover{ background:var(--bg); color:var(--ink); }
.btn-clear{ padding:.38rem .6rem; color:var(--ink-soft); }
.toolbar .btn-accent{ min-height:32px; }
.toolbar .divider{ width:1px; height:20px; background:var(--border); }

/* Tabela */
.table-panel{ background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow); overflow:hidden; padding:.75rem; }
.table-scroll{ overflow-x:auto; border-radius:8px; }
table.corp-table{ width:100%; border-collapse:separate; border-spacing:0; margin:0; min-width:1500px; }
table.corp-table thead th{ background:#F8F9FB; border-bottom:1px solid var(--border); color:var(--ink-soft); font-weight:600; font-size:11px; text-transform:uppercase; letter-spacing:.03em; padding:.5rem .65rem; text-align:left; white-space:nowrap; }
table.corp-table tbody td{ padding:.42rem .65rem; border-bottom:1px solid #EEF0F4; vertical-align:middle; white-space:nowrap; font-size:12px; }
table.corp-table tbody tr{ transition:background .12s; }
table.corp-table tbody tr:hover{ background:#F8FAFF; }
table.corp-table tbody tr.is-selected{ background:var(--accent-soft); }
.name-cell strong{ font-weight:600; }
.email-link{ color:var(--accent-ink); text-decoration:none; }
.email-link:hover{ text-decoration:underline; }

.badge-status{ display:inline-flex; align-items:center; gap:.3rem; padding:.18rem .55rem; border-radius:100px; font-size:11px; font-weight:600; }
.badge-status.ativo{ background:var(--success-bg); color:var(--success); }
.badge-status.suspenso{ background:var(--warning-bg); color:var(--warning); }

.row-actions{ display:flex; gap:.25rem; }
.icon-btn{ width:26px; height:26px; border:1px solid var(--border); background:#fff; border-radius:6px; display:inline-flex; align-items:center; justify-content:center; color:var(--ink-soft); font-size:12px; transition:all .12s; }
.icon-btn:hover{ background:var(--bg); color:var(--ink); }
.icon-btn.danger:hover{ background:#FCEAEC; color:var(--danger); border-color:#F2C4CA; }
.icon-btn.warn:hover{ background:var(--warning-bg); color:var(--warning); border-color:#F0D2B4; }
.icon-btn.ok:hover{ background:var(--success-bg); color:var(--success); border-color:#B9E4D3; }

.table-foot{ display:flex; align-items:center; justify-content:space-between; gap:.5rem; flex-wrap:wrap; padding:.6rem .25rem .25rem; font-size:11.5px; color:var(--ink-soft); }
.table-actions{ display:flex; justify-content:flex-end; gap:.4rem; flex-wrap:wrap; margin-top:.5rem; }
.table-actions .btn{ font-size:12px; padding:.3rem .7rem; border-radius:6px; font-weight:500; }

/* DataTables 2: busca e paginação compactas */
.dt-container{ font-size:12px; }
.dt-container .dt-layout-row{ gap:.5rem; flex-wrap:wrap; margin:.25rem 0 .6rem; }
.dt-container .dt-search{ display:flex; align-items:center; gap:.4rem; }
.dt-container .dt-search label{ font-size:11.5px; color:var(--ink-soft); margin:0; }
.dt-container .dt-search input{ min-width:min(260px,60vw); border:1px solid var(--border); border-radius:6px; padding:.3rem .6rem; font-size:12px; outline:none; }
.dt-container .dt-search input:focus{ border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
.dt-container .dt-paging{ display:flex; align-items:center; }
.dt-container .dt-paging nav{ display:inline-flex; align-items:center; gap:4px; padding:3px; background:var(--accent-soft); border-radius:100px; }
.dt-container .dt-paging .dt-paging-button{
  min-width:30px; height:30px; padding:0 .6rem !important; margin:0 !important;
  display:inline-flex; align-items:center; justify-content:center;
  font-size:12px; font-weight:600; line-height:1; color:var(--accent-ink) !important;
  background:transparent !important; border:1px solid transparent !important; border-radius:100px !important;
  cursor:pointer; box-shadow:none !important; transition:background .15s, color .15s, transform .1s;
}
.dt-container .dt-paging .dt-paging-button:hover:not(.disabled):not(.current){
  background:#fff !important; color:var(--accent) !important; border-color:#C7D2F5 !important; transform:translateY(-1px);
}
.dt-container .dt-paging .dt-paging-button.current,
.dt-container .dt-paging .dt-paging-button.current:hover{
  background:#fff !important; color:var(--accent) !important; border-color:#C7D2F5 !important;
  box-shadow:0 1px 4px rgba(16,24,40,.12) !important;
}
.dt-container .dt-paging .dt-paging-button.disabled,
.dt-container .dt-paging .dt-paging-button.disabled:hover{ opacity:.4; cursor:default; background:transparent !important; color:var(--accent-ink) !important; }
.dt-container .dt-paging .ellipsis{ color:var(--ink-faint); padding:0 .25rem; }
.dt-container .dt-info{ font-size:11.5px; color:var(--ink-soft); }

/* Cabeçalho/rodapé fixos (DataTables FixedHeader) */
table.fixedHeader-floating,table.fixedHeader-locked{ z-index:1020; background:#F8F9FB; box-shadow:0 2px 8px rgba(16,24,40,.1); }
table.fixedHeader-floating thead th,table.fixedHeader-floating tfoot th,table.fixedHeader-floating tfoot td{ background:#F8F9FB; }

/* Linha ativa (aberta no modal) */
table.corp-table tbody tr.row-active,
table.corp-table tbody tr.row-active > td{ background:#FFF6D1 !important; box-shadow:inset 0 0 0 9999px #FFF6D1 !important; }
table.corp-table tbody tr.row-active > td:first-child{ border-left:3px solid var(--accent); }

/* Modal */
.modal-content{ border:0; border-radius:14px; box-shadow:0 20px 50px rgba(16,24,40,.22); font-size:var(--fs); }
.modal-header.app-head{ background:linear-gradient(135deg,var(--accent),#5C7CFA); color:#fff; border:0; padding:.75rem 1rem; border-radius:14px 14px 0 0; }
.modal-header.app-head .modal-title{ font-size:14px; }
.modal-body{ padding:1rem 1.1rem; }
.modal-footer{ padding:.65rem 1.1rem; border-top:1px solid var(--border); gap:.4rem; }
.modal-footer .btn{ font-size:12.5px; padding:.38rem .85rem; border-radius:7px; }
.form-section{ font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--ink-faint); margin:.9rem 0 .4rem; padding-bottom:.25rem; border-bottom:1px dashed var(--border); }
.form-section:first-child{ margin-top:0; }
.user-counter{ min-width:58px; text-align:center; font-variant-numeric:tabular-nums; }
#userNav{ gap:.25rem; padding:.2rem !important; }
#userNav .btn{ width:34px; height:34px; padding:0 !important; font-size:16px; display:inline-flex; align-items:center; justify-content:center; border-radius:50% !important; color:#fff; transition:background .15s; }
#userNav .btn:hover:not(:disabled){ background:rgba(255,255,255,.3); color:#fff; }
#userNav .btn:disabled{ opacity:.35; }
#userNav .user-counter{ font-size:12px; min-width:62px; }
.modal-header.app-head .btn-close{ margin:0 0 0 .25rem; align-self:center; }

/* Status do modal */
#fStatus:has(option[value="false"]:checked){ background-color:var(--success-bg); color:var(--success); }
#fStatus:has(option[value="true"]:checked){ background-color:var(--warning-bg); color:var(--warning); }

/* Validação e campos em branco */
.form-control.is-empty:not(.is-invalid),.form-select.is-empty:not(.is-invalid){ border-color:#E0A458; background-color:#FFF8EC; }
label.label-empty::after{ content:"\25CF"; color:#E08A1E; font-size:8px; margin-left:.3rem; vertical-align:middle; }
#emptySummary{ max-width:60%; font-size:11.5px; color:var(--warning); }

/* ===== Modais de confirmação e exportação ===== */
.confirm-dialog{ max-width:400px; }
.confirm-card{ --v:var(--danger); --v-bg:#FCEAEC; overflow:hidden; }
.confirm-card[data-variant="warning"]{ --v:var(--warning); --v-bg:var(--warning-bg); }
.confirm-card[data-variant="success"]{ --v:var(--success); --v-bg:var(--success-bg); }

.confirm-card .modal-body{ padding:1.5rem 1.4rem .6rem; text-align:center; }
.confirm-icon{
  width:56px; height:56px; margin:0 auto .9rem; border-radius:50%;
  background:var(--v-bg); color:var(--v);
  display:flex; align-items:center; justify-content:center; font-size:24px;
  box-shadow:0 0 0 7px color-mix(in srgb, var(--v) 10%, transparent);
}
.confirm-card h5{ font-size:15px; font-weight:700; letter-spacing:-.01em; margin:0 0 .35rem; }
.confirm-card .confirm-msg{ color:var(--ink-soft); font-size:12.5px; margin:0 0 .85rem; }

.confirm-target{
  text-align:left; background:var(--bg); border:1px solid var(--border);
  border-radius:8px; padding:.5rem .65rem; max-height:140px; overflow:auto;
}
.confirm-target .item{ display:flex; align-items:center; gap:.4rem; padding:.15rem 0; font-size:11.5px; word-break:break-all; }
.confirm-target .item i{ color:var(--v); font-size:10px; }
.confirm-target .more{ color:var(--ink-faint); font-size:11px; padding-top:.2rem; }
.confirm-target .count{ font-weight:700; font-size:12.5px; }

.confirm-note{
  display:flex; align-items:center; justify-content:center; gap:.35rem;
  margin-top:.7rem; font-size:11.5px; font-weight:600; color:var(--v);
}
.confirm-card .modal-footer{ border:0; justify-content:center; padding:.9rem 1.4rem 1.3rem; gap:.5rem; }
.confirm-card .modal-footer .btn{ flex:1 1 0; font-weight:600; min-height:36px; }
.confirm-card .btn-cancel{ background:#fff; border:1px solid var(--border); color:var(--ink); }
.confirm-card .btn-cancel:hover{ background:var(--bg); }
.confirm-card .btn-confirm{ background:var(--v); border:1px solid var(--v); color:#fff; box-shadow:var(--shadow); }
.confirm-card .btn-confirm:hover{ filter:brightness(.92); color:#fff; }

/* Exportação */
.export-card .modal-header{ border:0; padding:1rem 1.1rem .25rem; }
.export-card .modal-title{ font-size:15px; font-weight:700; }
.export-card .modal-body{ padding:.4rem 1.1rem 1rem; }
.export-sub{ color:var(--ink-soft); font-size:12px; margin:0 0 .8rem; }
.export-option{
  width:100%; display:flex; align-items:center; gap:.8rem; text-align:left;
  background:#fff; border:1px solid var(--border); border-radius:10px;
  padding:.75rem .85rem; margin-bottom:.55rem; color:var(--ink);
  transition:border-color .15s, box-shadow .15s, transform .1s, background .15s;
}
.export-option:last-child{ margin-bottom:0; }
.export-option:hover{ border-color:var(--accent); background:var(--accent-soft); box-shadow:0 2px 8px rgba(59,91,219,.12); transform:translateY(-1px); }
.export-option:focus-visible{ outline:none; border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
.export-option .ico{
  flex:0 0 40px; height:40px; border-radius:10px; background:var(--accent-soft); color:var(--accent);
  display:flex; align-items:center; justify-content:center; font-size:18px;
}
.export-option.all .ico{ background:var(--success-bg); color:var(--success); }
.export-option.all:hover{ border-color:var(--success); background:#F3FBF7; box-shadow:0 2px 8px rgba(15,123,85,.12); }
.export-option .txt{ flex:1; min-width:0; }
.export-option .txt strong{ display:block; font-size:13px; font-weight:600; }
.export-option .txt small{ display:block; color:var(--ink-soft); font-size:11.5px; }
.export-option .pill{ flex:0 0 auto; min-width:34px; text-align:center; padding:.2rem .6rem; border-radius:100px; background:var(--accent-soft); color:var(--accent-ink); font-weight:700; font-size:12px; font-variant-numeric:tabular-nums; }
.export-option.all .pill{ background:var(--success-bg); color:var(--success); }
.export-card .modal-footer{ border:0; padding:.25rem 1.1rem 1rem; }

/* Edição em lote */
.bulk-field{ border:1px solid var(--border); border-radius:8px; padding:.6rem .75rem; margin-bottom:.55rem; background:#fff; transition:border-color .15s, background .15s; }
.bulk-field.is-on{ border-color:var(--accent); background:var(--accent-soft); }
.bulk-field .form-check-label{ font-weight:600; font-size:12.5px; }
.bulk-field .bulk-ctl{ margin-top:.45rem; }
#bulkProgress{ font-size:11.5px; color:var(--ink-soft); }
#bulkErrors{ font-size:11.5px; color:var(--danger); max-height:90px; overflow:auto; }

#btnLoadRH{ color:inherit; font-size:inherit; }
#btnLoadRH:hover{ color:var(--accent); }
#btnLoadRH:disabled i{ animation:spinRH .8s linear infinite; }
@keyframes spinRH{ to{ transform:rotate(360deg); } }

/* Lupas de consulta à planilha RH */
.form-label .bi-search{ cursor:pointer; }
.form-label .bi-search:hover{ color:var(--accent); }

/* Responsivo */
@media (max-width:768px){
  .toolbar .actions{ margin-left:0; width:100%; }
  .page-head .btn-accent{ width:100%; }
  .topbar .org-context{ order:3; width:100%; }
}
@media (max-width:480px){
  .stat-strip{ grid-template-columns:repeat(2,1fr); }
  .modal-body{ padding:.8rem; }
}

/* =====================================================================
   Acréscimos da versão PHP (navegação, login, páginas administrativas)
   ===================================================================== */
.app-nav{ display:flex; align-items:center; gap:.15rem; flex-wrap:wrap; margin-right:auto; margin-left:.75rem; }
.app-nav a{ display:inline-flex; align-items:center; gap:.35rem; padding:.35rem .65rem; border-radius:7px; font-size:12.5px; font-weight:500; color:var(--ink-soft); text-decoration:none; transition:background .12s,color .12s; }
.app-nav a:hover{ background:var(--bg); color:var(--ink); }
.app-nav a.active{ background:var(--accent-soft); color:var(--accent-ink); font-weight:600; }
.topbar .who.btn{ display:flex; align-items:center; gap:.5rem; font-size:12px; color:var(--ink-soft); }
.dropdown-menu{ font-size:12.5px; border-color:var(--border); border-radius:10px; }
@media (max-width:992px){
  .app-nav{ order:3; width:100%; margin:0; overflow-x:auto; flex-wrap:nowrap; }
  .app-nav a span{ white-space:nowrap; }
}

/* Login */
.login-body{ min-height:100vh; background:radial-gradient(1200px 600px at 10% -10%, #E4E9FD 0%, transparent 60%), radial-gradient(900px 500px at 110% 110%, #E4F6EE 0%, transparent 55%), var(--bg); }
.login-wrap{ min-height:100vh; display:flex; align-items:center; justify-content:center; padding:1.25rem; }
.login-card{ width:100%; max-width:380px; background:var(--surface); border:1px solid var(--border); border-radius:16px; padding:1.6rem 1.5rem; box-shadow:0 20px 50px rgba(16,24,40,.10); }
.login-mark{ width:38px; height:38px; border-radius:10px; background:var(--accent); color:#fff; display:flex; align-items:center; justify-content:center; font-size:18px; }
.login-sep{ display:flex; align-items:center; gap:.6rem; color:var(--ink-faint); font-size:11.5px; margin:1rem 0; }
.login-sep::before,.login-sep::after{ content:""; flex:1; height:1px; background:var(--border); }
.btn-google{ background:#fff; border:1px solid var(--border); color:var(--ink); font-weight:600; font-size:12.5px; display:flex; align-items:center; justify-content:center; gap:.55rem; border-radius:7px; }
.btn-google:hover{ background:var(--bg); border-color:#C9CFDB; }

/* Painéis das páginas administrativas */
.section-card{ background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow); padding:1rem 1.1rem; margin-bottom:.9rem; }
.section-card h2{ font-size:13.5px; font-weight:700; margin:0 0 .15rem; display:flex; align-items:center; gap:.45rem; }
.section-card .hint{ color:var(--ink-soft); font-size:11.5px; margin:0 0 .75rem; }
.secret-state{ display:inline-flex; align-items:center; gap:.35rem; font-size:11.5px; font-weight:600; padding:.2rem .6rem; border-radius:100px; }
.secret-state.on{ background:var(--success-bg); color:var(--success); }
.secret-state.off{ background:var(--warning-bg); color:var(--warning); }
.kv{ display:grid; grid-template-columns:max-content 1fr; gap:.2rem .8rem; font-size:12px; }
.kv dt{ color:var(--ink-soft); font-weight:500; } .kv dd{ margin:0; word-break:break-all; }
.copy-field{ display:flex; gap:.4rem; } .copy-field input{ font-family:'Roboto Mono',monospace; font-size:11.5px; }
.test-list{ list-style:none; padding:0; margin:.6rem 0 0; font-size:12px; }
.test-list li{ display:flex; gap:.5rem; padding:.35rem 0; border-top:1px dashed var(--border); }
.role-badge{ display:inline-block; padding:.15rem .55rem; border-radius:100px; font-size:11px; font-weight:600; background:var(--bg); color:var(--ink-soft); }
.role-badge.admin{ background:var(--accent-soft); color:var(--accent-ink); }
.role-badge.operador{ background:var(--success-bg); color:var(--success); }
.role-badge.suporte{ background:var(--warning-bg, #fff4e0); color:var(--warning, #9a5b00); }

/* Relatórios */
/* Logo da organização (Configurações > Personalização) */
.brand-logo{ height:26px; width:auto; max-width:120px; object-fit:contain; border-radius:5px; }
.brand-logo-lg{ height:38px; max-width:160px; }
.logo-preview{ width:96px; height:64px; border:1px dashed var(--border); border-radius:8px; display:flex; align-items:center; justify-content:center; background:var(--bg); font-size:22px; overflow:hidden; }
.logo-preview img{ max-width:100%; max-height:100%; object-fit:contain; }

/* Botão + (cadastro rápido de Departamento/Cargo/Vínculo) */
.catalog-add{ border:0; background:none; padding:0 .15rem; line-height:1; color:var(--accent); font-size:13px; vertical-align:baseline; }
.catalog-add:hover,.catalog-add:focus-visible{ color:var(--accent-ink); }

/* Página Cadastros */
.catalog-tabs .nav-link{ font-size:12.5px; font-weight:600; color:var(--ink-soft); }
.catalog-tabs .nav-link.active{ color:var(--accent-ink); }
.catalog-panel{ border-top-left-radius:0; }

/* Configurações: menu de abas à esquerda + conteúdo da aba */
.settings-layout{ display:grid; grid-template-columns:230px minmax(0,1fr); gap:.9rem; align-items:start; }
.settings-layout form{ max-width:900px; min-width:0; }
.settings-pane[hidden]{ display:none; }
.settings-nav .nav-dot{ margin-left:auto; flex:0 0 8px; width:8px; height:8px; border-radius:50%; background:var(--border); }
.settings-nav .nav-dot.ok{ background:var(--success); }
.settings-nav .nav-dot.warn{ background:#E0A458; }
.dirty-badge{ display:inline-flex; align-items:center; gap:.35rem; font-size:11.5px; font-weight:600; padding:.2rem .6rem; border-radius:100px; background:var(--warning-bg); color:var(--warning); }
@media (max-width:992px){
  .settings-layout{ grid-template-columns:1fr; }
  .settings-nav{ position:static; display:flex; gap:.25rem; overflow-x:auto; }
  .settings-nav .group{ display:none; }
  .settings-nav button{ width:auto; flex:0 0 auto; white-space:nowrap; }
  .settings-nav .nav-dot{ margin-left:.15rem; }
}
.report-layout{ display:grid; grid-template-columns:260px 1fr; gap:.9rem; align-items:start; }
@media (max-width:992px){ .report-layout{ grid-template-columns:1fr; } }
.report-menu{ position:sticky; top:.75rem; padding:.5rem; }
.report-menu .group{ font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--ink-faint); padding:.6rem .55rem .25rem; }
.report-menu button{ width:100%; text-align:left; border:0; background:transparent; padding:.42rem .55rem; border-radius:7px; font-size:12.5px; color:var(--ink); display:flex; align-items:center; gap:.5rem; }
.report-menu button:hover{ background:var(--bg); }
.report-menu button.active{ background:var(--accent-soft); color:var(--accent-ink); font-weight:600; }
.report-menu button i{ color:var(--ink-faint); width:16px; }
.report-menu button.active i{ color:var(--accent); }
.report-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:.75rem; flex-wrap:wrap; margin-bottom:.75rem; }
.report-head h2{ font-size:15px; font-weight:700; margin:0; }
.report-head p{ margin:.1rem 0 0; color:var(--ink-soft); font-size:12px; }
.report-params{ display:flex; gap:.5rem; flex-wrap:wrap; align-items:flex-end; margin-bottom:.75rem; }
.report-params .form-label{ margin-bottom:.15rem; }
.bar-list{ display:flex; flex-direction:column; gap:.35rem; }
.bar-row{ display:grid; grid-template-columns:minmax(120px,38%) 1fr 64px; align-items:center; gap:.6rem; font-size:12px; }
.bar-row .lbl{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--ink); }
.bar-row .track{ height:14px; background:var(--bg); border-radius:4px; overflow:hidden; }
.bar-row .fill{ height:100%; background:var(--accent); border-radius:0 4px 4px 0; min-width:2px; }
.bar-row .val{ text-align:right; font-variant-numeric:tabular-nums; color:var(--ink-soft); font-weight:600; }
.overview-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:.9rem; }
.empty-state{ text-align:center; color:var(--ink-soft); padding:2.5rem 1rem; }
.empty-state i{ font-size:34px; color:var(--ink-faint); display:block; margin-bottom:.4rem; }
.pw-strength{ height:4px; border-radius:2px; background:var(--border); overflow:hidden; margin-top:.35rem; }
.pw-strength span{ display:block; height:100%; width:0; transition:width .2s, background .2s; }

/* Badge de selecionados (antes injetado via JavaScript) */
#selectedCount.selected-badge {
      display: inline-flex;
      align-items: center;
      gap: .45rem;
      font-size: .85rem;
      font-weight: 600;
      line-height: 1;
      padding: .45rem .85rem .45rem .55rem;
      border-radius: 999px;
      border: 1px solid transparent;
      user-select: none;
      transition: background-color .2s, color .2s, box-shadow .2s, border-color .2s;
    }
    #selectedCount.selected-badge .sel-icon { font-size: 1rem; }
    #selectedCount.selected-badge .sel-num {
      min-width: 1.6rem;
      padding: .2rem .45rem;
      border-radius: 999px;
      text-align: center;
      font-weight: 700;
      font-variant-numeric: tabular-nums;
    }
    #selectedCount.selected-badge .sel-clear { display: none; font-size: .75rem; opacity: .85; }

    /* Nenhum selecionado: discreto */
    #selectedCount.selected-badge.is-empty {
      background: #f1f3f5;
      color: #6c757d;
      border-color: #dee2e6;
    }
    #selectedCount.selected-badge.is-empty .sel-num { background: #dee2e6; color: #495057; }

    /* Com seleção: destaque forte */
    #selectedCount.selected-badge.is-active {
      background: #0d6efd;
      color: #fff;
      border-color: #0a58ca;
      box-shadow: 0 0 0 3px rgba(13,110,253,.25);
      cursor: pointer;
    }
    #selectedCount.selected-badge.is-active .sel-num { background: #fff; color: #0d6efd; }
    #selectedCount.selected-badge.is-active .sel-clear { display: inline; }
    #selectedCount.selected-badge.is-active:hover { background: #0b5ed7; }

    #selectedCount.selected-badge.bump { animation: selBadgeBump .28s ease-out; }
    @keyframes selBadgeBump {
      0%   { transform: scale(1); }
      50%  { transform: scale(1.12); }
      100% { transform: scale(1); }
    }

    @media (prefers-color-scheme: dark) {
      #selectedCount.selected-badge.is-empty { background: #2b3035; color: #adb5bd; border-color: #495057; }
      #selectedCount.selected-badge.is-empty .sel-num { background: #495057; color: #dee2e6; }
    }
