/*
 * 五大模块门户最终样式层。
 * 经典版与新版使用同一结构和交互，仅通过主题变量区分浅色工程风格与深色封面风格。
 */

#platformView.platform-portal {
  --portal-ink: #123f70;
  --portal-ink-soft: #47739b;
  --portal-surface: rgba(255, 255, 255, .84);
  --portal-surface-strong: rgba(255, 255, 255, .94);
  --portal-line: rgba(46, 143, 205, .3);
  --portal-rail-card: rgba(255, 255, 255, .9);
  --portal-rail-muted: rgba(239, 249, 255, .82);
  --portal-accent: #0aaec6;
  --portal-accent-2: #1677cf;
  position: relative !important;
  isolation: isolate;
  box-sizing: border-box;
  width: 100% !important;
  max-width: none !important;
  min-height: 100vh;
  margin: 0 !important;
  padding: 26px clamp(24px, 4vw, 76px) 34px !important;
  overflow: hidden;
  color: var(--portal-ink);
  background:
    linear-gradient(104deg, rgba(249, 253, 255, .86) 0%, rgba(236, 248, 255, .71) 48%, rgba(211, 241, 252, .58) 100%),
    url("/figure/首页背景图.jpg") center / cover no-repeat !important;
}

#platformView.platform-portal::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 74% 14%, rgba(79, 209, 230, .21), transparent 32%),
    linear-gradient(90deg, rgba(255, 255, 255, .4), transparent 54%);
}

body[data-view="platform"] .app-header,
body[data-view="platform"] .side-nav,
body[data-view="platform"] .guest-preview-banner {
  display: none !important;
}

body[data-view="platform"] .workspace {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 100vh !important;
  height: auto !important;
  padding: 0 !important;
  overflow: visible !important;
}

body.ui-modern #platformView.platform-portal {
  --portal-ink: #f4fbff;
  --portal-ink-soft: #bad6ec;
  --portal-surface: rgba(6, 35, 69, .66);
  --portal-surface-strong: rgba(8, 48, 91, .82);
  --portal-line: rgba(102, 210, 255, .34);
  --portal-rail-card: rgba(7, 39, 78, .86);
  --portal-rail-muted: rgba(9, 43, 82, .7);
  --portal-accent: #35ddf1;
  --portal-accent-2: #14aeca;
  color: var(--portal-ink);
  background:
    linear-gradient(105deg, rgba(1, 21, 47, .92) 0%, rgba(4, 48, 89, .86) 51%, rgba(4, 24, 54, .84) 100%),
    url("/figure/首页背景图.jpg") center / cover no-repeat !important;
}

body.ui-modern #platformView.platform-portal::before {
  background:
    radial-gradient(circle at 73% 16%, rgba(37, 192, 237, .22), transparent 31%),
    linear-gradient(90deg, rgba(0, 14, 35, .34), transparent 57%);
}

/* 只显示可切换到的另一套主题。 */
body:not(.ui-modern) #platformView [data-portal-ui="classic"],
body.ui-modern #platformView [data-portal-ui="modern"] {
  display: none !important;
}

#platformView .portal-header,
#platformView .portal-modern-header {
  position: relative;
  z-index: 3;
  width: min(100%, 1760px);
  margin: 0 auto;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

#platformView .portal-modern-topbar {
  display: grid !important;
  grid-template-columns: minmax(172px, .7fr) minmax(580px, 1.45fr) minmax(172px, .7fr);
  align-items: center;
  min-height: 70px;
  padding: 0 6px;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

#platformView .portal-modern-brand {
  display: flex !important;
  align-items: center;
  min-width: 0;
}

#platformView .portal-modern-brand img {
  display: block;
  width: clamp(114px, 9.7vw, 158px);
  max-height: 48px;
  object-fit: contain;
  object-position: left center;
}

body.ui-modern #platformView .portal-modern-brand img {
  filter: brightness(0) invert(1) drop-shadow(0 3px 10px rgba(0, 0, 0, .25));
}

#platformView .portal-modern-module-nav {
  display: flex !important;
  justify-content: center;
  align-items: center;
  gap: clamp(20px, 2.2vw, 42px);
  min-width: 0;
  white-space: nowrap;
}

#platformView .portal-modern-module-nav button {
  position: relative;
  min-height: 48px;
  padding: 10px 2px;
  border: 0 !important;
  background: transparent !important;
  color: var(--portal-ink-soft) !important;
  font-size: clamp(15px, 1.08vw, 18px) !important;
  font-weight: 750;
  line-height: 1;
  text-shadow: none;
  cursor: pointer;
  transition: color .2s ease, transform .2s ease;
}

#platformView .portal-modern-module-nav button:hover,
#platformView .portal-modern-module-nav button.active {
  color: var(--portal-accent) !important;
  transform: translateY(-1px);
}

#platformView .portal-modern-module-nav button.active::after {
  position: absolute;
  right: 0;
  bottom: 4px;
  left: 0;
  height: 3px;
  border-radius: 99px;
  background: linear-gradient(90deg, var(--portal-accent), var(--portal-accent-2));
  box-shadow: 0 0 14px rgba(23, 196, 226, .45);
  content: "";
}

#platformView .portal-modern-actions {
  display: flex !important;
  justify-content: flex-end;
  align-items: center;
  gap: clamp(12px, 1.25vw, 22px);
  white-space: nowrap;
}

#platformView .portal-modern-actions button,
#platformView .portal-modern-actions a {
  padding: 7px 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--portal-ink-soft) !important;
  font-size: clamp(14px, 1vw, 17px) !important;
  font-weight: 750;
  text-decoration: none;
  box-shadow: none !important;
  cursor: pointer;
  transition: color .2s ease;
}

#platformView .portal-modern-actions button:hover,
#platformView .portal-modern-actions a:hover {
  color: var(--portal-accent) !important;
}

/* 旧门户抬头、统计卡不再出现在新的封面门户。 */
#platformView .portal-brand,
#platformView .portal-header-actions,
#platformView #platformSummaryGrid,
#platformView .portal-showcase-title {
  display: none !important;
}

#platformView .portal-module-showcase {
  position: relative;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(430px, .94fr) !important;
  grid-template-rows: clamp(250px, 34vh, 330px) minmax(218px, 27vh) !important;
  grid-template-areas: "hero intro" "rail rail" !important;
  gap: clamp(20px, 2.4vw, 42px) clamp(32px, 5vw, 92px);
  width: min(100%, 1760px);
  min-height: 0;
  margin: 0 auto;
  padding: clamp(20px, 3.5vh, 42px) clamp(10px, 1.5vw, 22px) 0;
  overflow: visible !important;
}

#platformView .portal-showcase-copy {
  display: flex !important;
  grid-area: hero !important;
  grid-column: 1 !important;
  grid-row: 1 !important;
  align-self: center;
  flex-direction: column;
  justify-content: center;
  width: min(100%, 680px);
  min-height: 250px;
  margin-left: clamp(18px, 4vw, 86px);
  padding: 14px 0;
}

#platformView .portal-modern-hero-copy > span {
  margin: 0 0 16px;
  color: var(--portal-accent);
  font-family: "STKaiti", "KaiTi", "Microsoft YaHei", sans-serif;
  font-size: clamp(29px, 2.45vw, 45px) !important;
  font-weight: 800;
  letter-spacing: .08em;
  line-height: 1.14;
  white-space: nowrap;
  text-shadow: 0 3px 18px rgba(11, 108, 158, .16);
}

#platformView .portal-modern-hero-copy h3 {
  max-width: 850px;
  margin: 0;
  color: var(--portal-ink) !important;
  font-family: "Microsoft YaHei", "PingFang SC", sans-serif;
  font-size: clamp(48px, 4.35vw, 78px) !important;
  font-weight: 900 !important;
  letter-spacing: -.07em;
  line-height: 1.08 !important;
  white-space: nowrap;
  text-shadow: 0 8px 30px rgba(8, 51, 93, .12);
}

body:not(.ui-modern) #platformView .portal-modern-hero-copy h3 {
  background: linear-gradient(112deg, #123c71 5%, #0b7ca2 56%, #079caf 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

#platformView .portal-modern-hero-copy p {
  max-width: 840px;
  margin: 25px 0 0;
  color: var(--portal-ink-soft) !important;
  font-size: clamp(13px, 1.04vw, 18px) !important;
  font-weight: 800;
  letter-spacing: .15em;
  line-height: 1.55;
}

#platformView .portal-module-intro {
  display: grid !important;
  grid-area: intro !important;
  grid-template-columns: auto minmax(0, 1fr) !important;
  grid-template-rows: auto auto !important;
  grid-column: 2 !important;
  grid-row: 1 !important;
  align-self: center;
  align-content: center;
  column-gap: clamp(18px, 2vw, 30px);
  row-gap: 8px;
  min-height: clamp(250px, 29vh, 330px);
  margin: 0 !important;
  padding: clamp(30px, 3.4vw, 56px) clamp(31px, 3.6vw, 64px) !important;
  overflow: hidden;
  border: 1px solid var(--portal-line) !important;
  border-radius: 28px !important;
  background: var(--portal-surface) !important;
  box-shadow: 0 22px 48px rgba(16, 80, 130, .12) !important;
  backdrop-filter: blur(16px);
}

body.ui-modern #platformView .portal-module-intro {
  box-shadow: 0 22px 52px rgba(0, 0, 0, .24) !important;
}

#platformView .portal-module-intro .portal-intro-index {
  grid-row: 1 / -1;
  align-self: center;
  margin: 0;
  color: var(--portal-accent) !important;
  font-size: clamp(66px, 5.2vw, 102px) !important;
  font-weight: 850;
  letter-spacing: -.08em;
  line-height: .8;
}

#platformView .portal-module-intro .portal-intro-copy h4 {
  margin: 0;
  color: var(--portal-ink) !important;
  font-size: clamp(29px, 2.35vw, 45px) !important;
  font-weight: 900;
  line-height: 1.16;
}

#platformView .portal-module-intro .portal-intro-copy {
  min-width: 0;
}

#platformView .portal-module-intro .portal-intro-copy strong {
  display: block;
  margin: 10px 0 20px;
  color: var(--portal-accent-2) !important;
  font-size: clamp(16px, 1.22vw, 21px) !important;
  font-weight: 800;
}

#platformView .portal-module-intro .portal-modern-intro-description {
  max-width: 660px;
  margin: 0 0 26px;
  color: var(--portal-ink-soft) !important;
  font-size: clamp(16px, 1.18vw, 20px) !important;
  line-height: 1.78;
}

#platformView .portal-module-intro .portal-intro-enter {
  grid-column: 2;
  align-self: flex-start;
  min-width: 142px;
  padding: 13px 24px !important;
  border: 1px solid rgba(255,255,255,.55) !important;
  border-radius: 12px !important;
  background: linear-gradient(115deg, var(--portal-accent-2), var(--portal-accent)) !important;
  color: #fff !important;
  font-size: 18px !important;
  font-weight: 850;
  box-shadow: 0 12px 22px rgba(0, 148, 184, .2) !important;
  cursor: pointer;
}

/* 卡片轨道：以原始 offset 坐标居中，transform 只负责弧形视觉层级。 */
#platformView .portal-module-rail {
  position: relative !important;
  display: flex !important;
  grid-area: rail !important;
  grid-column: 1 / -1 !important;
  grid-row: 2 !important;
  align-items: flex-start;
  gap: clamp(18px, 1.7vw, 34px);
  width: 100%;
  min-height: clamp(218px, 27vh, 270px);
  padding: 32px max(13vw, 130px) 8px !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
  cursor: grab;
  scroll-snap-type: x proximity;
  touch-action: pan-y;
}

#platformView .portal-module-rail::-webkit-scrollbar {
  display: none;
}

#platformView .portal-module-rail.is-dragging {
  cursor: grabbing;
  scroll-behavior: auto;
  user-select: none;
}

#platformView .platform-module-card {
  position: relative;
  z-index: 1;
  display: flex !important;
  flex: 0 0 clamp(292px, 20.8vw, 366px);
  flex-direction: column;
  min-height: clamp(212px, 24vh, 252px) !important;
  height: auto !important;
  margin: 0 !important;
  padding: 17px 20px 16px !important;
  overflow: visible !important;
  border: 1px solid var(--portal-line) !important;
  border-radius: 20px !important;
  background: var(--portal-rail-muted) !important;
  box-shadow: 0 12px 26px rgba(9, 66, 115, .13) !important;
  color: var(--portal-ink);
  cursor: pointer;
  scroll-snap-align: center;
  transform: translateY(31px) scale(.86) !important;
  transform-origin: 50% 100%;
  opacity: .82 !important;
  transition: transform .34s cubic-bezier(.2,.7,.2,1), opacity .25s ease, box-shadow .25s ease, border-color .25s ease;
}

body.ui-modern #platformView .platform-module-card {
  box-shadow: 0 18px 30px rgba(0, 0, 0, .21) !important;
}

#platformView .platform-module-card.portal-rail-near {
  z-index: 3;
  transform: translateY(13px) scale(.94) !important;
  opacity: .94 !important;
}

#platformView .platform-module-card.portal-rail-active {
  z-index: 5;
  transform: translateY(-14px) scale(1.04) !important;
  border-color: var(--portal-accent) !important;
  background: var(--portal-rail-card) !important;
  box-shadow: 0 23px 40px rgba(12, 148, 184, .22) !important;
  opacity: 1 !important;
}

#platformView .platform-module-card:hover:not(.portal-rail-active) {
  border-color: rgba(13, 164, 203, .72) !important;
  opacity: 1;
}

#platformView .platform-module-card .module-card-head {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  min-height: 42px;
  padding-right: 60px;
}

#platformView .platform-module-card .module-icon {
  display: grid;
  width: 35px;
  height: 35px;
  place-items: center;
  border-radius: 9px;
  color: #fff !important;
  font-size: 12px !important;
  font-style: normal;
  font-weight: 850;
  line-height: 1;
  box-shadow: none !important;
}

#platformView .platform-module-card h3 {
  min-width: 0;
  margin: 0 !important;
  color: var(--portal-ink) !important;
  font-size: clamp(20px, 1.27vw, 25px) !important;
  font-weight: 900;
  letter-spacing: -.03em;
  line-height: 1.18;
}

#platformView .platform-module-card h3 em {
  display: inline;
  margin-left: 5px;
  color: var(--portal-ink-soft) !important;
  font-size: .72em;
  font-style: normal;
  font-weight: 800;
  white-space: nowrap;
}

