/* Download detail pages */
.detail-main { width: var(--container); max-width: none; margin: 0 auto 24px; padding: 24px 34px 0; }
.detail-layout { display: grid; grid-template-columns: var(--left) var(--side); gap: 24px; align-items: start; width: var(--inner); margin: 0 auto; }
.article-detail-main { min-width: 0; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.article-detail-main > h1 { margin: 0; padding: 28px 30px 12px; color: #111827; font-size: 28px; line-height: 1.38; font-weight: 800; letter-spacing: 0; }
.article-detail-main > .article-meta { margin: 0; padding: 0 30px 18px; border-bottom: 1px solid var(--line-soft); }
.article-detail-main > .article-summary { margin: 18px 30px 0; }
.article-detail-main > .article-body { padding: 22px 30px 12px; }
.article-detail-main > .article-share-row,
.article-detail-main > .article-footer-actions,
.article-detail-main > .article-navigation { margin: 0 30px; }
.article-detail-main > .related-reading { margin-top: 0; }
.detail-main .article-head { display: block; width: auto; min-height: 0; margin: 0; padding: 28px 30px 22px; border: 0; border-bottom: 1px solid var(--line-soft); border-radius: 8px 8px 0 0; background: #fff; }
.article-label { display: inline-flex; align-items: center; height: 28px; margin-bottom: 14px; padding: 0 12px; border: 1px solid #cfd8e3; border-radius: 999px; background: var(--blue-soft); color: var(--blue); font-size: 13px; font-weight: 800; }
.detail-main .article-head h1 { display: block; margin: 0 0 12px; color: #111827; font-size: 28px; line-height: 1.38; font-weight: 800; white-space: normal; }
.detail-main .article-head h1::before { display: none; }
.detail-main .article-body { padding: 22px 30px; }
.down-msg { margin: 0 0 20px; padding: 16px 18px; border: 1px solid #e1e7ef; border-radius: 8px; background: #fafafa; }
.down-msg ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 18px; margin: 0; padding: 0; list-style: none; }
.down-msg li { color: #334155; font-size: 14px; line-height: 1.6; }
.related-reading { padding: 22px 30px 30px; border-top: 1px solid var(--line-soft); }
.related-reading h2 { margin: 0 0 14px; color: #111827; font-size: 22px; line-height: 1.4; }
.related-reading-list { display: grid; gap: 0; overflow: hidden; border: 1px solid var(--line-soft); border-radius: 8px; background: #fff; }
.related-reading-item { display: grid; grid-template-columns: minmax(0, 1fr) 112px; gap: 18px; align-items: center; min-height: 46px; padding: 0 16px; border-bottom: 1px solid var(--line-soft); }
.related-reading-item:last-child { border-bottom: 0; }
.related-reading-item a { display: block; overflow: hidden; min-width: 0; color: #334155; font-size: 15px; line-height: 1.5; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.related-reading-item time { color: var(--muted); font-size: 13px; font-weight: 500; text-align: right; white-space: nowrap; }
.related-reading-empty { display: flex; align-items: center; min-height: 46px; padding: 0 16px; color: var(--muted); font-size: 14px; }
.major-detail-main .detail-layout {
  grid-template-columns: minmax(0, 1fr) 320px;
  align-items: start;
}
.major-detail-main .major-profile-hero {
  display: grid;
  margin-bottom: 20px;
  grid-template-columns: minmax(0, 1fr) 360px;
  align-items: stretch;
  min-height: 174px;
  border-radius: 8px;
}
.major-detail-main .article-detail-main,
.major-detail-main .detail-sidebar {
  min-width: 0;
}
.major-detail-main .major-profile-hero > div:first-child {
  display: grid;
  align-content: center;
  min-width: 0;
}
.major-detail-main .major-profile-hero h1 {
  white-space: normal;
}
.major-detail-main .school-profile-stats {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 8px;
  align-content: stretch;
}
.major-detail-main .school-profile-stats span {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-content: center;
  align-items: center;
  min-width: 0;
  min-height: 54px;
  padding: 10px 12px;
  border: 1px solid var(--line-soft);
  border-radius: 8px;
  background: #f8fbff;
}
.major-detail-main .school-profile-stats strong,
.major-detail-main .school-profile-stats em {
  overflow-wrap: anywhere;
  text-align: left;
}
.major-detail-main .school-profile-stats strong {
  color: var(--blue);
  font-size: 17px;
  line-height: 1.25;
}
.major-detail-main .school-profile-stats em {
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
  white-space: nowrap;
}
.school-detail-main .school-profile-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 390px;
  align-items: stretch;
  gap: 24px;
  margin-bottom: 20px;
  padding: 28px 30px;
}
.school-detail-main .school-profile-hero > div:first-child {
  display: grid;
  align-content: center;
  min-width: 0;
}
.school-detail-main .school-profile-hero h1 {
  margin: 0 0 10px;
  color: var(--text);
  font-size: 30px;
  line-height: 1.32;
  font-weight: 800;
}
.school-detail-main .school-profile-hero p {
  margin: 0 0 14px;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.75;
}
.school-detail-main .school-profile-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  align-content: stretch;
}
.school-detail-main .school-profile-stats span {
  display: grid;
  align-content: center;
  min-width: 0;
  min-height: 104px;
  padding: 16px 14px;
  border: 1px solid var(--line-soft);
  border-radius: 8px;
  background: #f8fbff;
}
.school-detail-main .school-profile-stats strong {
  overflow-wrap: anywhere;
  color: var(--blue);
  font-size: 22px;
  line-height: 1.25;
  font-weight: 800;
}
.school-detail-main .school-profile-stats em {
  margin-top: 8px;
  color: var(--muted);
  font-size: 13px;
  font-style: normal;
}
.school-detail-main .detail-data-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 0 0 22px;
  padding: 0;
  list-style: none;
}
.school-detail-main .detail-data-list li {
  display: grid;
  gap: 8px;
  min-width: 0;
  padding: 15px 16px;
  border: 1px solid var(--line-soft);
  border-radius: 8px;
  background: #fbfdff;
}
.school-detail-main .detail-data-list span {
  color: var(--muted);
  font-size: 13px;
}
.school-detail-main .detail-data-list strong {
  overflow-wrap: anywhere;
  color: var(--text);
  font-size: 16px;
  line-height: 1.45;
}
.school-detail-main .school-detail-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 390px;
  align-items: stretch;
  gap: 24px;
  margin-bottom: 20px;
  padding: 28px 30px;
  border: 1px solid var(--line-soft);
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--shadow-soft);
}
.school-detail-titleline {
  display: flex;
  min-width: 0;
  gap: 18px;
  align-items: center;
}
.school-detail-logo {
  display: grid;
  place-items: center;
  flex: 0 0 64px;
  width: 64px;
  height: 64px;
  border: 1px solid var(--line-soft);
  border-radius: 16px;
  background: #f8fbff;
  color: var(--blue);
}
.school-detail-logo::after {
  content: "";
  display: block;
  width: 30px;
  height: 30px;
  background: currentColor;
  mask: var(--icon-url) center / contain no-repeat;
  -webkit-mask: var(--icon-url) center / contain no-repeat;
}
.school-detail-heading {
  min-width: 0;
}
.school-detail-kicker {
  display: inline-flex;
  margin-bottom: 8px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
}
.school-detail-heading h1 {
  margin: 0 0 8px;
  color: var(--text);
  font-size: 30px;
  line-height: 1.32;
  font-weight: 800;
  overflow-wrap: anywhere;
}
.school-detail-heading p {
  margin: 0 0 12px;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.7;
}
.school-detail-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.school-detail-tags span {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #f8fbff;
  color: #334155;
  font-size: 13px;
  font-weight: 800;
}
.school-detail-keyfacts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.school-detail-keyfacts span,
.school-detail-info-grid p {
  display: grid;
  align-content: center;
  min-width: 0;
  min-height: 104px;
  margin: 0;
  padding: 16px 14px;
  border: 1px solid var(--line-soft);
  border-radius: 8px;
  background: #f8fbff;
}
.school-detail-keyfacts em,
.school-detail-info-grid span,
.school-detail-side-list span {
  color: var(--muted);
  font-size: 13px;
  font-style: normal;
}
.school-detail-keyfacts strong,
.school-detail-info-grid strong,
.school-detail-side-list strong {
  min-width: 0;
  margin-top: 8px;
  color: var(--text);
  font-size: 16px;
  line-height: 1.45;
  font-weight: 800;
  overflow-wrap: anywhere;
}
.school-detail-keyfacts strong {
  color: var(--blue);
  font-size: 22px;
}
.school-detail-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 22px;
  align-items: start;
}
.school-detail-content,
.school-detail-sidebar {
  min-width: 0;
}
.school-detail-section,
.school-detail-side-card {
  margin-bottom: 18px;
  padding: 22px;
  border: 1px solid var(--line-soft);
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--shadow-soft);
}
.school-detail-section h2,
.school-detail-side-card h3 {
  margin: 0 0 14px;
  color: var(--text);
  font-size: 22px;
  line-height: 1.35;
  font-weight: 800;
}
.school-detail-section-head {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 16px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--line-soft);
}
.school-detail-section-head h2 {
  margin: 0;
}
.school-detail-section-head p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.7;
}
.school-detail-info-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.school-detail-richtext {
  min-width: 0;
  color: #334155;
  font-size: 15px;
  line-height: 1.8;
}
.school-detail-richtext ul,
.school-detail-richtext ol {
  display: grid;
  gap: 10px;
  margin: 0;
  padding-left: 20px;
}
.school-detail-richtext a {
  color: var(--blue);
  font-weight: 800;
}
.school-detail-richtext table {
  display: block;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  border-collapse: collapse;
  border: 1px solid var(--line-soft);
  border-radius: 8px;
  background: #fff;
}
.school-detail-richtext th,
.school-detail-richtext td {
  min-width: 92px;
  padding: 10px 12px;
  border: 1px solid var(--line-soft);
  color: #334155;
  font-size: 13px;
  line-height: 1.55;
  vertical-align: top;
}
.school-detail-richtext th {
  background: #f8fbff;
  color: var(--text);
  font-weight: 800;
}
.school-detail-side-list {
  display: grid;
  gap: 12px;
}
.school-detail-side-list p {
  display: grid;
  grid-template-columns: 78px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  margin: 0;
}
.school-detail-actions {
  display: grid;
  gap: 10px;
}
.school-detail-actions a {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  column-gap: 12px;
  align-items: center;
  min-height: 60px;
  padding: 12px;
  border: 1px solid var(--line-soft);
  border-radius: 8px;
  background: #fbfdff;
  color: var(--text);
}
.school-detail-actions a span {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: #eef6ff;
  color: var(--blue);
}
.school-detail-actions a span::after {
  content: "";
  display: block;
  width: 18px;
  height: 18px;
  background: currentColor;
  mask: var(--icon-url) center / contain no-repeat;
  -webkit-mask: var(--icon-url) center / contain no-repeat;
}
.school-detail-actions strong {
  min-width: 0;
  color: var(--text);
  font-size: 15px;
  line-height: 1.35;
  font-weight: 800;
}
.school-detail-actions em {
  grid-column: 2;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
  font-style: normal;
}
.major-overview-panel,
.major-next-panel {
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid var(--line-soft);
}
.major-overview-panel h2,
.major-next-panel h2 {
  margin-top: 0;
}
.major-overview-panel p {
  margin: 0;
  padding: 16px 18px;
  border: 1px solid var(--line-soft);
  border-radius: 8px;
  background: #fafcff;
  color: #334155;
  font-size: 15px;
  line-height: 1.9;
}
.major-next-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.major-next-grid a {
  display: grid;
  gap: 8px;
  align-content: start;
  min-height: 138px;
  padding: 16px;
  border: 1px solid var(--line-soft);
  border-radius: 8px;
  background: #fff;
}
.major-next-grid [data-icon] {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: #f0f7ff;
  color: var(--blue);
  mask: none;
  -webkit-mask: none;
}
.major-next-grid [data-icon]::after {
  content: "";
  display: block;
  width: 18px;
  height: 18px;
  background: currentColor;
  mask: var(--icon-url) center / contain no-repeat;
  -webkit-mask: var(--icon-url) center / contain no-repeat;
}
.major-next-grid strong {
  color: #111827;
  font-size: 16px;
  line-height: 1.35;
}
.major-next-grid em {
  color: var(--muted);
  font-size: 13px;
  font-style: normal;
  line-height: 1.65;
}
.major-detail-main .detail-info-list p {
  display: grid;
  grid-template-columns: 86px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
}
.major-detail-main .detail-info-list span,
.major-detail-main .detail-info-list a {
  min-width: 0;
  overflow-wrap: anywhere;
}
.article-attachment-item, .download-empty { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 15px 16px; border: 1px solid var(--line); border-radius: 8px; background: #fafafa; }
.article-attachment-item > div:first-child { min-width: 0; }
.article-attachment-item strong { display: block; color: #111827; font-size: 17px; line-height: 1.4; overflow-wrap: anywhere; }
.article-attachment-item p { margin: 6px 0 4px; color: var(--muted); font-size: 14px; line-height: 1.55; overflow-wrap: anywhere; }
.article-attachment-item span { display: block; color: var(--muted); font-size: 13px; line-height: 1.45; }
.article-attachment-item button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-width: 88px; height: 36px; padding: 0 14px; border: 0; border-radius: 8px; background: var(--blue); color: #fff; font-size: 14px; font-weight: 800; white-space: nowrap; }
.article-attachment-item [data-icon] { width: 16px; height: 16px; color: currentColor; }
.article-downloads { margin: 22px 0 0; padding-top: 18px; border-top: 1px solid var(--line-soft); }
.article-downloads-head { margin-bottom: 14px; }
.article-downloads-head h2 { margin: 0 0 6px; color: #111827; font-size: 22px; line-height: 1.35; }
.article-downloads-head p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.7; }
.article-download-list { display: grid; gap: 12px; }
.article-download-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.article-download-actions .collect-link { width: auto; min-width: 88px; height: 36px; }
.article-download-actions button:nth-child(2) { border: 1px solid #e1e7ef; background: #fff; color: var(--blue); }
.cms-downfiles { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
.cms-downfiles a { display: inline-flex; align-items: center; justify-content: center; min-height: 34px; padding: 0 14px; border: 1px solid #bfd9f7; border-radius: 999px; background: #f8fafc; color: var(--blue); font-size: 14px; font-weight: 800; }
.cms-downfiles em { color: var(--muted); font-style: normal; font-size: 14px; }
.download-empty { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 16px; align-items: start; min-height: 0; padding: 22px; border: 1px solid #dbe7f5; border-radius: 8px; background: linear-gradient(180deg, #fbfdff 0%, #f8fbff 100%); color: var(--muted); font-size: 14px; }
.download-empty-icon { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 8px; background: #eff6ff; color: var(--blue); }
.download-empty-icon::after { content: ""; width: 24px; height: 24px; background: currentColor; mask: var(--icon-url) center / contain no-repeat; -webkit-mask: var(--icon-url) center / contain no-repeat; }
.download-empty-main { min-width: 0; }
.download-empty-main strong { display: block; margin: 0 0 6px; color: #0f172a; font-size: 20px; line-height: 1.35; font-weight: 800; }
.download-empty-main p { max-width: 680px; margin: 0; color: #64748b; font-size: 14px; line-height: 1.7; }
.download-empty-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.download-empty-actions a { display: inline-flex; align-items: center; justify-content: center; min-height: 36px; padding: 0 14px; border: 1px solid #d8e2ee; border-radius: 8px; background: #fff; color: #2563eb; font-size: 14px; line-height: 34px; font-weight: 800; }
.download-empty-actions a.primary { border-color: var(--blue); background: var(--blue); color: #fff; }
.picture-list-panel { overflow: hidden; }
.picture-section { padding: 22px 24px; border-bottom: 1px solid var(--line-soft); }
.picture-section:last-child { border-bottom: 0; }
.picture-section-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.picture-section-head h2 { margin: 0; color: var(--text); font-size: 20px; line-height: 1.35; font-weight: 800; }
.picture-section-head a { color: var(--blue); font-size: 14px; font-weight: 800; }
.picture-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; padding: 24px; }
.picture-section .picture-grid { padding: 0; }
.picture-card { overflow: hidden; border: 1px solid var(--line-soft); border-radius: 8px; background: #fff; }
.picture-card img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; background: #f8fafc; }
.picture-card strong { display: block; min-height: 48px; padding: 10px 12px; color: #1f3148; font-size: 14px; line-height: 1.45; font-weight: 800; }
.picture-detail-body .picture-hero-image { overflow: hidden; margin-bottom: 16px; border: 1px solid var(--line-soft); border-radius: 8px; background: #fafafa; }
.picture-detail-body .picture-hero-image img { width: 100%; max-height: 520px; object-fit: contain; }
.picture-thumb-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin: 14px 0 24px; }
.picture-thumb-grid a { overflow: hidden; border: 1px solid var(--line-soft); border-radius: 8px; background: #fff; }
.picture-thumb-grid img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.tag-panel { overflow: hidden; }
.tag-cloud { display: flex; flex-wrap: wrap; gap: 10px; padding: 24px; }
.tag-cloud a { display: inline-flex; align-items: center; gap: 8px; min-height: 34px; padding: 0 12px; border: 1px solid #e1e7ef; border-radius: 999px; background: #fff; color: #334155; font-size: 14px; font-weight: 800; }
.tag-cloud a span { color: var(--blue); font-size: 12px; }
.tag-cloud-side { padding: 16px; }
.message-panel { min-height: 360px; display: grid; place-items: center; padding: 48px 30px; }
.message-card { display: grid; justify-items: center; gap: 12px; max-width: 560px; text-align: center; }
.message-icon { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 18px; background: var(--blue-soft); color: var(--blue); }
.message-icon::after { content: ""; display: block; width: 28px; height: 28px; background: currentColor; mask: var(--icon-url) center / contain no-repeat; -webkit-mask: var(--icon-url) center / contain no-repeat; }
.message-icon.is-success { background: #ecfdf5; color: var(--green); }
.message-icon.is-error { background: #fff7ed; color: var(--orange); }
.message-card h1 { margin: 4px 0 0; color: var(--text); font-size: 24px; line-height: 1.35; font-weight: 800; }
.message-card p { margin: 0; color: #334155; font-size: 16px; line-height: 1.8; }
.message-card a { display: inline-flex; align-items: center; justify-content: center; min-height: 38px; margin-top: 6px; padding: 0 18px; border-radius: 8px; background: var(--blue); color: #fff; font-size: 14px; font-weight: 800; }
.detail-sidebar { display: grid; gap: 18px; }

