/* Semantic layout/component classes used by templates, forms, and app.js. */

.app-page {
  min-height: 100vh;
  color: #0f172a;

}
.app-frame {
  position: relative;
}
.app-header-shell {
  position: sticky;
  top: 0;
  z-index: 40;
  padding: 0;
  border-bottom: 1px solid rgb(226 232 240 / 0.7);
  background-color: #f8fafc;
  pointer-events: auto;
}
.app-header-strip {
  margin-left: auto;
  margin-right: auto;
  max-width: 80rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.5rem 1rem;
}
.app-nav-row {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.375rem;
}
.app-nav-links,
.app-nav-actions {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.375rem;
}
.app-mobile-nav-toggle {
  display: none;
  border: 1px solid #cbd5e1;
  background: #ffffff;
  color: #334155;
  width: 2rem;
  height: 2rem;
  border-radius: 0.375rem;
  align-items: center;
  justify-content: center;
  padding: 0;
}
.app-mobile-nav-toggle .material-symbols-outlined {
  font-size: 1rem;
  line-height: 1;
}
.app-mobile-nav-backdrop {
  display: none;
}
.inline-auth-form {
  display: inline;
}
.toast-stack {
  pointer-events: none;
  position: fixed;
  right: 1rem;
  top: 1rem;
  z-index: 50;
  width: 92vw;
  max-width: 28rem;
}
.toast-stack > :not([hidden]) ~ :not([hidden]) {
  margin-top: 0.5rem;
}
.toast-card {
  pointer-events: auto;
  border-radius: 0.375rem;
  border-width: 1px;
  border-style: solid;
  border-color: #e5e7eb;
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
}
.app-main {
  margin-left: auto;
  margin-right: auto;
  max-width: 80rem;
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 1.75rem;
  padding-bottom: 1.75rem;
}
.app-footer {
  position: relative;
  z-index: 10;
  margin-left: auto;
  margin-right: auto;
  margin-top: 2rem;
  max-width: 80rem;
  padding-left: 1rem;
  padding-right: 1rem;
  padding-bottom: 2rem;
  padding-top: 0.5rem;
  font-size: 0.75rem;
  line-height: 1rem;
  color: #475569;
}
.app-footer-shell {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  border-radius: 0.375rem;
  border-width: 1px;
  border-style: solid;
  border-color: #e5e7eb;
  border-color: #e2e8f0;
  background-color: #ffffff;
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}
.app-footer-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
}
.app-footer-link {
  color: #475569;
  text-decoration-line: underline;
  text-decoration-color: #cbd5e1;
  text-underline-offset: 4px;
}
.app-footer-link:hover {
  color: #0f172a;
}
.is-hidden {
  display: none !important;
}
.modal-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}
.modal-title {
  margin-top: 0.75rem;
  font-size: 1.5rem;
  line-height: 2rem;
  font-weight: 600;
  color: #0f172a;
}
.section-intro {
  margin-top: 0.75rem;
  font-size: 1.25rem;
  line-height: 1.75rem;
  font-weight: 600;
  color: #0f172a;
}
.stack-md {
  margin-top: 1.25rem;
}
.stack-md > :not([hidden]) ~ :not([hidden]) {
  margin-top: 0.75rem;
}
.field-grid {
  margin-top: 1.25rem;
}
.field-grid > :not([hidden]) ~ :not([hidden]) {
  margin-top: 0.75rem;
}
.field-label {
  margin-bottom: 0.375rem;
  display: block;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 400 !important;
  color: #64748b;
}
.actions-row {
  margin-top: 1rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.is-hidden-inline {
  display: none;
}
.sbl-title-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
}
.sbl-launcher-inline {
  margin-top: 0.5rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: #475569;
}
.help-page {
  margin-left: auto;
  margin-right: auto;
  max-width: 72rem;
}
.help-page > :not([hidden]) ~ :not([hidden]) {
  margin-top: 1.5rem;
}
.panel-pad-lg {
  padding: 1.5rem;
}
.page-title {
  margin-top: 0.75rem;
  font-size: 1.5rem;
  line-height: 2rem;
  font-weight: 600;
  letter-spacing: -0.025em;
  color: #0f172a;
}
.page-subtitle {
  margin-top: 0.5rem;
  max-width: 56rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: #334155;
}
.chip-row {
  margin-top: 1.25rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.section-title {
  font-size: 1.25rem;
  line-height: 1.75rem;
  font-weight: 700;
  color: #0f172a;
}
.checklist-grid {
  margin-top: 1rem;
  display: grid;
  gap: 0.75rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: #334155;
}
.help-list-grid {
  margin-top: 1rem;
  display: grid;
  gap: 0.75rem;
}
.help-list-grid:is(ol, ul) {
  padding: 0;
  list-style: none;
}
.help-list-grid > :is(li, div) {
  margin: 0;
}
.help-preflight-grid {
  gap: 0.65rem;
}
.help-preflight-item {
  border-color: #d4dee8;
  border-left: 3px solid #c9dfd1;
  background: #ffffff;
  color: #1f2937;
  font-size: 0.84rem;
  line-height: 1.34;
  padding: 0.82rem 0.92rem;
}
.help-preflight-item strong {
  color: #0f172a;
}
.help-validation-compact .help-preflight-grid {
  gap: 0.6rem;
}
.help-validation-compact .help-preflight-item {
  padding: 0.68rem 0.8rem;
  font-size: 0.8rem;
  line-height: 1.28;
}
.help-validation-compact .help-preflight-item .card-title {
  font-size: 0.9rem;
  line-height: 1.25;
}
.help-validation-compact .help-preflight-item .note-line {
  margin-top: 0.34rem;
}
.help-workflow {
  margin: 0.85rem 0 0;
  padding: 0;
  list-style: none;
  counter-reset: workflow-step;
}
.help-workflow > li {
  position: relative;
  margin: 0;
  padding: 0.1rem 0 0.75rem 2rem;
  font-size: 0.95rem;
  line-height: 1.45;
  color: #334155;
}
.help-workflow > li::before {
  counter-increment: workflow-step;
  content: counter(workflow-step);
  position: absolute;
  left: 0;
  top: 0.02rem;
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 999px;
  border: 1px solid #d8e1ea;
  background: #f8fafc;
  color: #475569;
  font-size: 0.74rem;
  font-weight: 600;
  line-height: 1.3rem;
  text-align: center;
}
.help-workflow > li::after {
  content: "";
  position: absolute;
  left: 0.66rem;
  top: 1.45rem;
  bottom: 0;
  width: 1px;
  background: #e2e8f0;
}
.help-workflow > li:last-child {
  padding-bottom: 0.08rem;
}
.help-workflow > li:last-child::after {
  display: none;
}
.help-guide-switcher-wrap {
  position: static;
}
.help-guide-switcher {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  border: 1px solid #d8e1ea;
  background: #ffffff;
  border-radius: 0.5rem;
  padding: 0.2rem;
}
.help-guide-tab {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  min-height: 1.9rem;
  border-radius: 0.35rem;
  border: 1px solid transparent;
  color: #475569;
  text-decoration: none;
  font-size: 0.78rem;
  font-weight: 600;
  padding: 0.26rem 0.55rem;
}
.help-guide-tab:hover {
  background: #f8fafc;
  color: #334155;
  border-color: #e2e8f0;
}
.help-guide-tab.is-active {
  background: #edf7f1;
  border-color: #d4e9db;
  color: #17633f;
}
.help-guide-tab-icon {
  font-size: 0.86rem;
  line-height: 1;
  color: currentColor;
}
.help-guide-footer-nav {
  margin-top: 1.1rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.help-formula-toolbar {
  margin-top: 0.85rem;
  display: inline-flex;
  align-items: center;
  gap: 0.34rem;
  border: 1px solid #d8e1ea;
  border-radius: 0.5rem;
  background: #ffffff;
  padding: 0.2rem;
}
.help-formula-filter-btn {
  border: 1px solid transparent;
  border-radius: 0.35rem;
  background: transparent;
  color: #475569;
  font-size: 0.76rem;
  font-weight: 600;
  line-height: 1;
  min-height: 1.75rem;
  padding: 0.24rem 0.5rem;
  cursor: pointer;
}
.help-formula-filter-btn:hover {
  background: #f8fafc;
  border-color: #e2e8f0;
  color: #334155;
}
.help-formula-filter-btn.is-active {
  background: #edf7f1;
  border-color: #d4e9db;
  color: #17633f;
}
.help-formula-legend {
  margin-top: 0.6rem;
}
.help-formula-table .mono-inline {
  font-size: 0.78rem;
  line-height: 1.35;
  color: #1f2937;
}
.help-formula-table .chip,
.help-formula-table .school-type-pill {
  white-space: nowrap;
}
.help-formula-table tbody tr[hidden] {
  display: none;
}
.help-metric-strip {
  margin-top: 0;
}
.help-metric-strip .metric-value {
  margin-top: 0.42rem;
}
.checklist-item {
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}
.panel-pad-md {
  padding: 1.25rem;
}
.subsection-title {
  font-size: 1rem;
  line-height: 1.75rem;
  font-weight: 600;
  color: #0f172a;
  margin: 0;
}
.muted-copy {
  margin: 0.25rem 0;
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: #475569;
}
.screenshot-frame {
  margin-top: 1rem;
  overflow: hidden;
  border-radius: 0.375rem;
  border-width: 1px;
  border-style: solid;
  border-color: #e5e7eb;
  border-color: #e2e8f0;
  background-color: #ffffff;
}
.media-full {
  width: 100%;
}
.screenshot-caption {
  border-top-width: 1px;
  border-top-style: solid;
  border-top-color: #e5e7eb;
  border-color: #e2e8f0;
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  font-size: 0.75rem;
  line-height: 1rem;
  color: #64748b;
}
.table-scroll-sm {
  margin-top: 0.75rem;
  overflow-x: auto;
}
.table-min-820 {
  min-width: 820px;
}
.table-align-left {
  text-align: left;
}
.formula-grid {
  margin-top: 1rem;
  display: grid;
  gap: 1rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: #334155;
}
.panel-block {
  padding: 1rem;
}
.card-title {
  font-weight: 600;
  color: #0f172a;
}
.mono-copy {
  margin-top: 0.5rem;
  font-family:
    ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
    "Courier New", monospace;
  font-size: 0.75rem;
  line-height: 1rem;
  color: #1e293b;
}
.detail-note {
  margin-top: 0.5rem;
}
.formula-line {
  margin-top: 0.5rem;
  font-size: 0.75rem;
  line-height: 1rem;
  color: #1e293b;
}
.mono-inline {
  font-family:
    ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
    "Courier New", monospace;
}
.formula-line-tight {
  margin-top: 0.25rem;
  font-size: 0.75rem;
  line-height: 1rem;
  color: #1e293b;
}
.section-note {
  margin-top: 1rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: #475569;
}
.table-scroll-md {
  margin-top: 1rem;
  overflow-x: auto;
}
.table-min-700 {
  min-width: 700px;
}
.mono-inline-strong {
  font-family:
    ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
    "Courier New", monospace;
  font-size: 0.75rem;
  line-height: 1rem;
  color: #1e293b;
}
.table-min-840 {
  min-width: 840px;
}
.meta-copy {
  margin-top: 0.75rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: #475569;
}
.table-min-900 {
  min-width: 900px;
}
.stack-sm {
  margin-top: 1rem;
}
.stack-sm > :not([hidden]) ~ :not([hidden]) {
  margin-top: 0.75rem;
}
.faq-item {
  border-radius: 0.375rem;
  border: 1px solid #d6e0eb;
  background: #ffffff;
  padding: 0;
  overflow: hidden;
  color: #334155;
  transition: border-color 0.14s ease, box-shadow 0.14s ease, background-color 0.14s ease;
}
.faq-item[open] {
  border-color: #c7d5e6;
  background: #fdfefe;
  box-shadow: inset 2px 0 0 #d4e3f3;
}
.faq-summary {
  cursor: pointer;
  display: flex;
  align-items: flex-start;
  gap: 0.35rem;
  padding: 0.72rem 0.86rem;
  font-size: 0.95rem;
  line-height: 1.3;
  font-weight: 600;
  color: #0f172a;
}
.faq-summary::-webkit-details-marker {
  display: none;
}
.faq-summary::before {
  content: "chevron_right";
  font-family: "Material Symbols Outlined";
  font-size: 0.9rem;
  line-height: 1;
  color: #64748b;
  margin-top: 0.14rem;
  flex-shrink: 0;
  transition: transform 0.14s ease, color 0.14s ease;
}
.faq-item[open] .faq-summary::before {
  transform: rotate(90deg);
  color: #334155;
}
.faq-summary:hover {
  background: #f8fafc;
}
.faq-item .detail-note {
  margin: 0;
  padding: 0 0.9rem 0.76rem 2.1rem;
  font-size: 0.84rem;
  line-height: 1.34;
  color: #334155;
}
.bullet-list {
  margin-top: 1rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: #334155;
}
.bullet-list > :not([hidden]) ~ :not([hidden]) {
  margin-top: 0.5rem;
}
.support-copy {
  margin-top: 1.25rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: #475569;
}
.help-resource-section {
  border-color: #d3dde8;
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}
.help-resource-list {
  margin-top: 0.85rem;
  padding-left: 1.12rem;
  font-size: 0.84rem;
  line-height: 1.3;
}
.help-resource-list li::marker {
  color: #667085;
}
.help-resource-section .support-copy {
  margin-top: 0.95rem;
}
.help-resource-section .help-guide-footer-nav {
  margin-top: 0.9rem;
}
.text-link {
  text-decoration-line: underline;
  text-decoration-color: #cbd5e1;
}
.subsection-heading {
  margin-top: 1.25rem;
  font-size: 1rem;
  line-height: 1.5rem;
  font-weight: 600;
  color: #0f172a;
}
.table-min-760 {
  min-width: 760px;
}
.help-fields-table {
  table-layout: fixed;
}
.help-fields-col-field {
  width: 29%;
}
.help-fields-col-represents {
  width: 57%;
}
.help-fields-col-type {
  width: 14%;
}
.help-fields-unified-table .help-fields-col-field {
  width: 27%;
}
.help-fields-unified-table .help-fields-col-represents {
  width: 48%;
}
.help-fields-unified-table .help-fields-col-type {
  width: 11%;
}
.help-fields-col-phase {
  width: 14%;
}
.help-fields-unified-table .school-type-pill {
  white-space: nowrap;
}
.form-grid-two {
  margin-top: 1.5rem;
  display: grid;
  gap: 1rem;
}
.help-phase-grid {
  margin-top: 1rem;
  gap: 0.8rem;
}
.help-phase-card {
  border-color: #d1dbe7;
  background: linear-gradient(180deg, #ffffff 0%, #f9fbfe 100%);
  padding: 0.9rem 1rem;
}
.help-phase-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}
.help-phase-card .subsection-title {
  line-height: 1.35;
}
.help-phase-card .school-type-pill {
  font-size: 0.66rem;
  line-height: 1;
  padding: 0.2rem 0.45rem;
  white-space: nowrap;
}
.help-phase-list {
  margin-top: 0.62rem;
  padding-left: 1.15rem;
  color: #334155;
}
.help-phase-list li::marker {
  color: #6b7280;
}
.help-phase-list strong {
  color: #1e293b;
}
.h3-title {
  font-size: 1rem;
  line-height: 1.5rem;
  font-weight: 600;
  color: #0f172a;
}
.list-compact {
  margin-top: 0.75rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: #334155;
}
.list-compact > :not([hidden]) ~ :not([hidden]) {
  margin-top: 0.5rem;
}
.note-line {
  margin-top: 0.25rem;
}
.steps-grid {
  margin-top: 1rem;
  display: grid;
  gap: 0.75rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: #334155;
}
.page-stack > :not([hidden]) ~ :not([hidden]) {
  margin-top: 1rem;
}
.page-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}
.page-head-main {
  max-width: 48rem;
}
.page-lead {
  margin-top: 0.5rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: #475569;
}
.status-chip-warning {
  margin-top: 0.75rem;
  display: inline-flex;
  align-items: center;
  border-radius: 9999px;
  border-width: 1px;
  border-style: solid;
  border-color: #e5e7eb;
  border-color: #fde68a;
  background-color: #fffbeb;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 600;
  color: #92400e;
}
.button-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.panel-flat {
  padding: 0;
}
.table-scroll {
  overflow-x: auto;
}
.data-input-table-shell {
  margin-top: 0;
  padding: 0;
}
.input-table {
  min-width: 1120px;
  border-collapse: collapse;
  table-layout: auto;
}
.sticky-col-head {
  position: sticky;
  left: 0;
  z-index: 20;
  border-right-width: 1px;
  border-right-style: solid;
  border-right-color: #e5e7eb;
  border-color: #e2e8f0;
  text-align: left;
  background-color: #f7f9fb;
}
.sticky-col-cell {
  position: sticky;
  left: 0;
  z-index: 10;
  border-right-width: 1px;
  border-right-style: solid;
  border-right-color: #e5e7eb;
  border-color: #e2e8f0;
  background-color: #ffffff;
  font-weight: 600;
  color: #1e293b;
}
.data-table tr:nth-child(even) .sticky-col-cell {
  background-color: #fbfcfe;
}
.field-input {
  width: 11rem;
  max-width: 100%;
}
.currency-preview {
  margin-top: 0.375rem;
  min-height: 1.1rem;
  font-size: 11px;
  line-height: 1rem;
  color: #64748b;
}
.panel-footer {
  border-top-width: 1px;
  border-top-style: solid;
  border-top-color: #e5e7eb;
  border-color: #e2e8f0;
  padding-left: 1.25rem;
  padding-right: 1.25rem;
  padding-top: 1rem;
  padding-bottom: 1rem;
}
.panel-footer-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}
.small-muted {
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: #475569;
}
.metric-grid {
  margin-top: 0rem;
  display: grid;
  gap: 0.75rem;
}
.card-head-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}
.section-offset-sm {
  margin-top: 1rem;
}
.split-row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}
.chip-row-sm {
  margin-top: 0.75rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.priority-note {
  margin-top: 0.75rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: #334155;
}
.label-strong {
  font-weight: 600;
}
.empty-state-success {
  border-radius: 0.375rem;
  border-width: 1px;
  border-style: solid;
  border-color: #e5e7eb;
  border-color: #a7f3d0;
  background-color: #ecfdf5;
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 1rem;
  padding-bottom: 1rem;
  color: #064e3b;
}
.empty-state-title {
  font-size: 1rem;
  line-height: 1.5rem;
  font-weight: 600;
}
.empty-state-copy {
  margin-top: 0.25rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
}
.table-min-980 {
  min-width: 980px;
}
.table-align-right {
  text-align: right;
}
.table-align-right-strong {
  text-align: right;
  font-weight: 600;
  color: #1e293b;
}
.panel-center-lg {
  padding: 2rem;
  text-align: center;
}
.center-muted-copy {
  margin-left: auto;
  margin-right: auto;
  margin-top: 0.5rem;
  max-width: 36rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: #475569;
}
.section-offset {
  margin-top: 1.25rem;
}
.dashboard-main {
  padding: 1rem;
}
.dashboard-title {
  margin: 0.75rem 0 0 0;
  font-size: 1.5rem;
  line-height: 2rem;
  font-weight: 600;
  letter-spacing: -0.025em;
  color: #0f172a;
}
.dashboard-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.data-input-action-btn {
  min-height: 1.95rem;
  height: 1.95rem;
  font-size: 0.78rem;
  padding: 0.32rem 0.64rem;
}
.data-input-table-shell .data-table th {
  padding: 0.56rem 0.7rem;
}
.data-input-table-shell .data-table td {
  padding: 0.48rem 0.55rem;
}
.data-input-table-shell .sticky-col-head,
.data-input-table-shell .sticky-col-cell {
  min-width: 14rem;
  width: 14rem;
}
.data-input-table-shell .field-input {
  width: min(8.75rem, 100%);
  min-height: 1.65rem;
  height: 1.65rem;
  padding: 0.18rem 0.4rem;
  font-size: 0.78rem;
  line-height: 1rem;
}
.data-input-table-shell .currency-preview {
  margin-top: 0.22rem;
  min-height: 0.9rem;
  font-size: 0.68rem;
  line-height: 1.05;
}
.data-input-form .panel-footer-row {
  align-items: center;
  justify-content: flex-end;
}
.data-input-form {
  padding: 1rem;
}
.data-input-form .data-input-table-shell {
  margin-top: 0;
}
.data-input-form .panel-footer {
  margin: 1rem -1rem -1rem;
  padding-left: 1rem;
  padding-right: 1rem;
}
.data-input-form .small-muted {
  max-width: 44rem;
}
.data-input-form .panel-footer .btn {
  margin-left: auto;
}
.switcher-form {
  margin-top: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.switcher-field {
  width: 100%;
}
.school-table-shell {
  margin-top: 1rem;
}
.school-card-grid {
  margin-top: 1.25rem;
  display: grid;
  gap: 1rem;
}
.school-card-title {
  font-size: 1rem;
  line-height: 1.5rem;
  font-weight: 700;
  color: #0f172a;
}
.action-row {
  margin-top: 1rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.empty-dashed {
  margin-top: 1rem;
  border-radius: 0.375rem;
  border-width: 1px;
  border-style: solid;
  border-color: #e5e7eb;
  border-style: dashed;
  border-color: #cbd5e1;
  background-color: #f8fafc;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  padding-top: 2rem;
  padding-bottom: 2rem;
  text-align: center;
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: #475569;
}
.panel-center-md {
  padding: 2rem;
  text-align: center;
}
.profile-page {
  margin-left: auto;
  margin-right: auto;
  max-width: 64rem;
}
.profile-page > :not([hidden]) ~ :not([hidden]) {
  margin-top: 1.5rem;
}
.page-stack.profile-page-compact > :not([hidden]) ~ :not([hidden]) {
  margin-top: 0.75rem;
}
.profile-page-compact .panel-pad-md {
  padding: 1rem;
}
.profile-page-compact .profile-grid {
  gap: 0.75rem;
}
.profile-page-compact .panel-block {
  padding: 0.8rem;
}
.profile-page-compact .badge-offset {
  margin-top: 0.45rem;
}
.profile-page-compact .section-offset-sm {
  margin-top: 0.6rem;
}
.profile-page-compact .action-row {
  margin-top: 0.6rem;
}
.value-strong {
  margin-top: 0.5rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 600;
  color: #0f172a;
}
.badge-offset {
  margin-top: 0.75rem;
}
.detail-copy {
  margin-top: 0.5rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: #334155;
}
.profile-grid {
  margin-top: 1rem;
  display: grid;
  gap: 1rem;
}
.auth-shell {
  margin-left: auto;
  margin-right: auto;
  max-width: 52rem;
}
.auth-panel-pad {
  padding: 1.25rem;
}
.auth-copy {
  margin: 0.35rem 0;
  color: #475569;
  font-size: 0.875rem;
  line-height: 1.25rem;
}
.auth-info-box {
  margin-top: 1rem;
  border-radius: 0.375rem;
  border: 1px solid #dbe3ea;
  background-color: #f8fafb;
  padding: 0.8rem 0.9rem;
  font-size: 0.8rem;
  line-height: 1.2rem;
  color: #475569;
}
.auth-narrow {
  margin-left: auto;
  margin-right: auto;
  max-width: 36rem;
}
.auth-title {
  margin: 0;
  font-size: 1.5rem;
  line-height: 2rem;
  font-weight: 600;
  color: #0f172a;
}
.auth-wide {
  margin-left: auto;
  margin-right: auto;
  max-width: 72rem;
}
.auth-split-grid {
  display: grid;
  gap: 1rem;
}
.auth-hero-card {
  padding: 1.25rem;
  border-color: #d7dee6;
  background: #f8fafb;
  box-shadow: none;
}
.auth-hero-title {
  margin: 0.75rem 0 0 0;
  font-size: 1.5rem;
  line-height: 2rem;
  font-weight: 600;
  letter-spacing: -0.025em;
  color: #0f172a;
}
.auth-gap-lg {
  margin-top: 1rem;
}
.auth-form-card {
  padding: 1.25rem;
}
.auth-form-stack > :not([hidden]) ~ :not([hidden]) {
  margin-top: 1rem;
}
.auth-feature-list {
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.56rem;
}
.auth-hero-card .auth-feature-item {
  margin: 0;
  padding: 0.66rem 0.75rem;
  border: 1px solid #dde5eb;
  border-radius: 0.375rem;
  background: #ffffff;
  color: #344054;
  font-size: 0.84rem;
  line-height: 1.28;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: start;
  gap: 0.5rem;
  box-shadow: none;
  transition: none;
}
.auth-hero-card .auth-feature-item:hover {
  transform: none;
  border-color: #dde5eb;
  box-shadow: none;
}
.auth-hero-card .auth-feature-icon {
  font-size: 0.86rem;
  color: #64748b;
  margin-top: 0.08rem;
  width: 1rem;
  height: 1rem;
  border-radius: 0;
  background: transparent;
  border: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: none;
  flex-shrink: 0;
}

.auth-hero-card .auth-feature-item > .auth-feature-text {
  margin: 0;
  display: block;
  min-width: 0;
  align-self: center;
}

.form-error-box {
  border-radius: 0.375rem;
  border: 1px solid #f5c5c0;
  background-color: #fef3f2;
  padding: 0.66rem 0.75rem;
  font-size: 0.8rem;
  line-height: 1.2rem;
  color: #b42318;
}
.form-tip-box {
  border-radius: 0.375rem;
  border: 1px solid #dde5ee;
  background-color: #f9fbfe;
  padding: 0.66rem;
}
.auth-links-row {
  margin-top: 1rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  font-size: 0.8rem;
  line-height: 1.2rem;
}
.text-link-strong {
  font-weight: 500;
  color: #475467;
  text-decoration-line: underline;
  text-decoration-color: #d0d5dd;
  text-underline-offset: 4px;
}
.text-link-strong:hover {
  color: #0f172a;
}
.text-link-muted {
  color: #667085;
  text-decoration-line: underline;
  text-decoration-color: #d0d5dd;
  text-underline-offset: 4px;
}
.text-link-muted:hover {
  color: #0f172a;
}
.auth-page-title {
  margin: 0.75rem 0 0 0;
  font-size: 1.5rem;
  line-height: 2rem;
  font-weight: 600;
  letter-spacing: -0.025em;
  color: #0f172a;
}
.auth-two-col {
  margin-top: 1rem;
  display: grid;
  gap: 1rem;
}
.auth-form-stack-sm > :not([hidden]) ~ :not([hidden]) {
  margin-top: 0.8rem;
}
.auth-email-card {
  padding: 0.95rem;
}
.auth-email-card > :not([hidden]) ~ :not([hidden]) {
  margin-top: 0.66rem;
}
.auth-info-row {
  border-radius: 0.375rem;
  border: 1px solid #dbe3ea;
  background-color: #ffffff;
  padding: 0.66rem;
}
.auth-reset-title {
  margin: 0;
  font-size: 1.5rem;
  line-height: 2rem;
  font-weight: 600;
  letter-spacing: -0.025em;
  color: #0f172a;
}
.auth-form-flow {
  margin-top: 1rem;
}
.auth-form-flow > :not([hidden]) ~ :not([hidden]) {
  margin-top: 0.9rem;
}
.auth-setup-shell {
  margin-left: auto;
  margin-right: auto;
  max-width: 64rem;
}
.auth-qr-card {
  margin-left: auto;
  margin-right: auto;
  height: 14rem;
  width: 14rem;
  border-radius: 0.5rem;
  border: 1px solid #dbe3ea;
  background-color: #ffffff;
  padding: 0.66rem;
}
.auth-summary {
  cursor: pointer;
  font-weight: 600;
  color: #1f2937;
}
.auth-secret-code {
  margin-top: 0.75rem;
  word-break: break-all;
  border-radius: 0.375rem;
  border: 1px solid #dde5ee;
  background-color: #f9fbfe;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  font-family:
    ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
    "Courier New", monospace;
  font-size: 0.75rem;
  line-height: 1rem;
  color: #334155;
}
.auth-label {
  display: block;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 400;
  color: #64748b;
}
.auth-warning-box {
  margin-top: 1.25rem;
  border-radius: 0.375rem;
  border: 1px solid #efd3ad;
  background-color: #fdf8ef;
  padding: 0.85rem 0.95rem;
}
.auth-warning-title {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 600;
  color: #92400e;
}
.auth-code-grid {
  margin-top: 0.5rem;
  display: grid;
  gap: 0.35rem;
  padding-left: 1rem;
  font-family:
    ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
    "Courier New", monospace;
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: #92400e;
}
.signup-grid {
  display: grid;
  gap: 0.9rem;
}
.signup-hint {
  margin-top: 0.25rem;
  font-size: 0.75rem;
  line-height: 1rem;
  color: #64748b;
}
.consent-row {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  border-radius: 0.375rem;
  border-width: 1px;
  border-style: solid;
  border-color: #e5e7eb;
  border-color: #e2e8f0;
  background-color: #f8fafc;
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: #334155;
}
.consent-checkbox-offset {
  margin-top: 0.125rem;
}
.consent-copy {
  line-height: 1.5rem;
}
.school-form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding-top: 0.5rem;
}
.overview-hero-meta {
  margin: 0;
}
.overview-hero-row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.75rem;
}
.overview-hero-info {
  display: flex;
  flex-direction: column;
}
.overview-kicker-row {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.overview-back-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.45rem;
  height: 1.45rem;
  border-radius: 0.25rem;
  color: #667085;
  text-decoration: none;
}
.overview-back-link:hover {
  color: #475467;
}
.overview-back-link .material-symbols-outlined {
  font-size: 0.9rem;
  line-height: 1;
}
.data-input-hero .overview-hero-info {
  min-width: 0;
  max-width: 50rem;
}
.data-input-hero .overview-hero-row {
  align-items: flex-start;
}
.data-input-hero .overview-hero-actions {
  align-items: flex-start;
  justify-content: flex-start;
}
.data-input-hero .dashboard-title {
  margin-top: 0.55rem;
}
.overview-hero-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: flex-end;
  gap: 0.5rem;
}
.inline-form-auto {
  width: auto;
}
.overview-benchmark-form {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.25rem;
}
.overview-benchmark-field {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.2rem;
}
.overview-benchmark-form .field-label {
  margin-bottom: 0;
}
.overview-benchmark-select {
  min-width: 14rem;
  min-height: 1.82rem;
  height: 1.82rem;
  padding-top: 0.18rem;
  padding-bottom: 0.18rem;
  font-size: 0.8rem;
}
.overview-layout {
  display: grid;
  gap: 0.5rem;
  align-items: start;
}
.overview-page-stack > :not([hidden]) ~ :not([hidden]) {
  margin-top: 0.5rem;
}
.overview-metric-strip {
  margin-top: 0;
  gap: 0.5rem;
}
.page-stack > .overview-metric-strip + .overview-layout {
  margin-top: 0.5rem;
}
.overview-metric-label-row {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  white-space: nowrap;
}
.overview-metric-icon {
  display: inline-flex;
  font-size: 0.84rem;
  color: #667085;
  flex-shrink: 0;
}
.overview-metric-strip .metric-card {
  border: 1px solid #d0d5dd;
  background-color: #ffffff;
  box-shadow: none;
  padding: 0.75rem;
}
.overview-metric-strip .metric-label {
  display: inline;
  margin: 0;
  font-size: 0.72rem;
  line-height: 1.1rem;
  font-weight: 500;
  color: #667085;
}
.overview-metric-strip .metric-value {
  margin: 0.5rem 0 0.25rem 0;
  font-size: 1.125rem;
  line-height: 1.25;
  font-weight: 550;
  color: #1f2937;
}
.overview-main-column {
  min-width: 0;
  align-self: start;
}
.overview-timeline-card {
  padding: 0.95rem;
  padding-top: 1rem;
  padding-bottom: 1rem;
}
.overview-timeline-card .split-row {
  align-items: flex-start;
}
.overview-timeline-heading {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}
.overview-timeline-heading-icon {
  font-size: 0.95rem;
  line-height: 1;
  color: #667085;
  flex-shrink: 0;
}
.overview-timeline-header-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.45rem;
}
.overview-inline-central-year-form {
  margin: 0;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.38rem;
  min-width: 0;
  flex: 0 0 auto;
}
.overview-inline-central-year-label {
  margin-bottom: 0;
  white-space: nowrap;
  font-size: 0.72rem;
  line-height: 1;
}
.overview-inline-central-year-select {
  width: min(12rem, 100%);
  min-width: 9.75rem;
  max-width: 12rem;
  min-height: var(--control-height);
  height: var(--control-height);
  padding-top: 0.3rem;
  padding-bottom: 0.3rem;
  padding-right: 2.1rem;
  font-size: 0.82rem;
  line-height: 1.25rem;
}
.overview-timeline-card .data-table th {
  padding-top: 0.42rem;
  padding-bottom: 0.42rem;
}
.overview-timeline-card .data-table td {
  padding-top: 0.46rem;
  padding-bottom: 0.46rem;
}
.overview-timeline-table {
  min-width: 560px;
}
.overview-timeline-detail {
  margin: 0;
  font-size: 0.75rem;
  line-height: 1rem;
  color: #475569;
}
.overview-timeline-footnote {
  margin: 0.52rem 0 0;
  font-size: 0.69rem;
  line-height: 1.05;
  color: #6b7280;
  text-align: right;
}
.overview-side-stack > :not([hidden]) ~ :not([hidden]) {
  margin-top: 1rem;
}
.overview-side-stack {
  align-self: start;
}
.overview-guidance-card {
  padding: 0.95rem;
  border: 1px solid #d7dee6;
  background: #ffffff;
}
.overview-guidance-header {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
}
.overview-guidance-header-icon {
  font-size: 0.95rem;
  line-height: 1;
  color: #667085;
  margin-top: 0.28rem;
  flex-shrink: 0;
}
.overview-guidance-intro {
  margin-top: 0.12rem;
  font-size: 0.76rem;
  line-height: 1.2;
  color: #667085;
}
.overview-guidance-list {
  list-style: none;
  margin: 0.6rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.45rem;
}
.overview-guidance-item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: flex-start;
  gap: 0.45rem;
  border-radius: var(--radius-sm);
  border: 1px solid #dde5eb;
  background: #ffffff;
  padding: 0.58rem 0.62rem;
}
.overview-guidance-item-icon {
  font-size: 0.82rem;
  line-height: 1;
  color: #3e5f86;
  margin-top: 0.16rem;
  flex-shrink: 0;
}
.overview-guidance-item-copy {
  font-size: 0.78rem;
  line-height: 1.24;
  color: #344054;
}
.overview-premium-card {
  border: 1px solid #d3dde8;
  background: linear-gradient(180deg, #f9fbff 0%, #f3f8ff 100%);
}
.overview-premium-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.5rem;
}
.overview-premium-heading {
  display: flex;
  align-items: flex-start;
  gap: 0.45rem;
}
.overview-premium-heading-icon {
  font-size: 0.94rem;
  line-height: 1;
  color: #325c88;
  margin-top: 0.3rem;
  flex-shrink: 0;
}
.overview-premium-card .premium-teaser-list {
  margin-top: 0.62rem;
  grid-template-columns: 1fr;
  gap: 0.5rem;
}
.overview-premium-row {
  align-self: start;
}
.overview-premium-card .premium-teaser-item {
  min-height: 0;
  padding: 0.62rem 0.7rem;
  gap: 0.42rem;
  border-color: #ccd9e8;
  box-shadow: 0 1px 0 rgba(15, 23, 42, 0.03);
}
.overview-premium-card .premium-teaser-item-head {
  align-items: center;
  gap: 0.42rem;
}
.overview-premium-card .premium-teaser-item-title {
  font-size: 0.79rem;
  line-height: 1.2;
}
.overview-premium-card .premium-feature-icon {
  font-size: 0.9rem;
  color: #355f8e;
}
.overview-premium-card .premium-teaser-item-copy {
  font-size: 0.72rem;
  line-height: 1.24;
  color: #475569;
}
.overview-premium-item-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.45rem;
}
.overview-premium-card .premium-teaser-item-cta {
  font-size: 0.68rem;
  line-height: 1;
  color: #1e6542;
  margin-top: 0;
}
.overview-premium-card .premium-lock-chip {
  font-size: 0.64rem;
  padding: 0.2rem 0.45rem;
}
.overview-premium-card .premium-teaser-item:hover {
  border-color: #aac0dc;
  background: #f8fbff;
  box-shadow: 0 0 0 1px rgba(53, 95, 142, 0.08);
}
.overview-premium-card .premium-teaser-item:focus-visible {
  outline: none;
  border-color: #3f73ab;
  box-shadow: 0 0 0 3px rgba(63, 115, 171, 0.2);
}
.overview-premium-card .premium-teaser-item:active {
  background: #f4f8fd;
}
.benchmark-select {
  min-width: 14rem;
}
.benchmark-submit {
  margin-top: 0.5rem;
  width: 100%;
}
.billing-title {
  font-size: 1.5rem;
  line-height: 2rem;
  font-weight: 600;
  color: #0f172a;
}
.billing-required-title {
  margin-top: 0.75rem;
  font-size: 1.5rem;
  line-height: 2rem;
  font-weight: 600;
  color: #0f172a;
}
.billing-required-copy {
  margin-left: auto;
  margin-right: auto;
  margin-top: 0.75rem;
  max-width: 36rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: #475569;
}
.billing-shell {
  margin-left: auto;
  margin-right: auto;
  max-width: 56rem;
}
.billing-details-grid {
  margin-top: 1.5rem;
  display: grid;
  gap: 0.75rem;
}
.billing-actions {
  margin-top: 1.5rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}
