:root{--navy:#0A1628;--card:#111F38;--blue:#2F80FF;--teal:#14B8A6;--gold:#C9A55C;--line:rgba(148,180,255,.14)}
*{box-sizing:border-box}
body{margin:0;background:var(--navy);color:#E6EDF7;font-family:'Vazirmatn',sans-serif}
.mono{font-family:'IBM Plex Mono','Vazirmatn',monospace;font-variant-numeric:tabular-nums}
.grid-bg{background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:32px 32px;mask-image:radial-gradient(ellipse at center,#000 30%,transparent 75%)}
.card{background:rgba(17,31,56,.75);backdrop-filter:blur(10px);border:1px solid var(--line);position:relative;border-radius:6px;transition:box-shadow .3s,border-color .3s}
.card:hover{border-color:rgba(47,128,255,.35);box-shadow:0 0 30px rgba(47,128,255,.08)}
.card::before,.card::after{content:'';position:absolute;width:12px;height:12px;border-color:var(--blue);border-style:solid;opacity:.7}
.card::before{top:-1px;right:-1px;border-width:2px 2px 0 0}
.card::after{bottom:-1px;left:-1px;border-width:0 0 2px 2px}
.draw path,.draw line,.draw rect{stroke-dasharray:1200;stroke-dashoffset:1200;animation:draw 3s ease forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.fade{opacity:0;transform:translateY(12px);animation:fade .7s ease forwards}
@keyframes fade{to{opacity:1;transform:none}}
.scan{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.scan::after{content:'';position:absolute;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--teal),transparent);animation:scan 1.2s linear infinite}
@keyframes scan{from{top:0}to{top:100%}}
input[type=range]{accent-color:var(--blue)}
.inp{background:#0B1830;border:1px solid var(--line);border-radius:4px;padding:.6rem .8rem;width:100%;color:#fff;outline:none}
.inp:focus{border-color:var(--blue)}
.locked{filter:blur(5px);user-select:none;pointer-events:none}
#print-report{display:none}
@media print{
  body{background:#fff}
  #app-shell{display:none!important}
  #print-report{display:block;color:#111;font-family:'Vazirmatn',sans-serif;padding:24px}
  #print-report table{width:100%;border-collapse:collapse;margin:10px 0}
  #print-report td,#print-report th{border:1px solid #ccc;padding:6px;text-align:right;font-size:12px}
}