/* Servidor Top | Etapa 71 | Refinamento visual sem regras de negocio
   Camada final para harmonizar paginas antigas, preservar cascata e telas inline.
   Tema pensado primeiro para celular, sem esconder funcionalidades. */
:root{
  --ui-primary:#194e21;
  --ui-primary-hover:#256c36;
  --ui-text:#21392a;
  --ui-muted:#617267;
  --ui-bg:#f5f8f5;
  --ui-surface:#fff;
  --ui-subtle:#f0f6f1;
  --ui-border:#dce7df;
  --ui-border-strong:#c7dbc9;
  --ui-radius:12px;
  --ui-shadow:0 2px 10px rgba(20,56,28,.045);
}
html{scroll-behavior:auto}
body{color:var(--ui-text);background:var(--ui-bg);line-height:1.46}
main{min-width:0}
:where(.container,.ga-main,.va-main,.al-main,.imp-box,.ga-card,.va-card,.card,.stm-card){min-width:0}
:where(.topo,.st41-header){border-bottom:1px solid var(--ui-border)}
body:not(.stm-painel) :is(.topo,.st41-header){box-shadow:none;background:#fff}
body:not(.stm-painel) :is(h1,h2,h3){letter-spacing:-.018em}
body:not(.stm-painel) h1{font-size:clamp(1.35rem,2.6vw,1.8rem)}
body:not(.stm-painel) h2{font-size:clamp(1.08rem,2vw,1.3rem)}
:where(.muted,.ga-note,.va-muted){color:var(--ui-muted)}
/* Cartoes contidos e com a mesma densidade visual. */
body:not(.stm-painel) .card,
body:not(.stm-painel) :is(.ga-card,.va-card,.imp-box,.backup-card){
  background:var(--ui-surface);
  border:1px solid var(--ui-border);
  border-radius:var(--ui-radius);
  box-shadow:var(--ui-shadow);
}
body:not(.stm-painel) .card{padding:16px 18px;margin-bottom:12px}
body:not(.stm-painel) :is(.ga-card,.va-card,.imp-box){margin-block:12px}
body:not(.stm-painel) .ga-card{padding:13px 15px}
body:not(.stm-painel) .va-card{padding:15px}
body:not(.stm-painel) .imp-box{padding:16px 18px}
body:not(.stm-painel) .backup-card{padding:16px 18px}
:where(.ga-card,.va-card,.imp-box) h2{margin-top:0}
/* Campos: leitura melhor, toque confortavel, sem alterar tipo/valor. */
body:not(.stm-painel) :is(input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea){
  border:1px solid var(--ui-border-strong);
  background:#fff;
  color:var(--ui-text);
  border-radius:9px;
  min-height:42px;
  font-size:16px;
}
body:not(.stm-painel) textarea{min-height:76px}
body:not(.stm-painel) :is(input,select,textarea):disabled{background:#f4f6f4;color:#69756d}
body:not(.stm-painel) label{font-size:.87rem;line-height:1.4}
body:not(.stm-painel) :is(button,.btn,.ga-btn,.va-btn,.imp-btn,.st41-voltar){
  border-radius:9px;
  font-weight:650;
  text-decoration:none;
  transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease;
}
body:not(.stm-painel) button:disabled{opacity:.6;cursor:not-allowed}
body:not(.stm-painel) :is(.btn-pequeno,.ga-small,.va-copy){font-size:.82rem}
body:not(.stm-painel) :is(.ga-btn,.va-btn,.imp-btn){display:inline-flex;align-items:center;justify-content:center;gap:6px}
body:not(.stm-painel) :is(a,button,input,select,textarea,summary):focus-visible{
  outline:3px solid #347d47;outline-offset:2px;
}
/* Tabelas mantem dados visiveis; desktop limpo e mobile respeita wrappers existentes. */
body:not(.stm-painel) table thead th{background:var(--ui-subtle);color:#315039}
body:not(.stm-painel) table:not(.tabela-clientes) tbody tr:nth-child(even){background:#fbfdfb}
body:not(.stm-painel) table:not(.tabela-clientes) tbody tr:hover{background:#f5faf6}
:where(.imp-scroll,.st-overflow,.ap-table,.tabela-wrapper){scrollbar-color:#b7d0bd transparent;scrollbar-width:thin}
/* Painel principal: menos altura desperdicada e botoes alinhados. */
.stm-painel{background:var(--ui-bg)}
.stm-painel .stm-topo{box-shadow:none;border-bottom:1px solid var(--ui-border)}
.stm-container{margin-top:18px}
.stm-boas-vindas{padding:19px 23px;border-radius:14px;background:linear-gradient(115deg,#194e21,#2a7040)}
.stm-boas-vindas h1{font-size:clamp(1.4rem,3vw,1.85rem);letter-spacing:-.02em}
.stm-indicadores{margin:18px 0 23px}
.stm-indicadores-grid{gap:10px}
.stm-indicadores-grid .stm-indicador{min-height:116px;padding:14px;border-radius:12px;box-shadow:var(--ui-shadow);gap:6px}
.stm-indicador strong{font-size:1.9rem}
.stm-indicadores-nota{line-height:1.45}
.stm-titulo-modulos{margin:19px 0 11px}
.stm-grid{gap:11px}
.stm-card{min-height:0;padding:16px;border-radius:12px;box-shadow:var(--ui-shadow);border-color:var(--ui-border)}
.stm-card-icone{width:39px;height:39px;font-size:20px;border-radius:10px}
.stm-card h3{font-size:1rem;margin:11px 0 5px;line-height:1.3}
.stm-card p{font-size:.83rem;line-height:1.45;margin-bottom:12px}
.stm-card-acoes{gap:6px}
.stm-card-link,.stm-card-acoes .stm-card-link{padding:9px 11px;min-height:40px;border-radius:8px;font-size:.83rem}
.stm-card:hover{transform:none;border-color:#9fbba5}
/* Cadastro, fichas e linhas mantem logica e recuo da cascata existente. */
.ficha49-resumo{box-shadow:none;border-color:var(--ui-border);border-radius:11px;padding:12px}
.ficha49-secao{border-radius:var(--ui-radius)}
.ficha50-manutencao{border-radius:var(--ui-radius);background:#f6faf6}
/* Aplicativos: manter lista compacta, diferenciar edicao do conteudo principal. */
.ga-main{max-width:1100px}
.ga-top{margin-bottom:5px}
.ga-item{border-color:var(--ui-border);background:#fff;border-radius:9px}
.ga-grid{gap:5px}
.ga-creditos{background:#eff6f0;border-radius:7px}
.ga-create>summary{border-radius:8px}
.ga-app-edit[open]{background:#fafcfb;border-top:1px solid var(--ui-border);padding-top:8px}
.va-filter{border-color:var(--ui-border-strong);border-radius:10px;background:#f8fbf8;padding:10px}
.va-filter strong{font-size:1.3rem}
.va-filter.va-current{background:var(--ui-primary);color:#fff;border-color:var(--ui-primary)}
.va-renovar-box,.al-renovar-caixa,.st-detalhes-inline{border-radius:var(--ui-radius)}
/* Importacao: destaque ao resultado que merece atencao, sem tabela vazia. */
#previa-atualizacoes{scroll-margin-top:12px;border-color:#abceb3;background:#fbfefb}
#previa-atualizacoes>h2{color:var(--ui-primary)}
#previa-atualizacoes details{background:#fffaf0;border:1px solid #e7d6ae;border-radius:9px;padding:10px}
#previa-atualizacoes summary{cursor:pointer;font-weight:650}
/* Rolar dentro da tabela, nunca afastar a pagina inteira no telefone. */
@media(max-width:760px){
  body:not(.stm-painel) .container{padding-inline:12px}
  body:not(.stm-painel) :is(.card,.ga-card,.va-card,.imp-box,.backup-card){padding:12px 13px;margin-block:9px}
  body:not(.stm-painel) :is(.topo,.st41-header){padding:11px 12px;gap:8px}
  .stm-container{margin:12px auto}
  .stm-boas-vindas{padding:15px 16px;gap:8px}
  .stm-indicadores{margin:13px 0 17px}
  .stm-indicadores-grid{gap:8px}
  .stm-indicadores-grid .stm-indicador{padding:11px 12px;min-height:100px}
  .stm-indicador strong{font-size:1.7rem}
  .stm-titulo-modulos{margin:15px 0 9px}
  .stm-grid{gap:8px}
  .stm-card{padding:13px 14px}
  .stm-card-icone{width:34px;height:34px;font-size:18px}
  .stm-card h3{font-size:1rem;margin:7px 0 4px}
  .stm-card p{font-size:.81rem;margin-bottom:9px}
  .stm-card-acoes .stm-card-link{min-height:42px}
  .ga-btn,.ga-small,.va-copy,.va-actions a{min-height:40px}
  .ga-item{padding:9px 10px}
  .va-filter{padding:9px}
  .va-renovar-box{padding:12px}
  .imp-scroll{max-width:100%;overflow-x:auto}
}
@media(max-width:390px){
 .stm-indicadores-grid .stm-indicador{min-width:0}
 .stm-indicador span{font-size:.79rem}
 .stm-indicador strong{font-size:1.55rem}
}
@media(prefers-reduced-motion:reduce){
 :is(.stm-card,.stm-card-link,.ga-btn,.va-btn,button,.btn){transition:none!important}
}
@media print{
 .stm-card,.stm-indicador,body:not(.stm-painel) .card{box-shadow:none}
}
