/* styles-time-norm.css — норматив времени операции: колонки Справочника и Плана,
   цветовой индикатор и карточка-подсказка на «времени к оплате» листа Факт.

   Отдельный файл (новый код → новый файл): styles-plan.css — монолит ≥900 строк,
   правки туда без распила запрещены; styles-fact-outcol.css отвечает за «выход»,
   смешивать две разные фичи в одном файле нельзя. Грузится ПОСЛЕ styles-plan.css. */

/* Шапка колонок норматива — ТОЛЬКО в Справочнике операций (в остальных листах
   шапка обычная: цвет меняли осознанно в одном месте, дальше не тащим —
   Мансур 2026-08-04). Оттенок СВОЙ, отличный от группы «выхода» рядом: это две
   разные конструкции («курс операции» и «норматив времени»), и заполнять их
   нужно каждую целиком. Пока обе группы были одинаково серо-синими, они
   читались как один блок из шести колонок (владелец, 2026-08-14). */
.production-table-wrap #prodArchiveTable thead th.arc-normcol {
  background: linear-gradient(180deg, #6f6b86, #5a5670);
}

/* ── Лист Факт: цветная точка у «времени к оплате» ──────────────────────────
   Новых колонок в Факте нет. Тон считает сервер (domain/time_norm.py) по
   отношению норма ÷ факт: ≥110 % быстрее норматива, 95–110 % в норме,
   85–95 % небольшое отклонение, <85 % не уложился. Проценты наружу не выходят —
   цифры показывает карточка по наведению. */
