.school-theme { background: var(--bg); font-size: var(--dash-text-default); line-height: var(--dash-line-height); }
.school-theme h2 { font-size: var(--dash-text-heading); letter-spacing: 0; }
.school-theme h3 { font-size: var(--dash-text-default); letter-spacing: 0; }
.school-theme .brand-mark { background: var(--accent); box-shadow: none; font-family: var(--font-body); }
.school-theme .button { box-shadow: none; transition: none; }
.school-theme .button:hover { box-shadow: none; transform: none; }
.school-theme .button.small { min-height: var(--dash-control-height); }
.school-theme .button:active:not(:disabled) { transform: scale(var(--dash-press-scale)); }
.school-theme .notice { box-shadow: none; }
.school-theme input:not([type="radio"]):not([type="checkbox"]):not([type="hidden"]), .school-theme select, .school-theme textarea, .school-theme .auth-card select { background: var(--dash-input-background); border-color: var(--dash-input-border); transition: none; box-shadow: var(--dash-input-shadow); font-size: var(--dash-text-body); }
.school-theme input:not([type="radio"]):not([type="checkbox"]):not([type="hidden"]):focus, .school-theme select:focus, .school-theme textarea:focus { border-color: var(--focus); outline: var(--dash-focus-width) solid var(--focus); outline-offset: var(--dash-focus-width); box-shadow: none; }
.skip-to-workspace { position: fixed; inset-block-start: var(--space-2); inset-inline-start: var(--space-4); z-index: 30; min-height: var(--dash-control-height); padding: var(--space-3) var(--space-4); border-radius: var(--radius-small); background: var(--accent); color: var(--on-accent); transform: translateY(calc(-100% - var(--space-4))); text-decoration: none; }
.skip-to-workspace:focus { transform: none; color: var(--on-accent); }
.school-theme #main:focus { outline: none; }
.school-theme .auth-intro { background: var(--dash-sidebar); padding: var(--space-12); }
.school-theme .auth-intro h1 { font-size: var(--dash-auth-title); font-weight: 500; letter-spacing: 0; line-height: 1.35; }
.school-theme .auth-intro .brand { font-size: var(--dash-text-heading); letter-spacing: 0; }
.school-theme .auth-card { max-width: var(--dash-auth-width); padding: var(--space-8) var(--space-6); }
.school-theme .auth-card h1 { font-size: var(--dash-text-title); font-weight: 500; letter-spacing: 0; line-height: 1.4; }
.school-theme .auth-card > .stack { margin-top: var(--space-6); }
.school-theme .auth-card .notice { font-size: var(--dash-text-body); }
.school-shell .sidebar { background: var(--dash-sidebar); border-inline-end: var(--dash-divider) solid var(--line); padding: 0; gap: 0; }
.school-shell .brand-row { min-height: var(--dash-header-height); padding: var(--space-2) var(--space-5); border-bottom: var(--dash-divider) solid var(--line); flex-shrink: 0; }
.school-shell .mobile-menu { display: none; }
.sidebar-menu { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.sidebar-tools { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-3) var(--space-4); border-block-end: var(--dash-divider) solid var(--line); flex-shrink: 0; }
.sidebar-tools .dashboard-search { max-width: none; width: 100%; flex: 0 0 auto; }
.sidebar-tools .dashboard-search-box { padding-inline: var(--space-3); }
.sidebar-tools .dashboard-search-results { max-height: min(var(--dash-results-height), 50dvh); }
.sidebar-tools .dashboard-account > summary { gap: var(--space-2); }
.sidebar-tools .dashboard-account-name { flex: 1; min-width: 0; max-width: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-tools .dashboard-account-menu { inset-inline: 0; min-width: 0; }
.dashboard-breadcrumb { display: flex; align-items: center; gap: var(--space-3); min-width: 0; font-size: var(--dash-text-body); }
.dashboard-breadcrumb a { display: inline-flex; align-items: center; min-height: var(--dash-control-height); text-decoration: none; flex-shrink: 0; }
.dashboard-breadcrumb > span { overflow-wrap: anywhere; }
.dashboard-inbox { display: inline-flex; align-items: center; gap: var(--space-2); margin-inline-start: auto; min-height: var(--dash-control-height); padding: var(--space-2) var(--space-3); border-radius: var(--radius-small); color: var(--ink-secondary); text-decoration: none; white-space: nowrap; font-size: var(--dash-text-body); }
.dashboard-inbox:hover { background: var(--soft); color: var(--accent); }
.school-shell .brand { gap: var(--space-2); color: var(--accent); font: 700 var(--dash-text-body)/1.3 var(--font-body); }
.school-shell .brand > span:last-child { letter-spacing: var(--dash-label-tracking); text-transform: uppercase; }
.school-shell .brand small { font-size: var(--dash-text-small); font-weight: 400; letter-spacing: 0; text-transform: none; }
.school-shell .brand-mark { width: var(--dash-avatar); height: var(--dash-avatar); font: 600 var(--dash-text-body)/1 var(--font-body); background: var(--accent); color: var(--on-accent); border-radius: var(--radius-pill); box-shadow: none; }
.school-shell .brand img { width: var(--dash-avatar); height: var(--dash-avatar); object-fit: contain; }
.school-shell #school-navigation { padding: var(--space-5) var(--space-4); margin: 0; }
.school-shell .dashboard-nav-label { color: var(--muted); letter-spacing: var(--dash-label-tracking); font-size: var(--dash-text-small); padding: var(--space-2) var(--space-3); margin-bottom: var(--space-2); }
.school-shell .nav-link { font-size: var(--dash-text-body); font-weight: 400; gap: var(--space-3); transition: none; }
.school-shell .nav-link.selected { font-weight: 600; }
.school-shell .navigation-group > summary { gap: var(--space-3); font-size: var(--dash-text-body); font-weight: 400; }
.school-shell .navigation-group > summary .dashboard-nav-label-text { flex: 1; }
.school-shell .navigation-group[open] > summary { color: var(--accent); background: var(--accent-subtle); }
.school-shell .nav-link, .school-shell .navigation-group > summary { min-height: var(--dash-control-height); border-inline-start: var(--dash-focus-width) solid transparent; }
.school-shell .nav-link.selected, .school-shell .navigation-group--current > summary { border-inline-start-color: var(--accent); }
.navigation-group--current > summary > .dashboard-icon { mask-image: var(--dashboard-icon-active); -webkit-mask-image: var(--dashboard-icon-active); }
.school-shell .navigation-group--utility { border-block-start: var(--dash-divider) solid var(--line); padding-block-start: var(--space-3); margin-block-start: var(--space-6); }
.school-shell .navigation-children { margin-inline-start: var(--space-5); padding-inline-start: var(--space-2); border-color: var(--line); }
.school-shell .navigation-children .nav-link { font-size: var(--dash-text-small); }
.school-shell .navigation-children .nav-link > .dashboard-icon { width: var(--dash-child-icon); height: var(--dash-child-icon); flex-basis: var(--dash-child-icon); }
.school-shell .nav-link.selected > .dashboard-icon { mask-image: var(--dashboard-icon-active, var(--dashboard-icon)); -webkit-mask-image: var(--dashboard-icon-active, var(--dashboard-icon)); }
.school-shell .navigation-children .navigation-group > summary { font-size: var(--dash-text-small); }
.dashboard-icon { width: var(--dash-icon); height: var(--dash-icon); display: inline-block; flex: 0 0 var(--dash-icon); background: currentColor; mask: var(--dashboard-icon) center / contain no-repeat; -webkit-mask: var(--dashboard-icon) center / contain no-repeat; }
.dashboard-icon--chart { --dashboard-icon: url('/dashboard-icons/light/chart.svg'); }
.selected > .dashboard-icon--chart { --dashboard-icon: url('/dashboard-icons/bold/chart.svg'); }
.dashboard-icon--search { --dashboard-icon: url('/dashboard-icons/light/search.svg'); }
.dashboard-icon--notification { --dashboard-icon: url('/dashboard-icons/light/notification.svg'); }
.dashboard-icon--user { --dashboard-icon: url('/dashboard-icons/light/user.svg'); }
.dashboard-icon--work { --dashboard-icon: url('/dashboard-icons/light/work.svg'); }
.dashboard-icon--calendar { --dashboard-icon: url('/dashboard-icons/light/calendar.svg'); }
.school-shell .sidebar-bottom { margin-top: auto; border-top: var(--dash-divider) solid var(--line); padding: var(--space-5); font-size: var(--dash-text-small); color: var(--muted); }
.school-shell .workspace { min-width: 0; background: var(--bg); }
.school-shell .topbar { min-height: var(--dash-header-height); padding: var(--space-2) var(--dash-content-padding); background: var(--surface); backdrop-filter: none; gap: var(--space-5); }
.dashboard-search { flex: 1; position: relative; max-width: var(--dash-search-width); min-width: 0; }
.dashboard-search[hidden], .dashboard-search-results[hidden] { display: none; }
.dashboard-search-box { display: flex; align-items: center; gap: var(--space-3); background: var(--soft); border: var(--dash-divider) solid transparent; border-radius: var(--radius-small); padding-inline: var(--space-4); }
.dashboard-search-box:focus-within { border-color: var(--focus); outline: var(--dash-focus-width) solid var(--focus-ring); }
.school-shell #workspace-search, .school-shell #workspace-search:focus { background: transparent; border: 0; box-shadow: none; outline: none; margin: 0; padding: var(--space-2) 0; min-height: var(--dash-control-height); width: 100%; font-size: var(--dash-text-body); }
.dashboard-search-box .dashboard-icon { color: var(--muted); }
.dashboard-search-results { position: absolute; inset-inline: 0; top: calc(100% + var(--space-2)); background: var(--surface); border: var(--dash-divider) solid var(--line); box-shadow: var(--dash-menu-shadow); border-radius: var(--radius-small); padding: var(--space-2); max-height: var(--dash-results-height); overflow: auto; z-index: 20; }
.dashboard-search-results ul { margin: 0; padding: 0; list-style: none; }
.dashboard-search-results a { display: flex; align-items: center; min-height: var(--space-12); padding: var(--space-3); border-radius: var(--radius-small); color: var(--ink); text-decoration: none; }
.dashboard-search-results a:hover, .dashboard-search-results a:focus-visible { background: var(--accent-subtle); color: var(--accent); }
.dashboard-search-results p { margin: 0; padding: var(--space-3); }
.dashboard-top-actions { display: flex; align-items: center; gap: var(--space-4); margin-inline-start: auto; }
.dashboard-account { position: relative; }
.dashboard-account > summary { display: flex; align-items: center; gap: var(--space-3); min-height: var(--space-12); cursor: pointer; list-style: none; }
.dashboard-account > summary::-webkit-details-marker { display: none; }
.dashboard-avatar { display: grid; place-items: center; width: var(--dash-avatar); height: var(--dash-avatar); border-radius: var(--radius-pill); color: var(--accent); background: var(--accent-subtle); flex-shrink: 0; }
.dashboard-account-name { max-width: var(--dash-account-width); font-size: var(--dash-text-body); font-weight: 500; }
.dashboard-account-name small { display: block; color: var(--muted); font-size: var(--dash-text-small); font-weight: 400; }
.dashboard-account-menu { position: absolute; top: calc(100% + var(--space-2)); inset-inline-end: 0; min-width: var(--dash-account-width); background: var(--surface); border: var(--dash-divider) solid var(--line); border-radius: var(--radius-small); padding: var(--space-2); box-shadow: var(--dash-menu-shadow); z-index: 20; }
.dashboard-account-menu a, .dashboard-account-menu button { display: flex; align-items: center; width: 100%; min-height: var(--space-12); padding: var(--space-3); text-decoration: none; border: 0; border-radius: var(--radius-small); background: transparent; color: var(--ink); text-align: start; font-size: var(--dash-text-body); }
.dashboard-account-menu a:hover, .dashboard-account-menu button:hover { background: var(--soft); color: var(--accent); }
.dashboard-icon-button { display: inline-flex; align-items: center; justify-content: center; min-width: var(--space-12); min-height: var(--space-12); color: var(--muted); border-radius: var(--radius-small); }
.dashboard-icon-button:hover { color: var(--accent); background: var(--soft); }
.school-shell .content { max-width: var(--dash-content-max); padding: var(--space-6) var(--dash-content-padding); }
.school-shell .page-heading { align-items: start; flex-wrap: wrap; gap: var(--space-3) var(--space-6); padding-block-end: var(--space-4); border-block-end: var(--dash-divider) solid var(--line-subtle); }
.school-shell .page-heading > div { min-width: 0; }
.school-shell .page-heading h1 { font: 500 var(--dash-text-title)/1.4 var(--font-body); letter-spacing: 0; }
.school-shell .page-heading p { font-size: var(--dash-text-body); color: var(--muted); }
.school-shell .page-heading .eyebrow { font-size: var(--dash-text-small); letter-spacing: var(--dash-label-tracking); margin-block-end: var(--space-2); }
.school-shell .panel, .school-shell .stat { box-shadow: none; }
.school-theme .panel:not(.notice), .school-theme .stat, .school-theme .stock-starter-item, .school-theme .coverage-subject, .school-theme .coverage-chapter-editor { background: var(--dash-card-background); border-color: var(--dash-card-border); box-shadow: none; }
.school-theme .panel:not(.overview-details) > .stats > .stat { background: var(--surface); }
.school-theme .button.secondary { background: var(--dash-secondary-background); border-color: var(--dash-secondary-border); }
.school-theme .button.secondary:hover { background: var(--dash-secondary-hover); border-color: var(--dash-secondary-border); }
.school-theme .fee-shortcut { background: var(--dash-secondary-background); border-color: var(--dash-secondary-border); }
.school-theme .fee-shortcut:hover { background: var(--dash-secondary-hover); }
.school-theme .fee-shortcut-paid, .school-theme .fee-shortcut-paid:hover { background: var(--success-bg); }
.school-theme .fee-shortcut-unpaid, .school-theme .fee-shortcut-unpaid:hover { background: var(--error-bg); }
.school-theme .fee-shortcut[aria-current="page"] { text-decoration: underline; text-underline-offset: var(--space-1); }
.school-theme .choice:not(:has(input:checked)), .school-theme .section-choice:not(:has(input:checked)) { background: var(--dash-card-background); border-color: var(--dash-card-border); }
.school-theme .choice:has(input:checked), .school-theme .section-choice:has(input:checked) { background: var(--accent-subtle); border-color: var(--dash-card-border); }
.school-shell .attendance-more > summary, .school-shell .promotion-more > summary { background: var(--dash-secondary-background); border-color: var(--dash-secondary-border); }
.school-shell .attendance-more > summary:hover, .school-shell .promotion-more > summary:hover { background: var(--dash-secondary-hover); }
.school-shell .panel:hover { box-shadow: none; }
.school-shell .panel > h2, .school-shell .section-heading h2 { font: 500 var(--dash-text-heading)/1.5 var(--font-body); letter-spacing: 0; }
.school-shell .button { box-shadow: none; }
.school-shell .button:hover { box-shadow: none; transform: none; }
.school-shell .notice { border-radius: var(--radius-small); font-size: var(--dash-text-small); }
.school-shell .section-heading { gap: var(--space-3); flex-wrap: wrap; }
.school-shell .actions { gap: var(--space-2) var(--space-3); }
.school-shell .badge { font-size: var(--dash-text-small); letter-spacing: 0; line-height: 1.4; }
.school-shell thead th { background: var(--soft); letter-spacing: var(--dash-label-tracking); font-size: var(--dash-text-small); }
.school-shell tbody th[scope="row"] { color: var(--ink); font-size: var(--dash-text-body); font-weight: 500; letter-spacing: 0; text-transform: none; white-space: normal; border-bottom-color: var(--line-subtle); }
.school-shell tbody th[scope="row"] small { margin-block-start: var(--space-1); }
.school-shell .activity { border-color: var(--line-subtle); }
.dashboard-overview-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: var(--space-3); margin-bottom: var(--space-8); }
.dashboard-module { min-width: 0; padding: var(--space-6) var(--space-8); }
.dashboard-module--collections { grid-column: span 2; padding-inline-start: 0; border-inline-end: var(--dash-divider) solid var(--line); border-bottom: var(--dash-divider) solid var(--line); }
.dashboard-module--attendance { padding-inline-end: 0; padding-inline-start: var(--space-8) !important; border-bottom: var(--dash-divider) solid var(--line); }
.dashboard-module--snapshot, .dashboard-module--work { border-inline-end: var(--dash-divider) solid var(--line); }
.dashboard-module--snapshot { padding-inline-start: 0; }
.dashboard-module--deadlines { padding-inline-end: 0; }
.dashboard-module h2 { font: 500 var(--dash-text-heading)/1.5 var(--font-body); color: var(--ink); margin-bottom: var(--space-1); }
.dashboard-module .section-heading { gap: var(--space-3); margin-bottom: var(--space-3); align-items: start; }
.dashboard-module .section-heading .button { flex-shrink: 0; }
.dashboard-caption { color: var(--muted); font-size: var(--dash-text-small); margin-bottom: var(--space-4); }
.dashboard-value { display: block; font: 600 var(--dash-text-value)/1.35 var(--font-body); color: var(--ink); font-variant-numeric: tabular-nums; margin-block: var(--space-2); }
.dashboard-module .button.small { min-height: var(--space-12); padding: var(--space-2) var(--space-3); font-weight: 500; font-size: var(--dash-text-small); }
.dashboard-series { margin: var(--space-6) 0 0; }
.dashboard-series figcaption { color: var(--muted); font-size: var(--dash-text-small); margin-bottom: var(--space-4); display: flex; justify-content: space-between; flex-wrap: wrap; gap: var(--space-2); }
.dashboard-series-description { display: grid; align-content: center; gap: var(--space-1); }
.dashboard-range-control { display: flex; align-items: center; max-width: 100%; }
.dashboard-range-control[hidden], .dashboard-series [hidden] { display: none; }
.school-shell .dashboard-range-control select { width: var(--dash-period-width); min-height: var(--dash-control-height); margin: 0; font-size: var(--dash-text-small); background: var(--dash-period-background); border-color: var(--dash-period-border); color: var(--accent); }
.school-shell .dashboard-range-control select:focus-visible { outline: var(--dash-focus-width) solid var(--focus); outline-offset: var(--dash-focus-width); }
.dashboard-series__plot { display: grid; grid-template-columns: minmax(0, var(--dash-axis-width)) minmax(0, 1fr); gap: var(--space-2); }
.dashboard-series__axis { height: var(--dash-plot-height); margin-block-start: var(--space-1); display: flex; flex-direction: column; justify-content: space-between; align-items: end; color: var(--muted); font-size: var(--dash-text-small); font-variant-numeric: tabular-nums; }
.dashboard-series__axis span { max-width: 100%; overflow-wrap: anywhere; line-height: 1; transform: translateY(-50%); }
.dashboard-series__axis span:last-child { transform: translateY(50%); }
.dashboard-series__bars { position: relative; display: grid; grid-template-columns: repeat(var(--dash-series-columns), minmax(0, 1fr)); column-gap: var(--space-3); }
.dashboard-series__bars::before { content: ''; position: absolute; inset-block-start: var(--space-1); inset-inline: 0; height: var(--dash-plot-height); background: repeating-linear-gradient(to top, var(--line-subtle) 0, var(--line-subtle) var(--dash-divider), transparent var(--dash-divider), transparent 25%); pointer-events: none; }
.dashboard-series__column { position: relative; min-width: 0; display: flex; align-items: center; flex-direction: column; gap: var(--space-2); padding: var(--space-1); border-radius: var(--radius-xs); }
.dashboard-series__track { width: 100%; height: var(--dash-plot-height); position: relative; border-bottom: var(--dash-divider) solid var(--line); }
.dashboard-series__bar { position: absolute; bottom: 0; inset-inline-start: calc(50% - var(--dash-bar-width) / 2); width: var(--dash-bar-width); height: var(--bar-size); max-height: 100%; background: var(--dash-data); }
.dashboard-series--signed .dashboard-series__track { border-bottom-color: transparent; }
.dashboard-series--signed .dashboard-series__track::before { content: ''; position: absolute; top: 50%; width: 100%; border-top: var(--dash-divider) solid var(--line); }
.dashboard-series--signed .dashboard-series__bar { bottom: 50%; height: calc(var(--bar-size) / 2); }
.dashboard-series--signed .dashboard-series__bar--negative { bottom: auto; top: 50%; background: var(--error); }
.dashboard-series__column > strong { color: var(--ink-secondary); font-size: var(--dash-text-small); font-weight: 500; white-space: normal; overflow-wrap: anywhere; text-align: center; font-variant-numeric: tabular-nums; }
.dashboard-series__column > span { color: var(--muted); font-size: var(--dash-text-small); }
.dashboard-series__column:focus-visible { outline: var(--dash-divider) solid var(--focus); outline-offset: var(--space-1); }
.dashboard-series__tooltip { display: none; position: absolute; inset-block-start: var(--space-3); inset-inline-start: 50%; transform: translateX(-50%); width: max-content; max-width: var(--dash-tooltip-width); padding: var(--space-2) var(--space-3); border: var(--dash-divider) solid var(--line); border-radius: var(--radius-small); background: var(--surface); color: var(--ink); box-shadow: var(--dash-menu-shadow); font-size: var(--dash-text-small); text-align: center; pointer-events: none; z-index: 2; }
.dashboard-series__column:first-child .dashboard-series__tooltip { inset-inline-start: 0; transform: none; }
.dashboard-series__column:last-child .dashboard-series__tooltip { inset-inline-start: auto; inset-inline-end: 0; transform: none; }
.dashboard-series__column:hover .dashboard-series__tooltip, .dashboard-series__column:focus-visible .dashboard-series__tooltip { display: block; }
.dashboard-series__bars:has(.dashboard-series__column:hover) .dashboard-series__column:not(:hover) .dashboard-series__bar, .dashboard-series__bars:has(.dashboard-series__column:focus-visible) .dashboard-series__column:not(:focus-visible) .dashboard-series__bar { opacity: var(--dash-chart-opacity); }
.dashboard-ring { display: grid; place-items: center; width: var(--dash-ring-size); height: var(--dash-ring-size); margin: var(--space-5) auto var(--space-6); position: relative; }
.dashboard-ring svg { width: 100%; height: 100%; overflow: visible; transform: rotate(-90deg); }
.dashboard-ring circle { fill: none; stroke-width: var(--dash-ring-stroke); }
.dashboard-ring__track { stroke: var(--dash-ring-track); }
.dashboard-ring__segment { stroke: var(--data-tone); }
.dashboard-status--present { --data-tone: var(--dash-data); }
.dashboard-status--absent { --data-tone: var(--error); }
.dashboard-status--leave { --data-tone: var(--warning); }
.dashboard-status--unmarked { --data-tone: var(--dash-data-soft); }
.dashboard-ring__label { position: absolute; text-align: center; }
.dashboard-ring__label strong { display: block; color: var(--ink); font-size: var(--dash-text-value); font-weight: 500; }
.dashboard-ring__label span { display: block; color: var(--muted); font-size: var(--dash-text-small); }
.dashboard-legend { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); }
.dashboard-legend li { display: flex; align-items: start; gap: var(--space-2); font-size: var(--dash-text-small); color: var(--ink-secondary); }
.dashboard-legend__dot { margin-top: var(--space-1); width: var(--space-2); height: var(--space-2); border-radius: var(--radius-pill); background: var(--data-tone); flex-shrink: 0; }
.dashboard-legend strong { display: block; color: var(--ink); font-weight: 500; }
.dashboard-facts { margin: var(--space-4) 0; }
.dashboard-facts > div { display: flex; justify-content: space-between; align-items: center; gap: var(--space-4); padding-block: var(--space-3); border-bottom: var(--dash-divider) solid var(--line-subtle); }
.dashboard-facts dt { font-size: var(--dash-text-body); color: var(--muted); }
.dashboard-facts dd { margin: 0; font-size: var(--dash-text-value); font-weight: 500; font-variant-numeric: tabular-nums; }
.dashboard-record { display: flex; gap: var(--space-3); align-items: start; padding-block: var(--space-4); border-bottom: var(--dash-divider) solid var(--line); text-decoration: none; color: var(--ink); font-size: var(--dash-text-body); }
.dashboard-record:last-child { border-bottom: 0; }
.dashboard-record > .dashboard-icon { margin-top: var(--space-1); color: var(--accent); }
.dashboard-record > span { flex: 1; min-width: 0; }
.dashboard-record strong { display: block; font-weight: 500; }
.dashboard-record small { display: block; color: var(--muted); font-size: var(--dash-text-small); margin-top: var(--space-1); }
.dashboard-empty { padding-block: var(--space-6); color: var(--muted); font-size: var(--dash-text-body); }
.school-shell .overview-details.panel { background: var(--surface); border-inline: 0; border-bottom: 0; border-radius: 0; padding-inline: 0; box-shadow: none; }
.school-shell .overview-details > summary { color: var(--accent); font-size: var(--dash-text-small); font-weight: 500; }
.school-shell .dashboard-module .overview-details { margin-top: var(--space-3); }
@media (max-width: 1150px) {
    .dashboard-module { padding: var(--space-5); }
    .dashboard-module--attendance { padding-inline-start: var(--space-5) !important; }
    .dashboard-account-name { max-width: calc(var(--space-12) * 3); }
    .dashboard-series__bars { column-gap: var(--space-1); }
    .dashboard-series__column > strong { font-size: var(--dash-text-small); overflow-wrap: anywhere; white-space: normal; text-align: center; }
}
@media (max-width: 900px) {
    .school-theme .auth-intro { padding: var(--space-6); }
    .school-shell .sidebar { position: sticky; inset: auto; top: 0; width: 100%; height: auto; z-index: 12; display: block; overflow: visible; border-inline-end: 0; }
    .school-shell .brand-row { padding-inline: var(--space-4); }
    .school-shell .mobile-menu { display: inline-flex; min-height: var(--dash-control-height); }
    .school-shell .sidebar-menu { display: none; position: absolute; top: 100%; inset-inline: 0; max-height: calc(100dvh - var(--dash-header-height)); overflow-y: auto; background: var(--dash-sidebar); border-bottom: var(--dash-divider) solid var(--line); }
    .school-shell.menu-open .sidebar-menu { display: flex; }
    .school-shell #school-navigation { display: block; }
    .school-shell .sidebar-bottom, .school-shell.menu-open .sidebar-bottom { display: none; }
    .school-shell .workspace { margin-left: 0; }
    .school-shell .topbar { top: var(--dash-header-height); padding-inline: var(--space-4); }
    .dashboard-account-name { display: block; }
    .dashboard-top-actions { gap: var(--space-2); }
    .school-shell .content { padding: var(--space-6) var(--space-4); }
    .dashboard-overview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dashboard-module--collections { grid-column: span 2; border-inline-end: 0; padding-inline-end: 0; }
    .dashboard-module--attendance { padding-inline-start: 0 !important; padding-inline-end: var(--space-5); border-inline-end: var(--dash-divider) solid var(--line); }
    .dashboard-module--snapshot { padding-inline-start: var(--space-5); padding-inline-end: 0; border-inline-end: 0; border-bottom: var(--dash-divider) solid var(--line); }
    .dashboard-module--work { padding-inline-start: 0; }
    .dashboard-module--deadlines { padding-inline-start: var(--space-5); }
}
@media (max-width: 560px) {
    .dashboard-overview-grid { display: block; }
    .dashboard-module { padding: var(--space-6) 0 !important; border-inline: 0; border-bottom: var(--dash-divider) solid var(--line); }
    .dashboard-module--collections { padding-top: 0 !important; }
    .school-shell .page-heading { align-items: start; flex-direction: column; gap: var(--space-2); }
    .dashboard-account-menu { min-width: var(--dash-account-width); }
    .dashboard-icon-button { min-width: var(--space-12); }
    .dashboard-search-box { padding-inline: var(--space-2); }
    .dashboard-series__track { height: var(--dash-plot-height); }
    .dashboard-inbox > span:last-child { display: none; }
    .dashboard-inbox { min-width: var(--dash-control-height); justify-content: center; }
}
@media print {
    .school-shell .workspace { margin: 0; }
    .school-shell .content { padding: 0; }
    .dashboard-module { break-inside: avoid; }
}
.school-shell .sr-only { position: absolute; width: var(--dash-divider); height: var(--dash-divider); padding: 0; margin: calc(0px - var(--dash-divider)); overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }

