/* PC 页面骨架：尺寸沿用页面布局，内容可用后立即移除。 */
.pc-skeleton { box-sizing: border-box; width: 100%; }
.pc-skeleton *, .pc-skeleton *::before { box-sizing: border-box; }
.pc-skeleton__block, .pc-skeleton-enabled .pc-image-pending::after {
    background: linear-gradient(100deg, #f0f1f3 25%, #fafafa 45%, #f0f1f3 65%);
    background-size: 240% 100%;
    animation: pc-skeleton-shimmer 1.6s ease-in-out infinite;
    border-radius: 6px;
}
.pc-skeleton__line { height: 14px; margin-bottom: 16px; width: 82%; }
.pc-skeleton__line--title { height: 24px; width: 65%; margin-bottom: 24px; }
.pc-skeleton__line--short { width: 46%; }
.pc-skeleton__banner { aspect-ratio: 1200 / 353; width: 100%; }
.pc-skeleton__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 24px; }
.pc-skeleton--news .pc-skeleton__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.pc-skeleton__card { overflow: hidden; border: 1px solid #eef0f3; border-radius: 8px; background: #fcfcfd; }
.pc-skeleton__poster { aspect-ratio: 16 / 9; border-radius: 0; }
.pc-skeleton__copy { padding: 24px 20px 12px; }
.pc-skeleton__footer { border-top: 1px solid #eef0f3; padding: 18px 20px 4px; }
.pc-skeleton__summary { display: flex; gap: 30px; padding: 30px; background: #fff; border: 1px solid #eef0f3; border-radius: 8px; }
.pc-skeleton__cover { flex: 0 0 355px; height: 215px; }
.pc-skeleton__info { flex: 1; padding-top: 12px; }
.pc-skeleton__button { height: 40px; width: 180px; margin-top: 24px; }
.pc-skeleton__columns { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 20px; margin-top: 20px; }
.pc-skeleton__panel { padding: 28px 30px; background: #fff; border: 1px solid #eef0f3; border-radius: 8px; }
.pc-skeleton__article { height: 180px; margin-top: 26px; }
.pc-skeleton--enroll .pc-skeleton__form { margin-top: 20px; }
.pc-skeleton__form { padding: 32px; background: #fff; border: 1px solid #eceef2; border-radius: 8px; }
.pc-skeleton__fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px 24px; margin: 32px 0; }
.pc-skeleton__field { height: 42px; }
.pc-skeleton__options { height: 90px; margin: 24px 0; }
.pc-skeleton__sr { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
.pc-page-placeholder, .pc-form-placeholder { display: none; }
.pc-page-placeholder { width: 1200px; max-width: calc(100% - 32px); margin: 20px auto 40px; }
.pc-page-loading .pc-page-placeholder { display: block; }
.pc-page-loading [data-pc-content] { display: none !important; }
.pc-form-loading .pc-form-placeholder { display: block; }
.pc-form-loading [data-pc-form-content] { display: none !important; }
body.ui-home .ui-banner [data-pc-image] { display: block; height: 100%; }
.pc-skeleton-enabled [data-pc-image] { position: relative; }
.pc-skeleton-enabled .pc-image-pending::after {
    content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
}
.pc-skeleton-enabled .pc-image-pending > img,
.pc-skeleton-enabled .pc-image-error > img { opacity: 0; }
.pc-skeleton-enabled .pc-image-error::after {
    content: '海报暂不可用'; position: absolute; inset: 0; display: flex;
    align-items: center; justify-content: center; color: #86909c; background: #f5f6f8;
    font-size: 14px; border-radius: 6px; pointer-events: none;
}
.pc-load-error { text-align: center; padding: 32px 16px; color: #86909c; font-size: 14px; }
.pc-load-error button { margin-left: 12px; padding: 6px 18px; color: #a65f00; background: #fff7e8; border: 1px solid #f7d39a; border-radius: 4px; cursor: pointer; }
.pc-load-error button:focus-visible { outline: 2px solid #d97e00; outline-offset: 3px; }
@keyframes pc-skeleton-shimmer { from { background-position: 100% 0; } to { background-position: -100% 0; } }

@media (prefers-reduced-motion: reduce) {
    .pc-skeleton__block, .pc-skeleton-enabled .pc-image-pending::after { animation: none; }
}
