/* Layout pieces not in the kit, built only from its tokens. Phones: up to 760px wide. */
.nasaq-auth {
  max-inline-size: 26rem;
  margin-inline: auto;
  padding: var(--nasaq-space-8) var(--nasaq-space-4);
}
.nasaq-auth__title {
  font-family: var(--nasaq-font-display);
  font-size: var(--nasaq-text-xl);
  line-height: var(--nasaq-leading-display);
  margin-block: 0 var(--nasaq-space-6);
}
.nasaq-auth .nasaq-btn { inline-size: 100%; }
.nasaq-auth__country { margin-block-end: var(--nasaq-space-4); }
.nasaq-auth__country .nasaq-select { inline-size: 100%; }
.nasaq-auth .nasaq-field { margin-block-end: var(--nasaq-space-4); }
/* An outline button on the primary header bar: the kit's outline is primary on primary. */
.nasaq-header .nasaq-btn--outline { color: var(--nasaq-on-primary); border-color: var(--nasaq-on-primary); }
.nasaq-header .nasaq-btn--outline:hover { background: var(--nasaq-primary-hover); }

/* ---------- base ---------- */
p, ul, ol, dl { margin: 0; }
.nasaq-sprite { position: absolute; inline-size: 0; block-size: 0; overflow: hidden; }
.nasaq-i { inline-size: 22px; block-size: 22px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.5;
  stroke-linecap: round; stroke-linejoin: round; }
.nasaq-i--sm { inline-size: 18px; block-size: 18px; }
[dir="rtl"] .nasaq-i--next, [dir="ltr"] .nasaq-i--back { transform: scaleX(-1); }
/* The separator of a running line in Arabic: a thin rule, never a dot (a dot beside Arabic-Indic digits reads as a zero). */
.nasaq-dot { display: inline-block; inline-size: 1px; block-size: 1em; margin-inline: 0.35em; vertical-align: -0.12em;
  background: currentColor; opacity: 0.45; }
.nasaq-badge { white-space: nowrap; line-height: 1.6; }
.nasaq-badge--warning { color: var(--nasaq-warning); border-color: var(--nasaq-warning); }
.nasaq-btn { white-space: nowrap; }
.nasaq-iconbtn { inline-size: var(--nasaq-control-h); block-size: var(--nasaq-control-h); flex: none;
  display: inline-grid; place-items: center; padding: 0; border: 1px solid transparent;
  border-radius: var(--nasaq-radius-sm); background: transparent; color: inherit; cursor: pointer;
  transition: background-color .15s ease, border-color .15s ease; }
.nasaq-iconbtn:hover { background: var(--nasaq-bg); }
.nasaq-header .nasaq-iconbtn:hover { background: var(--nasaq-primary-hover); }
.nasaq-iconbtn--line { border-color: var(--nasaq-border); background: var(--nasaq-surface); color: var(--nasaq-text); }
.nasaq-tnum { font-variant-numeric: tabular-nums; }
.nasaq-alert { display: flex; align-items: center; gap: var(--nasaq-space-2); padding: var(--nasaq-space-2) var(--nasaq-space-3);
  border: 1px solid var(--nasaq-border); border-radius: var(--nasaq-radius-sm); background: var(--nasaq-surface);
  font-size: var(--nasaq-text-sm); line-height: 1.6; }
.nasaq-alert--error { color: var(--nasaq-danger); border-color: var(--nasaq-danger); }
.nasaq-alert--success { color: var(--nasaq-success); border-color: var(--nasaq-success); }
.nasaq-alert--warning { color: var(--nasaq-warning); border-color: var(--nasaq-warning); }
.nasaq-flash { display: flex; flex-direction: column; gap: var(--nasaq-space-2); }

/* ---------- shell ---------- */
.nasaq-school { display: flex; align-items: center; gap: var(--nasaq-space-3); min-inline-size: 0; }
.nasaq-school__logo { inline-size: 44px; block-size: 44px; flex: none; object-fit: contain; }
.nasaq-school__text { display: flex; flex-direction: column; min-inline-size: 0; }
.nasaq-school__name { font-family: var(--nasaq-font-display); font-size: var(--nasaq-text-lg); font-weight: 500;
  line-height: 1.5; color: var(--nasaq-on-primary); }
.nasaq-school__sub { font-size: var(--nasaq-text-xs); line-height: 1.5; color: var(--nasaq-accent); }
.nasaq-header__end { display: flex; align-items: center; gap: var(--nasaq-space-1); }
.nasaq-shell { display: flex; align-items: stretch; min-block-size: calc(100vh - var(--nasaq-header-h)); }
.nasaq-side { inline-size: 232px; flex: none; display: flex; flex-direction: column; gap: var(--nasaq-space-1);
  padding: var(--nasaq-space-4) var(--nasaq-space-3); background: var(--nasaq-surface);
  border-inline-end: 1px solid var(--nasaq-border); }
.nasaq-nav { display: flex; align-items: center; gap: var(--nasaq-space-3); min-block-size: var(--nasaq-control-h);
  padding: 0 var(--nasaq-space-3); border-radius: var(--nasaq-radius-sm); color: var(--nasaq-muted);
  text-decoration: none; font-size: var(--nasaq-text-sm); font-weight: 500;
  transition: background-color .15s ease, color .15s ease; }
.nasaq-nav:hover { background: var(--nasaq-bg); color: var(--nasaq-text); }
.nasaq-nav[aria-current="page"] { background: var(--nasaq-bg); color: var(--nasaq-primary); font-weight: 600; }
.nasaq-nav__count { margin-inline-start: auto; padding: 0 var(--nasaq-space-2); font-variant-numeric: tabular-nums; }
.nasaq-main { flex: 1; min-inline-size: 0; display: flex; flex-direction: column; gap: var(--nasaq-space-5);
  padding: var(--nasaq-space-5) var(--nasaq-space-5) var(--nasaq-space-4); }
.nasaq-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--nasaq-space-3); margin-block-start: auto; padding-block-start: var(--nasaq-space-5); }
.nasaq-foot__rights { white-space: nowrap; font-size: var(--nasaq-text-xs); color: var(--nasaq-muted); }
.nasaq-brandlink { display: flex; align-items: center; flex: none; border-radius: var(--nasaq-radius-sm); }
.nasaq-brandlink .nasaq-logo { block-size: 32px; }
.nasaq-brandlink .nasaq-logo--en { block-size: 20px; }
.nasaq-foot .nasaq-logo { block-size: 39px; }
.nasaq-foot .nasaq-logo--en { block-size: 24px; }
.nasaq-tabbar { display: none; }
.nasaq-tab { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
  min-block-size: 60px; color: var(--nasaq-muted); text-decoration: none; font-size: var(--nasaq-text-xs);
  font-weight: 500; line-height: 1.4; transition: color .15s ease; }
.nasaq-tab { position: relative; }
.nasaq-tab__count { position: absolute; inset-block-start: 6px; inset-inline-start: calc(50% + 6px); padding: 0 var(--nasaq-space-2);
  font-variant-numeric: tabular-nums; }
.nasaq-tab[aria-current="page"] { color: var(--nasaq-primary); font-weight: 600; }
.nasaq-tabmore { position: relative; display: grid; }
.nasaq-tabmore > summary { list-style: none; cursor: pointer; }
.nasaq-tabmore > summary::-webkit-details-marker { display: none; }
.nasaq-tabmore .nasaq-tabmore__menu { inset-block-start: auto; inset-block-end: 100%; inset-inline-start: auto; inset-inline-end: 0;
  min-inline-size: 12rem; }
.nasaq-tabmore .nasaq-tabmore__menu a { min-block-size: 44px; }
.nasaq-tabmore .nasaq-tabmore__menu a[aria-current="page"] { color: var(--nasaq-primary); font-weight: 600; }
.nasaq-tabmore:has([aria-current="page"]) > summary { color: var(--nasaq-primary); font-weight: 600; }

