/* ============================================================
   交易所风格主题 — 参考 Binance / OKX 移动端暗色 UI
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&display=swap');

:root {
  --ex-bg: #0b0e11;
  --ex-bg-elevated: #12161c;
  --ex-surface: #1e2329;
  --ex-surface-2: #2b3139;
  --ex-border: #2b3139;
  --ex-border-light: rgba(255, 255, 255, 0.06);
  --ex-text: #eaecef;
  --ex-text-secondary: #848e9c;
  --ex-text-tertiary: #5e6673;
  --ex-accent: #f0b90b;
  --ex-accent-hover: #fcd535;
  --ex-accent-dim: rgba(240, 185, 11, 0.12);
  --ex-up: #0ecb81;
  --ex-up-bg: rgba(14, 203, 129, 0.12);
  --ex-down: #f6465d;
  --ex-down-bg: rgba(246, 70, 93, 0.12);
  --ex-danger: #f6465d;
  --ex-radius-sm: 8px;
  --ex-radius: 12px;
  --ex-radius-lg: 16px;
  --ex-nav-h: 48px;
  --ex-tabbar-h: 56px;
  --ex-page-pad: 16px;
  --ex-shadow: 0 4px 24px rgba(0, 0, 0, 0.35);
  --ex-font: 'DM Sans', -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Helvetica Neue', sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body,
#app,
.app-wrapper,
.main-container,
.app-main,
.content-wrapper,
.content-wrap {
  background: var(--ex-bg) !important;
  color: var(--ex-text);
  font-family: var(--ex-font) !important;
  -webkit-font-smoothing: antialiased;
  letter-spacing: 0.01em;
}

body {
  min-height: 100vh;
  padding-bottom: env(safe-area-inset-bottom);
}

/* 原主题 body 已有 padding-top:46px，此处统一为单一来源，避免顶部重复留白 */
body:not(.auth-page) {
  padding-top: var(--ex-nav-h) !important;
}

/* 内容区仅保留底栏留白 */
.content-wrapper,
.content-wrap,
.m-index__wrap,
.m-user-wrap,
.m-register-wrap {
  padding-top: 0 !important;
  padding-bottom: calc(var(--ex-tabbar-h) + 16px + env(safe-area-inset-bottom)) !important;
}

/* ── 数字等宽 ── */
.price, .rate, .text-red, .return_money, .rise,
.van-grid-item__icon-wrapper div,
[data-v-43f14ab3] .text-red {
  font-variant-numeric: tabular-nums;
  font-feature-settings: 'tnum';
}

/* ── 顶部导航（交易所顶栏） ── */
.van-nav-bar {
  height: var(--ex-nav-h) !important;
  line-height: var(--ex-nav-h) !important;
  background: var(--ex-bg) !important;
  border-bottom: 1px solid var(--ex-border) !important;
  box-shadow: none !important;
}

.van-nav-bar::after { display: none !important; }

.van-nav-bar__content { height: var(--ex-nav-h) !important; }

.van-nav-bar__title {
  color: var(--ex-text) !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em;
}

.van-nav-bar__arrow,
.van-nav-bar .van-icon {
  color: var(--ex-text) !important;
  font-size: 18px !important;
}

.van-nav-bar .logo {
  border-radius: 6px;
  border: 1px solid var(--ex-border);
}

.van-nav-bar__left img,
.van-nav-bar__right img {
  border-radius: 4px;
}

/* 交易页无底栏 */
.content-wrap.text-white {
  padding-bottom: 24px !important;
}

.m-index__wrap {
  padding-left: var(--ex-page-pad) !important;
  padding-right: var(--ex-page-pad) !important;
}

/* ── 首页轮播 ── */
.my-swipe,
.van-swipe.my-swipe {
  width: 100% !important;
  height: auto !important;
  border-radius: var(--ex-radius-lg) !important;
  overflow: hidden !important;
  margin: 0 0 12px !important;
  border: 1px solid var(--ex-border);
  box-shadow: var(--ex-shadow);
}

.my-swipe .van-swipe__track {
  height: auto !important;
  align-items: stretch;
}

.my-swipe .van-swipe-item {
  height: auto !important;
}

.my-swipe .swipe-image,
.my-swipe .van-image {
  display: block !important;
  width: 100% !important;
  height: auto !important;
}

.my-swipe .van-image__img,
.swipe-image img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  border-radius: var(--ex-radius-lg) !important;
  object-fit: contain !important;
  background: var(--ex-surface);
}

.van-swipe__indicator {
  width: 6px !important;
  height: 6px !important;
  border-radius: 3px !important;
  background: rgba(255,255,255,0.35) !important;
  opacity: 1 !important;
  transition: width 0.2s, background 0.2s;
}

