/* Shared form geometry. Colors and radii stay inherited from each product surface. */

form input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
form select,
form textarea {
  min-height: 42px;
  box-sizing: border-box;
  font: inherit;
}

form label {
  display: block;
  margin-bottom: 0.5rem;
  line-height: 1.3;
}

.form-group,
.form-field,
.cc-form-group,
.dashboard-panel-form > div,
.dashboard-panel-form .form-row > div {
  margin-bottom: 1rem;
}

.form-group:last-child,
.form-field:last-child,
.cc-form-group:last-child,
.dashboard-panel-form > div:last-child,
.dashboard-panel-form .form-row > div:last-child {
  margin-bottom: 0;
}

form input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
form select,
form textarea,
.cc-form-control,
.cc-form-select {
  min-height: 42px;
  padding: 0.65rem 0.85rem;
}

form textarea {
  min-height: 96px;
  resize: vertical;
}

/* Keep equivalent auth and portal forms on the same content grid. */
.auth-card {
  padding: 2rem;
  overflow-y: auto;
}

.form-container {
  max-width: 720px;
}

.form-card {
  padding: 1.5rem;
  border-radius: 12px;
}

.form-card .form-row {
  gap: 1rem;
}

.form-card .form-group {
  margin-bottom: 1rem;
}

.form-card .btn-submit,
.form-card .btn-cancel,
.form-card .btn-locate {
  min-height: 42px;
  padding: 0.65rem 1rem;
  border-radius: 12px;
}

form small,
.form-help,
.helper-text,
.cc-helper-text,
.form-text {
  display: block;
  margin-top: 0.35rem;
  line-height: 1.4;
}

.form-actions,
.form-buttons,
.form-footer,
.cc-form-actions,
.cc-stage-footer-actions,
.dashboard-panel-form .dashboard-btn-group,
form > .dashboard-btn-group {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.5rem;
}

.form-actions button,
.form-actions a,
.form-buttons button,
.form-buttons a,
.form-footer button,
.form-footer a,
.cc-form-actions button,
.cc-form-actions a,
.cc-stage-footer-actions button,
.cc-stage-footer-actions a,
.dashboard-panel-form .dashboard-btn-group .dashboard-btn,
form > .dashboard-btn-group .dashboard-btn {
  min-height: 42px;
}

.error-message,
.field-error,
.form-error,
.form-text.text-danger,
.invalid-feedback,
.cc-form-error,
.cc-error-text,
[role="alert"].form-error {
  display: block;
  margin-top: 0.35rem;
  color: #dc2626;
  font-size: 0.8125rem;
  line-height: 1.4;
}

input[aria-invalid="true"],
select[aria-invalid="true"],
textarea[aria-invalid="true"],
.is-invalid,
.has-error input,
.has-error select,
.has-error textarea {
  border-color: #dc2626;
}

input[aria-invalid="true"]:focus,
select[aria-invalid="true"]:focus,
textarea[aria-invalid="true"]:focus,
.is-invalid:focus,
.has-error input:focus,
.has-error select:focus,
.has-error textarea:focus {
  outline-color: #dc2626;
}

@media (max-width: 640px) {
  .form-actions,
  .form-buttons,
  .form-footer,
  .cc-form-actions,
  .cc-stage-footer-actions,
  .dashboard-panel-form .dashboard-btn-group,
  form > .dashboard-btn-group {
    align-items: stretch;
  }

  .form-actions > *,
  .form-buttons > *,
  .form-footer > *,
  .cc-form-actions > *,
  .cc-stage-footer-actions > *,
  .dashboard-panel-form .dashboard-btn-group > *,
  form > .dashboard-btn-group > * {
    flex: 1 1 160px;
  }
}
