/* Shared field contract: simple label-above controls.
   No floating labels, no module-owned input surfaces; modules may only control layout. */

:root {
  --rs-field-bg: var(--rst-ui-surface-field-strong);
  --rs-field-bg-hover: var(--rst-ui-section-row-hover);
  --rs-field-bg-focus: var(--rst-ui-surface-field-strong);
  --rs-field-bg-disabled: var(--rst-ui-divider-soft);
  --rs-field-border: var(--rst-state-neutral-border);
  --rs-field-border-hover: var(--rst-ui-line-strong);
  --rs-field-border-focus: var(--rst-state-info-border);
  --rs-field-shadow-focus: var(--rst-ui-focus);
  --rs-field-label: var(--rst-ui-muted);
  --rs-field-value: var(--rst-ui-text);
  --rs-field-placeholder: var(--rst-ui-muted);
}

.rs-field,
.brand-field {
  min-width: 0;
  display: grid;
  gap: var(--rs-field-gap,8px);
  color: var(--rs-field-label);
}

.rs-field.is-wide { grid-column: 1 / -1; }

.rs-field > span:first-child,
.brand-field-label {
  color: var(--rs-field-label);
  font-size: var(--rs-field-label-size,11px);
  font-weight: var(--rs-field-label-weight,var(--rst-fw-bold));
  line-height: 1;
  letter-spacing: var(--rs-field-label-spacing,.055em);
  text-transform: var(--rs-field-label-transform,uppercase);
}

.rs-field > :is(input,select,textarea),
.rs-compact-input,
.rs-field > .rs-field-value,
.brand-field-control,
.rs-field-control {
  width: 100%;
  min-width: 0;
  min-height: var(--rs-field-min-height,44px);
  padding: var(--rs-field-padding,0 14px);
  border: 1px solid var(--rs-field-border);
  border-radius: var(--rs-field-radius,var(--rst-ui-radius-md));
  background: var(--rs-field-bg);
  color: var(--rs-field-value);
  box-shadow: none;
  transition: border-color var(--rst-motion-ui) var(--rst-motion-smooth),background var(--rst-motion-ui) var(--rst-motion-smooth),box-shadow var(--rst-motion-ui) var(--rst-motion-smooth),opacity var(--rst-motion-ui) var(--rst-motion-smooth);
}

.brand-field-control,
.rs-field-control {
  display: flex;
  align-items: center;
  gap: 12px;
}

.rs-field > :is(input,select),
.rs-field > .rs-field-value {
  display: flex;
  align-items: center;
}

.rs-field > :is(input,select,textarea),
.rs-compact-input {
  outline: 0;
  color-scheme: dark;
  font: inherit;
  font-size: var(--rs-field-control-size,14px);
  font-weight: var(--rs-field-control-weight,var(--rst-fw-medium));
  line-height: 1.25;
}

.brand-field-control :is(input,select),
.rs-field-control :is(input,select) {
  flex: 1;
  min-width: 0;
  height: 22px;
  padding: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--rs-field-value);
  color-scheme: dark;
  font: inherit;
  font-size: var(--rs-field-control-size,14px);
  font-weight: var(--rs-field-control-weight,var(--rst-fw-medium));
}

.rs-field > select,
.rs-compact-input:is(select),
.brand-field-control select,
.rs-field-control select {
  cursor: pointer;
}

.rs-field > textarea {
  min-height: var(--rs-field-textarea-min-height,72px);
  padding-block: 12px;
  resize: vertical;
}

.rs-field > :is(input,textarea)::placeholder,
.rs-compact-input::placeholder,
.brand-field-control input::placeholder,
.rs-field-control input::placeholder {
  color: var(--rs-field-placeholder);
  opacity: 1;
}

.rs-field:hover > :is(input,select,textarea,.rs-field-value),
.rs-compact-input:hover,
.brand-field-control:hover,
.rs-field-control:hover {
  border-color: var(--rs-field-border-hover);
  background: var(--rs-field-bg-hover);
}

.rs-field:focus-within > :is(input,select,textarea),
.rs-compact-input:focus,
.brand-field-control:focus-within,
.rs-field-control:focus-within {
  border-color: var(--rs-field-border-focus);
  background: var(--rs-field-bg-focus);
  box-shadow: var(--rs-field-shadow-focus);
}

.rs-field > :is(input,select,textarea):disabled,
.rs-compact-input:disabled,
.brand-field-control :is(input,select):disabled,
.rs-field-control :is(input,select):disabled {
  cursor: not-allowed;
  opacity: .66;
}

.rs-field:has(:disabled) > :is(input,select,textarea) {
  background: var(--rs-field-bg-disabled);
  opacity: .78;
}

.rs-field.is-required-missing > :is(input,select,textarea) {
  border-color: var(--rst-state-warning-border);
}

.rs-field.is-required-missing > span:first-child::before {
  content: "";
  display: inline-block;
  width: 4px;
  height: 4px;
  margin-right: 6px;
  border-radius: var(--rst-ui-radius-pill);
  background: var(--rst-state-warning);
  vertical-align: 1px;
}

.rs-field.is-required-missing:hover > :is(input,select,textarea),
.rs-field.is-required-missing:focus-within > :is(input,select,textarea) {
  border-color: var(--rst-state-warning-border);
}


.rs-field.is-compact-note > textarea {
  min-height: 50px;
}


/* Shared compact checkbox/toggle row for table settings and small forms. */
.rs-check-toggle {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--rst-ui-text);
  font-size: 12px;
  font-weight: var(--rst-fw-display);
}

.rs-check-toggle input {
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
  accent-color: var(--rst-ui-action);
}
