/* 移动端优化样式 */

html {
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
}

.menu-toggle {
  display: none;
  width: 44px;
  height: 44px;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  transition: background 0.15s;
}

.menu-toggle:hover {
  background: var(--surface-hover);
}

.menu-toggle:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 2px;
}

.menu-toggle-icon {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--text);
  position: relative;
  transition: background 0.15s;
}

.menu-toggle-icon::before,
.menu-toggle-icon::after {
  content: "";
  position: absolute;
  left: 0;
  width: 22px;
  height: 2px;
  background: var(--text);
  transition: transform 0.25s ease, background 0.15s;
}

.menu-toggle-icon::before {
  top: -7px;
}

.menu-toggle-icon::after {
  bottom: -7px;
}

.menu-toggle[aria-expanded="true"] .menu-toggle-icon {
  background: transparent;
}

.menu-toggle[aria-expanded="true"] .menu-toggle-icon::before {
  transform: translateY(7px) rotate(45deg);
}

.menu-toggle[aria-expanded="true"] .menu-toggle-icon::after {
  transform: translateY(-7px) rotate(-45deg);
}

.mobile-menu-backdrop {
  position: fixed;
  inset: 0;
  top: var(--site-header-h);
  z-index: 9998;
  background: rgba(0, 0, 0, 0.28);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.2s ease, visibility 0.2s;
}

.mobile-menu-backdrop.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.mobile-menu-panel {
  display: none;
  position: fixed;
  top: var(--menu-dropdown-top, var(--site-header-top-h));
  right: var(--menu-dropdown-right, 0px);
  left: auto;
  bottom: auto;
  width: 9.375rem;
  min-width: 0;
  max-height: min(70vh, calc(100vh - var(--menu-dropdown-top, var(--site-header-top-h)) - 0.5rem));
  z-index: 9999;
  background: var(--surface);
  border: 1px solid var(--border-strong);
  border-top: none;
  border-radius: 0 0 8px 8px;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.16);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 0.25rem;
  padding-bottom: calc(0.25rem + env(safe-area-inset-bottom, 0px));
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.18s ease, visibility 0.18s ease;
}

.mobile-menu-panel.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.mobile-menu-panel .nav-mobile {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0.125rem;
  border-radius: 6px;
  background: var(--surface-muted);
}

.mobile-menu-panel .nav-mobile a {
  display: grid;
  grid-template-columns: 1.125rem minmax(0, 1fr);
  column-gap: 0.4375rem;
  align-items: center;
  min-width: 0;
  padding: 0.4375rem 0.4375rem;
  border-radius: 6px;
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--text);
  text-decoration: none;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  transition: background 0.15s ease, color 0.15s ease;
}

.mobile-menu-panel .nav-mobile a::before {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.125rem;
  height: 1.125rem;
  border-radius: 4px;
  background: var(--surface);
  font-size: 0.68rem;
  flex-shrink: 0;
}

.mobile-menu-panel .nav-mobile a[href="/"]::before {
  content: '🏠';
}

.mobile-menu-panel .nav-mobile a[href="/data"]::before {
  content: '📊';
}

.mobile-menu-panel .nav-mobile a[href="/industry"]::before {
  content: '🏭';
}

.mobile-menu-panel .nav-mobile a[href="/calendar"]::before {
  content: '📅';
}

.mobile-menu-panel .nav-mobile a[href="/compare"]::before {
  content: '🔄';
}

.mobile-menu-panel .nav-mobile a[href="/favorites"]::before {
  content: '⭐';
}

.mobile-menu-panel .nav-mobile a[href="/etf"]::before {
  content: '💹';
}

.mobile-menu-panel .nav-mobile a[href="/articles"]::before {
  content: '📝';
}

.mobile-menu-panel .nav-mobile a[href="/commodity"]::before {
  content: '🛢️';
}

.mobile-menu-panel .nav-mobile a[href="/forex"]::before {
  content: '💱';
}

.mobile-menu-panel .nav-mobile a:hover {
  background: var(--surface-hover);
}

.mobile-menu-panel .nav-mobile a.active {
  background: var(--primary);
  color: #fff;
  font-weight: 600;
}

.mobile-menu-panel .nav-mobile a.active::before {
  background: rgba(255, 255, 255, 0.2);
}

body.mobile-menu-open {
  overflow: hidden;
}

body.mobile-menu-open .chart-indicator-nav {
  display: none !important;
}

