/* ---------- Responsive ---------- */
@media (max-width: 1200px) {
  .news-layout { grid-template-columns: 1fr; }
  .news-upcoming { position: static; }
  .pos-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pp-side { position: static; }
  .pp-books, .leg-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pp-header .conn, .pp-header .user div { display: none; }
  .pp-grid { grid-template-columns: 1fr; }
  .pp-info { grid-template-columns: 1fr; }
  .pp-kpis { flex-direction: row; }
  .pp-kpis .kpi-box { flex: 1; }
  .xp-books.many { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid-top { grid-template-columns: minmax(0, 1fr); }
  .right-col { flex-direction: row; flex-wrap: wrap; min-width: 0; }
  .right-col > * { flex: 1 1 320px; min-width: 0; }
  .sf-rc-show, .sf-rc-hide { display: none !important; }
  /* Таблица связок прокручивается вбок: связка и звёздочка остаются на месте */
  #page-moex .pairs:not(.cross) > thead th:nth-child(-n+2),
  #page-moex .pairs:not(.cross) > tbody > tr:not(.xp-row) > td:nth-child(-n+2) { position: sticky; z-index: 1; background: var(--card); }
  #page-moex .pairs:not(.cross) > thead th:nth-child(-n+2) { background: var(--surface-2); z-index: 2; }
  #page-moex .pairs:not(.cross) > thead th:nth-child(1), #page-moex .pairs:not(.cross) > tbody > tr:not(.xp-row) > td:nth-child(1) { left: 0; }
  #page-moex .pairs:not(.cross) > thead th:nth-child(2), #page-moex .pairs:not(.cross) > tbody > tr:not(.xp-row) > td:nth-child(2) { left: 40px; box-shadow: 1px 0 0 var(--border); }
  }
@media (max-width: 1500px) {
  .xp-bottom { grid-template-columns: 270px minmax(0, 1fr); }
  .xp-tape { grid-column: 1 / -1; }
  .xp-tape .tape { max-height: 220px; }
}
@media (max-width: 1200px) {
  .al-grid { grid-template-columns: 1fr; }
  .stat-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fav-layout { grid-template-columns: 1fr; }
  .fav-list { position: static; min-height: 0; max-height: 280px; }
}
@media (max-width: 900px) {
  .acc-layout { grid-template-columns: 1fr; }
  .acc-nav { position: static; }
  .form-grid, .form-grid.three, .plan-grid { grid-template-columns: 1fr; }
  .bell-pop { right: 8px; width: min(340px, calc(100vw - 16px)); }
  .chart-grid { grid-template-columns: 1fr; grid-template-rows: none; grid-auto-rows: 320px; height: auto; }
  .xp-main, .xp-bottom { grid-template-columns: 1fr; }
  .ex-grid { grid-template-columns: 1fr; }
  .xp-kpis { border-left: 0; padding-left: 0; flex-wrap: wrap; }
  :root { --sidebar-w: 0px; }
  /* Левая панель — выдвижное меню (кнопка-бургер в шапке, mobile-nav.js) */
  .sidebar { position: fixed; z-index: 90; left: 0; top: 0; bottom: 0; width: min(280px, 86vw); height: 100%; transform: translateX(-104%); transition: transform .22s ease; }
  body.nav-open .sidebar { transform: none; box-shadow: 0 0 50px rgba(0, 0, 0, .55); }
  .sidebar .sb-toggle { display: none; }
  .nav-overlay { position: fixed; inset: 0; z-index: 80; background: rgba(8, 10, 28, .55); opacity: 0; pointer-events: none; transition: opacity .22s; }
  body.nav-open .nav-overlay { opacity: 1; pointer-events: auto; }
  body.nav-open { overflow: hidden; }
  .conn { display: none; }
  .search { width: auto; flex: 1; }
  .right-col { flex-direction: column; flex-wrap: nowrap; }
  .right-col > * { flex: none; }
  .chips-row, .filters { flex-wrap: wrap; }
  .crumbs { min-width: 0; overflow: hidden; }
  .crumbs a:last-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
  .table-foot { gap: 8px; flex-wrap: wrap; }
  .sub-tabs { overflow-x: auto; }
  .sub-tabs a { flex-shrink: 0; white-space: nowrap; }
  .grid-top, .table-card { min-width: 0; }
}
.chart-tip[hidden] { display: none; }

.nav-burger { display: none; place-items: center; width: 36px; height: 36px; flex: none; margin-right: 6px; border: 1px solid var(--border); border-radius: 8px; background: var(--card); color: var(--text-2); }
.nav-burger svg { width: 18px; height: 18px; }
.nav-burger:hover { color: var(--text); border-color: var(--border-strong); }
.nav-overlay { display: none; }
@media (max-width: 900px) { .nav-overlay { display: block; } .nav-burger { display: inline-grid; } }

/* Телефон */
@media (max-width: 700px) {
  .page-head { flex-wrap: wrap; gap: 6px 12px; }
  .page-head .page-sub { flex-basis: 100%; order: 3; }
  .page-head .spacer { display: none; }
  .content { padding-left: 14px; padding-right: 14px; }
  .topbar { padding-left: 12px; padding-right: 12px; gap: 8px; }
  .topbar .user > div { display: none; }
  .sf-footer-inner { width: calc(100% - 28px); }
  .stat b { font-size: 20px; overflow-wrap: anywhere; }
}
