/* base */


/* ====================================================
ACABAMENTO PROFISSIONAL / ACESSIBILIDADE / SEGURANÇA VISUAL
==================================================== */
:focus-visible {
  outline: 3px solid #93c5fd;
  outline-offset: 2px;
}
button, input, select, textarea {
  font-size: 15px;
}
button {
  transition: transform .12s ease, filter .12s ease, box-shadow .12s ease;
}
button:hover:not(:disabled) {
  filter: brightness(.96);
  transform: translateY(-1px);
}
button:active:not(:disabled) {
  transform: translateY(0);
}
.professional-lock-note {
  background: #f8fafc;
  border: 1px solid #dbeafe;
  border-left: 6px solid #2563eb;
  border-radius: 16px;
  padding: 12px;
  color: #334155;
  font-size: 13px;
  line-height: 1.45;
}
@media print {
  .tabs, .tabs-toggle-btn, .logout-area, button { display: none !important; }
  body { background: #fff !important; }
  .card, .executive-card, .quality-visit-card { box-shadow: none !important; border: 1px solid #e5e7eb !important; }
}

body {
  font-family: Arial, sans-serif;
  margin: 0;
  background: #f2f4f7;
  color: #1f2937;
}

header {
  background: #0f172a;
  color: white;
  padding: 16px;
}

main {
  padding: 16px;
  max-width: 1200px;
  margin: auto;
}

.card {
  background: white;
  border-radius: 14px;
  padding: 16px;
  margin-bottom: 14px;
  box-shadow: 0 2px 8px #00000014;
}

input,
select,
textarea,
button {
  width: 100%;
  padding: 12px;
  margin: 6px 0;
  border-radius: 10px;
  border: 1px solid #cbd5e1;
  box-sizing: border-box;
}

textarea {
  min-height: 100px;
}

button {
  background: #2563eb;
  color: white;
  border: 0;
  font-weight: bold;
  cursor: pointer;
}

button.sec {
  background: #64748b;
}

button.danger {
  background: #dc2626;
}

button.ok {
  background: #16a34a;
}

button:disabled {
  opacity: .6;
  cursor: not-allowed;
}

.grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 12px;
}

.badge {
  padding: 6px 10px;
  border-radius: 20px;
  display: inline-block;
  font-size: 13px;
}

.green {
  background: #dcfce7;
  color: #166534;
}

.yellow {
  background: #fef9c3;
  color: #854d0e;
}

.red {
  background: #fee2e2;
  color: #991b1b;
}

.tabs button {
  width: auto;
  margin-right: 5px;
  margin-bottom: 8px;
}

img {
  max-width: 180px;
  border-radius: 10px;
  margin: 6px;
  border: 1px solid #ddd;
}

.small {
  font-size: 13px;
  color: #475569;
}

.alert {
  background: #fff7ed;
  border: 1px solid #fdba74;
  padding: 12px;
  border-radius: 10px;
  margin-bottom: 12px;
}

.offline-status {
  padding: 12px;
  border-radius: 10px;
  margin-bottom: 12px;
  font-weight: bold;
}

.offline-status.online {
  background: #dcfce7;
  color: #166534;
  border: 1px solid #86efac;
}

.offline-status.offline {
  background: #fee2e2;
  color: #991b1b;
  border: 1px solid #fca5a5;
}


.app-header {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  position: relative;
}

.app-header-cta {
  margin-left: auto;
  padding: 8px 16px;
  border: 1px solid var(--cor-destaque, #6c4ce6);
  border-radius: 999px;
  color: var(--cor-destaque, #6c4ce6);
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color 0.15s ease, color 0.15s ease;
}
.app-header-cta:hover {
  background: var(--cor-destaque, #6c4ce6);
  color: #fff;
}
@media (max-width: 600px) {
  .app-header-cta {
    padding: 6px 12px;
    font-size: 12px;
  }
}

.app-title {
  flex: 1;
  min-width: 220px;
}

.app-title h2 {
  margin: 0;
  line-height: 1.15;
}

.app-title #userInfo {
  margin-top: 4px;
  color: #cbd5e1;
  font-size: 14px;
}

.logout-area {
  margin-left: auto;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}

.header-logout-btn {
  width: auto !important;
  min-width: 130px;
  padding: 10px 18px;
  border-radius: 12px;
  background: #64748b;
}

.header-logout-btn:hover {
  background: #475569;
}

/* Balão de notificações (sino no cabeçalho) - pedido do usuário (28/09/2026) */
.header-bell-btn {
  position: relative;
  width: 42px !important;
  height: 42px;
  min-width: 0 !important;
  padding: 0 !important;
  border-radius: 12px;
  background: #64748b;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
}

.header-bell-btn:hover {
  background: #475569;
}

.notification-balloon-badge {
  position: absolute;
  top: -4px;
  right: -4px;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  border-radius: 999px;
  background: #dc2626;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  line-height: 18px;
  text-align: center;
}

.notification-balloon {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  z-index: 60;
  width: min(360px, 92vw);
  max-height: 70vh;
  overflow-y: auto;
  background: #fff;
  color: #0f172a;
  border-radius: 16px;
  box-shadow: 0 18px 40px rgba(15, 23, 42, .25);
  padding: 14px;
}

.notification-balloon.hidden {
  display: none;
}

.notification-balloon-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}

.notification-balloon-limpar {
  margin-left: auto;
  margin-right: 8px;
  padding: 6px 12px;
  font-size: 13px;
}

.notification-balloon-close {
  background: transparent;
  border: none;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  color: #64748b;
  width: auto !important;
  padding: 0 4px !important;
}

.notification-balloon-body {
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-height: 50vh;
  overflow-y: auto;
}

.notification-balloon-footer {
  margin-top: 10px;
  width: 100%;
}

/* Popup automático da central de avisos (13/10/2026) - aparece sozinho, sem
clicar no sino. Ver avisarNovasNotificacoesPopup/mostrarPopupAviso em
aba-notificacoes.js. */
.aviso-popup-container {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-width: min(360px, 92vw);
}

.aviso-popup-card {
  /* Achado de revisão (16/10/2026): cores fixas em vez das variáveis do tema (evolutiva-theme.css)
  usadas no resto do app - se a paleta mudar de novo (já mudou uma vez), este popup não
  acompanhava sozinho. */
  background: var(--evo-surface);
  color: var(--evo-ink);
  border-radius: var(--evo-radius);
  box-shadow: 0 18px 40px rgba(15, 23, 42, .25);
  padding: 12px 14px;
  border-left: 4px solid var(--evo-info, #2563eb);
  animation: avisoPopupEntrada .25s ease-out;
}

.aviso-popup-card.clicavel {
  cursor: pointer;
}

.aviso-popup-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 4px;
}

.aviso-popup-close {
  background: transparent;
  border: none;
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  color: var(--evo-muted);
  width: auto !important;
  padding: 0 2px !important;
}

.aviso-popup-mensagem {
  font-size: 13px;
  white-space: pre-wrap;
}

@keyframes avisoPopupEntrada {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 480px) {
  .aviso-popup-container {
    left: 12px;
    right: 12px;
    bottom: 12px;
    max-width: none;
  }
}

/* Aviso de falha de sincronização (13/10/2026, auditoria de código) - ver
avisarFalhaSincronizacao em utilitarios-evolutiva.js. Topo da tela, discreto
(amarelo, não vermelho) - avisa sem parecer um erro grave. */
.aviso-sincronizacao-container {
  position: fixed;
  top: 12px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 9998;
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-width: min(420px, 92vw);
  align-items: center;
}

.aviso-sincronizacao-toast {
  background: #fffbeb;
  color: #92400e;
  border: 1px solid #fde68a;
  border-radius: 10px;
  padding: 8px 14px;
  font-size: 13px;
  box-shadow: 0 10px 25px rgba(15, 23, 42, .15);
  animation: avisoPopupEntrada .25s ease-out;
}

.login-shell {
  min-height: calc(100vh - 32px);
  display: grid;
  place-items: center;
  padding: 32px 16px;
}

.login-card {
  width: 100%;
  max-width: 920px;
  margin: 0 auto;
  padding: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  background: #ffffff;
  color: #0f172a;
  border: 1px solid #dbe4ee;
  border-radius: 18px;
  box-shadow: 0 18px 48px #0f172a1f;
  overflow: hidden;
}

.login-brand {
  padding: 44px 40px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: #0f172a;
  color: #ffffff;
}

.login-brand-kicker {
  margin: 0 0 10px;
  font-size: 13px;
  font-weight: 700;
  color: #ffffff;
  opacity: .78;
}

.login-brand-title {
  margin: 0 0 12px;
  font-size: 27px;
  line-height: 1.22;
  font-weight: 800;
  color: #ffffff;
}

.login-brand-text {
  margin: 0 0 26px;
  font-size: 14px;
  line-height: 1.55;
  color: #ffffff;
  opacity: .82;
  max-width: 38ch;
}

.login-brand-features {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 10px;
}

.login-brand-features li {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  font-weight: 600;
  color: #ffffff;
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(255, 255, 255, .14);
}

.login-brand-features svg {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  opacity: .92;
}

.login-brand-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 22px;
  font-size: 13px;
  font-weight: 700;
  color: #ffffff;
  text-decoration: none;
  opacity: .88;
  border-bottom: 1px solid rgba(255, 255, 255, .4);
  padding-bottom: 2px;
  width: fit-content;
}

.login-brand-cta:hover {
  opacity: 1;
  border-bottom-color: #ffffff;
}

.login-form-pane {
  padding: 44px 40px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.login-head {
  text-align: left;
  margin-bottom: 22px;
}

.login-card h2 {
  margin: 0;
  color: #0f172a;
  font-size: 24px;
  line-height: 1.2;
}

.login-card p {
  margin: 8px 0 0;
}

.login-card .small {
  color: #64748b;
}

.login-form {
  display: grid;
  gap: 14px;
}

.login-field label {
  display: block;
  margin-bottom: 6px;
  color: #334155;
  font-size: 13px;
  font-weight: 800;
}

.login-field input {
  min-height: 48px;
  margin: 0;
  background: #ffffff;
  color: #111827;
  border-color: #cbd5e1;
  border-radius: 8px;
}

.login-field input:focus {
  outline: 0;
  border-color: #2563eb;
  box-shadow: 0 0 0 4px #2563eb1f;
}

.login-password-wrap {
  position: relative;
}

.login-password-wrap input {
  padding-right: 54px;
}

.login-password-toggle {
  position: absolute;
  top: 4px;
  right: 4px;
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  margin: 0;
  padding: 0;
  background: #eef2f7;
  color: #334155;
  border: 1px solid #dbe4ee;
  border-radius: 8px;
}

.login-password-toggle:hover:not(:disabled) {
  background: #e2e8f0;
}

.login-password-toggle svg {
  width: 20px;
  height: 20px;
}

.login-submit {
  min-height: 48px;
  margin: 4px 0 0;
  background: #0f766e;
  border-radius: 8px;
  box-shadow: 0 10px 22px #0f766e2e;
}

.login-feedback {
  margin: 0;
  padding: 12px;
  border-radius: 8px;
  border: 1px solid #fecaca;
  background: #fef2f2;
  color: #991b1b;
  font-size: 13px;
  line-height: 1.45;
}

.login-support {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid #e2e8f0;
  text-align: center;
}

.login-legacy {
  display: block;
  margin-top: 6px;
  color: #64748b;
  font-size: 12px;
}

@media (max-width: 820px) {
  .login-card {
    grid-template-columns: 1fr;
  }

  .login-brand {
    padding: 28px 24px;
  }

  .login-brand-features {
    display: none;
  }
}

.login-footer-links {
  margin-top: 18px;
  text-align: center;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.75);
}
.login-footer-links a {
  color: inherit;
  text-decoration: none;
  padding: 0 4px;
}
.login-footer-links a:hover {
  text-decoration: underline;
}
.login-footer-sep {
  opacity: 0.5;
  padding: 0 4px;
}

@media (max-width: 700px) {
  .login-shell {
    min-height: calc(100vh - 24px);
    padding: 18px 0;
  }

  .login-form-pane {
    padding: 22px 18px;
  }

  .login-brand {
    padding: 22px 18px;
  }

  .login-brand-title {
    font-size: 22px;
  }

  .login-card h2 {
    font-size: 21px;
  }

  .app-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .app-logo {
    height: auto;
    width: 280px;
    max-width: 92%;
  }

  .logout-area {
    width: 100%;
    margin-left: 0;
  }

  .header-logout-btn {
    width: 100% !important;
  }
}

.blue {
  background: #dbeafe;
  color: #1d4ed8;
}

.metric-card h1 {
  margin: 6px 0;
}

.progress-wrap {
  background: #e5e7eb;
  border-radius: 999px;
  height: 14px;
  overflow: hidden;
  margin: 8px 0 12px 0;
}

.progress-fill {
  height: 100%;
  border-radius: 999px;
}

.progress-fill.green {
  background: #16a34a;
}

.progress-fill.yellow {
  background: #ca8a04;
}

.progress-fill.blue {
  background: #2563eb;
}

.progress-fill.red {
  background: #dc2626;
}

.table-card-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 8px;
  padding: 10px 0;
  border-bottom: 1px solid #e5e7eb;
}

.table-card-row:last-child {
  border-bottom: 0;
}



