/* Mapa Fiscal Tributário — tema institucional
   Paleta: teal #169982 + limão #9CE535 (site mapafiscaltributario.com.br)
   Carregar por último para sobrescrever o tema legado.
*/

:root {
  --mft-primary: #169982;
  --mft-primary-dark: #117a68;
  --mft-primary-light: #28af97;
  --mft-primary-soft: #30d6ba;
  --mft-accent: #9ce535;
  --mft-accent-alt: #8dcb35;
  --mft-accent-bright: #74e529;
  --mft-mint: #e5fcf5;
  --mft-mint-2: #d0f1e9;
  --mft-surface: #f4faf8;
  --mft-ink: #242424;
  --mft-muted: #606060;
  --mft-border: #c8d8d5;
  --mft-white: #ffffff;
  --mft-gradient: linear-gradient(90deg, #169982 0%, #28af97 55%, #9ce535 100%);
  --mft-gradient-btn: linear-gradient(90deg, #169982 0%, #9ce535 100%);
}

/* ---------- Bases / links ---------- */
a,
a:link {
  color: var(--mft-primary);
}
a:hover,
a:focus {
  color: var(--mft-primary-dark);
}

body.app-shell,
body.dashboard-page {
  background-color: var(--mft-surface) !important;
}

/* ---------- Auth / login ---------- */
body.login-page,
body.cadastro-page,
body.auth-page {
  background-color: var(--mft-mint) !important;
}

body.login-page .form-box h2,
body.cadastro-page .form-box h2,
body.auth-page .form-box h2 {
  color: var(--mft-ink) !important;
}

body.login-page .form-box button,
body.cadastro-page .form-box button,
body.cadastro-page .form-box .ls-btn-primary,
body.login-page .form-box .ls-btn-primary,
body.auth-page .form-box button {
  background: var(--mft-gradient-btn) !important;
  background-color: var(--mft-primary) !important;
  border: none !important;
  color: var(--mft-white) !important;
  box-shadow: 0 6px 16px rgba(22, 153, 130, 0.28) !important;
}

body.login-page .form-box button:hover,
body.cadastro-page .form-box button:hover,
body.cadastro-page .form-box .ls-btn-primary:hover {
  filter: brightness(1.05);
  background-color: var(--mft-primary-dark) !important;
}

body.login-page .btn-gradient,
.btn-gradient {
  background: var(--mft-gradient-btn) !important;
  border: none !important;
  color: var(--mft-white) !important;
}

body.login-page .btn-outline,
.btn-outline {
  border-color: var(--mft-primary) !important;
  color: var(--mft-primary) !important;
  background: transparent !important;
}

body.login-page .btn-outline:hover,
.btn-outline:hover {
  background: var(--mft-mint) !important;
  color: var(--mft-primary-dark) !important;
}

body.login-page .link,
body.cadastro-page a,
body.login-page .signup-question {
  color: var(--mft-primary) !important;
}

body.login-page .form-box input:focus,
body.cadastro-page .form-box input:focus {
  border-color: var(--mft-primary) !important;
  box-shadow: 0 0 0 3px rgba(22, 153, 130, 0.18) !important;
  outline: none !important;
}

/* ---------- Topo / menu ---------- */
body.app-shell .ls-topbar,
.ls-topbar,
.ls-header,
header.ls-topbar {
  background: var(--mft-primary) !important;
  border-color: var(--mft-primary-dark) !important;
}

body.app-shell .account-btn,
.account-btn {
  background: var(--mft-accent) !important;
  color: var(--mft-ink) !important;
  border: none !important;
}

body.app-shell .account-btn:hover {
  background: var(--mft-accent-alt) !important;
}

/* ---------- Botões Locastyle / sistema ---------- */
.ls-btn-primary,
[class*="ls-btn"].ls-btn-primary,
.ls-theme-light-red .ls-btn-primary,
.ls-theme-grey .ls-btn-primary,
button.ls-btn-primary,
a.ls-btn-primary,
.btn-primary,
.btn.btn-primary {
  background-color: var(--mft-primary) !important;
  background-image: none !important;
  border-color: var(--mft-primary) !important;
  color: var(--mft-white) !important;
}

.ls-btn-primary:hover,
.ls-btn-primary:focus,
.btn-primary:hover,
.btn.btn-primary:hover {
  background-color: var(--mft-primary-dark) !important;
  border-color: var(--mft-primary-dark) !important;
}

.ls-btn-primary-danger,
[class*="ls-btn"].ls-btn-primary-danger {
  background-color: var(--mft-primary) !important;
  border-color: var(--mft-primary) !important;
}

/* Outlines / secondary */
.ls-btn,
.btn-outline-primary {
  border-color: var(--mft-primary) !important;
  color: var(--mft-primary) !important;
}

/* ---------- Mapeamento das cores antigas ---------- */
/* Azul #5177c8 e variações → teal */
[style*="#5177c8"],
[style*="#5177C8"] {
  /* inline leftovers handled where possible via common classes */
}

/* Gradientes azuis do main.css */
.left-panel-cadastro,
.panel-gradient,
div[style*="linear-gradient(90deg, #3eb5ff"],
.hero-band {
  background-image: var(--mft-gradient) !important;
}

/* Sobrescreve classes que usavam o azul antigo */
.ls-color-theme,
.text-primary,
.color-primary {
  color: var(--mft-primary) !important;
}

.bg-primary {
  background-color: var(--mft-primary) !important;
}

/* Cards / boxes com borda azul */
.ls-box,
.card,
.resultado-card,
.box-consulta {
  border-color: var(--mft-border) !important;
}

.ls-box.ls-box-gray {
  background: var(--mft-mint) !important;
}

/* Tabs / navegação ativa */
.nav-tabs .nav-link.active,
.ls-tabs-nav .ls-active > a,
.ls-tabs-nav li.ls-active a {
  color: var(--mft-primary) !important;
  border-color: var(--mft-primary) !important;
}

/* Alertas de sucesso alinhados ao verde da marca */
.alert-success,
.ls-alert-success {
  background-color: var(--mft-mint) !important;
  border-color: var(--mft-primary-soft) !important;
  color: #0f5132 !important;
}

/* Progress / highlights */
.progress-bar,
.ls-progress-bar {
  background-color: var(--mft-primary) !important;
}

/* Check / ícones de destaque */
.text-success,
.fa-check,
.icon-ok {
  color: var(--mft-primary) !important;
}

/* Destaque limão para badges / tags */
.badge-accent,
.tag-destaque,
.ls-tag-primary {
  background-color: var(--mft-accent) !important;
  color: var(--mft-ink) !important;
}

/* ---------- Overrides específicos por seletor conhecido do CSS legado ---------- */
/* estilo.css / main.css — azul #5177C8 */
.ls-theme-light-red a,
.ls-theme-grey a.ls-color-theme,
a.ls-color-theme {
  color: var(--mft-primary) !important;
}

/* Campos e focos */
input[type="text"]:focus,
input[type="email"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
select:focus,
textarea:focus {
  border-color: var(--mft-primary) !important;
}

/* DataTables paginação ativa */
.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
  background: var(--mft-primary) !important;
  border-color: var(--mft-primary) !important;
  color: var(--mft-white) !important;
}

/* Bootstrap residual */
.btn-info,
.bg-info {
  background-color: var(--mft-primary-light) !important;
  border-color: var(--mft-primary-light) !important;
}

/* Painéis laterais / sidebar se existirem */
.ls-sidebar,
.ls-menu {
  border-color: var(--mft-border) !important;
}

.ls-menu a:hover,
.ls-menu .ls-active > a {
  color: var(--mft-primary) !important;
  background-color: var(--mft-mint) !important;
}

/* Títulos internos */
h1, h2, h3,
.ls-title-intro,
.page-title {
  color: var(--mft-ink);
}

/* Footer links */
footer a,
.ls-footer a {
  color: var(--mft-primary) !important;
}

/* Soft surfaces for results */
.resultado.css-root,
.box-resultado,
.ls-box-filter {
  background-color: var(--mft-white);
}

/* Force replace common hardcoded blues via attribute selectors on style attrs is limited;
   these utility helpers help PHP pages that use inline leftovers */
.mft-bg-primary { background-color: var(--mft-primary) !important; }
.mft-text-primary { color: var(--mft-primary) !important; }
.mft-bg-accent { background-color: var(--mft-accent) !important; }
.mft-gradient { background-image: var(--mft-gradient) !important; }
