/* ==========================================================================
   Tiger.com trainer · дизайн 2026: плоские поверхности, акценты tiger.com,
   окна терминала в духе современной тёмной темы терминала tiger.com
   ========================================================================== */
:root{
  --bg:#050408; --surface:#110e1b; --surface2:#171327; --surface3:#1d1b26; --panel:rgba(125,104,198,.1); --line:rgba(255,255,255,.08); --line2:rgba(255,255,255,.13);
  --text:#f2f1f7; --muted:#9b97ad; --dim:#6b6880; --grad:linear-gradient(135deg,#e571ff 0%,#ff8937 100%); --grad2:linear-gradient(38deg,#fcc4ed 0%,#fea471 48%,#ff627e 100%);
  --orange:#ff6a1a; --orange2:#ff8747; --orange-soft:rgba(255,106,26,.14); --yellow:#f3bb2e; --pink:#ff5fa2; --violet:#a97cf5;
  --ok:#31c46a; --bad:#ff4d5e; --blue:#4c8dff;
  --font:"Mulish","Inter",-apple-system,"Segoe UI",Roboto,sans-serif; --head:"Mulish","Inter",-apple-system,sans-serif;
  /* терминал */
  --tt-bg:#111318; --tt-panel:#171a20; --tt-panel2:#1c2027; --tt-line:#252a33; --tt-line2:#2d333d;
  --tt-text:#e8eaf0; --tt-muted:#8f96a3; --tt-icon:#6aa9ff;
  --bid:#3d8bfd; --bid-band:rgba(61,139,253,.14); --bid-bar:rgba(61,139,253,.42); --bid-best:#2f6fe0; --bid-price:#15243d;
  --ask:#ff4d6a; --ask-band:rgba(255,77,106,.12); --ask-bar:rgba(255,77,106,.40); --ask-best:#d93a55; --ask-price:#3a1a24;
  --flt:#ff9f1a; --own:#ffb454; --pos:#22a559; --neg:#d63b56;
  --tt-font:"Inter","Segoe UI",Roboto,Arial,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;position:relative;background:var(--bg);color:var(--text);font-family:var(--font);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body{background:var(--bg);display:flex;flex-direction:column;min-height:100vh}
.bg-wrap{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
/* фоновые свечения без filter:blur: градиент повторяет профиль прежних размытых пятен (blur 90px), центры те же */
.bg-glow{position:absolute;border-radius:50%;pointer-events:none}
.bg-glow.g1{width:1250px;height:1100px;left:calc(50% - 575px);top:-460px;transform:translateX(-50%);background:radial-gradient(closest-side,rgba(128,104,214,0.1741) 0%,rgba(128,104,214,0.168) 10%,rgba(128,104,214,0.1516) 20%,rgba(128,104,214,0.1275) 30%,rgba(128,104,214,0.1002) 40%,rgba(128,104,214,0.0729) 50%,rgba(128,104,214,0.0471) 60%,rgba(128,104,214,0.0258) 70%,rgba(128,104,214,0.0113) 80%,rgba(128,104,214,0.0033) 90%,rgba(128,104,214,0) 100%)}
@media (max-width:1250px){.bg-glow.g1{left:230px}}
.bg-glow.g2{width:840px;height:780px;left:calc(min(100% - 28px, 50% + 652px) - 532px);top:-330px;background:radial-gradient(closest-side,rgba(214,140,110,0.0904) 0%,rgba(214,140,110,0.0872) 10%,rgba(214,140,110,0.0791) 20%,rgba(214,140,110,0.0667) 30%,rgba(214,140,110,0.0526) 40%,rgba(214,140,110,0.0381) 50%,rgba(214,140,110,0.0251) 60%,rgba(214,140,110,0.0148) 70%,rgba(214,140,110,0.0078) 80%,rgba(214,140,110,0.0035) 90%,rgba(214,140,110,0) 100%)}
.bg-glow.g3{width:1250px;height:940px;left:50%;bottom:-470px;transform:translateX(-50%);background:radial-gradient(closest-side,rgba(84,104,196,0.0928) 0%,rgba(84,104,196,0.0895) 10%,rgba(84,104,196,0.0816) 20%,rgba(84,104,196,0.0701) 30%,rgba(84,104,196,0.0565) 40%,rgba(84,104,196,0.0426) 50%,rgba(84,104,196,0.0296) 60%,rgba(84,104,196,0.0181) 70%,rgba(84,104,196,0.0092) 80%,rgba(84,104,196,0.0038) 90%,rgba(84,104,196,0) 100%)}
#app,footer{position:relative;z-index:1}
button{font-family:inherit}
a{color:var(--orange2)}
.hidden{display:none!important}
.ico{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vertical-align:-3px;flex:none}
h1,h2,h3,h4{font-family:var(--head);letter-spacing:-.01em}

/* ---------- шапка ---------- */
.topbar{--tb:0;display:block;padding:0;height:64px;background:rgba(8,7,13,calc(.78 * var(--tb)));-webkit-backdrop-filter:blur(calc(14px * var(--tb)));backdrop-filter:blur(calc(14px * var(--tb)));border-bottom:1px solid rgba(255,255,255,calc(.08 * var(--tb)));position:sticky;top:0;z-index:5}
.tb-inner{max-width:1360px;margin:0 auto;padding:0 28px;height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;cursor:pointer}
.brand-t{font-family:var(--head);font-weight:800;font-size:20px;letter-spacing:-.01em;color:#fff}
.brand-t b{font-weight:600;margin-left:7px;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.nav{display:flex;gap:6px;font-size:15px;font-weight:500;color:var(--muted);margin-right:auto;position:relative;top:2px}
.nav span{cursor:pointer;padding:8px 12px;border-radius:10px;transition:background .15s,color .15s}
.nav span:hover{background:rgba(255,255,255,.06);color:#fff}
.hud{display:flex;align-items:center;gap:10px}
.streak{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 12px;min-width:56px;height:36px;border-radius:10px;background:rgba(255,255,255,.05);border:1px solid var(--line);color:var(--muted);font-weight:700;font-size:12.5px}
.streak.on{color:#ffb454;background:rgba(255,159,26,.1);border-color:rgba(255,159,26,.3)}
.streak .ico{width:15px;height:15px}
.pill{background:var(--surface);color:var(--muted);border:1px solid rgba(255,255,255,.1);border-radius:100px;width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,color .15s}
.pill:hover{background:var(--surface3);color:#fff}
.pill .ico{width:16px;height:16px}
.xpbar{width:100%;height:5px;background:rgba(255,255,255,.08);border-radius:3px;overflow:hidden}
.xpbar div{height:100%;width:0;background:var(--grad);transition:width .5s}
.pill{background:rgba(255,255,255,.05);color:var(--muted);border:1px solid var(--line);border-radius:999px;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,color .15s}
.pill:hover{background:rgba(255,255,255,.1);color:#fff}
.pill .ico{width:16px;height:16px}

main{max-width:1360px;width:100%;flex:1 0 auto;margin:0 auto;padding:30px 28px 12px}
/* низ страницы — сразу под последним блоком (там стоит тигр): нижний отступ последнего курса не «проваливается» наружу */
.courses > .course:last-child{margin-bottom:0}
footer{max-width:1360px;width:100%;margin:0 auto;padding:0 28px 40px;color:var(--dim);font-size:12px}

/* ---------- кнопки ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:#fff;color:#0d0d11;border:1px solid transparent;border-radius:10px;padding:11px 20px;font-size:14px;font-weight:700;cursor:pointer;transition:background .15s,transform .1s,border-color .15s}
.btn:hover{background:#e9e8f0}
.btn:active{transform:scale(.98)}
.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}
.btn.white{background:#fff;color:#0d0d11}
.btn.white:hover{background:#e9e8f0}
.btn.accent{background:var(--grad);color:#fff}
.btn.accent:hover{filter:brightness(1.08);background:var(--grad)}
.btn.ghost{background:rgba(255,255,255,.06);color:#fff;border-color:var(--line)}
.btn.ghost:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.14)}
.btn.small{padding:8px 14px;font-size:13px;border-radius:9px}
.btn .ico{width:16px;height:16px}

/* ---------- главная ---------- */
.hero{margin:14px 0 60px;display:grid;grid-template-columns:1.3fr 1fr;gap:28px;align-items:start}
@media (max-width:900px){.hero{grid-template-columns:1fr}}
.hero .eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--orange2);text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px}
.hero .eyebrow .ico{width:14px;height:14px}
.hero h1{margin:0 0 14px;font-size:44px;font-weight:800;line-height:1.08;letter-spacing:-.02em}
.hero .facts{display:flex;gap:18px;flex-wrap:wrap;margin:0 0 20px;color:var(--muted);font-size:13px}
.hero .facts b{color:#fff;font-family:var(--head);font-size:17px;font-weight:800;margin-right:5px}
.hero .note .ico{width:13px;height:13px;vertical-align:-2px;margin:0 2px 0 4px}
.hero h1 b{font-weight:800;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p{margin:0 0 18px;color:var(--muted);max-width:620px;font-size:15px}
.hero .cta{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.hero .note{font-size:12px;color:var(--dim)}
.stats{position:relative;background:var(--surface);border:1px solid rgba(255,255,255,.1);border-radius:22px;padding:22px 24px;display:grid;grid-template-columns:auto 1fr;gap:20px 22px;align-items:center}
.ring{width:96px;height:96px;position:relative}
.ring svg{width:96px;height:96px;transform:rotate(-90deg)}
.ring circle{fill:none;stroke-width:8;stroke-linecap:round}
.ring .bgc{stroke:rgba(255,255,255,.08)}
.ring .fgc{stroke:url(#ringGrad);transition:stroke-dashoffset .6s}
.ring .lv{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--head);font-weight:800;font-size:22px;line-height:1}
.ring .lv small{font-size:10px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin-top:2px}
.stats .kv{display:grid;grid-template-columns:1fr 1fr;gap:14px 20px}
.stats .k{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.stats .v{font-family:var(--head);font-size:21px;font-weight:800;display:flex;align-items:center;gap:7px;margin-top:2px}
.stats .v .ico{width:18px;height:18px;color:var(--orange2)}
.stats .v.flame .ico{color:#ffb454}
.stats .next{grid-column:1/-1;font-size:12.5px;color:var(--muted);padding-top:2px}
.stats .wk{grid-column:1/-1;border-top:1px solid var(--line);padding-top:14px;margin-top:2px}
.stats .wk .wbars{display:flex;gap:6px;align-items:flex-end;height:46px;margin-top:8px}
.stats .wk .wd{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;height:100%}
.stats .wk .wd i{display:block;width:100%;max-width:28px;border-radius:5px;background:rgba(255,255,255,.08)}
.stats .wk .wd.on i{background:linear-gradient(180deg,var(--orange2),var(--orange))}
.stats .wk .wd small{font-size:9.5px;color:var(--dim);text-transform:uppercase;letter-spacing:.04em;font-weight:600}
.stats .wk .wd.today small{color:#fff}
.stats .next b{color:#fff}

.course{margin-bottom:34px;background:var(--panel);border:1px solid var(--line);border-radius:24px;padding:22px 24px 18px}
.course-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:6px;flex-wrap:wrap}
.course-head h2{margin:0;font-size:20px;font-weight:700;display:flex;align-items:center;gap:12px}
.course-head h2 b{font-weight:500;color:var(--muted)}
.course-head .cico{width:40px;height:40px;border-radius:13px;background:var(--orange-soft);color:var(--orange2);display:inline-flex;align-items:center;justify-content:center;flex:none}
.course-head .cico .ico{width:20px;height:20px}
.course-head p{margin:6px 0 0;color:var(--muted);font-size:13px;max-width:760px}
.course-head .cprog{display:flex;flex-direction:column;align-items:flex-end;gap:6px;min-width:150px}
.course-head .cprog span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.course-head .cprog span b{color:#fff}
.course-head .cbar{width:150px;height:5px;border-radius:3px;background:rgba(255,255,255,.08);overflow:hidden}
.course-head .cbar i{display:block;height:100%;background:linear-gradient(90deg,var(--orange),var(--pink))}
/* роадмап */
.road{position:relative;display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:26px 6px 8px;overflow:visible}
.road::before{content:"";position:absolute;left:38px;right:38px;top:58px;border-top:2px dashed rgba(255,255,255,.12)}
.node{position:relative;display:flex;flex-direction:column;align-items:center;width:120px;text-align:center;cursor:pointer;flex:none}
.node .circle{width:64px;height:64px;border-radius:50%;background:var(--surface3);border:2px solid var(--line2);display:flex;align-items:center;justify-content:center;color:var(--muted);position:relative;transition:transform .2s,border-color .2s,background .2s;z-index:1}
.node .circle .ico{width:24px;height:24px}
.node:hover .circle{transform:translateY(-3px)}
.node .mark{position:absolute;right:-4px;bottom:-4px;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid var(--surface)}
.node .mark .ico{width:12px;height:12px;stroke-width:3}
.node.done .circle{background:rgba(49,196,106,.14);border-color:rgba(49,196,106,.6);color:#fff}
.node.done .mark{background:var(--ok);color:#06240f}
.node.current .circle{background:var(--orange);border-color:var(--orange);color:#fff;box-shadow:0 0 0 6px rgba(255,106,26,.18);animation:halo 1.8s ease-in-out infinite}
@keyframes halo{0%,100%{box-shadow:0 0 0 6px rgba(255,106,26,.18)}50%{box-shadow:0 0 0 12px rgba(255,106,26,.06)}}
.node.current .mark{background:#fff;color:var(--orange)}
.node.locked{cursor:not-allowed}
.node.locked .circle{background:var(--surface2);border-color:var(--line);color:var(--dim)}
.node .nlabel{margin-top:10px;font-size:12px;line-height:1.3;color:var(--text);font-weight:500}
.node .nlabel small{display:block;color:var(--dim);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;font-weight:600;margin-bottom:2px}
.node.locked .nlabel{color:var(--dim)}
.node .stars{font-size:11px;color:var(--yellow);letter-spacing:1px;margin-top:3px;min-height:14px}
.node .tip{position:absolute;top:100%;left:50%;transform:translate(-50%,6px);width:240px;background:#1f1d2b;border:1px solid var(--line2);border-radius:14px;padding:12px 14px;font-size:12.5px;color:var(--muted);text-align:left;box-shadow:0 18px 40px rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:opacity .15s,transform .15s;z-index:4}
.node .tip b{display:block;color:#fff;margin-bottom:4px;font-size:13px}
.node .tip .go{display:inline-block;margin-top:8px;color:var(--orange2);font-weight:600}
.node:hover .tip{opacity:1;transform:translate(-50%,10px)}
/* скрытая подсказка не участвует в вёрстке: иначе под раскрытым этапом внизу страницы она удлиняла прокрутку (чёрная пустота) */
.node:not(:hover) .tip{display:none}
.node:hover .tip{animation:tipIn .15s ease-out}
@keyframes tipIn{from{opacity:0;transform:translate(-50%,6px)}}
.road.many .node{width:104px}
@media (max-width:1100px){.road{flex-wrap:wrap;justify-content:flex-start;gap:14px 6px}.road::before{display:none}}

/* достижения */
.badges{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.bdg{display:flex;gap:12px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:12px 14px}
.bdg .bi{width:42px;height:42px;border-radius:13px;display:flex;align-items:center;justify-content:center;flex:none;background:rgba(255,255,255,.05);color:var(--dim)}
.bdg .bi .ico{width:20px;height:20px}
.bdg b{display:block;font-size:13.5px;color:var(--dim)}
.bdg span{font-size:11.5px;color:var(--dim)}
.bdg.on .bi{background:linear-gradient(135deg,rgba(255,106,26,.25),rgba(255,95,162,.25));color:#ffb454}
.bdg.on b{color:#fff}.bdg.on span{color:var(--muted)}

/* ---------- урок ---------- */
.lesson-head{display:flex;align-items:center;gap:16px;margin-bottom:14px;flex-wrap:wrap}
.lesson-head h2{margin:0;font-size:24px;font-weight:600;flex:1;letter-spacing:-.3px;display:flex;align-items:center;gap:12px}
.lesson-head h2 b{font-weight:700}
.lesson-head h2 small{display:block;font-size:12px;color:var(--muted);font-weight:500;font-family:var(--font);letter-spacing:0}
.lesson-head .cico{width:40px;height:40px;border-radius:13px;background:var(--orange-soft);color:var(--orange2);display:inline-flex;align-items:center;justify-content:center;flex:none}
.stages{display:flex;gap:4px;margin-bottom:20px;padding:4px;background:var(--panel);border:1px solid var(--line);border-radius:14px;width:fit-content}
.stage{padding:8px 16px;font-size:12.5px;font-weight:600;color:var(--muted);border-radius:10px;display:flex;align-items:center;gap:6px;transition:background .2s,color .2s}
.stage .ico{width:14px;height:14px}
.stage.active{background:var(--orange);color:#fff}
.stage.done{color:var(--ok)}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:24px;padding:30px 32px}
.slide .sn{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}
.slide h3{margin:0 0 14px;font-size:23px;font-weight:800;line-height:1.2}
.slide p{margin:0 0 14px;color:#dcd9e8;max-width:720px;line-height:1.6}
.slide ul{margin:0 0 12px;padding-left:20px;max-width:720px;color:#dcd9e8}
.slide li{margin-bottom:8px;line-height:1.55}
.slide .tip{border-left:3px solid var(--orange);padding:10px 14px;background:var(--orange-soft);border-radius:0 12px 12px 0;margin:14px 0;max-width:720px}
.slide .tip b{color:var(--orange2)}
.slide .layout{display:flex;gap:40px;align-items:flex-start;flex-wrap:wrap}
.slide .layout .txt{flex:1;min-width:320px}
.navrow{display:flex;justify-content:space-between;align-items:center;margin-top:28px;gap:12px}
.dots{display:flex;gap:6px}
.dots span{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.15)}
.dots span.on{background:var(--orange);width:22px;border-radius:4px}
.dots span.done{background:rgba(255,106,26,.45)}
.dots span{transition:width .2s,background .2s}

/* мини-стакан и мини-график в теории */
.mini{font-family:var(--tt-font);font-size:12px;background:var(--tt-bg);border:1px solid var(--tt-line);border-radius:12px;overflow:hidden;min-width:236px;color:var(--tt-text)}
.mini .mh,.mini .mr{display:grid;grid-template-columns:78px 76px 40px;height:22px;line-height:22px}
.mini .mh{background:var(--tt-panel2);color:var(--tt-muted);font-weight:600;font-size:10.5px;text-align:center;border-bottom:1px solid var(--tt-line);letter-spacing:.04em}
.mini .mr{border-bottom:1px solid #15181e}
.mini .mv{position:relative;padding-left:6px;overflow:hidden;white-space:nowrap}
.mini .mv i{position:absolute;left:0;top:0;bottom:0;z-index:0}
.mini .mv span{position:relative;z-index:1}
.mini .mr.ask .mv{background:var(--ask-band)}.mini .mr.ask .mv i{background:var(--ask-bar)}
.mini .mr.bid .mv{background:var(--bid-band)}.mini .mr.bid .mv i{background:var(--bid-bar)}
.mini .mr.ask .mp{background:var(--ask-price)}.mini .mr.bid .mp{background:var(--bid-price)}
.mini .mr.ask.best .mv,.mini .mr.ask.best .mp{background:var(--ask-best);color:#fff}
.mini .mr.bid.best .mv,.mini .mr.bid.best .mp{background:var(--bid-best);color:#fff}
.mini .mr.best .mv i{display:none}
.mini .mv.flt{background:var(--flt)!important;color:#1a1200;font-weight:700}.mini .mv.flt i{display:none}
.mini .mp{text-align:center;font-variant-numeric:tabular-nums}
.mini .mo{text-align:center;font-size:10px;font-weight:700}
.mini .mo.own{background:var(--own);color:#1a1200}
.mini .mo.sl{color:#ff6b6b;box-shadow:inset 0 0 0 1px #ff6b6b}
.mini .note,.minichart .note{font-size:11.5px;color:var(--muted);padding:8px 10px;font-family:var(--font);border-top:1px solid var(--tt-line);background:var(--surface2)}
.minichart{background:var(--tt-bg);border:1px solid var(--tt-line);border-radius:12px;overflow:hidden;min-width:260px;max-width:340px;color:var(--tt-text);font-family:var(--tt-font)}
.minichart svg{display:block;width:100%;height:auto}

/* ---------- тест ---------- */
.panel.q{max-width:880px;margin:0 auto;padding:34px 40px 30px}
.q h3{margin:0 0 22px;font-size:22px;font-weight:800;line-height:1.35;max-width:760px;text-wrap:balance}
.q .qtop{display:flex;align-items:center;gap:16px;margin-bottom:20px}
.q .qn{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.q .qn b{color:#fff}
.q .qbar{display:flex;gap:4px;flex:1;max-width:260px}
.q .qbar i{flex:1;height:5px;border-radius:3px;background:rgba(255,255,255,.1)}
.q .qbar i.ok{background:var(--ok)}.q .qbar i.bad{background:var(--bad)}.q .qbar i.cur{background:var(--orange)}
.opts{display:flex;flex-direction:column;gap:10px;max-width:760px}
.opt{display:flex;align-items:center;gap:14px;background:rgba(255,255,255,.04);border:1px solid var(--line2);border-radius:14px;padding:13px 16px;cursor:pointer;text-align:left;color:#fff;font-size:15px;line-height:1.45;transition:border-color .15s,background .15s,transform .1s}
.opt .key{width:30px;height:30px;border-radius:9px;background:rgba(255,255,255,.07);border:1px solid var(--line2);display:inline-flex;align-items:center;justify-content:center;font-family:var(--head);font-weight:800;font-size:13px;color:var(--muted);flex:none;transition:background .15s,color .15s}
.opt:hover .key{background:var(--orange);color:#fff;border-color:var(--orange)}
.opt.right .key{background:var(--ok);color:#06240f;border-color:var(--ok)}
.opt.wrong .key{background:var(--bad);color:#fff;border-color:var(--bad)}
.kbd{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--dim)}
.kbd .ico{width:14px;height:14px}
.opt:hover{border-color:rgba(255,255,255,.4);background:rgba(255,255,255,.07)}
.opt.right{border-color:var(--ok);background:rgba(49,196,106,.12)}
.opt.wrong{border-color:var(--bad);background:rgba(255,77,94,.12)}
.opt:disabled{cursor:default}
.explain{margin-top:18px;padding:14px 18px;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid var(--line2);max-width:760px;display:flex;gap:10px;align-items:flex-start;line-height:1.5;animation:pop .25s}
.explain .ico{width:18px;height:18px;margin-top:2px;flex:none}
.explain.ok .ico{color:var(--ok)}.explain.bad .ico{color:var(--bad)}
.explain.ok{border-color:transparent;background:rgba(49,196,106,.1)}
.explain.bad{border-color:transparent;background:rgba(255,77,94,.1)}

/* ==========================================================================
   Экран симулятора
   ========================================================================== */
.sim{display:grid;grid-template-columns:minmax(760px,860px) minmax(320px,1fr);gap:18px;align-items:start}
@media (max-width:1150px){.sim{grid-template-columns:1fr}.sim-right{position:static}}
.sim-right{display:flex;flex-direction:column;gap:14px;position:sticky;top:78px}

/* ---------- окно терминала tiger.com (современная тёмная тема) ---------- */
.tt-window{--rowh:20px;font-family:var(--tt-font);font-size:12px;color:var(--tt-text);background:var(--tt-bg);border:1px solid var(--tt-line2);border-radius:12px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.55),0 0 0 1px rgba(0,0,0,.4);user-select:none;-webkit-user-select:none}
.tt-window *{font-variant-numeric:tabular-nums}
.tt-window svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vertical-align:-2px}
.tt-tb{background:#252a33;border:1px solid #333a45;border-radius:6px;color:#e6e9ef;font-family:inherit;font-size:11px;padding:3px 9px;cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:background .12s}
.tt-tb:hover{background:#2d333d}
.tt-tb.on{background:var(--flt);color:#1a1200;border-color:var(--flt)}
.tt-tb svg{width:11px;height:11px}
.tt-body{display:grid;grid-template-columns:140px minmax(200px,1fr) 196px 176px}
/* информационная панель */
.tt-info{border-right:1px solid var(--tt-line);background:#14171c;display:flex;flex-direction:column}
.tt-info .ti{border-bottom:1px solid var(--tt-line);padding:8px 10px 9px;min-height:60px}
.tt-info .ti label{display:block;font-weight:600;font-size:10.5px;color:var(--tt-muted);text-transform:uppercase;letter-spacing:.05em}
.tt-info .ti b{display:block;text-align:right;font-weight:600;font-size:17px;color:#fff;line-height:1.25;margin-top:2px}
.tt-info .ti b.pos{color:#3ddc84}.tt-info .ti b.neg{color:#ff6b83}
.tt-info .ti small{display:block;text-align:right;color:#8f96a3;font-size:11px}
.tt-info .ti.deals{flex:1;overflow:hidden;border-bottom:0}
.tt-info .ti.deals div{font-size:11.5px;text-align:left;padding:2px 0;color:#dfe3ea;white-space:nowrap}
.tt-info .ti.deals div.b{color:#7fb5ff}.tt-info .ti.deals div.s{color:#ff8fa3}
/* область кластера и графика */
.tt-graph{position:relative;overflow:hidden;background:var(--tt-bg);border-right:1px solid var(--tt-line);background-image:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--rowh) * 10 - 1px),#1a1e25 calc(var(--rowh) * 10 - 1px),#1a1e25 calc(var(--rowh) * 10))}
.tt-cluster{position:absolute;left:0;top:0;width:60px}
.tt-cluster .cc{height:var(--rowh);line-height:var(--rowh);padding-left:8px;font-size:11px;color:#eef1f5;position:relative;white-space:nowrap;border-radius:0 3px 3px 0;margin:0 2px 0 0}
.tt-cluster .cc i{position:absolute;left:2px;top:50%;transform:translateY(-50%);width:3px;border-radius:2px}
.tt-cluster .cc i.b{background:#7fb5ff}.tt-cluster .cc i.s{background:#ff6b83}
.tt-cluster .cc.hl{box-shadow:inset 0 0 0 2px var(--yellow)}
.tt-prints{position:absolute;left:60px;right:0;top:0;bottom:0}
.tt-prints .pr{position:absolute;border-radius:50%;opacity:.95}
.tt-prints .pr.b{background:#4c9aff;box-shadow:0 0 6px rgba(76,154,255,.55)}
.tt-prints .pr.s{background:#ff5c78;box-shadow:0 0 6px rgba(255,92,120,.55)}
.tt-prints .pr.big{box-shadow:0 0 0 2px #fff,0 0 10px rgba(255,255,255,.35)}
.tt-bal{position:absolute;right:0;height:var(--rowh);line-height:var(--rowh);padding:0 8px;font-weight:600;font-size:12px;min-width:76px;text-align:right;color:#fff;border-radius:6px 0 0 6px}
.tt-bal.ask{top:0;background:rgba(255,77,106,.22);color:#ffb3c0}
.tt-bal.bid{bottom:0;background:rgba(61,139,253,.22);color:#b7d3ff}
.tt-time{position:absolute;left:60px;right:0;bottom:0;height:var(--rowh);font-size:10px;color:#8f96a3;border-top:1px solid var(--tt-line);background:var(--tt-bg)}
.tt-time span{position:absolute;bottom:3px;transform:translateX(-50%)}
/* линза-подсказка */
.tt-lens{position:absolute;right:10px;z-index:6;background:rgba(20,23,29,.92);border:1px solid rgba(243,187,46,.8);border-radius:12px;padding:8px 12px;box-shadow:0 12px 30px rgba(0,0,0,.6),0 0 0 4px rgba(243,187,46,.12);backdrop-filter:blur(6px);animation:lensin .35s cubic-bezier(.2,.9,.3,1.3);pointer-events:none;min-width:120px}
.tt-lens::after{content:"";position:absolute;right:-7px;top:50%;width:12px;height:12px;background:rgba(20,23,29,.92);border-right:1px solid rgba(243,187,46,.8);border-top:1px solid rgba(243,187,46,.8);transform:translateY(-50%) rotate(45deg)}
.tt-lens b{display:block;font-size:20px;font-weight:700;color:#fff;letter-spacing:.01em}
.tt-lens span{display:block;font-size:11px;color:var(--yellow);font-weight:600;white-space:nowrap}
@keyframes lensin{from{opacity:0;transform:translateX(12px) scale(.9)}to{opacity:1;transform:none}}
/* лестница */
.tt-ladder{display:flex;flex-direction:column;border-right:1px solid var(--tt-line);background:#101216}
.tt-ladder .lh,.tt-ladder .lf{display:grid;grid-template-columns:74px 82px 40px;height:var(--rowh);line-height:var(--rowh);background:var(--tt-panel2);font-weight:600;font-size:10.5px;text-align:center;color:#c9cfd9;letter-spacing:.04em}
.tt-ladder .lh{border-bottom:1px solid var(--tt-line2)}
.tt-ladder .lf{border-top:1px solid var(--tt-line2);margin-top:auto}
.tt-ladder .lh span.pos,.tt-ladder .lf .pos{background:var(--pos);color:#fff}
.tt-ladder .lh span.neg,.tt-ladder .lf .neg{background:var(--neg);color:#fff}
.lrows{flex:1;overflow:hidden}
.lr{display:grid;grid-template-columns:74px 82px 40px;height:var(--rowh);line-height:var(--rowh);cursor:crosshair;transition:opacity .25s}
.lr .lv{position:relative;overflow:hidden;padding-left:6px;white-space:nowrap;font-size:11.5px;font-weight:500;color:#dfe3ea}
.lr .lv i.bar{position:absolute;left:0;top:2px;bottom:2px;z-index:0;border-radius:0 3px 3px 0;transition:width .12s}
.lr .lv span{position:relative;z-index:1}
.lr .lv em.ownbar{position:absolute;left:0;top:2px;bottom:2px;width:3px;background:var(--own);z-index:2}
.lr.ask .lv{background:var(--ask-band)}.lr.ask .lv i.bar{background:var(--ask-bar)}
.lr.bid .lv{background:var(--bid-band)}.lr.bid .lv i.bar{background:var(--bid-bar)}
.lr.ask .lp{background:var(--ask-price)}.lr.bid .lp{background:var(--bid-price)}
.lr.ask.best .lv,.lr.ask.best .lp{background:var(--ask-best);color:#fff}
.lr.bid.best .lv,.lr.bid.best .lp{background:var(--bid-best);color:#fff}
.lr.best .lv i.bar{display:none}
.lr .lv.flt{background:var(--flt)!important;color:#1a1200;font-weight:700}.lr .lv.flt i.bar{display:none}
.lr .lp{text-align:center;font-size:11.5px;color:#eef1f5;position:relative;font-weight:500}
.lr.grid .lp,.lr.grid .lv,.lr.grid .lo{box-shadow:inset 0 1px 0 var(--tt-line2)}
.lr.empty .lv{background:#13161b}
.lr.ask.empty .lv{background:#1a1418}.lr.bid.empty .lv{background:#13181f}
/* лента прибыли/убытка позиции */
.lr.band.pos .lp{background:rgba(34,165,89,.70)!important}
.lr.band.neg .lp{background:rgba(214,59,86,.72)!important}
.lr.band.flat .lp{background:rgba(255,255,255,.14)!important}
.lr.band.pos .lo{box-shadow:inset 3px 0 0 var(--ok);background:rgba(34,165,89,.22)}
.lr.band.neg .lo{box-shadow:inset 3px 0 0 var(--bad);background:rgba(214,59,86,.22)}
.lr.entry .lp{box-shadow:inset 0 0 0 2px var(--yellow);font-weight:700;color:#fff}
.lr .lo{background:#0f1115;text-align:center;font-size:10px;font-weight:700;line-height:var(--rowh);color:#c9cfd9}
.lr .lo.own{background:var(--own);color:#1a1200;cursor:pointer}
.lr .lo.sl{color:#ff6b83;box-shadow:inset 0 0 0 1px #ff6b83;cursor:pointer}
.lr .lo.tp{color:#3ddc84;box-shadow:inset 0 0 0 1px #3ddc84;cursor:pointer}
.lr .lo.pos-mark{background:var(--yellow);color:#1a1200}
.lr .lo.own:hover,.lr .lo.sl:hover,.lr .lo.tp:hover{filter:brightness(1.25)}
.lr:hover .lv,.lr:hover .lp{filter:brightness(1.2)}
/* прожектор и акценты */
.tt-window.spot .lr:not(.hl-row):not(.best):not(.entry){opacity:.55}
.tt-window.spot .tt-info,.tt-window.spot .tt-trade{opacity:.7}
.lr.hl-row{opacity:1}
.lr .lv.hl,.lr .lp.hl{box-shadow:inset 0 0 0 2px var(--yellow)!important;animation:ttpulse .8s infinite alternate;z-index:3;position:relative}
@keyframes ttpulse{from{filter:brightness(1)}to{filter:brightness(1.55)}}
.lr.fx-fill .lv{animation:ttflash .8s}
@keyframes ttflash{from{background:#fff;color:#000}to{}}
.lr.fx-appear .lv{animation:ttappear 1.5s}
@keyframes ttappear{0%{box-shadow:inset 0 0 0 3px #fff;transform:scaleX(1.03)}60%{box-shadow:inset 0 0 0 2px var(--flt)}100%{box-shadow:none}}
.lr.fx-gone .lv,.lr.fx-gone .lp{animation:ttgone 1.3s}
@keyframes ttgone{0%{background:rgba(255,77,106,.65)}100%{}}
.tt-window.mode-sl .lr,.tt-window.mode-tp .lr{cursor:cell}
/* торговый модуль */
.tt-trade{background:#14171c;padding:8px;display:flex;flex-direction:column;gap:5px;overflow:hidden}
.tt-trade .r2{display:grid;grid-template-columns:1fr 1fr;gap:5px}
.tt-btn{font-family:inherit;font-size:11.5px;font-weight:600;color:#fff;background:#252a33;border:1px solid #333a45;border-radius:7px;padding:6px 2px;cursor:pointer;line-height:1.1;white-space:nowrap;overflow:hidden;transition:filter .12s,transform .08s}
.tt-btn:hover{filter:brightness(1.15)}
.tt-btn:active{transform:scale(.97)}
.tt-btn.buy{background:var(--bid-best);border-color:#3b7ff0}
.tt-btn.sell{background:var(--ask-best);border-color:#ef4c68}
.tt-btn.buy.soft{background:rgba(47,111,224,.35)}.tt-btn.sell.soft{background:rgba(217,58,85,.35)}
.tt-btn.close{background:var(--pos);border-color:#2fc06a;font-weight:700;letter-spacing:.05em}
.tt-btn.on{background:var(--flt);color:#1a1200;border-color:var(--flt)}
.tt-btn svg{width:11px;height:11px;vertical-align:-1px;margin-right:2px}
.tt-pos{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:2px}
.tt-pos div,.tt-pnl{background:#1c2027;border:1px solid #2d333d;border-radius:7px;text-align:center;font-weight:600;font-size:11.5px;padding:5px 2px;color:#eef1f5;transition:background .2s}
.tt-pos div.pos,.tt-pnl.pos{background:var(--pos);border-color:#2fc06a;color:#fff}
.tt-pos div.neg,.tt-pnl.neg{background:var(--neg);border-color:#ef4c68;color:#fff}
.tt-sel{background:#1c2027;border:1px solid #2d333d;border-radius:7px;color:#c9cfd9;font-size:11px;padding:5px 8px;display:flex;justify-content:space-between}
.tt-sel span:last-child{color:#6f7683}
.tt-lots{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:4px}
.tt-lots .tt-btn{padding:4px 0}
.tt-lots .tt-btn.on{background:var(--bid-best);color:#fff;border-color:#3b7ff0}
.tt-hint{font-size:10.5px;color:#8f96a3;line-height:1.4;margin-top:auto;padding-top:6px;border-top:1px solid var(--tt-line)}
.tt-hint b{color:#dfe3ea}
.tt-player{display:flex;align-items:center;gap:8px;margin-top:10px;font-family:var(--tt-font);font-size:11.5px;color:#c9cfd9;background:var(--tt-panel);border:1px solid var(--tt-line2);border-radius:10px;padding:6px 10px}
.tt-player b{color:#fff;font-weight:600}
.tt-player .lbl{color:#8f96a3}
.tt-player svg{width:11px;height:11px}
.tt-player .tt-tb.on{background:var(--bid-best);color:#fff;border-color:#3b7ff0}
.tt-player .spacer{flex:1}
.tt-player .legend{color:#8f96a3;font-size:10.5px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.tt-player .legend .sw{display:inline-block;width:10px;height:10px;border-radius:3px;margin-left:6px}
.tt-player .legend .sw.bid{background:var(--bid)}.tt-player .legend .sw.ask{background:var(--ask)}.tt-player .legend .sw.flt{background:var(--flt)}.tt-player .legend .sw.pos{background:var(--pos)}.tt-player .legend .sw.neg{background:var(--neg)}
/* окно «График» */
.tt-chart{margin-bottom:10px}
.tt-chart canvas{display:block;width:100%;height:300px;background:#0f1116;cursor:crosshair}
/* лента сделок */
.tt-tape{font-family:var(--tt-font)}
.tt-tape .tt-head{height:32px}
.tt-tape .rows{height:236px;overflow:hidden;background:#101216}
.tt-tape .t{display:grid;grid-template-columns:62px 1fr 60px 50px;padding:0 10px;height:18px;line-height:18px;font-size:11.5px;border-bottom:1px solid #15181e}
.tt-tape .t.b{color:#7fb5ff}.tt-tape .t.s{color:#ff8fa3}
.tt-tape .t.big{font-weight:700;background:rgba(255,255,255,.05)}
.tt-tape .t small{color:#6f7683;font-size:10px}
.tt-tape .hdr{display:grid;grid-template-columns:62px 1fr 60px 50px;padding:0 10px;height:22px;line-height:22px;font-size:10.5px;color:#8f96a3;background:var(--tt-panel2);border-bottom:1px solid var(--tt-line2);font-weight:600;letter-spacing:.04em}

/* ---------- наставник ---------- */
.mentor{position:relative;isolation:isolate;background:var(--panel);border-radius:22px;padding:20px;display:flex;flex-direction:column;gap:10px;border:1px solid var(--line)}
/* «твой ход»: вместо оранжевой рамки и кольца — мягкое оранжевое свечение внутри блока, как у выбранной карточки курса; проявляется плавно */
.mentor::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none;background:linear-gradient(135deg,rgba(255,106,26,.16),rgba(255,106,26,.05) 45%,transparent 75%);opacity:0;transition:opacity .35s ease}
.mentor .who{display:flex;align-items:center;gap:10px;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.mentor .ava{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--orange),var(--pink));display:flex;align-items:center;justify-content:center;color:#fff}
.mentor .ava .ico{width:16px;height:16px}
.mentor .combo{margin-left:auto;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;line-height:1;font-size:11px;font-weight:700;color:#ffb454;background:rgba(255,159,26,.12);border:1px solid rgba(255,159,26,.35);border-radius:999px;padding:4px 10px 4px 8px;text-transform:none;letter-spacing:0;animation:pop .3s}
.mentor .combo .ico{width:12px;height:12px;vertical-align:0;stroke-width:2.4}
@keyframes pop{from{transform:scale(.7);opacity:0}to{transform:none;opacity:1}}
.mentor .msg{font-size:14.5px;min-height:60px;line-height:1.55}
.mentor .msg b{color:var(--orange2)}
.mentor .log{display:flex;flex-direction:column;gap:3px;font-size:11.5px;color:var(--muted);border-top:1px solid var(--line);padding-top:8px;max-height:64px;overflow:hidden}
.mentor .log div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mentor .log small{color:var(--dim);font-family:var(--tt-font);margin-right:6px}
.mentor.paused::before{opacity:1}
.mentor .choices{display:flex;flex-direction:column;gap:6px}
.mentor .choices .btn{justify-content:flex-start;text-align:left;font-size:13px;font-weight:500;padding:8px 12px;gap:10px}
.mentor .choices .key{width:24px;height:24px;border-radius:7px;background:rgba(255,255,255,.08);display:inline-flex;align-items:center;justify-content:center;font-family:var(--head);font-weight:800;font-size:12px;color:var(--muted);flex:none}
.mentor .choices .btn:hover .key{background:var(--orange);color:#fff}
.mentor .status{font-size:12.5px;color:var(--orange2);font-weight:600;display:flex;align-items:center;gap:8px}
.mentor .status .dot{width:8px;height:8px;border-radius:50%;background:var(--orange);animation:blink 1s infinite}
@keyframes blink{50%{opacity:.25}}
.mentor .fb{padding:10px 12px;border-radius:12px;font-size:13px;display:flex;gap:8px;align-items:flex-start;animation:pop .25s}
.mentor .fb .ico{width:16px;height:16px;margin-top:2px}
.mentor .fb.ok{background:rgba(49,196,106,.12);border:1px solid transparent}
.mentor .fb.ok .ico{color:var(--ok)}
.mentor .fb.bad{background:rgba(255,77,94,.12);border:1px solid transparent}
.mentor .fb.bad .ico{color:var(--bad)}
.mentor .prog{font-size:11px;color:var(--muted);display:flex;justify-content:space-between;text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.mentor .meter{height:5px;background:rgba(255,255,255,.08);border-radius:3px;overflow:hidden}
.mentor .meter div{height:100%;background:linear-gradient(90deg,var(--orange),var(--pink));transition:width .4s}
.mentor .score{font-size:12px;color:var(--muted)}
.mentor .score b{color:var(--yellow)}

/* ---------- результат и награды ---------- */
.result{text-align:center;padding:36px 20px}
.result h2{margin:0 0 6px;font-size:34px;font-weight:600}
.result .sub{color:var(--muted);margin:0}
.result h2 b{font-weight:800}
.result .stars{font-size:44px;color:var(--yellow);letter-spacing:6px;margin:6px 0}
.result .stars span{display:inline-block;animation:star .5s ease-out}
.result .stars span:nth-child(2){animation-delay:.15s}.result .stars span:nth-child(3){animation-delay:.3s}
@keyframes star{from{transform:scale(0) rotate(-30deg);opacity:0}to{transform:none;opacity:1}}
.result .stat{display:inline-flex;gap:28px;margin:16px 0;padding:16px 26px;background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:18px;flex-wrap:wrap;justify-content:center}
.result .stat div{text-align:center}
.result .stat b{display:block;font-size:24px;font-family:var(--head)}
.result .stat span{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.rewards{display:flex;flex-direction:column;gap:8px;max-width:520px;margin:10px auto 0}
.reward{display:flex;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--line2);border-radius:14px;padding:10px 14px;text-align:left;animation:slidein .4s ease-out}
.reward:nth-child(2){animation-delay:.15s}.reward:nth-child(3){animation-delay:.3s}.reward:nth-child(4){animation-delay:.45s}
@keyframes slidein{from{transform:translateY(10px);opacity:0}to{transform:none;opacity:1}}
.reward .bi{width:38px;height:38px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,rgba(255,106,26,.25),rgba(255,95,162,.25));color:#ffb454;flex:none}
.reward .bi .ico{width:18px;height:18px}
.reward b{display:block;font-size:13.5px}
.reward span{font-size:12px;color:var(--muted)}
.reward.lvl .bi{background:linear-gradient(135deg,rgba(76,141,255,.25),rgba(169,124,245,.25));color:#b9c8ff}
.reward.rstreak .bi{color:#ffb454}
.reward.daily .bi{background:linear-gradient(135deg,rgba(49,196,106,.22),rgba(76,141,255,.22));color:#5fe08f}
.result .actions{display:flex;gap:10px;justify-content:center;margin-top:20px;flex-wrap:wrap}

/* ---------- база знаний ---------- */
.gloss .search{width:100%;max-width:520px;background:rgba(255,255,255,.05);border:1px solid var(--line2);border-radius:14px;padding:12px 16px;color:#fff;font-size:15px;font-family:inherit;outline:none;margin-bottom:18px}
.gloss .search:focus{border-color:var(--orange)}
.terms{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}
.term{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:14px 16px}
.term b{display:block;font-size:14px;margin-bottom:4px}
.term span{font-size:13px;color:var(--muted)}

.toast{position:fixed;left:50%;bottom:30px;transform:translateX(-50%);background:var(--surface2);border:1px solid var(--line2);padding:12px 20px;border-radius:14px;font-weight:600;z-index:50;box-shadow:0 10px 40px rgba(0,0,0,.6);animation:up .25s;font-size:14px}
.toast.ok{border-color:transparent;color:var(--ok);background:linear-gradient(rgba(49,196,106,.14),rgba(49,196,106,.14)),var(--surface2)}
.toast.bad{border-color:transparent;color:var(--bad);background:linear-gradient(rgba(255,77,94,.14),rgba(255,77,94,.14)),var(--surface2)}
.toast.gold{border-color:transparent;color:var(--yellow);background:linear-gradient(rgba(243,187,46,.12),rgba(243,187,46,.12)),var(--surface2)}
@keyframes up{from{transform:translate(-50%,20px);opacity:0}to{transform:translate(-50%,0);opacity:1}}

/* ---------- компактные шапки окон ---------- */
.tt-head{display:flex;align-items:center;gap:6px;height:38px;padding:0 8px;background:var(--tt-panel);border-bottom:1px solid var(--tt-line)}
.tt-head .chip{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:9px;background:#20252d;color:#fff;font-weight:600;font-size:12px}
.tt-head .chip svg{color:var(--tt-icon);width:13px;height:13px}
.tt-head .chip em{font-style:normal;color:#8f96a3;font-weight:600}
.tt-head .chip em.pos{color:#3ddc84}.tt-head .chip em.neg{color:#ff6b83}
.tt-head .sub{color:#6f7683;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:0 1 auto}
.tt-head .chip{white-space:nowrap}
.tt-head .spacer{flex:1}
.tt-head .mode{font-size:11px;color:var(--flt);font-weight:600}
.tt-head .clock{color:#aab1bd;font-size:11.5px;font-variant-numeric:tabular-nums;margin-left:4px}
.tt-head .tfs{display:inline-flex;gap:3px;background:#12151b;border:1px solid var(--tt-line);border-radius:9px;padding:3px}
.tt-head .tf{background:transparent;border:0;color:#8f96a3;font-family:inherit;font-size:11px;font-weight:600;padding:3px 9px;border-radius:6px;cursor:pointer;transition:background .12s,color .12s}
.tt-head .tf:hover{color:#fff}
.tt-head .tf.on{background:var(--bid-best);color:#fff}
.tt-head .ohlc{display:inline-flex;gap:10px;font-size:11px;color:#8f96a3;font-variant-numeric:tabular-nums}
.tt-head .ohlc b{color:#dfe3ea;font-weight:600}
.tt-head .ohlc b.up{color:#3ddc84}.tt-head .ohlc b.dn{color:#ff6b83}
.tt-head .ind{color:#c77dff;font-weight:600;font-size:11px;border:1px solid rgba(199,125,255,.4);border-radius:6px;padding:2px 7px}
.tt-tape .tt-head .chip{background:transparent;padding:0;font-size:12.5px}
.tt-tape .tt-head .clock{margin-left:auto}


/* ==========================================================================
   Панель дня, журнал, сетапы, разбор заданий
   ========================================================================== */
.dash{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:20px;margin:0 0 64px}
@media (max-width:1000px){.dash{grid-template-columns:1fr}}
.card{background:var(--panel);border:1px solid var(--line);border-radius:22px;padding:18px 20px;display:flex;flex-direction:column;gap:10px;min-height:170px}
.card .ch{display:flex;align-items:center;gap:10px;font-size:11.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.card .ch b{margin-left:auto;color:var(--yellow);font-family:var(--head);font-weight:800;letter-spacing:0;text-transform:none;font-size:12.5px}
.card .ci{width:30px;height:30px;border-radius:10px;background:var(--orange-soft);color:var(--orange2);display:inline-flex;align-items:center;justify-content:center;flex:none}
.card .ci .ico{width:15px;height:15px}
.card h3{margin:2px 0 0;font-size:18px;font-weight:800;line-height:1.25}
.card p{margin:0;color:var(--muted);font-size:13px;flex:1}
.card .btn{align-self:flex-start;margin-top:2px}
.card.daily{background:linear-gradient(135deg,rgba(255,106,26,.12),rgba(255,95,162,.06)),var(--panel);border-color:rgba(255,106,26,.28)}
.card.daily.done{background:linear-gradient(135deg,rgba(49,196,106,.12),transparent),var(--panel);border-color:rgba(49,196,106,.35)}
.card .okline{display:inline-flex;align-items:center;gap:8px;color:var(--ok);font-weight:600;font-size:13px}
.card .okline .ico{width:16px;height:16px}
.card .flame .ico{width:14px;height:14px;color:#ffb454;vertical-align:-2px}
.week .wbars{display:flex;gap:8px;align-items:flex-end;height:70px;padding:0 2px}
.week .wd{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:6px;height:100%}
.week .wd i{display:block;width:100%;max-width:34px;border-radius:6px;background:rgba(255,255,255,.08);transition:height .4s}
.week .wd.on i{background:linear-gradient(180deg,var(--orange2),var(--orange))}
.week .wd small{font-size:10.5px;color:var(--dim);text-transform:uppercase;letter-spacing:.04em;font-weight:600}
.week .wd.today small{color:#fff}
.week .wd.today i{box-shadow:0 0 0 2px rgba(255,255,255,.18)}
.card .kpi{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;flex:1}
.card .kpi div{background:rgba(255,255,255,.04);border-radius:12px;padding:10px 10px 8px}
.card .kpi b{display:block;font-family:var(--head);font-size:19px;font-weight:800;line-height:1.1}
.card .kpi span{font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600}
.up{color:var(--ok)!important}.dn{color:var(--bad)!important}

/* мета урока */
.lmeta{flex-basis:100%;display:flex;flex-wrap:wrap;gap:8px;margin-top:-2px}
.lmeta span{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:999px;padding:5px 11px;font-weight:500}
.lmeta .ico{width:13px;height:13px}
.lmeta .xpc{color:var(--yellow);border-color:transparent;background:rgba(243,187,46,.08)}
.lmeta .dailyc{color:var(--orange2);border-color:transparent;background:var(--orange-soft)}
.lmeta .bestc{color:#fff}

/* журнал */
.kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:16px}
@media (max-width:1000px){.kpis{grid-template-columns:repeat(3,1fr)}}
.kp{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:16px 18px}
.kp b{display:block;font-family:var(--head);font-size:26px;font-weight:800;line-height:1.1}
.kp span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.weak{padding:20px 24px;margin-bottom:16px}
.weak h3{margin:0 0 12px;font-size:16px;font-weight:800;display:flex;align-items:center;gap:8px}
.weak h3 .ico{color:var(--orange2)}
.weak .wl{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}
.wi{display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.04);border:1px solid var(--line2);border-radius:14px;padding:10px 14px;color:#fff;text-align:left;cursor:pointer;font-family:inherit;transition:border-color .15s,background .15s}
.wi:hover{border-color:var(--orange);background:rgba(255,106,26,.08)}
.wi .si{width:36px;height:36px;border-radius:11px;background:var(--orange-soft);color:var(--orange2);display:inline-flex;align-items:center;justify-content:center;flex:none}
.wi div{flex:1}.wi b{display:block;font-size:13.5px}.wi div span{font-size:11.5px;color:var(--muted)}
.wi > .ico{color:var(--muted)}
.jtable{padding:8px 10px}
.jtable .tw{overflow-x:auto}
.jtable table{width:100%;border-collapse:collapse;font-size:13px}
.jtable th{text-align:left;font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600;padding:12px 12px 10px;border-bottom:1px solid var(--line2);white-space:nowrap}
.jtable td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap}
.jtable tr[data-i]{cursor:pointer;transition:background .12s}
.jtable tr[data-i]:hover td{background:rgba(255,255,255,.04)}
.jtable td.dt{color:var(--muted);font-variant-numeric:tabular-nums}
.jtable td.ls b{display:block;font-weight:600}.jtable td.ls small{color:var(--dim);font-size:11px}
.jtable .pc{font-weight:700}.jtable .pc.g{color:var(--ok)}.jtable .pc.y{color:var(--yellow)}.jtable .pc.r{color:var(--bad)}
.jtable .st{color:var(--yellow);font-size:11px;letter-spacing:1px}
.jtable td.xp{color:var(--yellow);font-weight:700}
.empty{text-align:center;padding:40px 20px;max-width:520px;margin:0 auto}
.empty .si{width:56px;height:56px;border-radius:18px;background:var(--orange-soft);color:var(--orange2);display:inline-flex;align-items:center;justify-content:center;margin-bottom:14px}
.empty .si .ico{width:26px;height:26px}
.empty h3{margin:0 0 8px;font-size:20px;font-weight:800}
.empty p{color:var(--muted);margin:0 0 18px}

/* вкладки базы знаний и сетапы */
.tabs{display:flex;gap:4px;margin-bottom:18px;padding:4px;background:var(--panel);border:1px solid var(--line);border-radius:14px;width:fit-content}
.tab{background:transparent;border:0;color:var(--muted);font-family:inherit;font-size:13px;font-weight:600;padding:9px 16px;border-radius:10px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:background .15s,color .15s}
.tab .ico{width:15px;height:15px}
.tab b{font-weight:700;color:var(--dim);font-size:12px}
.tab:hover{color:#fff}
.tab.on{background:#fff;color:#0d0d11}.tab.on b{color:rgba(13,13,17,.55)}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.chipbtn{background:rgba(255,255,255,.04);border:1px solid var(--line2);color:var(--muted);font-family:inherit;font-size:12.5px;font-weight:600;padding:7px 14px;border-radius:999px;cursor:pointer;transition:border-color .15s,color .15s,background .15s}
.chipbtn:hover{color:#fff;background:rgba(255,255,255,.08)}
.chipbtn.on{background:#fff;color:#111;border-color:#fff}
.setups{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:14px}
@media (max-width:600px){.setups{grid-template-columns:1fr}}
.setup{background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:18px 20px 16px;display:grid;grid-row:span 4;grid-template-rows:subgrid;row-gap:14px;align-content:start}
.setup .sh{display:grid;grid-template-columns:40px 1fr auto;grid-template-rows:auto auto;column-gap:12px;row-gap:3px;align-items:start}
.setup .si{width:40px;height:40px;border-radius:13px;background:var(--orange-soft);color:var(--orange2);display:inline-flex;align-items:center;justify-content:center;flex:none;grid-column:1;grid-row:1/3}
.setup .sh > div{display:contents}
.setup .sh b{grid-column:2;grid-row:1;font-family:var(--head);font-size:15.5px;font-weight:800;line-height:1.2;min-height:37px;display:flex;align-items:center}
.setup .sh small{grid-column:2/4;grid-row:2;color:var(--dim);font-size:12px;text-transform:none;letter-spacing:0;font-weight:500;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.setup .dir{grid-column:3;grid-row:1;display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:700;border-radius:999px;padding:5px 10px;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;margin-top:2px}
.setup .dir .ico{width:12px;height:12px}
.setup .dir.long{color:#5fe08f;background:rgba(49,196,106,.12)}
.setup .dir.short{color:#ff8fa3;background:rgba(255,77,94,.12)}
.setup .dir.both{color:#b9c8ff;background:rgba(76,141,255,.14)}
.setup .sl > small,.setup .g4 small{display:block;font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:700;margin-bottom:6px}
.setup .sl{padding-top:12px;border-top:1px solid var(--line)}
.setup .sl ul{margin:0;padding-left:16px;color:#dcd9e8;font-size:13px;line-height:1.45}
.setup .sl li{margin-bottom:4px;padding-left:2px}
.setup .sl li::marker{color:var(--orange2)}
.setup .g4{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:8px}
.setup .g4 div{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.04);border-radius:12px;padding:10px 12px;font-size:12.5px;line-height:1.45;color:#eae8f2}
.setup .g4 div:nth-child(1) small{color:#7fb5ff}.setup .g4 div:nth-child(2) small{color:#ff8fa3}.setup .g4 div:nth-child(3) small{color:#5fe08f}.setup .g4 div:nth-child(4) small{color:var(--yellow)}
.setup .sf{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:12px;border-top:1px solid var(--line);font-size:12.5px;color:var(--muted);align-self:end}
.setup .sf b{color:#fff;font-family:var(--head)}

/* разбор заданий на экране итога */
.recap{max-width:640px;margin:18px auto 0;text-align:left;background:rgba(255,255,255,.03);border:1px solid var(--line);border-radius:18px;padding:14px 16px}
.recap h4{margin:0 0 10px;font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);display:flex;align-items:center;gap:8px}
.recap h4 .ico{width:14px;height:14px}
.recap .rc{display:grid;grid-template-columns:26px 1fr auto;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line);font-size:13px}
.recap .rc:first-of-type{border-top:0}
.recap .n{width:26px;height:26px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;font-family:var(--head);font-weight:800;font-size:12px}
.recap .ok .n{background:rgba(49,196,106,.15);color:var(--ok)}
.recap .warn .n{background:rgba(243,187,46,.15);color:var(--yellow)}
.recap .bad .n{background:rgba(255,77,94,.15);color:var(--bad)}
.recap .tx{color:#dcd9e8;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.45}
.recap .pt{text-align:right;font-weight:700;color:#fff;font-variant-numeric:tabular-nums}
.recap .pt small{display:block;font-weight:500;color:var(--dim);font-size:10.5px}

/* ==========================================================================
   Курс «Настройка терминала»: окно «Параметры стакана», темы стакана, мини-панели в теории
   ========================================================================== */
.tt-head .badges{display:inline-flex;align-items:center;gap:6px;margin-left:4px}
.tt-head .badges .lnk{width:10px;height:10px;border-radius:2px;display:inline-block}
.tt-head .badges .lnk.c1{background:var(--orange)}.tt-head .badges .lnk.c2{background:#4c8dff}.tt-head .badges .lnk.c3{background:#a97cf5}
.tt-head .badges .md{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;border-radius:5px;padding:2px 6px;border:1px solid transparent}
.tt-head .badges .md.real{color:#ff8fa3;border-color:rgba(255,77,106,.5);background:rgba(255,77,106,.12)}
.tt-head .badges .md.sim{color:#5fe08f;border-color:rgba(49,196,106,.5);background:rgba(49,196,106,.12)}
.tt-head .badges .md.player{color:#d9a5ff;border-color:rgba(199,125,255,.5);background:rgba(199,125,255,.12)}
.tt-head .badges .srv{font-size:10px;font-weight:700;color:#ffb454;border:1px solid rgba(255,159,26,.45);border-radius:5px;padding:2px 6px}
.lr .lv,.lr .lp{font-size:var(--tt-fs,11.5px)}
/* темы стакана: «Тёмная» (классика, зелёные биды) и «Светлая» */
.tt-window.theme-classic{--tt-bg:#0b0d11;--tt-panel:#12151b;--tt-panel2:#171b22;--bid:#2fb36a;--bid-band:rgba(47,179,106,.14);--bid-bar:rgba(47,179,106,.42);--bid-best:#1f8f52;--bid-price:#10261a;--ask:#ff5c5c;--ask-band:rgba(255,92,92,.12);--ask-bar:rgba(255,92,92,.40);--ask-best:#d43c3c;--ask-price:#3a1717;--flt:#ffd23f}
.tt-window.theme-classic .tt-ladder{background:#0c0e12}
.tt-window.theme-classic .tt-info .ti.deals div.b{color:#7fe0a5}
.tt-window.theme-light{--tt-bg:#f6f7fb;--tt-panel:#ffffff;--tt-panel2:#eef0f5;--tt-line:#dfe3ea;--tt-line2:#cdd3dd;--tt-text:#1b1f27;--tt-muted:#6b7280;--tt-icon:#2f6fe0;--bid:#2f6fe0;--bid-band:rgba(47,111,224,.12);--bid-bar:rgba(47,111,224,.35);--bid-best:#2f6fe0;--bid-price:#dbe6fb;--ask:#e0335a;--ask-band:rgba(224,51,90,.10);--ask-bar:rgba(224,51,90,.32);--ask-best:#e0335a;--ask-price:#fbdde5;--flt:#ffb020;--own:#ff9f1a;color:#1b1f27}
.tt-window.theme-light .tt-head{background:#fff}
.tt-window.theme-light .tt-head .chip{background:#eef0f5;color:#1b1f27}
.tt-window.theme-light .tt-head .sub,.tt-window.theme-light .tt-head .clock{color:#6b7280}
.tt-window.theme-light .tt-tb{background:#eef0f5;border-color:#d5dae3;color:#1b1f27}
.tt-window.theme-light .tt-info,.tt-window.theme-light .tt-trade{background:#fff}
.tt-window.theme-light .tt-info .ti b{color:#111}.tt-window.theme-light .tt-info .ti small{color:#6b7280}
.tt-window.theme-light .tt-info .ti.deals div{color:#374151}
.tt-window.theme-light .tt-graph{background:#fbfbfd;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--rowh) * 10 - 1px),#e6e9f0 calc(var(--rowh) * 10 - 1px),#e6e9f0 calc(var(--rowh) * 10))}
.tt-window.theme-light .tt-cluster .cc{color:#1b1f27}
.tt-window.theme-light .tt-time{background:#fbfbfd;color:#6b7280}
.tt-window.theme-light .tt-bal.ask{color:#b3213f}.tt-window.theme-light .tt-bal.bid{color:#1f4fb3}
.tt-window.theme-light .tt-ladder{background:#f9fafc}
.tt-window.theme-light .tt-ladder .lh,.tt-window.theme-light .tt-ladder .lf{background:#eef0f5;color:#374151}
.tt-window.theme-light .lr .lv,.tt-window.theme-light .lr .lp{color:#1b1f27}
.tt-window.theme-light .lr .lo{background:#f1f3f7;color:#4b5563}
.tt-window.theme-light .lr.empty .lv,.tt-window.theme-light .lr.ask.empty .lv,.tt-window.theme-light .lr.bid.empty .lv{background:#f1f3f7}
.tt-window.theme-light .lr.grid .lp,.tt-window.theme-light .lr.grid .lv,.tt-window.theme-light .lr.grid .lo{box-shadow:inset 0 1px 0 #d5dae3}
.tt-window.theme-light .tt-btn{background:#eef0f5;border-color:#d5dae3;color:#1b1f27}
.tt-window.theme-light .tt-btn.buy{background:var(--bid-best);border-color:var(--bid-best);color:#fff}.tt-window.theme-light .tt-btn.sell{background:var(--ask-best);border-color:var(--ask-best);color:#fff}
.tt-window.theme-light .tt-btn.buy.soft{background:rgba(47,111,224,.18);color:#1b3f8f}.tt-window.theme-light .tt-btn.sell.soft{background:rgba(224,51,90,.16);color:#8f1b36}
.tt-window.theme-light .tt-btn.close{background:var(--pos);color:#fff}
.tt-window.theme-light .tt-pos div,.tt-window.theme-light .tt-pnl,.tt-window.theme-light .tt-sel{background:#eef0f5;border-color:#d5dae3;color:#1b1f27}
.tt-window.theme-light .tt-hint{color:#6b7280;border-color:#dfe3ea}.tt-window.theme-light .tt-hint b{color:#1b1f27}
.tt-window.theme-light .tt-lens{background:rgba(255,255,255,.95);color:#111}.tt-window.theme-light .tt-lens b{color:#111}
.tt-window.theme-light .tt-player{background:#fff;color:#374151}.tt-window.theme-light .tt-player b{color:#111}
/* окно «Параметры стакана» */
.tt-settings{font-family:var(--tt-font)}
.tt-settings .tt-head{height:34px}
.tt-settings .stabs{display:flex;gap:2px;padding:6px 8px 0;background:var(--tt-panel);border-bottom:1px solid var(--tt-line)}
.tt-settings .stab{background:transparent;border:0;border-bottom:2px solid transparent;color:#8f96a3;font-family:inherit;font-size:11.5px;font-weight:600;padding:6px 10px;cursor:pointer;transition:color .12s}
.tt-settings .stab:hover{color:#fff}
.tt-settings .stab.on{color:#fff;border-bottom-color:var(--flt)}
.tt-settings .stab.has:not(.on){color:var(--yellow)}
.tt-settings .sbody{max-height:396px;overflow:auto;padding:4px 0 6px;background:#101216}
.tt-settings .sg-title{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#6f7683;font-weight:700;padding:10px 12px 4px}
.tt-settings .srow{display:grid;grid-template-columns:1fr 128px;align-items:center;gap:10px;padding:6px 12px;border-top:1px solid #15181e;transition:background .2s}
.tt-settings .srow.hl{background:rgba(243,187,46,.10);box-shadow:inset 3px 0 0 var(--yellow);animation:srowpulse 1.2s ease-in-out infinite alternate}
@keyframes srowpulse{from{background:rgba(243,187,46,.06)}to{background:rgba(243,187,46,.16)}}
.tt-settings .slabel{font-size:11.5px;color:#dfe3ea;line-height:1.3}
.tt-settings .slabel small{display:block;color:#6f7683;font-size:10px;margin-top:1px}
.tt-settings .num{display:flex;align-items:stretch;border:1px solid #2d333d;border-radius:6px;overflow:hidden;background:#1c2027}
.tt-settings .num button{background:#252a33;border:0;color:#fff;width:24px;cursor:pointer;font-size:14px;line-height:1;padding:0;transition:background .12s}
.tt-settings .num button:hover{background:#333a45}
.tt-settings .num input{width:100%;min-width:0;background:transparent;border:0;color:#fff;font-family:inherit;font-size:11.5px;text-align:center;outline:none;padding:4px 2px;-moz-appearance:textfield}
.tt-settings .num input::-webkit-outer-spin-button,.tt-settings .num input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.tt-settings select{width:100%;background:#1c2027;border:1px solid #2d333d;border-radius:6px;color:#fff;font-family:inherit;font-size:11.5px;padding:5px 6px;outline:none;cursor:pointer}
.tt-settings select:focus{border-color:var(--flt)}
.tt-settings .tg{display:flex;justify-content:flex-end;cursor:pointer}
.tt-settings .tg input{display:none}
.tt-settings .tg i{width:36px;height:20px;border-radius:10px;background:#2d333d;position:relative;transition:background .15s;display:block}
.tt-settings .tg i::after{content:"";position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#fff;transition:left .15s}
.tt-settings .tg input:checked+i{background:var(--pos)}.tt-settings .tg input:checked+i::after{left:19px}
.tt-settings .rng{display:flex;align-items:center;gap:8px}
.tt-settings .rng input{flex:1;min-width:0;accent-color:var(--flt);cursor:pointer}
.tt-settings .rng b{width:18px;text-align:right;color:#fff;font-size:11.5px}
.tt-settings .sfoot{display:flex;gap:6px;align-items:center;padding:8px 10px;border-top:1px solid var(--tt-line);background:var(--tt-panel)}
.tt-settings .sfoot .spacer{flex:1}
/* мини-карточка «как это выглядит в продукте» в теории */
.miniui{min-width:300px;max-width:380px;background:var(--surface2);border:1px solid var(--line2);border-radius:18px;overflow:hidden;font-family:var(--font);font-size:13px;color:var(--text)}
.miniui .mt{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line);font-family:var(--head);font-weight:800;font-size:13.5px;line-height:1.3}
.miniui .mi{width:28px;height:28px;border-radius:9px;background:var(--orange-soft);color:var(--orange2);display:inline-flex;align-items:center;justify-content:center;flex:none}
.miniui .mi .ico{width:14px;height:14px}
.miniui .mr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:14px;padding:9px 16px;border-bottom:1px solid var(--line);align-items:start}
.miniui .mr:last-of-type{border-bottom:0}
.miniui dt{margin:0;color:var(--muted);font-size:12.5px;line-height:1.4}
.miniui dd{margin:0;color:#fff;font-weight:500;font-size:12.5px;line-height:1.4;overflow-wrap:anywhere}
.miniui .note{display:flex;gap:8px;align-items:flex-start;padding:10px 16px;font-size:12px;line-height:1.45;color:var(--muted);background:rgba(255,106,26,.06);border-top:1px solid var(--line)}
.miniui .note .ico{width:14px;height:14px;color:var(--orange2);flex:none;margin-top:2px}
/* вкладка «Терминал» в базе знаний: профили и горячие клавиши */
.profiles{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}
@media (max-width:1000px){.profiles{grid-template-columns:1fr}}
.profile{background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:20px 22px 18px;display:flex;flex-direction:column}
.profile .ph{display:grid;grid-template-columns:44px 1fr;column-gap:14px;align-items:center;padding-bottom:16px;margin-bottom:4px;border-bottom:1px solid var(--line2)}
.profile .si{width:44px;height:44px;border-radius:14px;background:var(--orange-soft);color:var(--orange2);display:inline-flex;align-items:center;justify-content:center;flex:none}
.profile .si .ico{width:20px;height:20px}
.profile .ph > div{min-height:57px;display:flex;flex-direction:column;justify-content:center}
.profile .ph b{display:block;font-family:var(--head);font-size:17px;font-weight:800;line-height:1.2}
.profile .ph small{display:block;color:var(--muted);font-size:12.5px;line-height:1.35;margin-top:3px}
.profile .pi{display:block;padding:11px 0;border-bottom:1px solid var(--line)}
.profile .pi:last-of-type{border-bottom:0}
.profile .pi b{display:block;color:var(--orange2);font-weight:700;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}
.profile .pi span{display:block;font-size:12.5px;line-height:1.5;color:#dcd9e8}
.profile .sf{margin-top:auto;padding-top:14px}
.profile .pi span{color:#dcd9e8}
.hotkeys{background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:8px 10px}
.hotkeys h3{margin:8px 12px 6px;font-size:15px;font-weight:800;display:flex;align-items:center;gap:8px}
.hotkeys h3 .ico{color:var(--orange2)}
.hotkeys table{width:100%;border-collapse:collapse;font-size:13px}
.hotkeys td{padding:8px 12px;border-top:1px solid var(--line)}
.hotkeys td:first-child{width:48%}
.hotkeys kbd{display:inline-block;background:rgba(255,255,255,.07);border:1px solid var(--line2);border-bottom-width:2px;border-radius:7px;padding:2px 9px;font-family:var(--font);font-weight:600;font-size:12px;color:#fff}
.hotkeys kbd.na{color:var(--dim);font-weight:500;border-style:dashed}
.hotkeys td.w{color:var(--dim);font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;text-align:right}


/* ==========================================================================
   Главная панель стакана как в tiger.com, верхняя панель терминала, меню виджетов
   ========================================================================== */
.tt-topbar{display:flex;align-items:center;gap:6px;height:32px;padding:0 10px;margin-bottom:8px;background:var(--tt-panel);border:1px solid var(--tt-line2);border-radius:10px;font-family:var(--tt-font);font-size:11.5px;color:#aab1bd}
.tt-topbar .spacer{flex:1}
.tt-topbar .tb-w{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:7px;background:transparent;border:1px solid transparent;color:#c9cfd9;font-family:inherit;font-size:11.5px;white-space:nowrap}
.tt-topbar .tb-w b{color:#fff;font-weight:600}
.tt-topbar .tb-w b.pos{color:#3ddc84}.tt-topbar .tb-w b.neg{color:#ff6b83}
.tt-topbar .tb-w svg{width:13px;height:13px;color:#8f96a3}
.tt-topbar .tb-mode{cursor:pointer;background:#20252d;border-color:#2d333d;transition:filter .12s}
.tt-topbar .tb-mode:hover{filter:brightness(1.15)}
.tt-topbar .dot{width:8px;height:8px;border-radius:50%;background:#8f96a3;display:inline-block}
.tt-topbar .tb-mode.real .dot{background:#ff4d6a}.tt-topbar .tb-mode.real span{color:#ff8fa3}
.tt-topbar .tb-mode.sim .dot{background:#31c46a}.tt-topbar .tb-mode.sim span{color:#5fe08f}
.tt-topbar .tb-mode.player .dot{background:#c77dff}.tt-topbar .tb-mode.player span{color:#d9a5ff}
.tt-topbar .tb-conn .dot.on{background:#31c46a;box-shadow:0 0 6px rgba(49,196,106,.7)}
.tt-ib{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 6px;border-radius:6px;background:transparent;border:1px solid transparent;color:#8f96a3;font-family:inherit;font-size:11px;cursor:pointer;white-space:nowrap;transition:background .12s,color .12s}
.tt-ib svg{width:13px;height:13px}
.tt-ib:hover{background:#252a33;color:#fff}
.tt-ib.on{color:#dfe3ea;background:#1c2027;border-color:#2d333d}
.tt-ib.lbl{cursor:default;color:#8f96a3}.tt-ib.lbl b{color:#fff;font-weight:600}
.tt-head .grp{display:inline-flex;gap:1px;background:#12151b;border:1px solid var(--tt-line);border-radius:7px;padding:1px}
.tt-head .grp .tt-ib{height:22px;border-radius:5px}
.tt-scale{display:inline-flex;align-items:center;gap:2px;height:24px;padding:0 4px 0 7px;border-radius:6px;background:#1c2027;border:1px solid #2d333d;color:#c9cfd9;font-size:11px;font-weight:600}
.tt-scale select{background:transparent;border:0;color:#fff;font-family:inherit;font-size:11.5px;font-weight:600;outline:none;cursor:pointer;padding:0 2px}
.tt-scale select option{background:#1c2027}
.tt-lnk{width:22px;height:22px;border-radius:5px;border:1px solid #333a45;background:#1c2027;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0}
.tt-lnk i{width:10px;height:10px;border-radius:2px;background:#4b5361;display:block}
.tt-lnk.c1 i{background:var(--orange)}.tt-lnk.c2 i{background:#4c8dff}.tt-lnk.c3 i{background:#a97cf5}
.tt-lnk:hover{border-color:#fff}
.tt-pop{position:absolute;z-index:20;min-width:186px;background:#1c2027;border:1px solid #333a45;border-radius:10px;padding:4px;box-shadow:0 16px 40px rgba(0,0,0,.6);animation:pop .15s}
.tt-pop .pi{display:grid;grid-template-columns:14px 1fr;gap:2px 8px;align-items:center;width:100%;text-align:left;background:transparent;border:0;border-radius:7px;padding:6px 8px;color:#fff;font-family:inherit;font-size:11.5px;cursor:pointer}
.tt-pop .pi:hover{background:#252a33}
.tt-pop .pi.on{background:rgba(255,159,26,.12);color:var(--flt)}
.tt-pop .pi small{grid-column:2;color:#6f7683;font-size:10px}
.tt-pop .pi .sw{width:10px;height:10px;border-radius:2px;background:#4b5361;display:inline-block}
.tt-pop .pi .sw.c1{background:var(--orange)}.tt-pop .pi .sw.c2{background:#4c8dff}.tt-pop .pi .sw.c3{background:#a97cf5}
.tt-pop .pi .dot{width:8px;height:8px;border-radius:50%;display:inline-block;background:#8f96a3}
.tt-pop .pi .dot.real{background:#ff4d6a}.tt-pop .pi .dot.sim{background:#31c46a}.tt-pop .pi .dot.player{background:#c77dff}
/* скрытие панелей окна */
.tt-dom.no-info .tt-info{display:none}
.tt-dom.no-graph .tt-graph{display:none}
.tt-dom.no-cluster .tt-cluster{display:none}
.tt-dom.no-cluster .tt-prints,.tt-dom.no-cluster .tt-time{left:0!important}
.tt-dom.no-info .tt-body{grid-template-columns:minmax(200px,1fr) 196px 176px}
.tt-dom.no-graph .tt-body{grid-template-columns:140px minmax(196px,1fr) 176px}
.tt-dom.no-info.no-graph .tt-body{grid-template-columns:minmax(196px,1fr) 176px}
.lr .lo.trig{color:#c77dff;box-shadow:inset 0 0 0 1px #c77dff;cursor:pointer}
/* окна настроек: переключатель окон, статичные значения, путь в терминале */
.tt-settings .sdlg{background:#1c2027;border:1px solid #2d333d;border-radius:7px;color:#c9cfd9;font-family:inherit;font-size:11px;padding:3px 6px;outline:none;cursor:pointer;max-width:170px}
.tt-settings .stat{display:block;text-align:right;color:#8f96a3;font-size:11px;font-variant-numeric:tabular-nums}
.tt-settings .sfoot .path{font-size:10px;color:#6f7683;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.tt-settings.flash{box-shadow:0 0 0 3px rgba(243,187,46,.6),0 30px 80px rgba(0,0,0,.55);transition:box-shadow .3s}

/* ==========================================================================
   Главная: быстрый старт, карточки курсов, этапы дорожки, свёрнутые достижения
   ========================================================================== */
.sec-h{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:0 0 14px;flex-wrap:wrap}
.sec-h h2{margin:0;font-size:22px;font-weight:800}
.sec-h p{margin:4px 0 0;color:var(--muted);font-size:13px;max-width:720px}
.qs{margin:0 0 44px;background:linear-gradient(135deg,rgba(229,113,255,.12),rgba(255,137,55,.06)),var(--panel);border:1px solid rgba(229,113,255,.28);border-radius:24px;padding:22px 24px}
.qs-h{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.qs-h .ci{width:44px;height:44px;border-radius:14px;background:var(--grad);color:#fff;display:inline-flex;align-items:center;justify-content:center;flex:none}
.qs-h .ci .ico{width:20px;height:20px}
.qs-h > div{flex:1;min-width:260px}
.qs-h b{display:block;font-family:var(--head);font-size:19px;font-weight:800;line-height:1.2}
.qs-h p{margin:4px 0 0;color:var(--muted);font-size:13.5px;max-width:640px}
.qs-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}
@media (max-width:900px){.qs-steps{grid-template-columns:1fr}}
.qs-step{display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.05);border:1px solid var(--line2);border-radius:14px;padding:12px 14px;cursor:pointer;transition:border-color .15s,background .15s}
.qs-step:hover{border-color:var(--orange);background:rgba(255,106,26,.08)}
.qs-step.locked{cursor:default;opacity:.6}
.qs-step .n{width:30px;height:30px;border-radius:9px;background:#fff;color:#111;display:inline-flex;align-items:center;justify-content:center;font-family:var(--head);font-weight:800;flex:none}
.qs-step.locked .n{background:rgba(255,255,255,.12);color:var(--muted)}
.qs-step > div{flex:1;min-width:0}
.qs-step b{display:block;font-size:13.5px;line-height:1.25}
.qs-step small{color:var(--muted);font-size:11.5px}
.qs-step > .ico{color:var(--muted)}
.ccards{display:grid;grid-template-columns:repeat(auto-fit,minmax(248px,1fr));gap:14px;margin-bottom:22px}
@media (max-width:1000px){.ccards{grid-template-columns:repeat(2,1fr)}}
.ccard{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;gap:0 16px;align-items:center;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:16px 18px;color:#fff;font-family:inherit;cursor:pointer;min-height:104px;transition:border-color .15s,transform .15s,background .15s}
.ccard:hover{transform:translateY(-2px)}
.ccard.on{border-color:var(--orange);background:linear-gradient(135deg,rgba(255,106,26,.12),transparent),var(--panel)}
.ccard .cico{width:54px;height:54px;border-radius:16px;background:linear-gradient(140deg,#4b8cff,#2f5bff);color:#fff;display:inline-flex;align-items:center;justify-content:center;grid-column:1;grid-row:1/3;align-self:center;box-shadow:0 8px 20px rgba(0,0,0,.25)}
.ccard .ct{grid-column:2;grid-row:1;min-width:0;align-self:end}
.ccard .ct b{display:block;font-family:var(--head);font-size:14.5px;font-weight:800;line-height:1.25;margin-bottom:5px;text-wrap:balance}
.ccard .ct small{display:block;color:var(--muted);font-size:11.5px;line-height:1.35;white-space:nowrap}
.ccard .cico .ico{width:24px;height:24px}
.ccard.all .cico{background:rgba(49,196,106,.14);color:var(--ok)}
.ccard .cnt{font-family:var(--head);font-weight:800;font-size:13px;color:var(--muted);grid-column:3;grid-row:1;align-self:start;white-space:nowrap;padding-top:2px}
.ccard.all .cnt{color:var(--ok)}.ccard.all .cnt .ico{width:18px;height:18px}
.ccard .cb{grid-column:2/4;grid-row:2;height:5px;border-radius:3px;background:rgba(255,255,255,.08);overflow:hidden;margin-top:8px;align-self:start}
.ccard .cb i{display:block;height:100%;background:var(--grad)}
.ccard[data-c="chart"] .cico{background:linear-gradient(140deg,#35c98b,#1f9e6a)}
.ccard[data-c="illiquid"] .cico{background:linear-gradient(140deg,#ff9a5c,#ff5f7a)}
.ccard[data-c="terminal"] .cico{background:linear-gradient(140deg,#b07cff,#7b4dff)}
.ccard[data-c="products"] .cico{background:linear-gradient(140deg,#e571ff,#ff8937)}
.course{margin-bottom:34px}
.stage-blk{margin-top:14px;padding:12px 14px 6px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.02)}
.stage-blk.done{border-color:rgba(49,196,106,.25)}
.stage-h{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.stage-h small{font-size:10.5px;color:var(--orange2);text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.stage-blk.done .stage-h small{color:var(--ok)}
.stage-h b{font-family:var(--head);font-size:15px;font-weight:800}
.stage-h span{font-size:12px;color:var(--muted)}
.road.stg{justify-content:flex-start;gap:14px;padding-top:22px}
.road.stg::before{display:none}
/* отрезок пунктира от правого края кружка до левого края следующего: 120 ширина узла + 14 зазор − 64 кружок */
.road.stg .node:not(:last-child)::after{content:"";position:absolute;top:31px;left:92px;width:70px;border-top:2px dashed rgba(255,255,255,.12);transform-origin:left center;pointer-events:none}
@media (max-width:1100px){.road.stg .node::after{display:none}}
.road.stg.single::before{display:none}


/* ==========================================================================
   Курс «Продукты Tiger.com»: текстовые поля, кнопки-действия, сгенерированные ключи, таблица скринера
   ========================================================================== */
.tt-settings .txt{width:100%;min-width:0;background:#1c2027;border:1px solid #2d333d;border-radius:6px;color:#fff;font-family:inherit;font-size:11.5px;padding:5px 8px;outline:none}
.tt-settings .txt:focus{border-color:var(--flt)}
.tt-settings .txt::placeholder{color:#5c6472}
.tt-settings .tt-tb.act{width:100%;justify-content:center;padding:6px 8px}
.tt-settings .srow.genrow .sctl{max-width:100%}
.tt-settings .gen{display:block;font-family:"JetBrains Mono","Menlo",monospace;font-size:10.5px;color:var(--flt);word-break:break-all;background:#12151b;border:1px dashed #333a45;border-radius:6px;padding:5px 8px;text-align:left}
.tt-settings .gen.empty{color:#5c6472;border-style:solid;text-align:right}
.tt-settings .srow.wide{display:block;padding:4px 8px}
.tt-settings .scr{overflow-x:auto}
.tt-settings .scr table{width:100%;border-collapse:collapse;font-size:11px}
.tt-settings .scr th{text-align:right;font-size:10px;color:#8f96a3;font-weight:600;padding:6px 6px;border-bottom:1px solid var(--tt-line);white-space:nowrap;cursor:pointer;user-select:none}
.tt-settings .scr th:first-child{text-align:left}
.tt-settings .scr th:hover{color:#fff}
.tt-settings .scr td{padding:5px 6px;border-bottom:1px solid #15181e;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.tt-settings .scr td.tk{text-align:left}
.tt-settings .scr td.tk b{display:block;color:#fff;font-weight:600}
.tt-settings .scr td.tk small{color:#6f7683;font-size:9.5px}
.tt-settings .scr td.none{text-align:center;color:#6f7683;padding:14px}
.tt-settings .scr .up{color:#3ddc84}.tt-settings .scr .dn{color:#ff6b83}
.tt-settings .scr .tt-tb.sm{padding:2px 6px}
.tt-settings .scr .tt-tb.sm svg{margin:0}
.tt-topbar .tb-conn .dot.off{background:#5c6472;box-shadow:none}
.tt-topbar .tb-conn .dot.err{background:#ff4d6a;box-shadow:0 0 6px rgba(255,77,106,.7)}
.tt-topbar .tb-conn .dot.view{background:#4c8dff;box-shadow:0 0 6px rgba(76,141,255,.7)}
.tt-topbar .tb-conn .dot.on.orange{background:var(--orange);box-shadow:0 0 6px rgba(255,106,26,.7)}
.tt-topbar .tb-conn .dot.on.blue{background:#4c8dff;box-shadow:0 0 6px rgba(76,141,255,.7)}
.tt-topbar .tb-conn .dot.on.purple{background:#a97cf5;box-shadow:0 0 6px rgba(169,124,245,.7)}
.tt-topbar .tb-conn.err span{color:#ff8fa3}.tt-topbar .tb-conn.off span{color:#8f96a3}

/* ==========================================================================
   Экраны продуктов Tiger.com (кабинет брокера account.tiger.com, терминал 7.x, веб-скринер) — все правила ограничены .scr-root
   ========================================================================== */
.scr-root{font-family:"Mulish","Inter",sans-serif;font-size:13.5px;color:#e9e8f2}
.scr-root .hl{box-shadow:0 0 0 2px #ff9f43,0 0 0 6px rgba(255,159,67,.22),0 0 22px rgba(255,159,67,.35)!important;border-radius:10px;position:relative;z-index:2;animation:hlpulse 1.1s ease-in-out infinite alternate}
@keyframes hlpulse{from{box-shadow:0 0 0 2px #ff9f43,0 0 0 4px rgba(255,159,67,.16),0 0 14px rgba(255,159,67,.3)}to{box-shadow:0 0 0 2px #ffb454,0 0 0 8px rgba(255,159,67,.26),0 0 26px rgba(255,159,67,.5)}}
/* цель внутри контейнера с overflow (лента меню, прокручиваемый список): свечение наружу обрезалось бы — обводка внутри элемента */
.scr-root .hl.hl-in{box-shadow:inset 0 0 0 2px #ff9f43,inset 0 0 14px rgba(255,159,67,.28)!important;background-color:rgba(255,159,67,.1);border-radius:8px;animation:hlpulseIn 1.1s ease-in-out infinite alternate}
/* кнопка панели стакана, которую нужно нажать в текущем задании (DomSim.markTarget) — та же пульсирующая обводка, что на экранах кабинета */
.tgt-hl{box-shadow:0 0 0 2px #ff9f43,0 0 0 5px rgba(255,159,67,.2),0 0 16px rgba(255,159,67,.35)!important;border-radius:7px;position:relative;z-index:3;animation:hlpulse 1.1s ease-in-out infinite alternate}
@media (prefers-reduced-motion:reduce){.tgt-hl{animation:none}}
@keyframes hlpulseIn{from{background-color:rgba(255,159,67,.06)}to{background-color:rgba(255,159,67,.2)}}
.scr-root .ctg.hl,.scr-root .ctg.hl.hl-in{border-radius:999px}
.scr-root .ava.hl,.scr-root .ava.hl.hl-in{border-radius:50%}
.scr-root .ci.hl{box-shadow:none!important;animation:none;border-bottom:2px solid #ff9f43;background:linear-gradient(0deg,rgba(255,159,67,.14),transparent 70%);border-radius:6px 6px 0 0}
.scr-root .lic-h.hl,.scr-root .crow.hl,.scr-root .cchk.hl{border-radius:14px}
.scr-root .c6w .hl{box-shadow:none!important;animation:none}
.scr-root .c6w:has(.hl) i{border-color:#ff9f43;box-shadow:0 0 12px rgba(255,159,67,.35)}
.scr-root .scr-none{padding:40px;color:var(--muted)}
.scr-root .cab{background:#0b0b12;border:1px solid #23222f;border-radius:14px;overflow:hidden;min-height:820px;display:flex;flex-direction:column;position:relative;box-shadow:0 30px 80px rgba(0,0,0,.55)}
.scr-root .cab-url{display:flex;align-items:center;gap:8px;height:30px;padding:0 12px;background:#1b1b24;color:#9a99ad;font-size:11.5px;border-bottom:1px solid #2a2937}
.scr-root .cab-url i{width:10px;height:10px;border-radius:50%;background:#4b4a5a}
.scr-root .cab-url span{background:#0f0f16;border-radius:7px;padding:3px 10px;flex:1}
/* шапка кабинета — как на account.tiger.com: логотип × биржа, меню в одну строку (серое, текущий пункт — белый жирный,
   BETA — фиолетовая плашка), справа аватар с кольцом и короной, загрузка, колокольчик с точкой, язык — тёмные квадраты */
.scr-root .cab-nav{display:flex;align-items:center;gap:14px;padding:12px 18px;position:relative;border-bottom:1px solid #15151e}
.scr-root .cab-nav .logo{display:inline-flex;align-items:center;gap:7px;font-weight:800;font-size:17px;color:#fff;flex:none}
.scr-root .cab-nav .logo svg{width:22px;height:22px}
.scr-root .cab-nav .logo b{color:#fff;font-weight:400;margin-left:4px}
.scr-root .exsw{display:inline-flex;align-items:center;gap:8px;background:#17171f;border:0;border-radius:12px;padding:9px 13px;color:#fff;font-family:inherit;font-weight:600;font-size:13px;cursor:pointer;flex:none}
.scr-root .chev{width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-left:4px;display:inline-block;opacity:.7}
.scr-root .exi{width:18px;height:18px;border-radius:50%;display:inline-block;flex:none;background:#333;position:relative}
.scr-root .exi.b{background:#f3ba2f}
.scr-root .exi.x{background:linear-gradient(135deg,#ff6a1a,#ff5fa2)}
.scr-root .exi.y{background:#f7a600}
.scr-root .exi.h{background:#4de2b7}
.scr-root .exi.o{background:#fff}
.scr-root .exi.g{background:#1da2b4}
.scr-root .exi.t{background:#2354e6}
.scr-root .exi.bk{background:linear-gradient(135deg,#f96bff,#ff7a3d)}
.scr-root .exi.m{background:#1877f2}
.scr-root .exi.r{background:#ef3b3b}
.scr-root .exi.u{background:#0a3aa6}
.scr-root .exi.a{background:#f4c542}
.scr-root .exi.l{background:#111}
.scr-root .exi.k{background:#24ae8f}
.scr-root .exi.bx{background:#2b6bff}
.scr-root .exi.ht{background:#1b8dfb}
.scr-root .exi.kr{background:#5741d9}
.scr-root .exi.c{background:#1652f0}
.scr-root .exi.w{background:#f1c40f}
.scr-root .exi.xt{background:#3dbb4c}
.scr-root .exi.big{width:56px;height:56px;border-radius:16px}
.scr-root .cab-nav nav{display:flex;align-items:center;gap:16px;margin:0 0 0 8px;font-size:13px;font-weight:500;white-space:nowrap;overflow-x:auto;min-width:0;flex:1 1 auto;scrollbar-width:none;padding:2px 0}
.scr-root .cab-nav nav::-webkit-scrollbar{display:none}
/* меню кабинета прокручивается по горизонтали (пунктов больше, чем влезает): затухание у края вместо слова, обрезанного посередине */
.scr-root .cab-nav nav{-webkit-mask-image:linear-gradient(90deg,#000 86%,transparent);mask-image:linear-gradient(90deg,#000 86%,transparent)}
.scr-root .cab-nav nav a{cursor:pointer;display:inline-flex;align-items:center;gap:7px;padding:4px 0;border-radius:6px;color:#9e9db2;text-decoration:none;transition:color .15s}
.scr-root .cab-nav nav a:hover{color:#fff}
.scr-root .cab-nav nav a.on{color:#fff;font-weight:700}
.scr-root .cab-nav nav em{font-style:normal;font-size:10px;background:#6a3fe3;color:#fff;border-radius:7px;padding:3px 7px;font-weight:700;letter-spacing:.02em}
.scr-root .cab-nav .right{margin-left:auto;display:inline-flex;align-items:center;gap:10px;flex:none}
.scr-root .cab-nav .ava{width:40px;height:40px;border:2px solid transparent;background:radial-gradient(circle at 42% 36%,#7a7a92,#262634 70%) padding-box,linear-gradient(135deg,#ff7ad9,#ff9f43) border-box}
.scr-root .cab-nav .ava .crown{left:-5px;top:auto;bottom:-4px;width:17px;height:17px;border-radius:6px;background:linear-gradient(135deg,#c65cff,#ff5fa2);border:2px solid #0b0b12}
.scr-root .cab-nav .ic{width:40px;height:40px;border-radius:12px;background:#17171f;color:#e9e8f2;font-size:12px}
.scr-root .ava{width:34px;height:34px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#6a6a80,#1e1e2a);border:2px solid #ff5fa2;position:relative;cursor:pointer;padding:0;display:inline-block}
.scr-root .ava .crown{position:absolute;left:-6px;top:-4px;width:16px;height:16px;border-radius:50%;background:linear-gradient(135deg,#ffb454,#ff5fa2);border:2px solid #0b0b12}
.scr-root .ava.sm{width:36px;height:36px;border-color:#2b2a3a}
.scr-root .ava.xl{width:100px;height:100px;border-color:#ff5fa2;display:block;margin-bottom:14px}
.scr-root .ic{width:34px;height:34px;border-radius:10px;background:#16161f;display:inline-flex;align-items:center;justify-content:center;color:#c9c8d6;font-size:11px;font-weight:700;position:relative}
.scr-root .ic.bell i,.scr-root .ic.dl::before{content:"";width:18px;height:18px;background:#e9e8f2;-webkit-mask:var(--ico) center/contain no-repeat;mask:var(--ico) center/contain no-repeat}
.scr-root .ic.bell i{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 16v-5a6 6 0 0 1 12 0v5l1.5 2h-15z'/%3E%3Cpath d='M10 20.5a2 2 0 0 0 4 0'/%3E%3C/svg%3E")}
.scr-root .ic.dl::before{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v11M7.5 10.5 12 15l4.5-4.5M5 19.5h14'/%3E%3C/svg%3E")}
.scr-root .ic.bell::after{content:"";position:absolute;top:8px;right:9px;width:7px;height:7px;border-radius:50%;background:#ff4d4f;box-shadow:0 0 0 2px #17171f}
/* узкий кабинет (урок на небольшом экране): меню и кнопки чуть плотнее, чтобы шапка помещалась в строку */
.scr-root .cab{container-type:inline-size}
@container (max-width:1080px){.scr-root .cab-nav nav{gap:14px;font-size:12.5px;margin-left:4px}.scr-root .cab-nav .ic,.scr-root .cab-nav .ava{width:34px;height:34px}.scr-root .cab-nav .right{gap:7px}.scr-root .cab-nav .logo{font-size:15px}}
.scr-root .cmenu{position:absolute;top:58px;z-index:30;background:#12121a;border:1px solid #2b2a3a;border-radius:16px;padding:8px;box-shadow:0 20px 50px rgba(0,0,0,.6);animation:pop .15s}
.scr-root .cmenu button{display:flex;align-items:center;gap:10px;width:100%;background:transparent;border:0;color:#e9e8f2;font-family:inherit;font-size:12.5px;font-weight:600;padding:9px 12px;border-radius:9px;cursor:pointer;text-align:left}
.scr-root .cmenu button:hover{background:#1c1c28}
.scr-root .cmenu button.on{border:1px solid #b05cff}
.scr-root .cmenu button em{font-style:normal;font-size:9px;background:linear-gradient(90deg,#b05cff,#ff5fa2);color:#fff;border-radius:6px;padding:2px 6px;margin-left:auto}
.scr-root .cmenu.exm{left:150px;width:200px}
.scr-root .cmenu.prof{right:18px;width:280px;padding:12px}
.scr-root .cmenu.prof .ph{display:flex;gap:10px;align-items:center;margin-bottom:8px}
.scr-root .cmenu.prof .ph small{display:block;color:#5fe08f;font-size:10px;background:rgba(49,196,106,.12);border-radius:5px;padding:1px 6px;width:fit-content}
.scr-root .cmenu.prof .ph b{font-size:12.5px}
.scr-root .cmenu.prof .pv{padding:6px 0 10px;border-bottom:1px solid #2b2a3a;margin-bottom:6px}
.scr-root .cmenu.prof .pv small{display:block;color:#8a89a0;font-size:11px;margin-top:6px}
.scr-root .cmenu.prof .pv b{display:block;font-size:12.5px}
.scr-root .cmenu.prof .pv b.pk{color:#ff9f43}
.scr-root .cmenu.prof .out{color:#fff;border-top:1px solid #2b2a3a;border-radius:0;margin-top:6px;padding-top:12px}
.scr-root .cab-main{padding:10px 18px 20px;flex:1}
.scr-root .cab-foot{display:flex;gap:22px;padding:14px 18px;font-size:11px;color:#6d6c80;border-top:1px solid #1c1b27;flex-wrap:wrap}
.scr-root .cab-foot .help{margin-left:auto;background:#14141d;border-radius:9px;padding:6px 12px}
.scr-root .cab-foot .help b{color:#e9e8f2;font-weight:500}
.scr-root .cab h1{margin:6px 0 10px;font-size:26px;font-weight:800;letter-spacing:-.02em}
.scr-root .cab h3{margin:16px 0 8px;font-size:17px;font-weight:800}
.scr-root .cab .muted{color:#8a89a0}
.scr-root .cab .ok{color:#5fe08f}
.scr-root .cab .bad{color:#ff6b83}
.scr-root .cab .neg{color:#ff7a5c}
.scr-root .cab .pos{color:#5fe08f}
.scr-root .cab .pink{color:#ff7ad9}
.scr-root .grad-t{background:linear-gradient(90deg,#ff7ad9,#ff9f43);-webkit-background-clip:text;background-clip:text;color:transparent}
.scr-root .two{display:grid;grid-template-columns:300px 1fr;gap:22px;align-items:start}
.scr-root .two.prof{grid-template-columns:270px 1fr}
.scr-root .lcol small, .scr-root .mcol > small, .scr-root .mcol small.sec{display:block;color:#8a89a0;font-size:11.5px;margin:12px 0 6px}
.scr-root .lcol .big{font-size:36px;font-weight:800;color:#fff;margin:0 0 10px}
.scr-root .lcol .big b{background:linear-gradient(90deg,#ff7ad9,#ff9f43);-webkit-background-clip:text;background-clip:text;color:transparent}
.scr-root .lcol .big small{font-size:12px;color:#8a89a0;margin:0}
.scr-root .kv{display:flex;justify-content:space-between;align-items:baseline;padding:8px 0;font-size:12.5px;color:#8a89a0}
.scr-root .kv b{color:#fff;font-size:13px}
.scr-root .kv b small{color:#8a89a0;font-weight:400}
.scr-root .ccard{background:#14141d;border:1px solid #1f1e2b;border-radius:14px;padding:14px 16px;margin:10px 0}
.scr-root .ccard b{display:block}
.scr-root .ccard p{margin:6px 0;color:#8a89a0;font-size:12.5px}
.scr-root .ccard.vip{border-color:#ff9f43}
.scr-root .ccard.assets .as{display:grid;grid-template-columns:22px 1fr auto;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid #1f1e2b}
.scr-root .ccard.assets .as:last-of-type{border:0}
.scr-root .ccard.assets .coin{width:18px;height:18px;border-radius:50%;background:#26a17b}
.scr-root .coin.gram{background:#2f6fe0}
.scr-root .coin.pengu{background:#ff5fa2}
.scr-root .ccard.assets a{display:block;text-align:center;margin-top:6px;font-size:12px}
.scr-root .cbtn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid transparent;border-radius:11px;padding:9px 16px;font-family:inherit;font-size:12.5px;font-weight:700;cursor:pointer;color:#fff;background:#1e1e2a;transition:filter .12s}
.scr-root .cbtn:hover{filter:brightness(1.15)}
.scr-root .cbtn.grad{background:linear-gradient(90deg,#c65cff,#ff5fa2 50%,#ff9f43);color:#fff}
.scr-root .cbtn.light{background:#fff;color:#111}
.scr-root .cbtn.ghost{background:#1a1a24;border-color:#2b2a3a}
.scr-root .cbtn.wide{width:100%;margin-top:8px}
.scr-root .cbtn.dis{opacity:.45;cursor:not-allowed}
.scr-root .cbtn.x{width:30px;height:30px;padding:0;border-radius:8px;background:#1e1e2a}
.scr-root .cbtn.orange{background:#f5761a;color:#fff}
.scr-root .cbtn.primary{background:#f5761a;color:#fff}
.scr-root .htabs{display:flex;align-items:center;gap:20px;margin:6px 0 14px}
.scr-root .htabs b{font-size:24px;font-weight:800;color:#4b4a5a;cursor:pointer;white-space:nowrap}
.scr-root .htabs b.on{color:#fff}
.scr-root .sp{flex:1}
.scr-root .big2{font-size:32px;font-weight:800}
.scr-root .big2 small{font-size:14px;color:#8a89a0}
.scr-root .empty-ill{border:1px dashed #2b2a3a;border-radius:16px;padding:40px 20px;text-align:center;color:#4b4a5a;margin-top:10px}
.scr-root .empty-ill.big{padding:80px 20px}
.scr-root .empty-ill h1 em{font-style:normal;font-size:11px;background:linear-gradient(90deg,#b05cff,#ff5fa2);border-radius:6px;padding:2px 8px;vertical-align:middle}
.scr-root .ph2{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:10px}
.scr-root .ph2 .cpill{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;background:#14141d;border-radius:14px;padding:8px 14px;color:#8a89a0;font-size:12px}
.scr-root .ph2 .cpill b.pos{color:#5fe08f}.scr-root .ph2 .cpill b.neg{color:#ff7a5c}
.scr-root .ph2 .upd{margin-left:auto;text-align:right;color:#8a89a0;font-size:10.5px;line-height:1.4}
.scr-root .bals{display:flex;gap:26px;align-items:flex-start;padding:14px 0 18px;border-bottom:1px solid #1f1e2b;flex-wrap:wrap}
.scr-root .bals > div > small{display:block;color:#8a89a0;font-size:11.5px}
.scr-root .bals > div > b{font-size:28px;font-weight:800}
.scr-root .bals .sep{width:1px;background:#1f1e2b;align-self:stretch}
.scr-root .bals .kv2{display:grid;grid-template-columns:auto auto;gap:6px 12px;font-size:12px;color:#8a89a0;align-items:center}
.scr-root .bals .kv2 b{color:#fff;font-size:13px}
.scr-root .transfer{margin-left:auto;text-align:right}
.scr-root .transfer .tdir{font-weight:700;display:flex;align-items:center;gap:10px;justify-content:flex-end}
.scr-root .transfer .swap{background:transparent;border:0;color:#fff;font-size:16px;cursor:pointer}
.scr-root .transfer .tin{display:flex;gap:8px;margin:8px 0 4px}
.scr-root .transfer .tin .ci{width:110px}
.scr-root .transfer small{color:#8a89a0;font-size:11px}
.scr-root .qi{display:inline-flex;width:14px;height:14px;border-radius:4px;background:#2b2a3a;color:#c9c8d6;font-size:9px;align-items:center;justify-content:center;font-style:normal;vertical-align:middle;margin-left:4px}
.scr-root .skel{height:52px;border-radius:14px;background:#14141d;margin:8px 0;opacity:.6}
.scr-root .ci{background:transparent;border:0;border-bottom:1px solid #2b2a3a;color:#fff;font-family:inherit;font-size:14px;padding:9px 2px;width:100%;outline:none}
.scr-root .ci:focus{border-bottom-color:#ff9f43}
.scr-root .ci::placeholder{color:#4b4a5a}
.scr-root .ci.code6{letter-spacing:.7em;font-size:22px;text-align:center;font-weight:700;border:1px solid #2b2a3a;border-radius:12px;padding:12px;background:#14141d}
.scr-root .ci.ul{font-size:16px}
.scr-root .pwrap{position:relative;display:block}
.scr-root .pwrap .ci{padding-right:32px}
.scr-root .pwrap .eye{position:absolute;right:4px;top:10px;width:22px;height:22px;border:0;background:transparent;cursor:pointer}
.scr-root .pwrap .eye::before{content:"👁";font-size:13px;opacity:.6}
.scr-root .csel{background:#1e1e2a;border:1px solid #2b2a3a;border-radius:10px;color:#fff;font-family:inherit;font-size:12.5px;font-weight:600;padding:8px 10px;outline:none;cursor:pointer;min-width:120px}
.scr-root .csel.light{background:#fff;color:#111;border-color:#fff}
.scr-root .csel.static{display:inline-block}
.scr-root .csel.sm{padding:5px 8px;font-size:11.5px;min-width:0}
.scr-root .ctg{display:inline-flex;cursor:pointer}
.scr-root .ctg input{display:none}
.scr-root .ctg i{width:44px;height:24px;border-radius:12px;background:#2b2a3a;position:relative;display:block;transition:background .15s}
.scr-root .ctg i::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left .15s}
.scr-root .ctg input:checked+i{background:#22c55e}
.scr-root .ctg input:checked+i::after{left:23px}
.scr-root .ctg.small i{width:34px;height:18px}
.scr-root .ctg.small i::after{width:14px;height:14px;top:2px;left:2px}
.scr-root .ctg.small input:checked+i::after{left:18px}
.scr-root label.cchk{display:flex;align-items:flex-start;gap:10px;cursor:pointer;font-size:13px;line-height:1.4;margin:12px 0;color:inherit}
.scr-root .cchk span{flex:1;min-width:0}
.scr-root .cchk input{display:none}
.scr-root .cchk i{width:18px;height:18px;border-radius:5px;border:2px solid #4b4a5a;display:inline-flex;align-items:center;justify-content:center;flex:none;margin-top:1px;font-size:12px;font-weight:800;color:#fff;font-style:normal}
.scr-root .cchk input:checked+i{background:#22c55e;border-color:#22c55e}
.scr-root .cchk input:checked+i::after{content:"✓";color:#06240f}
.scr-root .crow{display:grid;grid-template-columns:40px 1fr auto;gap:12px;align-items:center;background:#14141d;border:1px solid #1f1e2b;border-radius:14px;padding:12px 16px;margin:8px 0}
.scr-root .crow.sub{border-color:#ff5fa2}
.scr-root .crow .cri{width:40px;height:40px;border-radius:50%;background:#1e1e2a;display:inline-flex;align-items:center;justify-content:center;font-size:16px}
.scr-root .crow .crt b{display:block;font-size:13.5px}
.scr-root .crow .crt small{display:block;color:#8a89a0;font-size:12px;margin-top:2px;line-height:1.4}
.scr-root .crow .crr{display:inline-flex;align-items:center;gap:8px}
.scr-root .cab label{display:block;color:#8a89a0;font-size:11.5px;margin:16px 0 2px}
.scr-root .cab .hint{display:block;color:#5c5b70;font-size:11px;margin-top:6px;line-height:1.4}
.scr-root .auth{min-height:760px}
.scr-root .auth-bg{flex:1;display:flex;align-items:center;justify-content:center;background:radial-gradient(600px 300px at 50% 0,rgba(176,92,255,.16),transparent 70%),radial-gradient(500px 300px at 80% 100%,rgba(255,159,67,.1),transparent 70%)}
.scr-root .auth-card{width:440px;background:#12121a;border:1px solid #23222f;border-radius:22px;padding:30px 32px 26px}
.scr-root .auth-card .logo.big{display:inline-flex;align-items:center;gap:8px;font-weight:800;font-size:20px;color:#fff;margin-bottom:10px}
.scr-root .auth-card .logo.big svg{width:26px;height:26px}
.scr-root .auth-card h1{font-size:26px}
.scr-root .auth-links{margin-top:14px;font-size:12.5px;color:#8a89a0}
.scr-root .auth-links a{color:#ff9f43;cursor:pointer}
.scr-root .pcol h1{font-size:30px;margin:4px 0}
.scr-root .pemail{font-size:13.5px;font-weight:600}
.scr-root .puid{color:#8a89a0;font-size:12px;margin:6px 0}
.scr-root .plinks{margin:8px 0 12px;font-size:12.5px}
.scr-root .plinks small{display:block;color:#8a89a0}
.scr-root .copy::before{content:"⧉";color:#8a89a0;margin-left:6px;cursor:pointer}
.scr-root .ccard.lvl b:first-child{font-size:20px;font-weight:800}
.scr-root .ccard.lvl > span{display:block;font-size:12px;margin:4px 0 10px}
.scr-root .ccard.lvl .lim{display:flex;align-items:center;justify-content:space-between;padding:8px 0}
.scr-root .ccard.lvl .lim small{display:block;color:#8a89a0;font-size:11px}
.scr-root .ccard.lvl .lim b{font-size:15px}
.scr-root .arr{width:36px;height:36px;border-radius:50%;display:inline-block}
.scr-root .arr.in{background:#22c55e}
.scr-root .arr.out{background:#ff5fa2}
.scr-root .ccard.team .pink{font-size:30px}
.scr-root .ptabs{display:flex;gap:22px;margin:8px 0 14px}
.scr-root .ptabs a{font-size:26px;font-weight:800;color:#4b4a5a;cursor:pointer}
.scr-root .ptabs a.on{color:#fff}
.scr-root .cmodal{position:absolute;inset:0;background:rgba(5,5,10,.7);display:flex;align-items:center;justify-content:center;z-index:40;padding:20px}
.scr-root .cmd{width:440px;max-height:96%;overflow:auto;background:#12121a;border:1px solid #2b2a3a;border-radius:20px;padding:20px 22px;animation:pop .2s}
.scr-root .cmd-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.scr-root .cmd-h b{font-size:18px}
.scr-root .cmd .x{background:transparent;border:0;color:#8a89a0;font-size:20px;cursor:pointer}
.scr-root .addr{background:#14141d;border:1px dashed #2b2a3a;border-radius:12px;padding:10px 12px;margin:10px 0;position:relative}
.scr-root .addr small{display:block;color:#8a89a0;font-size:11px}
.scr-root .addr b{display:block;font-family:"JetBrains Mono","Menlo",monospace;font-size:12px;word-break:break-all;color:#ff9f43;margin-top:4px}
.scr-root .addr.secret b{color:#ff7ad9}
.scr-root .qr{width:120px;height:120px;margin:10px auto;background:repeating-linear-gradient(90deg,#fff 0 6px,#000 6px 12px),repeating-linear-gradient(0deg,#fff 0 6px,#000 6px 12px);background-blend-mode:difference;border:6px solid #fff;border-radius:6px;opacity:.9}
.scr-root .qr.big{width:150px;height:150px}
.scr-root .warn{color:#ff9f43;font-size:12px;background:rgba(255,159,67,.08);border-radius:10px;padding:8px 10px}
.scr-root .kyc{max-width:720px}
.scr-root .kyc .back{color:#8a89a0;cursor:pointer;display:inline-block;margin-bottom:6px}
.scr-root .steps{display:flex;flex-direction:column;gap:10px;margin:16px 0}
.scr-root .st{display:grid;grid-template-columns:36px 1fr;gap:12px;align-items:center;background:#14141d;border:1px solid #1f1e2b;border-radius:14px;padding:12px 14px;opacity:.55}
.scr-root .st.cur{opacity:1;border-color:#ff9f43}
.scr-root .st.done{opacity:1;border-color:#22c55e}
.scr-root .st > b{width:36px;height:36px;border-radius:50%;background:#1e1e2a;display:inline-flex;align-items:center;justify-content:center;font-size:14px}
.scr-root .st.done > b{background:#22c55e;color:#06240f}
.scr-root .st div b{display:block;font-size:13.5px;margin-bottom:6px}
.scr-root .info4{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:8px 0 18px}
.scr-root .info4 div{background:#14141d;border:1px solid #1f1e2b;border-radius:14px;padding:12px;font-size:11px;color:#8a89a0;line-height:1.4}
.scr-root .info4 i{display:block;font-style:normal;margin-bottom:6px;font-size:14px}
/* партнёрские программы Affiliate (js/screens.js → broker-affiliate): статус ключа, форма, история, шаги Hyperliquid */
.scr-root .aff-st{display:inline-flex;align-items:center;gap:7px;border-radius:999px;padding:5px 12px;font-size:12px;font-weight:700;background:#1e1e2a;color:#8a89a0}
.scr-root .aff-st::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.scr-root .aff-st.ok{color:#5fe08f;background:rgba(95,224,143,.1)}
.scr-root .aff-st.err{color:#ff6b83;background:rgba(255,107,131,.1)}
.scr-root .aff-form{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;background:#14141d;border:1px solid #1f1e2b;border-radius:14px;padding:16px;margin:10px 0}
.scr-root .aff-form label{display:flex;flex-direction:column;gap:6px;font-size:11.5px;color:#8a89a0}
.scr-root .aff-form .row{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.scr-root .aff-form .row .bad{font-size:12px}
.scr-root .aff-t{width:100%;border-collapse:collapse;font-size:12.5px}
.scr-root .aff-t th{text-align:left;font-weight:600;color:#8a89a0;font-size:11.5px;padding:8px 10px;border-bottom:1px solid #1f1e2b}
.scr-root .aff-t td{padding:9px 10px;border-bottom:1px solid #1a1a24;font-variant-numeric:tabular-nums;white-space:nowrap}
.scr-root .aff-t td.none{text-align:center;color:#8a89a0;padding:22px;white-space:normal}
.scr-root .aff-steps{display:grid;grid-template-columns:1fr auto;gap:10px 14px;align-items:center;margin:10px 0}
.scr-root .aff-steps .st{grid-column:1;display:grid;grid-template-columns:30px 1fr;gap:12px;align-items:center;background:#14141d;border:1px solid #1f1e2b;border-radius:14px;padding:12px 16px}
.scr-root .aff-steps .st.done + .st, .scr-root .aff-steps .st:last-of-type{grid-column:1}
.scr-root .aff-steps > .cbtn{grid-column:2}
.scr-root .aff-steps .st > i{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#1e1e2a;font-style:normal;font-weight:800;font-size:13px}
.scr-root .aff-steps .st.done > i{background:#5fe08f;color:#0d0d14}
.scr-root .aff-steps .st.cur{border-color:#ff9f43}
.scr-root .aff-steps .st small{display:block;color:#8a89a0;font-size:11.5px;margin-top:2px}
.scr-root .krow{display:grid;grid-template-columns:1.1fr 1.2fr 1.6fr 34px;gap:12px;align-items:center;background:#14141d;border:1px solid #1f1e2b;border-radius:14px;padding:14px 16px;margin:8px 0}
.scr-root .krow.new{border-color:#ff9f43}
.scr-root .krow b{display:block;font-size:13px}
.scr-root .krow small{display:block;color:#5c5b70;font-size:11px;margin-top:2px}
.scr-root .ccard.how ol{margin:8px 0 0;padding-left:20px;color:#c9c8d6;font-size:12.5px}
.scr-root .ccard.how li{margin:6px 0}
.scr-root .cpromo-img{height:110px;border-radius:12px;background:linear-gradient(135deg,#ff7ad9,#ff9f43 50%,#5b21b6);margin-bottom:10px}
.scr-root .ccard.cpromo b{text-align:center;margin-bottom:8px}
.scr-root .newkey{max-width:520px;margin:20px auto;text-align:left}
.scr-root .newkey .back{color:#8a89a0;cursor:pointer;display:inline-block;margin-bottom:6px}
.scr-root .newkey h1{font-size:30px}
.scr-root .perms{display:flex;gap:26px;margin:12px 0;align-items:center}
.scr-root .perms .cchk{margin:0;align-items:center}
.scr-root .c6{text-align:center;margin:20px 0 10px}
.scr-root .c6 b{display:block;font-size:16px}
.scr-root .c6 small{display:block;color:#8a89a0;margin-bottom:10px}
.scr-root .newkey .cancel{display:block;text-align:center;margin-top:12px;color:#fff;cursor:pointer;font-weight:700}
.scr-root .row2{display:flex;gap:10px;margin-top:14px}
.scr-root .row2.right{justify-content:flex-end}
.scr-root .lev-top{display:flex;align-items:center;gap:22px;margin-bottom:12px}
.scr-root .lev-top .search{background:#14141d;border-radius:12px;padding:0 12px;width:300px;display:flex;align-items:center}
.scr-root .lev-top .search .ci{border:0;padding:10px 4px}
.scr-root .lev-top .tgl{display:inline-flex;align-items:center;gap:10px;color:#fff;font-size:12.5px;font-weight:700;margin:0}
.scr-root .lev-btns{display:flex;gap:10px;margin-bottom:16px}
.scr-root .lev-btns .cbtn{background:#1e1e2a;color:#d6d5e3;border-color:#2b2a3a}
.scr-root .levt .lh, .scr-root .levt .lr2{display:grid;grid-template-columns:70px 1.2fr 120px 90px 140px 150px;gap:10px;align-items:center;padding:10px 6px;font-size:12.5px}
.scr-root .levt .lh{color:#8a89a0;font-size:11px}
.scr-root .levt .lr2{border-top:1px solid #1a1925}
.scr-root .levt .lr2.focal{background:rgba(255,159,67,.05)}
.scr-root .levt .cb{width:24px;height:24px;border-radius:6px;border:1px solid #3a3949;display:inline-block}
.scr-root .levt .tk{font-weight:700}
.scr-root .stp{display:inline-flex;align-items:center;gap:2px;background:#1e1e2a;border-radius:8px;padding:2px}
.scr-root .stp button{background:transparent;border:0;color:#8a89a0;width:22px;height:24px;cursor:pointer;font-size:14px}
.scr-root .stp b{width:34px;text-align:center}
.scr-root .stp .warn{width:16px;height:16px;border-radius:50%;background:#ff9f43;color:#111;font-size:10px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;font-style:normal;margin-left:6px;padding:0}
.scr-root .radios{display:flex;flex-direction:column;gap:8px}
.scr-root .rad{display:grid;grid-template-columns:20px 1fr;gap:12px;align-items:center;background:#14141d;border:1px solid #1f1e2b;border-radius:14px;padding:12px 14px;cursor:pointer;margin:0}
.scr-root .rad i{width:18px;height:18px;border-radius:50%;border:2px solid #4b4a5a;display:inline-block}
.scr-root .rad.on{border-color:#ff9f43}
.scr-root .rad.on i{border-color:#ff9f43;box-shadow:inset 0 0 0 4px #14141d;background:#ff9f43}
.scr-root .rad b{display:block;font-size:13px;color:#fff}
.scr-root .rad small{color:#8a89a0;font-size:11.5px}
.scr-root .frow{margin:10px 0}
.scr-root .frow .fin{display:flex;gap:10px;align-items:center}
.scr-root .frow .fin .ci{width:240px;background:#14141d;border:1px solid #2b2a3a;border-radius:10px;padding:8px 12px}
.scr-root .ccard.rm-on{border-color:#22c55e}
.scr-root .subp{text-align:center}
.scr-root .subp h1{font-size:44px;margin:10px 0 6px}
.scr-root .subp h1 span{color:#fff}
.scr-root .period{display:inline-flex;gap:4px;background:#14141d;border-radius:14px;padding:5px;margin:14px 0 18px}
.scr-root .period b{padding:8px 16px;border-radius:10px;cursor:pointer;color:#8a89a0;display:inline-flex;align-items:center;gap:8px}
.scr-root .period b.on{background:#1e1e2a;color:#fff}
.scr-root .period em{font-style:normal;font-size:10px;border:1px solid #ff9f43;color:#ff9f43;border-radius:6px;padding:2px 6px}
.scr-root .plans{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;text-align:left}
.scr-root .plan{background:#14141d;border:1px solid #1f1e2b;border-radius:18px;padding:16px;display:flex;flex-direction:column;gap:6px}
.scr-root .plan.cur{border-color:#ff9f43}
.scr-root .plan.ultra .pn{color:#ff9f43}
.scr-root .plan .pn{font-size:18px}
.scr-root .plan .pp{font-size:32px;font-weight:800}
.scr-root .plan .pp small{font-size:12px;color:#8a89a0;font-weight:400}
.scr-root .plan .py{color:#8a89a0;font-size:11px;min-height:14px}
.scr-root .plan p{color:#c9c8d6;font-size:12px;margin:8px 0 0;line-height:1.45}
.scr-root .plan .feat{margin-top:auto;padding-top:10px;border-top:1px solid #1f1e2b}
.scr-root .plan .feat small{color:#8a89a0;display:block}
.scr-root .plan .feat b{color:#fff}
.scr-root .plans.feats{margin-top:14px}
.scr-root .plans.feats .plan i{display:block;font-style:normal;font-size:11.5px;color:#c9c8d6}
.scr-root .plans.feats .plan i.no{color:#4b4a5a}
.scr-root .plans.feats .plan b{margin-top:8px;color:#ff9f43;font-size:12.5px}
.scr-root .subp .more{display:block;margin:18px 0 0;color:#ff9f43;cursor:pointer}
.scr-root .kpis6{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin:12px 0}
.scr-root .kpis6 div{background:#14141d;border:1px solid #1f1e2b;border-radius:14px;padding:12px}
.scr-root .kpis6 b{display:block;font-size:16px;white-space:nowrap}
.scr-root .kpis6 small{color:#8a89a0;font-size:10.5px}
.scr-root .kpis6 .neg2{border-color:#ff7a5c}
.scr-root .kpis6 .neg2 b{color:#ff7a5c}
.scr-root .kpis6 .pos2{border-color:#22c55e}
.scr-root .kpis6 .pos2 b{color:#5fe08f}
.scr-root .ccard.tall b small.muted{display:block;font-weight:500;font-size:11px;color:#8a89a0;margin-top:2px}
.scr-root .ccard.tall{min-height:220px}
/* кривые в «Дневнике трейдера» вместо пустых заготовок */
.scr-root .jchart{display:block;width:100%;height:160px;margin-top:10px}
.scr-root .chart-skel{height:160px;margin-top:10px;background:repeating-linear-gradient(0deg,transparent 0 31px,#1f1e2b 31px 32px)}
.scr-root .chart-skel.area{background:linear-gradient(180deg,rgba(94,84,255,.35),transparent 70%),repeating-linear-gradient(0deg,transparent 0 31px,#1f1e2b 31px 32px)}
.scr-root .term-bg{min-height:820px;border-radius:14px;overflow:hidden;position:relative;background:#c9c9c9;background-image:repeating-linear-gradient(90deg,#d7d7d7 0 190px,#e6e6e6 190px 240px,#f0f0dc 240px 300px,#bfbfbf 300px 302px),repeating-linear-gradient(0deg,transparent 0 12px,rgba(0,0,0,.05) 12px 13px);display:flex;align-items:center;justify-content:center;box-shadow:0 30px 80px rgba(0,0,0,.55)}
.scr-root .term-bg.light::before{content:"";position:absolute;inset:0;background:rgba(0,0,0,.25)}
.scr-root .tw{position:relative;width:452px;background:#1d1d1d;border:1px solid #333;border-radius:8px;box-shadow:0 30px 60px rgba(0,0,0,.6);color:#ececec;font-family:"Inter","Segoe UI",Roboto,sans-serif}
.scr-root .tw.welcome{width:470px;background:#262626}
.scr-root .tw-wc{display:flex;justify-content:flex-end;gap:26px;padding:14px 20px 0}
.scr-root .tw-wc i{display:block;width:13px;height:13px;position:relative;opacity:.9}
.scr-root .tw-wc i.min::before{content:"";position:absolute;left:0;right:0;top:7px;border-top:1.5px solid #e6e6e6}
.scr-root .tw-wc i.cls::before,.scr-root .tw-wc i.cls::after{content:"";position:absolute;left:-2px;right:-2px;top:6px;border-top:1.5px solid #e6e6e6;transform:rotate(45deg)}
.scr-root .tw-wc i.cls::after{transform:rotate(-45deg)}
.scr-root .tw-body{padding:10px 30px 30px}
.scr-root .tw-h{display:flex;align-items:center;justify-content:space-between;font-size:22px;font-weight:700;margin:0 0 18px;line-height:1.2}
.scr-root .tw-h svg{width:36px;height:36px;color:#f5761a;flex:none}
.scr-root .tw-h.center{display:block;text-align:center;font-size:27px;margin:14px 0 30px}
.scr-root .tw-logo{display:flex;justify-content:center;margin-top:18px}
.scr-root .tw-logo svg{width:64px;height:64px;color:#f5761a}
.scr-root .lics{display:flex;flex-direction:column;gap:12px;margin-bottom:22px}
.scr-root .lic{border:1.5px solid #3a3a3a;border-radius:14px;background:#2f2f2f;overflow:hidden;transition:border-color .15s}
.scr-root .lic.on{border-color:#f5761a}
.scr-root .lic-h{display:grid;grid-template-columns:auto auto auto auto 1fr auto;align-items:center;column-gap:8px;width:100%;background:transparent;border:0;color:#fff;font-family:inherit;text-align:left;padding:14px 16px;cursor:pointer}
.scr-root .lic-h b{font-size:18px;font-weight:700}
.scr-root .lic-h em{font-style:normal;font-size:15px}
.scr-root .lic-h .tag{font-size:10px;font-weight:700;letter-spacing:.03em;background:#454545;color:#e6e6e6;border-radius:6px;padding:3px 7px;justify-self:start;white-space:nowrap}
.scr-root .lic-h .tag.free{background:#f5761a;color:#fff}
.scr-root .lic-h .lrad{grid-column:6;width:16px;height:16px;border-radius:50%;border:2px solid #777;background:#2f2f2f;justify-self:end;display:block;padding:0;margin:0}
.scr-root .lic.on .lrad{border-color:#f5761a;background:#f5761a;box-shadow:inset 0 0 0 2.5px #2f2f2f}
.scr-root .lic-h small{grid-column:1/7;grid-row:2;font-size:13.5px;color:#f2f2f2;margin-top:8px;display:block;line-height:1.3}
.scr-root .lic ul{margin:0;padding:12px 16px 14px 34px;background:#3a3a3a;color:#eaeaea;font-size:12.5px;line-height:1.4}
.scr-root .lic li{margin:4px 0}
.scr-root .tw .cbtn.big{padding:16px;font-size:15px;border-radius:10px;margin-top:0}
.scr-root .tw .cbtn.orange{background:#f5761a}
.scr-root .tw label{display:block;color:#e6e6e6;font-size:15px;margin:20px 0 9px}
.scr-root .tw label.row{display:flex;justify-content:space-between;align-items:center}
.scr-root .tw .teal{color:#20c0a0;font-size:14px;cursor:pointer}
.scr-root .tw .ci{background:#1d1d1d;border:1.5px solid #cfcfcf;border-radius:16px;padding:16px 18px;font-size:16px;color:#fff}
.scr-root .tw .ci::placeholder{color:#8a8a8a}
.scr-root .tw .ci:focus{border-color:#fff}
.scr-root .tw .pwrap .eye{right:18px}
.scr-root .tw .csel{width:100%;background:#2b2b2b;border:1.5px solid #2b2b2b;border-radius:16px;font-weight:500;font-size:16px;padding:16px 18px;color:#fff}
.scr-root .tw .tw-body > .cbtn.orange{margin-top:34px}
.scr-root .tw-create{text-align:center;font-size:17px;margin-top:24px;color:#fff;cursor:pointer}
.scr-root .tw.hint .tw-body.center{text-align:center;padding:10px 34px 34px}
.scr-root .info-i{display:inline-flex;align-items:center;justify-content:center;width:62px;height:62px;border-radius:50%;border:3px solid #f5761a;font-size:30px;font-weight:600;color:#fff;margin:8px 0 22px;font-family:Georgia,serif;font-style:italic}
.scr-root .tw.hint h2{font-size:23px;font-weight:700;margin:0 0 16px;line-height:1.25;color:#fff}
.scr-root .tw.hint p{font-size:13px;color:#bdbdbd;margin:0 0 26px;line-height:1.45}
.scr-root .tw-msg{margin-top:12px;font-size:12px;padding:8px 10px;border-radius:8px}
.scr-root .tw-msg.ok{background:rgba(34,197,94,.15);color:#5fe08f}
.scr-root .tw-msg.err{background:rgba(255,77,94,.15);color:#ff8fa3}
.scr-root .tdlg{position:relative;width:760px;max-width:96%;background:#1c1c1c;border:1px solid #333;border-radius:8px;padding:22px 26px;color:#e8e8ee;box-shadow:0 30px 60px rgba(0,0,0,.6)}
.scr-root .tdlg.wide{width:820px}
.scr-root .tdlg.types{width:680px}
.scr-root .tdlg.form{width:520px}
.scr-root .tdlg.proxy{width:760px}
.scr-root .tdlg.small{width:420px}
.scr-root .tdlg.over{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:5}
.scr-root .tdlg.dark{background:#15151b}
.scr-root .td-h{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.scr-root .td-h h1{margin:0;font-size:28px;font-weight:700;letter-spacing:0}
.scr-root .td-h.center{justify-content:center;position:relative}
.scr-root .td-h.center .x{position:absolute;right:0;top:0}
.scr-root .td-h .x, .scr-root .tdlg .x{background:transparent;border:0;color:#aaa;font-size:22px;cursor:pointer;line-height:1}
/* значок TigerX тоже носит класс x — стиль кнопки «закрыть» выше делал его прозрачным */
.scr-root .tdlg .exi.x{background:linear-gradient(135deg,#ff6a1a,#ff5fa2)}
/* колонки таблицы подключений одинаковы во всех строках: длинное имя обрезается, а не раздвигает сетку своей строки */
.scr-root .ct-r > span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.scr-root .td-h .back{color:#aaa;font-size:20px;cursor:pointer}
.scr-root .tb{display:inline-flex;align-items:center;gap:6px;background:#2a2a2a;border:1px solid #3a3a3a;border-radius:8px;color:#fff;font-family:inherit;font-size:12.5px;font-weight:600;padding:8px 14px;cursor:pointer}
.scr-root .tb.orange{background:#f5761a;border-color:#f5761a}
.scr-root .tb.ic{padding:8px 10px}
.scr-root .tb.sm{padding:3px 8px;font-size:11px}
.scr-root .tb.sm svg{width:12px;height:12px}
.scr-root .center{text-align:center}
.scr-root .ct{margin-top:8px}
.scr-root .ct-h, .scr-root .ct-r{display:grid;grid-template-columns:150px 1.3fr 100px 100px 100px 150px 30px;gap:8px;align-items:center;padding:8px 6px;font-size:12.5px}
.scr-root .ct-h{color:#8a8a96;font-size:11px}
.scr-root .ct-r{border-top:1px solid #2a2a2a}
.scr-root .ct-r.new{background:rgba(245,118,26,.08)}
.scr-root .ct-r > span:first-child{display:inline-flex;align-items:center;gap:8px}
.scr-root .ct-r em{color:#666;font-style:normal}
.scr-root .ct-r .xr{color:#666;text-align:center}
.scr-root .cbx{width:18px;height:18px;border:1.5px solid #6a6a6a;border-radius:4px;background:#262626;display:inline-block;position:relative}
.scr-root .cbx.on::after{content:"";position:absolute;left:5px;top:1.5px;width:4px;height:9px;border-right:2px solid #e6e6e6;border-bottom:2px solid #e6e6e6;transform:rotate(45deg)}
.scr-root .ctype{display:flex;flex-direction:column;gap:8px;margin:14px 0 12px}
.scr-root .ctype .big, .scr-root .cgrid button{display:flex;align-items:center;gap:12px;background:#262626;border:1px solid #333;border-radius:10px;padding:10px 14px;color:#fff;font-family:inherit;font-size:14px;cursor:pointer;text-align:left}
.scr-root .ctype .big:hover, .scr-root .cgrid button:hover{background:#2f2f2f}
.scr-root .ctype .big b{display:block;font-size:14px}
.scr-root .ctype .big small{display:block;color:#8a8a96;font-size:12px}
.scr-root .ctype .big .chev, .scr-root .cgrid .chev{margin-left:auto}
.scr-root .cgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.scr-root .cgrid button{padding:9px 12px;font-size:13px;background:#1c1c1c}
.scr-root .cf-head{display:flex;align-items:center;gap:14px;margin-bottom:6px}
.scr-root .cf-head h1{margin:0;font-size:22px}
.scr-root .cf-head .green{color:#3ddc84;font-size:12px;cursor:pointer}
.scr-root .tdlg label{display:block;color:#c9c9d0;font-size:12px;margin:12px 0 4px}
.scr-root .tdlg .ci{background:#151515;border:1px solid #3a3a3a;border-radius:8px;padding:11px 12px;font-size:13px}
.scr-root .tdlg .ci:focus{border-color:#f5761a}
.scr-root .tdlg .csel{width:100%;background:#151515;border-color:#3a3a3a;border-radius:8px;font-weight:500;padding:11px 12px}
.scr-root .keyline{display:flex;gap:8px;align-items:center}
.scr-root .keyline .tb{white-space:nowrap}
.scr-root .tdlg .cbtn.orange{background:#f5761a;border-radius:10px;padding:12px;font-size:14px}
.scr-root .px{display:grid;grid-template-columns:220px 1fr;gap:30px}
.scr-root .px aside{display:flex;flex-direction:column;gap:8px;min-height:300px}
.scr-root .px .pxi{background:#262626;border-radius:8px;padding:12px 16px}
.scr-root .px .pxi.on{background:#2f2f2f}
.scr-root .px h1{margin:0 0 10px;font-size:22px}
.scr-root .twin{position:relative;width:96%;background:#f2f2f2;color:#222;border:1px solid #9a9a9a;border-radius:4px;box-shadow:0 20px 50px rgba(0,0,0,.4);font-family:"Inter","Segoe UI",sans-serif;font-size:12px}
.scr-root .twin-tab{display:flex;align-items:center;gap:8px;background:#2f6fe0;color:#fff;padding:4px 10px;font-size:12px}
.scr-root .twin-tab .lnk{width:10px;height:10px;border-radius:2px;background:#8a8a96;display:inline-block}
.scr-root .twin-tab .lnk.c1{background:#ff6a1a}
.scr-root .twin-tab .lnk.c2{background:#4c8dff}
.scr-root .twin-tab .lnk.c3{background:#a97cf5}
.scr-root .twin-tab span{margin-left:auto}
.scr-root .twin-bar{display:flex;align-items:center;gap:8px;padding:6px 8px;background:#e6e6e6;border-bottom:1px solid #c9c9c9;flex-wrap:wrap}
.scr-root .twin-bar label{color:#444;font-size:11px;margin:0 0 0 4px}
.scr-root .twin-bar .ci{width:70px;background:#fff;border:1px solid #bbb;border-radius:4px;color:#111;padding:4px 6px;font-size:12px}
.scr-root .twin-bar .ci.w{width:110px}
.scr-root .twin-bar .csel{background:#fff;color:#111;border-color:#bbb;border-radius:4px;padding:4px 6px;font-size:12px;min-width:0}
.scr-root .twin-bar .tb{background:#fff;color:#111;border-color:#bbb;padding:4px 10px;font-size:12px}
.scr-root .twin-bar .wr{cursor:pointer}
.scr-root .twin-bar .flags{background:#fff;border:1px solid #bbb;border-radius:4px;padding:4px 8px;font-size:11px}
.scr-root .tt{width:100%;border-collapse:collapse}
.scr-root .tt th{text-align:right;font-weight:600;font-size:11px;color:#555;padding:6px 8px;border-bottom:1px solid #c9c9c9;background:#ececec}
.scr-root .tt th:first-child, .scr-root .tt td:first-child{text-align:left}
.scr-root .tt td{padding:5px 8px;border-bottom:1px solid #e0e0e0;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.scr-root .tt td b{font-weight:600}
.scr-root .tt td.none{text-align:center;color:#888;padding:20px}
.scr-root .tt tr.sel td{background:#dce8ff}
.scr-root .tt .up{color:#1a9c4b}
.scr-root .tt .dn{color:#d0243b}
.scr-root .tt .flag{width:8px;height:8px;border-radius:2px;background:#ff6a1a;display:inline-block;margin-right:6px}
.scr-root .tt.dark th{background:#15151b;color:#8a89a0;border-color:#23222f}
.scr-root .tt.dark td{border-color:#1f1e2b;color:#e9e8f2}
.scr-root .tt.dark td small{display:block;color:#5c5b70;font-size:10px}
.scr-root .tt.dark tr.sel td{background:rgba(255,159,67,.1)}
.scr-root .tt.dark .up{color:#5fe08f}
.scr-root .tt.dark .dn{color:#ff6b83}
.scr-root .tt.sortable th{cursor:pointer}
.scr-root .tt.sortable th.on{color:#ff9f43}
.scr-root .linked{margin:8px;padding:8px 12px;background:#dcefdc;border:1px solid #9bd39b;border-radius:4px;font-size:12px}
.scr-root .linked.dark{background:rgba(49,196,106,.12);border-color:rgba(49,196,106,.4);color:#5fe08f;margin:10px 18px;border-radius:10px}
.scr-root .qf{padding:4px 2px}
.scr-root .qlogic{display:inline-flex;gap:4px;background:#111;border-radius:8px;padding:3px;margin-bottom:8px}
.scr-root .qlogic b{padding:5px 14px;border-radius:6px;cursor:pointer;color:#8a8a96}
.scr-root .qlogic b.on{background:#f5761a;color:#fff}
.scr-root .qc{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center;margin:8px 0}
.scr-root .qc label{margin:0;color:#8a89a0;font-size:11.5px}
.scr-root .qc .ci{padding:7px 10px}
.scr-root .qc span{color:#8a8a96}
.scr-root .cab.ws{background:#0e0e14}
.scr-root .ws-h{display:flex;align-items:center;gap:14px;padding:10px 16px;border-bottom:1px solid #1f1e2b}
.scr-root .ws-h .logo{display:inline-flex;align-items:center;gap:6px;font-weight:800;color:#fff}
.scr-root .ws-h .logo svg{width:20px;height:20px}
.scr-root .wstabs{display:flex;gap:4px;background:#14141d;border-radius:10px;padding:3px}
.scr-root .wstabs b{padding:6px 12px;border-radius:8px;cursor:pointer;color:#8a89a0;font-weight:600;font-size:12px}
.scr-root .wstabs b.on{background:#1e1e2a;color:#fff}
.scr-root .wstabs .add{color:#ff9f43}
.scr-root .ws-h .tb{background:#1e1e2a;border-color:#2b2a3a}
.scr-root .ws-h .tb em{font-style:normal;color:#8a89a0;font-size:11px}
.scr-root .ws-h .tb em.ok{color:#5fe08f}
.scr-root .plan-b{font-size:10px;font-weight:800;background:linear-gradient(90deg,#c65cff,#ff5fa2);border-radius:6px;padding:3px 8px}
.scr-root .wgrid{display:grid;grid-template-columns:1fr 1.4fr;gap:10px;padding:12px 16px}
.scr-root .wg{background:#12121a;border:1px solid #1f1e2b;border-radius:14px;overflow:hidden;min-height:260px}
.scr-root .wg:nth-child(3){grid-column:1/3}
.scr-root .wg-h{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid #1f1e2b;font-size:12.5px}
.scr-root .wg-h .wr{cursor:pointer;color:#8a89a0}
.scr-root .wg-h .lnk{width:12px;height:12px;border-radius:3px;background:#4b4a5a;cursor:pointer;display:inline-block}
.scr-root .wg-h .lnk.c1{background:#ff6a1a}
.scr-root .wg-h .lnk.c2{background:#4c8dff}
.scr-root .wg-h .lnk.c3{background:#a97cf5}
.scr-root .wset{display:grid;grid-template-columns:1fr 1fr;gap:4px 16px;padding:8px 12px;background:#15151f;border-bottom:1px solid #1f1e2b}
.scr-root .wset .qc{grid-template-columns:1fr 130px;margin:4px 0}
.scr-root .wset .ci{background:#1e1e2a;border:1px solid #2b2a3a;border-radius:8px;padding:6px 8px;font-size:12px}
.scr-root .wset .ci.w{width:130px}
.scr-root .wset .qc > select{width:100%;min-width:0}
.scr-root .dens{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:12px}
.scr-root .dcard{background:#15151f;border:1px solid #1f1e2b;border-radius:12px;padding:10px 12px;font-size:12px;display:flex;flex-direction:column;gap:3px}
.scr-root .dcard.bid{border-left:3px solid #22c55e}
.scr-root .dcard.ask{border-left:3px solid #ff4d6a}
.scr-root .dcard b{font-size:13px}
.scr-root .dcard span{color:#c9c8d6}
.scr-root .dcard small{color:#8a89a0}
.scr-root .dcard em{font-style:normal;font-size:9px;background:#ff9f43;color:#111;border-radius:4px;padding:1px 5px;font-weight:800;margin-left:6px}
.scr-root .dens .none{grid-column:1/-1;text-align:center;color:#5c5b70;padding:20px}
.sim.screen{grid-template-columns:minmax(760px,900px) minmax(320px,1fr)}

/* окно «Параметры торговли» / «Тема» как в терминале 7.x: левая навигация, Избранное / Все, тулбар, футер */
.tt-settings .itag{font-size:10.5px;font-weight:700;color:var(--flt);border:1px solid var(--flt);border-radius:6px;padding:2px 7px}
.tt-settings .favall{display:inline-flex;background:#12151b;border:1px solid var(--tt-line);border-radius:9px;padding:2px}
.tt-settings .favall b{font-size:11px;font-weight:600;color:#8f96a3;padding:3px 10px;border-radius:7px}.tt-settings .favall b.on{background:var(--flt);color:#1a1200}
.tt-settings .tt-head .x{background:transparent;border:0;color:#aaa;font-size:18px;cursor:pointer;line-height:1;padding:0 2px}
.tt-settings .stool{display:flex;align-items:center;gap:8px;padding:6px 10px;border-bottom:1px solid var(--tt-line);background:var(--tt-panel)}
.tt-settings .tplsel{flex:1;background:#12151b;border:1px solid var(--tt-line);border-radius:7px;padding:5px 9px;font-size:11px;color:#8f96a3;display:flex;align-items:center;justify-content:space-between}
.tt-settings .sgrid{display:grid;grid-template-columns:128px 1fr;min-height:300px}
.tt-settings .snav{background:var(--tt-panel);border-right:1px solid var(--tt-line);padding:6px 0;display:flex;flex-direction:column;gap:1px}
.tt-settings .ssearch{margin:2px 8px 8px;background:#12151b;border:1px solid var(--tt-line);border-radius:7px;padding:5px 8px;font-size:10.5px;color:#5c6472}
.tt-settings .snav .stab{display:block;text-align:left;border:0;border-left:2px solid transparent;border-radius:0;padding:7px 10px;font-size:11px;font-weight:600;color:#aab1bd;background:transparent;cursor:pointer;line-height:1.25}
.tt-settings .snav .stab.on{background:rgba(245,118,26,.14);color:#fff;border-left-color:var(--flt)}
.tt-settings .snav .stab.has:not(.on){color:var(--yellow)}
.tt-settings .sbody{max-height:420px}
.tt-settings .sg-title{color:var(--flt);text-transform:none;letter-spacing:0;font-size:11px}
.tt-settings .slabel .qi{display:inline-block;width:auto;height:auto;background:transparent;color:#5c6472;font-size:10px;margin-left:3px;cursor:help}
.tt-settings .colr{display:inline-flex;align-items:center;gap:6px;width:100%;justify-content:flex-end;background:#1c2027;border:1px solid #2d333d;border-radius:6px;padding:4px 8px;font-size:10.5px;color:#c9cfd9;font-family:"JetBrains Mono","Menlo",monospace}
.tt-settings .colr i{width:12px;height:12px;border-radius:3px;border:1px solid #444;display:inline-block}.tt-settings .colr .chev{width:6px;height:6px;opacity:.6}
.tt-settings .sfoot .tt-tb .chev{width:6px;height:6px;margin-left:4px}
.tt-settings .sfoot .tt-tb.on{background:#f5761a;color:#fff;border-color:#f5761a}

/* ---------- баннер награды за полный курс ---------- */
.promo-ov{position:fixed;inset:0;z-index:40;background:rgba(3,2,8,.72);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;padding:24px;animation:fadein .25s}
.promo{position:relative;width:min(680px,100%);background:var(--surface);border:1px solid rgba(255,255,255,.12);border-radius:28px;padding:36px 40px 30px;box-shadow:0 40px 120px rgba(0,0,0,.6);overflow:hidden;animation:promoin .35s cubic-bezier(.2,.9,.3,1.2)}
.promo::before{content:"";position:absolute;width:520px;height:520px;left:-160px;top:-300px;background:radial-gradient(closest-side,rgba(229,113,255,.28),transparent 70%);pointer-events:none}
.promo::after{content:"";position:absolute;width:480px;height:480px;right:-200px;bottom:-280px;background:radial-gradient(closest-side,rgba(255,137,55,.22),transparent 70%);pointer-events:none}
.promo > *{position:relative;z-index:1}
.promo-x{position:absolute;top:16px;right:16px;width:36px;height:36px;border-radius:100px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.05);color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;z-index:2}
.promo-x:hover{color:#fff;background:rgba(255,255,255,.1)}
.promo-x .ico{width:16px;height:16px}
.promo-kicker{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:100px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);font-size:12px;font-weight:700;color:#fff;margin-bottom:18px}
.promo-kicker .ico{width:14px;height:14px;color:#ffb454}
.promo h2{margin:0 0 12px;font-size:32px;line-height:1.12;font-weight:800;letter-spacing:-.02em}
.promo h2 b{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.promo p{margin:0 0 20px;color:var(--muted);font-size:14.5px;max-width:560px}
.promo-gifts{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px}
.gift{display:grid;grid-template-columns:48px 1fr;gap:0 14px;align-items:center;background:var(--surface3);border:1px solid rgba(255,255,255,.1);border-radius:18px;padding:14px 16px}
.gift .gi{width:48px;height:48px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;grid-row:1/3;color:#fff;font-family:var(--head);font-weight:800;font-size:16px;background:linear-gradient(140deg,#b07cff,#7b4dff)}
.gift.usd .gi{background:linear-gradient(140deg,#35c98b,#1f9e6a)}
.gift .gi .ico{width:22px;height:22px}
.gift b{display:block;font-family:var(--head);font-size:15.5px;font-weight:800;line-height:1.2}
.gift span{display:block;color:var(--muted);font-size:12px;margin-top:3px}
.promo-feats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.promo-feats span{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:100px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);font-size:12px;color:#dcd9e8}
.promo-feats .ico{width:13px;height:13px;color:#5fe08f}
.promo-cta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.promo-cta .btn{padding:12px 22px}
.promo-cta small{color:var(--dim);font-size:12px;margin-left:auto}
@keyframes fadein{from{opacity:0}to{opacity:1}}
@keyframes promoin{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}
@media (max-width:640px){.promo{padding:28px 22px 24px}.promo h2{font-size:25px}.promo-gifts{grid-template-columns:1fr}}
/* полоска награды на главной */
.rstrip{display:flex;align-items:center;gap:16px;margin:0 0 40px;padding:14px 18px;border-radius:20px;background:linear-gradient(90deg,rgba(176,124,255,.12),rgba(255,137,55,.08)),var(--panel);border:1px solid rgba(176,124,255,.3);cursor:pointer;transition:border-color .15s,transform .2s}
.rstrip:hover{border-color:rgba(176,124,255,.6)}
.rstrip .ri{width:44px;height:44px;border-radius:14px;background:linear-gradient(140deg,#b07cff,#7b4dff);color:#fff;display:inline-flex;align-items:center;justify-content:center;flex:none}
.rstrip .ri .ico{width:20px;height:20px}
.rstrip .rt{flex:1;min-width:200px}
.rstrip .rt b{display:block;font-family:var(--head);font-size:15px;font-weight:800}
.rstrip .rt span{display:block;color:var(--muted);font-size:12.5px;margin-top:2px}
.rstrip .rp{display:flex;flex-direction:column;align-items:flex-end;gap:6px;min-width:170px}
.rstrip .rp small{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:700}
.rstrip .rp small b{color:#fff}
.rstrip .rp .bar{width:170px;height:5px;border-radius:3px;background:rgba(255,255,255,.08);overflow:hidden}
.rstrip .rp .bar i{display:block;height:100%;background:var(--grad)}
.rstrip.done{border-color:rgba(49,196,106,.5);background:linear-gradient(90deg,rgba(49,196,106,.14),transparent),var(--panel)}
.rstrip.done .ri{background:linear-gradient(140deg,#35c98b,#1f9e6a)}

/* ---------- панель настроек: вид как в реальном окне терминала (нейтральный тёмный + оранжевый) ---------- */
.tt-settings{background:#1f1f1f;border-color:#2e2e2e}
.tt-settings .tt-head{background:#1a1a1a;border-bottom:1px solid #2e2e2e;height:40px}
.tt-settings .ttl{font-size:12.5px;font-weight:600;color:#f0f0f0;padding:0 4px;white-space:nowrap}
.tt-settings .itag{color:#f5761a;border-color:#f5761a;background:transparent}
.tt-settings .sdlg{background:#262626;border-color:#3a3a3a;color:#bdbdbd}
.tt-settings .favall{background:#141414;border:1px solid #333;border-radius:20px;padding:2px}
.tt-settings .favall b{border-radius:16px;color:#bdbdbd;padding:3px 12px}
.tt-settings .favall b.on{background:#f5761a;color:#fff}
.tt-settings .tt-head .x{color:#ddd;font-size:20px}
.tt-settings .stool{background:#1f1f1f;border-bottom:1px solid #2e2e2e;padding:7px 10px}
.tt-settings .tplsel{flex:0 1 190px;background:#262626;border:1px solid #3a3a3a;border-radius:8px;color:#9a9a9a;padding:6px 10px}
.tt-settings .stool .tt-tb{background:transparent;border:0;color:#e6e6e6;font-size:11.5px}
.tt-settings .srow.tool{display:inline-flex;flex:0 1 190px;padding:0;border:0;gap:0}
.tt-settings .srow.tool .sctl{width:100%}
.tt-settings .srow.tool select{border-radius:8px}
.tt-settings .sgrid{grid-template-columns:150px 1fr}
.tt-settings .snav{background:#1a1a1a;border-right:1px solid #2e2e2e;padding:8px 0}
.tt-settings .ssearch{margin:2px 8px 10px;background:#262626;border:1px solid #3a3a3a;border-radius:8px;padding:6px 9px;font-size:11px;color:#8a8a8a;display:flex;align-items:center;gap:6px}
.tt-settings .ssearch svg{width:11px;height:11px;color:#8a8a8a}
.tt-settings .snav .stab{display:flex;align-items:center;justify-content:space-between;border-left:3px solid transparent;padding:8px 10px 8px 16px;font-size:11.5px;font-weight:600;color:#e6e6e6;line-height:1.25}
.tt-settings .snav .stab .chev{width:6px;height:6px;opacity:.7}
.tt-settings .snav .stab:hover{background:#242424;color:#fff}
.tt-settings .snav .stab.on{background:#3a2a1d;color:#fff;border-left-color:#f5761a}
.tt-settings .snav .stab.has:not(.on){color:#ffb454}
.tt-settings .ssub{display:flex;flex-direction:column}
.tt-settings .ssub span{padding:7px 10px 7px 30px;font-size:11px;color:#bdbdbd;cursor:pointer}
.tt-settings .ssub span.on{color:#fff}
.tt-settings .sbody{background:#1f1f1f;padding:6px 0 8px}
.tt-settings .sfav{font-size:12px;font-weight:700;color:#f0f0f0;padding:8px 12px 2px}
.tt-settings .sg-title{display:flex;align-items:center;gap:8px;color:#f5761a;font-size:11px;text-transform:none;letter-spacing:0;font-weight:600;padding:12px 12px 4px}
.tt-settings .sg-title::after{content:"";flex:1;border-top:1px solid #3a3a3a}
.tt-settings .srow{border-top:0;padding:7px 12px;grid-template-columns:1fr 150px}
.tt-settings .srow.hl{background:rgba(245,118,26,.14);box-shadow:inset 3px 0 0 #f5761a}
.tt-settings .slabel{color:#e6e6e6}
.tt-settings .slabel .qi{color:#8a8a8a;font-style:normal;font-size:10px;margin-left:4px}
.tt-settings .num{background:#262626;border-color:#3a3a3a;border-radius:8px;width:100%;max-width:120px;margin-left:auto}
.tt-settings .num button{background:#262626;color:#ddd}
.tt-settings .num button:hover{background:#333}
.tt-settings select{background:#262626;border-color:#3a3a3a;border-radius:8px;padding:6px 8px}
.tt-settings select:focus{border-color:#f5761a}
.tt-settings .tg i{background:#3a3a3a}
.tt-settings .tg input:checked+i{background:#19c39c}
.tt-settings .txt{background:#262626;border-color:#3a3a3a;border-radius:8px}
.tt-settings .txt:focus{border-color:#f5761a}
.tt-settings .colr{background:#262626;border-color:#3a3a3a;border-radius:8px;color:#e6e6e6;padding:5px 9px}
.tt-settings .rng input{accent-color:#f5761a}
.tt-settings .stat{color:#bdbdbd}
.tt-settings .sfoot{background:#1f1f1f;border-top:1px solid #2e2e2e;padding:9px 10px}
.tt-settings .sfoot .path{color:#8a8a8a;font-size:10.5px}
.tt-settings .sfoot .tt-tb{background:#2e2e2e;border-color:#3a3a3a;border-radius:8px;padding:6px 12px;font-size:11.5px;color:#fff}
.tt-settings .sfoot .tt-tb:hover{background:#383838}
.tt-settings .sfoot .tt-tb.on{background:#f5761a;border-color:#f5761a;color:#fff}
.tt-settings .sfoot .tt-tb.on:hover{background:#ff8a33}
.tt-settings .tt-tb.act{background:#f5761a;border-color:#f5761a;color:#fff;border-radius:8px}

.scr-root .ct .csel.dark{display:inline-flex;align-items:center;justify-content:space-between;gap:8px;background:#2b2b2b;border:1px solid #3a3a3a;color:#fff;font-weight:500;padding:8px 10px;min-width:128px;border-radius:8px}
.scr-root .ct .csel.dark .chev{margin:0}
.scr-root .ct-h,.scr-root .ct-r{grid-template-columns:128px minmax(0,1.6fr) 70px 80px 80px 130px 22px}
.scr-root .ct-r{padding:7px 6px}
.scr-root .ct-r > span:nth-child(2){font-weight:700}
.scr-root .ctg input:checked+i{background:#19c39c}
.scr-root .ctype .big{background:#2c2c2c;border-color:#333;border-radius:14px;padding:8px 14px 8px 8px}
.scr-root .ctype .big .exi{width:44px;height:44px;border-radius:12px}
.scr-root .ctype .big .chev,.scr-root .cgrid .chev{transform:rotate(-45deg);width:8px;height:8px;opacity:.9}
.scr-root .cgrid{gap:4px 8px}
.scr-root .cgrid button{background:transparent;border:0;padding:6px 8px;gap:12px;font-size:14px}
.scr-root .cgrid button:hover{background:#2a2a2a}
.scr-root .cgrid .exi{width:36px;height:36px;border-radius:10px}
.scr-root .exi.x{background:#2b2b2b}
/* карточки кабинета не наследуют сетку карточек курсов тренажёра */
.scr-root .ccard{display:block;grid-template-columns:none;grid-template-rows:none;gap:0;min-height:0;cursor:default;transition:none;transform:none}
.scr-root .ccard:hover{transform:none;border-color:#1f1e2b}
.scr-root .ccard.vip:hover{border-color:#ff9f43}
.scr-root .ccard.lvl .bad,.scr-root .ccard.lvl .ok{display:block}
.scr-root .ccard.lvl p{margin:8px 0 12px;font-size:12px;color:#c9c8d6;line-height:1.45}
/* 6-значный код: шесть ячеек как в кабинете */
.scr-root .c6w{position:relative;display:flex;justify-content:center;gap:8px;margin:14px 0 18px}
.scr-root .c6w .code6{position:absolute;inset:0;width:100%;height:100%;opacity:0;letter-spacing:0;font-size:16px;cursor:text;z-index:2}
.scr-root .c6w i{width:40px;height:50px;border-radius:9px;background:#26262e;border:1px solid #33333d;display:inline-flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;font-style:normal;color:#fff}
.scr-root .c6w i:nth-child(5){margin-left:14px}
.scr-root .c6w i.cur{border-color:#8a89a0}
.scr-root .c6w .code6:focus ~ i.cur{border-color:#ff9f43}

.scr-root .hist{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.scr-root .hrow{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#14141d;border:1px solid #1f1e2b;border-radius:12px;padding:10px 12px}
.scr-root .hrow b{display:block;font-size:13px}
.scr-root .hrow small{display:block;color:#8a89a0;font-size:11px;margin-top:2px}
.scr-root .hrow .ha{text-align:right}
.scr-root .hrow .ha b.pos{color:#5fe08f}

.scr-root .ccard.team span{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#fff;margin:2px 0 10px}

.scr-root .ccard.team small{display:block}
.scr-root .ccard.cpromo{text-align:center;padding:14px}
.scr-root .ccard.cpromo .cpromo-img{height:130px;border-radius:12px;margin:-2px -2px 12px;background:linear-gradient(135deg,#e571ff 0%,#ff5f9e 45%,#ff8937 100%);position:relative;overflow:hidden}
.scr-root .ccard.cpromo .cpromo-img::before{content:"";position:absolute;left:14%;right:14%;top:22px;bottom:-30px;background:#0f0f18;border-radius:10px 10px 0 0;box-shadow:0 0 0 3px #2a2a36}
.scr-root .ccard.cpromo .cpromo-img::after{content:"";position:absolute;left:20%;right:20%;top:32px;height:70px;background:repeating-linear-gradient(90deg,#1e1e2a 0 8px,#3a2a44 8px 10px),linear-gradient(180deg,#1a1a26,#101018);border-radius:6px}
.scr-root .ccard.cpromo b{display:block;margin:4px 0 10px}

/* шрифты и размеры кабинета: как в реальном account.tiger.com */
.scr-root .term-bg,.scr-root .tdlg,.scr-root .tw{font-family:"Inter","Segoe UI",Roboto,sans-serif}
.scr-root .cab-nav .logo{font-size:17px}
.scr-root .cab-nav nav{font-size:14px;gap:22px;font-weight:500}
.scr-root .cab-nav nav a.on{font-weight:800;color:#fff}
.scr-root .cab h1{font-size:30px;font-weight:800}
.scr-root .cab h3{font-size:18px;font-weight:800}
.scr-root .cbtn{padding:11px 18px;font-size:13.5px;border-radius:12px;font-weight:700}
.scr-root .cbtn.sm{padding:7px 12px;font-size:12px;border-radius:10px}
.scr-root .cbtn.x{width:32px;height:32px;padding:0}
.scr-root .crow .crt b{font-size:14.5px}
.scr-root .crow .crt small{font-size:12.5px}
.scr-root .ci{font-size:14.5px}
.scr-root .csel{font-size:13.5px;padding:9px 12px}
.mentor .choices .fillbtn{display:inline-flex;align-items:flex-start;gap:8px;text-align:left;white-space:normal;line-height:1.4;border-color:rgba(255,159,67,.45);background:rgba(255,159,67,.08)}
.mentor .choices .fillbtn:hover{background:rgba(255,159,67,.16);border-color:#ff9f43}
.mentor .choices .fillbtn .ico{color:#ffb454;margin-top:2px}
.mentor .choices .fillbtn b{color:#ffb454;font-weight:800;word-break:break-all}
.mentor .choices .fillbtn.done{opacity:.55}

/* строки стакана с классом empty не должны наследовать стили пустого состояния базы знаний (.empty) */
.tt-window .lr.empty,.mini .mr.empty{padding:0;margin:0;max-width:none;text-align:inherit;border:0;background:transparent;border-radius:0;min-height:0}

.qs-step.done{border-color:rgba(49,196,106,.45);background:rgba(49,196,106,.08)}
.qs-step.done .n{background:var(--ok);color:#06240f}
.qs-step.done .n .ico{width:15px;height:15px;stroke-width:3}
.qs-step.done > .ico{color:var(--ok)}

/* ---------- сворачиваемые этапы курса + появление блоков ---------- */
.stage-h{width:calc(100% + 20px);margin:-8px -10px 0;background:transparent;border:0;color:inherit;font-family:inherit;text-align:left;cursor:pointer;padding:14px 14px;border-radius:17px;transition:background .15s}
/* заголовок этапа занимает блок до краёв; подсветки при наведении нет — только раскрытие и сворачивание */
.stage-blk:not(.open) > .stage-h{margin-bottom:-8px}
.stage-blk.open > .stage-h{padding-bottom:6px;border-radius:17px 17px 0 0}
.stage-h .sdots{display:inline-flex;align-items:center;gap:5px;margin-left:auto;padding-left:12px}
.stage-h .sd{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.16);display:block;flex:none;transition:background .2s}
.stage-h .sd.done{background:var(--ok)}
.stage-h .sd.cur{background:var(--orange);box-shadow:0 0 0 3px rgba(255,106,26,.2)}
.stage-h .chev{width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg) translate(-2px,-2px);transition:transform .28s cubic-bezier(.22,.61,.36,1);flex:none;margin-left:4px}
.stage-blk.open .stage-h .chev{transform:rotate(-135deg) translate(-2px,-2px)}
.stage-blk{padding:8px 10px 6px;transition:border-color .2s,background .2s}
.stage-blk:not(.open){padding-bottom:8px}
.stage-body{max-height:0;overflow:hidden;transition:max-height .38s cubic-bezier(.22,.61,.36,1)}
.stage-blk.open > .stage-body{max-height:none;overflow:visible}
/* появление экрана: три мягкие волны подъёма, затем заполняются шкалы, кольцо уровня и кружки этапа */
@keyframes fxRise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.fx-g1,.fx-g2,.fx-g3{animation:fxRise 1s cubic-bezier(.2,.7,.2,1) backwards}
.fx-g2{animation-delay:.18s}.fx-g3{animation-delay:.36s}
/* смена содержимого внутри экрана: слайд, вопрос, другой курс */
@keyframes fxSwap{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.fx-in{animation:fxSwap .5s cubic-bezier(.2,.7,.2,1)}
/* акценты */
@keyframes barGrow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.fx-enter .ccard .cb i,.fx-enter .course-head .cbar i,.fx-enter .rstrip .rp .bar i{transform-origin:left center;animation:barGrow 1.6s cubic-bezier(.2,.7,.2,1) .6s backwards}
@keyframes ringFill{from{stroke-dashoffset:263.9}}
.fx-enter .stats .ring .fgc{animation:ringFill 1.8s cubic-bezier(.2,.7,.2,1) .35s backwards}
@keyframes nodePop{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}
#app.fx-enter .stage-body.anim{--nd:.3s}
.stage-body.anim .node{animation:nodePop .22s cubic-bezier(.2,.7,.2,1) backwards;animation-delay:calc(var(--nd,0s) + var(--i,0) * .3s)}
.stage-body.anim .node:not(:last-child)::after{animation:connDraw .14s linear backwards;animation-delay:calc(var(--nd,0s) + var(--i,0) * .3s + .16s)}
@keyframes connDraw{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media (prefers-reduced-motion:reduce){.fx-g1,.fx-g2,.fx-g3,.fx-in,.fx-enter .ccard .cb i,.fx-enter .course-head .cbar i,.fx-enter .rstrip .rp .bar i,.fx-enter .stats .ring .fgc,.stage-body.anim .node,.stage-body.anim .node::after{animation:none!important}.stage-body{transition:none!important}}

/* теория: слайды урока в одной ячейке — панель стабильного размера, меняется только текст внутри */
.slide-stack{display:grid}
.slide-stack > .pane{grid-area:1 / 1;visibility:hidden;min-width:0}
.slide-stack > .pane.on{visibility:visible;animation:paneIn .3s ease-out}
@keyframes paneIn{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.slide-stack > .pane.on{animation:none}}
/* кнопка «Дальше / К тесту» одной ширины — не сдвигается на последнем слайде */
.panel.slide .navrow #next{min-width:136px}
/* теория: картинки и таблички справа крупнее — своя колонка почти в половину окна */
.slide .layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:44px;align-items:start}
.slide .layout .txt{min-width:0}
.slide .layout > :not(.txt){width:100%;justify-self:start}
.slide .miniui{min-width:0;max-width:560px;font-size:14.5px;border-radius:20px}
.slide .miniui .mt{padding:15px 20px;font-size:15.5px}
.slide .miniui .mi{width:34px;height:34px;border-radius:11px}
.slide .miniui .mi .ico{width:17px;height:17px}
.slide .miniui .mr{padding:12px 20px;gap:18px}
.slide .miniui dt,.slide .miniui dd{font-size:14px;line-height:1.45}
.slide .miniui .note{padding:13px 20px;font-size:13px}
.slide .mini{min-width:0;max-width:480px;font-size:14px;border-radius:14px}
.slide .mini .mh,.slide .mini .mr{grid-template-columns:1fr 1fr 64px;height:30px;line-height:30px}
.slide .mini .mh{font-size:12px}
.slide .mini .mv{padding-left:10px}
.slide .mini .mo{font-size:12px}
.slide .mini .note,.slide .minichart .note{font-size:13px;padding:11px 14px}
.slide .minichart{min-width:0;max-width:none}
@media (max-width:1000px){.slide .layout{grid-template-columns:1fr}.slide .layout > :not(.txt){max-width:560px}}
/* теория: слайд без картинки — заголовок на всю ширину, текст в две колонки на весь блок */
.slide .layout.full{grid-template-columns:1fr}
.slide .layout.full .txt{columns:2;column-gap:56px}
.slide .layout.full .txt > .sn,.slide .layout.full .txt > h3,.slide .layout.full .txt > .tip{column-span:all}
.slide .layout.full .txt p,.slide .layout.full .txt ul,.slide .layout.full .txt .tip{max-width:none}
.slide .layout.full .txt p,.slide .layout.full .txt li,.slide .layout.full .txt .tip{break-inside:avoid}
.slide .layout.full .txt > .tip{margin-top:6px}
@media (max-width:1000px){.slide .layout.full .txt{columns:1}}
/* тест: при переходе к следующему вопросу рамка стоит, мягко проявляются только вопрос и варианты — как текст в теории */
.panel.q.qfade > h3,.panel.q.qfade > .opts{animation:paneIn .3s ease-out}
/* старый вопрос плавно гаснет перед сменой: вопрос, варианты и пояснение; рамка, прогресс и кнопки остаются */
.panel.q.qout > h3,.panel.q.qout > .opts,.panel.q.qout > #ex{animation:qOut .2s ease-in forwards}
@keyframes qOut{from{opacity:1}to{opacity:0}}
@media (prefers-reduced-motion:reduce){.panel.q.qfade > h3,.panel.q.qfade > .opts,.panel.q.qout > h3,.panel.q.qout > .opts,.panel.q.qout > #ex{animation:none}}
/* кнопка «← Курсы» в шапке экрана: как «Назад» в уроке (серая .btn.ghost), высота как у значка рядом — 40px */
.lesson-head #back{height:40px;padding:0 16px;font-size:14px;border-radius:10px;background:rgba(255,255,255,.05);border-color:var(--line);color:var(--muted);transition:background .15s,border-color .15s,color .15s}
.lesson-head #back:hover{background:rgba(255,255,255,.1);border-color:var(--line);color:#fff}
/* кнопки со стрелкой: оптическое центрирование. У стрелки внутри иконки пустые поля, а жирный текст визуально тяжелее,
   поэтому со стороны стрелки отступ меньше, зазор стрелка–текст уже, а сама стрелка чуть жирнее — группа выглядит по центру */
.lesson-head #back{padding:0 17px 0 13px;gap:6px}
.navrow #prev{padding-left:16px;padding-right:21px;gap:6px}
.navrow #next{padding-left:21px;padding-right:16px;gap:6px}
.lesson-head #back .ico,.navrow #prev .ico,.navrow #next .ico{stroke-width:2.3}

/* ---------- выбор языка в шапке: кружок с кодом языка, под ним меню (языки + сброс прогресса) ---------- */
.lang{position:relative}
.lang-btn{font:800 12.5px/1 var(--font);letter-spacing:.05em;padding:0 12px;border-radius:10px;width:auto;min-width:56px}
.lang-btn[aria-expanded="true"]{background:rgba(255,255,255,.1);color:#fff}
.lang-menu{position:fixed;top:60px;right:28px;min-width:210px;border-radius:16px;padding:6px;z-index:20;display:flex;flex-direction:column;gap:2px;animation:langIn .14s ease-out}
.lang-menu[hidden]{display:none}
@keyframes langIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.lang-opt{display:flex;align-items:center;gap:10px;width:100%;background:none;border:0;border-radius:9px;padding:9px 10px;color:var(--muted);font:600 13.5px/1.2 var(--font);cursor:pointer;text-align:left;transition:background .12s,color .12s}
.lang-opt:hover{background:rgba(255,255,255,.09);color:#fff}
.lang-opt b{width:24px;flex:none;font-size:11px;font-weight:800;letter-spacing:.05em;color:var(--dim);transition:color .12s}
.lang-opt:hover b{color:var(--muted)}
.lang-opt > .ico{width:15px;height:15px;margin-left:auto;flex:none;opacity:0;color:var(--orange2)}
.lang-opt.on{color:#fff}
.lang-opt.on b{color:var(--orange2)}
.lang-opt.on > .ico{opacity:1}
.lang-sep{height:1px;background:rgba(255,255,255,.1);margin:4px 6px}
.lang-reset{color:var(--dim);font-size:13px}
.lang-reset > .ico:first-child{width:15px;height:15px;margin:0 9px 0 0;opacity:1;color:inherit;flex:none}
.lang-reset.armed{color:var(--bad);background:rgba(255,77,94,.08)}

/* кнопки «Начать» на главной — оптическое выравнивание, как у «Назад» / «Дальше»: сторона со стрелкой уже
   (стрелка сходится в точку), сторона текста на 1px шире, зазор 6px, штрих 2.3. У «▶ Начать: …» треугольник
   обращён к краю плоской стороной, поэтому поля почти равные */
#ctaNext{padding-left:19px;padding-right:21px;gap:6px}
#qsGo{padding-left:21px;padding-right:16px;gap:6px}
#dailyGo{padding-left:15px;padding-right:11px;gap:6px}
#ctaNext .ico,#qsGo .ico,#dailyGo .ico{stroke-width:2.3}
.promo-cta #promoGo:has(.ico){padding-left:20px;padding-right:22px;gap:6px}
.promo-cta #promoGo .ico{stroke-width:2.3}

/* ---------- стакан и график: время жизни плотностей, индикаторы фьючерса, ликвидации, линейка, окно корреляции с BTC ---------- */
.lr .lv em.age{position:absolute;right:3px;top:50%;transform:translateY(-50%);z-index:2;font-style:normal;font-size:9.5px;font-weight:700;line-height:14px;padding:0 4px;border-radius:4px;background:rgba(10,12,16,.72);color:#dfe3ea;letter-spacing:.02em}
.lr .lv em.age.new{background:#f3bb2e;color:#1a1200}
.lr .lv.flt em.age{background:rgba(26,18,0,.78);color:#ffe2a8}
.lr .lv.flt em.age.new{background:#fff;color:#1a1200}
.tt-indw{position:absolute;top:6px;z-index:4;display:flex;flex-direction:column;gap:3px}
.tt-indw .iw{display:grid;grid-template-columns:50px auto auto;align-items:baseline;gap:6px;background:rgba(20,23,29,.92);border:1px solid #2d333d;border-radius:7px;padding:3px 8px;font-size:11px;color:#8f96a3;white-space:nowrap}
.tt-indw .iw label{font-weight:600;color:#8f96a3}
.tt-indw .iw b{color:#eef1f5;font-weight:700}
.tt-indw .iw b.hot{color:#f3bb2e}.tt-indw .iw b.neg{color:#7fb5ff}
.tt-indw .iw small{color:#6f7683;font-size:10.5px}
.tt-prints .pr.liq{border-radius:3px;background:#ff9f1a;box-shadow:0 0 0 2px rgba(255,159,26,.35),0 0 12px rgba(255,159,26,.6)}
.tt-tape .t.liq{color:#ffb454;background:rgba(255,159,26,.1);font-weight:700}
.lr.rul .lp{box-shadow:inset 3px 0 0 #c77dff;background-image:linear-gradient(rgba(199,125,255,.18),rgba(199,125,255,.18))}
.tt-rul{position:absolute;z-index:5;background:rgba(20,23,29,.94);border:1px solid rgba(199,125,255,.7);border-radius:10px;padding:6px 10px;box-shadow:0 10px 26px rgba(0,0,0,.55);pointer-events:none;min-width:150px}
.tt-rul b{display:block;color:#fff;font-size:13px;font-weight:700}
.tt-rul span{display:block;color:#d9a5ff;font-size:11px;white-space:nowrap}
.tt-corr{margin-bottom:10px}
.tt-corr canvas{display:block;width:100%;height:118px;background:#0f1116}
.tt-corr .tt-head .chip b{color:#f7931a}.tt-corr .tt-head .chip.alt b{color:#7fb5ff}
.tt-corr .corrv{font-size:11.5px;font-weight:600;color:#8f96a3}.tt-corr .corrv.hot{color:#f3bb2e}
.tt-chart.tall canvas{height:340px}
.mini .mv em.age{position:absolute;right:3px;top:4px;z-index:2;font-style:normal;font-size:9px;font-weight:700;line-height:14px;padding:0 4px;border-radius:4px;background:rgba(10,12,16,.72);color:#dfe3ea}
.mini .mv em.age.new{background:#f3bb2e;color:#1a1200}
.mini .mv.flt em.age{background:rgba(26,18,0,.78);color:#ffe2a8}
.mini.wide .mh,.mini.wide .mr{grid-template-columns:106px 76px 40px}

/* ---------- экраны курса «Продукты» и окна терминала: дневник, групповые алерты, TigerControl, субаккаунты, синтетика, приостановка торговли ---------- */
.scr-root .jtabs{display:flex;gap:4px;margin:2px 0 14px;border-bottom:1px solid #1f1e2b}
.scr-root .jtabs b{padding:9px 14px;font-weight:700;font-size:13.5px;color:#8a89a0;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;border-radius:8px 8px 0 0}
.scr-root .jtabs b.on{color:#fff;border-bottom-color:#ff9f43}
.scr-root .jbar{display:flex;align-items:center;gap:12px;margin:0 0 10px;flex-wrap:wrap}
.scr-root .jf{display:inline-flex;align-items:center;gap:4px;color:#8a89a0;font-size:12px}
.scr-root .jf b{padding:6px 11px;border-radius:9px;background:#14141d;border:1px solid #1f1e2b;color:#c9c8d6;font-weight:700;cursor:pointer}
.scr-root .jf b.on{border-color:#ff9f43;color:#fff}
.scr-root .jbar .sp{flex:1}
.scr-root .jbar .wr{color:#8a89a0;cursor:pointer}
.scr-root .jt{background:#14141d;border:1px solid #1f1e2b;border-radius:14px;overflow:hidden}
.scr-root .jt .jh,.scr-root .jt .jr{display:grid;grid-template-columns:1.1fr .7fr 1.4fr .8fr .9fr .8fr .9fr .7fr .7fr;gap:8px;align-items:center;padding:10px 14px;font-size:12.5px}
.scr-root .jt .jh{color:#8a89a0;font-size:11px;border-bottom:1px solid #1f1e2b}
.scr-root .jt .jr{border-top:1px solid #1a1925;cursor:pointer}
.scr-root .jt .jr:hover,.scr-root .jt .jr.on{background:#1a1a24}
.scr-root .jt .jr em{font-style:normal;font-size:10px;color:#8a89a0;border:1px solid #2b2a3a;border-radius:5px;padding:0 5px;margin-left:4px}
.scr-root .jtag{font-style:normal;display:inline-block;font-size:11px;color:#e9e8f2;background:#23222f;border-radius:7px;padding:2px 8px;margin-right:4px;white-space:nowrap}
.scr-root .jcard .jch{display:flex;align-items:center;gap:10px}
.scr-root .jcard .jch .sp{flex:1}
.scr-root .jcard .jck{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:10px}
.scr-root .jcard .jck span{font-size:11px;color:#8a89a0}
.scr-root .jcard .jck b{font-size:14px;color:#fff;margin-top:2px}
.scr-root .jsum{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.scr-root .jsum .ccard{margin:0}
.scr-root .jsum .ccard > b{font-size:16px;margin-bottom:4px}
.scr-root .jbars{display:flex;flex-direction:column;gap:12px;margin-top:14px}
.scr-root .jb{display:grid;grid-template-columns:150px 1fr 90px;gap:10px;align-items:center;font-size:12.5px;color:#c9c8d6}
.scr-root .jb i{display:block;height:12px;border-radius:6px;background:#22c55e}
.scr-root .jb i.neg{background:#ff7a5c}
.scr-root .jb b{text-align:right}
.scr-root .grp0 h1{color:#fff}
.scr-root .grp0 p{max-width:560px;margin:8px auto 18px;line-height:1.5}
.scr-root .grp0 .row2{justify-content:center}
.scr-root .grpc{max-width:440px;margin:40px auto;background:#14141d;border:1px solid #1f1e2b;border-radius:20px;padding:24px}
.scr-root .grpc label{display:block;color:#8a89a0;font-size:12px;margin:12px 0 2px}
.scr-root .grpq{display:flex;align-items:center;gap:12px;background:#1a1a24;border-radius:12px;padding:12px 14px;margin-top:12px}
.scr-root .grpq span{color:#8a89a0;font-size:12px;flex:1}
.scr-root .grpq i{font-style:normal;color:#8a89a0}
.scr-root .grph{display:flex;align-items:center;gap:12px;margin:4px 0 12px;flex-wrap:wrap}
.scr-root .grph h1{margin:0}
.scr-root .grph .sp{flex:1}
.scr-root .ava.lg{width:52px;height:52px;cursor:default}
.scr-root .two.grp{grid-template-columns:1fr 280px}
.scr-root .grpa{display:grid;grid-template-columns:44px auto 1fr;gap:4px 10px;align-items:center;padding:10px 0;border-top:1px solid #1f1e2b}
.scr-root .grpa .t{color:#8a89a0;font-size:11.5px}
.scr-root .grpa > b{font-size:13.5px}
.scr-root .grpa p{grid-column:2 / -1;margin:0;color:#c9c8d6;font-size:12.5px}
.scr-root .grpa small{grid-column:2 / -1;color:#8a89a0;font-size:11px}
.scr-root .grpa .src{font-style:normal;font-size:10px;color:#7fb5ff;border:1px solid #2b3a55;border-radius:6px;padding:1px 6px;justify-self:start}
.scr-root .grpm{display:grid;grid-template-columns:36px auto 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;padding:7px 0}
.scr-root .grpm .ava{grid-row:1 / 3}
.scr-root .grpm b{font-size:13px}
.scr-root .grpm small{grid-column:2 / -1;color:#8a89a0;font-size:11px}
.scr-root .grpm .zap{font-style:normal;color:#ff9f43;font-size:12px}
.scr-root .grptags{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0}
.scr-root .grptags b{padding:6px 11px;border-radius:9px;background:#1a1a24;border:1px solid #2b2a3a;font-size:12px;cursor:pointer;display:inline-block}
.scr-root .grptags b.on{border-color:#ff9f43;color:#fff}
.scr-root .cmd label{display:block;color:#8a89a0;font-size:12px;margin:12px 0 2px}
.scr-root .mc-wrap{display:flex;gap:40px;align-items:center;justify-content:center;min-height:820px;background:radial-gradient(circle at 30% 30%,#1b1826,#09090e 70%);border-radius:14px;box-shadow:0 30px 80px rgba(0,0,0,.55);padding:30px}
.scr-root .mc-phone{position:relative;width:340px;height:700px;border-radius:44px;background:#0b0b12;border:10px solid #1f1e2b;box-shadow:0 0 0 2px #34324a,0 30px 70px rgba(0,0,0,.7);display:flex;flex-direction:column;overflow:hidden}
.scr-root .mc-status{display:flex;justify-content:space-between;padding:12px 22px 6px;font-size:12px;font-weight:700;color:#fff}
.scr-root .mc-push{margin:6px 10px;background:rgba(40,38,58,.96);border-radius:16px;padding:10px 14px;cursor:pointer;box-shadow:0 10px 24px rgba(0,0,0,.5);animation:pop .25s}
.scr-root .mc-push b{display:block;font-size:11px;color:#8a89a0}
.scr-root .mc-push span{display:block;font-size:13px;color:#fff;margin-top:2px}
.scr-root .mc-body{flex:1;overflow:auto;padding:8px 14px}
.scr-root .mc-h{padding:8px 2px 12px}
.scr-root .mc-h small{display:block;color:#8a89a0;font-size:11.5px}
.scr-root .mc-h b{display:block;font-size:26px;font-weight:800;margin:2px 0}
.scr-root .mc-pos{display:flex;flex-direction:column;gap:8px;margin:6px 0 10px}
.scr-root .mc-pos > div{display:flex;align-items:center;justify-content:space-between;gap:8px;background:#14141d;border:1px solid #1f1e2b;border-radius:14px;padding:12px 14px;font-size:13px}
.scr-root .mc-pos em{font-style:normal;font-size:11px}
.scr-root .mc-pos.one > div:last-child span{color:#8a89a0;font-size:12px}
.scr-root .mc-pos.one b{color:#fff}
.scr-root .mc-chart{height:150px;border-radius:14px;margin:4px 0 10px;background:linear-gradient(180deg,rgba(255,122,92,.18),transparent 80%),repeating-linear-gradient(0deg,transparent 0 29px,#1f1e2b 29px 30px)}
.scr-root .mc-ro{display:flex;justify-content:space-between;margin-top:12px;padding:10px 14px;border:1px dashed #2b2a3a;border-radius:12px;font-size:12px;color:#8a89a0}
.scr-root .mc-ro b{color:#fff}
.scr-root .mc-empty{color:#8a89a0;text-align:center;margin:40px 0;font-size:13px}
.scr-root .mc-body .row2 .cbtn{flex:1;padding:9px 6px}
.scr-root .cbtn.mc-danger{background:#3a1720;color:#ff8fa3;border-color:#5c2230}
.scr-root .cbtn.mc-buy{background:#1f8f5c;color:#fff}
.scr-root .cbtn.mc-sell{background:#c63a55;color:#fff}
.scr-root .mc-body .crow{grid-template-columns:32px 1fr auto;padding:10px 12px}
.scr-root .mc-body .crow .cri{width:32px;height:32px;font-size:13px}
.scr-root .mc-tabs{display:flex;justify-content:space-around;border-top:1px solid #1f1e2b;padding:8px 4px 16px;background:#0f0f17}
.scr-root .mc-tabs b{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:10px;color:#8a89a0;cursor:pointer;padding:4px 6px;border-radius:10px}
.scr-root .mc-tabs b i{font-style:normal;font-size:16px}
.scr-root .mc-tabs b.on{color:#ff9f43}
.scr-root .mc-phone .cmodal{border-radius:34px}
.scr-root .mc-phone .cmd{width:100%}
.scr-root .mc-side{max-width:300px;color:#8a89a0;font-size:13px;line-height:1.5}
.scr-root .mc-side b{display:block;color:#fff;font-size:22px;font-weight:800;margin-bottom:8px}
/* TigerControl — по скриншотам документации: строка «Биржа», серая кнопка, вкладки Позиции/Ордера, список настроек с разделителями */
.scr-root .mc-head{display:flex;align-items:center;gap:6px;padding:4px 16px 8px}
.scr-root .mc-head .logo{display:flex;align-items:center;gap:6px;font-weight:800;font-size:15px;color:#fff}
.scr-root .mc-head .logo svg{width:22px;height:22px}
.scr-root .mc-head b{position:relative;width:34px;height:34px;border-radius:10px;background:#1a1a25;display:flex;align-items:center;justify-content:center;font-size:15px;cursor:pointer}
.scr-root .mc-head b i{position:absolute;top:5px;right:6px;width:6px;height:6px;border-radius:50%;background:#ff5c5c}
.scr-root .mc-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 2px}
.scr-root .mc-row small{color:#8a89a0;font-size:14px}
.scr-root .mc-row b{display:flex;align-items:center;gap:6px;font-size:16px;color:#fff}
.scr-root .mc-row b em{font-style:normal;color:#8a89a0}
.scr-root .mc-row .coin{width:14px;height:14px;border-radius:50%;background:#f3ba2f}
.scr-root .mc-row.sm{padding:4px 2px 8px}
.scr-root .mc-row.sm small{font-size:12.5px}
.scr-root .mc-row.sm b{font-size:13px}
.scr-root .mc-row .qi{font-size:9px;padding:0 5px;margin-left:4px}
.scr-root .cbtn.mc-gray{background:#1a1a25;color:#8a89a0;border-color:#24232f;padding:11px}
.scr-root .cbtn.mc-gray:not(.dis){color:#e9e8f2}
.scr-root .mc-tabs2{display:flex;gap:18px;padding:10px 2px 2px}
.scr-root .mc-tabs2 b{font-size:22px;font-weight:800;color:#5c5b70}
.scr-root .mc-tabs2 b.on{color:#fff}
.scr-root .mc-tabs2 sup{font-size:11px;font-weight:700;margin-left:2px}
.scr-root .mc-empty.big{font-size:16px;font-weight:700;color:#5c5b70;margin:30px 0}
.scr-root .mc-pos > div > div{display:flex;flex-direction:column;gap:2px;min-width:0}
.scr-root .mc-pos > div small{color:#8a89a0;font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scr-root .mc-pos > div > span{white-space:nowrap;font-weight:700}
.scr-root .mc-top{display:grid;grid-template-columns:28px 1fr 28px;align-items:center;padding:2px 0 10px;border-bottom:1px solid #1f1e2b;margin-bottom:6px}
.scr-root .mc-top b{cursor:pointer;font-size:18px;color:#fff}
.scr-root .mc-top span{text-align:center;font-weight:700;font-size:15px;color:#fff}
.scr-root .mc-tg{display:flex;align-items:center;gap:12px;padding:6px 2px 10px}
.scr-root .mc-tg .ava{width:44px;height:44px;flex:none}
.scr-root .mc-tg small{color:#8a89a0;font-size:13px}
.scr-root .mc-tg small span{color:#5c5b70}
.scr-root .mc-list .crow{background:none;border:0;border-radius:0;padding:9px 2px;grid-template-columns:28px 1fr auto}
.scr-root .mc-list .crow .cri{width:24px;height:24px;font-size:12px;background:none}
.scr-root .mc-list .crow b{font-size:13px;font-weight:500}
.scr-root .mc-list .crow .qi{font-size:9px;padding:0 5px;margin-left:4px;vertical-align:middle}
.scr-root .mc-list hr{border:0;border-top:1px solid #1f1e2b;margin:6px 0}
.scr-root .mc-list .chev-r{font-style:normal;color:#5c5b70;font-size:20px;line-height:1}
.scr-root .mc-list .mc-out{color:#ff7a5c}

.scr-root .sa-t{background:#14141d;border:1px solid #1f1e2b;border-radius:14px;overflow:hidden;margin-bottom:14px}
.scr-root .sa-h,.scr-root .sa-r{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr 40px;gap:10px;align-items:center;padding:12px 16px;font-size:12.5px}
.scr-root .sa-h{color:#8a89a0;font-size:11px;border-bottom:1px solid #1f1e2b}
.scr-root .sa-r{border-top:1px solid #1a1925}
.scr-root .sa-r.new{background:rgba(255,159,67,.06)}
.scr-root .sa-dots{color:#8a89a0;font-size:18px;text-align:center;cursor:default}
.scr-root .cab p.rm-paused{color:#ff8fa3;background:rgba(214,59,86,.1);border:1px solid rgba(214,59,86,.35);border-radius:12px;padding:10px 14px}
.scr-root .tdlg.synth{width:900px}
.scr-root .syn{display:grid;grid-template-columns:150px 220px 1fr;gap:16px;margin-top:10px;min-height:520px}
.scr-root .syn-nav{display:flex;flex-direction:column;gap:4px;border-right:1px solid #333;padding-right:10px}
.scr-root .syn-nav a{padding:8px 10px;border-radius:6px;color:#b8b8c2;font-size:12.5px}
.scr-root .syn-nav a.on{background:#2a2a2a;color:#fff;font-weight:700}
.scr-root .syn-list{border-right:1px solid #333;padding-right:12px}
.scr-root .syn-lh{display:flex;align-items:center;gap:6px;margin-bottom:8px}
.scr-root .syn-lh .sp{flex:1}
.scr-root .syn-li{display:flex;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:6px;font-size:12.5px;color:#d8d8e0}
.scr-root .syn-li.on{background:#2a2a2a;color:#fff}
.scr-root .syn-li span{color:#9a9aa6;font-variant-numeric:tabular-nums}
.scr-root .syn-ed label{display:block;color:#9a9aa6;font-size:12px;margin:10px 0 4px}
.scr-root .syn-f{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-height:46px;padding:8px 40px 8px 10px;border:1px solid #3a3a3a;border-radius:8px;background:#141414;position:relative}
.scr-root .syn-f .br{display:inline-flex;align-items:center;gap:6px;border-radius:6px;padding:4px 8px;font-size:13px;font-weight:700}
.scr-root .syn-f .br.tk{background:#253047;color:#cfe0ff}
.scr-root .syn-f .br.tk small{font-weight:500;color:#8fa6cf;font-size:11px}
.scr-root .syn-f .br.tk i{font-style:normal;color:#8fa6cf;cursor:pointer;margin-left:2px}
.scr-root .syn-f .br.op{background:#2e2e2e;color:#f5a15c;min-width:26px;justify-content:center}
.scr-root .syn-f .br.num{background:#2e2e2e;color:#fff}
.scr-root .syn-clr{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:transparent;border:0;cursor:pointer;opacity:.7}
.scr-root .syn-tools{display:flex;gap:14px;align-items:flex-start;margin-top:10px}
.scr-root .syn-add{position:relative}
.scr-root .cmenu.syn-tk{top:36px;left:0;width:210px;background:#1f1f1f;border-color:#3a3a3a}
.scr-root .cmenu.syn-tk small{margin-left:auto;color:#9a9aa6;font-weight:500}
.scr-root .syn-calc{display:grid;grid-template-columns:repeat(5,40px);gap:6px}
.scr-root .syn-calc button{height:34px;border-radius:6px;border:1px solid #3a3a3a;background:#262626;color:#fff;font-family:inherit;font-size:14px;cursor:pointer}
.scr-root .syn-calc button:hover{background:#323232}
.scr-root .syn-q{display:flex;gap:18px;align-items:baseline;margin-top:14px;padding:10px 12px;border:1px solid #333;border-radius:8px;font-size:12.5px;color:#9a9aa6}
.scr-root .syn-q b{color:#fff}
.scr-root .syn-st{margin-top:8px;padding:8px 12px;border-radius:8px;font-size:12.5px}
.scr-root .syn-st.ok{background:rgba(49,196,106,.12);color:#5fe08f}
.scr-root .syn-st.err{background:rgba(255,77,106,.12);color:#ff8fa3}
.lr .lo.age{font-size:9px;font-weight:700;color:#dfe3ea;background:#1b1f27;letter-spacing:0;white-space:nowrap;overflow:hidden}
.lr .lo.age.new{background:#f3bb2e;color:#1a1200}
.scr-root .syn-q{flex-wrap:wrap}
.scr-root .syn-q span{white-space:nowrap}

/* ==========================================================================
   Главная: карточка звания. Кольцо — уровень, его заполнение — опыт до следующего уровня; рядом звание и подсказка,
   снизу опыт, уроки и достижения. Уровня в шапке нет.
   ========================================================================== */
.stats.prof{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"ring head" "kv kv";gap:0 26px;padding:24px 26px 20px;align-items:center;align-self:center}
.prof .ring{grid-area:ring;width:148px;height:148px}
.prof .ring svg{width:148px;height:148px}
.prof .ring circle{stroke-width:7}
.prof .ring .lv b{font-size:52px;font-weight:800;line-height:1;letter-spacing:-.02em}
.prof .ring .lv small{font-size:11px;margin-top:5px}
.prof .p-head{grid-area:head;min-width:0;container-type:inline-size;padding-left:21.6%}
.prof .p-head .k{font-size:12px}
.prof .p-head .v{display:block;font-size:clamp(20px,14.5cqw,38px);line-height:1.08;letter-spacing:-.015em;text-wrap:balance;margin-top:6px}
.prof .p-head .next{font-size:14px;line-height:1.5;padding-top:12px}
.prof .p-kv{grid-area:kv;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) minmax(0,1fr);margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.prof .p-kv > div{padding:0 16px;border-left:1px solid var(--line);min-width:0;display:flex;flex-direction:column;justify-content:space-between;gap:2px}
.prof .p-kv .k{white-space:nowrap}
.prof .p-kv > div:first-child{padding-left:0;border-left:0}
.prof .p-kv .v{font-size:20px;white-space:nowrap}
@media (max-width:560px){.prof .p-kv .k{white-space:normal}.stats.prof{padding:20px 18px 18px;gap:0 18px}.prof .ring,.prof .ring svg{width:112px;height:112px}.prof .ring .lv b{font-size:40px}.prof .p-head .v{font-size:21px}.prof .p-kv > div{padding:0 10px}.prof .p-kv .v{font-size:17px}}

/* главная: больше воздуха между блоками (достижения переехали на свою вкладку) */
.dash .card{padding:22px 24px;gap:12px}
.courses .sec-h{margin-bottom:20px}

/* вкладка «Достижения» */
.ach-sum{display:flex;align-items:center;gap:24px;margin:8px 0 36px;padding:22px 26px;background:var(--panel);border:1px solid var(--line);border-radius:22px}
.ach-sum .as-n{display:flex;align-items:baseline;gap:6px;flex:none;font-family:var(--head);font-weight:800;line-height:1}
.ach-sum .as-n b{font-size:46px;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.ach-sum .as-n span{font-size:20px;color:var(--muted)}
.ach-sum .as-t{flex:1;min-width:0}
.ach-sum .as-t b{display:block;font-family:var(--head);font-size:17px;font-weight:800}
.ach-sum .as-t span{display:block;margin-top:3px;color:var(--muted);font-size:13px}
.ach-sum .as-bar{max-width:520px;height:5px;margin-top:12px;border-radius:3px;background:rgba(255,255,255,.08);overflow:hidden}
.ach-sum .as-bar i{display:block;height:100%;background:var(--grad)}
.ach-g{margin-bottom:36px}
.ach-g h3{display:flex;align-items:baseline;gap:10px;margin:0 0 14px;font-size:18px;font-weight:800}
.ach-g h3 small{font-size:13px;font-weight:700;color:var(--muted)}
.ach-g .badges{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.ach-g .bdg{padding:16px 18px;gap:14px}
.ach-g .bdg .bi{width:46px;height:46px}
.ach-g .bdg > div{flex:1;min-width:0}
.ach-g .bdg > .st{width:16px;height:16px;flex:none;color:var(--dim)}
.ach-g .bdg.on > .st{color:var(--ok)}

/* Карточка звания и все блоки на фоне страницы — прозрачная заливка var(--panel): rgba(125,104,198,.1) поверх фона #050408
   даёт тот же #110e1b, что и var(--surface), но сквозь блок видна фоновая подсветка. Без размытия.
   Меню языка — как сама кнопка языка: лёгкая светлая заливка и тонкая рамка поверх тёмной подложки; фон под меню размыт,
   чтобы текст страницы не просвечивал (поэтому меню лежит в body, см. placeMenu в app.js) */
.stats.prof{background:var(--panel);border:1px solid var(--line)}
.lang-menu{background:linear-gradient(rgba(255,255,255,.05),rgba(255,255,255,.05)),rgba(8,7,13,.84);border:1px solid var(--line);border-radius:10px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 16px 40px rgba(0,0,0,.45)}
.lang-opt{border-radius:7px}

/* Без тонких обводок у блоков на фоне страницы: форму держит заливка --panel, светлые рамки в 1px «дешевили» интерфейс.
   Оставлены рамки со смыслом: «твой ход» у наставника, верный/неверный ответ, кнопки, поля ввода, клавиши. */
.card,.card.daily,.card.daily.done,.ccard,.ccard.on,.course,.panel,.mentor,.term,.setup,.profile,.hotkeys,.kp,.bdg,.ach-sum,.stats.prof,.stage-blk,.stage-blk.done,.stages,.tabs,.qs,.rstrip,.rstrip:hover,.rstrip.done,.reward,.qs-step,.qs-step:hover,.qs-step.done,.wi,.wi:hover,.opt,.opt:hover,.explain,.result .stat,.lmeta span,.recap{border-color:transparent}
.stage-blk{background:rgba(255,255,255,.035)}

/* главная, карточка «Журнал»: подпись сверху, число прижато к низу — в каждой плитке всё на своём месте, числа на одной линии */
.card .kpi div{display:flex;flex-direction:column;gap:10px;padding:12px 12px 11px}
.card .kpi span{order:-1;font-size:10px;line-height:1.35}
.card .kpi b{margin-top:auto;font-size:20px}
/* кнопка «Открыть журнал» — как кнопка языка: полупрозрачная, серый текст, белеет при наведении */
#toJournal{background:rgba(255,255,255,.05);border:1px solid var(--line);color:var(--muted);border-radius:10px}
#toJournal:hover{background:rgba(255,255,255,.1);border-color:var(--line);color:#fff}
/* полоса награды при наведении приподнимается — чуть заметнее, чем карточки курсов (−2px) */
.rstrip:hover{transform:translateY(-4px)}

/* Одна линия слева и справа: логотип, текст первого экрана, кнопки и края всех блоков стоят по краю контента (28px);
   справа по той же линии кнопка языка и правые края блоков. Внутренний отступ верхних блоков — 24px. */
.hero p{max-width:none}
.rstrip,.stats.prof,.ccards .ccard,.kpis .kp,.ach-sum,.ach-g .bdg,.terms .term,.setups .setup,.profiles .profile,.panel.slide,.panel.gloss,.sim-right .mentor{padding-left:24px;padding-right:24px}
/* главная: карточки дня, недели и журнала одной ширины и высоты; левая и правая части первого экрана одной высоты —
   кнопка слева внизу на уровне низа карточки звания, строка опыта/уроков/достижений прижата к низу карточки */
@media (min-width:1001px){.dash{grid-template-columns:repeat(3,minmax(0,1fr))}}
.hero{align-items:stretch}
.hero > div:first-child{display:flex;flex-direction:column}
.hero .cta{margin-top:auto}
.stats.prof{align-self:stretch;align-content:space-between}
/* оптическое выравнивание по той же линии: у крупных букв поле слева (замер canvas measureText: «С» в заголовке 44px — 2.2px,
   «5» в фактах — 0.9px, «К» в «Курсы» — 1.6px), поэтому текст сдвинут так, чтобы сама буква стояла ровно по краю блоков */
.hero h1{margin-left:-2px}
.hero .facts{margin-left:-1px}
.courses .sec-h h2{margin-left:-1.5px}
/* главная: кнопки «Начать / Повторить урок» и «Открыть журнал» — внизу карточек на всю ширину (поля по краям — отступ карточки) */
#dailyGo,#toJournal{align-self:stretch;margin-top:auto}
/* подсказка у заголовка «Курсы» — одной строкой справа напротив заголовка, по его базовой линии (на узком экране переносится) */
.courses .sec-h{align-items:baseline;flex-wrap:nowrap}
.courses .sec-h p{max-width:none;margin:0;text-align:right}
/* карточка курса: прежние пропорции, иконка ровно посередине между левым краем и текстом — по 17px (рамка 1 + отступ 16 = зазор 17) */
.ccards .ccard{padding-left:16px;padding-right:18px;column-gap:17px}
/* первый экран: плашка следующего урока (выбран вариант 2) — прижата к низу колонки, по нижнему краю карточки звания; кнопка внутри */
.hero .nextp{flex-wrap:nowrap;gap:16px;padding:14px 14px 14px 16px;border-radius:18px;background:var(--panel)}
.hero .nx-ico{flex:none;width:48px;height:48px;border-radius:14px;background:var(--orange-soft);color:var(--orange2);display:inline-flex;align-items:center;justify-content:center}
.hero .nx-ico .ico{width:22px;height:22px}
.hero .nx-ico.done{background:rgba(49,196,106,.14);color:var(--ok)}
.hero .nx-t{flex:1;min-width:0}
.hero .nx-t small{display:block;font-size:10.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.hero .nx-t b{display:block;margin-top:3px;font-family:var(--head);font-size:16px;font-weight:800}
.hero .nx-t span{display:block;margin-top:2px;font-size:12px;color:var(--dim)}
.hero .nextp .btn{flex:none}
@media (max-width:560px){.hero .nextp{flex-wrap:wrap}.hero .nextp .btn{width:100%}}
/* ответы в тесте: без рамки, верный/неверный — только заливкой (зелёной/красной) */
.opt.right,.opt.wrong,.opt.right:hover,.opt.wrong:hover{border-color:transparent}
/* Оптическая линия текста. Блок со скруглением 18px глазом начинается не с края, а с середины дуги угла — 0.29·r ≈ 5px внутри,
   поэтому текст ровно по краю блока казался выступающим. Свободный текст (логотип, заголовок, абзац и цифры первого экрана, «Курсы»,
   заголовки групп достижений) стоит на 5px внутри линии блоков; текст, выровненный вправо (подсказка у «Курсы»), — на 5px справа. */
:root{--optic:5px}
.brand,.hero > div:first-child > h1,.hero > div:first-child > p,.hero > div:first-child > .facts,.ach-g h3{padding-left:var(--optic)}
.courses .sec-h{padding-left:var(--optic);padding-right:var(--optic)}
/* всплывающие уведомления без светлой рамки — форму держит заливка и тень */
.toast{border-color:transparent}
/* оптический центр надписей в кнопках со стрелкой в конце (как у «Дальше →»): у стрелки поля внутри значка ~2.7px и она легче текста,
   поэтому надпись казалась сдвинутой влево — сторона стрелки −4px, сторона текста +1px, зазор 6px */
#ctaNext,#ctaRepeat,#qsGo,#go1,#nextL{gap:6px;padding-left:21px;padding-right:16px}
#dailyGo,#toJournal,.mentor .choices [data-go]{gap:6px;padding-left:15px;padding-right:10px}
/* полупрозрачные кнопки без рамки: язык, серия, «Открыть журнал», «← Курсы» и остальные ghost-кнопки (рамка у «Подставить пример» остаётся) */
.pill,.streak,.streak.on,#toJournal,#toJournal:hover,.lesson-head #back,.lesson-head #back:hover,.btn.ghost,.btn.ghost:hover{border-color:transparent}
/* Градиентные блоки без видимой рамки: фон по умолчанию рисуется от внутреннего края рамки и повторяется, поэтому в прозрачной
   рамке 1px справа и снизу проступал начальный (самый яркий) цвет градиента — фиолетовая, зелёная, розовая полоска. Фон от внешнего края. */
*,*::before,*::after{background-origin:border-box!important} /* !important: сокращение background в правилах блоков сбрасывает origin обратно */
/* шапка урока и страниц: «← Курсы», значок и блок заголовка одной высоты — 48px, верх и низ на одной линии */
.lesson-head #back{height:48px}
.lesson-head .cico{width:48px;height:48px;border-radius:14px}
.lesson-head .cico .ico{width:22px;height:22px}
.lesson-head h2 > span:last-child{display:flex;flex-direction:column;justify-content:center;min-height:48px}
.lesson-head h2 small{line-height:16px;margin-bottom:2px}
.lesson-head h2 b{display:block;line-height:30px}
/* меню языка без рамки */
.lang-menu{border-color:transparent}
/* плашка следующего урока: две строки справа от значка — название и «Первый/Следующий урок · курс · время» — стоят в высоте значка (48px)
   с воздухом между строками; длинное название обрезается многоточием, а не переносится */
.hero .nx-t{display:flex;flex-direction:column;justify-content:center;gap:4px;height:48px}
.hero .nx-t b,.hero .nx-t span{margin-top:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hero .nx-t b{font-size:16px;line-height:22px}
.hero .nx-t span{font-size:12.5px;line-height:18px}
.hero .nx-t span em{font-style:normal;font-weight:700;color:var(--orange2)}
/* карточка звания: кольцо ровно посередине между верхним краем карточки и линией над «Опыт / Уроков пройдено / Достижения»
   (первая строка забирает всю лишнюю высоту, кольцо в ней по центру; отступ сверху 1 рамка + 24 = отступ до линии 25); три показателя —
   по центру своих равных ячеек */
.stats.prof{grid-template-rows:1fr auto;align-content:stretch;padding-top:24px}
.prof .p-kv{margin-top:25px;grid-template-columns:repeat(3,minmax(0,1fr))}
.prof .p-kv > div,.prof .p-kv > div:first-child{padding:0 12px;align-items:center;text-align:center}
.prof .p-kv .v{justify-content:center}
/* кольцо уровня крупнее на 30%: 148 → 192px, цифра 52 → 68px, подпись «уровень» 11 → 14px (на узком экране 112 → 146px) */
.prof .ring,.prof .ring svg{width:192px;height:192px}
.prof .ring .lv b{font-size:68px}
.prof .ring .lv small{font-size:14px;margin-top:6px}
@media (max-width:560px){.prof .ring,.prof .ring svg{width:146px;height:146px}.prof .ring .lv b{font-size:52px}.prof .ring .lv small{font-size:12px;margin-top:5px}}
/* Номер уровня — справа, ровно по ширине колонки «Достижения» (треть строки показателей): центр цифры над словом «Достижения»,
   правый край — по линии содержимого карточки, левый — над вторым разделителем; звание слева. Размер цифры и подписи — от ширины колонки (cqw). */
.stats.prof{grid-template-columns:minmax(0,1fr) calc(100% / 3);grid-template-areas:"head ring" "kv kv"}
.prof .ring{width:100%;height:auto;aspect-ratio:1/1;container-type:inline-size}
.prof .ring svg{width:100%;height:100%}
.prof .ring .lv b{font-size:35.4cqw}
.prof .ring .lv small{font-size:7.3cqw;margin-top:3cqw}
/* Карточка звания: опыт до следующего уровня — шкала по контуру карточки (5px, как все полоски прогресса; от середины верхнего края по часовой стрелке);
   слева звание и подсказка, справа крупный номер уровня над колонкой «Достижения», внизу показатели */
.prof .contour{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.prof .contour rect{x:2.5px;y:2.5px;width:calc(100% - 5px);height:calc(100% - 5px);rx:19.5px;ry:19.5px;fill:none;stroke-width:5px}
.prof .contour .trk{stroke:rgba(255,255,255,.07)}
.prof .contour .bar{stroke:url(#profGrad);stroke-linecap:round;transition:stroke-dasharray 1.6s cubic-bezier(.2,.7,.2,1)}
.prof .p-lv{grid-area:ring;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;font-family:var(--head);font-weight:800;container-type:inline-size}
.prof .p-lv b{font-size:80cqw;letter-spacing:-.04em}
/* Цифра тонкая (300), остальной текст карточки прежней толщины. Выравнивание по контуру букв (метрики Mulish: ascent 1.01, descent .25,
   высота цифр и прописных ≈ .71 em): у цифры line-height .75 — верх знака на .046em ниже верха строки, поэтому margin-top 5.3px − .046em
   ставит верх цифры на уровень верха прописных «ЗВАНИЕ» (5.3px от верха блока звания); у подписи линия шрифта на .12em выше низа строки,
   margin-bottom 5.18px − .12em ставит её на одну линию с последней строкой подсказки (5.18px от низа блока звания) */
/* содержимое собрано к середине: цифра сдвинута влево на 9% своей колонки (≈3% карточки), звание отступает слева на столько же,
   насколько цифра от правого края (padding-left 21.6% колонки звания); звание 14.5cqw — при 15cqw «Мисливець за учасником» ломалось на 3 строки */
.prof .p-lv{position:relative;left:-9%}
.prof .p-lv b{font-weight:300;letter-spacing:0;line-height:.75;margin-top:calc(5.3px - .046em)}
.prof .p-lv small{margin-bottom:calc(5.18px - .12em)}
.prof .p-lv small{margin-top:0;padding-left:.16em;font-size:max(11px,10cqw);font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.16em}
@media (prefers-reduced-motion:reduce){.prof .contour .bar{transition:none}}
/* Главная — четыре группы с одинаковым расстоянием --sec между ними: первый экран (текст + карточка звания),
   награда за курс, «Быстрый старт» + день/неделя/журнал (внутри группы 20px — как между карточками), курсы с этапами */
:root{--sec:64px}
@media (max-width:700px){:root{--sec:44px}}
.hero,.rstrip,.qs,.dash{margin-bottom:var(--sec)}
.qs:has(+ .dash){margin-bottom:20px}
.courses .ccards{margin-bottom:20px}
/* На телефоне карточка узкая — звание без доп. отступа слева, цифра без сдвига к середине */
@media (max-width:560px){.prof .p-head{padding-left:0}.prof .p-lv{left:0}}
/* Карточка звания: текст слева выровнен по цифре справа — верх «ЗВАНИЕ» на уровне верха цифры, последняя строка подсказки
   на одной линии с подписью «уровень». Строка содержимого (auto) стоит между двумя равными 1fr — вся связка по центру блока;
   обе колонки растягиваются на высоту строки: у звания «Звание» сверху, подсказка снизу, название ровно посередине
   (space-between; зазоры по контуру букв равны при нулевых отступах; кегль названия подбирает fitRank() в app.js), у уровня зазор между цифрой и подписью растягивается
   от 14 до 22cqw (::before между ними); если текст ещё выше (узкая карточка, длинная подсказка) — цифра с подписью встаёт по центру */
.stats.prof{grid-template-rows:minmax(0,1fr) auto minmax(0,1fr) auto;grid-template-areas:". ." "head ring" ". ." "kv kv";align-items:stretch}
.prof .p-head{display:flex;flex-direction:column;justify-content:space-between}
.prof .p-head .v{margin-top:0}
.prof .p-head .next{padding-top:0}
.prof .p-lv{justify-content:center}
.prof .p-lv b{order:1}
.prof .p-lv::before{content:"";order:2;flex:1 1 auto;min-height:14cqw;max-height:22cqw}
.prof .p-lv small{order:3}
/* Уведомления (+XP, «Плотность съедена» и т.п.) — справа снизу, по правому краю контента (как кнопка языка); на телефоне — во всю ширину */
.toast{left:auto;right:max(28px,calc(50% - 652px));bottom:28px;transform:none;max-width:min(420px,calc(100% - 56px));animation:toastIn .25s}
@keyframes toastIn{from{transform:translateY(16px);opacity:0}to{transform:none;opacity:1}}
@media (max-width:560px){.toast{left:16px;right:16px;bottom:16px;max-width:none}}
/* Первый экран: обещание отдельной крупной строкой (вариант 3 со страницы сравнения), подробности — мелким абзацем под ней */
.hero p.lead{margin:0 0 8px;font-family:var(--head);font-size:21px;line-height:1.35;font-weight:700;color:var(--text);text-wrap:balance}
.hero p.lead + p{font-size:14px;line-height:1.6;max-width:44em}
@media (max-width:560px){.hero p.lead{font-size:18px}}
/* Маскот-тигр (js/mascot.js): прозрачный холст поверх страницы, место и размер задаёт скрипт (transform). Клики проходят сквозь
   пустые места; хватать и тыкать можно только тело (.m-hit). Несут — поверх всего; отпустили — тает (.gone) и появляется дома
   (.pop). Свернуть — кнопка у головы; свёрнутый прячется, в шапке слева от огонька — кнопка с головой тигра (.m-home) */
/* спутник живёт в слое высотой со страницу (стоит внизу сайта, прокручивается вместе с ним; ниже пола — обрезано),
   ведущий — в окне (fixed) */
.m-layer{position:absolute;left:0;top:0;width:100%;height:100vh;overflow:hidden;pointer-events:none;z-index:35}
.mascot{position:absolute;left:0;top:0;z-index:1;pointer-events:none;will-change:transform;transition:opacity .2s}
.mascot.pres{position:fixed;z-index:35}
.mascot.held{z-index:2}
.mascot.gone{opacity:0;transition:opacity .15s}
.mascot .m-cv{position:absolute;left:0;top:0}
.mascot .m-cv.pop{animation:mPop .34s cubic-bezier(.3,1.5,.5,1)}
@keyframes mPop{0%{opacity:0;scale:.9}100%{opacity:1;scale:1}}
.mascot.held .m-bubble{display:none}
.mascot .m-hit{position:absolute;pointer-events:auto;cursor:grab;touch-action:none;border-radius:45% 45% 30% 30%}
.mascot.held .m-hit{cursor:grabbing}
.mascot .m-btn{position:absolute;width:26px;height:26px;border:0;border-radius:50%;background:rgba(255,255,255,.1);cursor:pointer;pointer-events:auto;opacity:0;transition:opacity .2s,background .2s}
.mascot:not(.held) .m-hit:hover ~ .m-btn,.mascot .m-btn:hover,.mascot .m-btn:focus-visible{opacity:1}
.mascot .m-btn::before{content:"";position:absolute;left:8px;right:8px;top:12px;height:2px;border-radius:1px;background:var(--text)}
.mascot .m-btn:hover{background:rgba(255,255,255,.2)}
.mascot .m-bubble{position:absolute;width:max-content;max-width:260px;padding:11px 14px;border-radius:14px 4px 14px 14px;background:var(--surface2);color:var(--text);font-size:14px;line-height:1.45;box-shadow:0 12px 32px rgba(0,0,0,.5);pointer-events:auto;opacity:0;transform:translateY(6px);transition:opacity .25s,transform .25s}
.mascot .m-bubble.right{border-radius:4px 14px 14px 14px}
.mascot .m-bubble.on{opacity:1;transform:none}
.mascot.min{display:none}
.m-home{font:inherit;color:#fff;cursor:pointer;transition:background .2s}
.m-home:hover{background:rgba(255,255,255,.1)}
.m-home[hidden]{display:none}
.m-home svg{width:20px;height:18px;flex:none}
.m-home.m-float{position:fixed;right:16px;bottom:16px;z-index:35;width:48px;height:48px;border-radius:14px;background:var(--surface2)}
body.m-over .toast{right:calc(max(28px,calc(50% - 652px)) + 200px)}
@media (max-width:560px){body.m-over .toast{right:16px;bottom:90px}}
@media (prefers-reduced-motion:reduce){.mascot .m-bubble{transition:none}.mascot .m-cv.pop{animation:none}}
/* Тигр-ведущий (js/mascot.js): всё, кроме нужного блока, размыто и притемнено (.m-spot, вырез — clip-path из скрипта), вокруг
   блока — светящаяся рамка в цветах сайта (.m-ring); заслонка от случайных кликов, карточка-реплика с кнопками;
   кнопка озвучки — у головы спутника и в карточке */
/* перехват кликов включается только вместе с карточкой ведущего: если вступление почему-то не дошло
   до показа карточки, экран не должен оставаться заблокированным */
.m-block{position:fixed;inset:0;z-index:33;pointer-events:none}
.m-block.on{pointer-events:auto}
.m-spot{position:fixed;inset:0;z-index:34;background:rgba(8,6,14,.46);-webkit-backdrop-filter:blur(8px) saturate(.7);backdrop-filter:blur(8px) saturate(.7);pointer-events:none;opacity:0;transition:opacity .35s}
.m-spot.on{opacity:1}
.m-ring{position:fixed;z-index:34;border-radius:18px;pointer-events:none;opacity:0;transition:opacity .3s;box-shadow:0 0 34px 4px rgba(229,113,255,.28),0 0 60px 10px rgba(255,137,55,.12)}
.m-ring::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:2px;background:linear-gradient(135deg,#e571ff,#ff8937);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}
.m-ring.on{opacity:1;animation:mGlow 2.2s ease-in-out infinite}
@keyframes mGlow{50%{box-shadow:0 0 46px 8px rgba(229,113,255,.4),0 0 80px 16px rgba(255,137,55,.18)}}
.m-card{position:fixed;z-index:36;width:min(420px,calc(100vw - 32px));padding:18px 20px 14px;border-radius:18px;background:var(--surface2);box-shadow:0 18px 50px rgba(0,0,0,.55);opacity:0;transform:translateY(8px);transition:opacity .25s,transform .25s}
.m-card.on{opacity:1;transform:none}
/* хвостик реплики — в сторону тигра: справа (карточка слева от него) или снизу (над головой) */
.m-card[data-tail="r"]::after,.m-card[data-tail="b"]::after{content:"";position:absolute;width:14px;height:14px;background:var(--surface2);border-radius:2px;transform:rotate(45deg)}
.m-card[data-tail="r"]::after{right:-6px;top:30px}
.m-card[data-tail="b"]::after{right:56px;bottom:-6px}
.m-card-t{font-size:16px;line-height:1.5;color:var(--text);text-wrap:pretty}
.m-card-t b{color:var(--orange2)}
.m-card-f{display:flex;align-items:center;gap:8px;margin-top:14px}
.m-card .m-step{margin-right:auto;font-size:12px;font-weight:700;color:var(--muted);letter-spacing:.04em}
.m-card .m-skip{background:none;border:0;color:var(--muted);font:inherit;font-size:13px;padding:8px 6px;cursor:pointer}
.m-card .m-skip:hover{color:var(--text)}
.m-voice,.mascot .m-vbtn{display:inline-flex;align-items:center;justify-content:center;border:0;cursor:pointer;color:var(--text);background:rgba(255,255,255,.08)}
.m-card .m-voice{width:34px;height:34px;border-radius:10px}
.mascot .m-vbtn{position:absolute;width:26px;height:26px;border-radius:50%;pointer-events:auto;opacity:0;transition:opacity .2s}
.mascot .m-vbtn svg{width:14px;height:14px}
.mascot:not(.held) .m-hit:hover ~ .m-vbtn,.mascot .m-vbtn:hover,.mascot .m-vbtn:focus-visible{opacity:1}
.m-voice .x,.mascot .m-vbtn .x{display:none}
.m-voice.off .x,.mascot .m-vbtn.off .x{display:inline}
.m-voice.off .w,.mascot .m-vbtn.off .w{display:none}
.m-voice.off,.mascot .m-vbtn.off{color:var(--muted)}
.mascot.pres .m-hit,.mascot.pres .m-btn,.mascot.pres .m-vbtn,.mascot.pres .m-bubble,.mascot.min .m-vbtn{display:none}
.mascot .m-bubble{pointer-events:none;max-width:300px}
.mascot .m-cv.turn{animation:mTurn .3s ease-in-out}
/* кнопка озвучки теории в строке навигации слайдов */
/* кнопка озвучки теории — размером как «Назад» и «Дальше»; включена — прозрачная с оранжевым фоном, как своя реплика
   в чате с тигром; вокруг неё белая шкала: сколько слайда уже прочитано (--p от 0 до 1) */
.navrow .tvwrap{margin-left:auto;margin-right:10px;display:inline-block;border-radius:12px;padding:2px;background:transparent;position:relative}
/* прогресс слайда — контур по периметру кнопки, как обводка карточки звания: полоса нарастает по кругу, а не заливает сектор */
.navrow .tvring{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;opacity:0;transition:opacity .2s}
.navrow .tvwrap.on .tvring{opacity:1}
.navrow .tvring rect{x:1.25px;y:1.25px;width:calc(100% - 2.5px);height:calc(100% - 2.5px);rx:12px;ry:12px;fill:none;stroke-width:2.5px}
.navrow .tvring .trk{stroke:rgba(255,255,255,.16)}
.navrow .tvring .bar{stroke:#fff;stroke-linecap:round;stroke-dasharray:calc(var(--p,0) * 100) 100}
.navrow .btn.tvoice{gap:8px;background:transparent;color:var(--text);border:1px solid var(--line2)}
.navrow .btn.tvoice:hover{background:rgba(255,255,255,.06)}
.navrow .tvwrap.on .btn.tvoice{background:rgba(255,135,71,.18);color:var(--orange2);border-color:transparent}
.navrow .btn.tvoice svg{width:17px;height:17px}
@keyframes mTurn{50%{scale:.18 1}}
/* приземление после броска: тигр не «возникает», а мягко опускается на место */
@keyframes mDrop{from{opacity:0;transform:translateY(-14px) scale(.94)}to{opacity:1;transform:none}}
.mascot .m-cv.drop{animation:mDrop .3s cubic-bezier(.2,.9,.3,1)}
@media (prefers-reduced-motion:reduce){.mascot .m-cv.drop{animation:none}}
@media (prefers-reduced-motion:reduce){.m-spot,.m-card,.m-ring{transition:none}.m-ring.on,.mascot .m-cv.turn{animation:none}}
/* своя тень тигра на полу (js/mascot.js): мягкий эллипс под лапами вместо серой тени из ролика; у ведущего и свёрнутого не нужна */
.mascot .m-shadow{position:absolute;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(closest-side,rgba(0,0,0,.5),rgba(0,0,0,.28) 55%,rgba(0,0,0,0));pointer-events:none}
.mascot.pres .m-shadow,.mascot.min .m-shadow{display:none}
/* вопрос тигру (js/mascot.js): чат-облачко рядом с ним — стекло без обводки, как меню языка; сообщения тигра слева, свои справа,
   хвостик — к тигру (l — чат справа от него, r — слева, b — над головой) */
.mascot .m-chat{position:absolute;width:min(340px,calc(100vw - 24px));display:flex;flex-direction:column;border-radius:18px;background:linear-gradient(rgba(255,255,255,.06),rgba(255,255,255,.06)),rgba(12,10,20,.84);-webkit-backdrop-filter:blur(16px) saturate(1.2);backdrop-filter:blur(16px) saturate(1.2);box-shadow:0 18px 48px rgba(0,0,0,.5);pointer-events:auto;opacity:0;transform:translateY(8px) scale(.98);transition:opacity .2s,transform .2s;z-index:3}
.mascot .m-chat[hidden]{display:none}
.mascot .m-chat.on{opacity:1;transform:none}
/* уголок к тигру — как у облачка с репликой: у ближнего к нему угла скругление почти убрано (без «капли» и треугольника) */
.mascot .m-chat[data-tail="l"]{border-top-left-radius:5px}
.mascot .m-chat[data-tail="r"]{border-top-right-radius:5px}
.mascot .m-chat[data-tail="b"]{border-bottom-left-radius:5px}
.m-chat-h{display:flex;align-items:center;justify-content:space-between;padding:12px 10px 6px 16px;font-size:13px}
.m-chat-h b{font-weight:700;color:var(--text)}
.m-chat-x{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:0;border-radius:8px;background:none;color:var(--muted);cursor:pointer;transition:background .15s,color .15s}
.m-chat-x:hover{background:rgba(255,255,255,.08);color:var(--text)}
.m-chat-log{display:flex;flex-direction:column;gap:8px;padding:4px 12px 8px;overflow-y:auto;max-height:320px;overscroll-behavior:contain}
.m-msg{max-width:92%;padding:9px 12px;border-radius:14px;font-size:13.5px;line-height:1.5;color:var(--text);overflow-wrap:anywhere;text-wrap:pretty}
.m-msg.tg{align-self:flex-start;background:rgba(255,255,255,.07);border-bottom-left-radius:4px}
.m-msg.me{align-self:flex-end;background:rgba(255,135,71,.18);border-bottom-right-radius:4px}
.m-msg b{color:var(--orange2);font-weight:700}
.m-acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.m-act,.m-ask{border:0;border-radius:9px;padding:6px 10px;font:600 12.5px/1.25 var(--font);text-align:left;cursor:pointer;transition:background .15s,color .15s}
.m-act{background:rgba(255,135,71,.18);color:var(--orange2)}
.m-act:hover{background:rgba(255,135,71,.3)}
.m-ask{background:rgba(255,255,255,.07);color:var(--text)}
.m-ask:hover{background:rgba(255,255,255,.13)}
.m-act:focus-visible,.m-ask:focus-visible,.m-chat-x:focus-visible,.m-chat-send:focus-visible{outline:2px solid var(--orange2);outline-offset:2px}
.m-msg.typing{display:flex;gap:4px;padding:12px 14px}
.m-msg.typing i{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:mDot 1s infinite ease-in-out}
.m-msg.typing i:nth-child(2){animation-delay:.15s}
.m-msg.typing i:nth-child(3){animation-delay:.3s}
@keyframes mDot{0%,80%,100%{opacity:.3;transform:none}40%{opacity:1;transform:translateY(-3px)}}
.m-chat-f{display:flex;gap:8px;padding:6px 10px 10px}
.m-chat-in{flex:1;min-width:0;height:38px;border:0;border-radius:12px;padding:0 12px;background:rgba(255,255,255,.07);color:var(--text);font:500 13.5px/1 var(--font);outline:none;transition:background .15s}
.m-chat-in::placeholder{color:var(--dim)}
.m-chat-in:focus{background:rgba(255,255,255,.11)}
.m-chat-send{flex:none;width:38px;height:38px;border:0;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:var(--grad);color:#fff;cursor:pointer;transition:filter .15s}
.m-chat-send:hover{filter:brightness(1.08)}
.mascot.pres .m-chat,.mascot.held .m-chat{display:none}
/* «спрячься»: тигр улетает вверх; значок в шапке коротко подсвечивается, чтобы было видно, куда он делся */
.mascot.fly .m-cv{transition:transform .65s cubic-bezier(.55,0,.75,.2),opacity .6s;transform:translateY(-110vh) scale(.55);opacity:0}
.mascot.fly .m-shadow,.mascot.fly .m-btn,.mascot.fly .m-vbtn,.mascot.fly .m-bubble{opacity:0!important}
.m-home.pulse{animation:mPulse 1.1s ease-out 2}
@keyframes mPulse{0%{box-shadow:0 0 0 0 rgba(255,137,55,.55)}100%{box-shadow:0 0 0 12px rgba(255,137,55,0)}}
@media (prefers-reduced-motion:reduce){.mascot .m-chat{transition:none}.m-msg.typing i{animation:none}}

/* ==========================================================================
   Мобильная версия: правила ниже действуют только на узких экранах и на устройствах с касанием.
   Десктоп они не трогают — всё внутри медиазапросов.
   ========================================================================== */
/* переключатель стороны над лестницей: на десктопе скрыт (там ЛКМ/ПКМ), нужен только для касаний */
.tt-tapside{display:none}
@media (pointer:coarse){
  .tt-tapside{display:flex;gap:4px;padding:6px;background:var(--tt-panel2);border-bottom:1px solid var(--tt-line2)}
  .tt-tapside button{flex:1;font-family:inherit;font-size:12px;font-weight:700;padding:8px 4px;border-radius:7px;border:1px solid #333a45;background:#252a33;color:#c9cfd9;cursor:pointer}
  .tt-tapside button.on[data-tap="buy"]{background:var(--bid-best);border-color:#3b7ff0;color:#fff}
  .tt-tapside button.on[data-tap="sell"]{background:var(--ask-best);border-color:#ef4c68;color:#fff}
  .tt-hint{display:none}                      /* подсказка про ЛКМ/ПКМ на касаниях не про то */
  .pill,.m-voice{width:40px;height:40px}      /* цели под палец */
  body{touch-action:manipulation}              /* без зума двойным касанием; щипок запрещён в meta viewport */
  .btn.small{min-height:40px}
  .dots span{width:10px;height:10px}
  .node .tip{display:none!important}          /* подсказка по наведению на касаниях не открывается; закрытый урок объясняет всплывающее сообщение */
  .mascot .m-btn,.mascot .m-vbtn{opacity:1}   /* на касаниях наведения нет — кнопки «свернуть» и «голос» у спутника видны всегда */
}
@media (max-width:1000px){
  .scr-root .two{grid-template-columns:1fr}    /* две колонки кабинета — в одну */
  .scr-root .auth-card,.scr-root .cmd{width:min(440px,100%)}
  /* планшет: практика в столбец — задание наставника, затем окно; колонки не растягиваются под содержимое, макеты прокручиваются внутри */
  .sim{display:flex;flex-direction:column;gap:14px}
  .sim > *{min-width:0;width:100%}
  .sim-right{position:static;order:-1}
  .sim-left{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:14px}
  .tt-window,.tt-body{min-width:0;max-width:100%}
  .tt-dom .tt-info{display:none}                                              /* информационная панель — самая широкая и наименее нужная в уроке */
  .tt-dom:not(.no-graph) .tt-body{grid-template-columns:minmax(200px,1fr) 196px 176px}
  .tt-dom.no-graph .tt-body{grid-template-columns:minmax(196px,1fr) 176px}
  .mentor .log{display:none}
}
@media (max-width:700px){
  :root{--optic:0px}
  html,body{overscroll-behavior-y:none}          /* за нижнюю границу содержимого не «тянется» */
  /* шапка: бренд и статус в первой строке, меню — второй строкой с прокруткой */
  .topbar{height:auto;position:static}            /* на телефоне двухстрочная шапка не липнет к верху: иначе она съедает 100 px экрана в практике */
  .tb-inner{flex-wrap:wrap;height:auto;padding:8px 14px 0;gap:6px 12px}
  .brand{order:1}.hud{order:2;margin-left:auto}
  .nav{order:3;flex:1 0 100%;margin:0 -14px;padding:0 8px 6px;top:0;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:0;justify-content:space-between;font-size:14px}
  .nav::-webkit-scrollbar{display:none}
  .nav span{padding:8px 10px;white-space:nowrap}
  main{padding:14px 14px 12px}
  body.m-over main{padding-bottom:230px}          /* развёрнутый спутник стоит на «полу» под содержимым — под кнопками «Назад/Дальше» ему оставлено место, он их не накрывает */
  footer{padding:0 14px 28px}
  /* главная */
  .hero{margin:4px 0 28px;gap:14px}
  .hero h1{font-size:28px}
  .hero .facts{gap:12px}
  .hero .nextp{flex-wrap:wrap}
  .prof .p-lv{left:0}.prof .p-lv small{padding-left:0;letter-spacing:.1em}   /* подпись «уровень» выходила за край на 3 px; сетку карточки не трогаем — для 560 px она уже настроена автором */
  .rstrip{flex-wrap:wrap;gap:10px 14px;padding:14px 16px;margin-bottom:24px}
  .rstrip .rp{min-width:0;width:100%;align-items:flex-start}
  .rstrip .rp .bar{width:100%}
  .ccards{grid-template-columns:1fr}
  .course{padding:16px 14px 14px;border-radius:18px}
  .road{gap:12px 4px;padding:18px 0 4px}
  .node{width:calc(33.333% - 4px);min-width:90px}
  .node .circle{width:56px;height:56px}
  .node .nlabel{font-size:11.5px}
  .qs-h{flex-wrap:wrap}
  .dash{margin-bottom:28px}
  .kpis{grid-template-columns:repeat(2,1fr)}
  /* база знаний, журнал, достижения */
  .tabs{width:auto;max-width:100%;overflow-x:auto;scrollbar-width:none}
  .tabs::-webkit-scrollbar{display:none}
  .tab{white-space:nowrap;padding:10px 12px}
  .gloss .search{max-width:none}
  .badges{grid-template-columns:1fr}
  /* урок */
  .lesson-head{gap:10px;margin-bottom:10px}
  .lesson-head h2{font-size:18px}
  .lesson-head .cico{width:34px;height:34px}
  .stages{width:100%;overflow-x:auto;scrollbar-width:none}
  .stages::-webkit-scrollbar{display:none}
  .stage{padding:8px 10px;white-space:nowrap}
  .panel{padding:18px 16px;border-radius:18px}
  .slide h3{font-size:20px}
  .slide .layout{gap:16px}
  .slide .layout .txt{min-width:0;flex-basis:100%}
  .mini,.minichart,.miniui{min-width:0;max-width:100%;width:100%}
  .navrow{flex-wrap:wrap;gap:8px;margin-top:18px}
  .navrow .dots{order:3;flex-basis:100%;justify-content:center;padding:4px 0}
  /* «Назад» слева, «Дальше» справа, озвучка — круглой кнопкой между ними, в одну строку */
  .navrow #prev,.navrow #next{flex:1 1 0;min-width:0;justify-content:center;padding:10px 8px;font-size:14px}
  .navrow .tvwrap{margin:0;flex:none}
  .navrow .tvoice{width:44px;height:44px;padding:0;justify-content:center;gap:0}
  .navrow .tvoice span{display:none}
  .kbd{display:none}
  .panel.q{padding:20px 16px 18px}
  .q h3{font-size:19px}
  .opt{padding:12px;font-size:14px;min-height:48px}
  /* практика: задание наставника сверху, лестница во всю ширину, торговый модуль под ней */
  .sim{display:flex;flex-direction:column;gap:12px}
  .sim > *,.sim-right > *{min-width:0;width:100%}  /* колонки — flex-элементы: без min-width:0 они растягиваются под содержимое вместо прокрутки внутри */
  .sim-right{display:contents}                     /* правая колонка распадается: задание наставника — над окном стакана, лента сделок — под ним */
  .sim-right .mentor{order:-1}
  .sim-right .tt-tape{order:1}
  .mentor{gap:8px}
  .tt-window,.tt-body,.tt-ladder,.tt-trade{min-width:0;max-width:100%}
  .mentor{padding:14px;border-radius:16px}
  .mentor .log{display:none}
  .mentor .msg{min-height:0}
  .tt-topbar{overflow-x:auto;scrollbar-width:none}
  .tt-topbar::-webkit-scrollbar{display:none}
  .tt-window{--rowh:22px;font-size:12px}          /* строка компактнее, чем 28 px: стакан должен умещаться в экран без прокрутки (число строк считает dom-sim.js) */
  .tt-head{overflow-x:auto;scrollbar-width:none}
  .tt-head::-webkit-scrollbar{display:none}
  /* окно стакана на телефоне: лестница слева (узкая, зато высокая — строк считает dom-sim.js), торговый модуль столбиком справа */
  .tt-body,.tt-dom.no-graph .tt-body,.tt-dom:not(.no-graph) .tt-body{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);height:auto!important} /* селекторы повторяют планшетные, иначе те сильнее */
  .tt-info,.tt-graph{display:none}
  .tt-ladder{border-right:1px solid var(--tt-line)}
  .lr,.tt-ladder .lh,.tt-ladder .lf{grid-template-columns:1fr 1fr 32px}
  .tt-trade{display:flex;flex-direction:column;gap:4px;padding:5px;border-top:0;overflow:hidden;min-width:0}
  .tt-trade > *{min-width:0;max-width:100%}
  .tt-trade .r2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px}
  .tt-trade .tt-btn{min-width:0;overflow:hidden;text-overflow:ellipsis;padding:7px 1px;font-size:10.5px;letter-spacing:-.01em}
  /* шапка окна: в две строки, чипы мельче — всё видно без прокрутки */
  .tt-head{height:auto;flex-wrap:wrap;gap:4px;padding:5px 6px;overflow:visible}
  .tt-head .chip{padding:3px 6px;font-size:11px;gap:4px}
  .tt-head .sub{font-size:10px}
  .tt-head .tt-tb,.tt-topbar .tt-tb{padding:2px 6px;font-size:10.5px}
  .tt-hint{display:none}
  .tt-pos,.tt-pnl,.tt-sel{font-size:11px}
  .tt-player > b,.tt-player .legend{display:none}
  .mentor .who,.mentor .score{display:none}        /* на телефоне панель наставника — только задание и прогресс */
  .mentor .prog{font-size:12px}
  .mentor .choices .status{display:none}         /* «действуй мышью» — на телефоне вместо этого переключатель «Покупка/Продажа» */
  .mentor #restart{min-height:0;padding:4px 8px;font-size:12px;margin-top:4px}
  .tt-btn{padding:7px 2px;font-size:11px}
  .tt-tapside button{padding:6px 4px}
  .mentor{padding:12px}
  .mentor .msg{font-size:14px;line-height:1.4}
  .tt-lens{display:none}
  .tt-chart canvas{height:200px}
  .tt-player{flex-wrap:wrap;gap:6px}
  .tt-tape .rows{height:180px}
  /* экраны кабинета и терминала: настоящая ширина, прокрутка внутри — подсвеченная цель подкручивается сама (screens.js) */
  .sim-left{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:14px}
  .sim-left > div{min-width:0}
  /* макеты на телефоне: настоящая ширина не сохраняется — колонки складываются, широкие таблицы прокручиваются внутри себя, остальное умещается в ширину экрана */
  .scr-root{min-width:0}
  .scr-root .cab{min-height:0}
  /* меню кабинета на телефоне — в несколько строк, все пункты видны и нажимаются (полоса с прокруткой прятала «Дневник трейдера») */
  .scr-root .cab-nav{flex-wrap:wrap;gap:8px 10px;padding:10px 12px}
  .scr-root .cab-nav nav{flex:1 0 100%;order:3;flex-wrap:wrap;gap:6px 12px;margin:0;overflow:visible;white-space:normal;-webkit-mask-image:none;mask-image:none;row-gap:4px}
  .scr-root .cab-nav .right{margin-left:auto}
  .scr-root .two{gap:14px}
  .scr-root .lcol,.scr-root .mcol{min-width:0}
  .scr-root .plans{grid-template-columns:1fr 1fr;gap:8px}
  .scr-root .plan{padding:12px}
  .scr-root .kpis6{grid-template-columns:repeat(3,1fr)}
  .scr-root .jsum{grid-template-columns:1fr}
  .scr-root .jt,.scr-root .sa-t,.scr-root .ct{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .scr-root .jt .jh,.scr-root .jt .jr{min-width:620px}
  .scr-root .sa-h,.scr-root .sa-r{min-width:520px}
  .scr-root .ct > div{min-width:600px}
  .scr-root .krow{grid-template-columns:1fr 1fr}
  .scr-root .info4{grid-template-columns:1fr}
  .scr-root .perms,.scr-root .htabs{flex-wrap:wrap;gap:10px}
  .scr-root .syn{grid-template-columns:1fr;min-height:0}
  .scr-root .px{grid-template-columns:1fr;gap:14px}
  .scr-root .tdlg{padding:16px 14px;max-width:100%}
  .scr-root .term-bg{min-height:0}
  .scr-root .twin{width:100%}
  .scr-root .twin table.tt{display:block;overflow-x:auto;white-space:nowrap}
  .scr-root .wgrid{grid-template-columns:1fr}
  .scr-root .ws-h{flex-wrap:wrap;gap:8px}
  .scr-root .mc-wrap{flex-direction:column;gap:16px;padding:16px;min-height:0}
  .scr-root .mc-side{max-width:none}
  .scr-root .two.prof,.scr-root .two.grp{grid-template-columns:1fr}
  .scr-root .crow{grid-template-columns:32px minmax(0,1fr);gap:8px 10px;padding:10px 12px}
  .scr-root .crow .crr{grid-column:2;justify-self:start;max-width:100%}
  .scr-root .crow .crr .cbtn,.scr-root .crow .crr .csel{max-width:100%;white-space:normal;text-align:left}
  .scr-root .st{grid-template-columns:30px minmax(0,1fr);padding:10px 12px}
  .scr-root .st small .csel,.scr-root .st .csel{max-width:100%}
  .scr-root .ptabs{overflow-x:auto;scrollbar-width:none}
  .scr-root .kpis6{grid-template-columns:1fr 1fr}
  .scr-root .lev-top{flex-wrap:wrap;gap:10px}
  .scr-root .lev-top .search{width:100%}
  .scr-root .lev-btns{flex-wrap:wrap}
  .scr-root .levt{overflow-x:auto}
  .scr-root .levt .lh,.scr-root .levt .lr2{min-width:620px}
  .scr-root .cgrid{grid-template-columns:1fr 1fr}
  .scr-root .ctype .big,.scr-root .cgrid button{padding:9px 10px;font-size:12.5px;min-width:0}
  .scr-root .ctype .big small{white-space:normal}
  .scr-root .td-h{flex-wrap:wrap;gap:8px}
  .scr-root .td-h h1{font-size:20px}
  .scr-root .wstabs{overflow-x:auto;scrollbar-width:none;max-width:100%}
  .scr-root .wg table.tt{display:block;overflow-x:auto;white-space:nowrap}
  .scr-root .dens{grid-template-columns:1fr 1fr}
  .scr-root .aff-form{grid-template-columns:1fr}
  .scr-root .subp h1{font-size:30px}
  .scr-root .tw-body{padding:10px 14px 20px}
  .scr-root .cf-head h1{font-size:18px}
  .scr-root .keyline{flex-wrap:wrap}
  /* модальные и плавающие элементы */
  .promo{padding:24px 18px 20px;border-radius:22px}
  .promo h2{font-size:22px}
  .toast{bottom:calc(16px + env(safe-area-inset-bottom))}
  .lang-menu{right:14px}
}
@media (max-width:560px){
  /* карточка ведущего на телефоне: компактнее, чтобы не накрывать подсвеченный блок (место выбирает mascot.js) */
  .m-card{width:calc(100vw - 24px);padding:12px 14px 10px;border-radius:14px}
  .m-card-t{font-size:14px;line-height:1.4}
  .m-card-f{margin-top:8px}
}