/* ====================================================
DASHBOARD PREMIUM EVOLUTIVA
==================================================== */
.dashboard-premium {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.dashboard-hero {
  background: linear-gradient(135deg, #0f172a 0%, #1e3a8a 55%, #2563eb 100%);
  color: white;
  border-radius: 20px;
  padding: 22px;
  box-shadow: 0 16px 35px rgba(15, 23, 42, 0.18);
}

.dashboard-hero-top {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
  align-items: flex-start;
}

.dashboard-hero h2 {
  margin: 0;
  font-size: 28px;
}

.dashboard-hero .muted-light {
  color: #dbeafe;
  margin-top: 6px;
}

.hero-percent {
  text-align: right;
  min-width: 180px;
}

.hero-percent .number {
  font-size: 46px;
  font-weight: 800;
  line-height: 1;
}

.hero-percent .label {
  color: #dbeafe;
  font-size: 13px;
  margin-top: 4px;
}

.progress-premium {
  height: 16px;
  background: rgba(255,255,255,0.20);
  border-radius: 999px;
  overflow: hidden;
  margin-top: 18px;
  display: flex;
}

.progress-premium .done {
  background: #22c55e;
  height: 100%;
}

.progress-premium .doing {
  background: #60a5fa;
  height: 100%;
}

.progress-premium .pending {
  background: #facc15;
  height: 100%;
}

.legend-premium {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
  color: #eff6ff;
  font-size: 13px;
}

.legend-dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  margin-right: 6px;
}

.dot-green { background: #22c55e; }
.dot-blue { background: #60a5fa; }
.dot-yellow { background: #facc15; }
.dot-red { background: #ef4444; }

.kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 12px;
}

.kpi-card {
  background: white;
  border-radius: 18px;
  padding: 16px;
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.08);
  border: 1px solid #e5e7eb;
}

.kpi-card .kpi-label {
  color: #64748b;
  font-size: 13px;
  font-weight: bold;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.kpi-card .kpi-value {
  font-size: 32px;
  font-weight: 800;
  margin-top: 8px;
  color: #0f172a;
}

.kpi-card .kpi-sub {
  color: #64748b;
  font-size: 13px;
  margin-top: 6px;
}

.kpi-card.good { border-left: 6px solid #16a34a; }
.kpi-card.warn { border-left: 6px solid #ca8a04; }
.kpi-card.info { border-left: 6px solid #2563eb; }
.kpi-card.danger-kpi { border-left: 6px solid #dc2626; }
.kpi-card.neutral { border-left: 6px solid #64748b; }

/* Carregamento inicial: placeholder animado no lugar do texto "Carregando..." */
.skeleton-tela {
  max-width: 1100px;
  margin: 24px auto;
  padding: 0 16px;
}

.skeleton-bloco {
  height: 96px;
  border-radius: 16px;
  background: linear-gradient(90deg, #eef2f7 25%, #f8fafc 37%, #eef2f7 63%);
  background-size: 400% 100%;
  animation: skeleton-brilho 1.4s ease infinite;
}

.skeleton-hero { height: 150px; border-radius: 20px; }

.skeleton-grade {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 12px;
  margin-top: 16px;
}

.skeleton-alto { height: 240px; margin-top: 16px; }

@keyframes skeleton-brilho {
  from { background-position: 100% 50%; }
  to { background-position: 0 50%; }
}

/* Troca de aba: cross-fade do navegador (ver trocarAbaComTransicao) */
::view-transition-old(root),
::view-transition-new(root) {
  animation-duration: .12s;
  animation-timing-function: ease-out;
}

@media (prefers-reduced-motion: reduce) {
  .skeleton-bloco { animation: none; }
  ::view-transition-old(root),
  ::view-transition-new(root) { animation: none; }
}

/* Roteiro: gráfico de visitas por dia da semana, com legenda */
.roteiro-grafico {
  margin-top: 14px;
  padding: 12px 14px;
  border: 1px solid #e8edf5;
  border-radius: 16px;
  background: #fbfcff;
}

.roteiro-grafico svg { display: block; margin-top: 6px; }

.roteiro-grafico-legenda {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}

.roteiro-grafico-legenda i {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 3px;
  margin-right: 6px;
  vertical-align: middle;
}

/* Área do cliente: gráficos (área, ranking por loja, mini-gráfico nos indicadores) e variação do topo */
.cliente-graficos,
.admin-graficos {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}

.cliente-grafico-card { min-width: 0; }

.cliente-grafico-card svg { display: block; margin-top: 6px; }

.cliente-periodo {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}

.cliente-periodo button {
  width: auto;
  padding: 6px 12px;
  font-size: 13px;
}

.hero-variacao {
  display: inline-block;
  margin-top: 8px;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  background: rgba(255, 255, 255, 0.16);
  color: #ecfdf5;
}

.hero-variacao.caiu { color: #fee2e2; }

.kpi-spark {
  margin-top: 10px;
  height: 36px;
  color: #2563eb;
  opacity: .85;
}

.kpi-card.good .kpi-spark { color: #16a34a; }

.ranking-barras { display: flex; flex-direction: column; gap: 14px; }

.ranking-topo {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  font-size: 14px;
  margin-bottom: 6px;
}

.ranking-topo b { color: #0f172a; }

.ranking-trilho {
  height: 10px;
  border-radius: 999px;
  background: #e2e8f0;
  overflow: hidden;
}

.ranking-barra {
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, #2563eb, #60a5fa);
  transition: width .9s cubic-bezier(.22, .61, .36, 1);
}

@media (max-width: 760px) {
  .cliente-graficos,
  .admin-graficos { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .ranking-barra { transition: none; }
}

/* Área do cliente: entrada suave só na primeira vez, barra que cresce e cards que levam à tela certa */
@keyframes evo-cliente-subir {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: none; }
}

.dashboard-premium.entrada-inicial .dashboard-hero,
.dashboard-premium.entrada-inicial .kpi-card,
.dashboard-premium.entrada-inicial .card {
  animation: evo-cliente-subir .45s ease both;
}

.dashboard-premium.entrada-inicial .kpi-grid .kpi-card:nth-child(2) { animation-delay: 60ms; }
.dashboard-premium.entrada-inicial .kpi-grid .kpi-card:nth-child(3) { animation-delay: 120ms; }
.dashboard-premium.entrada-inicial .kpi-grid .kpi-card:nth-child(4) { animation-delay: 180ms; }
.dashboard-premium.entrada-inicial .card { animation-delay: 240ms; }

.progress-premium .done {
  transition: width .9s cubic-bezier(.22, .61, .36, 1);
}

.kpi-card-clicavel { cursor: pointer; }

.kpi-card-clicavel:focus-visible {
  outline: 3px solid #93c5fd;
  outline-offset: 3px;
}

.kpi-card-clicavel .kpi-sub::after {
  content: "Ver no roteiro →";
  display: block;
  margin-top: 8px;
  color: #2563eb;
  font-weight: 700;
}

@media (prefers-reduced-motion: reduce) {
  .dashboard-premium.entrada-inicial .dashboard-hero,
  .dashboard-premium.entrada-inicial .kpi-card,
  .dashboard-premium.entrada-inicial .card {
    animation: none;
  }

  .progress-premium .done {
    transition: none;
  }
}

.dashboard-section-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}

.dashboard-section-title h3 {
  margin: 0;
}

.premium-table {
  width: 100%;
  border-collapse: collapse;
  overflow: hidden;
}

.premium-table th,
.premium-table td {
  padding: 12px 10px;
  text-align: left;
  border-bottom: 1px solid #e5e7eb;
  vertical-align: top;
}

.premium-table th {
  color: #475569;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .05em;
  background: #f8fafc;
}

.premium-table tr:last-child td {
  border-bottom: 0;
}

.promotor-row-name {
  font-weight: 700;
  color: #0f172a;
}

.mini-progress {
  background: #e5e7eb;
  height: 9px;
  border-radius: 999px;
  overflow: hidden;
  min-width: 120px;
  margin-top: 6px;
}

.mini-progress > div {
  height: 100%;
  background: #16a34a;
  border-radius: 999px;
}

.two-columns-premium {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 14px;
}

.empty-state {
  background: #f8fafc;
  border: 1px dashed #cbd5e1;
  border-radius: 14px;
  padding: 16px;
  color: #64748b;
}

@media (max-width: 760px) {
  .dashboard-hero h2 {
    font-size: 22px;
  }

  .hero-percent {
    text-align: left;
  }

  .hero-percent .number {
    font-size: 38px;
  }

  .premium-table,
  .premium-table thead,
  .premium-table tbody,
  .premium-table th,
  .premium-table td,
  .premium-table tr {
    display: block;
  }

  .premium-table thead {
    display: none;
  }

  .premium-table tr {
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    margin-bottom: 10px;
    padding: 8px;
    background: #fff;
  }

  .premium-table td {
    border-bottom: 0;
    padding: 8px;
  }
}


/* ====================================================
ÁREA DO PROMOTOR PREMIUM MOBILE
==================================================== */
.promotor-premium {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.promotor-hero {
  background:
    radial-gradient(circle at top right, rgba(160, 168, 245, .35), transparent 45%),
    linear-gradient(135deg, var(--evo-brand-deep) 0%, var(--evo-brand-strong) 45%, var(--evo-brand) 100%);
  color: white;
  border-radius: 22px;
  padding: 20px;
  box-shadow: 0 16px 35px rgba(106, 111, 224, .28);
}

.promotor-hero-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  flex-wrap: wrap;
}

.promotor-hero h2 {
  margin: 0;
  font-size: 25px;
}

.promotor-hero p {
  margin: 6px 0 0 0;
  color: #dbeafe;
}

.promotor-connection {
  background: rgba(255,255,255,0.14);
  border: 1px solid rgba(255,255,255,0.22);
  border-radius: 999px;
  padding: 8px 12px;
  font-size: 13px;
  font-weight: bold;
  white-space: nowrap;
}

.promotor-connection.online { color: #bbf7d0; }
.promotor-connection.offline { color: #fecaca; }

.promotor-progress-wrap {
  margin-top: 16px;
}

.promotor-progress-info {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  font-size: 13px;
  color: #dbeafe;
  margin-bottom: 8px;
}

.promotor-progress {
  height: 14px;
  background: rgba(255,255,255,0.22);
  border-radius: 999px;
  overflow: hidden;
}

.promotor-progress > div {
  height: 100%;
  background: #22c55e;
  border-radius: 999px;
}

.promotor-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-top: 14px;
}

.promotor-kpi {
  background: rgba(255,255,255,0.10);
  border: 1px solid rgba(255,255,255,0.14);
  border-radius: 16px;
  padding: 12px;
}

.promotor-kpi strong {
  display: block;
  font-size: 24px;
  line-height: 1;
}

.promotor-kpi span {
  display: block;
  margin-top: 6px;
  color: #dbeafe;
  font-size: 12px;
}

.promotor-sync-card {
  border-left: 6px solid #facc15;
}

.promotor-valor-mes-card {
  border-left: 6px solid #16a34a;
}

.promotor-valor-mes-destaque {
  font-size: 30px;
  font-weight: 800;
  color: #15803d;
  margin-top: 4px;
}

.visita-lista-premium {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 14px;
}

.visita-card-premium {
  background: white;
  border: 1px solid #e5e7eb;
  border-radius: 20px;
  padding: 16px;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.visita-card-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
}

.visita-card-title h3 {
  margin: 0;
  color: #0f172a;
  font-size: 19px;
}

.visita-card-title p {
  margin: 5px 0 0 0;
  color: #64748b;
}

.status-pill {
  border-radius: 999px;
  padding: 7px 10px;
  font-size: 12px;
  font-weight: bold;
  white-space: nowrap;
}

.status-pill.pendente { background: #fef9c3; color: #854d0e; }
.status-pill.em_andamento { background: var(--evo-brand-soft); color: var(--evo-brand-strong); }
.status-pill.finalizada { background: #dcfce7; color: #166534; }
.status-pill.offline { background: #ffedd5; color: #9a3412; }

.visita-info-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.visita-info-box {
  background: #f8fafc;
  border-radius: 14px;
  padding: 10px;
}

.visita-info-box span {
  display: block;
  font-size: 11px;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: .04em;
  font-weight: bold;
}

.visita-info-box strong {
  display: block;
  margin-top: 4px;
  color: #0f172a;
  font-size: 14px;
}

.visita-primary-action {
  margin-top: auto;
}

.visita-primary-action button {
  min-height: 48px;
  border-radius: 14px;
  font-size: 15px;
}

.execucao-premium {
  max-width: 760px;
  margin: 0 auto;
}

.execucao-hero {
  background:
    radial-gradient(circle at top right, rgba(160, 168, 245, .35), transparent 45%),
    linear-gradient(135deg, var(--evo-brand-deep) 0%, var(--evo-brand-strong) 100%);
  color: white;
  border-radius: 22px;
  padding: 20px;
  margin-bottom: 14px;
  box-shadow: 0 16px 35px rgba(106, 111, 224, .28);
}

.execucao-hero h2 {
  margin: 0;
  font-size: 24px;
}

.execucao-hero p {
  margin: 6px 0 0 0;
  color: #dbeafe;
}

.execucao-step {
  background: white;
  border: 1px solid #e5e7eb;
  border-radius: 20px;
  padding: 16px;
  margin-bottom: 12px;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.07);
}

.execucao-step-title {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}

.step-number {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--evo-brand);
  color: white;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  flex: 0 0 auto;
}

.execucao-step-title h3 {
  margin: 0;
  color: #0f172a;
}

.execucao-help {
  color: #64748b;
  font-size: 13px;
  margin: 4px 0 10px 44px;
}

.camera-input {
  background: #f8fafc;
  border: 2px dashed #cbd5e1;
  border-radius: 16px;
  padding: 14px;
}

.camera-input input[type="file"] {
  background: white;
}

.preview-foto {
  display: none;
  max-width: 100%;
  width: 100%;
  max-height: 260px;
  object-fit: cover;
  border-radius: 16px;
  margin: 10px 0 0 0;
  border: 1px solid #e5e7eb;
}

.camera-obrigatoria-box {
  background: var(--evo-brand-soft);
  border: 1px solid #d5cdfb;
  color: var(--evo-brand-strong);
  border-radius: 14px;
  padding: 12px;
  margin-bottom: 10px;
  font-size: 13px;
  font-weight: bold;
}

.camera-live {
  display: none;
  margin-top: 12px;
  background: #0f172a;
  border-radius: 18px;
  padding: 12px;
  border: 1px solid #1e293b;
}

.camera-live video {
  width: 100%;
  max-height: 420px;
  object-fit: cover;
  border-radius: 14px;
  background: #020617;
  display: block;
}

.camera-live-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 10px;
}


/* ====================================================
CÂMERA INTERNA - ZOOM OPCIONAL SEGURO
Para desativar sem afetar o restante do app:
1) procure por EVOLUTIVA_CAMERA_ZOOM_ATIVO no script
2) troque true por false
3) faça deploy apenas do hosting
==================================================== */
.camera-zoom-panel {
  margin-top: 10px;
  background: rgba(15, 23, 42, 0.92);
  border: 1px solid rgba(148, 163, 184, 0.28);
  border-radius: 14px;
  padding: 10px;
  color: #e2e8f0;
}

.camera-zoom-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  margin-bottom: 8px;
}

.camera-zoom-top b {
  color: #bfdbfe;
  font-size: 16px;
}

.camera-zoom-row {
  display: grid;
  grid-template-columns: 56px 1fr 56px;
  gap: 8px;
  align-items: center;
}

.camera-zoom-row input[type="range"] {
  width: 100%;
  margin: 0;
  padding: 0;
  accent-color: var(--evo-brand);
}

.camera-zoom-btn {
  margin: 0 !important;
  padding: 10px 8px !important;
  font-size: 20px;
  line-height: 1;
  border-radius: 12px;
}

.camera-zoom-help {
  display: block;
  margin-top: 8px;
  color: #cbd5e1;
  font-size: 12px;
  line-height: 1.35;
}

.camera-live.video-zoom-digital video {
  transform-origin: center center;
}

.camera-capturada-info {
  display: none;
  margin-top: 8px;
  background: #dcfce7;
  color: #166534;
  border: 1px solid #86efac;
  border-radius: 12px;
  padding: 10px;
  font-size: 13px;
  font-weight: bold;
}

.antifraud-info-box {
  background: #f8fafc;
  border: 1px solid #cbd5e1;
  color: #0f172a;
  border-radius: 14px;
  padding: 12px;
  margin: 10px 0;
  font-size: 13px;
  line-height: 1.45;
}

.antifraud-info-box b {
  color: var(--evo-brand-strong);
}

.execucao-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  position: sticky;
  bottom: 0;
  background: rgba(242,244,247,0.94);
  backdrop-filter: blur(8px);
  padding: 10px 0 0 0;
}

.execucao-actions button {
  min-height: 52px;
  border-radius: 14px;
}

.enviando-premium {
  max-width: 520px;
  margin: 40px auto;
  text-align: center;
}

.loading-circle {
  width: 54px;
  height: 54px;
  border: 6px solid var(--evo-brand-soft);
  border-top-color: var(--evo-brand);
  border-radius: 50%;
  margin: 0 auto 14px auto;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

@media (max-width: 720px) {
  main {
    padding: 12px;
  }

  .promotor-hero h2,
  .execucao-hero h2 {
    font-size: 21px;
  }

  .promotor-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .visita-lista-premium {
    grid-template-columns: 1fr;
  }

  .visita-info-grid {
    grid-template-columns: 1fr;
  }

  .execucao-actions {
    grid-template-columns: 1fr;
  }
}



/* ====================================================
DASHBOARD EXECUTIVO CIRCULAR EVOLUTIVA
==================================================== */
main {
  max-width: 1440px;
}

.executive-dashboard {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.executive-hero {
  background:
    radial-gradient(circle at top right, rgba(37, 99, 235, .45), transparent 36%),
    linear-gradient(135deg, #020617 0%, #0f172a 45%, #1d4ed8 100%);
  color: white;
  border-radius: 26px;
  padding: 24px;
  box-shadow: 0 22px 48px rgba(15, 23, 42, .24);
  overflow: hidden;
  position: relative;
}

.executive-hero::after {
  content: "";
  position: absolute;
  right: -80px;
  top: -80px;
  width: 260px;
  height: 260px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .08);
}

.executive-hero-content {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 22px;
  align-items: center;
}

.executive-eyebrow {
  color: #93c5fd;
  font-size: 13px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: 8px;
}

.executive-hero h2 {
  margin: 0;
  font-size: 32px;
  letter-spacing: -.6px;
}

.executive-hero p {
  margin: 8px 0 0 0;
  color: #dbeafe;
}

.executive-hero-panel {
  min-width: 250px;
  background: rgba(255, 255, 255, .10);
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 22px;
  padding: 18px;
  backdrop-filter: blur(10px);
}

.executive-hero-panel .big {
  font-size: 48px;
  font-weight: 900;
  line-height: 1;
}

.executive-hero-panel .label {
  color: #dbeafe;
  font-size: 13px;
  margin-top: 6px;
}

.executive-hero-bar {
  display: flex;
  height: 14px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255,255,255,.18);
  margin-top: 14px;
}

.executive-hero-bar .done { background: #22c55e; }
.executive-hero-bar .doing { background: #60a5fa; }
.executive-hero-bar .pending { background: #facc15; }

.circle-kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(178px, 1fr));
  gap: 14px;
}

.circle-kpi-card {
  --donut-color: #1d4ed8;
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 24px;
  padding: 18px;
  box-shadow: 0 12px 28px rgba(15, 23, 42, .09);
  text-align: center;
  min-height: 245px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
}

.circle-kpi-card.good { --donut-color: #0f766e; }
.circle-kpi-card.info { --donut-color: #2563eb; }
.circle-kpi-card.warn { --donut-color: #ca8a04; }
.circle-kpi-card.danger { --donut-color: #dc2626; }
.circle-kpi-card.neutral { --donut-color: #0f172a; }

.circle-kpi-title {
  font-weight: 800;
  color: #0f172a;
  font-size: 14px;
  min-height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.donut-ring {
  width: 132px;
  height: 132px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: inset 0 0 0 1px rgba(15, 23, 42, .05);
}

.donut-core {
  width: 88px;
  height: 88px;
  border-radius: 50%;
  background: #ffffff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 12px rgba(15, 23, 42, .06);
}

.donut-core strong {
  display: block;
  color: #020617;
  font-size: 24px;
  line-height: 1;
}

.donut-core span {
  color: #334155;
  font-size: 13px;
  margin-top: 5px;
}

.circle-kpi-footer {
  font-size: 12px;
  color: #64748b;
  min-height: 28px;
}

.circle-kpi-footer.positive { color: #15803d; }
.circle-kpi-footer.negative { color: #b91c1c; }

.mini-metric-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(205px, 1fr));
  gap: 12px;
}

.mini-metric-card {
  background: white;
  border: 1px solid #e2e8f0;
  border-radius: 22px;
  padding: 16px;
  display: flex;
  align-items: center;
  gap: 14px;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .07);
}

.mini-metric-icon {
  width: 48px;
  height: 48px;
  border-radius: 16px;
  background: linear-gradient(135deg, #1d4ed8, #0f172a);
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  flex: 0 0 auto;
}

.mini-metric-value {
  color: #0f172a;
  font-size: 25px;
  font-weight: 900;
  line-height: 1;
}

.mini-metric-label {
  color: #475569;
  font-size: 13px;
  margin-top: 4px;
}

.executive-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 24px;
  padding: 18px;
  box-shadow: 0 12px 28px rgba(15, 23, 42, .08);
}

.executive-card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}

.executive-card-header h3 {
  margin: 0;
  color: #0f172a;
}

.executive-table {
  width: 100%;
  border-collapse: collapse;
}

.executive-table th,
.executive-table td {
  padding: 13px 10px;
  text-align: left;
  border-bottom: 1px solid #e5e7eb;
  vertical-align: middle;
}

.executive-table th {
  color: #475569;
  background: #f8fafc;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.executive-table tr:last-child td {
  border-bottom: 0;
}

.store-avatar {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--evo-brand), var(--evo-brand-deep));
  color: white;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  margin-right: 9px;
}

.executive-two-columns {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr);
  gap: 14px;
}

@media (max-width: 980px) {
  .executive-hero-content,
  .executive-two-columns {
    grid-template-columns: 1fr;
  }

  .executive-hero-panel {
    min-width: 0;
  }
}

@media (max-width: 760px) {
  .executive-hero h2 {
    font-size: 24px;
  }

  .executive-hero-panel .big {
    font-size: 38px;
  }

  .circle-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .circle-kpi-card {
    min-height: 215px;
    padding: 14px;
  }

  .donut-ring {
    width: 112px;
    height: 112px;
  }

  .donut-core {
    width: 74px;
    height: 74px;
  }

  .donut-core strong {
    font-size: 20px;
  }

  .executive-table,
  .executive-table thead,
  .executive-table tbody,
  .executive-table th,
  .executive-table td,
  .executive-table tr {
    display: block;
  }

  .executive-table thead {
    display: none;
  }

  .executive-table tr {
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    padding: 8px;
    margin-bottom: 10px;
  }

  .executive-table td {
    border-bottom: 0;
    padding: 8px;
  }
}



/* ====================================================
PAINEL DE PERMISSÕES POR PERFIL
==================================================== */
.permission-panel {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.permission-profile-card {
  background: white;
  border: 1px solid #e2e8f0;
  border-radius: 22px;
  padding: 18px;
  box-shadow: 0 12px 28px rgba(15, 23, 42, .08);
}

.permission-profile-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}

.permission-profile-header h3 {
  margin: 0;
  color: #0f172a;
}

.permission-section-title {
  color: #334155;
  font-weight: 900;
  margin: 16px 0 8px 0;
  text-transform: uppercase;
  font-size: 12px;
  letter-spacing: .06em;
}

.permission-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 8px;
}

/* Permissão granular por módulo × ação (16/10/2026) - uma linha por módulo do
   catálogo, com as ações específicas dele em vez de um checkbox único. */
.permission-matrix {
  display: grid;
  gap: 10px;
}
.permission-matrix-row {
  display: grid;
  grid-template-columns: minmax(180px, 260px) 1fr;
  gap: 10px;
  align-items: center;
  padding: 10px;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  background: #f8fafc;
}
.permission-matrix-label {
  font-weight: 800;
  font-size: 13px;
  color: #334155;
}
.permission-matrix-acoes {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.permission-matrix-acoes .permission-check {
  padding: 6px 10px;
}
@media (max-width: 640px) {
  .permission-matrix-row { grid-template-columns: 1fr; }
}

/* ===== Acessos por Usuario (permissoes individuais) ===== */
.permission-user-toolbar {
  margin: 12px 0 4px 0;
}

.permission-user-toolbar input {
  width: 100%;
}

.permission-user-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.permission-user-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  padding: 10px 12px;
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease;
}

.permission-user-row:hover,
.permission-user-row.aberto {
  border-color: #6366f1;
  background: #f8fafc;
}

.permission-user-row b {
  display: block;
}

.permission-user-row .small {
  color: #64748b;
  font-size: 12px;
}

.permission-user-row-tags {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.permission-user-editor h4 {
  margin: 16px 0 8px 0;
  color: #334155;
  text-transform: uppercase;
  font-size: 12px;
  letter-spacing: .06em;
}

.permission-user-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 14px;
}

.permission-check {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 10px;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  background: #f8fafc;
  color: #0f172a;
  font-size: 14px;
  font-weight: 700;
}

.permission-check input {
  width: auto;
  margin: 0;
  transform: scale(1.15);
}

.permission-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 14px;
}

.permission-actions button {
  width: auto;
  min-width: 160px;
}

.access-denied-card {
  max-width: 720px;
  margin: 30px auto;
  text-align: center;
}



/* ====================================================
PAINEL DE AUDITORIA DO SISTEMA
==================================================== */
.audit-dashboard {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.audit-filter-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 10px;
  align-items: end;
}

.audit-kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(185px, 1fr));
  gap: 12px;
}

.audit-kpi-card {
  background: white;
  border: 1px solid #e2e8f0;
  border-radius: 20px;
  padding: 16px;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .07);
}

.audit-kpi-label {
  color: #64748b;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.audit-kpi-value {
  color: #0f172a;
  font-size: 32px;
  font-weight: 900;
  margin-top: 6px;
}

.audit-timeline {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.audit-event {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: flex-start;
  border: 1px solid #e2e8f0;
  background: #ffffff;
  border-radius: 18px;
  padding: 14px;
}

.audit-icon {
  width: 42px;
  height: 42px;
  border-radius: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #dbeafe;
  color: #1d4ed8;
  font-size: 20px;
  font-weight: 900;
}

.audit-icon.create { background: #dcfce7; color: #166534; }
.audit-icon.update { background: #dbeafe; color: #1d4ed8; }
.audit-icon.delete { background: #fee2e2; color: #991b1b; }
.audit-icon.security { background: #fef9c3; color: #854d0e; }
.audit-icon.import { background: #ede9fe; color: #5b21b6; }

.audit-title {
  color: #0f172a;
  font-weight: 900;
  margin-bottom: 4px;
}

.audit-meta {
  color: #64748b;
  font-size: 13px;
  line-height: 1.45;
}

.audit-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.audit-actions button {
  width: auto;
  min-width: 110px;
  padding: 9px 12px;
}

.audit-json-box {
  white-space: pre-wrap;
  word-break: break-word;
  background: #0f172a;
  color: #e2e8f0;
  border-radius: 14px;
  padding: 14px;
  font-family: Consolas, Monaco, monospace;
  font-size: 12px;
  max-height: 520px;
  overflow: auto;
}

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

  .audit-actions button {
    width: 100%;
  }
}



/* ====================================================
CONTROLE DE USUÁRIOS ATIVOS / INATIVOS
==================================================== */
.users-control-dashboard {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.user-control-card {
  background: white;
  border: 1px solid #e2e8f0;
  border-radius: 22px;
  padding: 16px;
  box-shadow: 0 12px 28px rgba(15, 23, 42, .08);
}

.user-control-top {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  flex-wrap: wrap;
}

.user-control-name {
  color: #0f172a;
  font-weight: 900;
  font-size: 18px;
  margin-bottom: 4px;
}

.user-control-meta {
  color: #64748b;
  font-size: 13px;
  line-height: 1.45;
}

.user-control-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.user-control-actions button {
  width: auto;
  min-width: 150px;
  padding: 10px 14px;
}

.status-user-active {
  background: #dcfce7;
  color: #166534;
}

.status-user-inactive {
  background: #fee2e2;
  color: #991b1b;
}

.status-user-never {
  background: #fef9c3;
  color: #854d0e;
}

@media (max-width: 760px) {
  .user-control-actions button {
    width: 100%;
  }
}



/* ====================================================
GEOFENCE E REMANEJAMENTO DE ROTA
==================================================== */
.geofence-ok {
  background: #dcfce7;
  color: #166534;
  border: 1px solid #86efac;
  border-radius: 14px;
  padding: 10px;
  margin-top: 8px;
  font-size: 13px;
  font-weight: bold;
}

.geofence-alert {
  background: #fff7ed;
  color: #9a3412;
  border: 1px solid #fdba74;
  border-radius: 14px;
  padding: 10px;
  margin-top: 8px;
  font-size: 13px;
  font-weight: bold;
}

.remanejo-card {
  max-width: 760px;
  margin: 0 auto;
}

.remanejo-dados {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 10px;
}

.remanejo-dados div {
  background: #f8fafc;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  padding: 12px;
}

.remanejo-dados span {
  display: block;
  color: #64748b;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  margin-bottom: 4px;
}




/* ====================================================
GEOLOCALIZAÇÃO AUTOMÁTICA DAS LOJAS
==================================================== */
.geo-store-panel {
  border: 1px solid #dbeafe;
  background: #eff6ff;
  border-radius: 16px;
  padding: 12px;
  margin: 12px 0;
}
.geo-store-panel .geo-title {
  font-weight: 900;
  color: #1e3a8a;
  margin-bottom: 6px;
}
.geo-store-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 10px;
}
.geo-store-actions button {
  width: auto;
  min-width: 150px;
  padding: 10px 12px;
}
.geo-status-sem_geolocalizacao,
.geo-status-erro_geolocalizacao {
  background: #fee2e2;
  color: #991b1b;
}
.geo-status-buscando_geolocalizacao,
.geo-status-buscar_geolocalizacao,
.geo-status-aguardando_conferencia {
  background: #fef9c3;
  color: #854d0e;
}
.geo-status-geolocalizacao_aprovada {
  background: #dcfce7;
  color: #166534;
}


/* ====================================================
FINANCEIRO ADMINISTRADOR / CONTRATO DO CLIENTE
==================================================== */
.finance-hero-value {
  font-size: 34px;
  font-weight: 900;
  line-height: 1;
}
.finance-card-highlight {
  border-left: 6px solid #2563eb;
}
.finance-private-note {
  background: #f8fafc;
  border: 1px solid #cbd5e1;
  border-radius: 14px;
  padding: 12px;
  color: #334155;
  font-size: 13px;
}
.finance-table-input {
  min-width: 120px;
}
.account-card {
  max-width: 620px;
  margin: 24px auto;
}
@media (max-width: 700px) {
  .logout-area {
    width: 100%;
  }
  .logout-area .header-logout-btn {
    flex: 1 1 140px;
  }
}


/* ====================================================
FECHAMENTO MENSAL FINANCEIRO
==================================================== */
.monthly-close-panel {
  border: 1px solid #bfdbfe;
  background: linear-gradient(135deg, #eff6ff 0%, #ffffff 100%);
  border-radius: 22px;
  padding: 16px;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .06);
}
.monthly-close-status {
  display: inline-block;
  padding: 7px 12px;
  border-radius: 999px;
  font-weight: 900;
  font-size: 12px;
}
.monthly-close-status.open { background: #fef9c3; color: #854d0e; }
.monthly-close-status.saved { background: #dcfce7; color: #166534; }
.monthly-close-status.extra { background: #ffedd5; color: #9a3412; }
.monthly-close-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.monthly-close-actions button {
  width: auto;
  min-width: 170px;
}
.monthly-close-note {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  padding: 12px;
  color: #334155;
  font-size: 13px;
  line-height: 1.45;
}
.monthly-close-history-item {
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  padding: 12px;
  margin-bottom: 10px;
  background: #ffffff;
}



/* ====================================================
RELATÓRIOS PROFISSIONAIS DE FECHAMENTO
==================================================== */
.report-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}
.report-actions button {
  width: auto;
  min-width: 165px;
}
.report-badge-client {
  background: #dcfce7;
  color: #166534;
}
.report-badge-admin {
  background: #fee2e2;
  color: #991b1b;
}
.report-summary-box {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 18px;
  padding: 14px;
  margin: 10px 0;
}
.report-summary-box h4 {
  margin: 0 0 8px 0;
  color: #0f172a;
}
.report-note-professional {
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  color: #1e3a8a;
  border-radius: 14px;
  padding: 12px;
  font-size: 13px;
  line-height: 1.45;
}


/* ====================================================
COBRANÇA E PAGAMENTO DO CLIENTE
==================================================== */
/* .payment-status-pill agora só em evolutiva-theme.css (fonte única para a tela ao vivo). */
.payment-panel {
  border: 1px solid var(--evo-brand-soft);
  background: linear-gradient(135deg, var(--evo-brand-soft) 0%, #ffffff 100%);
  border-radius: 22px;
  padding: 16px;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .06);
}
.payment-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}
.payment-actions button,
.payment-actions input {
  width: auto;
  min-width: 150px;
}
.payment-proof-box {
  border: 1px dashed #93c5fd;
  background: #f8fafc;
  border-radius: 16px;
  padding: 12px;
  margin-top: 10px;
}
.payment-warning-box {
  background: #fff7ed;
  border: 1px solid #fdba74;
  color: #9a3412;
  border-radius: 14px;
  padding: 12px;
  font-size: 13px;
}
@media (max-width: 760px) {
  .payment-actions button,
  .payment-actions input {
    width: 100%;
  }
}


/* ====================================================
CENTRAL DE NOTIFICAÇÕES E AVISOS
==================================================== */
.notification-center {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.notification-form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
}
.notification-card {
  border: 1px solid #e2e8f0;
  border-radius: 18px;
  background: #ffffff;
  padding: 14px;
  margin-bottom: 10px;
  box-shadow: 0 8px 22px rgba(15, 23, 42, .06);
}
.notification-card.unread {
  border-left: 6px solid #2563eb;
}
.notification-card.required {
  background: linear-gradient(135deg, #fff7ed 0%, #ffffff 100%);
  border-color: #fdba74;
}
.notification-title-row {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: flex-start;
  flex-wrap: wrap;
}
.notification-title-row h3 {
  margin: 0;
  color: #0f172a;
}
.notification-message {
  white-space: pre-wrap;
  color: #334155;
  line-height: 1.45;
  margin-top: 8px;
}
.notification-meta {
  color: #64748b;
  font-size: 13px;
  margin-top: 8px;
}
.notification-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.notification-actions button {
  width: auto;
  min-width: 150px;
}
.notification-dot {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 22px;
  padding: 0 7px;
  border-radius: 999px;
  background: #dc2626;
  color: #ffffff;
  font-size: 12px;
  font-weight: 900;
}
.notification-summary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px;
}
.notification-summary-card {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  padding: 12px;
}
.notification-summary-card strong {
  display: block;
  font-size: 24px;
  color: #0f172a;
}
.notification-summary-card span {
  color: #64748b;
  font-size: 13px;
}



/* ====================================================
CENTRAL DE PENDÊNCIAS OPERACIONAIS
==================================================== */
.pending-center {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.pending-hero {
  background:
    radial-gradient(circle at top right, rgba(160, 168, 245, .35), transparent 45%),
    linear-gradient(135deg, var(--evo-brand-deep) 0%, var(--evo-brand-strong) 58%, var(--evo-brand) 100%);
  color: white;
  border-radius: 24px;
  padding: 20px;
  box-shadow: 0 16px 35px rgba(106, 111, 224, .28);
}
.pending-hero h2 {
  margin: 0;
}
.pending-hero p {
  color: #dbeafe;
  margin: 8px 0 0 0;
}
.pending-summary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(185px, 1fr));
  gap: 12px;
}
.pending-summary-card {
  background: white;
  border: 1px solid #e2e8f0;
  border-radius: 20px;
  padding: 16px;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .07);
}
.pending-summary-card strong {
  display: block;
  font-size: 30px;
  color: #0f172a;
}
.pending-summary-card span {
  display: block;
  color: #64748b;
  font-size: 13px;
  margin-top: 4px;
}
.pending-summary-card.critica { border-left: 6px solid #991b1b; }
.pending-summary-card.alta { border-left: 6px solid #dc2626; }
.pending-summary-card.media { border-left: 6px solid #ca8a04; }
.pending-summary-card.baixa { border-left: 6px solid #2563eb; }
.pending-filter-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 10px;
  align-items: end;
}
.pending-item {
  background: white;
  border: 1px solid #e2e8f0;
  border-radius: 20px;
  padding: 14px;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .07);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: flex-start;
}
.pending-item.critica { border-left: 6px solid #991b1b; }
.pending-item.alta { border-left: 6px solid #dc2626; }
.pending-item.media { border-left: 6px solid #ca8a04; }
.pending-item.baixa { border-left: 6px solid #2563eb; }
.pending-title {
  color: #0f172a;
  font-weight: 900;
  font-size: 17px;
  margin-bottom: 5px;
}
.pending-meta {
  color: #64748b;
  font-size: 13px;
  line-height: 1.45;
}
.pending-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}
.pending-actions button {
  width: auto;
  min-width: 130px;
  padding: 9px 12px;
}
.pending-section-title {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}
@media (max-width: 760px) {
  .pending-item {
    grid-template-columns: 1fr;
  }
  .pending-actions button {
    width: 100%;
  }
}


/* ====================================================
CONTROLE DE QUALIDADE / APROVAÇÃO DE VISITAS
==================================================== */
.quality-panel { display: flex; flex-direction: column; gap: 14px; }
.quality-kpi-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; }
.quality-card { background: #ffffff; border: 1px solid #e2e8f0; border-radius: 22px; padding: 16px; box-shadow: 0 10px 24px rgba(15, 23, 42, .07); }
.quality-card .value { color: #0f172a; font-size: 32px; font-weight: 900; margin-top: 6px; }
.quality-card .label { color: #64748b; font-size: 12px; font-weight: 900; text-transform: uppercase; letter-spacing: .05em; }
.quality-visit-card { background: white; border: 1px solid #e2e8f0; border-radius: 22px; padding: 16px; margin-bottom: 12px; box-shadow: 0 10px 24px rgba(15, 23, 42, .08); }
.quality-visit-top { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; align-items: flex-start; }
.quality-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; }
.quality-actions button { width: auto; min-width: 150px; padding: 10px 12px; }
.quality-status-pendente_qualidade, .quality-status-correcao_solicitada { background: #fef9c3; color: #854d0e; }
.quality-status-aprovada { background: #dcfce7; color: #166534; }
.quality-status-reprovada { background: #fee2e2; color: #991b1b; }
.quality-photo-row { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 10px; }
.quality-photo-row img { max-width: 160px; max-height: 130px; object-fit: cover; }
@media (max-width: 760px) { .quality-actions button { width: 100%; } }


/* ====================================================
MAPA OPERACIONAL E ROTEIRO INTELIGENTE
==================================================== */
.map-ops-hero {
  background:
    radial-gradient(circle at top right, rgba(160, 168, 245, .35), transparent 45%),
    linear-gradient(135deg, var(--evo-brand-deep) 0%, var(--evo-brand-strong) 48%, var(--evo-brand) 100%);
  color: white;
  border-radius: 26px;
  padding: 22px;
  box-shadow: 0 18px 42px rgba(106, 111, 224, .26);
  margin-bottom: 14px;
}
.map-ops-hero h2 { margin: 0; }
.map-ops-hero p { color: #dbeafe; margin: 6px 0 0 0; }
.map-ops-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 12px;
  margin-top: 14px;
}
.map-ops-kpi {
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 18px;
  padding: 14px;
}
.map-ops-kpi strong {
  display: block;
  font-size: 28px;
  line-height: 1;
}
.map-ops-kpi span {
  color: #dbeafe;
  font-size: 12px;
  display: block;
  margin-top: 6px;
}
.map-ops-filters {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 10px;
  align-items: end;
}
.map-ops-board {
  position: relative;
  min-height: 440px;
  border-radius: 26px;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(148, 163, 184, .13) 1px, transparent 1px),
    linear-gradient(rgba(148, 163, 184, .13) 1px, transparent 1px),
    radial-gradient(circle at 20% 20%, rgba(34, 197, 94, .20), transparent 24%),
    radial-gradient(circle at 80% 30%, rgba(37, 99, 235, .22), transparent 26%),
    linear-gradient(135deg, #f8fafc 0%, #e0f2fe 48%, #f1f5f9 100%);
  background-size: 34px 34px, 34px 34px, auto, auto, auto;
  border: 1px solid #cbd5e1;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.5), 0 14px 34px rgba(15, 23, 42, .08);
}
.map-ops-board::before {
  content: "Mapa operacional visual";
  position: absolute;
  left: 18px;
  top: 16px;
  background: rgba(15, 23, 42, .82);
  color: white;
  padding: 8px 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  z-index: 2;
}
.map-ops-point {
  position: absolute;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  border: 3px solid #fff;
  box-shadow: 0 8px 20px rgba(15, 23, 42, .26);
  transform: translate(-50%, -50%);
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-size: 11px;
  font-weight: 900;
  cursor: pointer;
}
.map-ops-point.done { background: #16a34a; }
.map-ops-point.doing { background: #2563eb; }
.map-ops-point.pending { background: #ca8a04; }
.map-ops-point.alert { background: #dc2626; }
.map-ops-point.no-geo { background: #64748b; }
.map-ops-tooltip {
  position: absolute;
  left: 50%;
  bottom: 34px;
  transform: translateX(-50%);
  min-width: 220px;
  max-width: 280px;
  background: #0f172a;
  color: #e2e8f0;
  border-radius: 14px;
  padding: 10px;
  font-size: 12px;
  line-height: 1.35;
  display: none;
  z-index: 8;
  box-shadow: 0 12px 28px rgba(15, 23, 42, .28);
}
.map-ops-point:hover .map-ops-tooltip { display: block; }
.map-ops-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 12px;
}
.map-ops-store-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 20px;
  padding: 14px;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .07);
}
.map-ops-store-top {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: flex-start;
}
.map-ops-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 10px;
}
.map-ops-actions button {
  width: auto;
  min-width: 145px;
  padding: 10px 12px;
}
.map-ops-route-card {
  border-left: 6px solid #2563eb;
}
.map-ops-badge {
  border-radius: 999px;
  padding: 6px 10px;
  font-size: 12px;
  font-weight: 900;
  display: inline-block;
}
.map-ops-badge.done { background: #dcfce7; color: #166534; }
.map-ops-badge.doing { background: #dbeafe; color: #1d4ed8; }
.map-ops-badge.pending { background: #fef9c3; color: #854d0e; }
.map-ops-badge.alert { background: #fee2e2; color: #991b1b; }
.map-ops-badge.no-geo { background: #e2e8f0; color: #334155; }
@media (max-width: 760px) {
  .map-ops-board { min-height: 340px; }
  .map-ops-actions button { width: 100%; }
}



/* ====================================================
PLANEJAMENTO INTELIGENTE DE ROTAS
==================================================== */
.route-plan-hero {
  background: radial-gradient(circle at top right, rgba(160, 168, 245, .35), transparent 45%), linear-gradient(135deg, var(--evo-brand-deep) 0%, var(--evo-brand-strong) 48%, var(--evo-brand) 100%);
  color: #fff;
  border-radius: 26px;
  padding: 22px;
  box-shadow: 0 18px 42px rgba(106, 111, 224, .26);
  margin-bottom: 14px;
}
.route-plan-hero h2 { margin: 0; font-size: 28px; }
.route-plan-hero p { color: #dbeafe; margin: 8px 0 0 0; }
.route-plan-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; margin-top: 16px; }
.route-plan-kpi { background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.20); border-radius: 18px; padding: 14px; }
.route-plan-kpi strong { display: block; font-size: 28px; line-height: 1; }
.route-plan-kpi span { display: block; color: #dbeafe; font-size: 12px; margin-top: 6px; font-weight: 700; }
.route-plan-filters { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 10px; align-items: end; }
.route-plan-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; }
.route-plan-actions button { width: auto; min-width: 165px; }
.route-plan-card { background: #fff; border: 1px solid #e2e8f0; border-radius: 20px; padding: 14px; margin-bottom: 10px; box-shadow: 0 10px 22px rgba(15,23,42,.07); }
.route-plan-top { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; align-items: flex-start; }
.route-plan-pill { display: inline-block; padding: 7px 10px; border-radius: 999px; font-size: 12px; font-weight: 900; }
.route-plan-pill.ok { background: #dcfce7; color: #166534; }
.route-plan-pill.warn { background: #fef9c3; color: #854d0e; }
.route-plan-pill.danger { background: #fee2e2; color: #991b1b; }
.route-plan-pill.info { background: #dbeafe; color: #1d4ed8; }
.route-plan-sequence { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 10px; border: 1px solid #e5e7eb; border-radius: 16px; margin-bottom: 8px; background: #f8fafc; }
.route-plan-order { width: 34px; height: 34px; border-radius: 50%; background: #2563eb; color: #fff; display: inline-flex; align-items: center; justify-content: center; font-weight: 900; }
.route-plan-warning { background: #fff7ed; border: 1px solid #fdba74; color: #9a3412; border-radius: 14px; padding: 12px; margin-bottom: 10px; }
@media (max-width: 760px) { .route-plan-actions button { width: 100%; } .route-plan-sequence { grid-template-columns: 1fr; } }



/* ====================================================
MENU LATERAL PROFISSIONAL EVOLUTIVA - MODELO 2
==================================================== */
:root {
  --evo-sidebar-open: 268px;
  --evo-sidebar-closed: 76px;
  --evo-sidebar-top: 116px;
}

.tabs {
  position: fixed;
  left: 16px;
  top: var(--evo-sidebar-top);
  bottom: 16px;
  width: var(--evo-sidebar-open);
  max-height: calc(100vh - var(--evo-sidebar-top) - 16px);
  overflow: hidden;
  background: rgba(255,255,255,.97);
  border: 1px solid #e2e8f0;
  border-radius: 24px;
  box-shadow: 0 18px 42px rgba(15,23,42,.12);
  z-index: 70;
  display: flex;
  flex-direction: column;
  transition: width .22s ease, box-shadow .22s ease, transform .22s ease;
  backdrop-filter: blur(12px);
}

.tabs::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 6px;
  background: linear-gradient(180deg, #2563eb 0%, #0f172a 100%);
}

.tabs-header {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) 38px;
  gap: 10px;
  align-items: center;
  padding: 16px 14px 14px 18px;
  border-bottom: 1px solid #e2e8f0;
  flex: 0 0 auto;
}

.tabs-brand-icon {
  width: 42px;
  height: 42px;
  border-radius: 16px;
  background: linear-gradient(135deg, #2563eb, #0f172a);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  font-size: 20px;
  box-shadow: 0 12px 22px rgba(37,99,235,.24);
}

.tabs-title-area { min-width: 0; }

.tabs-kicker {
  color: #2563eb;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: 3px;
}

.tabs-header h3 {
  margin: 0;
  color: #0f172a;
  font-size: 17px;
  line-height: 1.12;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.tabs-header p {
  margin: 4px 0 0 0;
  color: #64748b;
  font-size: 12px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.tabs-toggle-btn {
  width: 38px !important;
  height: 38px;
  margin: 0 !important;
  border-radius: 14px;
  padding: 0 !important;
  border: 1px solid #dbeafe !important;
  background: #eff6ff !important;
  color: #1d4ed8 !important;
  font-size: 18px;
  box-shadow: none !important;
}

.tabs-toggle-btn:hover {
  background: #dbeafe !important;
}

.tabs-scroll {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: 12px 12px 14px 18px;
  scrollbar-width: thin;
}

.tabs-active-badge {
  margin: 0 14px 12px 18px;
  background: linear-gradient(135deg, #0f172a, #2563eb);
  color: white;
  border-radius: 999px;
  padding: 9px 12px;
  font-size: 12px;
  font-weight: 900;
  box-shadow: 0 10px 24px rgba(37, 99, 235, .20);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
}

.tabs-active-badge::before {
  content: "●";
  color: #22c55e;
  font-size: 12px;
}

.tabs-groups {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.tabs-section {
  background: transparent;
  border: 0;
  padding: 0;
  min-width: 0;
}

.tabs-section-title {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 7px 0;
  color: #64748b;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .07em;
}

.tabs-section-icon {
  width: 28px;
  height: 28px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #eff6ff;
  color: #1d4ed8;
  font-size: 14px;
  flex: 0 0 auto;
}

.tabs-section-buttons {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.tabs .nav-pill {
  width: 100% !important;
  margin: 0 !important;
  border: 1px solid transparent;
  background: transparent;
  color: #334155;
  border-radius: 14px;
  padding: 10px 10px;
  min-height: 42px;
  box-shadow: none;
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  font-weight: 800;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease, color .15s ease, border-color .15s ease;
  text-align: left;
}

.tabs .nav-pill:hover {
  transform: translateX(2px);
  box-shadow: 0 10px 22px rgba(15, 23, 42, .08);
  border-color: #bfdbfe;
  background: #eff6ff;
  color: #1d4ed8;
}

.tabs .nav-pill.active {
  background: linear-gradient(135deg, #2563eb, #1d4ed8);
  color: #ffffff;
  border-color: #1d4ed8;
  box-shadow: 0 12px 28px rgba(37, 99, 235, .24);
}

.tabs .nav-icon {
  width: 26px;
  height: 26px;
  border-radius: 10px;
  background: #f1f5f9;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  flex: 0 0 auto;
}

.tabs .nav-pill.active .nav-icon {
  background: rgba(255,255,255,.18);
}

.tabs .nav-text {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.tabs .nav-count {
  margin-left: auto;
  min-width: 22px;
  height: 22px;
  padding: 0 7px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #fee2e2;
  color: #991b1b;
  font-size: 12px;
  font-weight: 900;
}

.tabs .nav-pill.active .nav-count {
  background: rgba(255,255,255,.22);
  color: #ffffff;
}

.tabs.collapsed {
  width: var(--evo-sidebar-closed);
}

.tabs.collapsed .tabs-header {
  grid-template-columns: 1fr;
  padding: 14px 10px;
}

.tabs.collapsed .tabs-title-area,
.tabs.collapsed .tabs-active-badge,
.tabs.collapsed .tabs-section-title span:not(.tabs-section-icon),
.tabs.collapsed .nav-text,
.tabs.collapsed .nav-count {
  display: none;
}

.tabs.collapsed .tabs-scroll {
  padding: 8px 10px 12px 14px;
}

.tabs.collapsed .tabs-section-title {
  justify-content: center;
  margin-top: 5px;
}

.tabs.collapsed .tabs-section-buttons {
  gap: 8px;
}

.tabs.collapsed .nav-pill {
  justify-content: center;
  padding: 10px 8px;
}

.tabs.collapsed .tabs-toggle-btn {
  transform: rotate(180deg);
}

.tabs + #adminArea {
  margin-left: calc(var(--evo-sidebar-open) + 18px);
  transition: margin-left .22s ease;
  min-width: 0;
}

.tabs.collapsed + #adminArea {
  margin-left: calc(var(--evo-sidebar-closed) + 18px);
}

body.menu-lateral-ativo main#app {
  max-width: none;
  padding-top: 16px;
}

@media (max-width: 900px) {
  .tabs {
    left: 12px;
    right: 12px;
    top: auto;
    bottom: 12px;
    width: auto;
    max-height: 58vh;
    transform: translateY(calc(100% - 68px));
  }

  .tabs.menu-mobile-aberto {
    transform: translateY(0);
  }

  .tabs-header {
    cursor: pointer;
  }

  .tabs + #adminArea,
  .tabs.collapsed + #adminArea {
    margin-left: 0;
    padding-bottom: 86px;
  }

  .tabs.collapsed {
    width: auto;
  }

  .tabs.collapsed .tabs-title-area,
  .tabs.collapsed .tabs-active-badge,
  .tabs.collapsed .tabs-section-title span:not(.tabs-section-icon),
  .tabs.collapsed .nav-text,
  .tabs.collapsed .nav-count {
    display: initial;
  }
}

@media (max-width: 700px) {
  :root { --evo-sidebar-top: 156px; }
}

/* ====================================================
ROTEIRO PROFISSIONAL / LANÇAMENTO POR PERÍODO
==================================================== */
.route-pro-hero {
  background: radial-gradient(circle at top right, rgba(37,99,235,.32), transparent 34%), linear-gradient(135deg, #020617 0%, #0f172a 48%, #1d4ed8 100%);
  color: #fff;
  border-radius: 26px;
  padding: 22px;
  margin-bottom: 14px;
  box-shadow: 0 18px 42px rgba(15, 23, 42, .22);
}
.route-pro-hero h2 { margin: 0; font-size: 28px; }
.route-pro-hero p { color: #dbeafe; margin: 8px 0 0 0; }
.route-pro-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(185px, 1fr)); gap: 12px; margin-top: 16px; }
.route-pro-kpi { background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.20); border-radius: 18px; padding: 14px; }
.route-pro-kpi strong { display: block; font-size: 30px; line-height: 1; }
.route-pro-kpi span { display: block; color: #dbeafe; font-size: 12px; margin-top: 6px; font-weight: 700; }
.route-pro-panel { background: #fff; border: 1px solid #e2e8f0; border-radius: 24px; padding: 18px; margin-bottom: 14px; box-shadow: 0 12px 28px rgba(15,23,42,.08); }
.route-pro-panel-header { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; flex-wrap: wrap; margin-bottom: 12px; }
.route-pro-panel-header h3 { margin: 0; color: #0f172a; }
.route-pro-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 10px; align-items: end; }
.route-pro-days { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.route-pro-day { display: inline-flex; gap: 7px; align-items: center; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 999px; padding: 8px 10px; font-weight: 800; font-size: 13px; color: #334155; }
.route-pro-day input { width: auto; margin: 0; }
.route-pro-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; align-items: center; }
.route-pro-actions button { width: auto; min-width: 170px; }
.route-pro-preview { background: #eff6ff; border: 1px solid #bfdbfe; color: #1e3a8a; border-radius: 14px; padding: 12px; font-size: 13px; font-weight: 800; margin-top: 10px; }
.route-pro-warning { background: #fff7ed; border: 1px solid #fdba74; color: #9a3412; border-radius: 14px; padding: 12px; font-size: 13px; margin-top: 10px; }
.route-pro-table-wrap { overflow-x: auto; border: 1px solid #e5e7eb; border-radius: 18px; }
.route-pro-badge { display: inline-block; border-radius: 999px; padding: 6px 10px; font-size: 12px; font-weight: 900; }
.route-pro-badge.rede { background: #ede9fe; color: #5b21b6; }
@media (max-width: 760px) {
  .route-pro-hero h2 { font-size: 23px; }
  .route-pro-actions button { width: 100%; }
}



/* ====================================================
REVISÃO GERAL 2026-06-06
Menu lateral fluido, recolhível e mais profissional
==================================================== */
:root {
  --evo-sidebar-open: 286px;
  --evo-sidebar-closed: 78px;
  --evo-sidebar-top: 108px;
  --evo-content-gap: 22px;
}

body.menu-lateral-ativo {
  background: #f6f8fc;
}

body.menu-lateral-ativo main#app {
  max-width: none;
  padding: 18px 18px 24px 18px;
}

.tabs {
  top: var(--evo-sidebar-top) !important;
  left: 18px !important;
  bottom: 18px !important;
  width: var(--evo-sidebar-open) !important;
  max-height: calc(100vh - var(--evo-sidebar-top) - 18px) !important;
  border-radius: 26px !important;
  background: rgba(255, 255, 255, .98) !important;
  box-shadow: 0 24px 60px rgba(15, 23, 42, .14) !important;
  transform: translate3d(0,0,0);
  will-change: width, transform;
}

.tabs::before {
  width: 5px !important;
  border-radius: 26px 0 0 26px;
  background: linear-gradient(180deg, #2563eb 0%, #1d4ed8 45%, #0f172a 100%) !important;
}

.tabs-header {
  grid-template-columns: 44px minmax(0, 1fr) 38px !important;
  background: linear-gradient(180deg, rgba(239,246,255,.92), rgba(255,255,255,.98));
}

.tabs-brand-icon {
  font-family: Arial, sans-serif;
  letter-spacing: -0.03em;
}

.tabs-toggle-btn {
  transition: transform .18s ease, background .18s ease, color .18s ease !important;
}

.tabs-scroll {
  scroll-behavior: smooth;
  overscroll-behavior: contain;
}

.tabs .nav-pill {
  min-height: 44px !important;
  border-radius: 15px !important;
}

.tabs .nav-pill.active {
  background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%) !important;
}

.tabs .nav-pill:focus-visible,
.tabs-toggle-btn:focus-visible {
  outline: 3px solid rgba(37, 99, 235, .22);
  outline-offset: 2px;
}

.tabs-user-card {
  margin: 0 12px 12px 18px;
  padding: 12px;
  border-radius: 18px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  display: flex;
  gap: 10px;
  align-items: center;
  flex: 0 0 auto;
}

.tabs-user-avatar {
  width: 36px;
  height: 36px;
  border-radius: 14px;
  background: linear-gradient(135deg, #1d4ed8, #0f172a);
  color: white;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  flex: 0 0 auto;
}

.tabs-user-text {
  min-width: 0;
  line-height: 1.2;
}

.tabs-user-text strong,
.tabs-user-text span {
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.tabs-user-text strong {
  color: #0f172a;
  font-size: 13px;
}

.tabs-user-text span {
  color: #64748b;
  font-size: 11px;
  margin-top: 3px;
}

.tabs.collapsed {
  width: var(--evo-sidebar-closed) !important;
}

.tabs.collapsed .tabs-header {
  grid-template-columns: 1fr !important;
  justify-items: center;
}

.tabs.collapsed .tabs-user-card {
  justify-content: center;
  padding: 10px 8px;
  margin: 0 10px 12px 14px;
}

.tabs.collapsed .tabs-user-text {
  display: none;
}

.tabs.collapsed .tabs-toggle-btn {
  transform: rotate(180deg);
}

.tabs + #adminArea {
  margin-left: calc(var(--evo-sidebar-open) + var(--evo-content-gap)) !important;
  max-width: calc(100vw - var(--evo-sidebar-open) - var(--evo-content-gap) - 44px);
  transition: margin-left .22s ease, max-width .22s ease !important;
}

.tabs.collapsed + #adminArea {
  margin-left: calc(var(--evo-sidebar-closed) + var(--evo-content-gap)) !important;
  max-width: calc(100vw - var(--evo-sidebar-closed) - var(--evo-content-gap) - 44px);
}

#adminArea > .card,
#adminArea > .executive-dashboard,
#adminArea > .dashboard-premium,
#adminArea > .route-pro-page,
#adminArea > .notification-center,
#adminArea > .pending-center,
#adminArea > .quality-panel,
#adminArea > .audit-dashboard,
#adminArea > .users-control-dashboard {
  animation: evoFadeIn .18s ease;
}

@keyframes evoFadeIn {
  from { opacity: .55; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 900px) {
  :root {
    --evo-sidebar-open: 288px;
    --evo-sidebar-top: 12px;
  }

  .tabs {
    top: 12px !important;
    left: 12px !important;
    bottom: 12px !important;
    right: auto !important;
    width: var(--evo-sidebar-open) !important;
    max-height: calc(100vh - 24px) !important;
    transform: translateX(calc(-100% + 72px)) !important;
  }

  .tabs.menu-mobile-aberto {
    transform: translateX(0) !important;
  }

  .tabs.collapsed {
    width: var(--evo-sidebar-open) !important;
  }

  .tabs.collapsed .tabs-title-area,
  .tabs.collapsed .tabs-active-badge,
  .tabs.collapsed .tabs-section-title span:not(.tabs-section-icon),
  .tabs.collapsed .nav-text,
  .tabs.collapsed .nav-count,
  .tabs.collapsed .tabs-user-text {
    display: block !important;
  }

  .tabs.collapsed .tabs-header {
    grid-template-columns: 44px minmax(0, 1fr) 38px !important;
    justify-items: stretch;
  }

  .tabs + #adminArea,
  .tabs.collapsed + #adminArea {
    margin-left: 70px !important;
    max-width: calc(100vw - 82px) !important;
    padding-bottom: 18px;
  }

  body.menu-lateral-ativo main#app {
    padding: 12px;
  }
}

@media (max-width: 620px) {
  .tabs + #adminArea,
  .tabs.collapsed + #adminArea {
    margin-left: 0 !important;
    max-width: none !important;
    padding-top: 72px;
  }

  .tabs {
    transform: translateX(calc(-100% + 64px)) !important;
  }
}


/* ====================================================
CORREÇÃO SOLICITADA - MENU SUPERIOR RECOLHÍVEL
Remove o comportamento lateral e mantém a navegação no topo.
==================================================== */
body.menu-lateral-ativo {
  background: #f2f4f7 !important;
}

body.menu-lateral-ativo main#app {
  max-width: 1440px !important;
  padding: 16px !important;
  margin: auto !important;
}

.tabs {
  position: sticky !important;
  top: 0 !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  width: 100% !important;
  max-width: 1440px !important;
  max-height: none !important;
  margin: 0 auto 16px auto !important;
  overflow: visible !important;
  background: rgba(255,255,255,.98) !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 22px !important;
  box-shadow: 0 12px 30px rgba(15,23,42,.10) !important;
  z-index: 60 !important;
  display: flex !important;
  flex-direction: column !important;
  transform: none !important;
  transition: box-shadow .18s ease, border-radius .18s ease !important;
  backdrop-filter: blur(12px);
}

.tabs::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  top: 0 !important;
  bottom: auto !important;
  width: auto !important;
  height: 5px !important;
  border-radius: 22px 22px 0 0 !important;
  background: linear-gradient(90deg, #2563eb 0%, #1d4ed8 45%, #0f172a 100%) !important;
}

.tabs-header {
  display: grid !important;
  grid-template-columns: 44px minmax(0, 1fr) auto !important;
  gap: 10px !important;
  align-items: center !important;
  padding: 18px 16px 12px 16px !important;
  border-bottom: 1px solid #e2e8f0 !important;
  background: linear-gradient(180deg, rgba(239,246,255,.92), rgba(255,255,255,.98)) !important;
  border-radius: 22px 22px 0 0 !important;
  cursor: default !important;
}

.tabs-toggle-btn {
  width: auto !important;
  min-width: 118px !important;
  height: 38px !important;
  margin: 0 !important;
  padding: 0 14px !important;
  border-radius: 14px !important;
  border: 1px solid #dbeafe !important;
  background: #eff6ff !important;
  color: #1d4ed8 !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  box-shadow: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  transform: none !important;
}

.tabs-toggle-btn::before {
  content: "▲";
  font-size: 11px;
}

.tabs.collapsed .tabs-toggle-btn::before {
  content: "▼";
}

.tabs-scroll {
  flex: 0 1 auto !important;
  max-height: 48vh !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  padding: 12px 16px 16px 16px !important;
  scrollbar-width: thin;
}

.tabs-active-badge {
  margin: 12px 16px 0 16px !important;
  flex: 0 0 auto !important;
}

.tabs-groups {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)) !important;
  gap: 12px !important;
}

.tabs-section {
  background: #f8fafc !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 16px !important;
  padding: 10px !important;
}

.tabs-section-buttons {
  display: flex !important;
  flex-wrap: wrap !important;
  flex-direction: row !important;
  gap: 6px !important;
}

.tabs .nav-pill {
  width: auto !important;
  flex: 1 1 150px !important;
  min-width: 145px !important;
  justify-content: flex-start !important;
  text-align: left !important;
  transform: none !important;
}

.tabs .nav-pill:hover {
  transform: translateY(-1px) !important;
}

.tabs.collapsed {
  width: 100% !important;
  max-height: none !important;
}

.tabs.collapsed .tabs-header {
  grid-template-columns: 44px minmax(0, 1fr) auto !important;
  justify-items: stretch !important;
  border-radius: 22px !important;
  border-bottom: 0 !important;
}

.tabs.collapsed .tabs-active-badge,
.tabs.collapsed .tabs-scroll,
.tabs.collapsed .tabs-user-card {
  display: none !important;
}

.tabs.collapsed .tabs-title-area,
.tabs.collapsed .tabs-section-title span:not(.tabs-section-icon),
.tabs.collapsed .nav-text,
.tabs.collapsed .nav-count,
.tabs.collapsed .tabs-user-text {
  display: block !important;
}

.tabs.collapsed .tabs-toggle-btn {
  transform: none !important;
}

.tabs + #adminArea,
.tabs.collapsed + #adminArea {
  margin-left: 0 !important;
  max-width: none !important;
  transition: none !important;
  padding-bottom: 0 !important;
  padding-top: 0 !important;
}

.tabs.menu-mobile-aberto {
  transform: none !important;
}

@media (max-width: 900px) {
  .tabs {
    position: sticky !important;
    top: 0 !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    max-height: none !important;
    margin: 0 0 14px 0 !important;
    transform: none !important;
  }

  .tabs-header {
    grid-template-columns: 40px minmax(0, 1fr) auto !important;
    padding: 16px 12px 11px 12px !important;
    cursor: default !important;
  }

  .tabs-toggle-btn {
    min-width: 104px !important;
    padding: 0 10px !important;
  }

  .tabs-scroll {
    max-height: 58vh !important;
    padding: 10px 12px 14px 12px !important;
  }

  .tabs-groups {
    grid-template-columns: 1fr !important;
  }

  .tabs .nav-pill {
    width: 100% !important;
    min-width: 0 !important;
    flex: 1 1 100% !important;
  }

  .tabs + #adminArea,
  .tabs.collapsed + #adminArea {
    margin-left: 0 !important;
    max-width: none !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  body.menu-lateral-ativo main#app {
    padding: 12px !important;
  }
}

@media (max-width: 520px) {
  .tabs-toggle-btn {
    min-width: 44px !important;
    font-size: 0 !important;
    padding: 0 !important;
  }

  .tabs-toggle-btn::before {
    font-size: 14px !important;
  }

  .tabs-header h3 {
    font-size: 15px !important;
  }

  .tabs-header p,
  .tabs-kicker {
    font-size: 11px !important;
  }
}



/* ====================================================
IMPORTAÇÃO EXCEL - PROGRESSO SEM PISCAR
==================================================== */
.import-progress-inline {
  display: none;
  margin-top: 14px;
  border: 1px solid #bfdbfe;
  background: linear-gradient(135deg, #eff6ff 0%, #ffffff 100%);
  border-radius: 18px;
  padding: 14px;
}
.import-progress-inline.ativo {
  display: block;
}
.import-progress-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 10px;
}
.import-progress-title {
  color: #0f172a;
  font-weight: 900;
}
.import-progress-percent {
  color: #1d4ed8;
  font-size: 24px;
  font-weight: 900;
}
.import-progress-bar-wrap {
  height: 18px;
  background: #e2e8f0;
  border-radius: 999px;
  overflow: hidden;
  border: 1px solid #cbd5e1;
}
.import-progress-bar {
  width: 0%;
  height: 100%;
  background: linear-gradient(90deg, #2563eb 0%, #22c55e 100%);
  border-radius: 999px;
  transition: width .22s ease;
}
.import-progress-detail {
  margin-top: 8px;
  color: #475569;
  font-size: 13px;
  line-height: 1.35;
}
.import-progress-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, .58);
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 18px;
  backdrop-filter: blur(4px);
}
.import-progress-overlay.ativo {
  display: flex;
}
.import-progress-modal {
  width: min(560px, 96vw);
  background: #ffffff;
  border-radius: 24px;
  padding: 20px;
  box-shadow: 0 24px 70px rgba(15, 23, 42, .35);
  border: 1px solid #e2e8f0;
}
.import-progress-modal h3 {
  margin: 0 0 6px 0;
  color: #0f172a;
}
.import-progress-modal p {
  margin: 0 0 14px 0;
  color: #64748b;
  font-size: 13px;
}
.import-progress-pulse {
  display: inline-flex;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #22c55e;
  margin-right: 7px;
  box-shadow: 0 0 0 rgba(34, 197, 94, .55);
  animation: importPulse 1.4s infinite;
}
@keyframes importPulse {
  0% { box-shadow: 0 0 0 0 rgba(34, 197, 94, .55); }
  70% { box-shadow: 0 0 0 12px rgba(34, 197, 94, 0); }
  100% { box-shadow: 0 0 0 0 rgba(34, 197, 94, 0); }
}
body.importacao-excel-bloqueada {
  cursor: progress;
}
body.importacao-excel-bloqueada .tabs button,
body.importacao-excel-bloqueada .header-logout-btn {
  pointer-events: none;
  opacity: .65;
}


/* ====================================================
MODAL PROFISSIONAL EVOLUTIVA
==================================================== */
.evolutiva-modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 999999;
  background: rgba(15, 23, 42, 0.58);
  backdrop-filter: blur(7px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
  animation: evolutivaModalFade .16s ease-out;
}

.evolutiva-modal-box {
  width: min(540px, 100%);
  background: #ffffff;
  border: 1px solid var(--evo-brand-soft);
  border-radius: 24px;
  box-shadow: 0 30px 90px rgba(15, 23, 42, .28);
  overflow: hidden;
  animation: evolutivaModalPop .18s ease-out;
}

.evolutiva-modal-head {
  padding: 18px 22px;
  background: linear-gradient(135deg, var(--evo-brand-deep), var(--evo-brand));
  color: #ffffff;
  display: flex;
  align-items: center;
  gap: 12px;
}

.evolutiva-modal-icon {
  width: 42px;
  height: 42px;
  border-radius: 16px;
  background: rgba(255,255,255,.18);
  display: grid;
  place-items: center;
  font-size: 22px;
  flex: 0 0 auto;
}

.evolutiva-modal-title {
  font-size: 20px;
  font-weight: 900;
  line-height: 1.15;
}

.evolutiva-modal-subtitle {
  font-size: 13px;
  opacity: .86;
  margin-top: 3px;
}

.evolutiva-modal-body {
  padding: 22px;
  color: #0f172a;
  font-size: 15px;
  line-height: 1.55;
}

.evolutiva-modal-alert {
  margin-top: 14px;
  padding: 12px 14px;
  border-radius: 16px;
  background: #fff7ed;
  border: 1px solid #fed7aa;
  color: #9a3412;
  font-weight: 700;
}

.evolutiva-modal-input {
  width: 100%;
  margin-top: 14px;
  padding: 13px 14px;
  border: 1px solid #cbd5e1;
  border-radius: 14px;
  font-size: 15px;
  outline: none;
}

.evolutiva-modal-input:focus {
  border-color: #2563eb;
  box-shadow: 0 0 0 4px rgba(37, 99, 235, .14);
}

.evolutiva-modal-actions {
  padding: 0 22px 22px;
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: wrap;
}

.evolutiva-modal-actions button {
  border: none;
  border-radius: 999px;
  padding: 12px 20px;
  font-weight: 900;
  cursor: pointer;
  min-width: 120px;
}

.evolutiva-modal-btn-secondary {
  background: #e2e8f0;
  color: #334155;
}

.evolutiva-modal-btn-danger {
  background: #dc2626;
  color: #ffffff;
}

.evolutiva-modal-btn-primary {
  background: #16a34a;
  color: #ffffff;
}

.evolutiva-modal-btn-blue {
  background: #2563eb;
  color: #ffffff;
}

@keyframes evolutivaModalFade {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes evolutivaModalPop {
  from { transform: translateY(12px) scale(.98); opacity: .4; }
  to { transform: translateY(0) scale(1); opacity: 1; }
}


/* ====================================================
VISITA - FOTOS MÚLTIPLAS ANTES / DEPOIS
==================================================== */
.galeria-fotos-multiplas {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(108px, 1fr));
  gap: 10px;
  margin-top: 12px;
}
.foto-multipla-card {
  border: 1px solid #dbeafe;
  background: #ffffff;
  border-radius: 14px;
  padding: 8px;
  box-shadow: 0 8px 18px rgba(15,23,42,.08);
}
.foto-multipla-card img {
  width: 100%;
  height: 92px;
  object-fit: cover;
  border-radius: 10px;
  display: block;
}
.foto-multipla-card small {
  display: block;
  color: #475569;
  margin-top: 6px;
  font-size: 11px;
  line-height: 1.25;
}
.foto-multipla-card button {
  margin-top: 6px;
  width: 100%;
  min-height: 32px;
  font-size: 12px;
  padding: 7px 8px;
}

.foto-multipla-acoes {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
  margin-top: 6px;
}
.foto-multipla-acoes button {
  margin-top: 0;
}
.foto-preview-overlay {
  position: fixed;
  inset: 0;
  z-index: 99999;
  background: rgba(15, 23, 42, .92);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 14px;
}
.foto-preview-modal {
  width: min(980px, 96vw);
  max-height: 94vh;
  background: #0f172a;
  color: #fff;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,.16);
  box-shadow: 0 22px 65px rgba(0,0,0,.45);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.foto-preview-topo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 14px;
  background: rgba(255,255,255,.08);
}
.foto-preview-topo h3 {
  margin: 0;
  font-size: 16px;
}
.foto-preview-topo button {
  width: auto !important;
  min-width: 92px;
  margin: 0;
  background: #64748b;
}
.foto-preview-corpo {
  padding: 12px;
  overflow: auto;
}
.foto-preview-corpo img {
  width: 100%;
  height: auto;
  max-height: 78vh;
  object-fit: contain;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.18);
  background: #020617;
  display: block;
  margin: 0 auto;
}
.foto-preview-info {
  padding: 10px 12px 14px 12px;
  color: #cbd5e1;
  font-size: 12px;
  line-height: 1.35;
}
@media (max-width: 700px) {
  .foto-preview-modal {
    width: 100vw;
    max-height: 100vh;
    border-radius: 0;
  }
  .foto-preview-corpo img {
    max-height: 76vh;
  }
}
.foto-multipla-count {
  margin-top: 10px;
  padding: 9px 11px;
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  border-radius: 12px;
  color: #1e3a8a;
  font-weight: 800;
  font-size: 13px;
}


.foto-multipla-limit-ok {
  background: #eff6ff;
  border-color: #bfdbfe;
  color: #1e3a8a;
}
.foto-multipla-limit-full {
  background: #fff7ed;
  border-color: #fed7aa;
  color: #9a3412;
}
button.foto-limite-atingido,
button.foto-limite-atingido:disabled {
  opacity: .65;
  cursor: not-allowed;
  background: #94a3b8 !important;
}


/* ====================================================
FILTROS E ROLAGEM LATERAL - MARCAS E VALORES
==================================================== */
.marcas-valores-filtro-card {
  border-left: 6px solid #2563eb !important;
  background: linear-gradient(135deg, #ffffff 0%, #eff6ff 100%);
}
.marcas-valores-filtro-card .grid {
  align-items: end;
}
.marcas-valores-actions {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}
.marcas-valores-actions button {
  width: auto;
  min-width: 150px;
}
.marcas-valores-scroll {
  max-height: calc(100vh - 240px);
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: 10px;
  scrollbar-width: thin;
  scrollbar-color: #2563eb #e5e7eb;
}
.marcas-valores-scroll::-webkit-scrollbar {
  width: 11px;
}
.marcas-valores-scroll::-webkit-scrollbar-track {
  background: #e5e7eb;
  border-radius: 999px;
}
.marcas-valores-scroll::-webkit-scrollbar-thumb {
  background: #2563eb;
  border-radius: 999px;
  border: 2px solid #e5e7eb;
}
.marcas-valores-card {
  border-left: 5px solid #16a34a !important;
}
.marcas-valores-card-info {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin: 6px 0 12px;
}
.marcas-valores-pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  border-radius: 999px;
  background: #f1f5f9;
  color: #334155;
  border: 1px solid #cbd5e1;
  padding: 5px 9px;
  font-size: 11px;
  font-weight: 800;
}
.marcas-valores-empty {
  border: 1px dashed #94a3b8;
  border-radius: 16px;
  padding: 18px;
  color: #475569;
  background: #f8fafc;
}


/* ====================================================
ROTEIRO E VISITAS FINAL V2 - PRODUÇÃO
==================================================== */
.roteiro-final-card {
  border-left: 6px solid var(--evo-brand, #6a6fe0) !important;
}
.roteiro-final-actions {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
}
.roteiro-final-actions button {
  width:auto;
  min-width:180px;
}
.roteiro-final-log {
  white-space:pre-wrap;
  background:#0f172a;
  color:#e2e8f0;
  padding:14px;
  border-radius:12px;
  min-height:90px;
  max-height:260px;
  overflow:auto;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}
.roteiro-final-board {
  display:grid;
  grid-template-columns: repeat(7, minmax(170px, 1fr));
  gap:10px;
  min-width:1220px;
}
.roteiro-final-scroll {
  overflow:auto;
  max-height: calc(100vh - 260px);
  padding-bottom:10px;
}
.roteiro-final-day {
  background:#fff;
  border:1px solid #dbe5f3;
  border-radius:18px;
  min-height:360px;
  padding:12px;
}
.roteiro-final-day-head {
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-bottom:1px solid #e2e8f0;
  padding-bottom:8px;
  margin-bottom:10px;
  font-weight:900;
  color:#1e3a8a;
}
.roteiro-final-visit {
  border:1px solid #dbeafe;
  border-left:5px solid #2563eb;
  border-radius:14px;
  padding:10px;
  margin-bottom:10px;
  background:#f8fbff;
}
.roteiro-final-visit b {
  display:block;
  color:#0f172a;
  font-size:14px;
}
.roteiro-final-visit span {
  display:block;
  color:#475569;
  font-size:12px;
  margin-top:3px;
}
.roteiro-final-visit button {
  margin-top:8px;
  padding:8px 10px;
  font-size:12px;
}
/* .roteiro-final-summary/.roteiro-final-kpi* removidos: a faixa de resumo do Roteiro agora usa .stat-chip-row/.stat-chip (evolutiva-theme.css), igual às demais telas de listagem. */


/* ====================================================
IMPORTAÇÃO ÚNICA - LIMPEZA AUTOMÁTICA E BARRA DE PROGRESSO
==================================================== */
.importacao-unica-progress {
  display: none;
  margin-top: 14px;
  border: 1px solid #bfdbfe;
  background: #eff6ff;
  border-radius: 16px;
  padding: 14px;
}
.importacao-unica-progress.ativo {
  display: block;
}
.importacao-unica-progress-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}
.importacao-unica-progress-title {
  font-weight: 900;
  color: #1e3a8a;
}
.importacao-unica-progress-percent {
  font-weight: 900;
  color: #0f172a;
}
.importacao-unica-progress-bar-wrap {
  height: 14px;
  background: #dbeafe;
  border-radius: 999px;
  overflow: hidden;
}
.importacao-unica-progress-bar {
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, #16a34a, #2563eb);
  border-radius: 999px;
  transition: width .25s ease;
}
.importacao-unica-progress-detail {
  margin-top: 8px;
  color: #475569;
  font-size: 13px;
}
.importacao-unica-opcoes {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  padding: 12px;
}


/* ====================================================
PREMIUM ESTÁVEL - MOTOR SEGURO SEM APAGAR MÓDULOS
==================================================== */
.premium-estavel-erro {
  border: 1px solid #fecaca;
  border-left: 6px solid #dc2626;
  background: #fff1f2;
  border-radius: 16px;
  padding: 16px;
  margin: 12px 0;
}
.roteiro-premium-estavel-board { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.roteiro-premium-estavel-scroll { overflow-x: auto; padding-bottom: 4px; }
.roteiro-premium-estavel-dia { background: #fff; border: 1px solid #dbe5f3; border-radius: 12px; min-height: 110px; max-height: 300px; overflow-y: auto; padding: 6px; }
.roteiro-premium-estavel-head { display:flex; justify-content:space-between; align-items:baseline; padding-bottom:6px; margin-bottom:6px; font-weight:800; font-size: 11px; color: var(--evo-muted, #656d8a); text-transform: uppercase; letter-spacing: .02em; }
.roteiro-premium-estavel-head span:last-child { font-weight: 700; color: var(--evo-ink, #171b2e); text-transform: none; }
/* Cores dos cards (.roteiro-premium-estavel-card e variantes .status-*) agora em evolutiva-theme.css, com tokens em vez de hex fixo. */
.roteiro-premium-estavel-card b { display:block; font-size: 11.5px; line-height:1.3; }
.roteiro-premium-estavel-card span { display:block; color: inherit; opacity: .8; font-size:10.5px; margin-top:1px; line-height:1.3; }
.roteiro-premium-estavel-vazio { color: var(--evo-muted, #94a3b8); font-size: 10.5px; text-align: center; padding: 10px 2px; }
.roteiro-premium-estavel-legenda { display:flex; gap:14px; flex-wrap:wrap; margin-top:10px; font-size:11px; font-weight:700; color: var(--evo-muted, #656d8a); }
.roteiro-premium-estavel-legenda span { display:inline-flex; align-items:center; gap:6px; }
.roteiro-premium-estavel-legenda i { width:8px; height:8px; border-radius:50%; display:inline-block; }

@media (max-width: 760px) {
  .roteiro-premium-estavel-board { grid-template-columns: repeat(7, minmax(96px, 1fr)); min-width: 680px; }
  .roteiro-premium-estavel-scroll { overflow-x: auto; }
}
.roteiro-premium-estavel-pill { display:inline-flex; border:1px solid #cbd5e1; background:#f8fafc; border-radius:999px; padding:4px 8px; font-size:11px; font-weight:800; color:#475569; margin:3px; }


/* ====================================================
CORREÇÃO IMPORTAÇÃO 18% + ROTEIRO EM BRANCO
==================================================== */
.roteiro-resgate-box {
  background:#fff;
  border:1px solid #dbe5f3;
  border-radius:22px;
  padding:18px;
  margin-bottom:16px;
  box-shadow:0 14px 36px rgba(15,23,42,.08);
}
.roteiro-resgate-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:10px; }
.roteiro-resgate-kpi { border:1px solid #dbe5f3; border-radius:16px; padding:12px; background:#fff; }
.roteiro-resgate-kpi span { color:#64748b; font-size:11px; font-weight:900; text-transform:uppercase; }
.roteiro-resgate-kpi b { display:block; color:#12306b; font-size:24px; margin-top:4px; }
.roteiro-resgate-board { display:grid; grid-template-columns:repeat(7,minmax(180px,1fr)); gap:10px; min-width:1260px; }
.roteiro-resgate-scroll { overflow:auto; max-height:calc(100vh - 260px); padding-bottom:10px; }
.roteiro-resgate-dia { border:1px solid #dbe5f3; border-radius:18px; padding:12px; background:#fff; min-height:330px; }
.roteiro-resgate-head { display:flex; justify-content:space-between; border-bottom:1px solid #e2e8f0; padding-bottom:8px; margin-bottom:10px; color:#1e3a8a; font-weight:900; }
.roteiro-resgate-visita { border:1px solid #dbeafe; border-left:5px solid #2563eb; background:#f8fbff; border-radius:14px; padding:10px; margin-bottom:10px; }
.roteiro-resgate-visita b{display:block;color:#0f172a}
.roteiro-resgate-visita span{display:block;color:#475569;font-size:12px;margin-top:3px}
.roteiro-resgate-visita button{margin-top:8px;padding:8px 10px;font-size:12px}
.importacao-trava-alerta {
  border:1px solid #bfdbfe;
  border-left:6px solid #2563eb;
  background:#eff6ff;
  border-radius:16px;
  padding:13px;
  margin:12px 0;
}

/* evolutiva-layout-compacto-profissional */
/* ====================================================
AJUSTE COMPACTO PROFISSIONAL - MODELO C
Reduz proporção geral do painel, cabeçalho, filtros e roteiro.
==================================================== */

/* Área geral */
main {
  padding: 10px 14px !important;
  max-width: 1380px !important;
}

/* Cabeçalho superior/menu */
.app-header {
  padding: 8px 10px !important;
  gap: 10px !important;
}

.app-title h2 {
  font-size: 20px !important;
  line-height: 1.1 !important;
}

.app-title #userInfo {
  font-size: 12px !important;
  margin-top: 2px !important;
}

.header-logout-btn,
.tabs-toggle-btn {
  min-height: 38px !important;
  padding: 8px 14px !important;
  font-size: 13px !important;
  border-radius: 12px !important;
}

/* Menu superior recolhível */
.tabs {
  margin: 8px 0 10px 0 !important;
  padding: 10px !important;
  border-radius: 18px !important;
}

.tabs-header {
  padding: 10px 12px !important;
  gap: 8px !important;
}

.tabs-brand-icon {
  width: 36px !important;
  height: 36px !important;
  border-radius: 12px !important;
  font-size: 16px !important;
}

.tabs-header h3 {
  font-size: 15px !important;
}

.tabs-header p,
.tabs-kicker {
  font-size: 11px !important;
}

.tabs button {
  min-height: 38px !important;
  padding: 8px 12px !important;
  font-size: 13px !important;
  border-radius: 12px !important;
}

/* Campos e botões globais */
input,
select,
textarea,
button {
  padding: 9px 10px !important;
  font-size: 13px !important;
  border-radius: 12px !important;
}

button {
  min-height: 38px !important;
}

/* Cards gerais */
.card,
.executive-card,
.route-pro-panel,
.mc-card {
  border-radius: 18px !important;
}

/* ====================================================
MODELO C - ROTEIRO COMPACTO
==================================================== */

.mc-route-shell {
  grid-template-columns: 280px minmax(0, 1fr) !important;
  gap: 12px !important;
}

.mc-sidebar,
.mc-main {
  gap: 12px !important;
}

.mc-page-hero {
  padding: 14px 16px !important;
}

.mc-page-title {
  font-size: 12px !important;
}

.mc-page-hero h2 {
  font-size: 26px !important;
  margin-bottom: 2px !important;
}

.mc-page-hero p {
  font-size: 13px !important;
}

.mc-header-actions {
  gap: 8px !important;
}

.mc-header-actions button,
.mc-filter-actions button,
.mc-board-actions button,
.mc-launch-actions button {
  padding: 9px 12px !important;
  font-size: 13px !important;
  border-radius: 12px !important;
  min-height: 38px !important;
}

/* Filtros laterais */
.mc-filter-card,
.mc-promoter-list {
  padding: 12px !important;
}

.mc-filter-top {
  margin-bottom: 10px !important;
}

.mc-filter-top h3,
.mc-promoter-list h3 {
  font-size: 20px !important;
}

.mc-field {
  gap: 4px !important;
  margin-bottom: 9px !important;
}

.mc-field label {
  font-size: 12px !important;
}

.mc-field input,
.mc-field select,
.mc-promoter-search {
  padding: 9px 10px !important;
  font-size: 13px !important;
  border-radius: 12px !important;
  min-height: 38px !important;
}

.mc-week-nav {
  grid-template-columns: 1fr 36px 36px !important;
  gap: 6px !important;
}

.mc-week-nav button {
  width: 36px !important;
  height: 36px !important;
  min-height: 36px !important;
  font-size: 15px !important;
}

.mc-filter-actions {
  gap: 8px !important;
}

/* Lista de promotores */
.mc-promoters-scroll {
  max-height: 520px !important;
  gap: 8px !important;
}

.mc-promoter-item {
  grid-template-columns: 40px 1fr auto !important;
  gap: 9px !important;
  padding: 9px !important;
  border-radius: 14px !important;
}

.mc-promoter-avatar,
.mc-selected-avatar {
  width: 40px !important;
  height: 40px !important;
  font-size: 15px !important;
}

.mc-promoter-name {
  font-size: 15px !important;
}

.mc-promoter-sub {
  font-size: 11px !important;
}

.mc-promoter-metrics-row {
  gap: 7px !important;
  font-size: 10px !important;
  margin-top: 5px !important;
}

.mc-promoter-chevron {
  font-size: 20px !important;
}

/* Resumo da semana */
.mc-summary-strip {
  padding: 12px 14px !important;
  grid-template-columns: 1.45fr repeat(4, .85fr) .85fr !important;
}

.mc-summary-main,
.mc-summary-kpi,
.mc-summary-status {
  padding: 6px 12px !important;
}

.mc-summary-main-title {
  font-size: 12px !important;
}

.mc-summary-main-range {
  font-size: 18px !important;
}

.mc-summary-main-sub,
.mc-summary-kpi span,
.mc-summary-status .sub {
  font-size: 11px !important;
}

.mc-summary-kpi strong {
  font-size: 18px !important;
}

.mc-summary-status .pill {
  padding: 4px 8px !important;
  font-size: 10px !important;
}

/* Cabeçalho do promotor selecionado */
.mc-selected-head {
  padding: 12px 14px !important;
}

.mc-selected-info {
  gap: 10px !important;
}

.mc-selected-name {
  font-size: 16px !important;
}

.mc-selected-sub {
  font-size: 12px !important;
}

.mc-selected-metrics {
  gap: 18px !important;
}

.mc-selected-metrics strong {
  font-size: 17px !important;
}

.mc-selected-metrics span {
  font-size: 10px !important;
}

/* Grade semanal */
.mc-board {
  padding: 0 8px 10px 8px !important;
}

.mc-board-grid {
  grid-template-columns: repeat(7, minmax(155px, 1fr)) !important;
}

.mc-board-day {
  min-height: 260px !important;
  padding: 9px !important;
}

.mc-board-day-head {
  margin-bottom: 9px !important;
  padding-bottom: 7px !important;
  font-size: 12px !important;
}

.mc-day-badge {
  padding: 4px 7px !important;
  font-size: 10px !important;
}

.mc-board-empty {
  min-height: 150px !important;
  font-size: 11px !important;
  gap: 8px !important;
}

.mc-board-empty-tag {
  padding: 5px 9px !important;
  font-size: 11px !important;
}

/* Cards das visitas */
.mc-route-visit-card {
  padding: 9px !important;
  margin-bottom: 8px !important;
  border-radius: 13px !important;
}

.mc-route-visit-store {
  font-size: 12px !important;
}

.mc-route-visit-line {
  font-size: 11px !important;
  margin-bottom: 3px !important;
}

.mc-route-status {
  padding: 4px 8px !important;
  font-size: 10px !important;
}

.mc-route-visit-actions {
  gap: 6px !important;
  margin-top: 8px !important;
}

.mc-route-visit-actions button {
  padding: 7px 8px !important;
  font-size: 11px !important;
  min-height: 32px !important;
}

/* Rodapé da grade */
.mc-board-footer {
  padding: 0 14px 12px 14px !important;
}

.mc-legend {
  gap: 12px !important;
  font-size: 11px !important;
}

/* Novo roteiro */
.mc-launch-panel {
  padding: 13px 15px !important;
}

.mc-launch-panel summary {
  font-size: 14px !important;
}

.mc-launch-grid {
  grid-template-columns: repeat(4, minmax(145px, 1fr)) !important;
  gap: 9px !important;
  margin-top: 12px !important;
}

.mc-launch-grid label {
  font-size: 11px !important;
}

.mc-launch-grid input,
.mc-launch-grid select {
  padding: 9px 10px !important;
  min-height: 38px !important;
  font-size: 12px !important;
  border-radius: 12px !important;
}

/* Editor de roteiro */
.route-edit-panel {
  padding: 13px !important;
  border-radius: 18px !important;
}

.route-pro-form {
  gap: 9px !important;
}

/* Responsivo */
@media (max-width: 1300px) {
  .mc-route-shell {
    grid-template-columns: 260px minmax(0, 1fr) !important;
  }

  .mc-board-grid {
    grid-template-columns: repeat(7, minmax(165px, 1fr)) !important;
  }
}

@media (max-width: 980px) {
  .mc-route-shell {
    grid-template-columns: 1fr !important;
  }

  .mc-summary-strip {
    grid-template-columns: 1fr 1fr !important;
  }

  .mc-board-grid {
    grid-template-columns: repeat(7, minmax(190px, 1fr)) !important;
  }
}

@media (max-width: 760px) {
  main {
    padding: 8px !important;
  }

  .mc-page-hero h2 {
    font-size: 22px !important;
  }

  .mc-board-grid,
  .mc-launch-grid,
  .mc-summary-strip {
    grid-template-columns: 1fr !important;
  }

  .mc-board-day {
    min-height: auto !important;
  }
}
/* evolutiva-correcao-lista-promotores-click */
/* ====================================================
CORREÇÃO LISTA DE PROMOTORES - CLIQUE + PROPORÇÃO
==================================================== */

.mc-promoters-scroll {
  max-height: 560px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  padding-right: 8px !important;
}

.mc-promoter-item {
  position: relative !important;
  display: grid !important;
  grid-template-columns: 44px minmax(0, 1fr) 22px !important;
  align-items: center !important;
  gap: 10px !important;
  width: 100% !important;
  min-height: 76px !important;
  height: auto !important;
  padding: 10px 12px !important;
  margin: 0 0 8px 0 !important;
  border-radius: 16px !important;
  border: 1px solid #dbe5f3 !important;
  background: #ffffff !important;
  color: #0f172a !important;
  text-align: left !important;
  cursor: pointer !important;
  overflow: hidden !important;
  box-shadow: none !important;
  z-index: 1 !important;
}

.mc-promoter-item:hover {
  border-color: #2563eb !important;
  background: #f8fbff !important;
  transform: none !important;
}

.mc-promoter-item.active {
  border-color: #2563eb !important;
  box-shadow: 0 0 0 3px rgba(37,99,235,.12) !important;
  background: #f8fbff !important;
}

.mc-promoter-avatar {
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  border-radius: 999px !important;
  font-size: 15px !important;
  line-height: 1 !important;
  z-index: 2 !important;
}

.mc-promoter-main {
  min-width: 0 !important;
  overflow: hidden !important;
  z-index: 2 !important;
}

.mc-promoter-name {
  font-size: 15px !important;
  line-height: 1.15 !important;
  margin: 0 0 4px 0 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.mc-promoter-sub {
  font-size: 11px !important;
  line-height: 1.2 !important;
  margin: 0 0 5px 0 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.mc-promoter-metrics-row {
  display: flex !important;
  gap: 8px !important;
  flex-wrap: nowrap !important;
  font-size: 10px !important;
  line-height: 1.1 !important;
  margin: 0 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
}

.mc-promoter-metrics-row span {
  display: inline-block !important;
  max-width: 80px !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.mc-promoter-chevron {
  font-size: 20px !important;
  color: #94a3b8 !important;
  justify-self: end !important;
  align-self: center !important;
  z-index: 2 !important;
  pointer-events: none !important;
}

.mc-promoter-item * {
  pointer-events: none !important;
}

.mc-promoter-item {
  pointer-events: auto !important;
}

/* Em telas menores, mantém legível */
@media (max-width: 760px) {
  .mc-promoter-item {
    min-height: 72px !important;
  }
}
/* evolutiva-dashboard-modelo-c-profissional */
/* ====================================================
DASHBOARD PRINCIPAL - PADRÃO MODELO C PROFISSIONAL
==================================================== */

/* Ajuste visual geral dos painéis executivos */
.executive-dashboard,
.dashboard-premium,
.audit-dashboard,
.pending-center,
.quality-panel,
.notification-center,
.users-control-dashboard {
  gap: 12px !important;
}

/* Hero principal */
.executive-hero,
.dashboard-hero,
.pending-hero,
.map-ops-hero,
.route-plan-hero {
  border-radius: 22px !important;
  padding: 18px 20px !important;
  box-shadow: 0 12px 30px rgba(15, 23, 42, .14) !important;
}

.executive-hero h2,
.dashboard-hero h2,
.pending-hero h2,
.map-ops-hero h2,
.route-plan-hero h2 {
  font-size: 26px !important;
  line-height: 1.15 !important;
  margin-bottom: 4px !important;
}

.executive-hero p,
.dashboard-hero p,
.pending-hero p,
.map-ops-hero p,
.route-plan-hero p {
  font-size: 13px !important;
}

/* Painel lateral/percentual do hero */
.executive-hero-panel {
  min-width: 210px !important;
  padding: 14px !important;
  border-radius: 18px !important;
}

.executive-hero-panel .big,
.hero-percent .number {
  font-size: 36px !important;
}

.executive-hero-panel .label,
.hero-percent .label {
  font-size: 12px !important;
}

/* KPIs circulares e cards de métrica */
.circle-kpi-grid,
.kpi-grid,
.audit-kpi-grid,
.pending-summary-grid,
.quality-kpi-grid,
.notification-summary-grid,
.map-ops-grid,
.route-plan-grid,
.mini-metric-grid {
  gap: 10px !important;
}

.circle-kpi-card,
.kpi-card,
.audit-kpi-card,
.pending-summary-card,
.quality-card,
.notification-summary-card,
.map-ops-kpi,
.route-plan-kpi,
.mini-metric-card {
  border-radius: 18px !important;
  padding: 13px !important;
  box-shadow: 0 8px 22px rgba(15, 23, 42, .06) !important;
}

.circle-kpi-card {
  min-height: 190px !important;
}

.circle-kpi-title,
.kpi-label,
.audit-kpi-label,
.quality-card .label {
  font-size: 11px !important;
}

.kpi-card .kpi-value,
.audit-kpi-value,
.pending-summary-card strong,
.quality-card .value,
.notification-summary-card strong,
.map-ops-kpi strong,
.route-plan-kpi strong,
.mini-metric-value {
  font-size: 26px !important;
}

/* Donuts do dashboard */
.donut-ring {
  width: 104px !important;
  height: 104px !important;
}

.donut-core {
  width: 70px !important;
  height: 70px !important;
}

.donut-core strong {
  font-size: 18px !important;
}

.donut-core span {
  font-size: 11px !important;
}

/* Tabelas e listas */
.executive-card,
.user-control-card,
.notification-card,
.pending-item,
.quality-visit-card,
.map-ops-store-card,
.route-plan-card,
.monthly-close-panel,
.payment-panel {
  border-radius: 18px !important;
  padding: 13px !important;
  box-shadow: 0 8px 22px rgba(15, 23, 42, .06) !important;
}

.executive-card-header h3,
.dashboard-section-title h3,
.pending-section-title h3,
.notification-title-row h3 {
  font-size: 18px !important;
}

.executive-table th,
.executive-table td,
.premium-table th,
.premium-table td {
  padding: 9px 8px !important;
  font-size: 13px !important;
}

/* Cards financeiros */
.finance-hero-value {
  font-size: 28px !important;
}

.finance-private-note,
.monthly-close-note,
.report-note-professional,
.payment-warning-box {
  font-size: 12px !important;
  padding: 10px !important;
  border-radius: 12px !important;
}

/* Botões e ações */
.report-actions,
.payment-actions,
.monthly-close-actions,
.notification-actions,
.pending-actions,
.quality-actions,
.map-ops-actions,
.route-plan-actions,
.audit-actions,
.user-control-actions {
  gap: 7px !important;
}

.report-actions button,
.payment-actions button,
.monthly-close-actions button,
.notification-actions button,
.pending-actions button,
.quality-actions button,
.map-ops-actions button,
.route-plan-actions button,
.audit-actions button,
.user-control-actions button {
  min-height: 36px !important;
  padding: 8px 11px !important;
  font-size: 12px !important;
  border-radius: 11px !important;
}

/* Filtros */
.audit-filter-grid,
.pending-filter-grid,
.map-ops-filters,
.route-plan-filters,
.notification-form-grid {
  gap: 8px !important;
}

/* Estados vazios */
.empty-state {
  padding: 13px !important;
  border-radius: 12px !important;
  font-size: 13px !important;
}

/* Mobile */
@media (max-width: 760px) {
  .executive-hero,
  .dashboard-hero,
  .pending-hero,
  .map-ops-hero,
  .route-plan-hero {
    padding: 15px !important;
  }

  .executive-hero h2,
  .dashboard-hero h2,
  .pending-hero h2,
  .map-ops-hero h2,
  .route-plan-hero h2 {
    font-size: 22px !important;
  }

  .circle-kpi-card {
    min-height: 170px !important;
  }
}
/* evolutiva-correcao-definitiva-promotores-modelo-c */
/* ====================================================
CORREÇÃO DEFINITIVA - SELEÇÃO DE PROMOTORES MODELO C
==================================================== */

.mc-promoters-scroll {
  max-height: 560px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  padding-right: 8px !important;
}

.mc-promoter-item {
  position: relative !important;
  display: grid !important;
  grid-template-columns: 44px minmax(0, 1fr) 22px !important;
  align-items: center !important;
  gap: 10px !important;
  width: 100% !important;
  min-height: 82px !important;
  height: auto !important;
  padding: 10px 12px !important;
  margin: 0 0 8px 0 !important;
  border-radius: 16px !important;
  border: 1px solid #dbe5f3 !important;
  background: #ffffff !important;
  color: #0f172a !important;
  text-align: left !important;
  cursor: pointer !important;
  overflow: hidden !important;
  box-shadow: none !important;
  z-index: 1 !important;
}

.mc-promoter-item:hover,
.mc-promoter-item.active {
  border-color: #2563eb !important;
  background: #f8fbff !important;
  box-shadow: 0 0 0 3px rgba(37,99,235,.10) !important;
}

.mc-promoter-avatar {
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  border-radius: 999px !important;
  font-size: 15px !important;
  line-height: 1 !important;
  z-index: 2 !important;
}

.mc-promoter-main {
  min-width: 0 !important;
  overflow: hidden !important;
  z-index: 2 !important;
}

.mc-promoter-name {
  font-size: 15px !important;
  line-height: 1.15 !important;
  margin: 0 0 5px 0 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.mc-promoter-sub {
  font-size: 11px !important;
  line-height: 1.2 !important;
  margin: 0 0 6px 0 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.mc-promoter-metrics-row {
  display: flex !important;
  gap: 8px !important;
  flex-wrap: nowrap !important;
  font-size: 10px !important;
  line-height: 1.1 !important;
  margin: 0 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
}

.mc-promoter-metrics-row span {
  display: inline-block !important;
  max-width: 78px !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.mc-promoter-chevron {
  font-size: 20px !important;
  color: #94a3b8 !important;
  justify-self: end !important;
  align-self: center !important;
  z-index: 2 !important;
  pointer-events: none !important;
}

.mc-promoter-item * {
  pointer-events: none !important;
}

.mc-promoter-item {
  pointer-events: auto !important;
}

.mc-card.mc-board-card {
  scroll-margin-top: 115px !important;
}
/* evolutiva-roteiro-acoes-duplicidade */
/* ====================================================
ROTEIRO - APAGAR TUDO + VERIFICAR DUPLICIDADE
==================================================== */
.mc-week-nav {
  grid-template-columns: 1fr 40px 40px !important;
  gap: 8px !important;
  align-items: center !important;
}

.route-tool-btn {
  width: 40px !important;
  height: 40px !important;
  min-height: 40px !important;
  padding: 0 !important;
  border-radius: 14px !important;
  background: #ffffff !important;
  color: #1d4ed8 !important;
  border: 1px solid #bfdbfe !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 18px !important;
  line-height: 1 !important;
  position: relative !important;
  cursor: pointer !important;
  box-shadow: 0 6px 14px rgba(15, 23, 42, .04) !important;
}

.route-tool-btn:hover {
  background: #eff6ff !important;
  border-color: #2563eb !important;
  color: #1e40af !important;
}

.route-tool-btn.danger {
  color: #dc2626 !important;
  border-color: #fecaca !important;
}

.route-tool-btn.danger:hover {
  background: #fef2f2 !important;
  border-color: #ef4444 !important;
}

.route-tool-btn::after {
  content: attr(data-tip);
  position: absolute;
  left: 50%;
  top: calc(100% + 8px);
  transform: translateX(-50%);
  background: #0f172a;
  color: #ffffff;
  font-size: 10px;
  font-weight: 800;
  line-height: 1.15;
  padding: 7px 8px;
  border-radius: 9px;
  min-width: 86px;
  white-space: normal;
  text-align: center;
  opacity: 0;
  pointer-events: none;
  z-index: 50;
  box-shadow: 0 10px 22px rgba(15, 23, 42, .22);
}

.route-tool-btn:hover::after {
  opacity: 1;
}

.route-modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 9998;
  background: rgba(15, 23, 42, .42);
  backdrop-filter: blur(5px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
}

.route-modal-card {
  width: min(760px, 96vw);
  background: #ffffff;
  border: 1px solid #dbeafe;
  border-radius: 26px;
  box-shadow: 0 24px 70px rgba(15, 23, 42, .28);
  padding: 22px;
  color: #0f172a;
}

.route-modal-card.small {
  width: min(520px, 94vw);
}

.route-modal-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 14px;
}

.route-modal-title {
  display: flex;
  align-items: center;
  gap: 12px;
}

.route-modal-icon {
  width: 42px;
  height: 42px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #eff6ff;
  color: #1d4ed8;
  border: 1px solid #bfdbfe;
  font-size: 22px;
  flex: 0 0 auto;
}

.route-modal-title h3 {
  margin: 0;
  font-size: 22px;
  color: #0f172a;
}

.route-modal-title p {
  margin: 5px 0 0 0;
  color: #64748b;
  font-size: 14px;
  line-height: 1.35;
}

.route-modal-close {
  width: 38px !important;
  min-height: 38px !important;
  border-radius: 12px !important;
  background: #ffffff !important;
  color: #64748b !important;
  border: 1px solid #e2e8f0 !important;
  padding: 0 !important;
  font-size: 22px !important;
}

.route-duplicate-options {
  display: grid;
  grid-template-columns: repeat(3, minmax(160px, 1fr));
  gap: 12px;
  margin-top: 18px;
}

.route-duplicate-option {
  border: 1px solid #e2e8f0;
  background: #ffffff;
  border-radius: 18px;
  padding: 16px;
  text-align: center;
  cursor: pointer;
  min-height: 146px;
  color: #0f172a;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
  position: relative;
}

.route-duplicate-option:hover,
.route-duplicate-option.active {
  border-color: #2563eb;
  background: #f8fbff;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, .10);
}

.route-option-radio {
  position: absolute;
  top: 12px;
  left: 12px;
  width: 18px;
  height: 18px;
  border-radius: 999px;
  border: 2px solid #cbd5e1;
  background: #fff;
}

.route-duplicate-option.active .route-option-radio {
  border-color: #2563eb;
  box-shadow: inset 0 0 0 4px #ffffff;
  background: #2563eb;
}

.route-option-icon {
  color: #1d4ed8;
  font-size: 28px;
  font-weight: 900;
}

.route-duplicate-option b {
  display: block;
  font-size: 14px;
}

.route-duplicate-option span {
  display: block;
  color: #64748b;
  font-size: 12px;
  line-height: 1.35;
}

.route-confirm-box {
  margin-top: 16px;
  border: 1px solid #fed7aa;
  background: #fff7ed;
  border-radius: 18px;
  padding: 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
}

.route-confirm-question {
  display: flex;
  align-items: center;
  gap: 12px;
  color: #0f172a;
  font-size: 16px;
  font-weight: 900;
}

.route-confirm-question .warn {
  color: #f59e0b;
  font-size: 24px;
}

.route-confirm-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.route-confirm-actions button {
  min-width: 120px;
}

.route-duplicates-list {
  max-height: 360px;
  overflow: auto;
  margin-top: 14px;
  border: 1px solid #e2e8f0;
  border-radius: 18px;
  background: #f8fafc;
  padding: 10px;
}

.route-duplicate-row {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  padding: 12px;
  margin-bottom: 8px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  align-items: center;
}

.route-duplicate-row:last-child {
  margin-bottom: 0;
}

.route-duplicate-row b {
  color: #0f172a;
}

.route-duplicate-row .small {
  color: #64748b;
}

@media (max-width: 760px) {
  .route-duplicate-options {
    grid-template-columns: 1fr;
  }

  .route-confirm-box {
    align-items: stretch;
  }

  .route-confirm-actions,
  .route-confirm-actions button {
    width: 100%;
  }
}
/* evolutiva-menu-topo-revisado-compacto */
/* ====================================================
MENU SUPERIOR REVISADO
- Recolhido por padrão
- Abre ao clicar em Menu
- Recolhe novamente ao rolar
==================================================== */

body.evo-menu-compacto .tabs {
  border-radius: 18px !important;
  margin-bottom: 10px !important;
  padding-bottom: 8px !important;
  box-shadow: 0 8px 22px rgba(15,23,42,.10) !important;
}

body.evo-menu-compacto .tabs .tabs-active-badge,
body.evo-menu-compacto .tabs .tabs-scroll,
body.evo-menu-compacto .tabs .tabs-groups {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  max-height: 0 !important;
  overflow: hidden !important;
  padding: 0 !important;
  margin: 0 !important;
}

body.evo-menu-compacto .tabs .tabs-header {
  border-bottom: 0 !important;
  padding-bottom: 10px !important;
}

body.evo-menu-compacto .tabs .tabs-toggle-btn::before {
  content: "▼ " !important;
}

body.evo-menu-expandido .tabs .tabs-toggle-btn::before {
  content: "▲ " !important;
}

body.evo-menu-expandido .tabs .tabs-active-badge {
  display: inline-flex !important;
  visibility: visible !important;
  height: auto !important;
  max-height: none !important;
}

body.evo-menu-expandido .tabs .tabs-scroll {
  display: block !important;
  visibility: visible !important;
  height: auto !important;
  max-height: 70vh !important;
  overflow: auto !important;
}

body.evo-menu-expandido .tabs .tabs-groups {
  display: grid !important;
  visibility: visible !important;
  height: auto !important;
  max-height: none !important;
}

/* Cancela efeitos antigos do collapsed lateral no menu superior */
body.evo-menu-compacto .tabs.collapsed,
body.evo-menu-expandido .tabs.collapsed {
  width: 100% !important;
  max-width: 1440px !important;
}

body.evo-menu-expandido .tabs.collapsed .tabs-title-area,
body.evo-menu-expandido .tabs.collapsed .tabs-active-badge,
body.evo-menu-expandido .tabs.collapsed .tabs-section-title span:not(.tabs-section-icon),
body.evo-menu-expandido .tabs.collapsed .nav-text,
body.evo-menu-expandido .tabs.collapsed .nav-count {
  display: initial !important;
}

body.evo-menu-expandido .tabs.collapsed .tabs-scroll {
  display: block !important;
}

body.evo-menu-expandido .tabs.collapsed .tabs-groups {
  display: grid !important;
}
/* evolutiva-menu-dropdown-estavel-v5 */
/* ====================================================
MENU SUPERIOR ESTÁVEL V5
Solução final: compacto por padrão, abre por clique, fecha por opção/click fora/ESC.
Não depende de scroll, wheel ou touchmove.
==================================================== */

body.evo-menu-fechado .tabs .tabs-active-badge,
body.evo-menu-fechado .tabs .tabs-scroll,
body.evo-menu-fechado .tabs .tabs-groups {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  max-height: 0 !important;
  overflow: hidden !important;
  padding: 0 !important;
  margin: 0 !important;
}

.tabs {
  position: relative !important;
  overflow: visible !important;
  z-index: 2000 !important;
}

body.evo-menu-fechado .tabs {
  border-radius: 18px !important;
  margin-bottom: 12px !important;
  padding-bottom: 8px !important;
  box-shadow: 0 8px 22px rgba(15, 23, 42, .10) !important;
}

body.evo-menu-fechado .tabs .tabs-header {
  border-bottom: 0 !important;
}

body.evo-menu-fechado .tabs .tabs-toggle-btn::before {
  content: "▼ " !important;
}

body.evo-menu-aberto .tabs .tabs-toggle-btn::before {
  content: "▲ " !important;
}

.tabs .tabs-toggle-btn {
  width: auto !important;
  min-width: 130px !important;
  height: 46px !important;
  padding: 0 18px !important;
  border-radius: 16px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  font-size: 15px !important;
  font-weight: 900 !important;
}

body.evo-menu-aberto .tabs {
  border-radius: 18px !important;
  overflow: visible !important;
  margin-bottom: 12px !important;
}

body.evo-menu-aberto .tabs .tabs-active-badge {
  display: inline-flex !important;
  visibility: visible !important;
  height: auto !important;
  max-height: none !important;
  margin: 0 18px 0 18px !important;
}

body.evo-menu-aberto .tabs .tabs-scroll {
  display: block !important;
  visibility: visible !important;
  position: absolute !important;
  top: calc(100% + 10px) !important;
  left: 18px !important;
  right: 18px !important;
  height: auto !important;
  max-height: min(72vh, 620px) !important;
  overflow: auto !important;
  padding: 18px !important;
  margin: 0 !important;
  border: 1px solid #dbeafe !important;
  border-radius: 24px !important;
  background: rgba(255, 255, 255, .98) !important;
  backdrop-filter: blur(12px) !important;
  box-shadow: 0 24px 60px rgba(15, 23, 42, .22) !important;
  z-index: 2200 !important;
}

body.evo-menu-aberto .tabs .tabs-groups {
  display: grid !important;
  visibility: visible !important;
  height: auto !important;
  max-height: none !important;
  grid-template-columns: repeat(5, minmax(180px, 1fr)) !important;
  gap: 14px !important;
}

body.evo-menu-aberto .tabs .tabs-section {
  background: #f8fafc !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 18px !important;
  padding: 14px !important;
}

body.evo-menu-aberto .tabs .tabs-section-buttons {
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
}

body.evo-menu-aberto .tabs .nav-pill {
  width: 100% !important;
  justify-content: flex-start !important;
}

body.evo-menu-fechado .tabs.collapsed,
body.evo-menu-aberto .tabs.collapsed {
  width: 100% !important;
  max-width: 1440px !important;
}

body.evo-menu-aberto .tabs.collapsed .tabs-title-area,
body.evo-menu-aberto .tabs.collapsed .tabs-active-badge,
body.evo-menu-aberto .tabs.collapsed .tabs-section-title span:not(.tabs-section-icon),
body.evo-menu-aberto .tabs.collapsed .nav-text,
body.evo-menu-aberto .tabs.collapsed .nav-count {
  display: initial !important;
}

body.evo-menu-aberto .tabs.collapsed .tabs-scroll {
  display: block !important;
}

body.evo-menu-aberto .tabs.collapsed .tabs-groups {
  display: grid !important;
}

.evo-menu-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, .18);
  z-index: 1900;
  backdrop-filter: blur(2px);
}

@media (max-width: 1100px) {
  body.evo-menu-aberto .tabs .tabs-groups {
    grid-template-columns: repeat(2, minmax(170px, 1fr)) !important;
  }
}

@media (max-width: 640px) {
  .tabs .tabs-toggle-btn {
    min-width: 104px !important;
    padding: 0 12px !important;
  }

  body.evo-menu-aberto .tabs .tabs-scroll {
    left: 8px !important;
    right: 8px !important;
    max-height: 76vh !important;
    padding: 12px !important;
  }

  body.evo-menu-aberto .tabs .tabs-groups {
    grid-template-columns: 1fr !important;
  }
}
/* evolutiva-menu-dropdown-estavel-v6 */
/* MENU ESTÁVEL V6 - correção do clique duplo/override final */
body.evo-menu-fechado .tabs .tabs-active-badge,
body.evo-menu-fechado .tabs .tabs-scroll,
body.evo-menu-fechado .tabs .tabs-groups {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  max-height: 0 !important;
  overflow: hidden !important;
  padding: 0 !important;
  margin: 0 !important;
}

body.evo-menu-fechado .tabs {
  border-radius: 18px !important;
  margin-bottom: 12px !important;
  padding-bottom: 8px !important;
  overflow: hidden !important;
}

body.evo-menu-fechado .tabs .tabs-header {
  border-bottom: 0 !important;
}

body.evo-menu-fechado .tabs .tabs-toggle-btn::before {
  content: "▼ " !important;
}

body.evo-menu-aberto .tabs .tabs-toggle-btn::before {
  content: "▲ " !important;
}

body.evo-menu-aberto .tabs {
  position: relative !important;
  overflow: visible !important;
  z-index: 50 !important;
  border-radius: 18px !important;
  margin-bottom: 18px !important;
}

body.evo-menu-aberto .tabs .tabs-active-badge {
  display: inline-flex !important;
  visibility: visible !important;
  height: auto !important;
  max-height: none !important;
  margin: 0 18px 12px 18px !important;
}

body.evo-menu-aberto .tabs .tabs-scroll {
  display: block !important;
  visibility: visible !important;
  position: static !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  padding: 14px 18px 18px 18px !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.evo-menu-aberto .tabs .tabs-groups {
  display: grid !important;
  visibility: visible !important;
  height: auto !important;
  max-height: none !important;
  grid-template-columns: repeat(5, minmax(180px, 1fr)) !important;
  gap: 14px !important;
}

body.evo-menu-aberto .tabs .tabs-section {
  background: #f8fafc !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 18px !important;
  padding: 14px !important;
}

body.evo-menu-aberto .tabs .tabs-section-buttons {
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
}

body.evo-menu-aberto .tabs .nav-pill {
  width: 100% !important;
  justify-content: flex-start !important;
}

.tabs .tabs-toggle-btn {
  width: auto !important;
  min-width: 130px !important;
  height: 46px !important;
  padding: 0 18px !important;
  border-radius: 16px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  font-size: 15px !important;
  font-weight: 900 !important;
}

body.evo-menu-fechado .tabs.collapsed,
body.evo-menu-aberto .tabs.collapsed {
  width: 100% !important;
  max-width: 1440px !important;
}

body.evo-menu-aberto .tabs.collapsed .tabs-title-area,
body.evo-menu-aberto .tabs.collapsed .tabs-active-badge,
body.evo-menu-aberto .tabs.collapsed .tabs-section-title span:not(.tabs-section-icon),
body.evo-menu-aberto .tabs.collapsed .nav-text,
body.evo-menu-aberto .tabs.collapsed .nav-count {
  display: initial !important;
}

body.evo-menu-aberto .tabs.collapsed .tabs-scroll { display: block !important; }
body.evo-menu-aberto .tabs.collapsed .tabs-groups { display: grid !important; }

.evo-menu-backdrop { display: none !important; }

@media (max-width: 1100px) {
  body.evo-menu-aberto .tabs .tabs-groups {
    grid-template-columns: repeat(2, minmax(170px, 1fr)) !important;
  }
}

@media (max-width: 640px) {
  body.evo-menu-aberto .tabs .tabs-groups { grid-template-columns: 1fr !important; }
  .tabs .tabs-toggle-btn { min-width: 104px !important; padding: 0 12px !important; }
}
/* evolutiva-menu-compacto-profissional-v7 */
/* ====================================================
MENU COMPACTO PROFISSIONAL V7
Topo limpo + painel suspenso pequeno. Sem rolagem automática.
==================================================== */

.evo-topbar {
  position: relative;
  z-index: 2600;
  max-width: 1440px;
  margin: 0 auto 14px auto;
  background: rgba(255,255,255,.98);
  border: 1px solid #dbeafe;
  border-top: 5px solid #2563eb;
  border-radius: 18px;
  box-shadow: 0 12px 30px rgba(15,23,42,.10);
  padding: 14px 18px;
}

.evo-topbar-main {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.evo-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.evo-brand-icon {
  width: 46px;
  height: 46px;
  border-radius: 15px;
  background: linear-gradient(135deg, #2563eb, #0f172a);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  font-size: 22px;
  flex: 0 0 auto;
  box-shadow: 0 10px 22px rgba(37,99,235,.22);
}

.evo-brand-kicker {
  color: #2563eb;
  font-size: 12px;
  text-transform: uppercase;
  font-weight: 900;
  letter-spacing: .08em;
  line-height: 1;
}

.evo-brand-title {
  color: #0f172a;
  font-size: 17px;
  font-weight: 900;
  margin-top: 4px;
  line-height: 1.1;
}

.evo-brand-subtitle {
  color: #64748b;
  font-size: 12px;
  margin-top: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 720px;
}

.evo-menu-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.evo-current-area {
  background: #eef4ff;
  color: #1d4ed8;
  border: 1px solid #dbeafe;
  border-radius: 999px;
  padding: 9px 12px;
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}

.evo-menu-btn {
  width: auto !important;
  min-width: 124px !important;
  margin: 0 !important;
  padding: 12px 18px !important;
  border-radius: 16px !important;
  background: #2563eb !important;
  color: #fff !important;
  font-weight: 900 !important;
  border: 0 !important;
  box-shadow: 0 10px 22px rgba(37,99,235,.22) !important;
}

.evo-menu-btn::before {
  content: "☰ ";
}

body.evo-menu-open .evo-menu-btn::before {
  content: "▲ ";
}

.evo-menu-panel {
  display: none;
  position: absolute;
  top: calc(100% + 10px);
  left: 18px;
  right: 18px;
  z-index: 2700;
  background: rgba(255,255,255,.99);
  border: 1px solid #dbeafe;
  border-radius: 22px;
  box-shadow: 0 24px 65px rgba(15,23,42,.24);
  padding: 16px;
  max-height: 70vh;
  overflow: auto;
}

body.evo-menu-open .evo-menu-panel {
  display: block;
}

.evo-menu-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 12px;
}

.evo-menu-section {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 18px;
  padding: 12px;
  min-height: auto;
}

.evo-menu-section-title {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #64748b;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .07em;
  margin-bottom: 8px;
}

.evo-menu-section-icon {
  width: 28px;
  height: 28px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #eff6ff;
  color: #1d4ed8;
}

.evo-menu-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.evo-menu-item {
  width: 100% !important;
  margin: 0 !important;
  border: 1px solid transparent !important;
  background: #fff !important;
  color: #334155 !important;
  border-radius: 13px !important;
  padding: 9px 10px !important;
  min-height: 38px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 8px !important;
  box-shadow: none !important;
  font-size: 13px !important;
  font-weight: 850 !important;
  text-align: left !important;
}

.evo-menu-item:hover {
  background: #eff6ff !important;
  color: #1d4ed8 !important;
  border-color: #bfdbfe !important;
  transform: translateX(2px);
}

.evo-menu-item.active {
  background: #2563eb !important;
  color: #fff !important;
  box-shadow: 0 10px 22px rgba(37,99,235,.20) !important;
}

.evo-menu-count {
  margin-left: auto;
  background: #fee2e2;
  color: #991b1b;
  border-radius: 999px;
  padding: 2px 8px;
  font-size: 11px;
  font-weight: 900;
}

.evo-menu-backdrop-v7 {
  position: fixed;
  inset: 0;
  z-index: 2500;
  background: rgba(15,23,42,.18);
  backdrop-filter: blur(2px);
}

@media (max-width: 1100px) {
  .evo-menu-grid {
    grid-template-columns: repeat(2, minmax(160px, 1fr));
  }

  .evo-brand-subtitle {
    max-width: 420px;
  }
}

@media (max-width: 680px) {
  .evo-topbar {
    padding: 12px;
    border-radius: 16px;
  }

  .evo-topbar-main {
    align-items: flex-start;
  }

  .evo-brand-subtitle,
  .evo-current-area {
    display: none;
  }

  .evo-brand-title {
    font-size: 15px;
  }

  .evo-menu-btn {
    min-width: 96px !important;
    padding: 11px 12px !important;
  }

  .evo-menu-panel {
    left: 8px;
    right: 8px;
    padding: 12px;
  }

  .evo-menu-grid {
    grid-template-columns: 1fr;
  }
}
/* evolutiva-cliente-sem-valores-v7 */
.client-contract-visual-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin: 14px 0;
}
.client-contract-box {
  background: #fff;
  border: 1px solid #dbeafe;
  border-radius: 22px;
  padding: 18px;
  box-shadow: 0 12px 28px rgba(15,23,42,.08);
}
.client-contract-box.promoters {
  grid-column: 1 / -1;
}
.client-contract-box.done {
  border-left: 6px solid #16a34a;
}
.client-contract-box.pending {
  border-left: 6px solid #d97706;
}
.client-contract-box.promoters {
  border-left: 6px solid #2563eb;
}
.client-bubble-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.client-bubble {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  color: #1e3a8a;
  border-radius: 999px;
  padding: 8px 12px;
  font-weight: 850;
  font-size: 13px;
}
.client-bubble small {
  color: #64748b;
  font-weight: 700;
}
@media(max-width: 780px) {
  .client-contract-visual-grid {
    grid-template-columns: 1fr;
  }
  .client-contract-box.promoters {
    grid-column: auto;
  }
}
/* evolutiva-menu-definitivo-v8 */
/* ====================================================
MENU DEFINITIVO V8
Correção final: sem dependência de script antigo, sem .tabs,
sem scroll automático e sem conflito de classes.
==================================================== */

.evo-topbar {
  position: relative !important;
  z-index: 5000 !important;
  overflow: visible !important;
}

.evo-menu-actions {
  position: relative !important;
  z-index: 5300 !important;
}

.evo-menu-btn,
.evo-current-area {
  position: relative !important;
  z-index: 5400 !important;
  pointer-events: auto !important;
  cursor: pointer !important;
  user-select: none !important;
}

.evo-current-area {
  border: 1px solid #dbeafe !important;
  background: #eef4ff !important;
  color: #1d4ed8 !important;
  border-radius: 999px !important;
  padding: 9px 12px !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  white-space: nowrap !important;
  font-family: inherit !important;
}

.evo-menu-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  min-width: 124px !important;
  min-height: 48px !important;
  border: 0 !important;
  border-radius: 16px !important;
  padding: 12px 18px !important;
  background: #2563eb !important;
  color: #fff !important;
  font-weight: 900 !important;
  box-shadow: 0 10px 22px rgba(37,99,235,.22) !important;
  font-family: inherit !important;
}

.evo-menu-btn:hover {
  filter: brightness(.97);
  transform: translateY(-1px);
}

.evo-menu-btn:active {
  transform: translateY(0);
}

.evo-menu-btn::before {
  content: "☰ ";
}

body.evo-menu-open .evo-menu-btn::before {
  content: "▲ ";
}

.evo-menu-panel {
  display: none !important;
  position: absolute !important;
  top: calc(100% + 10px) !important;
  left: 18px !important;
  right: 18px !important;
  z-index: 5500 !important;
  background: rgba(255,255,255,.99) !important;
  border: 1px solid #dbeafe !important;
  border-radius: 22px !important;
  box-shadow: 0 24px 65px rgba(15,23,42,.24) !important;
  padding: 16px !important;
  max-height: 70vh !important;
  overflow: auto !important;
  pointer-events: auto !important;
}

body.evo-menu-open .evo-menu-panel {
  display: block !important;
}

.evo-menu-backdrop-v8 {
  position: fixed !important;
  inset: 0 !important;
  z-index: 4900 !important;
  background: rgba(15,23,42,.16) !important;
  backdrop-filter: blur(2px) !important;
  pointer-events: auto !important;
}

.evo-menu-item {
  cursor: pointer !important;
  pointer-events: auto !important;
}

@media (max-width: 680px) {
  .evo-current-area {
    display: none !important;
  }

  .evo-menu-btn {
    min-width: 104px !important;
    padding: 11px 14px !important;
  }

  .evo-menu-panel {
    left: 8px !important;
    right: 8px !important;
    padding: 12px !important;
  }
}
/* evolutiva-menu-rolagem-secoes-v9 */
/* ====================================================
MENU PROFISSIONAL V9
Resolve menu extenso com rolagem interna por coluna.
Cada grupo do menu tem sua própria barra de rolagem.
==================================================== */

body.evo-menu-open .evo-menu-panel {
  max-height: min(78vh, 720px) !important;
  overflow: hidden !important;
  padding: 14px !important;
}

body.evo-menu-open .evo-menu-grid {
  align-items: start !important;
  max-height: min(70vh, 650px) !important;
}

body.evo-menu-open .evo-menu-section {
  height: auto !important;
  max-height: min(66vh, 590px) !important;
  min-height: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
  padding: 12px !important;
  background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%) !important;
}

body.evo-menu-open .evo-menu-section-title {
  flex: 0 0 auto !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 2 !important;
  background: linear-gradient(180deg, #f8fafc 0%, #f8fafc 82%, rgba(248,250,252,.92) 100%) !important;
  padding: 2px 0 9px 0 !important;
  margin-bottom: 7px !important;
  border-bottom: 1px solid #e2e8f0 !important;
}

body.evo-menu-open .evo-menu-list {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  padding-right: 6px !important;
  scrollbar-width: thin !important;
  scrollbar-color: #cbd5e1 transparent !important;
}

body.evo-menu-open .evo-menu-list::-webkit-scrollbar {
  width: 7px !important;
}

body.evo-menu-open .evo-menu-list::-webkit-scrollbar-track {
  background: transparent !important;
}

body.evo-menu-open .evo-menu-list::-webkit-scrollbar-thumb {
  background: #cbd5e1 !important;
  border-radius: 999px !important;
}

body.evo-menu-open .evo-menu-list::-webkit-scrollbar-thumb:hover {
  background: #94a3b8 !important;
}

body.evo-menu-open .evo-menu-item {
  min-height: 37px !important;
  padding: 8px 10px !important;
  border-radius: 12px !important;
  flex: 0 0 auto !important;
}

body.evo-menu-open .evo-menu-count {
  flex: 0 0 auto !important;
}

/* Em telas grandes, colunas proporcionais - a quantidade se ajusta ao numero
   de grupos do menu, sem precisar mexer aqui quando um grupo for criado. */
@media (min-width: 1180px) {
  body.evo-menu-open .evo-menu-grid {
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)) !important;
  }
}

/* Em notebooks menores, evita colunas apertadas. */
@media (max-width: 1179px) {
  body.evo-menu-open .evo-menu-panel {
    overflow: auto !important;
  }

  body.evo-menu-open .evo-menu-grid {
    grid-template-columns: repeat(2, minmax(220px, 1fr)) !important;
    max-height: none !important;
  }

  body.evo-menu-open .evo-menu-section {
    height: auto !important;
    max-height: min(48vh, 420px) !important;
  }
}

/* No celular, cada grupo vira um bloco com rolagem menor. */
@media (max-width: 680px) {
  body.evo-menu-open .evo-menu-panel {
    max-height: 78vh !important;
    overflow: auto !important;
  }

  body.evo-menu-open .evo-menu-grid {
    grid-template-columns: 1fr !important;
  }

  body.evo-menu-open .evo-menu-section {
    height: auto !important;
    max-height: 330px !important;
  }

  body.evo-menu-open .evo-menu-list {
    max-height: 255px !important;
  }
}
/* evolutiva-menu-sidebar-v10 */
/* ====================================================
MENU PROFISSIONAL V10 - SIDEBAR FIXA (DESKTOP)
Abaixo de 1180px nada muda: continua o painel flutuante de sempre
(v7/v8/v9 acima), aberto pelo botao "Menu". A partir de 1180px, o mesmo
painel (.evo-menu-panel, dentro de .evo-topbar) vira uma coluna fixa a
esquerda, sempre visivel, com os grupos abrindo/fechando (.evo-menu-section
+ .open, alternado por evoMenuAlternarGrupo em index.html). O toggle de
abrir/fechar deixa de fazer sentido com o menu sempre visivel, por isso
.evo-menu-actions some nessa largura. Os 5 paineis que chamam
renderMenuProfissional() (Mestre, Diretor, Coordenador, Supervisor,
Cliente) embrulham o proprio retorno dela + o conteudo da aba num
".evo-app-shell", que vira flex row so nesta largura - fora dela e um
<div> comum, empilhado, igual sempre foi.
==================================================== */

.evo-menu-section-chevron {
  display: none;
  margin-left: auto;
  font-size: 9px;
  color: #c7cce6;
  transition: transform .18s ease;
}

/* So faz sentido ter algo pra recolher quando o menu ja e uma sidebar fixa
   (>=1180px) - no painel flutuante do celular isso ficaria um botao extra
   sem função, por isso escondido por padrão aqui. */
.evo-sidebar-toggle {
  display: none;
}

@media (min-width: 1180px) {
  .evo-app-shell {
    display: flex !important;
    align-items: flex-start !important;
    gap: 20px !important;
  }

  .evo-app-shell > .evo-content-col {
    flex: 1 1 auto;
    min-width: 0;
  }

  /* .evo-topbar vira a propria coluna da sidebar - ja embrulha a marca
     (.evo-topbar-main) e os grupos (.evo-menu-panel) hoje, entao nao
     precisa de um container novo. position:sticky!important porque o
     "PATCH FINAL" mais abaixo no arquivo redeclara position:relative
     sem !important nessa mesma classe. */
  .evo-topbar {
    flex: 0 0 272px !important;
    width: 272px !important;
    max-width: 272px !important;
    position: sticky !important;
    top: 14px !important;
    align-self: flex-start !important;
    max-height: calc(100vh - 28px) !important;
    overflow-y: auto !important;
    display: flex !important;
    flex-direction: column !important;
  }

  /* Modo limpo (evolutiva-clean-ui.js) deixa o <header> tambem sticky
     (evolutiva-theme.css: ".evo-clean-ui header { position: sticky; top: 0 }").
     Sem este ajuste, ao rolar a pagina o topo da sidebar (sticky, top:14px,
     medido para um <header> normal que rola junto) ficava por baixo do
     cabecalho - que continua fixo no topo so no modo limpo - sobrepondo os
     dois (reportado pelo usuario em 27/09/2026, com print mostrando o menu
     recolhido por cima do titulo "Evolutiva Visitas"). --evo-header-clean-altura
     e medida ao vivo pelo proprio evolutiva-clean-ui.js (ResizeObserver no
     <header>), entao acompanha qualquer mudanca de altura do cabecalho sem
     precisar de numero fixo aqui. */
  .evo-clean-ui .evo-app-shell .evo-topbar {
    top: calc(var(--evo-header-clean-altura, 96px) + 14px) !important;
    max-height: calc(100vh - var(--evo-header-clean-altura, 96px) - 28px) !important;
  }

  .evo-topbar-main {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 12px !important;
    padding-bottom: 14px;
    margin-bottom: 6px;
    border-bottom: 1px solid var(--evo-border, #e3e6f3);
  }

  .evo-brand-subtitle {
    white-space: normal !important;
    max-width: none !important;
  }

  .evo-menu-actions {
    display: none !important;
  }

  /* .evo-menu-panel e .evo-menu-section: evolutiva-theme.css (carrega DEPOIS
     deste bloco, link no <head> ~linha 12933) forca background/border com
     !important nas duas - sem o prefixo ".evo-app-shell" (empate de
     especificidade, ordem decide) a secao aparecia com fundo quase-branco
     por cima do degrade. So nao dava pra notar antes do degrade existir,
     porque branco sobre branco e igual. */
  .evo-app-shell .evo-menu-panel {
    display: block !important;
    position: static !important;
    box-shadow: none !important;
    border: 0 !important;
    padding: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    background: transparent !important;
  }

  .evo-menu-grid {
    display: block !important;
  }

  .evo-app-shell .evo-menu-section {
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    height: auto !important;
    max-height: none !important;
  }

  .evo-menu-section + .evo-menu-section {
    margin-top: 2px;
  }

  .evo-menu-section-title {
    cursor: pointer;
    width: 100%;
    background: transparent;
    border: 0;
    font-family: inherit;
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 9px 8px;
    border-radius: 9px;
  }

  .evo-menu-section-chevron {
    display: inline-block;
  }

  .evo-menu-section.open .evo-menu-section-chevron {
    transform: rotate(90deg);
  }

  .evo-menu-list {
    display: none !important;
    padding: 2px 0 8px !important;
  }

  .evo-menu-section.open .evo-menu-list {
    display: flex !important;
  }

  /* .evo-menu-item: mesmo motivo do .evo-menu-section acima - o "border"
     (shorthand, apaga border-left junto) e o "border-radius" de
     evolutiva-theme.css tambem tem !important nessa classe. */
  .evo-app-shell .evo-menu-item {
    padding-left: 27px !important;
    border-left: 3px solid transparent !important;
    border-radius: 9px !important;
  }

  /* ====================================================
  Degrade animado da sidebar + item ativo como barra lateral discreta
  (em vez da pilula cheia que evolutiva-theme.css usa no painel flutuante
  do celular) + recolher/expandir. Tudo daqui pra baixo usa o prefixo
  ".evo-app-shell" pelo mesmo motivo dos blocos acima: ganhar de
  evolutiva-theme.css por especificidade, nao por sorte de ordem.
  ==================================================== */
  .evo-app-shell .evo-topbar {
    background: linear-gradient(165deg, #1f2e6b 0%, #6a6fe0 48%, #33449c 100%) !important;
    background-size: 180% 180% !important;
    animation: evoSidebarDegrade 24s ease-in-out infinite alternate;
    border: 0 !important;
    box-shadow: 0 16px 40px rgba(22, 35, 79, .28) !important;
  }

  @media (prefers-reduced-motion: reduce) {
    .evo-app-shell .evo-topbar {
      animation: none !important;
    }
  }

  .evo-app-shell .evo-brand-icon {
    background: rgba(255, 255, 255, .16) !important;
    color: #fff !important;
  }

  .evo-app-shell .evo-brand-kicker {
    color: rgba(255, 255, 255, .68) !important;
  }

  .evo-app-shell .evo-brand-title {
    color: #fff !important;
  }

  .evo-app-shell .evo-brand-subtitle {
    color: rgba(255, 255, 255, .66) !important;
  }

  .evo-app-shell .evo-menu-section-title {
    color: rgba(255, 255, 255, .78) !important;
  }

  .evo-app-shell .evo-menu-section-title:hover {
    background: rgba(255, 255, 255, .10) !important;
    color: #fff !important;
  }

  .evo-app-shell .evo-menu-section-chevron {
    color: rgba(255, 255, 255, .4) !important;
  }

  .evo-app-shell .evo-menu-section.open .evo-menu-section-chevron {
    color: rgba(255, 255, 255, .85) !important;
  }

  .evo-app-shell .evo-menu-item {
    background-color: transparent !important;
    background-image: none !important;
    color: rgba(255, 255, 255, .82) !important;
    border-color: transparent !important;
  }

  .evo-app-shell button.evo-menu-item:hover:not(:disabled) {
    background-color: rgba(255, 255, 255, .10) !important;
    background-image: none !important;
    border-color: transparent !important;
    color: #fff !important;
  }

  .evo-app-shell .evo-menu-item.active {
    background-color: rgba(255, 255, 255, .16) !important;
    background-image: none !important;
    color: #fff !important;
    border-left-color: #fff !important;
  }

  .evo-app-shell .evo-menu-count {
    background: rgba(255, 255, 255, .22) !important;
    color: #fff !important;
  }

  .evo-sidebar-toggle {
    display: flex !important;
    align-items: center;
    gap: 8px;
    width: 100%;
    background: transparent;
    border: 1px solid rgba(255, 255, 255, .18);
    color: rgba(255, 255, 255, .78);
    border-radius: 9px;
    padding: 8px 10px;
    font-size: 12px;
    font-weight: 700;
    font-family: inherit;
    cursor: pointer;
    margin-top: 4px;
  }

  .evo-sidebar-toggle:hover {
    background: rgba(255, 255, 255, .10);
    color: #fff;
  }

  .evo-sidebar-toggle-icon {
    display: inline-block;
    transition: transform .2s ease;
  }

  /* Estado recolhido: sidebar vira uma faixa estreita so com icones -
     clicar num grupo (evoMenuAlternarGrupo, acima) expande de volta. */
  .evo-app-shell .evo-topbar.recolhida {
    flex-basis: 76px !important;
    width: 76px !important;
    max-width: 76px !important;
    padding: 16px 10px !important;
  }

  .evo-topbar.recolhida .evo-brand-text,
  .evo-topbar.recolhida .evo-menu-section-title span:not(.evo-menu-section-icon),
  .evo-topbar.recolhida .evo-menu-section-chevron,
  .evo-topbar.recolhida .evo-sidebar-toggle-label,
  .evo-topbar.recolhida .evo-menu-list {
    display: none !important;
  }

  .evo-topbar.recolhida .evo-brand {
    justify-content: center;
  }

  .evo-topbar.recolhida .evo-menu-section-title {
    justify-content: center;
    padding: 10px 0 !important;
  }

  .evo-topbar.recolhida .evo-sidebar-toggle {
    justify-content: center;
  }

  .evo-topbar.recolhida .evo-sidebar-toggle-icon {
    transform: rotate(180deg);
  }
}

@keyframes evoSidebarDegrade {
  0% { background-position: 0% 15%; }
  100% { background-position: 100% 85%; }
}
/* evolutiva-financeiro-v2-compacto-cliente */
/* ====================================================
FINANCEIRO V2 - VISÃO COMPACTA PROFISSIONAL
Deixa os cartões proporcionais e evita textos gigantes no dashboard do cliente/admin.
==================================================== */
.finance-v2-dashboard .kpi-grid,
.finance-v2-kpis {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)) !important;
  gap: 10px !important;
  align-items: stretch !important;
}

@media (min-width: 1180px) {
  .finance-v2-dashboard .kpi-grid.finance-v2-kpis,
  .finance-v2-kpis {
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  }
}

.finance-v2-dashboard .kpi-card {
  min-height: 132px !important;
  padding: 13px 14px !important;
  border-radius: 18px !important;
  overflow: hidden !important;
}

.finance-v2-dashboard .kpi-label {
  font-size: 10px !important;
  line-height: 1.15 !important;
  letter-spacing: .06em !important;
  margin-bottom: 8px !important;
}

.finance-v2-dashboard .kpi-value {
  font-size: 24px !important;
  line-height: 1.08 !important;
  margin-top: 2px !important;
  word-break: normal !important;
  overflow-wrap: anywhere !important;
}

/* Card "Valor por contrato" sem nenhum contrato importado ainda: e frase,
   nao numero - sem esta classe, o texto herdava o overflow-wrap:anywhere
   acima (pensado pra numero grande nao vazar do card) e "importados"
   quebrava no meio, sobrando so o "s" sozinho numa linha - visual amador,
   relatado pelo usuario com print em 27/09/2026. Fonte menor e mais leve
   tambem cabe melhor num card estreito e combina mais com um aviso de
   "vazio" do que com um valor calculado. Esta regra existe duas vezes no
   arquivo (uma por bloco ".finance-v2-dashboard" duplicado, ja existente
   antes desta correcao) so pra nao depender de qual das duas copias o
   navegador aplica por ultimo. */
.finance-v2-dashboard .kpi-value .finance-v2-kpi-vazio {
  display: block !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  color: #64748b !important;
}

.finance-v2-dashboard .kpi-sub {
  font-size: 11px !important;
  line-height: 1.25 !important;
  margin-top: 8px !important;
}

.finance-v2-contract-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 5px !important;
  max-height: 86px !important;
  overflow-y: auto !important;
  padding-right: 4px !important;
}

.finance-v2-contract-row {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  gap: 8px !important;
  align-items: baseline !important;
  padding-bottom: 4px !important;
  border-bottom: 1px solid #e5e7eb !important;
  font-size: 12px !important;
  line-height: 1.18 !important;
}

.finance-v2-contract-row:last-child {
  border-bottom: 0 !important;
  padding-bottom: 0 !important;
}

.finance-v2-contract-row span {
  min-width: 0 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  color: #0f172a !important;
  font-weight: 900 !important;
}

.finance-v2-contract-row b {
  color: #0f172a !important;
  font-size: 13px !important;
  white-space: nowrap !important;
}

.finance-v2-dashboard .executive-two-columns {
  gap: 12px !important;
}

.finance-v2-dashboard .executive-card {
  border-radius: 18px !important;
  padding: 14px !important;
}

.finance-v2-dashboard .route-plan-card {
  padding: 10px !important;
  border-radius: 14px !important;
}

.finance-v2-dashboard .executive-table th,
.finance-v2-dashboard .executive-table td {
  padding: 9px 8px !important;
  font-size: 12px !important;
}

@media (max-width: 760px) {
  .finance-v2-dashboard .kpi-grid,
  .finance-v2-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .finance-v2-dashboard .kpi-card {
    min-height: 118px !important;
  }
  .finance-v2-dashboard .kpi-value {
    font-size: 20px !important;
  }
}

@media (max-width: 480px) {
  .finance-v2-dashboard .kpi-grid,
  .finance-v2-kpis {
    grid-template-columns: 1fr !important;
  }
}
/* evolutiva-financeiro-v2-lojas-profissional */
/* ====================================================
FINANCEIRO V2 - LOJAS ATENDIDAS X PENDENTES
Etapa: caixas compactas com rolagem interna para visão profissional.
==================================================== */
.finance-v2-store-columns {
  grid-template-columns: minmax(0, 1.25fr) minmax(320px, .95fr) !important;
  gap: 14px !important;
  align-items: stretch !important;
}
.finance-v2-store-card {
  min-height: 420px !important;
  display: flex !important;
  flex-direction: column !important;
}
.finance-v2-store-card .executive-card-header {
  margin-bottom: 10px !important;
}
.finance-v2-store-card .executive-card-header h3 {
  font-size: 18px !important;
  margin-bottom: 3px !important;
}
.finance-v2-store-card .executive-card-header .small {
  margin: 0 !important;
  font-size: 12px !important;
}
.finance-v2-store-panel {
  display: flex;
  flex-direction: column;
  min-height: 0;
  flex: 1;
}
.finance-v2-store-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}
.finance-v2-store-summary > div {
  background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
  border: 1px solid #dbe4ef;
  border-radius: 16px;
  padding: 10px 11px;
  min-width: 0;
  box-shadow: 0 8px 18px rgba(15,23,42,.05);
}
.finance-v2-store-panel.done .finance-v2-store-summary > div {
  border-color: #bbf7d0;
  background: #f0fdf4;
}
.finance-v2-store-panel.pending .finance-v2-store-summary > div {
  border-color: #fde68a;
  background: #fffbeb;
}
.finance-v2-store-summary b {
  display: block;
  color: #0f172a;
  font-size: 15px;
  line-height: 1.1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.finance-v2-store-summary span {
  display: block;
  color: #64748b;
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
  margin-top: 4px;
}
.finance-v2-store-scroll {
  max-height: 460px;
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: 8px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  scrollbar-width: thin;
}
.finance-v2-store-item {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 18px;
  padding: 12px 13px;
  box-shadow: 0 10px 24px rgba(15,23,42,.055);
}
.finance-v2-store-item.done { border-left: 5px solid #16a34a; }
.finance-v2-store-item.pending { border-left: 5px solid #d97706; }
.finance-v2-store-topline {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: start;
}
.finance-v2-store-title {
  color: #0f172a;
  font-weight: 900;
  font-size: 15px;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.finance-v2-status-pill {
  border-radius: 999px;
  padding: 6px 9px;
  font-size: 11px;
  font-weight: 900;
  white-space: nowrap;
  border: 1px solid rgba(15,23,42,.06);
}
.finance-v2-status-pill.done { background: #dcfce7; color: #166534; }
.finance-v2-status-pill.pending { background: #fef9c3; color: #854d0e; }
.finance-v2-store-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 9px;
}
.finance-v2-store-meta span {
  max-width: 100%;
  background: #f8fafc;
  color: #334155;
  border: 1px solid #dbe4ef;
  border-radius: 999px;
  padding: 5px 9px;
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.finance-v2-store-meta span[data-role="responsavel-sem-vinculo"] {
  background: #fff7ed;
  color: #9a3412;
  border-color: #fdba74;
}
.finance-v2-store-progress {
  height: 7px;
  background: #e5e7eb;
  border-radius: 999px;
  overflow: hidden;
  margin: 9px 0 8px 0;
}
.finance-v2-store-progress > div {
  height: 100%;
  background: #16a34a;
  border-radius: 999px;
}
.finance-v2-store-item.pending .finance-v2-store-progress > div {
  background: #d97706;
}
.finance-v2-store-values {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.finance-v2-store-values span {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 7px 8px;
  color: #64748b;
  font-size: 10px;
  font-weight: 800;
  min-width: 0;
}
.finance-v2-store-values b {
  display: block;
  color: #0f172a;
  font-size: 12.5px;
  margin-top: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.finance-v2-empty {
  min-height: 150px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
@media (max-width: 980px) {
  .finance-v2-store-columns {
    grid-template-columns: 1fr !important;
  }
  .finance-v2-store-scroll {
    max-height: 360px;
  }
}
@media (max-width: 560px) {
  .finance-v2-store-summary,
  .finance-v2-store-values {
    grid-template-columns: 1fr !important;
  }
  .finance-v2-store-title {
    white-space: normal;
  }
}
/* evolutiva-financeiro-v2-relatorio-responsavel */
/* ====================================================
FINANCEIRO V2 - RELATÓRIO DETALHADO POR RESPONSÁVEL
Lojas feitas e pendentes para justificativa de desconto.
==================================================== */
.finance-v2-report-section {
  margin-top: 14px;
}
.finance-v2-report-resp-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 20px;
  margin-bottom: 14px;
  overflow: hidden;
  box-shadow: 0 10px 24px rgba(15,23,42,.055);
}
.finance-v2-report-resp-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  padding: 14px;
  background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
  border-bottom: 1px solid #e2e8f0;
}
.finance-v2-report-resp-name {
  color: #0f172a;
  font-size: 16px;
  font-weight: 900;
  line-height: 1.15;
}
.finance-v2-report-resp-sub {
  color: #64748b;
  font-size: 12px;
  margin-top: 4px;
}
.finance-v2-report-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  padding: 6px 9px;
  font-size: 11px;
  font-weight: 900;
  background: #dbeafe;
  color: #1d4ed8;
  white-space: nowrap;
}
.finance-v2-report-badge.done {
  background: #dcfce7;
  color: #166534;
}
.finance-v2-report-badge.pending {
  background: #fef3c7;
  color: #92400e;
}
.finance-v2-report-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  padding: 12px 14px;
  border-bottom: 1px solid #e2e8f0;
}
.finance-v2-report-summary > div {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  padding: 9px 10px;
  min-width: 0;
}
.finance-v2-report-summary span {
  display: block;
  color: #64748b;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.finance-v2-report-summary b {
  display: block;
  color: #0f172a;
  font-size: 14px;
  margin-top: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.finance-v2-report-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: 14px;
}
.finance-v2-report-box {
  border: 1px solid #e2e8f0;
  border-radius: 18px;
  overflow: hidden;
  background: #ffffff;
}
.finance-v2-report-box-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 11px 12px;
  background: #f8fafc;
  border-bottom: 1px solid #e2e8f0;
}
.finance-v2-report-box-head h4 {
  margin: 0;
  color: #0f172a;
  font-size: 14px;
  font-weight: 900;
}
.finance-v2-report-scroll {
  max-height: 280px;
  overflow-y: auto;
  padding: 10px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.finance-v2-report-item {
  border: 1px solid #e2e8f0;
  border-left: 5px solid #16a34a;
  border-radius: 14px;
  padding: 10px;
  background: #ffffff;
}
.finance-v2-report-item.pending {
  border-left-color: #d97706;
  background: linear-gradient(180deg, #ffffff 0%, #fff7ed 100%);
}
.finance-v2-report-title {
  color: #0f172a;
  font-size: 13px;
  font-weight: 900;
  line-height: 1.2;
}
.finance-v2-report-meta {
  color: #64748b;
  font-size: 11px;
  margin-top: 4px;
  line-height: 1.35;
}
.finance-v2-report-values {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  margin-top: 8px;
}
.finance-v2-report-values span {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 6px 7px;
  color: #64748b;
  font-size: 10px;
  font-weight: 800;
  min-width: 0;
}
.finance-v2-report-values b {
  display: block;
  color: #0f172a;
  font-size: 12px;
  margin-top: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.finance-v2-report-note {
  margin: 0 14px 14px 14px;
  border: 1px solid #fed7aa;
  background: #fff7ed;
  color: #9a3412;
  border-radius: 14px;
  padding: 10px 12px;
  font-size: 12px;
  line-height: 1.4;
}
@media (max-width: 900px) {
  .finance-v2-report-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .finance-v2-report-columns {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 560px) {
  .finance-v2-report-summary,
  .finance-v2-report-values {
    grid-template-columns: 1fr;
  }
  .finance-v2-report-resp-head {
    flex-direction: column;
  }
}
/* evolutiva-financeiro-v2-exportacao-responsavel */
/* ====================================================
FINANCEIRO V2 - EXPORTAÇÃO DE RELATÓRIO POR RESPONSÁVEL
Excel e PDF individual para fechamento mensal.
==================================================== */
.finance-v2-report-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
}
.finance-v2-report-actions .btn-mini {
  width: auto;
  min-width: 118px;
  padding: 8px 10px;
  border-radius: 12px;
  font-size: 12px;
  font-weight: 900;
}
.finance-v2-report-actions .btn-excel {
  background: #16a34a;
}
.finance-v2-report-actions .btn-pdf {
  background: #2563eb;
}
.finance-v2-report-main-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
  margin-top: 8px;
}
.finance-v2-report-main-actions button {
  width: auto;
  min-width: 180px;
}
@media (max-width: 720px) {
  .finance-v2-report-resp-head {
    flex-direction: column;
  }
  .finance-v2-report-actions,
  .finance-v2-report-main-actions {
    justify-content: stretch;
    width: 100%;
  }
  .finance-v2-report-actions .btn-mini,
  .finance-v2-report-main-actions button {
    width: 100%;
  }
}
/* evolutiva-roteiro-automatico-financeiro-v2 */
/* ====================================================
ROTEIRO AUTOMÁTICO PELOS CONTRATOS - PROMOTOR/SUPERVISOR
==================================================== */
.finance-v2-route-auto-card {
  border-left: 6px solid #7c3aed !important;
}
.finance-v2-route-auto-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: flex-end;
}
.finance-v2-route-auto-actions > div {
  flex: 1 1 220px;
}
.finance-v2-route-auto-note {
  margin-top: 10px;
  border: 1px solid #ddd6fe;
  background: #f5f3ff;
  color: #4c1d95;
  border-radius: 14px;
  padding: 10px 12px;
  font-size: 12px;
  line-height: 1.4;
}
/* evolutiva-backup-financeiro-roteiro */
/* ====================================================
BACKUP FINANCEIRO / ROTEIRO ANTES DE LIMPEZA
==================================================== */
.backup-financeiro-card {
  border-left: 6px solid #0f766e !important;
}
.backup-financeiro-list {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}
.backup-financeiro-item {
  border: 1px solid #ccfbf1;
  background: #f0fdfa;
  border-radius: 14px;
  padding: 10px 12px;
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: flex-start;
  flex-wrap: wrap;
}
.backup-financeiro-title {
  color: #0f172a;
  font-weight: 900;
  font-size: 13px;
}
.backup-financeiro-meta {
  color: #475569;
  font-size: 12px;
  margin-top: 3px;
  line-height: 1.35;
}
.backup-financeiro-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.backup-financeiro-actions a,
.backup-financeiro-actions button {
  width: auto;
  min-width: 120px;
  padding: 8px 10px;
  border-radius: 12px;
  font-size: 12px;
  text-decoration: none;
  text-align: center;
}
.backup-financeiro-warning {
  border-color: #fed7aa;
  background: #fff7ed;
}
.backup-financeiro-danger {
  border-color: #fecaca;
  background: #fef2f2;
}
@media (max-width: 640px) {
  .backup-financeiro-actions,
  .backup-financeiro-actions a,
  .backup-financeiro-actions button {
    width: 100%;
  }
}
/* evolutiva-historico-backups-financeiros */
/* ====================================================
HISTÓRICO DE BACKUPS FINANCEIROS
==================================================== */
.backup-history-card {
  border-left: 6px solid #0891b2 !important;
}
.backup-history-toolbar {
  display: flex;
  gap: 10px;
  align-items: end;
  flex-wrap: wrap;
  margin-bottom: 10px;
}
.backup-history-toolbar > div {
  flex: 1 1 220px;
}
.backup-history-table-wrap {
  overflow-x: auto;
  border: 1px solid #e2e8f0;
  border-radius: 18px;
}
.backup-history-table {
  width: 100%;
  min-width: 980px;
  border-collapse: collapse;
}
.backup-history-table th,
.backup-history-table td {
  padding: 10px 9px;
  border-bottom: 1px solid #e2e8f0;
  text-align: left;
  vertical-align: top;
  font-size: 12px;
}
.backup-history-table th {
  background: #f8fafc;
  color: #475569;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.backup-history-table tr:last-child td {
  border-bottom: 0;
}
.backup-history-title {
  color: #0f172a;
  font-weight: 900;
}
.backup-history-meta {
  color: #64748b;
  font-size: 11px;
  margin-top: 3px;
}
.backup-history-status {
  display: inline-flex;
  border-radius: 999px;
  padding: 5px 8px;
  font-size: 11px;
  font-weight: 900;
}
.backup-history-status.ativo {
  background: #dcfce7;
  color: #166534;
}
.backup-history-status.vencendo {
  background: #fef3c7;
  color: #92400e;
}
.backup-history-status.excluido {
  background: #fee2e2;
  color: #991b1b;
}
.backup-history-actions {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.backup-history-actions a,
.backup-history-actions button {
  width: auto;
  min-width: 96px;
  padding: 7px 9px;
  border-radius: 10px;
  font-size: 11px;
  text-decoration: none;
  text-align: center;
}
@media (max-width: 640px) {
  .backup-history-toolbar > div,
  .backup-history-actions,
  .backup-history-actions a,
  .backup-history-actions button {
    width: 100%;
  }
}
/* evolutiva-roteiro-automatico-financeiro-v2-card-final */
/* ====================================================
CARD FINAL - GERAR ROTEIRO AUTOMÁTICO
==================================================== */
.finance-v2-route-auto-card {
  border-left: 6px solid #7c3aed !important;
}
.finance-v2-route-auto-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: flex-end;
}
.finance-v2-route-auto-actions > div {
  flex: 1 1 220px;
}
.finance-v2-route-auto-note {
  margin-top: 10px;
  border: 1px solid #ddd6fe;
  background: #f5f3ff;
  color: #4c1d95;
  border-radius: 14px;
  padding: 10px 12px;
  font-size: 12px;
  line-height: 1.4;
}
@media (max-width: 640px) {
  .finance-v2-route-auto-actions > div,
  .finance-v2-route-auto-actions button {
    width: 100%;
  }
}
/* evolutiva-roteiro-iniciar-atendimento */
.mc-route-visit-actions button:first-child,
.route-week-card-actions button:first-child {
  background: #16a34a;
  border-color: #16a34a;
  color: #fff;
}
.mc-route-visit-actions button:first-child:hover,
.route-week-card-actions button:first-child:hover {
  filter: brightness(.95);
}
/* premium-route-cards-override */
.mc-route-visit-card{
  position:relative;
  background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%) !important;
  border:1px solid #d8e4f2 !important;
  border-radius:18px !important;
  padding:14px !important;
  box-shadow:0 10px 24px rgba(15,23,42,.07) !important;
  overflow:hidden;
}
.mc-route-visit-card::before{
  content:"";
  position:absolute;
  left:0; top:0; right:0;
  height:4px;
  background:linear-gradient(90deg,#2563eb 0%,#60a5fa 100%);
}
.mc-route-visit-card.yellow::before{background:linear-gradient(90deg,#d97706 0%,#fbbf24 100%)}
.mc-route-visit-card.green::before{background:linear-gradient(90deg,#15803d 0%,#4ade80 100%)}
.mc-route-visit-card.blue::before{background:linear-gradient(90deg,#2563eb 0%,#60a5fa 100%)}
.mc-route-visit-card.red::before{background:linear-gradient(90deg,#dc2626 0%,#f87171 100%)}
.mc-route-visit-top{align-items:flex-start !important; margin-bottom:12px !important;}
.mc-route-visit-store-wrap{min-width:0; flex:1 1 auto;}
.mc-route-visit-store{
  font-size:14px !important;
  line-height:1.28 !important;
  font-weight:900 !important;
  color:#0f172a !important;
  min-height:auto !important;
  max-height:none !important;
  display:block !important;
  overflow:visible !important;
  letter-spacing:.01em;
}
.mc-route-visit-subtitle{
  margin-top:4px;
  font-size:11px;
  color:#64748b;
  font-weight:600;
}
.mc-route-status{
  border-radius:999px !important;
  padding:6px 10px !important;
  font-size:11px !important;
  font-weight:900 !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.35);
}
.mc-route-visit-meta-box{
  background:#f8fafc;
  border:1px solid #e2e8f0;
  border-radius:14px;
  padding:10px 11px;
  margin-bottom:8px;
}
.mc-route-visit-label{
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:900;
  color:#64748b;
  margin-bottom:4px;
}
.mc-route-visit-line{
  font-size:12px !important;
  line-height:1.35 !important;
  color:#334155 !important;
  margin:0 !important;
  min-height:auto !important;
  display:block !important;
  overflow:visible !important;
}
.mc-route-visit-actions{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:8px !important;
  margin-top:12px !important;
}
.mc-route-visit-actions button:first-child{grid-column:1 / -1}
.mc-route-visit-actions button{
  min-height:40px !important;
  border-radius:12px !important;
  font-size:12px !important;
  font-weight:800 !important;
  padding:10px 10px !important;
  box-shadow:none !important;
}
.mc-route-visit-actions .danger-soft{
  background:#64748b !important;
  color:#fff !important;
}
.mc-route-visit-actions button.sec{
  background:#64748b !important;
  color:#fff !important;
}
.mc-route-visit-actions button:hover{transform:translateY(-1px)}
/* premium-route-cards-layout-fix-final */
/* ====================================================
CORREÇÃO FINAL - CARDS PREMIUM DO ROTEIRO
Evita nomes em coluna vertical e mantém layout profissional.
==================================================== */
.mc-board {
  overflow-x: auto !important;
  overflow-y: auto !important;
  max-height: 720px !important;
  padding: 0 10px 14px 10px !important;
  scrollbar-gutter: stable !important;
}

.mc-board-grid {
  display: grid !important;
  grid-template-columns: repeat(7, minmax(220px, 1fr)) !important;
  min-width: 1540px !important;
  gap: 0 !important;
  align-items: start !important;
  padding: 0 10px 12px 10px !important;
}

.mc-board-day {
  min-width: 220px !important;
  width: auto !important;
  box-sizing: border-box !important;
  padding: 14px 12px 18px 12px !important;
  overflow: visible !important;
}

.mc-route-visit-card {
  width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

.mc-route-visit-store {
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
  min-height: 38px !important;
  max-height: 38px !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  hyphens: none !important;
  text-wrap: normal !important;
  font-size: 14px !important;
  line-height: 1.28 !important;
}

.mc-route-visit-line {
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  hyphens: none !important;
}

.mc-route-visit-meta-box {
  overflow: hidden !important;
}

.mc-route-visit-actions {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 8px !important;
}

.mc-route-visit-actions button {
  min-width: 0 !important;
  width: 100% !important;
  white-space: normal !important;
}

.mc-route-visit-actions button:first-child {
  grid-column: 1 / -1 !important;
}

.mc-board::-webkit-scrollbar {
  width: 10px !important;
  height: 10px !important;
}

.mc-board::-webkit-scrollbar-thumb {
  background: #cbd5e1 !important;
  border-radius: 999px !important;
}

.mc-board::-webkit-scrollbar-track {
  background: #f1f5f9 !important;
  border-radius: 999px !important;
}

@media (max-width: 1400px) {
  .mc-board-grid {
    grid-template-columns: repeat(7, minmax(220px, 1fr)) !important;
    min-width: 1540px !important;
  }
}

@media (max-width: 760px) {
  .mc-board-grid {
    grid-template-columns: repeat(7, minmax(220px, 1fr)) !important;
    min-width: 1540px !important;
  }

  .mc-board-day {
    border-right: 1px solid #e2e8f0 !important;
    border-bottom: 0 !important;
  }
}
/* roteiro-semana-sem-corte-final */
/* Ajuste final: fazer a semana caber melhor sem cortar */
.mc-board{
  padding:0 6px 14px 6px !important;
}
.mc-board-grid{
  grid-template-columns:repeat(7,minmax(150px,1fr)) !important;
  min-width:1080px !important;
  padding:0 6px 12px 6px !important;
}
.mc-board-day{
  min-width:150px !important;
  padding:10px 8px 14px 8px !important;
}
.mc-board-day-head{
  margin-bottom:10px !important;
  padding-bottom:8px !important;
  gap:6px !important;
}
.mc-board-day-head > div{
  font-size:13px !important;
  line-height:1.15 !important;
  font-weight:900 !important;
}
.mc-board-day-head > div span{
  font-size:12px !important;
}
.mc-day-badge{
  font-size:11px !important;
  padding:4px 8px !important;
}
.mc-route-visit-card{
  padding:12px 10px 10px 10px !important;
}
.mc-route-visit-store{
  font-size:13px !important;
  min-height:34px !important;
  max-height:34px !important;
}
.mc-route-visit-meta-box{
  padding:8px 9px !important;
}
.mc-route-visit-actions button{
  min-height:36px !important;
  padding:8px 8px !important;
  font-size:11px !important;
}
@media (max-width: 1200px){
  .mc-board-grid{
    grid-template-columns:repeat(7,minmax(150px,1fr)) !important;
    min-width:1080px !important;
  }
}
/* roteiro-ajuste-final-nome-botao */
.mc-board-grid{
  grid-template-columns:repeat(7,minmax(165px,1fr)) !important;
  min-width:1180px !important;
}
.mc-board-day{
  min-width:165px !important;
}
.mc-route-visit-store{
  font-size:12px !important;
  line-height:1.22 !important;
  -webkit-line-clamp:3 !important;
  min-height:44px !important;
  max-height:44px !important;
}
.mc-route-visit-subtitle{
  font-size:10px !important;
}
.mc-route-visit-meta-box{
  padding:8px 9px !important;
}
.mc-route-visit-line{
  font-size:11px !important;
  line-height:1.28 !important;
}
.mc-route-visit-actions{
  grid-template-columns:1fr 1fr !important;
  gap:7px !important;
}
.mc-route-visit-actions button:first-child{
  grid-column:1 / -1 !important;
}
.mc-route-visit-actions button{
  min-height:36px !important;
  font-size:11px !important;
  padding:8px 8px !important;
}
.mc-route-visit-actions button:first-child{
  background:#16a34a !important;
  color:#fff !important;
}
/* evolutiva-qualidade-financeiro-impacto-v1 */
.quality-finance-rule-card {
  border-left: 6px solid #16a34a !important;
}
.quality-finance-rule-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(160px, 1fr));
  gap: 10px;
  margin-top: 12px;
}
.quality-finance-rule-item {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  padding: 12px;
}
.quality-finance-rule-item .label {
  font-size: 11px;
  font-weight: 900;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.quality-finance-rule-item .value {
  margin-top: 5px;
  font-weight: 900;
  color: #0f172a;
}
.quality-finance-box {
  display: grid;
  grid-template-columns: repeat(3, minmax(130px, 1fr));
  gap: 10px;
  margin: 12px 0;
}
.quality-finance-mini {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 15px;
  padding: 10px 11px;
}
.quality-finance-mini .label {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: #64748b;
  font-weight: 900;
}
.quality-finance-mini .value {
  margin-top: 4px;
  font-size: 14px;
  color: #0f172a;
  font-weight: 900;
}
.quality-finance-mini.good {
  border-color: #bbf7d0;
  background: #f0fdf4;
}
.quality-finance-mini.warn {
  border-color: #fed7aa;
  background: #fff7ed;
}
.quality-finance-mini.danger {
  border-color: #fecaca;
  background: #fef2f2;
}
.quality-finance-note {
  border: 1px dashed #cbd5e1;
  background: #f8fafc;
  border-radius: 14px;
  padding: 10px 12px;
  margin: 8px 0 12px 0;
  color: #334155;
  font-size: 12px;
  line-height: 1.4;
}
@media (max-width: 760px) {
  .quality-finance-rule-grid,
  .quality-finance-box {
    grid-template-columns: 1fr;
  }
}
/* financeiro-v2-fechamento-pagamento-style */
.finance-v2-payment-close-card {
  border-left: 6px solid #0f4fd6 !important;
}
.finance-v2-close-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(150px, 1fr));
  gap: 10px;
  margin: 12px 0;
}
.finance-v2-close-kpi {
  border: 1px solid #dbe5f3;
  background: #f8fbff;
  border-radius: 16px;
  padding: 12px;
}
.finance-v2-close-kpi span {
  display: block;
  color: #64748b;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.finance-v2-close-kpi b {
  display: block;
  margin-top: 6px;
  color: #0f172a;
  font-size: 18px;
}
.finance-v2-close-kpi.ok {
  border-color: #bbf7d0;
  background: #f0fdf4;
}
.finance-v2-close-kpi.danger {
  border-color: #fecaca;
  background: #fef2f2;
}
.finance-v2-close-note {
  border: 1px dashed #cbd5e1;
  background: #ffffff;
  border-radius: 14px;
  padding: 10px 12px;
  color: #334155;
  font-size: 12px;
  line-height: 1.45;
}
.finance-v2-close-actions {
  margin-top: 12px;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.finance-v2-close-actions button {
  width: auto;
  min-width: 210px;
}
@media (max-width: 900px) {
  .finance-v2-close-grid {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 560px) {
  .finance-v2-close-grid {
    grid-template-columns: 1fr;
  }
}
/* financeiro-v2-pagamento-responsavel-status-style */
.finance-v2-payment-actions {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  min-width: 130px;
}
.finance-v2-payment-actions button {
  width: auto;
  min-width: 112px;
  padding: 8px 10px;
  font-size: 11px;
}
.finance-v2-dashboard .executive-table th,
.finance-v2-dashboard .executive-table td {
  vertical-align: middle;
}
/* financeiro-v2-comprovante-pagamento-style */
.finance-v2-payment-actions {
  min-width: 190px;
}
.finance-v2-payment-actions button {
  min-width: 140px;
}
/* financeiro-v2-rolagem-pagamento-relatorio-final */
.finance-v2-payment-scroll-section {
  max-height: 520px !important;
  overflow: auto !important;
  padding-right: 14px !important;
}
.finance-v2-payment-scroll-section .executive-card-header {
  position: sticky !important;
  top: 0 !important;
  z-index: 5 !important;
  background: #ffffff !important;
  padding-top: 4px !important;
  padding-bottom: 12px !important;
}
.finance-v2-payment-scroll-section .executive-table thead th {
  position: sticky !important;
  top: 74px !important;
  z-index: 4 !important;
  background: #f8fafc !important;
}
.finance-v2-report-section {
  max-height: 660px !important;
  overflow: auto !important;
  padding-right: 14px !important;
}
.finance-v2-report-section > .executive-card-header {
  position: sticky !important;
  top: 0 !important;
  z-index: 6 !important;
  background: #ffffff !important;
  padding-top: 4px !important;
  padding-bottom: 12px !important;
}
.finance-v2-payment-scroll-section::-webkit-scrollbar,
.finance-v2-report-section::-webkit-scrollbar,
.finance-v2-report-scroll::-webkit-scrollbar {
  width: 9px;
  height: 9px;
}
.finance-v2-payment-scroll-section::-webkit-scrollbar-track,
.finance-v2-report-section::-webkit-scrollbar-track,
.finance-v2-report-scroll::-webkit-scrollbar-track {
  background: #eef2f7;
  border-radius: 999px;
}
.finance-v2-payment-scroll-section::-webkit-scrollbar-thumb,
.finance-v2-report-section::-webkit-scrollbar-thumb,
.finance-v2-report-scroll::-webkit-scrollbar-thumb {
  background: #94a3b8;
  border-radius: 999px;
}
.finance-v2-payment-scroll-section::-webkit-scrollbar-thumb:hover,
.finance-v2-report-section::-webkit-scrollbar-thumb:hover,
.finance-v2-report-scroll::-webkit-scrollbar-thumb:hover {
  background: #64748b;
}
@media (max-width: 900px) {
  .finance-v2-payment-scroll-section {
    max-height: 480px !important;
  }
  .finance-v2-report-section {
    max-height: 560px !important;
  }
}
/* financeiro-v2-rolagem-tabela-correta-final */
/* Ajuste final: a rolagem fica dentro da tabela, não no card inteiro */
.finance-v2-payment-scroll-section {
  max-height: none !important;
  overflow: visible !important;
  padding-right: 14px !important;
}
.finance-v2-payment-scroll-section > .executive-card-header {
  position: static !important;
  background: transparent !important;
}
.finance-v2-payment-scroll-section .executive-table {
  display: block !important;
  max-height: 455px !important;
  overflow-y: auto !important;
  overflow-x: auto !important;
  width: 100% !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
}
.finance-v2-payment-scroll-section .executive-table thead {
  display: table !important;
  width: 100% !important;
  table-layout: fixed !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 20 !important;
  background: #f8fafc !important;
}
.finance-v2-payment-scroll-section .executive-table tbody {
  display: table !important;
  width: 100% !important;
  table-layout: fixed !important;
}
.finance-v2-payment-scroll-section .executive-table tr {
  display: table-row !important;
}
.finance-v2-payment-scroll-section .executive-table th,
.finance-v2-payment-scroll-section .executive-table td {
  display: table-cell !important;
  vertical-align: middle !important;
}
.finance-v2-payment-scroll-section .executive-table td {
  padding-top: 16px !important;
  padding-bottom: 16px !important;
}
.finance-v2-payment-scroll-section .executive-table th {
  background: #f8fafc !important;
  position: static !important;
  top: auto !important;
}

/* O relatório detalhado continua com rolagem no bloco, mas sem cortar conteúdo */
.finance-v2-report-section {
  max-height: 690px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  padding-right: 14px !important;
}
.finance-v2-report-section > .executive-card-header {
  position: sticky !important;
  top: 0 !important;
  z-index: 25 !important;
  background: #ffffff !important;
  padding-top: 6px !important;
  padding-bottom: 12px !important;
  border-bottom: 1px solid #e2e8f0 !important;
}

/* Barras mais discretas/profissionais */
.finance-v2-payment-scroll-section .executive-table::-webkit-scrollbar,
.finance-v2-report-section::-webkit-scrollbar,
.finance-v2-report-scroll::-webkit-scrollbar {
  width: 8px !important;
  height: 8px !important;
}
.finance-v2-payment-scroll-section .executive-table::-webkit-scrollbar-track,
.finance-v2-report-section::-webkit-scrollbar-track,
.finance-v2-report-scroll::-webkit-scrollbar-track {
  background: #edf2f7 !important;
  border-radius: 999px !important;
}
.finance-v2-payment-scroll-section .executive-table::-webkit-scrollbar-thumb,
.finance-v2-report-section::-webkit-scrollbar-thumb,
.finance-v2-report-scroll::-webkit-scrollbar-thumb {
  background: #94a3b8 !important;
  border-radius: 999px !important;
}
/* financeiro-v2-relatorio-rolagem-wrapper-definitivo */
/* Relatório detalhado: o card principal NÃO rola mais, evitando cortar conteúdo */
.finance-v2-report-section {
  max-height: none !important;
  overflow: visible !important;
  padding-right: 14px !important;
}
.finance-v2-report-section > .executive-card-header {
  position: static !important;
  background: transparent !important;
  border-bottom: none !important;
}

/* Agora quem rola é somente a lista de responsáveis */
.finance-v2-report-responsaveis-scroll-wrapper {
  max-height: 690px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  padding-right: 10px !important;
  margin-top: 10px !important;
  border-top: 1px solid #e2e8f0 !important;
  padding-top: 14px !important;
}

/* Cada card interno fica inteiro, sem ser cortado */
.finance-v2-report-resp-card {
  overflow: visible !important;
  margin-bottom: 16px !important;
}

/* As listas internas continuam com rolagem própria */
.finance-v2-report-scroll {
  max-height: 300px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
}

/* Barra de rolagem mais limpa */
.finance-v2-report-responsaveis-scroll-wrapper::-webkit-scrollbar,
.finance-v2-report-scroll::-webkit-scrollbar {
  width: 8px !important;
}
.finance-v2-report-responsaveis-scroll-wrapper::-webkit-scrollbar-track,
.finance-v2-report-scroll::-webkit-scrollbar-track {
  background: #edf2f7 !important;
  border-radius: 999px !important;
}
.finance-v2-report-responsaveis-scroll-wrapper::-webkit-scrollbar-thumb,
.finance-v2-report-scroll::-webkit-scrollbar-thumb {
  background: #94a3b8 !important;
  border-radius: 999px !important;
}
/* financeiro-v2-historico-pagamentos-style */
.finance-v2-history-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, .52);
  z-index: 100000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 22px;
}
.finance-v2-history-modal {
  width: min(980px, 96vw);
  max-height: 88vh;
  overflow: auto;
  background: #ffffff;
  border-radius: 24px;
  box-shadow: 0 30px 90px rgba(15, 23, 42, .35);
  padding: 20px;
}
.finance-v2-history-head {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: flex-start;
  border-bottom: 1px solid #e2e8f0;
  padding-bottom: 14px;
  margin-bottom: 14px;
}
.finance-v2-history-head h2 {
  margin: 0;
}
.finance-v2-history-head p {
  margin: 6px 0 0 0;
  color: #475569;
  font-size: 13px;
}
.finance-v2-history-list {
  display: grid;
  gap: 12px;
}
.finance-v2-history-item {
  border: 1px solid #dbe5f3;
  background: #f8fbff;
  border-radius: 18px;
  padding: 14px;
}
.finance-v2-history-item-top {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  margin-bottom: 10px;
}
.finance-v2-history-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(140px, 1fr));
  gap: 10px;
}
.finance-v2-history-grid div {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  padding: 10px;
}
.finance-v2-history-grid span {
  display: block;
  font-size: 10px;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: .06em;
  font-weight: 900;
}
.finance-v2-history-grid b {
  display: block;
  margin-top: 5px;
}
.finance-v2-history-note {
  margin-top: 10px;
  border-radius: 14px;
  padding: 10px 12px;
  background: #ffffff;
  border: 1px dashed #cbd5e1;
  color: #334155;
  font-size: 12px;
}
.finance-v2-history-note.warn {
  background: #fff7ed;
  border-color: #fed7aa;
}
.finance-v2-history-actions {
  margin-top: 10px;
}
.finance-v2-history-modal::-webkit-scrollbar {
  width: 8px;
}
.finance-v2-history-modal::-webkit-scrollbar-track {
  background: #edf2f7;
  border-radius: 999px;
}
.finance-v2-history-modal::-webkit-scrollbar-thumb {
  background: #94a3b8;
  border-radius: 999px;
}
@media (max-width: 760px) {
  .finance-v2-history-grid {
    grid-template-columns: 1fr;
  }
  .finance-v2-history-head {
    flex-direction: column;
  }
}
/* auditoria-financeira-profissional-style */
.finance-audit-kpis {
  grid-template-columns: repeat(6, minmax(130px, 1fr)) !important;
}
.finance-audit-list-card {
  max-height: 680px;
  overflow: hidden;
}
.finance-audit-scroll {
  max-height: 550px;
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: 10px;
}
.finance-audit-event {
  display: grid;
  grid-template-columns: 46px 1fr auto;
  gap: 12px;
  align-items: flex-start;
  border: 1px solid #dbe5f3;
  background: #ffffff;
  border-radius: 18px;
  padding: 14px;
  margin-bottom: 10px;
}
.finance-audit-icon {
  width: 42px;
  height: 42px;
  border-radius: 14px;
  background: #eff6ff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
}
.finance-audit-title {
  font-weight: 900;
  color: #0f172a;
  margin-bottom: 6px;
}
.finance-audit-meta {
  font-size: 12px;
  line-height: 1.45;
  color: #334155;
}
.finance-audit-actions {
  display: flex;
  flex-direction: column;
  gap: 7px;
  min-width: 140px;
}
.finance-audit-actions button {
  width: 100%;
  min-height: 34px;
  font-size: 11px;
}
.finance-audit-scroll::-webkit-scrollbar {
  width: 8px;
}
.finance-audit-scroll::-webkit-scrollbar-track {
  background: #edf2f7;
  border-radius: 999px;
}
.finance-audit-scroll::-webkit-scrollbar-thumb {
  background: #94a3b8;
  border-radius: 999px;
}
@media (max-width: 980px) {
  .finance-audit-kpis {
    grid-template-columns: repeat(2, minmax(130px, 1fr)) !important;
  }
  .finance-audit-event {
    grid-template-columns: 1fr;
  }
  .finance-audit-actions {
    flex-direction: row;
    flex-wrap: wrap;
  }
}
/* financeiro-v2-pacote-fechamento-style */
.finance-v2-closing-package-card {
  border-left: 6px solid #2563eb !important;
  background: linear-gradient(135deg, #ffffff 0%, #f8fbff 100%) !important;
}
.finance-v2-package-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(150px, 1fr));
  gap: 10px;
  margin: 12px 0;
}
.finance-v2-package-grid div {
  border: 1px solid #dbe5f3;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.finance-v2-package-grid span {
  display: block;
  font-size: 10px;
  color: #64748b;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.finance-v2-package-grid b {
  display: block;
  margin-top: 6px;
  font-size: 17px;
  color: #0f172a;
}
.finance-v2-package-note {
  border: 1px solid #bfdbfe;
  background: #eff6ff;
  color: #1e3a8a;
  border-radius: 14px;
  padding: 10px 12px;
  font-size: 12px;
  line-height: 1.45;
  margin: 12px 0;
}
.finance-v2-package-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.finance-v2-package-actions button {
  width: auto;
  min-width: 220px;
}
@media (max-width: 900px) {
  .finance-v2-package-grid {
    grid-template-columns: repeat(2, minmax(140px, 1fr));
  }
  .finance-v2-package-actions button {
    width: 100%;
  }
}
/* financeiro-valores-responsavel-rolagem-style */
.finance-resp-values-card {
  overflow: hidden !important;
}

.finance-resp-values-table-scroll {
  max-height: 420px !important;
  overflow-y: auto !important;
  overflow-x: auto !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 16px !important;
  margin-top: 10px !important;
  background: #ffffff !important;
}

.finance-resp-values-table-scroll table {
  margin: 0 !important;
  min-width: 980px !important;
}

.finance-resp-values-table-scroll thead th {
  position: sticky !important;
  top: 0 !important;
  z-index: 2 !important;
  background: #f8fafc !important;
}

.finance-resp-values-table-scroll::-webkit-scrollbar {
  height: 8px !important;
  width: 8px !important;
}

.finance-resp-values-table-scroll::-webkit-scrollbar-track {
  background: #edf2f7 !important;
  border-radius: 999px !important;
}

.finance-resp-values-table-scroll::-webkit-scrollbar-thumb {
  background: #94a3b8 !important;
  border-radius: 999px !important;
}

.finance-resp-values-hint {
  margin: 8px 0 0 0;
  color: #64748b;
  font-size: 12px;
}
/* financeiro-resultado-operacional-style */
.finance-result-positive {
  color: #166534 !important;
}
.finance-result-negative {
  color: #b91c1c !important;
}
.finance-result-neutral {
  color: #334155 !important;
}
.finance-result-box {
  border: 1px solid #e2e8f0;
  border-radius: 18px;
  background: #ffffff;
  padding: 12px;
  margin-top: 12px;
}
.finance-result-table-scroll {
  max-height: 420px;
  overflow: auto;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  margin-top: 10px;
}
.finance-result-table-scroll table {
  margin: 0 !important;
  min-width: 980px;
}
.finance-result-table-scroll thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: #f8fafc;
}
/* financeiro-valores-responsavel-importacao-style */
.finance-resp-import-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
  margin-top: 10px;
}
.finance-resp-import-actions button {
  width: auto;
}
.finance-resp-import-note {
  border: 1px dashed #cbd5e1;
  background: #f8fafc;
  border-radius: 14px;
  padding: 10px 12px;
  font-size: 12px;
  color: #334155;
  margin-top: 10px;
}
/* cliente-portal-premium-fase1-style */
.client-health-grid {
  display: grid;
  grid-template-columns: minmax(240px, .8fr) minmax(260px, 1.2fr);
  gap: 14px;
  margin: 14px 0;
}
.client-health-score {
  border: 1px solid #dbeafe;
  background: linear-gradient(135deg, #eff6ff 0%, #ffffff 100%);
  border-radius: 24px;
  padding: 18px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.client-health-score .score {
  font-size: 52px;
  line-height: 1;
  font-weight: 900;
  color: #1d4ed8;
}
.client-health-score .label {
  color: #334155;
  font-weight: 800;
  margin-top: 8px;
}
.client-health-score .sub {
  color: #64748b;
  font-size: 12px;
  margin-top: 6px;
}
.client-health-list {
  border: 1px solid #e2e8f0;
  border-radius: 24px;
  padding: 16px;
  background: #fff;
}
.client-health-item {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  border-bottom: 1px solid #e5e7eb;
  padding: 9px 0;
}
.client-health-item:last-child {
  border-bottom: 0;
}
.client-health-item b {
  color: #0f172a;
}
.client-health-item span {
  color: #64748b;
  font-size: 12px;
}
.client-timeline {
  display: grid;
  gap: 10px;
}
.client-timeline-item {
  border: 1px solid #e2e8f0;
  border-left: 5px solid #2563eb;
  border-radius: 16px;
  padding: 11px 12px;
  background: #ffffff;
}
.client-timeline-item.done { border-left-color: #16a34a; }
.client-timeline-item.pending { border-left-color: #d97706; }
.client-timeline-item b {
  display: block;
  color: #0f172a;
}
.client-timeline-item span {
  color: #64748b;
  font-size: 12px;
}
.client-action-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 10px;
  margin-top: 12px;
}
.client-action-grid button {
  width: 100%;
}
@media (max-width: 760px) {
  .client-health-grid {
    grid-template-columns: 1fr;
  }
}
/* cliente-evidencias-premium-style */
.client-evidence-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 12px;
}
.client-evidence-card {
  border: 1px solid #e2e8f0;
  border-radius: 20px;
  background: #ffffff;
  overflow: hidden;
  box-shadow: 0 8px 20px rgba(15,23,42,.055);
}
.client-evidence-head {
  padding: 12px;
  border-bottom: 1px solid #e2e8f0;
}
.client-evidence-head b {
  display: block;
  color: #0f172a;
}
.client-evidence-head span {
  display: block;
  color: #64748b;
  font-size: 12px;
  margin-top: 3px;
}
.client-evidence-photos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: #e2e8f0;
}
.client-evidence-photo {
  background: #f8fafc;
  min-height: 145px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.client-evidence-photo img {
  width: 100%;
  height: 145px;
  object-fit: cover;
  display: block;
}
.client-evidence-photo span {
  color: #64748b;
  font-size: 12px;
  text-align: center;
  padding: 10px;
}
.client-evidence-body {
  padding: 12px;
}
.client-evidence-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 10px;
}
.client-evidence-actions button {
  width: auto;
  min-width: 110px;
  padding: 8px 10px;
  font-size: 12px;
}
.client-quality-row {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  color: #64748b;
  font-size: 12px;
  margin-top: 6px;
}
/* cliente-info-visita-separada-premium-style */
/* ====================================================
CLIENTE - INFORMAÇÕES DA VISITA MAIS CLARAS
Separa responsável, data, hora, local, loja e marca.
==================================================== */

.client-visit-detail-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(155px, 1fr));
  gap: 8px;
  margin: 10px 0;
}

.client-visit-detail-box {
  border: 1px solid #e2e8f0;
  background: #f8fafc;
  border-radius: 14px;
  padding: 9px 10px;
  min-height: 58px;
}

.client-visit-detail-box span {
  display: block;
  color: #64748b;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
  margin-bottom: 4px;
}

.client-visit-detail-box b {
  display: block;
  color: #0f172a;
  font-size: 13px;
  line-height: 1.25;
  word-break: break-word;
}

.client-visit-location-box {
  border: 1px solid #bfdbfe;
  background: #eff6ff;
  color: #1e3a8a;
  border-radius: 14px;
  padding: 10px 12px;
  margin: 10px 0;
  font-size: 12px;
  line-height: 1.45;
}

.client-visit-location-box b {
  color: #1e3a8a;
}

.client-visit-location-box a {
  color: #1d4ed8;
  font-weight: 800;
  text-decoration: none;
}

.client-visit-identity-title {
  display: grid;
  gap: 3px;
}

.client-visit-identity-title strong {
  color: #0f172a;
  font-size: 14px;
}

.client-visit-identity-title small {
  color: #64748b;
  font-size: 11px;
  line-height: 1.35;
}

.client-visit-table-info {
  display: grid;
  gap: 4px;
  min-width: 210px;
}

.client-visit-table-info b {
  color: #0f172a;
}

.client-visit-table-info span {
  color: #64748b;
  font-size: 12px;
}

@media (max-width: 720px) {
  .client-visit-detail-grid {
    grid-template-columns: 1fr;
  }
}
/* cliente-relatorio-executivo-premium-style */
.client-exec-report-card {
  border-left: 6px solid #1d4ed8 !important;
  background: linear-gradient(135deg, #ffffff 0%, #f8fbff 100%);
}
.client-exec-report-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 10px;
  margin: 12px 0;
}
.client-exec-report-mini {
  border: 1px solid #dbeafe;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.client-exec-report-mini span {
  display: block;
  color: #64748b;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}
.client-exec-report-mini b {
  display: block;
  color: #0f172a;
  font-size: 22px;
  margin-top: 6px;
}
.client-report-print .report-cover {
  border-bottom: 5px solid #2563eb;
  padding-bottom: 18px;
  margin-bottom: 18px;
}
.client-report-print .report-cover h1 {
  margin: 0;
  font-size: 28px;
  color: #0f172a;
}
.client-report-print .report-sub {
  color: #64748b;
  font-size: 13px;
  margin-top: 6px;
}
.client-report-print .report-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin: 16px 0;
}
.client-report-print .report-kpi {
  border: 1px solid #cbd5e1;
  border-radius: 14px;
  padding: 12px;
  background: #f8fafc;
}
.client-report-print .report-kpi span {
  display: block;
  color: #64748b;
  font-size: 10px;
  font-weight: bold;
  text-transform: uppercase;
}
.client-report-print .report-kpi b {
  display: block;
  margin-top: 5px;
  color: #0f172a;
  font-size: 18px;
}
.client-report-print table {
  width: 100%;
  border-collapse: collapse;
  margin: 10px 0 18px;
}
.client-report-print th,
.client-report-print td {
  border: 1px solid #cbd5e1;
  padding: 8px;
  font-size: 11px;
  text-align: left;
  vertical-align: top;
}
.client-report-print th {
  background: #e2e8f0;
}
.client-report-print .photo-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}
.client-report-print .photo-box {
  border: 1px solid #cbd5e1;
  border-radius: 12px;
  overflow: hidden;
}
.client-report-print .photo-box img {
  width: 100%;
  height: 210px;
  object-fit: cover;
  display: block;
}
.client-report-print .photo-box div {
  padding: 7px;
  font-size: 11px;
  background: #f8fafc;
}
@media print {
  .client-report-print .no-print { display:none; }
  .client-report-print { margin: 0; }
}
/* cliente-central-documentos-premium-style */
.client-doc-center {
  border-left: 6px solid #0f766e !important;
  background: linear-gradient(135deg, #ffffff 0%, #f0fdfa 100%);
}
.client-doc-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 12px;
  margin-top: 12px;
}
.client-doc-item {
  border: 1px solid #ccfbf1;
  background: #ffffff;
  border-radius: 18px;
  padding: 14px;
  min-height: 132px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.client-doc-item h4 {
  margin: 0;
  color: #0f172a;
  font-size: 15px;
}
.client-doc-item p {
  margin: 6px 0 10px;
  color: #64748b;
  font-size: 12px;
  line-height: 1.35;
}
.client-doc-item button {
  width: 100%;
  padding: 9px 10px;
}
.client-doc-status {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 5px 9px;
  font-size: 11px;
  font-weight: 900;
  background: #dcfce7;
  color: #166534;
}
.client-doc-status.warn {
  background: #fef3c7;
  color: #92400e;
}
.client-doc-status.danger {
  background: #fee2e2;
  color: #991b1b;
}
/* cliente-pendencias-qualidade-premium-style */
.client-pending-center {
  border-left: 6px solid #d97706 !important;
  background: linear-gradient(135deg, #ffffff 0%, #fff7ed 100%);
}
.client-pending-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(155px, 1fr));
  gap: 10px;
  margin: 12px 0;
}
.client-pending-mini {
  border: 1px solid #fed7aa;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.client-pending-mini span {
  display: block;
  color: #64748b;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.client-pending-mini b {
  display: block;
  color: #0f172a;
  font-size: 22px;
  margin-top: 5px;
}
.client-pending-list {
  display: grid;
  gap: 9px;
  margin-top: 10px;
}
.client-pending-item {
  border: 1px solid #e2e8f0;
  border-left: 5px solid #d97706;
  border-radius: 15px;
  background: #ffffff;
  padding: 11px 12px;
}
.client-pending-item.done {
  border-left-color: #16a34a;
}
.client-pending-item.bad {
  border-left-color: #dc2626;
}
.client-pending-item b {
  display: block;
  color: #0f172a;
}
.client-pending-item span {
  display: block;
  color: #64748b;
  font-size: 12px;
  margin-top: 3px;
}
.client-pending-actions {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:10px;
}
.client-pending-actions button {
  width:auto;
  min-width:110px;
  padding:8px 10px;
  font-size:12px;
}
/* relatorios-profissionais-premium-style */
.prof-report-center {
  border-left: 6px solid #7c3aed !important;
  background: linear-gradient(135deg, #ffffff 0%, #f5f3ff 100%);
}
.prof-report-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 12px;
  margin-top: 12px;
}
.prof-report-card {
  border: 1px solid #ddd6fe;
  background: #ffffff;
  border-radius: 18px;
  padding: 14px;
  min-height: 142px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.prof-report-card h4 {
  margin: 0;
  color: #0f172a;
  font-size: 15px;
}
.prof-report-card p {
  color: #64748b;
  font-size: 12px;
  line-height: 1.35;
  margin: 6px 0 10px;
}
.prof-report-kpis {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
  gap: 9px;
  margin: 12px 0;
}
.prof-report-kpi {
  border: 1px solid #ddd6fe;
  background: #fff;
  border-radius: 16px;
  padding: 11px;
}
.prof-report-kpi span {
  display: block;
  color: #64748b;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
}
.prof-report-kpi b {
  display: block;
  color: #0f172a;
  font-size: 21px;
  margin-top: 5px;
}
.prof-print-body {
  font-family: Arial, sans-serif;
  color: #0f172a;
  margin: 24px;
}
.prof-print-cover {
  border-bottom: 5px solid #7c3aed;
  padding-bottom: 18px;
  margin-bottom: 18px;
}
.prof-print-cover h1 {
  margin: 0;
  font-size: 28px;
}
.prof-print-sub {
  color: #64748b;
  font-size: 13px;
  margin-top: 6px;
}
.prof-print-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin: 16px 0;
}
.prof-print-kpi {
  border: 1px solid #cbd5e1;
  background: #f8fafc;
  border-radius: 14px;
  padding: 12px;
}
.prof-print-kpi span {
  display: block;
  color: #64748b;
  font-size: 10px;
  font-weight: bold;
  text-transform: uppercase;
}
.prof-print-kpi b {
  display: block;
  color: #0f172a;
  font-size: 18px;
  margin-top: 5px;
}
.prof-print-body table {
  width: 100%;
  border-collapse: collapse;
  margin: 12px 0 18px;
}
.prof-print-body th,
.prof-print-body td {
  border: 1px solid #cbd5e1;
  padding: 8px;
  font-size: 11px;
  text-align: left;
  vertical-align: top;
}
.prof-print-body th {
  background: #e2e8f0;
}
.prof-print-note {
  border: 1px solid #cbd5e1;
  background: #f8fafc;
  border-radius: 12px;
  padding: 10px;
  margin: 10px 0;
  font-size: 12px;
}
@media print {
  .prof-no-print { display:none !important; }
  .prof-print-body { margin: 0; }
}
/* notificacoes-internas-premium-style */
.notification-premium-panel {
  border-left: 6px solid #0ea5e9 !important;
  background: linear-gradient(135deg, #ffffff 0%, #f0f9ff 100%);
}
.notification-template-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(185px, 1fr));
  gap: 10px;
  margin: 12px 0;
}
.notification-template-card {
  border: 1px solid #bae6fd;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.notification-template-card h4 {
  margin: 0;
  color: #0f172a;
  font-size: 14px;
}
.notification-template-card p {
  color: #64748b;
  font-size: 12px;
  margin: 6px 0 10px;
}
.notification-template-card button {
  width: 100%;
  padding: 8px 10px;
  font-size: 12px;
}
.notification-stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 9px;
  margin: 12px 0;
}
.notification-stat-mini {
  border: 1px solid #bae6fd;
  background: #fff;
  border-radius: 15px;
  padding: 11px;
}
.notification-stat-mini span {
  display: block;
  color: #64748b;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
}
.notification-stat-mini b {
  display: block;
  color: #0f172a;
  font-size: 21px;
  margin-top: 5px;
}
.notification-preview-box {
  border: 1px solid #bae6fd;
  border-radius: 16px;
  background: #ffffff;
  padding: 12px;
  margin-top: 10px;
}
/* suporte-reportar-erro-premium-style */
.support-floating-btn {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 9998;
  width: auto;
  min-width: 148px;
  border: 0;
  border-radius: 999px;
  padding: 13px 16px;
  background: #0f172a;
  color: #ffffff;
  font-weight: 900;
  box-shadow: 0 16px 32px rgba(15,23,42,.28);
}
/* Some enquanto o painel do menu (celular/tablet, abaixo de 1180px) esta
   aberto: o botao e position:fixed com z-index 9998, mais alto que o
   .evo-menu-panel (5500, ver "MENU DEFINITIVO V8" mais acima), entao ficava
   sempre por cima da lista de abas - no celular, bem em cima de um item do
   menu, dando a impressao de icones empilhados uns sobre os outros
   (relatado pelo usuario em 27/09/2026). Na sidebar fixa (>=1180px) o corpo
   nunca ganha esta classe pelo botao "Menu" (ali quem abre/fecha e outro
   controle, .evo-sidebar-toggle), entao a regra abaixo nao afeta o desktop.
   !important e necessario: a camada de icones automaticos (evolutiva-graphics.js)
   adiciona a classe .evo-btn-with-icon a este botao, que forca
   "display: inline-flex !important" - sem !important aqui, aquela regra
   ganhava mesmo com especificidade menor. */
/* Botão "Guia": mesmo estilo do "Reportar erro", logo à esquerda dele. */
.support-floating-btn.guia-floating-btn {
  right: 178px;
}
.guia-modal {
  width: min(760px, 100%);
}
.guia-lista {
  display: grid;
  gap: 12px;
  max-height: 62vh;
  overflow: auto;
  padding-right: 4px;
}
.guia-modulo {
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  padding: 14px;
  background: #f8fafc;
}
.guia-modulo h3 {
  margin: 0 0 4px;
  color: #0f172a;
}
.guia-modulo ol {
  margin: 8px 0 10px;
  padding-left: 20px;
  color: #334155;
}
.guia-modulo li {
  margin: 4px 0;
}
body.evo-menu-open .support-floating-btn {
  display: none !important;
}
/* Celular: o botao "Reportar erro" e fixo sobre a tela. Sem folga no fim da
   area do app, ele cobria o ultimo botao de cada cartao (ex.: "Remanejar dentro
   da semana" na tela do promotor). A folga so vale abaixo de 760px. */
@media (max-width: 760px) {
  body main#app {
    padding-bottom: 96px !important;
  }

  /* Celular: cabecalho compacto (56px) e fixo, com as acoes so de icone em uma
     linha. Antes ocupava ~296px da tela (logo, nome e botoes empilhados em largura
     total). A barra de navegação (Área atual / Menu) gruda logo abaixo, para o
     menu continuar acessível ao rolar; a marca "Navegação" some aqui, o nome do
     app já aparece no cabeçalho. */
  body > header {
    position: sticky !important;
    top: 0;
    height: 56px;
    padding: 0 !important;
    margin: 0 !important;
    z-index: 80;
  }
  body > header .app-header {
    height: 56px;
    padding: 0 12px !important;
    gap: 8px !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
  }
  body > header .app-header > * {
    align-self: center !important;
    margin: 0 !important;
  }
  body > header .app-header-logo-icon {
    width: 32px !important;
    height: 32px !important;
    flex: 0 0 32px;
  }
  body > header .app-title {
    flex: 1 1 auto;
    min-width: 0;
    width: auto !important;
  }
  body > header .app-title h2 {
    margin: 0;
    font-size: 16px !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  body > header #userInfo {
    display: none !important;
  }
  body > header .logout-area {
    width: auto !important;
    height: 40px !important;
    margin-left: 0 !important;
    flex: 0 0 auto;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: 6px !important;
  }
  body > header .logout-area .header-logout-btn,
  body > header #evoCleanUiToggle,
  body > header #notificationBellBtn {
    width: 40px !important;
    min-width: 40px !important;
    height: 40px !important;
    min-height: 40px !important;
    padding: 0 !important;
    font-size: 0 !important;
    justify-content: center !important;
  }
  body nav.evo-topbar {
    position: sticky !important;
    top: 56px;
    z-index: 70;
    background: #fff;
    padding: 4px 10px !important;
    margin: 0 !important;
  }
  body nav.evo-topbar .evo-brand {
    display: none !important;
  }
}
.support-modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(15,23,42,.55);
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 16px;
}
.support-modal {
  width: min(720px, 100%);
  max-height: 92vh;
  overflow: auto;
  background: #ffffff;
  border-radius: 24px;
  border: 1px solid #e2e8f0;
  box-shadow: 0 24px 70px rgba(15,23,42,.35);
  padding: 18px;
}
.support-modal h2 {
  margin: 0 0 6px;
  color: #0f172a;
}
.support-modal p {
  color: #64748b;
}
.support-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 10px;
}
.support-modal textarea {
  min-height: 130px;
}
.support-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.support-actions button {
  width: auto;
  min-width: 130px;
}
.support-info-box {
  border: 1px solid #bfdbfe;
  background: #eff6ff;
  color: #1e3a8a;
  border-radius: 16px;
  padding: 10px 12px;
  font-size: 12px;
  line-height: 1.4;
  margin: 10px 0;
}
.support-admin-card {
  border-left: 6px solid #0f172a !important;
  background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
}
.support-ticket-card {
  border: 1px solid #e2e8f0;
  border-radius: 18px;
  padding: 12px;
  background: #ffffff;
  margin-bottom: 10px;
}
.support-ticket-card b {
  color: #0f172a;
}
.support-ticket-card .meta {
  color: #64748b;
  font-size: 12px;
  margin-top: 4px;
}
.support-status-open { background:#fee2e2;color:#991b1b; }
.support-status-progress { background:#fef3c7;color:#92400e; }
.support-status-done { background:#dcfce7;color:#166534; }
@media (max-width: 640px) {
  .support-floating-btn {
    right: 12px;
    bottom: 12px;
    min-width: 118px;
    padding: 11px 12px;
    font-size: 12px;
  }
  /* Achado de revisão (16/10/2026): o botão "Guia" usa um deslocamento fixo (right: 178px,
  calculado para o tamanho do botão "Reportar erro" no desktop) que não foi recalculado aqui -
  no celular, "Reportar erro" encolhe mas "Guia" continua na posição antiga, abrindo um vão
  entre os dois (ou, em telas bem estreitas, quase colando um no outro). */
  .support-floating-btn.guia-floating-btn {
    right: 140px;
  }
  .support-actions button {
    width: 100%;
  }
}
/* visita-rascunho-seguro-premium-style */
.visit-draft-safe-box {
  border: 1px solid #bfdbfe;
  border-left: 6px solid #2563eb;
  background: linear-gradient(135deg, #eff6ff 0%, #ffffff 100%);
  color: #1e3a8a;
  border-radius: 18px;
  padding: 12px 14px;
  margin: 12px 0;
  font-size: 13px;
  line-height: 1.45;
}
.visit-draft-safe-box b {
  color: #1e40af;
}
.visit-draft-safe-box.ok {
  border-color: #bbf7d0;
  border-left-color: #16a34a;
  background: linear-gradient(135deg, #f0fdf4 0%, #ffffff 100%);
  color: #166534;
}
.visit-draft-safe-box.warn {
  border-color: #fed7aa;
  border-left-color: #f97316;
  background: linear-gradient(135deg, #fff7ed 0%, #ffffff 100%);
  color: #9a3412;
}
.visit-draft-safe-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 8px;
}
.visit-draft-safe-actions button {
  width: auto;
  min-width: 120px;
  padding: 8px 10px;
  font-size: 12px;
}
/* saude-sistema-premium-style */
.system-health-card {
  border-left: 6px solid #0891b2 !important;
  background: linear-gradient(135deg, #ffffff 0%, #ecfeff 100%);
}
.system-health-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
  gap: 10px;
  margin: 12px 0;
}
.system-health-kpi {
  border: 1px solid #a5f3fc;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.system-health-kpi span {
  display: block;
  color: #64748b;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.system-health-kpi b {
  display: block;
  color: #0f172a;
  font-size: 22px;
  margin-top: 5px;
}
.system-health-kpi small {
  display: block;
  color: #64748b;
  margin-top: 4px;
  font-size: 11px;
}
.system-health-row {
  border: 1px solid #e2e8f0;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
  margin: 9px 0;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.system-health-row b {
  color: #0f172a;
  display: block;
}
.system-health-row p {
  margin: 4px 0 0;
  color: #64748b;
  font-size: 12px;
}
.system-health-pill {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 6px 10px;
  font-size: 11px;
  font-weight: 900;
}
.system-health-pill.ok {
  background: #dcfce7;
  color: #166534;
}
.system-health-pill.warn {
  background: #fef3c7;
  color: #92400e;
}
.system-health-pill.danger {
  background: #fee2e2;
  color: #991b1b;
}
.system-health-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.system-health-actions button {
  width: auto;
  min-width: 130px;
  padding: 9px 11px;
  font-size: 12px;
}
.system-health-list {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}
.system-health-list-item {
  border: 1px solid #e2e8f0;
  border-left: 5px solid #0891b2;
  border-radius: 14px;
  background: #fff;
  padding: 10px 12px;
}
.system-health-list-item b {
  color: #0f172a;
}
.system-health-list-item span {
  display: block;
  color: #64748b;
  font-size: 12px;
  margin-top: 3px;
}
/* modo-manutencao-premium-style */
.maintenance-lock-screen {
  min-height: calc(100vh - 90px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 22px;
  background:
    radial-gradient(circle at top left, rgba(37,99,235,.18), transparent 28%),
    radial-gradient(circle at bottom right, rgba(249,115,22,.18), transparent 26%),
    #f8fafc;
}
.maintenance-lock-card {
  width: min(760px, 100%);
  border: 1px solid #e2e8f0;
  border-radius: 28px;
  background: #ffffff;
  box-shadow: 0 24px 70px rgba(15,23,42,.18);
  padding: 26px;
  text-align: center;
}
.maintenance-lock-icon {
  width: 78px;
  height: 78px;
  border-radius: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #fff7ed;
  color: #c2410c;
  font-size: 36px;
  margin-bottom: 12px;
}
.maintenance-lock-card h1 {
  margin: 0;
  color: #0f172a;
  font-size: 30px;
}
.maintenance-lock-card p {
  color: #475569;
  line-height: 1.55;
  font-size: 15px;
}
.maintenance-lock-meta {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 10px;
  margin: 18px 0;
}
.maintenance-lock-mini {
  border: 1px solid #fed7aa;
  border-radius: 16px;
  background: #fff7ed;
  padding: 12px;
}
.maintenance-lock-mini span {
  display: block;
  color: #9a3412;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
}
.maintenance-lock-mini b {
  display: block;
  color: #7c2d12;
  font-size: 16px;
  margin-top: 5px;
}
.maintenance-admin-panel {
  border-left: 6px solid #f97316 !important;
  background: linear-gradient(135deg, #ffffff 0%, #fff7ed 100%);
}
.maintenance-admin-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 10px;
  margin: 12px 0;
}
.maintenance-admin-kpi {
  border: 1px solid #fed7aa;
  background: #fff;
  border-radius: 16px;
  padding: 12px;
}
.maintenance-admin-kpi span {
  display: block;
  color: #64748b;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
}
.maintenance-admin-kpi b {
  display: block;
  color: #0f172a;
  font-size: 20px;
  margin-top: 5px;
}
.maintenance-admin-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 12px;
}
.maintenance-admin-actions button {
  width: auto;
  min-width: 130px;
  padding: 9px 11px;
  font-size: 12px;
}
.maintenance-active-banner {
  border: 1px solid #fed7aa;
  border-left: 6px solid #f97316;
  background: #fff7ed;
  color: #9a3412;
  border-radius: 16px;
  padding: 12px 14px;
  margin-bottom: 12px;
}
.maintenance-active-banner b {
  color: #7c2d12;
}
/* backup-geral-sistema-premium-style */
.backup-system-card {
  border-left: 6px solid #4338ca !important;
  background: linear-gradient(135deg, #ffffff 0%, #eef2ff 100%);
}
.backup-system-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
  gap: 10px;
  margin: 12px 0;
}
.backup-system-kpi {
  border: 1px solid #c7d2fe;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.backup-system-kpi span {
  display: block;
  color: #64748b;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.backup-system-kpi b {
  display: block;
  color: #0f172a;
  font-size: 22px;
  margin-top: 5px;
}
.backup-system-actions {
  display: flex;
  gap: 9px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.backup-system-actions button {
  width: auto;
  min-width: 140px;
  padding: 9px 11px;
  font-size: 12px;
}
.backup-system-note {
  border: 1px solid #c7d2fe;
  background: #eef2ff;
  color: #3730a3;
  border-radius: 16px;
  padding: 12px 14px;
  margin: 12px 0;
  font-size: 12px;
  line-height: 1.45;
}
.backup-history-list {
  display: grid;
  gap: 9px;
  margin-top: 10px;
}
.backup-history-item {
  border: 1px solid #e2e8f0;
  border-left: 5px solid #4338ca;
  border-radius: 16px;
  background: #ffffff;
  padding: 11px 12px;
}
.backup-history-item b {
  color: #0f172a;
}
.backup-history-item span {
  display: block;
  color: #64748b;
  font-size: 12px;
  margin-top: 3px;
}
.backup-checklist {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}
.backup-check-row {
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  padding: 10px 12px;
  background: #ffffff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.backup-check-row span {
  color: #64748b;
  font-size: 12px;
}
/* backup-validacao-restauracao-premium-style */
.backup-validate-card {
  border-left: 6px solid #059669 !important;
  background: linear-gradient(135deg, #ffffff 0%, #ecfdf5 100%);
}
.backup-validate-result {
  border: 1px solid #bbf7d0;
  background: #ffffff;
  border-radius: 18px;
  padding: 14px;
  margin-top: 12px;
}
.backup-validate-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
  gap: 10px;
  margin: 12px 0;
}
.backup-validate-mini {
  border: 1px solid #bbf7d0;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.backup-validate-mini span {
  display: block;
  color: #64748b;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
}
.backup-validate-mini b {
  display: block;
  color: #0f172a;
  font-size: 20px;
  margin-top: 5px;
}
.backup-restore-plan {
  border: 1px solid #fed7aa;
  border-left: 6px solid #f97316;
  background: #fff7ed;
  color: #9a3412;
  border-radius: 16px;
  padding: 12px 14px;
  margin-top: 12px;
  font-size: 12px;
  line-height: 1.45;
}
.backup-collection-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 12px;
}
.backup-collection-table th,
.backup-collection-table td {
  border: 1px solid #e2e8f0;
  padding: 8px;
  font-size: 12px;
  text-align: left;
}
.backup-collection-table th {
  background: #f1f5f9;
}
.backup-validate-actions {
  display: flex;
  gap: 9px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.backup-validate-actions button {
  width: auto;
  min-width: 140px;
  padding: 9px 11px;
  font-size: 12px;
}
/* backup-restauracao-seletiva-premium-style */
.backup-restore-card {
  border: 1px solid #fecaca;
  border-left: 6px solid #dc2626;
  background: linear-gradient(135deg, #fff 0%, #fef2f2 100%);
  border-radius: 20px;
  padding: 14px;
  margin-top: 14px;
}
.backup-restore-card h3 {
  color: #7f1d1d;
}
.backup-restore-warning {
  border: 1px solid #fecaca;
  background: #fef2f2;
  color: #991b1b;
  border-radius: 16px;
  padding: 12px 14px;
  font-size: 12px;
  line-height: 1.45;
  margin: 10px 0;
}
.backup-restore-options {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 9px;
  margin: 12px 0;
}
.backup-restore-option {
  border: 1px solid #e2e8f0;
  background: #ffffff;
  border-radius: 15px;
  padding: 10px 12px;
}
.backup-restore-option label {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  cursor: pointer;
}
.backup-restore-option b {
  color: #0f172a;
}
.backup-restore-option span {
  display: block;
  color: #64748b;
  font-size: 12px;
  margin-top: 3px;
}
.backup-restore-actions {
  display: flex;
  gap: 9px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.backup-restore-actions button {
  width: auto;
  min-width: 140px;
  padding: 9px 11px;
  font-size: 12px;
}
.backup-restore-progress {
  border: 1px solid #cbd5e1;
  background: #f8fafc;
  border-radius: 16px;
  padding: 12px;
  margin-top: 12px;
  font-size: 12px;
}
.backup-restore-progress b {
  color: #0f172a;
}
.backup-restore-progress-bar {
  height: 10px;
  background: #e2e8f0;
  border-radius: 999px;
  overflow: hidden;
  margin-top: 8px;
}
.backup-restore-progress-bar div {
  height: 100%;
  width: 0%;
  background: #dc2626;
  border-radius: 999px;
  transition: width .25s ease;
}
/* seguranca-permissoes-premium-style */
.security-premium-card {
  border-left: 6px solid #111827 !important;
  background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
}
.security-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
  gap: 10px;
  margin: 12px 0;
}
.security-kpi {
  border: 1px solid #e2e8f0;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.security-kpi span {
  display: block;
  color: #64748b;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.security-kpi b {
  display: block;
  color: #0f172a;
  font-size: 22px;
  margin-top: 5px;
}
.security-kpi small {
  display: block;
  color: #64748b;
  margin-top: 4px;
  font-size: 11px;
}
.security-actions {
  display: flex;
  gap: 9px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.security-actions button {
  width: auto;
  min-width: 135px;
  padding: 9px 11px;
  font-size: 12px;
}
.security-section-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 12px;
  margin-top: 12px;
}
.security-box {
  border: 1px solid #e2e8f0;
  background: #ffffff;
  border-radius: 18px;
  padding: 14px;
}
.security-box h4 {
  margin: 0 0 6px;
  color: #0f172a;
}
.security-box p {
  color: #64748b;
  font-size: 12px;
  line-height: 1.4;
  margin: 0 0 10px;
}
.security-risk-item {
  border: 1px solid #e2e8f0;
  border-left: 5px solid #111827;
  background: #fff;
  border-radius: 14px;
  padding: 10px 12px;
  margin-top: 8px;
}
.security-risk-item.warn {
  border-left-color: #f97316;
}
.security-risk-item.danger {
  border-left-color: #dc2626;
}
.security-risk-item.ok {
  border-left-color: #16a34a;
}
.security-risk-item b {
  color: #0f172a;
  display: block;
}
.security-risk-item span {
  color: #64748b;
  display: block;
  margin-top: 3px;
  font-size: 12px;
}
.security-audit-list {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}
.security-audit-item {
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  background: #ffffff;
  padding: 10px 12px;
}
.security-audit-item b {
  color: #0f172a;
}
.security-audit-item span {
  display: block;
  color: #64748b;
  font-size: 12px;
  margin-top: 3px;
}
/* sessoes-dispositivos-premium-style */
.sessions-premium-card {
  border-left: 6px solid #2563eb !important;
  background: linear-gradient(135deg, #ffffff 0%, #eff6ff 100%);
}
.sessions-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
  gap: 10px;
  margin: 12px 0;
}
.sessions-kpi {
  border: 1px solid #bfdbfe;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.sessions-kpi span {
  display: block;
  color: #64748b;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.sessions-kpi b {
  display: block;
  color: #0f172a;
  font-size: 22px;
  margin-top: 5px;
}
.sessions-kpi small {
  display: block;
  color: #64748b;
  margin-top: 4px;
  font-size: 11px;
}
.sessions-actions {
  display: flex;
  gap: 9px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.sessions-actions button {
  width: auto;
  min-width: 135px;
  padding: 9px 11px;
  font-size: 12px;
}
.sessions-list {
  display: grid;
  gap: 9px;
  margin-top: 12px;
}
.sessions-item {
  border: 1px solid #e2e8f0;
  border-left: 5px solid #2563eb;
  border-radius: 16px;
  background: #ffffff;
  padding: 12px;
}
.sessions-item.offline {
  border-left-color: #94a3b8;
}
.sessions-item.warn {
  border-left-color: #f97316;
}
.sessions-item.danger {
  border-left-color: #dc2626;
}
.sessions-item-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
  flex-wrap: wrap;
}
.sessions-item b {
  color: #0f172a;
  display: block;
}
.sessions-item span {
  display: block;
  color: #64748b;
  font-size: 12px;
  margin-top: 3px;
}
.sessions-device {
  border: 1px solid #e2e8f0;
  background: #f8fafc;
  border-radius: 12px;
  padding: 8px 10px;
  margin-top: 8px;
  font-size: 11px;
  color: #64748b;
  word-break: break-word;
}
.sessions-alert {
  border: 1px solid #fed7aa;
  border-left: 6px solid #f97316;
  background: #fff7ed;
  color: #9a3412;
  border-radius: 16px;
  padding: 12px 14px;
  margin-top: 12px;
  font-size: 12px;
  line-height: 1.45;
}
/* seguranca-acoes-clicaveis-premium-style */
.security-action-clickable {
  cursor: pointer;
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.security-action-clickable:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(15, 23, 42, .10);
  border-color: #2563eb;
}
.security-action-clickable .security-action-footer {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 10px;
}
.security-action-clickable .security-action-footer button {
  width: auto;
  min-width: 115px;
  padding: 8px 10px;
  font-size: 12px;
}
.security-report-window {
  font-family: Arial, sans-serif;
  color: #0f172a;
  padding: 24px;
}
.security-report-window h1 {
  margin-bottom: 4px;
}
.security-report-window .muted {
  color: #64748b;
  font-size: 12px;
}
.security-report-window table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 14px;
}
.security-report-window th,
.security-report-window td {
  border: 1px solid #e2e8f0;
  padding: 8px;
  text-align: left;
  font-size: 12px;
}
.security-report-window th {
  background: #f1f5f9;
}
/* logs-tecnicos-premium-style */
.tech-logs-card {
  border-left: 6px solid #7c3aed !important;
  background: linear-gradient(135deg, #ffffff 0%, #f5f3ff 100%);
}
.tech-logs-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
  gap: 10px;
  margin: 12px 0;
}
.tech-logs-kpi {
  border: 1px solid #ddd6fe;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.tech-logs-kpi span {
  display: block;
  color: #64748b;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.tech-logs-kpi b {
  display: block;
  color: #0f172a;
  font-size: 22px;
  margin-top: 5px;
}
.tech-logs-kpi small {
  display: block;
  color: #64748b;
  margin-top: 4px;
  font-size: 11px;
}
.tech-logs-actions {
  display: flex;
  gap: 9px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.tech-logs-actions button {
  width: auto;
  min-width: 130px;
  padding: 9px 11px;
  font-size: 12px;
}
.tech-log-list {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}
.tech-log-item {
  border: 1px solid #e2e8f0;
  border-left: 6px solid #7c3aed;
  border-radius: 16px;
  background: #ffffff;
  padding: 12px;
}
.tech-log-item.resolvido {
  border-left-color: #16a34a;
  opacity: .82;
}
.tech-log-item.alerta {
  border-left-color: #f97316;
}
.tech-log-item.erro {
  border-left-color: #dc2626;
}
.tech-log-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
  flex-wrap: wrap;
}
.tech-log-head b {
  color: #0f172a;
  display: block;
}
.tech-log-head span,
.tech-log-item span {
  display: block;
  color: #64748b;
  font-size: 12px;
  margin-top: 3px;
}
.tech-log-stack {
  border: 1px solid #e2e8f0;
  background: #f8fafc;
  color: #334155;
  border-radius: 12px;
  padding: 9px 10px;
  margin-top: 9px;
  font-size: 11px;
  max-height: 110px;
  overflow: auto;
  white-space: pre-wrap;
  word-break: break-word;
}
.tech-log-mini-actions {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  margin-top: 10px;
}
.tech-log-mini-actions button {
  width: auto;
  min-width: 90px;
  padding: 7px 9px;
  font-size: 11px;
}
.tech-log-note {
  border: 1px solid #ddd6fe;
  background: #f5f3ff;
  color: #5b21b6;
  border-radius: 16px;
  padding: 12px 14px;
  margin-top: 12px;
  font-size: 12px;
  line-height: 1.45;
}
/* homologacao-sistema-premium-style */
.homolog-card-main {
  border-left: 6px solid #0f766e !important;
  background: linear-gradient(135deg, #ffffff 0%, #f0fdfa 100%);
}
.homolog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
  gap: 10px;
  margin: 12px 0;
}
.homolog-kpi {
  border: 1px solid #99f6e4;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.homolog-kpi span {
  display: block;
  color: #64748b;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.homolog-kpi b {
  display: block;
  color: #0f172a;
  font-size: 22px;
  margin-top: 5px;
}
.homolog-kpi small {
  display: block;
  color: #64748b;
  margin-top: 4px;
  font-size: 11px;
}
.homolog-progress-wrap {
  border: 1px solid #99f6e4;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
  margin: 12px 0;
}
.homolog-progress-bar {
  height: 14px;
  background: #ccfbf1;
  border-radius: 999px;
  overflow: hidden;
  margin-top: 8px;
}
.homolog-progress-bar div {
  height: 100%;
  background: #0f766e;
  border-radius: 999px;
  transition: width .25s ease;
}
.homolog-actions {
  display: flex;
  gap: 9px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.homolog-actions button {
  width: auto;
  min-width: 135px;
  padding: 9px 11px;
  font-size: 12px;
}
.homolog-section {
  margin-top: 14px;
}
.homolog-section-title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin: 12px 0 8px;
}
.homolog-section-title h3 {
  margin: 0;
  color: #0f172a;
}
.homolog-list {
  display: grid;
  gap: 9px;
}
.homolog-item {
  border: 1px solid #e2e8f0;
  border-left: 6px solid #94a3b8;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.homolog-item.homologado {
  border-left-color: #16a34a;
}
.homolog-item.em_teste {
  border-left-color: #2563eb;
}
.homolog-item.erro {
  border-left-color: #dc2626;
}
.homolog-item.pendente {
  border-left-color: #f97316;
}
.homolog-item-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
  flex-wrap: wrap;
}
.homolog-item b {
  display: block;
  color: #0f172a;
}
.homolog-item span {
  display: block;
  color: #64748b;
  font-size: 12px;
  margin-top: 3px;
  line-height: 1.35;
}
.homolog-item-actions {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  margin-top: 10px;
}
.homolog-item-actions button {
  width: auto;
  min-width: 82px;
  padding: 7px 9px;
  font-size: 11px;
}
.homolog-note {
  border: 1px solid #99f6e4;
  background: #f0fdfa;
  color: #115e59;
  border-radius: 16px;
  padding: 12px 14px;
  margin-top: 12px;
  font-size: 12px;
  line-height: 1.45;
}
.homolog-observacao {
  border: 1px dashed #cbd5e1;
  background: #f8fafc;
  color: #475569;
  border-radius: 12px;
  padding: 8px 10px;
  margin-top: 8px;
  font-size: 11px;
  white-space: pre-wrap;
}
/* testes-estabilidade-premium-style */
.stability-card-main {
  border-left: 6px solid #0284c7 !important;
  background: linear-gradient(135deg, #ffffff 0%, #f0f9ff 100%);
}
.stability-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
  gap: 10px;
  margin: 12px 0;
}
.stability-kpi {
  border: 1px solid #bae6fd;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.stability-kpi span {
  display: block;
  color: #64748b;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.stability-kpi b {
  display: block;
  color: #0f172a;
  font-size: 22px;
  margin-top: 5px;
}
.stability-kpi small {
  display: block;
  color: #64748b;
  margin-top: 4px;
  font-size: 11px;
}
.stability-actions {
  display: flex;
  gap: 9px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.stability-actions button {
  width: auto;
  min-width: 135px;
  padding: 9px 11px;
  font-size: 12px;
}
.stability-progress {
  border: 1px solid #bae6fd;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
  margin-top: 12px;
}
.stability-progress-bar {
  height: 12px;
  background: #e0f2fe;
  border-radius: 999px;
  overflow: hidden;
  margin-top: 8px;
}
.stability-progress-bar div {
  height: 100%;
  background: #0284c7;
  border-radius: 999px;
  transition: width .25s ease;
}
.stability-result-list {
  display: grid;
  gap: 9px;
  margin-top: 12px;
}
.stability-result-item {
  border: 1px solid #e2e8f0;
  border-left: 6px solid #94a3b8;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.stability-result-item.ok {
  border-left-color: #16a34a;
}
.stability-result-item.warn {
  border-left-color: #f97316;
}
.stability-result-item.danger {
  border-left-color: #dc2626;
}
.stability-result-head {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  align-items: flex-start;
}
.stability-result-item b {
  display: block;
  color: #0f172a;
}
.stability-result-item span {
  display: block;
  color: #64748b;
  font-size: 12px;
  margin-top: 3px;
  line-height: 1.35;
}
.stability-note {
  border: 1px solid #bae6fd;
  background: #f0f9ff;
  color: #075985;
  border-radius: 16px;
  padding: 12px 14px;
  margin-top: 12px;
  font-size: 12px;
  line-height: 1.45;
}
.stability-history-item {
  border: 1px solid #e2e8f0;
  border-left: 5px solid #0284c7;
  background: #ffffff;
  border-radius: 16px;
  padding: 11px 12px;
  margin-top: 8px;
}
.stability-history-item.ok {
  border-left-color: #16a34a;
}
.stability-history-item.danger {
  border-left-color: #dc2626;
}
.stability-history-item b {
  color: #0f172a;
  display: block;
}
.stability-history-item span {
  display: block;
  color: #64748b;
  font-size: 12px;
  margin-top: 3px;
}
/* versoes-publicacao-premium-style */
.release-card-main {
  border-left: 6px solid #4f46e5 !important;
  background: linear-gradient(135deg, #ffffff 0%, #eef2ff 100%);
}
.release-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
  gap: 10px;
  margin: 12px 0;
}
.release-kpi {
  border: 1px solid #c7d2fe;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.release-kpi span {
  display: block;
  color: #64748b;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.release-kpi b {
  display: block;
  color: #0f172a;
  font-size: 22px;
  margin-top: 5px;
}
.release-kpi small {
  display: block;
  color: #64748b;
  margin-top: 4px;
  font-size: 11px;
}
.release-actions {
  display: flex;
  gap: 9px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.release-actions button {
  width: auto;
  min-width: 135px;
  padding: 9px 11px;
  font-size: 12px;
}
.release-form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 10px;
  margin-top: 12px;
}
.release-checks {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 8px;
  margin-top: 10px;
}
.release-checks label {
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  background: #fff;
  padding: 9px 10px;
  display: flex;
  gap: 8px;
  align-items: flex-start;
  font-size: 12px;
  color: #334155;
}
.release-list {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}
.release-item {
  border: 1px solid #e2e8f0;
  border-left: 6px solid #4f46e5;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.release-item.publicada {
  border-left-color: #16a34a;
}
.release-item.homologada {
  border-left-color: #0f766e;
}
.release-item.teste {
  border-left-color: #2563eb;
}
.release-item.rollback {
  border-left-color: #dc2626;
}
.release-head {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  align-items: flex-start;
}
.release-head b {
  display: block;
  color: #0f172a;
}
.release-item span {
  display: block;
  color: #64748b;
  font-size: 12px;
  margin-top: 3px;
  line-height: 1.35;
}
.release-note {
  border: 1px solid #c7d2fe;
  background: #eef2ff;
  color: #3730a3;
  border-radius: 16px;
  padding: 12px 14px;
  margin-top: 12px;
  font-size: 12px;
  line-height: 1.45;
}
.release-mini-actions {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  margin-top: 10px;
}
.release-mini-actions button {
  width: auto;
  min-width: 92px;
  padding: 7px 9px;
  font-size: 11px;
}
.release-modulos {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 8px;
}
.release-modulos small {
  border: 1px solid #c7d2fe;
  background: #eef2ff;
  color: #3730a3;
  border-radius: 999px;
  padding: 4px 8px;
  font-weight: 800;
}
.release-text-box {
  border: 1px dashed #cbd5e1;
  background: #f8fafc;
  color: #475569;
  border-radius: 12px;
  padding: 8px 10px;
  margin-top: 8px;
  font-size: 11px;
  white-space: pre-wrap;
}
/* publicacao-assistida-premium-style */
.deploy-card-main {
  border-left: 6px solid #ea580c !important;
  background: linear-gradient(135deg, #ffffff 0%, #fff7ed 100%);
}
.deploy-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
  gap: 10px;
  margin: 12px 0;
}
.deploy-kpi {
  border: 1px solid #fed7aa;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.deploy-kpi span {
  display: block;
  color: #64748b;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.deploy-kpi b {
  display: block;
  color: #0f172a;
  font-size: 22px;
  margin-top: 5px;
}
.deploy-kpi small {
  display: block;
  color: #64748b;
  margin-top: 4px;
  font-size: 11px;
}
.deploy-actions {
  display: flex;
  gap: 9px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.deploy-actions button {
  width: auto;
  min-width: 135px;
  padding: 9px 11px;
  font-size: 12px;
}
.deploy-checklist {
  display: grid;
  gap: 9px;
  margin-top: 12px;
}
.deploy-check-item {
  border: 1px solid #e2e8f0;
  border-left: 6px solid #f97316;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.deploy-check-item.feito {
  border-left-color: #16a34a;
}
.deploy-check-head {
  display: flex;
  gap: 10px;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
}
.deploy-check-item b {
  display: block;
  color: #0f172a;
}
.deploy-check-item span {
  display: block;
  color: #64748b;
  font-size: 12px;
  margin-top: 3px;
  line-height: 1.35;
}
.deploy-check-actions {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  margin-top: 10px;
}
.deploy-check-actions button {
  width: auto;
  min-width: 85px;
  padding: 7px 9px;
  font-size: 11px;
}
.deploy-command-box {
  border: 1px solid #fed7aa;
  background: #fff7ed;
  border-radius: 16px;
  padding: 12px;
  margin-top: 12px;
}
.deploy-command-box pre {
  margin: 0;
  white-space: pre-wrap;
  word-break: break-word;
  font-size: 12px;
  color: #7c2d12;
}
.deploy-note {
  border: 1px solid #fed7aa;
  background: #fff7ed;
  color: #9a3412;
  border-radius: 16px;
  padding: 12px 14px;
  margin-top: 12px;
  font-size: 12px;
  line-height: 1.45;
}
.deploy-history {
  display: grid;
  gap: 9px;
  margin-top: 12px;
}
.deploy-history-item {
  border: 1px solid #e2e8f0;
  border-left: 6px solid #ea580c;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.deploy-history-item.sucesso {
  border-left-color: #16a34a;
}
.deploy-history-item.falha {
  border-left-color: #dc2626;
}
.deploy-history-item b {
  display: block;
  color: #0f172a;
}
.deploy-history-item span {
  display: block;
  color: #64748b;
  font-size: 12px;
  margin-top: 3px;
}
.deploy-form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 10px;
  margin-top: 12px;
}
/* treinamento-manual-premium-style */
.training-card-main {
  border-left: 6px solid #9333ea !important;
  background: linear-gradient(135deg, #ffffff 0%, #faf5ff 100%);
}
.training-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
  gap: 10px;
  margin: 12px 0;
}
.training-kpi {
  border: 1px solid #e9d5ff;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.training-kpi span {
  display: block;
  color: #64748b;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.training-kpi b {
  display: block;
  color: #0f172a;
  font-size: 22px;
  margin-top: 5px;
}
.training-kpi small {
  display: block;
  color: #64748b;
  margin-top: 4px;
  font-size: 11px;
}
.training-actions {
  display: flex;
  gap: 9px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.training-actions button {
  width: auto;
  min-width: 135px;
  padding: 9px 11px;
  font-size: 12px;
}
.training-profile-tabs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin: 12px 0;
}
.training-profile-tabs button {
  width: auto;
  min-width: 110px;
  padding: 8px 10px;
  font-size: 12px;
}
.training-profile-tabs button.active {
  background: #9333ea;
  color: white;
}
.training-list {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}
.training-item {
  border: 1px solid #e2e8f0;
  border-left: 6px solid #9333ea;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.training-item.concluido {
  border-left-color: #16a34a;
}
.training-item.andamento {
  border-left-color: #2563eb;
}
.training-item.pendente {
  border-left-color: #f97316;
}
.training-head {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  align-items: flex-start;
}
.training-head b {
  display: block;
  color: #0f172a;
}
.training-item span {
  display: block;
  color: #64748b;
  font-size: 12px;
  margin-top: 3px;
  line-height: 1.35;
}
.training-steps {
  border: 1px dashed #d8b4fe;
  background: #faf5ff;
  color: #581c87;
  border-radius: 12px;
  padding: 9px 10px;
  margin-top: 9px;
  font-size: 12px;
  line-height: 1.45;
}
.training-mini-actions {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  margin-top: 10px;
}
.training-mini-actions button {
  width: auto;
  min-width: 92px;
  padding: 7px 9px;
  font-size: 11px;
}
.training-note {
  border: 1px solid #e9d5ff;
  background: #faf5ff;
  color: #6b21a8;
  border-radius: 16px;
  padding: 12px 14px;
  margin-top: 12px;
  font-size: 12px;
  line-height: 1.45;
}
.training-search-row {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) 170px;
  gap: 10px;
  margin-top: 12px;
}
@media (max-width: 720px) {
  .training-search-row { grid-template-columns: 1fr; }
}
.training-manual-box {
  border: 1px solid #e2e8f0;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
  margin-top: 12px;
}
.training-manual-box h4 {
  margin: 0 0 6px;
  color: #0f172a;
}
.training-manual-box p {
  color: #64748b;
  font-size: 12px;
  margin: 0;
  line-height: 1.4;
}
/* implantacao-premium-style */
.implant-card-main {
  border-left: 6px solid #059669 !important;
  background: linear-gradient(135deg, #ffffff 0%, #ecfdf5 100%);
}
.implant-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
  gap: 10px;
  margin: 12px 0;
}
.implant-kpi {
  border: 1px solid #bbf7d0;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.implant-kpi span {
  display: block;
  color: #64748b;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.implant-kpi b {
  display: block;
  color: #0f172a;
  font-size: 22px;
  margin-top: 5px;
}
.implant-kpi small {
  display: block;
  color: #64748b;
  margin-top: 4px;
  font-size: 11px;
}
.implant-actions {
  display: flex;
  gap: 9px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.implant-actions button {
  width: auto;
  min-width: 135px;
  padding: 9px 11px;
  font-size: 12px;
}
.implant-form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 10px;
  margin-top: 12px;
}
.implant-note {
  border: 1px solid #bbf7d0;
  background: #ecfdf5;
  color: #065f46;
  border-radius: 16px;
  padding: 12px 14px;
  margin-top: 12px;
  font-size: 12px;
  line-height: 1.45;
}
.implant-list {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}
.implant-item {
  border: 1px solid #e2e8f0;
  border-left: 6px solid #059669;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.implant-item.concluida {
  border-left-color: #16a34a;
}
.implant-item.andamento {
  border-left-color: #2563eb;
}
.implant-item.pendente {
  border-left-color: #f97316;
}
.implant-item.cancelada {
  border-left-color: #dc2626;
}
.implant-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
  flex-wrap: wrap;
}
.implant-head b {
  display: block;
  color: #0f172a;
}
.implant-item span {
  display: block;
  color: #64748b;
  font-size: 12px;
  margin-top: 3px;
  line-height: 1.35;
}
.implant-progress {
  border: 1px solid #bbf7d0;
  background: #f0fdf4;
  border-radius: 14px;
  padding: 10px;
  margin-top: 10px;
}
.implant-progress-bar {
  height: 12px;
  background: #dcfce7;
  border-radius: 999px;
  overflow: hidden;
  margin-top: 7px;
}
.implant-progress-bar div {
  height: 100%;
  background: #059669;
  border-radius: 999px;
  transition: width .25s ease;
}
.implant-steps {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}
.implant-step {
  border: 1px solid #e2e8f0;
  border-left: 5px solid #f97316;
  border-radius: 14px;
  background: #ffffff;
  padding: 10px;
}
.implant-step.feita {
  border-left-color: #16a34a;
}
.implant-step-head {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
  align-items: flex-start;
}
.implant-step b {
  color: #0f172a;
  display: block;
}
.implant-step span {
  font-size: 11px;
}
.implant-step-actions {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  margin-top: 8px;
}
.implant-step-actions button {
  width: auto;
  min-width: 80px;
  padding: 7px 9px;
  font-size: 11px;
}
.implant-filter-row {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) 180px;
  gap: 10px;
  margin-top: 12px;
}
@media (max-width: 720px) {
  .implant-filter-row { grid-template-columns: 1fr; }
}
.implant-text-box {
  border: 1px dashed #cbd5e1;
  background: #f8fafc;
  color: #475569;
  border-radius: 12px;
  padding: 8px 10px;
  margin-top: 8px;
  font-size: 11px;
  white-space: pre-wrap;
}
/* sucesso-cliente-premium-style */
.success-card-main {
  border-left: 6px solid #0f766e !important;
  background: linear-gradient(135deg, #ffffff 0%, #f0fdfa 100%);
}
.success-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
  gap: 10px;
  margin: 12px 0;
}
.success-kpi {
  border: 1px solid #99f6e4;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.success-kpi span {
  display: block;
  color: #64748b;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.success-kpi b {
  display: block;
  color: #0f172a;
  font-size: 22px;
  margin-top: 5px;
}
.success-kpi small {
  display: block;
  color: #64748b;
  margin-top: 4px;
  font-size: 11px;
}
.success-actions {
  display: flex;
  gap: 9px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.success-actions button {
  width: auto;
  min-width: 135px;
  padding: 9px 11px;
  font-size: 12px;
}
.success-form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 10px;
  margin-top: 12px;
}
.success-note {
  border: 1px solid #99f6e4;
  background: #f0fdfa;
  color: #115e59;
  border-radius: 16px;
  padding: 12px 14px;
  margin-top: 12px;
  font-size: 12px;
  line-height: 1.45;
}
.success-list {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}
.success-item {
  border: 1px solid #e2e8f0;
  border-left: 6px solid #0f766e;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.success-item.saudavel {
  border-left-color: #16a34a;
}
.success-item.atencao {
  border-left-color: #f97316;
}
.success-item.risco {
  border-left-color: #dc2626;
}
.success-item.inativo {
  border-left-color: #64748b;
}
.success-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
  flex-wrap: wrap;
}
.success-head b {
  display: block;
  color: #0f172a;
}
.success-item span {
  display: block;
  color: #64748b;
  font-size: 12px;
  margin-top: 3px;
  line-height: 1.35;
}
.success-health {
  border: 1px solid #99f6e4;
  background: #f0fdfa;
  border-radius: 14px;
  padding: 10px;
  margin-top: 10px;
}
.success-health-bar {
  height: 12px;
  background: #ccfbf1;
  border-radius: 999px;
  overflow: hidden;
  margin-top: 7px;
}
.success-health-bar div {
  height: 100%;
  background: #0f766e;
  border-radius: 999px;
  transition: width .25s ease;
}
.success-health-bar.risco div {
  background: #dc2626;
}
.success-health-bar.atencao div {
  background: #f97316;
}
.success-text-box {
  border: 1px dashed #cbd5e1;
  background: #f8fafc;
  color: #475569;
  border-radius: 12px;
  padding: 8px 10px;
  margin-top: 8px;
  font-size: 11px;
  white-space: pre-wrap;
}
.success-mini-actions {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  margin-top: 10px;
}
.success-mini-actions button {
  width: auto;
  min-width: 92px;
  padding: 7px 9px;
  font-size: 11px;
}
.success-filter-row {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) 180px;
  gap: 10px;
  margin-top: 12px;
}
.success-tags {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 8px;
}
.success-tags small {
  border: 1px solid #99f6e4;
  background: #f0fdfa;
  color: #115e59;
  border-radius: 999px;
  padding: 4px 8px;
  font-weight: 800;
}
@media (max-width: 720px) {
  .success-filter-row { grid-template-columns: 1fr; }
}
/* renovacao-expansao-premium-style */
.renew-card-main {
  border-left: 6px solid #7c3aed !important;
  background: linear-gradient(135deg, #ffffff 0%, #f5f3ff 100%);
}
.renew-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
  gap: 10px;
  margin: 12px 0;
}
.renew-kpi {
  border: 1px solid #ddd6fe;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.renew-kpi span {
  display: block;
  color: #64748b;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.renew-kpi b {
  display: block;
  color: #0f172a;
  font-size: 22px;
  margin-top: 5px;
}
.renew-kpi small {
  display: block;
  color: #64748b;
  margin-top: 4px;
  font-size: 11px;
}
.renew-actions {
  display: flex;
  gap: 9px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.renew-actions button {
  width: auto;
  min-width: 135px;
  padding: 9px 11px;
  font-size: 12px;
}
.renew-form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 10px;
  margin-top: 12px;
}
.renew-note {
  border: 1px solid #ddd6fe;
  background: #f5f3ff;
  color: #5b21b6;
  border-radius: 16px;
  padding: 12px 14px;
  margin-top: 12px;
  font-size: 12px;
  line-height: 1.45;
}
.renew-list {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}
.renew-item {
  border: 1px solid #e2e8f0;
  border-left: 6px solid #7c3aed;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.renew-item.negociacao {
  border-left-color: #2563eb;
}
.renew-item.renovado {
  border-left-color: #16a34a;
}
.renew-item.risco {
  border-left-color: #dc2626;
}
.renew-item.perdido {
  border-left-color: #64748b;
}
.renew-item.expansao {
  border-left-color: #0f766e;
}
.renew-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
  flex-wrap: wrap;
}
.renew-head b {
  display: block;
  color: #0f172a;
}
.renew-item span {
  display: block;
  color: #64748b;
  font-size: 12px;
  margin-top: 3px;
  line-height: 1.35;
}
.renew-text-box {
  border: 1px dashed #cbd5e1;
  background: #f8fafc;
  color: #475569;
  border-radius: 12px;
  padding: 8px 10px;
  margin-top: 8px;
  font-size: 11px;
  white-space: pre-wrap;
}
.renew-mini-actions {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  margin-top: 10px;
}
.renew-mini-actions button {
  width: auto;
  min-width: 92px;
  padding: 7px 9px;
  font-size: 11px;
}
.renew-filter-row {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) 180px;
  gap: 10px;
  margin-top: 12px;
}
.renew-pipeline {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}
.renew-step {
  border: 1px solid #e2e8f0;
  border-left: 5px solid #f97316;
  border-radius: 14px;
  background: #ffffff;
  padding: 10px;
}
.renew-step.feita {
  border-left-color: #16a34a;
}
.renew-step-head {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
  align-items: flex-start;
}
.renew-step b {
  color: #0f172a;
  display: block;
}
.renew-step span {
  font-size: 11px;
}
.renew-step-actions {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  margin-top: 8px;
}
.renew-step-actions button {
  width: auto;
  min-width: 80px;
  padding: 7px 9px;
  font-size: 11px;
}
.renew-progress {
  border: 1px solid #ddd6fe;
  background: #f5f3ff;
  border-radius: 14px;
  padding: 10px;
  margin-top: 10px;
}
.renew-progress-bar {
  height: 12px;
  background: #ede9fe;
  border-radius: 999px;
  overflow: hidden;
  margin-top: 7px;
}
.renew-progress-bar div {
  height: 100%;
  background: #7c3aed;
  border-radius: 999px;
  transition: width .25s ease;
}
@media (max-width: 720px) {
  .renew-filter-row { grid-template-columns: 1fr; }
}
/* metas-indicadores-premium-style */
.goals-card-main {
  border-left: 6px solid #2563eb !important;
  background: linear-gradient(135deg, #ffffff 0%, #eff6ff 100%);
}
.goals-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
  gap: 10px;
  margin: 12px 0;
}
.goals-kpi {
  border: 1px solid #bfdbfe;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.goals-kpi span {
  display: block;
  color: #64748b;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.goals-kpi b {
  display: block;
  color: #0f172a;
  font-size: 22px;
  margin-top: 5px;
}
.goals-kpi small {
  display: block;
  color: #64748b;
  margin-top: 4px;
  font-size: 11px;
}
.goals-actions {
  display: flex;
  gap: 9px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.goals-actions button {
  width: auto;
  min-width: 135px;
  padding: 9px 11px;
  font-size: 12px;
}
.goals-form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 10px;
  margin-top: 12px;
}
.goals-note {
  border: 1px solid #bfdbfe;
  background: #eff6ff;
  color: #1e3a8a;
  border-radius: 16px;
  padding: 12px 14px;
  margin-top: 12px;
  font-size: 12px;
  line-height: 1.45;
}
.goals-list {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}
.goals-item {
  border: 1px solid #e2e8f0;
  border-left: 6px solid #2563eb;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.goals-item.concluida {
  border-left-color: #16a34a;
}
.goals-item.andamento {
  border-left-color: #2563eb;
}
.goals-item.risco {
  border-left-color: #dc2626;
}
.goals-item.pausada {
  border-left-color: #64748b;
}
.goals-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
  flex-wrap: wrap;
}
.goals-head b {
  display: block;
  color: #0f172a;
}
.goals-item span {
  display: block;
  color: #64748b;
  font-size: 12px;
  margin-top: 3px;
  line-height: 1.35;
}
.goals-progress {
  border: 1px solid #bfdbfe;
  background: #eff6ff;
  border-radius: 14px;
  padding: 10px;
  margin-top: 10px;
}
.goals-progress-bar {
  height: 12px;
  background: #dbeafe;
  border-radius: 999px;
  overflow: hidden;
  margin-top: 7px;
}
.goals-progress-bar div {
  height: 100%;
  background: #2563eb;
  border-radius: 999px;
  transition: width .25s ease;
}
.goals-progress-bar.ok div {
  background: #16a34a;
}
.goals-progress-bar.risco div {
  background: #dc2626;
}
.goals-text-box {
  border: 1px dashed #cbd5e1;
  background: #f8fafc;
  color: #475569;
  border-radius: 12px;
  padding: 8px 10px;
  margin-top: 8px;
  font-size: 11px;
  white-space: pre-wrap;
}
.goals-mini-actions {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  margin-top: 10px;
}
.goals-mini-actions button {
  width: auto;
  min-width: 92px;
  padding: 7px 9px;
  font-size: 11px;
}
.goals-filter-row {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) 180px;
  gap: 10px;
  margin-top: 12px;
}
.goals-tags {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 8px;
}
.goals-tags small {
  border: 1px solid #bfdbfe;
  background: #eff6ff;
  color: #1e40af;
  border-radius: 999px;
  padding: 4px 8px;
  font-weight: 800;
}
@media (max-width: 720px) {
  .goals-filter-row { grid-template-columns: 1fr; }
}
/* central-executiva-premium-style */
.exec360-card-main {
  border-left: 6px solid #111827 !important;
  background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
}
.exec360-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
  gap: 10px;
  margin: 12px 0;
}
.exec360-kpi {
  border: 1px solid #cbd5e1;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.exec360-kpi span {
  display: block;
  color: #64748b;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.exec360-kpi b {
  display: block;
  color: #0f172a;
  font-size: 22px;
  margin-top: 5px;
}
.exec360-kpi small {
  display: block;
  color: #64748b;
  margin-top: 4px;
  font-size: 11px;
}
.exec360-actions {
  display: flex;
  gap: 9px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.exec360-actions button {
  width: auto;
  min-width: 135px;
  padding: 9px 11px;
  font-size: 12px;
}
.exec360-note {
  border: 1px solid #cbd5e1;
  background: #f8fafc;
  color: #334155;
  border-radius: 16px;
  padding: 12px 14px;
  margin-top: 12px;
  font-size: 12px;
  line-height: 1.45;
}
.exec360-panels {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 10px;
  margin-top: 12px;
}
.exec360-panel {
  border: 1px solid #e2e8f0;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.exec360-panel h4 {
  margin: 0 0 8px;
  color: #0f172a;
}
.exec360-panel-row {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  border-top: 1px solid #f1f5f9;
  padding: 7px 0;
  font-size: 12px;
  color: #475569;
}
.exec360-panel-row:first-of-type {
  border-top: 0;
}
.exec360-form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 10px;
  margin-top: 12px;
}
.exec360-list {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}
.exec360-item {
  border: 1px solid #e2e8f0;
  border-left: 6px solid #111827;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.exec360-item.concluida {
  border-left-color: #16a34a;
}
.exec360-item.andamento {
  border-left-color: #2563eb;
}
.exec360-item.risco {
  border-left-color: #dc2626;
}
.exec360-item.pendente {
  border-left-color: #f97316;
}
.exec360-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
  flex-wrap: wrap;
}
.exec360-head b {
  display: block;
  color: #0f172a;
}
.exec360-item span {
  display: block;
  color: #64748b;
  font-size: 12px;
  margin-top: 3px;
  line-height: 1.35;
}
.exec360-text-box {
  border: 1px dashed #cbd5e1;
  background: #f8fafc;
  color: #475569;
  border-radius: 12px;
  padding: 8px 10px;
  margin-top: 8px;
  font-size: 11px;
  white-space: pre-wrap;
}
.exec360-mini-actions {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  margin-top: 10px;
}
.exec360-mini-actions button {
  width: auto;
  min-width: 92px;
  padding: 7px 9px;
  font-size: 11px;
}
.exec360-filter-row {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) 180px;
  gap: 10px;
  margin-top: 12px;
}
.exec360-tags {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 8px;
}
.exec360-tags small {
  border: 1px solid #cbd5e1;
  background: #f8fafc;
  color: #334155;
  border-radius: 999px;
  padding: 4px 8px;
  font-weight: 800;
}
@media (max-width: 720px) {
  .exec360-filter-row { grid-template-columns: 1fr; }
}
/* rotinas-operacionais-premium-style */
.routine-card-main {
  border-left: 6px solid #0891b2 !important;
  background: linear-gradient(135deg, #ffffff 0%, #ecfeff 100%);
}
.routine-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
  gap: 10px;
  margin: 12px 0;
}
.routine-kpi {
  border: 1px solid #a5f3fc;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.routine-kpi span {
  display: block;
  color: #64748b;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.routine-kpi b {
  display: block;
  color: #0f172a;
  font-size: 22px;
  margin-top: 5px;
}
.routine-kpi small {
  display: block;
  color: #64748b;
  margin-top: 4px;
  font-size: 11px;
}
.routine-actions {
  display: flex;
  gap: 9px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.routine-actions button {
  width: auto;
  min-width: 135px;
  padding: 9px 11px;
  font-size: 12px;
}
.routine-form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 10px;
  margin-top: 12px;
}
.routine-note {
  border: 1px solid #a5f3fc;
  background: #ecfeff;
  color: #155e75;
  border-radius: 16px;
  padding: 12px 14px;
  margin-top: 12px;
  font-size: 12px;
  line-height: 1.45;
}
.routine-list {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}
.routine-item {
  border: 1px solid #e2e8f0;
  border-left: 6px solid #0891b2;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.routine-item.ativa {
  border-left-color: #0891b2;
}
.routine-item.concluida {
  border-left-color: #16a34a;
}
.routine-item.atrasada {
  border-left-color: #dc2626;
}
.routine-item.pausada {
  border-left-color: #64748b;
}
.routine-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
  flex-wrap: wrap;
}
.routine-head b {
  display: block;
  color: #0f172a;
}
.routine-item span {
  display: block;
  color: #64748b;
  font-size: 12px;
  margin-top: 3px;
  line-height: 1.35;
}
.routine-text-box {
  border: 1px dashed #cbd5e1;
  background: #f8fafc;
  color: #475569;
  border-radius: 12px;
  padding: 8px 10px;
  margin-top: 8px;
  font-size: 11px;
  white-space: pre-wrap;
}
.routine-mini-actions {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  margin-top: 10px;
}
.routine-mini-actions button {
  width: auto;
  min-width: 92px;
  padding: 7px 9px;
  font-size: 11px;
}
.routine-filter-row {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) 180px;
  gap: 10px;
  margin-top: 12px;
}
.routine-tags {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 8px;
}
.routine-tags small {
  border: 1px solid #a5f3fc;
  background: #ecfeff;
  color: #155e75;
  border-radius: 999px;
  padding: 4px 8px;
  font-weight: 800;
}
.routine-history {
  border: 1px solid #e2e8f0;
  background: #ffffff;
  border-radius: 14px;
  padding: 10px;
  margin-top: 8px;
}
.routine-history b {
  color: #0f172a;
}
.routine-history span {
  font-size: 11px;
}
@media (max-width: 720px) {
  .routine-filter-row { grid-template-columns: 1fr; }
}
/* pre-producao-final-premium-style */
.preprod-card-main {
  border-left: 6px solid #b45309 !important;
  background: linear-gradient(135deg, #ffffff 0%, #fffbeb 100%);
}
.preprod-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
  gap: 10px;
  margin: 12px 0;
}
.preprod-kpi {
  border: 1px solid #fde68a;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.preprod-kpi span {
  display: block;
  color: #64748b;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.preprod-kpi b {
  display: block;
  color: #0f172a;
  font-size: 22px;
  margin-top: 5px;
}
.preprod-kpi small {
  display: block;
  color: #64748b;
  margin-top: 4px;
  font-size: 11px;
}
.preprod-actions {
  display: flex;
  gap: 9px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.preprod-actions button {
  width: auto;
  min-width: 135px;
  padding: 9px 11px;
  font-size: 12px;
}
.preprod-note {
  border: 1px solid #fde68a;
  background: #fffbeb;
  color: #92400e;
  border-radius: 16px;
  padding: 12px 14px;
  margin-top: 12px;
  font-size: 12px;
  line-height: 1.45;
}
.preprod-list {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}
.preprod-item {
  border: 1px solid #e2e8f0;
  border-left: 6px solid #f97316;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.preprod-item.aprovado {
  border-left-color: #16a34a;
}
.preprod-item.teste {
  border-left-color: #2563eb;
}
.preprod-item.erro {
  border-left-color: #dc2626;
}
.preprod-item.pendente {
  border-left-color: #f97316;
}
.preprod-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
  flex-wrap: wrap;
}
.preprod-head b {
  display: block;
  color: #0f172a;
}
.preprod-item span {
  display: block;
  color: #64748b;
  font-size: 12px;
  margin-top: 3px;
  line-height: 1.35;
}
.preprod-mini-actions {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  margin-top: 10px;
}
.preprod-mini-actions button {
  width: auto;
  min-width: 92px;
  padding: 7px 9px;
  font-size: 11px;
}
.preprod-progress {
  border: 1px solid #fde68a;
  background: #fffbeb;
  border-radius: 14px;
  padding: 10px;
  margin-top: 10px;
}
.preprod-progress-bar {
  height: 12px;
  background: #fef3c7;
  border-radius: 999px;
  overflow: hidden;
  margin-top: 7px;
}
.preprod-progress-bar div {
  height: 100%;
  background: #b45309;
  border-radius: 999px;
  transition: width .25s ease;
}
.preprod-text-box {
  border: 1px dashed #cbd5e1;
  background: #f8fafc;
  color: #475569;
  border-radius: 12px;
  padding: 8px 10px;
  margin-top: 8px;
  font-size: 11px;
  white-space: pre-wrap;
}
.preprod-filter-row {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) 180px;
  gap: 10px;
  margin-top: 12px;
}
.preprod-group-title {
  margin-top: 16px;
  padding: 9px 11px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  color: #0f172a;
  font-weight: 900;
}
@media (max-width: 720px) {
  .preprod-filter-row { grid-template-columns: 1fr; }
}
/* producao-final-premium-style */
/* ====================================================
PRODUÇÃO FINAL PREMIUM
`aba-producao-final.js` usava estas classes desde que foi criada, mas
nunca existiu CSS pra nenhuma delas em lugar nenhum do app - a tela
sempre renderizou com texto cru, sem cartao, sem cor, sem grade. Mesmo
padrao visual do `.preprod-*` (a tela irma "Pré-Produção"), so que com
acento vermelho (--evo-danger) por ser o portao final antes do Go-Live.
==================================================== */
.prod-card-main {
  border-left: 6px solid #b3241a !important;
  background: linear-gradient(135deg, #ffffff 0%, #fef2f2 100%);
}
.prod-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px;
  margin: 12px 0;
}
.prod-kpi {
  border: 1px solid #fecaca;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.prod-kpi span {
  display: block;
  color: #64748b;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.prod-kpi b {
  display: block;
  color: #0f172a;
  font-size: 22px;
  margin-top: 5px;
}
.prod-kpi small {
  display: block;
  color: #64748b;
  margin-top: 4px;
  font-size: 11px;
}
.prod-progress {
  border: 1px solid #fecaca;
  background: #fef2f2;
  border-radius: 14px;
  padding: 10px;
  margin-top: 10px;
}
.prod-progress b {
  color: #7f1d1d;
}
.prod-progress-bar {
  height: 12px;
  background: #fee2e2;
  border-radius: 999px;
  overflow: hidden;
  margin-top: 7px;
}
.prod-progress-bar div {
  height: 100%;
  background: #b3241a;
  border-radius: 999px;
  transition: width .25s ease;
}
.prod-note {
  border: 1px solid #bbf7d0;
  background: #f0fdf4;
  color: #14532d;
  border-radius: 16px;
  padding: 12px 14px;
  margin-top: 12px;
  font-size: 12px;
  line-height: 1.45;
}
.prod-alert {
  border: 1px solid #fecaca;
  background: #fef2f2;
  color: #7f1d1d;
  border-radius: 16px;
  padding: 12px 14px;
  margin-top: 12px;
  font-size: 12px;
  line-height: 1.45;
}
.prod-actions {
  display: flex;
  gap: 9px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.prod-actions button {
  width: auto;
  min-width: 135px;
  padding: 9px 11px;
  font-size: 12px;
}
.prod-form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px;
  margin-bottom: 10px;
}
.prod-copy {
  white-space: pre-wrap;
  background: #0f172a;
  color: #e2e8f0;
  padding: 14px;
  border-radius: 12px;
  font-size: 12px;
  line-height: 1.5;
  font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  overflow: auto;
}
.prod-list {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}
.prod-item {
  border: 1px solid #e2e8f0;
  border-left: 6px solid #f97316;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.prod-item.feito { border-left-color: #16a34a; }
.prod-item.bloqueado { border-left-color: #b3241a; }
.prod-item.pendente { border-left-color: #f97316; }
.prod-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
  flex-wrap: wrap;
}
.prod-head b {
  display: block;
  color: #0f172a;
}
.prod-item span,
.prod-history-item span {
  display: block;
  color: #64748b;
  font-size: 12px;
  margin-top: 3px;
  line-height: 1.35;
}
.prod-mini-actions {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  margin-top: 10px;
}
.prod-mini-actions button {
  width: auto;
  min-width: 92px;
  padding: 7px 9px;
  font-size: 11px;
}
.prod-text-box {
  border: 1px dashed #cbd5e1;
  background: #f8fafc;
  color: #475569;
  border-radius: 12px;
  padding: 8px 10px;
  margin-top: 8px;
  font-size: 11px;
  white-space: pre-wrap;
}
.prod-history {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}
.prod-history-item {
  border: 1px solid #e2e8f0;
  border-left: 6px solid #a56417;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.prod-history-item.publicado { border-left-color: #16a34a; }
.prod-history-item.rollback { border-left-color: #b3241a; }
.prod-history-item.teste,
.prod-history-item.planejamento { border-left-color: #a56417; }
@media (max-width: 720px) {
  .prod-form-grid { grid-template-columns: 1fr; }
}
/* roteiro-semanal-horizontal-profissional-v2 */
/* ====================================================
ROTEIRO SEMANAL - ROLAGEM LATERAL PROFISSIONAL V2
Correção: evita colunas espremidas e barras verticais exageradas.
==================================================== */

/* O quadro inteiro passa a rolar lateralmente, em vez de espremer os 7 dias. */
.mc-board-grid,
.route-week-days-grid {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 14px !important;
  align-items: flex-start !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  padding: 8px 4px 18px 4px !important;
  scroll-snap-type: x proximity !important;
  scrollbar-width: thin !important;
  scrollbar-color: #cbd5e1 transparent !important;
}

.mc-board-grid::-webkit-scrollbar,
.route-week-days-grid::-webkit-scrollbar {
  height: 10px !important;
}

.mc-board-grid::-webkit-scrollbar-track,
.route-week-days-grid::-webkit-scrollbar-track {
  background: #f1f5f9 !important;
  border-radius: 999px !important;
}

.mc-board-grid::-webkit-scrollbar-thumb,
.route-week-days-grid::-webkit-scrollbar-thumb {
  background: #cbd5e1 !important;
  border-radius: 999px !important;
}

.mc-board-grid::-webkit-scrollbar-thumb:hover,
.route-week-days-grid::-webkit-scrollbar-thumb:hover {
  background: #94a3b8 !important;
}

/* Cada dia fica largo o suficiente para o card não quebrar/ficar apertado. */
.mc-board-day,
.route-week-day {
  flex: 0 0 280px !important;
  width: 280px !important;
  min-width: 280px !important;
  max-width: 280px !important;
  min-height: 520px !important;
  max-height: none !important;
  overflow: visible !important;
  padding: 12px !important;
  border-radius: 18px !important;
  scroll-snap-align: start !important;
}

/* O cabeçalho fica normal e proporcional; sem sticky apertando a coluna. */
.mc-board-day-head,
.route-week-day-title {
  position: relative !important;
  top: auto !important;
  z-index: auto !important;
  background: transparent !important;
  padding: 0 0 10px 0 !important;
  margin-bottom: 10px !important;
  border-bottom: 1px solid #e2e8f0 !important;
}

/* Cards mais proporcionais. */
.mc-route-visit-card,
.route-week-visit-card {
  width: 100% !important;
  min-height: 145px !important;
  padding: 13px !important;
  border-radius: 18px !important;
  box-sizing: border-box !important;
  margin-bottom: 12px !important;
}

.mc-route-visit-store,
.route-week-visit-title {
  font-size: 15px !important;
  line-height: 1.18 !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
  white-space: normal !important;
  max-width: 168px !important;
}

.mc-route-visit-line,
.route-week-visit-meta {
  font-size: 12px !important;
  line-height: 1.35 !important;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: initial !important;
}

/* Status menor e mais alinhado. */
.mc-route-status,
.route-week-visit-card .badge {
  flex: 0 0 auto !important;
  max-width: 96px !important;
  white-space: nowrap !important;
  font-size: 11px !important;
  padding: 7px 9px !important;
}

/* Botões lado a lado, proporcionais. */
.mc-route-visit-actions,
.route-week-card-actions {
  display: flex !important;
  flex-direction: row !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
  margin-top: 12px !important;
}

.mc-route-visit-actions button,
.route-week-card-actions button {
  width: auto !important;
  min-width: 92px !important;
  height: 38px !important;
  padding: 8px 12px !important;
  font-size: 12px !important;
  border-radius: 13px !important;
}

.mc-route-visit-actions .roteiro-start-btn,
.route-week-card-actions .roteiro-start-btn {
  background: #2563eb !important;
  color: #ffffff !important;
  border: 0 !important;
}

/* O conteúdo principal pode usar a rolagem da página, sem cortar os cards. */
.mc-board-wrapper,
.route-week-wrapper,
.route-week-container {
  overflow: visible !important;
}

/* Em telas menores, mantém leitura boa. */
@media (max-width: 900px) {
  .mc-board-day,
  .route-week-day {
    flex-basis: 265px !important;
    width: 265px !important;
    min-width: 265px !important;
    max-width: 265px !important;
  }
}

@media (max-width: 560px) {
  .mc-board-day,
  .route-week-day {
    flex-basis: 245px !important;
    width: 245px !important;
    min-width: 245px !important;
    max-width: 245px !important;
  }

  .mc-route-visit-actions button,
  .route-week-card-actions button {
    min-width: 100% !important;
  }
}