.school-shell .button, .school-shell .panel, .school-shell .stat, .school-shell .nav-link { transition: none; }
.school-shell .stat:hover { transform: none; box-shadow: none; }
.dashboard-overview-grid--single-chart > .dashboard-module--collections, .dashboard-overview-grid--single-chart > .dashboard-module--attendance { grid-column: 1 / -1; border-inline: 0; padding-inline: 0 !important; }

@media (min-width: 901px) {
    .school-shell .sidebar { overflow: hidden; }
    .school-shell #school-navigation { flex: 1; min-height: 0; overflow-y: auto; }
    .school-shell .sidebar-bottom { flex-shrink: 0; }
    .school-shell #school-navigation { display: flex; flex-direction: column; }
    .school-shell #school-navigation > * { flex-shrink: 0; }
    .school-shell .navigation-group--utility { margin-block-start: auto; }
}
.school-shell .brand small { max-width: calc(var(--sidebar-width) - var(--space-12) * 2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* Shared density excludes the spacious Overview and the already compact registers. */
@media screen {
    .school-shell.compact-workspace .content { padding: var(--space-4) var(--space-6); }
    .compact-workspace .page-heading { align-items: baseline; gap: var(--space-2) var(--space-4); margin-block-end: var(--space-2); padding-block-end: var(--space-2); }
    .compact-workspace .page-heading > div { display: flex; align-items: baseline; flex-wrap: wrap; gap: var(--space-1) var(--space-3); }
    .compact-workspace .page-heading .eyebrow { flex-basis: 100%; margin: 0; }
    .compact-workspace .page-heading h1 { font-size: var(--attendance-heading-size); margin: 0; }
    .compact-workspace .page-heading p { margin: 0; }
    .compact-workspace .panel { padding: var(--space-3) var(--space-4); margin-block-end: var(--space-2); }
    .compact-workspace .stack { gap: var(--space-2); }
    .compact-workspace .section-heading { margin-block-end: var(--space-2); }
    .compact-workspace .panel h2 { margin-block-end: var(--space-2); }
    .compact-workspace .panel p { margin-block-end: var(--space-2); }
    .compact-workspace .split, .compact-workspace .stats, .compact-workspace .form-grid { gap: var(--space-4); }
    .compact-workspace .stat { padding: var(--space-3) var(--space-4); }
    .compact-workspace .actions { margin-block: var(--space-2); }
    .compact-workspace .field > input, .compact-workspace .field > select, .compact-workspace .field > textarea { margin-block-start: var(--space-1); }
    .compact-workspace .table-scroll > table:not(.routine-week-table) > :is(thead, tbody) > tr > :is(th, td) { padding-block: var(--space-2); }
}
.theme-toggle[hidden] { display: none; }
.school-theme .button.theme-toggle[aria-pressed="true"] { background: var(--accent); color: var(--on-accent); border-color: var(--accent); }
.school-shell .sidebar-bottom { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--space-2); padding: var(--space-3) var(--space-4); }
.auth-theme-tools { display: flex; justify-content: end; margin-block-end: var(--space-3); }
.school-theme .workflow-help { display: flex; align-items: start; gap: var(--space-2); font-size: var(--dash-text-body); color: var(--muted); }
.school-theme .workflow-attention { width: var(--dash-child-icon); height: var(--dash-child-icon); flex: 0 0 var(--dash-child-icon); margin-block-start: var(--space-1); color: var(--accent); animation: workflow-attention-pulse var(--dash-guidance-pulse-duration) ease-in-out 3; }
.school-theme .setup-guidance { position: relative; margin-block-end: var(--space-3); font-size: var(--dash-text-body); }
.school-theme .setup-guidance > summary { display: inline-flex; align-items: center; gap: var(--space-2); min-height: var(--dash-control-height); color: var(--accent); cursor: pointer; list-style: none; }
.school-theme .setup-guidance > summary::-webkit-details-marker { display: none; }
.school-theme .setup-guidance .workflow-attention { margin: 0; }
.school-theme .setup-guidance__popover { position: absolute; inset-block-start: 100%; inset-inline-start: 0; z-index: 15; width: min(var(--dash-guidance-width), 100%); padding: var(--space-3) var(--space-4); background: var(--surface); color: var(--ink); border: var(--dash-divider) solid var(--line); border-radius: var(--radius-small); box-shadow: var(--dash-menu-shadow); }
.school-theme .setup-guidance__popover p { margin: 0 0 var(--space-2); }
.school-theme .setup-guidance__popover a { display: inline-flex; align-items: center; min-height: var(--dash-control-height); }
@keyframes workflow-attention-pulse { 0%, 100% { opacity: 1; } 50% { opacity: var(--dash-guidance-pulse-opacity); } }
@media (prefers-reduced-motion: reduce) { .school-theme .workflow-attention { animation: none; } }
@media print { .school-theme .setup-guidance { display: none; } .school-theme .workflow-attention { animation: none; } }
@media (max-width: 900px) {
    .school-shell .sidebar-bottom, .school-shell.menu-open .sidebar-bottom { display: flex; }
    .school-shell.compact-workspace .content { padding-inline: var(--space-4); }
}

/* Task assignment follows one aligned sequence, with optional controls on demand. */
.school-shell .task-assignment { max-width: var(--dash-task-content-width); }
.school-shell .task-scope-form { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-2); padding: 0; margin: 0; border: 0; }
.school-shell .task-assignment .field { display: flex; align-items: center; gap: var(--space-2); min-width: 0; }
.school-shell .task-assignment .field > label { flex: 0 0 var(--dash-task-label-width); font-size: var(--dash-text-body); }
.school-shell .task-assignment .field > :is(input, select, textarea) { flex: 1; min-width: 0; margin: 0; }
.school-shell .task-scope-form > .field { flex: 1; max-width: calc(var(--dash-task-label-width) + var(--dash-task-scope-width) + var(--space-2)); }
.school-shell .task-assignment > [data-task-scope-status] { margin: var(--space-1) 0 var(--space-3); padding-inline-start: calc(var(--dash-task-label-width) + var(--space-2)); }
.school-shell .task-assignment-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-2) var(--space-4); }
.school-shell .task-field-wide { grid-column: 1 / -1; min-width: 0; }
.school-shell .task-date-field .field > input { flex: 0 1 var(--dash-task-date-width); width: var(--dash-task-date-width); max-width: 100%; }
.school-shell .task-assignment .field:has(textarea) { align-items: start; }
.school-shell .task-assignment .field:has(textarea) > label { padding-block-start: var(--space-2); }
.school-shell .task-assignment textarea { min-height: var(--attendance-note-height); resize: vertical; }
.school-shell .task-assignment-options > summary { display: flex; align-items: center; min-height: var(--dash-control-height); color: var(--accent); font-size: var(--dash-text-body); cursor: pointer; }
.school-shell .task-assignment-options > summary::before { content: '+'; margin-inline-end: var(--space-2); }
.school-shell .task-assignment-options[open] > summary::before { content: '−'; }
.school-shell .task-assignment-options > .stack { padding-block: var(--space-1) var(--space-2); }
.school-shell .task-assignment-options .help { padding-inline-start: calc(var(--dash-task-label-width) + var(--space-2)); margin: 0; }
.school-shell .task-assignment-footer { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-4); }
.school-shell .task-review { display: flex; align-items: center; gap: var(--space-2); min-height: var(--dash-control-height); font-size: var(--dash-text-body); font-weight: 400; cursor: pointer; }
.school-shell .task-assignment-footer > .button { margin-inline-start: auto; }
@media (max-width: 760px) {
    .school-shell .task-assignment-grid { grid-template-columns: minmax(0, 1fr); }
    .school-shell .task-assignment-footer > .button { margin-inline-start: 0; }
}
@media (max-width: 560px) {
    .school-shell .task-assignment .field { flex-direction: column; align-items: stretch; gap: var(--space-1); }
    .school-shell .task-assignment .field > label { flex: auto; padding: 0; }
    .school-shell .task-assignment .field > :is(input, select, textarea) { flex: auto; }
    .school-shell .task-assignment > [data-task-scope-status], .school-shell .task-assignment-options .help { padding-inline-start: 0; }
}

