/* ===================== ГОСНОМЕРА — стили ===================== */
/* настоящий номерной шрифт РФ (ГОСТ Р 50577-93) */
@font-face{
  font-family:'RoadNumbers';
  src:url('../fonts/RoadNumbers.ttf') format('truetype');
  font-weight:normal;font-style:normal;font-display:swap;
}
:root{
  --bg:#0e1116;
  --bg2:#161b22;
  --card:#1c2330;
  --card2:#232c3b;
  --line:#2c3648;
  --txt:#e8edf4;
  --muted:#8593a8;
  --gold:#ffcc33;
  --gold2:#e6a817;
  --green:#3fd07a;
  --red:#ff5d6c;
  --accent:#4c8dff;
  --radius:16px;
  --shadow:0 10px 30px rgba(0,0,0,.45);
}

*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{min-height:100%}
body{
  background:var(--bg);
  color:var(--txt);
  font-family:'Segoe UI',system-ui,-apple-system,Roboto,Arial,sans-serif;
  min-height:100vh;
  padding-bottom:40px;
}
/* фон-подложка: фиксирована, не повторяется и не обрывается при прокрутке */
body::before{
  content:"";position:fixed;inset:0;z-index:-1;
  background:
    radial-gradient(1100px 700px at 50% -8%, #1b2a47 0%, transparent 62%),
    radial-gradient(900px 600px at 100% 100%, #16202f 0%, transparent 55%),
    var(--bg);
  background-repeat:no-repeat;
}

/* ---------- ИКОНКИ (Lucide, инлайн-SVG) ---------- */
.ic{width:1.05em;height:1.05em;display:inline-block;vertical-align:-0.16em;flex:0 0 auto}
.ti{display:inline-flex;align-items:center}
.tab .ti{margin-right:5px}
.luck-badge .ic,.luck-total .ic,.inc-title .ic{color:var(--green)}
.park-title .ic{color:#9dc0ff}
/* иконка + одиночный текст — выравнивание и зазор */
.status,.car-luck,.plate-luck,.locked-badge,.owned-badge{display:inline-flex;align-items:center;gap:5px}
/* иконка + строка с разметкой — только правый отступ у иконки */
.park-title .ic,.inc-title .ic,.luck-total .ic,.luck-badge .ic{margin-right:6px}

/* ---------- ШАПКА ---------- */
.topbar{
  position:sticky;top:0;z-index:20;
  display:flex;align-items:center;justify-content:flex-end;
  padding:14px 22px;
  background:rgba(14,17,22,.82);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.brand{display:flex;align-items:center;gap:10px}
.brand-plate{
  background:#fff;color:#111;font-weight:800;
  padding:2px 8px;border-radius:5px;font-size:16px;letter-spacing:1px;
  border:2px solid #111;
}
.brand-title{font-weight:800;letter-spacing:3px;font-size:18px}
.balance{
  display:flex;align-items:center;gap:8px;
  background:linear-gradient(135deg,#2a3444,#1a212d);
  border:1px solid var(--line);
  padding:8px 14px;border-radius:999px;box-shadow:var(--shadow);
}
.balance-icon{color:var(--gold);font-weight:800;font-size:18px}
.balance-amount{font-weight:800;font-size:18px;font-variant-numeric:tabular-nums}
.balance.flash,.gems.flash{animation:flash .5s ease}
@keyframes flash{0%{transform:scale(1)}40%{transform:scale(1.12)}100%{transform:scale(1)}}
/* кошелёк: гемы + деньги + профиль — одной высоты */
.wallet{display:flex;align-items:center;gap:8px}
.wallet .gems,.wallet .balance,.wallet .who{height:40px}
.gems{
  display:flex;align-items:center;gap:7px;
  background:linear-gradient(135deg,#2a2340,#1c1830);
  border:1px solid rgba(163,91,255,.4);
  padding:8px 13px;border-radius:999px;box-shadow:var(--shadow);
}
.gems .gem-badge{color:#c79bff}
.gems-amount{font-weight:800;font-size:17px;font-variant-numeric:tabular-nums}

/* ---------- МАГАЗИН ---------- */
.shop-h{font-size:16px;margin:20px 0 10px}
.shop-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.shop-card{
  background:var(--card);border:1px solid var(--line);
  border-top:3px solid var(--rc,var(--line));
  border-radius:14px;padding:14px;display:flex;flex-direction:column;align-items:center;gap:8px;
  text-align:center;box-shadow:var(--shadow);
}
.shop-ic{font-size:30px;color:#c79bff;display:flex}
.shop-ic.gem-ic{color:#c79bff}
.shop-name{font-weight:800;font-size:15px}
.shop-desc{font-size:12px;color:var(--muted)}
.shop-desc b{color:var(--txt)}
.shop-buy{margin-top:auto;display:inline-flex;align-items:center;gap:5px}
.shop-buy .ic{width:1em;height:1em}
.shop-result{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  background:linear-gradient(135deg,rgba(255,204,51,.1),transparent);
  border:1px solid var(--rc,var(--line));border-radius:14px;padding:14px;margin-bottom:8px;
}
.shop-result-info{font-size:14px;color:var(--muted)}
.shop-result-info b{color:var(--txt)}

/* ---------- МОДАЛКА ОТКРЫТИЯ ЯЩИКА ---------- */
.crate-box{align-items:center;text-align:center;max-width:520px;overflow:hidden}
.crate-reveal{position:relative;display:flex;flex-direction:column;align-items:center;gap:14px;padding:18px 6px 6px;width:100%}
.crate-glow{
  position:absolute;top:44%;left:50%;width:220px;height:220px;transform:translate(-50%,-50%);
  border-radius:50%;background:radial-gradient(circle, var(--rc,#fff) 0%, transparent 68%);
  opacity:.35;filter:blur(2px);z-index:0;animation:crate-glow 1.9s ease-in-out infinite;
}
@keyframes crate-glow{0%,100%{opacity:.22;transform:translate(-50%,-50%) scale(.9)}50%{opacity:.5;transform:translate(-50%,-50%) scale(1.18)}}
.crate-rays{
  position:absolute;top:44%;left:50%;width:340px;height:340px;transform:translate(-50%,-50%);z-index:0;
  background:repeating-conic-gradient(from 0deg, transparent 0 14deg, color-mix(in srgb, var(--rc,#fff) 22%, transparent) 14deg 16deg);
  -webkit-mask:radial-gradient(circle, #000 30%, transparent 66%);
          mask:radial-gradient(circle, #000 30%, transparent 66%);
  animation:crate-spin 9s linear infinite;opacity:.5;
}
@keyframes crate-spin{to{transform:translate(-50%,-50%) rotate(360deg)}}
.crate-title{position:relative;z-index:1;font-weight:800;font-size:18px;color:var(--rc)}
.crate-plates{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.crate-plate{
  display:flex;flex-direction:column;align-items:center;gap:6px;
  animation:crate-pop .55s cubic-bezier(.2,1.5,.4,1) both;
}
.crate-plate:nth-child(2){animation-delay:.12s}
.crate-plate:nth-child(3){animation-delay:.24s}
.crate-pval{font-size:12px;font-weight:700;color:var(--green)}
@keyframes crate-pop{0%{transform:scale(.3) translateY(-24px);opacity:0}70%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}
.crate-money{position:relative;z-index:1;font-weight:800;color:var(--gold);font-size:15px}
.crate-box .btn{position:relative;z-index:1;margin-top:6px}
@media (prefers-reduced-motion: reduce){
  .crate-glow,.crate-rays,.crate-plate{animation:none}
}

/* ---------- КАРКАС: сайдбар (фиксирован) + контент ---------- */
.app{display:block;min-height:100vh;--sw:214px}
.nav-collapsed{--sw:70px}
.main-col{min-width:0;display:flex;flex-direction:column;min-height:100vh;margin-left:var(--sw)}

.sidebar{
  position:fixed;top:0;left:0;height:100vh;
  width:fit-content;min-width:56px;max-width:280px;
  display:flex;flex-direction:column;gap:4px;z-index:40;
  background:rgba(20,26,34,.95);backdrop-filter:blur(10px);
  border-right:1px solid var(--line);padding:12px 10px;
}

.side-head{display:flex;align-items:center;gap:8px;padding:4px 4px 12px;min-height:44px}
.side-head .brand-plate{flex:0 0 auto;font-size:14px;padding:2px 6px}
.side-head .brand-title{flex:1 1 auto;min-width:0;font-size:13.5px;letter-spacing:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.side-toggle{
  flex:0 0 auto;margin-left:6px;width:32px;height:32px;
  display:flex;align-items:center;justify-content:center;
  background:transparent;color:var(--muted);border:1px solid var(--line);border-radius:9px;cursor:pointer;transition:.15s;
}
.side-toggle:hover{color:var(--txt);background:var(--card2)}
.side-toggle .ic{width:18px;height:18px}

.side-nav{display:flex;flex-direction:column;gap:3px;overflow-y:auto;overflow-x:hidden;flex:1 1 auto;min-height:0}
.side-nav::-webkit-scrollbar{width:0}

.tab{
  display:flex;align-items:center;gap:13px;position:relative;align-self:stretch;
  background:transparent;color:var(--muted);border:none;border-radius:11px;
  padding:11px 12px;font-size:14.5px;font-weight:600;cursor:pointer;
  white-space:nowrap;text-align:left;transition:background .15s,color .15s;
}
.tab .ic{width:20px;height:20px;flex:0 0 auto}
.tab:hover{background:var(--card2);color:var(--txt)}
.tab--active{background:linear-gradient(135deg,var(--gold),var(--gold2));color:#1a1206}
.tab--active:hover{color:#1a1206}
.tab-badge{
  margin-left:auto;background:rgba(0,0,0,.22);color:inherit;border-radius:999px;
  padding:1px 8px;font-size:11px;font-weight:800;
}
.tab--active .tab-badge{background:rgba(0,0,0,.18)}
.tab.has-dot::after{content:"";position:absolute;top:7px;left:29px;width:8px;height:8px;border-radius:50%;background:var(--red);box-shadow:0 0 0 2px var(--bg2)}

/* свёрнутое состояние — только иконки, логотип остаётся */
.nav-collapsed .side-head{flex-direction:column;gap:10px;padding:4px 0 12px}
.nav-collapsed .side-toggle{margin-left:0}
.nav-collapsed .side-label{display:none}
.nav-collapsed .tab{justify-content:center;padding-left:0;padding-right:0;gap:0}
.nav-collapsed .tab-badge{display:none}
.nav-collapsed .tab.has-dot::after{top:6px;left:auto;right:13px}

/* бургер в шапке (только мобилка) + подложка меню */
.side-burger{display:none;flex:0 0 auto;margin-right:auto;width:38px;height:38px;
  align-items:center;justify-content:center;background:var(--card2);color:var(--txt);
  border:1px solid var(--line);border-radius:10px;cursor:pointer}
.side-burger:hover{filter:brightness(1.15)}
.side-burger .ic{width:20px;height:20px}
.nav-backdrop{display:none}

/* узкие экраны: меню — выезжающее поверх контента, контент НЕ сдвигается (не скачет) */
@media (max-width:760px){
  .main-col{margin-left:0}
  .sidebar{
    width:min(82vw,290px);transform:translateX(-100%);
    transition:transform .25s ease;box-shadow:0 0 44px rgba(0,0,0,.65);
  }
  .app.nav-open .sidebar{transform:translateX(0)}
  .nav-backdrop{display:block;position:fixed;inset:0;z-index:39;background:rgba(0,0,0,.55);
    opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease}
  .app.nav-open .nav-backdrop{opacity:1;visibility:visible}
  .side-burger{display:inline-flex}
}

/* ---------- КОНТЕНТ ---------- */
.content{max-width:960px;width:100%;margin:0 auto;padding:18px 22px}
.content.wide{max-width:1320px}
.view-title .ti{color:var(--gold);margin-right:9px}
.view-title .ti .ic{width:.95em;height:.95em}
.modal-title .ti{color:var(--gold);margin-right:6px}
.view{display:none;animation:fade .25s ease}
.view--active{display:block}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.view-title{font-size:22px;margin-bottom:4px}
.view-sub{color:var(--muted);font-size:14px;margin-bottom:18px}

/* ---------- НОМЕРНОЙ ЗНАК (2 белые плашки на чёрной подложке) ---------- */
.plate{
  --h:64px;
  display:inline-flex;align-items:stretch;
  gap:calc(var(--h)*.038);                     /* сплошная чёрная перегородка (тоньше) */
  padding:calc(var(--h)*.05);                  /* чёрная рамка по кругу */
  height:var(--h);line-height:1;user-select:none;
  background:#0a0a0a;
  border-radius:calc(var(--h)*.13);
  box-shadow:0 3px 10px rgba(0,0,0,.45);
  font-family:'RoadNumbers','Montserrat','Arial',sans-serif;font-weight:400;color:#0d0d0d;
  text-transform:uppercase;
  /* номер всегда «светлый» и не инвертируется темой устройства / авто-тёмной темой браузера */
  color-scheme:light;
  forced-color-adjust:none;
  -webkit-print-color-adjust:exact;print-color-adjust:exact;
}
.plate,.plate *{ forced-color-adjust:none; }
/* белые плашки с округлыми углами */
.plate-main,.plate-region{
  background:linear-gradient(180deg,#ffffff 0%,#fafafa 60%,#efefec 100%);
  border-radius:calc(var(--h)*.085);
  color:#0d0d0d;
}
.p-num,.p-let,.plate-region .p-reg,.plate-region .p-rus{ color:#0d0d0d;-webkit-text-fill-color:#0d0d0d; }
/* левый блок: буква · 3 цифры · 2 буквы — по нижнему краю, вертикальный центр */
.plate-main{
  display:block;white-space:nowrap;text-align:center;
  line-height:calc(var(--h)*.9);               /* высота белой плашки = центр строки */
  width:calc(var(--h)*2.9);                     /* одинаковая ширина, в притык под 6 символов */
  padding:0 calc(var(--h)*.06);
}
/* сдвиг к визуальному центру (у номерного шрифта глифы сидят выше центра) */
.plate-main .p-num,.plate-main .p-let{ display:inline-block;vertical-align:baseline;transform:translateY(calc(var(--h)*.07)); }
/* чёткая тень символов со всех сторон (без размытия; кроме RUS) */
.p-num,.p-let,.plate-region .p-reg{
  text-shadow:
     1px  1px 1px rgba(0,0,0,.13),
    -1px  1px 1px rgba(0,0,0,.1),
     1px -1px 1px rgba(0,0,0,.1),
    -1px -1px 1px rgba(0,0,0,.1);
}
.plate-main .p-num{
  font-size:calc(var(--h)*.64);
  letter-spacing:calc(var(--h)*.02);
  margin:0 calc(var(--h)*.09);
}
.plate-main .p-let{
  font-size:calc(var(--h)*.56);                /* буквы чуть больше */
  letter-spacing:calc(var(--h)*.015);
}
/* правый блок: регион сверху, RUS + флаг снизу */
.plate-region{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  width:calc(var(--h)*1.15);                    /* под 3 цифры в притык; 2 — чуть свободнее */
  padding:0 calc(var(--h)*.06);gap:calc(var(--h)*.02);
}
.plate-region .p-reg{
  font-size:calc(var(--h)*.5);letter-spacing:calc(var(--h)*.02);
  display:inline-block;transform:translateY(calc(var(--h)*.05));
}
.plate-region .p-rus{
  display:flex;align-items:center;gap:calc(var(--h)*.06);
  font-size:calc(var(--h)*.17);font-weight:600;letter-spacing:.3px;
}
/* флаг РФ */
.plate-region .flag{
  width:calc(var(--h)*.28);height:calc(var(--h)*.185);
  border:.5px solid rgba(0,0,0,.35);border-radius:1px;display:inline-block;
  background:linear-gradient(#ffffff 0 33.34%, #0039a6 33.34% 66.67%, #d52b1e 66.67% 100%);
}

/* ---------- РУЛЕТКА ---------- */
.reel-wrap{position:relative;margin:6px 0 20px}
.reel-window{
  position:relative;overflow:hidden;
  border-radius:var(--radius);
  background:linear-gradient(180deg,#10151d,#1a2230);
  border:1px solid var(--line);
  box-shadow:inset 0 0 40px rgba(0,0,0,.6);
  padding:22px 0;
}
.reel-window::before,.reel-window::after{
  content:"";position:absolute;top:0;bottom:0;width:80px;z-index:3;pointer-events:none;
}
.reel-window::before{left:0;background:linear-gradient(90deg,#12171f,transparent)}
.reel-window::after{right:0;background:linear-gradient(270deg,#12171f,transparent)}
.reel-track{display:flex;gap:14px;padding:0 50%;will-change:transform}
.reel-item{
  flex:0 0 auto;display:flex;align-items:center;justify-content:center;
  opacity:.5;transition:opacity .2s, filter .2s;
}
/* подсветка выпавших номеров (без увеличения — чтобы не наезжали) */
.reel-item.reel-win{opacity:1;filter:drop-shadow(0 0 7px rgba(255,204,51,.7))}
/* маркеры (1 для ×1, 3 для ×3) — рисуются динамически */
.reel-markers{position:absolute;inset:0;z-index:5;pointer-events:none}
.reel-mark{
  position:absolute;top:0;bottom:0;width:2px;transform:translateX(-50%);
  background:linear-gradient(var(--gold),rgba(255,204,51,.12));opacity:.75;
}
.reel-mark::before{
  content:"";position:absolute;top:-2px;left:50%;transform:translateX(-50%);
  width:0;height:0;
  border-left:9px solid transparent;border-right:9px solid transparent;
  border-top:14px solid var(--gold);
  filter:drop-shadow(0 2px 3px rgba(0,0,0,.5));
}

/* результат — фиксированная высота, чтобы кнопка не прыгала */
.spin-result{
  min-height:150px;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:8px;margin:6px 0 4px;
}
.spin-result.show{animation:pop .5s ease}
@keyframes pop{0%{transform:scale(.6);opacity:0}60%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}
.result-tags{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}
.result-tag{
  padding:4px 12px;border-radius:999px;font-size:13px;font-weight:800;
}
.result-value{font-size:14px;color:var(--muted);text-align:center}
.result-value b{color:var(--green)}
.plate-card .comm{font-size:11px;color:var(--muted)}
.plate-card .comm b{color:var(--txt)}

/* кнопка крутить */
.spin-controls{display:flex;justify-content:center;margin:6px 0}
.btn{
  border:none;cursor:pointer;border-radius:14px;font-weight:800;
  transition:transform .12s, filter .2s;
}
.btn:active{transform:translateY(2px)}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn--spin{
  background:linear-gradient(135deg,var(--gold),var(--gold2));
  color:#1a1206;font-size:22px;letter-spacing:2px;
  padding:18px 54px;box-shadow:0 8px 24px rgba(230,168,23,.4);
  display:flex;flex-direction:column;align-items:center;gap:2px;
}
.btn--spin .btn-sub{font-size:13px;font-weight:700;opacity:.75;letter-spacing:0}
.btn--gold{background:linear-gradient(135deg,var(--gold),var(--gold2));color:#1a1206;padding:12px 22px;font-size:15px}
.hint{text-align:center;color:var(--muted);font-size:13px;margin-top:16px}
.hint b{color:var(--txt)}

/* ---------- УДАЧА ГАРАЖА ---------- */
.luck-badge{
  margin:14px auto 0;max-width:520px;text-align:center;
  background:linear-gradient(135deg,rgba(63,208,122,.14),rgba(255,204,51,.12));
  border:1px solid rgba(63,208,122,.35);
  border-radius:12px;padding:10px 16px;font-size:13.5px;color:var(--txt);
}
.luck-badge b{color:var(--green)}
.park-panel{
  display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  background:linear-gradient(135deg,rgba(76,141,255,.12),rgba(255,204,51,.06));
  border:1px solid rgba(76,141,255,.3);
  border-radius:var(--radius);padding:14px 18px;margin-bottom:12px;
}
.park-title{font-size:16px;font-weight:800}
.park-title b{color:#9dc0ff}
.park-sub{font-size:13px;color:var(--muted);margin-top:3px}
.park-sub b{color:var(--txt)}
.luck-panel{
  background:linear-gradient(135deg,rgba(63,208,122,.12),rgba(255,204,51,.08));
  border:1px solid rgba(63,208,122,.3);
  border-radius:var(--radius);padding:14px 18px;margin-bottom:18px;
}
.luck-total{font-size:17px;font-weight:800}
.luck-total b{color:var(--green)}
.luck-sub{font-size:13px;color:var(--muted);margin-top:4px}
.car-luck{
  align-self:flex-start;font-size:12px;font-weight:700;
  padding:3px 9px;border-radius:999px;
  background:var(--card2);color:var(--muted);border:1px solid var(--line);
}
.car-luck.on{background:rgba(63,208,122,.15);color:var(--green);border-color:rgba(63,208,122,.4)}

/* ---------- МУЛЬТИКРУТ / АВТОПРОДАЖА ---------- */
.spin-controls{gap:12px;flex-wrap:wrap}
.btn--spin10{
  background:linear-gradient(135deg,#4c8dff,#2f6fe0);color:#fff;
  font-size:20px;letter-spacing:1px;padding:18px 30px;
  display:flex;flex-direction:column;align-items:center;gap:2px;
  box-shadow:0 8px 24px rgba(76,141,255,.35);
}
.btn--spin10 .btn-sub{font-size:12px;font-weight:700;opacity:.8}
.autosell{
  display:flex;align-items:center;gap:8px;justify-content:center;
  margin:12px auto 0;font-size:13px;color:var(--muted);cursor:pointer;
}
.autosell input{width:16px;height:16px;accent-color:var(--green);cursor:pointer}
/* сетка результатов пачки */
.batch-head{font-size:14px;color:var(--muted);text-align:center}
.batch-head b{color:var(--green)}
.batch-grid{
  display:flex;flex-wrap:wrap;gap:16px;justify-content:center;width:100%;
}
.batch-cell{
  flex:0 0 auto;
  display:flex;flex-direction:column;align-items:center;gap:8px;
  background:var(--card);border:1px solid var(--line);border-top:3px solid var(--rc,var(--line));
  border-radius:12px;padding:12px 16px;
}
.batch-val{font-size:13px;font-weight:700;color:var(--green)}

/* ---------- ПРОКАЧКА ---------- */
.upg-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
.upg-card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:16px;display:flex;flex-direction:column;gap:10px;box-shadow:var(--shadow);
}
.upg-top{display:flex;align-items:center;gap:12px}
.upg-ic{font-size:28px}
.upg-name{font-weight:800;font-size:16px}
.upg-lvl{font-size:12px;color:var(--muted)}
.upg-desc{font-size:13px;color:var(--muted)}
.upg-cur{font-size:13px}
.upg-cur b{color:var(--gold)}
.upg-card .btn{margin-top:auto}

/* ---------- НАСТРОЙКИ ---------- */
.settings-row{display:flex;flex-wrap:wrap;gap:10px}
.settings-danger{border-color:rgba(255,93,108,.5)!important;color:var(--red)!important}

/* ---------- ПОДТВЕРЖДЕНИЕ ---------- */
.confirm-text{color:var(--muted);font-size:14px;line-height:1.45}
.confirm-actions{display:flex;gap:10px;justify-content:flex-end}
.confirm-actions .btn{padding:11px 20px}

/* ---------- ЛЕГЕНДА РЕДКОСТЕЙ ---------- */
.rarity-legend{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px;font-size:12px;color:var(--muted)}
.rl{display:inline-flex;align-items:center;gap:6px}
.rl i{width:12px;height:12px;border-radius:3px;background:var(--rc,#888);display:inline-block}


/* ---------- ПРОЧЕЕ UX ---------- */
.empty-cta{color:var(--gold);font-weight:700;text-decoration:none;border-bottom:1px dashed var(--gold)}
.flt-count{font-size:12px;color:var(--muted);margin-left:auto;align-self:center}
.car-photo img{opacity:0;transition:opacity .35s}
.car-photo img.ok{opacity:1}

/* ---------- КОНФЕТТИ ---------- */
.confetti{position:fixed;inset:0;pointer-events:none;z-index:80;overflow:hidden}
.confetti i{position:absolute;top:-18px;opacity:0;will-change:transform,top;box-shadow:0 1px 2px rgba(0,0,0,.18)}
.confetti.go i{animation:confetti-fall var(--dur,2.6s) cubic-bezier(.28,.62,.5,1) forwards}
@keyframes confetti-fall{
  0%  {opacity:0;top:-18px;transform:translateX(0) rotate(0)}
  10% {opacity:1}
  90% {opacity:1}
  100%{opacity:.9;top:108%;transform:translateX(var(--dx,30px)) rotate(var(--rot,540deg))}
}

/* ---------- СТАТИСТИКА / ДИАГРАММЫ ---------- */
.stat-cards{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
.stat-tile{
  background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px;text-align:center;
}
.stat-v{font-size:20px;font-weight:800}
.stat-k{font-size:12px;color:var(--muted);margin-top:2px}
.chart-block{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-top:14px}
.chart-title{font-size:13px;color:var(--muted);margin-bottom:12px}
.bar-chart{display:flex;flex-direction:column;gap:9px}
.bar-row{display:grid;grid-template-columns:92px 1fr auto;align-items:center;gap:10px;font-size:13px}
.bar-name{color:var(--muted)}
.bar-track{height:12px;background:var(--card2);border-radius:999px;overflow:hidden}
.bar-fill{display:block;height:100%;background:var(--rc,#888);border-radius:999px;transition:width .5s}
.bar-val{font-size:12px;color:var(--txt);white-space:nowrap;font-variant-numeric:tabular-nums}
/* кольцо достижений */
.chart-ring{display:flex;align-items:center;gap:16px}
.ring{--p:0;position:relative;width:84px;height:84px;border-radius:50%;flex:0 0 auto;
  display:flex;align-items:center;justify-content:center;
  background:conic-gradient(var(--gold) calc(var(--p)*1%), var(--card2) 0)}
.ring::before{content:"";position:absolute;width:60px;height:60px;border-radius:50%;background:var(--card)}
.ring span{position:relative;font-weight:800;font-size:16px}
.ring-t{font-weight:800;font-size:15px}
.ring-d{font-size:13px;color:var(--muted)}

/* ---------- ДОСТИЖЕНИЯ ---------- */
.ach-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.ach-card{
  display:flex;align-items:center;gap:12px;
  background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;opacity:.7;
}
.ach-card.done{opacity:1;border-color:rgba(63,208,122,.45);background:linear-gradient(135deg,rgba(63,208,122,.1),transparent)}
.ach-ic{font-size:24px;color:var(--muted);display:flex}
.ach-card.done .ach-ic{color:var(--green)}
.ach-body{flex:1;min-width:0}
.ach-t{font-weight:800;font-size:15px}
.ach-d{font-size:12px;color:var(--muted)}
.ach-r{font-weight:800;color:var(--gold);font-size:13px;white-space:nowrap}
.ach-r.ach-done{color:var(--green)}

/* ---------- ДОХОД ГАРАЖА ---------- */
.inc-title{font-size:16px;font-weight:800}
.inc-title b{color:var(--green)}
.inc-info .inc-sub{font-size:13px;color:var(--muted);margin-top:3px}

/* ---------- СЛИЯНИЕ ---------- */
.fuse-panel{
  background:linear-gradient(135deg,rgba(163,91,255,.12),rgba(76,141,255,.06));
  border:1px solid rgba(163,91,255,.3);
  border-radius:var(--radius);padding:14px 16px;margin-bottom:16px;
}
.fuse-title{font-size:13.5px;color:var(--muted);margin-bottom:10px}
.fuse-row{display:flex;flex-wrap:wrap;gap:10px}
.fuse-btn{
  background:var(--card2);color:var(--txt);border:1px solid rgba(163,91,255,.4);
  border-radius:10px;padding:9px 13px;font-size:13px;font-weight:700;cursor:pointer;
  display:flex;align-items:center;gap:8px;transition:filter .15s;
}
.fuse-btn:hover:not(:disabled){filter:brightness(1.2)}
.fuse-btn:disabled{opacity:.4;cursor:not-allowed}
.fuse-cnt{background:rgba(0,0,0,.25);border-radius:999px;padding:1px 8px;font-size:12px}

/* ---------- ЗАКАЗЫ ---------- */
.quest-grid{display:flex;flex-direction:column;gap:12px}
.quest-card{
  display:flex;gap:12px;align-items:center;
  background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;opacity:.75;
}
.quest-card.ready{opacity:1;border-color:rgba(255,204,51,.5);background:linear-gradient(135deg,rgba(255,204,51,.1),transparent)}
.quest-ic{font-size:24px;color:var(--muted);display:flex}
.quest-card.ready .quest-ic{color:var(--gold)}
.quest-body{flex:1;min-width:0}
.quest-t{font-weight:800;font-size:15px}
.quest-d{font-size:12px;color:var(--muted);margin-top:2px}
.quest-d b{color:var(--txt)}
.quest-actions{display:flex;flex-direction:column;gap:6px}
.q-btn{border:none;border-radius:9px;padding:8px 12px;font-size:12.5px;font-weight:700;cursor:pointer;white-space:nowrap}
.q-btn:disabled{opacity:.4;cursor:not-allowed}
.q-do{background:linear-gradient(135deg,var(--gold),var(--gold2));color:#1a1206}
.q-re{background:var(--card2);color:var(--txt);border:1px solid rgba(255,204,51,.4)}
.q-re:hover{filter:brightness(1.25)}
.q-re:active{transform:translateY(1px)}

.plate-luck{
  font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;
  background:var(--card2);color:var(--muted);border:1px solid var(--line);
}
.plate-luck.on{background:rgba(63,208,122,.15);color:var(--green);border-color:rgba(63,208,122,.4)}

/* ---------- РАРИТЕТНОСТЬ (рамки/цвета) ---------- */
.r-common{--rc:#8a97ab}
.r-uncommon{--rc:#4c8dff}
.r-rare{--rc:#a35bff}
.r-epic{--rc:#ff8a3d}
.r-legend{--rc:#ffcc33}
.tag-common{background:#8a97ab;color:#111}
.tag-uncommon{background:#4c8dff;color:#fff}
.tag-rare{background:#a35bff;color:#fff}
.tag-epic{background:#ff8a3d;color:#111}
.tag-legend{background:linear-gradient(135deg,#ffe08a,#ffcc33);color:#1a1206}

/* ---------- СЕТКИ КАРТОЧЕК ---------- */
.plates-grid{
  display:grid;gap:14px;
  grid-template-columns:repeat(auto-fill,minmax(230px,1fr));
}
.plate-card{
  background:var(--card);border:1px solid var(--line);
  border-radius:var(--radius);padding:16px;
  display:flex;flex-direction:column;align-items:center;gap:12px;
  border-top:3px solid var(--rc,var(--line));
  box-shadow:var(--shadow);
}
.plate-card.is-locked{opacity:.96;border-top-style:dashed}
.plate-card .meta{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%}
.plate-card .price{font-weight:800;color:var(--green);font-size:18px}
.plate-card .type-label{font-size:12px;color:var(--muted);text-align:center}
.plate-card .note{
  font-size:11.5px;line-height:1.35;text-align:center;color:#ffd98a;
  background:rgba(255,204,51,.08);border:1px solid rgba(255,204,51,.25);
  border-radius:8px;padding:6px 8px;width:100%;
}
.plate-card .status{
  font-size:11px;font-weight:800;padding:3px 10px;border-radius:999px;
}
.status--locked{background:rgba(255,204,51,.15);color:var(--gold)}
.status--mounted{background:rgba(76,141,255,.18);color:#9dc0ff}
.plate-card .row{display:flex;gap:8px;width:100%}
.card-btn{
  flex:1;border:none;border-radius:10px;padding:10px;font-weight:700;
  cursor:pointer;font-size:13.5px;transition:filter .2s,transform .1s;
  display:flex;align-items:center;justify-content:center;gap:5px;
}
.card-btn:active{transform:translateY(1px)}
.card-btn--sell{background:linear-gradient(135deg,var(--green),#2fae63);color:#04240f}
.card-btn--lock{background:var(--card2);color:var(--txt);border:1px solid var(--line);flex:0 0 auto;padding:10px 12px}
.card-btn--mount{background:rgba(76,141,255,.15);color:#9dc0ff;border:1px solid rgba(76,141,255,.35);flex:0 0 auto;padding:10px 12px}
.card-btn:disabled{opacity:.4;cursor:not-allowed}

/* фильтры склада — в 2 строки */
.filters{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}
.filters-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.flt-input,.flt-select{
  background:var(--card);color:var(--txt);border:1px solid var(--line);
  border-radius:10px;padding:10px 12px;font-size:14px;font-family:inherit;
}
.flt-input{flex:1 1 auto;min-width:150px}
.flt-input::placeholder{color:var(--muted)}
.flt-select{cursor:pointer;flex:1 1 auto}
.filters-row .btn{flex:0 0 auto}
.btn--sm{padding:10px 16px;font-size:14px;border-radius:10px}
.btn--ghost{background:var(--card2);color:var(--txt);border:1px solid var(--line);padding:12px 20px;font-size:15px}

/* модалка установки номера на авто */
.modal{
  position:fixed;inset:0;z-index:60;display:none;
  padding:20px;background:rgba(0,0,0,.6);backdrop-filter:blur(3px);
  overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
}
/* высокая модалка прокручивается сама (в оверлее), а не задний фон; когда влезает — центрируется */
.modal.show{display:flex;align-items:flex-start}
.modal-box{
  background:var(--card);border:1px solid var(--line);border-radius:18px;
  padding:20px;width:100%;max-width:460px;box-shadow:var(--shadow);
  display:flex;flex-direction:column;gap:14px;margin:auto;
}
@media (min-width:700px){ .modal-box{max-width:560px} }
.modal-title{font-weight:800;font-size:17px}
.modal-list{display:flex;flex-direction:column;gap:8px;overflow-y:auto}
.mount-row{
  display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:nowrap;
  background:var(--card2);border:1px solid var(--line);border-radius:12px;
  padding:11px 13px;cursor:pointer;transition:filter .15s;
}
.mount-row:hover{filter:brightness(1.15)}
.mount-row .mr-name{font-weight:700;display:flex;align-items:center;gap:6px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mount-row .mr-cur{font-size:12px;color:var(--muted);white-space:nowrap;flex:0 0 auto;display:flex;align-items:center;gap:5px}
.rar-dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex:0 0 auto;box-shadow:0 0 0 2px rgba(255,255,255,.06)}
.rar-dot{background:var(--rc,#8a97ab)}   /* цвет редкости — из канона (.r-* задаёт --rc) */

/* ---------- ОБМЕН ---------- */
.tr-top{display:flex;justify-content:flex-end;margin-bottom:14px}
.tr-h{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.6px;margin:26px 0 14px}
.tr-h::before{content:"";width:3px;height:14px;border-radius:2px;background:var(--gold)}
.tr-list{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));align-items:start}
.tr-list .empty,.tr-hist-list .empty{grid-column:1/-1}
.tr-card{
  display:flex;flex-direction:column;gap:14px;
  background:linear-gradient(180deg,var(--card),rgba(28,35,48,.6));
  border:1px solid var(--line);border-top:3px solid var(--rc,var(--gold));
  border-radius:16px;padding:16px 18px;box-shadow:var(--shadow);
  transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;
}
.tr-card:hover{transform:translateY(-2px);box-shadow:0 16px 36px rgba(0,0,0,.5)}
.tr-head{display:flex;flex-direction:column;gap:13px}
.tr-head .plate{flex:0 0 auto;align-self:center}
.tr-info{display:flex;flex-direction:column;gap:10px;min-width:0;flex:1}
.tr-owner{font-size:13px;color:var(--muted)}
.tr-owner b{color:var(--txt)}
.tr-wants{display:flex;flex-wrap:wrap;gap:7px}
.tr-want{display:inline-flex;align-items:center;gap:6px;background:var(--card2);border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:12.5px;font-weight:700;white-space:nowrap}
.tr-want .ic{width:15px;height:15px;color:var(--gold)}
.tr-btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto}
.tr-btns .btn{flex:1 1 auto}
/* входящие предложения */
.tr-offers{border-top:1px dashed var(--line);padding-top:14px;display:flex;flex-direction:column;gap:10px}
.tr-offers-h{font-size:12px;font-weight:800;color:var(--gold);text-transform:uppercase;letter-spacing:.5px}
.tr-offer{background:var(--card2);border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:10px}
.tr-offer-who{display:flex;align-items:center;gap:8px;font-size:13px}
.tr-offer-btns{display:flex;gap:8px}
.tr-offer-btns .btn{flex:1 1 auto}
.tr-noof{border-top:1px dashed var(--line);padding-top:12px;font-size:12.5px;color:var(--muted);text-align:center}
/* история */
.tr-hist-list{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.tr-hist{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 16px;box-shadow:var(--shadow)}
.tr-hist-with{font-size:12.5px;color:var(--muted);margin-bottom:8px}
.tr-hist-cols{display:flex;align-items:center;gap:8px}
.tr-hist-col{display:flex;flex-direction:column;gap:5px;align-items:flex-start;flex:1;min-width:0}
.tr-hist-lbl{font-size:11px;color:var(--muted);font-weight:700;text-transform:uppercase}
.tr-hist-arrow{color:var(--gold);font-size:20px;font-weight:800;flex:0 0 auto}
.tr-hist-money{font-size:13px;font-weight:800;color:var(--green)}
.tr-dash{color:var(--muted)}
/* конструктор лота */
.trade-box{max-width:520px}
.trade-field{display:flex;flex-direction:column;gap:7px}
.trade-field>label{font-weight:700;font-size:13.5px}
.trade-hint{color:var(--muted);font-weight:500;font-size:12px;margin-left:4px}
.trade-input{background:var(--card2);border:1px solid var(--line);border-radius:10px;padding:11px 13px;color:var(--txt);font-size:15px;font-weight:700}
.trade-pick{flex-direction:row;flex-wrap:wrap;max-height:190px}
.tr-pick-item{background:var(--card2);border:2px solid var(--line);border-radius:12px;padding:7px;cursor:pointer;transition:border-color .15s}
.tr-pick-item.on{border-color:var(--gold);box-shadow:0 0 0 2px rgba(255,204,51,.2)}
/* переключатель «что хочу взамен» */
.want-tabs{display:flex;gap:6px;background:var(--card2);border:1px solid var(--line);border-radius:11px;padding:4px}
.want-tab{flex:1;border:none;background:transparent;color:var(--muted);font-weight:700;font-size:13px;padding:8px 6px;border-radius:8px;cursor:pointer}
.want-tab.on{background:linear-gradient(135deg,var(--gold),var(--gold2));color:#1a1206}
.want-pane[hidden]{display:none}
.want-pane{margin-top:10px}
.combo-select,.mask-region2 select{width:100%;background:var(--card2);border:1px solid var(--line);border-radius:10px;padding:11px 12px;color:var(--txt);font-weight:600;font-size:14px}
.mask-region2{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.mask-region2>label{font-size:12.5px;color:var(--muted);font-weight:700}
/* маска в виде реального номера */
.mask-plate{display:inline-flex;align-items:stretch;background:#f6f6f1;border:2px solid #11151c;border-radius:9px;overflow:hidden;font-family:'Montserrat',sans-serif;box-shadow:0 2px 8px rgba(0,0,0,.3)}
.mask-main{display:flex;align-items:center;gap:2px;padding:5px 6px}
.mask-nums{display:flex;align-items:flex-end}
.mask-tail{display:flex;align-items:center}
.mask-slot{border:none;background:transparent;color:#11151c;font-weight:800;text-align:center;text-align-last:center;cursor:pointer;padding:2px 0;appearance:none;-webkit-appearance:none}
.mask-slot.mask-let{font-size:26px;width:30px}
.mask-nums .mask-slot{font-size:34px;width:30px}
.mask-tail .mask-let{font-size:26px;width:26px}
.mask-slot:focus{outline:none;background:rgba(255,204,51,.35);border-radius:5px}
.mask-reg{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;border-left:2px solid #11151c;padding:4px 8px;background:#f6f6f1}
.mask-regsel{border:none;background:transparent;color:#11151c;font-weight:800;font-size:20px;text-align:center;text-align-last:center;cursor:pointer;appearance:none;-webkit-appearance:none}
.mask-rus{display:flex;align-items:center;gap:4px;font-size:9px;font-weight:700;color:#11151c;letter-spacing:.5px}
.mask-flag{width:16px;height:4px;border-radius:1px;background:linear-gradient(to bottom,#fff 0 33%,#0039a6 33% 66%,#d52b1e 66% 100%);border:.5px solid #999}
.mask-preview{margin-top:10px;font-size:13px;color:var(--muted)}
.mask-preview b{color:var(--gold);letter-spacing:3px;font-size:16px}

/* ---------- КАПЧА (антибот) ---------- */
.captcha-box{max-width:380px}
.captcha-sub{font-size:13px;color:var(--muted);line-height:1.45;text-align:center}
.captcha-q{font-size:30px;font-weight:800;letter-spacing:3px;text-align:center;user-select:none;
  background:var(--card2);border:1px solid var(--line);border-radius:12px;padding:16px}
.captcha-box .trade-input{text-align:center;font-size:20px}
.captcha-err{color:var(--red);font-size:13px;min-height:16px;text-align:center}
.captcha-box .btn{justify-content:center}

/* ---------- ГАРАЖ ---------- */
.cars-grid{
  display:grid;gap:16px;
  grid-template-columns:repeat(auto-fill,minmax(250px,1fr));
}
.car-card{
  background:var(--card);border:1px solid var(--line);
  border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);
  display:flex;flex-direction:column;
}
.car-photo{
  position:relative;aspect-ratio:16/10;overflow:hidden;
  background:linear-gradient(135deg,#222c3c,#151b25);
  display:flex;align-items:center;justify-content:center;
}
/* фото — абсолютом поверх эмодзи-заглушки, чтобы ничего не съезжало */
.car-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;z-index:1}
.car-photo .placeholder{font-size:64px;opacity:.5;z-index:0}
.car-photo .locked-badge{
  position:absolute;top:10px;right:10px;background:rgba(0,0,0,.6);
  padding:5px 10px;border-radius:999px;font-size:12px;font-weight:700;
}
.car-photo .owned-badge{
  position:absolute;top:10px;right:10px;
  background:linear-gradient(135deg,var(--green),#2fae63);color:#04240f;
  padding:5px 10px;border-radius:999px;font-size:12px;font-weight:800;
}
.car-body{padding:14px;display:flex;flex-direction:column;gap:10px;flex:1}
.car-name{font-weight:800;font-size:16px}
.car-tier{font-size:12px;color:var(--muted)}
.car-foot{margin-top:auto;display:flex;flex-direction:column;gap:8px}
.car-price{font-weight:800;color:var(--gold);font-size:17px}
.car-plate{display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.car-plate .cp-label{font-size:11px;color:var(--muted)}
.car-plate .cp-actions{display:flex;gap:6px;width:100%}
.car-plate .cp-btn{
  flex:1;border:none;border-radius:9px;padding:8px;font-size:12.5px;font-weight:700;cursor:pointer;
  background:rgba(76,141,255,.15);color:#9dc0ff;border:1px solid rgba(76,141,255,.35);
}
.car-plate .cp-btn--off{background:var(--card2);color:var(--muted);border-color:var(--line)}
.car-btn{
  border:none;border-radius:10px;padding:11px;font-weight:800;cursor:pointer;
  font-size:14px;transition:filter .2s,transform .1s;
}
.car-btn:active{transform:translateY(1px)}
.car-btn--buy{background:linear-gradient(135deg,var(--gold),var(--gold2));color:#1a1206}
.car-btn--sell{background:var(--card2);color:var(--txt);border:1px solid var(--line)}
.car-btn--locked{background:var(--card2);color:var(--muted);cursor:not-allowed}
.car-btn:disabled{opacity:.5;cursor:not-allowed}

/* ---------- ПУСТО / ТОСТ ---------- */
.empty{
  text-align:center;color:var(--muted);padding:50px 20px;font-size:15px;
  border:1px dashed var(--line);border-radius:var(--radius);
}
.market-actions{display:flex;justify-content:flex-end;margin-bottom:16px}
.toast{
  position:fixed;left:50%;bottom:26px;
  transform:translateX(-50%) translateY(160%);
  opacity:0;visibility:hidden;pointer-events:none;
  background:var(--card2);border:1px solid var(--line);
  padding:14px 22px;border-radius:14px;font-weight:700;z-index:50;
  box-shadow:var(--shadow);
  transition:transform .35s cubic-bezier(.2,1.4,.4,1), opacity .25s, visibility .25s;
  max-width:90vw;text-align:center;
}
.toast.show{transform:translateX(-50%) translateY(0);opacity:1;visibility:visible}
.toast.ok{border-color:var(--green)}
.toast.err{border-color:var(--red)}

/* ---------- АДАПТИВ ---------- */
/* ---------- ПЛАНШЕТ / ТЕЛЕФОН ---------- */
@media (max-width:640px){
  .content{padding:14px 10px}
  .topbar{padding:11px 12px;gap:10px}
  .wallet{gap:6px}
  .balance{padding:5px 9px;gap:4px}
  .balance-icon{font-size:13px}
  .gems{padding:5px 8px}
  .gems,.balance{padding:6px 10px}
  .gems-amount,.balance-icon,.balance-amount{font-size:15px}
  .view-title{font-size:18px}
  .view-sub{font-size:13px}

  /* обмен: номер сверху, инфо и кнопки — на всю ширину карточки (не вылезают) */
  .tr-list,.tr-hist-list{grid-template-columns:1fr}
  .tr-card{padding:14px}
  .tr-head{flex-direction:column;align-items:stretch;gap:12px}
  .tr-head .plate{align-self:center}
  .tr-btns .btn,.tr-offer-btns .btn{flex:1 1 auto;min-width:0;font-size:13px;padding:10px 8px}
  .tr-hist-cols{gap:6px}

  /* рулетка */
  .plate{--h:50px}
  .reel-window::before,.reel-window::after{width:38px}
  .spin-result{min-height:128px}
  /* выигранные номера в сводке (×3/×5) компактнее, чтобы не занимали пол-экрана */
  .batch-grid{gap:7px}
  .batch-cell{padding:7px 8px;gap:4px;border-radius:9px}
  .batch-cell .plate{--h:34px !important}
  .batch-val{font-size:11px}
  .btn--spin{padding:15px 30px;font-size:18px;letter-spacing:1px}
  .btn--spin10{padding:15px 20px;font-size:17px}

  /* карточки — в один столбец, чтобы номер помещался */
  .plates-grid{grid-template-columns:1fr;gap:10px}
  .plate-card{padding:12px}
  .cars-grid{grid-template-columns:1fr 1fr;gap:10px}
  .car-name{font-size:14px}
  .quest-grid,.upg-grid,.ach-grid{grid-template-columns:1fr}
  .stats-grid{grid-template-columns:1fr 1fr}

  /* панели гаража/дохода/парковки — в столбик, кнопка на всю ширину */
  .park-panel{flex-direction:column;align-items:stretch;gap:10px}
  .park-panel .btn{width:100%}

  /* фильтры склада */
  .filters{gap:8px}
  .flt-input{flex:1 1 100%}
  .flt-select{flex:1 1 47%;min-width:0}
  .filters .btn{flex:1 1 47%}
  .market-actions{justify-content:stretch}
  /* удобные тап-таргеты */
  .card-btn,.q-btn,.car-btn,.tab,.flt-select,.flt-input{min-height:42px}
}
@media (max-width:440px){
  .cars-grid,.stats-grid{grid-template-columns:1fr}
  .plate{--h:52px}
  /* спин-кнопки в столбик на узких экранах */
  .spin-controls{flex-direction:column;gap:10px}
  .btn--spin,.btn--spin10{width:100%}
  .quest-actions{flex-direction:row}
  .q-btn{flex:1}
}

/* ---------- ЭКРАН ВХОДА ---------- */
.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.auth-box{
  width:100%;max-width:380px;background:var(--card);border:1px solid var(--line);
  border-radius:var(--radius);padding:26px 22px;box-shadow:var(--shadow);
  display:flex;flex-direction:column;gap:14px;
}
.auth-logo{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:3px;font-size:20px;justify-content:center;margin-bottom:4px}
.auth-tabs{display:flex;gap:8px}
.auth-tab{flex:1;background:var(--card2);color:var(--muted);border:1px solid var(--line);border-radius:10px;padding:10px;font-weight:700;cursor:pointer}
.auth-tab--active{background:linear-gradient(135deg,var(--gold),var(--gold2));color:#1a1206;border-color:transparent}
.auth-input{background:var(--bg2);color:var(--txt);border:1px solid var(--line);border-radius:10px;padding:12px 14px;font-size:15px;font-family:inherit}
.auth-input::placeholder{color:var(--muted)}
.auth-err{color:var(--red);font-size:13px;min-height:16px;text-align:center}
.auth-submit{align-self:stretch;justify-content:center}

/* ---------- ВЫХОД ---------- */
.logout-btn{
  display:inline-flex;align-items:center;justify-content:center;
  width:38px;height:38px;border-radius:999px;cursor:pointer;
  background:var(--card2);color:var(--muted);border:1px solid var(--line);
}
.logout-btn:hover{color:var(--txt)}
.logout-btn .ic{width:18px;height:18px}
.who{display:flex;align-items:center;gap:7px;font-weight:700;font-size:13px;color:var(--muted);flex:0 0 auto;
  background:var(--card2);border:1px solid var(--line);border-radius:999px;padding:5px 12px 5px 5px;cursor:pointer;font-family:inherit}
.who:hover{color:var(--txt)}
.who-av{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:26px;height:26px;border-radius:50%;
  font-size:12px;font-weight:800;color:#1a1206;background:linear-gradient(135deg,var(--gold),var(--gold2))}
.who-clip{overflow:hidden;white-space:nowrap;max-width:84px}
.who-in{display:inline-block;white-space:nowrap}
@keyframes whoScroll{from{transform:translateX(0)}to{transform:translateX(var(--sh,0))}}
@media (max-width:440px){ .who-clip{max-width:52px} }

/* ---------- ТОП ИГРОКОВ ---------- */
.adm-num{font-variant-numeric:tabular-nums;text-align:right}
.lb-loading,.lb-me{color:var(--muted);font-size:14px;margin-bottom:14px}
.lb-me b{color:var(--gold)}
.lb-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius)}
.lb-table{width:100%;border-collapse:collapse;background:var(--card)}
.lb-table th,.lb-table td{padding:11px 12px;text-align:left;border-bottom:1px solid var(--line);font-size:14px;white-space:nowrap}
/* # — узкий столбец; Игрок — тянется; Имущество — к правому краю */
.lb-table th:first-child,.lb-table .lb-rank{width:1%;padding-right:6px;text-align:center}
.lb-table th:nth-child(2),.lb-table .lb-login{width:100%}
.lb-table th:last-child,.lb-table .lb-total{text-align:right}
.lb-table th{color:var(--muted);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.5px}
.lb-table tr:last-child td{border-bottom:none}
.lb-table tbody tr:hover td{background:rgba(255,255,255,.02)}
.lb-rank{font-weight:800;color:var(--muted)}
.lb-top1{color:#ffd54a}.lb-top2{color:#cfd6e0}.lb-top3{color:#e08a4b}
.lb-login{font-weight:800}
.lb-total{font-weight:800;color:var(--green)}
.lb-mine td{background:rgba(255,204,51,.10)!important}
.lb-mine .lb-login{color:var(--gold)}

/* ---------- КАЛЬКУЛЯТОР ---------- */
.calc-form{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;margin-bottom:18px}
.calc-fld{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted)}
.calc-two{display:flex;gap:6px}
.calc-digits{width:90px;font-size:18px;text-align:center;letter-spacing:3px;font-weight:700}
.calc-reg{flex:1 1 240px;min-width:200px}
.calc-reg .flt-select{width:100%}
.calc-result{display:flex;flex-direction:column;align-items:center;gap:12px;min-height:120px}
.calc-price{font-size:15px;color:var(--muted)}
.calc-price b{color:var(--green)}
@media (max-width:640px){
  .calc-form{gap:10px}
  .calc-fld{flex:1 1 46%}
  .calc-reg{flex:1 1 100%}
  .calc-form .btn{flex:1 1 100%}
}

/* ---------- ДНЕВНИК ОВЕРЛЕГЕНД ---------- */
.diary-cat{font-size:16px;font-weight:800;margin:18px 0 10px}
.diary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;margin-bottom:8px}
.diary-card{display:flex;gap:12px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px}
.diary-plate{flex:0 0 auto}
.diary-title{font-weight:800;font-size:14px}
.diary-num{font-size:12px;color:var(--gold);font-weight:700;margin:2px 0}
.diary-desc{font-size:12px;color:var(--muted);line-height:1.35}

/* ---------- ЯЩИКИ / АНТИБАНКРОТ ---------- */
.crate-emoji{font-size:30px;line-height:1}
.odds{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;margin:5px 0}
.odd{font-size:10px;font-weight:800;padding:2px 7px;border-radius:20px;border:1px solid var(--line)}
.o-rare{color:#a35bff}.o-epic{color:#ff8a3d}.o-legend{color:#ffcc33}
.crate-left{font-size:11px;color:var(--muted)}
.crate-left.zero{color:var(--red)}
.bail-card.ready{border-color:rgba(63,208,122,.5);box-shadow:0 0 0 1px rgba(63,208,122,.25) inset}
.wheel-card{border-color:rgba(255,204,51,.4);position:relative}
.wheel-card.free::after{content:"";position:absolute;top:10px;right:10px;width:11px;height:11px;border-radius:50%;
  background:var(--red);box-shadow:0 0 0 3px var(--card),0 0 10px rgba(255,93,108,.8)}

/* ---------- КОЛЕСО ФОРТУНЫ ---------- */
.wheel-wrap{position:relative;display:flex;justify-content:center;align-items:center;padding:14px 0 6px}
.wheel-round{position:relative;width:300px;height:300px;border-radius:50%;will-change:transform;
  border:6px solid #1a1206;box-shadow:0 0 0 4px var(--gold),0 8px 30px rgba(0,0,0,.5),inset 0 0 30px rgba(0,0,0,.35)}
.wheel-lbl{position:absolute;left:50%;top:50%;width:0;height:0;display:flex;align-items:center;justify-content:center}
.wl-in{display:inline-block;font-size:30px;line-height:1}
.wheel-hub{position:absolute;left:50%;top:50%;width:64px;height:64px;transform:translate(-50%,-50%);border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-size:26px;background:linear-gradient(135deg,var(--gold),var(--gold2));color:#1a1206;box-shadow:0 2px 10px rgba(0,0,0,.5),0 0 0 4px #1a1206}
.wheel-pointer{position:absolute;top:2px;left:50%;transform:translateX(-50%);z-index:5;
  width:0;height:0;border-left:13px solid transparent;border-right:13px solid transparent;border-top:22px solid var(--gold);filter:drop-shadow(0 2px 2px rgba(0,0,0,.5))}
.wheel-result{min-height:30px;text-align:center;margin-top:8px}
.wheel-won{font-size:17px;font-weight:800}
@media (max-width:440px){ .wheel-round{width:248px;height:248px} .wl-in{font-size:24px} }

/* ---------- РЕДКОСТЬ ТЕКСТОМ / МОНТАЖ ---------- */
.rar-txt,.mr-rar{color:var(--rc,#8a97ab)}   /* цвет редкости — из канона */
.mr-rar{font-size:11px;font-weight:800;text-transform:uppercase}
.mr-carluck{font-size:11px;color:var(--green);font-weight:700}
.cp-btn--pick{background:rgba(76,141,255,.15);border-color:rgba(76,141,255,.4);color:#cfe0ff}
.mount-row.r-common,.mount-row.r-uncommon,.mount-row.r-rare,.mount-row.r-epic,.mount-row.r-legend{border-left:3px solid var(--rc)}

/* ---------- ПОПАП АЧИВКИ ---------- */
.ach-pop{
  position:fixed;left:50%;top:16px;transform:translate(-50%,-140%);
  z-index:80;display:flex;align-items:center;gap:12px;max-width:90vw;
  background:linear-gradient(135deg,#2a2410,#1a1608);border:1px solid rgba(255,204,51,.55);
  border-radius:16px;padding:12px 18px;box-shadow:0 10px 30px rgba(0,0,0,.5);
  opacity:0;transition:transform .45s cubic-bezier(.2,1.2,.3,1),opacity .3s;pointer-events:none;
}
.ach-pop.show{transform:translate(-50%,0);opacity:1}
.ach-pop .ap-ic{font-size:30px;line-height:1}
.ach-pop .ap-title{font-size:12px;color:var(--gold);font-weight:800;text-transform:uppercase;letter-spacing:.5px}
.ach-pop .ap-name{font-size:16px;font-weight:800}
.ach-pop .ap-rew{font-size:13px;color:#c79bff;font-weight:800;display:flex;align-items:center;gap:4px;margin-top:2px}

/* ---------- ПРОФИЛЬ ---------- */
.pf-head{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.pf-avatar{width:56px;height:56px;flex:0 0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:26px;font-weight:800;color:#1a1206;background:linear-gradient(135deg,var(--gold),var(--gold2));box-shadow:0 4px 14px rgba(255,204,51,.3)}
.pf-headinfo{min-width:0}
.pf-login{font-size:20px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pf-worth{font-size:13px;color:var(--green);font-weight:700}
.pf-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:10px}
.pf-tile{background:var(--card2);border:1px solid var(--line);border-radius:12px;padding:12px 10px;text-align:center}
.pf-tile .pf-v{font-size:16px;font-weight:800;font-variant-numeric:tabular-nums}
.pf-tile .pf-k{font-size:11px;color:var(--muted);margin-top:2px}
.pf-rings{display:flex;gap:12px;margin-top:14px;flex-wrap:wrap}
.pf-ring{flex:1 1 130px;display:flex;align-items:center;gap:12px;background:var(--card2);border:1px solid var(--line);border-radius:14px;padding:12px}
.pf-act{margin-top:16px;text-align:center}

/* ---------- ДРУЗЬЯ ---------- */
.fr-add{display:flex;gap:8px;margin-bottom:12px}
.fr-add .flt-input{flex:1}
.fr-reslabel{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin:4px 0 8px}
#frResults{margin-bottom:6px}
.fr-row{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:11px 13px;margin-bottom:8px}
.fr-info{min-width:0;cursor:pointer;flex:1;display:flex;align-items:center;gap:10px}
.fr-txt{min-width:0}
.av{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:32px;height:32px;border-radius:50%;
  font-size:14px;font-weight:800;color:#1a1206;background:linear-gradient(135deg,var(--gold),var(--gold2))}
.lb-name{display:inline-flex;align-items:center;gap:9px;min-width:0}
.lb-name .lb-nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lb-name .av{width:28px;height:28px;font-size:12px}
.fr-name{font-weight:800;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fr-sub{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fr-acts{display:flex;gap:6px;flex:0 0 auto}
.fr-btn{background:var(--card2);color:var(--txt);border:1px solid var(--line);border-radius:9px;padding:7px 11px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit}
.fr-btn:hover{filter:brightness(1.15)}
.fr-ok{background:linear-gradient(135deg,var(--gold),var(--gold2));color:#1a1206;border:none}
.fr-no{color:var(--red)}

/* несколько дорожек рулетки (×5 → 3+2) */
.reel-window + .reel-window{margin-top:10px}
#reelStage .reel-window{padding:16px 0}

/* заказы: таймер сброса и выполненные */
.quests-timer{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:13px;margin-bottom:12px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:9px 12px}
.quests-timer b{color:var(--gold)}
/* спецзаказ */
.special-card{background:linear-gradient(135deg,#241a3a,#171226);border:1px solid rgba(163,91,255,.45);border-radius:16px;padding:15px;margin-bottom:14px}
.special-card.done{opacity:.75;border-color:rgba(63,208,122,.4)}
.special-head{margin-bottom:12px}
.special-t{font-weight:800;font-size:16px}
.special-d{font-size:12.5px;color:var(--muted);margin-top:3px}
.special-d b{color:#c79bff}
.special-slots{display:flex;flex-direction:column;gap:8px}
.sp-slot{display:flex;align-items:center;gap:10px;background:var(--card2);border:1px solid var(--line);border-radius:10px;padding:9px 12px}
.sp-slot.filled{border-color:rgba(63,208,122,.4)}
.sp-slot .ic{color:var(--green);flex:0 0 auto}
.sp-desc{flex:1;min-width:0;font-size:13px}
.sp-plate{font-weight:800;font-size:13px;color:var(--green);white-space:nowrap}
.sp-btn{flex:0 0 auto;background:linear-gradient(135deg,#a35bff,#7c3aed);color:#fff;border:none}
.sp-btn:disabled{opacity:.5}
.quest-card.done{opacity:.72}
.quest-card.done .quest-ic{color:var(--green)}
.quest-done-lbl{color:var(--green);font-weight:700}
