button.menu-btn { display: none; }

.data-table .progress { max-width: 140px; margin-top: 6px; }

@media (max-width: 1100px) {
  .kpis, .kpis-compact, .kpis-compact.kpis-four, .track-grid, .mini-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .split, .detail-head, .overview, .dependency-grid { grid-template-columns: 1fr; }
  .detail-side { text-align: left; }
}

@media (max-width: 860px) {
  button.menu-btn { display: inline-flex; }
  .sidebar {
    position: fixed;
    z-index: 4;
    transform: translateX(-105%);
    transition: transform .2s ease;
  }
  .sidebar.is-open { transform: none; }
  .topbar, main, .banner { padding-left: 16px; padding-right: 16px; }
  .banner { margin-left: 16px; margin-right: 16px; }
  .topbar { align-items: flex-start; flex-wrap: wrap; position: static; background: white; }
  .topbar-meta { width: 100%; order: 3; margin-left: 0; }
  .session-box { margin-left: auto; padding-left: 0; border-left: 0; }
  .project-grid, .card-grid { grid-template-columns: 1fr; }
  .hero { display: block; }
  .brand { text-align: left; margin-top: 16px; }
  .bar-row { grid-template-columns: 1fr; }
  .section-head { display: block; }
  .login-split { display: block; }
  .login-visual { display: none; }
  .login-panel { width: auto; min-height: 100vh; padding: 24px; }
  .login-logo-mobile { display: block; }
  .gantt-head, .gantt-row, .gantt-axis { grid-template-columns: 1fr; }
  .gantt-head-track { display: none; }
  .gantt-row-label { padding-bottom: 2px; background: transparent; }
  .gantt-row-track, .gantt-axis-track { border-left: 0; padding-top: 2px; }
  .gantt-row-project .gantt-row-label { background: transparent; }
  .gantt-row-project { background: #eef6fd; }
  .gantt-axis-label { padding-bottom: 0; }
  .print-intro { flex-direction: column; align-items: stretch; }
}

@media (max-width: 560px) {
  .kpis, .kpis-compact, .kpis-compact.kpis-four, .track-grid, .mini-kpis { grid-template-columns: 1fr; }
  .hero h2 { font-size: 26px; }
  .kpi-value, .percent { font-size: 28px; }
  .kpi-value.kpi-value-text { font-size: 18px; }
  .session-select { min-width: 0; max-width: 150px; }
  .session-client .session-label { display: none; }
  .gantt-axis-tick:nth-child(odd):not(:nth-child(2)) em { visibility: hidden; }
  .schedule-summary { gap: 10px 20px; }
}
