/* 🆕 (Update 31) پیامِ قطع/اتصالِ دوباره و خطایِ Blazor — کارتِ کوچک و حرفه‌ای در پایینِ صفحه */
#components-reconnect-modal, #blazor-error-ui { display: none; position: fixed; inset-inline: 0; bottom: calc(18px + env(safe-area-inset-bottom, 0px)); z-index: 2147483000; justify-content: center; pointer-events: none; padding: 0 12px; background: none; box-shadow: none; }
#components-reconnect-modal.components-reconnect-show,
#components-reconnect-modal.components-reconnect-failed,
#components-reconnect-modal.components-reconnect-rejected { display: flex; }
#blazor-error-ui[style*="block"] { display: flex !important; }
.fd-conn-card { pointer-events: auto; display: flex; align-items: center; gap: 12px; max-width: 460px; width: 100%; background: rgba(17, 24, 39, .94); color: #fff; border-radius: 16px; padding: 12px 14px; box-shadow: 0 16px 40px rgba(0,0,0,.28); backdrop-filter: blur(8px); font-family: 'Vazirmatn', system-ui, sans-serif; animation: fd-conn-in .25s ease; }
.fd-conn-text { flex: 1; display: grid; gap: 1px; min-width: 0; }
.fd-conn-text strong { font-size: 13.5px; }
.fd-conn-text span { font-size: 12px; color: #cbd5e1; }
.fd-conn-spinner { width: 22px; height: 22px; border-radius: 50%; border: 3px solid rgba(255,255,255,.25); border-top-color: #a5b4fc; animation: fd-conn-spin .9s linear infinite; flex: none; }
.fd-conn-icon { width: 26px; height: 26px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-weight: 900; flex: none; }
.fd-conn-icon.err { background: #f59e0b; color: #111827; }
.fd-conn-btn { flex: none; border: none; border-radius: 10px; background: #6366f1; color: #fff !important; padding: 8px 14px; font: inherit; font-size: 12.5px; font-weight: 700; cursor: pointer; text-decoration: none !important; }
.fd-conn-btn:hover { background: #4f46e5; }
.fd-conn-x { color: #94a3b8 !important; cursor: pointer; font-size: 14px; padding: 4px; text-decoration: none !important; }
#components-reconnect-modal .fd-failed, #components-reconnect-modal .fd-rejected { display: none; }
#components-reconnect-modal.components-reconnect-failed .fd-show, #components-reconnect-modal.components-reconnect-rejected .fd-show { display: none; }
#components-reconnect-modal.components-reconnect-failed .fd-failed { display: initial; }
#components-reconnect-modal.components-reconnect-failed strong.fd-failed, #components-reconnect-modal.components-reconnect-failed span.fd-failed { display: block; }
#components-reconnect-modal.components-reconnect-rejected strong.fd-rejected, #components-reconnect-modal.components-reconnect-rejected span.fd-rejected { display: block; }
#components-reconnect-modal.components-reconnect-failed .fd-conn-spinner { border-top-color: #f59e0b; animation-duration: 2.4s; }
@keyframes fd-conn-spin { to { transform: rotate(360deg); } }
@keyframes fd-conn-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .fd-conn-card, .fd-conn-spinner { animation: none; } }
