/* ==========================================================================
   Орукул — дизайн-система «тёмное стекло / ирис» (редизайн 2026, Claude Design)
   Класс-компоненты (без inline-стилей). Иконки — Material Symbols (.msi,
   в vendor/fonts/fonts.css). Графики — ECharts. Токены — из макета Орукул.dc.html.
   Порядок секций: токены → сброс → фон → типографика → каркас → нав →
   топбар → моб-навигация → примитивы → утилиты → анимации → адаптив.
   Экран-специфичные правила добавляются ниже по мере сборки экранов.
   ========================================================================== */

/* ------------------------------- Токены --------------------------------- */
:root{
  color-scheme:dark;            /* нативные контролы (date/select/autofill) — тёмные */
  --bg-0:#090a0f; --bg-1:#0e1018;
  --ink-0:#f5f6f9; --ink-1:#b7bcc9; --ink-2:#868c9c; --ink-3:#747c91; /* ink-3: 3.6→4.6:1 (WCAG AA и для мелких подписей) */
  --ink-on-color:#0C1016;       /* тёмный текст на цветных заливках (winbar и т.п.) */
  --line:rgba(255,255,255,.085); --line-2:rgba(255,255,255,.16);
  --glass:rgba(18,20,28,.72); --glass-2:rgba(24,27,37,.80); --glass-3:rgba(37,41,54,.85);
  --glass-hi:rgba(255,255,255,.085);
  /* Поверхности/ховеры (белая альфа) — единая шкала вместо ручных ступеней */
  --surface-1:rgba(255,255,255,0.03); --surface-2:rgba(255,255,255,0.04);
  --surface-3:rgba(255,255,255,0.06); --hover-1:rgba(255,255,255,0.05); --hover-2:rgba(255,255,255,0.08);
  --pop-bg:rgba(20,26,37,.96);  /* фон плавающих слоёв (dd-меню/попапы/тост) */
  --accent:#6b70ee; --on-accent:#ffffff;
  --accent-strong:#5d62e3;      /* заливки ПОД БЕЛЫМ ТЕКСТОМ (кнопки/активные сегменты) — ≥4.5:1 */
  --accent-2:#6D3BFF;           /* второй фирменный (аватар/гость winbar/распределения) */
  --info:#4DA3FF;
  --accent-ink:color-mix(in oklab, var(--accent) 44%, #eef0ff);
  --accent-glow:color-mix(in srgb, var(--accent) 50%, transparent);
  --accent-weak:color-mix(in srgb, var(--accent) 15%, transparent);
  --accent-line:color-mix(in srgb, var(--accent) 44%, transparent);
  --pos:#34c27b; --neg:#f25563; --warn:#f2b03c; --push:#8b91a3; --gold:#e3b341;
  --sport:#6b70ee;              /* перекрашивается под вид спорта на странице события */
  --blur:20px; --r:16px; --r-sm:11px; --r-lg:22px;
  --gap:14px; --card-pad:18px;
  /* Шкала отступов — для НОВОГО кода (база 4px + «половинки» плотных мест). Существующие
     пиксель-подогнанные к макету значения задним числом не переписываются (осознанно, §48). */
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:20px; --sp-6:24px; --sp-8:32px;
  --sp-1h:6px; --sp-2h:10px; --sp-3h:14px; --sp-4h:18px;
  --shadow-card:0 12px 34px -18px rgba(0,0,0,.65);
  --shadow-pop:0 26px 60px -20px rgba(0,0,0,.85);
  --shadow-modal:0 40px 120px -40px rgba(0,0,0,.85);
  /* Типографическая шкала (только ТЕКСТ; иконки .msi — свои размеры). Дробные и
     внесистемные размеры прибиты к шагам при миграции 2026-07 (CLAUDE.md §48). */
  --fs-10:10px; --fs-11:11px; --fs-12:12px; --fs-13:13px; --fs-14:14px; --fs-15:15px; --fs-16:16px; --fs-17:17px; --fs-18:18px; --fs-20:20px; --fs-22:22px; --fs-24:24px; --fs-26:26px; --fs-30:30px; --fs-34:34px;
  --font:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;
  --mono:'JetBrains Mono',ui-monospace,'SF Mono',monospace;
  --ease:cubic-bezier(.32,.72,0,1); --ease-out:cubic-bezier(.22,1,.36,1);
  --dur-1:.14s; --dur-2:.2s; --dur-3:.3s; --dur-4:.5s; --dur-5:.8s;
  /* Слои: топбар < поп-меню < таб-бар < drawer < dd-меню < подсказка < тост < модалка */
  --z-topbar:30; --z-pop:40; --z-tabbar:45; --z-drawer:60; --z-dd:70; --z-tip:80; --z-toast:90; --z-modal:100;
  --rail-w:236px; --rail-w-collapsed:76px; --topbar-h:69px;
}

/* -------------------------------- Сброс --------------------------------- */
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--bg-0);color:var(--ink-0);font-family:var(--font);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:clip;
}
::selection{background:color-mix(in srgb,var(--accent) 32%,transparent);color:#fff}
input,button,select,textarea{font:inherit;color:inherit;outline:none;border:none;background:none}
input,textarea{caret-color:var(--accent)}
html{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4,p{margin:0}
ul{margin:0;padding:0;list-style:none}
img{display:block;max-width:100%}
input[type=number]{-moz-appearance:textfield}
input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
a,button,select,summary,[role="button"]{
  transition:background var(--dur-2) var(--ease),border-color var(--dur-2) var(--ease),
    color var(--dur-2) var(--ease),box-shadow var(--dur-2) var(--ease),
    transform var(--dur-1) var(--ease-out),opacity var(--dur-2) var(--ease),filter var(--dur-2) var(--ease);
}
input,textarea{transition:border-color var(--dur-2) var(--ease),background var(--dur-2) var(--ease),box-shadow var(--dur-2) var(--ease)}
button:active:not(:disabled){transform:scale(.97)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{
  outline:2px solid color-mix(in srgb,var(--accent) 75%,transparent);outline-offset:2px;
}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:rgba(255,255,255,.09);border-radius:8px;border:3px solid transparent;background-clip:padding-box}
::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--accent) 58%,rgba(255,255,255,.14));background-clip:padding-box}
::-webkit-scrollbar-corner{background:transparent}

/* Skip-link: «К содержимому» — виден только по фокусу с клавиатуры */
.skip-link{position:fixed;left:14px;top:14px;z-index:calc(var(--z-modal) + 10);padding:10px 16px;border-radius:10px;
  background:var(--accent-strong);color:var(--on-accent);font-weight:700;font-size:var(--fs-13);
  transform:translateY(-64px);opacity:0;transition:transform var(--dur-2) var(--ease),opacity var(--dur-2) var(--ease)}
.skip-link:focus-visible{transform:none;opacity:1}

/* --------------------------- Фон (за контентом) ------------------------- */
.bg-layer{position:fixed;inset:0;z-index:0;pointer-events:none}
.bg-grad{
  background:
    radial-gradient(1100px 680px at 80% -10%, color-mix(in srgb,var(--accent) 18%, transparent), transparent 58%),
    radial-gradient(820px 560px at 4% 10%, rgba(150,140,235,.08), transparent 55%),
    radial-gradient(1000px 760px at 52% 122%, color-mix(in srgb,var(--sport) 14%, transparent), transparent 60%),
    linear-gradient(180deg,var(--bg-1),var(--bg-0));
}
.bg-noise{
  inset:-8%;opacity:.16;mix-blend-mode:soft-light;animation:orwave 32s var(--ease) infinite alternate;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='900' height='900'%3E%3Cfilter id='w'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.005 0.013' numOctaves='2' seed='9' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23w)'/%3E%3C/svg%3E");
}
.bg-halo{
  inset:-15%;opacity:.7;animation:orwave 46s var(--ease) infinite alternate-reverse;
  background:
    radial-gradient(46% 38% at 28% 26%, color-mix(in srgb,var(--accent) 12%, transparent), transparent 70%),
    radial-gradient(40% 34% at 76% 72%, color-mix(in srgb,var(--accent) 8%, transparent), transparent 72%);
}
.app-z{position:relative;z-index:1}

/* ----------------------------- Типографика ------------------------------ */
.t-h1{font-size:var(--fs-26);font-weight:800;letter-spacing:-.02em}
.t-h2{font-size:var(--fs-20);font-weight:700;letter-spacing:-.02em}
.t-h3{font-size:var(--fs-17);font-weight:700;letter-spacing:-.01em}
.t-sub{font-size:var(--fs-13);color:var(--ink-2)}
.t-eyebrow{font-size:var(--fs-11);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.mono{font-family:var(--mono)}
.muted{color:var(--ink-2)} .faint{color:var(--ink-3)}
.pos{color:var(--pos)} .neg{color:var(--neg)} .warn{color:var(--warn)} .accent{color:var(--accent-ink)}

/* ------------------------------- Каркас --------------------------------- */
.app{display:flex;min-height:100vh;min-height:100dvh}
.workspace{flex:1;min-width:0;display:flex;flex-direction:column}
.main{flex:1;min-width:0;padding:24px}
.page{max-width:1180px;margin:0 auto;animation:orrise var(--dur-3) var(--ease-out)}
.page-head{margin-bottom:20px}
.page-head .t-h1{margin-bottom:4px}

/* -------------------------- Левый рельс (нав) --------------------------- */
.rail{
  width:var(--rail-w);flex-shrink:0;position:sticky;top:0;height:100vh;overflow-y:auto;
  padding:18px 14px;display:flex;flex-direction:column;gap:6px;
  border-right:1px solid var(--line);
  background:linear-gradient(180deg,var(--surface-1),rgba(255,255,255,0) 22%),rgba(13,17,24,.72);
  backdrop-filter:blur(calc(var(--blur) + 8px)) saturate(1.3);
  -webkit-backdrop-filter:blur(calc(var(--blur) + 8px)) saturate(1.3);
  transition:width var(--dur-2) var(--ease);
}
.rail.collapsed{width:var(--rail-w-collapsed);padding:18px 13px}
.rail-brand{display:flex;align-items:center;gap:11px;padding:8px 4px 18px}
.brand-mark{position:relative;width:34px;height:34px;flex-shrink:0;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--accent)}
.brand-mark>.msi{font-size:25px}
.brand-mark .spark{position:absolute;top:0;right:1px;color:var(--accent-ink);line-height:1}
.brand-mark .spark .msi{font-size:10px}
.brand-name{font-weight:800;font-size:var(--fs-17);letter-spacing:-.02em;cursor:pointer}
.rail-collapse{width:30px;height:30px;flex-shrink:0;border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--ink-2);border:1px solid var(--line)}
.rail-collapse:hover{background:var(--hover-1);color:var(--ink-0)}
.rail-item{
  display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--r-sm);
  font-size:var(--fs-14);font-weight:500;color:var(--ink-2);border:1px solid transparent;width:100%;text-align:left;
}
.rail-item .msi{font-size:21px}
.rail-item .rail-label{flex:1}
.rail-item:hover{background:var(--surface-2);color:var(--ink-0)}
.rail-item.active{
  font-weight:600;color:var(--ink-0);background:var(--accent-weak);
  border-color:var(--accent-line);box-shadow:inset 0 1px 0 var(--glass-hi);
}
.rail.collapsed .rail-item{justify-content:center;padding:11px 0;gap:0}
.rail.collapsed .rail-label{display:none}
/* Свёрнуто: только кнопка «развернуть», РОВНО на той же высоте, что была кнопка «свернуть».
   +2px сверху компенсируют, что логотип (34px) выше кнопки (30px) в развёрнутой шапке. */
.rail.collapsed .rail-brand{justify-content:center;padding:10px 0 18px}
.rail.collapsed .brand-name{display:none}

/* ------------------------------- Топбар --------------------------------- */
.topbar{
  position:sticky;top:0;z-index:var(--z-topbar);display:flex;align-items:center;gap:14px;
  padding:12px 24px;border-bottom:1px solid var(--line);
  background:rgba(10,13,19,.6);
  backdrop-filter:blur(calc(var(--blur) + 6px));-webkit-backdrop-filter:blur(calc(var(--blur) + 6px));
}
.topbar-spacer{flex:1}
.crumb{display:flex;align-items:center;gap:7px;padding:7px 12px 7px 9px;border-radius:9px;background:var(--surface-1);border:1px solid var(--line);font-size:var(--fs-13);color:var(--ink-1)}
.crumb:hover{background:var(--surface-3)}
.crumb .msi{font-size:18px}
.wallet{display:flex;align-items:center;gap:10px;height:44px;padding:0 14px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line)}
.wallet:hover{border-color:var(--line-2)}
.wallet .msi.wallet-ic{font-size:20px;color:var(--info)}
.wallet input{width:auto;box-sizing:content-box;min-width:54px;max-width:200px;font-family:var(--mono);font-weight:700;font-size:var(--fs-15);text-align:right}
.wallet .cur{font-family:var(--mono);font-size:var(--fs-14);color:var(--ink-2)}
.wallet .wallet-trend{font-size:var(--fs-15)}
.wallet .wallet-trend.pos{color:color-mix(in srgb,var(--pos) 70%,transparent)}
.wallet .wallet-trend.neg{color:color-mix(in srgb,var(--neg) 70%,transparent)}
/* крупная стрелка (изменение банка ±≥30% за 3 суток) — больше и на полном цвете */
.wallet .wallet-trend.big{font-size:var(--fs-22);font-weight:700}
.wallet .wallet-trend.pos.big{color:var(--pos)}
.wallet .wallet-trend.neg.big{color:var(--neg)}
.usermenu{position:relative}
.user-btn{display:flex;align-items:center;gap:9px;height:44px;padding:0 8px 0 11px;border-radius:12px;background:var(--surface-1);border:1px solid var(--line)}
.user-btn:hover{background:var(--surface-3)}
.avatar{width:27px;height:27px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--fs-12);font-weight:700;color:var(--on-accent);background:linear-gradient(145deg,var(--accent),color-mix(in srgb,var(--accent) 50%,var(--accent-2)))}
.user-btn .msi{font-size:18px;color:var(--ink-2)}
.user-badge{position:absolute;top:-3px;right:26px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--neg);color:#fff;font-family:var(--mono);font-size:var(--fs-10);font-weight:700;display:flex;align-items:center;justify-content:center}

/* ------------------------ Выпадающее меню (стекло) ---------------------- */
.pop{
  position:absolute;right:0;top:48px;width:250px;padding:7px;border-radius:15px;z-index:var(--z-pop);
  background:linear-gradient(180deg,var(--hover-1),rgba(255,255,255,0) 30%),var(--pop-bg);
  backdrop-filter:blur(calc(var(--blur) + 12px)) saturate(1.4);-webkit-backdrop-filter:blur(calc(var(--blur) + 12px)) saturate(1.4);
  border:1px solid var(--line-2);box-shadow:var(--shadow-pop),inset 0 1px 0 var(--glass-hi);
  animation:orrise var(--dur-2) var(--ease-out);
}
.pop-label{font-size:var(--fs-10);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin:10px 10px 8px}
.pop-sep{height:1px;background:var(--line);margin:4px 0 6px}
.pop-item{width:100%;display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:9px;font-size:var(--fs-13);color:var(--ink-1);text-align:left}
.pop-item:hover{background:var(--hover-1);color:var(--ink-0)}
.pop-item .msi{font-size:19px;color:var(--ink-2)}
.pop-item .pop-item-label{flex:1}
.pop-item .pop-item-badge{min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--neg);font-family:var(--mono);font-size:var(--fs-10);font-weight:700;color:#fff;display:flex;align-items:center;justify-content:center}
.bookie-row{display:flex;gap:8px;padding:0 4px}
.bookie{flex:1;height:38px;border-radius:9px;background:var(--surface-2);border:1px solid var(--line);display:flex;align-items:center;justify-content:center}
.bookie:hover{background:var(--hover-2);border-color:var(--line-2)}
.bookie img{width:20px;height:20px;border-radius:5px}

/* ----------------------- Мобильная навигация ---------------------------- */
.mhead{display:none;align-items:center;gap:10px}
.mhead-brand{display:flex;align-items:center;gap:9px}
.mburger{width:44px;height:44px;flex-shrink:0;border-radius:12px;display:flex;align-items:center;justify-content:center;color:var(--ink-1);border:1px solid var(--line);background:var(--surface-1)}
.mburger:hover{background:rgba(255,255,255,.07)}
.mburger .msi{font-size:24px}
.tabbar{
  display:none;position:fixed;left:0;right:0;bottom:0;z-index:var(--z-tabbar);
  padding:0 6px;padding-bottom:env(safe-area-inset-bottom);
  border-top:1px solid var(--line);background:rgba(10,13,19,.93);
  backdrop-filter:blur(calc(var(--blur) + 10px));-webkit-backdrop-filter:blur(calc(var(--blur) + 10px));
}
.tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 2px 4px;min-height:52px;position:relative;background:none;color:var(--ink-3)}
.tab .msi{font-size:23px;color:var(--ink-2)}
.tab .tab-label{font-size:var(--fs-10);font-weight:600;letter-spacing:.01em}
.tab.active .msi{color:var(--accent-ink)}
.tab.active .tab-label{color:var(--accent-ink)}
.tab-badge{position:absolute;top:4px;left:50%;margin-left:6px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--neg);color:#fff;font-family:var(--mono);font-size:var(--fs-10);font-weight:700;display:flex;align-items:center;justify-content:center}
.drawer{
  display:none;position:fixed;left:0;top:0;bottom:0;z-index:var(--z-drawer);width:min(84vw,320px);
  padding:18px 14px;padding-top:calc(18px + env(safe-area-inset-top));flex-direction:column;gap:6px;overflow-y:auto;overscroll-behavior:contain;
  background:linear-gradient(180deg,var(--surface-2),transparent 22%),rgba(13,17,24,.96);
  backdrop-filter:blur(calc(var(--blur) + 10px));-webkit-backdrop-filter:blur(calc(var(--blur) + 10px));
  border-right:1px solid var(--line-2);transform:translateX(-104%);transition:transform var(--dur-3) var(--ease);
}
.drawer.open{transform:none}
.drawer-bd{display:none;position:fixed;inset:0;z-index:calc(var(--z-drawer) - 1);background:rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:opacity var(--dur-2) var(--ease)}
.drawer-bd.open{opacity:1;pointer-events:auto}
.drawer-item{display:flex;align-items:center;gap:13px;width:100%;padding:13px 14px;border-radius:13px;font-size:var(--fs-15);font-weight:600;text-align:left;color:var(--ink-1);border:1px solid transparent}
.drawer-item .msi{font-size:22px}
.drawer-item.active{color:var(--ink-0);background:linear-gradient(180deg,var(--accent-weak),transparent),var(--surface-1);border-color:var(--accent-line)}
.drawer-sep{height:1px;background:var(--line);margin:8px 4px}

/* =============================== Примитивы ============================== */

/* Кнопки */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  height:44px;padding:0 18px;border-radius:var(--r-sm);
  font-weight:700;font-size:var(--fs-14);letter-spacing:-.01em;color:var(--on-accent);
  background:linear-gradient(180deg,color-mix(in srgb,var(--accent-strong) 96%,white),var(--accent-strong));
  box-shadow:0 12px 30px -12px var(--accent-glow),inset 0 1px 0 rgba(255,255,255,.4);
}
.btn:hover{filter:brightness(1.07)}
.btn .msi{font-size:19px}
.btn.block{width:100%;height:48px;font-size:var(--fs-15)}
.btn-sec{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 15px;border-radius:10px;font-weight:600;font-size:var(--fs-13);color:var(--ink-1);background:var(--surface-2);border:1px solid var(--line)}
.btn-sec:hover{background:var(--hover-2);border-color:var(--line-2);color:var(--ink-0)}
.btn-sec .msi{font-size:18px}
.btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 12px;border-radius:9px;font-weight:500;font-size:var(--fs-13);color:var(--ink-2)}
.btn-ghost:hover{background:var(--hover-1);color:var(--ink-0)}
.btn:disabled,.btn-sec:disabled,.btn-ghost:disabled{opacity:.5;cursor:default;transform:none;filter:none}

/* Иконочная кнопка / круглая */
.icon-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:8px;color:var(--ink-3)}
.icon-btn:hover{color:var(--ink-1);background:var(--hover-1)}
.icon-btn.active{background:var(--accent-weak);color:var(--accent-ink)}
.icon-btn .msi{font-size:19px}

/* Чипы и сегменты */
.chip{padding:8px 14px;border-radius:9px;font-size:var(--fs-13);font-weight:500;color:var(--ink-2);border:1px solid transparent;white-space:nowrap}
.chip:hover{color:var(--ink-0);background:var(--surface-2)}
.chip.active{font-weight:600;color:var(--ink-0);background:var(--accent-weak);border-color:var(--accent-line)}
.seg-group{display:inline-flex;gap:4px;padding:4px;border-radius:12px;background:var(--surface-1);border:1px solid var(--line)}
.seg{padding:7px 16px;border-radius:8px;font-size:var(--fs-13);font-weight:500;color:var(--ink-2);white-space:nowrap}
.seg:hover{color:var(--ink-0)}
.seg.active{font-weight:600;color:var(--on-accent);background:var(--accent-strong)}

/* Тоггл (вкл=зелёный glow) */
.toggle{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;color:var(--ink-2);background:var(--glass);border:1px solid var(--line)}
.toggle .msi{font-size:20px}
.toggle.on{color:var(--pos);background:color-mix(in srgb,var(--pos) 20%,transparent);border-color:color-mix(in srgb,var(--pos) 55%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--pos) 25%,transparent)}
/* Свитч-переключатель (настройки доставки) */
.switch{position:relative;width:42px;height:24px;border-radius:13px;background:var(--surface-3);border:1px solid var(--line-2);flex-shrink:0}
.switch::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.45);transition:transform var(--dur-2) var(--ease)}
.switch.on{background:var(--accent);border-color:var(--accent-line)}
.switch.on::after{transform:translateX(18px)}

/* Поля ввода */
.field{display:flex;align-items:center;gap:10px;padding:0 14px;height:46px;border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--line-2)}
.field:focus-within{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-weak)}
/* фокус показывает ОБЁРТКА (.field:focus-within) — внутренняя рамка на input дублировала индикацию */
.field input:focus-visible{outline:none}
.field.err{border-color:var(--neg);box-shadow:0 0 0 3px color-mix(in srgb,var(--neg) 16%,transparent)}
.field .msi{font-size:19px;color:var(--ink-2)}
.field input{flex:1;font-size:var(--fs-14)}
.field-label{display:block;font-size:var(--fs-12);color:var(--ink-2);margin-bottom:7px}
.field-err{display:flex;align-items:center;gap:5px;font-size:var(--fs-12);color:var(--neg);margin:7px 2px 0}
.cfgnum{width:100%;height:40px;padding:0 12px;border-radius:9px;background:var(--surface-2);border:1px solid var(--line);font-family:var(--mono);font-weight:600;font-size:var(--fs-14);text-align:right}
.cfgnum:focus{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-weak);outline:none}

