/* Общие окна и поля форм (03.10.2026): вынесено из product.css, чтобы окна одинаково выглядели на карточке товара («Быстрый заказ», «Нашли ошибку?», доставка)
   и на странице «Опт» (запрос прайс-листа). Цвета, радиусы и движение берутся из токенов сайта. */
/* ---------- Поля ---------- */
.pfield { display: grid; gap: 6px; margin: 0; padding: 0; border: 0; }
.pfield label, .pfield legend { padding: 0; font-size: 14px; font-weight: 600; }
.pfield input:not([type="radio"]), .pfield textarea {
  width: 100%;
  min-height: 44px;
  padding: 10px 14px;
  border: 1px solid var(--hairline);
  border-radius: var(--radius-input);
  background: var(--canvas);
  font-size: 16px;
  line-height: 1.4;
  transition: border-color var(--dur-fast) var(--ease);
}
.pfield textarea { resize: vertical; }
.pfield input:not([type="radio"]):hover, .pfield textarea:hover { border-color: var(--ink-subtle); }
.pfield input:not([type="radio"]):focus-visible, .pfield textarea:focus-visible { border-color: var(--primary); }
/* Выпадающий список: как поле ввода, со своей стрелкой */
.pfield select { width: 100%; min-height: 44px; padding: 10px 40px 10px 14px; border: 1px solid var(--hairline); border-radius: var(--radius-input); background: var(--canvas) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5 6 8l3.5-3.5' fill='none' stroke='%23746a5e' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 14px center; font: inherit; font-size: 16px; line-height: 1.4; color: var(--ink); text-overflow: ellipsis; cursor: pointer; appearance: none; -webkit-appearance: none; transition: border-color var(--dur-fast) var(--ease); }
.pfield select:hover { border-color: var(--ink-subtle); }
.pfield select:focus-visible { border-color: var(--primary); outline: none; }

/* ---------- Окна ---------- */
.qdialog { padding: 0; border: 0; color: var(--ink); }
.qdialog::backdrop { background: rgba(24, 16, 8, 0.5); }
.qdialog {
  width: min(440px, calc(100vw - 32px));
  max-height: calc(100dvh - 32px);
  border-radius: var(--radius-modal);
  background: var(--canvas);
  box-shadow: 0 24px 64px rgba(24, 16, 8, 0.28);
}
.qdialog[open] { animation: qd-in var(--dur-slow) var(--ease); }
@keyframes qd-in { from { opacity: 0; transform: translateY(12px) scale(0.98); } }
.qdialog__form, .qdialog__done { display: grid; gap: var(--space-16); padding: var(--space-24); }
.qdialog__head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-16); }
.qdialog__title { margin: 0; font-size: 22px; font-weight: 700; line-height: 1.3; }
.qdialog__close { display: grid; place-items: center; flex: none; width: 44px; height: 44px; margin: -8px -8px 0 0; padding: 0; border: 0; border-radius: 50%; background: none; color: var(--ink-muted); cursor: pointer; transition: background-color var(--dur-fast) var(--ease); }
.qdialog__close:hover { background: var(--surface-1); }
.qdialog__product { display: flex; align-items: center; gap: var(--space-12); padding: var(--space-12); border-radius: var(--radius-tile); background: var(--surface-1); }
.qdialog__product img { flex: none; width: 56px; height: 56px; border-radius: var(--radius-sm); background: #fff; object-fit: contain; }
.qdialog__name { display: block; font-size: 14px; font-weight: 600; line-height: 1.35; }
.qdialog__price { display: block; margin-top: 2px; color: var(--ink-muted); font-size: 14px; }
.qdialog__lead { margin: 0; color: var(--ink-muted); font-size: 14px; line-height: 1.55; }
.qdialog__trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.qdialog__error { margin: 0; padding: 10px 14px; border-radius: var(--radius-sm); background: #fbe9ee; color: var(--error); font-size: 14px; }
.qdialog__submit { width: 100%; min-height: 48px; font-size: 15px; }
.qdialog__submit:disabled { opacity: 0.6; cursor: progress; }
.qdialog__legal { margin: 0; color: var(--ink-subtle); font-size: 12px; line-height: 1.5; }
.qdialog__legal a { text-decoration: underline; text-underline-offset: 2px; }
/* Широкое окно с формой из нескольких полей (запрос прайс-листа); поля парами в одну строку, на узком экране по одному */
.qdialog--wide { width: min(560px, calc(100vw - 32px)); overflow: auto; }
.qdialog__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-16); }
@media (max-width: 767px) { .qdialog { width: calc(100vw - 24px); } .qdialog--wide { width: calc(100vw - 24px); } }
@media (max-width: 479px) { .qdialog__row { grid-template-columns: minmax(0, 1fr); } }
@media (prefers-reduced-motion: reduce) { .qdialog[open] { animation: none; } }
