/* =====================================================================
   Интерфейс v2: плоский чёрный, один синий акцент, шрифт Inter.
   Всё под body.v2 — остальные клиенты видят прежний вид.
   ===================================================================== */
@font-face{font-family:"Inter";font-style:normal;font-weight:400 800;font-display:swap;
  src:url(/static/inter-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Inter";font-style:normal;font-weight:400 800;font-display:swap;
  src:url(/static/inter-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215}

body.v2{
  --bg:#050608;
  --card:#0f1116; --card2:#15181f; --card3:#1b1f28;
  --line:#1e212b; --line2:#2a2e3a;
  --tx:#f5f6f8; --tx2:#9398a6; --tx3:#626775;
  --acc:#4f74ff; --acc2:#6f8dff; --acc-rgb:79,116,255;
  --ok:#2fd27a; --warn:#f5a524; --bad:#f5455c;
  --c1:#4f74ff; --c2:#6f8dff; --c1-rgb:79,116,255; --c2-rgb:111,141,255;
  --grad:#4f74ff; --grad-soft:rgba(79,116,255,.12);
  --glass:#0f1116; --glass2:#15181f;
  background:var(--bg);color:var(--tx);
  font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  letter-spacing:-.1px;
}
body.v2:before,body.v2:after{display:none}
body.v2 #app{padding:calc(14px + var(--safe-t)) 16px calc(28px + var(--safe-b))}
body.v2.has-tabbar #app{padding-bottom:calc(108px + var(--safe-b))}
body.v2 svg{display:block}
body.v2 .i2{display:inline-grid;place-items:center;width:20px;height:20px;flex:none}
body.v2 .i2 svg{width:100%;height:100%;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
body.v2 .emblem{display:block;width:100%;height:100%}

/* ---------- заголовки страниц ---------- */
body.v2 .hello{color:var(--tx2);font-size:14px;font-weight:500;margin:6px 2px 2px}
body.v2 .ph{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:4px 2px 18px}
body.v2 .ph-l{min-width:0}
body.v2 .ph-t{margin:0;font-size:28px;line-height:1.12;font-weight:800;letter-spacing:-.8px;display:flex;align-items:center;gap:8px}
body.v2 .ph-logo{display:inline-block;width:30px;height:30px;flex:none}
body.v2 .ph-s{color:var(--tx2);font-size:14px;margin-top:6px;line-height:1.4}
body.v2 .rbtn{flex:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--line2);background:var(--card);
  color:var(--tx);display:grid;place-items:center;cursor:pointer;margin-top:2px}
body.v2 .rbtn .i2{width:21px;height:21px}
body.v2 .rbtn:active{transform:scale(.94)}
body.v2 .page-title{font-family:inherit;font-size:28px;font-weight:800;letter-spacing:-.8px;margin:6px 2px 8px;
  background:none;-webkit-text-fill-color:currentColor;color:var(--tx)}
body.v2 .page-sub{color:var(--tx2);font-size:14px}
body.v2 .sect-title,body.v2 .g2-t{font-size:18px;font-weight:750;color:var(--tx);text-transform:none;letter-spacing:-.3px;margin:26px 2px 12px}

/* ---------- карточки ---------- */
body.v2 .c2,body.v2 .card{position:relative;background:var(--card);border:1px solid var(--line);border-radius:22px;padding:18px;margin-bottom:12px;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
body.v2 .card:before{display:none}
body.v2 .sq{flex:none;width:44px;height:44px;border-radius:13px;display:grid;place-items:center;background:var(--card3);border:1px solid var(--line2);color:var(--tx)}
body.v2 .sq .i2{width:21px;height:21px}
body.v2 .sq.tint{background:rgba(var(--acc-rgb),.12);border-color:rgba(var(--acc-rgb),.28);color:var(--acc2)}
body.v2 .sq.big{width:54px;height:54px;border-radius:16px}
body.v2 .sq.big .i2{width:26px;height:26px}
body.v2 .r2-b{flex:1;min-width:0}
body.v2 .r2-t{font-size:16px;font-weight:700;line-height:1.25;letter-spacing:-.2px}
body.v2 .r2-d{font-size:13.5px;color:var(--tx2);margin-top:3px;line-height:1.4}
body.v2 .r2-go{flex:none;color:var(--tx3)}
body.v2 .r2-go .i2{width:20px;height:20px}
body.v2 .r2-badge{flex:none;min-width:22px;height:22px;padding:0 7px;border-radius:999px;display:grid;place-items:center;background:var(--bad);color:#fff;font-size:12px;font-weight:800}

/* список-группа */
body.v2 .g2{background:var(--card);border:1px solid var(--line);border-radius:22px;overflow:hidden}
body.v2 .row2{position:relative;display:flex;align-items:center;gap:14px;padding:15px 16px;cursor:pointer}
body.v2 .row2+.row2{border-top:1px solid var(--line)}
body.v2 .row2:active{background:var(--card2)}
body.v2 .row2.t-bad .r2-t{color:var(--bad)}
body.v2 .row2.t-bad .sq{color:var(--bad);background:rgba(245,69,92,.1);border-color:rgba(245,69,92,.25)}

/* кликабельная карточка */
body.v2 .c2.promo{display:flex;align-items:center;gap:14px;cursor:pointer;padding:16px}
body.v2 .c2.promo:active{background:var(--card2)}

/* ---------- кнопки ---------- */
body.v2 .b2,body.v2 .btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:52px;padding:0 16px;
  border-radius:14px;border:0;background:var(--acc);color:#fff;font:inherit;font-size:16px;font-weight:700;letter-spacing:-.2px;
  cursor:pointer;text-decoration:none;box-shadow:0 8px 24px -10px rgba(var(--acc-rgb),.8);transition:transform .12s,opacity .2s;margin-top:10px;filter:none}
body.v2 .btn{margin-top:0}
body.v2 .b2:active,body.v2 .btn:active{transform:scale(.98)}
body.v2 .b2[disabled],body.v2 .btn[disabled]{opacity:.4;pointer-events:none;box-shadow:none}
body.v2 .b2 .i2,body.v2 .btn .bi{width:19px;height:19px}
body.v2 .b2.sec,body.v2 .btn.sec{background:var(--card2);border:1px solid var(--line2);color:var(--tx);box-shadow:none}
body.v2 .b2.ghost,body.v2 .btn.ghost{background:transparent;border:1px solid var(--line2);color:var(--tx);box-shadow:none}
body.v2 .b2.out{background:rgba(var(--acc-rgb),.1);border:1px solid rgba(var(--acc-rgb),.35);color:var(--acc2);box-shadow:none}
body.v2 .b2.sm{width:auto;height:38px;padding:0 14px;font-size:14px;border-radius:11px;margin:0}
body.v2 .b2.xs{width:auto;height:32px;padding:0 12px;font-size:13px;border-radius:10px;margin-top:12px;align-self:flex-start}
body.v2 .btn.sm{height:44px;font-size:14.5px;border-radius:12px}
body.v2 .btn.gold,body.v2 .btn.warm{background:var(--acc);color:#fff}
body.v2 .btn.dis{background:var(--card2);color:var(--tx3);border:1px solid var(--line)}
body.v2 .row-b,body.v2 .btn-row{display:flex;gap:10px}
body.v2 .row-b .b2{flex:1;min-width:0;margin-top:12px;font-size:15px;white-space:nowrap;padding:0 10px}

/* ---------- плашки ---------- */
body.v2 .pill{display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 13px;border-radius:999px;font-size:12.5px;font-weight:800;
  letter-spacing:.5px;text-transform:uppercase;border:1px solid}
body.v2 .pill i{width:7px;height:7px;border-radius:50%;background:currentColor}
body.v2 .pill.ok{color:var(--ok);border-color:rgba(47,210,122,.35);background:rgba(47,210,122,.08)}
body.v2 .pill.warn{color:var(--warn);border-color:rgba(245,165,36,.35);background:rgba(245,165,36,.08)}
body.v2 .pill.mute{color:var(--tx2);border-color:var(--line2);background:var(--card2)}
body.v2 .pill.sm{height:24px;padding:0 9px;font-size:11px;letter-spacing:.3px;margin-top:6px}
body.v2 .chips2{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 12px}
body.v2 .chip2{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 11px;border-radius:10px;background:var(--card2);border:1px solid var(--line2);
  font-size:13px;font-weight:650;color:var(--tx2)}
body.v2 .chip2 .i2{width:16px;height:16px}
body.v2 .chip2.ok{color:var(--ok);border-color:rgba(47,210,122,.3);background:rgba(47,210,122,.07)}
body.v2 .chip2.bad{color:var(--bad);border-color:rgba(245,69,92,.3);background:rgba(245,69,92,.07)}
body.v2 .badge{background:var(--card3);color:var(--tx2);border:1px solid var(--line2);font-weight:700}
body.v2 .badge.ok{background:rgba(47,210,122,.1);color:var(--ok);border-color:rgba(47,210,122,.3)}
body.v2 .badge.bad{background:rgba(245,69,92,.1);color:var(--bad);border-color:rgba(245,69,92,.3)}
body.v2 .badge.warn{background:rgba(245,165,36,.1);color:var(--warn);border-color:rgba(245,165,36,.3)}

/* ---------- главная: статус ---------- */
body.v2 .status{padding:20px 20px 18px;text-align:center;background:
  radial-gradient(120% 70% at 50% 0%,rgba(var(--acc-rgb),.09),transparent 60%),var(--card)}
body.v2 .st-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
body.v2 .st-date{color:var(--tx2);font-size:14px;font-weight:600}
body.v2 .ring{position:relative;width:176px;height:176px;margin:22px auto 16px}
body.v2 .ring svg{width:100%;height:100%;transform:rotate(-90deg)}
body.v2 .ring-bg{fill:none;stroke:var(--card3);stroke-width:9}
body.v2 .ring-fg{fill:none;stroke:var(--acc);stroke-width:9;stroke-linecap:round;transition:stroke-dashoffset .8s}
body.v2 .ring-fg.expired,body.v2 .ring-fg.none{stroke:transparent}
body.v2 .ring-c{position:absolute;inset:0;display:grid;place-content:center;justify-items:center}
body.v2 .ring-n{font-size:48px;font-weight:800;letter-spacing:-2px;line-height:1}
body.v2 .ring-u{font-size:14px;color:var(--tx2);margin-top:4px;font-weight:600}
body.v2 .ring-i{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:var(--card2);border:1px solid var(--line2);color:var(--tx2)}
body.v2 .ring-i .i2{width:30px;height:30px}
body.v2 .st-text{font-size:15px;color:var(--tx2);line-height:1.5;margin:0 6px 8px}
body.v2 .st-text b{color:var(--tx);font-weight:700}
body.v2 .bp{padding:16px}
body.v2 .bp-top{display:flex;align-items:center;gap:14px}
body.v2 .bar2{height:8px;border-radius:99px;background:var(--card3);overflow:hidden;margin-top:14px}
body.v2 .bar2 i{display:block;height:100%;border-radius:99px;background:var(--acc);transition:width .6s}
body.v2 .bar2.warn i{background:var(--warn)}

/* ---------- подписка ---------- */
body.v2 .kc-top{display:flex;align-items:center;gap:14px}
body.v2 .code2,body.v2 .codebox{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13.5px;color:var(--tx);background:var(--bg);
  border:1px solid var(--line2);border-radius:14px;padding:15px 14px;word-break:break-all;line-height:1.5;cursor:pointer}
body.v2 .empty2{text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px;padding:28px 20px}
body.v2 .empty2 .r2-d{max-width:280px}

/* ---------- профиль ---------- */
body.v2 .pcard{padding:20px}
body.v2 .pc-top{display:flex;align-items:center;gap:16px;margin-bottom:8px}
body.v2 .ava{width:68px;height:68px;flex:none;border-radius:50%;overflow:hidden;background:#131a3a;border:1px solid var(--line2);display:grid;place-items:center;padding:0}
body.v2 .ava img{width:100%;height:100%;object-fit:cover}
body.v2 .ava .emblem{width:78%;height:78%}
body.v2 .pc-n{font-size:20px;font-weight:800;letter-spacing:-.4px}
body.v2 .pc-u{color:var(--tx2);font-size:14px;margin-top:6px}
body.v2 .stats2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
body.v2 .st2{margin:0;display:flex;flex-direction:column;padding:16px}
body.v2 .st2-k{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:800;color:var(--tx2);letter-spacing:.6px;text-transform:uppercase}
body.v2 .st2-k .i2{width:15px;height:15px}
body.v2 .st2-v{white-space:nowrap;font-size:24px;font-weight:800;letter-spacing:-.8px;margin-top:8px;line-height:1.1}
body.v2 .st2-v small{font-size:16px;color:var(--tx2);font-weight:700;letter-spacing:0}
body.v2 .st2 .bar2{margin-top:14px}
body.v2 .invite{padding:18px}

/* ---------- нижнее меню ---------- */
body.v2 .tabbar{padding:0 12px calc(10px + var(--safe-b))}
body.v2 .tabbar-in{height:68px;padding:0 4px 9px;border-radius:26px;background:rgba(15,17,22,.96);border:1px solid var(--line2);
  box-shadow:0 -4px 30px rgba(0,0,0,.6);backdrop-filter:none;-webkit-backdrop-filter:none}
body.v2 .tab{gap:5px;font-size:12px;font-weight:600;color:var(--tx);font-family:inherit}
body.v2 .tab .ti{width:25px;height:25px;color:var(--tx)}
body.v2 .tab .ti svg{stroke-width:1.7}
body.v2 .tab.on,body.v2 .tab.on .ti{color:var(--acc2);filter:none}
body.v2 .tab.on:not(.tap-tab):after{display:none}
body.v2 .tap-btn{width:58px;height:58px;padding:0;border:0;color:#fff;background:var(--acc);transform:translateY(-12px);
  box-shadow:0 8px 24px -4px rgba(var(--acc-rgb),.85),0 0 0 5px var(--bg);animation:none}
body.v2 .tap-btn svg{width:28px;height:28px;stroke-width:1.9}
body.v2 .tab.tap-tab .tl{margin-top:-12px}
body.v2 .tab.tap-tab.on .tap-btn{animation:none;box-shadow:0 8px 28px -2px rgba(var(--acc-rgb),1),0 0 0 5px var(--bg)}
body.v2 .tab.tap-tab:active .tap-btn{transform:translateY(-12px) scale(.93)}
body.v2 .toast{background:var(--card2);border:1px solid var(--line2);border-radius:14px;font-weight:600}
body.v2.has-tabbar .toast{bottom:calc(100px + var(--safe-b))}

/* ---------- панель «Ещё» ---------- */
.sheet-back{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,0);transition:background .22s;display:flex;align-items:flex-end}
.sheet-back.open{background:rgba(0,0,0,.6)}
.sheet{width:100%;max-width:520px;margin:0 auto;background:#0b0c10;border:1px solid #20232d;border-bottom:0;border-radius:26px 26px 0 0;
  padding:10px 12px calc(20px + env(safe-area-inset-bottom,0px));transform:translateY(100%);transition:transform .22s cubic-bezier(.2,.8,.2,1)}
.sheet-back.open .sheet{transform:none}
.sh-handle{width:44px;height:5px;border-radius:99px;background:#2d313d;margin:2px auto 12px}
.sh-row{display:flex;align-items:center;gap:14px;padding:11px 8px;border-radius:14px;cursor:pointer;color:#f5f6f8;font-family:"Inter",-apple-system,"Segoe UI",Roboto,sans-serif}
.sh-row:active{background:#15181f}
.sh-row .sq{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;background:#15181f;border:1px solid #242833;color:#f5f6f8;flex:none}
.sh-row .i2{width:21px;height:21px;display:grid}
.sh-row .i2 svg{width:100%;height:100%;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sh-t{flex:1;font-size:16.5px;font-weight:600;letter-spacing:-.2px}
.sh-row.t-acc{color:#6f8dff}
.sh-row.t-acc .sq{color:#6f8dff}
.sh-row .r2-badge{min-width:22px;height:22px;padding:0 7px;border-radius:999px;display:grid;place-items:center;background:#f5455c;color:#fff;font-size:12px;font-weight:800}

/* ---------- старые экраны в новом стиле ---------- */
body.v2 .list{gap:10px}
body.v2 .opt,body.v2 .tile,body.v2 .device,body.v2 .tr-item,body.v2 .tk,body.v2 .tap-cell{background:var(--card);border:1px solid var(--line);border-radius:18px;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none}
body.v2 .opt:active,body.v2 .tile:active{background:var(--card2);transform:none}
body.v2 .opt.on{border-color:var(--acc);background:rgba(var(--acc-rgb),.08)}
body.v2 .opt .ico,body.v2 .tile .ico,body.v2 .device .pi{background:var(--card3);border:1px solid var(--line2);color:var(--tx)}
body.v2 .opt .ico.tier{border:0}
body.v2 .opt .ico.t-ultra{background:linear-gradient(135deg,#6f8dff,#4f74ff)}
body.v2 .opt .ico.t-exclusive{background:linear-gradient(135deg,#8fd3ff,#4f74ff)}
body.v2 .hero{background:var(--card);border:1px solid var(--line);box-shadow:none}
body.v2 .hero .watermark{display:none}
body.v2 .big{background:none;-webkit-text-fill-color:currentColor;color:var(--tx);font-family:inherit;letter-spacing:-1.5px}
body.v2 .status-line{background:var(--card2);border:1px solid var(--line2)}
body.v2 .kv{border-bottom-color:var(--line)}
body.v2 .kv .k{color:var(--tx2)}
body.v2 .meter{background:var(--card3);border:0}
body.v2 .meter>i{background:var(--acc);box-shadow:none}
body.v2 .chip{background:var(--card2);border:1px solid var(--line2);color:var(--tx)}
body.v2 .chip.on{background:rgba(var(--acc-rgb),.12);border-color:var(--acc);color:#fff}
body.v2 .amount-field input{background:var(--bg);border:1px solid var(--line2);border-radius:14px;color:var(--tx);font-family:inherit;box-shadow:none}
body.v2 .amount-field input:focus{border-color:var(--acc);box-shadow:0 0 0 3px rgba(var(--acc-rgb),.15)}
body.v2 .pay-note{background:var(--card);border:1px solid var(--line);color:var(--tx2)}
body.v2 .warn-box{background:rgba(245,165,36,.07);border:1px solid rgba(245,165,36,.3);color:#f3c577}
body.v2 .glyph{background:var(--card2);border:1px solid var(--line2);color:var(--tx);box-shadow:none}
body.v2 .glyph.ok{background:rgba(47,210,122,.1);border-color:rgba(47,210,122,.3);color:var(--ok)}
body.v2 .total-card{background:var(--card2)}
body.v2 .kv .v.total{background:none;-webkit-text-fill-color:currentColor;color:var(--tx)}
body.v2 .msg{background:var(--card2);border-color:var(--line2)}
body.v2 .msg.me{background:var(--acc);border-color:transparent}
body.v2 .composer{background:var(--card);border-color:var(--line2)}
body.v2 .ic-btn{background:var(--card2);border-color:var(--line2)}
body.v2 .tile-badge{background:var(--bad);color:#fff;box-shadow:none}
body.v2 .linkish{color:var(--acc2)}

/* задания */
body.v2 .tk{padding:16px}
body.v2 .tk-ico{width:44px;height:44px;background:none;border:0;filter:none;display:block}
body.v2 .tk-t{font-weight:700;font-size:15.5px}
body.v2 .tk-d{color:var(--tx2)}
body.v2 .tk-rew{font-family:inherit;background:rgba(var(--acc-rgb),.12);border:1px solid rgba(var(--acc-rgb),.3);color:var(--acc2);font-size:12px;font-weight:800}
body.v2 .tk.done{border-color:rgba(47,210,122,.25);background:var(--card)}
body.v2 .tk.done .tk-rew{background:rgba(47,210,122,.1);border-color:rgba(47,210,122,.3);color:var(--ok)}
body.v2 .tk.wait{border-color:rgba(245,165,36,.3)}
body.v2 .tk-hold{background:var(--bg);border-color:var(--line2)}
body.v2 .tk-hold-top{color:var(--tx)}
body.v2 .tk-hint{color:var(--tx2)}
body.v2 .tk-hero{text-align:left}

/* Leader Combat */
body.v2 .combat-title{background:none;-webkit-text-fill-color:currentColor;color:var(--tx);font-family:inherit;text-transform:none;font-size:28px;letter-spacing:-.8px}
body.v2 .tap-sub{color:var(--tx2);font-size:14px}
body.v2 .tap-days{background:var(--card);border:1px solid var(--line2);font-family:inherit;font-weight:800}
body.v2 .tap-ring{border-color:rgba(var(--acc-rgb),.22)}
body.v2 .tap-orb{background:radial-gradient(circle at 50% 38%,#15192a 0%,#0c0e15 70%);border:1px solid var(--line2);
  box-shadow:0 0 0 10px rgba(var(--acc-rgb),.05),0 30px 70px -30px rgba(var(--acc-rgb),.7),inset 0 0 40px rgba(var(--acc-rgb),.08)}
body.v2 .tap-orb:before{display:none}
body.v2 .tap-orb-ico{width:128px;height:128px;filter:drop-shadow(0 6px 18px rgba(var(--acc-rgb),.45))}
body.v2 .tap-orb-t{font-family:inherit;font-size:13px;font-weight:800;letter-spacing:5px;color:var(--tx2)}
body.v2 .tap-orb.pop .tap-orb-ico{filter:drop-shadow(0 0 22px rgba(160,180,255,.95))}
body.v2 .tap-fl{font-family:inherit;font-weight:800;text-shadow:0 0 12px rgba(var(--acc-rgb),.9)}
body.v2 .tap-energy{padding:16px}
body.v2 .tap-en-l svg{color:var(--acc2);fill:rgba(var(--acc-rgb),.2)}
body.v2 .tap-en-l b,body.v2 .tc-v{font-family:inherit;font-weight:800}
body.v2 .tap-meter>i{background:var(--acc)}

/* заработок */
body.v2 .earn-hero{background:var(--card)}
body.v2 .btn.earn-send{background:var(--acc)}
body.v2 .tt-card{padding:14px}
body.v2 .ev-list{padding:4px 16px}
body.v2 .ev-ico{background:var(--card2)}
body.v2 .ev-t{color:var(--tx)}
body.v2 .step span{background:var(--acc);font-family:inherit}

/* кэшбек и уровни */
body.v2 .cb-hero{background:var(--card)}
body.v2 .lvl{background:var(--card);border-color:var(--line)}
body.v2 .lvl.on{border-color:var(--acc);background:rgba(var(--acc-rgb),.07)}

body.v2 .big small{letter-spacing:0;font-family:inherit}

/* =================== Leader Combat: центр =================== */
body.v2 .tap-stage{height:340px;margin:2px 0 6px}
body.v2 .tap-ring{display:none}
body.v2 .orb-dial{position:absolute;width:320px;height:320px;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-90deg);pointer-events:none;overflow:visible}
body.v2 .orb-dial .tk-s{stroke:#252a37;stroke-width:1.6;stroke-linecap:round}
body.v2 .orb-dial .tk-b{stroke:#3a4152;stroke-width:2.4;stroke-linecap:round}
body.v2 .dial-bg{fill:none;stroke:#141821;stroke-width:6}
body.v2 .dial-arc{fill:none;stroke-width:6;stroke-linecap:round;transition:stroke-dashoffset .5s ease;
  filter:drop-shadow(0 0 6px rgba(var(--acc-rgb),.75))}
body.v2 .tap-orb{width:236px;height:236px;border:0;gap:0;
  background:
    radial-gradient(60% 45% at 50% 16%,rgba(255,255,255,.14),transparent 70%),
    radial-gradient(circle at 50% 55%,#1a2140 0%,#0e1227 45%,#07090f 78%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.1),
    inset 0 0 0 1px rgba(160,180,255,.1),
    inset 0 -18px 36px rgba(0,0,0,.6),
    0 0 0 9px #0a0c12,
    0 0 0 10px rgba(160,180,255,.08),
    0 26px 60px -20px rgba(var(--acc-rgb),.55);
  transition:transform .08s ease-out,box-shadow .2s}
body.v2 .tap-orb:before{content:"";display:block;position:absolute;inset:18%;border-radius:50%;z-index:0;
  background:radial-gradient(circle,rgba(var(--acc-rgb),.32),transparent 68%);filter:blur(6px);transition:opacity .15s;opacity:.85}
body.v2 .tap-orb-ico,body.v2 .tap-orb-t{position:relative;z-index:1}
body.v2 .tap-orb-ico{width:120px;height:120px;margin-top:10px;filter:drop-shadow(0 8px 18px rgba(0,0,0,.55))}
body.v2 .tap-orb-t{margin-top:4px;font-size:11px;font-weight:800;letter-spacing:6px;color:#8e97b3}
body.v2 .tap-orb.pop{animation:none;transform:scale(.955)}
body.v2 .tap-orb.pop:before{opacity:1}
body.v2 .tap-orb.pop .tap-orb-ico{filter:drop-shadow(0 0 20px rgba(170,190,255,.9))}
body.v2 .tap-orb:active{transform:scale(.955)}
body.v2 .tap-orb.empty{filter:grayscale(.7) brightness(.65)}
body.v2 .tap-waves{position:absolute;left:50%;top:50%;width:236px;height:236px;transform:translate(-50%,-50%);pointer-events:none}
body.v2 .tap-waves i{position:absolute;inset:0;border-radius:50%;border:2px solid rgba(var(--acc-rgb),.55);animation:tapwave .7s ease-out forwards}
@keyframes tapwave{from{transform:scale(1);opacity:.9}to{transform:scale(1.28);opacity:0}}
body.v2 .tap-floats{z-index:3}

/* =================== нижнее меню: ровная сетка =================== */
body.v2 .tabbar{padding:0 14px calc(12px + var(--safe-b))}
body.v2 .tabbar-in{height:66px;padding:0 6px;align-items:stretch;border-radius:24px}
body.v2 .tab{position:relative;justify-content:center;gap:5px;height:100%;padding:0}
body.v2 .tab .ti{width:24px;height:24px}
body.v2 .tab .tl{display:block;line-height:14px;height:14px}
/* центральная кнопка висит над своей ячейкой, а подпись стоит на одной линии с остальными */
body.v2 .tab.tap-tab{justify-content:center}
body.v2 .tab.tap-tab:before{content:"";display:block;width:24px;height:24px}
body.v2 .tab.tap-tab .tl{margin-top:0}
body.v2 .tap-btn{position:absolute;left:50%;top:-24px;width:58px;height:58px;transform:translateX(-50%);
  box-shadow:0 10px 24px -6px rgba(var(--acc-rgb),.9),0 0 0 6px var(--bg)}
body.v2 .tab.tap-tab:active .tap-btn{transform:translateX(-50%) scale(.93)}
body.v2 .tab.tap-tab.on .tap-btn{box-shadow:0 10px 28px -4px rgba(var(--acc-rgb),1),0 0 0 6px var(--bg)}
