/*!
 * 清理后的 Bootstrap CSS - 只保留布局相关样式和基础元素重置
 */
:root {
  --breakpoint-xs: 0;
  --breakpoint-sm: 576px;
  --breakpoint-md: 768px;
  --breakpoint-lg: 992px;
  --breakpoint-xl: 1200px;
}

/* 基础 HTML 元素重置 */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  font-family: sans-serif;
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
  display: block;
}

body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  color: #212529;
  text-align: left;
  background-color: #fff;
}

/* 布局容器样式 */
.container {
  width: 100%;
  padding-right: 15px;
  padding-left: 15px;
  margin-right: auto;
  margin-left: auto;
}

@media (min-width: 576px) {
  .container {
    max-width: 540px;
  }
}

@media (min-width: 768px) {
  .container {
    max-width: 720px;
  }
}

@media (min-width: 992px) {
  .container {
    max-width: 960px;
  }
}

@media (min-width: 1200px) {
  .container {
    max-width: 1140px;
  }
}

.container-fluid {
  width: 100%;
  padding-right: 15px;
  padding-left: 15px;
  margin-right: auto;
  margin-left: auto;
}

/* 行布局样式 */
.row {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  margin-right: -15px;
  margin-left: -15px;
}

.no-gutters {
  margin-right: 0;
  margin-left: 0;
}

.no-gutters > .col,
.no-gutters > [class*="col-"] {
  padding-right: 0;
  padding-left: 0;
}

/* Flexbox 工具类 */
.d-flex {
  display: -ms-flexbox !important;
  display: flex !important;
}

.d-inline-flex {
  display: -ms-inline-flexbox !important;
  display: inline-flex !important;
}

.flex-row {
  -ms-flex-direction: row !important;
  flex-direction: row !important;
}

.flex-column {
  -ms-flex-direction: column !important;
  flex-direction: column !important;
}

.flex-row-reverse {
  -ms-flex-direction: row-reverse !important;
  flex-direction: row-reverse !important;
}

.flex-column-reverse {
  -ms-flex-direction: column-reverse !important;
  flex-direction: column-reverse !important;
}

.flex-wrap {
  -ms-flex-wrap: wrap !important;
  flex-wrap: wrap !important;
}

.flex-nowrap {
  -ms-flex-wrap: nowrap !important;
  flex-wrap: nowrap !important;
}

.flex-wrap-reverse {
  -ms-flex-wrap: wrap-reverse !important;
  flex-wrap: wrap-reverse !important;
}

/* 响应式 Flex 容器类 - Small (sm) 断点 */
@media (min-width: 576px) {
  .flex-sm-row { -ms-flex-direction: row !important; flex-direction: row !important; }
  .flex-sm-column { -ms-flex-direction: column !important; flex-direction: column !important; }
  .flex-sm-row-reverse { -ms-flex-direction: row-reverse !important; flex-direction: row-reverse !important; }
  .flex-sm-column-reverse { -ms-flex-direction: column-reverse !important; flex-direction: column-reverse !important; }
  .flex-sm-wrap { -ms-flex-wrap: wrap !important; flex-wrap: wrap !important; }
  .flex-sm-nowrap { -ms-flex-wrap: nowrap !important; flex-wrap: nowrap !important; }
  .flex-sm-wrap-reverse { -ms-flex-wrap: wrap-reverse !important; flex-wrap: wrap-reverse !important; }
  .flex-sm-fill { -ms-flex: 1 1 auto !important; flex: 1 1 auto !important; }
  .flex-sm-grow-0 { -ms-flex-positive: 0 !important; flex-grow: 0 !important; }
  .flex-sm-grow-1 { -ms-flex-positive: 1 !important; flex-grow: 1 !important; }
  .flex-sm-shrink-0 { -ms-flex-negative: 0 !important; flex-shrink: 0 !important; }
  .flex-sm-shrink-1 { -ms-flex-negative: 1 !important; flex-shrink: 1 !important; }
}

/* 响应式 Flex 容器类 - Large (lg) 断点 */
@media (min-width: 992px) {
  .flex-lg-row { -ms-flex-direction: row !important; flex-direction: row !important; }
  .flex-lg-column { -ms-flex-direction: column !important; flex-direction: column !important; }
  .flex-lg-row-reverse { -ms-flex-direction: row-reverse !important; flex-direction: row-reverse !important; }
  .flex-lg-column-reverse { -ms-flex-direction: column-reverse !important; flex-direction: column-reverse !important; }
  .flex-lg-wrap { -ms-flex-wrap: wrap !important; flex-wrap: wrap !important; }
  .flex-lg-nowrap { -ms-flex-wrap: nowrap !important; flex-wrap: nowrap !important; }
  .flex-lg-wrap-reverse { -ms-flex-wrap: wrap-reverse !important; flex-wrap: wrap-reverse !important; }
  .flex-lg-fill { -ms-flex: 1 1 auto !important; flex: 1 1 auto !important; }
  .flex-lg-grow-0 { -ms-flex-positive: 0 !important; flex-grow: 0 !important; }
  .flex-lg-grow-1 { -ms-flex-positive: 1 !important; flex-grow: 1 !important; }
  .flex-lg-shrink-0 { -ms-flex-negative: 0 !important; flex-shrink: 0 !important; }
  .flex-lg-shrink-1 { -ms-flex-negative: 1 !important; flex-shrink: 1 !important; }
}

/* 响应式 Flex 容器类 - Extra Large (xl) 断点 */
@media (min-width: 1200px) {
  .flex-xl-row { -ms-flex-direction: row !important; flex-direction: row !important; }
  .flex-xl-column { -ms-flex-direction: column !important; flex-direction: column !important; }
  .flex-xl-row-reverse { -ms-flex-direction: row-reverse !important; flex-direction: row-reverse !important; }
  .flex-xl-column-reverse { -ms-flex-direction: column-reverse !important; flex-direction: column-reverse !important; }
  .flex-xl-wrap { -ms-flex-wrap: wrap !important; flex-wrap: wrap !important; }
  .flex-xl-nowrap { -ms-flex-wrap: nowrap !important; flex-wrap: nowrap !important; }
  .flex-xl-wrap-reverse { -ms-flex-wrap: wrap-reverse !important; flex-wrap: wrap-reverse !important; }
  .flex-xl-fill { -ms-flex: 1 1 auto !important; flex: 1 1 auto !important; }
  .flex-xl-grow-0 { -ms-flex-positive: 0 !important; flex-grow: 0 !important; }
  .flex-xl-grow-1 { -ms-flex-positive: 1 !important; flex-grow: 1 !important; }
  .flex-xl-shrink-0 { -ms-flex-negative: 0 !important; flex-shrink: 0 !important; }
  .flex-xl-shrink-1 { -ms-flex-negative: 1 !important; flex-shrink: 1 !important; }
}