/* ---------- page head ---------- */
.nasaq-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--nasaq-space-4); }
.nasaq-head__titles { display: flex; flex-direction: column; gap: 2px; min-inline-size: 0; }
.nasaq-title { font-size: var(--nasaq-text-2xl); }
.nasaq-head__meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--nasaq-space-2);
  color: var(--nasaq-muted); font-size: var(--nasaq-text-sm); }
.nasaq-head__actions { display: flex; align-items: center; gap: var(--nasaq-space-2); }
.nasaq-head__actions form { display: contents; }
.nasaq-head__meta > a, .nasaq-head__meta > form { min-block-size: var(--nasaq-control-h); display: inline-flex;
  align-items: center; gap: var(--nasaq-space-2); }

/* ---------- the path above a sub-page's title (apps.core.crumbs): each level a link, the page itself last ---------- */
.nasaq-crumbs { margin-block-end: calc(-1 * var(--nasaq-space-4)); color: var(--nasaq-muted); font-size: var(--nasaq-text-sm);
  line-height: 1.5; }
.nasaq-crumbs ol { display: flex; flex-wrap: wrap; align-items: center; column-gap: var(--nasaq-space-1); padding: 0;
  list-style: none; }
.nasaq-crumbs li { display: inline-flex; align-items: center; gap: var(--nasaq-space-1); min-inline-size: 0; }
.nasaq-crumbs a, .nasaq-crumbs li > span { display: inline-flex; align-items: center; min-block-size: var(--nasaq-control-h); }
.nasaq-crumbs a { color: var(--nasaq-accent-strong); font-weight: 500; text-decoration: none; }
.nasaq-crumbs a:hover { text-decoration: underline; text-underline-offset: 3px; }
.nasaq-crumbs .nasaq-i { opacity: 0.6; }

/* ---------- menus: a details element, closed by app.js on an outside click or Escape ---------- */
.nasaq-more { position: relative; flex: none; }
.nasaq-more > summary { list-style: none; cursor: pointer; }
.nasaq-more > summary::-webkit-details-marker { display: none; }
.nasaq-menu { position: absolute; z-index: 10; inset-block-start: calc(100% + 6px); inset-inline-start: 0;
  min-inline-size: 220px; padding: var(--nasaq-space-1) 0; background: var(--nasaq-surface);
  border: 1px solid var(--nasaq-border); border-radius: var(--nasaq-radius); color: var(--nasaq-text);
  box-shadow: 0 10px 24px -14px color-mix(in srgb, var(--nasaq-text) 45%, transparent); }
.nasaq-more--end .nasaq-menu { inset-inline-start: auto; inset-inline-end: 0; }
.nasaq-menu form { margin: 0; }
.nasaq-menu button, .nasaq-menu a { display: flex; align-items: center; inline-size: 100%;
  min-block-size: var(--nasaq-control-h); padding: 0 var(--nasaq-space-4); border: 0; background: transparent;
  color: var(--nasaq-text); font: inherit; font-size: var(--nasaq-text-sm); text-align: start; text-decoration: none;
  white-space: nowrap; cursor: pointer; transition: background-color .15s ease; }
.nasaq-menu button:hover, .nasaq-menu a:hover { background: var(--nasaq-bg); }
.nasaq-menu__who { display: block; font: inherit; font-size: var(--nasaq-text-xs); padding: var(--nasaq-space-2) var(--nasaq-space-4); color: var(--nasaq-muted);
  font-size: var(--nasaq-text-xs); border-block-end: 1px solid var(--nasaq-border); }
.nasaq-menu__country { display: block; padding: var(--nasaq-space-2) var(--nasaq-space-4); font-size: var(--nasaq-text-xs);
  color: var(--nasaq-muted); border-block-end: 1px solid var(--nasaq-border); }

/* ---------- bars, segmented links, search ---------- */
.nasaq-bar { display: flex; flex-wrap: wrap; align-items: center; gap: var(--nasaq-space-3); }
.nasaq-seg { display: inline-flex; max-inline-size: 100%; overflow-x: auto; background: var(--nasaq-bg);
  border: 1px solid var(--nasaq-border); border-radius: var(--nasaq-radius-sm); }
.nasaq-seg > a, .nasaq-seg > button { flex: none; min-block-size: var(--nasaq-control-h); padding: 0 var(--nasaq-space-4);
  display: inline-flex; align-items: center; justify-content: center; gap: 6px; border: 0; border-radius: 5px;
  background: transparent; color: var(--nasaq-muted); font-family: var(--nasaq-font-body); font-size: var(--nasaq-text-sm);
  font-weight: 500; white-space: nowrap; text-decoration: none; cursor: pointer;
  transition: background-color .15s ease, color .15s ease; }
.nasaq-seg > a:hover { color: var(--nasaq-text); }
.nasaq-seg > [aria-current="true"], .nasaq-seg > [aria-pressed="true"] { background: var(--nasaq-surface);
  color: var(--nasaq-primary); font-weight: 600; box-shadow: inset 0 0 0 1px var(--nasaq-primary); }
.nasaq-seg--fill { display: flex; inline-size: 100%; }
.nasaq-seg--fill > a { flex: 1 1 0; padding: 0 var(--nasaq-space-1); }
.nasaq-search { position: relative; display: flex; flex: 1 1 220px; min-inline-size: 0; max-inline-size: 360px; }
.nasaq-search .nasaq-i { position: absolute; inset-inline-start: 12px; inset-block-start: 50%; margin-block-start: -10px;
  inline-size: 20px; block-size: 20px; color: var(--nasaq-muted); pointer-events: none; }
.nasaq-search .nasaq-input { inline-size: 100%; padding-inline-start: 42px; }
.nasaq-count { font-size: var(--nasaq-text-sm); color: var(--nasaq-muted); }

/* ---------- panels and rows ---------- */
.nasaq-panel { display: flex; flex-direction: column; min-inline-size: 0; background: var(--nasaq-surface);
  border: 1px solid var(--nasaq-border); border-radius: var(--nasaq-radius); }
.nasaq-panel__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: var(--nasaq-space-2) var(--nasaq-space-3); min-block-size: 60px; padding: var(--nasaq-space-2) var(--nasaq-space-4);
  border-block-end: 1px solid var(--nasaq-border); }
h2.nasaq-panel__title, .nasaq-panel__title { font-size: var(--nasaq-text-base); line-height: 1.6; }
.nasaq-panel__body { padding: var(--nasaq-space-4); }
.nasaq-panel__ctx { inline-size: 100%; font-size: var(--nasaq-text-xs); color: var(--nasaq-muted); }
.nasaq-panel__tools { padding: var(--nasaq-space-3) var(--nasaq-space-4); border-block-end: 1px solid var(--nasaq-border); }
.nasaq-panel__tools .nasaq-search { max-inline-size: none; }
.nasaq-rows { display: flex; flex-direction: column; }
.nasaq-row { display: flex; align-items: center; gap: var(--nasaq-space-3); inline-size: 100%; min-block-size: 58px;
  padding: var(--nasaq-space-2) var(--nasaq-space-4); border: 0; border-block-start: 1px solid var(--nasaq-border);
  background: transparent; color: var(--nasaq-text); font-family: var(--nasaq-font-body); font-size: var(--nasaq-text-base);
  text-align: start; text-decoration: none; line-height: 1.5; }
