/* ==================== САЙТ В СТИЛЕ ВИКИ ==================== */
:root{--ok:#55ff55;--bad:#ff6b6b;--off:#55555c}
:root[data-theme="light"]{--ok:#2e7d32;--bad:#c62828;--off:#9a9ca6}
@font-face{font-family:'SpatiumFont';src:url('fonts/spatium.woff2') format('woff2'),url('fonts/spatium.woff') format('woff'),url('fonts/spatium.ttf') format('truetype'),url('fonts/spatium.otf') format('opentype');font-display:swap}
.hidden{display:none!important}
.wrap{max-width:1000px;margin:0 auto;padding:0 1.25rem 3rem;width:100%}
.wrap h1,.wrap h2,.wrap h3{font-family:'Unbounded',sans-serif;font-weight:500;line-height:1.3}

/* кнопки */
.btn{display:inline-flex;align-items:center;gap:.55rem;background:var(--bg-surface-hover);color:var(--text-primary);border:2px solid var(--border-color);border-radius:0;
  padding:.7rem 1rem;font:400 .6rem 'SpatiumFont','Press Start 2P',monospace;text-transform:uppercase;cursor:pointer;text-decoration:none;line-height:1.4;
  box-shadow:inset 2px 2px 0 var(--bevel-hi),inset -2px -2px 0 var(--bevel-lo)}
.btn:hover{border-color:var(--border-focus);text-decoration:none;transform:translate(-2px,-2px);box-shadow:inset 2px 2px 0 var(--bevel-hi),inset -2px -2px 0 var(--bevel-lo),4px 4px 0 var(--pixel-shadow);transition:transform .12s steps(2),box-shadow .12s steps(2),border-color .2s}
.btn:active{transform:none;box-shadow:inset 2px 2px 0 var(--bevel-lo)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#14161b}
:root[data-theme="light"] .btn.primary{color:#fff}

/* карточки */
.card{background:var(--bg-surface-hover);border:2px solid var(--border-color);border-radius:0;padding:1.25rem;
  box-shadow:inset 2px 2px 0 var(--bevel-hi),inset -2px -2px 0 var(--bevel-lo)}
.head{--s:48px;width:var(--s);height:var(--s);position:relative;border-radius:0;overflow:hidden;background:rgba(0,0,0,.35);
  border:2px solid var(--bevel-lo);border-right-color:var(--bevel-hi);border-bottom-color:var(--bevel-hi);box-sizing:border-box;flex:none;image-rendering:pixelated}
.head i{position:absolute;inset:0;background-repeat:no-repeat;image-rendering:pixelated;background-size:calc((var(--s) - 4px)*8) auto}
.head .face{background-position:calc((var(--s) - 4px)*-1) calc((var(--s) - 4px)*-1)}
.head .hat{background-position:calc((var(--s) - 4px)*-5) calc((var(--s) - 4px)*-1)}
.avatar{--av:74px;width:var(--av);height:var(--av);flex:none;position:relative;display:block}
.avatar canvas{width:100%;height:100%;display:block;image-rendering:pixelated}
.avatar.plhead{box-shadow:none}
/* на страницах кабинета/игрока иконка залезает на баннер */
.pdwho > .avatar,.pdwho > #meHead{margin:-84px 0 0 .6rem;align-self:flex-start;position:relative;z-index:3}
.head b{position:absolute;inset:0;display:grid;place-items:center;font:400 calc(var(--s)*.4) 'SpatiumFont','Press Start 2P',monospace;color:var(--text-muted)}

/* шапка */
.top{position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:.5rem;height:64px;padding:0 1.5rem;
  background:var(--bg-surface);border-bottom:2px solid var(--border-color);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);overflow-x:auto;white-space:nowrap}
.top .logo{display:flex;align-items:center;cursor:pointer;margin-right:1rem;color:var(--text-primary);text-decoration:none}
.top .logo-img{height:36px;width:auto;object-fit:contain;display:block;image-rendering:pixelated}
.top .logo-img.broken{display:none}
.top .logo-text{display:none;font:700 1.05rem 'Unbounded',sans-serif}
.top .logo-img.broken + .logo-text{display:block}
.top a.it{position:relative;display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .8rem;color:var(--text-secondary);font-weight:500;font-size:.95rem;text-decoration:none}
.top a.it:hover,.top a.it.active{color:var(--text-primary);background:var(--bg-surface-hover);text-decoration:none}
.top a.it.active::after{content:'';position:absolute;bottom:-2px;left:0;width:100%;height:3px;background:var(--accent-gradient);animation:fadeIn .3s ease}
.top .spacer{margin-left:auto}

/* главная */
.wrap .hero{padding:2.5rem 0 2.25rem;margin-bottom:2rem;border-bottom:2px solid var(--border-color);text-align:left}
.wrap .hero h1{font-weight:700;font-size:clamp(2rem,5.2vw,3.4rem);line-height:1.1;margin-bottom:1rem;letter-spacing:-.02em}
.lead{color:var(--text-secondary);font-size:1.1rem;max-width:56ch;margin-bottom:1.5rem}
.pills{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.25rem}
.pill{display:inline-flex;align-items:center;gap:.5rem;font:400 .55rem 'SpatiumFont','Press Start 2P',monospace;text-transform:uppercase;color:var(--text-primary);background:var(--bg-surface-hover);border:2px solid var(--border-color);padding:.5rem .65rem}
.dot{width:8px;height:8px;border-radius:0;background:var(--off);display:inline-block}
.dot.on,.pill .dot{background:var(--ok);box-shadow:0 0 8px var(--ok)}
.ip{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:1rem}
.ip code{font:500 .95rem 'JetBrains Mono',monospace;background:var(--code-bg);border:2px solid var(--border-color);padding:.6rem .9rem;box-shadow:inset 2px 2px 0 var(--bevel-lo)}
.cta{display:flex;gap:.6rem;flex-wrap:wrap}
.plist{display:flex;flex-wrap:wrap;gap:6px;margin-top:1.25rem}.plist .head{--s:34px}
.section{padding:1rem 0}
.section>h2{font-size:1.1rem;margin:1.5rem 0 1rem}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}
.tile{display:flex;flex-direction:column;gap:.6rem;padding:1.1rem}
.tile i.ic{width:46px;height:46px;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.35);border:2px solid var(--bevel-lo);border-right-color:var(--bevel-hi);border-bottom-color:var(--bevel-hi);color:var(--accent);font-size:1.2rem}
:root[data-theme="light"] .tile i.ic{background:rgba(0,0,0,.08)}
.tile h3{font-size:1.05rem;font-weight:600;font-family:'Onest',sans-serif;margin:.2rem 0 0}
.tile p{margin:0;color:var(--text-secondary);font-size:.875rem;line-height:1.45;flex:1}
.tile a{font-size:.8rem;color:var(--accent);margin-top:.3rem}
.tile:hover{border-color:var(--border-focus);transform:translate(-2px,-2px);box-shadow:inset 2px 2px 0 var(--bevel-hi),inset -2px -2px 0 var(--bevel-lo),5px 5px 0 var(--pixel-shadow);transition:transform .12s steps(2),box-shadow .12s steps(2),border-color .2s}
.news{display:flex;flex-direction:column;gap:.75rem}
.news small{color:var(--text-muted);font:400 .55rem 'SpatiumFont','Press Start 2P',monospace}
.news h3{margin:.6rem 0 .3rem;font-size:1rem;font-weight:600;font-family:'Onest',sans-serif}.news p{margin:0;color:var(--text-secondary)}

.wrap details{background:var(--bg-surface);border:2px solid var(--border-color);margin-bottom:.5rem;box-shadow:inset 2px 2px 0 var(--bevel-hi),inset -2px -2px 0 var(--bevel-lo)}

.wrap summary{cursor:pointer;padding:.9rem 1.1rem;font-weight:600;list-style:none}
.wrap summary::-webkit-details-marker{display:none}
.wrap summary::before{content:'\f054';font-family:'Font Awesome 6 Free';font-weight:900;font-size:.75rem;margin-right:.7rem;color:var(--accent);display:inline-block;transition:transform .15s}
.wrap details[open] summary::before{transform:rotate(90deg)}
.wrap details p{margin:0;padding:0 1.1rem 1rem 2.3rem;color:var(--text-secondary)}
.foot{margin-top:.5rem}.foot h3{font-size:1rem;margin:0 0 .5rem}.foot p{color:var(--text-secondary);margin:0 0 1rem}
.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);background:var(--accent);color:#14161b;padding:.7rem 1.1rem;font:400 .6rem 'SpatiumFont','Press Start 2P',monospace;z-index:999;box-shadow:4px 4px 0 var(--pixel-shadow)}

/* единая страница */
html:not(.ready) body{opacity:0}body{transition:opacity .18s ease}
.view{display:none}.view.on{display:block;animation:pageFadeIn .3s ease-out both}
@keyframes pageFadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
#mapView{height:calc(100vh - var(--top-h,64px));padding:0}#mapView.on{animation:none}
#mapView iframe{width:100%;height:100%;border:0;display:block;background:var(--bg-base)}
.mapnote{max-width:480px;margin:60px auto;text-align:center}.mapnote p{color:var(--text-secondary);margin-bottom:1rem}
body.map-on{overflow:hidden}
.wrap footer,footer.pf{margin-top:2rem;color:var(--text-muted);font-size:.8rem;text-align:center}