/* Карточки и панели (стекло) */
.card{border-radius:var(--r);background:var(--glass);border:1px solid var(--line);box-shadow:inset 0 1px 0 var(--glass-hi)}
.panel{border-radius:var(--r);background:var(--glass);border:1px solid var(--line)}
.panel-head{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line)}
.panel-head .msi{font-size:22px;color:var(--accent-ink)}
.panel-body{padding:var(--card-pad)}
.panel-empty{display:flex;align-items:center;gap:9px;color:var(--ink-3)}
.panel-empty .msi{font-size:19px;color:var(--ink-3)}
/* «Лучшие игроки» на странице события (показывается только при наличии данных) */
.players-card{margin-top:14px}
.ev-aside .players-card{margin-top:0}   /* в правой колонке отступ даёт flex-gap самой колонки */
.pl-cols{display:grid;grid-template-columns:1fr 1fr}
.pl-cols>.pl-side:first-child{border-right:1px solid var(--line)}
.pl-stack{display:flex;flex-direction:column}
.pl-stack>.pl-side:first-child{border-bottom:1px solid var(--line)}
.pl-side-h{display:flex;align-items:center;gap:7px;padding:9px 14px 3px;font-size:var(--fs-12);font-weight:700;color:var(--ink-1)}
.pl-side-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-pager{display:inline-flex;align-items:center;gap:3px;flex-shrink:0}
.pl-plbl{font-size:var(--fs-10);color:var(--ink-3);min-width:22px;text-align:center}
.pl-pbtn{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:1px solid var(--line-2);border-radius:5px;background:var(--surface-1);color:var(--ink-2);cursor:pointer;transition:background var(--dur-1) var(--ease),color var(--dur-1) var(--ease)}
.pl-pbtn:hover:not(:disabled){background:var(--hover-1);color:var(--ink-1)}
.pl-pbtn:disabled{opacity:.35;cursor:default}
.pl-pbtn .msi{font-size:15px}
.pl-dot{width:5px;height:5px;border-radius:50%;background:var(--sport);flex-shrink:0}
.pl-rows{overflow:hidden}   /* контейнер строк — плавное листание страницы (слайд+высота) */
.pl-row{display:flex;align-items:center;gap:9px;padding:5px 14px;border-top:1px solid var(--line)}
.pl-rank{font-size:var(--fs-10);color:var(--ink-3);width:11px;flex-shrink:0}
.pl-name{flex:1;min-width:0;font-size:var(--fs-13);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-name .pl-top{color:var(--sport)}
.pl-pos{font-size:var(--fs-10);color:var(--ink-3)}
.pl-s1{font-size:var(--fs-13);font-weight:700;color:var(--sport);flex-shrink:0}
.pl-s2{font-size:var(--fs-11);font-weight:600;color:var(--ink-2);flex-shrink:0;min-width:34px;text-align:right}
.pl-u{font-size:var(--fs-10);color:var(--ink-3)}
.pl-cards{display:inline-flex;align-items:center;gap:3px;flex-shrink:0;margin-right:2px}
.pl-yc,.pl-rc{display:inline-flex;align-items:center;justify-content:center;min-width:8px;height:13px;padding:0 2px;border-radius:2px;font-family:var(--mono);font-size:var(--fs-10);font-weight:700;line-height:1}
.pl-yc{background:var(--warn);color:#1a1204}
.pl-rc{background:var(--neg);color:#fff}
@media (max-width:760px){ .pl-cols{grid-template-columns:1fr} .pl-cols>.pl-side:first-child{border-right:none;border-bottom:1px solid var(--line)} }
/* Составы + травмы (событие): переиспользует .pl-cols/.pl-side/.pl-side-h/.pl-dot */
.lineups-card{margin-top:14px}
.lu-formation{margin-left:auto;font-size:var(--fs-11);color:var(--ink-3);font-weight:600}
.lu-out{padding:2px 14px 9px}
.lu-out-h{font-size:var(--fs-11);color:var(--neg);font-weight:700;margin:5px 0 3px}
.lu-out-row{display:flex;align-items:baseline;gap:8px;justify-content:space-between;padding:2px 0;font-size:var(--fs-12)}
.lu-out-name{color:var(--ink-1)}
.lu-reason{color:var(--ink-3);font-size:var(--fs-11);text-align:right;flex-shrink:0}
.lu-none{padding:3px 14px 9px;font-size:var(--fs-11);color:var(--ink-3)}
.lu-xi{padding:0 14px 9px;border-top:1px solid var(--line)}
.lu-xi>summary{cursor:pointer;font-size:var(--fs-11);color:var(--ink-2);padding:6px 0}
.lu-xi-row{display:flex;align-items:baseline;gap:8px;padding:1px 0;font-size:var(--fs-12);color:var(--ink-1)}
.lu-num{color:var(--ink-3);min-width:1.5em;text-align:right;flex-shrink:0}
/* Фактические жёлтые карточки (событие, футбол): live-счёт по ходу + итог. Панель «Арбитр и жёлтые карточки» */
.yc-fact{background:var(--surface-1);border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 12px;margin-bottom:11px}
.yc-fh{display:flex;align-items:center;gap:7px;font-size:var(--fs-12);color:var(--ink-2);margin-bottom:10px}
.yc-sq{width:11px;height:15px;border-radius:2px;background:var(--warn);box-shadow:0 1px 3px color-mix(in srgb,var(--warn) 45%,transparent);flex-shrink:0}
.yc-fh-t{font-weight:700;color:var(--ink-1)}
.yc-live{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-11);color:var(--neg);font-weight:700}
.yc-live.done{color:var(--ink-3);font-weight:600}
.yc-live .msi{font-size:14px}
.yc-teams{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px}
.yc-team{display:flex;align-items:center;gap:9px;min-width:0}
.yc-team.away{justify-content:flex-end}
.yc-tn{font-size:var(--fs-12);color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.yc-n{font-size:var(--fs-22);font-weight:800;color:var(--warn);min-width:20px;text-align:center;flex-shrink:0}
.yc-tot{display:flex;flex-direction:column;align-items:center;padding:0 8px;border-left:1px solid var(--line);border-right:1px solid var(--line)}
.yc-tot-n{font-size:var(--fs-16);font-weight:800;color:var(--ink-1)}
.yc-tot-l{font-size:var(--fs-10);color:var(--ink-3)}
/* Чип ЖК в live-полосе hero (по ходу матча) */
.yc-strip{display:inline-flex;align-items:center;gap:4px;color:var(--warn);font-weight:700;font-size:var(--fs-13)}
.yc-strip .msi{font-size:16px;color:var(--warn)}
.kpi{padding:16px;border-radius:var(--r);background:var(--glass);border:1px solid var(--line)}
.kpi-label{font-size:var(--fs-11);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);margin-bottom:8px}
.grid{display:grid;gap:var(--gap)}

/* Значок вида спорта — глиф в кольце цвета вида */
.sico{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:9px;flex-shrink:0;background:color-mix(in srgb,var(--sc,var(--accent)) 15%,transparent);border:1px solid color-mix(in srgb,var(--sc,var(--accent)) 32%,transparent)}
.sico .msi{font-size:18px;color:var(--sc,var(--accent))}
.sico.lg{width:44px;height:44px;border-radius:12px}
.sico.lg .msi{font-size:26px}

/* Бейджи / пилюли */
.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:var(--fs-11);font-weight:700;line-height:1.4;white-space:nowrap}
.badge .msi{font-size:14px}
.badge.ok{color:var(--pos);background:color-mix(in srgb,var(--pos) 14%,transparent)}
.badge.bad{color:var(--neg);background:color-mix(in srgb,var(--neg) 14%,transparent)}
.badge.warn{color:var(--warn);background:color-mix(in srgb,var(--warn) 14%,transparent)}
.badge.soft{color:var(--ink-2);background:var(--surface-3)}
.badge.accent{color:var(--accent-ink);background:var(--accent-weak);border:1px solid var(--accent-line)}
.badge.live{color:var(--neg);background:color-mix(in srgb,var(--neg) 16%,transparent)}
.chip.sm{padding:3px 9px;font-size:var(--fs-11)}
/* ==================== Админ → Управление лигами (авто-гейт скоупов) ==================== */
/* Шапка-hero */
.scope-hero-top{display:flex;align-items:flex-start;gap:13px}
.scope-hero-ic{flex-shrink:0;width:38px;height:38px;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;background:var(--accent-weak);border:1px solid var(--accent-line);color:var(--accent-ink)}
.scope-hero-ic .msi{font-size:20px}
.scope-hero-desc{margin-top:5px;line-height:1.55;max-width:82ch}
.scope-stats{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0 2px}
.scope-stat{display:flex;align-items:center;gap:11px;padding:9px 15px 9px 10px;border-radius:12px;background:var(--surface-1);border:1px solid var(--line)}
.scope-stat-ic{width:30px;height:30px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.scope-stat-ic .msi{font-size:18px}
.scope-stat.ok .scope-stat-ic{background:color-mix(in srgb,var(--pos) 15%,transparent);color:var(--pos)}
.scope-stat.bad .scope-stat-ic{background:color-mix(in srgb,var(--neg) 15%,transparent);color:var(--neg)}
.scope-stat.warn .scope-stat-ic{background:color-mix(in srgb,var(--warn) 15%,transparent);color:var(--warn)}
.scope-stat-n{font-size:var(--fs-18);font-weight:800;font-family:var(--mono);line-height:1;color:var(--ink-0)}
.scope-stat-l{font-size:var(--fs-12);color:var(--ink-2);font-weight:500}
.scope-enable{display:flex;align-items:center;gap:11px;margin-top:15px;padding-top:15px;border-top:1px solid var(--line)}
.scope-enable .t-sub b{color:var(--ink-0);font-weight:700}
/* Свёртки (Правила / Типы ставок / Нераспознанные) — заголовок-«шапка» details c шевроном */
.scope-fold-sum{list-style:none;cursor:pointer;display:flex;align-items:center;gap:9px;user-select:none;padding:15px 18px}
.scope-fold-sum::-webkit-details-marker{display:none}
.scope-fold-sum:hover .scope-fold-l{color:var(--ink-0)}
.scope-fold-ic{color:var(--ink-3);display:inline-flex}.scope-fold-ic .msi{font-size:18px}
.scope-fold-l{font-size:var(--fs-14);font-weight:600;flex:1;color:var(--ink-1)}
.scope-fold-chev{color:var(--ink-3);display:inline-flex;transition:transform var(--dur-2) var(--ease)}
.scope-fold-chev .msi{font-size:20px}
details[open]>.scope-fold-sum .scope-fold-chev{transform:rotate(180deg)}
.scope-rules[open]>.scope-fold-sum{border-bottom:1px solid var(--line)}
/* Правила: сетка полей */
.scope-cfg-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:12px;margin:0 0 14px}
.scope-cfg-in{display:flex;flex-direction:column;gap:5px}
.scope-cfg-in>.t-sub{font-size:var(--fs-12)}
.scope-cfg-in input{padding:8px 11px;border-radius:9px;border:1px solid var(--line);background:var(--surface-1);color:var(--ink-1);font-family:var(--mono);font-size:var(--fs-13);width:100%}
.scope-cfg-in input:focus{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-weak);outline:none}
/* Фильтры */
.scope-filters{display:flex;flex-direction:column;gap:12px}
.scope-search-wrap{position:relative;display:flex;align-items:center}
.scope-search-wrap>.msi{position:absolute;left:12px;color:var(--ink-3);font-size:19px;pointer-events:none}
.scope-search{padding:9px 12px 9px 38px;border-radius:10px;border:1px solid var(--line);background:var(--surface-1);color:var(--ink-1);font-size:var(--fs-14);width:100%}
.scope-search::placeholder{color:var(--ink-3)}
.scope-fgroup{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap}
.scope-fg-l{flex-shrink:0;width:52px;padding-top:7px;font-size:var(--fs-11);font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3)}
.scope-chiprow{display:flex;gap:6px;flex-wrap:wrap;flex:1;min-width:0}
/* Таблица лиг — шапка (panel-head) + таблица во всю ширину карточки с краевым отступом ячеек */
.scope-tbl-head{align-items:baseline}
.scope-count{font-family:var(--mono);font-size:var(--fs-12);font-weight:700;color:var(--ink-3)}
.scope-tbl td{vertical-align:top;padding:12px}
.scope-tbl td.num{white-space:nowrap;text-align:right}
.scope-tbl th{padding:9px 12px}
/* крайние ячейки не касаются границы карточки (18px = отступ шапки) */
.scope-tbl th:first-child,.scope-tbl td:first-child{padding-left:18px}
.scope-tbl th:last-child,.scope-tbl td:last-child{padding-right:18px}
/* Единая ОСНОВНАЯ строка ячейки — общая базовая линия у ВСЕХ колонок; второстепенное под ней */
.scope-r1{display:flex;align-items:center;gap:8px;min-height:26px}
.scope-r1-end{justify-content:flex-end}
.scope-r2{margin-top:4px}
.scope-lg{font-weight:600}
.scope-lg-name{font-size:var(--fs-14);color:var(--ink-0)}
.scope-lgid{font-size:var(--fs-10);letter-spacing:.02em}
.scope-up{font-family:var(--mono);font-weight:700;color:var(--ink-1)}
/* CLV: значение + отклонение от вида второй строкой (узкая колонка) */
.scope-clv-rel{font-size:var(--fs-10);white-space:nowrap}
/* Вердикт надёжности: точка + слово + метрика (вместо второй пилюли) */
.scope-vd-cell{min-width:122px}
.scope-vd{font-size:var(--fs-12);font-weight:600;color:var(--ink-1)}
.scope-vd-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.scope-vd-dot.vd-ok{background:var(--pos);box-shadow:0 0 0 3px color-mix(in srgb,var(--pos) 18%,transparent)}
.scope-vd-dot.vd-bad{background:var(--neg);box-shadow:0 0 0 3px color-mix(in srgb,var(--neg) 18%,transparent)}
.scope-vd-dot.vd-soft{background:var(--ink-3);box-shadow:0 0 0 3px color-mix(in srgb,var(--ink-3) 22%,transparent)}
.scope-vd-num{font-size:var(--fs-11);color:var(--ink-2);white-space:nowrap}
/* Сегментированное ручное управление (Авто / Пустить / Пауза) */
.scope-ov-cell{white-space:nowrap}
.scope-seg{display:inline-flex;padding:3px;gap:2px;border-radius:9px;background:var(--surface-1);border:1px solid var(--line)}
.scope-seg .sseg{padding:5px 8px;border-radius:6px;font-size:var(--fs-11);font-weight:600;color:var(--ink-2);white-space:nowrap;line-height:1.2;transition:background var(--dur-1) var(--ease),color var(--dur-1) var(--ease)}
.scope-seg .sseg:hover{color:var(--ink-0);background:var(--hover-1)}
.scope-seg .sseg.active[data-sv=auto]{color:var(--on-accent);background:var(--accent-strong)}
.scope-seg .sseg.active[data-sv=allow]{color:var(--ink-on-color);background:var(--pos)}
.scope-seg .sseg.active[data-sv=block]{color:var(--ink-on-color);background:var(--neg)}
/* Нераспознанные подписи */
.scope-unr-note{margin-bottom:6px}
.scope-unr-row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line);font-size:var(--fs-12)}
.scope-unr-row:first-of-type{border-top:none}
.ldot{width:7px;height:7px;border-radius:50%;background:var(--neg);animation:orpulse 1.4s var(--ease) infinite}
.dot{width:7px;height:7px;border-radius:50%;background:currentColor;display:inline-block}

/* Цветная плашка от одной переменной --tc (иконки уведомлений, теги типов и т.п.) —
   вместо пяти инлайн-реализаций color-mix в разных файлах */
.tint{color:var(--tc,var(--ink-2));background:color-mix(in srgb,var(--tc,var(--ink-2)) 14%,transparent);border:1px solid color-mix(in srgb,var(--tc,var(--ink-2)) 30%,transparent)}

/* Значения edge/надёжность — цветовые утилиты */
.edge{display:inline-flex;padding:2px 8px;border-radius:7px;font-family:var(--mono);font-size:var(--fs-12);font-weight:700}
.edge.pos{color:var(--pos);background:color-mix(in srgb,var(--pos) 16%,transparent)}
.edge.neg{color:var(--neg);background:color-mix(in srgb,var(--neg) 16%,transparent)}
.edge.push{color:var(--push);background:var(--hover-1)}

/* Мини-прогресс/шкала */

/* Таблицы (данные) */
/* Скролл-подсказка: тени у краёв видны, только пока там есть скрытый контент (covers едут с контентом) */
.tbl-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;
  background:
    linear-gradient(90deg,rgba(15,16,24,.94) 0,transparent 28px) left/28px 100% no-repeat local,
    linear-gradient(270deg,rgba(15,16,24,.94) 0,transparent 28px) right/28px 100% no-repeat local,
    radial-gradient(farthest-side at 0 50%,rgba(0,0,0,.5),transparent) left/14px 100% no-repeat,
    radial-gradient(farthest-side at 100% 50%,rgba(0,0,0,.5),transparent) right/14px 100% no-repeat}
.tbl{width:100%;border-collapse:collapse;font-size:var(--fs-13)}
.tbl th{text-align:left;font-weight:600;color:var(--ink-3);padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl th[data-bdsort]{cursor:pointer;user-select:none} /* курсор сортировки — только у реально сортируемых */
.tbl th.active{color:var(--accent-ink)}
.tbl td{padding:12px;border-bottom:1px solid var(--line);color:var(--ink-1)}
.tbl tr:hover td{background:rgba(255,255,255,.02)}
.tbl .num{font-family:var(--mono);text-align:right}

/* Тултип-глоссарий */
.term{border-bottom:1px dotted var(--ink-3);cursor:help}
.tip{
  position:fixed;z-index:var(--z-tip);max-width:280px;padding:10px 12px;border-radius:10px;font-size:var(--fs-12);line-height:1.5;color:var(--ink-1);
  background:rgba(12,16,24,.97);border:1px solid var(--line-2);box-shadow:var(--shadow-pop);
  pointer-events:none;opacity:0;transform:translateY(4px);transition:opacity var(--dur-2),transform var(--dur-2)
}
.tip.show{opacity:1;transform:none}
.tip b{color:var(--ink-0)}

/* Тост */
.toast{
  position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(8px);z-index:var(--z-toast);
  padding:12px 18px;border-radius:12px;font-size:var(--fs-13);font-weight:600;color:var(--ink-0);
  background:var(--pop-bg);border:1px solid var(--line-2);box-shadow:var(--shadow-pop);
  display:flex;align-items:center;gap:9px;opacity:0;pointer-events:none;transition:opacity var(--dur-2),transform var(--dur-2)
}
.toast.show{opacity:1;transform:translateX(-50%);pointer-events:auto;cursor:pointer}
.toast .msi{font-size:19px;color:var(--accent-ink)}
/* Типы тостов различимы ЦВЕТОМ иконки (раньше ошибка выглядела как успех) */
.toast.t-ok .msi{color:var(--pos)}
.toast.t-err .msi{color:var(--neg)}
.toast.t-warn .msi{color:var(--warn)}

/* Модалка + bottom-sheet */
.modal{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(5,7,11,.6);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:opacity var(--dur-2)}
.modal.show{opacity:1;pointer-events:auto}
.sheet{
  width:100%;max-width:460px;max-height:90vh;overflow-y:auto;border-radius:var(--r-lg);
  background:linear-gradient(180deg,var(--hover-1),rgba(255,255,255,0) 26%),var(--glass-2);
  backdrop-filter:blur(calc(var(--blur) + 6px)) saturate(1.3);-webkit-backdrop-filter:blur(calc(var(--blur) + 6px)) saturate(1.3);
  border:1px solid var(--line-2);box-shadow:var(--shadow-modal),inset 0 1px 0 var(--glass-hi);
  transform:translateY(10px) scale(.99);transition:transform var(--dur-3) var(--ease-out)
}
.modal.show .sheet{transform:none}
.sheet-head{display:flex;align-items:center;gap:12px;padding:18px 20px;border-bottom:1px solid var(--line)}
.sheet-head .t-h3{flex:1}
.sheet-body{padding:20px}
.sheet-foot{padding:16px 20px;border-top:1px solid var(--line);display:flex;gap:10px}
.modal-close{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;color:var(--ink-2);border:1px solid var(--line)}
.modal-close:hover{background:var(--surface-3);color:var(--ink-0)}

/* Состояния: загрузка / пусто / ошибка */
.state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:64px 24px;text-align:center;color:var(--ink-2)}
.state .msi{font-size:34px;color:var(--ink-3)}
.state .t-h3{color:var(--ink-1)}
.spinner{width:34px;height:34px;border-radius:50%;border:3px solid rgba(255,255,255,.12);border-top-color:var(--accent);animation:orspin .8s linear infinite}

/* --------------------------- Утилиты раскладки -------------------------- */
.row{display:flex;align-items:center;gap:10px}
.row.wrap{flex-wrap:wrap}
.col{display:flex;flex-direction:column}
.between{justify-content:space-between}
.center{align-items:center;justify-content:center}
.gap-sm{gap:var(--sp-1h)}.gap-lg{gap:var(--sp-4h)}
.grow{flex:1}
.hidden{display:none!important}
.clickable{cursor:pointer}
.copy-team{cursor:copy}
.copy-team:hover{color:var(--accent-ink)}
.filters-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px}
.subtabs{display:inline-flex;gap:4px;padding:4px;border-radius:12px;background:var(--surface-1);border:1px solid var(--line);margin-bottom:16px}

/* Дропдаун (меню фильтров) */
.dd{position:relative}
.dd-btn{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 12px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line);font-size:var(--fs-13);color:var(--ink-1)}
.dd-btn:hover{border-color:var(--line-2)}
.dd-btn .msi{font-size:18px}
.dd-menu{position:absolute;top:46px;left:0;min-width:220px;max-height:340px;overflow-y:auto;overscroll-behavior:contain;padding:6px;border-radius:12px;z-index:var(--z-dd);background:var(--pop-bg);border:1px solid var(--line-2);box-shadow:var(--shadow-pop);animation:orrise var(--dur-2) var(--ease-out)}
/* меню у правого края вьюпорта — JS (ddEdgeFlip) вешает .dd-right, чтобы не обрезалось overflow-x:clip */
.dd-menu.dd-right{left:auto;right:0}
/* Открытый дропдаун не должен обрезаться/перекрываться соседними карточками:
   поднимаем контейнер и его карточку над соседями и снимаем overflow-clip. :has() — совр. браузеры. */
.dd:has(.dd-menu){z-index:calc(var(--z-dd) + 1)}
.cfg-card:has(.dd-menu),.panel:has(.dd-menu){overflow:visible;position:relative;z-index:60}
/* Всплывашка режима автоматизации выходит НИЖЕ карточки — снимаем overflow:hidden авто-карточки и поднимаем над блоком снизу (иначе перекрывается). */
/* поднимаем карточку над соседями/таб-баром ТОЛЬКО когда попап реально показан:
   попап всегда в DOM, и постоянный z-index:60 держал карточку над мобильным таб-баром (z=45),
   перехватывая тапы по вкладкам */
.auto-card:has(.auto-seg-wrap.show-pop){overflow:visible;position:relative;z-index:60}
@media (hover:hover){ .auto-card:has(.auto-seg-wrap:hover){overflow:visible;position:relative;z-index:60} }
.auto-popup{z-index:61}
.dd-opt{width:100%;display:flex;align-items:center;gap:10px;padding:8px 9px;border-radius:9px;font-size:var(--fs-13);color:var(--ink-1)}
.dd-opt:hover{background:var(--hover-1)}
.dd-opt.active{color:var(--ink-0);background:var(--accent-weak)}
.dd-opt.soon{color:var(--ink-3);cursor:default}
.dd-opt .msi{font-size:17px}
.dd-opt-l{flex:1;min-width:0;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dd-opt.opt-hidden .dd-opt-l{opacity:.45}
.dd-opt .dd-check{font-size:var(--fs-16);flex-shrink:0}
.dd-eye{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:7px;font-size:var(--fs-17);color:var(--ink-2);cursor:pointer;background:none;border:none;padding:0}
.dd-eye .msi{font-size:17px}
.dd-eye:hover{background:rgba(255,255,255,.09);color:var(--ink-0)}
.dd-eye.off{color:var(--ink-3)}
.pdm-locked{display:inline-flex;align-items:center;gap:3px;font-size:var(--fs-12);font-weight:700;color:var(--accent-ink);opacity:1}
.pdm-locked .msi{font-size:14px}

/* ------------------------------- Анимации ------------------------------- */
@keyframes orpulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}
@keyframes orrise{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
@keyframes orglow{0%,100%{opacity:.45}50%{opacity:.8}}
@keyframes orspin{to{transform:rotate(360deg)}}
@keyframes orwave{0%{transform:translate3d(0,0,0) scale(1.08)}100%{transform:translate3d(-2.5%,-2.2%,0) scale(1.08)}}
@keyframes orshimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
/* prefers-reduced-motion — ЕДИНЫЙ блок в конце файла (раздел «Доступность») */

/* -------------------------------- Адаптив ------------------------------- */
@media (max-width:920px){
  .split-2{grid-template-columns:1fr!important}
}
@media (max-width:760px){
  :root{--card-pad:14px;--gap:11px;--r:14px;--r-lg:18px}
  .main{padding:14px 13px calc(74px + env(safe-area-inset-bottom))}
  .rail{display:none}
  .crumb{display:none}
  .usermenu{display:none}
  .mhead{display:flex}
  .tabbar{display:flex}
  .drawer{display:flex}
  .drawer-bd{display:block}
  .topbar{padding:10px 12px;padding-top:calc(10px + env(safe-area-inset-top));gap:8px}
  .wallet{padding:0 11px;gap:7px}
  .wallet input{font-size:var(--fs-16);max-width:none}
  .wallet .wallet-trend{display:none}
  .grid-2,.grid-4{grid-template-columns:1fr 1fr!important}
  .modal{align-items:flex-end;padding:0}
  .sheet{max-width:none;border-radius:20px 20px 0 0;max-height:92vh;max-height:92dvh;overscroll-behavior:contain;padding-bottom:calc(8px + env(safe-area-inset-bottom))}
  .toast{left:13px;right:13px;bottom:calc(76px + env(safe-area-inset-bottom));transform:none}
  .toast.show{transform:none}
}

/* ======================= Экран: Прогнозы (список) ====================== */
.ev-list{display:flex;flex-direction:column;gap:var(--gap)}
.ev-card{
  --ev:var(--accent);border-radius:var(--r);
  background:
    radial-gradient(180px 140px at 0% 0%,color-mix(in srgb,var(--ev) 14%,transparent),transparent 72%),
    linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,0) 30%),var(--glass);
  backdrop-filter:blur(var(--blur)) saturate(1.2);-webkit-backdrop-filter:blur(var(--blur)) saturate(1.2);
  border:1px solid var(--line);box-shadow:var(--shadow-card),inset 0 1px 0 var(--glass-hi);
  transition:transform var(--dur-2) var(--ease),border-color var(--dur-2) var(--ease);
}
.ev-card:hover{border-color:var(--line-2)}
.ev-head{display:flex;align-items:center;gap:13px;padding:14px 16px;cursor:pointer}
.ev-sico{width:38px;height:38px;flex-shrink:0;border-radius:11px;display:flex;align-items:center;justify-content:center;
  background:color-mix(in srgb,var(--ev) 20%,transparent);border:1px solid color-mix(in srgb,var(--ev) 40%,transparent);box-shadow:0 0 18px -6px var(--ev)}
