/* ============================================================================
   VC Tools — /test sandbox · «Terminal Luxe» (рыжая фирменная тема)
   Единый дизайн-движок для всех демо-страниц песочницы. Токены взяты из
   static/vc-tokens.css (акцент #FF6B00), но файл самодостаточен и НЕ влияет на
   прод: подключается только шаблонами templates/test/*. Тёмная тема — база,
   .light — переключатель.
   ============================================================================ */

:root{
  /* fonts (самохостятся в static/fonts.css) */
  --f-dsp:'Satoshi','Plus Jakarta Sans','Inter',system-ui,sans-serif;
  --f-ui:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;
  --f-mono:'JetBrains Mono','SF Mono',ui-monospace,monospace;

  /* surfaces (dark) */
  --base:#0A0B0F; --base2:#08090C;
  --surface:#12141A; --elevated:#1A1D26; --overlay:#22262F;
  --line:rgba(255,255,255,.07); --line2:rgba(255,255,255,.13); --line3:rgba(255,255,255,.20);

  /* text */
  --ink:#EDEFF5; --muted:#9AA0B4; --faint:#7C8499;

  /* brand orange */
  --cta:#FF6B00; --cta-hi:#FF8128; --cta-strong:#E85D00; --cta-text:#FF8A2B;
  --on-cta:#0A0B0F;
  --cta-grad:linear-gradient(135deg,#FF6B00 0%,#FF8128 100%);
  --cta-06:rgba(255,107,0,.06); --cta-10:rgba(255,107,0,.10); --cta-14:rgba(255,107,0,.14);
  --cta-18:rgba(255,107,0,.18); --cta-28:rgba(255,107,0,.28); --cta-38:rgba(255,107,0,.38);

  /* secondary warm + semantic */
  --gold:#E5B45B; --gold-bg:rgba(229,180,91,.12);
  --profit:#12D18E; --profit-bg:rgba(18,209,142,.12); --profit-glow:rgba(18,209,142,.35);
  --loss:#FF4D6D; --loss-bg:rgba(255,77,109,.12);
  --info:#5DADE2; --info-bg:rgba(93,173,226,.12);
  --violet:#9A7BFF; --violet-bg:rgba(154,123,255,.14);
  --rose:#FF6B7F; --rose-bg:rgba(255,107,127,.12);

  /* radii / shadow / motion */
  --r-sm:9px; --r:13px; --r-lg:18px; --r-xl:24px;
  --sh-sm:0 2px 10px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.04);
  --sh-md:0 12px 30px -10px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.05);
  --sh-lg:0 30px 64px -30px rgba(0,0,0,.72),inset 0 1px 0 rgba(255,255,255,.06);
  --glow:0 14px 40px -14px var(--cta-38);
  --dur:.16s; --dur2:.26s; --ease:cubic-bezier(.22,1,.36,1);
}
body.light{
  --base:#ECEEF3; --base2:#E4E7EE; --surface:#FFFFFF; --elevated:#F4F5F9; --overlay:#E7EAF1;
  --line:rgba(17,24,39,.09); --line2:rgba(17,24,39,.15); --line3:rgba(17,24,39,.22);
  --ink:#111827; --muted:#4B5563; --faint:#5D6572;
  --cta-text:#E85D00; --on-cta:#FFFFFF;
  --profit:#08794F; --profit-bg:rgba(8,121,79,.12); --loss:#D2264B; --loss-bg:rgba(210,38,75,.10);
  --sh-md:0 12px 30px -12px rgba(20,30,60,.20),inset 0 1px 0 rgba(255,255,255,.6);
  --sh-lg:0 30px 64px -30px rgba(20,30,60,.28),inset 0 1px 0 rgba(255,255,255,.7);
  color-scheme:light;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0}
body{
  font-family:var(--f-ui); color:var(--ink); background:var(--base); min-height:100vh; line-height:1.5;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  background-image:
    radial-gradient(1100px 620px at 84% -10%,var(--cta-10),transparent 58%),
    radial-gradient(880px 560px at 6% 4%,rgba(229,180,91,.06),transparent 60%);
  background-attachment:fixed;
  transition:background-color var(--dur2) var(--ease),color var(--dur2) var(--ease);
}
a{color:inherit;text-decoration:none}
::selection{background:var(--cta-28);color:var(--ink)}
.wrap{max-width:1200px;margin:0 auto;padding:0 22px}
.mono{font-family:var(--f-mono)}
.up{color:var(--profit)} .down{color:var(--loss)}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:var(--f-mono);font-size:12px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--cta-text);padding:6px 13px;
  border:1px solid var(--cta-28);border-radius:99px;background:var(--cta-06)}
.kick{font-family:var(--f-mono);font-size:12px;letter-spacing:.15em;text-transform:uppercase;color:var(--cta-text)}
h1,h2,h3{font-family:var(--f-dsp);letter-spacing:-.02em;margin:0}
.grad-text{background:var(--cta-grad);-webkit-background-clip:text;background-clip:text;color:transparent}

