label { color: var(--ink); font-size: .82rem; font-weight: 700; line-height: 1.4; }
input, select, textarea {
  width: 100%;
  min-height: var(--control-height);
  border: 1px solid var(--line);
  border-radius: var(--radius-control);
  background: var(--solid);
  color: var(--ink);
  padding: .65rem .85rem;
  font-size: .9375rem;
  line-height: 1.4;
  transition: border-color var(--ease), box-shadow var(--ease), background var(--ease);
}
textarea { min-height: 7rem; resize: vertical; line-height: 1.55; }
input::placeholder, textarea::placeholder { color: color-mix(in srgb, var(--muted) 72%, transparent); }
input:hover, select:hover, textarea:hover { border-color: color-mix(in srgb, var(--color-petrol) 42%, var(--line)); }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--color-petrol); box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-teal) 22%, transparent); }
[aria-invalid="true"] { border-color: var(--danger) !important; box-shadow: 0 0 0 3px color-mix(in srgb, var(--danger) 12%, transparent) !important; }
input:disabled, select:disabled, textarea:disabled, input[readonly] { opacity: .64; background: color-mix(in srgb, var(--solid), var(--muted) 7%); }
.search-card, .form-card, .auth-card { border: 0; border-radius: var(--radius-panel); background: var(--card); box-shadow: inset 0 0 0 1px var(--line); padding: clamp(1.25rem, 2.5vw, 2rem); }
.search-card { box-shadow: var(--shadow-md), inset 0 0 0 1px var(--line); }
.search-input-wrap { border: 1px solid var(--line); border-radius: var(--radius-control); background: var(--solid); }
.search-input-wrap:focus-within { border-color: var(--color-petrol); box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-teal) 20%, transparent); }
.search-input-wrap input { border: 0; background: transparent; box-shadow: none; }
.advanced-filters { margin-top: var(--space-5); padding-top: var(--space-5); border-top: 1px solid var(--line); }
.filter-grid, .form-grid { gap: .9rem; }
.platform-form { gap: var(--space-5); }
.platform-form label { gap: .4rem; align-content: start; }
.platform-form label > small, .platform-form label > .field-helper { min-height: 1.2rem; }
.check-label { min-height: var(--control-height); display: flex !important; align-items: center; gap: .7rem !important; }
.check-label input, input[type="checkbox"], input[type="radio"] { flex: 0 0 auto; width: 1.15rem; height: 1.15rem; min-height: 0; margin: 0; accent-color: var(--color-petrol); }
.check-label input[type="radio"], input[type="radio"] { border-radius: 50%; }
.toggle-label { padding: .65rem .75rem; border-radius: var(--radius-control); background: color-mix(in srgb, var(--color-mint) 18%, transparent); }
.form-message { min-height: 1.5rem; margin: 0; }
.form-message:not(:empty) { padding: .75rem 1rem; border-left: 3px solid var(--danger); border-radius: var(--radius-xs); background: color-mix(in srgb, var(--danger) 8%, transparent); }
.helper-text, .field-helper, .source-limit { color: var(--muted); font-size: .76rem; line-height: 1.55; }
.toolbar { display: flex; flex-wrap: wrap; align-items: end; gap: .65rem; margin-bottom: var(--space-5); }
.toolbar input { min-width: 12rem; flex: 1; }
.toolbar select { width: auto; min-width: 9rem; max-width: 13rem; }
.inline-form { margin-block: var(--space-5); padding: var(--space-5); border: 0; border-radius: var(--radius-card); background: var(--card); box-shadow: inset 0 0 0 1px var(--line); }
.salary-section, .weekly-editor { margin-block: .5rem; padding: var(--space-5); border: 1px solid var(--line); border-radius: var(--radius-card); }
.salary-section legend, .weekly-editor legend { padding-inline: .5rem; font: 600 1.2rem var(--font-display); }
.salary-range { grid-template-columns: repeat(2, calc((100% - .9rem) / 2)); align-items: start; }
.salary-range > label { grid-template-rows: auto var(--control-height) minmax(2.5rem, auto); }
.salary-range > label > input { height: var(--control-height); }
.field-feedback { min-height: 2.5rem; display: block; }
.field-feedback .field-helper { display: block; min-height: 1.2rem; }
.field-feedback:has(.field-error) .field-helper { display: none; }
.field-error { margin-top: .2rem; }
.form-actions, .detail-actions, .card-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); }