.nasaq-rows > :first-child { border-block-start: 0; }
a.nasaq-row { color: var(--nasaq-text); cursor: pointer; transition: background-color .15s ease; }
a.nasaq-row:hover { background: var(--nasaq-bg); color: var(--nasaq-text); }
.nasaq-row[aria-current="true"] { background: var(--nasaq-bg); box-shadow: inset 0 0 0 1px var(--nasaq-primary); }
.nasaq-row__time { inline-size: 76px; flex: none; display: flex; flex-direction: column; font-size: var(--nasaq-text-xs);
  color: var(--nasaq-muted); font-variant-numeric: tabular-nums; }
.nasaq-row__time b { font-size: var(--nasaq-text-sm); font-weight: 500; color: var(--nasaq-text); }
.nasaq-row__main { flex: 1; min-inline-size: 0; display: flex; flex-direction: column; }
.nasaq-row__title { font-size: var(--nasaq-text-sm); font-weight: 500; }
.nasaq-panel__head > a, .nasaq-row__title > a, .nasaq-panel__title > a { display: inline-flex; align-items: center;
  min-block-size: var(--nasaq-control-h); min-inline-size: var(--nasaq-control-h); }
.nasaq-row__sub { font-size: var(--nasaq-text-xs); color: var(--nasaq-muted); }
.nasaq-row__end { flex: none; display: flex; flex-direction: column; align-items: flex-end; gap: 2px; font-size: var(--nasaq-text-sm); }
.nasaq-row__end--actions { flex-direction: row; flex-wrap: wrap; align-items: center; gap: var(--nasaq-space-2); }
.nasaq-row__end--actions form { display: contents; }
.nasaq-row--actions { flex-wrap: wrap; }
@media (max-width: 760px) { .nasaq-row--actions > .nasaq-row__end--actions { flex-basis: 100%; } }
.nasaq-sep { padding: var(--nasaq-space-2) var(--nasaq-space-4); border-block-start: 1px solid var(--nasaq-border);
  background: var(--nasaq-bg); color: var(--nasaq-muted); font-size: var(--nasaq-text-xs); font-weight: 600; }
.nasaq-empty { padding: var(--nasaq-space-4); color: var(--nasaq-muted); font-size: var(--nasaq-text-sm); }

@media (max-width: 760px) {
  .nasaq-brandlink .nasaq-logo { block-size: 28px; }
  .nasaq-brandlink .nasaq-logo--en { block-size: 18px; }
  .nasaq-slots th, .nasaq-slots td { padding-inline: var(--nasaq-space-1); }
  .nasaq-header { flex-wrap: nowrap; gap: var(--nasaq-space-2); padding: var(--nasaq-space-3) var(--nasaq-space-4); }
  .nasaq-school__name { font-size: var(--nasaq-text-base); }
  .nasaq-shell { display: block; min-block-size: 0; }
  .nasaq-side { display: none; }
  .nasaq-main { gap: var(--nasaq-space-4); padding: var(--nasaq-space-4); }
  .nasaq-tabbar { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); position: sticky;
    inset-block-end: 0; z-index: 5; background: var(--nasaq-surface); border-block-start: 1px solid var(--nasaq-border);
    padding-block-end: env(safe-area-inset-bottom, 0px); }
  .nasaq-title { font-size: var(--nasaq-text-xl); }
  .nasaq-head { flex-direction: column; align-items: stretch; }
  .nasaq-head__actions { flex-wrap: wrap; }
  .nasaq-head__actions .nasaq-more--end .nasaq-menu { inset-inline-start: 0; inset-inline-end: auto; }
  .nasaq-head__actions > .nasaq-btn, .nasaq-head__actions form > .nasaq-btn { flex: 1; }
  .nasaq-search { max-inline-size: none; flex-basis: 100%; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }

/* ---------- the cover screen ---------- */
.nasaq-datenav { display: inline-flex; align-items: center; gap: var(--nasaq-space-1); color: var(--nasaq-text); font-weight: 500; }
.nasaq-datenav .nasaq-iconbtn { color: var(--nasaq-text); }
.nasaq-sum { display: flex; flex-wrap: wrap; gap: var(--nasaq-space-2) var(--nasaq-space-5); margin-inline-start: auto; }
.nasaq-sum > div { display: flex; align-items: baseline; gap: 6px; }
.nasaq-sum dt { font-size: var(--nasaq-text-xs); color: var(--nasaq-muted); }
.nasaq-sum dd { margin: 0; font-size: var(--nasaq-text-lg); font-weight: 600; font-variant-numeric: tabular-nums; }
.nasaq-stats--compact { gap: var(--nasaq-space-3); }
.nasaq-stats--compact .nasaq-stat { flex-direction: row; align-items: baseline; justify-content: space-between; padding: var(--nasaq-space-3) var(--nasaq-space-4); }
.nasaq-stats--compact .nasaq-stat__value { font-size: var(--nasaq-text-xl); }
.nasaq-sep--group { display: flex; justify-content: space-between; font-variant-numeric: tabular-nums; }
.nasaq-row--item { gap: var(--nasaq-space-4); padding-block: var(--nasaq-space-3); }
.nasaq-row__cover { flex: none; inline-size: 156px; display: flex; flex-direction: column; align-items: flex-start; gap: 4px;
  padding-inline-start: var(--nasaq-space-4); border-inline-start: 1px solid var(--nasaq-border); font-size: var(--nasaq-text-sm); }
.nasaq-row__cover b { font-weight: 500; }
@media (max-width: 760px) { .nasaq-row__cover { inline-size: 112px; padding-inline-start: var(--nasaq-space-3); } }
.nasaq-cols3 { display: grid; grid-template-columns: 250px minmax(0, 1fr) 400px; gap: var(--nasaq-space-4); align-items: start; }
.nasaq-cand { display: flex; flex-wrap: wrap; align-items: center; gap: var(--nasaq-space-3);
  padding: var(--nasaq-space-3) var(--nasaq-space-4); border-block-start: 1px solid var(--nasaq-border); }
.nasaq-rows > .nasaq-cand:first-child { border-block-start: 0; }
.nasaq-cand__main { flex: 1 1 200px; min-inline-size: 0; display: flex; flex-direction: column; gap: 2px; line-height: 1.5; }
.nasaq-cand__counts { font-size: var(--nasaq-text-xs); color: var(--nasaq-muted); font-variant-numeric: tabular-nums; }
.nasaq-cand__counts b { color: var(--nasaq-text); font-weight: 600; }
.nasaq-cand__why { font-size: var(--nasaq-text-xs); color: var(--nasaq-muted); }
.nasaq-cand--held .nasaq-cand__why { color: var(--nasaq-warning); }
.nasaq-cand .nasaq-btn { padding: 0 var(--nasaq-space-4); }
.nasaq-reason > summary { list-style: none; }
.nasaq-reason > summary::-webkit-details-marker { display: none; }
.nasaq-reason[open] { flex-basis: 100%; }
.nasaq-reason[open] > summary { display: none; }
.nasaq-reason form { display: flex; flex-wrap: wrap; align-items: center; gap: var(--nasaq-space-2); }
.nasaq-reason .nasaq-label { flex-basis: 100%; }
.nasaq-advanced { flex: 1 1 100%; min-inline-size: 0; }
.nasaq-advanced > summary { list-style: none; }
.nasaq-advanced > summary::-webkit-details-marker { display: none; }
.nasaq-advanced__body .nasaq-input, .nasaq-advanced__body .nasaq-select { inline-size: 100%; }
.nasaq-advanced__body { display: flex; flex-direction: column; gap: var(--nasaq-space-4); margin-block-start: var(--nasaq-space-4); }
.nasaq-choice { display: flex; align-items: center; gap: var(--nasaq-space-2); min-height: var(--nasaq-control-h); }
.nasaq-choice input { width: 20px; height: 20px; margin: 0; accent-color: var(--nasaq-primary); }
.nasaq-reason .nasaq-input { flex: 1 1 180px; }
.nasaq-row--more { justify-content: center; min-block-size: var(--nasaq-control-h); color: var(--nasaq-accent-strong);
  font-size: var(--nasaq-text-sm); font-weight: 500; }
