@charset "UTF-8";
/* Allow wide tables to scroll inside the workspace at every breakpoint. */
main,.list-panel {
  min-width:0;
}

.table-scroll {
  position:relative;
}

:root {
  --ink:#243a46;
  --muted:#61727b;
  --petrol:#155e63;
  --petrol-dark:#104b50;
  --line:#e0e7e9;
  --canvas:#f4f7f8;
  --soft:#eaf4f3;
  --blue:#eaf0f9;
  --amber:#fff5df;
  --error:#a7352c;
  font-family:Inter,"Segoe UI",Arial,sans-serif;
  color:var(--ink);
  background:var(--canvas);
  font-synthesis:none;
}

* {
  box-sizing:border-box;
}

body {
  margin:0;
  font-size:14px;
  line-height:1.55;
}

button,input,select,textarea {
  font:inherit;
}

button,a,input,select,textarea {
  -webkit-tap-highlight-color:transparent;
}

button {
  cursor:pointer;
}

button:disabled {
  cursor:not-allowed;
  opacity:.55;
}

button,input,select,textarea {
  border-radius:7px;
}

a {
  color:var(--petrol);
}

button {
  color:inherit;
}

button:hover:not(:disabled) {
  filter:brightness(.97);
}

:focus-visible {
  outline:3px solid #3587ca;
  outline-offset:3px;
}

h1,h2,h3,p {
  margin-top:0;
}

h1 {
  font-size:32px;
  font-weight:650;
  letter-spacing:-1px;
  line-height:1.2;
  margin-bottom:10px;
}

h2 {
  font-size:19px;
  letter-spacing:-.35px;
  margin-bottom:6px;
  line-height:1.35;
}

h3 {
  font-size:16px;
  margin-bottom:10px;
}

p {
  margin-bottom:12px;
}

small {
  font-size:12px;
}

svg {
  flex-shrink:0;
  vertical-align:middle;
}

.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
}

.skip-link {
  position:fixed;
  top:-80px;
  left:16px;
  background:white;
  padding:12px;
  z-index:100;
}

.skip-link:focus {
  top:8px;
}

.demo-bar {
  background:#fff6e7;
  border-bottom:1px solid #eadfc9;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 28px;
  color:#655637;
  flex-wrap:wrap;
}

.demo-copy {
  display:flex;
  align-items:center;
  gap:10px;
  font-size:12px;
  flex-wrap:wrap;
}

.demo-copy strong {
  font-weight:600;
}

.demo-copy>span:last-child {
  color:#7c7059;
}

.demo-tag {
  font-size:10px;
  letter-spacing:1.2px;
  border:1px solid #cfb779;
  background:#f8e9c6;
  border-radius:4px;
  padding:2px 7px;
  font-weight:750;
}

.demo-controls {
  display:flex;
  align-items:end;
  gap:12px;
}

.demo-controls label {
  font-size:10px;
  font-weight:600;
  letter-spacing:.2px;
  display:flex;
  flex-direction:column;
  gap:3px;
}

.demo-controls select {
  padding:6px 28px 6px 10px;
  min-height:34px;
  background:#fffaf2;
  border-color:#dfd2b9;
  font-size:12px;
  color:#594e3b;
}

.demo-identity {
  display:flex;
  flex-direction:column;
  gap:3px;
  font-size:12px;
  padding:2px 8px;
}

.demo-identity small {
  font-size:10px;
}

.reset-button {
  background:none;
  border:0;
  font-size:12px;
  min-height:34px;
  color:#655637;
  padding:6px 8px;
}

.site-header {
  height:91px;
  background:#fff;
  border-bottom:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 32px;
}

.brand {
  display:flex;
  align-items:center;
  gap:12px;
  text-decoration:none;
  font-size:21px;
  font-weight:700;
  letter-spacing:-.6px;
  color:var(--ink);
  line-height:1.3;
}

.brand b {
  font-weight:400;
}

.brand small {
  display:block;
  font-size:11px;
  font-weight:400;
  letter-spacing:.15px;
  color:var(--muted);
  margin-top:3px;
}

.brand-mark {
  height:43px;
  width:43px;
  display:grid;
  place-content:center;
  position:relative;
  background:var(--petrol);
  color:white;
  border-radius:10px;
  font-size:31px;
  line-height:1;
  font-weight:650;
  letter-spacing:-4px;
  padding-right:5px;
}

