@media (max-width: 1180px) {
  .dashboard-grid, .stock-layout { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .filter-grid, .screener-results { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .indicator-grid, .heatmap { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 991px) {
  .sidebar {
    transform: translateX(-105%);
    transition: transform .25s ease;
  }
  .sidebar.open { transform: translateX(0); }
  .mobile-overlay {
    position: fixed;
    inset: 0;
    z-index: 35;
    display: none;
    background: rgba(0, 0, 0, .45);
  }
  .mobile-overlay.show { display: block; }
  .app-shell { margin-left: 0; padding-inline: 14px; }
  .hero-grid, .market-hero, .dashboard-grid, .stock-layout, .portfolio-grid { grid-template-columns: 1fr; }
  .real-data-notice { grid-template-columns: 1fr; }
  .data-settings-form { grid-template-columns: 1fr; }
  .span-2 { grid-column: auto; }
  .span-3 { grid-column: auto; }
  .trade-btn span { display: none; }
}

@media (max-width: 680px) {
  .topbar { gap: 8px; }
  .search-wrap { height: 42px; }
  .topbar-actions { gap: 6px; }
  .icon-btn { width: 40px; min-height: 40px; }
  .market-hero, .panel, .ai-orbit { padding: 14px; }
  .index-card { min-height: 240px; }
  .chart-shell, .candle-chart { min-height: 340px; height: 380px; }
  .mini-stats, .indicator-grid, .heatmap, .filter-grid, .screener-results { grid-template-columns: 1fr; }
  .ai-signal-summary { grid-template-columns: 1fr; }
  .alert-form, .portfolio-form, .journal-form { grid-template-columns: 1fr; }
  .journal-form textarea { grid-column: auto; }
  .stock-head, .panel-head, .section-title { align-items: flex-start; flex-direction: column; }
  .stock-actions { width: 100%; flex-direction: column; align-items: stretch; }
  h1 { font-size: 2.2rem; }
}