a.nasaq-row--more { color: var(--nasaq-accent-strong); }
@media (max-width: 760px) {
  .nasaq-cols3 { grid-template-columns: 1fr; }
  .nasaq-sum { margin-inline-start: 0; gap: var(--nasaq-space-2) var(--nasaq-space-4); }
}
@media (min-width: 761px) and (max-width: 1180px) {
  .nasaq-cols3 { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .nasaq-cols3 > :first-child { grid-column: 1 / -1; }
}

/* ---------- forms ---------- */
.nasaq-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--nasaq-space-4); align-items: start; }
.nasaq-stack { display: flex; flex-direction: column; gap: var(--nasaq-space-4); min-inline-size: 0; }
.nasaq-form { display: flex; flex-direction: row; flex-wrap: wrap; align-content: flex-start; gap: var(--nasaq-space-4); padding: var(--nasaq-space-5); }
.nasaq-form > .nasaq-field, .nasaq-form > .nasaq-alert { flex: 1 1 100%; min-inline-size: 0; }
.nasaq-form > .nasaq-field--half { flex: 1 1 140px; }
.nasaq-form__foot { flex: 1 1 100%; display: flex; flex-wrap: wrap; gap: var(--nasaq-space-2); }
@media (max-width: 760px) {
  .nasaq-split { grid-template-columns: 1fr; }
}

/* ---------- the duties screen ---------- */
.nasaq-duty { display: grid; gap: var(--nasaq-space-2); min-inline-size: 860px; font-size: var(--nasaq-text-sm); text-align: center; }
.nasaq-tt-day { gap: var(--nasaq-space-2); }
.nasaq-duty__point { display: flex; flex-direction: column; justify-content: center; padding-inline-end: var(--nasaq-space-2);
  text-align: start; line-height: 1.5; }
.nasaq-duty__point b { font-weight: 500; }
.nasaq-duty__point span { font-size: var(--nasaq-text-xs); color: var(--nasaq-muted); }
.nasaq-duty .nasaq-cell { min-block-size: 72px; color: var(--nasaq-text); text-decoration: none; }
.nasaq-duty a.nasaq-cell:hover { border-color: var(--nasaq-primary); }
.nasaq-duty mark, .nasaq-row mark { background: transparent; color: var(--nasaq-accent-strong); font-weight: 600;
  text-decoration: underline; text-underline-offset: 4px; }
.nasaq-only-narrow { display: none; }
@media (max-width: 760px) {
  .nasaq-only-wide { display: none; }
  .nasaq-only-narrow { display: flex; }
}

/* ---------- the Today screen ---------- */
.nasaq-grid2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--nasaq-space-5); align-items: start; }
.nasaq-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--nasaq-space-4); }
.nasaq-stat { display: flex; flex-direction: column; gap: 2px; padding: var(--nasaq-space-5); background: var(--nasaq-surface);
  border: 1px solid var(--nasaq-border); border-radius: var(--nasaq-radius); color: var(--nasaq-text); text-decoration: none;
  transition: border-color .15s ease, background-color .15s ease; }
a.nasaq-stat { color: var(--nasaq-text); }
a.nasaq-stat:hover { border-color: var(--nasaq-primary); color: var(--nasaq-text); }
.nasaq-stat__label { font-size: var(--nasaq-text-sm); font-weight: 500; color: var(--nasaq-muted); }
.nasaq-stat__value { font-size: var(--nasaq-text-3xl); font-weight: 500; line-height: 1.35; font-variant-numeric: tabular-nums; }
.nasaq-stat__sub { min-block-size: 1.5em; font-size: var(--nasaq-text-xs); color: var(--nasaq-muted); }
.nasaq-stat--current { background: var(--nasaq-primary); border-color: var(--nasaq-primary); color: var(--nasaq-on-primary); }
.nasaq-stat--current .nasaq-stat__label, .nasaq-stat--current .nasaq-stat__sub { color: var(--nasaq-accent); }
/* the accent square marks only the lesson now */
.nasaq-stat--live .nasaq-stat__value { display: flex; align-items: center; gap: var(--nasaq-space-3); }
.nasaq-stat--live .nasaq-stat__value::before { content: ""; inline-size: 10px; block-size: 10px; flex: none;
  background: var(--nasaq-accent); }
.nasaq-bell-strip { display: flex; gap: var(--nasaq-space-2); min-inline-size: 680px; font-size: var(--nasaq-text-sm); text-align: center; }
.nasaq-bell-strip > .nasaq-cell { flex: 1 1 0; min-inline-size: 0; }
.nasaq-bell-strip > .nasaq-cell--break { flex: 0 0 44px; }
.nasaq-cell { position: relative; line-height: 1.5; }
.nasaq-cell--current::before { flex: none; }
@media (max-width: 760px) {
  .nasaq-grid2 { grid-template-columns: 1fr; gap: var(--nasaq-space-4); }
  .nasaq-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--nasaq-space-3); }
  .nasaq-stat { padding: var(--nasaq-space-4); }
  /* the numbers stay at the kit's largest size; the lesson's name steps down one size to stay on one line */
  .nasaq-stat--current .nasaq-stat__value { font-size: var(--nasaq-text-2xl); white-space: nowrap; }
}

/* ---------- the teacher's link ---------- */
.nasaq-main--bare { max-inline-size: 640px; margin-inline: auto; inline-size: 100%; }
.nasaq-link, .nasaq-link__body { display: flex; flex-direction: column; gap: var(--nasaq-space-4); }
.nasaq-lesson { display: flex; align-items: center; gap: var(--nasaq-space-3); min-block-size: 60px;
  padding: var(--nasaq-space-2) var(--nasaq-space-4); border-block-start: 1px solid var(--nasaq-border); line-height: 1.5; }
.nasaq-rows > .nasaq-lesson:first-child { border-block-start: 0; }
.nasaq-big-time { inline-size: 104px; flex: none; display: flex; flex-direction: column; font-variant-numeric: tabular-nums; line-height: 1.4; }
.nasaq-big-time b { font-family: var(--nasaq-font-display); font-size: var(--nasaq-text-base); font-weight: 600; }
.nasaq-big-time span { font-size: var(--nasaq-text-xs); color: var(--nasaq-muted); }
.nasaq-expiry { display: flex; align-items: center; gap: var(--nasaq-space-2); font-size: var(--nasaq-text-sm); color: var(--nasaq-muted); }

/* ---------- notifying ---------- */
.nasaq-notice { display: flex; flex-wrap: wrap; align-items: center; gap: var(--nasaq-space-2) var(--nasaq-space-4);
  padding: var(--nasaq-space-3) var(--nasaq-space-4); border-block-start: 1px solid var(--nasaq-border); }
.nasaq-rows > .nasaq-notice:first-child { border-block-start: 0; }
.nasaq-notice__main { flex: 1 1 260px; min-inline-size: 0; display: flex; flex-direction: column; line-height: 1.5; }
.nasaq-lines { list-style: none; padding: 0; font-size: var(--nasaq-text-xs); color: var(--nasaq-muted); }
.nasaq-lines li { display: flex; flex-wrap: wrap; align-items: center; gap: var(--nasaq-space-2); }
.nasaq-lines .nasaq-badge { padding: 0 var(--nasaq-space-2); }
.nasaq-notice__send { display: flex; gap: var(--nasaq-space-2); }
.nasaq-notice__send form { display: contents; }
.nasaq-notice__send .nasaq-btn { padding: 0 var(--nasaq-space-3); }
@media (max-width: 760px) {
  .nasaq-notice__send { inline-size: 100%; }
  .nasaq-notice__send .nasaq-btn { flex: 1; }
}

