.analytics-page,.analytics-body,.analytics-student-detail,.analytics-chart-grid,.analytics-chart-grid>*{min-width:0}
.analytics-page{--analytics-color-0:var(--primary);--analytics-color-1:var(--teal);--analytics-color-2:var(--green);--analytics-color-3:var(--amber);--analytics-color-4:#9771bd;--analytics-color-5:var(--muted)}
.analytics-body{display:grid;gap:20px}.analytics-live-status{color:var(--muted);font-size:.9em;margin:0 0 16px;min-height:1.5em}
.analytics-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:end}.analytics-filters label,.analytics-filters input,.analytics-filters select{min-width:0;width:100%;max-width:100%}.analytics-filters label{display:grid;gap:6px}.analytics-filters span{font-size:.9em;font-weight:600}.analytics-filters select{overflow:hidden;text-overflow:ellipsis}
.analytics-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.analytics-kpi{padding:20px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.analytics-kpi span{display:block;color:var(--muted);line-height:1.5}.analytics-kpi strong{display:block;font-size:1.9em;font-variant-numeric:tabular-nums;margin-top:8px}
.analytics-chart-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:20px}.analytics-chart>h2{font-size:1.12em;margin:0 0 16px}.analytics-chart .analytics-chart-svg{display:block;width:100%;height:auto;overflow:visible}.analytics-axis{font-size:12px;fill:var(--muted);font-family:var(--font-family)}.analytics-grid-line{stroke:var(--border);stroke-width:1}.analytics-series-primary{fill:var(--primary);background:var(--primary)}.analytics-series-secondary{fill:var(--teal);background:var(--teal)}.analytics-line{stroke-width:3;stroke-linejoin:round;stroke-linecap:round}.analytics-line.analytics-series-primary{stroke:var(--primary);fill:none}.analytics-line.analytics-series-secondary{stroke:var(--teal);fill:none}
.analytics-legend{display:flex;flex-wrap:wrap;gap:16px;color:var(--muted);font-size:.9em}.analytics-legend>span{display:flex;align-items:center;gap:7px}.analytics-legend i,.analytics-donut-legend i{display:inline-block;width:10px;height:10px;border-radius:var(--radius-sm);flex:0 0 10px}
.analytics-donut-layout{display:grid;grid-template-columns:minmax(110px,.8fr) minmax(0,1fr);gap:16px;align-items:center}.analytics-donut-total{fill:var(--text);font-size:30px;font-weight:700;font-family:var(--font-family)}.analytics-donut-legend{list-style:none;margin:0;padding:0;display:grid;gap:12px}.analytics-donut-legend li{display:grid;grid-template-columns:10px minmax(0,1fr);gap:5px 9px;align-items:baseline;font-size:.87em;overflow-wrap:anywhere}.analytics-donut-legend strong{grid-column:2;font-variant-numeric:tabular-nums}
.analytics-data{margin-top:14px;overflow:auto}.analytics-data summary,.analytics-method summary,.analytics-sources summary{font-weight:600;cursor:pointer}.analytics-data table{width:100%;margin-top:12px;font-size:.85em;border-collapse:collapse}.analytics-data th,.analytics-data td{padding:8px;text-align:left;border-bottom:1px solid var(--border)}
.analytics-student-list{display:grid;gap:12px;margin-top:16px}.analytics-student-card{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:14px;align-items:start;padding:16px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-soft)}.analytics-student-card h3{font-size:1em;margin:0}.analytics-student-card>input{width:20px;height:20px;margin-top:4px}.analytics-student-card p{margin:7px 0;overflow-wrap:anywhere}.analytics-student-detail{display:grid;gap:18px;scroll-margin-top:24px}.analytics-student-detail:empty{display:none}.analytics-facts{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 20px;margin-top:20px}.analytics-facts dt{color:var(--muted)}.analytics-facts dd{margin:0;font-variant-numeric:tabular-nums;font-weight:600}
.analytics-students-disclosure>summary{font-size:1.12em;font-weight:600;cursor:pointer;overflow-wrap:anywhere}.analytics-roster-body{margin-top:16px;min-width:0}.analytics-students-disclosure:not([open]) .analytics-roster-body{display:none}.analytics-students-disclosure .analytics-student-detail{margin-top:20px}
.analytics-recommendation,.analytics-plan{padding:16px;border:1px solid var(--border);border-radius:var(--radius-md);margin:14px 0;overflow-wrap:anywhere;background:var(--surface-soft)}.analytics-recommendation h4,.analytics-plan h4{margin-top:0}.analytics-plan p,.analytics-invitation-preview p{white-space:pre-wrap}.analytics-recommendation .form-actions,.analytics-plan .form-actions{margin-top:14px}.analytics-recommendation button,.analytics-choice button,.analytics-page .button,.analytics-dialog .button{white-space:normal;max-width:100%;line-height:1.4}.analytics-prevention{margin-top:24px}.analytics-prevention[hidden]{display:none}.analytics-prevention label{display:grid;gap:6px;margin-bottom:14px}.analytics-prevention select{max-width:100%}.analytics-choice{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.analytics-dialog{width:min(780px,calc(100% - 24px));max-height:88dvh;overflow:auto;padding:24px}.analytics-dialog .dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.analytics-dialog .form-stack{margin-top:18px}.analytics-dialog label{display:grid;gap:7px}.analytics-dialog textarea{width:100%;min-height:90px}.analytics-page textarea{width:100%;max-width:100%;line-height:1.6}.analytics-sources{overflow-wrap:anywhere}.analytics-sources li{margin:12px 0}
@media(max-width:1050px){.analytics-chart-grid{grid-template-columns:1fr}.analytics-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-donut-layout{grid-template-columns:minmax(130px,.45fr) minmax(0,1fr)}}
@media(max-width:600px){.analytics-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-kpi{padding:14px}.analytics-kpi strong{font-size:1.6em}.analytics-filters{grid-template-columns:1fr}.analytics-student-card{grid-template-columns:22px minmax(0,1fr);gap:10px}.analytics-student-card>button{grid-column:2;justify-self:start}.analytics-donut-layout{grid-template-columns:1fr}.analytics-donut-layout > .analytics-chart-svg{max-width:220px;margin:auto}.analytics-donut-legend li{grid-template-columns:10px minmax(0,1fr) auto}.analytics-donut-legend strong{grid-column:3}.analytics-facts{grid-template-columns:minmax(0,1fr) auto;font-size:.9em;gap:12px}.analytics-dialog{padding:16px}.analytics-axis{font-size:15px}.analytics-month{font-size:13px}.analytics-data table{min-width:340px}}
@media(prefers-reduced-motion:reduce){.analytics-page *{scroll-behavior:auto!important}}

.analytics-chart-scroll{overflow-x:auto;max-width:100%}.analytics-chart-scroll > .analytics-chart-svg{min-width:480px}
.analytics-score-overview{display:grid;gap:18px;min-width:0}.analytics-score-overview>h2{margin:0}.analytics-score-overview>label{display:grid;gap:7px;max-width:400px}.analytics-series-tertiary{fill:var(--green);background:var(--green)}
.analytics-chart-tooltip{padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-soft);color:var(--text);font-size:.88em;font-weight:600;line-height:1.5;min-height:3.4em;margin:0 0 12px;overflow-wrap:anywhere}
.analytics-chart-point{cursor:pointer;transition:opacity .18s ease}.analytics-chart-point:hover{opacity:.76}.analytics-chart-point:focus-visible{outline:3px solid var(--text);outline-offset:4px}.analytics-chart-export{margin-top:14px}
.analytics-legend-choice{color:inherit;text-align:left;font:inherit;background:none;border:0;padding:2px 0;cursor:pointer;overflow-wrap:anywhere}.analytics-legend-choice:focus-visible{outline:3px solid var(--primary);outline-offset:3px;border-radius:var(--radius-sm)}
.analytics-donut-legend li{padding:6px;border:1px solid transparent;border-radius:var(--radius-sm)}.analytics-donut-legend li.is-active{border-color:var(--border);background:var(--surface-soft)}.analytics-donut-legend li.is-active .analytics-legend-choice{font-weight:700;text-decoration:underline;text-underline-offset:3px}.analytics-donut-hit{cursor:pointer}.analytics-chart-point.is-emphasized .analytics-donut-segment{stroke-width:32;filter:drop-shadow(0 3px 3px rgba(0,0,0,.22))}.analytics-chart-point:focus-visible .analytics-donut-segment{stroke-width:32}
.analytics-color-settings{margin-top:16px;border-top:1px solid var(--border);padding-top:12px}.analytics-color-settings>summary{cursor:pointer;font-weight:600}.analytics-color-settings fieldset{min-width:0;margin:12px 0 0;padding:0;border:0}.analytics-color-settings legend{font-size:.9em;font-weight:600;margin-bottom:10px}.analytics-color-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr));gap:12px}.analytics-color-field{display:grid;grid-template-columns:minmax(0,1fr) 46px;gap:6px 10px;align-items:center;font-size:.9em;overflow-wrap:anywhere}.analytics-color-field input[type=color]{width:46px;min-width:46px;height:36px;min-height:36px;padding:2px;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:var(--surface)}.analytics-color-hex{grid-column:1;font-size:.8em;font-variant-numeric:tabular-nums;color:var(--muted)}.analytics-color-settings .button{margin-top:12px}.analytics-color-status{font-size:.85em;color:var(--muted);min-height:1.5em;margin:10px 0 0}
.analytics-bar{animation:analytics-bar-grow .55s ease-out both;transform-box:view-box}.analytics-donut-segment{animation:analytics-chart-appear .55s ease-out both}
@keyframes analytics-bar-grow{from{transform:scaleY(.02);opacity:.3}to{transform:scaleY(1);opacity:1}}@keyframes analytics-chart-appear{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.analytics-chart-point{transition:none}.analytics-bar,.analytics-donut-segment{animation:none}}

