/*ui.css*/
/* Shared UI: toasts and loader overlay */
:root{--ui-toast-bg:#111827;--ui-toast-color:#ffffff;--ui-success:#16a34a;--ui-error:#dc2626}
.toast-container{position:fixed;right:20px;bottom:20px;z-index:9999;display:flex;flex-direction:column;gap:10px}
.ui-toast{min-width:260px;max-width:360px;padding:12px 14px;border-radius:10px;color:var(--ui-toast-color);background:var(--ui-toast-bg);box-shadow:0 8px 30px rgba(2,6,23,0.4);display:flex;gap:12px;align-items:center;opacity:0;transform:translateY(12px);animation:toastIn .26s ease forwards}
.ui-toast .icon{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px;background:rgba(255,255,255,0.08)}
.ui-toast.success{background:linear-gradient(90deg,var(--ui-success),#059669)}
.ui-toast.error{background:linear-gradient(90deg,var(--ui-error),#ef4444)}
.ui-toast .message{flex:1;font-size:0.95rem}
.ui-toast .close{margin-left:8px;cursor:pointer;opacity:0.85}
@keyframes toastIn{to{opacity:1;transform:translateY(0)}}

.ui-loader-overlay{position:fixed;inset:0;background:rgba(255,255,255,0.75);backdrop-filter:blur(2px);display:none;align-items:center;justify-content:center;z-index:9998}
.ui-loader{width:72px;height:72px;border-radius:12px;background:linear-gradient(135deg,#ffffff,#f3f4f6);display:flex;align-items:center;justify-content:center;box-shadow:0 12px 40px rgba(2,6,23,0.12)}
.ui-loader .spinner{width:40px;height:40px;border:4px solid rgba(0,0,0,0.08);border-top-color:var(--ui-toast-bg);border-radius:50%;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

.btn-loading{pointer-events:none;opacity:0.75}