.ev-sico .msi{font-size:21px;color:var(--ev)}
.ev-title{min-width:0}
.ev-teams{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:var(--fs-16);font-weight:700;letter-spacing:-.01em}
.ev-side{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.ev-team{color:var(--ink-0)}
.ev-team.win{color:var(--gold);font-weight:700}
.ev-team.win:hover{text-decoration:underline;text-underline-offset:2px}
.ev-tp{font-family:var(--mono);font-size:var(--fs-12);font-weight:600;color:var(--ink-3)}
.ev-dash{color:var(--ink-3);font-weight:400}
.ev-live{display:inline-flex;align-items:center;gap:5px}
.ev-live-l{font-family:var(--mono);font-size:var(--fs-10);letter-spacing:.08em;color:var(--neg)}
.ev-meta{display:flex;align-items:center;gap:8px;margin-top:2px;flex-wrap:wrap;font-size:var(--fs-12)}
.ev-exp{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-10);color:var(--accent-ink);background:var(--accent-weak);border:1px solid var(--accent-line);padding:2px 7px;border-radius:6px}
/* матч пропал из свежей линии БК (linePresence): пари недоступно, план не советует */
.ev-gone{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-10);color:var(--warn);background:color-mix(in srgb, var(--warn) 12%, transparent);border:1px solid color-mix(in srgb, var(--warn) 30%, transparent);padding:2px 7px;border-radius:6px}
.ev-gone .msi{font-size:13px}
.ev-score{display:flex;align-items:center;gap:8px;min-width:52px;justify-content:flex-end}
.ev-clock{font-size:var(--fs-12);color:var(--ev)}
.ev-score-n{font-size:var(--fs-18);font-weight:700;letter-spacing:.04em}
.ev-when{display:flex;align-items:center;gap:6px;font-size:var(--fs-12);color:var(--ink-2)}
.ev-when .msi{font-size:15px}
.ev-chev{color:var(--ink-3);font-size:var(--fs-20)}

.pred-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 22px;padding:13px 16px;border-top:1px solid var(--line);cursor:pointer}
.pred-row.tier-high{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--gold) 42%,transparent);background:color-mix(in srgb,var(--gold) 6%,transparent)}
.pred-row.tier-low{opacity:.5}
.pred-row:hover{background:rgba(255,255,255,.02)}
.pred-main{flex:1 1 220px;min-width:200px}
.pred-label-row{display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap}
.pred-label{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:var(--fs-10);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-1);background:var(--hover-1);border:1px solid var(--line);padding:3px 8px;border-radius:6px}
.pred-label .msi{font-size:13px;color:var(--accent-ink)}
.pred-allow{font-size:var(--fs-17);cursor:help}
.pred-sel{display:flex;align-items:center;gap:7px;font-size:var(--fs-15);font-weight:700;letter-spacing:-.01em}
.pred-sel .msi{font-size:18px;color:var(--accent-ink)}
.pred-sel-pre{color:var(--ink-1);font-weight:600}
.pred-team{color:var(--gold);cursor:copy;font-weight:700}
.pred-team:hover{text-decoration:underline;text-underline-offset:2px}
.pred-unit{font-size:var(--fs-12);color:var(--ink-2);font-weight:500}
.pred-exp{font-size:var(--fs-11);color:var(--ink-3);font-weight:500}
.pred-metrics{display:flex;align-items:center;gap:16px;flex-wrap:wrap;flex:0 0 auto}
.pm{display:inline-flex;align-items:center;gap:5px;cursor:help}
.pm .msi{font-size:15px;color:var(--ink-3)}
.pm-prob{font-size:var(--fs-16);font-weight:700}
.coefb{display:flex;align-items:center;gap:6px}
.pm-coef{font-size:var(--fs-16);font-weight:700}
.pm-rels{display:flex;align-items:center;gap:13px}
.pm-rels .mono{font-size:var(--fs-15);font-weight:700}
.pm-q{font-size:var(--fs-12);color:var(--ink-2)}
.pred-bet{width:38px;height:38px;flex-shrink:0;border-radius:9px;background:transparent;border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);color:var(--accent);display:flex;align-items:center;justify-content:center}
.pred-bet:hover{background:color-mix(in srgb,var(--accent) 12%,transparent);border-color:var(--accent)}
.pred-bet .msi{font-size:20px}
.ev-race{display:flex;align-items:center;gap:12px;padding:13px 16px;border-top:1px solid var(--line);cursor:pointer}
.ev-race .msi{font-size:18px}