@media (max-width: 720px) {
  .menu-toggle {
    display: flex;
  }

  .mobile-menu-panel {
    display: block;
  }

  .header-nav-row {
    display: block;
  }

  .header-nav-row .nav-main {
    justify-content: flex-start;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 0 calc(var(--layout-pad-x) * -1);
    padding: 0 var(--layout-pad-x);
    scrollbar-width: none;
  }

  .header-nav-row .nav-main::-webkit-scrollbar {
    display: none;
  }

  .header-nav-row .nav-main a {
    flex-shrink: 0;
    padding: 0 0.75rem;
    font-size: 0.85rem;
  }

  :root {
    --site-header-nav-h: 38px;
    --site-header-search-h: 44px;
    --site-header-top-h: 44px;
    --site-header-h: calc(var(--site-header-top-h) + var(--site-header-search-h) + var(--site-header-nav-h));
  }

  .header-top {
    display: grid;
    grid-template-columns: auto 1fr auto;
    grid-template-rows: auto auto;
    grid-template-areas:
      "brand . tools"
      "search search search";
    gap: 0.375rem;
    align-items: center;
    padding-bottom: 0.375rem;
  }

  .header-brand {
    grid-area: brand;
    gap: 0.375rem;
    padding-left: 0;
    flex-shrink: 0;
  }

  .header-search-row {
    grid-area: search;
    display: flex;
    align-items: center;
    gap: 0.375rem;
    width: 100%;
    min-width: 0;
  }

  .header-search {
    flex: 1 1 auto;
    min-width: 0;
    max-width: none;
    order: unset;
    grid-column: unset;
    margin-top: 0;
    padding-bottom: 0;
  }

  .header-search-row--with-nav .header-search {
    flex: 1 1 auto;
    width: auto;
    max-width: none;
  }

  .header-tools {
    grid-area: tools;
    display: flex;
    align-items: center;
    gap: 0;
    justify-self: end;
    flex-shrink: 0;
    min-width: 0;
  }

  .header-tools .theme-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    padding: 0 0.3125rem;
    margin: 0;
    min-height: 44px;
    height: 44px;
    max-height: 44px;
    font-size: 0.68rem;
    line-height: 1;
    white-space: nowrap;
    border-radius: 0;
  }

  .header-tools .nav-auth {
    display: flex;
    align-items: center;
    gap: 0;
    flex-shrink: 1;
    min-width: 0;
    font-size: 0.68rem;
  }

  .header-tools .nav-auth a.nav-user {
    max-width: none;
    overflow: visible;
    text-overflow: clip;
    white-space: nowrap;
  }

  .header-tools .nav-user-short {
    display: inline;
  }

  .header-tools .nav-user-full {
    display: none;
  }

  .header-tools .nav-login,
  .header-tools .nav-logout button {
    padding: 0 0.1875rem;
    margin: 0;
    min-height: 44px;
    height: 44px;
    max-height: 44px;
    line-height: 1;
    font-size: 0.68rem;
    white-space: nowrap;
    border-radius: 0;
  }

  .header-tools .nav-register {
    padding: 0 0.3125rem;
    margin: 0;
    min-height: 44px;
    height: 44px;
    max-height: 44px;
    line-height: 1;
    font-size: 0.68rem;
    white-space: nowrap;
    border-radius: 0;
  }

  .header-tools .nav-auth a.nav-user {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    height: 44px;
    max-height: 44px;
    padding: 0 0.1875rem;
  }

  .header-tools .menu-toggle {
    flex-shrink: 0;
    padding: 0.375rem;
    margin: 0;
  }

  .header-nav-toggle-slot:not([hidden]) {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    margin-left: auto;
  }

  .header-nav-toggle-slot .mobile-nav-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.2rem;
    width: auto;
    min-width: 0;
    margin: 0;
    padding: 0 0.5rem;
    min-height: 44px;
    height: 44px;
    max-height: 44px;
    white-space: nowrap;
    font-size: 0.75rem;
    line-height: 1.2;
    border: 1px solid var(--border-strong);
    border-radius: 6px;
    background: var(--surface);
    color: var(--text);
    cursor: pointer;
  }

  .header-search-row .header-search-input {
    min-height: 44px;
    height: 44px;
    box-sizing: border-box;
  }

  .header-nav-toggle-slot .mobile-nav-toggle:hover {
    background: var(--surface-hover);
  }

  .home-dash-head {
    flex-direction: column;
    align-items: stretch;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
    padding-left: 0;
    padding-right: 0;
  }

  .home-dash-head-main {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    text-align: left;
  }

  .home-dash-head-main h1 {
    font-size: 1.1rem;
    margin-bottom: 0.125rem;
    width: auto;
    line-height: 1.25;
  }

  .home-dash-head-main p {
    font-size: 0.78rem;
    margin-bottom: 0;
    width: auto;
    line-height: 1.25;
  }

  .home-dash-head-links {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
    font-size: 0.82rem;
    align-items: stretch;
    --home-nav-chip-h: 44px;
  }

  .home-dash-head-links a {
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    height: var(--home-nav-chip-h);
    min-height: var(--home-nav-chip-h);
    padding: 0 0.75rem;
    background: var(--surface-muted);
    border: 1px solid var(--border);
    border-radius: 6px;
    text-align: center;
    line-height: 1.2;
    color: var(--text);
    text-decoration: none;
    white-space: nowrap;
  }

  .home-dash-head-links a:hover {
    background: var(--surface-hover);
    border-color: var(--border-strong);
    color: var(--primary);
  }

  .home-heatmap-panel {
    padding: 0.75rem 0;
    margin-bottom: 0.75rem;
  }

  .home-heatmap-head {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
  }

  .home-heatmap-chart {
    height: clamp(200px, 35vh, 320px);
    min-height: 12.5rem;
  }

  .cal-grid-wrap {
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }

  .cal-weekdays {
    display: none !important;
  }

  .cal-weeks {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
  }

  .cal-week {
    display: flex !important;
    flex-direction: column !important;
    min-height: auto !important;
    gap: 0 !important;
  }

  .cal-cell {
    display: flex !important;
    flex-direction: column !important;
    min-height: auto !important;
    padding: 0.5rem !important;
    border-right: none !important;
    border-bottom: 1px solid var(--border-subtle) !important;
    background: var(--surface) !important;
  }

  .cal-cell:first-child {
    border-top: 1px solid var(--border-subtle) !important;
  }

  .cal-cell--empty {
    display: none !important;
  }

  .cal-cell-head {
    display: flex !important;
    justify-content: flex-start !important;
    align-items: center !important;
    margin-bottom: 0.25rem !important;
    min-height: auto !important;
    gap: 0.5rem !important;
  }

  .cal-day-num {
    font-size: 0.9rem;
    font-weight: 600 !important;
    color: var(--text) !important;
  }

  .cal-day-today {
    font-size: 0.9rem;
    font-weight: 700 !important;
    color: var(--primary) !important;
  }

  .cal-cell--today {
    background: var(--surface-hover) !important;
    box-shadow: none !important;
  }

  .cal-cell-events {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.1875rem !important;
  }

  .cal-ev {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 0.25rem !important;
    min-width: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
    font-size: 0.75rem;
    padding: 0 0.375rem !important;
    line-height: 1.15 !important;
    border-radius: 4px !important;
    background: var(--surface-muted) !important;
    white-space: nowrap;
  }

  .cal-ev-time,
  .cal-ev-region {
    display: inline-flex !important;
    align-items: center !important;
    font-size: 0.68rem;
    line-height: 1.15 !important;
    white-space: nowrap;
  }

  .cal-ev-fav {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
  }

  .cal-ev-fav .fav-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 0 !important;
    max-height: none !important;
    height: 1em !important;
    width: 1em !important;
    line-height: 1 !important;
    font-size: 0.75rem !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  .cal-ev-title {
    flex: 1 !important;
    min-width: 0 !important;
    font-size: 0.75rem;
    line-height: 1.15 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    color: var(--text) !important;
  }

  .cal-ev--released .cal-ev-title {
    color: var(--muted) !important;
  }

  .cal-more {
    padding: 0.375rem 0.625rem !important;
    font-size: 0.78rem;
    margin-top: 0.25rem !important;
  }

  .cal-dialog {
    max-width: 100% !important;
    width: 100% !important;
    max-height: 80vh !important;
    margin: 0 !important;
    border-radius: 0 !important;
    padding-bottom: env(safe-area-inset-bottom, 0px) !important;
  }

  .cal-dialog-body {
    max-height: calc(80vh - 60px) !important;
    padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px)) !important;
  }

  .cal-dialog-close {
    min-width: 44px !important;
    min-height: 44px !important;
    padding: 0.5rem !important;
  }

  .cal-toolbar {
    flex-wrap: wrap !important;
    gap: 0.5rem !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .cal-title {
    order: -1 !important;
    width: 100% !important;
    margin-bottom: 0.25rem !important;
    text-align: center;
    font-size: 1.1rem;
  }

  .cal-nav-btn {
    padding: 0.375rem 0.75rem !important;
    font-size: 0.82rem;
  }

  .cal-filter-bar {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 0.375rem !important;
    overflow: hidden;
    padding: 0.5rem 0 !important;
  }

  .cal-filter-toggle {
    display: none !important;
  }

  .cal-filter-bar--collapsed .cal-filter-chips,
  .cal-filter-bar--collapsed .cal-filter-label {
    display: flex !important;
  }

  .cal-today-btn {
    padding: 0.375rem 0.75rem !important;
    font-size: 0.82rem;
  }

  .cal-cell--highlight {
    outline: 2px solid var(--primary);
    outline-offset: -2px;
    animation: cal-cell-pulse 1.5s ease-out 1;
  }

  @keyframes cal-cell-pulse {
    0% { background: rgba(59, 130, 246, 0.18); }
    100% { background: transparent; }
  }

  .cal-filter-chips {
    display: flex !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    gap: 0.1875rem !important;
    padding: 0.125rem !important;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
  }

  .cal-filter-chips::-webkit-scrollbar {
    display: none;
  }

  .cal-filter-label {
    width: auto !important;
    flex: 0 0 auto;
    font-size: 0.72rem;
    white-space: nowrap;
  }

  .cal-page .cal-cat-chip {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    max-width: none !important;
    padding: 0.375rem 0.25rem !important;
    font-size: 0.68rem;
    line-height: 1.2 !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-height: 0 !important;
    max-height: none !important;
    height: auto !important;
  }

  .home-heatmap-chart {
    height: clamp(200px, 35vh, 320px);
    min-height: 12.5rem;
  }
}

