/* Existing content remains visible during navigation and refresh. */
.page-skeleton-positioned { position: relative !important; }
turbo-frame.page-skeleton-empty-frame {
  display: block;
  min-height: 18rem;
}
turbo-frame.page-skeleton-modal {
  position: fixed;
  inset: 15vh 0 auto;
  margin: 0 auto;
  width: min(32rem, calc(100vw - 2rem));
  height: 20rem;
  z-index: 60;
  border-radius: 8px;
  box-shadow: 0 12px 40px #0002;
}
.page-skeleton {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  background: #f9fafb;
  border-radius: inherit;
  animation: page-skeleton-appear 180ms ease-out both;
}
.page-skeleton-placeholder { padding: 28px; }
.page-skeleton-placeholder i {
  display: block;
  border-radius: 5px;
  background: #e5e7eb;
  height: 18px;
  width: 76%;
  margin-bottom: 24px;
}
.page-skeleton-placeholder i:first-child { width: 35%; height: 26px; margin-bottom: 36px; }
.page-skeleton-placeholder i:last-child { width: 90%; height: 64px; }
.dark .page-skeleton { background: #111827; }
.dark .page-skeleton-placeholder i { background: #374151; }
.page-skeleton-status { position: fixed; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
html:has(body[data-controller~="loading"]) .turbo-progress-bar { display: none; }
@keyframes page-skeleton-appear { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  .page-skeleton { animation: none; }
}