.brand-mark>span {
  color:#9dd6cb;
  position:absolute;
  right:8px;
  top:0;
}

.header-note {
  display:flex;
  gap:9px;
  align-items:center;
  font-size:12px;
  color:var(--muted);
}

.live-dot {
  height:6px;
  width:6px;
  border-radius:100%;
  background:#3e8c7d;
}

.version {
  border:1px solid var(--line);
  border-radius:5px;
  padding:2px 6px;
  margin-left:9px;
  font-size:10px;
}

.workspace {
  display:grid;
  grid-template-columns:238px minmax(0,1fr);
  min-height:calc(100vh - 165px);
}

.sidebar {
  padding:33px 18px 20px;
  border-right:1px solid var(--line);
  background:#fff;
  display:flex;
  flex-direction:column;
}

.eyebrow {
  font-size:10px;
  letter-spacing:1.6px;
  font-weight:700;
  color:var(--muted);
  margin-bottom:13px;
}

.sidebar>.eyebrow {
  padding-left:14px;
}

.sidebar nav {
  display:flex;
  flex-direction:column;
  gap:6px;
}

.nav-item {
  display:flex;
  align-items:center;
  text-align:left;
  gap:12px;
  padding:14px 12px;
  background:transparent;
  border:1px solid transparent;
  font-size:13px;
  font-weight:600;
  line-height:1.5;
}

.nav-item svg {
  color:#7b8d93;
  width:20px;
}

.nav-item small {
  display:block;
  font-size:11px;
  font-weight:400;
  color:var(--muted);
  margin-top:2px;
}

.nav-item.active {
  background:var(--soft);
  color:var(--petrol);
  border-color:#d6e9e5;
}

.nav-item.active svg {
  color:var(--petrol);
}

.sidebar-note {
  margin:48px 13px 0;
  padding-top:22px;
  border-top:1px solid var(--line);
}

.mini-label {
  font-size:9px;
  letter-spacing:1px;
  color:#6b8188;
  font-weight:600;
}

.sidebar-note p {
  font-size:23px;
  line-height:1.35;
  letter-spacing:-.7px;
  color:#3d636a;
  margin:14px 0 10px;
}

.sidebar-note>span:last-child {
  font-size:12px;
  line-height:1.8;
  color:var(--muted);
}

.sidebar-footer {
  margin: auto 13px 0;
  padding-top:65px;
  font-size:12px;
  color:#62767e;
}

.sidebar-footer span {
  display:block;
  color:#8a999e;
  font-size:10px;
  margin-top:4px;
}

main {
  padding:35px 38px 20px;
  max-width:1600px;
  width:100%;
  margin:auto;
  align-self:start;
}

.page-heading {
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  margin-bottom:28px;
}

.page-heading .eyebrow {
  color:var(--petrol);
  margin-bottom:8px;
}

.page-heading p:last-child {
  color:var(--muted);
  font-size:13px;
  margin-bottom:0;
}

.page-label {
  font-size:11px;
  color:var(--muted);
  white-space:nowrap;
  border:1px solid #dce4e7;
  border-radius:5px;
  padding:5px 9px;
  background:#f9fbfc;
}

.participant-card {
  display:grid;
  grid-template-columns:1fr 1.2fr .75fr 1.15fr;
  gap:15px;
  background:#eaf2f4;
  border:1px solid #dce7e9;
  border-radius:10px;
  padding:21px 24px 12px;
  margin-bottom:25px;
  align-items:center;
}

.participant-name {
  display:flex;
  gap:11px;
  align-items:center;
}

.avatar {
  width:39px;
  height:39px;
  display:grid;
  place-content:center;
  flex-shrink:0;
  border-radius:50%;
  background:#d2e4e7;
  font-size:12px;
  color:var(--petrol);
  font-weight:650;
}

.participant-card small {
  display:block;
  color:var(--muted);
  font-size:10px;
  margin-bottom:4px;
}

.participant-card strong {
  font-size:12px;
  font-weight:600;
  display:block;
}

.participant-name strong {
  font-size:14px;
}

.participant-name small {
  margin:2px 0 0;
}

.participant-caption {
  grid-column:1/-1;
  margin:0;
  padding-top:10px;
  border-top:1px solid #d4e2e5;
  font-size:10px;
  color:#667f86;
}

