#appToastRegion{
  position:fixed;
  right:24px;
  bottom:24px;
  z-index:9999;
  display:flex;
  width:min(420px,calc(100vw - 32px));
  flex-direction:column;
  gap:10px;
  pointer-events:none;
}

.app-toast{
  display:grid;
  grid-template-columns:10px minmax(0,1fr) auto;
  align-items:start;
  gap:11px;
  padding:14px 16px;
  border:1px solid rgba(37,99,235,.18);
  border-radius:16px;
  background:#fff;
  box-shadow:0 18px 46px rgba(15,23,42,.20);
  color:#0b1220;
  font-size:.95rem;
  font-weight:700;
  line-height:1.4;
  opacity:0;
  transform:translateY(8px);
  transition:opacity 200ms ease,transform 200ms ease;
  pointer-events:auto;
}
.app-toast.is-visible{opacity:1;transform:none}
.app-toast.is-leaving{opacity:0;transform:translateY(8px)}
.app-toast__mark{width:10px;height:10px;margin-top:5px;border-radius:50%;background:#2563eb}
.app-toast.is-ok{border-color:#bde7c9}.app-toast.is-ok .app-toast__mark{background:#16a34a}
.app-toast.is-warn{border-color:#f6d58c}.app-toast.is-warn .app-toast__mark{background:#f59e0b}
.app-toast.is-bad{border-color:#fecaca}.app-toast.is-bad .app-toast__mark{background:#ef4444}
.app-toast__text{min-width:0;overflow-wrap:anywhere}
.app-toast__close{width:32px;height:32px;margin:-7px -9px -7px 0;border:0;border-radius:10px;background:transparent;color:#475569;font:700 24px/1 system-ui;cursor:pointer}
.app-toast__close:focus-visible{outline:3px solid rgba(37,99,235,.25);outline-offset:1px}

.app-context-bar,.app-inline-alert,.app-loading-state{
  margin-top:10px;
  padding:10px 12px;
  border:1px solid rgba(37,99,235,.18);
  border-radius:14px;
  background:rgba(37,99,235,.06);
  color:#1e3a8a;
  font-size:13px;
  line-height:1.4;
}
.app-inline-alert.is-bad{border-color:rgba(239,68,68,.18);background:rgba(239,68,68,.06);color:#7f1d1d}
.app-inline-alert.is-warn,.app-context-bar.is-warn{border-color:rgba(245,158,11,.24);background:rgba(245,158,11,.10);color:#7c2d12}
.app-context-bar.is-ok{border-color:rgba(22,163,74,.20);background:rgba(22,163,74,.08);color:#14532d}
.app-loading-state{position:static;display:flex;align-items:center;gap:8px}
.app-loading-state::before{content:"";width:12px;height:12px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:app-loading-spin .7s linear infinite}
.app-field-message{margin-top:6px;color:#b91c1c;font-size:12px;font-weight:750;line-height:1.35}
.is-invalid{border-color:#dc2626!important;box-shadow:0 0 0 3px rgba(220,38,38,.10)!important}
@keyframes app-loading-spin{to{transform:rotate(360deg)}}

@media (max-width:600px){
  #appToastRegion{right:16px;bottom:calc(20px + env(safe-area-inset-bottom));left:16px;width:auto;align-items:center}
  .app-toast{width:min(100%,420px)}
}
@media (prefers-reduced-motion:reduce){
  .app-toast{transition:none;transform:none}
  .app-loading-state::before{animation-duration:1.4s}
}
