/* Shared, non-blocking feedback for public pages. Only opacity animates. */
.site-notice[hidden], .legacy-flashes[hidden] { display: none !important; }
.site-notice { position: fixed; z-index: 12010; top: calc(98px + env(safe-area-inset-top, 0px)); right: 24px; display: flex; align-items: flex-start; gap: 13px; width: 365px; max-width: calc(100vw - 32px); box-sizing: border-box; padding: 18px 15px 18px 18px; border: 1px solid #d9cbe8; border-radius: 14px; background: #fff; color: #6b4e9e; font-family: 'Poppins', sans-serif; opacity: 1; transition: opacity .65s ease; animation: site-notice-in .16s ease-out; }
.site-notice.is-leaving { opacity: 0; pointer-events: none; }
.site-notice-icon { display: grid; place-items: center; flex: 0 0 35px; width: 35px; height: 35px; border-radius: 50%; background: #f3edf9; color: #6b4e9e; font-size: 14px; }
.site-notice-content { flex: 1; min-width: 0; padding-top: 1px; }
.site-notice-content strong { display: block; margin: 0 0 5px; color: #44314f; font-size: 13px; font-weight: 600; line-height: 1.5; }
.site-notice-content p { margin: 0; color: #826b92; font-size: 11px; line-height: 1.75; white-space: pre-line; overflow-wrap: anywhere; }
.site-notice .site-notice-close { display: grid; place-items: center; flex: 0 0 32px; width: 32px; height: 32px; min-height: 32px; margin: -4px -3px 0 0; padding: 0; border: 0; border-radius: 7px; background: #fff; color: #a28cb1; font: inherit; font-size: 13px; cursor: pointer; box-shadow: none !important; transform: none !important; transition: background-color .15s, color .15s; }
.site-notice .site-notice-close:hover { background: #f7f3fb; color: #6b4e9e; }
.site-notice .site-notice-close:focus-visible { outline: 2px solid #9a7ab5; outline-offset: 2px; }
.site-notice[data-tone="error"] { border-color: #e8cad2; }
.site-notice[data-tone="error"] .site-notice-icon { background: #fcf0f3; color: #a6576b; }
@keyframes site-notice-in { from { opacity: 0; } to { opacity: 1; } }
@media (max-width: 768px) {
    .site-notice { top: calc(76px + env(safe-area-inset-top, 0px)); right: 16px; padding: 16px; gap: 11px; }
    .site-notice .site-notice-close { flex-basis: 34px; width: 34px; height: 34px; min-height: 34px; }
}
@media (prefers-reduced-motion: reduce) { .site-notice { animation: none; transition: none; } }
@media print { .site-notice { display: none !important; } }
