/* TimeTracker — стили каркаса. Дизайн-референс — легаси «Time to Quad»
   (LEGACY_SYSTEM_STUDY §1): тёмно-зелёный #065439, фон #EEF7F2,
   сайдбар 224px, Bootstrap 5. Шрифт — системный стек (Figtree легаси
   не вендорим: внешние загрузки запрещены, см. VENDORED.md). */

:root {
  --tt-green: #065439;
  --tt-green-dark: #04402c;
  --tt-green-soft: rgba(6, 84, 57, .08);
  --tt-bg: #EEF7F2;
  --tt-sidebar-w: 224px;
}

body {
  background: var(--tt-bg);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
               "Helvetica Neue", Arial, sans-serif;
}

/* Bootstrap primary → фирменный зелёный */
.btn-primary {
  --bs-btn-bg: var(--tt-green);
  --bs-btn-border-color: var(--tt-green);
  --bs-btn-hover-bg: var(--tt-green-dark);
  --bs-btn-hover-border-color: var(--tt-green-dark);
  --bs-btn-active-bg: var(--tt-green-dark);
  --bs-btn-active-border-color: var(--tt-green-dark);
  --bs-btn-disabled-bg: var(--tt-green);
  --bs-btn-disabled-border-color: var(--tt-green);
}
.btn-outline-primary {
  --bs-btn-color: var(--tt-green);
  --bs-btn-border-color: var(--tt-green);
  --bs-btn-hover-bg: var(--tt-green);
  --bs-btn-hover-border-color: var(--tt-green);
  --bs-btn-active-bg: var(--tt-green);
  --bs-btn-active-border-color: var(--tt-green);
  --bs-btn-disabled-color: var(--tt-green);
  --bs-btn-disabled-border-color: var(--tt-green);
}
a { color: var(--tt-green); }
.form-check-input:checked { background-color: var(--tt-green); border-color: var(--tt-green); }
.form-control:focus, .form-check-input:focus, .form-select:focus {
  border-color: var(--tt-green);
  box-shadow: 0 0 0 .25rem rgba(6, 84, 57, .15);
}
.text-brand { color: var(--tt-green); }

/* ------------------------------------------------------------------ */
/* Экраны аутентификации (вход / восстановление / онбординг)          */
/* ------------------------------------------------------------------ */

.auth-wrap {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem 1rem;
}
.auth-card {
  width: 100%;
  max-width: 430px;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 10px 30px rgba(6, 84, 57, .12);
  padding: 2.2rem 2.2rem 1.8rem;
}
.auth-card.auth-card-wide { max-width: 560px; }
.auth-brand {
  color: var(--tt-green);
  font-weight: 800;
  font-size: 1.55rem;
  letter-spacing: .2px;
  text-align: center;
  margin-bottom: .2rem;
}
.auth-sub {
  text-align: center;
  color: #5c6d64;
  margin-bottom: 1.5rem;
}

/* Поле ввода recovery-кода */
.code-input {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  letter-spacing: .08em;
  text-transform: uppercase;
}

/* ------------------------------------------------------------------ */
/* Карточка recovery-кода (экран + печать)                            */
/* ------------------------------------------------------------------ */