/* ── header ─────────────────────────────────────────────── */
.lx-hdr{position:sticky;top:0;z-index:50;backdrop-filter:blur(16px);
  background:linear-gradient(180deg,color-mix(in srgb,var(--base) 88%,transparent),color-mix(in srgb,var(--base) 52%,transparent));
  border-bottom:1px solid var(--line)}
.lx-hdr-in{display:flex;align-items:center;gap:18px;height:64px}
.brand{display:flex;align-items:center;gap:11px;font-family:var(--f-dsp);font-weight:800}
.brand .mk{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:var(--on-cta);
  font-weight:900;background:var(--cta-grad);box-shadow:0 0 0 1px rgba(255,255,255,.08),0 8px 22px -8px var(--cta-38)}
.brand b{font-size:16px;letter-spacing:.01em}
.lx-nav{display:flex;gap:2px;margin-left:6px}
.lx-nav a{padding:9px 13px;border-radius:10px;color:var(--muted);font-size:14px;font-weight:600;transition:var(--dur)}
.lx-nav a:hover,.lx-nav a.on{color:var(--ink);background:var(--cta-10)}
.spacer{flex:1}

/* market state pill */
.state{display:inline-flex;align-items:center;gap:7px;font-family:var(--f-mono);font-size:12.5px;color:var(--muted);
  padding:6px 12px;border:1px solid var(--line);border-radius:99px;background:var(--surface)}
.dot{width:8px;height:8px;border-radius:50%;background:var(--profit);box-shadow:0 0 0 3px var(--profit-bg);animation:pulse 2.4s infinite}
@keyframes pulse{50%{box-shadow:0 0 0 7px transparent}}

/* profile pill (authorized state) */
.profile{display:flex;align-items:center;gap:10px;padding:5px 14px 5px 6px;border-radius:99px;
  border:1px solid var(--line2);background:linear-gradient(180deg,var(--elevated),var(--surface));cursor:pointer;transition:var(--dur)}
.profile:hover{box-shadow:0 0 0 1px var(--cta),0 10px 26px -14px var(--cta-38)}
.ava{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,var(--gold),var(--cta));
  display:grid;place-items:center;font-weight:800;font-size:13px;color:var(--on-cta)}
.profile .nm{font-size:13.5px;font-weight:700;line-height:1.15;color:#fff}
body.light .profile .nm{color:var(--ink)}
.profile .tar{font-size:11px;color:var(--cta-text);font-family:var(--f-mono)}

/* ── buttons ────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:12px 19px;border-radius:var(--r);
  font-weight:700;font-size:14.5px;font-family:var(--f-ui);border:1px solid var(--line2);background:var(--surface);
  color:var(--ink);cursor:pointer;transition:var(--dur) var(--ease);white-space:nowrap}
.btn:hover{transform:translateY(-1px);border-color:var(--line3)}
.btn:active{transform:translateY(0)}
.btn.primary{border:0;color:var(--on-cta);background:var(--cta-grad);box-shadow:var(--glow)}
.btn.primary:hover{box-shadow:0 18px 46px -14px var(--cta-38)}
.btn.ghost{background:transparent}
.btn.sm{padding:8px 13px;font-size:13px;border-radius:var(--r-sm)}
.btn.lg{padding:15px 26px;font-size:16px}
.btn.gold{border:0;color:#231803;background:linear-gradient(135deg,var(--gold),#f3cf88)}
.icon-btn{width:38px;height:38px;border-radius:11px;border:1px solid var(--line);background:var(--surface);
  color:var(--muted);display:grid;place-items:center;cursor:pointer;transition:var(--dur);font-size:15px}
.icon-btn:hover{color:var(--ink);border-color:var(--line2)}

/* ── cards / panels ─────────────────────────────────────── */
.card{border:1px solid var(--line);border-radius:var(--r-lg);background:linear-gradient(180deg,var(--elevated),var(--surface));
  box-shadow:var(--sh-md)}
.panel{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--sh-md);overflow:hidden}
.panel-h{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line)}
.panel-h .ttl{font-size:13.5px;font-weight:700}
.panel-h .ttl span{color:var(--faint);font-weight:500}

/* ── chips / badges / tags ──────────────────────────────── */
.chip{display:inline-flex;align-items:center;gap:9px;padding:9px 14px;border-radius:11px;border:1px solid var(--line);
  background:var(--surface);font-size:13.5px;font-weight:600;cursor:pointer;transition:var(--dur);user-select:none}
.chip:hover{border-color:var(--line2);transform:translateY(-1px)}
.chip .cc{width:9px;height:9px;border-radius:3px}
.chip .n{font-family:var(--f-mono);font-size:12px;color:var(--faint)}
.chip.on{border-color:var(--cta);background:var(--cta-10);box-shadow:inset 0 0 0 1px var(--cta-28)}
.badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--f-mono);font-size:10.5px;text-transform:uppercase;
  letter-spacing:.04em;padding:3px 8px;border-radius:6px;font-weight:600}
.tag{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:5px 11px;border-radius:99px;
  border:1px solid var(--line);background:var(--surface);color:var(--muted)}