/* Таблица событий */
.tbl-card{border-radius:var(--r);overflow:hidden;background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur))}
.tbl-head,.tbl-row{display:grid;grid-template-columns:2.1fr .9fr 1.45fr .72fr .68fr .68fr .8fr 34px;gap:10px;align-items:center}
.tbl-head{padding:11px 16px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:var(--fs-10);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.tbl-row{--ev:var(--accent);padding:13px 16px;border-bottom:1px solid var(--line);cursor:pointer}
.tbl-row:last-child{border-bottom:none}
.tbl-row:hover{background:var(--surface-1)}
.min0{min-width:0}
.tc-name{display:flex;align-items:center;gap:10px;min-width:0}
.tc-ico{font-size:var(--fs-18);color:var(--ev)}
.tc-teams{font-size:var(--fs-13);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tc-teams .ev-tp{font-size:var(--fs-11)}
.tc-league{font-size:var(--fs-11)}
.tc-date{font-size:var(--fs-12);line-height:1.35}
.tc-extras{font-size:var(--fs-11);color:var(--ink-2)}
.tp-x{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tc-coef{display:flex;align-items:center;gap:5px;font-size:var(--fs-13);font-weight:600}
.tbl-row>.mono{font-size:var(--fs-13);font-weight:700}
.tc-chev{text-align:center;color:var(--ink-3)}
@media (max-width:760px){
  .tbl-card{overflow-x:auto}
  .tbl-head,.tbl-row{min-width:720px}
  .pred-metrics{gap:12px}
  /* --- Карточка события на мобайле: команды столбиком, счёт справа, без наездов ---
     flex-wrap: правый кластер (счёт/дата/бейдж результата в архиве) переносится, а не распирает строку */
  .ev-head{gap:11px;padding:12px 13px;align-items:flex-start;flex-wrap:wrap}
  .ev-head .grow{display:none}          /* спейсер съедал место — на мобайле растёт заголовок */
  .ev-sico{width:34px;height:34px}
  .ev-title{flex:1 1 auto;min-width:0}
  .ev-teams{flex-direction:column;align-items:stretch;gap:3px;font-size:var(--fs-15)}
  .ev-side{max-width:100%;min-width:0;white-space:nowrap}
  .ev-side .ev-team{overflow:hidden;text-overflow:ellipsis;min-width:0}
  .ev-side .ev-tp{flex-shrink:0}
  .ev-dash{display:none}                /* столбик команд — тире не нужно */
  .ev-score{flex-shrink:0}
  .ev-when{flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;max-width:74px;text-align:right;line-height:1.3;font-size:var(--fs-11);gap:2px 6px}
  .ev-when .msi{display:none}           /* иконку часов на узком прячем — экономим место под названия */
  .ev-chev,.ev-collapse{align-self:center}
  /* Свёрнутая карточка — КОМПАКТНО, 2 строки: команды инлайн сверху; дата/счёт + сводка + кнопки снизу.
     Мелкий шрифт, тесные отступы — чтобы всё влезало и не растягивалось в 4-5 строк (iPhone). */
  .ev-head.collapsed{flex-wrap:wrap;align-items:center;gap:4px 8px;padding:8px 12px}
  .ev-head.collapsed .ev-sico{width:26px;height:26px;border-radius:8px}
  .ev-head.collapsed .ev-sico .msi{font-size:16px}
  .ev-head.collapsed .ev-title{order:1;flex:1 1 auto;min-width:calc(100% - 42px)}  /* команды занимают всю 1-ю строку → дата/сводка/кнопки всегда на 2-ю */
  .ev-head.collapsed .ev-teams{flex-direction:row;flex-wrap:nowrap;align-items:baseline;gap:2px 5px;font-size:var(--fs-13);overflow:hidden}
  .ev-head.collapsed .ev-side{white-space:nowrap;min-width:0}
  .ev-head.collapsed .ev-side .ev-team{overflow:hidden;text-overflow:ellipsis;max-width:120px}
  .ev-head.collapsed .ev-dash{display:inline}                           /* команды в строку — тире нужно */
  .ev-head.collapsed .ev-tp{font-size:var(--fs-10)}
  .ev-head.collapsed .ev-live{gap:3px}
  .ev-head.collapsed .ev-live-l{font-size:var(--fs-10)}
  .ev-head.collapsed .ev-meta{display:none}                            /* лигу на свёрнутой прячем — минимум строк */
  /* 2-я строка: дата/счёт · сводка · кнопки — всё в одну строку, мелко */
  .ev-head.collapsed .ev-score,.ev-head.collapsed .ev-when{order:2;font-size:var(--fs-12)}
  .ev-head.collapsed .ev-when{max-width:none;flex-wrap:nowrap;white-space:nowrap;line-height:1}
  .ev-head.collapsed .ev-score .ev-score-n{font-size:var(--fs-14)}
  .ev-head.collapsed .ev-score .ev-clock{font-size:var(--fs-11)}
  .ev-head.collapsed .ev-collapsed-sum{order:3;gap:12px;padding-left:0}
  .ev-head.collapsed .ev-collapsed-sum .ecs-item{font-size:var(--fs-12);gap:4px}
  .ev-head.collapsed .ev-collapsed-sum .ecs-item .msi{font-size:13px}
  .ev-head.collapsed .ev-collapse{order:4;margin-left:auto;width:26px;height:26px}
  .ev-head.collapsed .ev-collapse .msi{font-size:16px}
  .ev-head.collapsed .ev-chev{order:5;font-size:var(--fs-18)}
}

/* ======================== Экран: Событие =============================== */
.event-page{--sport:var(--accent)}
.hero-card{border-radius:var(--r-lg);padding:0;margin-bottom:18px;overflow:hidden;
  background:
    radial-gradient(700px 280px at 18% -40%,color-mix(in srgb,var(--sport) 28%,transparent),transparent 70%),
    linear-gradient(180deg,var(--hover-1),rgba(255,255,255,0) 30%),var(--glass);
  backdrop-filter:blur(var(--blur)) saturate(1.2);-webkit-backdrop-filter:blur(var(--blur)) saturate(1.2);
  border:1px solid var(--line-2);box-shadow:0 20px 60px -28px rgba(0,0,0,.7),inset 0 1px 0 var(--glass-hi)}
.hero-in{padding:22px 26px}
.hero-sub{border-top:1px solid var(--line);padding:14px 26px;background:rgba(8,11,16,.3)}
.hero-sub .live-strip{margin-top:0;padding-top:0;border-top:none}
.winbar-wrap{margin-top:0}
.winbar-wrap + .live-strip{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.hero-top{display:flex;align-items:center;gap:11px;margin-bottom:18px}
/* узкие экраны: бейдж «ИДЁТ» + кнопка ЛС уходят второй строкой, не сжимая лигу/дату в столбик слов */
@media (max-width:480px){
  .hero-top{flex-wrap:wrap;row-gap:8px}
  .hero-top > div{flex:1 1 60%;min-width:0}
}
.hero-top .ev-sico{width:38px;height:38px;--ev:var(--sport)}
.hero-top .ev-sico .msi{font-size:22px}
.hero-top .t-h3{font-size:var(--fs-13);font-weight:600}
.hero-top .t-sub{font-size:var(--fs-12);color:var(--ink-2)}
.hero-teams{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.hero-team{display:flex;flex-direction:column;gap:5px}
.hero-team.home{align-items:flex-end;text-align:right}
.hero-team.away{align-items:flex-start}
.hero-tname{font-size:var(--fs-24);font-weight:800;letter-spacing:-.02em;color:var(--ink-0);cursor:copy}
.hero-tname.bet{color:var(--sport)}
.hero-tname:hover{text-decoration:underline;text-underline-offset:3px}
.hero-side{display:flex;align-items:center;gap:6px;font-size:var(--fs-11)}
.hero-side .mono{font-size:var(--fs-12);font-weight:600;color:var(--ink-2)}
.hero-score{display:flex;flex-direction:column;align-items:center;gap:6px}
.hero-score-n{font-size:var(--fs-34);font-weight:700;letter-spacing:.06em}
.hero-clock{font-size:var(--fs-12);color:var(--sport)}
.hero-vs{font-size:var(--fs-24);color:var(--ink-3);letter-spacing:.1em}
.winbar-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.winbar-head .t-eyebrow{display:inline-flex;align-items:center;gap:6px;color:var(--ink-2)}
.winbar-head .t-eyebrow .msi{font-size:15px;color:var(--sport)}
.wb-delta{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-11)}
.wb-delta .msi{font-size:17px}
.winbar{display:flex;height:30px;border-radius:9px;overflow:hidden;border:1px solid var(--line)}
.wb-seg{display:flex;align-items:center;min-width:0;font-family:var(--mono);font-size:var(--fs-12);font-weight:700;transition:width var(--dur-5) var(--ease)}
.wb-seg span{padding:0 9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* на узких экранах узкий сегмент (13%) обрезал свою подпись до «1…» — компактнее паддинг/шрифт */
@media (max-width:480px){ .wb-seg{font-size:var(--fs-11)} .wb-seg span{padding:0 5px} }
.wb-home{background:linear-gradient(180deg,color-mix(in srgb,var(--sport) 85%,white),var(--sport));color:var(--ink-on-color)}
.wb-draw{background:rgba(255,255,255,.14);justify-content:center;color:var(--ink-1)}
.wb-away{background:linear-gradient(180deg,color-mix(in srgb,var(--accent-2) 70%,white),var(--accent-2));justify-content:flex-end;color:#fff}
.winbar-legend{display:flex;justify-content:space-between;gap:10px;margin-top:6px;font-size:var(--fs-11);color:var(--ink-2)}
.live-strip{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px solid var(--line);font-size:var(--fs-13)}
.live-strip .msi{font-size:18px}
.live-strip-l{font-family:var(--mono);font-size:var(--fs-11);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.set-chip{font-family:var(--mono);font-size:var(--fs-12);font-weight:600;padding:3px 9px;border-radius:7px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink-1)}
.set-chip.live{border-color:color-mix(in srgb,var(--sport) 50%,transparent);background:color-mix(in srgb,var(--sport) 14%,transparent);color:var(--sport)}
.q-chip{display:inline-flex;flex-direction:column;align-items:center;gap:2px;min-width:42px;padding:5px 8px;border-radius:8px;background:var(--surface-1);border:1px solid var(--line);font-family:var(--mono);font-size:var(--fs-12)}
.q-chip b{font-size:var(--fs-10);color:var(--ink-3);font-weight:600}

.ev-cols{display:grid;grid-template-columns:1fr 340px;gap:16px;align-items:start}
.ev-main{min-width:0;display:flex;flex-direction:column;gap:14px}
.ev-aside{display:flex;flex-direction:column;gap:14px;position:sticky;top:calc(var(--topbar-h) + 12px)}
.sec-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.sec-chev{transition:transform var(--dur-2) var(--ease)}
.sec-chev.open{transform:rotate(180deg)}
.sec-head .t-h3{display:inline-flex;align-items:center;gap:8px}
.sec-head .t-h3 .msi{font-size:20px;color:var(--sport)}
.pcards{display:flex;flex-direction:column;gap:14px}
.pcards[hidden]{display:none}
/* Карточка прогноза = свёрнутая строка с инлайн-метриками ⇄ раскрытие (спек event.tpl) */
.pcard{border-radius:var(--r);background:var(--glass);border:1px solid var(--line);box-shadow:inset 0 1px 0 var(--glass-hi);overflow:hidden}
.pcard.tier-high{border-color:color-mix(in srgb,var(--gold) 40%,transparent);background:color-mix(in srgb,var(--gold) 5%,var(--glass))}
.pcard-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;padding:13px 16px;cursor:pointer}
.pcard-row:hover{background:rgba(255,255,255,.025)}
.pcard-lft{display:flex;align-items:center;gap:11px;flex:1 1 230px;min-width:0}
.pcard-ico{width:34px;height:34px;flex-shrink:0;border-radius:9px;background:var(--hover-1);border:1px solid var(--line);display:flex;align-items:center;justify-content:center}
.pcard-ico .msi{font-size:18px;color:var(--accent-ink)}
.pcard-tt{min-width:0}
.pcard-mkt{display:flex;align-items:center;gap:7px;margin-bottom:2px}
.pcard-mkt-l{font-family:var(--mono);font-size:var(--fs-10);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3)}
.pcard-lock{display:inline-flex;align-items:center;gap:3px;font-size:var(--fs-10);color:var(--ink-3)}
.pcard-lock .msi{font-size:12px}
.pcard-sel2{font-size:var(--fs-15);font-weight:700;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pcard-sel2 .pred-unit{font-size:var(--fs-11);color:var(--ink-3);font-weight:500}
.pcard-sel2 .pred-exp{font-size:var(--fs-11);color:var(--accent-ink);font-weight:600}
.pcard-mx{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.px-cell{text-align:right;min-width:48px}
.px-click{cursor:pointer}
.px-click:hover{opacity:.75}
.px-l{font-size:var(--fs-10);color:var(--ink-3);margin-bottom:2px}
.px-v{display:flex;align-items:center;gap:4px;justify-content:flex-end;font-size:var(--fs-15);font-weight:700}
.px-v .msi{font-size:16px}
.px-edge{font-size:var(--fs-13);font-weight:700;padding:1px 6px;border-radius:5px}
.px-pair{display:flex;align-items:center;gap:5px;cursor:help}
.px-pair>.msi{font-size:15px;color:var(--ink-3)}
.px-pair .mono{font-size:var(--fs-14);font-weight:700}
.px-dot{color:var(--ink-3);font-weight:400}
.px-qual{font-size:var(--fs-12);color:var(--ink-2);font-weight:400}
.px-info{width:34px;height:34px;flex-shrink:0;border-radius:9px;background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2);display:flex;align-items:center;justify-content:center;cursor:pointer}
.px-info:hover{background:var(--hover-2);color:var(--ink-0)}
.px-info .msi{font-size:18px}
.px-chev{font-size:var(--fs-22);color:var(--ink-3);transition:transform var(--dur-1) var(--ease)}
.pcard.open .px-chev{transform:rotate(180deg)}
.px-add,.pdm-undo{width:30px;height:30px;flex-shrink:0;border-radius:8px;background:transparent;border:1px solid var(--line);color:var(--ink-3);display:flex;align-items:center;justify-content:center;cursor:pointer}
.px-add:hover,.pdm-undo:hover{background:var(--surface-3);color:var(--ink-1);border-color:var(--line-2)}
.px-add .msi,.pdm-undo .msi{font-size:17px}
.pcard-body{padding:14px 16px;border-top:1px solid var(--line)}
.chips-1x2{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:14px}
.oc-chip{flex:1;min-width:120px;padding:11px 13px;border-radius:11px;border:1px solid var(--line);background:rgba(255,255,255,.02);text-align:left}
.oc-chip.hot{border-color:var(--accent-line);background:var(--accent-weak)}
.oc-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}
.oc-l{display:flex;align-items:center;gap:6px;font-size:var(--fs-13);font-weight:700;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.oc-l .msi{font-size:15px;color:var(--accent-ink)}
.oc-c{font-size:var(--fs-14);font-weight:600}
.oc-sub{font-size:var(--fs-11);color:var(--ink-3)}
.oc-p{font-size:var(--fs-13);font-weight:600;color:var(--ink-0)}
.pcard-grid6{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
.pg6-l{font-size:var(--fs-10);color:var(--ink-3);margin-bottom:3px}
.pg6-v{display:flex;align-items:center;gap:4px;font-size:var(--fs-16);font-weight:700}
.pg6-n{font-size:var(--fs-10);color:var(--ink-3);margin-top:2px}
.pcard-foot2{display:flex;align-items:center;gap:16px;margin-top:13px;padding-top:13px;border-top:1px solid var(--line);flex-wrap:wrap;font-size:var(--fs-12);color:var(--ink-2)}
.pf2{display:flex;align-items:center;gap:6px;min-width:0}
.pf2>.msi{font-size:16px;color:var(--ink-3)}
.pf2.px-click:hover{color:var(--ink-0)}
.pf2-open{font-size:var(--fs-14);color:var(--ink-3)}
.pf2-v{color:var(--ink-0);font-weight:600}

/* Карточки main-колонки события (Статистика команд / Предыдущие встречи / Мои ставки по командам) */
.ecard{border-radius:var(--r);background:var(--glass);border:1px solid var(--line);overflow:hidden}
.ecard-head{display:flex;align-items:center;gap:9px;padding:13px 16px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.ecard-head>.msi{font-size:18px;color:var(--sport)}
.ecard-title{font-size:var(--fs-14);font-weight:700}
.ecard-hint{font-size:var(--fs-11);color:var(--ink-3)}
.ts-grid{display:grid;grid-template-columns:1fr 1fr}
.ts-col{padding:14px 16px}
.ts-col.first{border-right:1px solid var(--line)}
.ts-name{font-size:var(--fs-14);font-weight:700;margin-bottom:10px}
.ts-form{display:flex;align-items:center;gap:8px;margin-bottom:9px}
.ts-form-l{font-size:var(--fs-10);color:var(--ink-3)}
.ts-chips{display:flex;gap:3px}
.fchip{width:18px;height:18px;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:var(--fs-10);font-weight:700}
.ts-goals{display:flex;align-items:center;gap:7px;font-size:var(--fs-11);color:var(--ink-2)}
.ts-goals .msi{font-size:14px;color:var(--ink-3)}
.pm-count{font-size:var(--fs-11);color:var(--ink-3)}
.pm-pager{display:flex;align-items:center;gap:4px}
.pm-btn{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);background:var(--surface-1);color:var(--ink-1);cursor:pointer}
.pm-btn:hover:not(:disabled){background:rgba(255,255,255,.07)}
.pm-btn:disabled{opacity:.4;cursor:default}
.pm-btn .msi{font-size:19px}
.pm-lbl{font-size:var(--fs-12);font-weight:700;min-width:34px;text-align:center}
.pm-grid{display:grid;grid-template-columns:1fr 1fr}
.pm-col{padding:10px 16px}
.pm-col.first{border-right:1px solid var(--line)}
.pm-cname{font-size:var(--fs-12);font-weight:700;color:var(--ink-1);margin-bottom:4px}
.pmrow{display:flex;align-items:center;gap:9px;padding:8px 0;border-top:1px solid var(--line)}
.pm-mid{flex:1;min-width:0}
.pm-opp{font-size:var(--fs-12);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pm-sub{font-size:var(--fs-10);color:var(--ink-3)}
.pm-score{font-size:var(--fs-12);font-weight:700}
.pm-none{padding:10px 0;font-size:var(--fs-12)}
/* «Мои ставки по командам» — прошлые ставки на исход, две колонки со своей пагинацией */
.mbh-chead{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:2px}
.mbh-chead .mono{font-size:var(--fs-11);font-weight:700}
.mbh-pager{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}

/* Панели-aside (kv/книги/объём/история) */
.ev-aside .panel-head{padding:12px 15px}
.ev-aside .panel-head .msi{font-size:17px;color:var(--accent-ink)}
.ev-aside .panel-head .t-h3{font-size:var(--fs-13);font-weight:700;letter-spacing:0}
.ev-aside .panel-body{padding:14px 16px}
.kv{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 0;font-size:var(--fs-13);color:var(--ink-2);border-bottom:1px solid var(--line)}
.kv:last-child{border-bottom:none}
.kv .mono{color:var(--ink-0);font-weight:600}
.kv-click{cursor:pointer;margin:0 -6px;padding-left:6px;padding-right:6px;border-radius:8px}
.kv-click:hover{background:var(--surface-2)}
.kv-coef{display:inline-flex;align-items:center;gap:2px}
.kv-coef .mono{font-size:var(--fs-14)}
.kv-hist{font-size:var(--fs-15);color:var(--ink-3);margin-left:3px}
.bk-table{margin-top:8px;display:flex;flex-direction:column;gap:2px}
.bk-row{display:flex;justify-content:space-between;gap:10px;padding:6px 0;font-size:var(--fs-12);color:var(--ink-1);border-top:1px solid var(--line)}
.vol-block{padding-top:11px;margin-top:11px;border-top:1px solid var(--line)}
.vol-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:8px;font-size:var(--fs-12);color:var(--ink-2)}
.vol-head .mono{font-weight:600;color:var(--ink-0)}
.vol-legend{display:flex;justify-content:space-between;gap:8px;margin-top:6px;font-size:var(--fs-10);color:var(--ink-3)}
.vol-none{margin-top:10px;padding:9px 11px;border-radius:9px;background:rgba(255,255,255,.02);border:1px dashed var(--line-2);font-size:var(--fs-11);color:var(--ink-3);display:flex;align-items:center;gap:7px}
.vol-none .msi{font-size:15px}
.dist-bar{display:flex;height:8px;border-radius:5px;overflow:hidden;background:var(--hover-1)}
.dist-bar>i{display:block;height:100%}
.dist-bar>i.acc{background:var(--accent)}
.dist-bar>i.push{background:rgba(255,255,255,.14)}
.dist-bar>i.opp{background:color-mix(in srgb,var(--accent) 40%,var(--accent-2))}
.panel-tag{font-size:var(--fs-10);color:var(--ink-3)}
.mbw-exp{font-size:var(--fs-14);font-weight:700;color:var(--accent-ink)}
.mbw-none{padding:15px;font-size:var(--fs-12);color:var(--ink-3);display:flex;align-items:center;gap:8px}
.mbw-none .msi{font-size:17px}
.mbw-sel{display:inline-flex;align-items:center;gap:6px;color:var(--ink-1);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mbw-sel .msi{font-size:15px;color:var(--accent-ink)}
.h2h-body{padding:7px 9px}
.h2h-row{display:flex;align-items:center;gap:10px;padding:8px 7px;font-size:var(--fs-12)}
.h2h-row>.msi{font-size:16px}
.h2h-s{flex:1;color:var(--ink-1);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.h2h-d{font-size:var(--fs-11);color:var(--ink-3)}
.hh-big{display:flex;flex-direction:column;gap:4px}
.hh-big .mono{font-size:var(--fs-30);font-weight:800;letter-spacing:-.02em}
.mb-row{display:flex;align-items:center;gap:9px;padding:8px 0;font-size:var(--fs-13);border-bottom:1px solid var(--line)}
.mb-row:last-child{border-bottom:none}
.mb-row .mono{white-space:nowrap}
.th-badge{width:20px;height:20px;flex-shrink:0;border-radius:5px;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:var(--fs-10);font-weight:700}

/* Грид Ф-1 */
.f1-table{border-radius:var(--r);overflow:hidden;background:var(--glass);border:1px solid var(--line)}
.f1-head,.f1-row{display:grid;grid-template-columns:34px 1.7fr .8fr .8fr .8fr .8fr .7fr .7fr;gap:8px;align-items:center;padding:11px 16px}
.f1-head{font-family:var(--mono);font-size:var(--fs-10);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);border-bottom:1px solid var(--line)}
.f1-row{border-bottom:1px solid var(--line);font-size:var(--fs-13)}
.f1-row:last-child{border-bottom:none}
.f1-row.fav{background:color-mix(in srgb,var(--sport) 9%,transparent)}
.f1-pos{color:var(--ink-3);font-weight:700}
/* Live-прохождение сессии F1 (OpenF1): статус + погода + порядок/итог */
.f1-live-sec .sec-head{display:flex;align-items:center;gap:8px}
.badge.live{display:inline-flex;align-items:center;gap:6px}
.f1-live-body{padding:10px 2px 2px}
.f1-live-sub{font-size:var(--fs-12);color:var(--ink-2);font-weight:600;margin-bottom:8px}
.f1-weather{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.f1-wchip{font-size:var(--fs-11);color:var(--ink-2);padding:3px 8px;border-radius:7px;background:var(--surface-2);border:1px solid var(--line)}
.f1-live-table{display:flex;flex-direction:column;border-radius:var(--r);overflow:hidden;background:var(--glass);border:1px solid var(--line)}
.f1-live-row{display:flex;align-items:center;gap:10px;padding:7px 14px;border-top:1px solid var(--line)}
.f1-live-row:first-child{border-top:none}
.f1-live-name{flex:1;min-width:0;font-size:var(--fs-13);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.f1-live-dnf{font-size:var(--fs-10);color:var(--neg);font-weight:700;flex-shrink:0}
.f1-live-pts{font-size:var(--fs-13);font-weight:700;color:var(--sport);flex-shrink:0}
.f1-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.f1-name.fav{color:var(--sport);font-weight:700}
.f1-team{font-weight:400}
.f1-c{font-weight:700;text-align:right}
.race-name{margin-top:4px}
/* F1 — цвет команды, live-разрывы, чемпионат, надёжность, прошлый сезон */
.f1-cdot{width:9px;height:9px;border-radius:3px;background:var(--tc,var(--ink-3));flex-shrink:0;box-shadow:0 0 0 1px color-mix(in srgb,var(--tc,var(--ink-3)) 45%,transparent)}
.f1-row{border-left:3px solid var(--tc,transparent)}
.f1-live-row{border-left:3px solid var(--tc,transparent)}
.f1-live-gap{font-size:var(--fs-12);color:var(--ink-2);flex-shrink:0;min-width:58px;text-align:right}
.f1-after{font-size:var(--fs-11);color:var(--ink-3)}
/* Чемпионат: личный зачёт + Кубок конструкторов */
.f1-champ{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.f1-champ-col{border:1px solid var(--line);border-radius:var(--r);background:var(--glass);overflow:hidden}
.f1-champ-h{display:flex;align-items:center;gap:7px;font-size:var(--fs-12);font-weight:700;color:var(--ink-2);padding:10px 14px;background:var(--surface-2)}
.f1-champ-h .msi{font-size:16px;color:var(--sport)}
.f1-stand-row{display:flex;align-items:center;gap:10px;padding:7px 14px;border-top:1px solid var(--line);border-left:3px solid var(--tc,transparent)}
.f1-stand-name{flex:1;min-width:0;font-size:var(--fs-13);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.f1-stand-wins{font-size:var(--fs-11);color:var(--ink-3);display:flex;align-items:center;gap:2px;flex-shrink:0}
.f1-stand-wins .msi{font-size:12px;color:var(--sport)}
.f1-stand-pts{font-size:var(--fs-13);font-weight:700;color:var(--sport);flex-shrink:0;min-width:34px;text-align:right}
/* Надёжность · сходы сезона */
.f1-rel-ov{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.f1-rel-stat{display:flex;flex-direction:column;gap:2px;padding:8px 12px;border-radius:9px;background:var(--surface-2);border:1px solid var(--line);min-width:80px}
.f1-rel-stat .l{font-size:var(--fs-10);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3)}
.f1-rel-stat .v{font-size:var(--fs-16);font-weight:700}
.f1-rel-stat.neg .v{color:var(--neg)}
.f1-rel-cap{display:flex;align-items:center;font-size:var(--fs-11);color:var(--ink-3);margin-bottom:7px;letter-spacing:.03em}
.f1-rel-list{display:flex;flex-direction:column;gap:6px}
.f1-rel-row{display:flex;align-items:center;gap:10px}
.f1-rel-name{width:120px;flex-shrink:0;font-size:var(--fs-12);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.f1-rel-bar{flex:1;height:8px;border-radius:5px;background:var(--surface-2);overflow:hidden}
.f1-rel-bar>span{display:block;height:100%;border-radius:5px;background:var(--tc,var(--sport))}
.f1-rel-dnf{font-size:var(--fs-12);font-weight:700;flex-shrink:0;min-width:22px;text-align:right}
.f1-rel-fr{font-size:var(--fs-11);color:var(--ink-3);flex-shrink:0;min-width:38px;text-align:right}
/* Прошлый сезон */
.f1-prev-heroes{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
.f1-prev-hero{padding:12px 14px;border-radius:var(--r);background:color-mix(in srgb,var(--sport) 8%,var(--glass));border:1px solid var(--line)}
.f1-prev-l{font-size:var(--fs-10);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);margin-bottom:5px}
.f1-prev-v{display:flex;align-items:center;gap:6px;font-size:var(--fs-16);font-weight:700;min-width:0}
.f1-prev-v .msi{font-size:17px;color:var(--sport);flex-shrink:0}
.f1-prev-sub{font-size:var(--fs-12);margin-top:3px}
@media (max-width:620px){.f1-champ,.f1-prev-heroes{grid-template-columns:1fr}.f1-rel-name{width:92px}}
@media (max-width:920px){
  .ev-cols{grid-template-columns:1fr}
  .ev-aside{position:static}
}
@media (max-width:760px){
  .hero-tname{font-size:var(--fs-18)}
  .hero-score-n{font-size:var(--fs-26)}
  .f1-head,.f1-row{min-width:640px}
  .f1-table{overflow-x:auto}
  .pcard-grid6{grid-template-columns:repeat(3,1fr)}
  .ts-grid,.pm-grid{grid-template-columns:1fr}
  .ts-col.first,.pm-col.first{border-right:none;border-bottom:1px solid var(--line)}
}

/* Сетки */
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}

/* ======================== Экран: Мои ставки =========================== */
.mb-kpis{margin-bottom:18px}
.mb-exp{margin-bottom:18px}
.mb-exp .panel-head{padding:14px 18px}
.mb-exp .panel-head .msi{font-size:18px;color:var(--accent-ink)}
.mb-exp-tbl td:last-child,.mb-exp-tbl th:last-child{text-align:right}
.mb-list{display:flex;flex-direction:column;gap:14px}
.mb-card{--ev:var(--accent);border-radius:var(--r);background:var(--glass);border:1px solid var(--line);box-shadow:inset 0 1px 0 var(--glass-hi);overflow:hidden}
.mb-head{display:flex;align-items:center;gap:12px;padding:14px 16px}
.mb-head .ev-sico{--sc:var(--ev)}
.mb-event{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:var(--fs-15);font-weight:700;letter-spacing:-.01em}
.mb-legs{padding:0 16px}
.mb-leg{display:flex;align-items:center;gap:10px;padding:11px 0;border-top:1px solid var(--line);font-size:var(--fs-14)}
.mb-leg-sel{font-weight:600}
.mb-leg-coef{font-weight:700}
.mb-live{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:var(--fs-12);color:var(--neg)}
.mb-foot{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:13px 16px;border-top:1px solid var(--line);background:rgba(255,255,255,.015)}
.mb-fc{display:flex;flex-direction:column;gap:2px}
.mb-fl{font-size:var(--fs-10);letter-spacing:.03em;text-transform:uppercase;color:var(--ink-3)}
.mb-fv{font-size:var(--fs-15);font-weight:700}
.mb-foot .btn-sec{height:34px}

/* Статистика (деньги) */
.hero-v{font-family:var(--mono);font-size:var(--fs-30);font-weight:800;letter-spacing:-.02em;margin:6px 0 3px}
.hero-v.pos{color:var(--pos)} .hero-v.neg{color:var(--neg)}
@media (max-width:760px){
  .mb-foot{gap:12px}
}

/* ============================ Экран: План ============================== */
.horizon{display:inline-flex;align-items:center;gap:9px;padding:8px 12px;border-radius:11px;background:var(--glass);border:1px solid var(--line)}
.horizon .t-sub{font-size:var(--fs-11);color:var(--ink-3)}
.horizon .icon-btn{width:28px;height:28px;border-radius:8px;background:var(--hover-1);border:1px solid var(--line);color:var(--ink-1)}
.horizon .icon-btn:hover{background:rgba(255,255,255,.09);color:var(--ink-0)}
.horizon .icon-btn .msi{font-size:18px}
.horizon-v{font-size:var(--fs-14);font-weight:700;min-width:46px;text-align:center}
.plan-counts{display:flex;align-items:center;gap:16px;padding:9px 16px;border-radius:11px;background:var(--glass);border:1px solid var(--line)}
.pc-l{font-size:var(--fs-10);color:var(--ink-3)}
.pc-v{font-family:var(--mono);font-size:var(--fs-18);font-weight:700;letter-spacing:-.01em}
.pc-v.accent{color:var(--accent-ink)}
.pc-div{width:1px;height:28px;background:var(--line)}
.plan-recs{display:flex;flex-direction:column;gap:10px}
/* предупреждения плана (просадка / лимит риска) — баннер над рекомендациями */
.plan-warns{display:flex;flex-direction:column;gap:8px}
.plan-warn{display:flex;align-items:flex-start;gap:9px;padding:11px 14px;border-radius:var(--r);font-size:var(--fs-13);line-height:1.5;color:var(--warn);background:color-mix(in srgb,var(--warn) 10%,transparent);border:1px solid color-mix(in srgb,var(--warn) 26%,transparent)}
.plan-warn .msi{font-size:17px;flex-shrink:0;margin-top:1px}
.rec-card{--ev:var(--accent);display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:13px;background:var(--glass);border:1px solid var(--line);box-shadow:inset 0 1px 0 var(--glass-hi)}
.rec-card .ev-sico{--sc:var(--ev)}
.rec-card.rec-later{opacity:.55}
.rec-body{flex:1;min-width:0}
.rec-teams{font-size:var(--fs-15);font-weight:700;letter-spacing:-.01em;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rec-team{color:var(--ink-2);font-weight:500}
.rec-team.win{color:var(--ink-0);font-weight:700}
.rec-tp{font-size:var(--fs-12);color:var(--ink-3)}
.rec-tp.win{color:var(--accent-ink)}
.rec-sub{display:flex;align-items:center;gap:8px;margin-top:5px;font-size:var(--fs-13);font-weight:600;color:var(--ink-2);flex-wrap:wrap}
.rec-sub .pred-label{padding:2px 7px}
.rec-why{height:auto;padding:0;background:none;color:var(--ink-3)}
.rec-why:hover{background:none;color:var(--accent-ink)}
.rec-why .msi{font-size:15px}
.rec-legs-mini{display:flex;flex-direction:column;gap:3px;margin-top:6px}
.rec-leg-mini{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-13);color:var(--ink-1)}
.sdot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}
.rec-metrics{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:9px;font-size:var(--fs-11);font-weight:600;color:var(--ink-3)}
.rm{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-11)}
.rm-l{font-size:var(--fs-11);color:var(--ink-3)}
.rm .mono{font-weight:700}
.rec-mdot{opacity:.35}
.rec-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}
.rec-stake{display:flex;flex-direction:column;align-items:flex-end;gap:2px;padding:5px 13px;border-radius:10px;background:var(--accent-weak);border:1px solid var(--accent-line)}
.rec-stake-l{font-size:var(--fs-10);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2)}
.rec-stake-v{font-size:var(--fs-20);font-weight:800;letter-spacing:-.01em;line-height:1.1;color:var(--accent-ink)}
.rec-accept{width:40px;height:40px;flex-shrink:0;border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--on-accent);background:var(--accent)}
.rec-accept:hover{filter:brightness(1.1)}
.rec-done{width:32px;height:32px;flex-shrink:0;border-radius:9px;display:flex;align-items:center;justify-content:center;color:var(--ink-2);background:var(--glass);border:1px solid var(--line);transition:color var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease)}
.rec-done:hover{color:var(--pos);border-color:var(--pos)}
.rec-done .msi{font-size:18px}
.rec-accept .msi{font-size:21px}
.plan-hero{padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid var(--line)}
.plan-hero-v{font-family:var(--mono);font-size:var(--fs-30);font-weight:800;letter-spacing:-.02em;margin:4px 0 3px}
.plan-hero-v.pos{color:var(--pos)} .plan-hero-v.neg{color:var(--neg)}
.plan-hero-day{font-size:var(--fs-11);font-weight:600;color:var(--ink-3);margin-left:6px}
.plan-widgets{display:flex;flex-direction:column}
.pw-row{display:flex;align-items:center;gap:11px;padding:11px 0;border-bottom:1px solid var(--line);font-size:var(--fs-13)}
.pw-row:last-child{border-bottom:none}
.pw-ico{width:26px;height:26px;flex-shrink:0;border-radius:7px;background:var(--surface-2);border:1px solid var(--line);display:flex;align-items:center;justify-content:center}
.pw-ico .msi{font-size:15px;color:var(--ink-2)}
.pw-l{color:var(--ink-1);font-size:var(--fs-12)}
.pw-v{font-size:var(--fs-14);font-weight:700}
/* Нижние панели плана: компактные шапки + боксированная иконка-акцент */
.plan-lower .panel-head{padding:14px 16px}
.plan-lower .panel-head .t-h3{font-size:var(--fs-13);font-weight:700}
.plan-lower .panel-head .t-sub{font-size:var(--fs-11);color:var(--ink-3)}
.plan-lower .plan-hero .kpi-label{text-transform:none;letter-spacing:0;font-size:var(--fs-11);color:var(--ink-2);margin-bottom:6px}
.panel-ico{width:32px;height:32px;flex-shrink:0;border-radius:9px;background:var(--accent-weak);border:1px solid var(--accent-line);display:flex;align-items:center;justify-content:center}
.panel-ico .msi{font-size:18px;color:var(--accent-ink)}
.pw-v.pos{color:var(--pos)} .pw-v.neg{color:var(--neg)}
.plan-caveat{display:flex;align-items:flex-start;gap:7px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:var(--fs-11);color:var(--ink-3);line-height:1.5}
.plan-caveat .msi{font-size:15px;flex-shrink:0}
/* ── ЕДИНАЯ СВОДКА ПЛАНА: hero (прирост) + плитки метрик + график «Ожидаемый рост» в одной панели ── */
.plan-summary .panel-body{padding:0}
.plan-hero2{display:flex;flex-wrap:wrap;align-items:flex-end;gap:6px 28px;padding:18px 18px 15px;border-bottom:1px solid var(--line)}
.plan-hero2 .kpi-label{text-transform:none;letter-spacing:0;font-size:var(--fs-11);color:var(--ink-2);margin-bottom:5px}
.plan-hero2 .ph2-main{min-width:0}
.plan-hero2 .plan-hero-v{margin:0}
.plan-hero2 .ph2-side{display:flex;flex-direction:column;gap:2px;padding-bottom:6px}
.plan-hero2 .ph2-side .t-sub{font-size:var(--fs-12)}
.plan-stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;padding:16px 18px}
.pstat{padding:11px 13px;border-radius:11px;background:var(--surface-2);border:1px solid var(--line)}
.pstat-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.pstat-ico{width:25px;height:25px;flex-shrink:0;border-radius:7px;background:var(--glass);border:1px solid var(--line);display:flex;align-items:center;justify-content:center}
.pstat-ico .msi{font-size:15px;color:var(--ink-2)}
.pstat-l{font-size:var(--fs-11);color:var(--ink-3);line-height:1.25}
.pstat-v{font-size:var(--fs-16);font-weight:700;color:var(--ink-1)}
.pstat-v.pos{color:var(--pos)} .pstat-v.neg{color:var(--neg)}
.pstat-v .faint{font-size:var(--fs-11);font-weight:500}
.plan-chart-sec{padding:2px 14px 8px;border-top:1px solid var(--line)}
.plan-chart-sec .pcs-head{display:flex;align-items:center;gap:9px;padding:10px 4px 0}
.plan-chart-sec .pcs-ico{display:inline-flex;align-items:center;justify-content:center}
.plan-chart-sec .pcs-ico .msi{font-size:18px;color:var(--accent-ink)}
.plan-chart-sec .pcs-t{font-size:var(--fs-13);font-weight:700;color:var(--ink-1)}
.plan-chart-sec .pcs-sub{font-size:var(--fs-11);color:var(--ink-3)}
.plan-summary .plan-caveat{margin:0;padding:12px 18px 15px;border-top:1px solid var(--line)}
@media (max-width:560px){ .plan-stat-grid{grid-template-columns:1fr 1fr} }
@media (max-width:920px){ .plan-lower{grid-template-columns:1fr!important} }
@media (max-width:760px){
  .rec-card{flex-wrap:wrap}
  /* бейджи (через N дн./деньги ~…) + СТАВКА + «+» не влезают в одну строку на 360-390px — переносим */
  .rec-actions{width:100%;justify-content:flex-end;flex-wrap:wrap;row-gap:8px}
  .plan-counts{gap:14px}
}

/* ========================= Экран: Настройки =========================== */
#cfgBody{display:grid;grid-template-columns:1fr 320px;gap:18px;align-items:start}
.cfg-main{display:flex;flex-direction:column;gap:16px;min-width:0}
.cfg-aside{position:sticky;top:calc(var(--topbar-h) + 12px)}
.cfg-card{overflow:hidden}
.cfg-head{cursor:pointer}
.cfg-head .ev-sico{width:34px;height:34px}
.cfg-body{padding:4px 18px 16px}
.cfg-seg-group{display:inline-flex;gap:4px;padding:4px;border-radius:10px;background:var(--hover-1);border:1px solid var(--line)}
.cfg-seg{padding:7px 14px;border-radius:8px;font-size:var(--fs-13);font-weight:500;color:var(--ink-2);white-space:nowrap}
.cfg-seg:hover{color:var(--ink-0)}
.cfg-seg.active{font-weight:600;color:var(--on-accent);background:var(--accent-strong)}
/* строка рычага */
.lever-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.lever-row:last-child{border-bottom:none}
.lever-row.overridden{margin-left:-14px;padding-left:13px;border-left:2px solid var(--accent);background:linear-gradient(90deg,var(--accent-weak),transparent 55%)}
.lever-row.locked{opacity:.55}
.lever-info{flex:1;min-width:200px}
.lever-label{font-size:var(--fs-14);font-weight:600}
.lever-desc{font-size:var(--fs-12);color:var(--ink-3);margin-top:2px;line-height:1.4}
.lever-status{display:flex;align-items:center;gap:5px;margin-top:7px;font-size:var(--fs-11);font-weight:600}
.lever-status .msi{font-size:14px}
.lever-status.accent{color:var(--accent-ink)} .lever-status.faint{color:var(--ink-3)}
.lever-reset{font-size:var(--fs-11);color:var(--accent-ink);text-decoration:underline;background:none;border:none;cursor:pointer;margin-left:4px}
.lever-controls{display:flex;align-items:center;gap:10px;flex-shrink:0}
.lever-ctrl{display:flex;align-items:center;gap:11px;width:250px}
.lever-num{width:56px;height:30px}
.lever-unit{font-size:var(--fs-12);font-weight:700;color:var(--ink-3)}
.lever-lock,.lever-off{width:30px;height:30px;flex-shrink:0;border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--ink-3);border:1px solid var(--line);background:transparent}
.lever-lock:hover,.lever-off:hover{border-color:var(--line-2);color:var(--ink-1)}
.lever-lock.on{color:var(--warn);background:color-mix(in srgb,var(--warn) 14%,transparent);border-color:color-mix(in srgb,var(--warn) 32%,transparent)}
.lever-lock .msi{font-size:17px}
.lever-lock-ph{width:30px;flex-shrink:0}
/* тумблер «выключить фильтр» (по скоупу) + метка «выключен» */
.lever-off.on{color:var(--neg);background:color-mix(in srgb,var(--neg) 14%,transparent);border-color:color-mix(in srgb,var(--neg) 32%,transparent)}
.lever-off .msi{font-size:19px}
.lever-offtag{display:inline-flex;align-items:center;margin-left:7px;padding:1px 7px;border-radius:6px;font-size:var(--fs-11);font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--neg);background:color-mix(in srgb,var(--neg) 14%,transparent)}
.lever-row.off .lever-ctrl{opacity:.4}
/* 🤖 значок «подобрано автоматикой» рядом с подписью рычага (пропадает при ручной правке) */
.lever-robot{display:inline-flex;align-items:center;vertical-align:middle;margin-left:6px;color:var(--accent-ink,var(--accent))}
.lever-robot .msi{font-size:15px}
/* слайдер */
.slider{-webkit-appearance:auto;appearance:auto;accent-color:var(--accent);flex:1;height:6px;cursor:pointer}
.slider:disabled{opacity:.5;cursor:not-allowed}
/* scope */
.scope-selectors{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.scope-chips{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.scope-chip{display:inline-flex;align-items:center;gap:7px;padding:6px 9px;border-radius:9px;font-size:var(--fs-12);font-weight:500;color:var(--ink-1);border:1px solid var(--line);background:var(--surface-1)}
.scope-chip.active{border-color:var(--accent-line);background:var(--accent-weak)}
.scope-chip-n{font-size:var(--fs-10);font-weight:700;color:var(--accent-ink);background:var(--accent-weak);border-radius:5px;padding:1px 5px}
/* staking */
.stake-preview{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;padding:6px 0 16px;border-bottom:1px solid var(--line);margin-bottom:8px}
.stake-calc{text-align:right}
.stake-v{font-size:var(--fs-24);font-weight:800;letter-spacing:-.02em}
@media (max-width:920px){
  #cfgBody{grid-template-columns:1fr}
  .cfg-aside{position:static}
}
@media (max-width:760px){
  .lever-controls{width:100%}
  .lever-ctrl{width:100%;flex:1}
}

/* ==================== Экраны: Профиль / Уведомления =================== */
.tg-status,.tg-connect{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.tg-status>.msi,.tg-connect>.msi{font-size:24px;color:var(--ink-2)}
.tg-status.ok>.msi{color:var(--pos)}
.tg-bot{font-size:var(--fs-24);color:var(--accent-ink)}
.tg-code{margin-top:8px;display:inline-block;padding:6px 12px;border-radius:8px;background:var(--hover-1);border:1px solid var(--line-2);font-size:var(--fs-15);font-weight:700;letter-spacing:.08em}
.switch-row{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}
.switch-row:last-child{border-bottom:none}
.switch-ic{font-size:var(--fs-20);color:var(--ink-3)}
.ntf-list{display:flex;flex-direction:column;gap:8px}
.ntf-item{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border-radius:var(--r);background:var(--glass);border:1px solid var(--line);cursor:pointer;position:relative}
.ntf-item:hover{border-color:var(--line-2)}
.ntf-item.unread{background:linear-gradient(90deg,var(--accent-weak),transparent 40%),var(--glass);border-color:var(--accent-line)}
.ntf-ico{width:38px;height:38px;flex-shrink:0;border-radius:11px;display:flex;align-items:center;justify-content:center}
.ntf-ico .msi{font-size:20px}
.ntf-top{display:flex;align-items:center;gap:8px}
.ntf-title{font-size:var(--fs-14);font-weight:700}
.ntf-time{font-size:var(--fs-11);white-space:nowrap}
.ntf-body{font-size:var(--fs-13);color:var(--ink-2);margin-top:3px;line-height:1.5}
.ntf-dot{position:absolute;top:14px;right:14px;width:8px;height:8px;border-radius:50%;background:var(--accent)}

/* ============================== Модалки ================================ */
.bet-sel{display:flex;align-items:center;gap:12px;padding:14px;border-radius:var(--r);background:var(--surface-1);border:1px solid var(--line)}
.bet-return{display:flex;align-items:center;justify-content:space-between;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.bet-return-v{font-size:var(--fs-20);font-weight:800}
.why-block{margin-bottom:16px}
.why-block .t-eyebrow{margin-bottom:6px;display:block}
.line-spark{margin-bottom:16px;border-radius:var(--r);background:var(--surface-1);border:1px solid var(--line);padding:12px}
.line-spark svg{width:100%;height:auto}
.result-opts{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.result-opt{height:46px;justify-content:flex-start}
.result-opt.ok{color:var(--pos)} .result-opt.bad{color:var(--neg)}

/* ======================= Экран: Администрирование ===================== */
#admBody{display:flex;flex-direction:column;gap:16px}
.adm-panel .panel-head .msi{font-size:19px;color:var(--accent-ink)}
.src-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.src-card{display:flex;align-items:center;gap:11px;padding:14px;border-radius:var(--r);background:var(--surface-1);border:1px solid var(--line)}
.src-card .badge{width:30px;height:30px;justify-content:center;padding:0;border-radius:9px}
.src-card .badge .msi{font-size:18px}
.adm-actions{display:flex;gap:10px;flex-wrap:wrap}
.adm-run{display:flex;align-items:center;gap:8px;margin-bottom:12px;padding:10px 12px;border-radius:10px;background:var(--accent-weak);border:1px solid var(--accent-line);font-size:var(--fs-13);color:var(--accent-ink)}
.msi.spin{animation:orspin 1s linear infinite}
.log-list{display:flex;flex-direction:column}
.log-row{display:flex;align-items:center;gap:11px;padding:11px 16px;border-bottom:1px solid var(--line);font-size:var(--fs-13)}
.log-row:last-child{border-bottom:none}
.log-lvl{min-width:64px;justify-content:center;text-transform:uppercase;font-size:var(--fs-10)}
.log-cat{font-size:var(--fs-11);min-width:70px}
.log-msg{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.log-time{font-size:var(--fs-11);white-space:nowrap}
@media (max-width:760px){ .log-cat,.log-time{display:none} }


/* ======================================================================
   ДОРАБОТКИ ВИДЖЕТОВ (buildout 2026-07): архив-фильтры/бейджи, разбор ставок,
   календарь доходов, приём с суммой, staking-контролы, админ, событие, лента.
   ====================================================================== */
/* Архив: поля диапазона дат в панели фильтров */
.arc-date{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 10px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line);font-size:var(--fs-12);color:var(--ink-2)}
.arc-date:hover{border-color:var(--line-2)}
.arc-date input[type=date]{height:26px;background:transparent;border:none;color:var(--ink-0);font-family:var(--mono);font-size:var(--fs-12);padding:0;color-scheme:dark}
/* Диапазон дат внутри выпадающего меню (архив «За 30 дней ▾») */
.dd-sep{height:1px;background:var(--line);margin:6px 4px}
.dd-dates{display:flex;flex-direction:column;gap:6px;padding:4px 2px 2px}
.dd-dates .arc-date{width:100%;height:34px}

/* Таблица прогнозов: сортируемые заголовки столбцов */
.th-sort{display:inline-flex;align-items:center;gap:4px;cursor:pointer;user-select:none}
.th-sort:hover{color:var(--ink-1)}
.th-sort.th-on{color:var(--ink-0)}
.th-sort .th-dir{font-size:var(--fs-14);color:var(--accent-ink)}

.bd-head{margin:20px 0 4px}
.bd-panel{margin-top:14px}
.bd-tbl td,.bd-tbl th{white-space:nowrap}
.bd-wlv{font-family:var(--mono);font-size:var(--fs-11);color:var(--ink-3);margin-left:4px}
.bd-bar{display:block;height:3px;margin-top:4px;border-radius:2px;background:var(--surface-3);overflow:hidden}
.bd-bar i{display:block;height:100%;border-radius:2px}
.bd-thin{opacity:.62}
.bd-thin-tag{margin-left:8px;font-size:var(--fs-10);vertical-align:middle}
.bd-insight{display:flex;gap:8px;align-items:center;margin:10px 0 4px;padding:10px 14px;border-radius:var(--r-sm);background:var(--accent-weak);border:1px solid var(--accent-line);font-size:var(--fs-13);color:var(--ink-1)}
.bd-insight .msi{color:var(--accent-ink);font-size:18px}

/* План: карточка рекомендации → колонка (ряд + раскрывающийся приём) */
.rec-card{flex-direction:column;align-items:stretch;gap:0}
.rec-main{display:flex;align-items:center;gap:14px}
.rec-accept-box{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:11px;padding:11px 12px;
  border-radius:11px;background:var(--accent-weak);border:1px solid var(--accent-line)}
.rec-accept-box[hidden]{display:none}
.rab-l{font-size:var(--fs-12);font-weight:600;color:var(--ink-1)}
.rab-field{display:flex;align-items:center;gap:6px;height:38px;padding:0 11px;border-radius:9px;
  background:rgba(0,0,0,.28);border:1px solid var(--line-2)}
.rab-input{width:92px;height:36px;background:transparent;border:0;color:var(--ink-0);
  font-family:var(--mono);font-size:var(--fs-16);font-weight:700}
.rab-input::-webkit-outer-spin-button,.rab-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.rab-cur{font-size:var(--fs-14);color:var(--ink-3)}
.rab-hint{font-size:var(--fs-11);color:var(--ink-3)}
.rab-ok{height:38px;padding:0 16px}
.rab-cancel{height:38px;padding:0 13px}
@media (max-width:760px){ .rec-main{flex-wrap:wrap} }

/* Настройки: индикатор кэпа ставки, авто-режим (status-dot + оговорка), сброс уровня scope */
.stake-capped{display:inline-flex;align-items:center;gap:5px;margin-top:6px;font-size:var(--fs-11);font-weight:600;color:var(--neg)}
.stake-capped .msi{font-size:14px}

.auto-card.on{border-color:color-mix(in srgb,var(--pos) 45%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--pos) 30%,transparent),0 0 30px -8px color-mix(in srgb,var(--pos) 40%,transparent)}
/* пока идёт подбор — амбер-пульс (НЕ зелёный); зелёным становится только по завершении (final params) */
.auto-card.running{border-color:color-mix(in srgb,var(--warn) 50%,transparent)!important;box-shadow:0 0 0 1px color-mix(in srgb,var(--warn) 34%,transparent),0 0 30px -8px color-mix(in srgb,var(--warn) 48%,transparent)!important;animation:autopulse 1.8s var(--ease) infinite}
@keyframes autopulse{0%,100%{box-shadow:0 0 0 1px color-mix(in srgb,var(--warn) 34%,transparent),0 0 26px -10px color-mix(in srgb,var(--warn) 40%,transparent)}50%{box-shadow:0 0 0 1px color-mix(in srgb,var(--warn) 50%,transparent),0 0 40px -6px color-mix(in srgb,var(--warn) 60%,transparent)}}
.auto-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;background:var(--ink-3)}
.auto-dot.on{background:var(--pos);box-shadow:0 0 0 3px color-mix(in srgb,var(--pos) 22%,transparent)}
.auto-card.running .auto-dot.on{background:var(--warn);box-shadow:0 0 0 3px color-mix(in srgb,var(--warn) 22%,transparent)}
/* живой прогресс автоподбора */
.auto-live{display:flex;align-items:center;gap:9px;padding:9px 16px;border-top:1px solid var(--line);font-size:var(--fs-13);color:var(--ink-1)}
.auto-live-dot{width:8px;height:8px;border-radius:50%;background:var(--warn);flex-shrink:0;animation:orpulse 1.4s var(--ease) infinite}
.auto-live-t{font-weight:500}
.auto-live-g{font-weight:800;color:var(--warn)}
.auto-live-ok{color:var(--pos);font-size:var(--fs-17)}

.scope-reset-lvl{font-size:var(--fs-12)}

/* компактная вторичная кнопка (Прогноз/Дообучить в строках/плитках) */
.btn-sec.sm{height:32px;padding:0 11px;font-size:var(--fs-12);border-radius:8px;gap:6px}
.btn-sec.sm .msi{font-size:15px}

/* таблица «Обновление матчей» */
.adm-mtbl td:first-child,.adm-mtbl th:first-child{white-space:nowrap}
.adm-sport-cell{display:inline-flex;align-items:center;gap:11px}
.adm-sport-lbl{font-weight:600}
.link-num{display:inline-flex;align-items:center;gap:4px;font-family:var(--mono);font-weight:700;font-size:var(--fs-13);color:var(--warn);cursor:pointer;text-decoration:underline dotted;text-underline-offset:3px}
.link-num:hover{text-decoration-style:solid}
.adm-mtbl .link-num .msi{font-size:15px}

/* сетка «Качество и дообучение по видам» */
.sq-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.sq-card{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-1);padding:13px 14px;display:flex;flex-direction:column;gap:11px}
.sq-head{display:flex;align-items:center;gap:9px}
.sq-name{font-size:var(--fs-14);font-weight:700;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sq-model{padding:2px 8px}
.sq-model .msi{font-size:13px}
.sq-metrics{display:flex;gap:14px}
.sq-m{display:flex;flex-direction:column;gap:3px;min-width:0}
.sq-mk{font-size:var(--fs-10);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}
.sq-mv{font-family:var(--mono);font-size:var(--fs-15);font-weight:700}
.sq-foot{display:flex;align-items:center;gap:8px;margin-top:auto}
.sq-ver{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-11)}

/* расписание авто-линии */
.sched-flags{flex-wrap:wrap;gap:16px}
.sched-row{display:flex;align-items:center;gap:16px;padding:11px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.sched-row:last-of-type{border-bottom:none}
.sched-sp{display:flex;align-items:center;gap:9px;font-size:var(--fs-14);font-weight:600;flex:1 1 180px;min-width:0}
.sched-gaps{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.field.sched-in{height:38px;padding:0 10px;max-width:88px}
.field.sched-in input{font-family:var(--mono);text-align:center;width:100%}

/* журнал: фильтр уровня + раскрытие строки */
.log-flabel{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-12);color:var(--ink-3);margin-right:2px}
.log-flabel .msi{font-size:16px}
.log-item{border-bottom:1px solid var(--line)}
.log-item:last-child{border-bottom:none}
.log-item .log-row{border-bottom:none}
.log-chev{display:inline-flex;width:18px;flex-shrink:0;color:var(--ink-3)}
.log-chev .msi{font-size:18px}
.log-item.open{background:rgba(255,255,255,.02)}
.log-det{margin:0;padding:10px 16px 14px 45px;font-size:var(--fs-12);line-height:1.55;color:var(--ink-1);white-space:pre-wrap;word-break:break-word;overflow-x:auto}
@media (max-width:760px){ .log-det{padding-left:16px} }

/* --- event.js: раскрытие прогноз-карты + результат/факт + сет-чипы в героe + F1-star --- */
.pcard.done{opacity:.94}
.hero-sets{display:flex;gap:5px;justify-content:center;flex-wrap:wrap;max-width:230px}
.f1-name .f1-star{font-size:var(--fs-15);color:var(--sport);vertical-align:-2px;margin-right:4px}

/* notif.js — группировка по дням + per-row действия */
.ntf-group{margin-bottom:18px}
.ntf-group + .ntf-group{margin-top:4px}
.ntf-day{display:flex;align-items:center;gap:10px;margin:0 2px 10px}
.ntf-day-l{font-size:var(--fs-12);font-weight:700;letter-spacing:.02em;color:var(--ink-2)}
.ntf-day-c{font-size:var(--fs-11)}
.ntf-foot{display:flex;align-items:center;gap:12px;margin-top:7px}
.ntf-open{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-11);font-weight:600;color:var(--accent-ink);cursor:pointer}
.ntf-open:hover{text-decoration:underline}
.ntf-open .msi{font-size:14px}
.ntf-mark{flex-shrink:0;margin:-2px -4px 0 0}
/* сдвигаем непрочитанную точку левее кнопки-пометки, чтобы не перекрывались */
.ntf-item .ntf-dot{right:50px;top:20px}
/* ═══════════════════════════════════════════════════════════════════════
   ЭКРАН-СПЕЦИФИЧНЫЕ СТИЛИ (редизайн 2026, Claude Design)
   Сведены из прежних public/css/r2-*.css в единый файл. Порядок = порядок экранов.
   ═══════════════════════════════════════════════════════════════════════ */

/* ---------------------------- Экран: list ---------------------------- */

/* ---- Заголовок экрана: H1 без подзаголовка, сегмент выровнен по низу ---- */
.lst-head{align-items:flex-end;margin-bottom:18px}
.lst-head .t-h1{margin-bottom:0}
.lst-head .seg-group{gap:3px;padding:3px;border-radius:11px}

/* ---- Сегмент переключения вида (карточки ⇄ таблица) — как в макете ---- */
.view-seg{display:flex;gap:2px;padding:3px;border-radius:10px;background:var(--glass);border:1px solid var(--line)}
.view-seg .icon-btn{width:32px;height:32px}

/* ---- Кнопки тулбара: одна высота 38px как в макете ---- */
.filters-row .dd-btn{height:38px;padding:0 11px 0 12px;background:var(--glass)}
.filters-row .dd-btn .msi:first-child{color:var(--accent-ink)}
.filters-row .dd-btn .msi:last-child{color:var(--ink-3)}
.filters-row .toggle{width:38px;height:38px;border-radius:10px}
.filters-row .toggle .msi{font-size:19px}

/* ---- Кнопка «Топ прогнозов для фрибета» (🎁) + модалка подбора ---- */
.fb-btn{color:var(--gold);border-color:color-mix(in srgb,var(--gold) 30%,var(--line))}
.fb-btn:hover{color:var(--gold);background:color-mix(in srgb,var(--gold) 14%,transparent);border-color:color-mix(in srgb,var(--gold) 50%,transparent)}
.fb-list{display:flex;flex-direction:column;gap:10px}
.fb-card{border:1px solid var(--line);border-left:3px solid var(--ev,var(--accent));border-radius:12px;background:var(--surface-1);padding:12px 14px;cursor:pointer;transition:background var(--dur-2),border-color var(--dur-2)}
.fb-card:hover{background:var(--surface-2);border-color:var(--line-2)}
.fb-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.fb-row{display:flex;align-items:center;gap:10px}
.fb-teams{font-size:var(--fs-14);font-weight:600;color:var(--ink-0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fb-sub{font-size:var(--fs-11);color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fb-coef{font-size:var(--fs-22);font-weight:700;color:var(--gold);flex:none}
.fb-pick{display:flex;align-items:center;gap:6px;margin-top:8px;font-size:var(--fs-13)}
.fb-pick .msi{font-size:17px;color:var(--accent-ink)}
.fb-market{color:var(--ink-3)}
.fb-sel{font-weight:600;color:var(--ink-0)}
.fb-foot{display:flex;align-items:center;gap:8px;margin-top:10px;flex-wrap:wrap}
.fb-win{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-12);color:var(--ink-2)}
.fb-win .msi{font-size:16px;color:var(--gold)}
.fb-win b{color:var(--pos)}
.fb-chip{display:inline-flex;align-items:center;gap:3px;font-size:var(--fs-12);font-family:var(--mono);color:var(--ink-2)}
.fb-chip .msi{font-size:15px}
.fb-chip.pos{color:var(--pos)}
.fb-empty{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding:32px 12px;color:var(--ink-2)}
.fb-empty .msi{font-size:34px;color:var(--gold)}

/* ---- Группа чипов периода (обёртка + активный сплошной ирис как в макете) ---- */
.chip-group{display:flex;gap:2px;padding:3px;border-radius:10px;background:var(--glass);border:1px solid var(--line)}
.chip-group .chip{padding:7px 13px;border-radius:8px;font-size:var(--fs-12);font-weight:500;color:var(--ink-2)}
.chip-group .chip.active{color:var(--on-accent);background:var(--accent-strong);border-color:transparent}

/* ---- Чипы сетов волейбола в шапке карточки события ---- */
.ev-setchips{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end;max-width:210px}

/* ---- Свёртка события (collapse / unfold) ---- */
.ev-collapse{width:28px;height:28px;flex-shrink:0;border-radius:7px;background:transparent;border:none;color:var(--ink-3);display:flex;align-items:center;justify-content:center;cursor:pointer}
.ev-collapse:hover{background:var(--surface-3);color:var(--ink-1)}
.ev-collapse .msi{font-size:18px}
.ev-head.collapsed{cursor:pointer}
.ev-card.ev-collapsed{opacity:.82}
.ev-collapsed-sum{display:flex;align-items:center;gap:13px;padding-left:2px}
.ev-collapsed-sum .ecs-item{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-14);font-weight:600}
.ev-collapsed-sum .ecs-item .msi{font-size:15px;color:var(--ink-3)}

/* ---- Свёрнутый (dismissed) прогноз: приглушённая строка + undo ---- */
.pred-dismiss{width:24px;height:24px;flex-shrink:0;border-radius:6px;background:transparent;border:none;color:var(--ink-3);display:flex;align-items:center;justify-content:center;cursor:pointer;margin-left:auto}
.pred-dismiss:hover{background:var(--surface-3);color:var(--ink-1)}
.pred-dismiss .msi{font-size:16px}
.pred-row-dismissed{display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap;padding:7px 16px;border-top:1px solid var(--line);cursor:pointer;background:rgba(255,255,255,.012)}
.pred-row-dismissed:hover{background:var(--surface-1)}
.pred-row-dismissed .pdm-left{display:inline-flex;align-items:center;gap:7px;flex:1 1 200px;min-width:0}
.pdm-market{font-family:var(--mono);font-size:var(--fs-10);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);border:1px solid var(--line);padding:2px 6px;border-radius:5px;flex-shrink:0;opacity:.7}
.pdm-allow{font-size:var(--fs-15);flex-shrink:0}
.pdm-pay{font-size:var(--fs-15);flex-shrink:0}
.pdm-sel{font-size:var(--fs-13);font-weight:600;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.75}
.pdm-exp{font-size:var(--fs-11);color:var(--ink-3);white-space:nowrap;flex-shrink:0;opacity:.65}
.pred-row-dismissed .pdm-metrics{display:flex;align-items:center;gap:14px;opacity:.6}
.pdm-metrics span{font-size:var(--fs-12);font-weight:700;color:var(--ink-1)}
/* .pdm-undo объединён с .px-add выше (правила были байт-в-байт одинаковыми) */
/* Мобайл: свёрнутый прогноз — строго ОДНА строка (кнопка не переносится, название усекается) */
@media (max-width:760px){
  .pred-row-dismissed{flex-wrap:nowrap;gap:9px;padding:10px 13px}
  .pred-row-dismissed .pdm-left{flex:1 1 auto;min-width:0;gap:6px}
  .pred-row-dismissed .pdm-metrics{gap:11px;flex-shrink:0}
  .pdm-metrics span{font-size:var(--fs-12)}
  .pdm-hist{display:none}
  .pdm-exp{display:none}   /* «ожид. …» на узком наезжала на замок/экспозицию — вторичная метрика, прячем */
  .pdm-undo{border:none;border-radius:7px}
  .pdm-undo .msi{font-size:20px}
  /* Развёрнутый прогноз — метрики уходят на свою строку под названием */
  .pred-row{padding:11px 13px;gap:9px 14px}
  .pred-main{flex:1 1 100%;min-width:0}
  .pred-metrics{flex:1 1 100%;justify-content:flex-start;gap:14px}
}

/* ---- F1: грид-строка с пилюлями позиций ---- */
.ev-grid{display:flex;align-items:center;gap:12px;padding:13px 16px;border-top:1px solid var(--line);cursor:pointer;flex-wrap:wrap}
.ev-grid-l{color:var(--ink-2)}
.pos-pills{display:flex;gap:7px;flex-wrap:wrap}
.pos-pill{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-11);padding:4px 9px;border-radius:8px;background:var(--surface-2);border:1px solid var(--line);color:var(--ink-1)}
.pos-pill .pos-v{font-family:var(--mono);font-weight:600;color:var(--ev)}

/* ---- Плотность строк прогноза (компактнее, как в макете) ---- */
.pred-row{padding:9px 16px;gap:10px 20px}
.pred-label-row{margin-bottom:4px}
.pred-sel{font-size:var(--fs-14)}
.pred-metrics{gap:14px}

/* ---- Статистика: 4 KPI-плитки ---- */
.stat-kpis{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:14px;margin-bottom:16px}
.stat-kpi{padding:15px 16px;border-radius:var(--r);background:var(--glass);border:1px solid var(--line);display:flex;flex-direction:column;cursor:help}
.stat-kpi-ic{font-size:var(--fs-18);color:var(--accent-ink)}
.stat-kpi-v{font-size:var(--fs-22);font-weight:700;margin-top:16px;color:var(--ink-0)}
.stat-kpi-l{font-size:var(--fs-11);color:var(--ink-1);margin-top:4px}
.stat-kpi-s{font-size:var(--fs-10);color:var(--ink-3);margin-top:1px}
@media(max-width:920px){ .stat-kpis{grid-template-columns:1fr 1fr} } /* единый планшетный порог (был одинокий 900) */

/* ---- Статистика: панели графиков + легенды ---- */
.stat-panel{margin-bottom:16px}
.stat-legend{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:0 18px 14px;font-size:var(--fs-11);color:var(--ink-3)}
.stat-legend .sl-item{display:inline-flex;align-items:center;gap:6px}
.stat-legend .sl-dot{width:9px;height:9px;border-radius:50%}
.stat-legend .sl-line{width:14px;height:0;border-top:1.5px dashed var(--push)}

/* ---------------------------- Экран: event ---------------------------- */

/* маркер «выгодный вход» в шапке прогноз-карты */

/* aside-заглушка «Внешних данных нет» */
.ev-noext{border:1px dashed var(--line-2);background:rgba(255,255,255,.02)}
.ev-noext-in{display:flex;align-items:center;gap:12px;padding:16px 15px}
.ev-noext-in>.msi{font-size:22px;color:var(--ink-3);flex-shrink:0}
.ev-noext-t{font-size:var(--fs-13);font-weight:600;color:var(--ink-1)}
.ev-noext-n{font-size:var(--fs-12);color:var(--ink-3);margin-top:2px}

/* блок «Причины отказа» в раскрытой прогноз-карте */
.pcard-reasons{margin-top:12px;padding:11px 13px;border-radius:11px;border:1px solid color-mix(in srgb,var(--neg) 34%,transparent);background:color-mix(in srgb,var(--neg) 9%,transparent)}
.pcard-reasons-h{font-size:var(--fs-11);font-weight:700;color:var(--neg);margin-bottom:5px}
.pcard-reason{display:flex;align-items:center;gap:7px;font-size:var(--fs-12);color:var(--ink-1);margin-top:3px}
.pcard-reason .msi{font-size:14px;color:var(--neg)}

/* сворачиваемая секция «Прогнозы события» */
.sec-toggle{cursor:pointer;user-select:none}
.sec-chev{display:inline-flex;align-items:center}
.sec-head .sec-chev .msi{font-size:20px;color:var(--ink-3)}
.sec-title{font-size:var(--fs-17);font-weight:700;margin:0;letter-spacing:-.01em}

/* F1 — ранг-полоса (раунд/лидер/подсказка) */
.f1-strip{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin:14px 0;padding:13px 16px;border-radius:var(--r);
  background:var(--glass);backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur));border:1px solid var(--line)}
.f1-strip-cell{display:flex;align-items:center;gap:9px}
.f1-strip-l{font-size:var(--fs-10);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.f1-strip-v{font-size:var(--fs-14);font-weight:700}
.f1-strip .f1-star{color:var(--sport)}
.f1-note{display:flex;align-items:center;gap:7px;font-size:var(--fs-12);color:var(--ink-3);max-width:360px}
.f1-note .msi{font-size:16px}

/* ---------------------------- Экран: plan ---------------------------- */

/* Две иконки в карточке рекомендации: вид спорта + тип рынка (по макету). */
.rec-icons{display:flex;align-items:center;gap:7px;flex-shrink:0}
.rec-sico{width:30px;height:30px;border-radius:9px}
.rec-sico .msi{font-size:18px}
.rec-tico{width:38px;height:38px;border-radius:11px}
.rec-tico .msi{font-size:21px}

/* Кликабельное имя команды — копирование (подчёркивание по ховеру). */
.rec-team.copy-team{cursor:pointer}
.rec-team.copy-team:hover{text-decoration:underline}

/* ↗ — открыть страницу события. */
.rec-open{width:38px;height:38px}
.rec-open .msi{font-size:20px}

/* ---------------------------- Экран: mybets ---------------------------- */

/* ── Список: 4 KPI-плитки (крупные mono-значения, sentence-case подписи) ── */
.mb-kpis{gap:12px}
.mb-kpi{padding:14px 16px}
.mb-kpi .kpi-label,.mb-hero-card .kpi-label,.mb-metric-panel .kpi-label,.mb-inc-c .kpi-label{text-transform:none;letter-spacing:0}
.mb-kpi-v{font-family:var(--mono);font-size:var(--fs-24);font-weight:700}
.mb-kpi-u{font-size:var(--fs-14);color:var(--ink-2)}
/* мобайл: сумма не рвётся посреди числа («-171 458 / ₽») — целиком, шрифт компактнее под 2-колоночную сетку */
@media (max-width:760px){ .mb-kpi-v{white-space:nowrap;font-size:var(--fs-20)} }
@media (max-width:480px){ .mb-kpi-v{font-size:var(--fs-18)} }
.mb-kpi-wl{display:flex;align-items:baseline;gap:6px}
.mb-kpi-w{font-size:var(--fs-24);font-weight:700;color:var(--pos)}
.mb-kpi-slash{color:var(--ink-3)}
.mb-kpi-l{font-size:var(--fs-18);font-weight:700;color:var(--neg)}

/* ── Экспозиция: заголовок 14px, значения риска/процента, mono-заголовки колонок ── */
.mb-exp-head .t-h3{font-size:var(--fs-14);font-weight:700}
.mb-exp-risk{font-size:var(--fs-15);font-weight:700;color:var(--ink-1);white-space:nowrap}
.mb-exp-pct{font-size:var(--fs-15);font-weight:700;color:var(--accent-ink);margin-left:2px;white-space:nowrap}
/* суммы не рвём посреди числа («10 000 / ₽»); дата пусть переносится по «·» — узкие экраны */
.mb-exp-tbl td.num{white-space:nowrap}
@media (max-width:760px){
  .mb-exp-head{flex-wrap:wrap;row-gap:2px}
  .mb-exp-tbl td,.mb-exp-tbl th{padding-left:8px;padding-right:8px}
}
.mb-exp-tbl th{font-family:var(--mono);font-size:var(--fs-10);letter-spacing:.05em;text-transform:uppercase;padding:7px 12px}
.mb-exp-pctcell{font-size:var(--fs-18);font-weight:700}

/* ── Статистика: ряд 1 (Доход · Всего пари · ROI) ── */
.mb-hero-row{grid-template-columns:1.5fr 1fr 1fr;gap:12px}
.mb-hero-card{background:var(--glass);border:1px solid var(--line)}
.mb-hero-card .panel-body{padding:14px 16px}
.mb-inc-row{display:flex;gap:20px;flex-wrap:wrap}
.mb-inc-c .kpi-label{margin-bottom:2px;font-size:var(--fs-10)}
.mb-inc-v{font-size:var(--fs-18);font-weight:700}
.mb-inc-v.pos{color:var(--pos)} .mb-inc-v.neg{color:var(--neg)}
.mb-tb-line{display:flex;align-items:baseline;gap:8px}
.mb-tb-n{font-size:var(--fs-22);font-weight:700}
.mb-mk-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:11px}
.mb-mk-chip{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-11);color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line);padding:3px 7px;border-radius:7px}
.mb-mk-chip .msi{font-size:14px;color:var(--ink-3)}
.mb-mk-chip .mono{font-weight:600}
.mb-roi-v{font-size:var(--fs-22);font-weight:700}
.mb-roi-v.pos{color:var(--pos)} .mb-roi-v.neg{color:var(--neg)}

