header .styles_topBar__65dpe,header [class*="topBar"],[class*="PushNotificationPrompt"],[class*="liveFeed__btns"],[class*="wallets__tasks"],[class*="wallets__bonus"],[class*="heroSection"],[class*="liveFeedSkin__probability"]{display:none!important}[class*="styles_grid__Xkakt"]>:not([data-gooddrop-winner]){display:none!important}.skin-feed-item,[class*="userTools"] [class*="userAvatar"]{visibility:hidden}html:not([data-gooddrop-authenticated="true"]) [class*="userTools"] [class*="wallets__"],html:not([data-gooddrop-authenticated="true"]) [class*="userTools"] [class*="tools__"]{display:none!important}html.gooddrop-profile-auth-pending body{visibility:hidden}[class*="mainInfo__R1los"]{min-height:0!important}[class*="mainInfo__container__"]{justify-content:flex-start!important;height:auto!important}[class*="newBadge"]{display:none!important}[class*="liveInfoSection"]{pointer-events:none!important}[class*="styles_terms__content__"],[class*="styles_privacy__content__"],[class*="styles_cookies__content__"]{grid-template-columns:1fr!important}[class*="bottomBar__centerBg"],[class*="bottomBar__background__"],[class*="bottomBar__line__"]{display:none!important}a[class*="bottomBar__logo__"]>*{display:none!important}[class*="bottomBar__center__"]{position:static!important;transform:none!important}[class*="bottomBar__TFFQQ"]{height:120px!important}[class*="bottomBar__container__"]{height:120px!important;align-items:flex-start!important;padding-top:0!important;position:relative!important;box-sizing:border-box!important}[class*="bottomBar__nav__"]{height:auto!important;position:relative!important;z-index:5!important}[class*="userTools"]{position:relative!important;z-index:5!important}a[class*="bottomBar__logo__"]{width:520px!important;height:120px!important;position:absolute!important;left:50%!important;top:0!important;transform:translateX(-50%)!important;margin:0!important;z-index:0;background:url(/images/brand/cs2drop-logo-static.png?v=4) center/contain no-repeat!important;background-image:image-set(url(/images/brand/cs2drop-logo-static.webp?v=4) type("image/webp"),url(/images/brand/cs2drop-logo-static.png?v=4) type("image/png"))!important}a[class*="bottomBar__logo__"]::after{content:""!important;position:absolute!important;inset:0!important;background:url(/images/brand/cs2drop-logo-glow.png?v=4) center/contain no-repeat!important;background-image:image-set(url(/images/brand/cs2drop-logo-glow.webp?v=4) type("image/webp"),url(/images/brand/cs2drop-logo-glow.png?v=4) type("image/png"))!important;opacity:0;transition:opacity .4s ease!important;pointer-events:none!important;z-index:1!important}a[class*="bottomBar__logo__"]:hover::after{opacity:1}@media only screen and (max-width:1024px){[class*="bottomBar__TFFQQ"]{height:96px!important}[class*="bottomBar__container__"]{height:96px!important;padding-top:0!important}a[class*="bottomBar__logo__"]{left:16px!important;top:0!important;transform:none!important;margin:0!important;width:min(64vw,240px)!important;height:96px!important;aspect-ratio:auto!important}a[class*="bottomBar__logo__"]::after{display:none!important}html[data-gooddrop-authenticated="true"] a[class*="bottomBar__logo__"]{width:min(calc(100vw - 251px),176px)!important}}[class*="liveFeed__3L40d"]{padding-top:22px!important;overflow-x:clip!important;overflow-y:visible!important;position:relative!important}
[class*="liveFeed__3L40d"]:hover{z-index:1001!important}[class*="liveFeedSkin__o4V2_"],[class*="liveFeedSkin__additional"],[class*="liveFeedSkin__userWrapper"],[class*="liveFeedSkin__main"]{overflow:visible!important}@media only screen and (max-width:1024px){[class*="liveFeed__3L40d"]{min-height:100px!important;padding-top:8px!important}[class*="liveFeedSkin__o4V2_"]{height:96px!important;min-width:84px!important;width:84px!important}[class*="liveFeedSkin__main__"]{height:96px!important;width:84px!important;flex-direction:column!important;justify-content:center!important;gap:2px!important;padding:2px 3px!important}[class*="liveFeedSkin__image__"]{width:60px!important;height:42px!important;max-height:42px!important}[class*="liveFeedSkin__info__"]{width:100%!important;display:flex!important;justify-content:center!important}[data-gooddrop-winner]{margin-top:0!important;justify-content:center!important;max-width:80px!important;gap:3px!important}[data-gooddrop-winner-nm]{font-size:10px!important;max-width:58px!important}[class*="liveFeedSkin__o4V2_"]:hover [class*="liveFeedSkin__additional"]{display:none!important}[class*="liveFeedSkin__o4V2_"]:hover [class*="liveFeedSkin__image__"],[class*="liveFeedSkin__o4V2_"]:hover [class*="liveFeedSkin__info__"]{transform:none!important;opacity:1!important}}svg[viewBox="0 0 10 16"]{display:none!important}:has(>svg[viewBox="0 0 10 16"])::after{content:"\A5";margin-left:1px}
/* --- Upgrade page (owner spec 2026-08-12) --- */
[class*="UpgradeBalanceStakeSlider_wrap__"]{display:none!important}
#upgrade-skins-panel-inventory [class*="styles_upgradeUserSkin__"],#upgrade-skins-panel-upgrade [class*="styles_upgradeUserSkin__"]{cursor:pointer!important}
#upgrade-skins-panel-inventory [class*="overlayCheck"],#upgrade-skins-panel-inventory [class*="overlayLock"]{display:none!important}
[class*="styles_chanceChip__"]{cursor:pointer!important}
[class*="styles_chanceChip__"].gd-chip-active{background:#31c460!important;border-color:#31c460!important;color:#0a151f!important}
[class*="styles_sortButton__"] svg{transition:transform .15s ease}
[class*="styles_sortButton__"][data-gd-sortdir="asc"] svg{transform:rotate(0deg)!important}
[class*="styles_sortButton__"][data-gd-sortdir="desc"] svg{transform:rotate(180deg)!important}
[data-gd-picks]{display:none;width:100%;box-sizing:border-box;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:12px;padding:16px;max-height:100%;overflow-y:auto;align-content:flex-start;scrollbar-width:thin;scrollbar-color:rgba(104,239,133,.5) transparent}
[data-gd-picks]::-webkit-scrollbar{width:8px}
[data-gd-picks]::-webkit-scrollbar-track{background:transparent;margin:6px 0}
[data-gd-picks]::-webkit-scrollbar-thumb{background:linear-gradient(180deg,rgba(104,239,133,.55),rgba(104,239,133,.28));border-radius:8px;border:2px solid transparent;background-clip:padding-box}
[data-gd-picks]::-webkit-scrollbar-thumb:hover{background:rgba(104,239,133,.7);background-clip:padding-box;border:2px solid transparent}
.gd-has-picks>:not([data-gd-picks]){display:none!important}
.gd-has-picks>[data-gd-picks]{display:grid}
.gd-pick{position:relative}
[data-gd-picks] .gd-pick>[class*="styles_upgradeUserSkin__"]{width:100%!important;min-width:0!important;max-width:none!important;margin:0!important;cursor:default!important}
.gd-pick-x{position:absolute;top:-7px;right:-7px;width:20px;height:20px;padding:0;border:none;border-radius:50%;background:#ff4d4f;color:#fff;font-size:14px;line-height:20px;text-align:center;cursor:pointer;z-index:5;box-shadow:0 2px 6px rgba(0,0,0,.4)}
.gd-pick-x:hover{background:#ff6b6b}
#upgrade-skins-panel-inventory [class*="styles_upgradeUserSkin__"].gd-inv-selected::after{content:"";position:absolute;inset:0;border-radius:12px;background:rgba(104,239,133,.13);border:1.5px solid rgba(104,239,133,.5);pointer-events:none;z-index:3}
#upgrade-skins-panel-inventory .gd-inv-selected [class*="__image"],#upgrade-skins-panel-inventory .gd-inv-selected [class*="__infoWrapper"]{opacity:.5}
#upgrade-skins-panel-inventory .gd-inv-selected [class*="overlayPlus"]{display:none!important}
#upgrade-skins-panel-inventory .gd-inv-selected [class*="overlayBtn"]::after{content:"";position:absolute;inset:0;border-radius:50%;background:#ff4d4f url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 2L10 10M10 2L2 10' stroke='white' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center/12px 12px no-repeat;box-shadow:0 2px 8px rgba(0,0,0,.35);opacity:0;transition:opacity .15s ease;z-index:6}
#upgrade-skins-panel-inventory .gd-inv-selected:hover [class*="overlayBtn"]::after{opacity:1}
/* --- Contracts page --- */
[class*="styles_chips__F8FTH"],[class*="styles_builderQuick__"],[class*="styles_quickDesktop__"]{display:none!important}
[class*="styles_items__list__"] [class*="styles_skinWrapper__"]{cursor:pointer!important;position:relative}
[class*="styles_items__list__"] [class*="styles_skinWrapper__"].gd-contract-selected [class*="__image"],[class*="styles_items__list__"] [class*="styles_skinWrapper__"].gd-contract-selected [class*="__title"],[class*="styles_items__list__"] [class*="styles_skinWrapper__"].gd-contract-selected [class*="__subtitle"]{opacity:.5}
[class*="styles_items__list__"] [class*="styles_skinWrapper__"].gd-contract-selected::after{content:"";position:absolute;inset:0;border-radius:10px;background:rgba(104,239,133,.13);border:1.5px solid rgba(104,239,133,.5);pointer-events:none;z-index:3}
[class*="styles_actions__btn__"]{cursor:pointer!important}
[class*="styles_skinsGrid__"] [class*="styles_cell__"]{position:relative}
[data-gd-slot]{position:absolute;inset:0;z-index:2;overflow:hidden;border-radius:12px}
[data-gd-slot]>[class*="styles_skinWrapper__"]{margin:0!important;cursor:default!important;box-sizing:border-box}
.gd-slot-x{position:absolute;top:6px;right:6px;width:22px;height:22px;padding:0;border:none;border-radius:50%;background:#ff4d4f url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 2L10 10M10 2L2 10' stroke='white' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center/10px 10px no-repeat;cursor:pointer;z-index:5;box-shadow:0 2px 6px rgba(0,0,0,.4)}
[class*="styles_items__list__"] [class*="styles_skinWrapper__"].gd-contract-selected::before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:42px;height:42px;border-radius:50%;background:#ff4d4f url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 2L10 10M10 2L2 10' stroke='white' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center/17px 17px no-repeat;box-shadow:0 2px 10px rgba(0,0,0,.45);opacity:0;transition:opacity .15s ease;pointer-events:none;z-index:5}
/* Balance emblem (gold ¥ crest) replacing the bonus/DropCash coin on the header wallet + profile balance. !important beats the site's mobile "refill img{width:20px}" rule. */
.gd-balance-emblem-pic{display:inline-flex!important;align-items:center;flex:0 0 auto;line-height:0}
.gd-balance-emblem{height:30px!important;width:auto!important;max-width:none!important;object-fit:contain;display:block;flex:0 0 auto}
[class*="balanceBlock__"] .gd-balance-emblem{height:34px!important}
@media only screen and (max-width:1024px){.gd-balance-emblem{height:26px!important}[class*="balanceBlock__"] .gd-balance-emblem{height:30px!important}}
/* Same emblem everywhere the balance/bonus coin (viewBox 30x30, path M27.9) still shows in-place: the small DP badges on case cards, toggles, etc. Hide the coin's own vectors, paint the emblem as the svg background. The 10x16 price coin is untouched. */
svg[viewBox="0 0 30 30"]:has(>path[d^="M27.9 7.94651"]){background-image:image-set(url("/images/brand/balance-emblem.webp?v=1") type("image/webp"),url("/images/brand/balance-emblem.png?v=1") type("image/png"));background-position:center;background-size:contain;background-repeat:no-repeat}
svg[viewBox="0 0 30 30"]:has(>path[d^="M27.9 7.94651"])>*{display:none!important}
/* Profile balance: drop the trailing ¥ after the amount (the new emblem already sits before the number). Scoped to the balance card only — prices elsewhere keep ¥. */
[class*="balanceBlock__"] [class*="styles_balance__"]:has(>svg[viewBox="0 0 10 16"])::after{content:none!important}
/* Profile balance card: hide the big duplicate "Баланс/余额" heading above the balance row. The labelled row below (with the gold ¥ emblem + amount) already reads "余额", so the extra heading is redundant. NOT the item titles (balanceBlock__item_title__). */
[class*="balanceBlock__title__"]{display:none!important}
/* Feed card (DESKTOP only): the 2nd skin-name line made image(68)+weapon+skin+nick = ~112px
   overflow the 102px card, so the winner avatar+nick poked ~10px below the coloured box. Trim
   the skin image a touch + tighten the two name lines + zero the nick's top margin so the WHOLE
   card (image + weapon + skin + nick) sits INSIDE its box. Mobile is untouched (its own @media
   rules; there the nick already fits and the name lines are hidden). No feed margin-bottom is
   needed now — the nick sits INSIDE the card, so the strip can touch the next section like before. */
@media only screen and (min-width:1025px){
  [class*="liveFeedSkin__image__"]{height:58px!important;max-height:58px!important}
  [class*="liveFeedSkin__weapon__"],[class*="liveFeedSkin__title__"]{line-height:1.05!important}
  [data-gooddrop-winner]{margin-top:0!important;gap:4px!important}
  [data-gooddrop-winner] [data-gooddrop-winner-av]{width:14px!important;height:14px!important}
  [data-gooddrop-winner] [data-gooddrop-winner-nm]{font-size:10px!important}
}
[class*="styles_items__list__"] [class*="styles_skinWrapper__"].gd-contract-selected:hover::before{opacity:1}
/* Profile ID chip: drop the "copy" icon (owner doesn't want it). Hide the icon's
   wrapping <span> too (not just the svg) so no empty flex item leaves a trailing gap. */
[class*="styles_copyBtn__"] svg{display:none!important}
[class*="styles_copyBtn__"] span:has(svg){display:none!important}
[class*="styles_copyBtn__"]{cursor:default!important}
/* Winners page: drop the whole "Загрузить еще" area — the button, its wrapper AND
   the container that holds them (else that empty container + its flex gap leave a
   big dead zone before the footer). :has keeps it scoped to the load-more block. */
[class*="styles_loadMore__"]{display:none!important}
[class*="styles_container__"]:has([class*="styles_loadMore__"]){display:none!important}
/* Contacts page: remove the "Бесплатные кейсы" free-cases section (owner). That
   section name is unique to /contacts, so this global rule only affects it;
   display:none also collapses the empty space it used to leave. */
[data-cases-section-name="Бесплатные кейсы"]{display:none!important}
/* Profile trade-link field (repurposed "Ваш Email"): confirm-button states. */
[data-gd-trade-confirm].gd-trade-valid{background:#2fae4e!important;color:#fff!important;opacity:1!important;cursor:pointer!important;border-color:#2fae4e!important}
[data-gd-trade-confirm].gd-trade-done{background:#2fae4e!important;color:#fff!important;opacity:1!important;cursor:default!important;font-weight:700!important;border-color:#2fae4e!important;min-width:46px;text-align:center;font-size:1.05rem;line-height:1}
/* "Изменить ссылку на обмен" is disabled until a valid link is confirmed. */
[data-gd-trade-edit][disabled]{opacity:.4!important;cursor:not-allowed!important;pointer-events:none!important}
/* Profile inventory (Дропы) toolbar: remove the search/sort/"Все" filters and
   centre + widen the green "Вывод" button in the row. */
[class*="styles_userFilters__list__"]{display:none!important}
[class*="styles_userFilters__F3jw0"]{justify-content:center!important}
[class*="styles_userFilters__F3jw0"] [class*="styles_rulesBtn__"]{display:none!important}
[class*="styles_userFilters__F3jw0"] [class*="styles_sellAll__"]{min-width:min(460px,100%);justify-content:center;text-align:center}
/* Profile "Апгрейды" tab list: skin + fake drop chance + date. */
.gd-upg-list{display:flex;flex-direction:column;gap:12px;padding:4px 0}
.gd-upg-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 28px;border-radius:12px;background:rgba(136,71,255,.08);box-shadow:rgba(136,71,255,.55) 0 -2px 0 0 inset}
.gd-upg-left{display:flex;align-items:center;gap:16px;min-width:0}
.gd-upg-row img{width:96px;height:64px;object-fit:contain;flex:0 0 auto}
.gd-upg-info{min-width:0}
.gd-upg-weapon{color:hsla(0,0%,100%,.6);font-size:12px}
.gd-upg-name{color:#fff;font-size:14px;font-weight:600;white-space:nowrap}
.gd-upg-col{display:flex;flex-direction:column;align-items:center;gap:4px;flex:0 0 auto;text-align:center;font-size:12px;color:hsla(0,0%,100%,.55)}
.gd-upg-chance b{color:#68ef85;font-size:15px}
.gd-upg-date b{color:#fff;font-size:14px;font-weight:600}
.gd-upg-status{display:inline-flex;align-items:center;gap:6px;padding:2px 11px;border-radius:999px;background:rgba(104,239,133,.16);color:#68ef85;font-size:13px;font-weight:700;line-height:1.5}
.gd-upg-status::before{content:"";width:13px;height:13px;flex:0 0 auto;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13' viewBox='0 0 12 12'%3E%3Cpath d='M2 6.2L4.7 9L10 3' stroke='%2368ef85' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E") center/contain no-repeat}
@media only screen and (max-width:640px){.gd-upg-row{flex-wrap:wrap;row-gap:14px}.gd-upg-left{flex:1 0 100%}}
/* "Вывод" button is always a plain bordered button (never filled green); the user
   picks skins first, then clicks it. */
[class*="styles_userFilters__F3jw0"] [class*="styles_sellAll__"].gd-vyvod-bordered{background:transparent!important;color:hsla(0,0%,100%,.85)!important;border:1px solid hsla(0,0%,100%,.22)!important;cursor:pointer!important;transition:background-color .15s,border-color .15s}
[class*="styles_userFilters__F3jw0"] [class*="styles_sellAll__"].gd-vyvod-bordered:hover{background:rgba(255,255,255,.06)!important;border-color:hsla(0,0%,100%,.35)!important}
/* Profile inventory cards are click-to-select; a picked card turns green. */
[class*="styles_skinsGrid__"] [data-gooddrop-inventory]{cursor:pointer;outline:2px solid transparent;outline-offset:-2px;transition:outline-color .12s,background-color .12s}
[class*="styles_skinsGrid__"] [data-gooddrop-inventory].gd-inv-picked{outline-color:#68ef85!important;background:rgba(104,239,133,.14)!important}
[class*="styles_skinsGrid__"] [data-gooddrop-inventory].gd-inv-picked::after{content:"";position:absolute;top:8px;right:8px;width:20px;height:20px;border-radius:50%;background:#68ef85 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 6.2L4.7 9L10 3' stroke='%2306200c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E") center/12px no-repeat;box-shadow:0 2px 6px rgba(0,0,0,.4);z-index:2}
/* Withdrawal modal (opened from the green "Вывод" button). */
html.gd-wd-locked{overflow:hidden}
.gd-wd-overlay{position:fixed;inset:0;z-index:10062;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(3,10,18,.72);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transition:opacity .18s ease-out}
.gd-wd-overlay[data-open="true"]{opacity:1}
.gd-wd-card{position:relative;width:100%;max-width:560px;max-height:calc(100vh - 32px);overflow-y:auto;background:linear-gradient(180deg,#142433,#0f1a25);border:1px solid rgba(255,255,255,.08);border-radius:18px;box-shadow:0 24px 60px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.05);padding:24px;color:#fff;transform:translateY(10px) scale(.985);transition:transform .2s ease-out}
.gd-wd-overlay[data-open="true"] .gd-wd-card{transform:none}
.gd-wd-close{position:absolute;top:12px;right:12px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border:none;border-radius:9px;background:rgba(255,255,255,.05);color:hsla(0,0%,100%,.6);cursor:pointer;transition:background-color .15s,color .15s}
.gd-wd-close:hover{background:rgba(255,255,255,.1);color:#fff}
.gd-wd-head{display:flex;align-items:center;gap:14px;margin:0 34px 16px 0}
.gd-wd-avatar{width:56px;height:56px;border-radius:50%;object-fit:cover;background:rgba(255,255,255,.06);flex:0 0 auto}
.gd-wd-nick{font-size:17px;font-weight:700}
.gd-wd-id{font-size:12.5px;color:hsla(0,0%,100%,.5);margin-top:2px}
.gd-wd-trade{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:10px 14px;border-radius:12px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);margin-bottom:16px;font-size:12.5px}
.gd-wd-trade-label{color:hsla(0,0%,100%,.55);font-weight:600}
.gd-wd-trade-link{color:#68ef85;word-break:break-all;cursor:text;user-select:all}
.gd-wd-trade-none{color:hsla(0,0%,100%,.4)}
.gd-wd-status{display:flex;align-items:center;gap:14px;padding:16px;border-radius:14px;margin-bottom:18px;border:1px solid rgba(255,255,255,.08)}
.gd-wd-status.is-error{background:rgba(255,77,79,.09);border-color:rgba(255,77,79,.25)}
.gd-wd-status.is-processing{background:rgba(93,169,255,.09);border-color:rgba(93,169,255,.25)}
.gd-wd-status.is-success{background:rgba(104,239,133,.09);border-color:rgba(104,239,133,.28)}
.gd-wd-icon{width:46px;height:46px;flex:0 0 auto;display:flex;align-items:center;justify-content:center}
.gd-wd-icon svg{width:38px;height:38px}
.gd-wd-status.is-error .gd-wd-icon{color:#ff6b6b}
.gd-wd-status.is-success .gd-wd-icon{color:#68ef85}
.gd-wd-status-title{font-size:15px;font-weight:700;margin-bottom:3px}
.gd-wd-status.is-error .gd-wd-status-title{color:#ff8f90}
.gd-wd-status.is-processing .gd-wd-status-title{color:#9ec9ff}
.gd-wd-status.is-success .gd-wd-status-title{color:#8ef2a7}
.gd-wd-status>div:last-child{min-width:0;flex:1 1 auto}
.gd-wd-status-title{overflow-wrap:break-word;word-break:break-word}
.gd-wd-status-text{font-size:13px;line-height:1.5;color:hsla(0,0%,100%,.75);white-space:pre-wrap;overflow-wrap:break-word;word-break:break-word}
.gd-wd-spinner{width:34px;height:34px;border-radius:50%;border:3px solid rgba(93,169,255,.25);border-top-color:#5da9ff;animation:gd-wd-spin .8s linear infinite}
@keyframes gd-wd-spin{to{transform:rotate(360deg)}}
.gd-wd-items-title{font-size:13px;font-weight:600;color:hsla(0,0%,100%,.6);margin-bottom:10px}
.gd-wd-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
.gd-wd-item{display:flex;flex-direction:column;align-items:center;padding:10px;border-radius:10px;background:rgba(255,255,255,.03)}
.gd-wd-item img{width:100%;height:66px;object-fit:contain}
.gd-wd-item-name{margin-top:6px;font-size:12px;font-weight:600;text-align:center;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.gd-wd-item-price{font-size:11px;color:hsla(0,0%,100%,.5);margin-top:2px}
/* Withdrawal confirmation buttons (step 1): green submit, red cancel. */
.gd-wd-footer{display:flex;gap:12px;margin-top:20px}
.gd-wd-submit,.gd-wd-cancel{flex:1;height:48px;border:none;border-radius:12px;font-weight:700;font-size:14px;cursor:pointer;transition:filter .12s}
.gd-wd-submit{background:#68ef85;color:#06200c}
.gd-wd-cancel{background:#ff4d4f;color:#fff}
.gd-wd-submit:hover,.gd-wd-cancel:hover{filter:brightness(1.07)}
/* Profile "Мои заявки на вывод" — the user's own requests + current status. */
.gd-mywr{margin:0 0 18px;display:flex;flex-direction:column;gap:12px}
.gd-mywr-title{font-size:15px;font-weight:700;color:#fff}
.gd-mywr-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:14px 16px;border-radius:14px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03)}
.gd-mywr-row.is-error{border-color:rgba(255,77,79,.28);background:rgba(255,77,79,.07)}
.gd-mywr-row.is-processing{border-color:rgba(93,169,255,.28);background:rgba(93,169,255,.07)}
.gd-mywr-row.is-success{border-color:rgba(104,239,133,.28);background:rgba(104,239,133,.07)}
.gd-mywr-items{display:flex;gap:8px;flex-wrap:wrap;flex:0 0 auto}
.gd-mywr-items img{width:64px;height:44px;object-fit:contain;background:rgba(0,0,0,.15);border-radius:8px}
.gd-mywr-status{display:flex;align-items:center;gap:12px;flex:1 1 240px;min-width:0}
.gd-mywr-icon{width:38px;height:38px;flex:0 0 auto;display:flex;align-items:center;justify-content:center}
.gd-mywr-icon svg{width:32px;height:32px}
.gd-mywr-row.is-error .gd-mywr-icon{color:#ff6b6b}
.gd-mywr-row.is-success .gd-mywr-icon{color:#68ef85}
.gd-mywr-stitle{font-size:14px;font-weight:700}
.gd-mywr-row.is-error .gd-mywr-stitle{color:#ff8f90}
.gd-mywr-row.is-processing .gd-mywr-stitle{color:#9ec9ff}
.gd-mywr-row.is-success .gd-mywr-stitle{color:#8ef2a7}
.gd-mywr-stext{font-size:12.5px;color:hsla(0,0%,100%,.72);white-space:pre-wrap;margin-top:2px}
.gd-mywr-date{font-size:11px;color:hsla(0,0%,100%,.4);margin-top:4px}
.gd-mywr-more{flex:0 0 auto;margin-left:auto;padding:9px 20px;border:1px solid hsla(0,0%,100%,.22);border-radius:10px;background:rgba(255,255,255,.05);color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:background-color .15s,border-color .15s}
/* Case pages: hide invented/fake skin cards (no real CS2 -> no official Chinese name).
   The baker (tools/bake_case_translations.py) tags such a card's subtitle .gd-fake-skin;
   this render-blocking rule hides the whole card (content-grid rarity box OR roulette
   reel item) BEFORE first paint, so a fake never shows in Russian and never flashes.
   A JS safety net in local-live.js repeats this for browsers without :has(). */
[class*="styles_wheel__item__"]:has(.gd-fake-skin),
[class*="styles_skin_legendary__"]:has(.gd-fake-skin),
[class*="styles_skin_mythical__"]:has(.gd-fake-skin),
[class*="styles_skin_rare__"]:has(.gd-fake-skin),
[class*="styles_skin_ancient__"]:has(.gd-fake-skin),
[class*="styles_skin_uncommon__"]:has(.gd-fake-skin),
[class*="styles_skin_exotic__"]:has(.gd-fake-skin),
[class*="styles_skin_common__"]:has(.gd-fake-skin),
[class*="styles_skin_contraband__"]:has(.gd-fake-skin),
[class*="styles_skin_immortal__"]:has(.gd-fake-skin){display:none!important}
.gd-mywr-more:hover{background:rgba(255,255,255,.1);border-color:hsla(0,0%,100%,.35)}/* Contracts "Доступные для контракта" grid card: was a fixed 150px with overflow:hidden, so
   the state (износ) line we add under the name got clipped. Give the card room + let it grow. */
[class*="styles_items__skin__"]{height:auto!important;min-height:178px!important}
[class*="styles_items__skin__"] [data-gd-wear]{white-space:nowrap}
/* ...but the card also carries aspect-ratio:1 (square), so with height:auto it grows to ~its width
   (~200px) while the content is only ~150px -> a big empty band under the state line before the
   bottom rarity stripe. Scope to the "Доступные" grid ([items__list], which renders ONLY on
   contracts) so the card sizes to its content (drop the square + fixed height), and stop grid stretch
   from re-introducing a gap on a shorter (state-less) card. Slot clones live outside items__list, so
   they keep the rule above. */
[class*="styles_items__list__"] [class*="styles_items__skin__"]{aspect-ratio:auto!important;height:auto!important;min-height:0!important}
[class*="styles_items__list__"] [class*="styles_skin__main__"]{min-height:0!important}
[class*="styles_items__list__"] [class*="styles_skinWrapper__"]{align-self:start!important;height:auto!important}
/* Mobile: the upgrade inventory/catalog panels keep their tall desktop height on a phone,
   leaving a big empty gap under the few visible rows. Collapse to content height. The skins grid
   was ALSO capped at max-height:60vh, which made it a NESTED scroll box inside the page (scroll-
   within-scroll — confusing at the "bottom of the list"); let it flow naturally so the page scrolls
   as one and the pagination sits cleanly under the cards. */
@media only screen and (max-width:1024px){
  #upgrade-skins-panel-inventory,#upgrade-skins-panel-upgrade{height:auto!important;min-height:0!important}
  #upgrade-skins-panel-inventory>*,#upgrade-skins-panel-upgrade>*{min-height:0!important}
  #upgrade-skins-panel-inventory [class*="styles_skins__"],#upgrade-skins-panel-upgrade [class*="styles_skins__"]{max-height:none!important;overflow:visible!important}
}
/* Profile "Статистика" on phones: the 3 counters (Кейсы/Контракты/Апгрейды) were a
   horizontal-scroll flex row (items min-width:140px) → the last one needed a sideways
   swipe. Make all 3 fit on screen at once — an equal 3-column grid, no scroll. */
@media only screen and (max-width:1024px){
  [class*="styles_statistics__items__"]{display:grid!important;grid-template-columns:repeat(3,1fr)!important;overflow-x:visible!important;gap:6px!important;margin:0!important}
  [class*="styles_statisticsItem__"]{min-width:0!important;flex-shrink:1!important;justify-content:center!important;gap:6px!important;margin:0!important}
  [class*="styles_statisticsItem__"]>img{width:38px!important;height:38px!important;flex-shrink:0!important}
}
/* Home/profile "Раздача скинов": the site's cardsRow switches from a 2-col grid to a flex
   row around ~400px and collapses to 1-per-row on 414px phones (iPhone 11/XR/Plus). Force a
   clean 2-column grid on phones so it is always 2-per-row. Scoped to the giveaway section so
   no other card row is touched. */
@media only screen and (max-width:1024px){
  [data-cases-section-name="daily-giveaway"] [class*="styles_cardsRow__"]{display:grid!important;grid-template-columns:1fr 1fr!important;gap:12px!important}
}
/* iOS Safari auto-ZOOMS the whole page when a text field with font-size < 16px gets focus
   (and the zoom sticks) — that's why the deposit modal "стало больше экрана", especially
   while typing the tx-hash (13px) or amount (15px). Force every focusable text field to 16px
   on phones so iOS never zooms. Desktop keeps its compact sizes. */
@media only screen and (max-width:1024px){
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="color"]),
  textarea,select{font-size:16px!important}
}
/* Profile tab bar (Дропы/Контракты/Апгрейды/Промокоды/Мои бонусы, class styles_tabs__4ft_d —
   renders ONLY on the profile) was a horizontal-scroll strip on phones (overflow:auto;white-space:nowrap,
   width 657px) → had to swipe sideways for the last tabs. Wrap it into rows and centre them so all 5 are
   visible with no swipe. Note the tab <button>s carry width:100% → must be reset to width:auto or flex-wrap
   stacks them 1-per-row. On a common phone this lands as 3 (top) + 2 (bottom), both centred. */
@media only screen and (max-width:1024px){
  [class*="styles_tabs__4ft_d"]{display:flex!important;flex-wrap:wrap!important;justify-content:center!important;align-items:center!important;overflow:visible!important;white-space:normal!important;gap:2px 14px!important;width:100%!important}
  [class*="styles_tabs__4ft_d"] [class*="styles_tab__"]{width:auto!important;flex:0 0 auto!important;padding:9px 0!important}
}
/* Profile "Баланс" row: label + value were justify-content:space-between so the value (emblem + amount)
   was flung to the far right of the wide mobile block, looking disconnected. Pull them together left. */
@media only screen and (max-width:1024px){
  [class*="styles_balanceBlock__item__"]{justify-content:flex-start!important;gap:12px!important}
}
/* Winners page (/daily-giveaway/winners) cards, 2-per-row on phones. Original problems: nowrap name/nick
   cut; the image was position:absolute top:-30px so it poked OUT of the card and overlapped the card above
   (and the title); the fixed height + vertically-centred content left dead space under the date; and the
   card collapsed to ~80px (an implicit max-width pinned it to min-content once the name wrapped). Redesign:
   card fills its cell + auto height sized to content (no dead space); image goes IN-FLOW at the top (no
   overlap); content is a tight centred column; the name wraps to a uniform 2 lines; +margin-top so the grid
   sits a bit lower under the title. Scoped to the winners grid+card combo (card__QO39y renders ONLY here). */
@media only screen and (max-width:767px){
  [class*="styles_grid__Xkakt"]{margin-top:16px!important;row-gap:14px!important}
  [class*="styles_grid__Xkakt"] [class*="styles_card__QO39y"]{width:100%!important;max-width:none!important;box-sizing:border-box!important;height:auto!important;min-height:0!important;padding:12px 12px 14px!important;flex-direction:column!important;align-items:center!important;justify-content:flex-start!important;gap:6px!important;overflow:hidden!important}
  [class*="styles_grid__Xkakt"] [class*="styles_imageWrap__rPoOz"]{position:relative!important;top:0!important;left:auto!important;transform:none!important;width:100%!important;max-width:100%!important;height:94px!important;margin:0!important}
  [class*="styles_grid__Xkakt"] [class*="styles_image__CinBT"]{width:auto!important;max-width:90%!important;height:94px!important}
  [class*="styles_grid__Xkakt"] [class*="styles_skinName___5_vQ"]{white-space:normal!important;flex-wrap:wrap!important;justify-content:center!important;text-align:center!important;line-height:1.2!important;min-height:2.4em!important;max-height:2.4em!important;overflow:hidden!important;gap:0 4px!important;margin-top:2px!important}
  [class*="styles_grid__Xkakt"] [class*="styles_skinNameSkin__hBZa2"]{overflow:visible!important;white-space:normal!important;text-overflow:clip!important}
  [class*="styles_grid__Xkakt"] [class*="styles_bottom__fQaDf"]{justify-content:center!important;margin-top:0!important;width:100%!important}
  [class*="styles_grid__Xkakt"] [class*="styles_username__cuA2p"]{max-width:none!important}
}
/* Footer links (Контакты / Пользовательское соглашение / Политика … / cookie, styles_levelTwo__links_row)
   wrapped into uneven rows on phones (2+1+1). Stack them one-per-row, centred, on every page. */
@media only screen and (max-width:767px){
  [class*="styles_levelTwo__links_row__"]{flex-direction:column!important;align-items:center!important;gap:14px!important}
  /* the row has 2 EMPTY placeholder divs between Контакты and the rest — with a column gap they
     tripled the space after Контакты. Hide the empty children so all gaps are an even 14px. */
  [class*="styles_levelTwo__links_row__"]>*:empty{display:none!important}
}
/* Upgrade page, "Апгрейд" tab (#upgrade-skins-panel-upgrade): the catalog cards are height:100% inside a
   grid row that collapsed to ~55-64px, so the weapon/skin name at the bottom was CLIPPED (the "Инвентарь"
   tab cards were fine). The content is ~92px, so the row must fit it: set grid-auto-rows:max-content so each
   row sizes to its card's content, then let the card + inner content be height:auto (a fixed min-height
   instead just left dead space under short cards — the content is only ~92px). Also HIDE the от/до price
   filter's decorative dash-divider — it reads like a stray "minus"; the placeholders make the range clear.
   Phones only. */
@media only screen and (max-width:1024px){
  #upgrade-skins-panel-upgrade [class*="styles_skins__"]{grid-auto-rows:max-content!important}
  #upgrade-skins-panel-upgrade [class*="styles_upgradeUserSkin__6IzL9"]{height:auto!important;min-height:0!important}
  #upgrade-skins-panel-upgrade [class*="styles_upgradeUserSkin__content__"]{height:auto!important}
  [class*="styles_priceDivider__"]{display:none!important}
}
/* Profile "Мои заявки на вывод": each request wrapped its "Подробнее" button onto a 2nd line on phones
   (.gd-mywr-status has flex:1 1 240px + the row flex-wraps). Keep the whole request on ONE line — no wrap,
   the status (icon + title/date) shrinks and ellipsises if needed, and a compact button on the right. */
@media only screen and (max-width:767px){
  .gd-mywr-row{flex-wrap:nowrap!important;gap:10px!important;padding:12px 14px!important}
  .gd-mywr-items img{width:50px!important;height:40px!important}
  .gd-mywr-status{flex:1 1 auto!important;min-width:0!important;gap:10px!important}
  .gd-mywr-status>div:last-child{min-width:0!important;overflow:hidden!important}
  .gd-mywr-stitle,.gd-mywr-date{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  .gd-mywr-icon{width:32px!important;height:32px!important}
  .gd-mywr-icon svg{width:28px!important;height:28px!important}
  .gd-mywr-more{padding:8px 14px!important;font-size:12px!important}
}
/* === Owner batch 2026-08-21 === */
/* 1. Footer links on desktop: keep all 4 visible links (Контакты / Пользовательское
   соглашение / Политика конфиденциальности / cookie) on ONE centered line — the long
   "cookie" link had wrapped onto a 2nd row. Let the links keep their natural width (no
   flex-shrink), hide the 2 empty placeholder divs so the gaps stay even, and let the row
   grow. Shared footer => applies on every page. Mobile (<=767) keeps its stacked layout. */
@media only screen and (min-width:1025px){
  [class*="styles_levelTwo__links___"]{max-width:none!important}
  [class*="styles_levelTwo__links_row__"]{flex-wrap:nowrap!important;justify-content:center!important}
  [class*="styles_levelTwo__links_row__"]>*{flex:0 0 auto!important}
  [class*="styles_levelTwo__links_row__"]>*:empty{display:none!important}
  [class*="styles_levelTwo__links_row__"] [class*="styles_link__text__"]{white-space:nowrap!important}
}
/* 2. Giveaway "Раздача скинов": remove the wear/state badge (Поношенное / Прямо с завода …)
   so every giveaway prize card looks uniform. Scoped to the giveaway section ONLY — wear
   badges on case/market/profile cards are untouched. Covers every page with the giveaway. */
[data-cases-section-name="daily-giveaway"] [class*="styles_wearBadge__"]{display:none!important}
/* 3. Home stats block: after removing the "Сражения" counter (renderHomeStats) the grid still
   reserved its 5 fixed 220px columns, so the 4 remaining counters clustered at the LEFT with an
   empty column on the right. Re-flow to 4 equal columns, each counter centered in its column =>
   evenly distributed / balanced across the full width. Desktop only (min-width:1025px); mobile
   keeps its own responsive layout. Applies wherever the block appears (home + /contacts). */
@media only screen and (min-width:1025px){
  [class*="styles_group__m1ldh"]{grid-template-columns:repeat(4,1fr)!important;justify-items:center!important}
}
/* 4. Contracts page: the screen container is min-height:100vh (a sticky-footer "fill the
   viewport" pattern), so with few items (1 row) a big empty gap opened between the grid and
   the footer on tall screens. Size the contracts screen + its "Доступные" items panel to
   CONTENT so the footer sits right under the grid and simply grows down when there are more
   rows. Scoped to /contracts via the html.gd-contracts-page marker (set in local-live.js) —
   these class hashes are SHARED with the upgrade/battles screens, which must keep their fill. */
html.gd-contracts-page [class*="styles_screen__O_OlY"]{min-height:0!important}
html.gd-contracts-page [class*="styles_items__t4xVC"]{min-height:0!important}

/* Battles is intentionally absent on the public mobile home page. Do not
   reserve the source layout's third grid row after that item is removed. */
@media only screen and (max-width:767px){
  [class*="styles_statistics__9XTj6"] [class*="styles_group__m1ldh"]{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    grid-template-rows:repeat(2,auto)!important;
    gap:16px!important;
    row-gap:16px!important;
  }
}
