:root {
  --bg: #f4f6f8;
  --panel: #ffffff;
  --line: #dfe5ec;
  --line-soft: #edf1f5;
  --text: #17202a;
  --muted: #6b7785;
  --gold: #b88a2d;
  --gold-soft: #f7edda;
  --green: #028a55;
  --red: #c64040;
  --blue: #2866c7;
  --dark: #111827;
  --shadow: 0 12px 30px rgba(16, 24, 40, 0.08);
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: "Microsoft YaHei", "PingFang SC", "Noto Sans CJK SC", "Source Han Sans SC", "Segoe UI", sans-serif;
  font-size: 14px;
}

button,
input {
  font: inherit;
}

button {
  cursor: pointer;
}

.app-shell {
  min-height: 100vh;
}

.topbar {
  height: 64px;
  padding: 0 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #111827;
  color: #fff;
  border-bottom: 1px solid #202938;
}

.brand {
  font-size: 19px;
  font-weight: 700;
  letter-spacing: 0;
}

.subtitle {
  color: #aeb8c5;
  font-size: 12px;
  margin-top: 4px;
}

.top-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.status-pill,
.role-pill,
.home-center-pill,
.system-update-pill,
.view-switch-pill {
  min-height: 30px;
  padding: 7px 10px;
  border: 1px solid #344052;
  border-radius: 6px;
  color: #d8dee8;
  background: #182131;
  white-space: nowrap;
}

.system-update-pill {
  border-color: rgba(56, 189, 248, 0.46);
  color: #c9f2ff;
  background: #132238;
  font-weight: 700;
}

.system-update-pill:hover {
  border-color: rgba(103, 232, 249, 0.8);
  color: #fff;
  background: #18314c;
}

.system-update-pill:disabled {
  cursor: wait;
  opacity: 0.72;
}

.system-update-toast {
  position: fixed;
  z-index: 12000;
  top: 76px;
  left: 50%;
  max-width: min(90vw, 420px);
  padding: 10px 16px;
  border: 1px solid rgba(16, 185, 129, 0.42);
  border-radius: 8px;
  color: #ecfdf5;
  background: rgba(6, 78, 59, 0.96);
  box-shadow: 0 12px 30px rgba(15, 23, 42, 0.24);
  font-weight: 700;
  transform: translateX(-50%);
}

.home-center-pill {
  border-color: rgba(59, 130, 246, 0.62);
  color: #eff6ff;
  background: #2457c5;
  font-weight: 700;
  text-decoration: none;
}

.home-center-pill:hover {
  border-color: #79a7ff;
  color: #fff;
  background: #2f66db;
}

.view-switch-pill {
  color: #9cebd4;
  text-decoration: none;
}

.view-switch-pill:hover {
  border-color: rgba(20, 184, 166, 0.55);
  color: #d9fff4;
}

.partner-contact-trigger {
  cursor: pointer;
  font: inherit;
}

.partner-contact-list {
  display: grid;
  gap: 10px;
}

.partner-contact-list > div,
.partner-contact-list > a {
  display: grid;
  grid-template-columns: 116px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 6px;
  color: var(--text);
  background: #f8fafc;
  text-decoration: none;
}

.partner-contact-list span {
  color: var(--muted);
}

.partner-contact-list strong {
  min-width: 0;
  overflow-wrap: anywhere;
}

.partner-contact-list > a strong {
  color: #155eef;
}

.role-pill {
  cursor: pointer;
}

.role-pill.logged-in {
  color: #d8f8e8;
  border-color: rgba(2, 138, 85, 0.35);
}

.role-pill.guest {
  color: #d8dee8;
  border-color: #344052;
}

.role-pill.expired {
  color: #ffe2e2;
  border-color: rgba(198, 64, 64, 0.42);
}

.status-pill.online {
  color: #d8f8e8;
  border-color: rgba(2, 138, 85, 0.35);
}

.status-pill.error,
.status-pill.closed {
  color: #ffe2e2;
  border-color: rgba(198, 64, 64, 0.35);
}

