/* Mobile fixes for subpages (excludes index home-boards & live-page) */

@media (max-width: 768px) {
  body:not(.home-boards):not(.live-page) {
    overflow-x: hidden;
    width: 100%;
    max-width: 100vw;
  }

  body:not(.home-boards):not(.live-page) .wrap,
  body:not(.home-boards):not(.live-page) .wrap.wide,
  body:not(.home-boards):not(.live-page) .page-grid,
  body:not(.home-boards):not(.live-page) .panel,
  body:not(.home-boards):not(.live-page) .section-inner {
    padding-left: 16px !important;
    padding-right: 16px !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow-x: hidden;
    min-width: 0;
  }

  /* ---- Tables: contained horizontal scroll + edge hint ---- */
  body:not(.home-boards):not(.live-page) .table-scroll,
  body:not(.home-boards):not(.live-page) .table-wrapper {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    position: relative;
    scrollbar-width: thin;
  }

  body:not(.home-boards):not(.live-page) .table-scroll::after,
  body:not(.home-boards):not(.live-page) .table-wrapper::after {
    content: "";
    position: sticky;
    right: 0;
    top: 0;
    float: right;
    width: 18px;
    height: 100%;
    margin-left: -18px;
    pointer-events: none;
    background: linear-gradient(to left, rgba(255, 255, 255, 0.95), transparent);
  }

  body:not(.home-boards):not(.live-page) .data-table {
    min-width: 560px;
  }

  body:not(.home-boards):not(.live-page) .matrix-table {
    min-width: 640px;
  }

  /* Alias wrappers from UX spec */
  body:not(.home-boards):not(.live-page) .table-container {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  body:not(.home-boards):not(.live-page) .table-container table {
    min-width: 560px;
  }

  /* ---- Strategy cards: 2×2 metric grid (undo global hide) ---- */
  body:not(.home-boards):not(.live-page) .m-card.strategy-card,
  body:not(.home-boards):not(.live-page) .m-card {
    border: 1px solid #e2e8f0;
    border-radius: 4px;
    padding: 12px !important;
    gap: 10px !important;
    background: #fff;
  }

  /* Plaza unified cards: keep principle + metrics visible on mobile */
  body.plaza-page .m-card.strategy-card.plaza-card .card-principle,
  body.plaza-page .m-card.strategy-card.plaza-card .card-meta,
  body.plaza-page .m-card.strategy-card.plaza-card .stat-caps {
    display: block !important;
  }
  body.plaza-page .m-card.strategy-card.plaza-card .stat-caps.plaza-metrics {
    display: grid !important;
  }
  body.plaza-page .m-card.strategy-card.plaza-card .tags {
    display: none !important;
  }

  body:not(.home-boards):not(.live-page):not(.plaza-page) .m-card .card-principle,
  body:not(.home-boards):not(.live-page):not(.plaza-page) .m-card .tags {
    display: none !important;
  }

  body:not(.home-boards):not(.live-page) .m-card .muted {
    display: block !important;
    font-size: 11px;
    line-height: 1.4;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body:not(.home-boards):not(.live-page) .m-card .stat-caps {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    width: 100%;
    margin-top: 4px;
  }

  body:not(.home-boards):not(.live-page) .m-card .stat-cap {
    min-height: 52px;
    padding: 8px 10px;
    border: 1px solid #e2e8f0;
    border-radius: 4px;
    background: #f8fafc;
  }

  body:not(.home-boards):not(.live-page) .m-card .card-hit {
    font-size: 13px;
    line-height: 1.35;
  }

  /* Backtest / AI metric rows */
  body:not(.home-boards):not(.live-page) .bt-meta,
  body:not(.home-boards):not(.live-page) .bt-meta.five,
  body:not(.home-boards):not(.live-page) .bbg-metrics-matrix {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
  }

  body:not(.home-boards):not(.live-page) .bbg-status-strip {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
  }

  body:not(.home-boards):not(.live-page) .bbg-strip-item {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    width: 100%;
  }

  body:not(.home-boards):not(.live-page) .bbg-trades-grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px;
  }

  /* ---- Leaderboard: card stack on mobile ---- */
  body:not(.home-boards):not(.live-page) .week-list {
    max-height: none;
    overflow: visible;
  }

  body:not(.home-boards):not(.live-page) .week-list li {
    border-bottom: 0;
    margin-bottom: 8px;
  }

  body:not(.home-boards):not(.live-page) .week-row {
    display: grid;
    grid-template-columns: 28px 1fr auto;
    grid-template-rows: auto;
    gap: 8px 10px;
    align-items: center;
    width: 100%;
    padding: 12px;
    border: 1px solid #e2e8f0 !important;
    border-radius: 4px;
    background: #fff;
    box-sizing: border-box;
  }

  body:not(.home-boards):not(.live-page) .week-row b {
    font-size: 14px;
  }

  body:not(.home-boards):not(.live-page) .week-row span {
    font-size: 13px;
    line-height: 1.35;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body:not(.home-boards):not(.live-page) .week-row em {
    font-size: 13px;
    white-space: nowrap;
  }

  /* ---- Strategy filter tabs ---- */
  body:not(.home-boards):not(.live-page) .term-tabs,
  body:not(.home-boards):not(.live-page) .filter-tabs,
  body:not(.home-boards):not(.live-page) .mobile-view-tabs {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    gap: 8px;
    padding: 8px 0 10px;
    margin: 12px 0;
    scrollbar-width: none;
    -ms-overflow-style: none;
  }

  body:not(.home-boards):not(.live-page) .term-tabs::-webkit-scrollbar,
  body:not(.home-boards):not(.live-page) .filter-tabs::-webkit-scrollbar {
    display: none;
  }

  body:not(.home-boards):not(.live-page) .term-tab {
    flex: 0 0 auto;
    min-height: 40px;
    padding: 8px 14px;
  }

  /* ---- News / flash feed: single column ---- */
  body:not(.home-boards):not(.live-page) .flash-list,
  body:not(.home-boards):not(.live-page) .news-grid,
  body:not(.home-boards):not(.live-page) .article-cards {
    max-height: none;
    overflow: visible;
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 0;
  }

  body:not(.home-boards):not(.live-page) .flash-row,
  body:not(.home-boards):not(.live-page) .news-card {
    width: 100% !important;
    box-sizing: border-box;
    padding: 10px 0;
  }

  body:not(.home-boards):not(.live-page) .mv-panel-news,
  body:not(.home-boards):not(.live-page) .rail-block.flash-desk {
    width: 100%;
    min-width: 0;
    padding-left: 0;
    padding-right: 0;
  }

  /* ---- Charts: full width, tighter axis ---- */
  body:not(.home-boards):not(.live-page) .lab-chart-frame,
  body:not(.home-boards):not(.live-page) .chart-container,
  body:not(.home-boards):not(.live-page) .chart-shell,
  body:not(.home-boards):not(.live-page) #candleChart,
  body:not(.home-boards):not(.live-page) #equityChart {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box;
  }

  body:not(.home-boards):not(.live-page) #equityChart.lc-chart {
    height: 168px !important;
    min-height: 168px !important;
  }

  body:not(.home-boards):not(.live-page) #candleChart,
  body:not(.home-boards):not(.live-page) #candleChart.lab-canvas {
    height: 360px !important;
    min-height: 360px !important;
    max-height: 400px !important;
  }

  body:not(.home-boards):not(.live-page) .lab-chart-frame {
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden;
  }

  body:not(.home-boards):not(.live-page) .ticker-bar,
  body:not(.home-boards):not(.live-page) #bloomberg-marquee-bar,
  body:not(.home-boards):not(.live-page) .bb-marquee {
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
    min-width: 0;
  }

  /* ---- Auth / modals / forms (iOS zoom fix) ---- */
  body:not(.home-boards):not(.live-page) input[type="text"],
  body:not(.home-boards):not(.live-page) input[type="email"],
  body:not(.home-boards):not(.live-page) input[type="password"],
  body:not(.home-boards):not(.live-page) input[type="number"],
  body:not(.home-boards):not(.live-page) input[type="tel"],
  body:not(.home-boards):not(.live-page) input[type="search"],
  body:not(.home-boards):not(.live-page) select,
  body:not(.home-boards):not(.live-page) textarea,
  body:not(.home-boards):not(.live-page) #loginCode,
  body:not(.home-boards):not(.live-page) .otp-cell {
    font-size: 16px !important;
  }

  body:not(.home-boards):not(.live-page) .modal-bg {
    z-index: 9998;
    align-items: flex-start;
    padding: max(12px, env(safe-area-inset-top)) 12px max(12px, env(safe-area-inset-bottom));
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  body:not(.home-boards):not(.live-page) .modal,
  body:not(.home-boards):not(.live-page) .modal.login-modal,
  body:not(.home-boards):not(.live-page) .modal.wide,
  body:not(.home-boards):not(.live-page) .modal-dialog,
  body:not(.home-boards):not(.live-page) .auth-card {
    width: 90% !important;
    max-width: 380px !important;
    max-height: 85vh;
    margin: auto;
    border-radius: 12px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    box-sizing: border-box;
  }

  body:not(.home-boards):not(.live-page) #loginPanel.desk,
  body:not(.home-boards):not(.live-page) #dashPanel.desk {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    padding: 4px 0 16px;
  }

  body:not(.home-boards):not(.live-page) .btn-tg,
  body:not(.home-boards):not(.live-page) #btnDoLogin,
  body:not(.home-boards):not(.live-page) .login-step .btn-cta {
    min-height: 44px;
    font-size: 15px;
  }

  body:not(.home-boards):not(.live-page) .otp {
    display: flex;
    gap: 8px;
    justify-content: center;
    flex-wrap: nowrap;
    max-width: 100%;
  }

  body:not(.home-boards):not(.live-page) .otp-cell {
    width: 44px;
    height: 48px;
    flex: 0 0 44px;
    text-align: center;
  }

  /* Nav drawer: handled by css/mobile-global.css + nav.js */

  body:not(.home-boards):not(.live-page) .result-sheet.bb-sheet.open,
  body:not(.home-boards):not(.live-page) .result-sheet.bb-sheet {
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: max(16px, env(safe-area-inset-bottom));
  }

  /* ---- Fixed bottom bars: safe area ---- */
  body:not(.home-boards):not(.live-page) .thumb-dock,
  body:not(.home-boards):not(.live-page) .mobile-view-tabs,
  body:not(.home-boards):not(.live-page) .mobile-nav-bar,
  body:not(.home-boards):not(.live-page) .fixed-bottom-bar,
  body:not(.home-boards):not(.live-page) .tg-fab,
  body:not(.home-boards):not(.live-page) .toast {
    padding-bottom: calc(8px + env(safe-area-inset-bottom)) !important;
  }

  body:not(.home-boards):not(.live-page) .thumb-dock {
    bottom: 0;
    left: 0;
    right: 0;
  }

  body:not(.home-boards):not(.live-page) .mobile-view-tabs {
    padding-left: 0;
    padding-right: 0;
  }

  body:not(.home-boards):not(.live-page) .mv-tab {
    min-height: 44px;
  }

  /* ---- Layout grids ---- */
  body:not(.home-boards):not(.live-page) .page-grid,
  body:not(.home-boards):not(.live-page) .editorial-grid,
  body:not(.home-boards):not(.live-page) .market-grid,
  body:not(.home-boards):not(.live-page) .price-grid,
  body:not(.home-boards):not(.live-page) .param-grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px;
    width: 100%;
    min-width: 0;
  }

  body:not(.home-boards):not(.live-page) .about-pillars,
  body:not(.home-boards):not(.live-page) .trust-bar {
    grid-template-columns: 1fr !important;
  }

  body:not(.home-boards):not(.live-page) .member-login-card {
    width: 100%;
    max-width: 100%;
    margin: 12px 0 24px;
    padding: 20px 16px;
  }

  body:not(.home-boards):not(.live-page) .member-login-card .otp {
    width: 100%;
  }

  body:not(.home-boards):not(.live-page) .member-login-card .otp-cell {
    flex: 1 1 0;
    width: auto;
    min-width: 44px;
    max-width: 56px;
  }

  body:not(.home-boards):not(.live-page) .member-login-submit,
  body:not(.home-boards):not(.live-page) .member-login-card .btn-tg {
    width: 100%;
  }
}

@media (max-width: 480px) {
  body:not(.home-boards):not(.live-page) .brand h1 {
    font-size: clamp(9px, 3.1vw, 12px);
    letter-spacing: clamp(0.05em, 0.35vw, 0.12em);
  }

  body:not(.home-boards):not(.live-page) .about-hero h1,
  body:not(.home-boards):not(.live-page) .ai-lab-h1 {
    font-size: clamp(1.25rem, 5.5vw, 1.65rem) !important;
    line-height: 1.25 !important;
  }
}
