/* Echo UI: form structure and controls. */
.ui-form { margin: 0; }
.ui-form--inline { display: flex; gap: var(--ui-space-4); align-items: center; flex-wrap: wrap; }
.ui-form-grid { display: grid; gap: var(--ui-space-4); grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.ui-field { min-width: 0; }
.ui-label { display: block; font-size: var(--ui-font-size-secondary); font-weight: var(--ui-font-weight-medium); color: var(--ui-color-text-muted-strong); margin: 6px 0 3px; }
.ui-control {
  width: 100%;
  min-height: var(--ui-control-height);
  padding: var(--ui-control-padding);
  border-radius: var(--ui-radius-sm);
  border: 1px solid var(--ui-color-border-strong);
  background: var(--ui-color-surface-raised);
  color: var(--ui-color-text);
  outline: none;
  font-family: var(--ui-font-body);
  font-size: var(--ui-font-size-control);
  line-height: var(--ui-line-height-snug);
  box-shadow: var(--ui-shadow-inset), 0 1px 0 var(--ui-color-edge-highlight);
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
textarea.ui-control { min-height: 96px; resize: vertical; }
.ui-control:focus { border-color: rgba(var(--ui-primary-rgb), .65); box-shadow: var(--ui-shadow-control), 0 0 0 4px rgba(var(--ui-primary-rgb), .18); }
.ui-control--compact { min-height: var(--ui-control-height-compact); padding: var(--ui-control-padding-compact); }
.ui-control[aria-invalid="true"] {
  border-color: rgba(185, 28, 28, .7);
  box-shadow: var(--ui-shadow-inset), 0 0 0 4px rgba(185, 28, 28, .15);
}
.ui-help { color: var(--ui-color-text-muted); font-size: var(--ui-font-size-secondary); line-height: var(--ui-line-height-normal); }
.ui-field-error { color: var(--ui-color-danger); font-size: var(--ui-font-size-secondary); line-height: var(--ui-line-height-normal); }
.ui-check { display: inline-flex; align-items: center; gap: var(--ui-space-2); margin: 0; }
.ui-check input { width: auto; min-height: auto; margin: 0; }
.ui-form-actions { display: flex; align-items: center; gap: var(--ui-space-2); flex-wrap: wrap; margin-top: var(--ui-space-4); }
.ui-form-actions--end { justify-content: flex-end; }
.ui-form-actions--sticky { position: sticky; z-index: 20; bottom: 0; justify-content: flex-end; margin-inline: calc(var(--ui-card-padding) * -1); margin-bottom: calc(var(--ui-card-padding) * -1); padding: var(--ui-space-4) var(--ui-card-padding) calc(var(--ui-space-4) + env(safe-area-inset-bottom)); border-top: 1px solid var(--ui-color-border); background: color-mix(in srgb, var(--ui-color-surface) 94%, transparent); box-shadow: 0 -8px 20px rgba(8, 16, 49, .08); backdrop-filter: blur(10px); }

@media (max-width: 700px) {
  .ui-form-actions--sticky > .ui-button--primary:only-child,
  .ui-form-actions--sticky > .ui-button--danger-solid:only-child { flex: 1 1 100%; }
}
