/* #028: после подключения дизайн-системы (tokens+components+charts) здесь остались только
 * доменные классы, которых НЕТ в components.css, и base-страховка. Все правила — на токенах
 * (var(--...)), захардкоженных цветов/отступов нет. Финальная проверка «можно ли удалить
 * целиком» — в отчёте по факту визуальной проверки 375/1280 (#028 §5 SPEC). */

* { box-sizing: border-box; } /* страховка; components.css имеет свой reset */
body { margin: 0; }

/* Строка-мета кассового дня: остатки на начало (нет в components). */
.cashday-meta {
  display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-4);
  font-size: var(--text-sm); color: var(--text-muted);
  padding: var(--space-2) 0; border-bottom: 1px solid var(--c-slate-200);
  margin-bottom: var(--space-3);
}

/* Грид 5 полей выручки кассового дня. Модель #021 (фиксированные поля, не table.entry). */
.revgrid {
  display: grid; grid-template-columns: 1fr; gap: var(--space-2);
}
@media (min-width: 640px) { .revgrid { grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); } }

/* Инлайн-сообщение об ошибке поля формы (#021 tolerant-парсер: errors[field]).
 * components.css делает это через .field.is-error на родителе; здесь — standalone-вариант
 * для повторного показа формы при ошибке валидации (вне .field-обёртки). */
.field__err {
  display: block; font-size: var(--text-xs); color: var(--c-neg-600);
  background: var(--c-neg-50); padding: var(--space-1) var(--space-2);
  border-radius: var(--radius-sm); margin-top: var(--space-1);
}

/* Заглушки пунктов Табель/История в навигации (задачи #030/#027, не реализованы). */
.topbar__soon {
  color: var(--c-slate-400); cursor: not-allowed; padding: var(--space-1) var(--space-2);
  font-size: var(--text-sm); user-select: none;
}
.bottom-nav__soon {
  color: var(--c-slate-400); display: flex; flex-direction: column; align-items: center;
  gap: var(--space-1); font-size: var(--text-xs); cursor: not-allowed;
}
.bottom-nav__soon svg { width: 22px; height: 22px; opacity: .5; }

/* bdb-fin app.js toast-стек (если алерты нет, app.js создаёт .toast-stack). Дизайнер дал
 * .toast в components.css; стэк здесь — позиционирование. */
.toast-stack {
  position: fixed; right: var(--space-4); bottom: var(--space-4); z-index: 1000;
  display: flex; flex-direction: column; gap: var(--space-2);
}
@media (max-width: 767px) {
  .toast-stack { left: var(--space-3); right: var(--space-3); bottom: calc(56px + var(--space-3)); }
}

/* #030-B fix (sess_005): маркер скорректированной ячейки табеля. Класс .is-corrected
   использован в timesheet.php, но стиля не было ни в старом, ни в дизайнерском CSS —
   маркер не отображался. Местный слой панели (не дизайн-система). */
.is-corrected { position: relative; background: var(--c-warn-100, rgba(234,179,8,.16)); }
.is-corrected::after {
  content: "*"; position: absolute; top: 0; right: 2px;
  font-size: .7em; line-height: 1; color: var(--c-warn-600, #ca8a04); font-weight: var(--fw-bold);
}

/* ═══ #204: выбор года и месяца в period-nav. Слой берёт готовый .period-nav__popover
   из дизайн-системы; здесь только сетка ссылок, которой в components.css нет.
   Правила на токенах, захардкоженных цветов и отступов нет. ═══ */
.period-nav__label{position:relative;display:inline-flex}
.period-nav__label > summary{list-style:none;cursor:pointer}
.period-nav__label > summary::-webkit-details-marker{display:none}
.ppick__title{font-size:var(--text-xs);color:var(--text-muted);margin:0 0 var(--space-1)}
.ppick__title + .ppick__years,.ppick__title + .ppick__months{margin-bottom:var(--space-3)}
.ppick__years{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--space-1)}
.ppick__months{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-1)}
.ppick__cell{display:grid;place-items:center;height:1.75rem;padding:0 var(--space-1);
  border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--c-surface);
  color:var(--text);font-size:var(--text-xs);text-decoration:none;white-space:nowrap}
a.ppick__cell:hover{background:var(--c-surface-2);border-color:var(--border-strong)}
.ppick__cell.is-current{border-color:var(--border-strong);font-weight:var(--fw-semibold);color:var(--text-strong)}
.ppick__cell.is-off{opacity:.35;cursor:not-allowed}
@media (max-width:479px){
  .period-nav__popover{left:auto;right:0;min-width:13rem}
  .ppick__years{grid-template-columns:repeat(4,1fr)}
}

/* ═══ #332: пункты Истории с цветными маркерами категорий. Точка — псевдоэлемент
   (::marker слабо красится в старых браузерах, ADV П2); цвет только у маркера,
   текст обычный; title на строке называет категорию словом (цветослепота, ADV П3). ═══ */
.hist-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-1)}
.hist-list li{position:relative;padding-left:1.1em}
.hist-list li::before{content:"•";position:absolute;left:.15em;top:0;color:var(--hist-internal);line-height:inherit}
.hist-list li.hist--new::before{color:var(--hist-new)}
.hist-list li.hist--fix::before{color:var(--hist-fix)}
.hist-list li.hist--bug::before{color:var(--hist-bug)}