.justify-content-start {
  -ms-flex-pack: start !important;
  justify-content: flex-start !important;
}

.justify-content-end {
  -ms-flex-pack: end !important;
  justify-content: flex-end !important;
}

.justify-content-center {
  -ms-flex-pack: center !important;
  justify-content: center !important;
}

.justify-content-between {
  -ms-flex-pack: justify !important;
  justify-content: space-between !important;
}

.justify-content-around {
  -ms-flex-pack: distribute !important;
  justify-content: space-around !important;
}

.align-items-start {
  -ms-flex-align: start !important;
  align-items: flex-start !important;
}

.align-items-end {
  -ms-flex-align: end !important;
  align-items: flex-end !important;
}

.align-items-center {
  -ms-flex-align: center !important;
  align-items: center !important;
}

.align-items-baseline {
  -ms-flex-align: baseline !important;
  align-items: baseline !important;
}

.align-items-stretch {
  -ms-flex-align: stretch !important;
  align-items: stretch !important;
}

.align-content-start {
  -ms-flex-line-pack: start !important;
  align-content: flex-start !important;
}

.align-content-end {
  -ms-flex-line-pack: end !important;
  align-content: flex-end !important;
}

.align-content-center {
  -ms-flex-line-pack: center !important;
  align-content: center !important;
}

.align-content-between {
  -ms-flex-line-pack: justify !important;
  align-content: space-between !important;
}

.align-content-around {
  -ms-flex-line-pack: distribute !important;
  align-content: space-around !important;
}

.align-content-stretch {
  -ms-flex-line-pack: stretch !important;
  align-content: stretch !important;
}

.align-self-auto {
  -ms-flex-item-align: auto !important;
  align-self: auto !important;
}

.align-self-start {
  -ms-flex-item-align: start !important;
  align-self: flex-start !important;
}

.align-self-end {
  -ms-flex-item-align: end !important;
  align-self: flex-end !important;
}

.align-self-center {
  -ms-flex-item-align: center !important;
  align-self: center !important;
}

.align-self-baseline {
  -ms-flex-item-align: baseline !important;
  align-self: baseline !important;
}

.align-self-stretch {
  -ms-flex-item-align: stretch !important;
  align-self: stretch !important;
}

/* 列布局样式 */
.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,
.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,
.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,
.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,
.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,
.col-xl-auto {
  position: relative;
  width: 100%;
  padding-right: 15px;
  padding-left: 15px;
}

.col {
  -ms-flex-preferred-size: 0;
  flex-basis: 0;
  -ms-flex-positive: 1;
  flex-grow: 1;
  max-width: 100%;
}

.col-auto {
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  width: auto;
  max-width: 100%;
}

.col-1 {
  -ms-flex: 0 0 8.333333%;
  flex: 0 0 8.333333%;
  max-width: 8.333333%;
}

.col-2 {
  -ms-flex: 0 0 16.666667%;
  flex: 0 0 16.666667%;
  max-width: 16.666667%;
}

.col-3 {
  -ms-flex: 0 0 25%;
  flex: 0 0 25%;
  max-width: 25%;
}

.col-4 {
  -ms-flex: 0 0 33.333333%;
  flex: 0 0 33.333333%;
  max-width: 33.333333%;
}

.col-5 {
  -ms-flex: 0 0 41.666667%;
  flex: 0 0 41.666667%;
  max-width: 41.666667%;
}

.col-6 {
  -ms-flex: 0 0 50%;
  flex: 0 0 50%;
  max-width: 50%;
}

.col-7 {
  -ms-flex: 0 0 58.333333%;
  flex: 0 0 58.333333%;
  max-width: 58.333333%;
}

.col-8 {
  -ms-flex: 0 0 66.666667%;
  flex: 0 0 66.666667%;
  max-width: 66.666667%;
}

.col-9 {
  -ms-flex: 0 0 75%;
  flex: 0 0 75%;
  max-width: 75%;
}

.col-10 {
  -ms-flex: 0 0 83.333333%;
  flex: 0 0 83.333333%;
  max-width: 83.333333%;
}

.col-11 {
  -ms-flex: 0 0 91.666667%;
  flex: 0 0 91.666667%;
  max-width: 91.666667%;
}

.col-12 {
  -ms-flex: 0 0 100%;
  flex: 0 0 100%;
  max-width: 100%;
}

.order-first {
  -ms-flex-order: -1;
  order: -1;
}

.order-last {
  -ms-flex-order: 13;
  order: 13;
}

.order-0 {
  -ms-flex-order: 0;
  order: 0;
}

.order-1 { -ms-flex-order: 1; order: 1; }
.order-2 { -ms-flex-order: 2; order: 2; }
.order-3 { -ms-flex-order: 3; order: 3; }
.order-4 { -ms-flex-order: 4; order: 4; }
.order-5 { -ms-flex-order: 5; order: 5; }
.order-6 { -ms-flex-order: 6; order: 6; }
.order-7 { -ms-flex-order: 7; order: 7; }
.order-8 { -ms-flex-order: 8; order: 8; }
.order-9 { -ms-flex-order: 9; order: 9; }
.order-10 { -ms-flex-order: 10; order: 10; }
.order-11 { -ms-flex-order: 11; order: 11; }
.order-12 { -ms-flex-order: 12; order: 12; }

.offset-1 { margin-left: 8.333333%; }
.offset-2 { margin-left: 16.666667%; }
.offset-3 { margin-left: 25%; }
.offset-4 { margin-left: 33.333333%; }
.offset-5 { margin-left: 41.666667%; }
.offset-6 { margin-left: 50%; }
.offset-7 { margin-left: 58.333333%; }
.offset-8 { margin-left: 66.666667%; }
.offset-9 { margin-left: 75%; }
.offset-10 { margin-left: 83.333333%; }
.offset-11 { margin-left: 91.666667%; }

