/* ==========================================================================
   COMANDA — Form Controls
   ========================================================================== */

.form-label{
  font-size:.8rem;
  font-weight:600;
  color:var(--ink-700);
  margin-bottom:.4rem;
  display:inline-block;
}

.form-control,
.form-select{
  font-family:var(--font-body);
  font-size:.87rem;
  color:var(--ink-900);
  background:var(--white);
  border:1px solid var(--ink-200);
  border-radius:var(--radius-sm);
  padding:.62rem .85rem;
  line-height:1.3;
  transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}
.form-control::placeholder{ color:var(--ink-300); }
.form-control:focus,
.form-select:focus{
  border-color:var(--accent-500);
  box-shadow:0 0 0 3px rgba(255,106,43,.14);
  outline:none;
}

.form-control.is-sm,
.form-select.is-sm{ padding:.42rem .7rem; font-size:.8rem; }

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

/* Search field with leading icon */
.search-field{ position:relative; }
.search-field i{
  position:absolute;
  left:.85rem; top:50%;
  transform:translateY(-50%);
  color:var(--ink-300);
  font-size:.95rem;
}
.search-field .form-control{ padding-left:2.4rem; }
.search-field.on-dark .form-control{
  background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.12);
  color:var(--white);
}
.search-field.on-dark .form-control::placeholder{ color:rgba(255,255,255,.45); }
.search-field.on-dark i{ color:rgba(255,255,255,.45); }

/* Input group (e.g. select + input combined) */
.input-group .form-control,
.input-group .form-select{ border-radius:0; }
.input-group > :first-child{ border-top-left-radius:var(--radius-sm); border-bottom-left-radius:var(--radius-sm); }
.input-group > :last-child{ border-top-right-radius:var(--radius-sm); border-bottom-right-radius:var(--radius-sm); }

/* Checkbox */
.form-check-input{
  width:1.05em; height:1.05em;
  border:1.5px solid var(--ink-300);
  border-radius:.3em;
  margin-top:.15em;
}
.form-check-input:checked{ background-color:var(--accent-500); border-color:var(--accent-500); }
.form-check-input:focus{ box-shadow:0 0 0 3px rgba(255,106,43,.15); border-color:var(--accent-500); }
.form-check-label{ font-size:.86rem; color:var(--ink-700); }

/* Toggle switch — used for Active/Inactive status rows */
.form-switch .form-check-input{
  width:2.4em; height:1.3em;
  border-radius:var(--radius-pill);
  background-color:var(--ink-200);
  border-color:var(--ink-200);
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
}
.form-switch .form-check-input:checked{
  background-color:var(--success-500);
  border-color:var(--success-500);
}
.form-switch .form-check-input:focus{ box-shadow:0 0 0 3px rgba(31,169,113,.18); }

/* Radio pill list, e.g. order type filters */
.form-range{ accent-color:var(--accent-500); }

/* Field helper / error text */
.form-hint{ font-size:.76rem; color:var(--ink-500); margin-top:.35rem; }
.form-error{ font-size:.76rem; color:var(--danger-600); margin-top:.35rem; }
.form-control.is-invalid{ border-color:var(--danger-500); }
.form-control.is-valid{ border-color:var(--success-500); }

/* Filter bar — row of controls above tables */
.filter-bar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.65rem;
}
.filter-bar .form-control,
.filter-bar .form-select{ min-width:160px; }
.filter-bar .search-field{ flex:1; min-width:220px; }