/* The familiar offline workbench, without importing offline data mutation APIs. */
[hidden]  {
  display: none !important;
}

.login-mode-tabs  {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-8px);
  margin: var(--space-18px-0);
}

.login-mode-tabs > *  {
  padding: var(--space-10px-12px);
  border: 1px solid var(--palette-cddde5);
  border-radius: var(--radius-10px);
  background: var(--palette-f6fafb);
  color: var(--palette-496779);
  font: inherit;
  text-decoration: none;
}

.login-mode-tabs .active  {
  color: var(--palette-ffffff);
  background: var(--palette-087e75);
  border-color: var(--palette-087e75);
}

.assistant-access-card  {
  width: min(560px,calc(100% - 28px));
  margin: var(--space-28px-auto-60px);
  border: 1px solid var(--palette-d8e5ec);
  border-radius: var(--radius-22px);
  padding: var(--space-30px);
  background: var(--palette-ffffff);
  box-shadow: var(--shadow-0-12px-40px-var-palette-10384612);
}

.assistant-access-card h2  {
  color: var(--palette-153d52);
  margin: var(--space-10px-0);
  font-size: var(--font-size-28px);
}

.assistant-access-card p  {
  line-height: var(--line-height-1-65);
}

.group-login-preview  {
  padding: var(--space-14px);
  border: 1px solid var(--palette-86cfc6);
  border-radius: var(--radius-12px);
  background: var(--palette-eaf8f5);
  color: var(--palette-06796f);
  font-weight: var(--font-weight-700);
}

.session-conflict  {
  padding: var(--space-16px);
  border: 1px solid var(--palette-dcc17c);
  border-radius: var(--radius-12px);
  background: var(--palette-fff9e9);
  color: var(--palette-795e15);
}

.session-conflict button  {
  padding: var(--space-10px-12px);
  border: 1px solid var(--palette-dcc17c);
  border-radius: var(--radius-9px);
  background: var(--palette-ffffff);
  color: var(--palette-795e15);
  font: inherit;
}

.session-conflict button:last-child  {
  background: var(--palette-087e75);
  color: var(--palette-ffffff);
  border-color: var(--palette-087e75);
}

.workbench-load-error  {
  width: min(1500px,calc(100% - 28px));
  margin: var(--space-18px-auto);
  padding: var(--space-16px);
  border: 1px solid var(--palette-ddc883);
  background: var(--palette-fff9e9);
  border-radius: var(--radius-12px);
  color: var(--palette-775e1b);
}

.workbench-load-error button,.workbench-load-error a  {
  display: inline-block;
  margin-left: var(--space-10px);
  padding: var(--space-8px-14px);
  border: 1px solid var(--palette-bcced6);
  border-radius: var(--radius-8px);
  background: var(--palette-ffffff);
  color: var(--palette-16665f);
}

.ledger-admin-page .admin-grid  {
  align-items: start;
}

.ledger-admin-page .admin-card  {
  min-width: 0;
}

.ledger-admin-page .admin-card > p  {
  line-height: var(--line-height-1-7);
}

.ledger-admin-page .primary-button  {
  background: var(--palette-087e75);
  color: var(--palette-ffffff);
}

.ledger-admin-page .primary-button:hover  {
  background: var(--palette-06685f);
}

.ledger-admin-page .single-check  {
  margin: var(--space-14px-0);
  line-height: var(--line-height-1-6);
}

.roster-steps  {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-8px);
  margin: var(--space-18px-0);
}

.roster-steps span  {
  padding: var(--space-9px-12px);
  border-radius: var(--radius-9px);
  background: var(--palette-ecf6f4);
  color: var(--palette-087e75);
  font-weight: var(--font-weight-700);
}

#rosterFile  {
  width: 100%;
  padding: var(--space-16px);
  border: 2px dashed var(--palette-acd4cf);
  border-radius: var(--radius-12px);
  background: var(--palette-f5fbfa);
}

#rosterFile::file-selector-button  {
  border: 0;
  border-radius: var(--radius-7px);
  padding: var(--space-10px-14px);
  background: var(--palette-087e75);
  color: var(--palette-ffffff);
  margin-right: var(--space-12px);
  cursor: pointer;
}

.roster-preview-scroll  {
  overflow-x: auto;
  max-height: 340px;
  margin: var(--space-12px-0);
  border: 1px solid var(--palette-d5e2e8);
  border-radius: var(--radius-10px);
  touch-action: pan-x pan-y;
}

.roster-preview-scroll table  {
  width: 100%;
  min-width: 500px;
  border-collapse: collapse;
}

.roster-preview-scroll th,.roster-preview-scroll td  {
  padding: var(--space-12px);
  text-align: left;
  border-bottom: 1px solid var(--palette-dce8ed);
  font-size: var(--font-size-14px);
}

.roster-preview-scroll th  {
  position: sticky;
  top: 0;
  background: var(--palette-eef5f7);
  color: var(--palette-517082);
  z-index: 1;
}

.roster-preview-scroll select  {
  max-width: 240px;
  min-height: 38px;
  border: 1px solid var(--palette-b8ccda);
  border-radius: var(--radius-6px);
}

#confirmImportButton,#downloadCredentials  {
  margin-top: var(--space-10px);
}