/* 响应式布局 - 小屏幕 */
@media (min-width: 576px) {
  .col-sm {
    -ms-flex-preferred-size: 0;
    flex-basis: 0;
    -ms-flex-positive: 1;
    flex-grow: 1;
    max-width: 100%;
  }
  .col-sm-auto {
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
    width: auto;
    max-width: 100%;
  }
  .col-sm-1 { -ms-flex: 0 0 8.333333%; flex: 0 0 8.333333%; max-width: 8.333333%; }
  .col-sm-2 { -ms-flex: 0 0 16.666667%; flex: 0 0 16.666667%; max-width: 16.666667%; }
  .col-sm-3 { -ms-flex: 0 0 25%; flex: 0 0 25%; max-width: 25%; }
  .col-sm-4 { -ms-flex: 0 0 33.333333%; flex: 0 0 33.333333%; max-width: 33.333333%; }
  .col-sm-5 { -ms-flex: 0 0 41.666667%; flex: 0 0 41.666667%; max-width: 41.666667%; }
  .col-sm-6 { -ms-flex: 0 0 50%; flex: 0 0 50%; max-width: 50%; }
  .col-sm-7 { -ms-flex: 0 0 58.333333%; flex: 0 0 58.333333%; max-width: 58.333333%; }
  .col-sm-8 { -ms-flex: 0 0 66.666667%; flex: 0 0 66.666667%; max-width: 66.666667%; }
  .col-sm-9 { -ms-flex: 0 0 75%; flex: 0 0 75%; max-width: 75%; }
  .col-sm-10 { -ms-flex: 0 0 83.333333%; flex: 0 0 83.333333%; max-width: 83.333333%; }
  .col-sm-11 { -ms-flex: 0 0 91.666667%; flex: 0 0 91.666667%; max-width: 91.666667%; }
  .col-sm-12 { -ms-flex: 0 0 100%; flex: 0 0 100%; max-width: 100%; }
  .order-sm-first { -ms-flex-order: -1; order: -1; }
  .order-sm-last { -ms-flex-order: 13; order: 13; }
  .order-sm-0 { -ms-flex-order: 0; order: 0; }
  .order-sm-1 { -ms-flex-order: 1; order: 1; }
  .order-sm-2 { -ms-flex-order: 2; order: 2; }
  .order-sm-3 { -ms-flex-order: 3; order: 3; }
  .order-sm-4 { -ms-flex-order: 4; order: 4; }
  .order-sm-5 { -ms-flex-order: 5; order: 5; }
  .order-sm-6 { -ms-flex-order: 6; order: 6; }
  .order-sm-7 { -ms-flex-order: 7; order: 7; }
  .order-sm-8 { -ms-flex-order: 8; order: 8; }
  .order-sm-9 { -ms-flex-order: 9; order: 9; }
  .order-sm-10 { -ms-flex-order: 10; order: 10; }
  .order-sm-11 { -ms-flex-order: 11; order: 11; }
  .order-sm-12 { -ms-flex-order: 12; order: 12; }
  .offset-sm-0 { margin-left: 0; }
  .offset-sm-1 { margin-left: 8.333333%; }
  .offset-sm-2 { margin-left: 16.666667%; }
  .offset-sm-3 { margin-left: 25%; }
  .offset-sm-4 { margin-left: 33.333333%; }
  .offset-sm-5 { margin-left: 41.666667%; }
  .offset-sm-6 { margin-left: 50%; }
  .offset-sm-7 { margin-left: 58.333333%; }
  .offset-sm-8 { margin-left: 66.666667%; }
  .offset-sm-9 { margin-left: 75%; }
  .offset-sm-10 { margin-left: 83.333333%; }
  .offset-sm-11 { margin-left: 91.666667%; }
}

/* 响应式布局 - 中等屏幕 */
@media (min-width: 768px) {
  .col-md {
    -ms-flex-preferred-size: 0;
    flex-basis: 0;
    -ms-flex-positive: 1;
    flex-grow: 1;
    max-width: 100%;
  }
  .col-md-auto {
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
    width: auto;
    max-width: 100%;
  }
  .col-md-1 { -ms-flex: 0 0 8.333333%; flex: 0 0 8.333333%; max-width: 8.333333%; }
  .col-md-2 { -ms-flex: 0 0 16.666667%; flex: 0 0 16.666667%; max-width: 16.666667%; }
  .col-md-3 { -ms-flex: 0 0 25%; flex: 0 0 25%; max-width: 25%; }
  .col-md-4 { -ms-flex: 0 0 33.333333%; flex: 0 0 33.333333%; max-width: 33.333333%; }
  .col-md-5 { -ms-flex: 0 0 41.666667%; flex: 0 0 41.666667%; max-width: 41.666667%; }
  .col-md-6 { -ms-flex: 0 0 50%; flex: 0 0 50%; max-width: 50%; }
  .col-md-7 { -ms-flex: 0 0 58.333333%; flex: 0 0 58.333333%; max-width: 58.333333%; }
  .col-md-8 { -ms-flex: 0 0 66.666667%; flex: 0 0 66.666667%; max-width: 66.666667%; }
  .col-md-9 { -ms-flex: 0 0 75%; flex: 0 0 75%; max-width: 75%; }
  .col-md-10 { -ms-flex: 0 0 83.333333%; flex: 0 0 83.333333%; max-width: 83.333333%; }
  .col-md-11 { -ms-flex: 0 0 91.666667%; flex: 0 0 91.666667%; max-width: 91.666667%; }
  .col-md-12 { -ms-flex: 0 0 100%; flex: 0 0 100%; max-width: 100%; }
  .order-md-first { -ms-flex-order: -1; order: -1; }
  .order-md-last { -ms-flex-order: 13; order: 13; }
  .order-md-0 { -ms-flex-order: 0; order: 0; }
  .order-md-1 { -ms-flex-order: 1; order: 1; }
  .order-md-2 { -ms-flex-order: 2; order: 2; }
  .order-md-3 { -ms-flex-order: 3; order: 3; }
  .order-md-4 { -ms-flex-order: 4; order: 4; }
  .order-md-5 { -ms-flex-order: 5; order: 5; }
  .order-md-6 { -ms-flex-order: 6; order: 6; }
  .order-md-7 { -ms-flex-order: 7; order: 7; }
  .order-md-8 { -ms-flex-order: 8; order: 8; }
  .order-md-9 { -ms-flex-order: 9; order: 9; }
  .order-md-10 { -ms-flex-order: 10; order: 10; }
  .order-md-11 { -ms-flex-order: 11; order: 11; }
  .order-md-12 { -ms-flex-order: 12; order: 12; }
  .offset-md-0 { margin-left: 0; }
  .offset-md-1 { margin-left: 8.333333%; }
  .offset-md-2 { margin-left: 16.666667%; }
  .offset-md-3 { margin-left: 25%; }
  .offset-md-4 { margin-left: 33.333333%; }
  .offset-md-5 { margin-left: 41.666667%; }
  .offset-md-6 { margin-left: 50%; }
  .offset-md-7 { margin-left: 58.333333%; }
  .offset-md-8 { margin-left: 66.666667%; }
  .offset-md-9 { margin-left: 75%; }
  .offset-md-10 { margin-left: 83.333333%; }
  .offset-md-11 { margin-left: 91.666667%; }
}

