/* The message box in the middle of the screen (web/alert.js). */
.erp-alert { width: min(440px, calc(100vw - 32px)); max-height: calc(100vh - 48px); overflow: auto; margin: auto; padding: 24px 24px 20px; border: 0; border-radius: 16px;
  background: #fff; color: #1f2d3d; text-align: center; box-shadow: 0 24px 60px rgb(15 23 42 / .32), 0 4px 14px rgb(15 23 42 / .12); }
.erp-alert[open] { animation: erp-alert-in .24s cubic-bezier(.16,1,.3,1); }
.erp-alert.erp-alert-again { animation: erp-alert-nudge .3s ease; }
.erp-alert::backdrop { background: rgb(15 23 42 / .45); animation: erp-alert-fade .2s ease; }
.erp-alert-icon { display: grid; place-items: center; width: 52px; height: 52px; margin: 0 auto 12px; border-radius: 50%; background: #fee2e2; color: #dc2626;
  font-size: 28px; font-weight: 800; line-height: 1; box-shadow: 0 0 0 8px #fef2f2; animation: erp-alert-pop .4s cubic-bezier(.34,1.56,.64,1) .05s both; }
.erp-alert h2 { margin: 0 0 6px; font-size: 18px; font-weight: 700; color: #111827; }
.erp-alert p { margin: 0; font-size: 14px; line-height: 1.5; color: #374151; overflow-wrap: anywhere; }
.erp-alert ul { margin: 12px 0 0; padding: 10px 12px 10px 28px; border-radius: 10px; background: #f8fafc; text-align: left; font-size: 12.5px; line-height: 1.45; color: #475569; }
.erp-alert li + li { margin-top: 3px; }
.erp-alert-ok { min-width: 120px; margin-top: 18px; padding: 9px 22px; border: 0; border-radius: 9px; background: #2563eb; color: #fff; font: inherit; font-size: 14px; font-weight: 600; cursor: pointer;
  box-shadow: 0 6px 16px rgb(37 99 235 / .3); transition: transform .12s, box-shadow .12s, filter .12s; }
.erp-alert-ok:hover { transform: translateY(-1px); filter: brightness(1.05); }
.erp-alert-ok:focus-visible { outline: 3px solid #93c5fd; outline-offset: 2px; }
html.vivid .erp-alert-ok { background: linear-gradient(90deg, #6366f1, #a855f7); box-shadow: 0 6px 18px rgb(99 102 241 / .38); }
@keyframes erp-alert-in { from { opacity: 0; transform: translateY(10px) scale(.95); } to { opacity: 1; transform: none; } }
@keyframes erp-alert-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes erp-alert-pop { from { transform: scale(.4); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes erp-alert-nudge { 0%, 100% { transform: none; } 25% { transform: translateX(-6px); } 50% { transform: translateX(5px); } 75% { transform: translateX(-3px); } }
@media (prefers-reduced-motion: reduce) { .erp-alert[open], .erp-alert.erp-alert-again, .erp-alert::backdrop, .erp-alert-icon { animation: none; } }