.van-swipe__indicator--active {
  width: 18px !important;
  background: var(--ex-accent) !important;
}

/* ── 公告滚动条 ── */
.van-notice-bar {
  border-radius: var(--ex-radius-sm) !important;
  background: var(--ex-surface) !important;
  border: 1px solid var(--ex-border) !important;
  color: var(--ex-text-secondary) !important;
  font-size: 13px !important;
  height: 36px !important;
  line-height: 36px !important;
  margin-bottom: 12px !important;
}

.van-notice-bar__left-icon { color: var(--ex-accent) !important; }

/* ── 行情列表（涨幅榜） ── */
.rate-wrap {
  background: var(--ex-surface);
  border: 1px solid var(--ex-border);
  border-radius: var(--ex-radius-lg);
  padding: 14px 12px 8px;
  margin-top: 0 !important;
}

.rate-wrap .title {
  color: var(--ex-text) !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  margin-bottom: 4px !important;
  padding-left: 4px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.rate-wrap .title::before {
  content: '';
  display: inline-block;
  width: 3px;
  height: 14px;
  background: var(--ex-accent);
  border-radius: 2px;
}

.rate-wrap .list .item {
  display: flex !important;
  align-items: center !important;
  padding: 11px 8px !important;
  margin-bottom: 0 !important;
  line-height: 1.4 !important;
  font-size: 14px !important;
  border-bottom: 1px solid var(--ex-border-light) !important;
  border-radius: 0 !important;
  transition: background 0.15s;
}

.rate-wrap .list .item:last-child { border-bottom: none !important; }

.rate-wrap .list .item:first-child {
  color: var(--ex-text-tertiary) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 6px 8px 10px !important;
  background: transparent !important;
  border-bottom: 1px solid var(--ex-border) !important;
}

.rate-wrap .list .item:not(:first-child):active {
  background: var(--ex-surface-2);
}

.rate-wrap .list .item > div {
  flex: 1;
  color: var(--ex-text) !important;
}

.rate-wrap .list .item .price {
  text-align: right !important;
  font-weight: 600;
  font-size: 14px;
}

.rate-wrap .list .item .rate,
.rate-wrap .list .item .bg-green,
.rate-wrap .list .item .bg-red,
.rate-wrap .list .item .up_price,
.rate-wrap .list .item .down_price {
  display: inline-block !important;
  min-width: 72px;
  padding: 4px 8px !important;
  border-radius: 4px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  text-align: center !important;
}

.bg-green, .up_price, .rate.up_price {
  background: var(--ex-up-bg) !important;
  color: var(--ex-up) !important;
}

.bg-red, .down_price, .rate.down_price {
  background: var(--ex-down-bg) !important;
  color: var(--ex-down) !important;
}

/* ── 我的页面：资产头部 ── */
.m-user-wrap .user-info {
  position: relative;
  margin: 0 calc(-1 * var(--ex-page-pad)) 16px;
  padding: 28px var(--ex-page-pad) 24px !important;
  background: linear-gradient(160deg, #1a1f26 0%, #0b0e11 50%, #1e2329 100%);
  border-bottom: 1px solid var(--ex-border);
  overflow: hidden;
}

.m-user-wrap .user-info::before {
  content: '';
  position: absolute;
  top: -40px;
  right: -30px;
  width: 160px;
  height: 160px;
  background: radial-gradient(circle, rgba(240,185,11,0.15) 0%, transparent 70%);
  pointer-events: none;
}

.m-user-wrap .user-info .photo {
  width: 72px !important;
  height: 72px !important;
  border: 2px solid var(--ex-accent) !important;
  box-shadow: 0 0 0 4px var(--ex-accent-dim);
  margin-bottom: 12px !important;
}

.m-user-wrap .user-info .username {
  background: var(--ex-accent-dim) !important;
  border: 1px solid rgba(240,185,11,0.35) !important;
  color: var(--ex-accent) !important;
  border-radius: 20px !important;
  padding: 0 14px !important;
  height: 28px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  margin-bottom: 6px;
}

.m-user-wrap .user-info > div:last-child {
  color: var(--ex-text-secondary) !important;
  font-size: 12px;
  font-family: monospace;
}

/* 资产三栏 */
.m-user-wrap .quick-menus {
  margin: 0 0 12px !important;
  height: auto !important;
  background: var(--ex-surface) !important;
  border: 1px solid var(--ex-border) !important;
  border-radius: var(--ex-radius-lg) !important;
  overflow: hidden;
}

.m-user-wrap .quick-menus .van-grid-item__content {
  background: transparent !important;
  padding: 16px 8px !important;
}

.m-user-wrap .quick-menus .van-grid-item__icon-wrapper div,
.m-user-wrap .quick-menus .text-red {
  color: var(--ex-text) !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  line-height: 1.2;
}

.m-user-wrap .quick-menus .van-grid-item__text {
  color: var(--ex-text-secondary) !important;
  font-size: 12px !important;
  margin-top: 6px;
}

.m-user-wrap .quick-menus .van-grid-item:not(:last-child) .van-grid-item__content {
  border-right: 1px solid var(--ex-border);
}

/* 功能宫格 */
.m-user-wrap .menu-group {
  background: var(--ex-surface) !important;
  border: 1px solid var(--ex-border) !important;
  border-radius: var(--ex-radius-lg) !important;
  overflow: hidden;
  margin-bottom: 12px !important;
}

.m-user-wrap .menu-group .van-grid-item {
  height: auto !important;
  color: var(--ex-text) !important;
}

.m-user-wrap .menu-group .van-grid-item__content {
  background: transparent !important;
  padding: 14px 8px !important;
  border-radius: 0 !important;
  transition: background 0.15s;
}

.m-user-wrap .menu-group .van-grid-item__content:active {
  background: var(--ex-surface-2) !important;
}

.m-user-wrap .menu-group .van-grid-item__icon {
  font-size: 24px !important;
  color: var(--ex-accent) !important;
  margin-bottom: 6px;
}

.m-user-wrap .menu-group .van-grid-item__text {
  color: var(--ex-text-secondary) !important;
  font-size: 12px !important;
}

/* 覆盖内联彩色 */
.m-user-wrap .menu-group .van-grid-item[style*="color: red"] .van-icon { color: var(--ex-accent) !important; }
.m-user-wrap .menu-group .van-grid-item[style*="color: green"] .van-icon { color: var(--ex-up) !important; }

.m-user-wrap .van-button--block {
  margin: 0 var(--ex-page-pad) !important;
  width: calc(100% - var(--ex-page-pad) * 2) !important;
}

/* ── 交易页 market ── */
.content-wrap.text-white .header {
  background: var(--ex-surface) !important;
  border: 1px solid var(--ex-border);
  border-radius: var(--ex-radius-lg);
  margin: 12px var(--ex-page-pad);
  padding: 16px !important;
}

.content-wrap .header .rise.data-price {
  font-size: 28px !important;
  font-weight: 700 !important;
  color: var(--ex-text) !important;
}

.content-wrap .text-red { color: var(--ex-down) !important; }
.content-wrap .text-green { color: var(--ex-up) !important; }

.content-wrap .nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 0 var(--ex-page-pad);
  margin: 12px 0;
  align-items: center;
}

.content-wrap .trade-chart-period {
  padding: 6px 12px !important;
  border-radius: 6px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  color: var(--ex-text-secondary) !important;
  background: var(--ex-surface) !important;
  border: 1px solid var(--ex-border) !important;
}

.content-wrap .trade-chart-period.active {
  color: var(--ex-bg) !important;
  background: var(--ex-accent) !important;
  border-color: var(--ex-accent) !important;
}

.content-wrap .timeline-chart {
  margin: 0 var(--ex-page-pad);
  border-radius: var(--ex-radius);
  overflow: hidden;
  border: 1px solid var(--ex-border);
}

.content-wrap .trade-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 10px var(--ex-page-pad) calc(10px + env(safe-area-inset-bottom));
  background: var(--ex-bg-elevated);
  border-top: 1px solid var(--ex-border);
  gap: 8px;
  z-index: 100;
}

