/* ─── Вкладка «Регистрации» ─────────────────────────────────────────────────
   Цветовое правило: --accent (синий) — навигация и выбор скоупа, весь красный
   канал — селекция на удаление. Не смешивать.
   Подключается ПОСЛЕ style.css: опирается на его токены и на .data-table. */

.reg-counter { display: inline-flex; align-items: baseline; gap: 4px; margin-left: 10px;
  font: 600 14px/1 ui-monospace, 'SF Mono', Menlo, monospace; font-variant-numeric: tabular-nums; color: var(--text-secondary); }
.reg-counter-sep { opacity: .5; font-weight: 400; }
.reg-updated { font-size: 11.5px; color: var(--text-muted); margin-right: 10px; }
.u-muted { color: var(--text-muted); }

/* ── Борд KPI ─────────────────────────────────────────────────────────────── */
.reg-board { position: relative; margin-bottom: 14px; padding: 16px 18px;
  background: var(--bg-secondary); border: 1px solid var(--border-color); border-radius: var(--radius); }
.reg-board--empty { padding: 28px 18px; text-align: center; color: var(--text-muted); }
.reg-scope { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 12px; padding: 4px 8px 4px 10px;
  border-radius: 999px; font-size: 12px; background: var(--accent-dim); border: 1px solid var(--accent); }
.reg-scope-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--accent); }
.reg-scope-label { font-size: 10px; letter-spacing: .06em; text-transform: uppercase; color: var(--text-secondary); }
.reg-scope-name { font-weight: 600; }
.reg-scope-reset { width: 18px; height: 18px; border: 0; border-radius: 4px; background: transparent;
  color: var(--text-secondary); cursor: pointer; line-height: 1; }
.reg-scope-reset:hover { background: var(--danger-dim); color: var(--danger); }

.reg-kpis { display: flex; flex-wrap: wrap; }
.reg-kpi { position: relative; flex: 1 1 120px; min-width: 110px; display: flex; flex-direction: column; gap: 3px;
  padding: 0 16px; border-left: 1px solid var(--border-color); }
.reg-kpi:first-child { padding-left: 0; border-left: none; }
.reg-kpi--pct { flex: 1.6 1 180px; }
.reg-kpi-label { font-size: 10px; letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); }
.reg-kpi-value { font: 600 28px/1 ui-monospace, 'SF Mono', Menlo, monospace; font-variant-numeric: tabular-nums; }
.reg-kpi-unit { font-size: 16px; font-weight: 500; color: var(--text-muted); margin-left: 1px; }
.reg-kpi-dot { position: absolute; top: 3px; right: 12px; width: 7px; height: 7px; border-radius: 50%; }
.reg-kpi--ok .reg-kpi-dot { background: var(--success); }
.reg-kpi--err .reg-kpi-dot { background: var(--danger); }
.reg-kpi--wip .reg-kpi-dot { background: var(--info); }
.reg-kpi--cancel .reg-kpi-dot { background: var(--text-muted); }
.reg-kpi--ok .reg-kpi-value { color: var(--success); }
.reg-kpi--err .reg-kpi-value { color: var(--danger); }
.reg-kpi--wip .reg-kpi-value { color: var(--info); }
.reg-kpi--cancel .reg-kpi-value { color: var(--text-secondary); }
.reg-kpi--pct.is-ok .reg-kpi-value { color: var(--success); }
.reg-kpi--pct.is-warn .reg-kpi-value { color: var(--warning); }
.reg-kpi--pct.is-danger .reg-kpi-value { color: var(--danger); }
.reg-kpi-trend { font-size: 11px; color: var(--text-muted); font-variant-numeric: tabular-nums; }
.reg-kpi-meter { height: 4px; margin-top: 6px; border-radius: 2px; overflow: hidden; background: var(--bg-hover); }
.reg-kpi-meter span { display: block; height: 100%; border-radius: 2px; background: var(--accent); transition: width .4s ease; }
.reg-kpi--pct.is-ok .reg-kpi-meter span { background: var(--success); }
.reg-kpi--pct.is-warn .reg-kpi-meter span { background: var(--warning); }
.reg-kpi--pct.is-danger .reg-kpi-meter span { background: var(--danger); }
.reg-board-note { margin-top: 10px; font-size: 11px; color: var(--text-muted); }