#platformView .platform-module-card .module-open {
  position: absolute;
  top: 18px;
  right: 18px;
  padding: 6px 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--portal-accent-2) !important;
  font-size: 14px !important;
  font-weight: 900;
  white-space: nowrap;
  box-shadow: none !important;
  cursor: pointer;
}

#platformView .platform-module-card .module-open:hover {
  color: var(--portal-accent) !important;
}

#platformView .platform-module-card ul {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px 16px;
  margin: 15px 0 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  list-style: none !important;
}

#platformView .platform-module-card li {
  position: relative;
  min-width: 0;
  padding: 0 0 0 11px !important;
  overflow: hidden;
  color: var(--portal-ink-soft) !important;
  font-size: clamp(14px, 1vw, 16px) !important;
  font-weight: 700;
  line-height: 1.45;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
  cursor: pointer;
  transition: color .18s ease, transform .18s ease;
}

#platformView .platform-module-card li::before {
  position: absolute;
  top: .63em;
  left: 0;
  width: 4px;
  height: 4px;
  border-radius: 999px;
  background: var(--portal-accent);
  content: "";
}

#platformView .platform-module-card li:hover {
  color: var(--portal-accent-2) !important;
  transform: translateX(2px);
}

#platformView .platform-module-card.cyan .module-icon { background: linear-gradient(135deg, #2575e9, #13acbc); }
#platformView .platform-module-card.green .module-icon { background: linear-gradient(135deg, #18a479, #34caaa); }
#platformView .platform-module-card.amber .module-icon { background: linear-gradient(135deg, #f1aa19, #ffd15a); }
#platformView .platform-module-card.orange .module-icon { background: linear-gradient(135deg, #ea7c2c, #f3a65d); }
#platformView .platform-module-card.blue .module-icon { background: linear-gradient(135deg, #2b73dd, #72a9f6); }

/* 左右只在鼠标进入边缘区域时显示的换卡箭头。 */
#platformView .portal-rail-edge {
  position: absolute !important;
  z-index: 12;
  top: auto !important;
  bottom: 4px !important;
  display: grid !important;
  width: 92px;
  height: 245px;
  padding: 0 !important;
  place-items: center;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--portal-accent-2) !important;
  cursor: pointer;
}

#platformView .portal-rail-edge-prev { left: 0 !important; }
#platformView .portal-rail-edge-next { right: 0 !important; }

#platformView .portal-rail-edge span {
  display: grid;
  width: 46px;
  height: 46px;
  place-items: center;
  border: 1px solid var(--portal-line);
  border-radius: 50%;
  background: var(--portal-surface-strong);
  box-shadow: 0 10px 20px rgba(9, 80, 128, .13);
  font-size: 28px;
  font-weight: 700;
  line-height: 1;
  opacity: 0;
  transform: scale(.75);
  transition: opacity .18s ease, transform .18s ease;
}

#platformView .portal-rail-edge:hover span,
#platformView .portal-rail-edge:focus-visible span {
  opacity: 1;
  transform: scale(1);
}

/* 门户内部不再展示旧的滑块、轨道提示或卡片内滚动条。 */
#platformView .portal-rail-hint,
#platformView .portal-track-scrollbar,
#platformView .portal-module-rail + .portal-rail-scrollbar {
  display: none !important;
}

/* 五个独立模块的侧栏统一为：折叠键 + 首页 + 功能组。 */
[data-module-shell] [data-module-nav-root] .generation-nav-brand,
[data-module-shell] [data-module-nav-root] .module-nav-brand {
  display: none !important;
}

[data-module-shell] [data-module-nav-root] .module-sidebar-collapse {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  width: calc(100% - 20px);
  min-height: 44px;
  margin: 10px;
  padding: 0 12px;
  border: 1px solid rgba(126, 190, 245, .3);
  border-radius: 10px;
  background: rgba(34, 110, 194, .22);
  color: inherit;
  font-size: 15px;
  cursor: pointer;
}

[data-module-shell] [data-module-nav-root] .module-sidebar-collapse span {
  font-size: 18px;
  line-height: 1;
}

[data-module-shell].module-nav-collapsed {
  grid-template-columns: 72px minmax(0, 1fr) !important;
}

[data-module-shell].module-nav-collapsed [data-module-nav-root] {
  overflow: hidden;
}

[data-module-shell].module-nav-collapsed [data-module-nav-root] > :not(.module-sidebar-collapse) {
  display: none !important;
}

[data-module-shell].module-nav-collapsed [data-module-nav-root] .module-sidebar-collapse {
  width: 48px;
  height: 48px;
  min-height: 48px;
  margin: 12px;
  padding: 0;
}

[data-module-shell].module-nav-collapsed [data-module-nav-root] .module-sidebar-collapse b {
  display: none;
}

/* 方案生成与方案审查共用同一套一级侧栏节奏：等高菜单、图标格和稳定的
   纵向间距。二级的框架/资料操作收回各自主页面，避免侧栏展开后上下错位。 */
[data-module-shell="generation"] [data-module-nav-root="generation"] {
  gap: 12px;
  padding: 26px 14px;
}

[data-module-shell="generation"] [data-module-nav-root="generation"] .module-sidebar-collapse {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: center;
  justify-content: stretch;
  gap: 12px;
  width: 100%;
  min-height: 48px;
  margin: 0;
  padding: 0 16px;
  border-radius: 12px;
  text-align: left;
}

[data-module-shell="generation"] [data-module-nav-root="generation"] .module-sidebar-collapse b {
  display: block;
}

[data-module-shell="generation"] [data-module-nav-root="generation"] .generation-review-nav-item {
  display: grid !important;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: center;
  min-height: 58px;
  padding: 0 16px;
  gap: 12px;
  border: 1px solid transparent;
  border-radius: 12px;
  color: #ecf4ff;
  font-size: 16px;
  font-weight: 900;
  line-height: 1.25;
}

[data-module-shell="generation"] [data-module-nav-root="generation"] .generation-review-nav-item .module-nav-icon {
  display: inline-flex;
  width: 28px;
  height: 28px;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  color: #61a5ff;
  background: rgba(59, 130, 246, .14);
  font-size: 17px;
  line-height: 1;
}

[data-module-shell="generation"] [data-module-nav-root="generation"] .generation-review-nav-item.active {
  border-color: rgba(147, 197, 253, .62);
  background: linear-gradient(135deg, #2563eb, #1d9bf0);
  box-shadow: 0 14px 30px rgba(37, 99, 235, .26), inset 0 0 22px rgba(255, 255, 255, .08);
}

[data-module-shell="generation"] [data-module-nav-root="generation"] .generation-review-nav-item.active .module-nav-icon {
  color: #dbeafe;
  background: rgba(255, 255, 255, .16);
}

@media (max-width: 900px) {
  [data-module-shell="generation"] [data-module-nav-root="generation"] .generation-review-nav-item {
    min-height: 52px;
  }
}

/* 登录页输入区域高对比，不影响模块内部表单。 */
.login-card input,
.login-card select,
.login-card textarea {
  border-color: #a9c9df !important;
  background: rgba(255, 255, 255, .97) !important;
  color: #173a62 !important;
  box-shadow: inset 0 1px 1px rgba(14, 56, 95, .04) !important;
}

.login-card input::placeholder,
.login-card textarea::placeholder {
  color: #7087a0 !important;
  opacity: 1;
}

@media (max-width: 1300px) {
  #platformView.platform-portal {
    padding-inline: 30px !important;
  }
  #platformView .portal-modern-topbar {
    grid-template-columns: 155px minmax(510px, 1fr) 155px;
  }
  #platformView .portal-modern-module-nav {
    gap: 22px;
  }
  #platformView .portal-module-showcase {
    column-gap: 48px;
  }
  #platformView .portal-showcase-copy {
    margin-left: 22px;
  }
}

@media (max-width: 1000px) {
  #platformView.platform-portal {
    min-width: 0;
    overflow-x: hidden;
    padding: 18px 18px 30px !important;
  }
  #platformView .portal-modern-topbar {
    grid-template-columns: 1fr;
    gap: 4px;
    min-height: 0;
  }
  #platformView .portal-modern-brand,
  #platformView .portal-modern-actions {
    justify-content: center;
  }
  #platformView .portal-modern-module-nav {
    max-width: 100%;
    gap: 17px;
    overflow-x: auto;
    justify-content: flex-start;
    scrollbar-width: none;
  }
  #platformView .portal-modern-module-nav::-webkit-scrollbar { display: none; }
  #platformView .portal-module-showcase {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto minmax(250px, 35vh);
    row-gap: 20px;
    min-height: auto;
    padding-top: 26px;
  }
  #platformView .portal-showcase-copy,
  #platformView .portal-module-intro {
    grid-column: 1;
    width: 100%;
    margin-left: 0;
  }
  #platformView .portal-showcase-copy { grid-row: 1; min-height: 220px; }
  #platformView .portal-module-intro { grid-row: 2; min-height: 0; }
  #platformView .portal-module-rail { grid-row: 3; }
  #platformView .portal-modern-hero-copy h3 { white-space: normal; }
  #platformView .portal-rail-edge { display: none !important; }
}

@media (max-height: 780px) and (min-width: 1001px) {
  #platformView .portal-module-showcase {
    grid-template-rows: minmax(245px, 1fr) minmax(230px, 30vh);
    min-height: calc(100vh - 110px);
    padding-top: 20px;
  }
  #platformView .portal-modern-hero-copy h3 { font-size: clamp(48px, 4.5vw, 72px) !important; }
  #platformView .portal-module-intro { min-height: 245px; padding-block: 27px !important; }
  #platformView .portal-module-rail { padding-top: 47px !important; }
  #platformView .platform-module-card { min-height: 210px !important; }
}

/*
 * 门户样式最终收口。
 * styles.css / styles-modern.css 中保留了数轮原型门户的主题规则；这些规则
 * 使用了高选择器优先级和 !important。以下只作用于平台首页，并以更高的
 * 选择器优先级统一覆盖，避免两套旧规则分别把经典页染深、把轨道撑高或重新
 * 打开滚动条。
 */
body[data-view="platform"] #platformView.platform-portal {
  min-height: 100vh !important;
  height: auto !important;
  overflow: hidden !important;
}

body:not(.ui-modern)[data-view="platform"] #platformView.platform-portal {
  color: #123f70 !important;
  background:
    linear-gradient(104deg, rgba(249, 253, 255, .67) 0%, rgba(235, 248, 255, .57) 48%, rgba(210, 241, 251, .5) 100%),
    url("/figure/首页背景图.jpg") center / cover no-repeat !important;
}

body.ui-modern[data-view="platform"] #platformView.platform-portal {
  color: #f4fbff !important;
  background:
    linear-gradient(105deg, rgba(1, 21, 47, .92) 0%, rgba(4, 48, 89, .86) 51%, rgba(4, 24, 54, .84) 100%),
    url("/figure/首页背景图.jpg") center / cover no-repeat !important;
}

body[data-view="platform"] #platformView .portal-modern-topbar {
  grid-template-columns: minmax(172px, .7fr) minmax(580px, 1.45fr) minmax(172px, .7fr) !important;
  min-height: 70px !important;
  padding: 0 6px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body[data-view="platform"] #platformView .portal-modern-module-nav {
  gap: clamp(20px, 2.2vw, 42px) !important;
}

body[data-view="platform"] #platformView .portal-modern-module-nav button {
  min-height: 48px !important;
  padding: 10px 2px !important;
  color: var(--portal-ink-soft) !important;
  background: transparent !important;
  font-size: clamp(15px, 1.08vw, 18px) !important;
}

body[data-view="platform"] #platformView .portal-modern-actions,
body[data-view="platform"] #platformView .portal-modern-actions a,
body[data-view="platform"] #platformView .portal-modern-actions button {
  color: var(--portal-ink-soft) !important;
  background: transparent !important;
  font-size: clamp(14px, 1vw, 17px) !important;
}

body[data-view="platform"] #platformView .portal-module-showcase {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(430px, .94fr) !important;
  grid-template-rows: clamp(250px, 32vh, 320px) clamp(272px, 31vh, 296px) !important;
  grid-template-areas: "hero intro" "rail rail" !important;
  align-items: stretch !important;
  width: min(100%, 1760px) !important;
  min-height: 0 !important;
  height: auto !important;
  margin: 0 auto !important;
  padding: clamp(20px, 3.5vh, 42px) clamp(10px, 1.5vw, 22px) 0 !important;
  gap: clamp(20px, 2.4vw, 42px) clamp(32px, 5vw, 92px) !important;
  background: transparent !important;
  box-shadow: none !important;
}

body[data-view="platform"] #platformView .portal-showcase-copy,
body[data-view="platform"] #platformView .portal-module-intro {
  align-self: center !important;
  min-height: clamp(250px, 29vh, 320px) !important;
}

body[data-view="platform"] #platformView .portal-showcase-copy {
  display: flex !important;
  width: min(100%, 680px) !important;
  margin-left: clamp(18px, 4vw, 86px) !important;
  padding: 14px 0 !important;
}

body[data-view="platform"] #platformView .portal-modern-hero-copy > span {
  color: var(--portal-accent) !important;
  font-family: "STKaiti", "KaiTi", "Microsoft YaHei", sans-serif !important;
  font-size: clamp(29px, 2.45vw, 45px) !important;
  white-space: nowrap !important;
}

body[data-view="platform"] #platformView .portal-modern-hero-copy h3 {
  color: var(--portal-ink) !important;
  font-size: clamp(48px, 4.35vw, 78px) !important;
  letter-spacing: -.07em !important;
  line-height: 1.08 !important;
  white-space: nowrap !important;
}

body:not(.ui-modern)[data-view="platform"] #platformView .portal-modern-hero-copy h3 {
  background: linear-gradient(112deg, #123c71 5%, #0b7ca2 56%, #079caf 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
}

body[data-view="platform"] #platformView .portal-modern-hero-copy p {
  margin-top: 25px !important;
  color: var(--portal-ink-soft) !important;
  font-size: clamp(13px, 1.04vw, 18px) !important;
}

body[data-view="platform"] #platformView .portal-module-intro {
  display: grid !important;
  min-height: clamp(250px, 29vh, 320px) !important;
  margin: 0 !important;
  padding: clamp(30px, 3.4vw, 56px) clamp(31px, 3.6vw, 64px) !important;
  border: 1px solid var(--portal-line) !important;
  border-radius: 28px !important;
  color: var(--portal-ink) !important;
  background: var(--portal-surface) !important;
}