.field-control-consent {
  width: 100%;
  border-radius: 0.375rem;
  border-width: 1px;
  border-style: solid;
  border-color: #e5e7eb;
  border-color: #cbd5e1;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.field-control {
  width: 100%;
  border-radius: 0.375rem;
  border-width: 1px;
  border-style: solid;
  border-color: #e5e7eb;
  border-color: #cbd5e1;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.field-control-select {
  width: 100%;
  border-radius: 0.375rem;
  border-width: 1px;
  border-style: solid;
  border-color: #e5e7eb;
  border-color: #cbd5e1;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.toast-card-base {
  pointer-events: auto;
  border-radius: 0.375rem;
  border-width: 1px;
  border-style: solid;
  border-color: #e5e7eb;
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
}
.toast-error {
  border-color: #fecaca;
  background-color: #fef2f2;
  color: #991b1b;
}
.toast-default {
  border-color: #e2e8f0;
  background-color: #ffffff;
  color: #1e293b;
}
.toast-warning {
  border-color: #fde68a;
  background-color: #fffbeb;
  color: #92400e;
}
.toast-success {
  border-color: #a7f3d0;
  background-color: #ecfdf5;
  color: #065f46;
}
.currency-error {
  color: #dc2626;
}
.currency-valid {
  color: #047857;
}
.no-scroll {
  overflow: hidden;
}
.app-nav-open {
  overflow: hidden;
}