.roster-ready-notice  {
  display: flex;
  align-items: center;
  gap: var(--space-18px);
  margin-top: var(--space-20px);
  padding: var(--space-24px);
  border-radius: var(--radius-16px);
  background: var(--palette-087e75);
  color: var(--palette-ffffff);
}

.roster-ready-check  {
  display: grid;
  place-items: center;
  flex: 0 0 52px;
  width: 52px;
  height: 52px;
  border-radius: var(--radius-50);
  background: var(--palette-ffe092);
  color: var(--palette-075d55);
  font-size: var(--font-size-32px);
  font-weight: var(--font-weight-800);
}

.roster-ready-notice strong  {
  display: block;
  font-size: var(--font-size-30px);
  font-weight: var(--font-weight-800);
  line-height: var(--line-height-1-25);
  color: var(--palette-ffffff);
}

.roster-ready-notice p  {
  margin: var(--space-6px-0-0);
  color: var(--palette-e8faf6);
  font-size: var(--font-size-15px);
  line-height: var(--line-height-1-5);
}

.course-testing-status  {
  margin: var(--space-20px-0-0);
  color: var(--palette-086e65);
  font-weight: var(--font-weight-700);
  line-height: var(--line-height-1-7);
}

#courseTestingControls .preview-subject-control  {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
}

#courseTestingControls .preview-subject-control p  {
  grid-column: 1 / -1;
  margin: var(--space-2px-0-0);
  line-height: var(--line-height-1-7);
}

#courseTestingControls .preview-subject-control select  {
  min-width: 0;
  width: 100%;
}

#courseTestingControls .acceptance-mode-control  {
  padding: var(--space-18px);
}

#courseTestingControls .acceptance-mode-control p  {
  line-height: var(--line-height-1-7);
}

.admin-export-buttons  {
  display: grid;
  gap: var(--space-12px);
  margin: var(--space-20px-0);
}

.route-card  {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: var(--space-12px);
  padding: var(--space-18px);
  border-radius: var(--radius-12px);
  background: var(--palette-edf7f5);
  color: var(--palette-3f6772);
}

.route-card a  {
  color: var(--palette-087e75);
  font-weight: var(--font-weight-700);
}

.admin-quick-guide  {
  padding-left: var(--space-22px);
  line-height: var(--line-height-1-9);
}

.admin-quick-guide li  {
  margin: var(--space-10px-0);
}

.advanced-staff  {
  margin-top: var(--space-20px);
  border-top: 1px solid var(--palette-d8e4ea);
  padding-top: var(--space-18px);
}

.advanced-staff summary,.admin-online-tools summary  {
  cursor: pointer;
  font-weight: var(--font-weight-700);
  color: var(--palette-325a6d);
}

.admin-online-tools  {
  border: 1px solid var(--palette-d8e4ea);
  border-radius: var(--radius-18px);
  background: var(--palette-f5f9fb);
  padding: var(--space-20px);
}

.admin-online-tools > summary  {
  font-size: var(--font-size-18px);
}

.admin-online-content,#onlineReviewPanels  {
  display: grid;
  gap: var(--space-18px);
}

.admin-online-content  {
  margin-top: var(--space-20px);
}

.ledger-admin-page #adminMetrics  {
  order: initial;
}

.ledger-admin-page .compact-list > div > div  {
  flex-wrap: wrap;
  justify-content: flex-end;
  max-width: 390px;
}

.student-danger-tools  {
  flex-basis: 100%;
  text-align: right;
  font-size: var(--font-size-12px);
  color: var(--palette-74899a);
}

.student-danger-tools summary  {
  cursor: pointer;
}

.student-danger-tools button  {
  color: var(--palette-9c4741);
}

.legacy-review-row > div:first-child  {
  box-shadow: var(--shadow-5px-0-8px-var-palette-1536480b);
}

#assistantMatrix .head small  {
  display: none;
}

.legacy-matrix-scroll  {
  max-width: 100%;
}

.legacy-review-matrix  {
  min-width: calc(190px + max(1,var(--student-count)) * 145px);
}

@media (max-width: 680px)  {
  .roster-ready-notice  {
    gap: var(--space-12px);
    padding: var(--space-18px);
  }

  .roster-ready-notice strong  {
    font-size: var(--font-size-26px);
  }

  #courseTestingControls .preview-subject-control  {
    grid-template-columns: minmax(0,1fr);
  }

  .assistant-access-card  {
    padding: var(--space-22px-18px);
  }

  .assistant-access-card h2  {
    font-size: var(--font-size-25px);
  }

  .ledger-admin-page .compact-list > div  {
    grid-template-columns: 1fr;
  }

  .ledger-admin-page .compact-list > div > div  {
    grid-column: 1;
    grid-row: auto;
    justify-content: flex-start;
    max-width: none;
  }

  .student-danger-tools  {
    text-align: left;
  }

  .admin-online-tools  {
    padding: var(--space-14px);
  }

  .legacy-review-matrix  {
    min-width: calc(132px + max(1,var(--student-count)) * 132px);
  }

  .legacy-subject-tabs  {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    overflow: visible;
  }

  .legacy-subject-tabs button  {
    min-width: 0;
    padding: var(--space-10px-3px);
  }

  .legacy-subject-tabs span  {
    font-size: var(--font-size-10px);
  }

  .legacy-mode-tabs strong  {
    font-size: var(--font-size-18px);
  }

  .legacy-mode-tabs span  {
    font-size: var(--font-size-12px);
  }

}