/* вход */
.login{max-width:460px;margin:2.5rem auto 0;text-align:center}
.login h1{font-size:1.1rem;margin:0 0 .6rem}
.login p{color:var(--text-secondary);margin:.5rem 0 1rem}
.dc-btn{justify-content:center;min-width:14rem}
.btn.primary.dc-btn:hover,.btn.primary.dc-btn:focus-visible,.btn.primary.dc-btn:active{background:#5865F2;border-color:#5865F2;color:#fff}
.code{font:700 2.6rem 'JetBrains Mono',monospace;letter-spacing:10px;color:var(--accent);background:var(--code-bg);border:2px solid var(--border-color);box-shadow:inset 2px 2px 0 var(--bevel-lo);padding:1rem .5rem 1rem 1.1rem;margin:1.1rem 0 .5rem;user-select:all}
.cmd{font:500 .95rem 'JetBrains Mono',monospace;background:var(--code-bg);border:2px solid var(--border-color);padding:.4rem .7rem;display:inline-block}
.timer{color:var(--text-muted);font-size:.8rem;margin-top:.6rem}
.err{color:var(--bad);margin-top:.8rem;font-size:.9rem}
.warn{margin-top:1.1rem;font-size:.8rem;color:var(--text-muted);border-top:2px solid var(--border-color);padding-top:.9rem;text-align:left}

/* профиль */
.profile{display:flex;flex-direction:column;gap:1rem}
.banner{width:100%;max-width:608px;aspect-ratio:152/29;image-rendering:pixelated;border:2px solid var(--border-color);background:var(--code-bg);display:block}
.who{display:flex;align-items:center;gap:1rem}.who .head{--s:72px}
.who h2{margin:0;font:400 .85rem 'SpatiumFont','Press Start 2P',monospace;line-height:1.5}
.status{display:inline-flex;align-items:center;gap:.5rem;color:var(--text-secondary);font-size:.85rem;margin-top:.3rem}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.6rem}
.stat{background:var(--bg-surface);border:2px solid var(--border-color);padding:.7rem .85rem;box-shadow:inset 2px 2px 0 var(--bevel-hi),inset -2px -2px 0 var(--bevel-lo)}
.stat small{display:block;color:var(--text-muted);font-size:.75rem;margin-bottom:.25rem}.stat b{font-size:1.2rem}
.fhead{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:1.6rem 0 .8rem;flex-wrap:wrap}
.fhead h3{margin:0;font-size:1rem}.fhead h3 span{color:var(--text-muted);font-family:'Onest',sans-serif;font-weight:500;font-size:.9rem;margin-left:.4rem}
.search{background:var(--bg-base);border:2px solid var(--border-color);box-shadow:inset 2px 2px 0 var(--bevel-lo);padding:.5rem .8rem;color:var(--text-primary);font:500 .875rem 'Onest',sans-serif;min-width:200px;outline:none}
.search:focus{border-color:var(--border-focus)}
.flist{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.75rem}
.friend{display:flex;align-items:center;gap:.75rem;background:var(--bg-surface-hover);border:2px solid var(--border-color);padding:.7rem;box-shadow:inset 2px 2px 0 var(--bevel-hi),inset -2px -2px 0 var(--bevel-lo)}
.friend .head{--s:44px}
.friend .name{font-weight:600;display:flex;align-items:center;gap:.4rem}.friend .name .star{color:var(--accent);font-size:.8rem}
.friend .sub{color:var(--text-secondary);font-size:.8rem;margin-top:.1rem;display:flex;align-items:center;gap:.4rem}
.friend.off{opacity:.7}
.empty{color:var(--text-muted);text-align:center;padding:1.7rem 0}

@media(max-width:760px){
  .top{padding:0 .75rem;gap:.25rem}.top .logo{margin-right:.4rem}
  .top a.it{padding:.5rem .55rem;font-size:.82rem}.top a.it i{display:none}
  
  .wrap .hero{padding-top:1.5rem}
}



/* вики внутри сайта */
.view[data-view="wiki"].on{display:block}
.view[data-view="wiki"] .layout{min-height:calc(100vh - var(--top-h,64px))}
body:not(.wiki-on) .search-box-header,body:not(.wiki-on) .mobile-menu-btn{display:none!important}
.top .mobile-menu-btn{flex:none}
.top .search-box-header{flex:none}
#siteLoader{width:100%}

/* ---------- вкладка «Игроки» ---------- */
.friend.link{cursor:pointer}.friend.link:hover,.friend.link:focus-visible{border-color:var(--border-focus);outline:none}
.plsearch{position:relative;max-width:640px;margin:1.6rem auto 1.4rem}
.plsearch i{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}
.plsearch input{width:100%;box-sizing:border-box;background:var(--bg-base);border:2px solid var(--border-color);box-shadow:inset 2px 2px 0 var(--bevel-lo);
  padding:.85rem 1rem .85rem 2.8rem;color:var(--text-primary);font:500 1rem 'Onest',sans-serif;outline:none;border-radius:0}
.plsearch input:focus{border-color:var(--border-focus)}
.pllist{display:flex;flex-direction:column;gap:1.4rem;max-width:800px;margin:0 auto}
.plmore{text-align:center;margin:1.5rem 0}
.plcard{background:var(--bg-surface-hover);border:2px solid var(--border-color);box-shadow:inset 2px 2px 0 var(--bevel-hi),inset -2px -2px 0 var(--bevel-lo);padding:6px 6px 1rem}
.plcard.off .plbanner-img{filter:saturate(.7)}
.plbanner{position:relative;aspect-ratio:152/29;background:var(--code-bg);border:2px solid var(--bevel-lo)}
.plbanner-img{width:100%;height:100%;display:block;object-fit:cover;image-rendering:pixelated}
.plhead{position:absolute;left:14px;bottom:-72px;z-index:2;box-shadow:3px 3px 0 var(--pixel-shadow)}
.plrow{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.6rem .5rem 0 142px;min-height:2.4rem}
.plrow .spacer{flex:1}
.pltag,.plstatus{display:inline-flex;align-items:center;gap:.5rem;background:var(--bg-base);border:2px solid var(--border-color);padding:.35rem .6rem;
  font:400 .62rem 'SpatiumFont','Press Start 2P',monospace;text-transform:uppercase;line-height:1.3;color:var(--text-primary)}
.pltag .sep{color:var(--text-muted)}.pltag .nm{overflow-wrap:anywhere}
.plstatus .sq{width:10px;height:10px;background:var(--bad);display:inline-block;box-shadow:0 0 6px var(--bad)}
.plstatus.on .sq{background:var(--ok);box-shadow:0 0 6px var(--ok)}
.plbtn{display:inline-grid;place-items:center;width:2.3rem;height:2.3rem;background:var(--bg-base);border:2px solid var(--border-color);color:var(--text-primary);text-decoration:none;cursor:pointer}
.plbtn:hover,.plbtn:focus-visible{border-color:var(--border-focus);color:var(--accent);text-decoration:none;outline:none;transform:translate(-2px,-2px);box-shadow:3px 3px 0 var(--pixel-shadow)}
.plmeta{padding:.8rem .5rem 0 142px;color:var(--text-secondary);font-size:.85rem}
.pfx{--px:20px;display:inline-grid;place-items:center;width:var(--px);height:var(--px);flex:none;line-height:1}
.pfx-i{width:100%;height:100%;image-rendering:pixelated;object-fit:contain}
.pfx-e{font-size:calc(var(--px)*.8);font-family:'Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji',sans-serif;text-transform:none}

