/* ==========================================================================
   FORMS
   ========================================================================== */

.form-card {
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-5);
  box-shadow: var(--shadow-lg);
}

.form-group { margin-bottom: var(--space-4); }
.form-group label {
  display: block;
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  color: var(--color-secondary);
  margin-bottom: 8px;
  letter-spacing: 0.02em;
}

.form-control {
  width: 100%;
  height: 52px;
  padding: 0 16px;
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-background-alt);
  font-family: var(--font-body);
  font-size: var(--fs-body);
  color: var(--color-text);
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast);
}
textarea.form-control { height: auto; min-height: 120px; padding-top: 14px; resize: vertical; }

.form-control:hover { border-color: #cfcabb; }
.form-control:focus {
  outline: none;
  border-color: var(--color-primary);
  background: var(--color-white);
  box-shadow: 0 0 0 4px rgba(11,61,46,0.1);
}

.form-control.is-error { border-color: var(--color-error); background: #fdf2f1; }
.form-control.is-success { border-color: var(--color-success); }
.form-control:disabled { background: var(--color-border); cursor: not-allowed; opacity: 0.7; }

.form-error-msg {
  display: none;
  font-size: var(--fs-xs);
  color: var(--color-error);
  margin-top: 6px;
}
.form-group.has-error .form-error-msg { display: block; }

.form-status {
  display: none;
  align-items: center;
  gap: 10px;
  padding: 14px 16px;
  border-radius: var(--radius-md);
  font-size: var(--fs-small);
  margin-bottom: var(--space-4);
}
.form-status.is-success { display: flex; background: #eaf6ef; color: var(--color-success); }
.form-status.is-error { display: flex; background: #fceeed; color: var(--color-error); }

.btn-loading .btn-label { visibility: hidden; }
.btn-loading { position: relative; pointer-events: none; }
.btn-loading::after {
  content: "";
  position: absolute;
  width: 18px; height: 18px;
  border: 2px solid rgba(255,255,255,0.4);
  border-top-color: var(--color-white);
  border-radius: 50%;
  animation: btn-spin 700ms linear infinite;
}

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

select.form-control {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235b6b63' stroke-width='1.5' fill='none' fill-rule='evenodd'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  padding-right: 40px;
}