.conversion-strip {
  margin: 18px 28px 12px;
  min-height: 74px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 14px 18px;
  background: linear-gradient(90deg, #fff, #fff8eb);
  border: 1px solid #ead7b7;
  border-radius: 8px;
}

.conversion-strip.dashboard-strip {
  height: 160px;
  min-height: 160px;
  align-items: stretch;
  gap: 16px;
}

.btc-tile {
  width: 132px;
  min-width: 132px;
  height: 132px;
  min-height: 132px;
  aspect-ratio: 1 / 1;
  border: 1px solid #e7c978;
  border-radius: 8px;
  background: linear-gradient(160deg, #fffdf5 0%, #fff3c4 52%, #f8d36b 100%);
  color: #422006;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85), 0 10px 22px rgba(122, 82, 16, 0.12);
}

.btc-symbol {
  font-size: 35px;
  font-weight: 800;
  letter-spacing: 0;
}

.btc-change {
  font-size: 18px;
  font-weight: 700;
  color: #7a5210;
}

.btc-change.positive {
  color: #059669;
}

.btc-change.negative {
  color: #dc2626;
}

.intel-lanes {
  flex: 1;
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.intel-card {
  min-width: 0;
  height: 132px;
  min-height: 132px;
  border: 1px solid #ead7b7;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.72);
  padding: 12px 12px;
  text-align: left;
  color: var(--text);
  overflow: hidden;
}

.intel-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  font-weight: 700;
  margin-bottom: 10px;
  font-size: 15px;
}

.intel-card-head small {
  color: var(--muted);
  font-weight: 400;
  white-space: nowrap;
}

.intel-list {
  display: grid;
  gap: 8px;
}

.intel-item {
  display: grid;
  grid-template-columns: 62px minmax(0, 1fr);
  gap: 8px;
  align-items: baseline;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.32;
}

.intel-item strong {
  min-width: 0;
  color: var(--text);
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.intel-time,
.intel-empty {
  color: var(--muted);
  font-size: 13px;
}

.intel-item .intel-time {
  white-space: nowrap;
}

.intel-modal-list {
  display: grid;
  gap: 0;
}

.intel-modal-list article {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 14px;
  padding: 13px 0;
  border-bottom: 1px solid var(--border);
}

.intel-modal-list article:last-child {
  border-bottom: 0;
}

.intel-modal-list time {
  color: var(--muted);
  font-size: 13px;
}

.intel-modal-list p {
  margin: 0;
  color: var(--text);
  line-height: 1.55;
}

.strip-title {
  font-weight: 700;
  font-size: 16px;
}

.strip-copy {
  color: var(--muted);
  margin-top: 5px;
}

.toolbar {
  display: grid;
  grid-template-columns: auto minmax(0, max-content) minmax(320px, 1fr);
  align-items: center;
  gap: 12px;
  margin: 0 28px 12px;
}

.mode-tabs {
  display: inline-flex;
  gap: 4px;
  padding: 3px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #eef2f7;
}

.mode-tab {
  min-width: 84px;
  height: 34px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--muted);
  font-weight: 700;
}

.mode-tab.active {
  background: #111827;
  color: #fff;
}

.trader-signal-mode-tab {
  min-width: 126px;
}

.trader-tabs[hidden],
.trader-signal-panel[hidden],
#poolTabs[hidden],
#signalPerformanceStrip[hidden],
#signalTablePanel[hidden] {
  display: none;
}

.trader-pool-count {
  min-width: 18px;
  height: 18px;
  margin-left: 5px;
  display: inline-grid;
  place-items: center;
  border-radius: 9px;
  background: #111827;
  color: #fff;
  font-size: 11px;
}

.favorites-mode-tab { color: #8a6414; }
.favorite-action-btn.is-saved { color: #9a6500; background: #fff7dd; }
.favorite-action-btn,
.favorite-detail-btn {
  border: 1px solid #d5a62e;
  border-radius: 6px;
  background: #fff8df;
  color: #76530b;
  font-weight: 700;
  text-decoration: none;
}

th[data-col="favorite"],
td[data-col="favorite"] {
  min-width: 86px;
  width: 86px;
  text-align: center;
}

.favorite-column-cell .favorite-action-btn {
  min-width: 68px;
  padding: 5px 7px;
  border-radius: 6px;
  font-size: 12px;
  white-space: nowrap;
}
.favorites-center { display: grid; gap: 14px; }
.favorite-intro {
  padding: 14px 16px;
  border: 1px solid #e5c66e;
  border-radius: 10px;
  background: linear-gradient(135deg, #fffaf0, #fff);
}
.favorite-intro > div { display: flex; align-items: baseline; gap: 12px; }
.favorite-intro strong { font-size: 18px; }
.favorite-intro span,
.favorite-intro p { color: #667085; }
.favorite-intro p { margin: 7px 0 0; line-height: 1.65; }
.favorite-tabs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.favorite-tabs button {
  min-height: 42px;
  border: 1px solid #dce3ec;
  border-radius: 9px;
  background: #fff;
  color: #344054;
  font-weight: 700;
}
.favorite-tabs button.active { border-color: #182238; background: #182238; color: #fff; }
.favorite-tabs span { margin-left: 5px; opacity: .72; }
.favorite-list { display: grid; gap: 9px; }
.favorite-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 13px 14px;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  background: #fff;
}
.favorite-item.favorite-focus { border-color: #d4a526; box-shadow: 0 0 0 3px rgba(212,165,38,.15); }
.favorite-item.favorite-waiting { background: #fafbfc; }
.favorite-item-main { display: grid; grid-template-columns: minmax(140px, .8fr) minmax(150px, 1fr) minmax(220px, 1.4fr); align-items: center; gap: 14px; }
.favorite-symbol { display: flex; flex-direction: column; gap: 3px; }
.favorite-symbol strong { font-size: 16px; }
.favorite-symbol span { color: #7a8699; font-size: 12px; }
.favorite-signal-state { font-weight: 700; }
.favorite-notify-state { color: #087a50; }
.favorite-notify-state.is-off { color: #98a2b3; }
.favorite-item-actions { display: flex; gap: 7px; white-space: nowrap; }
.favorite-item-actions button,
.favorite-detail-btn { padding: 7px 10px; }
.favorite-item-actions button { border: 1px solid #d7dee8; border-radius: 6px; background: #fff; }
.favorite-item-actions button.danger { color: #c83f4b; }
.favorite-empty,
.favorite-loading { padding: 42px 18px; text-align: center; color: #667085; line-height: 1.8; }
.favorite-settings-form { display: grid; gap: 15px; max-width: 660px; margin: 0 auto; }
.favorite-setting-symbol { display: flex; align-items: baseline; gap: 10px; padding: 14px; border-radius: 9px; background: #f7f9fc; }
.favorite-setting-symbol strong { font-size: 19px; }
.favorite-setting-symbol span { color: #7a8699; }
.favorite-settings-form > label,
.favorite-threshold-grid label { display: grid; gap: 7px; color: #475467; font-weight: 700; }
.favorite-settings-form select,
.favorite-settings-form input[type="number"],
.favorite-settings-form input[type="text"] { width: 100%; min-height: 42px; padding: 8px 10px; border: 1px solid #d7dee8; border-radius: 7px; background: #fff; }
.favorite-threshold-grid,
.favorite-channel-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.favorite-switch { display: flex !important; align-items: center; gap: 9px !important; padding: 12px; border: 1px solid #e1e7ef; border-radius: 8px; }
.favorite-switch input { width: 18px; height: 18px; }
.favorite-rule-note { margin: 0; color: #667085; line-height: 1.65; }
.favorite-form-actions { display: flex; justify-content: flex-end; gap: 9px; }
.favorite-form-actions button { min-height: 40px; padding: 0 16px; border: 1px solid #d6dde7; border-radius: 7px; background: #fff; }
.favorite-form-actions button.primary { border-color: #172238; background: #172238; color: #fff; }
.favorite-v2-form { max-width: 920px; }
.favorite-v2-form fieldset { min-width: 0; margin: 0; padding: 16px; border: 1px solid #c9d4e2; border-radius: 12px; background: #fff; box-shadow: 0 1px 0 rgba(16,24,40,.03); }
.favorite-v2-form legend { padding: 0 9px; font-weight: 800; color: #172238; background: #fff; }
.favorite-v2-price-section legend { display: flex; align-items: baseline; gap: 12px; }
.favorite-v2-price-section legend small { color: #667085; font-size: 12px; font-weight: 600; }
.favorite-v2-price-section legend small b { color: #172238; }
.favorite-v2-quota { display: flex; flex-wrap: wrap; gap: 8px; }
.favorite-v2-quota span { padding: 6px 10px; border-radius: 999px; background: #f1f4f8; color: #475467; font-weight: 700; }
.favorite-v2-quota .favorite-v2-observe { background: #fff5d6; color: #8a6414; }
.favorite-v2-price-row { display: grid; grid-template-columns: 112px minmax(0,1fr); gap: 12px; align-items: stretch; margin-top: 12px; padding: 12px; border: 1px solid #d9e1eb; border-radius: 10px; background: #f9fbfd; }
.favorite-v2-price-row:last-of-type { padding-bottom: 12px; border-bottom: 1px solid #d9e1eb; }
.favorite-v2-price-switch { justify-content: center; background: #fff; }
.favorite-v2-price-fields { min-width: 0; display: grid; grid-template-columns: minmax(170px,1.25fr) minmax(135px,.85fr) minmax(110px,.65fr); gap: 10px; align-items: end; }
.favorite-v2-price-fields > label { min-width: 0; display: grid; gap: 5px; color: #475467; font-weight: 700; }
.favorite-v2-price-row > label:not(.favorite-switch) { display: grid; gap: 5px; color: #475467; font-weight: 700; }
.favorite-v2-price-row > label:not(.favorite-switch) input,
.favorite-v2-price-row > label:not(.favorite-switch) select { width: 100%; }
.favorite-v2-input-suffix { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 7px; }
.favorite-v2-input-suffix span { color: #475467; font-weight: 700; }
.favorite-v2-levels, .favorite-v2-inline { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 10px; }
.favorite-v2-levels .favorite-switch { flex: 1 1 150px; }
.favorite-v2-inline > label:last-child { min-width: 180px; display: grid; gap: 6px; color: #475467; font-weight: 700; }
.favorite-v2-periodic { display: grid; grid-template-columns: minmax(230px,1fr) minmax(220px,1fr); gap: 12px; align-items: stretch; margin-top: 14px; padding: 12px; border: 1px solid #cbd8e6; border-radius: 10px; background: #f7faff; }
.favorite-v2-periodic-cycle { min-width: 0; display: grid; grid-template-columns: auto minmax(130px,1fr); align-items: center; gap: 10px; color: #475467; font-weight: 700; }
.favorite-v2-muted, .favorite-v2-pending p { color: #7a8699; }
.favorite-v2-pending { background: #fafbfc; }
.favorite-form-actions button.danger { margin-right: auto; border-color: #f2c5ca; color: #b42332; }
.favorite-v2-tracking-actions { display: grid; gap: 18px; min-width: min(440px, 80vw); }
.favorite-v2-tracking-actions p { margin: 0; color: #475467; line-height: 1.7; }
.favorite-v2-active-summary { display: grid; gap: 10px; padding: 14px; border: 1px solid #c7d4e3; border-radius: 12px; background: #f8fafc; }
.favorite-v2-active-summary > header { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding-bottom: 9px; border-bottom: 1px solid #d5dee9; }
.favorite-v2-active-summary > header small { color: #667085; }
.favorite-v2-active-summary section { padding: 10px; border: 1px solid #dde4ed; border-radius: 9px; background: #fff; }
.favorite-v2-active-summary h4 { margin: 0 0 8px; color: #172238; font-size: 14px; }
.favorite-v2-active-summary ul { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.favorite-v2-active-summary li { display: grid; grid-template-columns: 65px minmax(120px,1fr) minmax(90px,.7fr) 45px; gap: 8px; color: #475467; }
.favorite-v2-summary-tags { display: flex; flex-wrap: wrap; gap: 7px; }
.favorite-v2-summary-tags span { padding: 5px 8px; border-radius: 999px; background: #edf3f9; color: #344054; font-size: 12px; font-weight: 700; }
.favorite-v2-thresholds { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; margin-top: 9px; }
.favorite-v2-threshold { display: grid; grid-template-columns: minmax(170px,1fr) minmax(100px,.7fr) auto; align-items: center; gap: 7px; padding: 10px; border: 1px solid #e1e7ef; border-radius: 8px; color: #475467; font-weight: 700; }
.favorite-v2-threshold span { display: flex; align-items: center; gap: 7px; }
.favorite-v2-threshold input[type="checkbox"] { width: 18px; height: 18px; }
.favorite-v2-threshold input[type="number"] { min-width: 0; }
.favorite-v2-threshold em { font-style: normal; }

.tabs {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 2px;
  min-width: 0;
}

.tab {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 7px;
  padding: 8px 12px;
  white-space: nowrap;
  color: var(--muted);
}

.tab.active {
  color: #111827;
  border-color: var(--gold);
  background: var(--gold-soft);
  font-weight: 700;
}

.trader-signal-panel {
  min-width: 0;
  display: grid;
  gap: 12px;
}

.trader-profile-bar,
.trader-data-section {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  box-shadow: var(--shadow);
}

.trader-profile-bar {
  min-height: 92px;
  padding: 14px 16px;
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) auto;
  gap: 13px;
  align-items: center;
}

.trader-avatar {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: #1a263b;
  color: #fff;
  font-size: 25px;
  font-weight: 800;
}

.trader-profile-copy {
  min-width: 0;
}

.trader-profile-copy > span {
  color: #a66d00;
  font-size: 12px;
  font-weight: 700;
}

.trader-profile-copy h1 {
  margin: 3px 0 4px;
  font-size: 20px;
}

.trader-profile-copy p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}

.trader-sync-box {
  min-width: 210px;
  display: grid;
  justify-items: end;
  gap: 7px;
}

.trader-sync-box strong {
  color: #087a50;
  font-size: 13px;
}

.trader-sync-box .trader-sync-delayed,
.trader-sync-box .trader-sync-reconnecting,
.trader-sync-box .trader-sync-backfilling,
.trader-sync-box .trader-sync-paused {
  color: #9a6500;
}

.trader-sync-box .trader-sync-error {
  color: #c93434;
}

.trader-sync-box i,
.trader-mobile-sync i {
  width: 7px;
  height: 7px;
  margin-right: 6px;
  display: inline-block;
  border-radius: 50%;
  background: #13a873;
}

.trader-sync-delayed i,
.trader-sync-reconnecting i,
.trader-sync-backfilling i,
.trader-sync-paused i {
  background: #d49a24;
}

.trader-sync-error i {
  background: #df4242;
}

.trader-sync-box span {
  color: var(--muted);
  font-size: 12px;
}

.trader-demo-note {
  padding: 10px 13px;
  border-left: 3px solid #d49a24;
  background: #fff9e9;
  color: #74551b;
  font-size: 12px;
  line-height: 1.6;
}

.trader-demo-note strong {
  margin-right: 5px;
  color: #9b6500;
}

.trader-data-section {
  min-width: 0;
  overflow: hidden;
}

.trader-data-section > header {
  min-height: 54px;
  padding: 10px 13px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid var(--line-soft);
}

.trader-data-section h2 {
  margin: 0;
  font-size: 15px;
}

.trader-data-section p {
  margin: 3px 0 0;
  color: var(--muted);
  font-size: 11px;
}

.trader-data-section > header > span {
  color: #9b6500;
  font-size: 12px;
  white-space: nowrap;
}

.trader-history-head-actions {
  display: flex;
  align-items: center;
  gap: 9px;
  white-space: nowrap;
}

.trader-history-head-actions > strong {
  color: #53637a;
  font-size: 12px;
}

.trader-history-head-actions > strong span {
  color: #008a58;
  font-size: 14px;
}

.trader-history-head-actions > span { color: #9b6500; font-size: 12px; }
.trader-history-head-actions button {
  min-height: 28px;
  padding: 0 9px;
  border: 1px solid #b6d2f2;
  border-radius: 6px;
  color: #1e63b9;
  background: #eef6ff;
  font-size: 12px;
}

.cumulative-profit-rate-form { display: grid; gap: 12px; }
.cumulative-profit-rate-form label { display: grid; gap: 6px; color: #53637a; font-size: 12px; }
.cumulative-profit-rate-form input { min-height: 42px; padding: 0 11px; border: 1px solid var(--line); border-radius: 8px; color: var(--text); background: #fbfcfe; font-size: 15px; }
.cumulative-profit-rate-form p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.6; }

.trader-table-wrap {
  max-width: 100%;
  overflow-x: auto;
}

.trader-data-table {
  width: 100%;
  min-width: 1120px;
  border-collapse: collapse;
}

.trader-activity-table,
.trader-history-table,
.trader-open-orders-table {
  min-width: 1050px;
}

.trader-data-table th,
.trader-data-table td {
  height: 44px;
  padding: 8px 11px;
  border-bottom: 1px solid var(--line-soft);
  white-space: nowrap;
  font-size: 14px;
}

.trader-data-table th {
  background: #f5f7fa;
  color: #53637a;
  font-weight: 700;
}

.trader-data-table td:first-child {
  color: #111827;
  font-weight: 800;
}

.trader-side,
.trader-action,
.trader-status,
.trader-order-status {
  min-height: 25px;
  padding: 3px 7px;
  display: inline-flex;
  align-items: center;
  border: 1px solid;
  border-radius: 6px;
  font-weight: 700;
}

.trader-order-status {
  border-color: #e1b75b;
  background: #fff8e8;
  color: #8d6100;
}

.trader-long {
  border-color: #8ee0ba;
  background: #effcf6;
  color: #008a58;
}

.trader-short {
  border-color: #ffb6bd;
  background: #fff3f4;
  color: #d13d4a;
}

.trader-status {
  border-color: #8ee0ba;
  background: #effcf6;
  color: #008a58;
}

.trader-data-status-delayed {
  color: #b36c00;
}

.trader-manual-head-actions {
  display: flex;
  align-items: center;
  gap: 9px;
}

.trader-manual-head-actions > span {
  color: #9b6500;
  font-size: 12px;
  white-space: nowrap;
}

.trader-manual-create {
  min-height: 32px;
  padding: 0 11px;
  border: 1px solid #2a6fc4;
  border-radius: 7px;
  color: #fff;
  background: #2568bb;
  font-size: 12px;
  font-weight: 700;
}

.trader-manual-filters {
  padding: 8px 11px;
  display: flex;
  gap: 7px;
  border-bottom: 1px solid var(--line-soft);
  background: #fbfcfe;
}

.trader-manual-filters button {
  min-height: 28px;
  padding: 0 10px;
  border: 1px solid #d7e0ea;
  border-radius: 6px;
  color: #66758a;
  background: #fff;
  font-size: 12px;
}

.trader-manual-filters button.active {
  border-color: #b6d2f2;
  color: #1e63b9;
  background: #eef6ff;
  font-weight: 700;
}

.trader-manual-strategy-table {
  min-width: 1120px;
}

.trader-manual-strategy-table td:nth-child(2) {
  color: #111827;
  font-weight: 800;
}

.trader-manual-strategy-table .trader-strategy-summary {
  min-width: 220px;
  max-width: 320px;
  white-space: normal;
  line-height: 1.45;
}

.trader-manual-strategy-table tr.strategy-ended {
  opacity: .72;
  background: #fafbfc;
}

.trader-strategy-ended {
  border-color: #cbd5e1;
  background: #f3f5f8;
  color: #66758a;
}

.trader-manual-row-actions {
  display: flex;
  gap: 6px;
}

.trader-manual-row-actions button {
  min-height: 29px;
  padding: 0 9px;
  border: 1px solid #cad7e6;
  border-radius: 6px;
  color: #53637a;
  background: #fff;
  font-size: 12px;
}

.trader-manual-form {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.trader-manual-form label {
  display: grid;
  gap: 6px;
  color: #53637a;
  font-size: 12px;
}

.trader-manual-form label.wide { grid-column: 1 / -1; }
.trader-manual-form input,
.trader-manual-form select,
.trader-manual-form textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  background: #fbfcfe;
}
.trader-manual-form input,
.trader-manual-form select { min-height: 40px; padding: 0 10px; }
.trader-manual-form textarea { min-height: 86px; padding: 10px; resize: vertical; }
.trader-manual-form-note { margin: 12px 0 0; padding: 10px 12px; border-radius: 8px; color: #725916; background: #fff8e8; font-size: 12px; }
.trader-manual-form .trader-manual-form-note,
.trader-manual-form .modal-actions { grid-column: 1 / -1; }
.manual-strategy-end-panel { color: #53637a; line-height: 1.65; }
.manual-strategy-end-panel strong { color: #111827; }

.trader-positive {
  color: #008a58;
  font-weight: 800;
}

.trader-negative {
  color: #d13d4a;
  font-weight: 800;
}

.trader-load-more {
  width: 100%;
  min-height: 38px;
  border: 0;
  border-top: 1px solid var(--line-soft);
  background: #fbfcfe;
  color: #53637a;
  font-size: 12px;
}

.trader-load-more:hover {
  background: #f4f7fb;
  color: #111827;
}

.trader-load-more[hidden] {
  display: none;
}

@media (max-width: 1180px) {
  .toolbar {
    grid-template-columns: minmax(0, 1fr);
  }

  .mode-tabs {
    width: 100%;
    overflow-x: auto;
  }

  .trader-profile-bar {
    grid-template-columns: 54px minmax(0, 1fr);
  }

  .trader-sync-box {
    grid-column: 2;
    min-width: 0;
    justify-items: start;
  }
}

.tab .count {
  margin-left: 6px;
  color: var(--gold);
}

.unread-mini {
  display: inline-flex;
  align-items: center;
  margin-left: 6px;
  min-height: 18px;
  padding: 1px 5px;
  border-radius: 999px;
  background: #ef4444;
  color: #fff;
  font-size: 11px;
  font-weight: 800;
}

.performance-strip {
  min-width: 0;
  display: grid;
  gap: 4px;
  align-self: stretch;
  padding: 3px 0;
}

.performance-row {
  min-height: 24px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
  padding: 2px 8px;
  overflow: hidden;
}

.performance-row.long {
  border-color: #bbf7d0;
  background: #f0fdf4;
}

.performance-row.short {
  border-color: #fecaca;
  background: #fff7f7;
}

.performance-label {
  color: #334155;
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

.performance-track {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  overflow-x: auto;
  white-space: nowrap;
  scrollbar-width: none;
}

.performance-track::-webkit-scrollbar {
  display: none;
}

.performance-item {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  color: #0f172a;
  font-size: 12px;
  line-height: 18px;
}

.performance-item strong {
  font-size: 12px;
  font-weight: 900;
}

.performance-item em {
  font-style: normal;
  font-weight: 800;
}

.performance-empty {
  color: var(--muted);
  font-size: 12px;
}

.lock-mini {
  display: inline-flex;
  align-items: center;
  margin-left: 6px;
  min-height: 18px;
  padding: 1px 5px;
  border-radius: 4px;
  border: 1px solid #e7c978;
  background: linear-gradient(160deg, #fffdf5 0%, #fff3c4 52%, #f8d36b 100%);
  color: #422006;
  font-size: 11px;
  font-weight: 700;
}

.search-box {
  display: flex;
  min-width: 320px;
  gap: 8px;
}

.search-box input {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 7px;
  padding: 9px 11px;
  outline: none;
}

.search-box button,
.action-btn {
  border: 1px solid #c9d2dd;
  background: #fff;
  border-radius: 7px;
  padding: 8px 10px;
  color: #1f2937;
}

.search-box button {
  background: #111827;
  color: #fff;
  border-color: #111827;
  min-width: 64px;
}

.main-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
  padding: 0 28px 28px;
  align-items: start;
}

.table-panel {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: var(--shadow);
}

.table-panel {
  height: var(--table-panel-target-height, 660px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.panel-header {
  min-height: 36px;
  height: auto;
  flex: 0 0 auto;
  padding: 8px 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--line-soft);
}

.panel-header h1 {
  display: none;
}

.panel-header p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 20px;
}

.lock-hint {
  color: var(--gold);
  font-size: 12px;
}

.table-tools {
  min-height: 40px;
  padding: 6px 10px;
  display: flex;
  align-items: center;
  gap: 7px;
  flex-wrap: wrap;
  border-bottom: 1px solid var(--line-soft);
  background: #fbfcfe;
}

.table-tools label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--muted);
  font-size: 12px;
}

.table-tools select,
.table-tools input {
  height: 28px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
  padding: 0 9px;
}

.table-tools input {
  width: 160px;
}

.table-search-box {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-left: 2px;
}

.table-search-box input {
  width: 210px;
}

.table-search-box button {
  height: 28px;
  border: 1px solid #111827;
  border-radius: 6px;
  background: #111827;
  color: #fff;
  padding: 0 12px;
}

.tool-btn {
  height: 28px;
  border: 1px solid #c9d2dd;
  background: #fff;
  border-radius: 6px;
  padding: 0 10px;
}

.tool-btn.ghost {
  color: var(--muted);
}

.watchlist-tools {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-width: 260px;
  margin-left: auto;
}

.watchlist-tools.hidden {
  display: none;
}

.watchlist-add-btn {
  border-color: #d7b36a;
  background: #fff8eb;
  color: #7a5210;
  font-weight: 700;
}

.watchlist-hint {
  color: var(--muted);
  font-size: 12px;
  line-height: 18px;
  white-space: nowrap;
}

.action-btn:disabled,
.actions button:disabled {
  cursor: not-allowed;
  opacity: 0.56;
  background: #f3f4f6;
  color: #94a3b8;
}

.table-scroll-tools {
  display: block;
  min-height: 42px;
  padding: 7px 12px;
  border-bottom: 1px solid var(--line-soft);
  background: #fff;
}

.top-scrollbar {
  overflow-x: auto;
  overflow-y: hidden;
  height: 16px;
  border: 1px solid var(--line-soft);
  border-radius: 999px;
  background: #f8fafc;
}

.top-scroll-inner {
  height: 1px;
}

.table-wrap {
  overflow: auto;
  flex: 1;
  min-height: 0;
  position: relative;
  cursor: grab;
  touch-action: pan-y;
  user-select: auto;
}

.table-wrap.dragging-scroll {
  cursor: grabbing;
  user-select: none;
}

table {
  width: 100%;
  min-width: 1760px;
  border-collapse: separate;
  border-spacing: 0;
}

.signal-table {
  width: max-content;
  min-width: 1320px;
}

th,
td {
  height: 42px;
  padding: 8px 10px;
  border-bottom: 1px solid var(--line-soft);
  text-align: left;
  white-space: nowrap;
}

.signal-table th,
.signal-table td {
  height: 38px;
  padding: 6px 7px;
}

.signal-table th[data-col],
.signal-table td[data-col] {
  box-sizing: border-box;
}

th[data-col="signal_time"],
td[data-col="signal_time"] {
  width: 76px;
  min-width: 76px;
  max-width: 76px;
}

body[data-radar-mode="long"] .signal-table th[data-col="current_wave"],
body[data-radar-mode="long"] .signal-table td[data-col="current_wave"] {
  width: 66px;
  min-width: 66px;
  max-width: 66px;
}

body[data-radar-mode="long"] .signal-table th[data-col="development_status"],
body[data-radar-mode="long"] .signal-table td[data-col="development_status"] {
  width: 94px;
  min-width: 94px;
  max-width: 94px;
}

body[data-radar-mode="long"] .signal-table th[data-col="coin"],
body[data-radar-mode="long"] .signal-table td[data-col="coin"] {
  width: 92px;
  min-width: 92px;
  max-width: 92px;
}

body[data-radar-mode="long"] .signal-table th[data-col="exchange_entry"],
body[data-radar-mode="long"] .signal-table td[data-col="exchange_entry"] {
  width: 78px;
  min-width: 78px;
  max-width: 78px;
}

body[data-radar-mode="long"] .signal-table th[data-col="current_price"],
body[data-radar-mode="long"] .signal-table td[data-col="current_price"],
body[data-radar-mode="long"] .signal-table th[data-col="spot_price"],
body[data-radar-mode="long"] .signal-table td[data-col="spot_price"],
body[data-radar-mode="long"] .signal-table th[data-col="first_price"],
body[data-radar-mode="long"] .signal-table td[data-col="first_price"] {
  width: 84px;
  min-width: 84px;
  max-width: 84px;
}

body[data-radar-mode="long"] .signal-table th[data-col="first_gain"],
body[data-radar-mode="long"] .signal-table td[data-col="first_gain"],
body[data-radar-mode="long"] .signal-table th[data-col="history_max_gain"],
body[data-radar-mode="long"] .signal-table td[data-col="history_max_gain"] {
  width: 86px;
  min-width: 86px;
  max-width: 86px;
}

body[data-radar-mode="long"] .signal-table th[data-col="first_max_gain"],
body[data-radar-mode="long"] .signal-table td[data-col="first_max_gain"],
body[data-radar-mode="long"] .signal-table th[data-col="volume_growth"],
body[data-radar-mode="long"] .signal-table td[data-col="volume_growth"],
body[data-radar-mode="long"] .signal-table th[data-col="oi_change"],
body[data-radar-mode="long"] .signal-table td[data-col="oi_change"] {
  width: 104px;
  min-width: 104px;
  max-width: 104px;
}

body[data-radar-mode="long"] .signal-table th[data-col="volume_rank"],
body[data-radar-mode="long"] .signal-table td[data-col="volume_rank"],
body[data-radar-mode="long"] .signal-table th[data-col="market_cap"],
body[data-radar-mode="long"] .signal-table td[data-col="market_cap"],
body[data-radar-mode="long"] .signal-table th[data-col="oi_mcap"],
body[data-radar-mode="long"] .signal-table td[data-col="oi_mcap"] {
  width: 84px;
  min-width: 84px;
  max-width: 84px;
}

.signal-time-cell {
  padding-top: 6px;
  padding-bottom: 6px;
}

.signal-time-stack {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  line-height: 1.05;
}

.signal-time-date {
  color: var(--text);
  font-weight: 700;
}

.signal-time-clock {
  color: var(--muted);
  font-size: 12px;
  font-variant-numeric: tabular-nums;
}

th {
  position: sticky;
  top: 0;
  z-index: 5;
  background: #f8fafc;
  color: #44515f;
  font-size: 12px;
  font-weight: 700;
}

.th-inner {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-width: max-content;
}

.signal-table .th-inner {
  gap: 3px;
}

.th-btn {
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-weight: 700;
  text-align: left;
  padding: 0;
  line-height: 1.15;
  white-space: pre-line;
}

.th-btn::after {
  content: " ?";
  color: var(--gold);
  font-weight: 700;
}

.mini-sort-btn {
  width: 22px;
  height: 22px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: #fff;
  color: var(--muted);
  font-size: 12px;
  line-height: 1;
}

.signal-table .mini-sort-btn {
  width: 18px;
  height: 20px;
  border-radius: 4px;
  font-size: 11px;
}

.signal-table .action-btn {
  padding: 5px 8px;
}

.reference-price-btn {
  position: relative;
  border-color: #3f7a63 !important;
  background: #f2faf6 !important;
  color: #235943 !important;
}

.reference-arrival-badge {
  position: absolute;
  top: -7px;
  right: -6px;
  width: 15px;
  height: 15px;
  display: grid;
  place-items: center;
  border: 2px solid #fff;
  border-radius: 50%;
  background: #079455;
  color: #fff;
  font-size: 9px;
  font-style: normal;
  font-weight: 800;
  line-height: 1;
  pointer-events: none;
}

.reference-price-btn:not(.has-reference-arrival) .reference-arrival-badge {
  display: none;
}

.reference-price-summary {
  display: grid;
  gap: 8px;
  margin-bottom: 12px;
  padding: 11px 12px;
  border: 1px solid #dde5e1;
  border-radius: 7px;
  background: #f7faf8;
}

.reference-share-actions {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 10px;
}

.reference-share-btn {
  min-height: 34px;
  padding: 7px 13px;
  border: 1px solid #17251f;
  border-radius: 7px;
  color: #fff;
  background: #17251f;
  font-weight: 800;
}

.reference-share-btn:hover,
.reference-share-btn:focus-visible {
  background: #263d33;
  outline: none;
}

.reference-share-btn.is-copied {
  border-color: #83e3b0;
  color: #067647;
  background: #ecfff5;
}

.reference-price-summary p,
.reference-price-disclaimer {
  margin: 0;
}

.reference-price-summary p {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.reference-price-summary .reference-current-price {
  padding-bottom: 8px;
  border-bottom: 1px solid #dde5e1;
}

.reference-current-price-value {
  color: #0f172a;
  font-size: 15px;
}

.reference-price-levels {
  display: grid;
  gap: 8px;
}

.reference-price-level {
  display: grid;
  gap: 8px;
  padding: 11px 12px;
  border: 1px solid #e1e7e4;
  border-radius: 7px;
  background: #fff;
  font-size: 13px;
}

.reference-level-head,
.reference-risk-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.reference-level-head {
  justify-content: flex-start;
  gap: 3px;
}

.reference-level-head strong {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  color: #17251f;
}

.reference-level-head strong > span {
  color: #66736d;
  font-weight: 500;
}

.reference-arrival-text {
  flex: none;
  color: #17251f;
  font-style: normal;
  font-weight: 800;
}

.reference-arrival-text[hidden] {
  display: none;
}

.reference-risk-row {
  justify-content: flex-start;
  padding-top: 7px;
  border-top: 1px solid #eef2f0;
}

.reference-risk-row > span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-weight: 700;
}

.reference-stop {
  color: #b42318;
}

.reference-profit {
  color: #067647;
}

.reference-copy-price {
  min-height: 0;
  margin: 0;
  padding: 1px 3px;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: inherit;
  font-weight: 800;
  line-height: 1.35;
  text-decoration: underline;
  text-decoration-style: dotted;
  text-underline-offset: 3px;
}

.reference-copy-price:hover,
.reference-copy-price:focus-visible {
  background: #edf3f0;
  outline: none;
}

.reference-copy-price.is-copied {
  color: #17251f;
  background: #e7eeea;
}

.reference-price-disclaimer {
  margin-top: 13px;
  color: #66736d;
  font-size: 12px;
  line-height: 1.6;
}

tbody tr:hover td {
  background: #fbfcfe;
}

.sticky-col {
  position: sticky;
  left: 0;
  z-index: 4;
  background: var(--panel);
  background-clip: padding-box;
}

th.sticky-col {
  z-index: 9;
  background: #f8fafc;
}

tbody tr:hover td.sticky-col {
  background: #fbfcfe;
}

.pinned-col {
  box-shadow: 1px 0 0 var(--line-soft);
}

.coin-btn {
  border: 0;
  background: transparent;
  padding: 0;
  font-weight: 700;
  color: #111827;
}

.coin-with-asset-note {
  display: inline-flex;
  align-items: baseline;
  gap: 5px;
  min-width: 0;
}

.tradfi-asset-note {
  display: inline-flex;
  align-items: center;
  height: 16px;
  padding: 0 4px;
  border: 1px solid #d7dde6;
  border-radius: 3px;
  background: #f8fafc;
  color: #64748b;
  font-size: 10px;
  font-weight: 800;
  line-height: 1;
  vertical-align: baseline;
}

.tradfi-asset-note-us { border-color: #b9d0ff; background: #f2f6ff; color: #2457c5; }
.tradfi-asset-note-hk { border-color: #f4c7d0; background: #fff5f7; color: #b4233a; }
.tradfi-asset-note-kr { border-color: #bfe6d7; background: #f0fbf6; color: #087453; }
.tradfi-asset-note-jp { border-color: #dac7ff; background: #f7f2ff; color: #6842b8; }
.tradfi-asset-note-cn { border-color: #c7d2fe; background: #eef2ff; color: #4338ca; }
.tradfi-asset-note-commodity { border-color: #f1d38d; background: #fff8e4; color: #8a5d08; }
.tradfi-asset-note-preipo { border-color: #c5d0dd; background: #eef2f7; color: #42526b; }

.field-cell {
  cursor: pointer;
}

.trader-manual-row-actions .trader-manual-copy {
  border-color: #a9c7ec;
  color: #2467ad;
  background: #eef6ff;
}

.field-cell:hover {
  text-decoration: underline;
  text-decoration-color: #d7b36a;
  text-underline-offset: 4px;
}

.source-masked-row td {
  background: #fbfcfe;
}

.source-mask-cell {
  color: #cbd5e1;
  cursor: default;
}

.source-mask-label {
  color: inherit;
}

.masked-placeholder {
  color: #d1d5db;
}

.source-masked-row:hover td,
.source-masked-row:hover td.sticky-col {
  background: #fbfcfe;
}

.global-asset-data-row td {
  border-bottom-color: #f2ead8;
}

.global-asset-cell {
  min-width: 112px;
}

.global-asset-cn {
  display: block;
  margin-top: 2px;
  color: var(--muted);
  font-size: 12px;
}

.global-profile-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line-soft);
}

.global-section-row td {
  position: sticky;
  left: 0;
  z-index: 3;
  padding: 0;
  background: #fff4cf;
  border-top: 1px solid #e5bd68;
  border-bottom: 1px solid #e5bd68;
}

.global-section-title {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 28px;
  padding: 4px 10px;
  color: #6f4700;
  font-size: 13px;
}

.global-section-title strong {
  font-size: 14px;
  letter-spacing: 0;
}

.global-section-title span {
  color: #9a6a10;
}

.global-event-cell {
  width: 300px;
  min-width: 300px;
  max-width: 300px;
  cursor: pointer;
  overflow: hidden;
}

.global-event-chip {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 7px;
  margin-right: 6px;
  border: 1px solid #ead7b7;
  border-radius: 6px;
  color: #7a5210;
  background: #fff8e6;
  font-size: 12px;
  vertical-align: middle;
}

.global-event-title {
  display: inline-block;
  max-width: 210px;
  color: #1f2937;
  font-size: 13px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  vertical-align: middle;
}

.global-event-earnings,
.global-event-rating {
  color: #175cd3;
  background: #eff8ff;
  border-color: #b2ddff;
}

.global-event-macro,
.global-event-regulation {
  color: #b42318;
  background: #fff1f3;
  border-color: #fecdd6;
}

.global-event-commodity {
  color: #027a48;
  background: #ecfdf3;
  border-color: #abefc6;
}

.global-event-loading {
  color: #7a5210;
  background: #fff8e6;
  border-color: #ead7b7;
}

.global-news-row td {
  height: 34px;
  padding: 0;
  background: #fffaf0;
  border-bottom-color: #ead7b7;
  cursor: pointer;
}

.global-news-row:hover td {
  background: #fff6df;
}

.global-news-track {
  position: relative;
  overflow: hidden;
  height: 34px;
  line-height: 34px;
  color: #7a5210;
  font-size: 13px;
}

.global-news-track span {
  display: inline-block;
  min-width: 100%;
  padding-left: 100%;
  white-space: nowrap;
  animation: global-news-marquee 32s linear infinite;
}

.global-news-row:hover .global-news-track span {
  animation-play-state: paused;
}

@keyframes global-news-marquee {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-100%);
  }
}

.asset-type-stock {
  color: #175cd3;
  background: #eff8ff;
  border-color: #b2ddff;
}

.asset-type-adr {
  color: #6941c6;
  background: #f4f3ff;
  border-color: #d9d6fe;
}

.asset-type-preipo {
  color: #9f1ab1;
  background: #fdf4ff;
  border-color: #f0abfc;
}

.asset-type-overseas {
  color: #075985;
  background: #f0f9ff;
  border-color: #bae6fd;
}

.asset-type-etf {
  color: #027a48;
  background: #ecfdf3;
  border-color: #abefc6;
}

.asset-type-leverage {
  color: #b42318;
  background: #fef3f2;
  border-color: #fecdca;
}

.asset-type-commodity {
  color: #7a5210;
  background: var(--gold-soft);
  border-color: #ead7b7;
}

.global-status-fresh {
  color: #027a48;
  background: #ecfdf3;
  border-color: #abefc6;
}

.global-status-watch {
  color: #175cd3;
  background: #eff8ff;
  border-color: #b2ddff;
}

.global-status-history {
  color: #7a5210;
  background: var(--gold-soft);
  border-color: #ead7b7;
}

.global-status-idle {
  color: #667085;
  background: #f8fafc;
  border-color: var(--line);
}

.global-news-modal-list .news-modal-item strong {
  display: block;
  color: #111827;
  font-weight: 700;
}

.positive {
  color: var(--green);
}

.negative {
  color: var(--red);
}

.muted {
  color: var(--muted);
}

.tag {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 3px 7px;
  border-radius: 5px;
  border: 1px solid var(--line);
  background: #fff;
  color: #4b5563;
  font-size: 12px;
}

.tag.gold {
  color: #7a5210;
  background: var(--gold-soft);
  border-color: #ead7b7;
}

.tag.locked {
  color: #422006;
  background: linear-gradient(160deg, #fffdf5 0%, #fff3c4 52%, #f8d36b 100%);
  border-color: #e7c978;
  font-weight: 700;
}

.tag.short-stage-tag {
  color: #c92f40;
  background: #fff1f2;
  border-color: #ffb7c0;
  font-weight: 700;
}

.short-ai-filter-tag {
  min-width: 72px;
  justify-content: center;
  font-weight: 700;
}

.short-ai-confirming {
  color: #344054;
  background: #f9fafb;
  border-color: #d0d5dd;
}

.short-ai-data {
  color: #92400e;
  background: #fffbeb;
  border-color: #fbbf24;
}

.short-ai-stale {
  color: #7f1d1d;
  background: #fef2f2;
  border-color: #fecaca;
}

.short-ai-a {
  color: #7a271a;
  background: #fff1f0;
  border-color: #fecdca;
}

.short-ai-b {
  color: #175cd3;
  background: #eff8ff;
  border-color: #b2ddff;
}

.short-ai-c {
  color: #05603a;
  background: #ecfdf3;
  border-color: #abefc6;
}

.premium-feature-tag {
  color: #422006 !important;
  border-color: #e7c978 !important;
  background: linear-gradient(160deg, #fffdf5 0%, #fff3c4 52%, #f8d36b 100%) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.78);
  font-weight: 700;
}

th[data-field="onchain"] .th-btn,
th[data-field="deep_insight"] .th-btn {
  color: #422006;
  border-color: #e7c978;
  background: linear-gradient(160deg, #fffdf5 0%, #fff3c4 52%, #f8d36b 100%);
  font-weight: 700;
}

.permission-empty,
.permission-box {
  color: #7a5210;
  background: #fff8eb;
}

.permission-empty {
  padding: 0 !important;
  text-align: center;
}

.permission-box {
  border: 1px solid #ead7b7;
  border-radius: 8px;
  padding: 14px;
  box-sizing: border-box;
  width: 100%;
  min-height: 122px;
  display: grid;
  place-content: center;
  justify-items: center;
  align-content: center;
}

.permission-box p {
  margin: 8px 0 0;
  color: #6b7280;
  white-space: normal;
  text-align: center;
}

.permission-actions {
  margin-top: 12px;
  display: flex;
  justify-content: center;
  gap: 8px;
}

.permission-actions button {
  border: 1px solid #ead7b7;
  border-radius: 6px;
  padding: 7px 10px;
  background: #fff;
  color: #7a5210;
}

.trial-request-card {
  color: #243043;
  line-height: 1.7;
}

.trial-request-card > p {
  margin: 0 0 12px;
}

.trial-account-line {
  padding: 10px 12px;
  border: 1px solid #e4e9f0;
  border-radius: 8px;
  background: #f8fafc;
}

.trial-request-card h3 {
  margin: 16px 0 8px;
  font-size: 14px;
}

.trial-contact-list {
  overflow: hidden;
  border: 1px solid #e4e9f0;
  border-radius: 8px;
  background: #fff;
}

.trial-contact-list > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 10px 12px;
}

.trial-contact-list > div + div {
  border-top: 1px solid #edf0f4;
}

.trial-contact-list span {
  color: #6b7280;
}

.trial-contact-list strong {
  color: #172033;
  word-break: break-all;
}

.trial-request-actions {
  flex-wrap: wrap;
}

.signal-type-tag {
  font-weight: 700;
}

.development-status {
  min-width: 68px;
  justify-content: center;
  font-weight: 800;
}

.development-status.new {
  color: #7a5210;
  border-color: #e7c978;
  background: #fff8eb;
}

.development-status.active,
.development-status.strong {
  color: #027a48;
  border-color: #86efac;
  background: #ecfdf3;
}

.development-status.strong {
  box-shadow: inset 0 0 0 1px rgba(2, 138, 85, 0.12);
}

.development-status.pullback,
.development-status.watch {
  color: #92400e;
  border-color: #fcd34d;
  background: #fffbeb;
}

.development-status.failed {
  color: #b42318;
  border-color: #fecaca;
  background: #fff1f2;
}

.preview-gate-row td {
  padding: 0;
  background: #fff8eb;
}

.permission-gate-row td {
  padding: 0 !important;
}

.preview-gate {
  position: relative;
  min-height: 168px;
  margin: 0;
  border-top: 1px solid #e2e8f0;
  border-bottom: 1px solid #e2e8f0;
  overflow: hidden;
  background: linear-gradient(180deg, rgba(248, 250, 252, 0.96), rgba(241, 245, 249, 0.96));
}

.preview-skeleton {
  position: absolute;
  inset: 0;
  display: grid;
  align-content: center;
  gap: 12px;
  padding: 24px 34px;
  filter: blur(4px);
  opacity: 0.62;
}

.preview-skeleton span {
  display: block;
  height: 22px;
  border-radius: 6px;
  background: linear-gradient(90deg, #e2e8f0, #f8fafc, #e2e8f0);
}

.preview-skeleton span:nth-child(2) {
  width: 92%;
}

.preview-skeleton span:nth-child(3) {
  width: 86%;
}

.preview-skeleton span:nth-child(4) {
  width: 78%;
}

.preview-gate-copy {
  position: absolute;
  inset: 0;
  display: grid;
  place-content: center;
  gap: 8px;
  text-align: center;
  color: #17202a;
  background: rgba(255, 255, 255, 0.28);
}

.preview-gate-copy strong {
  font-size: 18px;
  font-weight: 900;
}

.preview-gate-copy small {
  color: #64748b;
  font-size: 13px;
}

.signal-type-micro {
  color: #027a48;
  background: #ecfdf3;
  border-color: #abefc6;
}

.signal-type-unusual {
  color: #175cd3;
  background: #eff8ff;
  border-color: #b2ddff;
}

.signal-type-volatile {
  color: #b54708;
  background: #fffaeb;
  border-color: #fedf89;
}

.signal-type-pump {
  color: #b42318;
  background: #fef3f2;
  border-color: #fecdca;
}

.signal-type-default {
  color: #4b5563;
  background: #fff;
  border-color: var(--line);
}

.actions {
  display: flex;
  gap: 6px;
  white-space: nowrap;
}

.signal-table th[data-col="actions"],
.signal-table td[data-col="actions"] {
  min-width: 356px;
}

.signal-table th[data-col="current_stage"],
.signal-table td[data-col="current_stage"] {
  min-width: 100px;
}

.signal-table th[data-col="signal_type"],
.signal-table td[data-col="signal_type"] {
  min-width: 72px;
}

.current-stage-cell {
  color: #172033;
  font-weight: 700;
}

.actions button {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 6px;
  padding: 5px 7px;
  font-size: 12px;
}

.actions button:not(:disabled) {
  color: #422006 !important;
  border-color: #e7c978 !important;
  background: linear-gradient(160deg, #fffdf5 0%, #fff3c4 52%, #f8d36b 100%) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.78);
  font-weight: 700;
}

.curve-cell {
  width: 128px;
  cursor: pointer;
}

.curve-thumb,
.curve-empty {
  width: 112px;
  height: 42px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
  padding: 0;
  overflow: hidden;
}

.curve-thumb img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.curve-empty {
  color: var(--muted);
  font-size: 12px;
}

.empty {
  padding: 24px;
  text-align: center;
  color: var(--muted);
}

.empty.small {
  padding: 12px;
  font-size: 12px;
  text-align: left;
}

.search-results {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 18px;
}

.inline-search-results {
  flex: 1 1 360px;
  min-width: 280px;
  margin-bottom: 0;
  flex-direction: row;
  align-items: center;
  overflow-x: auto;
  padding-bottom: 1px;
}

.search-chip {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 32px;
  padding: 4px 7px;
  border: 1px solid var(--line-soft);
  border-radius: 7px;
  background: #fff;
  white-space: nowrap;
}

.search-chip-meta {
  color: var(--muted);
  font-size: 12px;
}

.result-card {
  border: 1px solid var(--line-soft);
  border-radius: 7px;
  padding: 10px;
  background: #fbfcfe;
}

.result-head {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  font-weight: 700;
}

.result-meta {
  margin-top: 6px;
  color: var(--muted);
  font-size: 12px;
}

.result-actions {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
}

.result-actions button {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 6px;
  padding: 3px 5px;
  font-size: 12px;
}

.side-news-list {
  display: grid;
  gap: 8px;
  margin-bottom: 18px;
}

.side-news-item {
  border-left: 3px solid #d7b36a;
  padding: 4px 0 4px 8px;
}

.side-news-item a {
  color: var(--text);
  font-weight: 600;
  text-decoration: none;
}

.side-news-meta {
  margin-top: 3px;
  color: var(--muted);
  font-size: 12px;
}

.news-modal-list {
  display: grid;
  gap: 10px;
}

.news-modal-item {
  border-bottom: 1px solid var(--line-soft);
  padding-bottom: 10px;
}

.news-modal-item a {
  color: var(--text);
  font-weight: 700;
  text-decoration: none;
}

.news-modal-summary {
  margin-top: 5px;
  color: var(--muted);
  line-height: 1.55;
}

.btc-overview-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}

.btc-overview-cell {
  border: 1px solid var(--line-soft);
  border-radius: 7px;
  padding: 9px;
  background: #fbfcfe;
}

.btc-overview-cell span {
  display: block;
  color: var(--muted);
  font-size: 12px;
  margin-bottom: 4px;
}

.btc-overview-cell strong {
  font-size: 15px;
}

.main-market-table {
  width: 100%;
  border-collapse: collapse;
  margin: 8px 0 14px;
}

.main-market-table th,
.main-market-table td {
  border-bottom: 1px solid var(--line-soft);
  padding: 7px 6px;
  text-align: left;
}

.modal-section-title {
  margin: 16px 0 8px;
  font-size: 15px;
}

.note-list {
  display: grid;
  gap: 8px;
  color: var(--muted);
  font-size: 12px;
}

.note-list div {
  border-left: 3px solid #d7b36a;
  padding-left: 8px;
}

.modal.hidden {
  display: none;
}

.modal {
  position: fixed;
  inset: 0;
  z-index: 20;
}

.modal-mask {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.42);
}

.modal-card {
  position: absolute;
  top: 8vh;
  left: 50%;
  transform: translateX(-50%);
  width: min(860px, calc(100vw - 32px));
  max-height: 84vh;
  overflow: hidden;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.22);
  display: flex;
  flex-direction: column;
}

.modal-card.compact {
  width: min(460px, calc(100vw - 32px));
  top: 14vh;
}

.modal-card.member-center {
  width: min(720px, calc(100vw - 32px));
  top: 8vh;
  max-height: 88vh;
}

.notification-center-pill {
  position: relative;
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border: 1px solid #d8dee8;
  border-radius: 999px;
  background: #fff;
  cursor: pointer;
}

.notification-center-dot {
  position: absolute;
  top: 2px;
  right: 2px;
  width: 8px;
  height: 8px;
  border: 2px solid #fff;
  border-radius: 999px;
  background: #94a3b8;
}

.notification-center-dot.ready {
  background: #12a174;
}

.notification-center-dot.error {
  background: #d92d20;
}

.modal-card.notification-center {
  width: min(920px, calc(100vw - 32px));
  top: 6vh;
  max-height: 88vh;
}

.desktop-notification-statusline {
  margin-bottom: 14px;
  padding: 11px 13px;
  border: 1px solid #dbe4ee;
  border-radius: 8px;
  color: #334155;
  background: #f8fafc;
  font-size: 13px;
}

.desktop-notification-statusline.error {
  border-color: #fecaca;
  color: #991b1b;
  background: #fff1f2;
}

.desktop-channel-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.desktop-channel-card {
  padding: 15px;
  border: 1px solid #dbe4ee;
  border-radius: 10px;
  background: #fff;
}

.desktop-channel-card.ready {
  border-color: #86d3b8;
  background: #f3fbf8;
}

.desktop-channel-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.desktop-channel-head strong,
.desktop-channel-head small {
  display: block;
}

.desktop-channel-head strong {
  font-size: 15px;
}

.desktop-channel-head small {
  margin-top: 5px;
  color: #64748b;
  font-size: 12px;
  line-height: 1.55;
}

.desktop-channel-badge {
  flex: 0 0 auto;
  padding: 4px 8px;
  border-radius: 999px;
  color: #475569;
  background: #e2e8f0;
  font-size: 10px;
  font-style: normal;
  font-weight: 800;
}

.desktop-channel-card.ready .desktop-channel-badge {
  color: #075d45;
  background: #dff7ee;
}

.desktop-channel-actions {
  margin-top: 12px;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.desktop-channel-actions button,
.desktop-topic-button {
  min-height: 34px;
  padding: 7px 11px;
  border: 1px solid #d8dee8;
  border-radius: 7px;
  color: #334155;
  background: #fff;
  cursor: pointer;
}

.desktop-channel-actions button.primary {
  border-color: #111827;
  color: #fff;
  background: #111827;
}

.desktop-channel-actions button.danger {
  border-color: #fecaca;
  color: #b4232f;
  background: #fff7f7;
}

.desktop-shared-topics {
  margin-top: 18px;
}

.desktop-shared-topics h3 {
  margin: 0 0 4px;
  font-size: 15px;
}

.desktop-shared-topics > p {
  margin: 0 0 10px;
  color: #64748b;
  font-size: 12px;
}

.desktop-topic-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.desktop-topic-button {
  min-height: 58px;
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr) auto;
  gap: 9px;
  align-items: center;
  text-align: left;
}

.desktop-topic-button[aria-pressed="true"] {
  border-color: #86d3b8;
  background: #f3fbf8;
}

.desktop-topic-button:disabled {
  cursor: default;
  opacity: 0.68;
}

.desktop-topic-button strong,
.desktop-topic-button small {
  display: block;
}

.desktop-topic-button small {
  margin-top: 3px;
  color: #64748b;
  font-size: 11px;
}

.desktop-topic-button em {
  padding: 3px 6px;
  border-radius: 999px;
  color: #805b10;
  background: #fff4cf;
  font-size: 9px;
  font-style: normal;
}

.desktop-notification-note {
  margin-top: 12px;
  padding: 11px 13px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  color: #64748b;
  background: #f8fafc;
  font-size: 12px;
  line-height: 1.65;
}

.trader-notification-list {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}

.trader-notification-row {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto minmax(240px, auto);
  align-items: center;
  gap: 16px;
  min-height: 62px;
  padding: 10px 12px;
  border: 1px solid #d9e1eb;
  border-radius: 6px;
  background: #fff;
}

.trader-notification-identity,
.trader-notification-types,
.trader-notification-master {
  display: flex;
  align-items: center;
}

.trader-notification-identity { gap: 10px; min-width: 0; }
.trader-notification-identity > span:last-child { display: grid; gap: 3px; min-width: 0; }
.trader-notification-identity strong { color: #101828; font-size: 14px; }
.trader-notification-identity small { color: #667085; font-size: 12px; }

.trader-notification-avatar {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  flex: 0 0 36px;
  border-radius: 6px;
  background: #13223a;
  color: #fff;
  font-weight: 800;
}

.trader-notification-master,
.trader-notification-types label {
  gap: 6px;
  color: #344054;
  font-size: 13px;
  white-space: nowrap;
}

.trader-notification-types { gap: 14px; justify-content: flex-end; }
.trader-notification-row input { accent-color: #087a50; }
.trader-notification-row input:disabled + span,
.trader-notification-row label:has(input:disabled) { color: #98a2b3; }

.trader-notification-hint {
  margin: 8px 0 0;
  color: #667085;
  font-size: 12px;
}

.trader-notification-hint.warning { color: #b54708; }

.desktop-feishu-steps {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  counter-reset: desktop-feishu-step;
}

.desktop-feishu-step {
  padding: 11px;
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  gap: 9px;
  border: 1px solid #dbe4ee;
  border-radius: 8px;
  line-height: 1.55;
}

.desktop-feishu-step::before {
  counter-increment: desktop-feishu-step;
  content: counter(desktop-feishu-step);
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  color: #fff;
  background: #3370ff;
  font-size: 10px;
  font-weight: 800;
}

@media (max-width: 760px) {
  .desktop-channel-grid,
  .desktop-topic-grid,
  .desktop-feishu-steps {
    grid-template-columns: 1fr;
  }
}

.modal-card.wide {
  width: min(1080px, calc(100vw - 32px));
  top: 6vh;
  max-height: 88vh;
}

.modal-card.admin-users {
  top: 4vh;
  width: min(1560px, calc(100vw - 32px));
  height: 92vh;
  max-height: 92vh;
}

.modal-card.admin-users .modal-body {
  min-height: 0;
}

.modal-header {
  height: 54px;
  padding: 0 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--line-soft);
}

.modal-header h2 {
  margin: 0;
  font-size: 16px;
}

.modal-title-line {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.quickstart-video-trigger {
  min-height: 26px;
  padding: 3px 8px;
  border: 1px solid #b9d9f2;
  border-radius: 5px;
  color: #4489bd;
  background: #eef8ff;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
}

.quickstart-video-trigger:hover {
  border-color: #8fc4e8;
  color: #2677ae;
  background: #e2f4ff;
}

.quickstart-video-trigger.hidden,
.quickstart-video-modal.hidden {
  display: none;
}

.quickstart-video-modal {
  position: fixed;
  inset: 0;
  z-index: 220;
  display: grid;
  place-items: center;
  padding: 24px;
}

.quickstart-video-mask {
  position: absolute;
  inset: 0;
  border: 0;
  background: rgba(4, 11, 20, 0.78);
  backdrop-filter: blur(6px);
}

.quickstart-video-dialog {
  position: relative;
  width: min(900px, calc(100vw - 48px));
  overflow: hidden;
  border: 1px solid #334155;
  border-radius: 14px;
  background: #07111f;
  box-shadow: 0 30px 90px rgba(0, 0, 0, 0.48);
}

.quickstart-video-head {
  min-height: 62px;
  padding: 10px 12px 10px 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: #f8fafc;
}

.quickstart-video-head h2,
.quickstart-video-head p {
  margin: 0;
}

.quickstart-video-head h2 {
  font-size: 17px;
}

.quickstart-video-head p {
  margin-top: 3px;
  color: #91a4bf;
  font-size: 11px;
}

.quickstart-video-close {
  min-width: 58px;
  min-height: 34px;
  border: 1px solid #3a4b63;
  border-radius: 7px;
  color: #e2e8f0;
  background: #122238;
}

.quickstart-video-frame {
  position: relative;
  aspect-ratio: 16 / 9;
  background: #000;
}

.quickstart-video-frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

@media (max-width: 640px) {
  .quickstart-video-modal {
    padding: 10px;
  }

  .quickstart-video-dialog {
    width: calc(100vw - 20px);
  }
}

.icon-btn {
  width: 32px;
  height: 32px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
  font-size: 20px;
  line-height: 1;
}

.modal-body {
  overflow: auto;
  padding: 16px;
}

.detail-grid {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 8px 14px;
}

.detail-grid.compact-grid {
  grid-template-columns: 118px 1fr;
  font-size: 13px;
}

.modal-card.member-center .modal-body {
  padding: 20px 22px;
}

.modal-card.member-center .detail-grid.compact-grid {
  grid-template-columns: 118px minmax(0, 1fr) 118px minmax(0, 1fr);
  gap: 10px 18px;
  align-items: start;
  font-size: 14px;
  line-height: 1.55;
}

.modal-card.member-center .detail-grid dt {
  white-space: nowrap;
}

.modal-card.member-center .detail-grid dd {
  min-width: 0;
  white-space: normal;
  word-break: break-word;
}

.modal-card.member-center .auth-note {
  margin-top: 18px;
  padding: 10px 12px;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  background: #f8fafc;
  font-size: 13px;
  line-height: 1.7;
}

.modal-card.member-center .modal-actions {
  justify-content: flex-start;
  gap: 10px;
}

.modal-card.member-center .modal-actions button {
  min-width: 104px;
  height: 38px;
  padding: 0 14px;
  white-space: nowrap;
}

@media (max-width: 760px) {
  .modal-card.member-center {
    width: calc(100vw - 20px);
    top: 10px;
    max-height: calc(100vh - 20px);
  }

  .modal-card.member-center .detail-grid.compact-grid {
    grid-template-columns: 110px minmax(0, 1fr);
  }
}

.detail-grid.insight-grid {
  grid-template-columns: 150px minmax(0, 1fr);
  font-size: 15px;
  line-height: 1.6;
}

.desktop-insight-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  grid-template-areas:
    "overview focus"
    "price-matrix fund-matrix"
    "summary summary";
  gap: 14px;
  align-items: stretch;
}

.desktop-insight-card {
  min-width: 0;
  padding: 16px;
  border: 1px solid var(--line-soft);
  border-radius: 10px;
  background: #fbfdff;
}

.desktop-insight-card h3 {
  margin: 0 0 13px;
  color: #111827;
  font-size: 15px;
}

.desktop-insight-metric-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}

.desktop-insight-metric {
  min-width: 0;
  padding: 10px;
  border: 1px solid var(--line-soft);
  border-radius: 7px;
  background: #fff;
}

.desktop-insight-metric span,
.desktop-insight-metric b {
  display: block;
  min-width: 0;
}

.desktop-insight-metric span {
  margin-bottom: 5px;
  color: var(--muted);
  font-size: 12px;
}

.desktop-insight-metric b {
  overflow-wrap: anywhere;
  font-size: 14px;
}

.desktop-insight-overview {
  grid-area: overview;
}

.desktop-insight-overview-primary,
.desktop-insight-overview-secondary {
  display: grid;
  gap: 10px;
}

.desktop-insight-overview-primary {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.desktop-insight-overview-secondary {
  margin-top: 10px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.desktop-insight-overview-secondary.has-four {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.desktop-insight-overview-metric {
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--line-soft);
  border-radius: 8px;
  background: #fff;
}

.desktop-insight-overview-primary .desktop-insight-overview-metric {
  padding: 14px;
  background: linear-gradient(145deg, #fff 0%, #f7faff 100%);
}

.desktop-insight-overview-metric span,
.desktop-insight-overview-metric b {
  display: block;
}

.desktop-insight-overview-metric span {
  margin-bottom: 6px;
  color: var(--muted);
  font-size: 12px;
}

.desktop-insight-overview-metric b {
  overflow-wrap: anywhere;
  font-size: 15px;
}

.desktop-insight-overview-primary .desktop-insight-overview-metric b {
  font-size: 20px;
}

.desktop-insight-focus-card {
  grid-area: focus;
}

.desktop-insight-price-matrix {
  grid-area: price-matrix;
}

.desktop-insight-fund-matrix {
  grid-area: fund-matrix;
}

.desktop-insight-summary-card {
  grid-area: summary;
  border-color: #cbd5e1;
  background: linear-gradient(135deg, #f8fafc 0%, #fff 100%);
}

.desktop-insight-subsection {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--line-soft);
}

.desktop-insight-ratio-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
}

.desktop-insight-ratio-card {
  min-width: 0;
  padding: 11px;
  border: 1px solid var(--line-soft);
  border-radius: 8px;
  background: #fff;
}

.desktop-insight-ratio-card > span,
.desktop-insight-ratio-card > strong,
.desktop-insight-ratio-card > b {
  display: block;
}

.desktop-insight-ratio-card > span {
  margin-bottom: 5px;
  color: var(--muted);
  font-size: 12px;
}

.desktop-insight-ratio-card > strong,
.desktop-insight-ratio-card > b {
  overflow-wrap: anywhere;
  font-size: 14px;
}

.desktop-insight-ratio-bar {
  height: 6px;
  margin-top: 9px;
  display: flex;
  overflow: hidden;
  border-radius: 999px;
  background: #e5e7eb;
}

.desktop-insight-ratio-bar i.long {
  background: var(--green);
}

.desktop-insight-ratio-bar i.short {
  background: var(--red);
}

.desktop-insight-ratio-values {
  margin-top: 5px;
  display: flex;
  justify-content: space-between;
  gap: 6px;
  font-size: 11px;
}

.desktop-insight-ratio-values em {
  font-style: normal;
}

.desktop-insight-ratio-values em:first-child {
  color: var(--green);
}

.desktop-insight-ratio-values em:last-child {
  color: var(--red);
}

.desktop-insight-curve-button {
  width: 100%;
  min-height: 210px;
  padding: 0;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid #263244;
  border-radius: 8px;
  background: #080d15;
  cursor: zoom-in;
}

.desktop-insight-curve-button img {
  display: block;
  width: 100%;
  max-height: 280px;
  object-fit: contain;
}

.capital-snapshot-curve {
  cursor: default;
}

.capital-snapshot-curve canvas {
  display: block;
  width: 100%;
  min-height: 220px;
}

.capital-snapshot-notice {
  margin-bottom: 12px;
  padding: 11px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border: 1px solid #e5bd68;
  border-radius: 9px;
  color: #172033;
  background: #fffaf0;
}

.capital-snapshot-notice span {
  color: #596579;
  font-size: 13px;
}

.desktop-insight-curve-empty {
  min-height: 210px;
  display: grid;
  place-items: center;
  border: 1px dashed var(--line);
  border-radius: 8px;
  color: var(--muted);
  background: #f6f8fb;
}

.desktop-insight-curve-caption {
  margin-top: 14px;
  padding: 12px;
  border: 1px solid var(--line-soft);
  border-radius: 8px;
  background: #fff;
}

.desktop-insight-curve-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  font-size: 12px;
}

.desktop-insight-curve-legend span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.desktop-insight-curve-legend i {
  width: 9px;
  height: 9px;
  border-radius: 999px;
}

.desktop-insight-curve-legend i.price {
  background: #17b8d4;
}

.desktop-insight-curve-legend i.contract {
  background: #d8bf00;
}

.desktop-insight-curve-legend i.spot {
  background: #c026d3;
}

.desktop-insight-curve-caption p {
  margin: 10px 0 0;
  color: #475467;
  line-height: 1.65;
  font-size: 13px;
}

.desktop-insight-summary-card p {
  margin: 0;
  color: #1f2937;
  line-height: 1.75;
  font-size: 15px;
  font-weight: 700;
  white-space: pre-line;
}

.desktop-insight-summary-card small {
  display: block;
  margin-top: 9px;
  color: var(--muted);
}

.desktop-insight-table {
  overflow: hidden;
  border: 1px solid var(--line-soft);
  border-radius: 8px;
  background: #fff;
}

.desktop-insight-table-row {
  min-height: 38px;
  padding: 8px 11px;
  display: grid;
  grid-template-columns: 62px minmax(0, 1fr) minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  border-bottom: 1px solid var(--line-soft);
  font-size: 13px;
}

.desktop-insight-table-row:last-child {
  border-bottom: 0;
}

.desktop-insight-table-row b,
.desktop-insight-table-head span:not(:first-child) {
  text-align: right;
}

.desktop-fund-flow-table .desktop-insight-table-row:not(.desktop-insight-table-head) {
  min-height: 54px;
}

.desktop-fund-flow-cell {
  display: grid;
  align-content: center;
  justify-items: end;
  gap: 2px;
  min-width: 0;
  text-align: right;
  line-height: 1.25;
}

.desktop-fund-flow-cell strong {
  color: inherit;
  font-size: 14px;
  font-weight: 750;
}

.desktop-fund-flow-cell span {
  color: inherit;
  font-size: 13px;
  font-weight: 600;
}

.desktop-fund-flow-cell .missing {
  color: var(--muted);
}

.desktop-insight-table-head {
  color: var(--muted);
  background: #f6f8fb;
  font-weight: 700;
}

@media (max-width: 760px) {
  .desktop-insight-layout {
    grid-template-columns: 1fr;
    grid-template-areas:
      "overview"
      "focus"
      "price-matrix"
      "fund-matrix"
      "summary";
  }

  .desktop-insight-metric-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .desktop-insight-ratio-grid {
    grid-template-columns: 1fr;
  }
}

.detail-grid dt {
  color: var(--muted);
}

.detail-grid dd {
  margin: 0;
  word-break: break-word;
  white-space: pre-line;
}

.coin-profile-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--line-soft);
}

.coin-profile-logo {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  object-fit: cover;
  background: #f5f7fb;
  border: 1px solid var(--line-soft);
  flex: 0 0 auto;
}

.coin-profile-logo.fallback {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #7a5210;
  background: #fff8eb;
  font-weight: 800;
}

.coin-profile-name {
  font-size: 17px;
  font-weight: 800;
}

.coin-profile-symbol {
  margin-top: 3px;
  color: var(--muted);
  font-size: 12px;
}

.exchange-list {
  display: grid;
  gap: 8px;
}

.exchange-link {
  display: grid;
  grid-template-columns: 24px 28px auto 1fr;
  align-items: center;
  gap: 8px;
  min-height: 34px;
  padding: 7px 9px;
  border: 1px solid var(--line-soft);
  border-radius: 7px;
  background: #fbfcfe;
  color: #111827;
  text-decoration: none;
}

.exchange-link:hover {
  border-color: #d7b36a;
  background: #fffaf0;
}

.exchange-index {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #fff8eb;
  color: #7a5210;
  font-size: 12px;
  font-weight: 700;
}

.exchange-logo {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  object-fit: cover;
  background: #fff;
  border: 1px solid var(--line-soft);
}

.exchange-logo.fallback {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #7a5210;
  background: #fff8eb;
  font-size: 12px;
  font-weight: 800;
}

.exchange-name {
  font-weight: 700;
}

.exchange-note {
  color: var(--muted);
  font-size: 12px;
  text-align: right;
}

.exchange-section {
  margin-top: 14px;
}

.exchange-section-title {
  margin-bottom: 8px;
  color: #44515f;
  font-size: 13px;
  font-weight: 800;
}

.fee-link-list {
  display: grid;
  gap: 8px;
}

.fee-link-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 34px;
  padding: 8px 10px;
  border: 1px solid #ead7b7;
  border-radius: 7px;
  background: #fffaf0;
  color: #111827;
  text-decoration: none;
}

.fee-link-item.disabled {
  color: var(--muted);
  background: #fbfcfe;
  border-color: var(--line-soft);
}

.fee-link-name {
  font-weight: 700;
}

.fee-link-note {
  color: var(--muted);
  font-size: 12px;
}

.field-current-value {
  margin-bottom: 12px;
  padding: 10px 12px;
  border: 1px solid #ead7b7;
  border-radius: 7px;
  background: #fff8eb;
  color: #7a5210;
  font-size: 18px;
  font-weight: 700;
}

.ai-aggregation {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 82px;
  padding: 6px 2px;
}

.ai-aggregation-mark {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 3px solid #f0e2c4;
  border-top-color: #b88a2d;
  animation: aiAggregationSpin 0.9s linear infinite;
  flex: 0 0 auto;
}

.ai-aggregation-title {
  font-size: 15px;
  font-weight: 800;
  color: #111827;
}

.ai-aggregation-text {
  margin-top: 5px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
}

.ai-aggregation.error .ai-aggregation-mark {
  animation: none;
  border-color: #f3c7c7;
  border-top-color: #b91c1c;
}

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

.column-settings {
  display: grid;
  gap: 8px;
}

.column-setting-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 10px;
  border: 1px solid var(--line-soft);
  border-radius: 7px;
  background: #fbfcfe;
}

.column-setting-actions {
  display: flex;
  gap: 6px;
}

.column-setting-actions button,
.modal-actions button,
.modal-actions .button-link {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 6px;
  padding: 6px 8px;
}

.modal-actions .button-link {
  color: inherit;
  text-decoration: none;
}

.column-setting-actions button:disabled {
  color: #a8b1bd;
  cursor: not-allowed;
}

.modal-actions {
  margin-top: 14px;
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}

.auth-form {
  display: grid;
  gap: 12px;
}

.auth-form label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 13px;
}

.auth-form input,
.auth-form select {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 9px 10px;
  background: #fff;
  color: var(--text);
}

.auth-error {
  min-height: 18px;
  color: var(--red);
  font-size: 13px;
}

.auth-note {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}

.partner-register-community {
  margin: 0;
  color: var(--text);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
}

.partner-opening {
  display: grid;
  gap: 14px;
}

.partner-opening-head {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr) auto;
  align-items: flex-start;
  gap: 16px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--line-soft);
}

.partner-opening-head > div {
  display: grid;
  gap: 5px;
}

.partner-opening-kicker {
  color: var(--muted);
  font-size: 13px;
}

.partner-opening-head > div:first-child > strong {
  font-size: 28px;
  line-height: 1.1;
}

.partner-opening-head > div:first-child > strong small {
  color: var(--muted);
  font-size: 14px;
}

.partner-benefits {
  padding: 2px 0 0 24px;
  border-left: 1px solid var(--line-soft);
}

.partner-benefits > strong {
  display: block;
  margin-bottom: 8px;
  font-size: 16px;
}

.partner-benefit-list {
  display: grid;
  gap: 7px;
  color: #3d4a59;
  font-size: 15px;
}

.partner-benefit-item {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 30px;
}

.partner-benefit-item > span {
  display: inline-grid;
  flex: 0 0 20px;
  width: 20px;
  height: 20px;
  place-items: center;
  border-radius: 50%;
  background: #fff3d7;
  color: #a96b00;
  font-weight: 800;
}

.partner-benefit-item > b {
  font-weight: 600;
}

.partner-benefit-detail {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.partner-benefit-detail b {
  font-weight: 600;
}

.partner-benefit-detail small {
  color: #667085;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.55;
}

.official-membership-offer {
  margin-bottom: 14px;
  padding: 16px 18px;
  border: 1px solid #e8c36d;
  border-radius: 12px;
  background: #fffaf0;
}

.official-membership-offer > strong {
  color: #815500;
  font-size: 17px;
}

.official-membership-offer > p {
  margin: 8px 0 0;
  color: #475467;
  line-height: 1.65;
}

.partner-benefit-copy {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 30px;
  padding: 4px 9px;
  border: 1px solid #edc56e;
  border-radius: 7px;
  background: #fffaf0;
  color: #76500c;
}

.partner-benefit-copy strong {
  font-size: 16px;
  line-height: 1;
}

.partner-benefit-copy em {
  color: #1769d1;
  font-size: 13px;
  font-style: normal;
}

.partner-contact-title {
  margin: 2px 0 -3px;
  font-size: 16px;
  font-weight: 700;
}

.partner-payment-step {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  padding: 12px;
  border: 1px solid #efcf91;
  border-radius: 8px;
  background: #fffaf0;
}

.partner-payment-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  border-radius: 50%;
  color: #fff;
  background: #b7791f;
  font-weight: 700;
}

.partner-payment-content {
  min-width: 0;
}

.partner-payment-content > p {
  margin: 1px 0 9px;
  line-height: 1.55;
}

.partner-payment-networks {
  display: grid;
  gap: 10px;
}

.partner-network-card {
  display: grid;
  gap: 7px;
}

.partner-network-address {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 10px 12px;
  border: 1px solid #f0b6ba;
  border-radius: 7px;
  background: #fff;
}

.partner-network-address > img {
  width: 34px;
  height: 34px;
  border-radius: 7px;
  object-fit: contain;
}

.partner-network-address > div {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.partner-network-address span {
  color: var(--muted);
  font-size: 12px;
}

.partner-network-address code {
  overflow-wrap: anywhere;
  color: var(--text);
  font-family: "Consolas", "SFMono-Regular", monospace;
  font-size: 14px;
  font-weight: 700;
}

.partner-network-address button {
  color: #155eef;
  border-color: #b9cdfd;
  background: #f5f8ff;
}

.partner-network-warning {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
  color: #8a2c34;
  font-size: 13px;
}

.partner-network-warning img {
  width: 22px;
  height: 22px;
  border-radius: 4px;
  object-fit: contain;
}

.partner-contact-step {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 1px;
}

.partner-contact-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.partner-contact-grid > div,
.partner-contact-grid > a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 4px 8px;
  align-items: center;
  padding: 11px;
  border: 1px solid var(--line-soft);
  border-radius: 7px;
  color: var(--text);
  text-decoration: none;
  background: #fbfcfe;
}

.partner-contact-grid span {
  grid-column: 1 / -1;
  color: var(--muted);
  font-size: 12px;
}

.partner-contact-grid button,
.partner-contact-grid em {
  border: 0;
  padding: 0;
  color: #155eef;
  background: transparent;
  font-size: 12px;
  font-style: normal;
}

.partner-opening-note {
  padding: 12px;
  border-left: 3px solid #d69e2e;
  background: #fffaf0;
}

.partner-opening-note p {
  margin: 5px 0 0;
  color: #5f4a23;
}

.partner-account-summary {
  margin: 0;
}

.partner-channel-badge {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 3px 7px;
  border: 1px solid #d0d5dd;
  border-radius: 5px;
  color: #475467;
  background: #fff;
  font-size: 11px;
  font-weight: 700;
  vertical-align: middle;
}

.partner-channel-badge.partner {
  color: #854a0e;
  border-color: #efcf91;
  background: #fff8e8;
}

.partner-channel-badge.official {
  color: #344054;
  background: #f8fafc;
}

.payment-scan-box {
  display: grid;
  gap: 5px;
  margin-top: 10px;
  padding: 9px 10px;
  border: 1px solid var(--line-soft);
  border-radius: 6px;
  background: #f8fafc;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}

.payment-scan-error {
  color: var(--red);
}

.payment-scan-muted {
  color: var(--muted);
}

.payment-transfer-row {
  display: grid;
  gap: 4px;
  padding-top: 4px;
  border-top: 1px dashed var(--line-soft);
}

.payment-transfer-detail,
.mono-mini {
  max-width: 260px;
  overflow-wrap: anywhere;
  color: var(--muted);
  font-family: "Consolas", "SFMono-Regular", monospace;
  font-size: 11px;
  line-height: 1.45;
}

.admin-section {
  margin-top: 14px;
  padding: 12px;
  border: 1px solid var(--line-soft);
  border-radius: 8px;
  background: #fff;
}

.admin-create-section {
  margin-top: 0;
}

.admin-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.admin-section-head h3 {
  margin: 0;
  font-size: 14px;
}

.admin-section-head span {
  color: var(--muted);
  font-size: 12px;
}

.admin-section-head button,
.admin-create-form button,
.admin-user-actions button,
.admin-input-action button,
.admin-row-action button,
.admin-users-table button {
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
  padding: 7px 9px;
  white-space: nowrap;
}

.admin-row-action button.danger,
.admin-users-table button.danger {
  color: #b42318;
  border-color: #fecdca;
  background: #fff7f6;
}

.admin-section-head button:disabled,
.admin-user-actions button:disabled,
.admin-input-action button:disabled,
.admin-row-action button:disabled,
.admin-users-table button:disabled {
  color: #a8b1bd;
  background: #f8fafc;
  cursor: not-allowed;
}

.admin-create-form {
  display: grid;
  grid-template-columns: repeat(6, minmax(110px, 1fr)) auto;
  gap: 8px;
  align-items: center;
}

.admin-create-form input,
.admin-create-form select,
.admin-member-card input,
.admin-member-card select,
.admin-member-detail input,
.admin-member-detail select,
.admin-member-detail textarea,
.admin-users-table input,
.admin-users-table select {
  width: 100%;
  min-width: 0;
  height: 36px;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 7px 8px;
  background: #fff;
  color: var(--text);
}

.admin-member-detail textarea {
  min-height: 76px;
  resize: vertical;
  line-height: 1.5;
}

.admin-member-list {
  display: grid;
  align-content: start;
  gap: 4px;
  overflow: auto;
  padding: 6px;
  border-right: 1px solid var(--line-soft);
  background: #f8fafc;
}

.admin-member-search {
  display: grid;
  grid-template-columns: minmax(280px, 420px) auto auto;
  gap: 8px;
  align-items: center;
}

.admin-member-search input {
  width: 100%;
  min-width: 0;
  height: 36px;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 7px 10px;
  background: #fff;
  color: var(--text);
}

.admin-member-search button {
  height: 36px;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 7px 12px;
  background: #fff;
  color: var(--text);
  white-space: nowrap;
}

.admin-member-card {
  display: grid;
  gap: 12px;
  padding: 12px;
  border: 1px solid var(--line-soft);
  border-radius: 8px;
  background: #fbfcfe;
}

.admin-member-manager {
  padding: 0;
  overflow: hidden;
}

.admin-member-manager > .admin-section-head,
.admin-member-filter {
  padding: 12px;
}

.admin-member-filter {
  display: flex;
  align-items: center;
  gap: 16px;
  border-top: 1px solid var(--line-soft);
  border-bottom: 1px solid var(--line-soft);
  color: var(--muted);
  font-size: 12px;
}

.admin-member-filter label {
  display: flex;
  align-items: center;
  gap: 8px;
}

.admin-member-filter select {
  height: 32px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
  padding: 0 8px;
}

.admin-member-workspace {
  display: grid;
  grid-template-columns: minmax(390px, 0.36fr) minmax(600px, 1fr);
  height: min(570px, 61vh);
  min-height: 430px;
}

.admin-member-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 44px;
  align-items: center;
  border: 1px solid transparent;
  border-radius: 6px;
  background: #fff;
}

.admin-member-row:hover,
.admin-member-row.selected {
  border-color: #d6a43b;
  background: #fffaf0;
}

.admin-member-select {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(130px, 1fr) 78px 112px;
  align-items: center;
  gap: 8px;
  padding: 9px 10px;
  border: 0;
  background: transparent;
  color: var(--text);
  text-align: left;
}

.admin-member-select span,
.admin-member-select strong,
.admin-member-select small {
  min-width: 0;
  display: block;
}

.admin-member-select .admin-member-note-preview {
  color: #8a6115;
}

.admin-member-select strong,
.admin-member-select small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-member-select small {
  margin-top: 2px;
  color: var(--muted);
  font-size: 11px;
}

.admin-member-detail-panel {
  min-width: 0;
  overflow: auto;
  padding: 14px;
}

.admin-member-detail {
  display: grid;
  gap: 14px;
}

.admin-detail-section-title {
  padding-top: 12px;
  border-top: 1px solid var(--line-soft);
  font-size: 13px;
  font-weight: 800;
}

.admin-access-state {
  color: #a15c00;
  font-size: 12px;
  font-weight: 700;
}

.admin-access-state.active {
  color: var(--green);
}

.admin-switch {
  position: relative;
  width: 36px;
  height: 20px;
  display: inline-block;
  flex: 0 0 auto;
}

.admin-switch input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.admin-switch i {
  position: absolute;
  inset: 0;
  border-radius: 999px;
  background: #cbd5e1;
  transition: background 0.16s ease;
}

.admin-switch i::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.28);
  transition: transform 0.16s ease;
}

.admin-switch input:checked + i {
  background: #0e8f67;
}

.admin-switch input:checked + i::after {
  transform: translateX(16px);
}

.admin-entitlement-control {
  min-height: 36px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.admin-member-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.admin-member-title {
  font-size: 15px;
  font-weight: 800;
}

.admin-member-title .partner-channel-badge {
  margin-left: 6px;
}

.admin-user-sub {
  margin-top: 3px;
  color: var(--muted);
  font-size: 12px;
}

.admin-user-uid {
  color: #344054;
  max-width: 520px;
  word-break: break-all;
}

.admin-user-actions {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 6px;
}

.admin-member-grid,
.admin-billing-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.admin-member-grid label,
.admin-billing-grid label,
.admin-billing-grid .admin-entitlement-field {
  display: grid;
  gap: 5px;
  color: var(--muted);
  font-size: 12px;
}

.admin-member-grid .admin-member-note-field {
  grid-column: 1 / -1;
}

.admin-uid-section-title {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}

.admin-uid-section-title small {
  color: var(--muted);
  font-weight: 400;
}

.admin-member-uid-editor {
  display: grid;
  gap: 8px;
}

.admin-member-uid-row {
  display: grid;
  grid-template-columns: minmax(120px, .75fr) minmax(180px, 1.35fr) minmax(110px, .75fr) minmax(160px, 1.2fr) auto;
  gap: 8px;
  align-items: end;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.admin-member-uid-row label {
  display: grid;
  gap: 5px;
  color: var(--muted);
  font-size: 12px;
}

.admin-member-uid-add {
  background: #fffbf2;
  border-color: #f1d49a;
}

.admin-member-uid-actions {
  display: flex;
  gap: 6px;
  align-items: center;
  min-height: 36px;
}

.admin-member-uid-actions button {
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
  padding: 7px 9px;
  white-space: nowrap;
}

.admin-member-uid-actions button.danger {
  color: #b42318;
  border-color: #fecdca;
  background: #fff7f6;
}

.admin-member-uid-empty {
  padding: 12px;
  border: 1px dashed var(--line);
  border-radius: 8px;
  color: var(--muted);
  background: #fafbfc;
}

.admin-input-action,
.admin-row-action {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 6px;
  align-items: center;
}

.admin-point-metric {
  display: grid;
  align-content: center;
  min-height: 58px;
  padding: 8px 10px;
  border: 1px solid #ead7b7;
  border-radius: 7px;
  background: #fffaf0;
}

.admin-point-metric span,
.admin-point-metric small {
  color: var(--muted);
  font-size: 12px;
}

.admin-point-metric strong {
  margin: 2px 0;
  font-size: 16px;
}

.admin-empty {
  padding: 22px;
  border: 1px dashed var(--line);
  border-radius: 8px;
  text-align: center;
}

.admin-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--line-soft);
  border-radius: 8px;
}

.admin-users-table {
  border: 0;
}

.admin-users-table th,
.admin-users-table td {
  padding: 8px 10px;
  white-space: nowrap;
  vertical-align: middle;
}

.admin-row-action {
  min-width: 300px;
}

.admin-note-input {
  min-width: 220px;
}

.mini-table {
  width: 100%;
  min-width: 0;
  border: 1px solid var(--line-soft);
}

.mini-table th,
.mini-table td {
  height: 36px;
}

.mini-table .round-divider td {
  height: auto;
  padding: 10px 12px;
  background: #fff8eb;
  color: #7a5210;
  font-weight: 700;
  border-top: 1px solid #ead7b7;
  border-bottom: 1px solid #ead7b7;
}

.mini-table .round-divider.current-round td {
  background: #ecfdf3;
  color: #027a48;
  border-color: #abefc6;
}

.capital-snapshot-cell {
  text-align: center;
  white-space: nowrap;
}

.capital-snapshot-link {
  min-height: 28px;
  padding: 3px 10px;
  border: 1px solid #d6ad50;
  border-radius: 6px;
  color: #6b4a00;
  background: #fff2c7;
  font-weight: 700;
  cursor: pointer;
}

.capital-snapshot-state {
  color: var(--muted);
  font-size: 12px;
}

.round-divider span {
  margin-left: 14px;
  color: #8a6a2f;
  font-weight: 600;
}

.round-divider.current-round span {
  color: #047857;
}

.curve-large-wrap {
  width: 100%;
  border: 1px solid var(--line-soft);
  border-radius: 8px;
  background: #0b0f17;
  overflow: hidden;
}

.curve-large {
  width: 100%;
  max-height: 68vh;
  object-fit: contain;
  display: block;
}

.signal-chart-shell {
  display: grid;
  gap: 12px;
}

.signal-chart-toolbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

.signal-chart-title {
  font-size: 18px;
  font-weight: 800;
}

.signal-chart-status {
  margin-top: 4px;
  color: var(--muted);
  font-size: 12px;
}

.chart-range-controls {
  display: inline-flex;
  gap: 6px;
  padding: 3px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fafc;
}

.chart-range-btn {
  min-width: 42px;
  height: 30px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--muted);
}

.chart-range-btn.active {
  background: #111827;
  color: #fff;
}

.signal-chart-legend {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 34px;
  padding: 8px 10px;
  border: 1px solid var(--line-soft);
  border-radius: 7px;
  background: #fbfcfe;
  color: var(--muted);
  font-size: 12px;
}

.signal-chart-legend strong {
  color: var(--text);
  font-size: 16px;
}

.signal-chart-canvas {
  width: 100%;
  height: 440px;
  min-height: 440px;
  border: 1px solid var(--line-soft);
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
}

.chart-unavailable {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  color: var(--muted);
  text-align: center;
}

.signal-chart-details {
  padding: 12px;
  border: 1px solid var(--line-soft);
  border-radius: 8px;
  background: #fbfcfe;
}

.signal-chart-table th,
.signal-chart-table td {
  white-space: nowrap;
}

.modal-card.chart {
  position: fixed;
  inset: 0;
  top: 0;
  left: 0;
  transform: none;
  width: 100vw;
  height: 100vh;
  max-height: none;
  background: #0b1118;
  color: #e5e7eb;
  border: 1px solid #1f2a37;
  border-radius: 0;
  box-shadow: 0 28px 70px rgba(0, 0, 0, 0.34);
}

.modal-card.chart .modal-header {
  flex: 0 0 auto;
  background: #0f1722;
  border-bottom-color: #1f2a37;
}

.modal-card.chart .modal-header h2 {
  color: #f8fafc;
}

.modal-card.chart .icon-btn {
  color: #cbd5e1;
  background: #111827;
  border-color: #334155;
}

.modal-card.chart .modal-body {
  flex: 1 1 auto;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  background: #0b1118;
}

.trade-chart-shell {
  height: 100%;
  min-height: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  background: #0b1118;
  color: #e5e7eb;
}

.trade-chart-topbar {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 12px 14px;
  border-bottom: 1px solid #1f2a37;
  background: #0f1722;
}

.trade-chart-symbol {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.trade-chart-symbol strong {
  color: #f8fafc;
  font-size: 18px;
  letter-spacing: 0;
}

.trade-chart-symbol span,
.trade-chart-symbol em {
  color: #94a3b8;
  font-size: 12px;
  font-style: normal;
}

.trade-chart-symbol b {
  color: #00c087;
  font-size: 16px;
}

.trade-chart-controls,
.trade-chart-tabs {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  flex-wrap: wrap;
}

.trade-chart-controls span {
  width: 1px;
  height: 24px;
  margin: 0 2px;
  background: #263445;
}

.trade-chart-btn {
  height: 30px;
  padding: 0 10px;
  border: 1px solid #334155;
  border-radius: 4px;
  background: #111827;
  color: #dbe4ef;
  font-size: 12px;
  white-space: nowrap;
  cursor: pointer;
}

.trade-chart-btn:hover {
  border-color: #64748b;
  background: #152235;
}

.trade-chart-btn.active {
  border-color: #d7a934;
  color: #f8d56b;
  background: #1e293b;
}

.trade-chart-layout {
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 0;
}

.trade-chart-main {
  min-width: 0;
  min-height: 0;
  display: grid;
  grid-template-rows: minmax(300px, 45vh) auto minmax(150px, 1fr);
  border-right: 1px solid #1f2a37;
  overflow: auto;
}

.trade-chart-main-canvas,
.trade-chart-lower-canvas,
.trade-chart-mini-canvas {
  width: 100%;
  display: block;
  background: #0b1017;
}

.trade-chart-main-canvas {
  height: 45vh;
  min-height: 300px;
  border-bottom: 1px solid #1f2a37;
  cursor: grab;
  touch-action: none;
}

.trade-chart-tabs {
  justify-content: flex-start;
  padding: 8px 12px;
  border-bottom: 1px solid #1f2a37;
  background: #0f1722;
}

.trade-chart-lower-canvas {
  height: 150px;
  min-height: 150px;
}

.trade-chart-mini-panels {
  display: none;
  grid-template-columns: 1fr;
  gap: 1px;
  min-height: 0;
  background: #1f2a37;
}

.trade-chart-mini-canvas {
  height: 112px;
  min-height: 112px;
  cursor: grab;
  touch-action: none;
}

.trade-chart-lower-canvas {
  cursor: grab;
  touch-action: none;
}

.trade-chart-main-canvas.dragging,
.trade-chart-lower-canvas.dragging,
.trade-chart-mini-canvas.dragging {
  cursor: grabbing;
}

.trade-chart-shell.multi-mode .trade-chart-lower-canvas {
  display: none;
}

.trade-chart-shell.multi-mode .trade-chart-mini-panels {
  display: grid;
}

.trade-chart-shell.multi-mode .trade-chart-main {
  grid-template-rows: minmax(240px, 34vh) auto auto;
}

.trade-chart-shell.multi-mode .trade-chart-main-canvas {
  height: 34vh;
  min-height: 240px;
}

.trade-chart-side {
  min-width: 0;
  min-height: 0;
  padding: 14px;
  overflow: auto;
  background: #0f1722;
}

.trade-chart-side h3 {
  margin: 0 0 12px;
  color: #f8fafc;
  font-size: 15px;
}

.trade-chart-side-grid {
  display: grid;
  gap: 8px;
}

.trade-chart-metric {
  display: grid;
  grid-template-columns: 108px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  min-height: 34px;
  padding: 8px 10px;
  border: 1px solid #263445;
  border-radius: 6px;
  background: #111827;
}

.trade-chart-metric span {
  color: #94a3b8;
  font-size: 12px;
}

.trade-chart-metric strong {
  min-width: 0;
  color: #f8fafc;
  font-size: 13px;
  font-weight: 800;
  word-break: break-word;
}

.trade-chart-metric strong.positive {
  color: #00c087;
}

.trade-chart-metric strong.negative {
  color: #f6465d;
}

.chart-page {
  margin: 0;
  min-width: 1120px;
  height: 100vh;
  overflow: hidden;
  background: #0b1118;
}

.standalone-chart-shell {
  height: 100vh;
  min-height: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  background: #0b1118;
  color: #e5e7eb;
}

.standalone-chart-topbar {
  display: grid;
  grid-template-columns: minmax(360px, 1fr) auto;
  gap: 12px;
  align-items: center;
  min-height: 44px;
  padding: 6px 10px;
  border-bottom: 1px solid #1f2a37;
  background: #0f1722;
}

.standalone-chart-symbol {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  overflow: hidden;
}

.standalone-chart-symbol strong {
  flex: 0 0 auto;
  color: #f8fafc;
  font-size: 15px;
}

.standalone-chart-symbol b {
  flex: 0 0 auto;
  color: #00c087;
  font-size: 15px;
}

.standalone-chart-symbol span {
  min-width: 0;
  overflow: hidden;
  color: #cbd5e1;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.standalone-chart-controls {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  flex-wrap: wrap;
}

.standalone-chart-controls span {
  width: 1px;
  height: 24px;
  margin: 0 2px;
  background: #263445;
}

.standalone-chart-layout {
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
}

.standalone-chart-main {
  min-width: 0;
  min-height: 0;
  display: grid;
  grid-template-rows: minmax(330px, 52vh) auto minmax(160px, 1fr);
  border-right: 1px solid #1f2a37;
  overflow: hidden;
}

.standalone-chart-main .trade-chart-main-canvas {
  height: 52vh;
  min-height: 330px;
}

.chart-page .trade-chart-main-canvas,
.chart-page .trade-chart-lower-canvas,
.chart-page .trade-chart-mini-canvas,
.chart-page .trade-chart-main-canvas.dragging,
.chart-page .trade-chart-lower-canvas.dragging,
.chart-page .trade-chart-mini-canvas.dragging {
  cursor: default;
}

.standalone-chart-shell.multi-mode .trade-chart-lower-canvas {
  display: none;
}

.standalone-chart-shell.multi-mode .trade-chart-mini-panels {
  display: grid;
}

.standalone-chart-shell.multi-mode .standalone-chart-main {
  grid-template-rows: minmax(260px, 36vh) auto minmax(0, 1fr);
}

.standalone-chart-shell.multi-mode .trade-chart-main-canvas {
  height: 36vh;
  min-height: 260px;
}

.standalone-chart-shell.multi-mode .trade-chart-mini-panels {
  grid-auto-rows: minmax(112px, 1fr);
  overflow: hidden;
}

.standalone-chart-shell.multi-mode .trade-chart-mini-canvas {
  height: 100%;
  min-height: 112px;
}

body.chart-page.mobile-chart-page {
  min-width: 0;
  height: 100svh;
  overflow: auto;
}

.standalone-chart-shell.mobile-chart {
  min-width: 0;
}

.standalone-chart-shell.mobile-chart .trade-chart-side,
.standalone-chart-shell.mobile-chart .trade-chart-mini-panels,
.standalone-chart-shell.mobile-chart [data-chart-view="multi"] {
  display: none !important;
}

.standalone-chart-shell.mobile-chart .standalone-chart-layout {
  grid-template-columns: 1fr;
}

.standalone-chart-shell.mobile-chart .standalone-chart-main {
  border-right: 0;
}

@media (max-width: 760px) {
  .chart-page {
    min-width: 0;
    height: 100svh;
    overflow: auto;
  }

  .standalone-chart-shell {
    height: auto;
    min-height: 100svh;
  }

  .standalone-chart-topbar {
    position: sticky;
    top: 0;
    z-index: 3;
    grid-template-columns: 1fr;
    gap: 6px;
    min-height: 0;
    padding: 7px 8px;
  }

  .standalone-chart-symbol {
    gap: 6px;
  }

  .standalone-chart-symbol strong,
  .standalone-chart-symbol b {
    font-size: 13px;
  }

  .standalone-chart-symbol span {
    flex: 1 1 100%;
    font-size: 11px;
  }

  .standalone-chart-controls {
    justify-content: flex-start;
    flex-wrap: nowrap;
    gap: 5px;
    overflow-x: auto;
    padding-bottom: 2px;
    -webkit-overflow-scrolling: touch;
  }

  .standalone-chart-controls span {
    display: none;
  }

  .standalone-chart-controls .trade-chart-btn {
    flex: 0 0 auto;
    height: 30px;
    padding: 0 9px;
  }

  .standalone-chart-layout {
    grid-template-columns: 1fr;
  }

  .standalone-chart-main {
    grid-template-rows: minmax(300px, 54svh) auto 170px;
    border-right: 0;
    border-bottom: 1px solid #1f2a37;
    overflow: hidden;
  }

  .standalone-chart-main .trade-chart-main-canvas {
    height: 54svh;
    min-height: 300px;
  }

  .standalone-chart-shell.multi-mode .standalone-chart-main {
    grid-template-rows: minmax(280px, 46svh) auto minmax(0, 520px);
  }

  .standalone-chart-shell.multi-mode .trade-chart-main-canvas {
    height: 46svh;
    min-height: 280px;
  }

  .standalone-chart-shell.multi-mode .trade-chart-mini-panels {
    grid-auto-rows: 128px;
    max-height: 520px;
    overflow: auto;
  }

  .trade-chart-tabs {
    flex-wrap: nowrap;
    gap: 5px;
    overflow-x: auto;
    padding: 7px 8px;
    -webkit-overflow-scrolling: touch;
  }

  .trade-chart-lower-canvas {
    height: 170px;
    min-height: 170px;
  }

  .trade-chart-side {
    max-height: none;
    padding: 10px;
  }

  .trade-chart-side-grid {
    grid-template-columns: 1fr;
  }

  .trade-chart-metric {
    grid-template-columns: 92px minmax(0, 1fr);
    min-height: 30px;
    padding: 7px 8px;
  }
}

@media (max-width: 1020px) {
  .main-grid {
    grid-template-columns: 1fr;
  }

  .toolbar {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .conversion-strip {
    flex-direction: column;
    align-items: stretch;
  }

  .btc-tile {
    width: 100%;
    min-width: 0;
    min-height: 86px;
  }

  .intel-lanes,
  .btc-overview-grid {
    grid-template-columns: 1fr;
  }

  .search-box {
    min-width: 0;
  }

  .table-scroll-tools {
    grid-template-columns: 1fr;
  }

  .admin-create-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .admin-create-form button {
    grid-column: 1 / -1;
  }

  .admin-member-head {
    display: grid;
  }

  .admin-user-actions {
    justify-content: flex-start;
  }

  .admin-member-grid,
  .admin-billing-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .signal-chart-toolbar {
    display: grid;
  }

  .chart-range-controls {
    justify-self: start;
  }

  .modal-card.chart {
    inset: 0;
    width: 100vw;
    height: 100vh;
    top: 0;
    max-height: none;
  }

  .trade-chart-topbar,
  .trade-chart-layout {
    grid-template-columns: 1fr;
  }

  .trade-chart-controls {
    justify-content: flex-start;
  }

  .trade-chart-main {
    border-right: 0;
    border-bottom: 1px solid #1f2a37;
  }

  .trade-chart-side {
    max-height: 220px;
  }
}

@media (max-width: 640px) {
  .modal-card.wide {
    width: calc(100vw - 16px);
    top: 10px;
    max-height: calc(100vh - 20px);
  }

  .modal-body {
    padding: 12px;
  }

  .partner-contact-grid {
    grid-template-columns: 1fr;
  }

  .partner-opening-head {
    align-items: stretch;
    grid-template-columns: 1fr;
  }

  .partner-benefits {
    padding: 11px 0 0;
    border-top: 1px solid var(--line-soft);
    border-left: 0;
  }

  .partner-benefit-list {
    display: grid;
    gap: 5px;
  }

  .partner-contact-title {
    margin-bottom: -3px;
  }

  .partner-opening-head .partner-channel-badge {
    align-self: flex-start;
  }

  .admin-create-form,
  .admin-member-grid,
  .admin-billing-grid {
    grid-template-columns: 1fr;
  }

  .admin-member-uid-row {
    grid-template-columns: 1fr;
  }

  .admin-uid-section-title {
    align-items: flex-start;
    flex-direction: column;
  }

  .admin-section-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .admin-member-search {
    width: 100%;
    grid-template-columns: minmax(0, 1fr) auto auto;
  }

  .admin-input-action,
  .admin-row-action {
    grid-template-columns: 1fr;
  }

  .signal-chart-canvas {
    height: 360px;
    min-height: 360px;
  }

  .signal-chart-legend {
    align-items: flex-start;
    flex-direction: column;
  }

  .modal-card.chart .modal-header {
    height: 46px;
    padding: 0 10px;
  }

  .trade-chart-topbar {
    padding: 10px;
  }

  .trade-chart-controls span {
    display: none;
  }

  .trade-chart-main {
    grid-template-rows: 330px auto minmax(130px, 1fr);
  }

  .trade-chart-main-canvas {
    height: 330px;
  }

  .trade-chart-mini-panels {
    grid-template-columns: 1fr;
  }

  .trade-chart-metric {
    grid-template-columns: 96px minmax(0, 1fr);
  }
}
.notification-focus-row {
  outline: 2px solid #d6a52c;
  outline-offset: -2px;
  background: #fff8dc !important;
  animation: notification-focus-pulse 1.1s ease-in-out 2;
}

@keyframes notification-focus-pulse {
  50% { box-shadow: inset 0 0 0 999px rgba(245, 188, 55, 0.12); }
}

.official-recharge-form {
  margin-top: 12px;
}

.official-recharge-submit-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 2px;
}

.official-recharge-inline-help {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  color: #556070;
  font-size: 12px;
  line-height: 1.4;
}

.official-recharge-inline-help > strong {
  color: #273142;
  white-space: nowrap;
}

.official-recharge-inline-help > button,
.official-recharge-inline-help > a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 34px;
  padding: 6px 9px;
  border: 1px solid #dfe5ed;
  border-radius: 7px;
  background: #fff;
  color: #1f2937;
  text-decoration: none;
  cursor: pointer;
}

.official-recharge-inline-help span {
  color: #7a8495;
}

.official-recharge-inline-help b {
  color: #1f2937;
}

.site-message-panel {
  margin: 0 0 16px;
  padding: 14px;
  border: 1px solid #e4e7ec;
  border-radius: 8px;
  background: #fff;
}
.site-message-head,
.site-message-row,
.admin-message-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.site-message-head { margin-bottom: 10px; }
.site-message-head span,
.site-message-main,
.admin-message-row span {
  display: grid;
  gap: 3px;
  min-width: 0;
}
.site-message-head strong { color: #101828; font-size: 15px; }
.site-message-head small,
.site-message-main small,
.admin-message-row small,
.site-message-meta small,
.site-message-detail-meta,
.site-thread-message small {
  color: #667085;
  font-size: 12px;
}
.site-message-head button,
.site-message-tabs button,
.admin-message-row button {
  border: 1px solid #d0d5dd;
  border-radius: 7px;
  background: #fff;
  color: #344054;
  font-size: 12px;
  cursor: pointer;
}
.site-message-tabs {
  display: flex;
  gap: 8px;
  margin-bottom: 10px;
}
.site-message-tabs button { padding: 7px 11px; }
.site-message-tabs button.active {
  border-color: #111827;
  background: #111827;
  color: #fff;
}
.site-message-list,
.site-thread-list,
.admin-message-columns {
  display: grid;
  gap: 8px;
}
.admin-message-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.site-message-row,
.admin-message-row {
  width: 100%;
  padding: 10px 11px;
  border: 1px solid #e4e7ec;
  border-radius: 8px;
  background: #f9fafb;
  text-align: left;
}
.site-message-row.unread {
  border-color: #84caff;
  background: #f0f9ff;
}
.site-message-main strong,
.admin-message-row strong,
.site-thread-message strong {
  overflow: hidden;
  color: #101828;
  font-size: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.site-message-meta {
  display: grid;
  gap: 4px;
  justify-items: end;
  flex: 0 0 auto;
}
.site-message-meta em {
  padding: 2px 7px;
  border-radius: 999px;
  background: #ecfdf3;
  color: #067647;
  font-size: 11px;
  font-style: normal;
  font-weight: 800;
}
.site-message-compose,
.admin-site-message-form {
  display: grid;
  gap: 9px;
  margin-top: 12px;
}
.site-message-compose textarea,
.admin-site-message-form textarea,
.admin-site-message-form input,
.admin-site-message-form select {
  width: 100%;
  padding: 9px 10px;
  border: 1px solid #d0d5dd;
  border-radius: 7px;
  background: #fff;
  color: #101828;
  font: inherit;
}
.admin-message-partners {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  color: #475467;
  font-size: 12px;
}
.site-message-detail p,
.site-message-popup p,
.site-thread-message p {
  margin: 8px 0;
  color: #1d2939;
  font-size: 14px;
  line-height: 1.7;
}
.site-thread-message {
  padding: 10px 11px;
  border-radius: 8px;
  background: #f2f4f7;
}
.site-thread-message.admin { background: #ecfdf3; }

@media (max-width: 780px) {
  .admin-message-columns { grid-template-columns: 1fr; }
}

.official-recharge-inline-help em {
  color: #1769d2;
  font-style: normal;
  font-weight: 700;
}

.official-recharge-inline-help small {
  color: #667085;
  white-space: nowrap;
}

.official-recharge-submit-button {
  flex: 0 0 auto;
  min-width: 126px;
}

.official-recharge-help a,
.text-copy-button {
  color: #1769d2;
  font-weight: 700;
}

.text-copy-button {
  border: 0;
  background: transparent;
  padding: 0;
  cursor: pointer;
}

.trader-access-card {
  display: grid;
  gap: 12px;
  width: min(100%, 640px);
  color: #233149;
}

.trader-access-status {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  padding: 15px;
  border: 1px solid #a9e7d1;
  border-radius: 13px;
  background: linear-gradient(135deg, #effcf7, #f8fffc);
}

.trader-access-status > span {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 12px;
  color: #fff;
  background: #10a675;
  font-size: 21px;
  font-weight: 900;
}

.trader-access-status strong { display: block; color: #087253; font-size: 16px; }
.trader-access-status p { margin: 4px 0 0; color: #668077; font-size: 12px; }
.trader-access-block,
.trader-access-condition,
.trader-access-contacts { padding: 16px; border: 1px solid #e0e7ef; border-radius: 13px; background: #fff; }
.trader-access-block h3 { margin: 0 0 10px; color: #17253a; font-size: 17px; }
.trader-access-features { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
.trader-access-features li { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 9px; align-items: start; }
.trader-access-features li > span { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 8px; color: #2167b7; background: #eaf3ff; font-size: 12px; font-weight: 900; }
.trader-access-features p { margin: 2px 0 0; color: #526177; font-size: 13px; line-height: 1.65; text-align: left; }
.trader-access-condition { border-color: #ecd89a; background: linear-gradient(160deg, #fffdf7, #fffaf0); }
.trader-access-condition > strong,
.trader-access-contacts > strong { display: block; margin-bottom: 8px; color: #27364d; font-size: 15px; }
.trader-access-condition p { margin: 0; color: #6f6656; font-size: 13px; line-height: 1.65; text-align: left; }
.trader-access-condition > button { width: 100%; margin-top: 12px; padding: 10px 14px; border: 0; border-radius: 10px; color: #fff; background: linear-gradient(135deg, #ad7414, #dda32c); box-shadow: 0 6px 14px rgba(173, 116, 20, .18); cursor: pointer; }
.trader-access-condition > button small,
.trader-access-condition > button b { display: block; }
.trader-access-condition > button small { font-size: 10px; opacity: .88; }
.trader-access-condition > button b { margin-top: 1px; font-size: 14px; }
.trader-access-contacts { display: grid; gap: 7px; }
.trader-access-contacts > strong { margin-bottom: 1px; }
.trader-access-contacts > div { display: grid; grid-template-columns: 92px minmax(0, 1fr); align-items: center; min-height: 38px; padding: 0 12px; border-radius: 9px; background: #f5f7fa; }
.trader-access-contacts span { color: #7a8797; font-size: 12px; }
.trader-access-contacts button,
.trader-access-contacts a { width: max-content; max-width: 100%; padding: 0; border: 0; color: #1769d2; background: transparent; font-size: 13px; font-weight: 800; text-decoration: none; cursor: pointer; }

.desktop-fee-discount-page { display: grid; gap: 12px; }
.desktop-fee-discount-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.desktop-fee-discount-head strong { color: #1f314b; font-size: 18px; }
.desktop-fee-discount-head span { color: #7b8a9e; font-size: 12px; }
.desktop-fee-discount-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
.desktop-fee-discount-card { padding: 14px; border: 1px solid #dfe7f0; border-radius: 12px; background: #fff; }
.desktop-fee-discount-name { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 9px; }
.desktop-fee-discount-name strong { color: #20324b; font-size: 14px; }
.desktop-fee-discount-name em { margin-right: auto; color: #04a76f; font-size: 11px; font-style: normal; font-weight: 900; white-space: nowrap; }
.desktop-fee-discount-name span { padding: 3px 7px; border-radius: 999px; color: #8d620f; background: #fff4d8; font-size: 10px; font-weight: 800; }
.desktop-fee-discount-code { display: flex; align-items: center; justify-content: space-between; gap: 9px; margin-top: 10px; padding: 8px 9px; border-radius: 8px; background: #f4f7fb; }
.desktop-fee-discount-code code { overflow: hidden; color: #243d67; font-size: 13px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.desktop-fee-discount-code button { flex: 0 0 auto; padding: 5px 8px; border: 1px solid #b9cff1; border-radius: 6px; color: #235ea8; background: #fff; font-size: 11px; font-weight: 700; cursor: pointer; }
.desktop-fee-discount-actions { display: flex; gap: 8px; margin-top: 9px; }
.desktop-fee-discount-actions a { flex: 1; min-height: 36px; display: grid; place-items: center; padding: 6px; border-radius: 8px; color: #fff; background: #245fb4; font-size: 12px; font-weight: 800; text-align: center; text-decoration: none; }
.desktop-fee-discount-actions a.apk { color: #35516c; background: #edf3f9; }
.desktop-fee-discount-note { margin: 0; color: #8a96a7; font-size: 11px; line-height: 1.55; text-align: left; }

@media (max-width: 720px) {
  .desktop-fee-discount-list { grid-template-columns: 1fr; }
}

.official-recharge-help.compact-help {
  margin-top: 14px;
  padding: 12px 14px;
  border: 1px solid #dfe5ed;
  border-left: 3px solid #c38a1e;
  border-radius: 9px;
  background: #fbfcfe;
}

.official-recharge-help.compact-help strong {
  display: block;
  margin-bottom: 6px;
}

.official-recharge-help.compact-help p {
  margin: 6px 0 0;
}

.recharge-order-actions {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}

@media (max-width: 820px) {
  .official-recharge-submit-row,
  .official-recharge-inline-help {
    align-items: stretch;
    flex-direction: column;
  }

  .official-recharge-inline-help > strong,
  .official-recharge-inline-help small {
    white-space: normal;
  }
}
.notification-zone-nav {
  position: sticky; top: 0; z-index: 4; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px; padding: 8px; margin: 0 0 12px; background: rgba(255,255,255,.96); border: 1px solid #e3e8ef; border-radius: 12px;
}
.notification-zone-nav button { min-width: 0; padding: 9px 5px; font-size: 13px; white-space: nowrap; }
.notification-zone-nav button.active {
  border-color: #193a63;
  color: #fff;
  background: #111827;
}
.notification-zone-nav button em {
  display: inline-grid;
  min-width: 18px;
  height: 18px;
  margin-left: 5px;
  padding: 0 5px;
  place-items: center;
  border-radius: 999px;
  color: #fff;
  background: #d92d20;
  font-size: 10px;
  font-style: normal;
}
.notification-tab-panel { display: none; }
.notification-tab-panel.active { display: block; }
.notification-section-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  margin: 2px 0 12px;
  padding-bottom: 9px;
  border-bottom: 1px solid #e3e8ef;
}
.notification-section-heading strong { color: #101828; font-size: 16px; }
.notification-section-heading small { color: #667085; font-size: 12px; }
.favorite-alert-toolbar {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 7px;
}
.favorite-alert-toolbar button.danger {
  border-color: #f2b8bf;
  color: #ad2835;
  background: #fff5f6;
}
.email-code-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: stretch;
}

.email-code-row button {
  white-space: nowrap;
}

.auth-session-message {
  color: #b42318;
}
.pool-quality-line {
  display: block;
  line-height: 1.65;
}
