/* Teacher workspace: shared hierarchy, readable controls and responsive layout. */
:root {
  --bg:#f2f5f9; --card:#fff; --ink:#183247; --muted:#526575;
  --line:#d7e1e9; --line-strong:#a7b8c7; --primary:#175f86; --primary2:#104968;
  --nav:#163b52; --nav-2:#163b52; --primary-soft:#e9f3fa; --soft:#eef3f7;
  --radius:12px; --shadow:0 3px 14px rgba(24,50,71,.035);
}
html { scroll-padding-top:7rem; }
body { font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif; font-size:1rem; line-height:1.6; }
[hidden] { display:none!important; }
a { color:var(--primary); }
a,button,input,select,textarea,summary { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:3px solid #af5810!important; outline-offset:4px; }
.sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
.skip-link { position:fixed;left:1rem;top:-6rem;z-index:200;background:#fff;color:#163b52;padding:.75rem 1rem;border-radius:.5rem;font-weight:700; }
.skip-link:focus { top:1rem; }
.container { max-width:1392px; padding:1.75rem 2rem 3rem; }
main:focus { outline:none; }
h1 { font-size:clamp(1.7rem,2.7vw,2.2rem);line-height:1.22;letter-spacing:-.035em;font-weight:750;margin:0 0 .65rem; }
h2 { font-size:1.25rem;line-height:1.4; }
h3 { font-size:1.05rem; }
p { max-width:85ch; }
.lead { font-size:1rem;line-height:1.65;max-width:78ch;margin:0; }
.eyebrow,.title-kicker { color:var(--muted);font-size:.75rem;letter-spacing:.075em;line-height:1.6;margin-bottom:.5rem; }
.heading-row { align-items:center;margin:1.5rem 0;gap:1.5rem; }
.heading-row>div:first-child { min-width:0; }
.heading-row .export-actions { flex-wrap:wrap;flex-shrink:0; }
.btn { display:inline-flex;justify-content:center;align-items:center;gap:.4rem;min-height:44px;padding:.65rem 1rem;font-size:.875rem;line-height:1.35;font-weight:650;border-radius:8px;box-shadow:none; }
.btn.small { min-height:40px;font-size:.875rem; }
.btn.primary { background:var(--primary);border:1px solid var(--primary);color:#fff; }
.btn.quiet { color:#284b62;border-color:#bbcdd9; }
.btn:hover { box-shadow:none;filter:brightness(.97); }
input,select,textarea { border-color:#a7bac8;border-radius:8px;padding:.65rem .75rem;font:inherit;line-height:1.5;min-height:44px; }
input[type=checkbox],input[type=radio] { min-height:0;width:18px;height:18px;accent-color:var(--primary);flex-shrink:0; }
input[type=checkbox]:disabled,input[type=radio]:disabled { cursor:default; }
textarea { min-height:90px; }
button,summary { touch-action:manipulation; }
button:disabled { cursor:wait;opacity:.65; }
.topbar { background:#163b52;box-shadow:none;position:sticky;top:0;z-index:40; }
.topbar-shell { max-width:1440px;min-height:80px;padding:1rem 2rem;gap:1.5rem;flex-wrap:wrap; }
.brand { min-width:0;gap:.7rem; }
.brand-mark { width:40px;height:40px;border-radius:10px;box-shadow:none;background:#d6e9f5;color:#163b52;font-size:.875rem; }
.brand-copy strong { font-size:.9375rem; }
.brand-copy small { color:#c4d9e7;font-size:.75rem; }
.primary-nav { gap:.25rem;flex:1;margin:0;justify-content:center; }
.primary-nav a { padding:.6rem .8rem;font-size:.875rem;border-radius:7px;min-height:44px;display:flex;align-items:center;color:#d8e6f0; }
.primary-nav a.active { background:#fff;box-shadow:none;color:#163b52; }
.topbar-tools { gap:.5rem;margin:0; }
.nav-menu-trigger,.user-trigger { font-size:.875rem;min-height:44px;background:transparent; }
.user-name { max-width:115px; }
.nav-dropdown { min-width:260px;max-width:calc(100vw - 2rem);border-radius:10px; }
.nav-dropdown a { font-size:.875rem;min-height:44px; }
.nav-dropdown a strong,.nav-meta strong { font-size:.875rem; }
.nav-dropdown a small,.nav-meta span { font-size:.75rem;color:var(--muted); }
.contextbar { display:flex;align-items:center;gap:1rem;flex-wrap:wrap;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none;padding:0 0 1.35rem;margin:0 0 1.5rem; }
.contextbar-title { width:100%;font-size:.75rem;color:var(--muted);letter-spacing:.06em; }
.contextbar .context-form { display:flex;align-items:flex-end;flex-wrap:wrap;gap:.8rem;flex:1; }
.contextbar label { display:flex;flex-direction:column;align-items:flex-start;gap:.3rem;font-size:.875rem;color:var(--muted); }
.contextbar select { min-height:44px;max-width:100%;padding:.6rem 2rem .6rem .7rem;font-size:.875rem; }
.contextbar label>span { font-size:.875rem;text-transform:none;letter-spacing:0; }
.context-contract-name { font-size:.875rem;color:var(--muted);align-self:flex-end;max-width:250px;padding-bottom:.65rem; }
.context-summary { margin:0;color:var(--ink);font-weight:600; }
.context-summary span { margin:0 .6rem;color:#7d8f9d; }
.panel,.card,.period-action,.objective-summary { box-shadow:var(--shadow);border-color:var(--line); }
.panel { padding:1.5rem;margin:1.25rem 0; }
.panel-heading { align-items:center;margin-bottom:1rem;flex-wrap:wrap; }
.panel-heading p { font-size:.875rem; }
.quick-help { background:#e9f3fa;border:1px solid #c4dce9;border-left:3px solid var(--primary);padding:1rem 1.2rem;font-size:.9375rem;border-radius:8px; }
.dashboard-viewbar { background:#fff;border:1px solid var(--line);border-radius:12px;padding:.5rem;box-shadow:none; }
.dashboard-viewbar-label { display:none; }
.dashboard-view-tabs { display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.3rem;width:100%; }
.dashboard-view-tabs button { min-height:66px;background:transparent;border:0;border-radius:8px;color:var(--muted);padding:.75rem;box-shadow:none; }
.dashboard-view-tabs button.active { background:#e6f1f8;color:#104d70;box-shadow:inset 0 -3px 0 #175f86; }
.dashboard-view-tabs button strong { font-size:.9375rem;color:inherit; }
.dashboard-view-tabs button small { font-size:.75rem;color:var(--muted); }
.view-icon { display:none; }
.dashboard-kpis { gap:1rem;margin:1.25rem 0; }
.dashboard-kpis article { border:1px solid var(--line);border-top:0;border-radius:10px;box-shadow:none;background:#fff;padding:1.2rem 1.3rem;gap:.35rem; }
.dashboard-kpis article>span { font-size:.875rem;text-transform:none;letter-spacing:0;font-weight:600;color:var(--muted); }
.dashboard-kpis article>strong { font-size:2rem;line-height:1.3;letter-spacing:-.04em;color:var(--ink); }
.dashboard-kpis article>small { font-size:.8125rem;color:var(--muted); }
.dashboard-kpis article.kpi-alert { background:#fffaf1;border:1px solid #ead5b2; }
.dashboard-kpis .kpi-jump { margin-top:.5rem;align-self:flex-start;background:none;border:0;padding:0;font:inherit;font-size:.8125rem;font-weight:600;color:#b45309;cursor:pointer;text-decoration:underline;text-underline-offset:2px;transition:color .15s ease; }
.dashboard-kpis .kpi-jump::after { content:" →"; }
.dashboard-kpis .kpi-jump:hover { color:#8a3f07; }
.dashboard-kpis .kpi-jump:focus-visible { outline:2px solid #b45309;outline-offset:2px;border-radius:4px; }

/* Cartes-indicateurs pilotant la liste */
.dashboard-kpis article[data-filter-card] { cursor:pointer;transition:box-shadow .15s ease,border-color .15s ease,transform .05s ease; }
.dashboard-kpis article[data-filter-card]:hover { border-color:var(--primary);box-shadow:0 4px 14px rgba(11,96,120,.14); }
.dashboard-kpis article[data-filter-card]:active { transform:translateY(1px); }
.dashboard-kpis article[data-filter-card]:focus-visible { outline:2px solid var(--primary);outline-offset:2px; }
.dashboard-kpis article[data-filter-card].is-selected { border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary),0 4px 14px rgba(11,96,120,.14);background:var(--primary-soft); }
.dashboard-kpis article[data-filter-card].is-selected:before { width:6px; }
.dashboard-kpis article[data-filter-card].is-selected>span:after { content:" ✓";color:var(--primary); }
.kpi-hint { margin:-4px 0 14px;font-size:12px;color:var(--muted); }

/* Volet « Affiner la liste » repliable */
.dashboard-refine { margin:6px 0 14px;border:1px solid var(--line);border-radius:11px;background:#fff; }
.dashboard-refine>summary { cursor:pointer;list-style:none;padding:9px 13px;font-size:13px;font-weight:800;color:var(--primary);display:flex;align-items:center;gap:8px; }
.dashboard-refine>summary::-webkit-details-marker { display:none; }
.dashboard-refine>summary:after { content:"▾";margin-left:auto;color:var(--muted);transition:transform .15s ease; }
.dashboard-refine[open]>summary { border-bottom:1px solid var(--line); }
.dashboard-refine[open]>summary:after { transform:rotate(180deg); }
.dashboard-refine>summary:focus-visible { outline:2px solid var(--primary);outline-offset:-2px;border-radius:11px; }
.dashboard-refine .dashboard-filter-panel { margin:0;padding:12px 13px; }
.dashboard-refine .dashboard-filter-help { padding:0 13px 12px;margin:0; }

/* Lien de réinitialisation des filtres */
.filter-reset-link { border:0;background:none;cursor:pointer;font:inherit;font-size:12px;font-weight:800;color:var(--primary);text-decoration:underline;text-underline-offset:2px;padding:0;margin-left:10px; }
.filter-reset-link:hover { color:var(--primary2); }
.filter-reset-link:focus-visible { outline:2px solid var(--primary);outline-offset:2px;border-radius:4px; }
.dashboard-objective-summaries { gap:1rem; }
.objective-summary { padding:1.2rem;border-top:3px solid var(--accent);border-radius:10px; }
.objective-summary>strong { font-size:1rem; }
.objective-summary small { font-size:.8125rem; }
.objective-summary:hover { transform:none; }
.summary-number { font-size:1.6rem; }
.dashboard-filter-panel { box-shadow:none;border-radius:10px;padding:1rem;gap:1rem;background:#eaf0f5;border:1px solid var(--line); }
.dashboard-filter-group>span { font-size:.875rem;color:#3f576a;text-transform:none;letter-spacing:0; }
.dashboard-filter-chips button,.filter-chips button,.objective-tabs button { min-height:40px;font-size:.875rem;padding:.5rem .8rem;line-height:1.35;border-radius:7px; }
.dashboard-filter-chips button.active,.filter-chips button.active,.objective-tabs button.active { color:#fff!important;background:var(--primary)!important;border-color:var(--primary)!important; }
.filter-result-count { font-size:.875rem;color:var(--muted); }
.matrix-action { gap:.8rem;align-items:center;font-size:.9375rem; }
.matrix-action>span { color:#344d60;font-size:.9375rem; }
.matrix-row { padding:1rem .5rem;grid-template-columns:minmax(0,1fr) 320px; }
.matrix-strategy { color:#465f71;font-size:.875rem;padding:1rem .5rem .5rem; }
.matrix-objective { margin-top:1.2rem;padding:.8rem;border-left-width:4px;background:#eef3f7;font-size:1rem; }
.period-dot { min-height:44px;font-size:.875rem;line-height:1.2;border-radius:7px;gap:.1rem;padding:.3rem; }
.period-dot small { font-size:.75rem; }
.period-dot.empty { color:#526575;background:#f5f7fa; }
.period-dot.status-planned { background:#edf0f7;color:#4f537b; }
.annual-level { font-size:.8125rem; }
.objective-tabs { position:static;background:transparent;gap:.5rem;padding:.5rem 0;margin-bottom:1rem; }
.objective-title { font-size:1.25rem;border-left-width:4px;margin:2rem 0 1rem;scroll-margin-top:7rem; }
.period-action { padding:1.5rem;margin:.85rem 0;border-radius:12px;scroll-margin-top:7rem; }
.period-action:target { outline:3px solid #95bcd3; }
.action-head { gap:1.5rem; }
.action-head h3 { font-size:1.0625rem;font-weight:600;line-height:1.5;margin:.35rem 0; }
.action-code { font-size:.875rem; }
.action-status { display:flex;flex-direction:column;gap:.35rem;font-size:.875rem;color:var(--muted);min-width:190px; }
.status-select { width:100%;flex:auto;font-size:.875rem; }
.status-empty { background:#f6f8fb; }
.activity-choice-list { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem; }
.activity-choice { max-width:none;padding:.9rem;border-radius:8px;align-items:flex-start; }
.activity-choice input { margin-top:.25rem; }
.choice-main { line-height:1.5; }
.choice-main strong { font-size:.9375rem; }
.choice-main small { font-size:.8125rem;color:var(--muted); }
.choice-badge { font-size:.75rem;text-transform:none; }
.picker-label { flex-wrap:wrap; }
.picker-label span { font-size:.875rem; }
.main-entry,.secondary-grid label,.secondary-fields summary,.routine-title span { font-size:.875rem;color:var(--muted); }
.main-entry { margin-top:1rem; }
.main-entry small { font-size:.8125rem;color:var(--muted); }
.secondary-fields summary { min-height:44px;padding:.5rem 0;color:#295572; }
.sticky-save { bottom:.75rem;gap:1rem;align-items:center;justify-content:space-between;padding:.85rem 1rem;background:#163b52;border-radius:10px;pointer-events:auto;box-shadow:0 5px 20px #163b5220; }
.sticky-save .btn { box-shadow:none;background:#fff;color:#163b52;border-color:#fff; }
.save-state { font-size:.875rem; }
.sticky-save .save-state { color:#e4eef5; }
.sticky-save .save-state.is-dirty { color:#ffe3a1; }
.readonly-fieldset { min-width:0; }
.library-view-tabs a { min-height:60px; }
.library-view-tabs a strong { font-size:1rem; }
.library-view-tabs a small { font-size:.8125rem; }
.library-tools { align-items:flex-end;flex-wrap:wrap; }
.library-search { display:flex;flex-direction:column;gap:.4rem;min-width:min(100%,320px);flex:1; }
.library-search span { font-size:.875rem;font-weight:600; }
.library-search input { max-width:none; }
.legend-item,.legend-title { font-size:.8125rem;color:#435d6c; }
.activity-library.compact-library { grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem; }
.compact-activity-card { border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px; }
.activity-compact-shell { padding:1.2rem; }
.activity-compact-title { font-size:1.125rem;line-height:1.4; }
.activity-compact-meta .meta-chip,.activity-compact-meta .year-badge,.activity-compact-meta .adopted-badge { font-size:.75rem;padding:.35rem .5rem;min-height:28px; }
.compact-period-label { font-size:.8125rem;text-transform:none;letter-spacing:0; }
.activity-compact-periods .period-check { min-height:44px;padding:.6rem .4rem;font-size:.875rem;gap:.4rem; }
.activity-compact-periods .period-check input { width:18px;height:18px; }
.activity-compact-periods .autosave-state { min-height:1.4rem;font-size:.8125rem; }
.activity-compact-periods .autosave-state.error { color:#9d2837; }
.activity-compact-periods .autosave-state.saved { color:#245d3c; }
.activity-compact-actions .btn,.drawer-close,.activity-compact-reuse .btn { min-height:40px;font-size:.875rem; }
.activity-drawer-kicker,.activity-origin-inline { font-size:.8125rem; }
.activity-details summary { font-size:.875rem;min-height:44px; }
.school-domain-card { box-shadow:none;border-radius:12px; }
.structure-guide { list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;padding:0;margin:1.5rem 0; }
.structure-guide li { padding:1.2rem;background:#fff;border:1px solid var(--line);border-radius:10px; }
.structure-guide li>span { display:block;color:#526f82;font-size:.75rem;font-weight:700;letter-spacing:.1em;margin-bottom:.6rem; }
.structure-guide strong { font-size:1rem; }
.structure-guide p { font-size:.875rem;color:var(--muted);margin:.4rem 0 0; }
.workflow-help { margin:1rem 0 1.25rem;border-bottom:1px solid var(--line);padding:0 0 1rem; }
.workflow-help summary { cursor:pointer;color:var(--primary);font-size:.875rem;min-height:40px;padding:.4rem 0; }
.workflow-help p { color:var(--muted);font-size:.9375rem; }
.workflow-help ol { padding-left:1.4rem;display:grid;gap:.5rem;font-size:.9375rem; }
.dashboard-explainer { font-size:.875rem;color:var(--muted);margin:1rem 0; }
.period-overview-card p,.attention-card p { font-size:.9375rem; }
.period-overview-card small,.attention-meta,.period-state-label { font-size:.8125rem; }
.period-overview-card.state-todo { border-color:var(--line); }
.period-overview-card .period-state-label { color:#344d60;background:#edf2f6; }
.period-overview-card.state-blocked .period-state-label { color:#754912;background:#fff0d3; }
.period-overview-card.state-not_done .period-state-label { color:#8b303e;background:#fbe9ec; }
.form-grid label,.field-card,.tags-field,.frequency-box small,.section-heading p,.edit-steps small { font-size:.875rem; }
.form-grid label small,.field-card small,.tags-field small { font-size:.8125rem;color:var(--muted); }
.attention-label,.attention-meta span,.annual-level,.mini-period,.trend-badge { font-size:.8125rem; }
.viewing-banner,.readonly-notice { font-size:.9375rem; }
.readonly-badge { font-size:.8125rem; }
th { font-size:.875rem; }
.workspace-footer { max-width:1328px;margin:0 auto;padding:1.2rem 2rem 2rem;border-top:1px solid var(--line);font-size:.8125rem;color:var(--muted); }
.workspace-footer span { padding:0 .5rem; }
@media(max-width:1200px) {
  .topbar { position:relative; }
  .topbar-shell { gap:.9rem; }
  .primary-nav { order:3;flex-basis:100%;justify-content:flex-start;flex-wrap:wrap; }
  .topbar-tools { margin-left:auto; }
  .dashboard-view-tabs button small { display:none; }
  .dashboard-view-tabs button { min-height:48px; }
  .context-contract-name { max-width:none; }
}
@media(max-width:900px) {
  .container { padding:1.25rem; }
  .topbar-shell { padding:1rem 1.25rem; }
  .heading-row { flex-direction:column;align-items:flex-start; }
  .dashboard-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .matrix-row { grid-template-columns:1fr; }
  .activity-choice-list,.activity-library.compact-library { grid-template-columns:1fr; }
  .structure-guide { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .dashboard-view-tabs { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .action-head { flex-direction:column; }
  .action-status { width:100%; }
  .contextbar .context-form { align-items:stretch; }
  .contextbar .context-form>label { flex:1 1 160px; }
  .contextbar select { width:100%; }
  .contextbar .context-form>.btn { align-self:flex-end; }
}
@media(max-width:560px) {
  .container { padding:1rem; }
  .topbar-shell { padding:1rem;gap:.8rem; }
  .topbar-tools { flex-basis:100%;margin-left:0;justify-content:space-between; }
  .primary-nav { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%; }
  .primary-nav a { font-size:.875rem;white-space:normal; }
  .brand-copy strong { font-size:1rem; }
  .nav-dropdown { right:auto;left:0;min-width:min(270px,calc(100vw - 2rem)); }
  .user-menu .nav-dropdown { right:0;left:auto; }
  .contextbar .context-form>label { flex-basis:100%; }
  .contextbar .context-form>.btn { width:100%; }
  .context-contract-name { padding:0; }
  .dashboard-view-tabs { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .dashboard-view-tabs button { justify-content:center; }
  .dashboard-kpis { gap:.65rem; }
  .dashboard-kpis article { padding:.9rem; }
  .dashboard-kpis article>strong { font-size:1.7rem; }
  .dashboard-kpis article>small { font-size:.8125rem; }
  .panel,.period-action { padding:1rem; }
  .sticky-save { flex-direction:column;align-items:stretch;bottom:.4rem;gap:.5rem; }
  .sticky-save .btn { width:100%; }
  .sticky-save .save-state { text-align:center; }
  .matrix-action { align-items:flex-start;flex-wrap:wrap; }
  .matrix-action>span { flex-basis:100%; }
  .matrix-periods { max-width:none;gap:.35rem; }
  .period-dot { font-size:.875rem; }
  .activity-compact-periods .period-checks { display:grid;grid-template-columns:repeat(3,minmax(0,1fr)); }
  .activity-compact-periods .period-check { min-width:0; }
  .structure-guide { grid-template-columns:1fr; }
  .heading-row .export-actions,.heading-row .button-row { width:100%; }
  .heading-row .export-actions .btn { flex:1 1 160px; }
  .library-tools,.library-search { width:100%;min-width:0; }
  .routine-title { min-width:0;overflow-wrap:anywhere; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none!important;transition:none!important; }
}
@media(forced-colors:active) {
  .btn,.period-dot,.objective-tabs button,.dashboard-view-tabs button { border:1px solid ButtonText; }
  [aria-current=page],[aria-pressed=true],[aria-selected=true] { outline:2px solid Highlight; }
}

/* Restore a visible annual cross-tab with a stable row/column relationship. */
.dashboard-filter-help {font-size:.875rem;color:var(--muted);line-height:1.6;margin:.7rem 0 1rem;max-width:105ch;}
.dashboard-matrix-scroll {max-width:100%;overflow:auto;border:1px solid var(--line);border-radius:8px;}
.dashboard-matrix-table {width:100%;min-width:920px;border-collapse:separate;border-spacing:0;font-size:.875rem;}
.dashboard-matrix-table th,.dashboard-matrix-table td {padding:.7rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);vertical-align:middle;}
.dashboard-matrix-table tr>*:last-child {border-right:0;}
.dashboard-matrix-table thead th {background:#eaf0f5;color:#243f52;text-align:center;min-width:106px;font-weight:650;}
.dashboard-matrix-table thead th:first-child {text-align:left;}
.dashboard-matrix-table th[scope=row] {text-align:left;font-weight:400;background:#fff;min-width:290px;width:36%;}
.dashboard-matrix-table th[scope=row] strong {display:block;font-size:.8125rem;color:var(--muted);margin-bottom:.3rem;}
.dashboard-matrix-table th[scope=row] span {display:block;line-height:1.5;}
.dashboard-matrix-table td {text-align:center;background:#fff;}
.dashboard-matrix-table .period-dot {min-height:56px;width:100%;padding:.6rem .35rem;line-height:1.4;text-decoration:none;}
.dashboard-matrix-table .period-dot:hover {text-decoration:underline;}
.dashboard-matrix-table .status-recorded {background:#e9f3fa;color:#104968;border-color:#91b7ce;}
.dashboard-matrix-objective th {background:#eef3f7;border-left:4px solid var(--accent);text-align:left;font-size:1rem;padding:.9rem;}
.dashboard-matrix-strategy th {background:#f8fafc;text-align:left;color:#465f71;font-weight:600;}
.dashboard-matrix-table .annual-level {display:inline-flex;min-width:56px;justify-content:center;}
.teacher-notes-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem;}
.teacher-notes-grid .main-entry {display:flex;flex-direction:column;gap:.4rem;margin:1rem 0;}
.teacher-notes-grid .main-entry>small {font-size:.875rem;color:var(--muted);font-weight:400;}
.teacher-notes-grid textarea {flex:1;min-height:120px;}
.activity-drawer-hint {display:block;font-size:.8125rem;font-weight:600;text-decoration:underline;color:var(--primary);margin-top:.4rem;}
.activity-compact-periods .period-checks {flex-wrap:wrap;}
.activity-compact-periods .period-check {min-width:86px;}
@media(max-width:700px) {.teacher-notes-grid {grid-template-columns:1fr;gap:0;}}
@media(max-width:420px) {.activity-compact-periods .period-checks {grid-template-columns:repeat(2,minmax(0,1fr));}.activity-compact-periods .period-check {min-width:0;}}

/* Keep document actions visible, including during read-only consultation. */
.document-tools {margin:0 0 1.5rem;padding:1rem 1.2rem;background:#fff;border:1px solid var(--line);border-radius:10px;}
.document-tools-heading {display:flex;align-items:baseline;gap:.5rem 1.2rem;flex-wrap:wrap;}
.document-tools-heading h2 {margin:0;font-size:1rem;}
.document-tools-heading p {margin:0;font-size:.875rem;color:var(--muted);}
.document-tools-actions {display:flex;flex-wrap:wrap;gap:.65rem;margin:.8rem 0;}
.document-tools-actions .btn {min-height:44px;white-space:normal;text-align:center;}
.document-tools-help {margin:0;font-size:.8125rem;color:var(--muted);}
.activity-document-actions {flex-wrap:wrap;max-width:100%;}
@media(max-width:560px) {.document-tools {padding:1rem;}.document-tools-actions {display:grid;grid-template-columns:1fr;}.activity-document-actions .btn {flex:1 1 170px;}}
@media print {.document-tools,.activity-document-actions {display:none!important;}}

/* Compact, stable navigation: the active page never changes the space for links. */
.topbar { padding:0; }
.topbar-shell { display:grid;max-width:1600px;padding:16px 24px;grid-template-columns:max-content minmax(0,1fr) 142px;grid-template-areas:"brand navigation tools";gap:16px; }
.topbar-shell>.brand { grid-area:brand; }
.primary-nav { grid-area:navigation;display:flex;justify-content:flex-start;flex-wrap:nowrap;min-width:0;width:auto;overflow:visible;gap:2px; }
.primary-nav a { padding:.6rem .55rem;flex:0 0 auto;white-space:nowrap; }
.topbar-tools { grid-area:tools;display:grid;grid-template-columns:90px 44px;gap:8px;width:142px;justify-self:end;margin:0;min-height:44px; }
.topbar-tools>.nav-menu { grid-column:1;grid-row:1;min-width:0; }
.topbar-tools>.user-menu { grid-column:2; }
.topbar-tools .nav-menu-trigger,.topbar-tools .user-trigger { width:100%;height:44px;justify-content:center; }
.topbar-tools .user-trigger { padding:0; }
.user-trigger svg { display:block;flex-shrink:0; }
.user-menu .nav-meta { overflow-wrap:anywhere; }
@media(max-width:1279px) {
  .topbar-shell { grid-template-columns:minmax(0,1fr) 142px;grid-template-areas:"brand tools" "navigation navigation";gap:10px 16px; }
  .primary-nav { order:initial;flex-basis:auto;flex-wrap:wrap; }
  .topbar { position:relative; }
}
@media(max-width:650px) {
  .topbar-shell { grid-template-columns:1fr;grid-template-areas:"brand" "tools" "navigation";padding:16px;gap:12px; }
  .topbar-tools { flex-basis:auto;position:relative; }
  .topbar-tools>.nav-menu { position:static; }
  .primary-nav { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px; }
  .primary-nav a { justify-content:flex-start;white-space:normal;min-height:44px;overflow-wrap:anywhere; }
  .nav-dropdown { position:absolute;top:calc(100% + 8px);left:auto!important;right:0!important;max-width:calc(100vw - 32px); }
}
html{scrollbar-gutter:stable}

.topbar-tools .nav-menu-trigger{white-space:nowrap}

/* School logo and historical follow-up filters. */
.brand-logo{display:block;width:48px;height:48px;object-fit:contain;flex:0 0 48px;border-radius:8px;background:#fff}
.archive-assignment-table td,.archive-assignment-table th{vertical-align:middle}
.archive-assignment-table .check{justify-content:center}
.leadership-filters{grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr))}
.leadership-filters select,.leadership-filters input{min-width:0;width:100%}
@media(max-width:640px){.brand-logo{width:40px;height:40px;flex-basis:40px}}

/* Reserve room for the independent visual-map entry without overlapping account tools. */
@media(min-width:1280px) and (max-width:1799px){.topbar-shell{grid-template-columns:minmax(0,1fr) 142px;grid-template-areas:"brand tools" "navigation navigation";gap:10px 16px}.primary-nav{flex-wrap:wrap}.topbar{position:relative}}
