/* pvp.css — 5.5: «Бой планами» (pvp.js). Анимации — только transform / opacity */

.pvp-ov{ position:fixed; inset:0; z-index:2147483200; display:none; background:rgba(5,8,20,.72); }
.pvp-ov.on{ display:flex; justify-content:center; animation:pv-fade .18s ease; }
@keyframes pv-fade{ from{ opacity:0; } }
.pv-box{ box-sizing:border-box; position:relative; width:100%; max-width:450px; height:100%; display:flex; flex-direction:column; color:#fff; overflow:hidden;
  padding:calc(var(--pf-safe-top, 0px) + 8px) 0 calc(var(--pf-safe-bottom, 0px) + 6px);
  background:radial-gradient(120% 70% at 50% 0%,#2a2350 0%,#151a30 55%,#0f1226 100%); }
.pv-top{ display:flex; align-items:center; gap:8px; padding:2px 14px 0; }
.pv-top > div{ flex:1; min-width:0; }
.pv-top h2{ margin:0; font-size:19px; font-weight:900; display:flex; align-items:center; gap:8px; }
.pv-top small{ display:block; color:#a9adc9; font-weight:800; font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pv-chip{ font-style:normal; font-size:10.5px; font-weight:900; padding:2px 7px; border-radius:999px; background:rgba(255,255,255,.12); color:#c9cde6; text-transform:uppercase; letter-spacing:.04em; }
.pv-x, .pv-q{ flex:none; width:36px; height:36px; border:0; border-radius:12px; background:rgba(255,255,255,.08); color:#fff; font:inherit; font-weight:900; font-size:16px; cursor:pointer; }
.pv-view{ flex:1; min-height:0; display:flex; flex-direction:column; }
.pv-emp{ margin:auto; color:#a9adc9; font-weight:800; }
.pv-aic{ width:1.2em; height:1.2em; object-fit:contain; vertical-align:-.25em; }
.pv-zz{ font-size:1em; }

/* набег */
.pv-pin{ display:flow-root; margin:0; flex:none; }
/* лишнее место (высокий экран) — треть сверху, две трети над кнопкой */
.pv-pick::before{ content:''; flex:1 1 0; } .pv-pick::after{ content:''; flex:2 1 0; }
.pv-pick{ flex:1; min-height:0; display:flex; flex-direction:column; overflow-y:auto; padding:2px 14px 6px; -webkit-overflow-scrolling:touch; }
.pv-sec{ font-weight:900; font-size:14px; margin:10px 2px 6px; }
.pv-pin > .pv-sec:first-child{ margin-top:4px; }
.pv-sec[hidden], .pv-tgts[hidden]{ display:none; }
.pv-tgts{ display:flex; justify-content:center; gap:6px; } .pv-tgts .pv-tg{ flex:0 1 64px; min-width:0; }
.pv-tg{ position:relative; aspect-ratio:1; border:0; border-radius:12px; padding:2px; cursor:pointer; opacity:.55; background:rgba(255,255,255,.06);
  box-shadow:inset 0 0 0 1.5px color-mix(in srgb, var(--rarity-color, #9aa3b8) 55%, transparent); }
.pv-tg.on{ opacity:1; box-shadow:inset 0 0 0 2.5px var(--rarity-color, #fff), 0 0 12px color-mix(in srgb, var(--rarity-color, #fff) 45%, transparent); }
.pv-tg img{ width:100%; height:100%; object-fit:contain; }
.pv-tg span{ position:absolute; top:2px; left:4px; font-size:9px; color:#ffe17a; text-shadow:0 1px 2px #000; }
.pv-duel{ display:flex; align-items:center; justify-content:center; gap:6px; margin-top:10px; }
.pv-tgts[hidden] + .pv-duel{ margin-top:4px; }
.pv-vs{ flex:none; width:34px; text-align:center; }
.pv-ds{ display:flex; flex-direction:column; align-items:center; gap:4px; cursor:pointer; min-width:0; }
.pv-ds small{ font-size:11px; font-weight:800; color:#a9adc9; }
.pv-vs{ font-size:26px; font-weight:900; color:#ffc83c; text-shadow:0 2px 0 #a15c00; }
.pv-fora{ text-align:center; font-weight:900; font-size:13.5px; margin:8px 0 0; }
.pv-fora.g{ color:#86efac; } .pv-fora.y{ color:#fde68a; } .pv-fora.r{ color:#fca5a5; }
.pv-plan{ display:grid; grid-template-columns:repeat(5,1fr); gap:6px; }
.pv-cd{ height:52px; border-radius:12px; display:grid; place-items:center; font-size:20px; color:#a9adc9; background:rgba(255,255,255,.06); cursor:pointer; }
.pv-cd.e{ border:1.5px dashed rgba(255,255,255,.18); }
.pv-cd .pv-aic{ width:40px; height:40px; }
.pv-pal{ display:grid; grid-template-columns:repeat(4,1fr); gap:6px; margin-top:8px; }
.pv-pal button{ border:0; border-radius:14px; padding:6px 6px; background:#232c4b; color:#fff; font:inherit; font-weight:900; font-size:12px; cursor:pointer;
  display:flex; flex-direction:row; align-items:center; justify-content:center; gap:6px; min-width:0; }
.pv-pal button .pv-aic{ flex:none; width:32px; height:32px; vertical-align:0; }
.pv-pal button small{ font-size:12.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; }
.pv-pal button:disabled{ opacity:.35; }
.pv-pal button:active:not(:disabled){ transform:scale(.95); }
.pv-warn{ margin-top:6px; text-align:center; color:#fca5a5; font-weight:800; font-size:12px; }
.pv-foot{ display:flex; gap:8px; padding:8px 14px 6px; }
.pv-btn{ flex:1; border:0; border-radius:16px; padding:14px 10px; font:inherit; font-weight:900; font-size:16px; color:#fff; cursor:pointer;
  background:linear-gradient(180deg,#ef4444,#b91c1c); box-shadow:0 6px 16px rgba(185,28,28,.35); }
.pv-btn:disabled{ opacity:.45; box-shadow:none; }
.pv-btn.ghost{ flex:0 0 72px; background:rgba(255,255,255,.08); box-shadow:none; }
.pv-btn.blue{ background:linear-gradient(180deg,#5aa8ff,#2563eb); box-shadow:none; }

/* карточка — как на ферме (inventory.css .farm-pigeon), но вся от --cw (ширина под экран считает pvp.js → fitCards) */
.pvp-ov{ --cw:146px; }
.pv-cw{ position:relative; will-change:transform; }
.pvp-ov .farm-pigeon.pv-card{ box-sizing:border-box; width:var(--cw); margin:0; padding:calc(var(--cw) * .07) calc(var(--cw) * .07) calc(var(--cw) * .075);
  border-radius:calc(var(--cw) * .1); pointer-events:none; }
.pvp-ov .farm-pigeon.pv-card img{ width:100%; height:auto; aspect-ratio:1; object-fit:contain; margin:0 auto calc(var(--cw) * .03); }
.pvp-ov .farm-pigeon.pv-card img.pv-ic{ display:inline-block; vertical-align:-.2em; width:1.15em; height:1.15em; aspect-ratio:auto; margin:0 .1em 0 0; } /* значки урона / здоровья — не как картинка голубя */
.pvp-ov .farm-pigeon.pv-card h3{ margin:0 0 calc(var(--cw) * .02); font-size:calc(var(--cw) * .092); line-height:1.2; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pvp-ov .farm-pigeon.pv-card p.card-stars{ margin:0 auto; font-size:calc(var(--cw) * .085); line-height:1.5; padding:0 calc(var(--cw) * .06); }
/* без звёзд — пустое место той же высоты: карточки соперников одного размера */
.pvp-ov .farm-pigeon.pv-card .pv-nost{ visibility:hidden; }
.pv-fs{ display:flex; justify-content:center; align-items:center; gap:calc(var(--cw) * .045); font-size:calc(var(--cw) * .1); font-weight:900; margin-top:calc(var(--cw) * .03); text-shadow:0 1px 2px rgba(0,0,0,.5); white-space:nowrap; }
.pv-cls{ display:inline-grid; place-items:center; width:1.45em; height:1.45em; padding:0; line-height:0; border-radius:.35em; background:rgba(0,0,0,.25); box-sizing:border-box; flex:none; }
.pv-clsi{ width:1.15em; height:1.15em; object-fit:contain; display:block; margin:0; border-radius:.25em; }
.pv-bcl .pv-clsi{ display:inline-block; width:1.25em; height:1.25em; vertical-align:-.3em; margin-right:.3em; }

/* низкий экран (SE, Mini): план и кнопки плотнее, чтобы карточкам осталось место */
@media (max-height: 700px){
  .pv-sec{ margin:6px 2px 4px; font-size:13px; }
  .pv-tgts .pv-tg{ flex-basis:52px; }
  .pv-cd{ height:44px; } .pv-cd .pv-aic{ width:32px; height:32px; }
  .pv-pal button{ padding:4px 6px; } .pv-pal button .pv-aic{ width:28px; height:28px; }
  .pv-btn{ padding:11px 10px; font-size:15px; }
  .pv-fora{ margin-top:4px; font-size:12.5px; }
}

/* арена */
.pv-arena{ will-change:transform; flex:1; min-height:0; display:flex; flex-direction:column; justify-content:center; padding:4px 14px; position:relative; }
.pv-arin{ display:flex; flex-direction:column; gap:8px; }
.pv-side{ display:flex; flex-direction:column; align-items:center; gap:6px; position:relative; }
.pv-side.me{ z-index:2; } .pv-side.en{ z-index:1; } .pv-side.bump{ z-index:7; }
.pv-cwrap{ position:relative; }
.pv-hp{ width:min(100%, calc(var(--cw) + 60px)); flex:none; height:22px; border-radius:999px; background:#2a1d2a; position:relative; overflow:hidden; box-shadow:inset 0 0 0 2px #0b0e1c; }
.pv-hp i{ position:absolute; inset:0; transform-origin:left; transition:transform .35s ease-out; }
.pv-hp i.lag{ background:#fff; opacity:.5; transition:transform .7s .25s ease-out; }
.pv-hp.me i.v{ background:linear-gradient(180deg,#9cf26a,#3fae1d); } .pv-hp.en i.v{ background:linear-gradient(180deg,#ff8a7a,#d92b2b); }
.pv-hp b{ position:relative; z-index:2; display:block; text-align:center; font-size:13px; line-height:22px; text-shadow:0 1px 2px #000; }
.pv-mid{ display:flex; flex-direction:column; align-items:center; gap:6px; position:relative; z-index:3; }
.pv-dots{ display:flex; gap:7px; } .pv-dots i{ width:12px; height:12px; border-radius:50%; background:#2b3157; }
.pv-dots i.cur{ background:#fff; } .pv-dots i.w{ background:#22c55e; } .pv-dots i.l{ background:#ef4444; } .pv-dots i.n{ background:#64748b; }
.pv-ban{ will-change:transform; font-size:16px; font-weight:900; text-align:center; padding:7px 14px; border-radius:18px; background:rgba(0,0,0,.4); min-height:50px; box-sizing:border-box; display:flex; flex-direction:column; justify-content:center; align-items:center; }
.pv-ban.g{ color:#86efac; background:rgba(20,83,45,.75); } .pv-ban.r{ color:#fecaca; background:rgba(127,29,29,.75); } .pv-ban.n{ color:#e2e8f0; background:rgba(51,65,85,.75); }
.pv-abg{ will-change:transform, opacity; position:absolute; top:50%; width:70px; margin-top:-40px; display:flex; flex-direction:column; align-items:center; opacity:0; transform:scale(.4); transition:opacity .15s, transform .15s; z-index:4; pointer-events:none; }
.pv-abg.on{ opacity:1; transform:none; } .pv-abg.me{ left:-80px; } .pv-abg.en{ right:-80px; }
.pv-abg span .pv-aic, .pv-abg span .pv-zz{ width:58px; height:58px; font-size:44px; filter:drop-shadow(0 4px 8px rgba(0,0,0,.6)); }
.pv-abg small{ font-size:10px; font-weight:900; background:rgba(0,0,0,.7); border-radius:6px; padding:0 4px; margin-top:-4px; white-space:nowrap; }
.pv-side.dead .farm-pigeon{ filter:grayscale(1) brightness(.55); }
.pv-side.dead .pv-cw{ animation:pv-die .5s ease-in forwards; } @keyframes pv-die{ to{ transform:translateY(16px) rotate(-6deg); opacity:0; } }

/* пока идёт удар — перелив / искры редкости внутри карточек на паузе (у карточек скругление и обрезка — на iPhone это дорого) */
.pv-arena.busy .pv-card *{ animation-play-state:paused !important; }
.pv-fx > *{ will-change:transform, opacity; }

/* эффекты удара (движения карточек — Web Animations в pvp.js → slam) */
.pv-fx{ position:absolute; left:50%; top:50%; pointer-events:none; z-index:5; }
.pv-boom{ width:120px; height:120px; margin:-60px 0 0 -60px; animation:pv-boom .38s ease-out forwards; }
@keyframes pv-boom{ 0%{ transform:scale(.3); opacity:1; } 60%{ transform:scale(1.1) rotate(12deg); opacity:1; } 100%{ transform:scale(1.25) rotate(16deg); opacity:0; } }
.pv-claw{ width:130px; height:130px; margin:-65px 0 0 -65px; animation:pv-claw .45s ease-out forwards; }
@keyframes pv-claw{ 0%{ transform:scale(.6) rotate(-10deg); opacity:0; } 30%{ opacity:1; } 100%{ transform:scale(1.1); opacity:0; } }
.pv-ring{ width:40px; height:40px; margin:-20px 0 0 -20px; border-radius:50%; border:6px solid #fff; animation:pv-ring .4s ease-out forwards; }
@keyframes pv-ring{ 0%{ transform:scale(.4); opacity:.95; } 100%{ transform:scale(4.2); opacity:0; } }
.pv-fth{ width:14px; height:7px; margin:-3px 0 0 -7px; border-radius:50%; background:#f3f4ff; animation:pv-fth .7s cubic-bezier(.15,.7,.3,1) forwards; }
@keyframes pv-fth{ 0%{ transform:translate(0,0); opacity:1; } 100%{ transform:translate(var(--x),var(--y)) rotate(var(--r)); opacity:0; } }
/* 5.5: число урона «впечатывается» по центру и стоит на месте; толстая тёмная обводка — читается на любой карточке */
.pv-dmg{ font-size:46px; font-weight:900; line-height:1; color:#fff; -webkit-text-stroke:7px #160b1c; paint-order:stroke fill; text-shadow:0 5px 0 rgba(0,0,0,.45); white-space:nowrap; letter-spacing:-.01em; animation:pv-dmg 1.3s cubic-bezier(.2,.9,.3,1) forwards; }
.pv-dmg.me{ color:#ff5a5a; }
.pv-dmg.crit{ font-size:60px; }
.pv-dmg.heal{ color:#5ee98d; font-size:40px; }
.pv-fx:has(.pv-dmg){ z-index:7; }
.pv-hpd{ position:absolute; right:9px; top:0; z-index:3; font-style:normal; font-size:12.5px; font-weight:900; line-height:22px; color:#fff; text-shadow:0 1px 2px #000; }
.pv-hpd.me{ color:#ffc9c9; } .pv-hpd.heal{ color:#b9f8cf; }
@keyframes pv-dmg{ 0%{ transform:translate(-50%,-50%) scale(2.4); opacity:0; } 9%{ transform:translate(-50%,-50%) scale(.88); opacity:1; } 16%{ transform:translate(-50%,-50%) scale(1.08); } 24%{ transform:translate(-50%,-50%) scale(1); } 82%{ transform:translate(-50%,-50%) scale(1); opacity:1; } 100%{ transform:translate(-50%,-50%) scale(.94); opacity:0; } }
.pv-ko{ font-size:64px; font-weight:900; color:#fff; -webkit-text-stroke:3px #c81e1e; paint-order:stroke; text-shadow:0 5px 0 #7a0d06; animation:pv-ko .9s cubic-bezier(.2,1.6,.4,1) forwards; }
@keyframes pv-ko{ 0%{ transform:translate(-50%,-50%) scale(3) rotate(-12deg); opacity:0; } 35%{ transform:translate(-50%,-50%) scale(1) rotate(-8deg); opacity:1; } 80%{ opacity:1; } 100%{ transform:translate(-50%,-50%) scale(1) rotate(-8deg); opacity:0; } }

/* итог и правила */
.pv-res{ position:absolute; inset:0; z-index:20; display:none; align-items:center; justify-content:center; padding:24px; background:rgba(6,8,18,.98); }
.pv-res.on{ display:flex; animation:pv-fade .3s ease-out; }
.pv-end{ width:100%; max-width:320px; text-align:center; display:flex; flex-direction:column; align-items:center; gap:4px; }
.pv-endico{ width:72px; height:72px; border-radius:16px; display:block; margin:0 auto 6px; } .pv-end h3{ font-size:28px; margin:4px 0; font-weight:900; } .pv-end h3.g{ color:#86efac; } .pv-end h3.r{ color:#fca5a5; }
.pv-end p{ margin:2px 0; color:#c9cde6; font-weight:700; }
.pv-cmp{ width:100%; margin-top:8px; text-align:left; }
.pv-cmp div{ display:flex; justify-content:space-between; align-items:center; gap:8px; font-size:13px; padding:6px 2px; border-bottom:1px dashed rgba(255,255,255,.1); }
.pv-cmp span{ color:#a9adc9; font-weight:700; } .pv-cmp .pv-aic{ width:22px; height:22px; }
.pv-note{ color:#8a90b3; font-weight:700; font-size:11.5px; margin-top:6px; }
.pv-end .pv-btn, .pv-hlp .pv-btn{ width:100%; flex:none; margin-top:10px; }
.pv-hlp{ width:100%; max-width:330px; }
.pv-hlp h3{ text-align:center; font-size:19px; margin:0 0 10px; }
.pv-hr{ background:#1c243e; border-radius:12px; padding:10px 12px; margin-bottom:6px; font-size:15px; font-weight:700; }
.pv-hr.n{ color:#c9cde6; font-size:13px; }
.pv-hlp p{ font-size:12.5px; color:#a9adc9; font-weight:700; margin:8px 0 0; line-height:1.45; }
body.less-motion .pvp-ov *{ animation-duration:.01s !important; }

/* 5.5: живой бой — палитра из 3 действий, предупреждение о штрафе, итог */
.pv-pal.n3{ grid-template-columns:repeat(3,1fr); }
.pv-risk{ margin-top:8px; text-align:center; color:#fcd34d; font-weight:800; font-size:12px; }
.pv-extra{ color:#fcd34d !important; font-weight:900 !important; }

/* 5.5: шаблоны защиты (окно «Защита» → «⚔️ Защита в бою») */
.pv-tsub{ margin:4px 2px 10px; color:#c9cde6; font-weight:700; font-size:13px; line-height:1.35; }
.pv-trow{ display:flex; align-items:center; gap:8px; padding:8px; margin-bottom:8px; border-radius:14px; background:rgba(255,255,255,.05); box-shadow:inset 0 0 0 1.5px transparent; cursor:pointer; }
.pv-trow.on{ box-shadow:inset 0 0 0 2px #ffd35a; }
.pv-trow > span{ flex:0 0 52px; font-weight:900; font-size:12px; color:#c9cde6; }
.pv-trow .pv-plan{ flex:1; gap:4px; }
.pv-trow .pv-cd{ height:40px; } .pv-trow .pv-cd .pv-aic{ width:30px; height:30px; }
.pv-tdel{ flex:none; width:30px; height:30px; border:0; border-radius:10px; background:rgba(255,255,255,.08); color:#fca5a5; font:inherit; font-weight:900; cursor:pointer; }
.pv-tadd{ width:100%; margin:2px 0 6px; }
.pv-tpl .pv-pin{ margin:0; } .pv-tpl .pv-pick::before, .pv-tpl .pv-pick::after{ display:none; } /* шаблоны — сверху */
/* 5.5: способность — ползунок ⭐ под планом (тянешь — выбираешь раунд) и описание под палитрой */
.pv-sld{ position:relative; height:30px; margin-top:2px; touch-action:none; cursor:grab; user-select:none; -webkit-user-select:none; }
.pv-sld-tr{ position:absolute; left:10%; right:10%; top:50%; height:4px; margin-top:-2px; border-radius:99px; background:rgba(255,211,90,.22); display:flex; justify-content:space-between; align-items:center; }
.pv-sld-tr i{ width:8px; height:8px; margin:0 -4px; border-radius:50%; background:rgba(255,211,90,.45); }
.pv-sld-k{ position:absolute; left:0; top:0; bottom:0; width:20%; display:grid; place-items:center; pointer-events:none; transition:transform .18s cubic-bezier(.3,1.4,.5,1); }
.pv-sld-k.drag{ transition:none; }
.pv-sld.off{ visibility:hidden; pointer-events:none; }
.pv-sld-k b{ width:30px; height:30px; border-radius:50%; display:grid; place-items:center; font-size:18px; font-weight:900; color:#7a4300; background:#ffd35a; box-shadow:0 2px 8px rgba(255,190,40,.5), inset 0 -2px 0 rgba(0,0,0,.18); }
.pv-sld-k.drag b{ transform:scale(1.15); }
.pv-sld.sm{ height:24px; margin-top:3px; } .pv-sld.sm .pv-sld-k b{ width:24px; height:24px; font-size:13px; }
.pv-ab{ margin-top:8px; padding:7px 10px; border-radius:12px; background:rgba(255,255,255,.05); box-shadow:inset 0 0 0 1px rgba(255,255,255,.1); cursor:pointer; }
.pv-ab b{ color:#fff; font-weight:900; font-size:13px; }
.pv-ab small{ float:right; margin-top:1px; font-size:11px; font-weight:800; color:#a9adc9; }
.pv-ab b.no{ color:#a9adc9; }
.pv-ab p{ margin:3px 0 0; font-size:12px; line-height:1.3; min-height:2.6em; color:#d4d7ec; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
.pv-ab.full p{ -webkit-line-clamp:unset; display:block; }
.pv-cd.ab{ position:relative; box-shadow:inset 0 0 0 2px #ffd35a; }
.pv-tcol{ flex:1; min-width:0; } .pv-tcol .pv-plan{ gap:4px; }
.pv-tsub.sm{ font-size:11.5px; margin:10px 2px 8px; }
/* 5.5: способность сработала — плашка над карточкой; под итогом раунда — нанёс / получил */
.pv-apop{ position:absolute; left:50%; top:30%; z-index:6; pointer-events:none; display:flex; flex-direction:column; align-items:center; gap:2px; padding:7px 14px 8px; border-radius:14px; white-space:nowrap;
  background:linear-gradient(180deg,#ffe27a,#f5b300); color:#3d2500; box-shadow:0 6px 20px rgba(255,190,40,.55), inset 0 -2px 0 rgba(0,0,0,.15); animation:pv-apop 1.6s cubic-bezier(.2,1.4,.4,1) forwards; }
.pv-apop b{ font-size:16px; font-weight:900; } .pv-apop small{ font-size:12.5px; font-weight:800; }
.pv-apop.miss{ background:linear-gradient(180deg,#6b7280,#4b5563); color:#e5e7eb; box-shadow:0 4px 12px rgba(0,0,0,.4); }
@keyframes pv-apop{ 0%{ transform:translate(-50%,-50%) scale(.3); opacity:0; } 14%{ transform:translate(-50%,-50%) scale(1.08); opacity:1; } 24%{ transform:translate(-50%,-50%) scale(1); } 82%{ opacity:1; transform:translate(-50%,-56%); } 100%{ opacity:0; transform:translate(-50%,-70%); } }
.pv-apop.hold{ animation:none; opacity:1; transform:translate(-50%,-50%); } /* обучение: плашка способности стоит, пока Дед объясняет */
.pv-ban .pv-bsub{ display:block; font-size:11.5px; font-weight:800; opacity:.85; margin-top:1px; }
/* иконка способности (assets/pvp/act_A.webp) в тексте, ползунке, плашках */
.pv-star{ width:1.25em; height:1.25em; object-fit:contain; vertical-align:-.28em; margin-right:.12em; border-radius:.25em; }
.pv-sld-k b .pv-star{ width:26px; height:26px; margin:0; vertical-align:0; }
.pv-sld-k b{ background:none !important; box-shadow:0 3px 10px rgba(255,170,30,.55) !important; border-radius:8px !important; }
.pv-sld.sm .pv-sld-k b .pv-star{ width:22px; height:22px; }
.pv-apop .pv-star{ width:20px; height:20px; vertical-align:-4px; }
/* 5.5: оборот карточки в окне набега (тап — перевернуть): сила, здоровье, класс, способность */
.pv-cw.has-back{ pointer-events:auto; cursor:pointer; }
.pv-back{ display:none; box-sizing:border-box; width:var(--cw); border-radius:calc(var(--cw) * .1); padding:calc(var(--cw) * .07);
  flex-direction:column; gap:calc(var(--cw) * .035); text-align:left; font-size:calc(var(--cw) * .072); line-height:1.25; color:#fff; overflow:hidden;
  background:linear-gradient(160deg, color-mix(in srgb, var(--rarity-color, #9aa3b8) 40%, #1b2140), #141a33 70%);
  box-shadow:inset 0 0 0 calc(var(--cw) * .018) color-mix(in srgb, var(--rarity-color, #9aa3b8) 80%, transparent); }
.pv-cw.flipped .pv-back{ display:flex; } .pv-cw.flipped .pv-card, .pv-cw.flipped .pv-fl{ display:none; }
.pv-bn{ font-size:1.25em; font-weight:900; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } .pv-bn i{ font-style:normal; color:#ffd35a; font-size:.8em; }
.pv-bcl{ font-weight:900; } .pv-bcl small{ display:block; font-weight:700; font-size:.85em; color:#c9cde6; }
.pv-bst{ display:flex; justify-content:space-between; align-items:center; padding:.25em .45em; border-radius:.5em; background:rgba(0,0,0,.28); }
.pv-bst span{ color:#c9cde6; font-weight:800; } .pv-bst b{ font-size:1.2em; font-weight:900; }
.pv-bab{ flex:1; min-height:0; padding:.35em .45em; border-radius:.5em; background:rgba(255,255,255,.06); box-shadow:inset 0 0 0 1px rgba(255,255,255,.12); overflow:hidden; }
.pv-bab b{ color:#fff; font-weight:900; } .pv-bab p{ margin:.2em 0 0; font-size:.9em; color:#e5e7f5; }
.pv-bab small{ display:block; margin-top:.2em; font-size:.8em; color:#a9adc9; font-weight:700; }
.pv-bab.no{ background:rgba(255,255,255,.06); box-shadow:none; } .pv-bab.no b{ color:#c9cde6; }
.pv-bab .pv-star{ width:1.2em; height:1.2em; }
.pv-bh{ text-align:center; font-size:.8em; color:#a9adc9; font-weight:700; }
.pv-fl{ position:absolute; top:calc(var(--cw) * .04); right:calc(var(--cw) * .04); z-index:3; width:calc(var(--cw) * .16); height:calc(var(--cw) * .16); border-radius:50%;
  display:grid; place-items:center; font-style:normal; font-weight:900; font-size:calc(var(--cw) * .1); color:#fff; background:rgba(0,0,0,.35); pointer-events:none; }
.pv-next{ border:0; border-radius:10px; padding:4px 10px; font:inherit; font-size:11.5px; font-weight:900; color:#fff; background:rgba(255,255,255,.1); cursor:pointer; }

/* значок действия в бою: способность в этом раунде — иконка на углу (золото — сработала, серая с ✕ — нет) и подпись */
.pv-abg span{ position:relative; display:block; }
.pv-abm{ position:absolute; right:-8px; top:-8px; width:28px; height:28px; display:block; border-radius:8px; }
.pv-abm .pv-star{ width:28px !important; height:28px !important; margin:0 !important; vertical-align:0 !important; }
.pv-abm.ok{ box-shadow:0 0 0 2px #ffd35a, 0 0 14px rgba(255,200,40,.8); }
.pv-abm.no .pv-star{ filter:grayscale(1) brightness(.75); }
.pv-abm.no::after{ content:'✕'; position:absolute; inset:0; display:grid; place-items:center; color:#ff4d4f; font-weight:900; font-size:22px; text-shadow:0 1px 2px #000; }
.pv-abl{ display:block; margin-top:3px; font-style:normal; font-size:9.5px; font-weight:900; line-height:1.15; text-align:center; padding:1px 5px; border-radius:6px; max-width:86px; }
.pv-abl.ok{ background:#ffd35a; color:#3d2500; } .pv-abl.no{ background:#4b5563; color:#e5e7eb; }

/* итог боя по раундам */
.pv-res{ overflow-y:auto; align-items:safe center; }
.pv-log{ width:100%; margin-top:8px; text-align:left; font-size:12px; }
.pv-logh{ color:#e2e8f0; font-weight:900; font-size:13px; padding:0 2px 4px; } .pv-logh small{ color:#a9adc9; font-weight:700; font-size:11px; margin-left:4px; }
.pv-lr{ padding:5px 2px; border-bottom:1px dashed rgba(255,255,255,.1); }
.pv-lrow{ display:flex; align-items:center; gap:8px; }
.pv-rnum{ font-style:normal; width:16px; color:#a9adc9; font-weight:900; }
.pv-ra{ position:relative; display:inline-block; } .pv-ra .pv-aic, .pv-ra .pv-zz{ width:28px; height:28px; font-size:22px; }
.pv-ra .pv-abm{ width:16px; height:16px; right:-6px; top:-6px; border-radius:5px; }
.pv-ra .pv-abm .pv-star{ width:16px !important; height:16px !important; } .pv-ra .pv-abm.no::after{ font-size:13px; }
.pv-rres{ width:20px; text-align:center; font-weight:900; } .pv-rres.g{ color:#86efac; } .pv-rres.r{ color:#fca5a5; } .pv-rres.n{ color:#cbd5e1; }
.pv-lrow em{ margin-left:auto; font-style:normal; font-weight:800; color:#e2e8f0; white-space:nowrap; }
.pv-rn{ margin:3px 0 0 24px; font-size:11.5px; line-height:1.3; color:#e5e7f5; } .pv-rn b{ color:#ffd35a; } .pv-rn span{ color:#a9adc9; }
.pv-rn.no{ color:#a9adc9; } .pv-rn.no b{ color:#cbd5e1; } .pv-rn.no .pv-star{ filter:grayscale(1); }
.pv-rn .pv-star{ width:15px; height:15px; vertical-align:-3px; }
/* иконка класса на карточке: правило картинки голубя (.pv-card img — ширина 100%, отступ снизу) её не трогает */
.pvp-ov .farm-pigeon.pv-card .pv-cls img.pv-clsi{ width:1.15em; height:1.15em; margin:0; aspect-ratio:auto; }
/* 5.5: выбор бойца списком (кнопка «⇄ Выбрать бойца»): лист поверх окна набега */
.pv-pick-sheet{ position:absolute; inset:0; z-index:25; display:flex; align-items:flex-end; background:rgba(5,8,20,.6); animation:pv-fade .15s ease; }
.pv-ps{ width:100%; max-height:78%; display:flex; flex-direction:column; border-radius:20px 20px 0 0; background:#171d36; padding:12px 12px calc(var(--pf-safe-bottom, 0px) + 10px);
  box-shadow:0 -10px 30px rgba(0,0,0,.45); animation:pv-up .22s cubic-bezier(.2,.9,.3,1); }
@keyframes pv-up{ from{ transform:translateY(40px); opacity:0; } }
.pv-psh{ display:flex; align-items:flex-start; gap:8px; padding:0 2px 8px; } .pv-psh > div{ flex:1; }
.pv-psh b{ display:block; font-size:17px; font-weight:900; } .pv-psh small{ font-size:11.5px; color:#a9adc9; font-weight:700; }
.pv-psl{ overflow-y:auto; -webkit-overflow-scrolling:touch; display:flex; flex-direction:column; gap:6px; }
.pv-pr{ display:flex; align-items:center; gap:10px; width:100%; border:0; border-radius:14px; padding:6px 10px 6px 6px; text-align:left; font:inherit; color:#fff; cursor:pointer;
  background:rgba(255,255,255,.06); box-shadow:inset 0 0 0 1.5px transparent; }
.pv-pr.on{ box-shadow:inset 0 0 0 2px #ffd35a; background:rgba(255,211,90,.1); }
.pv-pr.off{ opacity:.45; cursor:default; }
.pv-pr:active:not(.off){ transform:scale(.98); }
.pv-pri{ flex:none; width:48px; height:48px; border-radius:12px; display:grid; place-items:center;
  background:color-mix(in srgb, var(--rarity-color, #9aa3b8) 35%, #232b4b); box-shadow:inset 0 0 0 1.5px color-mix(in srgb, var(--rarity-color, #9aa3b8) 70%, transparent); }
.pv-pri img{ width:42px; height:42px; object-fit:contain; }
.pv-prt{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.pv-prt b{ font-size:14px; font-weight:900; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } .pv-prt b i{ font-style:normal; color:#ffd35a; font-size:12px; }
.pv-prt small{ font-size:12px; font-weight:800; color:#c9cde6; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pv-prt .pv-clsi{ display:inline-block; width:16px; height:16px; vertical-align:-3px; } .pv-prt .pv-star{ width:15px; height:15px; vertical-align:-3px; margin-right:2px; }
.pv-prt small.pv-prh{ color:#fdba74; font-size:11.5px; white-space:normal; line-height:1.3; margin-top:2px; }
.pv-pr em{ flex:none; font-style:normal; font-size:11px; font-weight:900; color:#a9adc9; text-align:right; max-width:90px; }
.pv-pr.on em{ color:#ffd35a; }
/* 5.5: против кого, поиск, фильтры в списке бойцов */
.pv-ps{ box-sizing:border-box; min-width:0; } .pv-ps > *{ min-width:0; max-width:100%; }
.pv-pick-sheet.first{ background:rgba(5,8,20,.85); }
.pv-pick-sheet.first .pv-ps{ max-height:92%; height:92%; } .pv-ps .pv-psl{ flex:1; min-height:0; }
.pv-pvs{ display:flex; align-items:center; gap:10px; border-radius:14px; padding:6px 10px 6px 6px; margin:0 0 8px; background:rgba(255,80,80,.1); box-shadow:inset 0 0 0 1.5px rgba(255,110,110,.45); }
.pv-pvs .pv-prt > small:first-child{ color:#ff9b9b; text-transform:uppercase; font-size:10.5px; letter-spacing:.04em; }
.pv-pfind{ width:100%; box-sizing:border-box; border:0; border-radius:12px; padding:9px 12px; margin:0 0 8px; font:inherit; font-size:14px; font-weight:700; color:#fff; background:rgba(255,255,255,.08); outline:none; }
.pv-pfind::placeholder{ color:#8e93b5; }
.pv-pfl{ display:flex; gap:6px; overflow-x:auto; padding:0 0 8px; scrollbar-width:none; } .pv-pfl::-webkit-scrollbar{ display:none; }
.pv-pfl button{ flex:none; border:0; border-radius:999px; padding:6px 11px; font:inherit; font-size:12px; font-weight:800; color:#c9cde6; background:rgba(255,255,255,.07); cursor:pointer; }
.pv-pfl button.on{ color:#1a1208; background:#ffd35a; }
.pv-pnone{ padding:18px 0; text-align:center; font-size:13px; font-weight:800; color:#8e93b5; }
/* 5.5: итог живого боя — «Ты | Он»: шапка с голубями и здоровьем, раунды по колонкам (урон — под тем, кто его получил), итоги */
.pv-end{ max-width:360px; }
.pv-sum{ width:100%; margin-top:10px; text-align:left; color:#fff; }
.pv-shead{ display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:6px; margin-bottom:8px; }
.pv-svs{ font-size:15px; font-weight:900; color:#ffc83c; }
.pv-sh{ display:flex; align-items:center; gap:7px; min-width:0; } .pv-sh.en{ flex-direction:row-reverse; text-align:right; }
.pv-shi{ flex:none; width:40px; height:40px; border-radius:11px; display:grid; place-items:center;
  background:color-mix(in srgb, var(--rarity-color, #9aa3b8) 35%, #232b4b); box-shadow:inset 0 0 0 1.5px color-mix(in srgb, var(--rarity-color, #9aa3b8) 75%, transparent); }
.pv-shi img{ width:34px; height:34px; object-fit:contain; }
.pv-sh.en .pv-shi img{ transform:scaleX(-1); }
.pv-shn{ min-width:0; flex:1; display:flex; flex-direction:column; gap:2px; }
.pv-shn small{ font-size:10.5px; font-weight:900; color:#ffd35a; text-transform:uppercase; letter-spacing:.04em; }
.pv-shn b{ font-size:13px; font-weight:900; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pv-shb{ display:block; height:6px; border-radius:99px; background:rgba(255,255,255,.12); overflow:hidden; }
.pv-shb i{ display:block; height:100%; transform-origin:left; background:linear-gradient(90deg,#22c55e,#86efac); }
.pv-sh.en .pv-shb i{ transform-origin:right; background:linear-gradient(270deg,#ef4444,#fca5a5); }
.pv-shn em{ font-style:normal; font-size:11px; font-weight:800; color:#e2e8f0; }
.pv-slog{ display:flex; flex-direction:column; gap:5px; }
.pv-srow{ display:grid; grid-template-columns:1fr 74px 1fr; align-items:center; gap:4px; padding:6px 8px; border-radius:12px; background:rgba(255,255,255,.05); }
.pv-sc{ display:flex; align-items:center; gap:8px; } .pv-sc.r{ flex-direction:row-reverse; }
.pv-sd b{ font-size:15px; font-weight:900; } .pv-sd .dm{ color:#ff6b6b; } .pv-sd .hl{ color:#4ade80; margin-left:4px; } .pv-sd .z{ color:#64748b; font-weight:800; }
.pv-snum{ font-style:normal; justify-self:center; display:flex; flex-direction:column; align-items:center; width:72px; padding:3px 0; border-radius:10px; font-size:15px; font-weight:900; line-height:1.05; }
.pv-snum small{ font-size:9px; font-weight:900; text-transform:uppercase; }
.pv-snum.g{ background:rgba(34,197,94,.2); color:#86efac; } .pv-snum.r{ background:rgba(239,68,68,.2); color:#fca5a5; } .pv-snum.n{ background:rgba(148,163,184,.18); color:#e2e8f0; }
.pv-snotes{ grid-column:1 / -1; display:grid; grid-template-columns:1fr 1fr; gap:6px; margin-top:2px; }
.pv-sn{ font-size:11px; line-height:1.25; color:#fde68a; } .pv-sn.r{ grid-column:2; text-align:right; }
.pv-sn b{ font-weight:900; color:#ffd35a; } .pv-sn span{ display:block; color:#fef3c7; }
.pv-sn .pv-star{ width:14px; height:14px; vertical-align:-3px; margin-right:3px; }
.pv-sn.no b, .pv-sn.no span{ color:#cbd5e1; } .pv-sn.no .pv-star{ filter:grayscale(1); }
.pv-stot{ margin-top:10px; display:flex; flex-direction:column; gap:4px; }
.pv-stot div{ display:flex; justify-content:space-between; align-items:center; padding:7px 10px; border-radius:10px; background:rgba(255,255,255,.05); font-size:13px; }
.pv-stot span{ color:#e2e8f0; font-weight:800; } .pv-stot b{ font-weight:900; } .pv-stot b.g{ color:#86efac; } .pv-stot b.r{ color:#ff6b6b; }

/* итог закрывает бой целиком — без просвечивания */
.pv-res.on{ background:#0a0d1c; }
/* раунд в итоге: под действием — его название, ниже — плашки «Нанёс / Получил урона / Лечение» */
.pv-sc small{ font-size:11px; font-weight:800; color:#e2e8f0; }
.pv-schips{ grid-column:1 / -1; display:flex; flex-wrap:wrap; justify-content:center; gap:5px; margin-top:4px; }
.pv-schips span{ font-size:11.5px; font-weight:900; padding:3px 8px; border-radius:8px; }
.pv-schips .g{ background:rgba(34,197,94,.18); color:#86efac; } .pv-schips .r{ background:rgba(239,68,68,.2); color:#fca5a5; } .pv-schips .n{ background:rgba(148,163,184,.16); color:#e2e8f0; }
.pv-end h3.n{ color:#e2e8f0; } .pv-end h3{ margin-top:6px; }
.pv-end .pv-extra.win{ color:#86efac !important; }
.pv-end .pv-extra.lost{ color:#fca5a5 !important; }
/* 5.5: план защиты, который видел вор — «👁 раскрыт» */
.pv-trow{ position:relative; }
.pv-tseen{ position:absolute; top:-7px; left:10px; font-style:normal; font-size:10px; font-weight:900; padding:1px 7px; border-radius:7px; background:#f59e0b; color:#2a1700; }

/* 5.5: тренировка */
.pv-trsrc{ display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:5px; margin:2px 0 4px; }
.pv-trsrc span{ flex:none; margin-right:1px; font-size:11.5px; font-weight:800; color:#a9adc9; }
.pv-trsrc button{ flex:none; border:0; border-radius:999px; padding:5px 8px; font:inherit; font-size:12px; font-weight:800; color:#c9cde6; background:rgba(255,255,255,.07); cursor:pointer; }
.pv-trsrc button.on{ color:#1a1208; background:#ffd35a; }
.pv-trsrc button{ display:inline-flex; align-items:center; gap:3px; } .pv-trsrc button img{ width:18px; height:18px; object-fit:contain; }
.pv-ptier button{ min-width:44px; }
.pv-btns2{ display:flex; gap:8px; width:100%; } .pv-btns2 .pv-btn{ flex:1; }
.pv-end .pv-extra.trn{ color:#a9c4ff !important; }
.coach .pf-ico.pv-inl{ width:1.25em; height:1.25em; vertical-align:-.25em; }

/* 5.5: поиск и фильтр в списках бойцов — как на ферме (поле + родной выпадающий список); шапка листа не сжимается */
.pv-ps > *:not(.pv-psl){ flex:none; }
.pv-tools{ display:flex; gap:6px; margin:0 0 8px; }
.pv-srch{ position:relative; flex:1 1 auto; min-width:0; display:block; }
.pv-srch svg{ position:absolute; left:10px; top:50%; translate:0 -50%; color:#8d92b3; pointer-events:none; }
.pv-tools .pv-pfind{ height:42px; margin:0; padding:0 10px 0 34px; border-radius:14px; background:rgba(10,14,30,.55); border:1px solid rgba(255,255,255,.08); font-size:15px; }
.pv-sel{ flex:0 0 auto; max-width:128px; height:42px; padding:0 26px 0 10px; border-radius:14px; border:1px solid rgba(255,255,255,.08); color:#fff; font:inherit; font-size:13.5px; font-weight:800;
  background:rgba(10,14,30,.55) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23c9cde6' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 9px center;
  -webkit-appearance:none; appearance:none; text-overflow:ellipsis; cursor:pointer; }
.pv-sel option{ color:#111; }
.pv-selk{ max-width:96px; color:#ffd35a; }
@media (max-width: 380px){ .pv-sel{ max-width:104px; font-size:12.5px; } .pv-selk{ max-width:84px; } }
/* итог боя: в полном экране Telegram сверху его кнопки — отступ как у окна */
.pv-res{ padding:calc(var(--pf-safe-top, 0px) + 14px) 16px calc(var(--pf-safe-bottom, 0px) + 16px); }
.pv-selk{ max-width:84px; }
.pv-pick-sheet.first .pv-ps{ max-height:calc(100% - var(--pf-safe-top, 0px) - 12px); }
.pv-trow > .pv-tn{ display:flex; flex-direction:column; align-items:center; gap:2px; text-align:center; }
.pv-tn img{ width:28px; height:28px; object-fit:contain; }
.pv-foot [data-t="train"]{ flex:0 0 auto; white-space:nowrap; padding-left:16px; padding-right:16px; }
/* полоса прокрутки — у края окна, тонкая (как в «Заданиях», quests.css → .q-list): список шире на отступ листа, карточки — с тем же отступом внутри */
.pv-ps .pv-psl{ margin:0 -12px; padding:0 12px 4px; }
.pv-psl, .pv-pick, .pv-res{ scrollbar-width:thin; scrollbar-color:rgba(255,255,255,.22) transparent; }
.pv-psl::-webkit-scrollbar, .pv-pick::-webkit-scrollbar, .pv-res::-webkit-scrollbar{ width:4px; }
.pv-psl::-webkit-scrollbar-thumb, .pv-pick::-webkit-scrollbar-thumb, .pv-res::-webkit-scrollbar-thumb{ background:rgba(255,255,255,.22); border-radius:4px; }

/* фильтр — кнопка и панель плитками как на ферме (inventory.css → .invf-*), поверх окна боя */
.pvp-ov .pv-fbtn{ flex:0 0 auto; display:inline-flex; align-items:center; gap:6px; max-width:170px; height:42px; padding:0 12px; border-radius:14px;
  background:rgba(10,14,30,.55); border:1px solid rgba(255,255,255,.08); color:#fff; font:inherit; font-size:14px; font-weight:800; cursor:pointer; white-space:nowrap; }
.pvp-ov .pv-fbtn span{ overflow:hidden; text-overflow:ellipsis; } .pvp-ov .pv-fbtn svg{ flex:none; opacity:.7; }
.pvp-ov .pv-fbtn.is-on{ border-color:rgba(255,211,90,.55); background:rgba(255,211,90,.12); }
.pvp-ov .pv-fbtn .pv-star, .pv-flayer .pv-star{ width:16px; height:16px; margin:0; }
.pv-flayer{ z-index:2147483300; }
.pv-flayer .pv-clsi{ width:16px; height:16px; flex:none; }
.pv-fok{ color:#4ade80; font-weight:900; }
.pv-st6{ grid-template-columns:repeat(6, minmax(0, 1fr)); }
@media (max-width: 380px){ .pvp-ov .pv-fbtn{ max-width:132px; padding:0 9px; font-size:13px; } }
.pv-flayer .invf-stars button .pv-stl{ font-size:13px; letter-spacing:0; color:#ffd35a; font-weight:900; }
.pv-flayer .invf-stars button.is-on .pv-stl{ color:#fff; }

/* 5.5: обучение боя с Дедом — дырка в затемнении над целью и пузырь с подсказкой */
.pv-tuhole{ position:absolute; z-index:40; border-radius:16px; pointer-events:none; box-shadow:0 0 0 9999px rgba(4,6,16,.62); } /* только затемнение вокруг — без своей рамки */
.pv-tublk{ position:absolute; z-index:40; background:transparent; touch-action:none; overscroll-behavior:contain; } /* тапы мимо подсказки Деда не проходят (tutSay) */
.pv-tubub{ position:absolute; z-index:41; left:14px; right:14px; padding:12px 14px; border-radius:16px; background:#22294d; border:1.5px solid rgba(255,211,90,.6); box-shadow:0 10px 30px rgba(0,0,0,.5);
  font-size:14px; font-weight:800; line-height:1.4; color:#fff; animation:pv-fade .2s ease-out; }
.pv-tubub p{ margin:0; } .pv-tubub b{ color:#ffd35a; }
.pv-tubub .pv-btn{ margin-top:10px; height:40px; font-size:15px; }
.pv-trsrc .pv-tuact{ display:inline-grid; place-items:center; width:30px; height:30px; border-radius:9px; background:rgba(255,255,255,.07); }
.pv-trsrc .pv-tuact .pv-aic{ width:24px; height:24px; }
/* обучение: что нажать в этом раунде — ход Деда, клетка плана и нужная кнопка пульсируют золотом */
.pvp-ov .pv-tumark{ position:relative; z-index:42; }
.pvp-ov .pv-tumark.foe{ box-shadow:0 0 0 2.5px #ff5a5a, 0 0 14px rgba(255,90,90,.5); }
.pvp-ov .pv-tumark.slot{ box-shadow:0 0 0 2px rgba(74,222,128,.7); }
.pvp-ov .pv-tumark.go{ box-shadow:0 0 0 2.5px #4ade80, 0 0 18px rgba(74,222,128,.55); animation:pv-tumark 1s ease-in-out infinite; }
@keyframes pv-tumark{ 50%{ transform:scale(1.06); } }
/* пузырь обучения: кнопка «Дальше» по центру, хвостик на цель */
.pv-tubub .pv-tunext{ display:inline-flex; align-items:center; justify-content:center; margin-top:10px; height:40px; padding:0 22px; border:0; border-radius:12px;
  background:linear-gradient(180deg,#ef4444,#c81e1e); color:#fff; font:inherit; font-size:15px; font-weight:900; line-height:1; cursor:pointer; }
.pv-tubub::after{ content:''; position:absolute; left:var(--ax, 40px); width:16px; height:16px; background:#22294d; border:1.5px solid rgba(255,211,90,.6); transform:rotate(45deg); }
.pv-tubub.to-down::after{ bottom:-9px; border-top:0; border-left:0; }
.pv-tubub.to-up::after{ top:-9px; border-bottom:0; border-right:0; }
.pvp-ov .pv-trsrc.pv-tumark.foe{ border-radius:14px; padding:4px 6px; }
.pv-tub{ flex:none; display:inline-flex; align-items:center; gap:4px; height:36px; padding:0 12px; margin-left:auto; border:1.5px solid rgba(255,211,90,.55); border-radius:12px;
  background:rgba(255,211,90,.1); color:#ffd35a; font:inherit; font-size:13px; font-weight:900; cursor:pointer; }
.pv-tub[hidden]{ display:none; }

/* 5.5: окно голубя (inventory.js) — две страницы свайпом: «голубь» и «в бою», точки внизу как на iPhone */
.pm-pages{ overflow:hidden; touch-action:pan-y; margin-top:-1px; transition:height .3s cubic-bezier(.2,.9,.3,1); } /* на 1 px под сцену — без шва на стыке в Telegram */
.pm-pages.is-drag{ cursor:grabbing; user-select:none; -webkit-user-select:none; }
.pm-pages.is-drag img{ pointer-events:none; }
.pm-track{ position:relative; display:flex; align-items:flex-start; padding-top:1px; transition:transform .3s cubic-bezier(.2,.9,.3,1); }
.pm-track > .pm-body, .pm-track > .pm-pvback{ flex:0 0 100%; min-width:0; box-sizing:border-box; }
.pm-pvback{ padding:14px 16px 16px; }
/* закрытая страница не задаёт высоту окна: вынута из потока и стоит на своём месте в ленте (inventory.js → fitPage) */
.pm-pages:not(.pg1) .pm-track > .pm-pvback{ position:absolute; top:1px; left:100%; width:100%; }
.pm-pages.pg1 .pm-track > .pm-body{ position:absolute; top:1px; left:0; width:100%; }
.pm-pages.pg1 .pm-track > .pm-pvback{ margin-left:100%; }
.pm-pvback[hidden]{ display:none; }
.pm-dots{ display:flex; justify-content:center; gap:8px; padding:0 0 12px; }
.pm-dots[hidden]{ display:none; }
.pm-dots button{ width:8px; height:8px; padding:0; border:0; border-radius:50%; background:rgba(255,255,255,.3); cursor:pointer; transition:transform .2s, background .2s; }
.pm-dots button.on{ background:#fff; transform:scale(1.25); }
.pm-pv{ display:flex; flex-direction:column; gap:10px; color:#fff; }
.pm-pv-h{ font-size:18px; font-weight:900; display:flex; align-items:baseline; justify-content:space-between; gap:8px; }
.pm-pv-h small{ font-size:11.5px; font-weight:700; color:#a9adc9; }
.pm-pv-cls{ display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:14px; background:rgba(255,255,255,.06); }
.pm-pv-cls .pv-clsi{ width:34px; height:34px; flex:none; }
.pm-pv-cls b{ display:block; font-size:15px; font-weight:900; } .pm-pv-cls small{ display:block; font-size:12.5px; font-weight:700; color:#c9cde6; }
.pm-pv-row{ display:grid; grid-template-columns:repeat(2, 1fr); gap:8px; }
.pm-pv-st{ padding:9px 6px; border-radius:14px; background:rgba(255,255,255,.06); text-align:center; }
.pm-pv-st span{ display:block; font-size:11.5px; font-weight:800; color:#a9adc9; } .pm-pv-st b{ display:block; margin-top:3px; font-size:17px; font-weight:900; }
.pm-pv-ab{ padding:10px 12px; border-radius:14px; background:rgba(255,255,255,.05); box-shadow:inset 0 0 0 1px rgba(255,255,255,.12); }
.pm-pv-ab b{ display:flex; align-items:center; gap:3px; color:#fff; font-size:15px; font-weight:900; } .pm-pv-ab .pv-star{ width:20px; height:20px; }
.pm-pv-ab small{ display:block; margin-top:2px; font-size:11.5px; font-weight:700; color:#a9adc9; }
.pm-pv-ab p{ margin:6px 0 0; font-size:13.5px; font-weight:700; line-height:1.35; color:#e5e7f5; }
.pm-pv-ab.no{ background:rgba(255,255,255,.05); box-shadow:none; } .pm-pv-ab.no b{ color:#c9cde6; }
/* 5.5: ❤️ / ⚔️ — картинки игры вместо эмодзи (pvp.js → IC_HP / IC_ATK, state.js → pfEmoText) */
.pv-ic, .pf-ico-in{ display:inline-block; width:1.15em; height:1.15em; object-fit:contain; vertical-align:-.22em; margin-right:.1em; }

/* 5.5: тренировка — «как ходит соперник» окном по шестерёнке у «⇄ Соперник» (pvp.js → srcSheet), строки над планом нет */
.pv-dsb{ display:flex; gap:5px; align-items:center; }
.pv-cog{ position:relative; display:grid; place-items:center; padding:4px 7px; }
.pv-cog .pf-ico{ width:16px; height:16px; object-fit:contain; display:block; }
.pv-cog.on::after{ content:""; position:absolute; top:-2px; right:-2px; width:8px; height:8px; border-radius:50%; background:#ffd35a; }
.pv-srcr{ display:flex; align-items:center; gap:10px; width:100%; text-align:left; border:2px solid transparent; border-radius:14px; padding:9px 10px;
  background:rgba(255,255,255,.06); color:#fff; font:inherit; cursor:pointer; }
.pv-srcr.on{ border-color:#ffd35a; background:rgba(255,211,90,.1); }
.pv-srci{ flex:none; width:30px; height:30px; object-fit:contain; }
.pv-srcq{ display:grid; place-items:center; border-radius:9px; background:rgba(255,255,255,.1); font-style:normal; font-weight:900; font-size:16px; color:#ffd35a; }
.pv-srct{ flex:1; min-width:0; display:flex; flex-direction:column; gap:1px; } .pv-srct b{ font-size:14px; font-weight:900; } .pv-srct small{ font-size:11.5px; color:#a9adc9; font-weight:700; }
.pv-srcp{ flex:none; display:flex; gap:2px; } .pv-srcp b{ width:20px; height:20px; border-radius:6px; background:rgba(255,255,255,.07); display:grid; place-items:center; }
.pv-srcp .pv-aic{ width:17px; height:17px; vertical-align:0; }
.pv-own{ padding:8px 2px 2px; display:flex; flex-direction:column; gap:8px; }
.pv-ownp{ display:grid; grid-template-columns:repeat(5, 1fr); gap:6px; }
.pv-owns{ height:48px; border-radius:12px; border:2px dashed rgba(255,255,255,.18); background:rgba(255,255,255,.04); color:#a9adc9; font:inherit; font-size:20px; font-weight:900; cursor:pointer; display:grid; place-items:center; }
.pv-owns.set{ border-style:solid; border-color:rgba(255,255,255,.12); background:#232c4b; } .pv-owns .pv-aic{ width:32px; height:32px; vertical-align:0; }
.pv-owns.ab{ border-color:#ffd35a; }
.pv-ownpal{ display:grid; grid-template-columns:repeat(3, 1fr); gap:6px; }
.pv-ownpal button{ display:flex; align-items:center; justify-content:center; gap:6px; border:0; border-radius:12px; padding:6px; background:#232c4b; color:#fff; font:inherit; font-weight:900; font-size:12.5px; cursor:pointer; }
.pv-ownpal button:disabled{ opacity:.4; } .pv-ownpal .pv-aic{ width:26px; height:26px; vertical-align:0; }
.pv-ownab{ display:flex; align-items:center; gap:5px; flex-wrap:wrap; justify-content:center; }
.pv-ownab span{ font-size:12px; font-weight:800; color:#ffd35a; display:inline-flex; align-items:center; gap:4px; margin-right:2px; }
.pv-ownab .pv-star{ width:18px; height:18px; }
.pv-ownab button{ width:32px; height:30px; border:0; border-radius:9px; background:rgba(255,255,255,.08); color:#fff; font:inherit; font-weight:900; cursor:pointer; }
.pv-ownab button.on{ background:#ffd35a; color:#1a1208; }
.pv-srcok{ margin-top:10px; flex:none; } .pv-srcok:disabled{ opacity:.45; }
.pv-pick-sheet .pv-psh small{ display:block; line-height:1.3; margin-top:2px; text-wrap:balance; }
.pv-ownab{ flex-wrap:nowrap; } .pv-ownab button{ flex:none; }
.pv-srcok{ background:linear-gradient(180deg,#3b82f6,#2563eb); box-shadow:0 6px 16px rgba(37,99,235,.3); }
/* раунд его способности: подпись — строкой сверху, 5 кнопок — сеткой во всю ширину (не переносятся) */
.pv-ownab{ display:grid; grid-template-columns:repeat(5, 1fr); gap:6px; }
.pv-ownab span{ grid-column:1 / -1; justify-content:center; margin:0; }
.pv-ownab button{ width:auto; height:34px; }
.pv-abst{ margin-top:4px; font-size:11.5px; font-weight:800; color:#a5b4fc; }
.pv-abst.no{ color:#a9adc9; }
.pv-warn.pv-risk.pv-trn{ color:#9fb3d9; } /* тренировка — спокойным голубым, не золотом */

/* 5.5: «Кем нападать» — соперник отдельно от своих бойцов: красная карточка с «VS» сверху, под ней подпись «Твои бойцы», список — свои */
.pv-pvs{ position:relative; padding:10px 12px 10px 10px; margin:2px 0 12px; background:linear-gradient(135deg, rgba(220,38,38,.28), rgba(127,29,29,.22)); box-shadow:inset 0 0 0 2px rgba(255,110,110,.6); }
.pv-pvs .pv-pri{ width:52px; height:52px; } .pv-pvs .pv-pri img{ width:46px; height:46px; transform:scaleX(-1); }
.pv-pvs .pv-prt b{ font-size:15px; }
.pv-pvsvs{ flex:none; display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:#dc2626; color:#fff; font-weight:900; font-size:12.5px; box-shadow:0 0 0 3px rgba(255,255,255,.12); }
.pv-pmh{ flex:none; font-size:11.5px; font-weight:900; color:#86efac; text-transform:uppercase; letter-spacing:.04em; padding:0 2px 6px; }

/* 5.5: обучение плана защиты — две кнопки в пузыре Деда; «⚔️ Защита в бою» без планов — с пульсирующей точкой (shield.js → .need) */
.pv-tubtns{ display:flex; gap:8px; flex-wrap:wrap; justify-content:center; }
.pv-tubub .pv-tunext.alt{ background:rgba(255,255,255,.12); color:#fff; box-shadow:none; }
.shd-pvp.need{ position:relative; }
.shd-pvp.need::after{ content:""; position:absolute; top:-3px; right:-3px; width:10px; height:10px; border-radius:50%; background:#ef4444; box-shadow:0 0 0 2px #1d2340; animation:pvNeed 1.4s ease-in-out infinite; }
@keyframes pvNeed{ 0%,100%{ transform:scale(1); opacity:1; } 50%{ transform:scale(1.35); opacity:.7; } }
.pv-tubub img.pv-ic, .pv-tubub .pv-clsi{ display:inline-block; width:1.25em; height:1.25em; vertical-align:-.28em; margin:0 .1em; } /* значки в пузыре Деда (обучение выбора бойца) */
/* 5.5: где чей голубь в бою — подпись на полоске здоровья («Соперник» / «Ты») и подсветка своей половины арены (он — красным сверху, ты — синим снизу) */
.pv-hp .who{ position:absolute; left:10px; top:0; z-index:2; font-size:11px; font-weight:900; line-height:22px; text-transform:uppercase; letter-spacing:.04em; text-shadow:0 1px 2px #000; }
.pv-hp b{ padding-left:20px; }
.pvp-ov.inbattle .pv-arena{ background:linear-gradient(180deg, rgba(225,50,50,.16) 0%, rgba(225,50,50,0) 42%, rgba(60,140,255,0) 58%, rgba(60,140,255,.18) 100%); border-radius:18px; }
/* 5.5: составная способность (Тор) — описание пунктами и части в бою строками с отметками */
.pv-abk{ font-weight:900 !important; margin-bottom:2px !important; display:flex; flex-wrap:wrap; align-items:center; gap:4px 8px; }
.pv-abk span{ font-size:.82em; font-weight:800; opacity:.75; }
.pv-abk span .pv-star{ width:1.1em; height:1.1em; }
.pv-abli{ margin:2px 0 0; padding-left:1.1em; text-align:left; }
.pv-abli li{ margin:2px 0; line-height:1.3; }
.pv-apop.parts{ white-space:normal; width:min(86vw,320px); }
.pv-apl{ list-style:none; margin:4px 0 0; padding:0; display:flex; flex-direction:column; gap:4px; text-align:left; width:100%; }
.pv-apl li{ display:flex; align-items:center; gap:8px; font-size:12.5px; font-weight:800; line-height:1.25; padding:4px 8px; border-radius:10px; }
.pv-apl li i{ flex:none; width:16px; height:16px; border-radius:50%; position:relative; }
.pv-apl li.ok{ background:rgba(22,101,52,.18); } .pv-apl li.ok i{ background:#16a34a; }
.pv-apl li.ok i::after{ content:""; position:absolute; left:5px; top:2px; width:4px; height:8px; border:solid #fff; border-width:0 2.5px 2.5px 0; transform:rotate(45deg); }
.pv-apl li.no{ background:rgba(0,0,0,.12); opacity:.85; } .pv-apl li.no i{ background:#6b7280; }
.pv-apl li.no i::before, .pv-apl li.no i::after{ content:""; position:absolute; left:7px; top:3px; width:2.5px; height:10px; background:#fff; border-radius:1px; transform:rotate(45deg); }
.pv-apl li.no i::after{ transform:rotate(-45deg); }
.pv-sn .pv-apl li{ font-size:11.5px; color:inherit; }

/* 5.5: «Активная / Пассивная» — плашка справа от названия способности, тап — окошко с пояснением (без золота: фиолетовый / бирюзовый) */
.pv-abh{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.pv-akc{ flex:none; display:inline-flex; align-items:center; gap:5px; border:0; border-radius:999px; padding:3px 6px 3px 9px; font:inherit; font-size:11px; font-weight:900; letter-spacing:.02em; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.pv-akc i{ display:grid; place-items:center; width:15px; height:15px; border-radius:50%; font-style:normal; font-size:10px; font-weight:900; background:rgba(255,255,255,.22); }
.pv-akc.act{ background:rgba(139,92,246,.28); color:#ddd6fe; box-shadow:inset 0 0 0 1px rgba(167,139,250,.6); }
.pv-akc.pas{ background:rgba(20,184,166,.24); color:#ccfbf1; box-shadow:inset 0 0 0 1px rgba(45,212,191,.55); }
.pv-aktip{ position:absolute; left:8px; right:8px; z-index:8; padding:11px 12px; border-radius:14px; color:#fff; text-align:left;
  background:linear-gradient(160deg, #33275f, #141831 62%); border:1px solid rgba(167,139,250,.55); box-shadow:0 10px 26px rgba(0,0,0,.55); }
.pv-aktip.pas{ background:linear-gradient(160deg, #11433f, #0c1a24 62%); border-color:rgba(45,212,191,.55); }
.pv-aktip::before{ content:""; position:absolute; left:var(--ax,20px); top:-7px; width:12px; height:12px; transform:rotate(45deg); background:#2b2350; border-left:1px solid rgba(167,139,250,.55); border-top:1px solid rgba(167,139,250,.55); }
.pv-aktip.pas::before{ background:#123a3f; border-color:rgba(45,212,191,.55); }
.pv-aktip b{ display:block !important; font-size:15px; font-weight:900; color:#ddd6fe !important; margin-bottom:3px; }
.pv-aktip.pas b{ color:#99f6e4 !important; }
.pv-aktip span{ display:block; font-size:12.5px; font-weight:700; line-height:1.35; color:#e6e8f5; }
.pv-aktip .pv-star{ width:1.15em; height:1.15em; vertical-align:-.25em; }
/* окно плана: строка типа — без высоты в две строки от старого описания, пункты — мельче, как текст окна */
.pv-ab p.pv-abk{ min-height:0; display:block; -webkit-line-clamp:unset; margin-top:2px; font-size:12px; color:#c7cbea; }
.pv-ab .pv-abli{ font-size:12.5px; line-height:1.3; color:#d4d7ec; margin-top:2px; }

/* иконка способности перед названием — вплотную к тексту (отступ иконки + промежуток строки выглядели двойным пробелом) */
.pm-pv-ab b .pv-star{ margin-right:0; }
.pv-aktip .pv-star{ margin:0 .05em; }
/* 5.5: окно характеристик по тапу на карточку в окне набега (вместо переворота) */
.pv-csheet .pv-ps{ max-height:86%; }
.pv-csb{ overflow:auto; min-height:0; padding:2px 2px 4px; }
.pv-csb .pm-pv{ padding:0; }
.pm-pv-home{ margin:-2px 0 8px; padding:6px 10px; border-radius:10px; font-size:12px; font-weight:800; color:#fecaca; background:rgba(239,68,68,.14); }

/* 5.5: бой по раундам (farm.json → pvp.live) — ход выбираешь в бою: прошлые ходы соперника, 3 действия, ⭐ в этот раунд */
.pv-rhint{ margin-top:10px; padding:9px 12px; border-radius:12px; background:rgba(90,168,255,.1); box-shadow:inset 0 0 0 1px rgba(90,168,255,.25);
  color:#cfe3ff; font-weight:800; font-size:12.5px; text-align:center; line-height:1.35; }
.pv-mv{ padding:6px 14px 8px; }
.pv-mvh{ display:flex; align-items:center; justify-content:center; gap:4px; min-height:30px; font-weight:800; font-size:12.5px; color:#a9adc9; }
.pv-mvh span{ margin-right:4px; }
.pv-mvh .pv-aic{ width:26px; height:26px; }
.pv-mv .pv-pal{ margin-top:4px; }
.pv-mv .pv-pal button{ padding:10px 6px; }
.pv-mvab{ width:100%; margin-top:6px; border:0; border-radius:14px; padding:7px 10px; font:inherit; color:#fff; cursor:pointer;
  display:flex; align-items:center; gap:8px; background:#232c4b; box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.12); text-align:left; }
.pv-mvab .pv-star{ width:24px; height:24px; flex:none; }
.pv-mvab b{ font-weight:900; font-size:13px; white-space:nowrap; }
.pv-mvab small{ margin-left:auto; font-size:11.5px; font-weight:700; color:#a9adc9; text-align:right; }
.pv-mvab.on{ background:#2b4a8a; box-shadow:inset 0 0 0 2px #5aa8ff; }
.pv-mvab.on small{ color:#cfe3ff; }
.pv-mvab:disabled{ opacity:.4; }
.pv-mvn{ margin-top:5px; text-align:center; font-size:11.5px; font-weight:800; color:#fca5a5; min-height:15px; }
.pv-mvh span.r{ color:#fca5a5; } .pv-mvh span.g{ color:#86efac; }
.pv-mv .pv-pal button.pv-mvskip{ grid-column:1 / -1; }
.pv-mvskip img{ width:28px; height:28px; }

/* 5.5: бой — слева ты, справа соперник (как в файтинге). Карточки рядом — крупнее; под ними ход боя (точки, вскрытие ходов), ниже кнопки.
   Порядок в разметке прежний (соперник, середина, ты) — раскладывает сетка */
.pvp-ov.inbattle .pv-arin{ display:grid; grid-template-columns:auto auto; justify-content:space-between; grid-template-areas:"me en" "mid mid"; column-gap:12px; row-gap:6px; align-items:end; padding:0 4px; }
/* арена: голуби небольшие, стоят по краям на «площадках» (тень-пятно под карточкой), между ними — пустое место */
.pvp-ov.inbattle .pv-cw{ z-index:1; }
.pvp-ov.inbattle .pv-cwrap::before{ content:""; position:absolute; left:-14%; right:-14%; bottom:-20px; height:34px; border-radius:50%; z-index:0;
  background:radial-gradient(ellipse at center, rgba(0,0,0,.55), rgba(0,0,0,0) 70%); }
.pvp-ov.inbattle .pv-side.me .pv-cwrap::before{ background:radial-gradient(ellipse at center, rgba(70,140,255,.45), rgba(0,0,0,0) 70%); }
.pvp-ov.inbattle .pv-side.en .pv-cwrap::before{ background:radial-gradient(ellipse at center, rgba(235,60,60,.4), rgba(0,0,0,0) 70%); }
.pvp-ov.inbattle .pv-arin::before{ content:""; grid-row:1; grid-column:1 / -1; align-self:end; height:2px; margin:0 -10px -16px; border-radius:2px; z-index:-1;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.14) 20%, rgba(255,255,255,.14) 80%, transparent); } /* линия «пола» арены */
.pvp-ov.inbattle .pv-side.me{ grid-area:me; flex-direction:column-reverse; } /* полоска здоровья — над карточкой, как у соперника */
.pvp-ov.inbattle .pv-side.en{ grid-area:en; }
.pvp-ov.inbattle .pv-mid{ grid-area:mid; min-height:124px; justify-content:flex-start; margin-top:18px; } /* точки сверху, под ними — вскрытие ходов */
.pvp-ov.inbattle .pv-hp{ width:100%; }
.pvp-ov.inbattle .pv-arena{ background:linear-gradient(90deg, rgba(60,140,255,.18) 0%, rgba(60,140,255,0) 45%, rgba(225,50,50,0) 55%, rgba(225,50,50,.16) 100%); }
.pvp-ov.inbattle .pv-abg{ top:auto; bottom:-14px; left:50%; right:auto; margin:0 0 0 -35px; } /* значки ходов (без эффектов) — под карточкой */
.pvp-ov.inbattle .pv-apop{ white-space:normal; max-width:calc(var(--cw) + 30px); text-align:center; }
.pvp-ov.inbattle .pv-side.dead .pv-cw{ animation-name:pv-die-x; } @keyframes pv-die-x{ to{ transform:translateY(16px) rotate(-8deg); opacity:0; } }
.pvp-ov.inbattle .pv-arin::after{ content:"VS"; grid-row:1; grid-column:1 / -1; justify-self:center; align-self:center; margin-top:20px; font-weight:900; font-size:24px; letter-spacing:.04em; color:rgba(255,255,255,.16); pointer-events:none; }
.pvp-ov.inbattle .pv-hp .who{ font-size:10px; left:8px; }
.pvp-ov.inbattle .pv-hp b{ text-align:right; padding-right:9px; font-size:12px; }
.pvp-ov.inbattle .pv-hpd{ display:none; } /* арена: «−N» на узкой полоске наезжал на здоровье; урон и так крупной цифрой над карточкой */
/* 5.5: заставка боя (pvp.js → fight → intro): до неё арену не видно, «VS» впечатывается поверх бледного */
.pv-intro .pv-side, .pv-intro .pv-mid, .pv-intro .pv-mv{ opacity:0; }
.pvp-ov.inbattle .pv-arena.vsoff .pv-arin::after{ opacity:0; }
.pv-vsin{ grid-row:1; grid-column:1 / -1; justify-self:center; align-self:center; margin-top:20px; z-index:3; pointer-events:none; will-change:transform, opacity;
  font-weight:900; font-size:40px; line-height:1; letter-spacing:.02em; color:#fff;
  text-shadow:-3px 0 0 rgba(70,140,255,.9), 3px 0 0 rgba(235,60,60,.9), 0 4px 14px rgba(0,0,0,.55); }
/* 5.5: «Разбор боя» (pvp.js → review) — строка про план защиты */
.pv-end .pv-rvp{ color:#a9adc9; font-size:13px; font-weight:700; margin:2px 0 4px; }
/* 5.5: время на ход (pvp.js → pickMove, farm.json → pvp.turnSec): полоска по верху блока ходов + секунды справа; последние 5 с — красным */
.pv-mv{ position:relative; }
.pv-tm{ position:absolute; left:14px; right:14px; top:0; height:0; opacity:0; transition:opacity .2s; pointer-events:none; }
.pv-tm.on{ opacity:1; }
.pv-tm i{ position:absolute; left:0; right:0; top:0; height:3px; border-radius:2px; background:#5aa8ff; transform-origin:left center; will-change:transform; }
.pv-tm b{ position:absolute; right:0; top:9px; min-width:26px; padding:2px 6px; border-radius:999px; text-align:center; font-size:12px; font-weight:900; line-height:1.2; color:#cfe3ff; background:rgba(90,168,255,.16); }
.pv-tm.hot i{ background:#ff5a6a; } .pv-tm.hot b{ color:#ffd0d5; background:rgba(255,90,106,.2); }
