/* Toasts */
.fb-toasts { position: fixed; top: 84px; right: 20px; z-index: 1090; display: flex; flex-direction: column; gap: 12px; width: 400px; max-width: calc(100vw - 32px); pointer-events: none; }
@media (max-width: 575px) { .fb-toasts { top: 12px; right: 16px; left: 16px; width: auto; } }
.fb-toast { --tone: #1668E3; --tone-soft: #E8F0FD; pointer-events: auto; position: relative; overflow: hidden; display: flex; gap: 14px; align-items: flex-start;
  background: #fff; border-radius: 12px; padding: 14px 44px 16px 14px; box-shadow: 0 12px 32px rgba(25,30,59,.18), 0 2px 6px rgba(25,30,59,.08);
  border-left: 5px solid var(--tone); opacity: 0; transform: translateX(24px); transition: opacity .25s ease, transform .25s ease; font-family: Inter, system-ui, sans-serif; }
.fb-toast.show { opacity: 1; transform: none; }
.fb-toast.leaving { opacity: 0; transform: translateX(24px); }
.fb-toast-success { --tone: #227950; --tone-soft: #E6F4EC; }
.fb-toast-error { --tone: #C70A0B; --tone-soft: #FDECEC; }
.fb-toast-warning { --tone: #B7791F; --tone-soft: #FFF6D6; }
.fb-toast-info { --tone: #1668E3; --tone-soft: #E8F0FD; }
.fb-toast-icon { flex: 0 0 36px; width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--tone-soft); color: var(--tone); font-size: 1.15rem; }
.fb-toast-body { min-width: 0; padding-top: 1px; }
.fb-toast-body strong { display: block; color: #1F2340; font-size: .95rem; margin-bottom: 2px; }
.fb-toast-body p { margin: 0; color: #4b4f66; font-size: .9rem; line-height: 1.45; word-break: break-word; }
.fb-toast-close { position: absolute; top: 10px; right: 10px; width: 28px; height: 28px; border: 0; border-radius: 50%; background: transparent; color: #8a8da0; display: grid; place-items: center; }
.fb-toast-close:hover { background: #F3F3F5; color: #1F2340; }
.fb-toast-bar { position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--tone); opacity: .35; transform-origin: left; }

/* Confirm dialog */
.fb-confirm .modal-content { border: 0; border-radius: 16px; padding: 28px 28px 22px; text-align: center; box-shadow: 0 24px 60px rgba(25,30,59,.28); }
.fb-confirm-icon { width: 60px; height: 60px; border-radius: 50%; display: grid; place-items: center; margin: 0 auto 14px; font-size: 1.7rem; }
.fb-confirm-danger { background: #FDECEC; color: #C70A0B; box-shadow: 0 0 0 8px #FEF6F6; }
.fb-confirm-primary { background: #E8F0FD; color: #1668E3; box-shadow: 0 0 0 8px #F4F8FE; }
.fb-confirm-title { font-size: 1.2rem; font-weight: 700; color: #1F2340; margin: 4px 0 6px; }
.fb-confirm-text { color: #676A7D; margin: 0 0 22px; }
.fb-confirm-actions { display: flex; gap: 10px; justify-content: center; }
.fb-confirm-actions .btn { min-width: 120px; border-radius: 24px; font-weight: 600; padding: .55rem 1.2rem; }

/* Inline page alerts */
.alert { border: 0; border-left: 4px solid; border-radius: 10px; padding: 14px 16px; font-size: .95rem; box-shadow: 0 1px 3px rgba(25,30,59,.06); }
.alert > .bi:first-child { font-size: 1.1rem; margin-right: 6px; }
.alert-success { background: #E6F4EC; border-color: #227950; color: #17573a; }
.alert-danger { background: #FDECEC; border-color: #C70A0B; color: #8f0708; }
.alert-warning { background: #FFF6D6; border-color: #E0A800; color: #6b4e00; }
.alert-info { background: #E8F0FD; border-color: #1668E3; color: #0D4EAF; }
.alert ul { padding-left: 1.2rem; margin-top: 4px; }