.student-grid {
  display:grid;
  grid-template-columns:minmax(0,1fr) 278px;
  gap:24px;
  align-items:start;
}

.panel {
  background:white;
  border:1px solid var(--line);
  border-radius:10px;
  box-shadow:0 2px 4px #173b4810;
}

.panel-heading {
  padding:23px 25px 19px;
  border-bottom:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
}

.panel-heading p {
  font-size:12px;
  color:var(--muted);
  margin:0;
}

.step-marker {
  font-size:10px;
  color:#94a1a7;
  letter-spacing:1px;
  white-space:nowrap;
}

.form-panel form {
  padding:0 25px;
}

.required-note {
  font-size:11px;
  color:var(--muted);
  margin:17px 0 24px;
}

fieldset {
  border:0;
  padding:0 0 24px;
  margin:0 0 23px;
  border-bottom:1px solid var(--line);
  min-width:0;
}

fieldset:last-of-type {
  margin-bottom:0;
  border:0;
  padding-bottom:18px;
}

legend {
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:650;
  font-size:14px;
  margin-bottom:16px;
  padding:0;
}

legend span {
  font-size:10px;
  color:var(--petrol);
  background:var(--soft);
  border-radius:5px;
  padding:4px 7px;
  font-weight:700;
}

.form-field {
  margin-bottom:14px;
  min-width:0;
}

.form-field:last-child {
  margin-bottom:0;
}

label {
  display:block;
  font-size:12px;
  font-weight:600;
  margin-bottom:5px;
}

label span {
  color:var(--muted);
  font-weight:400;
}

input:not([type=checkbox]),select,textarea {
  border:1px solid #cedadd;
  min-height:42px;
  padding:10px 12px;
  color:var(--ink);
  background:#fff;
  width:100%;
  transition:border-color .12s;
}

input::placeholder,textarea::placeholder {
  color:#84969d;
  font-size:12px;
}

input:focus,select:focus,textarea:focus {
  border-color:var(--petrol);
}

input[aria-invalid=true] {
  border-color:var(--error);
  background:#fffafa;
}

.field-hint {
  font-size:11px;
  color:var(--muted);
  margin-bottom:14px;
}

.address-row {
  display:grid;
  grid-template-columns:130px minmax(0,1fr);
  gap:16px;
}

.two-columns {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}

.two-columns .form-field,.address-row .form-field {
  margin-bottom:0;
}

.form-actions {
  border-top:1px solid var(--line);
  padding:18px 0 23px;
}

.form-actions>span {
  display:block;
  font-size:11px;
  color:var(--muted);
  margin-bottom:12px;
}

.form-actions>div {
  display:flex;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
}

.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:41px;
  padding:10px 15px;
  font-size:12px;
  font-weight:600;
  border:1px solid transparent;
  white-space:nowrap;
}

.button svg {
  height:16px;
  width:16px;
}

.primary {
  background:var(--petrol);
  color:#fff;
  border-color:var(--petrol);
}

.secondary {
  background:#fff;
  border-color:#cad7db;
  color:#365660;
}

.small {
  min-height:32px;
  padding:6px 9px;
  font-size:11px;
}

.student-aside {
  display:grid;
  gap:19px;
}

.status-panel {
  padding:23px;
}

.status-panel .eyebrow {
  font-size:9px;
  letter-spacing:1.2px;
}

.badge {
  display:inline-flex;
  align-items:center;
  gap:5px;
  border-radius:5px;
  padding:3px 8px;
  font-size:10px;
  line-height:1.6;
  font-weight:600;
  white-space:nowrap;
  background:#eff2f4;
  color:#60717b;
}

.badge:before {
  content:'';
  width:4px;
  height:4px;
  background:currentColor;
  border-radius:100%;
}

.badge.draft {
  background:#fdf1d9;
  color:#89601c;
}

.badge.submitted {
  background:#e6f3ef;
  color:#256954;
}

.badge.inquiry {
  background:#fff0e8;
  color:#9b4d2f;
}

.badge.assigned {
  background:#eaf0fa;
  color:#3e6090;
}

.status-panel h2 {
  margin-top:17px;
  font-size:19px;
  line-height:1.4;
  letter-spacing:-.3px;
}

.status-panel>p {
  font-size:12px;
  color:var(--muted);
  line-height:1.8;
}

