img.solar-icon {
    height: 1.15em;
    width: 1.15em;
    margin: 0 .07em;
    vertical-align: middle;
    display: inline-block;
    object-fit: contain;
    object-position: center center;
    pointer-events: none;
    user-select: none;
    flex-shrink: 0;
    position: relative;
    top: -0.06em;
}

.case-showcase-emoji img.solar-icon, .case-emoji img.solar-icon {
    height: 2em;
    width: 2em;
    top: 0;
    vertical-align: middle;
}

.deposit-menu-tab, .nav-btn, button {
    align-items: center;
}

.nav-btn img.solar-icon, .ghost-btn img.solar-icon, .primary-btn img.solar-icon, .profile-wallet-btn img.solar-icon, .deposit-menu-tab-icon img.solar-icon {
    height: 1.1em;
    width: 1.1em;
    top: 0;
    vertical-align: middle;
    margin: 0 .05em;
}

/* .nav-btn стал flex с gap:7px (см. правило .nav-btn ниже по файлу) --
   собственный margin у иконки теперь только удваивал бы отступ вдобавок к
   gap, поэтому обнуляем его именно здесь. */
.nav-btn img.solar-icon {
    margin: 0;
}

:root {
    --bg: #050810;
    --panel: #0a0e18;
    --panel-2: #101a2c;
    --text: #FFFFFF;
    --muted: #5A7086;
    --line: rgba(255, 255, 255, .06);
    --accent: #3868C0;
    --accent-2: #2A54A0;
    --accent-3: #58A6FF;
    --success: #22C55E;
    --warning: #F59E0B;
    --space-xs: 8px;
    --space-sm: 12px;
    --space-md: 16px;
    --space-lg: 20px;
    --space-xl: 28px;
}

* {
    box-sizing: border-box;
    border-radius: 0 !important;
}

html, body {
    margin: 0;
    padding: 0;
    background: linear-gradient(180deg, #0c1220 0%, #050810 70%) !important;
    color: var(--text) !important;
    font-family: 'Syne', 'Segoe UI', system-ui, sans-serif !important;
}

.sidebar-live {
    background: linear-gradient(180deg, rgba(5, 7, 13, .97), rgba(2, 3, 6, .94)) !important;
    border-color: rgba(255, 255, 255, .06) !important;
}

.sidebar-title, .panel-title {
    color: var(--muted) !important;
    letter-spacing: .2em !important;
}

.live-card {
    background: rgba(5, 7, 13, .7) !important;
    border-color: rgba(255, 255, 255, .06) !important;
    box-shadow: none !important;
}

.live-card:hover {
    border-color: rgba(56, 104, 192, .3) !important;
}

.topbar {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 150 !important;
    margin: 0 !important;
    border-radius: 0 !important;
    border-top: none !important;
    border-left: none !important;
    border-right: none !important;
    margin-bottom: 0 !important;
    background: rgba(3, 4, 7, .96) !important;
    border-color: rgba(255, 255, 255, .07) !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .6) !important;
}

.brand-btn {
    background: rgba(56, 104, 192, .08) !important;
    border-color: rgba(56, 104, 192, .24) !important;
    color: #58A6FF !important;
    font-weight: 800 !important;
    letter-spacing: .1em !important;
    text-transform: uppercase !important;
}

.nav-btn {
    background: transparent !important;
    border: none !important;
    color: var(--text) !important;
}

.nav-btn:hover {
    background: rgba(255, 255, 255, .13) !important;
}

.nav-btn.active {
    background: linear-gradient(135deg, #3868C0, #2A54A0) !important;
    border: none !important;
    color: #fff !important;
}

.primary-btn {
    background: linear-gradient(135deg, #3868C0, #2A54A0) !important;
    color: #fff !important;
    font-weight: 800 !important;
    letter-spacing: .1em !important;
    text-transform: uppercase !important;
    box-shadow: 0 6px 22px rgba(56, 104, 192, .36) !important;
}

.primary-btn:hover {
    filter: brightness(1.08) !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 10px 30px rgba(88, 166, 255, .44) !important;
}

.wheel-sell-btn {
    background: linear-gradient(135deg, #3868C0, #2A54A0) !important;
    box-shadow: 0 6px 18px rgba(56, 104, 192, .3) !important;
}

.speed-toggle-pill {
    background: linear-gradient(135deg, #3868C0, #2A54A0) !important;
    box-shadow: 0 6px 16px rgba(56, 104, 192, .3) !important;
}

.speed-toggle {
    background: rgba(5, 7, 13, .7) !important;
    border-color: rgba(255, 255, 255, .07) !important;
}

.ghost-btn.accent {
    border-color: rgba(56, 104, 192, .3) !important;
    color: #58A6FF !important;
}

.hero-banner, .profile-card, .case-card, .inventory-card, .item-hero, .item-related-panel, .profile-hero, .ops-layout .profile-card, .case-showcase, .case-info-panel, .fuse-panel, .inventory-panel {
    background: rgba(4, 6, 12, .85) !important;
    border-color: rgba(255, 255, 255, .06) !important;
    box-shadow: 0 4px 28px rgba(0, 0, 0, .5) !important;
}

.case-card:hover {
    transform: translateY(-4px) !important;
    border-color: rgba(56, 104, 192, .38) !important;
    box-shadow: 0 0 36px rgba(56, 104, 192, .14), 0 8px 24px rgba(0, 0, 0, .5) !important;
}

.case-card:active {
    transform: translateY(-1px) scale(.98) !important;
}

.case-card {
    position: relative !important;
    overflow: hidden !important;
}

.case-card::after {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 2px !important;
    background: linear-gradient(90deg, transparent, #3868C0, transparent) !important;
    transform: scaleX(0) !important;
    transform-origin: center !important;
    transition: transform .3s ease !important;
    pointer-events: none !important;
}

.case-card:hover::after {
    transform: scaleX(1) !important;
}

.hero-banner {
    position: relative !important;
    overflow: hidden !important;
}

.hero-copy h1 {
    font-size: 26px !important;
    font-weight: 500 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    line-height: 1.25 !important;
    font-family: 'DM Mono', 'Space Grotesk', system-ui, sans-serif !important;
}

.hero-badge {
    background: linear-gradient(135deg, rgba(56, 104, 192, .88), rgba(30, 64, 130, .78)) !important;
    color: #fff !important;
}

.hero-banner::before {
    content: 'WIN' !important;
    position: absolute !important;
    right: -10px !important;
    bottom: -28px !important;
    font-family: 'Syne', sans-serif !important;
    font-size: 200px !important;
    font-weight: 800 !important;
    color: rgba(30, 64, 130, .05) !important;
    line-height: 1 !important;
    pointer-events: none !important;
    user-select: none !important;
    z-index: 0 !important;
}

.hero-copy, .promo-card {
    position: relative !important;
    z-index: 1 !important;
}

.promo-stat {
    background: rgba(4, 6, 12, .7) !important;
    border-color: rgba(255, 255, 255, .06) !important;
}

.promo-stat:hover {
    border-color: rgba(56, 104, 192, .3) !important;
}

input, select, textarea, .search-wrap input, .ops-input, .auth-input, .ops-weight-input, .ops-image-input, .ops-icon-size-input, .ops-ladder-row input {
    background: rgba(255, 255, 255, .04) !important;
    border-color: rgba(255, 255, 255, .08) !important;
    color: var(--text) !important;
}

input:focus, select:focus, textarea:focus {
    border-color: rgba(56, 104, 192, .4) !important;
    outline: none !important;
    box-shadow: 0 0 16px rgba(56, 104, 192, .1) !important;
}

.loot-card, .inventory-card, .target-card, .related-card, .roulette-item {
    background: rgba(5, 7, 13, .6) !important;
    border-color: rgba(255, 255, 255, .07) !important;
}

.loot-card:hover, .inventory-card:hover, .target-card:hover, .related-card:hover {
    border-color: rgba(56, 104, 192, .28) !important;
}

.target-card.active {
    outline: 2px solid rgba(255, 255, 255, .24) !important;
    background: linear-gradient(180deg, rgba(56, 104, 192, .18), rgba(255, 255, 255, .05)) !important;
}

.loot-chip {
    background: rgba(5, 7, 13, .6) !important;
    border-color: rgba(255, 255, 255, .07) !important;
}

.loot-chip:hover {
    border-color: rgba(56, 104, 192, .28) !important;
}

.case-price {
    color: #FFFFFF !important;
}

.case-visual {
    background: rgba(4, 6, 12, .5) !important;
    border-color: rgba(255, 255, 255, .07) !important;
}

.modal {
    background: rgba(2, 2, 4, .86) !important;
}

.modal-card {
    background: linear-gradient(180deg, #080b15, #030509) !important;
    border-color: rgba(56, 104, 192, .14) !important;
}

.icon-close {
    background: rgba(255, 255, 255, .06) !important;
    color: #fff !important;
}

.roulette-window {
    background: rgba(4, 6, 12, .7) !important;
    border-color: rgba(255, 255, 255, .07) !important;
}

.roulette-item {
    background: rgba(5, 7, 13, .7) !important;
    border-color: rgba(255, 255, 255, .07) !important;
}

.roulette-pointer {
    background: linear-gradient(180deg, #58A6FF, #fff, #3868C0) !important;
    box-shadow: 0 0 20px rgba(88, 166, 255, .5) !important;
}

.roulette-browser-edge {
    background: linear-gradient(90deg, transparent, rgba(2, 2, 4, .45), rgba(2, 2, 4, .94)) !important;
}

.toast {
    background: #06080f !important;
    border-color: rgba(56, 104, 192, .2) !important;
}

.auth-card {
    background: linear-gradient(180deg, rgba(7, 10, 17, .98), rgba(3, 5, 9, .98)) !important;
    border-color: rgba(255, 255, 255, .08) !important;
}

.auth-badge {
    background: rgba(56, 104, 192, .18) !important;
}

.auth-input {
    background: rgba(255, 255, 255, .04) !important;
    border-color: rgba(255, 255, 255, .09) !important;
}

.profile-tab.is-active, .ops-tab.is-active {
    border-color: rgba(56, 104, 192, .4) !important;
    color: #58A6FF !important;
}

.deposit-fullscreen-shell, .support-inapp-shell {
    background: linear-gradient(180deg, #080b14, #030509) !important;
}

.deposit-menu-tab.is-active {
    background: linear-gradient(135deg, rgba(56, 104, 192, .22), rgba(30, 64, 130, .12)) !important;
    border-color: rgba(56, 104, 192, .35) !important;
}

.payment-method-btn {
    background: rgba(5, 7, 13, .7) !important;
    border-color: rgba(255, 255, 255, .07) !important;
}

.payment-method-btn:hover {
    border-color: rgba(56, 104, 192, .35) !important;
}

.deposit-terminal-pay-btn {
    background: linear-gradient(135deg, #3868C0, #2A54A0) !important;
    box-shadow: 0 6px 22px rgba(56, 104, 192, .36) !important;
}

.support-floating-btn {
    background: linear-gradient(135deg, #3868C0, #2A54A0) !important;
    box-shadow: 0 8px 22px rgba(56, 104, 192, .36) !important;
}

.support-message-bot {
    background: rgba(56, 104, 192, .12) !important;
    border-color: rgba(56, 104, 192, .22) !important;
}

.case-group.pick-one-group .case-card {
    background: linear-gradient(180deg, rgba(56, 104, 192, .3), rgba(20, 30, 55, .92)) !important;
    border-color: rgba(88, 166, 255, .34) !important;
}

.pick-one-card {
    background: linear-gradient(180deg, rgba(59, 130, 246, .35), rgba(15, 23, 42, .9)) !important;
    border-color: rgba(88, 166, 255, .3) !important;
}

.pick-card.revealed {
    background: linear-gradient(180deg, rgba(30, 64, 130, .96), rgba(10, 16, 30, .98)) !important;
    border-color: rgba(88, 166, 255, .28) !important;
}

.hidden-drop, .hidden-pick-card {
    background: linear-gradient(180deg, rgba(56, 104, 192, .18), rgba(255, 255, 255, .04)) !important;
    border-color: rgba(56, 104, 192, .2) !important;
}

.case-section-title {
    color: var(--text) !important;
}

.case-section-title::after {
    background: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(56, 104, 192, .65), rgba(255, 255, 255, 0)) !important;
}

.ops-weights-panel, .ops-appearance-panel, .ops-presets-panel, .ops-card {
    background: rgba(4, 6, 12, .6) !important;
    border-color: rgba(255, 255, 255, .07) !important;
}

.ops-weight-row, .result-line-wrap {
    background: rgba(5, 7, 13, .5) !important;
    border-color: rgba(255, 255, 255, .07) !important;
}

*::-webkit-scrollbar-track {
    background: transparent !important;
}

*::-webkit-scrollbar-thumb {
    background: rgba(56, 104, 192, .2) !important;
}

*::-webkit-scrollbar-thumb:hover {
    background: rgba(56, 104, 192, .35) !important;
}

:root {
    --bg: #11171b;
    --panel: #182127;
    --panel-2: #202b32;
    --text: #eef3f6;
    --muted: #97a8b4;
    --line: rgba(175, 198, 212, .16);
    --accent: #3868C0;
    --accent-2: #2A54A0;
    --accent-3: #58A6FF;
    --success: #54c48b;
    --warning: #e7b163;
    --accent-rgb: 176, 53, 34;
    --accent-2-rgb: 215, 101, 45;
    --accent-3-rgb: 240, 163, 94;
    --space-xs: 8px;
    --space-sm: 12px;
    --space-md: 16px;
    --space-lg: 20px;
    --space-xl: 28px;
}

* {
    box-sizing: border-box;
}

html, body {
    margin: 0;
    padding: 0;
    background: radial-gradient(circle at 12% 0%, rgba(42, 84, 160, .22) 0%, rgba(42, 84, 160, 0) 28%), radial-gradient(circle at 88% 8%, rgba(42, 84, 160, .16) 0%, rgba(42, 84, 160, 0) 26%), linear-gradient(180deg, #10161a 0%, #0b1013 52%, #090d10 100%);
    color: var(--text);
    font-family: "Space Grotesk", "Segoe UI", system-ui, sans-serif;
}

button, input {
    font: inherit;
}

button {
    cursor: pointer;
    border: none;
    touch-action: manipulation;
}

a {
    text-decoration: none;
    color: inherit;
}

.token-inline-icon {
    width: 1.1em;
    height: 1.1em;
    display: inline-block;
    vertical-align: -.18em;
    margin-left: .18em;
}

@media (max-width: 767px) {
    .profile-best-drop-value {
        font-size: 18px !important;
    }
}

.app-shell {
    display: block;
    min-height: 100vh;
}

.sidebar-live {
    position: fixed;
    top: 0;
    left: 0;
    width: 175px;
    height: 100vh;
    border-right: 1px solid var(--line);
    padding: 92px 10px 24px;
    background: linear-gradient(180deg, rgba(24, 33, 39, .94), rgba(14, 20, 24, .88));
    backdrop-filter: blur(18px);
    overflow-y: auto;
    z-index: 50;
}

.main-content {
    margin-left: 175px;
    width: auto;
    padding-top: 100px !important;
}

.sidebar-title, .panel-title {
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
    font-size: 11px;
    color: #b4c0c8;
    margin-bottom: 14px;
}

.live-feed {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.live-card {
    background: linear-gradient(180deg, rgba(255, 255, 255, .04), rgba(255, 255, 255, .02));
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 12px;
    box-shadow: 0 1px 0 rgba(255, 255, 255, .03) inset;
    height: 96px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    position: relative;
}

.live-item {
    font-weight: 700;
}

/* ── Наведённая пауза + превью источника (десктоп) ────────────────────────
   Только на реальных мышках/трекпадах -- (hover:hover) исключает сенсорные
   экраны, где :hover залипает после тапа и превью осталось бы открытым без
   способа его закрыть. Само появление/скрытие превью -- чистый CSS через
   :hover, JS (app.js, bindLiveFeedHoverPause) отвечает только за паузу
   потока, самого рендера превью не касается вообще. */
@media (hover: hover) and (pointer: fine) {
    .live-card:hover .live-card-avatar,
    .live-card:hover .live-item {
        opacity: 0;
    }

    .live-card:hover .live-card-preview {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.live-card-avatar, .live-item {
    transition: opacity .18s ease;
}

.live-card-preview {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 8px;
    background: rgba(5, 7, 13, .94);
    opacity: 0;
    transform: translateY(10px) scale(.92);
    transition: opacity .25s ease, transform .25s ease;
    pointer-events: none;
    text-align: center;
}

.live-card-preview-media {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
}

.live-card-preview-emoji {
    font-size: 24px;
    line-height: 1;
}

.live-card-preview-image {
    width: 42px;
    height: 42px;
    object-fit: contain;
}

.live-card-preview-label {
    font-size: 13px;
    font-weight: 700;
    color: var(--text);
    line-height: 1.25;
}

/* Постоянный (без наведения) значок радужного/медового дайса -- независимый
   "крючок", видимый сразу, ровно так, как просили: замечаешь издалека, что
   выбило что-то особое. */
.live-card-special-badge {
    position: absolute;
    bottom: 4px;
    right: 4px;
    font-size: 13px;
    line-height: 1;
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .6));
}

.live-user, .live-time, .muted {
    color: var(--muted);
}

.live-time {
    font-size: 12px;
    margin-top: 6px;
}

@keyframes live-card-pop {
    0% {
        opacity: 0;
        transform: scale(.7) translateX(-12px);
    }
    55% {
        opacity: 1;
        transform: scale(1.06) translateX(3px);
    }
    100% {
        opacity: 1;
        transform: scale(1) translateX(0);
    }
}

@keyframes live-card-glow {
    0% {
        box-shadow: 0 0 0 2px rgba(56, 104, 192, .9), 0 0 32px rgba(56, 104, 192, .6);
    }
    100% {
        box-shadow: 0 1px 0 rgba(255, 255, 255, .03) inset;
    }
}

@keyframes live-card-fall {
    from {
        transform: translateY(var(--live-fall-from, -76px));
    }
    to {
        transform: translateY(0);
    }
}

.live-card {
    transition: border-color .6s ease;
}

.live-card-incoming {
    animation: live-card-pop .45s cubic-bezier(.2, .9, .3, 1) forwards,
    live-card-glow .8s ease forwards;
    border-color: rgba(56, 104, 192, .8) !important;
}

.live-card-falling {
    animation: live-card-fall .4s cubic-bezier(.2, .9, .3, 1) both;
}

/* Horizontal counterpart to live-card-fall/-falling above, for the mobile
   strip's row layout — existing cards shift sideways (translateX) to make
   room for a new one instead of the sidebar's vertical translateY, same
   timing/easing. live-card-pop (already translateX-based) and
   live-card-glow are reused as-is on the new card via .live-card-incoming
   — only the "make room" side needed a new axis. */
@keyframes live-card-shift-x {
    from {
        transform: translateX(var(--live-shift-from, -76px));
    }
    to {
        transform: translateX(0);
    }
}

.live-card-shifting-x {
    animation: live-card-shift-x .4s cubic-bezier(.2, .9, .3, 1) both;
}

/* Pinned "best drop of the last 24h" card — always the first entry, sits
   outside the rolling live-drop buffer (see getBestDropLast24h/app.js) so it
   never falls/shifts with the regular feed's pop-in animation. Reuses
   .live-card/.live-item/.live-item-name as-is for the inner layout so it
   stays visually identical to a regular drop card, just with a gold accent
   + corner badge layered on top instead of a different card shape. */
.live-feed-best:empty,
.live-best-banner-mobile:empty {
    display: none !important;
}

.live-feed-best {
    margin-bottom: 10px;
}

.live-card-best {
    border-color: rgba(255, 191, 71, .55);
    background: linear-gradient(180deg, rgba(255, 191, 71, .12), rgba(255, 255, 255, .02));
    box-shadow: 0 0 0 1px rgba(255, 191, 71, .16) inset, 0 8px 22px rgba(255, 156, 20, .18);
}

.live-card-best:hover {
    border-color: rgba(255, 191, 71, .85);
}

/* Badge sits INSIDE the card's own box (top-right corner), mirroring how
   .live-card-avatar already sits top-left with a small positive offset —
   a negative offset (poking above the card border) was tried first and
   clipped against the fixed topbar's higher z-index for the sidebar's very
   first card, and ate into neighboring cards on the mobile strip. Staying
   inside the existing 96px/64px card box sidesteps that whole class of bug. */
.live-card-best-badge {
    position: absolute;
    top: 6px;
    right: 6px;
    max-width: calc(100% - 12px);
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 2px 7px;
    border-radius: 999px;
    background: linear-gradient(135deg, #FFD873, #FF9C14);
    color: #2A1600;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .02em;
    text-transform: uppercase;
    box-shadow: 0 3px 10px rgba(255, 156, 20, .4);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    z-index: 1;
}

.live-card-best-badge-icon {
    display: inline-flex;
    flex: none;
}

/* Mobile gets its own distinct banner shape instead of reusing the small-tile
   strip layout — a second identically-shaped row (just gold instead of blue)
   sitting right above the regular strip read as "the same list, split in
   two" rather than something separate ("на телефоне лайвдроп топ предмет в
   отдельной вкладке а не в сплошной линии как на компе"). This is a full-
   width banner with its own label + a visible TOK value (deliberately more
   info than the compact tiles show, since a one-off featured callout can
   afford it) so it's unmistakably a different kind of element, not another
   feed row. Hidden by default; only shown under the same max-width:1023px
   breakpoint the mobile strip itself uses (.home-live-feed-mobile above). */
.live-best-banner-mobile {
    display: none;
}

@media (max-width: 1023px) {
    .live-best-banner-mobile {
        display: flex;
        align-items: center;
        gap: 12px;
        padding: 12px 14px;
        margin: 10px 0 14px;
        border: 1px solid rgba(255, 191, 71, .5);
        border-radius: 16px;
        background: linear-gradient(135deg, rgba(255, 191, 71, .16), rgba(14, 20, 24, .8) 60%);
        box-shadow: 0 8px 22px rgba(255, 156, 20, .16);
    }

    .live-best-banner-mobile.live-best-banner-clickable {
        cursor: pointer;
    }

    .live-best-banner-mobile-media {
        flex: none;
        width: 44px;
        height: 44px;
        display: grid;
        place-items: center;
    }

    .live-best-banner-mobile-media img {
        width: 44px;
        height: 44px;
        object-fit: contain;
    }

    .live-best-banner-mobile-info {
        flex: 1;
        min-width: 0;
    }

    .live-best-banner-mobile-label {
        display: flex;
        align-items: center;
        gap: 4px;
        font-size: 10px;
        font-weight: 800;
        letter-spacing: .06em;
        text-transform: uppercase;
        color: #FFC94A;
        margin-bottom: 3px;
    }

    .live-best-banner-mobile-name {
        font-size: 14px;
        font-weight: 700;
        color: var(--text);
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .live-best-banner-mobile-value {
        flex: none;
        padding: 5px 10px;
        border-radius: 999px;
        background: linear-gradient(135deg, #FFD873, #FF9C14);
        color: #2A1600;
        font-size: 12px;
        font-weight: 800;
        white-space: nowrap;
    }
}

.main-content {
    padding: 100px 24px 40px;
    max-width: 1400px;
}

.topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 24px;
    background: rgba(19, 27, 32, .72);
    backdrop-filter: blur(12px);
    box-shadow: 0 18px 40px rgba(0, 0, 0, .24);
}

.brand-btn, .nav-btn, .ghost-btn, .primary-btn, .user-box {
    border-radius: 14px;
}

.brand-btn, .nav-btn, .ghost-btn {
    background: transparent;
    color: var(--text);
    border: none;
    padding: 12px 16px;
}

.brand-btn {
    font-weight: 800;
    background: linear-gradient(135deg, rgba(42, 84, 160, .22), rgba(42, 84, 160, .14));
}

.main-nav {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.nav-btn.active, .ghost-btn.active {
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
    border: none;
}

.user-box {
    display: flex;
    align-items: center;
    gap: 12px;
    background: rgba(255, 255, 255, .04);
    padding: 8px 12px;
    border: 1px solid var(--line);
    color: var(--text);
}

.user-avatar, .profile-avatar-large {
    display: grid;
    place-items: center;
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
    font-weight: 800;
    color: #fff;
    overflow: hidden;
}

.user-avatar {
    width: 48px;
    height: 48px;
    border-radius: 14px;
}

.profile-avatar-large {
    width: 72px;
    height: 72px;
    border-radius: 20px;
    font-size: 26px;
}

.user-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.user-label {
    font-size: 12px;
    color: var(--muted);
}

.user-name, .profile-username {
    font-weight: 800;
}

.balance-chip {
    padding: 10px 14px;
    background: rgba(255, 255, 255, .04);
    border-radius: 14px;
    border: 1px dashed rgba(175, 198, 212, .18);
}

.balance-chip span {
    display: block;
    color: var(--muted);
    font-size: 12px;
}

.hero-banner, .profile-card, .case-card, .inventory-card, .item-hero, .item-related-panel, .profile-hero, .ops-layout .profile-card, .case-showcase, .case-info-panel, .fuse-panel, .inventory-panel {
    background: linear-gradient(180deg, rgba(255, 255, 255, .05), rgba(255, 255, 255, .025));
    border: 1px solid var(--line);
    border-radius: 24px;
    box-shadow: 0 18px 42px rgba(0, 0, 0, .24), 0 1px 0 rgba(255, 255, 255, .04) inset;
}

.hero-banner {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 20px 24px;
    margin-bottom: 14px;
}

.hero-badge {
    display: inline-flex;
    padding: 5px 10px;
    border-radius: 999px;
    background: linear-gradient(135deg, rgba(42, 84, 160, .85), rgba(42, 84, 160, .75));
    font-weight: 700;
    margin-bottom: 10px;
    color: #fff;
    letter-spacing: .08em;
    text-transform: uppercase;
    font-size: 10px;
}

.hero-copy h1 {
    font-size: 34px;
    line-height: 1.1;
    margin: 0;
    max-width: none;
}

.hero-copy p {
    margin: 0;
    color: var(--muted);
    max-width: none;
    font-size: 13px;
    line-height: 1.4;
}

.hero-promo-row {
    display: flex;
    gap: 10px;
}

.promo-card {
    display: grid;
    gap: 8px;
}

.promo-stat {
    flex: 1;
    background: linear-gradient(180deg, rgba(255, 255, 255, .045), rgba(255, 255, 255, .02));
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 10px 14px;
}

.promo-stat span {
    display: block;
    color: var(--muted);
    font-size: 11px;
    margin-bottom: 3px;
    font-family: 'DM Mono', monospace;
    letter-spacing: .03em;
    text-transform: none;
    font-weight: 400;
}

.promo-stat strong {
    font-size: 18px;
    font-family: 'DM Mono', monospace;
    font-weight: 500;
}

.search-row {
    margin-bottom: 18px;
}

.search-wrap {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.search-wrap input, .deposit-row input, .ops-form-row input, .ops-price-input {
    background: rgba(255, 255, 255, .04);
    border: 1px solid var(--line);
    color: var(--text);
    padding: 14px 16px;
    border-radius: 14px;
    width: 100%;
}

.section-head {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 14px;
    margin-bottom: 14px;
}

.section-head h2 {
    margin: 0;
    font-size: 28px;
}

.section-head span {
    color: var(--muted);
}

.section-head-stack {
    align-items: start;
}

.cases-grid, .loot-preview, .inventory-grid, .related-grid {
    display: grid;
    grid-template-columns:repeat(auto-fill, minmax(200px, 1fr));
    gap: 14px;
}

.case-card {
    position: relative;
    padding: 20px 16px 16px;
    display: flex;
    flex-direction: column;
    align-items: center;
    min-height: 280px;
    cursor: pointer;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.case-card:hover {
    transform: translateY(-4px);
    border-color: rgba(240, 163, 94, .28);
}

.case-card:active {
    transform: translateY(-1px) scale(.98);
}

.case-ribbon {
    position: absolute;
    top: 14px;
    right: 14px;
    padding: 6px 10px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .08);
    font-size: 11px;
    font-weight: 700;
}

.case-visual {
    position: relative;
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
}

.case-glow {
    display: none !important;
}

.case-emoji {
    font-size: 72px;
    z-index: 1;
    line-height: 1;
}

.case-title {
    font-size: 15px;
    font-weight: 800;
    text-align: center;
    margin-top: 12px;
    line-height: 1.25;
    width: 100%;
}

.case-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px solid var(--line);
}

.case-subtitle {
    color: var(--muted);
    font-size: 12px;
}

.case-body {
    display: none;
}

.case-price-row {
    display: none;
}

.case-price {
    font-size: 16px;
    font-weight: 800;
}

.primary-btn {
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
    color: #fff;
    padding: 13px 18px;
    font-weight: 800;
    box-shadow: 0 12px 24px rgba(42, 84, 160, .24);
}

.primary-btn.small {
    padding: 10px 14px;
    font-size: 14px;
}

.full-width {
    width: 100%;
}

.view {
    display: none;
}

.active-view {
    display: block;
}

.case-page-layout, .item-page-layout, .fuse-layout, .profile-layout {
    display: grid;
    grid-template-columns:.95fr 1.05fr;
    gap: 18px;
}

.case-showcase, .case-info-panel, .item-hero, .item-related-panel, .inventory-panel, .fuse-panel {
    padding: 20px;
    position: relative;
    overflow: hidden;
}

.case-showcase-emoji, .item-hero-emoji {
    font-size: 84px;
}

.case-showcase-name, .item-hero-name {
    font-size: 28px;
    font-weight: 800;
    margin-top: 12px;
}

.case-showcase-meta, .item-hero-meta {
    display: flex;
    gap: 12px;
    margin: 18px 0;
}

.case-showcase-meta div, .chance-box div {
    flex: 1;
    background: rgba(255, 255, 255, .04);
    border: 1px solid var(--line);
    padding: 14px;
    border-radius: 18px;
}

.case-showcase-meta span, .chance-box span, .item-hero-meta span {
    display: block;
    color: var(--muted);
    font-size: 12px;
    margin-bottom: 5px;
}

/* The number itself (referral count, earned TOK, etc.) -- these boxes are
   flex:1 with no min-width:0 protection on the number specifically, so a
   value growing from 3 to 5 digits (a partner accumulating referrals/
   earnings over time) had nothing keeping the digit width predictable,
   only the mobile flex-wrap fix nearby (driven by long RU labels, unrelated
   to digit count) offered any protection, and only below 700px. Tabular
   figures don't jitter sibling boxes as digits change width mid-count-up
   animation either. */
.case-showcase-meta strong, .chance-box strong {
    font-variant-numeric: tabular-nums;
    min-width: 2ch;
}

.case-show.case-glow {
    display: none !important;
}

.multi-open-row {
    display: flex;
    gap: 10px;
    margin: 12px 0 14px;
    position: relative;
    z-index: 2;
}

.open-count-btn {
    flex: 1;
    position: relative;
    z-index: 2;
}

.case-showcase > *:not(.case-showcase-glow) {
    position: relative;
    z-index: 2;
}

.case-showcase {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
}

.case-showcase-emoji {
    font-size: 110px !important;
    margin-bottom: 8px !important;
    line-height: 1 !important;
}

.case-showcase-name {
    text-align: center !important;
    font-size: 26px !important;
}

.case-showcase-meta {
    width: 100% !important;
    text-align: left !important;
}

.multi-open-row, #openSelectedCaseBtn {
    width: 100% !important;
}

.loot-card, .inventory-card, .target-card, .related-card, .roulette-item {
    background: rgba(255, 255, 255, .04);
    border: 1px solid var(--line);
    border-radius: 0;
    padding: 14px;
    transition: .18s transform, .18s box-shadow, .18s border-color;
}

.loot-card:hover, .inventory-card:hover, .target-card:hover, .related-card:hover {
    transform: translateY(-2px);
}

.loot-card, .related-card {
    text-align: center;
    cursor: pointer;
}

.loot-emoji, .item-emoji.big, .target-emoji, .roulette-emoji {
    font-size: 40px;
    margin-bottom: 8px;
}

.loot-name, .item-name, .target-name, .roulette-name {
    font-weight: 800;
}

.loot-value, .item-value, .target-value, .roulette-value {
    color: var(--muted);
    margin-top: 6px;
}

.rarity-common {
    border-color: rgba(109, 106, 131, .35);
    box-shadow: 0 0 0 1px rgba(109, 106, 131, .08), 0 0 22px rgba(109, 106, 131, .12) inset;
}

.rarity-rare {
    border-color: rgba(127, 102, 255, .45);
    box-shadow: 0 0 0 1px rgba(127, 102, 255, .1), 0 0 28px rgba(127, 102, 255, .16);
}

.rarity-epic {
    border-color: rgba(197, 102, 255, .5);
    box-shadow: 0 0 0 1px rgba(197, 102, 255, .12), 0 0 32px rgba(197, 102, 255, .18);
}

.rarity-legendary {
    border-color: rgba(255, 122, 223, .52);
    box-shadow: 0 0 0 1px rgba(255, 122, 223, .12), 0 0 34px rgba(255, 122, 223, .18);
}

.rarity-mythic {
    border-color: rgba(255, 179, 87, .55);
    box-shadow: 0 0 0 1px rgba(255, 179, 87, .12), 0 0 38px rgba(255, 179, 87, .22);
}

.inventory-card-top, .profile-user-block, .deposit-row, .ops-form-row, .ops-case-row, .inventory-actions {
    display: flex;
    align-items: center;
    gap: 12px;
}

.inventory-card {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.inventory-actions {
    justify-content: space-between;
}

.sell-btn {
    white-space: nowrap;
}

.item-source {
    font-size: 12px;
}

.slot-emoji {
    font-size: 32px;
}

.target-block {
    margin-top: 10px;
}

.target-picker {
    display: grid;
    grid-template-columns:repeat(auto-fill, minmax(140px, 1fr));
    gap: 10px;
    max-height: 380px;
    overflow: auto;
    margin: 10px 0 14px;
}

.target-card.active {
    outline: 2px solid rgba(255, 255, 255, .24);
    background: linear-gradient(180deg, rgba(141, 91, 255, .18), rgba(255, 255, 255, .05));
}

.chance-box {
    display: grid;
    grid-template-columns:1fr 1fr;
    gap: 12px;
    margin-bottom: 12px;
}

.profile-hero {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 18px;
    margin-bottom: 12px;
}

.profile-balance-box span {
    display: block;
    color: var(--muted);
}

.profile-balance-box strong {
    font-size: 34px;
}

.profile-column {
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-width: 0;
}

.profile-card {
    padding: 16px;
}

.activity-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.activity-item {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px solid var(--line);
}

.activity-time {
    color: var(--muted);
    white-space: nowrap;
}

.ops-layout {
    display: grid;
    grid-template-columns:1fr 1fr;
    gap: 16px;
}

.ops-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 12px;
}

.ops-case-row, .ops-promo-row {
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: rgba(255, 255, 255, .03);
}

.ops-case-row strong, .ops-promo-row strong {
    min-width: 120px;
}

.ops-case-row-compact {
    display: flex;
    align-items: center;
    gap: 12px;
    cursor: pointer;
    transition: background .15s, border-color .15s;
}

.ops-case-row-compact:hover {
    background: rgba(255, 255, 255, .06);
    border-color: rgba(255, 255, 255, .16);
}

.ops-case-compact-media {
    width: 48px;
    height: 48px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, .04);
    border-radius: 10px;
}

.ops-case-compact-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.ops-case-compact-emoji {
    font-size: 24px;
}

.ops-case-compact-main {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.ops-case-compact-main strong {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ops-case-compact-badges {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 2px;
}

.ops-case-badge {
    font-size: 11px;
    font-weight: 700;
}

.ops-case-open-editor-btn {
    flex-shrink: 0;
}

.modal {
    position: fixed;
    inset: 0;
    background: rgba(6, 10, 12, .74);
    display: grid;
    place-items: center;
    z-index: 200;
    padding: 20px;
}

.hidden {
    display: none;
}

.modal-card {
    width: min(1120px, 96vw);
    max-height: 92vh;
    overflow: auto;
    background: linear-gradient(180deg, #1a242b, #10171b);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 20px;
    box-shadow: 0 40px 90px rgba(0, 0, 0, .5);
}

.modal-top, .modal-foot {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
}

.icon-close {
    background: rgba(255, 255, 255, .06);
    color: #fff;
    width: 42px;
    height: 42px;
    border-radius: 10px;
}

.roulette-windows {
    display: grid;
    gap: 14px;
    margin: 18px 0;
}

.roulette-windows.single {
    grid-template-columns:1fr;
}

.roulette-windows.multiple {
    grid-template-columns:repeat(3, minmax(0, 1fr));
}

.roulette-window {
    position: relative;
    overflow: hidden;
    border-radius: 0;
    border: 1px solid var(--line);
    background: linear-gradient(180deg, rgba(255, 255, 255, .03), rgba(255, 255, 255, .01));
    min-height: 220px;
}

.roulette-window.mini {
    min-height: 150px;
}

.roulette-browser-edge {
    position: absolute;
    top: 0;
    right: 0;
    width: 82px;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(5, 3, 9, .45), rgba(5, 3, 9, .94));
    z-index: 2;
    pointer-events: none;
}

.roulette-pointer {
    position: absolute;
    left: 50%;
    top: 0;
    transform: translateX(-50%);
    width: 4px;
    height: 100%;
    background: linear-gradient(180deg, var(--accent-3), #fff, var(--accent));
    z-index: 3;
    box-shadow: 0 0 20px rgba(255, 255, 255, .35);
}

.roulette-track {
    display: flex;
    gap: 12px;
    position: absolute;
    left: 0;
    top: 18px;
    padding: 0 40px;
    will-change: transform;
}

.roulette-window.mini .roulette-track {
    top: 14px;
    padding: 0 26px;
    gap: 10px;
}

.roulette-item {
    min-width: 150px;
    height: 180px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-align: center;
}

.roulette-item.compact {
    min-width: 122px;
    height: 122px;
    border-radius: 0;
    padding: 10px;
}

.roulette-item.compact .roulette-emoji {
    font-size: 30px;
    margin-bottom: 6px;
}

.roulette-item.compact .roulette-name {
    font-size: 13px;
}

.roulette-item.compact .roulette-value {
    font-size: 12px;
}

/* Пчёлка на предмете, выпавшем как медовый дроп -- раньше это было видно
   только текстом в истории активности постфактум, теперь виден прямо в
   момент раскрытия рулетки. .is-honey-drop ставится только на реальный
   выигрышный слот (app.js), поэтому position:relative тут ничего другого
   не задевает. !important -- т.к. .roulette-item много раз переопределяется
   ниже по каскаду темами/брейкпоинтами с !important. */
.roulette-item.is-honey-drop {
    position: relative !important;
}

.roulette-bee-badge {
    position: absolute;
    top: 4px;
    right: 4px;
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    background: radial-gradient(circle at 32% 28%, #FFE28A, #F5A623 72%);
    border: 1px solid rgba(0, 0, 0, .3);
    border-radius: 50%;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .4), 0 0 10px rgba(255, 196, 56, .55);
    animation: rouletteBeeBob 1.7s ease-in-out infinite;
    pointer-events: none;
    z-index: 3;
}

/* Тот же маскот, что в нав-баре/на странице ивента -- см. .nav-bee-* в
   комментарии у #navEventBtn. Тут не анимируем крылья отдельно (значок и так
   покачивается целиком через rouletteBeeBob на родителе) -- просто размер. */
.roulette-bee-icon {
    width: 15px;
    height: 15px;
    overflow: visible;
    flex-shrink: 0;
}

.roulette-item.compact .roulette-bee-badge {
    width: 16px;
    height: 16px;
    top: 2px;
    right: 2px;
}

.roulette-item.compact .roulette-bee-icon {
    width: 12px;
    height: 12px;
}

/* ── Пчела-жало (декоративная, см. spawnRouletteBeeSting в app.js) ─────────
   Летит к координатам --sting-x/--sting-y (центр случайно выбранной ВИДИМОЙ
   карточки на момент прилёта), недолго повисает над ней, затем срывается
   вбок и гаснет. Целиком отдельный механизм от настоящего медового дропа
   (.is-honey-drop/.roulette-bee-badge выше) -- не путать. */
.roulette-sting-bee {
    position: absolute;
    top: 0;
    left: 0;
    width: 22px;
    height: 22px;
    z-index: 6;
    pointer-events: none;
    /* Было 650ms -- слишком быстро, пролёт толком не читался. */
    animation: rouletteStingBeeFly 1600ms cubic-bezier(.3, 1.3, .4, 1) forwards;
}

.roulette-sting-bee svg {
    width: 100%;
    height: 100%;
    display: block;
}

@keyframes rouletteStingBeeFly {
    0%   { transform: translate(-30px, calc(var(--sting-y) - 10px)) rotate(-10deg); opacity: 0; }
    12%  { opacity: 1; }
    55%  { transform: translate(calc(var(--sting-x) - 11px), calc(var(--sting-y) - 11px)) rotate(6deg); opacity: 1; }
    70%  { transform: translate(calc(var(--sting-x) - 11px), calc(var(--sting-y) - 16px)) rotate(-14deg); opacity: 1; }
    100% { transform: translate(calc(var(--sting-x) + 60px), calc(var(--sting-y) - 42px)) rotate(24deg); opacity: 0; }
}

/* Настоящая заливка ФОНА жёлтым (не box-shadow-вспышка, как было раньше) --
   через ::before-оверлей ПОЗАДИ карточки, а не через собственный background
   элемента: у .roulette-item фон много раз переопределяется по каскаду
   редкостями/темами с !important (см. комментарий у .is-honey-drop выше), и
   отдельный слой не задевает это. z-index:-1 у ::before + z-index:0 (создаёт
   свой локальный стек, чтобы -1 не улетел за пределы самой карточки, под
   фон всего трека/окна) -- картинка и текст остаются в обычном потоке НАД
   этим слоем автоматически, ничего заливкой не перекрывается. Держится
   стабильно жёлтым (без затухания) до конца прокрутки -- .forwards плюс
   снятие класса только в finishSpin() (app.js), без отдельного таймера
   отключения. ::before на .roulette-item больше никем не занят
   (.near-top-item::before нигде не навешивается JS -- мёртвый класс), по
   времени тоже не пересекается с .winner-focus/.winner-landed (те
   выставляются только в момент остановки, жало давно отгорело к тому
   моменту).
   БАГ, из-за которого заливка вообще не показывалась: position:relative тут
   был БЕЗ !important -- а .roulette-item много раз переопределяется ниже по
   каскаду темами/брейкпоинтами с !important (тот же нюанс уже учтён у
   .is-honey-drop выше, тут забыли). Без реального position:relative
   ::before искал ближайшего ПОЗИЦИОНИРОВАННОГО предка выше по дереву
   (.roulette-track), а не саму карточку -- заливка рисовалась где-то там,
   а не на карточке, то есть визуально не происходило вообще ничего. */
.roulette-item.is-bee-stung {
    position: relative !important;
    z-index: 0 !important;
}

.roulette-item.is-bee-stung::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(160deg, rgba(255, 201, 74, .9), rgba(245, 158, 11, .75));
    z-index: -1;
    pointer-events: none;
    opacity: 0;
    animation: rouletteBeeStingFill 500ms ease-in forwards;
}

@keyframes rouletteBeeStingFill {
    0%   { opacity: 0; }
    100% { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
    .roulette-sting-bee { display: none !important; }
    .roulette-item.is-bee-stung::before { animation: none !important; opacity: 1 !important; }
}

/* ── "Тайна-таймер" ──────────────────────────────────────────────────────
   Чёрный блок с "???" в шторе навигации, между карточкой профиля и первым
   пунктом меню (см. index.html #mysteryTimerBlock, порядок задаёт обычный
   DOM-порядок -- профиль держит order:-1 выше по каскаду, этот блок без
   явного order просто следующий). Намеренно НЕ кликабелен: ни data-nav, ни
   обработчика клика нет вовсе, плюс pointer-events:none тут же на случай,
   если что-то всё-таки окажется под ним. Данные — state.mysteryTimer из
   бутстрапа (server.js), рендерит renderMysteryTimer() в app.js. Визуальный
   язык — та же карточка-с-ячейками, что у .hv-timer на странице ивента,
   только чёрная/загадочная палитра вместо мёда: это должно читаться как
   "что-то другое, отдельное", а не как забытый огрызок медового виджета. */
.mystery-timer-block {
    order: 0;
    width: 100%;
    margin: 12px 0 4px;
    padding: 12px 14px;
    border-radius: 14px;
    background: linear-gradient(180deg, #000000, #0a0a0f);
    border: 1px solid rgba(168, 130, 255, .22);
    box-shadow: 0 10px 26px rgba(0, 0, 0, .5), 0 0 18px rgba(120, 80, 220, .12);
    pointer-events: none;
    text-align: center;
}

.mystery-timer-block.hidden {
    display: none !important;
}

.mystery-timer-label {
    display: block;
    margin-bottom: 8px;
    font-family: 'Syne', sans-serif;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .3em;
    color: rgba(200, 170, 255, .85);
    text-shadow: 0 0 12px rgba(168, 130, 255, .55);
    animation: mysteryTimerFlicker 3.2s ease-in-out infinite;
}

.mystery-timer-cells {
    display: flex;
    gap: 6px;
}

.mystery-timer-cell {
    flex: 1;
    min-width: 0;
    padding: 6px 4px 5px;
    border-radius: 10px;
    background: rgba(255, 255, 255, .03);
    border: 1px solid rgba(255, 255, 255, .07);
}

.mystery-timer-cell b {
    display: block;
    font-family: 'Syne', sans-serif;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.1;
    color: #fff;
    font-variant-numeric: tabular-nums;
}

.mystery-timer-cell span {
    display: block;
    margin-top: 2px;
    font-family: 'Syne', sans-serif;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--muted);
}

@keyframes mysteryTimerFlicker {
    0%, 100% { opacity: 1; }
    50% { opacity: .6; }
}

@media (prefers-reduced-motion: reduce) {
    .mystery-timer-label { animation: none !important; }
}

/* ── Кастомная иконка "Апгрейдер" в шапке нав ────────────────────────────
   Та же техника, что у пчелы-маскота (.nav-bee выше) -- простые SVG-примити-
   вы (path/line/circle) вместо стороннего icon-набора. Не абстрактный значок
   "волшебная палочка" (был Solar magic-stick-3-bold) -- узнаваемый циферблат
   со стрелкой, эхо настоящего колеса апгрейдера (#upgWheelSvg: дуга победы/
   поражения + стрелка), только сильно упрощённый под размер нав-иконки. */
.nav-icon-upg {
    width: 17px;
    height: 17px;
    flex-shrink: 0;
    overflow: visible;
}

.nav-icon-upg .nav-upg-track,
.nav-icon-upg .nav-upg-fill,
.nav-icon-upg .nav-upg-needle {
    fill: none;
    stroke-linecap: round;
}

.nav-icon-upg .nav-upg-track {
    stroke: rgba(88, 166, 255, .28);
    stroke-width: 2.2;
}

.nav-icon-upg .nav-upg-fill {
    stroke: #58A6FF;
    stroke-width: 2.2;
}

.nav-icon-upg .nav-upg-needle {
    stroke: #58A6FF;
    stroke-width: 2;
}

.nav-icon-upg .nav-upg-hub {
    fill: #58A6FF;
}

/* Та же иконка переиспользуется в hover-превью живой ленты (app.js:
   _liveDropUpgraderIconHtml) под слот 42px вместо родных 17px нав-бара --
   составной селектор специфичнее одиночного .nav-icon-upg (0,2,0 vs 0,1,0),
   значит побеждает всегда, независимо от порядка правил в файле. Цвета/
   обводки остаются от .nav-icon-upg .nav-upg-* выше, тут только размер. */
.nav-icon-upg.live-drop-upg-icon {
    width: 42px;
    height: 42px;
}

@keyframes rouletteBeeBob {
    0%, 100% { transform: translateY(0) rotate(-8deg); }
    50% { transform: translateY(-3px) rotate(8deg); }
}

.toast {
    position: fixed;
    right: 20px;
    bottom: 20px;
    background: #182127;
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 14px 16px;
    z-index: 300;
    max-width: min(92vw, 360px);
}

.toast.show {
    display: block;
    animation: pop .18s ease;
}

@keyframes pop {
    from {
        transform: translateY(6px);
        opacity: .5;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

@media (max-width: 1100px) {
    .app-shell {
        display: block;
    }

    .sidebar-live {
        display: none;
    }

    .main-content {
        margin-left: 0;
    }

    .hero-banner, .case-page-layout, .item-page-layout, .fuse-layout, .profile-layout, .ops-layout {
        grid-template-columns:1fr;
    }

    .topbar {
        flex-wrap: wrap;
    }

    .profile-hero {
        flex-direction: row;
        align-items: center;
        gap: 12px;
    }

    .roulette-windows.multiple {
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .main-content {
        padding: 16px 14px 28px;
    }

    .topbar {
        align-items: stretch;
    }

    .user-box {
        width: 100%;
        justify-content: space-between;
    }

    .hero-copy h1 {
        font-size: 30px;
    }

    .section-head {
        flex-direction: column;
        align-items: flex-start;
    }

    .cases-grid, .loot-preview, .inventory-grid, .related-grid {
        grid-template-columns:repeat(auto-fill, minmax(160px, 1fr));
    }

    .case-card {
        min-height: 280px;
    }

    .case-visual {
        height: 150px;
    }

    .case-emoji {
        font-size: 54px;
    }

    .multi-open-row {
        flex-wrap: wrap;
    }

    .open-count-btn {
        min-width: 86px;
    }

    .deposit-row, .inventory-card-top, .inventory-actions, .ops-form-row, .ops-case-row {
        flex-wrap: wrap;
    }

    .roulette-windows.multiple {
        grid-template-columns:1fr;
    }

    .modal {
        padding: 10px;
    }

    .modal-card {
        width: 100%;
        border-radius: 14px;
        padding: 14px;
    }

    .roulette-window {
        min-height: 170px;
    }

    .roulette-window.mini {
        min-height: 132px;
    }

    .roulette-item {
        min-width: 132px;
        height: 136px;
        padding: 10px;
    }

    .roulette-emoji {
        font-size: 30px;
    }

    .roulette-name {
        font-size: 13px;
    }
}

@media (max-width: 520px) {
    .brand-btn, .nav-btn, .ghost-btn, .primary-btn {
        padding: 11px 13px;
    }

    .main-nav {
        width: 100%;
    }

    .nav-btn {
        flex: 1;
    }

    .profile-avatar-large {
        width: 60px;
        height: 60px;
        border-radius: 20px;
    }

    .profile-balance-box strong {
        font-size: 28px;
    }

    .fuse-slots, .chance-box {
        grid-template-columns:1fr;
    }

    .target-picker {
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }

    .cases-grid, .loot-preview, .inventory-grid, .related-grid {
        grid-template-columns:1fr 1fr;
    }

    .case-showcase-emoji, .item-hero-emoji {
        font-size: 66px;
    }

    .case-showcase-name, .item-hero-name {
        font-size: 24px;
    }
}

@media (max-width: 390px) {
    .cases-grid, .loot-preview, .inventory-grid, .related-grid {
        grid-template-columns:1fr;
    }

    .target-picker {
        grid-template-columns:1fr;
    }

    .user-box {
        padding: 8px;
    }

    .balance-chip {
        padding: 8px 10px;
    }
}

.loot-chip {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    text-align: left;
    background: rgba(255, 255, 255, .04);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 14px 16px;
    color: var(--text);
    transition: .18s transform, .18s box-shadow, .18s border-color;
}

.loot-chip:hover {
    transform: translateY(-2px);
}

.loot-chip span {
    font-size: 28px;
    line-height: 1;
}

.loot-chip strong {
    flex: 1;
}

.loot-chip em {
    font-style: normal;
    color: var(--muted);
    white-space: nowrap;
}

.activity-row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px solid var(--line);
}

.activity-row strong {
    color: var(--muted);
    white-space: nowrap;
    font-size: 13px;
    min-width: 62px;
}

.activity-row span {
    flex: 1;
}

.case-info-panel {
    min-width: 0;
}

.loot-preview {
    align-content: start;
}

.inventory-actions {
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.inventory-actions .ghost-btn, .inventory-actions .primary-btn {
    min-width: 110px;
}

.inventory-actions .item-source {
    margin-left: auto;
}

@media (max-width: 760px) {
    .inventory-actions {
        display: grid;
        grid-template-columns:1fr 1fr;
        align-items: stretch;
    }

    .inventory-actions .item-source {
        grid-column: 1/-1;
        margin-left: 0;
    }

    .loot-chip {
        padding: 12px 14px;
    }

    .loot-chip span {
        font-size: 24px;
    }
}

.pick-options {
    display: grid;
    grid-template-columns:repeat(5, minmax(0, 1fr));
    gap: 12px;
    margin-top: 18px;
}

.pick-card {
    min-height: 160px;
}

.compact.selected {
    outline: 2px solid rgba(255, 255, 255, .22);
}

@media (max-width: 900px) {
    .pick-options {
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 520px) {
    .pick-options {
        grid-template-columns:1fr;
    }
}

.hidden-drop {
    background: linear-gradient(180deg, rgba(141, 91, 255, .18), rgba(255, 255, 255, .04));
    border: 1px dashed rgba(255, 255, 255, .2);
}

.hidden-pick-card {
    background: linear-gradient(180deg, rgba(141, 91, 255, .18), rgba(255, 255, 255, .04));
    border: 1px dashed rgba(255, 255, 255, .22);
}

.hidden-pick-card .target-emoji {
    filter: drop-shadow(0 0 14px rgba(165, 108, 255, .35));
}

.pick-card.revealed {
    border-style: solid;
}

.pick-card.dimmed {
    opacity: .35;
    filter: grayscale(1);
}

.target-card {
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.target-card.target-focus {
    transform: translateY(-4px) scale(1.02);
    border-color: rgba(214, 192, 255, .82);
    box-shadow: 0 0 26px rgba(142, 88, 255, .22);
}

@keyframes fusePulse {
    0%, 100% {
        transform: scale(.92);
        opacity: .58;
    }
    50% {
        transform: scale(1.08);
        opacity: 1;
    }
}

@keyframes fuseSpin {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

@keyframes fuseCoreShell {
    0%, 100% {
        transform: scale(.94);
    }
    50% {
        transform: scale(1.08);
    }
}

@keyframes fuseCore {
    0% {
        transform: rotate(0deg) scale(.95);
    }
    50% {
        transform: rotate(180deg) scale(1.08);
    }
    100% {
        transform: rotate(360deg) scale(.95);
    }
}

@keyframes fuseGlow {
    0%, 100% {
        transform: scale(.88);
        opacity: .55;
    }
    50% {
        transform: scale(1.14);
        opacity: 1;
    }
}

@keyframes fuseParticle {
    0% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(.3);
    }
    18% {
        opacity: 1;
    }
    100% {
        opacity: 0;
        transform: translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(1.15);
    }
}

@keyframes fuseSweep {
    0% {
        transform: translateX(-120%) rotate(8deg);
    }
    100% {
        transform: translateX(140%) rotate(8deg);
    }
}

@keyframes fuseReveal {
    0% {
        transform: translateY(8px);
        opacity: 0;
    }
    100% {
        transform: translateY(0);
        opacity: 1;
    }
}

@keyframes fuseImpact {
    0%, 100% {
        transform: translateX(0);
    }
    25% {
        transform: translateX(-5px);
    }
    50% {
        transform: translateX(5px);
    }
    75% {
        transform: translateX(-3px);
    }
}

@keyframes fuseSacrifice {
    0% {
        transform: translate(var(--sx), var(--sy)) scale(1);
        opacity: 1;
    }
    65% {
        opacity: 1;
    }
    100% {
        transform: translate(var(--tx), var(--ty)) scale(.2);
        opacity: 0;
    }
}

@keyframes fuseResultPop {
    0% {
        transform: scale(.45) translateY(22px);
        opacity: 0;
    }
    55% {
        transform: scale(1.08) translateY(-4px);
        opacity: 1;
    }
    100% {
        transform: scale(1) translateY(0);
        opacity: 1;
    }
}

.case-group {
    margin: 0 0 var(--space-lg);
}

.case-group-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 12px;
    margin: 0 0 12px;
}

.case-group-head h3 {
    margin: 0;
    font-size: 20px;
}

.case-group-head p {
    margin: 4px 0 0;
    color: var(--muted);
    font-size: 13px;
}

.case-group-row {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(220px, 260px);
    gap: 14px;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 4px 2px 10px;
    scroll-snap-type: x proximity;
}

.case-group-row::-webkit-scrollbar {
    height: 10px;
}

.case-group-row::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, .12);
    border-radius: 999px;
}

.case-group-row .case-card {
    min-width: 220px;
    scroll-snap-align: start;
}

.case-group.pick-one-group .case-card {
    background: linear-gradient(180deg, rgba(110, 72, 180, .32), rgba(32, 20, 52, .92));
    border-color: rgba(205, 154, 255, .34);
    box-shadow: 0 0 0 1px rgba(205, 154, 255, .1), 0 0 28px rgba(181, 116, 255, .10) inset;
}

.case-group.pick-one-group .case-title {
    color: #ffffff;
    text-shadow: 0 1px 10px rgba(0, 0, 0, .28);
}

.case-group.pick-one-group .case-subtitle, .case-group.pick-one-group .pick-visible-text {
    color: #f3eaff !important;
    opacity: 1 !important;
    text-shadow: 0 1px 8px rgba(0, 0, 0, .35);
}

.case-group.pick-one-group .case-price {
    color: #ffffff;
}

.case-group.pick-one-group .open-case-page-btn {
    border-color: rgba(255, 255, 255, .18);
    color: #ffffff;
    background: rgba(255, 255, 255, .06);
}

@media (max-width: 700px) {
    .case-group-row {
        grid-auto-columns: minmax(200px, 84vw);
    }
}

.case-section {
    margin-bottom: var(--space-lg);
    width: 100%;
}

#casesGrid {
    display: block;
    width: 100%;
}

.case-section-title-wrap {
    display: flex;
    justify-content: center;
    margin: 0 0 14px;
}

.case-section-title {
    margin: 0;
    font-size: 24px;
    color: #f5ecff;
    text-transform: uppercase;
    letter-spacing: .04em;
    text-align: center;
    position: relative;
    padding: 0 20px 10px;
}

.case-section-title::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 2px;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(201, 120, 255, .65), rgba(255, 255, 255, 0));
}

.case-row {
    display: grid;
    grid-template-columns:repeat(5, 1fr);
    gap: 14px;
    padding: 4px 0 10px;
    align-items: start;
}

.case-row .case-card {
    min-width: 0;
    width: 100%;
}

@media (max-width: 1200px) {
    .case-row {
        grid-template-columns:repeat(4, 1fr);
    }
}

@media (max-width: 900px) {
    .case-row {
        grid-template-columns:repeat(3, 1fr);
    }
}

@media (max-width: 640px) {
    .case-row {
        grid-template-columns:repeat(2, 1fr);
    }
}

@media (max-width: 420px) {
    .case-row {
        grid-template-columns:1fr;
    }
}

.pick-one-section .case-section-title {
    color: #fff2ff;
}

.pick-one-card {
    background: linear-gradient(180deg, rgba(120, 80, 200, .35), rgba(25, 15, 40, .9));
    border: 1px solid rgba(200, 140, 255, .3);
}

.pick-one-card .case-title {
    color: #fff;
}

.pick-one-card .case-subtitle, .pick-one-card .pick-visible-text {
    color: #f0e2ff !important;
    opacity: 1 !important;
    text-shadow: 0 1px 8px rgba(0, 0, 0, .35);
}

.pick-card.revealed {
    background: linear-gradient(180deg, rgba(68, 44, 110, .96), rgba(24, 14, 40, .98));
    border-color: rgba(224, 190, 255, .28);
}

.pick-card.revealed .target-name {
    color: #ffffff !important;
    font-weight: 800;
    text-shadow: 0 1px 8px rgba(0, 0, 0, .45);
}

.pick-card.revealed .target-value {
    color: #f2dfff !important;
    opacity: 1 !important;
    text-shadow: 0 1px 8px rgba(0, 0, 0, .35);
}

.pick-card.revealed .target-emoji {
    filter: drop-shadow(0 0 14px rgba(180, 118, 255, .22));
}

.open-count-btn.disabled {
    opacity: .38;
    pointer-events: none;
    filter: grayscale(.35);
}

.win-result-box {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 14px 0 4px;
}

.win-result-title {
    font-weight: 800;
    color: var(--text);
}

.win-result-price {
    color: var(--muted);
    font-weight: 700;
}

.win-actions {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 6px;
}

.win-actions.multi {
    max-height: 220px;
    overflow: auto;
    padding-right: 4px;
}

.result-line-wrap {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: rgba(255, 255, 255, .03);
}

.result-line-main {
    font-weight: 700;
}

.instant-sell-btn {
    white-space: nowrap;
}

.pick-win-actions {
    display: flex;
    gap: 10px;
    margin-top: 4px;
}

.sold-inline-note {
    color: var(--success);
    font-weight: 700;
}

@media (max-width: 760px) {
    .result-line-wrap {
        flex-direction: column;
        align-items: flex-start;
    }
}

.topbar-user-wrap {
    display: flex;
    align-items: center;
    gap: 10px;
}

.lang-toggle-btn {
    display: grid;
    place-items: center;
    align-self: stretch;
    width: 44px;
    flex-shrink: 0;
    padding: 0;
    border: none;
    border-radius: 12px;
    background: transparent;
    color: var(--text);
    font-family: inherit;
    cursor: pointer;
    transition: background 0.15s;
    line-height: 1;
    font-size: 22px;
}

.lang-toggle-btn:hover {
    background: rgba(255, 255, 255, .07);
}

body.theme-light-red .lang-toggle-btn:hover {
    background: rgba(0, 0, 0, .06);
}

.profile-logout-btn {
    padding: 6px 14px;
    border: 1px solid rgba(56, 104, 192, 0.35);
    border-radius: 8px;
    background: rgba(56, 104, 192, 0.08);
    color: #58a6ff;
    font-family: inherit;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
    white-space: nowrap;
}

.profile-logout-btn:hover {
    background: rgba(56, 104, 192, 0.18);
    border-color: rgba(56, 104, 192, 0.6);
}

.auth-overlay {
    position: fixed;
    inset: 0;
    z-index: 120;
    display: grid;
    place-items: center;
    padding: 20px;
    background: rgba(5, 2, 10, .74);
    backdrop-filter: blur(10px);
}

.auth-overlay.hidden {
    display: none;
}

.auth-card {
    width: min(440px, 94vw);
    background: linear-gradient(180deg, rgba(19, 12, 31, .98), rgba(11, 8, 20, .98));
    border: 1px solid var(--line);
    border-radius: 28px;
    padding: 24px;
    box-shadow: 0 30px 80px rgba(0, 0, 0, .45);
}

.auth-badge {
    display: inline-flex;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(141, 91, 255, .18);
    font-weight: 700;
    margin-bottom: 12px;
}

.auth-card h2 {
    margin: 0 0 10px;
}

.auth-card p {
    margin: 0 0 16px;
    color: var(--muted);
    line-height: 1.45;
}

.auth-input {
    width: 100%;
    background: rgba(255, 255, 255, .04);
    border: 1px solid var(--line);
    color: var(--text);
    padding: 14px 16px;
    border-radius: 16px;
    margin-bottom: 12px;
}

.auth-actions {
    display: flex;
    gap: 10px;
    margin-top: 4px;
}

.auth-actions > * {
    flex: 1;
}

.auth-status {
    min-height: 20px;
    margin-top: 12px;
    color: var(--muted);
}

.roulette-windows.clean-sell-layout {
    align-items: start !important;
}

.roulette-windows.clean-sell-layout.multiple {
    grid-template-columns:repeat(auto-fit, minmax(340px, 1fr)) !important;
    gap: 18px !important;
}

.roulette-windows.clean-sell-layout.single {
    grid-template-columns:minmax(0, 1fr) !important;
}

.roulette-lane {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    min-width: 0;
}

.roulette-lane .roulette-window {
    width: 100%;
    margin: 0 !important;
}

.roulette-lane-actions {
    min-height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.lane-actions-placeholder {
    width: 104px;
    height: 38px;
}

.roulette-result-under, .roulette-result-wrapper {
    display: none !important;
}

.wheel-sell-btn {
    min-width: 104px !important;
    padding: 8px 14px !important;
    border-radius: 0 !important;
    font-size: 14px !important;
    line-height: 1.1 !important;
    font-weight: 800 !important;
    background: linear-gradient(135deg, var(--accent), var(--accent-2)) !important;
    color: #fff !important;
    border: none !important;
    cursor: pointer !important;
    box-shadow: 0 8px 18px rgba(42, 84, 160, .24);
    transition: transform .16s ease, box-shadow .16s ease, filter .16s ease;
}

.wheel-sell-btn:hover {
    transform: translateY(-2px) scale(1.04);
    box-shadow: 0 12px 22px rgba(42, 84, 160, .32);
    filter: brightness(1.03);
}

.wheel-sell-btn:active {
    transform: translateY(0) scale(.98);
    box-shadow: 0 6px 14px rgba(42, 84, 160, .22);
}

.sold-inline-note {
    min-width: 104px;
    height: 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: var(--success);
    font-weight: 800;
}

@media (max-width: 760px) {
    .roulette-windows.clean-sell-layout.multiple {
        grid-template-columns:1fr !important;
        gap: 14px !important;
    }

    .roulette-lane {
        gap: 8px;
    }

    .roulette-lane-actions {
        min-height: 36px;
    }

    .wheel-sell-btn, .sold-inline-note {
        min-width: 96px !important;
        height: 36px;
        font-size: 13px !important;
    }
}

.roulette-track {
    backface-visibility: hidden;
    will-change: transform;
}

.roulette-track-crisp {
    will-change: auto;
}

.roulette-item {
    transform: translateZ(0);
}

.roulette-name, .roulette-value {
    -webkit-font-smoothing: antialiased;
}

.sell-pop-in {
    animation: sellPopIn .28s cubic-bezier(.2, .8, .2, 1);
}

@keyframes sellPopIn {
    0% {
        opacity: 0;
        transform: translateY(8px) scale(.92);
    }
    65% {
        opacity: 1;
        transform: translateY(-1px) scale(1.04);
    }
    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.ops-case-row-extended {
    display: flex;
    flex-direction: column;
    gap: 14px;
    align-items: stretch;
}

.ops-case-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
}

.ops-case-main {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.ops-case-price-edit {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.ops-weights-panel {
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 14px;
    background: rgba(255, 255, 255, .025);
}

.ops-weights-title {
    font-weight: 800;
    margin-bottom: 12px;
}

.ops-weights-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.ops-weight-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border-radius: 14px;
    background: rgba(255, 255, 255, .03);
    border: 1px solid var(--line);
}

.ops-weight-item {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.ops-weight-emoji {
    font-size: 24px;
}

.ops-weight-meta {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.ops-weight-meta strong {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ops-weight-controls {
    display: flex;
    align-items: center;
    gap: 10px;
}

.ops-weight-input {
    width: 92px;
    background: rgba(255, 255, 255, .04);
    border: 1px solid var(--line);
    color: var(--text);
    padding: 10px 12px;
    border-radius: 12px;
}

.ops-weight-percent {
    min-width: 64px;
    text-align: right;
    font-weight: 700;
    color: var(--muted);
}

.ops-weights-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 12px;
    flex-wrap: wrap;
}

@media (max-width: 760px) {
    .ops-weight-row {
        flex-direction: column;
        align-items: stretch;
    }

    .ops-weight-controls {
        justify-content: space-between;
    }

    .ops-weight-percent {
        text-align: left;
    }
}

.case-image, .case-showcase-image, .loot-chip-image, .item-hero-image, .related-image, .inventory-image, .live-item-image, .roulette-image, .target-image, .slot-image, .loot-card-image, .ops-preview-image, .ops-weight-image {
    object-fit: contain;
    display: block;
    max-width: 100%;
    max-height: 100%;
}

.case-image {
    width: 68px;
    height: 68px;
}

.case-showcase-image {
    width: 96px;
    height: 96px;
}

.loot-chip-image {
    width: 28px;
    height: 28px;
}

.item-hero-image {
    width: 84px;
    height: 84px;
}

.related-image, .inventory-image, .loot-card-image, .target-image {
    width: 88px;
    height: 88px;
    margin: auto;
    display: block;
}

.live-item-row {
    display: flex;
    align-items: center;
    gap: 8px;
}

.live-item {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 6px !important;
    text-align: center !important;
}

.live-item-image {
    width: 52px !important;
    height: 52px !important;
}

.live-item-name {
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    color: var(--text);
}

.live-card {
    position: relative;
}

.live-card-clickable {
    cursor: pointer;
}

.live-card-avatar {
    position: absolute;
    top: 6px;
    left: 6px;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 800;
    color: #fff;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .2);
}

.live-card-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Mirrors the desktop .sidebar-live feed's data (same renderLiveFeed()/
   prependLiveDrop() calls, see app.js) into a small horizontal strip for
   screens where the fixed sidebar is hidden — without this, mobile/tablet
   had no live-drop feed at all. Reuses the same .live-card/.live-item
   markup from _liveCardHtml(), just scoped smaller for a single compact row
   instead of the sidebar's tall stacked list.
   Breakpoint must match .sidebar-live's own exactly (max-width:1023px here,
   .sidebar-live reappears via `@media (min-width:1024px) { ... !important }`
   further down) — .sidebar-live's OTHER, earlier max-width:1100px rule
   looked like the real cutoff at a glance but gets re-overridden by that
   later 1024px block, so 1100px silently overlapped with the sidebar for
   1024-1100px widths (both visible at once) before this was measured
   empirically and corrected. */
.home-live-feed-mobile {
    display: none;
}

@media (max-width: 1023px) {
    .home-live-feed-mobile {
        display: flex;
        gap: 8px;
        overflow-x: auto;
        /* First attempt put a glowing ring on every individual card — didn't
           read right ("сделай какая-то рамка", not per-card glow). What was
           actually wanted: the whole strip framed as one self-contained
           panel, matching how the desktop .sidebar-live is its own bordered/
           backgrounded panel rather than loose floating cards. */
        padding: 12px 10px;
        margin: 10px 0 14px;
        border: 1px solid rgba(56, 104, 192, .35);
        border-radius: 16px;
        background: linear-gradient(180deg, rgba(24, 33, 39, .7), rgba(14, 20, 24, .55));
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .home-live-feed-mobile::-webkit-scrollbar {
        display: none;
    }

    .home-live-feed-mobile .live-card {
        flex: 0 0 auto;
        width: 64px;
        height: 64px;
        padding: 6px;
        border-radius: 12px;
    }

    .home-live-feed-mobile .live-item-image {
        width: 30px !important;
        height: 30px !important;
    }

    .home-live-feed-mobile .live-item-name {
        font-size: 8.5px;
        max-width: 56px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .home-live-feed-mobile .live-card-avatar {
        width: 16px;
        height: 16px;
        top: 3px;
        left: 3px;
        font-size: 7px;
    }
}

.roulette-image {
    width: 40px;
    height: 40px;
}

.slot-image {
    width: 32px;
    height: 32px;
}

.ops-preview-image {
    width: 52px;
    height: 52px;
}

.ops-weight-image {
    width: 26px;
    height: 26px;
}

.ops-preview-fallback, .ops-weight-fallback {
    display: inline-grid;
    place-items: center;
}

.ops-appearance-panel, .ops-presets-panel {
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 14px;
    background: rgba(255, 255, 255, .025);
}

.ops-appearance-row {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.ops-image-input {
    min-width: 260px;
    flex: 1;
    background: rgba(255, 255, 255, .04);
    border: 1px solid var(--line);
    color: var(--text);
    padding: 10px 12px;
    border-radius: 12px;
}

.ops-presets-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.ops-weight-row {
    align-items: flex-start;
}

.ops-item-appearance {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.ops-item-appearance .ops-image-input {
    min-width: 220px;
}

@media (max-width: 760px) {
    .ops-appearance-row, .ops-item-appearance {
        align-items: stretch;
    }

    .ops-image-input {
        min-width: 0;
        width: 100%;
    }
}

.speed-btn {
    padding: 8px 12px;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--line);
    cursor: pointer;
    font-weight: 700;
}

.speed-btn.active {
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
    color: #fff;
}

.multi-open-row.hidden-pick-multi {
    display: none !important;
}

.hidden-pick-multi {
    display: none !important;
}

.hidden-pick-speed {
    display: none !important;
}

body.pick-mode .multi-open-row {
    display: none !important;
}

body.pick-mode .spin-speed-switch {
    display: none !important;
}

body.pick-mode .open-count-btn {
    display: none !important;
}

#pickCaseHint {
    display: none !important;
}

.ops-icon-size-input {
    width: 96px;
    background: rgba(255, 255, 255, .04);
    border: 1px solid var(--line);
    color: var(--text);
    padding: 10px 12px;
    border-radius: 12px;
}

.pick-preview {
    min-height: 0;
}

.hidden {
    display: none !important;
}

.telegram-auth-mount {
    display: flex;
    justify-content: center;
    padding: 8px 0 2px;
}

.telegram-auth-mount iframe {
    max-width: 100%;
}

#openSelectedCaseBtn:disabled {
    opacity: .6;
    cursor: not-allowed;
    filter: saturate(.8);
}

.auth-card {
    position: relative;
}

.auth-close {
    position: absolute;
    top: 10px;
    right: 12px;
    background: transparent;
    border: none;
    color: #aaa;
    font-size: 18px;
    cursor: pointer;
}

.auth-close:hover {
    color: #fff;
}

.telegram-auth-mount {
    display: flex;
    justify-content: center;
    padding: 10px 0 4px;
    min-height: 56px;
}

.tg-ios-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    padding: 14px;
    border-radius: 16px;
    border: none;
    font-weight: 600;
    font-size: 15px;
    background: linear-gradient(180deg, #2AABEE, #229ED9);
    color: #fff;
    text-decoration: none;
    box-shadow: 0 6px 20px rgba(34, 158, 217, .4);
    transition: all .2s ease;
}

.tg-ios-btn:hover {
    transform: translateY(-1px) scale(1.02);
    box-shadow: 0 10px 25px rgba(34, 158, 217, .6);
}

.tg-ios-btn:active {
    transform: scale(.97);
}

.tg-icon {
    font-size: 16px;
}

#openSelectedCaseBtn:disabled {
    opacity: .6;
    cursor: not-allowed;
    filter: saturate(.8);
}

.hidden {
    display: none !important;
}

.ghost-btn.accent {
    border-color: rgba(109, 241, 174, .28);
    color: #c9ffe0;
}

#ladderView {
    width: 100%;
    min-width: 0;
}

#ladderView .section-head {
    margin-bottom: 16px;
}

.ladder-step-main .muted, .ladder-side-text, #ladderEventLog, #ladderRewardPreview {
    word-break: break-word;
}

.ops-ladder-rows {
    display: grid;
    gap: 10px;
    margin-top: 14px;
    margin-bottom: 14px;
}

.ops-ladder-row {
    display: grid;
    grid-template-columns:1.4fr .8fr .8fr;
    gap: 10px;
}

.ops-ladder-row input {
    width: 100%;
    min-width: 0;
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 14px;
    padding: 12px;
    color: #fff;
}

.ops-card {
    margin-top: 18px;
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 22px;
    padding: 16px;
    background: rgba(255, 255, 255, .03);
}

.ops-card-head {
    display: grid;
    gap: 4px;
    margin-bottom: 8px;
}

@media (max-width: 760px) {
    .ops-ladder-row {
        grid-template-columns:1fr;
    }
}

.profile-avatar-img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center;
    border-radius: inherit;
}

#userAvatar, #profileAvatarLarge {
    overflow: hidden;
}

.spin-speed-switch {
    width: auto;
    margin: 0;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    flex: 0 0 auto;
}

.case-open-row-with-speed .spin-speed-switch {
    margin-top: 10px;
}

.speed-toggle {
    position: relative;
    display: inline-grid;
    grid-template-columns:1fr 1fr;
    gap: 0;
    padding: 4px;
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(255, 255, 255, .05), rgba(255, 255, 255, .025));
    border: 1px solid var(--line);
    box-shadow: 0 1px 0 rgba(255, 255, 255, .05) inset;
    overflow: hidden;
}

.speed-toggle-pill {
    position: absolute;
    top: 4px;
    left: 4px;
    width: calc(50% - 4px);
    height: calc(100% - 8px);
    border-radius: 10px;
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
    box-shadow: 0 8px 16px rgba(42, 84, 160, .24);
    transition: transform .22s ease;
    pointer-events: none;
}

.speed-toggle[data-speed="slow"] .speed-toggle-pill {
    transform: translateX(100%);
}

.speed-toggle-btn {
    position: relative;
    z-index: 1;
    min-width: 116px;
    border: none;
    background: transparent;
    color: #cdd6e0;
    font-weight: 700;
    padding: 9px 14px;
    border-radius: 10px;
    transition: color .18s ease;
}

.speed-toggle-btn.active {
    color: #fff;
}

@media (max-width: 720px) {
    .spin-speed-switch {
        width: 100%;
        margin: 0;
    }

    .case-open-row-with-speed .spin-speed-switch {
        margin-top: 10px;
    }

    .speed-toggle {
        width: 100%;
    }

    .speed-toggle-btn {
        min-width: 0;
        width: 100%;
    }
}

#userAvatar, #profileAvatarLarge {
    position: relative;
    overflow: hidden;
    display: grid;
    place-items: center;
}

#profileAvatarLarge {
    width: 96px;
    height: 96px;
    min-width: 96px;
    min-height: 96px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .06);
    box-sizing: border-box;
}

#userAvatar {
    width: 42px;
    height: 42px;
    min-width: 42px;
    min-height: 42px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .06);
    box-sizing: border-box;
}

.profile-avatar-img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    display: block !important;
    border-radius: inherit !important;
}

.profile-head, .profile-userbox {
    align-items: center;
}

.profile-userbox {
    display: flex;
    gap: 14px;
}

.ops-card {
    margin-top: 18px;
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 22px;
    padding: 16px;
    background: rgba(255, 255, 255, .03);
}

.ops-card-head {
    display: grid;
    gap: 4px;
    margin-bottom: 10px;
}

.ops-ladder-rows {
    display: grid;
    gap: 10px;
    margin-bottom: 14px;
}

.ops-ladder-row {
    display: grid;
    grid-template-columns:1.4fr .8fr .8fr;
    gap: 10px;
}

.ops-ladder-row input {
    width: 100%;
    min-width: 0;
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 12px;
    color: #fff;
    padding: 12px;
}

@media (max-width: 760px) {
    .ops-ladder-row {
        grid-template-columns:1fr;
    }
}

#profileAvatarLarge {
    width: 96px !important;
    height: 96px !important;
    min-width: 96px !important;
    min-height: 96px !important;
    border-radius: 50% !important;
    overflow: hidden !important;
    display: grid !important;
    place-items: center !important;
    background: rgba(255, 255, 255, .06);
}

#userAvatar {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
    border-radius: 50% !important;
    overflow: hidden !important;
    display: grid !important;
    place-items: center !important;
    background: rgba(255, 255, 255, .06);
}

.profile-avatar-img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    display: block !important;
    border-radius: inherit !important;
}

.ops-top-grid {
    display: grid;
    grid-template-columns:repeat(2, 1fr);
    gap: 12px;
    margin-bottom: 12px;
}

.field {
    display: grid;
    gap: 8px;
}

.field input, .ops-ladder-row input {
    background: #0b1812;
    border: 1px solid var(--line);
    border-radius: 12px;
    color: var(--text);
    padding: 12px;
}

.ops-ladder-rows {
    display: grid;
    gap: 10px;
    margin-bottom: 14px;
}

.ops-ladder-row {
    display: grid;
    grid-template-columns:1.4fr .8fr .8fr;
    gap: 10px;
}

@media (max-width: 760px) {
    .ops-top-grid, .ops-ladder-row {
        grid-template-columns:1fr;
    }
}

.ops-layout-full {
    display: grid;
    /* minmax(0, 1fr), not bare 1fr -- a bare fr track has an implicit auto
       minimum, so any wide descendant (a nowrap table, a long token) forces
       the whole track past the container's own width instead of shrinking
       it and letting the descendant's own overflow-x:auto handle it. This
       was the actual cause of OPS analytics cards clipping their last column
       on phones -- not the cards' own internal grids, which were already
       responsive. */
    grid-template-columns:minmax(0, 1fr);
    gap: 16px;
}

.ops-grid-2 {
    display: grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.ops-cases-card #opsCaseFilter {
    margin-bottom: 12px;
}

.ops-case-meta-grid {
    display: grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin: 12px 0;
}

.ops-case-description-input {
    width: 100%;
    min-height: 72px;
    margin-bottom: 12px;
    border-radius: 14px;
    padding: 10px;
    background: rgba(255, 255, 255, .04);
    color: inherit;
    border: 1px solid rgba(255, 255, 255, .08);
}

.ops-case-items-full {
    max-height: none;
}

.ops-ladder-editor {
    display: grid;
    gap: 12px;
}

.ops-ladder-row {
    display: grid;
    grid-template-columns:1.6fr .7fr .7fr;
    gap: 10px;
}

@media (max-width: 900px) {
    .ops-grid-2, .ops-case-meta-grid, .ops-ladder-row {
        grid-template-columns:1fr;
    }
}

.ops-overview-grid {
    align-items: start;
}

.ops-surface {
    position: relative;
    overflow: hidden;
    background: linear-gradient(180deg, rgba(255, 255, 255, .055), rgba(255, 255, 255, .025));
    border: 1px solid rgba(255, 255, 255, .09);
    box-shadow: 0 22px 50px rgba(0, 0, 0, .26);
}

.ops-surface::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .18), transparent);
    pointer-events: none;
}

.ops-card {
    padding: 20px;
}

.ops-card-head {
    display: grid;
    gap: 6px;
    margin-bottom: 16px;
}

.ops-form-grid {
    display: grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap: 12px;
    align-items: end;
}

.ops-form-grid-2 {
    grid-template-columns:repeat(2, minmax(0, 1fr));
}

.compact-grid {
    grid-template-columns:1.4fr .8fr auto;
}

.ops-field {
    display: grid;
    gap: 8px;
    min-width: 0;
}

.ops-field-wide {
    grid-column: span 2;
}

.ops-field-search {
    margin-bottom: 14px;
}

.ops-label {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #cdbdf6;
}

.ops-input, .ops-select, .ops-case-description-input, .ops-price-input, .ops-weight-input, .ops-item-image-input, .ops-ladder-row input {
    width: 100%;
    min-height: 48px;
    padding: 13px 15px;
    border-radius: 16px;
    border: 1px solid rgba(197, 176, 255, .14);
    background: linear-gradient(180deg, rgba(14, 10, 24, .96), rgba(10, 8, 18, .92));
    color: #fff;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .03), 0 8px 20px rgba(0, 0, 0, .16);
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.ops-case-description-input {
    min-height: 108px;
    resize: vertical;
}

.ops-input::placeholder, .ops-case-description-input::placeholder, .ops-item-image-input::placeholder {
    color: rgba(228, 220, 255, .38);
}

.ops-input:focus, .ops-select:focus, .ops-case-description-input:focus, .ops-price-input:focus, .ops-weight-input:focus, .ops-item-image-input:focus, .ops-ladder-row input:focus {
    outline: none;
    border-color: rgba(176, 129, 255, .6);
    box-shadow: 0 0 0 4px rgba(138, 82, 255, .14), 0 16px 32px rgba(0, 0, 0, .24);
    transform: translateY(-1px);
}

.ops-stretch-btn, .ops-save-btn {
    min-height: 48px;
    border-radius: 16px;
}

.ops-list-soft {
    background: rgba(255, 255, 255, .025);
    border: 1px solid rgba(255, 255, 255, .06);
    border-radius: 18px;
    padding: 10px;
}

.ops-promo-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(255, 255, 255, .04), rgba(255, 255, 255, .025));
    border: 1px solid rgba(255, 255, 255, .06);
}

.ops-promo-delete-btn {
    margin-left: auto;
    flex-shrink: 0;
    background: rgba(56, 104, 192, .12);
    border: 1px solid rgba(56, 104, 192, .22);
    color: rgba(56, 104, 192, .85);
    border-radius: 8px;
    padding: 4px 9px;
    font-size: 12px;
    line-height: 1;
    cursor: pointer;
    transition: background .15s, color .15s;
}

.ops-promo-delete-btn:hover {
    background: rgba(56, 104, 192, .26);
    color: #58A6FF;
}

.ops-ladder-shell {
    gap: 12px;
}

.ops-ladder-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 6px;
}

.ops-inline-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    border-radius: 999px;
    background: rgba(131, 85, 255, .12);
    border: 1px solid rgba(166, 126, 255, .22);
    color: #efe7ff;
    font-size: 13px;
    font-weight: 600;
}

.ops-ladder-row {
    grid-template-columns:1.45fr .8fr .8fr;
}

.ops-case-list {
    gap: 14px;
}

.ops-case-row-extended {
    padding: 16px;
    border-radius: 22px;
    background: linear-gradient(180deg, rgba(17, 12, 28, .94), rgba(12, 8, 20, .95));
    border: 1px solid rgba(255, 255, 255, .08);
    box-shadow: 0 18px 34px rgba(0, 0, 0, .2);
}

.ops-case-head {
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 14px;
}

.ops-case-main strong {
    font-size: 18px;
    display: block;
    margin-bottom: 4px;
}

.ops-case-price-row {
    display: flex;
    gap: 10px;
    align-items: center;
}

.ops-case-price-row .primary-btn {
    height: 48px;
    border-radius: 16px;
}

.ops-case-meta-grid {
    margin: 0 0 12px;
    grid-template-columns:repeat(3, minmax(0, 1fr));
}

.ops-case-actions-row, .ops-weights-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 12px;
}

.ops-case-items-full {
    display: grid;
    gap: 10px;
    max-height: 560px;
    overflow: auto;
    padding-right: 4px;
}

.ops-item-row {
    display: grid;
    grid-template-columns:minmax(0, 1.3fr) 130px minmax(220px, .9fr);
    gap: 10px;
    align-items: center;
    padding: 12px;
    border-radius: 16px;
    background: rgba(255, 255, 255, .03);
    border: 1px solid rgba(255, 255, 255, .06);
}

.ops-item-name {
    min-width: 0;
    line-height: 1.35;
}

.ops-weight-input {
    max-width: none;
}

.ops-item-image-input {
    min-width: 0;
}

.ops-case-items-full::-webkit-scrollbar {
    width: 10px;
}

.ops-case-items-full::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, .14);
    border-radius: 999px;
}

@media (max-width: 1100px) {
    .compact-grid, .ops-form-grid, .ops-form-grid-2, .ops-case-meta-grid, .ops-item-row {
        grid-template-columns:1fr;
    }

    .ops-field-wide {
        grid-column: auto;
    }

    .ops-case-price-row {
        width: 100%;
    }

    .ops-case-price-row .ops-price-input {
        flex: 1;
    }

    .ops-ladder-toolbar {
        flex-direction: column;
        align-items: flex-start;
    }
}

@media (max-width: 760px) {
    .ops-card {
        padding: 16px;
    }

    .ops-case-row-extended {
        padding: 14px;
    }

    .ops-promo-row {
        align-items: flex-start;
        flex-direction: column;
    }

    .ops-case-head, .ops-case-actions-row, .ops-weights-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .ops-case-price-row {
        flex-direction: column;
        align-items: stretch;
    }
}

.ops-ladder-row {
    grid-template-columns:minmax(180px, 1.3fr) minmax(120px, 0.7fr);
}

.ops-ladder-toolbar-stack {
    display: grid;
    gap: 12px;
}

.ops-ladder-mode-switch {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.ops-ladder-mode-btn {
    border: 1px solid rgba(197, 176, 255, .16);
    background: linear-gradient(180deg, rgba(18, 13, 31, .96), rgba(11, 8, 20, .92));
    color: #e9ddff;
    border-radius: 14px;
    min-height: 44px;
    padding: 0 16px;
    font-weight: 700;
    cursor: pointer;
    transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease, background .18s ease;
}

.ops-ladder-mode-btn:hover {
    transform: translateY(-1px);
    border-color: rgba(176, 129, 255, .38);
}

.ops-ladder-mode-btn.is-active {
    background: linear-gradient(135deg, #9f63ff, #6d59ff);
    color: #fff;
    border-color: transparent;
    box-shadow: 0 14px 28px rgba(111, 75, 255, .28);
}

.ops-ladder-meta {
    color: rgba(255, 255, 255, .72);
    font-size: 14px;
    margin-top: 2px;
}

.ops-ladder-row-head {
    grid-template-columns:72px 1.4fr .8fr .6fr !important;
    align-items: center;
    background: rgba(255, 255, 255, .03);
    border: 1px solid rgba(255, 255, 255, .05);
    border-radius: 16px;
    padding: 12px 14px;
}

.ops-ladder-row-head .ops-ladder-head-label, .ops-ladder-row-head .ops-ladder-step-no {
    color: rgba(255, 255, 255, .62);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.ops-ladder-row {
    grid-template-columns:72px 1.4fr .8fr .6fr !important;
    align-items: center;
}

.ops-ladder-cell.ops-ladder-step-no {
    min-height: 48px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-weight: 800;
    background: linear-gradient(180deg, rgba(30, 23, 49, .96), rgba(15, 11, 27, .94));
    border: 1px solid rgba(197, 176, 255, .12);
}

@media (max-width: 900px) {
    .ops-ladder-row-head, .ops-ladder-row {
        grid-template-columns:1fr !important;
    }

    .ops-ladder-row-head {
        display: none;
    }

    .ops-ladder-cell.ops-ladder-step-no {
        justify-content: flex-start;
        padding: 0 16px;
    }
}

.roulette-window {
    isolation: isolate;
}

.roulette-window .roulette-near-top-flash {
    position: absolute;
    inset: -10%;
    pointer-events: none;
    opacity: 0;
    z-index: 1;
    background: radial-gradient(circle at 50% 50%, rgba(255, 255, 255, .22), transparent 32%),
    radial-gradient(circle at 50% 18%, rgba(255, 210, 120, .18), transparent 28%);
    transition: opacity .35s ease;
}

.roulette-window.near-top-active .roulette-near-top-flash {
    opacity: 1;
    animation: nearTopPulse 1.15s ease 1;
}

@keyframes nearTopPulse {
    0% {
        opacity: 0;
        transform: scale(.94);
    }
    38% {
        opacity: .95;
        transform: scale(1.02);
    }
    100% {
        opacity: .1;
        transform: scale(1.05);
    }
}

.roulette-window.speed-fast .roulette-track, .roulette-window.speed-slow .roulette-track {
    filter: none;
}

.roulette-window[data-spin-tone="violet"] .roulette-pointer {
    box-shadow: 0 0 18px rgba(179, 126, 255, .28), 0 0 32px rgba(255, 255, 255, .22);
}

.roulette-window[data-spin-tone="neon"] .roulette-pointer {
    box-shadow: 0 0 18px rgba(88, 255, 178, .24), 0 0 32px rgba(255, 255, 255, .2);
}

.roulette-window[data-spin-tone="ice"] .roulette-pointer {
    box-shadow: 0 0 18px rgba(111, 214, 255, .25), 0 0 32px rgba(255, 255, 255, .2);
}

.roulette-window[data-spin-tone="sun"] .roulette-pointer {
    box-shadow: 0 0 18px rgba(255, 194, 92, .25), 0 0 32px rgba(255, 255, 255, .18);
}

.roulette-window[data-spin-tone="rose"] .roulette-pointer {
    box-shadow: 0 0 18px rgba(255, 124, 201, .24), 0 0 32px rgba(255, 255, 255, .18);
}

.roulette-window[data-spin-tone="mint"] .roulette-pointer {
    box-shadow: 0 0 18px rgba(103, 255, 221, .24), 0 0 32px rgba(255, 255, 255, .18);
}

.roulette-window[data-spin-tone="amber"] .roulette-pointer {
    box-shadow: 0 0 18px rgba(255, 180, 67, .24), 0 0 32px rgba(255, 255, 255, .18);
}

.roulette-window[data-spin-sheen="soft"]::after, .roulette-window[data-spin-sheen="hard"]::after {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 1;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .03), transparent);
    mix-blend-mode: screen;
}

.roulette-window[data-spin-sheen="hard"]::after {
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .05), rgba(255, 255, 255, .02), transparent);
}

.roulette-item.near-top-item {
    position: relative;
}

.roulette-item.near-top-item::before {
    content: '';
    position: absolute;
    inset: 8px;
    border-radius: inherit;
    border: 1px solid rgba(255, 214, 120, .18);
    opacity: 0;
    transition: opacity .25s ease;
}

.roulette-item.near-top-focus::before {
    opacity: 1;
}

.roulette-item.near-top-focus {
    box-shadow: 0 0 0 1px rgba(255, 214, 120, .18), 0 0 24px rgba(255, 196, 88, .18);
    transform: translateY(-1px);
}

:root, body.theme-dark-blue, body.theme-carnage {
    --bg: #050810;
    --panel: #0a0e18;
    --panel-2: #101a2c;
    --text: #FFFFFF;
    --muted: #5A7086;
    --line: rgba(255, 255, 255, .06);
    --accent: #3868C0;
    --accent-2: #2A54A0;
    --accent-3: #58A6FF;
    --success: #22C55E;
    --warning: #F59E0B;
    --accent-rgb: 239, 68, 68;
    --accent-2-rgb: 192, 32, 32;
    --accent-3-rgb: 255, 136, 136;
}

body.theme-light-red {
    --bg: #FFFFFF;
    --panel: #FAFAFA;
    --panel-2: #F4F4F4;
    --text: #04060b;
    --muted: #607086;
    --line: rgba(4, 6, 12, .24);
    --accent: #4C7FDB;
    --accent-2: #3868C0;
    --accent-3: #6FA3FF;
    --success: #16A34A;
    --warning: #D97706;
    --accent-rgb: 76, 127, 219;
    --accent-2-rgb: 56, 104, 192;
    --accent-3-rgb: 111, 163, 255;
}

html, body {
    background: linear-gradient(180deg, #0c1220 0%, #050810 70%) !important;
    color: var(--text) !important;
    font-family: 'Syne', 'Segoe UI', system-ui, sans-serif !important;
}

body.theme-light-red {
    background: linear-gradient(180deg, #FFF5F5 0%, #FFFFFF 60%) !important;
}

body.theme-switching .app-shell {
    opacity: 0;
    pointer-events: none;
}

body.palette-blue.theme-dark-blue, body.palette-blue.theme-carnage {
    --accent: #3868C0;
    --accent-2: #2A54A0;
    --accent-3: #7BAFD4;
    --muted: #4e728f;
    --line: rgba(100, 160, 220, .12);
    --accent-rgb: 56, 104, 192;
    --accent-2-rgb: 42, 84, 160;
    --accent-3-rgb: 123, 175, 212;
    --bg: #0d0e10;
    --panel: #141617;
    --panel-2: #1a1c1f;
    --text: #e8f0ff;
}

body.palette-blue.theme-dark-blue, body.palette-blue.theme-carnage {
    background: radial-gradient(circle at 15% 0%, rgba(56, 104, 192, .07) 0%, transparent 25%), linear-gradient(180deg, #0d0e10 0%, #0a0b0c 60%, #080909 100%) !important;
}

body.palette-blue.theme-light-red {
    --accent: #2563eb;
    --accent-2: #1d4ed8;
    --accent-3: #60a5fa;
    --accent-rgb: 37, 99, 235;
    --accent-2-rgb: 29, 78, 216;
    --accent-3-rgb: 96, 165, 250;
    --muted: #5b7fa8;
    --line: rgba(37, 99, 235, .15);
    --bg: #f0f5ff;
    --panel: #f8faff;
    --panel-2: #eef3fc;
    --text: #0a1428;
    background: linear-gradient(180deg, #e8f0ff 0%, #f4f8ff 60%) !important;
}

body.palette-blue .primary-btn {
    box-shadow: 0 12px 24px rgba(56, 104, 192, .28) !important;
}

body.palette-blue .hero-badge {
    background: linear-gradient(135deg, rgba(56, 104, 192, .85), rgba(42, 84, 160, .75)) !important;
}

body.palette-blue .roulette-pointer {
    background: linear-gradient(180deg, #7BAFD4, #fff, #3868C0) !important;
}

body.palette-grey.theme-dark-blue, body.palette-grey.theme-carnage {
    --accent: #7288a0;
    --accent-2: #536175;
    --accent-3: #a8bccf;
    --accent-rgb: 114, 136, 160;
    --accent-2-rgb: 83, 97, 117;
    --accent-3-rgb: 168, 188, 207;
    --muted: #556070;
    --line: rgba(140, 170, 195, .10);
    --bg: #080b0e;
    --panel: #0f1317;
    --panel-2: #161b21;
    --text: #dde4ea;
}

body.palette-grey.theme-dark-blue, body.palette-grey.theme-carnage {
    background: radial-gradient(circle at 20% 0%, rgba(90, 120, 145, .12) 0%, transparent 30%),
    linear-gradient(180deg, #090c10 0%, #050709 60%, #030507 100%) !important;
}

body.palette-grey.theme-light-red {
    --accent: #64748b;
    --accent-2: #475569;
    --accent-3: #94a3b8;
    --accent-rgb: 100, 116, 139;
    --accent-2-rgb: 71, 85, 105;
    --accent-3-rgb: 148, 163, 184;
    --muted: #6b7a8d;
    --line: rgba(100, 116, 139, .14);
    --bg: #f4f6f8;
    --panel: #fafbfc;
    --panel-2: #eef0f3;
    --text: #0f1318;
    background: linear-gradient(180deg, #edf0f4 0%, #f6f8fa 60%) !important;
}

body.palette-grey .primary-btn {
    box-shadow: 0 12px 24px rgba(100, 116, 139, .26) !important;
}

body.palette-grey .hero-badge {
    background: linear-gradient(135deg, rgba(100, 116, 139, .85), rgba(71, 85, 105, .75)) !important;
}

body.palette-grey .roulette-pointer {
    background: linear-gradient(180deg, #a8bccf, #fff, #7288a0) !important;
}

.palette-picker-row {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 12px;
}

.palette-swatch-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 14px 18px;
    border: 2px solid var(--line);
    background: rgba(255, 255, 255, .03);
    cursor: pointer;
    color: var(--text);
    transition: border-color .18s, transform .14s;
    position: relative;
    min-width: 100px;
}

.palette-swatch-btn:hover {
    transform: translateY(-2px);
    border-color: rgba(255, 255, 255, .2);
}

.palette-swatch-btn.is-active {
    border-color: var(--accent) !important;
}

.palette-swatch-btn.is-active::after {
    content: '✓';
    position: absolute;
    top: 6px;
    right: 8px;
    font-size: 11px;
    color: var(--accent);
    font-weight: 800;
}

.palette-swatch-preview {
    width: 56px;
    height: 32px;
    position: relative;
    overflow: hidden;
}

.palette-swatch-preview::before, .palette-swatch-preview::after {
    content: '';
    position: absolute;
    border-radius: 50% !important;
}

.palette-swatch-name {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.palette-swatch-btn[data-palette="red"] .palette-swatch-preview {
    background: #050810;
}

.palette-swatch-btn[data-palette="red"] .palette-swatch-preview::before {
    width: 28px;
    height: 28px;
    background: #3868C0;
    top: 4px;
    left: 6px;
    opacity: .7;
    filter: blur(8px);
}

.palette-swatch-btn[data-palette="red"] .palette-swatch-preview::after {
    width: 16px;
    height: 16px;
    background: #58A6FF;
    top: 9px;
    left: 11px;
}

.palette-swatch-btn[data-palette="blue"] .palette-swatch-preview {
    background: #0d0e10;
}

.palette-swatch-btn[data-palette="blue"] .palette-swatch-preview::before {
    width: 28px;
    height: 28px;
    background: #3868C0;
    top: 4px;
    left: 6px;
    opacity: .7;
    filter: blur(8px);
}

.palette-swatch-btn[data-palette="blue"] .palette-swatch-preview::after {
    width: 16px;
    height: 16px;
    background: #7BAFD4;
    top: 9px;
    left: 11px;
}

.palette-swatch-btn[data-palette="grey"] .palette-swatch-preview {
    background: #080b0e;
}

.palette-swatch-btn[data-palette="grey"] .palette-swatch-preview::before {
    width: 28px;
    height: 28px;
    background: #7288a0;
    top: 4px;
    left: 6px;
    opacity: .6;
    filter: blur(8px);
}

.palette-swatch-btn[data-palette="grey"] .palette-swatch-preview::after {
    width: 16px;
    height: 16px;
    background: #a8bccf;
    top: 9px;
    left: 11px;
}

body.theme-light-red .sidebar-live, body.theme-light-red .hero-banner, body.theme-light-red .profile-card, body.theme-light-red .case-card, body.theme-light-red .inventory-card, body.theme-light-red .item-hero, body.theme-light-red .item-related-panel, body.theme-light-red .profile-hero, body.theme-light-red .case-showcase, body.theme-light-red .case-info-panel, body.theme-light-red .fuse-panel, body.theme-light-red .inventory-panel, body.theme-light-red .promo-stat, body.theme-light-red .modal-card, body.theme-light-red .auth-card, body.theme-light-red .ladder-panel, body.theme-light-red .battle-sidebar-premium, body.theme-light-red .battle-main-premium, body.theme-light-red .live-card {
    background: #FFFFFF !important;
    border-color: rgba(4, 6, 12, .24) !important;
    box-shadow: 0 4px 24px rgba(0, 0, 0, .07), 0 1px 0 rgba(255, 255, 255, .9) inset !important;
}

body.theme-light-red .brand-btn, body.theme-light-red .nav-btn, body.theme-light-red .user-box, body.theme-light-red .balance-chip {
    background: transparent !important;
    border: none !important;
    color: var(--text) !important;
}

body.theme-light-red .topbar {
    background: rgba(255, 255, 255, .97) !important;
    border-color: rgba(4, 6, 12, .24) !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, .08) !important;
}

body.theme-light-red .sidebar-title, body.theme-light-red .panel-title, body.theme-light-red .muted, body.theme-light-red .user-label, body.theme-light-red .battle-create-copy, body.theme-light-red .battle-status-text, body.theme-light-red .battle-list-meta, body.theme-light-red .battle-case-meta, body.theme-light-red .battle-log, body.theme-light-red .battle-round-btn span {
    color: var(--muted) !important;
}

body.theme-light-red .brand-btn, body.theme-light-red .user-name, body.theme-light-red .profile-username, body.theme-light-red .case-title, body.theme-light-red .case-price, body.theme-light-red .section-head h2, body.theme-light-red .battle-create-title, body.theme-light-red .battle-case-card-body strong, body.theme-light-red .battle-case-dropdown-label, body.theme-light-red .battle-case-dropdown-option strong, body.theme-light-red .battle-round-btn {
    color: var(--text) !important;
}

body.theme-light-red .nav-btn.active, body.theme-light-red .ghost-btn.active, body.theme-light-red .primary-btn, body.theme-light-red .user-avatar, body.theme-light-red .profile-avatar-large, body.theme-light-red .speed-toggle-pill, body.theme-light-red .ladder-progress-fill, body.theme-light-red .battle-round-btn.is-active {
    background: linear-gradient(135deg, #3868C0, #2A54A0) !important;
    border: none !important;
    color: #fff !important;
}

body.theme-light-red input, body.theme-light-red select, body.theme-light-red textarea, body.theme-light-red .ops-input, body.theme-light-red .ops-select, body.theme-light-red .battle-case-dropdown-btn, body.theme-light-red .battle-case-dropdown-menu {
    background: #FFFFFF !important;
    border-color: rgba(4, 6, 12, .24) !important;
    color: var(--text) !important;
}

.theme-toggle-single {
    position: relative;
    align-self: stretch;
    width: 44px;
    flex-shrink: 0;
    border-radius: 12px;
    display: grid;
    place-items: center;
    padding: 0;
    background: transparent;
    border: none;
    box-shadow: none;
    overflow: hidden;
    cursor: pointer;
    transition: background .15s;
}

.theme-toggle-single:hover {
    background: rgba(255, 255, 255, .07);
}

.theme-toggle-single .theme-toggle-orbit {
    position: relative;
    width: 22px;
    height: 22px;
    display: block;
}

.theme-toggle-single .theme-toggle-icon-img {
    position: absolute;
    inset: 0;
    width: 22px;
    height: 22px;
}

.theme-toggle-single .theme-toggle-icon-next {
    opacity: 0;
    transform: translateX(18px) scale(.2) rotate(-120deg);
}

.theme-toggle-single.is-animating .theme-toggle-icon-current {
    animation: themeSuckIn .52s cubic-bezier(.22, .9, .24, 1) forwards;
}

.theme-toggle-single.is-animating .theme-toggle-icon-next {
    animation: themeSpitOut .56s cubic-bezier(.18, .84, .18, 1) .04s forwards;
}

body.theme-light-red .theme-toggle-single {
    background: transparent;
}

body.theme-light-red .theme-toggle-single:hover {
    background: rgba(0, 0, 0, .06);
}

@keyframes themeSuckIn {
    0% {
        opacity: 1;
        transform: translateX(0) scale(1) rotate(0deg);
        filter: blur(0);
    }
    35% {
        opacity: 1;
        transform: translateX(2px) scale(.78) rotate(45deg);
    }
    100% {
        opacity: 0;
        transform: translateX(0) scale(.05) rotate(220deg);
        filter: blur(2px);
    }
}

@keyframes themeSpitOut {
    0% {
        opacity: 0;
        transform: translateX(-2px) scale(.05) rotate(-200deg);
        filter: blur(2px);
    }
    55% {
        opacity: 1;
        transform: translateX(-1px) scale(1.12) rotate(16deg);
        filter: blur(0);
    }
    100% {
        opacity: 1;
        transform: translateX(0) scale(1) rotate(0deg);
        filter: blur(0);
    }
}

.item-source-badge {
    display: inline-flex;
    align-items: center;
    padding: 7px 10px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .05);
    border: 1px solid var(--line);
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
}

body.theme-light-red .item-source-badge {
    background: #fff;
    border-color: rgba(4, 6, 12, .24);
}

body.theme-light-red .payment-method-btn {
    background: #fff !important;
    border-color: rgba(4, 6, 12, .24) !important;
    color: var(--text) !important;
}

body.theme-light-red .payment-method-action {
    background: #f4f4f4 !important;
    border-color: rgba(4, 6, 12, .24) !important;
    color: var(--text) !important;
}

body.theme-light-red .loot-card, body.theme-light-red .inventory-card, body.theme-light-red .target-card, body.theme-light-red .related-card {
    background: #fff !important;
    border-color: rgba(4, 6, 12, .24) !important;
}

body.theme-light-red .ops-surface {
    background: #fff !important;
    border-color: rgba(4, 6, 12, .24) !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, .07) !important;
}

#battleCaseCards {
    display: none !important;
}

#cancelBattleBtn:not(.hidden) {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
}

#ladderAdvanceBtn {
    display: none !important;
}

#openSelectedCaseBtn {
    background: linear-gradient(135deg, var(--accent), var(--accent-2)) !important;
    color: #fff !important;
    box-shadow: none !important;
}

#createBattleBtn {
    background: linear-gradient(135deg, var(--accent), var(--accent-2)) !important;
    color: #fff !important;
    box-shadow: none !important;
}

#ladderAdvanceBtn {
    display: none !important;
}

#openLadderModeBtn, #ladderCashoutBtn {
    min-height: 52px;
    border-radius: 18px;
    font-weight: 800;
}

#ladderCashoutBtn {
    background: rgba(255, 255, 255, .05);
    border: 1px solid var(--line);
    color: var(--text);
}

.ops-ladder-step-count-field {
    max-width: 220px;
    margin: 12px 0 14px;
}

.ops-ladder-mode-switch {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.ops-ladder-mode-btn {
    cursor: pointer !important;
    pointer-events: auto !important;
}

.item-source-badge {
    display: inline-flex;
    align-items: center;
    padding: 7px 10px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .05);
    border: 1px solid var(--line);
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
}

body.modal-fullscreen-open {
    overflow: hidden;
}

body.modal-fullscreen-open .modal {
    padding: 0 !important;
    background: rgba(6, 8, 12, .94) !important;
}

body.modal-fullscreen-open #rouletteModal .modal-card {
    width: 100vw !important;
    max-width: 100vw !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    border-radius: 0 !important;
    padding: 18px 14px 18px !important;
    border: none !important;
    box-shadow: none !important;
    background: linear-gradient(180deg, #0b1220, #0a111b) !important;
}

body.modal-fullscreen-open #rouletteModal .modal-top {
    position: sticky;
    top: 0;
    z-index: 5;
    padding-bottom: 10px;
    background: linear-gradient(180deg, #0b1220 70%, rgba(11, 18, 32, .6));
}

body.modal-fullscreen-open #rouletteModal .roulette-windows.clean-sell-layout.multiple {
    grid-template-columns:1fr !important;
    gap: 14px !important;
}

body.modal-fullscreen-open #rouletteModal .roulette-window {
    min-height: 180px !important;
}

body.modal-fullscreen-open #rouletteModal .roulette-window.single {
    min-height: 190px !important;
}

body.modal-fullscreen-open #rouletteModal .roulette-item {
    box-shadow: none !important;
}

.sidebar-live {
    backdrop-filter: none !important;
}

.live-card, .case-card, .profile-card, .inventory-card, .hero-banner, .modal-card {
    box-shadow: 0 10px 22px rgba(0, 0, 0, .18) !important;
}

.case-glow, .case-showcase-glow {
    filter: blur(10px) !important;
}

@media (max-width: 760px) {
    body.modal-fullscreen-open #rouletteModal .modal-card {
        padding: 12px 10px 14px !important;
    }

    body.modal-fullscreen-open #rouletteModal .roulette-window.single {
        min-height: 190px !important;
    }
}

.payment-box {
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid var(--line);
    display: grid;
    gap: 12px;
}

.payment-box-head {
    display: grid;
    gap: 4px;
}

.payment-gui {
    display: grid;
    gap: 10px;
}

.payment-method-btn {
    width: 100%;
    display: grid;
    grid-template-columns:44px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 14px 14px;
    border-radius: 18px;
    border: 1px solid var(--line);
    background: rgba(255, 255, 255, .04);
    color: var(--text);
    text-align: left;
    transition: transform .16s ease, border-color .16s ease, background .16s ease;
}

.payment-method-btn:hover {
    transform: translateY(-1px);
    border-color: rgba(255, 255, 255, .14);
}

.payment-method-icon {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    display: grid;
    place-items: center;
    font-size: 22px;
    font-weight: 900;
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
    color: #fff;
}

.payment-method-body {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.payment-method-body strong {
    color: var(--text);
}

.payment-method-body small {
    color: var(--muted);
}

.payment-method-action {
    padding: 8px 12px;
    border-radius: 999px;
    border: 1px solid var(--line);
    background: rgba(255, 255, 255, .05);
    color: var(--text);
    font-size: 12px;
    font-weight: 800;
}

.payment-method-hint {
    line-height: 1.45;
}

body.theme-light-red .payment-method-btn {
    background: rgba(255, 255, 255, .86) !important;
    border-color: var(--line) !important;
}

body.theme-light-red .payment-method-action {
    background: rgba(255, 255, 255, .82) !important;
}

@media (max-width: 680px) {
    .payment-method-btn {
        grid-template-columns:44px minmax(0, 1fr);
    }

    .payment-method-action {
        grid-column: 2;
        justify-self: start;
    }
}

.payment-currency-switch {
    display: grid;
    grid-template-columns:repeat(5, minmax(0, 1fr));
    gap: 10px;
}

.payment-currency-btn {
    min-height: 44px;
    border-radius: 16px;
    border: 1px solid var(--line);
    background: rgba(255, 255, 255, .04);
    color: var(--text);
    font-weight: 800;
    transition: transform .16s ease, border-color .16s ease, background .16s ease;
}

.payment-currency-btn:hover {
    transform: translateY(-1px);
}

.payment-currency-btn.is-active {
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
    color: #fff;
    border-color: transparent;
}

.payment-methods-group {
    display: none;
    gap: 10px;
}

.payment-methods-group.is-active {
    display: grid;
}

body.theme-light-red .payment-currency-btn {
    background: rgba(255, 255, 255, .82) !important;
}

body.theme-light-red .payment-currency-btn.is-active {
    color: #fff !important;
}

@media (max-width: 760px) {
    .payment-currency-switch {
        grid-template-columns:1fr 1fr;
    }
}

.payment-amount-summary {
    display: grid;
    gap: 4px;
    padding: 12px 14px;
    border-radius: 16px;
    border: 1px solid var(--line);
    background: rgba(255, 255, 255, .04);
    color: var(--text);
}

.payment-amount-summary strong {
    font-size: 18px;
}

.payment-amount-summary span {
    color: var(--muted);
    line-height: 1.45;
}

/* .payment-amount-summary is display:grid for its usual <strong>+<span> shape
   (deposit terminal), which stacks each direct child on its own row. But
   #withdrawalFormHint holds plain hint/error text, and the TOK-icon
   MutationObserver (replaceTokenTextNodes) splits any "TOK" inside it into
   separate text/img/text child nodes — grid then puts each on its own row
   instead of flowing them inline, so any message containing "TOK" broke
   into 2-3 stacked rows regardless of how short the text was. */
#withdrawalFormHint {
    display: block;
}

.payment-rates-card {
    display: grid;
    gap: 10px;
    padding: 14px;
    border-radius: 18px;
    border: 1px solid var(--line);
    background: rgba(255, 255, 255, .04);
}

.payment-rates-title {
    font-weight: 900;
    color: var(--text);
}

.payment-rates-grid {
    display: grid;
    grid-template-columns:1fr 1fr;
    gap: 10px;
}

.payment-rates-grid div {
    display: grid;
    gap: 2px;
    padding: 10px 12px;
    border-radius: 14px;
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(255, 255, 255, .04);
}

.payment-rates-grid strong {
    color: var(--text);
}

.payment-rates-grid span {
    color: var(--muted);
    font-size: 13px;
}

.support-floating-btn {
    position: fixed;
    right: 18px;
    bottom: 18px;
    z-index: 170;
    width: 62px;
    height: 62px;
    border-radius: 50% !important;
    display: grid;
    place-items: center;
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
    color: #fff;
    box-shadow: 0 18px 36px rgba(0, 0, 0, .28);
    border: 1px solid rgba(255, 255, 255, .14);
}

.support-floating-btn:hover {
    transform: translateY(-2px) scale(1.03);
}

.support-floating-icon {
    font-size: 26px;
    line-height: 1;
}

body.theme-light-red .payment-amount-summary, body.theme-light-red .payment-rates-card, body.theme-light-red .payment-rates-grid div {
    background: rgba(255, 255, 255, .86) !important;
    border-color: var(--line) !important;
}

@media (max-width: 760px) {
    .payment-rates-grid {
        grid-template-columns:1fr;
    }

    .support-floating-btn {
        right: 14px;
        bottom: 14px;
        width: 58px;
        height: 58px;
    }
}

.payment-method-btn[data-payment-method="telegram_stars"] .payment-method-icon {
    background: linear-gradient(135deg, #5d7cff, #8d5fff);
}

.ops-case-count {
    margin: 6px 0 12px;
    font-weight: 700;
}

.support-floating-btn {
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
    pointer-events: auto;
    text-decoration: none;
}

.support-floating-btn span {
    pointer-events: none;
}

.payment-history-box {
    margin-top: 16px;
}

.payment-history-list, .ops-deposit-list, .ops-battle-history-list, .battle-history-list {
    display: grid;
    gap: 10px;
}

.payment-history-row, .ops-deposit-row, .ops-battle-history-row, .battle-history-mini {
    border: 1px solid var(--line);
    background: rgba(255, 255, 255, .04);
    border-radius: 16px;
    padding: 12px;
}

.payment-history-row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
}

.payment-history-row div, .ops-deposit-main {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.payment-history-row span, .ops-deposit-row span, .ops-deposit-row small, .ops-battle-history-row span, .ops-battle-history-row small, .battle-history-mini span {
    color: var(--muted);
}

.payment-history-row span, .ops-deposit-row span, .ops-deposit-row small, .ops-deposit-row strong, .ops-battle-history-row span, .ops-battle-history-row small, .battle-history-mini span {
    /* Deposit/withdrawal ids ("dep_1784932637010_7fe9c99e") are one long
       unbreakable token -- without this they silently overflow .ops-deposit-
       main's column and render underneath the action buttons next to them
       instead of wrapping, especially visible on narrow phone widths. */
    overflow-wrap: anywhere;
}

.payment-history-row em {
    font-style: normal;
    font-weight: 900;
}

.payment-history-row.status-paid em {
    color: #55e08a;
}

.payment-history-row.status-pending em {
    color: #ffd36e;
}

.ops-deposit-row {
    display: grid;
    grid-template-columns:minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
}

.ops-deposit-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

/* Below ~480px the auto-width actions column (often 2+ buttons) leaves too
   little room for the id/text column next to it -- stack instead of
   squeezing them side by side, same fix for every list built on this shared
   row (deposits, withdrawals, pet-deposits, bonus-promos, special-deposit-
   offers, quests). */
@media (max-width: 480px) {
    .ops-deposit-row {
        grid-template-columns: 1fr;
    }

    .ops-deposit-actions {
        width: 100%;
    }

    .ops-deposit-actions .primary-btn, .ops-deposit-actions .ghost-btn, .ops-deposit-actions button {
        flex: 1 1 auto;
    }
}

body.theme-light-red .payment-history-row, body.theme-light-red .ops-deposit-row, body.theme-light-red .ops-battle-history-row, body.theme-light-red .battle-history-mini, body.theme-light-red .battle-round-result {
    background: rgba(255, 255, 255, .86) !important;
}

.hero-banner {
    align-items: stretch;
}

.lobby-promo-card {
    display: grid;
    gap: 12px;
}

.lobby-actions {
    display: flex;
    gap: 10px;
    align-items: stretch;
}

.lobby-action-btn {
    flex: 1;
    min-height: 42px;
    padding: 10px 12px !important;
    font-size: 13px !important;
}

.lobby-deposit-main {
    flex: 1.7 !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    letter-spacing: .02em;
}

.profile-tabs, .ops-tabs {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin: 14px 0 18px;
}

.profile-tab, .ops-tab {
    border: 1px solid var(--line);
    background: rgba(255, 255, 255, .04);
    color: var(--text);
    border-radius: 999px;
    padding: 10px 14px;
    font-weight: 900;
    cursor: pointer;
    transition: .16s ease;
    box-shadow: 0 1px 0 rgba(255, 255, 255, .04) inset;
}

.profile-tab.is-active, .ops-tab.is-active {
    color: #fff;
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
    border-color: transparent;
    box-shadow: 0 10px 22px rgba(42, 84, 160, .22);
}

.profile-tab-panel {
    display: none;
}

.profile-tab-panel.is-active {
    display: block;
}

.ops-section {
    display: none !important;
}

.ops-section.is-active {
    display: block !important;
}

.ops-grid-2.ops-overview-grid {
    display: block;
}

.payment-steps {
    display: grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.payment-step {
    border: 1px solid var(--line);
    background: rgba(255, 255, 255, .035);
    border-radius: 16px;
    padding: 10px;
    display: grid;
    gap: 4px;
    text-align: center;
}

.payment-step b {
    margin: auto;
    width: 28px;
    height: 28px;
    border-radius: 999px;
    display: grid;
    place-items: center;
    background: rgba(255, 255, 255, .08);
}

.payment-step.is-active b, .payment-step.is-done b {
    color: #fff;
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
}

.payment-step span {
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
}

.ops-items-list {
    display: grid;
    grid-template-columns:repeat(auto-fill, minmax(210px, 1fr));
    gap: 12px;
}

.ops-item-overview {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: rgba(255, 255, 255, .04);
}

.ops-item-overview span {
    display: block;
    color: var(--muted);
    margin-top: 3px;
}

.ops-item-overview-media {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
}

.ops-item-overview-image {
    object-fit: contain;
    display: block;
    width: 38px;
    height: 38px;
    margin: 0 auto;
    border-radius: 4px;
}

.ops-item-overview-image[src] {
    object-position: center;
}

.ops-item-overview-media img {
    display: block;
    margin: 0 auto;
    max-width: 100%;
    max-height: 100%;
}

.ops-item-overview-media img[src] {
    display: block;
    object-fit: contain;
    width: 38px;
    height: 38px;
    margin: 0 auto;
}

.ops-item-overview-media img[src]:not([src=""]) {
    display: block;
    object-fit: contain;
    width: 38px;
    height: 38px;
    margin: 0 auto;
}

.ops-item-overview-emoji {
    display: grid;
    place-items: center;
    line-height: 1;
    font-size: 22px;
}

.ops-item-edit-form {
    display: grid;
    grid-template-columns:1fr 1fr;
    gap: 6px;
    padding: 8px 10px;
    background: rgba(255, 255, 255, .04);
    border-radius: 10px;
    margin-top: 4px;
}

.ops-item-edit-form input {
    background: rgba(255, 255, 255, .06);
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 6px;
    padding: 4px 8px;
    color: inherit;
    font-size: 13px;
}

.ops-item-edit-form .ops-item-edit-actions {
    grid-column: 1/-1;
    display: flex;
    gap: 6px;
    justify-content: flex-end;
}

.ops-item-edit-btn {
    background: rgba(255, 255, 255, .06);
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 6px;
    padding: 2px 8px;
    cursor: pointer;
    font-size: 12px;
    color: inherit;
    opacity: 0.6;
    transition: opacity .15s;
}

.ops-item-overview:hover .ops-item-edit-btn {
    opacity: 1;
}

.ops-item-edit-btn.is-editing {
    opacity: 1;
    background: rgba(127, 77, 255, .15);
    border-color: rgba(127, 77, 255, .3);
}

body.theme-light-red .profile-tab, body.theme-light-red .ops-tab, body.theme-light-red .payment-step, body.theme-light-red .ops-item-overview, body.theme-light-red .ladder-win-side-block {
    background: rgba(255, 255, 255, .86) !important;
}

@media (max-width: 760px) {
    .payment-steps {
        grid-template-columns:1fr 1fr;
    }

    .lobby-actions, .ladder-actions-row {
        grid-template-columns:1fr;
    }
}

.deposit-terminal {
    display: grid;
    grid-template-columns:110px minmax(0, 1fr);
    padding: 0 !important;
    overflow: hidden;
    border-radius: 0;
    background: #111722 !important;
    border: 1px solid rgba(255, 255, 255, .12) !important;
}

.deposit-menu-tabs {
    background: #1a2232;
    border-right: 1px solid rgba(255, 255, 255, .08);
    display: grid;
    align-content: start;
}

.deposit-menu-tab {
    min-height: 86px;
    border: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .08);
    background: transparent;
    color: #7f8899;
    display: grid;
    place-items: center;
    gap: 6px;
    font-weight: 900;
    cursor: pointer;
    position: relative;
}

.deposit-menu-tab.is-active {
    color: #fff;
    background: #30394f;
}

.deposit-menu-tab.is-active::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: #ff9838;
}

.deposit-menu-tab-icon {
    font-size: 28px;
    line-height: 1;
}

.deposit-menu-tab strong {
    font-size: 13px;
}

.deposit-terminal-main {
    padding: 26px 30px;
    display: grid;
    gap: 18px;
}

.deposit-terminal-head {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.deposit-terminal-head .panel-title {
    color: #fff;
    font-size: 20px;
    font-weight: 500;
}

.deposit-currency-select {
    width: 98px;
    height: 34px;
    background: #1a2232;
    border: 1px solid rgba(255, 255, 255, .28);
    color: #ff9838;
    border-radius: 0;
    padding: 0 10px;
    font-weight: 900;
}

.deposit-terminal .payment-steps, .deposit-terminal .payment-currency-switch, .deposit-terminal .payment-rates-card {
    display: none !important;
}

.deposit-terminal .payment-amount-summary {
    border: 0;
    border-top: 1px solid rgba(255, 255, 255, .12);
    border-radius: 0;
    background: transparent;
    color: #aeb8ca;
    padding: 16px 0 0;
}

.deposit-terminal .payment-gui {
    display: grid;
    grid-template-columns:repeat(4, minmax(120px, 1fr));
    gap: 20px;
}

.deposit-terminal .payment-methods-group {
    display: contents !important;
}

.deposit-terminal .payment-method-btn {
    min-height: 110px;
    border-radius: 0;
    border: 1px solid #2f3850;
    background: #171e2d;
    color: #fff;
    display: grid;
    align-content: center;
    justify-items: start;
    padding: 18px 14px;
    position: relative;
}

.deposit-terminal .payment-method-btn:hover, .deposit-terminal .payment-method-btn:focus {
    border-color: #ff9838;
    outline: 0;
}

.deposit-terminal .payment-method-btn::before {
    content: '';
    position: absolute;
    inset: 0;
    border: 1px solid transparent;
    pointer-events: none;
}

.deposit-terminal .payment-method-btn:hover::before {
    border-color: #ff9838;
}

.deposit-terminal .payment-method-icon {
    width: auto;
    height: auto;
    background: transparent !important;
    color: #fff;
    font-size: 28px;
    margin-bottom: 8px;
}

.deposit-terminal .payment-method-body {
    display: grid;
    gap: 8px;
}

.deposit-terminal .payment-method-body strong {
    color: #fff;
    font-size: 15px;
}

.deposit-terminal .payment-method-body small {
    color: #aeb8ca;
    font-size: 11px;
}

.deposit-terminal .payment-method-action {
    display: none;
}

.deposit-terminal .is-hidden-by-category {
    display: none !important;
}

.deposit-terminal-bottom {
    display: grid;
    grid-template-columns:minmax(160px, 220px) minmax(160px, 220px) minmax(180px, 1fr);
    gap: 16px;
    align-items: end;
}

.deposit-terminal-field {
    display: grid;
    grid-template-columns:130px 1fr;
    align-items: center;
    gap: 4px 10px;
}

.deposit-terminal-field span {
    color: #fff;
    font-weight: 800;
    grid-column: 1;
}

.deposit-terminal-field small {
    grid-column: 1;
    color: #7f8899;
    font-size: 12px;
}

.deposit-terminal-input {
    grid-column: 2;
    grid-row: 1 / span 2;
    width: 100%;
    min-height: 44px;
    border: 0;
    background: #1a2232;
    color: #fff;
    padding: 0 14px;
    font-weight: 900;
}

.deposit-terminal-pay-btn {
    min-height: 44px;
    border: 0;
    background: #ff9838;
    color: #fff;
    font-weight: 1000;
    letter-spacing: .02em;
    cursor: pointer;
}

.deposit-terminal-pay-btn:hover {
    filter: brightness(1.06);
}

.deposit-terminal .payment-method-hint {
    color: #aeb8ca;
}

body.theme-light-red .deposit-terminal {
    background: #f8f3f0 !important;
    border-color: #ead8d0 !important;
}

body.theme-light-red .deposit-menu-tabs {
    background: #f0e7e2;
}

body.theme-light-red .deposit-menu-tab {
    color: #9a8981;
}

body.theme-light-red .deposit-menu-tab.is-active {
    color: #2b2220;
    background: #fff;
}

body.theme-light-red .deposit-terminal-head .panel-title, body.theme-light-red .deposit-terminal-field span {
    color: #2b2220;
}

body.theme-light-red .deposit-terminal .payment-method-btn, body.theme-light-red .deposit-terminal-input, body.theme-light-red .deposit-currency-select {
    background: #fff !important;
    color: #2b2220 !important;
    border-color: #ead8d0 !important;
}

body.theme-light-red .deposit-terminal .payment-method-body strong {
    color: #2b2220;
}

@media (max-width: 840px) {
    .deposit-terminal {
        grid-template-columns:1fr;
    }

    .deposit-menu-tabs {
        grid-template-columns:repeat(4, 1fr);
        border-right: 0;
        border-bottom: 1px solid rgba(255, 255, 255, .08);
    }

    .deposit-menu-tab {
        min-height: 68px;
    }

    .deposit-terminal-main {
        padding: 18px;
    }

    .deposit-terminal .payment-gui {
        grid-template-columns:1fr 1fr;
        gap: 12px;
    }

    .deposit-terminal-bottom {
        grid-template-columns:1fr;
    }

    .deposit-terminal-field {
        grid-template-columns:1fr;
    }

    .deposit-terminal-input {
        grid-column: auto;
        grid-row: auto;
    }
}

.deposit-open-modal-btn {
    margin-top: 12px;
    min-height: 52px;
}

.deposit-fullscreen-modal.hidden {
    display: none !important;
}

.deposit-fullscreen-modal {
    position: fixed;
    inset: 0;
    z-index: 220;
    display: grid;
    place-items: center;
    padding: 22px;
}

.deposit-fullscreen-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(5, 8, 14, .72);
    backdrop-filter: blur(16px);
}

.deposit-fullscreen-shell {
    position: relative;
    width: min(980px, 100%);
    max-height: min(760px, 92vh);
    overflow: auto;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 28px;
    background: #111722;
    box-shadow: 0 32px 90px rgba(0, 0, 0, .45);
}

.deposit-fullscreen-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 20px;
    padding: 24px 28px 0;
}

.deposit-fullscreen-kicker {
    color: #ff9838;
    font-size: 12px;
    font-weight: 1000;
    letter-spacing: .11em;
}

.deposit-fullscreen-head h3 {
    margin: 6px 0 0;
    color: #fff;
    font-size: 28px;
}

.deposit-fullscreen-close {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    border: 1px solid rgba(255, 255, 255, .16);
    background: rgba(255, 255, 255, .06);
    color: #fff;
    cursor: pointer;
    font-weight: 900;
}

.deposit-modal-open {
    overflow: hidden;
}

.deposit-fullscreen-shell .deposit-terminal {
    margin: 22px 28px 28px;
    border-radius: 22px;
    overflow: hidden;
}

.deposit-terminal {
    grid-template-columns:120px minmax(0, 1fr);
    border-radius: 0 !important;
}

.deposit-terminal-main {
    gap: 20px;
}

.deposit-terminal .payment-gui {
    grid-template-columns:repeat(auto-fit, minmax(150px, 1fr));
}

.deposit-terminal .payment-method-btn {
    border-radius: 18px;
    min-height: 122px;
    transition: transform .16s ease, border-color .16s ease, background .16s ease;
}

.deposit-terminal .payment-method-btn:hover {
    transform: translateY(-2px);
    background: #1c2538;
}

.deposit-terminal-bottom {
    padding-top: 8px;
    border-top: 1px solid rgba(255, 255, 255, .10);
}

.deposit-terminal-pay-btn {
    border-radius: 14px;
    min-height: 50px;
}

.deposit-terminal-input {
    border-radius: 14px;
}

.deposit-currency-select {
    border-radius: 12px;
}

.profile-card > .payment-box.deposit-terminal {
    display: none !important;
}

body.theme-light-red .deposit-fullscreen-backdrop {
    background: rgba(255, 245, 241, .70);
}

body.theme-light-red .deposit-fullscreen-shell {
    background: #fff8f5;
    border-color: #ead8d0;
}

body.theme-light-red .deposit-fullscreen-head h3 {
    color: #2b2220;
}

body.theme-light-red .deposit-fullscreen-close {
    color: #2b2220;
    background: #fff;
    border-color: #ead8d0;
}

@media (max-width: 760px) {
    .deposit-fullscreen-modal {
        padding: 10px;
        align-items: stretch;
    }

    .deposit-fullscreen-shell {
        max-height: calc(100vh - 20px);
        border-radius: 22px;
    }

    .deposit-fullscreen-head {
        padding: 18px 18px 0;
    }

    .deposit-fullscreen-head h3 {
        font-size: 22px;
    }

    .deposit-fullscreen-shell .deposit-terminal {
        margin: 16px;
    }
}

.profile-tab-panel-hidden-spacer {
    display: none !important;
}

.profile-tab-panel:not(.is-active) {
    display: none !important;
}

.profile-tab-panel.is-active {
    display: block !important;
}

.deposit-fullscreen-modal .profile-tab-panel, .deposit-fullscreen-modal .payment-box {
    display: grid !important;
}

#profileView .profile-tab-panel:not(.is-active) {
    display: none !important;
}

#profileView .profile-tab-panel.is-active {
    display: block !important;
}

.support-inapp-modal.hidden {
    display: none !important;
}

.support-inapp-modal {
    position: fixed;
    inset: 0;
    z-index: 230;
    display: grid;
    place-items: center;
    padding: 18px;
}

.support-inapp-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(5, 8, 14, .72);
    backdrop-filter: blur(14px);
}

.support-inapp-shell {
    position: relative;
    width: min(520px, 100%);
    max-height: min(720px, 92vh);
    display: grid;
    grid-template-rows:auto minmax(220px, 1fr) auto;
    border-radius: 26px;
    border: 1px solid rgba(255, 255, 255, .16);
    background: var(--panel);
    box-shadow: 0 28px 80px rgba(0, 0, 0, .42);
    overflow: hidden;
    animation: carnageModalIn .38s cubic-bezier(.17, .67, .3, 1.1) both;
}

.support-inapp-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    padding: 20px;
    border-bottom: 1px solid var(--line);
}

.support-inapp-kicker {
    font-size: 12px;
    font-weight: 1000;
    letter-spacing: .1em;
    color: var(--accent);
}

.support-inapp-head h3 {
    margin: 4px 0 0;
    color: var(--text);
}

.support-inapp-close {
    width: 40px;
    height: 40px;
    border-radius: 14px;
    border: 1px solid var(--line);
    background: rgba(255, 255, 255, .05);
    color: var(--text);
    font-weight: 900;
    cursor: pointer;
}

.support-messages {
    padding: 18px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    overflow: auto;
}

.support-message {
    max-width: 86%;
    padding: 11px 13px;
    border-radius: 16px;
    line-height: 1.35;
    font-weight: 700;
}

.support-message-bot {
    align-self: flex-start;
    color: var(--text);
    background: rgba(255, 255, 255, .06);
    border: 1px solid var(--line);
}

.support-message-user {
    align-self: flex-end;
    color: #fff;
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
}

.support-inapp-form {
    display: grid;
    grid-template-columns:minmax(0, 1fr) auto;
    gap: 10px;
    padding: 16px;
    border-top: 1px solid var(--line);
}

.support-inapp-form input {
    min-height: 44px;
    border-radius: 14px;
    border: 1px solid var(--line);
    background: rgba(255, 255, 255, .05);
    color: var(--text);
    padding: 0 14px;
}

.support-modal-open {
    overflow: hidden;
}

body.theme-light-red .support-inapp-shell {
    background: #fff;
}

body.theme-light-red .support-message-bot, body.theme-light-red .support-inapp-form input, body.theme-light-red .support-inapp-close {
    background: #fff8f5 !important;
}

@media (max-width: 560px) {
    .support-inapp-modal {
        padding: 10px;
        align-items: stretch;
    }

    .support-inapp-shell {
        max-height: calc(100vh - 20px);
    }

    .support-inapp-form {
        grid-template-columns:1fr;
    }
}

.profile-wallet-area {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 22px;
    margin-left: auto;
    min-width: min(420px, 42%);
}

.profile-wallet-area .profile-balance-box {
    text-align: left;
    min-width: 170px;
    transform: translateX(-18px);
}

.profile-wallet-icon {
    width: 64px;
    height: 64px;
    border-radius: 22px;
    display: grid;
    place-items: center;
    font-size: 32px;
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
    color: #fff;
    box-shadow: 0 18px 38px rgba(0, 0, 0, .24);
}

.profile-tabs {
    display: none !important;
}

.profile-areas-layout .profile-column {
    display: grid;
    gap: 18px;
}

.profile-areas-layout .profile-column.wide {
    display: grid;
    grid-template-rows:auto auto;
    gap: 18px;
}

#profileView .profile-area-card, #profileView .profile-tab-panel, #profileView .profile-tab-panel:not(.is-active), #profileView .profile-tab-panel.is-active {
    display: block !important;
}

.profile-balance-area {
    order: 1;
}

.profile-inventory-area {
    order: 1;
    min-height: 360px;
}

.profile-history-area {
    order: 2;
}

.profile-actions-area {
    order: 2;
    max-height: 520px;
    overflow: auto;
}

.profile-history-area, .profile-actions-area {
    border-color: rgba(255, 255, 255, .12);
}

.profile-history-area .payment-history-list, .profile-actions-area .activity-list {
    max-height: 420px;
    overflow: auto;
    padding-right: 4px;
}

body.theme-light-red .profile-wallet-icon {
    box-shadow: 0 18px 38px rgba(88, 166, 255, .18);
}

@media (max-width: 920px) {
    .profile-hero {
        flex-direction: row;
        align-items: center;
        gap: 10px;
    }

    .profile-wallet-area {
        min-width: auto;
        width: auto;
        justify-content: flex-end;
    }

    .profile-wallet-area .profile-balance-box {
        transform: none;
    }

    .profile-areas-layout {
        grid-template-columns:1fr;
    }
}

.profile-tabs {
    display: none !important;
}

.profile-balance-area {
    display: none !important;
}

.profile-wallet-btn {
    border: 0;
    cursor: pointer;
    transition: transform .16s ease, filter .16s ease;
}

.profile-wallet-btn:hover {
    transform: translateY(-2px) scale(1.04);
    filter: brightness(1.06);
}

.profile-history-area {
    grid-column: 2;
    grid-row: 1 / span 2;
}

.profile-actions-area.hidden {
    display: none !important;
}

.combined-history-list {
    display: grid;
    gap: 10px;
    max-height: 620px;
    overflow: auto;
    padding-right: 4px;
}

.combined-history-row {
    display: grid;
    grid-template-columns:42px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: rgba(255, 255, 255, .04);
}

.combined-history-icon {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    display: grid;
    place-items: center;
    background: rgba(255, 255, 255, .06);
}

.combined-history-row strong {
    display: block;
    color: var(--text);
}

.combined-history-row span, .combined-history-row small {
    color: var(--muted);
}

.payment-history-list.hidden {
    display: none !important;
}

body.theme-light-red .combined-history-row {
    background: rgba(255, 255, 255, .86) !important;
}

@media (max-width: 920px) {
    .profile-history-area {
        grid-column: auto;
        grid-row: auto;
    }
}

.profile-history-primary, .profile-balance-area.profile-history-primary {
    display: block !important;
}

.ops-add-item-grid, .ops-case-add-item-row {
    display: grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 14px;
}

.ops-add-item-grid .ops-field-wide {
    grid-column: span 2;
}

/* .ops-item-overview is display:flex (see the base rule above) -- this used
   to be a dead grid-template-columns override with zero effect (a leftover
   from before it was switched to flex). The real reason the name/id text
   was pushing the edit/delete buttons off narrow screens: as a flex item
   with no min-width:0, that text block never shrank below its own natural
   content width, no matter how little room was left. */
.ops-item-overview-body {
    flex: 1 1 auto;
    min-width: 0;
}

.ops-item-overview-body strong, .ops-item-overview-body span {
    overflow-wrap: anywhere;
}

.danger-btn {
    border: 1px solid rgba(88, 166, 255, .45);
    background: rgba(88, 166, 255, .12);
    color: #58A6FF;
    border-radius: 12px;
    font-weight: 900;
    cursor: pointer;
}

.ops-case-remove-item-btn {
    margin-left: 8px;
}

@media (max-width: 760px) {
    .ops-add-item-grid, .ops-case-add-item-row {
        grid-template-columns:1fr;
    }
}

.main-content {
    width: 100%;
    max-width: none;
    min-width: 0;
}

.app-shell {
    align-items: start;
}

.view {
    width: 100%;
    min-width: 0;
}

.profile-column, .profile-column.wide {
    min-width: 0;
}

.profile-actions-area {
    display: none !important;
}

.ops-add-case-grid {
    display: grid;
    grid-template-columns:repeat(5, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 14px;
}

.live-feed {
    overflow: visible !important;
}

.live-card-static {
    animation: none !important;
    transform: none !important;
    transition: none !important;
}

.roulette-windows {
    display: grid !important;
    gap: 14px !important;
}

.roulette-window.mini {
    display: block !important;
}

.roulette-lanes, .roulette-multi {
    display: grid !important;
    gap: 14px !important;
}

@media (max-width: 960px) {
    .profile-areas-layout {
        grid-template-columns:1fr !important;
    }

    .profile-inventory-area, .profile-history-primary {
        grid-column: auto !important;
        grid-row: auto !important;
    }

    .ops-add-case-grid {
        grid-template-columns:1fr;
    }
}

.empty-history {
    color: var(--muted);
    padding: 12px;
}

.ops-battle-history-row {
    display: grid;
    gap: 4px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: rgba(255, 255, 255, .04);
    margin-bottom: 10px;
}

.ops-battle-history-row strong {
    color: var(--text);
}

.ops-battle-history-row span, .ops-battle-history-row small {
    color: var(--muted);
}

.ui-fallback-node {
    display: none !important;
}

* {
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
}

*::-webkit-scrollbar {
    width: 0 !important;
    height: 0 !important;
    display: none !important;
}

.profile-history-primary, .profile-inventory-area {
    min-height: 0 !important;
    height: auto !important;
}

.profile-history-primary {
    max-height: 640px !important;
    overflow: hidden !important;
}

.profile-inventory-area {
    max-height: 360px !important;
    overflow: hidden !important;
}

.profile-inventory-area .inventory-grid {
    max-height: 250px !important;
    overflow-y: scroll !important;
    display: block !important;
    width: 100% !important;
}

.profile-inventory-area .inventory-grid::-webkit-scrollbar {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
}

.combined-history-list {
    max-height: 580px !important;
    overflow: auto !important;
    padding-right: 0 !important;
}

.combined-history-row {
    grid-template-columns:44px minmax(0, 1fr) max-content !important;
}

.combined-history-row small {
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.profile-layout.profile-areas-layout {
    margin-top: 14px !important;
}

.profile-card {
    padding: 16px !important;
}

.profile-hero {
    margin-bottom: 12px !important;
}

@media (max-width: 960px) {
    .profile-areas-layout {
        grid-template-columns:1fr !important;
    }

    .profile-history-primary, .profile-inventory-area {
        max-height: none !important;
    }
}

.inventory-open-btn, .inventory-card button:has(+ .inventory-source), .inventory-card .ghost-btn:has(+ .inventory-source) {
    display: none !important;
}

.inventory-card .inventory-actions > .ghost-btn, .inventory-card .inventory-actions > button:first-child {
    display: none !important;
}

.inventory-card .inventory-actions .inv-action-btns .sell-btn, .inventory-card .inventory-actions .inv-action-btns .inv-withdraw-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
}

.profile-history-primary {
    max-height: 520px !important;
}

.combined-history-list {
    max-height: 460px !important;
}

.profile-inventory-area {
    max-height: 260px !important;
    min-height: 0 !important;
}

.profile-inventory-area .inventory-grid {
    max-height: 190px !important;
}

.profile-card {
    padding: 14px !important;
}

.inventory-card {
    min-height: auto !important;
    padding: 14px !important;
}

.inventory-card .inventory-actions {
    display: flex !important;
    gap: 8px !important;
    flex-wrap: wrap !important;
}

.promo-banner, .auto-promo-section, .promo-panel, section:has(#promoCode), section:has(#promoTimer) {
    min-height: 0 !important;
}

.promo-hero, .promo-content, .bonus-hero {
    padding: 18px 20px !important;
    min-height: 0 !important;
}

.promo-hero h1, .bonus-hero h1, .promo-title {
    font-size: 28px !important;
    line-height: 1.05 !important;
    margin: 4px 0 8px !important;
}

.promo-hero p, .bonus-hero p {
    margin: 0 !important;
    font-size: 14px !important;
}

.promo-side, .promo-stats, .bonus-side {
    gap: 8px !important;
}

.promo-side .stat-card, .bonus-side .stat-card {
    padding: 10px 14px !important;
    min-height: 64px !important;
}

.promo-actions .open-case-btn, .promo-actions .battle-btn, #promoOpenCaseBtn, #promoBattleBtn {
    display: none !important;
}

.promo-actions, .bonus-actions {
    display: grid !important;
    grid-template-columns:1fr !important;
    gap: 8px !important;
}

.promo-actions button:not(#promoDepositBtn):not(.deposit-btn), .bonus-actions button:not(#promoDepositBtn):not(.deposit-btn) {
    display: none !important;
}

.ops-add-item-grid, .ops-add-case-grid, .ops-case-add-item-row {
    display: grid !important;
    grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
    gap: 10px !important;
    margin-bottom: 14px !important;
}

.ops-add-item-grid .ops-field-wide {
    grid-column: span 2 !important;
}

.danger-btn {
    border: 1px solid rgba(88, 166, 255, .45);
    background: rgba(88, 166, 255, .12);
    color: #58A6FF;
    border-radius: 12px;
    font-weight: 900;
    cursor: pointer;
}

@media (max-width: 960px) {
    .profile-areas-layout {
        grid-template-columns:1fr !important;
    }

    .ops-add-item-grid, .ops-add-case-grid, .ops-case-add-item-row {
        grid-template-columns:1fr !important;
    }
}

.roulette-windows.multiple {
    display: grid !important;
    grid-template-columns:1fr !important;
    gap: 16px !important;
}

.roulette-lane {
    display: grid !important;
    gap: 10px !important;
}

.roulette-window {
    overflow: hidden !important;
}

.roulette-windows.multiple {
    display: grid !important;
    grid-template-columns:1fr !important;
    gap: 16px !important;
}

.roulette-lane {
    display: grid !important;
    gap: 10px !important;
}

.roulette-window {
    overflow: hidden !important;
}

.profile-areas-layout {
    display: grid !important;
    grid-template-columns:1fr 1fr !important;
    align-items: stretch !important;
    justify-content: center !important;
    gap: 16px !important;
}

.profile-history-primary, .profile-inventory-area {
    width: 100% !important;
    min-width: 0 !important;
    height: 480px !important;
    max-height: 480px !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
}

.profile-inventory-area .inventory-grid {
    flex: 1 !important;
    height: auto !important;
    max-height: none !important;
    overflow: auto !important;
    display: grid !important;
    grid-template-columns:repeat(auto-fill, minmax(200px, 1fr)) !important;
    gap: 10px !important;
    align-content: start !important;
    justify-content: center !important;
    justify-items: center !important;
}

.profile-inventory-area .inventory-card {
    min-height: 120px !important;
}

.profile-inventory-area .inventory-head {
    margin-bottom: 8px !important;
}

.ops-balance-form {
    display: grid;
    grid-template-columns:1.2fr .7fr 1.4fr auto auto;
    gap: 10px;
    align-items: end;
}

.ops-balance-result {
    margin-top: 12px;
}

.ops-users-list {
    margin-top: 14px;
    display: grid;
    gap: 8px;
}

.ops-user-row {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border-radius: 14px;
    border: 1px solid var(--line);
    background: rgba(255, 255, 255, .04);
    color: var(--text);
    cursor: pointer;
}

.ops-user-row span {
    display: grid;
    text-align: left;
}

.ops-user-row em {
    color: var(--muted);
    font-style: normal;
    font-size: 12px;
}

.ops-user-row b {
    color: var(--accent);
}

@media (max-width: 1180px) {
    .profile-areas-layout {
        grid-template-columns:1fr !important;
    }

    .profile-inventory-area {
        grid-column: auto !important;
        height: auto !important;
        min-height: 420px !important;
        max-height: none !important;
    }

    .profile-inventory-area .inventory-grid {
        height: auto !important;
        max-height: 420px !important;
    }

    .ops-balance-form {
        grid-template-columns:1fr;
    }
}

#profileView .profile-inventory-area {
    display: flex !important;
    flex-direction: column !important;
    min-height: 0 !important;
    max-height: min(70vh, 760px) !important;
    overflow: hidden !important;
}

#profileView .profile-inventory-area .inventory-grid {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch;
}

#profileView .profile-inventory-area .inventory-card {
    min-height: 168px !important;
}

#profileView .profile-inventory-area .inventory-card .inventory-actions {
    margin-top: auto !important;
}

#profileAvatarLarge img, #userAvatar img {
    width: 100% !important;
    height: 100% !important;
    display: block !important;
    object-fit: cover !important;
    object-position: center center !important;
    border-radius: inherit !important;
}

.roulette-window {
    overflow: hidden;
    isolation: isolate;
    background: radial-gradient(circle at 50% 10%, rgba(var(--accent-rgb), .14), transparent 34%), linear-gradient(180deg, rgba(255, 255, 255, .035), rgba(255, 255, 255, .012));
}

.roulette-window::before, .roulette-window::after {
    content: '';
    position: absolute;
    top: 0;
    width: 18%;
    height: 100%;
    z-index: 2;
    pointer-events: none;
}

.roulette-window::before {
    left: 0;
    background: linear-gradient(90deg, rgba(10, 13, 18, .92), rgba(10, 13, 18, .25), transparent);
}

.roulette-window::after {
    right: 0;
    background: linear-gradient(270deg, rgba(10, 13, 18, .92), rgba(10, 13, 18, .25), transparent);
}

.roulette-velocity-fx {
    display: none;
}

.roulette-window.is-spinning .roulette-track {
    filter: none;
}

.roulette-window.is-finished .roulette-track {
    filter: none;
}

.roulette-pointer {
    width: 3px !important;
    background: linear-gradient(180deg, transparent, #fff 14%, var(--accent-3) 50%, #fff 86%, transparent) !important;
    box-shadow: 0 0 18px rgba(255, 255, 255, .52), 0 0 34px rgba(var(--accent-rgb), .34) !important;
}

.roulette-pointer::before, .roulette-pointer::after {
    content: '';
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    border-left: 10px solid transparent;
    border-right: 10px solid transparent;
}

.roulette-pointer::before {
    top: 0;
    border-top: 12px solid #fff;
    filter: drop-shadow(0 0 8px rgba(255, 255, 255, .45));
}

.roulette-pointer::after {
    bottom: 0;
    border-bottom: 12px solid #fff;
    filter: drop-shadow(0 0 8px rgba(255, 255, 255, .45));
}

.roulette-item.winner-focus {
    position: relative;
    z-index: 4;
    transform: translateY(-6px) scale(1.03) !important;
    border-color: rgba(var(--accent-3-rgb), .88) !important;
    box-shadow: 0 0 0 2px rgba(255, 255, 255, .18), 0 0 32px rgba(var(--accent-rgb), .38), inset 0 0 26px rgba(var(--accent-3-rgb), .16) !important;
    animation: rouletteWinnerPulse 1.05s ease-in-out infinite;
}

.roulette-item.winner-focus::after {
    content: '';
    position: absolute;
    inset: -2px;
    border-radius: inherit;
    pointer-events: none;
    background: linear-gradient(120deg, transparent 18%, rgba(255, 255, 255, .22), transparent 82%);
    animation: rouletteWinnerShine 1.25s ease-in-out infinite;
}

/* One-shot "impact" flourish for the exact instant a reel lands — layered
   on top of winner-focus's perpetual pulse/shine above, not replacing it.
   .winner-landed is added alongside .winner-focus only in finishSpin() and
   stripped again after ~600ms (see app.js), so it plays once as a
   punctuation mark on landing rather than becoming another ambient loop. */
.roulette-item.winner-landed {
    animation: rouletteLandingBounce .5s cubic-bezier(.25, .9, .3, 1.3) 1 both;
}

.roulette-item.winner-landed::before {
    content: '';
    position: absolute;
    inset: -4px;
    border-radius: inherit;
    pointer-events: none;
    border: 2px solid rgba(255, 255, 255, .75);
    z-index: 1;
    animation: rouletteLandingRing .55s ease-out 1 both;
}

@keyframes rouletteLandingBounce {
    0%   { transform: translateY(-6px) scale(.92); }
    45%  { transform: translateY(-10px) scale(1.16); }
    70%  { transform: translateY(-4px) scale(.98); }
    100% { transform: translateY(-6px) scale(1.03); }
}

@keyframes rouletteLandingRing {
    0%   { opacity: .9; transform: scale(.6); }
    100% { opacity: 0; transform: scale(1.9); }
}

@keyframes rouletteWindowLandShake {
    0%, 100% { transform: translateX(0); }
    20% { transform: translateX(-3px); }
    40% { transform: translateX(3px); }
    60% { transform: translateX(-2px); }
    80% { transform: translateX(2px); }
}

.roulette-window.landing-shake {
    animation: rouletteWindowLandShake .28s ease-out 1;
}

@keyframes rouletteVelocity {
    from {
        transform: translateX(0);
    }
    to {
        transform: translateX(-44px);
    }
}

@keyframes rouletteWinnerPulse {
    0%, 100% {
        box-shadow: 0 0 0 2px rgba(255, 255, 255, .18), 0 0 28px rgba(var(--accent-rgb), .32), inset 0 0 22px rgba(var(--accent-3-rgb), .12);
    }
    50% {
        box-shadow: 0 0 0 2px rgba(255, 255, 255, .28), 0 0 44px rgba(var(--accent-rgb), .52), inset 0 0 34px rgba(var(--accent-3-rgb), .26);
    }
}

@keyframes rouletteWinnerShine {
    0% {
        opacity: 0;
        transform: translateX(-80%);
    }
    35% {
        opacity: 1;
    }
    100% {
        opacity: 0;
        transform: translateX(80%);
    }
}

@media (prefers-reduced-motion: reduce) {
    .roulette-window.is-spinning .roulette-velocity-fx, .roulette-item.winner-focus, .roulette-item.winner-focus::after,
    .roulette-item.winner-landed, .roulette-item.winner-landed::before, .roulette-window.landing-shake {
        animation: none;
    }
}

.roulette-window.spin-impact.is-spinning::before, .roulette-window.spin-countdown.is-spinning::before, .roulette-window.spin-pulse.is-spinning::before {
    background: linear-gradient(90deg, rgba(6, 7, 12, .96), rgba(6, 7, 12, .32), transparent);
}

.roulette-window.spin-impact.is-spinning::after, .roulette-window.spin-countdown.is-spinning::after, .roulette-window.spin-pulse.is-spinning::after {
    background: linear-gradient(270deg, rgba(6, 7, 12, .96), rgba(6, 7, 12, .32), transparent);
}

.roulette-window.spin-thriller.is-spinning .roulette-track, .roulette-window.spin-breathe.is-spinning .roulette-track, .roulette-window.spin-tension.is-spinning .roulette-track, .roulette-window.spin-suspense.is-spinning .roulette-track {
    filter: none;
}

.roulette-window.spin-thriller.is-spinning::before, .roulette-window.spin-breathe.is-spinning::before, .roulette-window.spin-tension.is-spinning::before, .roulette-window.spin-suspense.is-spinning::before {
    background: linear-gradient(90deg, rgba(4, 5, 10, .98), rgba(4, 5, 10, .40), transparent);
    width: 22%;
}

.roulette-window.spin-thriller.is-spinning::after, .roulette-window.spin-breathe.is-spinning::after, .roulette-window.spin-tension.is-spinning::after, .roulette-window.spin-suspense.is-spinning::after {
    background: linear-gradient(270deg, rgba(4, 5, 10, .98), rgba(4, 5, 10, .40), transparent);
    width: 22%;
}

.roulette-window.spin-thriller.is-spinning .roulette-pointer, .roulette-window.spin-breathe.is-spinning .roulette-pointer, .roulette-window.spin-tension.is-spinning .roulette-pointer, .roulette-window.spin-suspense.is-spinning .roulette-pointer {
    animation: roulettePointerDrama 1.6s ease-in-out infinite;
}

@keyframes roulettePointerDrama {
    0%, 100% {
        box-shadow: 0 0 16px rgba(255, 255, 255, .42), 0 0 28px rgba(var(--accent-rgb), .28);
    }
    50% {
        box-shadow: 0 0 30px rgba(255, 255, 255, .75), 0 0 52px var(--accent), 0 0 72px var(--accent);
    }
}

.roulette-window.spin-marathon.is-spinning .roulette-track, .roulette-window.spin-ceremony.is-spinning .roulette-track, .roulette-window.spin-epoch.is-spinning .roulette-track, .roulette-window.spin-trance.is-spinning .roulette-track, .roulette-window.spin-legend.is-spinning .roulette-track, .roulette-window.spin-ritual.is-spinning .roulette-track {
    filter: none;
}

.roulette-window.spin-ceremony.is-spinning::before, .roulette-window.spin-epoch.is-spinning::before, .roulette-window.spin-trance.is-spinning::before, .roulette-window.spin-legend.is-spinning::before, .roulette-window.spin-ritual.is-spinning::before {
    background: linear-gradient(90deg, rgba(3, 4, 8, .99), rgba(3, 4, 8, .45), transparent);
    width: 24%;
}

.roulette-window.spin-ceremony.is-spinning::after, .roulette-window.spin-epoch.is-spinning::after, .roulette-window.spin-trance.is-spinning::after, .roulette-window.spin-legend.is-spinning::after, .roulette-window.spin-ritual.is-spinning::after {
    background: linear-gradient(270deg, rgba(3, 4, 8, .99), rgba(3, 4, 8, .45), transparent);
    width: 24%;
}

.roulette-window.spin-trance.is-spinning .roulette-pointer, .roulette-window.spin-legend.is-spinning .roulette-pointer, .roulette-window.spin-ritual.is-spinning .roulette-pointer {
    animation: roulettePointerCeremony 2.0s ease-in-out infinite;
}

@keyframes roulettePointerCeremony {
    0%, 100% {
        box-shadow: 0 0 14px rgba(255, 255, 255, .35), 0 0 24px rgba(var(--accent-rgb), .24);
        width: 3px !important;
    }
    45% {
        box-shadow: 0 0 36px rgba(255, 255, 255, .82), 0 0 60px var(--accent), 0 0 90px var(--accent);
        width: 5px !important;
    }
}

#rouletteModal .roulette-windows.clean-sell-layout, #rouletteModal .roulette-windows.single, #rouletteModal .roulette-windows.multiple {
    width: 100% !important;
    max-width: 100% !important;
}

#rouletteModal .roulette-windows.clean-sell-layout.single {
    display: grid !important;
    grid-template-columns:minmax(0, 1fr) !important;
}

#rouletteModal .roulette-lane {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    align-items: stretch !important;
}

#rouletteModal .roulette-windows.clean-sell-layout.single .roulette-lane {
    max-width: 980px !important;
    margin: 0 auto !important;
}

#rouletteModal .roulette-lane .roulette-window {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    min-height: 230px !important;
}

#rouletteModal .roulette-window.single {
    min-height: 220px !important;
}

#rouletteModal .roulette-window.mini {
    min-height: 175px !important;
}

#rouletteModal .roulette-track {
    left: 0 !important;
    right: auto !important;
    top: 22px !important;
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    width: max-content !important;
    min-width: max-content !important;
    max-width: none !important;
}

#rouletteModal .roulette-item {
    flex: 0 0 150px !important;
    min-width: 150px !important;
    width: 150px !important;
    height: 180px !important;
    overflow: hidden !important;
}

#rouletteModal .roulette-item.compact {
    flex-basis: 122px !important;
    min-width: 122px !important;
    width: 122px !important;
    height: 122px !important;
}

#rouletteModal .roulette-name {
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

#rouletteModal .roulette-lane-actions {
    width: 100% !important;
    justify-content: center !important;
}

/* Мульти-открытие: полноразмерная "Продать" под каждой рулеткой была
   отдельным блоком в потоке, из-за чего рулетки не могли встать вплотную
   друг к другу -- отступ между ними складывался из grid-gap ПЛЮС высоты
   этого блока. Теперь для .multiple кнопка -- компактный круглый оверлей в
   углу самой карточки (position:absolute, вынута из потока), лента остаётся
   доступна для точечной продажи, а рулетки наконец стоят строго по gap
   контейнера. Одиночное открытие (.single) не тронуто -- там своя, более
   специфичная #rouletteModal .roulette-windows.clean-sell-layout.single
   .roulette-lane ветка выше этот селектор не матчит вовсе. */
#rouletteModal .roulette-windows.multiple .roulette-lane {
    position: relative !important;
}

#rouletteModal .roulette-windows.multiple .roulette-lane-actions {
    position: absolute !important;
    top: 8px !important;
    right: 8px !important;
    left: auto !important;
    bottom: auto !important;
    width: auto !important;
    min-height: 0 !important;
    z-index: 5;
}

#rouletteModal .roulette-windows.multiple .roulette-lane-actions .wheel-sell-btn-compact {
    min-width: 0 !important;
    width: 34px !important;
    height: 34px !important;
    padding: 0 !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, .4) !important;
}

#rouletteModal .roulette-windows.multiple .roulette-lane-actions .wheel-sell-btn-compact img.solar-icon {
    width: 16px !important;
    height: 16px !important;
    margin: 0 !important;
}

#rouletteModal .roulette-windows.multiple .roulette-lane-actions .sold-inline-note {
    min-width: 0;
    height: auto;
    padding: 4px 9px;
    font-size: 10px;
    white-space: nowrap;
    border-radius: 20px;
    background: rgba(5, 7, 13, .88);
    box-shadow: 0 4px 14px rgba(0, 0, 0, .4);
}

#rouletteModal .roulette-windows.multiple .lane-actions-placeholder {
    display: none !important;
}

@media (max-width: 760px) {
    #rouletteModal .roulette-windows.clean-sell-layout.single .roulette-lane {
        max-width: 100% !important;
    }

    #rouletteModal .roulette-lane .roulette-window {
        min-height: 190px !important;
    }

    #rouletteModal .roulette-window.single {
        min-height: 175px !important;
    }

    #rouletteModal .roulette-item {
        flex-basis: 132px !important;
        min-width: 132px !important;
        width: 132px !important;
        height: 140px !important;
    }
}

#rouletteModal:not(.hidden) {
    display: grid !important;
}

#rouletteModal .modal-card {
    overflow-x: hidden !important;
}

#rouletteModal .roulette-windows.clean-sell-layout {
    display: grid !important;
    width: 100% !important;
    min-width: 0 !important;
}

#rouletteModal .roulette-windows.clean-sell-layout.single {
    grid-template-columns:1fr !important;
}

#rouletteModal .roulette-windows.clean-sell-layout.multiple {
    grid-template-columns:1fr !important;
}

#rouletteModal .roulette-lane {
    display: grid !important;
    grid-template-columns:1fr !important;
    width: 100% !important;
    min-width: 0 !important;
}

#rouletteModal.count-3 .roulette-windows.clean-sell-layout.multiple {
    display: grid !important;
    grid-template-columns:1fr 1fr !important;
    gap: 12px !important;
}

#rouletteModal.count-3 .roulette-windows.clean-sell-layout.multiple .roulette-lane:nth-child(3) {
    grid-column: 1 / -1 !important;
    width: calc(50% - 6px) !important;
    margin: 0 auto !important;
}

#rouletteModal.count-5 .roulette-windows.clean-sell-layout.multiple {
    display: grid !important;
    grid-template-columns:repeat(6, 1fr) !important;
    gap: 12px !important;
}

#rouletteModal.count-5 .roulette-windows.clean-sell-layout.multiple .roulette-lane {
    grid-column: span 2 !important;
}

#rouletteModal.count-5 .roulette-windows.clean-sell-layout.multiple .roulette-lane:nth-child(4) {
    grid-column: 2 / 4 !important;
}

#rouletteModal.count-5 .roulette-windows.clean-sell-layout.multiple .roulette-lane:nth-child(5) {
    grid-column: 4 / 6 !important;
}

@media (max-width: 760px) {
    #rouletteModal.count-3 .roulette-windows.clean-sell-layout.multiple, #rouletteModal.count-5 .roulette-windows.clean-sell-layout.multiple {
        grid-template-columns:1fr !important;
    }

    #rouletteModal.count-3 .roulette-windows.clean-sell-layout.multiple .roulette-lane:nth-child(3), #rouletteModal.count-5 .roulette-windows.clean-sell-layout.multiple .roulette-lane:nth-child(n) {
        grid-column: auto !important;
        width: 100% !important;
        margin: 0 !important;
    }
}

#rouletteModal .roulette-lane .roulette-window {
    display: block !important;
    position: relative !important;
    width: 100% !important;
    min-width: 320px !important;
    justify-self: center !important;
    opacity: 1 !important;
    visibility: visible !important;
}

#rouletteModal .roulette-track {
    position: absolute !important;
    display: flex !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: translate3d(0, 0, 0);
}

#rouletteModal .roulette-item {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    text-align: center !important;
    opacity: 1 !important;
    visibility: visible !important;
    flex-shrink: 0 !important;
    color: var(--text) !important;
}

#rouletteModal .roulette-pointer {
    left: 50% !important;
    right: auto !important;
}

@media (max-width: 760px) {
    #rouletteModal .roulette-lane .roulette-window {
        width: 100% !important;
        min-width: 0 !important;
    }
}

#rouletteModal, #rouletteModal.hidden, #rouletteModal.modal.hidden, #rouletteModal.roulette-modal.hidden {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

#rouletteModal.roulette-open {
    position: fixed !important;
    inset: 0 !important;
    display: grid !important;
    place-items: center !important;
    width: 100vw !important;
    height: 100vh !important;
    min-height: 100vh !important;
    padding: 12px !important;
    margin: 0 !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: none !important;
    z-index: 9999 !important;
    background: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    transform: none !important;
}

#rouletteModal.roulette-open .modal-card {
    position: relative !important;
    display: block !important;
    width: min(1200px, calc(100vw - 24px)) !important;
    max-width: calc(100vw - 24px) !important;
    max-height: min(92vh, 900px) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    margin: 0 !important;
    padding: 24px !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: none !important;
    translate: none !important;
    border-radius: 0 !important;
    background: radial-gradient(circle at 50% -10%, rgba(var(--accent-rgb), .18), transparent 42%),
    linear-gradient(180deg, rgba(16, 22, 26, .98), rgba(9, 13, 16, .98)) !important;
    border: 1px solid rgba(var(--accent-3-rgb), .16) !important;
    box-shadow: 0 24px 70px rgba(0, 0, 0, .62), 0 0 34px rgba(var(--accent-rgb), .14) !important;
}

body.theme-light-red #rouletteModal.roulette-open .modal-card {
    background: radial-gradient(circle at 50% -10%, rgba(88, 166, 255, .15), transparent 42%),
    linear-gradient(180deg, rgba(255, 248, 245, .98), rgba(255, 242, 237, .98)) !important;
    border: 1px solid rgba(88, 166, 255, .16) !important;
    box-shadow: 0 24px 70px rgba(0, 0, 0, .12), 0 0 34px rgba(88, 166, 255, .08) !important;
}

body.theme-light-red #rouletteModal.roulette-open .modal-top h3, body.theme-light-red #rouletteModal.roulette-open #rouletteTitle {
    color: #0f172a !important;
}

body.theme-light-red #rouletteModal.roulette-open .modal-top .muted {
    color: #667085 !important;
}

body.theme-light-red #rouletteModal.roulette-open .roulette-item {
    background: rgba(255, 255, 255, .86) !important;
    border-color: #e8edf5 !important;
    color: #0f172a !important;
}

body.theme-light-red #rouletteModal.roulette-open .roulette-name {
    color: #0f172a !important;
}

body.theme-light-red #rouletteModal.roulette-open .roulette-value {
    color: #667085 !important;
}

body.theme-light-red #rouletteModal.roulette-open .icon-close {
    background: rgba(255, 255, 255, .86) !important;
    border: 1px solid #e8edf5 !important;
    color: #0f172a !important;
}

#rouletteModal.roulette-open .icon-close {
    position: absolute !important;
    top: 8px !important;
    right: 8px !important;
    z-index: 50 !important;
    width: 34px !important;
    height: 34px !important;
    pointer-events: auto !important;
    cursor: pointer !important;
}

#rouletteModal.roulette-open .modal-top {
    margin: 0 0 8px !important;
    padding-right: 40px !important;
    gap: 8px !important;
}

#rouletteModal.roulette-open #rouletteTitle, #rouletteModal.roulette-open .modal-top h3 {
    font-size: 15px !important;
    line-height: 1.15 !important;
}

#rouletteModal.roulette-open .modal-top .muted {
    font-size: 11px !important;
    line-height: 1.25 !important;
}

#rouletteModal.roulette-open .roulette-windows {
    display: grid !important;
    grid-template-columns:1fr !important;
    gap: 8px !important;
    overflow: visible !important;
    margin: 8px 0 !important;
    padding: 0 !important;
}

/* Было одно жёсткое значение (190px/132px) на ВСЕ ширины экрана без единого
   @media — из четырёх конкурирующих источников высоты .roulette-window
   именно этот блок побеждает в каскаде (та же специфичность 1 id + 2 класса,
   что и у #rouletteModal .roulette-lane .roulette-window, но идёт позже в
   файле), из-за чего desktop-вариант (230px, см. #rouletteModal .roulette-lane
   .roulette-window выше) и mobile-вариант (190px, там же в @media max-width:
   760px) оба были мертвым кодом — отсюда и "то один отступ, то другой,
   в зависимости от экрана". Ниже — те же самые числа, что уже были заданы
   выше по каскаду для двух версий, просто теперь реально доходят до экрана
   каждая на своей ширине. */
@media (min-width: 761px) {
    #rouletteModal.roulette-open .roulette-window {
        height: 230px !important;
        min-height: 230px !important;
        max-height: 230px !important;
        border-radius: 0 !important;
    }

    #rouletteModal.roulette-open .roulette-window.mini {
        height: 175px !important;
        min-height: 175px !important;
        max-height: 175px !important;
    }
}

@media (max-width: 760px) {
    #rouletteModal.roulette-open .roulette-window {
        height: 190px !important;
        min-height: 190px !important;
        max-height: 190px !important;
        border-radius: 0 !important;
    }

    #rouletteModal.roulette-open .roulette-window.mini {
        height: 132px !important;
        min-height: 132px !important;
        max-height: 132px !important;
    }
}

#rouletteModal.roulette-open .roulette-track {
    top: 16px !important;
    gap: 8px !important;
    width: max-content !important;
    min-width: max-content !important;
}

#rouletteModal.roulette-open .roulette-item {
    flex: 0 0 118px !important;
    width: 118px !important;
    min-width: 118px !important;
    border-radius: 0 !important;
    padding: 8px !important;
}

#rouletteModal.roulette-open .roulette-item.compact {
    flex-basis: 96px !important;
    width: 96px !important;
    min-width: 96px !important;
}

/* Высота карточек тут раньше была одним жёстким числом (154px/96px) на все
   ширины — тем же багом, что и у .roulette-window/.roulette-window.mini
   выше (см. комментарий там): эти числа были подогнаны под mobile-высоту
   окна (190px/132px), а с тех пор как у desktop появилась своя, большая
   высота (230px/175px), карточки внутри остались низкими -- отсюда "куча
   пустого места" под брейнротами в .roulette-window.mini на десктопе (63px
   пустоты: 175px окно − 16px отступ трека − 96px карточка). Высота карточки
   подогнана под высоту своего окна на каждой ширине отдельно, с тем же
   нижним отступом (~20px), что был у исходных mobile-чисел. */
@media (min-width: 761px) {
    #rouletteModal.roulette-open .roulette-item {
        height: 194px !important;
    }

    #rouletteModal.roulette-open .roulette-item.compact {
        height: 139px !important;
    }
}

@media (max-width: 760px) {
    #rouletteModal.roulette-open .roulette-item {
        height: 154px !important;
    }

    #rouletteModal.roulette-open .roulette-item.compact {
        height: 96px !important;
    }
}

#rouletteModal.roulette-open .roulette-emoji {
    font-size: 28px !important;
    min-height: 40px !important;
}

#rouletteModal.roulette-open .roulette-item.compact .roulette-emoji {
    min-height: 30px !important;
}

#rouletteModal.roulette-open .roulette-item.compact .roulette-image {
    width: 30px !important;
    height: 30px !important;
}

#rouletteModal.roulette-open .roulette-name {
    font-size: 12px !important;
    margin-top: 4px !important;
}

#rouletteModal.roulette-open .roulette-value {
    font-size: 11px !important;
}

#rouletteModal.roulette-open .modal-foot {
    margin-top: 8px !important;
    padding-top: 8px !important;
    gap: 8px !important;
}

#rouletteModal.roulette-open #rouletteResult {
    max-height: 80px !important;
    overflow: auto !important;
    font-size: 12px !important;
}

@media (max-width: 380px) {
    #rouletteModal.roulette-open .modal-card {
        width: calc(100vw - 16px) !important;
        max-width: calc(100vw - 16px) !important;
    }
}

body.in-battle .sidebar-battles, body.in-battle #battlesSidebar, body.in-battle .right-battles, body.in-battle .battles-panel {
    display: none !important;
}

.battle-history-sidebar, #battleHistoryList {
    display: none !important;
}

.ops-support-card {
    grid-column: 1 / -1;
}

/* ── Бонусы: тёплый золотой акцент вместо общего сайтового синего ──────────
   Раньше эта вкладка была визуально неотличима от любой другой: тот же
   --muted/--accent/--line, что и everywhere. Не "прибавить яркость серому",
   а осознанно выделить именно эту вкладку как "премиальную" зону заработка —
   тёплое золото тематически ложится на реферальный доход/уровни, и даёт
   реальный контраст с холодным синим акцентом остального сайта, а не просто
   более светлый серый. Свои custom properties, скоуплены на #bonusView,
   общая палитра сайта не трогается вообще. */
#bonusView {
    --bonus-gold: #e8b84f;
    --bonus-gold-soft: rgba(232, 184, 79, .14);
    --bonus-gold-line: rgba(232, 184, 79, .32);
    --bonus-gold-glow: rgba(232, 184, 79, .18);
}

#bonusView .section-head h2 {
    background: linear-gradient(135deg, #fff, var(--bonus-gold));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

#bonusView .panel-title {
    color: var(--bonus-gold) !important;
}

#bonusView .bonus-section-card {
    border-color: var(--bonus-gold-line) !important;
    box-shadow: 0 4px 28px rgba(0, 0, 0, .5), 0 0 40px var(--bonus-gold-glow) !important;
    position: relative;
    overflow: hidden;
}

/* Тонкая золотая полоса сверху каждой карточки -- маленький, но заметный
   акцент, не перекрашивающий всю тёмную заливку карточки (та идёт через
   !important общесайтовым правилом, трогать его рискованно), достаточный,
   чтобы вкладка сразу читалась как "другая". */
#bonusView .bonus-section-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--bonus-gold), transparent);
}

#bonusView .ref-code-row,
#bonusView .ref-link-row {
    border-color: var(--bonus-gold-line);
    background: var(--bonus-gold-soft);
}

#bonusView .ref-level-badge {
    background: linear-gradient(135deg, var(--bonus-gold), #c9932a);
}

#bonusView .ref-progress-fill {
    background: linear-gradient(90deg, #c9932a, var(--bonus-gold));
    box-shadow: 0 0 10px var(--bonus-gold-glow);
}

#bonusView .ref-level-item.is-active {
    border-color: var(--bonus-gold);
    background: var(--bonus-gold-soft);
}

#bonusView .ref-level-item-pct {
    color: var(--bonus-gold);
}

#bonusView #refClaimBtn:not(.is-inactive),
#bonusView #partnerClaimBtn:not(.is-inactive) {
    background: linear-gradient(135deg, var(--bonus-gold), #c9932a) !important;
    box-shadow: 0 6px 22px var(--bonus-gold-glow) !important;
}

.bonus-layout {
    display: grid;
    grid-template-columns:1fr 1fr;
    gap: 18px;
    align-items: start;
}

.bonus-col {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.bonus-section-card {
    padding: 20px;
}

.ref-code-row {
    display: flex;
    align-items: center;
    gap: 10px;
    background: rgba(255, 255, 255, .04);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 12px 16px;
    margin-top: 10px;
}

.ref-code-val {
    flex: 1;
    font-size: 18px;
    font-weight: 800;
    letter-spacing: .06em;
    color: var(--text);
    word-break: break-all;
}

.ref-code-copy-btn.is-copied {
    color: var(--success, #54c48b);
}

/* The actual shareable https://telegram.me/...?start=ref_CODE link, shown
   under the code itself with its own copy button -- previously only existed
   as uncopyable plain text (partner card) or not at all (plain referral
   card). Reuses .ref-code-row's box treatment but tighter (a full URL is
   long -- font-size/padding trimmed so it doesn't visually outweigh the
   short code above it). */
.ref-link-row {
    display: flex;
    align-items: center;
    gap: 8px;
    background: rgba(255, 255, 255, .03);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 8px 12px;
    margin-top: 8px;
}

.ref-link-val {
    flex: 1;
    min-width: 0;
    font-size: 12px;
    color: var(--muted);
    word-break: break-all;
}

.ref-link-copy-btn {
    flex: 0 0 auto;
    font-size: 15px;
    line-height: 1;
    padding: 6px 10px;
}

.ref-level-row {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 14px;
}

.ref-level-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
    color: #fff;
    font-weight: 800;
    font-size: 14px;
    padding: 6px 14px;
    border-radius: 99px;
    width: fit-content;
}

.ref-progress-wrap {
    margin-bottom: 16px;
}

.ref-progress-track {
    height: 6px;
    background: rgba(255, 255, 255, .08);
    border-radius: 99px;
    overflow: hidden;
}

.ref-progress-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--accent), var(--accent-2));
    border-radius: 99px;
    transition: width .4s ease;
}

.ref-levels-grid {
    display: grid;
    grid-template-columns:repeat(5, 1fr);
    gap: 6px;
    margin-top: 4px;
}

.ref-level-item {
    text-align: center;
    background: rgba(255, 255, 255, .03);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 8px 4px;
    font-size: 11px;
    display: flex;
    flex-direction: column;
    gap: 3px;
    transition: border-color .15s;
}

.ref-level-item.is-active {
    border-color: var(--accent);
    background: rgba(var(--accent-rgb, 176, 53, 34), .12);
}

.ref-level-item.is-passed {
    opacity: .5;
}

.ref-level-item-icon {
    font-size: 18px;
    line-height: 1;
}

.ref-level-item-icon img {
    width: 30px;
    height: 30px;
    object-fit: contain;
    display: block;
    margin: 0 auto;
}

#refLevelIcon img {
    width: 22px;
    height: 22px;
    object-fit: contain;
    vertical-align: middle;
    display: inline-block;
}

.ref-level-item-name {
    font-weight: 700;
    color: var(--text);
}

.ref-level-item-req {
    color: var(--muted);
}

.ref-level-item-pct {
    color: var(--accent-3, var(--accent));
    font-weight: 700;
}

.ref-level-item-bonus {
    color: var(--muted);
}

.ref-level-item-bonus.empty {
    color: var(--muted);
    opacity: .4;
}

.ref-growth-period-row {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 10px 0 14px;
}

.ref-growth-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-bottom: 10px;
    font-size: 12px;
    color: var(--muted);
}

.ref-growth-legend-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.ref-growth-legend-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    display: inline-block;
}

.ref-growth-chart {
    width: 100%;
    height: 140px;
    display: block;
}

.ref-growth-chart-labels {
    display: flex;
    justify-content: space-between;
    font-size: 10px;
    color: var(--muted);
    margin-top: 4px;
}

.ref-growth-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 140px;
    text-align: center;
    color: var(--muted);
    font-size: 12.5px;
    line-height: 1.5;
    background: rgba(255, 255, 255, .03);
    border: 1px dashed var(--line);
    border-radius: 14px;
    padding: 12px;
}

.ref-growth-empty-icon {
    font-size: 28px;
    opacity: .6;
}

/* Hover tooltip on the growth charts -- positioned via JS (left/right %,
   matching the hovered day's x-position), CSS only owns the box's own look.
   #partnerGrowthChartWrap/#refGrowthChartWrap need position:relative for
   this absolute box to anchor against the chart itself, not the page. */
#partnerGrowthChartWrap, #refGrowthChartWrap {
    position: relative;
}
.ref-growth-hover-line {
    pointer-events: none;
}
.ref-growth-tooltip {
    display: none;
    position: absolute;
    top: 8px;
    min-width: 168px;
    background: rgba(20, 22, 32, .96);
    border: 1px solid var(--line);
    border-radius: 10px !important;
    padding: 10px 12px;
    font-size: 12px;
    line-height: 1.6;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .5);
    pointer-events: none;
    z-index: 5;
    transform: translateX(-50%);
}
.ref-growth-tooltip-date {
    font-weight: 700;
    color: var(--text);
    margin-bottom: 6px;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--line);
}
.ref-growth-tooltip-row {
    display: flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
}
.ref-growth-tooltip-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
}
.ref-growth-tooltip-label {
    color: var(--muted);
    flex: 1;
}
.ref-growth-tooltip-value {
    color: var(--text);
    font-weight: 700;
    font-family: 'DM Mono', monospace;
}

.ref-growth-stat-grid {
    display: grid;
    grid-template-columns:repeat(auto-fit, minmax(120px, 1fr));
    gap: 12px;
    margin-top: 14px;
}

.ref-growth-stat-grid strong {
    display: block;
    font-size: 18px;
    font-weight: 800;
    color: var(--text);
    margin-top: 2px;
}

.ref-growth-headline {
    text-align: center;
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid var(--line);
    font-size: 14px;
    color: var(--muted);
}

.ref-growth-headline b {
    font-size: 22px;
    font-weight: 800;
    color: #6ddc9e;
    margin: 0 4px;
}

.ref-apply-row {
    display: flex;
    gap: 8px;
    align-items: center;
}

.ref-apply-result.is-shake {
    animation: shake .3s ease;
}

@keyframes shake {
    0%, 100% {
        transform: translateX(0);
    }
    25% {
        transform: translateX(-6px);
    }
    75% {
        transform: translateX(6px);
    }
}

.ref-apply-success, .ref-apply-error, .promo-success, .promo-error {
    padding: 10px 14px;
    border-radius: 12px;
    font-size: 13px;
}

.ref-apply-success, .promo-success {
    background: rgba(84, 196, 139, .12);
    border: 1px solid rgba(84, 196, 139, .3);
    color: #54c48b;
    display: flex;
    align-items: center;
    gap: 10px;
}

.ref-apply-error, .promo-error {
    background: rgba(56, 104, 192, .1);
    border: 1px solid rgba(56, 104, 192, .25);
    color: #58a6ff;
}

.bonus-promo-card {
    min-height: 240px;
}

@media (max-width: 700px) {
    .bonus-layout {
        grid-template-columns: minmax(0, 1fr);
    }

    .ref-levels-grid {
        grid-template-columns:repeat(5, 1fr);
    }

    /* .case-showcase-meta's 3-4 flex:1 stat boxes (Ставка/Рефералов/Заработано
       всего/Выплачено всего on the ref/partner cards here) have no min-width:0,
       so multi-word Russian labels like "Заработано" refused to shrink below
       their own min-content width — the row (and the whole card + grid column
       above it, since a plain 1fr track's auto-minimum is its content's
       min-content) blew out past the viewport instead of wrapping. Wrapping
       onto 2 rows of 2 fixes it at the source instead of just clamping the
       symptom with overflow-x. */
    #bonusView .case-showcase-meta {
        flex-wrap: wrap;
    }

    #bonusView .case-showcase-meta div {
        flex: 1 1 calc(50% - 6px);
        min-width: 0;
    }
}

.ops-support-stats {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    padding: 10px 0 12px;
    border-bottom: 1px solid var(--line);
    margin-bottom: 12px;
    font-size: 13px;
}

.ops-support-stat {
    color: var(--muted);
}

.ops-support-stat strong {
    color: var(--text);
    font-size: 16px;
    margin-right: 2px;
}

.ops-support-stat.is-unread strong {
    color: var(--accent);
}

.ops-support-stat.is-open strong {
    color: #22c55e;
}

.ops-support-stat.is-closed strong {
    color: var(--muted);
}

.ops-support-filter-tabs {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 12px;
}

.ops-support-filter-btn {
    background: transparent;
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: 4px 14px;
    font-size: 12px;
    color: var(--muted);
    cursor: pointer;
    transition: all 0.15s;
}

.ops-support-filter-btn:hover {
    border-color: var(--accent);
    color: var(--text);
}

.ops-support-filter-btn.is-active {
    background: var(--accent);
    border-color: var(--accent);
    color: #fff;
}

.ops-support-panes {
    display: grid;
    grid-template-columns:280px 1fr;
    gap: 12px;
    height: 520px;
    overflow: hidden;
}

.ops-support-chatlist-pane {
    border: 1px solid var(--line);
    border-radius: 12px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
}

.ops-support-chat-row {
    padding: 10px 12px;
    border-bottom: 1px solid var(--line);
    cursor: pointer;
    transition: background 0.15s;
    flex-shrink: 0;
}

.ops-support-chat-row:last-child {
    border-bottom: none;
}

.ops-support-chat-row:hover {
    background: rgba(255, 255, 255, 0.05);
}

.ops-support-chat-row.is-active {
    background: rgba(141, 91, 255, 0.15);
    border-left: 3px solid var(--accent);
}

.ops-support-chat-row.has-attention {
    background: rgba(141, 91, 255, 0.08);
}

.ops-support-chat-row.is-closed {
    opacity: 0.55;
}

.ops-support-chat-row.is-closed.has-attention {
    opacity: 1;
    background: rgba(56, 104, 192, 0.1);
    border-left: 3px solid #3868c0;
}

.ops-support-chat-row-name {
    font-size: 13px;
    font-weight: 600;
    color: var(--text);
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 3px;
}

.ops-support-chat-row-preview {
    font-size: 12px;
    color: var(--muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ops-support-chat-row-time {
    font-size: 11px;
    color: var(--muted);
    margin-top: 2px;
}

.ops-support-badge {
    font-size: 10px;
    font-weight: 700;
    padding: 1px 6px;
    border-radius: 10px;
    text-transform: uppercase;
}

.ops-support-badge.is-unread {
    background: var(--accent);
    color: #fff;
}

.ops-support-badge.is-closed {
    background: var(--line);
    color: var(--muted);
}

.ops-support-badge.is-reopened {
    background: #3868c0;
    color: #fff;
    animation: support-pulse 1.5s ease-in-out infinite;
}

@keyframes support-pulse {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0.6;
    }
}

.ops-support-chat-pane {
    border: 1px solid var(--line);
    border-radius: 12px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.ops-support-chat-empty {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: var(--muted);
    font-size: 14px;
}

.ops-support-chat-detail {
    flex: 1;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.ops-support-chat-detail.hidden {
    display: none;
}

.ops-support-chat-head {
    padding: 10px 14px;
    border-bottom: 1px solid var(--line);
    flex-shrink: 0;
}

.ops-support-chat-head-name {
    font-size: 14px;
    font-weight: 700;
    color: var(--text);
    margin-bottom: 2px;
}

.ops-support-chat-head-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
}

.ops-support-head-uid {
    color: var(--muted);
}

.ops-support-head-status {
    font-size: 11px;
    font-weight: 600;
    padding: 1px 8px;
    border-radius: 10px;
}

.ops-support-head-status.is-open {
    background: rgba(34, 197, 94, 0.18);
    color: #22c55e;
}

.ops-support-head-status.is-closed {
    background: rgba(255, 255, 255, 0.07);
    color: var(--muted);
}

.ops-support-head-status.is-reopened {
    background: rgba(56, 104, 192, 0.18);
    color: #58a6ff;
}

.ops-support-chat-messages {
    flex: 1;
    overflow-y: auto;
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.ops-support-msg-bubble {
    max-width: 80%;
    padding: 8px 12px;
    border-radius: 12px;
    font-size: 13px;
    line-height: 1.45;
}

.ops-support-msg-bubble.is-user {
    background: var(--panel-2);
    border: 1px solid var(--line);
    align-self: flex-start;
    border-bottom-left-radius: 4px;
}

.ops-support-msg-bubble.is-staff {
    background: rgba(141, 91, 255, 0.18);
    border: 1px solid rgba(141, 91, 255, 0.3);
    align-self: flex-end;
    border-bottom-right-radius: 4px;
}

.ops-support-bubble-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 4px;
    font-size: 11px;
}

.ops-support-bubble-meta strong {
    color: var(--text);
}

.ops-support-bubble-text {
    color: var(--text);
    word-break: break-word;
}

.ops-support-chat-reply-box {
    padding: 10px;
    border-top: 1px solid var(--line);
    flex-shrink: 0;
}

.ops-support-reply-textarea {
    width: 100%;
    background: var(--panel-2);
    border: 1px solid var(--line);
    border-radius: 8px;
    color: var(--text);
    padding: 8px 10px;
    font-size: 13px;
    resize: vertical;
    min-height: 56px;
    margin-bottom: 8px;
    box-sizing: border-box;
    font-family: inherit;
}

.ops-support-reply-textarea:focus {
    outline: none;
    border-color: var(--accent);
}

.ops-support-reply-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.ops-support-empty {
    padding: 24px;
    text-align: center;
    color: var(--muted);
    font-size: 13px;
}

@media (max-width: 800px) {
    .ops-support-panes {
        grid-template-columns:1fr;
        height: auto;
    }

    .ops-support-chatlist-pane {
        max-height: 240px;
    }

    .ops-support-chat-pane {
        min-height: 400px;
    }
}

.ops-support-list {
    display: none;
}

.ops-support-reply-row {
    display: none;
}

.dashboard-grid {
    display: grid;
    gap: 20px;
}

.dash-section {
    background: linear-gradient(180deg, rgba(255, 255, 255, .055), rgba(255, 255, 255, .025));
    border: 1px solid rgba(255, 255, 255, .09);
    border-radius: 20px;
    padding: 20px;
    box-shadow: 0 22px 50px rgba(0, 0, 0, .26);
    position: relative;
    overflow: hidden;
}

.dash-section::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .18), transparent);
    pointer-events: none;
}

.dash-section-title {
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .02em;
    margin-bottom: 16px;
    color: #efe7ff;
}

.dash-cards {
    display: grid;
    grid-template-columns:repeat(auto-fill, minmax(160px, 1fr));
    gap: 10px;
}

.dash-card {
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(255, 255, 255, .07);
    border-radius: 14px;
    padding: 14px 16px;
    display: grid;
    gap: 4px;
    transition: .18s ease;
}

.dash-card:hover {
    background: rgba(255, 255, 255, .07);
    transform: translateY(-1px);
}

.dash-label {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: rgba(228, 220, 255, .5);
}

.dash-value {
    font-size: 22px;
    font-weight: 800;
    color: #fff;
    line-height: 1.2;
}

.dash-value.green {
    color: #4ade80;
}

.dash-value.gold {
    color: #facc15;
}

.dash-value.blue {
    color: #60a5fa;
}

.dash-value.pink {
    color: #f472b6;
}

.dash-value.purple {
    color: #a78bfa;
}

.dash-value.red {
    color: #f87171;
}

.dash-value.cyan {
    color: #22d3ee;
}

.dash-top-items {
    display: grid;
    gap: 8px;
}

.dash-top-item {
    display: grid;
    grid-template-columns:28px 32px 1fr 60px;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    border-radius: 12px;
    background: rgba(255, 255, 255, .03);
    border: 1px solid rgba(255, 255, 255, .06);
    transition: .18s ease;
}

.dash-top-item:hover {
    background: rgba(255, 255, 255, .06);
}

.dash-top-rank {
    font-size: 13px;
    font-weight: 700;
    color: rgba(228, 220, 255, .4);
    text-align: center;
}

.dash-top-emoji {
    font-size: 20px;
    text-align: center;
}

.dash-top-name {
    font-size: 13px;
    font-weight: 600;
    color: #efe7ff;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dash-top-count {
    font-size: 13px;
    font-weight: 700;
    color: #a78bfa;
    text-align: right;
}

.dash-system-grid {
    display: grid;
    grid-template-columns:repeat(auto-fill, minmax(180px, 1fr));
    gap: 10px;
}

.dash-system-item {
    background: rgba(255, 255, 255, .03);
    border: 1px solid rgba(255, 255, 255, .06);
    border-radius: 12px;
    padding: 12px 14px;
    display: grid;
    gap: 2px;
}

.dash-system-label {
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: rgba(228, 220, 255, .4);
}

.dash-system-value {
    font-size: 13px;
    font-weight: 600;
    color: #cdbdf6;
    word-break: break-all;
}

@media (max-width: 600px) {
    .dash-cards {
        grid-template-columns:repeat(2, 1fr);
    }

    .dash-section {
        padding: 16px;
    }

    .dash-top-item {
        grid-template-columns:24px 28px 1fr 50px;
        padding: 8px 12px;
    }
}

* {
    border-radius: 0 !important;
}

html, body {
    font-family: 'Syne', 'Segoe UI', system-ui, sans-serif !important;
}

button, input, select, textarea {
    font-family: inherit !important;
}

a {
    text-decoration: none;
    color: inherit;
}

#profileAvatarLarge, #userAvatar {
    border-radius: 50% !important;
}

.online-dot, .live-dot, .badge-dot {
    border-radius: 50% !important;
}

::-webkit-scrollbar {
    width: 3px;
    height: 3px;
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background: rgba(56, 104, 192, .22);
}

::-webkit-scrollbar-thumb:hover {
    background: rgba(56, 104, 192, .42);
}

html, body, body.theme-dark-blue, body.theme-carnage {
    background: linear-gradient(180deg, #0c1220 0%, #050810 70%) !important;
    color: #FFFFFF !important;
}

.sidebar-live {
    background: linear-gradient(180deg, rgba(5, 7, 13, .98), rgba(2, 3, 6, .95)) !important;
    border-color: rgba(255, 255, 255, .06) !important;
    backdrop-filter: none !important;
}

.sidebar-title, .panel-title {
    font-family: 'Syne', sans-serif !important;
    font-weight: 800 !important;
    letter-spacing: .2em !important;
    text-transform: uppercase !important;
    font-size: 10px !important;
    color: #5A7086 !important;
}

.live-card {
    background: rgba(6, 9, 16, .7) !important;
    border-color: rgba(255, 255, 255, .06) !important;
    box-shadow: none !important;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease !important;
}

.live-card:hover {
    border-color: rgba(56, 104, 192, .3) !important;
    box-shadow: 0 4px 20px rgba(56, 104, 192, .1) !important;
    transform: translateX(2px) !important;
}

.live-item {
    font-family: 'Syne', sans-serif !important;
    font-weight: 700 !important;
    font-size: 13px !important;
}

.live-user {
    color: #5A7086 !important;
    font-family: 'Syne', sans-serif !important;
    font-size: 11px !important;
}

.topbar {
    background: rgba(3, 4, 7, .97) !important;
    border-color: rgba(255, 255, 255, .07) !important;
    box-shadow: 0 8px 32px rgba(0, 0, 0, .6) !important;
}

.brand-btn {
    background: rgba(56, 104, 192, .08) !important;
    border-color: rgba(56, 104, 192, .24) !important;
    color: #58A6FF !important;
    font-family: 'Syne', sans-serif !important;
    font-weight: 800 !important;
    font-size: 15px !important;
    letter-spacing: .1em !important;
    text-transform: uppercase !important;
    transition: all .2s ease !important;
}

.brand-logo-icon {
    width: 1.6em;
    height: 1.6em;
    object-fit: contain;
    vertical-align: middle;
    position: relative;
    top: -.19em;
    margin: 0 .12em;
    display: inline-block;
}

.brand-btn:hover {
    background: rgba(56, 104, 192, .14) !important;
    border-color: rgba(56, 104, 192, .45) !important;
    box-shadow: 0 0 22px rgba(56, 104, 192, .18) !important;
}

.nav-btn {
    background: transparent !important;
    border: none !important;
    color: #FFFFFF !important;
    font-family: 'Syne', sans-serif !important;
    font-weight: 700 !important;
    font-size: 11px !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
    transition: background .18s ease !important;
    position: relative !important;
    overflow: hidden !important;
    border-radius: 12px !important;
}

.nav-btn::after {
    display: none !important;
}

.nav-btn:hover {
    background: rgba(255, 255, 255, .13) !important;
}

.nav-btn.active {
    background: linear-gradient(135deg, #3868C0, #2A54A0) !important;
    color: #fff !important;
    box-shadow: 0 4px 16px rgba(56, 104, 192, .30) !important;
}

.ghost-btn {
    background: transparent !important;
    border: 1px solid rgba(255, 255, 255, .15) !important;
    color: var(--text) !important;
    transition: background .15s ease, border-color .15s ease !important;
}

.ghost-btn:hover {
    background: rgba(255, 255, 255, .08) !important;
    border-color: rgba(255, 255, 255, .28) !important;
}

.ghost-btn.active {
    background: linear-gradient(135deg, #3868C0, #2A54A0) !important;
    border-color: transparent !important;
    color: #fff !important;
}

.case-edit-color-row {
    display: flex;
    gap: 8px;
    align-items: center;
}

.case-edit-color-picker {
    width: 44px;
    height: 44px;
    padding: 2px;
    border: 1px solid var(--line);
    background: rgba(255, 255, 255, .04);
    cursor: pointer;
    flex-shrink: 0;
}

.case-edit-status {
    font-size: 13px;
    text-align: center;
    min-height: 18px;
    transition: color .2s;
}

.case-edit-status.is-ok {
    color: #4ade80 !important;
}

.case-edit-status.is-err {
    color: #58A6FF !important;
}

#caseEditBtn {
    align-self: flex-start;
    padding: 8px 16px !important;
    font-size: 13px !important;
}

#caseEditorView {
    padding: 0 0 48px;
}

.ced-topbar {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 20px 0 18px;
    border-bottom: 1px solid var(--line);
    margin-bottom: 24px;
    flex-wrap: wrap;
}

.ced-topbar-info {
    display: flex;
    align-items: center;
    gap: 12px;
}

.ced-topbar-emoji {
    font-size: 36px;
    line-height: 1;
}

.ced-topbar-title {
    font-size: 20px;
    font-weight: 700;
    margin: 0 0 2px;
}

.ced-rtp-tag {
    font-size: 12px;
    font-weight: 600;
    color: var(--accent);
    background: rgba(107, 70, 193, .18);
    padding: 2px 8px;
    border-radius: 0;
    display: inline-block;
}

.ced-layout {
    display: grid;
    grid-template-columns:340px 1fr;
    gap: 20px;
    align-items: start;
}

@media (max-width: 900px) {
    .ced-layout {
        grid-template-columns:1fr;
    }
}

.ced-meta-card, .ced-loot-card {
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.ced-section-title {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: 2px;
}

.ced-meta-grid {
    display: grid;
    grid-template-columns:1fr 1fr;
    gap: 10px;
}

@media (max-width: 500px) {
    .ced-meta-grid {
        grid-template-columns:1fr;
    }
}

.ced-field {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.ced-field-full {
    grid-column: 1/-1;
}

.ced-label {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--muted);
}

.ced-meta-actions {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 4px;
}

.ced-loot-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 6px;
}

.ced-loot-summary {
    font-size: 12px;
}

.ced-add-row {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

.ced-weight-mini {
    width: 80px !important;
    flex-shrink: 0;
}

.ced-rtp-row {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.ced-status-row {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    margin-top: 8px;
}

.ced-rtp-label {
    font-size: 12px;
    margin-right: 2px;
}

.ced-search-row {
    display: flex;
    gap: 8px;
    align-items: center;
}

.ced-search-row input {
    flex: 1;
}

.ced-loot-table {
    display: flex;
    flex-direction: column;
    gap: 4px;
    max-height: 600px;
    overflow-y: auto;
    padding-right: 4px;
}

.ced-loot-row {
    display: grid;
    grid-template-columns:32px 1fr 90px 110px 36px;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    background: rgba(255, 255, 255, .03);
    border: 1px solid rgba(255, 255, 255, .05);
    transition: background .15s;
}

.ced-loot-row:hover {
    background: rgba(255, 255, 255, .055);
}

.ced-loot-item-info {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.ced-loot-item-img {
    width: 56px;
    height: 56px;
    object-fit: contain;
    flex-shrink: 0;
    border-radius: 0;
}

.ced-loot-item-emoji {
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 32px;
    flex-shrink: 0;
}

.ced-loot-item-meta {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
}

.ced-loot-item-name {
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: block;
}

.ced-loot-item-sub {
    font-size: 11px;
}

.ced-loot-weight-wrap {
    display: flex;
    align-items: center;
}

.ced-loot-weight-input {
    width: 100% !important;
    text-align: center;
    padding: 6px 4px !important;
}

.ced-pct-wrap {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.ced-pct-text {
    font-size: 11px;
    font-weight: 600;
    color: var(--accent);
    text-align: right;
}

.ced-pct-bar {
    height: 3px;
    background: rgba(255, 255, 255, .08);
    overflow: hidden;
}

.ced-pct-fill {
    height: 100%;
    background: var(--accent);
    transition: width .2s;
}

.rarity-badge {
    display: none;
}

.ld-config-grid {
    display: grid;
    grid-template-columns:1fr 1fr;
    gap: 20px;
}

@media (max-width: 720px) {
    .ld-config-grid {
        grid-template-columns:1fr;
    }
}

.ld-config-block {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.ld-interval-row {
    display: flex;
    align-items: center;
    gap: 8px;
}

.ld-slider {
    flex: 1;
    accent-color: var(--accent);
    height: 4px;
    cursor: pointer;
}

.ld-interval-num {
    width: 90px !important;
    flex-shrink: 0;
}

.ld-interval-unit {
    font-size: 12px;
    flex-shrink: 0;
}

.ld-case-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
    max-height: 300px;
    overflow-y: auto;
    padding-right: 4px;
}

.ld-case-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 7px 10px;
    background: rgba(255, 255, 255, .03);
    border: 1px solid rgba(255, 255, 255, .05);
    cursor: pointer;
    transition: background .12s;
}

.ld-case-row:hover {
    background: rgba(255, 255, 255, .055);
}

.ld-case-row input[type="checkbox"] {
    width: 16px;
    height: 16px;
    accent-color: var(--accent);
    cursor: pointer;
    flex-shrink: 0;
}

.ld-case-emoji {
    font-size: 18px;
    flex-shrink: 0;
}

.ld-case-name {
    font-size: 13px;
    font-weight: 600;
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ld-case-price {
    font-size: 11px;
    color: var(--muted);
    flex-shrink: 0;
}

.ld-save-row {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 4px;
}

@keyframes bcmOverlayIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes bcmCardIn {
    from {
        opacity: 0;
        transform: translateY(18px) scale(.96);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

#battleCreateOpenBtn {
    padding: 10px 18px !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    letter-spacing: .03em !important;
    white-space: nowrap;
    gap: 6px;
    position: relative;
    overflow: hidden;
}

#battleCreateOpenBtn::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, .12) 50%, transparent 100%);
    transform: translateX(-100%);
    transition: transform .4s ease;
}

#battleCreateOpenBtn:hover::before {
    transform: translateX(100%);
}

.primary-btn {
    background: linear-gradient(135deg, #3868C0, #2A54A0) !important;
    color: #fff !important;
    font-family: 'Syne', sans-serif !important;
    font-weight: 800 !important;
    font-size: 11px !important;
    letter-spacing: .1em !important;
    text-transform: uppercase !important;
    box-shadow: 0 6px 22px rgba(56, 104, 192, .36) !important;
    transition: all .2s ease !important;
    position: relative !important;
    overflow: hidden !important;
}

.primary-btn::before {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    background: linear-gradient(135deg, rgba(255, 255, 255, .15), transparent 50%) !important;
    opacity: 0 !important;
    transition: opacity .2s ease !important;
}

.primary-btn:hover {
    filter: brightness(1.1) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 10px 32px rgba(88, 166, 255, .48) !important;
}

.primary-btn:hover::before {
    opacity: 1 !important;
}

.primary-btn:active {
    transform: translateY(0) scale(.97) !important;
    box-shadow: 0 4px 14px rgba(56, 104, 192, .32) !important;
}

#openSelectedCaseBtn, #createBattleBtn, #startFuseBtn, #openLadderModeBtn, .deposit-terminal-pay-btn, .ops-stretch-btn, .ops-save-btn {
    background: linear-gradient(135deg, #3868C0, #2A54A0) !important;
    box-shadow: 0 6px 22px rgba(56, 104, 192, .36) !important;
    color: #fff !important;
    font-weight: 800 !important;
}

#openSelectedCaseBtn:hover, #createBattleBtn:hover, #startFuseBtn:hover {
    filter: brightness(1.1) !important;
    transform: translateY(-2px) !important;
}

.user-box {
    background: rgba(255, 255, 255, .04) !important;
    border-color: rgba(255, 255, 255, .07) !important;
    transition: all .2s ease !important;
}

.user-box:hover {
    border-color: rgba(56, 104, 192, .32) !important;
    background: rgba(56, 104, 192, .06) !important;
}

.balance-chip {
    background: rgba(255, 255, 255, .04) !important;
    border-color: rgba(255, 255, 255, .07) !important;
    font-family: 'Syne', sans-serif !important;
    font-weight: 800 !important;
}

.hero-banner {
    background: rgba(4, 6, 12, .88) !important;
    border-color: rgba(255, 255, 255, .07) !important;
    box-shadow: 0 4px 30px rgba(0, 0, 0, .5) !important;
    position: relative !important;
    overflow: hidden !important;
}

.hero-banner::before {
    content: 'WIN' !important;
    position: absolute !important;
    right: -8px !important;
    bottom: -30px !important;
    font-family: 'Syne', sans-serif !important;
    font-size: 200px !important;
    font-weight: 800 !important;
    color: rgba(30, 64, 130, .05) !important;
    line-height: 1 !important;
    pointer-events: none !important;
    user-select: none !important;
    z-index: 0 !important;
    letter-spacing: -.02em !important;
}

.hero-banner::after {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 2px !important;
    background: linear-gradient(90deg, transparent, #3868C0 40%, transparent) !important;
    pointer-events: none !important;
}

.hero-copy, .promo-card {
    position: relative !important;
    z-index: 1 !important;
}

.hero-badge {
    background: linear-gradient(135deg, rgba(56, 104, 192, .9), rgba(30, 64, 130, .8)) !important;
    color: #fff !important;
    font-family: 'Syne', sans-serif !important;
    font-weight: 800 !important;
    font-size: 10px !important;
    letter-spacing: .14em !important;
    text-transform: uppercase !important;
}

.hero-copy h1 {
    font-family: 'Syne', sans-serif !important;
    font-size: 26px !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: .02em !important;
    line-height: 1.1 !important;
    color: #FFFFFF !important;
    max-width: none !important;
}

.promo-stat {
    background: rgba(4, 6, 12, .7) !important;
    border-color: rgba(255, 255, 255, .07) !important;
    transition: all .2s ease !important;
}

.promo-stat:hover {
    border-color: rgba(56, 104, 192, .32) !important;
    box-shadow: 0 0 20px rgba(56, 104, 192, .1) !important;
}

.promo-stat span {
    font-family: 'Syne', sans-serif !important;
    letter-spacing: .12em !important;
    text-transform: uppercase !important;
    font-size: 9px !important;
    color: #5A7086 !important;
}

.promo-stat strong {
    font-family: 'Syne', sans-serif !important;
    font-weight: 800 !important;
    font-size: 22px !important;
    color: #58A6FF !important;
}

.hero-banner, .profile-card, .case-card, .inventory-card, .item-hero, .item-related-panel, .profile-hero, .case-showcase, .case-info-panel, .fuse-panel, .inventory-panel {
    background: rgba(4, 6, 12, .88) !important;
    border-color: rgba(255, 255, 255, .07) !important;
    box-shadow: 0 4px 24px rgba(0, 0, 0, .5) !important;
}

.case-card {
    position: relative !important;
    overflow: hidden !important;
    transition: all .25s ease !important;
}

.case-card::after {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 2px !important;
    background: linear-gradient(90deg, transparent, #3868C0, transparent) !important;
    transform: scaleX(0) !important;
    transform-origin: center !important;
    transition: transform .3s ease !important;
    pointer-events: none !important;
    z-index: 3 !important;
}

.case-card:hover {
    transform: translateY(-5px) !important;
    border-color: rgba(56, 104, 192, .38) !important;
    box-shadow: 0 0 36px rgba(56, 104, 192, .14), 0 8px 28px rgba(0, 0, 0, .6) !important;
}

.case-card:hover::after {
    transform: scaleX(1) !important;
}

.case-card:active {
    transform: translateY(-1px) scale(.98) !important;
}

.case-title {
    font-family: 'Syne', sans-serif !important;
    font-weight: 800 !important;
    font-size: 17px !important;
    text-transform: uppercase !important;
    letter-spacing: .03em !important;
}

.case-subtitle {
    color: #5A7086 !important;
    font-family: 'Syne', sans-serif !important;
    font-size: 12px !important;
}

.case-price {
    font-family: 'DM Mono', monospace !important;
    font-weight: 500 !important;
    font-size: 16px !important;
    color: #FFFFFF !important;
    letter-spacing: .01em !important;
}

.case-price-quest {
    color: #e8c840 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
}

.case-price-quest img.solar-icon {
    width: 1em !important;
    height: 1em !important;
}

.case-card.case-card-quest {
    border-color: rgba(232, 200, 64, .28) !important;
}

.case-ribbon {
    font-family: 'Syne', sans-serif !important;
    font-weight: 800 !important;
    font-size: 9px !important;
    letter-spacing: .12em !important;
    text-transform: uppercase !important;
    background: rgba(56, 104, 192, .1) !important;
    border-color: rgba(56, 104, 192, .2) !important;
    color: #58A6FF !important;
}

.case-visual {
    background: rgba(3, 5, 9, .6) !important;
    border-color: rgba(255, 255, 255, .07) !important;
}

.section-head h2 {
    font-family: 'Syne', sans-serif !important;
    font-weight: 800 !important;
    font-size: 26px !important;
    text-transform: uppercase !important;
    letter-spacing: .05em !important;
    color: #FFFFFF !important;
}

.section-head span, .eyebrow {
    color: #5A7086 !important;
    font-family: 'Syne', sans-serif !important;
    font-size: 12px !important;
    font-weight: 600 !important;
}

input, select, textarea, .search-wrap input, .ops-input, .ops-select, .auth-input, .ops-weight-input, .ops-image-input, .ops-icon-size-input, .ops-case-description-input, .deposit-terminal-input {
    background: rgba(255, 255, 255, .04) !important;
    border-color: rgba(255, 255, 255, .08) !important;
    color: #FFFFFF !important;
    font-family: 'Syne', sans-serif !important;
    font-weight: 500 !important;
    transition: all .2s ease !important;
}

input:focus, select:focus, textarea:focus, .ops-input:focus, .auth-input:focus {
    border-color: rgba(56, 104, 192, .5) !important;
    box-shadow: 0 0 18px rgba(56, 104, 192, .12), 0 0 0 3px rgba(56, 104, 192, .08) !important;
    outline: none !important;
    transform: translateY(-1px) !important;
}

input::placeholder, textarea::placeholder, .ops-input::placeholder, .auth-input::placeholder {
    color: #5A7086 !important;
    opacity: 1 !important;
}

.loot-card, .inventory-card, .target-card, .related-card {
    background: rgba(5, 7, 13, .7) !important;
    border-color: rgba(255, 255, 255, .07) !important;
    transition: all .18s ease !important;
}

.loot-card:hover, .inventory-card:hover, .target-card:hover, .related-card:hover {
    transform: translateY(-3px) !important;
    border-color: rgba(56, 104, 192, .3) !important;
    box-shadow: 0 6px 22px rgba(56, 104, 192, .1) !important;
}

.target-card.active {
    outline: 2px solid rgba(56, 104, 192, .4) !important;
    background: rgba(56, 104, 192, .1) !important;
}

.loot-name, .item-name, .target-name, .roulette-name {
    font-family: 'Syne', sans-serif !important;
    font-weight: 800 !important;
}

.loot-value, .item-value, .target-value, .roulette-value {
    color: #5A7086 !important;
    font-family: 'Syne', sans-serif !important;
}

.loot-chip {
    background: rgba(5, 7, 13, .7) !important;
    border-color: rgba(255, 255, 255, .07) !important;
    transition: all .18s ease !important;
}

.loot-chip:hover {
    border-color: rgba(56, 104, 192, .28) !important;
    transform: translateX(2px) !important;
}

.modal {
    background: rgba(2, 2, 4, .88) !important;
}

.modal-card {
    background: linear-gradient(180deg, #080b15, #030509) !important;
    border-color: rgba(56, 104, 192, .14) !important;
    box-shadow: 0 40px 90px rgba(0, 0, 0, .6) !important;
}

.icon-close {
    background: rgba(255, 255, 255, .06) !important;
    color: #fff !important;
    transition: all .18s ease !important;
}

.icon-close:hover {
    background: rgba(56, 104, 192, .16) !important;
    border-color: rgba(56, 104, 192, .3) !important;
}

.roulette-window {
    background: rgba(4, 6, 12, .7) !important;
    border-color: rgba(255, 255, 255, .07) !important;
}

.roulette-pointer {
    background: linear-gradient(180deg, #58A6FF, #fff, #3868C0) !important;
    box-shadow: 0 0 22px rgba(88, 166, 255, .55) !important;
    animation: pointerPulse 1.5s ease-in-out infinite !important;
}

.roulette-item {
    background: rgba(5, 7, 13, .7) !important;
    border-color: rgba(255, 255, 255, .07) !important;
}

.roulette-item.near-top-focus {
    box-shadow: 0 0 0 1px rgba(56, 104, 192, .3), 0 0 28px rgba(56, 104, 192, .2) !important;
    transform: translateY(-1px) !important;
}

.roulette-browser-edge {
    background: linear-gradient(90deg, transparent, rgba(2, 2, 4, .5), rgba(2, 2, 4, .96)) !important;
}

.roulette-near-top-flash {
    background: radial-gradient(circle at 50% 50%, rgba(56, 104, 192, .22), transparent 32%),
    radial-gradient(circle at 50% 18%, rgba(88, 166, 255, .18), transparent 28%) !important;
}

.speed-toggle {
    background: rgba(5, 7, 13, .7) !important;
    border-color: rgba(255, 255, 255, .07) !important;
}

.speed-toggle-pill {
    background: linear-gradient(135deg, #3868C0, #2A54A0) !important;
    box-shadow: 0 6px 16px rgba(56, 104, 192, .3) !important;
}

.speed-toggle-btn {
    font-family: 'Syne', sans-serif !important;
    font-weight: 700 !important;
    color: #5A7086 !important;
    transition: color .18s ease !important;
}

.speed-toggle-btn.active {
    color: #fff !important;
}

.wheel-sell-btn {
    background: linear-gradient(135deg, #3868C0, #2A54A0) !important;
    box-shadow: 0 6px 18px rgba(56, 104, 192, .3) !important;
    font-family: 'Syne', sans-serif !important;
    font-weight: 800 !important;
}

.wheel-sell-btn:hover {
    box-shadow: 0 10px 26px rgba(88, 166, 255, .42) !important;
    transform: translateY(-1px) scale(1.04) !important;
}

.ops-item-picker-trigger {
    display: flex;
    align-items: center;
    gap: 8px;
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 8px;
    padding: 8px 14px;
    cursor: pointer;
    color: var(--text);
    font-size: 13px;
    min-width: 200px;
    flex: 1;
    transition: border-color .2s, background .2s;
}

.ops-item-picker-trigger:hover {
    background: rgba(255, 255, 255, .08);
    border-color: rgba(255, 255, 255, .24);
}

.ops-item-picker-label {
    flex: 1;
    text-align: left;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.br-picker-overlay {
    position: fixed;
    inset: 0;
    z-index: 9999;
    background: rgba(0, 0, 0, .72);
    backdrop-filter: blur(6px);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity .22s ease;
}

.br-picker-overlay.br-picker-visible {
    opacity: 1;
}

.br-picker-overlay.br-picker-visible .br-picker-modal {
    transform: translateY(0) scale(1);
}

.br-picker-modal {
    background: linear-gradient(160deg, #16090a 0%, #0e0508 100%);
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 18px;
    width: min(860px, 95vw);
    max-height: 80vh;
    display: flex;
    flex-direction: column;
    box-shadow: 0 32px 80px rgba(0, 0, 0, .7), 0 0 0 1px rgba(88, 166, 255, .08);
    transform: translateY(24px) scale(.97);
    transition: transform .22s cubic-bezier(.34, 1.46, .64, 1);
    overflow: hidden;
}

.br-picker-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 22px 14px;
    border-bottom: 1px solid rgba(255, 255, 255, .07);
}

.br-picker-title {
    font-size: 16px;
    font-weight: 700;
    letter-spacing: -.01em;
}

.br-picker-close {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, .14);
    background: rgba(255, 255, 255, .05);
    color: var(--muted);
    cursor: pointer;
    font-size: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background .15s, color .15s;
}

.br-picker-close:hover {
    background: rgba(88, 166, 255, .18);
    color: #fff;
    border-color: rgba(88, 166, 255, .4);
}

.br-picker-search-row {
    padding: 12px 22px 8px;
}

.br-picker-search {
    width: 100%;
    background: rgba(255, 255, 255, .05);
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 10px;
    padding: 10px 14px;
    color: var(--text);
    font-size: 14px;
    outline: none;
    transition: border-color .2s, background .2s;
    box-sizing: border-box;
}

.br-picker-search:focus {
    border-color: rgba(88, 166, 255, .5);
    background: rgba(255, 255, 255, .07);
}

.br-picker-search::placeholder {
    color: rgba(255, 255, 255, .3);
}

.br-picker-filters {
    display: flex;
    gap: 6px;
    padding: 0 22px 10px;
    flex-wrap: wrap;
}

.br-picker-filter {
    padding: 5px 12px;
    border-radius: 20px;
    border: 1px solid rgba(255, 255, 255, .12);
    background: rgba(255, 255, 255, .04);
    color: rgba(255, 255, 255, .5);
    cursor: pointer;
    font-size: 12px;
    font-weight: 600;
    transition: all .15s;
    white-space: nowrap;
}

.br-picker-filter small {
    opacity: .65;
    margin-left: 3px;
}

.br-picker-filter:hover {
    background: rgba(255, 255, 255, .09);
    color: #fff;
}

.br-picker-filter.active {
    background: rgba(255, 255, 255, .12);
    color: #fff;
    border-color: rgba(255, 255, 255, .28);
    box-shadow: 0 0 10px rgba(255, 255, 255, .06);
}

.br-picker-filter[data-rarity]:not([data-rarity=""]).active {
    background: color-mix(in srgb, var(--rc) 18%, transparent);
    border-color: color-mix(in srgb, var(--rc) 55%, transparent);
    color: var(--rc);
    box-shadow: 0 0 12px color-mix(in srgb, var(--rc) 22%, transparent);
}

.br-picker-grid {
    display: grid;
    grid-template-columns:repeat(auto-fill, minmax(120px, 1fr));
    gap: 10px;
    padding: 4px 22px 22px;
    overflow-y: auto;
    flex: 1;
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, .12) transparent;
}

.br-picker-grid::-webkit-scrollbar {
    width: 5px;
}

.br-picker-grid::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, .14);
    border-radius: 3px;
}

.br-picker-card {
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 12px;
    padding: 10px 8px 10px;
    cursor: pointer;
    text-align: center;
    transition: transform .15s, border-color .15s, background .15s, box-shadow .15s;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}

.br-picker-card:hover {
    transform: translateY(-3px) scale(1.03);
    background: rgba(255, 255, 255, .08);
    border-color: rgba(255, 255, 255, .22);
    box-shadow: 0 8px 24px rgba(0, 0, 0, .4);
}

.br-picker-card.br-picker-card-selected {
    transform: scale(1.07);
    border-color: rgba(255, 255, 255, .5) !important;
    box-shadow: 0 0 24px rgba(255, 255, 255, .2) !important;
}

.br-picker-card-img {
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.br-picker-card-img img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: 6px;
}

.br-picker-fallback {
    font-size: 32px;
    line-height: 1;
}

.br-picker-card-name {
    font-size: 11px;
    font-weight: 700;
    line-height: 1.2;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    width: 100%;
}

.br-picker-card-meta {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    width: 100%;
}

.br-picker-rarity-badge {
    display: none;
}

.br-picker-value {
    font-size: 11px;
    color: rgba(255, 255, 255, .5);
}

.br-picker-value small {
    font-size: 9px;
}

.br-picker-empty {
    grid-column: 1/-1;
    text-align: center;
    padding: 40px;
    color: rgba(255, 255, 255, .3);
    font-size: 14px;
}

.ops-surface {
    background: rgba(4, 6, 12, .75) !important;
    border-color: rgba(255, 255, 255, .08) !important;
    box-shadow: 0 20px 46px rgba(0, 0, 0, .3) !important;
}

.ops-surface::before {
    background: linear-gradient(90deg, transparent, rgba(56, 104, 192, .12), transparent) !important;
}

.ops-card {
    background: rgba(4, 6, 12, .7) !important;
    border-color: rgba(255, 255, 255, .07) !important;
}

.ops-input, .ops-select, .ops-case-description-input, .ops-price-input, .ops-weight-input, .ops-item-image-input, .ops-ladder-row input {
    background: rgba(6, 9, 16, .8) !important;
    border-color: rgba(255, 255, 255, .09) !important;
    color: #fff !important;
    font-family: 'Syne', sans-serif !important;
}

.ops-input:focus, .ops-select:focus {
    border-color: rgba(56, 104, 192, .5) !important;
    box-shadow: 0 0 0 3px rgba(56, 104, 192, .1) !important;
}

.ops-label {
    color: #5A7086 !important;
    font-family: 'Syne', sans-serif !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: .08em !important;
}

.ops-promo-row, .ops-weight-row, .ops-item-row, .result-line-wrap {
    background: rgba(6, 9, 16, .6) !important;
    border-color: rgba(255, 255, 255, .07) !important;
}

.ops-inline-chip {
    background: rgba(56, 104, 192, .1) !important;
    border-color: rgba(56, 104, 192, .2) !important;
    color: #58A6FF !important;
}

.ops-ladder-mode-btn {
    background: rgba(6, 9, 16, .8) !important;
    border-color: rgba(255, 255, 255, .1) !important;
    color: #FFFFFF !important;
    font-family: 'Syne', sans-serif !important;
    font-weight: 700 !important;
}

.ops-ladder-mode-btn:hover {
    border-color: rgba(56, 104, 192, .3) !important;
}

.ops-ladder-mode-btn.is-active {
    background: linear-gradient(135deg, #3868C0, #2A54A0) !important;
    border-color: transparent !important;
    box-shadow: 0 12px 26px rgba(56, 104, 192, .28) !important;
}

.ops-ladder-cell.ops-ladder-step-no {
    background: rgba(6, 9, 16, .8) !important;
    border-color: rgba(255, 255, 255, .1) !important;
}

.ops-list-soft {
    background: rgba(4, 6, 12, .5) !important;
    border-color: rgba(255, 255, 255, .06) !important;
}

.ops-weights-panel, .ops-appearance-panel, .ops-presets-panel {
    background: rgba(4, 6, 12, .5) !important;
    border-color: rgba(255, 255, 255, .07) !important;
}

.ops-case-row-extended {
    background: rgba(6, 9, 16, .85) !important;
    border-color: rgba(255, 255, 255, .08) !important;
}

.deposit-fullscreen-shell {
    background: linear-gradient(180deg, #080b15, #030509) !important;
}

.deposit-menu-tab {
    background: rgba(6, 9, 16, .6) !important;
    border-color: rgba(255, 255, 255, .07) !important;
    color: #5A7086 !important;
    font-family: 'Syne', sans-serif !important;
    font-weight: 700 !important;
    transition: all .2s ease !important;
}

.deposit-menu-tab:hover {
    border-color: rgba(56, 104, 192, .3) !important;
    color: #FFFFFF !important;
}

.deposit-menu-tab.is-active {
    background: linear-gradient(135deg, rgba(56, 104, 192, .2), rgba(30, 64, 130, .12)) !important;
    border-color: rgba(56, 104, 192, .4) !important;
    color: #58A6FF !important;
}

.payment-method-btn {
    background: rgba(6, 9, 16, .7) !important;
    border-color: rgba(255, 255, 255, .07) !important;
    transition: all .16s ease !important;
}

.payment-method-btn:hover {
    transform: translateY(-1px) !important;
    border-color: rgba(56, 104, 192, .3) !important;
    background: rgba(56, 104, 192, .06) !important;
}

.payment-method-icon {
    background: linear-gradient(135deg, #3868C0, #2A54A0) !important;
}

.payment-method-action {
    background: rgba(56, 104, 192, .1) !important;
    border-color: rgba(56, 104, 192, .2) !important;
    color: #58A6FF !important;
    font-family: 'Syne', sans-serif !important;
    font-weight: 800 !important;
}

.payment-currency-btn {
    background: rgba(6, 9, 16, .6) !important;
    border-color: rgba(255, 255, 255, .07) !important;
    color: #5A7086 !important;
    font-family: 'Syne', sans-serif !important;
    font-weight: 700 !important;
}

.payment-currency-btn.is-active {
    background: linear-gradient(135deg, rgba(56, 104, 192, .2), rgba(30, 64, 130, .12)) !important;
    border-color: rgba(56, 104, 192, .35) !important;
    color: #58A6FF !important;
}

.deposit-terminal-pay-btn {
    background: linear-gradient(135deg, #3868C0, #2A54A0) !important;
    box-shadow: 0 6px 22px rgba(56, 104, 192, .36) !important;
    font-family: 'Syne', sans-serif !important;
    font-weight: 800 !important;
    letter-spacing: .1em !important;
}

.deposit-terminal-input {
    background: rgba(255, 255, 255, .04) !important;
    border-color: rgba(255, 255, 255, .08) !important;
    color: #fff !important;
}

.payment-rates-card {
    background: rgba(6, 9, 16, .6) !important;
    border-color: rgba(255, 255, 255, .07) !important;
}

.support-inapp-shell {
    background: linear-gradient(180deg, #080b15, #030509) !important;
}

.support-floating-btn {
    background: linear-gradient(135deg, #3868C0, #2A54A0) !important;
    box-shadow: 0 8px 24px rgba(56, 104, 192, .4) !important;
    transition: all .2s ease !important;
}

.support-floating-btn:hover {
    transform: scale(1.08) !important;
    box-shadow: 0 12px 32px rgba(88, 166, 255, .52) !important;
}

.support-message-bot {
    background: rgba(56, 104, 192, .1) !important;
    border-color: rgba(56, 104, 192, .2) !important;
}

.support-message-user {
    background: rgba(56, 104, 192, .18) !important;
    border-color: rgba(56, 104, 192, .28) !important;
}

.auth-card {
    background: linear-gradient(180deg, rgba(7, 10, 17, .99), rgba(3, 5, 9, .98)) !important;
    border-color: rgba(255, 255, 255, .09) !important;
}

.auth-badge {
    background: rgba(56, 104, 192, .16) !important;
    color: #58A6FF !important;
}

.auth-card h2 {
    font-family: 'Syne', sans-serif !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: .04em !important;
}

.profile-tabs {
    display: flex !important;
    gap: 8px !important;
    flex-wrap: wrap !important;
    margin-bottom: 16px !important;
}

.profile-tab {
    background: rgba(6, 9, 16, .6) !important;
    border: 1px solid rgba(255, 255, 255, .07) !important;
    color: #5A7086 !important;
    font-family: 'Syne', sans-serif !important;
    font-weight: 700 !important;
    font-size: 11px !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
    padding: 10px 14px !important;
    transition: all .18s ease !important;
}

.profile-tab:hover {
    border-color: rgba(56, 104, 192, .3) !important;
    color: #fff !important;
}

.profile-tab.is-active {
    background: linear-gradient(135deg, rgba(56, 104, 192, .2), rgba(30, 64, 130, .12)) !important;
    border-color: rgba(56, 104, 192, .4) !important;
    color: #58A6FF !important;
}

.ops-tab {
    background: rgba(6, 9, 16, .6) !important;
    border: 1px solid rgba(255, 255, 255, .07) !important;
    color: #5A7086 !important;
    font-family: 'Syne', sans-serif !important;
    font-weight: 700 !important;
    font-size: 10px !important;
    letter-spacing: .1em !important;
    text-transform: uppercase !important;
    padding: 10px 12px !important;
    transition: all .18s ease !important;
}

.ops-tab:hover {
    border-color: rgba(56, 104, 192, .3) !important;
    color: #fff !important;
}

.ops-tab.is-active {
    background: linear-gradient(135deg, rgba(56, 104, 192, .2), rgba(30, 64, 130, .12)) !important;
    border-color: rgba(56, 104, 192, .4) !important;
    color: #58A6FF !important;
}

.profile-balance-box strong {
    font-size: 34px !important;
    color: #58A6FF !important;
}

.profile-balance-box span {
    font-family: 'Syne', sans-serif !important;
}

.profile-username {
    font-family: 'Oswald', sans-serif !important;
    font-weight: 600 !important;
    letter-spacing: .01em !important;
}

.user-name {
    font-family: 'Oswald', sans-serif !important;
    font-weight: 600 !important;
    letter-spacing: .01em !important;
}

.user-label {
    font-family: 'Syne', sans-serif !important;
}

.toast {
    background: #06080f !important;
    border-color: rgba(56, 104, 192, .22) !important;
    font-family: 'Syne', sans-serif !important;
    font-weight: 700 !important;
    box-shadow: 0 8px 28px rgba(0, 0, 0, .5) !important;
}

.theme-toggle-single {
    background: transparent !important;
    border-color: transparent !important;
}

.theme-toggle-single:hover {
    border-color: rgba(56, 104, 192, .3) !important;
}

.case-section-title {
    font-family: 'Syne', sans-serif !important;
    font-weight: 800 !important;
    font-size: 20px !important;
    text-transform: uppercase !important;
    letter-spacing: .08em !important;
    color: #fff !important;
}

.case-section-title::after {
    background: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(56, 104, 192, .65), rgba(255, 255, 255, 0)) !important;
}

.case-group-head h3 {
    font-family: 'Syne', sans-serif !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: .04em !important;
}

.case-group.pick-one-group .case-card {
    background: linear-gradient(180deg, rgba(56, 104, 192, .3), rgba(20, 30, 55, .92)) !important;
    border-color: rgba(88, 166, 255, .34) !important;
}

.pick-one-card {
    background: linear-gradient(180deg, rgba(59, 130, 246, .3), rgba(15, 23, 42, .9)) !important;
    border-color: rgba(88, 166, 255, .3) !important;
}

.pick-card.revealed {
    background: linear-gradient(180deg, rgba(30, 64, 130, .96), rgba(10, 16, 30, .98)) !important;
    border-color: rgba(88, 166, 255, .28) !important;
}

.hidden-drop, .hidden-pick-card {
    background: linear-gradient(180deg, rgba(56, 104, 192, .18), rgba(255, 255, 255, .04)) !important;
    border-color: rgba(56, 104, 192, .2) !important;
}

body.modal-fullscreen-open .modal {
    background: rgba(2, 2, 4, .96) !important;
}

body.modal-fullscreen-open #rouletteModal .modal-card {
    background: linear-gradient(180deg, #0c1220, #030509) !important;
}

body.modal-fullscreen-open #rouletteModal .modal-top {
    background: linear-gradient(180deg, #0c1220 70%, rgba(7, 10, 17, .6)) !important;
}

.dash-card {
    background: rgba(4, 6, 12, .7) !important;
    border-color: rgba(255, 255, 255, .07) !important;
}

.dash-stat-value {
    font-family: 'Syne', sans-serif !important;
    font-weight: 800 !important;
    color: #58A6FF !important;
}

.dash-stat-label, .dash-section-title, .dash-system-label {
    font-family: 'Syne', sans-serif !important;
    text-transform: uppercase !important;
    letter-spacing: .08em !important;
    color: #5A7086 !important;
}

.dash-system-value {
    color: #FFFFFF !important;
    font-family: 'Syne', sans-serif !important;
}

.dash-section {
    background: rgba(4, 6, 12, .6) !important;
    border-color: rgba(255, 255, 255, .07) !important;
}

.dash-top-item {
    border-color: rgba(255, 255, 255, .07) !important;
    transition: all .18s ease !important;
}

.dash-top-item:hover {
    border-color: rgba(56, 104, 192, .3) !important;
    background: rgba(56, 104, 192, .05) !important;
}

.combined-history-row {
    border-color: rgba(255, 255, 255, .06) !important;
    transition: background .15s ease !important;
}

.combined-history-row:hover {
    background: rgba(56, 104, 192, .04) !important;
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(16px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeInLeft {
    from {
        opacity: 0;
        transform: translateX(-12px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes legendPulse {
    0%, 100% {
        border-color: rgba(88, 166, 255, .5);
        box-shadow: 0 0 0 1px rgba(88, 166, 255, .1), 0 0 30px rgba(88, 166, 255, .16);
    }
    50% {
        border-color: rgba(88, 166, 255, .7);
        box-shadow: 0 0 0 1px rgba(88, 166, 255, .14), 0 0 44px rgba(88, 166, 255, .26);
    }
}

@keyframes pointerPulse {
    0%, 100% {
        box-shadow: 0 0 18px rgba(88, 166, 255, .4);
    }
    50% {
        box-shadow: 0 0 32px rgba(88, 166, 255, .65);
    }
}

@keyframes carnageGrain {
    0% {
        transform: translate(0, 0);
    }
    25% {
        transform: translate(-2%, -2%);
    }
    50% {
        transform: translate(2%, 2%);
    }
    75% {
        transform: translate(-1%, 1%);
    }
    100% {
        transform: translate(1%, -1%);
    }
}

.hero-banner {
    animation: fadeInUp .5s ease both;
}

.topbar {
    animation: fadeInUp .3s ease both;
}

.sidebar-live {
    animation: fadeInLeft .4s ease both;
}

.speed-btn {
    background: rgba(6, 9, 16, .6) !important;
    border-color: rgba(255, 255, 255, .08) !important;
    font-family: 'Syne', sans-serif !important;
    font-weight: 700 !important;
    color: #5A7086 !important;
}

.speed-btn.active {
    background: linear-gradient(135deg, #3868C0, #2A54A0) !important;
    color: #fff !important;
    box-shadow: 0 6px 18px rgba(56, 104, 192, .28) !important;
}

.lobby-promo-card {
    background: rgba(4, 6, 12, .7) !important;
    border-color: rgba(255, 255, 255, .07) !important;
}

.lobby-promo-card .promo-stat {
    border-color: rgba(56, 104, 192, .14) !important;
}

.pick-card.revealed {
    box-shadow: 0 8px 22px rgba(56, 104, 192, .12) !important;
}

.pick-card.dimmed {
    opacity: .3 !important;
    filter: grayscale(1) brightness(.5) !important;
}

.compact.selected {
    outline: 2px solid rgba(56, 104, 192, .5) !important;
}

body.theme-light-red html, body.theme-light-red {
    background: linear-gradient(180deg, #FFF5F5 0%, #FFFFFF 60%) !important;
    color: #04060b !important;
}

body.theme-light-red .sidebar-live {
    background: linear-gradient(180deg, #F8F2F2, #F5EFEF) !important;
    border-color: rgba(4, 6, 12, .24) !important;
}

body.theme-light-red .topbar {
    background: rgba(255, 255, 255, .97) !important;
    border-color: rgba(4, 6, 12, .24) !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, .08) !important;
}

body.theme-light-red .brand-btn {
    background: rgba(56, 104, 192, .06) !important;
    border-color: rgba(56, 104, 192, .18) !important;
    color: #58A6FF !important;
}

body.theme-light-red .brand-btn:hover {
    background: rgba(56, 104, 192, .1) !important;
    border-color: rgba(56, 104, 192, .36) !important;
}

body.theme-light-red .nav-btn {
    background: transparent !important;
    border: none !important;
    color: #04060b !important;
}

body.theme-light-red .nav-btn:hover {
    background: rgba(0, 0, 0, .10) !important;
}

body.theme-light-red .nav-btn.active {
    background: linear-gradient(135deg, #3868C0, #2A54A0) !important;
    border: none !important;
    color: #fff !important;
}

body.theme-light-red .ghost-btn {
    background: transparent !important;
    border: 1px solid rgba(4, 6, 12, .18) !important;
    color: #04060b !important;
}

body.theme-light-red .ghost-btn:hover {
    background: rgba(0, 0, 0, .06) !important;
    border-color: rgba(4, 6, 12, .32) !important;
}

body.theme-light-red .ghost-btn.active {
    background: linear-gradient(135deg, #3868C0, #2A54A0) !important;
    border-color: transparent !important;
    color: #fff !important;
}

body.theme-light-red .live-card {
    background: #FFFFFF !important;
    border-color: rgba(4, 6, 12, .24) !important;
    box-shadow: 0 2px 12px rgba(0, 0, 0, .06) !important;
}

body.theme-light-red .live-card:hover {
    border-color: rgba(56, 104, 192, .28) !important;
    box-shadow: 0 4px 18px rgba(56, 104, 192, .1) !important;
}

body.theme-light-red .live-item {
    color: #04060b !important;
}

body.theme-light-red .live-user {
    color: #607086 !important;
}

body.theme-light-red .case-card {
    background: #FFFFFF !important;
    border-color: rgba(4, 6, 12, .24) !important;
    box-shadow: 0 2px 14px rgba(0, 0, 0, .06) !important;
}

body.theme-light-red .case-card:hover {
    border-color: rgba(56, 104, 192, .32) !important;
    box-shadow: 0 0 28px rgba(56, 104, 192, .12), 0 8px 24px rgba(0, 0, 0, .1) !important;
}

body.theme-light-red .case-title {
    color: #04060b !important;
}

body.theme-light-red .case-price {
    color: #0b101d !important;
}

body.theme-light-red .case-subtitle {
    color: #607086 !important;
}

body.theme-light-red .case-visual {
    background: rgba(56, 104, 192, .03) !important;
    border-color: rgba(4, 6, 12, .24) !important;
}

body.theme-light-red .case-ribbon {
    background: rgba(56, 104, 192, .07) !important;
    border-color: rgba(56, 104, 192, .18) !important;
    color: #58A6FF !important;
}

body.theme-light-red .hero-banner {
    background: #FFFFFF !important;
    border-color: rgba(4, 6, 12, .24) !important;
    box-shadow: 0 4px 24px rgba(0, 0, 0, .08) !important;
}

body.theme-light-red .hero-banner::before {
    color: rgba(56, 104, 192, .06) !important;
}

body.theme-light-red .hero-copy h1 {
    color: #04060b !important;
}

body.theme-light-red .hero-copy p {
    color: #607086 !important;
}

body.theme-light-red .lobby-promo-card {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

body.theme-light-red .promo-stat {
    background: rgba(56, 104, 192, .05) !important;
    border-color: rgba(56, 104, 192, .15) !important;
    box-shadow: none !important;
}

body.theme-light-red .promo-stat span {
    color: #607086 !important;
}

body.theme-light-red .promo-stat strong {
    color: #58A6FF !important;
}

body.theme-light-red .section-head h2 {
    color: #04060b !important;
}

body.theme-light-red .section-head span {
    color: #607086 !important;
}

body.theme-light-red .muted {
    color: #607086 !important;
}

body.theme-light-red input, body.theme-light-red select, body.theme-light-red textarea {
    background: #fff !important;
    border-color: rgba(4, 6, 12, .24) !important;
    color: #04060b !important;
}

body.theme-light-red input:focus, body.theme-light-red select:focus, body.theme-light-red textarea:focus {
    border-color: rgba(56, 104, 192, .4) !important;
    box-shadow: 0 0 16px rgba(56, 104, 192, .08) !important;
}

body.theme-light-red .loot-card, body.theme-light-red .target-card, body.theme-light-red .related-card {
    background: #fff !important;
    border-color: rgba(4, 6, 12, .24) !important;
}

body.theme-light-red .modal-card {
    background: linear-gradient(180deg, #FFFFFF, #F8F8F8) !important;
    border-color: rgba(4, 6, 12, .24) !important;
}

body.theme-light-red .auth-card {
    background: #FFFFFF !important;
    border-color: rgba(4, 6, 12, .24) !important;
}

body.theme-light-red .auth-badge {
    background: rgba(56, 104, 192, .1) !important;
    color: #58A6FF !important;
}

body.theme-light-red .roulette-window {
    background: #FFFFFF !important;
    border-color: rgba(4, 6, 12, .24) !important;
}

body.theme-light-red .roulette-item {
    background: #F8F4F4 !important;
    border-color: rgba(4, 6, 12, .24) !important;
}

body.theme-light-red .roulette-name {
    color: #04060b !important;
}

body.theme-light-red .roulette-value {
    color: #607086 !important;
}

body.theme-light-red .speed-toggle {
    background: #F8F4F4 !important;
    border-color: rgba(4, 6, 12, .24) !important;
}

body.theme-light-red .speed-toggle-btn {
    color: #607086 !important;
}

body.theme-light-red .speed-toggle-btn.active {
    color: #fff !important;
}

body.theme-light-red .toast {
    background: #FFFFFF !important;
    border-color: rgba(56, 104, 192, .2) !important;
    color: #04060b !important;
    box-shadow: 0 8px 28px rgba(0, 0, 0, .12) !important;
}

body.theme-light-red .profile-card, .body.theme-light-red .profile-hero {
    background: #FFFFFF !important;
    border-color: rgba(4, 6, 12, .24) !important;
}

body.theme-light-red .profile-balance-box strong {
    color: #58A6FF !important;
}

body.theme-light-red .profile-tab {
    background: #fff !important;
    border-color: rgba(4, 6, 12, .24) !important;
    color: #607086 !important;
}

body.theme-light-red .profile-tab.is-active {
    background: rgba(56, 104, 192, .07) !important;
    border-color: rgba(56, 104, 192, .3) !important;
    color: #58A6FF !important;
}

body.theme-light-red .ops-tab {
    background: #fff !important;
    border-color: rgba(4, 6, 12, .24) !important;
    color: #607086 !important;
}

body.theme-light-red .ops-tab.is-active {
    background: rgba(56, 104, 192, .07) !important;
    border-color: rgba(56, 104, 192, .3) !important;
    color: #58A6FF !important;
}

body.theme-light-red .ops-surface {
    background: #FFFFFF !important;
    border-color: rgba(4, 6, 12, .24) !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, .07) !important;
}

body.theme-light-red .ops-card {
    background: #FFFFFF !important;
    border-color: rgba(4, 6, 12, .24) !important;
}

body.theme-light-red .ops-input, .body.theme-light-red .ops-select {
    background: #fff !important;
    border-color: rgba(4, 6, 12, .24) !important;
    color: #04060b !important;
}

body.theme-light-red .ops-label {
    color: #607086 !important;
}

body.theme-light-red .payment-method-btn {
    background: #fff !important;
    border-color: rgba(4, 6, 12, .24) !important;
    color: #04060b !important;
}

body.theme-light-red .payment-method-btn:hover {
    border-color: rgba(56, 104, 192, .3) !important;
    background: rgba(56, 104, 192, .04) !important;
}

body.theme-light-red .deposit-fullscreen-shell, .body.theme-light-red .support-inapp-shell {
    background: #FFFFFF !important;
}

body.theme-light-red .rarity-common {
    border-color: rgba(90, 110, 140, .25) !important;
}

body.theme-light-red .rarity-rare {
    border-color: rgba(56, 104, 192, .35) !important;
}

body.theme-light-red .rarity-epic {
    border-color: rgba(59, 130, 246, .42) !important;
}

body.theme-light-red .rarity-legendary {
    border-color: rgba(88, 166, 255, .5) !important;
    animation: legendPulseLight 3s ease-in-out infinite !important;
}

body.theme-light-red .sidebar-title, body.theme-light-red .panel-title {
    color: #607086 !important;
}

@keyframes legendPulseLight {
    0%, 100% {
        border-color: rgba(59, 130, 246, .45);
        box-shadow: 0 0 0 1px rgba(59, 130, 246, .08), 0 0 20px rgba(59, 130, 246, .1);
    }
    50% {
        border-color: rgba(88, 166, 255, .65);
        box-shadow: 0 0 0 1px rgba(88, 166, 255, .12), 0 0 32px rgba(88, 166, 255, .2);
    }
}

.ghost-btn.accent {
    border-color: rgba(56, 104, 192, .3) !important;
    color: #58A6FF !important;
}

.item-source-badge {
    background: rgba(6, 9, 16, .6) !important;
    border-color: rgba(255, 255, 255, .08) !important;
    font-family: 'Syne', sans-serif !important;
    font-weight: 700 !important;
}

body.theme-light-red .item-source-badge {
    background: #fff !important;
    border-color: rgba(4, 6, 12, .24) !important;
    color: #607086 !important;
}

.activity-item, .activity-row {
    border-color: rgba(255, 255, 255, .06) !important;
}

body.theme-light-red .activity-item, body.theme-light-red .activity-row {
    border-color: rgba(4, 6, 12, .07) !important;
}

.profile-wallet-btn {
    background: linear-gradient(135deg, #4F46E5, #3B82F6) !important;
    box-shadow: 0 6px 20px rgba(79, 70, 229, .3) !important;
    font-size: 28px !important;
    border-radius: 50% !important;
    width: 64px !important;
    height: 64px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.win-result-title {
    font-family: 'Syne', sans-serif !important;
    font-weight: 800 !important;
}

.sold-inline-note {
    color: #22C55E !important;
    font-family: 'Syne', sans-serif !important;
    font-weight: 800 !important;
}

.open-count-btn.disabled {
    opacity: .3 !important;
    filter: grayscale(1) !important;
}

body.theme-light-red .ops-weights-panel, body.theme-light-red .ops-appearance-panel, body.theme-light-red .ops-presets-panel, body.theme-light-red .ops-list-soft {
    background: #F8F4F4 !important;
    border-color: rgba(4, 6, 12, .24) !important;
}

body.theme-light-red .ops-weight-row, body.theme-light-red .ops-item-row, body.theme-light-red .result-line-wrap {
    background: #fff !important;
    border-color: rgba(4, 6, 12, .24) !important;
}

body.theme-light-red .ops-case-row-extended {
    background: #FFFFFF !important;
    border-color: rgba(4, 6, 12, .24) !important;
}

body.theme-light-red .ops-promo-row {
    background: #FFFFFF !important;
    border-color: rgba(4, 6, 12, .24) !important;
}

#rouletteModal.modal {
    background: rgba(1, 2, 3, .93) !important;
}

#rouletteModal .modal-card {
    background: linear-gradient(180deg, #060911 0%, #030407 100%) !important;
    border: 1px solid rgba(56, 104, 192, .18) !important;
    border-radius: 0 !important;
    box-shadow: 0 40px 120px rgba(0, 0, 0, .88), 0 0 80px rgba(56, 104, 192, .07) !important;
    animation: carnageModalIn .38s cubic-bezier(.17, .67, .3, 1.1) both !important;
    overflow: hidden !important;
    position: relative !important;
}

#rouletteModal .modal-card::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 2px !important;
    background: linear-gradient(90deg, transparent, #3868C0 40%, transparent) !important;
    pointer-events: none !important;
    z-index: 5 !important;
}

#rouletteModal .modal-top {
    padding-bottom: 14px !important;
    border-bottom: 1px solid rgba(56, 104, 192, .14) !important;
    margin-bottom: 16px !important;
    background: transparent !important;
}

#rouletteModal h3, #rouletteTitle {
    font-family: 'Syne', sans-serif !important;
    font-weight: 800 !important;
    font-size: 18px !important;
    text-transform: uppercase !important;
    letter-spacing: .1em !important;
    color: #FFFFFF !important;
    line-height: 1 !important;
    margin: 0 0 5px !important;
}

#rouletteModal .modal-top .muted {
    font-family: 'Syne', sans-serif !important;
    font-size: 10px !important;
    color: #5A7086 !important;
    font-weight: 600 !important;
    letter-spacing: .06em !important;
    text-transform: uppercase !important;
}

#rouletteModal .icon-close {
    background: rgba(56, 104, 192, .08) !important;
    border: 1px solid rgba(56, 104, 192, .22) !important;
    border-radius: 0 !important;
    color: #58A6FF !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    transition: all .18s ease !important;
    flex-shrink: 0 !important;
}

#rouletteModal .icon-close:hover {
    background: rgba(56, 104, 192, .2) !important;
    border-color: rgba(56, 104, 192, .55) !important;
    color: #fff !important;
    box-shadow: 0 0 20px rgba(56, 104, 192, .22) !important;
    transform: scale(1.04) !important;
}

.roulette-window {
    background: rgba(3, 4, 7, .92) !important;
    border: 1px solid rgba(56, 104, 192, .1) !important;
    border-radius: 0 !important;
}

.roulette-window::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 88px !important;
    height: 100% !important;
    background: linear-gradient(270deg, transparent, rgba(1, 2, 3, .5), rgba(1, 2, 3, .96)) !important;
    z-index: 2 !important;
    pointer-events: none !important;
}

.roulette-browser-edge {
    width: 88px !important;
    background: linear-gradient(90deg, transparent, rgba(1, 2, 3, .5), rgba(1, 2, 3, .96)) !important;
}

.roulette-pointer {
    width: 3px !important;
    background: #3868C0 !important;
    box-shadow: 0 0 10px rgba(88, 166, 255, .9),
    0 0 28px rgba(56, 104, 192, .55),
    0 0 60px rgba(56, 104, 192, .2) !important;
    animation: carnagePointerPulse 1.1s ease-in-out infinite !important;
}

.roulette-window[data-spin-tone] .roulette-pointer {
    box-shadow: 0 0 12px rgba(88, 166, 255, .9),
    0 0 32px rgba(56, 104, 192, .55) !important;
}

.roulette-item {
    background: rgba(4, 6, 12, .78) !important;
    border: 1px solid rgba(255, 255, 255, .07) !important;
    border-radius: 0 !important;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease !important;
    overflow: hidden !important;
    min-width: 0 !important;
}

.roulette-item.compact {
    border-radius: 0 !important;
}

.roulette-emoji {
    font-size: 38px !important;
    filter: drop-shadow(0 0 6px rgba(0, 0, 0, .6)) !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    min-height: 44px !important;
}

.roulette-image {
    margin: 0 auto !important;
    display: block !important;
    object-fit: contain !important;
    object-position: center !important;
    width: 40px !important;
    height: 40px !important;
    flex-shrink: 0 !important;
}

.roulette-name {
    font-family: 'Syne', sans-serif !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    text-transform: uppercase !important;
    letter-spacing: .03em !important;
    color: #FFFFFF !important;
    width: 100% !important;
    /* Раньше жёсткая одна строка + эллипсис резала длинные имена вроде
       "Halloween Base" до нечитаемого "HALLOWEE..." -- в некомпактных
       карточках места хватает (194px/154px высоты, см. F1-фикс выше по
       файлу у #rouletteModal.roulette-open .roulette-item), так что даём
       имени переносится на вторую строку и обрезаем эллипсисом только то,
       что не влезло даже в неё. */
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    white-space: normal !important;
    line-height: 1.18 !important;
}

.roulette-name.compact, .roulette-item.compact .roulette-name {
    font-size: 12px !important;
    /* Компактные карточки (мобильное мультиоткрытие) высотой впритык под
       одну строку -- вторая строка вылезла бы за пределы карточки, тут
       возвращаем классический однострочный эллипсис. */
    -webkit-line-clamp: 1 !important;
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
}

.roulette-value {
    font-family: 'Syne', sans-serif !important;
    font-weight: 600 !important;
    font-size: 11px !important;
    color: #5A7086 !important;
    margin-top: 3px !important;
}

.roulette-item.compact .roulette-value {
    font-size: 11px !important;
}

.roulette-item.near-top-item::before {
    border-radius: 0 !important;
    border-color: rgba(56, 104, 192, .25) !important;
}

.roulette-item.near-top-focus {
    border-color: rgba(56, 104, 192, .6) !important;
    box-shadow: 0 0 0 1px rgba(56, 104, 192, .24),
    0 0 28px rgba(56, 104, 192, .25) !important;
    transform: translateY(-2px) scale(1.01) !important;
}

.roulette-item.near-top-focus::before {
    opacity: 1 !important;
    border-color: rgba(56, 104, 192, .35) !important;
}

.roulette-near-top-flash {
    background: radial-gradient(circle at 50% 50%, rgba(56, 104, 192, .3), transparent 32%),
    radial-gradient(circle at 50% 18%, rgba(88, 166, 255, .2), transparent 28%) !important;
}

#rouletteModal .modal-foot {
    padding-top: 14px !important;
    border-top: 1px solid rgba(56, 104, 192, .12) !important;
    margin-top: 10px !important;
}

#rouletteResult {
    font-family: 'Syne', sans-serif !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    letter-spacing: .04em !important;
    color: #5A7086 !important;
    transition: color .3s ease, text-shadow .3s ease !important;
}

.roulette-result-win, #rouletteResult[data-state="win"] {
    color: #58A6FF !important;
    text-shadow: 0 0 20px rgba(56, 104, 192, .45) !important;
    font-size: 15px !important;
    text-transform: uppercase !important;
}

.roulette-bulk-actions {
    justify-content: center !important;
    gap: 10px !important;
}

.wheel-sell-btn {
    font-family: 'Syne', sans-serif !important;
    font-weight: 800 !important;
    font-size: 12px !important;
    letter-spacing: .1em !important;
    text-transform: uppercase !important;
    background: linear-gradient(135deg, #3868C0, #2A54A0) !important;
    box-shadow: 0 6px 18px rgba(56, 104, 192, .3) !important;
}

.wheel-sell-btn:hover {
    transform: translateY(-2px) scale(1.04) !important;
    box-shadow: 0 10px 28px rgba(88, 166, 255, .44) !important;
    filter: brightness(1.08) !important;
}

.wheel-sell-btn:active {
    transform: translateY(0) scale(.97) !important;
}

.sold-inline-note {
    font-family: 'Syne', sans-serif !important;
    font-weight: 800 !important;
    font-size: 12px !important;
    letter-spacing: .1em !important;
    text-transform: uppercase !important;
    color: #22C55E !important;
}

#pickOptions.pick-options {
    margin-top: 14px !important;
    gap: 10px !important;
}

#pickOptions .pick-card, .pick-options .pick-card {
    background: rgba(4, 6, 12, .78) !important;
    border: 1px solid rgba(255, 255, 255, .07) !important;
    border-radius: 0 !important;
    transition: all .2s ease !important;
    cursor: pointer !important;
    min-height: 150px !important;
}

#pickOptions .pick-card:hover {
    border-color: rgba(56, 104, 192, .3) !important;
    box-shadow: 0 0 22px rgba(56, 104, 192, .1) !important;
    transform: translateY(-2px) !important;
}

#pickOptions .pick-card.revealed {
    background: rgba(56, 104, 192, .08) !important;
    border-color: rgba(56, 104, 192, .38) !important;
    box-shadow: 0 0 30px rgba(56, 104, 192, .14) !important;
}

#pickOptions .pick-card.dimmed {
    opacity: .22 !important;
    filter: grayscale(1) brightness(.4) !important;
}

#pickOptions .target-name {
    font-family: 'Syne', sans-serif !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: .04em !important;
    color: #FFFFFF !important;
}

#pickOptions .target-value {
    color: #5A7086 !important;
    font-family: 'Syne', sans-serif !important;
    font-weight: 600 !important;
    font-size: 12px !important;
}

#pickOptions .target-emoji {
    font-size: 40px !important;
}

#rouletteModal + * .spin-speed-switch, .spin-speed-switch {
    display: flex !important;
    justify-content: flex-start !important;
    padding: 0 !important;
}

body.modal-fullscreen-open #rouletteModal .modal-card {
    background: linear-gradient(180deg, #060911 0%, #030407 100%) !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
}

body.modal-fullscreen-open #rouletteModal .modal-top {
    background: linear-gradient(180deg, #060911 70%, rgba(6, 9, 17, .4)) !important;
    border-bottom-color: rgba(56, 104, 192, .14) !important;
}

@keyframes carnageModalIn {
    from {
        opacity: 0;
        transform: translateY(22px) scale(.96);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes carnagePointerPulse {
    0%, 100% {
        box-shadow: 0 0 10px rgba(88, 166, 255, .85), 0 0 26px rgba(56, 104, 192, .4);
    }
    50% {
        box-shadow: 0 0 18px rgba(88, 166, 255, 1), 0 0 50px rgba(56, 104, 192, .65), 0 0 90px rgba(56, 104, 192, .2);
    }
}

@keyframes carnageItemWin {
    0% {
        border-color: rgba(56, 104, 192, .2);
        box-shadow: 0 0 0 rgba(56, 104, 192, 0);
    }
    30% {
        border-color: rgba(88, 166, 255, .9);
        box-shadow: 0 0 50px rgba(56, 104, 192, .55), 0 0 100px rgba(56, 104, 192, .22);
    }
    100% {
        border-color: rgba(56, 104, 192, .65);
        box-shadow: 0 0 36px rgba(56, 104, 192, .28);
    }
}

body.theme-light-red #rouletteModal.modal {
    background: rgba(0, 0, 0, .74) !important;
}

body.theme-light-red #rouletteModal .modal-card {
    background: #FFFFFF !important;
    border-color: rgba(4, 6, 12, .24) !important;
    box-shadow: 0 40px 100px rgba(0, 0, 0, .22), 0 0 60px rgba(56, 104, 192, .05) !important;
}

body.theme-light-red #rouletteModal .modal-card::before {
    background: linear-gradient(90deg, transparent, #3868C0 40%, transparent) !important;
}

body.theme-light-red #rouletteModal h3, body.theme-light-red #rouletteTitle {
    color: #04060b !important;
}

body.theme-light-red #rouletteModal .modal-top .muted {
    color: #607086 !important;
}

body.theme-light-red #rouletteModal .modal-top {
    border-bottom-color: rgba(56, 104, 192, .14) !important;
}

body.theme-light-red #rouletteModal .icon-close {
    background: rgba(56, 104, 192, .06) !important;
    border-color: rgba(56, 104, 192, .18) !important;
    color: #58A6FF !important;
}

body.theme-light-red #rouletteModal .icon-close:hover {
    background: rgba(56, 104, 192, .14) !important;
    border-color: rgba(56, 104, 192, .45) !important;
    color: #fff !important;
}

body.theme-light-red .roulette-window {
    background: #F4EEEE !important;
    border-color: rgba(4, 6, 12, .24) !important;
}

body.theme-light-red .roulette-window::before {
    background: linear-gradient(270deg, transparent, rgba(244, 238, 238, .55), rgba(244, 238, 238, .97)) !important;
}

body.theme-light-red .roulette-browser-edge {
    background: linear-gradient(90deg, transparent, rgba(244, 238, 238, .55), rgba(244, 238, 238, .97)) !important;
}

body.theme-light-red .roulette-item {
    background: #FFFFFF !important;
    border-color: rgba(4, 6, 12, .24) !important;
}

body.theme-light-red .roulette-name {
    color: #04060b !important;
}

body.theme-light-red .roulette-value {
    color: #607086 !important;
}

body.theme-light-red #rouletteResult {
    color: #607086 !important;
}

body.theme-light-red #rouletteModal .modal-foot {
    border-top-color: rgba(56, 104, 192, .1) !important;
}

body.theme-light-red #pickOptions .pick-card {
    background: #FFFFFF !important;
    border-color: rgba(4, 6, 12, .24) !important;
}

body.theme-light-red #pickOptions .pick-card:hover {
    border-color: rgba(56, 104, 192, .28) !important;
    box-shadow: 0 4px 18px rgba(56, 104, 192, .09) !important;
}

body.theme-light-red #pickOptions .pick-card.revealed {
    background: rgba(56, 104, 192, .05) !important;
    border-color: rgba(56, 104, 192, .3) !important;
}

body.theme-light-red #pickOptions .target-name {
    color: #04060b !important;
}

body.theme-light-red #pickOptions .target-value {
    color: #607086 !important;
}

body.theme-light-red .speed-toggle {
    background: #F0EEEE !important;
    border-color: rgba(4, 6, 12, .24) !important;
}

body.theme-light-red .speed-toggle-btn {
    color: #607086 !important;
}

body.theme-light-red body.modal-fullscreen-open #rouletteModal .modal-card {
    background: #FFFFFF !important;
}

body.theme-light-red body.modal-fullscreen-open #rouletteModal .modal-top {
    background: linear-gradient(180deg, #FFFFFF 70%, rgba(255, 255, 255, .4)) !important;
}

body.theme-light-red .roulette-item.near-top-focus {
    border-color: rgba(56, 104, 192, .55) !important;
    box-shadow: 0 0 0 1px rgba(56, 104, 192, .2), 0 0 24px rgba(56, 104, 192, .15) !important;
}

html body #rouletteModal, html body #rouletteModal .modal-card, html body #rouletteModal .modal-card.large, html body #rouletteModal .modal-top, html body #rouletteModal .modal-foot, html body #rouletteModal .icon-close, html body .roulette-window, html body .roulette-window.mini, html body .roulette-item, html body .roulette-item.compact, html body #rouletteModal * {
    border-radius: 0 !important;
}

html body #rouletteModal #userAvatar, html body #rouletteModal #profileAvatarLarge {
    border-radius: 50% !important;
}

.roulette-window {
    border-top: 2px solid rgba(56, 104, 192, .35) !important;
}

.roulette-window::after {
    content: '' !important;
    position: absolute !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 1px !important;
    background: linear-gradient(90deg, rgba(56, 104, 192, .2), transparent, rgba(56, 104, 192, .2)) !important;
    pointer-events: none !important;
    z-index: 3 !important;
}

body.theme-light-red #rouletteModal, body.theme-light-red #rouletteModal *, body.theme-light-red #rouletteModal *::before, body.theme-light-red #rouletteModal *::after {
    border-radius: 0 !important;
}

.deposit-fullscreen-backdrop {
    background: rgba(1, 2, 3, .88) !important;
    backdrop-filter: blur(14px) !important;
}

.deposit-fullscreen-shell {
    /* Раньше уходил от #060911 к #030408 -- заметно темнее к низу шторки, а
       именно там, где сверстана история заявок (весь остальной контент выше
       заметно светлее). Подтверждено по пикселям реального скрина: над
       "ЗАЯВКИ" фон ~RGB(21,22,24), внутри блока истории ~RGB(12,13,15) --
       градиент, не отдельный элемент истории (тот уже проверен и чист). Мягкий
       градиент в той же тёмно-синей гамме вместо ухода в чёрный -- лёгкая
       глубина без заметного "темнее книзу". Трогаем только .deposit-fullscreen-
       shell -- #rouletteModal .modal-card/.modal-top используют тот же цвет
       отдельно, их не задеваем. */
    background: linear-gradient(180deg, #0d121c 0%, #0a0e16 100%) !important;
    border: 1px solid rgba(56, 104, 192, .2) !important;
    border-radius: 0 !important;
    box-shadow: 0 40px 120px rgba(0, 0, 0, .85), 0 0 80px rgba(56, 104, 192, .07) !important;
    animation: depositModalIn .38s cubic-bezier(.17, .67, .3, 1.1) both !important;
    position: relative !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
}

.deposit-fullscreen-shell::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 2px !important;
    background: linear-gradient(90deg, transparent, #3868C0 40%, transparent) !important;
    pointer-events: none !important;
    z-index: 5 !important;
}

.deposit-fullscreen-head {
    padding: 26px 30px 0 !important;
}

.deposit-fullscreen-kicker {
    font-family: 'Syne', sans-serif !important;
    font-size: 10px !important;
    font-weight: 800 !important;
    letter-spacing: .22em !important;
    text-transform: uppercase !important;
    color: #58A6FF !important;
    margin-bottom: 6px !important;
}

.deposit-fullscreen-head h3 {
    font-family: 'Syne', sans-serif !important;
    font-size: 26px !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: .05em !important;
    color: #FFFFFF !important;
    margin: 0 !important;
    line-height: 1 !important;
}

.deposit-fullscreen-close {
    background: rgba(56, 104, 192, .08) !important;
    border: 1px solid rgba(56, 104, 192, .22) !important;
    border-radius: 0 !important;
    color: #58A6FF !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    transition: all .18s ease !important;
    flex-shrink: 0 !important;
}

.deposit-fullscreen-close:hover {
    background: rgba(56, 104, 192, .2) !important;
    border-color: rgba(56, 104, 192, .55) !important;
    color: #fff !important;
    box-shadow: 0 0 20px rgba(56, 104, 192, .22) !important;
    transform: scale(1.04) !important;
}

.deposit-terminal, .deposit-fullscreen-shell .deposit-terminal {
    background: rgba(3, 5, 9, .98) !important;
    border: 1px solid rgba(56, 104, 192, .14) !important;
    border-radius: 0 !important;
    margin: 20px 28px 28px !important;
    overflow: hidden !important;
}

.deposit-menu-tabs {
    background: rgba(2, 2, 4, .9) !important;
    border-right: 1px solid rgba(56, 104, 192, .12) !important;
}

.deposit-menu-tab {
    min-height: 80px !important;
    border-bottom: 1px solid rgba(56, 104, 192, .08) !important;
    background: transparent !important;
    color: #5A7086 !important;
    font-family: 'Syne', sans-serif !important;
    font-weight: 800 !important;
    font-size: 9px !important;
    letter-spacing: .1em !important;
    text-transform: uppercase !important;
    transition: all .2s ease !important;
    cursor: pointer !important;
}

.deposit-menu-tab:hover {
    background: rgba(56, 104, 192, .06) !important;
    color: #58A6FF !important;
}

.deposit-menu-tab.is-active {
    background: rgba(56, 104, 192, .1) !important;
    color: #FFFFFF !important;
}

.deposit-menu-tab.is-active::before {
    background: #3868C0 !important;
    width: 3px !important;
}

.deposit-menu-tab-icon {
    font-size: 24px !important;
    line-height: 1 !important;
}

.deposit-menu-tab strong {
    font-family: 'Syne', sans-serif !important;
    font-size: 9px !important;
    font-weight: 800 !important;
    letter-spacing: .1em !important;
    display: block !important;
    margin-top: 4px !important;
}

.deposit-terminal-main {
    padding: 24px 28px !important;
    gap: 18px !important;
}

.deposit-terminal-head .panel-title {
    font-family: 'Syne', sans-serif !important;
    font-weight: 800 !important;
    font-size: 18px !important;
    text-transform: uppercase !important;
    letter-spacing: .06em !important;
    color: #FFFFFF !important;
}

.deposit-currency-select {
    background: rgba(6, 9, 16, .9) !important;
    border: 1px solid rgba(56, 104, 192, .25) !important;
    border-radius: 0 !important;
    color: #58A6FF !important;
    font-family: 'Syne', sans-serif !important;
    font-weight: 800 !important;
    transition: all .18s ease !important;
}

.deposit-currency-select:hover, .deposit-currency-select:focus {
    border-color: rgba(56, 104, 192, .55) !important;
    box-shadow: 0 0 14px rgba(56, 104, 192, .12) !important;
}

.deposit-terminal .payment-amount-summary {
    border-top: 1px solid rgba(56, 104, 192, .1) !important;
    color: #5A7086 !important;
    font-family: 'Syne', sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    background: transparent !important;
    padding: 14px 0 0 !important;
}

.deposit-terminal .payment-method-btn {
    background: rgba(6, 9, 16, .85) !important;
    border: 1px solid rgba(255, 255, 255, .07) !important;
    border-radius: 0 !important;
    min-height: 110px !important;
    color: #FFFFFF !important;
    transition: all .18s ease !important;
    position: relative !important;
}

.deposit-terminal .payment-method-btn:hover, .deposit-terminal .payment-method-btn:focus {
    transform: translateY(-2px) !important;
    border-color: rgba(56, 104, 192, .4) !important;
    background: rgba(56, 104, 192, .07) !important;
    box-shadow: 0 6px 22px rgba(56, 104, 192, .1) !important;
    outline: 0 !important;
}

.deposit-terminal .payment-method-btn::before {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    border: 1px solid transparent !important;
    pointer-events: none !important;
    transition: border-color .18s ease !important;
}

.deposit-terminal .payment-method-btn:hover::before {
    border-color: rgba(56, 104, 192, .4) !important;
}

.deposit-terminal .payment-method-btn::after {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 2px !important;
    background: linear-gradient(90deg, transparent, #3868C0, transparent) !important;
    transform: scaleX(0) !important;
    transition: transform .3s ease !important;
    pointer-events: none !important;
}

.deposit-terminal .payment-method-btn:hover::after {
    transform: scaleX(1) !important;
}

.deposit-terminal .payment-method-icon {
    background: transparent !important;
    color: #FFFFFF !important;
    font-size: 26px !important;
    margin-bottom: 10px !important;
}

.deposit-terminal .payment-method-body strong {
    font-family: 'Syne', sans-serif !important;
    font-weight: 800 !important;
    font-size: 14px !important;
    color: #FFFFFF !important;
    text-transform: uppercase !important;
    letter-spacing: .04em !important;
}

.deposit-terminal .payment-method-body small {
    font-family: 'Syne', sans-serif !important;
    font-size: 10px !important;
    color: #5A7086 !important;
    font-weight: 600 !important;
    letter-spacing: .04em !important;
}

.deposit-terminal-bottom {
    border-top: 1px solid rgba(56, 104, 192, .1) !important;
    padding-top: 16px !important;
    gap: 14px !important;
}

.deposit-terminal-field span {
    font-family: 'Syne', sans-serif !important;
    font-weight: 800 !important;
    font-size: 11px !important;
    text-transform: uppercase !important;
    letter-spacing: .1em !important;
    color: #FFFFFF !important;
}

.deposit-terminal-field small {
    font-family: 'Syne', sans-serif !important;
    font-size: 10px !important;
    color: #5A7086 !important;
    font-weight: 600 !important;
}

.deposit-terminal-input {
    background: rgba(6, 9, 16, .9) !important;
    border: 1px solid rgba(56, 104, 192, .18) !important;
    border-radius: 0 !important;
    color: #FFFFFF !important;
    font-family: 'Syne', sans-serif !important;
    font-weight: 700 !important;
    transition: all .18s ease !important;
}

.deposit-terminal-input:focus {
    border-color: rgba(56, 104, 192, .5) !important;
    box-shadow: 0 0 16px rgba(56, 104, 192, .12) !important;
    outline: none !important;
}

.deposit-terminal-input::placeholder {
    color: #5A7086 !important;
    font-weight: 500 !important;
}

.deposit-terminal-pay-btn {
    background: linear-gradient(135deg, #3868C0, #2A54A0) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 0 !important;
    font-family: 'Syne', sans-serif !important;
    font-weight: 800 !important;
    font-size: 12px !important;
    letter-spacing: .14em !important;
    text-transform: uppercase !important;
    min-height: 48px !important;
    box-shadow: 0 6px 22px rgba(56, 104, 192, .36) !important;
    transition: all .22s ease !important;
    cursor: pointer !important;
}

.deposit-terminal-pay-btn:hover {
    filter: brightness(1.1) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 10px 32px rgba(88, 166, 255, .48) !important;
}

.deposit-terminal-pay-btn:active {
    transform: translateY(0) scale(.97) !important;
}

.deposit-terminal .payment-method-hint {
    font-family: 'Syne', sans-serif !important;
    font-size: 12px !important;
    color: #5A7086 !important;
    font-weight: 600 !important;
    line-height: 1.55 !important;
}

.payment-step {
    background: rgba(6, 9, 16, .7) !important;
    border-color: rgba(255, 255, 255, .07) !important;
    border-radius: 0 !important;
}

.payment-step b {
    background: rgba(255, 255, 255, .06) !important;
    border-radius: 0 !important;
    font-family: 'Syne', sans-serif !important;
    font-weight: 800 !important;
}

.payment-step.is-active b, .payment-step.is-done b {
    background: linear-gradient(135deg, #3868C0, #2A54A0) !important;
    color: #fff !important;
    box-shadow: 0 4px 12px rgba(56, 104, 192, .3) !important;
}

.payment-step span {
    font-family: 'Syne', sans-serif !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: .08em !important;
    color: #5A7086 !important;
}

.payment-step.is-active span {
    color: #58A6FF !important;
}

.payment-currency-btn {
    background: rgba(6, 9, 16, .7) !important;
    border-color: rgba(255, 255, 255, .07) !important;
    border-radius: 0 !important;
    color: #5A7086 !important;
    font-family: 'Syne', sans-serif !important;
    font-weight: 700 !important;
    font-size: 11px !important;
    letter-spacing: .06em !important;
    text-transform: uppercase !important;
    transition: all .18s ease !important;
}

.payment-currency-btn:hover {
    border-color: rgba(56, 104, 192, .3) !important;
    color: #fff !important;
}

.payment-currency-btn.is-active {
    background: rgba(56, 104, 192, .12) !important;
    border-color: rgba(56, 104, 192, .4) !important;
    color: #58A6FF !important;
    box-shadow: 0 0 14px rgba(56, 104, 192, .1) !important;
}

.payment-rates-card {
    background: rgba(4, 6, 12, .6) !important;
    border: 1px solid rgba(56, 104, 192, .1) !important;
    border-radius: 0 !important;
    border-left: 3px solid rgba(56, 104, 192, .35) !important;
}

.payment-rates-title {
    font-family: 'Syne', sans-serif !important;
    font-weight: 800 !important;
    font-size: 10px !important;
    text-transform: uppercase !important;
    letter-spacing: .14em !important;
    color: #5A7086 !important;
}

.payment-rates-grid div {
    background: rgba(6, 9, 16, .6) !important;
    border-color: rgba(56, 104, 192, .1) !important;
    border-radius: 0 !important;
    transition: border-color .18s ease !important;
}

.payment-rates-grid div:hover {
    border-color: rgba(56, 104, 192, .28) !important;
}

.payment-rates-grid strong {
    color: #FFFFFF !important;
    font-family: 'Syne', sans-serif !important;
    font-weight: 800 !important;
}

.payment-rates-grid span {
    color: #5A7086 !important;
    font-family: 'Syne', sans-serif !important;
}

html body .deposit-fullscreen-shell, html body .deposit-fullscreen-shell *, html body .deposit-fullscreen-shell *::before, html body .deposit-fullscreen-shell *::after {
    border-radius: 0 !important;
}

@media (max-width: 760px) {
    html body .deposit-fullscreen-shell, html body .deposit-fullscreen-shell * {
        border-radius: 0 !important;
    }

    .deposit-fullscreen-shell {
        border-radius: 0 !important;
    }
}

@keyframes depositModalIn {
    from {
        opacity: 0;
        transform: translateY(24px) scale(.96);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

body.theme-light-red .deposit-fullscreen-backdrop {
    background: rgba(0, 0, 0, .68) !important;
    backdrop-filter: blur(14px) !important;
}

body.theme-light-red .deposit-fullscreen-shell {
    background: #FFFFFF !important;
    border-color: rgba(4, 6, 12, .24) !important;
    box-shadow: 0 40px 100px rgba(0, 0, 0, .22) !important;
}

body.theme-light-red .deposit-fullscreen-shell::before {
    background: linear-gradient(90deg, transparent, #3868C0 40%, transparent) !important;
}

body.theme-light-red .deposit-fullscreen-kicker {
    color: #58A6FF !important;
}

body.theme-light-red .deposit-fullscreen-head h3 {
    color: #04060b !important;
}

body.theme-light-red .deposit-fullscreen-close {
    background: rgba(56, 104, 192, .06) !important;
    border-color: rgba(56, 104, 192, .18) !important;
    color: #58A6FF !important;
}

body.theme-light-red .deposit-fullscreen-close:hover {
    background: rgba(56, 104, 192, .14) !important;
    border-color: rgba(56, 104, 192, .45) !important;
    color: #fff !important;
}

body.theme-light-red .deposit-terminal {
    background: #F8F4F4 !important;
    border-color: rgba(4, 6, 12, .24) !important;
}

body.theme-light-red .deposit-menu-tabs {
    background: #F0EEEE !important;
    border-right-color: rgba(4, 6, 12, .24) !important;
}

body.theme-light-red .deposit-menu-tab {
    color: #607086 !important;
    border-bottom-color: rgba(4, 6, 12, .07) !important;
}

body.theme-light-red .deposit-menu-tab:hover {
    background: rgba(56, 104, 192, .05) !important;
    color: #58A6FF !important;
}

body.theme-light-red .deposit-menu-tab.is-active {
    background: #FFFFFF !important;
    color: #04060b !important;
}

body.theme-light-red .deposit-terminal-head .panel-title {
    color: #04060b !important;
}

body.theme-light-red .deposit-terminal-field span {
    color: #04060b !important;
}

body.theme-light-red .deposit-terminal-field small {
    color: #607086 !important;
}

body.theme-light-red .deposit-currency-select {
    background: #fff !important;
    border-color: rgba(56, 104, 192, .2) !important;
    color: #58A6FF !important;
}

body.theme-light-red .deposit-terminal .payment-method-btn {
    background: #FFFFFF !important;
    border-color: rgba(4, 6, 12, .24) !important;
    color: #04060b !important;
}

body.theme-light-red .deposit-terminal .payment-method-btn:hover {
    border-color: rgba(56, 104, 192, .3) !important;
    background: rgba(56, 104, 192, .04) !important;
    box-shadow: 0 4px 18px rgba(56, 104, 192, .1) !important;
}

body.theme-light-red .deposit-terminal .payment-method-body strong {
    color: #04060b !important;
}

body.theme-light-red .deposit-terminal .payment-method-body small {
    color: #607086 !important;
}

body.theme-light-red .deposit-terminal-input {
    background: #fff !important;
    border-color: rgba(4, 6, 12, .24) !important;
    color: #04060b !important;
}

body.theme-light-red .deposit-terminal-input:focus {
    border-color: rgba(56, 104, 192, .4) !important;
}

body.theme-light-red .deposit-terminal .payment-amount-summary {
    color: #607086 !important;
    border-top-color: rgba(56, 104, 192, .1) !important;
}

body.theme-light-red .deposit-terminal-bottom {
    border-top-color: rgba(56, 104, 192, .1) !important;
}

body.theme-light-red .payment-step {
    background: #FFFFFF !important;
    border-color: rgba(4, 6, 12, .24) !important;
}

body.theme-light-red .payment-step b {
    background: rgba(4, 6, 12, .06) !important;
    color: #04060b !important;
}

body.theme-light-red .payment-step span {
    color: #607086 !important;
}

body.theme-light-red .payment-currency-btn {
    background: #FFFFFF !important;
    border-color: rgba(4, 6, 12, .24) !important;
    color: #607086 !important;
}

body.theme-light-red .payment-currency-btn.is-active {
    background: rgba(56, 104, 192, .07) !important;
    border-color: rgba(56, 104, 192, .3) !important;
    color: #58A6FF !important;
}

body.theme-light-red .payment-rates-card {
    background: #FFFFFF !important;
    border-color: rgba(4, 6, 12, .24) !important;
    border-left-color: rgba(56, 104, 192, .3) !important;
}

body.theme-light-red .payment-rates-title {
    color: #607086 !important;
}

body.theme-light-red .payment-rates-grid div {
    background: #F8F4F4 !important;
    border-color: rgba(4, 6, 12, .08) !important;
}

body.theme-light-red .payment-rates-grid strong {
    color: #04060b !important;
}

body.theme-light-red .payment-rates-grid span {
    color: #607086 !important;
}

body.theme-light-red .deposit-terminal .payment-method-hint {
    color: #607086 !important;
}

body.theme-light-red html body .deposit-fullscreen-shell, body.theme-light-red html body .deposit-fullscreen-shell * {
    border-radius: 0 !important;
}

*, *::before, *::after {
    box-sizing: border-box;
}

html, body {
    overflow-x: hidden !important;
    max-width: 100vw !important;
}

.app-shell {
    display: block !important;
    min-height: 100vh !important;
}

.sidebar-live {
    display: none !important;
}

.main-content {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding: 113px 0 72px !important;
}

.topbar {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 8px 10px !important;
    margin: 0 !important;
    border-radius: 0 !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 150 !important;
    box-sizing: border-box !important;
    width: auto !important;
}

.brand-btn {
    order: 1 !important;
    flex-shrink: 0 !important;
    padding: 8px 8px !important;
    font-size: 13px !important;
    min-height: 38px !important;
    white-space: nowrap !important;
}

.topbar-user-wrap {
    order: 2 !important;
    margin-left: auto !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    flex-shrink: 0 !important;
}

.main-nav {
    order: 3 !important;
    display: flex !important;
    flex-basis: 100% !important;
    width: 100% !important;
    gap: 5px !important;
    flex-wrap: nowrap !important;
    min-width: 0 !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
}

.main-nav::-webkit-scrollbar {
    display: none !important;
}

.nav-btn {
    flex: 1 1 auto !important;
    min-width: max-content !important;
    padding: 8px 10px !important;
    font-size: 11px !important;
    letter-spacing: 0.04em !important;
    text-align: center !important;
    white-space: nowrap !important;
    min-height: 34px !important;
    box-sizing: border-box !important;
    /* Иконка+текст раньше центрировались только через text-align (inline-
       контент), а иконка держалась вплотную к тексту (margin:0 .05em ~0.5px
       у img.solar-icon) -- читалось как "слеплено" и криво по вертикали.
       display:flex с явным gap даёт настоящее центрирование (по коробке, а
       не по метрикам шрифта) и нормальный отступ, тот же gap:7px, что уже
       использует .nav-btn-event (кнопка "Ивент") -- для единообразия. Не
       ломает .main-nav .nav-btn{justify-content:flex-start} в шторе ниже по
       каскаду -- та специфичнее и просто переопределяет just-content. */
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
}

/* .nav-btn{display:flex!important} выше по каскаду -- та же специфичность
   (0,1,0), что и у .hidden{display:none!important} (styles.css, ~строка 6356),
   и стоит НИЖЕ по файлу -- значит побеждает по порядку и делает class="hidden"
   на нав-кнопках нерабочим (баг с видимыми Фьюз/Лесенкой после логина при
   высокой нагрузке). Явный составной селектор .nav-btn.hidden имеет более
   высокую специфичность (0,2,0) и побеждает ВСЕГДА, независимо от порядка --
   не полагаемся больше на случайный порядок правил в файле. */
.nav-btn.hidden {
    display: none !important;
}

.user-meta {
    display: none !important;
}

.balance-chip span {
    display: none !important;
}

.balance-chip {
    padding: 6px 10px !important;
}

.balance-chip strong {
    font-size: 13px !important;
}

.user-avatar {
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    border-radius: 0 !important;
    font-size: 14px !important;
}

#siteLogoutBtn {
    display: none !important;
}

.main-content > section, .main-content > header {
    padding-left: 14px !important;
    padding-right: 14px !important;
}

.topbar {
    padding-left: 12px !important;
    padding-right: 12px !important;
}

.hero-banner {
    display: flex !important;
    flex-direction: column !important;
    gap: 14px !important;
    padding: 16px !important;
    margin-bottom: 14px !important;
    border-radius: 0 !important;
}

.hero-copy h1 {
    font-size: 22px !important;
    line-height: 1.15 !important;
    max-width: none !important;
}

.hero-copy p {
    font-size: 13px !important;
    max-width: none !important;
}

.hero-badge {
    font-size: 10px !important;
    padding: 6px 10px !important;
}

.promo-card {
    padding: 14px !important;
}

.lobby-actions {
    display: flex !important;
    gap: 8px !important;
}

.lobby-action-btn {
    flex: 1 !important;
    min-height: 40px !important;
    padding: 10px 8px !important;
    font-size: 13px !important;
}

.lobby-deposit-main {
    flex: 1.7 !important;
}

.section-head {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 2px !important;
    margin-bottom: 10px !important;
}

.section-head h2 {
    font-size: 20px !important;
}

@media (max-width: 479px) {
    .case-row, .cases-grid {
        grid-template-columns:repeat(2, 1fr) !important;
        gap: 8px !important;
    }

    .case-card {
        min-height: 190px !important;
        border-radius: 0 !important;
        padding: 10px !important;
    }

    .case-visual {
        height: 100px !important;
        max-height: 100px !important;
    }

    .case-emoji {
        font-size: 40px !important;
    }

    .case-title {
        font-size: 12px !important;
    }

    .case-price-row {
        font-size: 11px !important;
    }

    .case-price {
        font-size: 14px !important;
    }

    .case-subtitle {
        font-size: 10px !important;
    }
}

.case-page-layout, .item-page-layout, .fuse-layout, .profile-layout:not(.profile-areas-layout) {
    grid-template-columns:1fr !important;
    gap: 12px !important;
}

.case-showcase {
    padding: 14px !important;
}

.case-showcase-emoji, .item-hero-emoji {
    font-size: 64px !important;
}

.case-showcase-name, .item-hero-name {
    font-size: 22px !important;
}

.loot-preview, .inventory-grid, .related-grid {
    grid-template-columns:repeat(3, 1fr) !important;
    gap: 8px !important;
}

.loot-card, .inventory-card, .related-card, .target-card {
    padding: 8px !important;
}

.loot-emoji {
    font-size: 28px !important;
}

.loot-name {
    font-size: 12px !important;
}

.loot-value {
    font-size: 11px !important;
    margin-top: 3px !important;
}

.multi-open-row {
    gap: 6px !important;
}

.open-count-btn {
    padding: 10px !important;
    min-height: 40px !important;
}

.chance-box {
    grid-template-columns:1fr 1fr !important;
}

.profile-layout.profile-areas-layout {
    grid-template-columns:1fr !important;
}

.profile-hero {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: 12px !important;
}

.profile-user-block {
    flex-shrink: 0;
    min-width: 0;
}

.profile-wallet-area {
    margin-left: auto !important;
    min-width: 0 !important;
    flex-shrink: 0;
    justify-content: flex-end !important;
    gap: 12px !important;
}

.profile-wallet-area .profile-balance-box {
    transform: none !important;
    min-width: 0 !important;
    text-align: right !important;
}

.profile-wallet-area .profile-balance-box span {
    font-size: 11px !important;
}

.profile-avatar-large {
    width: 52px !important;
    height: 52px !important;
}

.profile-balance-box strong {
    font-size: 22px !important;
}

.ops-layout {
    grid-template-columns:1fr !important;
}

.primary-btn, .ghost-btn {
    min-height: 44px !important;
    padding: 11px 14px !important;
}

.modal {
    padding: 10px !important;
}

.modal-card {
    width: 100% !important;
    border-radius: 14px !important;
    padding: 14px !important;
}

@media (min-width: 480px) {
    .main-content {
        padding: 113px 0 72px !important;
    }

    .topbar {
        margin: 0 !important;
        width: auto !important;
    }

    .hero-copy h1 {
        font-size: 26px !important;
    }

    .cases-grid {
        grid-template-columns:repeat(2, 1fr) !important;
        gap: 12px !important;
    }

    .case-card {
        min-height: 220px !important;
        padding: 14px 12px !important;
    }

    .case-visual {
        height: 120px !important;
        max-height: 120px !important;
    }

    .case-emoji {
        font-size: 46px !important;
    }

    .loot-preview, .inventory-grid, .related-grid {
        grid-template-columns:repeat(auto-fill, minmax(120px, 1fr)) !important;
    }

    .user-meta {
        display: block !important;
    }

    .balance-chip span {
        display: block !important;
    }

    .lobby-actions {
        flex-direction: row !important;
        flex-wrap: wrap !important;
    }

    .lobby-action-btn {
        width: auto !important;
        flex: 1 !important;
    }
}

@media (min-width: 768px) {
    .main-content {
        padding: 113px 24px 60px !important;
        max-width: 960px !important;
        margin: 0 auto !important;
    }

    .topbar {
        display: flex !important;
        flex-wrap: wrap !important;
        align-items: center !important;
        gap: 8px !important;
        padding: 10px 16px !important;
        margin: 0 !important;
        width: auto !important;
        border-radius: 0 !important;
    }

    .brand-btn {
        order: 1 !important;
        flex-shrink: 0 !important;
        padding: 10px 18px !important;
        font-size: 14px !important;
        min-height: 40px !important;
    }

    .topbar-user-wrap {
        order: 2 !important;
        margin-left: auto !important;
    }

    .main-nav {
        order: 3 !important;
        flex-basis: 100% !important;
        width: 100% !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        flex-wrap: nowrap !important;
        gap: 6px !important;
        scrollbar-width: none !important;
    }

    .main-nav::-webkit-scrollbar {
        display: none !important;
    }

    .nav-btn {
        flex: none !important;
        min-width: max-content !important;
        white-space: nowrap !important;
        padding: 10px 16px !important;
        font-size: 13px !important;
        min-height: 40px !important;
        letter-spacing: 0.06em !important;
    }

    .user-meta {
        display: block !important;
    }

    .balance-chip span {
        display: block !important;
    }

    .balance-chip {
        padding: 8px 12px !important;
    }

    .user-avatar {
        width: 42px !important;
        height: 42px !important;
        border-radius: 0 !important;
    }

    .hero-banner {
        display: flex !important;
        flex-direction: column !important;
        padding: 18px 22px !important;
        gap: 12px !important;
    }

    .hero-copy h1 {
        font-size: 28px !important;
        max-width: none !important;
    }

    .cases-grid {
        grid-template-columns:repeat(3, 1fr) !important;
        gap: 14px !important;
    }

    .case-card {
        min-height: 235px !important;
        padding: 18px 14px !important;
    }

    .case-visual {
        height: 130px !important;
        max-height: 130px !important;
    }

    .case-emoji {
        font-size: 52px !important;
    }

    .case-page-layout, .item-page-layout, .fuse-layout {
        grid-template-columns:1fr 1fr !important;
        gap: 16px !important;
    }

    .loot-preview, .inventory-grid, .related-grid {
        grid-template-columns:repeat(auto-fill, minmax(130px, 1fr)) !important;
    }

    .ops-layout {
        grid-template-columns:1fr 1fr !important;
    }

    .section-head {
        flex-direction: row !important;
        align-items: flex-end !important;
    }

    .section-head h2 {
        font-size: 24px !important;
    }
}

@media (min-width: 1024px) {
    .app-shell {
        display: block !important;
    }

    .sidebar-live {
        display: flex !important;
        flex-direction: column !important;
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        width: 180px !important;
        height: 100vh !important;
        overflow-y: auto !important;
    }

    .main-content {
        margin-left: 180px !important;
        width: auto !important;
        max-width: none !important;
        min-width: 0 !important;
        padding: 113px 28px 60px !important;
    }

    .topbar {
        display: flex !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 12px !important;
        border-radius: 0 !important;
        margin: 0 !important;
        padding: 10px 16px !important;
        width: auto !important;
    }

    .brand-btn {
        order: unset !important;
        flex-shrink: 0 !important;
    }

    .main-nav {
        order: unset !important;
        flex: 1 !important;
        flex-basis: auto !important;
        width: auto !important;
        min-width: 0 !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        flex-wrap: nowrap !important;
        gap: 6px !important;
        scrollbar-width: none !important;
    }

    .main-nav::-webkit-scrollbar {
        display: none !important;
    }

    .nav-btn {
        flex: none !important;
        min-width: unset !important;
        white-space: nowrap !important;
        font-size: 14px !important;
        padding: 10px 16px !important;
    }

    .topbar-user-wrap {
        order: unset !important;
        margin-left: unset !important;
        flex-shrink: 0 !important;
    }

    .user-meta {
        display: block !important;
    }

    .balance-chip span {
        display: block !important;
    }

    #langToggleBtn {
        width: 72px !important;
        font-size: 16px !important;
        align-self: stretch !important;
    }

    #siteLogoutBtn {
        display: inline-flex !important;
    }

    .hero-copy h1 {
        font-size: 30px !important;
        max-width: none !important;
    }

    .cases-grid {
        grid-template-columns:repeat(auto-fill, minmax(200px, 1fr)) !important;
    }

    .case-card {
        min-height: 248px !important;
        padding: 20px 16px !important;
    }

    .case-visual {
        height: 140px !important;
        max-height: 140px !important;
    }

    .case-emoji {
        font-size: 60px !important;
    }
}

@media (min-width: 1280px) {
    .sidebar-live {
        width: 210px !important;
    }

    .main-content {
        margin-left: 210px !important;
        width: auto !important;
        padding: 113px 32px 60px !important;
    }

    .hero-copy h1 {
        font-size: 38px !important;
        max-width: none !important;
    }

    .cases-grid {
        grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)) !important;
    }

    .case-card {
        min-height: 260px !important;
        padding: 22px 18px !important;
    }

    .case-visual {
        height: 150px !important;
        max-height: 150px !important;
    }

    .case-emoji {
        font-size: 64px !important;
    }

    .topbar {
        border-radius: 0 !important;
    }
}

@media (max-width: 767px) {
    .main-content > section.view, .main-content > section.active-view {
        padding-left: 14px !important;
        padding-right: 14px !important;
    }
}

/* Брейкпоинт поднят с 767px до 1299px вместе со шторой (см. комментарий
   у @media(max-width:1299px) выше, .main-nav) -- этот блок и есть та самая
   компенсация: без него .topbar оставался fixed (унаследовано от базового
   легаси-правила .topbar на 11689), а .main-content всё ещё резервировал
   113px padding-top (см. @media(min-width:768px) выше) под старую
   двухстрочную инлайн-навигацию. В шторном режиме .main-nav скрыт
   (position:fixed, вне потока) и реальный .topbar -- это только
   brand+burger, ~56-64px высотой, а не ~110px. Разница читалась как пустой
   мусорный зазор между хедером и home-live-feed-mobile/live-best-banner
   на 768-1299px (репорт: "около 1014px куча дрисьни между хедером и топ
   дропом"). Ставим topbar в обычный поток (static) и режем padding-top до
   14px -- ровно то же самое решение, что уже стояло здесь для ≤767px,
   просто на весь диапазон шторы. */
@media (max-width: 1299px) {
    .topbar {
        position: static !important;
        top: auto !important;
        left: auto !important;
        right: auto !important;
    }

    .main-content {
        padding-top: 14px !important;
    }
}

.house-rtp-section {
    border-radius: 0 !important;
}

.house-state-bar {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 4px;
}

.house-state-step {
    padding: 5px 12px;
    border-radius: 999px;
    border: 1px solid currentColor;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    cursor: default;
    transition: .15s ease;
    opacity: .55;
}

.house-state-step.is-active {
    opacity: 1;
    font-weight: 900;
    box-shadow: 0 0 12px currentColor;
}

.dash-sublabel {
    font-size: 10px;
    font-weight: 500;
    letter-spacing: .03em;
    margin-top: 2px;
}

body.theme-light-red .house-rtp-section .dash-card {
    background: rgba(255, 255, 255, .6) !important;
}

body.theme-light-red .house-state-step {
    opacity: .45;
}

body.theme-light-red .house-state-step.is-active {
    opacity: 1;
    color: #fff !important;
}

.house-users-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.house-users-table th {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: rgba(255, 255, 255, .4);
    padding: 6px 10px 10px;
    white-space: nowrap;
}

.house-users-table td {
    padding: 8px 10px;
    white-space: nowrap;
    border-top: 1px solid rgba(255, 255, 255, .05);
}

.house-user-row:hover td {
    background: rgba(255, 255, 255, .04);
}

.house-user-name {
    max-width: 160px;
    overflow: hidden;
    text-overflow: ellipsis;
    font-weight: 600;
}

body.theme-light-red .house-users-table th {
    color: rgba(0, 0, 0, .4);
}

body.theme-light-red .house-users-table td {
    border-color: rgba(0, 0, 0, .06);
}

body.theme-light-red .house-user-row:hover td {
    background: rgba(0, 0, 0, .03);
}

.lang-toggle-btn {
    font-size: 16px !important;
    font-weight: 800 !important;
    letter-spacing: .04em !important;
}

.theme-toggle-single .theme-toggle-orbit {
    width: 28px !important;
    height: 28px !important;
}

.theme-toggle-single .theme-toggle-icon-img {
    width: 28px !important;
    height: 28px !important;
}

.burger-btn {
    display: none;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 5px;
    width: 44px;
    flex-shrink: 0;
    align-self: stretch;
    padding: 0;
    background: rgba(255, 255, 255, .04);
    border: 1px solid var(--line);
    border-radius: 14px;
    cursor: pointer;
    transition: background .15s, border-color .15s;
}

.burger-btn:hover {
    background: rgba(56, 104, 192, .07) !important;
    border-color: rgba(56, 104, 192, .3) !important;
}

.burger-btn span {
    display: block;
    width: 20px;
    height: 2px;
    background: var(--text, #eef6ff);
    border-radius: 2px;
    transition: transform .22s, opacity .22s;
}

.burger-btn.is-open span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.burger-btn.is-open span:nth-child(2) {
    opacity: 0;
    transform: scaleX(0);
}

.burger-btn.is-open span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

@media (max-width: 1299px) {
    .burger-btn {
        display: flex !important;
    }

    /* Брейкпоинт поднят с 760px до 1299px (2026-08-21) -- считали содержимое:
       10 пунктов меню + карточка профиля с балансом в одну строку реально
       влезают только начиная примерно с 1300-1400px. От 761 до ~1150px
       бургера уже не было, а .main-nav { flex-wrap:wrap } переносил хвост
       пунктов на вторую-третью строку -- на обычных ноутбучных/планшетных
       ширинах хедер выглядел рваным ни как компактная штора, ни как ровная
       строка. Штора теперь покрывает весь этот промежуток честно.

       Боковая штора вместо разворачивания меню внутри хедера. Раньше пункты
       раскрывались прямо в шапке, раздвигали её и уезжали за экран на длинном
       списке разделов. Теперь панель выезжает слева поверх контента. */
    .main-nav {
        /* Геометрия целиком через !important: выше по файлу у .main-nav уже
           стоит `width: 100% !important` (и ещё пара правил в других медиа),
           из-за которых панель растягивалась на всю ширину и оставалась
           высотой в одну строку. */
        display: flex !important;
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        bottom: 0 !important;
        right: auto !important;
        z-index: 1200 !important;
        width: min(292px, 84vw) !important;
        max-width: none !important;
        height: auto !important;
        flex-direction: column !important;
        flex-wrap: nowrap !important;
        align-items: stretch !important;
        justify-content: flex-start !important;
        gap: 4px !important;
        margin: 0 !important;
        order: 0 !important;
        /* 74px -> 64px: с крупной карточкой профиля сверху (см. #mainNav
           .user-avatar ниже) панель больше не читается как пустой "лоб" над
           мелкой строкой -- саму карточку тоже подняли ближе к бургеру. */
        padding: 64px 14px calc(20px + env(safe-area-inset-bottom)) 14px !important;
        overflow-y: auto !important;
        overscroll-behavior: contain;
        background: linear-gradient(180deg, #0b1120 0%, #050810 100%);
        border-right: 1px solid rgba(255, 255, 255, .08);
        box-shadow: 12px 0 40px rgba(0, 0, 0, .55);
        /* Закрытая штора убрана за край и не ловит касания: без
           visibility/pointer-events она перехватывала бы свайпы у левой
           кромки экрана, оставаясь невидимой. */
        transform: translateX(-100%) !important;
        visibility: hidden !important;
        pointer-events: none !important;
        transition: transform .26s cubic-bezier(.32, .72, .3, 1), visibility 0s linear .26s;
    }

    .main-nav.is-open {
        transform: translateX(0) !important;
        visibility: visible !important;
        pointer-events: auto !important;
        transition: transform .26s cubic-bezier(.32, .72, .3, 1), visibility 0s;
    }

    /* Пункты в шторе — крупные строки во всю ширину, а не чипы. */
    .main-nav .nav-btn {
        width: 100% !important;
        justify-content: flex-start !important;
        text-align: left !important;
        padding: 13px 14px !important;
        font-size: 15px !important;
    }

    .nav-scrim {
        position: fixed;
        inset: 0;
        z-index: 1199;
        background: rgba(0, 0, 0, .55);
        backdrop-filter: blur(2px);
        opacity: 0;
        transition: opacity .26s ease;
    }
    .nav-scrim.is-open { opacity: 1; }

    /* Пока штора открыта, фон под ней не должен прокручиваться. */
    body.nav-drawer-open { overflow: hidden !important; }

    /* Бургер поверх шторы, чтобы им же её и закрыть. */
    .burger-btn { position: relative; z-index: 1250; }

    .topbar {
        flex-wrap: wrap !important;
        justify-content: flex-start !important;
    }

    .theme-toggle-single {
        align-self: center !important;
        height: 44px !important;
    }

    .user-meta {
        display: none !important;
    }

    .user-name, .user-label {
        max-width: 140px !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .user-box {
        width: auto !important;
        justify-content: flex-start !important;
    }

    .topbar-user-wrap, .user-box, .balance-chip {
        min-width: 0 !important;
    }

    .balance-chip strong {
        font-size: 12px !important;
    }

    /* Профиль переехал внутрь шторы (#mainNav, см. index.html) -- просторная
       карточка сверху панели вместо сплюснутой строки в хедере рядом с
       бургером. user-meta:none/max-width на .user-name чуть выше в этом же
       блоке были нужны именно под ту тесноту; здесь её снимаем, обрезка
       (ellipsis) остаётся страховкой на случай длинного имени. Селекторы
       через #mainNav -- специфичность выше голого класса, чтобы надёжно
       перебить все .topbar-user-wrap-правила, рассчитанные на старое место
       в хедере (ниже по каскаду и в других медиа-блоках). */
    #mainNav .topbar-user-wrap {
        order: -1 !important;
        width: 100% !important;
        /* margin-bottom:auto -- не просто отступ, а весь свободный остаток
           высоты шторы: прижимает профиль намертво к верху панели, а все
           пункты режимов ниже по флексу (order:0, естественный DOM-порядок)
           утягивает вниз, к нижнему краю шторы, вместо того чтобы кучковаться
           сразу под профилем с пустотой внизу. */
        margin: 0 0 auto !important;
        padding-bottom: 10px !important;
        border-bottom: 1px solid rgba(255, 255, 255, .08) !important;
    }

    #mainNav .user-box {
        /* .user-box — обычная флекс-строка (avatar+meta+balance-chip в один
           ряд): в широком хедере хватало места всем троим, в узкой шторе
           (~264px) balance-chip после укрупнения аватара и текста уже не
           помещался и вылезал за правый край. flex-wrap переносит его на
           свою строку -- см. flex-basis:100% на самом balance-chip ниже. */
        width: 100% !important;
        flex-wrap: wrap !important;
        justify-content: flex-start !important;
        padding: 16px 14px !important;
        gap: 10px 14px !important;
    }

    /* Аватар 48px терялся в полноширинной строке шторы -- крупнее и с чуть
       более округлым радиусом, чтобы карточка сама держала верх панели, а
       не только текст рядом с мелкой иконкой. */
    #mainNav .user-avatar {
        width: 64px !important;
        height: 64px !important;
        border-radius: 18px !important;
        flex-shrink: 0 !important;
    }

    #mainNav .user-meta {
        display: block !important;
    }

    #mainNav .user-name {
        font-size: 16px !important;
    }

    #mainNav .user-label {
        font-size: 12px !important;
    }

    #mainNav .balance-chip {
        /* flex-basis:100% -- гарантированно своя строка в flex-wrap ряду
           .user-box (ничему не с чем делить строку с ним), а не просто
           "если вдруг не влезет": иначе на чуть более широком телефоне он
           снова встал бы в один ряд с avatar+meta и был бы сплюснут. */
        flex: 1 1 100% !important;
        width: 100% !important;
        box-sizing: border-box !important;
        padding: 8px 12px !important;
        margin-top: 4px !important;
    }

    #mainNav .balance-chip strong {
        font-size: 15px !important;
    }
}

@media (min-width: 1300px) {
    /* На десктопе #mainNav — обычная горизонтальная строка, не штора
       (штора существует только до 1299px, см. блок выше). Профиль тут
       возвращаем в конец строки через order -- визуально то же самое
       место у правого края хедера, что было раньше, когда он был не
       пунктом меню, а отдельным соседом .topbar по флексу. */
    #mainNav .topbar-user-wrap {
        order: 99 !important;
        margin-left: auto !important;
    }

    /* "Тайна-таймер" -- по плану живёт строго в шторе (штора существует
       только до 1299px, см. блок выше), на десктопе горизонтальная строка
       #mainNav для него не место: profile тут уезжает в order:99 конец
       строки, и блок без своего order встал бы первым перед "Главная",
       оторванным от профиля -- визуально не туда. Проще и надёжнее просто
       прятать на десктопе. */
    #mainNav .mystery-timer-block {
        display: none !important;
    }

    /* .main-nav не задаёт align-items, значит по умолчанию stretch -- все
       флекс-дети тянутся под высоту самого высокого. Раньше topbar-user-wrap
       был соседом .topbar, а не .main-nav, и на кнопки-пункты это не влияло;
       теперь он внутри той же строки, и его аватар 48px+паддинги тянул
       компактные .nav-btn под свою высоту. Центрируем вместо растяжения. */
    #mainNav {
        align-items: center !important;
    }
}

.hero-banner {
    background: rgba(3, 5, 9, .94) !important;
    border-color: rgba(56, 104, 192, .1) !important;
    padding: 28px 28px 22px !important;
    gap: 22px !important;
    box-shadow: 0 4px 60px rgba(0, 0, 0, .6), inset 0 0 100px rgba(56, 104, 192, .03) !important;
}

.hero-banner::before {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    background: radial-gradient(ellipse 70% 70% at 105% 115%, rgba(56, 104, 192, .07), transparent) !important;
    pointer-events: none !important;
}

.hero-banner::after {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 1px !important;
    background: linear-gradient(90deg, transparent, rgba(56, 104, 192, .6) 40%, transparent) !important;
    pointer-events: none !important;
}

.hero-copy h1 {
    font-family: 'Syne', sans-serif !important;
    font-size: clamp(32px, 4.5vw, 54px) !important;
    font-weight: 800 !important;
    letter-spacing: -.02em !important;
    text-transform: uppercase !important;
    line-height: .96 !important;
    color: #fff !important;
    max-width: none !important;
}

.hero-copy h1 .h1-digit {
    font-family: 'Oswald', sans-serif !important;
    font-weight: 700 !important;
}

.hero-badge {
    border-radius: 0 !important;
    letter-spacing: .2em !important;
    font-size: 9px !important;
    padding: 5px 12px !important;
    background: linear-gradient(135deg, rgba(56, 104, 192, .9), rgba(8, 60, 140, .85)) !important;
}

.hero-promo-row {
    display: grid !important;
    grid-template-columns:repeat(3, 1fr) !important;
    gap: 0 !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    border: 1px solid rgba(255, 255, 255, .07) !important;
    padding: 0 !important;
}

.promo-stat {
    background: rgba(5, 7, 13, .8) !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 14px 18px !important;
    border-right: 1px solid rgba(255, 255, 255, .06) !important;
}

.promo-stat:last-child {
    border-right: none !important;
}

.promo-stat span {
    font-size: 9px !important;
    letter-spacing: .14em !important;
    text-transform: uppercase !important;
    color: rgba(255, 255, 255, .3) !important;
    margin-bottom: 6px !important;
}

.promo-stat strong {
    font-size: 22px !important;
    font-weight: 600 !important;
    color: #58a6ff !important;
    font-family: 'Oswald', sans-serif !important;
    letter-spacing: .01em !important;
}

.lobby-action-btn {
    border-radius: 0 !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: .06em !important;
    font-size: 12px !important;
}

.lobby-deposit-main {
    font-size: 13px !important;
    letter-spacing: .04em !important;
}

@media (max-width: 520px) {
    .hero-promo-row {
        grid-template-columns:1fr 1fr !important;
    }

    .promo-stat:last-child {
        grid-column: 1 / -1 !important;
        border-right: none !important;
        border-top: 1px solid rgba(255, 255, 255, .06) !important;
    }

    .hero-copy h1 {
        font-size: 28px !important;
    }

    .promo-stat strong {
        font-size: clamp(12px, 3.8vw, 20px) !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }
}

@keyframes burger-item-in {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.main-nav.is-open > * {
    animation: burger-item-in .22s cubic-bezier(.2, .9, .4, 1) both;
}

.main-nav.is-open > *:nth-child(1) {
    animation-delay: 0ms;
}

.main-nav.is-open > *:nth-child(2) {
    animation-delay: 45ms;
}

.main-nav.is-open > *:nth-child(3) {
    animation-delay: 90ms;
}

.main-nav.is-open > *:nth-child(4) {
    animation-delay: 135ms;
}

.main-nav.is-open > *:nth-child(5) {
    animation-delay: 180ms;
}

.main-nav.is-open > *:nth-child(6) {
    animation-delay: 225ms;
}

.pf-card {
    margin-top: 14px;
    padding: 18px !important;
}

.pf-head {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 16px;
}

.pf-lock {
    font-size: 18px;
    line-height: 1;
}

.pf-title {
    font-family: 'Syne', sans-serif;
    font-weight: 800;
    font-size: 14px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--text);
    flex: 1;
}

.pf-help {
    font-size: 11px;
    color: var(--accent);
    border: 1px solid var(--accent);
    width: 18px;
    height: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    font-weight: 700;
    flex-shrink: 0;
}

.pf-row {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 12px;
}

.pf-label {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--muted);
}

.pf-hash-wrap, .pf-input-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
}

.pf-hash {
    font-family: 'DM Mono', monospace;
    font-size: 10px;
    color: var(--accent-3);
    word-break: break-all;
    flex: 1;
    background: rgba(255, 255, 255, .03);
    padding: 6px 8px;
    border: 1px solid var(--line);
    min-width: 0;
}

.pf-hash.pf-prev {
    color: rgba(255, 255, 255, .5);
}

.pf-nonce {
    font-family: 'DM Mono', monospace;
    font-size: 20px;
    font-weight: 700;
    color: var(--text);
}

.pf-input {
    background: rgba(255, 255, 255, .04);
    border: 1px solid var(--line);
    color: var(--text);
    padding: 8px 10px;
    font-family: 'DM Mono', monospace;
    font-size: 12px;
    flex: 1;
    min-width: 0;
}

.pf-input-sm {
    flex: 0 0 90px;
    min-width: 0;
}

.pf-input:focus {
    outline: none;
    border-color: rgba(56, 104, 192, .4);
}

.pf-btn-sm {
    background: rgba(56, 104, 192, .1);
    border: 1px solid rgba(56, 104, 192, .3);
    color: var(--accent);
    font-family: 'Syne', sans-serif;
    font-weight: 700;
    font-size: 11px;
    letter-spacing: .06em;
    padding: 6px 12px;
    cursor: pointer;
    white-space: nowrap;
    flex-shrink: 0;
    transition: background .15s;
}

.pf-btn-sm:hover {
    background: rgba(56, 104, 192, .2);
}

.pf-btn-sm:disabled {
    opacity: .4;
    cursor: not-allowed;
}

.pf-divider {
    height: 1px;
    background: var(--line);
    margin: 12px 0;
}

.pf-verify-section {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.pf-verify-row {
    display: flex;
    align-items: center;
    gap: 8px;
}

.pf-prev-seed {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.pf-result {
    font-family: 'DM Mono', monospace;
    font-size: 12px;
    padding: 8px;
    background: rgba(255, 255, 255, .03);
    border: 1px solid var(--line);
}

.pf-result-ok {
    border-color: rgba(34, 197, 94, .3);
    color: #4ade80;
}

.pf-result-err {
    border-color: rgba(56, 104, 192, .3);
    color: var(--accent);
}

.pf-ok {
    color: #4ade80;
    margin-right: 4px;
}

#profileView .profile-areas-layout {
    display: block !important;
    grid-template-columns:none !important;
    gap: 0 !important;
    margin-top: 14px !important;
}

#profileView .profile-split-card {
    display: grid !important;
    grid-template-columns:minmax(0, 1fr) minmax(0, 1fr) !important;
    grid-template-rows:auto !important;
    align-items: stretch !important;
    gap: 16px !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
}

#profileView .profile-split-pane {
    display: flex !important;
    flex-direction: column !important;
    min-width: 0 !important;
    min-height: 0 !important;
    width: auto !important;
    height: clamp(380px, 62vh, 580px) !important;
    max-height: clamp(380px, 62vh, 580px) !important;
    padding: 16px 18px !important;
    background: linear-gradient(180deg, rgba(255, 255, 255, .05), rgba(255, 255, 255, .025)) !important;
    border: 1px solid var(--line) !important;
    box-shadow: 0 18px 42px rgba(0, 0, 0, .18), 0 1px 0 rgba(255, 255, 255, .04) inset !important;
    overflow: hidden !important;
}

body.theme-light-red #profileView .profile-split-pane {
    background: #FFFFFF !important;
    border-color: rgba(4, 6, 12, .24) !important;
    box-shadow: 0 4px 24px rgba(0, 0, 0, .07), 0 1px 0 rgba(255, 255, 255, .9) inset !important;
}

#profileView .profile-split-pane > .panel-title {
    flex: 0 0 auto !important;
    margin-bottom: 12px !important;
}

#profileView .profile-split-divider {
    display: none !important;
}

#profileView .profile-split-history .combined-history-list {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: none !important;
    height: auto !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain !important;
    padding-right: 2px !important;
    align-content: start !important;
    grid-auto-rows: max-content !important;
}

#profileView .profile-split-inventory .inventory-grid {
    flex: 1 1 0 !important;
    min-height: 0 !important;
    max-height: none !important;
    height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain !important;
    display: grid !important;
    grid-template-columns:repeat(3, 1fr) !important;
    grid-auto-rows: min-content !important;
    gap: 8px !important;
    padding: 8px !important;
    align-content: start !important;
    box-sizing: border-box !important;
}

#profileView .profile-split-inventory .inventory-head-wrapper {
    flex: 0 0 auto !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 12px !important;
    margin-top: 2px !important;
    margin-bottom: 12px !important;
}

#profileView .profile-split-inventory .inventory-actions-header {
    display: flex !important;
    gap: 12px !important;
}

#profileView .profile-split-inventory .inventory-actions-header button {
    flex: 0 0 auto !important;
}

#profileView .profile-split-inventory .inventory-card {
    min-height: 0 !important;
    height: auto !important;
}

@media (max-width: 760px) {
    #profileView .profile-split-card {
        grid-template-columns:minmax(0, 1fr) !important;
        grid-auto-rows: auto !important;
    }

    #profileView .profile-split-pane {
        height: clamp(300px, 46vh, 440px) !important;
        max-height: clamp(300px, 46vh, 440px) !important;
    }
}

.profile-history-accordion {
    margin-bottom: 14px !important;
}

.profile-history-toggle {
    width: 100% !important;
    min-height: 64px !important;
    padding: 14px 18px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    border-radius: 0 !important;
    background: linear-gradient(180deg, rgba(255, 255, 255, .05), rgba(255, 255, 255, .025)) !important;
    border: 1px solid var(--line) !important;
    color: var(--text) !important;
    box-shadow: 0 12px 24px rgba(0, 0, 0, .16) !important;
    cursor: pointer !important;
    text-align: left !important;
}

.profile-history-toggle:hover {
    background: linear-gradient(180deg, rgba(255, 255, 255, .07), rgba(255, 255, 255, .04)) !important;
}

.profile-history-toggle-main {
    display: grid !important;
    gap: 3px !important;
}

.profile-history-toggle-kicker {
    font-size: 11px !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: .08em !important;
    color: var(--muted) !important;
}

.profile-history-toggle-label {
    font-size: 16px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
}

.profile-history-toggle-caret {
    font-size: 20px !important;
    color: var(--muted) !important;
    transition: transform .2s ease !important;
    flex-shrink: 0 !important;
}

.profile-history-toggle[aria-expanded="true"] .profile-history-toggle-caret {
    transform: rotate(180deg) !important;
}

.profile-history-panel {
    overflow: hidden !important;
    max-height: 0 !important;
    transition: max-height .35s cubic-bezier(.4, 0, .2, 1) !important;
}

.profile-history-panel.is-open {
    max-height: 2000px !important;
}

.profile-history-panel-inner {
    padding: 16px 18px !important;
    margin-top: 10px !important;
    max-height: 420px !important;
    overflow-y: auto !important;
    border-radius: 0 !important;
}

.profile-top-row {
    display: grid !important;
    grid-template-columns:1fr 1fr !important;
    gap: 14px !important;
    margin-bottom: 14px !important;
}

.profile-bestdrop-card {
    padding: 16px 18px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
}

.profile-bestdrop-body {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    min-height: 54px !important;
}

.profile-stats-card {
    padding: 16px 18px !important;
}

.profile-stats-body {
    display: grid !important;
    grid-template-columns:1fr 1fr !important;
    gap: 10px 16px !important;
}

@media (max-width: 600px) {
    .profile-top-row {
        grid-template-columns:1fr !important;
        gap: 10px !important;
        margin-bottom: 10px !important;
    }

    .profile-bestdrop-card, .profile-stats-card {
        padding: 14px 15px !important;
    }

    .profile-stats-body {
        grid-template-columns:1fr 1fr !important;
        gap: 8px 12px !important;
    }

    .profile-stats-body > div > div:last-child {
        font-size: 18px !important;
    }

    .profile-bestdrop-item-image {
        width: 40px !important;
        height: 40px !important;
    }
}

body.theme-light-red {
    --line: rgba(4, 6, 12, .24);
}

body.theme-light-red .ops-surface, body.theme-light-red .ops-card {
    background: #FFFFFF !important;
    border-color: rgba(4, 6, 12, .24) !important;
}

body.theme-light-red .combined-history-row, body.theme-light-red .ops-list-soft, body.theme-light-red .ops-promo-row, body.theme-light-red .ops-item-row, body.theme-light-red .ops-case-row-extended {
    border-color: rgba(4, 6, 12, .22) !important;
}

body.theme-light-red .combined-history-icon {
    background: rgba(4, 6, 12, .05) !important;
}

body.theme-light-red .theme-toggle-single {
    background: #FFFFFF !important;
    border-color: rgba(4, 6, 12, .24) !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, .08) !important;
}

.profile-user-block {
    flex: 1 1 auto !important;
    min-width: 0 !important;
}

.profile-avatar-large {
    flex: 0 0 auto !important;
}

.profile-user-block > div:not(.profile-avatar-large) {
    min-width: 0 !important;
    overflow: hidden !important;
    flex: 1 1 auto !important;
}

.profile-username, .profile-user-block .muted {
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    max-width: 100% !important;
}

.profile-wallet-area {
    flex: 0 0 auto !important;
    margin-left: 0 !important;
    min-width: 0 !important;
}

.profile-wallet-area .profile-balance-box {
    min-width: 0 !important;
}

.profile-wallet-area .profile-balance-box strong {
    white-space: nowrap !important;
}

@media (max-width: 479px) {
    .profile-hero {
        gap: 8px !important;
    }

    #profileAvatarLarge {
        width: 48px !important;
        height: 48px !important;
        min-width: 48px !important;
        min-height: 48px !important;
        flex-basis: 48px !important;
        font-size: 20px !important;
        flex-shrink: 0 !important;
    }

    .profile-wallet-area {
        gap: 8px !important;
    }

    .profile-wallet-area .profile-balance-box strong {
        font-size: 16px !important;
    }
}

@media (max-width: 479px) {
    .lobby-actions {
        gap: 6px !important;
    }

    .lobby-action-btn {
        flex: 1 1 0 !important;
        min-width: 0 !important;
        padding: 9px 6px !important;
        font-size: 11px !important;
        letter-spacing: .02em !important;
    }

    .lobby-deposit-main {
        flex: 1 1 0 !important;
        font-size: 11px !important;
    }
}

#profileView .profile-split-inventory .inventory-card {
    aspect-ratio: 8/5 !important;
    min-height: unset !important;
    width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    padding: 0 !important;
    gap: 0 !important;
    position: relative !important;
    min-height: 0 !important;
}

#profileView .profile-split-inventory .inventory-card .inventory-card-top {
    flex: 1 1 auto !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 4px !important;
    padding: 8px 6px 4px !important;
    text-align: center !important;
    min-height: 0 !important;
    overflow: hidden !important;
}

#profileView .profile-split-inventory .inventory-card .inventory-image {
    width: 52% !important;
    height: auto !important;
    max-height: 55% !important;
    object-fit: contain !important;
    flex-shrink: 0 !important;
}

#profileView .profile-split-inventory .inventory-card .item-emoji.big {
    font-size: clamp(26px, 3.5vw, 38px) !important;
    line-height: 1 !important;
    margin: 0 !important;
    flex-shrink: 0 !important;
}

#profileView .profile-split-inventory .inventory-card .item-name {
    font-size: 10px !important;
    font-weight: 700 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    width: 100% !important;
    text-align: center !important;
    margin: 2px 0 0 !important;
    letter-spacing: .02em !important;
}

#profileView .profile-split-inventory .inventory-card .item-value {
    font-size: 9px !important;
    text-align: center !important;
    margin: 1px 0 0 !important;
    opacity: .75 !important;
}

#profileView .profile-split-inventory .inventory-card .inventory-actions {
    flex: 0 0 auto !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0 !important;
    padding: 4px 6px 6px !important;
    border-top: 1px solid rgba(255, 255, 255, .07) !important;
}

#profileView .profile-split-inventory .inventory-card .item-source {
    display: block !important;
    text-align: center !important;
    font-size: 9px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    width: 100% !important;
    margin-bottom: 3px !important;
}

#profileView .profile-split-inventory .inventory-card .sell-btn {
    width: 100% !important;
    margin: 0 !important;
    font-size: 10px !important;
    padding: 3px 6px !important;
    min-height: 0 !important;
    height: auto !important;
    line-height: 1.4 !important;
}

.loot-chip, .loot-chip-static {
    cursor: default !important;
    pointer-events: none !important;
    min-width: 0 !important;
    overflow: hidden !important;
}

.loot-chip:hover, .loot-chip-static:hover {
    transform: none !important;
    border-color: var(--line) !important;
    box-shadow: none !important;
}

.loot-chip strong {
    min-width: 0 !important;
    overflow: hidden !important;
}

.loot-chip em {
    flex-shrink: 0 !important;
    white-space: nowrap !important;
}

#caseLootPreview.loot-preview {
    grid-template-columns:repeat(auto-fill, minmax(185px, 1fr)) !important;
}

/* On a real phone, 185px minmax leaves room for exactly one column, and
   .loot-chip itself is a horizontal flex row (icon-name-value in a line,
   see base rule above) — together that renders as a stack of thin, long
   single-column rows instead of a grid. Forced to 2 columns of square
   card-style chips here (image on top, name/value centered below),
   scoped to #caseLootPreview specifically since .loot-chip is only ever
   used inside it (no risk to any other grid sharing the .loot-preview
   class elsewhere). */
@media (max-width: 760px) {
    #caseLootPreview.loot-preview {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 10px;
    }

    #caseLootPreview .loot-chip {
        flex-direction: column;
        justify-content: flex-start;
        align-items: center;
        text-align: center;
        gap: 8px;
        padding: 16px 10px 14px;
    }

    #caseLootPreview .loot-chip-image {
        width: 60px;
        height: 60px;
    }

    #caseLootPreview .loot-chip span {
        font-size: 42px;
    }

    #caseLootPreview .loot-chip strong {
        flex: none;
        width: 100%;
        font-size: 13px;
        line-height: 1.25;
        overflow-wrap: break-word;
    }

    #caseLootPreview .loot-chip em {
        white-space: normal;
    }
}

body.theme-light-red .loot-chip {
    background: #FFFFFF !important;
}

body.theme-light-red .loot-chip strong {
    color: #04060b !important;
}

body.theme-light-red .loot-chip em {
    color: #3A5A8A !important;
}

body.theme-light-red .case-section-title {
    color: #04060b !important;
}

.topbar {
    width: auto !important;
    margin-left: 14px !important;
    margin-right: 14px !important;
}

@media (max-width: 760px) {
    .deposit-terminal, .deposit-fullscreen-shell .deposit-terminal {
        grid-template-columns:1fr !important;
        margin: 14px !important;
    }

    .deposit-menu-tabs {
        grid-template-columns:repeat(4, 1fr) !important;
        border-right: 0 !important;
        border-bottom: 1px solid rgba(56, 104, 192, .16) !important;
    }

    .deposit-menu-tab {
        min-height: 58px !important;
    }

    .deposit-menu-tab-icon {
        font-size: 20px !important;
    }

    .deposit-menu-tab strong {
        font-size: 8px !important;
    }

    .deposit-terminal-main {
        padding: 16px !important;
        min-width: 0 !important;
    }

    .deposit-terminal .payment-gui, .deposit-terminal .payment-methods-group {
        display: grid !important;
        grid-template-columns:1fr !important;
        gap: 10px !important;
    }

    .deposit-terminal .payment-method-btn {
        min-height: auto !important;
        width: 100% !important;
        min-width: 0 !important;
    }

    .deposit-fullscreen-head h3 {
        font-size: 18px !important;
        line-height: 1.1 !important;
    }

    .deposit-terminal-head {
        flex-wrap: wrap !important;
        gap: 10px !important;
    }

    .deposit-terminal-head .panel-title {
        display: none !important;
    }
}

@media (min-width: 761px) {
    .deposit-terminal-bottom {
        grid-template-columns:1fr 1fr !important;
    }

    .deposit-terminal-bottom .deposit-terminal-pay-btn {
        grid-column: 1 / -1 !important;
        width: 100% !important;
    }
}

.ops-reset-grid {
    display: grid;
    grid-template-columns:repeat(auto-fill, minmax(240px, 1fr));
    gap: 12px;
    margin-top: 6px;
}

.ops-reset-card {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 14px;
    border: 1px solid var(--line);
    background: rgba(255, 255, 255, .03);
}

body.theme-light-red .ops-reset-card {
    background: #fff;
    border-color: rgba(4, 6, 12, .12);
}

.ops-reset-card-danger {
    border-color: rgba(56, 104, 192, .45);
    background: rgba(56, 104, 192, .06);
}

.ops-reset-title {
    font-family: 'Syne', sans-serif;
    font-weight: 800;
    font-size: 14px;
    color: var(--text);
}

.ops-reset-desc {
    font-size: 12px;
    line-height: 1.45;
    flex: 1;
}

.ops-reset-card .danger-btn {
    align-self: flex-start;
    padding: 8px 16px;
}

.ops-reset-result {
    margin-bottom: 12px;
    padding: 10px 14px;
    border: 1px solid rgba(34, 197, 94, .4);
    background: rgba(34, 197, 94, .1);
    color: #16a34a;
    font-weight: 700;
}

.ops-reset-card-player .ops-input {
    width: 100%;
}

.ops-reset-player-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.danger-btn.small {
    padding: 4px 10px;
    font-size: 12px;
    line-height: 1;
}

.ops-support-message {
    padding: 12px 14px;
    border: 1px solid var(--line);
    background: rgba(255, 255, 255, .03);
    margin-bottom: 8px;
}

body.theme-light-red .ops-support-message {
    background: #fff;
    border-color: rgba(4, 6, 12, .12);
}

.ops-support-message.is-unread {
    border-left: 3px solid var(--accent);
}

.ops-support-message.is-replied {
    border-left: 3px solid #16a34a;
}

.ops-support-msg-head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 6px;
}

.ops-support-msg-head strong {
    color: var(--text);
}

.ops-support-msg-head small {
    color: var(--muted);
    font-size: 12px;
}

.ops-support-msg-head .ops-support-delete {
    margin-left: auto;
}

.ops-support-msg-text {
    color: var(--text);
    word-break: break-word;
}

.ops-support-msg-reply {
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px dashed var(--line);
    color: var(--text);
    word-break: break-word;
}

@keyframes ldr-fill-pulse {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: .65;
    }
}

@keyframes ldr-idle-bob {
    0%, 100% {
        transform: translateX(-50%) translateY(0px);
    }
    50% {
        transform: translateX(-50%) translateY(-4px);
    }
}

@keyframes ldr-climb-bounce {
    0% {
        transform: translateX(-50%) scaleY(1) scaleX(1);
    }
    25% {
        transform: translateX(-50%) scaleY(0.8) scaleX(1.15);
    }
    55% {
        transform: translateX(-50%) scaleY(1.15) scaleX(0.9);
    }
    80% {
        transform: translateX(-50%) scaleY(0.95) scaleX(1.03);
    }
    100% {
        transform: translateX(-50%) scaleY(1) scaleX(1);
    }
}

@keyframes ldr-char-fall {
    0% {
        transform: translateX(-50%) rotate(0deg);
        opacity: 1;
    }
    20% {
        transform: translateX(-70%) rotate(-25deg);
    }
    50% {
        transform: translateX(-30%) rotate(40deg);
        opacity: 0.9;
    }
    80% {
        transform: translateX(-60%) rotate(-15deg) translateY(180px);
        opacity: 0.5;
    }
    100% {
        transform: translateX(-50%) rotate(-10deg) translateY(260px);
        opacity: 0;
    }
}

@keyframes ldr-hazard-drop {
    0% {
        top: -64px;
        opacity: 0;
        transform: rotate(-10deg) scale(0.7);
    }
    12% {
        opacity: 1;
        transform: rotate(6deg) scale(1);
    }
    55% {
        transform: rotate(-8deg) scale(1.05);
    }
    80% {
        opacity: 0.88;
        transform: rotate(12deg) scale(1.12);
    }
    100% {
        top: 65%;
        opacity: 0;
        transform: rotate(-5deg) scale(0.5);
    }
}

.lsb-stones {
    flex-shrink: 0;
    width: 44px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.lsb-stones svg {
    width: 100%;
    height: 100%;
}

.lsb-body {
    min-width: 0;
}

.lsb-name {
    font-weight: 700;
    font-size: 13px;
    color: #fff;
    white-space: nowrap;
}

.lsb-meta {
    font-size: 11px;
    color: rgba(255, 255, 255, .45);
    margin-top: 2px;
    white-space: nowrap;
}

@media (max-width: 600px) {
    .lsb-stones {
        display: none;
    }
}

.lvc-icon {
    width: 52px !important;
    height: 52px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 12px !important;
    transition: background .22s ease, transform .22s ease !important;
}

.lvc-icon svg {
    width: 80% !important;
    height: 80% !important;
    display: block !important;
}

.lvc-icon-easy {
    background: rgba(74, 222, 128, .08) !important;
    border: 1px solid rgba(74, 222, 128, .18) !important;
}

.lvc-icon-medium {
    background: rgba(148, 163, 184, .08) !important;
    border: 1px solid rgba(148, 163, 184, .18) !important;
}

.lvc-icon-heavy {
    background: rgba(56, 104, 192, .08) !important;
    border: 1px solid rgba(56, 104, 192, .22) !important;
}

.lvc-body {
    display: flex !important;
    flex-direction: column !important;
    gap: 3px !important;
    align-items: center !important;
}

.lvc-name {
    font-size: 11px !important;
    font-weight: 800 !important;
    color: rgba(255, 255, 255, .65) !important;
    text-transform: uppercase !important;
    letter-spacing: .07em !important;
    line-height: 1 !important;
    font-family: var(--font-main, 'Syne', sans-serif) !important;
}

.lvc-subtitle {
    font-size: 10px !important;
    color: rgba(255, 255, 255, .28) !important;
    letter-spacing: .02em !important;
    line-height: 1.1 !important;
}

body.theme-light-red .lvc-name {
    color: rgba(0, 0, 0, .6) !important;
}

body.theme-light-red .lvc-subtitle {
    color: rgba(0, 0, 0, .35) !important;
}

@media (max-width: 480px) {
    .lvc-icon {
        width: 40px !important;
        height: 40px !important;
    }
}

#lsrHeightControls {
    display: none;
}

body.is-owner #lsrHeightControls {
    display: flex;
}

.nav-btn[data-nav].is-closed {
    position: relative !important;
    overflow: hidden !important;
    pointer-events: none !important;
    color: rgba(255, 255, 255, .35) !important;
}

.nav-btn[data-nav].is-closed.ops-can-open {
    pointer-events: auto !important;
    color: var(--text) !important;
}

.nav-btn[data-nav].is-closed::after {
    content: attr(data-ribbon-text) !important;
    position: absolute !important;
    left: -55% !important;
    right: -55% !important;
    top: 50% !important;
    margin-top: -11px !important;
    height: 22px !important;
    line-height: 22px !important;
    text-align: center !important;
    background: #1E4082 !important;
    color: #fff !important;
    font-family: Impact, 'Arial Black', sans-serif !important;
    font-size: 10px !important;
    letter-spacing: 0.45em !important;
    text-transform: uppercase !important;
    transform: rotate(-21deg) !important;
    box-shadow: none !important;
    pointer-events: none !important;
    z-index: 20 !important;
}

.nav-btn[data-nav].is-closed.ops-can-open::after {
    opacity: 0.5 !important;
}

.ops-staff-perms {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.ops-staff-perm {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 7px 12px;
    border: 1px solid var(--border, rgba(255, 255, 255, .12));
    border-radius: 8px;
    cursor: pointer;
    font-size: 13px;
    user-select: none;
    transition: border-color .15s, background .15s;
}

.ops-staff-perm:hover {
    border-color: rgba(88, 166, 255, .55);
}

.ops-staff-perm:has(input:checked) {
    border-color: #58A6FF;
    background: rgba(88, 166, 255, .12);
}

.ops-staff-perm input {
    width: 15px !important;
    height: 15px !important;
    margin: 0 !important;
    padding: 0 !important;
    min-height: 0 !important;
    accent-color: #58A6FF;
    cursor: pointer;
}

.ops-staff-row {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    padding: 12px 0;
    border-bottom: 1px solid rgba(255, 255, 255, .07);
}

.ops-staff-row.is-off {
    opacity: .5;
}

.ops-staff-row .ops-staff-login {
    font-weight: 700;
    min-width: 120px;
}

.ops-staff-row .ops-staff-tags {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    flex: 1;
}

.ops-staff-tag {
    padding: 3px 9px;
    border-radius: 999px;
    background: rgba(88, 166, 255, .14);
    border: 1px solid rgba(88, 166, 255, .3);
    font-size: 12px;
}

.ops-closures-grid {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.ops-closure-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 0;
    border-bottom: 1px solid var(--border, rgba(255, 255, 255, .07));
}

.ops-closure-row:last-child {
    border-bottom: none;
}

.ops-closure-info {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    min-width: 0;
}

.ops-closure-icon {
    font-size: 20px;
    width: 32px;
    text-align: center;
    flex-shrink: 0;
}

.ops-closure-name {
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
}

.ops-closure-desc {
    font-size: 12px;
    margin-top: 2px;
    opacity: .6;
}

.ops-closure-switch {
    position: relative;
    display: inline-block;
    width: 44px;
    height: 24px;
    flex-shrink: 0;
}

.ops-closure-switch input {
    opacity: 0;
    width: 0;
    height: 0;
}

.ops-closure-slider {
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, .12);
    border-radius: 24px;
    cursor: pointer;
    transition: background .2s;
}

.ops-closure-slider::before {
    content: '';
    position: absolute;
    width: 18px;
    height: 18px;
    left: 3px;
    top: 3px;
    background: #fff;
    border-radius: 50%;
    transition: transform .2s;
}

.ops-closure-switch input:checked + .ops-closure-slider {
    background: #1E4082;
}

.ops-closure-switch input:checked + .ops-closure-slider::before {
    transform: translateX(20px);
}

.ops-closure-status {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    width: 48px;
    text-align: right;
    flex-shrink: 0;
}

.ops-closure-status.is-open {
    color: #22c55e;
}

.ops-closure-status.is-closed-label {
    color: #1E4082;
}

.char-prev-states {
    display: flex;
    gap: 8px;
    margin-bottom: 16px;
}

.char-state-btn {
    flex: 1;
    padding: 8px 0;
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, .12);
    background: rgba(255, 255, 255, .05);
    color: rgba(255, 255, 255, .55);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: background .15s, color .15s, border-color .15s;
}

.char-state-btn:hover {
    background: rgba(255, 255, 255, .1);
    color: rgba(255, 255, 255, .85);
}

.char-state-btn.is-active {
    background: rgba(30, 64, 130, .25);
    border-color: rgba(30, 64, 130, .55);
    color: #fff;
}

body.theme-light-red .char-state-btn {
    border-color: rgba(0, 0, 0, .12);
    background: rgba(0, 0, 0, .04);
    color: rgba(0, 0, 0, .5);
}

body.theme-light-red .char-state-btn.is-active {
    background: rgba(30, 64, 130, .12);
    border-color: rgba(30, 64, 130, .4);
    color: #1E4082;
}

.char-prev-outer {
    overflow: auto;
    border-radius: 10px;
    background: #111;
    background-image: linear-gradient(45deg, #1c1c1c 25%, transparent 25%),
    linear-gradient(-45deg, #1c1c1c 25%, transparent 25%),
    linear-gradient(45deg, transparent 75%, #1c1c1c 75%),
    linear-gradient(-45deg, transparent 75%, #1c1c1c 75%);
    background-size: 20px 20px;
    background-position: 0 0, 0 10px, 10px -10px, -10px 0px;
    background-color: #141414;
    margin-bottom: 16px;
    border: 1px solid rgba(255, 255, 255, .08);
}

body.theme-light-red .char-prev-outer {
    background-color: #e8e8e8;
    background-image: linear-gradient(45deg, #d8d8d8 25%, transparent 25%),
    linear-gradient(-45deg, #d8d8d8 25%, transparent 25%),
    linear-gradient(45deg, transparent 75%, #d8d8d8 75%),
    linear-gradient(-45deg, transparent 75%, #d8d8d8 75%);
    border-color: rgba(0, 0, 0, .1);
}

.char-prev-viewport {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    min-height: 120px;
    transition: min-height .2s, width .2s;
}

#opsCharCanvas {
    image-rendering: pixelated;
    image-rendering: crisp-edges;
    display: block;
}

.char-prev-scale-row {
    display: flex;
    align-items: center;
    gap: 10px;
}

.char-scale-btn {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, .15);
    background: rgba(255, 255, 255, .07);
    color: #fff;
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
    flex-shrink: 0;
    transition: background .12s;
    display: flex;
    align-items: center;
    justify-content: center;
}

.char-scale-btn:hover {
    background: rgba(255, 255, 255, .14);
}

body.theme-light-red .char-scale-btn {
    border-color: rgba(0, 0, 0, .15);
    background: rgba(0, 0, 0, .05);
    color: #222;
}

.char-prev-track {
    flex: 1;
    height: 6px;
    border-radius: 3px;
    background: rgba(255, 255, 255, .1);
    overflow: hidden;
}

.char-prev-fill {
    height: 100%;
    background: #1E4082;
    border-radius: 3px;
    transition: width .15s;
}

body.theme-light-red .char-prev-track {
    background: rgba(0, 0, 0, .1);
}

#withdrawalModal .deposit-fullscreen-shell {
    max-width: 700px;
    /* Was also overflow:auto (inherited from the shared .deposit-fullscreen-
       shell base rule), stacking a SECOND scroll region on top of
       .withdrawal-modal-body's own overflow-y:auto below -- scrolling deep
       into the item list, then hitting the end of the shell's own scroll
       with more content still below, was disorienting. Flex column so the
       head stays fixed-height and the body flex-grows to fill the rest,
       with only the body actually scrolling.
       !important is required here: a later unscoped `.deposit-fullscreen-
       shell { overflow-y: auto !important; ... }` rule (styles.css ~10884,
       applies to every theme, not theme-scoped despite sitting near
       theme-scoped rules) otherwise wins regardless of this selector's
       higher specificity -- confirmed live: with few withdrawable items the
       shell's content happened to already fit under 92vh so the conflict
       was invisible, but it silently returns the double-scroll the moment
       content is tall enough (more items, wager block shown, etc.). */
    display: flex;
    flex-direction: column;
    overflow: hidden !important;
}

#withdrawalModal .deposit-fullscreen-head {
    flex: 0 0 auto;
}

.withdrawal-modal-body {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 16px 24px 24px;
    overflow-y: auto;
    /* flex:1 1 auto + min-height:0 is what actually makes overflow-y:auto
       take effect inside a flex column instead of the body just growing
       past its flex parent's height (the classic flex-child-ignores-
       overflow trap). */
    flex: 1 1 auto;
    min-height: 0;
}

/* ── Шаги вывода ─────────────────────────────────────────────────────────────
   Раньше всё шло подряд одним весом и сетка инвентаря съедала экран целиком.
   Теперь каждый шаг — отдельная карточка с номером, а выполненный подсвечен. */
.wdr-step {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 14px;
    border: 1px solid rgba(255, 255, 255, .09);
    border-radius: 16px;
    background: rgba(255, 255, 255, .022);
    transition: border-color .18s, background .18s;
}

.wdr-step.is-done {
    border-color: rgba(88, 166, 255, .34);
    background: rgba(88, 166, 255, .045);
}

.wdr-step-head {
    display: flex;
    align-items: center;
    gap: 12px;
}

.wdr-step-num {
    flex: 0 0 auto;
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    border: 1.5px solid rgba(255, 255, 255, .22);
    font-size: 13px;
    font-weight: 800;
    color: rgba(255, 255, 255, .62);
    transition: all .18s;
}

.wdr-step.is-done .wdr-step-num {
    border-color: transparent;
    background: var(--accent, #3868c0);
    color: #fff;
    font-size: 0;
}

.wdr-step.is-done .wdr-step-num::after {
    content: '✓';
    font-size: 14px;
    line-height: 1;
}

.wdr-step-titles {
    min-width: 0;
}

.wdr-step-title {
    font-size: 15px;
    font-weight: 800;
    letter-spacing: .01em;
}

.wdr-step-sub {
    margin-top: 2px;
    font-size: 12px;
    line-height: 1.35;
    color: rgba(255, 255, 255, .5);
}

.withdrawal-selected-bar {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    padding: 10px 16px;
    background: rgba(255, 255, 255, .05);
    border: 1px solid rgba(255, 255, 255, .10);
    border-radius: 14px;
    font-size: 13px;
}

.withdrawal-selected-bar #withdrawalSelectedCount {
    font-weight: 700;
    color: #fff;
}

.withdrawal-selected-bar .muted {
    color: var(--accent, #3868c0);
    font-weight: 700;
}

.withdrawal-selected-items {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    min-height: 0;
}

.wdr-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 10px;
    background: rgba(255, 255, 255, .07);
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 10px;
    font-size: 12px;
    font-weight: 600;
    cursor: default;
}

.wdr-chip-remove {
    cursor: pointer;
    opacity: .55;
    font-size: 11px;
    transition: opacity .12s;
}

.wdr-chip-remove:hover {
    opacity: 1;
    color: var(--accent, #3868c0);
}

/* Липкая панель действия — итог и кнопка не уезжают за край длинной сетки. */
.wdr-actionbar {
    position: sticky;
    bottom: -28px;
    z-index: 3;
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 4px -28px -28px;
    padding: 14px 28px 20px;
    background: linear-gradient(to top, var(--panel, #0f1620) 62%, rgba(15, 22, 32, 0));
    border-top: 1px solid rgba(255, 255, 255, .07);
}

/* Раньше сумма и кнопка стояли в ряд (сумма слева, кнопка справа) -- на
   обычной ширине (не только на мобильном, для которого ниже был отдельный
   @media) двухстрочный текст суммы рядом с крупной кнопкой читался криво.
   Колонка теперь всегда: сумма сверху, кнопка на всю ширину под ней --
   мобильный @media ниже, который делал ровно то же самое, стал не нужен. */
.wdr-actionbar-row {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
}

.wdr-actionbar-sum {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1;
}

.wdr-actionbar-count {
    font-size: 12px;
    line-height: 1.2;
    color: rgba(255, 255, 255, .55);
}

.wdr-actionbar-value {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 21px;
    font-weight: 800;
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
}

/* Глобальная замена «TOK» на иконку задаёт ей размер в em и сдвиг базовой
   линии — на крупном полужирном числе монета отваливалась вбок и вниз,
   и сумма читалась как два не связанных куска. Здесь размер фиксированный,
   отступы снимаем: выравнивание держит сам flex. */
.wdr-actionbar-value .token-inline-icon {
    width: 18px;
    height: 18px;
    margin: 0;
    vertical-align: 0;
    flex: 0 0 auto;
}

.wdr-actionbar .withdrawal-submit-btn {
    width: 100%;
}

.wdr-actionbar-hint {
    font-size: 12px;
    line-height: 1.4;
    color: rgba(255, 255, 255, .48);
}

.wdr-actionbar-hint.is-blocking {
    color: #ffb454;
}

/* ─── История заявок -- внутри .wdr-actionbar, под подсказкой ника ─────
   Заголовок и панель без своей рамки/фона/тени -- голый текст внутри уже
   готового фона каркаса (.wdr-actionbar), не отдельная коробка поверх
   коробки. Только сами строки заявок в списке выглядят карточками, тем же
   приёмом, что уже проверенный .wdr-chip. */
.wdr-history {
    margin-top: 10px;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 12px;
    padding: 4px 12px;
}

.wdr-history-head {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 0;
    background: none;
    border: none;
    box-shadow: none;
    color: var(--text);
    font-family: 'Syne', sans-serif;
    cursor: pointer;
    text-align: left;
}

.wdr-history-head-label {
    font-size: 13px;
    font-weight: 700;
}

.wdr-history-head-caret {
    font-size: 15px;
    color: var(--muted);
    transition: transform .2s ease;
    flex-shrink: 0;
}

.wdr-history-head[aria-expanded="true"] .wdr-history-head-caret {
    transform: rotate(180deg);
}

.wdr-history-body {
    overflow: hidden;
    max-height: 0;
    transition: max-height .35s cubic-bezier(.4, 0, .2, 1);
}

.wdr-history-body.is-open {
    max-height: 320px;
}

.wdr-history-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    max-height: 320px;
    overflow-y: auto;
    padding: 4px 0 8px;
}

.wdr-history-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    background: rgba(255, 255, 255, .07);
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 10px;
}

.wdr-history-main {
    display: flex;
    flex-direction: column;
    gap: 5px;
    min-width: 0;
    flex: 1;
}

.wdr-history-top, .wdr-history-bottom {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
}

.wdr-history-items {
    font-size: 12.5px;
    font-weight: 600;
    color: var(--text);
    overflow-wrap: anywhere;
}

.wdr-history-status {
    font-size: 11.5px;
    font-weight: 700;
    white-space: nowrap;
    flex-shrink: 0;
    color: var(--muted);
}

.wdr-history-row.status-pending .wdr-history-status { color: #ffd36e; }
.wdr-history-row.status-approved .wdr-history-status { color: #55e08a; }
.wdr-history-row.status-rejected .wdr-history-status { color: #ff6b6b; }
.wdr-history-row.status-cancelled .wdr-history-status { color: var(--muted); }

.wdr-history-value {
    font-size: 11.5px;
    font-weight: 700;
    color: #e8c840;
}

.wdr-history-date {
    font-size: 11.5px;
    color: rgba(255, 255, 255, .48);
    overflow-wrap: anywhere;
}

.wdr-history-actions {
    display: flex;
    flex-shrink: 0;
}

.wdr-history-locked {
    font-size: 11.5px;
    flex-shrink: 0;
    max-width: 130px;
    text-align: right;
}

@media (max-width: 560px) {
    .withdrawal-modal-body {
        padding: 14px 16px 20px;
    }

    .wdr-actionbar {
        margin: 4px -16px -20px;
        padding: 12px 16px 16px;
        bottom: -20px;
    }
}

.withdrawal-inventory-grid {
    display: grid;
    grid-template-columns:repeat(auto-fill, minmax(108px, 1fr));
    gap: 10px;
    /* No own max-height/overflow -- this used to be its own scroll region
       nested inside .withdrawal-modal-body, which is ALSO scrollable, which
       is ALSO nested inside .deposit-fullscreen-shell's own overflow:auto --
       three scroll containers stacked for one modal. Now it just grows with
       its content and the single outer .withdrawal-modal-body scroll (see
       below) handles everything, including the grid. */
    padding: 2px 2px 4px;
}

/* На телефоне — ровно три предмета в ряд. Через auto-fill не выходило: при
   ширине сетки 342px три колонки по 108px с двумя зазорами требуют 344px,
   не хватало двух пикселей, и раскладка сваливалась на две штуки во всю
   ширину. */
@media (max-width: 560px) {
    .withdrawal-inventory-grid {
        grid-template-columns:repeat(3, minmax(0, 1fr));
        gap: 8px;
    }
}

.wdr-item-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 12px 8px 8px;
    border-radius: 16px;
    cursor: pointer;
    background: rgba(255, 255, 255, .05);
    border: 2px solid rgba(255, 255, 255, .08);
    transition: border-color .15s, background .15s, transform .12s;
    position: relative;
    text-align: center;
    user-select: none;
}

.wdr-item-card:hover {
    border-color: rgba(255, 255, 255, .22);
    background: rgba(255, 255, 255, .08);
    transform: translateY(-1px);
}

.wdr-item-card.is-selected {
    border-color: var(--accent, #3868c0);
    background: rgba(56, 104, 192, .10);
}

.wdr-item-media {
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.wdr-item-icon {
    width: 56px;
    height: 56px;
    object-fit: contain;
    border-radius: 8px;
}

.wdr-item-emoji {
    font-size: 36px;
}

.wdr-item-name {
    font-size: 11px;
    line-height: 1.3;
    font-weight: 700;
    word-break: break-word;
    color: #fff;
}

.wdr-item-value {
    font-size: 11px;
    color: var(--muted);
    font-weight: 600;
}

.wdr-item-check {
    position: absolute;
    top: 5px;
    right: 5px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--accent, #3868c0);
    color: #fff;
    font-size: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    opacity: 0;
    transition: opacity .15s;
}

.wdr-item-card.is-selected .wdr-item-check {
    opacity: 1;
}

.withdrawal-contact-row {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.withdrawal-contact-row .ops-label {
    font-size: 12px;
    font-weight: 700;
    color: var(--muted);
    letter-spacing: .05em;
    text-transform: uppercase;
}

.withdrawal-contact-row .ops-input {
    width: 100%;
    padding: 0 16px;
    height: 48px;
    background: rgba(255, 255, 255, .06);
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 14px;
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    outline: none;
    transition: border-color .15s;
}

.withdrawal-contact-row .ops-input:focus {
    border-color: rgba(255, 255, 255, .3);
}

.withdrawal-contact-row .ops-input::placeholder {
    color: rgba(255, 255, 255, .28);
    font-weight: 400;
}

.withdrawal-queue-block {
    display: flex;
    flex-direction: column;
    gap: 8px;
    /* No margin-bottom -- this and .withdrawal-queue-booked are both direct
       children of #wdrStepTime, which is a .wdr-step and already applies its
       own flex `gap` between its children. Each block ALSO carrying its own
       margin-bottom stacked on top of that gap, double-spacing every step
       boundary in the modal -- a real contributor to the "too tall, need to
       scroll a lot" complaint, not just visual polish. */
}

.withdrawal-queue-block .ops-label {
    font-size: 12px;
    font-weight: 700;
    color: var(--muted);
    letter-spacing: .05em;
    text-transform: uppercase;
}

.withdrawal-queue-note {
    font-size: 12px;
    color: rgba(255, 255, 255, .45);
    line-height: 1.4;
}

.withdrawal-queue-windows {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.withdrawal-queue-window-btn {
    flex: 1 1 150px;
    min-width: 150px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 3px;
    padding: 12px 14px;
    background: rgba(255, 255, 255, .06);
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 14px;
    color: #fff;
    cursor: pointer;
    transition: all .15s;
    text-align: left;
}

.withdrawal-queue-window-btn:hover {
    border-color: rgba(255, 255, 255, .3);
}

/* День — первой строкой и крупно. Раньше дата шла мелким хвостом после
   времени, и игроки читали «14:09-14:12» как сегодняшнее время, приходили не в
   тот день и жаловались, что бот не написал. */
.withdrawal-queue-window-day {
    font-size: 15px;
    font-weight: 800;
    letter-spacing: .01em;
}

.withdrawal-queue-window-time {
    font-size: 13px;
    font-weight: 600;
    opacity: .72;
    font-variant-numeric: tabular-nums;
}

.withdrawal-queue-window-btn.is-selected {
    background: rgba(76, 175, 129, .15);
    border-color: #4CAF81;
    color: #6ddc9e;
    box-shadow: 0 0 0 1px rgba(76, 175, 129, .3);
}

.withdrawal-queue-booked {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    background: rgba(76, 175, 129, .08);
    border: 1px solid rgba(76, 175, 129, .3);
    border-radius: 14px;
    padding: 12px 14px;
    margin-bottom: 0;
}

.withdrawal-queue-booked-icon {
    font-size: 26px;
    line-height: 1;
    flex-shrink: 0;
    margin-top: 2px;
}

.withdrawal-queue-booked-title {
    font-size: 14px;
    font-weight: 800;
    color: #6ddc9e;
    margin-bottom: 4px;
}

.withdrawal-queue-booked-detail {
    font-size: 15px;
    font-weight: 700;
    color: #fff;
    margin-bottom: 6px;
}

.withdrawal-queue-booked-explain {
    font-size: 12px;
    color: rgba(255, 255, 255, .65);
    line-height: 1.45;
    margin-bottom: 8px;
}

.withdrawal-queue-booked-hint {
    font-size: 12px;
    color: rgba(255, 255, 255, .5);
    line-height: 1.4;
}

.withdrawal-submit-btn {
    width: 100%;
    min-height: 50px;
    border: 0;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--accent, #3868c0), #2a54a0);
    color: #fff;
    font-size: 15px;
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 6px 22px rgba(56, 104, 192, .32);
    transition: filter .15s, transform .12s;
}

.withdrawal-submit-btn:hover {
    filter: brightness(1.07);
    transform: translateY(-1px);
}

.withdrawal-submit-btn:disabled {
    opacity: .45;
    cursor: not-allowed;
    transform: none;
    filter: none;
}

.inv-pending-wrap {
    position: relative;
}

.inv-pending-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(10, 10, 18, 0.82);
    color: var(--accent, #3868c0);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    border-radius: 4px;
    pointer-events: none;
    backdrop-filter: blur(2px);
}

.inv-action-btns {
    display: flex;
    gap: 6px;
    align-items: center;
}

.inv-withdraw-btn {
    white-space: nowrap;
    font-size: 11px;
    padding: 4px 10px;
    border-radius: 4px;
    border: 1px solid var(--border, rgba(255, 255, 255, .15));
    background: transparent;
    color: var(--text-muted, rgba(255, 255, 255, .55));
    cursor: pointer;
    transition: border-color .15s, color .15s, background .15s;
    line-height: 1.4;
}

.inv-withdraw-btn:hover {
    border-color: var(--accent, #3868c0);
    color: var(--accent, #3868c0);
    background: rgba(56, 104, 192, .06);
}

#profileView .profile-split-inventory .inventory-card {
    aspect-ratio: unset !important;
    min-height: 148px !important;
}

#profileView .profile-split-inventory .inventory-card .inv-action-btns {
    display: flex !important;
    flex-direction: column !important;
    gap: 3px !important;
    width: 100% !important;
}

#profileView .profile-split-inventory .inventory-card .sell-btn, #profileView .profile-split-inventory .inventory-card .inv-withdraw-btn, #profileView .profile-split-inventory .inventory-card .case-voucher-claim-btn {
    width: 100% !important;
    margin: 0 !important;
    font-size: 10px !important;
    padding: 3px 6px !important;
    min-height: 0 !important;
    height: auto !important;
    line-height: 1.4 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
}

#profileView .profile-split-inventory .inventory-grid {
    grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)) !important;
}

@media (min-width: 761px) and (max-width: 1180px) {
    #profileView .profile-split-inventory .inventory-grid {
        grid-template-columns:repeat(auto-fill, minmax(170px, 1fr)) !important;
    }
}

@media (max-width: 760px) {
    #profileView .profile-split-inventory .inventory-grid {
        grid-template-columns:repeat(2, 1fr) !important;
        gap: 8px !important;
    }

    #profileView .profile-split-inventory .inventory-card {
        min-height: 130px !important;
    }
}

@media (max-width: 480px) {
    #profileView .profile-split-inventory .inventory-grid {
        grid-template-columns:repeat(2, 1fr) !important;
        gap: 6px !important;
    }

    #profileView .profile-split-inventory .inventory-card {
        min-height: 118px !important;
    }

    #profileView .profile-split-inventory .inventory-card .inventory-image {
        width: 44% !important;
    }

    #profileView .profile-split-inventory .inventory-card .item-name {
        font-size: 9px !important;
    }

    #profileView .profile-split-inventory .inventory-card .item-value {
        font-size: 8px !important;
    }

    #profileView .profile-split-inventory .inventory-card .sell-btn, #profileView .profile-split-inventory .inventory-card .inv-withdraw-btn, #profileView .profile-split-inventory .inventory-card .case-voucher-claim-btn {
        font-size: 9px !important;
        padding: 2px 4px !important;
    }
}

@media (max-width: 360px) {
    #profileView .profile-split-inventory .inventory-grid {
        gap: 5px !important;
    }

    #profileView .profile-split-inventory .inventory-card {
        min-height: 108px !important;
    }
}

.free-case-banner {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px 20px;
    background: linear-gradient(135deg, rgba(47, 125, 255, .18) 0%, rgba(116, 68, 255, .14) 100%);
    border: 1px solid rgba(88, 166, 255, .28);
    box-shadow: 0 0 0 1px rgba(88, 166, 255, .08) inset, 0 14px 32px rgba(0, 0, 0, .22);
    margin-bottom: 14px;
}

.free-case-banner-media {
    flex-shrink: 0;
    width: 52px;
    height: 52px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, .06);
    border: 1px solid rgba(255, 255, 255, .10);
}

.free-case-banner-img {
    width: 40px;
    height: 40px;
    object-fit: contain;
}

.free-case-banner-emoji {
    font-size: 28px;
    line-height: 1;
}

.free-case-banner-body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.free-case-banner-kicker {
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: rgba(88, 166, 255, .9);
}

.free-case-banner-title {
    font-size: 16px;
    font-weight: 800;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.free-case-banner-sub {
    font-size: 12px;
    color: var(--muted);
}

.free-case-banner-action {
    flex-shrink: 0;
    display: flex;
    align-items: center;
}

.free-case-claim-btn {
    min-width: 100px;
    white-space: nowrap;
}

.free-case-countdown {
    font-size: 13px;
    font-weight: 700;
    color: var(--muted);
    white-space: nowrap;
    text-align: right;
}

@media (max-width: 480px) {
    .free-case-banner {
        flex-wrap: wrap;
        gap: 12px;
    }

    .free-case-banner-action {
        width: 100%;
    }

    .free-case-claim-btn, .free-case-countdown {
        width: 100%;
        text-align: center;
    }
}

.item-emoji.big {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 96px !important;
    height: 96px !important;
    flex-shrink: 0 !important;
    margin-bottom: 0 !important;
    font-size: 64px !important;
}

.inventory-card:has(.inv-pending-wrap):hover {
    transform: none !important;
    box-shadow: none !important;
    border-color: var(--line) !important;
    cursor: default !important;
}

.inventory-card:has(.inv-pending-wrap) button {
    pointer-events: none !important;
    opacity: 0.5 !important;
}

.inventory-card:has(.inv-pending-wrap) button:hover {
    transform: none !important;
    background: inherit !important;
    box-shadow: none !important;
}

.inventory-card .item-value {
    font-size: 15px !important;
    font-weight: 800 !important;
    color: #e8d87a !important;
}

#rouletteModal > div {
    margin-top: -30px !important;
}

@media (min-width: 861px) {
}

.pool-subtabs {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-bottom: 14px;
    border-bottom: 1px solid rgba(255, 255, 255, .08);
    padding-bottom: 10px;
}

.pool-subtab {
    padding: 6px 16px;
    border-radius: 6px;
    border: 1px solid transparent;
    background: transparent;
    color: var(--muted);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: background .15s, color .15s;
}

.pool-subtab:hover {
    background: rgba(255, 255, 255, .06);
    color: var(--text);
}

.pool-subtab.is-active {
    background: rgba(127, 77, 255, .18);
    border-color: var(--accent, #7f4dff);
    color: var(--accent, #7f4dff);
}

.pool-subpane {
    display: none;
}

.pool-subpane.is-active {
    display: block;
}

.pool-controls-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 10px;
}

.pool-toggle-label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    cursor: pointer;
    user-select: none;
}

.pool-toggle-label input[type="checkbox"] {
    width: 17px;
    height: 17px;
    accent-color: var(--accent, #7f4dff);
    cursor: pointer;
}

.pool-btn-row {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.pool-grid {
    display: grid;
    grid-template-columns:repeat(auto-fill, minmax(110px, 1fr));
    gap: 8px;
    max-height: 440px;
    overflow-y: auto;
    padding: 2px 0 8px;
}

.pool-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 10px 6px 8px;
    border-radius: 10px;
    border: 2px solid transparent;
    background: var(--surface2, rgba(255, 255, 255, .05));
    cursor: pointer;
    transition: border-color .15s, background .15s;
    position: relative;
    text-align: center;
}

.pool-card:hover {
    background: var(--surface3, rgba(255, 255, 255, .09));
}

.pool-card-on {
    border-color: var(--accent, #7f4dff) !important;
    background: rgba(127, 77, 255, .12) !important;
}

.pool-card input[type="checkbox"] {
    position: absolute;
    top: 6px;
    right: 6px;
    width: 15px;
    height: 15px;
    accent-color: var(--accent, #7f4dff);
    cursor: pointer;
}

.pool-card-img {
    width: 56px;
    height: 56px;
    object-fit: contain;
}

.pool-card-emoji {
    font-size: 36px;
    line-height: 1;
}

.pool-card-name {
    font-size: 11px;
    font-weight: 600;
    color: var(--text);
    line-height: 1.2;
    word-break: break-word;
}

.pool-card-val {
    font-size: 10px;
    color: var(--muted);
    margin-top: 2px;
}

.pool-card-he {
    display: flex;
    align-items: center;
    gap: 2px;
    margin-top: 5px;
    width: 100%;
}

.pool-card-he-input {
    width: 100%;
    min-width: 0;
    padding: 2px 4px;
    font-size: 11px;
    font-weight: 700;
    background: rgba(255, 255, 255, .07);
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 6px;
    color: var(--text);
    text-align: center;
    outline: none;
    -moz-appearance: textfield;
}

.pool-card-he-input::-webkit-inner-spin-button, .pool-card-he-input::-webkit-outer-spin-button {
    -webkit-appearance: none;
}

.pool-card-he-input:focus {
    border-color: rgba(255, 255, 255, .32);
    background: rgba(255, 255, 255, .10);
}

.pool-card-he-label {
    font-size: 10px;
    color: var(--muted);
    flex-shrink: 0;
}

.profile-wager-bar {
    background: var(--panel-2, rgba(4, 6, 12, .85));
    border: 1px solid rgba(var(--accent-rgb, 56, 104, 192), .24);
    border-radius: 14px;
    padding: 14px 16px 12px;
    margin-top: 10px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, .22), inset 0 1px 0 rgba(255, 255, 255, .03);
}

.profile-wager-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
}

.profile-wager-title {
    font-size: 11px;
    font-weight: 800;
    color: var(--muted);
    letter-spacing: .18em;
    text-transform: uppercase;
}

.profile-wager-pct {
    font-size: 12px;
    font-weight: 800;
    color: var(--accent-3, #58A6FF);
    background: rgba(var(--accent-rgb, 56, 104, 192), .14);
    border: 1px solid rgba(var(--accent-rgb, 56, 104, 192), .3);
    border-radius: 999px;
    padding: 3px 10px;
    line-height: 1.4;
}

.profile-wager-track {
    height: 10px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .07);
    overflow: hidden;
    margin-bottom: 10px;
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, .35);
}

.profile-wager-fill {
    height: 100%;
    min-width: 3px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--accent-2, #2A54A0), var(--accent-3, #58A6FF));
    box-shadow: 0 0 12px rgba(var(--accent-3-rgb, 88, 166, 255), .55);
    transition: width .45s cubic-bezier(.2, .8, .2, 1);
    position: relative;
    overflow: hidden;
}

.profile-wager-fill::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .4), transparent);
    transform: translateX(-100%);
    animation: profileWagerShine 2.4s ease-in-out infinite;
}

@keyframes profileWagerShine {
    0% { transform: translateX(-100%); }
    60%, 100% { transform: translateX(220%); }
}

.profile-wager-bottom {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 10px;
}

.profile-wager-nums {
    font-size: 14px;
    font-weight: 800;
    color: var(--text, #fff);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.profile-wager-hint {
    font-size: 11.5px;
    font-weight: 600;
    color: var(--muted);
    text-align: right;
}

.profile-wager-bar.is-complete {
    border-color: rgba(91, 232, 138, .32);
}

.profile-wager-bar.is-complete .profile-wager-fill {
    background: linear-gradient(90deg, #1e9e52, #5be88a);
    box-shadow: 0 0 12px rgba(91, 232, 138, .5);
}

.profile-wager-bar.is-complete .profile-wager-pct {
    color: #5be88a;
    background: rgba(91, 232, 138, .14);
    border-color: rgba(91, 232, 138, .35);
}

.profile-wager-bar.is-complete .profile-wager-hint {
    color: #5be88a;
    font-weight: 700;
}

.primary-btn.is-inactive {
    opacity: .45;
    filter: grayscale(.3);
    cursor: not-allowed;
}

.primary-btn.is-inactive:hover {
    filter: grayscale(.3) !important;
    transform: none !important;
    box-shadow: none !important;
}

.partner-revoked-notice {
    font-size: 13px;
    font-weight: 600;
    line-height: 1.5;
    color: var(--text, #fff);
    background: rgba(148, 163, 184, .1);
    border: 1px solid rgba(148, 163, 184, .28);
    border-radius: 12px;
    padding: 10px 12px;
    margin-bottom: 10px;
}

.partner-history {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--line);
}

.partner-history-title {
    font-size: 11px;
    font-weight: 800;
    color: var(--muted);
    letter-spacing: .12em;
    text-transform: uppercase;
    margin-bottom: 10px;
}

.partner-history-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    max-height: 220px;
    overflow-y: auto;
}

.partner-history-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 8px 10px;
    background: rgba(255, 255, 255, .03);
    border-radius: 10px;
    font-size: 12.5px;
}

.partner-history-date {
    color: var(--muted);
    font-variant-numeric: tabular-nums;
}

.partner-history-delta {
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.partner-history-delta.is-positive {
    color: #5be88a;
}

.partner-history-delta.is-negative {
    color: #58A6FF;
}

.withdrawal-wager-block {
    background: rgba(255, 100, 30, .08);
    border: 1px solid rgba(255, 100, 30, .25);
    border-radius: 10px;
    padding: 12px 14px;
    /* No margin-bottom -- direct child of .withdrawal-modal-body, which
       already applies its own flex `gap` between children (see the same
       fix on .withdrawal-queue-block/.withdrawal-queue-booked above). */
}

.wager-block-body {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 10px;
}

.wager-block-icon {
    font-size: 22px;
    line-height: 1;
    flex-shrink: 0;
    margin-top: 2px;
}

.wager-block-title {
    font-size: 13px;
    font-weight: 700;
    color: #ff8855;
    margin-bottom: 3px;
}

.wager-block-detail {
    font-size: 12px;
    color: var(--muted, #888);
}

.wager-block-track {
    margin-top: 0;
    margin-bottom: 0;
}

.wager-config-grid {
    display: grid;
    grid-template-columns:repeat(auto-fill, minmax(200px, 1fr));
    gap: 14px;
    margin-top: 14px;
}

.wager-user-search-row {
    display: flex;
    gap: 8px;
    align-items: center;
    margin-top: 10px;
    margin-bottom: 12px;
}

.wager-user-result {
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 10px;
    padding: 14px;
    margin-top: 8px;
}

.wager-user-info {
    font-size: 13px;
    margin-bottom: 12px;
    color: var(--text);
}

.wager-user-actions {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.wager-action-row {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.wager-reset-btn {
    color: #58A6FF !important;
    border-color: rgba(88, 166, 255, .3) !important;
}

.wager-reset-btn:hover {
    background: rgba(88, 166, 255, .1) !important;
}

.ced-lock-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    flex-shrink: 0;
    cursor: pointer;
    user-select: none;
}

.ced-lock-wrap input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
    pointer-events: none;
}

.ced-lock-icon {
    font-size: 16px;
    line-height: 1;
    transition: transform .15s, filter .15s;
    filter: grayscale(1) opacity(.45);
}

.ced-lock-wrap:hover .ced-lock-icon {
    filter: none;
    transform: scale(1.15);
}

.ced-loot-row-locked .ced-lock-icon {
    filter: none;
}

.ced-loot-row-locked {
    background: rgba(255, 180, 50, .04);
    border-left: 2px solid rgba(255, 180, 50, .35);
}

.ced-loot-row-locked .ced-loot-item-name {
    color: rgba(255, 200, 80, .85);
}

.free-case-card-label {
    color: var(--muted);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .02em;
}

.free-case-card-ready {
    color: #5be88a !important;
    font-weight: 700;
}

.deposit-case-labeldeposit-case-label {
    color: #f59e0b;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .02em;
}

.deposit-case-label.deposit-case-ready {
    color: #5be88a !important;
}

body.palette-blue {
    background: radial-gradient(circle at 15% 0%, rgba(56, 104, 192, .07) 0%, transparent 25%), linear-gradient(180deg, #0d0e10 0%, #0a0b0c 60%, #080909 100%) !important;
}

body.palette-blue .sidebar-live {
    background: linear-gradient(180deg, rgba(13, 14, 17, .98), rgba(9, 10, 12, .95)) !important;
}

body.palette-blue .topbar {
    background: rgba(12, 13, 15, .97) !important;
}

body.palette-blue .sidebar-title, body.palette-blue .panel-title, body.palette-blue .section-head span, body.palette-blue .eyebrow, body.palette-blue .live-user, body.palette-blue .case-subtitle, body.palette-blue .promo-stat span, body.palette-blue .ops-label, body.palette-blue .loot-value, body.palette-blue .item-value, body.palette-blue .target-value, body.palette-blue .roulette-value, body.palette-blue .speed-toggle-btn, body.palette-blue .deposit-menu-tab, body.palette-blue .profile-tab, body.palette-blue .ops-tab, body.palette-blue .payment-currency-btn, body.palette-blue .speed-btn, body.palette-blue .ladder-stat-card span, body.palette-blue .dash-stat-label, body.palette-blue .dash-section-title, body.palette-blue .dash-system-label {
    color: #4e728f !important;
}

body.palette-blue .promo-stat strong, body.palette-blue .profile-balance-box strong, body.palette-blue .dash-stat-value {
    color: #7BAFD4 !important;
}

body.palette-blue .case-price {
    color: #FFFFFF !important;
}

body.palette-blue .brand-btn {
    background: rgba(56, 104, 192, .08) !important;
    border-color: rgba(56, 104, 192, .24) !important;
    color: #58A6FF !important;
}

body.palette-blue .brand-btn:hover {
    background: rgba(56, 104, 192, .14) !important;
    border-color: rgba(56, 104, 192, .45) !important;
    box-shadow: 0 0 22px rgba(56, 104, 192, .18) !important;
}

body.palette-blue .nav-btn.active {
    background: linear-gradient(135deg, #3868C0, #2A54A0) !important;
    box-shadow: 0 4px 16px rgba(56, 104, 192, .30) !important;
}

body.palette-blue .ghost-btn.active {
    background: linear-gradient(135deg, #3868C0, #2A54A0) !important;
    border-color: transparent !important;
}

body.palette-blue .primary-btn, body.palette-blue #openSelectedCaseBtn, body.palette-blue #createBattleBtn, body.palette-blue #startFuseBtn, body.palette-blue #openLadderModeBtn, body.palette-blue .deposit-terminal-pay-btn, body.palette-blue .ops-stretch-btn, body.palette-blue .ops-save-btn {
    background: linear-gradient(135deg, #3868C0, #2A54A0) !important;
    box-shadow: 0 6px 22px rgba(56, 104, 192, .36) !important;
}

body.palette-blue .primary-btn:hover, body.palette-blue #openSelectedCaseBtn:hover, body.palette-blue #createBattleBtn:hover, body.palette-blue #startFuseBtn:hover {
    box-shadow: 0 10px 32px rgba(56, 104, 192, .48) !important;
}

body.palette-blue .primary-btn:active {
    box-shadow: 0 4px 14px rgba(56, 104, 192, .32) !important;
}

body.palette-blue .wheel-sell-btn {
    background: linear-gradient(135deg, #3868C0, #2A54A0) !important;
    box-shadow: 0 6px 18px rgba(56, 104, 192, .3) !important;
}

body.palette-blue .wheel-sell-btn:hover {
    box-shadow: 0 10px 26px rgba(56, 104, 192, .42) !important;
}

body.palette-blue .speed-toggle-pill {
    background: linear-gradient(135deg, #3868C0, #2A54A0) !important;
    box-shadow: 0 6px 16px rgba(56, 104, 192, .3) !important;
}

body.palette-blue .speed-btn.active {
    background: linear-gradient(135deg, #3868C0, #2A54A0) !important;
    box-shadow: 0 6px 18px rgba(56, 104, 192, .28) !important;
}

body.palette-blue .hero-badge {
    background: linear-gradient(135deg, rgba(56, 104, 192, .9), rgba(42, 84, 160, .8)) !important;
}

body.palette-blue .hero-banner::after {
    background: linear-gradient(90deg, transparent, #3868C0 40%, transparent) !important;
}

body.palette-blue .case-card::after {
    background: linear-gradient(90deg, transparent, #3868C0, transparent) !important;
}

body.palette-blue .case-card:hover {
    border-color: rgba(56, 104, 192, .38) !important;
    box-shadow: 0 0 36px rgba(56, 104, 192, .14), 0 8px 28px rgba(0, 0, 0, .6) !important;
}

body.palette-blue .case-ribbon {
    background: rgba(56, 104, 192, .1) !important;
    border-color: rgba(56, 104, 192, .2) !important;
    color: #7BAFD4 !important;
}

body.palette-blue .case-section-title::after {
    background: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(56, 104, 192, .65), rgba(255, 255, 255, 0)) !important;
}

body.palette-blue .promo-stat:hover {
    border-color: rgba(56, 104, 192, .32) !important;
    box-shadow: 0 0 20px rgba(56, 104, 192, .1) !important;
}

body.palette-blue .lobby-promo-card .promo-stat {
    border-color: rgba(56, 104, 192, .14) !important;
}

body.palette-blue input:focus, body.palette-blue select:focus, body.palette-blue textarea:focus, body.palette-blue .ops-input:focus, body.palette-blue .ops-select:focus, body.palette-blue .auth-input:focus {
    border-color: rgba(56, 104, 192, .5) !important;
    box-shadow: 0 0 18px rgba(56, 104, 192, .12), 0 0 0 3px rgba(56, 104, 192, .08) !important;
}

body.palette-blue input::placeholder, body.palette-blue textarea::placeholder, body.palette-blue .ops-input::placeholder, body.palette-blue .auth-input::placeholder {
    color: #4e728f !important;
}

body.palette-blue .loot-card:hover, body.palette-blue .inventory-card:hover, body.palette-blue .target-card:hover, body.palette-blue .related-card:hover {
    border-color: rgba(56, 104, 192, .3) !important;
    box-shadow: 0 6px 22px rgba(56, 104, 192, .1) !important;
}

body.palette-blue .target-card.active {
    outline: 2px solid rgba(56, 104, 192, .4) !important;
    background: rgba(56, 104, 192, .1) !important;
}

body.palette-blue .loot-chip:hover {
    border-color: rgba(56, 104, 192, .28) !important;
}

body.palette-blue .live-card:hover {
    border-color: rgba(56, 104, 192, .3) !important;
    box-shadow: 0 4px 20px rgba(56, 104, 192, .1) !important;
}

body.palette-blue .user-box:hover {
    border-color: rgba(56, 104, 192, .32) !important;
    background: rgba(56, 104, 192, .06) !important;
}

body.palette-blue .modal-card {
    background: linear-gradient(180deg, #111316, #0c0d0e) !important;
    border-color: rgba(56, 104, 192, .14) !important;
}

body.palette-blue .icon-close:hover {
    background: rgba(56, 104, 192, .16) !important;
    border-color: rgba(56, 104, 192, .3) !important;
}

body.palette-blue .roulette-pointer {
    background: linear-gradient(180deg, #7BAFD4, #fff, #3868C0) !important;
    box-shadow: 0 0 22px rgba(56, 104, 192, .55) !important;
}

body.palette-blue .roulette-item.near-top-focus {
    box-shadow: 0 0 0 1px rgba(56, 104, 192, .3), 0 0 28px rgba(56, 104, 192, .2) !important;
}

body.palette-blue .roulette-near-top-flash {
    background: radial-gradient(circle at 50% 50%, rgba(56, 104, 192, .22), transparent 32%), radial-gradient(circle at 50% 18%, rgba(110, 165, 215, .18), transparent 28%) !important;
}

body.palette-blue .ops-surface::before {
    background: linear-gradient(90deg, transparent, rgba(56, 104, 192, .12), transparent) !important;
}

body.palette-blue .ops-inline-chip {
    background: rgba(56, 104, 192, .1) !important;
    border-color: rgba(56, 104, 192, .2) !important;
    color: #7BAFD4 !important;
}

body.palette-blue .ops-ladder-mode-btn:hover {
    border-color: rgba(56, 104, 192, .3) !important;
}

body.palette-blue .ops-ladder-mode-btn.is-active {
    background: linear-gradient(135deg, #3868C0, #2A54A0) !important;
    border-color: transparent !important;
    box-shadow: 0 12px 26px rgba(56, 104, 192, .28) !important;
}

body.palette-blue .deposit-fullscreen-shell {
    background: linear-gradient(180deg, #111316, #0c0d0e) !important;
}

body.palette-blue .deposit-menu-tab:hover {
    border-color: rgba(56, 104, 192, .3) !important;
    color: #fff !important;
}

body.palette-blue .deposit-menu-tab.is-active {
    background: linear-gradient(135deg, rgba(56, 104, 192, .2), rgba(42, 84, 160, .12)) !important;
    border-color: rgba(56, 104, 192, .4) !important;
    color: #58A6FF !important;
}

body.palette-blue .payment-method-btn:hover {
    border-color: rgba(56, 104, 192, .3) !important;
    background: rgba(56, 104, 192, .06) !important;
}

body.palette-blue .payment-method-icon {
    background: linear-gradient(135deg, #3868C0, #2A54A0) !important;
}

body.palette-blue .payment-method-action {
    background: rgba(56, 104, 192, .1) !important;
    border-color: rgba(56, 104, 192, .2) !important;
    color: #7BAFD4 !important;
}

body.palette-blue .payment-currency-btn.is-active {
    background: linear-gradient(135deg, rgba(56, 104, 192, .2), rgba(42, 84, 160, .12)) !important;
    border-color: rgba(56, 104, 192, .35) !important;
    color: #58A6FF !important;
}

body.palette-blue .support-inapp-shell {
    background: linear-gradient(180deg, #111316, #0c0d0e) !important;
}

body.palette-blue .support-floating-btn {
    background: linear-gradient(135deg, #3868C0, #2A54A0) !important;
    box-shadow: 0 8px 24px rgba(56, 104, 192, .4) !important;
}

body.palette-blue .support-floating-btn:hover {
    box-shadow: 0 12px 32px rgba(56, 104, 192, .52) !important;
}

body.palette-blue .support-message-bot {
    background: rgba(56, 104, 192, .1) !important;
    border-color: rgba(56, 104, 192, .2) !important;
}

body.palette-blue .support-message-user {
    background: rgba(56, 104, 192, .18) !important;
    border-color: rgba(56, 104, 192, .28) !important;
}

body.palette-blue .auth-card {
    background: linear-gradient(180deg, rgba(14, 15, 18, .99), rgba(10, 11, 13, .98)) !important;
}

body.palette-blue .auth-badge {
    background: rgba(56, 104, 192, .16) !important;
    color: #7BAFD4 !important;
}

body.palette-blue .profile-tab:hover, body.palette-blue .ops-tab:hover {
    border-color: rgba(56, 104, 192, .3) !important;
    color: #fff !important;
}

body.palette-blue .profile-tab.is-active, body.palette-blue .ops-tab.is-active {
    background: linear-gradient(135deg, rgba(56, 104, 192, .2), rgba(42, 84, 160, .12)) !important;
    border-color: rgba(56, 104, 192, .4) !important;
    color: #58A6FF !important;
}

body.palette-blue .toast {
    background: #04101e !important;
    border-color: rgba(56, 104, 192, .22) !important;
}

body.palette-blue .theme-toggle-single:hover {
    border-color: rgba(56, 104, 192, .3) !important;
}

body.palette-blue .case-group.pick-one-group .case-card {
    background: linear-gradient(180deg, rgba(56, 104, 192, .3), rgba(15, 30, 80, .92)) !important;
    border-color: rgba(88, 138, 208, .34) !important;
}

body.palette-blue .pick-one-card {
    background: linear-gradient(180deg, rgba(56, 104, 192, .28), rgba(15, 30, 70, .9)) !important;
    border-color: rgba(88, 138, 208, .3) !important;
}

body.palette-blue .pick-card.revealed {
    background: linear-gradient(180deg, rgba(20, 50, 100, .96), rgba(8, 18, 40, .98)) !important;
    border-color: rgba(88, 138, 208, .28) !important;
    box-shadow: 0 8px 22px rgba(56, 104, 192, .12) !important;
}

body.palette-blue .hidden-drop, body.palette-blue .hidden-pick-card {
    background: linear-gradient(180deg, rgba(56, 104, 192, .18), rgba(255, 255, 255, .04)) !important;
    border-color: rgba(56, 104, 192, .2) !important;
}

body.palette-blue .compact.selected {
    outline: 2px solid rgba(56, 104, 192, .5) !important;
}

body.palette-blue .dash-top-item:hover {
    border-color: rgba(56, 104, 192, .3) !important;
    background: rgba(56, 104, 192, .05) !important;
}

body.palette-blue .combined-history-row:hover {
    background: rgba(56, 104, 192, .04) !important;
}

body.palette-blue .ghost-btn.accent {
    border-color: rgba(56, 104, 192, .3) !important;
    color: #7BAFD4 !important;
}

body.palette-blue ::-webkit-scrollbar-thumb {
    background: rgba(56, 104, 192, .22) !important;
}

body.palette-blue ::-webkit-scrollbar-thumb:hover {
    background: rgba(56, 104, 192, .42) !important;
}

body.palette-grey {
    background: radial-gradient(circle at 15% 0%, rgba(114, 136, 160, .12) 0%, transparent 30%), radial-gradient(circle at 85% 5%, rgba(83, 97, 117, .08) 0%, transparent 25%), linear-gradient(180deg, #0a0c0f 0%, #060709 60%, #040506 100%) !important;
}

body.palette-grey .sidebar-live {
    background: linear-gradient(180deg, rgba(12, 14, 17, .98), rgba(6, 7, 9, .95)) !important;
}

body.palette-grey .topbar {
    background: rgba(8, 9, 11, .97) !important;
}

body.palette-grey .sidebar-title, body.palette-grey .panel-title, body.palette-grey .section-head span, body.palette-grey .eyebrow, body.palette-grey .live-user, body.palette-grey .case-subtitle, body.palette-grey .promo-stat span, body.palette-grey .ops-label, body.palette-grey .loot-value, body.palette-grey .item-value, body.palette-grey .target-value, body.palette-grey .roulette-value, body.palette-grey .speed-toggle-btn, body.palette-grey .deposit-menu-tab, body.palette-grey .profile-tab, body.palette-grey .ops-tab, body.palette-grey .payment-currency-btn, body.palette-grey .speed-btn, body.palette-grey .ladder-stat-card span, body.palette-grey .dash-stat-label, body.palette-grey .dash-section-title, body.palette-grey .dash-system-label {
    color: #607080 !important;
}

body.palette-grey .promo-stat strong, body.palette-grey .profile-balance-box strong, body.palette-grey .dash-stat-value {
    color: #A8BCCF !important;
}

body.palette-grey .case-price {
    color: #FFFFFF !important;
}

body.palette-grey .brand-btn {
    background: rgba(114, 136, 160, .08) !important;
    border-color: rgba(114, 136, 160, .24) !important;
    color: #7288A0 !important;
}

body.palette-grey .brand-btn:hover {
    background: rgba(114, 136, 160, .14) !important;
    border-color: rgba(114, 136, 160, .45) !important;
    box-shadow: 0 0 22px rgba(114, 136, 160, .14) !important;
}

body.palette-grey .nav-btn.active {
    background: linear-gradient(135deg, #7288A0, #536175) !important;
    box-shadow: 0 4px 16px rgba(114, 136, 160, .28) !important;
}

body.palette-grey .ghost-btn.active {
    background: linear-gradient(135deg, #7288A0, #536175) !important;
    border-color: transparent !important;
}

body.palette-grey .primary-btn, body.palette-grey #openSelectedCaseBtn, body.palette-grey #createBattleBtn, body.palette-grey #startFuseBtn, body.palette-grey #openLadderModeBtn, body.palette-grey .deposit-terminal-pay-btn, body.palette-grey .ops-stretch-btn, body.palette-grey .ops-save-btn {
    background: linear-gradient(135deg, #7288A0, #536175) !important;
    box-shadow: 0 6px 22px rgba(114, 136, 160, .28) !important;
}

body.palette-grey .primary-btn:hover, body.palette-grey #openSelectedCaseBtn:hover, body.palette-grey #createBattleBtn:hover, body.palette-grey #startFuseBtn:hover {
    box-shadow: 0 10px 32px rgba(114, 136, 160, .38) !important;
}

body.palette-grey .primary-btn:active {
    box-shadow: 0 4px 14px rgba(114, 136, 160, .24) !important;
}

body.palette-grey .wheel-sell-btn {
    background: linear-gradient(135deg, #7288A0, #536175) !important;
    box-shadow: 0 6px 18px rgba(114, 136, 160, .24) !important;
}

body.palette-grey .wheel-sell-btn:hover {
    box-shadow: 0 10px 26px rgba(114, 136, 160, .34) !important;
}

body.palette-grey .speed-toggle-pill {
    background: linear-gradient(135deg, #7288A0, #536175) !important;
    box-shadow: 0 6px 16px rgba(114, 136, 160, .24) !important;
}

body.palette-grey .speed-btn.active {
    background: linear-gradient(135deg, #7288A0, #536175) !important;
    box-shadow: 0 6px 18px rgba(114, 136, 160, .22) !important;
}

body.palette-grey .hero-badge {
    background: linear-gradient(135deg, rgba(114, 136, 160, .85), rgba(83, 97, 117, .75)) !important;
}

body.palette-grey .hero-banner::after {
    background: linear-gradient(90deg, transparent, #7288A0 40%, transparent) !important;
}

body.palette-grey .case-card::after {
    background: linear-gradient(90deg, transparent, #7288A0, transparent) !important;
}

body.palette-grey .case-card:hover {
    border-color: rgba(114, 136, 160, .38) !important;
    box-shadow: 0 0 36px rgba(114, 136, 160, .12), 0 8px 28px rgba(0, 0, 0, .5) !important;
}

body.palette-grey .case-ribbon {
    background: rgba(114, 136, 160, .1) !important;
    border-color: rgba(114, 136, 160, .2) !important;
    color: #A8BCCF !important;
}

body.palette-grey .case-section-title::after {
    background: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(114, 136, 160, .55), rgba(255, 255, 255, 0)) !important;
}

body.palette-grey .promo-stat:hover {
    border-color: rgba(114, 136, 160, .28) !important;
    box-shadow: 0 0 20px rgba(114, 136, 160, .08) !important;
}

body.palette-grey .lobby-promo-card .promo-stat {
    border-color: rgba(114, 136, 160, .14) !important;
}

body.palette-grey input:focus, body.palette-grey select:focus, body.palette-grey textarea:focus, body.palette-grey .ops-input:focus, body.palette-grey .ops-select:focus, body.palette-grey .auth-input:focus {
    border-color: rgba(114, 136, 160, .5) !important;
    box-shadow: 0 0 18px rgba(114, 136, 160, .1), 0 0 0 3px rgba(114, 136, 160, .07) !important;
}

body.palette-grey input::placeholder, body.palette-grey textarea::placeholder, body.palette-grey .ops-input::placeholder, body.palette-grey .auth-input::placeholder {
    color: #607080 !important;
}

body.palette-grey .loot-card:hover, body.palette-grey .inventory-card:hover, body.palette-grey .target-card:hover, body.palette-grey .related-card:hover {
    border-color: rgba(114, 136, 160, .28) !important;
    box-shadow: 0 6px 22px rgba(114, 136, 160, .08) !important;
}

body.palette-grey .target-card.active {
    outline: 2px solid rgba(114, 136, 160, .38) !important;
    background: rgba(114, 136, 160, .08) !important;
}

body.palette-grey .loot-chip:hover {
    border-color: rgba(114, 136, 160, .24) !important;
}

body.palette-grey .live-card:hover {
    border-color: rgba(114, 136, 160, .28) !important;
    box-shadow: 0 4px 20px rgba(114, 136, 160, .08) !important;
}

body.palette-grey .user-box:hover {
    border-color: rgba(114, 136, 160, .28) !important;
    background: rgba(114, 136, 160, .05) !important;
}

body.palette-grey .modal-card {
    background: linear-gradient(180deg, #0d0f12, #080a0c) !important;
    border-color: rgba(114, 136, 160, .12) !important;
}

body.palette-grey .icon-close:hover {
    background: rgba(114, 136, 160, .14) !important;
    border-color: rgba(114, 136, 160, .28) !important;
}

body.palette-grey .roulette-pointer {
    background: linear-gradient(180deg, #A8BCCF, #fff, #7288A0) !important;
    box-shadow: 0 0 22px rgba(114, 136, 160, .45) !important;
}

body.palette-grey .roulette-item.near-top-focus {
    box-shadow: 0 0 0 1px rgba(114, 136, 160, .28), 0 0 28px rgba(114, 136, 160, .16) !important;
}

body.palette-grey .roulette-near-top-flash {
    background: radial-gradient(circle at 50% 50%, rgba(114, 136, 160, .18), transparent 32%), radial-gradient(circle at 50% 18%, rgba(168, 188, 207, .14), transparent 28%) !important;
}

body.palette-grey .ops-surface::before {
    background: linear-gradient(90deg, transparent, rgba(114, 136, 160, .1), transparent) !important;
}

body.palette-grey .ops-inline-chip {
    background: rgba(114, 136, 160, .1) !important;
    border-color: rgba(114, 136, 160, .2) !important;
    color: #A8BCCF !important;
}

body.palette-grey .ops-ladder-mode-btn:hover {
    border-color: rgba(114, 136, 160, .26) !important;
}

body.palette-grey .ops-ladder-mode-btn.is-active {
    background: linear-gradient(135deg, #7288A0, #536175) !important;
    border-color: transparent !important;
    box-shadow: 0 12px 26px rgba(114, 136, 160, .22) !important;
}

body.palette-grey .deposit-fullscreen-shell {
    background: linear-gradient(180deg, #0d0f12, #080a0c) !important;
}

body.palette-grey .deposit-menu-tab:hover {
    border-color: rgba(114, 136, 160, .26) !important;
    color: #fff !important;
}

body.palette-grey .deposit-menu-tab.is-active {
    background: linear-gradient(135deg, rgba(114, 136, 160, .18), rgba(83, 97, 117, .1)) !important;
    border-color: rgba(114, 136, 160, .36) !important;
    color: #7288A0 !important;
}

body.palette-grey .payment-method-btn:hover {
    border-color: rgba(114, 136, 160, .26) !important;
    background: rgba(114, 136, 160, .05) !important;
}

body.palette-grey .payment-method-icon {
    background: linear-gradient(135deg, #7288A0, #536175) !important;
}

body.palette-grey .payment-method-action {
    background: rgba(114, 136, 160, .08) !important;
    border-color: rgba(114, 136, 160, .18) !important;
    color: #A8BCCF !important;
}

body.palette-grey .payment-currency-btn.is-active {
    background: linear-gradient(135deg, rgba(114, 136, 160, .18), rgba(83, 97, 117, .1)) !important;
    border-color: rgba(114, 136, 160, .3) !important;
    color: #7288A0 !important;
}

body.palette-grey .support-inapp-shell {
    background: linear-gradient(180deg, #0d0f12, #080a0c) !important;
}

body.palette-grey .support-floating-btn {
    background: linear-gradient(135deg, #7288A0, #536175) !important;
    box-shadow: 0 8px 24px rgba(114, 136, 160, .32) !important;
}

body.palette-grey .support-floating-btn:hover {
    box-shadow: 0 12px 32px rgba(114, 136, 160, .42) !important;
}

body.palette-grey .support-message-bot {
    background: rgba(114, 136, 160, .08) !important;
    border-color: rgba(114, 136, 160, .18) !important;
}

body.palette-grey .support-message-user {
    background: rgba(114, 136, 160, .14) !important;
    border-color: rgba(114, 136, 160, .24) !important;
}

body.palette-grey .auth-card {
    background: linear-gradient(180deg, rgba(13, 15, 18, .99), rgba(7, 9, 11, .98)) !important;
}

body.palette-grey .auth-badge {
    background: rgba(114, 136, 160, .14) !important;
    color: #A8BCCF !important;
}

body.palette-grey .profile-tab:hover, body.palette-grey .ops-tab:hover {
    border-color: rgba(114, 136, 160, .26) !important;
    color: #fff !important;
}

body.palette-grey .profile-tab.is-active, body.palette-grey .ops-tab.is-active {
    background: linear-gradient(135deg, rgba(114, 136, 160, .18), rgba(83, 97, 117, .1)) !important;
    border-color: rgba(114, 136, 160, .36) !important;
    color: #7288A0 !important;
}

body.palette-grey .toast {
    background: #0a0c0e !important;
    border-color: rgba(114, 136, 160, .2) !important;
}

body.palette-grey .theme-toggle-single:hover {
    border-color: rgba(114, 136, 160, .26) !important;
}

body.palette-grey .case-group.pick-one-group .case-card {
    background: linear-gradient(180deg, rgba(114, 136, 160, .22), rgba(30, 35, 45, .9)) !important;
    border-color: rgba(150, 170, 185, .3) !important;
}

body.palette-grey .pick-one-card {
    background: linear-gradient(180deg, rgba(114, 136, 160, .2), rgba(28, 32, 40, .88)) !important;
    border-color: rgba(150, 170, 185, .26) !important;
}

body.palette-grey .pick-card.revealed {
    background: linear-gradient(180deg, rgba(50, 60, 75, .95), rgba(25, 30, 38, .97)) !important;
    border-color: rgba(150, 170, 185, .24) !important;
    box-shadow: 0 8px 22px rgba(114, 136, 160, .1) !important;
}

body.palette-grey .hidden-drop, body.palette-grey .hidden-pick-card {
    background: linear-gradient(180deg, rgba(114, 136, 160, .14), rgba(255, 255, 255, .03)) !important;
    border-color: rgba(114, 136, 160, .18) !important;
}

body.palette-grey .compact.selected {
    outline: 2px solid rgba(114, 136, 160, .44) !important;
}

body.palette-grey .dash-top-item:hover {
    border-color: rgba(114, 136, 160, .26) !important;
    background: rgba(114, 136, 160, .04) !important;
}

body.palette-grey .combined-history-row:hover {
    background: rgba(114, 136, 160, .03) !important;
}

body.palette-grey .ghost-btn.accent {
    border-color: rgba(114, 136, 160, .28) !important;
    color: #A8BCCF !important;
}

body.palette-grey ::-webkit-scrollbar-thumb {
    background: rgba(114, 136, 160, .2) !important;
}

body.palette-grey ::-webkit-scrollbar-thumb:hover {
    background: rgba(114, 136, 160, .38) !important;
}

body.palette-blue {
    --accent: #3868c0;
    --accent-2: #2a54a0;
    --accent-3: #7bafd4;
    --muted: #4e728f;
    --line: rgba(100, 160, 220, .12);
}

body.palette-grey {
    --accent: #7288a0;
    --accent-2: #536175;
    --accent-3: #a8bccf;
    --muted: #607080;
    --line: rgba(114, 136, 160, .12);
}

@keyframes live-card-glow-blue {
    0% {
        box-shadow: 0 0 0 2px rgba(56, 104, 192, .9), 0 0 32px rgba(56, 104, 192, .6);
    }
    100% {
        box-shadow: 0 1px 0 rgba(255, 255, 255, .03) inset;
    }
}

@keyframes live-card-glow-grey {
    0% {
        box-shadow: 0 0 0 2px rgba(114, 136, 160, .9), 0 0 32px rgba(114, 136, 160, .6);
    }
    100% {
        box-shadow: 0 1px 0 rgba(255, 255, 255, .03) inset;
    }
}

body.palette-blue .live-card-incoming {
    animation-name: live-card-pop, live-card-glow-blue !important;
    border-color: rgba(56, 104, 192, .8) !important;
}

body.palette-grey .live-card-incoming {
    animation-name: live-card-pop, live-card-glow-grey !important;
    border-color: rgba(114, 136, 160, .8) !important;
}

body.palette-blue .deposit-terminal-pay-btn:hover {
    box-shadow: 0 10px 32px rgba(56, 104, 192, .48) !important;
}

body.palette-grey .deposit-terminal-pay-btn:hover {
    box-shadow: 0 10px 32px rgba(114, 136, 160, .35) !important;
}

body.palette-blue .deposit-terminal-input::placeholder {
    color: #4e728f !important;
}

body.palette-grey .deposit-terminal-input::placeholder {
    color: #607080 !important;
}

body.palette-blue .deposit-terminal .payment-method-hint {
    color: #6a92b0 !important;
}

body.palette-grey .deposit-terminal .payment-method-hint {
    color: #8090a0 !important;
}

body.palette-blue .combined-history-row span, body.palette-blue .combined-history-row small, body.palette-blue .payment-history-row span, body.palette-blue .payment-history-row small, body.palette-blue .ops-battle-history-row span, body.palette-blue .ops-battle-history-row small {
    color: #4e728f !important;
}

body.palette-grey .combined-history-row span, body.palette-grey .combined-history-row small, body.palette-grey .payment-history-row span, body.palette-grey .payment-history-row small, body.palette-grey .ops-battle-history-row span, body.palette-grey .ops-battle-history-row small {
    color: #607080 !important;
}

body.palette-blue .combined-history-row:hover {
    background: rgba(56, 104, 192, .05) !important;
}

body.palette-grey .combined-history-row:hover {
    background: rgba(114, 136, 160, .04) !important;
}

.pet-deposit-panel {
    padding: 18px 20px 4px;
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.pet-deposit-panel-head {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.pet-deposit-panel-title {
    font-size: 16px;
    font-weight: 800;
    color: var(--text);
}

.pet-deposit-panel-sub {
    font-size: 13px;
    color: var(--muted);
}

.pet-deposit-form {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.pet-deposit-field {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.pet-deposit-label {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--muted);
}

.pet-deposit-input {
    width: 100%;
    max-width: 340px;
}

.pet-deposit-filters {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 5px;
    margin-bottom: 6px;
}

.pet-deposit-search {
    flex: 1;
    min-width: 110px;
    background: rgba(255, 255, 255, .05);
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 7px;
    color: var(--text);
    font-size: 12px;
    padding: 5px 9px;
    outline: none;
    transition: border-color .15s;
    box-sizing: border-box;
}

.pet-deposit-search::placeholder {
    color: rgba(255, 255, 255, .25);
}

.pet-deposit-search:focus {
    border-color: var(--accent);
}

.pet-deposit-price-row {
    display: flex;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
}

.pet-deposit-price-input {
    width: 62px;
    background: rgba(255, 255, 255, .05);
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 7px;
    color: var(--text);
    font-size: 12px;
    padding: 5px 7px;
    outline: none;
    transition: border-color .15s;
    -moz-appearance: textfield;
}

.pet-deposit-price-input::-webkit-outer-spin-button, .pet-deposit-price-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.pet-deposit-price-input::placeholder {
    color: rgba(255, 255, 255, .2);
}

.pet-deposit-price-input:focus {
    border-color: var(--accent);
}

.pet-deposit-price-sep {
    color: rgba(255, 255, 255, .3);
    font-size: 12px;
    flex-shrink: 0;
}

.pet-deposit-sort-toggle {
    display: flex;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 7px;
    overflow: hidden;
    flex-shrink: 0;
}

.pet-sort-btn {
    background: transparent;
    border: none;
    border-right: 1px solid rgba(255, 255, 255, .1);
    color: var(--muted);
    font-size: 13px;
    padding: 4px 9px;
    cursor: pointer;
    transition: background .12s, color .12s;
    line-height: 1;
}

.pet-sort-btn:last-child {
    border-right: none;
}

.pet-sort-btn:hover {
    background: rgba(255, 255, 255, .06);
    color: var(--text);
}

.pet-sort-btn.is-active {
    background: var(--accent);
    color: #fff;
}

.pet-deposit-no-results {
    grid-column: 1 / -1;
    text-align: center;
    padding: 18px 8px;
    color: rgba(255, 255, 255, .3);
    font-size: 13px;
}

.pet-deposit-grid {
    display: grid;
    grid-template-columns:repeat(auto-fill, minmax(110px, 1fr));
    gap: 8px;
    max-height: 260px;
    overflow-y: auto;
    padding: 2px;
}

.pet-deposit-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    padding: 10px 8px;
    background: rgba(255, 255, 255, .04);
    border: 1px solid var(--line);
    border-radius: 10px;
    cursor: pointer;
    transition: .15s border-color, .15s background, .15s transform;
    text-align: center;
}

.pet-deposit-card:hover {
    background: rgba(255, 255, 255, .07);
    border-color: rgba(255, 255, 255, .18);
    transform: translateY(-2px);
}

.pet-deposit-card.is-selected {
    border-color: var(--accent) !important;
    background: rgba(255, 255, 255, .08) !important;
    box-shadow: 0 0 0 2px rgba(255, 255, 255, .08), 0 0 14px var(--accent);
}

.pet-deposit-card.is-special-offer {
    border-color: rgba(255, 181, 69, .45);
}

.pet-deposit-card.is-special-offer.is-selected {
    border-color: #ffb545 !important;
    box-shadow: 0 0 0 2px rgba(255, 255, 255, .08), 0 0 14px #ffb545;
}

.pet-deposit-special-badge {
    background: linear-gradient(135deg, #ffb545, #b5650a);
    color: #1a1002;
    font-size: 8.5px;
    font-weight: 800;
    line-height: 1.3;
    padding: 2px 6px;
    border-radius: 999px;
    max-width: 100%;
    box-shadow: 0 2px 6px rgba(181, 101, 10, .4);
}

.pet-deposit-card-emoji {
    font-size: 28px;
    line-height: 1;
}

.pet-deposit-card-img {
    width: 56px;
    height: 56px;
    object-fit: contain;
    border-radius: 6px;
}

.pet-deposit-card-name {
    font-size: 11px;
    font-weight: 700;
    color: var(--text);
    line-height: 1.2;
    word-break: break-word;
}

.pet-deposit-card-value {
    font-size: 11px;
    color: var(--muted);
}

.pet-deposit-qty-row {
    display: flex;
    align-items: center;
    gap: 0;
    margin-top: 4px;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 8px;
    overflow: hidden;
    height: 26px;
}

.pet-qty-btn {
    background: rgba(255, 255, 255, .06);
    border: none;
    color: var(--text);
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
    width: 28px;
    height: 26px;
    cursor: pointer;
    transition: background .13s;
    flex-shrink: 0;
    padding: 0;
}

.pet-qty-btn:hover {
    background: rgba(255, 255, 255, .14);
}

.pet-qty-btn:active {
    background: rgba(255, 255, 255, .2);
}

.pet-qty-num {
    font-family: 'Syne', sans-serif;
    font-size: 13px;
    font-weight: 800;
    color: var(--text);
    min-width: 24px;
    text-align: center;
    padding: 0 4px;
    background: rgba(255, 255, 255, .03);
    height: 26px;
    line-height: 26px;
}

.pet-deposit-card.is-selected .pet-deposit-qty-row {
    border-color: var(--accent);
}

.pet-deposit-card.is-selected .pet-qty-num {
    color: var(--accent);
}

.pet-deposit-selected-info {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 10px 14px;
    margin: 10px 0;
    background: rgba(255, 255, 255, .04);
    border: 1px solid var(--accent);
    border-radius: 10px;
    font-size: 13px;
}

.pet-sel-header {
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: 2px;
}

.pet-sel-row {
    display: flex;
    align-items: center;
    gap: 8px;
}

.pet-sel-img {
    width: 28px;
    height: 28px;
    object-fit: contain;
    border-radius: 4px;
    flex-shrink: 0;
}

.pet-sel-emoji {
    font-size: 22px;
    line-height: 28px;
    flex-shrink: 0;
}

.pet-sel-name {
    flex: 1;
    font-size: 12px;
    font-weight: 700;
    color: var(--text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pet-sel-qty {
    font-size: 12px;
    font-weight: 800;
    color: var(--muted);
    flex-shrink: 0;
}

.pet-sel-val {
    font-size: 12px;
    font-weight: 800;
    color: var(--accent);
    flex-shrink: 0;
}

.pet-sel-total {
    border-top: 1px solid rgba(255, 255, 255, .07);
    padding-top: 6px;
    font-size: 13px;
    font-weight: 800;
    color: var(--text);
    text-align: right;
}

.pet-sel-bonus {
    color: #5be88a;
    font-size: 11px;
    margin-left: 4px;
}

.pet-deposit-promo-hint {
    font-size: 12px;
    font-weight: 700;
    margin-top: 4px;
    padding: 5px 10px;
    border-radius: 6px;
}

.pet-deposit-promo-hint.is-valid {
    color: #6ddc9e;
    background: rgba(80, 200, 120, .10);
    border: 1px solid rgba(80, 200, 120, .25);
}

.pet-deposit-promo-hint.is-invalid {
    color: #58A6FF;
    background: rgba(88, 166, 255, .08);
    border: 1px solid rgba(88, 166, 255, .22);
}

.pet-deposit-next-btn {
    margin-top: 10px;
}

.pet-deposit-submit-btn {
    margin-top: 4px;
}

.pet-deposit-btn-hint {
    font-size: 12px;
    text-align: center;
    margin-top: 6px;
    min-height: 15px;
}

.pet-deposit-submit-btn:disabled {
    opacity: .45;
    cursor: not-allowed;
    pointer-events: none;
}

.pet-deposit-status {
    padding: 10px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
}

.pet-deposit-status.is-success {
    background: rgba(80, 200, 120, .12);
    border: 1px solid rgba(80, 200, 120, .35);
    color: #6ddc9e;
}

.pet-deposit-status.is-error {
    background: rgba(88, 166, 255, .12);
    border: 1px solid rgba(88, 166, 255, .35);
    color: #58A6FF;
}

.pet-deposit-trade-modal {
    position: fixed;
    inset: 0;
    z-index: 9300;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.65);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
    animation: fadeIn 0.25s ease-out;
}

.pet-deposit-trade-modal.hidden {
    display: none;
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

.trade-modal-content {
    background: #1a1a1a;
    border: 1px solid #333;
    border-radius: 12px;
    width: 90%;
    max-width: 500px;
    max-height: 90vh;
    display: flex;
    flex-direction: column;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.8);
    overflow: hidden;
    animation: slideUp 0.3s ease-out;
}

.trade-modal-header, .trade-modal-footer {
    flex-shrink: 0;
}

@keyframes slideUp {
    from {
        transform: translateY(20px);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

.trade-modal-header {
    padding: 20px;
    border-bottom: 1px solid #333;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.trade-modal-header h3 {
    margin: 0;
    font-size: 18px;
    font-weight: 600;
    color: #e0e0e0;
}

.trade-modal-close {
    background: none;
    border: none;
    font-size: 24px;
    color: #999;
    cursor: pointer;
    padding: 0;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: color 0.2s;
}

.trade-modal-close:hover {
    color: #e0e0e0;
}

.trade-modal-body {
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    overflow-y: auto;
    min-height: 0;
}

@media (max-width: 480px) {
    .trade-modal-content {
        width: 94%;
        max-height: 92vh;
    }

    .trade-modal-body {
        padding: 18px;
        gap: 16px;
    }

    .trade-modal-header {
        padding: 16px 18px;
    }

    .trade-modal-footer {
        padding: 14px 18px;
    }
}

.trade-account-info {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.trade-account-info > label {
    font-size: 13px;
    font-weight: 600;
    color: #999;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.trade-account-display {
    background: #0a0a0a;
    border: 2px solid #4CAF81;
    border-radius: 8px;
    padding: 12px 16px;
    font-size: 16px;
    font-weight: 600;
    color: #4CAF81;
    text-align: center;
    font-family: 'Courier New', monospace;
    user-select: all;
}

.trade-account-info {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 16px;
}

.trade-account-info > label {
    font-size: 13px;
    font-weight: 600;
    color: #999;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.trade-account-input {
    background: #0a0a0a;
    border: 2px solid #4CAF81;
    border-radius: 8px;
    padding: 12px 16px;
    font-size: 16px;
    font-weight: 600;
    color: #4CAF81;
    font-family: 'Courier New', monospace;
    cursor: text;
}

.trade-account-input:focus {
    outline: none;
    border-color: #6ddc9e;
    box-shadow: 0 0 0 2px rgba(76, 175, 129, 0.3);
}

.trade-user-info {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.trade-user-info > label {
    font-size: 13px;
    font-weight: 600;
    color: #999;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.trade-user-nick-input {
    background: #0a0a0a;
    border: 1px solid #333;
    border-radius: 8px;
    padding: 12px 16px;
    font-size: 14px;
    color: #e0e0e0;
    font-family: 'Courier New', monospace;
    cursor: text;
}

.trade-user-nick-input:focus {
    outline: none;
    border-color: #4CAF81;
    box-shadow: 0 0 0 2px rgba(76, 175, 129, 0.2);
}

.trade-copy-btn {
    background: rgba(76, 175, 129, 0.15);
    border: 1px solid rgba(76, 175, 129, 0.4);
    border-radius: 6px;
    padding: 8px 12px;
    font-size: 12px;
    font-weight: 600;
    color: #6ddc9e;
    cursor: pointer;
    transition: all 0.2s;
}

.trade-copy-btn:hover {
    background: rgba(76, 175, 129, 0.25);
    border-color: rgba(76, 175, 129, 0.6);
}

.trade-instructions {
    background: rgba(76, 175, 129, 0.08);
    border: 1px solid rgba(76, 175, 129, 0.2);
    border-radius: 8px;
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.trade-instructions p {
    margin: 0;
    font-size: 13px;
    color: #b0b0b0;
    line-height: 1.5;
}

.trade-instructions p strong, .trade-account-name {
    color: #4CAF81;
    font-weight: 600;
}

.trade-ready-warning {
    background: rgba(255, 90, 110, 0.14);
    border: 1px solid rgba(255, 90, 110, 0.45);
    border-radius: 8px;
    padding: 12px 14px;
    color: #FF5A6E;
    font-weight: 800;
    font-size: 14px;
    line-height: 1.4;
    text-align: center;
}

.trade-timer {
    text-align: center;
    font-size: 13px;
    color: #999;
    padding: 8px;
    background: rgba(255, 165, 0, 0.08);
    border-radius: 6px;
}

#petDepositTradeTimer {
    font-weight: 600;
    color: #ffa500;
    font-family: 'Courier New', monospace;
}

.trade-timeout-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 12px;
    padding: 8px 0 4px;
}

.trade-timeout-icon {
    font-size: 44px;
    line-height: 1;
    filter: grayscale(0.15);
}

.trade-timeout-title {
    font-size: 17px;
    font-weight: 700;
    color: #58A6FF;
}

.trade-timeout-text {
    font-size: 13.5px;
    color: #b0b0b0;
    line-height: 1.55;
}

.trade-timeout-hint {
    font-size: 12.5px;
    color: #999;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 8px;
    padding: 10px 14px;
    line-height: 1.5;
}

.trade-success-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 12px;
    padding: 12px 0 4px;
}

.trade-success-icon {
    font-size: 48px;
    line-height: 1;
    animation: tradeSuccessPop 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes tradeSuccessPop {
    from {
        transform: scale(0.5);
        opacity: 0;
    }
    to {
        transform: scale(1);
        opacity: 1;
    }
}

.trade-success-title {
    font-size: 18px;
    font-weight: 800;
    color: #6ddc9e;
}

.trade-success-text {
    font-size: 13.5px;
    color: #b0b0b0;
    line-height: 1.55;
}

.trade-success-amount {
    font-size: 28px;
    font-weight: 800;
    color: #4CAF81;
    font-family: 'Courier New', monospace;
    background: rgba(76, 175, 129, 0.1);
    border: 1px solid rgba(76, 175, 129, 0.3);
    border-radius: 10px;
    padding: 10px 24px;
}

.trade-modal-footer {
    padding: 16px 24px;
    border-top: 1px solid #333;
    display: flex;
    gap: 12px;
    justify-content: flex-end;
}

.trade-modal-close-btn {
    background: rgba(100, 100, 100, 0.3);
    border: 1px solid rgba(150, 150, 150, 0.3);
    border-radius: 6px;
    padding: 8px 16px;
    font-size: 13px;
    font-weight: 600;
    color: #d0d0d0;
    cursor: pointer;
    transition: all 0.2s;
}

.trade-modal-close-btn:hover {
    background: rgba(100, 100, 100, 0.5);
    border-color: rgba(150, 150, 150, 0.5);
}

.queue-notice-modal-content {
    max-width: 440px;
}

.queue-notice-header {
    border-bottom-color: rgba(255, 165, 60, 0.18);
}

.queue-notice-body {
    align-items: center;
    text-align: center;
}

.queue-notice-icon-wrap {
    width: 84px;
    height: 84px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 165, 60, 0.18) 0%, rgba(255, 165, 60, 0.04) 70%);
    border: 1.5px solid rgba(255, 165, 60, 0.3);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 4px auto 0;
}

.queue-notice-icon {
    font-size: 40px;
    line-height: 1;
    animation: queuePulse 1.8s ease-in-out infinite;
}

@keyframes queuePulse {
    0%, 100% {
        transform: scale(1);
        opacity: 1;
    }
    50% {
        transform: scale(1.08);
        opacity: .85;
    }
}

.queue-notice-title {
    font-size: 17px;
    font-weight: 700;
    color: #f0f0f0;
    line-height: 1.4;
}

.queue-notice-text {
    font-size: 13.5px;
    color: #a8a8a8;
    line-height: 1.55;
}

.queue-notice-eta-card {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    background: rgba(255, 165, 60, 0.08);
    border: 1px solid rgba(255, 165, 60, 0.25);
    border-radius: 10px;
    padding: 14px 18px;
}

.queue-notice-eta-label {
    font-size: 11px;
    font-weight: 700;
    color: #ffb066;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.queue-notice-eta-value {
    font-size: 26px;
    font-weight: 800;
    color: #ffa03c;
    font-family: 'Courier New', monospace;
    letter-spacing: 0.02em;
}

.queue-notice-footer {
    justify-content: stretch;
}

.queue-notice-close-btn {
    background: rgba(100, 100, 100, 0.25);
    border: 1px solid rgba(150, 150, 150, 0.3);
    border-radius: 8px;
    padding: 11px 16px;
    font-size: 13.5px;
    font-weight: 600;
    color: #c8c8c8;
    cursor: pointer;
    transition: all 0.2s;
    flex: 1;
}

.queue-notice-close-btn:hover {
    background: rgba(100, 100, 100, 0.4);
}

.queue-notice-join-btn {
    flex: 1.4;
    background: linear-gradient(135deg, #ff9d3c, #ff7a3c);
    border: none;
    border-radius: 8px;
    padding: 11px 16px;
    font-size: 13.5px;
    font-weight: 700;
    color: #1a1000;
    cursor: pointer;
    transition: all 0.2s;
    box-shadow: 0 4px 16px rgba(255, 140, 60, 0.25);
}

.queue-notice-join-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 20px rgba(255, 140, 60, 0.35);
}

.queue-notice-join-btn:active {
    transform: translateY(0);
}

.queue-wait-modal-content {
    max-width: 440px;
}

.queue-wait-header {
    border-bottom-color: rgba(90, 170, 255, 0.18);
}

.queue-wait-body {
    align-items: center;
    text-align: center;
}

.queue-wait-ring-wrap {
    position: relative;
    width: 120px;
    height: 120px;
    margin: 4px auto 0;
}

.queue-wait-ring {
    width: 120px;
    height: 120px;
    transform: rotate(-90deg);
}

.queue-wait-ring-bg {
    fill: none;
    stroke: rgba(90, 170, 255, 0.12);
    stroke-width: 8;
}

.queue-wait-ring-fill {
    fill: none;
    stroke: #5aaaff;
    stroke-width: 8;
    stroke-linecap: round;
    stroke-dasharray: 326.7;
    stroke-dashoffset: 0;
    transition: stroke-dashoffset 1s linear;
    filter: drop-shadow(0 0 6px rgba(90, 170, 255, 0.5));
}

.queue-wait-ring-time {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    font-weight: 800;
    color: #5aaaff;
    font-family: 'Courier New', monospace;
}

.queue-wait-title {
    font-size: 17px;
    font-weight: 700;
    color: #f0f0f0;
}

.queue-wait-text {
    font-size: 13.5px;
    color: #a8a8a8;
    line-height: 1.55;
}

.queue-wait-status {
    font-size: 12.5px;
    font-weight: 600;
    color: #5aaaff;
    background: rgba(90, 170, 255, 0.1);
    border: 1px solid rgba(90, 170, 255, 0.25);
    border-radius: 20px;
    padding: 6px 16px;
}

.queue-wait-status.is-ready {
    color: #6ddc9e;
    background: rgba(76, 175, 129, 0.12);
    border-color: rgba(76, 175, 129, 0.35);
}

.queue-wait-minimize-footer-btn {
    width: 100%;
    background: rgba(100, 100, 100, 0.2);
    border: 1px solid rgba(150, 150, 150, 0.25);
    border-radius: 8px;
    padding: 11px 16px;
    font-size: 13px;
    font-weight: 600;
    color: #b0b0b0;
    cursor: pointer;
    transition: all 0.2s;
}

.queue-wait-minimize-footer-btn:hover {
    background: rgba(100, 100, 100, 0.35);
}

.trade-modal-cancel-btn {
    background: rgba(220, 80, 80, 0.12);
    border: 1px solid rgba(220, 80, 80, 0.35);
    border-radius: 6px;
    padding: 8px 16px;
    font-size: 13px;
    font-weight: 600;
    color: #e88;
    cursor: pointer;
    transition: all 0.2s;
}

.trade-modal-cancel-btn:hover {
    background: rgba(220, 80, 80, 0.22);
    border-color: rgba(220, 80, 80, 0.55);
}

.trade-modal-cancel-btn:disabled {
    opacity: 0.5;
    cursor: default;
}

.oos-modal-overlay {
    position: fixed;
    inset: 0;
    z-index: 9200;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, .55);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

.oos-modal-overlay.hidden {
    display: none;
}

.oos-modal-card {
    width: min(420px, 92vw);
    background: var(--panel, #161616);
    border: 1px solid rgba(255, 255, 255, .10);
    border-radius: 18px;
    box-shadow: 0 24px 70px rgba(0, 0, 0, .55);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    animation: carnageModalIn .38s cubic-bezier(.17, .67, .3, 1.1) both;
}

.oos-modal-body {
    padding: 28px 28px 20px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.oos-modal-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--text, #e0e0e0);
    line-height: 1.3;
}

.oos-modal-desc {
    font-size: 14px;
    color: var(--muted, #777);
    line-height: 1.6;
}

.oos-modal-footer {
    padding: 14px 28px 22px;
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}

.deposit-rules-card {
    width: min(420px, 92vw);
    max-height: min(640px, 86vh);
    position: relative;
}

.deposit-rules-card .oos-modal-body {
    overflow-y: auto;
    flex: 1 1 auto;
    min-height: 0;
}

.deposit-rules-close {
    position: absolute;
    top: 14px;
    right: 14px;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, .06);
    border: 1px solid var(--line);
    color: var(--text);
    font-size: 15px;
    cursor: pointer;
    z-index: 1;
}

.deposit-rules-close:hover {
    background: rgba(255, 255, 255, .12);
}

.deposit-rules-card .oos-modal-title {
    padding-right: 40px;
}

.deposit-rules-list {
    margin: 4px 0 14px;
    padding-left: 20px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.deposit-rules-list li {
    font-size: 13px;
    line-height: 1.5;
    color: var(--text);
}

.deposit-rules-list li.deposit-rules-critical {
    color: #FF5C5C;
    font-weight: 600;
}

.deposit-rules-list li.deposit-rules-critical strong {
    color: #FF5C5C;
}

.deposit-rules-list a {
    color: #58A6FF;
    font-weight: 700;
    text-decoration: none;
}

.deposit-rules-agree {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px;
    background: rgba(255, 255, 255, .04);
    border: 1px solid var(--line);
    cursor: pointer;
}

.deposit-rules-agree input[type="checkbox"] {
    margin-top: 2px;
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    accent-color: #58A6FF;
    cursor: pointer;
}

.deposit-rules-agree span {
    font-size: 12px;
    line-height: 1.5;
    color: var(--muted);
}

#depositRulesModal .oos-modal-footer {
    justify-content: center;
}

#depositRulesContinueBtn:disabled {
    opacity: .4;
    cursor: not-allowed;
    filter: grayscale(.3);
}

.public-profile-page-layout {
    max-width: 640px;
    margin: 0 auto;
}

/* A Telegram display name/username has no spaces to wrap at, so a long one
   (e.g. a full concatenated first+last name) doesn't wrap by default and
   overflows the viewport on mobile instead — scoped here rather than on
   the shared .section-head h2 since item/case names are always short and
   this hasn't needed it. */
#publicProfileName {
    overflow-wrap: anywhere;
    word-break: break-word;
    font-family: 'DM Mono', monospace !important;
    letter-spacing: -.01em;
}

.public-profile-avatar {
    width: 96px;
    height: 96px;
    /* !important needed — a sitewide `* { border-radius: 0 !important }`
       reset (styles.css:56/7642, the site's deliberate sharp-corner look
       for buttons/cards/modals) otherwise wins over this and the avatar
       renders as an unclipped square. Some source avatar photos (e.g. a
       Telegram video-avatar poster frame) already have their own circular
       mask baked into the JPEG with black outside it — without this
       clipping actually applying, that baked-in black circle's corners
       show up as a black square frame around the photo. */
    border-radius: 50% !important;
    margin: 0 auto 18px;
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 34px;
    font-weight: 800;
    color: #fff;
    overflow: hidden;
}

.public-profile-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.public-profile-inv-title {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--muted);
    margin-bottom: 10px;
}

.public-profile-inv-title span {
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
}

@media (max-width: 480px) {
    .public-profile-avatar {
        width: 76px;
        height: 76px;
        font-size: 28px;
    }
}

.upg-preview-track {
    position: relative;
    display: flex;
    height: 36px;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .12);
    background: rgba(255, 255, 255, .03);
}

.upg-preview-segment {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: rgba(255, 255, 255, .7);
    overflow: hidden;
    white-space: nowrap;
}

.upg-preview-seg-spinup {
    background: rgba(56, 104, 192, .16);
}

.upg-preview-seg-cruise {
    background: rgba(56, 104, 192, .30);
}

.upg-preview-seg-decel {
    background: rgba(56, 104, 192, .48);
}

.upg-preview-marker {
    position: absolute;
    top: 0;
    left: 0;
    width: 2px;
    height: 100%;
    background: #fff;
    box-shadow: 0 0 8px rgba(255, 255, 255, .85);
    pointer-events: none;
}

.oos-cr-grid {
    display: grid;
    grid-template-columns:repeat(auto-fill, minmax(90px, 1fr));
    gap: 8px;
    max-height: 360px;
    overflow-y: auto;
}

.oos-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    padding: 10px 6px 8px;
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 10px;
    cursor: pointer;
    text-align: center;
    transition: background .14s, border-color .14s;
    position: relative;
}

.oos-card input[type=checkbox] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.oos-card:hover {
    background: rgba(255, 255, 255, .07);
    border-color: rgba(255, 255, 255, .16);
}

.oos-card.oos-card-on {
    background: rgba(88, 166, 255, .12);
    border-color: rgba(88, 166, 255, .45);
}

.oos-card.oos-card-on::after {
    content: '✕';
    position: absolute;
    top: 4px;
    right: 6px;
    font-size: 10px;
    font-weight: 900;
    color: #58A6FF;
    line-height: 1;
}

.oos-card-img {
    width: 48px;
    height: 48px;
    object-fit: contain;
    border-radius: 5px;
}

.oos-card-emoji {
    font-size: 28px;
    line-height: 1;
}

.oos-card-name {
    font-size: 10px;
    font-weight: 700;
    color: var(--text);
    line-height: 1.2;
    word-break: break-word;
}

.oos-card-delta {
    font-size: 10px;
    font-weight: 800;
    color: var(--muted, #888);
}

.oos-card.oos-card-on .oos-card-delta {
    color: #58A6FF;
}

.oos-card.is-disabled {
    opacity: .38;
    cursor: not-allowed;
    pointer-events: none;
}

.exchange-shop-balance {
    margin-top: 8px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    border-radius: 999px;
    background: rgba(88, 166, 255, .12);
    border: 1px solid rgba(88, 166, 255, .35);
    color: #58A6FF;
    font-size: 13px;
    font-weight: 800;
}

.exchange-shop-shell {
    width: min(1080px, 100%);
    height: min(740px, 90vh);
    max-height: min(740px, 90vh);
    display: flex;
    flex-direction: column;
}

.exchange-shop-columns {
    display: flex;
    gap: 18px;
    padding: 18px 28px 28px;
    flex: 1;
    min-height: 0;
}

.exchange-shop-col {
    min-width: 0;
    display: flex;
    flex-direction: column;
    background: rgba(255, 255, 255, .03);
    border: 1px solid rgba(255, 255, 255, .09);
    border-radius: 18px;
    padding: 18px;
    min-height: 0;
}

.exchange-shop-col-sell,
.exchange-shop-col-buy {
    flex: 1 1 0;
}

.exchange-shop-col-head {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 14px;
}

.exchange-shop-col-title {
    font-size: 17px;
    font-weight: 900;
    letter-spacing: .01em;
}

.exchange-shop-col-sell .exchange-shop-col-title {
    color: #ff9838;
}

.exchange-shop-col-buy .exchange-shop-col-title {
    color: #58A6FF;
}

.exchange-shop-col-grid {
    flex: 1;
    max-height: none;
    align-content: flex-start;
}

.exchange-confirm-bar {
    margin-top: 14px;
    padding: 12px 14px;
    border-radius: 12px;
    background: rgba(255, 255, 255, .05);
    border: 1px solid rgba(255, 255, 255, .12);
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: stretch;
}

.exchange-confirm-bar span {
    font-size: 13px;
    color: var(--text);
    line-height: 1.4;
}

.exchange-confirm-bar .primary-btn {
    width: 100%;
}

/* .primary-btn has no global :disabled style anywhere in the codebase, so
   #exchangeNextBtn's disabled state (no offer chosen yet) would otherwise
   look identical to enabled — scoped here rather than adding a global rule
   with unreviewed blast radius on every other primary-btn in the app. */
#exchangeNextBtn:disabled {
    opacity: .4;
    cursor: not-allowed;
    filter: grayscale(.3);
}

/* Quantity badge on an offer/given-chip card — bottom-left, so it never
   collides with .oos-card.oos-card-on's existing top-right ✕ checkmark. */
.exchange-offer-qty-badge {
    position: absolute;
    left: 6px;
    bottom: 6px;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 999px;
    background: #58A6FF;
    color: #0a0a0a;
    font-size: 10px;
    font-weight: 900;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .35);
}

.exchange-offer-card {
    padding-bottom: 14px;
}

.exchange-offer-card .oos-card-delta.exchange-offer-topup {
    color: #ff6868 !important;
}

.exchange-offer-card .oos-card-delta.exchange-offer-change {
    color: #4ce08a !important;
}

/* Confirm / success modals reuse the .oos-modal-* shell (same family as
   minWithdrawModal/exchangeBlockedModal) but need more width for a row of
   item chips + arrow + received item. */
.exchange-confirm-card,
.exchange-success-card {
    width: min(520px, 94vw);
}

.exchange-confirm-row {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 14px;
    padding: 6px 0 4px;
    flex-wrap: wrap;
}

.exchange-confirm-section {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.exchange-confirm-label {
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.exchange-confirm-label-give {
    color: #ff9838;
}

.exchange-confirm-label-receive {
    color: #58A6FF;
}

.exchange-confirm-given {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: center;
    align-items: flex-start;
}

.exchange-confirm-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    width: 80px;
}

.exchange-confirm-item-name {
    font-size: 11px;
    font-weight: 700;
    color: var(--muted, #97a8b4);
    text-align: center;
    line-height: 1.2;
    word-break: break-word;
}

.exchange-confirm-arrow-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.exchange-confirm-arrow-spacer {
    font-size: 11px;
    font-weight: 900;
    visibility: hidden;
}

.exchange-confirm-arrow-box {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 80px;
}

/* Drawn as a solid triangle instead of a "→" glyph — text-arrow characters
   carry uneven font side-bearing that makes them look off-center inside
   their own box even when the box itself is geometrically centered. */
.exchange-confirm-arrow {
    display: block;
    width: 14px;
    height: 20px;
    background: #58A6FF;
    clip-path: polygon(0 0, 100% 50%, 0 100%);
    animation: fusePulse 1.6s ease-in-out infinite;
}

.exchange-confirm-chip {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 80px;
    height: 80px;
    background: rgba(255, 255, 255, .05);
    border: 1px solid rgba(255, 255, 255, .12);
    flex-shrink: 0;
}

.exchange-confirm-chip .oos-card-img {
    width: 60px;
    height: 60px;
}

.exchange-confirm-chip .oos-card-emoji {
    font-size: 38px;
}

.exchange-confirm-received {
    background: rgba(88, 166, 255, .08);
    border-color: rgba(88, 166, 255, .4);
}

.exchange-confirm-receive-name {
    text-align: center;
    font-size: 14px;
    font-weight: 800;
    color: var(--text);
}

.exchange-confirm-delta {
    text-align: center;
    font-size: 17px;
    font-weight: 900;
    margin-top: 6px;
}

.exchange-confirm-delta-negative {
    color: #ff6868;
}

.exchange-confirm-delta-positive {
    color: #4ce08a;
}

.exchange-success-card {
    width: min(360px, 90vw);
}

.exchange-success-card .oos-modal-body {
    padding: 22px 24px 14px;
    gap: 6px;
}

.exchange-success-card .oos-modal-footer {
    padding: 10px 24px 20px;
    justify-content: center;
}

.exchange-success-receive {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    margin: 0 auto 8px;
    width: 84px;
    height: 84px;
    background: rgba(88, 166, 255, .1);
    border: 1px solid rgba(88, 166, 255, .4);
}

.exchange-success-receive .oos-card-img {
    width: 60px;
    height: 60px;
}

.exchange-success-receive .oos-card-emoji {
    font-size: 40px;
}

.exchange-success-title {
    text-align: center;
    font-size: 20px;
    font-weight: 900;
    color: #4ce08a;
    letter-spacing: .02em;
}

.exchange-success-name {
    text-align: center;
    font-size: 15px;
    font-weight: 700;
    color: var(--text);
}

.exchange-success-qty {
    color: #58A6FF;
    font-weight: 900;
}

@media (max-width: 760px) {
    .exchange-shop-shell {
        height: calc(100vh - 20px);
        max-height: calc(100vh - 20px);
        overflow-y: auto;
    }

    /* Stacked sell/buy columns used to fight over the shell's fixed height via
       flex:1 + min-height:0 (inherited from the desktop side-by-side rule) —
       each column got squeezed down to a sliver, and because that squeeze
       combined with the column's own overflow:visible, the shell never saw
       the true content height to scroll for it: neither the shell nor the
       columns wrapper scrolled, only each grid's own tiny internal scrollbox
       did (near-invisible on a real phone). Letting both columns grow to
       their natural full height and turning the shell into the single
       scroll container for the whole stacked modal fixes that — one normal
       page-like scroll instead of two cramped nested scrollboxes. */
    .exchange-shop-columns {
        flex-direction: column;
        flex: none;
        min-height: auto;
        padding: 12px 10px 18px;
        gap: 14px;
    }

    .exchange-shop-col {
        flex: none;
        /* Was 18px on every side — on a ~350px-wide stacked column that ate
           a third of the width before the grid even started, squeezing the
           cards below into icons with no visible labels. Freeing that width
           lets the cards below grow instead. */
        padding: 12px 10px;
        border-radius: 16px;
    }

    .exchange-shop-col-head {
        gap: 4px;
        margin-bottom: 10px;
    }

    .exchange-shop-col-title {
        font-size: 15.5px;
    }

    /* Bigger cards, fewer per row, instead of the desktop 90px minimum that
       was cramming 3+ tiny tiles into a narrow stacked column — this is the
       actual "spread it out" fix, scoped to the exchange grids only so the
       rest of the app's item grids (profile inventory, case picker, etc.)
       are untouched. */
    .exchange-shop-col-grid {
        max-height: none;
        overflow: visible;
        grid-template-columns: repeat(auto-fill, minmax(112px, 1fr));
        gap: 12px;
    }

    .exchange-shop-col-grid .oos-card {
        padding: 14px 8px 10px;
        gap: 8px;
        border-radius: 14px;
    }

    .exchange-shop-col-grid .oos-card-img {
        width: 68px;
        height: 68px;
    }

    .exchange-shop-col-grid .oos-card-emoji {
        font-size: 42px;
    }

    .exchange-shop-col-grid .oos-card-name {
        font-size: 12.5px;
        line-height: 1.25;
    }

    .exchange-shop-col-grid .oos-card-delta {
        font-size: 12px;
    }

    .exchange-shop-col-grid .exchange-offer-qty-badge {
        min-width: 22px;
        height: 22px;
        font-size: 12px;
    }

    /* Confirm/success modal chips were being shrunk further below 420px
       (66px chips, 10px text) — the opposite of what's needed on a phone.
       Both .exchange-confirm-row and .exchange-confirm-given already wrap
       via flex-wrap, so there's no overflow risk from keeping these at
       full size; wrapping to an extra row is fine and reads better than
       tiny unreadable icons. */
    .exchange-confirm-item,
    .exchange-confirm-chip {
        width: 92px;
    }

    .exchange-confirm-chip {
        height: 92px;
    }

    .exchange-confirm-chip .oos-card-img {
        width: 70px;
        height: 70px;
    }

    .exchange-confirm-chip .oos-card-emoji {
        font-size: 44px;
    }

    .exchange-confirm-item-name {
        font-size: 12.5px;
    }

    .exchange-confirm-arrow-box {
        height: 92px;
    }

    .exchange-success-receive {
        width: 100px;
        height: 100px;
    }

    .exchange-success-receive .oos-card-img {
        width: 74px;
        height: 74px;
    }

    .exchange-success-receive .oos-card-emoji {
        font-size: 48px;
    }
}

.deposit-category-tabs {
    display: flex;
    gap: 8px;
    padding: 18px 28px 0;
}

.deposit-cat-tab {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid rgba(255, 255, 255, .12);
    background: rgba(255, 255, 255, .04);
    color: var(--muted);
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    transition: background .15s, border-color .15s, color .15s;
    /* Равноширинные и сжимаемые -- три вкладки должны гарантированно
       помещаться на любом экране без горизонтального скролла (раньше
       flex:0 0 auto по контенту + overflow-x:auto со скрытым скроллбаром
       давал на узких экранах утекающий вбок ряд без единого визуального
       намёка, что там ещё что-то есть). */
    flex: 1 1 0;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

@media (max-width: 420px) {
    .deposit-cat-tab {
        padding: 10px 6px;
        font-size: 12px;
        gap: 4px;
    }
}

.deposit-cat-tab:hover {
    background: rgba(255, 255, 255, .08);
    border-color: rgba(255, 255, 255, .2);
    color: var(--text);
}

.deposit-cat-tab.is-active {
    background: rgba(255, 255, 255, .1);
    border-color: var(--accent);
    color: #fff;
    box-shadow: 0 0 14px rgba(255, 255, 255, .06);
}

.deposit-cat-tab:disabled {
    opacity: .4;
    cursor: not-allowed;
    color: var(--muted);
    background: rgba(255, 255, 255, .02);
    border-color: rgba(255, 255, 255, .06);
}

.deposit-cat-tab:disabled:hover {
    background: rgba(255, 255, 255, .02);
    border-color: rgba(255, 255, 255, .06);
    color: var(--muted);
}

.deposit-cat-tab-icon {
    font-size: 16px;
    line-height: 1;
}

.deposit-cat-panel {
    padding: 14px 20px 20px;
}

.deposit-cat-sub {
    font-size: 12px;
    color: var(--muted);
    line-height: 1.5;
    margin-bottom: 12px;
}

.deposit-stars-form {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.deposit-field {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.deposit-field-label {
    font-size: 12px;
    font-weight: 700;
    color: var(--muted);
    letter-spacing: .05em;
    text-transform: uppercase;
}

.deposit-field-opt {
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
    opacity: .7;
}

.deposit-stars-amount-row {
    display: flex;
    align-items: flex-end;
    gap: 14px;
}

.deposit-stars-amount-row .deposit-field {
    flex: 1;
}

.stars-conversion {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 0 0 12px;
    white-space: nowrap;
}

.stars-conversion-eq {
    color: var(--muted);
    font-size: 16px;
}

.stars-conversion-value {
    font-size: 22px;
    font-weight: 900;
    color: #fff;
    line-height: 1;
}

.stars-conversion-unit {
    font-size: 13px;
    font-weight: 700;
    color: var(--accent);
}

.stars-pay-btn {
    margin-top: 4px;
}

.stars-pay-btn:disabled {
    opacity: .45;
    cursor: not-allowed;
    pointer-events: none;
}

.deposit-stars-status {
    padding: 10px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.5;
}

.deposit-stars-status.is-pending {
    background: rgba(255, 200, 50, .10);
    border: 1px solid rgba(255, 200, 50, .30);
    color: #ffd966;
}

.deposit-stars-status.is-success {
    background: rgba(80, 200, 120, .12);
    border: 1px solid rgba(80, 200, 120, .35);
    color: #6ddc9e;
}

.deposit-stars-status.is-error {
    background: rgba(88, 166, 255, .12);
    border: 1px solid rgba(88, 166, 255, .35);
    color: #58A6FF;
}

.ops-account-pool-container {
    display: grid;
    grid-template-columns:repeat(auto-fit, minmax(320px, 1fr));
    gap: 16px;
}

.ops-account-card {
    margin: 0 !important;
}

.ops-account-card .ops-card-head {
    margin-bottom: 15px;
}

.ops-account-card .ops-form-grid {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.ops-account-card .ops-input {
    padding: 8px 12px;
    font-size: 14px;
}

.ops-wq-windows-editor {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.ops-wq-window-row {
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 10px;
    padding: 12px;
}

.ops-wq-window-row .ops-field {
    min-width: 0;
}

.ops-analytics-range-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 10px;
    padding: 4px;
}

.ops-analytics-range-btn {
    background: transparent;
    border: none;
    border-radius: 7px;
    padding: 7px 14px;
    font-size: 12.5px;
    font-weight: 700;
    color: #999;
    cursor: pointer;
    transition: all .15s;
}

.ops-analytics-range-btn:hover {
    color: #ddd;
}

.ops-analytics-range-btn.is-active {
    background: rgba(76, 175, 129, .18);
    color: #6ddc9e;
}

.ops-analytics-stats-grid {
    display: grid;
    grid-template-columns:repeat(auto-fit, minmax(140px, 1fr));
    gap: 12px;
    margin: 16px 0;
}

.ops-analytics-stat-card {
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(255, 255, 255, .09);
    border-radius: 12px;
    padding: 14px 16px;
}

.ops-analytics-stat-value {
    font-size: 24px;
    font-weight: 800;
    color: #fff;
    font-family: 'Courier New', monospace;
    line-height: 1.1;
}

.ops-analytics-stat-label {
    font-size: 11.5px;
    color: #999;
    text-transform: uppercase;
    letter-spacing: .04em;
    margin-top: 4px;
}

.ops-analytics-chart-wrap {
    background: rgba(255, 255, 255, .03);
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 12px;
    padding: 16px;
    margin-bottom: 18px;
}

.ops-analytics-chart-title {
    font-size: 13px;
    font-weight: 700;
    color: #ddd;
    margin-bottom: 8px;
}

.ops-analytics-chart-legend {
    display: flex;
    gap: 16px;
    margin-bottom: 10px;
}

.ops-analytics-legend-item {
    font-size: 11.5px;
    color: #999;
    display: flex;
    align-items: center;
    gap: 6px;
}

.ops-analytics-legend-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    display: inline-block;
}

.ops-analytics-legend-dot.is-clicks {
    background: #5aaaff;
}

.ops-analytics-legend-dot.is-views {
    background: #6ddc9e;
}

.ops-analytics-chart {
    width: 100%;
    height: 160px;
    display: block;
    overflow: visible;
}

.ops-analytics-chart-labels {
    display: flex;
    justify-content: space-between;
    font-size: 10px;
    color: #777;
    margin-top: 4px;
}

.ops-analytics-two-col {
    display: grid;
    grid-template-columns:1.4fr 1fr;
    gap: 20px;
    margin-bottom: 8px;
}

@media (max-width: 900px) {
    .ops-analytics-two-col {
        grid-template-columns:1fr;
    }
}

.ops-analytics-subtitle {
    font-size: 12.5px;
    font-weight: 700;
    color: #bbb;
    text-transform: uppercase;
    letter-spacing: .03em;
    margin-bottom: 10px;
}

.ops-analytics-bar-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.ops-analytics-bar-row {
    display: grid;
    grid-template-columns:1fr auto;
    align-items: center;
    gap: 10px;
    font-size: 12.5px;
}

.ops-analytics-bar-row-label {
    color: #ccc;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-family: 'Courier New', monospace;
}

.ops-analytics-bar-row-track {
    grid-column: 1 / -1;
    background: rgba(255, 255, 255, .06);
    border-radius: 6px;
    height: 7px;
    overflow: hidden;
}

.ops-analytics-bar-row-fill {
    height: 100%;
    background: linear-gradient(90deg, #5aaaff, #6ddc9e);
    border-radius: 6px;
}

.ops-analytics-bar-row-count {
    color: #888;
    font-family: 'Courier New', monospace;
    font-size: 11.5px;
}

.ops-analytics-device-split {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.ops-analytics-device-row {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    color: #ccc;
}

.ops-analytics-device-icon {
    font-size: 18px;
}

.ops-analytics-device-track {
    flex: 1;
    background: rgba(255, 255, 255, .06);
    border-radius: 6px;
    height: 10px;
    overflow: hidden;
}

.ops-analytics-device-fill {
    height: 100%;
    border-radius: 6px;
}

.ops-analytics-device-fill.is-mobile {
    background: #ffa03c;
}

.ops-analytics-device-fill.is-desktop {
    background: #5aaaff;
}

.ops-analytics-device-pct {
    width: 42px;
    text-align: right;
    font-family: 'Courier New', monospace;
    color: #999;
    font-size: 12px;
}

.ops-analytics-heatmap-wrap {
    position: relative;
    display: flex;
    justify-content: center;
    background: rgba(0, 0, 0, .25);
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 12px;
    padding: 12px;
}

.ops-analytics-heatmap-frame {
    position: relative;
    width: 390px;
    height: 640px;
    max-width: 100%;
    border-radius: 8px;
    overflow: hidden;
    background: #0d0d14;
}

.ops-analytics-heatmap-iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 390px;
    height: 640px;
    border: none;
    pointer-events: none;
    background: #0d0d14;
}

#opsAnalyticsHeatmapCanvas.ops-analytics-heatmap-canvas-abs {
    position: absolute;
    top: 0;
    left: 0;
    width: 390px;
    height: 640px;
    background: transparent;
}

.ops-analytics-heatmap-empty {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
}

.ops-analytics-section-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 12px;
}

.ops-analytics-section-btn {
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(255, 255, 255, .09);
    border-radius: 10px;
    padding: 8px 14px;
    font-size: 12.5px;
    font-weight: 700;
    color: #999;
    cursor: pointer;
    transition: all .15s;
}

.ops-analytics-section-btn:hover {
    color: #ddd;
    border-color: rgba(255, 255, 255, .18);
}

.ops-analytics-section-btn.is-active {
    background: rgba(90, 170, 255, .16);
    border-color: rgba(90, 170, 255, .4);
    color: #5aaaff;
}

.ops-analytics-period-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin-bottom: 16px;
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 10px;
    padding: 4px;
}

.ops-analytics-custom-range {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-left: 6px;
}

.ops-analytics-custom-range.hidden {
    display: none;
}

.ops-analytics-custom-range input[type="date"] {
    padding: 6px 8px;
    font-size: 12px;
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 8px;
    color: #ddd;
}

.ops-analytics-panel {
    display: none;
}

.ops-analytics-panel.is-active {
    display: block;
}

.ops-analytics-widget-row {
    display: grid;
    grid-template-columns:1fr 1fr;
    gap: 16px;
}

@media (max-width: 900px) {
    .ops-analytics-widget-row {
        grid-template-columns:1fr;
    }
}

.ops-analytics-widget-card {
    background: rgba(255, 255, 255, .03);
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 14px;
    padding: 16px;
    margin-bottom: 16px;
}

.ops-analytics-widget-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 10px;
}

.ops-analytics-widget-title {
    font-size: 13.5px;
    font-weight: 700;
    color: #ddd;
    display: flex;
    align-items: center;
    gap: 8px;
}

.ops-analytics-widget-meta {
    display: flex;
    align-items: center;
    gap: 8px;
}

.ops-analytics-color-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    display: inline-block;
    flex-shrink: 0;
}

.ops-analytics-trend {
    font-size: 12px;
    font-weight: 700;
    font-family: 'Courier New', monospace;
    padding: 3px 8px;
    border-radius: 6px;
}

.ops-analytics-trend.is-up {
    background: rgba(34, 197, 94, .14);
    color: #22c55e;
}

.ops-analytics-trend.is-down {
    background: rgba(56, 104, 192, .14);
    color: #58a6ff;
}

.ops-analytics-trend.is-flat {
    background: rgba(255, 255, 255, .06);
    color: #999;
}

.ops-analytics-csv-btn {
    font-size: 11px !important;
    padding: 5px 10px !important;
}

.ops-analytics-since {
    display: block;
    font-size: 11px;
    margin-bottom: 8px;
}

.ops-analytics-widget-body {
    font-size: 13px;
}

.ops-analytics-stat-row {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.ops-analytics-stat-big {
    font-size: 28px;
    font-weight: 800;
    font-family: 'Courier New', monospace;
    color: #fff;
    line-height: 1.1;
}

.ops-analytics-substat-grid {
    display: grid;
    grid-template-columns:repeat(auto-fit, minmax(120px, 1fr));
    gap: 12px;
}

@media (max-width: 480px) {
    /* 3 sub-stats (Всего/Токены/Предметы etc.) at minmax(120px,...) plus gaps
       can just barely exceed a phone's available card width, clipping the
       last column's label instead of wrapping -- a lower floor guarantees
       all 3 fit without needing a 4th narrower row. */
    .ops-analytics-substat-grid {
        grid-template-columns:repeat(auto-fit, minmax(84px, 1fr));
        gap: 8px;
    }

    .ops-analytics-stat-big {
        font-size: 20px !important;
    }
}

.ops-analytics-revenue-headline {
    text-align: center;
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid rgba(255, 255, 255, .08);
    font-size: 15px;
    color: var(--muted, #94a3b8);
}

.ops-analytics-revenue-headline b {
    font-size: 26px;
    font-weight: 800;
    font-family: 'Courier New', monospace;
    color: #6ddc9e;
    margin: 0 4px;
}

.ops-analytics-table-wrap {
    overflow-x: auto;
}

.ops-analytics-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 12.5px;
}

.ops-analytics-table th {
    text-align: left;
    padding: 8px 10px;
    color: #999;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .03em;
    border-bottom: 1px solid rgba(255, 255, 255, .1);
    white-space: nowrap;
}

.ops-analytics-table td {
    padding: 8px 10px;
    border-bottom: 1px solid rgba(255, 255, 255, .05);
    color: #ccc;
    white-space: nowrap;
}

.ops-analytics-table tr:last-child td {
    border-bottom: none;
}

.ops-analytics-row-clickable {
    cursor: pointer;
}

.ops-analytics-row-clickable:hover td {
    background: rgba(255, 255, 255, .04);
}

.ops-analytics-drilldown-row td {
    background: rgba(0, 0, 0, .2);
    padding: 12px !important;
    white-space: normal;
}

.ops-players-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 6px;
}

.ops-players-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-top: 14px;
    font-size: 12.5px;
    color: #999;
}

.ops-players-pagination button {
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(255, 255, 255, .09);
    border-radius: 8px;
    padding: 6px 12px;
    color: #ccc;
    cursor: pointer;
    font-size: 12px;
}

.ops-players-pagination button:disabled {
    opacity: .35;
    cursor: default;
}

.ops-players-pagination button:not(:disabled):hover {
    border-color: rgba(255, 255, 255, .2);
    color: #fff;
}

.ops-player-status-badge {
    display: inline-block;
    padding: 3px 9px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .03em;
}

.ops-player-status-badge.is-active {
    background: rgba(34, 197, 94, .14);
    color: #22c55e;
}

.ops-player-status-badge.is-banned {
    background: rgba(56, 104, 192, .14);
    color: #58a6ff;
}

.ops-player-status-badge.is-whale {
    background: rgba(90, 170, 255, .16);
    color: #5aaaff;
}

.ops-player-status-badge.is-new {
    background: rgba(245, 158, 11, .14);
    color: #f59e0b;
}

.ops-pcard-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 16px 0;
    border-bottom: 1px solid rgba(255, 255, 255, .08);
    padding-bottom: 12px;
}

.ops-pcard-tab {
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(255, 255, 255, .09);
    border-radius: 10px;
    padding: 8px 14px;
    font-size: 12.5px;
    font-weight: 700;
    color: #999;
    cursor: pointer;
    transition: all .15s;
}

.ops-pcard-tab:hover {
    color: #ddd;
    border-color: rgba(255, 255, 255, .18);
}

.ops-pcard-tab.is-active {
    background: rgba(90, 170, 255, .16);
    border-color: rgba(90, 170, 255, .4);
    color: #5aaaff;
}

.ops-pcard-panel {
    display: none;
}

.ops-pcard-panel.is-active {
    display: block;
}

.ops-pcard-action-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 14px 0;
}

.ops-pcard-action-row button {
    font-size: 12px !important;
    padding: 8px 14px !important;
}

.ops-pcard-action-row .is-danger {
    background: rgba(56, 104, 192, .14) !important;
    border-color: rgba(56, 104, 192, .4) !important;
    color: #58a6ff !important;
}

.ops-pcard-stat-grid {
    display: grid;
    grid-template-columns:repeat(auto-fit, minmax(130px, 1fr));
    gap: 12px;
    margin-bottom: 16px;
}

.ops-pcard-section {
    margin-bottom: 18px;
}

.ops-pcard-section-title {
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #8A97A8;
    margin-bottom: 6px;
}

.ops-pcard-forcecase-active {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.ops-pcard-forcecase-active-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 8px 10px;
    background: rgba(34, 197, 94, .08);
    border: 1px solid rgba(34, 197, 94, .25);
    border-radius: 8px;
    font-size: 13px;
}

.ops-pcard-forcecase-list {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
    max-height: 160px;
    overflow-y: auto;
}

.ops-pcard-forcecase-case-btn.is-active {
    border-color: rgba(88, 166, 255, .6) !important;
    color: #58A6FF !important;
}

.ops-pcard-forcecase-loot {
    margin-top: 4px;
}

.ops-pcard-forcecase-loot-list {
    display: grid;
    grid-template-columns:repeat(auto-fill, minmax(120px, 1fr));
    gap: 8px;
    max-height: 320px;
    overflow-y: auto;
    padding-right: 4px;
}

.ops-pcard-forcecase-item-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 10px 6px;
    background: rgba(255, 255, 255, .03);
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 10px;
    cursor: pointer;
    transition: background .15s, border-color .15s;
    text-align: center;
}

.ops-pcard-forcecase-item-btn:hover {
    background: rgba(34, 197, 94, .1);
    border-color: rgba(34, 197, 94, .4);
}

.ops-pcard-forcecase-item-btn img {
    width: 40px;
    height: 40px;
    object-fit: contain;
}

.ops-pcard-forcecase-item-emoji {
    font-size: 26px;
    display: block;
}

.ops-pcard-forcecase-item-btn span {
    font-size: 11px;
    color: #ddd;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
}

.ops-pcard-note {
    background: rgba(255, 255, 255, .03);
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 10px;
    padding: 10px 12px;
    margin-bottom: 8px;
}

.ops-pcard-note-meta {
    font-size: 11px;
    color: #888;
    margin-bottom: 4px;
}

.ops-pcard-note-text {
    font-size: 13px;
    color: #ddd;
    white-space: pre-wrap;
}

.ops-pcard-notes-form {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 16px;
}

.ops-pcard-notes-form textarea {
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 10px;
    padding: 10px 12px;
    color: #ddd;
    font-family: inherit;
    font-size: 13px;
    min-height: 70px;
    resize: vertical;
}

.ops-live-feed {
    display: flex;
    flex-direction: column;
    gap: 6px;
    max-height: 640px;
    overflow-y: auto;
    margin-top: 12px;
}

.ops-live-feed-row {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 9px 12px;
    background: rgba(255, 255, 255, .03);
    border: 1px solid rgba(255, 255, 255, .06);
    border-radius: 10px;
    font-size: 13px;
    animation: opsLiveFeedIn .25s ease;
}

@keyframes opsLiveFeedIn {
    from {
        opacity: 0;
        transform: translateY(-6px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.ops-live-feed-time {
    font-family: 'Courier New', monospace;
    font-size: 11px;
    color: #888;
    flex-shrink: 0;
}

.ops-live-feed-text {
    color: #ddd;
}

.ops-live-feed-row-clickable {
    cursor: pointer;
}

.ops-live-feed-row-clickable:hover {
    border-color: rgba(255, 255, 255, .18);
    background: rgba(255, 255, 255, .05);
}

.ops-partner-row-clickable {
    cursor: pointer;
}

.ops-partner-row-clickable:hover td {
    background: rgba(255, 255, 255, .05);
}

.ops-pcard-live-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 10px;
    border-radius: 999px;
    background: rgba(239, 68, 68, .15);
    border: 1px solid rgba(239, 68, 68, .4);
    color: #ef4444;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .02em;
}

.ops-pcard-stream-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 10px;
    margin-bottom: 8px;
    cursor: pointer;
}

.ops-pcard-stream-row:hover {
    border-color: rgba(255, 255, 255, .18);
    background: rgba(255, 255, 255, .05);
}

.ops-pcard-stream-detail {
    padding: 12px;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 10px;
    margin: -4px 0 8px;
    background: rgba(255, 255, 255, .03);
}

.case-card.case-card-paused {
    filter: grayscale(.4);
    opacity: .72;
    cursor: pointer;
}

.case-card.case-card-paused .case-visual {
    opacity: .55;
}

.case-card.case-card-paused::after {
    content: attr(data-ribbon-text) !important;
    position: absolute !important;
    top: 16px !important;
    right: -34px !important;
    width: 132px !important;
    padding: 4px 0 !important;
    background: linear-gradient(135deg, #1E4082, #0d2a7a) !important;
    color: #fff !important;
    font-family: Impact, 'Arial Black', sans-serif !important;
    font-size: 11px !important;
    letter-spacing: .32em !important;
    text-transform: uppercase !important;
    text-align: center !important;
    transform: rotate(40deg) !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, .4) !important;
    pointer-events: none !important;
    z-index: 5 !important;
}

/* Fully inert on purpose -- unlike .case-card-paused (still clickable,
   explains itself via a modal), a coming-soon case has no SPA route to
   navigate to at all. pointer-events:none is the real gate; the missing
   click binding in renderCases() is the second, belt-and-suspenders layer. */
.case-card.case-card-coming-soon {
    filter: grayscale(1);
    opacity: .5;
    cursor: default;
    pointer-events: none;
}

.case-card.case-card-coming-soon .case-visual {
    opacity: .6;
}

.case-coming-soon-label {
    color: #8A97A8 !important;
    font-style: italic;
}

.case-visual img.case-image, .case-visual .case-emoji {
    position: absolute !important;
    inset: 0 !important;
    margin: auto !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
}

.profile-username-label {
    font-size: 12px;
    color: var(--muted);
    font-weight: 600;
    letter-spacing: .04em;
    margin-bottom: 2px;
}

/* Own-profile only — the raw numeric Telegram id, for support/verification
   ("напиши свой tgid в поддержку") purposes. state.user.publicId is this
   account's OWN unmasked id (serializeUser exposes it as-is; only the
   public-profile endpoint runs it through maskPublicIdentity), so showing
   it here doesn't need any new server data — see renderUser() in app.js.
   Never rendered on the public profile view — that page's own JS never
   touches this field at all. */
.profile-tgid {
    font-size: 11px;
    color: var(--muted);
    font-weight: 500;
    letter-spacing: .02em;
    margin-top: 2px;
    opacity: .7;
}

@media (max-width: 760px) {
    /* Framed wordmark, forced onto one line — burger leads (order:1 puts
       brand-btn after it, matching the reference), balance/avatar box
       takes priority for shrink so the logo cluster (flex-shrink:0)
       never wraps regardless of balance digit count. */
    .brand-word {
        display: inline-block !important;
        font-family: 'Syne', sans-serif !important;
        font-weight: 400 !important;
        font-size: 13px !important;
        line-height: 1 !important;
        color: #5AC8FF !important;
        letter-spacing: .03em !important;
        text-transform: uppercase !important;
        white-space: nowrap !important;
    }

    .brand-btn {
        order: 1 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        flex-wrap: nowrap !important;
        flex-shrink: 0 !important;
        white-space: nowrap !important;
        gap: 0 !important;
        align-self: stretch !important;
        padding: 5px 6px !important;
        min-width: 0 !important;
        border: 1.5px solid rgba(90, 200, 255, .4) !important;
        border-radius: 0 !important;
        background: rgba(56, 104, 192, .12) !important;
    }

    .brand-logo-icon {
        /* Equal fixed margin both sides (not flex gap) so the icon is
           guaranteed horizontally centered between the two words no
           matter what. top:-2px restores the slight upward nudge the
           base (desktop) rule already had (top:-.19em) — an earlier
           edit here zeroed it out, which visually sank the icon below
           the text's optical center even though the two share the same
           line-box vertical midpoint. */
        margin: 0 2px !important;
        top: -2px !important;
        width: 16px !important;
        height: 16px !important;
    }

    .topbar-user-wrap {
        min-width: 0 !important;
        /* margin-left:auto (not margin:0 auto — that centered it in the
           leftover space after burger+logo instead of hugging the right
           edge, which read as "floating in the middle") soaks up all the
           leading space and pins this flush against the topbar's right
           edge, same as the original space-between look. */
        margin-left: auto !important;
    }

    /* Trimmed down so burger + "Brain [icon] Battle" + avatar/balance
       reliably fit on one row even with a 6-digit balance — previously
       this content measured ~22px wider than the topbar's actual usable
       (padding-excluded) width, which is what forced the wrap-to-2-rows
       fallback below to trigger on every real account instead of staying
       dormant as intended. */
    .user-box {
        padding: 3px !important;
        gap: 4px !important;
    }

    .user-avatar {
        width: 26px !important;
        height: 26px !important;
    }

    .balance-chip {
        padding: 3px 4px !important;
    }

    .topbar {
        gap: 3px !important;
    }

    /* Higher-specificity qualifier (body has class theme-carnage) — this
       stylesheet has dozens of scattered plain `.topbar { padding: ... }`
       rules across many other max-width:760px blocks; a plain .topbar
       selector here is at the mercy of source order against all of them.
       Qualifying with the body class guarantees this padding wins. */
    body.theme-carnage .topbar {
        padding: 8px 8px !important;
    }

    .topbar {
        /* Was nowrap — with a long balance (many digits) the profile box
           had nowhere to go and spilled past the topbar's right edge
           instead of just moving to its own line. flex-start (not
           space-between) keeps the burger flush left in every case;
           topbar-user-wrap's own auto margins above handle its position.
           Kept as a dormant safety net for extreme cases — the sizing
           above should keep this from ever actually triggering. */
        flex-wrap: wrap !important;
        justify-content: flex-start !important;
        row-gap: 8px !important;
    }

    .topbar:has(.main-nav.is-open) {
        flex-wrap: wrap !important;
    }
}

.free-case-banner.referral-case-banner {
    background: linear-gradient(135deg, rgba(255, 180, 60, .20) 0%, rgba(255, 110, 60, .14) 100%) !important;
    border-color: rgba(255, 180, 60, .32) !important;
    box-shadow: 0 0 0 1px rgba(255, 180, 60, .1) inset, 0 14px 32px rgba(0, 0, 0, .22) !important;
}

.referral-case-banner .free-case-banner-kicker {
    color: rgba(255, 180, 60, .95) !important;
}

.roulette-top-actions {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 8px;
    flex-shrink: 0;
}

.roulette-skip-btn {
    flex-shrink: 0;
    white-space: nowrap;
}

.roulette-skip-btn.is-consumed {
    visibility: hidden;
    pointer-events: none;
}

@media (max-width: 760px) {
    /* Extra headroom for the floating skip button below — with a short
       1-line case title the reel used to start right under the close
       button, leaving no room for the button to sit above it. */
    #rouletteModal #rouletteWindows {
        margin-top: 70px !important;
    }

    #rouletteModal .roulette-skip-btn {
        /* top is set dynamically in JS (positionRouletteSkipBtn) — it has to
           track the reel's real position, which shifts with the case title's
           line count (1-3 lines) and differs between the pick-mode and
           regular spin layouts. This is just a sane fallback before JS runs. */
        position: fixed;
        right: 14px;
        top: 68px;
        z-index: 20;
        padding: 6px 12px;
        font-size: 11px;
        min-height: unset;
        box-shadow: 0 6px 16px rgba(0, 0, 0, .35);
    }
}

.wdr-item-card.is-locked {
    opacity: .38;
    cursor: not-allowed;
    filter: grayscale(.7);
}

.wdr-item-card.is-locked:hover {
    border-color: rgba(255, 255, 255, .08);
    background: rgba(255, 255, 255, .05);
    transform: none;
}

@media (max-width: 480px) {
  .pet-deposit-grid {
    grid-template-columns: repeat(auto-fill, minmax(78px, 1fr));
    gap: 6px;
  }
  .pet-deposit-card {
    padding: 6px 4px;
    gap: 3px;
  }
  .pet-deposit-card-img {
    width: 38px;
    height: 38px;
  }
  .pet-deposit-card-emoji {
    font-size: 20px;
  }
  .pet-deposit-card-name {
    font-size: 9px;
  }
  .pet-deposit-card-value {
    font-size: 9px;
  }
  .pet-deposit-qty-row {
    height: 22px;
  }
  .pet-qty-btn {
    width: 20px;
    height: 22px;
    font-size: 13px;
  }
  .pet-qty-num {
    font-size: 11px;
    min-width: 16px;
    padding: 0 2px;
  }
}

.pet-deposit-back-btn {
  margin-bottom: 12px;
  align-self: flex-start;
}

.chsub-overlay {
    position: fixed;
    inset: 0;
    z-index: 9000;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(5, 8, 14, .78);
    backdrop-filter: blur(8px);
    padding: 16px;
    animation: chsubFadeIn .2s ease;
}

@keyframes chsubFadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

.chsub-card {
    position: relative;
    width: 100%;
    max-width: 360px;
    padding: 36px 26px 28px;
    text-align: center;
    background:
        radial-gradient(120% 140% at 50% -20%, rgba(88, 166, 255, .22), transparent 60%),
        linear-gradient(160deg, #131c2b, #0a0f18);
    border: 1px solid rgba(88, 166, 255, .24);
    border-radius: 20px;
    box-shadow: 0 40px 90px rgba(0, 0, 0, .55), 0 0 0 1px rgba(255, 255, 255, .03) inset;
    animation: chsubPop .32s cubic-bezier(.2, .9, .3, 1.3);
}

@keyframes chsubPop {
    from { opacity: 0; transform: translateY(14px) scale(.94); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

.chsub-close {
    position: absolute;
    top: 14px;
    right: 14px;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, .12);
    background: rgba(255, 255, 255, .04);
    color: var(--muted);
    font-size: 13px;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
}

.chsub-close:hover {
    background: rgba(255, 255, 255, .1);
    color: #fff;
    border-color: rgba(255, 255, 255, .24);
}

/* Free-case "complete tasks to unlock" modal — the original single-modal's
   hero ring/title/subtitle header (.chsub-ring/-title/-sub, restored below)
   followed by tappable task rows + one bottom CTA, in the same dark card
   chrome every dynamic overlay in the app shares (.chsub-overlay/-card). */

.chsub-ring {
    width: 64px;
    height: 64px;
    margin: 0 auto 18px;
    border-radius: 50% !important;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #58A6FF, #1B4F91);
    box-shadow: 0 0 0 6px rgba(88, 166, 255, .14), 0 14px 30px rgba(88, 166, 255, .3);
}

.chsub-ring--gift {
    background: linear-gradient(135deg, #ffb545, #b5650a);
    animation: chsubRingBreatheGold 2.6s ease-in-out infinite;
}

@keyframes chsubRingBreatheGold {
    0%, 100% { box-shadow: 0 0 0 6px rgba(255, 181, 69, .16), 0 14px 30px rgba(255, 150, 40, .32); }
    50%      { box-shadow: 0 0 0 9px rgba(255, 181, 69, .24), 0 18px 38px rgba(255, 150, 40, .42); }
}

.chsub-ring-glyph {
    font-size: 26px;
    display: inline-block;
    transform: rotate(-38deg) translate(-1px, 1px);
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, .35));
}

.chsub-ring-glyph--plain {
    transform: none;
}

.chsub-title {
    font-family: 'Syne', sans-serif;
    font-size: 20px;
    font-weight: 800;
    letter-spacing: -.01em;
    margin-bottom: 8px;
}

.chsub-sub {
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--muted);
    margin-bottom: 24px;
}

.freecase-tasks-card {
    max-width: 380px;
}

.freecase-tasks-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 18px;
    text-align: left;
}

.freecase-task-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border-radius: 14px;
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(255, 255, 255, .1);
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease, opacity .15s ease;
}

.freecase-task-row:hover {
    background: rgba(88, 166, 255, .12);
    border-color: rgba(88, 166, 255, .4);
}

.freecase-task-row.is-loading {
    opacity: .6;
    pointer-events: none;
}

.freecase-task-row.is-done {
    cursor: default;
    background: rgba(88, 224, 141, .08);
    border-color: rgba(88, 224, 141, .3);
}

.freecase-task-row.is-done:hover {
    background: rgba(88, 224, 141, .08);
    border-color: rgba(88, 224, 141, .3);
}

.freecase-task-icon {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    min-width: 40px;
    border-radius: 50% !important;
    -webkit-border-radius: 50% !important;
    clip-path: circle(50% at 50% 50%);
    overflow: hidden !important;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #58A6FF, #1B4F91);
}

.freecase-task-icon img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50% !important;
    -webkit-border-radius: 50% !important;
    clip-path: circle(50% at 50% 50%);
}

.freecase-task-icon-glyph {
    font-size: 17px;
    color: #fff;
    transform: rotate(-38deg) translate(-1px, 1px);
    filter: drop-shadow(0 2px 3px rgba(0, 0, 0, .3));
}

.freecase-task-label {
    flex: 1;
    font-size: 14px;
    font-weight: 600;
    color: var(--text);
}

.freecase-task-arrow {
    flex-shrink: 0;
    font-size: 16px;
    color: #58A6FF;
}

.freecase-task-check {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 900;
    color: #58e08d;
    background: rgba(88, 224, 141, .16);
    border: 1px solid rgba(88, 224, 141, .4);
}

.freecase-tasks-done-btn {
    width: 100%;
}

/* .profile-hero at line ~11167 sets flex-direction:row / align-items:center
   / flex-wrap:nowrap with !important, UNCONDITIONALLY (not inside a media
   query) — so its 3 children (user block, wallet area, wager bar) always
   try to sit in one row. On mobile that's ~360px for ~360+155+194px of
   content, so the wager bar overflowed off the right edge and overlapped
   the balance/avatar. None of the existing mobile overrides could win
   against it since they don't mark flex-direction/flex-wrap !important.
   This has to appear after that rule in the cascade (media queries add no
   specificity) to actually override it.

   Fix keeps the original row direction (avatar+name and balance+wallet
   share one line — .profile-user-block/.profile-username already have
   flex-shrink/ellipsis set up for exactly this) and just lets it wrap,
   forcing the wager bar onto its own second line via flex-basis:100%. */
@media (max-width: 760px) {
    .profile-hero {
        flex-wrap: wrap !important;
    }

    .profile-user-block {
        /* the unconditional flex:1 1 auto rule elsewhere makes this greedily
           grow to fill the row, leaving no room for the wallet area beside
           it. flex-basis:auto + max-width doesn't reliably stop the
           wrap-line decision in every engine (it can pick the line break
           using the pre-clamp hypothetical size) — an explicit pixel basis
           sidesteps that. */
        flex: 0 1 180px !important;
        max-width: 180px !important;
    }

    .profile-wallet-area {
        flex: 0 1 auto !important;
        margin-left: auto !important;
    }

    #profileWagerBar {
        flex: 0 0 100% !important;
        width: 100% !important;
        margin-top: 4px;
    }
}

/* ─── Кнопка медового ивента в шапке ──────────────────────────────────────
   Отличается от остальных пунктов намеренно: всегда золотая и всегда светится,
   даже когда неактивна, — это витрина ивента, а не обычный раздел. Скрыта
   классом is-hidden, пока applyHoneyEventNav не увидит идущий ивент. */
.nav-btn-event.is-hidden { display: none !important; }

.nav-btn-event {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    border: 1.5px solid rgba(245, 158, 11, .55) !important;
    background: linear-gradient(135deg, rgba(245, 158, 11, .16) 0%, rgba(255, 201, 74, .09) 50%, rgba(184, 116, 7, .16) 100%) !important;
    color: #FFC94A !important;
    font-weight: 800;
    letter-spacing: .04em;
    overflow: hidden;
    animation: navEventGlow 2.6s ease-in-out infinite;
}
.nav-btn-event:hover {
    border-color: rgba(255, 201, 74, .95) !important;
    color: #FFE7AA !important;
    transform: translateY(-1px);
}
/* Селектор намеренно раздут: у каждой палитры есть своё
   `body.palette-X .nav-btn.active` с !important и специфичностью (0,3,1),
   которое иначе красит активную кнопку ивента в синий цвет темы.
   `body[class]` добавляет вес, не привязываясь к конкретной палитре. */
body[class] .nav-btn.nav-btn-event.active {
    border-color: #FFC94A !important;
    background: linear-gradient(135deg, rgba(245, 158, 11, .34) 0%, rgba(255, 201, 74, .2) 50%, rgba(184, 116, 7, .34) 100%) !important;
    color: #FFE7AA !important;
}

/* Медовый блик, проезжающий по кнопке. */
.nav-btn-event::after {
    content: '';
    position: absolute;
    top: -60%;
    left: -90%;
    width: 45%;
    height: 220%;
    background: linear-gradient(105deg, transparent 20%, rgba(255, 231, 170, .38) 50%, transparent 80%);
    transform: skewX(-16deg);
    animation: navEventShine 3.4s ease-in-out infinite;
    pointer-events: none;
}

@keyframes navEventGlow {
    0%, 100% { box-shadow: 0 0 0 1px rgba(245, 158, 11, .18), 0 0 14px rgba(245, 158, 11, .28); }
    50%      { box-shadow: 0 0 0 1px rgba(245, 158, 11, .34), 0 0 26px rgba(245, 158, 11, .55); }
}
@keyframes navEventShine {
    0%, 100% { left: -90%; opacity: 0; }
    38%      { left: 150%; opacity: 1; }
    39%      { left: 150%; opacity: 0; }
}

.nav-bee {
    width: 17px;
    height: 17px;
    flex-shrink: 0;
    overflow: visible;
    animation: navBeeHover 1.9s ease-in-out infinite;
}
.nav-bee-body   { fill: #FFC94A; }
.nav-bee-stripe { stroke: #4a2d00; stroke-width: 1.6; stroke-linecap: round; }
.nav-bee-eye    { fill: #3a2200; }
.nav-bee-antenna{ stroke: #4a2d00; stroke-width: 1.3; stroke-linecap: round; fill: none; }
.nav-bee-wing {
    fill: rgba(255, 252, 235, .72);
    transform-origin: 12px 9px;
    animation: navBeeWing .18s ease-in-out infinite alternate;
}

@keyframes navBeeHover {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-2px); }
}
@keyframes navBeeWing {
    from { transform: scaleY(1); }
    to   { transform: scaleY(.62); }
}

/* Уважаем системную настройку: постоянное свечение и машущие крылья —
   ровно тот вид движения, который просят отключить. */
@media (prefers-reduced-motion: reduce) {
    .nav-btn-event,
    .nav-btn-event::after,
    .nav-bee,
    .nav-bee-wing { animation: none !important; }
    .nav-btn-event { box-shadow: 0 0 0 1px rgba(245, 158, 11, .3), 0 0 16px rgba(245, 158, 11, .35); }
}