/* ── ряд 2: Флэт-доходность · CLV ставок ── */
.mb-two-row{grid-template-columns:1fr 1fr;gap:12px;align-items:start}
.mb-metric-panel{overflow:hidden}
.mb-metric-panel .panel-head{padding:11px 14px}
.mb-metric-panel .panel-head .msi{color:var(--accent-ink);font-size:17px}
.mb-metric-panel .t-h3{font-size:var(--fs-13)}
.mb-metric-panel .panel-body{padding:13px 14px}
.mb-metric-top{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
.mb-metric-v{font-size:var(--fs-22);font-weight:700}
.mb-metric-v.pos{color:var(--pos)} .mb-metric-v.neg{color:var(--neg)}
.mb-metric-note{font-size:var(--fs-10);color:var(--ink-3);margin-top:10px;line-height:1.5}
.mb-spark{display:flex;align-items:flex-end;height:64px;width:116px}
.mb-clv-dist{display:flex;align-items:flex-end;height:56px;width:116px}

/* ── Производительность по дням ── */
.mb-perf-panel{overflow:hidden}
.mb-perf-panel>.panel-head{flex-wrap:wrap}
.mb-perf-panel .panel-head .msi{color:var(--accent-ink)}
.mb-perf-grid{display:grid;grid-template-columns:1fr 200px;align-items:stretch;border-bottom:1px solid var(--line)}
.mb-perf-chart{padding:10px 12px;min-width:0}
.mb-perf-side{border-left:1px solid var(--line);padding:14px 15px;display:flex;flex-direction:column;gap:11px;justify-content:center}
.mb-perf-side .kpi-label{text-transform:uppercase;letter-spacing:.05em}
.mb-wl-row{display:flex;align-items:center;gap:9px}
.mb-wl-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}
.mb-wl-l{flex:1;font-size:var(--fs-12);color:var(--ink-2)}
.mb-wl-v{font-size:var(--fs-14);font-weight:700}
.mb-wl-ang{font-size:var(--fs-11);font-weight:600;width:44px;text-align:right}
.mb-bank-head{display:flex;align-items:center;gap:8px;padding:12px 16px 4px}
.mb-bank-head .msi{color:var(--accent-ink);font-size:16px}
.mb-bank-chart{padding:2px 12px 8px}
.mb-bank-metrics{display:flex;justify-content:space-between;padding:0 16px 14px}
.mb-bm-v{font-size:var(--fs-14);font-weight:700}
.mb-bm-v.neg{color:var(--neg)}

