/* w94, Вадим 02.11: «Инвентарь» по руководству UP Poker — рюкзак одной сеткой с фильтром, билеты таблицей,
   анимации из списков UP Poker и окно «Ты получил следующие награды». Шторка и тост — из inventory-w33.css. */
#device-host .pd-bp{font-family:var(--pd-font,'Play',sans-serif);color:#f0f2f5}
#device-host .pd-bp-topglow{position:absolute;top:0;left:0;right:0;height:200px;pointer-events:none}
#device-host .pd-bp-header{position:relative;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:64px 16px 8px}
#device-host .pd-bp-back,#device-host .pd-bp-back-ph{width:36px;height:36px}
#device-host .pd-bp-back{border-radius:12px;background:rgba(255,255,255,.085);border:1px solid rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer}
#device-host .pd-bp-title{font:700 var(--pd-type-label,14px)/1 var(--pd-font,'Play',sans-serif);letter-spacing:.16em;color:#fff}
#device-host .pd-bp-seg{position:relative;z-index:5;display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:4px 16px 0;padding:4px;border-radius:14px;background:#ffffff0a;border:1px solid #ffffff14}
#device-host .pd-bp-seg button{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;height:36px;border:0;border-radius:10px;background:none;color:#a9adb7;font:700 14px/1 var(--pd-font,'Play',sans-serif);cursor:pointer}
#device-host .pd-bp-seg button span{font-size:12px;color:#7d838f;font-variant-numeric:tabular-nums}
#device-host .pd-bp-seg button.is-on{background:#ffffff1f;color:#fff}
#device-host .pd-bp-seg button.is-on span{color:#c9ccd4}
#device-host .pd-bp-dot{position:absolute;top:8px;right:14px;width:6px;height:6px;border-radius:50%;background:#d71921}
#device-host .pd-bp-tools{position:relative;z-index:6;display:flex;padding:12px 16px 4px}
#device-host .pd-bp-filter{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;border-radius:12px;background:#ffffff0d;border:1px solid #ffffff1f;color:#fff;font:700 14px/1 var(--pd-font,'Play',sans-serif);cursor:pointer}
#device-host .pd-bp-menu{position:absolute;top:52px;left:16px;min-width:220px;padding:6px;border-radius:14px;background:#17191e;border:1px solid #ffffff1f;box-shadow:0 16px 40px #000c;display:grid;gap:2px}
#device-host .pd-bp-menu button{display:flex;justify-content:space-between;gap:16px;height:40px;padding:0 12px;border:0;border-radius:10px;background:none;color:#d8d8df;font:700 14px/1 var(--pd-font,'Play',sans-serif);text-align:left;cursor:pointer}
#device-host .pd-bp-menu button span{color:#7d838f}
#device-host .pd-bp-menu button.is-on{background:#ffffff14;color:#fff}
#device-host .pd-bp-sub{display:grid;grid-template-columns:1fr 1fr;gap:4px;width:100%}
#device-host .pd-bp-sub button{height:32px;border-radius:10px;border:1px solid #ffffff14;background:none;color:#a9adb7;font:700 13px/1 var(--pd-font,'Play',sans-serif);cursor:pointer}
#device-host .pd-bp-sub button.is-on{border-color:#ffffff47;color:#fff;background:#ffffff0d}
#device-host .pd-bp-scroll{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;position:relative;z-index:2;padding:8px 16px 40px}
#device-host .pd-bp-empty{margin:40px 0;text-align:center;color:#7d838f;font-size:14px}
/* карточка рюкзака — одна на все типы, как в Backpack UP Poker */
#device-host .pd-bp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
#device-host .pd-bp-card{position:relative;display:flex;flex-direction:column;align-items:center;padding:16px 10px 10px;border-radius:16px;background:radial-gradient(90% 60% at 50% 18%,color-mix(in srgb,var(--c) 16%,transparent),transparent 70%),#111317;border:1px solid #ffffff14;text-align:center;min-width:0;overflow:hidden}
#device-host .pd-bp-new{position:absolute;top:0;left:10px;z-index:2;padding:4px 6px 7px;background:#d71921;color:#fff;font:700 11px/12px var(--pd-font,'Play',sans-serif);letter-spacing:.06em;clip-path:polygon(0 0,100% 0,100% 100%,50% 78%,0 100%)}
#device-host .pd-bp-art{display:grid;place-items:center;width:100%;height:100px}
#device-host .pd-bp-img{object-fit:contain;filter:drop-shadow(0 8px 14px #000a)}
#device-host .pd-bp-egg,#device-host .pd-bp-shard{filter:drop-shadow(0 8px 14px #000a)}
#device-host .pd-bp-egg .iv-crack{display:none}
#device-host .pd-bp-plate{width:100%}
#device-host .pd-bp-name{margin-top:8px;max-width:100%;font:700 14px/18px var(--pd-font,'Play',sans-serif);color:#fff;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:36px}
#device-host .pd-bp-qty{margin-top:2px;font:700 12px/16px var(--pd-font,'Play',sans-serif);color:#a9adb7;font-variant-numeric:tabular-nums}
#device-host .pd-bp-desc{margin:6px 0 0;font:500 12px/16px var(--pd-font,'Play',sans-serif);color:#8e95a1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;min-height:48px}
#device-host .pd-bp-exp{margin-top:8px;font:600 11px/14px var(--pd-font,'Play',sans-serif);color:#8e95a1}
#device-host .is-soon{color:#ff5a60!important}
#device-host .pd-bp-acts{display:flex;gap:6px;width:100%;margin-top:10px}
#device-host .pd-bp-btn{flex:1;min-width:0;height:36px;padding:0 8px;border-radius:10px;border:0;background:#d71921;color:#fff;font:700 13px/1 var(--pd-font,'Play',sans-serif);cursor:pointer;white-space:nowrap}
#device-host .pd-bp-btn:disabled{background:#ffffff14;color:#7d838f;cursor:default}
#device-host .pd-bp-btn.is-ghost{flex:0 0 auto;background:#ffffff0d;border:1px solid #ffffff1f;color:#d8d8df}
/* билеты — таблица UP Poker: срок, номинал, возврат, передача */
#device-host .pd-bp-col{display:grid;gap:8px}
#device-host .pd-bp-tk{position:relative;display:grid;gap:12px;padding:14px;border-radius:16px;background:#111317;border:1px solid #ffffff14;overflow:hidden}
#device-host .pd-bp-tk .pd-bp-new{left:auto;right:12px}
#device-host .pd-bp-tk-head{display:flex;align-items:center;gap:12px}
#device-host .pd-bp-tk-suit{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#d719211a;border:1px solid #d7192140}
#device-host .pd-bp-tk-name{flex:1;display:grid;gap:2px;min-width:0}
#device-host .pd-bp-tk-name b{font:700 16px/20px var(--pd-font,'Play',sans-serif);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#device-host .pd-bp-tk-name small{font:600 12px/16px var(--pd-font,'Play',sans-serif);color:#8e95a1}
#device-host .pd-bp-tk .pd-bp-qty{margin-right:44px;font-size:14px;color:#fff}
#device-host .pd-bp-kvs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:10px;border-radius:12px;background:#ffffff07}
#device-host .pd-bp-kv{display:grid;gap:2px;min-width:0}
#device-host .pd-bp-kv small{font:600 11px/14px var(--pd-font,'Play',sans-serif);color:#7d838f}
#device-host .pd-bp-kv b{font:700 13px/17px var(--pd-font,'Play',sans-serif);color:#e4e6ea;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
#device-host .pd-bp-kv b.is-gold{color:#f0c75e}
#device-host .pd-bp-tk-send{height:36px}
#device-host .pd-bp-rec{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:12px;background:#111317;border:1px solid #ffffff12}
#device-host .pd-bp-rec>span{display:grid;gap:2px;min-width:0}
#device-host .pd-bp-rec b{font:700 14px/18px var(--pd-font,'Play',sans-serif)}
#device-host .pd-bp-rec small{font:600 12px/16px var(--pd-font,'Play',sans-serif);color:#9aa1ad;white-space:nowrap}
#device-host .pd-bp-field{display:grid;gap:6px}
#device-host .pd-bp-field>span{font:600 12px/16px var(--pd-font,'Play',sans-serif);color:#9aa1ad}
#device-host .pd-bp-field input{height:44px;box-sizing:border-box;width:100%;padding:0 12px;border-radius:12px;border:1px solid #ffffff1f;background:#0b0c0f;color:#fff;font:600 15px/1 var(--pd-font,'Play',sans-serif);outline:none}
#device-host .pd-bp-field input:focus{border-color:#d71921}
#device-host .pd-inv-sheet-btns .pd-btn:disabled{opacity:.45}