body[data-view="platform"] #platformView .portal-module-intro .portal-intro-index {
  color: var(--portal-accent) !important;
  font-size: clamp(66px, 5.2vw, 102px) !important;
}

body[data-view="platform"] #platformView .portal-module-intro .portal-intro-copy h4 {
  color: var(--portal-ink) !important;
  font-size: clamp(29px, 2.35vw, 45px) !important;
}

body[data-view="platform"] #platformView .portal-module-intro .portal-intro-copy strong {
  color: var(--portal-accent-2) !important;
  font-size: clamp(16px, 1.22vw, 21px) !important;
}

body[data-view="platform"] #platformView .portal-modern-intro-description {
  color: var(--portal-ink-soft) !important;
  font-size: clamp(16px, 1.18vw, 20px) !important;
}

body[data-view="platform"] #platformView .portal-module-rail {
  display: flex !important;
  align-self: stretch !important;
  align-items: flex-start !important;
  min-height: clamp(272px, 31vh, 296px) !important;
  height: clamp(272px, 31vh, 296px) !important;
  margin: 0 !important;
  padding-top: 32px !important;
  padding-bottom: 8px !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
  scroll-snap-type: x proximity !important;
}

body[data-view="platform"] #platformView .portal-module-rail::-webkit-scrollbar,
body[data-view="platform"] #platformView .portal-module-rail::-webkit-scrollbar-track,
body[data-view="platform"] #platformView .portal-module-rail::-webkit-scrollbar-thumb,
body[data-view="platform"] #platformView .platform-module-card ul::-webkit-scrollbar {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
}

body[data-view="platform"] #platformView .platform-module-card {
  flex: 0 0 clamp(292px, 20.8vw, 366px) !important;
  min-height: clamp(212px, 24vh, 252px) !important;
  height: auto !important;
  padding: 17px 20px 16px !important;
  overflow: visible !important;
  color: var(--portal-ink) !important;
  background: var(--portal-rail-muted) !important;
  transform: translateY(31px) scale(.86) !important;
}

body[data-view="platform"] #platformView .platform-module-card.portal-rail-near {
  transform: translateY(13px) scale(.94) !important;
}

body[data-view="platform"] #platformView .platform-module-card.portal-rail-active {
  transform: translateY(-14px) scale(1.04) !important;
  color: var(--portal-ink) !important;
  background: var(--portal-rail-card) !important;
}

body[data-view="platform"] #platformView .platform-module-card h3,
body[data-view="platform"] #platformView .platform-module-card h3 em {
  color: var(--portal-ink) !important;
}

body[data-view="platform"] #platformView .platform-module-card li {
  color: var(--portal-ink-soft) !important;
  font-size: clamp(14px, 1vw, 16px) !important;
}

body[data-view="platform"] #platformView .platform-module-card ul {
  display: grid !important;
  max-height: none !important;
  overflow: visible !important;
}

body[data-view="platform"] #platformView .portal-rail-controls,
body[data-view="platform"] #platformView .portal-rail-hint,
body[data-view="platform"] #platformView .portal-track-scrollbar,
body[data-view="platform"] #platformView .portal-module-rail + .portal-rail-scrollbar {
  display: none !important;
}

@media (max-width: 1300px) {
  body[data-view="platform"] #platformView .portal-modern-topbar {
    grid-template-columns: 155px minmax(510px, 1fr) 155px !important;
  }
  body[data-view="platform"] #platformView .portal-module-showcase {
    column-gap: 48px !important;
  }
  body[data-view="platform"] #platformView .portal-showcase-copy {
    margin-left: 22px !important;
  }
}

/* v39：矮屏允许门户自然向下阅读；轨道始终容纳完整弧形卡片。 */
#platformView .portal-module-showcase,
body[data-view="platform"] #platformView .portal-module-showcase {
  grid-template-rows: minmax(288px, 1fr) clamp(340px, 34vh, 370px) !important;
}

#platformView .portal-module-rail,
body[data-view="platform"] #platformView .portal-module-rail {
  min-height: clamp(340px, 34vh, 370px) !important;
  height: clamp(340px, 34vh, 370px) !important;
}

@media (max-width: 1300px) {
  #platformView .portal-modern-hero-copy h3,
  body[data-view="platform"] #platformView .portal-modern-hero-copy h3 {
    font-size: clamp(49px, 4.4vw, 60px) !important;
    letter-spacing: -.065em !important;
  }
}

@media (max-height: 820px) {
  body[data-view="platform"],
  body[data-view="platform"] .workspace,
  body[data-view="platform"] .workspace > .page-view,
  body[data-view="platform"] #platformView.platform-portal {
    height: auto !important;
    min-height: 100dvh !important;
    overflow: visible !important;
  }

  body[data-view="platform"] {
    overflow-y: auto !important;
  }

  body[data-view="platform"] #platformView .portal-module-showcase {
    height: auto !important;
    min-height: 0 !important;
    grid-template-rows: minmax(300px, auto) 352px !important;
  }

  body[data-view="platform"] #platformView .portal-module-rail {
    min-height: 352px !important;
    height: 352px !important;
  }
}

/* v38：门户首屏采用“主视觉居中 + 底部弧形轨道”的最终布局。 */
#platformView.platform-portal {
  min-height: 100dvh !important;
  height: 100dvh !important;
  display: grid !important;
  grid-template-rows: auto minmax(0, 1fr) !important;
  padding: 18px clamp(24px, 4vw, 76px) 16px !important;
  overflow: hidden !important;
  background:
    linear-gradient(104deg, rgba(249, 253, 255, .95) 0%, rgba(236, 248, 255, .89) 50%, rgba(211, 241, 252, .80) 100%),
    url("/figure/首页背景图.jpg") center / cover no-repeat !important;
}

body.ui-modern #platformView.platform-portal {
  background:
    linear-gradient(105deg, rgba(1, 21, 47, .95) 0%, rgba(4, 48, 89, .92) 51%, rgba(4, 24, 54, .89) 100%),
    url("/figure/首页背景图.jpg") center / cover no-repeat !important;
}

#platformView .portal-modern-topbar,
body[data-view="platform"] #platformView .portal-modern-topbar {
  grid-template-columns: minmax(230px, .82fr) minmax(580px, 1.4fr) minmax(170px, .58fr) !important;
  min-height: 98px !important;
}

#platformView .portal-modern-brand img,
body[data-view="platform"] #platformView .portal-modern-brand img {
  width: clamp(228px, 19.4vw, 316px) !important;
  max-height: 96px !important;
}

#platformView .portal-modern-module-nav,
body[data-view="platform"] #platformView .portal-modern-module-nav {
  gap: clamp(23px, 2.5vw, 48px) !important;
}

#platformView .portal-modern-module-nav button,
body[data-view="platform"] #platformView .portal-modern-module-nav button {
  min-height: 60px !important;
  padding: 12px 3px !important;
  font-size: clamp(17px, 1.23vw, 21px) !important;
}

#platformView .portal-modern-actions a,
#platformView .portal-modern-actions button,
body[data-view="platform"] #platformView .portal-modern-actions a,
body[data-view="platform"] #platformView .portal-modern-actions button {
  min-height: 52px !important;
  font-size: clamp(15px, 1.12vw, 19px) !important;
}

#platformView .portal-module-showcase,
body[data-view="platform"] #platformView .portal-module-showcase {
  grid-template-columns: minmax(0, 1.04fr) minmax(470px, .96fr) !important;
  grid-template-rows: minmax(300px, 1fr) clamp(316px, 32vh, 342px) !important;
  grid-template-areas: "hero intro" "rail rail" !important;
  align-items: stretch !important;
  height: 100% !important;
  min-height: 0 !important;
  padding: clamp(10px, 2.2vh, 24px) clamp(8px, 1.5vw, 22px) 0 !important;
  gap: clamp(18px, 2.2vw, 38px) clamp(36px, 5.4vw, 98px) !important;
}

#platformView .portal-showcase-copy,
#platformView .portal-module-intro,
body[data-view="platform"] #platformView .portal-showcase-copy,
body[data-view="platform"] #platformView .portal-module-intro {
  align-self: center !important;
  transform: translateY(clamp(18px, 4.2vh, 54px));
}

#platformView .portal-showcase-copy,
body[data-view="platform"] #platformView .portal-showcase-copy {
  width: min(100%, 750px) !important;
  min-height: 0 !important;
  margin-left: clamp(28px, 5.4vw, 118px) !important;
}

#platformView .portal-modern-hero-copy > span,
body[data-view="platform"] #platformView .portal-modern-hero-copy > span {
  margin-bottom: 19px !important;
  font-size: clamp(33px, 2.7vw, 50px) !important;
  letter-spacing: .11em !important;
}

#platformView .portal-modern-hero-copy h3,
body[data-view="platform"] #platformView .portal-modern-hero-copy h3 {
  max-width: none !important;
  font-size: clamp(54px, 4.72vw, 86px) !important;
  letter-spacing: -.075em !important;
}

#platformView .portal-modern-hero-copy p,
body[data-view="platform"] #platformView .portal-modern-hero-copy p {
  margin-top: 28px !important;
  font-size: clamp(14px, 1.13vw, 20px) !important;
  letter-spacing: .16em !important;
}

#platformView .portal-module-intro,
body[data-view="platform"] #platformView .portal-module-intro {
  min-height: clamp(280px, 31vh, 354px) !important;
  padding: clamp(34px, 3.8vw, 64px) clamp(35px, 3.9vw, 70px) !important;
}

#platformView .portal-module-intro .portal-intro-index,
body[data-view="platform"] #platformView .portal-module-intro .portal-intro-index {
  font-size: clamp(76px, 5.85vw, 112px) !important;
}

#platformView .portal-module-intro .portal-intro-copy h4,
body[data-view="platform"] #platformView .portal-module-intro .portal-intro-copy h4 {
  font-size: clamp(33px, 2.65vw, 50px) !important;
}

#platformView .portal-module-intro .portal-intro-copy strong,
body[data-view="platform"] #platformView .portal-module-intro .portal-intro-copy strong {
  font-size: clamp(17px, 1.32vw, 23px) !important;
}

#platformView .portal-modern-intro-description,
body[data-view="platform"] #platformView .portal-modern-intro-description {
  font-size: clamp(16px, 1.22vw, 21px) !important;
}

#platformView .portal-module-rail,
body[data-view="platform"] #platformView .portal-module-rail {
  align-self: end !important;
  min-height: clamp(316px, 32vh, 342px) !important;
  height: clamp(316px, 32vh, 342px) !important;
  padding-top: 40px !important;
  padding-bottom: 0 !important;
  scroll-snap-type: none !important;
  overscroll-behavior-inline: contain;
}

#platformView .platform-module-card,
body[data-view="platform"] #platformView .platform-module-card {
  flex-basis: clamp(302px, 20.6vw, 370px) !important;
  min-height: 276px !important;
  padding: 17px 20px 18px !important;
  transform: translateY(18px) scale(.84) !important;
  transform-origin: 50% 100% !important;
}

#platformView .platform-module-card.portal-rail-near,
body[data-view="platform"] #platformView .platform-module-card.portal-rail-near {
  transform: translateY(7px) scale(.95) !important;
}

#platformView .platform-module-card.portal-rail-active,
body[data-view="platform"] #platformView .platform-module-card.portal-rail-active {
  transform: translateY(-20px) scale(1.07) !important;
}

#platformView .platform-module-card .module-card-head {
  min-height: 48px !important;
  padding-right: 66px !important;
}

#platformView .platform-module-card h3,
body[data-view="platform"] #platformView .platform-module-card h3 {
  font-size: clamp(20px, 1.38vw, 26px) !important;
}

#platformView .platform-module-card .module-open {
  top: 20px !important;
  right: 19px !important;
  font-size: 15px !important;
}

#platformView .platform-module-card ul,
body[data-view="platform"] #platformView .platform-module-card ul {
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 5px !important;
  margin-top: 15px !important;
}

#platformView .platform-module-card li,
body[data-view="platform"] #platformView .platform-module-card li {
  min-height: 20px;
  padding-left: 9px !important;
  overflow: visible !important;
  font-size: clamp(15px, 1.04vw, 17px) !important;
  line-height: 1.33 !important;
  text-overflow: clip !important;
  white-space: normal !important;
}

#platformView .platform-module-card li::before {
  top: .66em !important;
  width: 3px !important;
  height: 3px !important;
  opacity: .58;
}

#platformView .portal-rail-edge {
  bottom: 0 !important;
  height: clamp(282px, 30vh, 322px) !important;
}

@media (max-height: 820px) {
  #platformView.platform-portal {
    height: auto !important;
    min-height: 100dvh !important;
    overflow: visible !important;
  }

  #platformView .portal-module-showcase,
  body[data-view="platform"] #platformView .portal-module-showcase {
    height: auto !important;
    grid-template-rows: minmax(310px, auto) 330px !important;
  }
}

@media (max-width: 1300px) {
  #platformView .portal-modern-topbar,
  body[data-view="platform"] #platformView .portal-modern-topbar {
    grid-template-columns: minmax(212px, .8fr) minmax(510px, 1.3fr) minmax(150px, .55fr) !important;
  }
}

@media (max-width: 1000px) {
  body[data-view="platform"] #platformView .portal-module-showcase {
    grid-template-columns: 1fr !important;
    grid-template-rows: auto auto minmax(250px, 35vh) !important;
    grid-template-areas: "hero" "intro" "rail" !important;
    height: auto !important;
  }
  body[data-view="platform"] #platformView .portal-showcase-copy,
  body[data-view="platform"] #platformView .portal-module-intro {
    width: 100% !important;
    margin-left: 0 !important;
  }
  body[data-view="platform"] #platformView .portal-modern-hero-copy h3 {
    white-space: normal !important;
  }
  body[data-view="platform"] #platformView .portal-module-rail {
    min-height: 250px !important;
    height: 250px !important;
  }
}

/* v40：低矮桌面优先完整呈现卡片，避免外层固定高度裁切门户轨道。 */
@media (max-height: 820px) and (min-width: 1001px) {
  html,
  body[data-view="platform"] {
    min-height: 100dvh !important;
    height: auto !important;
    overflow-y: auto !important;
  }

  body[data-view="platform"] .workspace,
  body[data-view="platform"] .workspace > .page-view,
  body[data-view="platform"] #platformView.platform-portal {
    min-height: 100dvh !important;
    height: auto !important;
    overflow: visible !important;
  }

  body[data-view="platform"] #platformView.platform-portal {
    display: grid !important;
    grid-template-rows: auto auto !important;
  }

  body[data-view="platform"] #platformView .portal-module-showcase {
    min-height: 730px !important;
    height: auto !important;
    grid-template-rows: minmax(320px, auto) 370px !important;
  }

  body[data-view="platform"] #platformView .portal-module-rail {
    min-height: 370px !important;
    height: 370px !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
  }
}