.progress-list {
  list-style:none;
  padding:0;
  margin:20px 0;
  font-size:11px;
  color:#7b8b91;
}

.progress-list li {
  position:relative;
  padding:0 0 16px 28px;
}

.progress-list li:last-child {
  padding-bottom:0;
}

.progress-list li:before {
  content:'○';
  position:absolute;
  left:0;
  top:-2px;
  width:18px;
  height:18px;
  border:1px solid #dae3e5;
  background:#f5f8f9;
  color:#82949b;
  font-size:10px;
  border-radius:100%;
  display:grid;
  place-content:center;
}

.progress-list li.done {
  color:var(--petrol);
}

.progress-list li.done:before {
  content:'✓';
  background:var(--soft);
  border-color:#c3dfd8;
  color:var(--petrol);
}

.readiness {
  background:#f2f6f7;
  border-radius:5px;
  padding:9px 11px;
  font-size:11px;
  color:#57727a;
}

.visit-panel {
  padding:23px;
}

.visit-panel>svg {
  color:var(--petrol);
  margin-bottom:12px;
}

.visit-panel h3 {
  margin-bottom:11px;
}

.visit-panel p {
  font-size:12px;
  color:var(--muted);
  line-height:1.8;
  margin:13px 0;
}

.visit-panel small {
  font-size:10px;
  color:var(--muted);
  display:block;
}

.privacy-note {
  font-size:10px;
  color:#788c94;
  padding:0 7px;
  line-height:1.8;
}

.main-footer {
  margin-top:32px;
  padding-top:16px;
  border-top:1px solid var(--line);
  display:flex;
  gap:8px;
  justify-content:space-between;
  flex-wrap:wrap;
  font-size:10px;
  color:#7d8f97;
}

.inquiry-box {
  background:#fff5e8;
  border:1px solid #eedbbd;
  padding:15px;
  border-radius:6px;
  font-size:12px;
  color:#73552f;
  margin-bottom:20px;
  overflow-wrap:anywhere;
}

.form-panel>.inquiry-box {
  margin:20px 25px;
}

.inquiry-box p {
  margin:6px 0 8px;
}

.inquiry-box small {
  font-size:11px;
}

.inquiry-box ul {
  padding-left:20px;
  margin-bottom:0;
}

.error-summary {
  background:#fff2ef;
  border:1px solid #edbcb5;
  padding:16px;
  color:var(--error);
  border-radius:6px;
  margin:20px 25px;
  font-size:12px;
}

.error-summary ul {
  margin-bottom:0;
  padding-left:20px;
}

.error-summary a {
  color:var(--error);
}

.field-error {
  display:block;
  color:var(--error);
  margin-top:5px;
  font-size:11px;
}

.run-bar {
  display:flex;
  gap:14px;
  align-items:center;
  margin-bottom:20px;
  flex-wrap:wrap;
}

.run-bar label {
  margin:0;
  font-size:12px;
}

.run-bar select {
  width:auto;
  max-width:100%;
  font-size:12px;
  min-width:310px;
}

.run-bar>span {
  margin-left:auto;
  font-size:11px;
  color:var(--muted);
}

.stats-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  margin-bottom:24px;
}

.stat-card {
  text-align:left;
  background:white;
  border:1px solid var(--line);
  padding:18px 19px;
  border-radius:9px;
  display:flex;
  flex-direction:column;
  gap:9px;
}

.stat-card>span:first-child {
  font-size:11px;
  color:var(--muted);
  font-weight:600;
}

.stat-card>strong {
  font-size:30px;
  font-weight:600;
  line-height:1.2;
  color:var(--petrol);
  letter-spacing:-.8px;
}

.stat-card>strong small {
  font-size:13px;
  font-weight:400;
  color:#8b999e;
  letter-spacing:0;
}

.stat-caption {
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:9px;
  color:#8b999e;
}

.stat-caption svg {
  width:14px;
  height:14px;
}

.stat-card.selected {
  border-color:#6d9f9c;
  background:#f6fbfa;
}

.filters {
  display:grid;
  grid-template-columns:1.5fr .75fr .8fr 1fr;
  gap:13px;
  padding:21px 24px 14px;
}

.filters label {
  color:#647781;
  font-size:10px;
}