@media (max-width: 767px) {
  .app-header-strip {
    position: relative;
    align-items: center;
    justify-content: center;
    gap: 0;
  }
  .app-brand {
    margin: 0 auto;
  }
  .app-mobile-nav-toggle {
    display: inline-flex;
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
    z-index: 92;
  }
  .app-mobile-nav-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    border: 0;
    background: rgba(15, 23, 42, 0.42);
    opacity: 0;
    pointer-events: none;
    z-index: 88;
    transition: opacity 0.16s ease;
  }
  .app-mobile-nav-backdrop.is-open {
    opacity: 1;
    pointer-events: auto;
  }
  .app-nav-row {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 90;
    width: min(18rem, 86vw);
    height: 100vh;
    padding: 1rem;
    border-left: 1px solid #d8e1ea;
    background: #ffffff;
    box-shadow: -8px 0 28px rgba(15, 23, 42, 0.18);
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0.7rem;
    transform: translateX(100%);
    visibility: hidden;
    pointer-events: none;
    transition: transform 0.16s ease, visibility 0s linear 0.16s;
  }
  .app-nav-row.is-open {
    display: flex;
    transform: translateX(0);
    visibility: visible;
    pointer-events: auto;
    transition: transform 0.16s ease;
  }
  .app-nav-links,
  .app-nav-actions {
    width: 100%;
    justify-content: flex-start;
    align-items: stretch;
    flex-direction: column;
  }
  .app-nav-actions {
    gap: 0.4rem;
  }
  .app-header-strip .inline-auth-form {
    display: flex;
  }
  .app-nav-actions .btn,
  .app-nav-actions .inline-auth-form .btn,
  .app-nav-links .nav-link {
    width: 100%;
    justify-content: flex-start;
  }
  .app-header-strip .btn {
    min-height: 2.1rem;
  }
  .table-scroll,
  .table-scroll-sm,
  .table-scroll-md {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .overview-hero-row {
    align-items: flex-start;
  }
  .overview-hero-actions {
    width: 100%;
    justify-content: flex-start;
    align-items: stretch;
  }
  .overview-hero-actions > * {
    max-width: 100%;
  }
  .overview-benchmark-form,
  .overview-benchmark-field {
    width: 100%;
    align-items: stretch;
  }
  .overview-benchmark-select,
  .overview-hero-actions .benchmark-select {
    min-width: 0;
    width: 100%;
    max-width: 100%;
  }
  .overview-inline-central-year-form {
    width: 100%;
    flex: 1 1 100%;
    flex-wrap: wrap;
    align-items: stretch;
    justify-content: flex-start;
  }
  .overview-inline-central-year-label {
    white-space: normal;
  }
  .overview-inline-central-year-select {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }
  .help-guide-switcher-wrap {
    width: 100%;
  }
  .help-guide-switcher,
  .help-formula-toolbar {
    display: flex;
    width: 100%;
    flex-wrap: wrap;
  }
  .help-guide-tab {
    flex: 1 1 10rem;
    min-width: 0;
    justify-content: center;
    text-align: center;
  }
  .help-formula-filter-btn {
    flex: 1 1 6.5rem;
    min-width: 0;
  }
  .data-input-table-shell .sticky-col-head,
  .data-input-table-shell .sticky-col-cell {
    min-width: 10.5rem;
    width: 10.5rem;
  }
  .data-input-table-shell .field-input {
    width: min(7.25rem, 100%);
  }
  .data-input-table-shell .data-table th,
  .data-input-table-shell .data-table td {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
  }
}

