@media (max-width: 1180px) {
  .status-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .knowledge-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .milestone-track { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 1.2rem; }
}

@media (max-width: 920px) {
  .app-shell { grid-template-columns: 1fr; }
  .sidebar { position: fixed; left: 0; transform: translateX(-104%); width: min(var(--sidebar-width), 86vw); box-shadow: var(--shadow); transition: transform 220ms ease; }
  .sidebar.is-open { transform: translateX(0); }
  .nav-backdrop { position: fixed; inset: 0; z-index: 60; background: rgba(0,0,0,.58); }
  .mobile-menu { display: inline-grid; width: 2.6rem; height: 2.6rem; place-items: center; border: 1px solid var(--border); border-radius: .6rem; background: var(--surface); }
  .global-search { width: auto; flex: 1; }
  .document-layout, .admin-grid { grid-template-columns: 1fr; }
  .document-meta { position: static; }
  .protocol-row { grid-template-columns: 1fr; }
  .login-shell { grid-template-columns: 1fr; }
  .login-panel { min-height: 100vh; border-right: 0; }
  .login-aside { display: none; }
}

@media (max-width: 700px) {
  h1 { font-size: 2rem; }
  .main-content { padding: 1.2rem .85rem 2rem; }
  .topbar { min-height: 4.5rem; padding: .7rem .85rem; }
  .global-search kbd, .theme-control, .width-control { display: none; }
  .global-search input { min-width: 0; }
  .page-head, .dashboard-head { align-items: flex-start; flex-direction: column; }
  .phase-chip { width: 100%; }
  .status-grid, .dashboard-grid, .budget-summary, .preview-summary, .card-grid, .knowledge-grid, .role-columns { grid-template-columns: 1fr; }
  .status-card { min-height: auto; }
  .panel-wide { grid-column: auto; }
  .milestone-track { grid-template-columns: 1fr; gap: 0; }
  .milestone-track li { border-top: 0; border-left: 2px solid var(--border); padding: 0 0 1.2rem 1.2rem; }
  .track-node { top: .15rem; left: -.42rem; }
  .check-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .check-grid > div { border-left: 0; padding: .7rem; background: var(--surface-2); }
  .timeline::before { left: .5rem; }
  .timeline-item { grid-template-columns: 1.2rem minmax(0, 1fr); }
  .timeline-date { grid-column: 2; padding: 0 0 .35rem; text-align: left; }
  .timeline-marker { grid-row: 1 / span 2; }
  .timeline-marker span { margin-top: .25rem; }
  .timeline-content { grid-column: 2; }
  .table-toolbar { align-items: stretch; flex-direction: column; }
  .table-toolbar input { width: 100%; }
  .table-scroll { overflow: visible; }
  table[data-filter-table] thead { display: none; }
  table[data-filter-table], table[data-filter-table] tbody, table[data-filter-table] tr, table[data-filter-table] td { display: block; width: 100%; }
  table[data-filter-table] tr { border-bottom: 1px solid var(--border); padding: .7rem; }
  table[data-filter-table] tr:last-child { border-bottom: 0; }
  table[data-filter-table] td { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); gap: .6rem; border: 0; padding: .32rem; }
  table[data-filter-table] td::before { color: var(--muted); content: attr(data-label); font-size: .7rem; font-weight: 700; text-transform: uppercase; }
  .instruction-process { display: grid; grid-template-columns: repeat(2, 1fr); gap: .7rem; }
  .instruction-process i { display: none; }
  .release-card { grid-template-columns: 1fr; }
  .release-card > div { grid-row: auto; }
  .document-row { grid-template-columns: 3rem minmax(0, 1fr); }
  .document-row .button { grid-column: 1 / -1; }
  .search-page-form { flex-direction: column; }
  .app-footer { flex-direction: column; }
  .login-panel { padding: 7rem 1.2rem 2rem; }
  .login-brand { top: 1.2rem; }
  .toast-stack { inset: calc(env(safe-area-inset-top) + 2px) 2px auto 2px; max-width: none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
