/* ===== FORM GROUPS ===== */
.form-group,
.input-group {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin-bottom: 14px;
}
.form-group:last-child,
.input-group:last-child { margin-bottom: 0; }

label { font-size: .82rem; font-weight: 600; color: var(--text); }

/* ===== INPUTS ===== */
input[type="url"],
input[type="text"],
input[type="email"],
input[type="password"],
textarea,
select {
  background: var(--white);
  border: 1px solid var(--border2);
  border-radius: 4px;
  color: var(--text);
  padding: 10px 12px;
  font-size: .9rem;
  width: 100%;
  outline: none;
  font-family: inherit;
  transition: border-color .18s, box-shadow .18s;
}
input:hover, textarea:hover, select:hover { border-color: #999; }
input:focus, textarea:focus, select:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 2px rgba(10,102,194,.16);
}
textarea { resize: vertical; }
select option { background: var(--white); }

/* ===== FIELD HINT ===== */
.field-hint { font-size: .75rem; color: var(--text-dim); font-weight: 400; }

/* ===== MESSAGES ===== */
.form-error {
  background: #fff0f0;
  border: 1px solid #f5c6c8;
  color: var(--error);
  padding: 9px 13px;
  border-radius: 4px;
  font-size: .83rem;
  margin-bottom: 4px;
}
.form-error.form-success {
  background: var(--success-light);
  border-color: #b0d9be;
  color: var(--success);
}

/* Alert — pattern używany w reset-password i pochodnych */
.alert {
  padding: 11px 14px;
  border-radius: 6px;
  font-size: .84rem;
  margin-bottom: 16px;
  display: none;
}
.alert.error {
  background: #fff0f0;
  color: var(--error);
  border: 1px solid #f5c6c8;
  display: block;
}
.alert.success {
  background: var(--success-light);
  border-color: #b0d9be;
  color: var(--success);
  display: block;
}