@media (max-width: 440px) {
  .app-nav-row {
    width: min(17rem, 92vw);
    padding: 0.85rem;
  }
  .overview-premium-item-meta {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (min-width: 1024px) {
  .metric-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .auth-split-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  .auth-hero-card {
    grid-column: span 2 / span 2;
  }
  .auth-form-card {
    grid-column: span 3 / span 3;
  }
  .auth-two-col {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .overview-layout {
    grid-template-columns: repeat(10, minmax(0, 1fr));
    align-items: stretch;
  }
  .overview-main-column {
    grid-column: span 7 / span 7;
    align-self: stretch;
    display: flex;
    flex-direction: column;
  }
  .overview-main-column .school-table-shell {
    flex: 1;
  }
  .overview-side-stack {
    grid-column: span 3 / span 3;
    align-self: stretch;
    display: flex;
  }
  .overview-side-stack .overview-guidance-card {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
  }
  .overview-side-stack .overview-guidance-list {
    margin-top: 0.7rem;
    flex: 1;
  }
  .overview-premium-row {
    grid-column: 1 / -1;
  }
  .overview-premium-row .premium-teaser-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 1280px) {
  .school-card-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 640px) {
  .metric-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .overview-metric-strip {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .benchmark-submit {
    width: auto;
  }
  .overview-premium-row .premium-teaser-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .overview-timeline-header-actions {
    justify-content: flex-end;
  }
}

@media (min-width: 768px) {
  .app-header-strip {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
  .app-nav-row {
    gap: 0.5rem;
  }
  .app-main {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
  }
  .app-footer {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
  .app-footer-shell {
    flex-direction: row;
    align-items: center;
  }
  .section-intro {
    font-size: 1.5rem;
    line-height: 2rem;
  }
  .field-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 0.75rem;
    row-gap: 0.75rem;
  }
  .field-grid > :not([hidden]) ~ :not([hidden]) {
    margin-top: 0;
  }
  .panel-pad-lg {
    padding: 2rem;
  }
  .page-title {
    font-size: 1.5rem;
    line-height: 2rem;
  }
  .page-subtitle {
    font-size: 1rem;
    line-height: 1.5rem;
  }
  .checklist-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .help-list-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .panel-pad-md {
    padding: 1.5rem;
  }
  .formula-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .form-grid-two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .page-lead {
    font-size: 1rem;
    line-height: 1.5rem;
  }
  .status-chip-warning {
    font-size: 0.875rem;
    line-height: 1.25rem;
  }
  .panel-footer {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
  .panel-center-lg {
    padding: 2.5rem;
  }
  .dashboard-main {
    padding: 0rem;
  }
  .dashboard-title {
    font-size: 1.5rem;
    line-height: 2rem;
  }
  .switcher-form {
    flex-direction: row;
    align-items: flex-end;
  }
  .switcher-field {
    max-width: 28rem;
  }
  .school-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .profile-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .auth-panel-pad {
    padding: 1.5rem;
  }
  .auth-hero-card {
    padding: 1.5rem;
  }
  .auth-form-card {
    padding: 1.5rem;
  }
  .auth-code-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .signup-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .span-2-md {
    grid-column: span 2 / span 2;
  }
  .school-form-actions {
    grid-column: span 2 / span 2;
  }
  .overview-benchmark-form {
    flex-shrink: 0;
    flex-direction: row;
    align-items: flex-end;
    gap: 0.35rem;
  }
  .overview-benchmark-field {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.2rem;
  }
  .overview-benchmark-form .field-label {
    margin: 0;
  }
  .overview-hero-actions {
    margin-left: auto;
    align-items: flex-end;
  }
  .overview-hero-row {
    flex-wrap: nowrap;
    align-items: flex-end;
  }
  .overview-timeline-card {
    padding: 1.1rem;
  }
  .overview-guidance-card {
    padding: 1.1rem;
  }
  .data-input-hero .overview-hero-row {
    flex-wrap: nowrap;
    align-items: flex-end;
  }
  .data-input-hero .overview-hero-info {
    max-width: 52rem;
  }
  .data-input-hero .overview-hero-actions {
    align-items: flex-end;
    justify-content: flex-end;
  }
  .billing-title {
    font-size: 1.5rem;
    line-height: 2rem;
  }
  .billing-required-title {
    font-size: 1.5rem;
    line-height: 2rem;
  }
  .billing-details-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
