/* ============================================================================
   NickDrops — hub-stats.css (v12.9.0)
   Экраны «Меню» (хаб), «Статистика», «Ещё» + общие data-row/empty-note.
   Правила: только var(--*) темы (красная/тёмная/белая работают сами),
   анимации только transform/opacity (60fps, дёшево на слабых телефонах),
   prefers-reduced-motion уважается.
   ============================================================================ */

/* ═══ МЕНЮ (хаб) ═══ */
.hub-hero h1{margin-bottom:10px}
.hub-hero p{margin-bottom:22px}

.hub-quick{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:34px}
.hub-action{display:flex;align-items:center;gap:13px;min-height:76px;padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--text);text-align:left;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
/* v12.9.1: обе быстрые кнопки в одном спокойном стиле (владелец: яркая
   выбивалась) — акцент только у иконки */
body:not(.liquid-off) .hub-action{background:color-mix(in srgb,var(--surface) 86%,transparent);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2)}
.hub-action:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--blue) 40%,var(--line));box-shadow:var(--shadow)}
.hub-action:active{transform:translateY(0) scale(.99)}
.hub-action i{flex:0 0 auto;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--blue-soft);color:var(--blue)}
.hub-action i svg{width:21px;height:21px}
.hub-action span{display:grid;min-width:0}
.hub-action b{font-size:15px;letter-spacing:-.02em;overflow-wrap:anywhere}
.hub-action small{color:var(--muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:400px){
  .hub-action small{white-space:normal;line-height:1.3;overflow:visible;text-overflow:clip}
}

.hub-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-bottom:34px}
.hub-card{position:relative;display:grid;align-content:start;gap:3px;padding:16px 15px;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--text);text-align:left;overflow:hidden;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.hub-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--blue) 38%,var(--line));box-shadow:var(--shadow)}
.hub-card:active{transform:translateY(0) scale(.985)}
.hub-card i{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;margin-bottom:9px;color:#fff}
.hub-card i svg{width:19px;height:19px}
.hub-card b{font-size:14.5px;letter-spacing:-.02em}
.hub-card small{color:var(--muted);font-size:11px;line-height:1.35}
.hub-card em{position:absolute;top:14px;right:14px;font-style:normal;color:var(--subtle);font-weight:700;transition:transform .18s ease,right .18s ease}
.hub-card:hover em{right:11px;transform:translateX(2px)}
/* фирменные подложки иконок: чёрно-бело-красная гамма + мягкие различители */
.hub-card i.red{background:linear-gradient(135deg,#ff4a43,#c22620)}
.hub-card i.pink{background:linear-gradient(135deg,#ff6b81,#d84368)}
.hub-card i.gold{background:linear-gradient(135deg,#ffb02e,#e07b00)}
.hub-card i.violet{background:linear-gradient(135deg,#9a5cff,#6f2fd1)}
.hub-card i.cyan{background:linear-gradient(135deg,#2bb3d6,#0e7fa3)}
.hub-card i.blueish{background:linear-gradient(135deg,#4d8dff,#2b5fd0)}
.hub-card i.greenish{background:linear-gradient(135deg,#31c07a,#1c8a55)}
.hub-card i.gray{background:linear-gradient(135deg,#3a3a38,#141413)}

/* ═══ v12.9.2: карточка результата — теги-чипы + широкая «Занять» ═══ */
.res-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px;align-items:center}
.res-tag{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;background:var(--surface-soft);color:var(--muted);font-size:10.5px;font-weight:700;line-height:1.3}
.result-actions .claim-main{flex:2 1 130px;min-height:40px}
.result-actions .monitor-btn:not(.compare-btn){min-width:38px;padding:0 10px}
@media(max-width:700px){
  .result-actions .monitor-btn{min-width:44px}
}
/* аватар-фото (реальное фото TG) поверх букв */
.has-photo{color:transparent!important;background-color:var(--surface-soft)}
/* профиль-строка в «Ещё» */
.more-list .more-profile-row span b{font-size:15px}
.more-list .more-profile-row i.mini-avatar{width:34px;height:34px;border-radius:9px;font-size:13px}

/* ═══ v12.9.2: осциллограмма ядра в карточке статуса ═══ */
.core-wave{width:100%;max-width:190px;height:44px;margin-top:10px;display:block;opacity:.95}

.pulse-strip{display:flex;align-items:center;gap:10px;min-height:52px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface);font-size:13px;color:var(--muted)}
.pulse-strip b{color:var(--text)}

/* ═══ v12.9.1: быстрые настройки на хабе — стеклянная 4-плитка ═══ */
.quick-settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:34px}
.quick-settings button{min-height:54px;padding:10px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--text);text-align:left;transition:transform .16s ease,border-color .16s ease}
.quick-settings button:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--blue) 35%,var(--line))}
.quick-settings button:active{transform:scale(.98)}
body:not(.liquid-off) .quick-settings button{background:color-mix(in srgb,var(--surface) 86%,transparent);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2)}
.quick-settings span{display:flex;align-items:center;gap:9px;font-size:13.5px;font-weight:700}
.quick-settings i{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:var(--surface-soft);color:var(--muted)}
.quick-settings i svg{width:15px;height:15px}
.quick-settings b{margin-left:auto;color:var(--muted);font-size:12px;font-weight:750}

/* ═══ v12.9.1: Apple-glass доливка — глубже blur, блик сверху, тонкая светлая кромка.
   Только transform/opacity в анимациях; при liquid-off всё вырождается в плоское. ═══ */
body:not(.liquid-off) .composer-card,
body:not(.liquid-off) .quick-check-card,
body:not(.liquid-off) .chart-card,
body:not(.liquid-off) .pulse-strip,
body:not(.liquid-off) .bot-pulse article,
body:not(.liquid-off) .pulse-status,
body:not(.liquid-off) .hub-action,
body:not(.liquid-off) .hub-card{
  position:relative;
  background:color-mix(in srgb,var(--surface) 88%,transparent);
  backdrop-filter:blur(20px) saturate(1.2);
  -webkit-backdrop-filter:blur(20px) saturate(1.2);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08), var(--shadow);
}
body:not(.liquid-off) .hub-card::before,
body:not(.liquid-off) .hub-action::before{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(160deg,rgba(255,255,255,.09),rgba(255,255,255,0) 42%);
}
@media (prefers-reduced-motion:reduce){
  body:not(.liquid-off) .hub-action,body:not(.liquid-off) .quick-settings button{transition:none}
}
/* sticky restore: glass делал relative и ломал 100px отступ */
@media(min-width:981px){
  .quick-check-card{position:sticky!important;top:100px!important;margin-top:20px!important}
  body:not(.liquid-off) .quick-check-card{position:sticky!important;top:100px!important}
}

/* пульсирующая точка статуса (transform+opacity only) */
.pulse-dot{position:relative;flex:0 0 auto;width:9px;height:9px;border-radius:50%;background:var(--green)}
.pulse-dot::after{content:"";position:absolute;inset:-5px;border-radius:50%;border:1.5px solid currentColor;color:inherit;animation:pulseRing 2.2s ease-out infinite}
.pulse-dot{color:var(--green)}@keyframes pulseRing{0%{transform:scale(.5);opacity:.85}80%,100%{transform:scale(1.25);opacity:0}}
.degraded .pulse-dot,.pulse-status.degraded .pulse-dot{background:var(--orange);color:var(--orange)}

/* ═══ СТАТИСТИКА ═══ */
.stat-personal article b{font-size:clamp(26px,4vw,36px);background:linear-gradient(135deg,var(--text),color-mix(in srgb,var(--blue) 65%,var(--text)));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}

.chart-card{padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--surface);margin-bottom:34px}
.chart-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px}
.chart-head b{font-size:15px;letter-spacing:-.02em}
.bars{display:flex;align-items:flex-end;gap:3px;height:120px;overflow:hidden;padding:0 2px}
.bars .bar{position:relative;flex:1;min-width:0;height:100%;display:flex;align-items:flex-end;justify-content:center;border-radius:6px 6px 0 0;background:transparent}
.bars .bar i{display:block;width:100%;max-width:22px;border-radius:6px 6px 2px 2px;background:color-mix(in srgb,var(--blue) 30%,var(--surface-soft));min-height:4px;transform-origin:bottom;animation:barGrow .55s cubic-bezier(.2,.7,.3,1) backwards}
.bars .bar:nth-child(-n+7) i{animation-delay:.03s}
.bars .bar:nth-child(n+8):nth-child(-n+11) i{animation-delay:.09s}
.bars .bar:nth-child(n+12) i{animation-delay:.15s}
.bars .bar.today i{background:linear-gradient(180deg,var(--blue),color-mix(in srgb,var(--blue) 62%,#000))}
.bars .bar:hover i,.bars .bar:focus-visible i{background:color-mix(in srgb,var(--blue) 55%,var(--surface-soft))}
.bars-scale{margin-top:8px}
@keyframes barGrow{from{transform:scaleY(.04);opacity:.4}to{transform:scaleY(1);opacity:1}}

.bot-pulse{display:grid;grid-template-columns:200px 1fr;gap:12px;margin-bottom:34px}
.pulse-status{display:grid;align-content:start;gap:6px;padding:18px 16px;border:1px solid color-mix(in srgb,var(--green) 28%,var(--line));border-radius:16px;background:color-mix(in srgb,var(--green) 7%,var(--surface))}
.pulse-status.degraded{border-color:color-mix(in srgb,var(--orange) 40%,var(--line));background:color-mix(in srgb,var(--orange) 8%,var(--surface))}
.pulse-status b{display:flex;align-items:center;gap:9px;font-size:15.5px;letter-spacing:-.02em}
.pulse-status small{color:var(--muted)}
.pulse-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.pulse-metrics article{padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.pulse-metrics span{display:block;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}
.pulse-metrics b{display:block;font-size:24px;letter-spacing:-.04em;margin-bottom:9px}
.pulse-metrics small{color:var(--muted);font-size:11px}
.mini-bar{height:6px;border-radius:999px;background:var(--surface-soft);overflow:hidden;margin-bottom:7px}
.mini-bar em{display:block;height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,color-mix(in srgb,var(--green) 75%,var(--surface)),var(--green));transition:width .7s cubic-bezier(.2,.7,.3,1)}
.mini-bar.lat em{background:linear-gradient(90deg,var(--blue),color-mix(in srgb,var(--blue) 60%,#000))}

/* ═══ ЕЩЁ ═══ */
.more-list button{min-height:64px}

/* ═══ Общее: строки данных (кейсы/дайджест/находки раньше были без стилей) ═══ */
.data-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.data-row b{font-size:14px;letter-spacing:-.01em}
.data-row small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:0 1 auto;min-width:0}
.empty-note{padding:16px;color:var(--muted);font-size:13px;border:1px dashed var(--line);border-radius:12px;text-align:center}

/* ═══ Адаптив ═══ */
@media (max-width:900px){
  .bot-pulse{grid-template-columns:1fr}
  .pulse-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:560px){
  .hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pulse-metrics{grid-template-columns:1fr 1fr}
  .pulse-metrics article:last-child{grid-column:1/-1}
}
@media (prefers-reduced-motion:reduce){
  .bars .bar i{animation:none}
  .pulse-dot::after{animation:none;opacity:0}
  .hub-action,.hub-card,.mini-bar em{transition:none}
}

/* v12.9.7 fix: «Точные настройки» провал 100px — sticky top липла в mobile (relative+top100) */
@media(max-width:980px){
  .quick-check-card{position:relative!important;top:auto!important;margin-top:16px!important}
  body:not(.liquid-off) .quick-check-card{position:relative!important;top:auto!important}
  /* Поиск: убрать лишний провал когда недавние скрыты — recent 22px уже достаточно */
  .recent-block{margin-top:12px!important}
}
/* v12.9.6 fix: текст не вылезает за края (оп залазит), кривые иконки */
.hub-card, .hub-action, .pulse-strip, .quick-settings button, .result-card, .data-item, .data-row, .settings-card button {
  min-width: 0;
  overflow: hidden;
}
.hub-card b, .hub-card small, .pulse-strip, .pulse-strip span, .pulse-strip b, .quick-settings span, .result-name b, .data-item b, .data-item small, .data-row b, .data-row small, .hub-action b, .hub-action small {
  overflow-wrap: anywhere;
  word-break: break-word;
}
.hub-action span, .quick-settings span, .data-item > div, .data-row > div { min-width: 0; }
.pulse-strip { text-overflow: ellipsis; }
.pulse-strip #hubPulseText { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width:560px) {
  .pulse-strip #hubPulseText { white-space: normal; line-height: 1.35; }
}
/* иконки: ровный рендер, без размытия */
.hub-card i svg, .hub-action i svg, .quick-settings i svg, .settings-card i svg, .promo-head i svg {
  display: block;
  flex: 0 0 auto;
}
svg use { pointer-events: none; }
