/*
 * TokenPilot semantic form components.
 *
 * This component layer is intentionally not loaded globally yet.
 * It depends on static/css/tokens.css from the token foundation PR and
 * will be enabled later through a controlled single-page cascade pilot.
 */

.input,
select,
textarea,
input:not([type="checkbox"]):not([type="radio"]){
  --control-text:var(--text-primary);
  --control-border:var(--border-subtle);
  --control-surface:var(--surface-card-muted);
  --control-focus-border:var(--accent-primary);
  --control-focus-ring:var(--accent-primary-ring);
  color:var(--control-text);
  border-color:var(--control-border);
  background:var(--control-surface);
}

.input::placeholder,
textarea::placeholder,
input::placeholder{
  color:var(--text-tertiary);
}

.input:focus,
select:focus,
textarea:focus,
input:focus{
  outline:none;
  border-color:var(--control-focus-border);
  box-shadow:var(--shadow-focus-ring, 0 0 0 3px var(--control-focus-ring));
}

.input:disabled,
select:disabled,
textarea:disabled,
input:disabled{
  --control-text:var(--text-tertiary);
  --control-border:var(--border-muted);
  --control-surface:var(--surface-card-muted);
  cursor:not-allowed;
  opacity:.72;
}

.input.is-invalid,
select.is-invalid,
textarea.is-invalid,
input.is-invalid,
.input[aria-invalid="true"],
select[aria-invalid="true"],
textarea[aria-invalid="true"],
input[aria-invalid="true"]{
  --control-border:var(--state-danger-ring);
  --control-focus-border:var(--state-danger);
  --control-focus-ring:var(--state-danger-ring);
}

.input.is-valid,
select.is-valid,
textarea.is-valid,
input.is-valid{
  --control-border:var(--state-success-ring);
  --control-focus-border:var(--state-success);
  --control-focus-ring:var(--state-success-ring);
}

.form-status,
.field-help,
.field-hint,
.auth-foot,
.auth-foot span{
  color:var(--text-secondary);
}

.auth-panel,
.auth-card,
.user-create-panel,
.signup-request-panel,
.user-limit-panel{
  color:var(--text-primary);
  border-color:var(--border-subtle);
  background:var(--surface-card);
  box-shadow:var(--shadow-panel);
}