/* v48 - 介绍卡的两侧热区保持在卡片范围内，悬停后即可直接点击切换。 */
#platformView .portal-intro-stage .portal-rail-edge-prev,
body[data-view="platform"] #platformView .portal-intro-stage .portal-rail-edge-prev {
  left: clamp(8px, 1vw, 16px) !important;
}

#platformView .portal-intro-stage .portal-rail-edge-next,
body[data-view="platform"] #platformView .portal-intro-stage .portal-rail-edge-next {
  right: clamp(8px, 1vw, 16px) !important;
}

#platformView .portal-intro-stage:hover .portal-rail-edge-prev,
#platformView .portal-intro-stage:hover .portal-rail-edge-next,
#platformView .portal-intro-stage:focus-within .portal-rail-edge-prev,
#platformView .portal-intro-stage:focus-within .portal-rail-edge-next {
  pointer-events: auto !important;
}

/* v49 - 左侧平台名称在常见宽度下始终完整留在主视觉列中。 */
#platformView .portal-modern-hero-copy h3,
body[data-view="platform"] #platformView .portal-modern-hero-copy h3 {
  font-size: clamp(44px, 3.2vw, 62px) !important;
}

/* v46 - 门户最终自适应层：统一两套主题的几何布局，避免缩放后标题、入口与轨道互相挤压。 */
#platformView .portal-modern-topbar,
body[data-view="platform"] #platformView .portal-modern-topbar {
  grid-template-columns: clamp(248px, 22vw, 352px) minmax(480px, 1fr) clamp(180px, 15vw, 252px) !important;
  min-height: clamp(94px, 8.2vh, 120px) !important;
  padding-inline: clamp(18px, 2.15vw, 42px) !important;
  align-items: center !important;
}

#platformView .portal-modern-brand,
body[data-view="platform"] #platformView .portal-modern-brand {
  min-width: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
}

#platformView .portal-modern-brand img,
body[data-view="platform"] #platformView .portal-modern-brand img {
  width: clamp(228px, 17vw, 330px) !important;
  max-height: clamp(34px, 4.25vh, 54px) !important;
  object-fit: contain !important;
  filter: none !important;
  opacity: 1 !important;
}

body.ui-modern[data-view="platform"] #platformView .portal-modern-brand {
  padding: 7px 11px !important;
  border-radius: 10px !important;
  background: rgba(255, 255, 255, .94) !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .18) !important;
}

#platformView .portal-modern-module-nav,
body[data-view="platform"] #platformView .portal-modern-module-nav {
  min-width: 0 !important;
  justify-content: center !important;
  gap: clamp(14px, 1.55vw, 30px) !important;
}

#platformView .portal-modern-module-nav button,
body[data-view="platform"] #platformView .portal-modern-module-nav button {
  min-height: clamp(52px, 5.2vh, 66px) !important;
  padding-inline: clamp(3px, .34vw, 8px) !important;
  font-size: clamp(16px, 1.12vw, 22px) !important;
  line-height: 1 !important;
}

#platformView .portal-modern-actions,
body[data-view="platform"] #platformView .portal-modern-actions {
  min-width: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: clamp(9px, .82vw, 16px) !important;
  white-space: nowrap !important;
}

#platformView .portal-modern-actions > *,
body[data-view="platform"] #platformView .portal-modern-actions > * {
  min-height: clamp(42px, 4.4vh, 54px) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  font-size: clamp(15px, 1vw, 19px) !important;
}

/* 主视觉与介绍卡沿同一中心线排布；背景照片可见但退后为信息留白。 */
body:not(.ui-modern)[data-view="platform"] #platformView.platform-portal {
  background:
    linear-gradient(104deg, rgba(250, 254, 255, .945) 0%, rgba(241, 250, 255, .915) 49%, rgba(212, 241, 252, .89) 100%),
    url("/figure/首页背景图.jpg") center center / cover no-repeat !important;
}

body.ui-modern[data-view="platform"] #platformView.platform-portal {
  background:
    linear-gradient(105deg, rgba(1, 21, 47, .905) 0%, rgba(4, 48, 89, .875) 51%, rgba(4, 24, 54, .855) 100%),
    url("/figure/首页背景图.jpg") center center / cover no-repeat !important;
}

#platformView .portal-module-showcase,
body[data-view="platform"] #platformView .portal-module-showcase {
  grid-template:
    "hero intro" minmax(clamp(306px, 38vh, 456px), 1fr)
    "rail rail" clamp(450px, 47vh, 510px)
    / minmax(0, 1.02fr) minmax(clamp(490px, 39vw, 690px), .98fr) !important;
  column-gap: clamp(72px, 8.6vw, 172px) !important;
  row-gap: clamp(10px, 1.4vh, 20px) !important;
  min-height: calc(100dvh - clamp(94px, 8.2vh, 120px)) !important;
}

#platformView .portal-modern-hero-copy,
body[data-view="platform"] #platformView .portal-modern-hero-copy,
#platformView .portal-intro-stage,
body[data-view="platform"] #platformView .portal-intro-stage {
  align-self: center !important;
}

#platformView .portal-modern-hero-copy {
  padding-left: clamp(10px, 1.8vw, 36px) !important;
}

#platformView .portal-modern-hero-copy > span,
body[data-view="platform"] #platformView .portal-modern-hero-copy > span {
  font-size: clamp(31px, 2.55vw, 46px) !important;
  margin-bottom: clamp(12px, 1.35vh, 19px) !important;
}

#platformView .portal-modern-hero-copy h3,
body[data-view="platform"] #platformView .portal-modern-hero-copy h3 {
  font-size: clamp(46px, 3.8vw, 74px) !important;
  letter-spacing: -.045em !important;
}

#platformView .portal-modern-hero-copy p,
body[data-view="platform"] #platformView .portal-modern-hero-copy p {
  margin-top: clamp(17px, 2vh, 28px) !important;
  font-size: clamp(12px, .93vw, 17px) !important;
  max-width: 49ch !important;
}

#platformView .portal-module-intro,
body[data-view="platform"] #platformView .portal-module-intro {
  min-height: clamp(274px, 29vh, 342px) !important;
  padding: clamp(28px, 3vw, 48px) clamp(30px, 3.3vw, 58px) !important;
}

#platformView .portal-intro-stage .portal-rail-edge-prev,
#platformView .portal-intro-stage .portal-rail-edge-next {
  z-index: 4 !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

#platformView .portal-intro-stage:hover .portal-rail-edge-prev,
#platformView .portal-intro-stage:hover .portal-rail-edge-next,
#platformView .portal-intro-stage .portal-rail-edge-prev:focus-visible,
#platformView .portal-intro-stage .portal-rail-edge-next:focus-visible {
  opacity: 1 !important;
  pointer-events: auto !important;
}

/* 轨道采用更宽的未缩放卡片，再通过 transform 表现弧度，保证标题不换行也不挤压入口。 */
#platformView .portal-module-rail,
body[data-view="platform"] #platformView .portal-module-rail {
  min-height: clamp(450px, 47vh, 510px) !important;
  height: clamp(450px, 47vh, 510px) !important;
  padding-top: clamp(84px, 9vh, 104px) !important;
  padding-bottom: clamp(14px, 1.8vh, 24px) !important;
  scrollbar-width: none !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
}

#platformView .portal-module-rail::-webkit-scrollbar,
body[data-view="platform"] #platformView .portal-module-rail::-webkit-scrollbar {
  display: none !important;
}

#platformView .platform-module-card,
body[data-view="platform"] #platformView .platform-module-card {
  flex: 0 0 clamp(432px, 31.5vw, 492px) !important;
  min-height: clamp(370px, 38vh, 416px) !important;
  padding: clamp(19px, 1.5vw, 25px) clamp(21px, 1.8vw, 30px) clamp(20px, 1.55vw, 26px) !important;
  transform: translateY(36px) scale(.74) !important;
  transform-origin: 50% 100% !important;
}

#platformView .platform-module-card.portal-rail-near,
body[data-view="platform"] #platformView .platform-module-card.portal-rail-near {
  transform: translateY(17px) scale(.89) !important;
}

#platformView .platform-module-card.portal-rail-active,
body[data-view="platform"] #platformView .platform-module-card.portal-rail-active {
  transform: translateY(-20px) scale(1.03) !important;
}

#platformView .platform-module-card .module-card-head,
body[data-view="platform"] #platformView .platform-module-card .module-card-head {
  min-height: clamp(44px, 4.9vh, 56px) !important;
  display: grid !important;
  grid-template-columns: clamp(34px, 2.3vw, 42px) minmax(0, 1fr) auto !important;
  column-gap: clamp(8px, .72vw, 13px) !important;
  align-items: center !important;
  padding: 0 !important;
}

#platformView .platform-module-card .module-icon,
body[data-view="platform"] #platformView .platform-module-card .module-icon {
  width: clamp(34px, 2.3vw, 42px) !important;
  height: clamp(34px, 2.3vw, 42px) !important;
  min-width: clamp(34px, 2.3vw, 42px) !important;
  font-size: clamp(11px, .78vw, 13px) !important;
}

#platformView .platform-module-card h3,
body[data-view="platform"] #platformView .platform-module-card h3 {
  min-width: 0 !important;
  margin: 0 !important;
  white-space: nowrap !important;
  overflow: visible !important;
  text-overflow: clip !important;
  font-size: clamp(19px, 1.42vw, 26px) !important;
  line-height: 1.14 !important;
  letter-spacing: -.04em !important;
}

#platformView .platform-module-card h3 .module-card-title,
body[data-view="platform"] #platformView .platform-module-card h3 .module-card-title {
  white-space: nowrap !important;
}

#platformView .platform-module-card h3 em,
body[data-view="platform"] #platformView .platform-module-card h3 em {
  display: inline !important;
  margin-left: .14em !important;
  white-space: nowrap !important;
  font: inherit !important;
}

#platformView .platform-module-card .module-open,
body[data-view="platform"] #platformView .platform-module-card .module-open {
  position: static !important;
  min-width: clamp(72px, 5vw, 90px) !important;
  width: auto !important;
  height: clamp(30px, 3.7vh, 39px) !important;
  margin: 0 !important;
  padding-inline: clamp(7px, .68vw, 12px) !important;
  border-radius: 8px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  white-space: nowrap !important;
  font-size: clamp(14px, .92vw, 17px) !important;
  line-height: 1 !important;
}

#platformView .platform-module-card ul,
body[data-view="platform"] #platformView .platform-module-card ul {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: clamp(7px, .92vh, 11px) !important;
  margin-top: clamp(17px, 1.85vh, 24px) !important;
}

#platformView .platform-module-card li,
body[data-view="platform"] #platformView .platform-module-card li {
  min-height: clamp(27px, 3vh, 34px) !important;
  padding: clamp(4px, .48vh, 6px) clamp(6px, .58vw, 10px) clamp(4px, .48vh, 6px) clamp(18px, 1.35vw, 24px) !important;
  border-radius: 7px !important;
  font-size: clamp(15px, 1.03vw, 19px) !important;
  line-height: 1.36 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

#platformView .platform-module-card li::before,
body[data-view="platform"] #platformView .platform-module-card li::before {
  top: 50% !important;
  left: clamp(8px, .7vw, 12px) !important;
  width: 4px !important;
  height: 4px !important;
  transform: translateY(-50%) !important;
  opacity: .56 !important;
}

#platformView .platform-module-card li:nth-child(odd),
body[data-view="platform"] #platformView .platform-module-card li:nth-child(odd) {
  background: color-mix(in srgb, var(--accent, #079fc7) 8%, transparent) !important;
}

#platformView .platform-module-card li:hover,
#platformView .platform-module-card li:focus-visible {
  background: color-mix(in srgb, var(--accent, #079fc7) 17%, transparent) !important;
  transform: translateX(4px) !important;
}

@media (max-width: 1380px) and (min-width: 1001px) {
  #platformView .portal-modern-topbar,
  body[data-view="platform"] #platformView .portal-modern-topbar {
    grid-template-columns: 230px minmax(470px, 1fr) 178px !important;
  }

  #platformView .portal-module-showcase,
  body[data-view="platform"] #platformView .portal-module-showcase {
    grid-template:
      "hero intro" minmax(306px, 1fr)
      "rail rail" 466px
      / minmax(0, 1fr) minmax(450px, .94fr) !important;
    column-gap: 58px !important;
  }
}

@media (max-height: 820px) and (min-width: 1001px) {
  #platformView .portal-module-showcase,
  body[data-view="platform"] #platformView .portal-module-showcase {
    min-height: 836px !important;
    grid-template:
      "hero intro" 348px
      "rail rail" 468px
      / minmax(0, 1fr) minmax(450px, .94fr) !important;
  }
}

/* v44 - 门户最终样式层：双主题共享几何，缩放时只使用未变形坐标居中。 */
body:not(.ui-modern)[data-view="platform"] #platformView.platform-portal {
  background:
    linear-gradient(108deg, rgba(250, 254, 255, .84) 0%, rgba(241, 250, 255, .80) 48%, rgba(212, 240, 252, .76) 100%),
    url("/figure/首页背景图.jpg") center center / cover no-repeat !important;
}

body.ui-modern[data-view="platform"] #platformView.platform-portal {
  background:
    linear-gradient(108deg, rgba(0, 21, 48, .88) 0%, rgba(3, 47, 86, .84) 48%, rgba(2, 24, 54, .82) 100%),
    url("/figure/首页背景图.jpg") center center / cover no-repeat !important;
}

#platformView.platform-portal,
body[data-view="platform"] #platformView.platform-portal {
  min-height: 100dvh !important;
  padding: clamp(14px, 2.1vh, 28px) clamp(16px, 3.1vw, 66px) 0 !important;
  overflow: visible !important;
}

#platformView .portal-header,
body[data-view="platform"] #platformView .portal-header {
  width: min(100%, 1900px) !important;
  margin: 0 auto !important;
}

