/* public/css/log.css — палитра и визуал БОЕВОГО ЛОГА (редизайн Фаза 7, §48–§52).
   Подключается ПОСЛЕ styles.css. Здесь — авторитетный источник для всех классов .log-* (сервер
   помечает сегменты классами в server/core/fightLog.js, клиент кладёт текст только через textContent).

   Семантика цвета (§48): крит/урон — красный, уклон/лечение — зелёный, блок — синий, бафы/дебафы —
   фиолетовый, кража жизни — тёмно-красный, пробитие блока — оранжевый, промах/контра — стальной,
   комментатор — золото. Базовые семантические токены (--danger/--success/--info/--accent/--accent-2)
   приходят из styles.css и уже темозависимы; ниже добавлены лишь 4 недостающих оттенка лога. */

/* Недостающие оттенки лога — светлая тема (дефолт). Читаются на кремовом фоне combats. */
:root {
  --log-violet: #7a53c8;   /* бафы/дебафы/магия */
  --log-steal:  #8a1c2a;   /* кража жизни (тёмно-красный) */
  --log-pierce: #c2661a;   /* пробитие блока (оранж) */
  --log-miss:   #5a6b86;   /* промах/контра/имя защищающегося (сталь) */
}
/* Тёмная тема «DreamsCity» — те же роли, но осветлённые для контраста на тёмных панелях. */
:root[data-mode="dark"] {
  --log-violet: #b898f0;
  --log-steal:  #e07a86;
  --log-pierce: #f0973f;
  --log-miss:   #9db0d0;
}

/* --- Лента лога: строка и чередование фона --- */
.log-line { padding: 4px 7px; border-radius: 5px; line-height: 1.45; }
.log-line:nth-child(even) { background: color-mix(in srgb, var(--border) 20%, transparent); }
.log-seg { }

/* --- Семантическая палитра сегментов (§48) --- */
.log-head   { display: inline-block; font-weight: 800; color: var(--muted); text-transform: uppercase; letter-spacing: .4px; font-size: .78rem; }
.log-att    { font-weight: 700; color: var(--accent); }
.log-def    { font-weight: 700; color: var(--log-miss); }
.log-dodge  { color: var(--success); font-style: italic; }        /* уклон — зелёный */
.log-heal   { color: var(--success); font-weight: 700; }          /* лечение — зелёный */
.log-block  { color: var(--info); font-weight: 600; }             /* блок — синий */
.log-pierce { color: var(--log-pierce); font-weight: 700; }       /* пробитие — оранж */
.log-crit   { color: var(--danger); font-weight: 800; }           /* крит — красный */
/* Просьба заказчика 2026-07-22: обычный удар — СЕРЫЙ, критический — КРАСНЫЙ (класс log-dmg--crit
   ставит fightLog.js на крит-ударе; идёт ПОСЛЕ .log-dmg → перебивает цвет при равной специфичности). */
