@charset "UTF-8";
/* flex布局 */
.flex {
  display: flex;
}
/* 竖向排列 */
.flex-col {
  display: flex;
  flex-direction: column;
}
/* 元素在主轴（页面）上左右两端或者上下两端开始排列 */
.flex-justify-between {
  display: flex;
  justify-content: space-between;
}

/* 每个元素两侧的间隔相等。所以，元素之间的间隔比元素与边框的间隔大一倍 */
.flex-justify-around {
  display: flex;
  justify-content: space-around;
}

/* 元素在主轴（页面）上由左或者上开始排列 */
.flex-justify-start {
  display: flex;
  justify-content: flex-start;
}

/* 元素在主轴（页面）上由右或者下开始排列 */
.flex-justify-end {
  display: flex;
  justify-content: flex-end;
}

/* 元素在主轴（页面）上居中排列 */
.flex-justify-center {
  display: flex;
  justify-content: center;
}

/* 弹性盒子元素在该行的侧轴（纵轴）上居中放置。（居中对齐） */
.flex-align-center {
  display: flex;
  align-items: center;
}

/* 弹性盒子元素的侧轴（纵轴）起始位置的边界紧靠住该行的侧轴结束边界。（靠下对齐） */
.flex-align-end {
  display: flex;
  align-items: flex-end;
}

/* 弹性盒子元素的侧轴（纵轴）起始位置的边界紧靠住该行的侧轴起始边界（靠上对齐） */
.flex-align-start {
  display: flex;
  align-items: flex-start;
}

/* =========================
   自定义补充样式（避免覆盖主样式）
   说明：
   1. 本文件不再定义全局 reset、body、a、.container、.grid、.btn 等同名基础类
   2. 仅提供带 u- 前缀的增强工具类，作为 style.css/mobile.css/media.css 的补充
   ========================= */

/* =========================
   布局补充
   ========================= */
.u-container-wide {
  width: min(1400px, calc(100% - 48px));
  margin: 0 auto;
}

.u-grid-auto {
  display: grid;
  gap: 20px;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
}