/* 响应式布局 - 大屏幕 */
@media (min-width: 992px) {
  .col-lg {
    -ms-flex-preferred-size: 0;
    flex-basis: 0;
    -ms-flex-positive: 1;
    flex-grow: 1;
    max-width: 100%;
  }
  .col-lg-auto {
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
    width: auto;
    max-width: 100%;
  }
  .col-lg-1 { -ms-flex: 0 0 8.333333%; flex: 0 0 8.333333%; max-width: 8.333333%; }
  .col-lg-2 { -ms-flex: 0 0 16.666667%; flex: 0 0 16.666667%; max-width: 16.666667%; }
  .col-lg-3 { -ms-flex: 0 0 25%; flex: 0 0 25%; max-width: 25%; }
  .col-lg-4 { -ms-flex: 0 0 33.333333%; flex: 0 0 33.333333%; max-width: 33.333333%; }
  .col-lg-5 { -ms-flex: 0 0 41.666667%; flex: 0 0 41.666667%; max-width: 41.666667%; }
  .col-lg-6 { -ms-flex: 0 0 50%; flex: 0 0 50%; max-width: 50%; }
  .col-lg-7 { -ms-flex: 0 0 58.333333%; flex: 0 0 58.333333%; max-width: 58.333333%; }
  .col-lg-8 { -ms-flex: 0 0 66.666667%; flex: 0 0 66.666667%; max-width: 66.666667%; }
  .col-lg-9 { -ms-flex: 0 0 75%; flex: 0 0 75%; max-width: 75%; }
  .col-lg-10 { -ms-flex: 0 0 83.333333%; flex: 0 0 83.333333%; max-width: 83.333333%; }
  .col-lg-11 { -ms-flex: 0 0 91.666667%; flex: 0 0 91.666667%; max-width: 91.666667%; }
  .col-lg-12 { -ms-flex: 0 0 100%; flex: 0 0 100%; max-width: 100%; }
  .order-lg-first { -ms-flex-order: -1; order: -1; }
  .order-lg-last { -ms-flex-order: 13; order: 13; }
  .order-lg-0 { -ms-flex-order: 0; order: 0; }
  .order-lg-1 { -ms-flex-order: 1; order: 1; }
  .order-lg-2 { -ms-flex-order: 2; order: 2; }
  .order-lg-3 { -ms-flex-order: 3; order: 3; }
  .order-lg-4 { -ms-flex-order: 4; order: 4; }
  .order-lg-5 { -ms-flex-order: 5; order: 5; }
  .order-lg-6 { -ms-flex-order: 6; order: 6; }
  .order-lg-7 { -ms-flex-order: 7; order: 7; }
  .order-lg-8 { -ms-flex-order: 8; order: 8; }
  .order-lg-9 { -ms-flex-order: 9; order: 9; }
  .order-lg-10 { -ms-flex-order: 10; order: 10; }
  .order-lg-11 { -ms-flex-order: 11; order: 11; }
  .order-lg-12 { -ms-flex-order: 12; order: 12; }
  .offset-lg-0 { margin-left: 0; }
  .offset-lg-1 { margin-left: 8.333333%; }
  .offset-lg-2 { margin-left: 16.666667%; }
  .offset-lg-3 { margin-left: 25%; }
  .offset-lg-4 { margin-left: 33.333333%; }
  .offset-lg-5 { margin-left: 41.666667%; }
  .offset-lg-6 { margin-left: 50%; }
  .offset-lg-7 { margin-left: 58.333333%; }
  .offset-lg-8 { margin-left: 66.666667%; }
  .offset-lg-9 { margin-left: 75%; }
  .offset-lg-10 { margin-left: 83.333333%; }
  .offset-lg-11 { margin-left: 91.666667%; }
}

/* 响应式布局 - 超大屏幕 */
@media (min-width: 1200px) {
  .col-xl {
    -ms-flex-preferred-size: 0;
    flex-basis: 0;
    -ms-flex-positive: 1;
    flex-grow: 1;
    max-width: 100%;
  }
  .col-xl-auto {
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
    width: auto;
    max-width: 100%;
  }
  .col-xl-1 { -ms-flex: 0 0 8.333333%; flex: 0 0 8.333333%; max-width: 8.333333%; }
  .col-xl-2 { -ms-flex: 0 0 16.666667%; flex: 0 0 16.666667%; max-width: 16.666667%; }
  .col-xl-3 { -ms-flex: 0 0 25%; flex: 0 0 25%; max-width: 25%; }
  .col-xl-4 { -ms-flex: 0 0 33.333333%; flex: 0 0 33.333333%; max-width: 33.333333%; }
  .col-xl-5 { -ms-flex: 0 0 41.666667%; flex: 0 0 41.666667%; max-width: 41.666667%; }
  .col-xl-6 { -ms-flex: 0 0 50%; flex: 0 0 50%; max-width: 50%; }
  .col-xl-7 { -ms-flex: 0 0 58.333333%; flex: 0 0 58.333333%; max-width: 58.333333%; }
  .col-xl-8 { -ms-flex: 0 0 66.666667%; flex: 0 0 66.666667%; max-width: 66.666667%; }
  .col-xl-9 { -ms-flex: 0 0 75%; flex: 0 0 75%; max-width: 75%; }
  .col-xl-10 { -ms-flex: 0 0 83.333333%; flex: 0 0 83.333333%; max-width: 83.333333%; }
  .col-xl-11 { -ms-flex: 0 0 91.666667%; flex: 0 0 91.666667%; max-width: 91.666667%; }
  .col-xl-12 { -ms-flex: 0 0 100%; flex: 0 0 100%; max-width: 100%; }
  .order-xl-first { -ms-flex-order: -1; order: -1; }
  .order-xl-last { -ms-flex-order: 13; order: 13; }
  .order-xl-0 { -ms-flex-order: 0; order: 0; }
  .order-xl-1 { -ms-flex-order: 1; order: 1; }
  .order-xl-2 { -ms-flex-order: 2; order: 2; }
  .order-xl-3 { -ms-flex-order: 3; order: 3; }
  .order-xl-4 { -ms-flex-order: 4; order: 4; }
  .order-xl-5 { -ms-flex-order: 5; order: 5; }
  .order-xl-6 { -ms-flex-order: 6; order: 6; }
  .order-xl-7 { -ms-flex-order: 7; order: 7; }
  .order-xl-8 { -ms-flex-order: 8; order: 8; }
  .order-xl-9 { -ms-flex-order: 9; order: 9; }
  .order-xl-10 { -ms-flex-order: 10; order: 10; }
  .order-xl-11 { -ms-flex-order: 11; order: 11; }
  .order-xl-12 { -ms-flex-order: 12; order: 12; }
  .offset-xl-0 { margin-left: 0; }
  .offset-xl-1 { margin-left: 8.333333%; }
  .offset-xl-2 { margin-left: 16.666667%; }
  .offset-xl-3 { margin-left: 25%; }
  .offset-xl-4 { margin-left: 33.333333%; }
  .offset-xl-5 { margin-left: 41.666667%; }
  .offset-xl-6 { margin-left: 50%; }
  .offset-xl-7 { margin-left: 58.333333%; }
  .offset-xl-8 { margin-left: 66.666667%; }
  .offset-xl-9 { margin-left: 75%; }
  .offset-xl-10 { margin-left: 83.333333%; }
  .offset-xl-11 { margin-left: 91.666667%; }
}

