:root{
  --brand:#5b21b6;
  --brand-dark:#3b0764;
  --brand-soft:#f3e8ff;
  --ink:#1f2937;
  --muted:#6b7280;
  --bg:#f5f7fb;
  --card:#ffffff;
  --line:#e5e7eb;
  --success:#16a34a;
  --warning:#f59e0b;
  --danger:#dc2626;
  --info:#2563eb;
}
*{box-sizing:border-box}
body{
  min-height:100vh;
  background:var(--bg);
  color:var(--ink);
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
a{color:var(--brand);text-decoration:none}
.btn-primary{
  --bs-btn-bg:var(--brand);
  --bs-btn-border-color:var(--brand);
  --bs-btn-hover-bg:var(--brand-dark);
  --bs-btn-hover-border-color:var(--brand-dark);
}
.btn-outline-primary{
  --bs-btn-color:var(--brand);
  --bs-btn-border-color:var(--brand);
  --bs-btn-hover-bg:var(--brand);
  --bs-btn-hover-border-color:var(--brand);
}
.loading-screen{
  position:fixed;
  inset:0;
  display:grid;
  place-items:center;
  background:#fff;
  z-index:3000;
}
.loading-logo{max-width:150px;max-height:90px;object-fit:contain}
.login-screen{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:
    radial-gradient(circle at top left, rgba(91,33,182,.22), transparent 35%),
    linear-gradient(135deg,#fbfbff 0%,#f3e8ff 100%);
}
.login-card{
  width:min(500px,100%);
  background:rgba(255,255,255,.92);
  border:1px solid rgba(255,255,255,.8);
  border-radius:28px;
  padding:32px;
  backdrop-filter:blur(12px);
}
.login-logo{max-width:145px;max-height:90px;object-fit:contain}
.app-shell{display:flex;min-height:100vh}
.sidebar{
  width:292px;
  background:#111827;
  color:#fff;
  position:fixed;
  inset:0 auto 0 0;
  padding:22px;
  display:flex;
  flex-direction:column;
  z-index:1040;
}
.brand{
  display:flex;
  align-items:center;
  gap:12px;
  padding-bottom:22px;
  border-bottom:1px solid rgba(255,255,255,.09);
}
.brand img{width:58px;height:58px;object-fit:contain;background:#fff;border-radius:16px;padding:7px}
.brand strong{display:block;font-size:1rem}
.brand span{display:block;color:#cbd5e1;font-size:.78rem}
.menu{display:flex;flex-direction:column;gap:6px;margin-top:20px}
.menu-link{
  width:100%;
  border:0;
  background:transparent;
  color:#d1d5db;
  border-radius:14px;
  padding:12px 14px;
  display:flex;
  align-items:center;
  gap:12px;
  text-align:left;
  transition:.2s;
}
.menu-link:hover,.menu-link.active{
  background:linear-gradient(135deg,var(--brand),#7c3aed);
  color:#fff;
  transform:translateX(2px);
}
.menu-link i{font-size:1.05rem}
.sidebar-footer{
  margin-top:auto;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.09);
  font-size:.85rem;
}
.sidebar-footer a{color:#cbd5e1;display:block;margin-top:8px}
.cloud-status{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:#cbd5e1;
  font-size:.82rem;
}
.cloud-status span{
  width:10px;
  height:10px;
  border-radius:999px;
  display:inline-block;
  background:#ef4444;
}
.cloud-status.online span{background:#22c55e}
.cloud-status.syncing span{background:#f59e0b}
.main{
  margin-left:292px;
  width:calc(100% - 292px);
  min-height:100vh;
}
.topbar{
  position:sticky;
  top:0;
  z-index:100;
  min-height:84px;
  background:rgba(245,247,251,.9);
  backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:18px 28px;
}
.topbar h2{margin:0;font-size:1.35rem;font-weight:800}
.topbar p{margin:2px 0 0;color:var(--muted);font-size:.92rem}
.top-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.user-pill{
  border:1px solid var(--line);
  background:#fff;
  border-radius:999px;
  padding:8px 12px;
  font-size:.85rem;
  color:#374151;
  display:inline-flex;
  align-items:center;
}
.content-section{
  display:none;
  padding:28px;
}
.content-section.active{display:block}
.metric-card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:22px;
  padding:18px;
  display:flex;
  align-items:center;
  gap:14px;
  box-shadow:0 10px 30px rgba(15,23,42,.04);
}
.metric-icon{
  width:48px;height:48px;
  border-radius:16px;
  background:var(--brand-soft);
  color:var(--brand);
  display:grid;place-items:center;
  font-size:1.35rem;
}
.metric-card small{display:block;color:var(--muted);font-weight:600}
.metric-card strong{display:block;font-size:1.55rem;font-weight:900;line-height:1.1}
.painel{
  border:1px solid var(--line);
  border-radius:22px;
  box-shadow:0 10px 30px rgba(15,23,42,.04);
  overflow:hidden;
}
.painel .card-header{
  background:#fff;
  border-bottom:1px solid var(--line);
  padding:18px 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.painel .card-header h5{margin:0;font-weight:800;font-size:1rem}
.painel .card-header span{display:block;color:var(--muted);font-size:.85rem;margin-top:2px}
.table{font-size:.92rem}
.table thead th{
  background:#f9fafb;
  color:#4b5563;
  font-size:.78rem;
  letter-spacing:.02em;
  text-transform:uppercase;
  border-bottom:1px solid var(--line);
  white-space:nowrap;
}
.table td{vertical-align:middle}
.section-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-bottom:18px;
}
.section-toolbar h3{margin:0;font-weight:900}
.section-toolbar p{margin:2px 0 0;color:var(--muted)}
.client-card{
  border:1px solid var(--line);
  border-radius:22px;
  background:#fff;
  box-shadow:0 10px 30px rgba(15,23,42,.04);
  padding:18px;
  height:100%;
}
.client-card h5{font-weight:850;margin:0 0 4px}
.client-card .segment{color:var(--muted);font-size:.88rem;margin-bottom:12px}
.client-meta{
  display:grid;
  gap:7px;
  font-size:.9rem;
  color:#374151;
}
.client-meta i{color:var(--brand);margin-right:6px}
.tag-list{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}
.badge-soft{
  border-radius:999px;
  padding:6px 9px;
  font-size:.76rem;
  font-weight:700;
  background:#f3f4f6;
  color:#374151;
}
.badge-status{
  border-radius:999px;
  padding:6px 10px;
  font-size:.76rem;
  font-weight:800;
  white-space:nowrap;
}
.status-ativo,.status-pago,.status-publicado,.status-aprovado,.status-finalizado,.status-vencendo{background:#dcfce7;color:#166534}
.status-pausado,.status-pendente,.status-aguardando-aprovacao,.status-em-producao,.status-em-edicao,.status-planejado,.status-em-analise{background:#fef3c7;color:#92400e}
.status-encerrado,.status-vencido,.status-atrasado,.status-reprovado,.status-cancelado,.status-ajustes-solicitados{background:#fee2e2;color:#991b1b}
.status-agendado,.status-ativo-ads,.status-gravado,.status-roteiro-pendente,.status-gravacao-agendada{background:#dbeafe;color:#1e40af}
.check-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  border:1px solid var(--line);
  border-radius:14px;
  padding:12px;
  background:#f9fafb;
}
.check-grid label{
  display:flex;
  gap:7px;
  align-items:center;
  font-size:.9rem;
}
.quick-list{display:grid;gap:10px}
.quick-item{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fbfdff;
}
.quick-item i{color:var(--brand);font-size:1.1rem;margin-top:2px}
.quick-item strong{display:block;font-size:.92rem}
.quick-item span{color:var(--muted);font-size:.83rem}
.empty-state{
  padding:28px;
  text-align:center;
  color:var(--muted);
}
.empty-state i{font-size:2rem;color:#d1d5db;display:block;margin-bottom:8px}
.action-btn{
  border:0;background:#f3f4f6;color:#374151;
  width:34px;height:34px;border-radius:10px;
  display:inline-grid;place-items:center;
  margin-right:4px;
}
.action-btn:hover{background:var(--brand-soft);color:var(--brand)}
.danger-zone{border-color:#fecaca}
.report-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  padding:20px;
  height:100%;
  box-shadow:0 10px 30px rgba(15,23,42,.04);
}
.report-card small{text-transform:uppercase;color:var(--muted);font-weight:800;letter-spacing:.03em}
.report-card strong{display:block;font-size:1.85rem;margin-top:8px}
.report-card p{margin:8px 0 0;color:var(--muted)}
@media(max-width:991px){
  .sidebar{transform:translateX(-100%);transition:.25s}
  .sidebar.open{transform:translateX(0)}
  .main{margin-left:0;width:100%}
  .topbar{padding:14px 16px}
  .content-section{padding:18px}
  .top-actions .btn{padding:.45rem .65rem}
  .section-toolbar{align-items:flex-start;flex-direction:column}
}
@media(max-width:575px){
  .login-card{padding:24px;border-radius:22px}
  .metric-card{padding:14px}
  .metric-icon{width:42px;height:42px}
  .metric-card strong{font-size:1.25rem}
  .check-grid{grid-template-columns:1fr}
  .top-actions{width:100%;justify-content:flex-start}
}


.permission-hidden{display:none!important}
.locked-section{
  background:#fff;
  border:1px dashed #cbd5e1;
  border-radius:22px;
  padding:28px;
  color:#64748b;
  text-align:center;
}
.locked-section i{
  display:block;
  font-size:2rem;
  color:#94a3b8;
  margin-bottom:8px;
}
.role-help{
  background:#f8fafc;
  border:1px solid #e2e8f0;
  border-radius:18px;
  padding:16px;
}


.approval-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  padding:18px;
  height:100%;
  box-shadow:0 10px 30px rgba(15,23,42,.04);
}
.approval-card h5{
  font-weight:850;
  margin:6px 0 8px;
}
.approval-card .approval-meta{
  color:#64748b;
  font-size:.88rem;
  display:grid;
  gap:4px;
}
.approval-caption{
  background:#f8fafc;
  border:1px solid #e2e8f0;
  border-radius:14px;
  padding:12px;
  color:#334155;
  font-size:.9rem;
  margin:12px 0;
  white-space:pre-wrap;
}
.approval-preview{
  background:#f8fafc;
  border:1px solid #e2e8f0;
  border-radius:18px;
  padding:16px;
}
.approval-preview small{
  text-transform:uppercase;
  color:#64748b;
  font-weight:800;
  letter-spacing:.03em;
}
.approval-history{
  border-top:1px solid #e2e8f0;
  margin-top:12px;
  padding-top:12px;
  color:#64748b;
  font-size:.84rem;
}


.service-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  padding:18px;
  height:100%;
  box-shadow:0 10px 30px rgba(15,23,42,.04);
}
.service-progress{
  height:10px;
  background:#e5e7eb;
  border-radius:999px;
  overflow:hidden;
  margin:12px 0;
}
.service-progress span{
  display:block;
  height:100%;
  background:linear-gradient(135deg,var(--brand),#7c3aed);
}
.check-item{
  display:flex;
  gap:10px;
  align-items:flex-start;
  padding:8px 0;
  border-bottom:1px solid #eef2f7;
}
.check-item:last-child{border-bottom:0}
.check-item input{margin-top:3px}
.check-item.done label{text-decoration:line-through;color:#64748b}
.contract-paper{
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:18px;
  padding:28px;
  white-space:pre-wrap;
  line-height:1.65;
  color:#111827;
}
.signature-box{
  background:#f8fafc;
  border:1px solid #e2e8f0;
  border-radius:18px;
  padding:18px;
}
@media print{
  body *{visibility:hidden}
  #contractViewText, #contractViewText *{visibility:visible}
  #contractViewText{
    position:absolute;
    left:0;
    top:0;
    width:100%;
    border:0;
  }
}


.signature-summary{
  margin-top:24px;
  border:2px solid #111827;
  border-radius:14px;
  padding:18px;
  background:#fff;
  color:#111827;
  page-break-inside:avoid;
}
.signature-summary h4{
  margin:0 0 12px;
  font-size:1.05rem;
  font-weight:900;
  text-transform:uppercase;
}
.signature-summary-grid{
  display:grid;
  grid-template-columns:180px 1fr;
  gap:6px 12px;
  font-size:.92rem;
}
.signature-summary-grid strong{
  font-weight:800;
}
.contract-print-area{
  background:#fff;
}
@media print{
  body *{visibility:hidden!important}
  #contractPrintArea, #contractPrintArea *{visibility:visible!important}
  #contractPrintArea{
    position:absolute;
    left:0;
    top:0;
    width:100%;
    padding:0;
    margin:0;
    background:#fff;
  }
  #contractViewText{
    border:0!important;
    border-radius:0!important;
    padding:0 0 18px 0!important;
    box-shadow:none!important;
  }
  #contractSignatureSummary{
    display:block!important;
  }
  @page{
    size:A4;
    margin:18mm;
  }
}


.danger-soft{
  background:linear-gradient(135deg,#fff1f2,#fff);
}
.warning-soft{
  background:linear-gradient(135deg,#fffbeb,#fff);
}
.attendance-item{
  padding:14px 16px;
  border-bottom:1px solid #eef2f7;
}
.attendance-item:last-child{border-bottom:0}
.attendance-item h6{
  margin:0 0 4px;
  font-weight:850;
}
.attendance-item p{
  margin:0;
  color:#64748b;
  font-size:.9rem;
}
.attendance-priority{
  font-size:.72rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.03em;
  padding:4px 8px;
  border-radius:999px;
  white-space:nowrap;
}
.priority-high{background:#fee2e2;color:#991b1b}
.priority-medium{background:#fef3c7;color:#92400e}
.priority-low{background:#dbeafe;color:#1e40af}
.log-detail{
  max-width:360px;
  white-space:normal;
  color:#475569;
  font-size:.86rem;
}


.nav-alert-count{
  margin-left:auto;
  min-width:22px;
  height:22px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 6px;
  border-radius:999px;
  background:#ef4444;
  color:#fff;
  font-size:.72rem;
  font-weight:900;
}
.nav-alert-count.is-zero{
  background:#94a3b8;
}
.alerts-summary{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:1px;
  background:#e5e7eb;
  border-top:1px solid #e5e7eb;
}
.alert-summary-item{
  background:#fff;
  padding:14px 16px;
}
.alert-summary-item small{
  display:block;
  color:#64748b;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.03em;
}
.alert-summary-item strong{
  display:block;
  font-size:1.5rem;
  margin-top:4px;
}
.alert-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  padding:18px;
  height:100%;
  box-shadow:0 10px 30px rgba(15,23,42,.04);
}
.alert-card.high{
  border-color:#fecaca;
  background:linear-gradient(135deg,#fff1f2,#fff);
}
.alert-card.medium{
  border-color:#fde68a;
  background:linear-gradient(135deg,#fffbeb,#fff);
}
.alert-card.low{
  border-color:#bfdbfe;
  background:linear-gradient(135deg,#eff6ff,#fff);
}
.alert-card h5{
  font-size:1rem;
  font-weight:900;
  margin:8px 0 6px;
}
.alert-card p{
  color:#475569;
  margin:0;
  font-size:.92rem;
}
.alert-meta{
  color:#64748b;
  font-size:.84rem;
  margin-top:10px;
}
.alert-priority{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:5px 10px;
  border-radius:999px;
  font-size:.72rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.03em;
}
.alert-priority.high{background:#fee2e2;color:#991b1b}
.alert-priority.medium{background:#fef3c7;color:#92400e}
.alert-priority.low{background:#dbeafe;color:#1e40af}
.alerts-dashboard{
  display:grid;
  gap:0;
}
.dashboard-alert-line{
  display:flex;
  gap:12px;
  justify-content:space-between;
  align-items:center;
  padding:12px 16px;
  border-top:1px solid #eef2f7;
}
.dashboard-alert-line:first-child{
  border-top:0;
}
.dashboard-alert-line strong{
  font-weight:850;
}
.dashboard-alert-line span{
  color:#64748b;
  font-size:.88rem;
}
@media(max-width:900px){
  .alerts-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
  .alerts-summary{grid-template-columns:1fr}
  .dashboard-alert-line{align-items:flex-start;flex-direction:column}
}


.production-tab{
  width:100%;
  border:1px solid var(--line);
  background:#fff;
  border-radius:18px;
  padding:16px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  font-weight:900;
  color:#334155;
  box-shadow:0 10px 25px rgba(15,23,42,.04);
}
.production-tab i{
  font-size:1.35rem;
}
.production-tab.active{
  background:linear-gradient(135deg,var(--brand),#7c3aed);
  color:#fff;
  border-color:transparent;
}
.production-panel{
  display:none;
}
.production-panel.active{
  display:block;
}


.history-pagination{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  padding:14px 16px;
  border-top:1px solid #eef2f7;
  flex-wrap:wrap;
}
.history-pagination .page-info{
  color:#64748b;
  font-size:.9rem;
}
.history-pagination .page-buttons{
  display:flex;
  gap:8px;
}
.history-pagination button{
  border:1px solid #e2e8f0;
  background:#fff;
  border-radius:10px;
  padding:7px 12px;
  font-weight:800;
  color:#334155;
}
.history-pagination button:disabled{
  opacity:.45;
  cursor:not-allowed;
}
.alerts-dashboard{
  min-height:250px;
}


.alert-action-link{
  margin-top:14px;
  display:inline-flex;
  align-items:center;
  gap:7px;
  border:0;
  border-radius:12px;
  background:linear-gradient(135deg,var(--brand),#7c3aed);
  color:#fff;
  padding:9px 13px;
  font-weight:900;
  font-size:.86rem;
}
.alert-action-link:hover{
  filter:brightness(.96);
}
.alert-focus-highlight{
  outline:3px solid rgba(124,58,237,.22)!important;
  box-shadow:0 0 0 6px rgba(124,58,237,.10)!important;
  border-radius:18px!important;
}


.client-card .btn-primary{
  border-radius:999px;
  font-weight:850;
}


.document-link{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-weight:850;
  text-decoration:none;
}
.document-link i{
  font-size:1rem;
}
.document-file-muted{
  color:#64748b;
  font-size:.84rem;
}
.upload-progress{
  height:8px;
  border-radius:999px;
  background:#e2e8f0;
  overflow:hidden;
  margin-top:8px;
}
.upload-progress span{
  display:block;
  height:100%;
  width:0%;
  background:linear-gradient(135deg,var(--brand),#7c3aed);
  transition:.25s ease;
}


.settings-page{
  padding-bottom:40px;
}
.settings-hero{
  background:linear-gradient(135deg,#111827,#4f46e5);
  color:#fff;
  border-radius:28px;
  padding:28px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  box-shadow:0 24px 70px rgba(79,70,229,.25);
  margin-bottom:22px;
}
.settings-kicker{
  display:inline-block;
  font-size:.76rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
  background:rgba(255,255,255,.14);
  padding:6px 10px;
  border-radius:999px;
  margin-bottom:12px;
}
.settings-hero h3{
  font-size:2rem;
  font-weight:950;
  margin:0 0 6px;
}
.settings-hero p{
  margin:0;
  color:rgba(255,255,255,.82);
  max-width:720px;
}
.settings-hero-icon{
  min-width:78px;
  height:78px;
  border-radius:24px;
  background:rgba(255,255,255,.14);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:2.25rem;
}
.settings-grid{
  display:grid;
  grid-template-columns:minmax(0,1.6fr) minmax(300px,.9fr);
  gap:18px;
  align-items:start;
}
.settings-side{
  display:grid;
  gap:18px;
}
.settings-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:24px;
  box-shadow:0 16px 40px rgba(15,23,42,.05);
  overflow:hidden;
}
.settings-card-main{
  padding:0;
}
.settings-card-header{
  padding:20px 22px;
  border-bottom:1px solid #eef2f7;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
}
.settings-card-header.compact{
  border-bottom:0;
  padding-bottom:10px;
}
.settings-card-header h5{
  margin:0;
  font-size:1.05rem;
  font-weight:950;
  color:#0f172a;
}
.settings-card-header span{
  display:block;
  color:#64748b;
  margin-top:3px;
  font-size:.9rem;
}
.settings-card-icon{
  font-size:1.6rem;
  color:#4f46e5;
  background:#eef2ff;
  width:44px;
  height:44px;
  border-radius:16px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex:none;
}
.settings-form{
  padding:22px;
}
.settings-actions{
  display:flex;
  justify-content:flex-end;
  margin-top:18px;
}
.settings-card-text{
  color:#64748b;
  margin:0;
  padding:0 22px 18px;
  font-size:.93rem;
}
.settings-side .btn{
  margin:0 22px 22px;
  width:calc(100% - 44px)!important;
}
.settings-mini-stats{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1px;
  background:#eef2f7;
  border-top:1px solid #eef2f7;
}
.settings-mini-stats div{
  background:#fff;
  padding:16px;
}
.settings-mini-stats small{
  color:#64748b;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.settings-mini-stats strong{
  display:block;
  font-size:1.55rem;
  font-weight:950;
  color:#111827;
  margin-top:4px;
}
.settings-admin-card .settings-card-header{
  border-bottom:1px solid #eef2f7;
}
.settings-admin-actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  padding:18px;
}
.admin-action{
  border:1px solid #e2e8f0;
  background:#f8fafc;
  border-radius:18px;
  padding:16px;
  display:flex;
  gap:14px;
  align-items:flex-start;
  text-align:left;
  transition:.2s ease;
}
.admin-action:hover{
  background:#eef2ff;
  border-color:#c7d2fe;
  transform:translateY(-1px);
}
.admin-action i{
  width:42px;
  height:42px;
  border-radius:15px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fff;
  color:#4f46e5;
  font-size:1.25rem;
  flex:none;
}
.admin-action strong{
  display:block;
  color:#0f172a;
  font-weight:900;
}
.admin-action span{
  display:block;
  color:#64748b;
  font-size:.88rem;
  margin-top:2px;
}
.settings-history-wrap .settings-card,
.settings-history-wrap .card{
  border-radius:24px;
  overflow:hidden;
  border:1px solid var(--line);
  box-shadow:0 16px 40px rgba(15,23,42,.05);
}
.settings-history-wrap .card-header{
  padding:20px 22px;
  background:#fff;
}
.settings-history-wrap .card-header h5{
  margin:0;
  font-weight:950;
}
.settings-history-wrap .card-header span{
  color:#64748b;
  font-size:.9rem;
}
@media(max-width:1000px){
  .settings-grid{
    grid-template-columns:1fr;
  }
}
@media(max-width:700px){
  .settings-hero{
    align-items:flex-start;
    flex-direction:column;
  }
  .settings-admin-actions{
    grid-template-columns:1fr;
  }
}


/* ===============================
   MODO 9 — REDESIGN VISUAL COMPLETO
   =============================== */

.crm-modern{
  background:
    radial-gradient(circle at top left, rgba(79,70,229,.10), transparent 34%),
    radial-gradient(circle at 80% 0%, rgba(124,58,237,.08), transparent 30%),
    #f8fafc;
}

.crm-modern .app-shell{
  background:transparent;
}

.crm-modern .sidebar{
  background:linear-gradient(180deg,#0f172a 0%,#111827 48%,#1e1b4b 100%);
  border-right:0;
  box-shadow:18px 0 50px rgba(15,23,42,.18);
}

.crm-modern .sidebar .brand{
  padding:22px 18px;
  border-bottom:1px solid rgba(255,255,255,.10);
}

.crm-modern .brand img{
  filter:drop-shadow(0 10px 18px rgba(0,0,0,.18));
}

.brand-version-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:22px;
  min-width:34px;
  padding:0 8px;
  border-radius:999px;
  margin-left:8px;
  background:rgba(255,255,255,.14);
  color:#fff;
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.03em;
}

.crm-modern .menu-link{
  border-radius:16px;
  margin:4px 10px;
  padding:12px 14px;
  font-weight:800;
  color:rgba(255,255,255,.72);
  transition:.22s ease;
}

.crm-modern .menu-link i{
  width:24px;
  height:24px;
  border-radius:9px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,.08);
  color:rgba(255,255,255,.88);
}

.crm-modern .menu-link:hover{
  background:rgba(255,255,255,.09);
  color:#fff;
  transform:translateX(2px);
}

.crm-modern .menu-link.active{
  background:linear-gradient(135deg,#4f46e5,#7c3aed);
  color:#fff;
  box-shadow:0 16px 32px rgba(79,70,229,.28);
}

.crm-modern .menu-link.active i{
  background:rgba(255,255,255,.18);
  color:#fff;
}

.crm-modern .topbar{
  margin:18px 22px 0;
  border:1px solid rgba(226,232,240,.85);
  border-radius:24px;
  background:rgba(255,255,255,.86);
  backdrop-filter:blur(14px);
  box-shadow:0 18px 48px rgba(15,23,42,.06);
}

.crm-modern .topbar h1,
.crm-modern #pageTitle{
  font-weight:950;
  color:#0f172a;
}

.crm-modern #pageSubtitle{
  color:#64748b;
  font-weight:600;
}

.crm-modern .content{
  padding:24px 22px 36px;
}

/* Cabeçalho padrão das páginas */
.crm-modern .section-toolbar{
  background:linear-gradient(135deg,#111827,#4f46e5);
  color:#fff;
  border-radius:28px;
  padding:24px;
  margin-bottom:22px;
  border:0;
  box-shadow:0 24px 70px rgba(79,70,229,.18);
  align-items:center;
}

.crm-modern .section-toolbar h3{
  margin:0 0 4px;
  font-size:1.65rem;
  font-weight:950;
  letter-spacing:-.03em;
}

.crm-modern .section-toolbar p{
  color:rgba(255,255,255,.80);
  margin:0;
  font-weight:500;
}

.crm-modern .section-toolbar .btn,
.crm-modern .section-toolbar button{
  border-radius:14px;
  font-weight:900;
}

.crm-modern .section-toolbar .btn-primary,
.crm-modern .section-toolbar .btn-outline-primary{
  background:#fff;
  border-color:#fff;
  color:#312e81;
}

.crm-modern .section-toolbar .btn-outline-primary:hover,
.crm-modern .section-toolbar .btn-primary:hover{
  background:#eef2ff;
  border-color:#eef2ff;
  color:#312e81;
}

/* Cards e superfícies */
.crm-modern .card,
.crm-modern .painel,
.crm-modern .client-card,
.crm-modern .service-card,
.crm-modern .alert-card,
.crm-modern .metric-card,
.crm-modern .report-card{
  border:1px solid rgba(226,232,240,.92);
  border-radius:24px;
  box-shadow:0 18px 44px rgba(15,23,42,.055);
  background:#fff;
}

.crm-modern .card-header{
  background:#fff;
  border-bottom:1px solid #eef2f7;
  padding:20px 22px;
  border-radius:24px 24px 0 0!important;
}

.crm-modern .card-header h5{
  margin:0;
  font-weight:950;
  color:#0f172a;
}

.crm-modern .card-header span{
  color:#64748b;
  font-weight:600;
  font-size:.9rem;
}

/* Dashboard */
.crm-modern .metric-card{
  padding:18px;
  min-height:104px;
  display:flex;
  align-items:center;
  gap:14px;
  transition:.22s ease;
}

.crm-modern .metric-card:hover{
  transform:translateY(-2px);
  box-shadow:0 24px 60px rgba(15,23,42,.09);
}

.crm-modern .metric-icon{
  width:54px;
  height:54px;
  border-radius:18px;
  background:linear-gradient(135deg,#eef2ff,#f5f3ff);
  color:#4f46e5;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.45rem;
  flex:none;
}

.crm-modern .metric-card small{
  text-transform:uppercase;
  letter-spacing:.055em;
  color:#64748b;
  font-weight:900;
  font-size:.72rem;
}

.crm-modern .metric-card strong{
  display:block;
  font-size:1.55rem;
  color:#0f172a;
  font-weight:950;
}

/* Tabelas */
.crm-modern .table{
  margin:0;
}

.crm-modern .table thead th{
  background:#f8fafc;
  color:#475569;
  font-size:.74rem;
  text-transform:uppercase;
  letter-spacing:.055em;
  font-weight:950;
  border-bottom:1px solid #e2e8f0;
  padding:14px 16px;
}

.crm-modern .table tbody td{
  padding:14px 16px;
  border-color:#eef2f7;
  color:#334155;
}

.crm-modern .table tbody tr{
  transition:.18s ease;
}

.crm-modern .table tbody tr:hover{
  background:#f8fafc;
}

/* Botões */
.crm-modern .btn{
  border-radius:14px;
  font-weight:850;
  box-shadow:none!important;
}

.crm-modern .btn-primary{
  background:linear-gradient(135deg,#4f46e5,#7c3aed);
  border:0;
}

.crm-modern .btn-primary:hover{
  filter:brightness(.96);
  transform:translateY(-1px);
}

.crm-modern .btn-outline-primary{
  border-color:#c7d2fe;
  color:#4f46e5;
  background:#fff;
}

.crm-modern .btn-outline-primary:hover{
  background:#eef2ff;
  border-color:#a5b4fc;
  color:#312e81;
}

.crm-modern .action-btn{
  width:36px;
  height:36px;
  border-radius:13px;
  border:1px solid #e2e8f0;
  background:#fff;
  color:#475569;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  transition:.18s ease;
}

.crm-modern .action-btn:hover{
  background:#eef2ff;
  color:#4f46e5;
  border-color:#c7d2fe;
}

/* Formulários */
.crm-modern .form-control,
.crm-modern .form-select{
  border-radius:14px;
  border-color:#e2e8f0;
  min-height:44px;
}

.crm-modern textarea.form-control{
  min-height:auto;
}

.crm-modern .form-control:focus,
.crm-modern .form-select:focus{
  border-color:#a5b4fc;
  box-shadow:0 0 0 .22rem rgba(79,70,229,.12);
}

.crm-modern .form-label{
  font-weight:850;
  color:#334155;
  font-size:.88rem;
}

/* Clientes */
.crm-modern .client-card{
  padding:20px;
  height:100%;
  transition:.22s ease;
}

.crm-modern .client-card:hover{
  transform:translateY(-3px);
  box-shadow:0 28px 70px rgba(15,23,42,.09);
}

.crm-modern .client-card h5{
  font-weight:950;
  color:#0f172a;
}

.crm-modern .segment{
  color:#64748b;
  font-weight:650;
}

.crm-modern .client-meta{
  display:grid;
  gap:9px;
  margin-top:14px;
}

.crm-modern .client-meta div{
  display:flex;
  align-items:center;
  gap:8px;
  color:#475569;
  font-size:.92rem;
}

.crm-modern .client-meta i{
  width:28px;
  height:28px;
  border-radius:10px;
  background:#f1f5f9;
  color:#4f46e5;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

/* Badges */
.crm-modern .badge,
.crm-modern .badge-soft,
.crm-modern .status-badge{
  border-radius:999px;
  font-weight:900;
  letter-spacing:.01em;
}

.crm-modern .badge-soft{
  background:#eef2ff;
  color:#4338ca;
  padding:6px 10px;
  display:inline-flex;
  margin:2px;
}

/* Serviços */
.crm-modern .service-card{
  padding:20px;
  height:100%;
}

.crm-modern .service-card h5{
  font-weight:950;
  color:#0f172a;
}

.crm-modern .service-progress{
  height:10px;
  border-radius:999px;
  overflow:hidden;
  background:#e2e8f0;
}

.crm-modern .service-progress span{
  display:block;
  height:100%;
  border-radius:999px;
  background:linear-gradient(135deg,#4f46e5,#7c3aed);
}

/* Produção */
.crm-modern .production-tab{
  border-radius:20px;
  padding:18px;
  transition:.22s ease;
}

.crm-modern .production-tab:hover{
  transform:translateY(-2px);
}

.crm-modern .production-tab.active{
  box-shadow:0 18px 48px rgba(79,70,229,.22);
}

/* Alertas */
.crm-modern .dashboard-alert-line{
  padding:16px 18px;
}

.crm-modern .alert-action-link{
  box-shadow:0 12px 28px rgba(79,70,229,.20);
}

/* Modais */
.crm-modern .modal-content{
  border:0;
  border-radius:26px;
  overflow:hidden;
  box-shadow:0 40px 120px rgba(15,23,42,.25);
}

.crm-modern .modal-header{
  background:linear-gradient(135deg,#111827,#4f46e5);
  color:#fff;
  border-bottom:0;
  padding:20px 24px;
}

.crm-modern .modal-header .modal-title{
  font-weight:950;
}

.crm-modern .modal-header .btn-close{
  filter:invert(1);
  opacity:.85;
}

.crm-modern .modal-body{
  padding:24px;
}

.crm-modern .modal-footer{
  border-top:1px solid #eef2f7;
  padding:18px 24px;
  background:#f8fafc;
}

/* Página de login */
.crm-modern .login-card{
  border-radius:30px;
  box-shadow:0 30px 100px rgba(15,23,42,.18);
  border:1px solid rgba(226,232,240,.8);
}

.crm-modern .login-brand{
  background:linear-gradient(135deg,#111827,#4f46e5);
  border-radius:24px;
}

/* Empty states */
.crm-modern .empty-state{
  border-radius:22px;
  background:#fff;
  color:#64748b;
}

/* Responsivo */
@media(max-width:992px){
  .crm-modern .topbar{
    margin:12px;
    border-radius:20px;
  }
  .crm-modern .content{
    padding:16px 12px 30px;
  }
  .crm-modern .section-toolbar{
    border-radius:22px;
    padding:20px;
    align-items:flex-start;
    flex-direction:column;
  }
}

@media(max-width:560px){
  .crm-modern .metric-card{
    min-height:92px;
    padding:15px;
  }
  .crm-modern .metric-icon{
    width:46px;
    height:46px;
  }
  .crm-modern .section-toolbar h3{
    font-size:1.38rem;
  }
}


.dashboard-hero{
  background:linear-gradient(135deg,#111827,#4f46e5);
  color:#fff;
  border-radius:28px;
  padding:28px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:22px;
  box-shadow:0 24px 70px rgba(79,70,229,.18);
}
.dashboard-hero h3{
  font-size:2rem;
  font-weight:950;
  margin:0 0 6px;
}
.dashboard-hero p{
  margin:0;
  color:rgba(255,255,255,.82);
  max-width:760px;
}
.dashboard-hero-icon{
  min-width:78px;
  height:78px;
  border-radius:24px;
  background:rgba(255,255,255,.14);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:2.25rem;
}
@media(max-width:700px){
  .dashboard-hero{
    flex-direction:column;
    align-items:flex-start;
  }
}


/* ===============================
   V10.6 — FINANCEIRO ESTÁVEL SEM HOLERITE
   =============================== */
.finance-filter-bar{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:24px;
  padding:18px;
  box-shadow:0 18px 44px rgba(15,23,42,.055);
  margin-bottom:16px;
}
.finance-kpi{
  border-radius:24px;
  border:1px solid #e2e8f0;
  padding:20px;
  background:#fff;
  box-shadow:0 18px 44px rgba(15,23,42,.055);
  min-height:130px;
  position:relative;
  overflow:hidden;
}
.finance-kpi::after{
  content:"";
  position:absolute;
  right:-24px;
  top:-24px;
  width:88px;
  height:88px;
  border-radius:999px;
  opacity:.12;
  background:#4f46e5;
}
.finance-kpi small{
  display:block;
  text-transform:uppercase;
  letter-spacing:.06em;
  font-weight:950;
  color:#64748b;
  font-size:.72rem;
}
.finance-kpi strong{
  display:block;
  color:#0f172a;
  font-size:1.55rem;
  font-weight:950;
  margin:8px 0 4px;
}
.finance-kpi span{
  color:#64748b;
  font-weight:650;
  font-size:.9rem;
}
.finance-kpi.entrada::after{background:#16a34a}
.finance-kpi.saida::after{background:#dc2626}
.finance-kpi.pendente::after{background:#f59e0b}
.finance-kpi.saldo::after{background:#4f46e5}
.finance-tabs{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.finance-tab{
  border:1px solid #e2e8f0;
  background:#fff;
  color:#475569;
  padding:12px 16px;
  border-radius:999px;
  font-weight:900;
  display:inline-flex;
  align-items:center;
  gap:8px;
  transition:.2s ease;
}
.finance-tab:hover{
  background:#eef2ff;
  color:#4f46e5;
  border-color:#c7d2fe;
}
.finance-tab.active{
  background:linear-gradient(135deg,#4f46e5,#7c3aed);
  color:#fff;
  border-color:transparent;
  box-shadow:0 16px 36px rgba(79,70,229,.23);
}
.finance-panel{display:none;}
.finance-panel.active{display:block;}
@media(max-width:900px){
  .finance-filter-bar{grid-template-columns:1fr;}
}


/* ===============================
   MODO 11 — REVISÃO FINAL E ESTABILIDADE
   =============================== */
.settings-diagnostics-card .diagnostics-body{
  padding:18px 22px 22px;
}
.diagnostics-result{
  margin-top:16px;
  border:1px dashed #cbd5e1;
  background:#f8fafc;
  border-radius:18px;
  padding:16px;
  color:#475569;
}
.diagnostics-summary{
  display:flex;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  padding-bottom:12px;
  margin-bottom:12px;
  border-bottom:1px solid #e2e8f0;
}
.diagnostics-summary strong{
  color:#0f172a;
}
.diagnostics-summary span{
  color:#64748b;
}
.diagnostic-line{
  display:flex;
  gap:10px;
  align-items:flex-start;
  padding:10px 0;
  border-bottom:1px solid #eef2f7;
}
.diagnostic-line:last-child{
  border-bottom:0;
}
.diagnostic-line i{
  margin-top:2px;
}
.diagnostic-line.ok i{
  color:#16a34a;
}
.diagnostic-line.warn i{
  color:#f59e0b;
}
.diagnostic-line strong{
  display:block;
  color:#0f172a;
  font-weight:900;
}
.diagnostic-line span{
  display:block;
  color:#64748b;
  font-size:.9rem;
  margin-top:2px;
}


/* ===============================
   V12 — MENU DP / DEPARTAMENTO PESSOAL
   =============================== */
.dp-kpi{
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:24px;
  padding:18px;
  display:flex;
  align-items:center;
  gap:14px;
  min-height:112px;
  box-shadow:0 18px 44px rgba(15,23,42,.055);
}
.dp-kpi i{
  width:54px;
  height:54px;
  border-radius:18px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,#eef2ff,#f5f3ff);
  color:#4f46e5;
  font-size:1.45rem;
  flex:none;
}
.dp-kpi small{
  display:block;
  text-transform:uppercase;
  letter-spacing:.055em;
  color:#64748b;
  font-weight:950;
  font-size:.72rem;
}
.dp-kpi strong{
  display:block;
  color:#0f172a;
  font-size:1.55rem;
  font-weight:950;
  margin-top:4px;
}
.dp-tabs{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.dp-tab{
  border:1px solid #e2e8f0;
  background:#fff;
  color:#475569;
  padding:12px 16px;
  border-radius:999px;
  font-weight:900;
  display:inline-flex;
  align-items:center;
  gap:8px;
  transition:.2s ease;
}
.dp-tab:hover{
  background:#eef2ff;
  color:#4f46e5;
  border-color:#c7d2fe;
}
.dp-tab.active{
  background:linear-gradient(135deg,#4f46e5,#7c3aed);
  color:#fff;
  border-color:transparent;
  box-shadow:0 16px 36px rgba(79,70,229,.23);
}
.dp-panel{
  display:none;
}
.dp-panel.active{
  display:block;
}
.dp-placeholder{
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:24px;
  padding:34px;
  text-align:center;
  box-shadow:0 18px 44px rgba(15,23,42,.055);
}
.dp-placeholder i{
  width:72px;
  height:72px;
  border-radius:24px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#eef2ff;
  color:#4f46e5;
  font-size:2rem;
  margin-bottom:16px;
}
.dp-placeholder h5{
  font-weight:950;
  color:#0f172a;
  margin-bottom:8px;
}
.dp-placeholder p{
  color:#64748b;
  max-width:720px;
  margin:0 auto 10px;
}
.dp-placeholder span{
  display:inline-block;
  color:#4338ca;
  background:#eef2ff;
  border-radius:999px;
  padding:7px 12px;
  font-weight:850;
  font-size:.86rem;
}


/* ===============================
   V13 — DP FÉRIAS E AFASTAMENTOS
   =============================== */
.dp-filter-bar{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  padding:18px 22px;
  border-bottom:1px solid #eef2f7;
  background:#f8fafc;
}
@media(max-width:900px){
  .dp-filter-bar{
    grid-template-columns:1fr;
  }
}


/* ===============================
   V14 — FICHA COMPLETA DO FUNCIONÁRIO
   =============================== */
.employee-form-note{
  display:flex;
  gap:12px;
  align-items:flex-start;
  background:#eef2ff;
  border:1px solid #c7d2fe;
  color:#312e81;
  border-radius:18px;
  padding:14px;
  margin-bottom:16px;
}
.employee-form-note i{font-size:1.25rem;margin-top:2px;}
.employee-form-note strong{display:block;font-weight:950;}
.employee-form-note span{display:block;color:#475569;font-size:.9rem;margin-top:2px;}
.employee-form-section{
  border:1px solid #e2e8f0;
  border-radius:20px;
  padding:16px;
  margin-bottom:16px;
  background:#fff;
}
.employee-form-section h6{
  display:flex;
  align-items:center;
  gap:8px;
  color:#0f172a;
  font-weight:950;
  margin:0 0 14px;
}
.employee-form-section h6 i{color:#4f46e5;}
.payment-preferred{
  background:linear-gradient(135deg,#fff,#f8fafc);
  border-color:#c7d2fe;
}
.employee-completion{
  height:9px;
  background:#e2e8f0;
  border-radius:999px;
  overflow:hidden;
  margin-bottom:4px;
  min-width:90px;
}
.employee-completion span{
  display:block;
  height:100%;
  background:linear-gradient(135deg,#4f46e5,#7c3aed);
  border-radius:999px;
}


/* ===============================
   V15 — DP DOCUMENTOS DO COLABORADOR
   =============================== */
#employeeDocumentsTable .document-link{
  display:inline-flex;
  align-items:center;
  gap:4px;
  color:#4f46e5;
  font-weight:900;
  text-decoration:none;
}
#employeeDocumentsTable .document-link:hover{
  text-decoration:underline;
}


/* ===============================
   V16 — DP PENDÊNCIAS E ALERTAS
   =============================== */
.dp-alert-kpi{
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:24px;
  padding:18px;
  display:flex;
  align-items:center;
  gap:14px;
  min-height:112px;
  box-shadow:0 18px 44px rgba(15,23,42,.055);
}
.dp-alert-kpi i{
  width:54px;
  height:54px;
  border-radius:18px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#f1f5f9;
  color:#475569;
  font-size:1.45rem;
  flex:none;
}
.dp-alert-kpi small{
  display:block;
  text-transform:uppercase;
  letter-spacing:.055em;
  color:#64748b;
  font-weight:950;
  font-size:.72rem;
}
.dp-alert-kpi strong{
  display:block;
  color:#0f172a;
  font-size:1.55rem;
  font-weight:950;
  margin-top:4px;
}
.dp-alert-kpi.danger i{
  background:#fee2e2;
  color:#dc2626;
}
.dp-alert-kpi.warning i{
  background:#fef3c7;
  color:#d97706;
}
.dp-alert-kpi.info i{
  background:#dbeafe;
  color:#2563eb;
}


/* ===============================
   V17 — DP CHECKLISTS E PROCESSOS
   =============================== */
.dp-checklist-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  padding:18px;
}
.dp-checklist-card{
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:24px;
  padding:18px;
  box-shadow:0 18px 44px rgba(15,23,42,.055);
}
.dp-checklist-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
  margin-bottom:12px;
}
.dp-checklist-head small{
  display:block;
  color:#64748b;
  font-weight:850;
}
.dp-checklist-head h5{
  margin:3px 0 0;
  color:#0f172a;
  font-weight:950;
}
.dp-checklist-meta{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  color:#64748b;
  font-size:.88rem;
  font-weight:750;
  margin-bottom:12px;
}
.dp-checklist-meta span{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.dp-checklist-steps{
  display:grid;
  gap:6px;
}
.dp-checklist-actions{
  display:flex;
  gap:8px;
  justify-content:flex-end;
  margin-top:14px;
}
@media(max-width:1100px){
  .dp-checklist-grid{
    grid-template-columns:1fr;
  }
}


/* ===============================
   V18 — DP FICHA CADASTRAL
   =============================== */
.employee-profile{
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:24px;
  padding:20px;
}
.employee-profile-header{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-start;
  border-bottom:1px solid #e2e8f0;
  padding-bottom:16px;
  margin-bottom:18px;
}
.employee-profile-brand{
  display:flex;
  gap:12px;
  align-items:center;
}
.employee-profile-brand img{
  width:64px;
  max-height:64px;
  object-fit:contain;
}
.employee-profile-brand h4{
  margin:0;
  color:#0f172a;
  font-weight:950;
}
.employee-profile-brand p,
.employee-profile-title span,
.employee-profile-main p{
  margin:2px 0 0;
  color:#64748b;
}
.employee-profile-title{
  text-align:right;
}
.employee-profile-title strong{
  display:block;
  color:#0f172a;
  font-weight:950;
}
.employee-profile-main{
  display:flex;
  justify-content:space-between;
  gap:16px;
  background:linear-gradient(135deg,#eef2ff,#f8fafc);
  border:1px solid #c7d2fe;
  border-radius:20px;
  padding:18px;
  margin-bottom:16px;
}
.employee-profile-main h3{
  margin:0;
  color:#0f172a;
  font-weight:950;
}
.employee-profile-completion{
  border:1px solid #e2e8f0;
  border-radius:18px;
  padding:14px;
  margin-bottom:16px;
}
.employee-profile-completion strong{
  display:block;
  color:#0f172a;
  font-weight:950;
}
.employee-profile-completion span{
  color:#64748b;
  font-size:.9rem;
}
.employee-profile-section{
  border:1px solid #e2e8f0;
  border-radius:18px;
  padding:16px;
  margin-bottom:16px;
  background:#fff;
}
.employee-profile-section h6{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0 0 14px;
  color:#0f172a;
  font-weight:950;
}
.employee-profile-section h6 i{
  color:#4f46e5;
}
.employee-profile-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.employee-profile-grid div{
  background:#f8fafc;
  border:1px solid #eef2f7;
  border-radius:14px;
  padding:10px;
}
.employee-profile-grid span{
  display:block;
  color:#64748b;
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.05em;
  font-weight:900;
}
.employee-profile-grid strong{
  display:block;
  color:#0f172a;
  font-weight:850;
  margin-top:3px;
  word-break:break-word;
}
.employee-profile-summary{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
.employee-profile-summary div{
  background:#f8fafc;
  border:1px solid #eef2f7;
  border-radius:16px;
  padding:14px;
  text-align:center;
}
.employee-profile-summary strong{
  display:block;
  color:#4f46e5;
  font-size:1.5rem;
  font-weight:950;
}
.employee-profile-summary span{
  color:#64748b;
  font-weight:750;
  font-size:.85rem;
}
.employee-profile-signature{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  margin-top:46px;
}
.employee-profile-signature div{
  border-top:1px solid #94a3b8;
  text-align:center;
  padding-top:8px;
  color:#64748b;
  font-weight:750;
}
@media(max-width:900px){
  .employee-profile-header,
  .employee-profile-main{
    flex-direction:column;
  }
  .employee-profile-title{
    text-align:left;
  }
  .employee-profile-grid,
  .employee-profile-summary,
  .employee-profile-signature{
    grid-template-columns:1fr;
  }
}


/* ===============================
   V19 — DP FOLHA E HOLERITE
   =============================== */
.payroll-preview{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-top:4px;
}
.payroll-preview div{
  background:#f8fafc;
  border:1px solid #e2e8f0;
  border-radius:18px;
  padding:14px;
  text-align:center;
}
.payroll-preview small{
  display:block;
  text-transform:uppercase;
  letter-spacing:.055em;
  color:#64748b;
  font-weight:950;
  font-size:.72rem;
}
.payroll-preview strong{
  display:block;
  color:#0f172a;
  font-size:1.2rem;
  font-weight:950;
  margin-top:4px;
}
@media(max-width:800px){
  .payroll-preview{
    grid-template-columns:1fr;
  }
}


/* ===============================
   V19.2 — CÁLCULO INSS E IRRF
   =============================== */
.payroll-auto-tax{
  background:#f8fafc;
  border-color:#c7d2fe;
}


/* ===============================
   V19.3 — MODELO CONTRACHEQUE / INSS EMPRESA
   =============================== */
#payrollCompanyInss,
#payrollCompanyInssRate{
  background:#f8fafc;
  border-color:#c7d2fe;
}


/* ===============================
   V19.4 — FGTS 8% E DADOS DA EMPRESA
   =============================== */
#payrollFgtsBase,
#payrollFgts{
  background:#f8fafc;
  border-color:#c7d2fe;
}


/* ===============================
   V19.5 — IRRF 2026 REDUTOR
   =============================== */
#payrollIrrfReduction{
  background:#eef2ff;
  border-color:#c7d2fe;
  font-weight:800;
}


/* ===============================
   V19.6 — VT AUTOMÁTICO 6%
   =============================== */
#employeeReceivesVt,
#payrollBenefitDiscount{
  background:#f8fafc;
  border-color:#c7d2fe;
}


/* ===============================
   V19.7 — CAMPO VT VISÍVEL
   =============================== */
.employee-benefit-field{
  background:#f8fafc;
  border:1px solid #c7d2fe;
  border-radius:16px;
  padding:12px;
}
.employee-benefit-field label{
  color:#1e1b4b;
}
#employeeReceivesVt{
  border-color:#818cf8;
}


/* ===============================
   V19.8 — HOLERITE E RECIBO POR REGIME
   =============================== */
.payroll-regime-info{
  display:flex;
  gap:12px;
  align-items:flex-start;
  background:#f8fafc;
  border:1px solid #e2e8f0;
  border-radius:18px;
  padding:14px;
  margin-bottom:16px;
}
.payroll-regime-info i{
  width:38px;
  height:38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:14px;
  background:#e0e7ff;
  color:#3730a3;
  font-size:1.1rem;
  flex-shrink:0;
}
.payroll-regime-info strong{
  display:block;
  color:#0f172a;
  font-weight:950;
}
.payroll-regime-info span{
  display:block;
  color:#64748b;
  font-size:.9rem;
  margin-top:2px;
}
.payroll-regime-info.clt{
  border-color:#c7d2fe;
  background:#eef2ff;
}
.payroll-regime-info.recibo{
  border-color:#bbf7d0;
  background:#f0fdf4;
}
.payroll-regime-info.recibo i{
  background:#dcfce7;
  color:#166534;
}


/* ===============================
   V19.9 — FOLHA CLT E RECIBOS
   =============================== */
.payroll-type-guide{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.payroll-type-guide div{
  display:flex;
  align-items:flex-start;
  gap:10px;
  border:1px solid #e2e8f0;
  border-radius:16px;
  background:#f8fafc;
  padding:12px;
}
.payroll-type-guide i{
  width:34px;
  height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:12px;
  background:#e0e7ff;
  color:#3730a3;
  flex-shrink:0;
}
.payroll-type-guide strong{
  display:block;
  color:#0f172a;
  font-weight:950;
}
.payroll-type-guide span{
  display:block;
  color:#64748b;
  font-size:.86rem;
}
@media(max-width:800px){
  .payroll-type-guide{
    grid-template-columns:1fr;
  }
}


/* ===============================
   V19.10 — FOLHA INTEGRADA AO FINANCEIRO
   =============================== */
.payroll-finance-alert{
  display:flex;
  gap:12px;
  align-items:flex-start;
  border:1px solid #bbf7d0;
  background:#f0fdf4;
  border-radius:16px;
  padding:13px;
}
.payroll-finance-alert i{
  width:36px;
  height:36px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:12px;
  background:#dcfce7;
  color:#166534;
  flex-shrink:0;
}
.payroll-finance-alert strong{
  display:block;
  color:#14532d;
  font-weight:950;
}
.payroll-finance-alert span{
  display:block;
  color:#166534;
  font-size:.9rem;
}


/* ===============================
   V19.11 — DEMONSTRATIVO FINANCEIRO
   =============================== */
.finance-report-bar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  background:linear-gradient(135deg,#eef2ff,#f8fafc);
  border:1px solid #c7d2fe;
  border-radius:22px;
  padding:16px;
  margin-bottom:16px;
}
.finance-report-bar h5{
  margin:0;
  color:#0f172a;
  font-weight:950;
}
.finance-report-bar span{
  display:block;
  color:#64748b;
  font-weight:650;
  margin-top:2px;
}
@media(max-width:800px){
  .finance-report-bar{
    flex-direction:column;
    align-items:flex-start;
  }
}


/* ===============================
   V20 — AUDITORIA, BACKUP E SEGURANÇA
   =============================== */
.security-admin-card{
  border-color:#c7d2fe;
}
.security-action-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.security-action{
  border:1px solid #e2e8f0;
  background:#f8fafc;
  border-radius:18px;
  padding:14px;
  display:flex;
  gap:12px;
  align-items:flex-start;
  text-align:left;
  width:100%;
  transition:.2s ease;
}
.security-action:hover{
  transform:translateY(-1px);
  border-color:#818cf8;
  background:#eef2ff;
}
.security-action i{
  width:40px;
  height:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:14px;
  background:#e0e7ff;
  color:#3730a3;
  font-size:1.15rem;
  flex-shrink:0;
}
.security-action strong{
  display:block;
  color:#0f172a;
  font-weight:950;
}
.security-action span{
  display:block;
  color:#64748b;
  font-size:.88rem;
  line-height:1.35;
  margin-top:2px;
}
.system-health-result{
  border:1px dashed #cbd5e1;
  background:#f8fafc;
  border-radius:18px;
  padding:14px;
}
.health-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.health-mini-card{
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:16px;
  padding:12px;
}
.health-mini-card small{
  display:block;
  color:#64748b;
  font-weight:800;
}
.health-mini-card strong{
  display:block;
  color:#0f172a;
  font-size:1.35rem;
  font-weight:950;
  margin-top:3px;
}
@media(max-width:900px){
  .security-action-grid,
  .health-grid{
    grid-template-columns:1fr;
  }
}


/* ===============================
   V20.1 — LOGIN REDESENHADO
   =============================== */
.login-screen{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:28px;
  background:
    radial-gradient(circle at left top, rgba(91,33,182,.26), transparent 32%),
    radial-gradient(circle at right bottom, rgba(37,99,235,.20), transparent 28%),
    linear-gradient(135deg,#f8fafc 0%,#eef2ff 52%,#f5f3ff 100%);
}
.login-layout{
  width:min(1180px,100%);
  display:grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(380px, 460px);
  gap:26px;
  align-items:stretch;
}
.login-showcase{
  position:relative;
  overflow:hidden;
  border-radius:34px;
  padding:36px;
  background:
    linear-gradient(145deg, rgba(17,24,39,.96), rgba(59,7,100,.95)),
    linear-gradient(145deg, #111827, #3b0764);
  color:#fff;
  min-height:640px;
  box-shadow:0 28px 60px rgba(15,23,42,.16);
}
.login-showcase::before{
  content:"";
  position:absolute;
  width:280px;
  height:280px;
  border-radius:999px;
  right:-80px;
  top:-80px;
  background:rgba(255,255,255,.08);
}
.login-showcase::after{
  content:"";
  position:absolute;
  width:220px;
  height:220px;
  border-radius:999px;
  left:-70px;
  bottom:-80px;
  background:rgba(255,255,255,.06);
}
.login-showcase > *{position:relative;z-index:1}
.login-showcase-badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.08);
  color:#ede9fe;
  padding:10px 16px;
  border-radius:999px;
  font-weight:800;
  font-size:.86rem;
}
.login-showcase-logo{
  width:160px;
  max-width:100%;
  margin-top:28px;
  background:#fff;
  border-radius:24px;
  padding:14px 18px;
  object-fit:contain;
}
.login-showcase h1{
  margin:26px 0 14px;
  font-size:2.35rem;
  line-height:1.08;
  font-weight:900;
  letter-spacing:-.03em;
}
.login-showcase p{
  margin:0;
  max-width:560px;
  color:#ddd6fe;
  font-size:1.03rem;
  line-height:1.6;
}
.login-feature-list{
  display:grid;
  gap:14px;
  margin-top:32px;
}
.login-feature-item{
  display:flex;
  gap:14px;
  align-items:flex-start;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.06);
  border-radius:22px;
  padding:16px 18px;
  backdrop-filter:blur(6px);
}
.login-feature-item i{
  width:44px;
  height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:15px;
  background:rgba(255,255,255,.12);
  color:#fff;
  font-size:1.15rem;
  flex-shrink:0;
}
.login-feature-item strong{
  display:block;
  font-size:1rem;
  font-weight:900;
  color:#fff;
}
.login-feature-item span{
  display:block;
  color:#ddd6fe;
  margin-top:3px;
  line-height:1.45;
  font-size:.92rem;
}
.login-showcase-footer{
  margin-top:30px;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.login-showcase-footer span{
  color:#fff;
  font-weight:800;
}
.login-showcase-footer small{
  color:#c4b5fd;
  font-size:.9rem;
}

.login-card{
  width:100%;
  background:rgba(255,255,255,.95);
  border:1px solid rgba(255,255,255,.85);
  border-radius:34px;
  padding:34px;
  box-shadow:0 28px 60px rgba(15,23,42,.12);
  backdrop-filter:blur(14px);
}
.login-card-head h1{
  margin:6px 0 6px;
  font-size:1.95rem;
  line-height:1.1;
  font-weight:900;
  color:#111827;
}
.login-card-head p{
  margin:0;
  color:#64748b;
}
.login-kicker{
  display:inline-flex;
  align-items:center;
  padding:8px 12px;
  background:#ede9fe;
  color:#5b21b6;
  border-radius:999px;
  font-size:.82rem;
  font-weight:900;
}
.login-helper-box{
  display:flex;
  gap:12px;
  align-items:flex-start;
  margin:22px 0 20px;
  padding:15px;
  border:1px solid #dbeafe;
  background:#eff6ff;
  border-radius:20px;
}
.login-helper-box i{
  width:40px;
  height:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:14px;
  background:#dbeafe;
  color:#2563eb;
  font-size:1.1rem;
  flex-shrink:0;
}
.login-helper-box strong{
  display:block;
  color:#0f172a;
  font-weight:900;
}
.login-helper-box span{
  display:block;
  color:#475569;
  margin-top:2px;
  font-size:.93rem;
  line-height:1.45;
}
.login-card .form-label{
  font-weight:800;
  color:#334155;
}
.login-card .form-control{
  border-radius:16px;
  border:1px solid #dbe3ef;
  background:#fff;
  box-shadow:none;
}
.login-card .form-control:focus{
  border-color:#8b5cf6;
  box-shadow:0 0 0 .2rem rgba(139,92,246,.15);
}
.login-main-btn,
.login-secondary-btn{
  border-radius:16px;
  font-weight:800;
}
.login-divider{
  position:relative;
  text-align:center;
  margin:22px 0 18px;
}
.login-divider::before{
  content:"";
  position:absolute;
  top:50%;
  left:0;
  right:0;
  height:1px;
  background:#e5e7eb;
}
.login-divider span{
  position:relative;
  z-index:1;
  display:inline-block;
  background:rgba(255,255,255,.96);
  color:#94a3b8;
  font-size:.85rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
  padding:0 12px;
}
.register-panel{
  border:1px solid #e5e7eb;
  background:#f8fafc;
  border-radius:22px;
  padding:18px;
}
.register-panel-head{
  margin-bottom:12px;
}
.register-panel-head strong{
  display:block;
  color:#0f172a;
  font-weight:900;
}
.register-panel-head span{
  display:block;
  color:#64748b;
  font-size:.9rem;
  margin-top:2px;
}

@media (max-width: 991px){
  .login-layout{
    grid-template-columns:1fr;
  }
  .login-showcase{
    min-height:auto;
    padding:28px;
  }
  .login-showcase h1{
    font-size:1.9rem;
  }
}

@media (max-width: 576px){
  .login-screen{
    padding:18px;
  }
  .login-card,
  .login-showcase{
    border-radius:26px;
    padding:22px;
  }
  .login-card-head h1{
    font-size:1.6rem;
  }
  .login-showcase h1{
    font-size:1.65rem;
  }
}


/* ===============================
   V20.2 — BANCO LIMPO PARA PRODUÇÃO
   =============================== */
.security-action.danger-action{
  border-color:#fecaca;
  background:#fff7ed;
}
.security-action.danger-action:hover{
  border-color:#f97316;
  background:#ffedd5;
}
.security-action.danger-action i{
  background:#fee2e2;
  color:#b91c1c;
}
.production-ready-card{
  border-color:#bbf7d0;
}
.production-ready-box{
  border:1px solid #bbf7d0;
  background:#f0fdf4;
  border-radius:18px;
  padding:15px;
}
.production-ready-box strong{
  display:block;
  color:#14532d;
  font-weight:950;
}
.production-ready-box p{
  color:#166534;
  margin:5px 0 0;
  line-height:1.45;
}


/* ===============================
   V20.3 — ECOSSISTEMA E CAIXA
   =============================== */
.ecosystem-badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  border-radius:999px;
  background:#eef2ff;
  color:#3730a3;
  border:1px solid #c7d2fe;
  padding:4px 10px;
  font-size:.75rem;
  font-weight:900;
  white-space:nowrap;
}
.ecosystem-badge::before{
  content:"";
  width:7px;
  height:7px;
  border-radius:999px;
  background:#7c3aed;
  display:inline-block;
}
.ecosystem-balance-card .card-header{
  background:linear-gradient(135deg,#f8fafc,#eef2ff);
}
