.analytics-panel {font-variant-numeric:tabular-nums;}
.analytics-panel h2 {font-size:1.5rem;margin:0;}
.analytics-panel h3 {font-size:1.375rem;margin:0 0 10px;}
.analytics-panel h4 {font-size:1rem;margin:0 0 18px;}
.insight-heading,.insight-chart-heading,.insight-topic-heading {display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;}
.insight-heading p,.insight-chart-heading p {color:#54647a;margin:8px 0 0;max-width:72ch;}
.analytics-panel .analytics-filters {gap:12px;margin:20px 0 10px;}
.analytics-panel .analytics-filters label {min-width:120px;font-size:.875rem;}
.analytics-panel .analytics-filters select,.analytics-panel .analytics-filters input {padding:8px;min-height:44px;}
.analytics-panel .analytics-filters button {align-self:end;}
.insight-map-filters {display:flex;flex-wrap:wrap;gap:12px;}
.insight-reference {font-size:.875rem;color:#155d97;background:#eaf5ff;padding:8px 12px;white-space:nowrap;}
.analytics-panel .insight-muted {font-size:.875rem;color:#54647a;line-height:1.65;max-width:80ch;}
.insight-matrix-wrap {overflow:auto;max-width:100%;scrollbar-color:#b8cee2 #edf7ff;margin-top:20px;}
.analytics-panel .insight-matrix {border-collapse:separate;border-spacing:5px;min-width:480px;table-layout:fixed;}
.analytics-panel .insight-matrix th,.analytics-panel .insight-matrix td {padding:0;border:0;vertical-align:middle;}
.analytics-panel .insight-matrix thead th {text-align:center;padding:10px 8px;color:#101b30;font-size:1rem;}
.analytics-panel .insight-matrix th:first-child {width:30%;text-align:left;background:#fff;}
.analytics-panel .insight-matrix tbody th {font-size:.875rem;font-weight:500;line-height:1.5;padding:8px 12px 8px 0;}
.analytics-panel .insight-cell {display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:100%;border:1px solid transparent;border-radius:8px;min-height:78px;padding:8px;color:#101b30;line-height:1.4;}
.analytics-panel .insight-cell strong {font-size:1.125rem;}
.analytics-panel .insight-cell span {font-size:.75rem;}
.analytics-panel .insight-cell:hover {outline:2px solid #006dcc;outline-offset:-2px;color:#101b30;}
.analytics-panel .low,.insight-scale .low {background:#fff0f1;color:#a53242;}
.analytics-panel .mid,.insight-scale .mid {background:#fff5df;color:#795416;}
.analytics-panel .good,.insight-scale .good {background:#e0f0ff;color:#155d97;}
.analytics-panel .high,.insight-scale .high {background:#e7f5ef;color:#24664f;}
.analytics-panel .insight-cell.empty {background:#f0f3f7;color:#54647a;}
.insight-scale {display:flex;align-items:center;justify-content:flex-end;gap:5px;margin:14px 0;color:#54647a;font-size:.75rem;}
.insight-scale span:not(:first-child):not(:last-child) {height:12px;width:30px;}
.insight-topic-heading {margin-top:44px;padding-top:28px;border-top:1px solid #d9e6f2;align-items:end;}
.insight-topic-heading label,.insight-search label,.insight-history-controls label {display:grid;gap:6px;max-width:100%;font-size:.875rem;}
.analytics-panel select,.insight-search input {font:inherit;max-width:100%;background:#fff;color:#101b30;border:1px solid #b8cee2;border-radius:8px;min-height:44px;padding:8px 10px;}
.insight-chart-grid {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:36px;margin-top:28px;}
.insight-chart-grid>section {min-width:0;}
.insight-bars {display:grid;gap:14px;}
.analytics-panel .insight-bar-row {width:100%;display:grid;grid-template-columns:minmax(5em,1fr) minmax(40px,1.2fr) auto;gap:6px 12px;align-items:center;text-align:left;border:0;padding:6px 0;background:transparent;color:#101b30;min-width:0;}
.insight-bar-label {font-size:1rem;overflow-wrap:anywhere;}
.insight-bar-row strong {font-size:1rem;font-weight:600;}
.analytics-panel .insight-bar-row small {grid-column:1/-1;margin:0;font-size:.75rem;}
.analytics-panel button.insight-bar-row:hover {background:#edf7ff;color:#101b30;}
.insight-bar-track {display:block;height:12px;background:#eff5fa;}
.insight-bar-fill {display:block;height:100%;background:#006dcc;}
.insight-legend {display:flex;flex-wrap:wrap;gap:10px 16px;list-style:none;padding:0;font-size:.75rem;color:#54647a;margin:0 0 18px;}
.insight-legend li {display:flex;align-items:center;gap:5px;}
.swatch {display:inline-block;width:12px;height:12px;}
.insight-stack .qualified,.swatch.qualified {background:#24664f;color:#fff;}
.insight-stack .weak,.swatch.weak {background:#a53242;color:#fff;}
.insight-stack .insufficient,.swatch.insufficient {background:#ced9e7;color:#101b30;}
.insight-stack .none,.swatch.none {background:#edf1f6;color:#101b30;}
.analytics-panel .insight-distribution {display:grid;grid-template-columns:4em 1fr;width:100%;gap:8px;text-align:left;padding:12px 0;border:0;border-radius:0;background:transparent;color:#101b30;}
.analytics-panel .insight-distribution small {grid-column:1/-1;margin:0;font-size:.75rem;}
.insight-stack {display:flex;min-height:24px;overflow:hidden;}
.insight-stack>span {display:flex;justify-content:center;align-items:center;font-size:.75rem;overflow:hidden;}
.insight-progress {margin-top:36px;}
.insight-pair {display:grid;grid-template-columns:5em minmax(100px,1fr) auto;gap:8px 16px;align-items:center;margin:14px 0;}
.insight-pair svg {width:100%;max-height:52px;}
.analytics-panel .insight-pair small {grid-column:2/-1;margin:0;}
.insight-line {margin:0;}
.insight-line svg {display:block;width:100%;min-height:100px;}
.insight-line svg text {fill:#54647a;font-size:12px;}
.insight-line figcaption {display:flex;justify-content:space-between;font-size:.75rem;color:#54647a;gap:8px;}
.chart-grid {stroke:#d9e6f2;stroke-width:1;}
.chart-line {fill:none;stroke:#006dcc;stroke-width:2.5;}
.chart-dot,.pair-last {fill:#006dcc;}
.pair-line {stroke:#006dcc;stroke-width:3;}
.pair-first {fill:#fff;stroke:#006dcc;stroke-width:2;}
.analytics-panel .insight-data {margin:14px 0 30px;font-size:.875rem;}
.analytics-panel .insight-data summary {color:#155d97;}
.analytics-panel .insight-data th,.analytics-panel .insight-data td {padding:10px 8px;}
.insight-empty {padding:22px 0;color:#54647a;line-height:1.7;}
.insight-method {border-top:1px solid #d9e6f2;margin-top:32px;padding-top:12px;font-size:.875rem;}
.insight-method p {max-width:80ch;color:#54647a;line-height:1.7;}
.insight-roster-section {margin-top:40px;padding-top:28px;border-top:1px solid #b8cee2;scroll-margin-top:24px;}
.insight-search {display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin:18px 0;}
.insight-search label {flex:1;min-width:150px;}
.insight-history-controls {display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin-top:32px;}
.insight-history-controls h4 {flex-basis:100%;margin:0;}
.insight-roster-table {min-width:500px;}
.analytics-panel .analytics-student {overflow-wrap:anywhere;}
@media(max-width:1050px){.insight-chart-grid{grid-template-columns:minmax(0,1fr);gap:24px;}.insight-topic-heading{align-items:start;}.insight-pair{grid-template-columns:4em minmax(80px,1fr);}.insight-pair strong{grid-column:2;}.insight-matrix-wrap .insight-matrix th:first-child{position:sticky;left:0;z-index:1;}}
@media(max-width:600px){.analytics-panel .analytics-filters label{flex-basis:calc(50% - 12px);min-width:0;}.analytics-panel .analytics-filters select{width:100%;}.insight-map-filters{flex-basis:100%;}.insight-heading{align-items:start;}.insight-heading .analytics-export{width:100%;text-align:center;}.insight-sections button{flex:1;font-size:.875rem;padding:10px 8px;}.insight-topic-heading label{width:100%;}.insight-topic-heading select{width:100%;}.insight-pair{grid-template-columns:3em minmax(80px,1fr);}.analytics-panel .insight-bar-row{grid-template-columns:minmax(4em,1fr) minmax(35px,1fr) auto;gap:6px 8px;}.insight-scale{justify-content:flex-start;flex-wrap:wrap;}.analytics-panel .insight-matrix th:first-child{width:145px;}.insight-reference{white-space:normal;}}
@media(prefers-reduced-motion:no-preference){#insightRoster:not([hidden]){animation:insight-reveal 160ms cubic-bezier(.16,1,.3,1);}@keyframes insight-reveal{from{opacity:.8;}to{opacity:1;}}}
.insight-demo-note { padding: .75rem 1rem; background: #fff1d6; color: #795416; border-radius: 8px; }
/* Intrinsic widths follow enlarged text as well as viewport width. */
.analytics-panel .analytics-filters label { flex: 1 1 12rem; min-width: min(100%,12rem); }
.analytics-panel .insight-matrix { min-width: 30rem; }
.insight-cell strong { white-space: nowrap; }
@media(max-width:600px){
 .analytics-panel .analytics-filters label { flex-basis: 100%; }
 .insight-map-filters { width: 100%; }
 .analytics-panel .insight-distribution { grid-template-columns: minmax(0,1fr); }
 .insight-pair { grid-template-columns: minmax(0,1fr); }
 .analytics-panel .insight-pair strong,.analytics-panel .insight-pair small { grid-column: 1; }
}
