/* Небольшие дополнения поверх Tailwind (CDN, без сборки) */

/* --- Фирменный водяной знак (релиз 1.33) ---
 *
 * Логотип фоном на всех разделах, как просил директор. Отдельный слой, а
 * не background у контейнера, по двум причинам:
 *   1. opacity нельзя задать самой картинке в background — только всему
 *      элементу, а вместе с ней поблёк бы и весь контент раздела;
 *   2. слой лежит ВНЕ #view-root, содержимое которого перерисовывается
 *      при каждом переходе между разделами — внутри знак стирался бы.
 *
 * pointer-events:none обязателен: без него прозрачный слой перехватывал
 * бы клики по таблицам и кнопкам под собой.
 *
 * Прозрачность 10% — по заявке. Значение вынесено в переменную: если на
 * реальном экране покажется ярким или наоборот незаметным, правится одной
 * цифрой здесь, без поиска по разметке.
 */
:root {
  --brand-watermark-opacity: 0.1;
}

.brand-watermark {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url("/static/img/logo.png");
  background-repeat: no-repeat;
  background-position: center;
  /* min() — чтобы на широком мониторе знак не разрастался во весь экран,
     а на ноутбуке не превращался в марку на пол-таблицы. */
  background-size: min(55%, 620px);
  opacity: var(--brand-watermark-opacity);
}

/* На печатных бланках (ТТН, накладные) водяной знак ни к чему — он
   съедает тонер и мешает читать документ. */
@media print {
  .brand-watermark {
    display: none;
  }
}

::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 4px;
}

.kanban-column.drag-over {
  background-color: #e0e7ff;
  outline: 2px dashed #6366f1;
  outline-offset: -4px;
}

/* Чат №15: наведение на колонку "В сборке" без валидной оплаты по
   перетаскиваемой сделке — красная подсветка вместо обычной indigo,
   предупреждает ДО того, как менеджер отпустит карточку (drop всё равно
   покажет модалку-предупреждение и не выполнит переход). */
.kanban-column.drag-over.drag-blocked {
  background-color: #fee2e2;
  outline-color: #ef4444;
}

.deal-card {
  cursor: grab;
}
.deal-card:active {
  cursor: grabbing;
}
.deal-card.dragging {
  opacity: 0.4;
}

/* Чат №21: карточка сделки мгновенно "перелетает" в колонку "Сборка" после
   100%-й оплаты (см. moveDealCardOnBoard в views/deals.js) — короткая
   вспышка зелёным, чтобы взгляд директора/менеджера сразу нашёл карточку
   в новой колонке, не читая тост. */
.deal-card.deal-card-landed {
  animation: deal-card-landed 1.1s ease-out;
}
@keyframes deal-card-landed {
  0% { background-color: #d1fae5; border-color: #34d399; transform: scale(1.03); }
  100% { background-color: #ffffff; border-color: #e2e8f0; transform: scale(1); }
}

.modal-backdrop {
  background: rgba(15, 23, 42, 0.5);
}

.toast {
  animation: toast-in 0.15s ease-out;
}
@keyframes toast-in {
  from { transform: translateY(-8px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}