.school-theme .assessment-parts-table { min-width: 0; table-layout: fixed; width: 100%; }
.school-theme .assessment-parts-table :is(th, td) { white-space: normal; overflow-wrap: anywhere; padding-inline: var(--space-2); }
.school-theme .assessment-parts-table .field > label { position: absolute; width: var(--dash-divider); height: var(--dash-divider); overflow: hidden; clip-path: inset(50%); }
.school-theme .assessment-parts-table input { min-width: 0; margin: 0; }

/* Shared role onboarding keeps one next action visible without blocking work. */
.school-theme .workspace-onboarding { padding: var(--space-3) var(--space-4); margin-block-end: var(--space-4); background: var(--dash-card-background); border-radius: var(--radius); }
.school-theme .workspace-welcome > summary { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-2) var(--space-4); min-height: var(--dash-control-height); cursor: pointer; font-size: var(--dash-text-default); }
.school-theme .workspace-welcome > summary > span { color: var(--muted); font-size: var(--dash-text-small); }
.school-theme .workspace-welcome > p { font-size: var(--dash-text-body); margin-block: var(--space-2); }
.school-theme .workspace-onboarding progress, .school-theme .workspace-setup progress { display: block; width: 100%; max-width: var(--dash-guidance-width); height: var(--space-2); margin-block: var(--space-2); border: 0; border-radius: var(--radius-pill); accent-color: var(--accent); }
.school-theme .workspace-onboarding progress::-webkit-progress-bar, .school-theme .workspace-setup progress::-webkit-progress-bar { background: var(--line); border-radius: var(--radius-pill); }
.school-theme .workspace-onboarding progress::-webkit-progress-value, .school-theme .workspace-setup progress::-webkit-progress-value { background: var(--accent); border-radius: var(--radius-pill); }
.school-theme .workspace-onboarding progress::-moz-progress-bar, .school-theme .workspace-setup progress::-moz-progress-bar { background: var(--accent); border-radius: var(--radius-pill); }
.school-theme .workspace-tip { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-2) var(--space-3); font-size: var(--dash-text-body); }
.school-theme .workspace-tip-label { display: inline-flex; align-items: center; gap: var(--space-2); font-weight: 600; }
.school-theme .workspace-tip-label .workflow-attention { margin: 0; }
.school-theme .workspace-tip > p { flex: 1 1 var(--workspace-tip-width); margin: 0; }
.school-theme .workspace-tip > a { display: inline-flex; align-items: center; min-height: var(--dash-control-height); }
.school-theme .workspace-tip-controls { margin-block-start: var(--space-1); }
.school-theme .workspace-tip-controls .text-button { font-size: var(--dash-text-small); color: var(--muted); text-align: start; }
.school-theme .workspace-steps { list-style: none; padding: 0; margin: 0; }
.school-theme .workspace-step { display: flex; align-items: start; gap: var(--space-3); padding-block: var(--space-3); border-block-end: var(--dash-divider) solid var(--line); }
.school-theme .workspace-step > div { flex: 1; min-width: 0; }
.school-theme .workspace-step h3 { margin: 0 0 var(--space-1); font-size: var(--dash-text-default); }
.school-theme .workspace-step p { margin: 0; font-size: var(--dash-text-body); color: var(--muted); }
.school-theme .workspace-step-number { display: grid; place-items: center; width: var(--dash-avatar); height: var(--dash-avatar); flex: 0 0 var(--dash-avatar); border-radius: var(--radius-pill); background: var(--accent-subtle); color: var(--accent); font-size: var(--dash-text-default); font-weight: 600; }
.school-theme .workspace-step--next .workspace-step-number { background: var(--accent); color: var(--on-accent); }
.school-theme.tips-disabled .workflow-help { display: none; }