#platformView .portal-modern-topbar,
body[data-view="platform"] #platformView .portal-modern-topbar {
  display: grid !important;
  grid-template-columns: minmax(245px, .86fr) minmax(480px, 1.32fr) minmax(196px, .72fr) !important;
  min-height: clamp(94px, 9.3vh, 126px) !important;
  padding: clamp(7px, 1vh, 14px) clamp(10px, 1.35vw, 24px) !important;
  align-items: center !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

#platformView .portal-modern-brand,
body[data-view="platform"] #platformView .portal-modern-brand {
  display: inline-flex !important;
  width: fit-content;
  min-height: clamp(56px, 6.5vh, 78px);
  padding: clamp(5px, .65vw, 11px) clamp(8px, .9vw, 15px);
  align-items: center;
  border-radius: 10px;
  background: rgba(255, 255, 255, .82);
  box-shadow: 0 6px 22px rgba(9, 77, 126, .08);
}

#platformView .portal-modern-brand img,
body[data-view="platform"] #platformView .portal-modern-brand img,
body.ui-modern #platformView .portal-modern-brand img {
  display: block !important;
  width: clamp(190px, 14.2vw, 288px) !important;
  max-height: clamp(46px, 5.5vh, 66px) !important;
  object-fit: contain;
  filter: none !important;
}

#platformView .portal-modern-module-nav,
body[data-view="platform"] #platformView .portal-modern-module-nav {
  gap: clamp(11px, 1.45vw, 28px) !important;
}

#platformView .portal-modern-module-nav button,
body[data-view="platform"] #platformView .portal-modern-module-nav button {
  min-height: clamp(58px, 6.7vh, 76px) !important;
  padding: 9px 2px !important;
  font-size: clamp(16px, 1.24vw, 22px) !important;
  line-height: 1 !important;
}

#platformView .portal-modern-actions,
body[data-view="platform"] #platformView .portal-modern-actions {
  display: inline-flex !important;
  min-height: clamp(58px, 6.7vh, 76px);
  align-items: center !important;
  justify-content: flex-end !important;
  gap: clamp(10px, 1.1vw, 21px) !important;
}

#platformView .portal-modern-actions button,
#platformView .portal-modern-actions a,
body[data-view="platform"] #platformView .portal-modern-actions button,
body[data-view="platform"] #platformView .portal-modern-actions a {
  display: inline-flex !important;
  min-height: clamp(40px, 4.3vh, 52px) !important;
  padding: 0 !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: clamp(15px, 1.06vw, 19px) !important;
  line-height: 1 !important;
  vertical-align: middle !important;
}

body:not(.ui-modern)[data-view="platform"] #platformView [data-portal-ui="classic"],
body.ui-modern[data-view="platform"] #platformView [data-portal-ui="modern"] {
  display: none !important;
}

#platformView .portal-module-showcase,
body[data-view="platform"] #platformView .portal-module-showcase {
  grid-template:
    "hero intro" minmax(clamp(308px, 38vh, 440px), 1fr)
    "rail rail" minmax(356px, 40vh, 432px)
    / minmax(0, 1fr) minmax(500px, .96fr) !important;
  column-gap: clamp(74px, 8vw, 180px) !important;
  row-gap: clamp(6px, 1vh, 16px) !important;
  width: min(100%, 1920px) !important;
  min-height: calc(100dvh - clamp(108px, 11vh, 154px)) !important;
  margin: 0 auto !important;
  padding: clamp(14px, 2.2vh, 30px) 0 0 !important;
}

#platformView .portal-showcase-copy,
body[data-view="platform"] #platformView .portal-showcase-copy {
  align-self: center !important;
  width: min(100%, 750px) !important;
  min-height: 0 !important;
  margin-left: clamp(34px, 6vw, 142px) !important;
  padding: 0 !important;
}

#platformView .portal-modern-hero-copy > span,
body[data-view="platform"] #platformView .portal-modern-hero-copy > span {
  margin-bottom: clamp(15px, 1.8vh, 24px) !important;
  font-size: clamp(30px, 2.7vw, 50px) !important;
  letter-spacing: .12em !important;
}

#platformView .portal-modern-hero-copy h3,
body[data-view="platform"] #platformView .portal-modern-hero-copy h3 {
  max-width: none !important;
  font-size: clamp(46px, 4.4vw, 82px) !important;
  letter-spacing: -.065em !important;
  line-height: 1.06 !important;
  white-space: nowrap !important;
}

#platformView .portal-modern-hero-copy p,
body[data-view="platform"] #platformView .portal-modern-hero-copy p {
  max-width: 780px !important;
  margin-top: clamp(20px, 2.5vh, 34px) !important;
  font-size: clamp(13px, 1.05vw, 19px) !important;
  letter-spacing: .13em !important;
  line-height: 1.55 !important;
}

#platformView .portal-intro-stage,
body[data-view="platform"] #platformView .portal-intro-stage {
  position: relative;
  display: grid;
  grid-area: intro;
  align-self: center;
  width: min(100%, 720px);
  min-width: 0;
  justify-self: end;
}

#platformView .portal-module-intro,
body[data-view="platform"] #platformView .portal-module-intro {
  grid-area: auto !important;
  grid-column: auto !important;
  grid-row: auto !important;
  width: 100% !important;
  min-height: clamp(300px, 32vh, 386px) !important;
  margin: 0 !important;
  padding: clamp(28px, 3.2vw, 58px) clamp(30px, 3.4vw, 62px) !important;
}

#platformView .portal-module-intro .portal-intro-index,
body[data-view="platform"] #platformView .portal-module-intro .portal-intro-index {
  font-size: clamp(74px, 5.7vw, 108px) !important;
}

#platformView .portal-module-intro .portal-intro-copy h4,
body[data-view="platform"] #platformView .portal-module-intro .portal-intro-copy h4 {
  font-size: clamp(29px, 2.28vw, 44px) !important;
  line-height: 1.13 !important;
}

#platformView .portal-module-intro .portal-intro-copy strong,
body[data-view="platform"] #platformView .portal-module-intro .portal-intro-copy strong {
  margin: 11px 0 18px !important;
  font-size: clamp(16px, 1.15vw, 21px) !important;
}

#platformView .portal-modern-intro-description,
body[data-view="platform"] #platformView .portal-modern-intro-description {
  margin-bottom: 26px !important;
  font-size: clamp(15px, 1.04vw, 19px) !important;
  line-height: 1.7 !important;
}

/* 介绍卡附近的透明热区：只在悬停或键盘焦点时露出切换三角。 */
#platformView .portal-intro-stage .portal-rail-edge,
body[data-view="platform"] #platformView .portal-intro-stage .portal-rail-edge {
  position: absolute !important;
  z-index: 16;
  top: 50% !important;
  bottom: auto !important;
  display: grid !important;
  width: clamp(42px, 3.6vw, 64px) !important;
  height: min(72%, 230px) !important;
  padding: 0 !important;
  place-items: center;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  opacity: 1 !important;
  transform: translateY(-50%) !important;
}

#platformView .portal-intro-stage .portal-rail-edge-prev { left: clamp(-74px, -4.5vw, -44px) !important; }
#platformView .portal-intro-stage .portal-rail-edge-next { right: clamp(-74px, -4.5vw, -44px) !important; }

#platformView .portal-intro-stage .portal-rail-edge span,
body[data-view="platform"] #platformView .portal-intro-stage .portal-rail-edge span {
  width: clamp(34px, 2.8vw, 48px) !important;
  height: clamp(34px, 2.8vw, 48px) !important;
  font-size: clamp(12px, .9vw, 17px) !important;
  opacity: 0 !important;
  transform: scale(.68) !important;
}

#platformView .portal-intro-stage .portal-rail-edge:hover span,
#platformView .portal-intro-stage .portal-rail-edge:focus-visible span {
  opacity: 1 !important;
  transform: scale(1) !important;
}

#platformView .portal-module-rail,
body[data-view="platform"] #platformView .portal-module-rail {
  align-self: end !important;
  min-height: clamp(356px, 40vh, 432px) !important;
  height: clamp(356px, 40vh, 432px) !important;
  padding-top: clamp(56px, 7.2vh, 76px) !important;
  padding-bottom: clamp(18px, 2.2vh, 26px) !important;
  gap: clamp(24px, 2vw, 42px) !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
  scroll-snap-type: none !important;
}

#platformView .portal-module-rail::-webkit-scrollbar { display: none !important; }

#platformView .platform-module-card,
body[data-view="platform"] #platformView .platform-module-card {
  flex: 0 0 clamp(400px, 26vw, 474px) !important;
  min-height: clamp(340px, 36vh, 388px) !important;
  padding: clamp(18px, 1.5vw, 25px) clamp(19px, 1.65vw, 27px) !important;
  overflow: hidden !important;
  border-radius: 22px !important;
  transform: translateY(38px) scale(.80) !important;
  transform-origin: 50% 100% !important;
}

#platformView .platform-module-card.portal-rail-near,
body[data-view="platform"] #platformView .platform-module-card.portal-rail-near {
  transform: translateY(19px) scale(.92) !important;
}

#platformView .platform-module-card.portal-rail-active,
body[data-view="platform"] #platformView .platform-module-card.portal-rail-active {
  transform: translateY(-18px) scale(1.055) !important;
}

#platformView .platform-module-card .module-card-head,
body[data-view="platform"] #platformView .platform-module-card .module-card-head {
  display: grid !important;
  grid-template-columns: clamp(32px, 2.4vw, 40px) minmax(0, 1fr) auto !important;
  min-height: clamp(46px, 5.2vh, 58px) !important;
  padding: 0 !important;
  align-items: center !important;
  gap: clamp(9px, .8vw, 14px) !important;
}

#platformView .platform-module-card .module-icon,
body[data-view="platform"] #platformView .platform-module-card .module-icon {
  width: clamp(32px, 2.4vw, 40px) !important;
  height: clamp(32px, 2.4vw, 40px) !important;
  min-width: clamp(32px, 2.4vw, 40px) !important;
  font-size: clamp(10px, .75vw, 12px) !important;
}

#platformView .platform-module-card h3,
body[data-view="platform"] #platformView .platform-module-card h3 {
  display: block !important;
  min-width: 0 !important;
  margin: 0 !important;
  overflow: visible !important;
  font-size: clamp(20px, 1.42vw, 27px) !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

#platformView .platform-module-card .module-card-title,
#platformView .platform-module-card h3 em,
body[data-view="platform"] #platformView .platform-module-card .module-card-title,
body[data-view="platform"] #platformView .platform-module-card h3 em {
  display: inline !important;
  font-size: inherit !important;
  line-height: inherit !important;
  white-space: nowrap !important;
}

#platformView .platform-module-card h3 em,
body[data-view="platform"] #platformView .platform-module-card h3 em {
  margin-left: .16em !important;
  color: inherit !important;
  font-style: normal !important;
}

#platformView .platform-module-card .module-open,
body[data-view="platform"] #platformView .platform-module-card .module-open {
  position: static !important;
  align-self: center !important;
  min-height: 36px !important;
  padding: 0 0 0 8px !important;
  font-size: clamp(14px, 1vw, 18px) !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

#platformView .platform-module-card ul,
body[data-view="platform"] #platformView .platform-module-card ul {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: clamp(6px, .85vh, 10px) !important;
  margin: clamp(16px, 1.7vh, 22px) 0 0 !important;
  padding: 0 !important;
}

#platformView .platform-module-card li,
body[data-view="platform"] #platformView .platform-module-card li {
  min-height: clamp(28px, 3.05vh, 36px) !important;
  padding: 5px 10px 5px 20px !important;
  overflow: visible !important;
  border-radius: 7px !important;
  color: var(--portal-ink-soft) !important;
  font-size: clamp(15px, 1.02vw, 18px) !important;
  font-weight: 750 !important;
  line-height: 1.38 !important;
  text-overflow: clip !important;
  white-space: nowrap !important;
}

#platformView .platform-module-card li:nth-child(odd),
body[data-view="platform"] #platformView .platform-module-card li:nth-child(odd) {
  background: color-mix(in srgb, var(--portal-accent-2) 7%, transparent) !important;
}

#platformView .platform-module-card li:nth-child(even),
body[data-view="platform"] #platformView .platform-module-card li:nth-child(even) {
  background: color-mix(in srgb, var(--portal-ink) 4%, transparent) !important;
}

#platformView .platform-module-card li::before,
body[data-view="platform"] #platformView .platform-module-card li::before {
  top: 50% !important;
  left: 10px !important;
  width: 5px !important;
  height: 5px !important;
  opacity: .6 !important;
  transform: translateY(-50%);
}

#platformView .platform-module-card li:hover,
#platformView .platform-module-card li:focus-visible {
  color: var(--portal-accent-2) !important;
  background: color-mix(in srgb, var(--portal-accent) 14%, transparent) !important;
  transform: translateX(3px) !important;
}

/* 轨道专用的常驻滑块与旧边缘按钮均不再显示。 */
#platformView .portal-module-rail::before,
#platformView .portal-module-rail::after {
  display: none !important;
}

@media (max-width: 1360px) and (min-width: 1001px) {
  #platformView .portal-modern-topbar,
  body[data-view="platform"] #platformView .portal-modern-topbar {
    grid-template-columns: minmax(210px, .82fr) minmax(430px, 1.36fr) minmax(165px, .66fr) !important;
  }

  #platformView .portal-modern-brand img,
  body[data-view="platform"] #platformView .portal-modern-brand img {
    width: clamp(170px, 13.2vw, 220px) !important;
  }

  #platformView .portal-modern-module-nav { gap: clamp(8px, 1vw, 15px) !important; }
  #platformView .portal-module-showcase,
  body[data-view="platform"] #platformView .portal-module-showcase {
    grid-template-columns: minmax(0, 1fr) minmax(455px, .94fr) !important;
    column-gap: clamp(48px, 5vw, 76px) !important;
  }
}

@media (max-height: 820px) and (min-width: 1001px) {
  #platformView .portal-module-showcase,
  body[data-view="platform"] #platformView .portal-module-showcase {
    grid-template:
      "hero intro" minmax(330px, auto)
      "rail rail" 390px
      / minmax(0, 1fr) minmax(470px, .94fr) !important;
    min-height: 780px !important;
  }

  #platformView .portal-module-rail,
  body[data-view="platform"] #platformView .portal-module-rail {
    min-height: 390px !important;
    height: 390px !important;
  }
}

/* v45 - 门户最终自适应层：只作用于五大模块门户，收敛历史覆盖规则。 */
body:not(.ui-modern)[data-view="platform"] #platformView.platform-portal {
  background:
    linear-gradient(104deg, rgba(250, 254, 255, .89) 0%, rgba(239, 249, 255, .84) 52%, rgba(213, 241, 252, .80) 100%),
    url("/figure/首页背景图.jpg") center center / cover no-repeat !important;
}

