/* Shared working density: retain readable controls and touch targets while reducing empty space. */
:root { --radius:14px; }
.sidebar { width:240px; padding:22px 16px 16px; }
.sidebar .workspace-label { margin:16px 8px; font-size:.58rem; }
.sidebar nav { gap:3px; align-content:start; }
.sidebar nav a { min-height:42px; padding:8px 10px; gap:9px; border-radius:8px; font-size:.84rem; }
.sidebar-foot { font-size:.68rem; }
.topbar { height:auto; min-height:64px; padding:10px 28px; gap:18px; }
.topbar .button,.topbar button { min-height:40px; padding:8px 14px; }
main { max-width:1600px; padding:24px 28px; }
.page-heading { gap:20px; margin-bottom:20px; }
.page-heading h1 { font-size:clamp(1.65rem,2.3vw,2.1rem); line-height:1.2; letter-spacing:-.035em; margin:4px 0 6px; }
.page-heading p:not(.eyebrow) { font-size:.9rem; }
.eyebrow { margin-bottom:8px; font-size:.64rem; letter-spacing:.1em; }
.back-link { margin-bottom:14px; }
.panel,.surface { border-radius:14px; padding:20px; margin-bottom:16px; }
.panel h2 { font-size:1.12rem; margin-bottom:12px; }
.section-heading { margin:0 0 16px; gap:12px; }
.section-heading h2 { font-size:1.15rem; margin:0 0 4px; }
.section-heading p { font-size:.85rem; }
.section-number { width:36px; height:36px; border-radius:10px; font-size:.85rem; }
.form-grid { gap:0 16px; }
.form-grid label,.search-bar label { gap:5px; margin-bottom:14px; }
.panel input:not([type=checkbox]),.panel select,.panel textarea { padding:9px 11px; border-radius:7px; min-height:44px; }
.search-bar { gap:12px; margin-bottom:16px; }
.search-bar label { margin-bottom:0; }
.inset { padding:18px; margin-top:16px; border-radius:10px; }
.check-grid { gap:8px 18px; margin:12px 0; }
.toolbar { gap:12px; margin:14px 0; }
.section-nav { gap:6px; margin:0 0 16px; }
.section-nav a,.section-nav button { padding:9px 14px; min-height:44px; }
.quick-actions { gap:8px; margin:12px 0 16px; }
.quick-actions .button { padding:9px 13px; min-height:44px; }
.save-bar { padding:14px 18px; margin:16px 0; }
.record-list>li,.record-list>article { padding:14px 0; }
th,td { padding:11px 12px; }
.page-footer { padding:8px 28px 16px; }
.support-tabs { margin:8px 0 16px; padding-bottom:8px; }
.support-score { padding:20px 24px; margin:16px 0; }
.support-score strong { font-size:2.5rem; }
.overview-metrics,.support-metrics { gap:16px; margin:16px 0; }
.overview-metric,.support-metric { padding:20px; border-radius:14px; }
.overview-metric>strong,.support-metric>strong { font-size:2.5rem; margin:8px 0; }
.overview-metric>small,.support-metric>small { margin-top:auto; }
.overview-columns { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:stretch; gap:16px; margin-bottom:16px; }
.overview-columns>.panel { margin:0; display:flex; flex-direction:column; }
.overview-columns .section-heading { justify-content:space-between; align-items:flex-start; }
.overview-shortcuts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:0 0 16px; padding:0; }
.overview-shortcuts a { display:flex; justify-content:space-between; align-items:center; gap:12px; border:1px solid var(--line); background:#fff; border-radius:10px; padding:14px; min-height:52px; font-size:.86rem; }
.overview-columns .record-list { margin:8px 0 0; }
.overview-columns .record-list>li { padding:14px 0; }
.needs-chart,.school-impact { margin:10px 0; }
.school-impact li { padding:12px 0; }
.needs-chart li { margin:14px 0; }
.dashboard-filters .search-bar { display:flex; align-items:end; gap:12px; }
.dashboard-filters .search-bar>label:not(.check) { flex:1 1 180px; min-width:0; }
.dashboard-filters .search-bar select { width:100%; }
.dashboard-filters .search-bar>.check { flex:0 1 auto; }
.dashboard-footer { padding:8px 0 16px; }
.notice-board { margin:16px 0; gap:12px; }
.notice-card { padding:18px 20px; border-radius:12px; }
.knowledge-grid { gap:16px; }
.empty-state { padding:22px 16px; }
.navigation-group { padding:14px 10px 5px; color:#c3b9d9; font-size:.61rem; font-weight:650; letter-spacing:.08em; text-transform:uppercase; }
@media(min-width:1001px) {
    .support-metrics:has(>:nth-child(5):last-child) { grid-template-columns:repeat(6,minmax(0,1fr)); }
    .support-metrics:has(>:nth-child(5):last-child)>.support-metric { grid-column:span 2; }
    .support-metrics:has(>:nth-child(5):last-child)>.support-metric:nth-child(n+4) { grid-column:span 3; }
}
@media(max-width:1000px) { .support-metrics:has(>:nth-child(5):last-child)>.support-metric:last-child { grid-column:1/-1; } }
@media(min-width:1200px) { .support-metrics:has(>:nth-child(4):last-child) { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media(max-width:1050px) { .overview-shortcuts { grid-template-columns:repeat(2,minmax(0,1fr)); } .overview-columns { grid-template-columns:1fr; } main { padding:20px; } .sidebar { width:210px; padding:20px 12px; } }
@media(max-width:650px) {
    .sidebar { width:auto; min-height:70px; padding:16px; }
    .sidebar.navigation-ready>.navigation-toggle { top:14px; right:16px; min-height:44px; }
    .sidebar>nav { margin-top:14px; }
    .sidebar nav a { min-height:44px; padding:9px 12px; }
    .topbar { padding:10px 16px; min-height:60px; gap:12px; }
    main { padding:18px 16px; }
    .page-heading { gap:12px; flex-wrap:wrap; margin-bottom:16px; }
    .page-heading h1 { font-size:1.7rem; }
    .panel,.surface { padding:16px; border-radius:12px; }
    .overview-metrics { grid-template-columns:1fr; gap:10px; }
    .overview-metric { display:grid; grid-template-columns:1fr auto; gap:6px 14px; padding:16px; }
    .overview-metric>strong { grid-column:2; grid-row:1/3; align-self:center; font-size:2.1rem; margin:0; }
    .overview-metric>small { grid-column:1; }
    .support-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
    .support-metric { padding:14px; }
    .support-metric>strong { font-size:1.9rem; }
    .form-grid { grid-template-columns:1fr; }
    .page-footer { padding:8px 16px 14px; }
}

/* Clear actions and compact, visibly grouped dashboards. */
:is(.quick-actions,.toolbar,.section-heading,.dashboard-footer) > a:not(.button),
.record-list h3 > a, .school-impact .text-button {
    display:inline-flex; align-items:center; gap:8px; min-height:40px;
    padding:7px 11px; border:1px solid #c6b5e7; border-radius:8px;
    background:#f2ecfd; color:#4d239f; font-size:.88rem; font-weight:650;
    text-decoration:none; cursor:pointer; line-height:1.35;
}
:is(.quick-actions,.toolbar,.section-heading,.dashboard-footer) > a:hover,
.record-list h3 > a:hover,.school-impact .text-button:hover { background:#e5d8fa; border-color:#8359c1; }
.record-list h3 > a::after { content:''; width:6px; height:6px; border-top:2px solid currentColor; border-right:2px solid currentColor; transform:rotate(45deg); margin-left:8px; flex-shrink:0; }
.record-list p a { text-decoration:underline; text-underline-offset:3px; }
.button-secondary { border:1px solid #c6b5e7; }
.dashboard-workspace { max-width:1240px; margin-inline:auto; }
.dashboard-workspace .page-heading { margin-bottom:12px; }
.dashboard-workspace .page-heading p { margin-bottom:4px; }
.dashboard-workspace .panel { padding:16px; border:1px solid #d5cfe1; border-top:3px solid #aa94cc; box-shadow:0 2px 5px #211d3505; }
.dashboard-workspace .panel > h2,.dashboard-workspace .panel > .section-heading { border-bottom:1px solid #ded8e8; padding-bottom:10px; margin-bottom:12px; }
.dashboard-workspace .dashboard-priorities { border-top-color:#c66541; }
.dashboard-workspace .dashboard-filters { background:#eeebf3; border-top-width:1px; }
.dashboard-workspace .search-bar { margin-bottom:0; }
.dashboard-workspace .overview-columns { gap:12px; align-items:start; margin-bottom:12px; }
.dashboard-workspace .record-list > li { padding:10px 0; }
.dashboard-workspace .record-list h3 { margin:0 0 4px; }
.dashboard-workspace .record-list p { margin-bottom:3px; }
.dashboard-workspace .overview-metrics,.dashboard-workspace .support-metrics { gap:10px; margin:12px 0; }
.dashboard-workspace .overview-metric,.dashboard-workspace .support-metric { padding:14px 16px; border-radius:10px; gap:5px; }
.dashboard-workspace .overview-metric>strong,.dashboard-workspace .support-metric>strong { font-size:2rem; margin:2px 0; }
.dashboard-workspace .support-metric>span { font-size:.82rem; }
.dashboard-workspace .overview-metric>small,.dashboard-workspace .support-metric>small { font-size:.76rem; }
.dashboard-workspace .empty-state { padding:12px; }
.overview-quick-access { margin:0 0 14px; padding:12px 14px; border:1px solid #c9b9e4; border-radius:12px; background:#eee7f8; }
.overview-quick-access h2 { font-size:.84rem; margin:0 0 8px; color:#42256b; }
.overview-quick-access .overview-shortcuts { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:0; }
.overview-quick-access .overview-shortcuts a { min-height:44px; padding:9px 12px; border-color:#c6b5e7; color:#43266e; font-weight:650; box-shadow:0 1px 2px #3320500a; text-decoration:none; }
.overview-quick-access .overview-shortcuts a:hover { background:#f8f4ff; border-color:#8359c1; }
.overview-shortcuts a span[aria-hidden] { color:#6832b4; font-size:1.1rem; }
@media(min-width:1200px) {
    .dashboard-workspace .support-metrics { grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); }
    .dashboard-workspace .support-metrics > .support-metric { grid-column:auto !important; }
}
/* Help is a full-height side panel; native dialog semantics retain focus containment. */
.help-dialog { inset:0 0 0 auto; margin:0; width:min(1100px,90vw); max-width:100%; height:100dvh; max-height:100dvh; border:0; border-left:1px solid #cec4dd; border-radius:0; overflow:hidden; }
@media(max-width:1100px) { .help-dialog { width:100%; } }
.help-dialog[open] { display:flex; flex-direction:column; }
.help-dialog::backdrop { background:#211d354d; }
.help-dialog-header { padding:18px 22px; flex-shrink:0; }
.help-dialog-header h2 { font-size:1.22rem; }
.help-guide-picker { padding:14px 22px; gap:10px; flex-shrink:0; }
.help-guide-picker label { font-size:.82rem; }
.help-choices { padding:0 22px 12px; flex-shrink:0; }
.help-dialog .help-prose { flex:1; min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:0 22px 22px; font-size:.94rem; }
.help-dialog-footer { flex-shrink:0; padding:12px 22px; background:#faf8fe; }
.help-dialog-footer a { font-weight:650; }
@keyframes workspace-slide-in { from { transform:translateX(100%); } to { transform:translateX(0); } }
.help-dialog[open],.record-flyout[open] { animation:workspace-slide-in 400ms cubic-bezier(.22,.61,.36,1); }
@media(prefers-reduced-motion:reduce) { .help-dialog[open],.record-flyout[open] { animation:none; } }
@media(max-width:650px) {
    .overview-quick-access { padding:10px; }
    .overview-quick-access .overview-shortcuts { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .overview-quick-access .overview-shortcuts a { font-size:.8rem; padding:8px; }
    .dashboard-workspace .panel { padding:14px; }
    .help-dialog { width:100%; }
    .help-dialog-header,.help-guide-picker,.help-dialog-footer { padding:12px 16px; }
    .help-dialog-header h2 { font-size:1.05rem; }
    .help-dialog-header .eyebrow { display:none !important; }
    .help-guide-picker label { flex-basis:100%; }
    .help-guide-picker select { padding:8px 10px; }
    .help-choices { padding:0 16px 10px; }
    .help-dialog .help-prose { padding:0 16px 16px; }
}

@media(min-width:1200px) {
    .dashboard-workspace .support-metrics:has(>:nth-child(5):last-child) { grid-template-columns:repeat(5,minmax(0,1fr)); }
}
@media(min-width:1100px) {
    .dashboard-detail { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; align-items:start; }
    .dashboard-detail > * { grid-column:1/-1; min-width:0; margin-block:0; }
    .dashboard-detail > .panel:not(:has(.search-bar,table,.support-schools)) { grid-column:auto; height:100%; }
    .dashboard-detail .support-outcomes { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media(min-width:1400px) { .overview-quick-access .overview-shortcuts { grid-template-columns:repeat(6,minmax(0,1fr)); } }
