/* Shared brand treatment for public notices, admin feedback and login. */
.notyf { padding: 20px; z-index: 10030; }
.notyf .bk-notification {
  min-width: 260px; max-width: 410px; padding: 0; border: 1px solid var(--line);
  border-radius: 12px; background: var(--paper); color: var(--ink);
  box-shadow: 0 12px 36px #10203b1a; font: 500 13px/1.65 var(--font);
}
.bk-notification .notyf__wrapper { padding: 15px 48px 15px 16px; }
.bk-notification .notyf__message { color: var(--ink); }
.bk-notification .notyf__icon { margin-right: 12px; height: auto; }
.bk-notification-icon {
  display: grid; place-items: center; width: 29px; height: 29px;
  background: var(--soft); border: 1px solid var(--line); border-radius: 50%;
  color: var(--accent); font: 700 15px/1 var(--font);
}
.bk-notification-icon-error { color: #bd4051; }
.bk-notification .notyf__dismiss { width: 42px; }
.bk-notification .notyf__dismiss-btn { background: transparent; border-radius: 0 12px 12px 0; }
.bk-notification .notyf__dismiss-btn::before,
.bk-notification .notyf__dismiss-btn::after { background: var(--muted); }
.bk-notification .notyf__dismiss-btn:hover { background: var(--soft); }
.bk-notification .notyf__dismiss-btn:focus-visible { outline: 2px solid var(--accent); outline-offset: -5px; }
.toastify.bk-toast-fallback, .toast-fallback {
  background: var(--paper); color: var(--ink); border: 1px solid var(--line);
  border-radius: 12px; box-shadow: 0 12px 36px #10203b1a;
  font: 500 13px/1.65 var(--font); padding: 15px 18px; max-width: min(410px,calc(100vw - 32px));
}
.toastify.bk-toast-fallback .toast-close { color: var(--muted); opacity: 1; margin-left: 12px; }
.toast-fallback { left: 20px; right: auto; bottom: 20px; transform: none; }
body [data-sonner-toaster] {
  --popover: var(--paper); --popover-foreground: var(--ink); --border: var(--line);
  --radius: 12px; z-index: 10030; font-family: var(--font);
}
body [data-sonner-toast][data-styled=true] {
  font: 500 13px/1.65 var(--font); padding: 16px; border-radius: 12px;
  background: var(--paper); color: var(--ink); border-color: var(--line);
  box-shadow: 0 12px 36px #10203b1a; gap: 12px;
}
body [data-sonner-toast] [data-icon] { color: var(--accent); }
body [data-sonner-toast][data-type=error] [data-icon] { color: #bd4051; }
body [data-sonner-toast] svg { width: 18px; height: 18px; }
body [data-sonner-toast] [data-close-button] { color: var(--muted); background: var(--paper); border-color: var(--line); }
body [data-sonner-toast] [data-close-button]:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
:is(.admin-body,.login-body) [data-slot=alert-dialog-overlay] {
  position: fixed; inset: 0; z-index: 10020; background: #10213a80; backdrop-filter: blur(4px);
}
.bk-confirm {
  position: fixed; z-index: 10021; top: 50%; left: 50%; transform: translate(-50%,-50%);
  width: min(480px,calc(100vw - 32px)); max-height: calc(100dvh - 32px); overflow-y: auto;
  padding: 30px; background: var(--paper); border: 1px solid var(--line);
  border-radius: 18px; box-shadow: 0 30px 100px #12253b33; color: var(--ink);
  font-family: var(--font); display: grid; gap: 24px;
}
.bk-confirm [data-slot=alert-dialog-header] { display: grid; gap: 12px; text-align: left; place-items: start; }
.bk-confirm [data-slot=alert-dialog-title] { font-size: 20px; font-weight: 750; margin: 0; letter-spacing: -.03em; }
.bk-confirm [data-slot=alert-dialog-description] { font-size: 14px; line-height: 1.8; color: var(--muted); margin: 0; overflow-wrap: anywhere; }
.bk-confirm [data-slot=alert-dialog-footer] { display: flex; gap: 10px; justify-content: flex-end; }
.bk-confirm [data-slot=alert-dialog-action], .bk-confirm [data-slot=alert-dialog-cancel] {
  display: inline-flex; align-items: center; justify-content: center; min-height: 44px;
  padding: 10px 16px; border-radius: 9px; font: 600 13px var(--font);
  border: 1px solid var(--line); background: var(--soft); color: var(--ink); cursor: pointer;
}
.bk-confirm [data-slot=alert-dialog-action] { background: #2458da; color: #fff; border-color: #2458da; }
.bk-confirm [data-slot=alert-dialog-action]:hover { background: #1844b0; border-color: #1844b0; }
.bk-confirm [data-slot=alert-dialog-action]:focus-visible,
.bk-confirm [data-slot=alert-dialog-cancel]:focus-visible { outline: 3px solid #789cff; outline-offset: 3px; }
.bk-confirm-symbol { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 12px; background: #edf3ff; color: #2458da; }
.bk-login-feedback.is-error .bk-confirm-symbol { color: #bd4051; background: #fff1f3; }
.bk-status-caption { margin: 2px 0 0; color: var(--muted); font-size: 10px; font-weight: 700; letter-spacing: .12em; }
.bk-status-spinner { animation: bk-status-spin 1s linear infinite; }
.bk-status-progress { height: 3px; overflow: hidden; border-radius: 3px; background: var(--soft); }
.bk-status-progress span { display: block; width: 35%; height: 100%; background: #2458da; animation: bk-status-progress 1.3s ease-in-out infinite alternate; }
@keyframes bk-status-spin { to { transform: rotate(360deg); } }
@keyframes bk-status-progress { to { transform: translateX(185%); } }
@media(max-width:600px) {
  .notyf { padding: 16px; }
  .notyf .bk-notification { min-width: 0; width: calc(100vw - 32px); }
  .bk-confirm { padding: 24px; }
  .bk-confirm [data-slot=alert-dialog-footer] { flex-direction: column-reverse; }
  body [data-sonner-toast] [data-close-button] { width: 30px; height: 30px; }
}
@media(prefers-reduced-motion:reduce) {
  .bk-status-spinner, .bk-status-progress span { animation: none; }
  .bk-status-progress span { width: 100%; }
  .notyf__toast, .notyf__message, .notyf__icon, .notyf__dismiss { animation-duration: .01ms !important; }
  body [data-sonner-toast] { transition-duration: .01ms; }
}