/* 间距类样式 */
.m-0 { margin: 0 !important; }
.mt-0, .my-0 { margin-top: 0 !important; }
.mr-0, .mx-0 { margin-right: 0 !important; }
.mb-0, .my-0 { margin-bottom: 0 !important; }
.ml-0, .mx-0 { margin-left: 0 !important; }

.m-1 { margin: 0.25rem !important; }
.mt-1, .my-1 { margin-top: 0.25rem !important; }
.mr-1, .mx-1 { margin-right: 0.25rem !important; }
.mb-1, .my-1 { margin-bottom: 0.25rem !important; }
.ml-1, .mx-1 { margin-left: 0.25rem !important; }

.m-2 { margin: 0.5rem !important; }
.mt-2, .my-2 { margin-top: 0.5rem !important; }
.mr-2, .mx-2 { margin-right: 0.5rem !important; }
.mb-2, .my-2 { margin-bottom: 0.5rem !important; }
.ml-2, .mx-2 { margin-left: 0.5rem !important; }

.m-3 { margin: 1rem !important; }
.mt-3, .my-3 { margin-top: 1rem !important; }
.mr-3, .mx-3 { margin-right: 1rem !important; }
.mb-3, .my-3 { margin-bottom: 1rem !important; }
.ml-3, .mx-3 { margin-left: 1rem !important; }

.m-4 { margin: 1.5rem !important; }
.mt-4, .my-4 { margin-top: 1.5rem !important; }
.mr-4, .mx-4 { margin-right: 1.5rem !important; }
.mb-4, .my-4 { margin-bottom: 1.5rem !important; }
.ml-4, .mx-4 { margin-left: 1.5rem !important; }

.m-5 { margin: 3rem !important; }
.mt-5, .my-5 { margin-top: 3rem !important; }
.mr-5, .mx-5 { margin-right: 3rem !important; }
.mb-5, .my-5 { margin-bottom: 3rem !important; }
.ml-5, .mx-5 { margin-left: 3rem !important; }

.p-0 { padding: 0 !important; }
.pt-0, .py-0 { padding-top: 0 !important; }
.pr-0, .px-0 { padding-right: 0 !important; }
.pb-0, .py-0 { padding-bottom: 0 !important; }
.pl-0, .px-0 { padding-left: 0 !important; }

.p-1 { padding: 0.25rem !important; }
.pt-1, .py-1 { padding-top: 0.25rem !important; }
.pr-1, .px-1 { padding-right: 0.25rem !important; }
.pb-1, .py-1 { padding-bottom: 0.25rem !important; }
.pl-1, .px-1 { padding-left: 0.25rem !important; }

.p-2 { padding: 0.5rem !important; }
.pt-2, .py-2 { padding-top: 0.5rem !important; }
.pr-2, .px-2 { padding-right: 0.5rem !important; }
.pb-2, .py-2 { padding-bottom: 0.5rem !important; }
.pl-2, .px-2 { padding-left: 0.5rem !important; }

.p-3 { padding: 1rem !important; }
.pt-3, .py-3 { padding-top: 1rem !important; }
.pr-3, .px-3 { padding-right: 1rem !important; }
.pb-3, .py-3 { padding-bottom: 1rem !important; }
.pl-3, .px-3 { padding-left: 1rem !important; }

.p-4 { padding: 1.5rem !important; }
.pt-4, .py-4 { padding-top: 1.5rem !important; }
.pr-4, .px-4 { padding-right: 1.5rem !important; }
.pb-4, .py-4 { padding-bottom: 1.5rem !important; }
.pl-4, .px-4 { padding-left: 1.5rem !important; }

.p-5 { padding: 3rem !important; }
.pt-5, .py-5 { padding-top: 3rem !important; }
.pr-5, .px-5 { padding-right: 3rem !important; }
.pb-5, .py-5 { padding-bottom: 3rem !important; }
.pl-5, .px-5 { padding-left: 3rem !important; }

