/* Thông báo tải chung, theo trang Doanh thu thư ký. Lớp phủ không thêm chiều cao. */
.app-loading-region { position: relative; min-width: 0; }
.app-loading-state {
  display: flex; align-items: center; justify-content: center;
  min-height: 180px; padding: 16px; grid-column: 1 / -1;
  color: var(--tts-muc, #23334e); font-size: var(--tts-font-body, 13px); line-height: 1.5;
}
.app-loading-state.is-overlay {
  position: absolute; inset: 0; z-index: 8;
  align-items: flex-start; min-height: 0; padding: 12px;
  border-radius: 8px; background: rgb(244 246 249 / 72%); pointer-events: none;
}
.app-loading-state.is-overlay > span {
  position: sticky; top: calc(var(--tts-header-height, 0px) + 12px);
  padding: 9px 14px; border: 1px solid var(--tts-vien, #e4e9f0); border-radius: 6px;
  background: #fff; box-shadow: 0 2px 10px #23334e14; font-weight: 600; text-align: center;
}
.app-loading-state small { display: block; margin-top: 2px; font-size: var(--tts-font-caption, 11px); font-weight: 400; }
.app-loading-card { display: flex; flex-direction: column; align-items: center; gap: 10px; }
.app-loading-state .page-loading-mark { width: 48px; height: 48px; }
.app-loading-state .page-loading-mark img { width: 28px; height: 28px; }
.app-loading-state.is-overlay > .app-loading-card { flex-direction: row; gap: 12px; }
.app-loading-state.is-overlay .page-loading-mark { flex: 0 0 36px; width: 36px; height: 36px; }
.app-loading-state.is-overlay .page-loading-mark img { width: 24px; height: 24px; }
