/* This small, blocking stylesheet works before Vite's module/CSS graph is ready.
   Without JavaScript the semantic server content stays visible and crawlable. */
#site-startup { display: none; }
html[data-site-startup="loading"] #root { display: none; }
html[data-site-startup] #site-startup {
  display: flex;
  box-sizing: border-box;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  gap: 1.25rem;
  min-height: 100vh;
  margin: 0;
  padding: 2rem;
  background: #f5fafc;
  color: #203956;
  text-align: center;
  font-family: Arial, sans-serif;
}
#site-startup img { width: 64px; height: 64px; object-fit: contain; margin-bottom: 2rem; }
/* Keep an announcement for assistive technology, not visible loading copy. */
#site-startup-label { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.site-startup-layout { width: min(100%, 1100px); margin: 2rem auto; display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; text-align: start; }
.site-startup-layout i { display: block; height: 18px; border-radius: 6px; background: #e4f3fb; margin-bottom: 20px; }
.site-startup-copy i:first-child { height: 56px; background: #cde8f8; width: 85%; }
.site-startup-copy i:last-child { width: 65%; }
.site-startup-panel { background: white; border: 1px solid #e4f3fb; border-radius: 20px; padding: 32px; min-height: 260px; }
.site-startup-panel i { height: 44px; }
html[data-site-startup="failed"] .site-startup-layout { display: none; }
@media(max-width:700px) { .site-startup-layout { grid-template-columns: 1fr; gap: 20px; margin-top: 0; } }
.site-startup-progress {
  display: none;
  width: 180px; height: 4px; overflow: hidden; border-radius: 4px;
  background: #d9edf5;
}
.site-startup-progress::after {
  display: block; content: ""; width: 40%; height: 100%;
  background: #0079ad; animation: site-startup-progress 1.4s ease-in-out infinite alternate;
}
#site-startup-error, #site-startup-retry { display: none; }
html[data-site-startup="failed"] #site-startup { min-height: auto; padding: 1.5rem; }
html[data-site-startup="failed"] #site-startup-label,
html[data-site-startup="failed"] .site-startup-progress { display: none; }
html[data-site-startup="failed"] #site-startup-error { display: block; max-width: 38rem; line-height: 1.6; }
html[data-site-startup="failed"] #site-startup-retry {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 44px; padding: 0 1.5rem; border-radius: 24px;
  background: #0079ad; color: white; font-weight: bold;
}
html[data-site-startup="failed"] #root {
  font-family: Arial, sans-serif; color: #203956; max-width: 72rem;
  margin: 0 auto; padding: 1.5rem; line-height: 1.7;
}
@keyframes site-startup-progress { to { transform: translateX(150%); } }
@media (prefers-reduced-motion: reduce) {
  .site-startup-progress::after { animation: none; width: 100%; }
}