.school-theme .workspace-onboarding[hidden] { display: none; }
.school-theme .workflow-dialog { width: min(var(--workflow-dialog-width), calc(100% - var(--space-8))); max-height: calc(100% - var(--space-8)); padding: var(--space-5); background: var(--surface); color: var(--ink); border: var(--dash-divider) solid var(--dash-card-border); border-radius: var(--radius-small); box-shadow: var(--dash-input-shadow); }
.school-theme .workflow-dialog::backdrop { background: var(--workflow-dialog-backdrop); }
.school-theme .workflow-dialog .check { display: flex; align-items: center; gap: var(--space-2); min-height: var(--dash-control-height); }
.school-theme .workspace-tutorial-list { display: grid; gap: var(--space-2); padding-inline-start: var(--space-5); }
.school-theme .tutorial-introduction { padding-block: var(--space-2); }
.school-theme .workspace-step > div { min-width: 0; width: 100%; }
.school-theme .tutorial-screenshot { margin-block: var(--space-3); }
.school-theme .tutorial-zoom > summary { display: inline-flex; align-items: center; min-height: var(--dash-control-height); cursor: pointer; color: var(--accent); }
.school-theme .tutorial-image-scroll { overflow: auto; max-width: 100%; border-radius: var(--radius-small); }
.school-theme .tutorial-image-canvas { position: relative; margin: 0; width: 100%; }
.school-theme .tutorial-image-canvas img { display: block; width: 100%; height: auto; }
.school-theme .tutorial-screenshot:has(.tutorial-zoom[open]) .tutorial-image-canvas { width: var(--tutorial-capture-width); }
.school-theme .tutorial-target { position: absolute; left: var(--target-x); top: var(--target-y); width: var(--target-w); height: var(--target-h); border: var(--dash-focus-width) solid var(--accent); border-radius: var(--radius-small); pointer-events: none; }
.school-theme .tutorial-marker { position: absolute; inset-block-start: calc(var(--tutorial-marker-size) / -2); inset-inline-start: calc(var(--tutorial-marker-size) / -2); display: grid; place-items: center; width: var(--tutorial-marker-size); height: var(--tutorial-marker-size); background: var(--accent); color: var(--on-accent); border: var(--dash-focus-width) solid var(--surface); border-radius: var(--radius-pill); box-shadow: var(--dash-input-shadow); font-weight: 700; }
.school-theme .tutorial-caption { margin-block: var(--space-2); }
.school-theme [data-workspace-tip-status]:empty { display: none; }
@media (min-width: 901px) {
    .school-theme .workspace-onboarding:has(.workspace-welcome) { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, var(--workspace-tip-width)); align-items: start; gap: var(--space-4); }
    .school-theme .workspace-onboarding:has(.workspace-welcome) .workspace-tip-controls { justify-self: end; }
}
