/* ============================================================
   设计令牌（取自原站计算样式，1rem = 100 * viewport / 750）
   ============================================================ */
:root {
  --ink: #181818;
  --ink-2: #8d8c8f;
  --line: rgba(24, 24, 24, 0.08);

  --up: #3db909;
  --down: #fe6065;

  --lime-a: #c5f86c;
  --lime-b: #e7fc7c;
  --lime-ink: #181818;

  --r-card: 0.2rem;

  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* ============================================================
   基础
   ============================================================ */
* {
  -webkit-tap-highlight-color: transparent;
  box-sizing: border-box;
}

html,
body {
  width: 100%;
  height: auto;
  min-height: 100%;
}

html {
  font-size: 50px;
}

body {
  margin: 0;
  padding: 0 0.32rem 1.08rem;
  color: var(--ink);
  font-family: "Microsoft YaHei", tahoma, arial, sans-serif;
  font-size: 14px;
  -webkit-font-smoothing: antialiased;
  background:
    url("/static/img/page_bg_color.png") no-repeat right top,
    linear-gradient(180deg, #dbeae7 0%, #e3edce 51%, #ddeae5 100%);
  background-size: auto, auto;
}

a,
a:focus,
a:hover {
  color: var(--ink);
  text-decoration: none;
}

button,
input,
select,
textarea {
  font-family: inherit;
  border: none;
  outline: none;
  background: transparent;
  appearance: none;
  -webkit-appearance: none;
  border-radius: 0;
}

img {
  display: block;
  border: 0;
}

ul,
ol,
p,
h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  padding: 0;
  font-weight: normal;
}

.flex {
  display: flex;
}

.flex-center {
  justify-content: center;
}

.flex-between {
  justify-content: space-between;
}

.flex-row {
  flex-wrap: wrap;
}

.align-center {
  align-items: center;
}

.tc {
  text-align: center;
}

.tr {
  text-align: right;
}

.img {
  width: 100%;
}

.ellipsis {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ============================================================
   顶部栏
   ============================================================ */
.header-wrap {
  position: relative;
  flex: 0 0 auto;
  height: 0.88rem;
  line-height: 0.88rem;
  color: var(--ink);
}

.header-wrap > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 0.88rem;
  font-size: 14px;
}

.left-arrow {
  width: 0.2rem;
  height: 0.2rem;
  margin-left: 0.1rem;
  border-left: 0.045rem solid var(--ink);
  border-bottom: 0.045rem solid var(--ink);
  transform: rotate(45deg);
  cursor: pointer;
  flex: 0 0 auto;
}

.left-arrow::after {
  content: "";
  display: block;
  width: 0.34rem;
  height: 0.34rem;
  margin: -0.07rem 0 0 -0.07rem;
}

.header-action {
  font-size: 14px;
  color: var(--ink);
  flex: 0 0 auto;
  cursor: pointer;
}

.header-help {
  width: 0.62rem;
  height: 0.62rem;
  flex: 0 0 auto;
  cursor: pointer;
}

.header-back-img {
  width: 0.2rem;
  flex: 0 0 0.2rem;
  cursor: pointer;
}

.header-spacer {
  width: 0.42rem;
  flex: 0 0 auto;
}

/* 首页顶栏 */
.brand-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 0.88rem;
}

.brand-head__logo {
  width: 1.12rem;
}

.lang {
  display: block;
  text-align: right;
  font-size: 14px;
  color: var(--ink);
  white-space: nowrap;
}

.lang > a {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
}

.lang img {
  width: 0.48rem;
  height: 0.48rem;
  margin-left: 6px;
}

/* ============================================================
   首页
   ============================================================ */
.banner {
  margin: 0.3rem;
  border-radius: 0.2rem;
  overflow: hidden;
}

.banner img {
  width: 100%;
  display: block;
}

.ticker {
  position: relative;
  display: flex;
  align-items: center;
  height: 0.8rem;
  margin-top: 0.23rem;
  padding: 0 0.2rem;
  border-radius: 0.8rem;
  background: #000;
  overflow: hidden;
}

.ticker__icon {
  width: 0.4rem;
  flex: 0 0 0.4rem;
}

.ticker__view {
  position: relative;
  flex: 1;
  height: 100%;
  overflow: hidden;
  margin-left: 0.16rem;
}

.ticker__track {
  position: absolute;
  top: 50%;
  left: 0;
  white-space: nowrap;
  font-size: 0.22rem;
  color: #fff;
  will-change: transform;
  animation: marquee 32s linear infinite;
}

.ticker__track > span {
  padding-right: 1.4rem;
}

