*{font-family:Vazirmatn,Tahoma,sans-serif}
body{min-height:100vh;margin:0;color:#fff;background:linear-gradient(135deg,#3b0764,#9d174d,#0f766e,#312e81);background-size:400% 400%;animation:bg 22s ease infinite;overflow-x:hidden}
@keyframes bg{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
.blob{position:fixed;border-radius:50%;filter:blur(80px);opacity:.45;z-index:0;animation:float 18s ease-in-out infinite}
.b1{width:340px;height:340px;background:#f472b6;top:-80px;right:-60px}
.b2{width:300px;height:300px;background:#2dd4bf;bottom:-80px;left:-60px;animation-delay:-6s}
.b3{width:240px;height:240px;background:#a78bfa;top:40%;left:40%;animation-delay:-12s}
@keyframes float{0%,100%{transform:translate(0,0)}50%{transform:translate(40px,-50px)}}
#root{position:relative;z-index:1}
.glass{background:rgba(255,255,255,.1);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.2);border-radius:1rem}
.gbtn{background:rgba(255,255,255,.12);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:.4rem .9rem;font-size:.85rem;transition:.2s;white-space:nowrap}
.gbtn:hover{transform:scale(1.05);background:rgba(255,255,255,.22)}
.gbtn.on{background:rgba(255,255,255,.85);color:#4c1d95;font-weight:700}
.today{box-shadow:0 0 0 2px #fde68a,0 0 18px #fde68a}
.inp{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);border-radius:.6rem;padding:.45rem .6rem;color:#fff;width:100%}
.inp option{color:#000}
.toast{animation:slide .4s ease}
@keyframes slide{from{transform:translateY(-30px);opacity:0}to{transform:none;opacity:1}}
a{color:#fde68a}