/* 背景颜色类样式 */
.bg-primary { background-color: #007bff !important; }
a.bg-primary:hover, a.bg-primary:focus, button.bg-primary:hover, button.bg-primary:focus { background-color: #0062cc !important; }

.bg-secondary { background-color: #6c757d !important; }
a.bg-secondary:hover, a.bg-secondary:focus, button.bg-secondary:hover, button.bg-secondary:focus { background-color: #545b62 !important; }

.bg-success { background-color: #28a745 !important; }
a.bg-success:hover, a.bg-success:focus, button.bg-success:hover, button.bg-success:focus { background-color: #1e7e34 !important; }

.bg-info { background-color: #17a2b8 !important; }
a.bg-info:hover, a.bg-info:focus, button.bg-info:hover, button.bg-info:focus { background-color: #117a8b !important; }

.bg-warning { background-color: #ffc107 !important; }
a.bg-warning:hover, a.bg-warning:focus, button.bg-warning:hover, button.bg-warning:focus { background-color: #d39e00 !important; }

.bg-danger { background-color: #dc3545 !important; }
a.bg-danger:hover, a.bg-danger:focus, button.bg-danger:hover, button.bg-danger:focus { background-color: #bd2130 !important; }

.bg-light { background-color: #f8f9fa !important; }
.bg-light2 { background-color: #f1f2f3 !important; }
a.bg-light:hover, a.bg-light:focus, button.bg-light:hover, button.bg-light:focus { background-color: #dae0e5 !important; }

.bg-dark { background-color: #343a40 !important; }
a.bg-dark:hover, a.bg-dark:focus, button.bg-dark:hover, button.bg-dark:focus { background-color: #1d2124 !important; }

.bg-white { background-color: #fff !important; }

.bg-transparent { background-color: transparent !important; }

/* 显示相关类样式 */
.d-none { display: none !important; }
.d-inline { display: inline !important; }
.d-inline-block { display: inline-block !important; }
.d-block { display: block !important; }
.d-table { display: table !important; }
.d-table-row { display: table-row !important; }
.d-table-cell { display: table-cell !important; }
.d-flex { display: -ms-flexbox !important; display: flex !important; }
.d-inline-flex { display: -ms-inline-flexbox !important; display: inline-flex !important; }

/* 小屏幕响应式显示类 (576px 及以上) */
@media (min-width: 576px) {
  .d-sm-none { display: none !important; }
  .d-sm-inline { display: inline !important; }
  .d-sm-inline-block { display: inline-block !important; }
  .d-sm-block { display: block !important; }
  .d-sm-table { display: table !important; }
  .d-sm-table-row { display: table-row !important; }
  .d-sm-table-cell { display: table-cell !important; }
  .d-sm-flex { display: -ms-flexbox !important; display: flex !important; }
  .d-sm-inline-flex { display: -ms-inline-flexbox !important; display: inline-flex !important; }
}

/* 中等屏幕响应式显示类 (768px 及以上) */
@media (min-width: 768px) {
  .d-md-none { display: none !important; }
  .d-md-inline { display: inline !important; }
  .d-md-inline-block { display: inline-block !important; }
  .d-md-block { display: block !important; }
  .d-md-table { display: table !important; }
  .d-md-table-row { display: table-row !important; }
  .d-md-table-cell { display: table-cell !important; }
  .d-md-flex { display: -ms-flexbox !important; display: flex !important; }
  .d-md-inline-flex { display: -ms-inline-flexbox !important; display: inline-flex !important; }
}

/* 大屏幕响应式显示类 (992px 及以上) */
@media (min-width: 992px) {
  .d-lg-none { display: none !important; }
  .d-lg-inline { display: inline !important; }
  .d-lg-inline-block { display: inline-block !important; }
  .d-lg-block { display: block !important; }
  .d-lg-table { display: table !important; }
  .d-lg-table-row { display: table-row !important; }
  .d-lg-table-cell { display: table-cell !important; }
  .d-lg-flex { display: -ms-flexbox !important; display: flex !important; }
  .d-lg-inline-flex { display: -ms-inline-flexbox !important; display: inline-flex !important; }
}

/* 超大屏幕响应式显示类 (1200px 及以上) */
@media (min-width: 1200px) {
  .d-xl-none { display: none !important; }
  .d-xl-inline { display: inline !important; }
  .d-xl-inline-block { display: inline-block !important; }
  .d-xl-block { display: block !important; }
  .d-xl-table { display: table !important; }
  .d-xl-table-row { display: table-row !important; }
  .d-xl-table-cell { display: table-cell !important; }
  .d-xl-flex { display: -ms-flexbox !important; display: flex !important; }
  .d-xl-inline-flex { display: -ms-inline-flexbox !important; display: inline-flex !important; }
}

/* 打印显示类 */
@media print {
  .d-print-none { display: none !important; }
  .d-print-inline { display: inline !important; }
  .d-print-inline-block { display: inline-block !important; }
  .d-print-block { display: block !important; }
  .d-print-table { display: table !important; }
  .d-print-table-row { display: table-row !important; }
  .d-print-table-cell { display: table-cell !important; }
  .d-print-flex { display: -ms-flexbox !important; display: flex !important; }
  .d-print-inline-flex { display: -ms-inline-flexbox !important; display: inline-flex !important; }
}

/* Flex 容器对齐类 */
.justify-content-start { -ms-flex-pack: start !important; justify-content: flex-start !important; }
.justify-content-end { -ms-flex-pack: end !important; justify-content: flex-end !important; }
.justify-content-center { -ms-flex-pack: center !important; justify-content: center !important; }
.justify-content-between { -ms-flex-pack: justify !important; justify-content: space-between !important; }
.justify-content-around { -ms-flex-pack: distribute !important; justify-content: space-around !important; }

/* Flex 项目对齐类 */
.align-items-start { -ms-flex-align: start !important; align-items: flex-start !important; }
.align-items-end { -ms-flex-align: end !important; align-items: flex-end !important; }
.align-items-center { -ms-flex-align: center !important; align-items: center !important; }
.align-items-baseline { -ms-flex-align: baseline !important; align-items: baseline !important; }
.align-items-stretch { -ms-flex-align: stretch !important; align-items: stretch !important; }

/* 多线 Flex 容器对齐类 */
.align-content-start { -ms-flex-line-pack: start !important; align-content: flex-start !important; }
.align-content-end { -ms-flex-line-pack: end !important; align-content: flex-end !important; }
.align-content-center { -ms-flex-line-pack: center !important; align-content: center !important; }
.align-content-between { -ms-flex-line-pack: justify !important; align-content: space-between !important; }
.align-content-around { -ms-flex-line-pack: distribute !important; align-content: space-around !important; }
.align-content-stretch { -ms-flex-line-pack: stretch !important; align-content: stretch !important; }

/* 单个 Flex 项目对齐类 */
.align-self-auto { -ms-flex-item-align: auto !important; align-self: auto !important; }
.align-self-start { -ms-flex-item-align: start !important; align-self: flex-start !important; }
.align-self-end { -ms-flex-item-align: end !important; align-self: flex-end !important; }
.align-self-center { -ms-flex-item-align: center !important; align-self: center !important; }
.align-self-baseline { -ms-flex-item-align: baseline !important; align-self: baseline !important; }
.align-self-stretch { -ms-flex-item-align: stretch !important; align-self: stretch !important; }

/* 溢出和定位类 */
.overflow-auto { overflow: auto !important; }
.overflow-hidden { overflow: hidden !important; }

.position-static { position: static !important; }
.position-relative { position: relative !important; }
.position-absolute { position: absolute !important; }
.position-fixed { position: fixed !important; }
.position-sticky { position: -webkit-sticky !important; position: sticky !important; }

/* 小屏幕响应式对齐类 (576px 及以上) */
@media (min-width: 576px) {
  .justify-content-sm-start { -ms-flex-pack: start !important; justify-content: flex-start !important; }
  .justify-content-sm-end { -ms-flex-pack: end !important; justify-content: flex-end !important; }
  .justify-content-sm-center { -ms-flex-pack: center !important; justify-content: center !important; }
  .justify-content-sm-between { -ms-flex-pack: justify !important; justify-content: space-between !important; }
  .justify-content-sm-around { -ms-flex-pack: distribute !important; justify-content: space-around !important; }
  
  .align-items-sm-start { -ms-flex-align: start !important; align-items: flex-start !important; }
  .align-items-sm-end { -ms-flex-align: end !important; align-items: flex-end !important; }
  .align-items-sm-center { -ms-flex-align: center !important; align-items: center !important; }
  .align-items-sm-baseline { -ms-flex-align: baseline !important; align-items: baseline !important; }
  .align-items-sm-stretch { -ms-flex-align: stretch !important; align-items: stretch !important; }
  
  .align-content-sm-start { -ms-flex-line-pack: start !important; align-content: flex-start !important; }
  .align-content-sm-end { -ms-flex-line-pack: end !important; align-content: flex-end !important; }
  .align-content-sm-center { -ms-flex-line-pack: center !important; align-content: center !important; }
  .align-content-sm-between { -ms-flex-line-pack: justify !important; align-content: space-between !important; }
  .align-content-sm-around { -ms-flex-line-pack: distribute !important; align-content: space-around !important; }
  .align-content-sm-stretch { -ms-flex-line-pack: stretch !important; align-content: stretch !important; }
}

/* 中等屏幕响应式对齐类 (768px 及以上) */
@media (min-width: 768px) {
  .justify-content-md-start { -ms-flex-pack: start !important; justify-content: flex-start !important; }
  .justify-content-md-end { -ms-flex-pack: end !important; justify-content: flex-end !important; }
  .justify-content-md-center { -ms-flex-pack: center !important; justify-content: center !important; }
  .justify-content-md-between { -ms-flex-pack: justify !important; justify-content: space-between !important; }
  .justify-content-md-around { -ms-flex-pack: distribute !important; justify-content: space-around !important; }
  
  .align-items-md-start { -ms-flex-align: start !important; align-items: flex-start !important; }
  .align-items-md-end { -ms-flex-align: end !important; align-items: flex-end !important; }
  .align-items-md-center { -ms-flex-align: center !important; align-items: center !important; }
  .align-items-md-baseline { -ms-flex-align: baseline !important; align-items: baseline !important; }
  .align-items-md-stretch { -ms-flex-align: stretch !important; align-items: stretch !important; }
  
  .align-content-md-start { -ms-flex-line-pack: start !important; align-content: flex-start !important; }
  .align-content-md-end { -ms-flex-line-pack: end !important; align-content: flex-end !important; }
  .align-content-md-center { -ms-flex-line-pack: center !important; align-content: center !important; }
  .align-content-md-between { -ms-flex-line-pack: justify !important; align-content: space-between !important; }
  .align-content-md-around { -ms-flex-line-pack: distribute !important; align-content: space-around !important; }
  .align-content-md-stretch { -ms-flex-line-pack: stretch !important; align-content: stretch !important; }
}

/* 大屏幕响应式对齐类 (992px 及以上) */
@media (min-width: 992px) {
  .justify-content-lg-start { -ms-flex-pack: start !important; justify-content: flex-start !important; }
  .justify-content-lg-end { -ms-flex-pack: end !important; justify-content: flex-end !important; }
  .justify-content-lg-center { -ms-flex-pack: center !important; justify-content: center !important; }
  .justify-content-lg-between { -ms-flex-pack: justify !important; justify-content: space-between !important; }
  .justify-content-lg-around { -ms-flex-pack: distribute !important; justify-content: space-around !important; }
  
  .align-items-lg-start { -ms-flex-align: start !important; align-items: flex-start !important; }
  .align-items-lg-end { -ms-flex-align: end !important; align-items: flex-end !important; }
  .align-items-lg-center { -ms-flex-align: center !important; align-items: center !important; }
  .align-items-lg-baseline { -ms-flex-align: baseline !important; align-items: baseline !important; }
  .align-items-lg-stretch { -ms-flex-align: stretch !important; align-items: stretch !important; }
  
  .align-content-lg-start { -ms-flex-line-pack: start !important; align-content: flex-start !important; }
  .align-content-lg-end { -ms-flex-line-pack: end !important; align-content: flex-end !important; }
  .align-content-lg-center { -ms-flex-line-pack: center !important; align-content: center !important; }
  .align-content-lg-between { -ms-flex-line-pack: justify !important; align-content: space-between !important; }
  .align-content-lg-around { -ms-flex-line-pack: distribute !important; align-content: space-around !important; }
  .align-content-lg-stretch { -ms-flex-line-pack: stretch !important; align-content: stretch !important; }
}

/* 超大屏幕响应式对齐类 (1200px 及以上) */
@media (min-width: 1200px) {
  .justify-content-xl-start { -ms-flex-pack: start !important; justify-content: flex-start !important; }
  .justify-content-xl-end { -ms-flex-pack: end !important; justify-content: flex-end !important; }
  .justify-content-xl-center { -ms-flex-pack: center !important; justify-content: center !important; }
  .justify-content-xl-between { -ms-flex-pack: justify !important; justify-content: space-between !important; }
  .justify-content-xl-around { -ms-flex-pack: distribute !important; justify-content: space-around !important; }
  
  .align-items-xl-start { -ms-flex-align: start !important; align-items: flex-start !important; }
  .align-items-xl-end { -ms-flex-align: end !important; align-items: flex-end !important; }
  .align-items-xl-center { -ms-flex-align: center !important; align-items: center !important; }
  .align-items-xl-baseline { -ms-flex-align: baseline !important; align-items: baseline !important; }
  .align-items-xl-stretch { -ms-flex-align: stretch !important; align-items: stretch !important; }
  
  .align-content-xl-start { -ms-flex-line-pack: start !important; align-content: flex-start !important; }
  .align-content-xl-end { -ms-flex-line-pack: end !important; align-content: flex-end !important; }
  .align-content-xl-center { -ms-flex-line-pack: center !important; align-content: center !important; }
  .align-content-xl-between { -ms-flex-line-pack: justify !important; align-content: space-between !important; }
  .align-content-xl-around { -ms-flex-line-pack: distribute !important; align-content: space-around !important; }
  .align-content-xl-stretch { -ms-flex-line-pack: stretch !important; align-content: stretch !important; }
}

/* 自动边距类 */
.m-auto { margin: auto !important; }
.mt-auto, .my-auto { margin-top: auto !important; }
.mr-auto, .mx-auto { margin-right: auto !important; }
.mb-auto, .my-auto { margin-bottom: auto !important; }
.ml-auto, .mx-auto { margin-left: auto !important; }

/* 负值边距类 */
.m-n1 { margin: -0.25rem !important; }
.mt-n1, .my-n1 { margin-top: -0.25rem !important; }
.mr-n1, .mx-n1 { margin-right: -0.25rem !important; }
.mb-n1, .my-n1 { margin-bottom: -0.25rem !important; }
.ml-n1, .mx-n1 { margin-left: -0.25rem !important; }

.m-n2 { margin: -0.5rem !important; }
.mt-n2, .my-n2 { margin-top: -0.5rem !important; }
.mr-n2, .mx-n2 { margin-right: -0.5rem !important; }
.mb-n2, .my-n2 { margin-bottom: -0.5rem !important; }
.ml-n2, .mx-n2 { margin-left: -0.5rem !important; }

.m-n3 { margin: -1rem !important; }
.mt-n3, .my-n3 { margin-top: -1rem !important; }
.mr-n3, .mx-n3 { margin-right: -1rem !important; }
.mb-n3, .my-n3 { margin-bottom: -1rem !important; }
.ml-n3, .mx-n3 { margin-left: -1rem !important; }

.m-n4 { margin: -1.5rem !important; }
.mt-n4, .my-n4 { margin-top: -1.5rem !important; }
.mr-n4, .mx-n4 { margin-right: -1.5rem !important; }
.mb-n4, .my-n4 { margin-bottom: -1.5rem !important; }
.ml-n4, .mx-n4 { margin-left: -1.5rem !important; }

.m-n5 { margin: -3rem !important; }
.mt-n5, .my-n5 { margin-top: -3rem !important; }
.mr-n5, .mx-n5 { margin-right: -3rem !important; }
.mb-n5, .my-n5 { margin-bottom: -3rem !important; }
.ml-n5, .mx-n5 { margin-left: -3rem !important; }

/* 文本颜色类 */
.text-white { color: #fff !important; }
.text-primary { color: #007bff !important; }
.text-secondary { color: #6c757d !important; }
.text-success { color: #28a745 !important; }
.text-info { color: #17a2b8 !important; }
.text-warning { color: #ffc107 !important; }
.text-danger { color: #dc3545 !important; }
.text-light { color: #f8f9fa !important; }
.text-dark { color: #343a40 !important; }
.text-body { color: #212529 !important; }
.text-muted { color: #6c757d !important; }
.text-black-50 { color: rgba(0, 0, 0, 0.5) !important; }
.text-white-50 { color: rgba(255, 255, 255, 0.5) !important; }

/* 文本颜色链接交互 */
a.text-primary:hover, a.text-primary:focus { color: #0056b3 !important; }
a.text-secondary:hover, a.text-secondary:focus { color: #494f54 !important; }
a.text-success:hover, a.text-success:focus { color: #19692c !important; }
a.text-info:hover, a.text-info:focus { color: #0f6674 !important; }
a.text-warning:hover, a.text-warning:focus { color: #ba8b00 !important; }
a.text-danger:hover, a.text-danger:focus { color: #a71d2a !important; }
a.text-light:hover, a.text-light:focus { color: #cbd3da !important; }
a.text-dark:hover, a.text-dark:focus { color: #121416 !important; }

/* 文本对齐类 */
.text-left { text-align: left !important; }
.text-right { text-align: right !important; }
.text-center { text-align: center !important; }

/* 响应式文本对齐类 */
@media (min-width: 576px) {
  .text-sm-left { text-align: left !important; }
  .text-sm-right { text-align: right !important; }
  .text-sm-center { text-align: center !important; }
}

@media (min-width: 768px) {
  .text-md-left { text-align: left !important; }
  .text-md-right { text-align: right !important; }
  .text-md-center { text-align: center !important; }
}

@media (min-width: 992px) {
  .text-lg-left { text-align: left !important; }
  .text-lg-right { text-align: right !important; }
  .text-lg-center { text-align: center !important; }
}

@media (min-width: 1200px) {
  .text-xl-left { text-align: left !important; }
  .text-xl-right { text-align: right !important; }
  .text-xl-center { text-align: center !important; }
}

/* 文本转换类 */
.text-lowercase { text-transform: lowercase !important; }
.text-uppercase { text-transform: uppercase !important; }
.text-capitalize { text-transform: capitalize !important; }

/* 字体粗细类 */
.font-weight-light { font-weight: 300 !important; }
.font-weight-lighter { font-weight: lighter !important; }
.font-weight-normal { font-weight: 400 !important; }
.font-weight-bold { font-weight: 700 !important; }
.font-weight-bolder { font-weight: bolder !important; }

/* 字体样式类 */
.font-italic { font-style: italic !important; }

/* 其他文本类 */
.text-hide { 
  font: 0/0 a;
  color: transparent;
  text-shadow: none;
  background-color: transparent;
  border: 0;
}
.text-decoration-none { text-decoration: none !important; }
.text-break { 
  word-break: break-word !important;
  overflow-wrap: break-word !important;
}
.text-reset { color: inherit !important; }

/* 宽度类 */
.w-25 { width: 25% !important; }
.w-50 { width: 50% !important; }
.w-75 { width: 75% !important; }
.w-100 { width: 100% !important; }
.w-auto { width: auto !important; }

/* 高度类 */
.h-25 { height: 25% !important; }
.h-50 { height: 50% !important; }
.h-75 { height: 75% !important; }
.h-100 { height: 100% !important; }
.h-auto { height: auto !important; }

/* 边框类 */
.border-top { border-top: 1px solid #dee2e6 !important; }
.border-right { border-right: 1px solid #dee2e6 !important; }
.border-bottom { border-bottom: 1px solid #dee2e6 !important; }
.border-left { border-left: 1px solid #dee2e6 !important; }
.border-0 { border: 0 !important; }
.border-top-0 { border-top: 0 !important; }
.border-right-0 { border-right: 0 !important; }
.border-bottom-0 { border-bottom: 0 !important; }
.border-left-0 { border-left: 0 !important; }
.border-primary { border-color: #007bff !important; }
.border-secondary { border-color: #6c757d !important; }
.border-success { border-color: #28a745 !important; }
.border-info { border-color: #17a2b8 !important; }
.border-warning { border-color: #ffc107 !important; }
.border-danger { border-color: #dc3545 !important; }
.border-light { border-color: #f8f9fa !important; }
.border-dark { border-color: #343a40 !important; }
.border-white { border-color: #fff !important; }

/* 圆角类 */
.rounded-sm { border-radius: 0.2rem !important; }
.rounded { border-radius: 0.25rem !important; }
.rounded-top { border-top-left-radius: 0.25rem !important; border-top-right-radius: 0.25rem !important; }
.rounded-right { border-top-right-radius: 0.25rem !important; border-bottom-right-radius: 0.25rem !important; }
.rounded-bottom { border-bottom-right-radius: 0.25rem !important; border-bottom-left-radius: 0.25rem !important; }
.rounded-left { border-top-left-radius: 0.25rem !important; border-bottom-left-radius: 0.25rem !important; }
.rounded-lg { border-radius: 0.3rem !important; }
.rounded-circle { border-radius: 50% !important; }
.rounded-pill { border-radius: 50rem !important; }
.rounded-0 { border-radius: 0 !important; }


/* 从Bootstrap复制的img相关样式 */
img {
  vertical-align: middle;
  border-style: none;
}

.img-fluid {
  max-width: 100%;
  height: auto;
}

.img-thumbnail {
  padding: 0.25rem;
  background-color: #fff;
  border: 1px solid #dee2e6;
  border-radius: 0.25rem;
  max-width: 100%;
  height: auto;
}

.figure-img {
  margin-bottom: 0.5rem;
  line-height: 1;
}