.site-alert-stack { position:fixed; z-index:1050; display:flex; flex-direction:column; gap:10px; max-height:45dvh; overflow-y:auto; pointer-events:none; }
.site-alert-stack-top, .site-alert-stack-bottom { left:50%; transform:translateX(-50%); width:min(880px, calc(100% - 32px)); }
.site-alert-stack-top, .site-alert-stack-top-right { top:16px; }
.site-alert-stack-bottom, .site-alert-stack-bottom-right { bottom:16px; }
.site-alert-stack-top-right, .site-alert-stack-bottom-right { right:16px; width:min(380px, calc(100% - 32px)); }
.site-alert { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; flex-shrink:0; padding:16px 18px; border:1px solid; border-radius:9px; box-shadow:0 8px 28px #0004; pointer-events:auto; font-size:14px; line-height:1.5; overflow-wrap:anywhere; }
.site-alert > div { min-width:0; }
.site-alert-message { margin:5px 0 0; white-space:pre-wrap; }
.alert-message-html { white-space:normal; }
.alert-message-html p { margin:0 0 8px; }
.alert-message-html :is(h1,h2,h3,h4,h5,h6) { margin:0 0 .5em; color:inherit; line-height:1.25; font-weight:600; }
.alert-message-html h1 { font-size:1.7em; }
.alert-message-html h2 { font-size:1.5em; }
.alert-message-html h3 { font-size:1.3em; }
.alert-message-html :is(h4,h5,h6) { font-size:1.1em; }
.alert-message-html ul, .alert-message-html ol { padding-left:22px; margin:6px 0; }
.alert-message-html > :last-child { margin-bottom:0; }
.alert-message-html a { color:inherit; text-decoration:underline; }
.site-alert-warning { background:#493d23; border-color:#ba9454; color:#ffe2a3; }
.site-alert-danger { background:#4c2c36; border-color:#b76c7a; color:#ffd1d8; }
.site-alert-info { background:#243f50; border-color:#5d9fbd; color:#c8edff; }
.site-alert-close { display:grid; place-items:center; flex-shrink:0; width:32px; height:32px; margin:-4px -6px 0 0; color:inherit; background:transparent; border:1px solid currentColor; border-radius:5px; font:inherit; font-size:24px; line-height:1; cursor:pointer; }
.site-alert-close:focus-visible { outline:2px solid currentColor; outline-offset:3px; }
@media print { .site-alert-stack { display:none; } }
