/* ПРОСЧЁТ И ДАННЫЕ ЗАКАЗА.
   Значения — переменные дизайн-кода; своих чисел здесь нет, кроме
   размеров самих элементов управления. */

/* ── Раскрытый список поверх соседей.
   Карточки колонок создавали свой слой, и список уходил под соседнюю
   карточку. Слой поднимается у той карточки, в которой список раскрыт. */
.cols3 > .card:has(.combo-legacy.open),
.cols3 > .card:has(.combo.open) { z-index: 60; }
.combo-legacy.open .pop { z-index: 70; }

/* ── Поле количества.
   Кнопка внутри поля есть не у каждой строки: у нелистового материала
   переключать нечего. Место под неё отводится только когда она есть —
   иначе число отступало от края без причины. Сама кнопка — значок без
   плашки: она вторична по отношению к числу, которое правят. */
.field-affix { position: relative; flex: 0 0 112px; width: 112px; }
.field-affix > input.input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]) {
  width: 100%; text-align: right;
}
.field-affix.has-affix > input.input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]) {
  padding-right: 58px;
}
.field-affix.has-affix { flex-basis: 150px; width: 150px; }
.affix {
  position: absolute; top: 50%; right: var(--sp-100); transform: translateY(-50%);
  display: inline-flex; align-items: center; justify-content: center;
  padding: 0; border: 0; background: none;
  color: var(--ink3); opacity: .75;
  font-size: 11.5px; font-weight: var(--fw-semi); cursor: pointer;
  transition: color .12s, opacity .12s;
}
.affix:hover { color: var(--acc-ink); opacity: 1; }

/* ── Пара полей в строке стоит по одной линии: подпись бывает в две
   строки, и без выравнивания по низу поля разъезжались. */
.order-two { align-items: end; }
.order-two > .f { display: flex; flex-direction: column; justify-content: flex-end; }
.order-two label { min-height: 34px; display: flex; align-items: flex-end; }

/* ── Доля или сумма — обычный сегмент программы, с тем же бегунком, что
   и во всех остальных разделах. Здесь только ширина под значок. */
.disc-seg { flex: none; }
.disc-seg button { min-width: 44px; padding: 0 var(--sp-100); }
.disc-seg button svg { width: 15px; height: 15px; }

/* ── Выбор числа лежит слоем поверх страницы, а не внутри панели: у
   панели своя прокрутка, и снизу календарь срезало. Слой выше панели —
   иначе он оказывается под ней. */
.daypick {
  position: fixed; z-index: 420; width: 268px; padding: var(--sp-150);
  background: var(--card); border: 1px solid var(--line);
  border-radius: var(--r); box-shadow: var(--sh-raised);
}

/* ── Код подтверждения: одно поле, под ним шесть ячеек. Поле прозрачное
   и растянуто на всю ширину — вставка кода целиком работает как обычно. */
.pin { position: relative; }
.pin-cells {
  display: grid; grid-template-columns: repeat(6, 1fr);
  gap: var(--sp-100); pointer-events: none;
}
.pin-cell {
  display: flex; align-items: center; justify-content: center;
  height: 56px; border: 1.5px solid var(--line2); border-radius: var(--r-s);
  background: var(--field); color: var(--ink);
  font-family: var(--num); font-size: 24px; font-weight: var(--fw-semi);
}
.pin-cell.on { border-color: var(--acc); box-shadow: 0 0 0 3px var(--acc-weak); }
input.pin-input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]) {
  position: absolute; inset: 0; width: 100%; height: 100%;
  padding: 0; border: 0; border-radius: 0;
  background: none; color: transparent; caret-color: transparent;
  outline: none; cursor: text;
}

/* ── Поле со значком внутри: место под значок отвоёвывается тем же весом
   правила, что и у базового правила полей. */
.field-icon > input.input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]) {
  width: 100%; padding-right: 42px;
}

/* ── Картинка предложения: кнопки под полем отбиты как и всё остальное. */
.order-island .drop-pic + .row { margin-top: var(--sp-100); }

/* ── Окно с тремя ответами. Кнопки не сжимаются: «Запомнить ввод»
   обрезалось, когда три кнопки не помещались в ширину окна. */
.dialog-actions { flex-wrap: wrap; }
.dialog-actions .btn { flex: 0 0 auto; white-space: nowrap; }