/* item-type accents */
.t-skin{color:var(--cta-text)}      .b-skin{background:var(--cta-14);color:var(--cta-text)}
.t-case{color:var(--gold)}          .b-case{background:var(--gold-bg);color:var(--gold)}
.t-sticker{color:var(--rose)}       .b-sticker{background:var(--rose-bg);color:var(--rose)}
.t-charm{color:var(--profit)}       .b-charm{background:var(--profit-bg);color:var(--profit)}
.t-musickit{color:var(--violet)}    .b-musickit{background:var(--violet-bg);color:var(--violet)}
.t-souvenir{color:var(--info)}      .b-souvenir{background:var(--info-bg);color:var(--info)}
.t-pin{color:#FFB27A}               .b-pin{background:rgba(255,178,122,.14);color:#FFB27A}

/* ── inputs ─────────────────────────────────────────────── */
.field{display:flex;flex-direction:column;gap:7px}
.field label{font-size:12.5px;font-weight:600;color:var(--muted)}
.inp{width:100%;padding:12px 14px;border-radius:var(--r);border:1px solid var(--line2);background:var(--base);
  color:var(--ink);font-size:14.5px;font-family:var(--f-ui);transition:var(--dur);outline:none}
.inp::placeholder{color:var(--faint)}
.inp:focus{border-color:var(--cta);box-shadow:0 0 0 3px var(--cta-14)}
.inp-wrap{position:relative}
.inp-wrap .ic{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--faint)}
.inp-wrap .ic-slot{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--faint);display:grid;place-items:center;pointer-events:none}
.inp-wrap .inp{padding-left:40px}

/* segmented / toggle */
.seg{display:inline-flex;padding:4px;border:1px solid var(--line);border-radius:12px;background:var(--base);gap:2px}
.seg input{display:none}
.seg label{padding:8px 15px;border-radius:9px;font-size:13px;font-weight:700;color:var(--muted);cursor:pointer;
  transition:var(--dur);font-family:var(--f-mono)}
.seg label:hover{color:var(--ink)}
.seg input:checked+label{color:var(--on-cta);background:var(--cta-grad)}
.switch{position:relative;display:inline-block;width:46px;height:26px}
.switch input{display:none}
.switch .sl{position:absolute;inset:0;border-radius:99px;background:var(--overlay);border:1px solid var(--line2);cursor:pointer;transition:var(--dur)}
.switch .sl::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--ink);transition:var(--dur) var(--ease)}
.switch input:checked+.sl{background:var(--cta-grad);border-color:transparent}
.switch input:checked+.sl::after{transform:translateX(20px);background:var(--on-cta)}

/* tabs (radio-driven, pure CSS) */
.tabs{border-bottom:1px solid var(--line);display:flex;gap:2px}
.tabs .tab{padding:11px 16px;font-size:14px;font-weight:700;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;transition:var(--dur)}
.tabs .tab:hover{color:var(--ink)}

/* tooltip */
.tip{position:relative;cursor:help;border-bottom:1px dashed var(--line3)}
.tip::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%) translateY(4px);
  background:var(--overlay);color:var(--ink);font-size:12px;font-weight:500;padding:7px 10px;border-radius:8px;white-space:nowrap;
  border:1px solid var(--line2);box-shadow:var(--sh-md);opacity:0;pointer-events:none;transition:var(--dur)}
.tip:hover::after{opacity:1;transform:translateX(-50%) translateY(0)}

/* ── market table ───────────────────────────────────────── */
.tbl-scroll{overflow-x:auto}
table.lx{width:100%;border-collapse:collapse;font-size:14px;min-width:720px}
table.lx thead th{font-family:var(--f-ui);font-size:12px;letter-spacing:0;color:var(--faint);
  font-weight:600;text-align:right;padding:11px 16px;border-bottom:1px solid var(--line);background:transparent}
