/* 固定页面结构与接口骨架共用既有网格；加载、成功、失败和重试均只切换状态。 */
.page-content[hidden], .page-skeleton[hidden], .footer-skeleton[hidden], .carousel-controls[hidden] { display: none !important; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.page-skeleton { padding-bottom: 36px; }
.skeleton-block, .skeleton-line { position: relative; overflow: hidden; background: #e8f0f6; border-radius: 3px; }
.skeleton-block::after, .skeleton-line::after { content: ""; position: absolute; inset: 0; transform: translateX(-100%); background: linear-gradient(90deg, transparent, #ffffff85, transparent); animation: skeleton-sweep 1.8s ease-in-out infinite; }
.skeleton-line { width: 100%; height: 18px; margin: 16px 0; }
.skeleton-heading { height: 30px; margin: 24px 0; }
.skeleton-medium { width: 65%; }
.skeleton-short { width: 35%; }
.skeleton-breadcrumb { padding: 20px 0; }
.skeleton-breadcrumb .skeleton-line { height: 14px; margin: 0; }
.skeleton-paragraph { margin: 28px 0; }
.skeleton-paragraph .skeleton-line { margin: 20px 0; }
.skeleton-hero { width: 100%; }
.skeleton-hero .slide-content { background: #f6f9fc; }
.skeleton-hero .skeleton-heading { height: 36px; }
.skeleton-service { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 155px; padding: 24px 8px; background: #f4f8fc; border: 1px solid #e5eff6; }
.skeleton-icon { width: 48px; height: 48px; }
.skeleton-list-row { display: flex; align-items: center; gap: 24px; min-height: 50px; }
.skeleton-list-row .skeleton-line { margin: 0; }
.skeleton-list-row .skeleton-date { flex: 0 0 50px; }
.skeleton-members { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; padding-top: 24px; }
.skeleton-member-cover { aspect-ratio: 600 / 280; }
.skeleton-list-cover { flex: 0 0 130px; height: 100px; }
.skeleton-directory-card { min-height: 160px; padding: 24px; }
.skeleton-card-copy { flex: 1; min-width: 0; }
.skeleton-card-copy .skeleton-line { margin: 12px 0; }
.skeleton-avatar { width: 76px; height: 76px; flex-shrink: 0; border-radius: 50%; }
.skeleton-input { min-width: 0; flex: 1; height: 46px; }
.skeleton-button { flex: 0 0 100px; height: 46px; }
.skeleton-credit-row { display: grid; grid-template-columns: 2fr 1fr 1fr 2fr; gap: 24px; padding: 20px; border-bottom: 1px solid var(--line); }
.skeleton-credit-row .skeleton-line { margin: 0; }
.skeleton-form-field { min-width: 0; }
.skeleton-textarea { height: 120px; margin-top: 30px; }
.footer-skeleton { display: none; padding-top: 40px; padding-bottom: 40px; }
body[data-loading="true"] .footer-skeleton { display: block; }
body[data-loading="true"] .footer-main, body[data-loading="true"] .footer-bottom, body[data-loading="true"] .footer-friends { display: none; }
.hero-empty { display: flex; align-items: center; justify-content: center; min-height: 460px; margin: 0; background: #eaf0f2; }
.hero-empty[hidden] { display: none; }
.systems-grid a[aria-disabled="true"], .image-entry[aria-disabled="true"], .tab-more[aria-disabled="true"], .member-actions a[aria-disabled="true"], .nav-links a[aria-disabled="true"] { cursor: default; opacity: .6; }
.nav-links a[aria-disabled="true"] { opacity: .8; }
.tab-module [role="tabpanel"] { min-height: 306px; }
.members-showcase > .empty-state { min-height: 180px; display: flex; align-items: center; justify-content: center; }
.members-showcase > .empty-state[hidden] { display: none; }
#website-data-error { padding: 26px; border: 1px solid #dae6ef; background: #f5f9fc; }
#website-data-error button { margin-left: 16px; padding: 8px 16px; border: 1px solid var(--blue); background: white; color: var(--navy); }
@keyframes skeleton-sweep { to { transform: translateX(100%); } }
.skeleton-home .home-intro > div { width: min(460px, 100%); }
.skeleton-hero { height: 460px; border-radius: 4px; }
.skeleton-notice { padding: 20px 0; border-bottom: 1px solid var(--line); }
.skeleton-notice-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
@media (max-width: 760px) {
  .skeleton-heading { height: 25px; }
  .skeleton-line { height: 15px; }
  .skeleton-service { min-height: 115px; padding: 18px 8px; }
  .skeleton-icon { width: 36px; height: 36px; }
  .skeleton-list-row { min-height: 43px; gap: 16px; }
  .skeleton-members { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .skeleton-list-cover { flex-basis: 72px; height: 72px; }
  .skeleton-credit-row { gap: 12px; padding: 18px 10px; }
  .skeleton-input, .skeleton-button { flex: auto; width: 100%; }
  .hero-empty { min-height: 560px; }
  .skeleton-hero { height: 560px; }
  .skeleton-notice-grid { display: block; }
  .tab-module [role="tabpanel"] { min-height: 260px; }
  #website-data-error button { display: block; margin: 16px auto 0; }
}
@media (prefers-reduced-motion: reduce) { .skeleton-block::after, .skeleton-line::after { animation: none; transform: none; background: none; } }
@media (forced-colors: active) { .skeleton-block, .skeleton-line { border: 1px solid CanvasText; } }

/* 分类标签与聚合列表共同预留空间，适配窄屏换行。 */
.skeleton-category-filters{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.skeleton-category-filters .skeleton-block{width:6em;height:2.5em;border-radius:4px}
