
/* =========================================================
   Correção final dos formulários
   Sem troca de fonte. Apenas alinhamento, espaçamento e mobile menor.
   ========================================================= */

:root{
  --fx-h: 46px;
  --fx-r: 14px;
  --fx-icon: 48px;
}

/* Mantém grupo estável */
.input-group{
  display:flex !important;
  flex-wrap:nowrap !important;
  align-items:stretch !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  position:relative !important;
}

/* Ícone sempre do mesmo tamanho e centralizado */
.input-group > .input-group-text{
  flex:0 0 var(--fx-icon) !important;
  width:var(--fx-icon) !important;
  min-width:var(--fx-icon) !important;
  max-width:var(--fx-icon) !important;
  height:var(--fx-h) !important;
  min-height:var(--fx-h) !important;
  margin:0 !important;
  padding:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  line-height:1 !important;
  border:1px solid #dbe3ef !important;
  border-right:0 !important;
  border-radius:var(--fx-r) 0 0 var(--fx-r) !important;
  background:#f8fafc !important;
  color:var(--app-primary, var(--cor-botao, #2563eb)) !important;
  box-shadow:none !important;
}

.input-group > .input-group-text i,
.input-group > .input-group-text svg{
  display:block !important;
  width:16px !important;
  height:16px !important;
  font-size:16px !important;
  line-height:1 !important;
  margin:0 !important;
  padding:0 !important;
  color:var(--app-primary, var(--cor-botao, #2563eb)) !important;
}

/* Campo ocupa todo o resto da linha */
.input-group > .form-control,
.input-group > .form-select,
.input-group > input,
.input-group > select,
.input-group > textarea{
  flex:1 1 auto !important;
  width:auto !important;
  min-width:0 !important;
  max-width:100% !important;
  height:var(--fx-h) !important;
  min-height:var(--fx-h) !important;
  margin:0 !important;
  padding:10px 13px !important;
  border:1px solid #dbe3ef !important;
  border-left:0 !important;
  border-radius:0 var(--fx-r) var(--fx-r) 0 !important;
  background:#fff !important;
  color:#0f172a !important;
  box-shadow:none !important;
  line-height:1.25 !important;
}

.input-group > .form-select,
.input-group > select{
  padding-right:38px !important;
  background-position:right 12px center !important;
}

.input-group > input[type="color"].form-control{
  padding:5px 8px !important;
}

.input-group > input[type="file"].form-control{
  padding-top:9px !important;
}

.input-group > textarea,
.input-group > textarea.form-control{
  height:auto !important;
  min-height:110px !important;
}

.input-group:focus-within > .input-group-text,
.input-group:focus-within > .form-control,
.input-group:focus-within > .form-select,
.input-group:focus-within > input,
.input-group:focus-within > select,
.input-group:focus-within > textarea{
  border-color:rgba(37,99,235,.65) !important;
}

.input-group:focus-within > .form-control,
.input-group:focus-within > .form-select,
.input-group:focus-within > input,
.input-group:focus-within > select,
.input-group:focus-within > textarea{
  box-shadow:0 0 0 4px rgba(37,99,235,.12) !important;
  outline:none !important;
}

/* Selects devem usar classe correta */
select.form-control{
  appearance:auto !important;
}

/* Mobile: diminuir fonte e espaçamentos, sem trocar fonte */
@media (max-width:768px){
  body{
    font-size:13px !important;
    line-height:1.35 !important;
  }

  label,
  .form-label,
  .filter-label,
  .label-premium{
    font-size:11.5px !important;
    margin-bottom:5px !important;
  }

  .form-control,
  .form-select,
  input:not([type='checkbox']):not([type='radio']):not([type='color']),
  select,
  textarea{
    font-size:13px !important;
  }

  .btn{
    font-size:12.5px !important;
  }

  .table td,
  .table th,
  table td,
  table th{
    font-size:12.5px !important;
  }

  .dashboard-title,
  .page-title-premium,
  h1{
    font-size:20px !important;
  }

  h2{font-size:18px !important;}
  h3{font-size:16px !important;}

  :root{
    --fx-h:40px;
    --fx-r:12px;
    --fx-icon:42px;
  }

  .input-group > .input-group-text i,
  .input-group > .input-group-text svg{
    width:14px !important;
    height:14px !important;
    font-size:14px !important;
  }

  .input-group > .form-control,
  .input-group > .form-select,
  .input-group > input,
  .input-group > select,
  .input-group > textarea{
    padding:8px 10px !important;
  }

  .input-group > .form-select,
  .input-group > select{
    padding-right:34px !important;
    background-position:right 10px center !important;
  }

  .card,
  .card-premium,
  .form-card{
    padding:14px !important;
  }

  .container,
  .container-fluid{
    padding-left:10px !important;
    padding-right:10px !important;
  }
}

/* Segurança contra estouro */
form,
form .row,
form [class*="col-"],
.input-group,
.input-group > .form-control,
.input-group > .form-select,
.input-group > input,
.input-group > select,
.input-group > textarea{
  max-width:100% !important;
  box-sizing:border-box !important;
}
