@charset "UTF-8";
/* ============================================================
   КАПРИН — мобильная пригодность (13.11.2026)
   Владелец: «поправь чтоб не выходило за экран, чтоб в телефоне
   было всё удобно и видно».
   1) Анти-зум iOS: поля ввода >= 16px (иначе Safari зумит и страница
      «уезжает» за экран при фокусе на количестве/поиске).
   2) Защита от горизонтального выезда страницы.
   3) Таблица БАЗЫ клиентов на телефоне -> аккуратные карточки
      (вместо сжатой в кашу таблицы с буквами по вертикали).
   Файл подключён последним в base.html и admin/base.html.
   ============================================================ */

@media (max-width: 900px) {

  /* 1) анти-зум iOS: любой контрол ввода не мельче 16px */
  input, select, textarea { font-size: 16px !important; }
  .qty input,
  .card-buy-row .qty input,
  .search-box input,
  .filter-bar input, .filter-bar select { font-size: 16px !important; }

  /* 2) страница не выезжает по горизонтали */
  html, body { max-width: 100%; overflow-x: clip; }
  @supports not (overflow: clip) { html, body { overflow-x: hidden; } }
  .container { max-width: 100vw; }
}

/* 3) БАЗА клиентов: карточки вместо сжатой таблицы */
@media (max-width: 760px) {
  .baza-table-wrap { overflow: visible !important; background: transparent !important; border: 0 !important; box-shadow: none !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
  .baza-table, .baza-table tbody, .baza-table tr, .baza-table td {
    display: block !important; width: 100% !important; min-width: 0 !important;
  }
  .baza-table { background: transparent !important; box-shadow: none !important; border: 0 !important; }
  .baza-table thead { display: none !important; }
  .baza-table tr {
    margin: 0 0 12px !important; padding: 14px 14px 12px !important;
    border: 1px solid rgba(96, 80, 52, .14) !important; border-radius: 14px !important;
    background: #fffcf5 !important; box-shadow: 0 6px 18px rgba(83, 61, 33, .07) !important;
    overflow: hidden !important;
  }
  .baza-table td {
    padding: 7px 0 !important; border: 0 !important;
    font-size: 14px !important; line-height: 1.45 !important;
    overflow-wrap: break-word !important; word-break: normal !important;
    vertical-align: top !important; background: transparent !important;
  }
  .baza-table td + td { border-top: 1px dashed rgba(96, 80, 52, .12) !important; }
  .baza-table td::before {
    display: block; margin-bottom: 3px;
    font-size: 10px !important; font-weight: 800; letter-spacing: .05em;
    text-transform: uppercase; color: #9a8f7c;
  }
  .baza-table td:nth-child(1)::before { content: "Клиент"; }
  .baza-table td:nth-child(2)::before { content: "ИНН"; }
  .baza-table td:nth-child(3)::before { content: "Контакты"; }
  .baza-table td:nth-child(4)::before { content: "Что запрашивал"; }
  .baza-table td:nth-child(5)::before { content: "Статус"; }
  .baza-table td:nth-child(6)::before { content: "Напомнить"; }
  .baza-table td:nth-child(1) { font-size: 16px !important; font-weight: 800; color: #2b2720; }
  .baza-table td:nth-child(3) { overflow-wrap: anywhere !important; }
  .baza-table td:nth-child(6) { font-size: 13px !important; }
  /* просроченные напоминания остаются заметными в карточке */
  .baza-table tr[style*="background"], .baza-table tr.overdue { background: #fdf1ec !important; }
}

/* 4) Журнал «Сметы: кто загружал» -> карточки (публичный base.html) */
@media (max-width: 760px) {
  .smeta-leads-wrap { overflow: visible !important; }
  .smeta-leads, .smeta-leads tbody, .smeta-leads td {
    display: block !important; width: 100% !important; min-width: 0 !important;
  }
  .smeta-leads {
    background: transparent !important; box-shadow: none !important; border: 0 !important;
    min-width: 0 !important; width: 100% !important;
  }
  .smeta-leads thead { display: none !important; }
  .smeta-leads tr {
    display: grid !important; grid-template-columns: 1fr 1fr; gap: 10px 12px;
    margin: 0 0 12px !important; padding: 14px !important;
    border: 1px solid #e2e8f0 !important; border-radius: 14px !important;
    background: #fff !important; box-shadow: 0 6px 18px rgba(15, 23, 42, .06) !important;
    overflow: hidden !important;
  }
  .smeta-leads td {
    padding: 0 !important; border: 0 !important; background: transparent !important;
    font-size: 14px !important; line-height: 1.4 !important; min-width: 0 !important;
    overflow-wrap: break-word !important; word-break: normal !important;
  }
  .smeta-leads td::before {
    display: block; margin-bottom: 2px;
    font-size: 10px !important; font-weight: 800; letter-spacing: .05em;
    text-transform: uppercase; color: #94a3b8;
  }
  .smeta-leads td:nth-child(1)::before { content: "Дата"; }
  .smeta-leads td:nth-child(2)::before { content: "Кто"; }
  .smeta-leads td:nth-child(3)::before { content: "Контакты"; }
  .smeta-leads td:nth-child(4)::before { content: "Файл"; }
  .smeta-leads td:nth-child(5)::before { content: "Позиций"; }
  .smeta-leads td:nth-child(6)::before { content: "В наличии"; }
  .smeta-leads td:nth-child(7)::before { content: "Сумма"; }
  .smeta-leads td:nth-child(8)::before { content: "Статус"; }
  .smeta-leads td:nth-child(3), .smeta-leads td:nth-child(4) { grid-column: 1 / -1; }
  .smeta-leads td:nth-child(3) { overflow-wrap: anywhere !important; }
  .smeta-leads td:nth-child(2) { font-weight: 700; }
  .smeta-leads td:nth-child(7) { font-weight: 800; font-size: 15px !important; color: #0b1220; }
  .smeta-leads td:nth-child(8) select { width: 100%; }
  .smeta-leads td[colspan] { grid-column: 1 / -1; }
  .smeta-leads td[colspan]::before { content: none !important; }
  .smeta-leads td[colspan] span { white-space: normal !important; }

  /* строка «Первые позиции» приклеивается к карточке снизу, а не отдельной карточкой */
  .smeta-leads tr:has(+ tr > td[colspan]) {
    margin-bottom: 0 !important; border-bottom: 0 !important;
    border-radius: 14px 14px 0 0 !important;
  }
  .smeta-leads tr:has(> td[colspan]) {
    display: block !important; margin: 0 0 12px !important;
    border-top: 0 !important; border-radius: 0 0 14px 14px !important;
    background: #f7f9fc !important; padding: 10px 14px 12px !important;
  }
  .smeta-leads tr:has(> td[colspan]) td { font-size: 13px !important; color: #64748b; }
}

/* 5) Админка «Товары»: цена и остаток не налезают друг на друга.
   База: строка "price stock" сидела в колонке 66px (под фото) -> цена
   вылезала и перекрывала остаток. Разводим цену по широкой строке. */
@media (max-width: 760px) {
  .admin-products-table tr {
    grid-template-columns: 66px minmax(0, 1fr) auto !important;
    grid-template-areas:
      "photo name name"
      "photo sku sku"
      "price price stock"
      "actions actions actions" !important;
  }
  .admin-products-table .ap-price-cell { grid-area: price; justify-self: start; min-width: 0; }
  .admin-products-table .ap-stock-cell { grid-area: stock; justify-self: end; text-align: right; }
  .admin-products-table .ap-stock-cell::before { text-align: right; }
  .admin-products-table .ap-price-cell,
  .admin-products-table .ap-stock-cell { white-space: nowrap !important; }
}
@media (max-width: 380px) {
  .admin-products-table tr { grid-template-columns: 60px minmax(0, 1fr) auto !important; }
}
