/* App recovery uses the sign-in palette, card, typography and button treatment. */
.app-error-screen { box-sizing:border-box; min-height:100vh; min-height:100svh; width:100%; display:flex; align-items:center; justify-content:center; color:#ececf4; font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; padding:max(24px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left)); background:radial-gradient(1200px 600px at 78% -10%,rgba(124,108,246,.14),transparent 60%),radial-gradient(900px 500px at 0% 8%,rgba(40,212,192,.08),transparent 55%),#0a0a0f; }
.app-error-card { box-sizing:border-box; width:100%; max-width:420px; min-width:0; padding:40px; background:#12121b; border:1px solid #292938; border-radius:16px; box-shadow:0 24px 60px -24px rgba(0,0,0,.8); }
.app-error-card .marketing-brand { margin-bottom:24px; }
.app-error-card h1 { margin:0 0 8px; color:#ececf4; font-size:22px; line-height:1.3; font-weight:700; }
.app-error-card p { margin:0 0 24px; color:#a3a3b8; font-size:14px; line-height:1.6; }
.app-error-card button { font-family:inherit; font-size:14px; cursor:pointer; }
.app-error-primary { width:100%; min-height:44px; padding:12px 18px; font-weight:600; color:#fff; background:linear-gradient(135deg,#7c6cf6,#6a58ea); border:1px solid rgba(157,139,255,.5); border-radius:10px; box-shadow:0 8px 24px -10px rgba(124,108,246,.8); }
.app-error-secondary { width:100%; min-height:44px; margin-top:8px; padding:10px; border:0; background:transparent; color:#b9acf9; }
.app-error-card button:disabled { cursor:wait; opacity:.65; }
.app-error-card :focus-visible { outline:2px solid #9d8bff; outline-offset:3px; }
.app-error-details { margin-top:24px; padding-top:16px; border-top:1px solid #292938; font-size:13px; color:#a3a3b8; }
.app-error-details summary { cursor:pointer; padding:6px 0; }
.app-error-copy { margin:10px 8px 8px 0; padding:6px 12px; border:1px solid #414157; border-radius:6px; color:#ececf4; background:transparent; }
.app-error-details pre { margin:8px 0 0; max-height:220px; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; font:11px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace; color:#a3a3b8; }
@media(max-width:480px) { .app-error-card { padding:28px 24px; } }
