/* ============================================================
   应用市场 PC 设计系统  v4.0.0
   CRMEB Market 系 · jd- 前缀
   ============================================================ */

:root {
  --jd-red: #3478F6;
  --jd-red-hover: #1D5FE0;
  --jd-orange: #FF6A00;
  --jd-price: #FF4D4F;
  --jd-bg: #F4F6FB;
  --jd-white: #FFFFFF;
  --jd-text: #1F2329;
  --jd-muted: #8C8C8C;
  --jd-border: #EBEEF5;
  --jd-navy: #1B2330;
  --jd-container: 1200px;
  --jd-radius: 8px;
  --jd-shadow: 0 2px 12px rgba(31, 35, 41, 0.06);
  --jd-shadow-hover: 0 8px 24px rgba(52, 120, 246, 0.12);
}

*,
*::before,
*::after { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
}

body {
  font-family: "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
  font-size: 14px;
  line-height: 1.6;
  color: var(--jd-text);
  background: var(--jd-bg);
  min-width: 1200px;
}

a { color: inherit; text-decoration: none; }
a:hover { color: var(--jd-red); }
img { max-width: 100%; border: 0; vertical-align: middle; }
ul, ol, dl, dt, dd, h1, h2, h3, h4, h5, h6, p, figure {
  margin: 0;
  padding: 0;
  list-style: none;
  font-weight: 400;
}
button, input, select { font-family: inherit; }
button { cursor: pointer; }
em, i { font-style: normal; }

.jd-container {
  width: var(--jd-container);
  margin: 0 auto;
}

