/* Вкладка «Балансировка» — только своё, остальное берём из style.css / ui-servers.css */

.ub-tag {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px;
  padding: 2px 6px;
  border-radius: 5px;
  background: var(--chip-bg, rgba(99, 102, 241, .12));
  color: var(--primary, #6366f1);
  white-space: nowrap;
}

.ub-pill {
  display: inline-block;
  font-size: 11px;
  padding: 1px 7px;
  border-radius: 999px;
  background: var(--chip-bg, rgba(120, 120, 140, .14));
  color: var(--muted, #8b8fa3);
  white-space: nowrap;
}

.ub-ok   { color: #22c55e; }
.ub-warn { color: #f59e0b; }
.ub-bad  { color: #ef4444; }

.ub-pill.ub-warn { background: rgba(245, 158, 11, .15); color: #f59e0b; }
.ub-pill.ub-bad  { background: rgba(239, 68, 68, .15);  color: #ef4444; }

/* Полоска «из чего сложился балл» */
.ub-bar {
  display: flex;
  height: 8px;
  width: 100%;
  min-width: 90px;
  border-radius: 4px;
  overflow: hidden;
  background: rgba(120, 120, 140, .12);
}
.ub-bar > span { display: block; height: 100%; }
.ub-seg-base  { background: #94a3b8; }
.ub-seg-bw    { background: #ef4444; }
.ub-seg-cpu   { background: #f59e0b; }
.ub-seg-steal { background: #a855f7; }
.ub-seg-users { background: #6366f1; }
.ub-seg-geo   { background: #ec4899; }

/* Табы внутри раздела «Серверы» */
.us-subtabs {
  display: flex;
  gap: 6px;
  margin-bottom: 12px;
  flex-wrap: wrap;
}
.us-subtab {
  padding: 7px 14px;
  border-radius: 8px;
  border: 1px solid var(--border, rgba(120, 120, 140, .22));
  background: transparent;
  color: var(--muted, #8b8fa3);
  cursor: pointer;
  font-size: 13px;
  font-weight: 500;
  transition: border-color .15s, color .15s, background .15s;
}
.us-subtab:hover { color: var(--text, #e6e8ef); border-color: var(--primary, #6366f1); }
.us-subtab.on {
  background: var(--primary, #6366f1);
  border-color: var(--primary, #6366f1);
  color: #fff;
}

/* Полоса выбора периода */
.us-period {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}
.us-period .muted { margin-right: 4px; font-size: 13px; }

/* ---------- панель «Спрос на автовыбор» ---------- */
.ub-share-grid {
  display: grid;
  grid-template-columns: 190px minmax(180px, 1fr) minmax(240px, 2fr);
  gap: 18px;
  align-items: center;
  padding: 4px 14px 16px;
}
@media (max-width: 900px) {
  .ub-share-grid { grid-template-columns: 1fr; }
}

.ub-donut-wrap { position: relative; height: 150px; }
.ub-donut-center {
  position: absolute; inset: 0;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  pointer-events: none;
}
.ub-donut-val { font-size: 26px; font-weight: 700; line-height: 1.1; }
.ub-donut-lbl { font-size: 11px; color: var(--muted, #8b8fa3); }

.ub-share-nums { display: flex; flex-direction: column; gap: 10px; }
.ub-num-row {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 10px; border-radius: 8px;
  background: rgba(120, 120, 140, .07);
  cursor: default;
}
.ub-num-row:hover { background: rgba(120, 120, 140, .13); }
.ub-num-lbl { flex: 1; font-size: 13px; color: var(--muted, #8b8fa3); }
.ub-num-val { font-weight: 600; font-variant-numeric: tabular-nums; }
.ub-num-total { background: transparent; border-top: 1px solid var(--border, rgba(120,120,140,.2)); border-radius: 0; }
.ub-dot { width: 9px; height: 9px; border-radius: 50%; flex: none; }
.ub-dot-bal { background: #6366f1; }
.ub-dot-man { background: #334155; }

.ub-share-chart { height: 150px; }

/* полоска соотношения в таблице */
.ub-split {
  display: flex; height: 8px; border-radius: 4px; overflow: hidden;
  background: rgba(120, 120, 140, .12);
}
.ub-split > span { display: block; height: 100%; }
.ub-split-bal { background: #6366f1; }
.ub-split-man { background: #334155; }

/* значок подсказки */
.ub-help {
  display: inline-flex; align-items: center; justify-content: center;
  width: 15px; height: 15px; margin-left: 6px;
  border-radius: 50%; font-size: 10px; font-weight: 700;
  background: rgba(120, 120, 140, .2); color: var(--muted, #8b8fa3);
  cursor: help; vertical-align: middle;
}
.ub-help:hover { background: var(--primary, #6366f1); color: #fff; }
/* ===== Аналитика балансировки v2: под-навигация, таблица нод, тепловая матрица ===== */

/* под-навигация внутри балансировки */
.ub-subnav { display:flex; gap:6px; margin-bottom:14px; flex-wrap:wrap; }
.ub-subnav-btn { display:inline-flex; align-items:center; gap:7px; padding:9px 16px;
  border:1px solid var(--border); background:var(--panel); color:var(--muted);
  border-radius:10px; cursor:pointer; font-size:13.5px; font-weight:500; transition:all .15s; }
.ub-subnav-btn:hover { color:var(--text); border-color:#3a4a63; background:var(--panel-2); }
.ub-subnav-btn.on { color:#fff; background:linear-gradient(135deg,#6366f1,#7c3aed);
  border-color:#6366f1; box-shadow:0 3px 12px rgba(99,102,241,.35); }
.ub-subnav-ic { font-size:15px; opacity:.9; }

/* SVG-флаг */
.ub-flag { width:21px; height:15px; border-radius:3px; object-fit:cover; vertical-align:middle;
  box-shadow:0 0 0 1px rgba(255,255,255,.08); flex:0 0 auto; }
.ub-flag-x { display:inline-block; width:21px; height:15px; border-radius:3px; background:var(--bg-soft); }

/* панель инструментов + поиск */
.ub-toolbar { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:10px; }
.ub-search { flex:1; min-width:180px; max-width:320px; padding:9px 14px; border-radius:10px;
  border:1px solid var(--border); background:var(--bg-soft); color:var(--text); font-size:13.5px; outline:none; transition:border-color .15s; }
.ub-search:focus { border-color:#6366f1; }

/* чипы фильтров */
.ub-chips { display:flex; gap:7px; flex-wrap:wrap; margin-bottom:12px; }
.ub-chip { padding:6px 13px; border-radius:20px; border:1px solid var(--border);
  background:var(--panel); color:var(--muted); cursor:pointer; font-size:12.5px; transition:all .15s; }
.ub-chip:hover { color:var(--text); border-color:#3a4a63; }
.ub-chip.on { background:rgba(99,102,241,.18); color:#c7d2fe; border-color:#6366f1; }

/* таблица нод */
.ub-natable td, .ub-natable th { padding:9px 10px; }
.ub-natable tbody tr { transition:background .12s; cursor:pointer; }
.ub-natable tbody tr:hover { background:rgba(99,102,241,.07); }
.ub-narow.ub-sel { background:rgba(99,102,241,.13); box-shadow:inset 3px 0 0 #6366f1; }
.ub-chk-cell { width:34px; text-align:center; }
.ub-chk { display:inline-flex; align-items:center; justify-content:center; width:19px; height:19px;
  border-radius:6px; border:1.5px solid var(--border); color:#fff; font-size:12px; transition:all .15s; }
.ub-narow:hover .ub-chk { border-color:#6366f1; }
.ub-chk.on { background:#6366f1; border-color:#6366f1; }
.ub-namecell { display:flex; align-items:center; gap:8px; min-width:170px; }
.ub-nm { font-weight:500; color:var(--text); white-space:nowrap; }

/* цветной балл-пилюля */
.ub-cost { display:inline-block; min-width:44px; padding:3px 9px; border-radius:7px;
  font-weight:700; font-variant-numeric:tabular-nums; font-size:13px; }
.ub-c-good { background:rgba(34,197,94,.15); color:#4ade80; }
.ub-c-mid  { background:rgba(245,158,11,.15); color:#fbbf24; }
.ub-c-high { background:rgba(249,115,22,.18); color:#fb923c; }
.ub-c-bad  { background:rgba(239,68,68,.18); color:#f87171; }

/* пул-бейдж */
.ub-pool { font-size:10px; font-weight:700; padding:2px 6px; border-radius:5px; letter-spacing:.4px; }
.ub-pool-UNIALL { background:rgba(99,102,241,.18); color:#a5b4fc; }
.ub-pool-UNIAI  { background:rgba(34,197,94,.16); color:#4ade80; }
.ub-pool-UNIYT  { background:rgba(239,68,68,.16); color:#f87171; }
.ub-pool-UNITG  { background:rgba(6,182,212,.16); color:#22d3ee; }
.ub-pool-UNIIG  { background:rgba(236,72,153,.16); color:#f472b6; }

.ubctl-autopilots{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:14px}
.ubctl-auto{border:1px solid rgba(148,163,184,.18);border-radius:18px;padding:18px;background:linear-gradient(145deg,rgba(15,23,42,.88),rgba(15,23,42,.55))}
.ubctl-auto.telegram{box-shadow:inset 3px 0 #22d3ee}.ubctl-auto.instagram{box-shadow:inset 3px 0 #ec4899}
.ubctl-auto-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.ubctl-auto-head span{font-size:10px;letter-spacing:.16em;color:#94a3b8}.ubctl-auto-head h4{font-size:18px;margin:4px 0 0}
.ubctl-auto-state{font-size:11px;padding:5px 9px;border-radius:999px;background:rgba(34,197,94,.13);color:#86efac}.ubctl-auto-state.bad{background:rgba(239,68,68,.13);color:#fca5a5}
.ubctl-auto>p{min-height:38px;margin:14px 0;color:#cbd5e1;font-size:13px;line-height:1.45}
.ubctl-auto-meta,.ubctl-auto-schedule{display:flex;flex-wrap:wrap;gap:8px}.ubctl-auto-meta span,.ubctl-auto-schedule span{padding:7px 9px;border-radius:9px;background:rgba(148,163,184,.08);font-size:11px;color:#94a3b8}.ubctl-auto-meta b,.ubctl-auto-schedule b{color:#e2e8f0}
.ubctl-auto-schedule{margin-top:8px}.ubctl-auto-rank{margin-top:14px;display:grid;gap:6px}.ubctl-auto-rank>div{display:grid;grid-template-columns:24px minmax(0,1fr) auto;column-gap:8px;align-items:center;padding:8px 9px;border-radius:10px;background:rgba(2,6,23,.28)}
.ubctl-auto-rank>div.current{outline:1px solid rgba(34,197,94,.26)}.ubctl-auto-rank strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ubctl-auto-rank small{grid-column:2;color:#94a3b8;font-size:10px}.ubctl-auto-rank>div>b{grid-column:3;grid-row:1/3;font-size:14px}.ubctl-auto-empty{color:#94a3b8;font-size:12px}
@media(max-width:720px){.ubctl-autopilots{grid-template-columns:1fr}.ubctl-auto{padding:14px}.ubctl-auto>p{min-height:0}}
.ub-pool-UNITT  { background:rgba(245,158,11,.16); color:#fbbf24; }

/* тренд-стрелка */
.ub-tr { font-weight:600; font-size:12.5px; font-variant-numeric:tabular-nums; }
.ub-tr-down { color:#4ade80; }
.ub-tr-up   { color:#f87171; }
.ub-tr-flat { color:var(--muted); }

/* полоска загрузки канала */
.ub-load { display:inline-block; width:52px; height:6px; border-radius:4px; background:var(--bg-soft);
  overflow:hidden; vertical-align:middle; margin-right:6px; }
.ub-load-fill { display:block; height:100%; border-radius:4px; }
.ub-load-fill.ub-ok { background:#22c55e; } .ub-load-fill.ub-warn { background:#f59e0b; } .ub-load-fill.ub-bad { background:#ef4444; }
.ub-load-txt { font-size:11.5px; font-variant-numeric:tabular-nums; }

/* сортируемые заголовки */
.ub-sortable { cursor:pointer; user-select:none; white-space:nowrap; transition:color .12s; }
.ub-sortable:hover { color:var(--text); }
.ub-sorted { color:#a5b4fc; } .ub-caret { font-size:9px; }

.ub-cmp { animation:ubFade .2s ease; }
@keyframes ubFade { from { opacity:0; transform:translateY(-4px); } to { opacity:1; transform:none; } }

/* ===== тепловая матрица доступности ===== */
.ub-heatmap { border-collapse:separate; border-spacing:3px; }
.ub-heatmap th, .ub-heatmap td { padding:0; }
.ub-hm-node { text-align:left !important; padding:5px 10px 5px 4px !important; min-width:150px; }
.ub-hm-node .ub-namecell, .ub-hm-node { display:flex; align-items:center; gap:7px; }
.ub-hm-svc { font-size:11px; color:var(--muted); font-weight:600; text-align:center; padding:4px 2px !important;
  white-space:nowrap; }
.ub-hm-svc span { display:inline-block; }
.ub-hm-cell { width:38px; height:30px; text-align:center; border-radius:6px; font-size:12px; font-weight:700;
  color:rgba(255,255,255,.85); cursor:default; transition:transform .1s, box-shadow .1s; }
.ub-hm-cell:hover { transform:scale(1.18); box-shadow:0 3px 10px rgba(0,0,0,.4); position:relative; z-index:2; }
.ub-cell-ok   { background:rgba(34,197,94,.85); }
.ub-cell-slow { background:rgba(245,158,11,.9); }
.ub-cell-bad  { background:rgba(239,68,68,.92); }
.ub-cell-na   { background:var(--bg-soft); color:var(--muted); }

/* легенда */
.ub-legend { display:flex; align-items:center; gap:6px; font-size:12px; color:var(--muted); }
.ub-lg { display:inline-block; width:13px; height:13px; border-radius:4px; margin-left:8px; }
.ub-lg.ub-cell-ok { background:rgba(34,197,94,.85); } .ub-lg.ub-cell-slow { background:rgba(245,158,11,.9); }
.ub-lg.ub-cell-bad { background:rgba(239,68,68,.92); }

/* тайл-акценты */
.us-tile-val.ub-ok { color:#4ade80; } .us-tile-val.ub-bad { color:#f87171; } .us-tile-val.ub-warn { color:#fbbf24; }
/* ===== Рентген сервера: модалка ===== */
.ub-nm-link { cursor:pointer; border-bottom:1px dashed transparent; transition:border-color .12s,color .12s; }
.ub-nm-link:hover { color:#a5b4fc; border-bottom-color:#6366f1; }
.ub-natable .ub-namecell { cursor:default; }

.ub-modal-ov { position:fixed; inset:0; background:rgba(4,7,12,.72); backdrop-filter:blur(3px);
  display:flex; align-items:flex-start; justify-content:center; z-index:9999; padding:28px 16px; overflow:auto;
  animation:ubOvIn .15s ease; }
@keyframes ubOvIn { from { opacity:0; } to { opacity:1; } }
.ub-modal { width:100%; max-width:940px; background:var(--panel); border:1px solid var(--border);
  border-radius:16px; box-shadow:0 24px 70px rgba(0,0,0,.55); overflow:hidden; animation:ubCardIn .2s ease; }
@keyframes ubCardIn { from { opacity:0; transform:translateY(12px) scale(.98); } to { opacity:1; transform:none; } }
.ub-card { padding:20px 22px 22px; }

.ub-card-head { display:flex; align-items:center; gap:14px; position:relative; padding-right:40px; }
.ub-card-title { display:flex; align-items:center; gap:12px; flex:1; min-width:0; }
.ub-card-title .ub-flag { width:34px; height:24px; }
.ub-card-name { font-size:20px; font-weight:700; color:var(--text); }
.ub-card-sub { font-size:12px; color:var(--muted); margin-top:2px; }
.ub-card-close { position:absolute; top:-4px; right:-6px; width:32px; height:32px; border-radius:9px;
  border:1px solid var(--border); background:var(--panel-2); color:var(--muted); cursor:pointer; font-size:15px; transition:all .15s; }
.ub-card-close:hover { color:#fff; background:var(--red); border-color:var(--red); }

/* кольцо здоровья */
.ub-score { position:relative; width:78px; height:78px; border-radius:50%; flex:0 0 auto;
  background:conic-gradient(var(--sc-color,#6366f1) calc(var(--p,0)*1%), var(--bg-soft) 0);
  display:flex; flex-direction:column; align-items:center; justify-content:center; }
.ub-score::before { content:''; position:absolute; inset:7px; border-radius:50%; background:var(--panel); }
.ub-score span { position:relative; font-size:24px; font-weight:800; color:var(--text); line-height:1; }
.ub-score small { position:relative; font-size:9px; color:var(--muted); margin-top:2px; }
.ub-sc-good { --sc-color:#22c55e; } .ub-sc-mid { --sc-color:#f59e0b; } .ub-sc-bad { --sc-color:#ef4444; }

.ub-card-ranges { display:flex; gap:6px; margin:14px 0 12px; }

/* вердикты */
.ub-verds { display:flex; flex-direction:column; gap:6px; margin-bottom:16px; }
.ub-verd { display:flex; align-items:flex-start; gap:9px; padding:9px 12px; border-radius:9px; font-size:13px;
  background:var(--panel-2); border-left:3px solid var(--border); line-height:1.4; }
.ub-verd-ic { font-size:10px; margin-top:4px; flex:0 0 auto; }
.ub-verd-bad  { border-left-color:#ef4444; } .ub-verd-bad .ub-verd-ic { color:#ef4444; }
.ub-verd-warn { border-left-color:#f59e0b; } .ub-verd-warn .ub-verd-ic { color:#f59e0b; }
.ub-verd-info { border-left-color:#06b6d4; } .ub-verd-info .ub-verd-ic { color:#06b6d4; }
.ub-verd-ok   { border-left-color:#22c55e; } .ub-verd-ok .ub-verd-ic { color:#22c55e; }

/* сетка секций */
.ub-card-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
@media (max-width:680px){ .ub-card-grid { grid-template-columns:1fr; } }
.ub-sec { background:var(--panel-2); border:1px solid var(--border-soft); border-radius:11px; padding:12px 14px; margin-top:12px; }
.ub-sec-h { font-size:13px; font-weight:600; color:var(--muted); margin-bottom:10px; }
.ub-mts { display:grid; grid-template-columns:repeat(auto-fill,minmax(88px,1fr)); gap:8px; }
.ub-mt { background:var(--bg-soft); border-radius:8px; padding:8px 9px; }
.ub-mt-l { font-size:10.5px; color:var(--muted); margin-bottom:3px; white-space:nowrap; }
.ub-mt-v { font-size:15px; font-weight:700; color:var(--text); font-variant-numeric:tabular-nums; }
.ub-mt.ub-ok .ub-mt-v { color:#4ade80; } .ub-mt.ub-warn .ub-mt-v { color:#fbbf24; } .ub-mt.ub-bad .ub-mt-v { color:#f87171; }

/* спарклайны */
.ub-sparks { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-top:12px; }
@media (max-width:680px){ .ub-sparks { grid-template-columns:repeat(2,1fr); } }
.ub-spark { background:var(--bg-soft); border-radius:9px; padding:8px 10px; height:88px; }
.ub-spark-l { font-size:11px; color:var(--muted); margin-bottom:2px; }
.ub-spark canvas { max-height:60px; }

/* доступность в карточке */
.ub-card-av { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.ub-card-av .ub-hm-cell { width:auto; min-width:26px; height:24px; padding:0 6px; }
.ub-hm-lbl { font-size:11px; color:var(--muted); margin-right:10px; margin-left:-4px; }
/* ===== Balancer live control center ===== */
.ubctl-shell{display:grid;gap:16px;color:var(--text,#e8eef8)}
.ubctl-hero{position:relative;overflow:hidden;display:flex;justify-content:space-between;gap:28px;padding:24px;border:1px solid rgba(99,102,241,.28);border-radius:18px;background:radial-gradient(circle at 78% -30%,rgba(99,102,241,.28),transparent 42%),linear-gradient(135deg,rgba(11,18,32,.98),rgba(17,25,45,.92));box-shadow:0 16px 40px rgba(2,6,23,.22)}
.ubctl-hero:after{content:"";position:absolute;inset:auto -70px -110px auto;width:260px;height:260px;border:1px solid rgba(34,211,238,.13);border-radius:50%;box-shadow:0 0 0 34px rgba(34,211,238,.025),0 0 0 68px rgba(99,102,241,.02)}
.ubctl-hero h2{margin:6px 0 8px;font-size:clamp(22px,2.4vw,32px);letter-spacing:-.035em}
.ubctl-hero p{max-width:760px;margin:0;color:var(--muted,#94a3b8);font-size:13.5px;line-height:1.55}
.ubctl-eyebrow{display:flex;align-items:center;gap:8px;color:#a5b4fc;font:700 10px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.16em}
.ubctl-live-dot{width:7px;height:7px;border-radius:50%;background:#34d399;box-shadow:0 0 0 5px rgba(52,211,153,.1),0 0 14px #34d399;animation:ubctlPulse 2s ease-in-out infinite}
@keyframes ubctlPulse{50%{opacity:.45}}
.ubctl-rev{position:relative;z-index:1;flex:0 0 154px;align-self:center;padding:13px 14px;border:1px solid rgba(148,163,184,.15);border-radius:12px;background:rgba(2,6,23,.35);font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.ubctl-rev span,.ubctl-rev small{display:block;color:#64748b;font-size:9px;text-transform:uppercase;letter-spacing:.1em}.ubctl-rev strong{display:block;margin:5px 0;color:#c7d2fe;font-size:16px}
.ubctl-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.ubctl-kpis>div{min-height:92px;padding:15px 16px;border:1px solid var(--border,rgba(148,163,184,.13));border-radius:14px;background:var(--card,#101827)}
.ubctl-kpis>div.warn{border-color:rgba(245,158,11,.38);background:linear-gradient(145deg,rgba(245,158,11,.09),var(--card,#101827) 60%)}
.ubctl-kpis span,.ubctl-kpis em{display:block;color:var(--muted,#94a3b8);font-style:normal;font-size:12px}.ubctl-kpis strong{display:block;margin:8px 0 5px;font-size:25px;letter-spacing:-.035em}.ubctl-kpis strong small{color:#94a3b8;font-size:13px;font-weight:600}
.ubctl-section{overflow:hidden;border:1px solid var(--border,rgba(148,163,184,.13));border-radius:16px;background:var(--card,#101827)}
.ubctl-section-head{display:flex;align-items:end;justify-content:space-between;gap:16px;padding:20px 22px 16px}.ubctl-section-head span{display:block;margin-bottom:4px;color:#a5b4fc;font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.13em}.ubctl-section-head h3{margin:0;font-size:20px;letter-spacing:-.02em}.ubctl-section-head p{max-width:540px;margin:0;color:var(--muted,#94a3b8);font-size:13px;line-height:1.45;text-align:right}
.ubctl-services{display:grid;grid-template-columns:repeat(3,minmax(240px,1fr));gap:9px;padding:0 14px 15px}
.ubctl-service{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:11px;min-height:82px;padding:12px;border:1px solid rgba(148,163,184,.11);border-radius:13px;background:rgba(2,6,23,.22);transition:border-color .16s,transform .16s}.ubctl-service:hover{transform:translateY(-1px);border-color:rgba(129,140,248,.34)}.ubctl-service.observed{opacity:.78}
.ubctl-service-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:rgba(100,116,139,.13);color:#cbd5e1;font-size:18px;font-weight:800}.tone-cyan{background:rgba(6,182,212,.14);color:#67e8f9}.tone-violet{background:rgba(139,92,246,.15);color:#c4b5fd}.tone-red{background:rgba(239,68,68,.13);color:#fca5a5}.tone-blue{background:rgba(59,130,246,.14);color:#93c5fd}.tone-pink{background:rgba(236,72,153,.13);color:#f9a8d4}
.ubctl-service-top{display:flex;align-items:center;gap:8px}.ubctl-service-top strong{font-size:15px}.ubctl-badge{padding:4px 7px;border-radius:99px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.ubctl-badge.live{background:rgba(52,211,153,.11);color:#6ee7b7}.ubctl-badge.watch{background:rgba(148,163,184,.1);color:#94a3b8}.ubctl-service-apps,.ubctl-service-foot{margin-top:5px;color:#a7b3c7;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ubctl-service-foot{color:#8390a5}
.ubctl-service-open{min-height:36px;padding:8px 11px;border:1px solid rgba(129,140,248,.24);border-radius:8px;background:rgba(99,102,241,.08);color:#a5b4fc;font-size:12px;cursor:pointer}.ubctl-service-open:hover{background:rgba(99,102,241,.18)}
.ubctl-nodes-head{align-items:center}.ubctl-tools{display:flex;gap:8px;align-items:center}.ubctl-tools input,.ubctl-tools select,.ubctl-tools button{height:40px;border:1px solid rgba(148,163,184,.2);border-radius:10px;background:rgba(2,6,23,.3);color:inherit;font-size:13px}.ubctl-tools input{width:260px;padding:0 12px}.ubctl-tools select{padding:0 30px 0 11px}.ubctl-tools button{padding:0 13px;cursor:pointer}.ubctl-tools button:hover{border-color:#6366f1}
.ubctl-legend{display:flex;gap:18px;flex-wrap:wrap;padding:0 22px 14px;color:#94a3b8;font-size:12px}.ubctl-legend b{color:#e2e8f0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.ubctl-table-wrap{overflow:auto;border-top:1px solid rgba(148,163,184,.11);border-bottom:1px solid rgba(148,163,184,.11)}.ubctl-table{width:100%;min-width:1240px;border-collapse:collapse;font-size:13px}.ubctl-table th{position:sticky;top:0;z-index:2;padding:13px 11px;background:#0b1220;color:#94a3b8;font-size:11px;text-align:left;text-transform:uppercase;letter-spacing:.055em}.ubctl-table td{padding:12px 11px;border-top:1px solid rgba(148,163,184,.08);vertical-align:middle}.ubctl-table tbody tr:hover{background:rgba(99,102,241,.055)}.ubctl-table .num{text-align:right;font-variant-numeric:tabular-nums}.ubctl-table .num>small{display:block;color:#8390a5;font-size:11px}.ubctl-node-col{min-width:340px}.ubctl-node{display:flex;align-items:flex-start;gap:12px}.ubctl-node-copy{min-width:0}.ubctl-host-line{display:flex;align-items:center;gap:7px;min-width:0}.ubctl-node strong{display:block;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;line-height:1.25}.ubctl-node-name{display:block;max-width:290px;margin-top:5px;color:#94a3b8;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ubctl-flag{display:block;flex:0 0 26px;padding-top:2px}.ubctl-flag-img{display:block;width:25px;height:18px;object-fit:cover;border-radius:3px;box-shadow:0 0 0 1px rgba(255,255,255,.12)}.ubctl-host-more{position:relative;display:inline-flex;align-items:center;padding:3px 6px;border-radius:99px;background:rgba(99,102,241,.12);color:#a5b4fc;font-size:11px;cursor:help}.ubctl-host-pop{position:absolute;left:0;top:calc(100% + 7px);z-index:20;display:none;width:max-content;max-width:380px;padding:10px 12px;border:1px solid rgba(148,163,184,.2);border-radius:10px;background:#0b1220;box-shadow:0 14px 36px rgba(0,0,0,.35);color:#cbd5e1;text-align:left}.ubctl-host-pop b,.ubctl-host-pop span{display:block}.ubctl-host-pop b{margin-bottom:6px;color:#94a3b8;font-size:10px;text-transform:uppercase}.ubctl-host-pop span{padding:3px 0;font-size:13px}.ubctl-host-more:hover .ubctl-host-pop,.ubctl-host-more:focus .ubctl-host-pop{display:block}.ubctl-ip{display:inline-flex;align-items:center;gap:8px;margin:6px 0 0;padding:0;border:0;background:transparent;color:#c7d2fe;font:600 14px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;cursor:pointer}.ubctl-ip span{color:#64748b;font:500 10px/1 sans-serif;text-transform:uppercase;letter-spacing:.04em}.ubctl-ip:hover,.ubctl-ip.copied{color:#6ee7b7}.ubctl-state{display:inline-block;padding:5px 8px;border-radius:99px;font-size:11px;font-weight:750}.ubctl-state.ok{background:rgba(52,211,153,.1);color:#6ee7b7}.ubctl-state.warn{background:rgba(245,158,11,.1);color:#fbbf24}.ubctl-state.bad{background:rgba(239,68,68,.1);color:#fca5a5}.ubctl-reason{display:block;max-width:180px;margin-top:5px;color:#8390a5;font-size:10px;line-height:1.35}.ubctl-cap strong,.ubctl-cap small,.ubctl-capacity{display:block}.ubctl-cap strong{font-size:14px}.ubctl-cap small{margin-top:2px;color:#94a3b8;font-size:10px}.ubctl-capacity{margin-top:5px;font-size:10px}.ubctl-capacity.known{color:#6ee7b7}.ubctl-capacity.estimated{color:#fbbf24}.ubctl-role-head,.ubctl-role-cell{text-align:center!important;width:54px}.ubctl-toggle{display:grid;place-items:center;width:36px;height:36px;margin:auto;border:1px solid rgba(148,163,184,.18);border-radius:9px;background:rgba(2,6,23,.25);color:#94a3b8;cursor:pointer;transition:.15s}.ubctl-toggle:hover:not(:disabled){border-color:#818cf8;color:#c7d2fe;transform:translateY(-1px)}.ubctl-toggle.on{border-color:rgba(52,211,153,.3);background:rgba(52,211,153,.11);color:#6ee7b7}.ubctl-toggle:disabled{opacity:.32;cursor:not-allowed}.ubctl-toggle.busy{opacity:.7}.ubctl-hint{padding:14px 20px;color:#94a3b8;font-size:12px;line-height:1.5}.ubctl-empty{padding:28px;color:#94a3b8;text-align:center;font-size:13px}
.ubctl-journal{padding:0 14px 14px}.ubctl-event{display:grid;grid-template-columns:9px 1fr auto;align-items:center;gap:10px;padding:10px 4px;border-top:1px solid rgba(148,163,184,.075)}.ubctl-event-dot{width:7px;height:7px;border-radius:50%;background:#64748b}.ubctl-event-dot.applied{background:#34d399}.ubctl-event-dot.failed{background:#f87171}.ubctl-event-dot.reverted{background:#a78bfa}.ubctl-event strong{display:block;font-size:10.5px}.ubctl-event small,.ubctl-event em{display:block;margin-top:3px;color:#64748b;font-size:8.5px;font-style:normal}.ubctl-event em{color:#fca5a5}.ubctl-event button{padding:5px 8px;border:1px solid rgba(148,163,184,.15);border-radius:7px;background:transparent;color:#94a3b8;font-size:8.5px;cursor:pointer}.ubctl-event button:hover{border-color:#a78bfa;color:#c4b5fd}.ubctl-event-status{color:#64748b;font-size:8.5px}.ubctl-loading{display:flex;align-items:center;justify-content:center;gap:10px;min-height:280px;color:#94a3b8}.ubctl-loading span{width:18px;height:18px;border:2px solid rgba(148,163,184,.2);border-top-color:#818cf8;border-radius:50%;animation:ubctlSpin .8s linear infinite}@keyframes ubctlSpin{to{transform:rotate(360deg)}}
.ubctl-pool-strip{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:9px;padding:0 14px 15px}.ubctl-pool-card{display:grid;grid-template-columns:42px 1fr 16px;align-items:center;gap:10px;min-height:76px;padding:12px;border:1px solid rgba(148,163,184,.12);border-radius:13px;background:rgba(2,6,23,.22);color:inherit;text-align:left;cursor:pointer;transition:.16s}.ubctl-pool-card:hover{transform:translateY(-1px);border-color:rgba(129,140,248,.4);background:rgba(99,102,241,.06)}.ubctl-pool-card.warn{border-color:rgba(245,158,11,.28);background:linear-gradient(145deg,rgba(245,158,11,.07),rgba(2,6,23,.22) 70%)}.ubctl-pool-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:11px;background:rgba(99,102,241,.12);color:#c7d2fe;font:800 11px/1 ui-monospace,SFMono-Regular,Consolas,monospace}.ubctl-pool-card.ok .ubctl-pool-mark{background:rgba(52,211,153,.1);color:#6ee7b7}.ubctl-pool-copy strong,.ubctl-pool-copy small{display:block}.ubctl-pool-copy strong{font-size:14px}.ubctl-pool-copy small{margin-top:5px;color:#94a3b8;font-size:11px;line-height:1.35}.ubctl-pool-arrow{color:#94a3b8;font-size:16px}.ubctl-hint strong{color:#e2e8f0}
@media(max-width:1100px){.ubctl-kpis{grid-template-columns:repeat(2,1fr)}.ubctl-services{grid-template-columns:repeat(2,minmax(240px,1fr))}.ubctl-nodes-head{align-items:flex-start;flex-direction:column}.ubctl-tools{width:100%}.ubctl-tools input{flex:1}}
@media(max-width:1250px){.ubctl-pool-strip{grid-template-columns:repeat(3,minmax(180px,1fr))}}
@media(max-width:700px){.ubctl-hero{display:block;padding:18px}.ubctl-rev{margin-top:14px}.ubctl-kpis{grid-template-columns:1fr 1fr}.ubctl-services,.ubctl-pool-strip{grid-template-columns:1fr}.ubctl-section-head{align-items:flex-start;flex-direction:column}.ubctl-section-head p{text-align:left}.ubctl-tools{flex-wrap:wrap}.ubctl-tools input{width:100%;flex-basis:100%}.ubctl-service{grid-template-columns:38px 1fr}.ubctl-service-open{grid-column:2;justify-self:start}.ubctl-kpis strong{font-size:19px}}

/* v3: плотнее используем место и держим рабочий текст читаемым на desktop. */
.ubctl-hero p,.ubctl-section-head p{font-size:15px}
.ubctl-eyebrow,.ubctl-rev span,.ubctl-rev small{font-size:12px}
.ubctl-service-apps,.ubctl-service-foot,.ubctl-legend,.ubctl-hint{font-size:14px}
.ubctl-badge,.ubctl-event small,.ubctl-event em,.ubctl-event button,.ubctl-event-status{font-size:12px}
.ubctl-tools input,.ubctl-tools select,.ubctl-tools button{height:44px;font-size:14px}
.ubctl-table{font-size:14px}.ubctl-table th{font-size:12px}.ubctl-table td{padding-top:14px;padding-bottom:14px}
.ubctl-node strong{font-size:16px}.ubctl-node-name{font-size:13px}.ubctl-ip{font-size:15px}.ubctl-ip span{font-size:11px}
.ubctl-state,.ubctl-reason,.ubctl-cap small,.ubctl-capacity,.ubctl-table .num>small{font-size:12px}
.ubctl-cap strong{font-size:15px}.ubctl-host-more{font-size:12px}.ubctl-host-pop b{font-size:11px}.ubctl-host-pop span{font-size:14px}
.ubctl-toggle{width:40px;height:40px;font-size:16px}.ubctl-event strong{font-size:13px}
/* Telegram pool autopilot */
.ubtg-autopilot{overflow:hidden}.ubtg-run{display:flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid rgba(148,163,184,.18);border-radius:12px;background:rgba(15,23,42,.42);min-width:190px}.ubtg-run>span{width:10px;height:10px;border-radius:50%;background:#94a3b8;box-shadow:0 0 0 5px rgba(148,163,184,.1)}.ubtg-run.healthy>span{background:#22c55e;box-shadow:0 0 0 5px rgba(34,197,94,.12)}.ubtg-run.applied>span{background:#38bdf8;box-shadow:0 0 0 5px rgba(56,189,248,.13)}.ubtg-run.failed>span{background:#ef4444;box-shadow:0 0 0 5px rgba(239,68,68,.13)}.ubtg-run div{display:flex;flex-direction:column}.ubtg-run strong{font-size:13px}.ubtg-run small{color:var(--muted,#94a3b8);font-size:11px;margin-top:2px}.ubtg-grid{display:grid;grid-template-columns:minmax(290px,.8fr) minmax(520px,1.2fr);gap:18px}.ubtg-explain{padding:18px;border:1px solid rgba(148,163,184,.15);border-radius:16px;background:linear-gradient(145deg,rgba(14,165,233,.07),rgba(15,23,42,.28))}.ubtg-explain>p{margin:0 0 15px;color:#cbd5e1;line-height:1.55;font-size:13px}.ubtg-schedule{display:grid;gap:8px}.ubtg-schedule>div{display:grid;grid-template-columns:78px 1fr;gap:10px;align-items:center;padding:10px 12px;border-radius:10px;background:rgba(15,23,42,.42)}.ubtg-schedule strong{color:#7dd3fc;font-variant-numeric:tabular-nums;font-size:13px}.ubtg-schedule span{color:#cbd5e1;font-size:12px;line-height:1.35}.ubtg-decision{display:flex;flex-direction:column;gap:4px;margin-top:12px;padding:12px;border-left:3px solid #38bdf8;background:rgba(56,189,248,.07);border-radius:0 10px 10px 0}.ubtg-decision>span,.ubtg-quiet>small{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#94a3b8}.ubtg-decision strong{font-size:13px;line-height:1.4}.ubtg-decision small{color:#fca5a5}.ubtg-coverage,.ubtg-quiet{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.ubtg-coverage span,.ubtg-quiet span{padding:6px 9px;border-radius:999px;background:rgba(148,163,184,.1);color:#cbd5e1;font-size:11px}.ubtg-quiet>small{width:100%}.ubtg-ranking{min-width:0}.ubtg-ranking>div:first-child{display:flex;justify-content:space-between;gap:12px;align-items:end;margin:0 2px 9px}.ubtg-ranking>div:first-child strong{font-size:14px}.ubtg-ranking>div:first-child small{font-size:11px;color:#94a3b8}.ubtg-table-wrap{overflow:auto;max-height:390px;border:1px solid rgba(148,163,184,.15);border-radius:14px}.ubtg-table-wrap table{width:100%;border-collapse:collapse;min-width:650px;font-size:12px}.ubtg-table-wrap th{position:sticky;top:0;z-index:1;text-align:left;padding:10px 9px;background:#101a2d;color:#94a3b8;font-size:10px;text-transform:uppercase;letter-spacing:.06em}.ubtg-table-wrap td{padding:9px;border-top:1px solid rgba(148,163,184,.1);vertical-align:middle}.ubtg-table-wrap .num{text-align:right;font-variant-numeric:tabular-nums}.ubtg-node{display:flex;align-items:center;gap:8px;min-width:190px}.ubtg-node>span{display:flex;width:24px}.ubtg-node .ubctl-flag-img{width:24px}.ubtg-node div{display:flex;flex-direction:column}.ubtg-node strong{font-size:12px;white-space:nowrap}.ubtg-node small{color:#94a3b8;font-variant-numeric:tabular-nums}.ubtg-state{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:10px;font-weight:700;white-space:nowrap}.ubtg-state.current{color:#7dd3fc;background:rgba(14,165,233,.13)}.ubtg-state.eligible{color:#86efac;background:rgba(34,197,94,.12)}.ubtg-state.rejected{color:#fda4af;background:rgba(244,63,94,.1)}.ubtg-why{display:block;max-width:220px;margin-top:4px;color:#94a3b8;line-height:1.25}
@media(max-width:1100px){.ubtg-grid{grid-template-columns:1fr}.ubtg-run{min-width:0}.ubtg-table-wrap{max-height:none}}
@media(max-width:640px){.ubtg-autopilot .ubctl-section-head{align-items:flex-start}.ubtg-run{width:100%}.ubtg-schedule>div{grid-template-columns:68px 1fr}.ubtg-explain{padding:13px}}