/* страница игрока */
.pdtop{padding:1.2rem 0 1rem}
.pdcard{display:flex;flex-direction:column;gap:1rem}
.pdbanner{border:2px solid var(--bevel-lo);background:var(--code-bg);aspect-ratio:152/29}
.pdwho{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.pdwho-t{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem}
.pdacts{display:flex;gap:.6rem;flex-wrap:wrap;margin-left:auto}

/* шкафчик */
.lkcount{color:var(--text-secondary);font-size:.9rem}
.lkcard{display:flex;flex-direction:column;gap:1rem}
.lktabs{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.lktabs .spacer{flex:1}
.lktab,.lkchk{background:var(--bg-base);border:2px solid var(--border-color);color:var(--text-secondary);padding:.6rem .85rem;cursor:pointer;
  font:400 .6rem 'SpatiumFont','Press Start 2P',monospace;text-transform:uppercase;border-radius:0}
.lktab:hover,.lkchk:hover{color:var(--text-primary);border-color:var(--border-focus)}
.lktab.on{background:var(--accent);border-color:var(--accent);color:#14161b}
:root[data-theme="light"] .lktab.on{color:#fff}
.lkchk i{visibility:hidden;margin-right:.4rem}.lkchk.on{color:var(--text-primary);border-color:var(--border-focus)}.lkchk.on i{visibility:visible;color:var(--ok)}
.lkprog{height:10px;background:var(--code-bg);border:2px solid var(--bevel-lo)}.lkprog i{display:block;height:100%;background:var(--accent-gradient);transition:width .25s steps(8)}
.lknote{display:flex;gap:.6rem;color:var(--text-secondary);font-size:.82rem;border:2px dashed var(--border-color);padding:.6rem .8rem}.lknote i{color:var(--accent);margin-top:.15rem}
.lkgrid{display:grid;gap:.5rem}
.lkgrid.pf{grid-template-columns:repeat(auto-fill,minmax(92px,1fr))}
.lkgrid.bn{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.slot{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.45rem;min-height:86px;padding:.7rem .4rem;cursor:pointer;
  background:var(--bg-surface);border:2px solid var(--border-color);box-shadow:inset 2px 2px 0 var(--bevel-hi),inset -2px -2px 0 var(--bevel-lo);color:var(--text-primary);font-family:'Onest',sans-serif;border-radius:0}
.slot .sn{font-size:.74rem;font-weight:500;text-align:center;line-height:1.2;overflow-wrap:anywhere}
.slot.lock{opacity:.62}.slot.lock .pfx-e,.slot.lock .pfx-i,.slot.lock .slot-banner{filter:grayscale(1) brightness(.9)}
.slot:hover,.slot:focus-visible,.slot.sel{border-color:var(--border-focus);outline:none;opacity:1}
.slot.worn{border-color:var(--accent);box-shadow:inset 2px 2px 0 var(--bevel-hi),inset -2px -2px 0 var(--bevel-lo),0 0 0 2px var(--accent-glow)}
.slot .tagw{position:absolute;top:-2px;right:-2px;background:var(--accent);color:#14161b;font:400 .45rem 'SpatiumFont','Press Start 2P',monospace;text-transform:uppercase;padding:.25rem .35rem}
:root[data-theme="light"] .slot .tagw{color:#fff}
.slot .lk{position:absolute;top:.4rem;right:.45rem;font-size:.7rem;color:var(--text-muted)}
.lkgrid.bn .slot{align-items:stretch;gap:.5rem;padding:.5rem}
.slot-banner{width:100%;aspect-ratio:152/29;object-fit:cover;image-rendering:pixelated;display:block;border:2px solid var(--bevel-lo);background:var(--code-bg)}
.lkpicked{display:flex;gap:1rem;align-items:center;background:var(--bg-base);border:2px solid var(--border-color);box-shadow:inset 2px 2px 0 var(--bevel-lo);padding:.9rem 1rem;min-height:56px}
.lkpicked:empty{display:none}
.pk-art{flex:none;display:grid;place-items:center;min-width:48px}
.pk-banner{width:min(260px,38vw);aspect-ratio:152/29;object-fit:cover;image-rendering:pixelated;border:2px solid var(--bevel-lo)}
.pk-info h4{margin:0 0 .25rem;font:600 1rem 'Onest',sans-serif}.pk-desc{margin:.1rem 0;color:var(--text-secondary);font-size:.85rem}
.pk-state{margin-top:.45rem;font-size:.8rem;font-weight:600}.pk-state.worn{color:var(--accent)}.pk-state.own{color:var(--ok)}.pk-state.lock{color:var(--text-muted)}

@media(max-width:760px){
  .plhead{--s:52px!important;left:10px;bottom:-48px}
  .avatar.plhead{--av:74px!important}
  .pdwho > .avatar,.pdwho > #meHead{margin-top:-56px}
  .pdwho > .avatar{--av:111px!important}
  .plrow,.plmeta{padding-left:98px}
  .plrow .spacer{display:none}.plrow .plbtn:nth-last-child(2){margin-left:auto}
  .pdacts{margin-left:0}
  .lkpicked{flex-direction:column;align-items:flex-start}
  .pk-banner{width:100%}
}
@media(prefers-reduced-motion:reduce){.lkprog i{transition:none}}

/* аккаунт в шапке */
.acc-btn{flex:none;display:inline-grid;place-items:center;padding:0;background:none;border:0;cursor:pointer;margin-left:.6rem}
.acc-btn .head{--s:36px}
.acc-btn:hover .head,.acc-btn:focus-visible .head,.acc-btn[aria-expanded="true"] .head{border-color:var(--border-focus);outline:none}
/* объёмная голова: второй слой (причёска, шапка) чуть крупнее лица и выступает за его края */
.head.head3d{overflow:visible;background:none;border:0;box-shadow:none;filter:drop-shadow(0 2px 0 rgba(0,0,0,.35));transition:transform .12s steps(2)}
.head3d i{background-size:calc(var(--s)*8) auto}
.head3d .face{background-position:calc(var(--s)*-1) calc(var(--s)*-1)}
.head3d .hat{inset:auto;left:calc(var(--s)*-.0625);top:calc(var(--s)*-.0625);width:calc(var(--s)*1.125);height:calc(var(--s)*1.125);
  background-size:calc(var(--s)*9) auto;background-position:calc(var(--s)*-5.625) calc(var(--s)*-1.125)}
.acc-btn:hover .head3d,.acc-btn:focus-visible .head3d,.acc-btn[aria-expanded="true"] .head3d{transform:translateY(-2px);border:0}
.pk-act{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-top:.7rem}
.pk-hint{color:var(--text-muted);font-size:.75rem}
.acc-tip{position:fixed;z-index:500;background:var(--bg-base);color:var(--text-primary);border:2px solid var(--border-color);padding:.4rem .6rem;
  font:400 .6rem 'SpatiumFont','Press Start 2P',monospace;box-shadow:3px 3px 0 var(--pixel-shadow);pointer-events:none;white-space:nowrap}
.acc-menu{position:fixed;z-index:500;width:min(280px,92vw);background:var(--bg-surface-hover);border:2px solid var(--border-color);
  box-shadow:inset 2px 2px 0 var(--bevel-hi),inset -2px -2px 0 var(--bevel-lo),5px 5px 0 var(--pixel-shadow);padding:.8rem;display:flex;flex-direction:column;gap:.6rem;animation:pageFadeIn .15s ease-out both}
.acc-menu hr{border:0;border-top:2px solid var(--border-color);margin:0}
.acc-menu .pltag{align-self:flex-start}
.acc-row{display:flex;align-items:center;gap:.6rem;font-size:.95rem;color:var(--text-primary);background:none;border:0;padding:.35rem .25rem;font-family:'Onest',sans-serif;text-align:left;width:100%}
.acc-row .mut{color:var(--text-muted);font-size:.85rem}
button.acc-row{cursor:pointer;text-transform:uppercase;font:400 .62rem 'SpatiumFont','Press Start 2P',monospace}
button.acc-row:hover{background:var(--bg-surface)}
.acc-row.danger{color:var(--bad)}
.spat-coin{flex:none;display:inline-block;vertical-align:middle;image-rendering:pixelated}
.withcoin{display:inline-flex;align-items:center;gap:.45rem}

/* лидерборды */
.plsearchrow{display:flex;align-items:stretch;gap:.7rem;max-width:800px;margin:1.6rem auto 1.4rem}
.plsearchrow .plsearch{flex:1;min-width:0;max-width:none;margin:0}
.plsearchrow .btn{flex:none;display:inline-flex;align-items:center;gap:.5rem;white-space:nowrap}
@media(max-width:480px){.plsearchrow .btn span{display:none}.plsearchrow .btn{padding-left:.9rem;padding-right:.9rem}}
.topcard{display:flex;flex-direction:column;gap:1rem;max-width:800px;margin:0 auto}
.lkchk:disabled{opacity:.55;cursor:default;pointer-events:none}
.topmine{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem;background:var(--bg-base);border:2px solid var(--accent);padding:.6rem .8rem;font-size:.9rem}
.topmine .mut{color:var(--text-muted)}
.toplist{display:flex;flex-direction:column;gap:.5rem}
.toprow{display:flex;align-items:center;gap:.8rem;padding:.5rem .7rem;background:var(--bg-base);border:2px solid var(--border-color);color:var(--text-primary);text-decoration:none}
.toprow:hover,.toprow:focus-visible{border-color:var(--border-focus);text-decoration:none;outline:none}
.toprow.me{border-color:var(--accent)}
.toprow .spacer{flex:1}
.toppos{flex:none;width:2.2rem;text-align:center;font:400 .85rem 'SpatiumFont','Press Start 2P',monospace;color:var(--text-muted)}
.toprow.p1 .toppos{color:#ffd700}.toprow.p2 .toppos{color:#c0c7d1}.toprow.p3 .toppos{color:#cd7f32}
.toprow.p1{border-color:#ffd700}
.topwho{display:flex;align-items:center;gap:.6rem;min-width:0;flex-wrap:wrap}
.topyou{font-size:.7rem;color:var(--accent)}
.topval{flex:none;font-size:1rem;white-space:nowrap}
.toprow .head{flex:none}
@media(max-width:560px){.toprow{gap:.5rem;padding:.45rem .5rem}.toppos{width:1.6rem}.topval{font-size:.85rem}}

/* история спатов */
.sh-ov{position:fixed;inset:0;z-index:600;background:rgba(0,0,0,.6);display:grid;place-items:center;padding:16px;animation:pageFadeIn .15s ease-out both}
.sh-box{width:min(460px,100%);max-height:min(640px,calc(100vh - 32px));display:flex;flex-direction:column;background:var(--bg-surface-hover);border:2px solid var(--border-color);
  box-shadow:inset 2px 2px 0 var(--bevel-hi),inset -2px -2px 0 var(--bevel-lo),6px 6px 0 var(--pixel-shadow);color:var(--text-primary)}
.sh-head{display:flex;align-items:center;gap:.6rem;padding:.8rem .9rem;border-bottom:2px solid var(--border-color)}
.sh-head h3{margin:0;flex:1;font:400 .7rem 'SpatiumFont','Press Start 2P',monospace;text-transform:uppercase}
.sh-x{background:none;border:0;color:var(--text-muted);cursor:pointer;font-size:1.1rem;padding:.2rem .4rem}
.sh-x:hover,.sh-x:focus-visible{color:var(--text-primary);outline:none}
.sh-sums{display:flex;gap:.6rem;padding:.7rem .9rem;border-bottom:2px solid var(--border-color)}
.sh-sum{flex:1;display:flex;flex-direction:column;gap:.2rem;background:var(--bg-base);border:2px solid var(--border-color);padding:.45rem .6rem}
.sh-sum .mut{color:var(--text-muted);font-size:.75rem}
.sh-sum b{font-size:1rem}
.sh-sum .plus,.sh-row.in .sh-amt{color:var(--ok)}
.sh-sum .minus,.sh-row.out .sh-amt{color:var(--bad)}
.sh-list{overflow-y:auto;padding:.4rem .9rem .9rem;display:flex;flex-direction:column;gap:.3rem;min-height:120px;color:var(--text-muted)}
.sh-day{margin-top:.6rem;font:400 .55rem 'SpatiumFont','Press Start 2P',monospace;text-transform:uppercase;color:var(--text-muted)}
.sh-row{display:flex;align-items:center;gap:.7rem;padding:.5rem .55rem;background:var(--bg-base);border:2px solid var(--border-color)}
.sh-row>i{flex:none;width:1.4rem;text-align:center;font-size:.8rem}
.sh-row.in>i{color:var(--ok)}.sh-row.out>i{color:var(--bad)}
.sh-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}
.sh-why{font-size:.9rem;color:var(--text-primary);overflow-wrap:anywhere}
.sh-time{font-size:.72rem;color:var(--text-muted)}
.sh-amt{flex:none;font-size:.95rem;white-space:nowrap}
.sh-empty{padding:1.6rem .5rem;text-align:center;font-size:.9rem}

/* кабинет */
.colcard{margin-top:1rem;display:flex;flex-direction:column;gap:.7rem}.colcard h3{margin:0;font-size:1rem}
.colrow{display:grid;grid-template-columns:90px 1fr 56px;align-items:center;gap:.8rem;font-size:.9rem;color:var(--text-secondary)}
.colrow b{color:var(--text-primary);text-align:right}
.fctl{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.friend .name{gap:.45rem}
#meHead .head{--s:72px}
@media(max-width:760px){.colrow{grid-template-columns:76px 1fr 48px}}

/* друзья: управление с сайта */
.fadd{display:flex;gap:.5rem;flex-wrap:wrap;margin:0 0 .8rem}.fadd .search{flex:1 1 220px}
.friend .finfo{min-width:0}.friend .finfo .name span{overflow:hidden;text-overflow:ellipsis}
.friend .fact{margin-left:auto;display:flex;gap:.35rem;flex:none}
.fbtn{display:inline-grid;place-items:center;width:2.1rem;height:2.1rem;padding:0;background:var(--bg-base);border:2px solid var(--border-color);color:var(--text-secondary);cursor:pointer;font-size:.8rem}
.fbtn:hover,.fbtn:focus-visible{border-color:var(--border-focus);color:var(--text-primary);outline:none}
.fbtn.on{color:var(--accent)}.fbtn.ok:hover,.fbtn.ok:focus-visible{color:var(--ok);border-color:var(--ok)}
.fbtn.danger:hover,.fbtn.danger:focus-visible,.fbtn.danger.on{color:var(--bad);border-color:var(--bad)}
.btn.danger{border-color:var(--bad);color:var(--bad)}
.btn:disabled,.fbtn:disabled,.plbtn:disabled{opacity:.6;cursor:default;pointer-events:none}
.btn.inert{opacity:.6;cursor:default}.btn.inert:hover{transform:none;box-shadow:none;border-color:var(--border-color)}
.plbtn.fr.outgoing{color:var(--text-muted)}.plbtn.fr.incoming{color:var(--ok)}.plbtn.fr.friend{color:var(--accent)}
.plbtn.inert{opacity:.7;cursor:default}.plbtn.inert:hover{transform:none;box-shadow:none;border-color:var(--border-color);color:inherit}
.plbtn.fr.friend.inert:hover{color:var(--accent)}
/* кнопка ждёт ответа сервера Minecraft */
.wait{cursor:progress}.wait>i{display:none}
.wait::before{content:"";flex:none;width:.85em;height:.85em;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:fspin .7s linear infinite}
.btn.wait::before{margin-right:.1rem}
@keyframes fspin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.wait::before{animation-duration:2s}}
/* значок «есть заявки» у иконки аккаунта и в меню */
.acc-btn{position:relative}
.acc-badge{position:absolute;top:-6px;right:-8px;min-width:18px;height:18px;padding:0 4px;display:grid;place-items:center;background:var(--bad);color:#fff;font:600 .65rem 'Onest',sans-serif;border:2px solid var(--bg-surface-hover,#222);pointer-events:none}
a.acc-row{text-decoration:none}a.acc-row:hover{background:var(--bg-surface)}
.acc-row .acc-n{margin-left:auto;background:var(--bad);color:#fff;padding:0 .4rem;font-size:.8rem}
@media(max-width:760px){
  .plrow .plbtn.fr{margin-left:auto}.plrow .plbtn.fr ~ .plbtn{margin-left:0}
  .friend .fact{align-self:flex-start}
}

/* ---------- вкладка «Чаты» ---------- */
.top a.it .nbadge{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 4px;background:var(--bad);color:#fff;font:600 .65rem 'Onest',sans-serif}
.chatwrap{max-width:1100px}
.chat-login{max-width:460px;margin:2.5rem auto 0;text-align:center}
.chat-login h1{font-size:1.1rem;margin:0 0 .6rem}.chat-login p{color:var(--text-secondary);margin:.5rem 0 1.1rem}
.chat-app{display:grid;grid-template-columns:330px minmax(0,1fr);gap:1rem;height:calc(100vh - var(--top-h,64px) - 2.5rem);min-height:460px;margin-top:1rem}
.chat-side,.chat-main{display:flex;flex-direction:column;min-height:0;min-width:0;background:var(--bg-surface-hover);border:2px solid var(--border-color);
  box-shadow:inset 2px 2px 0 var(--bevel-hi),inset -2px -2px 0 var(--bevel-lo)}
.chat-side-head{padding:.9rem .9rem .5rem}
.chat-side-head h3{margin:0 0 .7rem;font-size:1rem}
.chat-new{display:flex;gap:.4rem}.chat-new .search,.chat-compose .search{flex:1;min-width:0}
.chat-list{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem;padding:.5rem .9rem .9rem}
.chat-list .empty{padding:1.2rem .3rem;font-size:.85rem;line-height:1.45}
.crow{position:relative;display:flex;align-items:center;gap:.65rem;padding:.6rem;background:var(--bg-surface);border:2px solid var(--border-color);cursor:pointer;
  box-shadow:inset 2px 2px 0 var(--bevel-hi),inset -2px -2px 0 var(--bevel-lo)}
.crow:hover,.crow:focus-visible{border-color:var(--border-focus);outline:none}
.crow.on{border-color:var(--accent);box-shadow:inset 2px 2px 0 var(--bevel-hi),inset -2px -2px 0 var(--bevel-lo),0 0 0 2px var(--accent-glow)}
.crow .head{--s:44px}
.crow .head3d,.chwho .head3d{margin:3px;flex:none}   /* объёмная голова, как у кнопки аккаунта в шапке: второй слой выступает за края */
.crow:hover .head3d{transform:translateY(-2px)}
.cinfo{flex:1;min-width:0}
.cname{display:flex;align-items:center;gap:.4rem;font-weight:600;font-size:.92rem}
.cname span:not(.pfx){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cpin{color:var(--accent);font-size:.7rem;flex:none}
.cprev{color:var(--text-secondary);font-size:.8rem;margin-top:.15rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crow.unread .cprev{color:var(--text-primary);font-weight:600}
.cside{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:.3rem}
.ctime{color:var(--text-muted);font-size:.7rem}
.cn{background:var(--bad);color:#fff;font:600 .72rem 'Onest',sans-serif;min-width:20px;text-align:center;padding:0 .35rem}
.cacts{display:flex;gap:.35rem;flex:none}
@media(hover:hover){
  .crow .cacts{display:none;position:absolute;right:.45rem;top:50%;transform:translateY(-50%);padding:.2rem;background:var(--bg-surface-hover)}
  .crow:hover .cacts,.crow:focus-within .cacts,.crow.armed .cacts{display:flex}
}
.chat-empty{margin:auto;color:var(--text-muted);text-align:center;padding:2rem;max-width:36ch;line-height:1.5}
.chat-empty i{display:block;font-size:2.2rem;color:var(--accent);margin-bottom:.9rem}
.chat-conv{display:flex;flex-direction:column;min-height:0;flex:1}
/* шапка переписки: баннер игрока - фон, сверху он виден как есть, к низу затемняется; на тёмной части голова, ник и статус */
.chat-head{position:relative;isolation:isolate;flex:none;display:flex;align-items:flex-end;gap:.7rem;padding:.8rem .9rem;overflow:hidden;
  aspect-ratio:152/29;min-height:112px;max-height:150px;background:#1b1d24;border-bottom:2px solid var(--border-color)}
.chat-head .chat-bnimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;image-rendering:pixelated;z-index:-2}
.chat-head::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to bottom,rgba(8,9,13,0) 0%,rgba(8,9,13,.12) 30%,rgba(8,9,13,.9) 100%)}
.chat-head.off .chat-bnimg{filter:saturate(.7)}
.chat-head .status{color:#e4e6ec;text-shadow:0 1px 2px rgba(0,0,0,.85);margin-top:0}
.chat-head .chwho-t{gap:.35rem}
.chwho{display:flex;align-items:center;gap:.7rem;min-width:0;color:inherit;text-decoration:none}
.chwho:hover{text-decoration:none}
.chwho-t{display:flex;flex-direction:column;gap:.3rem;min-width:0;align-items:flex-start}
.chacts{margin-left:auto;display:flex;gap:.35rem;flex:none}
.chat-back{display:none;padding:.55rem .7rem}
.chat-msgs{flex:1;min-height:0;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.4rem;background:var(--bg-base);box-shadow:inset 2px 2px 0 var(--bevel-lo)}
.cempty{margin:auto;color:var(--text-muted);text-align:center;font-size:.88rem;max-width:34ch;line-height:1.45}
.cday{align-self:center;margin:.6rem 0 .3rem;font:400 .55rem 'SpatiumFont','Press Start 2P',monospace;text-transform:uppercase;color:var(--text-muted);
  background:var(--bg-surface);border:2px solid var(--border-color);padding:.3rem .5rem}
.cmsg{display:flex}.cmsg.me{justify-content:flex-end}
.cbub{max-width:min(72%,520px);padding:.5rem .7rem;border:2px solid var(--border-color);background:var(--bg-surface);overflow-wrap:anywhere;font-size:.92rem;line-height:1.4}
.cmsg.me .cbub{background:var(--accent-glow);border-color:var(--accent)}
.cmeta{display:block;text-align:right;font-size:.65rem;color:var(--text-muted);margin-top:.2rem}.cmeta i{font-size:.6rem}
.clink{color:var(--accent);text-decoration:underline;word-break:break-all}
.chat-compose{display:flex;gap:.5rem;padding:.7rem .9rem .4rem;border-top:2px solid var(--border-color)}
.chat-note{padding:0 .9rem .7rem;color:var(--text-muted);font-size:.72rem}
@media(max-width:760px){
  .chat-app{grid-template-columns:1fr;height:calc(100vh - var(--top-h,64px) - 1.5rem)}
  .chat-app.conv-open .chat-side{display:none}
  .chat-app:not(.conv-open) .chat-main{display:none}
  .chat-back{display:inline-flex}
  .cbub{max-width:88%}
  .chwho .pltag{font-size:.5rem}
}

/* ---------- уведомления о сообщениях ---------- */
.chat-side-top{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-bottom:.7rem}
.chat-side-top h3{margin:0}
.fbtn.attn{border-color:var(--accent);animation:bellpulse 1.6s ease-in-out infinite}
@keyframes bellpulse{50%{box-shadow:0 0 0 3px var(--accent-glow)}}
.nstack{position:fixed;top:calc(var(--top-h,64px) + .6rem);right:.8rem;z-index:600;display:flex;flex-direction:column;gap:.5rem;width:min(340px,calc(100vw - 1.6rem));pointer-events:none}
.ntoast{pointer-events:auto;display:flex;align-items:center;gap:.65rem;padding:.6rem .7rem;background:var(--bg-surface);border:2px solid var(--accent);cursor:pointer;
  box-shadow:inset 2px 2px 0 var(--bevel-hi),inset -2px -2px 0 var(--bevel-lo),4px 4px 0 var(--pixel-shadow);animation:ntin .18s ease-out}
.ntoast:hover,.ntoast:focus-visible{border-color:var(--border-focus);outline:none}
@keyframes ntin{from{transform:translateX(24px);opacity:0}to{transform:none;opacity:1}}
.nt-b{flex:1;min-width:0}
.nt-n{display:flex;align-items:center;gap:.4rem;font-weight:600;font-size:.88rem}.nt-n i{color:var(--accent);font-size:.8rem}
.nt-t{color:var(--text-secondary);font-size:.82rem;margin-top:.15rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nt-x{flex:none;background:none;border:0;color:var(--text-muted);cursor:pointer;padding:.3rem;font-size:.9rem}.nt-x:hover{color:var(--text-primary)}
@media(prefers-reduced-motion:reduce){.ntoast,.fbtn.attn{animation:none}}

/* ---------- анимация иконок в шапке при наведении: у каждой своя, с «пружиной»; иконка загорается акцентом, снизу выезжает линия ---------- */
.top a.it i{transform-origin:50% 55%;transition:color .2s ease,filter .25s ease}
.top a.it:hover i,.top a.it:focus-visible i{color:var(--accent);filter:drop-shadow(0 0 6px var(--accent-glow));
  animation-duration:.75s;animation-timing-function:cubic-bezier(.34,1.56,.64,1);animation-fill-mode:both}
.top a.it::before{content:'';position:absolute;left:.8rem;right:.8rem;bottom:3px;height:2px;background:var(--accent-gradient);
  transform:scaleX(0);transform-origin:left;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}
.top a.it:hover::before,.top a.it:focus-visible::before{transform:scaleX(1)}
.top a.it.active::before{display:none}
.top a.it[data-route="home"]:hover i,.top a.it[data-route="home"]:focus-visible i{animation-name:hdrHop}
.top a.it[data-route="profile"]:hover i,.top a.it[data-route="profile"]:focus-visible i{animation-name:hdrWave}
.top a.it[data-route="players"]:hover i,.top a.it[data-route="players"]:focus-visible i{animation-name:hdrPop}
.top a.it[data-route="chats"]:hover i,.top a.it[data-route="chats"]:focus-visible i{animation-name:hdrShake}
.top a.it[data-route="wiki"]:hover i,.top a.it[data-route="wiki"]:focus-visible i{animation-name:hdrFlip}
.top a.it[data-route="map"]:hover i,.top a.it[data-route="map"]:focus-visible i{animation-name:hdrSwing}
/* у «Чатов» ещё расходится кольцо, как сигнал нового сообщения */
.top a.it[data-route="chats"] i{position:relative}
.top a.it[data-route="chats"] i::after{content:'';position:absolute;inset:-5px -4px;border:2px solid var(--accent);border-radius:50%;opacity:0;pointer-events:none}
.top a.it[data-route="chats"]:hover i::after,.top a.it[data-route="chats"]:focus-visible i::after{animation:hdrPing .75s ease-out both}
@keyframes hdrHop{
  0%{transform:translateY(0) scale(1,1)}
  14%{transform:translateY(0) scale(1.22,.74)}
  38%{transform:translateY(-8px) scale(.86,1.2)}
  62%{transform:translateY(0) scale(1.16,.82)}
  80%{transform:translateY(-2px) scale(.96,1.05)}
  100%{transform:translateY(0) scale(1,1)}}
@keyframes hdrWave{
  0%{transform:rotate(0) translateY(0) scale(1)}
  18%{transform:rotate(-20deg) translateY(-2px) scale(1.18)}
  42%{transform:rotate(16deg) translateY(-1px) scale(1.12)}
  66%{transform:rotate(-9deg) scale(1.05)}
  84%{transform:rotate(4deg) scale(1.02)}
  100%{transform:rotate(0) translateY(0) scale(1)}}
@keyframes hdrPop{
  0%{transform:scale(1) rotate(0)}
  25%{transform:scale(1.45) rotate(-8deg)}
  50%{transform:scale(.82) rotate(6deg)}
  72%{transform:scale(1.18) rotate(-3deg)}
  100%{transform:scale(1) rotate(0)}}
@keyframes hdrShake{
  0%{transform:translate(0,0) rotate(0) scale(1)}
  14%{transform:translate(-2px,-2px) rotate(-14deg) scale(1.2)}
  34%{transform:translate(2px,-1px) rotate(12deg) scale(1.15)}
  54%{transform:translate(-2px,0) rotate(-8deg) scale(1.08)}
  74%{transform:translate(1px,0) rotate(4deg) scale(1.03)}
  100%{transform:translate(0,0) rotate(0) scale(1)}}
@keyframes hdrPing{0%{transform:scale(.4);opacity:.9}100%{transform:scale(1.7);opacity:0}}
@keyframes hdrFlip{
  0%{transform:perspective(80px) rotateY(0) scale(1)}
  50%{transform:perspective(80px) rotateY(180deg) scale(1.25)}
  100%{transform:perspective(80px) rotateY(360deg) scale(1)}}
@keyframes hdrSwing{
  0%{transform:rotate(0) translateY(0)}
  20%{transform:rotate(-28deg) translateY(-3px) scale(1.12)}
  44%{transform:rotate(22deg) translateY(-2px) scale(1.08)}
  66%{transform:rotate(-11deg) translateY(-1px)}
  84%{transform:rotate(5deg)}
  100%{transform:rotate(0) translateY(0)}}
@media(prefers-reduced-motion:reduce){
  .top a.it:hover i,.top a.it:focus-visible i,.top a.it:hover i::after,.top a.it:focus-visible i::after{animation:none}
  .top a.it::before{transition:none}
}
.termwin{margin-top:.8rem;position:relative;overflow:hidden;background:#000a00;color:#33ff66;border:1px solid #1f9a40;border-radius:6px;
  font-family:'JetBrains Mono','IBM Plex Mono',ui-monospace,Consolas,monospace;font-size:.85rem;line-height:1.5;
  box-shadow:0 0 18px rgba(51,255,102,.18),inset 0 0 40px rgba(51,255,102,.06)}
.termwin::after{content:'';position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(0,0,0,.18) 0 1px,transparent 1px 3px)}
.termwin .tbar{padding:.5rem .9rem;background:#04200a;border-bottom:1px solid #1f9a40;color:#7dffa0;font-size:.75rem;letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.termwin .tbody{padding:.8rem .9rem .9rem;text-shadow:0 0 6px rgba(51,255,102,.45)}
.termwin .tlabel{color:#7dffa0}
.termwin .tval{font-size:1.6rem;font-weight:600;color:#d6ffe0;margin:.15rem 0}
.termwin .tprog{color:#33ff66;letter-spacing:.02em}

/* ---- 3D-просмотр скина (skin3d.js) ---- */
.sk3-click{cursor:pointer;outline:none}
.sk3-click::after{content:'3D';position:absolute;right:-4px;bottom:-4px;z-index:4;padding:3px 5px;background:var(--accent);color:#14161b;font:400 .5rem 'SpatiumFont','Press Start 2P',monospace;box-shadow:2px 2px 0 var(--pixel-shadow);opacity:0;transform:translateY(3px);transition:opacity .15s,transform .15s;pointer-events:none}
:root[data-theme="light"] .sk3-click::after{color:#fff}
.sk3-click:hover::after,.sk3-click:focus-visible::after{opacity:1;transform:none}
.sk3-click:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.sk3-box{width:min(560px,100%);max-height:calc(100vh - 32px);overflow:auto}
.sk3-stage{position:relative;height:min(440px,58vh);min-height:260px;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;
  background:radial-gradient(ellipse at 50% 85%,rgba(255,255,255,.08),transparent 60%),var(--bg-base);box-shadow:inset 0 2px 0 var(--bevel-lo)}
.sk3-stage.drag{cursor:grabbing}
.sk3-stage canvas{width:100%;height:100%;display:block}
.sk3-msg{position:absolute;inset:0;display:grid;place-items:center;padding:1rem;text-align:center;color:var(--text-muted);font:400 .6rem/1.6 'SpatiumFont','Press Start 2P',monospace}
.sk3-bar{display:flex;flex-direction:column;gap:.5rem;padding:.7rem .9rem;border-top:2px solid var(--border-color)}
.sk3-row{display:flex;flex-wrap:wrap;gap:.4rem}
.sk3-chip{display:inline-flex;align-items:center;gap:.4rem;background:var(--bg-surface);color:var(--text-secondary);border:2px solid var(--border-color);padding:.4rem .6rem;cursor:pointer;
  font:500 .8rem 'Onest',sans-serif;box-shadow:inset 2px 2px 0 var(--bevel-hi),inset -2px -2px 0 var(--bevel-lo)}
.sk3-chip:hover,.sk3-chip:focus-visible{color:var(--text-primary);border-color:var(--border-focus);outline:none}
.sk3-chip.on{background:var(--accent);border-color:var(--accent);color:#14161b}
:root[data-theme="light"] .sk3-chip.on{color:#fff}
.sk3-hint{padding:0 .9rem .8rem;color:var(--text-muted);font-size:.75rem}

.sidebar-search{display:none}
@media(max-width:820px){.sidebar-search{display:block}}

/* ---- шкафчик: на ПК панель справа, на телефоне и планшете шторка снизу ---- */
:root{--lk-w:clamp(400px,30vw,500px)}
.lk-backdrop{position:fixed;inset:0;z-index:299;background:rgba(0,0,0,.55);opacity:0;visibility:hidden;transition:opacity .2s,visibility 0s .2s}
.lk-backdrop.on{opacity:1;visibility:visible;transition:opacity .2s}
.lkdrawer{position:fixed;z-index:300;left:0;right:0;bottom:0;margin:0 auto;max-width:720px;height:min(88vh,760px);height:min(88dvh,760px);display:flex;flex-direction:column;
  background:var(--bg-base);border:2px solid var(--border-color);border-bottom:0;box-shadow:0 -4px 0 var(--pixel-shadow);outline:none;overscroll-behavior:contain;
  transform:translateY(110%);visibility:hidden;transition:transform .22s steps(6),visibility 0s .22s}
.lkdrawer.on{transform:none;visibility:visible;transition:transform .22s steps(6),visibility 0s}
.lkdrawer.drag{transition:none}
.lkd-top{flex:none;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}
.lkd-grab{display:grid;place-items:center;padding:.55rem 0 .15rem}
.lkd-grab i{display:block;width:44px;height:5px;background:var(--border-color)}
.lkd-head{display:flex;align-items:center;gap:.6rem;padding:.25rem .9rem .6rem}
.lkd-head h3{margin:0;flex:1;min-width:0;display:flex;align-items:center;gap:.5rem;font:600 1.05rem 'Onest',sans-serif;white-space:nowrap;overflow:hidden}
.lkd-head h3 i{color:var(--accent)}
.lkwho{color:var(--text-secondary);font-weight:500;overflow:hidden;text-overflow:ellipsis;min-width:0}
.lkcount{flex:none;color:var(--text-secondary);font-size:.9rem;font-weight:600}
.lkd-x{flex:none;width:44px;height:44px;display:grid;place-items:center;background:var(--bg-surface);border:2px solid var(--border-color);color:var(--text-secondary);cursor:pointer;border-radius:0;font-size:1rem}
.lkd-x:hover,.lkd-x:focus-visible{color:var(--text-primary);border-color:var(--border-focus)}
.btn[data-lkbtn].on{border-color:var(--accent);box-shadow:inset 2px 2px 0 var(--bevel-hi),inset -2px -2px 0 var(--bevel-lo),0 0 0 2px var(--accent-glow)}

.lkd-tools{flex:none;display:flex;flex-direction:column;gap:.6rem;padding:0 .9rem .7rem}
.lkdrawer .lktabs{display:grid;grid-template-columns:1fr 1fr;gap:.4rem;flex-wrap:nowrap;overflow:visible;margin:0;padding:0}
.lkdrawer .lktab{min-height:46px;padding:.5rem .4rem;font-size:.6rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lkdrawer .lkprog{height:6px}
.lkfind{display:flex;flex-direction:column;gap:.5rem}
.lksearch{position:relative;display:block}
.lksearch>i{position:absolute;left:.85rem;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:.9rem;pointer-events:none}
.lksearch input{display:block;width:100%;box-sizing:border-box;height:46px;padding:.5rem 2.8rem .5rem 2.5rem;border:2px solid var(--border-color);background:var(--bg-surface);color:var(--text-primary);
  font:500 16px 'Onest',sans-serif;outline:none;border-radius:0;box-shadow:inset 2px 2px 0 var(--bevel-lo);-webkit-appearance:none;appearance:none}
.lksearch input:focus{border-color:var(--border-focus)}
.lksearch input:focus ~ i,.lksearch:focus-within>i{color:var(--accent)}
.lksearch input::-webkit-search-cancel-button{-webkit-appearance:none}
.lkclear{position:absolute;right:2px;top:2px;width:42px;height:42px;display:grid;place-items:center;background:none;border:0;color:var(--text-muted);cursor:pointer;font-size:.95rem}
.lkclear:hover,.lkclear:focus-visible{color:var(--text-primary)}
.lkfilters{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem}
.lkdrawer .lkchk{min-height:42px;padding:.4rem .3rem;font-size:.58rem;white-space:nowrap;justify-content:center;text-align:center}
.lkdrawer .lkchk b{font-weight:400;opacity:.65;margin-left:.35rem}
.lkdrawer .lkfilters .lkchk.on{background:var(--bg-surface-hover);border-color:var(--accent);color:var(--accent)}
.lkdrawer .lknote{font-size:.78rem;padding:.5rem .7rem}

.lkdrawer .lkgrid{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;align-content:start;grid-auto-rows:max-content;gap:.5rem;padding:.25rem .9rem .9rem;scroll-padding:.5rem}
.lkdrawer .lkgrid.pf{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}
.lkdrawer .lkgrid.bn{grid-template-columns:1fr}
.lkdrawer .lkgrid .empty{grid-column:1/-1;padding:2.2rem .5rem}
.lkdrawer .slot{min-height:96px;padding:.7rem .35rem;gap:.35rem;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.lkdrawer .slot .sn{font-size:.74rem}
.lkdrawer .slot .sp{display:inline-flex;align-items:center;gap:.25rem;font-size:.7rem;font-weight:600;color:var(--text-muted)}
.lkdrawer .slot.sel{border-color:var(--border-focus);box-shadow:inset 2px 2px 0 var(--bevel-hi),inset -2px -2px 0 var(--bevel-lo),0 0 0 2px var(--border-focus)}
.lkdrawer .slot.worn.sel{border-color:var(--accent);box-shadow:inset 2px 2px 0 var(--bevel-hi),inset -2px -2px 0 var(--bevel-lo),0 0 0 2px var(--accent)}
.lkdrawer .slot:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.lkdrawer .lkgrid.bn .slot{min-height:0;padding:.5rem;gap:.4rem;align-items:stretch}
.lkdrawer .lkgrid.bn .slot .sn{text-align:left;font-size:.8rem}
.lkdrawer .lkgrid.bn .slot .lk{top:.7rem;right:.7rem;background:rgba(0,0,0,.65);color:#fff;padding:.3rem .35rem;font-size:.65rem}
.lkdrawer .lkgrid.bn .slot .tagw{top:.5rem;right:.5rem}
.lkdrawer .slot .tagw{font-size:.42rem;padding:.25rem .35rem}

.lkdrawer .lkpicked{flex:none;display:grid;grid-template-columns:auto minmax(0,1fr);gap:.55rem .8rem;align-items:center;margin:0;max-height:46%;overflow-y:auto;overscroll-behavior:contain;
  padding:.75rem .9rem calc(.75rem + var(--sab,0px));border:0;border-top:2px solid var(--border-color);box-shadow:0 -6px 0 rgba(0,0,0,.12);background:var(--bg-surface-hover)}
.lkdrawer .lkpicked:empty{display:none}
.lkdrawer .lkpicked.busy{opacity:.6;pointer-events:none}
.lkdrawer .pk-art{min-width:56px}
.lkdrawer .pk-banner{width:120px}
.lkdrawer .pk-info{min-width:0}
.lkdrawer .pk-info h4{font-size:1rem;margin:0 0 .15rem}
.lkdrawer .pk-desc{font-size:.8rem;margin:.05rem 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.lkdrawer .pk-state{margin-top:.3rem;font-size:.8rem;display:flex;align-items:center;gap:.3rem;flex-wrap:wrap}
.lkdrawer .pk-act{grid-column:1/-1;margin:0;gap:.35rem .75rem;flex-direction:column;align-items:stretch}
.lkdrawer .pk-btn{width:100%;min-height:48px;justify-content:center;font-size:.95rem;box-sizing:border-box}
.lkdrawer .pk-hint{text-align:center;font-size:.72rem}

@media(min-width:560px){.lkdrawer .lkgrid.bn{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1399px){
  body.lk-open{overflow:hidden}
  body.lk-open .toast{bottom:auto;top:calc(env(safe-area-inset-top,0px) + 14px)}
}
@media(max-width:1399px) and (max-height:520px){
  .lkdrawer{height:calc(100vh - 6px);height:calc(100dvh - 6px);max-width:none}
  .lkdrawer .pk-desc{display:none}
  .lkdrawer .lkpicked{max-height:38%}
}
@media(min-width:1400px){
  .lk-backdrop{display:none}
  .lkdrawer{left:auto;right:1rem;margin:0;top:calc(var(--top-h,64px) + 1rem);bottom:1rem;height:auto;width:var(--lk-w);max-width:none;border-bottom:2px solid var(--border-color);
    box-shadow:4px 4px 0 var(--pixel-shadow);transform:translateX(120%);background:var(--bg-base)}
  .lkdrawer.on{transform:none}
  .lkd-top{cursor:default;touch-action:auto}
  .lkd-grab{display:none}
  .lkd-head{padding-top:.8rem}
  .lkdrawer .lkpicked{max-height:40%}
  .lkdrawer .pk-btn{min-height:42px}
}
@media(prefers-reduced-motion:reduce){.lkdrawer,.lkdrawer.on,.lk-backdrop,.lk-backdrop.on{transition:none}}

/* ---- шкафчик: компактная версия (меньше шапка, больше места под предметы) ---- */
.lkdrawer .lkd-grab{padding:.4rem 0 .05rem}
.lkdrawer .lkd-head{padding:.1rem .7rem .4rem;gap:.5rem}
.lkdrawer .lkd-head h3{font-size:1rem}
.lkdrawer .lkd-x{width:40px;height:40px}
.lkdrawer .lkd-tools{padding:0 .7rem .5rem;gap:.4rem}
.lkdrawer .lktab{min-height:40px;font-size:.58rem}
.lkdrawer .lkprog{height:4px}
.lkdrawer .lkfind{flex-direction:row;gap:.4rem;align-items:stretch}
.lkdrawer .lksearch{flex:1;min-width:0}
.lkdrawer .lksearch input{height:40px;padding-left:2.3rem}
.lkdrawer .lkclear{width:36px;height:36px}
.lkdrawer .lkfilters{display:flex;gap:.3rem;flex:none}
.lkdrawer .lkchk{min-height:40px;padding:.3rem .55rem;font-size:.55rem}
.lkdrawer .lkchk b{display:none}
.lkdrawer .lknote{font-size:.72rem;padding:.35rem .5rem}
.lkdrawer .lkgrid{padding:.2rem .7rem .7rem;gap:.4rem}
.lkdrawer .lkgrid.pf{grid-template-columns:repeat(auto-fill,minmax(78px,1fr))}
.lkdrawer .slot{min-height:80px;padding:.45rem .25rem;gap:.25rem}
.lkdrawer .slot .sn{font-size:.7rem}
.lkdrawer .lkgrid.bn .slot{padding:.3rem}
/* нижняя панель: одна компактная строка */
.lkdrawer .lkpicked{grid-template-columns:auto minmax(0,1fr) auto;gap:.5rem .7rem;padding:.5rem .7rem calc(.5rem + var(--sab,0px));max-height:none}
.lkdrawer .pk-art{min-width:44px}
.lkdrawer .pk-banner{width:88px}
.lkdrawer .pk-info h4{font-size:.9rem;margin:0}
.lkdrawer .pk-desc{font-size:.74rem;-webkit-line-clamp:1}
.lkdrawer .pk-credit{display:none}
.lkdrawer .pk-state{margin-top:.15rem;font-size:.74rem}
.lkdrawer .pk-act{grid-column:auto;margin:0;flex-direction:row}
.lkdrawer .pk-btn{width:auto;min-height:44px;padding:.5rem .9rem;font-size:.78rem}
@media(max-width:1399px){
  .lkdrawer{height:min(94vh,820px);height:min(94dvh,820px)}
}
@media(max-width:559px){
  /* нижняя панель: кнопка отдельной строкой на всю ширину, чтобы не перекрывать название и статус */
  .lkdrawer .lkpicked{grid-template-columns:auto minmax(0,1fr)}
  .lkdrawer .pk-act{grid-column:1/-1;flex-direction:column;align-items:stretch}
  .lkdrawer .pk-btn{width:100%;min-height:46px;justify-content:center;font-size:.85rem}
  .lkdrawer .lkgrid.bn .slot{position:relative;padding:.25rem}
  .lkdrawer .lkgrid.bn .slot .sn{position:absolute;left:.6rem;bottom:.55rem;max-width:calc(100% - 1.2rem);padding:.15rem .45rem;background:rgba(10,12,18,.78);color:#fff;font-size:.72rem;border-radius:0}
}
@media(min-width:1400px){
  .lkdrawer .lkd-head{padding-top:.6rem}
  .lkdrawer .pk-desc{-webkit-line-clamp:2}
}

.view[data-view="players"],.view[data-view="profile"]{transition:translate .2s ease-out}
@media(prefers-reduced-motion:reduce){.view[data-view="players"],.view[data-view="profile"]{transition:none}}

/* ---- окно описания баннера/префикса ---- */
.pk-more{display:inline-flex;align-items:center;gap:.35rem;margin-top:.2rem;padding:.4rem 0;min-height:32px;background:none;border:0;color:var(--accent);font:600 .78rem 'Onest',sans-serif;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.pk-more:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
body.pkm-open{overflow:hidden}
.pkm-ov{position:fixed;inset:0;z-index:400;display:flex;align-items:center;justify-content:center;padding:1rem;background:rgba(0,0,0,.72)}
.pkm-box{position:relative;width:min(640px,100%);max-height:calc(100dvh - 2rem);overflow-y:auto;overscroll-behavior:contain;background:var(--bg-base);border:2px solid var(--border-color);box-shadow:4px 4px 0 var(--pixel-shadow)}
.pkm-head{padding:1.1rem 3.4rem 1rem;text-align:center;border-bottom:2px solid var(--border-color)}
.pkm-title{display:flex;align-items:center;justify-content:center;gap:.5rem;margin:0;font:600 1.15rem 'Onest',sans-serif;color:var(--text-primary);overflow-wrap:anywhere}
.pkm-text{margin-top:.5rem;color:var(--text-secondary);font-size:.9rem;line-height:1.45;overflow-wrap:anywhere}
.pkm-text p{margin:.2rem 0}
.pkm-credit{font-size:.78rem;color:var(--text-muted)}
.pkm-x{position:absolute;top:.6rem;right:.6rem;width:40px;height:40px;display:grid;place-items:center;background:transparent;border:2px solid var(--border-color);color:var(--text-primary);cursor:pointer}
.pkm-x:hover,.pkm-x:focus-visible{border-color:var(--accent);outline:none}
.pkm-art{display:grid;place-items:center;padding:1.25rem 1rem}
.pkm-frame{display:grid;place-items:center;border:2px solid var(--border-color);background:var(--bg-surface-hover)}
.pkm-frame.pf{padding:1rem}
.pkm-frame.bn{width:100%;max-width:520px;padding:.35rem}
.pkm-banner{display:block;width:100%;aspect-ratio:152/29;object-fit:cover;image-rendering:pixelated}
.pkm-state{padding:0 1rem 1.1rem;text-align:center;font-size:.85rem;font-weight:600;display:flex;align-items:center;justify-content:center;gap:.3rem;flex-wrap:wrap}
.pkm-state.worn{color:var(--accent)}.pkm-state.own{color:var(--ok)}.pkm-state.lock{color:var(--text-muted)}
@media(max-width:559px){.pkm-ov{padding:.6rem}.pkm-head{padding:1rem 3.2rem .9rem .9rem}.pkm-title{font-size:1.05rem}}

/* значок «войти» вместо головы, когда игрок не в аккаунте */
.acc-btn.guest{width:36px;height:36px;background:var(--bg-surface-hover);border:2px solid var(--border-color);color:var(--text-primary);font-size:1rem;
  box-shadow:inset 2px 2px 0 var(--bevel-hi),inset -2px -2px 0 var(--bevel-lo);transition:border-color .2s,transform .12s steps(2)}
.acc-btn.guest:hover,.acc-btn.guest:focus-visible{border-color:var(--border-focus);color:var(--accent);outline:none;transform:translateY(-2px)}
.acc-btn.active .head,.acc-btn.guest.active{border-color:var(--accent)}
.top a.it[data-route="shop"]:hover i,.top a.it[data-route="shop"]:focus-visible i{animation-name:hdrPop}

/* магазин спатов */
/* ===== Магазин (компактный) ===== */
#shopView{max-width:880px;margin:0 auto}
.shop-top{display:flex;align-items:flex-end;justify-content:space-between;gap:.8rem 1.5rem;flex-wrap:wrap;margin-bottom:1rem;padding-bottom:.9rem;border-bottom:2px solid var(--border-color)}
.shop-ttl h1{font-size:clamp(1.5rem,3.6vw,2rem);line-height:1.1;margin:0 0 .35rem;letter-spacing:-.01em;font-weight:700}
.shop-ttl p{margin:0;font-size:.85rem;max-width:52ch}
.shop-chips{display:flex;gap:.5rem;flex-wrap:wrap}
.shop-bal{display:inline-flex;align-items:center;gap:.45rem;padding:.35rem .7rem;font-size:.95rem;color:var(--text-primary);border:2px solid var(--border-color);background:var(--bg-surface);
  box-shadow:inset 2px 2px 0 var(--bevel-hi),inset -2px -2px 0 var(--bevel-lo)}
.shop-bal i{color:var(--accent);font-size:.85rem}
.shop-note{margin-bottom:.8rem;padding:.6rem .85rem;font-size:.9rem;border:2px solid var(--border-color);border-left-width:5px;background:var(--bg-surface);color:var(--text-primary)}
.shop-note.ok{border-color:var(--ok)}.shop-note.bad{border-color:var(--bad);color:var(--bad)}
.shop-grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;align-items:start}
.shop-card{display:flex;flex-direction:column;gap:.7rem;padding:1rem}
.shop-login{max-width:420px}
.shop-inv{margin-bottom:.9rem;border-color:var(--accent)}
.shop-h{display:flex;align-items:center;gap:.5rem;margin:0;font-size:.95rem}
.shop-h i{color:var(--accent);font-size:.9rem}
.shop-card h2{font-size:.95rem;margin:0}
.shop-packs{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem}
.shop-pack{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;min-height:2.6rem;padding:.4rem .3rem;cursor:pointer;color:var(--text-primary);background:var(--bg-surface);
  border:2px solid var(--border-color);font:600 .9rem 'Onest',sans-serif;text-align:center;
  box-shadow:inset 2px 2px 0 var(--bevel-hi),inset -2px -2px 0 var(--bevel-lo);transition:transform .12s steps(2),border-color .2s}
.shop-pack b{font-weight:600}
.shop-pack small{color:var(--text-muted);font:500 .72rem 'Onest',sans-serif}
.shop-pack:hover:not(:disabled),.shop-pack:focus-visible{border-color:var(--border-focus);transform:translateY(-2px);outline:none}
.shop-pack:disabled{opacity:.45;cursor:not-allowed}
.shop-pack.on{border-color:var(--accent);background:var(--bg-surface-hover);box-shadow:inset 2px 2px 0 var(--bevel-hi),inset -2px -2px 0 var(--bevel-lo),0 0 0 2px var(--accent-glow)}
.shop-row{display:flex;gap:.6rem;align-items:flex-end}
.shop-row .btn{flex:none;padding:.6rem .9rem;white-space:nowrap}
.shop-field{flex:1;min-width:0;display:flex;flex-direction:column;gap:.25rem;font-size:.78rem;color:var(--text-secondary)}
.shop-field input{min-width:0;width:100%;box-sizing:border-box;padding:.5rem .65rem;font:500 .95rem 'Onest',sans-serif;color:var(--text-primary);background:var(--bg-base);border:2px solid var(--border-color);box-shadow:inset 2px 2px 0 var(--bevel-lo);border-radius:0}
.shop-field input:focus{outline:none;border-color:var(--border-focus)}
.shop-sum{padding:0;font-size:.9rem;color:var(--text-secondary);min-height:1.2rem}
.shop-sum b{color:var(--text-primary)}
.shop-card .err{margin:0;font-size:.82rem}
.shop-hint{margin:0;color:var(--text-muted);font-size:.78rem}
.shop-card details.shop-more,.shop-sec details.shop-more{margin:0;background:none;border:0;box-shadow:none}
.shop-more summary{padding:.2rem 0;font:500 .78rem 'Onest',sans-serif;color:var(--text-muted)}
.shop-more summary:hover{color:var(--text-primary)}
.shop-more p{padding:.3rem 0 0 1.4rem !important;font-size:.78rem;color:var(--text-muted) !important}
.shop-steps{margin:0;padding-left:1.2rem;display:flex;flex-direction:column;gap:.2rem;font-size:.85rem;color:var(--text-secondary)}
.shop-codebar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.shop-code{flex:1 1 9rem;padding:.45rem .7rem;font:700 1.15rem 'JetBrains Mono',monospace;letter-spacing:.08em;color:var(--accent);background:var(--code-bg);border:2px solid var(--border-color);box-shadow:inset 2px 2px 0 var(--bevel-lo);user-select:all}
.btn.sm{padding:.4rem .7rem;font-size:.82rem}
.btn.danger:hover,.btn.danger:focus-visible{border-color:var(--bad);color:var(--bad)}
.btn.danger.solid{background:var(--bad);border-color:var(--bad);color:#14161b}
.btn.danger.solid:hover,.btn.danger.solid:focus-visible{color:#14161b;border-color:var(--bad)}
:root[data-theme="light"] .btn.danger.solid,:root[data-theme="light"] .btn.danger.solid:hover{color:#fff}
body.shop-lock{overflow:hidden}
.shop-ov{position:fixed;inset:0;z-index:700;display:grid;place-items:center;padding:16px;background:rgba(0,0,0,.65);animation:pageFadeIn .15s ease-out both}
.shop-dlg{width:min(420px,100%);background:var(--bg-surface-hover);border:2px solid var(--bad);box-shadow:inset 2px 2px 0 var(--bevel-hi),inset -2px -2px 0 var(--bevel-lo),6px 6px 0 var(--pixel-shadow);animation:shopDlgIn .16s steps(4) both}
@keyframes shopDlgIn{from{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}
.shop-dlg-h{display:flex;align-items:center;gap:.6rem;padding:.8rem 1rem;border-bottom:2px solid var(--border-color)}
.shop-dlg-h i{color:var(--bad)}
.shop-dlg-h h3{margin:0;font:400 .7rem 'SpatiumFont','Press Start 2P',monospace;text-transform:uppercase;line-height:1.5}
.shop-dlg-b{padding:1rem;display:flex;flex-direction:column;gap:.7rem}
.shop-dlg-b p{margin:0;font-size:.88rem;color:var(--text-secondary)}
.shop-dlg-sum{display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap;padding:.5rem .7rem;background:var(--bg-base);border:2px solid var(--border-color);box-shadow:inset 2px 2px 0 var(--bevel-lo)}
.shop-dlg-sum b{font-size:1.05rem}
.shop-dlg-code{font:700 .9rem 'JetBrains Mono',monospace;letter-spacing:.06em;color:var(--accent)}
.shop-dlg-a{display:flex;justify-content:flex-end;gap:.6rem;padding:.8rem 1rem;border-top:2px solid var(--border-color)}
@media(max-width:420px){.shop-dlg-a{flex-direction:column-reverse}.shop-dlg-a .btn{justify-content:center}}
.shop-lists{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;margin-top:1.1rem;align-items:start}
.shop-lists:has(>.shop-sec:only-child){grid-template-columns:1fr}
.shop-sec h3{font:600 .85rem 'Unbounded',sans-serif;margin:0 0 .5rem;color:var(--text-secondary)}
.shop-orders{display:flex;flex-direction:column;gap:.3rem}
.shop-order{display:grid;grid-template-columns:auto 1fr auto auto auto;gap:.2rem .7rem;align-items:center;padding:.4rem .65rem;border:2px solid var(--border-color);background:var(--bg-surface);font-size:.8rem}
.shop-order b{font-size:.88rem}
.shop-order .mut{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.shop-plus{color:var(--ok)}.shop-minus{color:var(--bad)}
.shop-st{font-weight:600}
.shop-st.pending{color:var(--text-muted)}.shop-st.canceled{color:var(--bad)}.shop-st.paid{color:var(--accent)}.shop-st.given{color:var(--ok)}
@media(max-width:760px){.shop-grid,.shop-lists{grid-template-columns:1fr}}
@media(max-width:480px){.shop-packs{gap:.3rem}.shop-order{grid-template-columns:auto 1fr auto}.shop-order>.btn{grid-column:auto}.shop-order>:nth-child(4):not(.btn){display:none}}

/* ===== Админка магазина ===== */
.shop-adm{margin-top:1.1rem;gap:.7rem}
.shop-adm-h{display:flex;align-items:center;justify-content:space-between;gap:.6rem;width:100%;padding:0;background:none;border:0;border-radius:0;color:var(--text-primary);cursor:pointer;font:600 .95rem 'Unbounded',sans-serif;text-align:left}
.shop-adm-h:focus-visible{outline:2px solid var(--border-focus);outline-offset:3px}
.shop-adm-h span{display:inline-flex;align-items:center;gap:.5rem}
.shop-adm-h span i{color:var(--accent)}
.shop-adm-chev{color:var(--text-muted);transition:transform .15s}
.shop-adm.open .shop-adm-chev{transform:rotate(180deg)}
.shop-adm-b{display:flex;flex-direction:column;gap:.7rem}
.shop-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:.4rem}
.shop-stat{display:flex;flex-direction:column;gap:.1rem;padding:.4rem .6rem;border:2px solid var(--border-color);background:var(--bg-surface);box-shadow:inset 2px 2px 0 var(--bevel-hi),inset -2px -2px 0 var(--bevel-lo)}
.shop-stat small{color:var(--text-muted);font-size:.7rem}
.shop-stat b{font-size:.95rem}
.shop-tabs{display:flex;gap:.3rem;flex-wrap:wrap}
.shop-tab{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .75rem;cursor:pointer;color:var(--text-secondary);background:var(--bg-surface);border:2px solid var(--border-color);border-radius:0;font:600 .82rem 'Onest',sans-serif;
  box-shadow:inset 2px 2px 0 var(--bevel-hi),inset -2px -2px 0 var(--bevel-lo)}
.shop-tab:hover,.shop-tab:focus-visible{border-color:var(--border-focus);color:var(--text-primary);outline:none}
.shop-tab.on{background:var(--accent);border-color:var(--accent);color:#14161b}
:root[data-theme="light"] .shop-tab.on{color:#fff}
.shop-adm-bar{display:flex;gap:.4rem;flex-wrap:wrap}
.shop-sin,.shop-sel{padding:.45rem .6rem;font:500 .9rem 'Onest',sans-serif;color:var(--text-primary);background:var(--bg-base);border:2px solid var(--border-color);box-shadow:inset 2px 2px 0 var(--bevel-lo);border-radius:0;min-width:0}
.shop-sin{flex:1 1 11rem}
.shop-sin:focus,.shop-sel:focus{outline:none;border-color:var(--border-focus)}
.adm-order{grid-template-columns:4.8rem minmax(0,1fr) auto auto auto}
.adm-who{display:flex;flex-direction:column;min-width:0}
.adm-who b,.adm-who small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.adm-acts{display:flex;gap:.3rem;justify-content:flex-end;min-width:0}
.adm-more{align-self:center;margin-top:.3rem}
.adm-log{grid-template-columns:auto minmax(0,1fr) auto auto}
.adm-player{grid-template-columns:minmax(0,1fr) auto auto;width:100%;cursor:pointer;color:var(--text-primary);font:inherit;text-align:left;border-radius:0}
.adm-player:hover,.adm-player:focus-visible,.adm-player.on{border-color:var(--accent);outline:none}
.adm-pick{display:flex;flex-direction:column;gap:.7rem}
.adm-pick.card{padding:.9rem}
.adm-pick h3{margin:0;font-size:.95rem}
.shop-st.declined{color:var(--text-muted)}.shop-st.refunded{color:var(--bad)}
.shop-dlg.calm{border-color:var(--accent)}
.shop-dlg.calm .shop-dlg-h i{color:var(--accent)}
.shop-dlg-name{font-weight:600;overflow:hidden;text-overflow:ellipsis}
@media(max-width:640px){
  .adm-order{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"who sum" "date st" "acts acts"}
  .adm-order>:nth-child(1){grid-area:date}.adm-order>:nth-child(2){grid-area:who}.adm-order>:nth-child(3){grid-area:sum;justify-self:end}
  .adm-order>:nth-child(4){grid-area:st;justify-self:end}.adm-order>:nth-child(5){grid-area:acts}.adm-order>:nth-child(5):empty{display:none}
  .adm-acts{justify-content:flex-start}
  .adm-log{grid-template-columns:auto minmax(0,1fr) auto}.adm-log>:nth-child(4){display:none}
}

/* ===== Живой баланс ===== */
.shop-bal b.bump{animation:balBump .7s ease-out}
@keyframes balBump{0%{transform:scale(1.25);color:var(--accent)}100%{transform:scale(1);color:inherit}}
.acc-row b{font-weight:600}
a.acc-row{text-decoration:none}
a.acc-row:hover{background:var(--bg-surface)}
@media(prefers-reduced-motion:reduce){.shop-bal b.bump{animation:none}}

/* активные сеансы */
.ss-row.cur{border-color:var(--ok)}
.ss-row>i{color:var(--text-muted)}
.ss-kick{flex:none;background:none;border:2px solid var(--bad);color:var(--bad);cursor:pointer;padding:.35rem .6rem;font:400 .55rem 'SpatiumFont','Press Start 2P',monospace;text-transform:uppercase}
.ss-kick:hover,.ss-kick:focus-visible{background:var(--bad);color:#fff;outline:none}
.ss-all{margin-top:.6rem;width:100%;padding:.55rem .6rem}
.ss-busy{opacity:.5;pointer-events:none}

/* ===== Окно-ошибка: карта и вики недоступны ===== */
html.se-open,html.se-open body{overflow:hidden}
#siteErr{position:fixed;inset:0;z-index:10000;display:flex;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
  padding:max(1rem,env(safe-area-inset-top,0px)) max(1rem,env(safe-area-inset-right,0px)) max(1rem,env(safe-area-inset-bottom,0px)) max(1rem,env(safe-area-inset-left,0px));
  background:rgba(10,11,14,.95);animation:seFade .25s ease-out both}
#siteErr .se-box{width:100%;max-width:440px;margin:auto;background:var(--bg-surface,#1e2129);border:2px solid var(--bad,#ff6b6b);
  box-shadow:6px 6px 0 var(--pixel-shadow,rgba(0,0,0,.5));animation:sePop .45s cubic-bezier(.2,.8,.2,1) .05s both}
#siteErr .se-bar{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.55rem .8rem;background:var(--bad,#ff6b6b);color:#14161b;
  font:400 .6rem/1.4 'SpatiumFont','Press Start 2P',monospace}
#siteErr .se-bar-t{display:flex;align-items:center;gap:.45rem;text-transform:uppercase}
#siteErr .se-code{opacity:.8;font-size:.5rem;white-space:nowrap}
#siteErr .se-body{text-align:center;padding:1.6rem 1.4rem 1.5rem}
#siteErr .se-hero{position:relative;display:inline-block;margin:.4rem 2.2rem 1.4rem 0}
#siteErr .se-stage{width:88px;height:98px;margin:0}
#siteErr .se-q{position:absolute;left:100%;top:-10px;margin-left:.5rem;color:var(--accent,#f2b441);font:400 2rem/1 'SpatiumFont','Press Start 2P',monospace;
  text-shadow:3px 3px 0 var(--pixel-shadow,rgba(0,0,0,.5));animation:seQ 2.2s ease-in-out infinite}
#siteErr h2{margin:0 0 .8rem;color:var(--text-primary,#eceae4);font:400 clamp(.78rem,3.6vw,.95rem)/1.6 'SpatiumFont','Press Start 2P',monospace}
#siteErr p{margin:0 0 1.5rem;color:var(--text-secondary,#a9abb6);line-height:1.55;font-size:.95rem}
#siteErr .se-ok{cursor:pointer;border:0;background:var(--accent,#f2b441);color:#14161b;min-height:48px;padding:.8rem 2.4rem;touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;font:400 .75rem 'SpatiumFont','Press Start 2P',monospace;box-shadow:4px 4px 0 var(--pixel-shadow,rgba(0,0,0,.5))}
#siteErr .se-ok:hover{filter:brightness(1.1)}
#siteErr .se-ok:active{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--pixel-shadow,rgba(0,0,0,.5))}
#siteErr .se-ok:focus-visible{outline:2px solid #fff;outline-offset:3px}
@keyframes seFade{from{opacity:0}to{opacity:1}}
@keyframes sePop{0%{opacity:0;transform:translateY(28px) scale(.92)}60%{opacity:1;transform:translateY(-5px) scale(1.02)}100%{opacity:1;transform:none}}
@keyframes seQ{0%,100%{transform:translateY(0) rotate(-6deg)}50%{transform:translateY(-8px) rotate(6deg)}}
@media (max-width:480px){
  #siteErr .se-body{padding:1.3rem 1rem 1.2rem}
  #siteErr .se-stage{width:76px;height:84px}
  #siteErr .se-q{font-size:1.6rem}
  #siteErr .se-ok{width:100%}
  #siteErr p{font-size:.9rem}
}
@media (max-height:520px){#siteErr .se-hero{margin-bottom:.8rem}#siteErr p{margin-bottom:1rem}}
@media (prefers-reduced-motion:reduce){#siteErr,#siteErr *{animation:none!important}}
