/* v3-reports.css — «Отчёт за день», «Акт за месяц», «Аналитика ТС», «Лог
   действий», «База знаний» языком дизайна 2.0 (артбордов у них нет).
   Размеры и тона — у похожих экранов: Stats.dc.html (плитки, таблицы),
   Money.dc.html (шапка с вкладками, список + карточка), Settings.dc.html
   (список слева + содержимое), Home.dc.html («Лента дня», «Машины сейчас»);
   телефон — MobStats / MobMoney / MobSettings. Цвета — токены кита. */

.v3r { display: flex; flex-direction: column; gap: 14px; height: 100%; min-height: 0; color: var(--t-ink);
  --v3rp-sep: rgba(60,66,78,.08); }
.v3rp-rest { flex-grow: 1; min-height: 0; display: flex; flex-direction: column; gap: 14px; }
.v3rp-act-progress { width: min(100% - 32px, 520px); margin: 64px auto; padding: 20px; border: 1px solid var(--t-line); border-radius: 16px; background: var(--t-surface); color: var(--t-ink-2); }
.v3rp-act-progress-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; font-size: 14px; }
.v3rp-act-progress-top b { color: var(--t-blue-ink); font-variant-numeric: tabular-nums; }
.v3rp-act-progress-track { height: 8px; margin-top: 14px; overflow: hidden; border-radius: 8px; background: var(--t-nested); }
.v3rp-act-progress-track span { display: block; height: 100%; border-radius: inherit; background: var(--t-blue-ink); transition: width .25s ease; }
.v3r .r, .v3rp-m .r { text-align: right; }
.v3r .mute, .v3rp-m .mute { color: var(--t-ink-3); }
.v3r .hot, .v3rp-m .hot { color: var(--t-bad-ink); font-weight: 700; }
.v3r .b { font-weight: 650; }

/* ── Шапка ── */
.v3rp-head { display: flex; align-items: center; gap: 12px; padding: 16px 16px 16px 24px; flex-shrink: 0; min-height: 74px; box-sizing: border-box; }
.v3rp-head .v3-h1 { flex-shrink: 0; margin-right: 2px; }
.v3rp-head .v3-sub { font-size: 13px; white-space: nowrap; }
/* кнопки шапки держатся вместе: не хватает места — уходят строкой ниже обе */
.v3rp-hbtns { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }

/* сегмент: белая «таблетка» с синим текстом в сером треке (как вкладки Requests/Stats) */
.v3rp-seg { display: flex; gap: 3px; padding: 3px; border-radius: 17px; background: var(--t-nested); border: 1px solid var(--t-line);
  flex-shrink: 0; box-sizing: border-box; }
.v3rp-seg button { white-space: nowrap; border: 0; display: flex; align-items: center; justify-content: center; gap: 7px;
  padding: 7px 14px; border-radius: 14px; font: inherit; font-size: 13.5px; font-weight: 650; background: transparent;
  color: var(--t-ink-2); cursor: pointer; box-shadow: none; height: auto; min-height: 0; }
.v3rp-seg button:has(.v3rp-cnt) { padding-right: 8px; }
.v3rp-seg button:hover { color: var(--t-ink); }
.v3rp-seg button.on { background: var(--t-surface); color: var(--t-blue-ink); box-shadow: 0 1px 3px rgba(22,26,36,.16); }
.v3rp-cnt { min-width: 22px; height: 22px; padding: 0 7px; box-sizing: border-box; border-radius: 11px; font-size: 12px; font-weight: 750;
  display: flex; align-items: center; justify-content: center; background: var(--t-surface); color: var(--t-ink-2); }