@media (max-width: 480px) {
  :root {
    --layout-pad-x: 12px;
    --site-header-top-h: 44px;
    font-size: 14px;
  }

  button,
  input[type="button"],
  input[type="submit"],
  input[type="checkbox"],
  input[type="radio"],
  select,
  .btn,
  .home-btn,
  .menu-toggle,
  .mobile-nav-toggle,
  .mobile-nav-close,
  .mobile-menu-panel .nav-mobile a,
  .filter-chip,
  .cal-nav-btn,
  .cal-today-btn,
  .cal-filter-toggle,
  .chart-nav-item,
  .chart-range-btn,
  .chart-mode-btn,
  .chart-toolbar .chart-series-source,
  .chart-page .chart-toolbar .chart-range-select,
  .chart-page .chart-toolbar .chart-mode-select {
    min-height: 44px;
    max-height: 44px;
    height: 44px;
    line-height: 42px;
    padding-top: 0;
    padding-bottom: 0;
  }

  .chart-nav-item.chart-nav-item--with-meta {
    height: auto;
    max-height: none;
    line-height: 1.35;
    min-height: 44px;
    padding-top: 0.625rem;
    padding-bottom: 0.625rem;
  }

  .fav-nav-item {
    height: auto;
    max-height: none;
    line-height: 1.3;
    min-height: 44px;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
  }

  .fav-nav-item-star .fav-btn {
    min-height: 28px !important;
    max-height: 28px !important;
    height: 28px !important;
    width: 28px !important;
    line-height: 1 !important;
    padding: 0 !important;
  }

  /* 日历格内收藏星标勿套用全局 44px 触控高度，否则会撑高整行 */
  .cal-page .cal-ev-fav .fav-btn {
    min-height: 0 !important;
    max-height: none !important;
    height: 1em !important;
    width: 1em !important;
    line-height: 1 !important;
    font-size: 0.75rem !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  .cal-page .cal-ev {
    min-height: 0 !important;
    padding: 0 0.25rem !important;
  }

  .cal-page .cal-dialog-body .cal-ev-fav .fav-btn {
    min-height: 0 !important;
    max-height: none !important;
    height: 1em !important;
    width: 1em !important;
    line-height: 1 !important;
    font-size: 0.75rem !important;
    padding: 0 !important;
  }

  .send-code-btn,
  .login-tabs .tab-btn {
    min-height: 44px;
  }

  .menu-toggle,
  .send-code-btn {
    min-width: 44px;
  }

  .header-tools .theme-toggle,
  .header-tools .nav-register,
  .header-tools .nav-login,
  .header-tools .nav-logout button,
  .header-tools .nav-auth a.nav-user {
    min-height: 44px;
    max-height: 44px;
    height: 44px;
    line-height: 1;
  }

  .site-footer {
    padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px));
  }

  .main {
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }

  .header-top {
    gap: 0.375rem;
  }

  .logo-main,
  .logo-sub {
    font-size: 1rem;
  }

  .header-search-input {
    padding: 0.375rem 0.625rem;
    font-size: 0.875rem;
  }

  .header-nav-toggle-slot .mobile-nav-toggle {
    padding: 0 0.375rem;
    font-size: 0.72rem;
    line-height: 1.2 !important;
    height: auto !important;
    min-height: 44px !important;
    max-height: none !important;
    overflow: visible;
    flex-shrink: 0;
  }

  .menu-toggle {
    width: 2.5rem;
    height: 2.5rem;
  }

  .menu-toggle-icon,
  .menu-toggle-icon::before,
  .menu-toggle-icon::after {
    width: 1.25rem;
  }

  .menu-toggle-icon::before {
    top: -0.375rem;
  }

  .menu-toggle-icon::after {
    bottom: -0.375rem;
  }

  .mobile-menu-panel .nav-mobile a {
    padding: 0.75rem 0.875rem;
    font-size: 0.95rem;
  }

  .data-table th,
  .data-table td {
    padding: 0.5rem 0.375rem;
    font-size: 0.78rem;
  }

  .home-dash-table,
  .data-page .data-table {
    table-layout: auto !important;
    min-width: 320px !important;
    width: 100% !important;
  }

  .home-dash-table th,
  .home-dash-table td {
    padding: 0.5rem 0.375rem !important;
    font-size: 0.78rem !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
    border-bottom: 1px solid var(--border-subtle) !important;
    height: 52px;
    line-height: 1.4;
    vertical-align: middle;
  }

  .data-page .data-table th,
  .data-page .data-table td {
    padding: 0.25rem 0.375rem !important;
    font-size: 0.74rem !important;
    line-height: 1.2 !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    border-bottom: 1px solid var(--border-subtle) !important;
    vertical-align: middle;
  }

  .data-page .data-table th {
    position: sticky !important;
    top: 0 !important;
    z-index: 2 !important;
    background: var(--surface) !important;
    font-weight: 600 !important;
    color: var(--text-muted) !important;
    font-size: 0.72rem !important;
    padding-top: 0.3125rem !important;
    padding-bottom: 0.3125rem !important;
    text-transform: none !important;
    letter-spacing: 0.02em !important;
    white-space: nowrap !important;
    border-bottom: 1px solid var(--border-strong) !important;
  }

  .data-page .data-table .fav-btn {
    font-size: 0.9rem !important;
  }

  .data-page .table-tag {
    font-size: 0.65rem !important;
    padding: 0 0.3125rem !important;
    line-height: 1.3 !important;
  }

  .data-page .badge-stale,
  .data-page .badge-fresh {
    font-size: 0.62rem !important;
    padding: 0 0.25rem !important;
    line-height: 1.3 !important;
  }

  .home-dash-table th {
    position: sticky !important;
    top: 0 !important;
    z-index: 2 !important;
    background: var(--surface) !important;
    font-weight: 600 !important;
    color: var(--text-muted) !important;
    font-size: 0.78rem !important;
    text-transform: none !important;
    letter-spacing: 0.02em !important;
    white-space: nowrap !important;
    border-bottom: 1px solid var(--border-strong) !important;
  }

  .home-dash-table .col-spark,
  .home-dash-table th.col-spark {
    display: none;
  }

  .home-dash-table .col-num,
  .data-page .data-table .col-num {
    min-width: 5rem !important;
    width: auto !important;
    white-space: nowrap !important;
    text-align: right !important;
  }

  .home-dash-table .col-freq,
  .home-dash-table .col-stale,
  .data-page .data-table .col-stale,
  .data-page .data-table .col-pub,
  .data-page .data-table .col-freq {
    display: none !important;
  }

  .home-dash-table .col-cat,
  .data-page .data-table .col-cat {
    display: table-cell !important;
    min-width: 4rem !important;
    max-width: 6rem !important;
    font-size: 0.72rem !important;
    color: var(--text-muted) !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  .home-dash-table .col-name,
  .data-page .data-table .col-name {
    min-width: 9.375rem !important;
    max-width: 11.25rem !important;
    font-size: 0.8rem !important;
  }

  .home-dash-table .col-date,
  .data-page .data-table .col-date {
    min-width: 5rem !important;
  }

  .home-dash-table .col-fav,
  .data-page .data-table .col-fav {
    width: 2rem !important;
    min-width: 2rem !important;
    text-align: center !important;
  }

  .chart-box--fluid,
  #compare-chart {
    height: clamp(280px, 45dvh, 480px);
    min-height: clamp(280px, 45dvh, 480px);
  }
}