/* ── Рельса сервисов ──────────────────────────────────────────────────────── */
.reg-presets { margin-bottom: 14px; padding: 10px 12px; border-radius: var(--radius);
  background: var(--bg-secondary); border: 1px solid var(--border-color); }
.reg-presets-bar { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.reg-presets-search { flex: 0 1 240px; height: 30px; padding: 0 10px; border-radius: var(--radius-sm);
  background: var(--bg-primary); border: 1px solid var(--border-color); color: var(--text-primary); font-size: 12px; outline: none; }
.reg-presets-search:focus { border-color: var(--accent); }
.reg-presets-count { margin-left: auto; font-size: 11px; color: var(--text-muted); font-variant-numeric: tabular-nums; }
.reg-presets-empty { padding: 10px; font-size: 12px; color: var(--text-muted); font-style: italic; }
.reg-rail { display: flex; flex-wrap: wrap; gap: 6px; max-height: 138px; overflow-y: auto; }
.reg-pill { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px 4px 8px; border-radius: 999px;
  background: var(--bg-primary); border: 1px solid var(--border-color); color: var(--text-primary);
  font-size: 11.5px; cursor: pointer; white-space: nowrap; transition: var(--transition); }
.reg-pill:hover { border-color: var(--accent); }
.reg-pill.is-active { background: var(--accent-dim); border-color: var(--accent); }
.reg-pill-dot { width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0; }
.reg-pill--ok .reg-pill-dot { background: var(--success); }
.reg-pill--warn .reg-pill-dot { background: var(--warning); }
.reg-pill--danger .reg-pill-dot { background: var(--danger); }
.reg-pill-name { font-weight: 600; max-width: 170px; overflow: hidden; text-overflow: ellipsis; }
.reg-pill-pct { font-weight: 700; font-variant-numeric: tabular-nums; }
.reg-pill--ok .reg-pill-pct { color: var(--success); }
.reg-pill--warn .reg-pill-pct { color: var(--warning); }
.reg-pill--danger .reg-pill-pct { color: var(--danger); }
.reg-pill-sep { color: var(--text-muted); opacity: .6; }
.reg-pill-count { font-size: 11px; color: var(--text-muted); font-variant-numeric: tabular-nums; }

/* ── Разрез выбранного сервиса ────────────────────────────────────────────── */
.reg-detail { margin-bottom: 14px; background: var(--bg-secondary); border: 1px solid var(--border-color);
  border-radius: var(--radius); overflow: hidden; }
.reg-detail-head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 10px 14px;
  border-bottom: 1px solid var(--border-color); }
.reg-segctl { display: inline-flex; padding: 2px; border-radius: var(--radius-sm);
  background: var(--bg-primary); border: 1px solid var(--border-color); }
.reg-seg { padding: 5px 11px; border: 0; border-radius: 4px; background: transparent; color: var(--text-secondary);
  font-size: 12px; cursor: pointer; transition: var(--transition); }
.reg-seg:hover { color: var(--text-primary); }
.reg-seg.is-active { background: var(--accent); color: #fff; }
.reg-drillchip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 8px; border-radius: 999px;
  background: var(--accent-dim); border: 1px solid var(--accent); color: var(--text-primary); font-size: 11.5px; cursor: pointer; }
.reg-drillchip span { color: var(--text-secondary); }
.reg-detail-summary { display: inline-flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-left: auto; }
.reg-metric { font-size: 11px; color: var(--text-muted); }
.reg-metric b { font: 700 15px/1 ui-monospace, 'SF Mono', Menlo, monospace; font-variant-numeric: tabular-nums;
  color: var(--text-primary); margin-right: 3px; }
.reg-metric.ok b { color: var(--success); }
.reg-metric.err b { color: var(--danger); }
.reg-detail-actions { display: inline-flex; gap: 6px; }
.reg-obtn { height: 28px; padding: 0 11px; border-radius: var(--radius-sm); background: var(--bg-tertiary);
  border: 1px solid var(--border-color); color: var(--text-secondary); font-size: 11.5px; cursor: pointer; transition: var(--transition); }
