@font-face {
  font-family: Inter;
  src: url("vendor/inter/InterVariable.2bf3d951bf9d.woff2") format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
:root { color-scheme: light; --workspace-bg: #f4f8fc; --workspace-text: #10244c; --workspace-soft: #f1f7fd; --workspace-error: #c52b40; }
html[data-theme="dark"] { color-scheme: dark; --workspace-bg: #0b1422; --workspace-text: #e6eefb; --workspace-soft: #172a42; --workspace-error: #ffadb9; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.ui-icon { width: 20px; height: 20px; flex: 0 0 20px; }
.workspace { background: var(--workspace-bg); color: var(--workspace-text); }
.workspace.has-mobile-menu { overflow: hidden; }
.workspace .topbar { height: 70px; padding: 0 22px; gap: 24px; background: #0c2b55; }
.workspace .brand { width: 170px; flex: 0 0 170px; font-size: 29px; letter-spacing: -1.5px; }
.workspace .topbar__right { margin-left: auto; gap: 20px; flex: 0 0 auto; }
.workspace .topbar__right .ui-icon, .workspace-search .ui-icon, .workspace-office .ui-icon { filter: brightness(0) invert(1); }
.workspace .settings-link > .ui-icon, .workspace .link-button > .ui-icon { display: none; }
.workspace .settings-link:focus-visible, .workspace .link-button:focus-visible { outline: 2px solid #32d2e8; outline-offset: 2px; border-radius: 8px; }
.account-facts { margin: 0 0 16px; }
.account-facts > div { display: grid; grid-template-columns: minmax(80px, 30%) minmax(0, 1fr); gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.account-facts > div:last-child { border-bottom: 0; }
.account-facts dt { color: var(--muted); font-weight: 400; }
.account-facts dd { margin: 0; font-weight: 550; overflow-wrap: anywhere; min-width: 0; }
.workspace-search { display: flex; align-items: center; gap: 12px; padding: 0 14px; flex: 1 1 370px; max-width: 480px; height: 42px; border: 1px solid #527091; border-radius: 9px; background: #23436a; }
.workspace-search input { width: 100%; min-width: 0; background: transparent; color: #fff; border: 0; font: inherit; font-size: 13px; outline: none; }
.workspace-search:focus-within { outline: 2px solid #32d2e8; outline-offset: 2px; }
.workspace-search input::placeholder { color: #c9d7eb; }
.workspace-search__submit { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 36px; height: 40px; margin-left: -10px; border: 0; background: transparent; color: #fff; cursor: pointer; }
.workspace-office { display: flex; align-items: center; gap: 8px; flex: 0 1 260px; min-width: 175px; height: 42px; padding: 0 12px; border: 1px solid #527091; border-radius: 9px; background: #23436a; }
.workspace-office select { width: 100%; min-width: 0; background: #23436a; color: #fff; border: 0; font: inherit; font-size: 13px; cursor: pointer; }
.office-submit { border: 0; color: #fff; background: transparent; }
.js .office-submit { display: none; }
.workspace .notification-link { display: inline-flex; align-items: center; position: relative; }
.workspace .notification-link::before { content: none; }
.workspace .notification-link span { position: absolute; top: -9px; right: -12px; font-size: 10px; min-width: 17px; height: 17px; background: #ef4444; color: #fff; }
.workspace .app-layout { width: 100%; grid-template-columns: 216px minmax(0, 1fr); min-height: calc(100vh - 70px); }
.workspace .sidebar { top: 70px; height: calc(100vh - 70px); overflow-y: auto; padding: 20px 12px; background: var(--surface); gap: 0; }
.nav-section { padding: 10px 0 20px; margin-bottom: 10px; border-bottom: 1px solid var(--line); }
.nav-section:last-child { border-bottom: 0; }
.nav-section h2 { display: flex; align-items: center; gap: 12px; margin: 0 12px 14px; font-size: 14px; font-weight: 750; }
.workspace .sidebar a, .mobile-sections .nav-section a { display: flex; align-items: center; gap: 11px; padding: 11px 12px; margin: 3px 0; border-radius: 8px; font-size: 13px; font-weight: 500; color: var(--muted); text-decoration: none; }
.workspace .sidebar a.active { background: #e6f3ff; color: #0675d9; font-weight: 650; }
.workspace .sidebar .ui-icon, .quick-links .ui-icon { opacity: .75; }
.workspace .shell { width: calc(100% - 40px); max-width: 1500px; margin: 30px auto 70px; }
.workspace .page-heading h1 { font-size: 34px; line-height: 1.15; letter-spacing: -.8px; color: var(--workspace-text); margin: 7px 0 9px; }
.workspace-date { margin: 0; font-size: 13px; color: var(--muted); text-transform: capitalize; }
.workspace .page-heading { margin-bottom: 24px; }
.workspace .command-heading { align-items: flex-start; }
.workspace .command-heading h1 { font-size: 36px; }
.command-heading .muted { margin: 0; font-size: 15px; }
.command-heading .create-menu { margin-top: 6px; }
.create-menu { position: relative; flex: 0 0 auto; }
.create-menu summary { list-style: none; cursor: pointer; padding: 0 22px; }
.create-menu summary::-webkit-details-marker { display: none; }
.create-menu__options { position: absolute; top: 50px; right: 0; width: 190px; background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 7px; box-shadow: 0 12px 30px #10244c1f; z-index: 10; }
.create-menu__options a { display: block; padding: 11px 12px; text-decoration: none; border-radius: 6px; font-size: 14px; }
.create-menu__options a:hover { background: var(--workspace-soft); }
.command-grid { display: grid; grid-template-columns: 1.21fr 1.12fr .85fr; gap: 16px; align-items: stretch; }
.command-column { min-width: 0; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; padding: 24px 20px; }
.command-column .section-heading { margin-bottom: 18px; gap: 8px; align-items: center; }
.command-column .section-heading h2 { margin: 0; font-size: 21px; line-height: 1.35; letter-spacing: -.45px; }
.command-column .section-heading a { flex: 0 0 auto; color: var(--blue); font-size: 12px; text-decoration: none; }
.count-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 25px; padding: 3px 7px; font-size: 12px; font-weight: 700; border-radius: 16px; background: #e7f3ff; color: #056bbf; }
.count-badge--danger { background: #fff0f1; color: #bf2337; }
.column-filter { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; padding-bottom: 15px; border-bottom: 1px solid var(--line); }
.column-filter a { text-decoration: none; font-size: 12px; color: var(--muted); }
.column-filter strong { margin-left: 3px; }
.command-task { display: flex; flex-direction: column; gap: 8px; padding: 19px 0; border-bottom: 1px solid var(--line); text-decoration: none; }
.command-task:last-child { border-bottom: 0; }
.command-task > strong { font-size: 14px; line-height: 1.4; }
.command-task .muted, .command-task small { font-size: 12px; margin: 0; color: var(--muted); }
.command-task__top { display: flex; align-items: center; justify-content: space-between; gap: 6px; font-size: 11px; }
.status-badge { display: inline-flex; align-items: center; width: fit-content; padding: 4px 7px; border-radius: 6px; background: #edf4fc; color: #456080; font-size: 11px; font-weight: 650; }
.status-in_progress, .status-planned { background: #e5f2ff; color: #056bbf; }
.status-done, .status-completed { background: #e3f7f1; color: #117653; }
.danger-text { color: #c52b40 !important; }
.column-caption { margin: 0 0 12px; color: var(--muted); font-size: 12px; }
.day-lesson { display: grid; grid-template-columns: 55px minmax(0, 1fr); gap: 12px; padding: 19px 0; border-bottom: 1px solid var(--line); text-decoration: none; }
.day-lesson:last-child { border-bottom: 0; }
.day-lesson time { padding-top: 2px; color: var(--blue); font-size: 13px; font-weight: 650; }
.day-lesson time small { display: block; margin-top: 5px; font-size: 11px; color: var(--muted); font-weight: 400; }
.day-lesson > div { display: grid; gap: 8px; }
.day-lesson strong { font-size: 14px; line-height: 1.4; }
.day-lesson span:not(.status-badge), .day-lesson > div > small { color: var(--muted); font-size: 12px; }
.attention-card { padding: 16px; margin-bottom: 16px; border: 1px solid var(--line); border-radius: 10px; }
.attention-card__heading { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; font-size: 13px; }
.attention-card__heading strong { flex: 1; }
.attention-link { display: grid; gap: 5px; padding: 9px 0; color: var(--workspace-text); font-size: 13px; text-decoration: none; line-height: 1.4; }
.attention-link small { font-size: 11px; color: var(--muted); }
.attention-card .button { width: 100%; margin-top: 10px; }
.quick-links { border-top: 1px solid var(--line); padding-top: 14px; margin-top: 18px; }
.quick-links h3 { font-size: 13px; margin: 0 0 9px; color: var(--muted); }
.quick-links a { display: flex; align-items: center; gap: 10px; padding: 11px 0; font-size: 13px; text-decoration: none; }
.workspace-empty { padding: 30px 8px; text-align: center; }
.learning-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.learning-section { min-width: 0; }
.learning-item { display: grid; gap: 6px; padding: 16px 0; min-height: 44px; border-bottom: 1px solid var(--line); text-decoration: none; overflow-wrap: anywhere; }
.learning-item:last-child { border-bottom: 0; }
.learning-item strong { font-size: 16px; line-height: 1.4; }
.learning-item > span:not(.status-badge), .learning-item time { font-size: 14px; line-height: 1.5; }
.learning-section > .button { margin-top: 16px; }
.learning-filters a { min-height: 44px; display: inline-flex; align-items: center; }
.learning-pagination { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.workspace .lesson-history > summary { min-height: 44px; padding: 9px 0; cursor: pointer; }
.workspace .lesson-history > summary h2 { display: inline; margin: 0; font-size: 18px; line-height: 1.4; }
.workspace .lesson-history > summary:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
.workspace-empty h2, .workspace-empty h3 { font-size: 16px; margin: 0 0 12px; }
.workspace-empty p { font-size: 13px; line-height: 1.6; color: var(--muted); margin: 0 0 18px; }
.workspace-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 20px; }
.workspace-tabs a { padding: 10px 14px; text-decoration: none; font-size: 13px; border-radius: 8px; color: var(--muted); }
.workspace-tabs a.active { background: #e6f3ff; color: #0665b5; font-weight: 700; }
.workspace-filter { margin-bottom: 20px; }
.workspace-filter input { flex: 1 1 220px; min-width: 0; }
.workspace-task-list { background: var(--surface); border: 1px solid var(--line); border-radius: 12px; padding: 0 20px; }
.workspace-task-row { display: grid; grid-template-columns: minmax(0, 1fr) 150px auto; align-items: center; gap: 24px; padding: 20px 0; border-bottom: 1px solid var(--line); }
.workspace-task-row:last-child { border-bottom: 0; }
.workspace-task-row h2 { margin: 9px 0; font-size: 16px; }
.workspace-task-row h2 a { text-decoration: none; }
.workspace-task-row p, .workspace-task-row small { color: var(--muted); margin: 0; font-size: 12px; }
.task-deadline { display: grid; gap: 6px; font-size: 13px; color: var(--muted); }
.pagination { display: flex; justify-content: center; align-items: center; gap: 20px; margin: 20px 0; font-size: 14px; }
.pagination a { padding: 10px; }
.search-results { background: var(--surface); border: 1px solid var(--line); border-radius: 12px; padding: 0 20px; }
.search-result { display: flex; align-items: center; gap: 16px; padding: 20px 0; text-decoration: none; border-bottom: 1px solid var(--line); }
.search-result:last-child { border-bottom: 0; }
.search-result div { display: grid; gap: 7px; flex: 1; }
.search-result span, .search-result small { color: var(--muted); font-size: 12px; }
.search-result strong { font-size: 15px; }
.mobile-sections { background: var(--surface); color: var(--workspace-text); border: 1px solid var(--line); border-radius: 14px; padding: 20px; width: min(430px, calc(100% - 24px)); max-height: calc(100vh - 40px); overflow-y: auto; }
.mobile-sections::backdrop { background: #071b3b80; }
.intake-form { max-width: 940px; margin-top: 0; }
.intake-section h2 { margin: 0 0 18px; font-size: 21px; }
.intake-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 22px; }
.intake-form .field { display: grid; gap: 7px; min-width: 0; margin-top: 14px; }
.intake-form .field--check { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; }
.intake-form .field--check label { display: inline; font-weight: 500; }
.intake-flags { display: flex; gap: 12px 28px; flex-wrap: wrap; margin: 6px 0 16px; }
.intake-form input[type=checkbox] { width: 18px; height: 18px; accent-color: var(--blue); }
.workspace .form-stack input[type=email], .workspace .form-stack input[type=number] { width: 100%; padding: 12px 14px; border: 1px solid var(--line); border-radius: 11px; font: inherit; background: var(--surface); color: var(--navy); }
.intake-self { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); }
.intake-self summary { cursor: pointer; line-height: 1.5; }
.workspace .intake-self summary { min-height: 44px; padding: 10px 0; font-size: 14px; }
.intake-actions { margin: 0; display: flex !important; gap: 12px; }
.intake-form [hidden] { display: none !important; }
.staff-role-guide { display: grid; grid-template-columns: minmax(0, 180px) minmax(0, 1fr); gap: 12px 20px; font-size: 14px; line-height: 1.5; }
.staff-role-guide dt { font-weight: 600; }
.staff-role-guide dd { margin: 0; color: var(--muted); }
.staff-offices { border: 0; margin: 20px 0; padding: 0; }
.staff-offices legend { font-weight: 600; margin-bottom: 14px; }
.staff-offices > div { display: grid; gap: 12px; }
.staff-offices label { display: flex; align-items: start; gap: 10px; line-height: 1.5; }
.staff-offices input { flex-shrink: 0; margin-top: 3px; }
.staff-owner-note { border-left: 3px solid var(--blue); padding: 12px 18px; line-height: 1.6; }
.staff-actions { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; margin-top: 18px; }
.staff-actions form { margin: 0; }
.staff-actions .button { white-space: normal; }
[id^=staff-] { scroll-margin-top: 100px; }
@media (max-width: 640px) { .staff-role-guide { grid-template-columns: minmax(0, 1fr); gap: 5px; } .staff-role-guide dd { margin-bottom: 12px; } .staff-actions { align-items: stretch; flex-direction: column; } [id^=staff-] { scroll-margin-top: 185px; } }
.duplicate-notice { padding: 18px; border: 1px solid #bd8939; border-radius: 14px; }
.duplicate-notice a { margin-right: 14px; }
.people-list { display: grid; gap: 12px; }
.pupil-row { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) auto; gap: 24px; align-items: center; padding: 22px; }
.pupil-main, .pupil-family, .pupil-family > div, .pupil-state { display: grid; gap: 7px; min-width: 0; overflow-wrap: anywhere; }
.pupil-main h2 { margin: 0; font-size: 18px; }
.pupil-main a { text-decoration: none; }
.pupil-main > span, .pupil-family span { font-size: 13px; }
.pupil-state { justify-items: start; font-size: 13px; }
.card-tabs { display: flex; gap: 9px; flex-wrap: wrap; margin-bottom: 20px; }
.card-tabs a { padding: 10px 14px; border-radius: 10px; background: var(--surface); border: 1px solid var(--line); text-decoration: none; font-size: 13px; }
.card-tabs a[aria-current="page"] { border-color: var(--blue); color: var(--blue); font-weight: 750; }
.student-timeline { list-style: none; margin: 22px 0 0; padding: 0; }
.student-timeline li { display: grid; gap: 6px; padding: 13px 0 13px 18px; border-left: 2px solid var(--line); }
.student-timeline li + li { margin-top: 12px; }
.workspace [id=overview], .workspace [id=family], .workspace [id=groups], .workspace [id=documents], .workspace [id=history] { scroll-margin-top: 100px; }
@media (max-width: 900px) { .pupil-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .pupil-state { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; } }
@media (max-width: 640px) { .intake-grid, .pupil-row { grid-template-columns: minmax(0, 1fr); } .intake-grid { gap: 6px; } .intake-section h2 { font-size: 19px; } .intake-flags { display: grid; gap: 0; } .pupil-row { gap: 18px; padding: 20px; } .pupil-state { grid-column: auto; } .workspace [id=overview], .workspace [id=family], .workspace [id=groups], .workspace [id=documents], .workspace [id=history] { scroll-margin-top: 185px; } }
.workspace a:focus-visible, .workspace button:focus-visible, .workspace select:focus-visible, .workspace summary:focus-visible { outline: 2px solid #00acc2; outline-offset: 3px; }
.workspace .mobile-nav { display: none; }
html[data-theme="dark"] .workspace .sidebar a.active, html[data-theme="dark"] .workspace-tabs a.active { background: #143354; color: #91cdff; }
html[data-theme="dark"] .command-column .section-heading a, html[data-theme="dark"] .day-lesson time { color: #91cdff; }
html[data-theme="dark"] .count-badge, html[data-theme="dark"] .status-badge { background: #203d5e; color: #abd8ff; }
html[data-theme="dark"] .count-badge--danger { background: #462433; color: #ffb2bc; }
html[data-theme="dark"] .danger-text { color: #ffadb9 !important; }
html[data-theme="dark"] .workspace .errorlist { color: #ffadb9 !important; }
html[data-theme="dark"] .workspace .sidebar .ui-icon, html[data-theme="dark"] .attention-card .ui-icon, html[data-theme="dark"] .quick-links .ui-icon, html[data-theme="dark"] .search-result .ui-icon, html[data-theme="dark"] .mobile-nav .ui-icon, html[data-theme="dark"] .mobile-sections .ui-icon { filter: brightness(0) invert(1); }
@media (max-width: 1180px) {
  .workspace .topbar { gap: 14px; padding: 0 16px; }
  .workspace .brand { width: 150px; flex-basis: 150px; }
  .workspace .topbar__right { gap: 13px; }
  .command-grid { gap: 14px; grid-template-columns: 1fr 1fr; }
  .command-column:last-child { grid-column: 1 / -1; }
}

/* Sales stays scrollable inside its own region, not across the whole page. */
.workspace .lead-filter { display: grid; grid-template-columns: minmax(180px, 2fr) repeat(3, minmax(140px, 1fr)); gap: 12px; align-items: end; }
.lead-filter label { display: flex; flex-direction: column; gap: 7px; font-size: 13px; min-width: 0; }
.workspace .lead-filter input, .workspace .lead-filter select { width: 100%; min-width: 0; flex: none; height: 44px; min-height: 44px; }
.lead-board { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(260px, 300px); gap: 16px; overflow-x: auto; max-width: 100%; padding: 2px 2px 18px; align-items: start; }
.lead-column { background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 16px; min-width: 0; }
.lead-column h2 { font-size: 16px; margin: 0; }
.lead-column .section-heading { margin-bottom: 14px; }
.lead-card { border: 1px solid var(--line); border-radius: 12px; padding: 14px; margin-bottom: 12px; overflow-wrap: anywhere; }
.lead-card:last-child { margin-bottom: 0; }
.lead-card h3 { margin: 12px 0 7px; font-size: 16px; }
.lead-card h3 a { color: var(--workspace-text); text-decoration: none; }
.lead-card p, .lead-card small { font-size: 12px; line-height: 1.5; margin: 6px 0; }
.lead-card__step { display: flex; flex-direction: column; gap: 5px; font-size: 13px; border-top: 1px solid var(--line); padding-top: 9px; margin-top: 10px; }
.lead-card--overdue { border-left: 3px solid #dd5168; }
.lead-detail-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 20px; }
.lead-detail-grid .card { min-width: 0; overflow-wrap: anywhere; }
.lead-table-list .task-deadline { max-width: 260px; overflow-wrap: anywhere; }
.sales-command-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sales-command-grid .command-column:last-child { grid-column: auto; }
@media (max-width: 640px) { .lead-detail-grid { grid-template-columns: minmax(0, 1fr); } .lead-board { grid-auto-columns: minmax(245px, 85vw); } .workspace .lead-filter { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 900px) {
  .workspace .app-layout { display: block; }
  /* Padding cannot collapse outside the layout like the last main margin.
     Keep terminal form actions above the fixed mobile navigation. */
  .workspace .app-layout { padding-bottom: calc(100px + env(safe-area-inset-bottom)); }
  .workspace .sidebar { display: none; }
  .workspace .brand { width: auto; flex-basis: auto; margin-right: 4px; }
  .workspace .topbar__name { max-width: 145px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .workspace .shell { width: calc(100% - 32px); margin: 24px auto 0; }
  .workspace .mobile-nav { display: flex; gap: 0; height: 66px; padding: 7px 12px max(7px, env(safe-area-inset-bottom)); background: var(--surface); border-top: 1px solid var(--line); }
  .workspace .mobile-nav a, .workspace .mobile-nav button { display: flex; flex: 1; min-width: 0; flex-direction: column; align-items: center; justify-content: center; gap: 5px; color: var(--muted); font: inherit; font-size: 12px; text-decoration: none; background: transparent; border: 0; }
  .workspace .mobile-nav [aria-current="page"], .workspace .mobile-nav [aria-expanded="true"] { color: var(--blue); background: var(--workspace-soft); border-radius: 8px; font-weight: 650; }
}
@media (max-width: 640px) {
  .workspace .topbar { height: auto; min-height: 68px; padding: 14px 16px; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 14px; }
  .workspace .brand { grid-column: 1; grid-row: 1; font-size: 26px; }
  .workspace .topbar__right { grid-column: 2; grid-row: 1; justify-content: flex-end; gap: 14px; }
  .workspace .topbar__name { max-width: 112px; font-size: 12px; }
  .workspace .link-button { font-size: 12px; }
  .workspace-search { grid-column: 1 / -1; grid-row: 3; width: 100%; max-width: none; }
  .workspace-office { grid-column: 1 / -1; grid-row: 2; width: 100%; }
  .workspace .page-heading { gap: 14px; align-items: flex-start; flex-direction: column; }
  .workspace .page-heading h1 { font-size: 28px; }
  .workspace .shell { margin-top: 22px; }
  .command-grid { grid-template-columns: minmax(0, 1fr); }
  .command-column:last-child { grid-column: auto; }
  .command-column { padding: 20px 18px; }
  .command-column .section-heading h2 { font-size: 19px; }
  .workspace-task-row { grid-template-columns: minmax(0, 1fr) auto; gap: 12px; }
  .workspace-task-row > div:first-child { grid-column: 1 / -1; }
  .workspace-tabs a { padding: 10px; }
  .workspace .filter-bar { flex-wrap: wrap; }
}

.trial-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 18px; }
.trial-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 12px; }
.trial-stats span { background: var(--workspace-soft); border: 1px solid var(--line); border-radius: 12px; padding: 12px; }
.trial-stats strong { display: block; font-size: 24px; }
.trial-person { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.trial-person > div { min-width: 0; overflow-wrap: anywhere; }
.workspace .trial-filter { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; }
.workspace .trial-filter input { min-width: 0; height: 44px; flex: none; }
@media (max-width: 640px) { .workspace .trial-filter { grid-template-columns: minmax(0, 1fr); } }
.source-endpoint { overflow-wrap: anywhere; }
.journal-roster { border: 0; padding: 0; margin: 0; min-width: 0; }
.journal-roster .attendance-row { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; align-items: start; }
.journal-roster .attendance-options { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 8px; }
.journal-roster .attendance-options label { margin: 0; min-width: 0; }
.workspace .journal-roster .attendance-options > .errorlist { grid-column: 1 / -1; margin: 0; }
.journal-roster .attendance-options label span { min-height: 44px; display: flex; align-items: center; justify-content: center; text-align: center; }
.journal-roster .attendance-options input:focus-visible + span { outline: 3px solid var(--blue); outline-offset: 2px; }
.journal-roster:disabled .attendance-options label span { cursor: default; }
.workspace .lesson-hero { background: #0c2947; color: #fff; }
.workspace .lesson-hero .lesson-topic span,
.workspace .lesson-hero .lesson-topic small { color: #c7eff3; }
.lesson-section-nav, .contract-section-nav { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; }
.lesson-section-nav a, .contract-section-nav a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); font-size: 14px; text-decoration: none; }
.workspace :is(#lesson-journal, #lesson-materials, #lesson-homework, #lesson-documents) { scroll-margin-top: 128px; }
.workspace .publication-panel--compact { padding-top: 8px; padding-bottom: 8px; }
.workspace .publication-panel--compact > summary { min-height: 44px; padding: 10px 0; cursor: pointer; font-size: 14px; line-height: 1.5; font-weight: 600; }
.workspace .publication-panel--compact > summary .badge { margin-left: 6px; font-size: 12px; }
.workspace .publication-panel--compact[open] > summary { margin-bottom: 12px; }
.workspace .material-item, .workspace .attendance-row { border-color: var(--line); overflow-wrap: anywhere; }
.workspace .material-item .field { display: block; }
.workspace .material-links, .workspace .homework-links { display: flex; flex-wrap: wrap; gap: 8px 12px; }
.workspace .material-links a, .workspace .homework-links a { display: inline-flex; align-items: center; min-height: 44px; font-size: 14px; overflow-wrap: anywhere; }
.workspace .homework-description, .workspace .submission-item { overflow-wrap: anywhere; }
.workspace .review-form { display: grid; grid-template-columns: minmax(150px, 1fr) minmax(0, 2fr); gap: 12px; align-items: end; }
.workspace .review-form > .field { min-width: 0; margin: 0; }
.workspace .review-form input, .workspace .review-form select { width: 100%; min-width: 0; min-height: 44px; font: inherit; }
.workspace .review-form > .button { grid-column: 1 / -1; justify-self: start; }
.workspace .journal-roster .attendance-options label span { font-size: 14px; gap: 8px; background: var(--workspace-soft); color: var(--workspace-text); }
.workspace .journal-roster .attendance-options label span::before { content: ''; width: 12px; height: 12px; flex: 0 0 12px; border: 2px solid currentColor; border-radius: 50%; }
.workspace .journal-roster .attendance-options input:checked + span { background: #dcf4f0; color: #0b6658; box-shadow: inset 0 0 0 2px #0a8b7d; font-weight: 750; }
.workspace .journal-roster .attendance-options input:checked + span::before { background: currentColor; }
html[data-theme='dark'] .workspace .journal-roster .attendance-options input:checked + span { background: #174650; color: #c4fff9; box-shadow: inset 0 0 0 2px #29c9c3; }
.file-picker { position: relative; display: flex !important; align-items: center; flex-wrap: wrap; gap: 10px; }
.file-picker__input { position: absolute; width: 1px !important; height: 1px !important; padding: 0 !important; clip-path: inset(50%); overflow: hidden; }
.file-picker__input:focus-visible + span { outline: 3px solid var(--blue); outline-offset: 3px; }
.file-picker__name { min-width: 0; overflow-wrap: anywhere; color: var(--muted); }
.workspace .form-stack > div:has(> input[type='checkbox']) { display: grid; grid-template-columns: 24px minmax(0, 1fr); column-gap: 10px; align-items: center; }
.workspace .form-stack > div:has(> input[type='checkbox']) > input { grid-column: 1; grid-row: 1; width: 20px; height: 20px; margin: 0; accent-color: var(--blue); }
.workspace .form-stack > div:has(> input[type='checkbox']) > label { grid-column: 2; grid-row: 1; min-height: 44px; display: flex; align-items: center; margin: 0; }
.workspace .form-stack > div:has(> input[type='checkbox']) > .helptext { grid-column: 2; grid-row: 2; font-size: 13px; color: var(--muted); font-weight: 400; }
.workspace .form-stack > div:has(> input[type='checkbox']) > .errorlist { grid-column: 1 / -1; grid-row: 3; }
.workspace .publication-panel .checkbox-row { display: flex; gap: 10px; align-items: center; min-height: 44px; cursor: pointer; }
.workspace .publication-panel .checkbox-row input { width: 20px; height: 20px; flex: 0 0 20px; margin: 0; accent-color: var(--blue); }
.calendar-controls { margin-top: 18px; }
.calendar-controls > summary { display: flex; min-height: 44px; align-items: center; cursor: pointer; color: var(--blue); font-size: 14px; font-weight: 600; gap: 10px; }
.calendar-controls > summary::before { content: '+'; font-size: 20px; }
.calendar-controls[open] > summary::before { content: '−'; }
.calendar-controls:not([open]) { padding: 4px 16px; }
.workspace .calendar-controls[open] .calendar-filters { margin-top: 14px; }
.calendar-month-mini { display: none; }
.group-next-lesson { display: grid; gap: 8px; padding: 18px; border: 1px solid var(--line); border-left: 4px solid var(--cyan); border-radius: 12px; background: var(--workspace-soft); text-decoration: none; margin: 18px 0 24px; }
.group-next-lesson strong { font-size: 20px; }
.group-next-lesson small { color: var(--muted); }
.group-lesson-row { display: grid; grid-template-columns: 86px minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 16px 0; border-top: 1px solid var(--line); text-decoration: none; }
.group-lesson-row time, .group-lesson-row > div { display: grid; gap: 6px; }
.group-lesson-row time { font-size: 13px; line-height: 1.5; white-space: nowrap; }
.group-lesson-row small, .group-lesson-row time span { color: var(--muted); font-size: 13px; }
.paper-checklist { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 20px 0 12px; }
.paper-checklist__item { display: grid; gap: 10px; border: 1px solid var(--line); border-radius: 12px; padding: 16px; background: var(--workspace-soft); }
.paper-checklist__item > span { font-size: 14px; color: var(--muted); }
.paper-status { width: fit-content; padding: 5px 10px; border-radius: 8px; font-size: 14px; background: var(--line); }
.paper-status--available { color: #126047; background: #dbf5e9; }
.paper-status--missing { color: #9d3343; background: #fce8ed; }
.paper-notes { white-space: normal; overflow-wrap: anywhere; }
.paper-summary { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 12px 24px; padding: 16px; margin-bottom: 4px; border: 1px solid var(--line); background: var(--surface); border-radius: 12px; text-decoration: none; font-size: 14px; }
.paper-summary strong { display: inline-block; border-radius: 6px; padding: 4px 8px; }
html[data-theme='dark'] .paper-status--available { color: #9ce5c3; background: #193e32; }
html[data-theme='dark'] .paper-status--missing { color: #ffbdc9; background: #502530; }
@media(max-width:640px) {
  .workspace .schedule-heading .eyebrow { display: none; }
  .workspace .schedule-mode a { min-width: 0; padding: 10px 6px; font-size: 13px; }
  .workspace .calendar-legend { display: none; }
  .calendar-month-mini { display: block; padding: 10px; border: 1px solid var(--line); border-radius: 14px; background: var(--workspace-bg); margin-bottom: 16px; }
  .mini-weekdays, .mini-month-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
  .mini-weekdays span { text-align: center; color: var(--muted); font-size: 12px; padding: 6px 0; }
  .mini-day { min-height: 48px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; border-radius: 9px; text-decoration: none; font-weight: 600; }
  .mini-day small { font-size: 11px; line-height: 14px; color: white; background: var(--blue); border-radius: 5px; padding: 0 5px; }
  .mini-day.outside { color: var(--muted); opacity: .6; }
  .mini-day.today { color: var(--blue); background: var(--workspace-soft); box-shadow: inset 0 0 0 1px var(--cyan); }
  .mini-day:focus-visible { outline: 2px solid var(--blue); outline-offset: -2px; }
  .group-lesson-row { grid-template-columns: 78px minmax(0, 1fr); gap: 12px; }
  .group-lesson-row > .badge { grid-column: 2; justify-self: start; }
  .paper-checklist { grid-template-columns: 1fr; }
}
.workspace .calendar-filters { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 16px; margin: 0; align-items: end; }
.calendar-filters > div { min-width: 0; }
.workspace .calendar-filters .calendar-filter-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.calendar-filter-hint { font-size: 12px; line-height: 1.5; margin: 14px 0 0; }
.workspace .schedule-mode { display: flex; flex-wrap: wrap; width: fit-content; max-width: 100%; }
.calendar-mobile { display: none; }
.calendar-legend { margin-bottom: 14px; flex-wrap: wrap; }
.workspace .day-number .day-view-link { width: auto; height: auto; border-radius: 6px; background: transparent; color: var(--workspace-text); font-weight: 650; }
.workspace .calendar-event-status { display: block; font-size: 10px; line-height: 1.5; margin-top: 4px; }
.direction-0 { --direction-accent: #2583ca; }
.direction-1 { --direction-accent: #11a897; }
.direction-2 { --direction-accent: #9566d3; }
.direction-3 { --direction-accent: #c38a14; }
.direction-4 { --direction-accent: #d15c8b; }
.direction-5 { --direction-accent: #3c9c57; }
.workspace .lesson-chip { border-left-color: var(--direction-accent, #2583ca); grid-template-columns: minmax(0, 1fr); }
.workspace .lesson-chip strong { white-space: normal; overflow-wrap: anywhere; }
.workspace .lesson-chip time { white-space: nowrap; }
html[data-theme="dark"] .workspace .lesson-chip span { color: #c7d8ea; }
.agenda-day .section-heading { gap: 14px; flex-wrap: wrap; }
.agenda-day .section-heading h2 { font-size: 18px; margin: 0; }
.agenda-day--today { border-color: #38aaa9; }
.agenda-event { display: grid; grid-template-columns: 70px minmax(0, 1fr); gap: 16px; margin-top: 14px; padding: 16px; border: 1px solid var(--line); border-left: 4px solid var(--direction-accent, #2583ca); border-radius: 10px; text-decoration: none; background: var(--workspace-soft); }
.agenda-event__time { color: var(--blue); font-weight: 750; display: flex; flex-direction: column; gap: 6px; }
.agenda-event__time small { font-size: 12px; font-weight: 500; color: var(--muted); }
.agenda-event__info { min-width: 0; display: grid; gap: 8px; overflow-wrap: anywhere; }
.agenda-event__info > small { color: var(--muted); font-size: 12px; line-height: 1.5; }
.agenda-event__badges { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.agenda-event.cancelled { border-left-color: #9c5265; }
.agenda-event.cancelled .agenda-event__info > strong { text-decoration: line-through; }
.status-cancelled { background: #fce9ec; color: #983b4c; }
.series-options { display: grid; gap: 10px; padding: 0; border: 0; min-width: 0; }
.group-topic-list { display: grid; gap: 12px; margin: 16px 0; padding: 0; list-style: none; }
.group-topic-list > li { display: grid; gap: 10px; min-width: 0; padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--workspace-soft); overflow-wrap: anywhere; }
.group-topic-list p { margin: 0; line-height: 1.5; }
.group-topic-edit { justify-self: start; color: var(--blue); font-weight: 650; }
.group-topic-list details { margin-top: 0; }
.group-topic-list summary { cursor: pointer; line-height: 1.5; }
.series-options legend { margin-bottom: 12px; font-weight: 700; }
.workspace .series-choice { display: flex; align-items: center; gap: 12px; padding: 12px 14px; min-height: 48px; border: 1px solid var(--line); border-radius: 12px; cursor: pointer; margin: 0; }
.workspace .series-choice input[type='checkbox'] { flex: 0 0 20px; width: 20px; height: 20px; margin: 0; accent-color: var(--blue); }
.series-choice span { min-width: 0; overflow-wrap: anywhere; }
.series-choice:has(input:checked) { border-color: var(--blue); }
.intake-form .series-exceptions .field--check { display: grid; grid-template-columns: 20px minmax(0, 1fr); align-items: start; margin-bottom: 16px; }
.series-exceptions input { margin-top: 3px; }
.workspace .form-stack input[type='time'] { width: 100%; min-width: 0; min-height: 46px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 11px; font: inherit; background: var(--surface); color: var(--navy); }
.workspace .bundle-form fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.workspace .bundle-form legend { margin-bottom: 12px; font-weight: 700; }
.workspace .bundle-choices { display: grid; gap: 10px; }
.workspace .bundle-form .bundle-choice { display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); font-weight: 500; cursor: pointer; }
.workspace .bundle-choice input { flex: 0 0 20px; width: 20px; height: 20px; margin: 0; accent-color: var(--blue); }
.workspace .bundle-choice span { min-width: 0; overflow-wrap: anywhere; }
.workspace .bundle-choice:has(:checked) { border-color: var(--blue); box-shadow: inset 0 0 0 1px var(--blue); }
html[data-theme='dark'] .status-cancelled { background: #462c39; color: #ffc9d1; }
.workspace .document-row { min-width: 0; color: var(--workspace-text); border-color: var(--line); }
.workspace .document-row > div { min-width: 0; flex: 1; overflow-wrap: anywhere; }
.workspace .document-row div span { color: var(--muted); font-size: 14px; line-height: 1.5; }
.workspace .document-row div .badge { font-size: 12px; }
.workspace .document-control-card .section-heading { flex-wrap: wrap; }
/* Shared controls: compact visual rhythm, without shrinking touch targets. */
.workspace .helptext { display: block; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.45; font-weight: 400; }
.workspace .attendance-note { width: 100%; min-width: 0; }
.workspace .attendance-note > summary, .workspace .journal-help > summary { font-size: 14px; font-weight: 500; }
.workspace .attendance-note[open] > input { margin-bottom: 8px; }
.workspace main :is(a, summary):focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; border-radius: 6px; }
.workspace main details > summary { min-height: 44px; padding: 11px 0; box-sizing: border-box; color: var(--blue); cursor: pointer; line-height: 1.45; }
.workspace .create-menu > summary { padding: 0 18px; color: #fff; }
.workspace .document-action { display: flex; align-items: center; min-height: 44px; padding: 8px 0; color: var(--blue); line-height: 1.45; overflow-wrap: anywhere; }
.workspace .document-action + .document-action { border-top: 1px solid var(--line); }
.workspace .form-stack { gap: 16px; }
.workspace .selection-detail { margin: 0; overflow-wrap: anywhere; line-height: 1.5; }
.workspace .representative-students .linked-student { display: grid; gap: 10px; }
.workspace .representative-flags { display: flex; flex-wrap: wrap; gap: 6px; }
.workspace .entity-card__footer { border-top-color: var(--line); font-size: 14px; line-height: 1.5; }
.workspace .list-link, .workspace .person-line { border-bottom-color: var(--line); }
.workspace .section-heading > a:not(.button) { display: inline-flex; align-items: center; min-height: 44px; font-size: 14px; line-height: 1.5; }
.workspace .group-extra-actions > summary { padding: 10px 14px; border: 1px solid var(--line); border-radius: 10px; background: var(--workspace-soft); font-size: 14px; font-weight: 550; }
.workspace .group-menu-options { display: grid; gap: 8px; padding-top: 8px; }
.workspace .representative-students .linked-student > .button { justify-self: start; min-height: 44px; }
.homework-stats-mobile { display: none; margin: 12px 0 0; padding: 0; list-style: none; }
.workspace .homework-stats-help > summary { min-height: 44px; padding: 10px 0; cursor: pointer; font-size: 14px; }
.workspace .homework-stats-card { border: 1px solid var(--line); border-radius: 10px; padding: 14px; background: var(--workspace-soft); min-width: 0; }
.workspace .homework-stats-card h3 { margin: 0 0 12px; font-size: 16px; overflow-wrap: anywhere; }
.workspace .homework-stats-card dl { margin: 0; display: grid; gap: 10px; }
.workspace .homework-stats-card dl > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; }
.workspace .homework-stats-card dt { color: var(--muted); font-size: 14px; overflow-wrap: anywhere; }
.workspace .homework-stats-card dd { margin: 0; font-size: 14px; overflow-wrap: anywhere; }
@media (max-width: 640px) {
  .workspace .homework-stats-desktop { display: none; }
  .workspace .homework-stats-mobile { display: grid; gap: 12px; }
}
.publication-preview-mobile { display: none; margin: 0; padding: 0; list-style: none; }
.workspace .publication-preview-mobile li { padding: 12px 0; border-bottom: 1px solid var(--line); overflow-wrap: anywhere; }
.workspace .publication-preview-mobile li:last-child { border-bottom: 0; }
.workspace .publication-preview-mobile h3 { margin: 6px 0; font-size: 16px; }
.workspace .publication-preview-mobile p { margin: 6px 0 10px; font-size: 14px; }
.workspace .publication-preview-date { display: flex; align-items: center; min-height: 44px; color: var(--blue); font-size: 14px; }
@media (max-width: 640px) {
  .workspace .publication-preview-desktop { display: none; }
  .workspace .publication-preview-mobile { display: block; }
}
.workspace .form-stack label { font-size: 14px; font-weight: 550; line-height: 1.4; }
.workspace .form-stack .field > label:not(.choice-label) { display: block; }
.workspace .form-stack input:not([type='checkbox']):not([type='radio']):not([type='hidden']):not([type='file']),
.workspace .form-stack select, .workspace .form-stack textarea { min-width: 0; width: 100%; font-size: 16px; font-weight: 400; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); color: var(--workspace-text); }
.workspace .form-stack input:not([type='checkbox']):not([type='radio']):not([type='hidden']):not([type='file']),
.workspace .form-stack select { min-height: 44px; padding: 10px 12px; }
.workspace .form-stack .field--check { display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px; margin-top: 10px; }
.workspace .form-stack .choice-label, .workspace .staff-offices label {
  display: flex; align-items: center; gap: 10px; min-height: 44px; width: 100%;
  padding: 10px 12px; margin: 0; border: 1px solid var(--line); border-radius: 9px;
  background: var(--workspace-soft); cursor: pointer; font-weight: 500; box-sizing: border-box;
}
.workspace .choice-label span { min-width: 0; overflow-wrap: anywhere; }
.workspace .choice-label input[type='checkbox'], .workspace .staff-offices input[type='checkbox'] { flex: 0 0 20px; width: 20px; height: 20px; margin: 0; accent-color: var(--blue); }
.workspace .choice-label:has(:checked), .workspace .staff-offices label:has(:checked) { border-color: var(--blue); }
.workspace .choice-label:has(:disabled), .workspace .staff-offices label:has(:disabled) { cursor: not-allowed; opacity: .7; }
.workspace .choice-label:focus-within, .workspace .staff-offices label:focus-within { outline: 2px solid var(--blue); outline-offset: 2px; }
.workspace .intake-flags { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 10px; margin: 12px 0 16px; }
.workspace .intake-flags .field--check { margin-top: 0; }
.workspace .staff-role-help { margin-top: 12px; }
.workspace .staff-role-help summary { min-height: 44px; display: flex; align-items: center; gap: 8px; color: var(--blue); font-size: 14px; cursor: pointer; }
.workspace .staff-role-help summary::before { content: '+'; font-size: 20px; }
.workspace .staff-role-help[open] summary::before { content: '−'; }
.workspace .staff-role-help summary::-webkit-details-marker { display: none; }
.workspace .integration-notice { background: var(--workspace-soft); color: var(--workspace-text); border: 1px solid var(--line); }
.workspace-search-toggle { display: none; }
.list-filter-panel { margin: 16px 0; }
.workspace .list-filter-panel > summary { display: none; }
.workspace .list-filter-panel .filter-bar { margin: 0; }
.workspace .document-audit > summary { font-size: 14px; font-weight: 550; }
.workspace .audit-row > div { min-width: 0; overflow-wrap: anywhere; }
.workspace .field--multiple { margin: 0; padding: 0; border: 0; min-width: 0; }
.workspace .field--multiple legend { margin-bottom: 8px; font-size: 14px; font-weight: 550; }
.workspace .field-required { color: var(--blue); font-weight: 700; }
.workspace .form-stack .field--invalid > :is(input, select, textarea),
.workspace .field--invalid > .choice-label,
.workspace .field--invalid > .choice-list,
.workspace .field--invalid [data-single-choice-picker] > select { border-color: var(--workspace-error); }
.workspace .form-stack .field--invalid > input:not([type='checkbox']):not([type='radio']):not([type='hidden']):not([type='file']) { border-color: var(--workspace-error); }
.workspace #financial-contract { scroll-margin-top: 128px; }
.workspace .choice-search:not([hidden]) { display: grid; gap: 6px; margin-bottom: 10px; }
.workspace .choice-search input { width: 100%; min-height: 44px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); color: var(--workspace-text); font: inherit; }
.workspace main input::placeholder, .workspace main textarea::placeholder { color: var(--muted); opacity: 1; }
.workspace .choice-list { max-height: 260px; overflow-y: auto; padding: 3px; }
.workspace .choice-list label { display: flex; gap: 10px; align-items: center; min-height: 44px; padding: 10px; margin: 0 0 6px; border: 1px solid var(--line); border-radius: 9px; background: var(--workspace-soft); font-weight: 500; cursor: pointer; overflow-wrap: anywhere; }
.workspace .choice-list input[type='checkbox'] { flex: 0 0 20px; width: 20px; height: 20px; margin: 0; accent-color: var(--blue); }
.workspace .choice-list label:has(:checked) { border-color: var(--blue); }
.workspace .choice-list label:focus-within { outline: 2px solid var(--blue); outline-offset: 1px; }
.workspace .choice-list label:has(:disabled) { cursor: not-allowed; opacity: .7; }
@media (min-width: 641px) { .workspace .lead-board-hint { display: none; } }
@media (max-width: 680px) {
  /* The desktop search flex-basis is a width; in a column it became 320px tall. */
  .workspace .document-filter input { flex: none; height: 44px; }
  .workspace .document-filter select { width: 100%; max-width: none; min-height: 44px; }
  /* Reset the task search basis as soon as the shared filter becomes a column. */
  .workspace .workspace-filter input:not([type='hidden']) { flex: none; height: 48px; }
}
@media (max-width: 640px) {
  html { scroll-padding-top: 128px; scroll-padding-bottom: 100px; }
  .workspace .lesson-section-nav, .workspace .contract-section-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .workspace .form-card > h1 { font-size: 24px; line-height: 1.25; overflow-wrap: anywhere; }
  .workspace .journal-roster .attendance-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  /* html already reserves 128px for the mobile header; do not count it twice. */
  .workspace :is(#lesson-journal, #lesson-materials, #lesson-homework, #lesson-documents) { scroll-margin-top: 0; }
  .workspace .review-form { grid-template-columns: minmax(0, 1fr); }
  .workspace .review-form input, .workspace .review-form select { font-size: 16px; }
  .workspace .review-form > .button { width: 100%; }
  .workspace .homework-card__heading p, .workspace .submission-item__meta span { font-size: 14px; line-height: 1.5; color: var(--muted); }
  .workspace .journal-roster .attendance-options label span { height: 100%; min-height: 48px; padding: 8px 6px; gap: 6px; overflow-wrap: anywhere; }
  .workspace .pupil-main > a { display: flex; align-items: center; min-height: 44px; }
  .workspace .pupil-main > a > h2 { margin: 0; }
  .workspace .pupil-state > a { display: inline-flex; align-items: center; min-height: 44px; padding: 10px 0; font-size: 14px; line-height: 1.5; }
  .workspace :is(.pagination, .learning-pagination) a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; min-width: 44px; }
  .workspace .schedule-mode a { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
  .workspace .field { scroll-margin-top: 128px; }
  .workspace .list-filter-panel { padding: 0 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); }
  .workspace .list-filter-panel > summary { display: list-item; font-size: 14px; font-weight: 550; }
  .workspace .list-filter-panel[open] .filter-bar { margin: 8px 0 14px; }
  .workspace .filter-bar input, .workspace .filter-bar select { min-height: 44px; font-size: 16px; }
  .workspace .lead-board-hint { font-size: 13px; margin: 12px 0; }
  .workspace .card h2 { font-size: 18px; line-height: 1.35; }
  .workspace .card h1 { font-size: 24px; line-height: 1.2; letter-spacing: -.5px; }
  .workspace .entity-card h2 { font-size: 18px; line-height: 1.35; overflow-wrap: anywhere; }
  .workspace .audit-row { flex-direction: column; align-items: start; gap: 8px; }
  .workspace { font-size: 16px; line-height: 1.5; }
  .workspace .topbar { padding: 8px 12px; gap: 6px 8px; }
  .workspace .brand { font-size: 24px; letter-spacing: -1.3px; }
  .workspace .topbar__right { gap: 2px; min-width: 0; }
  .workspace .topbar__name { max-width: none; width: 44px; min-height: 44px; display: flex; align-items: center; justify-content: center; }
  .workspace .topbar .link-button { min-height: 44px; min-width: 44px; display: inline-flex; align-items: center; justify-content: center; padding: 0; }
  .workspace .settings-link > .ui-icon, .workspace .link-button > .ui-icon { display: block; }
  .workspace .topbar-action-text { display: none; }
  .workspace .notification-link, .workspace .workspace-search-toggle { min-height: 44px; min-width: 44px; justify-content: center; }
  .js .workspace-search-toggle { display: inline-flex; align-items: center; border: 0; border-radius: 8px; color: #fff; background: transparent; cursor: pointer; }
  .workspace-search-toggle:focus-visible { outline: 2px solid #32d2e8; outline-offset: -2px; }
  .js .workspace-search:not(.is-open) { display: none; }
  .workspace-search { height: 44px; gap: 8px; }
  .workspace-search input { font-size: 16px; }
  .workspace-office { height: 44px; min-width: 0; }
  .workspace-office select { min-height: 42px; font-size: 16px; }
  .workspace .shell { width: calc(100% - 24px); margin: 16px auto 0; }
  .workspace .page-heading { gap: 12px; margin-bottom: 16px; }
  .workspace .page-heading h1, .workspace .command-heading h1 { font-size: 24px; line-height: 1.2; letter-spacing: -.5px; margin: 0 0 8px; }
  .workspace .page-heading p { font-size: 14px; line-height: 1.45; }
  .workspace .eyebrow { margin-bottom: 6px; font-size: 11px; }
  .workspace .card, .workspace .command-column { padding: 16px; border-radius: 14px; }
  .learning-grid { grid-template-columns: minmax(0, 1fr); }
  .workspace .lesson-hero { padding: 20px; border-radius: 16px; gap: 16px; }
  .workspace .lesson-hero h1 { font-size: 24px; line-height: 1.25; margin: 6px 0 12px; overflow-wrap: anywhere; }
  .workspace .lesson-hero > div > p:not(.eyebrow) { font-size: 14px; line-height: 1.5; }
  .workspace .lesson-topic { padding: 14px; }
  .workspace .command-column .workspace-empty { padding: 16px 0; }
  .workspace .intake-section h2, .workspace .section-heading h2 { font-size: 18px; line-height: 1.35; }
  .workspace .intake-section > p { margin: 8px 0 12px; }
  .workspace .intake-grid { gap: 0; }
  .workspace .form-stack textarea { height: 128px; min-height: 112px; resize: vertical; }
  .workspace .intake-form textarea[rows='3'], .workspace [data-group-intake] textarea[rows='3'], .workspace [data-representative-intake] textarea[rows='3'] { height: 96px; min-height: 96px; }
  .workspace .intake-form .field { margin-top: 12px; }
  .workspace .intake-flags { grid-template-columns: minmax(0, 1fr); }
  .workspace .intake-flags .field--check { margin-top: 0; }
  .workspace .form-actions { display: flex; flex-wrap: wrap; gap: 10px; }
  .workspace .form-actions > .button { flex: 1 1 120px; padding: 10px 14px; }
  .workspace .staff-actions { gap: 10px; }
  .workspace .details { overflow-wrap: anywhere; }
  .workspace #groups .list-link { display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .workspace #groups .list-link span { font-size: 14px; line-height: 1.5; }
  .workspace .group-card-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; gap: 10px; }
  .workspace .group-card-actions > .button { width: 100%; }
  .workspace .group-extra-actions { grid-column: 1 / -1; }
  .workspace .pupil-main > span, .workspace .pupil-family span, .workspace .pupil-state { font-size: 14px; line-height: 1.5; }
  .workspace #financial-contract { scroll-margin-top: 185px; }
  .workspace .button, .workspace .form-stack label, .workspace .field--multiple legend,
  .workspace .helptext, .workspace .workspace-date, .workspace .workspace-empty p,
  .workspace .column-caption, .workspace .command-task small, .workspace .command-task .muted,
  .workspace .attention-link small, .workspace .column-filter a,
  .workspace .command-column .section-heading a, .workspace .lead-card p,
  .workspace .lead-card small, .workspace .lead-card__step,
  .workspace .mobile-sections .nav-section a { font-size: 14px; line-height: 1.5; }
  .workspace .command-task > strong, .workspace .attention-link { font-size: 16px; }
  .workspace .command-column .section-heading a, .workspace .column-filter a,
  .workspace .mobile-sections .nav-section a, .workspace .create-menu__options a { min-height: 44px; display: inline-flex; align-items: center; }
  .workspace .mobile-sections .nav-section a, .workspace .create-menu__options a { display: flex; }
  .workspace .command-column .column-filter { padding-bottom: 8px; gap: 8px; }
  .workspace .lead-card > .muted { font-size: 14px; line-height: 1.5; }
  .workspace .command-column .section-heading { flex-wrap: wrap; gap: 8px; }
  .workspace .account-facts { font-size: 14px; line-height: 1.5; }
  .workspace .workspace-tabs a { min-height: 44px; display: inline-flex; align-items: center; font-size: 14px; line-height: 1.5; }
  .workspace .workspace-task-row p, .workspace .workspace-task-row small,
  .workspace .task-deadline { font-size: 14px; line-height: 1.5; }
  .workspace .workspace-task-row .status-badge { font-size: 13px; line-height: 1.4; }
  .workspace .calendar-controls > summary { display: flex; gap: 10px; }
  .calendar-controls > summary::before { content: '+'; font-size: 20px; }
  .calendar-controls[open] > summary::before { content: '−'; }
  .calendar-controls > summary::-webkit-details-marker { display: none; }
  .workspace .calendar-controls[open] .calendar-filters { margin-top: 12px; }
  .workspace .calendar-controls:not([open]) { padding: 4px 16px; }
  .workspace .document-row { flex-direction: column; align-items: stretch; gap: 12px; }
  .workspace .document-section-heading { flex-direction: column; align-items: stretch; gap: 12px; }
  .workspace .document-section-heading > .button { align-self: start; }
  .workspace .document-row .button { align-self: start; }
  .calendar-desktop { display: none; }
  .calendar-mobile { display: block; }
  .workspace .calendar-filters { grid-template-columns: minmax(0, 1fr); }
  .agenda-event { grid-template-columns: 58px minmax(0, 1fr); gap: 12px; padding: 12px; }
  .agenda-day .section-heading h2 { font-size: 16px; }
  .workspace .agenda-event__info > small, .workspace .agenda-event__time small { font-size: 14px; line-height: 1.5; }
  .workspace .agenda-event__badges .badge, .workspace .agenda-event__badges .status-badge { font-size: 13px; line-height: 1.4; }
  .workspace .calendar-legend { flex-wrap: wrap; font-size: 14px; line-height: 1.5; }
}
@media (max-width: 340px) {
  .workspace .journal-roster .attendance-options label:first-of-type,
  .workspace .journal-roster .attendance-options label:last-of-type { grid-column: 1 / -1; }
  .workspace .journal-roster .attendance-options label span { overflow-wrap: normal; }
}

.workspace #contract-charges { scroll-margin-top: 128px; }
.workspace .charge-form textarea[rows='3'] { height: 96px; min-height: 96px; }
.workspace .charge-audit summary { font-size: 14px; font-weight: 500; }
.workspace .charge-audit p { font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; }
.workspace #contract-payments { scroll-margin-top: 128px; }
@media (max-width: 640px) {
  .workspace :is(#contract-expresspay, #contract-payments, #contract-charges, #contract-documents) { scroll-margin-top: 0; }
  .workspace .document-row > .button { width: 100%; align-self: stretch; }
}
.workspace #contract-payments .document-row span { font-size: 14px; line-height: 1.5; }

.calendar-period-actions { display: flex; gap: 8px; }
.lesson-report-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
.lesson-report-stats a { display: grid; gap: 8px; padding: 16px; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; text-decoration: none; }
.lesson-report-stats a:hover { border-color: var(--cyan); }
.lesson-report-stats span { color: var(--muted); font-size: 14px; }
.lesson-report-stats strong { font-size: 26px; }
.lesson-report-attendance { display: grid; grid-template-columns: 1fr auto; gap: 12px; margin-bottom: 16px; }
.lesson-report-attendance h2, .lesson-report-list h2 { margin: 0; font-size: 20px; }
.lesson-report-attendance p, .lesson-report-list-heading p { margin: 6px 0 0; font-size: 14px; }
.lesson-report-percent { display: grid; align-content: start; text-align: right; gap: 4px; }
.lesson-report-percent strong { font-size: 26px; }
.lesson-report-percent span { font-size: 14px; color: var(--muted); }
.lesson-report-marks { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 8px 0 0; grid-column: 1 / -1; }
.lesson-report-marks dt { color: var(--muted); font-size: 14px; line-height: 1.5; }
.lesson-report-marks dd { margin: 4px 0 0; font-size: 20px; font-weight: 650; }
.lesson-report-attendance .lesson-report-guests { grid-column: 1 / -1; }
.lesson-report-filters { margin-bottom: 20px; }
.lesson-report-filters > summary, .lesson-report-method > summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; font-size: 16px; font-weight: 650; }
.lesson-report-filters > summary::after, .lesson-report-method > summary::after { content: '⌄'; margin-left: auto; padding-left: 12px; }
.lesson-report-filters[open] > summary::after, .lesson-report-method[open] > summary::after { content: '⌃'; }
.lesson-report-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lesson-report-filter-grid .form-actions, .lesson-report-filter-grid .errorlist { grid-column: 1 / -1; }
.lesson-report-list { display: grid; gap: 12px; }
.lesson-report-list-heading, .lesson-report-row-heading { display: flex; gap: 12px; justify-content: space-between; align-items: start; }
.lesson-report-list-heading { align-items: center; }
.lesson-report-row-heading a { display: grid; gap: 4px; min-width: 0; text-decoration: none; }
.lesson-report-row-heading strong { font-size: 18px; overflow-wrap: anywhere; }
.lesson-report-row-heading a span { font-size: 14px; color: var(--muted); }
.lesson-report-row .badge { flex-shrink: 0; font-size: 13px; }
.lesson-report-row p { font-size: 14px; line-height: 1.6; overflow-wrap: anywhere; margin: 10px 0; }
.lesson-report-row > .button { margin-top: 6px; }
.lesson-report-guests, .lesson-report-method { color: var(--muted); font-size: 14px; line-height: 1.6; }
.lesson-report-pagination { display: flex; justify-content: center; align-items: center; gap: 12px; }
.lesson-report-method { margin-top: 18px; }
@media (max-width: 640px) {
  .workspace .lesson-report-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .workspace .lesson-report-stats a { padding: 14px; }
  .workspace .lesson-report-attendance { grid-template-columns: 1fr; }
  .workspace .lesson-report-percent { text-align: left; }
  .workspace .lesson-report-marks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .workspace .lesson-report-filter-grid { grid-template-columns: 1fr; }
  .workspace .lesson-report-filter-grid input, .workspace .lesson-report-filter-grid select { font-size: 16px; min-height: 44px; }
  .workspace .lesson-report-row-heading { flex-direction: column; gap: 8px; }
  .workspace .lesson-report-list-heading { flex-wrap: wrap; }
  .workspace .lesson-report-row > .button { width: 100%; }
  .workspace .lesson-report-row-marks { padding: 10px; border: 1px solid var(--line); border-radius: 10px; }
}
.calendar-extra-actions { min-width: 0; }
.workspace .payments-register { padding: 0; overflow: hidden; min-width: 0; }
.payments-toolbar { display: grid; grid-template-columns: minmax(180px, 2fr) repeat(2, minmax(135px, 1fr)) minmax(130px, 1fr) auto; gap: 12px; align-items: end; padding: 20px; border-bottom: 1px solid var(--line); }
.payments-toolbar label { display: block; margin-bottom: 7px; font-size: 13px; font-weight: 650; }
.workspace .payments-toolbar :is(input:not([type=hidden]), select) { width: 100%; min-width: 0; min-height: 44px; padding: 10px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); color: var(--workspace-text); font: inherit; font-size: 14px; }
.payment-presets, .payment-filter-errors { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: 14px; }
.payment-presets a { min-height: 32px; display: inline-flex; align-items: center; color: var(--blue); }
.payment-summary { padding: 16px 20px; display: flex; flex-wrap: wrap; gap: 8px 24px; justify-content: space-between; align-items: center; }
.payment-summary > div { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px 18px; }
.payment-summary strong { font-size: 24px; }
.payment-summary :is(span,p) { margin: 0; font-size: 14px; color: var(--muted); }
.payment-table-scroll { overflow-x: auto; }
.payments-table { min-width: 720px; }
.payments-table th a { display: inline-flex; gap: 4px; min-height: 44px; align-items: center; text-transform: none; letter-spacing: 0; text-decoration: none; font-size: 14px; }
.payments-table th, .payments-table td { border-bottom-color: var(--line); padding: 8px 20px; }
.payments-table tbody td { padding-top: 16px; padding-bottom: 16px; font-size: 14px; }
.payments-table small { display: block; color: var(--muted); margin-top: 4px; font-size: 12px; }
.payments-table .payment-amount { font-weight: 650; white-space: nowrap; }
.payments-table .payment-empty { text-align: center; height: 130px; color: var(--muted); }
.payments-table tbody tr:hover { background: var(--workspace-soft); }
.payments-register .pagination { padding: 16px 20px; }
.program-source-documents { margin-bottom: 20px; }
.group-schedule-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.group-upcoming { margin: 18px 0; }
.group-upcoming > summary { cursor: pointer; min-height: 44px; padding: 12px 0; font-weight: 650; }
.workspace .group-save-actions { display: flex !important; flex-wrap: wrap; gap: 10px; }
@media (max-width: 640px) {
  .group-save-actions > .button { width: 100%; }
  .group-schedule-actions > .button { flex: 1; }
}
.week-calendar { overflow: auto; max-height: min(650px, calc(100dvh - 350px)); min-height: 280px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); overscroll-behavior: contain; }
.week-timeline { display: grid; grid-template-columns: 64px repeat(7, minmax(142px, 1fr)); min-width: 1058px; }
.week-corner, .week-day-heading { position: sticky; top: 0; z-index: 5; min-height: 62px; border-bottom: 1px solid var(--line); background: var(--surface); padding: 10px; }
.week-corner { left: 0; z-index: 7; color: var(--muted); font-size: 12px; display: flex; align-items: center; }
.week-day-heading { display: flex; align-items: center; justify-content: space-between; border-left: 1px solid var(--line); font-size: 13px; }
.week-day-heading > a:first-child { text-decoration: none; display: grid; gap: 4px; }
.week-day-heading strong { font-size: 17px; }
.week-day-heading.today { box-shadow: inset 0 -3px var(--cyan); }
.week-add { min-width: 32px; min-height: 40px; display: grid; place-items: center; text-decoration: none; font-size: 22px; color: var(--blue); }
.week-time-axis { position: sticky; left: 0; z-index: 4; background: var(--surface); color: var(--muted); font-size: 12px; }
.week-time-axis span { position: absolute; right: 8px; padding-top: 2px; }
.week-day-track { position: relative; min-width: 0; border-left: 1px solid var(--line); background: var(--surface); }
.week-day-track.today { background-color: var(--workspace-soft); }
.week-event { position: absolute; display: flex; flex-direction: column; gap: 4px; padding: 8px; border: 1px solid var(--line); border-left: 3px solid var(--direction-accent); border-radius: 8px; background: var(--workspace-soft); text-decoration: none; overflow: hidden; font-size: 12px; line-height: 1.3; }
.week-event time { font-size: 11px; font-weight: 650; white-space: nowrap; }
.week-event strong, .week-event-teacher { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; overflow-wrap: anywhere; flex-shrink: 0; }
.week-event-teacher { font-weight: 550; }
.week-event small { display: block; font-size: 11px; color: var(--muted); }
.week-event.completed { border-left-color: #1d9669; }
.week-event.cancelled { border-left-style: dashed; }
.week-event.cancelled strong { text-decoration: line-through; }
.week-event:hover, .week-event:focus-visible { z-index: 3; outline: 2px solid var(--direction-accent); }
.week-agenda { margin-top: 18px; }
.week-agenda > summary { cursor: pointer; font-weight: 650; min-height: 44px; padding: 12px 0; }
@media (max-width: 1100px) {
  .payments-toolbar { grid-template-columns: repeat(2, minmax(0, 1fr)) auto; }
  .payments-toolbar .payment-search { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .workspace .payments-toolbar { padding: 16px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .workspace .payments-toolbar :is(input:not([type=hidden]),select) { font-size: 16px; }
  .payments-toolbar > .button { align-self: end; }
  .payment-summary { padding: 16px; }
  .week-calendar { max-height: min(520px, calc(100dvh - 480px)); }
}
.calendar-extra-actions > summary { cursor: pointer; list-style: none; }
.calendar-extra-actions > summary::-webkit-details-marker { display: none; }
.calendar-extra-actions > div { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
@media (max-width: 640px) {
  .workspace .schedule-heading .heading-actions { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
  .workspace .calendar-period-actions { grid-column: 1 / -1; }
  .workspace .calendar-period-actions > .button { flex: 1; }
  .workspace .calendar-extra-actions[open] { grid-column: 1 / -1; }
  .workspace .calendar-extra-actions > div { flex-direction: column; }
  .workspace .schedule-mode { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); width: 100%; }
}
@media (max-width: 360px) {
  .workspace .payments-toolbar { grid-template-columns: minmax(0, 1fr); }
}
