/*
 * Camada de compatibilidade: leva as telas que usam as classes do sistema (cartao, botao,
 * campo, tabela-rolagem, selo...) para o visual do tema (Tixia). Telas novas devem usar
 * direto os componentes do tema (card, btn, form-control, table, badge).
 */
:root {
  --t-borda: #e6e6e6;
  --t-suave: #f5f5f5;
  --t-muted: #7e7e7e;
  --t-ok-bg: #e6f6ec;
  --t-ok: #1e7a45;
  --t-err-bg: #fdeaea;
  --t-err: #b3261e;
  --t-aviso-bg: #fff4d6;
  --t-aviso: #7a5b00;
}
[data-theme-version=dark] {
  --t-borda: #3b3f45;
  --t-suave: #202020;
  --t-muted: #9aa0a8;
  --t-ok-bg: #12301f;
  --t-ok: #6ad39b;
  --t-err-bg: #3a1a1a;
  --t-err: #ff9d97;
  --t-aviso-bg: #3a3012;
  --t-aviso: #f0cf72;
}

/* Marca e cabeçalho */
.nav-header .brand-logo { gap: .75rem; text-decoration: none; }
.nav-header .logo-abbr, .nav-header .brand-title { color: #fff; line-height: 1; display: inline-flex; align-items: center; }
.nav-header .brand-title { font-weight: 700; letter-spacing: .04rem; font-size: 1.05rem; white-space: nowrap; max-width: 10.5rem; overflow: hidden; text-overflow: ellipsis; }
.nav-header .logo-abbr img { max-height: 2.4rem; max-width: 2.6rem; }
.nav-header .brand-title img { max-height: 2.6rem; max-width: 10rem; display: block; }
.inicial-marca { display: inline-flex; width: 2.2rem; height: 2.2rem; border-radius: .5rem; background: #fff; color: var(--primary); font-weight: 700; align-items: center; justify-content: center; }
.marca-entrada { font-weight: 700; letter-spacing: .05rem; font-size: 1.4rem; color: var(--primary); }
.logo-entrada { max-height: 4.5rem; max-width: 100%; }
.logo-para-escuro { display: none; }
[data-theme-version=dark] .logo-para-claro { display: none; }
[data-theme-version=dark] .logo-para-escuro { display: inline-block; }
.header-left { display: flex; align-items: center; gap: 1rem; }
.header-left .marca-cliente { color: var(--t-muted); font-size: .8rem; border-left: 1px solid var(--t-borda); padding-left: 1rem; }
.avatar-iniciais { width: 2.5rem; height: 2.5rem; border-radius: 50%; background: var(--primary); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-weight: 600; }
.header-profile .nav-link { display: flex; align-items: center; }
.header-info p { color: var(--t-muted); }
[data-theme-version=light] #icon-light, #icon-light { display: none; }
[data-theme-version=dark] #icon-light { display: inline-block; }
[data-theme-version=dark] #icon-dark { display: none; }
.notification_dropdown .badge { position: absolute; top: .1rem; right: .1rem; font-size: .65rem; padding: .25rem .4rem; }
.deznav .metismenu > li > a .badge { margin-left: auto; }
.deznav .copyright { padding: 1.5rem 1.25rem; font-size: .75rem; color: var(--t-muted); }
@media (min-width: 768px) {
  [data-sidebar-style=mini] .deznav .copyright, [data-sidebar-style=compact] .deznav .copyright { display: none; }
}
.content-body .container-fluid { padding-top: 1.25rem; }

/* Estrutura e texto */
main#conteudo, #conteudo h1 { margin-top: 0; }
#conteudo h1 { font-size: 1.5rem; font-weight: 600; margin-bottom: 1rem; }
#conteudo h2 { font-size: 1.15rem; font-weight: 600; }
#conteudo h3 { font-size: 1rem; font-weight: 600; margin: .5rem 0; }
.cabecalho { display: flex; justify-content: space-between; align-items: center; gap: .75rem; flex-wrap: wrap; margin-bottom: 1rem; }
.cabecalho h1 { margin: 0; }
.rotulo { color: var(--t-muted); font-size: .8rem; }
.dica { color: var(--t-muted); font-size: .8rem; margin-top: .15rem; }
.numero { font-size: 1.75rem; font-weight: 700; }
.sobretitulo { color: var(--t-muted); letter-spacing: .08rem; text-transform: uppercase; font-size: .65rem; font-weight: 700; }
.texto-apoio { color: var(--t-muted); font-size: .85rem; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.acoes { display: flex; gap: .5rem; flex-wrap: wrap; align-items: center; }

/* Cartões */
.cartao { position: relative; background: #fff; border-radius: .5rem; box-shadow: 0 .3125rem .3125rem rgba(82, 63, 105, .05); padding: 1.5rem; margin-bottom: 1.875rem; }
[data-theme-version=dark] .cartao { background: #1b1b1b; box-shadow: none; }
.cartao + .cartao { margin-top: 0; }
.grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; margin-bottom: 1.25rem; }
.grade .cartao { margin-bottom: 0; }

/* Tabelas */
.tabela-rolagem { overflow-x: auto; }
#conteudo table { width: 100%; border-collapse: collapse; margin-bottom: 0; color: inherit; }
#conteudo th, #conteudo td { padding: .75rem .9rem; text-align: left; border-bottom: 1px solid var(--t-borda); vertical-align: middle; }
#conteudo th { font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .03rem; color: var(--t-muted); background: transparent; white-space: nowrap; }
#conteudo tbody tr:hover td { background: rgba(34, 47, 185, .03); }
tr.alerta td, tr.alerta:hover td { background: var(--t-aviso-bg); }
.erros-linha { margin: 0; padding-left: 1rem; white-space: normal; color: var(--t-err); font-size: .8rem; }

/* Selos */
.selo { display: inline-block; padding: .2rem .6rem; border-radius: 999px; font-size: .7rem; font-weight: 500; background: var(--t-suave); border: 1px solid var(--t-borda); color: inherit; white-space: nowrap; }
.selo.ok { background: var(--t-ok-bg); color: var(--t-ok); border-color: transparent; }
.selo.off { background: var(--t-err-bg); color: var(--t-err); border-color: transparent; }
.selo.alerta { background: var(--t-aviso-bg); color: var(--t-aviso); border-color: transparent; }
.estado-realizada { color: var(--t-ok); background: var(--t-ok-bg); border-color: transparent; }
.estado-em_andamento { color: #2b659e; background: #e7f1fd; border-color: transparent; }
.estado-em_atencao { color: var(--t-aviso); background: var(--t-aviso-bg); border-color: transparent; }
.estado-nao_executada { color: var(--t-err); background: var(--t-err-bg); border-color: transparent; }
.estado-previsto { color: var(--t-muted); }

/* Formulários */
form .campo { margin-bottom: 1rem; }
#conteudo label { display: block; font-weight: 500; margin-bottom: .3rem; font-size: .85rem; }
#conteudo input[type=text], #conteudo input[type=email], #conteudo input[type=password], #conteudo input[type=search],
#conteudo input[type=number], #conteudo input[type=date], #conteudo input[type=file], #conteudo input[type=time], #conteudo select, #conteudo textarea,
.fix-wrapper input[type=text], .fix-wrapper input[type=email], .fix-wrapper input[type=password] {
  display: block; width: 100%; padding: .55rem .9rem; font-size: .875rem; line-height: 1.5; color: inherit;
  background-color: transparent; border: 1px solid var(--t-borda); border-radius: .4rem; font-family: inherit;
}
#conteudo input:focus, #conteudo select:focus, #conteudo textarea:focus, .fix-wrapper input:focus { outline: 0; border-color: var(--primary); box-shadow: 0 0 0 .15rem rgba(34, 47, 185, .12); }
[data-theme-version=dark] #conteudo select option { background: #1b1b1b; }
#conteudo select[multiple] { min-height: 10rem; }
.linha { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; }
.linha.estado-municipio { grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); }
.check { display: flex; gap: .5rem; align-items: center; font-weight: 400 !important; }
.check input { width: auto !important; }
.filtros { display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: 1rem; align-items: center; }
.filtros input, .filtros select { width: auto !important; min-width: 11rem; }

/* Botões */
.botao { display: inline-block; padding: .55rem 1.1rem; border: 1px solid var(--primary); border-radius: .4rem; background: var(--primary); color: #fff; font: inherit; font-size: .85rem; font-weight: 500; cursor: pointer; transition: all .2s; line-height: 1.4; }
.botao:hover { background: #1b2694; border-color: #1b2694; color: #fff; text-decoration: none; }
.botao.secundario { background: transparent; color: var(--primary); border-color: var(--primary); }
.botao.secundario:hover { background: var(--primary); color: #fff; }
.link-botao { background: none; border: 0; padding: 0; color: var(--primary); font: inherit; cursor: pointer; }

/* Avisos antigos (ainda usados em mensagens internas) */
.aviso { padding: .75rem 1rem; border-radius: .4rem; margin-bottom: 1rem; }
.aviso.ok { background: var(--t-ok-bg); color: var(--t-ok); }
.aviso.erro { background: var(--t-err-bg); color: var(--t-err); }
.aviso ul { margin: 0; padding-left: 1.1rem; }

.paginacao { margin-top: 1rem; }
.mapa { height: 360px; border: 1px solid var(--t-borda); border-radius: .5rem; margin-bottom: .5rem; }

/* Grade de roteiro */
.grade-roteiro th, .grade-roteiro td { vertical-align: top !important; white-space: normal !important; min-width: 130px; }
.grade-roteiro thead th.hoje { color: var(--primary); }
.grade-roteiro .celula { min-height: 60px; height: 60px; }
.grade-roteiro .celula[data-soltar] { background: var(--t-suave); }
.visita { background: #fff; border: 1px solid var(--t-borda); border-left: 3px solid var(--t-muted); border-radius: .4rem; padding: .4rem .55rem; margin-bottom: .4rem; font-size: .8rem; line-height: 1.3; }
[data-theme-version=dark] .visita { background: #1b1b1b; }
.visita .rotulo { display: block; font-size: .72rem; }
.visita[data-movel] { cursor: grab; }
.visita.arrastando { opacity: .5; }
.visita.status-realizada { border-left-color: var(--t-ok); }
.visita.status-nao_executada { border-left-color: var(--t-err); background: var(--t-err-bg); }
.visita.status-em_atencao { border-left-color: #b8860b; background: var(--t-aviso-bg); }
.visita.status-em_andamento { border-left-color: #1565c0; }
.pino-numero { background: var(--primary); color: #fff; border-radius: 50%; text-align: center; line-height: 26px; font-weight: 700; font-size: 13px; border: 2px solid #fff; }
dialog { border: 1px solid var(--t-borda); border-radius: .5rem; padding: 1.25rem; width: min(420px, 92vw); background: #fff; color: inherit; }
[data-theme-version=dark] dialog { background: #1b1b1b; }
dialog::backdrop { background: rgba(0, 0, 0, .35); }

/* Painel */
.painel-cabecalho { display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; margin-bottom: 1.5rem; flex-wrap: wrap; }
.painel-cabecalho h1 { margin: .3rem 0; }
.seletor-dia label { color: var(--t-muted); font-size: .75rem; font-weight: 500; }
.seletor-dia input { width: 10rem !important; }
.painel-pendencias { background: var(--t-aviso-bg); border: 1px solid transparent; border-radius: .5rem; padding: .9rem 1.25rem; margin: 1rem 0 1.5rem; display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.25rem; color: var(--t-aviso); font-size: .85rem; }
.painel-pendencias a { margin-left: auto; font-weight: 600; }
.painel-atalhos { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 1rem; margin-bottom: 1.5rem; }
.atalho { background: #fff; border-radius: .5rem; padding: 1rem 1.25rem; display: flex; flex-direction: column; gap: .25rem; color: inherit; box-shadow: 0 .3125rem .3125rem rgba(82, 63, 105, .05); border: 1px solid transparent; }
[data-theme-version=dark] .atalho { background: #1b1b1b; box-shadow: none; }
a.atalho:hover { border-color: var(--primary); text-decoration: none; }
.atalho strong { font-size: .85rem; display: flex; justify-content: space-between; gap: .75rem; }
.atalho strong span { color: var(--primary); }
.atalho > span { font-size: .75rem; color: var(--t-muted); }
.atalho.informativo { background: var(--t-suave); box-shadow: none; }
.secao-titulo { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 1rem; flex-wrap: wrap; }
.secao-titulo p { margin: .2rem 0 0; }
.secao-painel { margin-top: 1.5rem; }
.agenda-cartao { padding: 0; overflow: hidden; }
.agenda-cartao > .secao-titulo { padding: 1.25rem 1.5rem; margin: 0; border-bottom: 1px solid var(--t-borda); }
.filtro-situacao { display: flex; gap: .5rem; align-items: center; }
.filtro-situacao select { width: 11rem !important; }
.endereco-agenda { white-space: normal; min-width: 9rem; max-width: 16rem; }
.estado-vazio { padding: 2.5rem 1rem; text-align: center; white-space: normal; }
.vazio-marca { display: inline-grid; place-items: center; width: 2.4rem; height: 2.4rem; background: var(--t-suave); border-radius: .7rem; color: var(--t-muted); font-size: 1.2rem; }
.paginacao-painel { padding: 1rem 1.25rem; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .75rem; }
.desabilitado { opacity: .45; }
.lojas-grade { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.marca-atendida { padding-top: .7rem; margin-top: .7rem; border-top: 1px solid var(--t-borda); display: flex; flex-direction: column; gap: .25rem; font-size: .85rem; }
.nota-painel { font-size: .75rem; color: var(--t-muted); margin-top: 1.5rem; }
.evidencia-foto { display: block; max-width: 100%; max-height: 420px; object-fit: contain; margin: 1rem 0; border-radius: .5rem; }
.fotos-comparacao { grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); margin-top: 1rem; }
.fotos-comparacao figure { margin: 0; min-width: 0; }

/* Gráficos e indicadores do painel novo */
.indicador-tema .card-body { display: flex; align-items: center; gap: 1rem; }
.indicador-tema .icone { width: 3.2rem; height: 3.2rem; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 1.5rem; flex-shrink: 0; }
.indicador-tema h3 { font-size: 1.6rem; margin: 0; font-weight: 700; }
.indicador-tema p { margin: 0; color: var(--t-muted); font-size: .8rem; }
.bg-soft-primary { background: rgba(34, 47, 185, .1); color: var(--primary); }
.bg-soft-success { background: rgba(39, 174, 96, .12); color: #1e8f4e; }
.bg-soft-warning { background: rgba(255, 169, 0, .15); color: #c78400; }
.bg-soft-danger { background: rgba(220, 53, 69, .12); color: #c0303d; }
.bg-soft-info { background: rgba(23, 162, 184, .12); color: #128a9e; }
.bi-filtros .form-select, .bi-filtros .form-control { min-width: 10rem; }
.grafico-card .card-body { min-height: 18rem; }
.rank-lista { list-style: none; margin: 0; padding: 0; }
.rank-lista li { display: flex; align-items: center; gap: .75rem; padding: .6rem 0; border-bottom: 1px solid var(--t-borda); }
.rank-lista li:last-child { border-bottom: 0; }
.rank-lista .posicao { width: 1.8rem; height: 1.8rem; border-radius: 50%; background: var(--t-suave); display: inline-flex; align-items: center; justify-content: center; font-size: .75rem; font-weight: 600; }
.rank-lista .barra { flex: 1; height: .4rem; background: var(--t-suave); border-radius: 1rem; overflow: hidden; }
.rank-lista .barra > span { display: block; height: 100%; background: var(--primary); border-radius: 1rem; }

@media (max-width: 800px) {
  .painel-cabecalho { flex-direction: column; align-items: flex-start; }
  .seletor-dia { width: 100%; }
  .seletor-dia input { flex: 1; }
  .header-left .marca-cliente { display: none; }
}

/* Lista de situações ao lado do gráfico */
.situacoes { display: flex; flex-direction: column; gap: .5rem; }
.situacao-item { color: inherit; display: flex; align-items: center; gap: .6rem; font-size: .8rem; padding: .15rem 0; }
.situacao-item strong { margin-left: auto; font-size: .85rem; }
.ponto { width: .5rem; height: .5rem; background: #9da8b7; border-radius: 50%; flex-shrink: 0; }
.ponto.status-realizada { background: #27ae60; } .ponto.status-em_andamento { background: #17a2b8; }
.ponto.status-em_atencao { background: #f5a623; } .ponto.status-nao_executada { background: #dc3545; }
.welcome-card h4 { font-weight: 600; }
.welcome-card p { margin-bottom: .25rem; }
.card-title, .card-header h4, .card-header h3 { text-transform: none !important; }
