:root{--bg:#0b1020;--card:#121a2e;--line:#1f2a44;--win:#22c55e;--loss:#ef4444;--amber:#f59e0b;--blue:#3b82f6}
*{font-family:Vazirmatn,system-ui,sans-serif}
body{background:radial-gradient(1200px 600px at 90% -10%,#1a2550 0%,transparent 60%),radial-gradient(800px 500px at 0% 110%,#2a0f1f 0%,transparent 60%),var(--bg);color:#dbe3f4;min-height:100vh}
body::before{content:"";position:fixed;inset:0;pointer-events:none;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:48px 48px;opacity:.18}
.card{background:var(--card);border:1px solid var(--line);border-radius:1rem}
.num{font-variant-numeric:tabular-nums}
.mono{font-family:ui-monospace,Menlo,monospace}
.fade{animation:fade .35s ease both}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.pulse-red{animation:pr 1.4s infinite}
@keyframes pr{0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,.6)}50%{box-shadow:0 0 0 8px rgba(239,68,68,0)}}
.inp{background:#0d1428;border:1px solid var(--line);border-radius:.6rem;padding:.45rem .7rem;width:100%;color:#fff;outline:none}
.inp:focus{border-color:var(--blue)}
.inp.bad{border-color:var(--loss)}
.btn{border-radius:.6rem;padding:.45rem .9rem;font-weight:700;transition:.15s}
.btn:active{transform:scale(.97)}
.tabbar::-webkit-scrollbar{display:none}
.spec h2{font-weight:800;margin-top:1rem;color:#93c5fd}
pre{white-space:pre-wrap;direction:ltr;text-align:left}