@keyframes marquee {
  from {
    transform: translate(0, -50%);
  }
  to {
    transform: translate(-50%, -50%);
  }
}

.quick {
  display: flex;
  align-items: center;
  margin-top: 0.23rem;
  padding: 0.23rem 0;
  background: #fff;
  border-radius: var(--r-card);
}

.quick__item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  color: var(--ink);
}

.quick__item img {
  width: 0.66rem;
}

.quick__item span {
  margin-top: 0.08rem;
  font-size: 0.22rem;
  line-height: 0.29rem;
}

.spotlight {
  display: flex;
  justify-content: space-between;
  margin-top: 0.23rem;
}

.spotlight__card {
  width: 2.15rem;
  padding: 0.26rem 0;
  text-align: center;
  background: #fff;
  border-radius: var(--r-card);
}

.spotlight__pair {
  font-size: 0.22rem;
  color: var(--ink);
}

.spotlight__price {
  margin-top: 0.13rem;
  font-size: 0.29rem;
  font-weight: 600;
}

.spotlight__change {
  margin-top: 0.04rem;
  padding: 5px 0;
  font-size: 0.24rem;
  font-weight: 500;
  border-radius: 0.3rem;
}

.spotlight__price.is-up,
.spotlight__change.is-up {
  color: var(--up);
}

.spotlight__price.is-down,
.spotlight__change.is-down {
  color: var(--down);
}

.spotlight__price.is-flat,
.spotlight__change.is-flat {
  color: var(--ink);
}

.section-title {
  margin-top: 0.36rem;
  font-size: 0.28rem;
  font-weight: 600;
  color: var(--ink);
}

.market {
  margin-top: 10px;
  padding: 10px;
  background: #fff;
  border-radius: var(--r-card);
}

.market__head {
  display: flex;
  font-size: 0.2rem;
  color: var(--ink);
  padding-bottom: 0.1rem;
}

.market__row {
  display: flex;
  align-items: center;
  padding: 15px 0;
  font-size: 13px;
}

.col-name {
  flex: 1.2;
  display: flex;
  align-items: center;
  min-width: 0;
  text-align: left;
}

.col-name img {
  width: 0.638rem;
  border-radius: 50%;
}

.col-name .pair {
  margin-left: 10px;
  font-size: 0.22rem;
  color: var(--ink);
  white-space: nowrap;
}

.col-price {
  flex: 1;
  margin-left: 6px;
  text-align: center;
  font-size: 0.29rem;
  color: #181818;
  font-variant-numeric: tabular-nums;
}

.col-change {
  flex: 1;
  text-align: right;
}

.pill {
  display: inline-block;
  width: 1.4rem;
  padding: 5px 0;
  border-radius: 0.3rem;
  font-size: 0.26rem;
  color: #fff;
  text-align: center;
  font-variant-numeric: tabular-nums;
}

.pill--up {
  background: var(--up);
}

.pill--down {
  background: var(--down);
}

.pill--flat {
  background: var(--up);
}

/* ============================================================
   底部导航
   ============================================================ */
.tabbar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 500;
  display: flex;
  align-items: center;
  padding: 0.19rem 0.1rem;
  background: #fff;
}

.tabbar__item {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.2rem 0;
  border-radius: 0.42rem;
  font-size: 0;
}

.tabbar__item img {
  height: 0.36rem;
  width: auto;
}

.tabbar__item span {
  margin-left: 0.12rem;
  font-size: 0.2rem;
  color: #fff;
}