/* ── фильтр видов спорта в разборе (ряд chip-кнопок вместо dropdown) ── */

@media (max-width:760px){
  .mb-hero-row,.mb-two-row{grid-template-columns:1fr}
  .mb-perf-grid{grid-template-columns:1fr}
  .mb-perf-side{border-left:none;border-top:1px solid var(--line)}
}

/* ---------------------------- Экран: settings ---------------------------- */

/* --- Область применения: кнопка «Исключить» + красный баннер --- */
.cfg-exclude{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 13px;border-radius:10px;
  font-size:var(--fs-13);font-weight:600;border:1px solid var(--line);background:var(--surface-2);color:var(--ink-1);cursor:pointer}
.cfg-exclude .msi{font-size:17px}
.cfg-exclude:hover{border-color:var(--line-2)}
.cfg-exclude.on{color:var(--neg);border-color:color-mix(in srgb,var(--neg) 40%,transparent);
  background:color-mix(in srgb,var(--neg) 14%,transparent)}
.cfg-exclude-banner{margin-top:12px;display:flex;align-items:center;gap:9px;padding:11px 13px;border-radius:11px;
  background:color-mix(in srgb,var(--neg) 11%,transparent);border:1px solid color-mix(in srgb,var(--neg) 28%,transparent)}
.cfg-exclude-banner .msi{font-size:18px;color:var(--neg);flex-shrink:0}
.cfg-exclude-banner span{font-size:var(--fs-12);color:var(--ink-1);line-height:1.45}

/* --- Автоматизация: сегмент режимов с иконками + всплывающее описание --- */
.auto-seg-wrap{position:relative;flex-shrink:0;display:flex;align-items:center;gap:6px}
.cfg-seg.auto-mode{display:inline-flex;align-items:center;gap:6px}
.cfg-seg.auto-mode .msi{font-size:16px}
.auto-popup{position:absolute;top:calc(100% + 11px);left:0;right:0;min-width:240px;padding:11px 13px;border-radius:12px;
  background:rgba(18,24,34,.98);border:1px solid var(--line-2);box-shadow:0 22px 50px -16px rgba(0,0,0,.8);z-index:24;
  opacity:0;visibility:hidden;transform:translateY(-4px);pointer-events:none;transition:opacity var(--dur-1) var(--ease),transform var(--dur-1) var(--ease)}
/* desktop: описание по наведению; на таче ховера нет → .show-pop (тап по ⓘ ИЛИ удержание режима, core.js peek) */
@media (hover:hover){ .auto-seg-wrap:hover .auto-popup{opacity:1;visibility:visible;transform:none} }
.auto-seg-wrap.show-pop .auto-popup{opacity:1;visibility:visible;transform:none}
.auto-popup-desc{font-size:var(--fs-12);color:var(--ink-1);line-height:1.5}
.auto-popup-warn{margin-top:7px;display:flex;align-items:flex-start;gap:6px;font-size:var(--fs-11);color:var(--warn);line-height:1.45}
.auto-popup-warn .msi{font-size:13px;flex-shrink:0}
.auto-popup-arrow{position:absolute;bottom:100%;margin-bottom:-6px;transform:translateX(-50%) rotate(45deg);
  width:11px;height:11px;background:rgba(18,24,34,.98);border-left:1px solid var(--line-2);border-top:1px solid var(--line-2)}
/* ОКНО ДНЕЙ среднесуточного дохода (в карточке «Автоматизация») */
.auto-win-body{border-top:1px solid var(--line);padding-top:12px}
.auto-win-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.auto-win-l{display:inline-flex;align-items:center;gap:7px;font-size:var(--fs-13);font-weight:500;color:var(--ink-1)}
.auto-win-l .msi{font-size:17px;color:var(--ink-2)}
.auto-win-seg{flex-wrap:wrap}
.cfg-seg.auto-win{padding:6px 12px;font-size:var(--fs-12)}
.auto-win-hint{margin-top:9px;display:flex;align-items:flex-start;gap:6px;font-size:var(--fs-11);color:var(--ink-2);line-height:1.45}
.auto-win-hint .msi{font-size:14px;flex-shrink:0}
.auto-win-hint b{color:var(--ink-1);font-weight:600}

/* --- Прогноз стратегии: строка с подписью-подсказкой --- */
.pw-txt{display:flex;flex-direction:column;min-width:0}
.pw-hint{font-size:var(--fs-10);color:var(--ink-3);line-height:1.3}

/* --- Бейдж scope (прямоугольный чип: цветная точка вида + подпись) --- */
.scope-badge{display:inline-flex;align-items:center;gap:7px;padding:5px 10px;border-radius:8px;background:var(--surface-2);border:1px solid var(--line);font-size:var(--fs-12);font-weight:600;color:var(--ink-1);white-space:nowrap}
.scope-badge .sdot{width:7px;height:7px;margin-right:1px}

/* --- Кнопки шапки «Задать/Сбросить рекомендуемые» --- */
.cfg-head-acts{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.cfg-rec-btn,.cfg-reset-btn{height:38px;padding:0 14px;border-radius:10px;font-size:var(--fs-13);font-weight:600;display:inline-flex;align-items:center;gap:7px;cursor:pointer}
.cfg-rec-btn .msi,.cfg-reset-btn .msi{font-size:18px}
.cfg-rec-btn{background:var(--accent-weak);border:1px solid var(--accent-line);color:var(--accent-ink)}
.cfg-rec-btn:hover{background:color-mix(in srgb,var(--accent) 24%,transparent)}
.cfg-reset-btn{background:var(--surface-2);border:1px solid var(--line);color:var(--ink-1)}
.cfg-reset-btn:hover{background:var(--hover-2);border-color:var(--line-2)}
/* --- Сохранение/восстановление настроек («Сохранить»/«Загрузить») --- */
.cfg-snap-acts{display:inline-flex;align-items:center;gap:9px;flex-wrap:wrap}
.cfg-reset-btn:disabled{opacity:.45;cursor:not-allowed}
.cfg-reset-btn:disabled:hover{background:var(--surface-2);border-color:var(--line)}
.cfg-snap-when{margin-left:7px;font-size:var(--fs-11);font-weight:500;opacity:.6}

/* --- Прогноз стратегии: боксированная иконка + заголовок/подпись, sentence-case метка --- */
.strat-title{font-size:var(--fs-13);font-weight:700}
.strat-sub{font-size:var(--fs-11);color:var(--ink-3)}
.strat-growth-l{font-size:var(--fs-11);color:var(--ink-2);margin-bottom:6px}

/* --- Подпись-приоритет в шапке scope-карточки чуть мельче --- */
.cfg-head .t-sub{font-size:var(--fs-11)}

/* --- Автоматизация: компактная шапка (12px 16px, заголовок 14px) --- */
.auto-card .cfg-head{padding:12px 16px}
.auto-card .cfg-head .t-h3{font-size:var(--fs-14)}
.auto-card .cfg-head .ev-sico{--ev:var(--accent);--sc:var(--accent)}

/* ---------------------------- Экран: profile ---------------------------- */

/* Ширина контента экрана = как в макете (1180px, по центру) */
.prof-page{ max-width:1180px; margin:0 auto; }
.prof-head{ margin-bottom:18px; }

/* Hero-карточка: аватар + имя */
.prof-hero{
  display:flex; align-items:center; gap:18px;
  padding:20px 22px; border-radius:var(--r);
  background:var(--glass);
  backdrop-filter:blur(var(--blur)) saturate(1.2);
  -webkit-backdrop-filter:blur(var(--blur)) saturate(1.2);
  border:1px solid var(--line);
  box-shadow:inset 0 1px 0 var(--glass-hi);
  margin-bottom:16px; flex-wrap:wrap;
}
.prof-avatar{
  width:64px; height:64px; flex-shrink:0; border-radius:18px;
  background:linear-gradient(145deg, var(--accent), color-mix(in srgb, var(--accent) 45%, var(--accent-2)));
  display:flex; align-items:center; justify-content:center;
  font-size:var(--fs-26); font-weight:800; color:var(--on-accent);
  box-shadow:0 10px 26px -10px var(--accent-glow);
}
.prof-hero-meta{ min-width:0; }
.prof-name{ font-size:var(--fs-20); font-weight:800; letter-spacing:-.01em; }

/* Матрица типов алертов: шапка с колонками каналов + строки */
.prof-mx-head{
  display:flex; align-items:center; gap:14px;
  padding:14px 18px; border-bottom:1px solid var(--line);
}
.prof-mx-head > .msi{ font-size:19px; color:var(--accent-ink); }
.prof-mx-head .t-h3{ font-size:var(--fs-15); font-weight:700; letter-spacing:0; }
.prof-rows{ padding:0; }
.prof-row{
  display:flex; align-items:center; gap:14px;
  padding:14px 18px; border-top:1px solid var(--line);
}
.prof-row:first-child{ border-top:none; }
.prof-row-ic{
  width:38px; height:38px; flex-shrink:0; border-radius:11px;
  background:var(--surface-2); border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center;
}
.prof-row-ic .msi{ font-size:19px; color:var(--accent-ink); }
/* строка типа: подпись 14/600, описание 11/ink-3 (как в макете) */
.prof-row .lever-label{ font-size:var(--fs-14); font-weight:600; }
.prof-row .t-sub{ font-size:var(--fs-11); color:var(--ink-3); margin-top:2px; }

/* колонки каналов (74px, выровнены с шапкой) */
.prof-col{ width:74px; flex-shrink:0; display:flex; align-items:center; justify-content:center; }
.prof-colhead{ gap:5px; font-size:var(--fs-11); font-weight:600; color:var(--ink-2); }
.prof-colhead .prof-chic{ font-size:var(--fs-15); color:var(--ink-3); }
/* узкие экраны: «На сайте» не влезала в колонку 74px с иконкой → прячем иконку, текст одной строкой */
@media (max-width:480px){ .prof-colhead .prof-chic{display:none} .prof-colhead{white-space:nowrap} }

/* неактивный Telegram-канал (нет привязки) */
.prof-col-off{ opacity:.42; }
.prof-col-off .switch{ pointer-events:none; }

/* иконка Telegram в шапке (тот же глиф, что в дизайне) */
.prof-tgico{
  width:14px; height:14px; flex-shrink:0;
  background-image:url('data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20240%20240%22%3E%3Ccircle%20cx=%22120%22%20cy=%22120%22%20r=%22120%22%20fill=%22%232AABEE%22/%3E%3Cpath%20fill=%22%23fff%22%20d=%22M53.5%20118.5%20169.5%2073.8c5.4-1.9%2010.1%201.3%208.3%209.5l-19.7%2093.2c-1.5%207.4-5.9%209.2-12%205.7l-33-24.3-15.9%2015.3c-1.8%201.8-3.3%203.3-6.7%203.3l2.4-33.9%2061.7-55.7c2.7-2.4-.6-3.7-4.1-1.4l-76.2%2048-32.8-10.2c-7.1-2.2-7.3-7.1%201.5-10.5z%22/%3E%3C/svg%3E');
  background-size:contain; background-repeat:no-repeat; background-position:center;
}

/* Карточка «Доставка в Telegram»: шапка как в макете (иконка 19px, заголовок 15/700) */
.prof-page .panel-head{ padding:14px 18px; }
.prof-page .panel-head .msi{ font-size:19px; }
.prof-page .panel-head .t-h3{ font-size:var(--fs-15); font-weight:700; letter-spacing:0; }
.prof-page .panel + .panel{ margin-top:16px; }

@media (max-width:560px){
  .prof-col{ width:56px; }
  .prof-row .t-sub{ display:none; }
}

/* ---------------------------- Экран: notif ---------------------------- */

/* Ширина страницы уведомлений по макету */
.ntf-page{max-width:860px}

/* Шапка/тулбар: точные отступы макета */
.ntf-page .page-head{margin-bottom:18px}
.ntf-page .page-head .t-h1{margin-bottom:0}
.ntf-page .page-head .btn-sec{height:38px;padding:0 14px;gap:7px}
.ntf-page .page-head .gap-sm{gap:9px}
.ntf-page .filters-row{gap:7px;margin-bottom:18px}
.ntf-page .ntf-item{gap:13px}

/* День = ОДНА стеклянная карточка; строки внутри разделены верхней гранью
   (а не отдельные карточки с отступами). Переопределяет .ntf-list из styles.css. */
.ntf-list.ntf-card{
  gap:0;
  background:var(--glass);
  backdrop-filter:blur(var(--blur)) saturate(1.2);
  -webkit-backdrop-filter:blur(var(--blur)) saturate(1.2);
  border:1px solid var(--line);
  border-radius:var(--r);
  box-shadow:inset 0 1px 0 var(--glass-hi);
  overflow:hidden;
}
.ntf-list.ntf-card .ntf-item{
  background:transparent;
  border:0;
  border-top:1px solid var(--line);
  border-radius:0;
  transition:background var(--dur-1) var(--ease);
}
.ntf-list.ntf-card .ntf-item:first-child{border-top:0}
.ntf-list.ntf-card .ntf-item:hover{border-color:var(--line);background:rgba(255,255,255,.045)}
/* непрочитанная строка внутри общей карточки — лёгкая акцентная подсветка без своей рамки */
.ntf-list.ntf-card .ntf-item.unread{
  background:color-mix(in srgb,var(--accent) 5%,transparent);
}
.ntf-list.ntf-card .ntf-item.unread:hover{
  background:rgba(255,255,255,.045);
}

/* Прочитанные строки приглушены */
.ntf-item.read{opacity:.62}
.ntf-item.read:hover{opacity:1}

/* Верхняя строка: заголовок + тег + точка непрочитанного */
.ntf-top{flex-wrap:wrap;gap:9px}

/* Тег типа алерта — прописной моноширинный нейтральный бордер-пилюля после заголовка */
.ntf-tag{
  font-family:var(--mono);
  font-size:var(--fs-10);
  font-weight:500;
  letter-spacing:.04em;
  text-transform:uppercase;
  white-space:nowrap;
  color:var(--ink-3);
  border:1px solid var(--line);
  padding:2px 6px;
  border-radius:5px;
  flex-shrink:0;
}

/* Инлайновая точка непрочитанного (в строке заголовка, а не в углу) */
.ntf-dot-i{width:7px;height:7px;border-radius:50%;background:var(--accent);flex-shrink:0}

/* Кнопка «отметить прочитанным» справа */
.ntf-mark{
  width:30px;height:30px;flex-shrink:0;
  border-radius:8px;background:transparent;border:none;
  color:var(--ink-3);
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  transition:background var(--dur-1) var(--ease),color var(--dur-1) var(--ease);
}
.ntf-mark:hover{background:var(--surface-3);color:var(--ink-1)}
.ntf-mark .msi{font-size:17px}

/* Пустое состояние фильтра — стеклянная карточка */
.ntf-empty{
  display:flex;flex-direction:column;align-items:center;gap:12px;
  padding:64px 24px;
  border-radius:var(--r);
  background:var(--glass);
  backdrop-filter:blur(var(--blur));
  -webkit-backdrop-filter:blur(var(--blur));
  border:1px solid var(--line);
  text-align:center;
}
.ntf-empty .msi{font-size:36px;color:var(--ink-3)}
.ntf-empty-t{font-size:var(--fs-15);font-weight:600}

/* ---------------------------- Экран: admin ---------------------------- */

/* ---- Шапка экрана (по макету: h2 23px/800, иконка accent-ink 25px, без подзаголовка) ---- */
.adm-head{margin-bottom:16px}
.t-h1.adm-title{display:flex;align-items:center;gap:11px;flex-wrap:wrap;font-size:var(--fs-22);font-weight:800;letter-spacing:-.02em;margin:0}
.adm-title .msi{font-size:25px;color:var(--accent-ink)}
/* Табы админки — отдельные стеклянные кнопки без общего контейнера (спек admin) */
.adm-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px;background:transparent;border:none;padding:0;border-radius:0}
.adm-tabs .chip{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 14px;border-radius:10px;font-size:var(--fs-13);font-weight:600;white-space:nowrap;background:var(--glass);border:1px solid var(--line);color:var(--ink-2)}
.adm-tabs .chip .msi{font-size:17px}
.adm-tabs .chip:hover{border-color:var(--line-2);color:var(--ink-1)}
.adm-tabs .chip.active{background:var(--accent-weak);border-color:var(--accent-line);color:var(--accent-ink)}

