.app-error-modal-open { overflow: hidden; }
.app-error-dialog { box-sizing: border-box; width: min(34rem, calc(100vw - 2rem)); max-height: calc(100dvh - 2rem); margin: auto; padding: 0; border: 0; border-radius: 20px; background: #fff; color: #123047; box-shadow: 0 24px 80px #001a3a55; overflow: auto; overscroll-behavior: contain; }
.app-error-dialog:not([open]) { display: none; }
.app-error-dialog::backdrop { background: #102a42aa; }
.app-error-dialog-card { padding: clamp(20px, 5vw, 32px); text-align: center; }
.app-error-dialog-icon { display: inline-grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: #fce8e6; color: #b32318; font-size: 32px; font-weight: 800; }
.app-error-dialog h2 { margin: 18px 0 14px; font-size: clamp(22px, 5vw, 28px); line-height: 1.25; color: #123047; }
.app-error-dialog-description { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 16px; line-height: 1.6; text-align: left; }
.app-error-dialog-label { margin: 20px 0 6px; font-size: 14px; font-weight: 700; }
.app-error-dialog-reference { display: block; padding: 12px; background: #eef4f8; border-radius: 10px; overflow-wrap: anywhere; white-space: normal; font-size: 15px; user-select: text; }
.app-error-dialog-hint { font-size: 16px; line-height: 1.6; margin: 20px 0; }
.app-error-dialog-ok { display: block; width: 100%; min-height: 48px; padding: 12px 20px; border: 0; border-radius: 10px; background: #0b467f; color: #fff; font: inherit; font-weight: 700; cursor: pointer; }
.app-error-dialog-ok:focus-visible { outline: 3px solid #347cc4; outline-offset: 3px; }
.app-error-dialog-fallback { position: fixed; inset: 0; z-index: 2147483647; box-shadow: 0 0 0 100vmax #102a42aa; }
@media (max-width: 480px) { .app-error-dialog { width: calc(100vw - 24px); max-height: calc(100dvh - 24px); border-radius: 16px; } }