/* ── окно наград UP Poker ── */
#device-host .pd-fx{position:absolute;inset:0;z-index:40;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;background:rgba(4,4,6,.95);animation:fxFade .25s ease}
#device-host .pd-fx-glow{position:absolute;left:50%;top:38%;width:460px;height:460px;margin:-230px 0 0 -230px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--c) 40%,transparent),transparent 65%);opacity:.6;pointer-events:none}
#device-host .pd-fx-stage{position:relative;width:280px;height:280px;display:grid;place-items:center;flex:none;transition:transform .4s ease}
#device-host .pd-fx.is-done .pd-fx-stage{transform:scale(.82) translateY(-6px)}
#device-host .pd-fx-stage>svg,#device-host .pd-fx-stage>img{position:relative;z-index:2;overflow:visible}
#device-host .pd-fx-rew{position:relative;z-index:3;width:100%;box-sizing:border-box;padding:0 24px;display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;animation:fxFade .3s ease}
#device-host .pd-fx-title{margin:0;font:700 17px/23px var(--pd-font,'Play',sans-serif);color:#fff;text-wrap:balance}
#device-host .pd-fx-list{display:flex;flex-direction:column;align-items:center;gap:6px}
#device-host .pd-fx-big{font:700 40px/46px var(--pd-font,'Play',sans-serif);background:linear-gradient(180deg,#fff6c8 0%,#f0c75e 45%,#b8860b 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 6px #000);animation:fxPop .45s cubic-bezier(.3,1.6,.5,1) both;animation-delay:calc(var(--i) * 120ms)}
#device-host .pd-fx-name{font:700 17px/23px var(--pd-font,'Play',sans-serif);color:#ff9a3c;animation:fxPop .45s cubic-bezier(.3,1.6,.5,1) both;animation-delay:calc(var(--i) * 120ms)}
#device-host .pd-fx-note{font:600 13px/18px var(--pd-font,'Play',sans-serif);color:#9aa1ad}
#device-host .pd-fx-btns{display:flex;gap:8px;width:100%;margin-top:8px}
#device-host .pd-fx-btns .pd-btn{flex:1;min-width:0}
#device-host .pd-fx-skip{position:absolute;bottom:40px;font:600 12px/16px var(--pd-font,'Play',sans-serif);color:#6f7480}
@keyframes fxFade{from{opacity:0}to{opacity:1}}
@keyframes fxPop{from{transform:scale(.4);opacity:0}}
@keyframes fxShake{0%,100%{transform:rotate(0)}15%{transform:rotate(-8deg)}30%{transform:rotate(7deg)}45%{transform:rotate(-6deg)}60%{transform:rotate(5deg)}75%{transform:rotate(-3deg)}}
@keyframes fxOut{to{opacity:0}}
@keyframes fxIn{to{opacity:1}}
@keyframes fxSpin{to{transform:rotate(360deg)}}
#device-host .pd-fx-flash{position:absolute;left:50%;top:50%;z-index:3;width:70px;height:70px;margin:-35px 0 0 -35px;border-radius:50%;background:radial-gradient(circle,#fff,color-mix(in srgb,var(--c) 70%,#fff0) 50%,transparent 70%);opacity:0;pointer-events:none}
@keyframes fxFlash{0%{transform:scale(.2);opacity:1}100%{transform:scale(6);opacity:0}}
#device-host .pd-fx-coin{position:absolute;left:50%;top:50%;z-index:3;width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff3b0,#f0c75e 45%,#a87413);box-shadow:0 0 8px #f0c75e88;opacity:0}
@keyframes fxCoin{0%{transform:rotate(var(--a)) translateX(0) scale(.3);opacity:0}15%{opacity:1}100%{transform:rotate(var(--a)) translateX(var(--d)) scale(1);opacity:0}}
#device-host .pd-fx-conf{position:absolute;left:50%;top:46%;z-index:3;width:8px;height:14px;border-radius:2px;background:var(--cc);opacity:0}
@keyframes fxConf{0%{transform:translate(0,0) rotate(0);opacity:1}100%{transform:translate(var(--x),var(--y)) rotate(var(--r));opacity:0}}
#device-host .pd-fx-rays{position:absolute;inset:-60px;z-index:1;border-radius:50%;background:repeating-conic-gradient(from 0deg,#ffe9a838 0 8deg,transparent 8deg 22deg);-webkit-mask:radial-gradient(circle,#000 16%,transparent 64%);mask:radial-gradient(circle,#000 16%,transparent 64%);opacity:0}
/* Gift Box Explosion: коробка трясётся, раздувается и взрывается конфетти */
#device-host .fx-giftbox .pd-fx-gift{width:180px;height:180px;object-fit:contain;filter:drop-shadow(0 12px 20px #000);animation:fxShake .8s ease-in-out,fxSwell .45s ease-in .8s forwards}
@keyframes fxSwell{60%{transform:scale(1.25);opacity:1}100%{transform:scale(1.7);opacity:0}}
#device-host .fx-giftbox .pd-fx-flash{animation:fxFlash .6s ease-out 1.1s forwards}
#device-host .fx-giftbox .pd-fx-conf{animation:fxConf 1.3s ease-out forwards;animation-delay:calc(1.1s + var(--i) * 18ms)}
#device-host .fx-giftbox .pd-fx-coin{animation:fxCoin .9s cubic-bezier(.2,.7,.3,1) forwards;animation-delay:calc(1.15s + var(--i) * 20ms)}
/* Cash Truck Loot: броневик въезжает, задняя дверь открывается, летят пачки денег */
#device-host .fx-truck .pd-fx-truck{animation:fxDrive .9s cubic-bezier(.2,.9,.3,1.1) both}
@keyframes fxDrive{from{transform:translateX(-340px)}}
#device-host .fx-truck .iv-door{transform-box:fill-box;transform-origin:100% 50%;animation:fxDoor .35s ease-in 1s forwards}
@keyframes fxDoor{to{transform:scaleX(-1) translateX(6px)}}
#device-host .pd-fx-stage>.pd-fx-cash{position:absolute;left:10%;top:40%;z-index:3;width:64px;height:64px;object-fit:contain;opacity:0;animation:fxLoot .9s cubic-bezier(.2,.7,.3,1) forwards;animation-delay:calc(1.2s + var(--i) * 90ms)}
@keyframes fxLoot{0%{transform:translate(0,0) scale(.3) rotate(0);opacity:0}20%{opacity:1}100%{transform:translate(var(--x),var(--y)) scale(1) rotate(var(--r));opacity:1}}
#device-host .fx-truck .pd-fx-coin{left:30%;animation:fxCoin .9s cubic-bezier(.2,.7,.3,1) forwards;animation-delay:calc(1.25s + var(--i) * 40ms)}
/* Countdown Bomb: 3 · 2 · 1, фитиль искрит, взрыв */
#device-host .pd-fx-count{position:absolute;top:-6px;left:50%;z-index:4;transform:translateX(-50%);font:700 64px/1 var(--pd-font,'Play',sans-serif);color:#fff;text-shadow:0 0 18px #d71921;animation:fxCount .45s ease-out both}
@keyframes fxCount{0%{transform:translateX(-50%) scale(1.8);opacity:0}30%{opacity:1}100%{transform:translateX(-50%) scale(1);opacity:.9}}
#device-host .fx-bomb .pd-fx-bomb{animation:fxTick .45s ease-in-out infinite}
@keyframes fxTick{50%{transform:scale(1.06)}}
#device-host .pd-fx-spark{position:absolute;left:calc(50% + 46px);top:calc(50% - 66px);z-index:3;width:14px;height:14px;border-radius:50%;background:radial-gradient(circle,#fff,#ffd877 40%,#ff5a00 70%,transparent 72%);box-shadow:0 0 16px 6px #ff9a3c;animation:fxSpark .12s linear infinite alternate}
@keyframes fxSpark{to{transform:scale(1.5)}}
#device-host .fx-bomb.is-boom .pd-fx-bomb{animation:fxSwell .3s ease-in forwards}
#device-host .fx-bomb.is-boom .pd-fx-spark{display:none}
#device-host .fx-bomb.is-boom .pd-fx-flash{animation:fxFlash .6s ease-out .1s forwards}
#device-host .pd-fx-ring{position:absolute;left:50%;top:50%;z-index:2;width:80px;height:80px;margin:-40px 0 0 -40px;border-radius:50%;border:4px solid #ffd877;opacity:0}
#device-host .fx-bomb.is-boom .pd-fx-ring{animation:fxRing .7s ease-out .1s forwards}
@keyframes fxRing{0%{transform:scale(.3);opacity:1}100%{transform:scale(4);opacity:0}}
#device-host .fx-bomb.is-boom .pd-fx-coin{animation:fxCoin .9s cubic-bezier(.2,.7,.3,1) forwards;animation-delay:calc(.15s + var(--i) * 15ms)}
/* яйца Colored / Gold / Silver / Bronze: качается, светящаяся трещина, раскалывается */
#device-host .fx-egg .pd-fx-eggsvg{animation:fxWobble 1.1s ease-in-out}
@keyframes fxWobble{0%,100%{transform:rotate(0)}20%{transform:rotate(-12deg)}40%{transform:rotate(10deg)}60%{transform:rotate(-8deg)}80%{transform:rotate(5deg)}}
#device-host .fx-egg .iv-crack{stroke-dasharray:120;stroke-dashoffset:120;animation:fxDraw .45s ease 1.1s forwards,fxOut .2s ease 1.65s forwards}
@keyframes fxDraw{to{stroke-dashoffset:0}}
#device-host .fx-egg .iv-egg-l{transform-box:fill-box;transform-origin:100% 100%;animation:fxHalfL .6s ease-in 1.65s forwards}
#device-host .fx-egg .iv-egg-r{transform-box:fill-box;transform-origin:0 100%;animation:fxHalfR .6s ease-in 1.65s forwards}
@keyframes fxHalfL{to{transform:translate(-40px,14px) rotate(-30deg);opacity:0}}
@keyframes fxHalfR{to{transform:translate(40px,14px) rotate(30deg);opacity:0}}
#device-host .fx-egg .pd-fx-rays{animation:fxSpin 6s linear infinite,fxIn .4s ease 1.6s forwards}
#device-host .fx-egg .pd-fx-flash{animation:fxFlash .6s ease-out 1.65s forwards}
#device-host .fx-egg .pd-fx-coin{animation:fxCoin .9s cubic-bezier(.2,.7,.3,1) forwards;animation-delay:calc(1.7s + var(--i) * 20ms)}
/* Ticket / Item Combination: детали пазла слетаются, вспышка, светящийся результат */
#device-host .pd-fx-piece{position:absolute;left:50%;top:50%;width:48px;height:48px;margin:-24px 0 0 -24px;z-index:2;animation:fxGather .8s cubic-bezier(.5,0,.3,1.3) both,fxOut .15s ease 1.05s forwards;animation-delay:calc(.1s + var(--i) * 90ms),1.05s}
@keyframes fxGather{0%{transform:rotate(var(--a)) translateX(140px) rotate(calc(-1 * var(--a))) scale(1.2);opacity:0}20%{opacity:1}100%{transform:rotate(var(--a)) translateX(16px) rotate(calc(-1 * var(--a))) scale(.8);opacity:1}}
#device-host .fx-combine .pd-fx-flash{animation:fxFlash .6s ease-out 1s forwards}
#device-host .pd-fx-target{position:absolute;left:50%;top:50%;z-index:3;display:grid;place-items:center;transform:translate(-50%,-50%) scale(0);animation:fxTarget .5s cubic-bezier(.3,1.6,.5,1) 1.15s forwards}
#device-host .pd-fx-target.is-ticket img{filter:drop-shadow(0 0 18px #ffd877) drop-shadow(0 0 6px #fff)}
@keyframes fxTarget{to{transform:translate(-50%,-50%) scale(1)}}
#device-host .fx-still{animation:fxPop .45s cubic-bezier(.3,1.6,.5,1) both}
#device-host .fx-still .pd-bp-plate{width:250px}
/* кошелёк: точка «есть новое» у «Инвентаря» */
.pd-wl-fresh{display:inline-block;width:8px;height:8px;margin-left:8px;border-radius:50%;background:#ff3b44;vertical-align:middle}
.pd-plate[data-plate=gold] .pd-plate-skin{background:linear-gradient(115deg,#3a2a08 0%,#8a6a22 38%,#f0c75e 50%,#8a6a22 62%,#2c2006 100%);box-shadow:inset 0 0 0 1px #ffe39a66}
.pd-plate[data-plate=gold] .pd-plate-skin::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,#fff6 45%,transparent 60%) -100% 0/60% 100% no-repeat;animation:pd-plate-shine 3.2s ease-in-out infinite}
@keyframes pd-plate-shine{0%,30%{background-position:-100% 0}100%{background-position:220% 0}}
.pd-plate[data-plate=ice] .pd-plate-skin{background:radial-gradient(60% 120% at 85% 20%,#bff0ff55,transparent 60%),linear-gradient(135deg,#0d2b3a,#14506b 55%,#0b1f2b);box-shadow:inset 0 0 0 1px #9fe6ff66}
.pd-plate[data-plate=ice] .pd-plate-skin::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(60deg,transparent 0 6cqw,#ffffff10 6cqw 6.6cqw)}
.pd-plate[data-plate=neon] .pd-plate-skin{background:#0b0716;box-shadow:inset 0 0 0 1px #a855f7,inset 0 0 3cqw #a855f777,0 0 2.4cqw #a855f755}
.pd-plate[data-plate=neon] .pd-plate-skin::before{content:"";position:absolute;inset:18% 3cqw;border-radius:3cqw;border:max(1px,.4cqw) solid #ff4d9d99;animation:pd-plate-neon 2.4s ease-in-out infinite}
@keyframes pd-plate-neon{0%,100%{opacity:.4}50%{opacity:1}}
.pd-frame-grid button{position:relative}
.pd-ae-new{position:absolute;top:0;left:0;padding:2px 7px;border-radius:16px 0 10px 0;background:#d71921;color:#fff;font:700 10px/14px var(--pd-font,'Play',sans-serif);font-style:normal;letter-spacing:.1em}
.pd-plate-pick button[data-new]{position:relative}
.pd-plate-pick button[data-new]::after{content:"NEW";position:absolute;top:0;right:0;padding:2px 7px;border-radius:0 16px 0 10px;background:#d71921;color:#fff;font:700 10px/14px var(--pd-font,'Play',sans-serif);letter-spacing:.1em}
/* w96: билеты — исходный вид TicketRow и отрыв корешка FocusTicket из tickets.js */
#device-host .pd-bp-tks{gap:12px}
#device-host .pd-bp-use{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;z-index:2;padding:0 24px 32px}
#device-host .pd-bp-use p{margin:0 0 24px;max-width:270px;text-align:center;font:700 13px/1.5 var(--pd-font,'Play',sans-serif);color:#d8d8df}
/* w96b: «Передать» не влезал рядом с «Использовать» — кнопки друг под другом, главная всегда внизу карточки
   (в ряду главные кнопки стоят на одной линии), «Передать» — тихая строка над ней */
#device-host .pd-bp-card{height:100%;box-sizing:border-box}
#device-host .pd-bp-acts{flex-direction:column;gap:4px;margin-top:auto;padding-top:10px}
#device-host .pd-bp-acts .pd-bp-btn{width:100%;flex:none}
#device-host .pd-bp-acts .pd-bp-btn.is-ghost{height:28px;background:none;border:0;color:#c9ccd4;font-size:12px}
/* w97: превью — картинка и название; количество — пилюля в углу; описание и срок — в окне предмета */
#device-host .pd-bp-card{cursor:pointer;padding-bottom:10px}
#device-host .pd-bp-count{position:absolute;top:10px;right:10px;z-index:2;padding:2px 8px;border-radius:999px;background:#ffffff14;color:#d8d8df;font:700 12px/16px var(--pd-font,'Play',sans-serif);font-variant-numeric:tabular-nums}
#device-host .pd-bp-name{min-height:36px;display:flex;align-items:center;justify-content:center}
#device-host .pd-bp-detail{align-items:stretch;text-align:left}
#device-host .pd-bp-detail-art{display:grid;place-items:center;height:160px;margin:-4px -16px 4px;background:radial-gradient(60% 80% at 50% 50%,color-mix(in srgb,var(--c) 22%,transparent),transparent 70%)}
#device-host .pd-bp-detail-art .iv-crack{display:none}
#device-host .pd-bp-detail-art .pd-bp-plate{width:260px}
#device-host .pd-bp-detail-meta{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:12px;background:#ffffff0a;font:700 13px/18px var(--pd-font,'Play',sans-serif);color:#c9ccd4}
/* w99, Вадим 02.11: каждая награда — праздник. Своя строка одного вида: картинка, название, количество, куда зачислено;
   ни одна не выделяется сильнее. Строки появляются по очереди с бликом, сверху падает конфетти */
#device-host .pd-fx.is-done .pd-fx-stage{transform:scale(.6);margin:-60px 0 -50px}
#device-host .pd-fx-list{display:grid;gap:10px;width:100%}
#device-host .pd-fx-row{position:relative;display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 16px 10px 10px;border-radius:16px;text-align:left;overflow:hidden;
  background:linear-gradient(135deg,#2c2312 0%,#17181d 60%);border:1px solid #f0c75e66;box-shadow:0 10px 26px #000b,0 0 24px #f0c75e26;
  animation:fxRow .55s cubic-bezier(.3,1.5,.5,1) both;animation-delay:calc(var(--i) * 170ms)}
#device-host .pd-fx-row::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,#ffffff38 50%,transparent 65%) -150% 0/60% 100% no-repeat;
  animation:fxShine 1s ease-out both;animation-delay:calc(.35s + var(--i) * 170ms);pointer-events:none}
@keyframes fxRow{from{transform:translateY(26px) scale(.9);opacity:0}}
@keyframes fxShine{to{background-position:250% 0}}
#device-host .pd-fx-row-art{display:grid;place-items:center;width:64px;height:64px;border-radius:14px;background:radial-gradient(circle,#f0c75e33,transparent 70%)}
#device-host .pd-fx-row-art img{object-fit:contain;filter:drop-shadow(0 4px 8px #000a)}
#device-host .pd-fx-row-art .iv-crack{display:none}
#device-host .pd-fx-row-plate{width:62px}
#device-host .pd-fx-row-txt{display:grid;gap:2px;min-width:0}
#device-host .pd-fx-row-txt b{font:700 16px/20px var(--pd-font,'Play',sans-serif);color:#fff}
#device-host .pd-fx-row-txt small{font:600 12px/16px var(--pd-font,'Play',sans-serif);color:#d8c9a0}
#device-host .pd-fx-row-q{font:700 16px/20px var(--pd-font,'Play',sans-serif);color:#f0c75e;font-variant-numeric:tabular-nums}
#device-host .pd-fx-title{font-size:18px;line-height:24px}
#device-host .pd-fx-party{position:absolute;left:-24px;right:-24px;top:-420px;bottom:-200px;overflow:hidden;pointer-events:none;z-index:4}
#device-host .pd-fx-party i{position:absolute;top:-16px;left:var(--x);width:8px;height:14px;border-radius:2px;background:var(--cc);opacity:0;animation:fxFall 2.2s cubic-bezier(.3,.6,.5,1) forwards;animation-delay:var(--d)}
@keyframes fxFall{0%{transform:translateY(0) rotate(0);opacity:1}100%{transform:translateY(760px) rotate(calc(var(--r) + 540deg));opacity:0}}
/* w101: осколок — кусок настоящего предмета: бледный силуэт целого, сверху светящийся осколок с гранью и бликом */
#device-host .pd-shard{position:relative;display:grid;place-items:center;flex:none}
#device-host .pd-shard>span{position:absolute;inset:0;display:grid;place-items:center}
#device-host .pd-shard-ghost{opacity:.16;filter:grayscale(1) brightness(1.6)}
#device-host .pd-shard-glow{background:radial-gradient(circle at 50% 45%,color-mix(in srgb,var(--c) 70%,#fff),var(--c) 60%);opacity:.35;filter:blur(6px);transform:scale(1.08)}
#device-host .pd-shard-piece{filter:drop-shadow(0 0 6px var(--c)) saturate(1.15) brightness(1.08);overflow:hidden;animation:shardFloat 3.2s ease-in-out infinite}
#device-host .pd-shard-glint{position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,#ffffff8c 46%,transparent 60%) -160% 0/70% 100% no-repeat;animation:shardGlint 3.2s ease-in-out infinite;pointer-events:none}
#device-host .pd-shard-edge{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;animation:shardFloat 3.2s ease-in-out infinite}
#device-host .pd-shard-edge polygon{fill:none;stroke:#fff;stroke-opacity:.85;stroke-width:1.4;stroke-linejoin:round;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 3px var(--c))}
@keyframes shardFloat{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-3px) rotate(-1.5deg)}}
@keyframes shardGlint{0%,55%{background-position:-160% 0}85%,100%{background-position:260% 0}}
#device-host .pd-bp-shard,#device-host .pd-shard img{filter:none}
/* сборка: куски картинки слетаются и складываются в целый предмет */
#device-host .pd-fx-tiles{position:absolute;left:50%;top:50%;width:150px;height:150px;margin:-75px 0 0 -75px;z-index:2}
#device-host .pd-fx-tile{position:absolute;inset:0;display:grid;place-items:center;filter:drop-shadow(0 0 8px var(--c));animation:fxTile .85s cubic-bezier(.5,0,.25,1.2) both,fxOut .2s ease 1.15s forwards;animation-delay:calc(.1s + var(--i) * 90ms),1.15s}
@keyframes fxTile{0%{transform:translate(var(--x),var(--y)) rotate(var(--r)) scale(.7);opacity:0}25%{opacity:1}100%{transform:none;opacity:1}}
#device-host .fx-combine .pd-fx-flash{animation:fxFlash .6s ease-out 1s forwards}
#device-host .fx-combine .pd-fx-target{transform:translate(-50%,-50%);opacity:0;animation:fxWhole .6s ease-out 1.1s forwards}
@keyframes fxWhole{0%{opacity:0;transform:translate(-50%,-50%) scale(1)}40%{opacity:1;transform:translate(-50%,-50%) scale(1.08)}100%{opacity:1;transform:translate(-50%,-50%) scale(1)}}
/* w112: метка NEW на новом билете */
#device-host .pd-bp-tkw{position:relative}
#device-host .pd-bp-tkw>.pd-bp-new{left:auto;right:12px}
/* w114: «Инвентарь» вверху «Наград» — ячейки с предметами и строка фактов */
#device-host .rw-bag{gap:12px;padding:14px 14px 13px}
#device-host .rw-bag-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
#device-host .rw-bag .rw-kicker{color:#E8A33D}
/* w132: «Открыть» на светлой подложке — читается поверх точек и выглядит как кнопка */
#device-host .rw-bag-open{position:relative;z-index:2;display:inline-flex;align-items:center;gap:2px;height:28px;padding:0 8px 0 12px;border-radius:999px;background:#1d1f25e6;border:1px solid #ffffff26;box-shadow:0 2px 8px #0008;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);font:700 12px/16px var(--pd-font,'Play',sans-serif);letter-spacing:.06em;text-transform:uppercase;color:#f0f2f5}
#device-host .rw-bag-slots{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
#device-host .rw-bag-slot{position:relative;aspect-ratio:1;max-width:100%;border-radius:12px;background:radial-gradient(80% 80% at 50% 35%,#ffffff0f,transparent 70%),#111216;border:1px solid #ffffff12;display:grid;place-items:center;overflow:visible}
#device-host .rw-bag-slot img,#device-host .rw-bag-slot .pd-shard{width:72%!important;height:72%!important}
#device-host .rw-bag-slot>small{position:absolute;font:700 10px/12px var(--pd-font,'Play',sans-serif);color:#e9ebef;font-variant-numeric:tabular-nums;text-shadow:0 1px 2px #000;white-space:nowrap}
#device-host .rw-bag-slot>small.q{left:5px;top:3px}
#device-host .rw-bag-slot>small.t{left:50%;bottom:-6px;transform:translateX(-50%);padding:0 5px;border-radius:6px;background:#1c1d22;border:1px solid #ffffff1a;color:#cfd3da;font-size:9px;line-height:12px}
#device-host .rw-bag-slot.is-soon{border-color:#ffb15a66}
#device-host .rw-bag-slot.is-soon>small.t{color:#ffb15a;border-color:#ffb15a66}
#device-host .rw-bag-slots{padding-bottom:4px}
#device-host .rw-bag-slot.is-new{border-color:#d71921;box-shadow:0 0 0 1px #d7192155,0 0 14px #d7192140}
#device-host .rw-bag-slot.is-new::after{content:"";position:absolute;top:-3px;right:-3px;width:9px;height:9px;border-radius:50%;background:#d71921;box-shadow:0 0 0 2px var(--pd-surface,#141418)}
#device-host .rw-bag-slot.is-empty{background:transparent;border:1px dashed #ffffff14}
#device-host .rw-bag-slot.is-more{font:700 14px/1 var(--pd-font,'Play',sans-serif);color:#cfd3da}
#device-host .rw-bag-facts{display:flex;flex-wrap:wrap;gap:4px 12px;font:600 12px/16px var(--pd-font,'Play',sans-serif);color:#9aa0aa}
#device-host .rw-bag-facts>span{display:inline-flex;align-items:center;gap:6px}
#device-host .rw-bag-facts>.is-new{color:#ff5a62}
#device-host .rw-bag-facts>.is-new::before{content:"";width:6px;height:6px;border-radius:50%;background:#d71921}
/* w124: знак PokerDot на корешке билета */
#device-host .pd-tk-logo{display:block;width:30px;height:30px;filter:drop-shadow(0 0 6px #ffffff2e)}
/* w127: группы билетов с разделителями, как секции лидербордов */
#device-host .pd-tk-sec{gap:10px}
#device-host .pd-tk-sec+.pd-tk-sec{margin-top:14px}
/* w128: билет в цвете своей группы (--cp-tone секции): свечение из правого верхнего угла и точки, как у карточек лидербордов,
   корешок, перфорация, вырезы и знак — в том же тоне; «Использовать» остаётся красным */
#device-host .pd-tk-sec .pd-tk-card{border-color:color-mix(in srgb,var(--cp-tone) 26%,#ffffff12);background:radial-gradient(120% 150% at 100% 0%,color-mix(in srgb,var(--cp-tone) 15%,transparent),transparent 58%),linear-gradient(145deg,#121418,#0b0d10 78%);box-shadow:inset 0 1px 0 color-mix(in srgb,var(--cp-tone) 16%,transparent),0 8px 24px #0006}
#device-host .pd-tk-sec .pd-tk-card::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle,color-mix(in srgb,var(--cp-tone) 55%,transparent) 1px,transparent 1.7px);background-size:9px 9px;-webkit-mask-image:radial-gradient(70% 90% at 100% 0%,#000,transparent 70%);mask-image:radial-gradient(70% 90% at 100% 0%,#000,transparent 70%);opacity:.5}
#device-host .pd-tk-sec .pd-tk-stub,#device-host .pd-tk-sec .pd-tk-main{position:relative;z-index:1}
#device-host .pd-tk-sec .pd-tk-stub{background:radial-gradient(circle at 50% 42%,color-mix(in srgb,var(--cp-tone) 24%,transparent),color-mix(in srgb,var(--cp-tone) 6%,transparent) 72%)}
#device-host .pd-tk-sec .pd-tk-perf{border-left-color:color-mix(in srgb,var(--cp-tone) 38%,transparent)}
#device-host .pd-tk-sec .pd-tk-notch{border-color:color-mix(in srgb,var(--cp-tone) 34%,transparent)}
#device-host .pd-tk-sec .pd-tk-logo{filter:drop-shadow(0 0 9px color-mix(in srgb,var(--cp-tone) 60%,transparent))}
#device-host .pd-tk-sec .pd-tk-value b{color:color-mix(in srgb,var(--cp-tone) 85%,#fff)}
#device-host .pd-tk-sec .pd-tk-foot{border-top-color:color-mix(in srgb,var(--cp-tone) 14%,#ffffff0d)}
#device-host .pd-tk-sec .pd-tk:active .pd-tk-card{border-color:color-mix(in srgb,var(--cp-tone) 55%,transparent)}
/* w129: нейтральный счётчик в строке кошелька (сколько билетов) */
#device-host .pd-wl-count.is-muted{background:#ffffff14;color:#e9ebef;box-shadow:inset 0 0 0 1px #ffffff12}
/* w131: отрыв корешка при регистрации билетом (шторка оплаты турнира, лобби Spin & Win) */
#device-host .pd-tk-tear{position:absolute;inset:0;z-index:200;display:flex;flex-direction:column;background:radial-gradient(ellipse 90% 60% at 50% 0%,#d7192122,transparent 62%),#0a0a0c}
#device-host .pd-tk-tear-x{position:absolute;top:calc(env(safe-area-inset-top,0px) + 14px);left:16px;z-index:3;width:40px;height:40px;border-radius:12px;border:1px solid #ffffff24;background:#ffffff0a;color:#e9ebef;display:grid;place-items:center;cursor:pointer}
/* w131: выбор оплаты в лобби Spin & Win — билет первым */
#device-host .sw-pay{display:grid;grid-template-columns:auto 1fr 1fr;align-items:center;gap:8px;margin:0 0 12px}
#device-host .sw-pay-cap{font:700 11px/14px var(--pd-font,'Play',sans-serif);letter-spacing:.12em;text-transform:uppercase;color:#8e95a1}
#device-host .sw-pay-opt{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:9px 12px;border-radius:12px;border:1.5px solid #ffffff1f;background:#14161b;color:#d8d8df;cursor:pointer;font-family:var(--pd-font,'Play',sans-serif)}
#device-host .sw-pay-opt b{font:700 13px/16px var(--pd-font,'Play',sans-serif)}
#device-host .sw-pay-opt small{font:600 12px/16px var(--pd-font,'Play',sans-serif);color:#8e95a1;font-variant-numeric:tabular-nums}
#device-host .sw-pay-opt.is-on{border-color:#A47BFF;background:#1a1524;color:#fff}
#device-host .sw-pay-opt.is-on small{color:#cdb8ff}
/* w139, Вадим 02.11: сквозное правило «новое» — красная точка у названия строки/блока и на разделе в нижнем меню;
   счётчики серые и показывают только количество */
#device-host .pd-new-dot{display:inline-block;flex:none;width:8px;height:8px;margin-left:8px;border-radius:50%;background:#ff3b44;vertical-align:middle;box-shadow:0 0 6px #ff3b4488}
#device-host .ps-count.is-muted{background:#242830!important;color:#e1e5eb!important;border-radius:7px!important}
/* w140: точка «новое» на аватарке в «Настройках» и на вкладках редактора аватара */
#device-host .ps-identity .ps-avatar-new{position:absolute;top:0;right:0;z-index:8;margin:0;width:11px;height:11px;box-shadow:0 0 0 2px #0b0d10,0 0 8px #ff3b4488}
#device-host .pd-avatar-tabs .pd-new-dot{width:7px;height:7px;margin-left:6px}