/* мелкие варианты общих контролов, которых нет в styles.css */
.btn-ghost.sm{height:30px;padding:0 11px;font-size:var(--fs-12);border-radius:8px;gap:6px;border:1px solid var(--line-2);background:var(--surface-2);color:var(--ink-1)}
.btn-ghost.sm .msi{font-size:15px}
.adm-cat-allbtns .btn-ghost{height:36px;padding:0 13px;font-size:var(--fs-13);font-weight:600;border-radius:9px;background:var(--hover-1)}
.adm-cat-allbtns .btn-ghost:hover{background:rgba(255,255,255,.09)}
.adm-cat-allbtns .btn-ghost .msi{font-size:16px}
.btn-sec.danger{color:var(--neg);border-color:color-mix(in srgb,var(--neg) 34%,transparent);background:color-mix(in srgb,var(--neg) 12%,transparent)}
.btn-sec.danger:hover{background:color-mix(in srgb,var(--neg) 18%,transparent)}
.badge.sm{padding:2px 8px;font-size:var(--fs-11)} /* форма пилюли (999px) — как у базового .badge */
.switch.lg{width:46px;height:26px}
.switch.lg::after{width:20px;height:20px}
.switch.lg.on::after{transform:translateX(20px)}
.switch:disabled,.switch.locked{opacity:.55}

.adm-dot{display:inline-block;width:7px;height:7px;border-radius:50%;flex-shrink:0}
.adm-dot.sm{width:6px;height:6px}

/* ---- Основное: каталог видов/типов ---- */
.adm-cat-head{display:flex;align-items:flex-start;gap:18px;flex-wrap:wrap;padding:16px 20px}
.adm-cat-hd-txt{flex:1 1 320px;min-width:0}
.adm-cat-head .t-h3{margin-bottom:5px}
.adm-cat-hd-right{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.adm-cat-count{text-align:right}
.adm-cat-num{font-family:var(--mono);font-size:var(--fs-24);font-weight:700;color:var(--ink-0);line-height:1;display:block}
.adm-cat-den{font-size:var(--fs-15);color:var(--ink-3)}
.adm-cat-count .t-sub{font-size:var(--fs-11);margin-top:3px}
.adm-cat-allbtns{display:flex;gap:7px}

.adm-sport-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(340px,100%),1fr));gap:12px;margin-top:14px}
.adm-sport-card{border-radius:14px;border:1px solid var(--line);background:var(--glass);overflow:hidden;transition:opacity var(--dur-2) var(--ease)}
.adm-sport-card.off{background:rgba(255,255,255,.015);opacity:.72}
.adm-sport-hd{display:flex;align-items:center;gap:13px;padding:14px 16px}
.adm-sport-hd .sico{width:40px;height:40px}
.adm-sport-meta{flex:1;min-width:0}
.adm-sport-name{font-size:var(--fs-15);font-weight:700;color:var(--ink-0);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.adm-sport-card.off .adm-sport-name{color:var(--ink-2)}
.adm-sport-sub{font-size:var(--fs-12);color:var(--ink-3);margin-top:2px}
.adm-type-list{padding:0 16px 14px;display:flex;flex-direction:column;gap:6px}
.adm-type-row{display:flex;align-items:center;gap:9px;padding:7px 11px;border-radius:9px;border:1px solid var(--line);background:var(--surface-1)}
.adm-type-row.locked{opacity:.45}
.adm-type-ic{font-size:var(--fs-16);color:var(--ink-2)}
.adm-type-lbl{flex:1;font-size:var(--fs-13);font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-1)}
.adm-type-row .switch{width:34px;height:20px}
.adm-type-row .switch::after{width:16px;height:16px}
.adm-type-row .switch.on::after{transform:translateX(14px)}

/* ---- Обновление матчей ---- */
.adm-msum{display:flex;align-items:center;gap:26px;flex-wrap:wrap;padding:16px 20px}
.adm-msum-stat{min-width:0}
.adm-msum-k{font-size:var(--fs-11);color:var(--ink-3);margin-bottom:3px}
.adm-msum-v{font-size:var(--fs-20);font-weight:700}
.adm-msum-v.warn{color:var(--warn)}
.adm-mnote{margin:10px 16px 14px;display:flex;align-items:center;gap:6px}
.adm-mnote .msi{font-size:15px;color:var(--accent-ink)}
.adm-mtbl .adm-mstatus{display:inline-flex;align-items:center;gap:7px;font-size:var(--fs-13);font-weight:600}

.adm-divider{display:flex;align-items:center;gap:10px;margin:10px 2px 2px}
.adm-divider>span:last-child{font-size:var(--fs-11);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-2);font-weight:700;white-space:nowrap}
.adm-divider .msi{font-size:17px;color:var(--accent-ink)}
.adm-divider::after{content:"";flex:1;height:1px;background:var(--line)}
.adm-divider-sm{margin:16px 0 12px}

/* ---- Прогнозы: сводка дообучения ---- */
.adm-train-sum{display:flex;gap:26px;flex-wrap:wrap;margin-bottom:16px}
.adm-tsum-k{font-size:var(--fs-11);color:var(--ink-3);margin-bottom:3px}
.adm-tsum-v{font-size:var(--fs-13);font-weight:600}

/* ---- Модель и калибровка ---- */
/* Модель и калибровка — 2 колонки: график калибровки слева, журнал отладки справа (как в макете) */
.adm-mdl-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
@media (max-width:920px){ .adm-mdl-cols{grid-template-columns:1fr} }
/* Калибровка — интерактив при наведении (в левой колонке ширина = колонка, не во весь экран) */
.adm-calib-wrap{position:relative}
.adm-calib-svg{width:100%;height:auto;display:block}
.adm-calib-tip{position:absolute;top:2px;transform:translateX(-50%);z-index:10;pointer-events:none;min-width:150px;padding:8px 10px;border-radius:9px;background:rgba(16,21,31,.98);border:1px solid var(--line-2);box-shadow:0 16px 40px -16px rgba(0,0,0,.85);opacity:0;transition:opacity var(--dur-1)}
.adm-calib-tip.show{opacity:1}
/* общий стиль строк тултипа (журнал + калибровка) */
.lht-date{font-size:var(--fs-11);color:var(--ink-2);margin-bottom:4px}
.lht-total{font-size:var(--fs-14);font-weight:700;color:var(--ink-0);margin-bottom:5px}
.lht-row{display:flex;align-items:center;gap:6px;font-size:var(--fs-11);color:var(--ink-1);margin-top:2px}
.lht-row b{margin-left:auto;font-weight:700;color:var(--ink-0)}
.lht-sw{width:8px;height:8px;border-radius:2px;flex-shrink:0}
.adm-ece-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.adm-ece-chip{display:flex;align-items:center;gap:7px;padding:5px 10px;border-radius:8px;background:var(--surface-1);border:1px solid var(--line)}
.adm-ece-bar{width:15px;height:3px;border-radius:2px;flex-shrink:0}
.adm-ece-lbl{font-size:var(--fs-12);font-weight:600}
.adm-ece-v{font-size:var(--fs-11);color:var(--ink-3)}
.adm-mdl-panel{overflow:hidden}
.adm-mdl-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.adm-mdl-head .grow{flex:1}
.adm-mdl-dl{display:flex;gap:6px}
.adm-mdl-row{display:flex;align-items:flex-start;gap:11px;padding:11px 16px;border-top:1px solid var(--line)}
.adm-mdl-badge{display:inline-flex;align-items:center;justify-content:center;padding:2px 7px;border-radius:5px;font-family:var(--mono);font-size:var(--fs-10);font-weight:700;flex-shrink:0}
.adm-mdl-body{flex:1;min-width:0}
.adm-mdl-msg{font-size:var(--fs-13);color:var(--ink-0)}
.adm-mdl-fields{font-size:var(--fs-11);color:var(--ink-3);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.adm-mdl-time{font-size:var(--fs-11);color:var(--ink-3);white-space:nowrap;flex-shrink:0}

/* ---- Сервер (мониторинг CPU/RAM/диска) ---- */
.srv-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);margin-bottom:var(--gap)}
.srv-kpi{background:var(--glass);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px}
.srv-kpi-hd{display:flex;align-items:center;gap:8px;color:var(--ink-2)}
.srv-kpi-hd .msi{font-size:20px;color:var(--accent-ink)}
.srv-kpi-lb{font-size:var(--fs-13);font-weight:600}
.srv-kpi-val{font-size:var(--fs-30);font-weight:700;line-height:1.1;margin:10px 0 8px;color:var(--ink-0);font-variant-numeric:tabular-nums}
.srv-kpi-bar{height:6px;border-radius:99px;background:rgba(255,255,255,0.07);overflow:hidden}
.srv-kpi-fill{height:100%;width:0;border-radius:99px;background:var(--pos);transition:width var(--dur-4) var(--ease),background var(--dur-4) var(--ease)}
.srv-kpi-sub{margin-top:8px;font-size:var(--fs-12);color:var(--ink-3);font-family:var(--mono)}
.srv-chart-hd{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.srv-chart{width:100%;height:230px}
.srv-range-panel .panel-head{margin-bottom:0}
.srv-range{margin-left:auto}
.srv-live{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-11);font-weight:700;letter-spacing:.04em;color:var(--pos);font-family:var(--mono)}
.srv-live-dot{width:7px;height:7px;border-radius:50%;background:var(--pos);animation:orpulse 1.6s var(--ease) infinite}
.srv-info{display:grid;grid-template-columns:1fr 1fr;gap:2px 24px;padding:6px 16px 14px}
.srv-info-r{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid var(--line)}
.srv-info-k{font-size:var(--fs-12);color:var(--ink-3);flex-shrink:0}
.srv-info-v{font-size:var(--fs-12);color:var(--ink-1);text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.srv-tip-t{font-size:var(--fs-11);color:var(--ink-2);margin-bottom:6px}
.srv-tip-r{display:flex;align-items:center;gap:7px;font-size:var(--fs-12);line-height:1.7}
.srv-tip-sw{width:9px;height:9px;border-radius:2px;flex-shrink:0}
.srv-tip-n{color:var(--ink-2);min-width:34px}
.srv-tip-r b{color:var(--ink-0)}
.srv-tip-x{color:var(--ink-3);margin-left:6px}
@media (max-width:760px){ .srv-kpis{grid-template-columns:1fr;gap:10px} .srv-info{grid-template-columns:1fr} .srv-chart{height:280px} .srv-range{margin-left:0} }

/* ---- База данных (размер + разбивка по таблицам) ---- */
.db-kpis{grid-template-columns:1fr 1fr;margin-bottom:4px}
.db-tbl-cap{margin:20px 0 10px}
.db-tbl td{padding:9px 12px}
.db-tbl th:nth-child(2),.db-tbl th:nth-child(3),.db-tsize,.db-trows{text-align:right;white-space:nowrap}
.db-tname{color:var(--ink-1)}
.db-tsize{color:var(--ink-0)}
.db-trows{color:var(--ink-3)}
.db-tbar{width:34%}
.db-bar{height:7px;border-radius:99px;background:rgba(255,255,255,.06);overflow:hidden}
.db-bar>span{display:block;height:100%;border-radius:99px;background:var(--accent)}
.db-note{margin-top:14px;line-height:1.5}
@media (max-width:760px){ .db-kpis{grid-template-columns:1fr} .db-tbar{display:none} }

/* ---- Пользователи ---- */
.adm-users-bar,.adm-logbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.adm-search{position:relative;flex:1 1 240px;min-width:200px}
.adm-search-ic{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:var(--fs-18);color:var(--ink-3);pointer-events:none}
.adm-search input{width:100%;height:40px;padding:0 12px 0 40px;border-radius:10px;background:var(--glass);border:1px solid var(--line);font-size:var(--fs-13);color:var(--ink-0);font-family:inherit}
.adm-search input:focus{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-weak);outline:none}
.scope-search:focus{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-weak);outline:none}
.adm-avatar{width:34px;height:34px;border-radius:10px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:var(--fs-12);font-weight:700;color:var(--accent-ink);background:var(--accent-weak);border:1px solid var(--accent-line)}
.adm-avatar.lg{width:52px;height:52px;border-radius:14px;font-size:var(--fs-18)}
.adm-utbl td{vertical-align:middle}
.adm-user-cell{display:flex;align-items:center;gap:11px;min-width:0}
.adm-user-nm{min-width:0}
.adm-user-name{display:block;font-size:var(--fs-14);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.adm-user-login{display:block;font-size:var(--fs-12);color:var(--ink-3)}
.adm-lastseen{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-12);color:var(--ink-2)}
.adm-user-row{cursor:pointer}
.adm-user-row:hover{background:var(--surface-1)}
.adm-users-foot{margin:0 2px}

/* карточка пользователя (модалка) */
.adm-uc-head{display:flex;align-items:center;gap:14px;padding:18px 20px;border-bottom:1px solid var(--line)}
.adm-uc-hd-txt{flex:1;min-width:0}
.adm-uc-name{font-size:var(--fs-17);font-weight:700}
.adm-uc-hd-txt>div:last-child{display:flex;align-items:center;gap:8px;margin-top:4px}
.adm-uc-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}
.adm-uc-stat{padding:12px 14px;border-radius:11px;background:var(--surface-1);border:1px solid var(--line)}
.adm-uc-k{font-size:var(--fs-11);color:var(--ink-3);margin-bottom:3px}
.adm-uc-v{font-size:var(--fs-17);font-weight:700}
.adm-uc-rows{display:flex;flex-direction:column;gap:10px}
.adm-uc-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.adm-uc-rk{font-size:var(--fs-13);color:var(--ink-2)}
.adm-uc-rv{display:inline-flex;align-items:center;gap:7px;font-size:var(--fs-13);font-weight:600}
.adm-uc-foot{display:flex;gap:10px}

/* ---- Журнал ---- */
.adm-svc-wrap{position:relative}
.adm-svc-wrap .btn-sec .msi{font-size:16px}
.adm-menu-dot{display:inline-block;width:8px;height:8px;border-radius:2px;flex-shrink:0}
.adm-menu{position:absolute;right:0;top:44px;z-index:25;width:204px;padding:6px;border-radius:12px;background:var(--glass-3);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--line-2);box-shadow:0 24px 60px -20px rgba(0,0,0,.8)}
.adm-menu-i{display:flex;align-items:center;gap:9px;width:100%;padding:8px 10px;border-radius:8px;font-size:var(--fs-13);color:var(--ink-1);text-align:left;cursor:pointer}
.adm-menu-i:hover{background:var(--surface-3);color:var(--ink-0)}
.adm-menu-i.active{color:var(--ink-0);background:var(--surface-3)}
.adm-live{gap:7px}
.adm-live-dot{width:8px;height:8px;border-radius:50%;background:var(--ink-3)}
.adm-live.on{color:var(--neg);border-color:color-mix(in srgb,var(--neg) 40%,transparent);background:color-mix(in srgb,var(--neg) 14%,transparent)}
.adm-live.on .adm-live-dot{background:var(--neg);animation:admpulse 1.4s ease-in-out infinite}
@keyframes admpulse{50%{opacity:.35}}
.adm-logcats,.adm-loglvls{margin-bottom:8px}
.adm-hist-panel{padding:14px 16px}
.adm-hist-hd{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.adm-hist-vol{display:flex;align-items:baseline;gap:8px}
.adm-hist-num{font-size:var(--fs-22);font-weight:700;color:var(--ink-0)}
.adm-hist-legend{display:flex;align-items:center;gap:14px;font-size:var(--fs-11);color:var(--ink-2);flex-wrap:wrap}
.adm-hist-legend>span{display:flex;align-items:center;gap:5px}
.adm-lg-sw{width:8px;height:8px;border-radius:2px}
.adm-hist-wrap{position:relative}
/* .lht-* (строки тултипа Chart) объявлены ВЫШЕ в «Модель и калибровка» — общие для журнала и калибровки */
/* полоска «выбран диапазон» */
.adm-hist-sel{display:flex;align-items:center;gap:8px;margin-bottom:10px;padding:6px 10px;border-radius:9px;background:var(--accent-weak);border:1px solid var(--accent-line);font-size:var(--fs-12);color:var(--ink-1)}
.adm-hist-sel>.msi{font-size:16px;color:var(--accent-ink)}
.adm-hist-selx{margin-left:auto;width:24px;height:24px;border-radius:6px;display:flex;align-items:center;justify-content:center;color:var(--ink-2)}
.adm-hist-selx:hover{background:var(--hover-2);color:var(--ink-0)}
.adm-hist-selx .msi{font-size:16px}
.log-cat{display:flex;align-items:center;gap:6px;font-size:var(--fs-12);color:var(--ink-1);min-width:0}

/* ---- Диагностика «не обработано» ---- */
.adm-diag-grp{margin-bottom:10px}
.adm-diag-grp-hd{display:flex;align-items:center;gap:9px;padding:8px 2px 6px;font-size:var(--fs-13);font-weight:700}
.adm-diag-grp-hd .faint{margin-left:auto;font-weight:600}
.adm-diag-row{display:flex;align-items:flex-start;gap:11px;padding:10px 4px;border-top:1px solid var(--line)}
.adm-diag-row .msi{font-size:17px;margin-top:1px}
.adm-diag-body{flex:1;min-width:0}
.adm-diag-match{font-size:var(--fs-13);font-weight:600}
.adm-diag-meta{font-size:var(--fs-12);color:var(--ink-3);margin-top:2px}
.adm-diag-reason{font-size:var(--fs-12);color:var(--ink-2);margin-top:5px;line-height:1.5}
.adm-diag-sum{margin:0 2px 4px;font-size:var(--fs-12)}
.adm-diag-cat{margin:6px 0 2px}
.adm-diag-cat-hd{display:flex;align-items:center;gap:8px;padding:7px 8px;margin:2px 0;border-radius:8px;background:var(--glass);font-size:var(--fs-12);font-weight:600;color:var(--ink-1)}
.adm-diag-cat-hd .msi{font-size:16px;color:var(--ink-2)}
.adm-diag-cat-hd .faint{margin-left:auto;font-weight:700;font-family:var(--mono)}
.adm-diag-more{padding:8px 4px 2px;font-size:var(--fs-12)}

.adm-au-role,.adm-uc-foot .btn-sec{width:100%}
.adm-au-role{display:flex}
.adm-au-role .cfg-seg{flex:1;text-align:center}

/* ---------------------------- Экран: modals ---------------------------- */

/* Строка «рынок-бейдж + выбор» (шапка ставки / info / линии) */
.mkt-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.mkt-badge{font-family:var(--mono);font-size:var(--fs-10);letter-spacing:.06em;text-transform:uppercase;
  color:var(--ink-2);border:1px solid var(--line);padding:2px 7px;border-radius:6px;white-space:nowrap}
.info-sel{margin-bottom:16px}

/* Ставка: ряд из двух плиток «Коэффициент» / «Доля Келли» */
.bet-tiles{display:flex;gap:10px;margin-top:14px}
.stat-tile{flex:1;padding:11px 14px;border-radius:11px;background:var(--surface-1);border:1px solid var(--line)}
.stat-tile-l{font-size:var(--fs-10);color:var(--ink-3);margin-bottom:4px}
.stat-tile-l.help{cursor:help}
.stat-tile-v{font-size:var(--fs-18);font-weight:700}
.stat-tile-v.accent{color:var(--accent-ink)}

/* Info-модалка «Как устроен прогноз» */
.info-card{padding:12px 14px;border-radius:11px;background:var(--surface-1);border:1px solid var(--line);
  font-size:var(--fs-13);color:var(--ink-1);line-height:1.5}
.src-list,.fac-list{display:flex;flex-direction:column;gap:6px}
.src-row,.fac-row{display:flex;align-items:flex-start;gap:9px;font-size:var(--fs-13);color:var(--ink-1);line-height:1.45}
.src-row .msi.src-ic{font-size:16px;color:var(--accent-ink);flex-shrink:0;margin-top:1px}
.fac-row .msi.fac-ic{font-size:16px;color:var(--pos);flex-shrink:0;margin-top:1px}

/* Три плитки качества: уверенность / случайность / полнота */
.qual-tiles{display:flex;gap:10px;margin-top:4px}
.qual-tile{flex:1;text-align:center;padding:10px;border-radius:10px;background:var(--surface-1);border:1px solid var(--line)}
.qual-v{font-size:var(--fs-18);font-weight:700}
.qual-v.pos{color:var(--pos)}
.qual-v.warn{color:var(--warn)}
.qual-v.accent{color:var(--accent-ink)}
.qual-l{font-size:var(--fs-10);color:var(--ink-3);margin-top:2px}

/* Свёртка «Цепочка вероятности и экономика» (доп. секция) */
.why-details{margin-top:16px;border-top:1px solid var(--line);padding-top:12px}
.why-details>summary{cursor:pointer;font-size:var(--fs-12);font-weight:600;color:var(--ink-2);list-style:none;
  display:flex;align-items:center;gap:6px}
.why-details>summary::-webkit-details-marker{display:none}
.why-details>summary .msi.wd-chev{font-size:18px;color:var(--ink-3);transition:transform var(--dur-2) var(--ease)}
.why-details[open]>summary .msi.wd-chev{transform:rotate(180deg)}
.why-details>summary:hover{color:var(--ink-0)}

/* История коэффициента: строка тренда с момента открытия */
.line-trend{display:flex;align-items:center;gap:7px;margin-top:14px;font-size:var(--fs-12);color:var(--ink-2)}
.line-trend .msi{font-size:17px}

/* «Скоро»-бейдж в рельсе (страница-заглушка .soon-* удалена вместе с экраном) */
.rail-badge{font-size:var(--fs-10);letter-spacing:.06em;color:var(--ink-3);border:1px solid var(--line);padding:2px 6px;border-radius:6px}

/* Прогноз стратегии: подпись + мини-бар прироста (спек settings) */
.strat-growth-sub{font-size:var(--fs-11);color:var(--ink-2);margin-top:3px}
.strat-growth-bar{margin-top:11px;height:6px;border-radius:3px;background:var(--surface-3);overflow:hidden}
.strat-growth-bar>i{display:block;height:100%;border-radius:3px}

/* Разбор ставок: строка фильтра вида внутри панели + chip времени в плане */
.bd-sport-row{display:flex;align-items:center;gap:7px;padding:10px 16px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.rec-time{display:inline-flex;align-items:center;gap:3px;color:var(--accent-ink);font-size:var(--fs-13);font-weight:600}
.rec-time .msi{font-size:15px}
.rec-exp{display:inline-flex;align-items:center;font-size:var(--fs-12);font-weight:700;color:var(--warn);font-family:var(--mono)}

/* --- ПЛАВНОСТЬ ИНТЕРАКТИВА: единый мягкий переход у контролов (дизайн-полировка) --- */
.chip,.dd-btn,.btn-sec,.btn-ghost,.icon-btn,.rail-item,.toggle,.dd-opt,.pm-btn,.px-info,.px-add,.badge,.seg button{
  transition:background-color var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease),color var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease),transform var(--dur-1) var(--ease-out)}
/* тактильный отклик нажатия */
.chip:active,.dd-btn:active,.btn-sec:active,.btn-ghost:active,.icon-btn:active,.toggle:active,.dd-opt:active,
.pm-btn:active:not(:disabled),.px-info:active,.px-add:active,.seg button:active,.btn:active,.pred-bet:active{transform:scale(.96)}
.switch::after{transition:transform var(--dur-2) var(--ease),width var(--dur-1) var(--ease)}
.switch:active::after{width:22px}
.switch.on:active::after{transform:translateX(14px)}