table.lx thead th:first-child,table.lx tbody td:first-child{text-align:left}
table.lx tbody td{padding:12px 16px;text-align:right;border-bottom:1px solid var(--line);vertical-align:middle}
table.lx tbody tr{transition:var(--dur)}
table.lx tbody tr:hover{background:color-mix(in srgb,var(--elevated) 70%,transparent)}
table.lx tbody tr:last-child td{border-bottom:0}
.it{display:flex;align-items:center;gap:12px}
.it .nm{font-weight:600}
.thumb{width:42px;height:31px;border-radius:8px;flex:none;border:1px solid var(--line2);position:relative;overflow:hidden;
  background:linear-gradient(135deg,#252a37,#141821)}
.thumb::after{content:"";position:absolute;inset:0;background:radial-gradient(22px 15px at 68% 32%,var(--gl,var(--cta-38)),transparent 70%)}
.spread{display:inline-block;min-width:52px;padding:3px 9px;border-radius:7px;font-family:var(--f-mono);font-size:12.5px;
  background:var(--profit-bg);color:var(--profit)}
.spread.mid{background:var(--gold-bg);color:var(--gold)}
.spread.hi{background:var(--loss-bg);color:var(--loss)}
.vol{display:inline-flex;gap:2px;align-items:flex-end;height:22px}
.vol i{width:4px;border-radius:2px;background:linear-gradient(180deg,var(--cta-hi),var(--cta-strong));opacity:.9}
.spark{width:78px;height:26px;vertical-align:middle}

/* ── ticker ─────────────────────────────────────────────── */
.ticker{border-bottom:1px solid var(--line);background:var(--base2);overflow:hidden;white-space:nowrap}
.ticker .run{display:inline-flex;gap:30px;padding:9px 0;animation:tick 36s linear infinite;font-family:var(--f-mono);font-size:12.5px}
.ticker:hover .run{animation-play-state:paused}
@keyframes tick{to{transform:translateX(-50%)}}
.tk{display:inline-flex;align-items:center;gap:8px;color:var(--muted)}
.tk b{color:var(--ink);font-weight:600}

/* ── sections / grids ───────────────────────────────────── */
section{padding:38px 0}
.sec-h{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:22px;flex-wrap:wrap}
.sec-h h2{font-size:clamp(22px,3vw,31px);font-weight:800}
.sec-h p{color:var(--muted);margin:7px 0 0;font-size:14.5px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}

/* product card */
.pcard{position:relative;border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;overflow:hidden;
  background:linear-gradient(180deg,var(--elevated),var(--surface));transition:var(--dur2) var(--ease)}
.pcard:hover{transform:translateY(-3px);border-color:var(--line2);box-shadow:var(--sh-lg)}
.pcard .pi{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;font-size:21px;margin-bottom:14px;
  background:var(--cta-10);border:1px solid var(--cta-28)}
.pcard h3{font-size:18px;margin:0 0 6px;font-weight:800}
.pcard p{color:var(--muted);font-size:13.5px;margin:0 0 16px}
.pcard .go{display:inline-flex;align-items:center;gap:7px;font-weight:700;font-size:14px;color:var(--cta-text)}
.pcard .stat{position:absolute;top:20px;right:18px;font-family:var(--f-mono);font-size:11px;color:var(--profit);display:flex;align-items:center;gap:6px}
.pcard.soon{opacity:.72}.pcard.soon .stat{color:var(--faint)}
.pill{font-family:var(--f-mono);font-size:10.5px;padding:3px 9px;border-radius:99px;border:1px solid var(--line2);color:var(--muted)}

/* ── footer / switcher ──────────────────────────────────── */
.lx-foot{border-top:1px solid var(--line);margin-top:28px;padding:26px 0;color:var(--faint);font-size:13px}
.lx-foot .in{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.lx-foot a{color:var(--muted)}
.vswitch{position:fixed;right:16px;bottom:16px;z-index:60;display:flex;gap:6px;padding:7px;border-radius:14px;
  border:1px solid var(--line2);background:color-mix(in srgb,var(--base) 90%,transparent);backdrop-filter:blur(10px);
  font-family:var(--f-mono);font-size:12px;box-shadow:var(--sh-md)}
.vswitch a{min-width:30px;height:30px;padding:0 8px;border-radius:9px;display:grid;place-items:center;color:var(--muted);border:1px solid transparent}
.vswitch a.cur{color:var(--on-cta);background:var(--cta-grad);font-weight:800}
.vswitch a:hover:not(.cur){color:var(--ink);border-color:var(--line2)}
.vswitch .lbl{align-self:center;padding:0 4px;color:var(--faint)}

/* toast (JS-driven demo) */
.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(20px);z-index:80;
  padding:13px 18px;border-radius:var(--r);background:var(--overlay);border:1px solid var(--line2);box-shadow:var(--sh-lg);
  font-weight:600;font-size:14px;opacity:0;pointer-events:none;transition:var(--dur2) var(--ease);display:flex;align-items:center;gap:10px}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast .td{width:8px;height:8px;border-radius:50%;background:var(--profit)}

/* ============================================================================
   ВИТРИНА (инвентарь-стайл) — плитки по категориям + drawer-карточка предмета.
   ДНК взята из прод-инвентаря (.vc-inv-tile): квадрат, rarity-полоса снизу,
   имя в 2 строки, дельта. Новинка — честные цвета редкости CS2.
   ============================================================================ */
/* rarity (акцент редкости CS2) */
.r-white{--rarity:#b0b6c8} .r-blue{--rarity:#4b69ff} .r-purple{--rarity:#8847ff}
.r-pink{--rarity:#d32ee6} .r-red{--rarity:#eb4b4b} .r-gold{--rarity:#ffae39}
/* компаунд-переопределение: .sc-tile{--rarity} задаётся ниже по файлу и с равной
   специфичностью перебивал цвет редкости → фиксируем через (0,2,0) */
.sc-tile.r-white{--rarity:#b0b6c8}.sc-tile.r-blue{--rarity:#4b69ff}.sc-tile.r-purple{--rarity:#8847ff}
.sc-tile.r-pink{--rarity:#d32ee6}.sc-tile.r-red{--rarity:#eb4b4b}.sc-tile.r-gold{--rarity:#ffae39}

/* панель фильтров витрины */
.sc-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:6px 0 20px}
.sc-bar .grow{flex:1;min-width:210px}
.sc-count{font-family:var(--f-mono);font-size:12.5px;color:var(--faint)}

/* заголовок категории */
.sc-cat{margin:26px 0 14px;display:flex;align-items:center;gap:13px}
.sc-cat .ci{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:19px;flex:none;
  border:1px solid var(--line2)}
.sc-cat h2{font-size:18px;font-weight:800;margin:0;display:flex;align-items:center;gap:10px}
.sc-cat .cn{font-family:var(--f-mono);font-size:12px;color:var(--faint);font-weight:500}
.sc-cat .more{margin-left:auto;font-size:13px;font-weight:700;color:var(--cta-text);cursor:pointer}

/* сетка плиток — как в инвентаре: auto-fill, квадратные */
.sc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:13px}
.sc-grid.wide{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}

.sc-tile{--rarity:#3a3a4a;position:relative;display:flex;flex-direction:column;text-align:left;cursor:pointer;
  border:1px solid var(--line);border-radius:var(--r);background:var(--surface);overflow:hidden;
  transition:var(--dur2) var(--ease)}
.sc-tile:hover{transform:translateY(-4px);border-color:var(--rarity);box-shadow:0 18px 40px -20px color-mix(in srgb,var(--rarity) 60%,transparent),var(--sh-md)}
.sc-ph{position:relative;aspect-ratio:4/3;background:radial-gradient(70% 60% at 62% 34%,color-mix(in srgb,var(--rarity) 24%,transparent),transparent 72%),linear-gradient(135deg,#20242e,#12141a)}
.sc-ph::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--rarity);opacity:.92}
.sc-badge{position:absolute;top:8px;left:8px}
.sc-fav{position:absolute;top:7px;right:8px;color:var(--faint);font-size:15px;cursor:pointer;transition:var(--dur);line-height:1}
.sc-fav:hover,.sc-fav.on{color:var(--gold)}
.sc-lock{position:absolute;bottom:9px;left:8px;display:inline-flex;align-items:center;gap:4px;font-family:var(--f-mono);
  font-size:10px;color:var(--muted);background:color-mix(in srgb,var(--base) 78%,transparent);padding:3px 7px;border-radius:6px;border:1px solid var(--line)}
.sc-dd{position:absolute;bottom:9px;right:8px;font-family:var(--f-mono);font-size:11.5px;font-weight:700;
  padding:2px 7px;border-radius:6px;background:color-mix(in srgb,var(--base) 76%,transparent)}
.sc-body{padding:10px 11px 12px;display:flex;flex-direction:column;gap:7px;flex:1}
.sc-nm{font-size:12.5px;line-height:1.32;font-weight:600;color:var(--ink);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:33px}
.sc-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-top:auto}
.sc-pr{font-family:var(--f-mono);font-weight:800;font-size:15.5px}
.sc-sub{display:flex;align-items:center;justify-content:space-between;gap:8px;font-family:var(--f-mono);font-size:11px;color:var(--faint)}

/* ── order book + советник (шарятся витриной и таблицей) ─────── */
.ob-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:6px 14px;font-family:var(--f-mono);font-size:12.5px;position:relative}
.ob-row .bar{position:absolute;top:2px;bottom:2px;right:0;border-radius:5px;opacity:.16}
.ob-row.ask .bar{background:var(--loss)} .ob-row.bid .bar{background:var(--profit)}
.ob-row span{position:relative;z-index:1}
.ob-mid{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--base2)}
.ob-mid .p{font-family:var(--f-mono);font-weight:800;font-size:17px}
.mk-ic{width:22px;height:22px;border-radius:6px;display:grid;place-items:center;font-size:11px;font-family:var(--f-mono);background:var(--cta-10);color:var(--cta-text);flex:none}
.adv .lead{display:flex;align-items:center;gap:10px;font-weight:700;margin-bottom:10px}
.adv .pt{display:flex;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);font-size:13.5px;color:var(--muted)}
.adv .pt:last-child{border-bottom:0}
.adv .pt b{color:var(--ink)}