.analytics-donut-point{transform-box:view-box;transform-origin:120px 120px;transition:transform .22s ease,opacity .18s ease}.analytics-donut-segment{transition:stroke-width .22s ease,filter .22s ease}.analytics-donut-point:hover{opacity:1}
@media(prefers-reduced-motion:reduce){.analytics-donut-point,.analytics-donut-segment{transition:none}}

/* Heading symbols keep their inline size; only chart canvases fill a card. */
:is(.analytics-page,.analytics-chart) :is(h2,h3) > .section-symbol { display:inline-block;width:22px;height:22px;min-width:22px;max-width:22px;flex:0 0 22px;vertical-align:-3px; }
.analytics-chart .heading-help-line { align-items:center; }
.analytics-chart .heading-help-line > h2 { margin:0;font-size:1.12em;line-height:1.4; }
/* Department comparison keeps readable cells inside its own horizontal scroll. */
.analytics-department-overview{min-width:0}.analytics-department-overview>.table-scroll,.analytics-department-overview details>.table-scroll{overflow-x:auto;max-width:100%;margin-block:1rem}.analytics-department-overview table{width:100%;min-width:54rem;border-collapse:collapse;font-size:.9em}.analytics-department-overview table caption{text-align:left;font-weight:600;padding-block:.5rem}.analytics-department-overview th,.analytics-department-overview td{padding:.65rem .75rem;text-align:left;vertical-align:middle;border-bottom:1px solid var(--border);overflow-wrap:normal;word-break:normal}.analytics-department-overview th{min-width:5rem}.analytics-department-overview th:first-child{min-width:12rem;max-width:20rem}.analytics-department-overview td{white-space:nowrap;font-variant-numeric:tabular-nums}.analytics-department-overview>.analytics-chart{margin-block:1rem}.analytics-department-overview .table-scroll:focus-visible{outline:2px solid var(--primary);outline-offset:3px}