#prodFactTable tbody td.fact-tnorm {
  position: relative;
  cursor: help;
}
#prodFactTable tbody td.fact-tnorm::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 6px;
  width: 7px;
  height: 7px;
  margin-top: -3px;
  border-radius: 50%;
  background: currentColor;
}
.fact-tnorm-fast { color: #0f8f8f; }  /* быстрее норматива */
.fact-tnorm-ok   { color: #1a7f47; }  /* в норме */
.fact-tnorm-warn { color: #b45309; }  /* небольшое отклонение */
.fact-tnorm-bad  { color: #c0362c; }  /* не уложился */

/* Сама ячейка красится только точкой — цифра «времени к оплате» остаётся
   обычного цвета, чтобы не спорить с соседними колонками. */
#prodFactTable tbody td.fact-tnorm { color: inherit; }
#prodFactTable tbody td.fact-tnorm.fact-tnorm-fast::after { background: #0f8f8f; }
#prodFactTable tbody td.fact-tnorm.fact-tnorm-ok::after   { background: #1a7f47; }
#prodFactTable tbody td.fact-tnorm.fact-tnorm-warn::after { background: #b45309; }
#prodFactTable tbody td.fact-tnorm.fact-tnorm-bad::after  { background: #c0362c; }

/* ── Карточка по наведению (fact-time-norm-hover.js) ───────────────────────
   Тёмная, как подсказка состава бригады: один визуальный язык подсказок. */
.fact-tnorm-tip {
  position: fixed;
  display: none;
  z-index: 9999;
  background: #0e243f;
  color: #e9eef8;
  border: 1px solid rgba(125, 158, 209, 0.35);
  border-radius: 8px;
  padding: 8px 10px;
  font-family: Manrope, sans-serif;
  font-size: 11px;
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.45);
  min-width: 150px;
}
.fact-tnorm-tip .fact-tnorm-row {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  line-height: 1.7;
}
.fact-tnorm-tip .fact-tnorm-row span { color: #9aa7b9; }
.fact-tnorm-tip .fact-tnorm-row b { font-weight: 700; }
/* Единица измерения («ч», «мин») — мельче и приглушённее самой цифры:
   видно, в чём меряем, но взгляд цепляется за число. */
.fact-tnorm-tip .fact-tnorm-u {
  font-size: 9px;
  font-weight: 600;
  opacity: 0.72;
  margin-left: 1px;
}
.fact-tnorm-tip .fact-tnorm-dev.fact-tnorm-fast { color: #4fd1c5; }
.fact-tnorm-tip .fact-tnorm-dev.fact-tnorm-ok   { color: #57d38c; }
.fact-tnorm-tip .fact-tnorm-dev.fact-tnorm-warn { color: #f0b352; }
.fact-tnorm-tip .fact-tnorm-dev.fact-tnorm-bad  { color: #ff7a6e; }

/* ── Справка по значку «!» в шапке «время к оплате» ────────────────────────
   Та же карточка, шире и со списком цветов. Шрифты и палитра — как у
   подсказки строки: один визуальный язык, клиент не переучивается. */
.fact-tnorm-tip.is-legend { min-width: 268px; max-width: 300px; padding: 10px 12px; }
.fact-tnorm-lg-title {
  font-size: 12px;
  font-weight: 800;
  margin-bottom: 4px;
}
.fact-tnorm-lg-lead {
  color: #9aa7b9;
  line-height: 1.45;
  margin-bottom: 8px;
}
.fact-tnorm-lg-row {
  display: flex;
  align-items: center;
  gap: 7px;
  line-height: 1.75;
}
.fact-tnorm-lg-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  flex: 0 0 auto;
  background: currentColor;
}
.fact-tnorm-lg-text { flex: 1 1 auto; }
.fact-tnorm-lg-pct { color: #9aa7b9; font-size: 10px; font-weight: 700; }
.fact-tnorm-lg-note {
  color: #9aa7b9;
  font-size: 10px;
  line-height: 1.45;
  margin-top: 7px;
}

/* Значок «!» в шапке — тот же класс, что в «Настройке прав доступа»
   (access-info-badge), здесь только курсор и приглушение под тёмную шапку. */
#prodFactTable thead .fact-tnorm-info { cursor: help; opacity: 0.75; }
#prodFactTable thead .fact-tnorm-info:hover { opacity: 1; }

/* ── «План/факт операций»: колонки норматива и карточка «Норма времени» ───── */
/* Единицы мельче цифры — как в карточке листа Факт. */
.rfact-norm-u { font-size: 0.78em; font-weight: 600; opacity: 0.72; margin-left: 1px; }
.rfact-norm-dev { font-weight: 700; }

/* Карточки верхнего ряда: сколько бы их ни было (3 без норматива, 4 с ним) —
   ОДИН ряд, ширина делится поровну. Было жёстко «3 колонки», и четвёртая
   падала во вторую строку отдельным блоком (Мансур 2026-08-04: «некрасиво,
   уменьши три и втисни четвёртую»). Загружается после styles-report-fact-kpi.css,
   поэтому переопределение выигрывает по порядку. */
.rfact-kpis {
  grid-template-columns: none;
  grid-auto-flow: column;
  grid-auto-columns: minmax(0, 1fr);
}
/* Четыре карточки в ряд — теснее: меньше поля и цифры, заголовок не переносится. */
.rfact-kpis:has(.rfact-kpi.is-norm) .rfact-kpi { padding: 10px 12px; }
.rfact-kpis:has(.rfact-kpi.is-norm) .rfact-kpi-label { font-size: 10.5px; }
.rfact-kpis:has(.rfact-kpi.is-norm) .rfact-kpi-uval { font-size: 20px; }
.rfact-kpis:has(.rfact-kpi.is-norm) .rfact-kpi-unit { font-size: 10.5px; }

/* Заголовки таблицы по операциям — в одну строку. Колонок стало больше, и
   «Выполнено в %» ломался на два этажа, из-за чего шапка ехала. */
.rfact-goals-table thead th { white-space: nowrap; font-size: 11px; }
/* Колонок стало десять — поджимаем боковые поля и жёстко держим ширины из
   colgroup (без fixed длинное название операции распирало таблицу и вылезал
   горизонтальный скролл). Длинное имя обрезаем многоточием. */
.rfact-goals-table thead th,
.rfact-goals-table tbody td { padding-left: 4px; padding-right: 4px; }
.rfact-goals-table { table-layout: fixed; }
.rfact-goals-table tbody td.rfact-goals-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.rfact-norm-dev.fact-tnorm-fast { color: #0f8f8f; }
.rfact-norm-dev.fact-tnorm-ok   { color: #1a7f47; }
.rfact-norm-dev.fact-tnorm-warn { color: #b45309; }
.rfact-norm-dev.fact-tnorm-bad  { color: #c0362c; }

/* Карточка встаёт четвёртой в существующий ряд — своей вёрстки не заводим,
   берём готовые классы rfact-kpi*, меняется только подпись справа. */
.rfact-kpi.is-norm .rfact-kpi-pct { font-size: 15px; }