/* ── drawer-карточка предмета (выезжает справа, :target) ────── */
.sc-drawer{position:fixed;inset:0;z-index:95;pointer-events:none;visibility:hidden}
.sc-drawer:target{pointer-events:auto;visibility:visible}
.sc-drawer .scrim{position:absolute;inset:0;background:rgba(4,5,8,.62);opacity:0;transition:var(--dur2)}
.sc-drawer:target .scrim{opacity:1}
.sc-drawer .sheet{position:absolute;top:0;right:0;bottom:0;width:min(430px,94vw);overflow-y:auto;
  background:linear-gradient(180deg,var(--elevated),var(--surface));border-left:1px solid var(--line2);
  box-shadow:-30px 0 70px -30px rgba(0,0,0,.7);transform:translateX(100%);transition:transform var(--dur2) var(--ease);padding:20px}
.sc-drawer:target .sheet{transform:translateX(0)}
.sc-drawer .dh{display:flex;align-items:flex-start;gap:14px;margin-bottom:16px}
.sc-drawer .dh .di{width:88px;height:66px;border-radius:12px;flex:none;position:relative;overflow:hidden;--rarity:#8847ff;
  background:radial-gradient(70% 60% at 62% 34%,color-mix(in srgb,var(--rarity) 30%,transparent),transparent 72%),linear-gradient(135deg,#20242e,#12141a)}
.sc-drawer .dh .di::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--rarity)}
.sc-drawer .dh h3{font-size:16px;margin:0 0 6px}
.sc-drawer .close{position:absolute;top:16px;right:16px}
.sc-seg-full{display:flex;background:var(--base);border-radius:11px;padding:4px;margin:2px 0 14px}
.sc-seg-full a{flex:1;text-align:center;padding:8px;border-radius:8px;font-size:12.5px;font-weight:700;color:var(--muted);font-family:var(--f-mono)}
.sc-seg-full a.on{color:var(--on-cta);background:var(--cta-grad)}
.plat{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.plat:last-child{border-bottom:0}
.plat .pv{font-family:var(--f-mono);font-weight:700}
.plat .best{color:var(--profit)}

/* ── SVG-иконки (вместо эмодзи) ──────────────────────────── */
.ic{width:1.15em;height:1.15em;flex:none;vertical-align:-.16em;stroke-width:2}
.ic-lg{width:1.5em;height:1.5em}
.brand .mk img,.ava img,.big img{width:100%;height:100%;object-fit:cover;display:block}
.iwrap{display:inline-grid;place-items:center}

/* ── OTP / код из окошек (авто-переход) ──────────────────── */
.otp{display:flex;gap:10px;justify-content:center}
.otp input{width:clamp(42px,13vw,54px);height:62px;text-align:center;font-family:var(--f-mono);font-size:26px;font-weight:800;
  color:var(--ink);background:var(--base);border:1.5px solid var(--line2);border-radius:14px;outline:none;transition:var(--dur) var(--ease);
  -moz-appearance:textfield}
.otp input::-webkit-outer-spin-button,.otp input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.otp input:focus{border-color:var(--cta);box-shadow:0 0 0 3px var(--cta-14);transform:translateY(-2px)}
.otp input.filled{border-color:var(--cta);background:var(--cta-06);color:var(--cta-text)}
.otp.err input{border-color:var(--loss);animation:otpShake .3s}
@keyframes otpShake{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
.otp-meta{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:16px;color:var(--faint);font-size:13px;font-family:var(--f-mono)}
.otp-meta a{color:var(--cta-text);font-weight:700}

/* реальная картинка предмета в плитке/строке */
.sc-ph img,.thumb img,.gcard .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:6px;
  filter:drop-shadow(0 6px 10px rgba(0,0,0,.5))}
.thumb img{padding:2px}

/* ── лендинг: статы, фичи, площадки, faq ─────────────────── */
.lstats{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:30px}
.lstat{padding:18px 26px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);text-align:center;min-width:150px}
.lstat .n{font-family:var(--f-mono);font-weight:800;font-size:clamp(26px,3.4vw,34px);line-height:1;background:var(--cta-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.lstat .l{color:var(--faint);font-size:12.5px;margin-top:8px}
.fcard{position:relative;padding:22px;border:1px solid var(--line);border-radius:var(--r-lg);background:linear-gradient(180deg,var(--elevated),var(--surface));transition:var(--dur2) var(--ease)}
.fcard:hover{transform:translateY(-3px);border-color:var(--line2);box-shadow:var(--sh-md)}
.fcard .fi{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;color:var(--cta-text);
  background:var(--cta-10);border:1px solid var(--cta-28);margin-bottom:14px}
.fcard .k{position:absolute;top:20px;right:20px;font-family:var(--f-mono);font-size:12px;color:var(--faint)}
.fcard h3{font-size:16.5px;margin:0 0 7px;font-weight:800}
.fcard p{color:var(--muted);font-size:13.5px;margin:0}

/* лента площадок (реальные логотипы /static/plat/*.png) */
.pmarq{overflow:hidden;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);padding:18px 0;position:relative;-webkit-mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.pmarq .track{display:inline-flex;gap:16px;align-items:center;padding:0 8px;animation:marq 34s linear infinite;white-space:nowrap}
.pmarq:hover .track{animation-play-state:paused}
@keyframes marq{to{transform:translateX(-50%)}}
.pchip{display:inline-flex;align-items:center;gap:10px;padding:11px 18px;border:1px solid var(--line);border-radius:12px;
  background:var(--elevated);flex:none}
.pchip img{width:26px;height:26px;object-fit:contain;border-radius:6px}
.pchip b{font-size:14px;font-weight:700}
.pchip.soon{color:var(--faint);font-family:var(--f-mono)}

/* faq (details) */
.faq{max-width:820px;margin:0 auto}
.faq details{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);padding:0 18px;margin-bottom:10px;transition:var(--dur)}
.faq details[open]{border-color:var(--line2);background:linear-gradient(180deg,var(--elevated),var(--surface))}
.faq summary{padding:16px 0;font-weight:700;font-size:15px;cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary .ic{color:var(--cta-text);transition:var(--dur)}
.faq details[open] summary .ic{transform:rotate(45deg)}
.faq .a{padding:0 0 18px;color:var(--muted);font-size:14px;line-height:1.6}

/* большой CTA-блок */
.bigcta{text-align:center;padding:56px 26px;border:1px solid var(--cta-28);border-radius:var(--r-xl);position:relative;overflow:hidden;
  background:radial-gradient(120% 140% at 50% -20%,var(--cta-14),transparent 60%),linear-gradient(180deg,var(--elevated),var(--surface))}
.bigcta h2{font-size:clamp(26px,4vw,40px);margin:0 0 12px}
.bigcta p{color:var(--muted);max-width:52ch;margin:0 auto 26px}

/* ── динамическое появление при скролле (нативный scroll-timeline) ──
   Само-раскрывается по позиции скролла. Если браузер не поддерживает
   view()-таймлайны или включён reduced-motion — контент просто виден,
   НИЧЕГО не прячется JS-ом. */
@keyframes revealIn{from{opacity:0;transform:translateY(30px) scale(.985)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:no-preference){
  @supports (animation-timeline: view()){
    .reveal{animation:revealIn both;animation-timeline:view();animation-range:entry 2% entry 46%;will-change:opacity,transform}
  }
}

@media(max-width:900px){.grid-3,.grid-4{grid-template-columns:1fr 1fr}.lx-nav{display:none}}
@media(max-width:620px){.grid-3,.grid-4{grid-template-columns:1fr}.sc-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.otp input{height:54px;font-size:22px}}

/* ============================================================================
   ЕДИНАЯ ШАПКА/ПОДВАЛ/ФОН  (24.08.2026) — общие для всех страниц зеркала.
   ============================================================================ */
/* «дорогой» живой фон вместо плоского чёрного — мягкие переливающиеся ауры */
body::before{content:"";position:fixed;inset:-10% -5%;z-index:-1;pointer-events:none;
  background:
    radial-gradient(620px 460px at 12% 6%,var(--cta-10),transparent 60%),
    radial-gradient(700px 520px at 88% 16%,rgba(229,180,91,.07),transparent 62%),
    radial-gradient(620px 600px at 80% 94%,rgba(18,209,142,.05),transparent 60%),
    radial-gradient(560px 520px at 20% 96%,rgba(154,123,255,.06),transparent 62%);
  animation:lxAurora 26s ease-in-out infinite alternate}
body.light::before{background:
    radial-gradient(620px 460px at 12% 6%,rgba(255,107,0,.08),transparent 60%),
    radial-gradient(700px 520px at 88% 16%,rgba(229,180,91,.10),transparent 62%),
    radial-gradient(620px 600px at 80% 94%,rgba(18,209,142,.06),transparent 60%),
    radial-gradient(560px 520px at 20% 96%,rgba(154,123,255,.07),transparent 62%)}
@keyframes lxAurora{0%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(0,-1.6%,0) scale(1.05)}100%{transform:translate3d(0,1.1%,0) scale(1.02)}}
@media(prefers-reduced-motion:reduce){body::before{animation:none}}

/* бренд: прозрачный знак без чёрной подложки + крупнее надпись */
.brand .mk{width:42px;height:42px;border-radius:0;background:none;box-shadow:none;overflow:visible;display:grid;place-items:center}
.brand .mk img{width:42px;height:42px;object-fit:contain;display:block;filter:drop-shadow(0 3px 11px rgba(255,107,0,.45))}
.brand b{font-size:20px;letter-spacing:.005em}

/* язык-кнопка + чеврон */
.lang-btn{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 11px;border-radius:11px;border:1px solid var(--line);
  background:var(--surface);color:var(--muted);font-family:var(--f-mono);font-size:13px;font-weight:700;cursor:pointer;transition:var(--dur)}
.lang-btn:hover{color:var(--ink);border-color:var(--line2)}
.fl{width:21px;height:14px;border-radius:2.5px;flex:none;display:inline-block;box-shadow:0 0 0 .5px rgba(0,0,0,.25)}
.lang-btn .fl{width:20px;height:13.5px}
.chev{transition:transform var(--dur2) var(--ease)}
.hwrap.open .chev{transform:rotate(180deg)}

/* выпадашки шапки (язык / профиль) */
.hwrap{position:relative}
.hpop{position:absolute;top:calc(100% + 9px);right:0;min-width:212px;z-index:70;background:var(--surface);
  border:1px solid var(--line2);border-radius:15px;box-shadow:var(--sh-lg);padding:7px;
  opacity:0;visibility:hidden;transform:translateY(-7px) scale(.98);transform-origin:top right;
  transition:opacity var(--dur2) var(--ease),transform var(--dur2) var(--ease),visibility 0s linear var(--dur2)}
.hwrap.open .hpop{opacity:1;visibility:visible;transform:none;transition:opacity var(--dur2) var(--ease),transform var(--dur2) var(--ease),visibility 0s}
.hpop a,.hpop button{display:flex;align-items:center;gap:11px;width:100%;padding:10px 11px;border-radius:10px;
  color:var(--ink);font-size:14px;font-weight:600;background:none;border:0;cursor:pointer;text-align:left;font-family:var(--f-ui)}
.hpop a .ic,.hpop button .ic{color:var(--faint)}
.hpop a:hover,.hpop button:hover{background:var(--cta-10);color:var(--cta-text)}
.hpop a:hover .ic,.hpop button:hover .ic{color:var(--cta-text)}
.hpop a.danger:hover,.hpop button.danger:hover{background:var(--loss-bg);color:var(--loss)}
.hpop a.danger:hover .ic{color:var(--loss)}
.hpop .fl{width:22px;height:15px}
.hpop .sep{height:1px;background:var(--line);margin:6px 3px}
.hpop .muted{color:var(--faint);font-size:11px;font-family:var(--f-mono);padding:6px 11px 4px;text-transform:uppercase;letter-spacing:.08em}
.ppop-head{display:flex;align-items:center;gap:11px;padding:6px 8px 4px}
.ppop-head .ava{width:38px;height:38px;font-size:15px}
.ppop-head b{display:block;font-size:14px}
.ppop-head .tar{font-size:11px;color:var(--cta-text);font-family:var(--f-mono)}
.profile .chev{color:var(--faint)}

/* мега-меню слева: раскрывается по наведению (без клика), повторяет подвал */
.mm{position:relative;display:flex;align-items:center;align-self:stretch;margin-left:2px}
.mm-tr{display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 12px;border-radius:11px;border:0;
  background:none;color:var(--muted);font-family:var(--f-ui);font-size:14px;font-weight:600;cursor:pointer;transition:var(--dur)}
.mm:hover .mm-tr{color:var(--ink);background:var(--cta-10)}
.mm-tr .chev{transition:transform var(--dur2) var(--ease)}
.mm:hover .mm-tr .chev{transform:rotate(180deg)}
.mega{position:fixed;top:64px;left:0;right:0;z-index:55;background:linear-gradient(180deg,var(--surface),var(--base));
  border-bottom:1px solid var(--line2);box-shadow:var(--sh-lg);transform:translateY(-14px);opacity:0;visibility:hidden;
  transition:opacity var(--dur2) var(--ease),transform var(--dur2) var(--ease),visibility 0s linear var(--dur2)}
.mm:hover .mega{transform:none;opacity:1;visibility:visible;transition:opacity var(--dur2) var(--ease),transform var(--dur2) var(--ease),visibility 0s}
/* колонки мега-меню начинаются под триггером «Разделы» (item: Продукты ↕ Разделы) */
.mega-in{max-width:1210px;margin:0;padding:28px 24px 34px 190px;display:grid;grid-template-columns:repeat(5,1fr);gap:24px}

/* подвал */
.lx-foot{border-top:1px solid var(--line);margin-top:44px;padding:42px 0 26px;background:linear-gradient(180deg,transparent,var(--base2));color:var(--muted)}
.foot-top{display:grid;grid-template-columns:1.5fr 3.5fr;gap:40px;align-items:start}
.foot-brand p{color:var(--muted);font-size:13.5px;line-height:1.62;margin:14px 0 16px;max-width:42ch}
.foot-soc{display:flex;gap:10px}
.foot-cols{display:grid;grid-template-columns:repeat(5,1fr);gap:18px}
.nav-col h4{font-size:12px;font-family:var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin:0 0 12px}
.nav-col a{display:block;color:var(--muted);font-size:13.5px;padding:5px 0;transition:var(--dur)}
.nav-col a:hover{color:var(--cta-text)}
.foot-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:32px;padding-top:20px;border-top:1px solid var(--line);color:var(--faint);font-size:12.5px}
.foot-bar-links{display:flex;gap:18px}.foot-bar-links a{color:var(--muted)}
.foot-bar-links a:hover{color:var(--cta-text)}
/* Единый подвал (_lx_footer.html) — общие стили для всех luxe-страниц,
   чтобы подвал совпадал 1:1 и там, где нет своего инлайн-блока (профиль). */
.lfoot{margin-top:28px;border-top:1px solid var(--line);padding-top:24px;text-align:left}
.lfoot .foot-top{display:grid;grid-template-columns:1.5fr 3.5fr;gap:34px;align-items:start}
.lfoot .foot-brand p{color:var(--muted);font-size:13px;line-height:1.6;margin:12px 0 14px;max-width:40ch}
.lfoot .foot-cols{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.lfoot .foot-bar{margin-top:22px;padding-top:16px}
@media(max-width:900px){.lfoot .foot-top{grid-template-columns:1fr}.lfoot .foot-cols{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.lfoot .foot-cols{grid-template-columns:repeat(2,1fr)}}

@media(max-width:900px){
  .mega-in{grid-template-columns:repeat(3,1fr);padding-left:24px}
  .foot-top{grid-template-columns:1fr;gap:28px}
  .foot-cols{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:560px){
  .mega-in{grid-template-columns:repeat(2,1fr)}
  .foot-cols{grid-template-columns:repeat(2,1fr)}
  .lang-btn #langLbl{display:none}
  .profile .nm{display:none}
  /* шапка на узких экранах — ужимаем, чтобы всё влезло без гориз. прокрутки */
  .lx-hdr .lx-hdr-in{padding:0 10px !important;gap:7px !important}
  .brand b{font-size:16px}
  .brand .mk,.brand .mk img{width:32px !important;height:32px !important}
  .lang-btn{padding:0 8px}
  .lang-btn .chev,.profile .chev{display:none}
  .profile{padding:4px 8px 4px 5px}
}

/* настройки продукта: 2 колонки, на телефоне — одна */
.ps-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 26px}
@media(max-width:560px){.ps-grid{grid-template-columns:1fr}}