/* --- Каскадное появление карточек в лентах (стаггер первых восьми) --- */
.ev-card,.rec-card,.pcard,.ecard,.ntf-item,.mb-card{animation:orrise .3s var(--ease-out) both}
:is(.ev-card,.rec-card,.pcard,.ecard,.ntf-item,.mb-card):nth-child(2){animation-delay:35ms}
:is(.ev-card,.rec-card,.pcard,.ecard,.ntf-item,.mb-card):nth-child(3){animation-delay:70ms}
:is(.ev-card,.rec-card,.pcard,.ecard,.ntf-item,.mb-card):nth-child(4){animation-delay:105ms}
:is(.ev-card,.rec-card,.pcard,.ecard,.ntf-item,.mb-card):nth-child(5){animation-delay:140ms}
:is(.ev-card,.rec-card,.pcard,.ecard,.ntf-item,.mb-card):nth-child(6){animation-delay:175ms}
:is(.ev-card,.rec-card,.pcard,.ecard,.ntf-item,.mb-card):nth-child(7){animation-delay:210ms}
:is(.ev-card,.rec-card,.pcard,.ecard,.ntf-item,.mb-card):nth-child(n+8){animation-delay:240ms}

/* --- Импульс банк-пилюли при внешнем обновлении суммы --- */
@keyframes ortick{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--pos) 40%,transparent)}100%{box-shadow:0 0 0 11px transparent}}
.wallet.tick{animation:ortick .55s var(--ease-out)}

/* --- Доступность: пользователь просил меньше движения --- */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-delay:0s !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}
}

/* --- МОБИЛЬНАЯ ДОВОДКА (сверка с макетом + совр. стандарты) --- */
@media (max-width:760px){
  /* макет: мобильный топбар = бургер + кошелёк, без бренд-надписи */
  .mhead-brand{display:none}
  /* iOS зумит инпуты с font-size < 16px при фокусе — 16px ВСЕМ текстовым полям */
  .field input,.cfgnum,.lever-num,.adm-search input,.scope-search,.scope-cfg-in input,.arc-date input[type=date]{font-size:var(--fs-16)}
  .lever-num{width:64px}
  /* пол типографики для денег/процентов и навигации (10px нечитаемы на телефоне) */
  .ev-exp,.ev-gone{font-size:var(--fs-11)}
  .rec-stake-l{font-size:var(--fs-11)}
  .tab .tab-label{font-size:var(--fs-11)}
  /* уведомления: компактнее паддинги, иконка меньше */
  .ntf-item{padding:12px 13px;gap:10px}
  .ntf-ico{width:34px;height:34px}
  /* плитки модалок переносятся, а не сжимаются в столбики по ~85px */
  .bet-tiles,.qual-tiles{flex-wrap:wrap}
  .bet-tiles .stat-tile,.qual-tiles .qual-tile{min-width:120px}
  /* шапки карточек настроек: подзаголовок во всю ширину, сег/бейдж — новой строкой (не наезжают) */
  .cfg-head{flex-wrap:wrap}
  .cfg-head .min0{flex:1 1 55%}
  .cfg-head>.grow{display:none}
  .cfg-head .auto-seg-wrap,.cfg-head .scope-badge{order:5;flex-basis:100%;margin-top:4px}
  .cfg-head .auto-seg-wrap{flex-wrap:wrap}   /* ⓘ режима переносится под сег-группу, не распирая 320px */
  .cfg-head .auto-seg-wrap .cfg-seg-group{flex:1 1 auto;justify-content:space-between}
}
/* тач-цели: на грубом указателе — стандартные ≥44px (Apple HIG 44pt / Material 48dp) */
@media (pointer:coarse){
  .px-add,.ntf-mark,.px-info,.pm-btn,.modal-close,.pdm-undo,.lever-lock,.lever-off,.rec-done,
  .chart-tool,.magic-btn,.pass-toggle,.adm-hist-selx,.ev-collapse,.pred-dismiss,.pred-bet,
  .rail-collapse,.dd-eye,.icon-btn{min-width:44px;min-height:44px}
  .chip,.seg,.cfg-seg,.dd-opt{min-height:40px}
  .btn-sec,.dd-btn{min-height:44px}
  /* свитчи и микро-иконки: невидимая тач-зона вокруг, без роста визуала */
  .switch{position:relative}
  .switch::before{content:"";position:absolute;inset:-11px}
  .rec-why{position:relative}
  .rec-why::after{content:"";position:absolute;inset:-13px}
  .term{position:relative}
  .term::after{content:"";position:absolute;inset:-8px}
  /* удержание для подсказки (core.js peek): без системного выделения/callout на подсказываемом тексте */
  .term,.auto-mode{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
}

/* ============ Правки TODO: свёртка карточек, экспозиция, банк-виджеты, календарь ============ */
/* Тело карточки события (прогнозы) — плавная свёртка/разворот через slideReveal (height+fade) */
.ev-body{display:block}
.ev-body[hidden]{display:none}
.ev-card.no-anim{animation:none}
/* свёрнутая сводка (надёжность/ист.) — ТОЛЬКО у свёрнутой карточки */
.ev-card:not(.ev-collapsed) .ev-collapsed-sum{display:none}
.ev-exp .ev-exp-other{color:var(--ink-3);font-weight:400}

/* Кривая банка: метрики под графиком */
.mb-bank-panel .mb-bank-metrics{display:flex;justify-content:space-between;margin-top:14px}

/* Календарь доходов — вид месяца (сетка = единый компонент Chart calendar; листается по месяцам) */
.cal-nav{display:inline-flex;align-items:center;gap:8px}
.cal-title{font-size:var(--fs-13);min-width:118px;text-align:center;color:var(--ink-1)}
.cal-foot{display:flex;align-items:center;gap:8px;margin-top:12px}
/* Календарь доходов — сетка месяца (Пн-первый). Ячейка: номер дня + доход/потеря; фон по знаку. */
/* minmax(0,1fr): 1fr не сжимается ниже min-content ячейки («-92.5k») → сетка вылезала за экран на ≤390px */
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.cal-wd{text-align:center;font-size:var(--fs-11);font-weight:700;letter-spacing:.03em;color:var(--ink-3);padding:2px 0 4px}
.cal-cell{position:relative;min-height:52px;min-width:0;overflow:hidden;border-radius:10px;border:1px solid var(--line);background:var(--glass);padding:6px 7px;display:flex;flex-direction:column;justify-content:space-between;transition:transform var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease)}
.cal-cell.cal-empty{background:transparent;border-color:transparent}
.cal-cell.cal-has{cursor:default}
.cal-cell.cal-has:hover{transform:translateY(-2px);border-color:var(--accent)}
.cal-dnum{font-size:var(--fs-12);color:var(--ink-3);font-weight:600}
.cal-inc{font-size:var(--fs-12);font-weight:800;align-self:flex-end}
.cal-cell.cal-pos{background:rgba(58,210,159,.10);border-color:rgba(58,210,159,.30)}
.cal-cell.cal-pos .cal-inc{color:var(--pos)}
.cal-cell.cal-neg{background:rgba(240,90,90,.10);border-color:rgba(240,90,90,.30)}
.cal-cell.cal-neg .cal-inc{color:var(--neg)}
.cal-cell.cal-today{outline:2px solid var(--accent);outline-offset:1px}
@media (max-width:760px){
  .cal-grid{gap:4px} .cal-cell{min-height:44px;padding:4px 5px}
  .cal-dnum{font-size:var(--fs-11)} .cal-inc{font-size:var(--fs-10);letter-spacing:-.01em}
  /* шапка панели с переключателем месяца не влезает в одну строку на 360px */
  .panel-head:has(.cal-nav){flex-wrap:wrap;row-gap:4px}
}

/* Экран «Баланс» — вертикальный стек панелей с дыханием между блоками (§45 redesign) */
.bal-stack{display:flex;flex-direction:column;gap:20px}
.bal-stack .mb-kpis{margin-bottom:0}

/* История банка — богатые строки: вид · событие · что взято+линия · на кого исход · счёт · время · P/L (§45) */
.bh-list{display:flex;flex-direction:column;gap:8px}
.bh-item{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--surface-1);transition:border-color var(--dur-1) var(--ease),background var(--dur-1) var(--ease)}
.bh-item:hover{border-color:color-mix(in srgb,var(--accent) 30%,transparent);background:var(--surface-2)}
.bh-sico{width:38px;height:38px;border-radius:11px;margin-top:1px}
.bh-sico .msi{font-size:20px}
.bh-sico.bh-sico-x{--sc:var(--ink-3)}
.bh-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.bh-l1{display:flex;align-items:center;min-width:0}
.bh-event{font-size:var(--fs-14);font-weight:700;color:var(--ink-1);background:none;border:none;padding:0;font-family:inherit;text-align:left;display:inline-flex;align-items:center;gap:5px;max-width:100%;min-width:0}
button.bh-event.bh-open{cursor:pointer}
button.bh-event.bh-open:hover .bh-etext{text-decoration:underline;text-underline-offset:2px}
button.bh-event.bh-open:hover .msi{color:var(--accent-ink)}
.bh-etext{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.bh-event .msi{font-size:15px;color:var(--ink-3);flex-shrink:0}
.bh-l2{font-size:var(--fs-13);line-height:1.35;display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.bh-mk{color:var(--ink-2);font-weight:600}
.bh-sel{color:var(--ink-1);font-weight:600}
.bh-team{color:var(--accent-ink);font-weight:700}
.bh-meta{font-size:var(--fs-11);color:var(--ink-3);line-height:1.4}
.bh-right{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex-shrink:0;text-align:right}
.bh-badge{flex-shrink:0}
.bh-pnl{font-size:var(--fs-16);font-weight:800;line-height:1.1}
.bh-pnl.pos{color:var(--pos)}
.bh-pnl.neg{color:var(--neg)}
.bh-pnl.faint{color:var(--ink-3)}
.bh-stake{font-size:var(--fs-12);color:var(--ink-3);white-space:nowrap}
.bh-at{color:var(--ink-3)}
.bh-pager,.bd-pager{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:10px 14px}
.bd-pager{border-top:1px solid var(--line)}
@media (max-width:560px){
  .bh-item{gap:10px;padding:11px 12px}
  .bh-sico{width:34px;height:34px}
  .bh-right .bh-stake{display:none}
}

/* Кликабельная карточка рекомендации плана (переход в событие по клику вне кнопок) */
.rec-card.clickable{cursor:pointer}

/* ==========================================================================
   Единый компонент графиков — Chart(mount, spec) (charts.js). Рамка как .panel,
   тулбар контролов (диапазон/зум/лог/PNG/фуллскрин), тело-канвас, футер-легенда.
   ========================================================================== */
.chart{border-radius:var(--r);background:var(--glass);border:1px solid var(--line)}
.chart.chart-mini,.chart.chart-bare{background:transparent;border:0;border-radius:0;position:relative}
.chart-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:14px 16px;border-bottom:1px solid var(--line)}
.chart-ico{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.chart-ico .msi{font-size:22px;color:var(--accent-ink)}
.chart-htxt{min-width:0}
.chart-htxt .t-h3{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chart-badge{flex-shrink:0}
.chart-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.chart-toolbar-float{position:absolute;top:8px;right:8px;z-index:4}
.chart-tool{width:32px;height:32px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:9px;color:var(--ink-2);border:1px solid var(--line);background:transparent;cursor:pointer;transition:background var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out),border-color var(--dur-1) var(--ease-out)}
.chart-tool:hover{background:var(--surface-3);color:var(--ink-0)}
.chart-tool:active{transform:scale(.94)}
.chart-tool.on{color:var(--accent-ink);background:var(--accent-weak);border-color:var(--accent-line)}
.chart-tool .msi{font-size:18px}
.chart-toolbar-float .chart-tool{background:rgba(14,16,22,.55);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.chart-range{padding:3px}
.chart-range .seg{padding:4px 9px;font-size:var(--fs-12)}
.chart-dates{display:inline-flex;gap:6px;flex-wrap:wrap}
.chart-body{position:relative;width:100%}
.chart-bare>.chart-body{height:100%}   /* bare без spec.height заполняет высоту хоста (напр. .srv-chart) */
.chart:not(.chart-mini):not(.chart-bare)>.chart-body{padding:12px 14px 14px}
.chart-canvas{width:100%;height:100%;min-height:120px}
.chart-mini .chart-canvas,.chart-bare .chart-canvas{min-height:0}
.chart-foot{padding:10px 16px 12px}
.chart-foot:empty{display:none}
.chart-empty{padding:24px}
.chart-full{padding:6px 2px 2px}
.chart-full-canvas{width:100%;height:min(70vh,640px)}
@media (max-width:760px){
  .chart-head{align-items:flex-start}
  .chart-head .grow{display:none}
  .chart-toolbar{width:100%;justify-content:flex-start}
  .chart-range{flex-wrap:wrap}
}

/* ==========================================================================
   ПОЛИРОВКА UI (аудит 2026-07): busy-кнопки, скелетоны первой загрузки,
   индикатор «Сохранено», hover-lift кликабельных карточек.
   ========================================================================== */
/* Занятая async-кнопка (btnBusy в core.js): спиннер на месте иконки, повторные клики заблокированы */
.spinner.sm{width:16px;height:16px;border-width:2px}
.spinner.xs{width:14px;height:14px;border-width:2px}
.busy{pointer-events:none}
.busy>.msi{display:none}
.busy::before{content:"";width:15px;height:15px;flex-shrink:0;border-radius:50%;border:2px solid rgba(255,255,255,.22);border-top-color:currentColor;animation:orspin .8s linear infinite}

/* Скелетон первой загрузки (renderSkeleton в core.js) — шиммер по @keyframes orshimmer */
.skel{display:block;border-radius:7px;background:linear-gradient(90deg,var(--hover-1) 25%,rgba(255,255,255,.10) 38%,var(--hover-1) 55%);background-size:200% 100%;animation:orshimmer 1.3s linear infinite}
.skel-list{display:flex;flex-direction:column;gap:var(--gap)}
.skel-card{display:flex;align-items:center;gap:13px;padding:16px}
.skel-ico{width:38px;height:38px;border-radius:11px;flex-shrink:0}
.skel-lines{flex:1;display:flex;flex-direction:column;gap:9px;min-width:0}
.skel-l{height:12px}
.skel-l.sm{height:9px;opacity:.7}
.skel-r{width:64px;height:26px;border-radius:9px;flex-shrink:0}

/* Тихое подтверждение «Сохранено ✓» в шапке настроек (тост на каждое движение слайдера был бы спамом) */
.saved-chip{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-12);font-weight:600;color:var(--pos);opacity:0;transition:opacity var(--dur-2) var(--ease);pointer-events:none}
.saved-chip .msi{font-size:16px}
.saved-chip.show{opacity:1}

/* Лёгкий подъём кликабельных карточек (у .ev-card transform уже в transition) */
.ev-card:hover{transform:translateY(-1px)}
.ntf-item{transition:border-color var(--dur-2) var(--ease),background var(--dur-1) var(--ease),transform var(--dur-2) var(--ease)}
.ntf-item:hover{transform:translateY(-1px)}
.rec-card.clickable{transition:transform var(--dur-2) var(--ease),border-color var(--dur-2) var(--ease)}
.rec-card.clickable:hover{transform:translateY(-1px);border-color:var(--line-2)}

/* Confirm-модалка (confirmDialog в core.js) + danger-вариант основной кнопки */
.cfm-text{font-size:var(--fs-13);color:var(--ink-1);line-height:1.6;white-space:pre-line}
.btn.btn-danger{color:var(--ink-on-color);
  background:linear-gradient(180deg,color-mix(in srgb,var(--neg) 88%,white),var(--neg));
  box-shadow:0 12px 30px -12px color-mix(in srgb,var(--neg) 50%,transparent),inset 0 1px 0 rgba(255,255,255,.35)}

/* Длинные системные уведомления: свёртка до 5 строк + «Показать полностью» */
.ntf-body.clamp{display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.ntf-expand{display:inline-flex;align-items:center;gap:4px;margin-top:5px;font-size:var(--fs-11);font-weight:600;color:var(--accent-ink);background:none;border:none;padding:0;cursor:pointer}
.ntf-expand:hover{text-decoration:underline}
.ntf-expand .msi{font-size:14px}

/* Микро-подтверждение приёма ставки: «Принять» коротко становится зелёной галочкой */
.rab-ok.done-ok{background:var(--pos);box-shadow:none;filter:none}
#betAccept.done-ok{background:var(--pos);box-shadow:none;filter:none}

/* ═══ «✨ МАГИЯ» (автопилот дисциплины, карточка «Автоматизация») ═══ */
.magic-btn{width:34px;height:34px;border-radius:10px;border:1px solid var(--line);background:var(--glass);
  font-size:var(--fs-16);line-height:1;cursor:pointer;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;
  transition:transform var(--dur-2) var(--ease),border-color var(--dur-2) var(--ease),box-shadow var(--dur-2) var(--ease);filter:grayscale(1);opacity:.75}
.magic-btn:hover{transform:translateY(-1px);border-color:var(--line-2);filter:grayscale(.4);opacity:1}
.magic-btn:active{transform:scale(.94)}
.magic-btn.on{filter:none;opacity:1;border-color:color-mix(in srgb,var(--accent) 60%,transparent);
  background:color-mix(in srgb,var(--accent) 16%,var(--glass));
  box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent),0 0 22px -6px color-mix(in srgb,var(--accent) 70%,transparent);
  animation:orglow 2.6s var(--ease) infinite}
/* «РАБОТАЮЩАЯ МАГИЯ»: дышащая акцент-рамка карточки + переливающаяся полоса статуса + пульс-точка.
   (клон autopulse в акцент-ирисе; reduced-motion гасится глобальным блоком в конце файла) */
@keyframes magicpulse{
  0%,100%{box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 32%,transparent),0 0 26px -10px color-mix(in srgb,var(--accent) 45%,transparent)}
  50%{box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 55%,transparent),0 0 44px -6px color-mix(in srgb,var(--accent) 70%,transparent)}}
.auto-card.magic{border-color:color-mix(in srgb,var(--accent) 42%,transparent);animation:magicpulse 3.2s var(--ease) infinite}
.magic-status{position:relative;overflow:hidden;padding:10px 16px;border-top:1px solid var(--line);color:var(--ink-1);font-size:var(--fs-13);line-height:1.65}
.magic-status::after{content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(105deg,transparent 40%,color-mix(in srgb,var(--accent) 9%,transparent) 50%,transparent 60%);
  background-size:220% 100%;animation:orshimmer 3.8s linear infinite}
.magic-status b{color:var(--ink-0)}
.magic-live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;vertical-align:middle;
  background:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent);animation:orpulse 1.8s var(--ease) infinite}
.magic-pack{display:inline-block;padding:1px 8px;border-radius:7px;margin:1px 4px 1px 0;font-size:var(--fs-11);
  color:var(--accent-ink);background:color-mix(in srgb,var(--accent) 12%,transparent);border:1px solid color-mix(in srgb,var(--accent) 26%,transparent)}
.magic-lg{display:inline-block;padding:1px 7px;border-radius:7px;background:color-mix(in srgb,var(--neg) 14%,transparent);
  color:var(--neg);font-size:var(--fs-11);margin:1px 2px 1px 0;border:1px solid color-mix(in srgb,var(--neg) 25%,transparent)}
.magic-when{color:var(--ink-3);font-size:var(--fs-12);margin-left:6px}
.magic-when .msi{font-size:var(--fs-13);vertical-align:-2px;animation:orspin 1.6s linear infinite}
.lever-magic{display:inline-flex;margin-left:6px;font-size:var(--fs-12);line-height:1;vertical-align:middle;cursor:help;filter:saturate(1.2)}
/* МАГИЯ ВЛАДЕЕТ НАСТРОЙКАМИ: карточки стратегии пригашены (контролы disabled в рендере + гард в
   обработчиках; это визуальный слой «заперто») — карточка «Автоматизация» с магией остаётся живой */
.cfg-main.magic-locked .cfg-card:not(.auto-card){opacity:.6;filter:saturate(.72)}
.cfg-main.magic-locked .cfg-card:not(.auto-card):hover{opacity:.78}
/* Заблокированные контролы настроек (магия / выключенный фильтр / глобальный скоуп) — серые и некликабельные */
.cfg-card :disabled,.cfg-card button[disabled],.cfg-head-acts button:disabled{opacity:.42;cursor:not-allowed;pointer-events:none}
.cfg-seg:disabled,.cfg-seg[disabled]{opacity:.42;cursor:not-allowed;pointer-events:none;background:transparent!important;color:var(--ink-3)!important}
.dd-btn:disabled,.dd-btn[disabled]{opacity:.5;cursor:not-allowed;pointer-events:none}
/* бейдж «✨ Магия ведёт план» в шапке экрана «План» */
.plan-magic-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:999px;
  font-size:var(--fs-12);font-weight:600;color:var(--accent-ink);white-space:nowrap;
  background:color-mix(in srgb,var(--accent) 13%,transparent);border:1px solid color-mix(in srgb,var(--accent) 32%,transparent);
  animation:orglow 3.2s var(--ease) infinite}

/* §69: ссылки «Открыть в Лиге Ставок» (план/событие) */
.rec-ls{text-decoration:none}
.rec-ls:hover{color:var(--accent);border-color:var(--accent-line)}
.hero-ls{flex-shrink:0;text-decoration:none;gap:5px}
/* «Магия колдует над планом» — заставка на экране «План», пока тюнер перекалибрует пакет и
   пересобирает план (plan.js: magicPrepHTML). Никаких виджетов, пока расчёты не завершатся. */
.magic-prep{display:flex;align-items:center;justify-content:center;min-height:56vh;padding:24px 16px}
.magic-prep-card{max-width:480px;width:100%;text-align:center;padding:36px 28px 30px;border-radius:var(--r);
  border:1px solid color-mix(in srgb,var(--accent) 26%,var(--line));background:var(--glass);
  box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 10%,transparent),0 24px 60px -30px color-mix(in srgb,var(--accent) 55%,transparent);
  animation:orrise .4s var(--ease) both}
.magic-prep-orb{position:relative;width:132px;height:132px;margin:0 auto 22px}
.mp-halo{position:absolute;inset:4px;border-radius:50%;
  background:radial-gradient(circle at 50% 46%,color-mix(in srgb,var(--accent) 55%,transparent),transparent 66%);
  filter:blur(6px);animation:mphalo 2.6s var(--ease) infinite}
/* эмодзи-глифы — декоративная арт-графика (не типографика): размер в rem, как иконочный глиф, а не по шкале --fs-* */
.mp-wiz{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:4rem;line-height:1;
  filter:drop-shadow(0 6px 14px color-mix(in srgb,var(--accent) 45%,transparent));animation:mpfloat 3s var(--ease) infinite}
.mp-spark{position:absolute;font-size:1.25rem;opacity:0;animation:mptwinkle 2.2s var(--ease) infinite}
.mp-s1{top:0;left:14px}
.mp-s2{top:16px;right:6px;font-size:1rem;animation-delay:.55s}
.mp-s3{bottom:8px;left:2px;font-size:.9rem;animation-delay:1.1s}
.mp-s4{bottom:0;right:20px;animation-delay:1.65s}
.magic-prep-title{font-size:var(--fs-20);font-weight:700;color:var(--ink-0);margin-bottom:8px}
.magic-prep-sub{font-size:var(--fs-14);color:var(--accent-ink);min-height:20px;font-weight:600}
.magic-prep-bar{position:relative;height:5px;border-radius:999px;overflow:hidden;margin:18px auto 14px;max-width:280px;
  background:color-mix(in srgb,var(--accent) 14%,transparent)}
.magic-prep-bar>span{position:absolute;top:0;bottom:0;width:38%;border-radius:999px;
  background:linear-gradient(90deg,transparent,var(--accent),transparent);animation:mpbar 1.5s var(--ease) infinite}
.magic-prep-note{font-size:var(--fs-12);color:var(--ink-3);line-height:1.6;max-width:360px;margin:0 auto}
@keyframes mphalo{0%,100%{opacity:.5;transform:scale(.92)}50%{opacity:.9;transform:scale(1.06)}}
@keyframes mpfloat{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-9px) rotate(3deg)}}
@keyframes mptwinkle{0%,100%{opacity:0;transform:scale(.5)}45%{opacity:1;transform:scale(1.15)}}
@keyframes mpbar{0%{left:-40%}100%{left:100%}}