.content-wrap .trade-bar .van-button {
  flex: 1;
  height: 44px !important;
  border-radius: var(--ex-radius-sm) !important;
  font-weight: 600 !important;
  border: none !important;
}

.content-wrap .trade-bar .bg-green {
  background: var(--ex-up) !important;
  color: #fff !important;
}

.content-wrap .trade-bar .bg-red {
  background: var(--ex-down) !important;
  color: #fff !important;
}

/* ── 订单/记录列表 ── */
.van-tabs__nav {
  background: var(--ex-surface) !important;
  border-bottom: 1px solid var(--ex-border) !important;
}

.van-tab {
  color: var(--ex-text-secondary) !important;
  font-weight: 500 !important;
}

.van-tab--active {
  color: var(--ex-accent) !important;
  font-weight: 700 !important;
}

.van-tabs__line {
  background: var(--ex-accent) !important;
  height: 3px !important;
  border-radius: 2px !important;
}

.van-list .item,
.m-user-wrap .van-list .item {
  background: var(--ex-surface) !important;
  border: 1px solid var(--ex-border) !important;
  border-radius: var(--ex-radius) !important;
  margin: 10px var(--ex-page-pad) !important;
  padding: 14px !important;
  color: var(--ex-text) !important;
}

.van-list .item .in_money.up_price { color: var(--ex-up) !important; }
.van-list .item .in_money.down_price { color: var(--ex-down) !important; }

