/* ---------- 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: 1fr; }
  .right-col { flex-direction: row; }
  .right-col > * { flex: 1; }
  }
@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; }
  .sidebar { display: none; }
  .conn { display: none; }
  .search { width: auto; flex: 1; }
  .right-col { flex-direction: column; }
  .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; }
