/* Shared by the pre-Vue startup view and application feedback surfaces. */
.ui-feedback-theme--dark, .app-boot, .app-page-load {
  --feedback-bg: #0c1822;
  --feedback-surface: #102430;
  --feedback-border: #294858;
  --feedback-text: #e0edf4;
  --feedback-muted: #aac0cf;
  --feedback-accent: #43b9ee;
  --feedback-action: #16465e;
}
.ui-feedback-theme--light, html[data-boot-theme="light"] .app-boot {
  --feedback-bg: #f4f6fa;
  --feedback-surface: #fff;
  --feedback-border: #e2e8f0;
  --feedback-text: #1f2937;
  --feedback-muted: #64748b;
  --feedback-accent: #1677ff;
  --feedback-action: #edf4ff;
}
.ui-loading-spinner {
  display: inline-block;
  flex: 0 0 auto;
  width: 28px;
  height: 28px;
  box-sizing: border-box;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  color: var(--feedback-accent, #1677ff);
  animation: ui-feedback-spin .9s linear infinite;
  vertical-align: middle;
}
.ui-loading-spinner::before { display: none; }
.ui-loading-spinner--small { width: 16px; height: 16px; }
.ui-feedback-card {
  width: 100%;
  max-width: 420px;
  min-height: 216px;
  box-sizing: border-box;
  padding: 32px;
  border: 1px solid var(--feedback-border);
  border-radius: 12px;
  background: var(--feedback-surface);
  color: var(--feedback-text);
  box-shadow: 0 12px 40px #0000000a;
  text-align: center;
  overflow-wrap: anywhere;
  font-family: "Microsoft YaHei", system-ui, sans-serif;
}
.ui-feedback-card h1 { margin: 18px 0 10px; color: inherit; font-size: 18px; line-height: 1.5; font-weight: 600; }
.ui-feedback-card p { margin: 8px 0; color: var(--feedback-muted); font-size: 14px; line-height: 1.7; }
.ui-feedback-card button {
  min-height: 40px;
  padding: 8px 16px;
  border: 1px solid var(--feedback-border);
  border-radius: 6px;
  background: var(--feedback-action);
  color: var(--feedback-accent);
  cursor: pointer;
  font: inherit;
  font-size: 14px;
}
.ui-feedback-card button:focus-visible { outline: 2px solid var(--feedback-accent); outline-offset: 3px; }
.ui-skeleton { background: linear-gradient(100deg, #edf0f5 25%, #f8f9fb 45%, #edf0f5 65%); background-size: 240% 100%; animation: ui-feedback-skeleton 1.8s ease-in-out infinite; }
@keyframes ui-feedback-spin { to { transform: rotate(360deg); } }
@keyframes ui-feedback-skeleton { to { background-position: -180% 0; } }
@media (prefers-reduced-motion: reduce) {
  .ui-loading-spinner, .ui-skeleton { animation: none !important; }
}