.log-dmg    { color: var(--muted); font-weight: 800; font-variant-numeric: tabular-nums; } /* обычный удар — серый */
.log-dmg--crit { color: var(--danger); }                          /* критический удар — красный */
.log-steal  { color: var(--log-steal); font-weight: 800; font-variant-numeric: tabular-nums; } /* кража — тёмно-красный */
.log-counter { color: var(--accent-2); font-weight: 800; }        /* контрудар «Стойки» (Ф6) — золото */
.log-dirty  { color: var(--log-violet); font-weight: 700; font-style: italic; } /* «Грязная защита»/грязный блок — ФИОЛЕТОВЫЙ (просьба заказчика) */
.log-tech   { color: #c9a44a; font-weight: 700; } /* СТ-40: применение ПРИЁМА — золотистый (вскрывается после раунда) */
.log-buff   { color: var(--log-violet); font-weight: 600; }       /* баф — фиолет */
.log-debuff { color: var(--log-violet); font-style: italic; }     /* дебаф — фиолет */
.log-magic  { color: var(--log-violet); font-weight: 700; }       /* магия — фиолет */
.log-ranged { color: var(--accent-2); font-weight: 700; }         /* стрелковое — золото */
.log-miss   { color: var(--log-miss); font-style: italic; }       /* промах/контра — сталь */
.log-auto   { color: var(--muted); font-style: italic; }
.log-end    { font-weight: 800; }
.log-win    { color: var(--success); }
.log-draw   { color: var(--muted); }

/* --- Комментатор и вступление (§50) --- */
.log-caster { font-weight: 800; color: var(--accent-2); letter-spacing: .2px; }
.log-intro  { color: var(--muted); font-style: italic; }

/* --- Итоговая строка раунда (§52): снимок HP --- */
.log-sum     { color: var(--muted); font-size: .82rem; font-variant-numeric: tabular-nums; font-weight: 700; }
.log-sum-sep { color: color-mix(in srgb, var(--muted) 55%, transparent); font-size: .82rem; }

/* --- Полоски-зоны (§49): куда бил / что закрывал каждый боец за раунд --- */
.log-zones { display: flex; flex-direction: column; gap: 4px; padding: 5px 7px; }
.zbar { display: flex; align-items: center; gap: 8px; }
.zbar__who {
  flex: 0 0 auto; min-width: 3.4em; max-width: 6.5em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  font-size: .72rem; font-weight: 700; color: var(--muted); text-align: right;
}
.zbar--you .zbar__who { color: var(--accent); }
.zbar__cells { display: grid; grid-template-columns: repeat(5, 1fr); gap: 3px; flex: 1 1 auto; max-width: 230px; }
.zbar__cell {
  height: 15px; border-radius: 3px;
  background: color-mix(in srgb, var(--border) 40%, transparent);
  border: 1px solid color-mix(in srgb, var(--border) 70%, transparent);
}
.zbar__cell.is-block  { background: color-mix(in srgb, var(--info) 28%, transparent);  border-color: var(--info); }
.zbar__cell.is-attack { background: color-mix(in srgb, var(--danger) 40%, transparent); border-color: var(--danger); } /* удар важнее блока — красный поверх синего */

/* --- Отключение анимаций боя (§51): тумблер в Настройках ставит html[data-anim="off"].
       Дополняет @media (prefers-reduced-motion) из styles.css — то же самое для тех, кто выбрал вручную. --- */
html[data-anim="off"] .fight__log .log-line,
html[data-anim="off"] .fight__result-head,
html[data-anim="off"] .log-zones { animation: none !important; }
html[data-anim="off"] .fight__fighter.is-hit,
html[data-anim="off"] .fight__fighter.is-dodge { animation: none !important; }
html[data-anim="off"] .fight__pop { display: none; }   /* всплывающий «−N» — часть эффекта попадания */

/* СТ-44: строки кровотечения/жгута/нашатыря в логе боя — тёмно-алый акцент. */
.log-bleed { color: #c4353f; font-weight: 600; }

/* СТ-61: базовые спецэффекты обычного удара (срыв замаха/контратака-доворот) — янтарный акцент. */
.log-fx { color: #d08b3c; font-weight: 600; }

/* СТ-64 (заказчик 2026-08-20): окно лога раундов в бою — СВОЙ удар зелёный, удар СОПЕРНИКА красный,
   блок синий (.log-block как был). Класс строки ставит fight.js по имени атакующего; архивные логи
   (экран «Логи боёв») остаются в прежней палитре. */
.fight__log .log-line--me  :is(.log-att, .log-dmg) { color: var(--success); }
.fight__log .log-line--foe :is(.log-att, .log-dmg) { color: var(--danger); }
/* Автоход по AFK (сервер: log-afk) — приглушённо-курсивом, как прочие служебные реплики. */
.log-afk { opacity: .85; }

/* СТ-64.6: окно лога — новый раунд СВЕРХУ; блоки раундов разделены тонкой линией. */
.log-round + .log-round { border-top: 1px solid color-mix(in srgb, var(--border) 70%, transparent); margin-top: 5px; padding-top: 4px; }
