/* Region feedback is shared by every layout. Loaded siblings stay interactive. */
.app-region-busy { position: relative; }
.app-operation-status { position: fixed; z-index: 2147483647; left: 50%; inset-block-end: max(20px, env(safe-area-inset-bottom)); transform: translateX(-50%); box-sizing: border-box; display: flex; align-items: center; gap: 10px; max-width: calc(100vw - 28px); padding: 11px 18px; border: 1px solid #dbe6f2; border-radius: 16px; background: #fff; color: #174274; box-shadow: 0 8px 32px rgb(15 23 42 / 16%); font: 600 .85rem/1.65 Tahoma, Arial, sans-serif; direction: rtl; pointer-events: none; }
.app-operation-spinner { flex: 0 0 auto; display: block; width: 19px; height: 19px; border-radius: 50%; border: 2px solid #dce8f6; border-top-color: #1767c0; animation: app-operation-spin .75s linear infinite; }
@keyframes app-operation-spin { to { transform: rotate(360deg); } }
.app-region-status { display: block; height: 3px; margin-block: 0 8px; overflow: hidden; border-radius: 4px; }
.app-region-skeleton { display: grid; gap: 12px; padding: 20px; min-height: 145px; border-radius: 16px; background: #f8fafc; }
.app-skeleton-bar { display: block; position: relative; overflow: hidden; min-height: 12px; border-radius: 8px; background: #e2e8f0; }
.app-skeleton-bar::after { position: absolute; inset: 0; content: ""; background: linear-gradient(100deg, transparent 15%, rgb(255 255 255 / 78%) 50%, transparent 85%); transform: translateX(-100%); animation: app-shimmer 1.4s ease-in-out infinite; }
.app-region-skeleton .app-skeleton-bar:first-of-type { width: 44%; height: 21px; }
.app-region-skeleton .app-skeleton-bar:last-of-type { width: 72%; }
.app-region-status .app-skeleton-bar { height: 3px; min-height: 3px; background: #bfdbfe; }
.app-submit-control-locked { cursor: wait !important; opacity: .72; }
.app-loading-sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.app-region-error, .app-operation-error-feedback { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; color: #991b1b; background: #fef2f2; border: 1px solid #fecaca; border-radius: 12px; font-size: .82rem; line-height: 1.7; direction: rtl; }
.app-region-error { margin-block: 8px; }
.app-operation-error-feedback { position: fixed; z-index: 1090; inset: max(14px, env(safe-area-inset-top)) 14px auto; width: min(520px, calc(100% - 28px)); box-sizing: border-box; margin-inline: auto; box-shadow: 0 12px 35px rgb(15 23 42 / 12%); }
.app-region-error button, .app-operation-error-feedback button { border: 0; border-radius: 6px; background: transparent; color: inherit; font-size: 1.2rem; cursor: pointer; }
@keyframes app-shimmer { to { transform: translateX(100%); } }
@media (prefers-reduced-motion: reduce) { .app-skeleton-bar::after, .app-region-ready, .app-operation-spinner { animation: none; } }
@media print { .app-region-status, .app-region-skeleton, .app-region-error, .app-operation-error-feedback, .app-operation-status { display: none !important; } }