/* ---------- error pages ---------- */
.nasaq-error { display: flex; flex-direction: column; align-items: center; gap: var(--nasaq-space-4); padding-block: var(--nasaq-space-8, 64px); text-align: center; }
.nasaq-error__code { font-size: 96px; line-height: 1.2; color: var(--nasaq-primary); font-variant-numeric: tabular-nums; }
.nasaq-error__line { font-size: var(--nasaq-text-xl); color: var(--nasaq-text); }

/* ---------- the timetable ---------- */
.nasaq-board { display: grid; gap: var(--nasaq-space-4); align-items: start; }
.nasaq-board--panel { grid-template-columns: minmax(0, 1fr) 300px; }
.nasaq-board > * { min-inline-size: 0; }
.nasaq-board--panel .nasaq-timetable { min-width: 860px; }
a.nasaq-cell { color: inherit; text-decoration: none; transition: border-color .15s ease; }
a.nasaq-cell:hover { border-color: var(--nasaq-primary); }
a.nasaq-cell.nasaq-cell--conflict { color: var(--nasaq-danger); }
a.nasaq-cell.nasaq-cell--current { color: var(--nasaq-on-primary); }
.nasaq-tt-day { flex-wrap: wrap; }
.nasaq-cell--sel { outline: 2px solid var(--nasaq-accent-strong); outline-offset: 2px; }
.nasaq-cell__lock { position: absolute; inset-block-start: 6px; inset-inline-end: 6px; inline-size: 15px; block-size: 15px;
  color: var(--nasaq-muted); }
.nasaq-cell__note { font-size: var(--nasaq-text-xs); line-height: 1.45; }
.nasaq-kv { display: grid; gap: var(--nasaq-space-2); margin: 0; }
.nasaq-kv > div { display: flex; justify-content: space-between; gap: var(--nasaq-space-3); font-size: var(--nasaq-text-sm); }
.nasaq-kv dt { color: var(--nasaq-muted); }
.nasaq-kv dd { margin: 0; font-weight: 500; text-align: end; }
@media (max-width: 760px) {
  .nasaq-board--panel { grid-template-columns: 1fr; }
}

/* ---------- the whole-school sheet ---------- */
.nasaq-master { display: grid; align-items: stretch; font-size: var(--nasaq-text-xs); text-align: center; min-inline-size: max-content; }
.nasaq-master__name { position: sticky; inset-inline-start: 0; z-index: 1; display: flex; flex-direction: column; justify-content: center;
  min-block-size: 44px; padding-inline-end: var(--nasaq-space-2); background: var(--nasaq-surface); color: var(--nasaq-text);
  text-align: start; text-decoration: none; line-height: 1.35; }
.nasaq-master__name { min-inline-size: 0; overflow: hidden; }
.nasaq-master__name b { min-inline-size: 0; overflow: hidden; text-overflow: ellipsis; font-size: var(--nasaq-text-sm); font-weight: 500; white-space: nowrap; }
.nasaq-master__name span { min-inline-size: 0; overflow: hidden; text-overflow: ellipsis; color: var(--nasaq-muted); white-space: nowrap; }
.nasaq-master__day { margin-inline: 1px; padding-block: 2px; border-block-end: 1px solid var(--nasaq-border);
  font-family: var(--nasaq-font-display); font-size: var(--nasaq-text-sm); font-weight: 600; }
.nasaq-master__p { padding-block: 2px; color: var(--nasaq-muted); font-variant-numeric: tabular-nums; }
.nasaq-master .nasaq-cell { min-block-size: 38px; margin: 1px; padding: 0; gap: 0; border-color: var(--nasaq-border);
  font-size: var(--nasaq-text-xs); line-height: 1.2; }
.nasaq-master .nasaq-cell--current { border-color: var(--nasaq-primary); }
.nasaq-master .nasaq-cell--current::before { inline-size: 6px; block-size: 6px; margin-block-end: 2px; }
.nasaq-master .nasaq-cell--conflict { border-color: var(--nasaq-danger); border-width: 2px; }
.nasaq-master__free { margin: 1px; }
.nasaq-menu--search { padding: var(--nasaq-space-2); min-inline-size: 280px; }
.nasaq-bar__end { margin-inline-start: auto; }
@media (max-width: 760px) { .nasaq-bar__end { margin-inline-start: 0; } }
a.nasaq-stat.nasaq-stat--current, a.nasaq-stat.nasaq-stat--current:hover { color: var(--nasaq-on-primary); border-color: var(--nasaq-primary); }

/* the edit board: free slots and swaps as chips, three actions in a row */
.nasaq-chips { display: flex; flex-wrap: wrap; gap: var(--nasaq-space-2); }
.nasaq-chips form, .nasaq-actions3 form { display: contents; }
.nasaq-chip { min-block-size: var(--nasaq-control-h); padding: 0 var(--nasaq-space-3); display: inline-flex; align-items: center;
  gap: 6px; border: 1px solid var(--nasaq-border); border-radius: var(--nasaq-radius-sm); background: var(--nasaq-surface);
  color: var(--nasaq-text); font-family: var(--nasaq-font-body); font-size: var(--nasaq-text-sm); cursor: pointer;
  transition: border-color .15s ease, color .15s ease; }
.nasaq-chip:hover { border-color: var(--nasaq-primary); }
a.nasaq-chip { text-decoration: none; }
.nasaq-actions3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--nasaq-space-2); }
.nasaq-actions3 .nasaq-btn { padding: 0 var(--nasaq-space-2); }

/* picking where a lesson goes: every place it may go is a button */
.nasaq-cell--target { border: 1px dashed var(--nasaq-accent-strong); padding: 0; }
.nasaq-cell__go { inline-size: 100%; block-size: 100%; min-block-size: 62px; display: flex; align-items: center; justify-content: center;
  border: 0; background: transparent; color: inherit; font: inherit; cursor: pointer;
  padding: 0; font-size: var(--nasaq-text-xs); overflow-wrap: anywhere; }
.nasaq-cell--target:hover { border-style: solid; }
.nasaq-alert--pick { flex-wrap: wrap; justify-content: space-between; }

/* ---------- setup ---------- */
.nasaq-main--focus { max-inline-size: 1200px; margin-inline: auto; inline-size: 100%; }
.nasaq-slotwrap { overflow-x: auto; max-inline-size: 100%; }
.nasaq-slots { border-collapse: collapse; font-size: var(--nasaq-text-sm); }
.nasaq-slots caption { text-align: start; padding-block-end: var(--nasaq-space-1); }
.nasaq-slots th, .nasaq-slots td { padding: var(--nasaq-space-1) var(--nasaq-space-2); text-align: center; white-space: nowrap;
  border-block-end: 1px solid var(--nasaq-border); }
.nasaq-slots tbody th { text-align: start; font-weight: 500; }
.nasaq-slots thead th { font-weight: 600; color: var(--nasaq-muted); }
.nasaq-slots__n, .nasaq-slots__t { display: block; }
.nasaq-slots__t { font-size: var(--nasaq-text-xs); font-weight: 400; }
.nasaq-slots input { inline-size: 22px; block-size: 22px; margin: 0; accent-color: var(--nasaq-primary); vertical-align: middle; }
.nasaq-slots [data-colbox] { display: block; margin: var(--nasaq-space-1) auto 0; }
.nasaq-choices { display: flex; flex-wrap: wrap; gap: 0 var(--nasaq-space-4); min-inline-size: 0; margin: 0; padding: 0; border: 0; }
.nasaq-choices > legend { padding: 0; margin-block-end: var(--nasaq-space-1); }
.nasaq-num { display: flex; align-items: center; justify-content: space-between; gap: var(--nasaq-space-3); }
.nasaq-stepper { display: inline-flex; align-items: center; border: 1px solid var(--nasaq-border);
  border-radius: var(--nasaq-radius-sm); background: var(--nasaq-surface); }
