/* TovStudio - https://builtbybit.com/creators/tovstudio.532511/ */
:root{
  --bg:#0c0e16;--bg2:#10131c;--bg3:#141820;--card:#181c28;
  --b1:#1e2333;--b2:#252c40;--b3:#2e3650;
  --mc:#4c9a2a;--mc2:#63c53f;--md:rgba(76,154,42,.14);
  --gr:#10b981;--gr2:#34d399;--ye:#f59e0b;--re:#ef4444;--bl:#38bdf8;
  --t1:#e0e6f0;--t2:#8994ae;--t3:#4a5368;
  --fn:'Inter',system-ui,sans-serif;--fm:'IBM Plex Mono','SFMono-Regular',monospace;
  --nh:52px;--sb:52px;--r:8px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-tap-highlight-color:transparent}
body{font-family:var(--fn);background:var(--bg);color:var(--t1);min-height:100vh;overflow-x:hidden}
button{font-family:var(--fn);cursor:pointer;border:none;background:none;color:inherit}
input,select,textarea{font-family:var(--fn)}
a{color:var(--mc2);text-decoration:none}
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--b3);border-radius:4px}

.nav{position:fixed;top:0;left:0;right:0;height:var(--nh);z-index:200;display:flex;align-items:center;gap:.6rem;padding:0 .8rem;background:rgba(12,14,22,.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--b1)}
.nav-logo{display:flex;align-items:center;gap:8px;font-size:.98rem;font-weight:700;flex-shrink:0;white-space:nowrap}
.nav-logo .r{color:var(--mc2)}
.nav-logo .cube{width:18px;height:18px;border-radius:4px;background:linear-gradient(135deg,var(--mc2),var(--mc));box-shadow:0 0 10px rgba(99,197,63,.4)}
.nav-div{width:1px;height:18px;background:var(--b2);flex-shrink:0}
.nav-srv{display:flex;align-items:center;gap:.4rem;background:var(--bg3);border:1px solid var(--b2);border-radius:var(--r);padding:.25rem .5rem;min-width:0;max-width:260px}
.nav-srv select{background:none;border:none;color:var(--t1);font-size:.8rem;font-weight:600;outline:none;max-width:190px}
.nav-srv select option{background:var(--bg2)}
.nav-r{margin-left:auto;display:flex;align-items:center;gap:.5rem}
.nstat{display:flex;align-items:center;gap:.38rem;font-size:.68rem;font-weight:600;font-family:var(--fm);padding:.24rem .6rem;border-radius:20px;border:1px solid var(--b2);background:rgba(255,255,255,.04);color:var(--t3)}
.nstat .nd{width:6px;height:6px;border-radius:50%;background:var(--re)}
.nstat.on{border-color:rgba(16,185,129,.32);color:var(--gr2)}
.nstat.on .nd{background:var(--gr);box-shadow:0 0 6px var(--gr)}
.nav-user{font-size:.72rem;color:var(--t2);white-space:nowrap}
.nav-out{width:28px;height:28px;border-radius:6px;border:1px solid var(--b2);color:var(--t3);display:flex;align-items:center;justify-content:center;transition:.13s}
.nav-out:hover{color:var(--mc2);border-color:var(--mc);background:var(--md)}

.sb{position:fixed;top:var(--nh);left:0;bottom:0;z-index:100;width:var(--sb);background:var(--bg2);border-right:1px solid var(--b1);transition:width .2s ease;overflow:hidden}
.sb.open{width:214px}
.sb-toggle{display:flex;align-items:center;justify-content:center;width:100%;height:40px;border-bottom:1px solid var(--b1);color:var(--t3);transition:.15s}
.sb-toggle:hover{background:rgba(255,255,255,.04);color:var(--t1)}
.sb-inner{padding:.4rem 0}
.sb-lbl{padding:.5rem .8rem .25rem;font-size:.56rem;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;color:var(--t3);white-space:nowrap;opacity:0;transition:opacity .15s}
.sb.open .sb-lbl{opacity:1}
.si{display:flex;align-items:center;gap:.7rem;padding:.55rem .82rem;color:var(--t2);font-size:.82rem;font-weight:500;white-space:nowrap;cursor:pointer;border-left:2px solid transparent;transition:.12s}
.si svg{width:17px;height:17px;flex-shrink:0}
.si:hover{background:rgba(255,255,255,.04);color:var(--t1)}
.si.active{color:var(--mc2);background:var(--md);border-left-color:var(--mc)}
.si .soon{margin-left:auto;font-size:.52rem;font-weight:700;letter-spacing:.5px;color:var(--ye);background:rgba(245,158,11,.12);padding:.1rem .35rem;border-radius:4px;text-transform:uppercase}