.filters input,.filters select {
  margin-top:5px;
  font-size:11px;
  min-height:39px;
  padding:9px;
}

.scope-bar {
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  padding:4px 24px 18px;
  border-bottom:1px solid var(--line);
}

.filter-chip {
  border:1px solid #dce5e8;
  background:white;
  color:#687d86;
  font-size:10px;
  padding:6px 10px;
  min-height:32px;
}

.filter-chip.selected {
  background:var(--soft);
  color:var(--petrol);
  border-color:#c5dfdb;
  font-weight:600;
}

.clear-filters {
  margin-left:auto;
  border:0;
  background:none;
  font-size:10px;
  color:#6b818a;
  text-decoration:underline;
  text-underline-offset:3px;
  padding:6px;
}

.results-count {
  padding:12px 24px;
  font-size:10px;
  color:#809198;
}

.table-scroll {
  overflow:auto;
  border-radius:0 0 10px 10px;
}

table {
  width:100%;
  border-collapse:collapse;
  text-align:left;
  font-size:12px;
  min-width:820px;
}

thead {
  background:#f6f9fa;
  color:#6f828a;
  font-size:10px;
}

th {
  padding:12px 14px;
  font-weight:600;
  border-block:1px solid var(--line);
  white-space:nowrap;
}

td {
  padding:16px 14px;
  border-bottom:1px solid #eaf0f2;
  vertical-align:middle;
}

th:first-child,td:first-child {
  padding-left:24px;
}

th:last-child,td:last-child {
  padding-right:24px;
}

tr:last-child td {
  border-bottom:0;
}

tbody tr:hover {
  background:#fafcfc;
}

td strong {
  font-size:11px;
  font-weight:600;
}

td small {
  display:block;
  font-size:10px;
  color:var(--muted);
  margin-top:4px;
}

.table-person {
  display:flex;
  align-items:center;
  gap:9px;
  min-width:135px;
}

.table-person .avatar {
  width:30px;
  height:30px;
  font-size:10px;
  background:#eff3f4;
  color:#607d87;
}

.table-person small {
  margin-top:2px;
}

.table-person strong {
  white-space:nowrap;
}

.readiness-text {
  max-width:170px;
  font-size:9px;
}

.missing-fields {
  max-width:220px;
  color:#92673c;
  line-height:1.6;
}

.visitor {
  display:flex;
  align-items:center;
  gap:7px;
  font-size:10px;
}

.visitor small {
  margin-top:2px;
  font-size:9px;
}

.tiny-avatar {
  border:1px solid #d5e1ef;
  background:#eef3fb;
  color:#416887;
  padding:4px 5px;
  border-radius:5px;
  font-size:10px;
  font-weight:600;
}

.unassigned {
  font-size:11px;
  color:#82939b;
  white-space:nowrap;
}

.exchange-label {
  color:#9a6b28;
  font-size:9px;
}

.row-actions {
  text-align:right;
}

.row-actions button {
  display:block;
  margin:5px 0 5px auto;
}

abbr {
  font-size:11px;
  text-decoration:none;
  border-bottom:1px dotted #b3c3c9;
}

.empty-state {
  text-align:center;
  padding:35px 20px;
  color:var(--muted);
}

.empty-state h3 {
  color:var(--ink);
}

.list-note {
  font-size:11px;
  color:var(--muted);
  margin-top:17px;
  line-height:1.7;
}

dialog {
  border:1px solid var(--line);
  border-radius:12px;
  padding:26px;
  max-width:650px;
  width:calc(100% - 32px);
  max-height:90dvh;
  color:var(--ink);
  box-shadow:0 20px 80px #102d4250;
  overflow:auto;
}

dialog::backdrop {
  background:#17334480;
  backdrop-filter:blur(2px);
}

.dialog-heading {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:15px;
  margin-bottom:15px;
}

.dialog-heading .eyebrow {
  margin-bottom:5px;
}

.dialog-heading h2 {
  font-size:24px;
}

.icon-button {
  border:1px solid var(--line);
  background:#f8fafb;
  width:36px;
  height:36px;
  font-size:25px;
  line-height:1;
}

.detail-badges {
  display:flex;
  gap:8px;
  margin-bottom:13px;
}

.detail-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  margin:22px 0;
}

.detail-grid dt {
  font-size:10px;
  color:var(--muted);
  margin-bottom:4px;
}

