@layer components {
  /* Формы: запись на приём, вопрос врачу. Поля 18px (≥ 16px — iOS не зумит), высота 56px. */
  .form { display: flex; flex-direction: column; gap: 20px; }
  .field { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; border: 0; min-width: 0; }
  .field__label { font-weight: 600; font-size: 16px; }
  .field__label .muted { font-weight: 400; }
  .field__hint { font-size: 15px; color: var(--ink-3); }
  .field__error { font-size: 15px; color: var(--danger); }

  .input {
    width: 100%;
    min-height: 56px;
    padding: 0 16px;
    border: 1.5px solid var(--ctl);
    border-radius: var(--r-ctl);
    background: var(--surface);
    color: var(--ink);
    font: 400 18px/1.4 var(--font);
  }
  /* select: без родного вида браузера, чтобы высота, радиус и рамка совпадали с текстовым полем */
  select.input {
    appearance: none;
    padding-right: 44px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%233E5862' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 16px center;
    background-size: 16px;
    text-overflow: ellipsis;
    cursor: pointer;
  }
  textarea.input { min-height: 120px; padding: 14px 16px; resize: vertical; }
  .input:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 4px var(--focus-soft); }
  .input[aria-invalid="true"] { border-color: var(--danger); }
  .input::placeholder { color: var(--ink-3); }

  /* Поле поиска с лупой слева */
  .search-field { position: relative; flex: 1 1 320px; }
  .search-field .input { padding-left: 48px; }
  .search-field .icon { position: absolute; left: 16px; top: 18px; color: var(--ink-3); }

  /* Радиокнопки-пилюли (.seg): «Когда удобно позвонить» */
  .segmented { display: flex; flex-wrap: wrap; gap: 8px; }
  .segmented label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 48px;
    padding: 0 16px;
    border: 1.5px solid var(--ctl);
    border-radius: 999px;
    background: var(--surface);
    font-weight: 500;
    font-size: 16px;
    cursor: pointer;
  }
  .segmented label:has(:checked) { border-color: var(--accent); background: var(--soft); }
  .segmented input { width: 18px; height: 18px; margin: 0; accent-color: var(--accent); }

  /* Чекбокс согласия (.check) */
  .checkbox { display: flex; gap: 12px; align-items: flex-start; font-size: 16px; line-height: 1.5; color: var(--ink-2); }
  .checkbox input { flex: none; width: 24px; height: 24px; margin: 1px 0 0; accent-color: var(--accent); }

  .form__legend { margin-bottom: 8px; padding: 0; font-weight: 600; font-size: 16px; }
}
