/* Portal IBG - filtros, formulários, botões e login */
.filter-card {
  position: relative;
  overflow: hidden;
}

.filter-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 3px;
  background: linear-gradient(90deg, var(--ibg-700), #38bdf8, transparent);
}

.form-control,
.form-select,
.email-input {
  min-height: 40px;
  border-radius: 13px;
  background: #fff;
}

.form-control:hover,
.form-select:hover,
.email-input:hover {
  border-color: #cbd5e1;
}

.form-control:focus,
.form-select:focus,
.email-input:focus {
  box-shadow: var(--ring);
}

.btn-ibg,
.btn-outline-ibg,
.btn-ghost,
.btn-login {
  min-height: 38px;
}

.btn-ibg i,
.btn-outline-ibg i,
.btn-ghost i {
  font-size: 14px;
}

.btn-outline-ibg {
  background: #fff;
}

.btn-outline-ibg:hover {
  transform: translateY(-1px);
  box-shadow: var(--shadow-sm);
}

.btn-ghost:hover {
  transform: translateY(-1px);
  box-shadow: var(--shadow-sm);
}

.login-page {
  background:
    radial-gradient(circle at 24% 16%, rgba(77,163,232,.24), transparent 28%),
    radial-gradient(circle at 84% 78%, rgba(26,119,201,.16), transparent 24%),
    linear-gradient(135deg, #031326 0%, #062b55 46%, #041e3a 100%);
  padding: 24px;
}

.login-page::before,
.login-page::after {
  display: none;
}

.login-card {
  max-width: 456px;
  border: 1px solid rgba(255,255,255,.72);
  border-radius: 28px;
  box-shadow: 0 34px 110px rgba(0,0,0,.36);
}

.login-logo {
  width: 74px;
  height: 74px;
  border-radius: 22px;
  box-shadow: 0 18px 36px rgba(7,59,115,.32);
}

.login-card h3 {
  font-size: 25px;
}

.login-subtitle {
  max-width: 320px;
}

.btn-login {
  border-radius: 15px;
  box-shadow: 0 14px 28px rgba(13,95,166,.22);
}

.code-input {
  letter-spacing: 10px;
}

.email-modal-header {
  background: linear-gradient(180deg, #fff, #f8fafc);
}

.email-modal-footer {
  background: #fbfdff;
}

.email-anexo-badge {
  border-radius: 12px;
}

.alert {
  border: 1px solid transparent;
}

.alert-info { border-color: #bfdbfe; }
.alert-success { border-color: #bbf7d0; }
.alert-danger { border-color: #fecdd3; }
.alert-warning { border-color: #fde68a; }