.tabbar__item.is-active {
  background: linear-gradient(90deg, #c5f86c 0%, #e7fc7c 100%);
}

.tabbar__item.is-active span {
  color: #000;
}

.tabbar__item--badge {
  position: relative;
}

.tabbar__badge {
  position: absolute;
  top: 5px;
  right: 28%;
  padding: 1px 4px;
  border-radius: 5px;
  background: red;
  color: #fff;
  font-size: 12px;
  font-style: normal;
  line-height: 1.2;
}

/* ============================================================
   按钮
   ============================================================ */
.btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 6.2rem;
  height: 0.8rem;
  margin: 0 auto;
  border-radius: 0.2rem;
  font-size: 0.26rem;
  color: var(--lime-ink);
  background: linear-gradient(90deg, #c5f86c 0%, #e7fc7c 100%);
  cursor: pointer;
}

.btn--lg {
  height: 0.98rem;
  font-size: 0.3rem;
}

.btn--full {
  width: 100%;
}

.btn--ghost {
  background: rgba(255, 255, 255, 0.9);
}

.btn--loading {
  pointer-events: none;
  position: relative;
  color: transparent;
}

.btn--loading::after {
  content: "";
  position: absolute;
  width: 0.34rem;
  height: 0.34rem;
  border-radius: 50%;
  border: 0.05rem solid rgba(24, 24, 24, 0.2);
  border-top-color: var(--ink);
  animation: spin 0.7s linear infinite;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

/* ============================================================
   表单
   ============================================================ */
.page-title {
  margin: 20px 0 0.57rem;
  font-size: 0.54rem;
  font-weight: 400;
  color: var(--ink);
}

.account-box {
  display: flex;
  align-items: center;
  height: 0.8rem;
  padding: 0 0.19rem;
  background: #fff;
  border-radius: 0.2rem;
}

.account-box + .account-box {
  margin-top: 0.5rem;
}

.account-box input {
  flex: 1;
  width: 100%;
  height: 100%;
  padding: 0;
  font-size: 0.24rem;
  color: var(--ink);
}

.account-box input::placeholder {
  color: #b4b8bd;
}

.account-box__eye {
  width: 0.45rem;
  margin-left: 0.12rem;
  cursor: pointer;
}

.account-box__prefix {
  display: flex;
  align-items: center;
  font-size: 0.24rem;
  color: var(--ink);
  padding-right: 0.24rem;
  margin-right: 0.24rem;
  border-right: 1px solid #e5e5e5;
  height: 0.4rem;
}

.captcha-row {
  display: flex;
  align-items: center;
  margin-top: 0.5rem;
}

.captcha-row .account-box {
  flex: 1;
  margin-top: 0;
}

.captcha-box {
  flex: 0 0 2.54rem;
  height: 0.8rem;
  margin-left: 0.16rem;
  border-radius: 0.1rem;
  background: #eef6ff;
  overflow: hidden;
  cursor: pointer;
}

.captcha-box canvas {
  display: block;
  width: 100%;
  height: 100%;
}

.form-hint {
  margin-top: 0.16rem;
  font-size: 0.22rem;
  line-height: 1.55;
  color: var(--down);
}

.form-link {
  margin-top: 0.36rem;
  font-size: 0.24rem;
}

.form-link a {
  color: var(--ink);
}

.form-submit {
  margin-top: 1.08rem;
}

.form-foot {
  margin-top: 0.4rem;
  text-align: center;
  font-size: 0.24rem;
  color: #999999;
}

.form-foot a {
  margin-left: 6px;
  color: var(--ink);
  cursor: pointer;
}

/* ============================================================
   账户页
   ============================================================ */
.user-info {
  padding: 0;
}

.portrait {
  width: 1.06rem;
  flex: 0 0 1.06rem;
}

.portrait img {
  width: 1.06rem;
  border-radius: 1.06rem;
}

.user-name {
  margin-left: 0.36rem;
}

.user-name b {
  display: block;
  font-size: 0.32rem;
  font-weight: 600;
  color: var(--ink);
}

.user-name span {
  display: block;
  margin-top: 0.2rem;
  font-size: 0.24rem;
  color: var(--ink);
}

.user-gear img {
  width: 0.42rem;
}

.balance-box {
  display: flex;
  margin-top: 0.4rem;
  margin-bottom: 0.35rem;
  padding: 0.21rem 0;
  background: #fff;
  border-radius: var(--r-card);
}

.balance-box > div {
  flex: 1;
  text-align: center;
}

.balance-box__split {
  flex: 0 0 1px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.balance-box__split i {
  display: block;
  width: 1px;
  height: 70%;
  background: #e6e6e6;
}

.balance-box__label {
  font-size: 0.2rem;
  color: var(--ink);
}

.balance-box__value {
  margin-top: 0.1rem;
  font-size: 0.3rem;
  font-weight: 600;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}

.refund-btn {
  display: inline-block;
  margin-top: 0.17rem;
  padding: 0.15rem 0.22rem;
  border-radius: 0.2rem;
  font-size: 0.18rem;
  color: var(--lime-ink);
  background: linear-gradient(90deg, #c5f86c 0%, #e7fc7c 100%);
  cursor: pointer;
}

.cate {
  display: flex;
  margin-top: 0.23rem;
  padding: 0.23rem 0;
  background: #fff;
  border-radius: var(--r-card);
}

.cate .item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  color: var(--ink);
}

.cate .item img {
  width: 0.66rem;
}

.cate .item span {
  margin-top: 0.08rem;
  font-size: 0.22rem;
  line-height: 0.29rem;
  white-space: nowrap;
}

.earnings {
  margin-top: 0.3rem;
  padding: 0.29rem 0.3rem 0.32rem;
  background: #fff;
  border-radius: var(--r-card);
}

.earnings__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.earnings__title {
  display: flex;
  align-items: center;
  font-size: 0.28rem;
  font-weight: 600;
}

.earnings__title i {
  width: 0.3rem;
  height: 0.3rem;
  margin-left: 0.1rem;
  border-radius: 50%;
  background: #4ab985;
  color: #fff;
  font-size: 0.2rem;
  font-style: normal;
  font-weight: 400;
  text-align: center;
  line-height: 0.3rem;
}

.earnings__badge {
  padding: 0.06rem 0.14rem;
  border-radius: 0.1rem;
  font-size: 0.2rem;
  color: #4ab985;
  background: rgba(74, 185, 133, 0.14);
}

.earnings__grid {
  display: flex;
  justify-content: space-between;
  margin-top: 0.28rem;
}

.earnings__grid > div:last-child {
  text-align: right;
}

.earnings__grid label {
  display: block;
  margin-bottom: 0.1rem;
  font-size: 0.24rem;
  color: var(--ink-2);
}

.earnings__amount {
  font-size: 0.32rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.earnings__rate {
  font-size: 0.32rem;
  font-weight: 600;
  color: #4ab985;
  font-variant-numeric: tabular-nums;
}

.cell-list {
  margin-top: 10px;
}

.cell {
  display: flex;
  align-items: center;
  margin-bottom: 0.2rem;
  padding: 15px;
  background: #fff;
  border-radius: var(--r-card);
  font-size: 14px;
  color: var(--ink);
  cursor: pointer;
}

.cell__icon {
  width: 0.44rem;
  margin-right: 0.24rem;
  flex: 0 0 0.44rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.cell__icon img {
  max-width: 100%;
  max-height: 0.44rem;
  width: auto;
}

.cell__dot {
  margin-left: 5px;
  padding: 1px 4px;
  border-radius: 5px;
  background: red;
  color: #fff;
  font-size: 12px;
  font-style: normal;
  line-height: 1.24;
}

.cell__label {
  flex: 1;
  line-height: 1.2;
}

.cell__chev {
  width: 0.2rem;
  height: 0.2rem;
  border-right: 0.05rem solid var(--ink);
  border-top: 0.05rem solid var(--ink);
  transform: rotate(45deg);
  flex: 0 0 auto;
}

.switch-btn {
  margin-top: 0.69rem;
}

/* ============================================================
   交易页
   ============================================================ */
.q-card {
  padding: 0.34rem 0.32rem;
  background: #fff;
  border-radius: var(--r-card);
}

.q-card__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 0.24rem;
  font-weight: 600;
}

.q-card__label {
  margin-top: 0.27rem;
  font-size: 0.24rem;
  font-weight: 300;
}

.q-card__amount {
  margin-top: 0.1rem;
  font-size: 0.34rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.q-card__limits {
  display: flex;
  justify-content: space-between;
  margin-top: 0.36rem;
}

.q-card__limits > div {
  font-size: 0.24rem;
  font-weight: 300;
}

.q-card__limits b {
  display: block;
  margin-top: 0.1rem;
  font-size: 0.28rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.invest-card {
  margin-top: 0.27rem;
}

.invest-card__hd {
  display: flex;
  align-items: center;
}

.invest-card__hd img {
  width: 30px;
}

.invest-card__hd span {
  margin-left: 0.14rem;
  font-size: 0.28rem;
}

.invest-card__bd {
  margin-top: 0.3rem;
  padding: 0.4rem 0.26rem;
  background: #fff;
  border-radius: 0.2rem;
}

.invest-card__rates {
  display: flex;
  justify-content: space-between;
}

.rate-num {
  display: block;
  font-size: 0.3rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.rate-num--accent {
  color: #ff4343;
}

.rate-title {
  display: block;
  margin-top: 0.16rem;
  font-size: 0.22rem;
  color: var(--ink);
}

.term-picker {
  display: flex;
  justify-content: space-between;
  margin-top: 0.31rem;
  margin-bottom: 0.41rem;
  padding: 0.3rem 0.19rem;
  border-radius: 0.2rem;
  background: rgba(217, 217, 217, 0.28);
}

.term {
  padding: 0.14rem 0.36rem;
  border: 1px solid transparent;
  border-radius: 0.2rem;
  font-size: 0.24rem;
  color: #181818;
  background: rgba(217, 217, 217, 0.45);
  cursor: pointer;
  font-variant-numeric: tabular-nums;
}

.term.is-active {
  color: #49b884;
  background: rgba(0, 189, 128, 0.1);
  border-color: #49b884;
}

.invest-card__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.invest-card__min {
  font-size: 0.24rem;
  color: var(--ink);
}

.invest-card__min b {
  display: block;
  margin-top: 0.06rem;
  font-weight: 400;
}

.invest-btn {
  padding: 0.18rem 0.3rem;
  border-radius: 0.2rem;
  font-size: 0.24rem;
  color: var(--lime-ink);
  background: linear-gradient(90deg, #c5f86c 0%, #e7fc7c 100%);
  cursor: pointer;
}

.record-head {
  display: flex;
  align-items: center;
  margin: 0.36rem 0 0.1rem;
  padding: 0 10px;
  font-size: 0.28rem;
  font-weight: 500;
  color: var(--ink);
}

.record-head__bar {
  width: 0.14rem;
  height: 0.36rem;
  margin-right: 0.2rem;
  border-radius: 0.06rem;
  background: linear-gradient(270deg, #f7cb6b, #fba980);
}

.record {
  display: flex;
  align-items: center;
  padding: 5px;
  font-size: 14px;
}

.record__icon {
  width: 0.62rem;
  flex: 0 0 0.62rem;
}

.record__mid {
  flex: 1;
  margin-left: 0.38rem;
  min-width: 0;
}

.record__mid span {
  display: block;
  line-height: 1.35;
}

.record__right {
  width: 2.5rem;
  text-align: left;
}

.record__amount {
  color: #fe9a2e;
  font-style: normal;
  font-variant-numeric: tabular-nums;
}

.record__right span {
  display: block;
  line-height: 1.35;
}

.record__time {
  display: block;
  font-size: 12px;
  color: var(--ink);
}

/* ============================================================
   充提 / 划转
   ============================================================ */
.field-label {
  margin: 0.32rem 0 0.12rem;
  font-size: 0.26rem;
  color: var(--ink);
}

.input-block {
  display: flex;
  align-items: center;
  height: 0.8rem;
  padding: 0 0.3rem;
  background: #fff;
  border-radius: 0.2rem;
}

.input-block input {
  flex: 1;
  width: 100%;
  height: 100%;
  font-size: 0.24rem;
  color: var(--ink);
}

.input-block input::placeholder {
  color: #b4b8bd;
}

.input-block--readonly {
  background: #eeeeee;
  font-size: 0.26rem;
}

.picker {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 0.8rem;
  padding: 0 0.3rem;
  background: #fff;
  border-radius: 0.2rem;
  cursor: pointer;
}

.picker__left {
  display: flex;
  align-items: center;
  font-size: 0.26rem;
}

.picker__left img {
  width: 0.48rem;
  margin-right: 0.2rem;
}

.picker__chev {
  width: 0.18rem;
  height: 0.18rem;
  border-right: 0.035rem solid #9aa0a6;
  border-bottom: 0.035rem solid #9aa0a6;
  transform: rotate(45deg) translateY(-0.05rem);
}

.tip {
  margin-top: 0.18rem;
  font-size: 0.24rem;
  line-height: 1.6;
  color: var(--ink);
}

.tip--red {
  color: var(--down);
}

.submit-zone {
  margin-top: 0.6rem;
  padding-bottom: 0.4rem;
}

.form-divider {
  margin-top: 0.3rem;
  height: 1px;
  background: rgba(24, 24, 24, 0.06);
}

/* 底栏图标保持原尺寸比例，文字不再被挤压 */
.tabbar__item span {
  white-space: nowrap;
}

.vip-limits {
  margin-top: 0.3rem;
}

.vip-limits__title {
  font-size: 0.28rem;
  font-weight: 600;
}

.vip-limits__row {
  margin-top: 0.2rem;
  font-size: 0.24rem;
  color: #6f6f6f;
  font-variant-numeric: tabular-nums;
}

.vip-limits__row.is-mine {
  color: var(--ink);
  font-weight: 600;
}

/* ============================================================
   VIP 页
   ============================================================ */
.vip-list {
  padding-bottom: 0.6rem;
}

.vip-card {
  position: relative;
  margin-top: 0.54rem;
  background-size: 100% 100%;
  background-repeat: no-repeat;
}

.vip-card__gem {
  position: absolute;
  top: 0;
  right: 0.3rem;
  width: 1.64rem;
}

.vip-card__hot {
  position: absolute;
  top: -0.15rem;
  display: none;
  align-items: center;
  color: #f3f3f3;
  font-size: 0.24rem;
  font-weight: 600;
}

.vip-card__hot.is-shown {
  display: flex;
}

.vip-card__hot img {
  position: absolute;
  width: 1.11rem;
}

.vip-card__hot span {
  position: relative;
  margin-left: 0.15rem;
}

.vip-card__body {
  padding: 0.3rem;
}

.vip-card__tag {
  width: 1.5rem;
}

.vip-card__lines {
  margin-top: 0.3rem;
}

.vip-card__lines div {
  font-size: 0.2rem;
  font-weight: 600;
  line-height: 1.65;
}

.vip-card__lines .soft {
  margin: 0.05rem 0;
  color: var(--ink) !important;
}

.vip-buy {
  position: absolute;
  top: -0.3rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  min-width: 3.31rem;
  padding: 0.16rem 0.6rem;
  border-radius: 0.2rem;
  font-size: 0.24rem;
  color: #fff;
  text-align: center;
  cursor: pointer;
}

/* ============================================================
   行情详情
   ============================================================ */
.market-page {
  padding: 0;
  height: 100vh;
  height: 100dvh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.market-head {
  flex: 0 0 auto;
  padding: 0 5px 10px;
}

.market-head__pair {
  margin-top: 10px;
  font-weight: bold;
}

.market-head__symbol {
  display: inline-block;
  font-size: 140%;
}

.market-head__price {
  display: inline-block;
  margin-left: 10px;
  font-size: 120%;
}

.market-head__change {
  display: inline-block;
  margin-left: 10px;
  font-size: 80%;
}

.market-head__stats {
  display: flex;
  margin-top: 10px;
  font-size: 90%;
  color: #5a5a5a;
}

.market-head__stats > div {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  margin-left: 10px;
}

.market-head__stats > div:first-child {
  margin-left: 0;
}

.market-head__stats b {
  margin-top: 2px;
  color: var(--ink);
  font-weight: 400;
  font-variant-numeric: tabular-nums;
}

.intervals {
  display: flex;
  padding: 5px;
  overflow-x: auto;
  scrollbar-width: none;
  font-size: 14px;
}

.intervals::-webkit-scrollbar {
  display: none;
}

.intervals span {
  flex: 0 0 auto;
  margin-right: 12px;
  padding-bottom: 6px;
  color: #5a5a5a;
  border-bottom: 2px solid transparent;
  cursor: pointer;
}

.intervals span.is-active {
  color: #2962ff;
  border-bottom-color: #2962ff;
}

.intervals span.is-label {
  color: #9aa0a6;
  cursor: default;
}

.chart-wrap {
  position: relative;
  flex: 1;
  min-height: 0;
  margin-top: 2px;
  background: #fff;
}

.chart-wrap canvas {
  display: block;
  width: 100%;
  height: 100%;
}

.color-red {
  color: #fe6065 !important;
}

.color-green {
  color: #3db909 !important;
}

/* ============================================================
   弹层 / 提示
   ============================================================ */
.toast-layer {
  position: fixed;
  inset: 0;
  z-index: 3000;
  display: none;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}

.toast-layer.is-open {
  display: flex;
}

.toast {
  max-width: 70%;
  padding: 0.24rem 0.34rem;
  border-radius: 0.16rem;
  background: rgba(20, 20, 20, 0.86);
  color: #fff;
  font-size: 0.26rem;
  line-height: 1.5;
  text-align: center;
  animation: toast-in 0.2s var(--ease);
}

@keyframes toast-in {
  from {
    opacity: 0;
    transform: translateY(0.12rem);
  }
}

.spinner-layer {
  position: fixed;
  inset: 0;
  z-index: 3100;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.3);
}

.spinner-layer.is-open {
  display: flex;
}

.spinner {
  width: 0.7rem;
  height: 0.7rem;
  border-radius: 50%;
  border: 0.06rem solid rgba(24, 24, 24, 0.12);
  border-top-color: #4ab985;
  animation: spin 0.75s linear infinite;
}

.sheet-layer {
  position: fixed;
  inset: 0;
  z-index: 3200;
}

.sheet-mask {
  position: absolute;
  inset: 0;
  background: rgba(10, 16, 12, 0.46);
}

.sheet {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 0.34rem 0.32rem 0.5rem;
  background: #fff;
  border-radius: 0.3rem 0.3rem 0 0;
  animation: sheet-up 0.24s var(--ease);
}

@keyframes sheet-up {
  from {
    transform: translateY(100%);
  }
}

.sheet__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.24rem;
  font-size: 0.3rem;
  font-weight: 600;
}

.sheet__close {
  width: 0.44rem;
  height: 0.44rem;
  border-radius: 50%;
  background: rgba(24, 24, 24, 0.06);
  color: var(--ink-2);
  font-size: 0.3rem;
  line-height: 0.42rem;
  text-align: center;
  cursor: pointer;
}

.sheet-option {
  display: flex;
  align-items: center;
  padding: 0.26rem 0.1rem;
  border-bottom: 1px solid var(--line);
  font-size: 0.28rem;
  cursor: pointer;
}

.sheet-option:last-child {
  border-bottom: none;
}

.sheet-option img {
  width: 0.48rem;
  margin-right: 0.2rem;
}

.sheet-option .pick {
  margin-left: auto;
  width: 0.16rem;
  height: 0.3rem;
  border-right: 0.045rem solid #4a7cf0;
  border-bottom: 0.045rem solid #4a7cf0;
  transform: rotate(45deg) translateY(-0.06rem);
}

/* 客服悬浮条 */
.support {
  position: fixed;
  right: 0;
  top: 50%;
  z-index: 900;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 0.56rem;
  padding: 0.18rem 0;
  border-radius: 0.14rem 0 0 0.14rem;
  background: #2f5ce0;
  color: #fff;
  font-size: 0.2rem;
  writing-mode: vertical-rl;
  letter-spacing: 0.06rem;
  cursor: pointer;
}


/* ============================================================
   宽屏：与原站一致，rem 在 750 封顶，版心随视口撑开
   ============================================================ */
@media (min-width: 751px) {
  html {
    font-size: 100px;
  }
}

/* ============================================================
   消息中心
   ============================================================ */
.msg-list {
  padding: 0 0.02rem;
}

.msg-item {
  margin-bottom: 0.2rem;
  padding: 0.24rem 0.3rem;
  background: #fff;
  border-radius: var(--r-card);
}

.msg-text {
  font-size: 0.24rem;
  line-height: 1.55;
  color: var(--ink);
  white-space: normal;
}

.msg-time {
  margin-top: 0.1rem;
  font-size: 0.22rem;
  color: #b0b0b0;
}

/* ============================================================
   设置 / 帮助 / 快捷买币 / 语言
   ============================================================ */
.cell-list--plain {
  margin-top: 0;
}

.cell--flat {
  margin-bottom: 0;
  border-radius: 0;
  border-bottom: 1px solid rgba(24, 24, 24, 0.06);
  background: transparent;
  padding: 0.34rem 0.06rem;
}

.cell--flat:last-child {
  border-bottom: none;
}

.help-list {
  margin-top: 0.2rem;
}

.help-item {
  margin-bottom: 0.2rem;
  background: #fff;
  border-radius: var(--r-card);
  overflow: hidden;
}

.help-q {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.2rem;
  padding: 0.26rem 0.28rem;
  font-size: 0.26rem;
  color: var(--ink);
  cursor: pointer;
}

.help-icon {
  flex: 0 0 0.34rem;
  width: 0.34rem;
  height: 0.34rem;
  fill: #181818;
  transition: fill 0.2s;
}

.help-a {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s ease;
}

.help-item.is-open .help-a {
  max-height: 400rem;
  padding: 0 0.28rem 0.28rem;
}

.help-a pre {
  margin: 0;
  font-family: inherit;
  font-size: 0.24rem;
  line-height: 1.75;
  color: #5d5d5d;
  white-space: pre-wrap;
  word-break: break-word;
}

.notice-box {
  margin-top: 0.2rem;
  padding: 0.27rem 0.22rem;
  background: #fff;
  border-radius: var(--r-card);
  font-size: 0.22rem;
  line-height: 1.6;
  color: var(--ink);
}

.buy-list {
  margin-top: 0.24rem;
}

.buy-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.24rem;
  padding: 0.3rem 0.1rem;
  border-bottom: 1px solid rgba(24, 24, 24, 0.06);
  font-size: 0.26rem;
  line-height: 1.5;
  color: var(--ink);
}

.buy-item:last-child {
  border-bottom: none;
}

.lang-list {
  padding-top: 0.1rem;
}

.lang-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.3rem 0.08rem;
  border-bottom: 1px solid rgba(24, 24, 24, 0.06);
  font-size: 0.26rem;
  color: var(--ink);
  cursor: pointer;
}

.lang-pick {
  width: 0.34rem;
  height: 0.26rem;
}

/* ============================================================
   快速切换账号弹层
   ============================================================ */
.switch-sheet .sheet__head span {
  font-size: 0.28rem;
  font-weight: 400;
}

.switch-account {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.3rem;
  padding: 0.26rem 0.34rem;
  border-radius: 0.2rem;
  font-size: 0.26rem;
  color: var(--lime-ink);
  background: linear-gradient(90deg, #d0f971 0%, #e7fc7c 100%);
  cursor: pointer;
}

.switch-account b {
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

/* ============================================================
   在线客服（浮窗 + 会话面板）
   ============================================================ */
.support {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.06rem;
  border: none;
  color: #fff;
  background: #2f6fe4;
  cursor: pointer;
}

.support::after {
  content: "";
  display: block;
  width: 0.26rem;
  height: 0.26rem;
  margin-top: 0.04rem;
  border-radius: 50%;
  background: #f5333f;
  box-shadow: inset 0 -0.02rem 0 rgba(0, 0, 0, 0.12);
}

.cs-layer {
  position: fixed;
  inset: 0;
  z-index: 2600;
  display: none;
}

.cs-layer.is-open {
  display: block;
}

.cs-mask {
  position: absolute;
  inset: 0;
  background: rgba(10, 16, 12, 0.35);
}

.cs-panel {
  position: absolute;
  left: 0.24rem;
  right: 0.24rem;
  bottom: 0.24rem;
  top: 0.9rem;
  display: flex;
  flex-direction: column;
  background: #f7f8fa;
  border-radius: 0.24rem;
  overflow: hidden;
  box-shadow: 0 0.2rem 0.6rem rgba(0, 0, 0, 0.22);
  animation: cs-up 0.24s var(--ease);
}

@keyframes cs-up {
  from {
    transform: translateY(6%);
    opacity: 0.5;
  }
}

.cs-head {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 0.94rem;
  background: #fff;
  border-bottom: 1px solid rgba(24, 24, 24, 0.06);
}

.cs-brand {
  display: flex;
  align-items: center;
  gap: 0.16rem;
  margin: 0 auto;
  padding: 0.08rem 0.42rem 0.08rem 0.12rem;
  border-radius: 0.44rem;
  background: #eef0f4;
}

.cs-brand__avatar {
  width: 0.68rem;
  height: 0.68rem;
  border-radius: 50%;
  object-fit: cover;
  flex: 0 0 0.68rem;
}

.cs-title {
  font-size: 0.26rem;
  font-weight: 600;
  color: var(--ink);
}

.cs-avatar {
  width: 0.64rem;
  height: 0.64rem;
  border-radius: 50%;
  object-fit: cover;
  flex: 0 0 0.64rem;
  margin-top: 0.04rem;
}

.cs-close {
  position: absolute;
  left: 0.24rem;
  top: 50%;
  transform: translateY(-50%);
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  font-size: 0.34rem;
  line-height: 0.46rem;
  text-align: center;
  color: #8d8c8f;
  cursor: pointer;
}

.cs-body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 0.24rem;
  -webkit-overflow-scrolling: touch;
}

.cs-row {
  display: flex;
  align-items: flex-start;
  gap: 0.16rem;
  margin-bottom: 0.18rem;
}

.cs-row--mine {
  justify-content: flex-end;
}

.cs-bubble {
  max-width: 78%;
  padding: 0.2rem 0.24rem;
  border-radius: 0.16rem;
  background: #fff;
  font-size: 0.24rem;
  line-height: 1.62;
  color: var(--ink);
  box-shadow: 0 0.02rem 0.08rem rgba(24, 24, 24, 0.05);
  word-break: break-word;
}

.cs-bubble--mine {
  color: #fff;
  background: #4a7cf0;
}

.cs-time {
  margin: -0.1rem 0 0.22rem 0.8rem;
  font-size: 0.2rem;
  color: #b0b0b0;
}

.cs-time--mine {
  text-align: right;
  margin-left: 0;
  margin-right: 0.02rem;
}

.cs-quick {
  display: flex;
  flex-wrap: wrap;
  gap: 0.16rem;
  margin-top: 0.1rem;
}

.cs-chip {
  padding: 0.14rem 0.24rem;
  border-radius: 0.4rem;
  border: 1px solid rgba(24, 24, 24, 0.1);
  background: #fff;
  font-size: 0.22rem;
  color: var(--ink);
  cursor: pointer;
}

.cs-chip:active {
  background: #eef2ff;
}

.cs-inputbar {
  display: flex;
  align-items: center;
  gap: 0.16rem;
  padding: 0.18rem 0.24rem;
  background: #fff;
  border-top: 1px solid rgba(24, 24, 24, 0.06);
}

.cs-input {
  flex: 1;
  height: 0.72rem;
  padding: 0 0.24rem;
  border-radius: 0.36rem;
  background: #f1f3f5;
  font-size: 0.24rem;
  color: var(--ink);
}