/* styles-roster-presence.css — «График смен»: открыл ли сотрудник смену сегодня
   (app-roster-presence.js). Значок живёт ВНУТРИ карточки смены колонки «сегодня» —
   справа, по середине высоты, не выходит за её рамку. Спокойно (владелец, 22.10:
   «не жирно, чуть меньше, без напряжения»): точка + слово цветом, без плашки и обводки.
   В месяце (клетки узкие) — только точка. */

.rg-card.has-presence { position: relative; }
.rg-card.has-presence .rg-card-name,
.rg-card.has-presence .rg-card-time { padding-right: 58px; overflow: hidden; text-overflow: ellipsis; }
.rg-card.has-presence.is-compact .rg-card-name,
.rg-card.has-presence.is-compact .rg-card-time { padding-right: 0; }

.rg-card .rg-presence {
  position: absolute;
  top: 50%;
  right: 6px;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: 9px;
  font-style: normal;
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
  pointer-events: none;
}

.rg-card .rg-presence::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
}

.rg-card .rg-presence.is-ok { color: #15803d; }
.rg-card .rg-presence.is-no { color: #b91c1c; }

.rg-card .rg-presence.is-dot { top: 4px; right: 4px; transform: none; }

/* Смену открыл, а в графике смены нет (14.11.2026) — нейтральная карточка с пунктиром
   («своё время» в графике тоже пунктир), «+» под ней прячем. */
.rg-card.rg-unplanned { border-style: dashed; }
.rg-card.rg-unplanned:not(.is-compact) .rg-presence { position: static; transform: none; }
td.rg-cell.has-unplanned .rg-plus { display: none; }

/* Итог под днём — табличка (14.11.2026): «в графике / ● открыта / ● не открыта», подписи слева,
   числа справа, одинаково под каждым днём; ноль — бледный. Месяц узкий — без слов, точка + число. */
.rg-daysum { display: inline-grid; grid-template-columns: auto auto; column-gap: 8px; row-gap: 1px; min-width: 96px; text-align: left; font-size: 10px; line-height: 1.3; vertical-align: middle; }
.rg-daysum-row { display: contents; }
.rg-daysum-row > span { display: inline-flex; align-items: center; gap: 4px; color: #475569; font-weight: 500; white-space: nowrap; }
.rg-daysum-row > span em { font-style: normal; }
.rg-daysum-row > span i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex: none; }
.rg-daysum-row > b { text-align: right; font-weight: 700; font-variant-numeric: tabular-nums; color: #1e293b; }
.rg-daysum-row.is-total > span { color: #334155; }
.rg-daysum-row.is-ok > span, .rg-daysum-row.is-ok > b { color: #15803d; }
.rg-daysum-row.is-no > span, .rg-daysum-row.is-no > b { color: #b91c1c; }
.rg-daysum-row.is-zero > span, .rg-daysum-row.is-zero > b { opacity: .45; }
.rg-daysum.is-compact { min-width: 0; column-gap: 4px; font-size: 9px; }
.rg-daysum.is-compact em { display: none; }
.plan-table.roster-grid tfoot td.rg-count:has(.rg-daysum) { padding-top: 3px; padding-bottom: 3px; }

.roster-cell-tip-line.rg-presence-tip.is-ok { color: #86efac; font-weight: 600; }
.roster-cell-tip-line.rg-presence-tip.is-no { color: #fca5a5; font-weight: 600; }

/* «Смена сегодня» в меню клетки (pages-roster-cell-today.js, 13.11.2026): то же слово и
   точка, что на карточке, крупнее — заголовок блока, без рамки сверху (первый блок меню). */
.roster-abs-block.roster-today-block { margin-top: 0; padding-top: 0; border-top: 0; }
.roster-today-block .rg-today-state { display: inline-flex; align-items: center; gap: 4px; margin-left: 6px; font-style: normal; font-weight: 700; }
.roster-today-block .rg-today-state::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.roster-today-block .rg-today-state.is-ok { color: #15803d; }
.roster-today-block .rg-today-state.is-no { color: #b91c1c; }