body.ui-modern[data-view="platform"] #platformView.platform-portal {
  background:
    linear-gradient(104deg, rgba(1, 21, 47, .89) 0%, rgba(4, 48, 89, .84) 52%, rgba(4, 24, 54, .82) 100%),
    url("/figure/首页背景图.jpg") center center / cover no-repeat !important;
}

#platformView .portal-modern-topbar,
body[data-view="platform"] #platformView .portal-modern-topbar {
  min-height: clamp(76px, 8.1vh, 108px) !important;
  padding: clamp(9px, 1.2vw, 17px) clamp(18px, 2vw, 34px) !important;
  grid-template-columns: minmax(215px, .88fr) minmax(470px, 1.45fr) minmax(185px, .72fr) !important;
  align-items: center !important;
}

#platformView .portal-modern-brand,
body[data-view="platform"] #platformView .portal-modern-brand {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  min-height: clamp(54px, 5.8vh, 74px) !important;
  padding: clamp(4px, .4vw, 7px) clamp(8px, .7vw, 12px) !important;
  border-radius: clamp(8px, .7vw, 13px) !important;
}

#platformView .portal-modern-brand img,
body[data-view="platform"] #platformView .portal-modern-brand img {
  display: block !important;
  width: clamp(215px, 17vw, 330px) !important;
  max-height: clamp(47px, 5.1vh, 64px) !important;
  height: auto !important;
  object-fit: contain !important;
  filter: none !important;
  opacity: 1 !important;
}

body.ui-modern[data-view="platform"] #platformView .portal-modern-brand {
  background: rgba(241, 249, 255, .92) !important;
  box-shadow: 0 7px 22px rgba(0, 0, 0, .18) !important;
}

#platformView .portal-modern-module-nav,
body[data-view="platform"] #platformView .portal-modern-module-nav {
  gap: clamp(13px, 1.45vw, 29px) !important;
  align-items: center !important;
  justify-content: center !important;
}

#platformView .portal-modern-module-nav button,
body[data-view="platform"] #platformView .portal-modern-module-nav button {
  min-height: clamp(47px, 5.1vh, 62px) !important;
  padding: 0 clamp(4px, .45vw, 9px) !important;
  font-size: clamp(17px, 1.18vw, 22px) !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

#platformView .portal-modern-actions,
body[data-view="platform"] #platformView .portal-modern-actions {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: clamp(10px, .9vw, 18px) !important;
  min-height: clamp(47px, 5.1vh, 62px) !important;
  white-space: nowrap !important;
}

#platformView .portal-modern-actions > a,
#platformView .portal-modern-actions > button,
body[data-view="platform"] #platformView .portal-modern-actions > a,
body[data-view="platform"] #platformView .portal-modern-actions > button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: clamp(38px, 4.1vh, 50px) !important;
  padding: 0 clamp(3px, .35vw, 7px) !important;
  font-size: clamp(16px, 1.04vw, 20px) !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

#platformView .portal-module-showcase,
body[data-view="platform"] #platformView .portal-module-showcase {
  grid-template:
    "hero intro" minmax(clamp(300px, 37vh, 465px), 1fr)
    "rail rail" clamp(452px, 47vh, 535px)
    / minmax(0, 1fr) minmax(460px, .91fr) !important;
  column-gap: clamp(62px, 7.5vw, 150px) !important;
  row-gap: clamp(10px, 1.2vh, 20px) !important;
  min-height: calc(100dvh - clamp(76px, 8.1vh, 108px)) !important;
  padding: clamp(14px, 2.2vh, 31px) clamp(20px, 4.1vw, 80px) 0 !important;
}

#platformView .portal-showcase-copy,
#platformView .portal-intro-stage,
body[data-view="platform"] #platformView .portal-showcase-copy,
body[data-view="platform"] #platformView .portal-intro-stage {
  align-self: center !important;
  min-width: 0 !important;
}

#platformView .portal-modern-hero-copy,
body[data-view="platform"] #platformView .portal-modern-hero-copy {
  max-width: min(680px, 100%) !important;
  margin-left: clamp(6px, 2.2vw, 52px) !important;
  transform: translateY(-1px) !important;
}

#platformView .portal-modern-hero-copy > span,
body[data-view="platform"] #platformView .portal-modern-hero-copy > span {
  margin-bottom: clamp(14px, 1.6vh, 22px) !important;
  font-family: KaiTi, STKaiti, "Microsoft YaHei", serif !important;
  font-size: clamp(31px, 2.45vw, 47px) !important;
  font-weight: 700 !important;
  letter-spacing: .12em !important;
  line-height: 1.12 !important;
  white-space: nowrap !important;
}

#platformView .portal-modern-hero-copy h3,
body[data-view="platform"] #platformView .portal-modern-hero-copy h3 {
  margin: 0 !important;
  font-size: clamp(47px, 4.05vw, 82px) !important;
  line-height: 1.04 !important;
  letter-spacing: -.065em !important;
  white-space: nowrap !important;
}

#platformView .portal-modern-hero-copy p,
body[data-view="platform"] #platformView .portal-modern-hero-copy p {
  margin-top: clamp(22px, 2.3vh, 34px) !important;
  max-width: min(710px, 100%) !important;
  font-size: clamp(13px, .98vw, 18px) !important;
  line-height: 1.54 !important;
  letter-spacing: .105em !important;
}

#platformView .portal-intro-stage,
body[data-view="platform"] #platformView .portal-intro-stage {
  position: relative !important;
  display: grid !important;
  align-items: center !important;
  min-height: clamp(274px, 31vh, 368px) !important;
  overflow: visible !important;
}

#platformView .portal-module-intro,
body[data-view="platform"] #platformView .portal-module-intro {
  box-sizing: border-box !important;
  width: 100% !important;
  min-height: clamp(274px, 31vh, 368px) !important;
  padding: clamp(27px, 2.5vw, 46px) clamp(31px, 3.1vw, 57px) !important;
}

#platformView .portal-rail-edge,
body[data-view="platform"] #platformView .portal-rail-edge {
  position: absolute !important;
  z-index: 6 !important;
  top: 50% !important;
  width: clamp(34px, 3vw, 48px) !important;
  height: clamp(54px, 5.2vw, 78px) !important;
  padding: 0 !important;
  transform: translateY(-50%) !important;
  border: 0 !important;
  border-radius: 999px !important;
  opacity: 0 !important;
  pointer-events: none !important;
  transition: opacity .2s ease, transform .2s ease !important;
}

#platformView .portal-rail-edge-prev { left: clamp(-38px, -2.6vw, -18px) !important; }
#platformView .portal-rail-edge-next { right: clamp(-38px, -2.6vw, -18px) !important; }
#platformView .portal-intro-stage:hover .portal-rail-edge,
#platformView .portal-intro-stage:focus-within .portal-rail-edge {
  opacity: 1 !important;
  pointer-events: auto !important;
}

#platformView .portal-module-rail,
body[data-view="platform"] #platformView .portal-module-rail {
  align-self: end !important;
  min-height: clamp(452px, 47vh, 535px) !important;
  height: clamp(452px, 47vh, 535px) !important;
  padding-top: clamp(53px, 6.6vh, 78px) !important;
  padding-bottom: clamp(12px, 1.9vh, 23px) !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
  scroll-snap-type: none !important;
}

#platformView .portal-module-rail::-webkit-scrollbar,
body[data-view="platform"] #platformView .portal-module-rail::-webkit-scrollbar {
  display: none !important;
}

#platformView .platform-module-card,
body[data-view="platform"] #platformView .platform-module-card {
  box-sizing: border-box !important;
  flex: 0 0 clamp(400px, 29vw, 476px) !important;
  min-height: clamp(392px, 40vh, 442px) !important;
  padding: clamp(18px, 1.45vw, 26px) clamp(20px, 1.7vw, 30px) clamp(18px, 1.7vw, 27px) !important;
  transform: translateY(46px) scale(.78) !important;
  transform-origin: center bottom !important;
  overflow: visible !important;
  transition: transform .36s cubic-bezier(.2,.76,.28,1), box-shadow .3s ease, border-color .3s ease !important;
}

#platformView .platform-module-card.portal-rail-near,
body[data-view="platform"] #platformView .platform-module-card.portal-rail-near {
  transform: translateY(18px) scale(.91) !important;
}

#platformView .platform-module-card.portal-rail-active,
body[data-view="platform"] #platformView .platform-module-card.portal-rail-active {
  transform: translateY(-25px) scale(1.025) !important;
  z-index: 3 !important;
}

#platformView .platform-module-card .module-card-head,
body[data-view="platform"] #platformView .platform-module-card .module-card-head {
  display: grid !important;
  grid-template-columns: clamp(34px, 2.2vw, 42px) minmax(0, 1fr) clamp(76px, 5.5vw, 92px) !important;
  column-gap: clamp(8px, .7vw, 13px) !important;
  align-items: center !important;
  min-height: clamp(42px, 4.7vh, 58px) !important;
  padding: 0 !important;
  overflow: visible !important;
}

#platformView .platform-module-card .module-icon,
body[data-view="platform"] #platformView .platform-module-card .module-icon {
  width: clamp(34px, 2.2vw, 42px) !important;
  height: clamp(34px, 2.2vw, 42px) !important;
  min-width: clamp(34px, 2.2vw, 42px) !important;
  border-radius: clamp(7px, .6vw, 10px) !important;
  font-size: clamp(11px, .73vw, 13px) !important;
}

#platformView .platform-module-card h3,
body[data-view="platform"] #platformView .platform-module-card h3 {
  display: block !important;
  min-width: 0 !important;
  margin: 0 !important;
  overflow: visible !important;
  font-size: clamp(18px, 1.3vw, 25px) !important;
  line-height: 1.05 !important;
  letter-spacing: -.04em !important;
  white-space: nowrap !important;
}

#platformView .platform-module-card .module-card-title,
#platformView .platform-module-card h3 em,
body[data-view="platform"] #platformView .platform-module-card .module-card-title,
body[data-view="platform"] #platformView .platform-module-card h3 em {
  display: inline !important;
  font: inherit !important;
  line-height: inherit !important;
  letter-spacing: inherit !important;
  white-space: nowrap !important;
}

#platformView .platform-module-card h3 em,
body[data-view="platform"] #platformView .platform-module-card h3 em {
  margin-left: .15em !important;
}

#platformView .platform-module-card .module-open,
body[data-view="platform"] #platformView .platform-module-card .module-open {
  position: static !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  align-self: center !important;
  justify-self: end !important;
  width: clamp(76px, 5.5vw, 92px) !important;
  min-width: clamp(76px, 5.5vw, 92px) !important;
  height: auto !important;
  min-height: 30px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  font-size: clamp(14px, .94vw, 18px) !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

#platformView .platform-module-card ul,
body[data-view="platform"] #platformView .platform-module-card ul {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: clamp(7px, .85vh, 11px) !important;
  margin: clamp(15px, 1.65vh, 22px) 0 0 !important;
  padding: 0 !important;
}

#platformView .platform-module-card li,
body[data-view="platform"] #platformView .platform-module-card li {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  min-height: clamp(30px, 3.2vh, 38px) !important;
  margin: 0 !important;
  padding: clamp(5px, .48vw, 8px) clamp(8px, .75vw, 13px) clamp(5px, .48vw, 8px) clamp(19px, 1.5vw, 25px) !important;
  border-radius: clamp(5px, .45vw, 9px) !important;
  font-size: clamp(15px, 1.06vw, 19px) !important;
  font-weight: 600 !important;
  line-height: 1.32 !important;
  white-space: nowrap !important;
  overflow: visible !important;
  text-overflow: clip !important;
  cursor: pointer !important;
}

#platformView .platform-module-card li::before,
body[data-view="platform"] #platformView .platform-module-card li::before {
  left: clamp(8px, .65vw, 12px) !important;
  top: 50% !important;
  width: 5px !important;
  height: 5px !important;
  transform: translateY(-50%) !important;
  border-radius: 50% !important;
  opacity: .68 !important;
}

#platformView .platform-module-card li:nth-child(odd) {
  background: color-mix(in srgb, var(--accent, #079fc7) 7%, transparent) !important;
}

body.ui-modern[data-view="platform"] #platformView .platform-module-card li:nth-child(odd) {
  background: rgba(154, 207, 238, .085) !important;
}

#platformView .platform-module-card li:hover,
#platformView .platform-module-card li:focus-within {
  transform: translateX(4px) !important;
  background: color-mix(in srgb, var(--accent, #079fc7) 15%, transparent) !important;
}

@media (max-width: 1380px) and (min-width: 1001px) {
  #platformView .portal-modern-topbar,
  body[data-view="platform"] #platformView .portal-modern-topbar {
    grid-template-columns: minmax(205px, .84fr) minmax(452px, 1.5fr) minmax(165px, .64fr) !important;
  }

  #platformView .portal-modern-brand img,
  body[data-view="platform"] #platformView .portal-modern-brand img {
    width: clamp(205px, 16vw, 255px) !important;
  }

  #platformView .portal-module-showcase,
  body[data-view="platform"] #platformView .portal-module-showcase {
    grid-template:
      "hero intro" minmax(316px, 1fr)
      "rail rail" 468px
      / minmax(0, 1fr) minmax(426px, .92fr) !important;
    column-gap: clamp(35px, 4.6vw, 65px) !important;
  }
}

@media (max-height: 820px) and (min-width: 1001px) {
  #platformView .portal-module-showcase,
  body[data-view="platform"] #platformView .portal-module-showcase {
    min-height: 856px !important;
    grid-template:
      "hero intro" 348px
      "rail rail" 490px
      / minmax(0, 1fr) minmax(426px, .92fr) !important;
  }

  #platformView .portal-module-rail,
  body[data-view="platform"] #platformView .portal-module-rail {
    min-height: 490px !important;
    height: 490px !important;
  }
}

@media (max-width: 1000px) {
  #platformView .portal-modern-topbar,
  body[data-view="platform"] #platformView .portal-modern-topbar {
    grid-template-columns: 1fr !important;
    gap: 6px;
  }

  #platformView .portal-modern-brand,
  #platformView .portal-modern-actions { justify-self: center; }
  #platformView .portal-module-showcase,
  body[data-view="platform"] #platformView .portal-module-showcase {
    grid-template:
      "hero" auto
      "intro" auto
      "rail" 410px
      / minmax(0, 1fr) !important;
  }
  #platformView .portal-showcase-copy { margin-left: 0 !important; }
  #platformView .portal-intro-stage { justify-self: center; }
}

