:root {
  --bg: #f4f6f8;
  --ink: #14171f;
  --muted: #667085;
  --panel: #ffffff;
  --line: #d8dee8;
  --red: #c62828;
  --green: #087443;
  --blue: #2454a6;
  --amber: #9a6500;
  --status-list-height: 236px;
  --list-x-padding: 12px;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* 默认可复制白名单：AI 回复、市场提示、分析/简介/报告正文 */
body.niepan-app {
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}

body.niepan-app input,
body.niepan-app textarea,
body.niepan-app select,
body.niepan-app [contenteditable="true"] {
  -webkit-user-select: text;
  user-select: text;
  -webkit-touch-callout: default;
}

body.niepan-app .niepan-copyable,
body.niepan-app .niepan-copyable *,
body.niepan-app #summaryText .market-tech-lead,
body.niepan-app #summaryText .market-tech-foot,
body.niepan-app #mobileSummaryLead,
body.niepan-app .super-analysis-msg--assistant,
body.niepan-app .super-analysis-msg--assistant *,
body.niepan-app .super-analysis-msg--error,
body.niepan-app .detail-analysis-card,
body.niepan-app .detail-analysis-card *,
body.niepan-app .detail-intro-card,
body.niepan-app .detail-intro-card *,
body.niepan-app .analysis-list,
body.niepan-app .mobile-discover-news-summary,
body.niepan-app .news-detail-copy,
body.niepan-app .news-detail-copy *,
body.niepan-app .market-tech-detail-body-inner,
body.niepan-app .market-tech-detail-body-inner *,
body.niepan-app .market-tech-detail-note,
body.niepan-app #announcementPopupBody,
body.niepan-app #announcementPopupBody *,
body.niepan-app .announcement-history-body,
body.niepan-app .announcement-history-body *,
body.niepan-app .detail-ai-result-panel:not([hidden]),
body.niepan-app .detail-ai-result-panel:not([hidden]) *,
body.niepan-app .stock-ai-analysis-content,
body.niepan-app .stock-ai-analysis-content *,
body.niepan-app .super-review-overview-card > p,
body.niepan-app .super-review-comment-card > p,
body.niepan-app .super-review-risk-list,
body.niepan-app .super-review-risk-list *,
body.niepan-app .super-review-theme-card .super-review-theme-meta,
body.niepan-app .super-review-mainline-continuity,
body.niepan-app .feedback-reply,
body.niepan-app .feedback-reply * {
  -webkit-user-select: text;
  user-select: text;
  -webkit-touch-callout: default;
}

body.niepan-app .niepan-copyable button,
body.niepan-app .niepan-copyable a,
body.niepan-app .super-analysis-msg--assistant button,
body.niepan-app .super-analysis-msg--assistant a,
body.niepan-app img,
body.niepan-app svg {
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}

.topbar {
  position: sticky;
  top: 0;
  z-index: 12;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 28px 36px 20px;
  background: #fff;
  border-bottom: 1px solid var(--line);
  box-shadow: 0 1px 0 rgba(16, 24, 40, .02);
}

.major-indices-strip {
  flex: 0 1 auto;
  min-width: 0;
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-wrap: nowrap;
  gap: 0;
  padding: 0 8px;
  overflow-x: auto;
  overflow-y: hidden;
}

.major-index-chip {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 2px;
  padding: 4px 10px;
  border-left: 1px solid var(--line);
  font-size: 12px;
  white-space: nowrap;
  min-width: 96px;
}

.major-index-chip:first-child {
  border-left: none;
}

.major-index-chip .major-index-name {
  font-size: 11px;
  font-weight: 600;
  color: var(--muted);
  letter-spacing: 0.01em;
}

.major-index-chip .major-index-price {
  font-size: 15px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  color: var(--ink);
  line-height: 1.1;
}

.major-index-chip.up .major-index-price { color: var(--red); }
.major-index-chip.down .major-index-price { color: var(--green); }

.major-index-chip .major-index-change {
  display: flex;
  align-items: center;
  gap: 4px;
}

.major-index-chip .major-index-amt,
.major-index-chip .major-index-pct {
  font-size: 11px;
  font-style: normal;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.major-index-chip.up .major-index-amt,
.major-index-chip.up .major-index-pct { color: var(--red); }
.major-index-chip.down .major-index-amt,
.major-index-chip.down .major-index-pct { color: var(--green); }

.eyebrow {
  margin: 0 0 4px;
  color: var(--blue);
  font-weight: 700;
  font-size: 13px;
}

h1, h2, h3, p {
  margin: 0;
}

h1 {
  font-size: 28px;
  letter-spacing: 0;
}

.brand-block {
  flex: 0 0 auto;
  min-width: 0;
}

.brand-title-row {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  flex-wrap: wrap;
}

.brand-logo {
  width: 52px;
  height: 52px;
  flex: 0 0 52px;
  object-fit: contain;
  display: block;
  border-radius: 50%;
}

.market-session-inline {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: 5px 14px;
  border: 1px solid #e6ebf2;
  border-radius: 999px;
  background: #f6f9fd;
}

.market-session-inline strong {
  font-size: 14px;
  line-height: 1;
  white-space: nowrap;
}

.market-session-inline small {
  display: none;
}

.session-open {
  border-color: #bfe1d2;
  background: #ecf8f2;
}

.session-open strong {
  color: var(--green);
}

.session-auction,
.session-lunch,
.session-preopen {
  border-color: #f0d7a2;
  background: #fff7e6;
}

.session-auction strong,
.session-lunch strong,
.session-preopen strong {
  color: var(--amber);
}

.session-closed,
.session-postclose {
  border-color: #f0d7a2;
  background: #fff7e6;
}

.session-closed strong,
.session-postclose strong {
  color: var(--amber);
}

button {
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink);
  border-radius: 6px;
  padding: 10px 14px;
  font-weight: 700;
  cursor: pointer;
}

button.primary {
  border-color: var(--blue);
  background: var(--blue);
  color: #fff;
}

.feedback-top-btn-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.feedback-top-btn {
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink);
  border-radius: 6px;
  padding: 8px 12px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
}

.feedback-top-btn:hover {
  border-color: var(--blue);
  color: var(--blue);
}

.feedback-unread-badge {
  position: absolute;
  top: -3px;
  right: -3px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #e53935;
  border: 2px solid #fff;
  box-shadow: 0 0 0 1px rgba(229, 57, 53, 0.35);
  pointer-events: none;
}

.feedback-unread-badge[hidden] {
  display: none !important;
}

.top-notice-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.announcement-popup {
  position: fixed;
  inset: 0;
  z-index: 130;
}

.announcement-popup[hidden] {
  display: none !important;
}

.announcement-popup-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(20, 23, 31, 0.42);
}

.announcement-popup-panel {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: min(520px, calc(100% - 32px));
  max-height: min(78vh, 640px);
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 18px 48px rgba(16, 24, 40, 0.22);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  overflow: hidden;
}

.announcement-popup-head {
  padding: 18px 20px 12px;
  border-bottom: 1px solid var(--line);
}

.announcement-popup-head h2 {
  margin: 4px 0 6px;
  font-size: 18px;
}

.announcement-popup-body {
  padding: 16px 20px;
  overflow: auto;
  line-height: 1.65;
  font-size: 14px;
  color: var(--ink);
  white-space: normal;
  word-break: break-word;
}

.announcement-popup-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 12px 20px 16px;
  border-top: 1px solid var(--line);
}

.modal-panel.announcement-drawer-panel {
  width: min(520px, 92vw);
  grid-template-rows: auto minmax(0, 1fr) auto;
}

.modal-panel.profile-center-drawer-panel {
  width: min(420px, 92vw);
  grid-template-rows: auto minmax(0, 1fr);
}

/* 侧栏/弹层标题栏 × 关闭（与聊天室一致） */
.detail-sheet-icon-close.detail-desktop-stock-close,
.profile-center-close-btn,
.super-analysis-modal-close-btn {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  min-height: 40px;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #4e5969;
  font-size: 30px;
  font-weight: 400;
  line-height: 1;
  cursor: pointer;
  box-sizing: border-box;
}

.detail-sheet-icon-close.detail-desktop-stock-close:hover,
.profile-center-close-btn:hover,
.super-analysis-modal-close-btn:hover {
  background: #f2f3f5;
  color: #1d2129;
}

.profile-center-drawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex-shrink: 0;
  box-sizing: border-box;
  height: 50px;
  min-height: 50px;
  max-height: 50px;
  padding: 0 14px;
  border-bottom: 1px solid #e5e6eb;
}

.profile-center-drawer-head-center {
  flex: 1;
  min-width: 0;
  text-align: center;
}

.profile-center-drawer-head h2 {
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
  color: #1d2129;
}

.profile-center-drawer-body {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 16px;
  overflow: auto;
}

.profile-center-auth-card-inner {
  padding: 14px 16px;
  border: 1px solid #e7edf7;
  border-radius: 12px;
  background: linear-gradient(180deg, #f8fbff 0%, #fff 100%);
}

.profile-center-auth-label {
  margin: 0 0 4px;
  font-size: 12px;
}

.profile-center-auth-name-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}

.profile-center-auth-name {
  display: block;
  font-size: 18px;
  line-height: 1.35;
  color: #1d2129;
}

.profile-center-auth-name-row .chat-role-tag {
  font-size: 11px;
}

.profile-center-auth-status {
  margin: 6px 0 0;
  font-size: 13px;
  color: #86909c;
}

.profile-center-auth-card-inner.is-logged .profile-center-auth-status {
  color: #00b42a;
}

.profile-center-auth-card-inner.is-restricted .profile-center-auth-status {
  color: #f53f3f;
}

.profile-center-auth-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

.profile-center-auth-link {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 4px 12px;
  border: 1px solid #d8e3f5;
  border-radius: 8px;
  background: #fff;
  color: #1d2129;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
}

.profile-center-auth-link:hover {
  border-color: #2962d6;
  color: #2962d6;
}

.profile-center-auth-link.primary {
  border-color: #2962d6;
  background: #2962d6;
  color: #fff;
}

.profile-center-auth-link.primary:hover {
  border-color: #1f4eb8;
  background: #1f4eb8;
  color: #fff;
}

.profile-center-menu {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.profile-center-menu-row {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 48px;
  padding: 10px 12px;
  border: 1px solid #e7edf7;
  border-radius: 12px;
  background: #fff;
  color: #1d2129;
  font-size: 14px;
  font-weight: 500;
  text-align: left;
  cursor: pointer;
  box-sizing: border-box;
}

.profile-center-menu-row:hover {
  border-color: #bedaff;
  background: #f7fbff;
}

.profile-center-menu-icon,
.profile-center-menu-chevron {
  display: block;
  width: 20px;
  height: 20px;
  object-fit: contain;
}


.profile-center-menu-trailing {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.menu-unread-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 999px;
  background: #f53f3f;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  flex: 0 0 auto;
  box-sizing: border-box;
}

.menu-unread-count[hidden] {
  display: none !important;
}

.feedback-sheet-nav-badge {
  flex: 0 0 auto;
  margin-left: 4px;
}

.feedback-sheet-nav-compose {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
}

.feedback-sheet-nav-compose[hidden] {
  display: none !important;
}

.feedback-sheet-nav-badge[hidden] {
  display: none !important;
}

.profile-center-menu-badge {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #e53935;
  flex: 0 0 auto;
}

.profile-center-menu-badge[hidden] {
  display: none !important;
}

.profile-center-open-btn {
  min-width: 5.5em;
}

.modal-panel.profile-reward-modal-panel,
.modal-panel.profile-gzh-modal-panel {
  position: absolute;
  left: 50%;
  top: 50%;
  right: auto;
  bottom: auto;
  transform: translate(-50%, -50%);
  width: min(400px, calc(100% - 32px));
  max-height: min(78vh, 640px);
  border-radius: 12px;
  box-shadow: 0 18px 48px rgba(16, 24, 40, 0.22);
  grid-template-rows: auto minmax(0, 1fr) auto;
  overflow: hidden;
}

.profile-reward-modal-head,
.profile-gzh-modal-head {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-sizing: border-box;
  height: 50px;
  min-height: 50px;
  max-height: 50px;
  padding: 0 16px;
  border-bottom: 1px solid #e5e6eb;
}

.profile-reward-modal-head-center,
.profile-gzh-modal-head-center {
  width: 100%;
  text-align: center;
}

.profile-reward-modal-head h2,
.profile-gzh-modal-head h2 {
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
  color: #1d2129;
}

.profile-reward-modal-body,
.profile-gzh-modal-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 24px 20px 20px;
  text-align: center;
}

.profile-reward-modal-body img,
.profile-gzh-modal-body img {
  display: block;
  width: min(280px, 72vw);
  max-width: 100%;
  height: auto;
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(16, 24, 40, 0.08);
}

.profile-reward-modal-caption,
.profile-gzh-modal-caption {
  margin: 0;
  color: #1d2129;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.5;
}

.profile-reward-modal-footer,
.profile-gzh-modal-footer {
  display: grid;
  grid-template-columns: 1fr;
  flex-shrink: 0;
  padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid #e5e6eb;
  background: #fff;
}

.profile-reward-modal-footer .detail-sheet-dismiss,
.profile-gzh-modal-footer .detail-sheet-dismiss {
  min-height: 32px;
  padding: 5px 16px;
  border: 1px solid #e5e6eb;
  border-radius: 4px;
  background: #f7f8fa;
  color: #1d2129;
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
  cursor: pointer;
  box-sizing: border-box;
}

.profile-reward-modal-footer .detail-sheet-dismiss:hover,
.profile-gzh-modal-footer .detail-sheet-dismiss:hover {
  border-color: #c9cdd4;
  background: #f2f3f5;
}

.announcement-drawer-head {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-sizing: border-box;
  height: 50px;
  min-height: 50px;
  max-height: 50px;
  padding: 0 16px;
  border-bottom: 1px solid #e5e6eb;
}

.announcement-drawer-head-center {
  width: 100%;
  text-align: center;
}

.announcement-drawer-head h2 {
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
  color: #1d2129;
}

.announcement-drawer-footer {
  display: grid;
  grid-template-columns: 1fr;
  flex-shrink: 0;
  padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid #e5e6eb;
  background: #fff;
}

.announcement-drawer-footer .detail-sheet-dismiss {
  min-height: 32px;
  padding: 5px 16px;
  border: 1px solid #e5e6eb;
  border-radius: 4px;
  background: #f7f8fa;
  color: #1d2129;
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
  cursor: pointer;
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}

.announcement-drawer-footer .detail-sheet-dismiss:hover {
  border-color: #c9cdd4;
  background: #f2f3f5;
}

#sectorStockDrawer .modal-backdrop,
#marketStockDrawer .modal-backdrop,
#superAnalysisHistoryDrawer .modal-backdrop {
  opacity: 0;
  transition: opacity 0.28s ease;
}

#sectorStockDrawer.is-open .modal-backdrop,
#marketStockDrawer.is-open .modal-backdrop,
#superAnalysisHistoryDrawer.is-open .modal-backdrop {
  opacity: 1;
}

#sectorStockDrawer .modal-panel.mobile-sector-stock-sheet-panel,
#marketStockDrawer .modal-panel.mobile-sector-stock-sheet-panel,
#superAnalysisHistoryDrawer .modal-panel.mobile-sector-stock-sheet-panel {
  transform: translateY(100%);
  transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
}

#sectorStockDrawer.is-open .modal-panel.mobile-sector-stock-sheet-panel,
#marketStockDrawer.is-open .modal-panel.mobile-sector-stock-sheet-panel,
#superAnalysisHistoryDrawer.is-open .modal-panel.mobile-sector-stock-sheet-panel {
  transform: translateY(0);
}

#superAnalysisHistoryDrawer.is-closing .modal-panel.mobile-sector-stock-sheet-panel,
#marketStockDrawer.is-closing .modal-panel.mobile-sector-stock-sheet-panel {
  transform: translateY(100%);
}

#superAnalysisHistoryDrawer .modal-panel.mobile-sector-stock-sheet-panel {
  height: 75dvh;
  min-height: 75dvh;
  max-height: 75dvh;
}

.modal-panel.mobile-sector-stock-sheet-panel {
  left: 0;
  right: 0;
  top: auto;
  bottom: 0;
  width: 100%;
  max-width: 100%;
  max-height: min(74dvh, 600px);
  height: auto;
  border-radius: 16px 16px 0 0;
  box-shadow: 0 -12px 40px rgba(16, 24, 40, 0.16);
  grid-template-rows: auto minmax(0, 1fr) auto;
}

@media (prefers-reduced-motion: reduce) {
  #sectorStockDrawer .modal-backdrop,
  #marketStockDrawer .modal-backdrop,
  #superAnalysisHistoryDrawer .modal-backdrop,
  #sectorStockDrawer .modal-panel.mobile-sector-stock-sheet-panel,
  #marketStockDrawer .modal-panel.mobile-sector-stock-sheet-panel,
  #superAnalysisHistoryDrawer .modal-panel.mobile-sector-stock-sheet-panel {
    transition: none;
  }

  #sectorStockDrawer .modal-panel.mobile-sector-stock-sheet-panel,
  #marketStockDrawer .modal-panel.mobile-sector-stock-sheet-panel,
  #superAnalysisHistoryDrawer .modal-panel.mobile-sector-stock-sheet-panel {
    transform: none;
    will-change: auto;
  }
}

.mobile-sector-stock-sheet-head {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100%;
  min-height: 48px;
  padding: 12px 20px;
  border-bottom: 1px solid #e5e6eb;
  box-sizing: border-box;
}

.mobile-sector-stock-sheet-head h2 {
  display: block;
  width: 100%;
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
  text-align: center;
  color: #1d2129;
}

.mobile-sector-stock-sheet-body {
  overflow: hidden;
  padding: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

#sectorStockDrawer .mobile-sector-stock-sheet-body .mobile-discover-sector-stock-empty {
  padding: 24px 16px;
}

.mobile-sector-stock-sheet-footer {
  padding: 12px 12px 16px;
  padding-bottom: calc(16px + var(--safe-bottom, 0px));
  border-top: 1px solid #e5e6eb;
  background: #fff;
}

.mobile-sector-stock-sheet-dismiss {
  width: 100%;
  min-height: 32px;
  border: 1px solid #e5e6eb;
  border-radius: 4px;
  background: #f7f8fa;
  color: #1d2129;
  font-size: 14px;
  line-height: 22px;
  cursor: pointer;
}

.mobile-discover-sector-stock-row {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr) minmax(0, 0.9fr) minmax(0, 0.9fr);
  gap: 4px;
  align-items: center;
  width: 100%;
  margin: 0;
  padding: 8px 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: inherit;
  text-align: center;
  cursor: pointer;
  box-sizing: border-box;
}

.mobile-discover-sector-stock-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 0;
  line-height: 1.4;
}

.mobile-discover-sector-stock-name {
  align-items: center;
  padding-right: 4px;
  border-right: 1px solid #f2f3f5;
  box-shadow: 4px 0 8px -4px rgba(29, 33, 41, 0.08);
}

.mobile-discover-sector-stock-col strong {
  color: #1d2129;
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

.mobile-discover-sector-stock-name strong {
  font-size: 14px;
}

.mobile-discover-sector-stock-price strong,
.mobile-discover-sector-stock-change strong {
  font-size: 16px;
}

.mobile-discover-sector-stock-sector strong {
  font-size: 14px;
}

.mobile-discover-sector-stock-col small {
  color: #4e5969;
  font-size: 12px;
}

.mobile-discover-sector-stock-change.up strong {
  color: #f53f3f;
}

.mobile-discover-sector-stock-change.down strong {
  color: #00b42a;
}

.mobile-discover-sector-stock-empty {
  margin: 0;
  padding: 24px 16px;
  text-align: center;
  font-size: 12px;
  color: #86909c;
}

.announcement-drawer-body {
  overflow: auto;
}

.announcement-drawer-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.announcement-history-item {
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 12px 14px;
  background: #fff;
}

.announcement-history-item.is-unread {
  border-color: #cfe0f6;
  background: #f8fbff;
}

.announcement-history-head {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-bottom: 8px;
}

.announcement-history-head strong {
  font-size: 14px;
}

.announcement-history-body {
  font-size: 13px;
  line-height: 1.6;
  color: var(--ink);
  word-break: break-word;
}

.feedback-modal-panel {
  max-width: 520px;
  width: calc(100% - 32px);
}

.feedback-sheet-footer {
  display: none;
}

#feedbackModal:not(.feedback-sheet-modal) .feedback-sheet-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-shrink: 0;
  box-sizing: border-box;
  gap: 12px;
  height: 50px;
  min-height: 50px;
  max-height: 50px;
  padding: 0 16px;
  border-bottom: 1px solid var(--line);
}

#profileCenterDrawer.modal {
  z-index: 122;
}

#announcementDrawer.modal,
#feedbackModal.modal,
#profileRewardModal.modal,
#profileGzhModal.modal {
  z-index: 125;
}

#feedbackModal:not(.feedback-sheet-modal):not(.feedback-from-profile-center) .feedback-sheet-nav-btn,
#feedbackModal:not(.feedback-sheet-modal):not(.feedback-from-profile-center) .feedback-sheet-head-spacer {
  display: none;
}

#feedbackModal:not(.feedback-sheet-modal) .detail-sheet-head-center {
  flex: 1;
  min-width: 0;
  text-align: left;
}

#feedbackModal.feedback-from-profile-center:not(.feedback-sheet-modal) .feedback-modal-panel {
  grid-template-rows: auto minmax(0, 1fr) auto;
}

#feedbackModal.feedback-from-profile-center:not(.feedback-sheet-modal) .feedback-sheet-head {
  display: grid;
  grid-template-columns: 40px 1fr 40px;
  align-items: center;
  gap: 8px;
}

#feedbackModal.feedback-from-profile-center:not(.feedback-sheet-modal) .feedback-sheet-nav-btn {
  grid-column: 1;
  justify-self: start;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: transparent;
  cursor: pointer;
}

#feedbackModal.feedback-from-profile-center:not(.feedback-sheet-modal) .feedback-sheet-nav-btn:hover {
  background: rgba(32, 38, 56, 0.06);
}

#feedbackModal.feedback-from-profile-center:not(.feedback-sheet-modal) .feedback-sheet-nav-back-icon {
  display: block;
  width: 20px;
  height: 20px;
}

#feedbackModal.feedback-from-profile-center:not(.feedback-sheet-modal) .feedback-sheet-nav-back-icon[hidden] {
  display: none !important;
}

#feedbackModal.feedback-from-profile-center:not(.feedback-sheet-modal) .detail-sheet-head-center {
  grid-column: 2;
  text-align: center;
}

#feedbackModal.feedback-from-profile-center:not(.feedback-sheet-modal) .feedback-sheet-close.detail-sheet-icon-close {
  display: none !important;
}

#feedbackModal.feedback-from-profile-center:not(.feedback-sheet-modal) .feedback-sheet-footer {
  display: grid;
  grid-template-columns: 1fr;
  padding: 12px 16px 16px;
  border-top: 1px solid #e5e6eb;
  background: #fff;
}

#feedbackModal.feedback-from-profile-center:not(.feedback-sheet-modal) .feedback-sheet-footer .detail-sheet-dismiss {
  width: 100%;
  min-height: 40px;
  padding: 0 16px;
  border: 1px solid #e5e6eb;
  border-radius: 4px;
  background: #f7f8fa;
  color: #1d2129;
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
  text-align: center;
  cursor: pointer;
  box-sizing: border-box;
}

#feedbackModal.feedback-from-profile-center:not(.feedback-sheet-modal) .feedback-sheet-footer .detail-sheet-dismiss:hover {
  background: #f2f3f5;
}

#feedbackModal:not(.feedback-sheet-modal):not(.feedback-from-profile-center) .feedback-sheet-close.detail-sheet-icon-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

#feedbackModal:not(.feedback-sheet-modal) .feedback-compose-editor {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto auto auto auto;
  row-gap: 0;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
  min-height: 0;
  box-sizing: border-box;
  overflow: hidden;
}

#feedbackModal:not(.feedback-sheet-modal) .feedback-textarea {
  grid-row: 1;
  width: 100%;
  min-height: 160px;
  margin: 0;
  padding: 10px 12px 8px;
  border: 0;
  border-radius: 0;
  background: transparent;
  resize: vertical;
  box-sizing: border-box;
}

#feedbackModal:not(.feedback-sheet-modal) .feedback-textarea:focus,
#feedbackModal:not(.feedback-sheet-modal) .feedback-textarea:focus-visible {
  outline: none;
  box-shadow: none;
}

#feedbackModal:not(.feedback-sheet-modal) .feedback-image-upload {
  display: contents;
  margin-top: 0;
}

#feedbackModal:not(.feedback-sheet-modal) .feedback-image-preview {
  grid-row: 2;
  margin: 0;
  padding: 0 12px 8px;
}

#feedbackModal:not(.feedback-sheet-modal) .feedback-image-preview:empty {
  display: none;
  padding: 0;
}

#feedbackModal:not(.feedback-sheet-modal) .feedback-compose-toolbar {
  grid-row: 3;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 12px 10px;
  border-top: 1px solid var(--line);
}

#feedbackModal:not(.feedback-sheet-modal) .feedback-image-upload-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin: 0;
}

#feedbackModal:not(.feedback-sheet-modal) .feedback-compose-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-shrink: 0;
  margin: 0;
  gap: 0;
}

#feedbackModal:not(.feedback-sheet-modal) #feedbackImagePickBtn,
#feedbackModal:not(.feedback-sheet-modal) .feedback-compose-actions .primary {
  min-height: 32px;
  padding: 5px 16px;
  font-size: 14px;
  line-height: 22px;
  font-weight: 600;
}

#feedbackModal:not(.feedback-sheet-modal) #feedbackImagePickBtn {
  padding: 5px 12px;
}

#feedbackModal:not(.feedback-sheet-modal) .feedback-form-error {
  grid-row: 4;
  margin: 0 12px 10px;
}

#feedbackModal:not(.feedback-sheet-modal) .feedback-compose-editor:focus-within {
  border-color: #94bfff;
}

#feedbackModal:not(.feedback-sheet-modal) .feedback-history-view {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}

.super-analysis-modal-panel {
  max-width: 720px;
  width: calc(100% - 28px);
  overflow: visible;
}

.super-review-modal-panel {
  width: min(980px, 92vw);
}

.super-review-modal-body {
  overflow: auto;
}

.super-review-body {
  min-height: 100%;
}

.super-review-placeholder {
  margin: 0;
  padding: 28px 20px;
  border: 1px dashed #d8e0ef;
  border-radius: 12px;
  background: linear-gradient(180deg, #f8fbff 0%, #fff 100%);
  text-align: center;
}

.super-review-placeholder-title {
  margin: 0 0 8px;
  font-size: 16px;
  font-weight: 800;
  color: var(--ink);
}

#monitorBtn.is-super-review {
  box-shadow: 0 6px 16px rgba(37, 99, 235, .18);
}

/* 抽屉内：上方对话区滚动撑满，底部输入区固定 */
.modal-body.super-analysis-modal-body {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  overflow: hidden;
  padding: 16px;
  gap: 0;
}

.super-analysis-modal-scroll {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding-right: 2px;
}

.super-analysis-modal-tip {
  margin: 0;
  flex-shrink: 0;
  font-size: 13px;
  line-height: 1.55;
}

.super-analysis-modal-tip code {
  font-size: 12px;
  background: #f0f3f8;
  padding: 1px 5px;
  border-radius: 4px;
}

.super-analysis-auth-hint {
  margin: 0;
  flex-shrink: 0;
  font-size: 13px;
  font-weight: 600;
}

.super-analysis-modal-head {
  align-items: flex-start;
  gap: 12px;
}

.super-analysis-modal-head-title {
  flex: 1 1 auto;
  min-width: 0;
}

.super-analysis-modal-head-title small {
  display: block;
  margin-top: 4px;
  font-size: 12px;
  font-weight: 600;
  color: var(--muted);
}

.super-analysis-head-toolbar {
  flex: 0 0 auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
}

.super-analysis-history-dropdown {
  position: relative;
  display: inline-block;
}

/* 含下拉内的「历史记录」，与「新对话」同高同字号 */
.super-analysis-head-toolbar button.secondary:not(.detail-sheet-icon-close) {
  padding: 6px 12px;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
  min-height: 0;
  box-sizing: border-box;
}

.super-analysis-history-panel {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  z-index: 80;
  box-sizing: border-box;
  min-width: min(300px, calc(100vw - 28px));
  max-width: min(400px, calc(100vw - 20px));
  max-height: min(52vh, 340px);
  padding: 8px 10px 10px;
  margin: 0;
  border: 1px solid #e0e8f2;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 12px 36px rgba(18, 41, 84, 0.16);
  display: flex;
  flex-direction: column;
  gap: 6px;
  overflow: hidden;
}

/* 与项目内其它面板一致：避免作者样式 display:flex 压过 hidden，导致历史悬浮窗默认可见 */
.super-analysis-history-panel[hidden] {
  display: none !important;
}

.super-analysis-history-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  font-size: 12px;
  font-weight: 700;
  color: var(--ink);
  flex-shrink: 0;
}

.super-analysis-history-head-spacer {
  display: none;
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
}

.super-analysis-history-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  font-size: 18px;
  line-height: 1;
  font-weight: 600;
  color: #5c6f8f;
  background: transparent;
  border: 0;
  border-radius: 8px;
  cursor: pointer;
}

.super-analysis-history-close-icon {
  display: block;
  width: 16px;
  height: 16px;
}

.super-analysis-history-close:hover {
  background: rgba(36, 84, 166, 0.1);
  color: var(--blue);
}

.super-analysis-history-footer {
  display: none;
  flex-shrink: 0;
  margin: 0;
  padding: 12px 12px 16px;
  border-top: 1px solid #e5e6eb;
  background: #fff;
}

.super-analysis-history-dismiss {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 32px;
  padding: 5px 16px;
  border: 1px solid #e5e6eb;
  border-radius: 4px;
  background: #f7f8fa;
  color: #1d2129;
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
  cursor: pointer;
}

.super-analysis-history-dismiss:hover {
  border-color: #c9cdd4;
  background: #f2f3f5;
}

body.super-analysis-history-sheet-open {
  overflow: hidden;
}

#superAnalysisHistoryDrawer .super-analysis-history-sheet-body {
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
  padding: 0;
}

#superAnalysisHistoryDrawer .super-analysis-history-list {
  flex: 1 1 auto;
  min-height: 0;
  gap: 0;
  padding: 0;
  background: #fff;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}

#superAnalysisHistoryDrawer .super-analysis-history-list li.super-analysis-history-row {
  gap: 0;
  padding: 12px 4px 12px 12px;
  align-items: center;
  border-bottom: 1px solid #f2f3f5;
  -webkit-tap-highlight-color: transparent;
}

#superAnalysisHistoryDrawer .super-analysis-history-list li.super-analysis-history-row:last-child {
  border-bottom: 0;
}

#superAnalysisHistoryDrawer .super-analysis-history-item {
  flex: 1 1 auto;
  min-width: 0;
  gap: 4px;
  padding: 0;
  border: 0 !important;
  border-radius: 0;
  background: transparent !important;
  box-shadow: none !important;
  font-weight: inherit;
  -webkit-tap-highlight-color: transparent;
}

#superAnalysisHistoryDrawer .super-analysis-history-item:hover,
#superAnalysisHistoryDrawer .super-analysis-history-item:active,
#superAnalysisHistoryDrawer .super-analysis-history-item:focus,
#superAnalysisHistoryDrawer .super-analysis-history-item:focus-visible,
#superAnalysisHistoryDrawer .super-analysis-history-item.is-active,
#superAnalysisHistoryDrawer .super-analysis-history-item.is-active:hover,
#superAnalysisHistoryDrawer .super-analysis-history-item.is-active:active,
#superAnalysisHistoryDrawer .super-analysis-history-item.is-active:focus,
#superAnalysisHistoryDrawer .super-analysis-history-item.is-active:focus-visible {
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  outline: none;
}

#superAnalysisHistoryDrawer .super-analysis-history-item.is-active .super-analysis-history-item-title {
  color: #165dff;
}

#superAnalysisHistoryDrawer .super-analysis-history-item-title {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  color: #1d2129;
  -webkit-line-clamp: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

#superAnalysisHistoryDrawer .super-analysis-history-item-meta {
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
  color: #86909c;
}

#superAnalysisHistoryDrawer .super-analysis-history-delete {
  flex: 0 0 40px;
  width: 40px;
  min-width: 40px;
  height: 44px;
  min-height: 44px;
  margin-left: auto;
  align-self: center;
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  padding: 0 2px 0 0;
  color: #86909c;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0;
  box-sizing: border-box;
  box-shadow: none !important;
  -webkit-tap-highlight-color: transparent;
}

#superAnalysisHistoryDrawer .super-analysis-history-delete:hover,
#superAnalysisHistoryDrawer .super-analysis-history-delete:active,
#superAnalysisHistoryDrawer .super-analysis-history-delete:focus,
#superAnalysisHistoryDrawer .super-analysis-history-delete:focus-visible {
  color: #86909c;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  outline: none;
}

#superAnalysisHistoryDrawer .super-analysis-history-delete .super-analysis-history-delete-icon,
#superAnalysisHistoryDrawer .super-analysis-history-delete svg {
  display: block;
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  pointer-events: none;
}

.super-analysis-history-list {
  list-style: none;
  margin: 0;
  padding: 0;
  overflow-y: auto;
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.super-analysis-history-list li.super-analysis-history-row {
  margin: 0;
  padding: 0;
  display: flex;
  align-items: stretch;
  gap: 6px;
  width: 100%;
  min-width: 0;
}

.super-analysis-history-item {
  flex: 1 1 auto;
  min-width: 0;
  width: auto;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  text-align: left;
  padding: 8px 10px;
  border: 1px solid #e6edf7;
  border-radius: 8px;
  background: #fff;
  cursor: pointer;
  font: inherit;
  color: inherit;
}

.super-analysis-history-item:hover {
  border-color: #c9d8ef;
  background: #f6f9fd;
}

.super-analysis-history-item.is-active {
  border-color: rgba(36, 84, 166, 0.45);
  box-shadow: inset 3px 0 0 var(--blue);
}

.super-analysis-history-delete {
  flex: 0 0 36px;
  width: 36px;
  min-height: 44px;
  align-self: stretch;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  line-height: 0;
  color: #8a96a8;
  background: #f7f9fc;
  border: 1px solid #e6edf7;
  border-radius: 8px;
  cursor: pointer;
}

.super-analysis-history-delete svg,
.super-analysis-history-delete .super-analysis-history-delete-icon {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  display: block;
}

.super-analysis-history-delete:hover {
  color: #c53d13;
  border-color: #f0c4c4;
  background: #fff5f5;
}

.super-analysis-history-item-title {
  font-size: 13px;
  font-weight: 600;
  line-height: 1.35;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  width: 100%;
}

.super-analysis-history-item-meta {
  font-size: 12px;
  color: var(--muted);
  font-weight: 400;
}

.super-analysis-messages {
  flex: 1 1 auto;
  min-height: 72px;
  overflow-y: auto;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f7f9fc;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.super-analysis-form-error {
  flex-shrink: 0;
  margin: 0;
}

.super-analysis-compose {
  flex-shrink: 0;
  position: relative;
  padding-top: 8px;
  margin-top: 0;
  border-top: 0;
}

.super-analysis-sr-hint {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.super-analysis-input-wrap {
  position: relative;
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  gap: 0;
  padding: 0;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.super-analysis-marquee {
  overflow: hidden;
  height: 20px;
  line-height: 20px;
  margin: 0 0 6px;
  padding: 0;
  flex-shrink: 0;
  pointer-events: none;
}

.super-analysis-input-wrap--hide-marquee .super-analysis-marquee {
  display: none;
}

.super-analysis-marquee-track {
  display: inline-flex;
  flex-direction: row;
  flex-wrap: nowrap;
  white-space: nowrap;
  width: max-content;
  animation: super-analysis-marquee-scroll 48s linear infinite;
  will-change: transform;
}

.super-analysis-marquee-chunk {
  flex: 0 0 auto;
  padding-right: 2.5rem;
  color: #7a8aa8;
  font-size: 12px;
  font-weight: 500;
}

@keyframes super-analysis-marquee-scroll {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .super-analysis-marquee-track {
    animation: none;
  }

  .super-analysis-marquee {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    pointer-events: auto;
    scrollbar-width: none;
  }

  .super-analysis-marquee::-webkit-scrollbar {
    height: 0;
  }
}

.super-analysis-field {
  position: relative;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fbfdff;
  box-shadow: inset 0 1px 2px rgba(16, 24, 40, 0.04);
}

.super-analysis-field:focus-within {
  border-color: var(--blue);
  box-shadow: 0 0 0 2px rgba(36, 84, 166, 0.12), inset 0 1px 2px rgba(16, 24, 40, 0.04);
}

.super-analysis-input {
  display: block;
  width: 100%;
  min-width: 0;
  min-height: 36px;
  max-height: 200px;
  padding: 8px 104px 44px 10px;
  margin: 0;
  border: 0;
  border-radius: 10px;
  font-family: inherit;
  font-weight: inherit;
  font-size: 14px;
  line-height: 1.45;
  resize: vertical;
  box-sizing: border-box;
  background: transparent;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

.super-analysis-send-cluster {
  position: absolute;
  right: 8px;
  bottom: 8px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: flex-end;
  gap: 4px;
  z-index: 1;
  pointer-events: none;
}

.super-analysis-send-cluster .super-analysis-send-inline {
  pointer-events: auto;
}

.super-analysis-send-kbd {
  font-size: 11px;
  font-weight: 600;
  color: #7a8aa8;
  line-height: 1.2;
  letter-spacing: 0.02em;
  user-select: none;
  white-space: nowrap;
}

.super-analysis-send-inline {
  position: static;
  flex: 0 0 auto;
  padding: 7px 14px;
  font-size: 13px;
  font-weight: 700;
  border-radius: 8px;
  min-height: 34px;
}

.super-analysis-send-inline:disabled {
  opacity: 0.55;
  cursor: not-allowed;
  pointer-events: none;
}

.super-analysis-msg {
  max-width: 100%;
  padding: 8px 12px;
  border-radius: 6px;
  font-size: 14px;
  line-height: 1.55;
  white-space: pre-wrap;
  word-break: break-word;
}

.super-analysis-msg--user {
  align-self: flex-end;
  background: rgba(36, 84, 166, 0.09);
  border: 1px solid rgba(36, 84, 166, 0.22);
}

.super-analysis-msg--assistant {
  align-self: flex-start;
  background: #fff;
  border: 1px solid var(--line);
}

.super-analysis-entity-link {
  display: inline;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  color: #2563eb;
  font: inherit;
  line-height: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: pointer;
}

.super-analysis-entity-link:hover {
  color: #1d4ed8;
}

.super-analysis-entity-link:focus-visible {
  outline: 2px solid rgba(37, 99, 235, .45);
  outline-offset: 2px;
  border-radius: 2px;
}

.super-analysis-msg--typing {
  border-style: dashed;
  border-color: rgba(36, 84, 166, 0.22);
}

.super-analysis-msg--typing::after {
  content: "";
  display: inline-block;
  width: 2px;
  height: 1.05em;
  margin-left: 3px;
  background: #2454a6;
  opacity: 0.85;
  vertical-align: -0.14em;
  animation: super-analysis-caret-blink 0.95s step-end infinite;
}

@keyframes super-analysis-caret-blink {
  50% {
    opacity: 0;
  }
}

.super-analysis-msg--thinking {
  align-self: flex-start;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 1px 6px;
  background: #fff;
  border: 1px dashed rgba(36, 84, 166, 0.28);
  color: var(--muted);
  font-size: 13px;
  font-weight: 600;
}

.super-analysis-thinking-label {
  color: #2454a6;
}

.super-analysis-thinking-note {
  flex-basis: 100%;
  color: #7a8aa8;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.45;
}

.super-analysis-thinking-dots {
  display: inline-flex;
  letter-spacing: 0;
}

.super-analysis-thinking-dots span {
  display: inline-block;
  width: 0.35em;
  text-align: center;
  animation: super-analysis-thinking-dot 0.58s ease-in-out infinite;
  opacity: 0.25;
}

.super-analysis-thinking-dots span:nth-child(2) {
  animation-delay: 0.08s;
}

.super-analysis-thinking-dots span:nth-child(3) {
  animation-delay: 0.16s;
}

@keyframes super-analysis-thinking-dot {
  0%,
  100% {
    opacity: 0.2;
    transform: translateY(0);
  }
  35% {
    opacity: 1;
    transform: translateY(-2px);
  }
}

.super-analysis-msg--error {
  align-self: stretch;
  background: #fff5f5;
  border-color: #f5c6c6;
  color: var(--red);
}

.feedback-modal-body {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.feedback-label {
  font-size: 13px;
  font-weight: 600;
  color: var(--ink);
}

.feedback-textarea {
  width: 100%;
  min-height: 140px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 6px;
  font: inherit;
  line-height: 1.5;
  resize: vertical;
  box-sizing: border-box;
}

.feedback-image-upload {
  margin-top: 10px;
}

.feedback-image-upload-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}

.feedback-image-hint {
  font-size: 12px;
}

.feedback-image-preview {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 0;
  margin-bottom: 12px;
}

.feedback-image-preview:empty {
  display: none;
}

.feedback-image-thumb {
  position: relative;
  width: 72px;
  height: 72px;
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
  background: #f8fafc;
}

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

.feedback-image-remove {
  position: absolute;
  top: 2px;
  right: 2px;
  width: 20px;
  height: 20px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  line-height: 0;
}

.feedback-image-remove-icon {
  display: block;
  width: 20px;
  height: 20px;
  pointer-events: none;
}

.feedback-image-gallery {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}

.feedback-image-gallery a,
.feedback-image-gallery .feedback-image-gallery-thumb,
.feedback-image-thumb .feedback-image-view-btn {
  display: block;
  width: 72px;
  height: 72px;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
  background: #f8fafc;
  cursor: zoom-in;
}

.feedback-image-thumb .feedback-image-view-btn {
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: 0;
}

.feedback-image-gallery-thumb,
.feedback-image-view-btn {
  appearance: none;
  -webkit-appearance: none;
}

.feedback-image-gallery-thumb:focus-visible,
.feedback-image-view-btn:focus-visible {
  outline: 2px solid #3b82f6;
  outline-offset: 2px;
}

.feedback-image-gallery img,
.feedback-image-view-btn img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
}

.feedback-image-lightbox,
.admin-feedback-image-lightbox {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  box-sizing: border-box;
}

.feedback-image-lightbox {
  z-index: 160;
}

.admin-feedback-image-lightbox {
  z-index: 150;
}

.feedback-image-lightbox[hidden],
.admin-feedback-image-lightbox[hidden] {
  display: none !important;
}

.feedback-image-lightbox-backdrop,
.admin-feedback-image-lightbox-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.72);
}

.feedback-image-lightbox-panel,
.admin-feedback-image-lightbox-panel {
  position: relative;
  z-index: 1;
  width: min(920px, 96vw);
  max-height: min(88vh, 900px);
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 24px 60px rgba(15, 23, 42, 0.28);
  display: grid;
  overflow: hidden;
  margin: auto;
}

.feedback-image-lightbox-panel {
  grid-template-rows: auto minmax(0, 1fr) auto;
}

.admin-feedback-image-lightbox-panel {
  grid-template-rows: auto minmax(0, 1fr);
}

.feedback-image-lightbox-footer {
  display: none;
}

.feedback-image-lightbox-head,
.admin-feedback-image-lightbox-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--line);
}

.feedback-image-lightbox-head h3,
.admin-feedback-image-lightbox-head h3 {
  margin: 0;
  font-size: 14px;
  font-weight: 600;
  color: #0f172a;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.feedback-image-lightbox-head button,
.admin-feedback-image-lightbox-head button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: #f1f5f9;
  color: #334155;
  font-size: 20px;
  font-weight: 400;
  line-height: 1;
  cursor: pointer;
}

.feedback-image-lightbox-head button:hover,
.admin-feedback-image-lightbox-head button:hover {
  background: #e2e8f0;
}

.feedback-image-lightbox-body,
.admin-feedback-image-lightbox-body {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 240px;
  padding: 16px 52px;
  background: #0f172a;
  overflow: hidden;
}

.feedback-image-lightbox-nav,
.admin-feedback-image-lightbox-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.14);
  color: #fff;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
}

.feedback-image-lightbox-nav.is-prev,
.admin-feedback-image-lightbox-nav.is-prev {
  left: 12px;
}

.feedback-image-lightbox-nav.is-next,
.admin-feedback-image-lightbox-nav.is-next {
  right: 12px;
}

.feedback-image-lightbox-nav:hover:not(:disabled),
.admin-feedback-image-lightbox-nav:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.24);
}

.feedback-image-lightbox-nav:disabled,
.admin-feedback-image-lightbox-nav:disabled {
  opacity: 0.35;
  cursor: default;
}

.feedback-image-lightbox-nav[hidden],
.admin-feedback-image-lightbox-nav[hidden] {
  display: none;
}

.feedback-image-lightbox-viewport {
  position: relative;
  display: grid;
  place-items: center;
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  min-height: 240px;
  overflow: hidden;
  box-sizing: border-box;
}

.feedback-image-lightbox-viewport img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  min-width: 0;
  min-height: 0;
  object-fit: contain;
  object-position: center center;
  margin: 0 auto;
}

.feedback-image-lightbox-body > img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: calc(min(88vh, 900px) - 120px);
  min-width: 0;
  min-height: 0;
  object-fit: contain;
  object-position: center center;
  margin: 0 auto;
}

.admin-feedback-image-lightbox-body img {
  width: auto;
  height: auto;
  max-height: calc(min(88vh, 900px) - 120px);
  margin: 0 auto;
}

.feedback-form-error {
  margin: 0;
  padding: 8px 10px;
  border-radius: 6px;
  background: #fff2f0;
  border: 1px solid #ffccc7;
  color: #a8071a;
  font-size: 13px;
}

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

.feedback-history-section {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}

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

.feedback-history-head button {
  min-height: 30px;
  padding: 0 10px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
  color: var(--blue);
  font-weight: 700;
}

.feedback-history-list {
  display: grid;
  gap: 10px;
}

.feedback-history-item {
  border: 1px solid #e3ebf6;
  border-radius: 8px;
  background: #fbfdff;
  padding: 10px;
}

.feedback-history-meta {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  color: var(--muted);
  font-size: 12px;
}

.feedback-history-meta strong {
  color: #b26a00;
}

.feedback-history-item.is-replied .feedback-history-meta strong {
  color: #1f8f4f;
}

.feedback-history-item.is-unread {
  border-color: rgba(46, 160, 67, 0.45);
  box-shadow: inset 3px 0 0 #1f8f4f;
}

.feedback-unread-tag {
  display: inline-block;
  margin-left: 4px;
  padding: 0 6px;
  border-radius: 999px;
  font-style: normal;
  font-size: 11px;
  font-weight: 700;
  color: #fff;
  background: #1f8f4f;
  vertical-align: middle;
}

.feedback-history-item pre {
  margin: 8px 0 0;
  white-space: pre-wrap;
  word-break: break-word;
  font-family: inherit;
  line-height: 1.5;
}

.feedback-reply + .feedback-reply {
  margin-top: 8px;
}

.feedback-reply {
  margin-top: 10px;
  padding: 10px;
  border-radius: 8px;
  background: #eef7f1;
  border: 1px solid #cde8d5;
}

.feedback-reply span,
.feedback-pending {
  color: var(--muted);
  font-size: 12px;
}

.feedback-reply p,
.feedback-pending {
  margin: 6px 0 0;
  line-height: 1.6;
}

.feedback-user-followup {
  margin-top: 10px;
  padding: 10px;
  border-radius: 8px;
  background: #f3f6fb;
  border: 1px solid #d8e3f5;
}

.feedback-user-followup span {
  display: block;
  color: var(--muted);
  font-size: 12px;
}

.feedback-user-followup p {
  margin: 6px 0 0;
  line-height: 1.6;
}

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

.feedback-followup-form {
  margin-top: 12px;
  display: grid;
  gap: 8px;
}

.feedback-followup-form textarea {
  width: 100%;
  min-height: 72px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 6px;
  font: inherit;
  line-height: 1.5;
  resize: vertical;
  box-sizing: border-box;
}

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

.feedback-toast {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 10100;
  min-width: 160px;
  max-width: 320px;
  padding: 10px 14px;
  border-radius: 8px;
  background: #1f8f4f;
  color: #fff;
  font-size: 13px;
  box-shadow: 0 8px 24px rgba(24, 39, 75, .25);
  opacity: 0;
  transform: translateY(-8px);
  transition: opacity .2s ease, transform .2s ease;
}

.feedback-toast.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.feedback-toast.strategy-sell-toast {
  top: auto;
  left: 50%;
  right: auto;
  bottom: 72px;
  min-width: 0;
  max-width: calc(100vw - 48px);
  width: max-content;
  padding: 6px 12px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.4;
  text-align: center;
  white-space: nowrap;
  background: rgba(29, 33, 41, 0.92);
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.16);
  transform: translateX(-50%) translateY(6px);
}

.feedback-toast.strategy-sell-toast.is-visible {
  transform: translateX(-50%) translateY(0);
}

/* 全局认证等轻提示（登录成功 / 已退出等），固定顶部居中，约 3s 消失 */
.niepan-global-toast-host {
  position: fixed;
  top: 20px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10050;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  max-width: min(420px, calc(100vw - 32px));
  pointer-events: none;
}

.niepan-global-toast {
  pointer-events: auto;
  padding: 10px 16px;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
  box-shadow: 0 10px 32px rgba(18, 41, 84, 0.2);
  opacity: 0;
  transform: translateY(-10px);
  transition: opacity 0.22s ease, transform 0.22s ease;
}

.niepan-global-toast.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.niepan-global-toast--success {
  background: #f0fdf4;
  color: #15803d;
  border: 1px solid rgba(22, 163, 74, .25);
  box-shadow: 0 8px 24px rgba(22, 163, 74, .12);
}

.niepan-global-toast--info {
  background: #2b4d8f;
  color: #fff;
}

.niepan-global-toast--error {
  background: #b42318;
  color: #fff;
}

.feedback-modal-actions button.secondary {
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink);
  border-radius: 6px;
  padding: 10px 14px;
  font-weight: 600;
  cursor: pointer;
}

.admin-feedback-cell {
  max-width: 220px;
  vertical-align: top;
  font-size: 12px;
}

.admin-feedback-view-btn {
  border: 1px solid var(--line);
  background: #fff;
  color: #3559a8;
  border-radius: 6px;
  padding: 6px 10px;
  font-size: 12px;
  cursor: pointer;
}

.admin-feedback-view-btn:hover {
  border-color: #3559a8;
  background: #f5f8ff;
}

.admin-feedback-count-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  min-height: 28px;
  padding: 4px 10px;
  border: 1px solid rgba(53, 89, 168, 0.35);
  border-radius: 6px;
  background: #fff;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.2;
  color: #3559a8;
  cursor: pointer;
}

.admin-feedback-count-btn:hover:not(:disabled) {
  border-color: #3559a8;
  background: #f5f8ff;
}

.admin-feedback-count-btn--pending {
  color: #c2410c;
  border-color: rgba(194, 65, 12, 0.35);
  background: rgba(251, 146, 60, 0.08);
}

.admin-feedback-count-btn--pending:hover:not(:disabled) {
  border-color: #c2410c;
  background: rgba(251, 146, 60, 0.14);
}

.admin-feedback-count-btn--empty,
.admin-feedback-count-btn:disabled {
  color: #94a3b8;
  border-color: var(--line);
  background: #f8fafc;
  cursor: not-allowed;
  font-weight: 600;
}

.admin-feedback-drawer-list {
  display: grid;
  gap: 12px;
}

.admin-feedback-drawer-item {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfcfe;
  padding: 10px;
}

.admin-user-feedback-details summary {
  cursor: pointer;
  list-style: none;
  font-size: 12px;
}

.admin-user-feedback-details summary::-webkit-details-marker {
  display: none;
}

.admin-feedback-list {
  margin: 8px 0 0;
  padding: 0 0 0 1em;
  list-style: disc;
}

.admin-feedback-item {
  margin-bottom: 10px;
}

.admin-feedback-time {
  display: block;
  font-size: 11px;
  color: var(--muted, #666);
  margin-bottom: 4px;
}

.admin-feedback-images-block {
  margin: 8px 0 10px;
}

.admin-feedback-images-title {
  display: block;
  font-size: 12px;
  color: #334155;
  margin-bottom: 6px;
}

.admin-feedback-drawer-item .admin-feedback-image-gallery {
  margin: 0;
}

.admin-feedback-drawer-item .admin-feedback-image-gallery a,
.admin-feedback-drawer-item .admin-feedback-image-thumb {
  width: 88px;
  height: 88px;
}

.admin-feedback-image-lightbox-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.admin-feedback-image-lightbox-download {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 32px;
  padding: 0 12px;
  border-radius: 8px;
  background: #eff6ff;
  color: #2563eb;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}

.admin-feedback-image-lightbox-download:hover {
  background: #dbeafe;
  color: #1d4ed8;
}

.admin-feedback-image-lightbox-download[hidden] {
  display: none;
}

.admin-feedback-image-thumb {
  display: block;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
  background: #f8fafc;
  cursor: zoom-in;
}

.admin-feedback-image-thumb:focus-visible {
  outline: 2px solid #3b82f6;
  outline-offset: 2px;
}

.admin-feedback-body {
  margin: 0;
  white-space: pre-wrap;
  word-break: break-word;
  font-family: inherit;
  font-size: 12px;
  line-height: 1.45;
  max-height: 160px;
  overflow: auto;
  background: #f8fafc;
  border: 1px solid var(--line);
  border-radius: 4px;
  padding: 8px;
}

.admin-feedback-replies {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}

.admin-feedback-replies .admin-feedback-reply {
  margin-top: 0;
}

.admin-feedback-user-followup {
  margin-top: 0;
  padding: 8px;
  border: 1px solid #d8e3f5;
  border-radius: 6px;
  background: #f3f6fb;
}

.admin-feedback-user-followup strong {
  color: #245bdb;
}

.admin-feedback-reply {
  margin-top: 10px;
  padding: 8px;
  border: 1px solid #eadfca;
  border-radius: 6px;
  background: #fffaf2;
}

.admin-feedback-reply.is-replied {
  border-color: #cde8d5;
  background: #f2fbf5;
}

.admin-feedback-reply strong,
.admin-feedback-reply span {
  display: block;
  font-size: 12px;
  margin-bottom: 4px;
}

.admin-feedback-reply-form {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}

.admin-feedback-reply-form textarea {
  width: 100%;
  box-sizing: border-box;
  padding: 10px 12px;
  min-height: 120px;
  line-height: 1.5;
  border: 1px solid var(--line);
  border-radius: 6px;
  font: inherit;
  resize: vertical;
}

.admin-feedback-reply-form div {
  display: flex;
  align-items: center;
  gap: 10px;
}

.actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}

button:disabled {
  opacity: .55;
  cursor: wait;
}

button.clickable:not(.mobile-pick-card),
button.news-item,
button.signal-item,
button.signal-ticker-row,
button.mini-row {
  width: 100%;
  border: 0;
  border-radius: 0;
  padding: 0;
  text-align: left;
  font: inherit;
}

.clickable-row {
  cursor: pointer;
}

.clickable-row:hover td,
button.clickable:hover,
button.mini-row:hover {
  background: #f6f9fd;
}

main {
  padding: 16px;
}

.status-band {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr) minmax(0, 1.05fr);
  gap: 1px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--line);
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

.status-band > div {
  background: #fff;
  padding: 16px;
  min-height: 94px;
  min-width: 0;
  box-sizing: border-box;
}

.market-overview-card {
  display: grid;
  grid-template-columns: 1fr;
  align-items: start;
  gap: 12px;
  padding: 18px !important;
  background: #fff7e6 !important;
  color: #402c00;
  box-shadow: inset 4px 0 0 var(--amber);
}

.market-overview-head {
  min-width: 0;
  padding-bottom: 12px;
  border-bottom: 1px solid #f0d7a2;
}

.market-overview-head .label,
.market-summary-content .label {
  color: #755300;
}

.market-summary-content {
  min-width: 0;
}

.market-summary-content p {
  display: block;
  color: #402c00;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.55;
}

.market-tech-lead,
.market-tech-foot {
  display: block;
}

.market-tech-lead {
  margin-bottom: 10px;
  color: #5c3d00;
}

.market-tech-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 10px 0;
}

.market-tech-chip {
  min-width: 0;
  padding: 8px 10px;
  border: 1px solid #edd28f;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.72);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.86);
  width: 100%;
  text-align: left;
  cursor: pointer;
  transition: border-color .16s ease, background .16s ease, transform .16s ease;
}

.market-tech-chip:hover {
  border-color: #d9a63a;
  background: rgba(255, 255, 255, 0.92);
}

.market-tech-chip:focus-visible {
  outline: 2px solid #d9a63a;
  outline-offset: 2px;
}

.market-tech-chip:active {
  transform: translateY(1px);
}

.market-tech-chip em,
.market-tech-chip strong,
.market-tech-chip small {
  display: block;
  min-width: 0;
}

.market-tech-chip em {
  color: #8a6200;
  font-size: 12px;
  font-style: normal;
  font-weight: 700;
}

.market-tech-chip strong {
  margin-top: 3px;
  color: #c42828;
  font-size: 17px;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.market-tech-chip small {
  margin-top: 2px;
  color: #7d6a3f;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.25;
}

.market-tech-foot {
  color: #5c3d00;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.55;
}

@media (max-width: 760px) {
  .market-summary-content #summaryText {
    width: 100%;
    min-width: 0;
  }

  .market-tech-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    gap: 8px;
  }

  .market-tech-chip {
    padding: 8px;
    min-height: 44px;
  }

  .market-tech-chip strong {
    font-size: 16px;
  }

  .market-tech-chip small {
    font-size: 10px;
    line-height: 1.35;
  }

  .market-tech-foot {
    font-size: 12px;
    line-height: 1.5;
  }
}

.modal-body.market-tech-detail-body {
  padding: 14px 16px 18px;
}

.market-tech-detail-body-inner {
  display: grid;
  gap: 14px;
}

.market-tech-detail-note,
.market-tech-detail-footnote {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
}

.market-tech-detail-section {
  display: grid;
  gap: 10px;
}

.market-tech-detail-section.market-tech-detail-callout {
  padding: 12px 14px;
  border: 1px solid #edd28f;
  border-radius: 10px;
  background: #fffaf0;
}

.market-tech-detail-head h3 {
  margin: 0;
  font-size: 15px;
  font-weight: 800;
  color: #402c00;
}

.market-tech-detail-head p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
}

.market-tech-detail-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}

.market-tech-detail-row {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  text-align: left;
  cursor: pointer;
  transition: border-color .16s ease, background .16s ease;
}

.market-tech-detail-row:hover {
  border-color: #d9a63a;
  background: #fffaf0;
}

.market-tech-detail-row:focus-visible {
  outline: 2px solid #d9a63a;
  outline-offset: 2px;
}

.market-tech-detail-rank {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  text-align: center;
}

.market-tech-detail-main {
  min-width: 0;
}

.market-tech-detail-main strong {
  display: block;
  font-size: 14px;
  font-weight: 800;
  color: var(--text);
  overflow-wrap: anywhere;
}

.market-tech-detail-main small {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 2px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.market-tech-detail-meta {
  color: var(--muted);
}

.market-tech-detail-metric {
  font-size: 14px;
  font-weight: 800;
  white-space: nowrap;
}

@media (max-width: 760px) {
  .modal-body.market-tech-detail-body {
    padding: 12px;
  }

  .market-tech-detail-row {
    grid-template-columns: 24px minmax(0, 1fr) auto;
    gap: 8px;
    padding: 10px;
    min-height: 44px;
  }

  .market-tech-detail-main strong {
    font-size: 13px;
  }

  .market-tech-detail-main small {
    font-size: 11px;
  }

  .market-tech-detail-metric {
    font-size: 13px;
  }

  .market-tech-detail-head h3 {
    font-size: 14px;
  }
}

.label {
  display: block;
  color: var(--muted);
  font-size: 12px;
  margin-bottom: 6px;
}

.tone-badge {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 5px 14px;
  border-radius: 999px;
  font-size: 22px;
  line-height: 1;
  letter-spacing: 0;
  border: 1px solid #e6ebf2;
  background: #f6f9fd;
}

.tone-strong {
  color: var(--red);
  border-color: #f0c9c9;
  background: #fff1f1;
}

.tone-weak {
  color: var(--green);
  border-color: #bfe1d2;
  background: #ecf8f2;
}

.tone-neutral,
.tone-unknown {
  color: var(--amber);
  border-color: #f0d7a2;
  background: #fff7e6;
}

.signal-status-card {
  min-width: 0;
}

.recommend-status-card {
  min-width: 0;
}

.status-card-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
}

.status-card-head .label {
  margin: 0;
}

#monitorTime {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}

.signal-ticker {
  height: var(--status-list-height);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  border: 1px solid #e6ebf2;
  border-radius: 8px;
  background: #f6f9fd;
}

.signal-ticker.empty {
  display: flex;
  align-items: center;
  justify-content: center;
}

.signal-ticker-track {
  display: grid;
  gap: 8px;
  padding: 8px var(--list-x-padding) 18px;
}

.signal-ticker-track.is-animated {
  animation: signalTicker calc(var(--signal-count) * 4s) linear infinite;
}

.signal-ticker:hover .signal-ticker-track.is-animated {
  animation-play-state: paused;
}

.signal-ticker-row {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  min-height: 54px;
  padding: 6px var(--list-x-padding);
  border-radius: 6px;
  background: #fff;
  text-align: left;
}

.signal-ticker-row:hover {
  background: #eef3fb;
}

.signal-mini-score {
  display: grid;
  place-items: center;
  height: 34px;
  border-radius: 6px;
  background: #eef3fb;
  color: var(--blue);
  font-size: 14px;
  font-weight: 800;
}

button.signal-ticker-row {
  padding: 6px var(--list-x-padding);
  border-radius: 6px;
}

.signal-ticker-row strong {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  color: var(--ink);
  font-size: 13px;
  line-height: 1.2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.signal-ticker-row em {
  color: var(--muted);
  font-style: normal;
  font-size: 11px;
  font-weight: 700;
}

.signal-ticker-row > .signal-main {
  min-width: 0;
}

.signal-ticker-row small {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 6px;
  margin-top: 3px;
  max-width: 100%;
  overflow: hidden;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
}

.signal-ticker-row small .signal-meta {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.signal-ticker-row small .signal-meta + .signal-meta::before {
  content: "·";
  margin-right: 6px;
  opacity: .65;
  font-weight: 700;
}

.change-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-width: 64px;
  justify-content: center;
  padding: 2px 7px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  line-height: 1.2;
  flex-shrink: 0;
  vertical-align: baseline;
}

.signal-ticker-row small .change-badge,
.recommend-row small .change-badge {
  vertical-align: unset;
}

.change-badge.up {
  background: #fff1f1;
  color: var(--red);
  box-shadow: inset 0 0 0 1px #f2c6c6;
}

.change-badge.down {
  background: #edf8f2;
  color: var(--green);
  box-shadow: inset 0 0 0 1px #bfe1d2;
}

.change-badge i {
  font-style: normal;
  font-size: 9px;
  font-weight: 800;
  opacity: .7;
}

.change-badge.is-live {
  box-shadow: inset 0 0 0 1px currentColor, 0 1px 5px rgba(16, 24, 40, .08);
}

.change-badge.is-compact {
  min-width: 0;
  padding: 2px 6px;
  gap: 3px;
}

.change-badge.is-compact.is-live {
  box-shadow: inset 0 0 0 1px currentColor;
}

.recommend-list {
  height: var(--status-list-height);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  border: 1px solid #e6ebf2;
  border-radius: 8px;
  background: #f6f9fd;
}

.recommend-list.empty {
  height: var(--status-list-height);
  display: flex;
  align-items: center;
  justify-content: center;
}

.recommend-ticker-track {
  display: grid;
  gap: 8px;
  padding: 8px var(--list-x-padding) 18px;
}

.recommend-ticker-track.is-animated {
  animation: signalTicker calc(var(--signal-count) * 4s) linear infinite;
}

.recommend-list:hover .recommend-ticker-track.is-animated {
  animation-play-state: paused;
}

.recommend-row {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  width: 100%;
  border: 1px solid #e6ebf2;
  border-radius: 8px;
  background: #fff;
  padding: 7px var(--list-x-padding);
  text-align: left;
  font: inherit;
}

button.recommend-row {
  padding: 7px var(--list-x-padding);
  border: 1px solid #e6ebf2;
  border-radius: 8px;
}

.recommend-row:hover {
  background: #f6f9fd;
}

.recommend-row > .recommend-rank {
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #fff1e6;
  color: #c25a00;
  font-size: 12px;
  font-weight: 800;
  flex-shrink: 0;
  align-self: center;
}

.recommend-row .recommend-main {
  min-width: 0;
}

.recommend-row strong {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 13px;
  line-height: 1.2;
}

.recommend-row em {
  color: var(--muted);
  font-style: normal;
  font-size: 11px;
  font-weight: 700;
}

.recommend-row small {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 6px;
  margin-top: 3px;
  max-width: 100%;
  overflow: hidden;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
}

.recommend-row small .recommend-meta {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.recommend-row small .recommend-meta + .recommend-meta::before {
  content: "·";
  margin-right: 6px;
  opacity: .65;
  font-weight: 700;
}

.recommend-change,
.monitor-change {
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: center;
  min-width: 58px;
  font-size: 12px;
  font-weight: 900;
  line-height: 1.2;
  white-space: nowrap;
  flex-shrink: 0;
}

.recommend-change.up,
.monitor-change.up {
  color: var(--red);
}

.recommend-change.down,
.monitor-change.down {
  color: var(--green);
}

.status-stock-exchange {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  min-width: 16px;
  padding: 0 2px;
  border-radius: 2px;
  background: #f2f3f5;
  color: #86909c;
  font-size: 9px;
  font-weight: 700;
  line-height: 14px;
}

.status-stock-exchange.is-compact {
  min-width: 14px;
  padding: 0 2px;
  font-size: 8px;
  line-height: 12px;
}

.stock-code-line {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  flex-wrap: nowrap;
  min-width: 0;
  width: fit-content;
  max-width: 100%;
}

.stock-code-line.is-compact {
  gap: 2px;
}

.stock-code-line .status-stock-exchange {
  flex-shrink: 0;
}

.status-stock-quote {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  gap: 2px;
  flex-shrink: 0;
  align-self: center;
}

.status-stock-price {
  color: var(--ink);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.2;
  white-space: nowrap;
}

.status-stock-quote .monitor-change {
  min-width: 0;
  font-size: 11px;
}

@keyframes signalTicker {
  from {
    transform: translateY(0);
  }
  to {
    transform: translateY(-50%);
  }
}

.summary {
  margin: 18px 0;
  padding: 16px 18px;
  background: #fff7e6;
  border: 1px solid #f0d7a2;
  border-radius: 8px;
  color: #402c00;
}

.search-band {
  display: grid;
  grid-template-columns: minmax(180px, 260px) minmax(180px, 260px) minmax(0, 1fr);
  gap: 12px;
  align-items: end;
  margin: 0 0 12px;
}

.search-field {
  position: relative;
  display: grid;
  gap: 6px;
  min-width: 0;
}

.search-input-wrap {
  position: relative;
  width: 100%;
  min-width: 0;
}

.search-input-wrap .search-input-control {
  width: 100%;
  box-sizing: border-box;
}

.search-input-control {
  width: 100%;
}

.search-input-control::-webkit-search-cancel-button,
.search-input-control::-webkit-search-decoration {
  -webkit-appearance: none;
  appearance: none;
  display: none;
}

.search-input-clear {
  position: absolute;
  top: 50%;
  right: 8px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  transform: translateY(-50%);
  -webkit-tap-highlight-color: transparent;
}

.search-input-clear[hidden] {
  display: none !important;
}

.search-input-clear svg {
  display: block;
  width: 16px;
  height: 16px;
}

.search-field label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

input[type="search"] {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 10px 12px;
  font: inherit;
  color: var(--ink);
  background: #fff;
}

/* iOS / 微信内置浏览器：可编辑控件字号 < 16px 时聚焦会自动放大页面 */
@media (max-width: 768px) {
  input:not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="range"]):not([type="file"]),
  textarea,
  select {
    font-size: 16px !important;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }

  .super-analysis-input,
  .super-analysis-input::placeholder {
    font-size: 16px !important;
    line-height: 1.5;
  }

  .super-analysis-input {
    touch-action: manipulation;
  }
}

.search-dropdown {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  z-index: 9;
  width: min(520px, calc(100vw - 72px));
  max-height: 360px;
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 16px 36px rgba(16, 24, 40, .14);
  padding: 10px var(--list-x-padding);
}

.search-dropdown:empty {
  display: none;
}

.search-dropdown > strong {
  display: block;
  margin-bottom: 8px;
  font-size: 13px;
}

.search-dropdown .mini-list {
  max-height: none;
}

/* 下拉内：历史记录区块与股票/板块结果列表之间留 12px 间距 */
.search-dropdown .search-dropdown-history + .mini-list {
  margin-top: 12px;
}

.search-history {
  grid-column: 3;
  grid-row: 1;
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  min-height: 42px;
  overflow-x: auto;
  overflow-y: hidden;
}

.search-history:empty {
  display: none;
}

.global-data-init {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 52px;
  padding: 12px 14px;
  border: 1px solid #cfe0f6;
  border-radius: 10px;
  background: #f6f9ff;
  color: var(--blue);
  transition: opacity .25s ease, transform .25s ease;
}

.global-data-init strong,
.global-data-init small {
  display: block;
}

.global-data-init strong {
  font-size: 14px;
}

.global-data-init small {
  margin-top: 3px;
  color: var(--muted);
  font-size: 12px;
}

.global-data-init-retry {
  margin-top: 8px;
  padding: 4px 12px;
  border: 1px solid rgba(220, 38, 38, .25);
  border-radius: 999px;
  background: #fff;
  color: #b91c1c;
  font-size: 12px;
  cursor: pointer;
}

.global-data-init-retry:hover {
  background: #fff5f5;
}

.global-data-init.is-ready {
  border-color: rgba(22, 163, 74, .25);
  background: #f0fdf4;
  color: #15803d;
}

.global-data-init.is-error {
  border-color: rgba(220, 38, 38, .25);
  background: #fff1f2;
  color: #b91c1c;
}

.global-data-init.is-hidden {
  display: none;
}

.global-data-init-check {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: rgba(22, 163, 74, .12);
  color: #15803d;
  font-size: 11px;
  font-weight: 900;
}

.search-history-label {
  flex: 0 0 auto;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  line-height: 28px;
}

.search-history-clear {
  flex: 0 0 auto;
  opacity: 0;
  padding: 5px 8px;
  border: 0;
  color: var(--muted);
  background: transparent;
  font-size: 12px;
  transition: opacity .15s ease, background .15s ease;
}

.search-history:hover .search-history-clear,
.search-history:focus-within .search-history-clear {
  opacity: 1;
}

.search-history-clear:hover {
  background: #eef3fb;
}

.search-history-tags {
  display: flex;
  flex-wrap: nowrap;
  gap: 6px;
  min-width: 0;
}

.search-history-chip {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  max-width: 100%;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: #fff;
}

.search-history-chip button {
  border: 0;
  background: transparent;
}

.search-history-chip [data-search-history] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 8px;
  border-radius: 999px;
  color: var(--ink);
  font-size: 12px;
  min-width: 0;
  white-space: nowrap;
}

.search-history-chip:hover {
  border-color: #b9c7dc;
  background: #fff;
}

.search-history-chip [data-search-history] span {
  color: var(--blue);
  font-weight: 800;
}

.search-history-remove {
  width: 22px;
  height: 22px;
  margin-right: 3px;
  padding: 0;
  opacity: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1;
  transition: opacity .15s ease, color .15s ease;
}

.search-history-chip:hover .search-history-remove,
.search-history-chip:focus-within .search-history-remove {
  opacity: 1;
}

.search-history-remove:hover {
  color: var(--red);
}

.grid,
.monitor-grid {
  display: grid;
  grid-template-columns: minmax(320px, .85fr) minmax(620px, 1.6fr);
  gap: 18px;
}

.market-tabs {
  display: grid;
  gap: 14px;
  margin-top: 12px;
}

.main-tabs {
  display: flex;
  gap: 8px;
  align-items: center;
  overflow-x: auto;
  padding: 4px 0;
}

.main-tabs button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  border-color: transparent;
  background: transparent;
  color: var(--muted);
  white-space: nowrap;
}

.main-tabs button:hover {
  background: #eef3fb;
}

.main-tabs button.active {
  border-color: var(--blue);
  background: var(--blue);
  color: #fff;
}

.main-tabs span {
  display: inline-grid;
  min-width: 24px;
  height: 22px;
  place-items: center;
  padding: 0 7px;
  border-radius: 999px;
  background: #eef3fb;
  color: var(--blue);
  font-size: 12px;
}

.main-tabs button.active span {
  background: rgba(255, 255, 255, .18);
  color: #fff;
}

.tab-panel[hidden] {
  display: none;
}

.tab-panel.is-active {
  display: block;
}

.sector-workspace {
  display: grid;
  grid-template-columns: minmax(320px, .85fr) minmax(620px, 1.6fr);
  gap: 18px;
  align-items: stretch;
}

.sector-workspace > .panel {
  display: flex;
  flex-direction: column;
  min-height: 0;
  min-width: 0;
  overflow: hidden;
}

.sector-workspace > .panel > .panel-head {
  flex: 0 0 auto;
}

.sector-workspace > .panel > #sectorList {
  flex: 1 1 auto;
  min-height: 0;
  max-height: min(720px, calc(100vh - 280px));
  overflow: auto;
}

.sector-workspace > .panel > .table-wrap {
  flex: 0 0 auto;
  max-height: min(720px, calc(100vh - 280px));
  overflow-x: hidden;
  overflow-y: auto;
  background: #fff;
}

/* 右侧表格较短时，由面板底部白底补齐高度，避免 table-wrap 内留白 */
.sector-workspace > .panel.wide::after {
  content: "";
  display: block;
  flex: 1 1 auto;
  min-height: 0;
  background: #fff;
}

.sector-stock-table-wrap {
  position: relative;
}

.sector-stock-loading-overlay {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: grid;
  place-items: center;
  padding: 20px 16px;
  background: rgba(255, 255, 255, 0.88);
  backdrop-filter: blur(2px);
}

.sector-stock-loading-overlay[hidden] {
  display: none !important;
}

.sector-stock-loading-overlay .async-loading {
  width: min(100%, 360px);
  margin: 0;
  box-shadow: 0 8px 24px rgba(17, 38, 79, 0.08);
}

.sector-stock-table-wrap.is-sector-stock-loading .stock-rank-table {
  pointer-events: none;
  user-select: none;
}

.sector-stock-table-wrap.is-sector-stock-refreshing .stock-rank-table {
  opacity: 0.55;
}

.monitor-grid {
  grid-template-columns: minmax(540px, 1.45fr) minmax(320px, .75fr);
  margin-bottom: 18px;
}

.panel {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
}

.panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 15px 16px;
  border-bottom: 1px solid var(--line);
}

.panel-head h2 {
  font-size: 18px;
}

.panel-head span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.sector-day-meta {
  margin-left: auto;
  color: var(--muted);
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
}

.sector-day-tabs {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 3px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f6f9fd;
}

.sector-day-tabs button {
  min-width: 48px;
  border: 0;
  border-radius: 5px;
  padding: 6px 9px;
  background: transparent;
  color: var(--muted);
  font-size: 12px;
}

.sector-day-tabs button span {
  display: block;
  margin-top: 2px;
  font-size: 10px;
  font-weight: 600;
  color: inherit;
  opacity: .75;
}

.sector-day-tabs button.active {
  background: var(--blue);
  color: #fff;
  box-shadow: 0 1px 4px rgba(37, 99, 235, .28);
}

.sector-day-tabs button.active .sector-day-tab-label,
.sector-day-tabs button.active .mobile-discover-day-tab-label {
  color: #fff;
  opacity: 1;
  font-weight: 700;
}

/* 热点板块：Web 端标题与交易日 Tab（标题上行、Tab 下行铺满，避免左栏挤出面板） */
body:not(.mobile-nav-discover) .sector-workspace > .panel > .panel-head.mobile-discover-sector-head {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px 12px;
  padding: 12px 14px;
  min-width: 0;
  overflow: hidden;
  box-sizing: border-box;
}

body:not(.mobile-nav-discover) .sector-workspace > .panel > .panel-head.mobile-discover-sector-head h2 {
  width: auto;
  flex: 1 1 auto;
  margin: 0;
  font-size: 17px;
  font-weight: 600;
  white-space: nowrap;
}

body:not(.mobile-nav-discover) #sectorDayTabs.sector-day-tabs .mobile-discover-day-tabs-thumb {
  display: none;
}

body:not(.mobile-nav-discover) #sectorDayTabs.sector-day-tabs {
  flex: 1 1 100%;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  display: flex;
  align-self: stretch;
  gap: 2px;
  padding: 3px;
  box-sizing: border-box;
}

body:not(.mobile-nav-discover) #sectorDayTabs.sector-day-tabs button {
  flex: 1 1 0;
  width: auto;
  min-width: 0;
  min-height: 0;
  padding: 6px 4px;
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 0;
  white-space: nowrap;
  text-align: center;
  line-height: 1.3;
  font-size: 11px;
  overflow: hidden;
}

body:not(.mobile-nav-discover) #sectorDayTabs.sector-day-tabs button.active {
  background: var(--blue);
  color: #fff;
}

body:not(.mobile-nav-discover) #sectorDayTabs.sector-day-tabs button .sector-day-tab-label,
body:not(.mobile-nav-discover) #sectorDayTabs.sector-day-tabs button .mobile-discover-day-tab-label {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: inherit;
  line-height: inherit;
  font-weight: inherit;
  color: inherit;
}

body:not(.mobile-nav-discover) #sectorDayTabs.sector-day-tabs button .sector-day-tab-meta,
body:not(.mobile-nav-discover) #sectorDayTabs.sector-day-tabs button span:not(.mobile-discover-day-tabs-thumb):not(.sector-day-tab-label) {
  display: block;
  margin-top: 2px;
  margin-left: 0;
  font-size: 10px;
  font-weight: 600;
  line-height: 1.3;
  opacity: 0.75;
}

/* 强度阶梯 / 散户持仓：Web 端标题与右侧控件同一行垂直居中 */
body:not(.mobile-nav-discover) .strength-ladder-panel-head,
body:not(.mobile-nav-discover) .retail-hold-panel-head {
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  flex-wrap: nowrap;
  gap: 12px;
  padding: 12px 14px;
}

body:not(.mobile-nav-discover) .strength-ladder-panel-head h2,
body:not(.mobile-nav-discover) .retail-hold-panel-head h2 {
  margin: 0;
  flex: 0 0 auto;
  font-size: 17px;
  font-weight: 600;
  white-space: nowrap;
}

body:not(.mobile-nav-discover) .strength-ladder-title-block {
  flex: 0 0 auto;
}

body:not(.mobile-nav-discover) .strength-ladder-head-actions,
body:not(.mobile-nav-discover) .retail-hold-head-actions {
  flex: 0 0 auto;
  align-items: center;
  flex-wrap: nowrap;
  gap: 10px;
}

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

.strategy-head-actions button {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 7px 10px;
  background: #fff;
  color: var(--text);
  font-weight: 700;
}

.strategy-head-actions button.secondary {
  background: #f8fbff;
  border-color: #bdd2f3;
  color: var(--blue);
}

.strategy-history-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 999px;
  background: #eef4ff;
  color: var(--blue);
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
  flex-shrink: 0;
}

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

.strategy-memory-head > strong {
  margin-bottom: 0;
}

.strategy-memory-head-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}

.strategy-memory-head-actions button.strategy-refresh-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  white-space: nowrap;
  box-sizing: border-box;
  min-height: 28px;
  height: 28px;
  border: 1px solid #165dff;
  border-radius: 8px;
  padding: 0 12px;
  background: #165dff;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
}

.strategy-memory-head-actions button.strategy-refresh-btn:hover {
  background: #0e42d2;
  border-color: #0e42d2;
  color: #fff;
}

.strategy-memory-head-actions button.strategy-refresh-btn:disabled,
.strategy-memory-head-actions button.strategy-refresh-btn.is-busy {
  cursor: not-allowed;
  opacity: 0.72;
}

.strategy-memory-head-actions button.strategy-history-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  flex-shrink: 0;
  white-space: nowrap;
  box-sizing: border-box;
  min-height: 28px;
  height: 28px;
  border: 1px solid #bdd2f3;
  border-radius: 8px;
  padding: 0 10px;
  background: #fff;
  color: var(--blue);
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
}

.strategy-history-btn-text {
  line-height: 1;
}

.strategy-history-btn:hover {
  background: #f7fbff;
}

.strategy-memory-head-links {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.strategy-page-reload-btn {
  border: none;
  border-radius: 0;
  background: transparent;
  color: var(--blue, #165dff);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
  padding: 0;
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
  box-shadow: none;
  appearance: none;
  -webkit-appearance: none;
}

.strategy-page-reload-btn:hover {
  opacity: 0.75;
}

.strategy-page-reload-btn:disabled,
.strategy-page-reload-btn.is-busy {
  opacity: 0.45;
  cursor: not-allowed;
}

.strategy-memory-empty {
  margin: 0;
  font-size: 12px;
  line-height: 1.5;
}

.modal-panel.strategy-history-drawer-panel {
  width: min(480px, 92vw);
}

.strategy-history-sheet-footer {
  display: none;
}

#strategyHistoryDrawer:not(.strategy-history-sheet-modal) .strategy-history-sheet-head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 20px;
  border-bottom: 1px solid var(--line);
}

#strategyHistoryDrawer:not(.strategy-history-sheet-modal) .strategy-history-sheet-head .detail-sheet-head-center {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
  flex: 1;
  text-align: left;
}

#strategyHistoryDrawer:not(.strategy-history-sheet-modal) .strategy-history-sheet-head h2 {
  margin: 0;
  font-size: 16px;
  flex: 0 0 auto;
}

#strategyHistoryDrawer:not(.strategy-history-sheet-modal) .strategy-history-sheet-meta {
  display: block;
  margin: 0;
  flex: 0 0 auto;
  font-size: 12px;
  line-height: 1.4;
  white-space: nowrap;
}

#strategyHistoryDrawer:not(.strategy-history-sheet-modal) .strategy-history-drawer-close {
  flex-shrink: 0;
  align-self: center;
  width: 40px;
  height: 40px;
  min-height: 40px;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #4e5969;
  font-size: 30px;
  font-weight: 400;
  line-height: 1;
  cursor: pointer;
}

#strategyHistoryDrawer:not(.strategy-history-sheet-modal) .strategy-history-drawer-close:hover {
  background: #f2f3f5;
  color: #1d2129;
}

#strategyHistoryDrawer.strategy-history-sheet-modal .strategy-history-drawer-close {
  display: none;
}

.strategy-history-drawer-body {
  overflow: auto;
}

.strategy-history-drawer-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.strategy-history-item {
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
}

.strategy-history-item-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}

.strategy-history-item-main {
  min-width: 0;
  flex: 1;
}

.strategy-history-item-title {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.strategy-history-item-title .stock-name-with-star {
  min-width: 0;
  max-width: 100%;
}

.strategy-history-item-title strong {
  font-size: 14px;
}

.strategy-history-tag {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.4;
}

.strategy-history-tag.is-profit {
  background: #ffece8;
  color: #f53f3f;
}

.strategy-history-tag.is-loss {
  background: #e8ffea;
  color: #00b42a;
}

.strategy-history-tag.is-flat {
  background: #f3f6fb;
  color: var(--muted);
}

.strategy-history-item-head small {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-size: 11px;
}

.strategy-history-item-return {
  flex-shrink: 0;
  font-size: 15px;
  font-weight: 800;
}

.strategy-history-item-prices,
.strategy-history-item-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  color: var(--muted);
  font-size: 12px;
}

.strategy-history-item-result {
  display: block;
  margin-top: 8px;
  color: var(--muted);
  font-size: 11px;
}

.strategy-history-after-sell {
  font-size: 12px;
  font-weight: 400;
}

.strategy-history-item-after-sell-row {
  width: 100%;
  margin-top: 4px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
}

.strategy-history-item-after-sell-row .strategy-history-after-sell,
.strategy-history-item-after-sell-row .strategy-history-price-after {
  font-size: 12px;
  font-weight: 400;
}

.strategy-history-item-after-sell {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: 8px;
  padding: 8px 10px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.04);
  font-size: 12px;
}

.strategy-history-item-after-sell strong {
  font-size: 14px;
  font-weight: 700;
}

.strategy-history-price-mark {
  color: var(--muted);
}

.mobile-strategy-pick-list {
  display: none;
}

.mobile-strategy-scroll-body {
  display: contents;
}

.strategy-panel {
  position: relative;
  padding-bottom: 16px;
}

.strategy-panel .strategy-summary,
.strategy-panel .strategy-weights,
.strategy-panel .table-wrap {
  margin-left: 16px;
  margin-right: 16px;
}

.strategy-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-top: 16px;
  margin-bottom: 16px;
}

.strategy-summary article {
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: linear-gradient(180deg, #fff, #f8fbff);
}

.strategy-summary span,
.strategy-summary small {
  display: block;
  color: var(--muted);
  font-size: 12px;
}

.strategy-summary strong {
  display: block;
  margin: 4px 0;
  color: var(--text);
  font-size: 22px;
}

.strategy-summary article strong.up {
  color: #f53f3f;
}

.strategy-summary article strong.down {
  color: #009a29;
}

.strategy-weights {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 18px;
}

.strategy-weight-primary,
.strategy-weight-secondary {
  display: contents;
}

.strategy-learning-note,
.strategy-pattern-card {
  grid-column: 1 / -1;
  padding: 12px;
  border: 1px solid #bdd7ff;
  border-radius: 10px;
  background: #f7fbff;
}

.strategy-learning-note strong,
.strategy-pattern-card strong {
  display: block;
  margin-bottom: 5px;
  color: var(--text);
}

.strategy-memory-head > strong {
  display: block;
  margin-bottom: 0;
}

.strategy-learning-note span,
.strategy-pattern-card span {
  display: block;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55;
}

.strategy-pattern-card {
  grid-column: span 3;
  border-color: var(--line);
  background: #fff;
}

.strategy-pattern-card.is-strong {
  grid-column: span 4;
  border-color: #b8e0c4;
  background: #f7fff9;
}

.strategy-memory-buys {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px dashed #c8daf5;
  min-width: 0;
}

.strategy-memory-buys > strong {
  display: block;
  margin-bottom: 8px;
  color: var(--text);
  font-size: 13px;
}

.strategy-memory-buy-track {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 2px;
  scrollbar-width: thin;
}

.strategy-memory-buy-track::-webkit-scrollbar {
  height: 6px;
}

.strategy-memory-buy-track::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: #c8daf5;
}

.strategy-memory-buy-card {
  flex: 0 0 auto;
  min-width: 148px;
  max-width: 176px;
  padding: 10px;
  border: 1px solid #dbe7fb;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 1px 4px rgba(17, 38, 79, 0.04);
}

.strategy-memory-buy-card.clickable-row {
  cursor: pointer;
}

.strategy-memory-buy-card.clickable-row:hover {
  background: #f6f9fd;
  border-color: #c8daf5;
}

.strategy-history-item.clickable-row {
  cursor: pointer;
}

.strategy-history-item.clickable-row:hover {
  background: #f6f9fd;
}

.strategy-memory-buy-head {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-bottom: 6px;
}

.strategy-memory-buy-head .stock-name-with-star {
  display: inline-flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-start;
  gap: 4px;
  width: fit-content;
  max-width: 100%;
  min-width: 0;
}

.strategy-memory-buy-head .stock-name-with-star .watchlist-star-btn {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  margin: 0;
}

.strategy-memory-buy-head strong {
  margin: 0;
  flex: 0 1 auto;
  min-width: 0;
  max-width: 100%;
  font-size: 13px;
  line-height: 1.3;
  color: var(--text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.strategy-memory-buy-head small {
  color: var(--muted);
  font-size: 11px;
}

.strategy-memory-buy-head small.stock-code-line,
.strategy-history-item-head small.stock-code-line,
.mobile-strategy-memory-code.stock-code-line,
.strategy-history-item-sub .stock-code-line {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  width: fit-content;
  max-width: 100%;
}

.strategy-memory-buy-head small.stock-code-line .status-stock-exchange,
.strategy-history-item-head small.stock-code-line .status-stock-exchange,
.mobile-strategy-memory-code.stock-code-line .status-stock-exchange,
.strategy-history-item-sub .stock-code-line .status-stock-exchange {
  flex-shrink: 0;
}

.strategy-memory-buy-price {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-bottom: 6px;
  font-size: 11px;
  line-height: 1.35;
  color: var(--muted);
}

.strategy-memory-buy-price span {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.strategy-memory-buy-pnl {
  font-size: 15px;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 4px;
}

.strategy-memory-buy-pnl small {
  display: block;
  margin-top: 2px;
  font-size: 11px;
  font-weight: 500;
  color: var(--muted);
}

.strategy-memory-buy-meta {
  display: block;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.35;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.strategy-memory-buy-card.is-sold {
  border-color: #cfe6d3;
  background: #f8fff9;
}

.strategy-sell-btn {
  margin-top: 4px;
  width: 100%;
  padding: 5px 8px;
  border: 1px solid #f0c8c8;
  border-radius: 8px;
  background: #fff7f7;
  color: #c0392b;
  font-size: 11px;
  line-height: 1.2;
  cursor: pointer;
}

.strategy-memory-sell-label {
  margin-top: 6px;
  font-size: 11px;
  font-weight: 600;
  color: var(--muted);
}

.strategy-sell-btn:hover:not(:disabled):not(.is-sell-blocked) {
  background: #ffecec;
}

.strategy-sell-btn:disabled,
.strategy-sell-btn.is-sell-blocked {
  opacity: 0.65;
  cursor: pointer;
}

.strategy-sell-btn.is-sell-blocked:hover {
  background: #fff7f7;
}

.strategy-sell-btn-inline {
  margin-top: 6px;
  width: auto;
  display: inline-block;
}

.strategy-sell-hint,
.strategy-sell-wait {
  display: block;
  margin-top: 4px;
  color: #86909c;
  font-size: 11px;
  line-height: 1.35;
}

.strategy-sell-hint-popover {
  position: fixed;
  z-index: 10050;
  max-width: min(280px, calc(100vw - 24px));
  padding: 8px 12px;
  border-radius: 8px;
  background: rgba(29, 33, 41, 0.92);
  color: #fff;
  font-size: 12px;
  line-height: 1.45;
  white-space: normal;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.18);
  pointer-events: none;
  opacity: 0;
  transform: translateY(4px);
  transition: opacity 0.15s ease, transform 0.15s ease;
}

.strategy-sell-hint-popover.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.mobile-strategy-sell-pill:disabled,
.mobile-strategy-sell-pill.is-sell-blocked {
  opacity: 0.55;
  cursor: pointer;
}

.strategy-buy-btn-inline {
  margin-top: 6px;
  width: auto;
  display: inline-block;
}

.strategy-weight {
  position: relative;
  overflow: hidden;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
}

.strategy-weight span,
.strategy-weight strong {
  position: relative;
  z-index: 1;
}

.strategy-weight span {
  display: block;
  color: var(--muted);
  font-size: 12px;
}

.strategy-weight strong {
  display: block;
  margin-top: 4px;
  color: var(--blue);
}

.strategy-weight em {
  position: absolute;
  left: 0;
  bottom: 0;
  width: var(--weight);
  height: 3px;
  background: var(--blue);
}

.strategy-table {
  width: 100%;
  border-collapse: collapse;
}

.strategy-table th,
.strategy-table td {
  padding: 10px 12px;
  border-bottom: 1px solid var(--line);
  text-align: left;
  vertical-align: middle;
}

.strategy-table th:nth-child(1),
.strategy-table td:nth-child(1),
.strategy-table .strategy-col-rank {
  width: 48px;
  min-width: 48px;
  max-width: 56px;
  white-space: nowrap;
  padding-right: 16px;
  box-sizing: border-box;
}

.strategy-table th:nth-child(2),
.strategy-table td:nth-child(2),
.strategy-table .strategy-col-stock {
  padding-left: 8px;
  min-width: 160px;
}

.strategy-table th {
  color: var(--muted);
  font-size: 12px;
}

.strategy-table td span,
.strategy-table td small {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: 12px;
}

.strategy-table td .strategy-stock-main,
.strategy-table td .strategy-stock-main .stock-name-with-star {
  display: inline-flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 8px;
  margin-top: 0;
  color: inherit;
  font-size: inherit;
  max-width: 100%;
  min-width: 0;
}

.strategy-table td .strategy-stock-main {
  gap: 12px;
  width: 100%;
}

.strategy-table .strategy-stock-name {
  flex: 0 1 auto;
  min-width: 0;
  margin: 0;
  color: #1d2129;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.strategy-table .strategy-stock-price {
  flex: 0 0 auto;
  margin: 0;
  color: #1d2129;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.3;
  white-space: nowrap;
}

.strategy-table td .stock-code-line {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  width: fit-content;
  max-width: 100%;
}

.strategy-table td .stock-code-line.is-compact .status-stock-exchange {
  min-width: 14px;
  padding: 0 2px;
  font-size: 8px;
  line-height: 12px;
}

.strategy-detail-btn,
.strategy-buy-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 0 12px;
  border: 1px solid #bdd2f3;
  border-radius: 8px;
  background: #f7fbff;
  color: var(--blue);
  font-weight: 800;
  cursor: pointer;
}

.strategy-buy-btn {
  border-color: #f0cf8b;
  background: #fff8e8;
  color: var(--amber);
}

.strategy-detail-btn:hover,
.strategy-buy-btn:hover {
  background: #edf5ff;
  border-color: #8fb6ee;
}

.strategy-buy-btn:hover {
  background: #fff1cf;
  border-color: #e3b457;
}

.strategy-detail-btn:disabled,
.strategy-buy-btn:disabled {
  cursor: wait;
  opacity: .68;
}

.strategy-buy-state {
  min-width: 108px;
}

.strategy-buy-state strong {
  display: block;
  font-size: 13px;
}

.strategy-detail-modal {
  display: grid;
  gap: 14px;
}

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

.strategy-detail-hero > div,
.strategy-detail-grid article,
.strategy-detail-block {
  border: 1px solid #e2ebf7;
  border-radius: 8px;
  background: #fbfdff;
  padding: 14px;
}

.strategy-detail-hero span,
.strategy-detail-hero small,
.strategy-detail-grid span,
.strategy-detail-grid small,
.strategy-detail-block p {
  color: var(--muted);
}

.strategy-detail-hero strong,
.strategy-detail-grid strong,
.strategy-detail-block strong {
  display: block;
  margin-top: 4px;
  color: #1d2b45;
  font-size: 16px;
}

.strategy-detail-block p {
  margin: 8px 0 0;
  line-height: 1.7;
}

.strategy-detail-factors {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 8px;
  margin-top: 10px;
}

.strategy-detail-factors div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 8px;
  background: #f2f6fb;
}

@media (max-width: 720px) {
  .strategy-detail-hero,
  .strategy-detail-grid {
    grid-template-columns: 1fr;
  }
}

.list {
  display: grid;
  gap: 1px;
  background: var(--line);
}

#sectorList {
  overflow: auto;
  gap: 8px;
  padding: 6px;
  background: #f8fbff;
}

.list.empty {
  padding: 24px 16px;
  background: #fff;
}

.sector-card {
  background: #fff;
  cursor: pointer;
}

.sector-item {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) minmax(132px, auto);
  gap: 12px;
  padding: 14px 16px;
  background: #fff;
  align-items: center;
}

.sector-card:hover .sector-item {
  background: #fbfcfe;
}

.sector-card.is-selected .sector-item {
  background: #f6f9fd;
  box-shadow: inset 3px 0 0 var(--blue);
}

.sector-copy {
  min-width: 0;
}

.sector-title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-width: 0;
}

.sector-title-name-with-star {
  display: block;
  min-width: 0;
  flex: 0 1 auto;
  max-width: 100%;
  width: auto;
}

.sector-title-name-with-star h3 {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin: 0 !important;
  min-width: 0;
  max-width: 100%;
  width: auto !important;
  font: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: 1.35;
  white-space: nowrap !important;
}

.sector-title-name-with-star .sector-title-text {
  min-width: 0;
  flex: 0 1 auto;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sector-title-name-with-star .sector-watchlist-star {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin: 0 !important;
  z-index: 2;
}

.sector-title-row h3 {
  margin: 0;
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sector-title-score {
  flex: 0 0 auto;
  font-size: 12px;
  font-weight: 700;
  color: var(--blue);
  white-space: nowrap;
}

.sector-title-meta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
}

.sector-title-change {
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}

.sector-item--slim,
.sector-item--today {
  grid-template-columns: 34px minmax(0, 1fr) auto;
}

.sector-actions--slim,
.sector-actions--today {
  grid-template-columns: auto;
}

.sector-compare {
  display: inline-flex;
  width: fit-content;
  margin: 0 0 5px;
  padding: 3px 7px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.2;
  border: 1px solid #e6ebf2;
  background: #f6f9fd;
  color: var(--muted);
}

.sector-compare.up,
.sector-compare.new {
  border-color: #f0c9c9;
  background: #fff1f1;
  color: var(--red);
}

.sector-compare.down {
  border-color: #bfe1d2;
  background: #ecf8f2;
  color: var(--green);
}

.sector-compare.flat {
  color: var(--blue);
}

.empty-sector-view {
  padding: 24px 16px;
  width: 100%;
  background: #fff;
  box-sizing: border-box;
}

.sector-actions {
  display: grid;
  grid-template-columns: auto auto;
  gap: 8px;
  align-items: center;
  justify-content: end;
}

.sector-analysis {
  min-width: 58px;
  padding: 8px 10px;
  border-color: var(--blue);
  color: var(--blue);
  background: #f6f9fd;
}

.sector-toggle {
  display: grid;
  grid-template-columns: minmax(64px, auto) auto;
  align-items: center;
  gap: 8px;
  min-width: 104px;
  padding: 7px 8px 7px 10px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
  color: var(--ink);
  text-align: right;
  pointer-events: none;
}

.sector-analysis:hover {
  background: #eef3fb;
}

.sector-toggle b {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  height: 24px;
  border-radius: 999px;
  background: #eef3fb;
  color: var(--blue);
  font-size: 12px;
}

.sector-toggle small span {
  font-weight: 800;
}

.sector-card.is-selected .sector-toggle b {
  background: var(--blue);
  color: #fff;
}

.signal-list {
  display: grid;
  gap: 10px;
  max-height: 520px;
  overflow: auto;
  padding: 12px;
  background: #f6f9fd;
}

.news-list {
  max-height: 520px;
  overflow: hidden;
  background: #fff;
}

.news-section {
  margin-top: 0;
}

.signal-item {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 12px;
  padding: 14px 16px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
}

.signal-item h3 {
  font-size: 15px;
  line-height: 1.4;
  margin-bottom: 5px;
}

.signal-item p {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
  margin-top: 4px;
}

.news-table-wrap {
  max-height: 520px;
  overflow-y: auto;
  overflow-x: hidden;
}

.news-table {
  table-layout: fixed;
}

.hot-money-table {
  table-layout: fixed;
}

.hot-money-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(360px, .75fr);
  gap: 16px;
  align-items: start;
}

.hot-money-layout .panel {
  min-width: 0;
}

.hot-money-name {
  min-width: 0;
}

.hot-money-name strong {
  font-size: 16px;
  font-weight: 600;
}

.hot-money-name > span {
  display: block;
  margin-top: 4px;
  color: #86909c;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
}

.hot-money-name small {
  display: block;
  margin-top: 4px;
  color: var(--amber);
  font-size: 11px;
}

.hot-money-table th:nth-child(1),
.hot-money-table td:nth-child(1) {
  width: 7%;
}

.hot-money-table th:nth-child(2),
.hot-money-table td:nth-child(2) {
  width: 20%;
}

.hot-money-table th:nth-child(3),
.hot-money-table td:nth-child(3) {
  width: 10%;
}

.hot-money-table th:nth-child(4),
.hot-money-table td:nth-child(4),
.hot-money-table th:nth-child(5),
.hot-money-table td:nth-child(5),
.hot-money-table th:nth-child(6),
.hot-money-table td:nth-child(6) {
  width: 11%;
}

.hot-money-table th:nth-child(7),
.hot-money-table td:nth-child(7) {
  width: 22%;
}

.hot-money-table th:nth-child(8),
.hot-money-table td:nth-child(8) {
  width: 8%;
}

.main-flow-head-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  min-width: 0;
}

.main-flow-tabs {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #f6f9fd;
}

.main-flow-tabs button {
  border: 1px solid transparent;
  border-radius: 999px;
  padding: 5px 10px;
  background: transparent;
  color: var(--muted);
  font-size: 12px;
  line-height: 1;
  white-space: nowrap;
}

.main-flow-tabs button.active {
  border-color: var(--blue);
  background: #fff;
  color: var(--blue);
  box-shadow: 0 1px 4px rgba(16, 24, 40, .08);
}

.main-flow-table-wrap {
  max-height: 760px;
  overflow-y: auto;
  overflow-x: hidden;
}

.main-flow-table {
  table-layout: fixed;
}

.main-flow-table th:nth-child(1),
.main-flow-table td:nth-child(1) {
  width: 8%;
}

.main-flow-table th:nth-child(2),
.main-flow-table td:nth-child(2) {
  width: 21%;
}

#marketPanelMainFlow .main-flow-table .stock-name-with-star {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 2px;
  max-width: 100%;
}

#marketPanelMainFlow .main-flow-table .stock-name-with-star strong {
  margin-right: 2px;
  color: var(--ink);
}

@media (min-width: 761px) {
  #marketPanelMainFlow .main-flow-table td:nth-child(2) .stock-name-with-star strong {
    font-size: 16px;
    line-height: 1.25;
    color: var(--ink);
  }

  #marketPanelMainFlow .main-flow-table td:nth-child(3) {
    font-size: 16px;
    font-weight: 600;
  }
}

.main-flow-table th:nth-child(3),
.main-flow-table td:nth-child(3) {
  width: 11%;
}

.main-flow-table th:nth-child(4),
.main-flow-table td:nth-child(4) {
  width: 11%;
}

.main-flow-table th:nth-child(5),
.main-flow-table td:nth-child(5) {
  width: 19%;
}

.main-flow-table th:nth-child(6),
.main-flow-table td:nth-child(6) {
  width: 13%;
}

.main-flow-table th:nth-child(7),
.main-flow-table td:nth-child(7) {
  width: 17%;
}

.hot-fund-table-wrap {
  max-height: 760px;
  overflow-y: auto;
  overflow-x: hidden;
}

.hot-fund-table {
  table-layout: fixed;
}

.hot-fund-table th:nth-child(1),
.hot-fund-table td:nth-child(1) {
  width: 7%;
}

.hot-fund-table th:nth-child(2),
.hot-fund-table td:nth-child(2) {
  width: 20%;
}

.hot-fund-table th:nth-child(3),
.hot-fund-table td:nth-child(3) {
  width: 10%;
}

.hot-fund-table th:nth-child(4),
.hot-fund-table td:nth-child(4) {
  width: 10%;
}

.hot-fund-table th:nth-child(5),
.hot-fund-table td:nth-child(5) {
  width: 14%;
}

.hot-fund-table th:nth-child(6),
.hot-fund-table td:nth-child(6) {
  width: 14%;
}

.hot-fund-table th:nth-child(7),
.hot-fund-table td:nth-child(7) {
  width: 17%;
}

.hot-fund-table th:nth-child(8),
.hot-fund-table td:nth-child(8) {
  width: 8%;
}

.hot-fund-sector-cell {
  font-size: 12px;
  line-height: 1.35;
  color: var(--text-secondary, #667085);
}

.hot-fund-table .hot-fund-row {
  cursor: default;
}

.hot-fund-table .hot-fund-row:hover td {
  background: transparent;
}

.strength-ladder-panel-head {
  align-items: center;
  gap: 12px;
}

#marketPanelStrengthLadder,
.strength-ladder-panel {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
  box-sizing: border-box;
}

.strength-ladder-title-block {
  min-width: 0;
  flex: 1 1 auto;
}

.strength-ladder-title-block h2 {
  margin: 0;
}

.strength-ladder-desc {
  margin: 0;
  font-size: 12px;
  line-height: 1.45;
  max-width: 720px;
}

.strength-ladder-head-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
}

.strength-ladder-metric-tabs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  max-width: min(100%, 560px);
}

.strength-ladder-metric-tabs button {
  border: 1px solid #d0d5dd;
  background: #fff;
  color: #344054;
  border-radius: 999px;
  padding: 4px 10px;
  font-size: 12px;
  line-height: 1.4;
  cursor: pointer;
  white-space: nowrap;
}

.strength-ladder-metric-tabs button.active {
  border-color: #1570ef;
  background: #eff8ff;
  color: #175cd3;
  font-weight: 600;
}

.mobile-strength-ladder-metric-tabs {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 4px;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  overflow: hidden;
  padding: 8px 12px 10px;
  background: #fff;
}

.mobile-strength-ladder-metric-tabs::-webkit-scrollbar {
  display: none;
}

.mobile-strength-ladder-metric-tabs button {
  flex: 1 1 0;
  min-width: 0;
  min-height: 32px;
  padding: 5px 4px;
  border: 0;
  border-radius: 20px;
  background: #f2f3f5;
  color: #4e5969;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.4;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  cursor: pointer;
  touch-action: manipulation;
}

.mobile-strength-ladder-metric-tabs button.active {
  background: #165dff;
  color: #fff;
  font-weight: 500;
}

.strength-ladder-meta {
  font-size: 12px;
  color: var(--text-secondary, #667085);
  white-space: nowrap;
}

.strength-ladder-kind-tabs {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.04);
}

.strength-ladder-kind-tabs button {
  border: 0;
  background: transparent;
  color: var(--text-secondary, #667085);
  font-size: 12px;
  line-height: 1;
  padding: 7px 14px;
  border-radius: 999px;
  cursor: pointer;
}

.strength-ladder-kind-tabs button.active {
  background: #fff;
  color: var(--text-primary, #1d2129);
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
}

.strength-ladder-mount {
  min-height: 240px;
  margin-top: 12px;
  padding: 0 12px;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow: visible;
  box-sizing: border-box;
}

.strength-ladder-mount .module-empty-tip {
  max-width: 100%;
  overflow-wrap: anywhere;
}

.strength-ladder-scroll {
  display: block;
  overflow-x: auto;
  overflow-y: auto;
  overscroll-behavior-x: contain;
  overflow-anchor: none;
  max-height: min(72vh, 860px);
  width: 100%;
  max-width: 100%;
  min-width: 0;
  -webkit-overflow-scrolling: touch;
  border: 1px solid var(--border-color, #e4e7ec);
  border-radius: 0;
  background: #fff;
}

.strength-ladder-table {
  width: max-content;
  max-width: none;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 10px;
  --strength-ladder-head-height: 24px;
  --sl-head-bg: #f8fafc;
  --sl-rank-bg: #f8fafc;
  --sl-trace-bg: #fffbeb;
  --sl-sticky-bleed: 12px;
}

/* Web 端强度阶梯列表：默认最小宽度，并随屏幕自适应拉伸 */
@media (min-width: 761px) {
  .strength-ladder-table {
    width: 100%;
    min-width: 1080px;
  }
}

.strength-ladder-table th,
.strength-ladder-table td {
  border-right: 1px solid #eef2f6;
  border-bottom: 1px solid #eef2f6;
  vertical-align: middle;
}

/* Sticky header + selection trace: thead 两行固定，tbody 数据行始终在下层 */
.strength-ladder-corner,
.strength-ladder-date-head,
.strength-ladder-rank-label,
.strength-ladder-trace-label,
.strength-ladder-trace-cell {
  position: relative;
  overflow: visible;
}

.strength-ladder-corner::before,
.strength-ladder-date-head::before,
.strength-ladder-rank-label::before,
.strength-ladder-trace-label::before,
.strength-ladder-trace-cell::before {
  content: "";
  position: absolute;
  pointer-events: none;
  z-index: -1;
}

.strength-ladder-table thead tr:first-child th {
  position: sticky;
  top: 0;
  z-index: 50;
  background-color: var(--sl-head-bg);
  box-shadow: 0 1px 0 #eef2f6;
}

.strength-ladder-date-head::before {
  inset: -1px -1px 0 -1px;
  background-color: var(--sl-head-bg);
}

.strength-ladder-date-head {
  font-weight: 600;
  color: var(--text-secondary, #667085);
  min-width: 48px;
  max-width: 52px;
  padding: 5px 2px;
  font-size: 9px;
  text-align: center;
  white-space: nowrap;
}

.strength-ladder-corner {
  position: sticky;
  left: 0;
  top: 0;
  z-index: 60;
  background-color: var(--sl-head-bg);
  font-weight: 600;
  color: var(--text-secondary, #667085);
  min-width: 28px;
  width: 28px;
  padding: 4px 2px;
  font-size: 9px;
  text-align: center;
}

.strength-ladder-corner::before {
  inset: -1px 0 0 -1px;
  background-color: var(--sl-head-bg);
}

.strength-ladder-table thead .strength-ladder-selection-row th,
.strength-ladder-table thead .strength-ladder-selection-row td {
  position: sticky;
  top: var(--strength-ladder-head-height, 24px);
  z-index: 48;
  background-color: var(--sl-trace-bg);
}

.strength-ladder-table thead .strength-ladder-trace-cell::before {
  inset: -1px -1px calc(-1 * var(--sl-sticky-bleed)) -1px;
  background-color: var(--sl-trace-bg);
}

.strength-ladder-table thead .strength-ladder-trace-label {
  left: 0;
  z-index: 58;
}

.strength-ladder-table thead .strength-ladder-trace-label::before {
  inset: -1px calc(-1 * var(--sl-sticky-bleed)) calc(-1 * var(--sl-sticky-bleed)) -1px;
  background-color: var(--sl-trace-bg);
}

.strength-ladder-rank-label {
  position: sticky;
  left: 0;
  z-index: 25;
  background-color: var(--sl-rank-bg);
  font-weight: 600;
  color: var(--text-secondary, #667085);
  min-width: 28px;
  width: 28px;
  padding: 4px 2px;
  font-size: 9px;
  text-align: center;
}

.strength-ladder-rank-label::before {
  inset: -1px 0 -1px -1px;
  background-color: var(--sl-rank-bg);
}

.strength-ladder-rank-label.is-top10 { --sl-rank-bg: #fee4e2; background-color: #fee4e2; color: #b42318; }
.strength-ladder-rank-label.is-top30 { --sl-rank-bg: #fef0c7; background-color: #fef0c7; color: #b54708; }
.strength-ladder-rank-label.is-top60 { --sl-rank-bg: #eff8ff; background-color: #eff8ff; color: #175cd3; }
.strength-ladder-rank-label.is-top100 { --sl-rank-bg: #f8fbff; background-color: #f8fbff; color: #344054; }

.strength-ladder-selection-row {
  background: var(--sl-trace-bg);
}

.strength-ladder-trace-label {
  background-color: var(--sl-trace-bg);
  color: #b54708;
  font-weight: 700;
  min-width: 56px;
  max-width: 72px;
  padding: 4px 3px;
  font-size: 9px;
  text-align: left;
  white-space: nowrap;
  overflow: visible;
  text-overflow: ellipsis;
}

.strength-ladder-trace-cell {
  min-width: 48px;
  max-width: 52px;
  padding: 4px 2px;
  text-align: center;
  background-color: var(--sl-trace-bg);
}

.strength-ladder-trace-rank {
  display: inline-block;
  font-weight: 700;
  font-size: 10px;
  line-height: 1.2;
}

.strength-ladder-trace-cell.is-top10 .strength-ladder-trace-rank { color: #b42318; }
.strength-ladder-trace-cell.is-top30 .strength-ladder-trace-rank { color: #b54708; }
.strength-ladder-trace-cell.is-top60 .strength-ladder-trace-rank { color: #175cd3; }
.strength-ladder-trace-cell.is-top100 .strength-ladder-trace-rank { color: #344054; }
.strength-ladder-trace-cell.is-out {
  color: #98a2b3;
  font-size: 10px;
}

.strength-ladder-table tbody td.strength-ladder-cell {
  position: relative;
  z-index: 1;
}

/* 排名行矩阵：左侧排名列与表头「排名」角标分层固定 */
.strength-ladder-table--rank-rows thead .strength-ladder-corner {
  position: sticky;
  left: 0;
  top: 0;
  z-index: 56;
}

.strength-ladder-table--rank-rows thead .strength-ladder-date-head {
  position: sticky;
  top: 0;
  z-index: 52;
}

.strength-ladder-table--rank-rows tbody .strength-ladder-rank-label {
  position: sticky;
  left: 0;
  z-index: 20;
  background-color: var(--sl-rank-bg, #f8fafc);
}

.strength-ladder-table--rank-rows tbody .strength-ladder-rank-label::before {
  z-index: -1;
}

.strength-ladder-cell {
  min-width: 48px;
  max-width: 52px;
  height: 28px;
  padding: 0;
  background: #fff;
  text-align: center;
  vertical-align: middle;
}

.strength-ladder-cell.is-empty {
  background: #fcfcfd;
}

.strength-ladder-name-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  min-height: 28px;
  padding: 1px 2px;
  border: 0;
  border-radius: 0;
  background: transparent;
  cursor: pointer;
  color: var(--text-primary, #1d2129);
  font: inherit;
  text-align: center;
  box-sizing: border-box;
  position: relative;
  z-index: 0;
}

.strength-ladder-name {
  display: block;
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  line-height: 1.15;
  font-size: 9px;
  font-weight: 500;
  text-align: center;
}

.strength-ladder-name-btn.is-selected,
.strength-ladder-cell.is-selected .strength-ladder-name-btn {
  background: rgba(22, 93, 255, 0.12);
  outline: 2px solid #165dff;
  outline-offset: -2px;
  border-radius: 0;
}

.strength-ladder-cell.is-selected {
  background: rgba(22, 93, 255, 0.08);
}

.strength-ladder-name-btn:hover {
  background: rgba(22, 93, 255, 0.06);
  border-radius: 0;
}

@media (hover: none) {
  .strength-ladder-name-btn:not(.is-selected):hover {
    background: transparent;
  }

  .strength-ladder-name-btn.is-selected:hover,
  .strength-ladder-cell.is-selected .strength-ladder-name-btn:hover {
    background: rgba(22, 93, 255, 0.12);
  }
}

.mobile-discover-strength-ladder-toolbar {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-bottom: 0;
}


.mobile-strength-ladder-kind-tabs {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  margin: 8px 12px 0;
  padding: 3px;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.05);
  box-sizing: border-box;
}

.mobile-strength-ladder-kind-tabs button {
  position: relative;
  z-index: 1;
  border: 0;
  background: transparent;
  padding: 8px 0;
  font-size: 13px;
  color: var(--text-secondary, #667085);
}

.mobile-strength-ladder-kind-tabs button.active {
  color: var(--text-primary, #1d2129);
  font-weight: 600;
}

.mobile-strength-ladder-kind-tabs-thumb {
  position: absolute;
  top: 3px;
  left: 3px;
  height: calc(100% - 6px);
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
  transition: transform 0.2s ease, width 0.2s ease;
  pointer-events: none;
}

/* 强度阶梯：去掉点击/按压时的浅蓝色反馈，保留 tab 选中态白色/蓝色模块 */
.mobile-strength-ladder-kind-tabs button,
.mobile-strength-ladder-metric-tabs button,
.strength-ladder-name-btn {
  -webkit-tap-highlight-color: transparent;
}

.mobile-strength-ladder-kind-tabs button:active,
.mobile-strength-ladder-kind-tabs button:focus,
.mobile-strength-ladder-kind-tabs button:focus-visible,
.mobile-strength-ladder-kind-tabs button.active:active,
.mobile-strength-ladder-kind-tabs button.active:focus {
  background: transparent !important;
  outline: none;
  box-shadow: none;
}

.mobile-strength-ladder-metric-tabs button:active,
.mobile-strength-ladder-metric-tabs button:focus,
.mobile-strength-ladder-metric-tabs button:focus-visible {
  outline: none;
}

.mobile-strength-ladder-metric-tabs button:not(.active):active,
.mobile-strength-ladder-metric-tabs button:not(.active):focus {
  background: #f2f3f5 !important;
  color: #4e5969;
}

.mobile-strength-ladder-metric-tabs button.active:active,
.mobile-strength-ladder-metric-tabs button.active:focus {
  background: #165dff !important;
  color: #fff;
}

.strength-ladder-name-btn:not(.is-selected):active,
.strength-ladder-name-btn:not(.is-selected):focus,
.strength-ladder-name-btn:not(.is-selected):focus-visible {
  background: transparent !important;
  outline: none !important;
}

.strength-ladder-cell:not(.is-selected):active {
  background: transparent !important;
}

.strength-ladder-name-btn.is-selected:active,
.strength-ladder-cell.is-selected .strength-ladder-name-btn:active,
.strength-ladder-name-btn.is-selected:focus,
.strength-ladder-cell.is-selected .strength-ladder-name-btn:focus {
  background: rgba(22, 93, 255, 0.12) !important;
  outline: 2px solid #165dff !important;
  outline-offset: -2px;
}

.strength-ladder-cell.is-selected:active {
  background: rgba(22, 93, 255, 0.08) !important;
}

@media (max-width: 760px) {
  .strength-ladder-panel-head .strength-ladder-head-actions {
    width: 100%;
    justify-content: space-between;
  }

  .strength-ladder-panel-head .strength-ladder-kind-tabs.desktop-only,
  .strength-ladder-panel-head .strength-ladder-kind-tabs:not(.mobile-strength-ladder-kind-tabs) {
    display: none;
  }

  .mobile-discover-strength-ladder-toolbar {
    padding: 0;
  }

  .mobile-strength-ladder-kind-tabs {
    margin: 8px 12px 0;
  }

  .mobile-strength-ladder-metric-tabs {
    padding: 10px 12px 8px;
  }

  .strength-ladder-mount {
    margin-top: 0;
    padding: 0;
    overflow: visible;
  }

  .strength-ladder-scroll {
    max-height: calc(100vh - 220px);
    width: 100%;
    max-width: 100%;
    border-left: 0;
    border-right: 0;
    border-radius: 0;
    overscroll-behavior: contain;
  }

  #marketPanelStrengthLadder,
  .strength-ladder-panel {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: hidden;
  }

  .strength-ladder-mount {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: visible;
  }

  .strength-ladder-table {
    --strength-ladder-head-height: 26px;
    --sl-sticky-bleed: 6px;
  }

  .strength-ladder-date-head {
    min-width: 44px;
    max-width: 48px;
    font-size: 8px;
  }

  .strength-ladder-cell {
    min-width: 44px;
    max-width: 48px;
    height: 26px;
  }

  .strength-ladder-name-btn {
    min-height: 26px;
  }

  .strength-ladder-name {
    font-size: 8px;
  }

  .strength-ladder-corner,
  .strength-ladder-rank-label {
    min-width: 28px;
    width: 28px;
    padding: 4px 2px;
    font-size: 9px;
    box-sizing: border-box;
  }

  .strength-ladder-corner {
    font-size: 8px;
    letter-spacing: -0.2px;
  }

  .strength-ladder-trace-label {
    min-width: 40px;
    width: 40px;
    max-width: 96px;
    padding: 4px 3px;
    font-size: 8px;
    box-sizing: border-box;
  }

  .strength-ladder-table thead .strength-ladder-trace-label {
    left: 0;
  }
}

@media (min-width: 761px) {
  .mobile-discover-strength-ladder-toolbar {
    display: none;
  }
}

.retail-hold-panel-head {
  align-items: center;
}

.retail-hold-head-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  min-width: 0;
}

.retail-hold-tabs {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #f6f9fd;
}

.retail-hold-tabs button {
  border: 1px solid transparent;
  border-radius: 999px;
  padding: 5px 10px;
  background: transparent;
  color: var(--muted);
  font-size: 12px;
  line-height: 1;
  white-space: nowrap;
}

.retail-hold-tabs button.active {
  border-color: var(--blue);
  background: #fff;
  color: var(--blue);
  box-shadow: 0 1px 4px rgba(16, 24, 40, .08);
}

.retail-hold-table-wrap {
  max-height: 760px;
  overflow-y: auto;
  overflow-x: hidden;
}

.retail-hold-table {
  table-layout: fixed;
}

.retail-hold-table th:nth-child(1),
.retail-hold-table td:nth-child(1) {
  width: 7%;
}

.retail-hold-table th:nth-child(2),
.retail-hold-table td:nth-child(2) {
  width: 18%;
}

.retail-hold-table th:nth-child(3),
.retail-hold-table td:nth-child(3) {
  width: 10%;
}

.retail-hold-table th:nth-child(4),
.retail-hold-table td:nth-child(4) {
  width: 10%;
}

.retail-hold-table th:nth-child(5),
.retail-hold-table td:nth-child(5) {
  width: 14%;
}

.retail-hold-table th:nth-child(6),
.retail-hold-table td:nth-child(6) {
  width: 14%;
}

.retail-hold-table th:nth-child(7),
.retail-hold-table td:nth-child(7) {
  width: 14%;
}

.retail-hold-table th:nth-child(8),
.retail-hold-table td:nth-child(8) {
  width: 13%;
}

.retail-hold-table .retail-hold-row {
  cursor: pointer;
}

.retail-hold-table .retail-hold-row--sector {
  cursor: default;
}

.retail-hold-table th,
.retail-hold-table td {
  padding-top: 8px;
  padding-bottom: 8px;
}

.retail-hold-table td:nth-child(2) strong {
  line-height: 1.2;
}

.retail-hold-table td:nth-child(2) .stock-code-line {
  display: inline-flex;
  margin-top: 1px;
  font-size: 12px;
  color: var(--muted);
  line-height: 1.15;
}

.hot-money-identity {
  display: grid;
  gap: 5px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff8ef;
  margin-bottom: 14px;
}

.hot-money-identity strong {
  color: var(--amber);
  font-size: 18px;
}

.hot-money-identity span,
.hot-money-identity small {
  color: var(--muted);
  font-size: 12px;
}

.hot-money-holdings {
  margin-bottom: 16px;
}

.hot-money-holdings-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px 12px;
  margin-bottom: 8px;
}

.hot-money-holdings-head h4 {
  margin: 0;
  font-size: 15px;
  color: var(--ink);
}

.hot-money-holdings-head small {
  color: var(--muted);
  font-size: 12px;
}

.hot-money-holdings-note {
  margin: 0 0 10px;
  font-size: 12px;
}

.hot-money-detail-body .hot-money-holdings .trade-table-wrap {
  flex: none;
  max-height: 320px;
  overflow-y: auto;
  overflow-x: hidden;
}

.hot-money-shareholder-holdings {
  padding-bottom: 14px;
  border-bottom: 1px solid var(--line);
}

.hot-money-shareholder-table th:nth-child(1),
.hot-money-shareholder-table td:nth-child(1) {
  width: 20%;
}

.hot-money-shareholder-table th:nth-child(2),
.hot-money-shareholder-table td:nth-child(2) {
  width: 18%;
}

.hot-money-shareholder-table th:nth-child(3),
.hot-money-shareholder-table td:nth-child(3) {
  width: 18%;
}

.hot-money-shareholder-table th:nth-child(4),
.hot-money-shareholder-table td:nth-child(4),
.hot-money-shareholder-table th:nth-child(5),
.hot-money-shareholder-table td:nth-child(5) {
  width: 16%;
}

.hot-money-shareholder-table th:nth-child(6),
.hot-money-shareholder-table td:nth-child(6) {
  width: 12%;
}

.hot-money-holdings-table th:nth-child(1),
.hot-money-holdings-table td:nth-child(1) {
  width: 28%;
}

.hot-money-holdings-table th:nth-child(2),
.hot-money-holdings-table td:nth-child(2) {
  width: 18%;
}

.hot-money-holdings-table th:nth-child(3),
.hot-money-holdings-table td:nth-child(3),
.hot-money-holdings-table th:nth-child(4),
.hot-money-holdings-table td:nth-child(4) {
  width: 18%;
}

.hot-money-holdings-table th:nth-child(5),
.hot-money-holdings-table td:nth-child(5) {
  width: 18%;
}

.news-table th {
  position: sticky;
  top: 0;
  z-index: 3;
}

.news-table td:nth-child(1),
.news-table th:nth-child(1) {
  width: 9%;
}

.news-table td:nth-child(2),
.news-table th:nth-child(2) {
  width: 49%;
}

.news-table td:nth-child(3),
.news-table th:nth-child(3) {
  width: 18%;
}

.news-table td:nth-child(4),
.news-table th:nth-child(4) {
  width: 24%;
}

.news-table strong {
  display: block;
  line-height: 1.45;
}

.news-table small {
  display: -webkit-box;
  margin-top: 5px;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}

.tags span {
  display: inline-flex;
  margin: 0;
  padding: 3px 8px;
  border-radius: 999px;
  color: #755300;
  background: #fff6df;
  border: 1px solid #f2dfa9;
  font-size: 11px;
  font-weight: 700;
}

.tags.compact {
  margin-top: 0;
}

.signal-item {
  grid-template-columns: 74px minmax(0, 1fr);
}

.signal-score {
  min-height: 66px;
  border-radius: 8px;
  background: #eef3fb;
  color: var(--blue);
  display: grid;
  place-items: center;
  align-content: center;
  gap: 3px;
}

.signal-score strong {
  font-size: 20px;
}

.signal-score span {
  color: var(--blue);
  font-size: 12px;
  font-weight: 800;
  margin: 0;
  text-align: center;
}

.rank {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #eef3fb;
  color: var(--blue);
  font-weight: 800;
}

.sector-item h3 {
  font-size: 16px;
  margin-bottom: 4px;
}

.sector-item p,
small {
  display: block;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}

.metric {
  text-align: right;
}

.metric strong,
.up {
  color: var(--red);
}

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

.metric span {
  display: block;
  color: var(--muted);
  font-size: 12px;
  margin-top: 4px;
}

.metric small {
  margin-top: 3px;
}

.sector-stock-panel {
  padding: 12px 16px 14px 62px;
  background: #fbfcfe;
}

.sector-stock-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}

.sector-stock-head strong {
  font-size: 14px;
}

.sector-stock-head span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.sector-stock-rank {
  display: grid;
  gap: 1px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--line);
}

.sector-stock-row {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) auto;
  gap: 4px 8px;
  align-items: center;
  width: 100%;
  border: 0;
  border-radius: 0;
  background: #fff;
  padding: 10px 12px;
  text-align: left;
  font: inherit;
}

.sector-stock-row:hover {
  background: #f6f9fd;
}

.sector-stock-row > span {
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #eef3fb;
  color: var(--blue);
  font-size: 12px;
  font-weight: 800;
}

.sector-stock-row strong {
  min-width: 0;
  overflow-wrap: anywhere;
}

.sector-stock-row em {
  font-style: normal;
  font-weight: 800;
  font-size: 12px;
}

.sector-stock-row small {
  grid-column: 2 / 4;
  text-align: left;
}

.table-wrap {
  max-height: 760px;
  overflow-y: auto;
  overflow-x: hidden;
}

table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.stock-rank-table {
  table-layout: fixed;
}

.stock-rank-table th:nth-child(1),
.stock-rank-table td:nth-child(1) {
  width: 6%;
}

.stock-rank-table th:nth-child(2),
.stock-rank-table td:nth-child(2) {
  width: 13%;
}

.stock-rank-table th:nth-child(3),
.stock-rank-table td:nth-child(3) {
  width: 10%;
}

.stock-rank-table th:nth-child(4),
.stock-rank-table td:nth-child(4) {
  width: 9%;
}

.stock-rank-table th:nth-child(5),
.stock-rank-table td:nth-child(5) {
  width: 10%;
}

.stock-rank-table th:nth-child(6),
.stock-rank-table td:nth-child(6) {
  width: 7%;
}

.stock-rank-table th:nth-child(7),
.stock-rank-table td:nth-child(7) {
  width: 16%;
}

.stock-rank-table th:nth-child(8),
.stock-rank-table td:nth-child(8) {
  width: 10%;
}

.stock-rank-table th:nth-child(9),
.stock-rank-table td:nth-child(9) {
  width: 19%;
}

#marketPanelStocks .stock-rank-table th:nth-child(1),
#marketPanelStocks .stock-rank-table td:nth-child(1) {
  width: 5%;
}

#marketPanelStocks .stock-rank-table th:nth-child(2),
#marketPanelStocks .stock-rank-table td:nth-child(2) {
  width: 18%;
}

#marketPanelStocks .stock-rank-table th:nth-child(3),
#marketPanelStocks .stock-rank-table td:nth-child(3) {
  width: 8%;
}

#marketPanelStocks .stock-rank-table th:nth-child(4),
#marketPanelStocks .stock-rank-table td:nth-child(4) {
  width: 8%;
}

#marketPanelStocks .stock-rank-table th:nth-child(5),
#marketPanelStocks .stock-rank-table td:nth-child(5) {
  width: 9%;
}

#marketPanelStocks .stock-rank-table th:nth-child(6),
#marketPanelStocks .stock-rank-table td:nth-child(6) {
  width: 6%;
}

#marketPanelStocks .stock-rank-table th:nth-child(7),
#marketPanelStocks .stock-rank-table td:nth-child(7) {
  width: 11%;
}

#marketPanelStocks .stock-rank-table th:nth-child(8),
#marketPanelStocks .stock-rank-table td:nth-child(8) {
  width: 9%;
}

#marketPanelStocks .stock-rank-table th:nth-child(9),
#marketPanelStocks .stock-rank-table td:nth-child(9) {
  width: 12%;
}

#marketPanelStocks .stock-rank-table td:nth-child(2) {
  overflow-wrap: anywhere;
  white-space: normal;
}

#marketPanelStocks .stock-name-with-star {
  flex-wrap: wrap;
  align-items: flex-start;
  max-width: 100%;
}

#marketPanelStocks .stock-name-with-star strong {
  overflow: visible;
  text-overflow: unset;
  white-space: normal;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.35;
  color: var(--ink);
}

@media (min-width: 761px) {
  #marketPanelStocks .stock-rank-table .stock-price-cell,
  #marketPanelSectors .stock-rank-table .stock-price-cell {
    font-size: 16px;
    font-weight: 600;
    line-height: 1.25;
    color: var(--ink);
  }
}

#marketPanelStocks .stock-name-with-star .stock-code-line {
  color: var(--ink);
  font-weight: 600;
}

#marketPanelStocks .stock-rank-table th:nth-child(9),
#marketPanelStocks .stock-rank-table td:nth-child(9),
#marketPanelStocks .stock-position-cell {
  text-align: left;
}

#marketPanelStocks .stock-position-detail-btn {
  font-size: 11px;
  font-weight: 700;
  padding: 4px 8px;
  margin-left: 0;
}

#marketPanelStocks .stock-rank-table td:nth-child(7) .pill {
  font-size: 12px;
  padding: 3px 8px;
}

#marketPanelSectors .stock-rank-table th:nth-child(1),
#marketPanelSectors .stock-rank-table td:nth-child(1) {
  width: 6%;
}

#marketPanelSectors .stock-rank-table th:nth-child(2),
#marketPanelSectors .stock-rank-table td:nth-child(2) {
  width: 22%;
}

#marketPanelSectors .stock-rank-table th:nth-child(3),
#marketPanelSectors .stock-rank-table td:nth-child(3) {
  width: 9%;
}

#marketPanelSectors .stock-rank-table th:nth-child(4),
#marketPanelSectors .stock-rank-table td:nth-child(4) {
  width: 9%;
}

#marketPanelSectors .stock-rank-table th:nth-child(5),
#marketPanelSectors .stock-rank-table td:nth-child(5) {
  width: 7%;
}

#marketPanelSectors .stock-rank-table th:nth-child(6),
#marketPanelSectors .stock-rank-table td:nth-child(6) {
  width: 16%;
}

#marketPanelSectors .stock-rank-table th:nth-child(7),
#marketPanelSectors .stock-rank-table td:nth-child(7) {
  width: 10%;
}

#marketPanelSectors .stock-rank-table th:nth-child(8),
#marketPanelSectors .stock-rank-table td:nth-child(8) {
  width: 12%;
}

#marketPanelSectors .stock-rank-table td:nth-child(2) {
  overflow-wrap: anywhere;
  white-space: normal;
}

#marketPanelSectors .stock-name-with-star {
  flex-wrap: wrap;
  align-items: flex-start;
  max-width: 100%;
}

#marketPanelSectors .stock-name-with-star strong {
  overflow: visible;
  text-overflow: unset;
  white-space: normal;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.35;
  color: var(--ink);
}

#marketPanelSectors .stock-name-with-star .stock-code-line {
  color: var(--ink);
  font-weight: 600;
}

#marketPanelSectors .stock-position-cell {
  text-align: center;
}

#marketPanelSectors .stock-position-detail-btn {
  font-size: 11px;
  font-weight: 700;
  padding: 4px 8px;
}

#marketPanelSectors .stock-rank-table td:nth-child(6) small {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
  -webkit-line-clamp: 3;
}

#marketPanelSectors .stock-rank-table td:nth-child(8) strong {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
  -webkit-line-clamp: 5;
}

#marketPanelSectors .stock-rank-table td:nth-child(8) small {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
  -webkit-line-clamp: 2;
}

.stock-rank-table td:nth-child(7) small,
.stock-rank-table td:nth-child(9) strong,
.stock-rank-table td:nth-child(9) small,
.news-table small,
.hot-money-table td small,
.trade-detail-table td small {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.stock-rank-table td:nth-child(7) small,
.hot-money-table td small,
.trade-detail-table td small {
  -webkit-line-clamp: 3;
}

.stock-rank-table td:nth-child(9) strong {
  -webkit-line-clamp: 5;
}

.stock-rank-table td:nth-child(9) small,
.news-table small {
  -webkit-line-clamp: 2;
}

th, td {
  padding: 11px var(--list-x-padding);
  text-align: left;
  border-bottom: 1px solid var(--line);
  vertical-align: middle;
  font-size: 14px;
  overflow-wrap: anywhere;
  word-break: break-word;
  white-space: normal;
}

th {
  position: sticky;
  top: 0;
  z-index: 1;
  color: var(--muted);
  font-size: 12px;
  background: #f9fafb;
}

td span {
  display: block;
  color: var(--muted);
  font-size: 12px;
  margin-top: 3px;
  overflow-wrap: anywhere;
  white-space: normal;
}

td strong,
td small {
  display: block;
  max-width: 100%;
  overflow-wrap: anywhere;
  white-space: normal;
}

td small {
  margin-top: 4px;
}

.tags.compact {
  justify-content: flex-start;
}

.tags.compact .hot-money-stock-chip,
.tags.compact > span {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  white-space: nowrap;
}

.tags.compact .status-stock-exchange {
  flex-shrink: 0;
  margin-left: 0;
}

.change-cell strong {
  display: block;
  font-size: 15px;
}

.realtime-tag {
  width: max-content;
  padding: 2px 6px;
  border-radius: 999px;
  font-weight: 700;
}

.realtime-tag.is-live {
  color: #0f766e;
  background: #ccfbf1;
}

.realtime-tag.is-stale {
  color: #9a3412;
  background: #ffedd5;
}

.live-num-roll {
  display: inline-block;
  animation-duration: 380ms;
  animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
  animation-fill-mode: both;
  transform-origin: center center;
  will-change: transform, opacity;
}

.live-num-roll-up {
  animation-name: live-num-roll-up;
}

.live-num-roll-down {
  animation-name: live-num-roll-down;
}

.live-num-roll-flat {
  animation-name: live-num-roll-flat;
}

@keyframes live-num-roll-up {
  0% {
    transform: translateY(0.72em);
    opacity: 0.25;
  }
  100% {
    transform: translateY(0);
    opacity: 1;
  }
}

@keyframes live-num-roll-down {
  0% {
    transform: translateY(-0.72em);
    opacity: 0.25;
  }
  100% {
    transform: translateY(0);
    opacity: 1;
  }
}

@keyframes live-num-roll-flat {
  0% {
    opacity: 0.55;
  }
  100% {
    opacity: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .live-num-roll,
  .live-num-roll-up,
  .live-num-roll-down,
  .live-num-roll-flat {
    animation: none !important;
  }
}

.pill {
  display: inline-block;
  padding: 4px 8px;
  border-radius: 999px;
  background: #eef3fb;
  color: var(--blue);
  font-weight: 700;
  margin: 0 0 4px;
}

.empty-cell {
  vertical-align: middle;
}

footer {
  color: var(--muted);
  font-size: 12px;
  margin-top: 16px;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.site-footer {
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding-top: 0;
  padding-bottom: 4px;
  margin-bottom: 0;
}

.site-footer-disclaimer {
  width: 100%;
  margin: 0;
  text-align: center;
  font-size: 12px;
  line-height: 1.5;
  color: var(--muted);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 4px;
}

.site-footer-disclaimer .gzh-hover-wrap {
  display: inline-flex;
}

.site-icp-record {
  width: 100%;
  margin: 0;
  text-align: center;
  font-size: 11px;
  line-height: 1.4;
  color: #8b95a8;
}

.site-icp-record a {
  color: inherit;
  text-decoration: none;
}

.site-icp-record a:hover {
  color: var(--muted);
  text-decoration: underline;
}

.gzh-hover-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.gzh-hover-trigger {
  border: 0;
  background: transparent;
  color: #3559a8;
  font-size: 12px;
  cursor: pointer;
  padding: 0;
  text-decoration: underline;
}

.gzh-hover-card {
  position: absolute;
  left: 50%;
  bottom: calc(100% + 12px);
  transform: translateX(-50%) translateY(6px);
  width: 180px;
  padding: 8px;
  border-radius: 10px;
  border: 1px solid var(--line);
  background: #fff;
  box-shadow: 0 10px 28px rgba(16, 24, 40, .2);
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s ease, transform .2s ease;
  z-index: 6;
}

.gzh-hover-card img {
  width: 100%;
  display: block;
  border-radius: 8px;
}

.gzh-hover-card span {
  display: block;
  text-align: center;
  margin-top: 6px;
  color: var(--ink);
}

.mobile-gzh-modal-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  text-align: center;
}

.mobile-gzh-modal-body img {
  display: block;
  width: min(293px, 100%);
  max-width: 100%;
  height: auto;
}

.mobile-gzh-modal-title {
  margin: 0;
  color: #1d2129;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
  text-align: center;
}

.gzh-hover-wrap:hover .gzh-hover-card,
.gzh-hover-wrap:focus-within .gzh-hover-card {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

body.modal-open {
  overflow: hidden;
}

.modal[hidden] {
  display: none;
}

.modal {
  position: fixed;
  inset: 0;
  /* 须高于手机端固定顶栏（.topbar z-index:80），否则抽屉头部关闭按钮被挡住 */
  z-index: 120;
}

/* 板块股票排行 / 策略历史抽屉打开时，股票详情叠在列表抽屉之上 */
#sectorStockDrawer.modal,
#marketStockDrawer.modal,
#strategyHistoryDrawer.modal {
  z-index: 125;
}

#superAnalysisHistoryDrawer.modal {
  z-index: 140;
}

#detailModal.modal--over-sector-stock,
#detailModal.modal--over-strategy-history {
  z-index: 130;
}

/* AI 助手 / 超级复盘打开时，股票/板块详情抽屉叠在其上；关闭详情后原层仍保留 */
#detailModal.modal--over-super-analysis {
  z-index: 140;
}

#superReviewModal.modal {
  z-index: 125;
}

.modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(20, 23, 31, .42);
}

.modal-panel {
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: min(980px, 92vw);
  max-height: 100vh;
  max-height: 100dvh;
  background: #fff;
  box-shadow: -18px 0 42px rgba(16, 24, 40, .18);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
}

/* 比通用 .modal-panel 更高优先级，确保后台建议抽屉宽度生效 */
.modal-panel.admin-feedback-drawer-panel {
  width: min(640px, 92vw);
}

.admin-feedback-drawer-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.admin-feedback-clear-btn {
  padding: 6px 12px;
  font-size: 12px;
  min-height: 0;
  border: 1px solid rgba(197, 61, 19, 0.45);
  background: rgba(197, 61, 19, 0.08);
  color: #a92525;
  border-radius: 6px;
  cursor: pointer;
  font-weight: 600;
}

.admin-feedback-clear-btn:hover:not(:disabled) {
  background: rgba(197, 61, 19, 0.14);
  border-color: rgba(197, 61, 19, 0.6);
}

.admin-feedback-clear-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.admin-clear-confirm {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: grid;
  place-items: center;
  padding: 24px;
}

.admin-clear-confirm[hidden] {
  display: none;
}

.admin-clear-confirm-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.48);
}

.admin-clear-confirm-panel {
  position: relative;
  z-index: 1;
  width: min(430px, 94vw);
  display: grid;
  gap: 10px;
  padding: 20px;
  border: 1px solid #d8e1ee;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 24px 60px rgba(15, 23, 42, 0.24);
}

.admin-clear-confirm-eyebrow {
  color: #a92525;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.04em;
}

.admin-clear-confirm-panel h3 {
  margin: 0;
  color: var(--ink);
  font-size: 20px;
}

.admin-clear-confirm-panel p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.6;
}

.admin-clear-confirm-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 8px;
}

.admin-clear-confirm-actions .secondary {
  padding: 6px 12px;
  font-size: 12px;
  min-height: 0;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink);
  border-radius: 6px;
  cursor: pointer;
  font-weight: 600;
}

.admin-clear-confirm-actions .secondary:hover {
  border-color: var(--blue);
  color: var(--blue);
}

.modal-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  padding: 16px;
  border-bottom: 1px solid var(--line);
  flex-shrink: 0;
  background: #fff;
  z-index: 2;
}

.modal-head h2 {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 18px;
  font-weight: 800;
  line-height: 1.25;
}

.modal-head .eyebrow {
  margin: 0 0 2px;
  font-size: 11px;
}

.modal-head > button {
  padding: 6px 12px;
  font-size: 12px;
  min-height: 0;
}

.stock-title-score {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 4px 12px;
  border: 1px solid #f0c9c9;
  border-radius: 999px;
  background: #fff1f1;
  color: var(--red);
  font-size: 15px;
  font-weight: 900;
}

.stock-title-line {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  min-width: 0;
}

.stock-title-name,
.stock-title-code {
  min-width: 0;
}

.stock-title-code {
  color: #86909c;
  font-size: 14px;
  font-weight: 600;
}

#detailModal.detail-sheet-modal .detail-sheet-panel {
  grid-template-rows: auto minmax(0, 1fr) auto;
}

#detailModal.detail-sheet-modal .detail-sheet-head {
  display: grid;
  grid-template-columns: 32px 1fr 32px;
  align-items: center;
  gap: 8px;
  padding: 12px 20px;
  border-bottom: 1px solid #e5e6eb;
}

#detailModal.detail-sheet-modal .detail-sheet-head-center {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 0;
}

#detailModal.detail-sheet-modal .detail-sheet-head-center h2 {
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
  color: #1d2129;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

#detailModal.detail-sheet-modal .detail-title-score {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
  padding: 0 8px;
  min-height: 28px;
  border: 1px solid #fbaca3;
  border-radius: 20px;
  background: #ffece8;
  color: #f53f3f;
  white-space: nowrap;
}

#detailModal.detail-sheet-modal .detail-title-score-label {
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
}

#detailModal.detail-sheet-modal .detail-title-score strong {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
}

#detailModal.detail-sheet-modal .detail-sheet-head-spacer {
  width: 32px;
  height: 1px;
}

#detailModal.stock-detail-sheet-modal .detail-sheet-head {
  grid-template-columns: 1fr;
}

#detailModal.stock-detail-sheet-modal .detail-sheet-head-spacer,
#detailModal.stock-detail-sheet-modal .detail-sheet-icon-close {
  display: none !important;
}

#detailModal.stock-detail-sheet-modal .detail-sheet-head-center {
  justify-content: center;
  width: 100%;
  gap: 8px;
}

#detailModal.stock-detail-sheet-modal .detail-sheet-title-row {
  max-width: min(calc(100vw - 96px), 72vw);
}

#detailModal.stock-detail-sheet-modal .detail-sheet-title-row h2 {
  display: block;
  flex: 1 1 auto;
  min-width: 0;
  max-width: none;
  text-align: center;
}

#detailModal.stock-detail-sheet-modal .detail-title-score {
  flex: 0 0 auto;
}

#detailModal.stock-detail-sheet-modal .modal-body.stock-detail-body {
  padding: 0;
}

#detailModal.market-tech-breadth-sheet-modal .detail-sheet-head,
#detailModal.market-tech-strong-sheet-modal .detail-sheet-head,
#detailModal.market-tech-hot-sheet-modal .detail-sheet-head,
#detailModal.market-tech-elastic-sheet-modal .detail-sheet-head,
#detailModal.market-tech-turnover-sheet-modal .detail-sheet-head,
#detailModal.market-tech-action-sheet-modal .detail-sheet-head {
  grid-template-columns: 1fr;
}

#detailModal.market-tech-breadth-sheet-modal .detail-sheet-head-spacer,
#detailModal.market-tech-breadth-sheet-modal .detail-sheet-icon-close,
#detailModal.market-tech-breadth-sheet-modal .detail-title-score,
#detailModal.market-tech-strong-sheet-modal .detail-sheet-head-spacer,
#detailModal.market-tech-strong-sheet-modal .detail-sheet-icon-close,
#detailModal.market-tech-strong-sheet-modal .detail-title-score,
#detailModal.market-tech-hot-sheet-modal .detail-sheet-head-spacer,
#detailModal.market-tech-hot-sheet-modal .detail-sheet-icon-close,
#detailModal.market-tech-hot-sheet-modal .detail-title-score,
#detailModal.market-tech-elastic-sheet-modal .detail-sheet-head-spacer,
#detailModal.market-tech-elastic-sheet-modal .detail-sheet-icon-close,
#detailModal.market-tech-elastic-sheet-modal .detail-title-score,
#detailModal.market-tech-turnover-sheet-modal .detail-sheet-head-spacer,
#detailModal.market-tech-turnover-sheet-modal .detail-sheet-icon-close,
#detailModal.market-tech-turnover-sheet-modal .detail-title-score,
#detailModal.market-tech-action-sheet-modal .detail-sheet-head-spacer,
#detailModal.market-tech-action-sheet-modal .detail-sheet-icon-close,
#detailModal.market-tech-action-sheet-modal .detail-title-score {
  display: none !important;
}

#detailModal.market-tech-breadth-sheet-modal .detail-sheet-head-center,
#detailModal.market-tech-strong-sheet-modal .detail-sheet-head-center,
#detailModal.market-tech-hot-sheet-modal .detail-sheet-head-center,
#detailModal.market-tech-elastic-sheet-modal .detail-sheet-head-center,
#detailModal.market-tech-turnover-sheet-modal .detail-sheet-head-center,
#detailModal.market-tech-action-sheet-modal .detail-sheet-head-center {
  justify-content: center;
  width: 100%;
}

#detailModal.news-detail-sheet-modal .detail-sheet-head,
#detailModal.hot-money-detail-sheet-modal .detail-sheet-head {
  grid-template-columns: 1fr;
}

#detailModal.news-detail-sheet-modal .detail-sheet-head-spacer,
#detailModal.news-detail-sheet-modal .detail-sheet-icon-close,
#detailModal.news-detail-sheet-modal .detail-title-score,
#detailModal.hot-money-detail-sheet-modal .detail-sheet-head-spacer,
#detailModal.hot-money-detail-sheet-modal .detail-sheet-icon-close,
#detailModal.hot-money-detail-sheet-modal .detail-title-score {
  display: none !important;
}

#detailModal.news-detail-sheet-modal .detail-sheet-head-center,
#detailModal.hot-money-detail-sheet-modal .detail-sheet-head-center {
  justify-content: center;
  width: 100%;
}

#detailModal.sector-detail-sheet-modal .detail-sheet-head {
  grid-template-columns: 1fr;
  padding-left: 12px;
  padding-right: 12px;
}

#detailModal.sector-detail-sheet-modal .modal-body.sector-detail-body {
  padding: 0;
}

#detailModal.sector-detail-sheet-modal .detail-sheet-head-spacer,
#detailModal.sector-detail-sheet-modal .detail-sheet-icon-close {
  display: none !important;
}

#detailModal.sector-detail-sheet-modal .detail-sheet-head-center {
  justify-content: center;
  width: 100%;
  gap: 8px;
}

#detailModal.sector-detail-sheet-modal .detail-sheet-title-row {
  max-width: min(calc(100vw - 96px), 72vw);
}

#detailModal.sector-detail-sheet-modal .detail-sheet-title-row h2 {
  display: block;
  flex: 1 1 auto;
  min-width: 0;
  max-width: none;
  text-align: center;
}

#detailModal.sector-detail-sheet-modal .sector-detail-cninfo {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  padding: 0;
}

#detailModal.sector-detail-sheet-modal .sector-detail-tabs {
  display: flex;
  flex-wrap: nowrap;
  width: 100%;
  box-sizing: border-box;
  gap: 4px;
  padding: 12px 12px 8px;
  margin: 0;
  scroll-padding-inline: 0;
  overflow-x: hidden;
  overflow-y: hidden;
  -webkit-tap-highlight-color: transparent;
}

#detailModal.sector-detail-sheet-modal .sector-detail-tabs button {
  flex: 1 1 0;
  min-width: 0;
  max-width: none;
  padding: 5px 4px;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-tap-highlight-color: transparent;
}

#detailModal.sector-detail-sheet-modal .sector-detail-panels {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  box-sizing: border-box;
  padding: 0;
  overflow: hidden;
}

#detailModal.sector-detail-sheet-modal .sector-detail-panel {
  width: 100%;
  box-sizing: border-box;
  padding: 0 12px 12px;
}

#detailModal.sector-detail-sheet-modal .sector-detail-tabs button.active,
#detailModal.sector-detail-sheet-modal .sector-detail-tabs button.active:active,
#detailModal.sector-detail-sheet-modal .sector-detail-tabs button.active:focus,
#detailModal.sector-detail-sheet-modal .sector-detail-tabs button.active:focus-visible {
  background: #165dff;
  color: #fff;
  font-weight: 500;
}

#detailModal.sector-detail-sheet-modal .sector-analysis-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0;
  padding: 12px;
  border: 1px solid #ffcf8b;
  border-radius: 8px;
  background: linear-gradient(90deg, #ffeed4 0%, #ffe4ba 100%);
  box-sizing: border-box;
}

.sector-rps-rank-section {
  margin-inline: 12px;
  padding: 14px;
  border: 1px solid var(--line, #e5e6eb);
  border-radius: 12px;
  background: linear-gradient(180deg, #fff 0%, #fafbfc 100%);
  box-sizing: border-box;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
}

.sector-rps-rank-head {
  display: flex;
  flex-direction: column;
  gap: 3px;
  margin-bottom: 12px;
}

.sector-rps-rank-head strong {
  font-size: 15px;
  font-weight: 600;
  color: #1d2129;
  letter-spacing: 0.01em;
}

.sector-rps-rank-head small {
  font-size: 12px;
  color: #86909c;
}

.sector-rps-rank-body {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.sector-rps-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.sector-rps-metric {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
  padding: 10px 12px;
  border: 1px solid #eef0f3;
  border-radius: 10px;
  background: #fff;
}

.sector-rps-metric.is-primary {
  border-color: #dbeafe;
  background: linear-gradient(180deg, #f8fbff 0%, #eef4ff 100%);
}

.sector-rps-metric.is-primary strong {
  color: #165dff;
}

.sector-rps-metric.is-up strong {
  color: #f53f3f;
}

.sector-rps-metric.is-down strong {
  color: #00b42a;
}

.sector-rps-metric span {
  font-size: 11px;
  color: #86909c;
}

.sector-rps-metric strong {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.2;
  color: #1d2129;
}

.sector-rps-metric small {
  font-size: 11px;
  line-height: 1.35;
  color: #a9aeb8;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sector-rps-trend-line {
  margin: 0;
  font-size: 12px;
  line-height: 1.5;
  color: #4e5969;
}

.sector-rps-chart-card {
  --rps-chart-accent: #165dff;
  color: var(--rps-chart-accent);
  padding: 8px 10px 6px;
  border: 1px solid #eef0f3;
  border-radius: 10px;
  background:
    radial-gradient(circle at 100% 0%, rgba(22, 93, 255, 0.06), transparent 42%),
    linear-gradient(180deg, #fff 0%, #f7f9fc 100%);
}

.sector-rps-chart-card.is-up {
  --rps-chart-accent: #f53f3f;
  background:
    radial-gradient(circle at 100% 0%, rgba(245, 63, 63, 0.08), transparent 42%),
    linear-gradient(180deg, #fff 0%, #fff7f7 100%);
}

.sector-rps-chart-card.is-down {
  --rps-chart-accent: #00b42a;
  background:
    radial-gradient(circle at 100% 0%, rgba(0, 180, 42, 0.08), transparent 42%),
    linear-gradient(180deg, #fff 0%, #f6fff8 100%);
}

.sector-rps-chart-card.is-flat {
  --rps-chart-accent: #4e5969;
}

.sector-rps-chart-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 4px;
}

.sector-rps-chart-head strong {
  font-size: 12px;
  font-weight: 600;
  color: #1d2129;
}

.sector-rps-chart-range {
  font-size: 11px;
  color: #86909c;
}

.sector-rps-chart-canvas {
  position: relative;
  width: 100%;
  overflow: hidden;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.72);
}

.sector-rps-sparkline {
  display: block;
  width: 100%;
  height: auto;
}

.sector-rps-grid-line {
  stroke: #e8ebf0;
  stroke-width: 1;
}

.sector-rps-sparkline-area {
  pointer-events: none;
}

.sector-rps-sparkline-line {
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  filter: drop-shadow(0 1px 2px rgba(22, 93, 255, 0.12));
}

.sector-rps-chart-card.is-up .sector-rps-sparkline-line {
  filter: drop-shadow(0 1px 2px rgba(245, 63, 63, 0.14));
}

.sector-rps-sparkline-dot {
  stroke: #fff;
  stroke-width: 2;
}

.sector-rps-sparkline-dot.is-current {
  fill: var(--rps-chart-accent);
}

.sector-rps-sparkline-dot.is-best {
  fill: #ffb020;
}

.sector-rps-axis-label {
  font-size: 10px;
  fill: #a9aeb8;
  font-weight: 500;
}

.sector-rps-axis-date {
  font-size: 9px;
  fill: #86909c;
}

.sector-rps-chart-legend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
  margin-top: 6px;
}

.sector-rps-legend-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  color: #4e5969;
}

.sector-rps-legend-item.is-muted {
  margin-left: auto;
  color: #a9aeb8;
}

.sector-rps-legend-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: var(--rps-chart-accent);
  box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.95);
}

.sector-rps-legend-dot.is-best {
  background: #ffb020;
}

.sector-rps-chart-empty {
  padding: 18px 14px;
  border: 1px dashed #e5e6eb;
  border-radius: 10px;
  font-size: 12px;
  line-height: 1.5;
  color: #86909c;
  text-align: center;
  background: #fafbfc;
}

.sector-rps-table-shell {
  border: 1px solid #eef0f3;
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
}

.sector-rps-table-head {
  padding: 10px 12px;
  border-bottom: 1px solid #f2f3f5;
  font-size: 12px;
  font-weight: 600;
  color: #4e5969;
  background: #fafbfc;
}

.sector-rps-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.sector-rps-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}

.sector-rps-table th,
.sector-rps-table td {
  padding: 8px 12px;
  border-bottom: 1px solid #f2f3f5;
  text-align: left;
  white-space: nowrap;
}

.sector-rps-table tbody tr:last-child td {
  border-bottom: 0;
}

.sector-rps-table tbody tr:hover td {
  background: #fafbfc;
}

.sector-rps-table th {
  color: #86909c;
  font-weight: 500;
  background: #fcfcfd;
}

.sector-rps-table tr.is-outside td {
  color: #c9cdd4;
}

.sector-rps-date {
  font-variant-numeric: tabular-nums;
  color: #4e5969;
}

.sector-rps-score {
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: #1d2129;
}

.sector-rps-change {
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.sector-rps-rank-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.sector-rps-rank-badge.is-top {
  color: #f53f3f;
  background: #ffece8;
}

.sector-rps-rank-badge.is-high {
  color: #165dff;
  background: #e8f3ff;
}

.sector-rps-rank-badge.is-mid {
  color: #4e5969;
  background: #f2f3f5;
}

.sector-rps-rank-badge.is-out {
  color: #a9aeb8;
  background: #f7f8fa;
  font-weight: 500;
}

.sector-rps-delta-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.sector-rps-delta-pill.up {
  color: #f53f3f;
  background: #ffece8;
}

.sector-rps-delta-pill.down {
  color: #00b42a;
  background: #e8ffea;
}

.sector-rps-delta-pill.flat {
  color: #c9cdd4;
  background: #f7f8fa;
  font-weight: 500;
}

.sector-rps-footnote {
  margin: 0;
  font-size: 11px;
  line-height: 1.45;
}

#detailModal.detail-sheet-modal .sector-rps-rank-section {
  margin-inline: 0;
}

#detailModal.sector-detail-sheet-modal .sector-detail-basic-panel > .sector-rps-rank-section,
.sector-detail-body > .sector-rps-rank-section,
.sector-detail-basic-panel > .sector-rps-rank-section {
  margin-inline: 0;
}

#detailModal.sector-detail-sheet-modal .sector-detail-basic-panel > .sector-rps-rank-section {
  padding: 12px 8px;
}

@media (max-width: 760px) {
  .sector-rps-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sector-rps-legend-item.is-muted {
    margin-left: 0;
    width: 100%;
  }
}

.market-outlook-card {
  margin-inline: 12px;
  padding: 12px;
  border: 1px solid var(--line, #e5e6eb);
  border-radius: 8px;
  background: var(--panel, #fff);
  box-sizing: border-box;
}

.market-outlook-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 10px;
}

.market-outlook-head strong {
  display: block;
  font-size: 14px;
  font-weight: 600;
  color: #1d2129;
}

.market-outlook-head small {
  display: block;
  margin-top: 2px;
  font-size: 12px;
  color: #86909c;
}

.market-outlook-hero {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}

.market-outlook-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 72px;
  padding: 8px 18px;
  border-radius: 8px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.04em;
  border: 1px solid transparent;
  box-shadow: 0 2px 8px rgba(29, 33, 41, 0.08);
}

.market-outlook-badge.is-bullish {
  color: #fff;
  background: #f53f3f;
  border-color: #e83535;
  box-shadow: 0 2px 10px rgba(245, 63, 63, 0.28);
}

.market-outlook-badge.is-bearish {
  color: #fff;
  background: #00b42a;
  border-color: #009a29;
  box-shadow: 0 2px 10px rgba(0, 180, 42, 0.24);
}

.market-outlook-badge.is-neutral {
  color: #1d2129;
  background: #f2f3f5;
  border-color: #c9cdd4;
  box-shadow: 0 2px 8px rgba(29, 33, 41, 0.06);
}

.market-outlook-confidence {
  font-size: 12px;
  color: #86909c;
}

.market-outlook-summary {
  margin: 0 0 10px;
  font-size: 13px;
  line-height: 1.55;
  color: #1d2129;
}

.market-outlook-factors {
  list-style: none;
  margin: 0 0 10px;
  padding: 0;
  display: grid;
  gap: 8px;
}

.market-outlook-factor {
  padding: 8px 10px;
  border-radius: 6px;
  background: #f7f8fa;
  border-left: 3px solid #c9cdd4;
}

.market-outlook-factor.is-bullish {
  border-left-color: #f53f3f;
}

.market-outlook-factor.is-bearish {
  border-left-color: #00b42a;
}

.market-outlook-factor-title {
  display: block;
  font-size: 12px;
  font-weight: 600;
  color: #1d2129;
  margin-bottom: 2px;
}

.market-outlook-factor p {
  margin: 0;
  font-size: 12px;
  line-height: 1.45;
  color: #4e5969;
}

.market-outlook-disclaimer {
  margin: 0;
  font-size: 11px;
  line-height: 1.45;
}

#detailModal.sector-detail-sheet-modal .sector-detail-basic-panel > .market-outlook-card--detail,
.stock-detail-basic-panel > .market-outlook-card--detail {
  margin-inline: 0;
}

#detailModal.detail-sheet-modal .market-outlook-card {
  margin-inline: 0;
}

.stock-detail-body > .market-outlook-card--detail,
.stock-detail-basic-panel > .market-outlook-card--detail,
.sector-detail-body > .market-outlook-card--detail,
.sector-detail-basic-panel > .market-outlook-card--detail {
  margin: 0 0 12px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.stock-detail-body > .market-outlook-card--detail + .stock-ai-analysis {
  margin-top: 0;
}

.sector-detail-basic-panel > .sector-analysis-card + .market-outlook-card--detail,
.stock-detail-basic-panel > .detail-metric-strip + .detail-trend-section {
  margin-top: 8px;
}

.stock-detail-body > .stock-cninfo-hero + .market-outlook-card--detail,
.sector-detail-body .analysis-list + .market-outlook-card--detail {
  margin-top: 16px;
}

.stock-detail-body > .market-outlook-card--detail .market-outlook-head,
.stock-detail-basic-panel > .market-outlook-card--detail .market-outlook-head,
.sector-detail-body > .market-outlook-card--detail .market-outlook-head,
.sector-detail-basic-panel > .market-outlook-card--detail .market-outlook-head {
  margin-bottom: 8px;
}

.stock-detail-body > .market-outlook-card--detail .market-outlook-mount,
.stock-detail-basic-panel > .market-outlook-card--detail .market-outlook-mount,
.sector-detail-body > .market-outlook-card--detail .market-outlook-mount,
.sector-detail-basic-panel > .market-outlook-card--detail .market-outlook-mount {
  padding: 0;
}

.stock-detail-body > .market-outlook-card--detail .market-outlook-hero,
.stock-detail-basic-panel > .market-outlook-card--detail .market-outlook-hero,
.sector-detail-body > .market-outlook-card--detail .market-outlook-hero,
.sector-detail-basic-panel > .market-outlook-card--detail .market-outlook-hero {
  margin-bottom: 6px;
}

.stock-detail-body > .market-outlook-card--detail .market-outlook-summary,
.stock-detail-basic-panel > .market-outlook-card--detail .market-outlook-summary,
.sector-detail-body > .market-outlook-card--detail .market-outlook-summary,
.sector-detail-basic-panel > .market-outlook-card--detail .market-outlook-summary {
  margin-bottom: 8px;
}

.stock-detail-body > .market-outlook-card--detail .market-outlook-disclaimer,
.stock-detail-basic-panel > .market-outlook-card--detail .market-outlook-disclaimer,
.sector-detail-body > .market-outlook-card--detail .market-outlook-disclaimer,
.sector-detail-basic-panel > .market-outlook-card--detail .market-outlook-disclaimer {
  margin-top: 8px;
}

.stock-detail-body .market-outlook-factor-grid,
.stock-detail-basic-panel .market-outlook-factor-grid,
.sector-detail-body .market-outlook-factor-grid,
.sector-detail-basic-panel .market-outlook-factor-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4px;
  margin: 0;
  padding: 0;
}

.stock-detail-body .market-outlook-metric-cell,
.stock-detail-basic-panel .market-outlook-metric-cell,
.sector-detail-body .market-outlook-metric-cell,
.sector-detail-basic-panel .market-outlook-metric-cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 4px;
  min-width: 0;
  padding: 8px 6px;
  text-align: center;
  line-height: 1.4;
  background: #fff;
  border: 1px solid #f2f3f5;
  border-radius: 6px;
  box-sizing: border-box;
}

.stock-detail-body .market-outlook-metric-cell strong,
.stock-detail-basic-panel .market-outlook-metric-cell strong,
.sector-detail-body .market-outlook-metric-cell strong,
.sector-detail-basic-panel .market-outlook-metric-cell strong {
  display: block;
  width: 100%;
  font-size: 13px;
  font-weight: 600;
  color: #1d2129;
}

.stock-detail-body .market-outlook-metric-cell strong.is-bullish,
.stock-detail-basic-panel .market-outlook-metric-cell strong.is-bullish,
.sector-detail-body .market-outlook-metric-cell strong.is-bullish,
.sector-detail-basic-panel .market-outlook-metric-cell strong.is-bullish {
  color: #f53f3f;
}

.stock-detail-body .market-outlook-metric-cell strong.is-bearish,
.stock-detail-basic-panel .market-outlook-metric-cell strong.is-bearish,
.sector-detail-body .market-outlook-metric-cell strong.is-bearish,
.sector-detail-basic-panel .market-outlook-metric-cell strong.is-bearish {
  color: #00b42a;
}

.stock-detail-body .market-outlook-metric-cell strong.is-neutral,
.stock-detail-basic-panel .market-outlook-metric-cell strong.is-neutral,
.sector-detail-body .market-outlook-metric-cell strong.is-neutral,
.sector-detail-basic-panel .market-outlook-metric-cell strong.is-neutral {
  color: #4e5969;
}

.stock-detail-body .market-outlook-metric-cell small,
.stock-detail-basic-panel .market-outlook-metric-cell small,
.sector-detail-body .market-outlook-metric-cell small,
.sector-detail-basic-panel .market-outlook-metric-cell small {
  display: -webkit-box;
  width: 100%;
  font-size: 11px;
  line-height: 1.35;
  color: #86909c;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

@media (max-width: 760px) {
  .market-outlook-head strong {
    font-size: 16px;
  }

  .stock-detail-basic-panel .market-outlook-factor-grid,
  .sector-detail-basic-panel .market-outlook-factor-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 4px;
  }
}

#detailModal.sector-detail-sheet-modal .sector-analysis-card-head {
  display: flex;
  align-items: center;
  gap: 4px;
  margin: 0;
  padding: 0;
}

#detailModal.sector-detail-sheet-modal .sector-analysis-card-head strong {
  font-size: 14px;
  font-weight: 500;
  color: #1d2129;
}

#detailModal.sector-detail-sheet-modal .sector-analysis-card-icon {
  display: block;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  object-fit: contain;
}

#detailModal.sector-detail-sheet-modal .sector-analysis-card-body,
#detailModal.sector-detail-sheet-modal .sector-analysis-card-body .analysis-list {
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

#detailModal.sector-detail-sheet-modal .sector-analysis-card-body .analysis-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

#detailModal.sector-detail-sheet-modal .sector-analysis-card-body .analysis-list p,
#detailModal.sector-detail-sheet-modal .sector-analysis-empty {
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
  color: #4e5969;
  text-align: justify;
}

#detailModal.sector-detail-sheet-modal .sector-detail-basic-panel .detail-metric-strip {
  margin-top: 0;
  padding-left: 0;
  padding-right: 0;
}

#detailModal.sector-detail-sheet-modal .sector-detail-panel:has(.sector-detail-basic-panel):not([hidden]) {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  justify-content: flex-start;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

#detailModal.sector-detail-sheet-modal .sector-detail-basic-panel {
  display: flex;
  flex-direction: column;
  flex: 0 0 auto;
  gap: 8px;
}

#detailModal.sector-detail-sheet-modal .sector-detail-basic-panel > .detail-metric-strip,
#detailModal.sector-detail-sheet-modal .sector-detail-basic-panel > .sector-analysis-card {
  flex: 0 0 auto;
}

#detailModal.sector-detail-sheet-modal .sector-detail-basic-panel .detail-trend-section,
#detailModal.sector-detail-sheet-modal .sector-detail-trend {
  flex: 0 0 auto;
  padding: 0;
  background: transparent;
}

#detailModal.sector-detail-sheet-modal .sector-detail-trend {
  display: flex;
  flex-direction: column;
  min-height: 0;
  gap: 8px;
}

#detailModal.sector-detail-sheet-modal .sector-detail-trend .detail-section-head {
  flex: 0 0 auto;
}

#detailModal.sector-detail-sheet-modal .sector-chart-mount {
  flex: 0 0 auto;
  height: 150px;
  min-height: 150px;
  border: 1px solid #f2f3f5;
  border-radius: 8px;
  background: #f7f8fa;
  overflow: hidden;
}

#detailModal.sector-detail-sheet-modal .sector-chart-mount-placeholder {
  min-height: 150px;
}

#detailModal.sector-detail-sheet-modal .sector-detail-panel:not([hidden]):not(:has(.sector-detail-basic-panel)) {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

#detailModal.stock-detail-sheet-modal .stock-detail-tabs {
  padding: 12px 12px;
  margin: 0;
  scroll-padding-inline: 12px;
  box-sizing: border-box;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
}

#detailModal.stock-detail-sheet-modal .stock-detail-panel:has(.stock-detail-basic-panel),
#detailModal.stock-detail-sheet-modal .stock-detail-panel:not(:has(.stock-detail-basic-panel)) {
  padding: 0 12px 12px;
  box-sizing: border-box;
}

#detailModal.stock-detail-sheet-modal .stock-detail-basic-panel .detail-metric-strip {
  margin-top: 0;
}

#detailModal.stock-detail-sheet-modal .detail-metric-cell strong.is-stock-price,
.stock-detail-body .detail-summary.compact-summary .detail-summary-price-cell .is-stock-price,
.detail-metric-cell--price .detail-metric-price-stack .is-stock-price,
.detail-summary-price-cell .is-stock-price {
  font-size: 32px;
  font-weight: 700;
  line-height: 1;
}

#detailModal.stock-detail-sheet-modal .stock-detail-basic-panel .detail-trend-section,
#detailModal.stock-detail-sheet-modal .stock-detail-trend {
  flex: 0 0 auto;
  padding: 0;
  background: transparent;
  border-radius: 0;
  gap: 2px;
}

#detailModal.stock-detail-sheet-modal .stock-detail-trend .detail-section-head.stock-detail-section-head {
  margin: 0;
  padding: 0;
}

#detailModal.stock-detail-sheet-modal .stock-detail-trend .stock-chart-mount {
  margin-inline: 0;
  width: 100%;
  height: auto;
  min-height: 0;
  aspect-ratio: 960 / 640;
  border: 0;
  border-radius: 0;
  background: transparent;
  overflow: visible;
}

#detailModal.stock-detail-sheet-modal .stock-detail-trend .stock-chart-mount .cninfo-chart-body {
  overflow: visible;
}

#detailModal.stock-detail-sheet-modal .stock-detail-trend .cninfo-intraday-svg,
#detailModal.stock-detail-sheet-modal .stock-detail-trend .cninfo-history-svg {
  overflow: visible;
}

#detailModal.stock-detail-sheet-modal .stock-detail-trend .cninfo-intraday-svg .pct-axis-label,
#detailModal:not(.detail-sheet-modal) .stock-detail-body .stock-detail-trend .cninfo-intraday-svg .pct-axis-label {
  font-size: 17px;
  font-weight: 700;
}

#detailModal.stock-detail-sheet-modal .stock-detail-trend .cninfo-history-svg .price-label,
#detailModal.stock-detail-sheet-modal .stock-detail-trend .cninfo-history-svg .volume-label,
#detailModal.stock-detail-sheet-modal .stock-detail-trend .cninfo-history-svg .history-price-axis-label,
#detailModal:not(.detail-sheet-modal) .stock-detail-body .stock-detail-trend .cninfo-history-svg .price-label,
#detailModal:not(.detail-sheet-modal) .stock-detail-body .stock-detail-trend .cninfo-history-svg .volume-label,
#detailModal:not(.detail-sheet-modal) .stock-detail-body .stock-detail-trend .cninfo-history-svg .history-price-axis-label {
  font-size: 17px;
  font-weight: 700;
}

#detailModal.stock-detail-sheet-modal .stock-detail-trend .stock-chart-mount .stock-chart-mode,
#detailModal.stock-detail-sheet-modal .stock-detail-trend .stock-chart-mount .cninfo-market-chart,
#detailModal.stock-detail-sheet-modal .stock-detail-trend .stock-chart-mount .cninfo-history-wrap,
#detailModal.stock-detail-sheet-modal .stock-detail-trend .stock-chart-mount .cninfo-history-wrap [data-cninfo-history-mount],
#detailModal.stock-detail-sheet-modal .stock-detail-trend .stock-chart-mount .cninfo-chart-body,
#detailModal.stock-detail-sheet-modal .stock-detail-trend .stock-chart-mount .cninfo-intraday-chart,
#detailModal.stock-detail-sheet-modal .stock-detail-trend .stock-chart-mount .cninfo-history-chart {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  height: 100%;
}

#detailModal.stock-detail-sheet-modal .stock-detail-trend .cninfo-intraday-svg .price-line {
  stroke-width: 3.2;
}

#detailModal.stock-detail-sheet-modal .stock-detail-trend .stock-chart-mount-placeholder,
#detailModal.stock-detail-sheet-modal .stock-detail-trend .stock-detail-chart-section-loading {
  width: 100%;
  aspect-ratio: 960 / 640;
  min-height: 0;
  padding-inline: 12px;
  border: 0;
  border-radius: 0;
  background: transparent;
}

#detailModal.stock-detail-sheet-modal .stock-management-mobile > .stock-cninfo-mobile-section {
  padding: 8px 0;
}

#detailModal.detail-sheet-modal .detail-sheet-icon-close {
  justify-self: end;
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: #4e5969;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
}

.detail-copy-to-chat-btn {
  flex: 0 0 auto;
  display: inline-grid;
  place-items: center;
  width: 28px;
  height: 28px;
  padding: 0;
  border: 1px solid #e5e6eb;
  border-radius: 6px;
  background: #fff;
  cursor: pointer;
  color: #4e5969;
}

.detail-sheet-title-row {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  max-width: 100%;
}

.detail-sheet-title-row h2 {
  flex: 0 1 auto;
  min-width: 0;
}

.detail-copy-to-chat-btn:hover {
  background: #f2f3f5;
  border-color: #c9cdd4;
}

.detail-copy-to-chat-btn img {
  display: block;
  width: 16px;
  height: 16px;
}

.detail-copy-to-chat-btn[hidden] {
  display: none !important;
}

#detailModal.detail-sheet-modal .detail-sheet-eyebrow {
  display: none;
}

#detailModal.detail-sheet-modal .detail-sheet-footer {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  padding: 12px 12px 16px;
  border-top: 1px solid #e5e6eb;
  background: #fff;
  margin-top: 0;
}

#detailModal.detail-sheet-modal .detail-sheet-dismiss,
#detailModal.detail-sheet-modal .detail-sheet-primary {
  min-height: 32px;
  border-radius: 4px;
  font-size: 14px;
  line-height: 22px;
  cursor: pointer;
}

#detailModal.detail-sheet-modal .detail-sheet-dismiss {
  border: 1px solid #e5e6eb;
  background: #f7f8fa;
  color: #1d2129;
}

#detailModal.detail-sheet-modal .detail-sheet-primary {
  border: 1px solid #165dff;
  background: #165dff;
  color: #fff;
}

#detailModal.detail-sheet-modal .detail-sheet-content {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  gap: 8px;
  min-height: 0;
  overflow: hidden;
}

#detailModal.detail-sheet-modal .modal-body {
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
}

#detailModal.detail-sheet-modal .stock-detail-sheet,
#detailModal.detail-sheet-modal .sector-detail-sheet {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}

#detailModal.stock-detail-sheet-modal .stock-detail-sheet--pending,
#detailModal.hot-money-detail-sheet-modal .hot-money-detail-sheet--pending,
#detailModal.sector-detail-sheet-modal .sector-detail-sheet--pending {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  justify-content: center;
  min-height: 0;
  overflow: hidden;
}

#detailModal.stock-detail-sheet-modal .modal-body.stock-detail-body:has(.stock-detail-sheet--pending) {
  display: flex;
  flex-direction: column;
}

#detailModal.stock-detail-sheet-modal .modal-body.stock-detail-body .stock-detail-sheet--pending {
  flex: 1 1 auto;
  min-height: 0;
  background: #f7f8fa;
}

#detailModal.stock-detail-sheet-modal .stock-detail-section-loading {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  justify-content: center;
  min-height: 220px;
  padding: 24px 16px;
  box-sizing: border-box;
}

#detailModal.stock-detail-sheet-modal .stock-detail-section-loading .mobile-page-loading-center,
#detailModal.stock-detail-sheet-modal .stock-detail-section-loading .stock-detail-loading-center {
  width: 100%;
}

#detailModal.stock-detail-sheet-modal .detail-panel-loading,
#detailModal.sector-detail-sheet-modal .detail-panel-loading {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  justify-content: center;
  min-height: 220px;
  padding: 24px 16px;
  box-sizing: border-box;
}

#detailModal.stock-detail-sheet-modal .stock-detail-sheet--tabs-loading .stock-detail-panels,
#detailModal.sector-detail-sheet-modal .sector-detail-sheet--tabs-loading .sector-detail-panels {
  flex: 1 1 auto;
  min-height: 0;
}

#detailModal.stock-detail-sheet-modal .stock-detail-chart-section-loading {
  width: 100%;
  aspect-ratio: 960 / 640;
  min-height: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

#detailModal.stock-detail-sheet-modal .stock-detail-loading-center,
#detailModal.stock-detail-sheet-modal .mobile-page-loading-center,
#detailModal.hot-money-detail-sheet-modal .stock-detail-loading-center,
#detailModal.hot-money-detail-sheet-modal .mobile-page-loading-center,
#detailModal.sector-detail-sheet-modal .stock-detail-loading-center,
#detailModal.sector-detail-sheet-modal .mobile-page-loading-center {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 32px 24px;
  color: #86909c;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
  text-align: center;
}

#detailModal.stock-detail-sheet-modal .stock-detail-loading-center .async-loading-spinner,
#detailModal.stock-detail-sheet-modal .mobile-page-loading-center .async-loading-spinner,
#detailModal.hot-money-detail-sheet-modal .stock-detail-loading-center .async-loading-spinner,
#detailModal.hot-money-detail-sheet-modal .mobile-page-loading-center .async-loading-spinner,
#detailModal.sector-detail-sheet-modal .stock-detail-loading-center .async-loading-spinner,
#detailModal.sector-detail-sheet-modal .mobile-page-loading-center .async-loading-spinner {
  width: 32px;
  height: 32px;
  border-width: 3px;
  border-color: rgba(32, 38, 56, 0.12);
  border-top-color: #202638;
}

#detailModal.stock-detail-sheet-modal .stock-detail-sheet--pending .strategy-page-loading-text,
#detailModal.stock-detail-sheet-modal .stock-detail-sheet--pending .stock-detail-loading-center-text {
  margin: 0;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  color: #1d2129;
  text-align: center;
}

#detailModal.stock-detail-sheet-modal .stock-detail-sheet--pending .strategy-page-loading-subline {
  margin: 0;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
  color: #86909c;
  text-align: center;
  max-width: 260px;
}

#detailModal.stock-detail-sheet-modal .stock-detail-sheet--pending .module-empty-tip,
#detailModal.hot-money-detail-sheet-modal .hot-money-detail-sheet--pending .module-empty-tip,
#detailModal.sector-detail-sheet-modal .sector-detail-sheet--pending .module-empty-tip {
  width: 100%;
}

#detailModal.sector-detail-sheet-modal .modal-body.sector-detail-body:has(.sector-detail-sheet--pending) {
  display: flex;
  flex-direction: column;
}

#detailModal.sector-detail-sheet-modal .modal-body.sector-detail-body .sector-detail-sheet--pending {
  flex: 1 1 auto;
  min-height: 0;
}

#detailModal.hot-money-detail-sheet-modal .modal-body.hot-money-detail-body:has(.hot-money-detail-sheet--pending) {
  display: flex;
  flex-direction: column;
}

#detailModal.hot-money-detail-sheet-modal .modal-body.hot-money-detail-body .hot-money-detail-sheet--pending {
  flex: 1 1 auto;
  min-height: 0;
}

#detailModal.detail-sheet-modal .modal-body.news-detail-body,
#detailModal.detail-sheet-modal .modal-body.hot-money-detail-body {
  display: block;
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}

#detailModal.detail-sheet-modal .modal-body.news-detail-body .detail-sheet-content,
#detailModal.detail-sheet-modal .modal-body.hot-money-detail-body .detail-sheet-content {
  display: block;
  flex: none;
  min-height: auto;
  overflow: visible;
}

#detailModal.detail-sheet-modal .news-detail-sheet,
#detailModal.detail-sheet-modal .hot-money-detail-sheet {
  flex: none;
  min-height: auto;
  overflow: visible;
}

#detailModal.detail-sheet-modal #stockDetailTabsMount,
#detailModal.detail-sheet-modal #sectorDetailTabsMount {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
  min-width: 0;
  overflow: hidden;
}

#detailModal.detail-sheet-modal .stock-detail-cninfo,
#detailModal.detail-sheet-modal .sector-detail-cninfo {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
  min-width: 0;
  overflow: hidden;
}

#detailModal.detail-sheet-modal .stock-detail-tabs,
#detailModal.detail-sheet-modal .sector-detail-tabs {
  flex: 0 0 auto;
}

#detailModal.detail-sheet-modal .stock-detail-panels,
#detailModal.detail-sheet-modal .sector-detail-panels {
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  touch-action: manipulation;
}

#detailModal.detail-sheet-modal .detail-ai-result-panel:not([hidden]) {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

#detailModal.detail-sheet-modal .detail-metric-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 4px;
  padding: 8px;
  background: #fff;
  border-radius: 6px;
}

#detailModal.detail-sheet-modal .detail-metric-cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  min-width: 0;
  text-align: center;
  line-height: 1.4;
}

#detailModal.detail-sheet-modal .detail-metric-cell strong {
  font-size: 16px;
  font-weight: 500;
  color: #1d2129;
}

#detailModal.detail-sheet-modal .detail-metric-cell strong.up {
  color: #f53f3f;
}

#detailModal.detail-sheet-modal .detail-metric-cell strong.down {
  color: #00b42a;
}

#detailModal.detail-sheet-modal .detail-metric-cell strong.is-score {
  color: #f53f3f;
}

#detailModal.detail-sheet-modal .detail-metric-cell small {
  font-size: 12px;
  color: #4e5969;
}

.detail-metric-cell--price {
  justify-content: center;
}

.detail-metric-cell--price .detail-metric-price-stack {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: 100%;
}

.detail-metric-cell--price .detail-metric-change,
.detail-summary-price-cell .detail-metric-change {
  display: block;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
}

.detail-summary-price-cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  text-align: center;
}

#detailModal.detail-sheet-modal .detail-trend-section,
#detailModal.detail-sheet-modal .detail-section-block {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 8px;
  background: #fff;
  border-radius: 6px;
}

#detailModal.detail-sheet-modal .detail-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

#detailModal.detail-sheet-modal .detail-section-head h3 {
  margin: 0;
  font-size: 14px;
  font-weight: 500;
  color: #1d2129;
}

#detailModal.detail-sheet-modal .detail-intro-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 8px 12px;
  border: 1px solid #ffcf8b;
  border-radius: 8px;
  background: linear-gradient(90deg, #ffeed4 0%, #ffe4ba 100%);
}

#detailModal.detail-sheet-modal .detail-intro-block + .detail-intro-block {
  padding-top: 8px;
  border-top: 1px solid rgba(255, 207, 139, 0.45);
}

#detailModal.detail-sheet-modal .detail-intro-title {
  display: flex;
  align-items: center;
  gap: 4px;
  margin: 0 0 4px;
  font-size: 14px;
  font-weight: 500;
  color: #1d2129;
}

#detailModal.detail-sheet-modal .detail-intro-title::before {
  content: "";
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  background: center / contain no-repeat;
}

#detailModal.detail-sheet-modal .detail-intro-title--bulb::before {
  background-image: url("/static/icons/figma-stock-intro-business.svg?v=20260609");
}

#detailModal.detail-sheet-modal .detail-intro-title--book::before {
  background-image: url("/static/icons/figma-stock-intro-book.svg?v=20260609");
}

#detailModal.detail-sheet-modal .detail-intro-copy {
  margin: 0;
  font-size: 14px;
  line-height: 1.4;
  color: #4e5969;
  text-align: justify;
}

#detailModal.detail-sheet-modal .detail-analysis-card {
  padding: 12px;
  border-radius: 8px;
  background: linear-gradient(90deg, #ffeed4 0%, #ffe4ba 100%);
  border: 1px solid #ffcf8b;
}

#detailModal.detail-sheet-modal .detail-analysis-card .analysis-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

#detailModal.detail-sheet-modal .detail-analysis-card .analysis-list p {
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
  color: #4e5969;
}

#detailModal.detail-sheet-modal .detail-ai-result-panel {
  padding: 8px 12px 12px;
  background: #fff;
}

#detailModal.detail-sheet-modal .detail-ai-result-panel .stock-ai-analysis-loading,
#detailModal.detail-sheet-modal .detail-ai-result-panel .stock-ai-analysis-content,
#detailModal.detail-sheet-modal .detail-ai-result-panel .finance-note {
  margin: 0;
}

#detailModal.detail-sheet-modal .detail-sheet-footer.detail-sheet-footer--sector-only {
  grid-template-columns: 1fr;
}

#detailModal.detail-sheet-modal .detail-sheet-footer--sector-only .detail-sheet-primary {
  display: none;
}

#detailModal.market-tech-sector-sheet-modal .modal-body.market-tech-detail-body {
  display: flex;
  flex-direction: column;
  min-height: 0;
  padding: 0;
  background: #fff;
  overflow: hidden;
}

#detailModal.market-tech-sector-sheet-modal .market-tech-sector-sheet {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
  padding: 12px;
  box-sizing: border-box;
}

#detailModal.market-tech-sector-sheet-modal .market-tech-sector-sheet:not(.market-tech-breadth-sheet) {
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

#detailModal.market-tech-sector-sheet-modal .market-tech-sector-sheet.market-tech-breadth-sheet {
  gap: 10px;
  overflow: hidden;
}

#detailModal.market-tech-breadth-sheet-modal .modal-body.market-tech-detail-body,
#detailModal.market-tech-strong-sheet-modal .modal-body.market-tech-detail-body,
#detailModal.market-tech-hot-sheet-modal .modal-body.market-tech-detail-body {
  background: #fff;
}

#detailModal.market-tech-sector-sheet-modal .market-tech-sector-sheet.market-tech-breadth-sheet,
#detailModal.market-tech-sector-sheet-modal .market-tech-sector-sheet.market-tech-strong-sheet,
#detailModal.market-tech-sector-sheet-modal .market-tech-sector-sheet.market-tech-hot-sheet {
  background: #fff;
}

#detailModal.market-tech-strong-sheet-modal.detail-sheet-modal .detail-sheet-panel,
#detailModal.market-tech-hot-sheet-modal.detail-sheet-modal .detail-sheet-panel,
#detailModal.market-tech-elastic-sheet-modal.detail-sheet-modal .detail-sheet-panel,
#detailModal.market-tech-turnover-sheet-modal.detail-sheet-modal .detail-sheet-panel,
#detailModal.market-tech-action-sheet-modal.detail-sheet-modal .detail-sheet-panel {
  background: #fff;
}

#detailModal.market-tech-turnover-sheet-modal .modal-body.market-tech-detail-body,
#detailModal.market-tech-action-sheet-modal .modal-body.market-tech-detail-body {
  background: #fff;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-stock-sheet.market-tech-turnover-sheet,
#detailModal.market-tech-stock-sheet-modal .market-tech-stock-sheet.market-tech-action-sheet,
#detailModal.market-tech-stock-sheet-modal .market-tech-turnover-panels,
#detailModal.market-tech-stock-sheet-modal .market-tech-turnover-panel,
#detailModal.market-tech-stock-sheet-modal .market-tech-action-list {
  background: #fff;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-stock-sheet.market-tech-elastic-sheet {
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  background: #fff;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-elastic-sheet .market-tech-stock-list {
  list-style: none;
  margin: 0;
  padding: 0;
  background: #fff;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-elastic-sheet .market-tech-stock-row {
  display: block;
  padding: 0;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-elastic-sheet .market-tech-stock-row-btn {
  display: flex;
  align-items: center;
  gap: 4px;
  width: 100%;
  padding: 8px 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  text-align: inherit;
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-elastic-sheet .market-tech-stock-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  min-width: 0;
  text-align: center;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-elastic-sheet .market-tech-stock-col--name {
  flex: 1 1 0;
  align-items: flex-start;
  text-align: left;
  padding-right: 0;
  border-right: 0;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-elastic-sheet .market-tech-stock-col--metric {
  flex: 1 1 0;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-elastic-sheet .market-tech-stock-identity {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  text-align: left;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-elastic-sheet .market-tech-stock-identity strong {
  display: block;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  color: #1d2129;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-elastic-sheet .market-tech-stock-identity small {
  display: block;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
  color: #4e5969;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-elastic-sheet .market-tech-stock-col--metric strong {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
  color: #1d2129;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-elastic-sheet .market-tech-stock-col--metric strong.up {
  color: #f53f3f;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-elastic-sheet .market-tech-stock-col--metric strong.down {
  color: #009a29;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-elastic-sheet .market-tech-stock-sector {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
  color: #1d2129;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-elastic-sheet .market-tech-stock-col--metric small {
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
  color: #4e5969;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-elastic-sheet .market-tech-stock-empty {
  padding: 24px 12px;
}

#detailModal.market-tech-sector-sheet-modal .market-tech-breadth-tabs {
  position: relative;
  display: flex;
  align-items: stretch;
  flex-shrink: 0;
  gap: 0;
  width: 100%;
  padding: 2px;
  border-radius: 6px;
  background: #f2f3f5;
  box-sizing: border-box;
  overflow: hidden;
}

#detailModal.market-tech-sector-sheet-modal .market-tech-breadth-tabs-thumb {
  position: absolute;
  top: 2px;
  left: 0;
  z-index: 0;
  height: calc(100% - 4px);
  border-radius: 4px;
  background: #fff;
  box-shadow: none;
  pointer-events: none;
  transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1), width 0.28s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform, width;
}

#detailModal.market-tech-sector-sheet-modal .market-tech-breadth-tab {
  position: relative;
  z-index: 1;
  flex: 1 1 0;
  min-width: 0;
  padding: 4px 12px;
  border: 0;
  border-radius: 4px;
  background: transparent !important;
  color: #4e5969;
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
  cursor: pointer;
  box-shadow: none !important;
  transition: color 0.2s ease;
  -webkit-tap-highlight-color: transparent;
}

#detailModal.market-tech-sector-sheet-modal .market-tech-breadth-tab:hover,
#detailModal.market-tech-sector-sheet-modal .market-tech-breadth-tab:active,
#detailModal.market-tech-sector-sheet-modal .market-tech-breadth-tab:focus,
#detailModal.market-tech-sector-sheet-modal .market-tech-breadth-tab:focus-visible {
  background: transparent !important;
  outline: none;
}

#detailModal.market-tech-sector-sheet-modal .market-tech-breadth-tab.is-active {
  background: transparent !important;
  color: #165dff;
  font-weight: 500;
}

#detailModal.market-tech-sector-sheet-modal .market-tech-breadth-tab + .market-tech-breadth-tab {
  box-shadow: inset 1px 0 0 #e5e6eb;
}

@media (prefers-reduced-motion: reduce) {
  #detailModal.market-tech-sector-sheet-modal .market-tech-breadth-tabs-thumb {
    transition: none;
  }
}

#detailModal.market-tech-sector-sheet-modal .market-tech-breadth-panels {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
  background: #fff;
  border-radius: 6px;
}

#detailModal.market-tech-sector-sheet-modal .market-tech-breadth-panel {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  background: #fff;
}

#detailModal.market-tech-sector-sheet-modal .market-tech-breadth-panel[hidden] {
  display: none !important;
}

#detailModal.market-tech-sector-sheet-modal .market-tech-sector-list {
  list-style: none;
  margin: 0;
  padding: 0;
  background: #fff;
}

#detailModal.market-tech-sector-sheet-modal .market-tech-sector-row {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 8px 0;
}

#detailModal.market-tech-sector-sheet-modal .market-tech-sector-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  min-width: 0;
  text-align: center;
}

#detailModal.market-tech-sector-sheet-modal .market-tech-sector-col--name {
  flex: 1 1 0;
  align-items: flex-start;
  text-align: left;
}

#detailModal.market-tech-sector-sheet-modal .market-tech-sector-col--metric {
  flex: 1 1 0;
}

#detailModal.market-tech-sector-sheet-modal .market-tech-sector-name {
  padding: 0;
  border: 0;
  background: transparent;
  color: #1d2129;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  text-align: left;
  cursor: pointer;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

#detailModal.market-tech-sector-sheet-modal .market-tech-sector-col--metric strong {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
  color: #1d2129;
}

#detailModal.market-tech-sector-sheet-modal .market-tech-sector-col--metric strong.up {
  color: #f53f3f;
}

#detailModal.market-tech-sector-sheet-modal .market-tech-sector-col--metric strong.down {
  color: #009a29;
}

#detailModal.market-tech-sector-sheet-modal .market-tech-sector-col--metric small {
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
  color: #4e5969;
}

#detailModal.market-tech-sector-sheet-modal .market-tech-sector-ai {
  flex: 0 0 auto;
  padding: 4px 8px;
  border: 1px solid #94bfff;
  border-radius: 4px;
  background: #e8f3ff;
  color: #165dff;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  white-space: nowrap;
  cursor: pointer;
}

#detailModal.market-tech-sector-sheet-modal .market-tech-sector-empty {
  padding: 24px 12px;
}

#detailModal.market-tech-sector-sheet-modal .market-tech-sector-sheet-body:has(.module-empty-tip),
#detailModal.market-tech-stock-sheet-modal .market-tech-stock-sheet-body:has(.module-empty-tip) {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 120px;
}

#detailModal.market-tech-stock-sheet-modal .modal-body.market-tech-detail-body {
  display: flex;
  flex-direction: column;
  min-height: 0;
  padding: 0;
  background: #fff;
  overflow: hidden;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-stock-sheet {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
  padding: 12px;
  box-sizing: border-box;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-stock-sheet:not(.market-tech-turnover-sheet) {
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-stock-sheet.market-tech-turnover-sheet {
  gap: 10px;
  overflow: hidden;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-turnover-sheet .market-tech-stock-list {
  list-style: none;
  margin: 0;
  padding: 0;
  background: #fff;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-turnover-sheet .market-tech-stock-row {
  display: block;
  padding: 0;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-turnover-sheet .market-tech-stock-row-btn {
  display: flex;
  align-items: center;
  gap: 4px;
  width: 100%;
  padding: 8px 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  text-align: inherit;
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-stock-fallback-note {
  margin: 0 0 8px;
  color: #4e5969;
  font-size: 14px;
  line-height: 1.4;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-turnover-tabs {
  position: relative;
  display: flex;
  align-items: stretch;
  flex-shrink: 0;
  gap: 0;
  width: 100%;
  padding: 2px;
  border-radius: 6px;
  background: #f2f3f5;
  box-sizing: border-box;
  overflow: hidden;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-turnover-tabs-thumb {
  position: absolute;
  top: 2px;
  left: 0;
  z-index: 0;
  height: calc(100% - 4px);
  border-radius: 4px;
  background: #fff;
  box-shadow: none;
  pointer-events: none;
  transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1), width 0.28s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform, width;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-turnover-tab {
  position: relative;
  z-index: 1;
  flex: 1 1 0;
  min-width: 0;
  padding: 4px 12px;
  border: 0;
  border-radius: 4px;
  background: transparent !important;
  color: #4e5969;
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
  cursor: pointer;
  box-shadow: none !important;
  transition: color 0.2s ease;
  white-space: nowrap;
  -webkit-tap-highlight-color: transparent;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-turnover-tab:hover,
#detailModal.market-tech-stock-sheet-modal .market-tech-turnover-tab:active,
#detailModal.market-tech-stock-sheet-modal .market-tech-turnover-tab:focus,
#detailModal.market-tech-stock-sheet-modal .market-tech-turnover-tab:focus-visible {
  background: transparent !important;
  outline: none;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-turnover-tab.is-active {
  background: transparent !important;
  color: #165dff;
  font-weight: 500;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-turnover-tab + .market-tech-turnover-tab {
  box-shadow: inset 1px 0 0 #e5e6eb;
}

@media (prefers-reduced-motion: reduce) {
  #detailModal.market-tech-stock-sheet-modal .market-tech-turnover-tabs-thumb {
    transition: none;
  }
}

#detailModal.market-tech-stock-sheet-modal .market-tech-turnover-panels {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-turnover-panel {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-turnover-panel[hidden] {
  display: none !important;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-stock-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-stock-row {
  display: block;
  padding: 0;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-stock-row-btn {
  display: flex;
  align-items: center;
  gap: 4px;
  width: 100%;
  padding: 8px 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  text-align: inherit;
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-stock-row-btn:focus-visible {
  outline: 2px solid rgba(22, 93, 255, 0.35);
  outline-offset: 2px;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-stock-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  min-width: 0;
  text-align: center;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-stock-col--name {
  flex: 1 1 0;
  align-items: flex-start;
  text-align: left;
  padding-right: 4px;
  border-right: 1px solid #e5e6eb;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-stock-col--metric {
  flex: 1 1 0;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-stock-identity {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  text-align: left;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-stock-col--name strong,
#detailModal.market-tech-stock-sheet-modal .market-tech-stock-identity strong {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  color: #1d2129;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-stock-col--name small,
#detailModal.market-tech-stock-sheet-modal .market-tech-stock-identity small {
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
  color: #4e5969;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-stock-col--name small .stock-code-line,
#detailModal.market-tech-stock-sheet-modal .market-tech-elastic-sheet .market-tech-stock-col--name small .stock-code-line,
#detailModal.market-tech-stock-sheet-modal .market-tech-action-sheet .market-tech-stock-col--name small .stock-code-line {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  width: fit-content;
  max-width: 100%;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-stock-col--metric strong {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
  color: #1d2129;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-stock-col--metric strong.up {
  color: #f53f3f;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-stock-col--metric strong.down {
  color: #009a29;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-stock-sector {
  font-size: 14px;
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-stock-col--metric small {
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
  color: #4e5969;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-stock-empty {
  margin: 0;
  padding: 24px 12px;
  text-align: center;
  color: #86909c;
  font-size: 14px;
  line-height: 1.4;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-stock-sheet.market-tech-action-sheet {
  gap: 10px;
  overflow: hidden;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-action-callout {
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  gap: 4px;
  padding: 8px 12px;
  border: 1px solid #ffcf8b;
  border-radius: 8px;
  background: linear-gradient(90deg, #ffeed4 0%, #ffe4ba 100%);
  box-sizing: border-box;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-action-callout-head {
  display: flex;
  align-items: center;
  gap: 4px;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-action-callout-icon {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  background: center / contain no-repeat url("/static/icons/figma-action-callout-book.svg?v=20260609");
}

#detailModal.market-tech-stock-sheet-modal .market-tech-action-callout-head strong {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  color: #1d2129;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-action-callout-text {
  margin: 0;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.4;
  color: #4e5969;
  text-align: justify;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-action-list {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-action-sheet .market-tech-stock-list {
  list-style: none;
  margin: 0;
  padding: 0;
  background: #fff;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-action-sheet .market-tech-stock-row {
  display: block;
  padding: 0;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-action-sheet .market-tech-stock-row-btn {
  display: flex;
  align-items: center;
  gap: 4px;
  width: 100%;
  padding: 8px 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  text-align: inherit;
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}

#detailModal.market-tech-stock-sheet-modal .market-tech-action-sheet .market-tech-stock-col--name {
  align-items: center;
  padding-right: 0;
  border-right: 0;
  text-align: center;
}

#detailModal.detail-sheet-modal .sector-detail-sheet {
  gap: 0;
}

#detailModal.sector-detail-sheet-modal .sector-detail-sheet,
#detailModal.sector-detail-sheet-modal #sectorDetailTabsMount {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}

#detailModal.detail-sheet-modal .sector-detail-basic-panel {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

#detailModal.detail-sheet-modal:not(.sector-detail-sheet-modal) .sector-analysis-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-inline: 0;
  padding: 12px;
  border: 1px solid #ffcf8b;
  border-radius: 8px;
  background: linear-gradient(90deg, #ffeed4 0%, #ffe4ba 100%);
}

#detailModal.detail-sheet-modal .sector-analysis-card-head {
  display: flex;
  align-items: center;
  gap: 4px;
  margin: 0;
}

#detailModal.detail-sheet-modal .sector-analysis-card-head strong {
  font-size: 14px;
  font-weight: 500;
  color: #1d2129;
}

#detailModal.detail-sheet-modal .sector-analysis-card-icon {
  display: block;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  object-fit: contain;
}

#detailModal.detail-sheet-modal .sector-analysis-card-body .analysis-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

#detailModal.detail-sheet-modal .sector-analysis-card-body .analysis-list p,
#detailModal.detail-sheet-modal .sector-analysis-empty {
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
  color: #4e5969;
  text-align: justify;
}

#detailModal.sector-detail-sheet-modal .sector-detail-trend .detail-section-head.sector-detail-section-head,
#detailModal.detail-sheet-modal .stock-detail-trend .detail-section-head.stock-detail-section-head {
  flex-wrap: nowrap;
  align-items: center;
}

#detailModal.detail-sheet-modal .detail-trend-section .detail-section-head h3 {
  flex: 0 0 auto;
  white-space: nowrap;
}

#detailModal.detail-sheet-modal .sector-detail-trend .sector-chart-mode-tabs,
#detailModal.detail-sheet-modal .stock-detail-trend .stock-chart-mode-tabs {
  width: auto !important;
  max-width: 100%;
  flex: 0 0 auto;
  margin-left: auto;
}

#detailModal.detail-sheet-modal .sector-chart-mode-tabs,
#detailModal.detail-sheet-modal .sector-chain-stage-tabs,
#detailModal.detail-sheet-modal .hot-money-trade-mode-tabs {
  display: inline-flex;
  align-items: center;
  gap: 0;
  padding: 2px;
  border-radius: 6px;
  background: #f2f3f5;
  flex-shrink: 0;
}

#detailModal.detail-sheet-modal .sector-chart-mode-tabs button,
#detailModal.detail-sheet-modal .stock-chart-mode-tabs button,
#detailModal.detail-sheet-modal .sector-chain-stage-tabs button,
#detailModal.detail-sheet-modal .hot-money-trade-mode-tabs button {
  min-height: 28px;
  padding: 2px 12px;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: #4e5969;
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
  cursor: pointer;
}

/* 实时/日/周/月：保留选中白底，去掉按下时的灰色/高亮色块 */
#detailModal.detail-sheet-modal .sector-chart-mode-tabs button,
#detailModal.detail-sheet-modal .stock-chart-mode-tabs button {
  -webkit-tap-highlight-color: transparent;
}

#detailModal.detail-sheet-modal .sector-chart-mode-tabs button:hover,
#detailModal.detail-sheet-modal .sector-chart-mode-tabs button:active,
#detailModal.detail-sheet-modal .sector-chart-mode-tabs button:focus,
#detailModal.detail-sheet-modal .sector-chart-mode-tabs button:focus-visible,
#detailModal.detail-sheet-modal .stock-chart-mode-tabs button:hover,
#detailModal.detail-sheet-modal .stock-chart-mode-tabs button:active,
#detailModal.detail-sheet-modal .stock-chart-mode-tabs button:focus,
#detailModal.detail-sheet-modal .stock-chart-mode-tabs button:focus-visible {
  outline: none;
  background: transparent !important;
  box-shadow: none !important;
}

#detailModal.detail-sheet-modal .sector-chart-mode-tabs button.active,
#detailModal.detail-sheet-modal .stock-chart-mode-tabs button.active,
#detailModal.detail-sheet-modal .sector-chart-mode-tabs button.active:hover,
#detailModal.detail-sheet-modal .sector-chart-mode-tabs button.active:active,
#detailModal.detail-sheet-modal .sector-chart-mode-tabs button.active:focus,
#detailModal.detail-sheet-modal .sector-chart-mode-tabs button.active:focus-visible,
#detailModal.detail-sheet-modal .stock-chart-mode-tabs button.active:hover,
#detailModal.detail-sheet-modal .stock-chart-mode-tabs button.active:active,
#detailModal.detail-sheet-modal .stock-chart-mode-tabs button.active:focus,
#detailModal.detail-sheet-modal .stock-chart-mode-tabs button.active:focus-visible {
  background: #fff !important;
  color: #165dff;
  font-weight: 500;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.06) !important;
}

#detailModal.detail-sheet-modal .sector-chain-stage-tabs button.active,
#detailModal.detail-sheet-modal .hot-money-trade-mode-tabs button.active {
  background: #fff !important;
  color: #165dff;
  font-weight: 500;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.06) !important;
}

#detailModal.detail-sheet-modal .sector-chain-stage-tabs button:hover,
#detailModal.detail-sheet-modal .sector-chain-stage-tabs button:active,
#detailModal.detail-sheet-modal .sector-chain-stage-tabs button:focus,
#detailModal.detail-sheet-modal .sector-chain-stage-tabs button:focus-visible,
#detailModal.detail-sheet-modal .hot-money-trade-mode-tabs button:hover,
#detailModal.detail-sheet-modal .hot-money-trade-mode-tabs button:active,
#detailModal.detail-sheet-modal .hot-money-trade-mode-tabs button:focus,
#detailModal.detail-sheet-modal .hot-money-trade-mode-tabs button:focus-visible {
  outline: none;
}

.cninfo-history-period-tabs.sector-day-tabs button {
  -webkit-tap-highlight-color: transparent;
}

.cninfo-history-period-tabs.sector-day-tabs button:hover,
.cninfo-history-period-tabs.sector-day-tabs button:active,
.cninfo-history-period-tabs.sector-day-tabs button:focus,
.cninfo-history-period-tabs.sector-day-tabs button:focus-visible {
  background: transparent !important;
  box-shadow: none !important;
  outline: none;
}

.cninfo-history-period-tabs.sector-day-tabs button.active,
.cninfo-history-period-tabs.sector-day-tabs button.active:hover,
.cninfo-history-period-tabs.sector-day-tabs button.active:active,
.cninfo-history-period-tabs.sector-day-tabs button.active:focus,
.cninfo-history-period-tabs.sector-day-tabs button.active:focus-visible {
  background: #fff !important;
  color: var(--blue);
  font-weight: 500;
  box-shadow: 0 1px 4px rgba(16, 24, 40, 0.12) !important;
}

#detailModal.sector-detail-sheet-modal .sector-chain-stage-tabs button.active,
#detailModal.sector-detail-sheet-modal .sector-chain-stage-tabs button.active:hover,
#detailModal.sector-detail-sheet-modal .sector-chain-stage-tabs button.active:active,
#detailModal.sector-detail-sheet-modal .sector-chain-stage-tabs button.active:focus,
#detailModal.sector-detail-sheet-modal .sector-chain-stage-tabs button.active:focus-visible {
  background: #fff !important;
  color: #165dff !important;
  font-weight: 500;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.06) !important;
}

#detailModal.sector-detail-sheet-modal .sector-chain-stage-tabs button:hover,
#detailModal.sector-detail-sheet-modal .sector-chain-stage-tabs button:active,
#detailModal.sector-detail-sheet-modal .sector-chain-stage-tabs button:focus,
#detailModal.sector-detail-sheet-modal .sector-chain-stage-tabs button:focus-visible {
  outline: none;
}

#detailModal.detail-sheet-modal .sector-chart-mount {
  display: flex;
  flex-direction: column;
  height: 180px;
  min-height: 180px;
  border: 1px solid #e5e6eb;
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
}

#detailModal.sector-detail-sheet-modal .sector-detail-trend .sector-chart-mount,
#detailModal.sector-detail-sheet-modal .sector-chart-mount {
  flex: 0 0 auto;
  height: 150px;
  min-height: 150px;
  border: 1px solid #f2f3f5;
  border-radius: 8px;
  background: #f7f8fa;
  overflow: hidden;
}

#detailModal.sector-detail-sheet-modal .sector-chart-mount-placeholder {
  min-height: 150px;
}

#detailModal.detail-sheet-modal .sector-chart-mount .sector-chart-mode,
#detailModal.detail-sheet-modal .stock-chart-mount .stock-chart-mode {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  height: 100%;
}

#detailModal.detail-sheet-modal .sector-chart-mount .cninfo-market-chart,
#detailModal.detail-sheet-modal .stock-chart-mount .cninfo-market-chart {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
  height: 100%;
  border: none;
  border-radius: 0;
  padding: 0;
}

#detailModal.detail-sheet-modal .sector-chart-mount .cninfo-market-chart-head,
#detailModal.detail-sheet-modal .stock-chart-mount .cninfo-market-chart-head {
  display: none;
}

#detailModal.detail-sheet-modal .sector-chart-mount .cninfo-chart-body,
#detailModal.detail-sheet-modal .stock-chart-mount .cninfo-chart-body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
  width: 100%;
  height: 100%;
  max-height: none;
  aspect-ratio: unset;
}

#detailModal.detail-sheet-modal .sector-chart-mount .cninfo-chart-body svg,
#detailModal.detail-sheet-modal .stock-chart-mount .cninfo-chart-body svg {
  flex: 1 1 auto;
  width: 100%;
  height: 100%;
  min-height: 0;
}

#detailModal.detail-sheet-modal .sector-chart-mount .cninfo-intraday-chart,
#detailModal.detail-sheet-modal .sector-chart-mount .cninfo-history-chart,
#detailModal.detail-sheet-modal .stock-chart-mount .cninfo-intraday-chart,
#detailModal.detail-sheet-modal .stock-chart-mount .cninfo-history-chart {
  width: 100%;
  height: 100%;
}

#detailModal.detail-sheet-modal .sector-chart-mount-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 160px;
  padding: 16px;
  text-align: center;
}

#detailModal.detail-sheet-modal .sector-detail-panels > .sector-detail-panel:not([hidden]) {
  min-height: 100%;
  box-sizing: border-box;
}

#detailModal.sector-detail-sheet-modal .sector-detail-panels > .sector-detail-panel:has(.sector-detail-basic-panel):not([hidden]) {
  min-height: 0;
}

#detailModal.detail-sheet-modal .sector-detail-panel:has(.sector-detail-chain-panel):not([hidden]) {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 100%;
  box-sizing: border-box;
}

#detailModal.detail-sheet-modal .stock-detail-panel.sector-detail-panel[hidden] {
  display: none;
}

#detailModal.detail-sheet-modal .sector-detail-chain-panel {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  gap: 8px;
  min-height: 0;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
}

#detailModal.detail-sheet-modal .sector-detail-chain-panel .sector-detail-section-head {
  flex: 0 0 auto;
  flex-wrap: nowrap;
  align-items: center;
  padding: 8px 0 0;
}

#detailModal.detail-sheet-modal .sector-detail-chain-panel .sector-chain-stage-tabs {
  flex: 0 0 auto;
  margin-left: auto;
}

#detailModal.detail-sheet-modal .sector-detail-chain-panel #sectorChainMount {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
}

#detailModal.detail-sheet-modal .sector-detail-chain-panel .sector-chain-focus {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 8px;
  min-height: 0;
}

#detailModal.detail-sheet-modal .sector-detail-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
}

#detailModal.detail-sheet-modal .sector-detail-section-head > strong {
  font-size: 14px;
  font-weight: 500;
  color: #1d2129;
}

#detailModal.detail-sheet-modal .sector-chain-summary {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px;
  border: 1px solid #ffcf8b;
  border-radius: 8px;
  background: linear-gradient(90deg, #ffeed4 0%, #ffe4ba 100%);
}

#detailModal.detail-sheet-modal .sector-chain-summary-tag {
  display: inline-flex;
  align-self: flex-start;
  padding: 2px 8px;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.65);
  font-size: 14px;
  font-weight: 500;
  color: #1d2129;
}

#detailModal.detail-sheet-modal .sector-chain-summary-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4px;
}

#detailModal.detail-sheet-modal .sector-chain-summary-metric {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  text-align: center;
}

#detailModal.detail-sheet-modal .sector-chain-summary-metric strong {
  font-size: 16px;
  font-weight: 500;
  color: #1d2129;
}

#detailModal.detail-sheet-modal .sector-chain-summary-metric strong.up {
  color: #f53f3f;
}

#detailModal.detail-sheet-modal .sector-chain-summary-metric strong.down {
  color: #00b42a;
}

#detailModal.detail-sheet-modal .sector-chain-summary-metric small {
  font-size: 12px;
  color: #4e5969;
}

#detailModal.detail-sheet-modal .sector-chain-reason {
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
}

#detailModal.detail-sheet-modal .sector-detail-chain-panel .sector-quote-list {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
  background: #fff;
  border-radius: 0;
  overflow: hidden;
}

#detailModal.detail-sheet-modal .sector-quote-row {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) repeat(3, minmax(0, 1fr));
  gap: 4px;
  width: 100%;
  padding: 8px;
  border: 0;
  border-bottom: 1px solid #f2f3f5;
  background: transparent;
  text-align: center;
  cursor: pointer;
}

#detailModal.detail-sheet-modal .sector-quote-row:last-child {
  border-bottom: 0;
}

#detailModal.detail-sheet-modal .sector-quote-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-width: 0;
}

#detailModal.detail-sheet-modal .sector-quote-col--name {
  align-items: flex-start;
  text-align: left;
  padding-right: 4px;
  border-right: 1px solid #f2f3f5;
}

#detailModal.detail-sheet-modal .sector-quote-col strong {
  font-size: 16px;
  font-weight: 500;
  color: #1d2129;
  line-height: 1.4;
}

#detailModal.detail-sheet-modal .sector-quote-col strong.up {
  color: #f53f3f;
}

#detailModal.detail-sheet-modal .sector-quote-col strong.down {
  color: #00b42a;
}

#detailModal.detail-sheet-modal .sector-quote-col--name strong {
  font-size: 14px;
}

#detailModal.detail-sheet-modal .sector-quote-col small {
  font-size: 12px;
  color: #4e5969;
}

#detailModal.detail-sheet-modal .sector-detail-stocks-panel,
#detailModal.detail-sheet-modal .sector-detail-news-panel {
  padding: 0;
  background: transparent;
}

#detailModal.detail-sheet-modal .sector-news-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

#detailModal.detail-sheet-modal .sector-news-item {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
  padding: 12px;
  border: 0;
  border-radius: 8px;
  background: #fff;
  text-align: left;
  cursor: pointer;
}

#detailModal.detail-sheet-modal .sector-news-item-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}

#detailModal.detail-sheet-modal .sector-news-item-title {
  flex: 1;
  margin: 0;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  color: #1d2129;
}

#detailModal.detail-sheet-modal .sector-news-source-tag {
  flex-shrink: 0;
  padding: 0 8px;
  border-radius: 4px;
  background: #f2f3f5;
  font-size: 12px;
  line-height: 20px;
  color: #4e5969;
}

#detailModal.detail-sheet-modal .sector-news-item-summary {
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
  color: #4e5969;
}

#detailModal.detail-sheet-modal .sector-news-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

#detailModal.detail-sheet-modal .sector-news-theme-tag {
  padding: 0 8px;
  border-radius: 4px;
  background: #e8f3ff;
  font-size: 12px;
  line-height: 20px;
  color: #165dff;
}

#detailModal.sector-detail-sheet-modal .detail-sheet-icon-close,
#detailModal.sector-detail-sheet-modal .detail-sheet-dismiss,
#detailModal.sector-detail-sheet-modal .sector-quote-row,
#detailModal.sector-detail-sheet-modal .sector-news-item {
  -webkit-tap-highlight-color: transparent;
}

#detailModal.sector-detail-sheet-modal .detail-sheet-icon-close:hover,
#detailModal.sector-detail-sheet-modal .detail-sheet-icon-close:active,
#detailModal.sector-detail-sheet-modal .detail-sheet-icon-close:focus,
#detailModal.sector-detail-sheet-modal .detail-sheet-icon-close:focus-visible {
  background: transparent !important;
  outline: none;
  box-shadow: none !important;
}

#detailModal.sector-detail-sheet-modal .detail-sheet-dismiss:hover,
#detailModal.sector-detail-sheet-modal .detail-sheet-dismiss:active,
#detailModal.sector-detail-sheet-modal .detail-sheet-dismiss:focus,
#detailModal.sector-detail-sheet-modal .detail-sheet-dismiss:focus-visible {
  background: #f7f8fa !important;
  border-color: #e5e6eb;
  color: #1d2129;
  outline: none;
  box-shadow: none !important;
}

#detailModal.sector-detail-sheet-modal .sector-quote-row:hover,
#detailModal.sector-detail-sheet-modal .sector-quote-row:active,
#detailModal.sector-detail-sheet-modal .sector-quote-row:focus,
#detailModal.sector-detail-sheet-modal .sector-quote-row:focus-visible {
  background: transparent !important;
  outline: none;
  box-shadow: none !important;
}

#detailModal.sector-detail-sheet-modal .sector-news-item:hover,
#detailModal.sector-detail-sheet-modal .sector-news-item:active,
#detailModal.sector-detail-sheet-modal .sector-news-item:focus,
#detailModal.sector-detail-sheet-modal .sector-news-item:focus-visible {
  background: #fff !important;
  outline: none;
  box-shadow: none !important;
}

#detailModal.detail-sheet-modal .stock-detail-sheet {
  gap: 0;
}

#detailModal.detail-sheet-modal .stock-detail-basic-panel {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

#detailModal.detail-sheet-modal .stock-detail-basic-panel > .detail-metric-strip {
  margin-top: 12px;
}

#detailModal.detail-sheet-modal .stock-chart-mode-tabs {
  display: inline-flex;
  align-items: center;
  gap: 0;
  padding: 2px;
  border-radius: 6px;
  background: #f2f3f5;
  flex-shrink: 0;
}

#detailModal.detail-sheet-modal .stock-chart-mount {
  display: flex;
  flex-direction: column;
  height: 150px;
  min-height: 150px;
  border: 1px solid #f2f3f5;
  border-radius: 8px;
  background: #f7f8fa;
  overflow: hidden;
}

#detailModal.detail-sheet-modal .stock-chart-mount-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 150px;
  padding: 16px;
  text-align: center;
}

#detailModal.detail-sheet-modal .stock-profile-grid-section {
  padding: 8px;
  background: #fff;
  border-radius: 6px;
}

#detailModal.detail-sheet-modal .stock-profile-grid-section .cninfo-info-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px 4px;
}

#detailModal.detail-sheet-modal .stock-profile-grid-section .cninfo-info-grid > div {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  text-align: center;
}

#detailModal.detail-sheet-modal .stock-profile-grid-section .cninfo-info-grid dt {
  margin: 0;
  font-size: 12px;
  font-weight: 400;
  color: #4e5969;
  order: 2;
}

#detailModal.detail-sheet-modal .stock-profile-grid-section .cninfo-info-grid dd {
  margin: 0;
  font-size: 12px;
  font-weight: 500;
  color: #1d2129;
  order: 1;
  word-break: break-word;
}

#detailModal.detail-sheet-modal .stock-profile-grid-section .cninfo-info-grid dd .cninfo-break-text,
#detailModal.detail-sheet-modal .stock-profile-grid-section .cninfo-info-grid dd .cninfo-break-link {
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  color: inherit;
}

#detailModal.detail-sheet-modal .stock-cninfo-mobile-section {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 8px;
  background: #fff;
  border-radius: 6px;
}

#detailModal.detail-sheet-modal .stock-cninfo-mobile-head {
  margin: 0;
}

#detailModal.detail-sheet-modal .stock-cninfo-mobile-head h3 {
  margin: 0;
  font-size: 14px;
  font-weight: 500;
  color: #1d2129;
}

#detailModal.detail-sheet-modal .stock-cninfo-mobile-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}

#detailModal.detail-sheet-modal .stock-cninfo-mobile-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 4px;
  padding: 8px 0;
  border-bottom: 1px solid #f2f3f5;
}

#detailModal.detail-sheet-modal .stock-cninfo-mobile-row:last-child {
  border-bottom: 0;
}

#detailModal.detail-sheet-modal .stock-cninfo-mobile-cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 4px;
  min-width: 0;
  text-align: center;
}

#detailModal.detail-sheet-modal .stock-cninfo-mobile-cell strong {
  font-size: 12px;
  font-weight: 500;
  color: #1d2129;
  line-height: 1.4;
  word-break: break-word;
}

#detailModal.detail-sheet-modal .stock-cninfo-mobile-cell small {
  font-size: 12px;
  font-weight: 400;
  color: #4e5969;
}

#detailModal.detail-sheet-modal .stock-management-mobile {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

#detailModal.detail-sheet-modal .stock-announcement-panel {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 8px 12px;
  background: #fff;
}

#detailModal.stock-detail-sheet-modal .stock-announcement-panel {
  padding: 8px 0;
}

#detailModal.detail-sheet-modal .stock-announcement-head {
  margin: 0;
}

#detailModal.detail-sheet-modal .stock-announcement-head h3 {
  margin: 0;
  font-size: 14px;
  font-weight: 500;
  color: #1d2129;
}

#detailModal.detail-sheet-modal .stock-announcement-list {
  display: flex;
  flex-direction: column;
}

#detailModal.detail-sheet-modal .stock-announcement-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 8px 0;
  border-bottom: 1px solid #f2f3f5;
}

#detailModal.detail-sheet-modal .stock-announcement-item:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

#detailModal.detail-sheet-modal .stock-announcement-title {
  display: block;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  color: #0e42d2;
  text-decoration: underline;
  text-underline-offset: 2px;
  word-break: break-word;
}

#detailModal.detail-sheet-modal .stock-announcement-title--plain {
  margin: 0;
  color: #1d2129;
  text-decoration: none;
}

#detailModal.detail-sheet-modal .stock-announcement-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px;
}

#detailModal.detail-sheet-modal .stock-announcement-meta-cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  text-align: center;
}

#detailModal.detail-sheet-modal .stock-announcement-meta-cell strong {
  font-size: 12px;
  font-weight: 500;
  color: #1d2129;
  line-height: 1.4;
}

#detailModal.detail-sheet-modal .stock-announcement-meta-cell small {
  font-size: 12px;
  font-weight: 400;
  color: #4e5969;
  line-height: 1.4;
}

#detailModal.detail-sheet-modal .stock-announcement-empty {
  margin: 0;
}

#detailModal.detail-sheet-modal .stock-finance-panel {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

#detailModal.detail-sheet-modal .stock-finance-main-metrics,
#detailModal.detail-sheet-modal .stock-finance-statements {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 8px 0;
  background: #fff;
}

#detailModal.detail-sheet-modal .stock-finance-section-head {
  margin: 0;
}

#detailModal.detail-sheet-modal .stock-finance-section-head h3 {
  margin: 0;
  font-size: 14px;
  font-weight: 500;
  color: #1d2129;
}

#detailModal.detail-sheet-modal .stock-finance-metrics-row {
  display: grid;
  gap: 4px;
  padding: 8px 0;
}

#detailModal.detail-sheet-modal .stock-finance-metrics-row.cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

#detailModal.detail-sheet-modal .stock-finance-metrics-row.cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

#detailModal.detail-sheet-modal .stock-finance-metrics-row.cols-1 {
  grid-template-columns: minmax(0, 1fr);
}

#detailModal.detail-sheet-modal .stock-finance-metrics-row + .stock-finance-metrics-row {
  padding-top: 0;
}

#detailModal.detail-sheet-modal .stock-finance-metric-cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  min-width: 0;
  text-align: center;
}

#detailModal.detail-sheet-modal .stock-finance-metric-value {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  width: 100%;
}

#detailModal.detail-sheet-modal .stock-finance-metric-value strong {
  font-size: 14px;
  font-weight: 500;
  color: #1d2129;
  line-height: 1.4;
}

#detailModal.detail-sheet-modal .stock-finance-metric-value em {
  font-size: 10px;
  font-weight: 400;
  font-style: normal;
  line-height: 1.4;
}

#detailModal.detail-sheet-modal .stock-finance-metric-value strong.up {
  color: #f53f3f;
}

#detailModal.detail-sheet-modal .stock-finance-metric-value strong.down {
  color: #00b42a;
}

#detailModal.detail-sheet-modal .stock-finance-metric-value em.up {
  color: #f53f3f;
}

#detailModal.detail-sheet-modal .stock-finance-metric-value em.down {
  color: #00b42a;
}

#detailModal.detail-sheet-modal .stock-finance-metric-cell small {
  font-size: 12px;
  font-weight: 400;
  color: #4e5969;
  line-height: 1.4;
}

#detailModal.detail-sheet-modal .stock-finance-statement-card {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0;
  border: 1px solid #f2f3f5;
  border-radius: 8px;
  background: #f7f8fa;
  box-sizing: border-box;
  overflow: hidden;
}

#detailModal.detail-sheet-modal .stock-finance-statement-head {
  margin: 0;
  padding: 8px 8px 4px;
  box-sizing: border-box;
}

#detailModal.detail-sheet-modal .stock-finance-statement-head h4 {
  margin: 0;
  font-size: 12px;
  font-weight: 500;
  color: #1d2129;
}

#detailModal.detail-sheet-modal .stock-finance-statement-body {
  padding: 8px;
  border-radius: 0;
  background: #fff;
  box-sizing: border-box;
}

#detailModal.stock-detail-sheet-modal .stock-finance-statement-head {
  padding-left: 8px;
  padding-right: 8px;
}

#detailModal.stock-detail-sheet-modal .stock-finance-statement-body {
  padding-left: 8px;
  padding-right: 8px;
}

#detailModal.detail-sheet-modal .stock-finance-statement-body .stock-finance-metrics-row:first-child {
  padding-top: 0;
}

#detailModal.detail-sheet-modal .stock-finance-statement-body .stock-finance-metrics-row:last-child {
  padding-bottom: 0;
}

#detailModal.detail-sheet-modal .stock-finance-statement-body .stock-finance-metrics-row + .stock-finance-metrics-row {
  margin-top: 12px;
}

#detailModal.detail-sheet-modal .stock-shareholder-panel {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

#detailModal.detail-sheet-modal .stock-shareholder-section {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 8px 12px;
  background: #fff;
}

#detailModal.stock-detail-sheet-modal .stock-shareholder-panel .stock-shareholder-section,
#detailModal.stock-detail-sheet-modal .stock-trading-panel .stock-shareholder-section {
  padding: 8px 0;
}

#detailModal.stock-detail-sheet-modal .stock-shareholder-panel > .stock-shareholder-section:first-child .stock-shareholder-metrics-row {
  column-gap: 12px;
}

#detailModal.stock-detail-sheet-modal .stock-shareholder-panel > .stock-shareholder-section:first-child .stock-shareholder-section-body > .stock-shareholder-metrics-row + .stock-shareholder-metrics-row {
  margin-top: 12px;
}

#detailModal.detail-sheet-modal .stock-shareholder-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

#detailModal.detail-sheet-modal .stock-shareholder-section-head h3 {
  margin: 0;
  font-size: 14px;
  font-weight: 500;
  color: #1d2129;
}

#detailModal.detail-sheet-modal .detail-section-head h3,
#detailModal.detail-sheet-modal .detail-intro-title,
#detailModal.detail-sheet-modal .stock-cninfo-mobile-head h3,
#detailModal.detail-sheet-modal .stock-announcement-head h3,
#detailModal.detail-sheet-modal .stock-finance-section-head h3,
#detailModal.detail-sheet-modal .stock-shareholder-section-head h3,
#detailModal.detail-sheet-modal .sector-analysis-card-head strong,
#detailModal.sector-detail-sheet-modal .sector-analysis-card-head strong,
#detailModal.detail-sheet-modal .sector-detail-section-head > strong,
#detailModal.detail-sheet-modal .market-tech-detail-head h3 {
  font-size: 16px;
  font-weight: 700;
  color: #1d2129;
}

#detailModal.detail-sheet-modal .stock-shareholder-section-meta {
  flex-shrink: 0;
  font-size: 12px;
  color: #4e5969;
  white-space: nowrap;
}

#detailModal.detail-sheet-modal .stock-shareholder-metrics-row {
  display: grid;
  gap: 4px;
}

#detailModal.detail-sheet-modal .stock-shareholder-metrics-row.cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

#detailModal.detail-sheet-modal .stock-shareholder-metrics-row.cols-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

#detailModal.detail-sheet-modal .stock-shareholder-metric-cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  min-width: 0;
  text-align: center;
}

#detailModal.detail-sheet-modal .stock-shareholder-metric-cell strong {
  font-size: 14px;
  font-weight: 500;
  color: #1d2129;
  line-height: 1.4;
  word-break: break-word;
}

#detailModal.detail-sheet-modal .stock-shareholder-metric-cell strong.up {
  color: #f53f3f;
}

#detailModal.detail-sheet-modal .stock-shareholder-metric-cell strong.down {
  color: #00b42a;
}

#detailModal.detail-sheet-modal .stock-shareholder-metric-cell small {
  font-size: 12px;
  font-weight: 400;
  color: #4e5969;
  line-height: 1.4;
}

#detailModal.detail-sheet-modal .stock-holder-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

#detailModal.detail-sheet-modal .stock-holder-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-bottom: 8px;
  border-bottom: 1px solid #f2f3f5;
}

#detailModal.detail-sheet-modal .stock-holder-item:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

#detailModal.detail-sheet-modal .stock-holder-item-name {
  display: block;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  color: #1d2129;
  word-break: break-word;
}

#detailModal.detail-sheet-modal .stock-holder-table-list {
  display: flex;
  flex-direction: column;
}

#detailModal.detail-sheet-modal .stock-holder-table-row {
  padding: 8px 0;
  border-bottom: 1px solid #f2f3f5;
}

#detailModal.detail-sheet-modal .stock-holder-table-row:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

#detailModal.detail-sheet-modal .stock-holder-table-list--pledge .stock-shareholder-metric-cell strong {
  font-size: 12px;
}

#detailModal.detail-sheet-modal .stock-trading-panel {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

#detailModal.stock-detail-sheet-modal .stock-trading-panel > .stock-shareholder-section:first-child .stock-shareholder-section-body > .stock-shareholder-metrics-row.cols-4 {
  column-gap: 8px;
  row-gap: 0;
  margin-bottom: 16px;
}

#detailModal.stock-detail-sheet-modal .stock-trading-panel > .stock-shareholder-section:first-child .stock-shareholder-section-body > .stock-shareholder-metrics-row.cols-4 > .stock-shareholder-metric-cell {
  padding: 8px 4px;
  border: 1px solid #ffcf8b;
  border-radius: 8px;
  background: linear-gradient(180deg, #fff7e8 0%, #ffeed4 48%, #ffe4ba 100%);
  box-sizing: border-box;
}

#detailModal.detail-sheet-modal .stock-hotmoney-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

#detailModal.detail-sheet-modal .stock-hotmoney-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-bottom: 8px;
  border-bottom: 1px solid #f2f3f5;
}

#detailModal.detail-sheet-modal .stock-hotmoney-item:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

#detailModal.detail-sheet-modal .stock-hotmoney-item-title {
  margin: 0;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  color: #0e42d2;
  word-break: break-word;
}

#detailModal.detail-sheet-modal .stock-trade-table-list .stock-shareholder-metric-cell strong {
  font-size: 12px;
}

#detailModal.detail-sheet-modal .stock-detail-news-panel {
  padding: 0;
  background: transparent;
}

#detailModal.detail-sheet-modal .stock-news-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 8px;
  background: #fff;
}

#detailModal.detail-sheet-modal .stock-news-item {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
  padding: 0 0 12px;
  border: 0;
  border-bottom: 1px solid #f2f3f5;
  border-radius: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
}

#detailModal.detail-sheet-modal .stock-news-item:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

#detailModal.detail-sheet-modal .stock-news-item-head {
  display: flex;
  align-items: flex-start;
  gap: 4px;
}

#detailModal.detail-sheet-modal .stock-news-item-title {
  flex: 1;
  margin: 0;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  color: #1d2129;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  max-height: 40px;
  word-break: break-word;
}

#detailModal.detail-sheet-modal .stock-news-source-tag {
  flex-shrink: 0;
  padding: 0 8px;
  border-radius: 30px;
  background: #e8f3ff;
  font-size: 12px;
  font-weight: 500;
  line-height: 20px;
  color: #165dff;
  white-space: nowrap;
}

#detailModal.detail-sheet-modal .stock-news-item-summary {
  margin: 0;
  font-size: 12px;
  line-height: 1.4;
  color: #1d2129;
  word-break: break-word;
}

#detailModal.detail-sheet-modal .stock-news-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

#detailModal.detail-sheet-modal .stock-news-theme-tag {
  padding: 0 8px;
  border-radius: 30px;
  background: #e8fffb;
  font-size: 12px;
  font-weight: 500;
  line-height: 20px;
  color: #0fc6c2;
}

#detailModal.news-detail-sheet-modal .news-detail-sheet {
  display: flex;
  flex-direction: column;
  gap: 0;
}

#detailModal.news-detail-sheet-modal .news-detail-article {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0;
  padding: 12px 12px;
  background: #fff;
}

#detailModal.news-detail-sheet-modal .news-detail-article-head {
  display: flex;
  align-items: flex-start;
  gap: 4px;
}

#detailModal.news-detail-sheet-modal .news-detail-article-title {
  flex: 1;
  margin: 0;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  color: #1d2129;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  max-height: 40px;
  word-break: break-word;
}

#detailModal.news-detail-sheet-modal .news-detail-source-tag {
  flex-shrink: 0;
  padding: 0 8px;
  border-radius: 30px;
  background: #e8f3ff;
  font-size: 12px;
  font-weight: 500;
  line-height: 20px;
  color: #165dff;
  white-space: nowrap;
}

#detailModal.news-detail-sheet-modal .news-detail-publish-time,
#detailModal.news-detail-sheet-modal .news-detail-article-body {
  margin: 0;
  font-size: 12px;
  line-height: 1.4;
  color: #1d2129;
  word-break: break-word;
}

#detailModal.news-detail-sheet-modal .news-detail-theme-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

#detailModal.news-detail-sheet-modal .news-detail-analysis-wrap {
  margin: 0;
  padding: 0 12px;
}

#detailModal.news-detail-sheet-modal .news-detail-analysis-wrap + .stock-shareholder-section {
  margin-top: 16px;
}

#detailModal.news-detail-sheet-modal .stock-shareholder-section {
  padding-left: 12px;
  padding-right: 12px;
}

#detailModal.news-detail-sheet-modal .news-detail-analysis-card.sector-analysis-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0;
  padding: 12px;
  border: 1px solid #ffcf8b;
  border-radius: 8px;
  background: linear-gradient(90deg, #ffeed4 0%, #ffe4ba 100%);
  box-sizing: border-box;
}

#detailModal.news-detail-sheet-modal .news-detail-analysis-card .sector-analysis-card-head {
  display: flex;
  align-items: center;
  gap: 4px;
  margin: 0;
  padding: 0;
}

#detailModal.news-detail-sheet-modal .news-detail-analysis-card .sector-analysis-card-head strong {
  font-size: 14px;
  font-weight: 500;
  color: #1d2129;
}

#detailModal.news-detail-sheet-modal .news-detail-analysis-card .sector-analysis-card-icon {
  display: inline-block;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  background: center / contain no-repeat url("/static/icons/figma-news-analysis-book.svg?v=20260609");
}

#detailModal.news-detail-sheet-modal .news-detail-analysis-card .sector-analysis-card-body,
#detailModal.news-detail-sheet-modal .news-detail-analysis-card .sector-analysis-card-body .analysis-list {
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

#detailModal.news-detail-sheet-modal .news-detail-analysis-card .sector-analysis-card-body .analysis-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

#detailModal.news-detail-sheet-modal .news-detail-analysis-card .sector-analysis-card-body .analysis-list p,
#detailModal.news-detail-sheet-modal .news-detail-analysis-card .sector-analysis-empty {
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
  color: #4e5969;
  text-align: justify;
}

#detailModal.news-detail-sheet-modal .news-detail-related-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

#detailModal.news-detail-sheet-modal .news-detail-sector-row,
#detailModal.news-detail-sheet-modal .news-detail-stock-row {
  display: block;
  width: 100%;
  padding: 8px 0;
  border: 0;
  border-bottom: 1px solid #f2f3f5;
  border-radius: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

#detailModal.news-detail-sheet-modal .news-detail-sector-row:hover,
#detailModal.news-detail-sheet-modal .news-detail-sector-row:active,
#detailModal.news-detail-sheet-modal .news-detail-sector-row:focus,
#detailModal.news-detail-sheet-modal .news-detail-sector-row:focus-visible,
#detailModal.news-detail-sheet-modal .news-detail-stock-row:hover,
#detailModal.news-detail-sheet-modal .news-detail-stock-row:active,
#detailModal.news-detail-sheet-modal .news-detail-stock-row:focus,
#detailModal.news-detail-sheet-modal .news-detail-stock-row:focus-visible {
  background: transparent !important;
  outline: none;
  box-shadow: none !important;
}

#detailModal.news-detail-sheet-modal .news-detail-sector-row:last-child,
#detailModal.news-detail-sheet-modal .news-detail-stock-row:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

#detailModal.news-detail-sheet-modal .news-detail-stock-name-cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  min-width: 0;
  text-align: center;
}

#detailModal.news-detail-sheet-modal .news-detail-stock-name-cell strong {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  color: #1d2129;
  word-break: break-word;
}

#detailModal.news-detail-sheet-modal .news-detail-stock-name-cell small {
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
  color: #4e5969;
}

#detailModal.news-detail-sheet-modal .news-detail-stock-metrics .stock-shareholder-metric-cell strong {
  font-size: 16px;
}

#detailModal.news-detail-sheet-modal .news-detail-sector-row .stock-shareholder-metric-cell:nth-child(2) strong,
#detailModal.news-detail-sheet-modal .news-detail-stock-metrics .stock-shareholder-metric-cell:nth-child(3) strong {
  font-size: 16px;
}

#detailModal.hot-money-detail-sheet-modal .hot-money-detail-sheet {
  display: flex;
  flex-direction: column;
  gap: 0;
  background: #fff;
}

#detailModal.hot-money-detail-sheet-modal .hot-money-detail-hero {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 8px 12px 0;
  background: #fff;
}

#detailModal.hot-money-detail-sheet-modal .hot-money-detail-identity {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

#detailModal.hot-money-detail-sheet-modal .hot-money-detail-trader {
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
  color: #1d2129;
}

#detailModal.hot-money-detail-sheet-modal .hot-money-detail-seats {
  margin: 0;
  font-size: 12px;
  line-height: 1.4;
  color: #86909c;
  word-break: break-word;
}

#detailModal.hot-money-detail-sheet-modal .hot-money-detail-sheet > .stock-shareholder-section {
  padding-top: 0;
  border-top: 0;
}

#detailModal.hot-money-detail-sheet-modal .hot-money-detail-summary {
  margin: 0;
  padding: 0;
}

#detailModal.hot-money-detail-sheet-modal .hot-money-detail-summary .stock-shareholder-metrics-row.cols-4 {
  gap: 8px;
}

#detailModal.hot-money-detail-sheet-modal .hot-money-detail-summary .stock-shareholder-metric-cell {
  padding: 10px 6px;
  border: 1px solid #e5e6eb;
  border-radius: 8px;
  background: linear-gradient(180deg, #fff 0%, #f7f8fa 100%);
  box-shadow: 0 1px 4px rgba(29, 33, 41, 0.06);
  box-sizing: border-box;
}

#detailModal.hot-money-detail-sheet-modal .hot-money-detail-summary .stock-shareholder-metric-cell strong {
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
}

#detailModal.hot-money-detail-sheet-modal .hot-money-detail-summary .stock-shareholder-metric-cell small {
  font-size: 12px;
  font-weight: 500;
  color: #4e5969;
}

#detailModal.hot-money-detail-sheet-modal .hot-money-holdings-list,
#detailModal.hot-money-detail-sheet-modal .hot-money-trade-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

#detailModal.hot-money-detail-sheet-modal .hot-money-holding-row,
#detailModal.hot-money-detail-sheet-modal .hot-money-trade-row {
  display: block;
  width: 100%;
  padding: 8px 0;
  border: 0;
  border-bottom: 1px solid #f2f3f5;
  border-radius: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

#detailModal.hot-money-detail-sheet-modal .hot-money-holding-row:hover,
#detailModal.hot-money-detail-sheet-modal .hot-money-holding-row:active,
#detailModal.hot-money-detail-sheet-modal .hot-money-holding-row:focus,
#detailModal.hot-money-detail-sheet-modal .hot-money-holding-row:focus-visible,
#detailModal.hot-money-detail-sheet-modal .hot-money-trade-row:hover,
#detailModal.hot-money-detail-sheet-modal .hot-money-trade-row:active,
#detailModal.hot-money-detail-sheet-modal .hot-money-trade-row:focus,
#detailModal.hot-money-detail-sheet-modal .hot-money-trade-row:focus-visible {
  background: transparent !important;
  outline: none;
  box-shadow: none !important;
}

#detailModal.hot-money-detail-sheet-modal .hot-money-holding-row:last-child,
#detailModal.hot-money-detail-sheet-modal .hot-money-trade-row:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

#detailModal.hot-money-detail-sheet-modal .hot-money-holding-metrics .stock-shareholder-metric-cell:nth-child(2) strong,
#detailModal.hot-money-detail-sheet-modal .hot-money-holding-metrics .stock-shareholder-metric-cell:nth-child(3) strong {
  font-size: 16px;
}

#detailModal.hot-money-detail-sheet-modal .hot-money-trade-tabs--mobile {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 0 12px 12px;
  background: #fff;
}

#detailModal.hot-money-detail-sheet-modal .hot-money-trade-mode-tabs {
  position: sticky;
  top: 0;
  z-index: 10;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 4px;
  width: 100%;
  box-sizing: border-box;
  background: #f6f9fd;
  padding: 4px;
  border: 1px solid var(--line);
  border-radius: 8px;
}

#detailModal.hot-money-detail-sheet-modal .hot-money-trade-mode-tabs::before {
  content: "";
  position: absolute;
  top: -4px;
  left: -12px;
  right: -12px;
  bottom: -4px;
  background: #fff;
  z-index: -1;
}

#detailModal.hot-money-detail-sheet-modal .hot-money-trade-tabs-thumb {
  display: none;
}

#detailModal.hot-money-detail-sheet-modal .hot-money-trade-mode-tabs button {
  position: relative;
  z-index: 1;
  min-width: 0;
  min-height: 44px;
  padding: 8px 6px;
  text-align: center;
  font-size: 13px;
  line-height: 1.2;
  white-space: nowrap;
  border: 1px solid transparent;
  border-radius: 6px;
  background: transparent;
  color: var(--muted);
  -webkit-tap-highlight-color: transparent;
  transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}

#detailModal.hot-money-detail-sheet-modal .hot-money-trade-mode-tabs button:hover,
#detailModal.hot-money-detail-sheet-modal .hot-money-trade-mode-tabs button:active,
#detailModal.hot-money-detail-sheet-modal .hot-money-trade-mode-tabs button:focus,
#detailModal.hot-money-detail-sheet-modal .hot-money-trade-mode-tabs button:focus-visible {
  background: transparent;
  outline: none;
}

#detailModal.hot-money-detail-sheet-modal .hot-money-trade-mode-tabs button.active {
  border-color: var(--blue);
  background: #fff;
  color: var(--blue);
  font-weight: 500;
  box-shadow: 0 1px 4px rgba(16, 24, 40, .08);
}

#detailModal.hot-money-detail-sheet-modal .hot-money-trade-tab-label {
  color: inherit;
}

#detailModal.hot-money-detail-sheet-modal .hot-money-trade-tab-amount {
  font-weight: 500;
}

#detailModal.hot-money-detail-sheet-modal .hot-money-trade-tab-amount.up {
  color: #f53f3f;
}

#detailModal.hot-money-detail-sheet-modal .hot-money-trade-tab-amount.down {
  color: #00b42a;
}

/* 4-tab 布局：标签缩窄时减小字号 */
#detailModal.hot-money-detail-sheet-modal .hot-money-trade-mode-tabs button .hot-money-trade-tab-label {
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

#detailModal.hot-money-detail-sheet-modal .hot-money-trade-metrics .stock-shareholder-metric-cell:nth-child(3) strong.up,
#detailModal.hot-money-detail-sheet-modal .hot-money-trade-metrics .stock-shareholder-metric-cell:nth-child(4) strong.up {
  color: #f53f3f;
}

#detailModal.hot-money-detail-sheet-modal .hot-money-trade-metrics .stock-shareholder-metric-cell:nth-child(3) strong.down,
#detailModal.hot-money-detail-sheet-modal .hot-money-trade-metrics .stock-shareholder-metric-cell:nth-child(4) strong.down {
  color: #00b42a;
}

@media (prefers-reduced-motion: reduce) {
  #detailModal.hot-money-detail-sheet-modal .hot-money-trade-mode-tabs button {
    transition: none;
  }
}

.modal-body {
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  padding: 16px;
}

/* 游资详情改为块级流式排版，由 .modal-body 统一纵向滚动；不在此容器内再做 flex:1 抢高 */
.modal-body.hot-money-detail-body {
  display: block;
}

.modal-body h3 {
  margin: 20px 0 10px;
  font-size: 16px;
}

.stock-base-block {
  display: grid;
  gap: 10px;
  margin-bottom: 0;
}

.cninfo-market-panel {
  display: grid;
  gap: 10px;
  margin-bottom: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
}

.cninfo-market-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--line);
  background: #fbfcfe;
}

.cninfo-market-head span {
  display: block;
  color: var(--blue);
  font-size: 11px;
  font-weight: 900;
}

.cninfo-market-head strong {
  display: block;
  margin-top: 3px;
  font-size: 16px;
}

.cninfo-market-links {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.cninfo-market-links a {
  border: 1px solid #cfe0f8;
  border-radius: 8px;
  padding: 7px 10px;
  color: var(--blue);
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
  background: #f3f8ff;
}

.cninfo-market-chart-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  padding: 8px 10px 10px;
  align-items: stretch;
}

.cninfo-market-chart-cell {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  height: 100%;
}

.cninfo-market-chart,
.cninfo-market-empty,
.cninfo-history-wrap {
  min-width: 0;
  width: 100%;
}

.cninfo-market-chart-cell--realtime > .cninfo-market-chart,
.cninfo-market-chart-cell--realtime > .cninfo-market-empty {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.cninfo-market-chart {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.cninfo-market-empty {
  min-height: 0;
  display: grid;
  place-items: center;
  color: var(--muted);
  font-size: 13px;
  border: none;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.cninfo-market-empty--fill {
  flex: 1 1 auto;
  width: 100%;
  height: 100%;
  min-height: 0;
}

.cninfo-market-chart-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  padding: 6px 10px 0;
  flex: 0 0 auto;
}

.cninfo-market-chart-head--with-tabs {
  align-items: center;
  flex-wrap: nowrap;
  gap: 10px;
  padding: 6px 10px 4px;
}

.cninfo-market-chart-head--with-tabs strong {
  flex: 1 1 auto;
  min-width: 0;
}

.cninfo-market-chart-head--with-tabs .sector-day-tabs {
  flex: 0 0 auto;
  margin-left: auto;
}

.cninfo-period-tabs-placeholder {
  visibility: hidden;
  pointer-events: none;
}

@media (max-width: 900px) {
  .cninfo-market-chart-head--with-tabs .cninfo-history-period-tabs.sector-day-tabs,
  .cninfo-market-chart-head--with-tabs .cninfo-period-tabs-placeholder.sector-day-tabs {
    width: auto;
    display: inline-flex;
    grid-template-columns: none;
    margin-left: auto;
  }
}

.cninfo-market-chart-head strong {
  font-size: 16px;
  line-height: 1.25;
}

.cninfo-market-chart-head span {
  color: var(--muted);
  font-size: 12px;
}

.cninfo-history-wrap {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
}

.cninfo-history-wrap > .cninfo-market-chart {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
  height: 100%;
  border: none;
  border-radius: 0;
  padding: 0 0 8px;
}

.cninfo-history-wrap [data-cninfo-history-mount] {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
  padding: 0 10px;
}

.cninfo-history-wrap [data-cninfo-history-mount] > .cninfo-chart-body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
  height: 100%;
}

.cninfo-market-chart--realtime,
.cninfo-history-wrap > .cninfo-market-chart {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.cninfo-chart-body {
  flex: 0 0 auto;
  width: 100%;
  aspect-ratio: 960 / 280;
  max-height: 280px;
  min-height: 0;
  position: relative;
}

.cninfo-chart-body svg {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
}

.cninfo-intraday-svg,
.cninfo-history-svg {
  vertical-align: top;
}

.stock-cninfo-hero #stockTrendMount {
  min-height: 0;
}

.stock-cninfo-hero #stockTrendMount .cninfo-market-panel {
  margin-bottom: 0;
}

.cninfo-intraday-svg .axis,
.cninfo-history-svg .axis {
  stroke: #d8dee9;
  stroke-width: 1;
}

.cninfo-intraday-svg .lunch-line,
.line-chart-intraday .lunch-line {
  stroke: #d8dee9;
  stroke-width: 1;
  stroke-dasharray: 4 4;
}

.cninfo-intraday-svg .pending-area {
  fill: rgba(148, 163, 184, 0.14);
}

.cninfo-intraday-svg .time-grid {
  stroke: #eef1f5;
  stroke-width: 1;
}

.cninfo-intraday-svg .now-line {
  stroke: #94a3b8;
  stroke-width: 1;
  stroke-dasharray: 4 3;
}

.cninfo-intraday-svg .prev-line {
  stroke: #9aa8bd;
  stroke-width: 1;
  stroke-dasharray: 5 4;
}

.line-chart-intraday .intraday-segment {
  fill: none;
  stroke-width: 2;
}

.line-chart-intraday .intraday-segment.chart-up {
  stroke: #ef4444;
}

.line-chart-intraday .intraday-segment.chart-down {
  stroke: #059669;
}

.cninfo-intraday-svg .price-line {
  fill: none;
  stroke: #1d2129;
  stroke-width: 2.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.cninfo-intraday-svg .avg-line {
  fill: none;
  stroke: #ff8f3d;
  stroke-width: 2;
}

.cninfo-intraday-svg text,
.cninfo-history-svg text {
  fill: #6b7484;
  font-size: 12px;
}

.cninfo-intraday-svg rect.up,
.cninfo-history-svg line.up,
.cninfo-history-svg line.wick.up {
  stroke: #ef4444;
}

.cninfo-intraday-svg rect.down,
.cninfo-history-svg line.down,
.cninfo-history-svg line.wick.down {
  stroke: #059669;
}

.cninfo-intraday-svg rect.up,
.cninfo-history-svg rect.candle-body.up {
  fill: #ef4444;
  stroke: #ef4444;
}

.cninfo-intraday-svg rect.down,
.cninfo-history-svg rect.candle-body.down {
  fill: #059669;
  stroke: #059669;
}

.cninfo-history-svg rect.candle-body.up,
.cninfo-history-svg rect.candle-body.down {
  fill-opacity: .78;
  stroke: none;
}

.cninfo-history-svg rect.volume-bar.up {
  fill: #ef4444;
  fill-opacity: .78;
  stroke: none;
}

.cninfo-history-svg rect.volume-bar.down {
  fill: #059669;
  fill-opacity: .78;
  stroke: none;
}

.cninfo-history-svg .volume-divider {
  stroke: #e5e6eb;
  stroke-width: 1;
}

.cninfo-history-svg .volume-label {
  fill: #86909c;
  font-size: 11px;
}

#stockBaseMount {
  margin-top: 12px;
}

.stock-base-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.stock-base-head h3 {
  margin: 0;
}

.stock-base-tabs {
  display: flex;
  gap: 8px;
  overflow-x: auto;
}

.stock-base-tabs button {
  min-width: 86px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--text);
  padding: 8px 10px;
  cursor: pointer;
  text-align: left;
}

.stock-base-tabs button.active {
  border-color: var(--blue);
  background: #eef5ff;
  color: var(--blue);
  font-weight: 700;
}

.stock-base-tabs span,
.detail-summary small {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 500;
}

.detail-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--line);
  margin-bottom: 16px;
}

.detail-summary > div {
  background: #fff;
  padding: 14px;
}

.detail-summary span {
  display: block;
  color: var(--muted);
  font-size: 12px;
  margin-bottom: 6px;
}

.detail-summary strong {
  font-size: 17px;
}

.detail-summary strong.up {
  color: var(--red);
}

.detail-summary strong.down {
  color: var(--green);
}

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

.chart-grid[hidden],
[data-stock-today-section][hidden] {
  display: none;
}

.chart-card,
.chart-empty {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.chart-empty {
  min-height: 220px;
  display: grid;
  place-items: center;
  color: var(--muted);
  padding: 18px;
  text-align: center;
}

.chart-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px 0;
}

.chart-head strong {
  font-size: 12px;
  line-height: 1.25;
}

.chart-head span {
  color: var(--muted);
  font-size: 12px;
  text-align: right;
}

.line-chart {
  width: 100%;
  height: auto;
  display: block;
}

.line-chart line {
  stroke: #d0d7e2;
  stroke-width: 1;
}

.line-chart .zero-line {
  stroke: #5d6678;
  stroke-width: 1.6;
  stroke-dasharray: 5 4;
}

.line-chart polyline {
  fill: none;
  stroke: var(--blue);
  stroke-width: 2.4;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.line-chart polyline.chart-up,
.chart-card.chart-up .line-chart circle {
  stroke: var(--red);
}

.line-chart polyline.chart-down,
.chart-card.chart-down .line-chart circle {
  stroke: var(--green);
}

.line-chart circle {
  fill: #fff;
  stroke: var(--blue);
  stroke-width: 1.8;
}

.line-chart text {
  fill: var(--muted);
  font-size: 11px;
}

.line-chart .zero-label {
  fill: #596579;
  font-weight: 700;
}

.line-chart .pct-grid,
.cninfo-intraday-svg .pct-grid {
  stroke: #e8edf3;
  stroke-width: 1;
}

.line-chart .pct-grid.pct-axis-zero,
.cninfo-intraday-svg .pct-grid.pct-axis-zero {
  stroke: #9aa8bd;
  stroke-width: 1.2;
  stroke-dasharray: 5 4;
}

.line-chart .pct-axis-label,
.cninfo-intraday-svg .pct-axis-label {
  fill: #6b7484;
  font-size: 11px;
  font-weight: 600;
}

.line-chart .pct-axis-label.pct-axis-up,
.cninfo-intraday-svg .pct-axis-label.pct-axis-up {
  fill: #dc2626;
}

.line-chart .pct-axis-label.pct-axis-down,
.cninfo-intraday-svg .pct-axis-label.pct-axis-down {
  fill: #059669;
}

.line-chart .pct-axis-label.pct-axis-zero,
.cninfo-intraday-svg .pct-axis-label.pct-axis-zero {
  fill: #596579;
  font-weight: 700;
}

.analysis-list {
  display: grid;
  gap: 8px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfcfe;
}

.finance-block {
  display: grid;
  gap: 12px;
}

.finance-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfcfe;
}

.finance-head span {
  color: var(--muted);
  font-size: 12px;
  text-align: right;
}

.finance-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--line);
  min-width: 0;
  max-width: 100%;
}

.finance-metric {
  display: grid;
  gap: 5px;
  background: #fff;
  padding: 14px;
  min-width: 0;
}

.finance-metric span,
.finance-metric em {
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.finance-metric em.up {
  color: var(--red);
}

.finance-metric em.down {
  color: var(--green);
}

.finance-metric strong.up {
  color: var(--red);
}

.finance-metric strong.down {
  color: var(--green);
}

.finance-metric strong {
  font-size: 18px;
  overflow-wrap: anywhere;
  word-break: break-word;
  line-height: 1.3;
}

.fund-holding-card {
  display: grid;
  gap: 10px;
}

.fund-holding-summary {
  display: grid;
  grid-template-columns: 1.2fr 1fr 1fr;
  gap: 1px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--line);
}

.fund-holding-summary article {
  display: grid;
  gap: 6px;
  background: #fff;
  padding: 14px;
}

.fund-holding-summary span,
.fund-holding-summary small {
  color: var(--muted);
  font-size: 12px;
}

.fund-holding-summary strong {
  color: var(--red);
  font-size: 22px;
}

.fund-list {
  display: grid;
  gap: 1px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--line);
}

.fund-row {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) minmax(64px, 76px);
  gap: 8px 12px;
  align-items: center;
  text-align: left;
  background: #fff;
  padding: 11px 12px;
}

.fund-row > span {
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #fff1e6;
  color: #c25a00;
  font-size: 12px;
  font-weight: 800;
}

.fund-row strong {
  min-width: 0;
  overflow-wrap: anywhere;
}

.fund-row em {
  color: var(--red);
  font-style: normal;
  font-weight: 800;
  text-align: left;
}

.fund-row small {
  grid-column: 2 / 4;
  text-align: left;
}

.shareholder-list {
  display: grid;
  gap: 1px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--line);
}

.shareholder-row {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) minmax(82px, 110px);
  gap: 8px 12px;
  align-items: start;
  text-align: left;
  background: #fff;
  padding: 11px 12px;
}

.shareholder-row > span {
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #eef3fb;
  color: var(--blue);
  font-size: 12px;
  font-weight: 800;
}

.shareholder-row strong {
  min-width: 0;
  overflow-wrap: anywhere;
}

.shareholder-ratio {
  display: grid;
  gap: 4px;
  justify-items: start;
  min-width: 0;
}

.shareholder-row em {
  color: var(--red);
  font-style: normal;
  font-weight: 800;
  text-align: left;
}

.shareholder-row small {
  grid-column: 2;
  text-align: left;
}

.shareholder-ratio small {
  grid-column: auto;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.25;
}

.shareholder-ratio small.up {
  color: var(--red);
}

.shareholder-ratio small.down {
  color: var(--green);
}

.finance-note {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}

.stock-detail-body {
  background: #f5f7fb;
}

.stock-cninfo-hero {
  display: grid;
  gap: 14px;
  margin-bottom: 16px;
  padding: 18px;
  border: 1px solid #d8e1ee;
  border-radius: 10px;
  background: linear-gradient(135deg, #ffffff 0%, #f2f6fc 100%);
}

.stock-cninfo-hero > div > span,
.cninfo-profile-hero span {
  color: var(--blue);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .08em;
}

.stock-cninfo-hero strong,
.cninfo-profile-hero strong {
  display: block;
  margin-top: 5px;
  color: var(--ink);
  font-size: 24px;
}

/* 图表标题不跟随顶部大号 strong（24px） */
.stock-cninfo-hero .chart-head strong,
.stock-cninfo-hero .cninfo-market-chart-head strong {
  display: inline;
  margin-top: 0;
  font-size: 16px;
  line-height: 1.25;
}

.stock-cninfo-hero em {
  color: var(--muted);
  font-size: 16px;
  font-style: normal;
}

.stock-cninfo-hero small,
.cninfo-profile-hero small {
  display: block;
  margin-top: 5px;
  color: var(--muted);
}

.stock-detail-quote-refresh {
  margin-top: -6px;
}

.stock-detail-quote-refresh button {
  border: 1px solid #b9c9e2;
  border-radius: 8px;
  background: #fff;
  color: var(--blue);
  padding: 6px 12px;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.stock-detail-quote-refresh button:hover {
  background: #eef4ff;
}

.stock-ai-analysis {
  display: grid;
  gap: 12px;
  margin-bottom: 16px;
  padding: 16px;
  border: 1px solid #d8e1ee;
  border-radius: 10px;
  background: #ffffff;
}

.stock-ai-analysis-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.stock-ai-analysis-head span {
  display: block;
  color: var(--blue);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .08em;
}

.stock-ai-analysis-head strong {
  display: block;
  margin-top: 4px;
  color: var(--ink);
  font-size: 17px;
}

.stock-ai-analysis-head small {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  line-height: 1.45;
}

.stock-ai-analysis-head button {
  flex: 0 0 auto;
  border: 1px solid #1d4ed8;
  border-radius: 8px;
  background: #1d4ed8;
  color: #fff;
  min-width: 92px;
  padding: 8px 14px;
  font-size: 13px;
  font-weight: 900;
  cursor: pointer;
}

.stock-ai-analysis-head button:hover {
  background: #163fae;
}

.stock-ai-analysis-head button:disabled {
  border-color: #b9c9e2;
  background: #dbe5f4;
  color: #6b7890;
  cursor: progress;
}

.stock-ai-analysis-head button.is-ai-analyzing,
#detailModalAiBtn.is-ai-analyzing {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  cursor: progress;
}

.stock-ai-btn-spinner {
  display: inline-block;
  width: 14px;
  height: 14px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: stock-ai-btn-spin 0.75s linear infinite;
  flex-shrink: 0;
}

@keyframes stock-ai-btn-spin {
  to {
    transform: rotate(360deg);
  }
}

#detailModalAiBtn.is-ai-analyzing {
  opacity: 0.92;
}

.stock-ai-result-modal {
  position: fixed;
  inset: 0;
  z-index: 150;
}

.stock-ai-result-modal[hidden] {
  display: none !important;
}

.stock-ai-result-modal .modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(29, 33, 41, 0.45);
}

.stock-ai-result-panel {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  width: min(520px, calc(100vw - 32px));
  height: min(78dvh, 680px);
  max-height: min(78dvh, 680px);
  border-radius: 0;
  background: #fff;
  box-shadow: 0 20px 48px rgba(29, 33, 41, 0.18);
  overflow: hidden;
  box-sizing: border-box;
}

.stock-ai-result-head {
  flex-shrink: 0;
  padding: 12px 16px;
  border-bottom: 1px solid #f2f3f5;
  text-align: center;
}

.stock-ai-result-head h2 {
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
  color: #1d2129;
}

.stock-ai-result-meta {
  margin: 4px 0 0;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
  color: #86909c;
}

.stock-ai-result-body {
  flex: 1 1 auto;
  min-height: 0;
  padding: 12px 16px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.stock-ai-result-body:has(> .stock-ai-analysis-loading) {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.stock-ai-result-body .stock-ai-analysis-loading {
  width: min(100%, 420px);
}

.stock-ai-result-body .stock-ai-analysis-loading-card {
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  text-align: center;
}

.stock-ai-result-body .stock-ai-analysis-loading,
.stock-ai-result-body .stock-ai-analysis-content,
.stock-ai-result-body .finance-note {
  margin: 0;
}

.stock-ai-result-foot {
  flex-shrink: 0;
  padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid #f2f3f5;
  background: #fff;
}

.stock-ai-result-foot .detail-sheet-dismiss {
  width: 100%;
  min-height: 40px;
}

.stock-ai-analysis-result {
  border-top: 1px solid #e5ecf6;
  padding-top: 12px;
}

.stock-ai-analysis-result[hidden] {
  display: none;
}

.stock-ai-analysis-loading {
  display: block;
}

.stock-ai-analysis-loading-card small {
  max-width: 100%;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.stock-ai-analysis-loading-card small b {
  color: var(--blue);
  font-weight: 900;
}

.stock-ai-analysis-loading-card small em {
  display: inline-flex;
  margin-left: 6px;
  color: #7a8aa8;
  font-size: 11px;
  font-style: normal;
  font-weight: 900;
}

.stock-ai-analysis-loading-card .stock-ai-analysis-loading-guard {
  color: #f97316;
  font-weight: 900;
}

.stock-ai-analysis-warning {
  margin: 0;
  padding: 9px 11px;
  border: 1px solid rgba(199, 38, 46, .22);
  border-radius: 8px;
  background: #fff7ed;
  color: #8a4b05;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.5;
}

.stock-ai-analysis-content {
  color: #253044;
  font-size: 14px;
  line-height: 1.78;
  white-space: normal;
}

.stock-ai-analysis-content--typing::after {
  content: "";
  display: inline-block;
  width: 2px;
  height: 1.05em;
  margin-left: 3px;
  background: #2454a6;
  opacity: 0.85;
  vertical-align: -0.14em;
  animation: super-analysis-caret-blink 0.95s step-end infinite;
}

.stock-ai-analysis-content .super-analysis-entity-link {
  font-size: inherit;
}

.stock-detail-cninfo {
  display: grid;
  gap: 14px;
}

.stock-detail-tabs {
  position: sticky;
  top: 0;
  z-index: 6;
  display: flex;
  gap: 6px;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  scroll-snap-type: x proximity;
  padding: 8px;
  border: 1px solid #d8e1ee;
  border-radius: 10px;
  background: rgba(255, 255, 255, .96);
}

.stock-detail-tabs button {
  flex: 0 0 auto;
  scroll-snap-align: start;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: #596579;
  padding: 8px 11px;
  font-weight: 800;
  cursor: pointer;
  touch-action: manipulation;
}

.stock-detail-tabs button.active {
  border-color: #b9c9e2;
  background: #eef4ff;
  color: var(--blue);
}

.stock-detail-panel[hidden] {
  display: none;
}

.stock-detail-panels {
  min-width: 0;
}

.stock-detail-panel {
  min-width: 0;
}

.cninfo-section {
  display: grid;
  gap: 14px;
  padding: 16px;
  border: 1px solid #d8e1ee;
  border-radius: 10px;
  background: #fff;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

.cninfo-group-section {
  gap: 16px;
}

.cninfo-subsection {
  display: grid;
  gap: 10px;
  min-width: 0;
  max-width: 100%;
}

.cninfo-subsection-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--line);
}

.cninfo-subsection-head h3 {
  margin: 0;
}

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

.cninfo-scroll-block {
  max-height: none;
  overflow: visible;
  padding-right: 0;
  min-width: 0;
  max-width: 100%;
}

.cninfo-quote-embed {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.cninfo-quote-crawled {
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 10px;
  background: #fbfcfe;
}

.cninfo-quote-iframe {
  width: 100%;
  min-height: 520px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.cninfo-embed-foot {
  margin: 0;
  font-size: 12px;
}

.cninfo-scroll-block > .cninfo-section {
  border-radius: 8px;
  padding: 12px;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

.cninfo-section.two-column {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
}

.cninfo-profile-hero {
  display: grid;
  gap: 10px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
  min-width: 0;
  max-width: 100%;
}

.cninfo-profile-hero > div {
  min-width: 0;
  max-width: 100%;
}

.cninfo-profile-hero p,
.cninfo-copy,
.cninfo-break-text {
  color: var(--text);
  font-size: 14px;
  line-height: 1.75;
  margin: 0;
  overflow-wrap: anywhere;
  word-break: break-word;
  white-space: pre-wrap;
  max-width: 100%;
}

.cninfo-break-link {
  color: var(--blue);
  font-weight: 800;
  overflow-wrap: anywhere;
  word-break: break-all;
}

.cninfo-info-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--line);
}

.cninfo-info-grid div {
  min-width: 0;
  background: #fff;
  padding: 11px 12px;
}

.cninfo-info-grid dt {
  color: var(--muted);
  font-size: 12px;
}

.cninfo-info-grid dd {
  margin: 5px 0 0;
  color: var(--ink);
  font-size: 13px;
  font-weight: 800;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.cninfo-info-grid dd .cninfo-break-text,
.cninfo-info-grid dd .cninfo-break-link {
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  color: inherit;
}

.cninfo-table-wrap {
  max-height: none;
  overflow-x: auto;
  overflow-y: visible;
  -webkit-overflow-scrolling: touch;
  border: 1px solid var(--line);
  border-radius: 8px;
  max-width: 100%;
}

.cninfo-table {
  min-width: 680px;
  width: 100%;
}

.cninfo-table th {
  position: static;
}

.cninfo-table td a {
  color: var(--blue);
  font-weight: 800;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.cninfo-table td {
  overflow-wrap: anywhere;
  word-break: break-word;
}

.cninfo-executive-detail {
  max-width: 360px;
  font-size: 12px;
  line-height: 1.45;
  color: var(--muted, #5c6470);
  white-space: normal;
}

.cninfo-exec-more {
  font-size: 12px;
  white-space: nowrap;
}

.cninfo-exec-detail-btn {
  border: 1px solid rgba(37, 99, 235, 0.22);
  border-radius: 999px;
  background: rgba(37, 99, 235, 0.08);
  color: var(--blue);
  font-size: 12px;
  font-weight: 800;
  padding: 5px 12px;
  cursor: pointer;
  white-space: nowrap;
}

.cninfo-exec-detail-btn:hover {
  background: rgba(37, 99, 235, 0.14);
}

.stock-position-cell {
  vertical-align: middle;
}

.stock-position-detail-btn {
  border: 1px solid rgba(37, 99, 235, 0.22);
  border-radius: 999px;
  background: rgba(37, 99, 235, 0.08);
  color: var(--blue);
  font-size: 12px;
  font-weight: 800;
  padding: 5px 12px;
  cursor: pointer;
  white-space: nowrap;
}

.stock-position-detail-btn:hover {
  background: rgba(37, 99, 235, 0.14);
}

.executive-detail-dialog {
  position: fixed;
  inset: 0;
  /* 高于股票/板块详情抽屉 .modal（z-index:120），否则高管详情被压在抽屉下 */
  z-index: 200;
  display: grid;
  place-items: center;
  padding: 24px;
}

.position-risk-detail-dialog {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  box-sizing: border-box;
}

.position-risk-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(29, 33, 41, 0.45);
}

.position-risk-sheet-panel {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  width: min(440px, 100%);
  max-height: min(680px, 88vh);
  border-radius: 0;
  background: #fff;
  box-shadow: 0 20px 48px rgba(29, 33, 41, 0.18);
  overflow: hidden;
  box-sizing: border-box;
}

.position-risk-sheet-head {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  align-items: start;
  padding: 16px 16px 12px;
  border-bottom: 1px solid #f2f3f5;
}

.position-risk-sheet-handle {
  display: none;
}

.position-risk-sheet-head-main {
  min-width: 0;
}

.position-risk-sheet-kicker {
  margin: 0 0 4px;
  color: #86909c;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
}

.position-risk-sheet-name {
  margin: 0;
  color: #1d2129;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.4;
}

.position-risk-sheet-meta {
  margin: 4px 0 0;
  color: #4e5969;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
}

.position-risk-sheet-close {
  display: none !important;
}

.position-risk-sheet-close:hover {
  background: #f2f3f5;
  color: #4e5969;
}

.position-risk-sheet-body {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 12px 16px 16px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.position-risk-advice-badge {
  align-self: flex-start;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 500;
  line-height: 20px;
}

.position-risk-advice-badge--active {
  color: #165dff;
  background: #e8f3ff;
}

.position-risk-advice-badge--caution {
  color: #ff7d00;
  background: #fff7e8;
}

.position-risk-advice-badge--danger {
  color: #f53f3f;
  background: #ffece8;
}

.position-risk-advice-badge--neutral {
  color: #4e5969;
  background: #f2f3f5;
}

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

.position-risk-stat-card {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
  padding: 10px 12px;
  border-radius: 8px;
  background: #f7f8fa;
  box-sizing: border-box;
}

.position-risk-stat-card--wide {
  grid-column: 1 / -1;
}

.position-risk-stat-label {
  color: #86909c;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
}

.position-risk-stat-value {
  color: #1d2129;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
}

.position-risk-stat-value--muted {
  font-size: 14px;
  font-weight: 500;
}

.position-risk-stat-value--stop {
  color: #f53f3f;
}

.position-risk-stat-note {
  color: #86909c;
  font-size: 11px;
  font-weight: 400;
  line-height: 1.4;
}

.position-risk-block {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 12px;
  border: 1px solid #f2f3f5;
  border-radius: 8px;
  background: #fff;
}

.position-risk-block--note {
  background: #f7f8fa;
  border-color: #f2f3f5;
}

.position-risk-block-title {
  margin: 0;
  color: #4e5969;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.4;
}

.position-risk-block-text {
  margin: 0;
  color: #1d2129;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.6;
  white-space: pre-wrap;
  word-break: break-word;
}

.position-risk-sheet-foot {
  flex-shrink: 0;
  padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid #f2f3f5;
  background: #fff;
}

.position-risk-sheet-dismiss {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 40px;
  padding: 8px 16px;
  border: 1px solid #e5e6eb;
  border-radius: 4px;
  background: #f7f8fa;
  color: #1d2129;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.4;
  cursor: pointer;
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}

.position-risk-sheet-dismiss:hover {
  border-color: #c9cdd4;
  background: #f2f3f5;
}

.stock-ai-close-confirm {
  position: fixed;
  inset: 0;
  z-index: 220;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  box-sizing: border-box;
}

.stock-ai-close-confirm[hidden] {
  display: none !important;
}

.stock-ai-close-confirm-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.42);
}

.stock-ai-close-confirm-panel {
  position: relative;
  z-index: 1;
  width: min(430px, 94vw);
  display: grid;
  gap: 10px;
  padding: 20px;
  border: 1px solid #d8e1ee;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 24px 60px rgba(15, 23, 42, 0.24);
  text-align: center;
}

.stock-ai-close-confirm-panel span {
  color: var(--blue);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .04em;
}

.stock-ai-close-confirm-panel h3 {
  margin: 0;
  color: var(--ink);
  font-size: 20px;
}

.stock-ai-close-confirm-panel p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.6;
}

.stock-ai-close-confirm-actions {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 8px;
}

.stock-ai-close-confirm-actions .secondary {
  background: #fff;
  color: var(--muted);
}

.executive-detail-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.48);
}

.executive-detail-panel {
  position: relative;
  z-index: 1;
  width: min(720px, 96vw);
  max-height: min(760px, 88vh);
  overflow: auto;
  border-radius: 18px;
  border: 1px solid var(--line);
  background: #fff;
  box-shadow: 0 24px 60px rgba(15, 23, 42, 0.24);
  padding: 18px;
}

.executive-detail-panel header {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--line);
}

.executive-detail-panel header span,
.executive-detail-panel header small {
  color: var(--muted);
  font-size: 12px;
}

.executive-detail-panel h3 {
  margin: 4px 0;
  font-size: 20px;
}

.executive-detail-panel header button {
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--card);
  color: var(--text);
  font-weight: 800;
  padding: 7px 14px;
  cursor: pointer;
}

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

.executive-detail-meta div {
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--card);
  padding: 10px;
}

.executive-detail-meta dt {
  color: var(--muted);
  font-size: 12px;
  margin-bottom: 5px;
}

.executive-detail-meta dd {
  margin: 0;
  font-weight: 800;
}

.executive-detail-content {
  color: var(--text);
  font-size: 14px;
  line-height: 1.85;
  white-space: pre-wrap;
}

.executive-detail-panel footer {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}

.cninfo-statement {
  display: grid;
  gap: 10px;
  min-width: 0;
  max-width: 100%;
}

.cninfo-statement h3 {
  margin: 0;
  font-size: 15px;
}

.cninfo-metrics {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 132px), 1fr));
}

.async-loading {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 56px;
  padding: 14px 16px;
  border: 1px solid #cfe0f6;
  border-radius: 8px;
  background: #f6f9ff;
  color: var(--blue);
}

.async-loading strong,
.async-loading small {
  display: block;
}

.async-loading strong {
  font-size: 14px;
  line-height: 1.35;
}

.async-loading small {
  margin-top: 3px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.4;
}

.async-loading-dot {
  width: 10px;
  height: 10px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--blue);
  box-shadow: 0 0 0 0 rgba(36, 84, 166, .35);
  animation: loadingPulse 1.2s ease-out infinite;
}

.async-loading-spinner {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  border: 2px solid rgba(36, 84, 166, 0.16);
  border-top-color: var(--blue);
  border-radius: 50%;
  animation: asyncLoadingSpin 0.75s linear infinite;
}

.sector-section-loading {
  margin: 4px 0 10px;
}

.sector-detail-body .async-loading {
  margin: 0;
}

.sector-detail-body .stock-chart-loading .async-loading {
  margin: 0;
}

.stock-chart-loading {
  display: grid;
  gap: 12px;
}

.stock-detail-chart-loading,
.stock-detail-chart-loading-wrap .stock-detail-chart-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 180px;
  padding: 24px 16px;
  color: #86909c;
  text-align: center;
}

.stock-chart-mount > .stock-detail-chart-loading,
.stock-chart-mount > .stock-detail-chart-loading-wrap,
.sector-chart-mount > .stock-detail-chart-loading,
.sector-chart-mount > .stock-detail-chart-loading-wrap {
  flex: 1 1 auto;
  width: 100%;
  min-height: 100%;
  box-sizing: border-box;
}

.stock-detail-chart-loading-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
}

.stock-detail-chart-loading-wrap .stock-detail-chart-loading {
  min-height: 100%;
}

.stock-detail-chart-loading .async-loading-spinner,
.stock-detail-chart-loading-wrap .async-loading-spinner {
  width: 28px;
  height: 28px;
  border-width: 3px;
  border-color: rgba(32, 38, 56, 0.12);
  border-top-color: #202638;
}

.stock-detail-chart-loading .stock-detail-loading-center-text {
  font-size: 13px;
  line-height: 1.5;
}

.stock-detail-chart-loading--skeleton {
  gap: 14px;
  min-height: 220px;
  padding: 16px 12px 20px;
}

.stock-detail-chart-loading-meta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.stock-detail-chart-loading-subline {
  font-size: 12px;
  line-height: 1.45;
  color: #a8adb8;
}

.stock-chart-skeleton {
  position: relative;
  width: 100%;
  height: clamp(132px, 34vw, 168px);
  overflow: hidden;
  border-radius: 10px;
  background: linear-gradient(180deg, #f7f8fa 0%, #eef1f5 100%);
}

.stock-chart-skeleton-shimmer {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    105deg,
    transparent 38%,
    rgba(255, 255, 255, 0.72) 50%,
    transparent 62%
  );
  transform: translateX(-120%);
  animation: stockChartSkeletonShimmer 1.45s ease-in-out infinite;
}

.stock-chart-skeleton-line {
  position: absolute;
  left: 6%;
  right: 6%;
  top: 18%;
  width: 88%;
  height: 52%;
  fill: none;
  stroke: rgba(76, 143, 232, 0.42);
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
  animation: stockChartSkeletonLinePulse 1.45s ease-in-out infinite;
}

.stock-chart-skeleton-bars {
  position: absolute;
  left: 6%;
  right: 6%;
  bottom: 10%;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 4px;
  height: 28%;
}

.stock-chart-skeleton-bars span {
  flex: 1 1 0;
  min-width: 0;
  border-radius: 2px 2px 0 0;
  background: rgba(76, 143, 232, 0.18);
  transform-origin: bottom center;
  animation: stockChartSkeletonBarPulse 1.2s ease-in-out infinite;
}

.stock-chart-skeleton-bars span:nth-child(2n) {
  animation-delay: 0.12s;
}

.stock-chart-skeleton-bars span:nth-child(3n) {
  animation-delay: 0.24s;
}

@keyframes stockChartSkeletonShimmer {
  100% {
    transform: translateX(120%);
  }
}

@keyframes stockChartSkeletonLinePulse {
  0%,
  100% {
    opacity: 0.45;
  }

  50% {
    opacity: 1;
  }
}

@keyframes stockChartSkeletonBarPulse {
  0%,
  100% {
    opacity: 0.42;
    transform: scaleY(0.82);
  }

  50% {
    opacity: 0.95;
    transform: scaleY(1);
  }
}

#detailModal.stock-detail-sheet-modal .stock-detail-chart-section-loading--skeleton,
#detailModal:not(.detail-sheet-modal) .stock-detail-body .stock-detail-chart-section-loading--skeleton {
  min-height: clamp(220px, 56vw, 280px);
  padding: 0;
  background: transparent;
}

#detailModal.stock-detail-sheet-modal .stock-detail-chart-section-loading--skeleton .stock-detail-chart-loading--skeleton,
#detailModal:not(.detail-sheet-modal) .stock-detail-body .stock-detail-chart-section-loading--skeleton .stock-detail-chart-loading--skeleton {
  min-height: 100%;
  width: 100%;
}

#detailModal:not(.detail-sheet-modal) .modal-body.stock-detail-body:has(.stock-detail-sheet--pending) {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 0;
}

#detailModal:not(.detail-sheet-modal) .modal-body.stock-detail-body .stock-detail-sheet--pending {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  justify-content: center;
  min-height: 0;
  width: 100%;
  background: #f7f8fa;
}

#detailModal:not(.detail-sheet-modal) .stock-detail-sheet--pending .stock-detail-loading-center,
#detailModal:not(.detail-sheet-modal) .stock-detail-sheet--pending .mobile-page-loading-center,
#detailModal:not(.detail-sheet-modal) .stock-detail-sheet--pending .strategy-page-loading-center {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 32px 24px;
  color: #86909c;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
  text-align: center;
}

#detailModal:not(.detail-sheet-modal) .stock-detail-sheet--pending .strategy-page-loading-spinner,
#detailModal:not(.detail-sheet-modal) .stock-detail-sheet--pending .async-loading-spinner {
  width: 36px;
  height: 36px;
  border-width: 3px;
  border-color: rgba(36, 84, 166, 0.14);
  border-top-color: var(--blue, #2454a6);
}

#detailModal:not(.detail-sheet-modal) .stock-detail-sheet--pending .strategy-page-loading-text,
#detailModal:not(.detail-sheet-modal) .stock-detail-sheet--pending .stock-detail-loading-center-text {
  margin: 0;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.4;
  color: #1d2129;
  text-align: center;
}

#detailModal:not(.detail-sheet-modal) .stock-detail-sheet--pending .strategy-page-loading-subline {
  margin: 0;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
  color: #86909c;
  text-align: center;
  max-width: 280px;
}

#detailModal.detail-sheet-modal .stock-detail-sheet--pending .stock-detail-loading-center,
#detailModal.detail-sheet-modal .stock-detail-sheet--pending .mobile-page-loading-center {
  width: 100%;
}

@keyframes loadingPulse {
  0% {
    box-shadow: 0 0 0 0 rgba(36, 84, 166, .38);
  }
  80%,
  100% {
    box-shadow: 0 0 0 10px rgba(36, 84, 166, 0);
  }
}

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

.stock-hot-money {
  display: grid;
  gap: 12px;
}

.compact-summary {
  margin-bottom: 0;
}

.hot-money-buy-list {
  display: grid;
  gap: 1px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--line);
}

.hot-money-buy-row {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) minmax(78px, 92px);
  gap: 8px 12px;
  align-items: center;
  text-align: left;
  background: #fff;
  padding: 11px 12px;
}

.hot-money-buy-row > span {
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #fff1e6;
  color: #c25a00;
  font-size: 12px;
  font-weight: 800;
}

.hot-money-buy-row strong {
  min-width: 0;
  overflow-wrap: anywhere;
}

.hot-money-buy-row em {
  color: var(--red);
  font-style: normal;
  font-weight: 800;
  text-align: left;
}

.hot-money-buy-row small {
  grid-column: 2 / 4;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
  text-align: left;
}

.hot-money-trade-tabs {
  display: grid;
  gap: 10px;
  margin-top: 18px;
}

.hot-money-trade-tabbar {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  padding: 4px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f6f9fd;
}

.hot-money-trade-tabbar button {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2px 10px;
  align-items: center;
  border: 1px solid transparent;
  border-radius: 6px;
  background: transparent;
  color: var(--text);
  padding: 10px 12px;
  text-align: left;
  cursor: pointer;
}

.hot-money-trade-tabbar button.active {
  border-color: var(--blue);
  background: #fff;
  box-shadow: 0 8px 22px rgba(39, 111, 191, .08);
}

.hot-money-trade-tabbar span {
  font-weight: 800;
}

.hot-money-trade-tabbar strong {
  color: var(--red);
  font-size: 14px;
}

.hot-money-trade-tabbar small {
  grid-column: 1 / 3;
  color: var(--muted);
  font-size: 12px;
}

.hot-money-trade-panel[hidden] {
  display: none;
}

/* 顶级游资 4-tab 布局 */
.hot-money-detail-tabs .hot-money-trade-tabbar {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.hot-money-detail-tabs .hot-money-trade-tabbar button {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  text-align: center;
  padding: 10px 8px;
  min-height: 48px;
}

.hot-money-detail-tabs .hot-money-trade-tabbar small {
  grid-column: auto;
}

.hot-money-detail-tabs .hot-money-trade-panel {
  margin-top: 12px;
}

/* Web 端游资抽屉：4-tab 下方列表高度自适应填满剩余空间 */
#detailModal:not(.detail-sheet-modal) .modal-body.hot-money-detail-body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}
#detailModal:not(.detail-sheet-modal) .modal-body.hot-money-detail-body > .hot-money-identity,
#detailModal:not(.detail-sheet-modal) .modal-body.hot-money-detail-body > .detail-summary,
#detailModal:not(.detail-sheet-modal) .modal-body.hot-money-detail-body > .finance-note {
  flex: none;
}
#detailModal:not(.detail-sheet-modal) .hot-money-detail-tabs {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
#detailModal:not(.detail-sheet-modal) .hot-money-detail-tabs .hot-money-trade-tabbar {
  flex: none;
}
#detailModal:not(.detail-sheet-modal) .hot-money-detail-tabs .hot-money-trade-panel[hidden] {
  display: none;
}
#detailModal:not(.detail-sheet-modal) .hot-money-detail-tabs .hot-money-trade-panel:not([hidden]) {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
#detailModal:not(.detail-sheet-modal) .hot-money-detail-tabs .hot-money-trade-panel:not([hidden]) > .finance-note,
#detailModal:not(.detail-sheet-modal) .hot-money-detail-tabs .hot-money-trade-panel:not([hidden]) > .hot-money-holdings-note,
#detailModal:not(.detail-sheet-modal) .hot-money-detail-tabs .hot-money-trade-panel:not([hidden]) > .module-empty-tip {
  flex: none;
}
#detailModal:not(.detail-sheet-modal) .hot-money-detail-tabs .hot-money-trade-panel:not([hidden]) > .trade-table-wrap {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
  overflow-y: auto;
  overflow-x: hidden;
}

.trade-table-wrap {
  max-height: 420px;
  overflow-y: auto;
  overflow-x: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
}

.trade-detail-table {
  table-layout: fixed;
}

.trade-detail-table th:nth-child(1),
.trade-detail-table td:nth-child(1) {
  width: 10%;
}

.trade-detail-table th:nth-child(2),
.trade-detail-table td:nth-child(2) {
  width: 13%;
}

.trade-detail-table th:nth-child(3),
.trade-detail-table td:nth-child(3),
.trade-detail-table th:nth-child(5),
.trade-detail-table td:nth-child(5),
.trade-detail-table th:nth-child(6),
.trade-detail-table td:nth-child(6) {
  width: 10%;
}

.trade-detail-table th:nth-child(4),
.trade-detail-table td:nth-child(4) {
  width: 15%;
}

.trade-detail-table th:nth-child(7),
.trade-detail-table td:nth-child(7) {
  width: 14%;
}

.trade-detail-table th:nth-child(8),
.trade-detail-table td:nth-child(8) {
  width: 18%;
}

.trade-detail-table th {
  position: sticky;
  top: 0;
  z-index: 2;
}

.analysis-list p,
.news-detail p,
.muted {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.55;
}

/* 模块空态：12px 常规字重，在当前模块内居中 */
.module-empty-tip,
.empty-cell,
.empty-sector-view,
.list.empty,
.news-list.empty,
.signal-ticker.empty,
.recommend-list.empty,
.market-tech-empty,
.market-tech-sector-empty,
.market-tech-stock-empty,
.strategy-memory-empty,
.strategy-history-empty,
.feedback-history-empty,
.mobile-pick-empty,
.mobile-pick-strip.empty,
.mobile-discover-news-empty,
.mobile-discover-hotmoney-empty,
.mobile-discover-mainflow-empty,
.mobile-discover-sector-stock-empty,
.mobile-strategy-memory-empty,
.mobile-strategy-pick-empty,
.cninfo-market-empty,
.chart-empty,
.stock-chart-mount-placeholder,
.sector-chart-mount-placeholder,
#detailModal .sector-analysis-empty,
#detailModal .stock-announcement-empty,
#detailModal.market-tech-sector-sheet-modal .market-tech-sector-empty,
#detailModal.market-tech-stock-sheet-modal .market-tech-stock-empty {
  margin: 0;
  color: #86909c;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
  text-align: center;
}

.module-empty-tip {
  width: 100%;
  padding: 24px 16px;
  box-sizing: border-box;
}

.empty-cell {
  padding: 24px 16px !important;
  text-align: center !important;
}

.list.empty,
.news-list.empty,
.signal-ticker.empty,
.recommend-list.empty,
.mobile-pick-strip.empty {
  display: flex !important;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
}

#newsList:has(.module-empty-tip),
#newsList:has(.mobile-discover-news-empty),
#hotMoneyMobileList:has(.module-empty-tip),
#hotMoneyMobileList:has(.mobile-discover-hotmoney-empty),
#mainFlowMobileList:has(.module-empty-tip),
#mainFlowMobileList:has(.mobile-discover-mainflow-empty),
#sectorList:has(.empty-sector-view),
.mobile-strategy-pick-scroll:has(.module-empty-tip),
.mobile-strategy-pick-scroll:has(.mobile-strategy-pick-empty),
#sectorStockDrawer .mobile-sector-stock-sheet-body:has(.module-empty-tip),
#sectorStockDrawer .mobile-sector-stock-sheet-body:has(.mobile-discover-sector-stock-empty),
#marketStockDrawer .mobile-sector-stock-sheet-body:has(.module-empty-tip) {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 88px;
}

.detail-tab-panel:has(> .module-empty-tip:only-child),
.detail-section-body:has(> .module-empty-tip:only-child),
.stock-detail-section:has(> .module-empty-tip:only-child) {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 72px;
}

.mini-list {
  display: grid;
  gap: 1px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--line);
}

.stock-related-news-list {
  padding: 12px;
  gap: 10px;
  background: #f8fafc;
}

.stock-related-news-list .mini-row {
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 14px 16px;
  gap: 7px;
  line-height: 1.45;
}

.stock-related-news-list .mini-row strong {
  line-height: 1.45;
}

.stock-related-news-list .mini-row span {
  line-height: 1.45;
}

.mini-row {
  display: grid;
  gap: 4px;
  background: #fff;
  padding: 11px 12px;
  text-align: left;
}

.mini-row strong {
  color: var(--ink);
}

.mini-row span {
  color: var(--muted);
  font-size: 12px;
}

.related-list {
  gap: 10px;
  overflow: visible;
  border: 0;
  background: transparent;
}

.news-related-list {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.news-related-table {
  table-layout: fixed;
}

.news-related-table th:nth-child(1),
.news-related-table td:nth-child(1) {
  width: 9%;
}

.sector-related-table th:nth-child(2),
.sector-related-table td:nth-child(2) {
  width: 22%;
}

.sector-related-table th:nth-child(3),
.sector-related-table td:nth-child(3),
.sector-related-table th:nth-child(4),
.sector-related-table td:nth-child(4) {
  width: 14%;
}

.sector-related-table th:nth-child(5),
.sector-related-table td:nth-child(5) {
  width: 41%;
}

.stock-related-table th:nth-child(2),
.stock-related-table td:nth-child(2) {
  width: 18%;
}

.stock-related-table th:nth-child(3),
.stock-related-table td:nth-child(3),
.stock-related-table th:nth-child(4),
.stock-related-table td:nth-child(4),
.stock-related-table th:nth-child(5),
.stock-related-table td:nth-child(5),
.stock-related-table th:nth-child(6),
.stock-related-table td:nth-child(6) {
  width: 12%;
}

.stock-related-table th:nth-child(7),
.stock-related-table td:nth-child(7) {
  width: 25%;
}

.news-related-table td small {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}

.related-row {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  padding: 12px 14px;
  text-align: left;
}

.related-row:hover {
  border-color: #c6d4ea;
  background: #f7faff;
}

.related-main {
  min-width: 0;
}

.related-main strong,
.related-main small {
  display: block;
}

.related-main strong {
  color: var(--ink);
  overflow-wrap: anywhere;
}

.related-main small {
  margin-top: 5px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}

.related-row em {
  min-width: 72px;
  font-style: normal;
  font-weight: 800;
  text-align: left;
}

.related-row em.quote-refreshing {
  color: var(--muted);
  font-weight: 700;
}

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

.supply-stage {
  display: grid;
  align-content: start;
  gap: 10px;
  min-width: 0;
}

.supply-stage-head {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfcfe;
  padding: 11px 12px;
}

.supply-stage-head strong {
  display: block;
  font-size: 15px;
}

.supply-stage-head span {
  display: block;
  color: var(--muted);
  font-size: 12px;
  margin-top: 3px;
}

.supply-sector {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
}

.supply-sector-title,
.supply-stock-row {
  width: 100%;
  border: 0;
  border-radius: 0;
  background: #fff;
  text-align: left;
  font: inherit;
}

.supply-sector-title {
  display: grid;
  gap: 4px;
  padding: 12px;
}

.supply-sector-title:hover,
.supply-stock-row:hover {
  background: #f6f9fd;
}

.supply-sector-title strong {
  color: var(--ink);
}

.supply-sector-title span,
.supply-sector > p {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}

.supply-sector > p {
  padding: 0 12px 10px;
}

.supply-stock-list {
  display: grid;
  gap: 1px;
  background: var(--line);
  border-top: 1px solid var(--line);
}

.supply-stock-list > .muted {
  background: #fff;
  padding: 10px 12px;
}

.supply-stock-row {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) auto;
  gap: 6px 8px;
  align-items: center;
  padding: 10px 12px;
}

.supply-stock-row > span {
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #eef3fb;
  color: var(--blue);
  font-size: 12px;
  font-weight: 800;
}

.supply-stock-row strong {
  min-width: 0;
  overflow-wrap: anywhere;
}

.supply-stock-row strong.stock-code-line,
#detailModal.detail-sheet-modal .sector-quote-col--name strong.stock-code-line {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  width: fit-content;
  max-width: 100%;
}

.supply-stock-row strong.stock-code-line .status-stock-exchange,
#detailModal.detail-sheet-modal .sector-quote-col--name strong.stock-code-line .status-stock-exchange {
  flex-shrink: 0;
}

.supply-stock-row em {
  font-style: normal;
  font-weight: 800;
  font-size: 12px;
}

.supply-stock-row small {
  grid-column: 2 / 4;
  text-align: left;
}

.raw-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--line);
}

.raw-grid > div {
  background: #fff;
  padding: 10px 12px;
}

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

.raw-grid strong {
  display: block;
  font-size: 13px;
  line-height: 1.45;
  font-weight: 600;
  overflow-wrap: anywhere;
}

.loading {
  min-height: 180px;
  display: grid;
  place-items: center;
  color: var(--muted);
}

@media (max-width: 980px) {
  /* ≤760px：快捷按钮在大盘条下方一行；761px～980px 与 ≥981px 由对应 Grid 保持单行顶栏 */
  .topbar {
    padding: 22px 18px 16px;
  }

  .top-actions {
    margin-left: 0;
  }

  main {
    padding: 16px;
  }

  .actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }

  .status-band,
  .grid,
  .sector-workspace,
  .hot-money-layout,
  .monitor-grid,
  .cninfo-market-chart-grid,
  .chart-grid,
  .finance-metrics,
  .fund-holding-summary,
  .supply-chain,
  .detail-summary,
  .raw-grid {
    grid-template-columns: 1fr;
  }

  .sector-workspace > .panel.wide::after {
    display: none;
  }

  .sector-workspace > .panel > #sectorList,
  .sector-workspace > .panel > .table-wrap {
    flex: none;
    max-height: min(66vh, 560px);
  }

  .search-band {
    grid-template-columns: minmax(150px, 220px) minmax(150px, 220px) minmax(0, 1fr);
    align-items: end;
  }

  .search-dropdown {
    width: min(420px, calc(100vw - 36px));
  }

  .modal-panel {
    width: 100vw;
  }

  .sector-item {
    grid-template-columns: 34px minmax(0, 1fr);
  }

  .sector-actions {
    grid-column: 2;
    justify-content: start;
  }

  .sector-stock-panel {
    padding-left: 18px;
  }
}

@media (max-width: 620px) {
  .search-dropdown {
    width: 100%;
  }
}

@media (max-width: 760px) {
  :root {
    --status-list-height: 160px;
    --list-x-padding: 10px;
  }

  body {
    min-width: 0;
  }

  .topbar {
    position: static;
    gap: 10px;
    padding: 12px 10px 10px;
  }

  .brand-title-row {
    gap: 8px;
  }

  .major-indices-strip {
    justify-content: flex-start;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 0 0 6px;
    scrollbar-width: thin;
  }

  .major-index-chip {
    flex: 0 0 150px;
    min-width: 150px;
  }

  .brand-logo {
    width: 44px;
    height: 44px;
    flex-basis: 44px;
  }

  h1 {
    font-size: 20px;
  }

  .market-session-inline {
    padding: 4px 10px;
  }

  main {
    padding: 16px;
  }

  .actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    width: 100%;
  }

  .actions button,
  .feedback-top-btn {
    min-height: 42px;
    width: 100%;
    padding: 8px 10px;
    font-size: 13px;
  }

  #superAnalysisOpenBtn {
    min-width: 0;
  }

  .auth-bar {
    grid-column: 1 / -1;
    justify-content: center;
    margin-right: 0;
    white-space: normal;
    padding: 2px 0 4px;
  }

  .status-band {
    grid-template-columns: 1fr;
    border-radius: 10px;
    gap: 10px;
  }

  .status-band > div {
    padding: 12px;
    min-height: auto;
  }

  .market-overview-card {
    padding: 14px !important;
  }

  .market-summary-content p {
    font-size: 14px;
    line-height: 1.55;
  }

  .signal-ticker,
  .recommend-list {
    height: auto;
    max-height: 220px;
    overflow-y: auto;
  }

  .signal-ticker-track,
  .recommend-ticker-track {
    animation: none !important;
  }

  .signal-ticker-row,
  .recommend-row {
    align-items: start;
  }

  .signal-ticker-row small,
  .recommend-row small {
    align-items: center;
    line-height: 1.45;
  }

  .signal-ticker-row small {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 6px;
    white-space: normal;
  }

  .recommend-row small {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 6px;
    white-space: normal;
  }

  .search-band {
    position: relative;
    gap: 8px;
    margin: 0 0 12px;
    padding: 10px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
  }

  .search-band .search-field {
    min-width: 0;
    max-width: 100%;
  }

  .search-band input[type="search"] {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }

  .search-band input[type="search"]::placeholder {
    font-size: 12px;
  }

  .search-band input[type="search"]::-webkit-input-placeholder {
    font-size: 12px;
  }

  .search-history {
    grid-column: 1;
    grid-row: auto;
    min-height: 30px;
  }

  input[type="search"] {
    min-height: 44px;
    border-radius: 10px;
    font-size: 16px;
  }

  .search-dropdown {
    position: fixed;
    left: 12px;
    right: 12px;
    top: auto;
    bottom: 12px;
    width: auto;
    max-height: min(62vh, 460px);
    border-radius: 14px;
    padding: 12px;
    z-index: 30;
  }

  .search-history {
    width: 100%;
    min-height: 34px;
    padding-bottom: 2px;
  }

  .search-history-tags {
    overflow-x: auto;
    padding-bottom: 2px;
  }

  .search-history-clear,
  .search-history-remove {
    opacity: 1;
  }

  .main-tabs {
    gap: 6px;
    margin: 0;
    padding: 6px;
    scroll-snap-type: x mandatory;
    /* 手机 body 不滚动、仅 main 滚动时，Tab 条吸在内容区顶部，避免被长状态卡顶没后「像消失」 */
    position: sticky;
    top: 0;
    z-index: 8;
    background: #fff;
    border: 1px solid #e6edf7;
    border-radius: 12px;
    box-shadow: 0 6px 16px rgba(24, 44, 86, 0.08);
  }

  .main-tabs button {
    flex: 0 0 auto;
    min-height: 36px;
    padding: 7px 10px;
    border: 1px solid var(--line);
    border-radius: 999px;
    scroll-snap-align: start;
    white-space: nowrap;
    font-size: 12px;
  }

  .panel {
    border-radius: 10px;
  }

  .panel-head {
    align-items: flex-start;
    gap: 10px;
    flex-wrap: wrap;
    padding: 12px;
  }

  .panel-head h2 {
    font-size: 16px;
  }

  .sector-day-tabs {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    overflow: hidden;
    padding: 4px;
    gap: 4px;
  }

  .sector-day-tabs button {
    width: 100%;
    min-width: 0;
    text-align: center;
    justify-content: center;
  }

  .sector-item {
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 10px;
    padding: 12px;
  }

  .sector-actions {
    grid-column: 1 / -1;
    grid-template-columns: 1fr;
    justify-content: stretch;
  }

  .sector-analysis,
  .sector-toggle {
    width: 100%;
  }

  .sector-toggle {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .table-wrap,
  .main-flow-table-wrap,
  .news-table-wrap,
  .trade-table-wrap {
    max-height: none;
    overflow: visible;
    border-radius: 10px;
  }

  .stock-rank-table,
  .hot-money-table,
  .main-flow-table,
  .strategy-table,
  .news-table,
  .news-related-table,
  .trade-detail-table {
    min-width: 0;
    width: 100%;
  }

  .stock-rank-table thead,
  .hot-money-table thead,
  .main-flow-table thead,
  .strategy-table thead,
  .news-table thead,
  .news-related-table thead,
  .trade-detail-table thead {
    display: none;
  }

  .stock-rank-table tbody,
  .hot-money-table tbody,
  .main-flow-table tbody,
  .strategy-table tbody,
  .news-table tbody,
  .news-related-table tbody,
  .trade-detail-table tbody {
    display: grid;
    gap: 8px;
    padding: 8px 0;
  }

  .stock-rank-table tr,
  .hot-money-table tr,
  .main-flow-table tr,
  .strategy-table tr,
  .news-table tr,
  .news-related-table tr,
  .trade-detail-table tr {
    display: grid;
    gap: 4px;
    padding: 9px 10px;
    border: 1px solid #e4ebf7;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 2px 10px rgba(17, 38, 79, 0.05);
  }

  .stock-rank-table td,
  .hot-money-table td,
  .main-flow-table td,
  .strategy-table td,
  .news-table td,
  .news-related-table td,
  .trade-detail-table td {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    border: 0;
    padding: 0;
    font-size: 12px;
    line-height: 1.45;
  }

  .stock-rank-table td::before,
  .hot-money-table td::before,
  .main-flow-table td::before,
  .strategy-table td::before,
  .news-table td::before,
  .news-related-table td::before,
  .trade-detail-table td::before {
    flex: 0 0 82px;
    color: #6d7f9c;
    font-size: 11px;
    font-weight: 700;
    content: "";
  }

  .stock-rank-table td:nth-child(1)::before { content: "排名"; }
  .stock-rank-table td:nth-child(2)::before { content: "股票"; }
  .stock-rank-table td:nth-child(3)::before { content: "板块"; }
  .stock-rank-table td:nth-child(4)::before { content: "现价"; }
  .stock-rank-table td:nth-child(5)::before { content: "实时涨幅"; }
  .stock-rank-table td:nth-child(6)::before { content: "评分"; }
  .stock-rank-table td:nth-child(7)::before { content: "建议"; }
  .stock-rank-table td:nth-child(8)::before { content: "交易额"; }
  .stock-rank-table td:nth-child(9)::before { content: "仓位/风控"; }

  .hot-money-table td:nth-child(1)::before { content: "排名"; }
  .hot-money-table td:nth-child(2)::before { content: "游资/席位"; }
  .hot-money-table td:nth-child(3)::before { content: "活跃"; }
  .hot-money-table td:nth-child(4)::before { content: "买入额"; }
  .hot-money-table td:nth-child(5)::before { content: "卖出额"; }
  .hot-money-table td:nth-child(6)::before { content: "净买入"; }
  .hot-money-table td:nth-child(7)::before { content: "近期买入"; }
  .hot-money-table td:nth-child(8)::before { content: "评分"; }

  .main-flow-table td:nth-child(1)::before { content: "排名"; }
  .main-flow-table td:nth-child(2)::before { content: "股票"; }
  .main-flow-table td:nth-child(3)::before { content: "最新价"; }
  .main-flow-table td:nth-child(4)::before { content: "涨幅"; }
  .main-flow-table td:nth-child(5)::before { content: "主力资金"; }
  .main-flow-table td:nth-child(6)::before { content: "换手率"; }
  .main-flow-table td:nth-child(7)::before { content: "市值"; }

  .strategy-table td:nth-child(1)::before { content: "排名"; }
  .strategy-table td:nth-child(2)::before { content: "股票"; }
  .strategy-table td:nth-child(3)::before { content: "板块"; }
  .strategy-table td:nth-child(4)::before { content: "推荐分"; }
  .strategy-table td:nth-child(5)::before { content: "今日涨幅"; }
  .strategy-table td:nth-child(6)::before { content: "推荐逻辑"; }
  .strategy-table td:nth-child(7)::before { content: "模拟买入"; }

  .news-table td:nth-child(1)::before { content: "排名"; }
  .news-table td:nth-child(2)::before { content: "资讯标题"; }
  .news-table td:nth-child(3)::before { content: "时间"; }
  .news-table td:nth-child(4)::before { content: "关键词"; }

  .news-related-table td:nth-child(1)::before { content: "排名"; }
  .news-related-table td:nth-child(2)::before { content: "关联项"; }
  .news-related-table td:nth-child(3)::before { content: "涨跌"; }
  .news-related-table td:nth-child(4)::before { content: "热度"; }
  .news-related-table td:nth-child(5)::before { content: "说明"; }

  .trade-detail-table td:nth-child(1)::before { content: "排名"; }
  .trade-detail-table td:nth-child(2)::before { content: "股票"; }
  .trade-detail-table td:nth-child(3)::before { content: "最新价"; }
  .trade-detail-table td:nth-child(4)::before { content: "涨跌幅"; }
  .trade-detail-table td:nth-child(5)::before { content: "买入额"; }
  .trade-detail-table td:nth-child(6)::before { content: "卖出额"; }
  .trade-detail-table td:nth-child(7)::before { content: "净买入"; }
  .trade-detail-table td:nth-child(8)::before { content: "备注"; }

  .stock-rank-table td:nth-child(2),
  .main-flow-table td:nth-child(2),
  .strategy-table td:nth-child(2) {
    font-weight: 800;
    color: #1e2a3f;
  }

  .strategy-table td:nth-child(6) {
    align-items: center;
  }

  .stock-rank-table td:nth-child(5),
  .main-flow-table td:nth-child(4),
  .strategy-table td:nth-child(5) {
    font-weight: 800;
    font-size: 13px;
  }

  .stock-rank-table td[colspan],
  .hot-money-table td[colspan],
  .main-flow-table td[colspan],
  .strategy-table td[colspan],
  .news-table td[colspan],
  .news-related-table td[colspan],
  .trade-detail-table td[colspan] {
    display: block;
    padding: 12px 4px;
    color: var(--muted);
  }

  .stock-rank-table td[colspan]::before,
  .hot-money-table td[colspan]::before,
  .main-flow-table td[colspan]::before,
  .strategy-table td[colspan]::before,
  .news-table td[colspan]::before,
  .news-related-table td[colspan]::before,
  .trade-detail-table td[colspan]::before {
    display: none;
  }

  .list:not(#sectorList),
  .mini-list,
  .signal-list,
  .recommend-list,
  .signal-ticker {
    border-radius: 10px;
    border: 1px solid #e6edf7;
    background: #f8fbff;
    padding: 6px;
  }

  .sector-item,
  .signal-item,
  .signal-ticker-row,
  .recommend-row,
  .mini-row {
    border: 1px solid #e5ecf8;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 2px 8px rgba(17, 38, 79, 0.04);
  }

  .strategy-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .strategy-weights {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .strategy-weight-primary,
  .strategy-weight-secondary {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
  }

  .strategy-learning-note,
  .strategy-pattern-card,
  .strategy-pattern-card.is-strong {
    grid-column: 1 / -1;
    width: 100%;
  }

  .strategy-weight {
    min-width: 0;
  }

  .strategy-weight span,
  .strategy-weight strong {
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .strategy-panel .strategy-summary,
  .strategy-panel .strategy-weights,
  .strategy-panel .table-wrap {
    margin-left: 12px;
    margin-right: 12px;
  }

  .strategy-head-actions,
  .main-flow-head-actions {
    width: 100%;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: stretch;
    gap: 8px;
  }

  .main-flow-head-actions > span {
    width: 100%;
    font-size: 12px;
    line-height: 1.4;
  }

  .main-flow-tabs {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4px;
    border-radius: 8px;
  }

  .main-flow-tabs button {
    width: 100%;
    min-height: 44px;
    padding: 8px 10px;
    text-align: center;
    font-size: 13px;
    border-radius: 6px;
  }

  .modal-panel {
    width: 100vw;
    max-width: none;
  }

  .modal-head {
    gap: 8px;
    padding: 16px;
  }

  .modal-body {
    padding: 16px;
  }

  .detail-summary,
  .finance-metrics,
  .fund-holding-summary,
  .cninfo-section.two-column,
  .cninfo-info-grid,
  .cninfo-market-chart-grid,
  .chart-grid,
  .supply-chain,
  .raw-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 480px) {
  main {
    padding: 16px;
  }

  .topbar {
    padding-left: 12px;
    padding-right: 12px;
  }

  .actions {
    grid-template-columns: 1fr 1fr;
  }

  .auth-bar {
    grid-column: 1 / -1;
    font-size: 12px;
  }

  .feedback-top-btn,
  .actions button {
    min-height: 38px;
    padding: 7px 8px;
    font-size: 12px;
  }

  .status-card-head,
  .panel-head {
    flex-direction: column;
    align-items: stretch;
  }

  .main-tabs button {
    max-width: 78vw;
    justify-content: space-between;
  }

  .signal-ticker-row {
    grid-template-columns: 36px minmax(0, 1fr) auto;
  }

  .recommend-row {
    grid-template-columns: 22px minmax(0, 1fr) auto;
  }

  .recommend-change,
  .monitor-change {
    min-width: 52px;
    font-size: 11px;
  }

  .change-badge {
    min-width: 58px;
    padding: 2px 6px;
  }

  .strategy-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .strategy-weights {
    grid-template-columns: 1fr;
  }

  .strategy-summary article {
    padding: 11px;
  }

  .strategy-summary strong {
    font-size: 20px;
  }

  .sector-copy h3,
  .recommend-row strong,
  .signal-ticker-row strong {
    white-space: normal;
  }

  .stock-rank-table,
  .hot-money-table,
  .main-flow-table,
  .strategy-table,
  .news-table,
  .news-related-table,
  .trade-detail-table {
    min-width: 0;
  }

  th,
  td {
    padding: 9px 10px;
    font-size: 13px;
  }

  .status-card-head .label,
  .label {
    font-size: 11px;
  }

  .market-summary-content p {
    font-size: 12px;
  }

  .stock-rank-table td::before,
  .hot-money-table td::before,
  .main-flow-table td::before,
  .strategy-table td::before,
  .news-table td::before,
  .news-related-table td::before,
  .trade-detail-table td::before {
    flex-basis: 72px;
    font-size: 10px;
  }
}

/* 手机表格兜底：恢复可读的横向滚动表格，避免信息被卡片化规则挤压丢失 */
@media (max-width: 760px) {
  .table-wrap,
  .main-flow-table-wrap,
  .news-table-wrap,
  .trade-table-wrap {
    overflow-x: auto !important;
    overflow-y: visible !important;
    -webkit-overflow-scrolling: touch;
    border: 1px solid #e6edf7;
    background: #fff;
  }

  .stock-rank-table:not(.mobile-home-stock-table),
  .hot-money-table,
  .main-flow-table,
  .strategy-table,
  .news-table,
  .news-related-table,
  .trade-detail-table {
    display: table !important;
    width: 100%;
    min-width: 860px !important;
    border-collapse: collapse;
    table-layout: fixed;
  }

  .mobile-stock-table-wrap .mobile-home-stock-table {
    min-width: 100% !important;
    width: max-content !important;
  }

  .stock-rank-table thead,
  .hot-money-table thead,
  .main-flow-table thead,
  .strategy-table thead,
  .news-table thead,
  .news-related-table thead,
  .trade-detail-table thead {
    display: table-header-group !important;
  }

  .stock-rank-table tbody,
  .hot-money-table tbody,
  .main-flow-table tbody,
  .strategy-table tbody,
  .news-table tbody,
  .news-related-table tbody,
  .trade-detail-table tbody {
    display: table-row-group !important;
    padding: 0 !important;
    gap: 0 !important;
  }

  .stock-rank-table tr,
  .hot-money-table tr,
  .main-flow-table tr,
  .strategy-table tr,
  .news-table tr,
  .news-related-table tr,
  .trade-detail-table tr {
    display: table-row !important;
    border: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    padding: 0 !important;
  }

  .stock-rank-table td,
  .hot-money-table td,
  .main-flow-table td,
  .strategy-table td,
  .news-table td,
  .news-related-table td,
  .trade-detail-table td {
    display: table-cell !important;
    padding: 9px 10px !important;
    border-bottom: 1px solid var(--line) !important;
    font-size: 12px !important;
    line-height: 1.45;
    vertical-align: middle;
  }

  .stock-rank-table td::before,
  .hot-money-table td::before,
  .main-flow-table td::before,
  .strategy-table td::before,
  .news-table td::before,
  .news-related-table td::before,
  .trade-detail-table td::before {
    content: none !important;
    display: none !important;
  }

  /* 阻止页面级横向滚动，只允许列表容器滚动 */
  html,
  body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
  }

  main,
  .tab-panel,
  .panel,
  .search-band,
  .status-band,
  .sector-workspace {
    min-width: 0;
    max-width: 100%;
    overflow-x: hidden;
  }

  /* .main-tabs 为横向滚动条，父级若 overflow-x:hidden 会破坏 position:sticky 与可见性 */
  .market-tabs {
    min-width: 0;
    max-width: 100%;
    overflow-x: visible;
    overflow-y: visible;
  }
}

@media (max-width: 760px) {
  /* 列表内容区域内横向滚动 */
  .signal-ticker,
  .recommend-list,
  .mini-list,
  .list {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  .table-wrap,
  .main-flow-table-wrap,
  .news-table-wrap,
  .trade-table-wrap {
    width: 100%;
    max-width: 100%;
    overflow-x: auto !important;
    overflow-y: visible !important;
    -webkit-overflow-scrolling: touch;
  }

  .signal-ticker-track,
  .recommend-ticker-track,
  .related-list {
    min-width: 560px;
    width: max-content;
  }

  /* 热点板块列表：手机端专项优化 */
  #sectorList {
    max-height: 66vh;
    padding: 8px;
    gap: 10px;
    border-radius: 10px;
    border: 1px solid #e6edf7;
    background: #f8fbff;
  }

  .sector-item {
    grid-template-columns: 26px minmax(0, 1fr);
    gap: 8px;
    padding: 10px 10px 8px;
    align-items: start;
    border: 1px solid #e4ebf7;
    border-radius: 10px;
    background: #fff;
  }

  .sector-item > .rank {
    grid-column: 1;
    grid-row: 1;
  }

  .sector-copy {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
  }

  .sector-copy h3 {
    font-size: 14px;
    line-height: 1.35;
    margin-bottom: 2px;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .sector-copy p {
    margin: 0;
    color: #6c7f9e;
    font-size: 11px;
    line-height: 1.35;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .sector-compare {
    margin: 0 0 4px;
    padding: 2px 6px;
    font-size: 10px;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .rank {
    width: 24px;
    height: 24px;
    font-size: 11px;
  }

  .sector-actions {
    grid-column: 1 / -1;
    grid-row: 2;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 8px;
    align-items: stretch;
    width: 100%;
  }

  .sector-analysis {
    min-width: 52px;
    padding: 6px 8px;
    font-size: 11px;
    border-radius: 8px;
    align-self: center;
  }

  .sector-toggle {
    min-width: 0;
    width: 100%;
    padding: 8px 10px;
    font-size: 11px;
    border-radius: 8px;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
  }

  .sector-toggle .metric {
    min-width: 0;
    text-align: left;
  }

  .sector-day-label {
    display: block;
    color: #6c7f9e;
    font-size: 10px;
    line-height: 1.3;
    margin-bottom: 2px;
  }

  .sector-toggle .metric strong {
    font-size: 15px;
    line-height: 1.2;
  }

  .sector-metric-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 2px 8px;
    margin-top: 4px;
    font-size: 10px;
    line-height: 1.35;
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .sector-metric-score {
    color: #6c7f9e;
    font-weight: 600;
  }

  #sectorList:not(.is-historical-day) .sector-item {
    grid-template-columns: 26px minmax(0, 1fr) auto;
  }

  #sectorList:not(.is-historical-day) .sector-item > .rank {
    grid-row: 1 / span 2;
    align-self: start;
  }

  #sectorList:not(.is-historical-day) .sector-copy {
    grid-column: 2;
    grid-row: 1 / span 2;
  }

  #sectorList:not(.is-historical-day) .sector-actions {
    grid-column: 3;
    grid-row: 1 / span 2;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: flex-start;
    gap: 6px;
    width: auto;
  }

  #sectorList:not(.is-historical-day) .sector-analysis {
    align-self: flex-end;
  }

  #sectorList:not(.is-historical-day) .sector-toggle {
    width: auto;
    min-width: 88px;
    padding: 6px 8px;
  }

  #sectorList:not(.is-historical-day) .sector-toggle .metric {
    text-align: right;
  }

  #sectorList.is-historical-day .sector-toggle {
    align-items: start;
  }

  .sector-toggle b {
    min-width: 30px;
    height: 20px;
    font-size: 11px;
    align-self: center;
  }

  .sector-stock-panel {
    padding: 10px 10px 10px 14px;
    margin-top: 6px;
    border-radius: 10px;
  }

  .sector-stock-head {
    margin-bottom: 6px;
  }

  .sector-stock-row {
    padding: 8px 10px;
    font-size: 12px;
  }

  /* 热点板块列表不再横向滚动 */
  #sectorList {
    overflow-x: hidden !important;
    overflow-y: auto !important;
  }

  #sectorList .sector-card {
    min-width: 0 !important;
    width: 100%;
    max-width: 100%;
  }
}

@media (max-width: 480px) {
  #sectorList .sector-card {
    min-width: 0 !important;
  }

  .sector-item {
    grid-template-columns: 24px minmax(0, 1fr);
    gap: 6px;
    padding: 9px 8px 7px;
  }

  #sectorList:not(.is-historical-day) .sector-item {
    grid-template-columns: 24px minmax(0, 1fr) auto;
  }

  .sector-actions {
    gap: 6px;
  }

  .sector-analysis {
    min-width: 48px;
    padding: 5px 7px;
    font-size: 10px;
  }

  .sector-toggle {
    padding: 7px 8px;
  }
}

/* --- Admin / 后台登录 --- */
.admin-entry-link {
  display: inline-flex;
  align-items: center;
  align-self: center;
  margin-right: 4px;
  padding: 8px 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--muted);
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}

.admin-entry-link:hover {
  background: #f6f8fa;
  color: var(--ink);
}

.admin-auth-page {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 24px;
  background: var(--bg);
}

.admin-auth-card {
  width: 100%;
  max-width: 420px;
  padding: 28px;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: 0 8px 28px rgba(16, 24, 40, .08);
}

.admin-auth-header {
  text-align: center;
  margin-bottom: 20px;
}

.admin-auth-logo {
  width: 60px;
  height: 60px;
  object-fit: contain;
  display: block;
  margin: 0 auto 12px;
  border-radius: 50%;
}

.admin-auth-card h1 {
  font-size: 22px;
  margin: 0 0 6px;
}

.admin-auth-card .sub {
  margin: 0 0 20px;
  color: var(--muted);
  font-size: 14px;
}

.admin-auth-header .sub {
  margin: 0;
}

.auth-page-toast-host {
  display: grid;
  gap: 8px;
  margin-bottom: 16px;
}

.auth-page-toast {
  padding: 10px 12px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.24s ease, transform 0.24s ease;
}

.auth-page-toast.is-hiding {
  opacity: 0;
  transform: translateY(-4px);
}

.auth-page-toast--success {
  background: #f0fdf4;
  color: #15803d;
  border: 1px solid rgba(22, 163, 74, .25);
}

.auth-page-toast--error {
  background: #fff1f2;
  color: #b91c1c;
  border: 1px solid rgba(220, 38, 38, .2);
}

.auth-page-toast--info {
  background: #eff6ff;
  color: #1d4ed8;
  border: 1px solid rgba(37, 99, 235, .2);
}

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

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

.admin-auth-form input[type="text"],
.admin-auth-form input[type="password"] {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px 12px;
  font: inherit;
}

.admin-auth-page {
  --auth-accent: #2962d6;
}

.admin-auth-actions-stack {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 12px;
  width: 100%;
  margin-top: 4px;
}

.admin-auth-actions-stack > .admin-auth-actions {
  flex: 0 0 auto;
}

.admin-auth-actions-stack > .admin-auth-foot-links {
  flex: 0 0 auto;
  display: flex !important;
  justify-content: center !important;
  align-items: center;
  width: 100% !important;
  margin-top: 0;
}

body.admin-auth-page--register .admin-auth-actions-stack .admin-auth-actions button.primary {
  flex: 1 1 100%;
  width: 100%;
}

.admin-auth-actions {
  display: flex;
  flex-wrap: nowrap;
  gap: 10px;
  align-items: center;
  width: 100%;
}

.admin-auth-actions button {
  flex: 1 1 auto;
  min-width: 0;
  padding: 10px 16px;
  border-radius: 8px;
  font-weight: 700;
  cursor: pointer;
}

.admin-auth-actions button.primary {
  background: var(--auth-accent);
  border-color: var(--auth-accent);
  color: #fff;
}

.admin-auth-actions:not(:has(.auth-text-link--inline)) button.primary {
  flex: 1 1 100%;
  width: 100%;
}

.admin-auth-foot-links {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  margin-top: 0;
}

.auth-text-link--center-row {
  display: inline-block;
  width: auto;
  max-width: 100%;
  text-align: center;
}

.auth-text-link,
.auth-text-link:link,
.auth-text-link:visited {
  color: var(--auth-accent);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
}

.auth-text-link--inline {
  flex: 0 0 auto;
  white-space: nowrap;
}

.auth-text-link:hover,
.auth-text-link:active,
.auth-text-link:focus,
.auth-text-link:focus-visible {
  color: var(--auth-accent);
  background: transparent;
  text-decoration: none;
  outline: none;
  box-shadow: none;
}

.admin-auth-actions button,
.admin-auth-actions a.link-muted {
  -webkit-tap-highlight-color: transparent;
}

.admin-auth-actions button.primary:hover,
.admin-auth-actions button.primary:active,
.admin-auth-actions button.primary:focus,
.admin-auth-actions button.primary:focus-visible {
  background: var(--auth-accent);
  border-color: var(--auth-accent);
  color: #fff;
  outline: none;
  box-shadow: none;
}

.admin-auth-actions a.link-muted:hover,
.admin-auth-actions a.link-muted:active,
.admin-auth-actions a.link-muted:focus,
.admin-auth-actions a.link-muted:focus-visible {
  background: transparent;
  color: var(--muted);
  outline: none;
  box-shadow: none;
}

body.admin-auth-page .auth-text-link:active,
body.admin-auth-page .auth-text-link:focus,
body.admin-auth-page .auth-text-link:focus-visible {
  color: var(--auth-accent) !important;
  background: transparent !important;
  text-decoration: none !important;
}

.flash-list {
  list-style: none;
  margin: 0 0 16px;
  padding: 0;
  display: grid;
  gap: 8px;
}

.flash-list .flash[data-auth-page-toast] {
  transition: opacity 0.24s ease, transform 0.24s ease;
}

.flash-list .flash[data-auth-page-toast].is-hiding {
  opacity: 0;
  transform: translateY(-4px);
}

.flash {
  padding: 10px 12px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
}

.flash-error {
  background: #fff1f2;
  color: #b91c1c;
  border: 1px solid rgba(220, 38, 38, .2);
}

.flash-success {
  background: #f0fdf4;
  color: #15803d;
  border: 1px solid rgba(22, 163, 74, .25);
}

.flash-info {
  background: #f6f9ff;
  color: var(--blue);
  border: 1px solid #cfe0f6;
}

html:has(body.admin-dash-page) {
  height: auto;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.admin-dash-page {
  min-height: 100vh;
  background: var(--bg);
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  overflow-x: hidden;
  overflow-y: visible;
}

.admin-dash-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px clamp(12px, 3vw, 28px);
  background: #fff;
  border-bottom: 1px solid var(--line);
  box-sizing: border-box;
  width: 100%;
}

.admin-dash-bar h1 {
  font-size: 18px;
  margin: 0;
}

.admin-dash-actions {
  display: flex;
  gap: 12px;
  align-items: center;
}

.admin-dash-user {
  font-size: 14px;
  font-weight: 600;
  color: var(--muted, #64748b);
  white-space: nowrap;
}

.admin-dash-actions a {
  font-weight: 700;
  color: var(--blue);
  text-decoration: none;
}

.admin-dash-body {
  max-width: 720px;
  margin: 24px auto;
  padding: 0 clamp(12px, 3vw, 24px);
  box-sizing: border-box;
  width: 100%;
}

.admin-dash-body-wide {
  max-width: none;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(12px, 3vw, 28px);
  padding-right: clamp(12px, 3vw, 28px);
}

.admin-dash-body-stack {
  flex: 1 1 auto;
  min-height: auto;
  display: flex;
  flex-direction: column;
  gap: 18px;
  margin-top: 0;
  margin-bottom: 0;
  padding-top: 16px;
  padding-bottom: 16px;
  overflow: visible;
}

.admin-dash-panel-metrics {
  flex: 0 0 auto;
}

.admin-dash-panel-users {
  flex: 0 1 auto;
  min-height: auto;
  display: flex;
  flex-direction: column;
  overflow: visible;
}

.admin-dash-panel-users .admin-users-toolbar,
.admin-dash-panel-users .admin-user-pagination {
  flex: 0 0 auto;
}

.admin-dash-panel-users .admin-users-table-wrap {
  flex: 0 1 auto;
  min-height: auto;
  overflow-x: auto;
  overflow-y: visible;
}

.admin-metric-grid {
  display: grid;
  gap: clamp(10px, 2vw, 14px);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 148px), 1fr));
  width: 100%;
}

.admin-metric-card {
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: clamp(12px, 2vw, 16px) clamp(12px, 2.5vw, 18px);
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
  box-sizing: border-box;
}

.admin-metric-card-accent {
  border-color: #cfe0f6;
  background: #f8fbff;
}

.admin-metric-card-link {
  text-decoration: none;
  color: inherit;
  cursor: pointer;
  box-sizing: border-box;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.admin-metric-card-link:hover {
  border-color: #94b8e8;
}

.admin-metric-card-link.is-selected {
  border-color: var(--blue, #2f6fed);
  box-shadow: 0 0 0 2px rgba(47, 111, 237, 0.16);
  background: #eef4ff;
}

.admin-metric-label {
  font-size: 13px;
  color: var(--muted);
  font-weight: 600;
}

.admin-metric-value {
  font-size: clamp(1.25rem, 4vw, 1.5rem);
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -0.02em;
}

.admin-metric-hint {
  font-size: 12px;
  color: var(--muted);
  line-height: 1.35;
}

.admin-section-title {
  font-size: 16px;
  margin: 0 0 4px;
  font-weight: 800;
}

.admin-users-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}

.admin-users-toolbar .admin-section-title {
  margin: 0;
  flex: 0 0 auto;
}

.admin-users-table-wrap {
  overflow-x: auto;
  overflow-y: visible;
  width: 100%;
  max-width: 100%;
  -webkit-overflow-scrolling: touch;
  box-sizing: border-box;
}

.admin-users-table thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--panel);
  box-shadow: inset 0 -1px 0 var(--line);
}

.admin-users-table {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  border-collapse: collapse;
  font-size: clamp(12px, 2.2vw, 13px);
  table-layout: auto;
}

.admin-users-table th,
.admin-users-table td {
  text-align: left;
  padding: clamp(8px, 1.5vw, 12px) clamp(8px, 2vw, 12px);
  border-bottom: 1px solid var(--line);
  vertical-align: middle;
  white-space: normal;
  word-break: break-word;
}

.admin-users-table th {
  color: var(--muted);
  font-weight: 700;
}

.admin-user-index-col {
  width: 52px;
  min-width: 52px;
  text-align: center;
  color: var(--muted);
}

.admin-user-row--active {
  background: rgba(46, 160, 67, 0.06);
}

.admin-user-row--active td:first-child {
  box-shadow: inset 3px 0 0 #2ea043;
}

.admin-user-row--inactive {
  background: rgba(197, 61, 19, 0.06);
}

.admin-user-row--inactive td:first-child {
  box-shadow: inset 3px 0 0 #c53d13;
}

.admin-user-status {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 700;
}

.admin-user-status--on {
  color: #1a7f37;
  background: rgba(46, 160, 67, 0.16);
  border: 1px solid rgba(46, 160, 67, 0.35);
}

.admin-user-status--off {
  color: #a92525;
  background: rgba(197, 61, 19, 0.12);
  border: 1px solid rgba(197, 61, 19, 0.35);
}

.admin-chat-official-status {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 700;
}

.admin-chat-official-status--yes {
  color: #b45309;
  background: rgba(245, 158, 11, 0.16);
  border: 1px solid rgba(245, 158, 11, 0.42);
}

.admin-chat-official-status--no {
  color: #64748b;
  background: rgba(100, 116, 139, 0.1);
  border: 1px solid rgba(100, 116, 139, 0.28);
}

.admin-quant-remaining {
  font-size: 13px;
  font-weight: 600;
  color: #0f766e;
}

.admin-quant-remaining--empty {
  color: #94a3b8;
  font-weight: 500;
}

.admin-member-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
  white-space: nowrap;
}

.admin-member-badge.is-official {
  background: #fff4db;
  color: #b45309;
  border: 1px solid #fde6a8;
}

.admin-member-badge.is-admin {
  background: #eff6ff;
  color: #1d4ed8;
  border: 1px solid #bfdbfe;
}

.admin-member-badge.is-regular {
  background: #f1f5f9;
  color: #475569;
  border: 1px solid #e2e8f0;
}

.admin-member-badge.is-advanced {
  background: #ecfdf5;
  color: #047857;
  border: 1px solid #a7f3d0;
}

.admin-member-badge.is-loyal {
  background: #faf5ff;
  color: #7e22ce;
  border: 1px solid #e9d5ff;
}

.admin-member-badge.is-diamond {
  background: #fff7ed;
  color: #c2410c;
  border: 1px solid #fed7aa;
}

.admin-chat-official-btn {
  padding: 4px 10px;
  font-size: 12px;
  min-height: 0;
  border-radius: 6px;
  cursor: pointer;
  font-weight: 600;
}

.admin-chat-official-btn--set {
  border: 1px solid rgba(245, 158, 11, 0.5);
  background: rgba(245, 158, 11, 0.14);
  color: #b45309;
}

.admin-chat-official-btn--set:hover:not(:disabled) {
  background: rgba(245, 158, 11, 0.22);
  border-color: rgba(217, 119, 6, 0.62);
}

.admin-chat-official-btn--unset {
  border: 1px solid rgba(197, 61, 19, 0.45);
  background: rgba(197, 61, 19, 0.08);
  color: #a92525;
}

.admin-chat-official-btn--unset:hover:not(:disabled) {
  background: rgba(197, 61, 19, 0.14);
  border-color: rgba(197, 61, 19, 0.6);
}

.admin-feedback-reply-status {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}

.admin-feedback-reply-status--pending {
  color: #b45309;
  background: rgba(245, 158, 11, 0.14);
  border: 1px solid rgba(245, 158, 11, 0.35);
}

.admin-feedback-reply-status--done {
  color: #1a7f37;
  background: rgba(46, 160, 67, 0.16);
  border: 1px solid rgba(46, 160, 67, 0.35);
}

.admin-feedback-reply-tag {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 6px;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 700;
  vertical-align: middle;
  color: #1a7f37;
  background: rgba(46, 160, 67, 0.14);
  border: 1px solid rgba(46, 160, 67, 0.28);
}

.admin-feedback-reply-tag--pending {
  color: #b45309;
  background: rgba(245, 158, 11, 0.14);
  border: 1px solid rgba(245, 158, 11, 0.28);
}

.admin-user-search {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  margin: 0 0 0 auto;
  flex: 1 1 360px;
}

.admin-user-search input[type="search"] {
  flex: 0 1 220px;
  min-width: 140px;
  max-width: 280px;
  padding: 8px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  font-size: 14px;
  box-sizing: border-box;
}

.admin-user-search button {
  padding: 8px 14px;
  border-radius: 8px;
  font-weight: 700;
  cursor: pointer;
}

.admin-user-search-clear {
  font-size: 13px;
  font-weight: 700;
  color: var(--blue);
  text-decoration: none;
}

.admin-user-filter-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
}

.admin-user-filter-label select {
  min-width: 112px;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  font-size: 13px;
  background: #fff;
  cursor: pointer;
}

.admin-user-sort {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.admin-user-sort-label {
  font-size: 13px;
  color: var(--muted, #64748b);
  white-space: nowrap;
}

.admin-user-sort select {
  appearance: none;
  -webkit-appearance: none;
  padding: 8px 36px 8px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  font-size: 13px;
  line-height: 1.4;
  background-color: var(--panel, #fff);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%2364748b' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' d='M3 4.5 6 7.5 9 4.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 12px;
  color: inherit;
  cursor: pointer;
  min-width: 88px;
}

.admin-user-list-meta {
  margin: 0 0 10px;
  font-size: 13px;
}

.admin-user-pagination {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  margin-top: 12px;
  font-size: 13px;
}

.admin-user-pagination a {
  color: var(--blue);
  font-weight: 700;
  text-decoration: none;
}

.admin-user-pagination a:hover {
  text-decoration: underline;
}

.admin-user-pagination .is-disabled {
  color: var(--muted);
  opacity: .55;
}

.admin-user-pagination-info {
  color: var(--muted);
  font-weight: 700;
}

.admin-console-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  flex: 0 0 auto;
}

.admin-console-tab {
  display: inline-flex;
  align-items: center;
  padding: 8px 14px;
  border-radius: 8px;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink);
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}

.admin-console-tab:hover {
  border-color: #94b8e8;
  color: var(--blue, #2f6fed);
}

.admin-console-tab.is-active {
  border-color: var(--blue, #2f6fed);
  background: #eef4ff;
  color: var(--blue, #2f6fed);
}

.admin-dash-panel-announcements {
  flex: 0 1 auto;
  min-height: auto;
  display: grid;
  grid-template-columns: minmax(280px, 360px) minmax(0, 1fr);
  gap: 18px;
  overflow: visible;
}

.admin-announce-compose,
.admin-announce-list-wrap {
  min-height: auto;
  height: auto;
  display: flex;
  flex-direction: column;
  gap: 12px;
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: clamp(12px, 2vw, 16px);
  overflow: visible;
}

.admin-announce-compose .admin-section-title {
  flex: 0 0 auto;
  margin: 0;
}

.admin-announce-list-wrap {
  overflow: visible;
}

.admin-announce-form {
  display: flex;
  flex: 0 1 auto;
  min-height: auto;
  flex-direction: column;
  gap: 12px;
}

.admin-redeem-compose,
.admin-redeem-list-wrap {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.admin-redeem-form {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 12px;
}

.admin-redeem-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
}

.admin-redeem-field select {
  min-width: 140px;
  padding: 8px 10px;
  border: 1px solid #d0d7de;
  border-radius: 8px;
  background: #fff;
}

.admin-redeem-hint {
  margin: 0;
  font-size: 13px;
}

.admin-redeem-code-cell {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  max-width: 100%;
}

.admin-redeem-code-cell code {
  font-size: 13px;
  word-break: break-all;
}

.admin-redeem-copy-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 28px;
  height: 28px;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
  color: var(--muted);
  cursor: pointer;
  transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}

.admin-redeem-copy-btn:hover {
  border-color: #94b8e8;
  color: var(--blue, #2f6fed);
  background: #eef4ff;
}

.admin-redeem-copy-btn.is-copied {
  border-color: #6fbf8a;
  color: #087443;
  background: #ecfdf3;
}

.admin-announce-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  flex: 0 0 auto;
}

.admin-announce-field-body {
  flex: 1 1 auto;
  min-height: 0;
}

.admin-announce-field input,
.admin-announce-field textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 8px 10px;
  font: inherit;
  font-weight: 400;
}

.admin-announce-field-body textarea {
  flex: 0 1 auto;
  min-height: 160px;
  height: auto;
  resize: vertical;
}

.admin-announce-form-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
}

.admin-announce-form-actions button {
  min-height: 36px;
  padding: 8px 14px;
  font-size: 13px;
  line-height: 1.2;
  box-sizing: border-box;
  border-radius: 8px;
}

.admin-announce-cancel {
  font-size: 13px;
  color: var(--muted);
  text-decoration: none;
}

.admin-announce-cancel:hover {
  color: var(--blue, #2f6fed);
}

.admin-announce-list-title {
  margin: 0;
  font-size: 14px;
  font-weight: 800;
}

.admin-announce-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.admin-announce-item {
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 12px 14px;
  background: #fff;
}

.admin-announce-item.is-published {
  border-color: #cfe0f6;
  background: #f8fbff;
}

.admin-announce-item-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}

.admin-announce-item-main {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.admin-announce-item-title-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.admin-announce-item-head strong {
  margin-right: 0;
}

.admin-announce-status {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  vertical-align: middle;
}

.admin-announce-status--draft {
  background: #f3f4f6;
  color: #6b7280;
}

.admin-announce-status--published {
  background: #e8f5e9;
  color: #2e7d32;
}

.admin-announce-body-preview {
  margin: 0;
  padding: 10px 12px;
  border-radius: 8px;
  background: #f8fafc;
  border: 1px dashed #dbe3ef;
  font-family: inherit;
  font-size: 12px;
  line-height: 1.55;
  white-space: pre-wrap;
  word-break: break-word;
  max-height: 120px;
  overflow: auto;
}

.admin-announce-item-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  flex-shrink: 0;
}

.admin-announce-item-actions a,
.admin-announce-item-actions button {
  font-size: 12px;
  padding: 4px 10px;
  min-height: 0;
}

.admin-announce-item-actions a {
  font-size: 13px;
  font-weight: 600;
  color: var(--blue, #2f6fed);
  text-decoration: none;
}

.admin-announce-item-actions form {
  display: inline;
  margin: 0;
}

@media (max-width: 960px) {
  .admin-dash-panel-announcements {
    grid-template-columns: 1fr;
    overflow: visible;
  }

  .admin-announce-compose,
  .admin-announce-list-wrap {
    height: auto;
  }

  .admin-announce-form {
    flex: none;
  }

  .admin-announce-field-body {
    min-height: 220px;
  }

  .admin-announce-field-body textarea {
    min-height: 220px;
  }
}

@media (max-width: 760px) {
  .admin-dash-page {
    display: block;
    height: auto;
    min-height: 100dvh;
    min-height: 100vh;
    overflow-x: hidden;
    overflow-y: visible;
  }

  html:has(body.admin-dash-page),
  html:has(body.admin-auth-page) {
    height: auto;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  body.admin-dash-page {
    height: auto;
    min-height: 100dvh;
    min-height: 100vh;
    overflow-x: hidden;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
  }

  .admin-dash-bar {
    flex-wrap: wrap;
    align-items: flex-start;
    padding: 12px 14px;
    gap: 10px;
  }

  .admin-dash-bar h1 {
    flex: 1 1 100%;
    font-size: 16px;
    line-height: 1.35;
  }

  .admin-dash-actions {
    flex-wrap: wrap;
    width: 100%;
    gap: 8px;
  }

  .admin-dash-user {
    flex: 1 1 auto;
    min-width: 0;
    white-space: normal;
    font-size: 12px;
    line-height: 1.4;
  }

  .admin-dash-actions form {
    margin: 0;
  }

  .admin-dash-actions button {
    padding: 6px 10px;
    font-size: 13px;
  }

  .admin-dash-body,
  .admin-dash-body-wide {
    padding-left: 12px;
    padding-right: 12px;
  }

  .admin-dash-body-stack {
    flex: none;
    min-height: auto;
    overflow: visible;
    gap: 12px;
    padding-top: 12px;
    padding-bottom: max(16px, env(safe-area-inset-bottom, 0px));
  }

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

  .admin-metric-card {
    padding: 10px 12px;
  }

  .admin-metric-value {
    font-size: 1.25rem;
  }

  .admin-metric-hint {
    display: none;
  }

  .admin-console-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 2px;
    scrollbar-width: none;
  }

  .admin-console-tabs::-webkit-scrollbar {
    display: none;
  }

  .admin-console-tab {
    flex: 0 0 auto;
    white-space: nowrap;
  }

  .admin-dash-panel {
    padding: 14px 12px;
  }

  .admin-dash-panel-users,
  .admin-dash-panel-announcements {
    flex: none;
    min-height: auto;
    overflow: visible;
  }

  .admin-users-toolbar {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    margin-bottom: 10px;
  }

  .admin-users-toolbar .admin-section-title {
    margin: 0;
  }

  .admin-user-search {
    flex: 1 1 auto;
    width: 100%;
    margin: 0;
    justify-content: flex-start;
  }

  .admin-user-search input[type="search"] {
    flex: 1 1 100%;
    min-width: 0;
    max-width: none;
    width: 100%;
  }

  .admin-user-sort {
    flex: 1 1 auto;
    min-width: 0;
  }

  .admin-user-sort select {
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
  }

  .admin-dash-panel-users .admin-users-table-wrap,
  .admin-users-table-wrap {
    flex: none;
    min-height: auto;
    max-height: none;
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
  }

  .admin-users-table {
    min-width: 920px;
    width: max-content;
  }

  .admin-users-table th,
  .admin-users-table td {
    padding: 10px;
    font-size: 12px;
  }

  .admin-user-pagination {
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
  }

  .admin-announce-compose,
  .admin-announce-list-wrap {
    height: auto;
    overflow: visible;
  }

  .admin-announce-list-wrap {
    max-height: none;
    overflow: visible;
  }

  .admin-announce-item-head {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }

  .admin-announce-item-actions {
    flex-wrap: wrap;
  }

  .modal-panel.admin-feedback-drawer-panel {
    width: 100%;
    max-width: 100%;
    height: 100dvh;
    max-height: 100dvh;
    border-radius: 0;
  }
}

.admin-password-hash {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 11px;
  line-height: 1.35;
  color: var(--muted);
  word-break: break-all;
  max-width: 18rem;
  vertical-align: top;
}

.admin-password-hash-line {
  margin-bottom: 6px;
}

.admin-pw-reveal-inline {
  margin-top: 8px;
  padding: 8px 10px;
  background: #fffbeb;
  border: 1px solid #f5d28c;
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  max-width: 18rem;
  box-sizing: border-box;
}

.admin-pw-reveal-inline-label {
  font-size: 11px;
  font-weight: 800;
  color: #92400e;
  text-transform: none;
}

.admin-pw-reveal-inline-code {
  display: block;
  padding: 6px 8px;
  background: #fff;
  border: 1px dashed #d6bc6b;
  border-radius: 6px;
  font-size: 13px;
  font-weight: 700;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  word-break: break-all;
  user-select: all;
  color: #1a1a1a;
}

.admin-pw-reveal-inline-hint {
  font-size: 11px;
  color: var(--muted);
  line-height: 1.3;
}

.admin-reset-pw-cell {
  vertical-align: top;
  min-width: 11rem;
}

.admin-reset-pw-form {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}

.admin-reset-pw-form input[type="text"] {
  flex: 1;
  min-width: 6rem;
  max-width: 10rem;
  padding: 6px 8px;
  font-size: 13px;
  border: 1px solid var(--line);
  border-radius: 6px;
  box-sizing: border-box;
}

.admin-reset-pw-form button {
  padding: 6px 10px;
  font-size: 12px;
  font-weight: 700;
  border-radius: 6px;
  cursor: pointer;
  white-space: nowrap;
}

.admin-dash-panel {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: clamp(16px, 3vw, 22px);
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.admin-dash-panel p {
  margin: 0 0 8px;
  font-size: 15px;
}

.admin-stats-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}

.admin-stats-table th,
.admin-stats-table td {
  text-align: left;
  padding: 10px 12px;
  border-bottom: 1px solid var(--line);
}

.admin-stats-table th {
  width: 42%;
  color: var(--muted);
  font-weight: 700;
}

.auth-bar {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-right: 8px;
  font-size: 13px;
  color: var(--muted);
  white-space: nowrap;
}

.auth-bar a {
  color: var(--blue);
  font-weight: 700;
  text-decoration: none;
}

.auth-restricted {
  color: #c53d13;
  font-weight: 800;
}

.auth-bar a:hover {
  text-decoration: underline;
}

/* ===== Layout refresh: dashboard style (2026-05-09) ===== */
body {
  background: #f3f6fb;
  color: #1f2a37;
}

.topbar {
  position: sticky;
  top: 0;
  z-index: 20;
  padding: 10px 16px;
  gap: 12px;
  border-bottom: 1px solid #e5ebf5;
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(10px);
  box-shadow: 0 2px 18px rgba(13, 33, 73, 0.05);
}

h1 {
  font-size: 28px;
  font-weight: 800;
}

.eyebrow {
  margin-bottom: 2px;
  color: #5c6f8f;
  font-size: 12px;
  letter-spacing: 0.04em;
}

.major-indices-strip {
  gap: 8px;
  padding: 0 4px;
}

.major-index-chip {
  border: 1px solid #e7edf7;
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 4px 14px rgba(18, 41, 84, 0.05);
  padding: 8px 12px;
}

.major-index-chip:first-child {
  border-left: 1px solid #e7edf7;
}

.actions {
  gap: 8px;
}

button,
.feedback-top-btn {
  border-radius: 10px;
  border-color: #d8e3f5;
  padding: 9px 14px;
  font-size: 13px;
}

button.primary {
  background: #2962d6;
  border-color: #2962d6;
}

main {
  max-width: 1600px;
  margin: 0 auto;
  padding: 16px;
}

/* 电脑端（平板横屏及以上）：顶栏单行 Grid — 大盘自适应中间列，右侧个人中心 + 三个操作钮与大盘同一行 */
@media (min-width: 981px) {
  .topbar {
    display: grid;
    grid-template-columns: auto minmax(120px, 1fr) auto auto;
    align-items: center;
    gap: 12px;
    flex-wrap: unset;
    justify-content: unset;
  }

  .major-indices-strip {
    min-width: 0;
    max-width: none;
    align-self: center;
    align-items: center;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: thin;
    padding: 2px 0;
    border-radius: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
  }

  .major-index-chip {
    flex: 0 0 auto;
    min-width: 92px;
    max-width: 118px;
  }

  .brand-block {
    flex-shrink: 0;
    min-width: 0;
  }

  .top-actions {
    flex-shrink: 0;
    align-self: center;
    justify-self: end;
  }

  .quick-actions {
    flex-shrink: 0;
    grid-column: auto;
    align-self: center;
    align-items: center;
    justify-self: end;
  }

  .quick-actions button {
    align-self: center;
    flex: 0 0 auto;
  }
}

/* 平板竖屏等（761px～980px）：与电脑同一套单行顶栏，避免仅窄屏才出现 Grid */
@media (min-width: 761px) and (max-width: 980px) {
  .topbar {
    display: grid;
    grid-template-columns: auto minmax(120px, 1fr) auto auto;
    align-items: center;
    gap: 12px;
    flex-wrap: unset;
    justify-content: unset;
  }

  .major-indices-strip {
    min-width: 0;
    max-width: none;
    align-self: center;
    align-items: center;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: thin;
    padding: 2px 0;
    border-radius: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
  }

  .major-index-chip {
    flex: 0 0 auto;
    min-width: 92px;
    max-width: 118px;
  }

  .brand-block {
    flex-shrink: 0;
    min-width: 0;
  }

  .top-actions {
    flex-shrink: 0;
    align-self: center;
    justify-self: end;
  }

  .quick-actions {
    flex-shrink: 0;
    grid-column: auto;
    align-self: center;
    align-items: center;
    justify-self: end;
  }

  .quick-actions button {
    align-self: center;
    flex: 0 0 auto;
  }
}

.status-band {
  gap: 12px;
  border: 0;
  background: transparent;
  overflow: visible;
}

.status-band > div {
  border: 1px solid #e6edf7;
  border-radius: 12px;
  box-shadow: 0 6px 18px rgba(26, 47, 89, 0.06);
  padding: 14px;
}

.market-overview-card {
  border: 1px solid #f5d28c !important;
  background: linear-gradient(180deg, #fffaf0 0%, #fff6e6 100%) !important;
  box-shadow: 0 6px 18px rgba(154, 101, 0, 0.1);
}

.search-band {
  margin: 0 0 12px;
  padding: 12px;
  border: 1px solid #e6edf7;
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 6px 18px rgba(26, 47, 89, 0.05);
  grid-template-columns: minmax(200px, 280px) minmax(200px, 280px) minmax(0, 1fr);
}

input[type="search"] {
  border-radius: 10px;
  border-color: #d7e2f1;
  background: #fbfdff;
}

.market-tabs {
  margin-top: 10px;
  gap: 10px;
}

.main-tabs {
  gap: 6px;
  padding: 6px;
  border: 1px solid #e6edf7;
  border-radius: 12px;
  background: #ffffff;
}

.main-tabs button {
  min-height: 38px;
  border: 1px solid transparent;
  border-radius: 8px;
  padding: 8px 12px;
  font-size: 13px;
  font-weight: 700;
}

.main-tabs button.active {
  background: #2962d6;
  border-color: #2962d6;
}

.panel {
  border-radius: 12px;
  border-color: #e6edf7;
  box-shadow: 0 6px 20px rgba(24, 44, 86, 0.06);
}

.panel-head {
  padding: 13px 14px;
}

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

th {
  background: #f8fbff;
}

th,
td {
  padding: 10px 12px;
}

.table-wrap,
.main-flow-table-wrap,
.news-table-wrap {
  max-height: 700px;
}

footer {
  margin-top: 12px;
  padding: 8px 4px 0;
}

/* Major indices marquee：仅跑马灯时隐藏溢出，避免全局 overflow:hidden 盖掉电脑端横向滚动 */
.major-indices-strip {
  position: relative;
  --major-indices-fade: #fff;
  --major-indices-fade-w: 24px;
}

.major-indices-strip:has(.major-indices-track.is-animated) {
  overflow: hidden;
}

.major-indices-strip:has(.major-indices-track.is-animated)::before,
.major-indices-strip:has(.major-indices-track.is-animated)::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: var(--major-indices-fade-w);
  z-index: 2;
  pointer-events: none;
}

.major-indices-strip:has(.major-indices-track.is-animated)::before {
  left: 0;
  background: linear-gradient(
    90deg,
    var(--major-indices-fade) 0%,
    color-mix(in srgb, var(--major-indices-fade) 55%, transparent) 45%,
    transparent 100%
  );
}

.major-indices-strip:has(.major-indices-track.is-animated)::after {
  right: 0;
  background: linear-gradient(
    270deg,
    var(--major-indices-fade) 0%,
    color-mix(in srgb, var(--major-indices-fade) 55%, transparent) 45%,
    transparent 100%
  );
}

.major-indices-track {
  display: inline-flex;
  align-items: stretch;
  gap: 0;
  width: max-content;
}

.major-indices-set {
  display: inline-flex;
  align-items: stretch;
  flex: 0 0 auto;
  gap: 10px;
}

.major-indices-track.is-animated {
  gap: 10px;
  width: max-content;
  min-width: 0;
  will-change: transform;
  animation: majorIndicesMarquee 32s linear infinite;
}

@media (hover: hover) and (pointer: fine) {
  .major-indices-strip:hover .major-indices-track.is-animated {
    animation-play-state: paused;
  }
}

@keyframes majorIndicesMarquee {
  from { transform: translateX(0); }
  to { transform: translateX(var(--marquee-shift, -50%)); }
}

/* Top action split */
.top-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  justify-self: end;
}

/* 顶栏右侧三个按钮：默认不换行；勿设置 grid-column:1/-1，否则会独占一整行落到大盘下方（手机端由 grid-area 控制） */
.quick-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: nowrap;
  min-width: 0;
}

/* 市场监控/超级复盘、刷新报告、AI助手 三按钮等宽 */
.quick-actions button {
  min-width: 6.5em;
  text-align: center;
  white-space: nowrap;
}

/* Mobile topbar optimization: keep feedback/auth near title */
@media (max-width: 760px) {
  .topbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px 10px;
    padding: 12px 10px 10px;
  }

  #feedbackOpenBtn {
    min-height: 30px;
    padding: 4px 8px;
    font-size: 11px;
  }

  #authBar {
    justify-content: flex-end;
    margin-right: 0;
    padding: 0;
    font-size: 11px;
    line-height: 1.2;
    white-space: nowrap;
  }

  .quick-actions {
    justify-content: center;
    margin-top: 2px;
  }

  #superAnalysisOpenBtn { min-width: 0; }

  #monitorBtn,
  #refreshBtn,
  #superAnalysisOpenBtn {
    min-height: 30px;
    padding: 4px 8px;
    font-size: 11px;
  }

  /* 桌面态列表在手机宽度下仍纵向滚动；首页横向轮播由 .mobile-pick-strip 单独控制 */
  .signal-ticker:not(.mobile-pick-strip),
  .recommend-list:not(.mobile-pick-strip) {
    overflow-x: hidden !important;
    overflow-y: auto !important;
  }

  .signal-ticker:not(.mobile-pick-strip) .signal-ticker-track,
  .recommend-list:not(.mobile-pick-strip) .recommend-ticker-track {
    min-width: 0 !important;
    width: 100% !important;
    animation: none !important;
  }

  .signal-ticker:not(.mobile-pick-strip) .signal-ticker-track.is-animated,
  .recommend-list:not(.mobile-pick-strip) .recommend-ticker-track.is-animated {
    animation: signalTicker calc(var(--signal-count, 8) * 4s) linear infinite !important;
  }

  .signal-ticker:not(.mobile-pick-strip):hover .signal-ticker-track.is-animated,
  .recommend-list:not(.mobile-pick-strip):hover .recommend-ticker-track.is-animated {
    animation-play-state: paused;
  }
}

@media (max-width: 480px) {
  h1 {
    font-size: 18px;
  }

  .top-actions {
    gap: 6px;
  }

  .quick-actions {
    gap: 6px;
  }

  #feedbackOpenBtn,
  #monitorBtn,
  #refreshBtn,
  #superAnalysisOpenBtn {
    min-height: 28px;
    padding: 3px 7px;
    font-size: 10px;
  }

  #authBar {
    font-size: 10px;
  }
}

@media (max-width: 760px) {
  /* 纵向主列：搜索区已在 DOM 中位于状态卡之上 */
  main {
    display: flex;
    flex-direction: column;
  }

  /* 手机端：非搜索页隐藏独立历史条；搜索页打开时由 mobile-search-sheet-open 规则展示 */
  body:not(.mobile-search-sheet-open) #searchHistory {
    display: none !important;
  }

  .search-dropdown-history {
    margin: 8px 0 0;
    padding-bottom: 8px;
    border-bottom: 1px solid #e6edf7;
  }

  .search-dropdown-history-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 6px;
  }

  .search-dropdown-history-head span {
    color: #6f809d;
    font-size: 12px;
    font-weight: 700;
  }
}

@media (max-width: 760px) {
  /* 子项 grid-area；具体行列由下方「手机顶栏 / 固定顶栏」两段定义 */
  .brand-block {
    grid-area: brand !important;
  }

  .major-indices-strip {
    grid-area: indices !important;
  }

  .top-actions {
    display: contents !important;
  }

  #feedbackOpenBtn {
    grid-area: feedback !important;
    justify-self: start !important;
  }

  #authBar {
    grid-area: auth !important;
    justify-self: start !important;
    text-align: left !important;
    white-space: normal !important;
  }

  .quick-actions {
    grid-area: quick !important;
  }

  #monitorBtn,
  #refreshBtn,
  #superAnalysisOpenBtn {
    min-height: 32px !important;
  }

  /* 修复手机端搜索回显超宽：下拉内列表不再继承全局最小宽度 */
  .search-dropdown {
    width: auto !important;
    max-width: calc(100vw - 24px) !important;
    box-sizing: border-box;
    overflow-x: hidden;
  }

  .search-dropdown .related-list,
  .search-dropdown .mini-list,
  .search-dropdown .search-history-tags {
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100%;
    overflow-x: hidden !important;
  }

  .search-dropdown .related-row,
  .search-dropdown .mini-row {
    width: 100%;
    max-width: 100%;
  }

  .search-dropdown .related-main strong,
  .search-dropdown .related-main small,
  .search-dropdown .search-history-chip [data-search-history] {
    white-space: normal !important;
    overflow-wrap: anywhere;
    word-break: break-word;
  }
}

@media (max-width: 760px) {
  /* 手机：第 1 行标题+反馈+账号，第 2 行大盘横向滚动，第 3 行监控/超级分析 */
  .topbar {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto auto !important;
    grid-template-areas:
      "brand feedback auth"
      "indices indices indices"
      "quick quick quick" !important;
    align-items: center !important;
    gap: 6px 8px !important;
  }

  #feedbackOpenBtn {
    grid-area: feedback !important;
    justify-self: end !important;
    width: auto !important;
    min-width: 72px !important;
    max-width: none !important;
    white-space: nowrap !important;
  }

  #authBar {
    grid-area: auth !important;
    justify-self: start !important;
    width: auto !important;
    min-width: 0 !important;
    white-space: nowrap !important;
  }

  .quick-actions {
    grid-area: quick !important;
    display: flex !important;
    justify-content: stretch !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: 8px !important;
    margin-top: 2px !important;
    width: 100%;
    max-width: 100%;
  }

  #monitorBtn,
  #refreshBtn,
  #superAnalysisOpenBtn {
    flex: 1 1 0 !important;
    width: auto !important;
    min-width: 0 !important;
  }
}

@media (max-width: 480px) {
  .topbar {
    grid-template-columns: minmax(0, 1fr) auto auto !important;
  }

  #feedbackOpenBtn {
    min-width: 66px !important;
  }

  #authBar {
    font-size: 10px !important;
  }
}

@media (max-width: 760px) {
  /* 固定顶栏：与上一段相同的三行区域划分（快捷按钮在大盘条下方） */
  .topbar:not(:has(.mobile-topbar-row)) {
    position: fixed !important;
    top: 0 !important;
    left: 0;
    right: 0;
    z-index: 80 !important;
    grid-template-columns: minmax(0, 1fr) auto auto !important;
    grid-template-areas:
      "brand feedback auth"
      "indices indices indices"
      "quick quick quick" !important;
    align-items: center !important;
    gap: 6px 8px !important;
    background: rgba(255, 255, 255, 0.98) !important;
    backdrop-filter: blur(10px);
    border-bottom: 1px solid #e6edf7;
  }

  .brand-block .eyebrow {
    display: none;
  }

  .brand-title-row {
    flex-wrap: nowrap;
    min-height: 30px;
  }

  #feedbackOpenBtn,
  #authBar {
    align-self: center !important;
    line-height: 1.2;
  }
}

@media (max-width: 760px) {
  /* 页面不滚动，仅内容区滚动（顶部固定） */
  :root {
    --mobile-main-offset: 200px;
  }

  html,
  body {
    height: 100%;
    overflow: hidden !important;
  }

  main {
    position: relative !important;
    left: auto;
    right: auto;
    top: auto;
    bottom: auto;
    margin-top: var(--mobile-main-offset);
    height: calc(100dvh - var(--mobile-main-offset));
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    /* 顶栏与首块内容紧贴，避免与快捷按钮之间出现空白带 */
    padding: 0 16px 16px !important;
  }

  /* 覆盖文件后部未限定宽度的 .search-band 三列定义，避免窄屏第二列溢出 */
  .search-band {
    margin: 0 0 12px !important;
    padding: 12px;
    overflow: visible;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px;
    align-items: start;
  }

  .search-band .search-field {
    min-width: 0;
    max-width: 100%;
  }

  .search-band input[type="search"] {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }

  .search-band input[type="search"]::placeholder {
    font-size: 12px;
  }

  .search-band input[type="search"]::-webkit-input-placeholder {
    font-size: 12px;
  }
}

@media (min-width: 761px) {
  .status-band {
    align-items: stretch;
  }

  .signal-status-card,
  .recommend-status-card {
    display: flex;
    flex-direction: column;
    min-height: 0;
  }

  .signal-status-card .status-card-head,
  .recommend-status-card .status-card-head {
    flex: 0 0 auto;
  }

  .signal-ticker,
  .recommend-list,
  .signal-ticker.empty,
  .recommend-list.empty {
    flex: 1 1 var(--status-list-height);
    height: auto;
    min-height: var(--status-list-height);
    max-height: none;
  }

  .signal-ticker-track,
  .recommend-ticker-track {
    min-height: 100%;
    align-content: start;
  }

  .signal-ticker:not(.mobile-pick-strip),
  .recommend-list:not(.mobile-pick-strip) {
    border: 0;
    background: transparent;
    box-shadow: none;
    scrollbar-width: none;
    scrollbar-gutter: auto;
    -ms-overflow-style: none;
  }

  .signal-ticker:not(.mobile-pick-strip)::-webkit-scrollbar,
  .recommend-list:not(.mobile-pick-strip)::-webkit-scrollbar {
    width: 0;
    height: 0;
    display: none;
  }

  .signal-status-card > .signal-ticker:not(.mobile-pick-strip),
  .recommend-status-card > .recommend-list:not(.mobile-pick-strip) {
    margin-left: 0;
    margin-right: 0;
    width: 100%;
  }

  .signal-ticker:not(.mobile-pick-strip) .signal-ticker-track,
  .recommend-list:not(.mobile-pick-strip) .recommend-ticker-track {
    padding-top: 0;
    padding-bottom: 12px;
    padding-left: 0;
    padding-right: 0;
    gap: 6px;
  }

  .signal-status-card .status-card-head,
  .recommend-status-card .status-card-head {
    align-items: center;
  }

  .signal-status-card .status-card-title-group,
  .recommend-status-card .status-card-title-group {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
  }

  .signal-status-card .status-card-title-group .label,
  .recommend-status-card .status-card-title-group .label {
    margin: 0;
  }

  .signal-status-card .status-card-title-group .mobile-carousel-tag,
  .recommend-status-card .status-card-title-group .mobile-carousel-tag {
    color: #86909c;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.4;
    white-space: nowrap;
  }

  .signal-ticker:not(.mobile-pick-strip) .signal-ticker-row,
  .recommend-list:not(.mobile-pick-strip) .recommend-row {
    min-height: 54px;
    padding-top: 6px;
    padding-bottom: 6px;
    padding-left: 0;
    padding-right: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .signal-ticker:not(.mobile-pick-strip) .signal-ticker-row:hover,
  .recommend-list:not(.mobile-pick-strip) .recommend-row:hover {
    background: transparent;
  }

  .recommend-list:not(.mobile-pick-strip) .recommend-row {
    grid-template-columns: 42px minmax(0, 1fr) auto;
    gap: 8px;
    align-items: center;
  }

  .recommend-list:not(.mobile-pick-strip) .recommend-row > .recommend-rank {
    width: 42px;
    height: 34px;
    min-width: 42px;
    border-radius: 6px;
    align-self: center;
  }

  .recommend-list:not(.mobile-pick-strip) button.recommend-row {
    padding-top: 6px;
    padding-bottom: 6px;
    padding-left: 0;
    padding-right: 0;
    border: 0;
  }

  /* Web 市场提示 6 指标卡详情：抽屉略窄，避免占满右侧 */
  #detailModal:not(.detail-sheet-modal):has(.modal-body.market-tech-detail-body) .modal-panel {
    width: min(520px, 88vw);
  }

  /* Web 策略推荐逻辑详情：抽屉收窄 */
  #detailModal:not(.detail-sheet-modal):has(.strategy-detail-body) .modal-panel {
    width: min(480px, 88vw);
  }

  /* Web 详情抽屉：标题左对齐、隐藏副标题与底部返回、放大右上关闭 */
  #detailModal:not(.detail-sheet-modal):has(.stock-detail-body, .sector-detail-body, .news-detail-body, .hot-money-detail-body, .market-tech-detail-body, .strategy-detail-body) .detail-sheet-head {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 20px;
  }

  #detailModal:not(.detail-sheet-modal):has(.stock-detail-body, .sector-detail-body, .news-detail-body, .hot-money-detail-body, .market-tech-detail-body, .strategy-detail-body) .detail-sheet-head-spacer {
    display: none;
  }

  #detailModal:not(.detail-sheet-modal):has(.stock-detail-body, .sector-detail-body, .news-detail-body, .hot-money-detail-body, .market-tech-detail-body, .strategy-detail-body) .detail-sheet-head-center {
    flex: 1;
    min-width: 0;
    justify-content: flex-start;
    gap: 12px;
  }

  #detailModal:not(.detail-sheet-modal):has(.stock-detail-body, .sector-detail-body) .detail-sheet-title-row {
    flex: 1;
    min-width: 0;
    max-width: none;
  }

  #detailModal:not(.detail-sheet-modal):has(.stock-detail-body, .sector-detail-body, .news-detail-body, .hot-money-detail-body, .market-tech-detail-body, .strategy-detail-body) .detail-sheet-title-row h2,
  #detailModal:not(.detail-sheet-modal):has(.stock-detail-body, .sector-detail-body, .news-detail-body, .hot-money-detail-body, .market-tech-detail-body, .strategy-detail-body) .detail-sheet-head-center h2,
  #detailModal:not(.detail-sheet-modal):has(.stock-detail-body, .sector-detail-body, .news-detail-body, .hot-money-detail-body, .market-tech-detail-body, .strategy-detail-body) .modal-head h2 {
    justify-content: flex-start;
    text-align: left;
    width: auto;
    max-width: none;
  }

  #detailModal:not(.detail-sheet-modal):has(.stock-detail-body, .sector-detail-body, .news-detail-body, .hot-money-detail-body, .market-tech-detail-body, .strategy-detail-body) .detail-sheet-eyebrow,
  #detailModal:not(.detail-sheet-modal):has(.stock-detail-body, .sector-detail-body, .news-detail-body, .hot-money-detail-body, .market-tech-detail-body, .strategy-detail-body) .detail-sheet-footer,
  #detailModal:not(.detail-sheet-modal):has(.stock-detail-body, .sector-detail-body, .news-detail-body, .hot-money-detail-body, .market-tech-detail-body, .strategy-detail-body) #detailModalFooter {
    display: none !important;
  }

  #detailModal:not(.detail-sheet-modal):has(.stock-detail-body, .sector-detail-body, .news-detail-body, .hot-money-detail-body, .market-tech-detail-body, .strategy-detail-body) #modalClose.detail-desktop-stock-close {
    flex-shrink: 0;
    align-self: center;
    width: 40px;
    height: 40px;
    min-height: 40px;
    padding: 0;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: #4e5969;
    font-size: 30px;
    font-weight: 400;
    line-height: 1;
    cursor: pointer;
  }

  #detailModal:not(.detail-sheet-modal):has(.stock-detail-body, .sector-detail-body, .news-detail-body, .hot-money-detail-body, .market-tech-detail-body, .strategy-detail-body) #modalClose.detail-desktop-stock-close:hover {
    background: #f2f3f5;
    color: #1d2129;
  }

  /* Web 股票详情：行情走势 — 标题左、周期 Tab 右，白色面板包裹图表区 */
  #detailModal:not(.detail-sheet-modal) .stock-detail-body .stock-detail-trend {
    display: flex;
    flex-direction: column;
    gap: 2px;
    width: 100%;
    min-width: 0;
    padding: 8px;
    margin-bottom: 16px;
    background: #fff;
    border-radius: 6px;
  }

  #detailModal:not(.detail-sheet-modal) .sector-detail-body .sector-detail-trend {
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 100%;
    min-width: 0;
    padding: 0;
    margin-bottom: 16px;
    background: transparent;
  }

  #detailModal:not(.detail-sheet-modal) .sector-detail-body .sector-detail-trend .detail-section-head,
  #detailModal:not(.detail-sheet-modal) .stock-detail-body .stock-detail-trend .detail-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: nowrap;
    width: 100%;
    min-width: 0;
  }

  #detailModal:not(.detail-sheet-modal) .sector-detail-body .sector-detail-trend .detail-section-head h3,
  #detailModal:not(.detail-sheet-modal) .stock-detail-body .stock-detail-trend .detail-section-head h3 {
    margin: 0;
    font-size: 14px;
    font-weight: 500;
    color: #1d2129;
    white-space: nowrap;
  }

  #detailModal:not(.detail-sheet-modal) .sector-detail-body .sector-chart-mode-tabs,
  #detailModal:not(.detail-sheet-modal) .stock-detail-body .stock-chart-mode-tabs {
    display: inline-flex;
    align-items: center;
    gap: 0;
    padding: 2px;
    border-radius: 6px;
    background: #f2f3f5;
    flex: 0 0 auto;
    flex-shrink: 0;
    margin-left: auto;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  #detailModal:not(.detail-sheet-modal) .sector-detail-body .sector-chart-mode-tabs button,
  #detailModal:not(.detail-sheet-modal) .stock-detail-body .stock-chart-mode-tabs button {
    min-height: 28px;
    padding: 2px 12px;
    border: 0;
    border-radius: 4px;
    background: transparent;
    color: #4e5969;
    font-size: 14px;
    font-weight: 400;
    line-height: 22px;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }

  #detailModal:not(.detail-sheet-modal) .sector-detail-body .sector-chart-mode-tabs button:hover,
  #detailModal:not(.detail-sheet-modal) .sector-detail-body .sector-chart-mode-tabs button:active,
  #detailModal:not(.detail-sheet-modal) .sector-detail-body .sector-chart-mode-tabs button:focus,
  #detailModal:not(.detail-sheet-modal) .sector-detail-body .sector-chart-mode-tabs button:focus-visible,
  #detailModal:not(.detail-sheet-modal) .stock-detail-body .stock-chart-mode-tabs button:hover,
  #detailModal:not(.detail-sheet-modal) .stock-detail-body .stock-chart-mode-tabs button:active,
  #detailModal:not(.detail-sheet-modal) .stock-detail-body .stock-chart-mode-tabs button:focus,
  #detailModal:not(.detail-sheet-modal) .stock-detail-body .stock-chart-mode-tabs button:focus-visible {
    outline: none;
    background: transparent !important;
    box-shadow: none !important;
  }

  #detailModal:not(.detail-sheet-modal) .sector-detail-body .sector-chart-mode-tabs button.active,
  #detailModal:not(.detail-sheet-modal) .stock-detail-body .stock-chart-mode-tabs button.active,
  #detailModal:not(.detail-sheet-modal) .sector-detail-body .sector-chart-mode-tabs button.active:hover,
  #detailModal:not(.detail-sheet-modal) .sector-detail-body .sector-chart-mode-tabs button.active:active,
  #detailModal:not(.detail-sheet-modal) .sector-detail-body .sector-chart-mode-tabs button.active:focus,
  #detailModal:not(.detail-sheet-modal) .sector-detail-body .sector-chart-mode-tabs button.active:focus-visible,
  #detailModal:not(.detail-sheet-modal) .stock-detail-body .stock-chart-mode-tabs button.active:hover,
  #detailModal:not(.detail-sheet-modal) .stock-detail-body .stock-chart-mode-tabs button.active:active,
  #detailModal:not(.detail-sheet-modal) .stock-detail-body .stock-chart-mode-tabs button.active:focus,
  #detailModal:not(.detail-sheet-modal) .stock-detail-body .stock-chart-mode-tabs button.active:focus-visible {
    background: #fff !important;
    color: #165dff;
    font-weight: 500;
    box-shadow: 0 1px 2px rgba(16, 24, 40, 0.06) !important;
  }

  #detailModal:not(.detail-sheet-modal) .sector-detail-body .sector-chart-mount,
  #detailModal:not(.detail-sheet-modal) .stock-detail-body .stock-chart-mount {
    display: flex;
    flex-direction: column;
    width: 100%;
    min-width: 0;
    height: clamp(200px, 30vw, 300px);
    min-height: 200px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    overflow: visible;
    box-sizing: border-box;
  }

  #detailModal:not(.detail-sheet-modal) .stock-detail-body .stock-detail-trend .stock-chart-mount .cninfo-chart-body,
  #detailModal:not(.detail-sheet-modal) .stock-detail-body .stock-detail-trend .cninfo-intraday-svg,
  #detailModal:not(.detail-sheet-modal) .stock-detail-body .stock-detail-trend .cninfo-history-svg {
    overflow: visible;
  }

  #detailModal:not(.detail-sheet-modal) .stock-detail-body .stock-detail-trend .cninfo-intraday-svg .price-line {
    stroke-width: 2.8;
  }

  #detailModal:not(.detail-sheet-modal) .sector-detail-body .sector-chart-mount .sector-chart-mode,
  #detailModal:not(.detail-sheet-modal) .stock-detail-body .stock-chart-mount .stock-chart-mode {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
    height: 100%;
  }

  #detailModal:not(.detail-sheet-modal) .sector-detail-body .sector-chart-mount .cninfo-history-wrap,
  #detailModal:not(.detail-sheet-modal) .stock-detail-body .stock-chart-mount .cninfo-history-wrap {
    width: 100%;
    min-width: 0;
    flex: 1 1 auto;
    border: 0;
    border-radius: 0;
    background: transparent;
  }

  #detailModal:not(.detail-sheet-modal) .sector-detail-body .sector-chart-mount .cninfo-market-chart,
  #detailModal:not(.detail-sheet-modal) .stock-detail-body .stock-chart-mount .cninfo-market-chart,
  #detailModal:not(.detail-sheet-modal) .sector-detail-body .sector-chart-mount .cninfo-history-wrap > .cninfo-market-chart,
  #detailModal:not(.detail-sheet-modal) .stock-detail-body .stock-chart-mount .cninfo-history-wrap > .cninfo-market-chart {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 0;
    width: 100%;
    height: 100%;
    border: 0;
    border-radius: 0;
    background: transparent;
    padding: 0;
  }

  #detailModal:not(.detail-sheet-modal) .sector-detail-body .sector-chart-mount .cninfo-market-chart-head,
  #detailModal:not(.detail-sheet-modal) .stock-detail-body .stock-chart-mount .cninfo-market-chart-head {
    display: none;
  }

  #detailModal:not(.detail-sheet-modal) .sector-detail-body .sector-chart-mount .cninfo-chart-body,
  #detailModal:not(.detail-sheet-modal) .stock-detail-body .stock-chart-mount .cninfo-chart-body,
  #detailModal:not(.detail-sheet-modal) .sector-detail-body .sector-chart-mount .cninfo-history-wrap [data-cninfo-history-mount] > .cninfo-chart-body,
  #detailModal:not(.detail-sheet-modal) .stock-detail-body .stock-chart-mount .cninfo-history-wrap [data-cninfo-history-mount] > .cninfo-chart-body {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 0;
    width: 100%;
    height: 100%;
    max-height: none;
    aspect-ratio: unset;
    padding: 0 8px 8px;
    box-sizing: border-box;
  }

  #detailModal:not(.detail-sheet-modal) .sector-detail-body .sector-chart-mount .cninfo-chart-body svg,
  #detailModal:not(.detail-sheet-modal) .stock-detail-body .stock-chart-mount .cninfo-chart-body svg {
    flex: 1 1 auto;
    width: 100%;
    height: 100%;
    min-height: 0;
  }

  #detailModal:not(.detail-sheet-modal) .stock-detail-body .stock-cninfo-hero--head {
    margin-bottom: 12px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
  }

  #detailModal:not(.detail-sheet-modal) .stock-detail-body .stock-cninfo-hero--head .detail-summary {
    margin-bottom: 8px;
  }
}

/* 股票详情抽屉 · 手机端布局 */
@media (max-width: 760px) {
  .modal-body.stock-detail-body {
    padding: 12px;
    overflow-x: clip;
  }

  .modal-body.sector-detail-body {
    padding: 12px;
    overflow-x: clip;
  }

  #detailModal.sector-detail-sheet-modal .modal-body.sector-detail-body {
    padding: 0;
  }

  #detailModal.stock-detail-sheet-modal .modal-body.stock-detail-body {
    padding: 0;
  }

  #detailModal.sector-detail-sheet-modal .detail-sheet-head {
    padding-left: calc(12px + var(--safe-left));
    padding-right: calc(12px + var(--safe-right));
  }

  .stock-detail-body .stock-cninfo-hero {
    padding: 14px 12px;
    gap: 12px;
  }

  .stock-detail-body .stock-cninfo-hero strong {
    font-size: 20px;
  }

  .stock-detail-body .detail-summary,
  .stock-detail-body .detail-summary.compact-summary,
  .sector-detail-body .detail-summary {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .stock-detail-body .detail-summary > div,
  .sector-detail-body .detail-summary > div {
    padding: 10px 4px;
    text-align: center;
  }

  .stock-detail-body .detail-summary span,
  .sector-detail-body .detail-summary span {
    font-size: 11px;
    margin-bottom: 4px;
  }

  .stock-detail-body .detail-summary strong,
  .sector-detail-body .detail-summary strong {
    font-size: 14px;
    line-height: 1.25;
    word-break: break-all;
  }

  .stock-detail-body .detail-summary .detail-summary-price-cell .is-stock-price {
    font-size: 32px;
    line-height: 1;
    word-break: normal;
  }

  .stock-detail-body .detail-summary .detail-summary-price-cell .detail-metric-change {
    font-size: 14px;
    line-height: 1.2;
    word-break: normal;
  }

  .stock-detail-body .stock-detail-tabs {
    top: -1px;
    margin-inline: -2px;
    padding: 6px 10px 6px 6px;
    gap: 4px;
    scrollbar-width: none;
  }

  .stock-detail-body .stock-detail-tabs::-webkit-scrollbar {
    display: none;
  }

  .stock-detail-body .stock-detail-tabs button {
    min-height: 44px;
    padding: 8px 12px;
    font-size: 13px;
    white-space: nowrap;
  }

  .stock-detail-body .cninfo-section {
    padding: 12px;
    min-width: 0;
    max-width: 100%;
  }

  .stock-detail-body .cninfo-group-section,
  .stock-detail-body .cninfo-subsection,
  .stock-detail-body .cninfo-scroll-block,
  .stock-detail-body .cninfo-scroll-block > .cninfo-section {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
  }

  .stock-detail-body .cninfo-scroll-block > .cninfo-section {
    padding: 10px;
  }

  .stock-detail-body .cninfo-profile-hero strong,
  .stock-detail-body .cninfo-profile-hero small {
    overflow-wrap: anywhere;
    word-break: break-word;
    max-width: 100%;
  }

  .stock-detail-body .cninfo-info-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .stock-detail-body .cninfo-info-grid div {
    min-width: 0;
    padding: 10px 8px;
  }

  .stock-detail-body .cninfo-info-grid dt,
  .stock-detail-body .cninfo-info-grid dd {
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .stock-detail-body .cninfo-section > h3 {
    margin: 4px 0 0;
    font-size: 15px;
    overflow-wrap: anywhere;
  }

  .stock-detail-body .cninfo-subsection-head {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
  }

  .stock-detail-body .cninfo-subsection-head span {
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .stock-detail-body .finance-head {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
  }

  .stock-detail-body .finance-head span {
    text-align: left;
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .stock-detail-body .finance-metrics,
  .stock-detail-body .finance-metrics.cninfo-metrics,
  .stock-detail-body .cninfo-metrics {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 148px), 1fr));
  }

  .stock-detail-body .finance-metric {
    padding: 10px 8px;
  }

  .stock-detail-body .finance-metric strong {
    font-size: 15px;
  }

  .stock-detail-body [data-stock-detail-panel="announcement"] .cninfo-table-wrap,
  .stock-detail-body [data-stock-detail-panel="share"] .cninfo-table-wrap,
  .stock-detail-body [data-stock-detail-panel="trade"] .cninfo-table-wrap {
    overflow: visible !important;
    border: none;
    background: transparent;
  }

  .stock-detail-body [data-stock-detail-panel="announcement"] .cninfo-table,
  .stock-detail-body [data-stock-detail-panel="share"] .cninfo-table,
  .stock-detail-body [data-stock-detail-panel="trade"] .cninfo-table {
    min-width: 0 !important;
    width: 100%;
  }

  .stock-detail-body [data-stock-detail-panel="announcement"] .cninfo-table thead,
  .stock-detail-body [data-stock-detail-panel="share"] .cninfo-table thead,
  .stock-detail-body [data-stock-detail-panel="trade"] .cninfo-table thead {
    display: none;
  }

  .stock-detail-body [data-stock-detail-panel="announcement"] .cninfo-table tbody,
  .stock-detail-body [data-stock-detail-panel="share"] .cninfo-table tbody,
  .stock-detail-body [data-stock-detail-panel="trade"] .cninfo-table tbody {
    display: grid;
    gap: 8px;
  }

  .stock-detail-body [data-stock-detail-panel="announcement"] .cninfo-table tr,
  .stock-detail-body [data-stock-detail-panel="share"] .cninfo-table tr,
  .stock-detail-body [data-stock-detail-panel="trade"] .cninfo-table tr {
    display: grid;
    gap: 6px;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
  }

  .stock-detail-body [data-stock-detail-panel="announcement"] .cninfo-table td,
  .stock-detail-body [data-stock-detail-panel="share"] .cninfo-table td,
  .stock-detail-body [data-stock-detail-panel="trade"] .cninfo-table td {
    display: block;
    padding: 0;
    border: 0;
    font-size: 13px;
    line-height: 1.45;
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .stock-detail-body [data-stock-detail-panel="announcement"] .cninfo-table td:first-child,
  .stock-detail-body [data-stock-detail-panel="announcement"] .cninfo-table td:nth-child(2),
  .stock-detail-body [data-stock-detail-panel="share"] .cninfo-table td:first-child,
  .stock-detail-body [data-stock-detail-panel="trade"] .cninfo-table td:first-child {
    color: var(--muted);
    font-size: 12px;
  }

  .stock-detail-body [data-stock-detail-panel="announcement"] .cninfo-table td:nth-child(3),
  .stock-detail-body [data-stock-detail-panel="share"] .cninfo-table td:nth-child(2),
  .stock-detail-body [data-stock-detail-panel="trade"] .cninfo-table td:nth-child(2) {
    font-weight: 700;
    color: var(--ink);
    line-height: 1.5;
  }

  .stock-detail-body [data-stock-detail-panel="share"] .fund-holding-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .stock-detail-body [data-stock-detail-panel="share"] .fund-holding-summary article {
    min-width: 0;
    padding: 10px 8px;
  }

  .stock-detail-body [data-stock-detail-panel="share"] .fund-holding-summary strong {
    font-size: 18px;
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .stock-detail-body [data-stock-detail-panel="share"] .fund-row,
  .stock-detail-body [data-stock-detail-panel="share"] .shareholder-row {
    grid-template-columns: 28px minmax(0, 1fr);
    align-items: start;
  }

  .stock-detail-body [data-stock-detail-panel="share"] .fund-row > span,
  .stock-detail-body [data-stock-detail-panel="share"] .shareholder-row > span {
    grid-row: 1 / span 2;
  }

  .stock-detail-body [data-stock-detail-panel="share"] .fund-row em,
  .stock-detail-body [data-stock-detail-panel="share"] .shareholder-ratio {
    grid-column: 2;
    justify-self: start;
  }

  .stock-detail-body [data-stock-detail-panel="share"] .fund-row small,
  .stock-detail-body [data-stock-detail-panel="share"] .shareholder-row small {
    grid-column: 2;
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .stock-detail-body [data-stock-detail-panel="trade"] .stock-hot-money,
  .stock-detail-body [data-stock-detail-panel="trade"] .hot-money-buy-list {
    min-width: 0;
    max-width: 100%;
  }

  .stock-detail-body [data-stock-detail-panel="trade"] .hot-money-buy-list {
    gap: 8px;
    border: none;
    background: transparent;
    overflow: visible;
  }

  .stock-detail-body [data-stock-detail-panel="trade"] .hot-money-buy-row {
    grid-template-columns: 28px minmax(0, 1fr);
    align-items: start;
    border: 1px solid var(--line);
    border-radius: 8px;
  }

  .stock-detail-body [data-stock-detail-panel="trade"] .hot-money-buy-row > span {
    grid-row: 1 / span 2;
  }

  .stock-detail-body [data-stock-detail-panel="trade"] .hot-money-buy-row strong,
  .stock-detail-body [data-stock-detail-panel="trade"] .hot-money-buy-row em,
  .stock-detail-body [data-stock-detail-panel="trade"] .hot-money-buy-row small {
    grid-column: 2;
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .stock-detail-body [data-stock-detail-panel="share"] .finance-block,
  .stock-detail-body [data-stock-detail-panel="share"] .fund-holding-card,
  .stock-detail-body [data-stock-detail-panel="share"] .fund-list,
  .stock-detail-body [data-stock-detail-panel="share"] .shareholder-list {
    min-width: 0;
    max-width: 100%;
  }

  .stock-detail-body [data-stock-detail-panel="company"] .cninfo-table-wrap,
  .stock-detail-body [data-stock-detail-panel="finance"] .cninfo-table-wrap {
    width: 100%;
    max-width: 100%;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
  }

  .stock-detail-body [data-stock-detail-panel="company"] .cninfo-table,
  .stock-detail-body [data-stock-detail-panel="finance"] .cninfo-table {
    min-width: 640px;
  }

  .stock-detail-body .cninfo-section.two-column {
    grid-template-columns: 1fr;
  }

  .stock-detail-body .chart-grid,
  .stock-detail-body .cninfo-market-chart-grid,
  .sector-detail-body .cninfo-market-chart-grid {
    grid-template-columns: 1fr;
  }

  .stock-detail-body .trade-table-wrap {
    width: 100%;
    max-width: 100%;
    overflow-x: auto !important;
    overflow-y: visible !important;
    -webkit-overflow-scrolling: touch;
  }

  .stock-detail-body .trade-detail-table {
    min-width: 720px !important;
  }

  .stock-detail-body .stock-ai-analysis-head {
    flex-direction: column;
    align-items: stretch;
  }
}

/* Super review dashboard */
.super-review-modal-panel {
  max-width: 1180px;
  width: min(1180px, calc(100vw - 28px));
  background: #07142b;
  border-color: rgba(75, 128, 214, .45);
  color: #dbeafe;
}

.super-review-modal-panel .modal-head {
  border-bottom-color: rgba(72, 116, 189, .4);
  background:
    radial-gradient(circle at 90% 0%, rgba(37, 99, 235, .28), transparent 28%),
    linear-gradient(180deg, #0b1d3b 0%, #07142b 100%);
}

.super-review-modal-panel .modal-head h2,
.super-review-modal-panel .modal-head .eyebrow {
  color: #eef6ff;
}

.super-review-modal-panel .modal-head button {
  border-color: rgba(148, 163, 184, .36);
  background: rgba(15, 35, 70, .75);
  color: #dbeafe;
}

.super-review-modal-body {
  padding: 0;
  background: #061126;
  overflow: auto;
}

.super-review-body {
  min-height: 100%;
}

.super-review-dashboard {
  --sr-bg: #07142b;
  --sr-panel: #0c1d3a;
  --sr-panel-2: #10264b;
  --sr-line: rgba(89, 132, 204, .42);
  --sr-text: #e8f2ff;
  --sr-muted: #8fb0d8;
  --sr-red: #ef4444;
  --sr-green: #19b46b;
  --sr-gold: #fbbf24;
  width: 100%;
  min-height: 760px;
  padding: 16px;
  color: var(--sr-text);
  background:
    radial-gradient(circle at 12% -8%, rgba(0, 168, 255, .22), transparent 30%),
    radial-gradient(circle at 95% 2%, rgba(239, 68, 68, .18), transparent 26%),
    linear-gradient(180deg, #07152c 0%, #061126 100%);
}

.super-review-modal-body {
  position: relative;
}

.super-review-modal-body .strategy-access-gate:not([hidden]) {
  min-height: 280px;
}

.super-review-mobile-viewport[hidden] {
  display: none !important;
}

.super-review-status-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
  padding: 10px 14px;
  border: 1px solid rgba(96, 165, 250, .28);
  border-radius: 10px;
  background: rgba(15, 35, 70, .72);
  color: #dbeafe;
  font-size: 13px;
  line-height: 1.45;
}

.super-review-status-banner p {
  margin: 0;
}

.super-review-status-banner a,
.super-review-status-banner button {
  flex: 0 0 auto;
  border: 1px solid rgba(148, 163, 184, .36);
  border-radius: 999px;
  background: rgba(8, 26, 55, .88);
  color: #eef6ff;
  padding: 6px 12px;
  font: inherit;
  font-size: 12px;
  text-decoration: none;
  cursor: pointer;
}

.super-review-status-banner.is-error {
  border-color: rgba(239, 68, 68, .42);
  background: rgba(76, 18, 28, .55);
}

.super-review-status-banner.is-loading {
  border-color: rgba(251, 191, 36, .34);
}

.super-review-status-banner.is-overview-load {
  justify-content: flex-start;
}

.super-review-status-banner.is-ready {
  border-color: rgba(52, 211, 153, .42);
  background: rgba(6, 78, 59, .45);
  color: #bbf7d0;
}

.super-review-overview-load-spinner {
  width: 16px;
  height: 16px;
  border-width: 2px;
  border-color: rgba(219, 234, 254, .22);
  border-top-color: #fbbf24;
  flex: 0 0 auto;
}

.super-review-status-banner.is-stale {
  border-color: rgba(148, 163, 184, .28);
  color: #b8cde8;
}

.super-review-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  padding: 16px 18px;
  border: 1px solid var(--sr-line);
  border-radius: 16px;
  background:
    linear-gradient(90deg, rgba(8, 26, 55, .88), rgba(11, 34, 68, .82)),
    repeating-linear-gradient(90deg, transparent 0 38px, rgba(96, 165, 250, .06) 39px 40px);
  box-shadow: 0 18px 42px rgba(0, 0, 0, .32);
}

.super-review-kicker {
  margin: 0 0 8px;
  color: #7dd3fc;
  font-size: 13px;
  letter-spacing: .12em;
  font-weight: 800;
}

.super-review-hero h3 {
  margin: 0;
  color: #f8fbff;
  font-size: clamp(20px, 2.2vw, 30px);
  line-height: 1.22;
  letter-spacing: -.03em;
  font-weight: 400;
}

.super-review-hero small {
  display: block;
  margin-top: 8px;
  color: var(--sr-muted);
}

.super-review-export {
  flex: 0 0 auto;
  border-color: rgba(251, 191, 36, .6);
  background: linear-gradient(135deg, #f59e0b, #ef4444);
  color: #fffaf0;
  box-shadow: 0 10px 26px rgba(239, 68, 68, .26);
}

.super-review-top-grid,
.super-review-middle-grid,
.super-review-rank-grid,
.super-review-bottom-grid,
.super-review-metrics-grid {
  display: grid;
  gap: 12px;
  margin-top: 12px;
}

.super-review-top-grid {
  grid-template-columns: 1.35fr .62fr 1fr .85fr;
}

.super-review-middle-grid,
.super-review-rank-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.super-review-bottom-grid {
  grid-template-columns: 1.4fr .8fr;
}

.super-review-metrics-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.super-review-card,
.super-review-metric {
  border: 1px solid var(--sr-line);
  border-radius: 14px;
  background:
    linear-gradient(180deg, rgba(20, 48, 92, .92), rgba(9, 25, 52, .95));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .05), 0 14px 34px rgba(0, 0, 0, .22);
}

.super-review-card {
  padding: 14px;
}

.super-review-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 12px;
  color: #9bd7ff;
  font-size: 13px;
  font-weight: 800;
}

.super-review-card-head em {
  color: var(--sr-muted);
  font-style: normal;
  font-size: 12px;
  font-weight: 600;
}

.super-review-card p {
  margin: 0;
  color: #cfe3ff;
  line-height: 1.65;
}

.super-review-overview-card p,
.super-review-comment-card p {
  font-size: inherit;
  font-weight: inherit;
  color: #b9c9de;
  line-height: 1.62;
}

.super-review-mini-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 14px;
}

.super-review-mini-tags span,
.super-review-theme-card footer button,
.super-review-theme-card footer span {
  border: 1px solid rgba(125, 211, 252, .25);
  border-radius: 999px;
  background: rgba(8, 35, 70, .74);
  color: #bfe7ff;
  padding: 5px 9px;
  font-size: 12px;
  font-weight: 700;
}

.super-review-score-card {
  display: flex;
  flex-direction: column;
}

.super-review-score {
  position: relative;
  display: grid;
  place-items: center;
  width: 132px;
  height: 132px;
  margin: auto;
  border-radius: 50%;
  background:
    conic-gradient(from -135deg, #22c55e 0deg, #facc15 calc(var(--score-deg) * .7), #ef4444 var(--score-deg), rgba(71, 85, 105, .34) var(--score-deg) 360deg);
}

.super-review-score::before {
  content: "";
  position: absolute;
  inset: 12px;
  border-radius: inherit;
  background: #081a35;
  box-shadow: inset 0 0 22px rgba(59, 130, 246, .35);
}

.super-review-score > div {
  position: relative;
  text-align: center;
}

.super-review-score strong {
  display: block;
  color: #fef3c7;
  font-size: 34px;
  line-height: 1;
}

.super-review-score span {
  color: #93c5fd;
  font-size: 12px;
  font-weight: 800;
}

.super-review-mainline-card strong {
  display: block;
  color: #fef3c7;
  font-size: 26px;
  margin: 6px 0 10px;
}

.super-review-mainline-card small {
  color: var(--sr-muted);
  line-height: 1.55;
}

.super-review-metric {
  padding: 13px 14px;
}

.super-review-metric span {
  display: block;
  color: var(--sr-muted);
  font-size: 12px;
  font-weight: 700;
}

.super-review-metric strong {
  display: block;
  margin-top: 6px;
  color: #f8fbff;
  font-size: 24px;
  line-height: 1.1;
}

.super-review-metric small {
  display: block;
  margin-top: 6px;
  color: #8fb0d8;
}

.super-review-metric.up strong,
.super-review-rank-list em.up {
  color: #ff6b6b;
}

.super-review-metric.down strong,
.super-review-rank-list em.down {
  color: #34d399;
}

.super-review-wide-card {
  margin-top: 12px;
}

.super-review-sector-matrix {
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  gap: 7px;
}

.super-review-sector-tile {
  min-height: 58px;
  padding: 8px 6px;
  border: 1px solid rgba(255, 255, 255, .08);
  border-radius: 9px;
  color: #fff;
  text-align: center;
  overflow: hidden;
}

.super-review-sector-tile strong,
.super-review-sector-tile span {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.super-review-sector-tile strong {
  font-size: 13px;
}

.super-review-sector-tile span {
  margin-top: 5px;
  font-weight: 900;
}

.super-review-sector-tile.up.level-1 { background: rgba(185, 28, 28, .65); }
.super-review-sector-tile.up.level-2 { background: rgba(220, 38, 38, .75); }
.super-review-sector-tile.up.level-3 { background: rgba(239, 68, 68, .88); }
.super-review-sector-tile.up.level-4 { background: linear-gradient(135deg, #ef4444, #991b1b); }
.super-review-sector-tile.down.level-1 { background: rgba(21, 128, 61, .62); }
.super-review-sector-tile.down.level-2 { background: rgba(22, 163, 74, .72); }
.super-review-sector-tile.down.level-3 { background: rgba(16, 185, 129, .82); }
.super-review-sector-tile.down.level-4 { background: linear-gradient(135deg, #10b981, #065f46); }

.super-review-line-chart {
  width: 100%;
  height: 180px;
}

.super-review-line-chart .axis {
  stroke: rgba(147, 197, 253, .24);
  stroke-width: 1;
}

.super-review-line-chart .line {
  fill: none;
  stroke: #38bdf8;
  stroke-width: 3;
  vector-effect: non-scaling-stroke;
}

.super-review-line-chart .area {
  fill: rgba(56, 189, 248, .14);
  stroke: none;
}

.super-review-bars {
  display: grid;
  gap: 10px;
}

.super-review-bar-row {
  display: grid;
  grid-template-columns: 48px 1fr 34px;
  align-items: center;
  gap: 8px;
  color: #cfe3ff;
  font-size: 12px;
}

.super-review-bar-row b {
  display: block;
  width: var(--bar);
  height: 12px;
  border-radius: 999px;
  background: linear-gradient(90deg, #ef4444, #f59e0b);
}

.super-review-bar-row em {
  color: #fff;
  font-style: normal;
  text-align: right;
  font-weight: 800;
}

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

.super-review-limit-grid div {
  padding: 9px 8px;
  border-radius: 10px;
  background: rgba(8, 35, 70, .78);
}

.super-review-limit-grid span,
.super-review-limit-grid strong {
  display: block;
}

.super-review-limit-grid span {
  color: var(--sr-muted);
  font-size: 11px;
}

.super-review-limit-grid strong {
  margin-top: 4px;
  color: #fef3c7;
  font-size: 18px;
}

.super-review-rank-list {
  display: grid;
  gap: 7px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.super-review-rank-list li {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) minmax(70px, .8fr) auto;
  align-items: center;
  gap: 8px;
  padding: 7px 8px;
  border-radius: 10px;
  background: rgba(7, 23, 48, .72);
  color: #dbeafe;
}

.super-review-rank-list .rank {
  display: grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border-radius: 6px;
  background: #153f78;
  color: #bfdbfe;
  font-size: 12px;
  font-weight: 900;
}

.super-review-rank-list strong,
.super-review-rank-list small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.super-review-rank-list strong {
  color: #f8fbff;
  font-size: 13px;
}

.super-review-rank-list small {
  color: var(--sr-muted);
}

.super-review-rank-list em {
  font-style: normal;
  font-weight: 900;
  color: #f8fbff;
}

.super-review-theme-panel {
  display: grid;
  gap: 10px;
}

.super-review-theme-card {
  padding: 12px;
  border-radius: 12px;
  background: rgba(7, 23, 48, .7);
}

.super-review-theme-card > .super-review-theme-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.super-review-theme-card span {
  color: #7dd3fc;
  font-size: 12px;
  font-weight: 900;
}

.super-review-theme-card strong {
  color: #fef3c7;
  font-size: 18px;
}

.super-review-theme-card em {
  color: #fecaca;
  font-style: normal;
  font-weight: 800;
}

.super-review-theme-card p {
  margin-top: 8px;
  color: #bad4f7;
}

.super-review-theme-card footer {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}

.super-review-theme-card footer button {
  cursor: pointer;
}

.super-review-risk-list {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.super-review-risk-list li {
  position: relative;
  padding: 10px 10px 10px 28px;
  border-radius: 11px;
  background: rgba(239, 68, 68, .12);
  color: #fee2e2;
  line-height: 1.55;
}

.super-review-risk-list li::before {
  content: "";
  position: absolute;
  left: 12px;
  top: 17px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #f97316;
}

.super-review-empty {
  margin: 0;
  padding: 14px;
  border-radius: 10px;
  background: rgba(8, 35, 70, .72);
  color: var(--sr-muted);
}

.super-review-dashboard.is-exporting {
  --sr-export-bg: #06101e;
  --sr-export-panel: #111f34;
  --sr-export-panel-soft: #0a1526;
  width: 100% !important;
  max-width: none !important;
  max-height: none;
  overflow: visible;
  box-sizing: border-box;
  background: var(--sr-export-bg) !important;
  background-image: none !important;
}

.super-review-dashboard.is-exporting * {
  box-shadow: none !important;
  filter: none !important;
}

.super-review-dashboard.is-exporting .super-review-card,
.super-review-dashboard.is-exporting .super-review-metric {
  background-color: var(--sr-export-panel) !important;
  background-image: none !important;
}

.super-review-dashboard.is-exporting .super-review-hero {
  width: 100% !important;
  background:
    linear-gradient(135deg, rgba(17, 32, 55, .82), rgba(9, 18, 33, .78)),
    url("/static/super-review-overview-bg.png?v=20260522") center center / cover no-repeat,
    #121f36 !important;
}

.super-review-dashboard.is-exporting .super-review-hero::before {
  display: none !important;
}

.super-review-dashboard.is-exporting .super-review-limit-board,
.super-review-dashboard.is-exporting .super-review-limit-grid div,
.super-review-dashboard.is-exporting .super-review-theme-card,
.super-review-dashboard.is-exporting .super-review-empty,
.super-review-dashboard.is-exporting .super-review-rank-list li,
.super-review-dashboard.is-exporting .super-review-mini-rank li,
.super-review-dashboard.is-exporting .super-review-risk-list li {
  background-color: var(--sr-export-panel-soft) !important;
  background-image: none !important;
}

.super-review-dashboard.is-exporting .super-review-line-chart {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 160px;
  background:
    linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px),
    #0d1829 !important;
  background-size: 100% 25%, 20% 100%, auto !important;
}

.super-review-dashboard.is-exporting .super-review-index-chart,
.super-review-dashboard.is-exporting .super-review-index-chart-plot,
.super-review-dashboard.is-exporting .super-review-index-card {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
}

.super-review-dashboard.is-exporting .super-review-score::before {
  background: #09172a !important;
  background-image: none !important;
}

.super-review-dashboard.is-exporting .super-review-mainline-card::after,
.super-review-dashboard.is-exporting .super-review-theme-card::after {
  display: none !important;
}

.super-review-dashboard.is-exporting .super-review-mini-tags span,
.super-review-dashboard.is-exporting .super-review-theme-card footer button,
.super-review-dashboard.is-exporting .super-review-theme-card footer span,
.super-review-dashboard.is-exporting .super-review-theme-stocks button {
  background-color: var(--sr-export-panel-soft) !important;
  background-image: none !important;
}

.super-review-dashboard.is-exporting .super-review-sector-tile.up.level-1 { background: #802f34 !important; }
.super-review-dashboard.is-exporting .super-review-sector-tile.up.level-2 { background: #a6373b !important; }
.super-review-dashboard.is-exporting .super-review-sector-tile.up.level-3 { background: #cc4246 !important; }
.super-review-dashboard.is-exporting .super-review-sector-tile.up.level-4 { background: #ef5a5a !important; }
.super-review-dashboard.is-exporting .super-review-sector-tile.down.level-1 { background: #206a4d !important; }
.super-review-dashboard.is-exporting .super-review-sector-tile.down.level-2 { background: #23865e !important; }
.super-review-dashboard.is-exporting .super-review-sector-tile.down.level-3 { background: #25a670 !important; }
.super-review-dashboard.is-exporting .super-review-sector-tile.down.level-4 { background: #2dcb83 !important; }

.super-review-dashboard.is-exporting .super-review-bar-row b {
  background: #d8a34e !important;
  background-image: none !important;
}

.super-review-dashboard.is-exporting .super-review-export-brand {
  display: flex;
}

.super-review-dashboard.is-exporting .super-review-export {
  display: none;
}

.super-review-export-brand {
  display: none;
  align-items: center;
  gap: 10px;
  margin-left: auto;
  text-align: right;
}

.super-review-export-brand img {
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  border-radius: 50%;
  object-fit: contain;
}

.super-review-export-brand strong {
  display: block;
  color: #f7fbff;
  font-size: 16px;
  font-weight: 800;
  line-height: 1.2;
  white-space: nowrap;
}

.super-review-export-brand span {
  display: block;
  margin-top: 3px;
  color: #d8a34e;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .04em;
  white-space: nowrap;
}

@media (max-width: 1100px) {
  .super-review-top-grid {
    grid-template-columns: 1fr 1fr;
  }

  .super-review-metrics-grid,
  .super-review-middle-grid,
  .super-review-rank-grid,
  .super-review-bottom-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .super-review-sector-matrix {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .super-review-modal-panel {
    width: calc(100vw - 12px);
  }

  .super-review-dashboard {
    padding: 10px;
  }

  .super-review-hero,
  .super-review-top-grid,
  .super-review-metrics-grid,
  .super-review-middle-grid,
  .super-review-rank-grid,
  .super-review-bottom-grid {
    grid-template-columns: 1fr;
  }

  .super-review-hero {
    display: grid;
  }

  .super-review-export {
    width: 100%;
  }

  .super-review-sector-matrix {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .super-review-rank-list li {
    grid-template-columns: 24px minmax(0, 1fr) auto;
  }

  .super-review-rank-list small {
    display: none;
  }
}

/* Super review visual refresh: calmer, denser financial dashboard */
.super-review-modal-panel {
  max-width: 1240px;
  width: min(1240px, calc(100vw - 24px));
  background: #071120;
  border: 1px solid rgba(125, 145, 183, .24);
  box-shadow: 0 28px 90px rgba(0, 0, 0, .45);
}

.super-review-modal-panel .modal-head {
  background:
    linear-gradient(90deg, rgba(14, 27, 51, .98), rgba(9, 19, 35, .98)),
    radial-gradient(circle at 88% 0%, rgba(217, 160, 68, .18), transparent 34%);
  border-bottom-color: rgba(125, 145, 183, .18);
}

.super-review-modal-panel .modal-head .eyebrow {
  color: #b99b64;
  letter-spacing: .16em;
}

.super-review-modal-panel .modal-head h2 {
  color: #f4f7fb;
  letter-spacing: -.02em;
}

.super-review-modal-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.super-review-modal-panel .modal-head .super-review-export-head {
  display: none;
  min-height: 36px;
  padding: 0 12px;
  border-radius: 8px;
  font-size: 13px;
  line-height: 1;
  white-space: nowrap;
}

.super-review-modal-body {
  background: #071120;
}

.super-review-dashboard {
  --sr-bg: #071120;
  --sr-panel: #0b1728;
  --sr-panel-soft: #101f34;
  --sr-line: rgba(129, 151, 187, .2);
  --sr-line-strong: rgba(129, 151, 187, .34);
  --sr-text: #edf3fb;
  --sr-muted: #8fa3bd;
  --sr-muted-2: #647891;
  --sr-red: #ef5a5a;
  --sr-red-deep: #8f272f;
  --sr-green: #21b47a;
  --sr-green-deep: #14724f;
  --sr-blue: #5da8ff;
  --sr-gold: #d8a34e;
  padding: 18px;
  color: var(--sr-text);
  background:
    linear-gradient(rgba(255, 255, 255, .025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .025) 1px, transparent 1px),
    radial-gradient(circle at 14% 0%, rgba(55, 107, 190, .18), transparent 34%),
    radial-gradient(circle at 94% 6%, rgba(216, 163, 78, .12), transparent 28%),
    linear-gradient(180deg, #081426 0%, #06101e 100%);
  background-size: 28px 28px, 28px 28px, auto, auto, auto;
}

.super-review-hero {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  padding: 18px 20px;
  border: 1px solid rgba(216, 163, 78, .26);
  border-radius: 18px;
  background:
    linear-gradient(135deg, rgba(17, 32, 55, .82), rgba(9, 18, 33, .78)),
    radial-gradient(circle at 100% 0%, rgba(216, 163, 78, .18), transparent 42%);
  box-shadow: 0 22px 56px rgba(0, 0, 0, .28);
}

.super-review-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("/static/super-review-overview-bg.png?v=20260522") center center / cover no-repeat;
  opacity: 0.1;
  pointer-events: none;
  z-index: 0;
}

.super-review-hero > * {
  position: relative;
  z-index: 1;
}

.super-review-kicker {
  color: var(--sr-gold);
  font-size: 12px;
  letter-spacing: .18em;
}

.super-review-hero h3 {
  max-width: 920px;
  color: #f7fbff;
  font-family: "DingTalk JinBuTi", "钉钉进步体", "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: clamp(28px, 3.2vw, 42px);
  line-height: 1.3;
  font-weight: 400;
}

.super-review-date {
  margin: 0;
  color: var(--sr-muted);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: .06em;
  white-space: nowrap;
}

.super-review-hero-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 18px;
  margin-top: 8px;
}

.super-review-source {
  margin: 0;
  color: var(--sr-muted-2, #647891);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .02em;
}

.super-review-export {
  flex: 0 0 auto;
  align-self: center;
  border: 1px solid rgba(216, 163, 78, .62);
  background: linear-gradient(180deg, #e0ad5e, #ad7731);
  color: #130d04;
  font-weight: 900;
  box-shadow: 0 10px 24px rgba(216, 163, 78, .18);
}

.super-review-export:hover {
  filter: brightness(1.06);
  transform: translateY(-1px);
}

.super-review-top-grid,
.super-review-middle-grid,
.super-review-rank-grid,
.super-review-bottom-grid,
.super-review-metrics-grid {
  gap: 10px;
  margin-top: 10px;
}

.super-review-middle-grid {
  grid-template-columns: minmax(0, 1.08fr) minmax(0, 1.34fr) minmax(260px, .9fr);
  align-items: stretch;
}

.super-review-top-grid {
  grid-template-columns: .98fr .78fr 1.06fr .9fr;
}

.super-review-card,
.super-review-metric {
  border: 1px solid var(--sr-line);
  background:
    linear-gradient(180deg, rgba(17, 32, 54, .96), rgba(10, 21, 37, .98));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .035);
}

.super-review-card {
  padding: 13px;
  border-radius: 15px;
}

.super-review-card::before,
.super-review-metric::before {
  content: none;
}

.super-review-card-head {
  min-height: 22px;
  margin-bottom: 10px;
  color: #d5e3f5;
  font-size: 12px;
  letter-spacing: .02em;
}

.super-review-card-head span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.super-review-card-head span::before {
  content: none;
}

.super-review-card-head em {
  color: var(--sr-muted-2);
  font-size: 11px;
}

.super-review-title-icon {
  display: inline-grid;
  place-items: center;
  width: 22px;
  height: 22px;
  margin-right: 7px;
  border: 1px solid rgba(216, 163, 78, .28);
  border-radius: 7px;
  background: rgba(216, 163, 78, .12);
  color: #f2cc82;
  font-style: normal;
  font-size: 13px;
  line-height: 1;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08);
}

.super-review-card p {
  color: #b9c9de;
  line-height: 1.62;
}

.super-review-overview-card p,
.super-review-comment-card p {
  color: #b9c9de;
  font-size: inherit;
  font-weight: inherit;
  line-height: 1.62;
}

.super-review-mini-tags {
  gap: 7px;
  margin-top: 12px;
}

.super-review-mini-tags span,
.super-review-theme-card footer button,
.super-review-theme-card footer span {
  border-color: rgba(116, 137, 169, .24);
  background: rgba(6, 16, 30, .6);
  color: #b8cbe4;
  padding: 5px 10px;
}

.super-review-score {
  width: 126px;
  height: 126px;
  background:
    conic-gradient(from -132deg, #2ecb83 0deg, #d8a34e calc(var(--score-deg) * .72), #ef5a5a var(--score-deg), rgba(74, 91, 116, .34) var(--score-deg) 360deg);
  box-shadow: 0 0 0 1px rgba(216, 163, 78, .16), 0 16px 34px rgba(0, 0, 0, .22);
}

.super-review-score::before {
  inset: 13px;
  background: radial-gradient(circle, #10213a 0%, #09172a 72%);
  box-shadow: inset 0 0 0 1px rgba(129, 151, 187, .18);
}

.super-review-score strong {
  color: #fff4d2;
  font-size: 36px;
  letter-spacing: -.04em;
}

.super-review-score span {
  color: #9fb2cd;
  letter-spacing: .12em;
}

.super-review-mainline-card strong {
  color: #fff0c2;
  font-size: 24px;
}

.super-review-mainline-card small {
  color: #a4b6ce;
}

.super-review-metric {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  align-content: start;
  padding: 13px 14px;
  border-radius: 14px;
  text-align: left;
}

.super-review-metric .super-review-card-head {
  justify-self: start;
  width: 100%;
  margin-bottom: 6px;
}

.super-review-metric-body {
  display: grid;
  justify-items: center;
  align-content: center;
  gap: 8px;
  text-align: center;
  min-height: 0;
}

.super-review-metric-list .super-review-metric-body {
  justify-items: stretch;
  align-content: start;
  text-align: left;
}

.super-review-metric::after {
  content: none;
}

.super-review-metric.up::after {
  background: var(--sr-red);
}

.super-review-metric.down::after {
  background: var(--sr-green);
}

.super-review-metric span {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0;
  color: #8397b3;
  font-size: 11px;
  letter-spacing: .03em;
}

.super-review-metric .super-review-title-icon {
  width: 20px;
  height: 20px;
  margin-right: 6px;
  border-radius: 6px;
  font-size: 12px;
}

.super-review-metric strong {
  color: #f7fbff;
  font-size: 22px;
  letter-spacing: -.02em;
}

.super-review-metric small {
  color: #7488a2;
}

.super-review-amount-metric {
  min-height: 124px;
}

.super-review-amount-value {
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  gap: 4px;
  margin-top: 10px;
}

.super-review-amount-metric .super-review-amount-value strong {
  margin-top: 0;
  color: #fff3c2;
  font-size: 40px;
  line-height: 1;
  letter-spacing: -.04em;
}

.super-review-amount-metric .super-review-amount-unit {
  display: inline;
  color: #9fb2cd;
  font-size: 15px;
  font-weight: 900;
  line-height: 1;
}

.super-review-amount-metric .super-review-change {
  margin-top: 10px;
  color: #7f91a8;
  font-weight: 800;
}

.super-review-amount-metric .super-review-change em {
  font-style: normal;
  font-weight: 900;
}

.super-review-amount-metric .super-review-change.up em {
  color: #ff7171;
}

.super-review-amount-metric .super-review-change.down em {
  color: #36d491;
}

.super-review-flow-metric {
  min-height: 124px;
}

.super-review-flow-value {
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  gap: 4px;
  margin-top: 10px;
}

.super-review-flow-metric .super-review-flow-value strong {
  margin-top: 0;
  color: #f7fbff;
  font-size: 40px;
  line-height: 1;
  letter-spacing: -.04em;
}

.super-review-flow-value.up strong {
  color: #ff7171;
}

.super-review-flow-value.down strong {
  color: #36d491;
}

.super-review-flow-metric .super-review-flow-unit {
  display: inline;
  color: #9fb2cd;
  font-size: 15px;
  font-weight: 900;
  line-height: 1;
}

.super-review-flow-indexes {
  display: grid;
  gap: 5px;
  margin-top: 10px;
}

.super-review-flow-indexes small {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 0;
  color: #7f91a8;
  font-weight: 800;
}

.super-review-flow-indexes small > span {
  display: inline;
  color: #9fb2cd;
  font-size: 12px;
  font-weight: 900;
}

.super-review-flow-indexes em {
  font-style: normal;
  font-weight: 900;
}

.super-review-flow-indexes small.up em {
  color: #ff7171;
}

.super-review-flow-indexes small.down em {
  color: #36d491;
}

.super-review-metric-list {
  padding-bottom: 10px;
}

.super-review-mini-rank {
  display: grid;
  gap: 5px;
  margin: 9px 0 0;
  padding: 0;
  list-style: none;
}

.super-review-mini-rank li {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr) minmax(72px, auto);
  align-items: center;
  gap: 7px;
  min-width: 0;
  padding: 4px 0;
  border-top: 1px solid rgba(129, 151, 187, .08);
}

.super-review-mini-rank li:first-child {
  border-top: 0;
}

.super-review-mini-rank b {
  display: grid;
  place-items: center;
  width: 18px;
  height: 18px;
  border-radius: 5px;
  background: rgba(216, 163, 78, .14);
  color: #f1d49a;
  font-size: 11px;
}

.super-review-mini-rank strong {
  overflow: hidden;
  color: #edf3fb;
  font-size: 12px;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.super-review-mini-rank em {
  color: #ff7171;
  font-size: 12px;
  font-style: normal;
  font-weight: 900;
  text-align: center;
}

.super-review-market-state {
  min-height: 124px;
}

.super-review-dial-wrap {
  position: relative;
  width: 224px;
  height: 140px;
  margin: 2px auto 0;
}

.super-review-dial-wrap.is-compact {
  width: 210px;
  height: 132px;
  margin-top: 4px;
}

.super-review-dial-svg {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
}

.super-review-dial-seg {
  fill: none;
  stroke-width: 12;
  stroke-linecap: butt;
}

.super-review-dial-seg.is-track {
  stroke: #566579;
  opacity: .72;
}

.super-review-dial-seg.is-active {
  opacity: 1;
}

.super-review-dial-scale-label {
  fill: #8ea3bd;
  font-size: 11px;
  font-weight: 700;
}

.super-review-dial-center {
  position: absolute;
  left: 50%;
  bottom: 18px;
  display: grid;
  justify-items: center;
  gap: 5px;
  transform: translateX(-50%);
  pointer-events: none;
}

.super-review-dial-center.is-score strong {
  margin-top: 0;
  color: #f3a73f;
  font-size: 38px;
  line-height: 1;
  letter-spacing: -.04em;
}

.super-review-dial-center.is-score strong span {
  margin-left: 4px;
  color: #eef4fb;
  font-size: 16px;
  letter-spacing: 0;
}

.super-review-dial-center.is-score em {
  color: #f3a73f;
  font-size: 22px;
  font-style: normal;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -.02em;
}

.super-review-dial-center.is-state strong {
  margin-top: 0;
  font-size: 28px;
  line-height: 1;
  letter-spacing: .02em;
}

.super-review-market-state.up .super-review-dial-center.is-state strong {
  color: #ff7b7b;
}

.super-review-market-state.down .super-review-dial-center.is-state strong {
  color: #45d98d;
}

.super-review-market-state .super-review-metric-body {
  gap: 2px;
}

.super-review-market-state .super-review-dial-wrap.is-compact {
  margin-bottom: 0;
}

.super-review-state-meta {
  display: grid;
  gap: 4px;
  margin-top: 8px;
}

.super-review-market-state .super-review-state-meta {
  margin-top: -2px;
}

.super-review-state-meta small {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin-top: 0;
  color: #7f91a8;
  font-size: 14px;
  font-weight: 800;
}

.super-review-market-state .super-review-state-meta small {
  font-size: 16px;
}

.super-review-state-meta em {
  font-style: normal;
  font-weight: 900;
}

.super-review-market-state .super-review-state-meta em {
  font-size: 22px;
}

.super-review-state-meta .heat.hot em {
  color: #ff7171;
}

.super-review-state-meta .heat.warm em {
  color: #f5c45f;
}

.super-review-state-meta .heat.cold em {
  color: #36d491;
}

.super-review-state-meta .change.up em {
  color: #ff7171;
}

.super-review-state-meta .change.down em {
  color: #36d491;
}

.super-review-state-meta .state-text {
  font-size: 13px;
  font-weight: 700;
  line-height: 1.45;
  color: #9aa8bc;
  text-align: center;
}

.super-review-score-card .super-review-dial-wrap {
  margin-top: 8px;
}

.super-review-card-head,
.super-review-card-head span {
  color: #8fd3ff;
  font-size: 16px;
  font-weight: 900;
}

.super-review-hero h3 {
  font-family: "DingTalk JinBuTi", "钉钉进步体", "PingFang SC", "Microsoft YaHei", sans-serif;
  font-weight: 400;
  letter-spacing: .04em;
}

.super-review-metric.up strong,
.super-review-rank-list em.up {
  color: #ff7171;
}

.super-review-metric.down strong,
.super-review-rank-list em.down {
  color: #36d491;
}

.super-review-sector-matrix {
  grid-template-columns: repeat(10, minmax(0, 1fr));
  gap: 6px;
}

.super-review-treemap {
  display: grid;
  gap: 10px;
}

.super-review-treemap-columns {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  min-height: 380px;
}

.super-review-treemap.is-single .super-review-treemap-panel {
  min-height: 420px;
}

.super-review-treemap.is-single .super-review-treemap-canvas {
  min-height: 420px;
}

.super-review-treemap.is-single .super-review-treemap-cell strong {
  font-size: 12px;
}

.super-review-treemap.is-single .super-review-treemap-cell span {
  font-size: 13px;
}

.super-review-treemap-panel {
  display: grid;
  grid-template-rows: auto 1fr;
  min-height: 380px;
  border: 1px solid rgba(147, 197, 253, .14);
  border-radius: 10px;
  overflow: hidden;
  background: rgba(8, 18, 34, .72);
}

.super-review-treemap-panel-head {
  padding: 8px 10px;
  font-size: 12px;
  font-weight: 800;
  color: #dbeafe;
  border-bottom: 1px solid rgba(147, 197, 253, .12);
  background: rgba(15, 30, 52, .88);
}

.super-review-treemap-canvas {
  position: relative;
  min-height: 340px;
  height: 100%;
}

.super-review-treemap-cell {
  position: absolute;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  padding: 2px 4px;
  border: 1px solid rgba(255, 255, 255, .08);
  border-radius: 2px;
  color: #fff;
  text-align: center;
  overflow: hidden;
  cursor: pointer;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08);
}

.super-review-treemap-cell:hover {
  filter: brightness(1.08);
  z-index: 1;
}

.super-review-treemap-cell strong,
.super-review-treemap-cell span {
  display: block;
  width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  line-height: 1.15;
}

.super-review-treemap-cell strong {
  font-size: 11px;
  font-weight: 800;
}

.super-review-treemap-cell span {
  font-size: 12px;
  font-weight: 900;
}

.super-review-treemap-cell.is-compact strong {
  display: none;
}

.super-review-treemap-cell.is-compact span {
  font-size: 10px;
}

.super-review-treemap-legend {
  display: grid;
  gap: 6px;
}

.super-review-treemap-legend-bar {
  height: 8px;
  border-radius: 999px;
  background: linear-gradient(90deg, #047857 0%, #4b5563 50%, #b42318 100%);
}

.super-review-treemap-legend-scale {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-size: 11px;
  color: rgba(191, 219, 254, .82);
}

.super-review-treemap-legend-scale span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.super-review-treemap-legend-scale i {
  width: 10px;
  height: 10px;
  border-radius: 2px;
  display: inline-block;
}

.super-review-treemap-legend-meta {
  display: flex;
  justify-content: flex-end;
  gap: 14px;
  font-size: 11px;
  color: rgba(148, 163, 184, .92);
}

.super-review-sector-matrix-wrap {
  max-height: 360px;
  overflow: auto;
  padding-right: 2px;
}

.super-review-sector-matrix-wrap.is-hot {
  max-height: none;
  overflow: visible;
}

.super-review-card-head--matrix {
  flex-wrap: wrap;
}

.super-review-card-head-tools {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 10px;
}

.super-review-sector-matrix-tabs {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px;
  border-radius: 999px;
  border: 1px solid rgba(147, 197, 253, .18);
  background: rgba(15, 23, 42, .72);
}

.super-review-sector-matrix-tabs button {
  border: 0;
  border-radius: 999px;
  padding: 5px 12px;
  background: transparent;
  color: rgba(148, 163, 184, .92);
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.super-review-sector-matrix-tabs button.active {
  color: #e2e8f0;
  background: rgba(56, 189, 248, .18);
  box-shadow: inset 0 0 0 1px rgba(125, 211, 252, .28);
}

.super-review-sector-matrix-hot-block + .super-review-sector-matrix-hot-block {
  margin-top: 14px;
}

.super-review-sector-matrix-wrap::-webkit-scrollbar {
  width: 6px;
}

.super-review-sector-matrix-wrap::-webkit-scrollbar-thumb {
  background: rgba(147, 197, 253, .28);
  border-radius: 999px;
}

.super-review-sector-tile {
  min-height: 54px;
  padding: 8px 6px;
  border-radius: 8px;
  border-color: rgba(255, 255, 255, .07);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08);
}

.super-review-sector-tile:hover {
  transform: translateY(-1px);
  filter: brightness(1.08);
}

.super-review-sector-tile strong {
  font-size: 12px;
  font-weight: 800;
}

.super-review-sector-tile span {
  margin-top: 5px;
  font-size: 13px;
}

.super-review-sector-tile.up.level-1 { background: linear-gradient(180deg, rgba(128, 47, 52, .78), rgba(89, 28, 35, .86)); }
.super-review-sector-tile.up.level-2 { background: linear-gradient(180deg, rgba(166, 55, 59, .84), rgba(111, 32, 40, .9)); }
.super-review-sector-tile.up.level-3 { background: linear-gradient(180deg, rgba(204, 66, 70, .9), rgba(134, 35, 42, .94)); }
.super-review-sector-tile.up.level-4 { background: linear-gradient(180deg, rgba(239, 90, 90, .96), rgba(143, 39, 47, .98)); }
.super-review-sector-tile.down.level-1 { background: linear-gradient(180deg, rgba(32, 106, 77, .76), rgba(20, 72, 52, .86)); }
.super-review-sector-tile.down.level-2 { background: linear-gradient(180deg, rgba(35, 134, 94, .82), rgba(20, 88, 61, .9)); }
.super-review-sector-tile.down.level-3 { background: linear-gradient(180deg, rgba(37, 166, 112, .88), rgba(20, 105, 72, .94)); }
.super-review-sector-tile.down.level-4 { background: linear-gradient(180deg, rgba(45, 203, 131, .95), rgba(20, 114, 79, .98)); }

.super-review-line-chart {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  border-radius: 12px;
  background:
    linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px);
  background-size: 100% 25%, 20% 100%;
}

.super-review-line-chart .axis {
  stroke: rgba(143, 163, 189, .3);
  stroke-width: .45;
  vector-effect: non-scaling-stroke;
}

.super-review-line-chart .axis.muted {
  stroke: rgba(143, 163, 189, .14);
  stroke-dasharray: 1.6 2.4;
}

.super-review-line-chart .line {
  stroke: var(--line-color, #d8a34e);
  stroke-width: 2.1;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}

.super-review-line-chart .area {
  fill: rgba(216, 163, 78, .12);
}

.super-review-index-card,
.super-review-distribution-card,
.super-review-limit-card {
  display: flex;
  flex-direction: column;
  height: 318px;
  min-height: 318px;
  max-height: 318px;
}

.super-review-index-chart {
  display: grid;
  flex: 1;
  gap: 4px;
  grid-template-rows: auto minmax(0, 1fr) auto;
  min-height: 0;
  overflow: hidden;
}

.super-review-index-chart-plot {
  min-height: 0;
  overflow: hidden;
}

.super-review-index-legend {
  display: grid;
  grid-template-columns: 1fr;
  gap: 4px;
}

.super-review-index-chip {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  padding: 2px 0;
  border: 0;
  border-radius: 0;
  background: none;
  color: #c9d8ea;
  font-size: 13px;
  font-weight: 800;
}

.super-review-index-chip i {
  flex: 0 0 16px;
  width: 16px;
  height: 3px;
  border-radius: 999px;
  background: var(--legend-color, #d8a34e);
}

.super-review-index-chip em {
  flex: 1 1 auto;
  overflow: hidden;
  color: #c9d8ea;
  font-style: normal;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.super-review-index-chip strong {
  flex: 0 0 auto;
  color: #eef6ff;
  font-size: 14px;
  line-height: 1;
}

.super-review-index-chip b {
  flex: 0 0 56px;
  font-size: 13px;
  text-align: right;
}

.super-review-index-axis {
  display: flex;
  flex-shrink: 0;
  justify-content: space-between;
  padding-top: 2px;
  color: #7589a5;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.2;
}

.super-review-bars {
  gap: 9px;
}

.super-review-distribution {
  display: grid;
  flex: 1;
  grid-template-rows: auto auto minmax(0, 1fr);
  gap: 8px;
  min-height: 0;
}

.super-review-distribution-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 10px;
  text-align: center;
}

.super-review-distribution-summary > div {
  padding: 0 8px;
  border-right: 1px solid rgba(129, 151, 187, .18);
}

.super-review-distribution-summary > div:last-child {
  border-right: 0;
}

.super-review-distribution-summary strong,
.super-review-distribution-summary span {
  display: block;
}

.super-review-distribution-summary strong {
  font-size: 16px;
  font-weight: 900;
  line-height: 1.2;
  white-space: nowrap;
}

.super-review-distribution-summary span {
  margin-top: 6px;
  color: #a9bad0;
  font-size: 13px;
  font-weight: 800;
}

.super-review-distribution-summary .up strong {
  color: #ff7171;
}

.super-review-distribution-summary .flat strong {
  color: #d9e4f2;
}

.super-review-distribution-summary .down strong {
  color: #36d491;
}

.super-review-distribution-total {
  display: block;
  height: 12px;
  border-radius: 999px;
  background: linear-gradient(
    90deg,
    #ef5a5a 0%,
    #ef5a5a var(--up-end, 0%),
    #8fa3bd var(--up-end, 0%),
    #8fa3bd var(--flat-end, 0%),
    #36d491 var(--flat-end, 0%),
    #36d491 100%
  );
}

.super-review-distribution-bars {
  display: grid;
  grid-template-columns: repeat(11, minmax(0, 1fr));
  align-items: stretch;
  gap: 4px;
  height: 100%;
  min-height: 0;
  padding-top: 0;
}

.super-review-distribution-bar {
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  align-items: end;
  justify-items: center;
  height: 100%;
  min-width: 0;
}

.super-review-distribution-bar-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  width: 100%;
  height: 100%;
  min-height: 0;
}

.super-review-distribution-bar b {
  margin-bottom: 4px;
  color: #d9e4f2;
  font-size: 12px;
  font-weight: 900;
  line-height: 1;
}

.super-review-distribution-bar i {
  display: block;
  width: 100%;
  max-width: 28px;
  height: var(--bar);
  min-height: 4px;
  border-radius: 5px 5px 2px 2px;
  background: #ef5a5a;
  box-shadow: none;
}

.super-review-distribution-bar.down i {
  background: #36d491;
}

.super-review-distribution-bar.flat i {
  background: #8fa3bd;
}

.super-review-distribution-bar span {
  width: 100%;
  color: #97a9c0;
  font-size: 9px;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  white-space: normal;
  word-break: keep-all;
  padding-top: 3px;
}

.super-review-bar-row {
  grid-template-columns: 46px 1fr 34px;
  color: #b9c9de;
}

.super-review-bar-row b {
  height: 10px;
  background: linear-gradient(90deg, #2ecb83, #d8a34e, #ef5a5a);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, .04);
}

.super-review-limit-grid {
  gap: 7px;
}

.super-review-limit-grid div {
  padding: 9px;
  border: 1px solid rgba(129, 151, 187, .12);
  border-radius: 10px;
  background: rgba(5, 14, 27, .62);
}

.super-review-limit-grid span {
  color: #7f93ae;
}

.super-review-limit-grid strong {
  color: #f4d69a;
  font-size: 17px;
}

.super-review-source-note {
  margin-top: 10px !important;
  color: #778ba6 !important;
  font-size: 12px;
}

.super-review-limit-card .super-review-limit-board {
  flex: 1;
  display: grid;
  grid-template-rows: auto repeat(3, minmax(0, 1fr));
  min-height: 0;
}

.super-review-limit-board {
  display: grid;
  gap: 0;
  overflow: hidden;
  border: 1px solid rgba(21, 96, 150, .34);
  border-radius: 13px;
  background:
    linear-gradient(180deg, rgba(8, 28, 54, .86), rgba(5, 16, 31, .9)),
    radial-gradient(circle at 50% 0%, rgba(28, 118, 185, .22), transparent 45%);
}

.super-review-limit-head {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-bottom: 1px solid rgba(85, 124, 163, .28);
}

.super-review-limit-head > div {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 8px 8px 10px;
  text-align: center;
}

.super-review-limit-head > div:first-child,
.super-review-limit-row > div:not(:last-child) {
  border-right: 1px solid rgba(85, 124, 163, .28);
}

.super-review-limit-board span,
.super-review-limit-board strong {
  display: block;
}

.super-review-limit-board span {
  color: #b7c5d8;
  font-size: 12px;
  font-weight: 900;
}

.super-review-limit-head strong {
  margin-top: 5px;
  font-size: 30px;
  line-height: 1;
  letter-spacing: .04em;
}

.super-review-limit-head .up strong,
.super-review-limit-row.limit-up-row strong {
  color: #ff4d4f;
  text-shadow: 0 0 12px rgba(255, 77, 79, .22);
}

.super-review-limit-head .down strong,
.super-review-limit-row.limit-down-row strong {
  color: #22c76f;
  text-shadow: 0 0 12px rgba(34, 199, 111, .22);
}

.super-review-limit-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-bottom: 1px solid rgba(85, 124, 163, .28);
}

.super-review-limit-row:last-child {
  border-bottom: 0;
}

.super-review-limit-row > div {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 6px 6px;
  text-align: center;
}

.super-review-limit-row strong {
  margin-top: 4px;
  color: #dfe8f5;
  font-size: 20px;
  line-height: 1.05;
}

.super-review-rank-list {
  gap: 6px;
}

.super-review-rank-grid .super-review-card {
  display: flex;
  flex-direction: column;
}

.super-review-rank-grid .super-review-rank-list {
  flex: 1;
  grid-auto-rows: minmax(44px, 1fr);
}

.super-review-rank-list li {
  grid-template-columns: 24px minmax(0, 1fr) minmax(82px, .75fr) auto;
  min-height: 42px;
  padding: 7px 8px;
  border: 1px solid rgba(129, 151, 187, .09);
  border-radius: 9px;
  background: rgba(5, 14, 27, .54);
}

.super-review-rank-list.is-inline-meta li {
  grid-template-columns: 24px minmax(0, 1fr) auto;
  min-height: 46px;
}

.super-review-rank-list.is-stock-flow li {
  min-height: 42px;
}

.super-review-rank-main.is-inline-row {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  min-width: 0;
}

.super-review-rank-main.is-inline-row strong {
  flex: 0 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.super-review-rank-main.is-inline-row strong.stock-code-line,
.super-review-theme-stocks button .stock-code-line {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  width: fit-content;
  max-width: 100%;
}

.super-review-rank-main.is-inline-row strong.stock-code-line .status-stock-exchange,
.super-review-theme-stocks button .stock-code-line .status-stock-exchange,
#superReviewModal .status-stock-exchange.is-compact,
.super-review-dashboard .status-stock-exchange.is-compact {
  flex-shrink: 0;
  background: rgba(18, 32, 52, .92);
  border: 1px solid rgba(129, 151, 187, .34);
  color: #c8d7ea;
}

.super-review-rank-main.is-inline-row b {
  flex: 0 0 auto;
  font-size: 12px;
  font-weight: 900;
}

.super-review-rank-main.is-inline-row b.up {
  color: #ff7171;
}

.super-review-rank-main.is-inline-row b.down {
  color: #36d491;
}

.super-review-rank-list li:hover {
  border-color: rgba(216, 163, 78, .28);
  background: rgba(13, 27, 48, .78);
}

.super-review-rank-list .rank {
  width: 21px;
  height: 21px;
  border-radius: 7px;
  background: rgba(216, 163, 78, .14);
  color: #f1d49a;
}

.super-review-rank-main {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.super-review-rank-list strong {
  color: #edf3fb;
  font-weight: 800;
}

.super-review-rank-list small {
  display: block;
  overflow: hidden;
  color: #778ba6;
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.super-review-theme-card {
  border: 1px solid rgba(129, 151, 187, .12);
  background: rgba(5, 14, 27, .54);
}

.super-review-theme-card span {
  color: #d8a34e;
}

.super-review-theme-card strong {
  color: #f7e1ae;
}

.super-review-theme-card em {
  color: #ff8a8a;
}

.super-review-theme-card p {
  color: #aebfd5;
}

.super-review-bottom-grid {
  grid-template-columns: minmax(0, 1.72fr) minmax(280px, .58fr);
  align-items: stretch;
}

.super-review-risk-card {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}

.super-review-risk-card .super-review-risk-list.is-compact {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 7px;
  min-height: 0;
}

.super-review-risk-card .super-review-risk-list.is-compact li {
  flex: 1;
  display: flex;
  align-items: center;
}

.super-review-risk-card .super-review-risk-list.is-compact li::before {
  top: 50%;
  transform: translateY(-50%);
}

.super-review-theme-split {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.super-review-theme-card {
  position: relative;
  overflow: hidden;
  display: grid;
  gap: 9px;
  padding: 12px;
}

.super-review-theme-card::after {
  content: "";
  position: absolute;
  right: -40px;
  top: -40px;
  width: 120px;
  height: 120px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(216, 163, 78, .18), transparent 68%);
  pointer-events: none;
}

.super-review-theme-card.is-watch::after {
  background: radial-gradient(circle, rgba(93, 168, 255, .16), transparent 68%);
}

.super-review-theme-card header {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 5px;
}

.super-review-theme-card header span {
  color: #d8a34e;
  font-size: 13px;
  font-weight: 900;
}

.super-review-theme-card.is-watch header span {
  color: #7dbdff;
}

.super-review-theme-card header strong {
  color: #fff1c2;
  font-size: 21px;
  line-height: 1.22;
}

.super-review-theme-card.is-watch header strong {
  color: #d8ecff;
}

.super-review-theme-meta {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 7px 9px;
  border-radius: 10px;
  background: rgba(5, 14, 27, .54);
}

.super-review-theme-meta em {
  color: #f7d892;
  font-style: normal;
  font-weight: 900;
}

.super-review-theme-card.is-watch .super-review-theme-meta em {
  color: #9ed0ff;
}

.super-review-theme-meta b {
  display: inline-flex;
  gap: 2px;
}

.super-review-theme-meta i {
  color: rgba(216, 163, 78, .22);
  font-style: normal;
}

.super-review-theme-meta i.is-filled {
  color: #f5c45f;
}

.super-review-theme-stocks {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 4px;
}

.super-review-theme-stocks small {
  color: #8397b3;
  font-weight: 800;
}

.super-review-theme-stocks button,
.super-review-theme-stocks p {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr) auto;
  align-items: center;
  gap: 7px;
  margin: 0;
  width: 100%;
  padding: 5px 7px;
  border: 1px solid rgba(129, 151, 187, .09);
  border-radius: 9px;
  background: rgba(5, 14, 27, .54);
  color: #dce8f5;
}

.super-review-theme-stocks button i {
  display: grid;
  place-items: center;
  width: 20px;
  height: 20px;
  border-radius: 6px;
  background: rgba(216, 163, 78, .14);
  color: #f1d49a;
  font-style: normal;
  font-weight: 900;
}

.super-review-theme-card.is-watch .super-review-theme-stocks button i {
  background: rgba(93, 168, 255, .14);
  color: #9ed0ff;
}

.super-review-theme-stocks button span {
  overflow: hidden;
  color: #edf3fb;
  font-size: 13px;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.super-review-theme-stocks button em {
  color: #ff7171;
  font-size: 12px;
  font-style: normal;
  font-weight: 900;
}

.super-review-risk-list.is-compact {
  gap: 7px;
}

.super-review-risk-list.is-compact li {
  padding: 8px 9px 8px 24px;
  font-size: 12px;
  line-height: 1.45;
}

.super-review-risk-list.is-compact li::before {
  left: 10px;
  top: 15px;
  width: 6px;
  height: 6px;
}

.super-review-risk-list.is-compact li.is-high-risk {
  border-color: rgba(239, 90, 90, .28);
  background: rgba(113, 38, 45, .24);
  color: #ffd1d1;
  font-weight: 800;
}

.super-review-risk-list li {
  border: 1px solid transparent;
  background: rgba(5, 14, 27, .46);
  color: #b8cbe4;
}

.super-review-risk-list li::before {
  background: #d8a34e;
}

.super-review-risk-list li.is-high-risk {
  border-color: rgba(239, 90, 90, .28);
  background: rgba(113, 38, 45, .24);
  color: #ffd1d1;
}

.super-review-mainline-card {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.super-review-mainline-card::after {
  content: "";
  position: absolute;
  right: -24px;
  top: 28px;
  width: 120px;
  height: 120px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(216, 163, 78, .2), transparent 68%);
  pointer-events: none;
}

.super-review-mainline-visual {
  position: relative;
  z-index: 1;
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 116px;
  text-align: center;
}

.super-review-mainline-badge {
  display: inline-grid;
  place-items: center;
  width: 32px;
  height: 32px;
  margin-bottom: 10px;
  border-radius: 10px;
  background: linear-gradient(180deg, #f4c66f, #b7792e);
  color: #1b1003;
  font-size: 18px;
  box-shadow: 0 10px 22px rgba(216, 163, 78, .18);
}

.super-review-mainline-card .super-review-mainline-visual > strong {
  display: block;
  margin: 0;
  color: #fff1c2;
  font-size: 24px;
  line-height: 1.2;
  letter-spacing: -.03em;
  text-align: center;
}

.super-review-mainline-meta {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px 18px;
}

.super-review-mainline-stars {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 0;
}

.super-review-mainline-stars span {
  color: #9fb0c7;
  font-size: 12px;
  font-weight: 800;
}

.super-review-mainline-stars b {
  display: inline-flex;
  gap: 2px;
}

.super-review-mainline-stars i {
  color: rgba(216, 163, 78, .22);
  font-style: normal;
  font-size: 15px;
  line-height: 1;
}

.super-review-mainline-stars i.is-filled {
  color: #f5c45f;
  text-shadow: 0 0 10px rgba(245, 196, 95, .24);
}

.super-review-mainline-continuity {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0;
}

.super-review-mainline-continuity span {
  color: #9fb0c7;
  font-size: 12px;
  font-weight: 800;
}

.super-review-mainline-continuity em {
  color: #f7d892;
  font-style: normal;
  font-weight: 900;
}

.super-review-empty {
  border: 1px solid rgba(129, 151, 187, .12);
  background: rgba(5, 14, 27, .52);
  color: #8094ae;
}

.super-review-disclaimer {
  margin: 14px 0 0;
  padding: 0 12px 2px;
  color: var(--sr-muted-2, #647891);
  font-size: 11px;
  line-height: 1.6;
  text-align: center;
  letter-spacing: .02em;
}

@media (max-width: 1100px) {
  .super-review-middle-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .super-review-sector-matrix {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .super-review-bottom-grid,
  .super-review-theme-split {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .super-review-dashboard {
    padding: 10px;
  }

  .super-review-middle-grid {
    grid-template-columns: 1fr;
  }

  .super-review-sector-matrix {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Super review mobile: fullscreen + proportional scale (no drawer reflow) */
@media (max-width: 760px) {
  #superReviewModal.is-mobile-fullscreen .modal-backdrop {
    background: #071120;
  }

  #superReviewModal.is-mobile-fullscreen .super-review-modal-panel {
    position: fixed;
    inset: 0;
    left: 0;
    right: 0;
    width: 100vw;
    max-width: none;
    height: 100dvh;
    max-height: none;
    border: none;
    border-radius: 0;
    box-shadow: none;
  }

  #superReviewModal.is-mobile-fullscreen .super-review-modal-body {
    padding: 0;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
  }

  #superReviewModal.is-mobile-fullscreen .super-review-mobile-viewport {
    width: 100%;
    max-width: 100vw;
    overflow: hidden;
  }

  #superReviewModal.is-mobile-fullscreen .super-review-body {
    transform-origin: top left;
    will-change: transform;
    min-height: 0;
  }

  #superReviewModal.is-mobile-fullscreen .super-review-dashboard {
    padding: 18px !important;
    min-height: auto !important;
  }

  #superReviewModal.is-mobile-fullscreen .super-review-hero {
    display: flex !important;
  }

  #superReviewModal.is-mobile-fullscreen .super-review-modal-actions {
    align-items: center;
  }

  #superReviewModal.is-mobile-fullscreen .super-review-modal-actions button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    height: 40px;
    padding: 0 14px;
    box-sizing: border-box;
    font-size: 14px;
    line-height: 1;
    border-radius: 8px;
  }

  #superReviewModal.is-mobile-fullscreen .super-review-modal-actions .super-review-export-head {
    display: inline-flex;
  }

  #superReviewModal.is-mobile-fullscreen .super-review-dashboard .super-review-export {
    display: none !important;
  }

  #superReviewModal.is-mobile-fullscreen .super-review-export {
    width: auto !important;
  }

  #superReviewModal.is-mobile-fullscreen .super-review-top-grid {
    grid-template-columns: .98fr .78fr 1.06fr .9fr !important;
  }

  #superReviewModal.is-mobile-fullscreen .super-review-metrics-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }

  #superReviewModal.is-mobile-fullscreen .super-review-middle-grid {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 1.34fr) minmax(260px, .9fr) !important;
  }

  #superReviewModal.is-mobile-fullscreen .super-review-rank-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  #superReviewModal.is-mobile-fullscreen .super-review-bottom-grid,
  #superReviewModal.is-mobile-fullscreen .super-review-theme-split {
    grid-template-columns: minmax(0, 1.72fr) minmax(280px, .58fr) !important;
  }

  #superReviewModal.is-mobile-fullscreen .super-review-sector-matrix {
    grid-template-columns: repeat(10, minmax(0, 1fr)) !important;
  }

  #superReviewModal.is-mobile-fullscreen .super-review-rank-list small {
    display: block !important;
  }
}

@media (max-width: 1100px) {
  #superReviewModal.is-mobile-fullscreen .super-review-middle-grid {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 1.34fr) minmax(260px, .9fr) !important;
  }

  #superReviewModal.is-mobile-fullscreen .super-review-sector-matrix {
    grid-template-columns: repeat(10, minmax(0, 1fr)) !important;
  }

  #superReviewModal.is-mobile-fullscreen .super-review-bottom-grid,
  #superReviewModal.is-mobile-fullscreen .super-review-theme-split {
    grid-template-columns: minmax(0, 1.72fr) minmax(280px, .58fr) !important;
  }
}

@media (min-width: 761px) {
  .super-review-dashboard.is-exporting .super-review-top-grid {
    grid-template-columns: 1.35fr .62fr 1fr .85fr !important;
  }

  .super-review-dashboard.is-exporting .super-review-middle-grid {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 1.34fr) minmax(260px, .9fr) !important;
  }

  .super-review-dashboard.is-exporting .super-review-rank-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  .super-review-dashboard.is-exporting .super-review-bottom-grid {
    grid-template-columns: 1.4fr .8fr !important;
  }

  .super-review-dashboard.is-exporting .super-review-metrics-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 760px) {
  .super-review-dashboard.is-exporting .super-review-hero {
    display: flex !important;
  }

  .super-review-dashboard.is-exporting .super-review-top-grid {
    grid-template-columns: .98fr .78fr 1.06fr .9fr !important;
  }

  .super-review-dashboard.is-exporting .super-review-metrics-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }

  .super-review-dashboard.is-exporting .super-review-middle-grid {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 1.34fr) minmax(260px, .9fr) !important;
  }

  .super-review-dashboard.is-exporting .super-review-rank-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  .super-review-dashboard.is-exporting .super-review-bottom-grid,
  .super-review-dashboard.is-exporting .super-review-theme-split {
    grid-template-columns: minmax(0, 1.72fr) minmax(280px, .58fr) !important;
  }

  .super-review-dashboard.is-exporting .super-review-sector-matrix {
    grid-template-columns: repeat(10, minmax(0, 1fr)) !important;
  }

  .super-review-dashboard.is-exporting .super-review-treemap.is-single .super-review-treemap-panel,
  .super-review-dashboard.is-exporting .super-review-treemap.is-single .super-review-treemap-canvas {
    min-height: 420px !important;
  }

  .super-review-dashboard.is-exporting .super-review-treemap-columns {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  .super-review-dashboard.is-exporting .super-review-treemap-panel,
  .super-review-dashboard.is-exporting .super-review-treemap-canvas {
    min-height: 340px !important;
  }
}

/* === 手机端体验优化（≤760px，2026-05-29）— 仅影响窄屏，待 Figma 稿再精调 === */
@media (max-width: 760px) {
  :root {
    --safe-top: env(safe-area-inset-top, 0px);
    --safe-right: env(safe-area-inset-right, 0px);
    --safe-bottom: env(safe-area-inset-bottom, 0px);
    --safe-left: env(safe-area-inset-left, 0px);
    --mobile-touch-min: 44px;
    --mobile-table-min: 640px;
    --mobile-pull-refresh-h: 40px;
  }

  .mobile-pull-refresh {
    position: fixed;
    left: 0;
    right: 0;
    z-index: 19;
    width: 100%;
    height: 0;
    overflow: visible;
    box-sizing: border-box;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transition: none;
  }

  .mobile-pull-refresh.is-visible {
    opacity: 1;
    visibility: visible;
    transition: opacity 0.12s ease;
  }

  .mobile-pull-refresh.is-releasing {
    transition: height 0.24s cubic-bezier(0.22, 1, 0.36, 1);
  }

  body.niepan-mobile-pull-active .mobile-discover-sector-head,
  body.niepan-mobile-pull-active #mainFlowMobileToolbar.mobile-discover-mainflow-toolbar,
  body.niepan-mobile-pull-active #retailHoldMobileToolbar.mobile-discover-retailhold-toolbar {
    position: relative !important;
    top: auto !important;
  }

  body.niepan-mobile-pull-active .mobile-discover-day-tabs,
  body.niepan-mobile-pull-active .mobile-discover-mainflow-tabs,
  body.niepan-mobile-pull-active .mobile-discover-retailhold-tabs,
  body.niepan-mobile-pull-active #mobileDiscoverTabs.mobile-discover-tabs {
    isolation: isolate;
  }

  body.niepan-mobile-pull-active .mobile-discover-day-tabs button,
  body.niepan-mobile-pull-active .mobile-discover-mainflow-tabs button,
  body.niepan-mobile-pull-active .mobile-discover-retailhold-tabs button,
  body.niepan-mobile-pull-active #mobileDiscoverTabs.mobile-discover-tabs button {
    -webkit-backface-visibility: visible;
    backface-visibility: visible;
    transform: translateZ(0);
  }

  .mobile-pull-refresh-inner {
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: 100%;
    padding: 0 16px;
    box-sizing: border-box;
    color: #86909c;
    font-size: 12px;
    line-height: 1.4;
    text-align: center;
    transform: translateY(-50%);
    pointer-events: none;
  }

  .mobile-pull-refresh.is-refreshing .mobile-pull-refresh-inner {
    color: #4e5969;
  }

  .mobile-pull-refresh-spinner {
    display: none;
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
    border: 2px solid #e5e6eb;
    border-top-color: #165dff;
    border-radius: 50%;
    box-sizing: border-box;
  }

  .mobile-pull-refresh.is-refreshing .mobile-pull-refresh-spinner {
    display: block;
    animation: mobilePullRefreshSpin 0.7s linear infinite;
  }

  @keyframes mobilePullRefreshSpin {
    from {
      transform: rotate(0deg);
    }

    to {
      transform: rotate(360deg);
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .mobile-pull-refresh.is-refreshing .mobile-pull-refresh-spinner {
      animation: none;
      border-top-color: #165dff;
    }
  }

  .topbar {
    padding-top: calc(10px + var(--safe-top)) !important;
    padding-left: calc(10px + var(--safe-left)) !important;
    padding-right: calc(10px + var(--safe-right)) !important;
    grid-template-areas:
      "brand notices auth"
      "indices indices indices"
      "quick quick quick" !important;
  }

  .top-notice-actions {
    grid-area: notices !important;
    display: inline-flex !important;
    align-items: center;
    justify-self: end;
    gap: 6px;
    min-width: 0;
  }

  #announcementOpenBtn,
  #feedbackOpenBtn {
    grid-area: auto !important;
    justify-self: auto !important;
    min-height: var(--mobile-touch-min) !important;
    min-width: 0 !important;
    padding: 8px 10px !important;
    font-size: 12px !important;
    border-radius: 8px;
  }

  #authBar {
    font-size: 11px !important;
    line-height: 1.3;
    max-width: 34vw;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  #authBar a {
    padding: 4px 2px;
  }

  #monitorBtn,
  #refreshBtn,
  #superAnalysisOpenBtn {
    min-height: var(--mobile-touch-min) !important;
    padding: 10px 8px !important;
    font-size: 13px !important;
    border-radius: 8px;
  }

  main {
    padding-left: calc(12px + var(--safe-left)) !important;
    padding-right: calc(12px + var(--safe-right)) !important;
    padding-bottom: calc(16px + var(--safe-bottom)) !important;
  }

  .search-band {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  .global-data-init {
    grid-column: 1 / -1;
    flex-direction: row;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
  }

  .global-data-init small {
    font-size: 12px;
    line-height: 1.45;
  }

  /* 状态三卡横向滑动（仅非手机首页区块；首页走纵向 Figma 布局） */
  .status-band:not([data-mobile-home-section]) {
    display: flex !important;
    flex-wrap: nowrap;
    gap: 10px;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    scroll-padding-left: 2px;
    padding-bottom: 4px;
    scrollbar-width: thin;
  }

  .status-band:not([data-mobile-home-section]) > div {
    flex: 0 0 min(86vw, 300px);
    scroll-snap-align: start;
    min-height: 0;
  }

  .status-band:not([data-mobile-home-section]) .market-overview-card {
    flex-basis: min(92vw, 320px);
  }

  .status-band:not([data-mobile-home-section]) .signal-status-card,
  .status-band:not([data-mobile-home-section]) .recommend-status-card {
    flex-basis: min(78vw, 280px);
  }

  .signal-ticker:not(.mobile-pick-strip),
  .recommend-list:not(.mobile-pick-strip) {
    max-height: 168px;
  }

  .main-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
    padding-right: 28px;
    mask-image: linear-gradient(90deg, #000 calc(100% - 28px), transparent);
    -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 28px), transparent);
  }

  .main-tabs button {
    min-height: var(--mobile-touch-min);
    padding: 10px 14px;
    font-size: 13px;
    scroll-snap-align: start;
  }

  .main-tabs button span {
    font-size: 11px;
  }

  /* 表格：略减最小宽度 + 冻结前两列，便于横向扫读 */
  .table-wrap::after,
  .main-flow-table-wrap::after {
    content: "左右滑动查看更多";
    display: block;
    padding: 6px 10px 2px;
    font-size: 11px;
    font-weight: 600;
    color: #6d7f9c;
    text-align: center;
  }

  .stock-rank-table,
  .hot-money-table,
  .main-flow-table,
  .strategy-table {
    min-width: var(--mobile-table-min) !important;
  }

  .hot-money-table {
    min-width: 720px !important;
  }

  .strategy-table {
    min-width: 680px !important;
  }

  .stock-rank-table th:nth-child(1),
  .stock-rank-table td:nth-child(1),
  .stock-rank-table th:nth-child(2),
  .stock-rank-table td:nth-child(2),
  .main-flow-table th:nth-child(1),
  .main-flow-table td:nth-child(1),
  .main-flow-table th:nth-child(2),
  .main-flow-table td:nth-child(2),
  .hot-money-table th:nth-child(1),
  .hot-money-table td:nth-child(1),
  .hot-money-table th:nth-child(2),
  .hot-money-table td:nth-child(2),
  .strategy-table th:nth-child(1),
  .strategy-table td:nth-child(1),
  .strategy-table th:nth-child(2),
  .strategy-table td:nth-child(2) {
    position: sticky;
    z-index: 2;
    background: #fff;
    box-shadow: 2px 0 6px rgba(17, 38, 79, 0.06);
  }

  .stock-rank-table th:nth-child(2),
  .stock-rank-table td:nth-child(2),
  .main-flow-table th:nth-child(2),
  .main-flow-table td:nth-child(2),
  .hot-money-table th:nth-child(2),
  .hot-money-table td:nth-child(2) {
    left: 42px;
  }

  .strategy-table th:nth-child(2),
  .strategy-table td:nth-child(2) {
    left: 48px;
  }

  .stock-rank-table th:nth-child(1),
  .stock-rank-table td:nth-child(1),
  .main-flow-table th:nth-child(1),
  .main-flow-table td:nth-child(1),
  .hot-money-table th:nth-child(1),
  .hot-money-table td:nth-child(1),
  .strategy-table th:nth-child(1),
  .strategy-table td:nth-child(1) {
    left: 0;
  }

  /* 详情 / 反馈 / AI 助手：全屏抽屉，底部安全区 */
  .modal-panel,
  #feedbackModal:not(.feedback-sheet-modal) .feedback-modal-panel,
  .modal-panel.super-analysis-modal-panel,
  .modal-panel.announcement-drawer-panel,
  #strategyHistoryDrawer:not(.strategy-history-sheet-modal) .strategy-history-drawer-panel {
    left: 0 !important;
    right: 0 !important;
    top: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    max-height: 100dvh !important;
    border-radius: 0;
    box-shadow: none;
    padding-bottom: var(--safe-bottom);
  }

  .modal-panel.announcement-drawer-panel {
    padding-bottom: 0;
    grid-template-rows: auto minmax(0, 1fr) auto !important;
  }

  #profileRewardModal .modal-panel.profile-reward-modal-panel,
  #profileGzhModal .modal-panel.profile-gzh-modal-panel {
    left: 50% !important;
    right: auto !important;
    top: 50% !important;
    bottom: auto !important;
    transform: translate(-50%, -50%);
    width: min(400px, calc(100% - 32px)) !important;
    max-width: calc(100% - 32px) !important;
    max-height: min(78dvh, 640px) !important;
    height: auto !important;
    border-radius: 12px !important;
    box-shadow: 0 18px 48px rgba(16, 24, 40, 0.22) !important;
    padding-bottom: 0;
    grid-template-rows: auto minmax(0, 1fr) auto !important;
  }

  #announcementDrawer .announcement-drawer-head {
    justify-content: center;
    height: 50px;
    min-height: 50px;
    max-height: 50px;
    padding: 0 calc(16px + var(--safe-right)) 0 calc(16px + var(--safe-left));
  }

  #announcementDrawer .announcement-drawer-body {
    padding-bottom: 0;
  }

  #announcementDrawer .announcement-drawer-footer {
    padding: 12px calc(12px + var(--safe-right)) calc(12px + var(--safe-bottom)) calc(12px + var(--safe-left));
  }

  #announcementDrawer .announcement-drawer-footer .detail-sheet-dismiss {
    min-height: var(--mobile-touch-min, 32px);
  }

  #strategyHistoryDrawer.strategy-history-sheet-modal .strategy-history-drawer-panel {
    left: 0 !important;
    right: 0 !important;
    top: auto !important;
    bottom: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    height: min(600px, 74dvh) !important;
    max-height: min(600px, 74dvh) !important;
    border-radius: 16px 16px 0 0 !important;
    box-shadow: 0 -12px 40px rgba(16, 24, 40, 0.16) !important;
    padding-bottom: 0;
    grid-template-rows: auto minmax(0, 1fr) auto !important;
  }

  #strategyHistoryDrawer.strategy-history-sheet-modal .strategy-history-sheet-head {
    display: grid;
    grid-template-columns: 1fr;
    align-items: center;
    justify-items: center;
    gap: 0;
    padding: 12px calc(20px + var(--safe-right)) 12px calc(20px + var(--safe-left));
    border-bottom: 1px solid #e5e6eb;
  }

  #strategyHistoryDrawer.strategy-history-sheet-modal .strategy-history-sheet-head .detail-sheet-head-center {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    width: 100%;
  }

  #strategyHistoryDrawer.strategy-history-sheet-modal .strategy-history-sheet-head h2 {
    margin: 0;
    width: 100%;
    font-size: 16px;
    font-weight: 500;
    line-height: 24px;
    color: #1d2129;
    text-align: center;
  }

  #strategyHistoryDrawer.strategy-history-sheet-modal .strategy-history-sheet-meta {
    display: none !important;
  }

  #strategyHistoryDrawer.strategy-history-sheet-modal .strategy-history-drawer-body {
    padding: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    background: #fff;
  }

  #strategyHistoryDrawer.strategy-history-sheet-modal .strategy-history-drawer-list--mobile {
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  #strategyHistoryDrawer.strategy-history-sheet-modal .strategy-history-item--mobile {
    padding: 12px 12px 0;
    margin: 0;
    border: 0;
    border-radius: 0;
    border-bottom: 1px solid #f2f3f5;
    background: #fff;
  }

  #strategyHistoryDrawer.strategy-history-sheet-modal .strategy-history-item--mobile.clickable-row:active {
    background: #f7f8fa;
  }

  #strategyHistoryDrawer.strategy-history-sheet-modal .strategy-history-item--mobile:last-child {
    border-bottom: 0;
    padding-bottom: 12px;
  }

  #strategyHistoryDrawer.strategy-history-sheet-modal .strategy-history-item-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    width: 100%;
  }

  #strategyHistoryDrawer.strategy-history-sheet-modal .strategy-history-item-title-row {
    display: flex;
    align-items: center;
    gap: 4px;
    min-width: 0;
    flex: 1 1 auto;
  }

  #strategyHistoryDrawer.strategy-history-sheet-modal .strategy-history-item-title-row .stock-name-with-star {
    min-width: 0;
    flex: 0 1 auto;
  }

  #strategyHistoryDrawer.strategy-history-sheet-modal .strategy-history-item-name {
    font-size: 14px;
    font-weight: 500;
    line-height: 1.4;
    color: #1d2129;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  #strategyHistoryDrawer.strategy-history-sheet-modal .strategy-history-tag {
    flex-shrink: 0;
    padding: 0 8px;
    border-radius: 30px;
    font-size: 12px;
    font-weight: 500;
    line-height: 20px;
  }

  #strategyHistoryDrawer.strategy-history-sheet-modal .strategy-history-item-return {
    flex-shrink: 0;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.4;
  }

  #strategyHistoryDrawer.strategy-history-sheet-modal .strategy-history-item-return.up {
    color: #f53f3f;
  }

  #strategyHistoryDrawer.strategy-history-sheet-modal .strategy-history-item-return.down {
    color: #00b42a;
  }

  #strategyHistoryDrawer.strategy-history-sheet-modal .strategy-history-item-sub {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 4px;
    color: #4e5969;
    font-size: 12px;
    line-height: 1.4;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  #strategyHistoryDrawer.strategy-history-sheet-modal .strategy-history-item-sub span {
    flex-shrink: 0;
  }

  #strategyHistoryDrawer.strategy-history-sheet-modal .strategy-history-item-prices--mobile {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
    margin-top: 4px;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.4;
  }

  #strategyHistoryDrawer.strategy-history-sheet-modal .strategy-history-item-after-sell-row--mobile {
    width: 100%;
    margin-top: 4px;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.4;
  }

  #strategyHistoryDrawer.strategy-history-sheet-modal .strategy-history-price-after {
    color: #4e5969;
    font-size: 12px;
    font-weight: 400;
  }

  #strategyHistoryDrawer.strategy-history-sheet-modal .strategy-history-price-after.up {
    color: #f53f3f;
  }

  #strategyHistoryDrawer.strategy-history-sheet-modal .strategy-history-price-after.down {
    color: #00b42a;
  }

  #strategyHistoryDrawer.strategy-history-sheet-modal .strategy-history-price-buy {
    color: #f53f3f;
  }

  #strategyHistoryDrawer.strategy-history-sheet-modal .strategy-history-price-sell {
    color: #00b42a;
  }

  #strategyHistoryDrawer.strategy-history-sheet-modal .strategy-history-item-times {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 4px;
    padding-bottom: 12px;
    color: #86909c;
    font-size: 12px;
    line-height: 1.4;
  }

  #strategyHistoryDrawer.strategy-history-sheet-modal .strategy-history-empty {
    margin: 0;
    padding: 24px 12px;
    text-align: center;
    font-size: 14px;
    line-height: 1.4;
    color: #86909c;
  }

  #strategyHistoryDrawer.strategy-history-sheet-modal .strategy-history-sheet-footer {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    padding: 12px calc(12px + var(--safe-left)) calc(16px + var(--safe-bottom)) calc(12px + var(--safe-right));
    border-top: 1px solid #e5e6eb;
    background: #fff;
    margin-top: 0;
  }

  #strategyHistoryDrawer.strategy-history-sheet-modal .strategy-history-sheet-footer .detail-sheet-primary {
    display: none;
  }

  #strategyHistoryDrawer.strategy-history-sheet-modal .strategy-history-sheet-footer .detail-sheet-dismiss {
    min-height: var(--mobile-touch-min, 32px);
    padding: 5px 16px;
    border: 1px solid #e5e6eb;
    border-radius: 4px;
    background: #f7f8fa;
    color: #1d2129;
    font-size: 14px;
    font-weight: 400;
    line-height: 22px;
    cursor: pointer;
    box-sizing: border-box;
  }

  #feedbackModal.feedback-sheet-modal .modal-backdrop {
    background: rgba(0, 0, 0, 0.6);
  }

  #feedbackModal.feedback-sheet-modal .feedback-modal-panel {
    left: 0 !important;
    right: 0 !important;
    top: auto !important;
    bottom: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    height: min(600px, 74dvh) !important;
    max-height: min(600px, 74dvh) !important;
    border-radius: 16px 16px 0 0 !important;
    box-shadow: 0 -12px 40px rgba(16, 24, 40, 0.16) !important;
    padding-bottom: 0;
    background: #fff;
    grid-template-rows: auto minmax(0, 1fr) auto !important;
  }

  #feedbackModal.feedback-sheet-modal .feedback-sheet-head {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    flex-shrink: 0;
    box-sizing: border-box;
    gap: 0;
    height: 50px;
    min-height: 50px;
    max-height: 50px;
    padding: 0 20px;
    border-bottom: 1px solid #e5e6eb;
    background: #fff;
  }

  #feedbackModal.feedback-sheet-modal.feedback-sheet-view-history .feedback-sheet-head {
    grid-template-columns: 32px 1fr 32px;
    height: 50px;
    min-height: 50px;
    max-height: 50px;
    padding: 0 12px;
  }

  #feedbackModal.feedback-sheet-modal .feedback-sheet-nav-btn {
    grid-column: 1;
    justify-self: start;
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 6px;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: #0e42d2;
    font-size: 14px;
    font-weight: 400;
    line-height: 22px;
    cursor: pointer;
    white-space: nowrap;
    max-width: 100%;
    overflow: visible;
    -webkit-tap-highlight-color: transparent;
  }

  #feedbackModal.feedback-sheet-modal .feedback-sheet-head {
    overflow: visible;
  }

  #feedbackModal.feedback-sheet-modal .feedback-sheet-nav-btn.is-back {
    width: 20px;
    height: 20px;
    min-width: 20px;
    min-height: 20px;
  }

  #feedbackModal.feedback-sheet-modal .feedback-sheet-nav-back-icon {
    display: block;
    width: 20px;
    height: 20px;
  }

  #feedbackModal.feedback-sheet-modal .feedback-sheet-nav-back-icon[hidden] {
    display: none !important;
  }

  #feedbackModal.feedback-sheet-modal .feedback-sheet-nav-label[hidden] {
    display: none !important;
  }

  #feedbackModal.feedback-sheet-modal .detail-sheet-head-center {
    grid-column: 2;
    justify-self: center;
    min-width: 0;
  }

  #feedbackModal.feedback-sheet-modal .feedback-sheet-close {
    display: none !important;
  }

  #feedbackModal.feedback-sheet-modal .feedback-sheet-head-spacer {
    display: none !important;
  }

  #feedbackModal.feedback-sheet-modal .feedback-sheet-head .detail-sheet-head-center h2 {
    margin: 0;
    font-size: 16px;
    font-weight: 500;
    line-height: 24px;
    color: #1d2129;
    text-align: center;
  }

  #feedbackModal.feedback-sheet-modal .feedback-modal-body {
    display: flex;
    flex-direction: column;
    min-height: 0;
    padding: 0;
    overflow: hidden;
  }

  #feedbackModal.feedback-sheet-modal .feedback-compose-view,
  #feedbackModal.feedback-sheet-modal .feedback-history-view {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  #feedbackModal.feedback-sheet-modal.feedback-sheet-view-compose .feedback-compose-view {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    padding: 12px;
    box-sizing: border-box;
    background: #fff;
  }

  #feedbackModal.feedback-sheet-modal.feedback-sheet-view-compose .feedback-compose-editor {
    flex: 1 1 auto;
    min-height: 0;
    height: 100%;
  }

  #feedbackModal.feedback-sheet-modal.feedback-sheet-view-compose .feedback-history-view {
    display: none !important;
  }

  #feedbackModal.feedback-sheet-modal.feedback-sheet-view-history .feedback-compose-view {
    display: none !important;
  }

  #feedbackModal.feedback-sheet-modal.feedback-sheet-view-history .feedback-history-view {
    display: block;
    flex: 1 1 auto;
    min-height: 0;
  }

  #feedbackModal.feedback-sheet-modal .feedback-compose-editor {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr) auto auto auto;
    column-gap: 0;
    row-gap: 0;
    align-content: stretch;
    min-height: 0;
    padding: 0;
    border: 1px solid var(--line);
    border-radius: 6px;
    background: #fff;
    box-sizing: border-box;
    outline: none;
    box-shadow: none;
    overflow: hidden;
  }

  #feedbackModal.feedback-sheet-modal .feedback-textarea {
    grid-column: 1 / -1;
    grid-row: 1;
    width: 100%;
    min-height: 0;
    height: 100%;
    margin: 0;
    padding: 10px 12px 8px;
    border: 0 !important;
    border-radius: 0;
    background: transparent;
    color: #1d2129;
    font-size: 16px;
    line-height: 1.5;
    resize: none;
    outline: none !important;
    box-shadow: none !important;
    -webkit-appearance: none;
    appearance: none;
    align-self: stretch;
    box-sizing: border-box;
  }

  #feedbackModal.feedback-sheet-modal .feedback-image-upload {
    display: contents;
    margin-top: 0;
  }

  #feedbackModal.feedback-sheet-modal .feedback-compose-toolbar {
    grid-column: 1 / -1;
    grid-row: 3;
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px 12px;
    margin-top: 0;
    padding: 8px 12px 10px;
    border-top: 1px solid var(--line);
  }

  #feedbackModal.feedback-sheet-modal .feedback-image-preview {
    grid-column: 1 / -1;
    grid-row: 2;
    margin: 0;
    padding: 0 12px 8px;
  }

  #feedbackModal.feedback-sheet-modal .feedback-image-remove {
    top: -4px;
    right: -4px;
    width: 22px;
    height: 22px;
  }

  #feedbackModal.feedback-sheet-modal .feedback-image-remove-icon {
    width: 22px;
    height: 22px;
  }

  #feedbackModal.feedback-sheet-modal .feedback-image-preview:empty {
    display: none;
    margin: 0;
    padding: 0;
  }

  #feedbackModal.feedback-sheet-modal .feedback-image-upload-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
  }

  #feedbackModal.feedback-sheet-modal #feedbackImagePickBtn,
  #feedbackModal.feedback-sheet-modal .feedback-compose-actions .primary {
    min-height: 32px;
    padding: 5px 16px;
    font-size: 14px;
    line-height: 22px;
    font-weight: 600;
  }

  #feedbackModal.feedback-sheet-modal #feedbackImagePickBtn {
    padding: 5px 12px;
  }

  #feedbackModal.feedback-sheet-modal .feedback-image-hint {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    font-size: 12px;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  #feedbackModal.feedback-sheet-modal .feedback-form-error {
    grid-column: 1 / -1;
    grid-row: 4;
    margin: 0 12px 10px;
  }

  #feedbackModal.feedback-sheet-modal .feedback-compose-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex: 0 0 auto;
    margin: 0;
    padding: 0;
  }

  #feedbackModal.feedback-sheet-modal .feedback-compose-editor:focus-within {
    border-color: #94bfff;
    outline: none;
    box-shadow: none;
  }

  #feedbackModal.feedback-sheet-modal .feedback-textarea:focus,
  #feedbackModal.feedback-sheet-modal .feedback-textarea:focus-visible {
    border: 0 !important;
    outline: none !important;
    box-shadow: none !important;
  }

  #feedbackModal.feedback-sheet-modal .feedback-textarea::placeholder {
    color: #86909c;
  }

  #feedbackModal.feedback-sheet-modal .feedback-compose-actions .primary {
    border: 0;
    border-radius: 6px;
    background: var(--blue);
    color: #fff;
  }

  #feedbackModal.feedback-sheet-modal .feedback-history-view {
    padding: 0;
    background: #fff;
  }

  #feedbackModal.feedback-sheet-modal .feedback-history-head {
    display: none !important;
  }

  #feedbackModal.feedback-sheet-modal .feedback-history-list--sheet {
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  #feedbackModal.feedback-sheet-modal .feedback-history-item--sheet {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 12px 12px 0;
    margin: 0;
    border: 0;
    border-radius: 0;
    border-bottom: 1px solid #f2f3f5;
    background: #fff;
    box-sizing: border-box;
  }

  #feedbackModal.feedback-sheet-modal .feedback-history-item--sheet:last-child {
    border-bottom: 0;
    padding-bottom: 12px;
  }

  #feedbackModal.feedback-sheet-modal .feedback-history-item-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    line-height: 1.4;
  }

  #feedbackModal.feedback-sheet-modal .feedback-history-item-time {
    color: #86909c;
  }

  #feedbackModal.feedback-sheet-modal .feedback-history-item-status {
    font-weight: 400;
  }

  #feedbackModal.feedback-sheet-modal .feedback-history-item--sheet.is-replied .feedback-history-item-status {
    color: #00b42a;
  }

  #feedbackModal.feedback-sheet-modal .feedback-history-item--sheet.is-pending .feedback-history-item-status {
    color: #f53f3f;
  }

  #feedbackModal.feedback-sheet-modal .feedback-history-item-body {
    margin: 0;
    color: #1d2129;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.4;
    white-space: pre-wrap;
    word-break: break-word;
  }

  #feedbackModal.feedback-sheet-modal .feedback-admin-reply-box {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-top: 4px;
    padding: 8px 12px;
    border: 1px solid #aff0b5;
    border-radius: 6px;
    background: #e8ffea;
  }

  #feedbackModal.feedback-sheet-modal .feedback-admin-reply-meta {
    margin: 0;
    color: #86909c;
    font-size: 12px;
    line-height: 1.4;
  }

  #feedbackModal.feedback-sheet-modal .feedback-admin-reply-body {
    margin: 0;
    color: #1d2129;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.4;
    white-space: pre-wrap;
    word-break: break-word;
  }

  #feedbackModal.feedback-sheet-modal .feedback-followup-form--sheet {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 0;
    min-height: 100px;
    margin-top: 4px;
    padding: 8px 12px;
    border: 1px solid #e5e6eb;
    border-radius: 8px;
    background: #fff;
    box-sizing: border-box;
  }

  #feedbackModal.feedback-sheet-modal .feedback-followup-form--sheet textarea {
    flex: 1 1 auto;
    min-height: 48px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    font-size: 16px;
    line-height: 1.4;
    resize: none;
  }

  #feedbackModal.feedback-sheet-modal .feedback-followup-form--sheet textarea::placeholder {
    color: #86909c;
  }

  #feedbackModal.feedback-sheet-modal .feedback-followup-form--sheet .feedback-followup-actions {
    justify-content: flex-end;
    margin: 0;
    padding-top: 8px;
  }

  #feedbackModal.feedback-sheet-modal .feedback-followup-send {
    min-height: 32px;
    padding: 5px 16px;
    border: 1px solid #e5e6eb;
    border-radius: 4px;
    background: #fff;
    color: #4e5969;
    font-size: 14px;
    font-weight: 400;
    line-height: 22px;
    cursor: pointer;
  }

  #feedbackModal.feedback-sheet-modal .feedback-followup-form--sheet [data-feedback-followup-status] {
    display: none;
  }

  #feedbackModal.feedback-sheet-modal .feedback-history-empty {
    margin: 0;
    padding: 24px 12px;
    text-align: center;
    font-size: 14px;
    color: #86909c;
  }

  #feedbackModal.feedback-sheet-modal .feedback-sheet-footer {
    display: grid;
    grid-template-columns: 1fr;
    padding: 16px 12px;
    border-top: 1px solid #e5e6eb;
    background: #fff;
  }

  #feedbackModal.feedback-sheet-modal .feedback-sheet-footer .detail-sheet-primary {
    display: none;
  }

  #feedbackModal.feedback-sheet-modal .feedback-sheet-footer .detail-sheet-dismiss {
    width: 100%;
    height: 44px;
    min-height: 44px;
    padding: 0 16px;
    border: 1px solid #e5e6eb;
    border-radius: 4px;
    background: #f7f8fa;
    color: #1d2129;
    font-size: 14px;
    font-weight: 400;
    line-height: 22px;
    text-align: center;
    cursor: pointer;
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
  }

  .feedback-sheet-footer {
    display: none;
  }

  .modal-panel.mobile-sector-stock-sheet-panel {
    top: auto !important;
    bottom: 0 !important;
    max-height: min(74dvh, 600px) !important;
    height: auto !important;
    border-radius: 16px 16px 0 0 !important;
    box-shadow: 0 -12px 40px rgba(16, 24, 40, 0.16) !important;
    padding-bottom: 0;
    grid-template-rows: auto minmax(0, 1fr) auto !important;
  }

  #marketStockDrawer .modal-panel.mobile-sector-stock-sheet-panel {
    height: 75dvh !important;
    min-height: 75dvh !important;
    max-height: 75dvh !important;
  }

  #superAnalysisHistoryDrawer .modal-panel.mobile-sector-stock-sheet-panel {
    height: 75dvh !important;
    min-height: 75dvh !important;
    max-height: 75dvh !important;
  }

  .modal-panel.mobile-sector-stock-sheet-panel .mobile-sector-stock-sheet-head {
    justify-content: center !important;
    min-height: 48px;
    padding: 12px calc(20px + var(--safe-right)) 12px calc(20px + var(--safe-left));
  }

  .modal-panel.mobile-sector-stock-sheet-panel .mobile-sector-stock-sheet-head h2 {
    display: block;
    width: 100%;
    text-align: center;
    font-size: 16px;
    line-height: 24px;
  }

  .modal-panel.mobile-sector-stock-sheet-panel .mobile-sector-stock-sheet-body {
    padding: 0;
    overflow: hidden;
    min-height: 0;
  }

  #sectorStockDrawer .mobile-sector-stock-table-wrap,
  #marketStockDrawer .mobile-sector-stock-table-wrap {
    margin: 0;
    border: 0;
    border-radius: 0;
    padding-left: 0;
    box-sizing: border-box;
    flex: 1 1 auto;
    min-height: 0;
    max-height: 100%;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    background: #fff;
    isolation: isolate;
  }

  #sectorStockDrawer .mobile-sector-stock-table-wrap .mobile-home-stock-table .col-stock {
    min-width: 128px;
    width: 128px;
  }

  #sectorStockDrawer .mobile-sector-stock-table-wrap .mobile-stock-val--name {
    font-size: 16px;
    font-weight: 700;
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
    line-height: 1.35;
  }

  #sectorStockDrawer .mobile-sector-stock-table-wrap .mobile-home-stock-table .col-position {
    min-width: 72px;
    width: 72px;
    padding-right: calc(12px + var(--safe-right)) !important;
  }

  #sectorStockDrawer .mobile-sector-stock-table-wrap .mobile-stock-position-btn {
    font-size: 11px;
    min-height: 26px;
    padding: 4px 8px;
  }

  #marketStockDrawer .mobile-sector-stock-table-wrap .mobile-home-stock-table .col-position {
    padding-right: calc(12px + var(--safe-right)) !important;
  }

  #sectorStockDrawer .mobile-sector-stock-table-wrap .clickable-row,
  #sectorStockDrawer .mobile-sector-stock-table-wrap .mobile-home-stock-table tbody tr,
  #marketStockDrawer .mobile-sector-stock-table-wrap .clickable-row,
  #marketStockDrawer .mobile-sector-stock-table-wrap .mobile-home-stock-table tbody tr {
    -webkit-tap-highlight-color: transparent;
  }

  #sectorStockDrawer .mobile-sector-stock-table-wrap .clickable-row:hover td,
  #sectorStockDrawer .mobile-sector-stock-table-wrap .clickable-row:active td,
  #sectorStockDrawer .mobile-sector-stock-table-wrap .clickable-row:focus td,
  #sectorStockDrawer .mobile-sector-stock-table-wrap .clickable-row:focus-within td,
  #sectorStockDrawer .mobile-sector-stock-table-wrap .mobile-home-stock-table tbody tr:hover td,
  #sectorStockDrawer .mobile-sector-stock-table-wrap .mobile-home-stock-table tbody tr:active td,
  #sectorStockDrawer .mobile-sector-stock-table-wrap .mobile-home-stock-table tbody tr:focus td,
  #sectorStockDrawer .mobile-sector-stock-table-wrap .mobile-home-stock-table tbody tr:focus-within td,
  #marketStockDrawer .mobile-sector-stock-table-wrap .clickable-row:hover td,
  #marketStockDrawer .mobile-sector-stock-table-wrap .clickable-row:active td,
  #marketStockDrawer .mobile-sector-stock-table-wrap .clickable-row:focus td,
  #marketStockDrawer .mobile-sector-stock-table-wrap .clickable-row:focus-within td,
  #marketStockDrawer .mobile-sector-stock-table-wrap .mobile-home-stock-table tbody tr:hover td,
  #marketStockDrawer .mobile-sector-stock-table-wrap .mobile-home-stock-table tbody tr:active td,
  #marketStockDrawer .mobile-sector-stock-table-wrap .mobile-home-stock-table tbody tr:focus td,
  #marketStockDrawer .mobile-sector-stock-table-wrap .mobile-home-stock-table tbody tr:focus-within td {
    background: #fff !important;
    background-color: #fff !important;
  }

  #sectorStockDrawer .mobile-sector-stock-table-wrap .mobile-home-stock-table .col-stock:hover,
  #sectorStockDrawer .mobile-sector-stock-table-wrap .mobile-home-stock-table .col-stock:active,
  #sectorStockDrawer .mobile-sector-stock-table-wrap .mobile-home-stock-table .col-stock:focus,
  #marketStockDrawer .mobile-sector-stock-table-wrap .mobile-home-stock-table .col-stock:hover,
  #marketStockDrawer .mobile-sector-stock-table-wrap .mobile-home-stock-table .col-stock:active,
  #marketStockDrawer .mobile-sector-stock-table-wrap .mobile-home-stock-table .col-stock:focus {
    background-color: #fff !important;
  }

  .modal-panel.mobile-sector-stock-sheet-panel .mobile-sector-stock-sheet-footer {
    padding-top: 12px;
    padding-left: calc(12px + var(--safe-left));
    padding-right: calc(12px + var(--safe-right));
    padding-bottom: calc(16px + var(--safe-bottom));
  }

  .modal-panel.mobile-sector-stock-sheet-panel .mobile-sector-stock-sheet-dismiss {
    min-height: var(--mobile-touch-min);
  }

  #detailModal.detail-sheet-modal .modal-panel.detail-sheet-panel {
    top: auto !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    height: min(92dvh, 900px) !important;
    min-height: min(92dvh, 900px) !important;
    max-height: min(92dvh, 900px) !important;
    border-radius: 16px 16px 0 0 !important;
    box-shadow: 0 -12px 40px rgba(16, 24, 40, 0.16) !important;
    padding-bottom: 0;
    grid-template-rows: auto minmax(0, 1fr) auto !important;
  }

  #detailModal.news-detail-sheet-modal .modal-backdrop,
  #detailModal.hot-money-detail-sheet-modal .modal-backdrop,
  #detailModal.stock-detail-sheet-modal .modal-backdrop,
  #detailModal.market-tech-sector-sheet-modal .modal-backdrop,
  #detailModal.market-tech-breadth-sheet-modal .modal-backdrop,
  #detailModal.market-tech-strong-sheet-modal .modal-backdrop,
  #detailModal.market-tech-hot-sheet-modal .modal-backdrop,
  #detailModal.market-tech-elastic-sheet-modal .modal-backdrop,
  #detailModal.market-tech-turnover-sheet-modal .modal-backdrop,
  #detailModal.market-tech-action-sheet-modal .modal-backdrop {
    opacity: 0;
    transition: opacity 0.28s ease;
  }

  #detailModal.news-detail-sheet-modal.is-open .modal-backdrop,
  #detailModal.hot-money-detail-sheet-modal.is-open .modal-backdrop,
  #detailModal.stock-detail-sheet-modal.is-open .modal-backdrop,
  #detailModal.market-tech-sector-sheet-modal.is-open .modal-backdrop,
  #detailModal.market-tech-breadth-sheet-modal.is-open .modal-backdrop,
  #detailModal.market-tech-strong-sheet-modal.is-open .modal-backdrop,
  #detailModal.market-tech-hot-sheet-modal.is-open .modal-backdrop,
  #detailModal.market-tech-elastic-sheet-modal.is-open .modal-backdrop,
  #detailModal.market-tech-turnover-sheet-modal.is-open .modal-backdrop,
  #detailModal.market-tech-action-sheet-modal.is-open .modal-backdrop {
    opacity: 1;
  }

  #detailModal.news-detail-sheet-modal .modal-panel.detail-sheet-panel,
  #detailModal.hot-money-detail-sheet-modal .modal-panel.detail-sheet-panel,
  #detailModal.stock-detail-sheet-modal .modal-panel.detail-sheet-panel,
  #detailModal.market-tech-sector-sheet-modal .modal-panel.detail-sheet-panel,
  #detailModal.market-tech-breadth-sheet-modal .modal-panel.detail-sheet-panel,
  #detailModal.market-tech-strong-sheet-modal .modal-panel.detail-sheet-panel,
  #detailModal.market-tech-hot-sheet-modal .modal-panel.detail-sheet-panel,
  #detailModal.market-tech-elastic-sheet-modal .modal-panel.detail-sheet-panel,
  #detailModal.market-tech-turnover-sheet-modal .modal-panel.detail-sheet-panel,
  #detailModal.market-tech-action-sheet-modal .modal-panel.detail-sheet-panel {
    transform: translateY(100%);
    transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform;
  }

  #detailModal.news-detail-sheet-modal.is-open .modal-panel.detail-sheet-panel,
  #detailModal.hot-money-detail-sheet-modal.is-open .modal-panel.detail-sheet-panel,
  #detailModal.stock-detail-sheet-modal.is-open .modal-panel.detail-sheet-panel,
  #detailModal.market-tech-sector-sheet-modal.is-open .modal-panel.detail-sheet-panel,
  #detailModal.market-tech-breadth-sheet-modal.is-open .modal-panel.detail-sheet-panel,
  #detailModal.market-tech-strong-sheet-modal.is-open .modal-panel.detail-sheet-panel,
  #detailModal.market-tech-hot-sheet-modal.is-open .modal-panel.detail-sheet-panel,
  #detailModal.market-tech-elastic-sheet-modal.is-open .modal-panel.detail-sheet-panel,
  #detailModal.market-tech-turnover-sheet-modal.is-open .modal-panel.detail-sheet-panel,
  #detailModal.market-tech-action-sheet-modal.is-open .modal-panel.detail-sheet-panel {
    transform: translateY(0);
  }

  @media (prefers-reduced-motion: reduce) {
    #detailModal.news-detail-sheet-modal .modal-backdrop,
    #detailModal.hot-money-detail-sheet-modal .modal-backdrop,
    #detailModal.market-tech-sector-sheet-modal .modal-backdrop,
    #detailModal.market-tech-breadth-sheet-modal .modal-backdrop,
    #detailModal.market-tech-strong-sheet-modal .modal-backdrop,
    #detailModal.market-tech-hot-sheet-modal .modal-backdrop,
    #detailModal.market-tech-elastic-sheet-modal .modal-backdrop,
    #detailModal.market-tech-turnover-sheet-modal .modal-backdrop,
    #detailModal.market-tech-action-sheet-modal .modal-backdrop,
    #detailModal.news-detail-sheet-modal .modal-panel.detail-sheet-panel,
    #detailModal.hot-money-detail-sheet-modal .modal-panel.detail-sheet-panel,
    #detailModal.market-tech-sector-sheet-modal .modal-panel.detail-sheet-panel,
    #detailModal.market-tech-breadth-sheet-modal .modal-panel.detail-sheet-panel,
    #detailModal.market-tech-strong-sheet-modal .modal-panel.detail-sheet-panel,
    #detailModal.market-tech-hot-sheet-modal .modal-panel.detail-sheet-panel,
    #detailModal.market-tech-elastic-sheet-modal .modal-panel.detail-sheet-panel,
    #detailModal.market-tech-turnover-sheet-modal .modal-panel.detail-sheet-panel,
    #detailModal.market-tech-action-sheet-modal .modal-panel.detail-sheet-panel {
      transition: none;
    }

    #detailModal.news-detail-sheet-modal .modal-panel.detail-sheet-panel,
    #detailModal.hot-money-detail-sheet-modal .modal-panel.detail-sheet-panel,
    #detailModal.market-tech-sector-sheet-modal .modal-panel.detail-sheet-panel,
    #detailModal.market-tech-breadth-sheet-modal .modal-panel.detail-sheet-panel,
    #detailModal.market-tech-strong-sheet-modal .modal-panel.detail-sheet-panel,
    #detailModal.market-tech-hot-sheet-modal .modal-panel.detail-sheet-panel,
    #detailModal.market-tech-elastic-sheet-modal .modal-panel.detail-sheet-panel,
    #detailModal.market-tech-turnover-sheet-modal .modal-panel.detail-sheet-panel,
    #detailModal.market-tech-action-sheet-modal .modal-panel.detail-sheet-panel {
      transform: none;
      will-change: auto;
    }
  }

  #detailModal.detail-sheet-modal .detail-sheet-head {
    padding-top: calc(12px + var(--safe-top));
    padding-left: calc(20px + var(--safe-left));
    padding-right: calc(20px + var(--safe-right));
  }

  #detailModal.detail-sheet-modal .modal-body.stock-detail-body,
  #detailModal.detail-sheet-modal .modal-body.sector-detail-body,
  #detailModal.detail-sheet-modal .modal-body.news-detail-body,
  #detailModal.detail-sheet-modal .modal-body.hot-money-detail-body {
    background: #fff;
  }

  #detailModal.detail-sheet-modal .modal-body.news-detail-body {
    padding: 0;
  }

  #detailModal.detail-sheet-modal .modal-body.hot-money-detail-body,
  #detailModal.detail-sheet-modal .modal-body.market-tech-detail-body {
    padding: 0;
    background: #f7f8fa;
  }

  #detailModal.detail-sheet-modal .modal-body.stock-detail-body,
  #detailModal.detail-sheet-modal .modal-body.sector-detail-body {
    overflow: hidden;
  }

  #detailModal.market-tech-breadth-sheet-modal.detail-sheet-modal .modal-body.market-tech-detail-body,
  #detailModal.market-tech-strong-sheet-modal.detail-sheet-modal .modal-body.market-tech-detail-body,
  #detailModal.market-tech-hot-sheet-modal.detail-sheet-modal .modal-body.market-tech-detail-body,
  #detailModal.market-tech-elastic-sheet-modal.detail-sheet-modal .modal-body.market-tech-detail-body,
  #detailModal.market-tech-turnover-sheet-modal.detail-sheet-modal .modal-body.market-tech-detail-body,
  #detailModal.market-tech-action-sheet-modal.detail-sheet-modal .modal-body.market-tech-detail-body {
    background: #fff;
  }

  #detailModal.detail-sheet-modal .detail-sheet-footer {
    padding-top: 12px;
    padding-left: calc(12px + var(--safe-left));
    padding-right: calc(12px + var(--safe-right));
    padding-bottom: calc(16px + var(--safe-bottom));
  }

  #detailModal.detail-sheet-modal .detail-sheet-dismiss,
  #detailModal.detail-sheet-modal .detail-sheet-primary {
    min-height: var(--mobile-touch-min);
  }

  #detailModal.detail-sheet-modal .stock-detail-tabs,
  #detailModal.detail-sheet-modal .sector-detail-tabs {
    position: static;
    gap: 4px;
    padding: 12px 8px;
    border: 0;
    border-radius: 0;
    background: #fff;
    scrollbar-width: none;
  }

  #detailModal.stock-detail-sheet-modal .stock-detail-tabs {
    padding: 12px 12px;
    scroll-padding-inline: 12px;
  }

  #detailModal.sector-detail-sheet-modal .sector-detail-tabs {
    display: flex;
    flex-wrap: nowrap;
    width: 100%;
    gap: 4px;
    padding: 12px 12px 8px;
    overflow-x: hidden;
    overflow-y: hidden;
  }

  #detailModal.stock-detail-sheet-modal .stock-detail-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
  }

  #detailModal.sector-detail-sheet-modal .sector-detail-tabs button {
    flex: 1 1 0;
    min-width: 0;
    padding: 5px 4px;
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  #detailModal.sector-detail-sheet-modal .sector-detail-panels {
    width: 100%;
    padding: 0;
    box-sizing: border-box;
  }

  #detailModal.sector-detail-sheet-modal .sector-detail-cninfo {
    padding: 0;
  }

  #detailModal.sector-detail-sheet-modal .sector-detail-basic-panel .detail-metric-strip {
    margin-top: 0;
    padding-left: 0;
    padding-right: 0;
  }

  #detailModal.sector-detail-sheet-modal .sector-detail-basic-panel .detail-trend-section,
  #detailModal.sector-detail-sheet-modal .sector-detail-trend {
    padding: 0;
  }

  #detailModal.sector-detail-sheet-modal .sector-detail-panel {
    width: 100%;
    padding: 0 12px 12px;
    box-sizing: border-box;
  }

  #detailModal.stock-detail-sheet-modal .stock-detail-panel:has(.stock-detail-basic-panel),
  #detailModal.stock-detail-sheet-modal .stock-detail-panel:not(:has(.stock-detail-basic-panel)) {
    padding: 0 12px 12px;
  }

  #detailModal.stock-detail-sheet-modal .stock-detail-basic-panel .detail-metric-strip {
    margin-top: 0;
  }

  #detailModal.stock-detail-sheet-modal .stock-detail-basic-panel .detail-trend-section,
  #detailModal.stock-detail-sheet-modal .stock-detail-trend {
    padding: 0;
    background: transparent;
    border-radius: 0;
  }

  #detailModal.stock-detail-sheet-modal .stock-detail-trend .stock-chart-mount {
    margin-inline: 0;
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 960 / 640;
    border: 0;
    border-radius: 0;
    background: transparent;
  }

  #detailModal.detail-sheet-modal .stock-detail-tabs::-webkit-scrollbar,
  #detailModal.detail-sheet-modal .sector-detail-tabs::-webkit-scrollbar {
    display: none;
  }

  #detailModal.detail-sheet-modal .stock-detail-tabs button {
    flex: 0 0 auto;
    min-width: max-content;
    max-width: none;
    min-height: 32px;
    padding: 5px 16px;
    border: 0;
    border-radius: 20px;
    background: #f2f3f5;
    color: #4e5969;
    font-size: 14px;
    font-weight: 400;
    overflow: visible;
    text-overflow: unset;
    white-space: nowrap;
  }

  #detailModal.sector-detail-sheet-modal .sector-detail-tabs button {
    min-height: 32px;
    padding: 5px 4px;
    border: 0;
    border-radius: 20px;
    background: #f2f3f5;
    color: #4e5969;
    font-size: 13px;
    font-weight: 400;
  }

  #detailModal.detail-sheet-modal .stock-detail-tabs button.active {
    background: #165dff;
    color: #fff;
  }

  #detailModal.sector-detail-sheet-modal .sector-detail-tabs button.active {
    background: #165dff;
    color: #fff;
    font-weight: 500;
  }

  #detailModal.detail-sheet-modal .stock-detail-cninfo,
  #detailModal.detail-sheet-modal .sector-detail-cninfo {
    gap: 0;
  }

  #detailModal.detail-sheet-modal .stock-detail-panel {
    padding: 0 8px 8px;
  }

  #detailModal.stock-detail-sheet-modal .stock-detail-panel:has(.stock-detail-basic-panel),
  #detailModal.stock-detail-sheet-modal .stock-detail-panel:not(:has(.stock-detail-basic-panel)) {
    padding: 0 12px 12px;
  }

  #detailModal.detail-sheet-modal .cninfo-subsection {
    border: 0;
    border-radius: 0;
    background: transparent;
    padding: 0;
    margin: 0;
  }

  #detailModal.detail-sheet-modal .cninfo-subsection-head {
    margin: 8px 0 4px;
  }

  #detailModal.detail-sheet-modal .cninfo-subsection-head h3 {
    font-size: 14px;
    font-weight: 500;
    color: #1d2129;
  }

  #detailModal.detail-sheet-modal .cninfo-subsection-head span {
    display: none;
  }

  #detailModal.detail-sheet-modal .cninfo-profile-hero {
    display: none;
  }

  #detailModal.detail-sheet-modal .cninfo-info-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px 4px;
    border: 0;
    background: transparent;
    padding: 0;
  }

  #detailModal.detail-sheet-modal .cninfo-info-grid > div {
    display: flex;
    flex-direction: column-reverse;
    align-items: center;
    justify-content: center;
    gap: 4px;
    min-width: 0;
    padding: 0;
    border: 0;
    background: transparent;
    text-align: center;
  }

  #detailModal.detail-sheet-modal .cninfo-info-grid dt {
    margin: 0;
    font-size: 12px;
    font-weight: 400;
    color: #4e5969;
  }

  #detailModal.detail-sheet-modal .cninfo-info-grid dd {
    margin: 0;
    font-size: 12px;
    font-weight: 500;
    color: #1d2129;
    word-break: break-word;
  }

  #detailModal.detail-sheet-modal .cninfo-info-grid dd .cninfo-break-text,
  #detailModal.detail-sheet-modal .cninfo-info-grid dd .cninfo-break-link {
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
    color: inherit;
  }

  #detailModal.detail-sheet-modal .cninfo-table-wrap {
    border: 0;
    border-radius: 0;
    overflow: visible;
  }

  #detailModal.detail-sheet-modal .cninfo-table thead {
    display: none;
  }

  #detailModal.detail-sheet-modal .cninfo-table tbody tr {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 4px;
    padding: 8px 0;
    border-bottom: 1px solid #f2f3f5;
  }

  #detailModal.detail-sheet-modal .cninfo-table tbody td {
    display: flex;
    flex-direction: column-reverse;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 0;
    border: 0;
    text-align: center;
    font-size: 12px;
    font-weight: 500;
    color: #1d2129;
    background: transparent;
  }

  #detailModal.detail-sheet-modal .cninfo-table tbody td::before {
    content: attr(data-label);
    font-size: 12px;
    font-weight: 400;
    color: #4e5969;
  }

  #detailModal.detail-sheet-modal .cninfo-market-panel .cninfo-subsection-head {
    display: none;
  }

  #detailModal.detail-sheet-modal .detail-trend-section .cninfo-market-panel {
    padding: 0;
    border: 0;
    background: transparent;
  }

  #detailModal.detail-sheet-modal .supply-chain {
    gap: 8px;
  }

  #detailModal.detail-sheet-modal .supply-sector {
    padding: 8px 0;
    border-bottom: 1px solid #f2f3f5;
  }

  #detailModal.detail-sheet-modal .mini-list.related-list {
    gap: 0;
  }

  #detailModal.detail-sheet-modal .mini-row.related-row {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr) minmax(0, 0.9fr) minmax(0, 0.9fr);
    gap: 4px;
    padding: 8px 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    text-align: center;
  }

  #detailModal.detail-sheet-modal .mini-row.related-row .related-main {
    align-items: center;
    padding-right: 4px;
    border-right: 1px solid #f2f3f5;
  }

  #detailModal.detail-sheet-modal .mini-row.related-row .related-main small {
    display: block;
    font-size: 12px;
    color: #4e5969;
  }

  #detailModal.detail-sheet-modal .mini-row.related-row > em {
    flex-direction: column;
    font-size: 16px;
    font-style: normal;
    font-weight: 500;
  }

  #detailModal.detail-sheet-modal .mini-row.related-row > em::after {
    content: "涨跌幅";
    font-size: 12px;
    font-weight: 400;
    color: #4e5969;
  }

  .modal-head {
    padding-top: calc(14px + var(--safe-top));
    padding-left: calc(14px + var(--safe-left));
    padding-right: calc(14px + var(--safe-right));
    gap: 10px;
  }

  .modal-head > button,
  .modal-head .secondary {
    min-height: var(--mobile-touch-min);
    min-width: var(--mobile-touch-min);
    padding: 10px 14px;
    font-size: 14px;
  }

  .modal-body {
    padding-left: calc(12px + var(--safe-left));
    padding-right: calc(12px + var(--safe-right));
    padding-bottom: calc(12px + var(--safe-bottom));
  }

  .super-analysis-head-toolbar {
    width: 100%;
    justify-content: flex-start;
    gap: 6px;
  }

  .super-analysis-head-toolbar button.secondary {
    min-height: var(--mobile-touch-min);
    flex: 1 1 auto;
    min-width: 0;
    padding: 8px 10px;
    font-size: 12px;
  }

  .super-analysis-send-inline {
    min-height: var(--mobile-touch-min);
    min-width: 64px;
  }

  .super-analysis-input,
  .super-analysis-input::placeholder {
    font-size: 16px !important;
  }

  .super-analysis-input {
    touch-action: manipulation;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }

  .announcement-popup-panel {
    left: 50%;
    top: 50%;
    right: auto;
    bottom: auto;
    transform: translate(-50%, -50%);
    width: min(520px, calc(100% - 32px));
    max-width: calc(100% - 32px);
    max-height: min(78dvh, calc(100dvh - var(--safe-top) - var(--safe-bottom) - 32px));
    border-radius: 12px;
    padding-bottom: 0;
    box-shadow: 0 18px 48px rgba(16, 24, 40, 0.22);
  }

  .announcement-popup-head {
    padding: 16px 16px 10px;
  }

  .announcement-popup-body {
    padding: 14px 16px;
  }

  .announcement-popup-actions {
    padding: 12px 16px 16px;
  }

  .announcement-popup-actions button {
    min-height: var(--mobile-touch-min);
    flex: 1 1 0;
  }

  .site-footer {
    padding-bottom: calc(8px + var(--safe-bottom));
  }

  body.mobile-search-open {
    touch-action: none;
  }

  body.mobile-search-open::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 28;
    background: rgba(20, 23, 31, 0.42);
    pointer-events: none;
  }

  body:not(.mobile-search-sheet-open) .search-dropdown:not(:empty) {
    position: fixed !important;
    left: calc(12px + var(--safe-left)) !important;
    right: calc(12px + var(--safe-right)) !important;
    bottom: calc(12px + var(--safe-bottom)) !important;
    top: calc(var(--mobile-main-offset, 120px) + 8px) !important;
    z-index: 32 !important;
    max-height: none !important;
    height: auto;
    border-radius: 14px;
    box-shadow: 0 18px 48px rgba(16, 24, 40, 0.22);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  .search-dropdown .mini-row button,
  .search-dropdown .related-row button,
  .search-history-chip button {
    min-height: 28px;
    padding: 5px 8px;
  }

  .feedback-toast:not(.strategy-sell-toast) {
    top: calc(12px + env(safe-area-inset-top, 0px));
    left: calc(12px + var(--safe-left));
    right: calc(12px + var(--safe-right));
    bottom: auto;
    max-width: none;
    width: auto;
    text-align: center;
  }

  body.feedback-sheet-open .niepan-global-toast-host {
    top: calc(12px + env(safe-area-inset-top, 0px));
  }

  body:not(.chat-room-mobile-open):not(.chat-room-open):not(.feedback-sheet-open):not(.feedback-image-lightbox-open) .feedback-image-lightbox:not(.feedback-image-lightbox--over-chat),
  .admin-feedback-image-lightbox {
    display: flex;
    align-items: center;
    justify-content: center;
    padding:
      max(16px, env(safe-area-inset-top, 0px))
      16px
      max(16px, env(safe-area-inset-bottom, 0px));
  }

  body:not(.chat-room-mobile-open):not(.chat-room-open):not(.feedback-sheet-open):not(.feedback-image-lightbox-open) .feedback-image-lightbox:not(.feedback-image-lightbox--over-chat) .feedback-image-lightbox-panel,
  .admin-feedback-image-lightbox-panel {
    width: min(100%, 360px);
    max-width: calc(100vw - 32px);
    max-height: min(78dvh, 560px);
    margin: auto;
    border-radius: 12px;
    box-shadow: 0 16px 40px rgba(15, 23, 42, 0.28);
  }

  body:not(.chat-room-mobile-open):not(.chat-room-open):not(.feedback-sheet-open):not(.feedback-image-lightbox-open) .feedback-image-lightbox:not(.feedback-image-lightbox--over-chat) .feedback-image-lightbox-body,
  .admin-feedback-image-lightbox-body {
    min-height: 200px;
    padding: 12px 44px;
  }

  body:not(.chat-room-mobile-open):not(.chat-room-open):not(.feedback-sheet-open):not(.feedback-image-lightbox-open) .feedback-image-lightbox:not(.feedback-image-lightbox--over-chat) .feedback-image-lightbox-body img,
  .admin-feedback-image-lightbox-body img {
    max-height: calc(min(78dvh, 560px) - 128px);
  }

  body:not(.chat-room-mobile-open):not(.chat-room-open):not(.feedback-sheet-open):not(.feedback-image-lightbox-open) .feedback-image-lightbox:not(.feedback-image-lightbox--over-chat) .feedback-image-lightbox-footer {
    display: block;
    padding: 12px 16px;
    border-top: 1px solid #e5e6eb;
    background: #fff;
  }

  .feedback-image-lightbox-footer .detail-sheet-dismiss {
    width: 100%;
    height: 44px;
    min-height: 44px;
    padding: 0 16px;
    border: 1px solid #e5e6eb;
    border-radius: 4px;
    background: #f7f8fa;
    color: #1d2129;
    font-size: 14px;
    font-weight: 400;
    line-height: 22px;
    text-align: center;
    cursor: pointer;
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
  }

  .feedback-toast.strategy-sell-toast {
    bottom: calc(72px + var(--m-nav-h, 56px) + env(safe-area-inset-bottom, 0px));
  }
}

@media (max-width: 480px) {
  :root {
    --mobile-table-min: 580px;
  }

  h1 {
    font-size: 17px;
  }

  .brand-logo {
    width: 40px;
    height: 40px;
    flex-basis: 40px;
  }

  #announcementOpenBtn,
  #feedbackOpenBtn {
    padding: 8px 8px !important;
    font-size: 11px !important;
  }

  .status-band > div {
    flex-basis: min(88vw, 280px);
  }
}

/* === Figma 手机首页 + 底部导航（≤760px）=== */
@media (max-width: 760px) {
  .desktop-only {
    display: none !important;
  }

  .mobile-only {
    display: block;
  }

  .mobile-only.mobile-topbar-row {
    display: grid !important;
  }

  .mobile-only.mobile-topbar-slot-start,
  .mobile-only.mobile-topbar-actions {
    display: flex !important;
  }

  .mobile-only.mobile-topbar-center {
    display: flex !important;
  }

  .mobile-only[hidden] {
    display: none !important;
  }

  html:has(body.niepan-app),
  body.niepan-app {
    height: 100%;
    overflow-x: hidden;
    overflow-y: hidden;
  }

  body.niepan-app {
    --m-nav-h: calc(56px + env(safe-area-inset-bottom, 0px));
    --m-header-bg: #202638;
    --m-header-top-gap: 16px;
    background: #f7f8fa;
    display: flex;
    flex-direction: column;
    min-height: 100dvh;
  }

  .topbar {
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    background: var(--m-header-bg) !important;
    border: 0 !important;
    box-shadow: none !important;
    z-index: 20;
  }

  .mobile-topbar-row {
    display: grid !important;
    grid-template-columns: 44px minmax(0, 1fr) 100px;
    align-items: center;
    width: 100%;
    box-sizing: border-box;
    padding: 0 0 12px;
    background: var(--m-header-bg);
    border: 0;
    box-shadow: none;
  }

  .mobile-topbar-slot-start {
    grid-column: 1;
    justify-self: start;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
  }

  #mobileSearchOpenBtn.mobile-icon-btn {
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
    margin: 0;
    padding: 0;
    flex: 0 0 44px;
    box-sizing: border-box;
  }

  .mobile-topbar-center {
    grid-column: 2;
    justify-self: center;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-width: 0;
    max-width: 100%;
  }

  .mobile-topbar-home-slot {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-width: 0;
    max-width: 100%;
  }

  .mobile-topbar-logo {
    display: block;
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
    object-fit: contain;
  }

  .mobile-app-name {
    color: #fff;
    font-size: 18px;
    font-weight: 500;
    line-height: 26px;
    white-space: nowrap;
    flex: 0 0 auto;
  }

  .mobile-topbar-center .market-session-inline {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    align-self: center;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    line-height: 26px;
    height: 26px;
  }

  .mobile-topbar-center .market-session-inline strong {
    color: #ff7d00;
    font-size: 12px;
    font-weight: 400;
    line-height: 26px;
    white-space: nowrap;
  }

  .mobile-topbar-center .market-session-inline small {
    display: none;
  }

  .mobile-icon-img {
    display: block;
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
    pointer-events: none;
  }

  .mobile-topbar-actions {
    grid-column: 3;
    justify-self: end;
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    width: 100px;
    height: 44px;
    margin: 0;
    padding: 0;
    flex: 0 0 100px;
    box-sizing: border-box;
  }

  .mobile-topbar-actions .feedback-top-btn-wrap {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .mobile-topbar-actions .mobile-icon-btn {
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
    max-width: 44px;
    max-height: 44px;
    padding: 0;
    flex: 0 0 44px;
    box-sizing: border-box;
  }

  .mobile-icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #fff;
    cursor: pointer;
    box-sizing: border-box;
    flex: 0 0 auto;
  }

  .topbar:has(.mobile-topbar-row) #mobileSearchOpenBtn,
  .topbar:has(.mobile-topbar-row) #refreshBtn {
    -webkit-tap-highlight-color: transparent;
  }

  .topbar:has(.mobile-topbar-row) .mobile-icon-btn:active {
    background: rgba(255, 255, 255, 0.08);
    opacity: 1;
    transform: none;
  }

  .topbar:has(.mobile-topbar-row) #mobileSearchOpenBtn:hover,
  .topbar:has(.mobile-topbar-row) #mobileSearchOpenBtn:active,
  .topbar:has(.mobile-topbar-row) #mobileSearchOpenBtn:focus,
  .topbar:has(.mobile-topbar-row) #mobileSearchOpenBtn:focus-visible,
  .topbar:has(.mobile-topbar-row) #refreshBtn:hover,
  .topbar:has(.mobile-topbar-row) #refreshBtn:active,
  .topbar:has(.mobile-topbar-row) #refreshBtn:focus,
  .topbar:has(.mobile-topbar-row) #refreshBtn:focus-visible {
    background: transparent !important;
    opacity: 1;
    outline: none;
    transform: none;
  }

  #refreshBtn.is-refreshing .mobile-icon-img {
    animation: niepan-refresh-spin 0.75s linear infinite;
  }

  #refreshBtn.is-refreshing {
    opacity: 0.72;
    cursor: wait;
  }

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

  .major-indices-strip.mobile-hero-indices {
    display: block !important;
    position: relative !important;
    box-sizing: border-box;
    width: 100vw !important;
    max-width: 100vw !important;
    min-width: 0 !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    padding: 10px 0 16px !important;
    background: var(--m-header-bg) !important;
    --major-indices-fade: var(--m-header-bg);
    --major-indices-fade-w: 20px;
  }

  .major-indices-strip.mobile-hero-indices:has(.major-indices-track.is-animated) {
    overflow: hidden !important;
    overflow-x: hidden !important;
    overflow-y: hidden !important;
  }

  .major-indices-strip.mobile-hero-indices:has(.major-indices-track):not(:has(.major-indices-track.is-animated)) {
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    touch-action: manipulation;
    scrollbar-width: none;
  }

  .major-indices-strip.mobile-hero-indices:has(.major-indices-track)::before {
    content: "" !important;
    display: block !important;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100% !important;
    z-index: 2;
    pointer-events: none;
    background: linear-gradient(
      90deg,
      var(--major-indices-fade) 0,
      color-mix(in srgb, var(--major-indices-fade) 70%, transparent) calc(var(--major-indices-fade-w) * 0.55),
      transparent var(--major-indices-fade-w),
      transparent calc(100% - var(--major-indices-fade-w)),
      color-mix(in srgb, var(--major-indices-fade) 70%, transparent) calc(100% - var(--major-indices-fade-w) * 0.55),
      var(--major-indices-fade) 100%
    ) !important;
  }

  .major-indices-strip.mobile-hero-indices:has(.major-indices-track)::after {
    display: none !important;
    content: none !important;
  }

  .major-indices-strip.mobile-hero-indices:not(:has(.major-indices-track)) {
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    touch-action: manipulation;
    scrollbar-width: none;
  }

  .major-indices-strip.mobile-hero-indices::-webkit-scrollbar {
    display: none;
  }

  .major-indices-strip.mobile-hero-indices .major-indices-track {
    display: inline-flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: stretch;
    gap: 8px;
    width: max-content;
    min-width: 100%;
    box-sizing: border-box;
  }

  .major-indices-strip.mobile-hero-indices .major-indices-track:not(.is-animated) {
    width: 100% !important;
    justify-content: stretch;
  }

  .major-indices-strip.mobile-hero-indices .major-indices-set {
    display: inline-flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: stretch;
    flex: 0 0 auto;
    gap: 8px;
  }

  .major-indices-strip.mobile-hero-indices .major-indices-track:not(.is-animated) .major-indices-set {
    flex: 1 1 0;
    width: 100%;
    min-width: 0;
    justify-content: space-evenly;
  }

  .major-indices-strip.mobile-hero-indices .major-indices-track.is-animated {
    width: max-content !important;
    min-width: 100% !important;
    will-change: transform;
    animation: majorIndicesMarquee 18s linear infinite !important;
  }

  @media (hover: hover) and (pointer: fine) {
    .major-indices-strip.mobile-hero-indices:hover .major-indices-track.is-animated {
      animation-play-state: paused;
    }
  }

  .major-indices-strip.mobile-hero-indices > .major-index-chip,
  .major-indices-strip.mobile-hero-indices .major-indices-track .major-index-chip,
  .major-indices-strip.mobile-hero-indices .major-indices-set > .major-index-chip {
    flex: 0 0 auto !important;
    flex-shrink: 0 !important;
    width: auto;
    min-width: 108px;
    padding: 0;
    text-align: center;
    align-items: center;
    background: transparent !important;
    border: none !important;
    border-left: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  .major-indices-strip.mobile-hero-indices .major-index-chip::before,
  .major-indices-strip.mobile-hero-indices .major-index-chip::after {
    display: none !important;
  }

  .major-indices-strip.mobile-hero-indices .major-index-chip:first-child,
  .major-indices-strip.mobile-hero-indices .major-index-chip:last-child {
    padding-left: 0;
    padding-right: 0;
  }

  .major-indices-strip.mobile-hero-indices .major-index-name {
    color: #c9cdd4;
    font-size: 12px;
    width: 100%;
    text-align: center;
  }

  .major-indices-strip.mobile-hero-indices .major-index-price {
    font-size: 16px;
    font-weight: 500;
    color: #fff;
  }

  .major-indices-strip.mobile-hero-indices .major-index-chip.up .major-index-price {
    color: #f53f3f;
  }

  .major-indices-strip.mobile-hero-indices .major-index-chip.down .major-index-price {
    color: #009a29;
  }

  .major-indices-strip.mobile-hero-indices .major-index-amt,
  .major-indices-strip.mobile-hero-indices .major-index-pct {
    font-size: 12px;
  }

  .major-indices-strip.mobile-hero-indices .major-index-chip.up .major-index-amt,
  .major-indices-strip.mobile-hero-indices .major-index-chip.up .major-index-pct {
    color: #f53f3f;
  }

  .major-indices-strip.mobile-hero-indices .major-index-chip.down .major-index-amt,
  .major-indices-strip.mobile-hero-indices .major-index-chip.down .major-index-pct {
    color: #009a29;
  }

  html,
  body.niepan-app {
    touch-action: manipulation;
    overscroll-behavior-x: none;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }

  body.niepan-app .modal:not([hidden]),
  body.niepan-app .mobile-search-sheet:not([hidden]),
  body.niepan-app .mobile-gzh-modal:not([hidden]),
  body.niepan-app .topbar,
  body.niepan-app main,
  body.niepan-app .status-band,
  body.niepan-app #mobileMinePanel,
  body.niepan-app .mobile-bottom-nav,
  body.niepan-app .search-dropdown,
  body.niepan-app .detail-sheet-panel,
  body.niepan-app .modal-panel,
  body.niepan-app .modal-body,
  body.niepan-app .modal-backdrop,
  body.niepan-app [class*="drawer"],
  body.niepan-app [class*="sheet"],
  body.niepan-app [class*="-scroll"],
  body.niepan-app [class*="table-wrap"],
  body.niepan-app [class*="list"] {
    touch-action: manipulation;
    overscroll-behavior-x: none;
  }

  body.niepan-app input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="hidden"]):not([type="file"]),
  body.niepan-app textarea,
  body.niepan-app select {
    font-size: 16px !important;
    touch-action: manipulation;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }

  #appMain {
    flex: 1;
    min-height: 0;
    margin-top: 0 !important;
    height: auto !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding: 0 0 var(--m-nav-h) !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: none;
    touch-action: manipulation;
    scrollbar-width: none;
    -ms-overflow-style: none;
  }

  #appMain::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
  }

  /* 手机端：可滚动区域隐藏滚动条，保留触摸滑动 */
  #appMain * {
    scrollbar-width: none;
    -ms-overflow-style: none;
  }

  #appMain *::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
  }

  /* 弹层/抽屉在 #appMain 外，同样隐藏滚动条 */
  body.niepan-app .modal-panel,
  body.niepan-app .modal-panel * {
    scrollbar-width: none;
    -ms-overflow-style: none;
  }

  body.niepan-app .modal-panel::-webkit-scrollbar,
  body.niepan-app .modal-panel *::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
  }

  body.mobile-nav-home #appMain > :not(.status-band):not(#marketTabsSection):not(#searchBand):not(#mobileSearchSheet) {
    display: none !important;
  }

  body.mobile-nav-home #marketTabsSection .main-tabs {
    display: none !important;
  }

  body.mobile-nav-home #marketTabsSection .tab-panel:not(.mobile-home-stock-panel) {
    display: none !important;
  }

  body.mobile-nav-home #marketPanelStocks {
    display: block !important;
  }

  body.mobile-nav-home #marketPanelStocks[hidden] {
    display: block !important;
  }

  body.mobile-nav-home #marketTabsSection.market-tabs {
    margin-top: 0 !important;
    gap: 0 !important;
  }

  /* 首页：去掉点击/按压时的背景色块 */
  body.mobile-nav-home {
    -webkit-tap-highlight-color: transparent;
  }

  body.mobile-nav-home .market-tech-chip:hover,
  body.mobile-nav-home .market-tech-chip:active,
  body.mobile-nav-home .market-tech-chip:focus,
  body.mobile-nav-home .market-tech-chip:focus-visible,
  body.mobile-nav-home .mobile-market-tech-grid .market-tech-chip:hover,
  body.mobile-nav-home .mobile-market-tech-grid .market-tech-chip:active,
  body.mobile-nav-home .mobile-market-tech-grid .market-tech-chip:focus,
  body.mobile-nav-home .mobile-market-tech-grid .market-tech-chip:focus-visible {
    background: #f7f8fa !important;
    border-color: #f2f3f5 !important;
    transform: none;
    box-shadow: none;
    outline: none;
  }

  body.mobile-nav-home .mobile-pick-card:hover,
  body.mobile-nav-home .mobile-pick-card:active,
  body.mobile-nav-home .mobile-pick-card:focus,
  body.mobile-nav-home .mobile-pick-card:focus-visible,
  body.mobile-nav-home button.mobile-pick-card.clickable:hover,
  body.mobile-nav-home button.mobile-pick-card.clickable:active,
  body.mobile-nav-home button.mobile-pick-card.clickable:focus,
  body.mobile-nav-home button.mobile-pick-card.clickable:focus-visible {
    background: #f7f8fa !important;
    border-color: #f2f3f5 !important;
    outline: none;
  }

  body.mobile-nav-home .mobile-carousel-dot:hover,
  body.mobile-nav-home .mobile-carousel-dot:active,
  body.mobile-nav-home .mobile-carousel-dot:focus {
    background: #e5e6eb;
    outline: none;
  }

  body.mobile-nav-home .mobile-carousel-dot.is-active:hover,
  body.mobile-nav-home .mobile-carousel-dot.is-active:active {
    background: #165dff;
  }

  body.mobile-nav-home .topbar .mobile-icon-btn:hover,
  body.mobile-nav-home .topbar .mobile-icon-btn:active,
  body.mobile-nav-home .topbar .mobile-icon-btn:focus,
  body.mobile-nav-home .topbar .mobile-icon-btn:focus-visible {
    background: transparent !important;
    opacity: 1;
    outline: none;
  }

  body.mobile-nav-home .mobile-home-stock-panel .clickable-row:hover td,
  body.mobile-nav-home .mobile-home-stock-panel .clickable-row:active td,
  body.mobile-nav-home .mobile-home-stock-panel .mobile-home-stock-table tbody tr:active td {
    background-color: #fff !important;
  }

  body.mobile-nav-home .mobile-home-stock-panel .mobile-stock-position-btn:hover,
  body.mobile-nav-home .mobile-home-stock-panel .mobile-stock-position-btn:active,
  body.mobile-nav-home .mobile-home-stock-panel .mobile-stock-position-btn:focus {
    background: #e8f3ff !important;
    border-color: #bedaff !important;
    outline: none;
  }

  body.mobile-nav-home .mobile-stock-more-btn:hover,
  body.mobile-nav-home .mobile-stock-more-btn:active,
  body.mobile-nav-home .mobile-stock-more-btn:focus {
    background: transparent !important;
    opacity: 1;
    outline: none;
  }

  body.mobile-nav-home .mobile-monitor-btn:hover,
  body.mobile-nav-home .mobile-monitor-btn:active,
  body.mobile-nav-home .mobile-monitor-btn:focus {
    background: #e8f3ff !important;
    border-color: #bedaff !important;
    outline: none;
  }

  body.mobile-nav-home .mobile-monitor-btn.is-super-review:hover,
  body.mobile-nav-home .mobile-monitor-btn.is-super-review:active,
  body.mobile-nav-home .mobile-monitor-btn.is-super-review:focus {
    background: #165dff !important;
    border-color: #165dff !important;
    color: #fff !important;
  }

  body.mobile-nav-discover #appMain > :not(#marketTabsSection):not(#mobileSearchSheet):not(#searchBand) {
    display: none !important;
  }

  body.mobile-nav-discover #marketTabsSection {
    display: block !important;
  }

  body.mobile-nav-discover #marketPanelStocks {
    display: none !important;
  }

  body.mobile-nav-discover #marketTabsSection .main-tabs {
    display: none !important;
  }

  body.mobile-nav-discover .major-indices-strip.mobile-hero-indices {
    display: none !important;
  }

  body:not(.mobile-nav-home) .mobile-topbar-home-slot,
  body.mobile-nav-discover .mobile-topbar-home-slot {
    display: none !important;
  }

  body.mobile-nav-discover .topbar:has(.mobile-topbar-row) .mobile-topbar-row {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.mobile-nav-discover .topbar:has(.mobile-topbar-row) .mobile-topbar-slot-start,
  body.mobile-nav-discover .topbar:has(.mobile-topbar-row) .mobile-topbar-actions {
    display: none !important;
  }

  body.mobile-nav-discover .topbar:has(.mobile-topbar-row) .mobile-topbar-center {
    grid-column: 1 / -1 !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    justify-self: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0;
    margin: 0;
    overflow: visible;
  }

  body.mobile-nav-discover #mobileDiscoverTabs.mobile-discover-tabs {
    position: relative;
    display: flex !important;
    flex: 1 1 auto !important;
    width: 100% !important;
    max-width: 100%;
    margin: 0 !important;
    padding: 0 6px;
    overflow: visible;
    justify-content: space-evenly !important;
    gap: 0;
  }

  body.mobile-nav-discover #mobileDiscoverTabs .mobile-discover-main-tabs-thumb,
  .mobile-discover-tabs .mobile-discover-main-tabs-thumb {
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: 0;
    width: 10px;
    height: 2px;
    border-radius: 1px;
    background: #165dff;
    pointer-events: none;
    transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform;
  }

  body.mobile-nav-discover #mobileDiscoverTabs.mobile-discover-tabs button {
    position: relative;
    z-index: 1;
    flex: 0 1 auto;
    min-width: 0;
    padding: 0 2px 6px;
    text-align: center;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    -webkit-tap-highlight-color: transparent;
  }

  body.mobile-nav-discover #mobileDiscoverTabs.mobile-discover-tabs button:hover,
  body.mobile-nav-discover #mobileDiscoverTabs.mobile-discover-tabs button:active,
  body.mobile-nav-discover #mobileDiscoverTabs.mobile-discover-tabs button:focus,
  body.mobile-nav-discover #mobileDiscoverTabs.mobile-discover-tabs button:focus-visible {
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    outline: none;
  }

  body.mobile-nav-discover #mobileDiscoverTabs.mobile-discover-tabs button.active:hover,
  body.mobile-nav-discover #mobileDiscoverTabs.mobile-discover-tabs button.active:active,
  body.mobile-nav-discover #mobileDiscoverTabs.mobile-discover-tabs button.active:focus {
    color: #165dff;
    background: transparent !important;
  }

  body.mobile-nav-discover .mobile-topbar-home-slot {
    display: none !important;
  }

  body.mobile-nav-home #mobileDiscoverTabs.mobile-discover-tabs,
  body.mobile-nav-strategy #mobileDiscoverTabs.mobile-discover-tabs,
  body.mobile-nav-mine #mobileDiscoverTabs.mobile-discover-tabs,
  body.mobile-nav-ai #mobileDiscoverTabs.mobile-discover-tabs {
    display: none !important;
  }

  body.mobile-nav-strategy #mobileStrategyTabs.mobile-discover-tabs {
    position: relative;
    display: flex !important;
    flex: 1 1 auto !important;
    width: 100% !important;
    max-width: 100%;
    margin: 0 !important;
    padding: 0 6px;
    overflow: visible;
    justify-content: space-evenly !important;
    gap: 0;
  }

  body.mobile-nav-strategy #mobileStrategyTabs.mobile-discover-tabs::-webkit-scrollbar {
    display: none;
  }

  body.mobile-nav-strategy #mobileStrategyTabs .mobile-discover-main-tabs-thumb {
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: 0;
    width: 10px;
    height: 2px;
    border-radius: 1px;
    background: #165dff;
    pointer-events: none;
    transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform;
  }

  body.mobile-nav-strategy #mobileStrategyTabs.mobile-discover-tabs button {
    position: relative;
    z-index: 1;
    flex: 0 1 auto;
    min-width: 0;
    padding: 0 2px 6px;
    text-align: center;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    -webkit-tap-highlight-color: transparent;
    font-size: 18px;
    font-weight: 500;
    line-height: 26px;
  }

  body.mobile-nav-strategy #mobileStrategyTabs.mobile-discover-tabs button:hover,
  body.mobile-nav-strategy #mobileStrategyTabs.mobile-discover-tabs button:active,
  body.mobile-nav-strategy #mobileStrategyTabs.mobile-discover-tabs button:focus,
  body.mobile-nav-strategy #mobileStrategyTabs.mobile-discover-tabs button:focus-visible {
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    outline: none;
  }

  body.mobile-nav-strategy #mobileStrategyTabs.mobile-discover-tabs button.active:hover,
  body.mobile-nav-strategy #mobileStrategyTabs.mobile-discover-tabs button.active:active,
  body.mobile-nav-strategy #mobileStrategyTabs.mobile-discover-tabs button.active:focus {
    color: #165dff;
    background: transparent !important;
  }

  body.mobile-nav-home #mobileStrategyTabs.mobile-discover-tabs,
  body.mobile-nav-discover #mobileStrategyTabs.mobile-discover-tabs,
  body.mobile-nav-mine #mobileStrategyTabs.mobile-discover-tabs,
  body.mobile-nav-ai #mobileStrategyTabs.mobile-discover-tabs {
    display: none !important;
  }

  .mobile-discover-tabs {
    display: none;
    align-items: center;
    justify-content: center;
    gap: 20px;
    min-width: 0;
    max-width: 100%;
    margin: 0 auto;
    padding: 0;
  }

  .mobile-discover-tabs button {
    position: relative;
    flex: 0 0 auto;
    margin: 0;
    padding: 0 0 6px;
    border: 0 !important;
    background: transparent !important;
    color: #86909c;
    font-size: 18px;
    font-weight: 500;
    line-height: 26px;
    white-space: nowrap;
    box-shadow: none !important;
    -webkit-tap-highlight-color: transparent;
    cursor: pointer;
  }

  .mobile-discover-tabs button:hover,
  .mobile-discover-tabs button:active,
  .mobile-discover-tabs button:focus,
  .mobile-discover-tabs button:focus-visible {
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    outline: none;
  }

  .mobile-discover-tabs button.active {
    color: #165dff;
    background: transparent !important;
  }

  .mobile-discover-tabs button.active:hover,
  .mobile-discover-tabs button.active:active,
  .mobile-discover-tabs button.active:focus {
    color: #165dff;
    background: transparent !important;
  }

  .mobile-discover-tabs button.active::after {
    display: none;
  }

  @media (prefers-reduced-motion: reduce) {
    body.mobile-nav-discover #mobileDiscoverTabs .mobile-discover-main-tabs-thumb,
    .mobile-discover-tabs .mobile-discover-main-tabs-thumb,
    body.mobile-nav-strategy #mobileStrategyTabs .mobile-discover-main-tabs-thumb {
      transition: none;
    }
  }

  body.mobile-nav-discover #marketTabsSection.mobile-discover-shell {
    margin: 0 !important;
    padding: 0 !important;
    gap: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0;
    box-sizing: border-box;
    background: #fff;
  }

  body.mobile-nav-discover #appMain {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box;
  }

  body.mobile-nav-discover #marketTabsSection,
  body.mobile-nav-discover #marketTabsSection .mobile-discover-panel,
  body.mobile-nav-discover #marketTabsSection .mobile-discover-panel.is-active,
  body.mobile-nav-discover #marketTabsSection .mobile-discover-sectors-view,
  body.mobile-nav-discover #marketTabsSection .mobile-discover-sector-panel,
  body.mobile-nav-discover #marketTabsSection .panel.wide,
  body.mobile-nav-discover #marketTabsSection .hot-money-panel,
  body.mobile-nav-discover #marketTabsSection .main-flow-panel,
  body.mobile-nav-discover #marketTabsSection .news-section {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box;
  }

  body.mobile-nav-discover .mobile-discover-panel.is-active {
    display: block !important;
  }

  body.mobile-nav-discover #marketTabsSection.mobile-discover-slide-stage {
    position: relative;
    overflow: hidden;
  }

  body.mobile-nav-discover #marketTabsSection.mobile-discover-slide-stage .mobile-discover-panel.mobile-discover-slide-layer {
    display: block !important;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    width: 100%;
    max-width: 100%;
    margin: 0;
    z-index: 1;
    animation-duration: 0.28s;
    animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
    animation-fill-mode: forwards;
    will-change: transform, opacity;
    pointer-events: none;
  }

  body.mobile-nav-discover #marketTabsSection.mobile-discover-slide-stage .mobile-discover-panel.mobile-discover-slide-layer.mobile-discover-slide-enter-next,
  body.mobile-nav-discover #marketTabsSection.mobile-discover-slide-stage .mobile-discover-panel.mobile-discover-slide-layer.mobile-discover-slide-enter-prev {
    z-index: 2;
  }

  body.mobile-nav-discover #marketTabsSection.mobile-discover-slide-stage .mobile-discover-panel.mobile-discover-slide-enter-next {
    animation-name: mobileDiscoverSlideInFromRight;
  }

  body.mobile-nav-discover #marketTabsSection.mobile-discover-slide-stage .mobile-discover-panel.mobile-discover-slide-exit-next {
    animation-name: mobileDiscoverSlideOutToLeft;
  }

  body.mobile-nav-discover #marketTabsSection.mobile-discover-slide-stage .mobile-discover-panel.mobile-discover-slide-enter-prev {
    animation-name: mobileDiscoverSlideInFromLeft;
  }

  body.mobile-nav-discover #marketTabsSection.mobile-discover-slide-stage .mobile-discover-panel.mobile-discover-slide-exit-prev {
    animation-name: mobileDiscoverSlideOutToRight;
  }

  @keyframes mobileDiscoverSlideInFromRight {
    from {
      transform: translateX(100%);
      opacity: 0.88;
    }

    to {
      transform: translateX(0);
      opacity: 1;
    }
  }

  @keyframes mobileDiscoverSlideOutToLeft {
    from {
      transform: translateX(0);
      opacity: 1;
    }

    to {
      transform: translateX(-32%);
      opacity: 0.55;
    }
  }

  @keyframes mobileDiscoverSlideInFromLeft {
    from {
      transform: translateX(-100%);
      opacity: 0.88;
    }

    to {
      transform: translateX(0);
      opacity: 1;
    }
  }

  @keyframes mobileDiscoverSlideOutToRight {
    from {
      transform: translateX(0);
      opacity: 1;
    }

    to {
      transform: translateX(32%);
      opacity: 0.55;
    }
  }

  #appMain.mobile-shell-slide-enter-next {
    animation: mobileShellSlideInNext 0.26s cubic-bezier(0.22, 1, 0.36, 1) forwards;
  }

  #appMain.mobile-shell-slide-enter-prev {
    animation: mobileShellSlideInPrev 0.26s cubic-bezier(0.22, 1, 0.36, 1) forwards;
  }

  @keyframes mobileShellSlideInNext {
    from {
      transform: translateX(18%);
      opacity: 0.9;
    }

    to {
      transform: translateX(0);
      opacity: 1;
    }
  }

  @keyframes mobileShellSlideInPrev {
    from {
      transform: translateX(-18%);
      opacity: 0.9;
    }

    to {
      transform: translateX(0);
      opacity: 1;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    body.mobile-nav-discover #marketTabsSection.mobile-discover-slide-stage .mobile-discover-panel.mobile-discover-slide-layer,
    #appMain.mobile-shell-slide-enter-next,
    #appMain.mobile-shell-slide-enter-prev {
      animation: none !important;
    }
  }

  body.mobile-nav-discover .mobile-discover-sectors-view {
    display: block !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 0 !important;
  }

  body.mobile-nav-discover .mobile-discover-sector-stocks-panel {
    display: none !important;
  }

  body.mobile-nav-discover .mobile-discover-sectors-view,
  body.mobile-nav-discover #marketPanelSectors.mobile-discover-panel,
  body.mobile-nav-discover .mobile-discover-sector-panel {
    overflow: visible !important;
  }

  body.mobile-nav-discover .mobile-discover-sector-panel {
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: #fff;
  }

  body.mobile-nav-discover .mobile-discover-sector-head {
    display: none !important;
  }

  body.mobile-nav-discover .sector-day-meta,
  body.mobile-nav-discover #sectorDayMeta {
    display: none !important;
  }

  body.mobile-nav-discover .mobile-discover-day-tabs {
    position: relative;
    display: flex !important;
    align-items: stretch;
    width: 100%;
    max-width: 100%;
    min-height: 40px;
    box-sizing: border-box;
    margin: 0;
    padding: 3px;
    border: 0;
    border-radius: 6px;
    background: #f2f3f5;
    gap: 0;
    overflow: hidden;
  }

  body.mobile-nav-discover .mobile-discover-day-tabs-thumb {
    position: absolute;
    top: 3px;
    left: 0;
    z-index: 0;
    height: calc(100% - 6px);
    border-radius: 4px;
    background: #fff;
    box-shadow: none;
    pointer-events: none;
    transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1), width 0.28s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform, width;
  }

  body.mobile-nav-discover .mobile-discover-day-tabs button {
    position: relative;
    z-index: 2;
    flex: 1 1 0;
    min-width: 0;
    min-height: 34px;
    padding: 7px 8px;
    border: 0;
    border-radius: 4px;
    background: transparent !important;
    color: #4e5969;
    font-size: 14px;
    font-weight: 400;
    line-height: 20px;
    box-shadow: none !important;
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
    transition: color 0.2s ease;
  }

  body.mobile-nav-discover .mobile-discover-day-tabs button span {
    display: none !important;
  }

  body.mobile-nav-discover .mobile-discover-day-tabs button .mobile-discover-day-tab-label {
    display: block !important;
    margin: 0;
    font-size: inherit;
    line-height: inherit;
    font-weight: inherit;
    color: inherit;
    opacity: 1;
  }

  body.mobile-nav-discover .mobile-discover-day-tabs button:hover,
  body.mobile-nav-discover .mobile-discover-day-tabs button:active,
  body.mobile-nav-discover .mobile-discover-day-tabs button:focus,
  body.mobile-nav-discover .mobile-discover-day-tabs button:focus-visible {
    background: transparent !important;
    box-shadow: none !important;
    outline: none;
  }

  body.mobile-nav-discover .mobile-discover-day-tabs button.active {
    background: transparent !important;
    color: #165dff;
    font-weight: 500;
    box-shadow: none !important;
  }

  body.mobile-nav-discover .mobile-discover-day-tabs button + button {
    box-shadow: inset 1px 0 0 #e5e6eb;
  }

  @media (prefers-reduced-motion: reduce) {
    body.mobile-nav-discover .mobile-discover-day-tabs-thumb {
      transition: none;
    }
  }

  body.niepan-mobile-pull-active .mobile-discover-day-tabs-thumb,
  body.niepan-mobile-pull-active .mobile-discover-mainflow-tabs-thumb,
  body.niepan-mobile-pull-active .mobile-discover-retailhold-tabs-thumb,
  body.niepan-mobile-pull-active .mobile-discover-main-tabs-thumb,
  body.niepan-mobile-pull-active .market-tech-breadth-tabs-thumb,
  body.niepan-mobile-pull-active .market-tech-turnover-tabs-thumb {
    transition: none !important;
  }

  body.mobile-nav-discover #sectorList.list,
  body.mobile-nav-discover #sectorList.mobile-discover-sector-list {
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 16px 8px 16px !important;
    max-height: none !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    box-sizing: border-box;
  }

  body.mobile-nav-discover #sectorList.mobile-discover-sector-list.empty,
  body.mobile-nav-discover #sectorList.list.empty {
    padding: 24px 16px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
  }

  body.mobile-nav-discover #sectorList .empty-sector-view {
    width: 100%;
    box-sizing: border-box;
    margin: 0;
    padding: 24px 16px;
    border: 0;
    border-radius: 0;
    background: transparent;
  }

  body.mobile-nav-discover #sectorList.list.empty,
  body.mobile-nav-discover #sectorList:has(.empty-sector-view) {
    display: flex !important;
    align-items: center;
    justify-content: center;
    min-height: 88px;
  }

  body.mobile-nav-discover .mobile-discover-sector-row {
    display: grid !important;
    grid-template-columns: minmax(64px, 1fr) minmax(48px, 0.76fr) minmax(40px, 0.64fr) auto;
    column-gap: 6px;
    row-gap: 4px;
    align-items: center;
    justify-items: stretch;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 8px 0;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
    cursor: pointer;
  }

  body.mobile-nav-discover .mobile-discover-sector-row:hover,
  body.mobile-nav-discover .mobile-discover-sector-row:active,
  body.mobile-nav-discover .mobile-discover-sector-row:focus,
  body.mobile-nav-discover .mobile-discover-sector-row:focus-within {
    background: transparent !important;
    box-shadow: none !important;
    outline: none;
  }

  body.mobile-nav-discover .mobile-discover-sector-name {
    position: relative;
    z-index: 1;
    min-width: 0;
    width: 100%;
    padding-left: 0;
    text-align: left;
    justify-self: start;
    background: #fff;
  }

  body.mobile-nav-discover .mobile-discover-sector-list.is-scrolled .mobile-discover-sector-name::after {
    content: "";
    position: absolute;
    top: 0;
    right: -8px;
    bottom: 0;
    width: 8px;
    pointer-events: none;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(29, 33, 41, 0.08));
  }

  body.mobile-nav-discover .mobile-discover-sector-name-with-star {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    max-width: 100%;
    min-width: 0;
  }

  body.mobile-nav-discover .mobile-discover-sector-name strong {
    display: block;
    min-width: 0;
    flex: 0 1 auto;
    max-width: calc(100% - 26px);
    color: #1d2129;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.4;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  body.mobile-nav-discover .mobile-discover-sector-name .sector-watchlist-star {
    position: relative;
    z-index: 2;
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    margin: 0;
  }

  body.mobile-nav-discover .mobile-discover-sector-metric {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 0;
    min-width: 0;
    width: 100%;
    text-align: left;
    justify-self: start;
    padding-left: 2px;
    margin-left: -6px;
  }

  body.mobile-nav-discover .mobile-discover-sector-metric-val {
    font-size: 16px;
    font-weight: 500;
    line-height: 1.4;
    font-style: normal;
    color: #1d2129;
  }

  body.mobile-nav-discover .mobile-discover-sector-metric.up .mobile-discover-sector-metric-val {
    color: #f53f3f;
  }

  body.mobile-nav-discover .mobile-discover-sector-metric.down .mobile-discover-sector-metric-val {
    color: #009a29;
  }

  body.mobile-nav-discover .mobile-discover-sector-metric small {
    color: #4e5969;
    font-size: 12px;
    line-height: 1.4;
  }

  body.mobile-nav-discover .mobile-discover-sector-ai {
    flex: 0 0 auto;
    justify-self: end;
    margin: 0 0 0 auto;
    padding: 4px 8px;
    border: 1px solid #94bfff;
    border-radius: 4px;
    background: #e8f3ff;
    color: #165dff;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.4;
    white-space: nowrap;
    cursor: pointer;
  }

  body.mobile-nav-discover .mobile-discover-panel:not(#marketPanelSectors) .panel {
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: #fff;
  }

  body.mobile-nav-discover .mobile-discover-panel:not(#marketPanelSectors) .panel-head {
    padding: 12px 16px 8px;
    border: 0;
  }

  body.mobile-nav-discover .mobile-discover-panel:not(#marketPanelSectors) .panel-head h2 {
    margin: 0;
    font-size: 14px;
    font-weight: 500;
    color: #1d2129;
  }

  body.mobile-nav-discover .mobile-discover-panel:not(#marketPanelSectors) .panel-head > span,
  body.mobile-nav-discover .mobile-discover-panel:not(#marketPanelSectors) #hotMoneyMeta,
  body.mobile-nav-discover .mobile-discover-panel:not(#marketPanelSectors) #mainFlowMeta {
    color: #86909c;
    font-size: 12px;
  }

  body.mobile-nav-discover #marketPanelNews .panel-head {
    display: none !important;
  }

  body.mobile-nav-discover #marketPanelStrengthLadder .strength-ladder-panel-head {
    display: none !important;
  }

  body.mobile-nav-discover #strengthLadderMobileToolbar {
    padding-top: 4px;
  }

  /* 强度阶梯：禁止整页滚动，仅矩阵区域滚动 */
  body.mobile-nav-discover:has(#marketPanelStrengthLadder.is-active:not([hidden])) #appMain {
    overflow: hidden !important;
    display: flex;
    flex-direction: column;
  }

  body.mobile-nav-discover:has(#marketPanelStrengthLadder.is-active:not([hidden])) #marketTabsSection {
    display: flex !important;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
  }

  body.mobile-nav-discover #marketPanelStrengthLadder.mobile-discover-panel.is-active {
    display: flex !important;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
  }

  body.mobile-nav-discover #marketPanelStrengthLadder .strength-ladder-panel {
    position: relative;
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
  }

  body.mobile-nav-discover #marketPanelStrengthLadder #strengthLadderMobileToolbar {
    flex: 0 0 auto;
  }

  body.mobile-nav-discover #marketPanelStrengthLadder .strength-ladder-mount {
    flex: 1 1 auto;
    min-height: 0;
    margin-top: 0;
    padding: 0;
    overflow: visible;
  }

  body.mobile-nav-discover #marketPanelStrengthLadder .strength-ladder-scroll {
    height: 100%;
    max-height: none;
    flex: 1 1 auto;
    min-height: 0;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  body.mobile-nav-discover #marketTabsSection.mobile-discover-slide-stage:has(#marketPanelStrengthLadder.is-active) {
    flex: 1 1 auto;
    min-height: 0;
  }

  body.mobile-nav-discover #marketTabsSection.mobile-discover-slide-stage .mobile-discover-panel.mobile-discover-slide-layer#marketPanelStrengthLadder {
    bottom: 0;
    display: flex !important;
    flex-direction: column;
    min-height: 100%;
  }

  body.mobile-nav-discover #newsList.news-list,
  body.mobile-nav-discover #newsList.news-list.mobile-discover-news-list {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    max-height: none;
    overflow: visible;
    margin: 0;
    padding: 8px 16px;
    background: #fff;
    box-sizing: border-box;
  }

  body.mobile-nav-discover .mobile-discover-news-feed {
    display: flex;
    flex-direction: column;
    gap: 4px;
    width: 100%;
  }

  body.mobile-nav-discover .mobile-discover-news-item {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0 !important;
    border-radius: 0;
    background: transparent !important;
    color: inherit;
    text-align: left;
    box-shadow: none !important;
    -webkit-tap-highlight-color: transparent;
    cursor: pointer;
  }

  body.mobile-nav-discover .mobile-discover-news-item:hover,
  body.mobile-nav-discover .mobile-discover-news-item:active,
  body.mobile-nav-discover .mobile-discover-news-item:focus,
  body.mobile-nav-discover .mobile-discover-news-item:focus-visible {
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    outline: none;
  }

  body.mobile-nav-discover .mobile-discover-news-left {
    display: flex;
    flex-shrink: 0;
    gap: 8px;
    align-items: flex-start;
    align-self: stretch;
  }

  body.mobile-nav-discover .mobile-discover-news-track {
    display: flex;
    flex-direction: column;
    align-items: center;
    align-self: stretch;
    justify-content: flex-start;
    width: 20px;
    flex-shrink: 0;
    padding-top: 0;
    box-sizing: border-box;
  }

  body.mobile-nav-discover .mobile-discover-news-track-seg {
    flex: 0 0 auto;
    width: 0;
    border-left: 1px dashed #c9cdd4;
  }

  body.mobile-nav-discover .mobile-discover-news-track-seg--before {
    flex: 0 0 8px;
    min-height: 8px;
  }

  body.mobile-nav-discover .mobile-discover-news-track-seg--after {
    flex: 1 1 auto;
    min-height: 8px;
  }

  body.mobile-nav-discover .mobile-discover-news-item.is-first .mobile-discover-news-track-seg--before {
    display: none;
  }

  body.mobile-nav-discover .mobile-discover-news-item.is-last .mobile-discover-news-track-seg--after {
    flex: 0 0 0;
    min-height: 0;
    border: 0;
  }

  body.mobile-nav-discover .mobile-discover-news-dot-wrap {
    position: relative;
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    margin: 0;
  }

  body.mobile-nav-discover .mobile-discover-news-item.is-first .mobile-discover-news-dot-wrap {
    margin-top: 8px;
  }

  body.mobile-nav-discover .mobile-discover-news-dot-halo {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: rgba(22, 93, 255, 0.3);
    pointer-events: none;
  }

  body.mobile-nav-discover .mobile-discover-news-dot {
    position: relative;
    z-index: 1;
    flex: 0 0 auto;
    width: 12px;
    height: 12px;
    margin: 0;
    border-radius: 50%;
    background: #165dff;
  }

  body.mobile-nav-discover .mobile-discover-news-time {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-self: flex-start;
    padding: 8px 0 0;
    color: #1d2129;
    font-size: 14px;
    font-weight: 500;
    line-height: 20px;
    white-space: nowrap;
  }

  body.mobile-nav-discover .mobile-discover-news-time strong,
  body.mobile-nav-discover .mobile-discover-news-time span {
    display: block;
    font-weight: 500;
    line-height: 20px;
  }

  body.mobile-nav-discover .mobile-discover-news-content {
    flex: 1 1 auto;
    min-width: 0;
    padding: 8px 0 12px;
    border-bottom: 1px solid #f2f3f5;
  }

  body.mobile-nav-discover .mobile-discover-news-item.is-last .mobile-discover-news-content {
    border-bottom: 0;
    padding-bottom: 8px;
  }

  body.mobile-nav-discover .mobile-discover-news-title-row {
    display: flex;
    gap: 4px;
    align-items: center;
    min-height: 20px;
  }

  body.mobile-nav-discover .mobile-discover-news-title {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    overflow: hidden;
    color: #1d2129;
    font-size: 14px;
    font-weight: 600;
    line-height: 20px;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  body.mobile-nav-discover .mobile-discover-news-source-tag {
    flex: 0 0 auto;
    padding: 0 8px;
    border-radius: 30px;
    background: #e8f3ff;
    color: #165dff;
    font-size: 12px;
    font-weight: 500;
    line-height: 20px;
    white-space: nowrap;
  }

  body.mobile-nav-discover .mobile-discover-news-summary {
    margin: 8px 0 0;
    color: #86909c;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.5;
  }

  body.mobile-nav-discover .mobile-discover-news-theme-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-top: 8px;
  }

  body.mobile-nav-discover .mobile-discover-news-theme-tag {
    padding: 0 8px;
    border-radius: 30px;
    background: #e8fffb;
    color: #0fc6c2;
    font-size: 12px;
    font-weight: 500;
    line-height: 20px;
    white-space: nowrap;
  }

  body.mobile-nav-discover .mobile-discover-news-empty,
  body.mobile-nav-discover #newsList:has(.module-empty-tip) {
    min-height: 88px;
  }

  body.mobile-nav-discover #marketPanelHotMoney .hot-money-panel,
  body.mobile-nav-discover #marketPanelMainFlow .main-flow-panel,
  body.mobile-nav-discover #marketPanelRetailHold .retail-hold-panel,
  body.mobile-nav-discover #marketPanelStrengthLadder .strength-ladder-panel {
    position: relative;
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
  }

  body.mobile-nav-discover .mobile-discover-page-loading {
    position: fixed;
    left: 0;
    right: 0;
    top: var(--mobile-main-offset, 120px);
    bottom: var(--m-nav-h, calc(56px + env(safe-area-inset-bottom, 0px)));
    z-index: 94;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 0;
    background: #fff;
    box-sizing: border-box;
    pointer-events: none;
  }

  body.mobile-nav-discover .mobile-discover-page-loading .mobile-page-loading-center,
  body.mobile-nav-discover .mobile-discover-page-loading .stock-detail-loading-center {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 32px 24px;
    color: #86909c;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.4;
    text-align: center;
  }

  body.mobile-nav-discover .mobile-discover-page-loading .strategy-page-loading-text,
  body.mobile-nav-discover .mobile-discover-page-loading .stock-detail-loading-center-text {
    margin: 0;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.4;
    color: #1d2129;
    text-align: center;
  }

  body.mobile-nav-discover .mobile-discover-page-loading .strategy-page-loading-subline {
    margin: 0;
    font-size: 12px;
    line-height: 1.5;
    color: #86909c;
    max-width: 260px;
    text-align: center;
  }

  body.mobile-nav-discover .mobile-discover-page-loading[hidden] {
    display: none !important;
  }

  body.mobile-nav-discover .mobile-discover-page-loading .async-loading-spinner {
    width: 32px;
    height: 32px;
    border-width: 3px;
    border-color: rgba(32, 38, 56, 0.12);
    border-top-color: #202638;
  }

  body.mobile-nav-discover .hot-money-panel.is-loading,
  body.mobile-nav-discover .main-flow-panel.is-loading,
  body.mobile-nav-discover .retail-hold-panel.is-loading {
    min-height: min(
      480px,
      calc(100dvh - var(--mobile-main-offset, 120px) - var(--m-nav-h, 56px) - env(safe-area-inset-bottom, 0px) - 48px)
    );
  }

  body.mobile-nav-discover .hot-money-panel.is-loading #hotMoneyMobileList,
  body.mobile-nav-discover .main-flow-panel.is-loading #mainFlowMobileToolbar,
  body.mobile-nav-discover .main-flow-panel.is-loading #mainFlowMobileList,
  body.mobile-nav-discover .retail-hold-panel.is-loading #retailHoldMobileToolbar,
  body.mobile-nav-discover .retail-hold-panel.is-loading #retailHoldMobileList {
    display: none !important;
  }

  body.mobile-nav-discover #marketPanelHotMoney .panel-head {
    display: none !important;
  }

  body.mobile-nav-discover #marketPanelHotFunds .panel-head {
    display: none !important;
  }

  body.mobile-nav-discover #hotMoneyMobileList.mobile-discover-hotmoney-feed {
    display: flex;
    flex-direction: column;
    gap: 4px;
    width: 100% !important;
    max-width: 100% !important;
    padding: 8px 16px;
    background: #fff;
    box-sizing: border-box;
  }

  body.mobile-nav-discover #marketPanelHotMoney .hot-money-table-wrap {
    display: none !important;
  }

  body.mobile-nav-discover .mobile-discover-hotmoney-item {
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 100%;
    margin: 0;
    padding: 8px 0 12px;
    border: 0;
    border-bottom: 1px solid #f2f3f5;
    border-radius: 0;
    background: transparent;
    color: inherit;
    text-align: left;
    cursor: pointer;
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
  }

  body.mobile-nav-discover .mobile-discover-hotmoney-item:hover,
  body.mobile-nav-discover .mobile-discover-hotmoney-item:active,
  body.mobile-nav-discover .mobile-discover-hotmoney-item:focus,
  body.mobile-nav-discover .mobile-discover-hotmoney-item:focus-visible {
    background: transparent !important;
    outline: none;
    box-shadow: none !important;
  }

  body.mobile-nav-discover .mobile-discover-hotmoney-item.is-last {
    border-bottom: 0;
    padding-bottom: 8px;
  }

  body.mobile-nav-discover .mobile-discover-hotmoney-head {
    display: flex;
    gap: 4px;
    align-items: flex-start;
    justify-content: space-between;
    width: 100%;
  }

  body.mobile-nav-discover .mobile-discover-hotmoney-title-wrap {
    display: flex;
    flex: 1 1 auto;
    gap: 4px;
    align-items: center;
    min-width: 0;
  }

  body.mobile-nav-discover .mobile-discover-hotmoney-name {
    overflow: hidden;
    color: #1d2129;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.4;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.mobile-nav-discover .mobile-discover-hotmoney-active-tag {
    flex: 0 0 auto;
    padding: 0 8px;
    border-radius: 30px;
    background: #e8f3ff;
    color: #165dff;
    font-size: 12px;
    font-weight: 500;
    line-height: 20px;
    white-space: nowrap;
  }

  body.mobile-nav-discover .mobile-discover-hotmoney-flows {
    display: flex;
    flex: 0 0 auto;
    gap: 4px;
    align-items: center;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.4;
    white-space: nowrap;
  }

  body.mobile-nav-discover .mobile-discover-hotmoney-flow {
    min-width: 57px;
    text-align: right;
  }

  body.mobile-nav-discover .mobile-discover-hotmoney-flow.up {
    color: #f53f3f;
  }

  body.mobile-nav-discover .mobile-discover-hotmoney-flow.down {
    color: #00b42a;
  }

  body.mobile-nav-discover .mobile-discover-hotmoney-seats {
    margin: 0;
    color: #86909c;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.4;
    word-break: break-word;
  }

  body.mobile-nav-discover .mobile-discover-hotmoney-stocks {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
  }

  body.mobile-nav-discover .mobile-discover-hotmoney-stock-tag {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding: 0 8px;
    border-radius: 30px;
    background: #fff3e8;
    color: #f77234;
    font-size: 12px;
    font-weight: 500;
    line-height: 20px;
    white-space: nowrap;
  }

  body.mobile-nav-discover .mobile-discover-hotmoney-stock-tag .status-stock-exchange {
    flex-shrink: 0;
    min-width: 14px;
    padding: 0 2px;
    font-size: 8px;
    line-height: 12px;
    background: rgba(255, 255, 255, 0.72);
  }

  .hot-money-table td .stock-code-line,
  .trade-detail-table td .stock-code-line,
  .hot-money-trade-list .stock-code-line,
  .hot-money-holdings-list .stock-code-line {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    width: fit-content;
    max-width: 100%;
  }

  .tags.compact .status-stock-exchange {
    margin-left: 2px;
  }

  body.mobile-nav-discover .mobile-discover-hotmoney-empty,
  body.mobile-nav-discover #hotMoneyMobileList:has(.module-empty-tip) {
    min-height: 88px;
  }

  #hotMoneyMobileList.mobile-discover-hotmoney-feed {
    display: none;
  }

  body.mobile-nav-discover #marketPanelMainFlow .panel-head {
    display: none !important;
  }

  body.mobile-nav-discover #marketPanelRetailHold .retail-hold-panel-head {
    display: none !important;
  }

  body.mobile-nav-discover #retailHoldMobileToolbar.mobile-discover-retailhold-toolbar {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    padding: 12px 16px 8px;
    box-sizing: border-box;
    background: #fff;
  }

  body.mobile-nav-discover .mobile-discover-retailhold-tabs {
    position: relative;
    display: flex;
    align-items: stretch;
    gap: 0;
    width: 100%;
    min-height: 32px;
    padding: 2px;
    border: 0;
    border-radius: 6px;
    background: #f2f3f5;
    overflow: hidden;
    box-sizing: border-box;
  }

  body.mobile-nav-discover .mobile-discover-retailhold-tabs-thumb {
    position: absolute;
    top: 2px;
    left: 0;
    z-index: 0;
    height: calc(100% - 4px);
    border-radius: 4px;
    background: #fff;
    box-shadow: none;
    pointer-events: none;
    transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1), width 0.28s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform, width;
  }

  body.mobile-nav-discover .mobile-discover-retailhold-tabs button {
    position: relative;
    z-index: 2;
    flex: 1 1 0;
    min-width: 0;
    margin: 0;
    padding: 4px 12px;
    border: 0;
    border-radius: 4px;
    background: transparent !important;
    color: #4e5969;
    font-size: 14px;
    font-weight: 400;
    line-height: 22px;
    white-space: nowrap;
    cursor: pointer;
    box-shadow: none !important;
    -webkit-tap-highlight-color: transparent;
    transition: color 0.2s ease;
  }

  body.mobile-nav-discover .mobile-discover-retailhold-tabs button:hover,
  body.mobile-nav-discover .mobile-discover-retailhold-tabs button:active,
  body.mobile-nav-discover .mobile-discover-retailhold-tabs button:focus,
  body.mobile-nav-discover .mobile-discover-retailhold-tabs button:focus-visible {
    background: transparent !important;
    box-shadow: none !important;
    outline: none;
  }

  body.mobile-nav-discover .mobile-discover-retailhold-tabs button.active {
    background: transparent !important;
    color: #165dff;
    font-weight: 500;
    box-shadow: none !important;
  }

  body.mobile-nav-discover .mobile-discover-retailhold-tabs button + button {
    box-shadow: inset 1px 0 0 #e5e6eb;
  }

  @media (prefers-reduced-motion: reduce) {
    body.mobile-nav-discover .mobile-discover-retailhold-tabs-thumb {
      transition: none;
    }
  }

  body.mobile-nav-discover #mainFlowMobileToolbar.mobile-discover-mainflow-toolbar {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    padding: 12px 16px 8px;
    box-sizing: border-box;
    background: #fff;
  }

  body.mobile-nav-discover .mobile-discover-mainflow-tabs {
    position: relative;
    display: flex;
    align-items: stretch;
    gap: 0;
    width: 100%;
    min-height: 32px;
    padding: 2px;
    border: 0;
    border-radius: 6px;
    background: #f2f3f5;
    overflow: hidden;
    box-sizing: border-box;
  }

  body.mobile-nav-discover .mobile-discover-mainflow-tabs-thumb {
    position: absolute;
    top: 2px;
    left: 0;
    z-index: 0;
    height: calc(100% - 4px);
    border-radius: 4px;
    background: #fff;
    box-shadow: none;
    pointer-events: none;
    transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1), width 0.28s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform, width;
  }

  body.mobile-nav-discover .mobile-discover-mainflow-tabs button {
    position: relative;
    z-index: 2;
    flex: 1 1 0;
    min-width: 0;
    margin: 0;
    padding: 4px 12px;
    border: 0;
    border-radius: 4px;
    background: transparent !important;
    color: #4e5969;
    font-size: 14px;
    font-weight: 400;
    line-height: 22px;
    white-space: nowrap;
    cursor: pointer;
    box-shadow: none !important;
    -webkit-tap-highlight-color: transparent;
    transition: color 0.2s ease;
  }

  body.mobile-nav-discover .mobile-discover-mainflow-tabs button:hover,
  body.mobile-nav-discover .mobile-discover-mainflow-tabs button:active,
  body.mobile-nav-discover .mobile-discover-mainflow-tabs button:focus,
  body.mobile-nav-discover .mobile-discover-mainflow-tabs button:focus-visible {
    background: transparent !important;
    box-shadow: none !important;
    outline: none;
  }

  body.mobile-nav-discover .mobile-discover-mainflow-tabs button.active {
    background: transparent !important;
    color: #165dff;
    font-weight: 500;
    box-shadow: none !important;
  }

  body.mobile-nav-discover .mobile-discover-mainflow-tabs button + button {
    box-shadow: inset 1px 0 0 #e5e6eb;
  }

  @media (prefers-reduced-motion: reduce) {
    body.mobile-nav-discover .mobile-discover-mainflow-tabs-thumb {
      transition: none;
    }
  }

  body.mobile-nav-discover #mainFlowMobileList.mobile-discover-mainflow-feed {
    display: flex;
    flex-direction: column;
    gap: 4px;
    width: 100% !important;
    max-width: 100% !important;
    padding: 8px 16px;
    background: #fff;
    box-sizing: border-box;
  }

  body.mobile-nav-discover #marketPanelMainFlow .main-flow-table-wrap {
    display: none !important;
  }

  body.mobile-nav-discover .mobile-discover-mainflow-row {
    display: grid;
    grid-template-columns: minmax(72px, 1fr) repeat(3, minmax(56px, 1fr));
    gap: 4px;
    align-items: stretch;
    width: 100%;
    margin: 0;
    padding: 8px 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: inherit;
    text-align: center;
    cursor: pointer;
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
  }

  body.mobile-nav-discover .mobile-discover-mainflow-row:hover,
  body.mobile-nav-discover .mobile-discover-mainflow-row:active,
  body.mobile-nav-discover .mobile-discover-mainflow-row:focus,
  body.mobile-nav-discover .mobile-discover-mainflow-row:focus-visible {
    background: transparent !important;
    outline: none;
    box-shadow: none !important;
  }

  body.mobile-nav-discover .mobile-discover-mainflow-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 0;
    line-height: 1.4;
  }

  body.mobile-nav-discover .mobile-discover-mainflow-stock {
    align-items: center;
    padding-right: 4px;
    border-right: 1px solid #f2f3f5;
    box-shadow: none;
  }

  body.mobile-nav-discover .mobile-discover-mainflow-stock .stock-name-with-star {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 2px;
    max-width: 100%;
  }

  body.mobile-nav-discover .mobile-discover-mainflow-stock .watchlist-star-btn {
    margin-left: 0;
    flex-shrink: 0;
  }

  body.mobile-nav-discover .mobile-discover-mainflow-col strong {
    color: #1d2129;
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
  }

  body.mobile-nav-discover .mobile-discover-mainflow-stock strong {
    font-size: 14px;
  }

  body.mobile-nav-discover .mobile-discover-mainflow-price strong {
    color: #1d2129;
    font-size: 16px;
  }

  body.mobile-nav-discover .mobile-discover-mainflow-change strong {
    font-size: 16px;
  }

  body.mobile-nav-discover .mobile-discover-mainflow-amount strong {
    font-size: 14px;
  }

  body.mobile-nav-discover .mobile-discover-mainflow-col small {
    color: #4e5969;
    font-size: 12px;
  }

  body.mobile-nav-discover .mobile-discover-mainflow-change.up strong,
  body.mobile-nav-discover .mobile-discover-mainflow-amount.up strong {
    color: #f53f3f;
  }

  body.mobile-nav-discover .mobile-discover-mainflow-change.down strong,
  body.mobile-nav-discover .mobile-discover-mainflow-amount.down strong {
    color: #00b42a;
  }

  body.mobile-nav-discover .mobile-discover-mainflow-empty,
  body.mobile-nav-discover #mainFlowMobileList:has(.module-empty-tip) {
    min-height: 88px;
  }

  body.mobile-nav-discover #hotFundMobileList.mobile-discover-hotfund-feed {
    display: flex;
    flex-direction: column;
    gap: 4px;
    width: 100% !important;
    max-width: 100% !important;
    padding: 8px 16px;
    background: #fff;
    box-sizing: border-box;
  }

  body.mobile-nav-discover #marketPanelHotFunds .hot-fund-table-wrap {
    display: none !important;
  }

  body.mobile-nav-discover .mobile-discover-hotfund-row {
    display: grid;
    grid-template-columns: minmax(72px, 1.2fr) repeat(3, minmax(56px, 1fr));
    gap: 4px;
    align-items: stretch;
    width: 100%;
    margin: 0;
    padding: 8px 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: inherit;
    text-align: center;
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
  }

  body.mobile-nav-discover .mobile-discover-hotfund-row--static {
    cursor: default;
  }

  body.mobile-nav-discover .mobile-discover-hotfund-row:hover,
  body.mobile-nav-discover .mobile-discover-hotfund-row:active,
  body.mobile-nav-discover .mobile-discover-hotfund-row:focus,
  body.mobile-nav-discover .mobile-discover-hotfund-row:focus-visible {
    background: transparent !important;
    outline: none;
    box-shadow: none !important;
  }

  body.mobile-nav-discover .mobile-discover-hotfund-col {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 2px;
    min-width: 0;
  }

  body.mobile-nav-discover .mobile-discover-hotfund-stock {
    text-align: left;
  }

  body.mobile-nav-discover .mobile-discover-hotfund-col strong {
    font-size: 13px;
    font-weight: 600;
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  body.mobile-nav-discover .mobile-discover-hotfund-stock strong {
    font-size: 14px;
  }

  body.mobile-nav-discover .mobile-discover-hotfund-col small {
    font-size: 11px;
    color: var(--text-secondary, #667085);
  }

  body.mobile-nav-discover .mobile-discover-hotfund-change.up strong,
  body.mobile-nav-discover .mobile-discover-hotfund-inflow.up strong {
    color: var(--up, #e54545);
  }

  body.mobile-nav-discover .mobile-discover-hotfund-change.down strong,
  body.mobile-nav-discover .mobile-discover-hotfund-inflow.down strong {
    color: var(--down, #00a870);
  }

  #hotFundMobileList.mobile-discover-hotfund-feed {
    display: none;
  }

  body.mobile-nav-discover #retailHoldMobileList.mobile-discover-retailhold-feed {
    display: flex;
    flex-direction: column;
    gap: 4px;
    width: 100% !important;
    max-width: 100% !important;
    padding: 8px 16px;
    background: #fff;
    box-sizing: border-box;
  }

  body.mobile-nav-discover #marketPanelRetailHold .retail-hold-table-wrap {
    display: none !important;
  }

  body.mobile-nav-discover .mobile-discover-retailhold-row {
    display: grid;
    gap: 4px;
    align-items: stretch;
    width: 100%;
    margin: 0;
    padding: 8px 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: inherit;
    text-align: center;
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
  }

  body.mobile-nav-discover .mobile-discover-retailhold-row--stock {
    grid-template-columns: minmax(72px, 1fr) repeat(4, minmax(52px, 1fr));
    cursor: pointer;
  }

  body.mobile-nav-discover .mobile-discover-retailhold-row--sector {
    grid-template-columns: minmax(88px, 1.15fr) repeat(3, minmax(56px, 1fr));
  }

  body.mobile-nav-discover .mobile-discover-retailhold-row:hover,
  body.mobile-nav-discover .mobile-discover-retailhold-row:active,
  body.mobile-nav-discover .mobile-discover-retailhold-row:focus,
  body.mobile-nav-discover .mobile-discover-retailhold-row:focus-visible {
    background: transparent;
    outline: none;
  }

  body.mobile-nav-discover .mobile-discover-retailhold-row--static {
    cursor: default;
  }

  body.mobile-nav-discover .mobile-discover-retailhold-col {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 2px;
    min-width: 0;
  }

  body.mobile-nav-discover .mobile-discover-retailhold-col strong {
    font-size: 13px;
    font-weight: 600;
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  body.mobile-nav-discover .mobile-discover-retailhold-stock {
    text-align: left;
    gap: 1px;
  }

  body.mobile-nav-discover .mobile-discover-retailhold-stock strong {
    font-size: 14px;
    line-height: 1.15;
  }

  body.mobile-nav-discover .mobile-discover-retailhold-stock small {
    line-height: 1.1;
    margin-top: 0;
  }

  body.mobile-nav-discover .mobile-discover-retailhold-price strong {
    font-size: 13px;
    font-weight: 600;
  }

  body.mobile-nav-discover .mobile-discover-retailhold-change strong,
  body.mobile-nav-discover .mobile-discover-retailhold-holders strong,
  body.mobile-nav-discover .mobile-discover-retailhold-delta strong {
    font-size: 13px;
    font-weight: 600;
  }

  body.mobile-nav-discover .mobile-discover-retailhold-col small {
    font-size: 11px;
    color: var(--text-secondary, #667085);
  }

  body.mobile-nav-discover .mobile-discover-retailhold-change.up strong,
  body.mobile-nav-discover .mobile-discover-retailhold-delta.up strong {
    color: var(--up, #e54545);
  }

  body.mobile-nav-discover .mobile-discover-retailhold-change.down strong,
  body.mobile-nav-discover .mobile-discover-retailhold-delta.down strong {
    color: var(--down, #00a870);
  }

  #retailHoldMobileToolbar.mobile-discover-retailhold-toolbar,
  #retailHoldMobileList.mobile-discover-retailhold-feed {
    display: none;
  }

  #mainFlowMobileToolbar.mobile-discover-mainflow-toolbar,
  #mainFlowMobileList.mobile-discover-mainflow-feed {
    display: none;
  }

  body.mobile-nav-discover .hot-money-panel .table-wrap,
  body.mobile-nav-discover .hot-fund-panel .hot-fund-table-wrap,
  body.mobile-nav-discover .retail-hold-panel .retail-hold-table-wrap,
  body.mobile-nav-discover .main-flow-panel .main-flow-table-wrap {
    border: 0;
    border-radius: 0;
    max-height: none;
  }

  body.mobile-nav-strategy #appMain > :not(#marketTabsSection):not(#mobileSearchSheet):not(#searchBand) {
    display: none !important;
  }

  body.mobile-nav-strategy #marketTabsSection .main-tabs,
  body.mobile-nav-strategy #marketTabsSection .tab-panel:not(#marketPanelStrategy) {
    display: none !important;
  }

  body.mobile-nav-strategy #marketPanelStrategy,
  body.mobile-nav-strategy #marketPanelStrategy[hidden] {
    display: flex !important;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    margin-top: 0;
    overflow: hidden;
    background: transparent;
  }

  body.mobile-nav-strategy .major-indices-strip.mobile-hero-indices {
    display: none !important;
  }

  body.mobile-nav-strategy .mobile-topbar-home-slot,
  body.mobile-nav-strategy .mobile-topbar-mode-discover,
  body.mobile-nav-strategy .mobile-topbar-mode-ai {
    display: none !important;
  }

  body.mobile-nav-strategy .feedback-top-btn-wrap {
    display: none !important;
  }

  body.mobile-nav-strategy #mobileSearchOpenBtn.mobile-icon-btn,
  body.mobile-nav-strategy #refreshBtn.mobile-icon-btn {
    display: inline-flex !important;
  }

  body.mobile-nav-strategy #mobileSearchOpenBtn.mobile-icon-btn {
    display: none !important;
  }

  body.mobile-nav-strategy .strategy-pure-mode-switch--mobile {
    display: inline-flex !important;
    align-items: center;
    transform: translateY(-4px);
  }

  body.mobile-nav-strategy .topbar:has(.mobile-topbar-row) .mobile-topbar-slot-start {
    align-self: center;
  }

  body.mobile-nav-strategy .topbar:has(.mobile-topbar-row) .mobile-topbar-actions #refreshBtn.mobile-icon-btn {
    transform: translateY(-4px);
  }

  body.strategy-pure-mode-active #mobileSearchOpenBtn.mobile-icon-btn {
    display: none !important;
  }

  body.strategy-pure-mode-active.mobile-nav-strategy .strategy-pure-mode-switch--mobile {
    display: inline-flex !important;
  }

  body.strategy-pure-mode-active:not(.mobile-nav-strategy) .strategy-pure-mode-switch--mobile {
    display: none !important;
  }

  body.mobile-nav-strategy #strategyPureModeHintMobile:not([hidden]) {
    display: block !important;
  }

  body:not(.mobile-nav-strategy) #strategyPureModeHintMobile {
    display: none !important;
  }

  body.mobile-nav-strategy .mobile-strategy-topbar-title.mobile-topbar-mode-strategy {
    display: none !important;
  }

  body:not(.mobile-nav-strategy) .mobile-strategy-topbar-title.mobile-topbar-mode-strategy {
    display: none !important;
  }

  body.mobile-nav-strategy .topbar:has(.mobile-topbar-row) .mobile-topbar-row {
    grid-template-columns: 44px minmax(0, 1fr) 44px !important;
  }

  body.mobile-nav-strategy .topbar:has(.mobile-topbar-row) .mobile-topbar-actions {
    flex: 0 0 44px !important;
    width: 44px !important;
    gap: 0 !important;
  }

  body.mobile-nav-strategy .topbar:has(.mobile-topbar-row) .mobile-topbar-center {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    justify-self: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0;
    margin: 0;
    overflow: visible;
  }

  body.mobile-nav-strategy .mobile-strategy-topbar-title {
    display: block !important;
    margin: 0;
    font-size: 18px;
    font-weight: 500;
    line-height: 26px;
    color: #fff;
    text-align: center;
    white-space: nowrap;
  }

  body.mobile-nav-strategy .topbar:has(.mobile-topbar-row),
  body.mobile-nav-strategy .topbar:has(.mobile-topbar-row) .mobile-topbar-row {
    background: var(--m-header-bg, #202638) !important;
    border: 0 !important;
    border-top: 0 !important;
    border-bottom: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
  }

  body.mobile-nav-strategy .topbar:has(.mobile-topbar-row)::before,
  body.mobile-nav-strategy .topbar:has(.mobile-topbar-row)::after,
  body.mobile-nav-strategy .topbar:has(.mobile-topbar-row) .mobile-topbar-row::before,
  body.mobile-nav-strategy .topbar:has(.mobile-topbar-row) .mobile-topbar-row::after,
  body.mobile-nav-strategy #mobileStrategyTabs::before,
  body.mobile-nav-strategy #mobileStrategyTabs::after,
  body.mobile-nav-strategy #marketTabsSection::before,
  body.mobile-nav-strategy #marketTabsSection::after,
  body.mobile-nav-strategy #marketPanelStrategy::before,
  body.mobile-nav-strategy #marketPanelStrategy::after,
  body.mobile-nav-strategy #marketPanelStrategy .strategy-summary::before,
  body.mobile-nav-strategy #marketPanelStrategy .strategy-summary::after {
    display: none !important;
    content: none !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  body.mobile-nav-strategy .topbar:has(.mobile-topbar-row) {
    padding-bottom: 0 !important;
  }

  body.mobile-nav-strategy .topbar:has(.mobile-topbar-row) .mobile-topbar-row {
    padding-bottom: 0 !important;
  }

  body.mobile-nav-strategy #appMain {
    position: relative;
    z-index: 21;
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    margin-top: -1px !important;
    overflow: hidden !important;
    padding-top: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box;
  }

  body.mobile-nav-strategy #marketTabsSection,
  body.mobile-nav-strategy #marketPanelStrategy,
  body.mobile-nav-strategy #marketPanelStrategy .strategy-panel,
  body.mobile-nav-strategy #marketPanelStrategy .strategy-panel.panel.wide {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box;
    align-self: stretch;
  }

  body.mobile-nav-strategy #marketTabsSection {
    position: relative;
    z-index: 21;
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    margin: 0 !important;
    padding: 0 !important;
    gap: 0 !important;
    border: 0 !important;
    border-top: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    background: #202638;
    overflow: hidden;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box;
  }

  body.mobile-nav-strategy #marketTabsSection:has([data-strategy-content-panel="short-term"].is-active) {
    background: #fff;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-panel {
    position: relative;
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    margin: 0;
    padding: 0;
    border: 0 !important;
    border-radius: 0;
    box-shadow: none !important;
    background: transparent;
    overflow: hidden;
  }

  body.mobile-nav-strategy #marketPanelStrategy {
    position: relative;
  }

  body.mobile-nav-strategy #marketPanelStrategy #strategyPageLoading.mobile-discover-page-loading {
    position: fixed;
    left: 0;
    right: 0;
    top: var(--mobile-main-offset, 120px);
    bottom: var(--m-nav-h, calc(56px + env(safe-area-inset-bottom, 0px)));
    z-index: 94;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 0;
    background: #fff;
    box-sizing: border-box;
    pointer-events: none;
  }

  body.mobile-nav-strategy #marketPanelStrategy #strategyPageLoading.mobile-discover-page-loading .mobile-page-loading-center,
  body.mobile-nav-strategy #marketPanelStrategy #strategyPageLoading.mobile-discover-page-loading .stock-detail-loading-center {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 32px 24px;
    color: #86909c;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.4;
    text-align: center;
  }

  body.mobile-nav-strategy #marketPanelStrategy #strategyPageLoading.mobile-discover-page-loading .strategy-page-loading-text,
  body.mobile-nav-strategy #marketPanelStrategy #strategyPageLoading.mobile-discover-page-loading .stock-detail-loading-center-text {
    margin: 0;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.4;
    color: #1d2129;
    text-align: center;
  }

  body.mobile-nav-strategy #marketPanelStrategy #strategyPageLoading.mobile-discover-page-loading .strategy-page-loading-subline {
    margin: 0;
    font-size: 12px;
    line-height: 1.5;
    color: #86909c;
    max-width: 260px;
    text-align: center;
  }

  body.mobile-nav-strategy #marketPanelStrategy #strategyPageLoading.mobile-discover-page-loading[hidden] {
    display: none !important;
  }

  body.mobile-nav-strategy #marketPanelStrategy #strategyPageLoading.mobile-discover-page-loading .async-loading-spinner {
    width: 32px;
    height: 32px;
    border-width: 3px;
    border-color: rgba(32, 38, 56, 0.12);
    border-top-color: #202638;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-panel.is-loading {
    min-height: min(
      480px,
      calc(100dvh - var(--mobile-main-offset, 120px) - var(--m-nav-h, 56px) - env(safe-area-inset-bottom, 0px) - 48px)
    );
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-panel.is-loading .strategy-summary,
  body.mobile-nav-strategy #marketPanelStrategy .strategy-panel.is-loading .strategy-weights,
  body.mobile-nav-strategy #marketPanelStrategy .strategy-panel.is-loading .mobile-strategy-scroll-body {
    display: none !important;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-panel.mobile-strategy-shell {
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
  }

  body.mobile-nav-strategy .mobile-strategy-scroll-body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: none;
    touch-action: manipulation;
    background: #f7f8fa;
  }

  body.mobile-nav-strategy #marketPanelStrategy,
  body.mobile-nav-strategy #marketPanelStrategy .strategy-panel,
  body.mobile-nav-strategy #marketTabsSection {
    overflow-x: hidden;
    touch-action: manipulation;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-panel .panel-head,
  body.mobile-nav-strategy #marketPanelStrategy .strategy-table-wrap {
    display: none !important;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-summary,
  body.mobile-nav-strategy #marketPanelStrategy .strategy-weights,
  body.mobile-nav-strategy #marketPanelStrategy .mobile-strategy-pick-list {
    margin: 0 !important;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-summary {
    position: relative;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 4px;
    flex: 0 0 auto;
    margin-top: -1px !important;
    padding: 9px 8px 12px;
    border: 0 !important;
    border-top: 0 !important;
    box-shadow: none !important;
    background: #202638;
    z-index: 2;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-summary article {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    padding: 0;
    border: 0 !important;
    border-radius: 0;
    background: transparent !important;
    box-shadow: none !important;
    text-align: center;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-summary article strong {
    margin: 0;
    color: #fff;
    font-size: 16px !important;
    font-weight: 500;
    line-height: 1.4;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-summary article strong.up {
    color: #f53f3f;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-summary article strong.down {
    color: #009a29;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-summary article span {
    color: #c9cdd4;
    font-size: 12px;
    line-height: 1.4;
  }

  body.mobile-nav-strategy .mobile-strategy-weights-shell {
    display: block;
    flex: 0 0 auto;
    margin: 0;
    padding: 12px;
    gap: 0;
    background: #fff;
    box-sizing: border-box;
  }

  body.mobile-nav-strategy .mobile-strategy-memory {
    padding: 8px;
    border: 1px solid #f2f3f5;
    border-radius: 8px;
    background: #f7f8fa;
    gap: 0;
    box-sizing: border-box;
  }

  body.mobile-nav-strategy .mobile-strategy-memory-carousel {
    margin-bottom: 8px;
  }

  body.mobile-nav-strategy .mobile-strategy-memory .strategy-memory-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 0 0 12px;
    padding: 0;
    border: 0;
  }

  body.mobile-nav-strategy .mobile-strategy-memory .strategy-memory-head > strong {
    color: #1d2129;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.4;
  }

  body.mobile-nav-strategy .mobile-strategy-history-link {
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: #165dff;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.4;
    cursor: pointer;
  }

  body.mobile-nav-strategy .mobile-strategy-memory .strategy-memory-head-links .strategy-page-reload-btn {
    color: #165dff;
    font-size: 12px;
  }

  body.mobile-nav-strategy .mobile-strategy-memory-empty-row {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 132px;
    box-sizing: border-box;
  }

  body.mobile-nav-strategy .mobile-strategy-memory-empty {
    margin: 0;
    padding: 0;
    color: #86909c;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.4;
    text-align: center;
  }

  body.mobile-nav-strategy .mobile-strategy-memory-carousel--empty {
    margin-bottom: 8px;
  }

  body.mobile-nav-strategy .mobile-strategy-memory-carousel {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
    width: 100%;
    min-width: 0;
    overflow: hidden;
  }

  body.mobile-nav-strategy .mobile-strategy-memory-pages {
    display: flex;
    flex-wrap: nowrap;
    width: 100%;
    min-width: 0;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    overscroll-behavior-x: contain;
    touch-action: manipulation;
    scrollbar-width: none;
  }

  body.mobile-nav-strategy .mobile-strategy-memory-pages::-webkit-scrollbar {
    display: none;
  }

  body.mobile-nav-strategy .mobile-strategy-memory-page {
    display: flex;
    flex: 0 0 100%;
    flex-direction: column;
    gap: 4px;
    width: 100%;
    min-width: 100%;
    box-sizing: border-box;
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }

  body.mobile-nav-strategy .mobile-strategy-memory-dots {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 4px;
    margin: 0;
    padding: 0;
  }

  body.mobile-nav-strategy .mobile-strategy-memory-dot {
    width: 6px;
    height: 6px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #c9cdd4;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }

  body.mobile-nav-strategy .mobile-strategy-memory-dot.is-active {
    width: 12px;
    border-radius: 4px;
    background: #165dff;
  }

  body.mobile-nav-strategy .mobile-strategy-update-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 32px;
    margin: 0;
    padding: 5px 16px;
    border: 0;
    border-radius: 4px;
    background: #165dff;
    color: #fff;
    font-size: 14px;
    font-weight: 400;
    line-height: 22px;
    cursor: pointer;
    box-sizing: border-box;
  }

  body.mobile-nav-strategy .mobile-strategy-update-btn:disabled {
    opacity: 0.65;
    cursor: wait;
  }

  body.mobile-nav-strategy .mobile-strategy-memory-grid {
    display: flex;
    flex-direction: column;
    gap: 4px;
    width: 100%;
  }

  body.mobile-nav-strategy .mobile-strategy-memory-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 4px;
    width: 100%;
  }

  body.mobile-nav-strategy .mobile-strategy-memory-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 8px 4px;
    border: 0;
    border-radius: 4px;
    background: #fff;
    text-align: center;
  }

  body.mobile-nav-strategy .mobile-strategy-memory-card.clickable-row {
    cursor: pointer;
  }

  body.mobile-nav-strategy .mobile-strategy-memory-card.clickable-row:active {
    background: #f7f8fa;
  }

  body.mobile-nav-strategy .mobile-strategy-memory-name-row {
    display: inline-flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    gap: 4px;
    width: fit-content;
    max-width: 100%;
    min-width: 0;
  }

  body.mobile-nav-strategy .mobile-strategy-memory-name-row .watchlist-star-btn {
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
    margin: 0;
  }

  body.mobile-nav-strategy .mobile-strategy-memory-name {
    flex: 0 1 auto;
    min-width: 0;
    max-width: 100%;
    color: #1d2129;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.4;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  body.mobile-nav-strategy .mobile-strategy-memory-code,
  body.mobile-nav-strategy .mobile-strategy-memory-time {
    color: #4e5969;
    font-size: 12px;
    line-height: 1.4;
  }

  body.mobile-nav-strategy .mobile-strategy-memory-time {
    font-size: 10px;
  }

  body.mobile-nav-strategy .mobile-strategy-memory-pnl {
    font-size: 14px;
    font-weight: 500;
    line-height: 1.4;
  }

  body.mobile-nav-strategy .mobile-strategy-memory-prices {
    display: flex;
    flex-direction: column;
    gap: 2px;
    align-items: center;
    color: #1d2129;
    font-size: 10px;
    line-height: 1.4;
  }

  body.mobile-nav-strategy .mobile-strategy-sell-label {
    margin-top: 4px;
    font-size: 10px;
    font-weight: 600;
    color: #4e5969;
  }

  body.mobile-nav-strategy .mobile-strategy-sell-pill {
    margin-top: 2px;
    padding: 0 8px;
    border: 0;
    border-radius: 30px;
    background: #e8ffea;
    color: #00b42a;
    font-size: 12px;
    font-weight: 500;
    line-height: 20px;
    cursor: pointer;
  }

  body.mobile-nav-strategy .mobile-strategy-sell-pill:disabled,
  body.mobile-nav-strategy .mobile-strategy-sell-pill.is-sell-blocked {
    opacity: 0.6;
    cursor: pointer;
  }

  body.mobile-nav-strategy .mobile-strategy-pick-list {
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    min-height: 0;
    margin: 0;
    padding: 0;
    background: #fff;
    box-sizing: border-box;
    overflow: visible;
  }

  body.mobile-nav-strategy .mobile-strategy-pick-head {
    flex: 0 0 auto;
    margin: 0;
    padding: 0 12px;
    color: #1d2129;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.4;
  }

  body.mobile-nav-strategy .mobile-strategy-pick-scroll {
    flex: none;
    min-height: 0;
    overflow: visible;
    padding-bottom: 8px;
  }

  body.mobile-nav-strategy .mobile-strategy-pick-empty {
    padding: 24px 16px;
  }

  body.mobile-nav-strategy .mobile-strategy-pick-row {
    display: grid;
    grid-template-columns: minmax(56px, 1fr) minmax(48px, 1fr) minmax(44px, 0.9fr) minmax(44px, 0.9fr) auto;
    gap: 4px;
    align-items: center;
    margin: 0;
    padding: 8px 12px;
    border: 0;
    background: #fff;
    cursor: pointer;
  }

  body.mobile-nav-strategy .mobile-strategy-pick-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 0;
    text-align: center;
    line-height: 1.4;
  }

  body.mobile-nav-strategy .mobile-strategy-pick-col strong {
    color: #1d2129;
    font-size: 12px;
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
  }

  body.mobile-nav-strategy .mobile-strategy-pick-price strong,
  body.mobile-nav-strategy .mobile-strategy-pick-change strong {
    font-size: 14px;
  }

  body.mobile-nav-strategy .mobile-strategy-pick-col small {
    color: #4e5969;
    font-size: 12px;
  }

  body.mobile-nav-strategy .mobile-strategy-pick-stock small.stock-code-line {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 2px;
    width: fit-content;
    max-width: 100%;
    margin: 0 auto;
  }

  body.mobile-nav-strategy .mobile-strategy-pick-action {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  body.mobile-nav-strategy .mobile-strategy-buy-pill {
    padding: 0 8px;
    border: 0;
    border-radius: 30px;
    background: #ffece8;
    color: #f53f3f;
    font-size: 12px;
    font-weight: 500;
    line-height: 20px;
    white-space: nowrap;
    cursor: pointer;
  }

  body.mobile-nav-strategy .mobile-strategy-buy-pill:disabled,
  body.mobile-nav-strategy .mobile-strategy-sell-pill:disabled,
  body.mobile-nav-strategy .mobile-strategy-sell-pill.is-sell-blocked {
    opacity: 0.65;
    cursor: pointer;
  }

  /* 策略：去掉点击/按压时的背景色块 */
  body.mobile-nav-strategy {
    -webkit-tap-highlight-color: transparent;
  }

  body.mobile-nav-strategy .mobile-strategy-history-link,
  body.mobile-nav-strategy .mobile-strategy-update-btn,
  body.mobile-nav-strategy .mobile-strategy-buy-pill,
  body.mobile-nav-strategy .mobile-strategy-sell-pill,
  body.mobile-nav-strategy .mobile-strategy-pick-row {
    -webkit-tap-highlight-color: transparent;
  }

  body.mobile-nav-strategy .mobile-strategy-history-link:hover,
  body.mobile-nav-strategy .mobile-strategy-history-link:active,
  body.mobile-nav-strategy .mobile-strategy-history-link:focus,
  body.mobile-nav-strategy .mobile-strategy-history-link:focus-visible {
    background: transparent !important;
    border: 0 !important;
    color: #165dff !important;
    outline: none;
    box-shadow: none;
  }

  body.mobile-nav-strategy .mobile-strategy-update-btn:hover,
  body.mobile-nav-strategy .mobile-strategy-update-btn:active,
  body.mobile-nav-strategy .mobile-strategy-update-btn:focus,
  body.mobile-nav-strategy .mobile-strategy-update-btn:focus-visible {
    background: #165dff !important;
    border: 0 !important;
    color: #fff !important;
    outline: none;
    box-shadow: none;
  }

  body.mobile-nav-strategy .mobile-strategy-update-btn:disabled:hover,
  body.mobile-nav-strategy .mobile-strategy-update-btn:disabled:active,
  body.mobile-nav-strategy .mobile-strategy-update-btn:disabled:focus {
    opacity: 0.65 !important;
  }

  body.mobile-nav-strategy .mobile-strategy-buy-pill:hover,
  body.mobile-nav-strategy .mobile-strategy-buy-pill:active,
  body.mobile-nav-strategy .mobile-strategy-buy-pill:focus,
  body.mobile-nav-strategy .mobile-strategy-buy-pill:focus-visible {
    background: #ffece8 !important;
    border: 0 !important;
    color: #f53f3f !important;
    outline: none;
    box-shadow: none;
  }

  body.mobile-nav-strategy .mobile-strategy-sell-pill:hover,
  body.mobile-nav-strategy .mobile-strategy-sell-pill:active,
  body.mobile-nav-strategy .mobile-strategy-sell-pill:focus,
  body.mobile-nav-strategy .mobile-strategy-sell-pill:focus-visible {
    background: #e8ffea !important;
    border: 0 !important;
    color: #00b42a !important;
    outline: none;
    box-shadow: none;
  }

  body.mobile-nav-strategy .mobile-strategy-buy-pill:disabled:hover,
  body.mobile-nav-strategy .mobile-strategy-buy-pill:disabled:active,
  body.mobile-nav-strategy .mobile-strategy-buy-pill:disabled:focus,
  body.mobile-nav-strategy .mobile-strategy-sell-pill:disabled:hover,
  body.mobile-nav-strategy .mobile-strategy-sell-pill:disabled:active,
  body.mobile-nav-strategy .mobile-strategy-sell-pill:disabled:focus,
  body.mobile-nav-strategy .mobile-strategy-sell-pill.is-sell-blocked:hover,
  body.mobile-nav-strategy .mobile-strategy-sell-pill.is-sell-blocked:active,
  body.mobile-nav-strategy .mobile-strategy-sell-pill.is-sell-blocked:focus {
    opacity: 0.65 !important;
  }

  body.mobile-nav-strategy .mobile-strategy-pick-row:hover,
  body.mobile-nav-strategy .mobile-strategy-pick-row:active,
  body.mobile-nav-strategy .mobile-strategy-pick-row:focus,
  body.mobile-nav-strategy .mobile-strategy-pick-row:focus-visible {
    background: #fff !important;
    outline: none;
    box-shadow: none;
  }

  body.mobile-nav-mine #appMain > :not(#mobileMinePanel):not(#mobileSearchSheet):not(#searchBand):not(#mobileWatchlistPanel) {
    display: none !important;
  }

  body.mobile-nav-mine.mobile-watchlist-open #mobileMinePanel {
    display: none !important;
  }

  body.mobile-nav-mine.mobile-watchlist-open #appMain {
    overflow: hidden !important;
  }

  body.mobile-nav-mine.mobile-watchlist-open #mobileWatchlistPanel:not([hidden]) {
    display: flex !important;
    flex: 1 1 auto !important;
    flex-direction: column !important;
    align-self: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: 100% !important;
    max-height: 100% !important;
    overflow: hidden !important;
  }

  body.mobile-nav-mine #appMain {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box !important;
    background: #fff;
  }

  body.mobile-nav-mine #mobileMinePanel {
    display: flex !important;
    flex: 1 1 auto;
    flex-direction: column;
    align-self: stretch;
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  body.mobile-nav-mine #mobileMinePanel[hidden] {
    display: none !important;
  }

  body.mobile-nav-mine .major-indices-strip.mobile-hero-indices {
    display: none !important;
  }

  body.mobile-nav-mine .mobile-topbar-home-slot,
  body.mobile-nav-mine .mobile-topbar-mode-discover,
  body.mobile-nav-mine .mobile-topbar-mode-ai,
  body.mobile-nav-mine .mobile-topbar-mode-strategy {
    display: none !important;
  }

  body.mobile-nav-mine .topbar:has(.mobile-topbar-row) .mobile-topbar-center {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    justify-self: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0;
    margin: 0;
    gap: 0;
    overflow: visible;
  }

  body.mobile-nav-mine .mobile-mine-topbar-brand.mobile-topbar-mode-mine {
    display: flex !important;
  }

  body.mobile-nav-mine .mobile-mine-topbar-brand {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    min-width: 0;
    max-width: 100%;
  }

  body.mobile-nav-mine .mobile-mine-topbar-title {
    margin: 0;
    font-size: 18px;
    font-weight: 500;
    line-height: 26px;
    color: #fff;
    text-align: center;
    white-space: nowrap;
  }

  body.mobile-nav-mine .mobile-mine-topbar-user-line {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin: 0;
    padding: 0 8px;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }

  body.mobile-nav-mine .mobile-mine-user-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 6px;
    width: auto;
    max-width: 100%;
    font-size: 12px;
    font-weight: 400;
    line-height: 17px;
    color: #c9cdd4;
    text-align: center;
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
    word-break: break-word;
  }

  body.mobile-nav-mine .mobile-mine-user-label .chat-role-tag {
    font-size: 10px;
  }

  body.mobile-nav-mine .mobile-mine-user-status {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    width: auto;
    max-width: 100%;
    padding: 0 6px;
    border-radius: 2px;
    font-size: 12px;
    font-weight: 400;
    line-height: 17px;
    color: #c9cdd4;
    text-align: center;
    white-space: nowrap;
  }

  body.mobile-nav-mine .mobile-mine-user-status.is-logged {
    color: #00b42a;
    background: rgba(0, 180, 42, 0.12);
  }

  body.mobile-nav-mine .mobile-mine-user-status:empty {
    display: none;
  }

  body:not(.mobile-nav-mine) .mobile-mine-topbar-brand.mobile-topbar-mode-mine {
    display: none !important;
  }

  body.mobile-nav-mine #mobileSearchOpenBtn.mobile-icon-btn,
  body.mobile-nav-mine #refreshBtn.mobile-icon-btn {
    display: inline-flex !important;
  }

  body.mobile-nav-mine .topbar:has(.mobile-topbar-row) .mobile-topbar-row {
    grid-template-columns: 44px minmax(0, 1fr) 44px !important;
  }

  body.mobile-nav-mine .topbar:has(.mobile-topbar-row) .mobile-topbar-actions {
    flex: 0 0 44px !important;
    width: 44px !important;
    gap: 0 !important;
  }

  body.mobile-nav-mine .topbar:has(.mobile-topbar-row),
  body.mobile-nav-mine .topbar:has(.mobile-topbar-row) .mobile-topbar-row {
    background: var(--m-header-bg, #202638) !important;
    border-bottom: 0 !important;
    box-shadow: none !important;
  }

  body.mobile-nav-mine .topbar:has(.mobile-topbar-row) {
    padding-bottom: 8px !important;
  }

  body.mobile-nav-mine #mobileMinePanel.mobile-mine-panel {
    flex-direction: column;
    gap: 0;
    min-height: calc(100dvh - var(--mobile-main-offset, 120px) - var(--m-nav-h) - env(safe-area-inset-bottom, 0px));
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    background: #fff;
  }

  body.mobile-nav-mine .mobile-mine-content {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 0;
    min-height: 0;
    width: 100%;
    padding: 0;
    background: #fff;
    border: 0 !important;
    border-top: 0 !important;
    box-sizing: border-box;
  }

  body.mobile-nav-mine .mobile-mine-main {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    width: 100%;
  }

  body.mobile-nav-mine .mobile-mine-bottom {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    margin-top: auto;
    margin-bottom: 12px;
    width: 100%;
    padding: 0 12px 12px;
    box-sizing: border-box;
  }

  body.mobile-nav-mine .mobile-mine-menu {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    align-self: stretch;
    margin: 0;
    padding: 0;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }

  body.mobile-nav-mine .mobile-mine-menu-cards {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    align-self: stretch;
    gap: 8px;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding: 12px;
    box-sizing: border-box;
  }

  body.mobile-nav-mine .mobile-mine-menu-row {
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr) auto;
    column-gap: 4px;
    align-items: center;
    align-self: stretch;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0;
    padding: 12px;
    border: 1px solid #f2f3f5;
    border-radius: 4px;
    background: #fff;
    color: #1d2129;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.4;
    text-align: left;
    cursor: pointer;
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
    appearance: none;
    -webkit-appearance: none;
  }

  body.mobile-nav-mine button.mobile-mine-menu-row {
    font: inherit;
    width: 100%;
    max-width: 100%;
  }

  body.mobile-nav-mine .mobile-mine-menu-icon,
  body.mobile-nav-mine .mobile-mine-menu-chevron {
    width: 20px;
    height: 20px;
    display: block;
    justify-self: center;
    flex-shrink: 0;
  }

  body.mobile-nav-mine .mobile-mine-menu-row .mobile-icon-img {
    filter: none;
  }

  body.mobile-nav-mine .mobile-mine-menu-label {
    display: block;
    min-width: 0;
    width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    justify-self: stretch;
  }

  body.mobile-nav-mine .mobile-mine-menu-trailing {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    min-width: 20px;
  }

  body.mobile-nav-mine .mobile-mine-menu-status-text {
    font-size: 12px;
    color: var(--muted, #86909c);
    flex-shrink: 0;
  }

  body.mobile-nav-mine .mobile-mine-menu-status-text.is-on {
    color: #00b42a;
  }

  body.mobile-nav-mine .mobile-mine-unread-badge {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #f53f3f;
    flex-shrink: 0;
    box-shadow: 0 0 0 1px rgba(245, 63, 63, 0.25);
    pointer-events: none;
  }

  body.mobile-nav-mine .mobile-mine-unread-badge[hidden] {
    display: none !important;
  }

  body.mobile-nav-mine .mobile-mine-logout-row {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 100%;
    min-height: 44px;
    margin: 0;
    padding: 12px;
    border: 1px solid #e5e6eb;
    border-radius: 4px;
    background: #fff;
    color: #1d2129;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.4;
    text-align: center;
    text-decoration: none;
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
  }

  body.mobile-nav-mine .mobile-mine-logout-row[hidden] {
    display: none !important;
  }

  body.mobile-nav-mine .mobile-mine-logout-row.mobile-mine-login-row {
    background: #165dff;
    border-color: #165dff;
    color: #fff;
  }

  body.mobile-nav-mine .mobile-mine-legal {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    margin: 0;
    padding: 0;
    width: 100%;
    text-align: center;
  }

  body.mobile-nav-mine .mobile-mine-disclaimer,
  body.mobile-nav-mine .mobile-mine-icp {
    margin: 0;
    width: 100%;
    color: #86909c;
    font-size: 8px;
    line-height: 1.4;
    text-align: center;
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
  }

  body.mobile-nav-mine .mobile-mine-disclaimer + .mobile-mine-icp {
    margin-top: 0;
  }

  body.mobile-nav-mine .mobile-mine-icp a {
    color: #86909c;
    text-decoration: none;
  }


  .mobile-gzh-modal {
    position: fixed;
    inset: 0;
    z-index: 130;
  }

  .mobile-gzh-modal[hidden] {
    display: none !important;
  }

  .mobile-gzh-modal .modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
  }

  .mobile-gzh-modal-panel {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    width: min(335px, calc(100vw - 40px));
    padding: 16px 0;
    border-radius: 8px;
    background: #fff;
    box-sizing: border-box;
    overflow: hidden;
  }

  .mobile-gzh-modal-body {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    gap: 0;
    text-align: center;
  }

  .mobile-gzh-modal-body img {
    display: block;
    width: min(293px, calc(100% - 24px));
    max-width: 100%;
    height: auto;
    aspect-ratio: 1;
    object-fit: contain;
    pointer-events: none;
  }

  .mobile-gzh-modal-title {
    margin: 0;
    padding: 0 16px;
    color: #1d2129;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.4;
    text-align: center;
    word-break: break-word;
  }

  .mobile-gzh-modal-actions {
    width: 100%;
    padding: 0 16px;
    box-sizing: border-box;
  }

  .mobile-gzh-modal-close {
    width: 100%;
    height: 44px;
    min-height: 44px;
    padding: 0 16px;
    border: 1px solid #e5e6eb;
    border-radius: 4px;
    background: #f7f8fa;
    color: #1d2129;
    font-size: 14px;
    font-weight: 400;
    line-height: 22px;
    text-align: center;
    cursor: pointer;
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
  }

  body.mobile-nav-ai {
    touch-action: manipulation;
    overscroll-behavior-x: none;
  }

  body.mobile-nav-ai #superAnalysisModal,
  body.mobile-nav-ai #superAnalysisModal .super-analysis-modal-panel,
  body.mobile-nav-ai #superAnalysisModal .super-analysis-modal-body,
  body.mobile-nav-ai #superAnalysisModal .super-analysis-modal-scroll,
  body.mobile-nav-ai #superAnalysisModal .super-analysis-messages,
  body.mobile-nav-ai #superAnalysisModal .super-analysis-compose,
  body.mobile-nav-ai #superAnalysisModal .super-analysis-field,
  body.mobile-nav-ai #superAnalysisHistoryDrawer {
    touch-action: manipulation;
    overscroll-behavior-x: none;
  }

  body.mobile-nav-ai #superAnalysisModal .super-analysis-input {
    touch-action: manipulation;
  }

  body.mobile-nav-ai #appMain,
  body.mobile-nav-ai .major-indices-strip.mobile-hero-indices {
    display: none !important;
  }

  body.mobile-nav-ai .topbar {
    position: relative !important;
    z-index: 45 !important;
  }

  body.mobile-nav-ai #superAnalysisModal .super-analysis-history-panel {
    display: none !important;
  }

  body.mobile-nav-ai .mobile-topbar-mode-home,
  body.mobile-nav-ai .mobile-topbar-mode-discover,
  body.mobile-nav-ai .mobile-topbar-mode-strategy,
  body.mobile-nav-ai .mobile-topbar-mode-mine {
    display: none !important;
  }

  body.mobile-nav-ai .mobile-ai-topbar-brand.mobile-topbar-mode-ai {
    display: flex !important;
  }

  body.mobile-nav-ai .mobile-icon-btn.mobile-topbar-mode-ai {
    display: inline-flex !important;
  }

  body:not(.mobile-nav-ai) .mobile-topbar-mode-ai {
    display: none !important;
  }

  body.mobile-nav-ai .topbar:has(.mobile-topbar-row) .mobile-topbar-row {
    grid-template-columns: 44px minmax(0, 1fr) 44px !important;
  }

  body.mobile-nav-ai .topbar:has(.mobile-topbar-row) .mobile-topbar-center {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    justify-self: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0;
    margin: 0;
    gap: 0;
  }

  body.mobile-nav-ai .mobile-ai-topbar-brand {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    min-width: 0;
    max-width: 100%;
  }

  body.mobile-nav-ai .topbar:has(.mobile-topbar-row) .mobile-topbar-actions {
    flex: 0 0 44px !important;
    width: 44px !important;
    gap: 0 !important;
  }

  body.mobile-nav-ai .topbar:has(.mobile-topbar-row) .mobile-topbar-actions .feedback-top-btn-wrap {
    display: none !important;
  }

  body.mobile-nav-ai .mobile-ai-topbar-title {
    margin: 0;
    padding: 0;
    font-size: 18px;
    font-weight: 500;
    line-height: 26px;
    color: #1d2129;
    text-align: center;
    white-space: nowrap;
  }

  body.mobile-nav-ai .mobile-ai-topbar-auth-hint {
    margin: 0;
    padding: 0;
    font-size: 12px;
    font-weight: 400;
    line-height: 17px;
    color: #4e5969;
    text-align: center;
    white-space: nowrap;
  }

  body.mobile-nav-ai .mobile-ai-topbar-auth-hint:empty {
    display: none;
  }

  body.mobile-nav-ai .topbar:has(.mobile-topbar-row) {
    background: #fff !important;
    border-bottom: 0 !important;
    box-shadow: none !important;
    padding-bottom: 0 !important;
  }

  body.mobile-nav-ai .topbar:has(.mobile-topbar-row) .mobile-topbar-row {
    background: #fff !important;
    border-bottom: 0 !important;
    box-shadow: none !important;
    padding-bottom: 0 !important;
  }

  body.mobile-nav-ai .mobile-icon-img--dark {
    filter: none;
  }

  body.mobile-nav-ai .topbar:has(.mobile-topbar-row) #superAnalysisHistoryBtnMobile,
  body.mobile-nav-ai .topbar:has(.mobile-topbar-row) #superAnalysisNewChatBtnMobile {
    -webkit-tap-highlight-color: transparent;
  }

  body.mobile-nav-ai .topbar:has(.mobile-topbar-row) #superAnalysisHistoryBtnMobile:hover,
  body.mobile-nav-ai .topbar:has(.mobile-topbar-row) #superAnalysisHistoryBtnMobile:active,
  body.mobile-nav-ai .topbar:has(.mobile-topbar-row) #superAnalysisHistoryBtnMobile:focus,
  body.mobile-nav-ai .topbar:has(.mobile-topbar-row) #superAnalysisHistoryBtnMobile:focus-visible,
  body.mobile-nav-ai .topbar:has(.mobile-topbar-row) #superAnalysisNewChatBtnMobile:hover,
  body.mobile-nav-ai .topbar:has(.mobile-topbar-row) #superAnalysisNewChatBtnMobile:active,
  body.mobile-nav-ai .topbar:has(.mobile-topbar-row) #superAnalysisNewChatBtnMobile:focus,
  body.mobile-nav-ai .topbar:has(.mobile-topbar-row) #superAnalysisNewChatBtnMobile:focus-visible {
    background: transparent !important;
    opacity: 1;
    outline: none;
    transform: none;
  }

  body.mobile-nav-ai #superAnalysisModal {
    display: flex !important;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 35;
    align-items: stretch;
    justify-content: stretch;
    padding: 0;
    margin: 0;
    pointer-events: auto;
  }

  body.mobile-nav-ai #superAnalysisModal[hidden] {
    display: none !important;
  }

  body.mobile-nav-ai #superAnalysisModal .modal-backdrop {
    display: none !important;
  }

  body.mobile-nav-ai #superAnalysisModal .super-analysis-modal-panel {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 100%;
    height: 100%;
    max-height: 100%;
    min-height: 0;
    margin: 0;
    padding-top: var(--mobile-ai-sheet-top, var(--mobile-main-offset, 62px));
    padding-bottom: var(--m-nav-h);
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: #f7f8fa;
    box-sizing: border-box;
    overflow: hidden;
  }

  body.mobile-nav-ai #superAnalysisModal .super-analysis-modal-head {
    position: fixed;
    left: 0;
    top: 0;
    width: 0;
    height: 0;
    overflow: visible;
    padding: 0;
    margin: 0;
    border: 0;
    pointer-events: none;
    z-index: 120;
  }

  body.mobile-nav-ai #superAnalysisModal .super-analysis-modal-head-title,
  body.mobile-nav-ai #superAnalysisModal .super-analysis-head-toolbar > .secondary,
  body.mobile-nav-ai #superAnalysisModal #superAnalysisModalClose,
  body.mobile-nav-ai #superAnalysisModal .super-analysis-history-dropdown #superAnalysisHistoryBtn {
    display: none !important;
  }

  body.mobile-nav-ai #superAnalysisModal .super-analysis-history-dropdown {
    display: none !important;
  }

  body.mobile-nav-ai #superAnalysisModal .modal-body.super-analysis-modal-body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    padding: 0;
    background: transparent;
    overflow: hidden;
    gap: 0;
  }

  body.mobile-nav-ai #superAnalysisModal .super-analysis-modal-scroll {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
    min-height: 0;
    overflow: hidden;
    padding: 8px 0 0;
    background: #fff;
  }

  body.mobile-nav-ai #superAnalysisModal .super-analysis-auth-hint {
    display: none !important;
  }

  body.mobile-nav-ai #superAnalysisModal .super-analysis-messages {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: 0;
    gap: 12px;
    border: 0;
    border-radius: 0;
    background: #fff;
  }

  body.mobile-nav-ai #superAnalysisModal .super-analysis-msg-row {
    display: flex;
    width: 100%;
    padding: 0 12px;
    box-sizing: border-box;
    background: #fff;
  }

  body.mobile-nav-ai #superAnalysisModal .super-analysis-msg-row--user {
    justify-content: flex-end;
  }

  body.mobile-nav-ai #superAnalysisModal .super-analysis-msg-row--assistant,
  body.mobile-nav-ai #superAnalysisModal .super-analysis-msg-row--thinking,
  body.mobile-nav-ai #superAnalysisModal .super-analysis-msg-row--error {
    justify-content: flex-start;
  }

  body.mobile-nav-ai #superAnalysisModal .super-analysis-msg {
    max-width: 100%;
    padding: 8px 12px;
    font-size: 14px;
    line-height: 1.4;
    border: 0;
    white-space: pre-wrap;
    word-break: break-word;
  }

  body.mobile-nav-ai #superAnalysisModal .super-analysis-msg--user {
    flex: 0 1 auto;
    max-width: 100%;
    background: #bedaff;
    color: #1d2129;
    border-radius: 8px 8px 2px 8px;
  }

  body.mobile-nav-ai #superAnalysisModal .super-analysis-msg--assistant,
  body.mobile-nav-ai #superAnalysisModal .super-analysis-msg--thinking {
    flex: 1 1 auto;
    width: 100%;
    max-width: 100%;
    background: #f2f3f5;
    color: #1d2129;
    border-radius: 8px 8px 8px 2px;
    border: 0;
  }

  body.mobile-nav-ai #superAnalysisModal .super-analysis-msg--thinking {
    border: 0;
    background: #f2f3f5;
  }

  body.mobile-nav-ai #superAnalysisModal .super-analysis-entity-link {
    color: #165dff;
    text-decoration: underline;
    text-underline-offset: 2px;
  }

  body.mobile-nav-ai #superAnalysisModal .super-analysis-msg--assistant strong,
  body.mobile-nav-ai #superAnalysisModal .super-analysis-msg--thinking strong {
    font-weight: 500;
    color: #1d2129;
  }

  body.mobile-nav-ai #superAnalysisModal .super-analysis-thinking-label {
    color: #1d2129;
    font-weight: 400;
  }

  body.mobile-nav-ai #superAnalysisModal .super-analysis-thinking-note {
    color: #86909c;
    font-weight: 400;
  }

  body.mobile-nav-ai #superAnalysisModal .super-analysis-form-error {
    flex: 0 0 auto;
    margin: 0 12px 8px;
  }

  body.mobile-nav-ai #superAnalysisModal .super-analysis-compose {
    flex: 0 0 auto;
    position: sticky;
    bottom: 0;
    z-index: 2;
    padding: 12px;
    margin: 0;
    background: #fff;
    border-top: 0;
    min-height: 100px;
    box-sizing: border-box;
  }

  body.mobile-nav-ai #superAnalysisModal .super-analysis-marquee {
    display: none !important;
  }

  body.mobile-nav-ai #superAnalysisModal .super-analysis-input-wrap {
    display: block;
  }

  body.mobile-nav-ai #superAnalysisModal .super-analysis-field {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 100px;
    padding: 8px 12px;
    border: 1px solid #e5e6eb;
    border-radius: 8px;
    background: #fff;
    box-shadow: none;
  }

  body.mobile-nav-ai #superAnalysisModal .super-analysis-field:focus-within {
    border-color: #e5e6eb;
    box-shadow: none;
    outline: none;
  }

  body.mobile-nav-ai #superAnalysisModal .super-analysis-input:focus,
  body.mobile-nav-ai #superAnalysisModal .super-analysis-input:focus-visible {
    outline: none;
    box-shadow: none;
  }

  body.mobile-nav-ai #superAnalysisModal .super-analysis-input {
    min-height: 22px;
    max-height: 120px;
    padding: 0;
    margin: 0;
    resize: none;
    color: #1d2129;
    background: transparent;
    font-size: 16px !important;
    line-height: 1.5;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
  }

  body.mobile-nav-ai #superAnalysisModal .super-analysis-input::placeholder {
    color: #86909c;
    font-size: 16px !important;
  }

  body.mobile-nav-ai #superAnalysisModal .super-analysis-send-cluster {
    position: static;
    display: flex;
    justify-content: flex-end;
    padding-top: 8px;
    pointer-events: none;
  }

  body.mobile-nav-ai #superAnalysisModal .super-analysis-send-inline {
    pointer-events: auto;
    min-height: 32px;
    padding: 5px 16px;
    border: 0;
    border-radius: 4px;
    background: #165dff;
    color: #fff;
    font-size: 14px;
    font-weight: 400;
    line-height: 22px;
  }

  body.mobile-nav-ai #superAnalysisModal .super-analysis-send-inline:disabled {
    opacity: 0.55;
    cursor: not-allowed;
    pointer-events: none;
    background: #165dff;
    color: #fff;
  }

  #searchBand {
    display: none;
  }

  .mobile-search-kind-tabs {
    display: none;
  }

  body.mobile-search-sheet-open {
    background: #f7f8fa;
  }

  body.mobile-search-sheet-open.mobile-search-open::before {
    display: none !important;
  }

  body.mobile-search-sheet-open .topbar:has(.mobile-topbar-row) {
    display: none !important;
  }

  body.mobile-search-sheet-open .mobile-bottom-nav {
    display: none !important;
  }

  body.mobile-search-sheet-open #searchBand,
  body.mobile-search-sheet-open.mobile-nav-discover #appMain > #searchBand,
  body.mobile-search-sheet-open.mobile-nav-strategy #appMain > #searchBand,
  body.mobile-search-sheet-open.mobile-nav-mine #appMain > #searchBand {
    display: flex !important;
    flex-direction: column;
    gap: 12px;
    position: fixed;
    left: 0;
    right: 0;
    top: calc(52px + env(safe-area-inset-top, 0px));
    bottom: 0;
    z-index: 94;
    pointer-events: auto;
    margin: 0 !important;
    padding: 12px 12px calc(12px + env(safe-area-inset-bottom, 0px));
    border-radius: 0;
    background: #fff;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    box-shadow: none;
    border: 0;
    grid-template-columns: 1fr !important;
    align-items: stretch;
  }

  body.mobile-search-sheet-open #searchBand .global-data-init {
    display: none !important;
  }

  body.mobile-search-sheet-open .mobile-search-kind-tabs {
    position: relative;
    display: flex;
    align-items: stretch;
    gap: 0;
    width: 100%;
    padding: 2px;
    border-radius: 6px;
    background: #f2f3f5;
    box-sizing: border-box;
    overflow: hidden;
  }

  body.mobile-search-sheet-open .mobile-search-kind-tabs-thumb {
    position: absolute;
    top: 2px;
    left: 0;
    z-index: 0;
    height: calc(100% - 4px);
    border-radius: 4px;
    background: #fff;
    box-shadow: none;
    pointer-events: none;
    transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1), width 0.28s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform, width;
  }

  body.mobile-search-sheet-open .mobile-search-kind-tab {
    position: relative;
    z-index: 1;
    flex: 1 1 0;
    min-width: 0;
    padding: 4px 12px;
    border: 0;
    border-radius: 4px;
    background: transparent !important;
    color: #4e5969;
    font-size: 14px;
    font-weight: 400;
    line-height: 22px;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: color 0.2s ease;
  }

  body.mobile-search-sheet-open .mobile-search-kind-tab.is-active {
    background: transparent !important;
    color: #165dff;
    font-weight: 500;
  }

  @media (prefers-reduced-motion: reduce) {
    body.mobile-search-sheet-open .mobile-search-kind-tabs-thumb {
      transition: none;
    }
  }

  body.mobile-search-sheet-open.mobile-search-kind-sector .search-field--stock {
    display: none !important;
  }

  body.mobile-search-sheet-open.mobile-search-kind-stock .search-field--sector {
    display: none !important;
  }

  body.mobile-search-sheet-open .search-field {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 12px;
    width: 100%;
    min-width: 0;
    min-height: 0;
    position: relative;
  }

  body.mobile-search-sheet-open .search-field .search-history {
    flex: 0 0 auto;
    order: 2;
    width: 100%;
    min-width: 0;
    min-height: auto;
    margin: 0;
    padding: 0;
    overflow: visible;
    grid-column: auto;
    grid-row: auto;
  }

  body.mobile-search-sheet-open .search-field .search-input-wrap {
    order: 1;
  }

  body.mobile-search-sheet-open .search-field .search-dropdown {
    order: 3;
  }

  body.mobile-search-sheet-open .search-field > label {
    display: none !important;
  }

  body.mobile-search-sheet-open .search-field .search-input-control {
    min-height: 44px;
    padding: 8px 12px;
    border: 1px solid #e5e6eb;
    border-radius: 8px;
    background: #fff;
    color: #1d2129;
    font-size: 16px;
    line-height: 1.4;
    box-sizing: border-box;
    pointer-events: auto;
    touch-action: manipulation;
    outline: none;
    box-shadow: none;
  }

  body.mobile-search-sheet-open .search-field .search-input-control.has-value {
    padding-right: 36px;
  }

  body.mobile-search-sheet-open .search-field .search-input-control:focus {
    border: 1px solid #165dff;
    outline: none;
    box-shadow: none;
  }

  body.mobile-search-sheet-open .search-field .search-input-control::placeholder {
    color: #86909c;
    font-size: 14px;
  }

  body.mobile-search-sheet-open .search-dropdown .related-row {
    background: transparent;
    border: 0;
    border-bottom: 1px solid #f2f3f5;
    border-radius: 0;
    padding: 12px 0;
  }

  body.mobile-search-sheet-open .search-dropdown .related-list .related-row:last-child {
    border-bottom: 0;
  }

  body.mobile-search-sheet-open .search-dropdown .related-row:hover,
  body.mobile-search-sheet-open .search-dropdown .related-row:active,
  body.mobile-search-sheet-open .search-dropdown .related-row:focus,
  body.mobile-search-sheet-open .search-dropdown .related-row:focus-visible {
    background: #f7f8fa;
    border-color: #f2f3f5;
  }

  body.mobile-search-sheet-open .search-dropdown > strong {
    padding: 0 0 8px;
    margin: 0;
    font-size: 12px;
    font-weight: 400;
    color: #86909c;
  }

  body.mobile-search-sheet-open .search-dropdown .mini-list {
    gap: 0;
  }

  body.mobile-search-sheet-open .search-dropdown:not(:empty) {
    position: relative !important;
    top: auto !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
    flex: 1 1 auto;
    width: 100% !important;
    min-height: 0;
    max-height: none !important;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    border: 1px solid #e5e6eb;
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(29, 33, 41, 0.12);
    z-index: 12 !important;
  }

  body.mobile-search-sheet-open #searchHistory.search-history {
    display: flex !important;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    width: 100%;
    min-height: auto;
    overflow: visible;
    grid-column: auto;
    grid-row: auto;
  }

  body.mobile-search-sheet-open #searchHistory.search-history:empty {
    display: none !important;
  }

  body.mobile-search-sheet-open .mobile-search-history-block {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100%;
  }

  body.mobile-search-sheet-open .mobile-search-history-head {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
  }

  body.mobile-search-sheet-open .mobile-search-history-label {
    flex: 1 1 auto;
    min-width: 0;
    color: #4e5969;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.4;
  }

  body.mobile-search-sheet-open .mobile-search-history-clear-all {
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #86909c;
    cursor: pointer;
    opacity: 1;
    -webkit-tap-highlight-color: transparent;
  }

  body.mobile-search-sheet-open .mobile-search-history-clear-all:hover {
    opacity: 0.85;
  }

  body.mobile-search-sheet-open .mobile-search-history-clear-all .mobile-search-history-delete-icon,
  body.mobile-search-sheet-open .mobile-search-history-clear-all img {
    display: block;
    width: 20px;
    height: 20px;
    object-fit: contain;
  }

  body.mobile-search-sheet-open #searchHistory .search-history-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    min-width: 0;
    overflow: visible;
  }

  body.mobile-search-sheet-open #searchHistory .search-history-chip {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    border: 0;
    border-radius: 30px;
    background: #e8f3ff;
  }

  body.mobile-search-sheet-open #searchHistory .search-history-chip:hover {
    background: #d6e8ff;
  }

  body.mobile-search-sheet-open #searchHistory .search-history-chip [data-search-history] {
    gap: 4px;
    min-height: 28px;
    padding: 5px 0 5px 8px;
    color: #165dff;
    font-size: 12px;
    font-weight: 500;
    line-height: 18px;
  }

  body.mobile-search-sheet-open #searchHistory .search-history-chip [data-search-history] span {
    display: none;
  }

  body.mobile-search-sheet-open #searchHistory .search-history-remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    margin: 0 4px 0 0;
    padding: 0;
    border: 0;
    background: transparent;
    opacity: 1;
    color: #165dff;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }

  body.mobile-search-sheet-open #searchHistory .search-history-remove svg {
    display: block;
    width: 12px;
    height: 12px;
  }

  body.mobile-search-sheet-open #searchHistory .search-history-clear {
    display: none !important;
  }

  .mobile-search-sheet {
    position: fixed;
    inset: 0;
    z-index: 95;
    pointer-events: none;
  }

  .mobile-search-sheet:not([hidden]) {
    pointer-events: none;
  }

  body.mobile-search-sheet-open.mobile-nav-discover #appMain > #mobileSearchSheet:not([hidden]),
  body.mobile-search-sheet-open.mobile-nav-home #appMain > #mobileSearchSheet:not([hidden]),
  body.mobile-search-sheet-open.mobile-nav-ai #appMain > #mobileSearchSheet:not([hidden]),
  body.mobile-search-sheet-open.mobile-nav-strategy #appMain > #mobileSearchSheet:not([hidden]),
  body.mobile-search-sheet-open.mobile-nav-mine #appMain > #mobileSearchSheet:not([hidden]) {
    display: block !important;
  }

  .mobile-search-sheet-backdrop {
    display: none;
  }

  .mobile-search-sheet-head {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 96;
    display: grid;
    grid-template-columns: 20px 1fr 20px;
    align-items: center;
    gap: 0;
    min-height: calc(52px + env(safe-area-inset-top, 0px));
    padding: calc(env(safe-area-inset-top, 0px) + 10px) 12px 10px;
    box-sizing: border-box;
    background: #fff;
    border-bottom: 1px solid #e5e6eb;
    pointer-events: auto;
  }

  .mobile-search-sheet-back {
    grid-column: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
  }

  .mobile-search-sheet-back-icon {
    display: block;
    width: 20px;
    height: 20px;
  }

  .mobile-search-sheet-title {
    grid-column: 2;
    margin: 0;
    font-size: 18px;
    font-weight: 500;
    line-height: 26px;
    color: #1d2129;
    text-align: center;
    white-space: nowrap;
  }

  .mobile-search-sheet-head-spacer {
    grid-column: 3;
    width: 20px;
    height: 20px;
  }

  .status-band[data-mobile-home-section] {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    border-top: none !important;
    outline: none !important;
    box-shadow: none !important;
    background: #fff;
    overflow: visible;
  }

  .status-band[data-mobile-home-section] > div {
    flex: none !important;
    flex-basis: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    scroll-snap-align: none !important;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    margin: 0;
    padding: 12px 16px;
    background: #fff;
  }

  .status-band[data-mobile-home-section] > .market-overview-card {
    display: flex !important;
    flex-direction: column !important;
    flex: none !important;
    flex-basis: auto !important;
    gap: 8px;
    box-sizing: border-box;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 8px 16px 0 !important;
    border-radius: 0;
    background: #fff !important;
    box-shadow: none !important;
    border: 0 !important;
    min-width: 0 !important;
    overflow: visible !important;
    color: #1d2129;
  }

  .status-band .market-overview-card {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px;
    min-width: 0;
    width: 100%;
    max-width: 100%;
  }

  .status-band .market-overview-card > * {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  .status-band .market-overview-head {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between;
    gap: 8px;
    width: 100%;
    min-width: 0;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
    border: 0 !important;
    min-height: 28px;
    overflow: visible;
  }

  .status-band[data-mobile-home-section] .market-overview-head {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
    border-bottom: 0 !important;
  }

  .status-band .market-overview-head .label {
    display: inline-flex !important;
    align-items: center !important;
    align-self: center !important;
    flex: 0 0 auto;
    margin: 0 !important;
    padding: 0;
    color: #1d2129;
    font-size: 16px;
    font-weight: 500;
    line-height: 22px;
    white-space: nowrap;
  }

  .status-band #marketTone,
  .status-band #marketTone.tone-badge {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    align-items: center !important;
    align-self: center !important;
    justify-content: center;
    flex: 0 1 auto;
    min-width: 0 !important;
    max-width: calc(100% - 88px);
    min-height: 28px !important;
    margin: 0 0 0 auto !important;
    padding: 4px 8px !important;
    border-radius: 4px !important;
    border: 0 !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 1.4 !important;
    letter-spacing: 0;
    text-align: center;
    white-space: nowrap !important;
    overflow: hidden;
    text-overflow: ellipsis;
    overflow-wrap: normal;
    word-break: normal;
    background: #ff7d00 !important;
    color: #fff !important;
    box-shadow: none !important;
  }

  .status-band #marketTone.tone-strong {
    color: #fff !important;
    background: #f53f3f !important;
  }

  .status-band #marketTone.tone-weak {
    color: #fff !important;
    background: #009a29 !important;
  }

  .status-band .market-overview-card .mobile-market-tip {
    display: flex !important;
    flex-direction: column;
    visibility: visible !important;
    opacity: 1 !important;
    box-sizing: border-box;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0;
    margin-top: 0;
    padding: 8px 12px;
    border-radius: 8px;
    border: 1px solid #ffcf8b !important;
    background: linear-gradient(90deg, #ffeed4 0%, #ffe4ba 100%) !important;
    box-shadow: none;
    align-self: stretch;
  }

  .mobile-market-tip-head {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 6px;
    margin-bottom: 8px;
    min-height: 18px;
  }

  .status-band .market-overview-card .mobile-market-tip .label,
  .mobile-market-tip-head .label {
    display: inline-flex !important;
    align-items: center !important;
    align-self: center !important;
    margin: 0 !important;
    padding: 0;
    font-size: 14px;
    font-weight: 500;
    line-height: 18px;
    color: #1d2129;
  }

  .mobile-market-tip-icon {
    display: inline-flex;
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    align-items: center;
    justify-content: center;
    align-self: center;
    margin: 0;
    border-radius: 50%;
    background: #ff7d00;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    font-style: normal;
    line-height: 1;
  }

  .mobile-summary-lead {
    display: block !important;
    visibility: visible !important;
    margin: 0;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    color: #4e5969;
    font-size: 14px;
    line-height: 1.4;
    text-align: justify;
    overflow-wrap: anywhere;
    word-break: break-word;
    max-height: 5.6em;
    overflow: hidden;
  }

  .status-band[data-mobile-home-section] > .mobile-monitor-slot {
    display: flex;
    justify-content: stretch;
    box-sizing: border-box;
    width: 100% !important;
    max-width: 100% !important;
    margin: 12px 0 0 !important;
    padding: 0 16px !important;
    background: #fff !important;
    border: 0 !important;
    border-bottom: 0 !important;
    min-width: 0 !important;
  }

  .mobile-monitor-slot {
    padding: 0;
    background: transparent;
  }

  .mobile-monitor-btn {
    width: 100%;
    max-width: none;
    min-height: 40px;
    padding: 10px 20px;
    box-sizing: border-box;
    border: 1px solid #bedaff;
    border-radius: 8px;
    background: #e8f3ff;
    color: #165dff;
    font-size: 14px;
    font-weight: 600;
    white-space: nowrap;
    cursor: pointer;
  }

  .mobile-monitor-btn.is-super-review {
    border-color: #165dff;
    background: #165dff;
    color: #fff;
  }

  .mobile-monitor-btn:disabled {
    opacity: 0.65;
  }

  .status-band[data-mobile-home-section] > .mobile-market-tech-grid {
    display: grid !important;
    visibility: visible !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    box-sizing: border-box;
    width: 100% !important;
    max-width: 100% !important;
    margin: 12px 0 0 !important;
    padding: 0 16px 12px !important;
    min-height: auto !important;
    min-width: 0 !important;
    background: #fff !important;
    border: 0 !important;
    border-bottom: 8px solid #f7f8fa !important;
  }

  .mobile-market-tech-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    width: 100%;
    box-sizing: border-box;
  }

  .mobile-market-tech-grid .market-tech-chip {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    box-sizing: border-box;
    padding: 10px 8px;
    border: 1px solid #f2f3f5;
    border-radius: 8px;
    background: #f7f8fa;
    text-align: left;
    min-height: 0;
    min-width: 0;
    width: 100%;
    cursor: pointer;
  }

  .mobile-market-tech-grid .market-tech-chip em {
    color: #4e5969;
    font-size: 12px;
    font-style: normal;
    font-weight: 400;
  }

  .mobile-market-tech-grid .market-tech-chip strong {
    color: #f53f3f;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.2;
  }

  .mobile-market-tech-grid .market-tech-chip small {
    color: #86909c;
    font-size: 11px;
    line-height: 1.3;
  }

  .status-band[data-mobile-home-section] > .signal-status-card,
  .status-band[data-mobile-home-section] > .recommend-status-card {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    margin: 0 !important;
    padding: 12px 16px !important;
    background: #fff !important;
    border: 0 !important;
    border-bottom: 8px solid #f7f8fa !important;
    box-sizing: border-box;
  }

  .status-band[data-mobile-home-section] .mobile-carousel-card > .mobile-carousel-head,
  .status-band[data-mobile-home-section] .mobile-carousel-card > .status-card-head.mobile-carousel-head {
    display: flex !important;
    flex-direction: row !important;
    align-items: center;
    justify-content: flex-start !important;
    width: 100%;
    min-width: 0;
    flex: 0 0 auto;
    margin: 0 0 4px !important;
    padding: 0 !important;
    text-align: left;
  }

  .status-band[data-mobile-home-section] .mobile-carousel-card > #signalList,
  .status-band[data-mobile-home-section] .mobile-carousel-card > #recommendList,
  .status-band[data-mobile-home-section] .mobile-carousel-card > .signal-ticker.mobile-pick-strip,
  .status-band[data-mobile-home-section] .mobile-carousel-card > .recommend-list.mobile-pick-strip,
  .status-band[data-mobile-home-section] .mobile-carousel-card .mobile-pick-strip {
    flex: 0 0 auto;
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 4px 0 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .mobile-carousel-title {
    display: block;
    width: 100%;
    color: #1d2129;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.4;
    text-align: left;
    white-space: nowrap;
  }

  .mobile-carousel-card .status-card-head .label {
    color: #1d2129;
    font-size: 14px;
    font-weight: 500;
  }

  .mobile-carousel-tag {
    color: #86909c;
    font-size: 12px;
    font-weight: 500;
  }

  .mobile-pick-strip {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: stretch;
    gap: 0 !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    max-height: none !important;
    height: auto !important;
    min-height: 0;
    width: 100% !important;
    margin: 0;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    scroll-snap-stop: always;
    scroll-behavior: smooth;
    scroll-padding-inline: 0;
    overscroll-behavior-x: contain;
    overscroll-behavior-y: auto;
    scrollbar-width: none;
    touch-action: manipulation;
  }

  .status-band[data-mobile-home-section] .mobile-carousel-card,
  .status-band[data-mobile-home-section] .mobile-pick-strip .mobile-pick-page,
  .status-band[data-mobile-home-section] .mobile-pick-strip .mobile-pick-card,
  .status-band[data-mobile-home-section] .mobile-pick-strip button.mobile-pick-card.clickable {
    touch-action: manipulation;
  }

  .mobile-pick-strip::-webkit-scrollbar {
    display: none;
  }

  .mobile-pick-strip.empty {
    min-height: 88px;
    margin: 0;
    padding: 16px !important;
    background: #f7f8fa;
    border: 1px solid #f2f3f5;
    border-radius: 8px;
  }

  .mobile-pick-empty {
    width: 100%;
    padding: 24px 16px;
  }

  .mobile-pick-page {
    flex: 0 0 100%;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    padding: 0;
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }

  .mobile-pick-page .mobile-pick-card {
    width: 100%;
    max-width: 100%;
    margin: 0;
  }

  .status-band[data-mobile-home-section] button.mobile-pick-card.clickable {
    box-sizing: border-box;
    display: block;
    width: 100%;
    padding: 12px 10px !important;
    border: 1px solid #f2f3f5 !important;
    border-radius: 8px !important;
    background: #f7f8fa !important;
    text-align: center;
    font: inherit;
    cursor: pointer;
  }

  .mobile-pick-card {
    box-sizing: border-box;
    display: block;
    padding: 12px 10px;
    border: 1px solid #f2f3f5;
    border-radius: 8px;
    background: #f7f8fa;
    text-align: center;
    font: inherit;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }

  .mobile-pick-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 4px;
    width: 100%;
    min-width: 0;
  }

  .mobile-pick-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    min-width: 0;
    text-align: center;
  }

  .mobile-pick-col--name {
    gap: 2px;
  }

  .mobile-pick-name-line {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    max-width: 100%;
    min-width: 0;
  }

  .mobile-pick-name-line .mobile-pick-val--name {
    width: auto;
    flex: 0 1 auto;
    min-width: 0;
  }

  .mobile-pick-code-line {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    max-width: 100%;
    min-width: 0;
  }

  .mobile-pick-code-line .mobile-pick-code-text {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .mobile-pick-col--name .status-stock-exchange,
  .mobile-pick-code-line .status-stock-exchange {
    flex-shrink: 0;
    min-width: 14px;
    padding: 0 2px;
    font-size: 8px;
    line-height: 12px;
  }

  .stock-code-line .status-stock-exchange,
  .mobile-stock-lbl .status-stock-exchange,
  .market-tech-stock-col--name small .status-stock-exchange {
    flex-shrink: 0;
    min-width: 14px;
    padding: 0 2px;
    font-size: 8px;
    line-height: 12px;
  }

  .mobile-pick-val {
    display: block;
    width: 100%;
    color: #1d2129;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.4;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .mobile-pick-val--name {
    font-size: 14px;
  }

  .mobile-pick-val--sector {
    font-size: 12px;
  }

  .mobile-pick-val.up {
    color: #f53f3f;
  }

  .mobile-pick-val.down {
    color: #009a29;
  }

  .mobile-pick-lbl {
    display: block;
    width: 100%;
    color: #4e5969;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.4;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .status-band[data-mobile-home-section] .mobile-carousel-card > .mobile-carousel-dots {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    gap: 4px;
    width: 100%;
    max-width: 100%;
    min-height: 4px;
    margin: 8px 0 0 !important;
    padding: 0 !important;
    border: 0;
    background: transparent;
  }

  .status-band[data-mobile-home-section] .mobile-carousel-card > .mobile-carousel-dots[hidden] {
    display: none !important;
    margin: 0 !important;
  }

  .mobile-carousel-dot {
    flex: 0 0 auto;
    width: 4px;
    height: 4px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: #e5e6eb;
    cursor: pointer;
  }

  .mobile-carousel-dot.is-active {
    width: 12px;
    background: #165dff;
  }

  #marketPanelStocks.mobile-home-stock-panel,
  .mobile-home-stock-panel,
  .mobile-home-stock-panel .panel,
  .mobile-home-stock-panel .panel.wide,
  .mobile-home-stock-panel .stock-rank-table tr,
  .mobile-home-stock-panel .panel-head,
  .mobile-home-stock-panel .panel-head.mobile-stock-panel-head,
  .mobile-home-stock-panel .table-wrap,
  .mobile-home-stock-panel .mobile-stock-table-wrap,
  .mobile-home-stock-panel .mobile-home-stock-table,
  .mobile-home-stock-panel .mobile-home-stock-table th,
  .mobile-home-stock-panel .mobile-home-stock-table td {
    border-radius: 0 !important;
  }

  .mobile-home-stock-panel {
    display: block !important;
    padding: 16px 0 0;
    background: #fff;
    border-bottom: 8px solid #f7f8fa;
    overflow: visible;
    box-sizing: border-box;
  }

  .mobile-home-stock-panel .panel.wide {
    margin: 0;
    padding: 0;
    border: 0;
    box-shadow: none;
    overflow: visible;
  }

  .mobile-home-stock-panel .panel-head.mobile-stock-panel-head {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 8px;
    width: 100%;
    padding: 0 16px 8px !important;
    margin: 0;
    border: 0;
    box-sizing: border-box;
  }

  .mobile-home-stock-panel .panel-head.mobile-stock-panel-head h2 {
    flex: 1 1 auto;
    margin: 0;
    min-width: 0;
    font-size: 16px;
    font-weight: 600;
    color: #1d2129;
    text-align: left;
    line-height: 1.4;
  }

  .mobile-home-stock-panel #marketStockMeta {
    color: #86909c;
    font-size: 12px;
    white-space: nowrap;
  }

  .mobile-stock-more-btn {
    display: inline-flex !important;
    align-items: center;
    flex: 0 0 auto;
    margin: 0 0 0 auto;
    padding: 0;
    border: 0;
    background: transparent;
    color: #165dff;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.2;
    white-space: nowrap;
    cursor: pointer;
  }

  .mobile-stock-table-wrap.is-collapsed {
    overflow-y: hidden !important;
    max-height: none;
  }

  .mobile-stock-table-wrap {
    margin: 0;
    border: 0;
    border-radius: 0;
    padding-left: 0;
    box-sizing: border-box;
    overflow-x: auto !important;
    overflow-y: visible !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    background: #fff;
    isolation: isolate;
  }

  .mobile-stock-table-wrap::after {
    content: none;
  }

  .mobile-home-stock-table {
    display: table !important;
    width: max-content !important;
    min-width: 100% !important;
    table-layout: fixed !important;
    border-collapse: separate !important;
    border-spacing: 0;
  }

  .mobile-home-stock-table thead {
    display: none !important;
  }

  .mobile-home-stock-table tbody {
    display: table-row-group !important;
  }

  .mobile-home-stock-table tr {
    display: table-row !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
  }

  .mobile-home-stock-table th,
  .mobile-home-stock-table td {
    display: table-cell !important;
    padding: 8px 4px !important;
    border: 0 !important;
    border-bottom: 0 !important;
    vertical-align: middle;
    text-align: center;
    background: #fff;
  }

  .mobile-home-stock-table th::before,
  .mobile-home-stock-table td::before {
    display: none !important;
    content: none !important;
  }

  .mobile-home-stock-table th:not(.col-stock),
  .mobile-home-stock-table td:not(.col-stock) {
    position: static !important;
    left: auto !important;
    z-index: auto !important;
    box-shadow: none !important;
  }

  #marketPanelStocks .mobile-home-stock-table .col-stock,
  #marketStockDrawer .mobile-sector-stock-table-wrap .mobile-home-stock-table .col-stock {
    min-width: 128px;
    width: 128px;
  }

  #marketPanelStocks .mobile-stock-val--name,
  #marketStockDrawer .mobile-sector-stock-table-wrap .mobile-stock-val--name {
    font-size: 16px;
    font-weight: 700;
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
    line-height: 1.35;
    color: var(--ink);
  }

  #marketPanelStocks .mobile-stock-lbl,
  #marketPanelStocks .mobile-stock-lbl .stock-code-line,
  #marketStockDrawer .mobile-sector-stock-table-wrap .mobile-stock-lbl,
  #marketStockDrawer .mobile-sector-stock-table-wrap .mobile-stock-lbl .stock-code-line {
    color: var(--ink);
    font-weight: 500;
  }

  #marketPanelStocks .mobile-home-stock-table .col-advice,
  #marketStockDrawer .mobile-sector-stock-table-wrap .mobile-home-stock-table .col-advice {
    min-width: 88px;
    width: 88px;
  }

  #marketPanelStocks .mobile-home-stock-table .col-position,
  #marketStockDrawer .mobile-sector-stock-table-wrap .mobile-home-stock-table .col-position {
    min-width: 72px;
    width: 72px;
  }

  #marketPanelStocks .mobile-stock-position-btn,
  #marketStockDrawer .mobile-sector-stock-table-wrap .mobile-stock-position-btn {
    font-size: 11px;
    min-height: 26px;
    padding: 4px 8px;
  }

  .mobile-home-stock-table .col-stock {
    position: sticky !important;
    left: 0 !important;
    z-index: 3;
    min-width: 104px;
    width: 104px;
    text-align: center;
    padding-left: 16px !important;
    padding-right: 8px !important;
    background-color: #fff !important;
    background-clip: padding-box;
    box-shadow: none !important;
    isolation: isolate;
  }

  .mobile-home-stock-table .col-stock::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    right: 100%;
    width: 16px;
    background: #fff;
    pointer-events: none;
  }

  .mobile-home-stock-table .col-stock::after {
    content: "";
    position: absolute;
    top: 0;
    right: -1px;
    bottom: 0;
    width: 12px;
    background: linear-gradient(90deg, #fff 0%, #fff 55%, transparent 100%);
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.15s ease;
  }

  .mobile-stock-table-wrap.is-scrolled .mobile-home-stock-table .col-stock {
    box-shadow: none !important;
  }

  .mobile-stock-table-wrap.is-scrolled .mobile-home-stock-table .col-stock::after {
    opacity: 1;
  }

  .mobile-home-stock-table tbody td.col-stock {
    z-index: 3;
    background-color: #fff !important;
  }

  .mobile-home-stock-table .col-price {
    min-width: 80px;
    width: 80px;
  }

  .mobile-home-stock-table .col-change {
    min-width: 88px;
    width: 88px;
  }

  .mobile-home-stock-table .col-sector {
    min-width: 92px;
    width: 92px;
  }

  .mobile-home-stock-table .col-score {
    min-width: 72px;
    width: 72px;
  }

  .mobile-home-stock-table .col-advice {
    min-width: 108px;
    width: 108px;
  }

  .mobile-home-stock-table .col-amount {
    min-width: 96px;
    width: 96px;
  }

  .mobile-home-stock-table .col-position {
    min-width: 96px;
    width: 96px;
    padding-right: 12px !important;
  }

  .mobile-home-stock-table .col-rank {
    display: none !important;
  }

  .mobile-home-stock-panel .pill,
  .mobile-home-stock-panel .mobile-stock-cell--advice .pill {
    border-radius: 4px !important;
  }

  .mobile-stock-cell--advice .pill {
    display: inline-block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: top;
  }

  .mobile-stock-sub {
    display: block;
    max-width: 100%;
    margin-top: 2px;
    color: #86909c;
    font-size: 11px;
    font-weight: 400;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .mobile-home-stock-panel .mobile-stock-position-btn {
    border-radius: 4px !important;
  }

  .mobile-stock-position-btn {
    min-height: 28px;
    padding: 2px 8px;
    border: 1px solid #bedaff;
    border-radius: 4px;
    background: #e8f3ff;
    color: #165dff;
    font-size: 12px;
    font-weight: 500;
    white-space: nowrap;
    cursor: pointer;
  }

  .mobile-stock-cell--position .mobile-stock-val--position {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 22px;
  }

  .mobile-stock-cell {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    min-width: 0;
    width: 100%;
  }

  .mobile-stock-cell--name {
    align-items: center;
    text-align: center;
  }

  .mobile-stock-val {
    display: block;
    max-width: 100%;
    color: #1d2129;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.4;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .mobile-stock-val--name {
    font-size: 14px;
  }

  .mobile-stock-val--sector {
    font-size: 14px;
  }

  .mobile-stock-val.up {
    color: #f53f3f;
  }

  .mobile-stock-val.down {
    color: #009a29;
  }

  .mobile-stock-lbl {
    display: block;
    max-width: 100%;
    color: #4e5969;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.4;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .mobile-home-stock-table .empty-cell {
    text-align: center !important;
    padding: 24px 16px !important;
    color: #86909c;
  }

  .mobile-bottom-nav {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 100;
    display: grid !important;
    grid-template-columns: repeat(5, 1fr);
    gap: 0;
    padding: 12px 12px calc(8px + env(safe-area-inset-bottom, 0px));
    background: #fff;
    border-top: 1px solid #f7f8fa;
    backdrop-filter: none;
  }

  .mobile-nav-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    min-height: 44px;
    padding: 0;
    border: 0 !important;
    border-radius: 0;
    background: transparent !important;
    color: #1d2129;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.4;
    box-shadow: none !important;
    -webkit-tap-highlight-color: transparent;
    cursor: pointer;
    transition: color 0.2s ease;
  }

  .mobile-nav-item:hover,
  .mobile-nav-item:active,
  .mobile-nav-item:focus,
  .mobile-nav-item:focus-visible {
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    outline: none;
  }

  .mobile-nav-item.is-active {
    color: #165dff;
    background: transparent !important;
  }

  .mobile-nav-item.is-active:hover,
  .mobile-nav-item.is-active:active,
  .mobile-nav-item.is-active:focus,
  .mobile-nav-item.is-active:focus-visible {
    background: transparent !important;
  }

  .mobile-nav-icon {
    display: block;
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
    pointer-events: none;
    object-fit: contain;
  }

  .mobile-nav-item[data-mobile-nav="ai"] .mobile-nav-icon {
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
  }

  .mobile-nav-item.is-active .mobile-nav-icon {
    filter: brightness(0) saturate(100%) invert(32%) sepia(98%) saturate(2476%) hue-rotate(210deg) brightness(98%) contrast(101%);
  }

  .mobile-nav-item[data-mobile-nav="ai"].is-active .mobile-nav-icon {
    filter: none;
  }

  #mobileMinePanel.mobile-mine-panel {
    display: none;
  }

  .position-risk-detail-dialog.is-sheet {
    display: block;
    padding: 0;
    align-items: stretch;
    justify-content: flex-end;
  }

  .position-risk-detail-dialog.is-sheet .position-risk-backdrop {
    opacity: 0;
    transition: opacity 0.28s ease;
  }

  .position-risk-detail-dialog.is-sheet.is-open .position-risk-backdrop {
    opacity: 1;
  }

  .position-risk-detail-dialog.is-sheet .position-risk-sheet-panel {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    max-width: 100%;
    max-height: min(78dvh, 640px);
    border-radius: 0;
    transform: translateY(100%);
    transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform;
  }

  .position-risk-detail-dialog.is-sheet.is-open .position-risk-sheet-panel {
    transform: translateY(0);
  }

  .position-risk-detail-dialog.is-sheet .position-risk-sheet-head {
    grid-template-columns: 1fr;
    justify-items: center;
    padding: 8px 16px 12px;
    text-align: center;
  }

  .position-risk-detail-dialog.is-sheet .position-risk-sheet-handle {
    display: none !important;
  }

  .position-risk-detail-dialog.is-sheet .position-risk-sheet-close {
    display: none !important;
  }

  .position-risk-detail-dialog.is-sheet .position-risk-stat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .position-risk-detail-dialog.is-sheet .position-risk-stat-card:last-child:nth-child(odd):not(.position-risk-stat-card--wide) {
    grid-column: 1 / -1;
  }

  body.position-risk-sheet-open {
    overflow: hidden;
  }

  .stock-ai-result-modal .stock-ai-result-panel {
    left: 0;
    right: 0;
    top: auto;
    bottom: 0;
    transform: none;
    width: 100%;
    max-width: 100%;
    height: min(78dvh, 680px);
    max-height: min(78dvh, 680px);
    border-radius: 0;
  }

  .stock-ai-result-head {
    padding: 10px 16px;
  }
}

@media (min-width: 761px) {
  .mobile-only {
    display: none !important;
  }

  :root {
    --desktop-sidebar-w: 196px;
    --desktop-topbar-h: 72px;
    --desktop-content-vh: calc(100dvh - var(--desktop-topbar-h, 72px));
  }

  body.niepan-app #appMain {
    display: flex;
    flex-direction: column;
    min-height: var(--desktop-content-vh);
    max-width: none;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
  }

  body.niepan-app #desktopSidebar {
    position: fixed;
    left: 0;
    top: var(--desktop-topbar-h);
    bottom: 0;
    z-index: 11;
    width: var(--desktop-sidebar-w);
    height: auto;
    margin: 0;
    padding: 0;
    border: 0;
    border-right: 1px solid #e5e6eb;
    border-radius: 0;
    background: #fff;
    box-shadow: none;
    box-sizing: border-box;
    overflow: hidden;
  }

  body.niepan-app #searchBand,
  body.niepan-app .status-band,
  body.niepan-app #marketTabsSection,
  body.niepan-app #riskNotice {
    margin-left: var(--desktop-sidebar-w);
    padding-left: 16px;
    padding-right: 16px;
    box-sizing: border-box;
  }

  body.niepan-app #searchBand {
    margin-top: 0;
    margin-bottom: 12px;
    padding-top: 12px;
  }

  body.niepan-app .status-band {
    margin-top: 0;
  }

  body.niepan-app #marketTabsSection {
    margin-top: 0;
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
  }

  body.niepan-app.desktop-nav-overview #searchBand,
  body.niepan-app.desktop-nav-overview .status-band,
  body.niepan-app.desktop-nav-overview #riskNotice {
    flex: 0 0 auto;
  }

  body.niepan-app #marketTabsSection > .tab-panel.is-active {
    display: flex !important;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
  }

  body.niepan-app #marketTabsSection > .tab-panel.is-active > .sector-workspace {
    flex: 1 1 auto;
    min-height: 0;
    height: 100%;
    align-items: stretch;
  }

  body.niepan-app #marketTabsSection > .tab-panel.is-active > .panel,
  body.niepan-app #marketTabsSection > .tab-panel.is-active > .panel.wide,
  body.niepan-app #marketTabsSection > .tab-panel.is-active .news-section,
  body.niepan-app #marketTabsSection > .tab-panel.is-active .strategy-panel,
  body.niepan-app #marketTabsSection > .tab-panel.is-active .strength-ladder-panel {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
  }

  body.niepan-app #marketTabsSection > .tab-panel.is-active #watchlistMainContent {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }

  body.niepan-app #marketTabsSection > .tab-panel.is-active #watchlistMainContent .watchlist-panel-body {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }

  body.niepan-app #marketTabsSection > .tab-panel.is-active .panel-head,
  body.niepan-app #marketTabsSection > .tab-panel.is-active .strength-ladder-panel-head,
  body.niepan-app #marketTabsSection > .tab-panel.is-active .strategy-content-tabs,
  body.niepan-app #marketTabsSection > .tab-panel.is-active .retail-hold-head-actions,
  body.niepan-app #marketTabsSection > .tab-panel.is-active .main-flow-head-actions {
    flex: 0 0 auto;
  }

  body.niepan-app #marketTabsSection .sector-workspace > .panel > #sectorList,
  body.niepan-app #marketTabsSection .sector-workspace > .panel > .table-wrap,
  body.niepan-app #marketTabsSection > .tab-panel.is-active .table-wrap,
  body.niepan-app #marketTabsSection > .tab-panel.is-active .main-flow-table-wrap,
  body.niepan-app #marketTabsSection > .tab-panel.is-active .hot-fund-table-wrap,
  body.niepan-app #marketTabsSection > .tab-panel.is-active .retail-hold-table-wrap,
  body.niepan-app #marketTabsSection > .tab-panel.is-active .news-list {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none !important;
    overflow: auto;
  }

  body.niepan-app #marketTabsSection > .tab-panel.is-active .strength-ladder-panel {
    overflow: hidden;
  }

  body.niepan-app #marketTabsSection > .tab-panel.is-active .strength-ladder-panel-head {
    position: relative;
    z-index: 4;
    flex-shrink: 0;
    background: #fff;
  }

  body.niepan-app #marketTabsSection > .tab-panel.is-active .strength-ladder-mount {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    margin-top: 0;
    padding: 0;
    overflow: hidden;
  }

  body.niepan-app #marketTabsSection > .tab-panel.is-active .strength-ladder-scroll {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none !important;
    overflow: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    position: relative;
    z-index: 0;
  }

  /* 强度阶梯：Web 仅矩阵区滚动，避免整页滚动与排名列溢出顶栏 */
  body.niepan-app:has(#marketPanelStrengthLadder.is-active:not([hidden])) #appMain {
    overflow: hidden !important;
    height: var(--desktop-content-vh);
    max-height: var(--desktop-content-vh);
  }

  body.niepan-app:has(#marketPanelStrengthLadder.is-active:not([hidden])) #marketTabsSection {
    overflow: hidden !important;
    min-height: 0;
  }

  body.niepan-app:has(#marketPanelStrengthLadder.is-active:not([hidden])) #marketPanelStrengthLadder {
    overflow: hidden !important;
    min-height: 0;
  }

  /* 热点板块：Web 左右栏各自滚动，禁止整页滚动 */
  body.niepan-app:has(#marketPanelSectors.is-active:not([hidden])) #appMain {
    overflow: hidden !important;
    height: var(--desktop-content-vh);
    max-height: var(--desktop-content-vh);
  }

  body.niepan-app:has(#marketPanelSectors.is-active:not([hidden])) #marketTabsSection {
    overflow: hidden !important;
    min-height: 0 !important;
    flex: 1 1 auto;
  }

  body.niepan-app:has(#marketPanelSectors.is-active:not([hidden])) #marketPanelSectors {
    overflow: hidden !important;
    min-height: 0;
  }

  body.niepan-app:has(#marketPanelSectors.is-active:not([hidden])) .sector-workspace {
    flex: 1 1 auto;
    min-height: 0;
    height: 100%;
    overflow: hidden;
  }

  body.niepan-app:has(#marketPanelSectors.is-active:not([hidden])) .sector-workspace > .panel {
    min-height: 0;
    overflow: hidden;
  }

  body.niepan-app:has(#marketPanelSectors.is-active:not([hidden])) .sector-workspace > .panel > .panel-head {
    flex: 0 0 auto;
  }

  body.niepan-app:has(#marketPanelSectors.is-active:not([hidden])) .sector-workspace > .panel > #sectorList,
  body.niepan-app:has(#marketPanelSectors.is-active:not([hidden])) .sector-workspace > .panel > .table-wrap {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none !important;
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  /* 概览：搜索栏固定，红框区域（市场状态 + 排行 + 页脚）在 main 内滚动 */
  body.niepan-app.desktop-nav-overview:has(#marketPanelStocks.is-active:not([hidden])) #appMain {
    overflow-x: hidden !important;
    overflow-y: auto !important;
    height: var(--desktop-content-vh);
    max-height: var(--desktop-content-vh);
    min-height: 0;
    display: flex;
    flex-direction: column;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  body.niepan-app.desktop-nav-overview:has(#marketPanelStocks.is-active:not([hidden])) #searchBand {
    position: sticky;
    top: 0;
    z-index: 5;
    flex: 0 0 auto;
    background: var(--bg);
    margin-bottom: 0;
  }

  body.niepan-app.desktop-nav-overview:has(#marketPanelStocks.is-active:not([hidden])) .status-band,
  body.niepan-app.desktop-nav-overview:has(#marketPanelStocks.is-active:not([hidden])) #marketTabsSection,
  body.niepan-app.desktop-nav-overview:has(#marketPanelStocks.is-active:not([hidden])) #riskNotice {
    flex: 0 0 auto;
  }

  body.niepan-app.desktop-nav-overview:has(#marketPanelStocks.is-active:not([hidden])) #marketTabsSection {
    overflow: visible;
    flex: 0 0 auto !important;
    min-height: auto !important;
  }

  body.niepan-app.desktop-nav-overview:has(#marketPanelStocks.is-active:not([hidden])) #marketPanelStocks,
  body.niepan-app.desktop-nav-overview:has(#marketPanelStocks.is-active:not([hidden])) #marketPanelStocks > .panel.wide {
    display: block !important;
    overflow: visible;
    flex: none !important;
    min-height: auto;
  }

  body.niepan-app.desktop-nav-overview:has(#marketPanelStocks.is-active:not([hidden])) #marketPanelStocks .table-wrap {
    flex: none !important;
    min-height: auto;
    max-height: none !important;
    overflow: visible !important;
  }

  /* 热门基金 / 散户持仓 / 资讯 / 游资 / 主力 / 策略 / 自选：Web 仅列表滚动，填满可视高度 */
  body.niepan-app:has(
    #marketPanelHotFunds.is-active:not([hidden]),
    #marketPanelRetailHold.is-active:not([hidden]),
    #marketPanelNews.is-active:not([hidden]),
    #marketPanelHotMoney.is-active:not([hidden]),
    #marketPanelMainFlow.is-active:not([hidden]),
    #marketPanelStrategy.is-active:not([hidden]),
    #marketPanelWatchlist.is-active:not([hidden])
  ) #appMain {
    overflow: hidden !important;
    height: var(--desktop-content-vh);
    max-height: var(--desktop-content-vh);
  }

  body.niepan-app:has(
    #marketPanelHotFunds.is-active:not([hidden]),
    #marketPanelRetailHold.is-active:not([hidden]),
    #marketPanelNews.is-active:not([hidden]),
    #marketPanelHotMoney.is-active:not([hidden]),
    #marketPanelMainFlow.is-active:not([hidden]),
    #marketPanelStrategy.is-active:not([hidden]),
    #marketPanelWatchlist.is-active:not([hidden])
  ) #marketTabsSection {
    overflow: hidden !important;
    min-height: 0 !important;
    flex: 1 1 auto;
  }

  body.niepan-app #marketPanelHotFunds.is-active:not([hidden]),
  body.niepan-app #marketPanelRetailHold.is-active:not([hidden]),
  body.niepan-app #marketPanelNews.is-active:not([hidden]),
  body.niepan-app #marketPanelHotMoney.is-active:not([hidden]),
  body.niepan-app #marketPanelMainFlow.is-active:not([hidden]),
  body.niepan-app #marketPanelStrategy.is-active:not([hidden]),
  body.niepan-app #marketPanelWatchlist.is-active:not([hidden]) {
    overflow: hidden !important;
    min-height: 0;
  }

  body.niepan-app #marketPanelHotFunds.is-active:not([hidden]) .hot-fund-panel,
  body.niepan-app #marketPanelRetailHold.is-active:not([hidden]) .retail-hold-panel,
  body.niepan-app #marketPanelNews.is-active:not([hidden]) .news-section,
  body.niepan-app #marketPanelHotMoney.is-active:not([hidden]) .hot-money-panel,
  body.niepan-app #marketPanelMainFlow.is-active:not([hidden]) .main-flow-panel {
    overflow: hidden;
    min-height: 0;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
  }

  body.niepan-app #marketPanelHotFunds.is-active:not([hidden]) .hot-fund-table-wrap,
  body.niepan-app #marketPanelRetailHold.is-active:not([hidden]) .retail-hold-table-wrap,
  body.niepan-app #marketPanelNews.is-active:not([hidden]) .news-list,
  body.niepan-app #marketPanelHotMoney.is-active:not([hidden]) .hot-money-table-wrap,
  body.niepan-app #marketPanelMainFlow.is-active:not([hidden]) .main-flow-table-wrap {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none !important;
    overflow: auto !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  body.niepan-app #marketPanelWatchlist.is-active:not([hidden]) > .panel.wide {
    overflow: hidden;
    min-height: 0;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
  }

  body.niepan-app #marketPanelWatchlist.is-active:not([hidden]) #watchlistMainContent {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }

  body.niepan-app #marketPanelWatchlist.is-active:not([hidden]) .watchlist-panel-body {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }

  body.niepan-app #marketPanelWatchlist.is-active:not([hidden]) .watchlist-panel-body > .table-wrap,
  body.niepan-app #marketPanelWatchlist.is-active:not([hidden]) .table-wrap {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none !important;
    overflow: auto !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  body.niepan-app #marketTabsSection > .tab-panel[hidden] {
    display: none !important;
  }

  body.niepan-app #marketTabsSection > .tab-panel.is-active .news-section {
    overflow: hidden;
  }

  body.niepan-app #marketTabsSection > .tab-panel.is-active .news-list {
    overflow: auto;
  }

  body.niepan-app #marketTabsSection > .tab-panel.is-active .strategy-panel {
    padding-bottom: 0;
    overflow: hidden;
    min-height: 0;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
  }

  body.niepan-app #marketPanelStrategy.is-active:not([hidden]) .strategy-panel > .panel-head,
  body.niepan-app #marketPanelStrategy.is-active:not([hidden]) .strategy-panel > .strategy-content-tabs,
  body.niepan-app #marketPanelStrategy.is-active:not([hidden]) #tfQuantSharedHeader:not([hidden]) {
    flex: 0 0 auto;
  }

  body.niepan-app #marketTabsSection > .tab-panel.is-active .strategy-content-panel.is-active {
    display: flex !important;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
  }

  body.niepan-app #marketTabsSection > .tab-panel.is-active .strategy-content-panel.is-active .quant-strategy-section,
  body.niepan-app #marketTabsSection > .tab-panel.is-active .strategy-content-panel.is-active .strategy-daily-main,
  body.niepan-app #marketTabsSection > .tab-panel.is-active .strategy-content-panel.is-active .short-term-strategy-section,
  body.niepan-app #marketTabsSection > .tab-panel.is-active .strategy-content-panel.is-active .tf-quant-section {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }

  body.niepan-app #marketTabsSection > .tab-panel.is-active .strategy-content-panel.is-active:not([data-strategy-content-panel="daily"]) .strategy-summary,
  body.niepan-app #marketTabsSection > .tab-panel.is-active .strategy-content-panel.is-active:not([data-strategy-content-panel="daily"]) .strategy-weights,
  body.niepan-app #marketTabsSection > .tab-panel.is-active .strategy-content-panel.is-active .quant-account-header,
  body.niepan-app #marketTabsSection > .tab-panel.is-active .strategy-content-panel.is-active .quant-tabs-row,
  body.niepan-app #marketTabsSection > .tab-panel.is-active .strategy-content-panel.is-active .short-term-strategy-head,
  body.niepan-app #marketTabsSection > .tab-panel.is-active .strategy-content-panel.is-active .short-term-strategy-meta {
    flex: 0 0 auto;
  }

  body.niepan-app #marketPanelStrategy.is-active:not([hidden]) .quant-strategy-section {
    min-height: 0;
    gap: 12px;
    padding: 12px 16px 12px;
  }

  body.niepan-app #marketPanelStrategy.is-active:not([hidden]) .quant-middle-section {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }

  body.niepan-app #marketPanelStrategy.is-active:not([hidden]) .quant-tab-panel.is-active {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  body.niepan-app #marketPanelStrategy.is-active:not([hidden]) .strategy-daily-main {
    min-height: 0;
    overflow: auto !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  body.niepan-app #marketPanelStrategy.is-active:not([hidden]) .strategy-content-panel[data-strategy-content-panel="daily"] .strategy-table-wrap,
  body.niepan-app #marketTabsSection > .tab-panel.is-active .strategy-content-panel[data-strategy-content-panel="daily"] .table-wrap.strategy-table-wrap {
    flex: none !important;
    min-height: auto !important;
    overflow: visible !important;
    margin-bottom: 12px;
  }

  body.niepan-app #marketPanelStrategy.is-active:not([hidden]) .strategy-content-panel:not([data-strategy-content-panel="daily"]) .strategy-table-wrap,
  body.niepan-app #marketTabsSection > .tab-panel.is-active .strategy-content-panel.is-active:not([data-strategy-content-panel="daily"]) .table-wrap.strategy-table-wrap {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none !important;
    overflow: auto !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    margin-bottom: 12px;
  }

  body.niepan-app #marketPanelStrategy.is-active:not([hidden]) .short-term-strategy-section {
    margin: 0 16px 12px;
    min-height: 0;
  }

  body.niepan-app #marketPanelStrategy.is-active:not([hidden]) .short-term-strategy-main {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }

  body.niepan-app #marketPanelStrategy.is-active:not([hidden]) .short-term-strategy-list {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none !important;
    overflow: auto !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    align-content: start;
  }

  body.niepan-app #marketPanelStrategy.is-active:not([hidden]) .tf-quant-panel {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }

  body.niepan-app #marketPanelStrategy.is-active:not([hidden]) .tf-quant-screener-layout,
  body.niepan-app #marketPanelStrategy.is-active:not([hidden]) #strategyContentTfBacktest.is-active .tf-quant-backtest-layout {
    flex: 1 1 auto;
    min-height: 0;
    height: 100%;
    overflow: hidden;
  }

  body.niepan-app #marketPanelStrategy.is-active:not([hidden]) #strategyContentTfBacktest.is-active .tf-quant-backtest-layout {
    display: grid;
    grid-template-columns: 320px minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr);
    align-items: stretch;
  }

  body.niepan-app #marketPanelStrategy.is-active:not([hidden]) #strategyContentTfBacktest.is-active .tf-quant-backtest-layout > * {
    min-height: 0;
    max-height: 100%;
  }

  body.niepan-app #marketPanelStrategy.is-active:not([hidden]) #strategyContentTfBacktest.is-active .tf-quant-backtest-config {
    min-height: 0;
    height: 100%;
    max-height: 100%;
    overflow: hidden !important;
    display: flex;
    flex-direction: column;
  }

  body.niepan-app #marketPanelStrategy.is-active:not([hidden]) #strategyContentTfBacktest.is-active .tf-quant-backtest-result {
    min-height: 0 !important;
    height: 100%;
    max-height: 100%;
    min-width: 0;
    display: flex;
    flex-direction: column;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  body.niepan-app #marketPanelStrategy.is-active:not([hidden]) #strategyContentTfBacktest.is-active .tf-quant-backtest-result .tf-quant-bt-trades {
    flex: 0 0 auto !important;
    min-width: 0 !important;
    min-height: auto !important;
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
    overflow: visible !important;
  }

  body.niepan-app #marketPanelStrategy.is-active:not([hidden]) #strategyContentTfBacktest.is-active .tf-quant-backtest-result .tf-quant-bt-trades .tf-quant-frozen-table {
    flex: 0 0 auto !important;
    min-width: 0 !important;
    min-height: auto !important;
    width: 100% !important;
    max-width: none !important;
  }

  body.niepan-app #marketPanelStrategy.is-active:not([hidden]) #strategyContentTfBacktest.is-active .tf-quant-backtest-result .tf-quant-bt-result-body {
    flex: 0 0 auto;
    min-height: auto;
    overflow: visible;
    display: flex;
    flex-direction: column;
  }

  body.niepan-app #marketPanelStrategy.is-active:not([hidden]) #strategyContentTfBacktest.is-active .tf-quant-backtest-result .tf-quant-bt-result-body.is-bt-trades-expanded {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
  }

  body.niepan-app #marketPanelStrategy.is-active:not([hidden]) #strategyContentTfBacktest.is-active .tf-quant-backtest-result .tf-quant-bt-result-body.is-bt-trades-expanded .tf-quant-bt-trades {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }

  body.niepan-app #marketPanelStrategy.is-active:not([hidden]) #strategyContentTfBacktest.is-active .tf-quant-backtest-result .tf-quant-bt-result-body.is-bt-trades-expanded .tf-quant-bt-trades .tf-quant-frozen-table {
    flex: 1 1 auto !important;
    min-height: 0 !important;
  }

  body.niepan-app #marketPanelStrategy.is-active:not([hidden]) #strategyContentTfBacktest.is-active .tf-quant-backtest-result .tf-quant-bt-result-body.is-bt-trades-expanded .tf-quant-bt-trades .tf-quant-frozen-table__scroll {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  body.niepan-app #marketPanelStrategy.is-active:not([hidden]) .tf-quant-section {
    min-height: 0;
    padding-top: 0;
  }

  body.niepan-app #marketPanelStrategy.is-active:not([hidden]) #strategyContentTfScreener.is-active .tf-quant-screener-strategies,
  body.niepan-app #marketPanelStrategy.is-active:not([hidden]) #strategyContentTfScreener.is-active .tf-quant-screener-result {
    height: 100%;
    max-height: none;
  }

  body.niepan-app #marketPanelStrategy.is-active:not([hidden]) #strategyContentTfScreener.is-active .tf-quant-screener-strategies-body,
  body.niepan-app #marketPanelStrategy.is-active:not([hidden]) #strategyContentTfScreener.is-active .tf-quant-screener-result .tf-quant-frozen-table {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none !important;
  }

  body.niepan-app #marketPanelStrategy.is-active:not([hidden]) .quant-strategy-section {
    min-height: 0;
  }

  /* 策略选股 Tab：仅左右红框区域滚动 */
  body.niepan-app:has(#strategyContentTfScreener.is-active:not([hidden])) #appMain {
    overflow: hidden !important;
    height: var(--desktop-content-vh);
    max-height: var(--desktop-content-vh);
  }

  body.niepan-app:has(#strategyContentTfScreener.is-active:not([hidden])) #marketTabsSection,
  body.niepan-app:has(#strategyContentTfScreener.is-active:not([hidden])) #marketPanelStrategy {
    overflow: hidden !important;
    min-height: 0;
  }

  body.niepan-app:has(#strategyContentTfScreener.is-active:not([hidden])) #strategyContentTfScreener.is-active {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    display: flex !important;
    flex-direction: column;
  }

  body.niepan-app:has(#strategyContentTfScreener.is-active:not([hidden])) .tf-quant-section {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    padding: 0 12px 12px;
    gap: 0;
  }

  body.niepan-app:has(#strategyContentTfScreener.is-active:not([hidden])) .tf-quant-panel,
  body.niepan-app:has(#strategyContentTfScreener.is-active:not([hidden])) .tf-quant-screener-layout {
    flex: 1 1 auto;
    min-height: 0;
    height: 100%;
    overflow: hidden;
  }

  body.niepan-app:has(#strategyContentTfScreener.is-active:not([hidden])) .tf-quant-screener-layout {
    display: grid !important;
    grid-template-columns: 320px minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr);
    align-items: stretch;
  }

  body.niepan-app:has(#strategyContentTfScreener.is-active:not([hidden])) .tf-quant-screener-layout > * {
    min-height: 0;
    max-height: 100%;
  }

  body.niepan-app:has(#strategyContentTfScreener.is-active:not([hidden])) .tf-quant-backtest-config.tf-quant-screener-strategies,
  body.niepan-app:has(#strategyContentTfScreener.is-active:not([hidden])) .tf-quant-screener-result {
    height: 100%;
    max-height: 100%;
    overflow: hidden;
  }

  body.niepan-app:has(#strategyContentTfScreener.is-active:not([hidden])) .tf-quant-screener-strategies-body,
  body.niepan-app:has(#strategyContentTfScreener.is-active:not([hidden])) .tf-quant-screener-result .tf-quant-frozen-table {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none !important;
  }

  /* 策略回测 Tab：仅左右红框区域滚动 */
  body.niepan-app:has(#strategyContentTfBacktest.is-active:not([hidden])) #appMain {
    overflow: hidden !important;
    height: var(--desktop-content-vh);
    max-height: var(--desktop-content-vh);
  }

  body.niepan-app:has(#strategyContentTfBacktest.is-active:not([hidden])) #marketTabsSection,
  body.niepan-app:has(#strategyContentTfBacktest.is-active:not([hidden])) #marketPanelStrategy {
    overflow: hidden !important;
    min-height: 0;
  }

  body.niepan-app:has(#strategyContentTfBacktest.is-active:not([hidden])) #strategyContentTfBacktest.is-active {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    display: flex !important;
    flex-direction: column;
  }

  body.niepan-app:has(#strategyContentTfBacktest.is-active:not([hidden])) .tf-quant-section {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    padding: 0 12px 12px;
    gap: 0;
  }

  body.niepan-app:has(#strategyContentTfBacktest.is-active:not([hidden])) .tf-quant-panel,
  body.niepan-app:has(#strategyContentTfBacktest.is-active:not([hidden])) .tf-quant-backtest-layout {
    flex: 1 1 auto;
    min-height: 0;
    height: 100%;
    overflow: hidden;
  }

  body.niepan-app:has(#strategyContentTfBacktest.is-active:not([hidden])) .tf-quant-backtest-layout {
    display: grid !important;
    grid-template-columns: 320px minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr);
    align-items: stretch;
  }

  body.niepan-app:has(#strategyContentTfBacktest.is-active:not([hidden])) .tf-quant-backtest-layout > * {
    min-height: 0;
    max-height: 100%;
  }

  body.niepan-app:has(#strategyContentTfBacktest.is-active:not([hidden])) .tf-quant-backtest-config {
    height: 100%;
    max-height: 100%;
    overflow: hidden !important;
    display: flex;
    flex-direction: column;
  }

  body.niepan-app:has(#strategyContentTfBacktest.is-active:not([hidden])) .tf-quant-backtest-result {
    min-height: 0 !important;
    height: 100%;
    max-height: 100%;
    min-width: 0;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    display: flex;
    flex-direction: column;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  body.niepan-app:has(#strategyContentTfBacktest.is-active:not([hidden])) .tf-quant-backtest-result .tf-quant-bt-result-body {
    flex: 0 0 auto;
    min-height: auto;
    overflow: visible;
    display: flex;
    flex-direction: column;
  }

  body.niepan-app:has(#strategyContentTfBacktest.is-active:not([hidden])) .tf-quant-backtest-result .tf-quant-bt-result-body.is-bt-trades-expanded {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
  }

  body.niepan-app:has(#strategyContentTfBacktest.is-active:not([hidden])) .tf-quant-backtest-result .tf-quant-bt-trades {
    flex: 0 0 auto !important;
    min-width: 0 !important;
    min-height: auto !important;
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
    overflow: visible !important;
  }

  body.niepan-app:has(#strategyContentTfBacktest.is-active:not([hidden])) .tf-quant-backtest-result .tf-quant-bt-result-body.is-bt-trades-expanded .tf-quant-bt-trades {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }

  body.niepan-app:has(#strategyContentTfBacktest.is-active:not([hidden])) .tf-quant-backtest-result .tf-quant-bt-trades .tf-quant-frozen-table {
    flex: 0 0 auto !important;
    min-width: 0 !important;
    min-height: auto !important;
    width: 100% !important;
    max-width: none !important;
  }

  body.niepan-app:has(#strategyContentTfBacktest.is-active:not([hidden])) .tf-quant-backtest-result .tf-quant-bt-result-body.is-bt-trades-expanded .tf-quant-bt-trades .tf-quant-frozen-table {
    flex: 1 1 auto !important;
    min-height: 0 !important;
  }

  body.niepan-app:has(#strategyContentTfBacktest.is-active:not([hidden])) .tf-quant-backtest-result .tf-quant-bt-trades .tf-quant-frozen-table__scroll {
    flex: 0 0 auto;
    min-height: auto;
    overflow-x: auto;
    overflow-y: clip;
    overscroll-behavior-y: auto;
  }

  body.niepan-app:has(#strategyContentTfBacktest.is-active:not([hidden])) .tf-quant-backtest-result .tf-quant-bt-result-body.is-bt-trades-expanded .tf-quant-bt-trades .tf-quant-frozen-table__scroll {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  body.niepan-app:has(#strategyContentTfBacktest.is-active:not([hidden])) #marketPanelStrategy #tfQuantSharedHeader:not([hidden]) {
    flex: 0 0 auto;
  }

  body.niepan-app #marketTabsSection .sector-workspace > .panel.wide::after {
    display: none;
  }

  body.niepan-app:not(.desktop-nav-overview) #marketTabsSection {
    padding-top: 12px;
    padding-bottom: 12px;
    min-height: var(--desktop-content-vh);
    max-height: var(--desktop-content-vh);
    overflow: hidden;
  }

  body.niepan-app #riskNotice {
    margin-top: 20px;
    padding-bottom: 16px;
  }

  body.niepan-app:not(.desktop-nav-overview) .status-band {
    display: none !important;
  }

  body.niepan-app:not(.desktop-nav-overview) #searchBand {
    display: none !important;
  }

  body.niepan-app:not(.desktop-nav-overview) #riskNotice {
    display: none !important;
  }

  body.niepan-app.desktop-nav-overview #marketTabsSection {
    margin-top: 14px;
  }

  body.niepan-app.desktop-nav-overview #marketPanelStocks .panel-head h2 {
    font-size: 19px;
    font-weight: 600;
  }

  body.niepan-app #marketTabsSection .sector-workspace {
    grid-template-columns: minmax(300px, 0.42fr) minmax(0, 1fr);
    gap: 12px;
  }

  body.niepan-app #marketTabsSection .sector-item--slim {
    grid-template-columns: 28px minmax(0, 1fr) auto;
    gap: 8px;
    padding: 10px 12px;
  }

  body.niepan-app #marketTabsSection .sector-item--slim .sector-title-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 3px;
  }

  body.niepan-app #marketTabsSection .sector-item--slim .sector-title-name-with-star {
    display: block;
    flex: none;
    width: auto;
    max-width: 100%;
  }

  body.niepan-app #marketTabsSection .sector-item--slim .sector-title-name-with-star h3 {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    width: auto;
    max-width: 100%;
    margin: 0;
    white-space: nowrap;
    overflow: visible;
    text-overflow: unset;
    line-height: 1.35;
  }

  body.niepan-app #marketTabsSection .sector-item--slim .sector-title-name-with-star .sector-title-text {
    min-width: 0;
    flex: 0 1 auto;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.niepan-app #marketTabsSection .sector-item--slim .sector-title-name-with-star .sector-watchlist-star {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    margin: 0;
  }

  body.niepan-app #searchBand.search-band {
    border-radius: 0;
    margin-left: var(--desktop-sidebar-w);
  }

  #marketTabsSection .main-tabs {
    display: none !important;
  }

  .desktop-sidebar {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    gap: 0;
    padding: 0;
    border-radius: 0;
    overflow: hidden;
  }

  .desktop-sidebar-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    flex: 0 0 40px;
    height: 40px;
    min-height: 40px;
    width: 100%;
    margin: 0;
    padding: 0 14px;
    border: 0;
    border-bottom: 1px solid #f2f3f5;
    border-radius: 0;
    background: transparent;
    color: #4e5969;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.35;
    text-align: left;
    cursor: pointer;
    box-sizing: border-box;
    transition: background-color 0.15s ease, color 0.15s ease;
  }

  .desktop-sidebar-item:last-child {
    border-bottom: 0;
  }

  .desktop-sidebar-item:hover {
    background: #f7f8fa;
    color: #1d2129;
  }

  .desktop-sidebar-item.active {
    background: #e8f3ff;
    color: #165dff;
    font-weight: 600;
    box-shadow: inset 3px 0 0 #165dff;
  }

  .desktop-sidebar-main {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1 1 auto;
    min-width: 0;
  }

  .desktop-sidebar-icon {
    display: block;
    width: 1em;
    height: 1em;
    flex: 0 0 1em;
    background-color: currentColor;
    -webkit-mask: center / contain no-repeat;
    mask: center / contain no-repeat;
    pointer-events: none;
  }

  .desktop-sidebar-icon[data-icon="home"] {
    -webkit-mask-image: url("/static/icons/desktop-nav-home.svg");
    mask-image: url("/static/icons/desktop-nav-home.svg");
  }

  .desktop-sidebar-icon[data-icon="sectors"] {
    -webkit-mask-image: url("/static/icons/desktop-nav-sectors.svg");
    mask-image: url("/static/icons/desktop-nav-sectors.svg");
  }

  .desktop-sidebar-icon[data-icon="ladder"] {
    -webkit-mask-image: url("/static/icons/desktop-nav-ladder.svg");
    mask-image: url("/static/icons/desktop-nav-ladder.svg");
  }

  .desktop-sidebar-icon[data-icon="fund"] {
    -webkit-mask-image: url("/static/icons/desktop-nav-fund.svg");
    mask-image: url("/static/icons/desktop-nav-fund.svg");
  }

  .desktop-sidebar-icon[data-icon="retail"] {
    -webkit-mask-image: url("/static/icons/desktop-nav-retail.svg");
    mask-image: url("/static/icons/desktop-nav-retail.svg");
  }

  .desktop-sidebar-icon[data-icon="news"] {
    -webkit-mask-image: url("/static/icons/desktop-nav-news.svg");
    mask-image: url("/static/icons/desktop-nav-news.svg");
  }

  .desktop-sidebar-icon[data-icon="hotmoney"] {
    -webkit-mask-image: url("/static/icons/desktop-nav-hotmoney.svg");
    mask-image: url("/static/icons/desktop-nav-hotmoney.svg");
  }

  .desktop-sidebar-icon[data-icon="flow"] {
    -webkit-mask-image: url("/static/icons/desktop-nav-flow.svg");
    mask-image: url("/static/icons/desktop-nav-flow.svg");
  }

  .desktop-sidebar-icon[data-icon="strategy"] {
    -webkit-mask-image: url("/static/icons/desktop-nav-strategy.svg");
    mask-image: url("/static/icons/desktop-nav-strategy.svg");
  }

  .desktop-sidebar-label {
    flex: 1 1 auto;
    min-width: 0;
  }

  .desktop-sidebar-count {
    flex: 0 0 auto;
    display: inline-grid;
    min-width: 22px;
    height: 20px;
    place-items: center;
    padding: 0 6px;
    border-radius: 0;
    background: #f2f3f5;
    color: #86909c;
    font-size: 11px;
    font-weight: 600;
    line-height: 1;
  }

  .desktop-sidebar-item.active .desktop-sidebar-count {
    background: rgba(22, 93, 255, 0.12);
    color: #165dff;
  }

  .desktop-sidebar-count:empty,
  .desktop-sidebar-count[data-empty="true"] {
    display: none;
  }
}

/* 手机顶栏：覆盖旧版白底/固定顶栏 Grid，与 Figma 深色顶栏一致 */
@media (max-width: 760px) {
  .topbar:has(.mobile-topbar-row) {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    display: flex !important;
    flex-direction: column !important;
    grid-template-areas: none !important;
    grid-template-columns: none !important;
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    box-sizing: border-box;
    background: var(--m-header-bg) !important;
    backdrop-filter: none !important;
    border: 0 !important;
    border-bottom: 0 !important;
    outline: none !important;
    box-shadow: none !important;
    padding:
      calc(var(--m-header-top-gap, 16px) + env(safe-area-inset-top, 0px))
      calc(14px + env(safe-area-inset-right, 0px))
      0
      calc(14px + env(safe-area-inset-left, 0px)) !important;
    gap: 0 !important;
    overflow-x: visible;
    overflow-y: visible;
  }

  .topbar:has(.mobile-topbar-row) .mobile-topbar-row {
    background: var(--m-header-bg) !important;
    border: 0 !important;
    border-bottom: 0 !important;
    box-shadow: none !important;
  }

  .topbar:has(.mobile-topbar-row) .major-indices-strip {
    background: var(--m-header-bg) !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    border: 0 !important;
    border-bottom: 0 !important;
    box-shadow: none !important;
    box-sizing: border-box;
  }

  body.niepan-app:has(.mobile-topbar-row) #appMain {
    margin-top: 0 !important;
  }

  /* 顶栏三列：左搜索 / 中间标题 / 右图标（水平 14px 由 .topbar 统一内边距） */
  .topbar:has(.mobile-topbar-row) .mobile-topbar-row {
    display: grid !important;
    grid-template-columns: 44px minmax(0, 1fr) 100px !important;
    width: 100% !important;
    max-width: 100% !important;
    grid-column: 1 / -1 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    column-gap: 0 !important;
    align-items: center !important;
  }

  .topbar:has(.mobile-topbar-row) .mobile-topbar-slot-start {
    grid-column: 1 !important;
    justify-self: start !important;
    grid-area: unset !important;
    width: 44px !important;
    height: 44px !important;
    flex: 0 0 44px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .topbar:has(.mobile-topbar-row) .mobile-topbar-center {
    display: flex !important;
    flex-flow: row nowrap;
    align-items: center !important;
    justify-content: center !important;
    grid-column: 2 !important;
    justify-self: center !important;
    grid-area: unset !important;
    gap: 8px;
    min-width: 0;
  }

  body.mobile-nav-home .topbar:has(.mobile-topbar-row) .mobile-topbar-row {
    grid-template-columns: 44px minmax(0, 1fr) 44px !important;
  }

  body.mobile-nav-discover .topbar:has(.mobile-topbar-row) .mobile-topbar-row {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.mobile-nav-home .topbar:has(.mobile-topbar-row) .mobile-topbar-home-slot {
    display: inline-flex !important;
    flex-direction: row;
    align-items: center !important;
    justify-content: center;
    gap: 8px;
    min-width: 0;
    max-width: 100%;
  }

  body.mobile-nav-home .topbar:has(.mobile-topbar-row) .mobile-topbar-center {
    justify-self: center !important;
    width: max-content !important;
    max-width: calc(100% - 96px) !important;
    margin: 0 auto !important;
    justify-content: center !important;
  }

  body.mobile-nav-discover .topbar:has(.mobile-topbar-row) .mobile-topbar-center {
    grid-column: 1 / -1 !important;
    justify-self: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    justify-content: center !important;
    overflow: visible !important;
  }

  body.mobile-nav-home .topbar:has(.mobile-topbar-row) .mobile-topbar-actions {
    flex: 0 0 44px !important;
    width: 44px !important;
    gap: 0 !important;
  }

  body.mobile-nav-discover .topbar:has(.mobile-topbar-row) .mobile-topbar-actions {
    display: none !important;
  }

  body.mobile-nav-home .topbar:has(.mobile-topbar-row) .mobile-topbar-actions .feedback-top-btn-wrap,
  body.mobile-nav-discover .topbar:has(.mobile-topbar-row) .mobile-topbar-actions .feedback-top-btn-wrap {
    display: none !important;
  }

  .topbar:has(.mobile-topbar-row) .mobile-topbar-actions {
    grid-column: 3 !important;
    justify-self: end !important;
    grid-area: unset !important;
    flex: 0 0 100px !important;
    width: 100px !important;
    height: 44px !important;
    margin: 0;
    padding: 0;
    gap: 12px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    box-sizing: border-box;
  }

  .topbar:has(.mobile-topbar-row) .mobile-topbar-actions .feedback-top-btn-wrap {
    flex: 0 0 44px !important;
    width: 44px !important;
    height: 44px !important;
    margin: 0;
    padding: 0;
    background: transparent;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .topbar:has(.mobile-topbar-row) #mobileSearchOpenBtn,
  .topbar:has(.mobile-topbar-row) #announcementOpenBtn,
  .topbar:has(.mobile-topbar-row) #refreshBtn,
  .topbar:has(.mobile-topbar-row) #superAnalysisHistoryBtnMobile,
  .topbar:has(.mobile-topbar-row) #superAnalysisNewChatBtnMobile {
    grid-area: unset !important;
    flex: 0 0 44px !important;
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 0 !important;
    box-sizing: border-box !important;
  }

  .topbar:has(.mobile-topbar-row) .major-indices-strip {
    display: block !important;
    width: 100vw !important;
    max-width: 100vw !important;
    min-width: 0 !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    grid-column: 1 / -1 !important;
    grid-area: unset !important;
    flex-shrink: 0;
    scroll-snap-type: none !important;
  }

  .topbar:has(.mobile-topbar-row) .major-indices-strip:has(.major-indices-track.is-animated) {
    overflow: hidden !important;
    overflow-x: hidden !important;
  }

  .topbar:has(.mobile-topbar-row) .major-indices-strip:has(.major-indices-track):not(:has(.major-indices-track.is-animated)) {
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch;
    touch-action: manipulation;
  }

  .topbar:has(.mobile-topbar-row) .major-indices-strip:not(:has(.major-indices-track)) {
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch;
    touch-action: manipulation;
  }

  .status-band[data-mobile-home-section] .market-overview-card > .mobile-market-tip {
    margin-top: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .status-band[data-mobile-home-section] > .market-overview-card {
    width: 100% !important;
    max-width: 100% !important;
    flex-basis: auto !important;
    padding-bottom: 0 !important;
  }

  /* 去掉深色顶栏底部的细线（全局 Layout refresh 的 border-bottom / box-shadow 等） */
  body.niepan-app header.topbar,
  body.niepan-app header.topbar:has(.mobile-topbar-row),
  body.niepan-app header.topbar .mobile-topbar-row,
  body.niepan-app header.topbar .major-indices-strip.mobile-hero-indices {
    border: 0 !important;
    border-bottom: 0 !important;
    outline: none !important;
    box-shadow: none !important;
  }

  body.niepan-app header.topbar .major-indices-strip.mobile-hero-indices::before,
  body.niepan-app header.topbar .major-indices-strip.mobile-hero-indices::after {
    box-shadow: none !important;
  }

  body.niepan-app #appMain > .status-band[data-mobile-home-section] {
    margin-top: 0 !important;
    padding-top: 0 !important;
    border-top: none !important;
    box-shadow: none !important;
  }

  body.niepan-app #appMain > .status-band[data-mobile-home-section] > .market-overview-card {
    border-top: none !important;
    box-shadow: none !important;
  }
}

/* 后台页独立于前台 mobile 滚动锁，避免 html/body overflow:hidden 导致无法滚动 */
@media (max-width: 760px) {
  html:has(body.admin-dash-page),
  html:has(body.admin-auth-page) {
    height: auto !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
  }

  body.admin-dash-page {
    display: block !important;
    height: auto !important;
    min-height: 100dvh !important;
    overflow: visible !important;
  }

  body.admin-auth-page {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: auto !important;
    min-height: 100dvh !important;
    padding: calc(24px + env(safe-area-inset-top, 0px)) calc(16px + env(safe-area-inset-right, 0px)) calc(24px + env(safe-area-inset-bottom, 0px)) calc(16px + env(safe-area-inset-left, 0px));
    box-sizing: border-box;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
  }

  body.admin-auth-page .admin-auth-card {
    width: 100%;
    max-width: min(420px, 100%);
    flex-shrink: 0;
    margin: auto;
  }

  body.admin-auth-page .admin-auth-actions button.primary:active,
  body.admin-auth-page .admin-auth-actions button.primary:focus,
  body.admin-auth-page .admin-auth-actions button.primary:focus-visible {
    background: var(--auth-accent) !important;
    border-color: var(--auth-accent) !important;
    color: #fff !important;
  }

  body.admin-auth-page .admin-auth-actions a.link-muted:active,
  body.admin-auth-page .admin-auth-actions a.link-muted:focus,
  body.admin-auth-page .admin-auth-actions a.link-muted:focus-visible {
    background: transparent !important;
    color: var(--muted) !important;
  }

  body.admin-auth-page .auth-text-link:active,
  body.admin-auth-page .auth-text-link:focus,
  body.admin-auth-page .auth-text-link:focus-visible {
    color: var(--auth-accent) !important;
    background: transparent !important;
    text-decoration: none !important;
  }

  body.admin-dash-page .admin-dash-body-stack,
  body.admin-dash-page .admin-dash-panel-users,
  body.admin-dash-page .admin-dash-panel-announcements {
    overflow: visible !important;
  }

  body.admin-dash-page .admin-users-table-wrap {
    overflow-x: auto !important;
    overflow-y: visible !important;
    -webkit-overflow-scrolling: touch;
    touch-action: manipulation;
  }
}

/* 策略模块 Tab：每日策略 / 短线龙头策略 */
.strategy-panel {
  position: relative;
}

.strategy-page-loading {
  position: absolute;
  inset: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(247, 248, 250, 0.94);
  backdrop-filter: blur(2px);
  box-sizing: border-box;
}

.strategy-page-loading[hidden] {
  display: none !important;
}

.strategy-page-loading-center {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 24px 20px;
  text-align: center;
}

.strategy-loading-spinner-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
}

.strategy-page-loading-spinner,
.strategy-page-loading-center .async-loading-spinner,
.strategy-page-loading .strategy-page-loading-spinner {
  width: 36px;
  height: 36px;
  border-width: 3px;
  border-color: rgba(36, 84, 166, 0.14);
  border-top-color: var(--blue, #2454a6);
  border-radius: 50%;
  animation: asyncLoadingSpin 0.7s linear infinite;
}

.strategy-page-loading-text {
  font-size: 15px;
  font-weight: 500;
  color: #1d2129;
}

.strategy-page-loading-subline {
  font-size: 12px;
  line-height: 1.5;
  color: #86909c;
  max-width: 260px;
}

.strategy-head-actions .is-busy,
.mobile-strategy-update-btn.is-busy {
  opacity: 0.88;
  cursor: wait;
}

.strategy-loading-cell {
  color: #86909c;
  font-size: 13px;
}

#marketPanelStrategy .strategy-panel.is-loading:has(#strategyContentDaily.is-active) > :not(#strategyPageLoading) {
  visibility: hidden;
  pointer-events: none;
}

#marketPanelStrategy .strategy-panel.is-loading:has(#strategyContentDaily.is-active) #strategyPageLoading {
  visibility: visible;
  pointer-events: auto;
}

@media (min-width: 761px) {
  #marketPanelStrategy .strategy-panel.is-loading {
    min-height: 320px;
  }
}

.strategy-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.strategy-panel-head-main {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 12px;
  min-width: 0;
  flex: 1 1 auto;
}

.strategy-panel-head-main h2 {
  margin: 0;
}

.strategy-pure-mode-hint {
  margin: 0;
  color: #ea580c;
  font-size: 12px;
  line-height: 1.5;
}

.strategy-pure-mode-switch {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  font-size: 13px;
  color: var(--muted);
  cursor: pointer;
  user-select: none;
  flex: 0 0 auto;
}

.strategy-pure-mode-switch input {
  width: 38px;
  height: 22px;
  margin: 0;
  accent-color: #ea580c;
  cursor: pointer;
}

.strategy-pure-mode-switch--mobile {
  display: none;
  position: relative;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  gap: 0;
}

.strategy-pure-mode-switch--mobile .strategy-pure-mode-label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.strategy-pure-mode-hint--mobile {
  padding: 0 12px 8px;
  text-align: center;
  background: var(--m-header-bg, #202638);
}

body.strategy-pure-mode-active .global-data-init-bar {
  display: none !important;
}

.strategy-content-tabs {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 12px 16px 12px;
  padding: 4px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #f6f9fd;
}

.strategy-content-tabs button {
  flex: 1 1 0;
  border: 1px solid transparent;
  border-radius: 999px;
  padding: 8px 8px;
  background: transparent;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.2;
  white-space: nowrap;
  cursor: pointer;
}

.strategy-content-tabs button.active {
  border-color: var(--blue);
  background: #fff;
  color: var(--blue);
  box-shadow: 0 1px 4px rgba(16, 24, 40, .08);
}

.strategy-content-panel[hidden] {
  display: none !important;
}

.daily-strategy-tab-loading[hidden] {
  display: none !important;
}

.daily-strategy-tab-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 48px 16px;
  min-height: 200px;
}

.daily-strategy-tab-loading .async-loading-spinner {
  width: 32px;
  height: 32px;
  border-width: 3px;
}

.daily-strategy-tab-loading .stock-detail-loading-center-text {
  margin: 0;
  font-size: 14px;
  font-weight: 500;
}

.daily-strategy-tab-loading .strategy-page-loading-subline {
  margin: 0;
  font-size: 12px;
}

.quant-strategy-section {
  padding: 16px;
  min-height: 320px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.quant-strategy-section.is-loading .quant-account-stats strong,
.quant-strategy-section.is-loading .quant-holding-cards {
  opacity: 0.55;
}

.quant-strategy-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 12px;
  padding: 60px 20px;
}

.quant-strategy-placeholder p {
  margin: 0;
  font-size: 15px;
  line-height: 1.6;
}

/* 账户信息区 */
.quant-account-header {
  background: #fff;
  border: 1px solid var(--line, #e5e7eb);
  border-radius: 12px;
  padding: 12px;
}

.quant-account-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}

.quant-account-title {
  display: flex;
  align-items: center;
  gap: 0;
}

.quant-account-title strong {
  font-size: 16px;
  font-weight: 700;
  color: #1d2129;
}

.quant-remaining-days {
  font-size: 12px;
  color: #f59e0b;
  font-weight: 500;
}

.quant-remaining-days.is-expired {
  color: #dc2626;
}

.strategy-daily-main[hidden],
.short-term-strategy-main[hidden] {
  display: none !important;
}

@media (max-width: 760px) {
  body.mobile-nav-strategy .strategy-content-panel:has(.strategy-access-gate:not([hidden])) {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 100%;
    padding: 20px 16px calc(20px + env(safe-area-inset-bottom, 0px));
    box-sizing: border-box;
    background: #fff;
  }

  body.mobile-nav-strategy .strategy-content-panel .strategy-access-gate:not([hidden]) {
    flex: 1 1 auto;
    align-items: stretch;
    justify-content: center;
    min-height: 0;
    width: 100%;
    padding: 0;
  }
}

.quant-access-gate {
  display: none;
  align-items: center;
  justify-content: center;
  min-height: 360px;
  padding: 32px 20px;
}

.quant-access-gate:not([hidden]) {
  display: flex;
}

.quant-account-header[hidden],
.quant-middle-section[hidden],
.quant-bottom-section[hidden] {
  display: none !important;
}

.quant-access-gate-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  max-width: 360px;
  text-align: center;
}

.quant-access-gate-card strong {
  font-size: 18px;
  color: #1d2129;
}

.quant-redeem-tip {
  margin: 8px 0 0;
  font-size: 13px;
}

.quant-redeem-error {
  margin: 0;
  color: #dc2626 !important;
  font-size: 13px;
}

.quant-redeem-input {
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.quant-toast-host {
  position: fixed;
  top: 72px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10060;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  max-width: min(420px, calc(100vw - 32px));
  pointer-events: none;
}

.quant-toast {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 16px;
  border-radius: 12px;
  background: #fff;
  border: 1px solid #e5e7eb;
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.12);
  opacity: 0;
  transform: translateY(-8px);
  transition: opacity 0.22s ease, transform 0.22s ease;
  pointer-events: auto;
}

.quant-toast.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.quant-toast-icon {
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  margin-top: 1px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
}

.quant-toast--success .quant-toast-icon {
  background: #dcfce7;
  color: #15803d;
}

.quant-toast--error .quant-toast-icon {
  background: #fee2e2;
  color: #dc2626;
}

.quant-toast-body {
  min-width: 0;
}

.quant-toast-title {
  margin: 0;
  font-size: 14px;
  font-weight: 700;
  color: #1d2129;
  line-height: 1.4;
}

.quant-toast-desc {
  margin: 4px 0 0;
  font-size: 13px;
  color: #667085;
  line-height: 1.45;
}

.quant-renew-link {
  border: none;
  background: transparent;
  color: #2563eb;
  font-size: 12px;
  cursor: pointer;
  padding: 0;
  text-decoration: underline;
}

.quant-account-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.quant-btn {
  padding: 8px 16px;
  border-radius: 8px;
  font-size: 13px;
  cursor: pointer;
  border: 1px solid transparent;
  transition: all 0.15s;
  white-space: nowrap;
}

.quant-btn.primary {
  background: #2563eb;
  color: #fff;
  border-color: #2563eb;
}

.quant-btn.primary:hover {
  background: #1d4ed8;
}

.quant-btn.primary.running {
  background: #f0fdf4;
  color: #16a34a;
  border-color: #86efac;
}

.quant-btn.danger {
  background: #dc2626;
  color: #fff;
  border-color: #dc2626;
}

.quant-btn.danger:hover {
  background: #b91c1c;
  border-color: #b91c1c;
}

.quant-btn.danger:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.quant-btn.outline {
  background: #fff;
  color: #2563eb;
  border-color: #93c5fd;
}

.quant-btn.outline:hover {
  background: #eff6ff;
}

.quant-btn.outline.danger-outline {
  background: #fff;
  color: #dc2626;
  border-color: #fca5a5;
}

.quant-btn.outline.danger-outline:hover:not(:disabled) {
  background: #fef2f2;
  border-color: #f87171;
  color: #b91c1c;
}

.quant-btn.outline.danger-outline:disabled {
  opacity: 0.55;
  color: #94a3b8;
  border-color: #e2e8f0;
  background: #f8fafc;
  cursor: not-allowed;
}

.quant-btn.outline.active {
  background: #2563eb;
  color: #fff;
}

.quant-btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.quant-account-stats {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 12px;
}

.quant-stat {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.quant-stat span {
  font-size: 12px;
  color: #86909c;
}

.quant-stat strong {
  font-size: 18px;
  font-weight: 700;
  color: #1d2129;
}

.quant-stat strong.up { color: #dc2626; }
.quant-stat strong.down { color: #16a34a; }

.quant-pnl-combo {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0;
  min-width: 0;
}

.quant-pnl-combo strong {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.2;
}

.quant-pnl-combo-sep {
  display: inline-flex;
  align-items: center;
  margin: 0 2px;
  padding: 0 2px;
  font-size: 14px;
  font-weight: 600;
  color: #86909c;
  line-height: 1.2;
  white-space: pre;
}

.quant-risk-status {
  margin: 0 0 12px;
  padding: 8px 10px;
  border: 1px solid #dbeafe;
  border-radius: 8px;
  background: #f8fbff;
  color: #2563eb;
  font-size: 12px;
  line-height: 1.5;
}

.quant-risk-status--caution,
.quant-risk-status--daily_halt {
  border-color: #fde68a;
  background: #fffbeb;
  color: #b45309;
}

.quant-risk-status--defensive,
.quant-risk-status--halt {
  border-color: #fecaca;
  background: #fff7f7;
  color: #dc2626;
}

/* Tab 通用 */
.quant-tabs-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 12px;
  width: 100%;
}

.quant-tabs {
  display: flex;
  gap: 4px;
  flex: 1 1 auto;
  width: 100%;
  padding: 4px;
  background: #f6f9fd;
  border: 1px solid var(--line, #e5e7eb);
  border-radius: 999px;
}

.quant-tabs button {
  flex: 1 1 0;
  min-width: 0;
  padding: 6px 8px;
  border: none;
  border-radius: 999px;
  background: transparent;
  color: #86909c;
  font-size: 13px;
  text-align: center;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.15s;
}

.quant-tabs button.active {
  background: #fff;
  color: #2563eb;
  box-shadow: 0 1px 4px rgba(16, 24, 40, 0.08);
}

.quant-history-link {
  border: none;
  background: transparent;
  color: #2563eb;
  font-size: 13px;
  cursor: pointer;
  padding: 4px 8px;
}

.quant-tab-panel[hidden] { display: none !important; }

/* 中段 */
.quant-middle-section {
  background: #fff;
  border: 1px solid var(--line, #e5e7eb);
  border-radius: 12px;
  padding: 12px;
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}

.quant-strategy-section .quant-tab-panel.is-active {
  flex: 1 1 auto;
  min-height: 0;
}

/* 量化指定池 */
.quant-custom-pool-section {
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 0;
  background: transparent;
}
.quant-custom-pool-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.quant-custom-pool-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  border-radius: 8px;
  background: var(--surface-muted, #f7f8fa);
}
.quant-custom-pool-item-main {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  min-width: 0;
  flex: 1 1 auto;
}
.quant-custom-pool-col-name {
  font-weight: 600;
  font-size: 14px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.quant-custom-pool-col-code {
  font-size: 12px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.quant-custom-pool-col-status {
  font-size: 12px;
  white-space: nowrap;
}
.quant-custom-pool-status {
  font-weight: 600;
}
.quant-custom-pool-status.is-pending {
  color: #d97706;
}
.quant-custom-pool-status.is-holding {
  color: #059669;
}
.quant-custom-pool-status.is-removing {
  color: #64748b;
}
.quant-custom-pool-status.is-liquidating {
  color: #b45309;
}
.quant-custom-pool-item.is-removing-item {
  gap: 16px;
}
.quant-custom-pool-item.is-removing-item .quant-custom-pool-item-main {
  flex: 1 1 auto;
}
.quant-text-action-danger {
  flex: 0 0 auto;
  border: none;
  background: none;
  padding: 0;
  color: #dc2626;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
  cursor: pointer;
  white-space: nowrap;
}
.quant-text-action-danger:hover {
  color: #b91c1c;
}
.quant-text-action-danger:disabled {
  opacity: 0.45;
  cursor: not-allowed;
  color: #94a3b8;
}
.quant-text-action-danger:disabled:hover {
  color: #94a3b8;
}
.quant-custom-pool-item .quant-btn {
  flex: 0 0 auto;
  white-space: nowrap;
}
.quant-custom-pool-add {
  display: flex;
  gap: 8px;
  align-items: stretch;
  margin-bottom: 12px;
  overflow: visible;
}
.quant-custom-pool-input {
  flex: 0 1 360px;
  width: 360px;
  max-width: 100%;
  height: 36px;
  padding: 0 12px;
  border: 1px solid var(--border-color, #e5e6eb);
  border-radius: 8px;
  box-sizing: border-box;
  font-size: 13px;
  line-height: normal;
  color: var(--ink, #1d2129);
  background: #fff;
  outline: none;
  -webkit-appearance: none;
  appearance: none;
  -webkit-tap-highlight-color: transparent;
  transition: border-color 0.15s ease;
}
.quant-custom-pool-input::placeholder {
  color: #c9cdd4;
  font-size: 12px;
}
.quant-custom-pool-input::-webkit-input-placeholder {
  color: #c9cdd4;
  font-size: 12px;
}
.quant-custom-pool-input:focus,
.quant-custom-pool-input:focus-visible {
  outline: none;
  border-color: var(--blue, #2454a6);
  box-shadow: none;
}
.quant-custom-pool-add .quant-btn {
  flex: 0 0 auto;
  height: 36px;
  padding: 0 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
}

#quantCustomPool.quant-tab-panel.is-active {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
}

#quantCustomPool .quant-custom-pool-section {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  margin: 0;
  padding: 0;
}

/* 持仓卡片：按容器宽度自适应列数，纵向滚动由 tab 面板承担 */
.quant-holding-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 12px;
  overflow-x: hidden;
  overflow-y: visible;
  padding-bottom: 8px;
}

.quant-holding-cards:has(.quant-empty) {
  justify-content: center;
  align-items: center;
  flex: 0 0 auto;
  min-height: 0;
  height: auto;
  overflow: visible;
  padding-bottom: 0;
}

#quantHoldings.quant-tab-panel.is-active:has(.quant-empty) {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  align-content: center;
  justify-content: center;
  gap: 12px;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}

#quantHoldings.quant-tab-panel.is-active:has(.quant-empty) .quant-risk-status {
  margin: 0;
  flex: 0 1 auto;
  max-width: 100%;
}

#quantHoldings.quant-tab-panel.is-active:has(.quant-empty) .quant-holding-cards {
  flex: 0 0 auto;
  width: auto;
  max-width: 100%;
}

#quantHoldings.quant-tab-panel.is-active:has(.quant-empty) .quant-empty {
  width: auto;
  padding: 0;
  text-align: center;
  white-space: nowrap;
}

.quant-holding-card {
  width: auto;
  min-width: 0;
  max-width: none;
  box-sizing: border-box;
  background: #fefcf8;
  border: 1px solid #f0ebe0;
  border-radius: 10px;
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.quant-holding-card.clickable-row {
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.quant-holding-card.clickable-row:hover {
  border-color: #d4c9b0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.quant-holding-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-width: 0;
}

.quant-holding-head .stock-name-with-star {
  flex: 1 1 auto;
  min-width: 0;
}

.quant-holding-head-main {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  flex: 1;
}

.quant-holding-head-meta {
  display: inline-flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-end;
  gap: 4px;
  flex: 0 0 auto;
  margin-left: auto;
}

.quant-holding-head strong {
  font-size: 14px;
  font-weight: 600;
  color: #1d2129;
}

.quant-holding-head small,
.quant-holding-code {
  font-size: 11px;
  line-height: 1.2;
  color: #86909c;
  white-space: nowrap;
}

.quant-strategy-tag {
  display: inline-flex;
  align-items: center;
  padding: 1px 6px;
  border-radius: 4px;
  font-size: 10px;
  font-weight: 600;
  line-height: 1.4;
  background: #eff6ff;
  color: #2563eb;
  white-space: nowrap;
}

.quant-holding-pnl-row {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: baseline;
  gap: 8px;
  min-width: 0;
}

.quant-holding-pnl,
.quant-holding-pnl-amount {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.2;
}

.quant-holding-pnl.up,
.quant-holding-pnl-amount.up { color: #dc2626; }

.quant-holding-pnl.down,
.quant-holding-pnl-amount.down { color: #16a34a; }

.quant-holding-pnl-amount {
  white-space: nowrap;
}

.quant-holding-info,
.quant-holding-prices,
.quant-holding-volume {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
  font-size: 11px;
  color: #86909c;
}

.quant-t-trade-tag {
  color: #d97706;
  font-weight: 600;
}

/* 盈亏明细控件 */
.quant-pnl-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}

.quant-pnl-legend {
  display: flex;
  gap: 12px;
}

.quant-legend-item {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  color: #475569;
}

.quant-legend-item .dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 2px;
}

.quant-legend-item .dot.red { background: #dc2626; }
.quant-legend-item .dot.blue { background: #2563eb; }

.quant-pnl-ranges,
.quant-pnl-toggles {
  display: flex;
  gap: 4px;
}

.quant-pnl-ranges button,
.quant-pnl-toggles button {
  padding: 4px 10px;
  border: 1px solid var(--line, #e5e7eb);
  border-radius: 6px;
  background: #fff;
  color: #86909c;
  font-size: 12px;
  cursor: pointer;
}

.quant-pnl-ranges button.active,
.quant-pnl-toggles button.active {
  background: #2563eb;
  color: #fff;
  border-color: #2563eb;
}

.quant-pnl-chart-wrap {
  height: 280px;
  position: relative;
}

.quant-pnl-chart-wrap.is-loading canvas {
  opacity: 0.35;
}

.quant-pnl-loading {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  color: #86909c;
  pointer-events: none;
}

.quant-pnl-calendar-wrap {
  min-height: 280px;
}

/* 日历 */
.quant-calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}

.quant-calendar-weekday {
  text-align: center;
  font-size: 11px;
  color: #86909c;
  padding: 4px 0;
}

.quant-calendar-day {
  aspect-ratio: 1;
  border-radius: 6px;
  padding: 4px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  background: #f8fafc;
  border: 1px solid #f1f5f9;
}

.quant-calendar-day.empty {
  background: transparent;
  border: none;
}

.quant-calendar-day.up {
  background: #fef2f2;
  border-color: #fecaca;
}

.quant-calendar-day.down {
  background: #f0fdf4;
  border-color: #bbf7d0;
}

.quant-calendar-day.today {
  border: 2px solid #2563eb;
}

.quant-calendar-day .cal-day-num {
  font-size: 11px;
  color: #475569;
}

.quant-calendar-day .cal-day-pnl {
  font-size: 12px;
  font-weight: 600;
}

.quant-calendar-day.up .cal-day-pnl { color: #dc2626; }
.quant-calendar-day.down .cal-day-pnl { color: #16a34a; }

/* 下段 */
.quant-bottom-section {
  background: #fff;
  border: 1px solid var(--line, #e5e7eb);
  border-radius: 12px;
  padding: 16px 20px;
}

/* 交易终端 */
#quantTrades.quant-tab-panel.is-active {
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
}

.quant-trade-console {
  background: #1e293b;
  border-radius: 10px;
  padding: 16px;
  flex: 1 1 auto;
  align-self: stretch;
  width: 100%;
  min-height: 200px;
  height: 100%;
  overflow-y: auto;
  font-family: "SF Mono", "Fira Code", "Consolas", monospace;
  font-size: 13px;
  line-height: 1.2;
  scrollbar-width: thin;
  box-sizing: border-box;
}

.quant-console-line {
  display: flex;
  gap: 8px;
  color: #94a3b8;
}

.quant-console-line .line-num {
  color: #475569;
  flex: 0 0 24px;
  text-align: right;
  user-select: none;
}

/* 交易明细日志色：按动作语义分层，避免红绿蓝橙混用 */
.quant-console-line.is-buy {
  color: #7dd3fc;
}

.quant-console-line.is-profit {
  color: #f87171;
}

.quant-console-line.is-loss {
  color: #4ade80;
}

.quant-console-line.is-sell {
  color: #cbd5e1;
}

.quant-console-line.is-t-sell {
  color: #fb923c;
}

.quant-console-line.is-risk-sell {
  color: #f472b6;
}

.quant-console-line.is-scale-buy {
  color: #2dd4bf;
}

.quant-console-line.is-take-profit {
  color: #fbbf24;
}

.quant-console-line.is-rebalance {
  color: #818cf8;
}

.quant-console-line.is-status {
  color: #64748b;
  font-style: italic;
}

.quant-trade-console.is-empty {
  display: flex;
  align-items: center;
  justify-content: center;
}

.quant-trades-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  text-align: center;
  font-family: inherit;
}

.quant-trades-empty-icon {
  width: 64px;
  height: 64px;
  color: #64748b;
}

.quant-trades-empty-text {
  margin: 0;
  font-size: 14px;
  line-height: 1.6;
  color: #94a3b8;
}

/* 回测 */
.quant-backtest-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
}

.quant-backtest-metrics {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 12px;
  margin-bottom: 16px;
}

.quant-backtest-metrics.is-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 320px;
  margin-bottom: 0;
}

.quant-backtest-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  width: 100%;
  padding: 32px 20px;
  text-align: center;
}

.quant-backtest-empty-icon {
  width: 72px;
  height: 72px;
  color: #c9cdd4;
}

.quant-backtest-empty-text {
  margin: 0;
  max-width: 280px;
  font-size: 14px;
  line-height: 1.6;
  color: #86909c;
}

.quant-metric-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
  text-align: center;
}

.quant-metric-item span {
  font-size: 12px;
  color: #86909c;
}

.quant-metric-item strong {
  font-size: 15px;
  font-weight: 700;
  color: #1d2129;
}

.quant-metric-item strong.up { color: #dc2626; }
.quant-metric-item strong.down { color: #16a34a; }

.quant-metric-item small {
  font-size: 12px;
  font-weight: 600;
}

.quant-metric-item small.up { color: #dc2626; }
.quant-metric-item small.down { color: #16a34a; }

.quant-backtest-chart-wrap {
  height: 300px;
  position: relative;
}

/* 空状态 */
.quant-empty {
  width: 100%;
  margin: 0;
  text-align: center;
  padding: 24px 0;
  font-size: 14px;
}

/* 增加资产弹窗 */
.quant-capital-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0);
  transition: background 0.2s ease;
}
.quant-capital-modal-overlay.is-open {
  background: rgba(0, 0, 0, 0.4);
}
.quant-capital-modal {
  width: 360px;
  max-width: calc(100vw - 32px);
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15);
  overflow: hidden;
  transform: translateY(12px);
  opacity: 0;
  transition: transform 0.2s ease, opacity 0.2s ease;
}
.quant-capital-modal-overlay.is-open .quant-capital-modal {
  transform: translateY(0);
  opacity: 1;
}
.quant-capital-modal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  border-bottom: 1px solid #e5e6eb;
}
.quant-capital-modal-head strong {
  font-size: 16px;
  font-weight: 700;
  color: #1d2129;
}
.quant-capital-modal-close {
  border: none;
  background: none;
  font-size: 22px;
  line-height: 1;
  color: #86909c;
  cursor: pointer;
  padding: 0 4px;
}
.quant-capital-modal-close:hover {
  color: #1d2129;
}
.quant-capital-modal-body {
  padding: 20px;
}
.quant-capital-label {
  display: block;
  margin-bottom: 10px;
  font-size: 14px;
  color: #4e5969;
}
.quant-capital-input {
  width: 100%;
  box-sizing: border-box;
  padding: 10px 12px;
  border: 1px solid #e5e6eb;
  border-radius: 8px;
  font-size: 16px;
  color: #1d2129;
  outline: none;
  transition: border-color 0.2s ease;
}
.quant-capital-input:focus {
  border-color: var(--blue, #2563eb);
}
.quant-capital-presets {
  display: flex;
  gap: 8px;
  margin-top: 12px;
}
.quant-capital-presets button {
  flex: 1;
  padding: 6px 8px;
  border: 1px solid #e5e6eb;
  border-radius: 6px;
  background: #f7f8fa;
  font-size: 13px;
  color: #4e5969;
  cursor: pointer;
  transition: all 0.15s ease;
}
.quant-capital-presets button:hover {
  border-color: var(--blue, #2563eb);
  color: var(--blue, #2563eb);
}

.quant-capital-presets button.active,
.quant-backtest-presets button.active {
  border-color: #2563eb;
  background: #eff6ff;
  color: #2563eb;
  font-weight: 600;
  box-shadow: inset 0 0 0 1px rgba(37, 99, 235, 0.12);
}
.quant-capital-modal-foot {
  display: flex;
  gap: 12px;
  padding: 12px 20px 20px;
  justify-content: flex-end;
}

.quant-confirm-message {
  margin: 0;
  font-size: 14px;
  line-height: 1.6;
  color: #4e5969;
}

.quant-pool-remove-modal {
  width: 420px;
}

.quant-pool-remove-modal .quant-capital-modal-foot,
.quant-pool-remove-modal-foot {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  flex-wrap: wrap;
}

.quant-pool-remove-modal-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  margin-left: auto;
}

.quant-pool-remove-modal-actions .quant-btn {
  min-width: 92px;
}

.quant-backtest-modal {
  width: 400px;
}

.quant-backtest-tip {
  margin: 0 0 14px;
  font-size: 13px;
  line-height: 1.5;
}

.quant-backtest-range-row {
  margin-bottom: 12px;
}

.quant-backtest-range-row .quant-capital-label {
  margin-bottom: 6px;
}

.quant-backtest-error {
  margin: 10px 0 0;
  font-size: 13px;
  color: #dc2626 !important;
}

.quant-backtest-progress-overlay {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(15, 23, 42, 0.36);
  opacity: 0;
  transition: opacity 0.2s ease;
}

.quant-backtest-progress-overlay.is-open {
  opacity: 1;
}

.quant-backtest-progress-card {
  width: min(420px, calc(100vw - 40px));
  padding: 24px 22px;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 18px 48px rgba(15, 23, 42, 0.18);
}

.quant-backtest-progress-card strong {
  display: block;
  margin-bottom: 10px;
  font-size: 16px;
  color: #1d2129;
}

.quant-backtest-progress-stage {
  margin: 0 0 14px;
  font-size: 14px;
  line-height: 1.5;
  color: #4e5969;
  min-height: 21px;
}

.quant-backtest-progress-track {
  height: 10px;
  border-radius: 999px;
  background: #eef2ff;
  overflow: hidden;
}

.quant-backtest-progress-bar {
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #2563eb, #38bdf8);
  transition: width 0.35s ease;
}

.quant-backtest-progress-percent {
  display: block;
  margin-top: 10px;
  font-size: 13px;
  color: #86909c;
  text-align: right;
}

.quant-session-hint {
  margin: 10px 0 0;
  font-size: 12px;
  line-height: 1.5;
  color: #86909c;
}

.quant-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

/* 响应式 */
@media (max-width: 768px) {
  .quant-account-stats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px 8px;
  }

  .quant-account-top {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
  }

  .quant-account-title {
    flex: 1 1 auto;
    min-width: 0;
  }

  .quant-account-actions {
    flex: 0 0 auto;
    flex-wrap: nowrap;
    margin-left: auto;
  }

  .quant-account-actions .quant-btn {
    padding: 6px 10px;
    font-size: 12px;
  }

  .quant-backtest-metrics {
    grid-template-columns: repeat(3, 1fr);
  }

  .quant-holding-cards {
    grid-template-columns: repeat(auto-fill, minmax(168px, 1fr));
    gap: 8px;
    overflow-x: hidden;
    overflow-y: visible;
    padding-bottom: 4px;
  }

  .quant-holding-card {
    flex: none;
    width: auto;
    min-width: 0;
    max-width: none;
    box-sizing: border-box;
  }

  .quant-holding-cards:has(.quant-empty) {
    display: flex;
    grid-template-columns: none;
    flex: 0 0 auto;
    min-height: 0;
    height: auto;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="quant"] #quantHoldings.quant-tab-panel.is-active:has(.quant-empty) {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    align-content: center;
    justify-content: center;
    gap: 10px;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="quant"] #quantHoldings.quant-tab-panel.is-active:has(.quant-empty) .quant-risk-status {
    margin: 0;
    flex: 0 1 auto;
    max-width: 100%;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="quant"] #quantHoldings.quant-tab-panel.is-active:has(.quant-empty) .quant-holding-cards {
    flex: 0 0 auto;
    width: auto;
    max-width: 100%;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="quant"] #quantHoldings.quant-tab-panel.is-active:has(.quant-empty) .quant-empty {
    width: auto;
    padding: 0;
    white-space: nowrap;
  }

  .quant-pnl-controls {
    flex-direction: column;
    align-items: flex-start;
  }
}

.strategy-panel .strategy-content-panel.is-active .strategy-summary,
.strategy-panel .strategy-content-panel.is-active .strategy-weights,
.strategy-panel .strategy-content-panel.is-active .table-wrap,
.strategy-panel .strategy-content-panel.is-active .short-term-strategy-section {
  margin-left: 16px;
  margin-right: 16px;
}

.strategy-panel .strategy-content-panel.is-active .tf-quant-section {
  margin-left: 0;
  margin-right: 0;
}

@media (min-width: 761px) {
  .strategy-panel .strategy-content-panel[data-strategy-content-panel="tf-screener"] .tf-quant-section,
  .strategy-panel .strategy-content-panel[data-strategy-content-panel="tf-backtest"] .tf-quant-section {
    padding: 0 12px 12px;
  }
}

.strategy-panel .strategy-content-panel[data-strategy-content-panel="tf-screener"] .tf-quant-screener-result .tf-quant-frozen-table,
.strategy-panel .strategy-content-panel[data-strategy-content-panel="tf-backtest"] .tf-quant-backtest-result .tf-quant-bt-trades .tf-quant-frozen-table {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.short-term-strategy-section {
  margin: 8px 0 20px;
  padding: 12px 12px 16px;
  border: 1px solid var(--line, #e5e6eb);
  border-radius: 12px;
  background: #fff;
}

.short-term-strategy-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 4px;
}

.short-term-strategy-head h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 600;
}

.short-term-strategy-refresh {
  border: 1px solid var(--line, #e5e6eb);
  border-radius: 6px;
  background: #fff;
  padding: 4px 12px;
  font-size: 13px;
  cursor: pointer;
}

.short-term-strategy-meta {
  margin: 0 0 6px;
  font-size: 12px;
}

.short-term-strategy-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
  max-width: 100%;
  min-height: 220px;
  padding: 32px 24px;
  text-align: center;
  box-sizing: border-box;
  grid-column: 1 / -1;
}

.short-term-strategy-loading .async-loading-spinner {
  width: 32px;
  height: 32px;
  border-width: 3px;
  border-color: rgba(32, 38, 56, 0.12);
  border-top-color: #202638;
  animation: asyncLoadingSpin 0.75s linear infinite;
}

.short-term-strategy-loading-text,
.short-term-strategy-loading .stock-detail-loading-center-text {
  margin: 0;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  color: #1d2129;
}

.short-term-strategy-loading .strategy-page-loading-subline {
  margin: 0;
  font-size: 12px;
  line-height: 1.5;
  color: #86909c;
  max-width: 260px;
}

.short-term-strategy-list.is-loading,
.short-term-strategy-list:has(.short-term-strategy-loading) {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  align-self: stretch;
}

.short-term-strategy-section.is-loading,
.short-term-strategy-section.is-loading .short-term-strategy-list {
  width: 100%;
  max-width: 100%;
  align-self: stretch;
}

.short-term-strategy-section.is-loading .short-term-strategy-refresh {
  opacity: 0.55;
  pointer-events: none;
}

.short-term-strategy-list {
  display: grid;
  gap: 12px;
}

.short-term-strategy-card.clickable-row {
  cursor: pointer;
}

.short-term-strategy-card.clickable-row:hover {
  border-color: #c8daf5;
  background: #f6f9fd;
}

@media (min-width: 961px) {
  .short-term-strategy-list {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .short-term-strategy-list > .module-empty-tip,
  .short-term-strategy-list > .short-term-strategy-loading {
    grid-column: 1 / -1;
  }

  .short-term-strategy-card-head strong {
    font-size: 14px;
  }

  .short-term-strategy-quote strong {
    font-size: 16px;
  }

  .short-term-strategy-prices dd {
    font-size: 14px;
  }

  .short-term-strategy-risk-text {
    font-size: 12px;
  }
}

.short-term-strategy-card {
  border: 1px solid var(--line, #e5e6eb);
  border-radius: 8px;
  padding: 12px;
  background: #fafafa;
}

.short-term-strategy-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}

.short-term-strategy-card-head strong {
  display: block;
  font-size: 15px;
}

.short-term-strategy-card-head small {
  color: #86909c;
}

.short-term-strategy-card-head small.stock-code-line {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  width: fit-content;
  max-width: 100%;
}

.short-term-strategy-quote {
  text-align: right;
}

.short-term-strategy-quote strong {
  display: block;
  font-size: 18px;
  font-weight: 600;
  color: #1d2129;
}

.short-term-strategy-quote small {
  display: block;
  font-size: 13px;
  margin-top: 2px;
}

.short-term-strategy-quote small.up {
  color: #f53f3f;
}

.short-term-strategy-quote small.down {
  color: #00b42a;
}

.short-term-strategy-grade {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 10px;
  padding: 6px 10px;
  border-radius: 6px;
  background: #f2f3f5;
  font-size: 13px;
}

.short-term-strategy-grade-label {
  color: #86909c;
}

.short-term-strategy-grade-value {
  font-weight: 600;
  color: var(--accent, #165dff);
}

.short-term-strategy-prices {
  grid-template-columns: 1fr;
  gap: 6px;
  margin-bottom: 8px;
}

.short-term-strategy-prices div {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
}

.short-term-strategy-prices dt {
  flex: 0 0 auto;
}

.short-term-strategy-prices dd {
  flex: 1 1 auto;
  margin: 0;
  text-align: right;
  font-size: 15px;
  font-weight: 600;
  color: #1d2129;
}

.short-term-strategy-risk-card {
  margin-top: 10px;
  padding: 10px 12px;
  border: 1px solid rgba(245, 63, 63, 0.18);
  border-radius: 8px;
  background: #fff7f7;
}

.short-term-strategy-risk {
  padding-top: 0;
  border-top: none;
}

.short-term-strategy-risk-label {
  display: block;
  font-size: 11px;
  color: #f53f3f;
  font-weight: 600;
  margin-bottom: 4px;
}

.short-term-strategy-risk-text {
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
  color: #f53f3f;
}

.short-term-strategy-score {
  text-align: right;
}

.short-term-strategy-score strong {
  display: block;
  font-size: 18px;
  color: var(--accent, #165dff);
}

.short-term-strategy-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 10px;
  font-size: 12px;
}

.short-term-strategy-tags span {
  padding: 2px 8px;
  border-radius: 4px;
  background: #f2f3f5;
}

.short-term-strategy-tags .up {
  color: #f53f3f;
}

.short-term-strategy-tags .down {
  color: #00b42a;
}

.short-term-strategy-plan {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
}

.short-term-strategy-plan div {
  margin: 0;
}

.short-term-strategy-plan dt {
  font-size: 11px;
  color: #86909c;
}

.short-term-strategy-plan dd {
  margin: 2px 0 0;
  font-size: 13px;
}

@media (max-width: 960px) {
  body.mobile-nav-strategy .strategy-panel > .strategy-content-tabs {
    display: none !important;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="short-term"] {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    min-height: 0;
    align-self: stretch;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    background: #fff;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="short-term"]:not(.is-active) {
    display: none !important;
  }

  body.mobile-nav-strategy .strategy-panel .strategy-content-panel.is-active .short-term-strategy-section {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  body.mobile-nav-strategy #marketPanelStrategy .short-term-strategy-section {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-height: 0;
    align-self: stretch;
    box-sizing: border-box;
    margin: 0 !important;
    padding: 0;
    border: 0 !important;
    border-radius: 0;
    background: #fff;
    box-shadow: none;
  }

  body.mobile-nav-strategy #marketPanelStrategy .short-term-strategy-head {
    flex: 0 0 auto;
    width: 100%;
    box-sizing: border-box;
    padding: 12px 12px 4px;
    border: 0;
    border-radius: 0;
    background: #fff;
  }

  body.mobile-nav-strategy #marketPanelStrategy .short-term-strategy-meta {
    display: none;
  }

  body.mobile-nav-strategy #marketPanelStrategy .short-term-strategy-list {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    min-height: 0;
    box-sizing: border-box;
    padding: 6px 12px 12px;
    padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px));
    border: 0;
    border-radius: 0;
    background: #fff;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    align-content: start;
  }

  /* 列表区域内部滚动，避免整页滚动 */
  body.mobile-nav-strategy #marketPanelStrategy .short-term-strategy-section:has(.short-term-strategy-card) {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
  }

  body.mobile-nav-strategy #marketPanelStrategy .short-term-strategy-list:has(.short-term-strategy-card) {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  body.mobile-nav-strategy #marketPanelStrategy .short-term-strategy-card {
    border-radius: 8px;
    background: #fafafa;
  }

  body.mobile-nav-strategy #marketPanelStrategy .short-term-strategy-list.is-loading,
  body.mobile-nav-strategy #marketPanelStrategy .short-term-strategy-list:has(.short-term-strategy-loading),
  body.mobile-nav-strategy #marketPanelStrategy .short-term-strategy-list:has(> .module-empty-tip:only-child) {
    width: 100%;
    min-width: 0;
    min-height: calc(100dvh - var(--mobile-main-offset, 120px) - var(--m-nav-h, calc(56px + env(safe-area-inset-bottom, 0px))) - 112px);
    box-sizing: border-box;
  }

  body.mobile-nav-strategy #marketPanelStrategy .short-term-strategy-loading {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    width: 100%;
    max-width: 100%;
    min-height: 180px;
    padding: 32px 24px;
    border: 0;
    background: transparent;
    color: #86909c;
    text-align: center;
    box-sizing: border-box;
    grid-column: 1 / -1;
  }

  body.mobile-nav-strategy #marketPanelStrategy .short-term-strategy-loading .async-loading-spinner {
    width: 32px;
    height: 32px;
    border-width: 3px;
    border-color: rgba(32, 38, 56, 0.12);
    border-top-color: #202638;
    animation: asyncLoadingSpin 0.75s linear infinite;
  }

  body.mobile-nav-strategy #marketPanelStrategy .short-term-strategy-loading-text,
  body.mobile-nav-strategy #marketPanelStrategy .short-term-strategy-loading .stock-detail-loading-center-text {
    margin: 0;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.4;
    color: #1d2129;
  }

  body.mobile-nav-strategy #marketPanelStrategy .short-term-strategy-loading .strategy-page-loading-subline {
    margin: 0;
    font-size: 12px;
    line-height: 1.5;
    color: #86909c;
    max-width: 260px;
  }

  body.mobile-nav-strategy #marketPanelStrategy .short-term-strategy-list > .module-empty-tip {
    width: 100%;
    padding: 24px 16px;
    border: 0;
    background: transparent;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="short-term"]:has(.short-term-strategy-section.is-loading) {
    width: 100%;
    max-width: 100%;
    background: #fff;
  }

  body.mobile-nav-strategy #marketPanelStrategy .short-term-strategy-section.is-loading {
    width: 100%;
    max-width: 100%;
    align-self: stretch;
  }

  body.mobile-nav-strategy #marketPanelStrategy .short-term-strategy-section.is-loading .short-term-strategy-list {
    width: 100%;
    max-width: 100%;
  }

  body.mobile-nav-strategy #marketPanelStrategy .short-term-strategy-section.is-loading .short-term-strategy-refresh {
    opacity: 0.55;
    pointer-events: none;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-panel.mobile-strategy-shell {
    display: flex;
    flex-direction: column;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="daily"] {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="daily"]:not(.is-active) {
    display: none !important;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="quant"] {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    background: #fff;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="quant"]:not(.is-active) {
    display: none !important;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="quant"] .quant-strategy-section {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    background: #fff;
    padding: 12px;
    gap: 12px;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="quant"] .quant-account-header {
    flex: 0 0 auto;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="quant"] .quant-account-top {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="quant"] .quant-account-title {
    flex: 1 1 auto;
    min-width: 0;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="quant"] .quant-account-actions {
    flex: 0 0 auto;
    display: flex;
    flex-wrap: nowrap;
    gap: 6px;
    margin-left: auto;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="quant"] .quant-account-actions .quant-btn {
    padding: 6px 10px;
    font-size: 12px;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="quant"] .quant-middle-section {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="quant"] .quant-tabs-row {
    flex: 0 0 auto;
    width: 100%;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="quant"] .quant-tabs {
    flex: 1 1 auto;
    width: 100%;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="quant"] .quant-tabs button {
    flex: 1 1 0;
    min-width: 0;
    padding: 6px 8px;
    text-align: center;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="quant"] .quant-tab-panel.is-active:not(#quantTrades) {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="quant"] .quant-middle-section:has(#quantTrades.is-active:not([hidden])) {
    padding-bottom: 0;
    overflow: hidden;
  }

  /* 交易明细：与 Web 端一致，深色终端填满剩余高度并在内部滚动 */
  body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="quant"] #quantTrades.quant-tab-panel.is-active {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    overscroll-behavior: contain;
    margin-left: -12px;
    margin-right: -12px;
    width: calc(100% + 24px);
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="quant"] #quantTrades .quant-trade-console {
    flex: 1 1 auto;
    align-self: stretch;
    width: 100%;
    min-height: 200px;
    height: 100%;
    max-height: none;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    padding-left: 0;
    padding-right: 0;
    border-radius: 0;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="quant"] #quantTrades .quant-console-line {
    min-width: 0;
    word-break: break-word;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="quant"] .quant-custom-pool-add {
    width: 100%;
    overflow: visible;
    padding-top: 1px;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="quant"] .quant-custom-pool-input {
    flex: 1 1 auto;
    width: auto;
    min-width: 0;
    font-size: 16px;
    line-height: 34px;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="quant"] .quant-custom-pool-input::placeholder,
  body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="quant"] .quant-custom-pool-input::-webkit-input-placeholder {
    font-size: 12px !important;
    line-height: 34px;
    color: #c9cdd4;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="quant"] .quant-custom-pool-input:focus,
  body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="quant"] .quant-custom-pool-input:focus-visible {
    outline: none;
    border-color: var(--blue, #2454a6);
    box-shadow: none;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="quant"] .quant-holding-cards {
    grid-template-columns: repeat(auto-fill, minmax(168px, 1fr));
    gap: 8px;
    overflow-x: hidden;
    overflow-y: visible;
    padding-bottom: 8px;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="quant"] .quant-holding-card {
    flex: none;
    width: auto;
    min-width: 0;
  }

  body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="quant"] .quant-holding-cards:has(.quant-empty) {
    display: flex;
    flex: 0 0 auto;
    min-height: 0;
    height: auto;
  }

  body.mobile-nav-strategy .quant-strategy-section:has(.quant-access-gate:not([hidden])) {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 100%;
    padding: 20px 16px calc(20px + env(safe-area-inset-bottom, 0px));
    box-sizing: border-box;
    background: #fff;
  }

  body.mobile-nav-strategy .quant-access-gate:not([hidden]) {
    flex: 1 1 auto;
    align-items: stretch;
    justify-content: center;
    min-height: 0;
    width: 100%;
    padding: 0;
  }

  body.mobile-nav-strategy .quant-access-gate-card {
    width: 100%;
    max-width: none;
    box-sizing: border-box;
    padding: 28px 20px 24px;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
  }

  body.mobile-nav-strategy .quant-access-gate-card strong {
    font-size: 17px;
    color: #1d2129;
  }

  body.mobile-nav-strategy .quant-access-gate-card .muted,
  body.mobile-nav-strategy .quant-access-gate-desc {
    margin: 0;
    color: #667085 !important;
    font-size: 14px;
    line-height: 1.6;
  }

  body.mobile-nav-strategy .quant-access-gate-card .quant-btn.primary {
    min-width: 148px;
    margin-top: 4px;
  }
}

/* ================================================================
 * tf_quant — 量化策略回测模块样式
 * 复用 CSS 变量: --bg/--ink/--muted/--panel/--line/--red/--green/--blue/--amber
 * ================================================================ */

.tf-quant-section {
  padding: 16px 16px 0;
  min-height: 320px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.tf-quant-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 0;
  padding: 12px;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 10px;
}

.tf-quant-header-top {
  display: flex;
  align-items: center;
  gap: 12px;
}

.tf-quant-header-top strong {
  font-size: 16px;
  color: var(--ink);
}

.tf-quant-data-status {
  font-size: 12px;
  padding: 2px 8px;
  border-radius: 4px;
  background: rgba(128, 128, 128, 0.1);
}

.tf-quant-header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: nowrap;
  margin-left: auto;
}

.tf-quant-sync-progress {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 140px;
  max-width: 220px;
  margin: 0;
}

.tf-quant-header-actions .tf-quant-sync-progress,
.tf-quant-module-sync-bar .tf-quant-sync-progress {
  flex-direction: row;
  align-items: center;
  gap: 8px;
  flex: 1 1 auto;
  min-width: 0;
  max-width: none;
  margin-bottom: 0;
}

.tf-quant-header-actions .tf-quant-sync-progress .tf-quant-progress-bar,
.tf-quant-module-sync-bar .tf-quant-sync-progress .tf-quant-progress-bar {
  flex: 1 1 auto;
  min-width: 96px;
  width: auto;
  margin-bottom: 0;
}

.tf-quant-header-actions .tf-quant-sync-progress span,
.tf-quant-module-sync-bar .tf-quant-sync-progress span {
  flex: 0 1 auto;
  min-width: 0;
}

.tf-quant-header-actions .js-tf-quant-sync-btn,
.tf-quant-module-sync-bar .js-tf-quant-sync-btn {
  align-self: center;
  margin-top: 0;
}

.tf-quant-header-actions .tf-quant-progress,
.tf-quant-module-sync-bar .tf-quant-progress {
  margin-bottom: 0;
}

.tf-quant-sync-progress[hidden] {
  display: none !important;
}

.tf-quant-sync-progress .tf-quant-progress-bar {
  margin-bottom: 4px;
}

.tf-quant-sync-progress span {
  font-size: 11px;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.tf-quant-shared-header {
  margin: 0 16px 8px;
}

@media (min-width: 761px) {
  body.niepan-app #marketPanelStrategy:has(#strategyContentTfBacktest.is-active) #tfQuantSharedHeader:not([hidden]),
  body.niepan-app #marketPanelStrategy:has(#strategyContentTfScreener.is-active) #tfQuantSharedHeader:not([hidden]) {
    margin-bottom: 8px;
  }

  body.niepan-app #strategyContentTfBacktest.is-active .tf-quant-section,
  body.niepan-app #strategyContentTfScreener.is-active .tf-quant-section {
    padding-top: 0;
  }
}

.tf-quant-shared-header[hidden] {
  display: none !important;
}

.tf-quant-panel {
  display: block;
}

.tf-quant-tabs-row {
  display: none;
}

.tf-quant-tab-panel {
  display: none;
}

.tf-quant-tab-panel.is-active {
  display: block;
}

/* ── 策略卡片网格 ─────────────────────────────────── */
.tf-quant-strategy-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 8px;
}

.tf-quant-card {
  position: relative;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 8px 10px 8px 28px;
  cursor: pointer;
  transition: border-color 0.15s, box-shadow 0.15s, transform 0.1s, background-color 0.15s;
  user-select: none;
}

.tf-quant-card:hover {
  border-color: var(--blue);
  box-shadow: 0 1px 6px rgba(0, 0, 0, 0.06);
}

.tf-quant-card.is-selected {
  border-color: var(--blue);
  background: rgba(59, 130, 246, 0.08);
  box-shadow: inset 0 0 0 1px rgba(59, 130, 246, 0.18);
}

.tf-quant-card.is-selected .tf-quant-card-title {
  color: var(--blue);
}

.tf-quant-card-check {
  position: absolute;
  left: 9px;
  top: 11px;
  width: 14px;
  height: 14px;
  border: 1px solid var(--line);
  border-radius: 4px;
  background: var(--panel);
  transition: border-color 0.15s, background-color 0.15s;
}

.tf-quant-card-check::after {
  content: "";
  position: absolute;
  left: 4px;
  top: 1px;
  width: 4px;
  height: 8px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
  opacity: 0;
}

.tf-quant-card.is-selected .tf-quant-card-check {
  border-color: var(--blue);
  background: var(--blue);
}

.tf-quant-card.is-selected .tf-quant-card-check::after {
  opacity: 1;
}

.tf-quant-card:active {
  transform: scale(0.98);
}

.tf-quant-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}

.tf-quant-card-title {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 13px;
  color: var(--ink);
  font-weight: 600;
  line-height: 1.35;
}

.tf-quant-card-source {
  font-size: 9px;
  padding: 1px 4px;
  border-radius: 3px;
  background: rgba(128, 128, 128, 0.15);
  color: var(--muted);
  flex-shrink: 0;
}

.tf-quant-card-tags {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 3px;
  flex: 0 0 auto;
  max-width: 52%;
}

.tf-quant-card-desc {
  margin: 6px 0 0;
  font-size: 11px;
  line-height: 1.45;
  color: var(--muted);
}

.tf-quant-tag {
  font-size: 10px;
  padding: 1px 5px;
  border-radius: 3px;
  background: rgba(59, 130, 246, 0.12);
  color: var(--blue);
}

/* ── 策略选股左右布局（复用策略回测 split 结构） ─── */
.tf-quant-screener-layout {
  display: grid;
  grid-template-columns: 320px minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr);
  width: 100%;
  min-height: 0;
  column-gap: 12px;
  row-gap: 12px;
  align-items: stretch;
  overflow: hidden;
}

.tf-quant-screener-strategies {
  display: flex;
  flex-direction: column;
  min-height: 0;
  max-height: 100%;
  height: 100%;
  overflow: hidden;
}

.tf-quant-backtest-config.tf-quant-screener-strategies {
  min-height: 0;
  max-height: 100%;
  height: 100%;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  padding: 12px;
}

.tf-quant-screener-strategies-head {
  flex: 0 0 auto;
  margin-bottom: 10px;
}

.tf-quant-screener-strategies-head-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.tf-quant-screener-strategies-head-copy {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

/* ── 冻结列表（内置策略 / 回测交易明细）──────────────── */
.tf-quant-frozen-table {
  flex: 1 1 auto;
  min-height: 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
}

.tf-quant-frozen-table[hidden] {
  display: none !important;
}

.tf-quant-frozen-table__scroll {
  flex: 1 1 auto;
  min-height: 0;
  min-width: 0;
  overflow: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  --tf-quant-pin-1-left: 72px;
}

.tf-quant-data-table {
  width: max-content;
  min-width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 12px;
  table-layout: auto;
}

.tf-quant-data-table th,
.tf-quant-data-table td {
  padding: 8px 10px;
  border-bottom: 1px solid var(--line);
  text-align: left;
  white-space: nowrap;
  vertical-align: middle;
  background: #fff;
}

.tf-quant-data-table thead th {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  z-index: 2;
  color: var(--muted);
  font-weight: 600;
  border-bottom: none;
  box-shadow: 0 1px 0 var(--line);
}

.tf-quant-data-table .tf-quant-col-pin-0,
.tf-quant-data-table .tf-quant-col-pin-1 {
  position: -webkit-sticky;
  position: sticky;
  z-index: 1;
}

.tf-quant-data-table thead .tf-quant-col-pin-0,
.tf-quant-data-table thead .tf-quant-col-pin-1 {
  z-index: 3;
}

.tf-quant-data-table .tf-quant-col-pin-0 {
  left: 0;
}

.tf-quant-data-table .tf-quant-col-pin-1 {
  left: var(--tf-quant-pin-1-left, 72px);
  box-shadow: 2px 0 6px rgba(17, 38, 79, 0.06);
}

.tf-quant-data-table tbody tr:hover td {
  background: #f8fafc;
}

.tf-quant-data-table tbody tr:hover td.tf-quant-col-pin-0,
.tf-quant-data-table tbody tr:hover td.tf-quant-col-pin-1 {
  background: #f8fafc;
}

.tf-quant-screener-result .tf-quant-frozen-table {
  flex: 1 1 0;
  min-height: 0;
}

/* 回测交易明细：默认随右侧面板整体纵向滚动，仅表格横向滚动 */
.tf-quant-backtest-result .tf-quant-bt-trades .tf-quant-frozen-table {
  flex: 0 0 auto;
  min-height: auto;
}

.tf-quant-bt-trades {
  flex: 0 0 auto;
  min-height: auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  overflow: visible;
}

#strategyContentTfBacktest .tf-quant-bt-trades .tf-quant-frozen-table__scroll {
  flex: 0 0 auto;
  min-height: auto;
  overflow-x: auto;
  overflow-y: clip;
  overscroll-behavior-x: contain;
  overscroll-behavior-y: auto;
  touch-action: pan-x pan-y;
}

.tf-quant-bt-result-body {
  display: flex;
  flex-direction: column;
  flex: 0 0 auto;
  min-height: auto;
  overflow: visible;
}

.tf-quant-bt-result-body .tf-quant-bt-metrics,
.tf-quant-bt-result-body .tf-quant-bt-chart-section,
.tf-quant-bt-result-body .tf-quant-progress {
  flex: 0 0 auto;
  min-width: 0;
}


.tf-quant-screener-strategies-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  padding-right: 2px;
}

.tf-quant-screener-run-btn {
  width: auto !important;
  margin-top: 0 !important;
  padding: 4px 10px !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  line-height: 1.2;
  border-radius: 6px !important;
  flex-shrink: 0;
  white-space: nowrap;
}

.tf-quant-screener-selected-count {
  font-size: 12px;
  color: var(--blue);
}

.tf-quant-screener-strategies-head strong {
  font-size: 14px;
  color: var(--ink);
}

.tf-quant-screener-strategies-head .muted {
  font-size: 12px;
}

.tf-quant-screener-strategies .tf-quant-strategy-grid {
  grid-template-columns: 1fr;
  gap: 6px;
}

/* ── 选股结果 ─────────────────────────────────────── */
.tf-quant-screener-result {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 12px;
  min-height: 0;
  max-height: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.tf-quant-screener-result.tf-quant-backtest-result {
  min-height: 0;
  max-height: 100%;
}

.tf-quant-screener-empty {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 0;
}

.tf-quant-screener-empty[hidden] {
  display: none !important;
}

.tf-quant-bt-result-body[hidden] {
  display: none !important;
}

.tf-quant-screener-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
  flex: 0 0 auto;
}

.tf-quant-screener-head strong {
  font-size: 14px;
  color: var(--ink);
}

.tf-quant-screener-head .quant-btn {
  margin-left: auto;
}

.tf-quant-bt-trades-expand-btn {
  flex: 0 0 auto;
  margin-left: auto;
  border: none;
  background: transparent;
  color: var(--blue, #2563eb);
  font-size: 12px;
  line-height: 1.4;
  padding: 0;
  cursor: pointer;
  white-space: nowrap;
}

.tf-quant-bt-trades-expand-btn:hover {
  opacity: 0.75;
}

.tf-quant-bt-result-body.is-bt-trades-expanded .tf-quant-bt-chart-section {
  display: none;
}

.tf-quant-bt-result-body.is-bt-trades-expanded .tf-quant-bt-trades {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}

.tf-quant-bt-result-body.is-bt-trades-expanded .tf-quant-bt-trades .tf-quant-frozen-table {
  flex: 1 1 auto;
  min-height: 0;
}

.tf-quant-bt-result-body.is-bt-trades-expanded .tf-quant-bt-trades .tf-quant-frozen-table__scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
}

.tf-quant-bt-result-body.is-bt-trades-expanded {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}

/* ── 回测 / 选股 左右分栏 ─────────────────────────── */
.tf-quant-backtest-layout {
  display: grid;
  grid-template-columns: 320px minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr);
  column-gap: 12px;
  row-gap: 12px;
  align-items: stretch;
  width: 100%;
  min-height: 0;
  overflow: hidden;
}

.tf-quant-module-sync-bar {
  grid-column: 1 / -1;
  display: none;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  flex: 0 0 auto;
  min-width: 0;
  padding: 10px 12px;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 10px;
  box-sizing: border-box;
}

.tf-quant-module-sync-bar .tf-quant-data-status {
  flex: 1 1 auto;
  min-width: 0;
}

.tf-quant-module-sync-bar .tf-quant-sync-progress {
  flex: 1 1 140px;
  min-width: 0;
  max-width: none;
}

.tf-quant-module-sync-bar .js-tf-quant-sync-btn {
  flex: 0 0 auto;
  width: auto;
  margin: 0;
  padding: 6px 12px;
  font-size: 12px;
  font-weight: 500;
  border-radius: 6px;
}

@media (max-width: 760px) {
  .tf-quant-module-sync-bar {
    display: flex;
    margin: 0;
    width: 100%;
    max-width: none;
    border-radius: 0;
    border-left: 0;
    border-right: 0;
    border-top: 0;
  }

  .tf-quant-backtest-layout {
    grid-template-columns: 1fr;
    grid-template-rows: none;
  }

  .tf-quant-screener-layout {
    grid-template-columns: 1fr;
    grid-template-rows: none;
  }
}

@media (min-width: 761px) {
  body.niepan-app #strategyContentTfScreener.is-active .tf-quant-section,
  body.niepan-app #strategyContentTfBacktest.is-active .tf-quant-section {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    gap: 0;
  }

  body.niepan-app #strategyContentTfScreener.is-active .tf-quant-panel,
  body.niepan-app #strategyContentTfBacktest.is-active .tf-quant-panel {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }

  body.niepan-app #strategyContentTfScreener.is-active .tf-quant-backtest-layout,
  body.niepan-app #strategyContentTfBacktest.is-active .tf-quant-backtest-layout {
    flex: 1 1 auto;
    min-height: 0;
    height: 100%;
    overflow: hidden;
  }

  body.niepan-app #strategyContentTfBacktest.is-active .tf-quant-backtest-layout {
    display: grid;
    grid-template-columns: 320px minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr);
    align-items: stretch;
  }

  body.niepan-app #strategyContentTfBacktest.is-active .tf-quant-backtest-layout > * {
    min-height: 0;
    max-height: 100%;
  }

  body.niepan-app #strategyContentTfBacktest.is-active .tf-quant-backtest-config {
    min-height: 0;
    height: 100%;
    max-height: 100%;
    overflow: hidden !important;
    display: flex;
    flex-direction: column;
  }

  body.niepan-app #strategyContentTfBacktest.is-active .tf-quant-backtest-result {
    min-height: 0 !important;
    height: 100%;
    max-height: 100%;
    display: flex;
    flex-direction: column;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  body.niepan-app #strategyContentTfBacktest.is-active .tf-quant-backtest-result .tf-quant-bt-result-body {
    flex: 0 0 auto;
    min-height: auto;
    overflow: visible;
    display: flex;
    flex-direction: column;
  }

  body.niepan-app #strategyContentTfBacktest.is-active .tf-quant-backtest-result .tf-quant-bt-result-body.is-bt-trades-expanded {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
  }

  body.niepan-app #strategyContentTfBacktest.is-active .tf-quant-backtest-result .tf-quant-bt-trades {
    flex: 0 0 auto !important;
    min-height: auto !important;
    overflow: visible !important;
  }

  body.niepan-app #strategyContentTfBacktest.is-active .tf-quant-backtest-result .tf-quant-bt-result-body.is-bt-trades-expanded .tf-quant-bt-trades {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }

  body.niepan-app #strategyContentTfBacktest.is-active .tf-quant-backtest-result .tf-quant-bt-trades .tf-quant-frozen-table {
    flex: 0 0 auto !important;
    min-width: 0 !important;
    min-height: auto !important;
    width: 100% !important;
    max-width: none !important;
  }

  body.niepan-app #strategyContentTfBacktest.is-active .tf-quant-backtest-result .tf-quant-bt-result-body.is-bt-trades-expanded .tf-quant-bt-trades .tf-quant-frozen-table {
    flex: 1 1 auto !important;
    min-height: 0 !important;
  }

  body.niepan-app #strategyContentTfBacktest.is-active .tf-quant-backtest-result .tf-quant-bt-trades .tf-quant-frozen-table__scroll {
    flex: 0 0 auto;
    min-height: auto;
    overflow-x: auto;
    overflow-y: clip;
    overscroll-behavior-y: auto;
  }

  body.niepan-app #strategyContentTfBacktest.is-active .tf-quant-backtest-result .tf-quant-bt-result-body.is-bt-trades-expanded .tf-quant-bt-trades .tf-quant-frozen-table__scroll {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  body.niepan-app #marketPanelStrategy:has(#strategyContentTfBacktest.is-active) #tfQuantSharedHeader:not([hidden]) {
    flex: 0 0 auto;
  }

  body.niepan-app #strategyContentTfScreener.is-active .tf-quant-screener-layout {
    display: grid;
    grid-template-columns: 320px minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr);
    height: 100%;
    min-height: 0;
    overflow: hidden;
  }

  body.niepan-app #strategyContentTfScreener.is-active .tf-quant-screener-layout > * {
    min-height: 0;
    max-height: 100%;
  }

  body.niepan-app #strategyContentTfScreener.is-active .tf-quant-screener-strategies,
  body.niepan-app #strategyContentTfScreener.is-active .tf-quant-screener-result {
    height: 100%;
    max-height: 100%;
  }

  body.niepan-app #marketPanelStrategy:has(#strategyContentTfScreener.is-active) #tfQuantSharedHeader:not([hidden]) {
    flex: 0 0 auto;
  }
}

.tf-quant-backtest-config {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 16px;
  overflow: visible;
}

/* ── 移动端筛选条 / 底部抽屉（桌面保持侧栏） ───────── */
.tf-quant-mobile-filter-bar {
  flex: 0 0 auto;
  padding: 12px 16px 0;
  box-sizing: border-box;
}

.tf-quant-filter-open-btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
  min-height: 44px;
  padding: 10px 14px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}

.tf-quant-filter-open-label {
  flex: 0 0 auto;
  font-size: 15px;
  font-weight: 600;
  line-height: 22px;
  color: #1d2129;
}

.tf-quant-filter-open-hint {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 13px;
  line-height: 20px;
  text-align: right;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tf-quant-filter-open-arrow {
  flex: 0 0 auto;
  width: 8px;
  height: 8px;
  margin-left: 2px;
  border-right: 1.5px solid #86909c;
  border-bottom: 1.5px solid #86909c;
  transform: rotate(-45deg);
}

.tf-quant-filter-sheet-panel {
  display: flex;
  flex-direction: column;
  min-height: 0;
  height: 100%;
  flex: 1 1 auto;
}

.tf-quant-filter-sheet-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.tf-quant-filter-sheet-footer {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-top: 12px;
  margin-top: 4px;
  border-top: 1px solid var(--line);
  background: #fff;
}

.tf-quant-filter-sheet-footer .detail-sheet-dismiss,
.tf-quant-filter-sheet-footer .detail-sheet-primary,
.tf-quant-filter-sheet-footer .quant-btn {
  width: 100%;
  min-width: 0;
}

.tf-quant-filter-sheet-footer-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.tf-quant-filter-sheet-footer-meta .tf-quant-data-status {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 12px;
  line-height: 18px;
}

.tf-quant-filter-sheet-footer-meta .quant-btn {
  width: auto;
  flex: 0 0 auto;
  padding: 6px 12px;
  font-size: 12px;
}

.tf-quant-filter-sheet-head {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  flex: 0 0 auto;
  padding-bottom: 12px;
  margin-bottom: 4px;
  border-bottom: 1px solid #f2f3f5;
}

.tf-quant-filter-sheet-head h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 600;
  line-height: 24px;
  color: #1d2129;
}

@media (min-width: 761px) {
  .tf-quant-filter-sheet.tf-quant-backtest-config,
  .tf-quant-filter-sheet.tf-quant-screener-strategies {
    display: flex;
    flex-direction: column;
    min-height: 0;
    height: 100%;
    max-height: 100%;
    overflow: hidden;
    padding: 12px 16px 16px;
  }

  .tf-quant-screener-layout > .tf-quant-backtest-result,
  .tf-quant-backtest-layout > .tf-quant-backtest-result {
    min-height: 0;
  }

  .tf-quant-filter-sheet-backdrop {
    display: none !important;
  }

  .tf-quant-filter-sheet-panel {
    flex: 1 1 auto;
    min-height: 0;
    height: auto;
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }

  #tfQuantScreenerFilterSheet .tf-quant-filter-sheet-body {
    display: flex;
    flex-direction: column;
    min-height: 0;
    flex: 1 1 auto;
  }

  #tfQuantScreenerFilterSheet .tf-quant-screener-strategies-body {
    flex: 1 1 auto;
    min-height: 0;
  }

  .tf-quant-filter-sheet-footer {
    display: flex !important;
    flex: 0 0 auto !important;
    flex-direction: column;
    gap: 10px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--line);
    background: #fff;
    position: static;
  }

  .tf-quant-filter-sheet-footer .detail-sheet-primary,
  .tf-quant-filter-sheet-footer .tf-quant-screener-run-btn,
  .tf-quant-filter-sheet-footer #tfQuantScreenerRunBtn,
  .tf-quant-filter-sheet-footer #tfQuantBtRunBtn {
    display: block !important;
    width: 100% !important;
    min-height: 40px;
    margin-top: 0 !important;
    padding: 10px 16px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    border-radius: 8px !important;
    border: 1px solid #165dff;
    background: #165dff;
    color: #fff;
    opacity: 1;
  }

  .tf-quant-filter-sheet-footer .detail-sheet-primary:disabled,
  .tf-quant-filter-sheet-footer .tf-quant-screener-run-btn:disabled,
  .tf-quant-filter-sheet-footer #tfQuantBtRunBtn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
  }
}

@media (max-width: 760px) {
  .tf-quant-screener-layout,
  .tf-quant-backtest-layout {
    grid-template-columns: 1fr !important;
    grid-template-rows: none !important;
  }

  .tf-quant-filter-sheet.tf-quant-backtest-config,
  .tf-quant-filter-sheet.tf-quant-screener-strategies {
    position: fixed;
    inset: 0;
    z-index: 12000;
    display: block;
    width: auto;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    overflow: hidden;
    pointer-events: none;
    visibility: hidden;
    opacity: 0;
  }

  .tf-quant-filter-sheet.is-open {
    pointer-events: auto;
    visibility: visible;
    opacity: 1;
  }

  .tf-quant-filter-sheet:not(.is-open),
  .tf-quant-filter-sheet:not(.is-open) * {
    pointer-events: none !important;
  }

  .tf-quant-filter-sheet:not(.is-open) .tf-quant-filter-sheet-panel,
  .tf-quant-filter-sheet:not(.is-open) .tf-quant-filter-sheet-footer {
    visibility: hidden !important;
    opacity: 0 !important;
    transform: translateY(100%) !important;
  }

  .tf-quant-filter-sheet-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.45);
    opacity: 0;
    transition: opacity 0.22s ease;
  }

  .tf-quant-filter-sheet.is-open .tf-quant-filter-sheet-backdrop {
    opacity: 1;
  }

  .tf-quant-filter-sheet-panel {
    position: absolute;
    left: 0;
    right: 0;
    top: auto;
    bottom: 0;
    height: auto;
    max-height: calc(100dvh - 24px);
    display: flex !important;
    flex-direction: column;
    overflow: hidden;
    padding: 0;
    border-radius: 0;
    background: #fff;
    box-shadow: 0 -8px 32px rgba(15, 23, 42, 0.16);
    transform: translateY(100%);
    transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1);
    box-sizing: border-box;
  }

  .tf-quant-filter-sheet.is-open .tf-quant-filter-sheet-panel {
    transform: translateY(0);
  }

  .tf-quant-filter-sheet-head {
    display: flex !important;
    flex: 0 0 auto;
    justify-content: flex-start;
    margin: 0;
    padding: 12px 16px;
    border-bottom: 1px solid #f2f3f5;
  }

  .tf-quant-filter-sheet-body {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow: auto !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding: 12px 16px;
  }

  #tfQuantScreenerFilterSheet .tf-quant-screener-strategies-body,
  #tfQuantScreenerFilterSheet .tf-quant-strategy-grid {
    min-height: 0;
    overflow: visible;
  }

  .tf-quant-filter-sheet-footer {
    position: static !important;
    left: auto;
    right: auto;
    bottom: auto;
    z-index: auto;
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
    justify-content: stretch;
    gap: 12px;
    flex: 0 0 auto !important;
    margin: 0 !important;
    padding: 12px 12px calc(12px + env(safe-area-inset-bottom, 0px)) !important;
    min-height: 0;
    border-top: 1px solid #e5e6eb;
    background: #fff !important;
    box-sizing: border-box;
    transform: none !important;
  }

  .tf-quant-filter-sheet-footer .detail-sheet-dismiss,
  .tf-quant-filter-sheet-footer .tf-quant-filter-sheet-dismiss {
    display: block !important;
    width: 100% !important;
    min-width: 0;
    min-height: var(--mobile-touch-min, 44px);
    height: auto;
    margin: 0;
    padding: 0 12px;
    border: 1px solid #e5e6eb;
    border-radius: 4px;
    background: #f7f8fa;
    color: #1d2129;
    font-size: 14px;
    font-weight: 500;
    line-height: 22px;
    cursor: pointer;
    box-sizing: border-box;
  }

  .tf-quant-filter-sheet-footer .detail-sheet-primary,
  .tf-quant-filter-sheet-footer #tfQuantScreenerRunBtn,
  .tf-quant-filter-sheet-footer #tfQuantBtRunBtn,
  .tf-quant-filter-sheet-footer .tf-quant-screener-run-btn {
    display: block !important;
    width: 100% !important;
    min-width: 0;
    min-height: var(--mobile-touch-min, 44px);
    height: auto;
    margin: 0 !important;
    padding: 0 12px !important;
    border: 1px solid #165dff !important;
    border-radius: 4px !important;
    background: #165dff !important;
    color: #fff !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 22px !important;
    cursor: pointer;
    box-sizing: border-box;
    box-shadow: none !important;
  }

  .tf-quant-filter-sheet-footer .detail-sheet-primary:disabled,
  .tf-quant-filter-sheet-footer .tf-quant-screener-run-btn:disabled,
  .tf-quant-filter-sheet-footer #tfQuantScreenerRunBtn:disabled,
  .tf-quant-filter-sheet-footer #tfQuantBtRunBtn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
  }

  .tf-quant-filter-sheet-footer-meta {
    display: none !important;
  }

  body.tf-quant-filter-sheet-open {
    overflow: hidden;
  }

  body.tf-quant-filter-sheet-open .mobile-bottom-nav {
    z-index: 1;
  }
}

.tf-quant-config-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
  overflow: visible;
}

.tf-quant-config-row label {
  width: 72px;
  font-size: 13px;
  font-weight: 500;
  color: #4e5969;
  flex-shrink: 0;
  line-height: 1.4;
}

.tf-quant-field-wrap {
  flex: 1;
  min-width: 0;
}

.tf-quant-select-wrap {
  position: relative;
  flex: 1;
  min-width: 0;
}

.tf-quant-select-native {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.tf-quant-select-trigger {
  display: flex;
  align-items: center;
  width: 100%;
  height: 36px;
  padding: 0 34px 0 12px;
  border: 1px solid #e5e6eb;
  border-radius: 8px;
  background-color: #fff;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14' fill='none'%3E%3Cpath d='M3.5 5.25L7 8.75L10.5 5.25' stroke='%2386909C' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
  background-size: 14px;
  color: #1d2129;
  font-size: 13px;
  line-height: 1.4;
  text-align: left;
  cursor: pointer;
  box-sizing: border-box;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}

.tf-quant-select-trigger:hover {
  border-color: #c9cdd4;
}

.tf-quant-select-wrap.is-open .tf-quant-select-trigger,
.tf-quant-select-trigger:focus {
  outline: none;
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}

.tf-quant-select-dropdown {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 6px);
  z-index: 40;
  padding: 6px;
  border: 1px solid #e5e6eb;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.12);
  max-height: 280px;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.tf-quant-select-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.tf-quant-select-option {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 34px;
  padding: 8px 10px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #1d2129;
  font-size: 13px;
  line-height: 1.4;
  text-align: left;
  cursor: pointer;
  transition: background-color 0.12s ease, color 0.12s ease;
}

.tf-quant-select-option:hover {
  background: #f7f8fa;
}

.tf-quant-select-option.is-active {
  background: #eff6ff;
  color: #2563eb;
  font-weight: 600;
}

.tf-quant-select-option.is-active::before {
  content: "✓";
  flex-shrink: 0;
  width: 16px;
  margin-right: 4px;
  font-size: 12px;
  font-weight: 700;
}

.tf-quant-input {
  flex: 1;
  min-width: 0;
  width: 100%;
  height: 36px;
  padding: 0 12px;
  border: 1px solid #e5e6eb;
  border-radius: 8px;
  background: #fff;
  color: #1d2129;
  font-size: 13px;
  line-height: 1.4;
  box-sizing: border-box;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
  -webkit-appearance: none;
  appearance: none;
}

.tf-quant-input:hover {
  border-color: #c9cdd4;
}

.tf-quant-input:focus {
  outline: none;
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}

.tf-quant-input::placeholder {
  color: #c9cdd4;
}

.tf-quant-input[type="date"] {
  position: relative;
  color-scheme: light;
}

.tf-quant-input[type="date"]::-webkit-calendar-picker-indicator {
  opacity: 0.55;
  cursor: pointer;
  margin-left: 4px;
}

.tf-quant-input[type="number"] {
  -moz-appearance: textfield;
  appearance: textfield;
}

.tf-quant-input[type="number"]::-webkit-inner-spin-button,
.tf-quant-input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.tf-quant-quick-range {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  flex: 1;
  min-width: 0;
}

.tf-quant-quick-range button {
  padding: 6px 12px;
  border: 1px solid #e5e6eb;
  border-radius: 999px;
  background: #f7f8fa;
  color: #4e5969;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.2;
  cursor: pointer;
  transition: border-color 0.15s ease, color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}

.tf-quant-quick-range button:hover {
  border-color: #2563eb;
  color: #2563eb;
  background: #eff6ff;
}

.tf-quant-quick-range button.is-active {
  border-color: #2563eb;
  background: #eff6ff;
  color: #2563eb;
  font-weight: 600;
  box-shadow: inset 0 0 0 1px rgba(37, 99, 235, 0.12);
}

.tf-quant-advanced {
  margin: 4px 0 8px;
  padding: 0;
  border: 1px solid #e5e6eb;
  border-radius: 8px;
  background: #f7f8fa;
  overflow: hidden;
}

.tf-quant-advanced summary {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  cursor: pointer;
  font-size: 13px;
  font-weight: 500;
  color: #4e5969;
  user-select: none;
  list-style: none;
  transition: background-color 0.15s ease;
}

.tf-quant-advanced summary::-webkit-details-marker {
  display: none;
}

.tf-quant-advanced summary::before {
  content: "";
  width: 0;
  height: 0;
  border-left: 5px solid #86909c;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  transition: transform 0.15s ease;
  flex-shrink: 0;
}

.tf-quant-advanced[open] summary::before {
  transform: rotate(90deg);
}

.tf-quant-advanced[open] summary {
  background: #fff;
  border-bottom: 1px solid #e5e6eb;
}

.tf-quant-advanced .tf-quant-config-row {
  padding: 0 12px;
}

.tf-quant-advanced .tf-quant-config-row:first-of-type {
  margin-top: 10px;
}

.tf-quant-advanced .tf-quant-config-row:last-of-type {
  margin-bottom: 12px;
}

.tf-quant-backtest-config .quant-btn {
  width: 100%;
  margin-top: 4px;
  padding: 10px 16px;
  font-size: 14px;
  font-weight: 600;
  border-radius: 8px;
}

.tf-quant-backtest-config .tf-quant-filter-sheet-footer .detail-sheet-primary,
.tf-quant-backtest-config .tf-quant-filter-sheet-footer .quant-btn,
.tf-quant-backtest-config .tf-quant-filter-sheet-footer .tf-quant-screener-run-btn {
  width: 100%;
  margin-top: 0;
}

.tf-quant-backtest-config .quant-btn.primary {
  box-shadow: 0 1px 2px rgba(37, 99, 235, 0.2);
}

.tf-quant-backtest-config .quant-btn.primary:hover {
  box-shadow: 0 2px 8px rgba(37, 99, 235, 0.24);
}

/* ── 回测结果 ─────────────────────────────────────── */
.tf-quant-backtest-result {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 14px;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

/* 回测结果区整体纵向滚动，交易明细展开时表内滚动 */
#strategyContentTfBacktest .tf-quant-backtest-result {
  padding: 0;
}

#strategyContentTfBacktest .tf-quant-backtest-result .tf-quant-bt-result-body,
#strategyContentTfBacktest .tf-quant-backtest-result .tf-quant-screener-empty {
  padding: 14px 14px 0;
}

#strategyContentTfBacktest .tf-quant-backtest-result .tf-quant-bt-trades {
  padding-bottom: 14px;
}

#strategyContentTfBacktest.is-active .tf-quant-bt-chart-wrap {
  height: min(280px, 36vh);
}

#strategyContentTfBacktest.is-active .tf-quant-backtest-result .tf-quant-bt-result-body {
  flex: 0 0 auto;
  min-height: auto;
  overflow: visible;
}

#strategyContentTfBacktest.is-active .tf-quant-backtest-result .tf-quant-bt-trades {
  flex: 0 0 auto;
  min-height: auto;
  overflow: visible;
}

#strategyContentTfBacktest.is-active .tf-quant-backtest-result {
  min-height: 0;
  max-height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
}

#strategyContentTfBacktest.is-active .tf-quant-progress,
#strategyContentTfBacktest.is-active .tf-quant-bt-metrics,
#strategyContentTfBacktest.is-active .tf-quant-bt-chart-section {
  flex: 0 0 auto;
}

.tf-quant-progress {
  margin-bottom: 14px;
}

.tf-quant-progress-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.tf-quant-progress-row .quant-btn {
  flex: 0 0 auto;
  width: auto;
  margin-top: 0;
  padding: 4px 10px;
  font-size: 12px;
}

.tf-quant-progress-bar {
  width: 100%;
  height: 8px;
  background: rgba(128, 128, 128, 0.15);
  border-radius: 999px;
  overflow: hidden;
  margin-bottom: 6px;
  position: relative;
}

.tf-quant-progress-bar.is-indeterminate::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    rgba(37, 99, 235, 0) 0%,
    rgba(37, 99, 235, 0.18) 45%,
    rgba(37, 99, 235, 0.18) 55%,
    rgba(37, 99, 235, 0) 100%
  );
  transform: translateX(-100%);
  animation: tf-quant-progress-shimmer 1.15s ease-in-out infinite;
}

.tf-quant-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, #2563eb 0%, #3b82f6 100%);
  border-radius: 999px;
  transition: width 0.35s ease;
  position: relative;
  z-index: 1;
}

.tf-quant-progress-fill.is-indeterminate {
  width: 36% !important;
  animation: tf-quant-progress-indeterminate 1.1s ease-in-out infinite;
}

@keyframes tf-quant-progress-indeterminate {
  0% { transform: translateX(-120%); }
  100% { transform: translateX(320%); }
}

@keyframes tf-quant-progress-shimmer {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}

.tf-quant-progress span {
  font-size: 12px;
}

.tf-quant-bt-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 14px;
}

.tf-quant-metric-card {
  background: rgba(128, 128, 128, 0.06);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 8px 10px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.tf-quant-metric-label {
  font-size: 11px;
}

.tf-quant-metric-val {
  font-size: 16px;
  font-weight: 600;
}

.tf-quant-bt-chart-section {
  margin-bottom: 14px;
}

.tf-quant-bt-chart-controls {
  margin-bottom: 12px;
}

.tf-quant-bt-chart-wrap {
  position: relative;
  height: 280px;
  border: 0;
  border-radius: 0;
  overflow: visible;
}

.tf-quant-bt-chart-wrap canvas {
  display: block;
  width: 100% !important;
  height: 100% !important;
}

.tf-quant-bt-chart-wrap #tfQuantBtChartEmpty {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
}

.tf-quant-bt-chart-wrap #tfQuantBtChartEmpty[hidden] {
  display: none !important;
}

/* ── tf_quant 面板布局（与 quant 面板一致） ─────────── */
body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="tf-screener"],
body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="tf-backtest"] {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
  background: var(--bg);
}

body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="tf-screener"]:not(.is-active),
body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="tf-backtest"]:not(.is-active) {
  display: none !important;
}

body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="tf-screener"] .tf-quant-section {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding: 0 !important;
}

body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="tf-backtest"] .tf-quant-section {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding: 0 !important;
}

body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="tf-screener"] .tf-quant-module-sync-bar,
body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="tf-backtest"] .tf-quant-module-sync-bar {
  display: flex !important;
  margin: 0 !important;
  width: 100% !important;
  max-width: none !important;
  border-radius: 0 !important;
  border-left: 0 !important;
  border-right: 0 !important;
  border-top: 0 !important;
}

body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="tf-screener"] .tf-quant-panel {
  flex: 1 1 auto;
  min-height: 0;
  height: auto;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="tf-screener"] .tf-quant-mobile-filter-bar {
  flex: 0 0 auto;
}

body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="tf-screener"] .tf-quant-screener-layout {
  flex: 1 1 auto;
  min-height: 0;
  height: auto;
  display: flex !important;
  flex-direction: column;
  grid-template-columns: none !important;
  grid-template-rows: none !important;
  overflow: hidden;
  gap: 0;
}

body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="tf-screener"] .tf-quant-screener-result {
  flex: 1 1 auto;
  min-height: 0;
  height: auto !important;
  max-height: none !important;
  margin-top: 16px;
  margin-bottom: 12px;
  margin-left: 12px;
  margin-right: 12px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="tf-screener"] .tf-quant-screener-empty {
  flex: 1 1 auto;
  min-height: 120px;
}

body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="tf-screener"] .tf-quant-frozen-table {
  flex: 1 1 auto;
  min-height: 0;
  height: auto;
  max-height: none !important;
}

/* 移动端内置策略 / 回测列表：去掉表头下叠加粗分割线 */
body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="tf-screener"] .tf-quant-data-table thead th,
body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="tf-backtest"] .tf-quant-data-table thead th {
  border-bottom: none;
  box-shadow: none;
}

body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="tf-backtest"] .tf-quant-panel {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
  height: auto;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

body.mobile-nav-strategy #marketPanelStrategy #strategyContentTfBacktest.is-active .tf-quant-backtest-layout,
body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="tf-backtest"] .tf-quant-backtest-layout {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
  height: auto;
  display: flex !important;
  flex-direction: column;
  grid-template-columns: none !important;
  grid-template-rows: none !important;
  overflow: hidden;
  gap: 0;
}

body.mobile-nav-strategy #marketPanelStrategy #strategyContentTfBacktest.is-active .tf-quant-backtest-layout > .tf-quant-backtest-result,
body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="tf-backtest"] .tf-quant-backtest-layout > .tf-quant-backtest-result {
  min-height: 0;
  max-height: none;
}

body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="tf-backtest"] .tf-quant-mobile-filter-bar {
  flex: 0 0 auto;
}

body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="tf-backtest"] .tf-quant-backtest-result {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0 !important;
  max-height: none !important;
  margin-top: 16px;
  margin-bottom: 12px;
  margin-left: 12px;
  margin-right: 12px;
  padding: 0 !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  display: flex;
  flex-direction: column;
}

body.mobile-nav-strategy #tfQuantSharedHeader.tf-quant-shared-header {
  display: none !important;
}

body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="tf-backtest"] .tf-quant-backtest-result .tf-quant-screener-empty {
  flex: 1 1 auto;
  min-height: 120px;
  padding: 12px;
}

body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="tf-backtest"] .tf-quant-backtest-result .tf-quant-bt-result-body {
  flex: 0 0 auto;
  min-width: 0;
  min-height: auto;
  max-width: 100%;
  max-height: none;
  height: auto;
  overflow: visible;
  display: flex;
  flex-direction: column;
  padding: 12px 12px 0;
  box-sizing: border-box;
}

body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="tf-backtest"] .tf-quant-backtest-result .tf-quant-bt-result-body.is-bt-trades-expanded {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}

body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="tf-backtest"] .tf-quant-backtest-result .tf-quant-bt-metrics,
body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="tf-backtest"] .tf-quant-backtest-result .tf-quant-bt-chart-section,
body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="tf-backtest"] .tf-quant-backtest-result .tf-quant-progress {
  flex: 0 0 auto;
  min-width: 0;
  max-width: 100%;
  overflow-x: hidden;
}

body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="tf-backtest"] .tf-quant-backtest-result .tf-quant-bt-chart-wrap {
  height: min(180px, 32vh);
}

body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="tf-backtest"] .tf-quant-backtest-result .tf-quant-bt-trades {
  flex: 0 0 auto;
  min-width: 0;
  min-height: auto;
  width: 100%;
  max-width: 100%;
  margin: 8px 0 0;
  padding-bottom: 12px;
  display: flex;
  flex-direction: column;
  overflow: visible;
  box-sizing: border-box;
}

body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="tf-backtest"] .tf-quant-backtest-result .tf-quant-bt-result-body.is-bt-trades-expanded .tf-quant-bt-trades {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}

body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="tf-backtest"] .tf-quant-backtest-result .tf-quant-bt-trades .tf-quant-screener-head {
  flex: 0 0 auto;
  min-width: 100%;
}

body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="tf-backtest"] .tf-quant-backtest-result .tf-quant-bt-trades .tf-quant-frozen-table {
  flex: 0 0 auto;
  min-width: 0;
  min-height: auto;
  width: 100%;
  max-width: none;
  box-sizing: border-box;
}

body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="tf-backtest"] .tf-quant-backtest-result .tf-quant-bt-result-body.is-bt-trades-expanded .tf-quant-bt-trades .tf-quant-frozen-table {
  flex: 1 1 auto;
  min-height: 0;
}

body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="tf-backtest"] .tf-quant-backtest-result .tf-quant-bt-trades .tf-quant-frozen-table__scroll {
  flex: 0 0 auto;
  min-height: auto;
  overflow-x: auto;
  overflow-y: clip;
  overscroll-behavior-y: auto;
  touch-action: pan-x pan-y;
}

body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="tf-backtest"] .tf-quant-backtest-result .tf-quant-bt-result-body.is-bt-trades-expanded .tf-quant-bt-trades .tf-quant-frozen-table__scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-x pan-y;
}

body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="daily"] .strategy-daily-main {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="daily"] .mobile-strategy-scroll-body {
  display: contents;
  overflow: visible;
  flex: none;
}

body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="daily"] .strategy-summary {
  flex: none;
}

.tf-quant-dialog-body .tf-quant-sync-stats {
  margin: 0;
  padding-left: 18px;
  color: #4e5969;
  font-size: 14px;
  line-height: 1.7;
}

.tf-quant-dialog-body .tf-quant-sync-stats li + li {
  margin-top: 4px;
}

.tf-quant-dialog-overlay .quant-capital-modal.tf-quant-dialog {
  width: min(420px, calc(100vw - 32px));
  border: 1px solid #e5e6eb;
  box-shadow: 0 20px 48px rgba(15, 23, 42, 0.16);
}

.tf-quant-dialog-body {
  color: #4e5969;
  font-size: 14px;
  line-height: 1.6;
}

.tf-quant-sync-progress-dialog .quant-capital-modal-head {
  justify-content: center;
}

.tf-quant-sync-progress-dialog .quant-capital-modal-foot {
  display: none;
}

.tf-quant-sync-progress-in-dialog {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
  max-width: none;
  margin: 12px 0 0;
}

.tf-quant-sync-progress-in-dialog .tf-quant-progress-bar {
  height: 8px;
  margin-bottom: 0;
  border-radius: 999px;
  overflow: hidden;
  background: #eef2f7;
}

.tf-quant-sync-progress-in-dialog .tf-quant-progress-fill {
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #3b82f6, #2563eb);
  transition: width 0.2s ease;
}

.tf-quant-sync-progress-in-dialog span,
.tf-quant-sync-progress-tip {
  font-size: 13px;
  line-height: 1.4;
}

@media (max-width: 760px) {
  .tf-quant-module-sync-bar .tf-quant-sync-progress {
    display: none !important;
  }
}

.tf-quant-dialog-body .quant-backtest-tip {
  margin: 0;
  color: #4e5969;
}

.tf-quant-dialog .quant-capital-modal-foot {
  padding: 12px 20px 18px;
  border-top: 1px solid #f2f3f5;
  background: #fafbfc;
}

.tf-quant-dialog .quant-capital-modal-foot .quant-btn {
  min-width: 88px;
  height: 36px;
  padding: 0 16px;
  border-radius: 8px;
  font-weight: 600;
}

/* ── 移动端适配 ───────────────────────────────────── */
@media (max-width: 768px) {
  .strategy-panel .strategy-content-panel[data-strategy-content-panel="tf-screener"] .tf-quant-section,
  .strategy-panel .strategy-content-panel[data-strategy-content-panel="tf-backtest"] .tf-quant-section {
    padding: 0;
  }

  .tf-quant-mobile-filter-bar {
    padding: 12px 12px 0;
  }

  .strategy-panel .strategy-content-panel[data-strategy-content-panel="tf-screener"] .tf-quant-screener-result,
  .strategy-panel .strategy-content-panel[data-strategy-content-panel="tf-backtest"] .tf-quant-backtest-result {
    margin-left: 12px;
    margin-right: 12px;
  }

  .tf-quant-module-sync-bar {
    border-radius: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
    border-top: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100% !important;
    max-width: none !important;
  }

  .tf-quant-filter-open-btn {
    display: flex !important;
  }

  .tf-quant-section {
    padding: 10px 10px 0;
  }

  .tf-quant-header {
    flex-direction: column;
    align-items: stretch;
    padding: 12px;
  }

  .tf-quant-header-actions {
    justify-content: flex-end;
    align-items: center;
    flex-wrap: wrap;
  }

  .tf-quant-header-actions .tf-quant-sync-progress,
  .tf-quant-module-sync-bar .tf-quant-sync-progress {
    flex: 1 1 120px;
    min-width: 0;
  }

  .tf-quant-strategy-grid {
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  }

  .tf-quant-screener-strategies {
    height: auto;
  }

  .tf-quant-screener-strategies-body {
    min-height: 0;
  }

  .tf-quant-screener-result .tf-quant-frozen-table,
  body.mobile-nav-strategy #marketPanelStrategy .strategy-content-panel[data-strategy-content-panel="tf-backtest"] .tf-quant-backtest-result .tf-quant-bt-trades .tf-quant-frozen-table {
    min-height: 0;
  }

  .tf-quant-bt-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .tf-quant-config-row label {
    width: 70px;
  }

  .tf-quant-backtest-config .quant-btn {
    font-size: 13px;
  }
}

/* ==================== 自选股样式 ==================== */

.watchlist-head-actions {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  min-width: 0;
}

.watchlist-star-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  margin: 0 0 0 4px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  vertical-align: middle;
  transition: opacity 0.15s ease, transform 0.1s ease;
}

.watchlist-star-btn:hover {
  opacity: 0.8;
}

.watchlist-star-btn:active {
  transform: scale(0.9);
}

.watchlist-star-btn img {
  display: block;
  pointer-events: none;
}

.mobile-stock-cell--name-with-star {
  position: relative;
  padding-right: 18px;
}

.mobile-stock-cell--name-with-star .watchlist-star-btn {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  margin: 0;
}

.stock-name-with-star {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  max-width: 100%;
  min-width: 0;
  vertical-align: middle;
}

.stock-name-with-star strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.stock-name-with-star .watchlist-star-btn {
  flex: 0 0 auto;
  margin-left: 0;
}

.strategy-table .stock-name-with-star,
.mobile-strategy-pick-stock .stock-name-with-star,
.strategy-memory-buy-head .stock-name-with-star,
.mobile-strategy-memory-name-row.stock-name-with-star,
.tf-quant-data-table .stock-name-with-star,
.quant-holding-head .stock-name-with-star {
  display: inline-flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 4px;
  max-width: 100%;
  min-width: 0;
}

/* 股票详情弹窗标题中的自选按钮 */
.detail-watchlist-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 28px;
  height: 28px;
  margin: 0 0 0 4px;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: transparent;
  cursor: pointer;
  transition: background-color 0.15s ease;
}

.detail-watchlist-btn:hover {
  background: rgba(22, 93, 255, 0.08);
}

.detail-watchlist-btn img {
  display: block;
  pointer-events: none;
}

.detail-watchlist-btn.is-active img {
  filter: drop-shadow(0 0 2px rgba(255, 180, 0, 0.4));
}

/* 桌面端自选列表面板 */
#marketPanelWatchlist .panel.wide {
  position: relative;
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  height: 100%;
}

#marketPanelWatchlist .watchlist-access-gate:not([hidden]) {
  min-height: 320px;
  flex: 0 0 auto;
}

#marketPanelWatchlist #watchlistMainContent {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

#marketPanelWatchlist #watchlistMainContent > .panel-head {
  flex: 0 0 auto;
}

#marketPanelWatchlist .watchlist-panel-body {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

#marketPanelWatchlist .watchlist-panel-body > .module-empty-tip {
  margin: 16px 0;
}

#marketPanelWatchlist .table-wrap {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
}

#marketPanelWatchlist .watchlist-table {
  width: 100%;
  min-width: 860px;
  table-layout: fixed;
}

#marketPanelWatchlist .watchlist-table th:nth-child(1),
#marketPanelWatchlist .watchlist-table td:nth-child(1) {
  width: 18%;
  text-align: left;
  padding-right: 4px;
}

#marketPanelWatchlist .watchlist-table th:nth-child(2),
#marketPanelWatchlist .watchlist-table td:nth-child(2) {
  width: 7%;
  padding-left: 4px;
}

#marketPanelWatchlist .watchlist-table th:nth-child(3),
#marketPanelWatchlist .watchlist-table td:nth-child(3) {
  width: 9%;
}

#marketPanelWatchlist .watchlist-table th:nth-child(4),
#marketPanelWatchlist .watchlist-table td:nth-child(4) {
  width: 8%;
}

#marketPanelWatchlist .watchlist-table th:nth-child(5),
#marketPanelWatchlist .watchlist-table td:nth-child(5) {
  width: 11%;
}

#marketPanelWatchlist .watchlist-table th:nth-child(6),
#marketPanelWatchlist .watchlist-table td:nth-child(6) {
  width: 9%;
}

#marketPanelWatchlist .watchlist-table th:nth-child(7),
#marketPanelWatchlist .watchlist-table td:nth-child(7) {
  width: 14%;
}

#marketPanelWatchlist .watchlist-table th:nth-child(8),
#marketPanelWatchlist .watchlist-table td:nth-child(8) {
  width: 10%;
}

#marketPanelWatchlist .watchlist-table .watchlist-price-cell {
  font-size: 16px;
  font-weight: 700;
  color: var(--ink);
  white-space: nowrap;
}

#marketPanelWatchlist .watchlist-table .stock-name-with-star {
  justify-content: flex-start;
  flex-wrap: wrap;
  align-items: flex-start;
  max-width: 100%;
}

#marketPanelWatchlist .watchlist-table .stock-name-with-star strong {
  overflow: visible;
  text-overflow: unset;
  white-space: normal;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.35;
  color: var(--ink);
}

#marketPanelWatchlist .watchlist-table .stock-name-with-star .stock-code-line {
  color: var(--ink);
  font-weight: 600;
}

#marketPanelWatchlist .watchlist-added-price,
#marketPanelWatchlist .watchlist-added-date {
  white-space: nowrap;
  font-size: 13px;
  color: #4e5969;
}

#marketPanelWatchlist .watchlist-return-cell {
  white-space: nowrap;
  font-weight: 600;
}

#marketPanelWatchlist .watchlist-return-cell.up {
  color: #f53f3f;
}

#marketPanelWatchlist .watchlist-return-cell.down {
  color: #00b42a;
}

/* 移动端自选面板 */
.mobile-watchlist-panel {
  position: relative;
  display: none;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  background: #fff;
  overflow: hidden;
}

.mobile-watchlist-access-gate:not([hidden]) {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px 16px;
}

#mobileWatchlistMainContent {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

#mobileWatchlistPanel:not([hidden]) {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}

@media (max-width: 760px) {
  body.mobile-watchlist-open #mobileWatchlistPanel:not([hidden]) {
    display: flex !important;
  }

  body.mobile-watchlist-open .mobile-watchlist-panel {
    position: relative;
    inset: auto;
    z-index: auto;
    flex: 1 1 auto;
    min-height: 0;
    height: 100%;
    max-height: 100%;
    background: #fff;
    overflow: hidden;
  }

  body.mobile-watchlist-open #mobileWatchlistMainContent {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }

  body.mobile-watchlist-open .mobile-watchlist-list {
    flex: 1 1 auto;
    min-height: 0;
    height: auto;
    overflow: hidden;
    overscroll-behavior: contain;
  }

  body.mobile-watchlist-open .mobile-watchlist-list .mobile-stock-table-wrap {
    flex: 1 1 auto;
    min-height: 0;
    height: 100%;
    max-height: 100%;
    overflow-x: auto;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }
}

.mobile-watchlist-head {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 48px;
  padding: 0 12px;
  background: #fff;
  border-bottom: 1px solid #f2f3f5;
  flex: 0 0 48px;
}

.mobile-watchlist-back {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.mobile-watchlist-back img {
  display: block;
}

.mobile-watchlist-title {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 17px;
  font-weight: 600;
  color: #1d2129;
  margin: 0;
  text-align: center;
}

.mobile-watchlist-head-spacer {
  flex: 0 0 32px;
}

.mobile-watchlist-toolbar {
  flex: 0 0 auto;
  width: 100%;
  max-width: 100%;
  padding: 12px 16px 8px;
  box-sizing: border-box;
  background: #fff;
}

.mobile-watchlist-kind-tabs {
  position: relative;
  display: flex;
  align-items: stretch;
  gap: 0;
  width: 100%;
  min-height: 32px;
  padding: 2px;
  border: 0;
  border-radius: 6px;
  background: #f2f3f5;
  overflow: hidden;
  box-sizing: border-box;
}

.mobile-watchlist-kind-tabs .mobile-discover-mainflow-tabs-thumb {
  position: absolute;
  top: 2px;
  left: 0;
  z-index: 0;
  height: calc(100% - 4px);
  border-radius: 4px;
  background: #fff;
  box-shadow: none;
  pointer-events: none;
  transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1), width 0.28s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform, width;
}

.mobile-watchlist-kind-tabs button {
  position: relative;
  z-index: 2;
  flex: 1 1 0;
  min-width: 0;
  margin: 0;
  padding: 4px 12px;
  border: 0;
  border-radius: 4px;
  background: transparent !important;
  color: #4e5969;
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
  white-space: nowrap;
  cursor: pointer;
  box-shadow: none !important;
  -webkit-tap-highlight-color: transparent;
  transition: color 0.2s ease;
}

.mobile-watchlist-kind-tabs button:hover,
.mobile-watchlist-kind-tabs button:active,
.mobile-watchlist-kind-tabs button:focus,
.mobile-watchlist-kind-tabs button:focus-visible {
  background: transparent !important;
  box-shadow: none !important;
  outline: none;
}

.mobile-watchlist-kind-tabs button.active {
  background: transparent !important;
  color: #165dff;
  font-weight: 500;
  box-shadow: none !important;
}

.mobile-watchlist-kind-tabs button + button {
  box-shadow: inset 1px 0 0 #e5e6eb;
}

@media (prefers-reduced-motion: reduce) {
  .mobile-watchlist-kind-tabs .mobile-discover-mainflow-tabs-thumb {
    transition: none;
  }
}

.mobile-watchlist-list {
  flex: 1 1 auto;
  overflow: hidden;
  min-height: 0;
  display: flex;
  flex-direction: column;
  background: #fff;
  padding: 0;
}

.mobile-watchlist-sector-list {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 0 16px 16px;
  -webkit-overflow-scrolling: touch;
}

.mobile-watchlist-sector-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(64px, 0.7fr) minmax(56px, 0.6fr);
  column-gap: 8px;
  align-items: center;
  width: 100%;
  padding: 12px 0;
  border-bottom: 1px solid #f2f3f5;
  box-sizing: border-box;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.mobile-watchlist-sector-name {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.mobile-watchlist-sector-name .mobile-stock-val--name {
  display: block;
  min-width: 0;
  flex: 0 1 auto;
}

.mobile-watchlist-sector-name .mobile-stock-lbl {
  display: block;
  line-height: 1.3;
}

.mobile-watchlist-sector-metric {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  min-width: 0;
}

.mobile-watchlist-sector-metric .mobile-stock-cell {
  align-items: flex-start;
  text-align: left;
}

.mobile-watchlist-sector-metric .mobile-stock-val {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
  font-style: normal;
  color: #1d2129;
}

.mobile-watchlist-sector-metric .mobile-stock-val.up {
  color: #f53f3f;
}

.mobile-watchlist-sector-metric .mobile-stock-val.down {
  color: #009a29;
}

.mobile-watchlist-sector-metric .mobile-stock-lbl {
  color: #4e5969;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
}

.mobile-discover-sector-name-with-star {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
  max-width: 100%;
}

.mobile-discover-sector-name-with-star strong {
  min-width: 0;
  flex: 0 1 auto;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sector-watchlist-star {
  margin: 0;
  flex: 0 0 auto;
}

#sectorList .sector-watchlist-star {
  pointer-events: auto;
}

#marketPanelWatchlist .watchlist-sector-table th:nth-child(1),
#marketPanelWatchlist .watchlist-sector-table td:nth-child(1) {
  width: 28%;
}

#marketPanelWatchlist .watchlist-sector-table th:nth-child(2),
#marketPanelWatchlist .watchlist-sector-table td:nth-child(2),
#marketPanelWatchlist .watchlist-sector-table th:nth-child(3),
#marketPanelWatchlist .watchlist-sector-table td:nth-child(3),
#marketPanelWatchlist .watchlist-sector-table th:nth-child(4),
#marketPanelWatchlist .watchlist-sector-table td:nth-child(4) {
  width: 12%;
}

#marketPanelWatchlist .watchlist-sector-table th:nth-child(5),
#marketPanelWatchlist .watchlist-sector-table td:nth-child(5) {
  width: 16%;
}

#marketPanelWatchlist .watchlist-sector-table th:nth-child(6),
#marketPanelWatchlist .watchlist-sector-table td:nth-child(6) {
  width: 16%;
}

.mobile-watchlist-list .mobile-stock-table-wrap {
  flex: 1 1 auto;
  min-height: 0;
  height: 100%;
  max-height: 100%;
  overflow-x: auto;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.mobile-watchlist-list .module-empty-tip {
  margin: 24px 16px;
  text-align: center;
  color: #86909c;
}

#mobileWatchlistPanel .mobile-stock-val--name {
  font-size: 16px;
  font-weight: 700;
  white-space: normal;
  overflow: visible;
  text-overflow: unset;
  line-height: 1.35;
  color: var(--ink);
}

#mobileWatchlistPanel .mobile-stock-lbl,
#mobileWatchlistPanel .mobile-stock-lbl .stock-code-line {
  color: var(--ink);
  font-weight: 500;
}

#mobileWatchlistPanel .mobile-home-stock-table .col-stock {
  min-width: 128px;
  width: 128px;
  padding-right: 4px;
}

#mobileWatchlistPanel .mobile-home-stock-table .col-watchlist-price {
  min-width: 68px;
  width: 68px;
  padding-left: 4px;
}

#mobileWatchlistPanel .mobile-stock-val--watchlist-price {
  font-size: 16px;
  font-weight: 700;
  color: var(--ink);
}

#mobileWatchlistPanel .mobile-home-stock-table .col-watchlist-added,
#mobileWatchlistPanel .mobile-home-stock-table .col-watchlist-return {
  min-width: 76px;
  width: 76px;
}

#mobileWatchlistPanel .mobile-home-stock-table .col-watchlist-date {
  min-width: 96px;
  width: 96px;
}

#mobileWatchlistPanel .col-watchlist-date .mobile-stock-val {
  font-size: 12px;
  white-space: nowrap;
}

/* 桌面端侧边栏自选图标 */
.desktop-sidebar-icon[data-icon="watchlist"] {
  -webkit-mask-image: url("/static/icons/desktop-nav-watchlist.svg");
  mask-image: url("/static/icons/desktop-nav-watchlist.svg");
}