.code-card {
  border: 2px solid var(--tt-green);
  border-radius: 12px;
  padding: 1.4rem 1.6rem;
  background: #fff;
}
.code-card .code-value {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 1.45rem;
  font-weight: 700;
  letter-spacing: .06em;
  line-height: 1.75;
  word-break: break-all;
  color: #111;
}
.code-card .code-meta { color: #5c6d64; font-size: .9rem; }
.code-card .code-title {
  color: var(--tt-green);
  font-weight: 700;
  margin-bottom: .6rem;
}

/* Печать: видна только печатная зона (карточка recovery-кода или
   документ отчёта клиенту). Страница — A4 portrait с полями 0.5 дюйма:
   тот же формат, что у легаси-экспорта (LEGACY §6), поэтому «Сохранить
   как PDF» в диалоге печати даёт документ нужной геометрии. */
@page { size: A4 portrait; margin: 12.7mm; }
#print-area { display: none; }
@media print {
  body > *:not(#print-area) { display: none !important; }
  #print-area { display: block !important; padding: 2rem; }
  .code-card { box-shadow: none; }
}

/* ------------------------------------------------------------------ */
/* Каркас приложения: сайдбар + рабочая область                       */
/* ------------------------------------------------------------------ */

.tt-sidebar {
  position: fixed;
  top: 0; left: 0; bottom: 0;
  width: var(--tt-sidebar-w);
  background: var(--tt-green);
  color: #fff;
  display: flex;
  flex-direction: column;
  z-index: 100;
}
.tt-sidebar .brand {
  padding: 1.25rem 1.1rem 1rem;
  font-weight: 800;
  font-size: 1.18rem;
  line-height: 1.25;
  border-bottom: 1px solid rgba(255, 255, 255, .14);
  display: flex;
  align-items: center;
  gap: .55rem;
}
.tt-sidebar .brand img { max-height: 30px; max-width: 100%; }
.tt-sidebar .nav { padding: .8rem .55rem; flex: 0 0 auto; }
.tt-sidebar .nav-link {
  color: rgba(255, 255, 255, .82);
  border-radius: 8px;
  padding: .48rem .7rem;
  margin-bottom: .15rem;
  font-size: .95rem;
}
.tt-sidebar .nav-link:hover { color: #fff; background: rgba(255, 255, 255, .08); }
.tt-sidebar .nav-link.active { color: #fff; background: rgba(255, 255, 255, .16); font-weight: 600; }
.tt-sidebar .sidebar-spacer { flex: 1 1 auto; }

/* Блок пользователя внизу сайдбара */
.tt-userbox {
  border-top: 1px solid rgba(255, 255, 255, .14);
  padding: .9rem 1.1rem 1rem;
  font-size: .9rem;
}
.tt-userbox .u-name { font-weight: 600; }
.tt-userbox .u-login { color: rgba(255, 255, 255, .65); font-size: .8rem; }
.tt-userbox .btn {
  --bs-btn-color: rgba(255, 255, 255, .85);
  --bs-btn-border-color: rgba(255, 255, 255, .4);
  --bs-btn-hover-bg: rgba(255, 255, 255, .12);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-border-color: rgba(255, 255, 255, .6);
  font-size: .82rem;
}

.tt-userbox .userbox-click { cursor: pointer; }
.tt-userbox .userbox-click:hover .u-name { text-decoration: underline; }

.tt-main {
  margin-left: var(--tt-sidebar-w);
  min-height: 100vh;
  padding: 1.6rem 2rem 2.5rem;
}

/* Страница «Профиль»: вкладки в одну строку с прокруткой на узких
   экранах, формы не расползаются на всю ширину десктопа */
.profile-tabs { overflow-x: auto; overflow-y: hidden; }
.profile-tabs .nav-link { white-space: nowrap; color: var(--tt-green); }
.profile-tabs .nav-link.active { color: #1a2b23; font-weight: 600; }
.profile-form { max-width: 640px; }

/* Узкие экраны: сайдбар из фиксированной колонки становится шапкой,
   рабочая область — во всю ширину (иначе контенту остаётся ~150px) */
@media (max-width: 768px) {
  .tt-sidebar { position: static; width: auto; }
  .tt-sidebar .sidebar-spacer { display: none; }
  .tt-main { margin-left: 0; min-height: auto; padding: 1rem 1rem 2rem; }
  .tt-card { padding: 1rem; }
}

/* Переключатель контекста фирм [A | B | Все] */
.firm-switch .btn { min-width: 7rem; }
.firm-switch .btn .lock { opacity: .8; margin-left: .25rem; }

/* Бейджи состояний членств */
.badge-locked { background: #b23b3b; }
.badge-noenv  { background: #b07d1f; }

/* Белая карточка-контейнер вкладок (таблицы записей, админ) */
.tt-card {
  background: #fff;
  border-radius: 12px;
  padding: 1.25rem 1.5rem;
  box-shadow: 0 2px 10px rgba(6, 84, 57, .07);
}
.tt-card .table thead th {
  color: var(--tt-green);
  font-size: .82rem;
  text-transform: uppercase;
  letter-spacing: .03em;
  border-bottom-color: rgba(6, 84, 57, .25);
  white-space: nowrap;
}
.tt-card .table td { font-size: .93rem; }
.entry-desc { max-width: 26rem; overflow-wrap: anywhere; }
.row-inactive td { opacity: .5; }

/* Бейджи статусов записей */
.badge-pending  { background: #f4ede0; color: #8a6d1f; }
.badge-excluded { background: #f6e3e3; color: #8a2626; }

/* Статус записи — цветом строки (решение пользователя, 2026-07-24):
   утверждённая — бледно-зелёный фон; неоплачиваемая — белый фон и
   светло-серый текст (утверждение фон неоплачиваемой не меняет). */
.row-approved > td { background-color: #e4f1ea; }
.row-unbillable > td { color: #98a2ac; }

/* Правка записи — кликом по строке (кнопок ✏️🗑 в таблицах больше нет) */
.row-clickable { cursor: pointer; }

/* Матрица ставок (решение пользователя, 2026-07-25): источник ставки —
   цветом ячейки: белая — версия дефолтных, бледно-жёлтая — установлена
   вручную (звено проекта/клиента), красноватая — ставки нет.
   Те же классы красят образцы в легенде под матрицей. */
td.rate-manual, span.rate-manual { background-color: #fdf6dc; }
td.rate-missing, span.rate-missing { background-color: #faeeee; color: #9a7b7b; }

/* Лента «Записи» (решение 2026-07-24): фильтры — двумя колонками слева
   (участник/клиент/проект и период/статус/сброс), окно суммирования
   выборки — справа */
.feed-filters { flex: 0 1 auto; }
.feed-filter-col { width: 230px; }
.feed-side { flex: 1 1 260px; max-width: 400px; margin-left: auto; }
.feed-summary {
  background: #f7fbf9;
  border: 1px solid rgba(6, 84, 57, .18);
  border-radius: .5rem;
  padding: .7rem .9rem;
  font-size: .9rem;
}

/* Лента фирмы: исключённые из отчёта записи — зачёркнуты (легаси §5.3.1) */
.row-excluded td { opacity: .42; text-decoration: line-through; }
.row-excluded td.cell-status { text-decoration: none; }

/* Уведомления (решение 2026-07-24): непрочитанные выделены фоном и
   точкой, читаются кликом; текст записи до/после правки — блоками */
.notif {
  border: 1px solid rgba(6, 84, 57, .12);
  border-radius: .5rem;
  padding: .7rem .9rem;
  margin-bottom: .6rem;
  background: #fff;
}
.notif-unread {
  background: #f2f9f5;
  border-color: rgba(6, 84, 57, .35);
  cursor: pointer;
}
.notif-dot {
  display: inline-block;
  width: .55rem;
  height: .55rem;
  border-radius: 50%;
  background: var(--tt-green);
  margin-right: .45rem;
  vertical-align: middle;
}
.notif-diff { margin-top: .45rem; font-size: .93rem; }
.notif-before {
  background: #faf3f3;
  border-radius: .35rem;
  padding: .3rem .55rem;
  margin-bottom: .3rem;
}
.notif-after {
  background: #eef6f1;
  border-radius: .35rem;
  padding: .3rem .55rem;
}

/* Пилюли разделов админа */
.nav-pills .nav-link { color: var(--tt-green); }
.nav-pills .nav-link.active { background: var(--tt-green); }

/* Двуязычная карточка клиента (модалка мини-админа) */
.card-lang {
  border: 1px solid rgba(6, 84, 57, .2);
  border-radius: 10px;
  padding: .8rem 1rem;
}
.card-lang .card-lang-title {
  color: var(--tt-green);
  font-weight: 600;
  font-size: .85rem;
  margin-bottom: .5rem;
}

/* Заготовка вкладки */
.tab-stub {
  background: #fff;
  border-radius: 12px;
  padding: 2.5rem 2rem;
  text-align: center;
  color: #5c6d64;
  border: 1px dashed rgba(6, 84, 57, .35);
}
.tab-stub h5 { color: var(--tt-green); }

/* ------------------------------------------------------------------ */
/* «Моё время» — стат-карточки, бары, heatmap (паритет легаси §5.1)   */
/* ------------------------------------------------------------------ */

.mytime-loading { color: #5c6d64; font-size: .9rem; padding: 40px 0; text-align: center; }

.stat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 14px;
  margin-bottom: 1rem;
}
.stat-card {
  background: #fff;
  border-radius: 12px;
  padding: 18px 20px;
  box-shadow: 0 2px 10px rgba(6, 84, 57, .07);
}
.stat-card-label {
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: #5c6d64;
  margin-bottom: 8px;
}
.stat-card-value {
  font-size: 26px;
  font-weight: 700;
  color: #1a2b23;
  letter-spacing: -.03em;
  line-height: 1;
  margin-bottom: 4px;
}
.stat-card-big { font-size: 22px; font-weight: 700; color: #1a2b23; }
.stat-card-sub { font-size: 12px; color: #5c6d64; margin-top: 2px; }

/* «Сегодня»: зелёное до нормы, оранжевая зона переработки, риска нормы */
.today-bar-wrap {
  position: relative;
  height: 8px;
  border-radius: 99px;
  background: #DDE9E3;
  margin-top: 10px;
}
.today-bar-green {
  position: absolute; left: 0; top: 0; bottom: 0;
  border-radius: 99px;
  background: var(--tt-green);
  transition: width .4s;
}
.today-bar-orange {
  position: absolute; top: 0; bottom: 0;
  border-radius: 0 99px 99px 0;
  background: #F59E0B;
  transition: width .4s;
}
.today-bar-target {
  position: absolute; top: -3px; bottom: -3px;
  width: 2px;
  background: #0A7A52;
  border-radius: 2px;
}

/* «Прогресс к цели месяца» */
.goal-bar-wrap { height: 8px; border-radius: 99px; background: #DDE9E3; overflow: hidden; margin-top: 10px; }
.goal-bar-fill { height: 100%; border-radius: 99px; background: var(--tt-green); transition: width .4s; }

/* «Клиенты (текущий месяц)» — топ-6 горизонтальных баров */
.client-dist-row { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.client-dist-name {
  font-size: 13px; color: #1a2b23; width: 130px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; flex-shrink: 0;
}
.client-dist-bar-bg { flex: 1; height: 7px; border-radius: 99px; background: #DDE9E3; overflow: hidden; }
.client-dist-bar-fill { height: 100%; border-radius: 99px; }
.client-dist-pct { font-size: 12px; color: #5c6d64; width: 36px; text-align: right; flex-shrink: 0; }
.stat-firm-badge {
  font-size: 10px; font-weight: 600; color: var(--tt-green);
  background: var(--tt-green-soft);
  border-radius: 6px; padding: 1px 5px;
  flex-shrink: 0; max-width: 110px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

/* Heatmap 8 недель (GitHub-стиль 7×8) */
.heatmap-wrap { overflow-x: auto; padding-bottom: 4px; }
.heatmap-grid {
  display: grid;
  grid-template-rows: repeat(7, 14px);
  grid-auto-flow: column;
  gap: 3px;
  width: max-content;
}
.hm-cell { width: 14px; height: 14px; border-radius: 3px; cursor: default; transition: transform .1s; }
.hm-cell:hover { transform: scale(1.25); }
.heatmap-day-labels {
  display: grid;
  grid-template-rows: repeat(7, 14px);
  gap: 3px;
  margin-right: 6px;
  flex-shrink: 0;
}
.hm-day-label { font-size: 9.5px; color: #5c6d64; line-height: 14px; text-align: right; }
.hm-legend { display: flex; align-items: center; gap: 6px; margin-top: 10px; }
.hm-legend span { font-size: 11px; color: #5c6d64; }
.hm-legend-swatch { width: 12px; height: 12px; border-radius: 2px; }
.mytime-section-title {
  font-size: 11px;
  font-weight: 700;
  color: #5c6d64;
  text-transform: uppercase;
  letter-spacing: .07em;
  margin: 0 0 14px;
}

/* Экран «Роли» (задача 3.3): матрица «право × роль». Ячейка, значение
   которой отличается от пресета фирмы (ARCHITECTURE §4), подсвечивается —
   видно, что настроено вручную. Своя колонка помечена рамкой: право
   «Сотрудники и роли» в ней снять нельзя (иначе экран не открыть). */
.roles-matrix th, .roles-matrix td { vertical-align: middle; }
.roles-matrix td.role-custom { background-color: #fdf6dc; }
.roles-matrix th.role-mine, .roles-matrix td.role-mine {
  box-shadow: inset 2px 0 0 rgba(6, 84, 57, .35), inset -2px 0 0 rgba(6, 84, 57, .35);
}
.roles-perm { min-width: 15rem; }

/* Баннер «вышло обновление» (updates.js): карточка в правом нижнем углу,
   ниже модалок по z-index — открытый диалог она не перекрывает.
   На узких экранах растягивается по ширине. */
.tt-update {
  position: fixed;
  right: 1rem;
  bottom: 1rem;
  z-index: 1040;
  max-width: 22rem;
  background: #fff;
  border: 1px solid rgba(6, 84, 57, .35);
  border-radius: .6rem;
  box-shadow: 0 .5rem 1.5rem rgba(0, 0, 0, .18);
  padding: .8rem 1rem;
}
@media (max-width: 576px) {
  .tt-update { left: 1rem; max-width: none; }
}

/* Блок «Финансы» карточки проекта (задача 4.1, finance.js): полоса
   расхода тоньше бутстраповской — в карточке их несколько (проект +
   категории), и они не должны забивать форму. Зелёная часть —
   утверждённое время, жёлтая — ожидающее утверждения, сплошная
   красная — перебиллинг. */
.fin-bar { height: .5rem; }
.fin-row:first-child { border-top: 0 !important; padding-top: 0 !important; }

/* Вкладка «Отчёт клиенту» (задача 5.1, report.js).
   Конструктор: списки-чекбоксы с прокруткой (сотрудников и категорий
   бывает много) и список колонок со стрелками ↑/↓ — паритет LEGACY
   §5.3.3. */
.report-picklist {
  max-height: 11rem;
  overflow-y: auto;
  border: 1px solid rgba(0, 0, 0, .12);
  border-radius: .375rem;
  padding: .35rem .5rem;
}
.report-columns {
  border: 1px solid rgba(0, 0, 0, .12);
  border-radius: .375rem;
  overflow: hidden;
}
.report-column-row {
  display: flex;
  align-items: center;
  gap: .25rem;
  padding: .2rem .5rem;
  border-bottom: 1px solid rgba(0, 0, 0, .07);
}
.report-column-row:last-child { border-bottom: 0; }
.report-column-row .btn-link { text-decoration: none; font-weight: 700; }

/* Сам документ отчёта: то, что уйдёт в XLSX и PDF (задача 5.2), поэтому
   вёрстка повторяет легаси — Arial, A4-portrait, фиксированные ширины
   колонок, описание тянется (LEGACY §6). На узких экранах таблица
   прокручивается по горизонтали, а не ломает страницу. */
.report-doc {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 12pt;
  color: #1a1a2e;
  overflow-x: auto;
}
.report-title {
  font-weight: 700;
  text-align: center;
  font-size: 13pt;
  margin-bottom: .8rem;
}
.report-intro { margin: 0 0 .8rem; text-align: justify; }
.report-meta { font-weight: 700; }
.report-meta + .report-table { margin-top: .8rem; }
.report-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 11pt;
}
.report-table th, .report-table td {
  border: 1px solid #9a9a9a;
  padding: .25rem .4rem;
  vertical-align: top;
}
.report-table th { background: #f2f2f2; font-weight: 700; text-align: left; }
.report-table .report-num { text-align: right; white-space: nowrap; }
.report-table .report-month td { font-weight: 700; background: #fbfbfb; }
.report-table .report-total td { font-weight: 700; }
.report-table-narrow { width: auto; min-width: 22rem; }
.report-col-description { min-width: 200px; }
.report-col-date, .report-col-time, .report-col-rate,
.report-col-currency, .report-col-amount { width: 1%; white-space: nowrap; }
.report-block { margin-top: 1.2rem; }
.report-subtitle { font-weight: 700; margin-bottom: .4rem; }
.report-project { margin-bottom: .7rem; }
.report-project-head { font-weight: 700; }
.report-project-line, .report-category-line { font-size: 11pt; }
.report-category-line { padding-left: 1.2rem; }
.report-category-name { font-weight: 600; }
.report-category-limit { padding-left: 1.2rem; color: #4a4a5a; font-size: 10pt; }
.report-over { color: #b02a2a; font-weight: 700; }

/* Печать отчёта клиенту (кнопка «Печать» → «Сохранить как PDF»).
   Поля даёт @page, поэтому padding печатной зоны здесь снимается.
   Шапка таблицы повторяется на каждой странице, строки и блоки не
   рвутся посередине, фон шапки и строк месяцев печатается (иначе
   браузер экономит краску и структура теряется). */
@media print {
  #print-area.print-report { padding: 0 !important; }
  .print-report .report-doc { overflow: visible; font-size: 11pt; }
  .print-report .report-table { page-break-inside: auto; }
  .print-report .report-table thead { display: table-header-group; }
  .print-report .report-table tr { page-break-inside: avoid; }
  .print-report .report-block { page-break-inside: avoid; }
  .print-report .report-table th,
  .print-report .report-table .report-month td {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
}

/* Таймеры в вебе (задача 7.7, timers.js). Блок карточек над таблицей
   «Моих записей»: идущий — с крупным секундомером и зелёной рамкой,
   на паузе / ждёт описания — компактной строкой. */
.timers-block { margin-bottom: 1.1rem; }
.timers-title {
  font-size: .82rem;
  font-weight: 700;
  color: var(--tt-green);
  text-transform: uppercase;
  letter-spacing: .03em;
  margin-bottom: .45rem;
}
.timer-card {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  border: 1px solid rgba(6, 84, 57, .18);
  border-radius: 10px;
  padding: .6rem .9rem;
  margin-bottom: .45rem;
  background: #fbfdfc;
}
.timer-card-running {
  border-color: rgba(6, 84, 57, .55);
  background: #eef7f2;
}
.timer-time {
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  font-size: 1.55rem;
  color: var(--tt-green);
  white-space: nowrap;
}
.timer-time-idle { font-size: 1.05rem; color: #5c6d64; }
.timer-actions { display: flex; gap: .35rem; flex-wrap: wrap; }
.timer-text { max-width: 32rem; overflow-wrap: anywhere; }
.timer-firm-badge { background: #d9ebe2; color: #244b3a; }
.timers-block .alert { font-size: .92rem; }

/* Индикатор таймера в сайдбаре: как бейджи «На утверждение»/«Уведомления»,
   но с тикающим временем. Жёлтый — порог напоминания пройден или таймер
   ждёт описания. */
.tt-timer-ind {
  margin: 0 .55rem .4rem;
  padding: .5rem .7rem;
  border-radius: 8px;
  background: rgba(255, 255, 255, .12);
  color: #fff;
  cursor: pointer;
  font-size: .9rem;
}
.tt-timer-ind:hover { background: rgba(255, 255, 255, .2); }
.tt-timer-ind .ind-label { font-weight: 600; min-width: 0; }
.tt-timer-ind .ind-time { font-variant-numeric: tabular-nums; font-weight: 700; }
.tt-timer-ind .ind-sub { font-size: .78rem; color: rgba(255, 255, 255, .75); }
.tt-timer-ind.is-due, .tt-timer-ind.is-waiting {
  background: #f6d55c;
  color: #3d2f00;
}
.tt-timer-ind.is-due:hover, .tt-timer-ind.is-waiting:hover { background: #f2c94c; }
.tt-timer-ind.is-due .ind-sub, .tt-timer-ind.is-waiting .ind-sub { color: #5a4600; }

/* Кнопка «запустить таймер по этой паре» в строке записи */
.js-row-timer { line-height: 1; padding: .05rem .4rem; }

/* ------------------------------------------------------------------ */
/* /privacy — политика конфиденциальности (задача 7.5)                 */
/* ------------------------------------------------------------------ */

.policy-wrap { padding: 2rem 1rem; }
.policy-card {
  max-width: 760px;
  margin: 0 auto;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 10px 30px rgba(6, 84, 57, .12);
  padding: 2.2rem 2.4rem;
}
.policy-lang { text-align: right; color: #5c6d64; margin-bottom: .5rem; }
.policy-section h1 { color: var(--tt-green); font-weight: 800; font-size: 1.6rem; }
.policy-section h2 { font-size: 1.05rem; font-weight: 700; margin-top: 1.4rem; }
.policy-section p, .policy-section li { color: #1a2b23; line-height: 1.55; }
.policy-meta { color: #5c6d64; }
.policy-divider { margin: 2.5rem 0; }
@media (max-width: 576px) { .policy-card { padding: 1.4rem 1.2rem; } }