/* v41：首屏三段式布局与低高度完整轨道。此层必须放在所有历史门户规则之后。 */
body:not(.ui-modern)[data-view="platform"],
body.ui-modern[data-view="platform"] {
  min-height: 100dvh !important;
  height: auto !important;
  overflow-y: auto !important;
}

body:not(.ui-modern)[data-view="platform"] .workspace,
body:not(.ui-modern)[data-view="platform"] .workspace > .page-view,
body:not(.ui-modern)[data-view="platform"] #platformView.platform-portal,
body.ui-modern[data-view="platform"] .workspace,
body.ui-modern[data-view="platform"] .workspace > .page-view,
body.ui-modern[data-view="platform"] #platformView.platform-portal {
  min-height: 100dvh !important;
  height: auto !important;
  overflow: visible !important;
}

/* 照片保留为工程氛围，不参与正文的视觉竞争。 */
body:not(.ui-modern)[data-view="platform"] #platformView.platform-portal {
  min-height: 100dvh !important;
  padding: clamp(16px, 1.65vw, 30px) clamp(28px, 4vw, 76px) 0 !important;
  background:
    linear-gradient(104deg, rgba(250, 254, 255, .93) 0%, rgba(239, 249, 255, .90) 49%, rgba(213, 241, 252, .86) 100%),
    url("/figure/首页背景图.jpg") center center / cover no-repeat !important;
}

body:not(.ui-modern)[data-view="platform"] #platformView.platform-portal::before {
  opacity: .36 !important;
}

body.ui-modern[data-view="platform"] #platformView.platform-portal::before {
  opacity: .72 !important;
}

/* 透明导航及放大后的企业标识，两个主题采用同一几何布局。 */
#platformView .portal-modern-topbar,
body[data-view="platform"] #platformView .portal-modern-topbar {
  grid-template-columns: minmax(260px, .78fr) minmax(560px, 1.45fr) minmax(170px, .52fr) !important;
  min-height: 102px !important;
  padding: 0 clamp(10px, 1.2vw, 22px) !important;
  border-color: transparent !important;
  background: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}

#platformView .portal-modern-brand img,
body[data-view="platform"] #platformView .portal-modern-brand img {
  width: clamp(238px, 19.5vw, 326px) !important;
  max-height: 94px !important;
  object-fit: contain !important;
}

#platformView .portal-modern-module-nav,
body[data-view="platform"] #platformView .portal-modern-module-nav {
  gap: clamp(22px, 2.35vw, 46px) !important;
}

#platformView .portal-modern-module-nav button,
body[data-view="platform"] #platformView .portal-modern-module-nav button {
  min-height: 64px !important;
  padding: 13px 4px !important;
  font-size: clamp(17px, 1.18vw, 21px) !important;
}

#platformView .portal-modern-actions a,
#platformView .portal-modern-actions button,
body[data-view="platform"] #platformView .portal-modern-actions a,
body[data-view="platform"] #platformView .portal-modern-actions button {
  min-height: 54px !important;
  font-size: clamp(15px, 1.04vw, 19px) !important;
}

/* 标题与模块介绍共享中部基线；轨道独立锚定在页面底部。 */
#platformView .portal-module-showcase,
body[data-view="platform"] #platformView .portal-module-showcase {
  grid-template:
    "hero intro" minmax(320px, 1fr)
    "rail rail" 392px
    / minmax(0, 1.04fr) minmax(500px, .96fr) !important;
  min-height: calc(100dvh - 102px) !important;
  height: auto !important;
  align-items: stretch !important;
  padding: clamp(2px, 1.2vh, 14px) clamp(6px, 1.45vw, 26px) 0 !important;
  gap: clamp(16px, 2vw, 32px) clamp(36px, 5vw, 92px) !important;
}

#platformView .portal-showcase-copy,
#platformView .portal-module-intro,
body[data-view="platform"] #platformView .portal-showcase-copy,
body[data-view="platform"] #platformView .portal-module-intro {
  align-self: center !important;
  transform: none !important;
}

#platformView .portal-showcase-copy,
body[data-view="platform"] #platformView .portal-showcase-copy {
  width: min(100%, 760px) !important;
  margin-left: clamp(22px, 5vw, 112px) !important;
}

#platformView .portal-modern-hero-copy > span,
body[data-view="platform"] #platformView .portal-modern-hero-copy > span {
  margin-bottom: 18px !important;
  font-size: clamp(32px, 2.55vw, 48px) !important;
  line-height: 1.1 !important;
  letter-spacing: .12em !important;
  white-space: nowrap !important;
}

#platformView .portal-modern-hero-copy h3,
body[data-view="platform"] #platformView .portal-modern-hero-copy h3 {
  font-size: clamp(53px, 4.4vw, 82px) !important;
  line-height: 1.06 !important;
  letter-spacing: -.065em !important;
  white-space: nowrap !important;
}

#platformView .portal-modern-hero-copy p,
body[data-view="platform"] #platformView .portal-modern-hero-copy p {
  margin-top: 26px !important;
  font-size: clamp(13px, 1vw, 18px) !important;
  letter-spacing: .15em !important;
}

#platformView .portal-module-intro,
body[data-view="platform"] #platformView .portal-module-intro {
  min-height: clamp(292px, 30vh, 352px) !important;
  padding: clamp(30px, 3.4vw, 58px) clamp(32px, 3.6vw, 64px) !important;
}

#platformView .portal-module-intro .portal-intro-index,
body[data-view="platform"] #platformView .portal-module-intro .portal-intro-index {
  font-size: clamp(72px, 5.45vw, 104px) !important;
}

#platformView .portal-module-intro .portal-intro-copy h4,
body[data-view="platform"] #platformView .portal-module-intro .portal-intro-copy h4 {
  font-size: clamp(31px, 2.45vw, 47px) !important;
}

#platformView .portal-module-intro .portal-intro-copy strong,
body[data-view="platform"] #platformView .portal-module-intro .portal-intro-copy strong {
  font-size: clamp(16px, 1.22vw, 22px) !important;
}

#platformView .portal-modern-intro-description,
body[data-view="platform"] #platformView .portal-modern-intro-description {
  font-size: clamp(15px, 1.08vw, 19px) !important;
  line-height: 1.74 !important;
}

/* 卡片为单列快捷入口；视觉弧度只影响垂直位置，不参与居中计算。 */
#platformView .portal-module-rail,
body[data-view="platform"] #platformView .portal-module-rail {
  align-self: end !important;
  min-height: 392px !important;
  height: 392px !important;
  padding-top: 70px !important;
  padding-bottom: 20px !important;
  scroll-snap-type: none !important;
  scrollbar-width: none !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
}

#platformView .portal-module-rail::-webkit-scrollbar,
body[data-view="platform"] #platformView .portal-module-rail::-webkit-scrollbar {
  display: none !important;
}

#platformView .platform-module-card,
body[data-view="platform"] #platformView .platform-module-card {
  flex-basis: clamp(306px, 20.7vw, 382px) !important;
  min-height: 286px !important;
  padding: 18px 20px 19px !important;
  transform: translateY(26px) scale(.83) !important;
  transform-origin: 50% 100% !important;
}

#platformView .platform-module-card.portal-rail-near,
body[data-view="platform"] #platformView .platform-module-card.portal-rail-near {
  transform: translateY(10px) scale(.94) !important;
}

#platformView .platform-module-card.portal-rail-active,
body[data-view="platform"] #platformView .platform-module-card.portal-rail-active {
  transform: translateY(-18px) scale(1.06) !important;
}

#platformView .platform-module-card .module-card-head {
  min-height: 50px !important;
  padding-right: 72px !important;
}

#platformView .platform-module-card h3,
body[data-view="platform"] #platformView .platform-module-card h3 {
  font-size: clamp(20px, 1.35vw, 26px) !important;
}

#platformView .platform-module-card .module-open {
  top: 18px !important;
  right: 18px !important;
  font-size: 15px !important;
}

#platformView .platform-module-card ul,
body[data-view="platform"] #platformView .platform-module-card ul {
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 5px !important;
  margin-top: 14px !important;
}

#platformView .platform-module-card li,
body[data-view="platform"] #platformView .platform-module-card li {
  min-height: 21px !important;
  padding-left: 10px !important;
  overflow: visible !important;
  font-size: clamp(15px, 1.01vw, 17px) !important;
  line-height: 1.32 !important;
  white-space: normal !important;
}

#platformView .platform-module-card li::before {
  top: .68em !important;
  width: 3px !important;
  height: 3px !important;
  opacity: .5 !important;
}

@media (max-height: 820px) and (min-width: 1001px) {
  body:not(.ui-modern)[data-view="platform"],
  body.ui-modern[data-view="platform"] {
    overflow-y: auto !important;
  }

  body:not(.ui-modern)[data-view="platform"] .workspace,
  body:not(.ui-modern)[data-view="platform"] .workspace > .page-view,
  body:not(.ui-modern)[data-view="platform"] #platformView.platform-portal,
  body.ui-modern[data-view="platform"] .workspace,
  body.ui-modern[data-view="platform"] .workspace > .page-view,
  body.ui-modern[data-view="platform"] #platformView.platform-portal {
    min-height: 100dvh !important;
    height: auto !important;
    overflow: visible !important;
  }

  #platformView .portal-module-showcase,
  body[data-view="platform"] #platformView .portal-module-showcase {
    min-height: 790px !important;
    grid-template:
      "hero intro" minmax(344px, auto)
      "rail rail" 410px
      / minmax(0, 1.04fr) minmax(470px, .96fr) !important;
  }

  #platformView .portal-module-rail,
  body[data-view="platform"] #platformView .portal-module-rail {
    min-height: 410px !important;
    height: 410px !important;
    padding-top: 74px !important;
  }
}

@media (max-width: 1300px) and (min-width: 1001px) {
  #platformView .portal-modern-topbar,
  body[data-view="platform"] #platformView .portal-modern-topbar {
    grid-template-columns: 215px minmax(500px, 1fr) 145px !important;
  }

  #platformView .portal-modern-hero-copy h3,
  body[data-view="platform"] #platformView .portal-modern-hero-copy h3 {
    font-size: clamp(49px, 4.4vw, 60px) !important;
  }
}

/* v43 - 首屏比例与卡片阅读性收敛：主视觉略收、介绍同轴，轨道保留完整的单列快捷入口。 */
body:not(.ui-modern)[data-view="platform"] #platformView.platform-portal {
  background:
    linear-gradient(104deg, rgba(250, 254, 255, .97) 0%, rgba(239, 249, 255, .945) 49%, rgba(213, 241, 252, .92) 100%),
    url("/figure/首页背景图.jpg") center center / cover no-repeat !important;
}

body.ui-modern[data-view="platform"] #platformView.platform-portal {
  background:
    linear-gradient(105deg, rgba(1, 21, 47, .95) 0%, rgba(4, 48, 89, .91) 51%, rgba(4, 24, 54, .89) 100%),
    url("/figure/首页背景图.jpg") center center / cover no-repeat !important;
}

#platformView .portal-modern-topbar,
body[data-view="platform"] #platformView .portal-modern-topbar {
  min-height: 108px !important;
}

#platformView .portal-modern-module-nav button,
body[data-view="platform"] #platformView .portal-modern-module-nav button {
  min-height: 68px !important;
  font-size: clamp(18px, 1.25vw, 22px) !important;
}

/* 同一视觉基线：两侧内容尺寸略收，避免首屏头重脚轻。 */
#platformView .portal-module-showcase,
body[data-view="platform"] #platformView .portal-module-showcase {
  grid-template:
    "hero intro" minmax(300px, 1fr)
    "rail rail" 426px
    / minmax(0, 1.04fr) minmax(470px, .96fr) !important;
  min-height: calc(100dvh - 108px) !important;
  gap: clamp(14px, 1.8vw, 28px) clamp(28px, 4.2vw, 76px) !important;
}

#platformView .portal-modern-hero-copy > span,
body[data-view="platform"] #platformView .portal-modern-hero-copy > span {
  margin-bottom: 15px !important;
  font-size: clamp(29px, 2.25vw, 42px) !important;
}

#platformView .portal-modern-hero-copy h3,
body[data-view="platform"] #platformView .portal-modern-hero-copy h3 {
  font-size: clamp(44px, 3.55vw, 68px) !important;
  letter-spacing: -.055em !important;
}

#platformView .portal-modern-hero-copy p,
body[data-view="platform"] #platformView .portal-modern-hero-copy p {
  margin-top: 22px !important;
  font-size: clamp(12px, .9vw, 16px) !important;
  line-height: 1.58 !important;
}

#platformView .portal-module-intro,
body[data-view="platform"] #platformView .portal-module-intro {
  min-height: clamp(268px, 27vh, 318px) !important;
  padding: clamp(26px, 2.9vw, 46px) clamp(30px, 3.1vw, 52px) !important;
}

#platformView .portal-module-intro .portal-intro-index,
body[data-view="platform"] #platformView .portal-module-intro .portal-intro-index {
  font-size: clamp(64px, 4.85vw, 90px) !important;
}

#platformView .portal-module-intro .portal-intro-copy h4,
body[data-view="platform"] #platformView .portal-module-intro .portal-intro-copy h4 {
  font-size: clamp(27px, 2.15vw, 41px) !important;
}

#platformView .portal-module-intro .portal-intro-copy strong,
body[data-view="platform"] #platformView .portal-module-intro .portal-intro-copy strong {
  font-size: clamp(15px, 1.08vw, 19px) !important;
}

#platformView .portal-modern-intro-description,
body[data-view="platform"] #platformView .portal-modern-intro-description {
  font-size: clamp(14px, .98vw, 17px) !important;
  line-height: 1.68 !important;
}

/* 弧形轨道贴近底部；卡片保留足够高度呈现最多七个快捷入口。 */
#platformView .portal-module-rail,
body[data-view="platform"] #platformView .portal-module-rail {
  min-height: 426px !important;
  height: 426px !important;
  padding-top: 61px !important;
  padding-bottom: 18px !important;
  overscroll-behavior-x: contain !important;
}

#platformView .platform-module-card,
body[data-view="platform"] #platformView .platform-module-card {
  flex-basis: clamp(322px, 21.2vw, 388px) !important;
  min-height: 326px !important;
  padding: 19px 22px 20px !important;
  cursor: pointer !important;
  transform: translateY(27px) scale(.82) !important;
}