@media (max-width: 720px) {
  .search-suggest {
    position: fixed;
    top: var(--site-header-top-h);
    left: 0;
    right: 0;
    max-height: 60vh;
    border-radius: 0;
    border-left: none;
    border-right: none;
  }

  .search-suggest-item {
    padding: 0.75rem 0.875rem;
  }

  .suggest-name {
    font-size: 0.95rem;
  }

  .suggest-meta {
    font-size: 0.72rem;
  }

  .search-page .search-form-large {
    flex-direction: column;
    align-items: stretch;
    gap: 0.625rem;
  }

  .search-page .search-form-large .search-wrap {
    width: 100%;
    min-width: 0;
  }

  .search-page .search-input-large {
    width: 100%;
    font-size: 16px;
    min-height: 44px;
    box-sizing: border-box;
  }

  .search-page .search-form-large .home-btn {
    width: 100%;
    justify-content: center;
  }

  .search-page .search-hints {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
    margin-top: 0.75rem;
    font-size: 0.82rem;
  }

  .search-page .search-hint-tag {
    padding: 0.375rem 0.625rem;
    border-radius: 999px;
    background: var(--surface-muted);
    border: 1px solid var(--border);
    text-decoration: none;
    font-size: 0.82rem;
  }

  .search-page .search-result-card {
    padding: 0.875rem;
  }

  .search-page .search-result-head {
    flex-wrap: wrap;
    gap: 0.375rem;
    align-items: flex-start;
  }

  .search-page .search-result-title {
    font-size: 1rem;
    line-height: 1.35;
  }

  .search-page .search-result-actions {
    flex-wrap: wrap;
    gap: 0.5rem;
  }

  .search-page .search-back {
    margin-bottom: 0.375rem;
  }

  .favorites-page .fav-page-frame {
    display: block !important;
    grid-template-columns: none !important;
    gap: 0 !important;
    width: 100% !important;
    overflow: visible !important;
  }

  .favorites-page .fav-page-header {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 0.375rem !important;
    padding: 0.625rem 0 !important;
    margin-bottom: 0.75rem !important;
    border-bottom: none !important;
  }

  .favorites-page .fav-page-header h1 {
    font-size: 1.15rem !important;
    margin: 0 !important;
  }

  .favorites-page .fav-page-header h1::after {
    width: 2rem;
    margin-top: 0.5rem;
  }

  .favorites-page .fav-page-desc-desktop {
    display: none !important;
  }

  .favorites-page .fav-empty-state {
    margin: 0.75rem 0;
    padding: 2.25rem 1.25rem;
    text-align: center;
    border-radius: var(--radius-lg);
    border: 1px solid var(--border);
    background: linear-gradient(165deg, var(--surface) 0%, var(--surface-muted) 100%);
    box-shadow: var(--shadow-card);
  }

  .favorites-page .fav-empty-visual {
    width: 3.5rem;
    height: 3.5rem;
    margin-bottom: 1rem;
  }

  .favorites-page .fav-empty-icon {
    font-size: 1.5rem;
  }

  .favorites-page .fav-empty-title {
    font-size: 1rem;
    font-weight: 700;
    margin: 0 0 0.375rem;
  }

  .favorites-page .fav-empty-desc {
    font-size: 0.82rem;
    color: var(--muted);
    margin: 0;
    line-height: 1.45;
  }

  .favorites-page .fav-indicator-nav:not(.is-visible) {
    display: none !important;
  }

  .favorites-page .fav-indicator-nav .fav-nav-head,
  .favorites-page .fav-indicator-nav .fav-nav-table-head {
    display: none !important;
  }

  .favorites-page .fav-page-main {
    display: flex;
    flex-direction: column;
    gap: 0;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .favorites-page .fav-page-main > .chart-layout {
    gap: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .favorites-page .fav-chart-card {
    margin: 0 0 0.75rem !important;
    padding: 0.625rem 0 0.75rem !important;
    border-radius: 10px !important;
    border: 1px solid var(--border) !important;
    box-sizing: border-box;
    background: var(--surface) !important;
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
  }

  .favorites-page .fav-chart-card-head {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    margin-bottom: 0.375rem;
    padding-bottom: 0.375rem;
    border-bottom: 1px solid var(--border);
  }

  .favorites-page .fav-chart-card-title {
    min-width: 0;
  }

  .favorites-page .fav-chart-card-head .chart-title-row h1 {
    font-size: 1rem !important;
    line-height: 1.35;
  }

  .favorites-page .fav-chart-card-head .chart-head-meta {
    font-size: 0.75rem;
    margin-top: 0.125rem;
  }

  .favorites-page .fav-chart-card-head .latest-box--inline {
    display: flex;
    width: 100%;
    padding: 0.4375rem 0.625rem;
    background: var(--surface-muted);
    border-radius: 6px;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.5rem;
    text-align: left;
  }

  .favorites-page .fav-chart-card-head .chart-warn {
    margin: 0;
    padding: 0.4375rem 0.625rem;
    font-size: 0.78rem;
  }

  .favorites-page #fav-chart-toolbar {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 0.375rem !important;
    margin: 0 0 0.5rem !important;
    padding: 0 !important;
    border: none !important;
    flex: none !important;
    min-height: 0 !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .favorites-page #fav-chart-toolbar::-webkit-scrollbar {
    display: none;
  }

  .favorites-page .fav-toolbar-filters {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 0.375rem !important;
    width: auto !important;
    flex: 0 0 auto !important;
    min-height: 0 !important;
  }

  .favorites-page .fav-toolbar-filters .chart-range-group,
  .favorites-page .fav-toolbar-filters .chart-mode-group {
    display: none !important;
  }

  .favorites-page .fav-toolbar-filters .chart-range-select,
  .favorites-page .fav-toolbar-filters .chart-mode-select {
    display: block !important;
    width: auto !important;
    min-width: 4.5rem;
    max-width: 5.5rem;
    min-height: 36px;
    font-size: 0.78rem;
    box-sizing: border-box;
    margin: 0;
    flex-shrink: 0;
    padding: 0 1.75rem 0 0.5rem;
  }

  .favorites-page .fav-toolbar-actions {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 0.375rem !important;
    width: auto !important;
    flex: 0 0 auto !important;
    min-height: 0 !important;
    margin-left: 0 !important;
  }

  .favorites-page .fav-toolbar-actions .btn {
    justify-content: center;
    text-align: center;
    padding: 0.375rem 0.5rem;
    font-size: 0.72rem;
    white-space: nowrap;
    min-width: 0;
    min-height: 36px;
    flex-shrink: 0;
  }

  .favorites-page .fav-toolbar-actions #fav-export-png::after {
    content: none;
  }

  .page-scroll.favorites-page #fav-main-chart,
  .favorites-page #fav-main-chart {
    flex: none !important;
    height: clamp(200px, 32dvh, 280px) !important;
    min-height: 200px !important;
    max-height: 280px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  .favorites-page #fav-main-chart:has(.chart-empty-msg) {
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .favorites-page #fav-main-chart .chart-empty-msg {
    padding: 1rem;
    max-width: 100%;
    box-sizing: border-box;
  }

  .favorites-page .fav-indicator-nav .fav-nav-scroll {
    width: 100%;
    padding: 0.375rem 0.375rem 0.375rem;
  }

  .favorites-page .fav-indicator-nav .fav-nav-item {
    display: block !important;
    padding: 0.5rem 0.625rem !important;
    min-height: 44px;
    margin-bottom: 2px;
    width: 100%;
    box-sizing: border-box;
  }

  .favorites-page .fav-indicator-nav .fav-nav-item.is-active {
    padding-left: calc(0.625rem - 3px) !important;
  }

  .favorites-page .fav-indicator-nav .fav-nav-item-name {
    font-size: 0.82rem;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: block;
  }

  .favorites-page .fav-indicator-nav .fav-nav-item-meta {
    display: none !important;
  }
}