.u-grid-5 {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.u-flex-center {
  display: flex;
  align-items: center;
  justify-content: center;
}

.u-flex-between {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.u-stack > * + * {
  margin-top: 16px;
}

/* =========================
   间距补充
   ========================= */
.u-mt-6 {
  margin-top: 40px;
}

.u-mb-6 {
  margin-bottom: 40px;
}

.u-py-7 {
  padding-top: 48px;
  padding-bottom: 48px;
}

/* =========================
   文本与可访问性补充
   ========================= */
.u-text-muted {
  color: #6b7280;
}

.u-line-clamp-3 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}

.u-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* =========================
   组件补充
   ========================= */
.u-card-plain {
  background: #ffffff;
  border: 1px solid #dbe3ef;
  border-radius: 10px;
  box-shadow: 0 4px 14px rgba(15, 47, 114, 0.08);
}

.u-btn-ghost {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 96px;
  height: 36px;
  padding: 0 14px;
  border: 1px solid #dbe3ef;
  border-radius: 18px;
  color: #1f2633;
  background: #ffffff;
  transition: all 0.25s ease;
}

.u-btn-ghost:hover {
  border-color: #0f3f8f;
  color: #0f3f8f;
}

.u-input-sm {
  width: 100%;
  min-height: 36px;
  padding: 0 12px;
  border: 1px solid #dbe3ef;
  border-radius: 6px;
  background: #ffffff;
  color: #1f2633;
}

.u-input-sm:focus {
  border-color: #0f3f8f;
  box-shadow: 0 0 0 3px rgba(15, 63, 143, 0.14);
}

/* =========================
   显隐补充
   ========================= */
.u-show-mobile {
  display: none !important;
}

.u-show-pc {
  display: block !important;
}

/* =========================
   公共当前位置
   ========================= */
.wp-position-window {
  margin-bottom: 40px;
}

.cl-breadcrumb-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.cl-breadcrumb-current {
  flex: 0 1 auto;
  min-width: 0;
  color: var(--color-primary);
  font-size: 26px;
  font-weight: 700;
  line-height: 1.4;
}

.wp-position-window .wp-position {
  display: flex;
  flex: 0 1 auto;
  align-items: center;
  justify-content: flex-end;
  min-width: 0;
  margin-left: auto;
  color: #788393;
  font-size: 20px;
  font-weight: 400;
  line-height: 1.7;
}

.wp-position-window .wp-position::before {
  content: "";
  flex: 0 0 auto;
  width: 15px;
  height: 17px;
  margin-right: 14.5px;
  background-color: var(--color-primary);
  -webkit-mask: url("data:image/svg+xml,%3Csvg width='15' height='17' viewBox='0 0 15 17' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7.5 16.6667C6.45833 16.6667 0 11.6421 0 7.5C0 3.35792 3.35792 0 7.5 0C11.6421 0 15 3.35792 15 7.5C15 11.6421 8.54167 16.6667 7.5 16.6667ZM7.5 9.79167C8.76562 9.79167 9.79167 8.76562 9.79167 7.5C9.79167 6.23438 8.76562 5.20833 7.5 5.20833C6.23438 5.20833 5.20833 6.23438 5.20833 7.5C5.20833 8.76562 6.23438 9.79167 7.5 9.79167Z' fill='%23003277'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg width='15' height='17' viewBox='0 0 15 17' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7.5 16.6667C6.45833 16.6667 0 11.6421 0 7.5C0 3.35792 3.35792 0 7.5 0C11.6421 0 15 3.35792 15 7.5C15 11.6421 8.54167 16.6667 7.5 16.6667ZM7.5 9.79167C8.76562 9.79167 9.79167 8.76562 9.79167 7.5C9.79167 6.23438 8.76562 5.20833 7.5 5.20833C6.23438 5.20833 5.20833 6.23438 5.20833 7.5C5.20833 8.76562 6.23438 9.79167 7.5 9.79167Z' fill='%23003277'/%3E%3C/svg%3E") center / contain no-repeat;
}

.wp-position-window .wp-position a,
.wp-position-window .wp-position a:link,
.wp-position-window .wp-position a:visited {
  color: inherit !important;
  text-decoration: none !important;
}

.wp-position-window .wp-position a,
.wp-position-window .wp-position .possplit,
.wp-position-window .wp-position span {
  color: #788393;
}

.wp-position-window .wp-position a:hover {
  color: #788393;
}

.wp-position-window .wp-position a.is-current {
  color: var(--color-primary) !important;
}

.wp-position-window .wp-position .possplit {
  display: inline-block !important;
  width: auto !important;
  min-width: 0 !important;
  margin: 0 5px !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: none !important;
  background-image: none !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  text-indent: 0 !important;
  border: 0 !important;
  color: transparent !important;
  font-size: 0 !important;
  line-height: 1 !important;
  vertical-align: middle !important;
}

.wp-position-window .wp-position .possplit::before,
.wp-position-window .wp-position .possplit::after {
  display: none !important;
}

.wp-position-window .wp-position .possplit::after {
  content: ">" !important;
  display: inline-block !important;
  color: #788393 !important;
  font-size: 16px !important;
  line-height: 1 !important;
  vertical-align: middle !important;
}

/* =========================
   响应式（与项目断点一致）
   mobile.css: 1320 / 1140 / 960
   media.css:  720 / 540
   ========================= */
@media (max-width: 1140px) {
  .u-grid-5 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 960px) {
  .u-container-wide {
    width: min(1400px, calc(100% - 28px));
  }

  .u-grid-5 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .cl-breadcrumb-current {
    font-size: 24px;
  }

  .wp-position-window .wp-position {
    font-size: 18px;
  }
}

@media (max-width: 720px) {
  .u-container-wide {
    width: min(1400px, calc(100% - 20px));
  }

  .u-grid-5,
  .u-grid-auto {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .u-py-7 {
    padding-top: 32px;
    padding-bottom: 32px;
  }

  .u-show-mobile {
    display: block !important;
  }

  .u-show-pc {
    display: none !important;
  }

  .wp-position-window {
    margin-bottom: 28px;
  }

  .cl-breadcrumb-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }

  .cl-breadcrumb-current {
    flex: 1 1 auto;
    min-width: 0;
    margin-bottom: 0;
    font-size: 22px;
  }

  .wp-position-window .wp-position {
    flex: 0 1 auto;
    min-width: 0;
    margin-left: 0;
    justify-content: flex-end;
    font-size: 16px;
    text-align: right;
  }
}

@media (max-width: 540px) {
  .u-container-wide {
    width: min(1400px, calc(100% - 16px));
  }

  .u-grid-5,
  .u-grid-auto {
    grid-template-columns: 1fr;
  }

  .u-btn-ghost {
    min-width: 88px;
    height: 34px;
    padding: 0 12px;
  }

  .cl-breadcrumb-current {
    font-size: 20px;
  }

  .wp-position-window .wp-position {
    font-size: 14px;
  }
}