.nasaq-stepper .nasaq-input { inline-size: 64px; border: 0; text-align: center; font-size: var(--nasaq-text-lg);
  font-variant-numeric: tabular-nums; }
.nasaq-themes { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: var(--nasaq-space-1) var(--nasaq-space-3); }
.nasaq-swatch { display: inline-flex; flex: none; inline-size: 40px; block-size: 24px; overflow: hidden;
  border: 1px solid var(--nasaq-border); border-radius: var(--nasaq-radius-sm); }
.nasaq-swatch > span { flex: 1; background: var(--nasaq-primary); }
.nasaq-swatch > span + span { flex: 0 0 12px; background: var(--nasaq-accent); }
.nasaq-logo-preview { inline-size: 88px; block-size: 88px; object-fit: contain; padding: var(--nasaq-space-2);
  background: var(--nasaq-primary); border-radius: var(--nasaq-radius-sm); }
.nasaq-wiz__body { display: grid; grid-template-columns: 270px minmax(0, 1fr); gap: var(--nasaq-space-4); align-items: start; }
.nasaq-bell { display: grid; grid-template-columns: 112px minmax(0, 1fr) 140px 140px 44px; gap: var(--nasaq-space-2); align-items: center; }
.nasaq-bell .nasaq-input, .nasaq-bell .nasaq-select { inline-size: 100%; min-inline-size: 0; padding: 0 var(--nasaq-space-3); }
.nasaq-bell__cells { display: contents; }
.nasaq-bell__brk .nasaq-input { background: var(--nasaq-bg); }
.nasaq-bell__h { font-size: var(--nasaq-text-xs); color: var(--nasaq-muted); font-weight: 500; }
.nasaq-bell__err { grid-column: 1 / -1; justify-self: start; }
.nasaq-adv { border-block-start: 1px solid var(--nasaq-border); }
.nasaq-adv > summary { display: flex; align-items: center; gap: var(--nasaq-space-2); min-block-size: var(--nasaq-control-h);
  color: var(--nasaq-accent-strong); font-size: var(--nasaq-text-sm); font-weight: 500; cursor: pointer; list-style: none; }
.nasaq-adv > summary::-webkit-details-marker { display: none; }
.nasaq-adv[open] > summary .i-open, .nasaq-adv:not([open]) > summary .i-close { display: none; }
.nasaq-adv__body { display: flex; flex-direction: column; gap: var(--nasaq-space-3); padding-block-end: var(--nasaq-space-2); }
@media (max-width: 760px) {
  .nasaq-wiz__body { grid-template-columns: minmax(0, 1fr); }
  .nasaq-bell { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 44px; }
  .nasaq-bell__h { display: none; }
  .nasaq-bell .nasaq-input { padding: 0 var(--nasaq-space-2); }
  .nasaq-bell .nasaq-input::-webkit-calendar-picker-indicator { display: none; }
  .nasaq-bell .nasaq-bell__type { margin-block-start: var(--nasaq-space-3); }
  .nasaq-bell__name { grid-column: span 2; margin-block-start: var(--nasaq-space-3); }
}
.nasaq-split--aside { grid-template-columns: minmax(0, 1fr) 300px; }
.nasaq-split--one { grid-template-columns: minmax(0, 1fr); }
.nasaq-plan { --nasaq-plan-first: 150px; --nasaq-plan-first-max: 1.3fr; --nasaq-plan-cell: 64px; --nasaq-plan-cell-max: 1fr;
  display: grid; gap: var(--nasaq-space-2); align-items: stretch; min-inline-size: max-content; }
.nasaq-plan__corner, .nasaq-plan__subj { display: flex; align-items: center; font-size: var(--nasaq-text-sm); font-weight: 500; line-height: 1.4; }
.nasaq-plan__corner, .nasaq-plan__subj { position: sticky; inset-inline-start: 0; z-index: 1; padding-inline-end: var(--nasaq-space-2);
  background: var(--nasaq-surface); }
.nasaq-plan__corner { color: var(--nasaq-muted); font-size: var(--nasaq-text-xs); }
.nasaq-plan__grade { display: flex; align-items: center; justify-content: center; gap: var(--nasaq-space-1);
  min-block-size: var(--nasaq-control-h); font-size: var(--nasaq-text-sm); font-weight: 600; line-height: 1.3; text-align: center; }
.nasaq-plan__grade > span { min-inline-size: 0; overflow-wrap: anywhere; }
.nasaq-plan__cell { min-block-size: 58px; display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: var(--nasaq-space-1); border: 1px solid var(--nasaq-border); border-radius: var(--nasaq-radius-sm);
  background: var(--nasaq-surface); color: var(--nasaq-text); text-decoration: none; line-height: 1.3;
  transition: border-color .15s ease; }
a.nasaq-plan__cell { color: var(--nasaq-text); }
.nasaq-plan__cell:hover { border-color: var(--nasaq-primary); }
.nasaq-plan__cell.is-inherited { background: var(--nasaq-bg); color: var(--nasaq-muted); }
.nasaq-plan__cell.is-sel { outline: 2px solid var(--nasaq-accent-strong); outline-offset: 2px; }
.nasaq-plan__n { font-size: var(--nasaq-text-lg); font-weight: 500; font-variant-numeric: tabular-nums; }
.nasaq-plan__tags { font-size: var(--nasaq-text-xs); color: var(--nasaq-muted); text-align: center; }
.nasaq-plan__total { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
  min-block-size: 58px; border-block-start: 2px solid var(--nasaq-text); font-size: var(--nasaq-text-sm);
  font-variant-numeric: tabular-nums; line-height: 1.3; }
.nasaq-plan__total b { font-size: var(--nasaq-text-lg); font-weight: 600; }
.nasaq-plan__total.is-over { color: var(--nasaq-danger); }
.nasaq-plan__totlabel { border-block-start: 2px solid var(--nasaq-text); }
@media (max-width: 760px) {
  .nasaq-split--aside { grid-template-columns: 1fr; }
  .nasaq-split--aside > aside { order: -1; }
  .nasaq-plan { --nasaq-plan-first: 96px; --nasaq-plan-first-max: 96px; --nasaq-plan-cell: 64px; --nasaq-plan-cell-max: 64px;
    gap: 4px; }
  .nasaq-plan__subj, .nasaq-plan__grade { font-size: var(--nasaq-text-xs); }
  .nasaq-plan__grade { flex-direction: column; justify-content: flex-end; gap: 0; }
  .nasaq-plan__total .nasaq-badge { padding: 0 4px; }
}
/* the setup wizard (frame 5) */
.nasaq-progress { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 4px; inline-size: 100%; max-inline-size: 420px; }
.nasaq-progress span { block-size: 8px; background: var(--nasaq-border); }
.nasaq-progress .is-done { background: var(--nasaq-primary); }
.nasaq-progress .is-now { background: var(--nasaq-accent-strong); }
.nasaq-wiz { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: var(--nasaq-space-5); align-items: start; }
.nasaq-steps { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 2px; }
.nasaq-step { display: flex; align-items: center; gap: var(--nasaq-space-3); min-block-size: var(--nasaq-control-h);
  padding: 0 var(--nasaq-space-2); border-radius: var(--nasaq-radius-sm); color: var(--nasaq-muted); text-decoration: none;
  font-size: var(--nasaq-text-sm); line-height: 1.4; }
a.nasaq-step { color: var(--nasaq-text); }
.nasaq-step__n { inline-size: 28px; block-size: 28px; flex: none; display: grid; place-items: center;
  border: 1px solid var(--nasaq-border); border-radius: var(--nasaq-radius-sm); background: var(--nasaq-surface);
  font-size: var(--nasaq-text-xs); font-variant-numeric: tabular-nums; }
