.school-opening-quote {
  margin: 1rem 0;
  padding: 1rem 1.15rem;
  border: 0;
  border-left: 5px solid var(--blue);
  background: #eef4f8;
}

.school-opening-quote p {
  margin: 0 0 .45rem;
  color: var(--navy);
  font: 700 1.12rem/1.4 Georgia, 'Times New Roman', serif;
}

.school-opening-quote cite {
  font-style: normal;
  font-size: .82rem;
}

.school-answer {
  border-left-color: #28643a;
  background: #eef7f0;
}

.school-definitions,
.school-state-stages,
.school-number-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(210px,1fr));
  gap: .65rem;
  margin: .9rem 0;
}

.school-definition,
.school-state-stages article,
.school-number-grid article {
  padding: .8rem;
  border: 1px solid var(--line);
  border-top: 4px solid var(--blue);
  border-radius: .4rem;
  background: #fff;
}

.school-definition h4,
.school-state-stages strong,
.school-number-grid span,
.school-number-grid strong,
.school-number-grid small {
  display: block;
}

.school-definition p,
.school-state-stages p {
  margin: .3rem 0 0;
}

.school-number-grid span,
.school-number-grid small {
  color: var(--muted);
}

.school-number-grid strong {
  margin: .2rem 0;
  color: var(--navy);
  font-size: 1.45rem;
}

.school-deadline {
  display: grid;
  grid-template-columns: minmax(280px,.8fr) minmax(300px,1.2fr);
  gap: 1rem;
  margin: 1rem 0;
  padding: 1rem;
  border: 1px solid var(--line);
  border-left: 5px solid var(--green);
  border-radius: .45rem;
  background: #f7fbf8;
}

.school-deadline label,
.school-deadline input,
.school-deadline button,
.school-deadline output {
  display: block;
  width: 100%;
  box-sizing: border-box;
}

.school-deadline input,
.school-deadline button {
  margin-top: .5rem;
  min-height: 2.4rem;
  border-radius: .35rem;
  font: inherit;
}

.school-deadline input {
  padding: .45rem .6rem;
  border: 1px solid var(--line);
}

.school-deadline button {
  border: 0;
  background: var(--navy);
  color: #fff;
  font-weight: 800;
  cursor: pointer;
}

.school-deadline output {
  padding: .8rem;
  background: #fff;
  border-radius: .35rem;
}

.school-law summary,
.school-unknown summary,
.school-step summary {
  display: grid;
  align-items: center;
  gap: .75rem;
}

.school-law summary,
.school-unknown summary {
  grid-template-columns: minmax(220px,1fr) auto;
}

.school-law summary small,
.school-step summary small {
  display: block;
  margin-top: .2rem;
  color: var(--muted);
  font-weight: 500;
}

.school-step summary {
  grid-template-columns: 2rem minmax(240px,1fr) minmax(160px,auto);
}

.school-order {
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  color: #fff;
  background: var(--navy);
  font-size: .78rem;
}

.school-purpose {
  padding-left: .75rem;
  border-left: 4px solid var(--blue);
  font-size: .98rem;
}

.school-record-grid,
.school-assessment-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 1rem;
}

.school-record-grid section,
.school-assessment-grid section {
  min-width: 0;
}

.school-record-grid .source-state {
  grid-template-columns: minmax(130px,.65fr) minmax(180px,1.35fr);
}

.school-callouts {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: .6rem;
  margin: .9rem 0;
}

.school-callouts p {
  margin: 0;
  padding: .7rem;
  border-radius: .35rem;
  background: var(--soft);
  font-size: .85rem;
}

.school-overview {
  padding: .75rem;
  border: 1px solid var(--line);
  border-radius: .45rem;
  background: #fafbfd;
}

.school-start-card {
  margin: 1rem 0;
  padding: 1rem;
  border: 1px solid var(--line);
  border-left: 5px solid var(--blue);
  border-radius: .45rem;
  background: #f7fafc;
}

.school-start-card p { margin: .35rem 0; }

.school-primary-link {
  display: inline-block;
  padding: .5rem .75rem;
  border-radius: .35rem;
  background: var(--navy);
  color: #fff;
  font-weight: 800;
  text-decoration: none;
}

.school-version-table,
.school-source-table { min-width: 1050px; }

.school-assessment-grid table { min-width: 680px; }

.school-total td {
  font-weight: 800;
  background: #eef4f8;
}

#school [id] { scroll-margin-top: 8rem; }
#school [id]:focus { outline: 3px solid var(--blue); outline-offset: 3px; }

@media (max-width: 920px) {
  .school-record-grid,
  .school-assessment-grid,
  .school-deadline { grid-template-columns: 1fr; }
  .school-callouts { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 620px) {
  .school-opening-quote p { font-size: 1rem; }
  .school-law summary,
  .school-unknown summary { grid-template-columns: 1fr; }
  .school-step summary { grid-template-columns: 2rem 1fr; }
  .school-step summary .badge { grid-column: 1 / -1; }
  .school-record-grid .source-state { grid-template-columns: 1fr; }
  .school-callouts { grid-template-columns: 1fr; }
  #school [id] { scroll-margin-top: 5rem; }
}

@media print {
  .school-deadline,
  .school-record-grid,
  .school-assessment-grid,
  .school-callouts { display: block; }
  .school-deadline button,
  .school-deadline input { display: none; }
  .school-definition,
  .school-state-stages article,
  .school-number-grid article,
  .school-step,
  .school-law { break-inside: avoid; margin: .35rem 0; }
}