.reg-obtn:hover { border-color: var(--accent); color: var(--text-primary); }
.reg-obtn.is-on { border-color: var(--danger); color: var(--danger); background: var(--danger-dim); }
.reg-detail-scroll { max-height: 340px; overflow: auto; }
.reg-dtable { font-size: 12.5px; }
.reg-dtable th, .reg-dtable td { padding: 7px 10px; }
.reg-dtable thead th { position: sticky; top: 0; z-index: 2; background: var(--bg-tertiary); }
.reg-dtable .num { text-align: right; width: 1%; white-space: nowrap; font-variant-numeric: tabular-nums; }
.reg-dtable .num.ok { color: var(--success); }
.reg-dtable .num.err { color: var(--danger); }
.reg-dtable .reg-dir { max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.reg-dtable .reg-sender { color: var(--text-secondary); }
.reg-c-pct { width: 132px; }
.reg-c-act { width: 34px; text-align: right; }
.reg-c-pick { width: 30px; text-align: center; }
.reg-unit-tag { padding: 1px 7px; border-radius: 999px; font-size: 10px; }
.reg-unit-tag.file { background: var(--success-dim); color: var(--success); }
.reg-unit-tag.rt { background: var(--accent-dim); color: var(--accent-hover); }
.reg-row-cold td:first-child { box-shadow: inset 2px 0 0 var(--danger); }
tr[data-reg-drill-row] { cursor: pointer; }
.reg-detail.is-bulk tbody tr[data-reg-key] { cursor: pointer; user-select: none; }
tr.is-picked td { background: rgba(239, 68, 68, .07); }
.reg-x, .reg-drill { width: 24px; height: 24px; border: 1px solid transparent; border-radius: var(--radius-sm);
  background: transparent; color: var(--text-muted); cursor: pointer; opacity: 0; transition: var(--transition); }
tr:hover .reg-x, tr:hover .reg-drill { opacity: .75; }
.reg-x:hover { opacity: 1; color: var(--danger); background: var(--danger-dim); border-color: var(--danger); }
.reg-drill:hover { opacity: 1; color: var(--accent-hover); background: var(--accent-dim); border-color: var(--accent); }
.reg-bulk-cb { width: 14px; height: 14px; accent-color: var(--danger); cursor: pointer; }
.reg-bulkbar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 7px 14px;
  border-bottom: 1px solid var(--border-color); background: var(--danger-dim); }
.reg-bulkbar-count { font-size: 11.5px; color: var(--text-secondary); }
.reg-bulkbar-count b { color: var(--danger); font-variant-numeric: tabular-nums; }
.reg-bulkbar-hint { font-size: 10.5px; color: var(--text-muted); }
.reg-bulkbar-spacer { flex: 1 1 auto; }
.reg-chip { height: 24px; padding: 0 10px; border-radius: 999px; background: var(--bg-primary);
  border: 1px solid var(--border-color); color: var(--text-secondary); font-size: 11px; cursor: pointer; }
.reg-chip:not([disabled]):hover { color: var(--danger); border-color: var(--danger); }
.reg-chip[disabled] { opacity: .35; cursor: not-allowed; }
.reg-bulkbar-commit { height: 26px; padding: 0 12px; border-radius: var(--radius-sm);
  background: var(--danger); border: 1px solid var(--danger); color: #fff; font-size: 11.5px; font-weight: 600; cursor: pointer; }
.reg-bulkbar-commit[disabled] { opacity: .4; cursor: not-allowed; }

/* ── Полоса конверсии ─────────────────────────────────────────────────────── */
.reg-pctbar { display: flex; align-items: center; gap: 8px; }
.reg-pctbar-track { flex: 1; height: 4px; border-radius: 999px; overflow: hidden; background: var(--bg-hover); }
.reg-pctbar-fill { height: 100%; border-radius: 999px; }
.reg-pctbar-val { min-width: 32px; text-align: right; font-size: 11.5px; font-weight: 600; font-variant-numeric: tabular-nums; }
.reg-pctbar--ok .reg-pctbar-fill { background: var(--success); }
.reg-pctbar--ok .reg-pctbar-val { color: var(--success); }
.reg-pctbar--warn .reg-pctbar-fill { background: var(--warning); }
.reg-pctbar--warn .reg-pctbar-val { color: var(--warning); }
.reg-pctbar--danger .reg-pctbar-fill { background: var(--danger); }
.reg-pctbar--danger .reg-pctbar-val { color: var(--danger); }

/* ── Строка фильтров и лента ──────────────────────────────────────────────── */
.reg-cmd { align-items: center; }
.reg-win { display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 6px 0 10px;
  border-radius: var(--radius-sm); background: var(--bg-tertiary); border: 1px solid var(--border-color); }
.reg-win-lbl { font-size: 10px; letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); }
.reg-win-sel { border: 0; background: transparent; outline: none; color: var(--text-primary); cursor: pointer;
  font: 600 12px/1 ui-monospace, 'SF Mono', Menlo, monospace; }