.van-list .item .return_money {
  color: var(--ex-accent) !important;
  font-weight: 700;
  font-size: 16px;
}

/* ── 表单 ── */
.van-cell {
  background: var(--ex-surface) !important;
  border: 1px solid var(--ex-border) !important;
  border-radius: var(--ex-radius-sm) !important;
  margin: 8px var(--ex-page-pad) !important;
  width: auto !important;
  padding: 12px 16px !important;
}

.van-cell::after { display: none !important; }

.van-field__label {
  color: var(--ex-text-secondary) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  width: 90px !important;
}

.van-field__control {
  color: var(--ex-text) !important;
  font-size: 15px !important;
}

.van-field__control::placeholder {
  color: var(--ex-text-tertiary) !important;
}

.m-register-wrap .van-form {
  padding: 0 4px;
}

/* ── 按钮 ── */
.van-button--danger {
  background: linear-gradient(180deg, #f0b90b 0%, #d9a507 100%) !important;
  color: #0b0e11 !important;
  border: none !important;
  font-weight: 700 !important;
  box-shadow: 0 4px 12px rgba(240, 185, 11, 0.25) !important;
}

.van-button--danger.van-button--plain {
  background: transparent !important;
  border: 1px solid var(--ex-accent) !important;
  color: var(--ex-accent) !important;
  box-shadow: none !important;
}

.van-button--round {
  border-radius: 8px !important;
  height: 48px !important;
}

.van-button:active { opacity: 0.88; transform: scale(0.99); }

/* ── 底部 Tab（交易所底栏） ── */
.footer-wrap .van-tabbar {
  height: var(--ex-tabbar-h) !important;
  background: var(--ex-bg-elevated) !important;
  border-top: 1px solid var(--ex-border) !important;
  padding-bottom: env(safe-area-inset-bottom);
  box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.3);
}

.footer-wrap .van-tabbar-item {
  color: var(--ex-text-tertiary) !important;
  font-size: 10px !important;
  transition: color 0.2s;
}

.footer-wrap .van-tabbar-item--active {
  color: var(--ex-accent) !important;
}

.footer-wrap .van-tabbar-item--active .van-icon {
  color: var(--ex-accent) !important;
}

.footer-wrap .van-tabbar-item__icon {
  font-size: 22px !important;
  margin-bottom: 2px;
}

.footer-wrap .van-tabbar-item__text {
  font-weight: 500;
}

/* ── 充值页等 ── */
.container .select {
  background: var(--ex-surface) !important;
  border: 1px solid var(--ex-border) !important;
  border-radius: var(--ex-radius) !important;
  margin: 12px var(--ex-page-pad) !important;
  color: var(--ex-text) !important;
}

.container .select div[style*="float:right"] {
  color: var(--ex-accent) !important;
}

.iscny {
  background: var(--ex-surface) !important;
  border: 1px solid var(--ex-border) !important;
  border-radius: var(--ex-radius-lg) !important;
  margin: 12px var(--ex-page-pad) !important;
}

/* ── 空状态 ── */
.van-empty__description {
  color: var(--ex-text-secondary) !important;
}

/* ── 简介页 ── */
.about-content, .m-about-wrap {
  padding: var(--ex-page-pad);
  color: var(--ex-text-secondary);
  line-height: 1.7;
}

/* ── 通用工具 ── */
.text-red { color: var(--ex-down) !important; }
.text-green, .text-success { color: var(--ex-up) !important; }
.text-white { color: var(--ex-text) !important; }
.text-secondary { color: var(--ex-text-secondary) !important; }

.font-bold { font-weight: 600 !important; }
.ft-12 { font-size: 12px !important; }
.ft-13 { font-size: 13px !important; }

/* 可点击区域 */
[data-href],
.van-grid-item__content--clickable,
.van-tabbar-item {
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

[data-href]:active .van-grid-item__content,
.van-tabbar-item:active {
  opacity: 0.85;
}

/* 滚动条 */
::-webkit-scrollbar { width: 3px; height: 3px; }
::-webkit-scrollbar-thumb {
  background: var(--ex-surface-2);
  border-radius: 3px;
}

/* layer 弹层 */
.layui-m-layercont {
  border-radius: var(--ex-radius) !important;
  background: var(--ex-surface) !important;
  color: var(--ex-text) !important;
}

/* 隐藏首页多余菜单（display:none 保持） */
.menus[style*="display:none"] { display: none !important; }
