/* Цифры — отдельным шрифтом (Bahnschrift, есть в Windows 10/11), буквы остаются в основном. */
@font-face { font-family: "NovaNum"; src: local("Bahnschrift"), local("Bahnschrift Regular"); font-weight: 100 900; unicode-range: U+0030-0039; }
:where(body.nova-ui) :is(button, input, select, textarea) { font-family: inherit; }
/* ════════════════════════════════════════════════════════════════════════════
   NOVA UI — дизайн-слой поверх styles.css
   • цвета и темы — только через переменные --nv-* (переключаются классом body.theme-*)
   • правила вложены в body.nova-ui:not(#nv) — это даёт приоритет над старыми
     поштучными правилами тем, не трогая логику и вёрстку касс/карты/таблиц
   ════════════════════════════════════════════════════════════════════════════ */

/* ── Токены тем ─────────────────────────────────────────────────────────────── */
body.nova-ui {
  --nv-bg: #090c10;            --nv-bg-2: #0d1218;
  --nv-side: #0b0e13;          --nv-surface: #12171e;   --nv-surface-2: #181e27;
  --nv-border: rgba(255,255,255,.08);  --nv-border-strong: rgba(255,255,255,.16);
  --nv-text: #eef2f7;          --nv-muted: rgba(238,242,247,.56);   --nv-faint: rgba(238,242,247,.34);
  --nv-accent: #2f81d8;        --nv-accent-fg: #fff;    --nv-accent-soft: rgba(47,129,216,.16);
  --nv-glow: rgba(47,129,216,.20);
  --nv-good: #3fb97a;  --nv-warn: #e3a93a;  --nv-bad: #e5534b;
  --nv-radius: 14px;   --nv-tile-radius: 20px;
  --nv-shadow: 0 14px 40px rgba(0,0,0,.28);
  --nv-mono: "NovaNum", "Cascadia Mono", "JetBrains Mono", ui-monospace, Consolas, monospace;
  --nv-font: "NovaNum", Inter, "Segoe UI Variable Text", "Segoe UI", system-ui, Arial, sans-serif;
  color-scheme: dark;
}
body.nova-ui.theme-dark         { --nv-bg:#0d1117; --nv-bg-2:#10161e; --nv-side:#0b0f14; --nv-surface:#161b22; --nv-surface-2:#1c232c; --nv-accent:#58a6ff; --nv-accent-fg:#06121f; --nv-accent-soft:rgba(88,166,255,.15); --nv-glow:rgba(88,166,255,.16); }
body.nova-ui.theme-pixel        { --nv-bg:#000; --nv-bg-2:#04060a; --nv-side:#000; --nv-surface:#0a0d12; --nv-surface-2:#10151c; --nv-accent:#19e68c; --nv-accent-fg:#00160c; --nv-accent-soft:rgba(25,230,140,.14); --nv-glow:rgba(25,230,140,.14); --nv-radius:4px; --nv-tile-radius:6px; --nv-border:rgba(25,230,140,.22); }
body.nova-ui.theme-purple       { --nv-bg:#0d0914; --nv-bg-2:#150e22; --nv-side:#0b0710; --nv-surface:#17101f; --nv-surface-2:#1e1529; --nv-accent:#8b5cf6; --nv-accent-soft:rgba(139,92,246,.18); --nv-glow:rgba(139,92,246,.22); }
body.nova-ui.theme-violet       { --nv-bg:#0b0012; --nv-bg-2:#14001f; --nv-side:#09000f; --nv-surface:#170722; --nv-surface-2:#1f0b2d; --nv-accent:#c026d3; --nv-accent-soft:rgba(192,38,211,.18); --nv-glow:rgba(192,38,211,.22); }
body.nova-ui.theme-lime         { --nv-bg:#040b04; --nv-bg-2:#08140a; --nv-side:#030803; --nv-surface:#0c160c; --nv-surface-2:#112011; --nv-accent:#4ade80; --nv-accent-fg:#03140a; --nv-accent-soft:rgba(74,222,128,.15); --nv-glow:rgba(74,222,128,.18); }
body.nova-ui.theme-red          { --nv-bg:#0e0808; --nv-bg-2:#170d0d; --nv-side:#0b0606; --nv-surface:#1a1010; --nv-surface-2:#231515; --nv-accent:#e53935; --nv-accent-soft:rgba(229,57,53,.17); --nv-glow:rgba(229,57,53,.2); }
body.nova-ui.theme-acid         { --nv-bg:#060c00; --nv-bg-2:#0d1700; --nv-side:#050900; --nv-surface:#101a05; --nv-surface-2:#16240a; --nv-accent:#c6f000; --nv-accent-fg:#101800; --nv-accent-soft:rgba(198,240,0,.14); --nv-glow:rgba(198,240,0,.16); }
body.nova-ui.theme-yellow       { --nv-bg:#0c0900; --nv-bg-2:#150f00; --nv-side:#090700; --nv-surface:#191203; --nv-surface-2:#221a07; --nv-accent:#ffc400; --nv-accent-fg:#1a1200; --nv-accent-soft:rgba(255,196,0,.15); --nv-glow:rgba(255,196,0,.17); }
body.nova-ui.theme-pink         { --nv-bg:#0f0008; --nv-bg-2:#190010; --nv-side:#0a0006; --nv-surface:#1c0a14; --nv-surface-2:#26101c; --nv-accent:#ff2d87; --nv-accent-soft:rgba(255,45,135,.16); --nv-glow:rgba(255,45,135,.2); }
/* светлые темы */
body.nova-ui.theme-light-purple { --nv-bg:#f1ecff; --nv-bg-2:#e7defe; --nv-side:#f7f3ff; --nv-surface:#ffffff; --nv-surface-2:#f3edff; --nv-border:rgba(76,29,149,.14); --nv-border-strong:rgba(76,29,149,.28); --nv-text:#1f0b3d; --nv-muted:rgba(31,11,61,.58); --nv-faint:rgba(31,11,61,.38); --nv-accent:#7c3aed; --nv-accent-soft:rgba(124,58,237,.12); --nv-glow:rgba(124,58,237,.14); --nv-shadow:0 12px 30px rgba(76,29,149,.10); color-scheme: light; }
body.nova-ui.theme-silver       { --nv-bg:#eceff3; --nv-bg-2:#e3e8ee; --nv-side:#f4f6f9; --nv-surface:#ffffff; --nv-surface-2:#eef1f5; --nv-border:rgba(40,60,80,.13); --nv-border-strong:rgba(40,60,80,.26); --nv-text:#18232d; --nv-muted:rgba(24,35,45,.58); --nv-faint:rgba(24,35,45,.38); --nv-accent:#3b6a99; --nv-accent-soft:rgba(59,106,153,.12); --nv-glow:rgba(59,106,153,.13); --nv-shadow:0 12px 30px rgba(40,60,80,.10); color-scheme: light; }

/* ── Каркас ─────────────────────────────────────────────────────────────────── */
body.nova-ui:not(#nv) {
  font-family: var(--nv-font);
  background: var(--nv-bg);
  color: var(--nv-text);
  letter-spacing: .005em;

  .main {
    background:
      radial-gradient(900px 420px at 82% -6%, var(--nv-glow), transparent 62%),
      linear-gradient(180deg, var(--nv-bg-2), var(--nv-bg) 60%);
    color: var(--nv-text);
    padding: 22px 28px;
    gap: 16px;
  }

  /* сайдбар */
  .sidebar {
    background: var(--nv-side);
    border-right: 1px solid var(--nv-border);
    padding: 14px 12px;
    gap: 12px;
    box-shadow: none;
  }
  .brand { gap: 10px; padding: 2px 4px; }
  .brand-mark { width: 38px; height: 38px; border-radius: 11px; box-shadow: none; background: transparent; }
  .brand-title { font-size: 18px; font-weight: 800; letter-spacing: .06em; color: var(--nv-text); }
  .brand-subtitle { font-size: 11px; color: var(--nv-faint); letter-spacing: .02em; }
  .sidebar-toggle { width: 26px; height: 26px; border-radius: 8px; background: var(--nv-surface); border: 1px solid var(--nv-border); color: var(--nv-muted); }
  .sidebar-toggle:hover { background: var(--nv-surface-2); color: var(--nv-text); }
  .muted { color: var(--nv-muted); }

  /* шапка страницы */
  .page-title { font-size: 24px; font-weight: 750; letter-spacing: -.01em; color: var(--nv-text); }
  .page-subtitle { color: var(--nv-muted); font-size: 13px; margin-top: 3px; }
  .operator-panel { display: none; }          /* кто на смене — теперь снизу в сайдбаре */


  /* модалки и тосты */
  .modal-backdrop { background: rgba(4,6,10,.62); backdrop-filter: blur(6px); }
  .modal { background: var(--nv-surface); border: 1px solid var(--nv-border-strong); border-radius: 18px; color: var(--nv-text); box-shadow: 0 30px 90px rgba(0,0,0,.5); }
  .modal h2 { color: var(--nv-text); }
  .modal p { color: var(--nv-muted); }
  .toast:not(:empty) { background: var(--nv-surface); border: 1px solid var(--nv-accent); color: var(--nv-text); border-radius: 12px; box-shadow: var(--nv-shadow); }
  .toast.error:not(:empty) { border-color: var(--nv-bad); }

  /* полосы прокрутки */
  * { scrollbar-color: var(--nv-border-strong) transparent; }
  ::-webkit-scrollbar-thumb { background: var(--nv-border-strong); }
  ::-webkit-scrollbar-thumb:hover { background: var(--nv-faint); }

  /* верхние кнопки (тема / поиск / поддержка) */
  .top-actions > select#themeSelect { display: none; }   /* тема выбирается из меню внизу слева */
  .top-actions > button, .top-actions > select { height: 34px; }
  /* кнопки в шапке заданы инлайн-стилями в index.html — перекрываем под тему */
  .top-actions > button:not(#refreshButton) { background: var(--nv-surface) !important; color: var(--nv-muted) !important; border: 1px solid var(--nv-border) !important; border-radius: 10px !important; }
  .top-actions > button:not(#refreshButton):hover { color: var(--nv-text) !important; border-color: var(--nv-accent) !important; }
  #supportChatBtn { color: var(--nv-bad) !important; background: color-mix(in srgb, var(--nv-bad) 10%, transparent) !important; border-color: color-mix(in srgb, var(--nv-bad) 38%, transparent) !important; }
}

/* ── Навигация с группами ───────────────────────────────────────────────────── */
body.nova-ui:not(#nv) .nav { gap: 2px; padding: 4px 2px 12px; }
.nv-group { display: flex; flex-direction: column; margin-top: 8px; }
.nv-group:first-child { margin-top: 0; }
.nv-ghead {
  display: flex; align-items: center; gap: 8px; width: 100%;
  padding: 6px 10px; cursor: pointer; user-select: none;
  font-family: var(--nv-mono); font-size: 10.5px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
  color: var(--nv-faint); border-radius: 8px;
}
.nv-ghead:hover { color: var(--nv-muted); background: color-mix(in srgb, var(--nv-text) 4%, transparent); }
.nv-ghead .nv-chev { margin-left: auto; width: 14px; height: 14px; transition: transform .2s; flex-shrink: 0; }
.nv-group.closed .nv-chev { transform: rotate(-90deg); }
.nv-gitems { display: flex; flex-direction: column; gap: 1px; overflow: hidden; max-height: 900px; transition: max-height .25s ease, opacity .2s; }
.nv-group.closed .nv-gitems { max-height: 0; opacity: 0; pointer-events: none; }
.nv-item {
  display: flex; align-items: center; gap: 11px; height: 36px; padding: 0 10px; margin: 0 2px;
  border-radius: 10px; cursor: pointer; user-select: none; white-space: nowrap;
  font-size: 13.5px; font-weight: 550; color: var(--nv-muted);
  border: 1px solid transparent; outline: none;
  transition: background .12s, color .12s;
}
.nv-item:hover { background: color-mix(in srgb, var(--nv-text) 6%, transparent); color: var(--nv-text); }
.nv-item:focus-visible { border-color: var(--nv-accent); }
.nv-item.active {
  background: var(--nv-accent-soft); color: var(--nv-text);
  border-color: color-mix(in srgb, var(--nv-accent) 38%, transparent);
  box-shadow: inset 3px 0 0 var(--nv-accent);
}
.nv-item.active .nv-ic { color: var(--nv-accent); }
.nv-ic { width: 18px; height: 18px; flex-shrink: 0; display: grid; place-items: center; color: var(--nv-faint); }
.nv-ic svg { width: 18px; height: 18px; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.nv-item:hover .nv-ic { color: var(--nv-muted); }
.nv-label { overflow: hidden; text-overflow: ellipsis; }

/* свёрнутый сайдбар: только иконки */
body.sidebar-collapsed .nv-ghead { height: 1px; padding: 0; margin: 8px 8px 4px; background: var(--nv-border); border-radius: 0; font-size: 0; }
body.sidebar-collapsed .nv-ghead * { display: none; }
body.sidebar-collapsed .nv-group.closed .nv-gitems { max-height: 900px; opacity: 1; pointer-events: auto; }
body.sidebar-collapsed .nv-item { justify-content: center; padding: 0; margin: 0; width: 40px; }
body.sidebar-collapsed .nv-label { display: none; }

/* ── Карточка «кто на смене» внизу ──────────────────────────────────────────── */
.nv-user {
  position: relative; flex-shrink: 0; display: flex; align-items: center; gap: 10px;
  padding: 10px; border-radius: 14px;
  background: var(--nv-surface); border: 1px solid var(--nv-border);
}
.nv-avatar {
  width: 36px; height: 36px; border-radius: 10px; flex-shrink: 0; display: grid; place-items: center;
  font-size: 13px; font-weight: 800; letter-spacing: .02em; color: var(--nv-accent-fg);
  background: linear-gradient(135deg, var(--nv-accent), color-mix(in srgb, var(--nv-accent) 55%, #7c3aed));
}
.nv-user-info { min-width: 0; flex: 1; line-height: 1.25; }
.nv-user-name { font-size: 13px; font-weight: 700; color: var(--nv-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nv-user-role { font-size: 11.5px; color: var(--nv-muted); }
.nv-user-shift { font-size: 11px; color: var(--nv-good); font-weight: 650; margin-top: 1px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.nova-ui:not(#nv) .nv-kebab { width: 30px; height: 30px; padding: 0; border-radius: 9px; background: transparent; border: 1px solid var(--nv-border); color: var(--nv-muted); display: grid; place-items: center; flex-shrink: 0; }
body.nova-ui:not(#nv) .nv-kebab:hover { background: var(--nv-surface-2); color: var(--nv-text); border-color: var(--nv-border-strong); }
.nv-kebab svg { width: 16px; height: 16px; fill: currentColor; }
body.sidebar-collapsed .nv-user { padding: 6px; justify-content: center; }
body.sidebar-collapsed .nv-user-info, body.sidebar-collapsed.nova-ui:not(#nv) .nv-kebab { display: none; }
body.login-mode .nv-user { display: none; }

/* меню: тема и выход */
.nv-pop {
  position: absolute; left: 0; right: 0; bottom: calc(100% + 8px); z-index: 300;
  background: var(--nv-surface); border: 1px solid var(--nv-border-strong); border-radius: 14px;
  box-shadow: 0 24px 60px rgba(0,0,0,.5); padding: 8px; display: none; min-width: 230px;
}
.nv-pop.open { display: block; }
/* в свёрнутом меню окно темы/выхода раньше обрезалось краем узкой панели — выносим его вправо от панели */
body.sidebar-collapsed .nv-pop { position: fixed; left: 72px; right: auto; bottom: 14px; width: 250px; z-index: 600; }
.nv-pop-title { font-family: var(--nv-mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--nv-faint); padding: 6px 8px 8px; }
.nv-themes { display: grid; grid-template-columns: repeat(6, 1fr); gap: 8px; padding: 0 8px 10px; }
.nv-swatch {
  width: 100%; aspect-ratio: 1; border-radius: 10px; cursor: pointer; padding: 0; height: auto;
  border: 2px solid transparent !important; outline: 1px solid var(--nv-border);
  background: linear-gradient(135deg, var(--sw-bg) 50%, var(--sw-ac) 50%) !important;
}
.nv-swatch:hover { transform: scale(1.08); }
.nv-swatch.on { border-color: var(--nv-text) !important; }
.nv-pop-item {
  display: flex; align-items: center; gap: 10px; width: 100%; height: 36px; padding: 0 10px; border-radius: 9px;
  cursor: pointer; color: var(--nv-text); font-size: 13.5px; font-weight: 600; background: transparent; border: 0;
}
.nv-pop-item:hover { background: var(--nv-accent-soft); }
.nv-pop-item.danger { color: var(--nv-bad); }
.nv-pop-item svg { width: 16px; height: 16px; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

/* ── Дашборд ────────────────────────────────────────────────────────────────── */
.nvd { display: grid; gap: 14px; padding-bottom: 28px; }
.nvd-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.nvd-eyebrow { font-family: var(--nv-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--nv-faint); }
.nvd-title { font-size: 26px; font-weight: 800; letter-spacing: -.01em; margin-top: 2px; }
.nvd-updated { font-size: 12.5px; color: var(--nv-muted); margin-top: 2px; }
.nvd-tabs { display: flex; gap: 8px; flex-wrap: wrap; }
body.nova-ui:not(#nv) .nvd-tab { height: 36px; padding: 0 18px; border-radius: 999px; background: var(--nv-surface); }
body.nova-ui:not(#nv) .nvd-tab.on { background: var(--nv-accent-soft); border-color: var(--nv-accent); }
.nvd-grid { display: grid; gap: 14px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.nvd-row2 { display: grid; gap: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.nvd-row21 { display: grid; gap: 14px; grid-template-columns: 2fr 1fr; }
@media (max-width: 1280px) { .nvd-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .nvd-row21 { grid-template-columns: 1fr; } }
@media (max-width: 760px)  { .nvd-grid, .nvd-row2 { grid-template-columns: 1fr; } }

.nv-tile {
  position: relative; overflow: hidden; padding: 18px 20px 16px; min-width: 0;
  background: linear-gradient(180deg, color-mix(in srgb, var(--nv-surface-2) 75%, transparent), var(--nv-surface));
  border: 1px solid var(--nv-border); border-radius: var(--nv-tile-radius); box-shadow: var(--nv-shadow);
}

/* ── Общие элементы: НУЛЕВАЯ специфичность (:where) — стили конкретных компонентов (плитки товаров, вкладки касс и т.д.) остаются главнее ── */
:where(body.nova-ui) {
  /* кнопки */
  button {
    height: 38px; border-radius: 11px; font-weight: 650; font-size: 13.5px;
    background: var(--nv-surface-2); color: var(--nv-text);
    border: 1px solid var(--nv-border);
    transition: background .15s, border-color .15s, color .15s, transform .08s;
  }
  button:hover { background: var(--nv-accent-soft); border-color: var(--nv-accent); color: var(--nv-text); }
  button:active { transform: translateY(1px); }
  button.primary { background: var(--nv-accent); color: var(--nv-accent-fg); border-color: transparent; }
  button.primary:hover { background: var(--nv-accent); filter: brightness(1.1); border-color: transparent; color: var(--nv-accent-fg); }
  button.danger { background: color-mix(in srgb, var(--nv-bad) 14%, transparent); color: var(--nv-bad); border-color: color-mix(in srgb, var(--nv-bad) 30%, transparent); }
  button.danger:hover { background: var(--nv-bad); color: #fff; border-color: transparent; }
  button:disabled { opacity: .45; cursor: not-allowed; filter: none; }

  /* поля */
  input, select, textarea {
    background: var(--nv-bg); color: var(--nv-text);
    border: 1px solid var(--nv-border-strong); border-radius: 11px;
  }
  input:focus, select:focus, textarea:focus { border-color: var(--nv-accent); box-shadow: 0 0 0 3px var(--nv-accent-soft); }
  input::placeholder, textarea::placeholder { color: var(--nv-faint); }

  /* плитки / карточки */
  .metric, .card, .editor-card {
    background: linear-gradient(180deg, color-mix(in srgb, var(--nv-surface-2) 70%, transparent), var(--nv-surface));
    border: 1px solid var(--nv-border);
    border-radius: var(--nv-tile-radius);
    box-shadow: var(--nv-shadow);
    color: var(--nv-text);
  }
  .card:hover { border-color: var(--nv-accent); transform: translateY(-1px); }
  .metric-title { font-family: var(--nv-mono); font-size: 11px; text-transform: uppercase; letter-spacing: .09em; color: var(--nv-muted); font-weight: 600; }
  .metric-value { font-weight: 800; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
  .metric-sub, .price { color: var(--nv-accent); }
  .card-sub { color: var(--nv-muted); }
  .hero { background: linear-gradient(135deg, var(--nv-accent-soft), var(--nv-surface)); border: 1px solid var(--nv-border); border-radius: var(--nv-tile-radius); color: var(--nv-text); }
  .hero p { color: var(--nv-muted); }
}
.nv-tile::after { content: ""; position: absolute; inset: auto 0 0 0; height: 46%; background: linear-gradient(180deg, transparent, color-mix(in srgb, var(--nv-text) 3.5%, transparent)); pointer-events: none; }
.nv-tile-label { font-family: var(--nv-mono); font-size: 10.5px; letter-spacing: .11em; text-transform: uppercase; color: var(--nv-muted); font-weight: 600; }
.nv-tile-value { font-size: 30px; font-weight: 800; letter-spacing: -.015em; margin-top: 12px; font-variant-numeric: tabular-nums; line-height: 1.05; white-space: nowrap; }
.nv-tile-value small { font-size: 16px; font-weight: 700; color: var(--nv-muted); margin-left: 4px; }
.nv-tile-sub { margin-top: 8px; font-family: var(--nv-mono); font-size: 10.5px; letter-spacing: .07em; text-transform: uppercase; color: var(--nv-faint); display: flex; align-items: center; gap: 8px; min-height: 14px; }
.nv-delta { font-weight: 700; letter-spacing: 0; text-transform: none; font-family: var(--nv-font); font-size: 12px; }
.nv-delta.up { color: var(--nv-good); } .nv-delta.down { color: var(--nv-bad); }
.nv-tile.accent .nv-tile-value { color: var(--nv-accent); }
.nv-tile.compact .nv-tile-value { font-size: 21px; margin-top: 16px; }

.nv-panel { padding: 18px 20px; min-width: 0; background: var(--nv-surface); border: 1px solid var(--nv-border); border-radius: var(--nv-tile-radius); box-shadow: var(--nv-shadow); }
.nv-panel-eyebrow { font-family: var(--nv-mono); font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--nv-faint); display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.nv-panel-title { font-size: 17px; font-weight: 750; margin: 4px 0 14px; }
.nv-panel-note { font-size: 12px; color: var(--nv-muted); margin: -8px 0 12px; }
.nv-chip { font-family: var(--nv-mono); font-size: 10.5px; padding: 4px 10px; border-radius: 999px; background: var(--nv-surface-2); border: 1px solid var(--nv-border); color: var(--nv-muted); letter-spacing: .04em; text-transform: none; }

.nv-bars { display: grid; gap: 9px; }
.nv-bar-row { display: grid; grid-template-columns: minmax(70px, 150px) 1fr auto; align-items: center; gap: 12px; font-size: 13px; }
.nv-bar-name { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nv-bar-track { height: 22px; border-radius: 8px; background: var(--nv-surface-2); overflow: hidden; border: 1px solid var(--nv-border); }
.nv-bar-fill { height: 100%; border-radius: 7px; background: linear-gradient(90deg, color-mix(in srgb, var(--nv-accent) 70%, transparent), var(--nv-accent)); min-width: 3px; transition: width .5s cubic-bezier(.2,.8,.2,1); }
.nv-bar-val { font-family: var(--nv-mono); font-size: 11.5px; color: var(--nv-muted); white-space: nowrap; text-align: right; min-width: 90px; }
.nv-stack { display: flex; height: 36px; border-radius: 10px; overflow: hidden; background: var(--nv-surface-2); border: 1px solid var(--nv-border); }
.nv-stack > i { display: block; height: 100%; transition: width .5s; }
.nv-legend { display: grid; gap: 8px; margin-top: 14px; font-size: 13px; }
.nv-legend > div { display: flex; align-items: center; gap: 10px; }
.nv-legend b { margin-left: auto; font-family: var(--nv-mono); font-weight: 500; font-size: 11.5px; color: var(--nv-muted); }
.nv-dot { width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0; }

.nv-chart { width: 100%; height: auto; max-height: 270px; display: block; overflow: visible; }
.nv-chart text { font-family: var(--nv-mono); font-size: 10px; fill: var(--nv-faint); }
.nv-chart .grid { stroke: var(--nv-border); stroke-width: 1; }
.nv-chart .bar { fill: var(--nv-accent); opacity: .78; transition: opacity .15s; }
.nv-chart .bar:hover { opacity: 1; }
.nv-chart .bar.now { opacity: 1; }
.nv-chart .line { fill: none; stroke: var(--nv-accent); stroke-width: 2.2; stroke-linejoin: round; stroke-linecap: round; }
.nv-chart .area { fill: url(#nvGrad); }
.nv-chart .pt { fill: var(--nv-surface); stroke: var(--nv-accent); stroke-width: 2; opacity: 0; transition: opacity .1s; }
.nv-chart .hit:hover + .pt, .nv-chart .pt:hover { opacity: 1; }

.nv-table-wrap { overflow: auto; max-height: 460px; border-radius: 12px; }
.nv-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.nv-table th { position: sticky; top: 0; background: var(--nv-surface); text-align: left; font-family: var(--nv-mono); font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--nv-faint); font-weight: 600; padding: 10px 12px; border-bottom: 1px solid var(--nv-border-strong); }
.nv-table td { padding: 9px 12px; border-bottom: 1px solid var(--nv-border); color: var(--nv-text); }
.nv-table td.num, .nv-table th.num { text-align: right; font-variant-numeric: tabular-nums; }
.nv-table td.mono { font-family: var(--nv-mono); font-size: 12px; color: var(--nv-muted); }
.nv-table tr:hover td { background: color-mix(in srgb, var(--nv-text) 3%, transparent); }
.nv-empty { color: var(--nv-muted); text-align: center; padding: 28px 0; font-size: 13px; }
.nv-skel { height: 120px; border-radius: var(--nv-tile-radius); background: linear-gradient(90deg, var(--nv-surface) 25%, var(--nv-surface-2) 50%, var(--nv-surface) 75%); background-size: 200% 100%; animation: nvsk 1.3s infinite linear; }
@keyframes nvsk { to { background-position: -200% 0; } }

/* ═══════════════════════════════════════════════════════════════════════════
   Каталожные страницы и окна настройки: пакеты, профили цены, зоны, товары, акции …
   Карточки с акцентной полосой и появлением по очереди, спокойные кнопки действий,
   фильтры-«таблетки», аккуратные таблицы, окна с переключателями вместо галочек.
   ═══════════════════════════════════════════════════════════════════════════ */
@keyframes nv-rise { from { opacity: 0; transform: translateY(12px); } }

/* панель над списком: поиск, счётчик, главная кнопка */
body.nova-ui #content .toolbar { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; margin-bottom: 16px; }
body.nova-ui #content .toolbar-left { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; min-width: 0; }
body.nova-ui #content input.search {
  min-width: 280px; height: 42px; padding: 0 14px 0 40px; border-radius: 13px;
  background: var(--nv-surface) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round'><circle cx='11' cy='11' r='7'/><path d='m20 20-3.5-3.5'/></svg>") no-repeat 13px 50%;
}
body.nova-ui #content input.search.full { min-width: 0; width: 100%; }
body.nova-ui #content .toolbar > button.primary { height: 42px; padding: 0 20px; border-radius: 13px; box-shadow: 0 8px 22px -8px var(--nv-accent); }
body.nova-ui #content .toolbar .pill, body.nova-ui #content .pill {
  height: 26px; padding: 0 11px; border-radius: 999px; font-family: var(--nv-mono); font-size: 11px; font-weight: 600; letter-spacing: .04em;
  background: var(--nv-surface-2); color: var(--nv-muted); border: 1px solid var(--nv-border);
}
body.nova-ui #content .pill.good { background: var(--nv-accent-soft); color: var(--nv-accent); border-color: color-mix(in srgb, var(--nv-accent) 35%, transparent); }
body.nova-ui #content .pill.good::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; margin-right: 7px; box-shadow: 0 0 8px currentColor; }
body.nova-ui #content .pill.warn   { background: color-mix(in srgb, var(--nv-warn) 14%, transparent); color: var(--nv-warn); border-color: color-mix(in srgb, var(--nv-warn) 35%, transparent); }
body.nova-ui #content .pill.danger { background: color-mix(in srgb, var(--nv-bad) 14%, transparent); color: var(--nv-bad); border-color: color-mix(in srgb, var(--nv-bad) 35%, transparent); }

/* фильтры-«таблетки» */
body.nova-ui #content .choice-row { display: flex; flex-wrap: wrap; gap: 8px; }
body.nova-ui #content .choice-chip {
  height: 36px; padding: 0 16px; border-radius: 999px; font-size: 13px; font-weight: 650;
  background: var(--nv-surface); color: var(--nv-muted); border: 1px solid var(--nv-border-strong);
  transition: background .2s, color .2s, border-color .2s, box-shadow .2s, transform .15s;
}
body.nova-ui #content .choice-chip:hover { color: var(--nv-text); border-color: var(--nv-accent); transform: translateY(-1px); }
body.nova-ui #content .choice-chip.selected { background: var(--nv-accent); color: var(--nv-accent-fg); border-color: transparent; box-shadow: 0 8px 20px -8px var(--nv-accent); }

/* карточки */
body.nova-ui #content .card-grid { grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 16px; align-items: stretch; }
body.nova-ui #content .card-grid > .card {
  position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 11px; min-height: 0; padding: 22px 22px 18px;
  background:
    radial-gradient(260px 120px at 100% 0, var(--nv-accent-soft), transparent 70%),
    linear-gradient(180deg, color-mix(in srgb, var(--nv-surface-2) 78%, transparent), var(--nv-surface));
  border: 1px solid var(--nv-border); border-radius: 22px;
  transition: transform .3s cubic-bezier(.2,.8,.2,1), border-color .25s, box-shadow .3s;
  animation: nv-rise .5s cubic-bezier(.2,.8,.2,1) both;
}
body.nova-ui #content .card-grid > .card::before {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; opacity: .6;
  background: linear-gradient(90deg, var(--nv-accent), color-mix(in srgb, var(--nv-accent) 0%, transparent) 75%);
  transform: scaleX(.3); transform-origin: left; transition: transform .5s cubic-bezier(.2,.8,.2,1), opacity .3s;
}
body.nova-ui #content .card-grid > .card:hover { transform: translateY(-4px); border-color: color-mix(in srgb, var(--nv-accent) 55%, var(--nv-border)); box-shadow: 0 22px 46px -22px var(--nv-glow), var(--nv-shadow); }
body.nova-ui #content .card-grid > .card:hover::before { transform: scaleX(1); opacity: 1; }
body.nova-ui #content .card-grid > .card:nth-child(2) { animation-delay: .04s; } body.nova-ui #content .card-grid > .card:nth-child(3) { animation-delay: .08s; }
body.nova-ui #content .card-grid > .card:nth-child(4) { animation-delay: .12s; } body.nova-ui #content .card-grid > .card:nth-child(5) { animation-delay: .16s; }
body.nova-ui #content .card-grid > .card:nth-child(6) { animation-delay: .20s; } body.nova-ui #content .card-grid > .card:nth-child(n+7) { animation-delay: .24s; }
body.nova-ui #content .card-grid > .card .row { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
body.nova-ui #content .card-grid > .card .card-title { font-size: 17px; font-weight: 750; letter-spacing: -.01em; line-height: 1.25; }
body.nova-ui #content .card-grid > .card .price { font-size: 32px; font-weight: 800; letter-spacing: -.025em; line-height: 1.05; font-variant-numeric: tabular-nums; color: var(--nv-accent); }
body.nova-ui #content .card-grid > .card .card-sub { font-size: 12.5px; line-height: 1.5; color: var(--nv-muted); }
body.nova-ui #content .card-grid > .card .card-sub:first-of-type { font-family: var(--nv-mono); font-size: 11.5px; letter-spacing: .02em; }
body.nova-ui #content .card-grid > .card .card-actions { margin-top: auto; padding-top: 14px; border-top: 1px solid var(--nv-border); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
body.nova-ui #content .card-grid > .card .card-actions button { height: 34px; padding: 0 14px; border-radius: 10px; font-size: 12.5px; }
body.nova-ui #content .card-grid > .card .card-actions button.secondary { background: transparent; }
body.nova-ui #content .card-grid > .card .card-actions button.danger { margin-left: auto; background: transparent; border-color: transparent; color: color-mix(in srgb, var(--nv-bad) 80%, var(--nv-muted)); }
body.nova-ui #content .card-grid > .card .card-actions button.danger:hover { background: var(--nv-bad); color: #fff; }

/* таблицы (товары, хосты, операторы …) */
body.nova-ui #content table { width: 100%; border-collapse: separate; border-spacing: 0; }
body.nova-ui #content table th {
  position: sticky; top: 0; z-index: 1; padding: 12px 14px; text-align: left; white-space: nowrap;
  font-family: var(--nv-mono); font-size: 10.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--nv-faint);
  background: color-mix(in srgb, var(--nv-surface) 92%, transparent); border-bottom: 1px solid var(--nv-border-strong);
}
body.nova-ui #content table td { padding: 11px 14px; border-bottom: 1px solid var(--nv-border); vertical-align: middle; }
body.nova-ui #content table tbody tr { transition: background .15s; }
body.nova-ui #content table tbody tr:hover { background: var(--nv-accent-soft); }
body.nova-ui #content table td button { height: 30px; padding: 0 12px; border-radius: 9px; font-size: 12px; }
body.nova-ui #content table td button.danger { background: transparent; border-color: transparent; color: color-mix(in srgb, var(--nv-bad) 80%, var(--nv-muted)); }
body.nova-ui #content table td button.danger:hover { background: var(--nv-bad); color: #fff; }

/* группы товаров: «чипы» с компактными значками (разметка с inline-стилями, поэтому !important) */
body.nova-ui #content .editor-card > div[style*="flex-wrap"] > div[style*="border-radius:10px"] {
  background: var(--nv-surface-2) !important; border: 1px solid var(--nv-border-strong) !important; border-radius: 999px !important; padding: 4px 6px 4px 14px !important;
  transition: border-color .2s, transform .15s;
}
body.nova-ui #content .editor-card > div[style*="flex-wrap"] > div[style*="border-radius:10px"]:hover { border-color: var(--nv-accent) !important; transform: translateY(-1px); }
body.nova-ui #content button[data-edit-group], body.nova-ui #content button[data-delete-group] {
  width: 26px; height: 26px !important; padding: 0 !important; border-radius: 50% !important; background: transparent !important; border: 0 !important; color: var(--nv-muted) !important; font-size: 12px !important;
}
body.nova-ui #content button[data-edit-group]:hover { background: var(--nv-accent-soft) !important; color: var(--nv-accent) !important; }
body.nova-ui #content button[data-delete-group]:hover { background: var(--nv-bad) !important; color: #fff !important; }

/* пустые состояния */
body.nova-ui #content .empty { padding: 40px 20px; text-align: center; color: var(--nv-faint); border: 1px dashed var(--nv-border-strong); border-radius: 20px; background: color-mix(in srgb, var(--nv-surface) 60%, transparent); }

/* ── окна настройки ─────────────────────────────────────────────────────── */
@keyframes nv-pop { from { opacity: 0; transform: translateY(18px) scale(.97); } }
body.nova-ui .modal-backdrop { background: rgba(4, 6, 10, .62); backdrop-filter: blur(10px) saturate(1.2); -webkit-backdrop-filter: blur(10px) saturate(1.2); }
body.nova-ui .modal {
  position: relative; background: linear-gradient(180deg, color-mix(in srgb, var(--nv-surface-2) 82%, transparent), var(--nv-surface)); color: var(--nv-text);
  border: 1px solid var(--nv-border-strong); border-radius: 26px; box-shadow: 0 40px 100px -30px rgba(0,0,0,.7), 0 0 0 1px var(--nv-border);
  animation: nv-pop .35s cubic-bezier(.2,.8,.2,1) both;
}
body.nova-ui .modal::before { content: ""; position: absolute; left: 28px; right: 28px; top: 0; height: 3px; border-radius: 0 0 6px 6px; background: linear-gradient(90deg, var(--nv-accent), transparent); }
body.nova-ui .modal-head h2 { font-size: 22px; font-weight: 800; letter-spacing: -.02em; }
body.nova-ui .modal-head p { color: var(--nv-muted); font-size: 13.5px; margin-top: 4px; }
body.nova-ui .modal .icon-button { width: 38px; height: 38px; padding: 0; border-radius: 50%; font-size: 20px; line-height: 1; }
body.nova-ui .modal .form-field > label, body.nova-ui .modal .form-field > .label {
  font-family: var(--nv-mono); font-size: 10.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--nv-muted);
}
body.nova-ui .modal input:not([type=checkbox]):not([type=radio]), body.nova-ui .modal select { height: 42px; border-radius: 12px; }
body.nova-ui .modal textarea { border-radius: 12px; }
/* галочки -> переключатели */
body.nova-ui .modal .switch-row { display: flex; align-items: center; gap: 12px; min-height: 42px; }
body.nova-ui .modal .switch-row > span { font-size: 13.5px; color: var(--nv-text); }
body.nova-ui .modal .switch-row input[type=checkbox] {
  -webkit-appearance: none; appearance: none; flex: 0 0 auto; position: relative; width: 42px; height: 24px; margin: 0; cursor: pointer;
  border-radius: 999px; background: var(--nv-surface-2); border: 1px solid var(--nv-border-strong); transition: background .25s, border-color .25s, box-shadow .25s;
}
body.nova-ui .modal .switch-row input[type=checkbox]::after {
  content: ""; position: absolute; top: 2px; left: 2px; width: 18px; height: 18px; border-radius: 50%; background: var(--nv-muted); transition: transform .25s cubic-bezier(.2,.8,.2,1), background .25s;
}
body.nova-ui .modal .switch-row input[type=checkbox]:checked { background: var(--nv-accent); border-color: transparent; box-shadow: 0 6px 16px -6px var(--nv-accent); }
body.nova-ui .modal .switch-row input[type=checkbox]:checked::after { transform: translateX(18px); background: #fff; }
/* правила расписания, дни недели, чипы */
body.nova-ui .modal .tariff-rule, body.nova-ui .modal .package-rule {
  position: relative; background: color-mix(in srgb, var(--nv-bg) 45%, var(--nv-surface-2)); border: 1px solid var(--nv-border); border-left: 3px solid var(--nv-accent); border-radius: 16px;
}
body.nova-ui .modal .day-chip-select, body.nova-ui .modal .chip-select { background: transparent !important; border: 0 !important; padding: 0 !important; display: flex; flex-wrap: wrap; gap: 6px; }
body.nova-ui .modal .choice-chip, body.nova-ui .modal .day-chip { height: 32px; padding: 0 14px; border-radius: 999px; background: var(--nv-surface-2); color: var(--nv-muted); border: 1px solid var(--nv-border-strong); font-size: 12.5px; }
body.nova-ui .modal .choice-chip.selected, body.nova-ui .modal .day-chip.selected { background: var(--nv-accent); color: var(--nv-accent-fg); border-color: transparent; box-shadow: 0 6px 16px -6px var(--nv-accent); }
body.nova-ui .modal .tariff-rule-del { border-radius: 50%; }
/* кнопки внизу: всегда на виду */
body.nova-ui .modal-actions {
  position: sticky; bottom: 0; z-index: 2; display: flex; justify-content: flex-end; gap: 10px; margin: 18px -2px -2px; padding: 16px 4px 4px;
  background: linear-gradient(180deg, transparent, var(--nv-surface) 38%);
}
body.nova-ui .modal-actions button { height: 44px; padding: 0 24px; border-radius: 13px; font-size: 14px; }
body.nova-ui .modal-actions button.primary { box-shadow: 0 10px 26px -10px var(--nv-accent); }
body.nova-ui .modal #addTariffRule, body.nova-ui .modal #addPackageRule { border-style: dashed; background: transparent; }

@media (prefers-reduced-motion: reduce) {
  body.nova-ui #content .card-grid > .card, body.nova-ui .modal { animation: none; }
  body.nova-ui #content .card-grid > .card, body.nova-ui #content .card-grid > .card::before { transition: none; }
}
/* ── Переключатель «плитки / таблица» ─────────────────────────────────────── */
body.nova-ui .nv-hidden { display: none !important; }
body.nova-ui .nv-viewbar { display: flex; justify-content: flex-end; margin: 0 0 12px; }
body.nova-ui .nv-viewtoggle { display: inline-flex; gap: 2px; padding: 3px; border-radius: 13px; background: var(--nv-surface); border: 1px solid var(--nv-border-strong); }
body.nova-ui .nv-viewtoggle button { width: 38px; height: 32px; padding: 0; border-radius: 10px; display: grid; place-items: center; background: transparent; border: 0; color: var(--nv-muted); transition: background .2s, color .2s; }
body.nova-ui .nv-viewtoggle button:hover { color: var(--nv-text); background: var(--nv-surface-2); }
body.nova-ui .nv-viewtoggle button.on { background: var(--nv-accent); color: var(--nv-accent-fg); box-shadow: 0 6px 16px -6px var(--nv-accent); }
body.nova-ui #content .toolbar-left .nv-viewtoggle { margin-left: 4px; }

body.nova-ui #content .nv-tablewrap { overflow: auto; border: 1px solid var(--nv-border); border-radius: 20px; background: var(--nv-surface); box-shadow: var(--nv-shadow); animation: nv-rise .4s cubic-bezier(.2,.8,.2,1) both; }
body.nova-ui #content .nv-gridtable td { vertical-align: top; }
body.nova-ui #content .nv-gridtable td.t { font-weight: 700; min-width: 140px; max-width: 240px; }
body.nova-ui #content .nv-gridtable td.pr { font-weight: 800; color: var(--nv-accent); font-variant-numeric: tabular-nums; white-space: nowrap; }
body.nova-ui #content .nv-gridtable td.p { white-space: nowrap; }
body.nova-ui #content .nv-gridtable td.p span { margin-right: 4px; }
body.nova-ui #content .nv-gridtable td.i { color: var(--nv-muted); font-size: 12.5px; line-height: 1.45; min-width: 200px; max-width: 420px; }
body.nova-ui #content .nv-gridtable td.i div { overflow: hidden; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
body.nova-ui #content .nv-gridtable td.a { white-space: nowrap; text-align: right; }
body.nova-ui #content .nv-gridtable td.a button { margin-left: 6px; }
body.nova-ui #content .nv-gridtable tbody tr[hidden] { display: none; }
body.nova-ui #content .nv-gen-grid .card[hidden] { display: none; }
body.nova-ui #content .nv-gen-grid > .card .card-sub b { color: var(--nv-faint); font-family: var(--nv-mono); font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; font-weight: 600; }
/* ═══════════════════════════════════════════════════════════════════════════
   Вкладки и переключатели режимов: Shell-настройки, акции, кассы, карта клуба, отчёты, зоны.
   Единый вид: «капсула» с кнопками, активная — цветная со свечением.
   ═══════════════════════════════════════════════════════════════════════════ */
body.nova-ui #content :is(.shell-tab-nav, .sub-tabs, .rpt-mode-tabs, .pos-mode-tabs, .pos-tabs, .pos-zone-tabs) {
  display: flex; flex-wrap: wrap; gap: 4px; align-items: center; width: fit-content; max-width: 100%;
  padding: 5px; margin-bottom: 14px; border-radius: 18px;
  background: color-mix(in srgb, var(--nv-surface) 88%, transparent); border: 1px solid var(--nv-border-strong);
  box-shadow: inset 0 1px 0 color-mix(in srgb, var(--nv-text) 5%, transparent);
}
body.nova-ui #content :is(.shell-tab-btn, .sub-tab, .rpt-mode-tab, .pos-mode-tab, .pos-tab, .pos-zone-tab, .club-tab, .rpt-period-btn) {
  position: relative; height: 38px; min-width: 0; padding: 0 18px; border-radius: 13px; border: 1px solid transparent !important;
  background: transparent; color: var(--nv-muted); font-size: 13.5px; font-weight: 650; white-space: nowrap; box-shadow: none;
  transition: background .2s, color .2s, box-shadow .25s, transform .12s;
}
body.nova-ui #content :is(.shell-tab-btn, .sub-tab, .rpt-mode-tab, .pos-mode-tab, .pos-tab, .pos-zone-tab, .club-tab, .rpt-period-btn):hover:not(:disabled) {
  background: var(--nv-surface-2); color: var(--nv-text);
}
body.nova-ui #content :is(.shell-tab-btn, .sub-tab, .rpt-mode-tab, .pos-mode-tab, .pos-tab, .pos-zone-tab, .club-tab, .rpt-period-btn).active,
body.nova-ui #content :is(.shell-tab-btn, .sub-tab, .rpt-mode-tab, .pos-mode-tab, .pos-tab, .pos-zone-tab, .club-tab, .rpt-period-btn).on {
  background: var(--nv-accent) !important; color: var(--nv-accent-fg) !important;
  box-shadow: 0 8px 22px -8px var(--nv-accent), inset 0 1px 0 rgba(255,255,255,.18);
}
body.nova-ui #content :is(.pos-mode-tab, .pos-tab).active::after { display: none; }
body.nova-ui #content :is(.shell-tab-btn, .sub-tab, .rpt-mode-tab, .pos-mode-tab, .pos-tab, .pos-zone-tab, .club-tab, .rpt-period-btn):active:not(:disabled) { transform: translateY(1px); }
body.nova-ui #content :is(.pos-tab, .pos-mode-tab):disabled { opacity: .4; }
/* кассовые вкладки чуть компактнее, чтобы не раздувать шапку кассы */
body.nova-ui #content :is(.pos-tabs, .pos-zone-tabs) :is(.pos-tab, .pos-zone-tab) { height: 34px; padding: 0 15px; font-size: 13px; }
/* вкладки карты клуба без общей рамки: просто «таблетки» */
body.nova-ui #content .club-tab { background: var(--nv-surface); border: 1px solid var(--nv-border-strong) !important; margin-right: 6px; }
/* период отчётов: отдельные таблетки */
body.nova-ui #content .rpt-period-tabs { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
body.nova-ui #content .rpt-period-btn { height: 34px; padding: 0 15px; background: var(--nv-surface); border: 1px solid var(--nv-border-strong) !important; }
/* ── линейные значки вместо цветных эмодзи ─────────────────────────────────── */
body.nova-ui .nv-ico { display: inline-flex; align-items: center; justify-content: center; margin-right: 8px; vertical-align: -3px; opacity: .9; }
body.nova-ui .nv-ico svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
body.nova-ui :is(h2, h3, .card-title, .page-title) > .nv-ico svg { width: 20px; height: 20px; }
body.nova-ui :is(h2, h3, .card-title, .page-title) > .nv-ico { color: var(--nv-accent); margin-right: 10px; vertical-align: -4px; }
body.nova-ui #content .club-notify-btn .nv-ico { margin-right: 6px; }
body.nova-ui #content :is(.shell-tab-btn, .sub-tab, .rpt-mode-tab, .pos-mode-tab, .club-tab).active .nv-ico { opacity: 1; }
/* ── Касса: карточка выбранного клиента с фото и оставшимся временем ────────── */
body.nova-ui #content .pos-client-summary-head { display: flex; align-items: center; gap: 14px; }
body.nova-ui #content .pos-client-ava {
  flex: 0 0 auto; width: 54px; height: 54px; border-radius: 50%; overflow: hidden; display: grid; place-items: center;
  font-size: 17px; font-weight: 800; color: var(--nv-accent-fg); background: linear-gradient(135deg, var(--nv-accent), color-mix(in srgb, var(--nv-accent) 55%, #000));
  box-shadow: 0 0 0 3px var(--nv-accent-soft), 0 8px 20px -8px var(--nv-accent);
}
body.nova-ui #content .pos-client-ava img { width: 100%; height: 100%; object-fit: cover; display: block; }
body.nova-ui #content .pos-client-main { flex: 1 1 auto; min-width: 0; }
body.nova-ui #content .pos-client-main .card-title { font-size: 17px; overflow-wrap: anywhere; line-height: 1.2; }
body.nova-ui #content .pos-client-summary-head > button { flex: 0 0 auto; }
body.nova-ui #content .pos-balances { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
/* ═══════════════════════════════════════════════════════════════════════════
   Чат и вызовы: диалоги слева, переписка пузырями справа, быстрые ответы, вызовы сверху
   ═══════════════════════════════════════════════════════════════════════════ */
@keyframes nvc-pop { from { opacity: 0; transform: translateY(14px) scale(.97); } }
body.nova-ui .mgr-chat-widget { right: 24px; bottom: 24px; gap: 12px; }
body.nova-ui .mgr-chat-fab {
  width: 58px; height: 58px; padding: 0; border-radius: 50%; display: grid; place-items: center; font-size: 0;
  overflow: visible;   /* иначе кнопка обрезала красный значок с числом непрочитанных по своему кругу */
  background: var(--nv-accent); color: var(--nv-accent-fg); border: 0; box-shadow: 0 16px 36px -10px var(--nv-accent), 0 0 0 4px var(--nv-accent-soft);
  transition: transform .2s cubic-bezier(.2,.8,.2,1), box-shadow .2s;
}
body.nova-ui .mgr-chat-fab:hover { transform: translateY(-3px) scale(1.04); filter: brightness(1.08); background: var(--nv-accent); }
body.nova-ui .mgr-chat-fab svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linejoin: round; stroke-linecap: round; }
body.nova-ui .mgr-chat-badge { top: -5px; right: -5px; min-width: 22px; height: 22px; font-size: 11.5px; background: var(--nv-bad); border: 2px solid var(--nv-bg); color: #fff; }

body.nova-ui .mgr-chat-panel.nvc {
  width: min(800px, calc(100vw - 48px)); height: min(640px, calc(100vh - 120px)); max-height: none; padding: 0; overflow: hidden;
  display: flex; flex-direction: column;
  background: linear-gradient(180deg, color-mix(in srgb, var(--nv-surface-2) 80%, transparent), var(--nv-surface));
  border: 1px solid var(--nv-border-strong); border-radius: 24px; color: var(--nv-text);
  box-shadow: 0 40px 100px -28px rgba(0,0,0,.75), 0 0 0 1px var(--nv-border);
  animation: nvc-pop .3s cubic-bezier(.2,.8,.2,1) both;
}
body.nova-ui .nvc svg { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

body.nova-ui .nvc-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px 14px 20px; border-bottom: 1px solid var(--nv-border); flex: 0 0 auto; }
body.nova-ui .nvc-title { display: flex; align-items: center; gap: 10px; font-size: 16px; font-weight: 800; letter-spacing: -.01em; }
body.nova-ui .nvc-title-ic { width: 32px; height: 32px; border-radius: 10px; display: grid; place-items: center; background: var(--nv-accent-soft); color: var(--nv-accent); }
body.nova-ui .nvc-title-ic svg { width: 18px; height: 18px; }
body.nova-ui .nvc-total { font: 600 11px var(--nv-mono); letter-spacing: .04em; padding: 3px 9px; border-radius: 999px; background: var(--nv-accent); color: var(--nv-accent-fg); }
body.nova-ui .nvc-head-actions { display: flex; gap: 6px; }
body.nova-ui .nvc-icon-btn { width: 36px; height: 36px; padding: 0; border-radius: 11px; display: grid; place-items: center; background: transparent; border: 1px solid transparent; color: var(--nv-muted); }
body.nova-ui .nvc-icon-btn:hover { background: var(--nv-surface-2); border-color: var(--nv-border); color: var(--nv-text); }
body.nova-ui .nvc-icon-btn svg { width: 18px; height: 18px; }
body.nova-ui #managerChatClear:hover { color: var(--nv-bad); }

/* вызовы и запросы пароля */
body.nova-ui .nvc-alerts { flex: 0 0 auto; }
body.nova-ui .nvc .mgr-calls-section { padding: 10px 20px 12px; margin: 0; border: 0; border-bottom: 1px solid color-mix(in srgb, var(--nv-warn) 28%, transparent); background: color-mix(in srgb, var(--nv-warn) 9%, transparent); }
body.nova-ui .nvc .mgr-calls-title { display: flex; align-items: center; gap: 7px; font: 700 11px var(--nv-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--nv-warn); margin-bottom: 8px; }
body.nova-ui .nvc .mgr-calls-title svg { width: 14px; height: 14px; }
body.nova-ui .nvc .mgr-call-item { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 7px 0; }
body.nova-ui .nvc .mgr-call-item + .mgr-call-item { border-top: 1px dashed color-mix(in srgb, var(--nv-warn) 22%, transparent); }
body.nova-ui .nvc-alert-text { display: flex; align-items: baseline; gap: 10px; min-width: 0; }
body.nova-ui .nvc-alert-text b { font-size: 14px; }
body.nova-ui .nvc-alert-text span { font-size: 12px; color: var(--nv-muted); }
body.nova-ui .nvc-alert-actions { display: flex; gap: 6px; }
body.nova-ui .nvc-alert-btn { height: 30px; padding: 0 14px; border-radius: 9px; font-size: 12px; font-weight: 700; background: var(--nv-warn); color: #1a1200; border: 0; }
body.nova-ui .nvc-alert-btn:hover { background: var(--nv-warn); filter: brightness(1.1); color: #1a1200; }
body.nova-ui .nvc-alert-btn.ghost { background: transparent; color: var(--nv-muted); border: 1px solid var(--nv-border-strong); }
body.nova-ui .nvc-alert-btn.ghost:hover { background: var(--nv-bad); color: #fff; border-color: transparent; filter: none; }

/* тело: список диалогов + переписка */
body.nova-ui .nvc-body { flex: 1 1 auto; min-height: 0; display: grid; grid-template-columns: 272px minmax(0, 1fr); }
body.nova-ui .nvc-side { min-height: 0; display: flex; flex-direction: column; border-right: 1px solid var(--nv-border); background: color-mix(in srgb, var(--nv-bg) 38%, transparent); }
body.nova-ui .nvc-search { display: flex; align-items: center; gap: 8px; margin: 12px 12px 6px; padding: 0 12px; height: 38px; border-radius: 12px; background: var(--nv-surface); border: 1px solid var(--nv-border-strong); color: var(--nv-faint); }
body.nova-ui .nvc-search:focus-within { border-color: var(--nv-accent); box-shadow: 0 0 0 3px var(--nv-accent-soft); color: var(--nv-accent); }
body.nova-ui .nvc-search svg { width: 16px; height: 16px; flex: 0 0 auto; }
body.nova-ui .nvc-search input { flex: 1; min-width: 0; height: 100%; padding: 0; border: 0; background: transparent; box-shadow: none; outline: none; font-size: 13.5px; color: var(--nv-text); }
body.nova-ui .nvc-list { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 4px 8px 12px; }
body.nova-ui .nvc-sec { padding: 12px 8px 6px; font: 600 10.5px var(--nv-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--nv-faint); }
body.nova-ui .nvc-item { width: 100%; height: auto; display: flex; align-items: center; gap: 11px; padding: 9px 10px; margin: 1px 0; border-radius: 14px; text-align: left; background: transparent; border: 1px solid transparent; color: var(--nv-text); font-weight: 500; }
body.nova-ui .nvc-item:hover { background: var(--nv-surface-2); border-color: transparent; }
body.nova-ui .nvc-item.on { background: var(--nv-accent-soft); border-color: color-mix(in srgb, var(--nv-accent) 40%, transparent); }
body.nova-ui .nvc-ava { flex: 0 0 auto; width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; font: 700 14px var(--nv-mono); color: var(--nv-accent-fg); background: linear-gradient(135deg, var(--nv-accent), color-mix(in srgb, var(--nv-accent) 55%, #000)); position: relative; }
body.nova-ui .nvc-ava.dim { background: var(--nv-surface-2); color: var(--nv-muted); border: 1px solid var(--nv-border-strong); }
body.nova-ui .nvc-ava.online::after { content: ""; position: absolute; right: -3px; bottom: -3px; width: 11px; height: 11px; border-radius: 50%; background: var(--nv-good); border: 2px solid var(--nv-surface); }
body.nova-ui .nvc-ava.lg { width: 42px; height: 42px; font-size: 15px; }
body.nova-ui .nvc-item-main { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
body.nova-ui .nvc-item-top { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
body.nova-ui .nvc-item-top b { font-size: 13.5px; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.nova-ui .nvc-item-top time { flex: 0 0 auto; font-size: 11px; color: var(--nv-faint); }
body.nova-ui .nvc-item-prev { font-size: 12.5px; color: var(--nv-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.nova-ui .nvc-item.unread .nvc-item-prev { color: var(--nv-text); font-weight: 600; }
body.nova-ui .nvc-item.quiet .nvc-item-top b { font-weight: 600; }
body.nova-ui .nvc-unread { flex: 0 0 auto; min-width: 21px; height: 21px; padding: 0 6px; border-radius: 999px; display: grid; place-items: center; font: 700 11px var(--nv-mono); background: var(--nv-accent); color: var(--nv-accent-fg); box-shadow: 0 6px 14px -6px var(--nv-accent); }
body.nova-ui .nvc-empty-list { padding: 24px 12px; text-align: center; color: var(--nv-faint); font-size: 13px; }

body.nova-ui .nvc-main { min-width: 0; min-height: 0; display: flex; flex-direction: column; }
body.nova-ui .nvc-conv-head { flex: 0 0 auto; display: flex; align-items: center; min-height: 64px; padding: 10px 20px; border-bottom: 1px solid var(--nv-border); }
body.nova-ui .nvc-conv-title { display: flex; align-items: center; gap: 12px; min-width: 0; }
body.nova-ui .nvc-conv-text { display: flex; flex-direction: column; min-width: 0; }
body.nova-ui .nvc-conv-name { font-size: 15px; font-weight: 750; letter-spacing: -.01em; }
body.nova-ui .nvc-conv-sub { font-size: 12px; color: var(--nv-muted); }
body.nova-ui .nvc-msgs { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 14px 20px; display: flex; flex-direction: column; gap: 6px; scroll-behavior: smooth; }
body.nova-ui .nvc-day { align-self: center; margin: 10px 0 4px; font: 600 10.5px var(--nv-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--nv-faint); }
body.nova-ui .nvc-day span { padding: 4px 12px; border-radius: 999px; background: var(--nv-surface-2); border: 1px solid var(--nv-border); }
body.nova-ui .nvc-row { display: flex; }
body.nova-ui .nvc-row.out { justify-content: flex-end; }
body.nova-ui .nvc-bubble { max-width: min(78%, 460px); padding: 8px 12px 6px; border-radius: 16px; font-size: 14px; line-height: 1.45; overflow-wrap: anywhere; }
body.nova-ui .nvc-row.in .nvc-bubble { background: var(--nv-surface-2); border: 1px solid var(--nv-border); border-bottom-left-radius: 5px; }
body.nova-ui .nvc-row.out .nvc-bubble { background: var(--nv-accent); color: var(--nv-accent-fg); border-bottom-right-radius: 5px; box-shadow: 0 8px 20px -10px var(--nv-accent); }
body.nova-ui .nvc-time { margin-top: 2px; font-size: 10.5px; opacity: .6; text-align: right; font-variant-numeric: tabular-nums; }
body.nova-ui .nvc-empty { margin: auto; max-width: 300px; display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; color: var(--nv-muted); font-size: 13px; }
body.nova-ui .nvc-empty b { font-size: 15px; color: var(--nv-text); }
body.nova-ui .nvc-empty-ic { width: 56px; height: 56px; border-radius: 18px; display: grid; place-items: center; background: var(--nv-accent-soft); color: var(--nv-accent); margin-bottom: 4px; }
body.nova-ui .nvc-empty-ic svg { width: 28px; height: 28px; }

body.nova-ui .nvc-quick { flex: 0 0 auto; display: flex; gap: 6px; flex-wrap: wrap; padding: 4px 20px 0; }
body.nova-ui .nvc-quick button { height: 28px; padding: 0 12px; border-radius: 999px; font-size: 12px; font-weight: 600; background: transparent; color: var(--nv-muted); border: 1px solid var(--nv-border-strong); }
body.nova-ui .nvc-quick button:hover { background: var(--nv-accent-soft); color: var(--nv-text); border-color: var(--nv-accent); }
body.nova-ui .nvc-composer { flex: 0 0 auto; display: flex; align-items: flex-end; gap: 10px; padding: 12px 16px 16px 20px; }
body.nova-ui .nvc-composer textarea { flex: 1; min-height: 44px; max-height: 120px; height: 44px; padding: 11px 14px; border-radius: 14px; resize: none; font-size: 14px; line-height: 1.4; }
body.nova-ui .nvc-send { flex: 0 0 auto; width: 46px; height: 46px; padding: 0; border-radius: 14px; display: grid; place-items: center; background: var(--nv-accent); color: var(--nv-accent-fg); border: 0; box-shadow: 0 10px 22px -10px var(--nv-accent); }
body.nova-ui .nvc-send:hover:not(:disabled) { background: var(--nv-accent); filter: brightness(1.1); transform: translateY(-1px); }
body.nova-ui .nvc-send:disabled { opacity: .4; box-shadow: none; }
body.nova-ui .nvc-send svg { width: 20px; height: 20px; }

@media (max-width: 760px) {
  body.nova-ui .nvc-body { grid-template-columns: 1fr; grid-template-rows: minmax(0, 36%) minmax(0, 1fr); }
  body.nova-ui .nvc-side { border-right: 0; border-bottom: 1px solid var(--nv-border); }
}
@media (prefers-reduced-motion: reduce) { body.nova-ui .mgr-chat-panel.nvc { animation: none; } body.nova-ui .nvc-msgs { scroll-behavior: auto; } }
body.nova-ui .nvc-search input[type=search] { -webkit-appearance: none; appearance: none; border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; }
body.nova-ui .nvc-search input[type=search]::-webkit-search-cancel-button { -webkit-appearance: none; }
/* ── Поиск в сайдбаре ─────────────────────────────────────────────────────── */
body.nova-ui .nv-search {
  display: flex; align-items: center; gap: 10px; width: calc(100% - 4px); height: 40px; margin: 4px 2px 10px; padding: 0 12px;
  border-radius: 13px; background: var(--nv-surface); border: 1px solid var(--nv-border-strong); color: var(--nv-faint); font-size: 13.5px; font-weight: 500; text-align: left;
  transition: border-color .2s, background .2s, color .2s, box-shadow .2s;
}
body.nova-ui .nv-search:hover { border-color: var(--nv-accent); color: var(--nv-text); background: var(--nv-surface-2); box-shadow: 0 0 0 3px var(--nv-accent-soft); }
body.nova-ui .nv-search svg { width: 17px; height: 17px; flex: 0 0 auto; }
body.nova-ui .nv-search-text { flex: 1 1 auto; }
body.nova-ui .nv-search kbd { flex: 0 0 auto; font: 600 10.5px var(--nv-mono); letter-spacing: .04em; padding: 3px 7px; border-radius: 7px; background: var(--nv-bg); border: 1px solid var(--nv-border); color: var(--nv-faint); }
body.sidebar-collapsed .nv-search { width: 40px; margin: 4px auto 10px; padding: 0; justify-content: center; }
body.sidebar-collapsed .nv-search-text, body.sidebar-collapsed .nv-search kbd { display: none; }

/* ════════════════════════════════════════════════════════════════════════════
   Касса (обе раскладки) + калькулятор
   ════════════════════════════════════════════════════════════════════════════ */
body.nova-ui .pos-shiftbar { background: var(--nv-surface); border: 1px solid var(--nv-border); border-radius: var(--nv-radius); padding: 10px 14px; gap: 10px; box-shadow: var(--nv-shadow); }
body.nova-ui .pos-shift-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
body.nova-ui .pos-shift-controls select { background: var(--nv-surface-2); border: 1px solid var(--nv-border); border-radius: 10px; color: var(--nv-text); padding: 8px 10px; }
body.nova-ui .pos-shift-controls .club-notify-btn { background: var(--nv-surface-2); border: 1px solid var(--nv-border); border-radius: 999px; color: var(--nv-muted); font-size: 12px; padding: 6px 12px; }
body.nova-ui .pos-shift-controls .club-notify-btn.active, body.nova-ui .pos-shift-controls .club-notify-btn.on { color: var(--nv-good); border-color: color-mix(in srgb, var(--nv-good) 45%, transparent); background: color-mix(in srgb, var(--nv-good) 12%, transparent); }
body.nova-ui .pos-terminal { gap: 14px; }
body.nova-ui .pos-ticket, body.nova-ui .pos-catalog { background: var(--nv-surface); border: 1px solid var(--nv-border); border-radius: var(--nv-tile-radius); box-shadow: var(--nv-shadow); }
body.nova-ui .pos-ticket input, body.nova-ui .pos-catalog input, body.nova-ui .pos-ticket select { background: var(--nv-surface-2); border: 1px solid var(--nv-border); border-radius: 10px; color: var(--nv-text); }
body.nova-ui .pos-ticket input:focus, body.nova-ui .pos-catalog input:focus, body.nova-ui .pos-ticket select:focus { outline: none; border-color: var(--nv-accent); box-shadow: 0 0 0 3px var(--nv-accent-soft); }
body.nova-ui .pos-product-grid { gap: 12px; }
body.nova-ui .pos-product-card { position: relative; background: var(--nv-surface-2); border: 1px solid var(--nv-border); border-radius: 16px; transition: transform .14s, border-color .14s, box-shadow .14s; overflow: hidden; }
body.nova-ui .pos-product-card::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--nv-accent); opacity: 0; transition: opacity .14s; }
body.nova-ui .pos-product-card:hover { transform: translateY(-2px); border-color: var(--nv-accent); box-shadow: 0 8px 22px var(--nv-glow); }
body.nova-ui .pos-product-card:hover::before, body.nova-ui .pos-product-card.in-cart::before { opacity: 1; }
body.nova-ui .pos-product-card:active { transform: scale(.98); }
body.nova-ui .pos-product-card.in-cart { border-color: var(--nv-accent); background: var(--nv-accent-soft); }
body.nova-ui .pos-product-card[data-qty]::after { content: "× " attr(data-qty); position: absolute; top: 8px; right: 8px; min-width: 26px; padding: 2px 8px; border-radius: 999px; background: var(--nv-accent); color: var(--nv-accent-fg); font-size: 12px; font-weight: 700; text-align: center; }
body.nova-ui .pos-selected-line { background: var(--nv-surface-2); border: 1px solid var(--nv-border); border-radius: 12px; padding: 8px 10px; }
body.nova-ui .pos-total { border-top: 1px dashed var(--nv-border-strong); padding-top: 12px; }
body.nova-ui .pos-total strong, body.nova-ui .pos-total #posTotal { font-size: 28px; font-weight: 800; letter-spacing: -.01em; color: var(--nv-text); }
body.nova-ui #posPayButton { width: 100%; min-height: 50px; font-size: 16px; font-weight: 700; border-radius: 14px; background: var(--nv-accent); color: var(--nv-accent-fg); border: 0; box-shadow: 0 8px 24px var(--nv-glow); transition: transform .12s, box-shadow .12s, opacity .12s; }
body.nova-ui #posPayButton:hover:not(:disabled) { transform: translateY(-1px); box-shadow: 0 12px 30px var(--nv-glow); }
body.nova-ui #posPayButton:disabled { opacity: .4; box-shadow: none; }
body.nova-ui #posSplitPayButton { width: 100%; border-radius: 12px; }

/* ── касса 2 (posadv) ── */
body.nova-ui .posadv-header { background: var(--nv-surface); border: 1px solid var(--nv-border); border-radius: var(--nv-radius); padding: 10px 14px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
body.nova-ui .posadv-left, body.nova-ui .posadv-right { background: var(--nv-surface); border: 1px solid var(--nv-border); border-radius: var(--nv-tile-radius); box-shadow: var(--nv-shadow); overflow: hidden; }
body.nova-ui .posadv-main-tabs, body.nova-ui .posadv-sub-tabs, body.nova-ui .posadv-hist-tabs { display: flex; flex-wrap: wrap; gap: 6px; background: transparent; border: 0; padding: 8px 10px; }
body.nova-ui .posadv-main-tabs button, body.nova-ui .posadv-sub-tabs button, body.nova-ui .posadv-hist-tabs button { border-radius: 999px; border: 1px solid var(--nv-border); background: var(--nv-surface-2); color: var(--nv-muted); padding: 7px 16px; font-weight: 600; transition: all .14s; }
body.nova-ui .posadv-main-tabs button:hover, body.nova-ui .posadv-sub-tabs button:hover, body.nova-ui .posadv-hist-tabs button:hover { color: var(--nv-text); border-color: var(--nv-border-strong); }
body.nova-ui .posadv-main-tabs button.active, body.nova-ui .posadv-sub-tabs button.active, body.nova-ui .posadv-hist-tabs button.active { background: var(--nv-accent); color: var(--nv-accent-fg); border-color: transparent; box-shadow: 0 4px 14px var(--nv-glow); }
body.nova-ui .posadv-root input, body.nova-ui .posadv-root select { background: var(--nv-surface-2); border: 1px solid var(--nv-border); border-radius: 10px; color: var(--nv-text); }
body.nova-ui .posadv-root input:focus, body.nova-ui .posadv-root select:focus { outline: none; border-color: var(--nv-accent); box-shadow: 0 0 0 3px var(--nv-accent-soft); }
body.nova-ui .posadv-amount-row input { font-size: 20px; font-weight: 700; }
body.nova-ui .posadv-full-btn { border-radius: 14px; min-height: 48px; font-weight: 700; background: var(--nv-accent); color: var(--nv-accent-fg); border: 0; box-shadow: 0 8px 22px var(--nv-glow); transition: transform .12s; }
body.nova-ui .posadv-full-btn:hover:not(:disabled) { transform: translateY(-1px); }
body.nova-ui .posadv-full-btn:disabled { opacity: .4; box-shadow: none; }
body.nova-ui .posadv-pay-methods { display: flex; flex-wrap: wrap; gap: 8px; }
body.nova-ui .posadv-pay-methods button { flex: 1; min-width: 110px; padding: 11px; border-radius: 12px; border: 1px solid var(--nv-border); background: var(--nv-surface-2); color: var(--nv-text); font-weight: 600; }
body.nova-ui .posadv-pay-methods button.active, body.nova-ui .posadv-pay-methods button.selected { border-color: var(--nv-accent); background: var(--nv-accent-soft); color: var(--nv-accent); }
body.nova-ui .posadv-root [class*="shop-item"], body.nova-ui .posadv-root [class*="shop-card"] { background: var(--nv-surface-2); border: 1px solid var(--nv-border); border-radius: 14px; transition: transform .14s, border-color .14s, box-shadow .14s; }
body.nova-ui .posadv-root [class*="shop-item"]:hover, body.nova-ui .posadv-root [class*="shop-card"]:hover { transform: translateY(-2px); border-color: var(--nv-accent); box-shadow: 0 8px 20px var(--nv-glow); }
body.nova-ui .posadv-right-bar { background: var(--nv-surface-2); border-bottom: 1px solid var(--nv-border); padding: 8px 12px; }
body.nova-ui .posadv-tx-table { width: 100%; border-collapse: separate; border-spacing: 0; }
body.nova-ui .posadv-tx-table th { background: var(--nv-surface-2); color: var(--nv-muted); font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; padding: 9px 10px; }
body.nova-ui .posadv-tx-table td { padding: 9px 10px; border-bottom: 1px solid var(--nv-border); }
body.nova-ui .posadv-tx-table tbody tr:hover td { background: var(--nv-accent-soft); }
/* нижний блок билета кассы 1: итог → сдача → оплата, в одну колонку */
body.nova-ui .pos-ticket { min-height: 0; grid-template-rows: auto auto minmax(120px,1fr) auto; }
body.nova-ui .pos-total { display: flex; flex-direction: column; align-items: stretch; gap: 10px; }
body.nova-ui .pos-total > div:first-child { display: flex; justify-content: space-between; align-items: baseline; }
body.nova-ui .pos-total > div:first-child .muted { font-size: 12px; letter-spacing: .08em; }
body.nova-ui .pos-total-value { font-size: 34px; font-weight: 800; }
body.nova-ui .pos-total .pos-pay-box { order: 3; grid-template-columns: minmax(0,1fr) 54px; }
body.nova-ui .pos-pay-box .form-field { grid-column: 1 / -1; }
body.nova-ui .pos-pay-box #posPayButton { grid-column: 1; }
body.nova-ui .pos-pay-box #posSplitPayButton { grid-column: 2; width: 54px; min-height: 50px; padding: 0; font-size: 18px; }
body.nova-ui .pos-product-card[data-qty] { padding-top: 30px; }

/* шапка смены: выбор кассы в одну линию с кнопками */
body.nova-ui .pos-shift-controls { align-items: center; }
body.nova-ui .pos-shift-controls .form-field { display: flex; flex-direction: row; align-items: center; gap: 8px; margin: 0; width: auto; }
body.nova-ui .pos-shift-controls .form-field > span { margin: 0; white-space: nowrap; }
body.nova-ui .pos-shift-controls select { height: 36px; padding: 0 10px; }
body.nova-ui .pos-shift-controls button { height: 36px; padding-top: 0; padding-bottom: 0; }
/* ── Помощник кассира ── */
.nv-asst-toggle { display: inline-flex; align-items: center; gap: 7px; height: 36px; padding: 0 13px; border-radius: 999px; border: 1px solid var(--nv-border); background: var(--nv-surface-2); color: var(--nv-muted); font-size: 12.5px; font-weight: 600; cursor: pointer; transition: all .14s; }
.nv-asst-toggle i { width: 8px; height: 8px; border-radius: 50%; background: var(--nv-faint); }
.nv-asst-toggle:hover { color: var(--nv-text); border-color: var(--nv-border-strong); }
.nv-asst-toggle.on { color: var(--nv-accent); border-color: var(--nv-accent); background: var(--nv-accent-soft); }
.nv-asst-toggle.on i { background: var(--nv-accent); box-shadow: 0 0 8px var(--nv-accent); }

.pos-terminal.nv-has-asst { grid-template-columns: 1fr 400px 290px; }
.posadv-root.nv-has-asst { grid-template-columns: 1fr 1fr 290px; }
.nv-asst { order: 3; min-width: 0; display: flex; flex-direction: column; gap: 9px; padding: 14px; overflow-y: auto; background: var(--nv-surface); border-left: 1px solid var(--nv-border); color: var(--nv-text); }
.nv-asst-title { display: flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 700; }
.nv-asst-screen { background: var(--nv-bg); border: 1px solid var(--nv-border); border-radius: 14px; padding: 8px 14px; min-height: 76px; display: flex; flex-direction: column; justify-content: flex-end; text-align: right; overflow: hidden; }
.nv-asst-expr { min-height: 16px; font-size: 13px; color: var(--nv-muted); word-break: break-all; }
.nv-asst-res { font-family: var(--nv-mono); font-size: 34px; font-weight: 700; line-height: 1.1; white-space: nowrap; overflow-x: auto; }
.nv-asst-keys { display: grid; grid-template-columns: repeat(4, 1fr); gap: 7px; }
.nv-asst button { cursor: pointer; border: 1px solid var(--nv-border); background: var(--nv-surface-2); color: var(--nv-text); border-radius: 12px; font-weight: 600; transition: border-color .12s, transform .08s, background .12s; }
.nv-asst button:hover { border-color: var(--nv-accent); }
.nv-asst button:active { transform: scale(.95); }
.nv-asst-keys button { height: 46px; font-size: 18px; }
.nv-asst-keys .fn { color: var(--nv-warn); }
.nv-asst-keys .op { background: var(--nv-accent-soft); color: var(--nv-accent); }
.nv-asst-keys .eq { background: var(--nv-accent); color: var(--nv-accent-fg); border-color: transparent; }
.nv-asst-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.nv-asst-pair button { height: 36px; font-size: 12.5px; color: var(--nv-accent); background: var(--nv-accent-soft); }
.nv-asst-pair button.warn { color: var(--nv-bad); background: color-mix(in srgb, var(--nv-bad) 12%, transparent); }
.nv-asst-sep { height: 1px; background: var(--nv-border); margin: 2px 0; }
.nv-asst-line { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; font-size: 13px; color: var(--nv-muted); }
.nv-asst-line b { color: var(--nv-text); font-family: var(--nv-mono); font-size: 15px; }
.nv-asst-line.big b { font-size: 22px; }
.nv-asst-change.ok { color: var(--nv-good); }
.nv-asst-change.bad { color: var(--nv-bad); font-size: 14px !important; }
.nv-asst-quick { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.nv-asst-quick button { height: 34px; font-size: 12.5px; }

/* ── Настройки: раскрывающиеся карточки и группы ── */
.nv-acc-toggle { display: flex; align-items: center; gap: 8px; cursor: pointer; user-select: none; }
.nv-acc-chev { flex: none; transition: transform .18s; color: var(--nv-muted); }
.nv-acc-card.collapsed > :not(.toolbar) { display: none !important; }
.nv-acc-card.collapsed .nv-acc-toggle .nv-acc-chev { transform: rotate(-90deg); }
.nv-acc-card.collapsed > .toolbar { margin-bottom: 0; }
.nv-acc-host { display: block !important; }
.nv-acc-group { border: 1px solid var(--nv-border); border-radius: 14px; background: var(--nv-surface-2); margin-bottom: 10px; overflow: hidden; }
.nv-acc-head { width: 100%; display: flex; align-items: center; gap: 10px; padding: 12px 14px; background: transparent; border: 0; color: var(--nv-text); font-size: 14px; font-weight: 600; cursor: pointer; text-align: left; }
.nv-acc-head:hover { background: var(--nv-accent-soft); }
.nv-acc-head em { margin-left: auto; font-style: normal; font-size: 11px; color: var(--nv-muted); background: var(--nv-surface); border-radius: 999px; padding: 2px 9px; }
.nv-acc-group:not(.open) .nv-acc-chev { transform: rotate(-90deg); }
.nv-acc-body { display: none; padding: 4px 14px 14px; }
.nv-acc-group.open > .nv-acc-body { display: block; }
.nv-asst-keys button { height: 42px; }
.nv-asst { gap: 8px; }
.nv-acc-body .form-grid { align-items: start; }

/* ── диалоги askText / askConfirm ── */
.nv-dlg-back { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: flex-start; justify-content: center; padding-top: 14vh; background: rgba(4,7,11,.55); backdrop-filter: blur(4px); opacity: 0; transition: opacity .14s; }
.nv-dlg-back.show { opacity: 1; }
.nv-dlg { width: min(420px, calc(100vw - 32px)); background: var(--nv-surface); color: var(--nv-text); border: 1px solid var(--nv-border-strong); border-radius: 18px; box-shadow: 0 24px 70px rgba(0,0,0,.5); padding: 20px; transform: translateY(-8px) scale(.98); transition: transform .16s; font-family: var(--nv-font); }
.nv-dlg-back.show .nv-dlg { transform: none; }
.nv-dlg-title { font-size: 17px; font-weight: 700; margin-bottom: 14px; }
.nv-dlg-text p { margin: 0 0 8px; font-size: 14px; color: var(--nv-muted); line-height: 1.45; }
.nv-dlg-field { display: grid; gap: 6px; font-size: 12px; color: var(--nv-muted); }
.nv-dlg-field input { background: var(--nv-surface-2); border: 1px solid var(--nv-border); border-radius: 12px; color: var(--nv-text); padding: 11px 13px; font-size: 15px; font-family: inherit; }
.nv-dlg-field input:focus { outline: none; border-color: var(--nv-accent); box-shadow: 0 0 0 3px var(--nv-accent-soft); }
.nv-dlg-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 18px; }
.nv-dlg-actions button { height: 38px; padding: 0 20px; border-radius: 12px; border: 1px solid var(--nv-border); background: var(--nv-surface-2); color: var(--nv-text); font-weight: 600; font-size: 14px; cursor: pointer; transition: border-color .12s, transform .08s; }
.nv-dlg-actions button:hover { border-color: var(--nv-border-strong); }
.nv-dlg-actions button:active { transform: scale(.96); }
.nv-dlg-actions .nv-dlg-ok { background: var(--nv-accent); color: var(--nv-accent-fg); border-color: transparent; box-shadow: 0 6px 18px var(--nv-glow); }
.nv-dlg-actions .nv-dlg-ok.danger { background: var(--nv-bad); color: #fff; box-shadow: none; }
/* ── Кнопка меню: ☰ только на телефоне; стрелка свёрнутого меню не переворачивается ── */
#mobileMenuBtn { display: none; }
@media (max-width: 767px) { #mobileMenuBtn { display: inline-flex; } }
body.sidebar-collapsed .sidebar-toggle { transform: none; }

/* ── Отложенные чеки и повтор ── */
.nv-pos-tools { order: 2; display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 7px; }
.nv-pos-tools button { height: 36px; border-radius: 12px; border: 1px solid var(--nv-border); background: var(--nv-surface-2); color: var(--nv-text); font-size: 12.5px; font-weight: 600; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 6px; transition: border-color .12s, color .12s; }
.nv-pos-tools button:hover:not(:disabled) { border-color: var(--nv-accent); color: var(--nv-accent); }
.nv-pos-tools button:disabled { opacity: .4; cursor: default; }
.nv-pos-tools i { font-style: normal; min-width: 18px; padding: 1px 6px; border-radius: 999px; background: var(--nv-accent); color: var(--nv-accent-fg); font-size: 11px; line-height: 16px; }
.nv-def-dlg { width: min(560px, calc(100vw - 32px)); }
.nv-def-list { display: grid; gap: 8px; max-height: 52vh; overflow-y: auto; }
.nv-def-row { display: flex; gap: 12px; align-items: center; justify-content: space-between; padding: 10px 12px; border: 1px solid var(--nv-border); border-radius: 14px; background: var(--nv-surface-2); }
.nv-def-info { display: grid; gap: 2px; min-width: 0; }
.nv-def-info b { font-size: 14px; }
.nv-def-info span { font-size: 13px; color: var(--nv-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nv-def-info small { color: var(--nv-faint); font-size: 12px; }
.nv-def-btns { display: flex; gap: 6px; flex: none; }
.nv-def-btns button { height: 32px; padding: 0 12px; border-radius: 10px; border: 1px solid var(--nv-border); background: var(--nv-surface); color: var(--nv-text); font-size: 12.5px; font-weight: 600; cursor: pointer; }
.nv-def-btns button.primary { background: var(--nv-accent); color: var(--nv-accent-fg); border-color: transparent; }
.nv-def-btns button.danger { color: var(--nv-bad); padding: 0 10px; }
.nv-def-empty { text-align: center; color: var(--nv-muted); padding: 22px 8px; line-height: 1.5; }


/* ════════ Вкладка WhatsApp ════════ */
.nv-item { position: relative; }
.nv-badge { margin-left: auto; min-width: 20px; padding: 1px 7px; border-radius: 999px; background: var(--nv-accent); color: var(--nv-accent-fg); font-size: 11px; font-weight: 700; line-height: 17px; text-align: center; }
body.sidebar-collapsed .nv-item .nv-badge { position: absolute; top: 2px; right: 2px; min-width: 16px; padding: 0 4px; font-size: 10px; line-height: 15px; }
.nv-wa-btn { height: 28px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--nv-border); background: var(--nv-surface-2); color: var(--nv-accent); font-size: 12px; font-weight: 600; cursor: pointer; }
.nv-wa-btn:hover { border-color: var(--nv-accent); }

.wa-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.wa-tabs { display: flex; gap: 6px; padding: 5px; background: var(--nv-surface); border: 1px solid var(--nv-border); border-radius: 999px; flex-wrap: wrap; }
.wa-tabs button { display: inline-flex; align-items: center; gap: 8px; height: 34px; padding: 0 16px; border-radius: 999px; border: 0; background: transparent; color: var(--nv-muted); font-weight: 600; font-size: 13.5px; cursor: pointer; transition: all .14s; }
.wa-tabs button:hover { color: var(--nv-text); }
.wa-tabs button.on { background: var(--nv-accent); color: var(--nv-accent-fg); box-shadow: 0 4px 14px var(--nv-glow); }
.wa-badge { font-style: normal; min-width: 18px; padding: 0 6px; border-radius: 999px; background: var(--nv-bad); color: #fff; font-size: 11px; line-height: 18px; text-align: center; }
.wa-tabs button.on .wa-badge { background: #fff; color: var(--nv-accent); }
.wa-pill { display: inline-flex; align-items: center; gap: 8px; height: 30px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--nv-border); background: var(--nv-surface); font-size: 12.5px; font-weight: 600; color: var(--nv-muted); }
.wa-pill i { width: 8px; height: 8px; border-radius: 50%; background: var(--nv-faint); }
.wa-pill.good { color: var(--nv-good); } .wa-pill.good i { background: var(--nv-good); box-shadow: 0 0 8px var(--nv-good); }
.wa-pill.warn { color: var(--nv-warn); } .wa-pill.warn i { background: var(--nv-warn); }
.wa-pill.bad { color: var(--nv-bad); } .wa-pill.bad i { background: var(--nv-bad); }

.wa-grid { display: grid; grid-template-columns: 330px minmax(0, 1fr); gap: 14px; height: calc(100vh - 235px); min-height: 480px; }
.wa-list, .wa-chat { background: var(--nv-surface); border: 1px solid var(--nv-border); border-radius: var(--nv-tile-radius); overflow: hidden; display: flex; flex-direction: column; min-height: 0; }
.wa-list-head { display: flex; gap: 8px; padding: 12px; border-bottom: 1px solid var(--nv-border); }
.wa-list-head input { flex: 1; min-width: 0; height: 38px; padding: 0 12px; border-radius: 12px; border: 1px solid var(--nv-border); background: var(--nv-surface-2); color: var(--nv-text); }
.wa-list-head button { width: 38px; height: 38px; border-radius: 12px; border: 1px solid var(--nv-border); background: var(--nv-accent); color: var(--nv-accent-fg); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.wa-threads { overflow-y: auto; flex: 1; padding: 6px; }
.wa-empty-list { padding: 28px 16px; text-align: center; color: var(--nv-muted); font-size: 13px; line-height: 1.5; }
.wa-thread { width: 100%; display: flex; align-items: center; gap: 12px; padding: 10px; border-radius: 14px; border: 1px solid transparent; background: transparent; color: var(--nv-text); text-align: left; cursor: pointer; transition: background .12s; }
.wa-thread:hover { background: var(--nv-surface-2); }
.wa-thread.on { background: var(--nv-accent-soft); border-color: var(--nv-accent); }
.wa-ava { flex: none; width: 40px; height: 40px; border-radius: 50%; background: var(--nv-surface-2); border: 1px solid var(--nv-border); display: inline-flex; align-items: center; justify-content: center; font-weight: 700; color: var(--nv-accent); }
.wa-t-main { flex: 1; min-width: 0; display: grid; gap: 2px; }
.wa-t-main b { font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wa-t-main small { color: var(--nv-muted); font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wa-t-meta { flex: none; display: grid; justify-items: end; gap: 4px; }
.wa-t-meta small { color: var(--nv-faint); font-size: 11.5px; }
.wa-req { font-style: normal; font-size: 10.5px; font-weight: 700; padding: 1px 8px; border-radius: 999px; background: color-mix(in srgb, var(--nv-warn) 18%, transparent); color: var(--nv-warn); }

.wa-placeholder { margin: auto; text-align: center; color: var(--nv-muted); line-height: 1.6; }
.wa-placeholder svg { opacity: .5; margin-bottom: 8px; }
.wa-placeholder small { color: var(--nv-faint); }
.wa-chat-head { display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; border-bottom: 1px solid var(--nv-border); }
.wa-chat-head div { display: grid; gap: 2px; }
.wa-chat-head span { color: var(--nv-muted); font-size: 12.5px; font-family: var(--nv-mono); }
.wa-book { display: grid; gap: 10px; padding: 12px 16px; border-bottom: 1px solid var(--nv-border); background: var(--nv-surface-2); }
.wa-book.pend { background: color-mix(in srgb, var(--nv-warn) 10%, var(--nv-surface-2)); }
.wa-book-main { display: grid; gap: 2px; }
.wa-book-main span { font-size: 13.5px; }
.wa-book-main small { color: var(--nv-muted); }
.wa-book-btns, .wa-book-edit { display: flex; gap: 8px; flex-wrap: wrap; align-items: flex-end; }
.wa-book button, .wa-save-bar button, .wa-link-btns button, .wa-add { height: 34px; padding: 0 14px; border-radius: 10px; border: 1px solid var(--nv-border); background: var(--nv-surface); color: var(--nv-text); font-weight: 600; font-size: 13px; cursor: pointer; }
.wa-book button.primary, .wa-save-bar button.primary { background: var(--nv-accent); color: var(--nv-accent-fg); border-color: transparent; }
.wa-book button.danger, .wa-link-btns button.danger { color: var(--nv-bad); }
.wa-book-edit label { display: grid; gap: 4px; font-size: 12px; color: var(--nv-muted); }
.wa-book-edit input { height: 34px; padding: 0 8px; border-radius: 10px; border: 1px solid var(--nv-border); background: var(--nv-surface); color: var(--nv-text); }

.wa-msgs { flex: 1; overflow-y: auto; padding: 14px 16px; display: flex; flex-direction: column; gap: 6px; min-height: 0; }
.wa-loading { margin: auto; color: var(--nv-muted); font-size: 13px; }
.wa-day { align-self: center; font-size: 11.5px; color: var(--nv-faint); padding: 2px 12px; border-radius: 999px; background: var(--nv-surface-2); margin: 6px 0; }
.wa-msg { max-width: 72%; padding: 8px 12px 6px; border-radius: 16px; display: grid; gap: 3px; }
.wa-msg.in { align-self: flex-start; background: var(--nv-surface-2); border: 1px solid var(--nv-border); border-bottom-left-radius: 5px; }
.wa-msg.out { align-self: flex-end; background: var(--nv-accent-soft); border: 1px solid color-mix(in srgb, var(--nv-accent) 35%, transparent); border-bottom-right-radius: 5px; }
.wa-msg.fail { border-color: var(--nv-bad); }
.wa-text { font-size: 14px; line-height: 1.42; word-break: break-word; }
.wa-msg small { justify-self: end; font-size: 11px; color: var(--nv-faint); }
.wa-msg.fail small { color: var(--nv-bad); }
.wa-quick { display: flex; gap: 6px; flex-wrap: wrap; padding: 8px 14px 0; }
.wa-quick button { height: 30px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--nv-border); background: var(--nv-surface-2); color: var(--nv-text); font-size: 12.5px; cursor: pointer; }
.wa-quick button:hover { border-color: var(--nv-accent); color: var(--nv-accent); }
.wa-quick-hint { font-size: 12px; color: var(--nv-faint); }
.wa-composer { display: flex; gap: 10px; align-items: flex-end; padding: 12px 14px; }
.wa-composer textarea { flex: 1; min-height: 42px; max-height: 140px; resize: none; padding: 10px 14px; border-radius: 14px; border: 1px solid var(--nv-border); background: var(--nv-surface-2); color: var(--nv-text); font-family: inherit; font-size: 14px; line-height: 1.4; }
.wa-composer textarea:focus, .wa-list-head input:focus, .wa-tpl input:focus, .wa-tpl textarea:focus, .wa-auto textarea:focus { outline: none; border-color: var(--nv-accent); box-shadow: 0 0 0 3px var(--nv-accent-soft); }
.wa-composer button { width: 44px; height: 44px; border-radius: 14px; border: 0; background: var(--nv-accent); color: var(--nv-accent-fg); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 6px 18px var(--nv-glow); }
.wa-composer button:disabled { opacity: .5; }

.wa-settings { display: grid; gap: 14px; max-width: 920px; }
.wa-set-card { background: var(--nv-surface); border: 1px solid var(--nv-border); border-radius: var(--nv-tile-radius); padding: 18px; display: grid; gap: 12px; }
.wa-set-title { font-size: 16px; font-weight: 700; display: grid; gap: 3px; }
.wa-set-title small { font-size: 12.5px; font-weight: 400; color: var(--nv-muted); }
.wa-link { display: flex; gap: 22px; align-items: flex-start; flex-wrap: wrap; }
.wa-link-info { flex: 1; min-width: 260px; display: grid; gap: 10px; }
.wa-link-info p, .wa-link-info ol { margin: 0; font-size: 13.5px; color: var(--nv-muted); line-height: 1.5; }
.wa-link-info ol { padding-left: 20px; }
.wa-link-btns { display: flex; gap: 8px; }
.wa-qr { width: 220px; height: 220px; border-radius: 16px; background: #fff; padding: 8px; }
.wa-warn { color: var(--nv-warn) !important; }
.wa-note { margin: 0; font-size: 12.5px; color: var(--nv-faint); }
.wa-note code { background: var(--nv-surface-2); padding: 1px 6px; border-radius: 6px; color: var(--nv-accent); }
.wa-auto { display: grid; gap: 5px; font-size: 13px; color: var(--nv-muted); }
.wa-auto textarea, .wa-tpl textarea, .wa-tpl input { border-radius: 12px; border: 1px solid var(--nv-border); background: var(--nv-surface-2); color: var(--nv-text); padding: 9px 12px; font-family: inherit; font-size: 13.5px; resize: vertical; }
.wa-tpl-list { display: grid; gap: 10px; }
.wa-tpl { display: grid; grid-template-columns: 200px minmax(0, 1fr) 34px; gap: 8px; align-items: start; }
.wa-del { height: 34px; border-radius: 10px; border: 1px solid var(--nv-border); background: var(--nv-surface-2); color: var(--nv-bad); cursor: pointer; }
.wa-add { justify-self: start; display: inline-flex; align-items: center; gap: 6px; color: var(--nv-accent); }
.wa-save-bar { position: sticky; bottom: 0; padding: 10px 0; display: flex; justify-content: flex-end; }
@media (max-width: 900px) { .wa-grid { grid-template-columns: 1fr; height: auto; } .wa-list { max-height: 260px; } .wa-chat { min-height: 520px; } .wa-tpl { grid-template-columns: 1fr 34px; } .wa-tpl input { grid-column: 1; } }

.wa-list-head button svg, .wa-add svg { width: 18px; height: 18px; display: block; flex: none; }


/* ════════ WhatsApp: заявки, режим, редактор ════════ */
.wa-chat { overflow-y: auto; }
.wa-chatarea { display: flex; flex-direction: column; flex: 1; min-height: 380px; }
.wa-st { font-style: normal; font-size: 11px; font-weight: 700; padding: 2px 9px; border-radius: 999px; background: var(--nv-surface-2); color: var(--nv-muted); white-space: nowrap; }
.wa-st.warn { background: color-mix(in srgb, var(--nv-warn) 18%, transparent); color: var(--nv-warn); }
.wa-st.good { background: color-mix(in srgb, var(--nv-good) 16%, transparent); color: var(--nv-good); }
.wa-st.info { background: var(--nv-accent-soft); color: var(--nv-accent); }
.wa-book-top { display: flex; justify-content: space-between; gap: 12px; }
.wa-book-name { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.wa-book-name b { font-size: 16px; }
.wa-book-name small { color: var(--nv-muted); }
.wa-book-phone { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 6px; }
.wa-ph { font-family: var(--nv-mono); font-size: 14px; }
.wa-mini { height: 26px; padding: 0 10px; display: inline-flex; align-items: center; border-radius: 999px; border: 1px solid var(--nv-border); background: var(--nv-surface); color: var(--nv-accent); font-size: 12px; font-weight: 600; cursor: pointer; text-decoration: none; }
.wa-mini:hover { border-color: var(--nv-accent); }
.wa-book-when { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; font-size: 14px; }
.wa-chips { display: inline-flex; gap: 6px; flex-wrap: wrap; }
.wa-chip { display: inline-flex; align-items: center; gap: 6px; height: 26px; padding: 0 10px; border-radius: 999px; background: var(--nv-surface); border: 1px solid var(--nv-border); font-size: 12.5px; font-weight: 600; }
.wa-chip.rm button { border: 0; background: none; color: var(--nv-muted); cursor: pointer; padding: 0; font-size: 12px; height: auto; }
.wa-chip.rm button:hover { color: var(--nv-bad); }
.wa-book-note { color: var(--nv-muted); }
.wa-hint { margin: 0; font-size: 12.5px; color: var(--nv-muted); line-height: 1.45; }
.wa-book-edit { display: grid; gap: 12px; margin-top: 4px; padding: 14px; border-radius: 14px; background: var(--nv-surface); border: 1px solid var(--nv-border); }
.wa-edit-row { display: flex; gap: 12px; flex-wrap: wrap; align-items: flex-end; }
.wa-edit-row.btns { gap: 8px; }
.wa-edit-l { font-size: 12px; color: var(--nv-muted); width: 100%; }
.wa-add-pc select { height: 32px; border-radius: 999px; border: 1px dashed var(--nv-border-strong); background: var(--nv-surface-2); color: var(--nv-accent); padding: 0 12px; font-size: 12.5px; }
.wa-edit-note { color: var(--nv-faint); font-size: 12px; }
.wa-contact { padding: 18px 18px 22px; display: grid; gap: 6px; }
.wa-contact-t { font-weight: 700; }
.wa-contact p { margin: 0; color: var(--nv-muted); font-size: 13.5px; line-height: 1.5; }
.wa-off { display: flex; gap: 18px; align-items: center; justify-content: center; padding: 60px 20px; color: var(--nv-muted); }
.wa-off svg { opacity: .45; flex: none; }
.wa-off b { color: var(--nv-text); font-size: 17px; }
.wa-off p { margin: 6px 0 14px; line-height: 1.5; max-width: 520px; }
.wa-off button { height: 36px; padding: 0 18px; border-radius: 12px; border: 0; background: var(--nv-accent); color: var(--nv-accent-fg); font-weight: 700; cursor: pointer; }
.wa-mode { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.wa-switch { position: relative; width: 52px; height: 30px; flex: none; cursor: pointer; }
.wa-switch.ro { opacity: .55; cursor: default; }
.wa-switch input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: inherit; }
.wa-switch span { position: absolute; inset: 0; border-radius: 999px; background: var(--nv-surface-2); border: 1px solid var(--nv-border-strong); transition: background .16s; }
.wa-switch span::after { content: ""; position: absolute; top: 3px; left: 3px; width: 22px; height: 22px; border-radius: 50%; background: var(--nv-muted); transition: transform .16s, background .16s; }
.wa-switch input:checked + span { background: var(--nv-accent); border-color: transparent; }
.wa-switch input:checked + span::after { transform: translateX(22px); background: #fff; }
.wa-book { flex: none; }
#waReq { flex: none; }

.wa-threads { display: flex; flex-direction: column; gap: 3px; }
.wa-thread { flex: none; }

/* ── значки вместо эмодзи: размер от текста, цветовые акценты для статусов ── */
body.nova-ui .nv-ico { display: inline-flex; align-items: center; justify-content: center; margin-right: .4em; vertical-align: -.18em; opacity: .92; }
body.nova-ui .nv-ico svg { width: 1.1em; height: 1.1em; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
body.nova-ui .nv-ico.good { color: var(--nv-good); } body.nova-ui .nv-ico.warn { color: var(--nv-warn); } body.nova-ui .nv-ico.bad { color: var(--nv-bad); }
body.nova-ui .nv-ico.info { color: var(--nv-accent); } body.nova-ui .nv-ico.violet { color: #8b5cf6; } body.nova-ui .nv-ico.pink { color: #ec4899; }
body.nova-ui .nv-ico.dark { color: #6b7280; } body.nova-ui .nv-ico.muted { color: #9ca3af; }
body.nova-ui .nv-ico.gold { color: #e3b341; } body.nova-ui .nv-ico.silver { color: #9aa4b2; } body.nova-ui .nv-ico.bronze { color: #c08457; }
body.nova-ui .nv-ico svg [fill="currentColor"] { fill: currentColor; stroke: none; }
body.nova-ui :is(h2, h3, .card-title, .page-title) > .nv-ico svg { width: 20px; height: 20px; }
body.nova-ui .map-decor .nv-ico { margin: 0; opacity: 1; }
body.nova-ui .map-decor .nv-ico svg { width: 1em; height: 1em; stroke-width: 1.6; }
/* ── контекстное меню ПК на карте: компактнее ── */
body.nova-ui .pc-ctx-menu { min-width: 184px; width: max-content; max-width: 250px; padding: 3px; border-radius: 12px; font-size: 12.5px; }
body.nova-ui .ctx-header { padding: 6px 10px 5px; margin-bottom: 3px; }
body.nova-ui .ctx-header-pc { font-size: 10.5px; }
body.nova-ui .ctx-header-user { font-size: 12.5px; margin-top: 1px; }
body.nova-ui .ctx-header-free { font-size: 12px; margin-top: 1px; }
body.nova-ui .ctx-header-bal { font-size: 11.5px; margin-top: 2px; }
body.nova-ui .ctx-item { display: flex; align-items: center; height: 26px; padding: 0 9px; font-size: 12.5px; border-radius: 7px; white-space: nowrap; }
body.nova-ui .ctx-item.ctx-group { padding-right: 22px; }
body.nova-ui .ctx-item .nv-ico svg { width: 14px; height: 14px; }
body.nova-ui .ctx-sep { margin: 3px 4px; }
.wa-chat-head .wa-del { all: unset; cursor: pointer; font-size: 12.5px; color: var(--nv-muted); padding: 6px 12px; border-radius: 10px; border: 1px solid var(--nv-border); }
.wa-chat-head .wa-del:hover { color: #ff6b6b; border-color: rgba(255,107,107,.45); background: rgba(255,107,107,.08); }

/* ── Диспетчер задач: компактно, поиск сверху, группировка ───────────────── */
.modal.tm-modal { max-width: 680px; width: min(680px, 94vw); }
.tm-wrap { padding-right: 2px; }
.tm-top { position: sticky; top: 0; z-index: 3; display: flex; align-items: center; gap: 10px; padding: 4px 2px 8px; background: var(--nv-surface, var(--modal-bg, #161b22)); }
.tm-search { flex: 1; min-width: 0; height: 30px; font-size: 12.5px; padding: 0 10px; }
.tm-group { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--nv-muted, rgba(255,255,255,.6)); white-space: nowrap; cursor: pointer; }
.tm-group input { width: auto; height: auto; margin: 0; }
.tm-count { font-size: 11.5px; color: var(--nv-faint, rgba(255,255,255,.4)); white-space: nowrap; }
.tm-table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 12.5px; }
.tm-table th { position: sticky; top: 42px; z-index: 2; text-align: left; padding: 4px 8px; font-size: 10.5px; font-weight: 600; letter-spacing: .06em; color: var(--nv-faint, rgba(255,255,255,.45)); background: var(--nv-surface, var(--modal-bg, #161b22)); border-bottom: 1px solid rgba(255,255,255,.08); }
.tm-row td { padding: 2px 8px; border-bottom: 1px solid rgba(255,255,255,.04); line-height: 1.25; }
.tm-row:hover td { background: rgba(255,255,255,.035); }
.tm-name { font-family: var(--nv-mono, monospace); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: rgba(255,255,255,.9); }
.tm-name small { color: rgba(255,255,255,.35); font-size: 10.5px; }
.tm-title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: rgba(255,255,255,.5); }
.tm-mem { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; color: rgba(255,255,255,.72); }
.tm-act { text-align: center; padding: 1px 2px !important; }
.tm-act button { height: 22px; min-width: 28px; padding: 0 6px; font-size: 12px; line-height: 1; }
.tm-grp .tm-name { font-weight: 600; }
.tm-badge { display: inline-block; margin-left: 4px; padding: 0 6px; border-radius: 8px; font-size: 10.5px; font-family: inherit; background: rgba(120,160,255,.18); color: #9db8ff; }
.tm-child td { background: rgba(255,255,255,.02); }

.modal .tm-table, .tm-table { min-width: 0 !important; width: 100% !important; max-width: 100% !important; }
.tm-wrap { overflow-x: hidden !important; }

/* Обзор карты: кнопки «пополнить» и «действия» стоят в один ровный ряд (значок $ раньше съезжал вверх) */
td.overview-actions-cell { white-space: nowrap; text-align: right; }
.overview-topup-btn, .overview-action-btn {
  display: inline-flex !important; align-items: center; justify-content: center;
  width: 30px; height: 30px; padding: 0 !important; vertical-align: middle; line-height: 1;
}
.overview-topup-btn { margin-right: 6px !important; }
.overview-topup-btn svg, .overview-action-btn svg { width: 16px; height: 16px; display: block; }

/* ── Разовые клиенты: ровные колонки, сортировка по заголовку, строка фильтров ─────────────────────── */
.nv-table.nv-ot { table-layout: auto; }
.nv-table.nv-ot th, .nv-table.nv-ot td { text-align: left; white-space: nowrap; vertical-align: middle; }
.nv-table.nv-ot th.num, .nv-table.nv-ot td.num { text-align: right !important; font-variant-numeric: tabular-nums; }
.nv-table.nv-ot th.nv-sort { cursor: pointer; user-select: none; }
.nv-table.nv-ot th.nv-sort:hover, .nv-table.nv-ot th.nv-sort.on { color: var(--nv-text); }
.nv-table.nv-ot td:last-child { text-align: right; }
.nv-ot-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin: 4px 0 10px; }
.nv-ot-bar label { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--nv-muted); white-space: nowrap; }
.nv-ot-bar input { height: 30px; font-size: 12.5px; padding: 0 10px; }
.nv-ot-bar input[type=number] { width: 96px; }
.nv-ot-search { flex: 1 1 220px; min-width: 180px; max-width: 360px; }
.nv-ot-count { margin-left: auto; font-size: 12px; color: var(--nv-faint); }

/* «Уведомить клиентов»: готовые сообщения */
.notify-tpl-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 12px; font-size: 12px; color: var(--nv-muted, rgba(255,255,255,.6)); }
.notify-tpl-save { height: 26px; padding: 0 10px; font-size: 12px; border-radius: 8px; }
.notify-tpl-list { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; max-height: 120px; overflow-y: auto; }
.notify-tpl { display: inline-flex; align-items: stretch; border: 1px solid var(--nv-border, rgba(255,255,255,.12)); border-radius: 9px; overflow: hidden; background: rgba(255,255,255,.04); }
.notify-tpl button { height: 28px; padding: 0 10px; font-size: 12.5px; border: 0; border-radius: 0; background: transparent; color: var(--nv-text, #fff); cursor: pointer; }
.notify-tpl-use { max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.notify-tpl-use:hover { background: var(--nv-accent-soft, rgba(60,140,255,.18)); }
.notify-tpl-del { color: var(--nv-faint, rgba(255,255,255,.45)) !important; padding: 0 8px !important; border-left: 1px solid var(--nv-border, rgba(255,255,255,.1)) !important; }
.notify-tpl-del:hover { color: #ff6b6b !important; background: rgba(255,107,107,.12) !important; }
.notify-tpl-empty { font-size: 12px; color: var(--nv-faint, rgba(255,255,255,.4)); }
/* ── Компенсации ──────────────────────────────────────────────────────────────────────────────── */
.comp-form { display: grid; gap: 8px; min-width: 360px; }
.comp-l { font-size: 12px; color: var(--nv-muted, rgba(255,255,255,.6)); margin-top: 4px; }
.comp-opt { color: var(--nv-faint, rgba(255,255,255,.4)); }
.comp-in { width: 100%; box-sizing: border-box; }
.comp-row { display: flex; gap: 8px; } .comp-row .comp-in:first-child { flex: 1; }
.comp-seg { display: flex; gap: 6px; margin: 6px 0 2px; }
.comp-seg button { flex: 1; height: 38px; border-radius: 10px; font-weight: 600; }
.comp-seg button.on { background: var(--nv-accent, #2f81d8); color: var(--nv-accent-fg, #fff); border-color: transparent; }
.comp-results { display: grid; gap: 4px; }
.comp-res { display: flex; justify-content: space-between; gap: 10px; text-align: left; padding: 7px 10px; border-radius: 9px; font-size: 13px; }
.comp-res span { color: var(--nv-muted, rgba(255,255,255,.55)); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.comp-none { font-size: 12px; color: var(--nv-faint, rgba(255,255,255,.4)); padding: 4px 2px; }
.comp-hint { font-size: 12.5px; padding: 9px 11px; border-radius: 10px; margin-top: 4px; }
.comp-hint.ok { background: rgba(57,240,120,.1); color: #6fe3a0; }
.comp-hint.wait { background: rgba(255,193,7,.12); color: #ffd166; }
.comp-tabs { display: inline-flex; gap: 4px; padding: 4px; margin-bottom: 12px; border: 1px solid var(--nv-border, rgba(255,255,255,.1)); border-radius: 12px; background: rgba(255,255,255,.03); }
.comp-tabs button { height: 32px; padding: 0 16px; border-radius: 9px; font-weight: 600; background: transparent; border: 0; }
.comp-tabs button.on { background: var(--nv-accent-soft, rgba(47,129,216,.22)); color: var(--nv-text, #fff); }
.comp-count { background: rgba(255,82,82,.85); color: #fff; border-radius: 10px; padding: 1px 6px; font-size: 11px; margin-left: 4px; }
.comp-pos-btn { background: rgba(124,58,237,.18) !important; border-color: rgba(124,58,237,.5) !important; }

/* Компенсация: быстрые кнопки времени и поле «Другое» */
.comp-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 2px 0 6px; }
.comp-chips button { flex: 1 1 70px; height: 44px; border-radius: 12px; font-size: 14px; font-weight: 700; }
.comp-chips button.on { background: var(--nv-accent, #2f81d8); color: var(--nv-accent-fg, #fff); border-color: transparent; }
.comp-row { display: flex; align-items: center; gap: 10px; }
.comp-amount { width: 120px; flex: 0 0 120px; height: 40px; font-size: 16px; padding: 0 12px; text-align: center; }
.comp-unit { flex: 1 1 auto; height: 40px; }

/* ── Перенос из бэкапа Gizmo ─────────────────────────────────────────────── */
.gz-pick { width: 100%; text-align: left; cursor: pointer; font: inherit; color: inherit; }
.gz-progress { margin-top: 18px; }
.gz-bar { height: 12px; background: rgba(255,255,255,.08); border-radius: 8px; overflow: hidden; }
.gz-bar-fill { height: 100%; width: 0; background: linear-gradient(90deg,#4fa3e8,#7c3aed); border-radius: 8px; transition: width .35s ease; }
.gz-bar-fill.gz-done { background: #22c55e; }
.gz-bar-fill.gz-err { background: #ef4444; }
.gz-bar-text { display: flex; justify-content: space-between; margin: 6px 2px 10px; font-size: 13px; opacity: .8; }
.gz-log { list-style: none; margin: 0; padding: 10px 12px; max-height: 320px; overflow: auto;
  background: rgba(0,0,0,.25); border: 1px solid rgba(255,255,255,.08); border-radius: 10px; font-size: 13px; }
.gz-log li { display: flex; gap: 8px; padding: 3px 0; line-height: 1.4; }
.gz-log .gz-ic { width: 20px; flex: none; text-align: center; }
.gz-log .gz-run { color: #93c5fd; }
.gz-log .gz-error { color: #fca5a5; }
.gz-log .gz-warn { color: #fcd34d; }
.gz-log .gz-summary { display: block; padding-top: 10px; }

/* ── Импорт игр ───────────────────────────────────────────────────────────── */
.gi-drives { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; }
.gi-drive { text-align: left; display: flex; flex-direction: column; gap: 2px; padding: 12px 14px; cursor: pointer; border-radius: 12px; font: inherit; color: inherit;
  background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1); }
.gi-drive b { font-size: 18px; }
.gi-drive small { opacity: .55; }
.gi-drive.on { border-color: #4fa3e8; background: rgba(79,163,232,.14); }
.gi-count { font-size: 14px; margin-bottom: 8px; }
.gi-count b { font-size: 22px; }
.gi-bar { height: 10px; background: rgba(255,255,255,.08); border-radius: 8px; overflow: hidden; }
.gi-bar-fill { height: 100%; width: 0; background: linear-gradient(90deg,#4fa3e8,#7c3aed); border-radius: 8px; transition: width .25s; }
.gi-bar-fill.gi-indet { width: 35%; animation: gi-slide 1.1s ease-in-out infinite alternate; }
@keyframes gi-slide { from { margin-left: 0; } to { margin-left: 65%; } }
.gi-cur { font-size: 12px; opacity: .6; margin: 6px 0 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gi-top { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 10px; }
.gi-sum { font-weight: 600; margin-right: auto; }
.gi-top-actions { display: flex; gap: 6px; flex-wrap: wrap; }
.gi-cat select { margin-left: 6px; }
.gi-list { max-height: 52vh; overflow: auto; display: flex; flex-direction: column; gap: 6px; padding-right: 4px; }
.gi-row { display: flex; align-items: center; gap: 12px; padding: 8px 10px; border-radius: 12px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.07); }
.gi-row.off { opacity: .45; }
.gi-thumb { width: 52px; height: 52px; flex: none; border-radius: 10px; overflow: hidden; background: rgba(0,0,0,.3); display: grid; place-items: center; }
.gi-thumb img { width: 100%; height: 100%; object-fit: cover; }
.gi-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.gi-name { width: 100%; background: transparent; border: 1px solid transparent; border-radius: 6px; padding: 3px 6px; font-weight: 600; font-size: 14px; color: inherit; }
.gi-name:hover, .gi-name:focus { border-color: rgba(255,255,255,.18); background: rgba(0,0,0,.2); outline: none; }
.gi-path { font-size: 11.5px; opacity: .55; padding-left: 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gi-path i { font-style: normal; color: #93c5fd; }
.gi-kind { font-size: 11px; padding: 3px 8px; border-radius: 999px; background: rgba(255,255,255,.1); flex: none; }
.gi-kind.k-launcher { background: rgba(124,58,237,.3); }
.gi-kind.k-steam { background: rgba(27,40,56,.9); color: #66c0f4; }
.gi-kind.k-epic { background: rgba(255,255,255,.14); }
.gi-dup { font-size: 11px; color: #fcd34d; flex: none; }
.gi-x { flex: none; width: 28px; height: 28px; padding: 0; border-radius: 8px; line-height: 1; }

.gi-row .gi-chk { width: 18px !important; height: 18px; min-width: 18px; flex: none; margin: 0; padding: 0; accent-color: #4fa3e8; }
.gi-row .gi-name { width: 100% !important; min-width: 0; color: inherit; box-shadow: none; }
.gi-main { flex: 1 1 auto; }

/* выравнивание: кнопка выбора бэкапа и карточки дисков */
button.gz-pick { display: flex !important; align-items: center; justify-content: center; gap: 10px; text-align: center !important; height: auto; min-height: 54px; padding: 12px 16px; }
button.gz-pick > span { display: inline-block; line-height: 1.3; }
.gi-drives .gi-drive { display: flex !important; flex-direction: column; align-items: flex-start; justify-content: center; gap: 3px;
  height: auto !important; min-height: 84px; padding: 12px 16px; text-align: left; line-height: 1.25; white-space: normal; }
.gi-drives .gi-drive b { font-size: 20px; line-height: 1.1; }
.gi-drives .gi-drive span { font-size: 13px; opacity: .85; }
.gi-drives .gi-drive small { font-size: 11.5px; opacity: .55; }

/* ── Движение ─────────────────────────────────────────────────────────────── */
@keyframes nv-fade-up { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes nv-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes nv-pop { from { opacity: 0; transform: translateY(10px) scale(.97); } to { opacity: 1; transform: none; } }
@keyframes nv-bar-grow { from { transform: scaleY(0); } to { transform: scaleY(1); } }
@keyframes nv-draw { to { stroke-dashoffset: 0; } }
@keyframes nv-area-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes nv-grow-x { from { transform: scaleX(0); } to { transform: scaleX(1); } }

#content.nv-fade { animation: nv-fade .28s ease both; }
.nv-in { animation: nv-fade-up .46s cubic-bezier(.2,.7,.2,1) both; animation-delay: var(--nv-d, 0ms); }

.nv-chart.nv-play rect.bar { transform-box: fill-box; transform-origin: 50% 100%; animation: nv-bar-grow .7s cubic-bezier(.2,.8,.2,1) both; animation-delay: calc(var(--i, 0) * 16ms); }
.nv-chart.nv-play path.line { stroke-dasharray: var(--len, 2000); stroke-dashoffset: var(--len, 2000); animation: nv-draw 1.1s ease-out .1s forwards; }
.nv-chart.nv-play path.area { animation: nv-area-in .8s ease .45s both; }
.nv-stack.nv-play i { transform-origin: 0 50%; animation: nv-grow-x .9s cubic-bezier(.2,.8,.2,1) both; }

/* окна и меню — мягкое появление */
#modalBackdrop.open { animation: nv-fade .18s ease both; }
#modalBackdrop.open .modal { animation: nv-pop .26s cubic-bezier(.2,.8,.2,1) both; }

/* плавные состояния (нулевая специфичность — не перебивает существующие правила) */
:where(button, .card, .nv-tile, .nv-panel, .choice-chip, .nvd-tab, .nv-item, input, select, textarea) {
  transition: background-color .18s ease, border-color .18s ease, color .18s ease, box-shadow .22s ease, transform .22s ease, opacity .2s ease;
}
.nv-tile:hover { transform: translateY(-2px); }

@media (prefers-reduced-motion: reduce) {
  .nv-in, #content.nv-fade, #modalBackdrop.open, #modalBackdrop.open .modal,
  .nv-chart.nv-play rect.bar, .nv-chart.nv-play path.line, .nv-chart.nv-play path.area, .nv-stack.nv-play i { animation: none !important; }
  .nv-chart.nv-play path.line { stroke-dasharray: none; stroke-dashoffset: 0; }
}

/* ── Уровни лояльности: выбор стиля и значка, значок на карте клуба ───────── */
.tier-presets { display: flex; flex-wrap: wrap; gap: 8px; }
.tier-preset { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 999px; cursor: pointer; font: inherit; color: inherit;
  background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.12); transition: border-color .18s, background .18s, transform .18s; }
.tier-preset i { width: 12px; height: 12px; border-radius: 50%; display: inline-block; background: var(--c, #888); box-shadow: 0 0 10px var(--c, transparent); }
.tier-preset.on { border-color: var(--c, #4fa3e8); background: color-mix(in srgb, var(--c, #4fa3e8) 16%, transparent); }
.tier-icons { display: grid; grid-template-columns: repeat(auto-fill, minmax(46px, 1fr)); gap: 6px; max-height: 190px; overflow: auto; padding: 4px; }
.tier-icon-btn { height: 46px; display: grid; place-items: center; border-radius: 10px; cursor: pointer; color: inherit; padding: 0;
  background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); transition: border-color .15s, background .15s, color .15s, transform .15s; }
.tier-icon-btn:hover { transform: translateY(-1px); border-color: rgba(255,255,255,.25); }
.tier-icon-btn.on { border-color: var(--c, #4fa3e8); color: var(--c, #4fa3e8); background: color-mix(in srgb, var(--c, #4fa3e8) 14%, transparent); }
.tier-preview { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border-radius: 14px; margin-top: 4px;
  background: linear-gradient(135deg, color-mix(in srgb, var(--c, #888) 22%, #0b0f12), #0b0f12); border: 1px solid color-mix(in srgb, var(--c, #888) 55%, transparent);
  box-shadow: 0 0 24px color-mix(in srgb, var(--c, #888) 25%, transparent); }
.tier-preview .tp-badge { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; color: var(--c, #fff);
  background: color-mix(in srgb, var(--c, #888) 18%, transparent); border: 1px solid color-mix(in srgb, var(--c, #888) 60%, transparent); }
.tier-preview .tp-name { font-weight: 800; font-size: 18px; color: var(--c, #fff); }
.tier-preview .tp-sub { font-size: 12px; opacity: .65; }
.tier-chip { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: var(--c, inherit); }
/* значок уровня внутри ПК на карте клуба */
.tile-pc-icon { position: relative; }
.tile-tier { position: absolute; left: 50%; top: 42%; transform: translate(-50%, -50%); display: grid; place-items: center; pointer-events: none;
  filter: drop-shadow(0 0 4px rgba(0,0,0,.55)); }
.tile-tier .tier-ic { stroke-width: 2.2; }

/* ── Профиль клуба для приложения ─────────────────────────────────────────── */
.cp-page .editor-card { margin-bottom: 16px; }
.cp-photos { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 12px; margin-top: 12px; }
.cp-photo { position: relative; aspect-ratio: 16/10; border-radius: 12px; overflow: hidden; background: rgba(0,0,0,.35); border: 1px solid rgba(255,255,255,.1); }
.cp-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cp-badge { position: absolute; left: 8px; top: 8px; font-size: 11px; font-weight: 800; padding: 3px 8px; border-radius: 999px; background: #7c3aed; color: #fff; }
.cp-photo-actions { position: absolute; left: 0; right: 0; bottom: 0; display: flex; gap: 6px; justify-content: flex-end; padding: 8px; background: linear-gradient(0deg, rgba(0,0,0,.65), transparent); opacity: 0; transition: opacity .18s; }
.cp-photo:hover .cp-photo-actions { opacity: 1; }
.cp-photo-actions button { width: 30px; height: 30px; padding: 0; border-radius: 8px; }
.cp-hall { padding: 12px 0; border-top: 1px solid rgba(255,255,255,.08); }
.cp-hall-name { font-weight: 700; margin-bottom: 8px; }

/* ── Логотип и обложка клуба, пометка «телефон не подтверждён» ─────────────── */
.cp-brand { display: flex; gap: 22px; flex-wrap: wrap; margin-top: 12px; }
.cp-brand-item { display: flex; flex-direction: column; gap: 8px; }
.cp-brand-title { font-weight: 700; font-size: 13px; opacity: .8; }
.cp-brand-box { position: relative; border-radius: 14px; overflow: hidden; background: rgba(0,0,0,.35); border: 1px dashed rgba(255,255,255,.18); display: grid; place-items: center; }
.cp-logo { width: 110px; height: 110px; }
.cp-cover { width: 300px; height: 120px; }
.cp-brand-box img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cp-hint { position: absolute; left: 8px; bottom: 6px; padding: 2px 8px; border-radius: 999px; background: rgba(0,0,0,.6); font-size: 11px; }
.cp-brand-actions { display: flex; gap: 8px; align-items: center; }
.ct-unverified { display: inline-block; margin-left: 6px; padding: 1px 8px; border-radius: 999px; font-size: 11px; background: rgba(245,158,11,.18); color: #fbbf24; border: 1px solid rgba(245,158,11,.4); }
.client-unverified { display: inline-flex; align-items: center; gap: 6px; }
/* ── Редактор расстановки на карте клуба: рамка выделения, ручки размера и поворота ── */
.graphic-edit-mode .pc-tile, .graphic-edit-mode .map-decor { cursor: move; }
.map-decor.decor-selected { outline: 2px solid #0078d2; outline-offset: 3px; background-color: rgba(0,120,210,.12); }
.map-sel-box { position: absolute; display: none; pointer-events: none; border: 0; z-index: 60; }   /* сама рамка не рисуется — видны только ручки */
.msb-handle { position: absolute; pointer-events: auto; background: #0078d2; border: 2px solid #fff; box-shadow: 0 2px 8px rgba(0,0,0,.5); }
.msb-res { right: -10px; bottom: -10px; width: 16px; height: 16px; border-radius: 4px; cursor: nwse-resize; }
.msb-rot { left: 50%; top: -30px; width: 22px; height: 22px; margin-left: -11px; border-radius: 50%; cursor: grab; color: #fff; font-size: 13px; line-height: 18px; text-align: center; }
.msb-stem { display: none; }
.msb-info { position: absolute; left: 0; top: -22px; font-size: 11px; color: #7fc4ff; white-space: nowrap; }

/* значок уровня — в правом верхнем углу плитки ПК, а не поверх иконки компьютера */
.pc-tile .tile-pc-icon { position: static; }
.pc-tile .tile-tier { left: auto; top: 4px; right: 4px; transform: none; z-index: 3; }
.pc-tile:has(.tile-tier) .tile-badges { margin-right: 22px; }

/* ═══ Касса: карточка выбранного клиента — компактная (перекрывает правила выше) ═══ */
body.nova-ui #content .pos-client-summary { margin-top: 6px !important; padding: 6px 9px !important; border-radius: 10px !important; }
body.nova-ui #content .pos-client-summary-head { gap: 8px !important; }
body.nova-ui #content .pos-client-ava { width: 30px !important; height: 30px !important; min-width: 30px !important; font-size: 11.5px !important;
  box-shadow: 0 0 0 2px var(--nv-accent-soft) !important; }
body.nova-ui #content .pos-client-main { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
body.nova-ui #content .pos-client-main .card-title { font-size: 14px !important; line-height: 1.15 !important; }
body.nova-ui #content .pos-client-main .card-sub { font-size: 11px !important; line-height: 1.15 !important; }
body.nova-ui #content .pos-balances { gap: 4px !important; margin-top: 5px !important; }
body.nova-ui #content .pos-balances .pill { font-size: 10.5px !important; padding: 1px 7px !important; min-height: 0 !important; height: 20px !important; line-height: 18px !important; }
body.nova-ui #content .pos-balances .pill.good::before { margin-right: 5px; width: 5px; height: 5px; }

/* «Уведомить» и соседние кнопки карты: без отражения/блика/свечения вокруг */
body.nova-ui #content .club-notify-btn, body.nova-ui #content #clubNotifyBtn,
body.nova-ui #content .club-notify-btn:hover, body.nova-ui #content #clubNotifyBtn:hover,
body.nova-ui #content .club-notify-btn:focus, body.nova-ui #content #clubNotifyBtn:focus {
  box-shadow: none !important; background-image: none !important; text-shadow: none !important;
  filter: none !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
  animation: none !important; transform: none !important; outline: none !important;
}
body.nova-ui #content .club-notify-btn::before, body.nova-ui #content .club-notify-btn::after,
body.nova-ui #content #clubNotifyBtn::before, body.nova-ui #content #clubNotifyBtn::after { content: none !important; display: none !important; }

/* Стены на макете: сплошной цвет, концы тянутся мышью, ручка размера крупнее */
.map-decor-wall svg { opacity: 1 !important; filter: drop-shadow(0 1px 2px rgba(0,0,0,.45)); }
.msb-wend { display: none; width: 18px; height: 18px; margin: -9px 0 0 -9px; border-radius: 50%; cursor: ew-resize; z-index: 70; }
.msb-wend:hover { background: #ffc83d; }
.msb-res { width: 22px !important; height: 22px !important; right: -12px !important; bottom: -12px !important; }
/* ── Окно «Способ оплаты» (кнопка «Оплатить» на кассе) ── */
.pos-choose-overlay{position:fixed;inset:0;z-index:100000;background:rgba(8,10,16,.62);display:flex;align-items:center;justify-content:center;padding:20px}
.pos-choose-box{width:min(460px,100%);background:var(--nv-surface,#171a24);color:var(--nv-text,#e8ebf4);border:1px solid var(--nv-border,rgba(255,255,255,.12));border-radius:18px;padding:22px;box-shadow:0 24px 70px rgba(0,0,0,.5);display:grid;gap:14px}
.pos-choose-title{font-size:13px;letter-spacing:.08em;text-transform:uppercase;opacity:.65;text-align:center}
.pos-choose-sum{font-size:30px;font-weight:800;text-align:center}
.pos-choose-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pos-choose-opt{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding:16px 10px;border-radius:14px;border:1px solid var(--nv-border,rgba(255,255,255,.14));background:var(--nv-surface-2,rgba(255,255,255,.05));color:var(--nv-text,#e8ebf4);font:inherit;cursor:pointer}
.pos-choose-opt:hover:not([disabled]),.pos-choose-opt:focus-visible{background:var(--nv-accent-soft,rgba(120,140,255,.18));border-color:var(--nv-accent,#7c8cff);outline:none}
.pos-choose-opt.last{border-color:var(--nv-accent,#7c8cff)}
.pos-choose-opt[disabled]{opacity:.4;cursor:not-allowed}
.pos-choose-opt .pco-ic{font-size:26px}
.pos-choose-opt .pco-name{font-weight:700}
.pos-choose-opt small{opacity:.7;font-size:11px}
.pos-choose-opt kbd{position:absolute;top:6px;right:8px;font-size:11px;opacity:.5;font-family:inherit}
.pos-choose-cancel{padding:10px;border-radius:12px;border:0;background:transparent;color:inherit;opacity:.7;cursor:pointer;font:inherit}
.pos-choose-cancel:hover{opacity:1}

.tile-badge-minor{background:#e5484d !important;color:#fff;border-radius:6px;padding:0 3px;font-weight:800;animation:nvMinorPulse 1.6s ease-in-out infinite}
@keyframes nvMinorPulse{50%{opacity:.55}}

.nv-table.nv-ac th, .nv-table.nv-ac td { vertical-align: middle; white-space: nowrap; }
.nv-table.nv-ac th.num, .nv-table.nv-ac td.num { text-align: right !important; padding-right: 22px; font-variant-numeric: tabular-nums; }
.nv-chip-disc { background: rgba(102,187,106,.16); color: #81c784; }

/* окно «Способ оплаты»: глобальные стили кнопок не должны сжимать плитки */
.pos-choose-box .pos-choose-opt{height:auto !important;min-height:92px !important;overflow:visible !important;justify-content:center;padding:14px 10px !important;line-height:1.25 !important;color:var(--nv-text,#e8ebf4) !important}
.pos-choose-box .pos-choose-opt .pco-ic{display:block;font-size:28px;line-height:1.1;opacity:1}
.pos-choose-box .pos-choose-opt .pco-name{display:block;font-size:15px;font-weight:700;color:inherit;opacity:1}
.pos-choose-box .pos-choose-cancel{height:auto !important;min-height:40px;padding:10px !important}

/* ═══ Светлые темы (фиол-белая, серебро): текст, который был белым для тёмного фона ═══ */
body.theme-light-purple .posadv-shop-client-label,body.theme-silver .posadv-shop-client-label,
body.theme-light-purple .kaspi-qr-hint,body.theme-silver .kaspi-qr-hint,
body.theme-light-purple .terminal-manual-hint,body.theme-silver .terminal-manual-hint,
body.theme-light-purple .zone-stat-lbl,body.theme-silver .zone-stat-lbl,
body.theme-light-purple .ctx-header-pc,body.theme-silver .ctx-header-pc,
body.theme-light-purple .audit-action-stop,body.theme-silver .audit-action-stop,
body.theme-light-purple .posadv-cart-qty,body.theme-silver .posadv-cart-qty,
body.theme-light-purple .dep-cancel-status,body.theme-silver .dep-cancel-status,
body.theme-light-purple .shift-summary-title,body.theme-silver .shift-summary-title,
body.theme-light-purple .temp-pass-note,body.theme-silver .temp-pass-note{color:rgba(27,18,48,0.75) !important}
body.theme-light-purple .restock-bulk-stock,body.theme-silver .restock-bulk-stock,
body.theme-light-purple .exp-pkg-mins,body.theme-silver .exp-pkg-mins,
body.theme-light-purple .dash-session-time,body.theme-silver .dash-session-time,
body.theme-light-purple .gs-item-sub,body.theme-silver .gs-item-sub,
body.theme-light-purple .dep-bal-after,body.theme-silver .dep-bal-after,
body.theme-light-purple .decor-panel-title,body.theme-silver .decor-panel-title,
body.theme-light-purple .audit-time,body.theme-silver .audit-time,
body.theme-light-purple .posadv-main-tab,body.theme-silver .posadv-main-tab,
body.theme-light-purple .td-pkg-price,body.theme-silver .td-pkg-price,
body.theme-light-purple .posadv-cashier-add,body.theme-silver .posadv-cashier-add,
body.theme-light-purple .posadv-hist-tab,body.theme-silver .posadv-hist-tab,
body.theme-light-purple .posadv-zreport-date,body.theme-silver .posadv-zreport-date,
body.theme-light-purple .mgr-chat-close,body.theme-silver .mgr-chat-close,
body.theme-light-purple .mgr-chat-line-meta,body.theme-silver .mgr-chat-line-meta,
body.theme-light-purple .reset-close-btn,body.theme-silver .reset-close-btn,
body.theme-light-purple .reset-step-icon,body.theme-silver .reset-step-icon,
body.theme-light-purple .rpt-range-label,body.theme-silver .rpt-range-label,
body.theme-light-purple .shift-summary-sub,body.theme-silver .shift-summary-sub,
body.theme-light-purple .rpt-tile-label,body.theme-silver .rpt-tile-label,
body.theme-light-purple .posadv-order-ws,body.theme-silver .posadv-order-ws,
body.theme-light-purple .cqp-loading,body.theme-silver .cqp-loading,
body.theme-light-purple .faq-chevron,body.theme-silver .faq-chevron{color:rgba(27,18,48,0.64) !important}
body.theme-light-purple .kaspi-qr-title,body.theme-silver .kaspi-qr-title,
body.theme-light-purple .gs-input,body.theme-silver .gs-input,
body.theme-light-purple .pos-zone-tab:hover,body.theme-silver .pos-zone-tab:hover,
body.theme-light-purple .ctx-header-user,body.theme-silver .ctx-header-user,
body.theme-light-purple .posadv-brand,body.theme-silver .posadv-brand,
body.theme-light-purple .posadv-rp-val,body.theme-silver .posadv-rp-val,
body.theme-light-purple .posadv-tx-plus,body.theme-silver .posadv-tx-plus,
body.theme-light-purple .posadv-cart-price,body.theme-silver .posadv-cart-price,
body.theme-light-purple .posadv-zreport-title,body.theme-silver .posadv-zreport-title,
body.theme-light-purple .admin-block-title,body.theme-silver .admin-block-title,
body.theme-light-purple .mgr-chat-line-msg,body.theme-silver .mgr-chat-line-msg,
body.theme-light-purple .dep-detail-head,body.theme-silver .dep-detail-head,
body.theme-light-purple .dep-detail-val,body.theme-silver .dep-detail-val,
body.theme-light-purple .reset-modal-title,body.theme-silver .reset-modal-title,
body.theme-light-purple .reset-item-title,body.theme-silver .reset-item-title,
body.theme-light-purple .modal-title,body.theme-silver .modal-title,
body.theme-light-purple .reset-done-text,body.theme-silver .reset-done-text,
body.theme-light-purple .shift-summary-total,body.theme-silver .shift-summary-total,
body.theme-light-purple .shift-kpi-val,body.theme-silver .shift-kpi-val,
body.theme-light-purple .rpt-kpi-value,body.theme-silver .rpt-kpi-value,
body.theme-light-purple .rpt-row-total,body.theme-silver .rpt-row-total,
body.theme-light-purple .rpt-tile-value,body.theme-silver .rpt-tile-value,
body.theme-light-purple .pos-order-id,body.theme-silver .pos-order-id,
body.theme-light-purple .posadv-order-head,body.theme-silver .posadv-order-head,
body.theme-light-purple .faq-q,body.theme-silver .faq-q{color:#1b1230 !important}
body.theme-light-purple .kaspi-qr-placeholder,body.theme-silver .kaspi-qr-placeholder,
body.theme-light-purple .notif-head,body.theme-silver .notif-head,
body.theme-light-purple .notif-sub-item .notif-sub,body.theme-silver .notif-sub-item .notif-sub,
body.theme-light-purple .notif-sub,body.theme-silver .notif-sub,
body.theme-light-purple .dash-kpi-label,body.theme-silver .dash-kpi-label,
body.theme-light-purple .reservation-zone-title,body.theme-silver .reservation-zone-title,
body.theme-light-purple .brk-toggle,body.theme-silver .brk-toggle,
body.theme-light-purple .ctx-item.ctx-group::after,body.theme-silver .ctx-item.ctx-group::after,
body.theme-light-purple .posadv-tx-time,body.theme-silver .posadv-tx-time,
body.theme-light-purple .dep-detail-label,body.theme-silver .dep-detail-label,
body.theme-light-purple .dep-refund-amount-label,body.theme-silver .dep-refund-amount-label,
body.theme-light-purple .modal-sub,body.theme-silver .modal-sub,
body.theme-light-purple .shift-kpi-label,body.theme-silver .shift-kpi-label,
body.theme-light-purple .rpt-kpi-label,body.theme-silver .rpt-kpi-label,
body.theme-light-purple .cstat-label,body.theme-silver .cstat-label{color:rgba(27,18,48,0.70) !important}
body.theme-light-purple .kaspi-qr-status,body.theme-silver .kaspi-qr-status,
body.theme-light-purple .live-stat,body.theme-silver .live-stat,
body.theme-light-purple .dash-card-title,body.theme-silver .dash-card-title,
body.theme-light-purple .dash-session-name,body.theme-silver .dash-session-name,
body.theme-light-purple .pos-zone-tab,body.theme-silver .pos-zone-tab,
body.theme-light-purple .ctx-item.ctx-sub,body.theme-silver .ctx-item.ctx-sub,
body.theme-light-purple .tt-name,body.theme-silver .tt-name,
body.theme-light-purple .ip-list-item .ip-mono,body.theme-silver .ip-list-item .ip-mono,
body.theme-light-purple .import-checkbox,body.theme-silver .import-checkbox,
body.theme-light-purple .import-label-row,body.theme-silver .import-label-row,
body.theme-light-purple .posadv-main-tab:hover:not(.active),body.theme-silver .posadv-main-tab:hover:not(.active),
body.theme-light-purple .td-pkg-name,body.theme-silver .td-pkg-name,
body.theme-light-purple .posadv-tx-num,body.theme-silver .posadv-tx-num,
body.theme-light-purple .posadv-tx-login,body.theme-silver .posadv-tx-login,
body.theme-light-purple .posadv-hist-tab:hover:not(.active),body.theme-silver .posadv-hist-tab:hover:not(.active),
body.theme-light-purple .posadv-cart-row,body.theme-silver .posadv-cart-row,
body.theme-light-purple .posadv-cart-total,body.theme-silver .posadv-cart-total,
body.theme-light-purple .cleanup-row,body.theme-silver .cleanup-row,
body.theme-light-purple .mgr-opcall-pc,body.theme-silver .mgr-opcall-pc,
body.theme-light-purple .rpt-row,body.theme-silver .rpt-row,
body.theme-light-purple .rpt-card-row,body.theme-silver .rpt-card-row,
body.theme-light-purple .pos-order-items,body.theme-silver .pos-order-items,
body.theme-light-purple .ct-phone,body.theme-silver .ct-phone,
body.theme-light-purple .ct-th-sort:hover,body.theme-silver .ct-th-sort:hover,
body.theme-light-purple .ct-th-sorted,body.theme-silver .ct-th-sorted,
body.theme-light-purple .faq-cat-title,body.theme-silver .faq-cat-title,
body.theme-light-purple .faq-a,body.theme-silver .faq-a{color:rgba(27,18,48,0.92) !important}
body.theme-light-purple .club-select-del,body.theme-silver .club-select-del,
body.theme-light-purple .gs-input::placeholder,body.theme-silver .gs-input::placeholder,
body.theme-light-purple .zone-stat-sep,body.theme-silver .zone-stat-sep,
body.theme-light-purple .posadv-no-results,body.theme-silver .posadv-no-results,
body.theme-light-purple .posadv-voided,body.theme-silver .posadv-voided,
body.theme-light-purple .rpt-section-label,body.theme-silver .rpt-section-label,
body.theme-light-purple .ct-group-badge.muted,body.theme-silver .ct-group-badge.muted{color:rgba(27,18,48,0.53) !important}
body.theme-light-purple .club-select-add-btn,body.theme-silver .club-select-add-btn,
body.theme-light-purple .import-stat.skip,body.theme-silver .import-stat.skip,
body.theme-light-purple .import-err-details,body.theme-silver .import-err-details,
body.theme-light-purple .posadv-tx-desc,body.theme-silver .posadv-tx-desc,
body.theme-light-purple .rpt-chart-legend,body.theme-silver .rpt-chart-legend,
body.theme-light-purple .pos-order-meta,body.theme-silver .pos-order-meta{color:rgba(27,18,48,0.81) !important}
body.theme-light-purple .club-select-cancel-btn,body.theme-silver .club-select-cancel-btn,
body.theme-light-purple .dep-summary-item,body.theme-silver .dep-summary-item,
body.theme-light-purple .tl-label,body.theme-silver .tl-label,
body.theme-light-purple .import-file-label,body.theme-silver .import-file-label,
body.theme-light-purple .posadv-revenue,body.theme-silver .posadv-revenue,
body.theme-light-purple .reset-cancel-btn,body.theme-silver .reset-cancel-btn,
body.theme-light-purple .rpt-period-btn,body.theme-silver .rpt-period-btn,
body.theme-light-purple .posadv-order-items,body.theme-silver .posadv-order-items,
body.theme-light-purple .cip-placeholder-text,body.theme-silver .cip-placeholder-text{color:rgba(27,18,48,0.86) !important}
body.theme-light-purple .notif-empty,body.theme-silver .notif-empty,
body.theme-light-purple .gs-item-badge,body.theme-silver .gs-item-badge,
body.theme-light-purple .gs-empty,body.theme-silver .gs-empty,
body.theme-light-purple .field-hint,body.theme-silver .field-hint,
body.theme-light-purple .tl-hour,body.theme-silver .tl-hour,
body.theme-light-purple .ctx-header-free,body.theme-silver .ctx-header-free,
body.theme-light-purple .posadv-shop-cat-title,body.theme-silver .posadv-shop-cat-title,
body.theme-light-purple .dep-refund-amount-max,body.theme-silver .dep-refund-amount-max,
body.theme-light-purple .top-client-sub,body.theme-silver .top-client-sub,
body.theme-light-purple .hourly-label,body.theme-silver .hourly-label,
body.theme-light-purple .rpt-tile-section-label,body.theme-silver .rpt-tile-section-label,
body.theme-light-purple .rpt-card-title,body.theme-silver .rpt-card-title,
body.theme-light-purple .pos-order-time,body.theme-silver .pos-order-time,
body.theme-light-purple .cp-ellipsis,body.theme-silver .cp-ellipsis,
body.theme-light-purple .cp-total,body.theme-silver .cp-total{color:rgba(27,18,48,0.58) !important}
body.theme-light-purple .gs-footer,body.theme-silver .gs-footer{color:rgba(27,18,48,0.48) !important}
body.theme-light-purple .metric-title,body.theme-silver .metric-title{color:rgba(27,18,48,0.82) !important}
body.theme-light-purple .empty,body.theme-silver .empty{color:rgba(27,18,48,0.84) !important}
body.theme-light-purple .muted-text,body.theme-silver .muted-text,
body.theme-light-purple .cqp-balance-label,body.theme-silver .cqp-balance-label,
body.theme-light-purple .cqp-bonus-val,body.theme-silver .cqp-bonus-val{color:rgba(27,18,48,0.66) !important}
body.theme-light-purple .old-price,body.theme-silver .old-price{color:rgba(27,18,48,0.73) !important}
body.theme-light-purple .audit-ip,body.theme-silver .audit-ip,
body.theme-light-purple .cstat-sub,body.theme-silver .cstat-sub{color:rgba(27,18,48,0.62) !important}
body.theme-light-purple .posadv-textarea::placeholder,body.theme-silver .posadv-textarea::placeholder{color:rgba(27,18,48,0.42) !important}
body.theme-light-purple .reset-item-desc,body.theme-silver .reset-item-desc{color:rgba(27,18,48,0.77) !important}
body.theme-light-purple .kaspi-qr-box,body.theme-silver .kaspi-qr-box,
body.theme-light-purple .terminal-manual-box,body.theme-silver .terminal-manual-box,
body.theme-light-purple .notif-panel,body.theme-silver .notif-panel,
body.theme-light-purple .gs-panel,body.theme-silver .gs-panel,
body.theme-light-purple .mgr-chat-panel,body.theme-silver .mgr-chat-panel,
body.theme-light-purple .mgr-opcall-notif,body.theme-silver .mgr-opcall-notif,
body.theme-light-purple .dep-detail-modal,body.theme-silver .dep-detail-modal,
body.theme-light-purple .reset-modal,body.theme-silver .reset-modal,
body.theme-light-purple .modal-box,body.theme-silver .modal-box,
body.theme-light-purple .posadv-shop-user-results,body.theme-silver .posadv-shop-user-results{background:#ffffff !important;border-color:rgba(76,29,149,.18) !important;color:#1b1230 !important}
body.theme-light-purple .posadv-textarea,body.theme-silver .posadv-textarea,
body.theme-light-purple .posadv-user-icon,body.theme-silver .posadv-user-icon,
body.theme-light-purple .faq-search,body.theme-silver .faq-search,
body.theme-light-purple .posadv-cashiers,body.theme-silver .posadv-cashiers,
body.theme-light-purple .posadv-right-bar,body.theme-silver .posadv-right-bar,
body.theme-light-purple .tl-header,body.theme-silver .tl-header{background:#f3edff !important;border-color:rgba(76,29,149,.16) !important}
body.theme-light-purple .terminal-manual-actions button,body.theme-silver .terminal-manual-actions button{background:#ede7ff !important;color:#1b1230 !important;border:1px solid rgba(76,29,149,.2) !important}
body.theme-light-purple .terminal-manual-actions button.primary,body.theme-silver .terminal-manual-actions button.primary{background:#7c3aed !important;color:#fff !important}

/* inline-стили с белым серым текстом (style="color:rgba(255,255,255,.N)") в светлых темах */
body.theme-light-purple #content [style*="color:rgba(255,255,255,.2"],
body.theme-light-purple .modal [style*="color:rgba(255,255,255,.2"],
body.theme-silver #content [style*="color:rgba(255,255,255,.2"],
body.theme-silver .modal [style*="color:rgba(255,255,255,.2"],
body.theme-light-purple #content [style*="color: rgba(255,255,255,.2"],
body.theme-light-purple .modal [style*="color: rgba(255,255,255,.2"],
body.theme-silver #content [style*="color: rgba(255,255,255,.2"],
body.theme-silver .modal [style*="color: rgba(255,255,255,.2"],
body.theme-light-purple #content [style*="color:rgba(255, 255, 255, .2"],
body.theme-light-purple .modal [style*="color:rgba(255, 255, 255, .2"],
body.theme-silver #content [style*="color:rgba(255, 255, 255, .2"],
body.theme-silver .modal [style*="color:rgba(255, 255, 255, .2"],
body.theme-light-purple #content [style*="color: rgba(255, 255, 255, .2"],
body.theme-light-purple .modal [style*="color: rgba(255, 255, 255, .2"],
body.theme-silver #content [style*="color: rgba(255, 255, 255, .2"],
body.theme-silver .modal [style*="color: rgba(255, 255, 255, .2"]{color:rgba(27,18,48,0.42) !important}
body.theme-light-purple #content [style*="color:rgba(255,255,255,.25"],
body.theme-light-purple .modal [style*="color:rgba(255,255,255,.25"],
body.theme-silver #content [style*="color:rgba(255,255,255,.25"],
body.theme-silver .modal [style*="color:rgba(255,255,255,.25"],
body.theme-light-purple #content [style*="color: rgba(255,255,255,.25"],
body.theme-light-purple .modal [style*="color: rgba(255,255,255,.25"],
body.theme-silver #content [style*="color: rgba(255,255,255,.25"],
body.theme-silver .modal [style*="color: rgba(255,255,255,.25"],
body.theme-light-purple #content [style*="color:rgba(255, 255, 255, .25"],
body.theme-light-purple .modal [style*="color:rgba(255, 255, 255, .25"],
body.theme-silver #content [style*="color:rgba(255, 255, 255, .25"],
body.theme-silver .modal [style*="color:rgba(255, 255, 255, .25"],
body.theme-light-purple #content [style*="color: rgba(255, 255, 255, .25"],
body.theme-light-purple .modal [style*="color: rgba(255, 255, 255, .25"],
body.theme-silver #content [style*="color: rgba(255, 255, 255, .25"],
body.theme-silver .modal [style*="color: rgba(255, 255, 255, .25"]{color:rgba(27,18,48,0.48) !important}
body.theme-light-purple #content [style*="color:rgba(255,255,255,.3"],
body.theme-light-purple .modal [style*="color:rgba(255,255,255,.3"],
body.theme-silver #content [style*="color:rgba(255,255,255,.3"],
body.theme-silver .modal [style*="color:rgba(255,255,255,.3"],
body.theme-light-purple #content [style*="color: rgba(255,255,255,.3"],
body.theme-light-purple .modal [style*="color: rgba(255,255,255,.3"],
body.theme-silver #content [style*="color: rgba(255,255,255,.3"],
body.theme-silver .modal [style*="color: rgba(255,255,255,.3"],
body.theme-light-purple #content [style*="color:rgba(255, 255, 255, .3"],
body.theme-light-purple .modal [style*="color:rgba(255, 255, 255, .3"],
body.theme-silver #content [style*="color:rgba(255, 255, 255, .3"],
body.theme-silver .modal [style*="color:rgba(255, 255, 255, .3"],
body.theme-light-purple #content [style*="color: rgba(255, 255, 255, .3"],
body.theme-light-purple .modal [style*="color: rgba(255, 255, 255, .3"],
body.theme-silver #content [style*="color: rgba(255, 255, 255, .3"],
body.theme-silver .modal [style*="color: rgba(255, 255, 255, .3"]{color:rgba(27,18,48,0.53) !important}
body.theme-light-purple #content [style*="color:rgba(255,255,255,.35"],
body.theme-light-purple .modal [style*="color:rgba(255,255,255,.35"],
body.theme-silver #content [style*="color:rgba(255,255,255,.35"],
body.theme-silver .modal [style*="color:rgba(255,255,255,.35"],
body.theme-light-purple #content [style*="color: rgba(255,255,255,.35"],
body.theme-light-purple .modal [style*="color: rgba(255,255,255,.35"],
body.theme-silver #content [style*="color: rgba(255,255,255,.35"],
body.theme-silver .modal [style*="color: rgba(255,255,255,.35"],
body.theme-light-purple #content [style*="color:rgba(255, 255, 255, .35"],
body.theme-light-purple .modal [style*="color:rgba(255, 255, 255, .35"],
body.theme-silver #content [style*="color:rgba(255, 255, 255, .35"],
body.theme-silver .modal [style*="color:rgba(255, 255, 255, .35"],
body.theme-light-purple #content [style*="color: rgba(255, 255, 255, .35"],
body.theme-light-purple .modal [style*="color: rgba(255, 255, 255, .35"],
body.theme-silver #content [style*="color: rgba(255, 255, 255, .35"],
body.theme-silver .modal [style*="color: rgba(255, 255, 255, .35"]{color:rgba(27,18,48,0.59) !important}
body.theme-light-purple #content [style*="color:rgba(255,255,255,.4"],
body.theme-light-purple .modal [style*="color:rgba(255,255,255,.4"],
body.theme-silver #content [style*="color:rgba(255,255,255,.4"],
body.theme-silver .modal [style*="color:rgba(255,255,255,.4"],
body.theme-light-purple #content [style*="color: rgba(255,255,255,.4"],
body.theme-light-purple .modal [style*="color: rgba(255,255,255,.4"],
body.theme-silver #content [style*="color: rgba(255,255,255,.4"],
body.theme-silver .modal [style*="color: rgba(255,255,255,.4"],
body.theme-light-purple #content [style*="color:rgba(255, 255, 255, .4"],
body.theme-light-purple .modal [style*="color:rgba(255, 255, 255, .4"],
body.theme-silver #content [style*="color:rgba(255, 255, 255, .4"],
body.theme-silver .modal [style*="color:rgba(255, 255, 255, .4"],
body.theme-light-purple #content [style*="color: rgba(255, 255, 255, .4"],
body.theme-light-purple .modal [style*="color: rgba(255, 255, 255, .4"],
body.theme-silver #content [style*="color: rgba(255, 255, 255, .4"],
body.theme-silver .modal [style*="color: rgba(255, 255, 255, .4"]{color:rgba(27,18,48,0.64) !important}
body.theme-light-purple #content [style*="color:rgba(255,255,255,.45"],
body.theme-light-purple .modal [style*="color:rgba(255,255,255,.45"],
body.theme-silver #content [style*="color:rgba(255,255,255,.45"],
body.theme-silver .modal [style*="color:rgba(255,255,255,.45"],
body.theme-light-purple #content [style*="color: rgba(255,255,255,.45"],
body.theme-light-purple .modal [style*="color: rgba(255,255,255,.45"],
body.theme-silver #content [style*="color: rgba(255,255,255,.45"],
body.theme-silver .modal [style*="color: rgba(255,255,255,.45"],
body.theme-light-purple #content [style*="color:rgba(255, 255, 255, .45"],
body.theme-light-purple .modal [style*="color:rgba(255, 255, 255, .45"],
body.theme-silver #content [style*="color:rgba(255, 255, 255, .45"],
body.theme-silver .modal [style*="color:rgba(255, 255, 255, .45"],
body.theme-light-purple #content [style*="color: rgba(255, 255, 255, .45"],
body.theme-light-purple .modal [style*="color: rgba(255, 255, 255, .45"],
body.theme-silver #content [style*="color: rgba(255, 255, 255, .45"],
body.theme-silver .modal [style*="color: rgba(255, 255, 255, .45"]{color:rgba(27,18,48,0.70) !important}
body.theme-light-purple #content [style*="color:rgba(255,255,255,.5"],
body.theme-light-purple .modal [style*="color:rgba(255,255,255,.5"],
body.theme-silver #content [style*="color:rgba(255,255,255,.5"],
body.theme-silver .modal [style*="color:rgba(255,255,255,.5"],
body.theme-light-purple #content [style*="color: rgba(255,255,255,.5"],
body.theme-light-purple .modal [style*="color: rgba(255,255,255,.5"],
body.theme-silver #content [style*="color: rgba(255,255,255,.5"],
body.theme-silver .modal [style*="color: rgba(255,255,255,.5"],
body.theme-light-purple #content [style*="color:rgba(255, 255, 255, .5"],
body.theme-light-purple .modal [style*="color:rgba(255, 255, 255, .5"],
body.theme-silver #content [style*="color:rgba(255, 255, 255, .5"],
body.theme-silver .modal [style*="color:rgba(255, 255, 255, .5"],
body.theme-light-purple #content [style*="color: rgba(255, 255, 255, .5"],
body.theme-light-purple .modal [style*="color: rgba(255, 255, 255, .5"],
body.theme-silver #content [style*="color: rgba(255, 255, 255, .5"],
body.theme-silver .modal [style*="color: rgba(255, 255, 255, .5"]{color:rgba(27,18,48,0.75) !important}
body.theme-light-purple #content [style*="color:rgba(255,255,255,.55"],
body.theme-light-purple .modal [style*="color:rgba(255,255,255,.55"],
body.theme-silver #content [style*="color:rgba(255,255,255,.55"],
body.theme-silver .modal [style*="color:rgba(255,255,255,.55"],
body.theme-light-purple #content [style*="color: rgba(255,255,255,.55"],
body.theme-light-purple .modal [style*="color: rgba(255,255,255,.55"],
body.theme-silver #content [style*="color: rgba(255,255,255,.55"],
body.theme-silver .modal [style*="color: rgba(255,255,255,.55"],
body.theme-light-purple #content [style*="color:rgba(255, 255, 255, .55"],
body.theme-light-purple .modal [style*="color:rgba(255, 255, 255, .55"],
body.theme-silver #content [style*="color:rgba(255, 255, 255, .55"],
body.theme-silver .modal [style*="color:rgba(255, 255, 255, .55"],
body.theme-light-purple #content [style*="color: rgba(255, 255, 255, .55"],
body.theme-light-purple .modal [style*="color: rgba(255, 255, 255, .55"],
body.theme-silver #content [style*="color: rgba(255, 255, 255, .55"],
body.theme-silver .modal [style*="color: rgba(255, 255, 255, .55"]{color:rgba(27,18,48,0.81) !important}
body.theme-light-purple #content [style*="color:rgba(255,255,255,.6"],
body.theme-light-purple .modal [style*="color:rgba(255,255,255,.6"],
body.theme-silver #content [style*="color:rgba(255,255,255,.6"],
body.theme-silver .modal [style*="color:rgba(255,255,255,.6"],
body.theme-light-purple #content [style*="color: rgba(255,255,255,.6"],
body.theme-light-purple .modal [style*="color: rgba(255,255,255,.6"],
body.theme-silver #content [style*="color: rgba(255,255,255,.6"],
body.theme-silver .modal [style*="color: rgba(255,255,255,.6"],
body.theme-light-purple #content [style*="color:rgba(255, 255, 255, .6"],
body.theme-light-purple .modal [style*="color:rgba(255, 255, 255, .6"],
body.theme-silver #content [style*="color:rgba(255, 255, 255, .6"],
body.theme-silver .modal [style*="color:rgba(255, 255, 255, .6"],
body.theme-light-purple #content [style*="color: rgba(255, 255, 255, .6"],
body.theme-light-purple .modal [style*="color: rgba(255, 255, 255, .6"],
body.theme-silver #content [style*="color: rgba(255, 255, 255, .6"],
body.theme-silver .modal [style*="color: rgba(255, 255, 255, .6"]{color:rgba(27,18,48,0.86) !important}
body.theme-light-purple #content [style*="color:rgba(255,255,255,.65"],
body.theme-light-purple .modal [style*="color:rgba(255,255,255,.65"],
body.theme-silver #content [style*="color:rgba(255,255,255,.65"],
body.theme-silver .modal [style*="color:rgba(255,255,255,.65"],
body.theme-light-purple #content [style*="color: rgba(255,255,255,.65"],
body.theme-light-purple .modal [style*="color: rgba(255,255,255,.65"],
body.theme-silver #content [style*="color: rgba(255,255,255,.65"],
body.theme-silver .modal [style*="color: rgba(255,255,255,.65"],
body.theme-light-purple #content [style*="color:rgba(255, 255, 255, .65"],
body.theme-light-purple .modal [style*="color:rgba(255, 255, 255, .65"],
body.theme-silver #content [style*="color:rgba(255, 255, 255, .65"],
body.theme-silver .modal [style*="color:rgba(255, 255, 255, .65"],
body.theme-light-purple #content [style*="color: rgba(255, 255, 255, .65"],
body.theme-light-purple .modal [style*="color: rgba(255, 255, 255, .65"],
body.theme-silver #content [style*="color: rgba(255, 255, 255, .65"],
body.theme-silver .modal [style*="color: rgba(255, 255, 255, .65"]{color:rgba(27,18,48,0.92) !important}
body.theme-light-purple #content [style*="color:rgba(255,255,255,.7"],
body.theme-light-purple .modal [style*="color:rgba(255,255,255,.7"],
body.theme-silver #content [style*="color:rgba(255,255,255,.7"],
body.theme-silver .modal [style*="color:rgba(255,255,255,.7"],
body.theme-light-purple #content [style*="color: rgba(255,255,255,.7"],
body.theme-light-purple .modal [style*="color: rgba(255,255,255,.7"],
body.theme-silver #content [style*="color: rgba(255,255,255,.7"],
body.theme-silver .modal [style*="color: rgba(255,255,255,.7"],
body.theme-light-purple #content [style*="color:rgba(255, 255, 255, .7"],
body.theme-light-purple .modal [style*="color:rgba(255, 255, 255, .7"],
body.theme-silver #content [style*="color:rgba(255, 255, 255, .7"],
body.theme-silver .modal [style*="color:rgba(255, 255, 255, .7"],
body.theme-light-purple #content [style*="color: rgba(255, 255, 255, .7"],
body.theme-light-purple .modal [style*="color: rgba(255, 255, 255, .7"],
body.theme-silver #content [style*="color: rgba(255, 255, 255, .7"],
body.theme-silver .modal [style*="color: rgba(255, 255, 255, .7"]{color:rgba(27,18,48,0.92) !important}
body.theme-light-purple #content [style*="color:rgba(255,255,255,.75"],
body.theme-light-purple .modal [style*="color:rgba(255,255,255,.75"],
body.theme-silver #content [style*="color:rgba(255,255,255,.75"],
body.theme-silver .modal [style*="color:rgba(255,255,255,.75"],
body.theme-light-purple #content [style*="color: rgba(255,255,255,.75"],
body.theme-light-purple .modal [style*="color: rgba(255,255,255,.75"],
body.theme-silver #content [style*="color: rgba(255,255,255,.75"],
body.theme-silver .modal [style*="color: rgba(255,255,255,.75"],
body.theme-light-purple #content [style*="color:rgba(255, 255, 255, .75"],
body.theme-light-purple .modal [style*="color:rgba(255, 255, 255, .75"],
body.theme-silver #content [style*="color:rgba(255, 255, 255, .75"],
body.theme-silver .modal [style*="color:rgba(255, 255, 255, .75"],
body.theme-light-purple #content [style*="color: rgba(255, 255, 255, .75"],
body.theme-light-purple .modal [style*="color: rgba(255, 255, 255, .75"],
body.theme-silver #content [style*="color: rgba(255, 255, 255, .75"],
body.theme-silver .modal [style*="color: rgba(255, 255, 255, .75"]{color:rgba(27,18,48,0.92) !important}
body.theme-light-purple #content [style*="color:rgba(255,255,255,.8"],
body.theme-light-purple .modal [style*="color:rgba(255,255,255,.8"],
body.theme-silver #content [style*="color:rgba(255,255,255,.8"],
body.theme-silver .modal [style*="color:rgba(255,255,255,.8"],
body.theme-light-purple #content [style*="color: rgba(255,255,255,.8"],
body.theme-light-purple .modal [style*="color: rgba(255,255,255,.8"],
body.theme-silver #content [style*="color: rgba(255,255,255,.8"],
body.theme-silver .modal [style*="color: rgba(255,255,255,.8"],
body.theme-light-purple #content [style*="color:rgba(255, 255, 255, .8"],
body.theme-light-purple .modal [style*="color:rgba(255, 255, 255, .8"],
body.theme-silver #content [style*="color:rgba(255, 255, 255, .8"],
body.theme-silver .modal [style*="color:rgba(255, 255, 255, .8"],
body.theme-light-purple #content [style*="color: rgba(255, 255, 255, .8"],
body.theme-light-purple .modal [style*="color: rgba(255, 255, 255, .8"],
body.theme-silver #content [style*="color: rgba(255, 255, 255, .8"],
body.theme-silver .modal [style*="color: rgba(255, 255, 255, .8"]{color:rgba(27,18,48,0.92) !important}
body.theme-light-purple #content [style*="color:rgba(255,255,255,.85"],
body.theme-light-purple .modal [style*="color:rgba(255,255,255,.85"],
body.theme-silver #content [style*="color:rgba(255,255,255,.85"],
body.theme-silver .modal [style*="color:rgba(255,255,255,.85"],
body.theme-light-purple #content [style*="color: rgba(255,255,255,.85"],
body.theme-light-purple .modal [style*="color: rgba(255,255,255,.85"],
body.theme-silver #content [style*="color: rgba(255,255,255,.85"],
body.theme-silver .modal [style*="color: rgba(255,255,255,.85"],
body.theme-light-purple #content [style*="color:rgba(255, 255, 255, .85"],
body.theme-light-purple .modal [style*="color:rgba(255, 255, 255, .85"],
body.theme-silver #content [style*="color:rgba(255, 255, 255, .85"],
body.theme-silver .modal [style*="color:rgba(255, 255, 255, .85"],
body.theme-light-purple #content [style*="color: rgba(255, 255, 255, .85"],
body.theme-light-purple .modal [style*="color: rgba(255, 255, 255, .85"],
body.theme-silver #content [style*="color: rgba(255, 255, 255, .85"],
body.theme-silver .modal [style*="color: rgba(255, 255, 255, .85"]{color:rgba(27,18,48,0.92) !important}
body.theme-light-purple #content [style*="color:rgba(255,255,255,.9"],
body.theme-light-purple .modal [style*="color:rgba(255,255,255,.9"],
body.theme-silver #content [style*="color:rgba(255,255,255,.9"],
body.theme-silver .modal [style*="color:rgba(255,255,255,.9"],
body.theme-light-purple #content [style*="color: rgba(255,255,255,.9"],
body.theme-light-purple .modal [style*="color: rgba(255,255,255,.9"],
body.theme-silver #content [style*="color: rgba(255,255,255,.9"],
body.theme-silver .modal [style*="color: rgba(255,255,255,.9"],
body.theme-light-purple #content [style*="color:rgba(255, 255, 255, .9"],
body.theme-light-purple .modal [style*="color:rgba(255, 255, 255, .9"],
body.theme-silver #content [style*="color:rgba(255, 255, 255, .9"],
body.theme-silver .modal [style*="color:rgba(255, 255, 255, .9"],
body.theme-light-purple #content [style*="color: rgba(255, 255, 255, .9"],
body.theme-light-purple .modal [style*="color: rgba(255, 255, 255, .9"],
body.theme-silver #content [style*="color: rgba(255, 255, 255, .9"],
body.theme-silver .modal [style*="color: rgba(255, 255, 255, .9"]{color:rgba(27,18,48,0.92) !important}
body.theme-light-purple #content [style*="color:#e8edf2"]:not(button):not(.primary):not(.pill):not([style*="background"]),
body.theme-light-purple #content [style*="color: #e8edf2"]:not(button):not(.primary):not(.pill):not([style*="background"]),
body.theme-light-purple #content [style*="color:#fff;"]:not(button):not(.primary):not(.pill):not([style*="background"]),
body.theme-light-purple #content [style*="color: #fff;"]:not(button):not(.primary):not(.pill):not([style*="background"]),
body.theme-silver #content [style*="color:#e8edf2"]:not(button):not(.primary):not(.pill):not([style*="background"]),
body.theme-silver #content [style*="color: #e8edf2"]:not(button):not(.primary):not(.pill):not([style*="background"]),
body.theme-silver #content [style*="color:#fff;"]:not(button):not(.primary):not(.pill):not([style*="background"]),
body.theme-silver #content [style*="color: #fff;"]:not(button):not(.primary):not(.pill):not([style*="background"]){color:#1b1230 !important}

/* ═══ Светлые темы (фиол-белая, серебро): текст, который был белым для тёмного фона ═══ */
body.theme-light-purple .posadv-shop-user-opt small,body.theme-silver .posadv-shop-user-opt small,
body.theme-light-purple .dep-detail-head button,body.theme-silver .dep-detail-head button,
body.theme-light-purple .dep-detail-line small,body.theme-silver .dep-detail-line small{color:rgba(27,18,48,0.64) !important}
body.theme-light-purple .live-stat b,body.theme-silver .live-stat b,
body.theme-light-purple .qty-control b,body.theme-silver .qty-control b,
body.theme-light-purple .dep-summary-item b,body.theme-silver .dep-summary-item b,
body.theme-light-purple .posadv-user-result b,body.theme-silver .posadv-user-result b,
body.theme-light-purple .posadv-user-info b,body.theme-silver .posadv-user-info b,
body.theme-light-purple .posadv-revenue b,body.theme-silver .posadv-revenue b,
body.theme-light-purple .posadv-cart-total b,body.theme-silver .posadv-cart-total b,
body.theme-light-purple .posadv-zreport-table td:last-child,body.theme-silver .posadv-zreport-table td:last-child,
body.theme-light-purple .posadv-zreport-total td,body.theme-silver .posadv-zreport-total td,
body.theme-light-purple .rpt-row b,body.theme-silver .rpt-row b,
body.theme-light-purple .rpt-tfoot td,body.theme-silver .rpt-tfoot td,
body.theme-light-purple .rpt-card-row b,body.theme-silver .rpt-card-row b{color:#1b1230 !important}
body.theme-light-purple .selected-account-card small,body.theme-silver .selected-account-card small,
body.theme-light-purple .receipt-preview small,body.theme-silver .receipt-preview small,
body.theme-light-purple .deposit-client-line span,body.theme-silver .deposit-client-line span,
body.theme-light-purple .client-detail-row span,body.theme-silver .client-detail-row span,
body.theme-light-purple .settings-row span,body.theme-silver .settings-row span,
body.theme-light-purple .client-stat-box span,body.theme-silver .client-stat-box span{color:rgba(27,18,48,0.84) !important}
body.theme-light-purple .posadv-zreport-table td,body.theme-silver .posadv-zreport-table td,
body.theme-light-purple .rpt-table td,body.theme-silver .rpt-table td{color:rgba(27,18,48,0.92) !important}
body.theme-light-purple .selected-account-card span,body.theme-silver .selected-account-card span,
body.theme-light-purple .receipt-preview span,body.theme-silver .receipt-preview span{color:rgba(27,18,48,0.88) !important}
body.theme-light-purple .notify-fields label,body.theme-silver .notify-fields label,
body.theme-light-purple .posadv-user-info span,body.theme-silver .posadv-user-info span{color:rgba(27,18,48,0.75) !important}
body.theme-light-purple .posadv-brand span,body.theme-silver .posadv-brand span{color:rgba(27,18,48,0.81) !important}
body.theme-light-purple .posadv-user-result span,body.theme-silver .posadv-user-result span{color:rgba(27,18,48,0.70) !important}
body.theme-light-purple .posadv-tx-login small,body.theme-silver .posadv-tx-login small,
body.theme-light-purple .rpt-row small,body.theme-silver .rpt-row small,
body.theme-light-purple .rpt-table th,body.theme-silver .rpt-table th,
body.theme-light-purple .rpt-pay-chip small,body.theme-silver .rpt-pay-chip small{color:rgba(27,18,48,0.58) !important}
body.theme-light-purple th,body.theme-silver th{color:rgba(27,18,48,.7)}
body.theme-light-purple td,body.theme-silver td{color:rgba(27,18,48,.92)}

/* светлые темы: тёмные поля, таблицы и кнопки, у которых не было светлого варианта */
body.theme-light-purple .table-wrap,body.theme-silver .table-wrap{background:rgba(255,255,255,.92) !important;border-color:rgba(76,29,149,.14) !important}
body.theme-light-purple .restock-qty-input,body.theme-silver .restock-qty-input,
body.theme-light-purple .posadv-shop-user-input,body.theme-silver .posadv-shop-user-input,
body.theme-light-purple .chip-select,body.theme-silver .chip-select,
body.theme-light-purple .day-chip-select,body.theme-silver .day-chip-select,
body.theme-light-purple .posadv-select,body.theme-silver .posadv-select,
body.theme-light-purple .dep-cancel-reason-input,body.theme-silver .dep-cancel-reason-input,
body.theme-light-purple .dep-refund-amount-input,body.theme-silver .dep-refund-amount-input{background:#fff !important;color:#1b1230 !important;border-color:rgba(76,29,149,.25) !important}
body.theme-light-purple .restock-qty-btn,body.theme-silver .restock-qty-btn,
body.theme-light-purple .posadv-pkg-cancel-btn,body.theme-silver .posadv-pkg-cancel-btn{background:#ede7ff !important;color:#1b1230 !important}
body.theme-light-purple .posadv-hist-tabs,body.theme-silver .posadv-hist-tabs,
body.theme-light-purple .reset-item,body.theme-silver .reset-item{background:#f3edff !important}
body.theme-light-purple #content th,body.theme-silver #content th{color:rgba(27,18,48,.66) !important}
body.theme-light-purple .import-format-note,body.theme-silver .import-format-note{color:rgba(27,18,48,.8) !important}

/* «Способ оплаты»: цвета только из переменных темы (в светлых темах раньше выходил тёмный блок с тёмным текстом) */
.pos-choose-box .pco-name,.pos-choose-box .pos-choose-title,.pos-choose-box .pos-choose-sum,.pos-choose-box .pos-choose-cancel{color:var(--nv-text,#e8ebf4) !important}
.pos-choose-box .pos-choose-title{opacity:.7}
.pos-choose-box .pos-choose-opt .pco-ic{color:var(--nv-accent,#7c8cff)}

/* «Пополнить всем»: список клиентов */
.dmulti-list{grid-column:1/-1;display:flex;flex-direction:column;gap:6px;max-height:230px;overflow:auto}
.dmulti-row{display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:12px;border:1px solid var(--nv-border,rgba(255,255,255,.14));background:var(--nv-surface-2,rgba(255,255,255,.05));cursor:pointer;color:var(--nv-text,#e8ebf4);font-size:14px;text-transform:none;letter-spacing:0}
.dmulti-row:hover{border-color:var(--nv-accent,#7c8cff)}
.dmulti-row input[type=checkbox]{width:18px !important;height:18px !important;min-width:18px;flex:none;margin:0;padding:0}
.dmulti-pc{font-weight:700;min-width:56px}
.dmulti-name{flex:1;font-weight:600;overflow-wrap:anywhere}

.dmulti-price{font-weight:700;opacity:.85;white-space:nowrap}
/* светлые темы: диспетчер задач, лог импорта */
body.theme-light-purple .tm-name,body.theme-silver .tm-name,body.theme-light-purple .tm-mem,body.theme-silver .tm-mem{color:rgba(27,18,48,.88) !important}
body.theme-light-purple .tm-name small,body.theme-silver .tm-name small,body.theme-light-purple .tm-title,body.theme-silver .tm-title{color:rgba(27,18,48,.55) !important}
body.theme-light-purple .gz-log .gz-error,body.theme-silver .gz-log .gz-error{color:#b91c1c !important}
body.theme-light-purple .gz-log .gz-warn,body.theme-silver .gz-log .gz-warn,body.theme-light-purple .gi-dup,body.theme-silver .gi-dup{color:#a16207 !important}

/* ── Экран входа в светлых темах: светлый фон, белая карточка, тёмный текст ── */
body.theme-light-purple .login-wrap,body.theme-silver .login-wrap{
  background:radial-gradient(1100px 560px at 50% -10%,var(--nv-glow),transparent 62%),linear-gradient(135deg,var(--nv-bg),var(--nv-bg-2))}
body.theme-light-purple .login-panel,body.theme-silver .login-panel{
  background:var(--nv-surface);border-color:var(--nv-border-strong);box-shadow:var(--nv-shadow)}
body.theme-light-purple .login-panel h1,body.theme-silver .login-panel h1,
body.theme-light-purple .login-panel p,body.theme-silver .login-panel p{color:var(--nv-muted)}
body.theme-light-purple .login-panel label,body.theme-silver .login-panel label,
body.theme-light-purple .login-panel .brand,body.theme-silver .login-panel .brand,
body.theme-light-purple .login-panel .brand *,body.theme-silver .login-panel .brand *{color:var(--nv-text)}
body.theme-light-purple .login-panel .brand small,body.theme-silver .login-panel .brand small,
body.theme-light-purple .login-panel .brand span:not(:first-child),body.theme-silver .login-panel .brand span:not(:first-child){color:var(--nv-muted)}
body.theme-light-purple .login-panel input,body.theme-silver .login-panel input{
  background:var(--nv-surface-2);color:var(--nv-text);border:1px solid var(--nv-border-strong)}
body.theme-light-purple .login-forgot-btn,body.theme-silver .login-forgot-btn{
  background:var(--nv-surface-2);color:var(--nv-text);border:1px solid var(--nv-border)}
body.theme-light-purple .login-forgot-btn:hover,body.theme-silver .login-forgot-btn:hover{color:var(--nv-accent)}
body.theme-light-purple .login-button,body.theme-silver .login-button{background:var(--nv-accent);color:#fff}
body.theme-light-purple .login-tab,body.theme-silver .login-tab{background:var(--nv-surface-2);border-color:var(--nv-border);color:var(--nv-muted)}
body.theme-light-purple .login-tab.active,body.theme-silver .login-tab.active{color:var(--nv-accent);border-color:var(--nv-accent)}

/* Крестик закрытия окна: рисуется SVG и стоит ровно по центру круга (текстовый «×» уезжал вниз и был мелким) */
#modalClose { display: grid; place-items: center; width: 38px; height: 38px; padding: 0; border-radius: 50%; font-size: 0; line-height: 0; flex: none; }
#modalClose svg { display: block; }
/* ── Дашборд → «Система» ── */
.hdot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; margin-right: 8px; background: #7b8494; vertical-align: 1px; }
.hdot.ok { background: #3ddc84; box-shadow: 0 0 8px rgba(61,220,132,.55); }
.hdot.warn { background: #f5b301; box-shadow: 0 0 8px rgba(245,179,1,.5); }
.hdot.bad { background: #ff5252; box-shadow: 0 0 10px rgba(255,82,82,.6); }
.nv-tile.sys-bad { border-color: rgba(255,82,82,.6) !important; background: color-mix(in srgb, #ff5252 8%, var(--nv-surface)) !important; }
.nv-tile.sys-warn { border-color: rgba(245,179,1,.5) !important; }
.gi-warn { font-size: 11px; color: #ff8a65; flex: none; white-space: nowrap; cursor: help; }
body.theme-light-purple .gi-warn,body.theme-silver .gi-warn{color:#c2410c !important}

/* ── Дашборд → «Советы» ── */
.adv-tips { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 12px; margin: 10px 0; }
.adv-tip { display: flex; gap: 12px; align-items: flex-start; }
.adv-tip .adv-ic { font-size: 24px; line-height: 1; }
.adv-tip.adv-good { border-color: rgba(61,220,132,.45) !important; }
.adv-tip.adv-warn { border-color: rgba(245,179,1,.5) !important; }
.adv-heat { border-collapse: separate; border-spacing: 2px; width: 100%; min-width: 640px; font-size: 10px; }
.adv-heat th { font-weight: 600; opacity: .6; text-align: center; padding: 2px; }
.adv-heat tbody th { text-align: right; padding-right: 6px; font-size: 12px; opacity: .8; }
.adv-cell { height: 26px; text-align: center; color: #fff; border-radius: 4px; }