/* ---- 按钮 ---- */
.jd-btn {
  display: inline-block;
  height: 36px;
  line-height: 34px;
  padding: 0 18px;
  border-radius: 4px;
  border: 1px solid transparent;
  font-size: 14px;
  text-align: center;
  transition: all .2s;
}
.jd-btn--primary {
  background: var(--jd-red);
  color: #fff !important;
  border-color: var(--jd-red);
}
.jd-btn--primary:hover { background: var(--jd-red-hover); border-color: var(--jd-red-hover); }
.jd-btn--ghost {
  background: #fff;
  color: var(--jd-red);
  border-color: var(--jd-red);
}
.jd-btn--ghost:hover { background: #F0F6FF; }
.jd-btn--orange {
  background: var(--jd-orange);
  color: #fff !important;
  border-color: var(--jd-orange);
}
.jd-btn--orange:hover { opacity: .92; }
.jd-btn--lg { height: 44px; line-height: 42px; padding: 0 28px; font-size: 16px; }

/* ---- 面包屑 ---- */
.jd-crumb {
  padding: 14px 0;
  font-size: 12px;
  color: var(--jd-muted);
}
.jd-crumb a { color: var(--jd-muted); }
.jd-crumb a:hover { color: var(--jd-red); }

/* ---- 分区标题 ---- */
.jd-sec__head {
  display: flex;
  align-items: center;
  margin-bottom: 16px;
}
.jd-sec__head h2,
.jd-sec__title {
  font-size: 20px;
  font-weight: 700;
  color: var(--jd-text);
  padding-left: 10px;
  border-left: 3px solid var(--jd-red);
  line-height: 1.2;
  margin-right: auto;
}
.jd-more {
  font-size: 13px;
  color: var(--jd-muted);
}
.jd-more:hover { color: var(--jd-red); }

/* ============================================================
   顶栏
   ============================================================ */
.jd-header {
  background: var(--jd-white);
  box-shadow: 0 1px 0 var(--jd-border);
  position: relative;
  z-index: 50;
}
.jd-header__bar {
  height: 72px;
}
.jd-header__inner {
  height: 72px;
  display: flex;
  align-items: center;
}
.jd-logo {
  flex: 0 0 180px;
  display: flex;
  align-items: center;
  height: 50px;
}
.jd-logo img {
  max-height: 48px;
  max-width: 170px;
  width: auto;
}
.jd-search {
  flex: 1;
  margin: 0 36px;
  max-width: 560px;
}
.jd-search form {
  display: flex;
  height: 40px;
  border: 2px solid var(--jd-red);
  border-radius: 20px;
  overflow: hidden;
  background: #fff;
}
.jd-search input[type="text"] {
  flex: 1;
  border: 0;
  outline: none;
  padding: 0 16px;
  font-size: 13px;
  background: transparent;
}
.jd-search input[type="submit"],
.jd-search button[type="submit"] {
  width: 88px;
  border: 0;
  background: var(--jd-red);
  color: #fff;
  font-size: 14px;
  cursor: pointer;
}
.jd-search input[type="submit"]:hover,
.jd-search button[type="submit"]:hover {
  background: var(--jd-red-hover);
}
.jd-search__hot {
  margin-top: 6px;
  font-size: 12px;
  color: var(--jd-muted);
  white-space: nowrap;
  overflow: hidden;
  height: 18px;
}
.jd-search__hot a {
  color: var(--jd-muted);
  margin-right: 10px;
}
.jd-search__hot a:hover { color: var(--jd-red); }

.jd-header__actions {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  white-space: nowrap;
}
.jd-header__actions a {
  color: var(--jd-text);
  padding: 0 8px;
}
.jd-header__user {
  display: flex;
  align-items: center;
  gap: 4px;
}
.jd-header__user a { color: #555; }
.jd-cart {
  position: relative;
  display: inline-flex;
  align-items: center;
  height: 36px;
  padding: 0 12px;
  border: 1px solid var(--jd-border);
  border-radius: 18px;
  background: #fff;
}
.jd-cart:hover {
  border-color: var(--jd-red);
  color: var(--jd-red);
}
.jd-cart span {
  min-width: 16px;
  height: 16px;
  line-height: 16px;
  margin-left: 4px;
  padding: 0 4px;
  border-radius: 8px;
  background: var(--jd-price);
  color: #fff;
  font-size: 11px;
  text-align: center;
}
.jd-header__enter {
  height: 36px;
  line-height: 36px;
  padding: 0 14px;
  border-radius: 18px;
  background: var(--jd-red);
  color: #fff !important;
}
.jd-header__enter:hover { background: var(--jd-red-hover); color: #fff !important; }

/* 分类导航 */
.jd-nav {
  background: #fff;
  border-top: 1px solid var(--jd-border);
}
.jd-nav__inner {
  display: flex;
  align-items: stretch;
  height: 46px;
}
.jd-nav__list {
  display: flex;
  flex: 1;
  height: 46px;
}
.jd-nav__list > li {
  position: relative;
  height: 46px;
}
.jd-nav__list > li > a {
  display: block;
  padding: 0 18px;
  line-height: 46px;
  font-size: 15px;
  color: var(--jd-text);
}
.jd-nav__list > li > a:hover,
.jd-nav__list > li:hover > a {
  color: var(--jd-red);
}
.jd-nav__home {
  font-weight: 700;
  color: var(--jd-red) !important;
}
.jd-nav__sub {
  display: none;
  position: absolute;
  left: 0;
  top: 46px;
  min-width: 160px;
  background: #fff;
  box-shadow: var(--jd-shadow-hover);
  border-radius: 0 0 8px 8px;
  padding: 8px 0;
  z-index: 80;
}
.jd-nav__list > li:hover .jd-nav__sub { display: block; }
.jd-nav__sub a {
  display: block;
  padding: 8px 18px;
  font-size: 13px;
  color: #555;
}
.jd-nav__sub a:hover {
  background: #F0F6FF;
  color: var(--jd-red);
}

/* ============================================================
   页脚
   ============================================================ */
.jd-footer { margin-top: 40px; }
.jd-footer__service {
  background: #fff;
  border-top: 1px solid var(--jd-border);
}
.jd-footer__service-inner {
  display: flex;
  padding: 28px 0;
}
.jd-footer__service-item {
  flex: 1;
  text-align: center;
  border-right: 1px solid var(--jd-border);
}
.jd-footer__service-item:last-child { border-right: 0; }
.jd-footer__service-item strong {
  display: block;
  font-size: 16px;
  font-weight: 700;
  color: var(--jd-text);
}
.jd-footer__service-item span {
  font-size: 12px;
  color: var(--jd-muted);
}
.jd-footer__links {
  background: #fff;
  border-top: 1px solid var(--jd-border);
  padding: 32px 0 24px;
}
.jd-footer__links-inner {
  display: flex;
}
.jd-footer__col {
  flex: 1;
}
.jd-footer__col h4 {
  font-size: 14px;
  font-weight: 700;
  margin-bottom: 12px;
}
.jd-footer__col a,
.jd-footer__col p {
  display: block;
  font-size: 13px;
  color: #666;
  line-height: 2;
}
.jd-footer__hotline {
  width: 260px;
  flex: none;
  text-align: right;
}
.jd-footer__hotline .tel {
  font-size: 22px;
  font-weight: 700;
  color: var(--jd-red);
  line-height: 1.3;
}
.jd-footer__hotline .tip {
  font-size: 12px;
  color: var(--jd-muted);
}
.jd-footer__copy {
  background: var(--jd-navy);
  color: #9AA3B2;
  padding: 18px 0 22px;
  text-align: center;
  font-size: 12px;
  line-height: 1.8;
}
.jd-footer__copy a { color: #9AA3B2; }
.jd-footer__copy a:hover { color: #fff; }

#backTop {
  position: fixed;
  right: 24px;
  bottom: 48px;
  width: 44px;
  height: 44px;
  line-height: 44px;
  text-align: center;
  background: #fff;
  color: var(--jd-text);
  border-radius: 8px;
  box-shadow: var(--jd-shadow);
  display: none;
  z-index: 90;
  font-size: 12px;
  cursor: pointer;
}
#backTop:hover { background: var(--jd-red); color: #fff; }

/* ============================================================
   应用卡片
   ============================================================ */
.jd-app-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 16px;
}
.jd-app-grid--4 { grid-template-columns: repeat(4, 1fr); }

.jd-app {
  display: block;
  background: #fff;
  border-radius: var(--jd-radius);
  overflow: hidden;
  box-shadow: var(--jd-shadow);
  transition: transform .2s, box-shadow .2s;
  color: inherit;
}
.jd-app:hover {
  transform: translateY(-4px);
  box-shadow: var(--jd-shadow-hover);
  color: inherit;
}
.jd-app__cover {
  height: 148px;
  overflow: hidden;
  background: #EEF2F8;
}
.jd-app__cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.jd-app__body { padding: 12px 12px 14px; }
.jd-app__title {
  font-size: 14px;
  line-height: 1.45;
  height: 40px;
  overflow: hidden;
  color: var(--jd-text);
}
.jd-app:hover .jd-app__title { color: var(--jd-red); }
.jd-app__price {
  margin-top: 8px;
  color: var(--jd-price);
  font-size: 18px;
  font-weight: 700;
  font-family: Arial, sans-serif;
}
.jd-app__price small {
  margin-left: 6px;
  font-size: 12px;
  font-weight: 400;
  color: var(--jd-muted);
  text-decoration: line-through;
}
.jd-app__meta {
  display: flex;
  justify-content: space-between;
  margin-top: 8px;
  font-size: 12px;
  color: var(--jd-muted);
}

/* ============================================================
   首页
   ============================================================ */
.page-home .jd-main { padding-top: 16px; padding-bottom: 8px; }

.jd-home-top {
  display: flex;
  gap: 12px;
  margin-bottom: 16px;
}
.jd-cate {
  width: 210px;
  flex: none;
  background: #fff;
  border-radius: var(--jd-radius);
  box-shadow: var(--jd-shadow);
  overflow: hidden;
  position: relative;
  z-index: 20;
}
.jd-cate__hd {
  height: 44px;
  line-height: 44px;
  padding: 0 16px;
  background: var(--jd-red);
  color: #fff;
  font-size: 15px;
  font-weight: 700;
}
.jd-cate__list > li {
  position: relative;
  border-bottom: 1px solid #F5F7FA;
}
.jd-cate__list > li > a {
  display: block;
  padding: 10px 16px;
  font-size: 14px;
  color: var(--jd-text);
}
.jd-cate__list > li:hover {
  background: #F0F6FF;
}
.jd-cate__list > li:hover > a { color: var(--jd-red); }
.jd-cate__mega {
  display: none;
  position: absolute;
  left: 210px;
  top: 0;
  width: 420px;
  min-height: 100%;
  background: #fff;
  box-shadow: var(--jd-shadow-hover);
  border-radius: 0 var(--jd-radius) var(--jd-radius) 0;
  padding: 16px 20px;
  z-index: 30;
}
.jd-cate__list > li:hover .jd-cate__mega { display: block; }
.jd-cate__mega p {
  font-weight: 700;
  margin: 8px 0 6px;
  font-size: 13px;
}
.jd-cate__mega a {
  display: inline-block;
  margin: 0 12px 8px 0;
  font-size: 13px;
  color: #555;
}
.jd-cate__mega a:hover { color: var(--jd-red); }

.jd-banner {
  flex: 1;
  min-width: 0;
  height: 320px;
  border-radius: var(--jd-radius);
  overflow: hidden;
  position: relative;
  background: #D9E6FF;
}
.jd-banner__list { height: 320px; position: relative; }
.jd-banner__item {
  display: none;
  height: 320px;
}
.jd-banner__item.is-active { display: block; }
.jd-banner__item img {
  width: 100%;
  height: 320px;
  object-fit: cover;
  display: block;
}
.jd-banner__dots {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 12px;
  text-align: center;
}
.jd-banner__dots span {
  display: inline-block;
  width: 8px;
  height: 8px;
  margin: 0 4px;
  border-radius: 50%;
  background: rgba(255,255,255,.55);
  cursor: pointer;
}
.jd-banner__dots span.is-active { background: #fff; width: 18px; border-radius: 4px; }
.jd-banner__prev,
.jd-banner__next {
  position: absolute;
  top: 50%;
  margin-top: -18px;
  width: 36px;
  height: 36px;
  line-height: 36px;
  text-align: center;
  background: rgba(0,0,0,.28);
  color: #fff;
  border-radius: 50%;
  font-size: 18px;
}
.jd-banner__prev { left: 10px; }
.jd-banner__next { right: 10px; }
.jd-banner__prev:hover,
.jd-banner__next:hover { background: rgba(0,0,0,.5); color: #fff; }

.jd-aside {
  width: 230px;
  flex: none;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.jd-user-card,
.jd-news {
  background: #fff;
  border-radius: var(--jd-radius);
  box-shadow: var(--jd-shadow);
  padding: 16px;
}
.jd-user-card { text-align: center; }
.jd-user-card__hi {
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 6px;
}
.jd-user-card__desc {
  font-size: 12px;
  color: var(--jd-muted);
  margin-bottom: 12px;
}
.jd-user-card__btns {
  display: flex;
  gap: 8px;
}
.jd-user-card__btns a {
  flex: 1;
  height: 32px;
  line-height: 32px;
  font-size: 13px;
}
.jd-news h3 {
  font-size: 15px;
  font-weight: 700;
  margin-bottom: 8px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--jd-border);
}
.jd-news li {
  display: flex;
  font-size: 13px;
  line-height: 1.8;
}
.jd-news li i {
  color: var(--jd-red);
  margin-right: 6px;
  font-weight: 700;
  width: 16px;
  flex: none;
}
.jd-news li a {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #444;
}
.jd-news li a:hover { color: var(--jd-red); }

/* 排行榜 */
.jd-rank {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 20px;
}
.jd-rank__col {
  min-width: 0;
  overflow: hidden;
  background: #fff;
  border-radius: var(--jd-radius);
  box-shadow: var(--jd-shadow);
  padding: 16px 14px 10px;
}
.jd-rank__col h3 {
  font-size: 15px;
  font-weight: 700;
  margin-bottom: 10px;
  padding-left: 8px;
  border-left: 3px solid var(--jd-red);
}
.jd-rank__item {
  display: flex;
  align-items: center;
  min-width: 0;
  padding: 8px 0;
  border-bottom: 1px dashed var(--jd-border);
  color: inherit;
}
.jd-rank__item:last-child { border-bottom: 0; }
.jd-rank__item:hover { color: inherit; }
.jd-rank__item i {
  width: 18px;
  height: 18px;
  line-height: 18px;
  text-align: center;
  border-radius: 3px;
  font-size: 12px;
  background: #EEF2F8;
  color: #666;
  margin-right: 8px;
  flex: none;
}
.jd-rank__item:nth-child(2) i { background: #FF4D4F; color: #fff; }
.jd-rank__item:nth-child(3) i { background: #FF7A45; color: #fff; }
.jd-rank__item:nth-child(4) i { background: #FFC53D; color: #fff; }
.jd-rank__item span {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 13px;
}
.jd-rank__item em {
  flex: none;
  flex-shrink: 0;
  margin-left: 8px;
  color: var(--jd-price);
  font-size: 12px;
  font-family: Arial, sans-serif;
  white-space: nowrap;
}

/* 星级推荐 */
.jd-promo {
  margin-bottom: 24px;
}
.jd-promo__list {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 12px;
}
.jd-promo__list .jd-app:first-child .jd-app__cover { height: 220px; }
.jd-promo__list .jd-app:first-child .jd-app__title { height: auto; font-size: 16px; }

/* 楼层 */
.jd-floor {
  margin-bottom: 28px;
}
.jd-floor .jd-sec__head { margin-bottom: 12px; }
.jd-floor__tabs {
  display: flex;
  margin-right: 16px;
  gap: 4px;
}
.jd-floor__tabs a {
  display: block;
  padding: 4px 12px;
  font-size: 13px;
  color: #555;
  border-radius: 14px;
}
.jd-floor__tabs a.on,
.jd-floor__tabs a:hover {
  background: #F0F6FF;
  color: var(--jd-red);
}
.jd-floor__pane { display: none; }
.jd-floor__pane.is-active { display: block; }

.jd-guess { margin-bottom: 12px; }

/* 演示视频 */
.jd-video-sec { margin-bottom: 24px; }
.jd-video-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
.jd-video-card {
  background: #fff;
  border-radius: var(--jd-radius);
  overflow: hidden;
  box-shadow: var(--jd-shadow);
}
.jd-video-card .eyou-vpic,
.jd-video-card .eyou-spimg {
  height: 150px;
  overflow: hidden;
  cursor: pointer;
  position: relative;
  background: #111;
}
.jd-video-card .eyou-spimg img,
.jd-video-card .eyou-vpic img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.jd-video-card .ey-p1 {
  padding: 10px 12px 4px;
  font-size: 14px;
  height: 42px;
  overflow: hidden;
}
.jd-video-card .ey-p2 {
  display: block;
  padding: 0 12px 12px;
  font-size: 12px;
  color: var(--jd-muted);
}

/* 视频弹层（保留旧 class 以兼容现有 JS） */
.tan {
  display: none;
  position: fixed;
  left: 0; top: 0; right: 0; bottom: 0;
  background: rgba(0,0,0,.65);
  z-index: 200;
}
.eyou-spbf {
  width: 900px;
  margin: 60px auto 0;
  background: #111;
  border-radius: 8px;
  overflow: hidden;
}
.eyou-spbf > p {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 16px;
  color: #fff;
  background: #1B2330;
}
.eyou-spbf > p b { cursor: pointer; font-size: 18px; }

/* ============================================================
   应用列表 / 搜索
   ============================================================ */
.jd-filter {
  background: #fff;
  border-radius: var(--jd-radius);
  box-shadow: var(--jd-shadow);
  padding: 8px 20px;
  margin-bottom: 12px;
}
.jd-filter__row {
  display: flex;
  padding: 10px 0;
  border-bottom: 1px solid var(--jd-border);
  font-size: 13px;
}
.jd-filter__row:last-child { border-bottom: 0; }
.jd-filter__label {
  width: 72px;
  color: var(--jd-muted);
  flex: none;
  line-height: 28px;
}
.jd-filter__values {
  flex: 1;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.jd-filter__values a {
  display: inline-block;
  padding: 4px 12px;
  border-radius: 4px;
  color: #444;
}
.jd-filter__values a.on,
.jd-filter__values a.active,
.jd-filter__values a.thisclass {
  background: #F0F6FF;
  color: var(--jd-red);
}

.jd-sort {
  display: flex;
  align-items: center;
  background: #fff;
  border-radius: var(--jd-radius);
  box-shadow: var(--jd-shadow);
  padding: 10px 16px;
  margin-bottom: 16px;
  font-size: 13px;
}
.jd-sort a {
  margin-right: 18px;
  color: #555;
}
.jd-sort a.active,
.jd-sort a.thisclass { color: var(--jd-red); font-weight: 700; }
.jd-sort__search {
  margin-left: auto;
}
.jd-sort__search form { display: flex; }
.jd-sort__search input[type="text"] {
  height: 32px;
  border: 1px solid var(--jd-border);
  border-right: 0;
  border-radius: 4px 0 0 4px;
  padding: 0 10px;
  outline: none;
  width: 180px;
}
.jd-sort__search input[type="submit"] {
  height: 32px;
  border: 0;
  background: var(--jd-red);
  color: #fff;
  padding: 0 14px;
  border-radius: 0 4px 4px 0;
}

.jd-list-layout {
  display: flex;
  gap: 16px;
  align-items: flex-start;
}
.jd-list-layout .jd-list-main { flex: 1; min-width: 0; }
.jd-side-rank {
  width: 240px;
  flex: none;
  background: #fff;
  border-radius: var(--jd-radius);
  box-shadow: var(--jd-shadow);
  padding: 16px;
}
.jd-side-rank h3 {
  font-size: 15px;
  font-weight: 700;
  margin-bottom: 12px;
}
.jd-side-rank li a {
  display: flex;
  gap: 10px;
  padding: 8px 0;
  border-bottom: 1px solid var(--jd-border);
  color: inherit;
}
.jd-side-rank li a:hover { color: inherit; }
.jd-side-rank li img {
  width: 64px;
  height: 48px;
  object-fit: cover;
  border-radius: 4px;
  flex: none;
}
.jd-side-rank li div { font-size: 13px; line-height: 1.4; }
.jd-side-rank li span {
  display: block;
  color: var(--jd-price);
  margin-top: 4px;
  font-family: Arial, sans-serif;
}

.jd-empty {
  background: #fff;
  border-radius: var(--jd-radius);
  padding: 48px;
  text-align: center;
  color: var(--jd-muted);
}

.jd-keyword {
  margin-bottom: 12px;
  font-size: 14px;
}
.jd-keyword em { color: var(--jd-red); font-weight: 700; }

/* 分页 */
#pages,
.jd-pages {
  text-align: center;
  padding: 28px 0 8px;
  font-size: 13px;
}
#pages ul, .jd-pages ul { display: inline-block; padding: 0; margin: 0; }
#pages li, .jd-pages li { display: inline-block; }
#pages a, #pages span,
.jd-pages a, .jd-pages span {
  display: inline-block;
  min-width: 34px;
  height: 34px;
  line-height: 32px;
  margin: 0 3px;
  padding: 0 10px;
  border: 1px solid var(--jd-border);
  border-radius: 4px;
  background: #fff;
  color: #555;
}
#pages a:hover,
#pages .thisclass,
#pages .active,
#pages span.current {
  background: var(--jd-red);
  border-color: var(--jd-red);
  color: #fff;
}

/* ============================================================
   应用详情
   ============================================================ */
.jd-detail {
  display: flex;
  gap: 24px;
  background: #fff;
  border-radius: var(--jd-radius);
  box-shadow: var(--jd-shadow);
  padding: 24px;
  margin-bottom: 16px;
}
.jd-gallery { width: 420px; flex: none; }
.jd-gallery__main {
  width: 420px;
  height: 280px;
  background: #F4F6FB;
  border-radius: 6px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.jd-gallery__main img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}
.jd-gallery__thumbs {
  display: flex;
  gap: 8px;
  margin-top: 10px;
}
.jd-gallery__thumbs li {
  width: 68px;
  height: 48px;
  border: 2px solid transparent;
  border-radius: 4px;
  overflow: hidden;
  cursor: pointer;
}
.jd-gallery__thumbs li.on,
.jd-gallery__thumbs li.is-active {
  border-color: var(--jd-red);
}
.jd-gallery__thumbs img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.jd-buy { flex: 1; min-width: 0; }
.jd-buy h1 {
  font-size: 22px;
  font-weight: 700;
  line-height: 1.4;
  margin-bottom: 12px;
}
.jd-buy__price-bar {
  background: linear-gradient(90deg, #FFF5F5, #FFF);
  border-radius: 6px;
  padding: 14px 16px;
  margin-bottom: 16px;
}
.jd-buy__price {
  font-size: 28px;
  color: var(--jd-price);
  font-weight: 700;
  font-family: Arial, sans-serif;
}
.webspec {
  margin-bottom: 12px;
}
.webspec > p {
  font-size: 13px;
  color: var(--jd-muted);
  margin-bottom: 8px;
}
.webspec li {
  display: flex;
  margin-bottom: 10px;
  font-size: 13px;
}
.webspec em {
  width: 72px;
  color: #666;
  line-height: 32px;
  flex: none;
}
.webspec dl { display: flex; flex-wrap: wrap; gap: 8px; }
.webspec dt {
  padding: 6px 14px;
  border: 1px solid var(--jd-border);
  border-radius: 4px;
  cursor: pointer;
}
.webspec dt.selected,
.webspec dt.on {
  border-color: var(--jd-red);
  color: var(--jd-red);
  background: #F0F6FF;
}
.jd-qty {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 12px 0;
  font-size: 13px;
  color: #666;
}
.amount_wrap {
  display: inline-flex;
  border: 1px solid var(--jd-border);
  border-radius: 4px;
  overflow: hidden;
}
.amount_min, .amount_max {
  width: 32px;
  height: 32px;
  line-height: 32px;
  text-align: center;
  background: #F7F8FA;
  cursor: pointer;
}
.inputnumber {
  width: 48px;
  height: 32px;
  border: 0;
  border-left: 1px solid var(--jd-border);
  border-right: 1px solid var(--jd-border);
  text-align: center;
  outline: none;
}
.jd-buy__meta {
  font-size: 13px;
  color: #666;
  line-height: 2;
  margin-bottom: 12px;
}
.jd-buy__meta a { color: var(--jd-red); }
.selected-list {
  background: #FAFBFD;
  border-radius: 6px;
  padding: 10px 14px;
  margin-bottom: 14px;
  font-size: 13px;
}
.selected-list .guijiage,
.selected-list .total-price { color: var(--jd-price); font-weight: 700; }
.jd-buy__actions { display: flex; gap: 12px; }
.jd-buy__actions .btn {
  height: 44px;
  line-height: 44px;
  padding: 0 32px;
  border-radius: 4px;
  font-size: 16px;
  border: 0;
}
.jd-buy__actions .btn-red,
.jd-buy__actions .goumai {
  background: var(--jd-red);
  color: #fff;
}
.jd-buy__actions .btn-car,
.jd-buy__actions .jiaru {
  background: var(--jd-orange);
  color: #fff;
}

.jd-rel {
  background: #fff;
  border-radius: var(--jd-radius);
  box-shadow: var(--jd-shadow);
  padding: 16px 20px 20px;
  margin-bottom: 16px;
}
.jd-rel h6 {
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 12px;
}
.jd-rel__list {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
}
.jd-rel__list li a { display: block; color: inherit; }
.jd-rel__list img {
  width: 100%;
  height: 110px;
  object-fit: cover;
  border-radius: 4px;
  background: #F4F6FB;
}
.jd-rel__list p {
  font-size: 13px;
  height: 36px;
  overflow: hidden;
  margin-top: 6px;
}
.jd-rel__list span { color: var(--jd-price); font-size: 14px; }

.jd-tabs {
  background: #fff;
  border-radius: var(--jd-radius);
  box-shadow: var(--jd-shadow);
  overflow: hidden;
  margin-bottom: 16px;
}
.jd-tabs__nav,
.eyou_switch {
  display: flex;
  border-bottom: 1px solid var(--jd-border);
  background: #FAFBFD;
}
.jd-tabs__nav li,
.eyou_switch li {
  padding: 0 24px;
  height: 46px;
  line-height: 46px;
  font-size: 15px;
  cursor: pointer;
}
.jd-tabs__nav li.active,
.eyou_switch li.active {
  background: #fff;
  color: var(--jd-red);
  font-weight: 700;
  border-bottom: 2px solid var(--jd-red);
}
.jd-tabs__pane,
.eyou-contain {
  display: none;
  padding: 24px;
  line-height: 1.8;
}
.jd-tabs__pane.active,
.eyou-contain.active { display: block; }
.eyou-contain img,
.jd-tabs__pane img,
.x_img img { max-width: 100%; }
.jd-attr-table,
.table {
  width: 100%;
  border-collapse: collapse;
}
.jd-attr-table th,
.jd-attr-table td,
.table th,
.table td {
  border: 1px solid var(--jd-border);
  padding: 10px 14px;
  text-align: left;
}
.jd-attr-table th,
.table th { background: #FAFBFD; }

/* ============================================================
   文章 / 单页
   ============================================================ */
.jd-article-layout {
  display: flex;
  gap: 16px;
  align-items: flex-start;
}
.jd-article-side {
  width: 220px;
  flex: none;
  background: #fff;
  border-radius: var(--jd-radius);
  box-shadow: var(--jd-shadow);
  padding: 12px 0;
}
.jd-article-side a {
  display: block;
  padding: 10px 20px;
  font-size: 14px;
  color: #444;
}
.jd-article-side a:hover,
.jd-article-side li.on a,
.jd-article-side .on > a {
  color: var(--jd-red);
  background: #F0F6FF;
}
.jd-article-main {
  flex: 1;
  min-width: 0;
  background: #fff;
  border-radius: var(--jd-radius);
  box-shadow: var(--jd-shadow);
  padding: 24px 28px;
}
.jd-article-main h1,
.jd-article-main h5 {
  font-size: 22px;
  font-weight: 700;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--jd-border);
}
.jd-news-list li {
  border-bottom: 1px dashed var(--jd-border);
}
.jd-news-list a {
  display: flex;
  justify-content: space-between;
  padding: 14px 0;
  color: #333;
}
.jd-news-list a:hover { color: var(--jd-red); }
.jd-news-list span { color: var(--jd-muted); font-size: 12px; flex: none; margin-left: 16px; }
.jd-article-body {
  line-height: 1.9;
  font-size: 15px;
  color: #333;
}
.jd-article-body img { max-width: 100%; }

.jd-honor-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
.jd-honor-grid a {
  display: block;
  background: #fff;
  border-radius: var(--jd-radius);
  overflow: hidden;
  box-shadow: var(--jd-shadow);
  color: inherit;
}
.jd-honor-grid img {
  width: 100%;
  height: 160px;
  object-fit: cover;
}
.jd-honor-grid p { padding: 10px 12px; font-size: 14px; }

.jd-about {
  display: flex;
  gap: 24px;
}
.jd-about__pic {
  width: 360px;
  flex: none;
}
.jd-about__pic img { width: 100%; border-radius: 8px; }
.jd-contact p { margin: 8px 0; color: #555; }

/* ============================================================
   开发者街
   ============================================================ */
.page-wares .jd-shop-grid,
.shop-wrap {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.shop-item,
.jd-dev-card {
  background: #fff;
  border-radius: var(--jd-radius);
  box-shadow: var(--jd-shadow);
  overflow: hidden;
  transition: transform .2s, box-shadow .2s;
}
.shop-item:hover,
.jd-dev-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--jd-shadow-hover);
}
.shop-item a,
.jd-dev-card a { display: block; color: inherit; }
.banner-wrap {
  height: 120px;
  background: linear-gradient(135deg, #3478F6, #6AA4FF);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.banner-wrap img {
  max-height: 80px;
  width: auto !important;
  height: auto !important;
}
.name-wrap { padding: 14px 16px 18px; }
.name-wrap .name { font-size: 15px; font-weight: 700; margin-bottom: 8px; }
.shop-bottom { font-size: 13px; color: #666; margin-top: 4px; }

/* ============================================================
   内页通用
   ============================================================ */
.page-inner .jd-main { padding-bottom: 24px; }

/* 旧登录弹层不破坏布局 */
.logo_con { z-index: 9999; }

@media (max-width: 1240px) {
  body { min-width: 100%; }
  .jd-container { width: 96%; }
}
