/* toast.css - Toast/Loading(文档02 3.5.9) */
.toast-wrap {
  position: fixed; left: 50%; top: 45%; transform: translate(-50%, -50%);
  z-index: 1001; display: flex; flex-direction: column; align-items: center; gap: var(--space-sm);
  pointer-events: none;
}
.toast-item {
  max-width: 70%; padding: 10px 18px;
  background: rgba(0,0,0,0.75); color: #fff;
  border-radius: var(--radius-md); font-size: var(--font-size-body);
  text-align: center; line-height: var(--line-height-base);
  animation: toastIn .25s ease;
}
.toast-item.success { background: rgba(26,138,91,0.92); }
.toast-item.error { background: rgba(229,77,66,0.92); }
@keyframes toastIn { from { transform: translateY(10px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
.loading-mask {
  position: fixed; inset: 0; z-index: 1000;
  display: none; align-items: center; justify-content: center;
  background: rgba(255,255,255,0.4);
}
.loading-mask.show { display: flex; }
.loading-box {
  display: flex; flex-direction: column; align-items: center; gap: var(--space-sm);
  padding: var(--space-xl); background: #fff; border-radius: var(--radius-md);
  box-shadow: var(--shadow-popup);
}
.loading-spinner {
  width: 28px; height: 28px; border-radius: 50%;
  border: 3px solid var(--color-primary-bg); border-top-color: var(--color-primary);
  animation: spin .8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
.loading-text { font-size: var(--font-size-caption); color: var(--color-text-secondary); }
.loading-progress { width: 160px; height: 4px; background: var(--color-border-light); border-radius: 2px; overflow: hidden; }
.loading-progress-inner { height: 100%; background: var(--color-primary); width: 0; transition: width .2s; }
