.site-startup {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  height: 100vh;
  padding: 24px;
  color: #374151;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Microsoft YaHei', sans-serif;
  text-align: center;
}
.site-startup .app-waiting-indicator {
  display: block;
  width: 48px;
  height: 48px;
  flex: none;
  animation: app-waiting-spin 2s linear infinite;
}
.site-startup .app-waiting-indicator-range {
  transform-origin: center;
  transform: rotate(-90deg);
  animation: app-waiting-arc 1.5s linear infinite;
}
.site-startup-text { margin: 0; line-height: 1.5; }
.site-startup-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}
.site-startup [hidden] { display: none !important; }
.site-startup button {
  min-height: 44px;
  padding: 8px 14px;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: transparent;
  color: inherit;
  font: inherit;
  font-size: 14px;
  cursor: pointer;
}
.site-startup button:hover { background: #f1f5f9; }
.site-startup button:focus-visible { outline: 2px solid #0f766e; outline-offset: 3px; }
.dark .site-startup { color: #d1d5db; }
.dark .site-startup button { border-color: #64748b; }
.dark .site-startup button:hover { background: #334155; }
.dark .site-startup button:focus-visible { outline-color: #5eead4; }
@keyframes app-waiting-spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
@keyframes app-waiting-arc {
  0% { stroke-dasharray: 1, 400; stroke-dashoffset: 0; }
  50% { stroke-dasharray: 400, 400; stroke-dashoffset: -100%; }
  100% { stroke-dasharray: 400, 400; stroke-dashoffset: -260%; }
}
@media (prefers-reduced-motion: reduce) {
  .site-startup .app-waiting-indicator,
  .site-startup .app-waiting-indicator-range {
    animation: none;
  }
  .site-startup .app-waiting-indicator-range {
    stroke-dasharray: 32, 126.669;
    stroke-dashoffset: 0;
  }
}