.detail-grid dd {
  margin:0;
  font-size:13px;
  overflow-wrap:anywhere;
}

.detail-grid dd small {
  display:block;
  color:#9a6b28;
}

.detail-controls {
  border-top:1px solid var(--line);
  margin-top:20px;
  padding-top:22px;
}

.detail-controls h3 {
  margin-top:5px;
}

.detail-controls form {
  margin:14px 0 22px;
}

.inline-form {
  display:flex;
  gap:9px;
}

.inline-form select {
  flex:1;
  min-width:0;
}

.detail-controls textarea {
  margin-bottom:10px;
  resize:vertical;
}

.checkbox-label {
  display:flex;
  align-items:center;
  gap:10px;
  min-height:44px;
}

.checkbox-label input {
  width:18px;
  height:18px;
  accent-color:var(--petrol);
}

.dialog-actions {
  display:flex;
  gap:10px;
  justify-content:flex-end;
  margin-top:25px;
}

#detail-feedback:not(:empty) {
  padding:12px;
  background:var(--soft);
  color:var(--petrol);
  border-radius:5px;
  font-size:12px;
}

.toast {
  position:fixed;
  bottom:24px;
  left:50%;
  transform:translateX(-50%);
  z-index:30;
  background:#203f46;
  color:#fff;
  box-shadow:0 6px 25px #16363b30;
  padding:13px 20px;
  border-radius:8px;
  max-width:calc(100% - 32px);
  width:max-content;
  font-size:12px;
  opacity:0;
  pointer-events:none;
}

.toast.visible {
  opacity:1;
}

@media(min-width:1600px) {
  main {
    padding:40px 48px;
  }
  .student-grid {
    grid-template-columns:minmax(0,1fr) 320px;
  }
  .participant-card {
    padding:24px 28px 14px;
  }
}

@media(max-width:1250px) {
  .demo-copy>span:last-child {
    display:none;
  }
  .workspace {
    grid-template-columns:205px minmax(0,1fr);
  }
  main {
    padding:28px 24px;
  }
  .sidebar {
    padding-inline:12px;
  }
  .nav-item {
    font-size:12px;
    gap:9px;
  }
  .student-grid {
    grid-template-columns:minmax(0,1fr) 240px;
    gap:18px;
  }
  .status-panel,.visit-panel {
    padding:18px;
  }
  .participant-card {
    grid-template-columns:1fr 1fr;
    padding:18px;
  }
  .page-label {
    display:none;
  }
  .stats-grid {
    gap:10px;
  }
  .stat-card {
    padding:15px 12px;
  }
  .filters {
    grid-template-columns:1fr 1fr;
  }
  .run-bar>span {
    margin-left:0;
  }
}