.reg-win-sel option { background: var(--bg-tertiary); color: var(--text-primary); }
.reg-win.is-dimmed { opacity: .4; pointer-events: none; }
.reg-win.is-dimmed .reg-win-lbl::after { content: ' (дата)'; color: var(--accent-hover); }
.reg-date { display: inline-flex; align-items: center; gap: 4px; }
.reg-date-input { width: 140px; }
.reg-date-clear { display: none; width: 24px; height: 24px; border: 0; border-radius: 4px; background: transparent;
  color: var(--text-muted); cursor: pointer; }
.reg-date[data-active="true"] .reg-date-clear { display: inline-block; }
.reg-date[data-active="true"] .reg-date-input { border-color: var(--accent); }

.reg-table .reg-time, .reg-table .reg-ago { font-size: 11.5px; color: var(--text-secondary);
  white-space: nowrap; font-variant-numeric: tabular-nums; }
.reg-table .reg-num { font-family: ui-monospace, 'SF Mono', Menlo, monospace; font-size: 12px; }
.reg-table .reg-dir { max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.reg-table .reg-sub { display: block; font-size: 10.5px; color: var(--text-muted); }
.reg-code { padding: 1px 6px; border-radius: 4px; background: var(--accent-dim); color: var(--accent-hover);
  font-family: ui-monospace, 'SF Mono', Menlo, monospace; font-size: 12px; }
.reg-badge { font-size: 11px; font-weight: 600; white-space: nowrap; }
.reg-badge.ok { color: var(--success); }
.reg-badge.err { color: var(--danger); }
.reg-badge.wip { color: var(--info); }
.reg-badge.cancel { color: var(--text-muted); }

/* ── Тост отмены ──────────────────────────────────────────────────────────── */
/* Живёт в body: секции неактивных вкладок скрыты display:none, из своей секции
   тост просто не показался бы. */
.reg-undo { position: fixed; left: 50%; bottom: 26px; transform: translateX(-50%) translateY(12px);
  display: none; align-items: center; gap: 10px; padding: 10px 12px 10px 14px; z-index: 4000;
  background: var(--bg-tertiary); border: 1px solid var(--danger); border-radius: var(--radius);
  box-shadow: var(--shadow); font-size: 12.5px; opacity: 0; transition: opacity .18s, transform .18s; }
.reg-undo.is-open { display: flex; opacity: 1; transform: translateX(-50%) translateY(0); }
.reg-undo-ring { width: 14px; height: 14px; border-radius: 50%; border: 2px solid var(--danger);
  border-top-color: transparent; animation: reg-undo-spin var(--undo, 5000ms) linear 1; }
@keyframes reg-undo-spin { to { transform: rotate(360deg); } }
.reg-undo-btn { height: 24px; padding: 0 10px; border-radius: var(--radius-sm); background: var(--accent);
  border: 0; color: #fff; font-size: 11.5px; font-weight: 600; cursor: pointer; }
.reg-undo-x { width: 22px; height: 22px; border: 0; border-radius: 4px; background: transparent;
  color: var(--text-muted); cursor: pointer; }
.reg-undo-x:hover { color: var(--text-primary); background: var(--bg-hover); }

@media (max-width: 900px) {
  .reg-kpi { flex: 1 1 45%; padding: 0 0 0 12px; }
  .reg-kpi:nth-child(odd) { padding-left: 0; border-left: none; }
  .reg-kpi-value { font-size: 23px; }
  .reg-detail-summary { margin-left: 0; }
  .reg-pill-name { max-width: 120px; }
}
