/* Shared form controls and submit states */

:root {
  --brand-danger: rgba(239, 68, 68, .95);
  --brand-border-soft: rgba(15, 23, 42, .08);
  --brand-surface-soft: rgba(248, 250, 252, .78);
  --brand-focus-ring: 0 0 0 .25rem rgba(37, 99, 235, .12);
}

.btn-pill-lg {
  padding: .72rem 1rem;
  border-radius: var(--radius-sm);
}

.form-prem .form-label {
  font-weight: 800;
  color: rgba(15, 23, 42, .9);
  margin-bottom: .35rem;
}

.form-prem .req {
  color: var(--brand-danger);
  font-weight: 900;
  margin-left: .2rem;
}

.form-prem .form-control,
.form-prem .form-select {
  border-radius: var(--radius-sm);
  border: 1px solid rgba(15, 23, 42, .1);
  padding: .72rem .9rem;
  font-weight: 650;
  box-shadow: none;
}

.form-prem .form-control:focus,
.form-prem .form-select:focus {
  border-color: rgba(37, 99, 235, .45);
  box-shadow: var(--brand-focus-ring);
}

.form-prem .field-card {
  border: 1px solid var(--brand-border-soft);
  background: var(--brand-surface-soft);
  border-radius: var(--radius-md);
  padding: var(--space-4);
}

.form-prem .form-control::placeholder,
.form-prem textarea.form-control::placeholder {
  color: rgba(100, 116, 139, .55);
  font-weight: 600;
}

.form-prem .text-danger,
.auth-form .field-error,
.form-prem .field-error {
  margin-top: .45rem;
  font-size: .92rem;
  font-weight: 700;
  color: var(--brand-danger);
}

.form-prem .is-invalid,
.auth-form .is-invalid {
  border-color: var(--brand-danger) !important;
  box-shadow: 0 0 0 .25rem rgba(239, 68, 68, .12) !important;
}

.auth-form .alert {
  border-radius: 16px;
  border: 1px solid rgba(239, 68, 68, .12);
}

.auth-form .form-control,
.auth-form .input-group .btn {
  min-height: 50px;
}

.auth-form .input-group .btn {
  border-color: rgba(15, 23, 42, .1);
  color: rgba(15, 23, 42, .72);
  background: #fff;
}

.auth-form .input-group .btn:hover,
.auth-form .input-group .btn:focus {
  color: rgba(15, 23, 42, .92);
  background: rgba(248, 250, 252, .95);
}

.auth-form .form-text {
  color: rgba(11, 18, 32, .58);
  font-weight: 600;
}

.auth-form .form-check-label {
  line-height: 1.45;
}

.form-submit-btn,
.btn-submit-state {
  position: relative;
}

.form-submit-btn.is-submitting,
.btn-submit-state.is-submitting {
  opacity: .92;
  pointer-events: none;
}

.form-submit-btn.is-submitting::after,
.btn-submit-state.is-submitting::after {
  content: '';
  width: 1rem;
  height: 1rem;
  margin-left: .6rem;
  display: inline-block;
  border-radius: var(--radius-pill);
  border: 2px solid rgba(255, 255, 255, .5);
  border-top-color: #fff;
  animation: form-spin .7s linear infinite;
  vertical-align: -.15rem;
}

@keyframes form-spin {
  to { transform: rotate(360deg); }
}

@media (max-width: 991.98px) {
  .auth {
    padding-top: 18px;
  }

  .auth-shell {
    border-radius: var(--radius-lg);
  }

  .auth-form {
    padding: 22px;
  }
}

@media (max-width: 767.98px) {
  .auth-form {
    padding: 18px;
  }

  .auth-form .form-card {
    padding: 0;
    box-shadow: none;
    background: transparent;
  }

  .auth-form .d-flex.justify-content-between.align-items-start.gap-3 {
    flex-direction: column;
    align-items: stretch;
  }

  .auth-link-strong {
    line-height: 1.6;
  }
}