@media(max-width:980px) {
  .workspace {
    grid-template-columns:1fr;
  }
  .sidebar {
    padding:12px 24px;
    border-right:0;
    border-bottom:1px solid var(--line);
  }
  .sidebar>.eyebrow,.sidebar-note,.sidebar-footer {
    display:none;
  }
  .sidebar nav {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .nav-item {
    justify-content:center;
    padding:10px 6px;
  }
  .nav-item small {
    display:none;
  }
  .student-grid {
    grid-template-columns:minmax(0,1fr) 260px;
  }
  .demo-bar {
    padding:12px 24px;
  }
  .demo-copy {
    width:100%;
  }
  .demo-copy>span:last-child {
    display:inline;
  }
  .demo-controls {
    width:100%;
  }
  .demo-controls label {
    flex:1;
  }
  .header-note {
    font-size:10px;
  }
  .site-header {
    height:82px;
    padding-inline:24px;
  }
}

@media(max-width:680px) {
  body {
    font-size:13px;
  }
  .demo-bar {
    padding:12px 16px;
    gap:9px;
  }
  .demo-copy {
    gap:7px;
    font-size:11px;
  }
  .demo-copy>span:last-child {
    display:block;
    width:100%;
    font-size:10px;
  }
  .demo-controls {
    gap:8px;
    flex-wrap:wrap;
  }
  .demo-controls label {
    min-width:130px;
  }
  .demo-controls label:first-child {
    flex:.85;
  }
  .demo-controls select {
    max-width:100%;
    font-size:11px;
    padding-left:7px;
  }
  .reset-button {
    min-height:28px;
    font-size:11px;
    margin-left:auto;
  }
  .demo-identity {
    flex:1;
  }
  .site-header {
    padding:0 17px;
    height:74px;
  }
  .brand {
    font-size:20px;
  }
  .brand small {
    font-size:9px;
  }
  .brand-mark {
    height:37px;
    width:37px;
    font-size:29px;
  }
  .header-note {
    display:none;
  }
  .sidebar {
    padding:9px 12px;
  }
  .nav-item {
    gap:5px;
    font-size:10px;
    flex-direction:column;
  }
  .nav-item svg {
    width:18px;
    height:18px;
  }
  .workspace {
    min-height:0;
  }
  main {
    padding:24px 16px 18px;
  }
  .page-heading {
    margin-bottom:22px;
  }
  h1 {
    font-size:28px;
  }
  .page-heading p:last-child {
    font-size:12px;
    line-height:1.7;
  }
  .eyebrow {
    font-size:9px;
  }
  .participant-card {
    padding:16px;
    gap:17px 12px;
    border-radius:8px;
    margin-bottom:19px;
    grid-template-columns:1fr 1fr;
  }
  .participant-name {
    grid-column:1/-1;
  }
  .participant-card>div:last-of-type {
    grid-column:1/-1;
  }
  .participant-card strong {
    font-size:11px;
  }
  .participant-card .participant-name strong {
    font-size:15px;
  }
  .participant-caption {
    font-size:9px;
  }
  .student-grid {
    grid-template-columns:minmax(0,1fr);
    gap:19px;
  }
  .student-aside {
    grid-template-columns:1fr;
  }
  .panel-heading {
    padding:20px 18px;
  }
  .form-panel form {
    padding-inline:18px;
  }
  .form-panel>.inquiry-box,.error-summary {
    margin:18px;
  }
  .required-note {
    font-size:10px;
  }
  input:not([type=checkbox]),select,textarea {
    font-size:16px;
    min-height:45px;
  }
  .demo-controls select {
    min-height:36px;
    font-size:12px;
  }
  .two-columns {
    grid-template-columns:1fr;
    gap:14px;
  }
  .address-row {
    grid-template-columns:100px minmax(0,1fr);
    gap:12px;
  }
  .form-actions>div {
    display:grid;
    grid-template-columns:1fr;
    width:100%;
  }
  .button {
    min-height:44px;
  }
  .form-actions .primary {
    grid-row:1;
  }
  .privacy-note {
    margin:0;
  }
  .main-footer {
    line-height:1.8;
    margin-top:22px;
  }
  .run-bar {
    gap:7px;
  }
  .run-bar select {
    min-width:0;
    width:100%;
    font-size:13px;
  }
  .run-bar>span {
    font-size:10px;
  }
  .stats-grid {
    grid-template-columns:1fr 1fr;
    gap:10px;
  }
  .stat-card {
    padding:14px;
  }
  .stat-card>span:first-child {
    font-size:10px;
  }
  .stat-card>strong {
    font-size:28px;
  }
  .stat-caption {
    font-size:8px;
  }
  .filters {
    padding:16px;
    gap:12px;
  }
  .filters .search-label {
    grid-column:1/-1;
  }
  .filters label:last-child {
    grid-column:1/-1;
  }
  .filters input,.filters select {
    font-size:14px;
    min-height:44px;
  }
  .scope-bar {
    padding:0 16px 16px;
  }
  .filter-chip {
    min-height:38px;
  }
  .clear-filters {
    min-height:38px;
  }
  .list-panel .panel-heading {
    padding:20px 16px;
  }
  .results-count {
    padding-inline:16px;
  }
  .small {
    min-height:38px;
  }
  .table-scroll:before {
    content:'↔ Die Tabelle lässt sich seitlich scrollen.';
    display:block;
    padding:8px 16px;
    font-size:10px;
    color:var(--muted);
  }
  .detail-grid {
    grid-template-columns:1fr;
  }
  .inline-form {
    flex-direction:column;
  }
  dialog {
    padding:20px;
    max-height:92dvh;
  }
  .toast {
    bottom:14px;
    font-size:11px;
  }
  .dialog-actions {
    flex-wrap:wrap;
  }
}

@media(prefers-reduced-motion:reduce) {
  * {
    scroll-behavior:auto!important;
    transition:none!important;
  }
}