.nasaq-step--done .nasaq-step__n { background: var(--nasaq-primary); border-color: var(--nasaq-primary); color: var(--nasaq-on-primary); }
.nasaq-step[aria-current="step"] { background: var(--nasaq-surface); color: var(--nasaq-text); font-weight: 600; }
.nasaq-step[aria-current="step"] .nasaq-step__n { border-color: var(--nasaq-primary); color: var(--nasaq-primary); }
.nasaq-wiz__foot { display: flex; align-items: center; gap: var(--nasaq-space-3); }
.nasaq-wiz__foot form { display: contents; }
.nasaq-saved { margin-inline-start: auto; display: inline-flex; align-items: center; gap: 4px; color: var(--nasaq-success);
  font-size: var(--nasaq-text-xs); }
.nasaq-saved__at { margin-inline-start: var(--nasaq-space-1); padding-inline-start: var(--nasaq-space-2);
  border-inline-start: 1px solid currentColor; font-variant-numeric: tabular-nums; }
@media (max-width: 760px) {
  .nasaq-wiz { grid-template-columns: 1fr; }
  .nasaq-steps { display: none; }
  .nasaq-wiz__foot { flex-wrap: wrap; }
  .nasaq-wiz__foot .nasaq-btn { flex: 1; }
  .nasaq-saved { flex-basis: 100%; order: -1; }
}

/* setup: the index. A strip of the school's numbers, then the screens in groups of tiles (an icon, the name, one fact) */
.nasaq-ready { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 1px; overflow: hidden;
  background: var(--nasaq-border); border: 1px solid var(--nasaq-border); border-radius: var(--nasaq-radius); }
.nasaq-ready__item { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; min-inline-size: 0;
  padding: var(--nasaq-space-4) var(--nasaq-space-5); background: var(--nasaq-surface); color: var(--nasaq-text);
  text-decoration: none; line-height: 1.5; transition: background-color .15s ease; }
.nasaq-ready__item:hover { background: var(--nasaq-bg); color: var(--nasaq-text); }
.nasaq-ready__item:focus-visible { outline-offset: -3px; }
.nasaq-ready__label { font-size: var(--nasaq-text-xs); font-weight: 500; color: var(--nasaq-muted); }
.nasaq-ready__value { font-size: var(--nasaq-text-2xl); font-weight: 500; line-height: 1.35; font-variant-numeric: tabular-nums; }
.nasaq-ready__state { display: flex; align-items: center; min-block-size: calc(var(--nasaq-text-2xl) * 1.35); }
.nasaq-ready__go { gap: var(--nasaq-space-2); color: var(--nasaq-accent-strong); font-size: var(--nasaq-text-sm); font-weight: 500; }
.nasaq-ready__sub { font-size: var(--nasaq-text-xs); color: var(--nasaq-muted); font-variant-numeric: tabular-nums; }
.nasaq-meter { display: block; align-self: stretch; block-size: 4px; margin-block: var(--nasaq-space-1); overflow: hidden;
  background: var(--nasaq-border); border-radius: 2px; }
.nasaq-meter > span { display: block; block-size: 100%; background: var(--nasaq-primary); }
.nasaq-group { display: flex; flex-direction: column; gap: var(--nasaq-space-3); }
h2.nasaq-group__title { font-size: var(--nasaq-text-base); }
.nasaq-tiles { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--nasaq-space-3); }
.nasaq-tile, .nasaq-wizcard { display: flex; align-items: center; gap: var(--nasaq-space-4); min-block-size: 76px;
  padding: var(--nasaq-space-3) var(--nasaq-space-4); border: 1px solid var(--nasaq-border); border-radius: var(--nasaq-radius);
  background: var(--nasaq-surface); color: var(--nasaq-text); text-decoration: none; }
.nasaq-tile { transition: border-color .15s ease; }
.nasaq-tile:hover { border-color: var(--nasaq-primary); color: var(--nasaq-text); }
.nasaq-tile__icon { inline-size: 44px; block-size: 44px; flex: none; display: grid; place-items: center;
  border-radius: var(--nasaq-radius-sm); background: var(--nasaq-bg); color: var(--nasaq-primary); }
