.app-dialog.vpr-summary-dialog {
  position: fixed !important;
  inset: 0 !important;
  width: max-content;
  min-width: min(740px, calc(100vw - 24px));
  max-width: min(1100px, calc(100vw - 24px));
  height: min(92dvh, 960px);
  max-height: calc(100dvh - 24px);
  margin: auto;
  transform: none !important;
  border-radius: 8px;
  box-sizing: border-box;
}
.vpr-window.vpr-summary-dialog .app-dialog__header,
.vpr-window.vpr-summary-dialog .app-dialog__header:active {
  flex: 0 0 auto;
  cursor: default;
  touch-action: auto;
}
.vpr-summary-dialog .app-dialog__body {
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  min-height: 0;
  padding: 0;
}
.vpr-summary-dialog .app-dialog__body:has(> .vpr-summary-content) {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.vpr-summary-content {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
  padding: 10px 14px 16px;
  overflow: auto;
  overscroll-behavior: contain;
}
.vpr-summary-footer {
  position: relative;
  z-index: 2;
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  min-height: 56px;
  padding: 9px 14px calc(9px + env(safe-area-inset-bottom));
  border-top: 1px solid var(--line, #d6e1ea);
  background: #fff;
  box-shadow: 0 -3px 12px #17334b0d;
}
.vpr-summary-footer .vpr-local-error {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  color: #a72a2a;
}
.vpr-summary-footer .btn { flex: 0 0 auto; }

.vpr-summary-section { padding: 8px 0; border-bottom: 1px solid var(--line); }
.vpr-summary-section:last-child { border-bottom: 0; }
.vpr-summary-section h3 { margin: 0 0 8px; color: #243b53; font-size: 15px; font-weight: 700; }
.vpr-summary-section > .muted { margin: -3px 0 9px; }
.vpr-summary-header-form { display: grid; grid-template-columns: 155px minmax(200px, 330px) auto; align-items: end; gap: 8px; }
.vpr-summary-header-form label, .vpr-row-editor-fields label { display: grid; gap: 5px; color: #445a70; font-size: 12px; font-weight: 650; }
.vpr-summary-header-form .vpr-local-error { grid-column: 1 / -1; }
.vpr-summary-hint { margin: 10px 0; }
.vpr-choice-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 7px 14px; margin-bottom: 10px; }
.vpr-choice-grid .check-row { min-width: 0; overflow-wrap: anywhere; }
.vpr-choice-grid input { flex: 0 0 auto; }
.vpr-inline-controls { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.vpr-inline-controls select { min-width: 200px; max-width: 400px; }
.vpr-summary-section .vpr-local-error { min-height: 1em; margin: 5px 0; color: #a72a2a; }

.vpr-summary-table-wrap {
  max-width: 100%;
  margin: 6px 0;
  overflow-x: auto;
}
.vpr-summary-table,
.vpr-summary-grid {
  width: max-content;
  min-width: 0;
  border-collapse: collapse;
  font-size: 12px;
  line-height: 1.25;
}
.vpr-summary-table th, .vpr-summary-table td,
.vpr-summary-grid th, .vpr-summary-grid td {
  padding: 4px 6px;
  border: 1px solid #d8e3ec;
  vertical-align: middle;
}
.vpr-summary-table thead th,
.vpr-summary-grid thead th {
  background: #edf3f8;
  color: #455e75;
  font-weight: 700;
  text-align: left;
  white-space: nowrap;
}
.vpr-summary-table tbody tr:hover,
.vpr-summary-grid tbody tr:hover { background: #f7fafc; }
.vpr-summary-table tfoot th, .vpr-summary-table tfoot td,
.vpr-summary-grid tfoot th, .vpr-summary-grid tfoot td {
  background: #eaf3fa;
  color: #234869;
  font-weight: 700;
}
.vpr-summary-table .vpr-merged-cell,
.vpr-summary-grid .vpr-merged-cell,
.vpr-summary-grid .vpr-summary-literacy-cell,
.vpr-summary-grid .vpr-summary-subject-cell,
.vpr-summary-grid .vpr-summary-grade-cell { background: #fafcfe; font-weight: 650; }
.vpr-summary-grid .vpr-summary-literacy-cell,
.vpr-summary-table .vpr-summary-literacy-cell {
  min-width: 160px;
  border-left: 3px solid #41627d;
  border-bottom: 3px solid #41627d;
  vertical-align: top;
  font-weight: 750;
}
.vpr-summary-grid .vpr-summary-location-heading { white-space: nowrap; }
.vpr-summary-grid .vpr-summary-location-heading select { display: inline-block; width: auto; min-width: 125px; max-width: 220px; margin-right: 5px; padding: 3px 6px; font-size: 12px; }
.vpr-summary-grid .vpr-summary-location-heading .vpr-summary-remove { margin-left: 5px; }
.vpr-summary-year-notice { margin: 7px 0; color: #8a5b20; font-size: 12px; }
.vpr-summary-grid .vpr-summary-subject-cell,
.vpr-summary-table .vpr-summary-subject-cell { min-width: 140px; vertical-align: top; }
.vpr-summary-grid .vpr-summary-grade-cell,
.vpr-summary-table .vpr-summary-grade-cell { min-width: 65px; vertical-align: top; }
.vpr-summary-grid .vpr-summary-task-cell,
.vpr-summary-table .vpr-summary-task-cell { min-width: 85px; }
.vpr-summary-grid tr.vpr-summary-group-row > *,
.vpr-summary-table tr.vpr-summary-group-row > * { border-top: 3px solid #41627d; }
.vpr-summary-grid tr.vpr-summary-group-end > *,
.vpr-summary-table tr.vpr-summary-group-end > * { border-bottom: 2px solid #41627d; }
.vpr-summary-table .vpr-number,
.vpr-summary-grid .vpr-number { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.vpr-summary-table .vpr-missing,
.vpr-summary-grid .vpr-missing { color: #748393; font-style: italic; }
.vpr-summary-table .vpr-row-action,
.vpr-summary-grid .vpr-row-action { text-align: right; white-space: nowrap; }
.vpr-summary-inline-control { display: inline-flex; align-items: center; gap: 5px; max-width: 100%; }
.vpr-summary-inline-control > select { min-width: 0; max-width: 240px; }
.vpr-summary-add,
.vpr-summary-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 25px;
  height: 25px;
  padding: 0;
  border: 1px solid #b9ccdb;
  border-radius: 4px;
  background: #fff;
  color: #315574;
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
}
.vpr-summary-add:hover,
.vpr-summary-remove:hover { background: #eaf3fa; border-color: #7e9eb8; }
.vpr-summary-remove { color: #9a3440; }
.vpr-summary-remove:hover { background: #fff0f0; border-color: #c6868e; }
.vpr-summary-add:disabled,
.vpr-summary-remove:disabled { opacity: .45; cursor: default; }
.vpr-summary-add:focus-visible,
.vpr-summary-remove:focus-visible { outline: 2px solid #356d9c; outline-offset: 2px; }

.vpr-literacy-card { margin: 8px 0 10px; padding: 8px; border: 2px solid #b6cbdc; border-radius: 6px; background: #fff; }
.vpr-literacy-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 9px; }
.vpr-literacy-heading h4 { margin: 0; color: #243b53; font-size: 14px; font-weight: 700; }
.vpr-row-editor { margin: 10px 0; padding: 12px; border: 1px solid #b5d1e5; border-radius: 6px; background: #f7fbfe; }
.vpr-row-editor h5 { margin: 0 0 10px; font-size: 13px; font-weight: 700; }
.vpr-row-editor-fields { display: grid; grid-template-columns: repeat(4, minmax(135px, 1fr)); gap: 8px; }
.vpr-row-editor .row-actions { margin-top: 8px; }
.vpr-simple-form { display: grid; gap: 13px; }
.vpr-simple-form > label:first-child { display: grid; }
.vpr-simple-form .dialog-actions { margin-top: 2px; }

@media (max-width: 800px) {
  .app-dialog.vpr-summary-dialog {
    width: calc(100vw - 12px);
    min-width: 0;
    max-width: calc(100vw - 12px);
    height: calc(100dvh - 12px);
    max-height: calc(100dvh - 12px);
    border-radius: 7px;
  }
  .vpr-summary-content { padding: 8px 10px 12px; }
  .vpr-summary-footer { padding: 8px 10px calc(8px + env(safe-area-inset-bottom)); }
  .vpr-summary-header-form { grid-template-columns: 1fr 1fr; }
  .vpr-summary-header-form > button { grid-column: 1 / -1; }
  .vpr-row-editor-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
  .vpr-summary-header-form, .vpr-row-editor-fields { grid-template-columns: 1fr; }
  .vpr-inline-controls select, .vpr-inline-controls button { width: 100%; max-width: none; }
  .vpr-literacy-heading { align-items: flex-start; flex-direction: column; }
  .vpr-summary-footer { flex-wrap: wrap; }
  .vpr-summary-footer .vpr-local-error { flex-basis: 100%; }
  .vpr-summary-footer .btn { flex: 1 1 auto; font-size: 12px; }
}
