.assignment-progress { margin-bottom: 24px; min-width: 0; scroll-margin-top: 16px; }
.assignment-progress .panel-head p { margin: 8px 0 0; }
.progress-filters { display: grid; grid-template-columns: minmax(140px, 1fr) minmax(200px, 2fr) auto; gap: 16px; align-items: end; margin: 20px 0; }
.progress-filters .field { min-width: 0; margin: 0; }
.progress-filters select { width: 100%; min-width: 0; text-overflow: ellipsis; }
.progress-filters > button { min-height: 44px; }
.progress-title { overflow-wrap: anywhere; }
.progress-summary { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin: 20px 0 14px; }
.progress-summary > div { padding: 14px 12px; border: 1px solid #d4e2e7; background: #f5f9f9; border-radius: 10px; }
.progress-summary strong { display: block; font-size: 26px; color: #12616b; }
.progress-summary span { display: block; margin-top: 4px; color: #526d79; font-size: 14px; }
.progress-note { line-height: 1.7; }
.progress-table-scroll { width: 100%; overflow-x: auto; margin-top: 18px; }
.progress-table { width: 100%; min-width: 700px; border-collapse: collapse; text-align: left; }
.progress-table th, .progress-table td { padding: 15px 12px; border-bottom: 1px solid #e2e9ec; vertical-align: middle; }
.progress-table th { color: #526d79; font-size: 14px; white-space: nowrap; }
.progress-table td:first-child { max-width: 280px; overflow-wrap: anywhere; }
.progress-table small { display: block; color: #647987; margin: 5px 0; }
.progress-table td:not(:first-child) { white-space: nowrap; }
@media (max-width: 700px) {
  .progress-filters { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .progress-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .progress-summary > div { padding: 10px; }
  .progress-summary strong { font-size: 23px; }
}