@media (max-width: 720px) {
  .chart-head-panel {
    padding: 0.75rem;
  }

  .chart-head-grid {
    flex-direction: column;
    gap: 0.75rem;
  }

  .chart-head-main {
    width: 100%;
  }

  .chart-title-row {
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
  }

  .chart-title-row h1 {
    font-size: 1.1rem;
    margin-right: 0.5rem;
  }

  .chart-head-meta {
    flex-wrap: wrap;
    gap: 0.5rem;
    font-size: 0.82rem;
  }

  .chart-head-side {
    width: 100%;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
  }

  .latest-box--inline {
    font-size: 0.9rem;
  }

  .chart-head-actions {
    flex-wrap: wrap;
    gap: 0.375rem;
    align-items: stretch;
    --chart-head-action-h: 44px;
  }

  .chart-head-actions .btn {
    height: var(--chart-head-action-h);
    min-height: var(--chart-head-action-h);
    max-height: var(--chart-head-action-h);
    padding: 0 0.625rem;
    font-size: 0.82rem;
    line-height: 1.2;
  }

  .chart-category-bar {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
    margin-top: 0.625rem;
    padding-top: 0.625rem;
    border-top: 1px solid var(--border);
  }

  .chart-category-bar--solo {
    flex-direction: row;
    align-items: center;
    --category-bar-head-h: 28px;
    min-height: var(--category-bar-head-h);
  }

  .chart-category-bar-head {
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
    --category-bar-head-h: 28px;
    min-height: var(--category-bar-head-h);
  }

  .chart-category-bar-label,
  .chart-category-bar-name,
  .chart-category-bar-meta,
  .chart-category-bar--solo .chart-category-bar-label,
  .chart-category-bar--solo .chart-category-bar-name {
    display: inline-flex;
    align-items: center;
    height: var(--category-bar-head-h);
    font-size: 13px;
    line-height: 1.35;
    justify-content: center;
    text-align: center;
  }

  .chart-category-bar-head,
  .chart-category-bar--solo {
    align-items: center;
  }

  .chart-category-peers {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(7rem, 1fr));
    gap: 0.375rem;
    width: 100%;
    align-items: stretch;
  }

  .category-peer-chip {
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: 100%;
    min-height: 36px;
    padding: 0 0.625rem;
    font-size: 0.82rem;
    line-height: 1.2;
    text-align: center;
    border-radius: 6px;
  }

  .chart-head-desc {
    font-size: 0.85rem;
    margin-top: 0.625rem;
  }

  .chart-viz-panel {
    padding: 0.625rem 0.75rem;
  }

  .chart-toolbar {
    flex-wrap: nowrap;
    gap: 0.375rem;
    margin-bottom: 0.625rem;
    align-items: center;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    --chart-ctrl-h: 44px;
    --chart-ctrl-fs: 13px;
    --chart-ctrl-fw: 500;
    --chart-ctrl-radius: 6px;
    --chart-ctrl-px: 0.625rem;
  }

  .chart-toolbar::-webkit-scrollbar {
    display: none;
  }

  .toolbar-label {
    font-size: 0.78rem;
    display: none;
  }

  .chart-page .chart-toolbar .chart-range-group,
  .chart-page .chart-toolbar .chart-mode-group {
    display: none !important;
  }

  .chart-page .chart-toolbar .chart-range-select,
  .chart-page .chart-toolbar .chart-mode-select,
  .chart-page .chart-toolbar .chart-series-source,
  .chart-page .chart-toolbar .btn {
    box-sizing: border-box;
    height: var(--chart-ctrl-h);
    min-height: var(--chart-ctrl-h);
    max-height: var(--chart-ctrl-h);
    margin: 0;
    padding: 0 var(--chart-ctrl-px);
    font-family: inherit;
    font-size: var(--chart-ctrl-fs);
    font-weight: var(--chart-ctrl-fw);
    line-height: 1;
    border: 1px solid var(--border-strong);
    border-radius: var(--chart-ctrl-radius);
    background-color: var(--surface);
    color: var(--text);
    white-space: nowrap;
    flex-shrink: 0;
    overflow: hidden;
  }

  .chart-page .chart-toolbar .chart-series-source,
  .chart-page .chart-toolbar .btn {
    position: relative;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
  }

  .chart-page .chart-toolbar .chart-range-select,
  .chart-page .chart-toolbar .chart-mode-select {
    display: block !important;
    flex: 1 1 5rem;
    min-width: 5rem;
    width: auto;
    padding: 0 1.75rem 0 var(--chart-ctrl-px);
    text-align: center;
    text-align-last: center;
    cursor: pointer;
    line-height: 42px;
    vertical-align: middle;
    -webkit-appearance: none;
    appearance: none;
    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='%2394a3b8' d='M3 4.5L6 7.5L9 4.5'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.5rem center;
    background-size: 12px 12px;
  }

  .chart-page .chart-toolbar .chart-series-source.muted {
    color: var(--text);
  }

  .chart-page .chart-toolbar .btn {
    cursor: pointer;
  }

  .chart-range-btn,
  .chart-mode-btn {
    padding: 0.375rem 0.5rem;
    font-size: 0.78rem;
    border-radius: 6px;
    flex: 1;
    min-width: 44px;
    text-align: center;
  }

  .chart-box--fluid {
    height: clamp(280px, 45dvh, 480px);
    min-height: clamp(280px, 45dvh, 480px);
  }

  .chart-warn {
    font-size: 0.82rem;
    padding: 0.5rem 0.625rem;
    margin-top: 0.5rem;
  }

  .compare-page .page-header {
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
  }

  .compare-limit {
    max-width: none;
    width: 100%;
  }

  .compare-indicator-select {
    width: 100%;
  }

  .compare-chart-fill {
    height: clamp(280px, 45dvh, 480px);
    min-height: clamp(280px, 45dvh, 480px);
  }

  .app-page-frame {
    flex-direction: column;
    gap: 0;
  }

  .mobile-nav-backdrop {
    position: fixed;
    inset: 0;
    top: var(--site-header-h);
    z-index: 999;
    background: rgba(0, 0, 0, 0.28);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.2s ease, visibility 0.2s;
  }

  .mobile-nav-backdrop.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  .chart-indicator-nav {
    position: fixed !important;
    top: var(--nav-dropdown-top, var(--site-header-h)) !important;
    left: auto !important;
    right: var(--nav-dropdown-right, var(--layout-pad-x)) !important;
    bottom: auto !important;
    width: 9.375rem !important;
    min-width: 0 !important;
    max-width: none !important;
    max-height: min(70vh, calc(100vh - var(--nav-dropdown-top, var(--site-header-h)) - 0.5rem)) !important;
    z-index: 1000 !important;
    background: var(--surface) !important;
    border: 1px solid var(--border-strong) !important;
    border-top: none !important;
    transform: none;
    opacity: 0;
    transition: opacity 0.18s ease, visibility 0.18s;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
    box-shadow: 0 12px 36px rgba(0, 0, 0, 0.18);
    visibility: hidden;
    pointer-events: none;
    margin-bottom: 0 !important;
    border-radius: 0 0 10px 10px !important;
  }

  .fav-indicator-nav {
    position: fixed !important;
    top: var(--nav-dropdown-top, var(--site-header-h)) !important;
    left: auto !important;
    right: var(--nav-dropdown-right, var(--layout-pad-x)) !important;
    bottom: auto !important;
    width: fit-content !important;
    min-width: 0 !important;
    max-width: min(calc(100vw - 2rem), 12rem) !important;
    max-height: min(70vh, calc(100vh - var(--nav-dropdown-top, var(--site-header-h)) - 0.5rem)) !important;
    z-index: 1000 !important;
    background: var(--surface) !important;
    border: 1px solid var(--border-strong) !important;
    border-top: none !important;
    transform: none;
    opacity: 0;
    transition: opacity 0.18s ease, visibility 0.18s;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
    box-shadow: 0 12px 36px rgba(0, 0, 0, 0.18);
    visibility: hidden;
    pointer-events: none;
    margin-bottom: 0 !important;
    border-radius: 0 0 10px 10px !important;
  }

  .chart-indicator-nav.is-visible,
  .fav-indicator-nav.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  body.nav-panel-open {
    overflow: hidden;
  }

  .fav-indicator-nav .fav-nav-scroll {
    flex: 1 !important;
    overflow-y: auto !important;
    min-height: 0 !important;
    max-height: none !important;
  }

  .chart-nav-head,
  .fav-nav-head {
    padding: 0.75rem 0.875rem !important;
    border-bottom: 1px solid var(--border) !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    flex-shrink: 0 !important;
    background: var(--surface) !important;
  }

  .chart-nav-head-title,
  .fav-nav-head-title {
    font-size: 1rem;
    font-weight: 600 !important;
    letter-spacing: normal !important;
    text-transform: none !important;
    color: var(--text) !important;
    padding-top: 0 !important;
  }

  .mobile-nav-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    min-width: 44px;
    min-height: 44px;
    padding: 0.375rem;
    margin-left: auto;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--surface-muted);
    color: var(--text);
    cursor: pointer;
    font-size: 1.1rem;
    line-height: 1;
  }

  .mobile-nav-close:hover {
    background: var(--surface-hover);
    border-color: var(--border-strong);
  }

  .chart-nav-search-wrap {
    padding: 0.75rem 1rem !important;
    border-bottom: 1px solid var(--border) !important;
    flex-shrink: 0 !important;
    background: var(--surface) !important;
    position: relative !important;
  }

  .chart-nav-search {
    font-size: 0.95rem;
    padding: 0.75rem 1rem !important;
    width: 100% !important;
    border: 1px solid var(--border) !important;
    border-radius: 0.5rem !important;
    background: var(--surface) !important;
    color: var(--text) !important;
  }

  .chart-nav-scroll {
    flex: 1 !important;
    overflow-y: auto !important;
    padding: 0.5rem 0 !important;
    max-height: none !important;
    min-height: 0 !important;
  }

  .chart-nav-region {
    margin-bottom: 0.25rem;
  }

  .chart-nav-region-head {
    padding: 0.625rem 0.875rem !important;
    font-size: 0.9rem;
  }

  .chart-nav-region-name {
    font-size: 0.9rem;
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
  }

  .chart-nav-item-row {
    padding: 0 0.875rem !important;
    min-width: 0;
  }

  .chart-nav-item {
    padding: 0.625rem 0.75rem !important;
    font-size: 0.88rem;
    border-radius: 0.375rem !important;
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
  }

  /* 行业板块列表项含涨跌 meta，勿强制 44px 行高（否则文字偏上） */
  .chart-nav-item.chart-nav-item--with-meta {
    height: auto;
    max-height: none;
    line-height: 1.35;
    min-height: 44px;
    display: flex;
    align-items: center;
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
  }

  .chart-nav-item-row--industry {
    align-items: center;
  }

  .app-page-main {
    flex: 1;
    width: 100%;
    min-height: calc(100vh - var(--site-header-top-h));
  }
}