.v3rp-seg button.on .v3rp-cnt { background: var(--t-nested); }
.v3rp-cnt.red { background: #e0313f; color: #fff; }

/* кнопки */
.v3rp-btn { flex-shrink: 0; display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; height: 40px; padding: 0 18px 0 14px;
  border-radius: 20px; border: 1px solid var(--t-line); background: var(--t-surface); color: var(--t-ink); font: inherit;
  font-size: 14px; font-weight: 600; box-shadow: 0 1px 2px rgba(22,26,36,.06); cursor: pointer; box-sizing: border-box; }
.v3rp-btn:hover { background: var(--t-row); }
.v3rp-btn:disabled { opacity: .55; cursor: default; }
.v3rp-btn svg { color: var(--t-blue); flex-shrink: 0; }
.v3rp-np { padding: 0 16px; }
.v3rp-rnd { flex-shrink: 0; width: 36px; height: 36px; border-radius: 18px; border: 1px solid var(--t-line); background: var(--t-surface);
  color: var(--t-ink-2); display: flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; box-shadow: none; }
.v3rp-rnd:hover { background: var(--t-row); color: var(--t-ink); }
.v3rp-link { font: inherit; font-size: 13.5px; font-weight: 650; color: var(--t-blue); background: none; border: 0; padding: 0 4px;
  cursor: pointer; white-space: nowrap; box-shadow: none; height: auto; }
.v3rp-link:hover { text-decoration: underline; }

/* день: ‹ [пт, 26 сентября] › — поле календаря прозрачное поверх подписи */
.v3rp-dnav { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
.v3rp-date { position: relative; display: flex; align-items: center; gap: 8px; height: 40px; padding: 0 16px 0 14px; box-sizing: border-box;
  border-radius: 20px; border: 1px solid var(--t-line); background: var(--t-surface); font-size: 14px; font-weight: 650;
  white-space: nowrap; box-shadow: 0 1px 2px rgba(22,26,36,.06); cursor: pointer; min-width: 190px; }
.v3rp-date:hover { background: var(--t-row); }
.v3rp-date svg { color: var(--t-blue); flex-shrink: 0; }
.v3rp-dl { flex-grow: 1; }
/* подпись и значок — над прозрачным полем: щелчок по ним всё равно открывает календарь (label), а текст не «закрыт» полем */
.v3rp-date > svg, .v3rp-date > .v3rp-dl { position: relative; z-index: 1; }
.v3rp-dpin { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; border: 0; padding: 0; margin: 0; }

/* период: [📅 01.09.2026 — 26.09.2026] */
.v3rp-per { display: flex; align-items: center; gap: 6px; height: 40px; padding: 0 6px 0 14px; box-sizing: border-box; border-radius: 20px;
  border: 1px solid var(--t-line); background: var(--t-surface); box-shadow: 0 1px 2px rgba(22,26,36,.06); flex-shrink: 0; color: var(--t-ink-3); }
.v3rp-per svg { color: var(--t-blue); flex-shrink: 0; }
html .v3rp-din { width: 96px; height: 30px; box-sizing: border-box; padding: 0 8px; border: 0; border-radius: 12px; background: transparent;
  font: inherit; font-size: 14px; font-weight: 650; color: var(--t-ink); cursor: pointer; box-shadow: none; outline: none;
  font-variant-numeric: tabular-nums; text-align: center; }
html .v3rp-din:hover, html .v3rp-din:focus { background: var(--t-nested); }

/* поиск в шапке (как «Найти настройку») */
.v3rp-find { display: flex; align-items: center; gap: 8px; height: 40px; width: 340px; min-width: 180px; flex-shrink: 1; box-sizing: border-box;
  padding: 0 14px; border-radius: 20px; background: var(--t-nested); border: 1px solid var(--t-line); color: var(--t-ink-3); }
.v3rp-find:focus-within { border-color: var(--t-blue); background: var(--t-surface); }
html .v3rp-find input { border: 0; outline: none; background: transparent; flex-grow: 1; min-width: 0; width: auto; font: inherit;
  font-size: 14px; color: var(--t-ink); padding: 0; height: auto; box-shadow: none; }

/* выпадающие месяц / менеджер — пилюли; сам список рисует платформа (.dd из enhanceSelects) */
.v3rp-sel { position: relative; display: flex; align-items: center; flex-shrink: 0; min-width: 0; }
.v3rp-sel > svg { position: absolute; left: 13px; top: 50%; margin-top: -7.5px; color: var(--t-blue); z-index: 1; pointer-events: none; }
.v3rp-sel .dd { display: flex; min-width: 0; width: 100%; }
html .v3rp-sel .dd-trigger { min-height: 0; height: 36px; box-sizing: border-box; padding: 0 10px 0 14px; gap: 6px; border: 1px solid var(--t-line);
  border-radius: 18px; background: var(--t-surface); color: var(--t-ink); font: inherit; font-size: 13.5px; font-weight: 650;
  line-height: normal; box-shadow: none; max-width: 220px; }
html .v3rp-sel.cal .dd-trigger { padding-left: 35px; }
html .v3rp-sel .dd-trigger:hover { background: var(--t-row); }
html .v3rp-sel .dd.open .dd-trigger { border-color: var(--t-blue); box-shadow: 0 0 0 3px var(--t-blue-soft); }
.v3rp-sel .dd-caret { width: 14px; height: 14px; color: var(--t-ink-3); }
.v3rp-sel .dd-menu { left: auto; right: 0; min-width: 200px; }

/* ── Плитки (Stats.dc.html; внутри панели — как в Money.dc.html) ── */
.v3rp-tiles { display: flex; gap: 14px; flex-shrink: 0; }
.v3rp-tile { flex: 1 1 0; min-width: 0; padding: 16px 18px; border-radius: 26px; background: var(--t-surface); border: 1px solid var(--t-line);
  box-shadow: var(--sh-panel); display: flex; flex-direction: column; gap: 4px; box-sizing: border-box; container-type: inline-size; }
.v3rp-tile .k { font-size: 13px; font-weight: 700; color: var(--t-ink-3); }
/* главное число плитки не режется: в узкой плитке шрифт чуть меньше (от ширины самой плитки) */
.v3rp-tile .v { font-size: clamp(18px, 20cqi, 30px); font-weight: 760; letter-spacing: -.03em; white-space: nowrap; font-variant-numeric: tabular-nums;
  overflow: hidden; text-overflow: ellipsis; line-height: 1.15; }
.v3rp-tile .v small { font-size: 17px; font-weight: 650; letter-spacing: -.01em; color: var(--t-ink-3); }
.v3rp-tile .s { font-size: 13px; color: var(--t-ink-2); min-height: 1.2em; }
.v3rp-tile.acc { background: var(--t-blue-tint); border: 1.5px solid rgba(10,95,208,.35); box-shadow: none; }
.v3rp-tile.acc .k { color: var(--t-blue-ink); }
.v3rp-tile.bad { background: rgba(224,49,63,.07); border: 1.5px solid rgba(224,49,63,.3); box-shadow: none; }
.v3rp-tile.bad .k { color: #b3202e; }
.v3rp-tile.warn { background: rgba(255,178,60,.14); border: 1.5px solid rgba(200,130,40,.3); box-shadow: none; }
.v3rp-tile.warn .k { color: #8a4b00; }
.v3rp-tiles.in { gap: 10px; }
.v3rp-tiles.in .v3rp-tile { padding: 14px 16px; border-radius: 22px; box-shadow: none; gap: 3px; }
.v3rp-tiles.in .v3rp-tile .k, .v3rp-tiles.in .v3rp-tile .s { font-size: 12.5px; }
.v3rp-tiles.in .v3rp-tile .s { color: var(--t-ink-3); }
.v3rp-tiles.in .v3rp-tile .v { font-size: clamp(17px, 18.2cqi, 26px); }

/* ── Панели ── */
.v3rp-panels { flex-grow: 1; min-height: 0; display: flex; gap: 14px; }
.v3rp-main, .v3rp-side, .v3rp-card, .v3rp-full { display: flex; flex-direction: column; overflow: hidden; }
.v3rp-main { flex-grow: 1; min-width: 0; }
.v3rp-side { width: 330px; flex-shrink: 0; }
.v3rp-card { width: 460px; flex-shrink: 0; }
.v3rp-card.v3rp-main { width: auto; flex-shrink: 1; }
.v3rp-side.v3rp-vehs { width: 440px; }
.v3rp-vehs .v3rp-in { padding: 18px 12px; }
.v3rp-vehs .v3rp-vbar { width: 80px; }
.v3rp-full { flex-grow: 1; min-height: 0; }
.v3rp-in { padding: 18px 20px; display: flex; flex-direction: column; gap: 14px; overflow: auto; flex-grow: 1; min-height: 0;
  scrollbar-width: none; }
.v3rp-in::-webkit-scrollbar, .v3rp-fin::-webkit-scrollbar, .v3rp-rows::-webkit-scrollbar, .v3rp-cbd::-webkit-scrollbar { display: none; }
.v3rp-side .v3rp-in { padding: 18px; gap: 12px; }
.v3rp-fin { padding: 18px 20px; display: flex; flex-direction: column; gap: 14px; flex-grow: 1; min-height: 0; }
.v3rp-h { display: flex; align-items: baseline; gap: 10px; flex-shrink: 0; }
.v3rp-h h3 { margin: 0; font-size: 18px; font-weight: 750; letter-spacing: -.015em; flex-grow: 1; color: var(--t-ink); }
.v3rp-hs { font-size: 13px; color: var(--t-ink-3); white-space: nowrap; font-variant-numeric: tabular-nums; }
.v3rp-caps { display: flex; align-items: baseline; gap: 8px; font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase;
  color: var(--t-ink-3); }
.v3rp-caps > span { letter-spacing: 0; text-transform: none; font-weight: 600; font-size: 12px; }
.v3rp-none { color: var(--t-ink-3); padding: 10px 4px; font-size: 13.5px; }
.v3rp-none.c { text-align: center; padding: 24px 8px; }
.v3rp-note { font-size: 12.5px; color: var(--t-ink-3); padding: 10px 14px; border-radius: 16px; background: var(--t-nested); }
.v3rp-empty { margin: auto; display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 30px 20px; text-align: center;
  color: var(--t-ink-3); max-width: 420px; }
.v3rp-empty svg { color: var(--t-ink-4); margin-bottom: 4px; }
.v3rp-empty b { font-size: 16px; font-weight: 700; color: var(--t-ink); }
.v3rp-empty span { font-size: 13.5px; line-height: 1.45; }
.v3rp-alert { flex-shrink: 0; padding: 8px 8px 8px 16px; font-size: 13.5px; }

/* таблица в рамке: шапка серой строкой, строки с тонким разделителем (Stats «Средний день машины») */
.v3rp-tbl { border-radius: 18px; border: 1px solid var(--t-line); overflow: hidden; display: flex; flex-direction: column; min-height: 0; flex-shrink: 1;
  container: v3rptbl / inline-size; }
.v3rp-rows { overflow: auto; min-height: 0; scrollbar-width: none; }

/* ═══ Отчёт за день ═══ */
.v3rp-grp { display: flex; flex-direction: column; gap: 2px; }
.v3rp-grp + .v3rp-grp { margin-top: 10px; }
.v3rp-grp > .v3rp-caps { padding: 0 8px 6px; }
.v3rp-veh { display: flex; align-items: center; gap: 11px; padding: 10px 12px; border-radius: 16px; border: 0; background: none;
  font: inherit; color: var(--t-ink); text-align: left; cursor: pointer; width: 100%; box-sizing: border-box; box-shadow: none; height: auto; }
.v3rp-veh:hover { background: var(--t-row); }
.v3rp-veh.on { background: rgba(10,111,224,.1); }
.v3rp-vd { width: 10px; height: 10px; border-radius: 5px; flex-shrink: 0; }
.v3rp-vn { width: 52px; flex-shrink: 0; font-weight: 750; white-space: nowrap; }
.v3rp-vt { display: flex; flex-direction: column; flex-grow: 1; min-width: 0; }
.v3rp-vt > b { font-size: 13.5px; font-weight: 650; color: var(--t-blue-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.v3rp-vt > span { font-size: 12.5px; color: var(--t-ink-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.v3rp-vt > b.ok, .v3rp-cl.ok { color: var(--t-ok); }
.v3rp-vt > b.bad, .v3rp-cl.bad { color: var(--t-bad-ink); }
.v3rp-vt > b.mute, .v3rp-cl.mute { color: var(--t-ink-3); }
.v3rp-vt > b.blue, .v3rp-cl.blue { color: var(--t-blue-ink); }
.v3rp-vbar { width: 120px; height: 5px; border-radius: 3px; background: rgba(60,66,78,.1); display: flex; overflow: hidden; flex-shrink: 0; }
.v3rp-vbar > span { background: var(--t-blue-ink); }
.v3rp-vbar > span.ok { background: var(--t-ok); }
.v3rp-vbar > span.bad { background: #e0313f; }

.v3rp-cempty { margin: auto; display: flex; flex-direction: column; align-items: center; gap: 10px; color: var(--t-ink-3); }
.v3rp-chd { padding: 22px 22px 16px; display: flex; flex-direction: column; gap: 6px; border-bottom: 1px solid rgba(60,66,78,.1); flex-shrink: 0; }
.v3rp-cp { display: flex; gap: 8px; align-items: center; }
.v3rp-cp > span:last-child { font-size: 12.5px; color: var(--t-ink-3); }
.v3rp-cp .v3-mchip { font-size: 12px; padding: 2px 8px; }
.v3rp-chd h2 { margin: 4px 0 0; font-size: 23px; font-weight: 750; letter-spacing: -.02em; }
.v3rp-cl { font-size: 13.5px; font-weight: 650; }
.v3rp-cbd { padding: 14px 16px 18px; display: flex; flex-direction: column; gap: 12px; overflow: auto; flex-grow: 1; min-height: 0; scrollbar-width: none; }

/* точка маршрута: значок статуса, объект, адрес; справа кабины, фото, где отметился */
.v3rp-pts { display: flex; flex-direction: column; }
.v3rp-pt { display: flex; align-items: center; gap: 12px; padding: 10px 8px; border-radius: 14px; cursor: pointer; }
.v3rp-pt + .v3rp-pt { box-shadow: 0 -1px 0 var(--v3rp-sep, rgba(60,66,78,.08)); }
.v3rp-pt:hover { background: var(--t-row); }
.v3rp-pti { width: 24px; height: 24px; border-radius: 12px; flex-shrink: 0; display: flex; align-items: center; justify-content: center;
  box-sizing: border-box; border: 2px solid var(--t-line-2); color: #fff; }
.v3rp-pt.done .v3rp-pti { border: 0; background: var(--t-ok); }
.v3rp-pt.failed .v3rp-pti { border: 0; background: #e0313f; }
.v3rp-pt.late .v3rp-pti { border: 0; background: rgba(224,49,63,.14); color: #b3202e; }
.v3rp-ptx { display: flex; flex-direction: column; flex-grow: 1; min-width: 0; }
.v3rp-ptx > b { font-weight: 700; font-size: 14.5px; display: flex; align-items: center; gap: 7px; min-width: 0; }
.v3rp-ptx > span { font-size: 12.5px; color: var(--t-ink-3); overflow: hidden; text-overflow: ellipsis; display: -webkit-box;
  -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.v3rp-pt.failed .v3rp-ptx > span { color: #b3202e; }
.v3rp-pt.late .v3rp-ptx > b { color: #b3202e; }
.v3rp-pta { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
.v3rp-cab { font-size: 11.5px; font-weight: 700; padding: 3px 9px; border-radius: 9px; background: var(--t-nested); color: var(--t-ink-2); white-space: nowrap; }
.v3rp-ib { width: 30px; height: 30px; border-radius: 15px; border: 1px solid var(--t-line); background: var(--t-surface); color: var(--t-blue);
  display: flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; box-shadow: none; text-decoration: none; }
.v3rp-ib:hover { background: var(--t-blue-soft); }
.v3rp-kind { font-size: 11px; font-weight: 750; padding: 2px 8px; border-radius: 8px; white-space: nowrap; flex-shrink: 0;
  color: var(--kc); background: color-mix(in srgb, var(--kc) 13%, var(--t-surface)); }

/* ═══ Акт за месяц ═══ */
.v3rp-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; flex-shrink: 0; }
.v3rp-ahead, .v3rp-arow { display: grid; gap: 12px;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr) minmax(0, 1.25fr) 84px 136px 104px; }
.v3rp-ahead { padding: 9px 16px; font-size: 11.5px; font-weight: 700; color: var(--t-ink-3); background: var(--t-row); flex-shrink: 0;
  border-bottom: 1px solid var(--t-line); }
.v3rp-arow { align-items: start; padding: 11px 16px; border-bottom: 1px solid rgba(60,66,78,.08); font-variant-numeric: tabular-nums; }
.v3rp-arow:last-child { border-bottom: 0; }
.v3rp-arow:hover { background: var(--t-row); }
.v3rp-arow.warn { background: rgba(255,178,60,.08); }
.v3rp-tx { display: flex; flex-direction: column; min-width: 0; }
.v3rp-tx > b { font-weight: 700; display: flex; align-items: center; gap: 7px; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.v3rp-tx > span { font-size: 12.5px; color: var(--t-ink-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.v3rp-tx > b > .v3rp-on { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.v3rp-arow > .v3rp-tx:first-child > b { display: block; }   /* клиент — простым текстом, чтобы многоточие работало */
.v3rp-code { font-style: normal; font-size: 11.5px; font-weight: 750; padding: 1px 7px; border-radius: 7px; background: #1c1c1e; color: #fff;
  white-space: nowrap; flex-shrink: 0; font-variant-numeric: tabular-nums; }
.v3rp-ak { font-size: 13px; color: var(--t-ink-2); }
.v3rp-qb { display: block; font-weight: 700; white-space: nowrap; }
.v3rp-qb i { font-style: normal; font-size: 11.5px; font-weight: 600; color: var(--t-ink-3); }
.v3rp-qb.bad { color: var(--t-bad-ink); font-size: 12.5px; }
.v3rp-qs { display: block; font-size: 11.5px; color: var(--t-ink-3); white-space: nowrap; }
.v3rp-sum { font-weight: 750; white-space: nowrap; }
.v3rp-kn > b { font-weight: 600; white-space: normal; }
.v3rp-kn > span.v3rp-an { font-size: 12.5px; color: var(--t-ink-3); line-height: 1.35; white-space: normal; overflow-wrap: anywhere; }
.v3rp-arow.warn .v3rp-kn > span.v3rp-an { color: #8a4b00; font-weight: 600; }

/* узкая таблица акта: клиент — под объектом в одной колонке, названию хватает места */
@container v3rptbl (max-width: 1000px) {
  .v3rp-ahead, .v3rp-arow { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 76px 124px 96px; row-gap: 4px;
    grid-template-areas: "obj kn q p s" "cli kn q p s"; }
  .v3rp-ahead { row-gap: 0; }
  .v3rp-ahead > :nth-child(1), .v3rp-arow > :nth-child(1) { grid-area: cli; }
  .v3rp-ahead > :nth-child(2), .v3rp-arow > :nth-child(2) { grid-area: obj; }
  .v3rp-ahead > :nth-child(3), .v3rp-arow > :nth-child(3) { grid-area: kn; }
  .v3rp-ahead > :nth-child(4), .v3rp-arow > :nth-child(4) { grid-area: q; }
  .v3rp-ahead > :nth-child(5), .v3rp-arow > :nth-child(5) { grid-area: p; }
  .v3rp-ahead > :nth-child(6), .v3rp-arow > :nth-child(6) { grid-area: s; }
  .v3rp-ahead > :nth-child(4), .v3rp-ahead > :nth-child(5), .v3rp-ahead > :nth-child(6) { align-self: center; }
  .v3rp-arow > :nth-child(1) > b { font-weight: 600; font-size: 13.5px; }
}

/* ═══ Аналитика ТС ═══ */
.v3rp-anhead, .v3rp-anrow { display: grid; gap: 8px;
  grid-template-columns: minmax(70px, 1fr) 50px 38px 70px 62px 66px 52px 54px 86px 78px; }
.v3rp-anhead { padding: 9px 14px; font-size: 11.5px; font-weight: 700; color: var(--t-ink-3); background: var(--t-row); flex-shrink: 0;
  border-bottom: 1px solid var(--t-line); }
.v3rp-anrow { align-items: center; padding: 10px 14px; border-bottom: 1px solid rgba(60,66,78,.08); font-variant-numeric: tabular-nums; }
/* десять колонок по смыслу нужна ширина: в узкой панели таблица листается вбок внутри своей рамки, страница — нет */
@container v3rptbl (max-width: 759px) {
  .v3rp-anhead, .v3rp-rows:has(> .v3rp-anrow) { min-width: 780px; }
  .v3rp-anhead, .v3rp-anrow { grid-template-columns: minmax(104px, 1fr) 50px 38px 70px 62px 66px 52px 54px 86px 78px; }
}
.v3rp-tbl:has(> .v3rp-anhead) { overflow-x: auto; scrollbar-width: thin; }
.v3rp-anrow:last-child { border-bottom: 0; }
.v3rp-anrow > span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.v3rp-vn2 { display: flex; align-items: center; gap: 7px; min-width: 0; }
.v3rp-vn2 i { width: 8px; height: 8px; border-radius: 4px; flex-shrink: 0; }
.v3rp-vn2 .v3rp-tx > span.hot { font-size: 11px; font-weight: 650; color: var(--t-bad-ink); }
.v3rp-anrow .v3-pill { font-size: 11px; padding: 2px 8px; }
.v3rp-tools { display: flex; flex-direction: column; gap: 2px; }
.v3rp-tool, .v3rp-tab { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 16px; color: var(--t-ink);
  background: none; border: 0; font: inherit; text-align: left; cursor: pointer; width: 100%; box-sizing: border-box; box-shadow: none; height: auto; }
.v3rp-tool:hover, .v3rp-tab:hover { background: var(--t-row); }
.v3rp-tic { width: 34px; height: 34px; flex-shrink: 0; border-radius: 11px; display: flex; align-items: center; justify-content: center;
  background: var(--t-nested); color: var(--t-blue); }
.v3rp-tic svg { width: 17px; height: 17px; }
.v3rp-tt { display: flex; flex-direction: column; min-width: 0; flex-grow: 1; }
.v3rp-tt > b { font-weight: 600; color: var(--t-ink); }
.v3rp-tt > span { font-size: 12.5px; color: var(--t-ink-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.v3rp-chev { color: var(--t-ink-4); flex-shrink: 0; display: flex; }
.v3rp-hint { display: flex; flex-direction: column; gap: 6px; padding: 14px; border-radius: 22px; background: var(--t-nested);
  font-size: 12.5px; color: var(--t-ink-2); line-height: 1.45; margin-top: 4px; flex-shrink: 0; }

/* ═══ Лог действий — «Лента дня» по дням ═══ */
.v3rp-feedw { overflow: auto; gap: 18px; padding: 16px 22px 20px; scrollbar-width: none; }
.v3rp-day { display: flex; flex-direction: column; }
.v3rp-day > .v3rp-caps { padding: 2px 0 4px; }
.v3rp-frow { display: flex; gap: 12px; padding: 9px 0; border-bottom: 1px solid rgba(60,66,78,.08); align-items: flex-start; }
.v3rp-frow:last-child { border-bottom: 0; }
.v3rp-ft { width: 44px; flex-shrink: 0; font-size: 13px; font-weight: 650; color: var(--t-ink-3); font-variant-numeric: tabular-nums; line-height: 20px; }
.v3rp-fd { width: 8px; height: 8px; border-radius: 4px; margin-top: 6px; flex-shrink: 0; background: var(--t-blue); }
.v3rp-fd.ok { background: #14964f; }
.v3rp-fd.bad { background: #e0313f; }
.v3rp-fd.warn { background: #e8890c; }
.v3rp-fd.mute { background: #a3a8b0; }
.v3rp-fx { flex-grow: 1; min-width: 0; display: flex; flex-direction: column; gap: 5px; }
.v3rp-fp { font-size: 13.5px; line-height: 20px; color: var(--t-ink); }
.v3rp-fw { font-size: 12.5px; color: var(--t-ink-3); white-space: nowrap; line-height: 20px; font-weight: 600; }
.v3rp-facts { display: flex; flex-wrap: wrap; gap: 5px; }
.v3rp-fact { font-size: 12px; font-weight: 650; padding: 2px 8px; border-radius: 8px; background: var(--t-nested); color: var(--t-ink);
  white-space: nowrap; max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
.v3rp-fact i { font-style: normal; font-weight: 500; color: var(--t-ink-3); margin-right: 5px; }

/* ═══ База знаний — список слева, статья справа (Settings.dc.html) ═══ */
.v3rp-body { flex-grow: 1; min-height: 0; display: flex; gap: 14px; }
.v3rp-menu { width: 320px; flex-shrink: 0; display: flex; flex-direction: column; overflow: hidden; }
html .v3rp-kbnav { padding: 14px 10px; display: flex; flex-direction: column; gap: 14px; overflow-y: auto; min-height: 0; max-height: none;
  scrollbar-width: none; }
.v3rp-kbnav::-webkit-scrollbar { display: none; }
.v3rp-kbgrp { display: flex; flex-direction: column; gap: 2px; }
.v3rp-kbgrp > .v3rp-caps { padding: 0 12px 6px; flex-wrap: wrap; row-gap: 0; }
.v3rp-tab .v3rp-tic { color: var(--t-ink-2); }
.v3rp-tab.on { background: rgba(10,111,224,.1); }
.v3rp-tab.on .v3rp-tic { background: var(--t-blue); color: #fff; }
.v3rp-tab.on .v3rp-tt > b { font-weight: 700; color: var(--t-blue-ink); }
.v3rp-tab { white-space: normal; }
.v3rp-tab .v3rp-tt > b { line-height: 1.3; white-space: normal; overflow-wrap: anywhere; }
.v3rp-tab.found .v3rp-tt > span, .v3rp-tt.found > span { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; line-height: 1.4; }
.v3rp-art { flex-grow: 1; min-width: 0; display: flex; flex-direction: column; overflow: hidden; }
.v3rp-artin { overflow: auto; flex-grow: 1; min-height: 0; padding: 28px 40px 40px; scrollbar-width: thin; }
.v3rp-artin > * { max-width: 780px; }
.v3rp-kbhead { display: flex; flex-direction: column; gap: 8px; align-items: flex-start; }
.v3rp-kbmeta { font-size: 12.5px; font-weight: 650; color: var(--t-ink-3); }
.v3rp-kbhead h2 { margin: 0; font-size: 30px; font-weight: 760; letter-spacing: -.025em; line-height: 1.15; color: var(--t-ink); }
.v3rp-kblead { margin: 2px 0 6px; font-size: 16.5px; line-height: 1.5; color: var(--t-ink-2); }
.v3rp-toc { margin-top: 20px; padding: 14px 16px; border-radius: 22px; background: var(--t-nested); display: flex; flex-direction: column; gap: 10px; }
.v3rp-toc > div { display: flex; flex-wrap: wrap; gap: 6px; }
.v3rp-toc a { font-size: 13px; font-weight: 650; color: var(--t-blue-ink); background: var(--t-surface); border-radius: 12px; padding: 5px 11px;
  text-decoration: none; border: 1px solid var(--t-line); }
.v3rp-toc a.sub { font-weight: 550; color: var(--t-ink-2); }
.v3rp-toc a:hover { border-color: var(--t-blue); color: var(--t-blue-ink); }
/* сама статья: разметка сервера (kb-*), тона — кита */
.v3rp-kbtext { color: var(--t-ink-2); }
.v3rp-kbtext .kb-h { color: var(--t-ink); }
.v3rp-kbtext .kb-h1 { border-top: 0; padding-top: 0; margin-top: 30px; font-size: 22px; font-weight: 750; letter-spacing: -.02em; }
.v3rp-kbtext .kb-hr { border-top: 1px solid rgba(60,66,78,.1); }
.v3rp-kbtext .kb-ui { color: var(--t-ink); }
.v3rp-kbtext .kb-tbl-wrap { border-radius: 18px; border-color: var(--t-line); }
.v3rp-kbtext .kb-tbl th { background: var(--t-row); color: var(--t-ink-3); font-size: 12px; font-weight: 700; }
.v3rp-kbtext .kb-tbl td { border-top-color: rgba(60,66,78,.08); }
.v3rp-kbtext .kb-call { border-radius: 18px; border-width: 1px; }
.v3rp-kbtext .kb-pre { border-radius: 18px; }
.v3rp-kbtext a { color: var(--t-blue); }

/* ── Тёмная тема: светлые тона — оттенком ── */
[data-theme="dark"] .v3rp-tile.acc { border-color: rgba(77,163,255,.4); }
[data-theme="dark"] .v3rp-tile.bad .k, [data-theme="dark"] .v3rp-pt.late .v3rp-ptx > b,
[data-theme="dark"] .v3rp-pt.failed .v3rp-ptx > span { color: var(--t-bad-ink); }
[data-theme="dark"] .v3rp-tile.warn .k, [data-theme="dark"] .v3rp-arow.warn .v3rp-kn > span.v3rp-an { color: var(--t-warn-ink); }
[data-theme="dark"] .v3rp-code { background: #3a3d45; }
[data-theme="dark"] .v3rp-arow, [data-theme="dark"] .v3rp-anrow, [data-theme="dark"] .v3rp-frow { border-bottom-color: rgba(255,255,255,.06); }
[data-theme="dark"] .v3rp-vbar { background: rgba(255,255,255,.1); }
[data-theme="dark"] .v3rp-pt.late .v3rp-pti { background: rgba(255,90,100,.2); color: var(--t-bad-ink); }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) .v3rp-tile.acc { border-color: rgba(77,163,255,.4); }
  :root:not([data-theme]) .v3rp-tile.bad .k, :root:not([data-theme]) .v3rp-pt.late .v3rp-ptx > b,
  :root:not([data-theme]) .v3rp-pt.failed .v3rp-ptx > span { color: var(--t-bad-ink); }
  :root:not([data-theme]) .v3rp-tile.warn .k, :root:not([data-theme]) .v3rp-arow.warn .v3rp-kn > span.v3rp-an { color: var(--t-warn-ink); }
  :root:not([data-theme]) .v3rp-code { background: #3a3d45; }
  :root:not([data-theme]) .v3rp-arow, :root:not([data-theme]) .v3rp-anrow, :root:not([data-theme]) .v3rp-frow { border-bottom-color: rgba(255,255,255,.06); }
  :root:not([data-theme]) .v3rp-vbar { background: rgba(255,255,255,.1); }
  :root:not([data-theme]) .v3rp-pt.late .v3rp-pti { background: rgba(255,90,100,.2); color: var(--t-bad-ink); }
}

/* ── Узкий компьютер: шапка переносится, боковые панели уже ── */
@media (min-width: 861px) and (max-width: 1280px) {
  .v3rp-head { flex-wrap: wrap; row-gap: 10px; }
  .v3rp-card { width: 380px; }
  .v3rp-side.v3rp-vehs { width: 360px; }
  .v3rp-vehs .v3rp-vbar { width: 52px; }
  .v3rp-side { width: 300px; }
  .v3rp-menu { width: 280px; }
  .v3rp-find { width: 240px; }
}

/* ═══════════════ Телефон (MobStats / MobMoney / MobSettings) ═══════════════ */
@media (max-width: 860px) {
  .v3rp-m { display: flex; flex-direction: column; color: var(--t-ink); font-size: 15px; line-height: normal; }
  .v3rp-mtop { padding: 16px 16px 10px; display: flex; flex-direction: column; gap: 8px; }
  .v3rp-mbar { display: flex; align-items: center; gap: 10px; min-height: 40px; }
  .v3rp-mback { font-size: 14px; font-weight: 650; color: var(--t-ink-3); }
  .v3rp-mic { position: relative; width: 40px; height: 40px; border-radius: 20px; border: 0; padding: 0; flex-shrink: 0; display: flex;
    align-items: center; justify-content: center; cursor: pointer; background: var(--t-surface); color: var(--t-ink);
    box-shadow: 0 1px 2px rgba(22,26,36,.08); }
  .v3rp-mic::after { content: ''; position: absolute; inset: -4px; }   /* касание 48px */
  .v3rp-mic:disabled { opacity: .5; }
  .v3rp-mbar .v3rp-mic:not(:first-child) { color: var(--t-blue); }
  .v3rp-mtitle { margin: 0; font-size: 30px; font-weight: 760; letter-spacing: -.03em; line-height: 1.1; }
  .v3rp-mbody { padding: 0 14px 14px; display: flex; flex-direction: column; gap: 10px; }
  .v3rp-mrest { display: flex; flex-direction: column; gap: 10px; }
  .v3rp-mcap { font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--t-ink-3); padding: 8px 6px 0; }
  .v3rp-mcap span { letter-spacing: 0; text-transform: none; font-weight: 600; font-size: 12px; }
  .v3rp-mnone { padding: 14px; border-radius: 20px; background: var(--t-surface); color: var(--t-ink-3); font-size: 14px; }

  /* сегмент во всю ширину; длинный — листается */
  .v3rp-seg.full { width: 100%; }
  .v3rp-seg.full button { flex: 1 1 0; padding: 8px 8px; }
  .v3rp-seg.full button:has(.v3rp-cnt) { padding-right: 6px; }
  .v3rp-seg.scroll { overflow-x: auto; scrollbar-width: none; }
  .v3rp-seg.scroll::-webkit-scrollbar { display: none; }
  .v3rp-seg.scroll button { flex: 1 0 auto; }

  .v3rp-dnav { width: 100%; }
  .v3rp-dnav .v3rp-date { flex-grow: 1; min-width: 0; justify-content: center; }
  .v3rp-dnav .v3rp-dl { flex-grow: 0; }
  .v3rp-rnd { width: 40px; height: 40px; border-radius: 20px; border: 0; background: var(--t-surface); }
  .v3rp-date { border: 0; box-shadow: none; font-size: 15px; }
  .v3rp-per { border: 0; box-shadow: none; width: 100%; justify-content: center; }
  html .v3rp-din { width: auto; flex: 1 1 0; min-width: 0; font-size: 15px; }
  .v3rp-find { width: 100%; height: 44px; border-radius: 22px; background: var(--t-surface); border: 0; }
  html .v3rp-find input { font-size: 16px; }   /* меньше 16 — iPhone приближает страницу при вводе */
  .v3rp-btn { height: 40px; }
  .v3rp-mbtns { display: flex; gap: 8px; }
  .v3rp-mbtns > * { flex: 1 1 0; justify-content: center; height: 40px; }
  .v3rp-sels { display: flex; gap: 8px; }
  .v3rp-sel { flex: 1 1 0; }
  .v3rp-sel.cal { flex: 0 0 auto; }
  html .v3rp-sel .dd-trigger { height: 40px; border-radius: 20px; border: 0; font-size: 15px; max-width: none; width: 100%; }
  .v3rp-sel:first-child .dd-menu { left: 0; right: auto; }

  /* плитки 2×2 (MobStats) */
  .v3rp-tiles.m { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .v3rp-tiles.m .v3rp-tile:first-child:nth-last-child(odd) { grid-column: span 2; }   /* нечётное число — первая во всю ширину */
  .v3rp-tiles.m .v3rp-tile { padding: 13px 14px; border-radius: 20px; box-shadow: none; gap: 2px; }
  .v3rp-tiles.m .v3rp-tile .v { font-size: clamp(16px, 18.5cqi, 24px); }
  .v3rp-tiles.m .v3rp-tile .v small { font-size: 15px; }
  /* широкий телефон и планшет: плитки в один ряд, строки акта — в две колонки */
  @media (min-width: 600px) {
    .v3rp-tiles.m { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); }
    .v3rp-tiles.m .v3rp-tile:first-child:nth-last-child(odd) { grid-column: auto; }
  }
  #v3rp-actb.v3rp-mrest { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); align-items: start; }
  #v3rp-actb.v3rp-mrest > :not(.v3rp-acard) { grid-column: 1 / -1; }
  .v3rp-tiles.m .v3rp-tile .s { font-size: 12.5px; }

  /* отчёт: карточка машины раскрывается на месте */
  .v3rp-mcard { display: flex; flex-direction: column; gap: 8px; padding: 12px 14px; border-radius: 20px; background: var(--t-surface); }
  .v3rp-mveh { display: flex; align-items: center; gap: 11px; border: 0; background: none; padding: 0; font: inherit; color: var(--t-ink);
    text-align: left; width: 100%; cursor: pointer; box-shadow: none; height: auto; }
  .v3rp-mveh .v3rp-chev { transition: transform .2s; color: var(--t-ink-3); }
  .v3rp-mcard.open .v3rp-mveh .v3rp-chev { transform: rotate(180deg); }
  .v3rp-mcard .v3rp-vbar { width: 100%; }
  .v3rp-mcard .v3rp-pts { margin: 0 -8px; border-top: 1px solid rgba(60,66,78,.08); padding-top: 4px; }
  .v3rp-mcard .v3rp-pt { padding: 10px 8px; }
  .v3rp-mcard .v3rp-ptx > b { font-size: 15px; }
  .v3rp-ib { width: 36px; height: 36px; border-radius: 18px; }

  /* акт: карточки строк (MobMoney) */
  .v3rp-acard { display: flex; flex-direction: column; gap: 4px; padding: 13px 14px; border-radius: 20px; background: var(--t-surface); }
  .v3rp-acard.warn { box-shadow: inset 0 0 0 1.5px rgba(200,130,40,.35); }
  .v3rp-act1 { display: flex; align-items: center; gap: 8px; min-width: 0; }
  .v3rp-act1 b { font-size: 16px; font-weight: 700; flex-grow: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .v3rp-act1 .v3rp-sum { font-size: 15px; }
  .v3rp-act2 { font-size: 13.5px; color: var(--t-ink-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .v3rp-act3 { display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; font-size: 13.5px; font-variant-numeric: tabular-nums; }
  .v3rp-act3 > span:nth-child(3) { color: var(--t-ink-3); }
  .v3rp-act3 .v3rp-ak { font-weight: 650; margin-right: 4px; }
  .v3rp-act3 .v3rp-qb { display: inline; }
  .v3rp-act3 .v3rp-qs { display: none; }
  .v3rp-act4 { font-size: 12.5px; color: var(--t-ink-3); line-height: 1.4; }
  .v3rp-acard.warn .v3rp-act4 { color: #8a4b00; font-weight: 600; }
  .v3rp-alert { padding: 10px 8px 10px 14px; font-size: 13.5px; border-radius: 18px; }

  /* аналитика: строки машин и инструменты группами (MobSettings) */
  .v3rp-mrow { display: flex; align-items: center; gap: 11px; padding: 12px 14px; border-bottom: 1px solid rgba(60,66,78,.08); }
  .v3rp-mrow:last-child { border-bottom: 0; }
  .v3rp-mrow .v3rp-vt > b { color: var(--t-ink); font-size: 15px; font-weight: 700; }
  .v3rp-mrow .v3rp-vt > b .mute { font-weight: 550; font-size: 13px; }
  .v3rp-mrow .v3rp-vt > span.hot { font-size: 12.5px; color: var(--t-bad-ink); }
  .v3rp-km { font-weight: 750; white-space: nowrap; font-variant-numeric: tabular-nums; }
  .v3rp-km i { font-style: normal; font-size: 12px; font-weight: 600; color: var(--t-ink-3); }
  .v3mo-row .v3rp-tt > b { font-size: 16px; font-weight: 600; }
  .v3mo-row .v3rp-tt > span { font-size: 12.5px; }
  .v3rp-hint { border-radius: 20px; background: var(--t-surface); margin-top: 0; }
  .v3rp-empty { background: var(--t-surface); border-radius: 20px; max-width: none; padding: 26px 18px; }

  /* лог: записи по дням карточками */
  .v3rp-mfeed { display: flex; flex-direction: column; gap: 4px; padding: 11px 14px; border-bottom: 1px solid rgba(60,66,78,.08); }
  .v3rp-mfeed:last-child { border-bottom: 0; }
  .v3rp-mft { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--t-ink-3); }
  .v3rp-mft .v3rp-fd { margin-top: 0; }
  .v3rp-mft b { font-weight: 700; color: var(--t-ink-2); font-variant-numeric: tabular-nums; }
  .v3rp-mft span:last-child { margin-left: auto; font-weight: 600; }
  .v3rp-mfeed .v3rp-fp { font-size: 15px; line-height: 1.35; }
  .v3rp-mfeed .v3rp-facts { margin-top: 2px; }

  /* база знаний: список группами, статья — во весь экран */
  .v3rp-kbrow { min-height: 58px; padding-top: 8px; padding-bottom: 8px; }
  .v3rp-kbrow .v3mo-rico svg { width: 17px; height: 17px; }
  .v3rp-kbreset { margin-top: 6px; }
  .v3rp-kbreset .v3mo-rlbl { font-size: 15.5px; }
  .v3rp-mart { padding: 20px 18px 24px; border-radius: 22px; background: var(--t-surface); }
  .v3rp-mart .v3rp-kbhead h2 { font-size: 26px; }
  .v3rp-mart .v3rp-kblead { font-size: 16px; }
  .v3rp-mart .v3rp-toc { margin-top: 16px; border-radius: 18px; padding: 12px; }
  .v3rp-mart .kb-text { font-size: 16px; }
  .v3rp-mart .kb-h1 { font-size: 21px; }
  .v3rp-mart .kb-tbl-wrap { margin-left: -4px; margin-right: -4px; }
}
@media (max-width: 860px) {
  [data-theme="dark"] .v3rp-mrow, [data-theme="dark"] .v3rp-mfeed, [data-theme="dark"] .v3rp-mcard .v3rp-pts { border-color: rgba(255,255,255,.06); }
  [data-theme="dark"] .v3rp-acard.warn .v3rp-act4 { color: var(--t-warn-ink); }
}
@media (max-width: 860px) and (prefers-color-scheme: dark) {
  :root:not([data-theme]) .v3rp-mrow, :root:not([data-theme]) .v3rp-mfeed, :root:not([data-theme]) .v3rp-mcard .v3rp-pts { border-color: rgba(255,255,255,.06); }
  :root:not([data-theme]) .v3rp-acard.warn .v3rp-act4 { color: var(--t-warn-ink); }
}
