/* Neutral placeholders share the live page grid and respect motion preferences. */
.eh-skeleton { display: block; position: relative; overflow: hidden; background: #e9ecf2; border-radius: 6px; }
.eh-skeleton::after { content: ''; position: absolute; inset: 0; background: linear-gradient(100deg, transparent 20%, rgba(255,255,255,.65) 50%, transparent 80%); transform: translateX(-100%); animation: eh-skeleton-sweep 1.6s ease-in-out infinite; }
.eh-skeleton-card { overflow: hidden; border: 1px solid #e5e8ef; border-radius: 8px; background: #fff; }
.eh-skeleton-art { aspect-ratio: 16 / 9; border-radius: 0; }
.eh-skeleton-copy { padding: 24px; min-width: 0; }
.eh-skeleton-line { height: 16px; margin-bottom: 20px; width: 100%; }
.eh-skeleton-line:nth-child(2) { width: 72%; }
.eh-skeleton-line:nth-child(3) { width: 48%; }
.eh-skeleton-button { width: 140px; height: 44px; margin-top: 28px; }
.eh-skeleton-grid { width: 100%; margin: 0; }
.eh-loading-status { width: 100%; padding: 12px; color: #586174; font-size: 14px; }
.eh-skeleton-selection { padding: 20px 12px; width: 100%; }
.eh-skeleton-selection .eh-skeleton-line { height: 64px; width: 100%; }
.eh-skeleton-detail { display: grid; grid-template-columns: 2fr 1fr; background: #fff; border: 1px solid #e5e8ef; border-radius: 8px; overflow: hidden; }
.eh-page-skeleton { position: fixed; z-index: 1020; inset: 0; overflow: auto; background: #f8f9fc; padding: 128px 0 40px; pointer-events: none; }
.eh-page-skeleton > .container > p { color: #586174; }
.eh-page-loading > main { visibility: hidden; }
.eh-loading-error { padding: 24px; width: 100%; color: #763434; }
@keyframes eh-skeleton-sweep { to { transform: translateX(100%); } }
@media (max-width: 991.98px) { .eh-page-skeleton { padding-top: 88px; } }
@media (max-width: 767.98px) { .eh-skeleton-detail { grid-template-columns: 1fr; } .eh-skeleton-copy { padding: 20px; } }
@media (prefers-reduced-motion: reduce) { .eh-skeleton::after { animation: none; display: none; } }
@media (forced-colors: active) { .eh-skeleton { border: 1px solid CanvasText; } }

.eh-skeleton-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin: 40px 0; }
.eh-skeleton-fields > span { height: 52px; }
.eh-skeleton-tickets > .eh-skeleton-copy > .eh-skeleton-art { margin-bottom: 28px; border-radius: 6px; }
@media (max-width: 575.98px) { .eh-skeleton-fields { grid-template-columns: 1fr; } }

/* Shapes for the server-rendered dashboard, forms and read-only dialogs. */
.eh-skeleton-form { background: #fff; border: 1px solid #e5e8ef; border-radius: 8px; padding: 28px; }
.eh-skeleton-account { max-width: 520px; margin: 24px auto; }
.eh-skeleton-list { display: grid; gap: 24px; }
.eh-skeleton-list-row { display: grid; grid-template-columns: minmax(140px, 25%) 1fr; border: 1px solid #e5e8ef; border-radius: 8px; background: #fff; overflow: hidden; }
.eh-skeleton-thumbnail { min-height: 180px; border-radius: 0; }
.eh-skeleton-avatar { width: 96px; height: 96px; border-radius: 50%; margin: 0 auto 24px; }
.eh-skeleton-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 32px 0; }
.eh-skeleton-metrics .eh-skeleton-line { width: 100%; height: 96px; margin: 0; }
.eh-skeleton-table { overflow: hidden; background: #fff; border: 1px solid #e5e8ef; border-radius: 8px; padding: 16px; }
.eh-skeleton-table-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; padding: 16px 0; }
.eh-skeleton-table-row .eh-skeleton-line { width: 100%; margin: 0; }
.eh-loading-cover { width: 100%; }
.eh-loading-cover .eh-loading-error .btn { min-height: 44px; }
.eh-page-loading > footer { visibility: hidden; }
@media (max-width: 575.98px) {
    .eh-skeleton-list-row { grid-template-columns: 1fr; }
    .eh-skeleton-thumbnail { min-height: 140px; }
    .eh-skeleton-form { padding: 20px; }
    .eh-skeleton-table-row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
    .eh-skeleton-metrics { gap: 8px; }
    .eh-skeleton-metrics .eh-skeleton-line { height: 72px; }
}
.eh-skeleton-field { padding: 8px 0; }
.eh-skeleton-field .eh-skeleton { height: 52px; width: 100%; }
