:root{--bg:#0f1720;--card:rgba(255,255,255,.05);--txt:#e6f1ec;--mut:#8aa39a;--acc:#22ff88;--mag:#ff4fd8;--bd:rgba(255,255,255,.1)}
.light{--bg:#f3f7f2;--card:rgba(255,255,255,.8);--txt:#10201a;--mut:#56706a;--acc:#0a9f52;--mag:#c01b9c;--bd:rgba(0,0,0,.1)}
*{font-family:Vazirmatn,sans-serif}
body{margin:0}
.app{min-height:100vh;background:var(--bg);color:var(--txt);
background-image:radial-gradient(circle at 15% 10%,rgba(34,255,136,.12),transparent 40%),radial-gradient(circle at 85% 80%,rgba(255,79,216,.12),transparent 40%),linear-gradient(var(--bd) 1px,transparent 1px),linear-gradient(90deg,var(--bd) 1px,transparent 1px);
background-size:auto,auto,40px 40px,40px 40px;transition:background .3s}
.glass{background:var(--card);border:1px solid var(--bd);backdrop-filter:blur(10px);border-radius:18px}
.card{transition:transform .2s,box-shadow .2s;animation:rise .4s both}
.card:hover{transform:translateY(-4px);box-shadow:0 10px 30px rgba(34,255,136,.15)}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1}}
.search{border:2px solid var(--acc);box-shadow:0 0 18px rgba(34,255,136,.35);background:var(--card);color:var(--txt)}
.search:focus{outline:none;box-shadow:0 0 30px rgba(34,255,136,.6)}
.chip{border:1px solid var(--bd);border-radius:999px;padding:6px 14px;cursor:pointer;transition:.2s;background:var(--card)}
.chip.on{background:var(--acc);color:#04130b;font-weight:800;border-color:var(--acc)}
.btn{border-radius:10px;padding:6px 10px;font-size:13px;border:1px solid var(--bd);background:var(--card);cursor:pointer;transition:.15s}
.btn:hover{border-color:var(--acc);color:var(--acc)}
.acc{color:var(--acc)}.mag{color:var(--mag)}.mut{color:var(--mut)}
.magnet{display:inline-block;animation:wig 0.6s infinite alternate}
@keyframes wig{from{transform:rotate(-20deg) scale(1)}to{transform:rotate(20deg) scale(1.15)}}
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--acc);color:#04130b;padding:10px 20px;border-radius:12px;font-weight:700;z-index:60;animation:rise .3s}
select,input[type=number]{background:var(--card);color:var(--txt);border:1px solid var(--bd);border-radius:10px;padding:6px}
select option{color:#000}