:root{--bg:#FFF8EC;--card:#ffffff;--ink:#2b2116;--mut:#8a7a66;--line:#f0e2c8;--amb:#F59E0B;--ok:#15803D;--low:#dc2626;--high:#2563eb;--soft:#fff1d6}
.dark{--bg:#17130e;--card:#221c15;--ink:#f6ead7;--mut:#a8977f;--line:#3a2f22;--soft:#2c2419}
body{font-family:'Vazirmatn',sans-serif;background:var(--bg);color:var(--ink);margin:0}
#root>div{min-height:100vh;background:radial-gradient(circle at 90% -10%,rgba(245,158,11,.18),transparent 40%),radial-gradient(circle at 0% 110%,rgba(21,128,61,.10),transparent 40%),var(--bg);color:var(--ink)}
.mono{font-family:'JetBrains Mono',monospace;direction:ltr;unicode-bidi:embed}
.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:0 2px 0 var(--line)}
.inp{background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:5px 8px;color:var(--ink);width:100%;font-family:inherit}
.inp:focus{outline:2px solid var(--amb)}
.btn{background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:6px 12px;font-weight:700;cursor:pointer;color:var(--ink);transition:transform .1s}
.btn:hover{transform:translateY(-1px)}
.btn-amb{background:var(--amb);color:#2b1a00;border-color:#d68400}
.btn-ok{background:var(--ok);color:#fff;border-color:#0f5f2d}
.mut{color:var(--mut)}
.tab{padding:8px 14px;border-radius:12px;font-weight:700;cursor:pointer;white-space:nowrap}
.tab.on{background:var(--amb);color:#2b1a00}
table.t{width:100%;border-collapse:collapse;font-size:13px}
table.t td,table.t th{border-bottom:1px solid var(--line);padding:4px 6px;text-align:right}
table.t th{color:var(--mut);font-weight:700;position:sticky;top:0;background:var(--card)}
input[type=range]{accent-color:var(--amb);width:100%}
.bar{height:8px;border-radius:9px;background:var(--line);position:relative;overflow:hidden}
.fade{animation:fade .4s ease both}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1}}
.dash{stroke-dasharray:8 6;animation:dash 1.2s linear infinite}
@keyframes dash{to{stroke-dashoffset:-28}}
.bob{animation:bob 2.4s ease-in-out infinite;transform-origin:center bottom}
@keyframes bob{50%{transform:translateY(-3px) rotate(-3deg)}}
@media print{header,nav,.noprint,footer{display:none!important}.card{box-shadow:none;border:none}#printable{display:block}}