#platformView .platform-module-card.portal-rail-near,
body[data-view="platform"] #platformView .platform-module-card.portal-rail-near {
  transform: translateY(10px) scale(.94) !important;
}

#platformView .platform-module-card.portal-rail-active,
body[data-view="platform"] #platformView .platform-module-card.portal-rail-active {
  transform: translateY(-19px) scale(1.055) !important;
}

#platformView .platform-module-card .module-card-head {
  min-height: 54px !important;
  gap: 10px !important;
  padding-right: 70px !important;
}

#platformView .platform-module-card .module-icon {
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  font-size: 12px !important;
}

#platformView .platform-module-card h3,
body[data-view="platform"] #platformView .platform-module-card h3 {
  font-size: clamp(21px, 1.42vw, 26px) !important;
  line-height: 1.25 !important;
}

/* 括号中的快捷数量与模块名称同级，避免被误读为次要统计数字。 */
#platformView .platform-module-card h3 em,
body[data-view="platform"] #platformView .platform-module-card h3 em {
  display: inline !important;
  margin-left: .16em !important;
  color: inherit !important;
  font: inherit !important;
  white-space: nowrap !important;
}

#platformView .platform-module-card ul,
body[data-view="platform"] #platformView .platform-module-card ul {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 7px !important;
  margin-top: 15px !important;
}

#platformView .platform-module-card li,
body[data-view="platform"] #platformView .platform-module-card li {
  min-height: 25px !important;
  padding: 2px 4px 2px 14px !important;
  border-radius: 6px !important;
  cursor: pointer !important;
  font-size: clamp(16px, 1.08vw, 18px) !important;
  line-height: 1.48 !important;
  transition: color .18s ease, background-color .18s ease, transform .18s ease !important;
}

#platformView .platform-module-card li::before,
body[data-view="platform"] #platformView .platform-module-card li::before {
  top: .84em !important;
  width: 4px !important;
  height: 4px !important;
  border-radius: 50% !important;
  opacity: .52 !important;
}

#platformView .platform-module-card li:hover,
#platformView .platform-module-card li:focus-within {
  background: color-mix(in srgb, var(--accent, #079fc7) 10%, transparent) !important;
  transform: translateX(3px) !important;
}

@media (max-width: 1300px) and (min-width: 1001px) {
  #platformView .portal-modern-module-nav,
  body[data-view="platform"] #platformView .portal-modern-module-nav {
    gap: 16px !important;
  }

  #platformView .portal-modern-hero-copy h3,
  body[data-view="platform"] #platformView .portal-modern-hero-copy h3 {
    font-size: 45px !important;
  }
}

@media (max-height: 820px) and (min-width: 1001px) {
  #platformView .portal-module-showcase,
  body[data-view="platform"] #platformView .portal-module-showcase {
    min-height: 806px !important;
    grid-template:
      "hero intro" minmax(340px, auto)
      "rail rail" 426px
      / minmax(0, 1.04fr) minmax(450px, .96fr) !important;
  }
}

/* v47 - 本文件最后的门户收敛层：必须在历史 v42-v45 覆盖之后生效。 */
#platformView .portal-modern-topbar,
body[data-view="platform"] #platformView .portal-modern-topbar {
  grid-template-columns: clamp(248px, 22vw, 352px) minmax(480px, 1fr) clamp(180px, 15vw, 252px) !important;
  min-height: clamp(94px, 8.2vh, 120px) !important;
  padding-inline: clamp(18px, 2.15vw, 42px) !important;
  align-items: center !important;
}

#platformView .portal-modern-brand,
body[data-view="platform"] #platformView .portal-modern-brand {
  min-width: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
}

#platformView .portal-modern-brand img,
body[data-view="platform"] #platformView .portal-modern-brand img {
  width: clamp(228px, 17vw, 330px) !important;
  max-height: clamp(34px, 4.25vh, 54px) !important;
  object-fit: contain !important;
  filter: none !important;
  opacity: 1 !important;
}

body.ui-modern[data-view="platform"] #platformView .portal-modern-brand {
  padding: 7px 11px !important;
  border-radius: 10px !important;
  background: rgba(255, 255, 255, .94) !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .18) !important;
}

#platformView .portal-modern-module-nav,
body[data-view="platform"] #platformView .portal-modern-module-nav {
  min-width: 0 !important;
  justify-content: center !important;
  gap: clamp(14px, 1.55vw, 30px) !important;
}

#platformView .portal-modern-module-nav button,
body[data-view="platform"] #platformView .portal-modern-module-nav button {
  min-height: clamp(52px, 5.2vh, 66px) !important;
  padding-inline: clamp(3px, .34vw, 8px) !important;
  font-size: clamp(16px, 1.12vw, 22px) !important;
  line-height: 1 !important;
}

#platformView .portal-modern-actions,
body[data-view="platform"] #platformView .portal-modern-actions {
  min-width: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: clamp(9px, .82vw, 16px) !important;
  white-space: nowrap !important;
}

#platformView .portal-modern-actions > *,
body[data-view="platform"] #platformView .portal-modern-actions > * {
  min-height: clamp(42px, 4.4vh, 54px) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  font-size: clamp(15px, 1vw, 19px) !important;
}

body:not(.ui-modern)[data-view="platform"] #platformView.platform-portal {
  background:
    linear-gradient(104deg, rgba(250, 254, 255, .945) 0%, rgba(241, 250, 255, .915) 49%, rgba(212, 241, 252, .89) 100%),
    url("/figure/首页背景图.jpg") center center / cover no-repeat !important;
}

body.ui-modern[data-view="platform"] #platformView.platform-portal {
  background:
    linear-gradient(105deg, rgba(1, 21, 47, .905) 0%, rgba(4, 48, 89, .875) 51%, rgba(4, 24, 54, .855) 100%),
    url("/figure/首页背景图.jpg") center center / cover no-repeat !important;
}

#platformView .portal-module-showcase,
body[data-view="platform"] #platformView .portal-module-showcase {
  grid-template:
    "hero intro" minmax(clamp(306px, 38vh, 456px), 1fr)
    "rail rail" clamp(450px, 47vh, 510px)
    / minmax(0, 1.02fr) minmax(clamp(490px, 39vw, 690px), .98fr) !important;
  column-gap: clamp(72px, 8.6vw, 172px) !important;
  row-gap: clamp(10px, 1.4vh, 20px) !important;
  min-height: calc(100dvh - clamp(94px, 8.2vh, 120px)) !important;
}

#platformView .portal-modern-hero-copy,
body[data-view="platform"] #platformView .portal-modern-hero-copy,
#platformView .portal-intro-stage,
body[data-view="platform"] #platformView .portal-intro-stage {
  align-self: center !important;
}

#platformView .portal-modern-hero-copy { padding-left: clamp(10px, 1.8vw, 36px) !important; }

#platformView .portal-modern-hero-copy > span,
body[data-view="platform"] #platformView .portal-modern-hero-copy > span {
  font-size: clamp(31px, 2.55vw, 46px) !important;
  margin-bottom: clamp(12px, 1.35vh, 19px) !important;
}

#platformView .portal-modern-hero-copy h3,
body[data-view="platform"] #platformView .portal-modern-hero-copy h3 {
  font-size: clamp(46px, 3.8vw, 74px) !important;
  letter-spacing: -.045em !important;
}

#platformView .portal-modern-hero-copy p,
body[data-view="platform"] #platformView .portal-modern-hero-copy p {
  margin-top: clamp(17px, 2vh, 28px) !important;
  font-size: clamp(12px, .93vw, 17px) !important;
  max-width: 49ch !important;
}

#platformView .portal-module-intro,
body[data-view="platform"] #platformView .portal-module-intro {
  min-height: clamp(274px, 29vh, 342px) !important;
  padding: clamp(28px, 3vw, 48px) clamp(30px, 3.3vw, 58px) !important;
}

#platformView .portal-intro-stage .portal-rail-edge-prev,
#platformView .portal-intro-stage .portal-rail-edge-next { z-index: 4 !important; opacity: 0 !important; pointer-events: none !important; }

#platformView .portal-intro-stage:hover .portal-rail-edge-prev,
#platformView .portal-intro-stage:hover .portal-rail-edge-next,
#platformView .portal-intro-stage .portal-rail-edge-prev:focus-visible,
#platformView .portal-intro-stage .portal-rail-edge-next:focus-visible { opacity: 1 !important; pointer-events: auto !important; }

#platformView .portal-module-rail,
body[data-view="platform"] #platformView .portal-module-rail {
  min-height: clamp(450px, 47vh, 510px) !important;
  height: clamp(450px, 47vh, 510px) !important;
  padding-top: clamp(84px, 9vh, 104px) !important;
  padding-bottom: clamp(14px, 1.8vh, 24px) !important;
  scrollbar-width: none !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
}

#platformView .portal-module-rail::-webkit-scrollbar,
body[data-view="platform"] #platformView .portal-module-rail::-webkit-scrollbar { display: none !important; }

#platformView .platform-module-card,
body[data-view="platform"] #platformView .platform-module-card {
  flex: 0 0 clamp(432px, 31.5vw, 492px) !important;
  min-height: clamp(370px, 38vh, 416px) !important;
  padding: clamp(19px, 1.5vw, 25px) clamp(21px, 1.8vw, 30px) clamp(20px, 1.55vw, 26px) !important;
  transform: translateY(36px) scale(.74) !important;
  transform-origin: 50% 100% !important;
}

#platformView .platform-module-card.portal-rail-near,
body[data-view="platform"] #platformView .platform-module-card.portal-rail-near { transform: translateY(17px) scale(.89) !important; }

#platformView .platform-module-card.portal-rail-active,
body[data-view="platform"] #platformView .platform-module-card.portal-rail-active { transform: translateY(-20px) scale(1.03) !important; }

#platformView .platform-module-card .module-card-head,
body[data-view="platform"] #platformView .platform-module-card .module-card-head {
  min-height: clamp(44px, 4.9vh, 56px) !important;
  display: grid !important;
  grid-template-columns: clamp(34px, 2.3vw, 42px) minmax(0, 1fr) auto !important;
  column-gap: clamp(8px, .72vw, 13px) !important;
  align-items: center !important;
  padding: 0 !important;
}

#platformView .platform-module-card .module-icon,
body[data-view="platform"] #platformView .platform-module-card .module-icon {
  width: clamp(34px, 2.3vw, 42px) !important;
  height: clamp(34px, 2.3vw, 42px) !important;
  min-width: clamp(34px, 2.3vw, 42px) !important;
  font-size: clamp(11px, .78vw, 13px) !important;
}

#platformView .platform-module-card h3,
body[data-view="platform"] #platformView .platform-module-card h3 {
  min-width: 0 !important;
  margin: 0 !important;
  white-space: nowrap !important;
  overflow: visible !important;
  text-overflow: clip !important;
  font-size: clamp(19px, 1.42vw, 26px) !important;
  line-height: 1.14 !important;
  letter-spacing: -.04em !important;
}

#platformView .platform-module-card h3 .module-card-title,
body[data-view="platform"] #platformView .platform-module-card h3 .module-card-title { white-space: nowrap !important; }

#platformView .platform-module-card h3 em,
body[data-view="platform"] #platformView .platform-module-card h3 em {
  display: inline !important;
  margin-left: .14em !important;
  white-space: nowrap !important;
  font: inherit !important;
}

#platformView .platform-module-card .module-open,
body[data-view="platform"] #platformView .platform-module-card .module-open {
  position: static !important;
  min-width: clamp(72px, 5vw, 90px) !important;
  width: auto !important;
  height: clamp(30px, 3.7vh, 39px) !important;
  margin: 0 !important;
  padding-inline: clamp(7px, .68vw, 12px) !important;
  border-radius: 8px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  white-space: nowrap !important;
  font-size: clamp(14px, .92vw, 17px) !important;
  line-height: 1 !important;
}

#platformView .platform-module-card ul,
body[data-view="platform"] #platformView .platform-module-card ul {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: clamp(7px, .92vh, 11px) !important;
  margin-top: clamp(17px, 1.85vh, 24px) !important;
}

#platformView .platform-module-card li,
body[data-view="platform"] #platformView .platform-module-card li {
  min-height: clamp(27px, 3vh, 34px) !important;
  padding: clamp(4px, .48vh, 6px) clamp(6px, .58vw, 10px) clamp(4px, .48vh, 6px) clamp(18px, 1.35vw, 24px) !important;
  border-radius: 7px !important;
  font-size: clamp(15px, 1.03vw, 19px) !important;
  line-height: 1.36 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

#platformView .platform-module-card li::before,
body[data-view="platform"] #platformView .platform-module-card li::before {
  top: 50% !important;
  left: clamp(8px, .7vw, 12px) !important;
  width: 4px !important;
  height: 4px !important;
  transform: translateY(-50%) !important;
  opacity: .56 !important;
}

#platformView .platform-module-card li:nth-child(odd),
body[data-view="platform"] #platformView .platform-module-card li:nth-child(odd) { background: color-mix(in srgb, var(--accent, #079fc7) 8%, transparent) !important; }

#platformView .platform-module-card li:hover,
#platformView .platform-module-card li:focus-visible { background: color-mix(in srgb, var(--accent, #079fc7) 17%, transparent) !important; transform: translateX(4px) !important; }

/* v50 - 预留平台名称的完整单行宽度，避免在主视觉列内被裁切。 */
#platformView .portal-modern-hero-copy h3,
body[data-view="platform"] #platformView .portal-modern-hero-copy h3 {
  font-size: clamp(39px, 2.9vw, 56px) !important;
}

@media (max-width: 1380px) and (min-width: 1001px) {
  #platformView .portal-modern-topbar,
  body[data-view="platform"] #platformView .portal-modern-topbar { grid-template-columns: 230px minmax(470px, 1fr) 178px !important; }
  #platformView .portal-module-showcase,
  body[data-view="platform"] #platformView .portal-module-showcase {
    grid-template: "hero intro" minmax(306px, 1fr) "rail rail" 466px / minmax(0, 1fr) minmax(450px, .94fr) !important;
    column-gap: 58px !important;
  }
}

@media (max-height: 820px) and (min-width: 1001px) {
  #platformView .portal-module-showcase,
  body[data-view="platform"] #platformView .portal-module-showcase {
    min-height: 836px !important;
    grid-template: "hero intro" 348px "rail rail" 468px / minmax(0, 1fr) minmax(450px, .94fr) !important;
  }
}