.nasaq-tile__text { flex: 1; min-inline-size: 0; display: flex; flex-direction: column; align-items: flex-start; line-height: 1.5; }
.nasaq-tile__title { font-size: var(--nasaq-text-sm); font-weight: 600; }
.nasaq-tile__fact { font-size: var(--nasaq-text-xs); color: var(--nasaq-muted); font-variant-numeric: tabular-nums; }
.nasaq-tile__badge { display: flex; margin-block-start: var(--nasaq-space-1); }
.nasaq-tile__badge .nasaq-badge { padding: 0 var(--nasaq-space-2); }
.nasaq-tile__go { color: var(--nasaq-muted); transition: color .15s ease; }
.nasaq-tile:hover .nasaq-tile__go { color: var(--nasaq-primary); }
.nasaq-wizcard { flex-wrap: wrap; background: transparent; }
.nasaq-wizcard form { margin-inline-start: auto; }
/* phones: a group is one panel of rows */
@media (max-width: 599px) {
  .nasaq-tiles { gap: 0; overflow: hidden; border: 1px solid var(--nasaq-border); border-radius: var(--nasaq-radius);
    background: var(--nasaq-surface); }
  .nasaq-tile { min-block-size: 64px; border: 0; border-block-start: 1px solid var(--nasaq-border); border-radius: 0;
    transition: background-color .15s ease; }
  .nasaq-tile:first-child { border-block-start: 0; }
  .nasaq-tile:hover { background: var(--nasaq-bg); }
  .nasaq-tile:focus-visible { outline-offset: -3px; }
  .nasaq-tile__icon { inline-size: 40px; block-size: 40px; }
}
@media (min-width: 600px) { .nasaq-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .nasaq-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) {
  .nasaq-ready { grid-auto-flow: row; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nasaq-ready__item { padding: var(--nasaq-space-3) var(--nasaq-space-4); }
  .nasaq-ready__item:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .nasaq-ready__value { font-size: var(--nasaq-text-xl); }
  .nasaq-ready__state { min-block-size: calc(var(--nasaq-text-xl) * 1.35); }
}

/* setup: imports */
.nasaq-change { display: flex; flex-wrap: wrap; gap: var(--nasaq-space-1); }

@media (max-width: 760px) {
  .nasaq-seg { flex-wrap: wrap; overflow-x: visible; }
}

/* ---------- the teacher portal's figures: a small table of counts by term or month ---------- */
.nasaq-figures-wrap { overflow-x: auto; }
.nasaq-figures { inline-size: 100%; border-collapse: collapse; font-size: var(--nasaq-text-sm); font-variant-numeric: tabular-nums; }
.nasaq-figures th, .nasaq-figures td { padding: var(--nasaq-space-2) var(--nasaq-space-3); text-align: center;
  border-block-end: 1px solid var(--nasaq-border); white-space: nowrap; }
.nasaq-figures th[scope="row"] { text-align: start; font-weight: 500; }
.nasaq-figures thead th { color: var(--nasaq-muted); font-weight: 500; }
.nasaq-figures tfoot th, .nasaq-figures tfoot td { font-weight: 600; border-block-end: 0; }
@media (max-width: 760px) {
  .nasaq-figures th, .nasaq-figures td { padding: var(--nasaq-space-2) var(--nasaq-space-1); }
  .nasaq-figures thead th, .nasaq-figures th[scope="row"] { white-space: normal; }
}

/* ---------- a teacher: the picker, the profile, the head of their week and of its print ---------- */
.nasaq-picker { display: flex; flex-wrap: wrap; align-items: center; gap: var(--nasaq-space-3); flex: 1 1 480px; min-inline-size: 0; }
.nasaq-picker__find { flex: 1 1 220px; max-inline-size: 300px; }
.nasaq-picker__find[hidden] { display: none; }
.nasaq-picker__select { flex: 1 1 240px; max-inline-size: 360px; min-inline-size: 0; }
.nasaq-avatar { inline-size: 104px; block-size: 104px; flex: none; border: 1px solid var(--nasaq-border);
  border-radius: var(--nasaq-radius); background: var(--nasaq-bg); object-fit: cover; }
.nasaq-avatar--initials { display: grid; place-items: center; color: var(--nasaq-primary); font-family: var(--nasaq-font-display);
  font-size: var(--nasaq-text-2xl); font-weight: 600; line-height: 1; }
.nasaq-profile__head { display: flex; flex-wrap: wrap; align-items: center; gap: var(--nasaq-space-4) var(--nasaq-space-5);
  padding: var(--nasaq-space-6); }
.nasaq-profile__who { flex: 1 1 280px; min-inline-size: 0; display: flex; flex-direction: column; gap: 2px; }
.nasaq-profile__name { margin: 0; font-family: var(--nasaq-font-display); font-size: var(--nasaq-text-xl);
  line-height: var(--nasaq-leading-display); font-weight: 600; }
.nasaq-profile__other { align-self: flex-start; color: var(--nasaq-muted); font-size: var(--nasaq-text-sm); line-height: 1.6; }
.nasaq-profile__line { display: flex; flex-wrap: wrap; align-items: center; gap: var(--nasaq-space-2) var(--nasaq-space-3);
  margin-block-start: var(--nasaq-space-2); }
.nasaq-profile__specialty { color: var(--nasaq-accent-strong); font-size: var(--nasaq-text-sm); font-weight: 500; }
.nasaq-profile__actions { display: flex; flex-wrap: wrap; gap: var(--nasaq-space-2); }
.nasaq-facts { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: var(--nasaq-space-5) var(--nasaq-space-6);
  margin: 0; padding: var(--nasaq-space-5) var(--nasaq-space-6); border-block-start: 1px solid var(--nasaq-border); }
.nasaq-facts__item { display: flex; flex-direction: column; gap: 2px; min-inline-size: 0; }
.nasaq-facts dt { color: var(--nasaq-muted); font-size: var(--nasaq-text-xs); line-height: 1.6; }
.nasaq-facts dd { margin: 0; font-size: var(--nasaq-text-sm); font-weight: 500; line-height: 1.6; overflow-wrap: anywhere; }
.nasaq-facts dd a { color: var(--nasaq-accent-strong); text-decoration: none; }
.nasaq-facts dd a:hover { text-decoration: underline; text-underline-offset: 3px; }
.nasaq-facts__none { color: var(--nasaq-muted); font-weight: 400; }
.nasaq-profile__notes { display: flex; flex-direction: column; gap: var(--nasaq-space-1); padding: var(--nasaq-space-5) var(--nasaq-space-6);
  border-block-start: 1px solid var(--nasaq-border); }
.nasaq-profile__label { margin: 0; color: var(--nasaq-muted); font-family: var(--nasaq-font-body); font-size: var(--nasaq-text-xs);
  font-weight: 400; line-height: 1.6; }
.nasaq-profile__notes p { max-inline-size: 68ch; font-size: var(--nasaq-text-sm); line-height: var(--nasaq-leading-body); }
.nasaq-profile__foot { display: flex; flex-wrap: wrap; align-items: center; gap: var(--nasaq-space-2);
  padding: var(--nasaq-space-4) var(--nasaq-space-6); border-block-start: 1px solid var(--nasaq-border); }
.nasaq-profile__foot form { display: contents; }
.nasaq-profile__end > .nasaq-btn { margin-inline-start: auto; }
.nasaq-file { position: relative; cursor: pointer; }
.nasaq-file input { position: absolute; inline-size: 1px; block-size: 1px; opacity: 0; overflow: hidden; clip-path: inset(50%); }
.nasaq-file:focus-within { outline: 2px solid var(--nasaq-accent-strong); outline-offset: 2px; }
.nasaq-who { display: flex; align-items: center; gap: var(--nasaq-space-3); min-inline-size: 0; }
.nasaq-who__photo { inline-size: 48px; block-size: 48px; flex: none; border: 1px solid var(--nasaq-border);
  border-radius: var(--nasaq-radius-sm); background: var(--nasaq-bg); object-fit: cover; }
.nasaq-who__text { display: flex; flex-direction: column; min-inline-size: 0; }
.nasaq-who__name { font-family: var(--nasaq-font-display); font-size: var(--nasaq-text-lg); font-weight: 500; line-height: 1.5; }
.nasaq-who__sub { color: var(--nasaq-muted); font-size: var(--nasaq-text-sm); line-height: 1.5; }
.nasaq-printhead { display: none; }
@media (max-width: 760px) {
  .nasaq-picker, .nasaq-picker__find, .nasaq-picker__select { flex-basis: 100%; max-inline-size: none; }
  .nasaq-profile__head { gap: var(--nasaq-space-4); padding: var(--nasaq-space-5) var(--nasaq-space-4) var(--nasaq-space-4); }
  .nasaq-avatar { inline-size: 80px; block-size: 80px; }
  .nasaq-avatar--initials { font-size: var(--nasaq-text-xl); }
  .nasaq-profile__who { flex-basis: 0; flex-grow: 1; }
  .nasaq-profile__actions { inline-size: 100%; }
  .nasaq-profile__actions > .nasaq-btn { flex: 1 1 0; padding-inline: var(--nasaq-space-2); }
  .nasaq-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--nasaq-space-4); padding: var(--nasaq-space-4); }
  .nasaq-profile__notes { padding: var(--nasaq-space-4); }
  .nasaq-profile__foot { padding: var(--nasaq-space-3) var(--nasaq-space-4); }
}

/* A page printed (the new passwords as slips, a teacher's statistics): the page's own content, no frame. */
.nasaq-email { font: inherit; unicode-bidi: isolate; }
.nasaq-secret { font-family: ui-monospace, monospace; font-size: var(--nasaq-text-lg, 1.1em); letter-spacing: 0.08em; }
@media print {
  .nasaq-header, .nasaq-side, .nasaq-tabbar, .nasaq-crumbs, .nasaq-flash, .nasaq-foot, .nasaq-noprint { display: none !important; }
  .nasaq-shell, .nasaq-main { display: block; min-block-size: 0; padding: 0; }
  .nasaq-panel { box-shadow: none; break-inside: avoid; }
  .nasaq-slip { break-inside: avoid; border-block-end: 1px dashed currentColor; padding-block: var(--nasaq-space-4); }
  /* A teacher's timetable: who it is, in a block of its own fixed height above the grid; the grid prints as before. */
  .nasaq-printhead { display: flex; flex: none; align-items: center; gap: 5mm; box-sizing: border-box; block-size: 24mm;
    margin-block-end: 4mm; padding-block-end: 3mm; overflow: hidden; border-block-end: 1px solid var(--nasaq-border);
    break-inside: avoid; break-after: avoid; }
  .nasaq-printhead__photo { inline-size: 18mm; block-size: 18mm; flex: none; border: 1px solid var(--nasaq-border);
    border-radius: var(--nasaq-radius-sm); object-fit: cover; }
  .nasaq-printhead__who { display: flex; flex-direction: column; min-inline-size: 0; }
  .nasaq-printhead__name { font-family: var(--nasaq-font-display); font-size: var(--nasaq-text-lg); font-weight: 600; line-height: 1.5; }
  .nasaq-printhead__sub { color: var(--nasaq-muted); font-size: var(--nasaq-text-xs); line-height: 1.5; }
  .nasaq-printhead__school { margin-inline-start: auto; color: var(--nasaq-muted); font-size: var(--nasaq-text-xs); text-align: end; }
}
