/* ===== Animations ===== */
.fade-in{animation:fadeIn .5s ease both}
@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.fade-in-delay-1{animation:fadeIn .5s ease .1s both}
.fade-in-delay-2{animation:fadeIn .5s ease .2s both}
.fade-in-delay-3{animation:fadeIn .5s ease .3s both}
.spinner{width:40px;height:40px;border:4px solid rgba(79,70,229,.2);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.page-loader{position:fixed;inset:0;background:var(--body-bg);display:flex;align-items:center;justify-content:center;z-index:9999;transition:opacity .4s}
.page-loader.hide{opacity:0;pointer-events:none}
.btn{transition:var(--transition)}
.btn:hover{transform:translateY(-1px)}
.toast-container-c{position:fixed;top:80px;right:20px;z-index:9999}
.toast-c{background:var(--card-bg);color:var(--text);padding:14px 18px;border-radius:10px;box-shadow:var(--shadow-lg);margin-bottom:10px;display:flex;align-items:center;gap:12px;min-width:280px;border-left:4px solid var(--primary);animation:slideIn .35s ease}
.toast-c.success{border-color:var(--success)}.toast-c.error{border-color:var(--danger)}.toast-c.warning{border-color:var(--warning)}
@keyframes slideIn{from{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}