.main{margin-left:var(--sb);margin-top:var(--nh);padding:1.1rem;min-height:calc(100vh - var(--nh));transition:margin-left .2s}
.page-head{display:flex;align-items:center;gap:.6rem;margin-bottom:1rem}
.page-head h1{font-size:1.15rem;font-weight:700}
.page-head p{font-size:.78rem;color:var(--t2)}
.spacer{flex:1}

.grid{display:grid;gap:.8rem}
.g4{grid-template-columns:repeat(4,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g2{grid-template-columns:repeat(2,1fr)}
@media(max-width:900px){.g4,.g3,.g2{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.g4,.g3,.g2{grid-template-columns:1fr}}

.card{background:var(--card);border:1px solid var(--b1);border-radius:var(--r);padding:1rem}
.card h3{font-size:.82rem;font-weight:700;margin-bottom:.7rem;display:flex;align-items:center;gap:.4rem}
.stat{background:var(--card);border:1px solid var(--b1);border-radius:var(--r);padding:.9rem 1rem}
.stat .k{font-size:.6rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--t3)}
.stat .v{font-size:1.5rem;font-weight:800;font-family:var(--fm);margin-top:.35rem}
.stat .s{font-size:.68rem;color:var(--t2);margin-top:.15rem}
.stat.acc .v{color:var(--mc2)}

.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.48rem .85rem;border-radius:6px;font-size:.78rem;font-weight:600;background:var(--bg3);border:1px solid var(--b2);color:var(--t1);transition:.13s}
.btn:hover{border-color:var(--b3);background:var(--b1)}
.btn.pri{background:var(--mc);border-color:var(--mc);color:#fff}
.btn.pri:hover{background:var(--mc2)}
.btn.dng{color:var(--re);border-color:rgba(239,68,68,.3)}
.btn.dng:hover{background:rgba(239,68,68,.12)}
.btn.sm{padding:.32rem .6rem;font-size:.72rem}

.field{margin-bottom:.75rem}
.field label{display:block;font-size:.7rem;font-weight:600;color:var(--t2);margin-bottom:.32rem}
.input,select.input{width:100%;padding:.55rem .7rem;background:var(--bg);border:1px solid var(--b2);border-radius:6px;color:var(--t1);font-size:.82rem;outline:none;transition:.13s}
.input:focus{border-color:var(--mc)}

.console{background:#080a10;border:1px solid var(--b1);border-radius:var(--r);height:56vh;overflow-y:auto;padding:.7rem .8rem;font-family:var(--fm);font-size:.76rem;line-height:1.55}
.cl{white-space:pre-wrap;word-break:break-word;color:#c9d3e6}
.cl .in{color:var(--mc2)}
.cl.evt{color:var(--bl)}
.cl.err{color:var(--re)}
.cl .tm{color:var(--t3);margin-right:.5rem}
.cbar{display:flex;gap:.5rem;margin-top:.7rem}
.cbar .input{flex:1;font-family:var(--fm)}

.tbl{width:100%;border-collapse:collapse;font-size:.8rem}
.tbl th{text-align:left;font-size:.62rem;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--t3);padding:.5rem .6rem;border-bottom:1px solid var(--b1)}
.tbl td{padding:.55rem .6rem;border-bottom:1px solid var(--b1);color:var(--t1)}
.tbl tr:hover td{background:rgba(255,255,255,.02)}
.pname{display:flex;align-items:center;gap:.55rem;font-weight:600}
.pav{width:26px;height:26px;border-radius:5px;background:var(--b1);object-fit:cover}
.row-act{display:flex;gap:.35rem;justify-content:flex-end}

.badge{display:inline-flex;align-items:center;gap:.3rem;font-size:.66rem;font-weight:700;padding:.18rem .5rem;border-radius:20px}
.badge.g{color:var(--gr2);background:rgba(16,185,129,.12)}
.badge.y{color:var(--ye);background:rgba(245,158,11,.12)}
.badge.r{color:var(--re);background:rgba(239,68,68,.12)}
.badge.b{color:var(--bl);background:rgba(56,189,248,.12)}

.empty{text-align:center;padding:2.5rem 1rem;color:var(--t3)}
.empty svg{width:34px;height:34px;opacity:.4;margin-bottom:.6rem}
.empty p{font-size:.82rem}

.modal-bg{position:fixed;inset:0;background:rgba(4,6,12,.7);backdrop-filter:blur(3px);z-index:400;display:flex;align-items:center;justify-content:center;padding:1rem}
.modal{background:var(--bg2);border:1px solid var(--b2);border-radius:12px;width:100%;max-width:420px;padding:1.2rem}
.modal h2{font-size:1rem;font-weight:700;margin-bottom:1rem}
.modal-foot{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1rem}

.toast-wrap{position:fixed;bottom:1rem;right:1rem;z-index:500;display:flex;flex-direction:column;gap:.5rem}
.toast{background:var(--bg2);border:1px solid var(--b2);border-left:3px solid var(--mc);border-radius:8px;padding:.7rem .9rem;font-size:.8rem;min-width:220px;box-shadow:0 8px 24px rgba(0,0,0,.4);animation:tin .2s}
.toast.err{border-left-color:var(--re)}
@keyframes tin{from{opacity:0;transform:translateY(8px)}to{opacity:1}}

.soon-box{text-align:center;padding:2.4rem 1.2rem}
.soon-box .ic{width:46px;height:46px;border-radius:12px;background:var(--md);color:var(--mc2);display:flex;align-items:center;justify-content:center;margin:0 auto .8rem}
.soon-box h2{font-size:1.05rem;margin-bottom:.4rem}
.soon-box p{font-size:.82rem;color:var(--t2);max-width:460px;margin:0 auto .3rem;line-height:1.6}
.soon-box .tag{display:inline-block;margin-top:.7rem;font-size:.66rem;font-weight:700;color:var(--ye);background:rgba(245,158,11,.12);padding:.25rem .6rem;border-radius:20px;text-transform:uppercase;letter-spacing:.5px}

.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem;background:radial-gradient(1200px 600px at 50% -10%,rgba(76,154,42,.1),transparent)}
.login-card{background:var(--bg2);border:1px solid var(--b1);border-radius:14px;width:100%;max-width:360px;padding:1.6rem}
.login-card .lg{display:flex;align-items:center;gap:9px;font-size:1.15rem;font-weight:800;justify-content:center;margin-bottom:.3rem}
.login-card .sub{text-align:center;font-size:.75rem;color:var(--t2);margin-bottom:1.3rem}
.login-card .err{color:var(--re);font-size:.75rem;margin-top:.6rem;min-height:1rem;text-align:center}
.login-card .foot{text-align:center;font-size:.66rem;color:var(--t3);margin-top:1.1rem}

.log-tabs{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.7rem}
.log-tab{padding:.42rem .8rem;border-radius:20px;font-size:.76rem;font-weight:600;background:var(--bg3);border:1px solid var(--b2);color:var(--t2);cursor:pointer;transition:.13s;display:flex;align-items:center;gap:.45rem}
.log-tab:hover{color:var(--t1);border-color:var(--b3)}
.log-tab.active{background:var(--md);border-color:var(--mc);color:var(--mc2)}
.log-tab .cnt{font-size:.62rem;font-weight:700;background:rgba(255,255,255,.07);padding:.06rem .34rem;border-radius:8px;font-family:var(--fm)}
.log-tab.active .cnt{background:rgba(99,197,63,.18)}
.log-toolbar{display:flex;gap:.5rem;align-items:center;margin-bottom:.8rem;flex-wrap:wrap}
.log-toolbar .log-search{flex:1;min-width:170px}
.log-list{display:flex;flex-direction:column;gap:.35rem;max-height:62vh;overflow-y:auto;padding-right:.2rem}
.log-row{display:flex;align-items:center;gap:.7rem;padding:.5rem .7rem;background:var(--card);border:1px solid var(--b1);border-left:3px solid var(--b3);border-radius:7px;font-size:.8rem;animation:logIn .18s ease}
@keyframes logIn{from{opacity:0;transform:translateY(-5px)}to{opacity:1}}
.log-ic{width:26px;height:26px;border-radius:7px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--b1);color:var(--t2)}
.log-ic svg{width:15px;height:15px}
.log-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}
.log-main .l1{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.log-tt{font-size:.6rem;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--t3)}
.log-pl{font-weight:700}
.log-msg{color:var(--t2);word-break:break-word;font-size:.78rem}
.log-by{font-size:.64rem;color:var(--t3)}
.log-by b{color:var(--t2);font-weight:600}
.log-time{font-family:var(--fm);font-size:.68rem;color:var(--t3);white-space:nowrap;flex-shrink:0}
.log-acts{display:flex;gap:.3rem;flex-shrink:0;opacity:0;transition:.13s}
.log-row:hover .log-acts{opacity:1}
.lg-chat{border-left-color:var(--bl)} .lg-chat .log-ic{background:rgba(56,189,248,.14);color:var(--bl)}
.lg-join{border-left-color:var(--gr)} .lg-join .log-ic{background:rgba(16,185,129,.14);color:var(--gr2)}
.lg-quit{border-left-color:#6b7391} .lg-quit .log-ic{background:rgba(148,152,174,.14);color:var(--t2)}
.lg-death{border-left-color:var(--ye)} .lg-death .log-ic{background:rgba(245,158,11,.14);color:var(--ye)}
.lg-ban{border-left-color:var(--re)} .lg-ban .log-ic{background:rgba(239,68,68,.14);color:var(--re)}
.lg-unban{border-left-color:var(--gr)} .lg-unban .log-ic{background:rgba(16,185,129,.14);color:var(--gr2)}
.lg-kick{border-left-color:var(--ye)} .lg-kick .log-ic{background:rgba(245,158,11,.14);color:var(--ye)}
.lg-op{border-left-color:var(--mc2)} .lg-op .log-ic{background:var(--md);color:var(--mc2)}
.lg-deop{border-left-color:#6b7391} .lg-deop .log-ic{background:rgba(148,152,174,.14);color:var(--t2)}
.lg-gamemode{border-left-color:var(--bl)} .lg-gamemode .log-ic{background:rgba(56,189,248,.14);color:var(--bl)}
.lg-console{border-left-color:#a78bfa} .lg-console .log-ic{background:rgba(167,139,250,.14);color:#a78bfa}
.log-more{text-align:center;margin-top:.6rem}
.card:hover{border-color:var(--b2)}
.btn:active{transform:translateY(1px)}
.stat{transition:border-color .13s}
.stat:hover{border-color:var(--b2)}

.ctitle{font-size:.7rem;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--t3);margin-bottom:.6rem}
.mut{color:var(--t3)}
.wseg{margin-top:.9rem}
.wl{font-size:.74rem;color:var(--t2);margin-bottom:.4rem}
.wbtns{display:flex;gap:.4rem;flex-wrap:wrap}
.wnow{font-size:.86rem;color:var(--t1);margin-bottom:.3rem}
.wnow b{color:var(--mc2)}
.grules{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.5rem}
.grule{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .7rem;background:var(--bg3);border:1px solid var(--b1);border-radius:7px;font-size:.78rem}
.grule span{color:var(--t2);word-break:break-word}
.tgl{border:none;cursor:pointer;font-size:.64rem;font-weight:800;letter-spacing:.5px;padding:.28rem .6rem;border-radius:20px;background:var(--b2);color:var(--t2);min-width:44px;transition:.13s}
.tgl.on{background:var(--md);color:var(--mc2)}
.tgl:hover{filter:brightness(1.15)}
.frow{display:flex;gap:.45rem;flex-wrap:wrap;align-items:center}
.frow .input{flex:1;min-width:150px}
.outbox{background:#0a0e16;border:1px solid var(--b1);border-radius:8px;padding:.8rem;font-family:var(--fm);font-size:.76rem;color:var(--t2);white-space:pre-wrap;word-break:break-word;max-height:40vh;overflow:auto;margin:0}
.plist{display:flex;flex-direction:column;gap:.35rem}
.prow{display:flex;align-items:center;justify-content:space-between;gap:.7rem;padding:.55rem .8rem;background:var(--bg3);border:1px solid var(--b1);border-radius:7px}
.pname{font-size:.85rem;font-weight:600;color:var(--t1)}
.pver{font-size:.68rem;color:var(--t3);font-family:var(--fm);font-weight:400;margin-left:.3rem}
.pbadge{font-size:.62rem;font-weight:800;letter-spacing:.4px;text-transform:uppercase;padding:.22rem .55rem;border-radius:20px}
.pbadge.on{background:rgba(99,197,63,.16);color:var(--mc2)}
.pbadge.off{background:rgba(239,68,68,.15);color:var(--re)}
.spark{min-height:90px}

.log-av{width:26px;height:26px;border-radius:6px;flex-shrink:0;image-rendering:pixelated;background:var(--b1)}

.sb:not(.open) .sb-lbl{display:none}
.sb:not(.open) .si{justify-content:center;gap:0;padding-left:0;padding-right:0}
.sb:not(.open) .si>span{display:none}
.sb:not(.open) .sb-toggle{color:var(--t2)}
.sb-backdrop{position:fixed;inset:var(--nh) 0 0 0;background:rgba(0,0,0,.55);z-index:90;opacity:0;pointer-events:none;transition:opacity .2s}
body.sb-open .main{margin-left:214px}
@media (max-width:900px){
  body.sb-open .main{margin-left:var(--sb)}
  body.sb-open .sb-backdrop{opacity:1;pointer-events:auto}
  .sb.open{box-shadow:6px 0 40px rgba(0,0,0,.55)}
}

.field2{display:flex;gap:.6rem}
.field2 .field{flex:1}
.srv-preview{display:flex;align-items:center;gap:.6rem;padding:.5rem .6rem;background:var(--bg3);border:1px solid var(--b1);border-radius:8px;margin-bottom:.7rem}
.srv-ic{width:40px;height:40px;border-radius:8px;image-rendering:pixelated;flex-shrink:0;background:var(--b1)}
.srv-ic-sm{width:26px;height:26px;border-radius:6px;image-rendering:pixelated;flex-shrink:0;background:var(--b1);vertical-align:middle}

.dash-cols{display:grid;grid-template-columns:1.1fr 1fr;gap:.9rem;align-items:start}
@media (max-width:900px){.dash-cols{grid-template-columns:1fr}}
.ctitle-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:.6rem}
.ctitle-row .ctitle{margin-bottom:0}
.dsrv{display:flex;align-items:center;gap:.7rem;padding:.6rem .7rem;background:var(--bg3);border:1px solid var(--b1);border-radius:9px;cursor:pointer;transition:.13s;margin-bottom:.5rem}
.dsrv:hover{border-color:var(--mc);background:var(--md)}
.dsrv:last-child{margin-bottom:0}
.srv-ph{display:flex;align-items:center;justify-content:center;color:var(--t3)}
.srv-ph svg{width:22px;height:22px}
.dsrv-main{flex:1;min-width:0}
.dsrv-name{font-size:.9rem;font-weight:700;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dsrv-sub{font-size:.72rem;color:var(--t3);font-family:var(--fm)}
.dsrv-meta{text-align:right;flex-shrink:0}
.dsrv-st{display:flex;align-items:center;gap:.35rem;justify-content:flex-end;font-size:.76rem;color:var(--t2);font-weight:600}
.dsrv-ply{font-size:.68rem;color:var(--t3);margin-top:.15rem}
.sdot{width:8px;height:8px;border-radius:50%;background:var(--t3);flex-shrink:0}
.sdot.on{background:var(--mc);box-shadow:0 0 6px rgba(99,197,63,.6)}
.sdot.off{background:var(--re)}
.log-srv{font-size:.6rem;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--t3);background:var(--b1);padding:.08rem .4rem;border-radius:5px;margin-left:auto}

/* ===== Players / Inventory / Admin (TovStudio) ===== */
.pv-name{display:flex;align-items:center;gap:.55rem;cursor:pointer}
.pv-name .pav{width:30px;height:30px;border-radius:6px;background:var(--b1);image-rendering:pixelated}
.pv-nm{font-weight:600;color:var(--t1)}
.pv-name:hover .pv-nm{color:var(--mc2)}
.pv-sub{font-size:.68rem;color:var(--t3);font-family:var(--fm)}
.pv-gm{display:inline-block;font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--mc2);background:var(--md);border:1px solid rgba(76,154,42,.3);padding:.12rem .45rem;border-radius:5px}

.modal-bg:has(.ivx) .modal{max-width:900px;width:calc(100vw - 1.4rem);padding:0}
.modal-bg:has(.am) .modal{max-width:440px}
.ivx{position:relative;display:flex;flex-direction:column;max-height:calc(100vh - 4rem)}
.iv-head{display:flex;align-items:center;gap:.6rem;padding:.85rem 1rem;border-bottom:1px solid var(--b1)}
.iv-av{width:34px;height:34px;border-radius:7px;background:var(--b1);image-rendering:pixelated}
.iv-hname{font-size:.98rem;font-weight:700;line-height:1.15}
.iv-hsub{font-size:.68rem;font-weight:500;color:var(--t3)}
.iv-close{width:30px;height:30px;border-radius:7px;border:1px solid var(--b2);color:var(--t2);font-size:1.15rem;line-height:1;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.iv-close:hover{color:var(--re);border-color:var(--re)}
.iv-scroll{overflow-y:auto;padding:1rem;flex:1}
.iv-foot{display:flex;flex-wrap:wrap;gap:.4rem;padding:.7rem 1rem;border-top:1px solid var(--b1);background:var(--bg2)}

.iv-stats{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.9rem}
.iv-stat{display:flex;align-items:center;gap:.35rem;font-size:.7rem;background:var(--bg3);border:1px solid var(--b2);border-radius:6px;padding:.26rem .55rem}
.iv-stat span{color:var(--t3)}
.iv-stat b{color:var(--t1);font-weight:600}

.iv-top{display:flex;gap:1.4rem;margin-bottom:1rem;flex-wrap:wrap}
.iv-col{display:flex;flex-direction:column}
.iv-sec{margin-bottom:1rem}
.iv-lbl{font-size:.6rem;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--t3);margin-bottom:.4rem}
.iv-grid{display:grid;grid-template-columns:repeat(9,1fr);gap:5px;max-width:430px}
.iv-col .iv-grid{grid-template-columns:repeat(4,44px)}
.iv-hot{margin-top:6px;padding-top:8px;border-top:1px dashed var(--b2)}
.iv-hot .iv-grid{max-width:430px}

.iv-slot{position:relative;aspect-ratio:1;min-height:44px;background:var(--bg);border:1px solid var(--b2);border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:.1s}
.iv-col .iv-slot,.iv-slot{width:auto}
.iv-slot:hover{border-color:var(--mc);background:var(--md)}
.iv-slot.filled{background:var(--bg3)}
.iv-slot.iv-ench{background:radial-gradient(circle at 50% 40%,rgba(168,85,247,.22),var(--bg3));border-color:rgba(168,85,247,.4)}
.iv-ic{width:78%;height:78%;object-fit:contain;image-rendering:pixelated;pointer-events:none}
.iv-txt{font-size:.58rem;font-weight:700;color:var(--t2);text-transform:uppercase;pointer-events:none}
.iv-amt{position:absolute;right:2px;bottom:1px;font-size:.66rem;font-weight:700;color:#fff;text-shadow:0 1px 2px #000,0 0 2px #000;font-family:var(--fm);pointer-events:none}
.iv-dur{position:absolute;left:4px;right:4px;bottom:3px;height:2px;background:rgba(0,0,0,.6);border-radius:2px;overflow:hidden;pointer-events:none}
.iv-dur i{display:block;height:100%;background:var(--gr)}
.iv-x{position:absolute;top:-6px;right:-6px;width:17px;height:17px;border-radius:50%;background:var(--re);color:#fff;font-size:.8rem;line-height:1;display:none;align-items:center;justify-content:center;border:1px solid var(--bg)}
.iv-slot.filled:hover .iv-x{display:flex}

/* item picker overlay */
.ivp{position:absolute;inset:0;background:var(--card);border-radius:inherit;display:none;flex-direction:column;z-index:5}
.ivp.open{display:flex}
.ivp-head{display:flex;gap:.5rem;padding:.8rem 1rem;border-bottom:1px solid var(--b1)}
.ivp-search{flex:1}
.ivp-cats{display:flex;gap:.35rem;padding:.6rem 1rem;overflow-x:auto;border-bottom:1px solid var(--b1);flex-wrap:wrap}
.ivp-cat{font-size:.7rem;font-weight:600;color:var(--t2);background:var(--bg3);border:1px solid var(--b2);border-radius:6px;padding:.28rem .6rem;white-space:nowrap}
.ivp-cat:hover{color:var(--t1)}
.ivp-cat.active{color:var(--mc2);background:var(--md);border-color:var(--mc)}
.ivp-grid{flex:1;overflow-y:auto;padding:.7rem 1rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(74px,1fr));gap:.5rem;align-content:start}
.ivp-item{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.4rem .2rem;background:var(--bg3);border:1px solid var(--b2);border-radius:7px;cursor:pointer;transition:.1s}
.ivp-item:hover{border-color:var(--mc);background:var(--md)}
.ivp-item.sel{border-color:var(--mc2);background:var(--md);box-shadow:0 0 0 1px var(--mc)}
.ivp-ic{width:32px;height:32px;object-fit:contain;image-rendering:pixelated}
.ivp-item .iv-txt{font-size:.54rem}
.ivp-nm{font-size:.6rem;color:var(--t2);text-align:center;line-height:1.15;max-height:2.3em;overflow:hidden}
.ivp-more{grid-column:1/-1;text-align:center;color:var(--t3);font-size:.72rem;padding:.6rem}
.ivp-foot{display:flex;align-items:center;gap:.6rem;padding:.7rem 1rem;border-top:1px solid var(--b1);background:var(--bg2)}
.ivp-sel{flex:1;display:flex;align-items:center;gap:.5rem;font-size:.78rem;font-weight:600;color:var(--t2);min-width:0}
.ivp-sel span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ivp-selic{width:26px;height:26px;object-fit:contain;image-rendering:pixelated;flex-shrink:0}
.ivp-amt{display:flex;align-items:center;gap:.4rem;font-size:.72rem;color:var(--t3)}
.ivp-amt input{width:76px;padding:.3rem .4rem}

/* admin menu */
.am{display:flex;flex-direction:column;gap:.1rem}
.am-head{display:flex;align-items:center;gap:.6rem;margin-bottom:.4rem}
.am-grp{padding:.55rem 0;border-top:1px solid var(--b1)}
.am-grp:first-of-type{border-top:none}
.am-lbl{font-size:.6rem;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--t3);margin-bottom:.5rem}
.am-row{display:flex;flex-wrap:wrap;gap:.4rem}
.am-tp{align-items:center}
.am-tp input{flex:1;min-width:150px}