@media (max-width: 720px) {
  .main.main--wide {
    max-width: none !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  .main.main--scroll {
    padding: 0 !important;
    width: 100% !important;
    overflow-x: clip !important;
    overflow-y: visible !important;
  }

  .home-page,
  .cal-page,
  .chart-page,
  .favorites-page,
  .industry-page,
  .data-page,
  .compare-page {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .page-header--compact {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0.375rem !important;
    padding-bottom: 0.5rem !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-bottom: 0.5rem !important;
    border-bottom: none !important;
  }

  .page-header-main h1 {
    font-size: 1.1rem;
    margin-bottom: 0.125rem !important;
  }

  .page-header-desc {
    font-size: 0.78rem;
    margin-bottom: 0 !important;
    line-height: 1.3 !important;
    white-space: normal;
  }

  .home-page .home-dash-panel,
  .data-page .data-panel-fill,
  .cal-page .cal-panel {
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin: 0 !important;
  }

  .favorites-page .fav-page-main > .chart-layout {
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin: 0 !important;
  }

  .cal-page .cal-panel.panel-flush {
    padding: 0 !important;
  }

  .cal-page .cal-toolbar,
  .cal-page .cal-filter-bar {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .cal-page .cal-grid-wrap {
    margin: 0 !important;
  }

  .chart-page > .breadcrumb--tight {
    --breadcrumb-h: 20px;
    padding-left: 0;
    padding-right: 0;
    margin-bottom: 0.375rem;
    font-size: 13px;
  }

  .chart-page .chart-head-panel {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .chart-page .chart-viz-panel {
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    border-radius: 6px !important;
    overflow: hidden !important;
  }

  .chart-page #main-chart {
    min-height: clamp(280px, 45dvh, 480px) !important;
    height: clamp(280px, 45dvh, 480px) !important;
  }

  /* 行业页：标题+筛选+状态栏 sticky 在列表顶端（对齐 PC 顶栏布局） */
  .industry-page.page-scroll .industry-list-head {
    position: sticky;
    top: var(--site-header-h);
    z-index: 90;
    background: var(--bg);
    padding: 0 0 0.5rem;
    margin-bottom: 0.5rem;
    box-shadow: 0 1px 0 var(--border-strong);
  }

  .industry-page.page-scroll .industry-list-head .page-header--compact {
    flex-direction: row !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 0.5rem var(--page-gutter-x) !important;
    margin-bottom: 0.5rem !important;
    padding-bottom: 0.5rem !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    border-bottom: 1px solid var(--border-strong) !important;
  }

  .industry-page.page-scroll .industry-list-head .industry-status-bar {
    margin-bottom: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .industry-page .page-header-main {
    margin-bottom: 0.25rem !important;
    flex: 1 1 10rem !important;
    min-width: 0 !important;
  }

  .industry-page.page-scroll .industry-list-head .industry-toolbar-actions {
    width: 100% !important;
    flex: 1 1 100% !important;
  }

  .industry-toolbar-actions {
    --industry-toolbar-ctrl-h: 44px;
    flex-direction: row !important;
    gap: 0.5rem !important;
    width: 100% !important;
    align-items: center !important;
  }

  .industry-toolbar-actions .data-search-input,
  .industry-toolbar-actions .btn {
    box-sizing: border-box !important;
    height: var(--industry-toolbar-ctrl-h) !important;
    min-height: var(--industry-toolbar-ctrl-h) !important;
    max-height: var(--industry-toolbar-ctrl-h) !important;
    padding: 0 0.75rem !important;
    line-height: 1.2 !important;
    font-size: 0.82rem;
    margin: 0;
  }

  .industry-toolbar-actions .data-search-input {
    flex: 1 !important;
    width: auto !important;
    min-width: 0 !important;
  }

  .industry-toolbar-actions .btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
    white-space: nowrap;
  }

  .industry-status-bar {
    margin-bottom: 0.5rem !important;
    padding: 0.375rem 0 !important;
    background: var(--surface-muted) !important;
    border-radius: 6px !important;
    flex: none !important;
    display: block !important;
  }

  .industry-status-text {
    font-size: 0.72rem;
    line-height: 1.3 !important;
    white-space: normal;
    margin: 0 !important;
    flex: none !important;
  }

  .industry-body-grid {
    flex-direction: column !important;
    padding-top: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    flex: none !important;
    min-height: 0 !important;
  }

  .industry-table-section {
    padding: 0 !important;
    flex: none !important;
    min-height: 0 !important;
  }

  .industry-panel-fill {
    flex: none !important;
    min-height: 0 !important;
    display: block !important;
  }

  /* 移动端：表头+提示语整块 sticky 在列表顶端（箭头位置） */
  .industry-page.page-scroll .industry-table-pin {
    position: sticky;
    top: calc(var(--site-header-h) + var(--industry-list-head-h, 0px));
    z-index: 80;
    background: var(--bg);
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
    box-shadow: 0 1px 0 var(--border-strong);
  }

  .industry-page.page-scroll .industry-table-head-x {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
  }

  .industry-page.page-scroll .industry-table-head-x::-webkit-scrollbar {
    display: none;
  }

  .industry-page.page-scroll .industry-table-body-x,
  .industry-page.page-scroll .industry-table-scroll {
    overflow-x: auto !important;
    overflow-y: visible !important;
    max-height: none !important;
    flex: none !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
  }

  .industry-page.page-scroll .industry-table-wrap,
  .industry-page.page-scroll .industry-table-section,
  .industry-page.page-scroll .industry-panel-fill {
    overflow: visible !important;
    flex: none !important;
    max-height: none !important;
  }

  .industry-page.page-scroll .industry-table-head-x .industry-data-table thead th,
  .industry-page.page-scroll .industry-table-head-x .industry-data-table th.is-sortable {
    position: static !important;
    top: auto !important;
  }

  .industry-page.page-scroll .industry-table-head-x .industry-data-table thead .col-name {
    z-index: 5 !important;
  }

  .industry-page.page-scroll .industry-table-pin .industry-table-hint {
    margin: 0 !important;
    padding: 6px 0 !important;
    border-bottom: 1px solid var(--border-strong, var(--border)) !important;
    border-radius: 0 !important;
    background: transparent !important;
  }

  .industry-data-table {
    font-size: 0.8rem;
    min-width: 25rem;
    table-layout: auto !important;
  }

  .industry-data-table th,
  .industry-data-table td {
    padding: 8px 10px !important;
    vertical-align: middle !important;
    line-height: 1.35 !important;
  }

  .industry-data-table thead th {
    line-height: 1.35 !important;
  }

  .industry-data-table .col-name {
    min-width: 7.5rem !important;
    max-width: 14rem !important;
    font-size: 0.8rem;
  }

  .industry-data-table thead .col-name {
    max-width: 14rem !important;
  }

  .industry-data-table .col-name a {
    display: inline;
    line-height: inherit;
    vertical-align: baseline;
  }

  .industry-data-table .col-seq {
    width: 2rem !important;
    min-width: 2rem !important;
    text-align: center;
  }

  .industry-data-table .col-code {
    min-width: 3.5rem !important;
  }

  .industry-table-hint {
    margin: 0 !important;
    padding: 6px 12px !important;
    font-size: 0.78rem !important;
    line-height: 1.4 !important;
    background: var(--surface-muted, rgba(30, 90, 142, 0.04)) !important;
    border: none !important;
    border-bottom: 1px solid var(--border-strong, var(--border)) !important;
    border-radius: 0 !important;
  }

  .industry-chart-modal-root {
    z-index: 1000 !important;
  }

  .industry-chart-dialog {
    max-width: 100% !important;
    max-height: 85vh !important;
    margin: 0 !important;
    border-radius: 0 !important;
    padding: 0.75rem !important;
  }

  .industry-chart-head {
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 0.625rem;
  }

  .industry-chart-title {
    font-size: 1rem;
  }

  .industry-chart-meta {
    font-size: 0.78rem;
  }

  .industry-chart-toolbar {
    flex-wrap: wrap;
    gap: 0.375rem;
    margin-bottom: 0.625rem;
  }

  .industry-chart-box {
    height: clamp(200px, 35vh, 350px);
    min-height: 12.5rem;
  }

  .industry-columns-panel.industry-drawer {
    max-width: 95vw;
    padding: 0.75rem;
  }

  .industry-drawer-title {
    font-size: 0.95rem;
  }

  .industry-drawer-desc {
    font-size: 0.78rem;
  }

  .industry-col-item {
    font-size: 0.82rem;
    padding: 0.5rem 0.625rem;
  }

  .industry-columns-presets {
    gap: 0.25rem;
  }
}

@media (max-width: 720px) {
  .fav-page-frame {
    display: block !important;
    grid-template-columns: none !important;
    flex-direction: column;
    gap: 0;
  }

  .data-page .filter-bar.filter-bar--compact {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    margin: 0 0 0.5rem !important;
    padding: 0.375rem 0.5rem !important;
    gap: 0.375rem !important;
    background: var(--surface-muted) !important;
    border-radius: 6px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-x: contain !important;
    scroll-snap-type: x proximity;
    scrollbar-width: none !important;
  }

  .data-page .filter-bar.filter-bar--compact::-webkit-scrollbar {
    display: none !important;
  }

  .data-page .filter-chip {
    flex: 0 0 auto !important;
    scroll-snap-align: start;
    padding: 0.3125rem 0.625rem !important;
    font-size: 0.78rem;
    border-radius: 4px !important;
    white-space: nowrap !important;
  }

  .data-page .data-panel-fill {
    flex: none !important;
    min-height: 0 !important;
    padding: 0 !important;
  }

  .data-page .data-table-wrap,
  .data-page .data-table-wrap--fill {
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    padding: 0 !important;
    margin: 0 !important;
    flex: none !important;
    display: block !important;
  }

  .fav-indicator-nav .chart-nav-scroll {
    max-height: none;
  }

  .compare-page {
    padding-left: 0 !important;
    padding-right: 0 !important;
    overflow-x: hidden !important;
    width: 100% !important;
    max-width: none !important;
  }

  .compare-page .page-header-desc {
    font-size: 0.72rem;
  }

  .compare-page .compare-form {
    padding: 0.5rem 0 !important;
    margin: 0 !important;
    background: var(--surface-muted) !important;
    border-radius: 0 !important;
    border: none !important;
    border-bottom: 1px solid var(--border) !important;
  }

  .compare-page .compare-form--compact {
    padding: 0.5rem 0 !important;
    background: var(--surface-muted) !important;
    border-radius: 6px !important;
    margin: 0 0 0.5rem !important;
    border: 1px solid var(--border) !important;
    box-sizing: border-box !important;
  }

  .compare-page .compare-form-grid {
    grid-template-columns: 1fr !important;
    gap: 0.5rem !important;
    margin-bottom: 0.5rem !important;
  }

  .compare-page .compare-form label {
    font-size: 0.82rem;
    gap: 0.25rem !important;
    flex-direction: column !important;
    align-items: flex-start !important;
  }

  .compare-page .compare-form .label-text {
    font-size: 0.72rem;
    font-weight: 500 !important;
    color: var(--muted) !important;
    white-space: nowrap !important;
  }

  .compare-page .compare-form select {
    padding: 0.4375rem 0.5rem !important;
    font-size: 0.8rem;
    border-radius: 6px !important;
    border: 1px solid var(--border) !important;
    background: var(--surface) !important;
    min-height: 44px !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  .compare-page .compare-limit {
    max-width: none !important;
    flex: 1 !important;
    min-width: 0 !important;
  }

  .compare-page .compare-form-actions {
    flex-wrap: wrap !important;
    gap: 0.5rem !important;
    padding-top: 0.5rem !important;
    border-top: 1px solid var(--border) !important;
    justify-content: flex-start !important;
  }

  .compare-page .compare-form-actions .home-btn {
    padding: 0.4375rem 1.25rem !important;
    font-size: 0.82rem;
    border-radius: 6px !important;
  }

  .compare-page .compare-form-actions .btn {
    padding: 0.4375rem 0.875rem !important;
    font-size: 0.78rem;
    border-radius: 6px !important;
  }

  .compare-page .chart-viz-panel {
    margin: 0 !important;
    border-radius: 6px !important;
    flex: none !important;
    min-height: 0 !important;
    overflow: hidden !important;
    padding: 0 !important;
    border: none !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  .compare-page .compare-chart-fill {
    flex: none !important;
    min-height: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    width: 100% !important;
  }

  .compare-page #compare-chart {
    min-height: clamp(280px, 45dvh, 480px) !important;
    height: clamp(280px, 45dvh, 480px) !important;
    max-height: none !important;
    flex: none !important;
    width: 100% !important;
    overflow: hidden !important;
    background: var(--bg) !important;
  }

  .fav-page-main {
    flex: 1;
    min-height: 0;
  }

  .fav-page-main > .chart-layout {
    flex-direction: column;
    gap: 0;
  }

  .auth-footer-links {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    align-items: center;
    text-align: center;
    font-size: 0.85rem;
    line-height: 1.5;
  }

  .auth-footer-links a {
    display: inline-block;
    padding: 0.125rem 0;
  }

  .auth-footer-register {
    color: var(--muted);
  }

  .admin-toolbar {
    flex-direction: column;
    align-items: stretch;
    gap: 0.625rem;
  }

  .admin-tabs {
    width: 100%;
    overflow-x: auto;
    flex-wrap: nowrap;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .admin-tabs::-webkit-scrollbar {
    display: none;
  }

  .admin-tab {
    flex-shrink: 0;
    min-height: 44px;
  }

  .admin-toolbar-right {
    flex-wrap: wrap;
    justify-content: space-between;
    width: 100%;
    gap: 0.5rem;
  }

  .admin-updated {
    max-width: none;
    flex: 1;
    min-width: 0;
  }

  .admin-sync-all-bar {
    gap: 0.75rem;
  }

  .users-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}