.score-dashboard{margin:32px 0;padding:24px;background:var(--white);border:1px solid var(--line);border-radius:18px}
.score-dashboard details{margin:18px 0}.score-dashboard summary{font-weight:650;cursor:pointer;padding:12px 0}
.score-chart{display:block;width:100%;max-height:320px;color:var(--berry)}
.score-table-wrap{overflow-x:auto}.score-table{width:100%;border-collapse:collapse;font-size:15px}
.score-table caption{text-align:left;color:var(--muted);padding:12px 0}.score-table th,.score-table td{text-align:left;border-bottom:1px solid var(--line);padding:12px;vertical-align:top}.score-table a{text-decoration:underline;text-underline-offset:3px}
[data-grade-report],[data-regrade],[data-explanation-feedback]{display:grid;gap:14px;max-width:640px;margin:18px 0}
[data-grade-report] label,[data-regrade] label,[data-explanation-feedback] label{display:grid;gap:6px}
.worked-steps{font-size:18px;line-height:1.7}.worked ul{font-size:16px;line-height:1.7}
.question-image img{max-width:100%;height:auto}.solution img{max-width:100%;height:auto}
.motivation{margin:24px 0}.score-dashboard .stats{margin-top:18px}
@media(max-width:600px){.score-dashboard{padding:16px}.score-table th,.score-table td{padding:10px 6px}.worked-steps{font-size:17px}.score-dashboard .stats{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.score-dashboard *,.motivation *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.analytics-header{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:28px}.analytics-header h2{font-size:32px;margin-bottom:10px}.analytics-header p{color:var(--muted);margin:0}.analytics-header .eyebrow{margin-bottom:12px}
.analytics-filters{display:flex;gap:12px;flex-wrap:wrap}.analytics-filters label{display:grid;gap:7px;font-size:12px;font-weight:650;color:var(--muted)}.analytics-filters select{max-width:100%;padding:11px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink);font-size:14px}
.analytics-overview{display:grid;grid-template-columns:1fr 1fr;gap:18px}.latest-score-card{display:flex;align-items:center;gap:24px;background:var(--berry-wash);padding:26px;border-radius:18px}.latest-score-card h3{font-size:21px;line-height:1.3;margin:8px 0}.latest-score-card p{margin-bottom:10px;color:var(--muted)}
.analytics-kicker{font-size:10px;letter-spacing:1.2px;font-weight:700;color:var(--muted)}.score-ring{width:136px;height:136px;flex-shrink:0;border-radius:50%;padding:10px;background:conic-gradient(var(--berry) var(--score-percentage),#e7d6dc 0);display:grid;place-items:center}.score-ring>span{display:flex;flex-direction:column;align-items:center;justify-content:center;width:116px;height:116px;border-radius:50%;background:white}.score-ring strong{font-size:45px;line-height:1.1;letter-spacing:-2px}.score-ring small{color:var(--muted);font-size:12px}
.analytics-metrics{display:grid;grid-template-columns:1fr 1fr;gap:12px}.analytics-metrics article{border:1px solid var(--line);border-radius:14px;padding:18px;display:flex;flex-direction:column;justify-content:space-between;gap:12px}.analytics-metrics article>span{font-size:12px;color:var(--muted)}.analytics-metrics strong{font-size:30px;letter-spacing:-1px}.analytics-metrics small{font-size:12px;letter-spacing:0;font-weight:400;color:var(--muted)}.positive{color:var(--green)}.analytics-change{margin:18px 0 30px;font-size:15px}
.analytics-chart-heading,.analytics-section-title{display:flex;justify-content:space-between;align-items:baseline;gap:16px}.analytics-chart-heading h3{margin:0}.analytics-chart-heading>span{font-size:10px;letter-spacing:1px;color:var(--muted)}.analytics-section-title p{font-size:13px;color:var(--muted);margin-bottom:16px}.analytics-section-title h3{margin-bottom:8px}
.score-chart-scroll{overflow-x:auto;margin:12px 0;overscroll-behavior-x:contain}.score-chart-scroll .score-chart{max-height:none;width:100%;height:auto}.chart-grid{stroke:var(--line);stroke-width:1}.chart-axis{fill:var(--muted);font-size:14px}.chart-score{fill:var(--berry);font-size:18px;font-weight:700}.chart-line{fill:none;stroke:var(--berry);stroke-width:3;stroke-linejoin:round;stroke-linecap:round}.chart-area{fill:var(--berry);opacity:.055}.chart-dot{fill:var(--berry);stroke:white;stroke-width:2}.chart-point:hover .chart-dot,.chart-point:focus .chart-dot{stroke:var(--berry);stroke-width:4;fill:white}.chart-point-close .chart-score,.chart-point-close .chart-date{visibility:hidden}.chart-point-close:hover .chart-score,.chart-point-close:focus .chart-score{visibility:visible;paint-order:stroke;stroke:white;stroke-width:4px}
.analytics-note,.analytics-empty{font-size:13px;line-height:1.6;color:var(--muted)}.analytics-empty{padding:32px;text-align:center;border:1px dashed var(--line);border-radius:14px;margin-top:18px}.score-dashboard .score-history{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:4px 0}
.chart-dot.provisional-dot{fill:white;stroke:var(--berry);stroke-width:2;stroke-dasharray:3 2}
.provisional-card{border:1px dashed var(--berry)}.provisional-card .score-ring{background:conic-gradient(#ad7686 var(--score-percentage),#e7d6dc 0)}
.pair-editor{margin:14px 0;padding:12px;border:1px solid var(--line);border-radius:10px}.pair-editor summary{font-size:13px;cursor:pointer;font-weight:600}.pair-editor p{font-size:12px;margin:12px 0}.pair-editor-row{display:grid;grid-template-columns:18px minmax(0,1fr) 12px minmax(0,1fr) 28px;align-items:center;gap:6px;margin:10px 0}.pair-editor-row .text-input{width:100%;min-width:0}.pair-remove{font-size:23px;color:var(--muted);background:transparent}
.achievement-list{padding:0;list-style:none;display:grid;gap:10px}.achievement-list li{font-size:14px;line-height:1.5}.achievement-list li>span{color:var(--green)}
@media(prefers-reduced-motion:no-preference){.motivation-celebrate .achievement-list{animation:milestone-appear .35s ease-out both}@keyframes milestone-appear{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}}
.activity-visual,.topics-visual{margin-top:32px}.activity-calendar{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));gap:6px}.activity-cell{display:grid;gap:4px;justify-items:center;align-content:center;min-height:54px;border-radius:8px;background:color-mix(in srgb,var(--green) calc(var(--activity-strength)*100%),#f0f2ef);color:var(--ink);border:1px solid #e3e9e3}.activity-cell span{font-size:12px}.activity-cell small{font-size:10px}.activity-cell[style*="--activity-strength:1"]{color:white}.activity-cell.selected{outline:2px solid var(--berry);outline-offset:2px}.activity-selection{font-size:13px;background:var(--paper);padding:14px 18px;border-radius:10px;max-height:230px;overflow:auto}.activity-selection p:last-child{margin-bottom:0}.activity-selection h4{margin:0 0 8px}.activity-selection ul{padding-left:20px;line-height:1.8}
.topic-bars{display:grid;gap:20px}.topic-bar-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(120px,1fr) auto;gap:18px;align-items:center}.topic-bar-row>div:first-child{display:grid;gap:6px}.topic-bar-row b{font-size:14px}.topic-bar-row span{font-size:12px;color:var(--muted)}.topic-bar-track{height:10px;border-radius:10px;background:var(--green-wash);overflow:hidden}.topic-bar-track>span{display:block;height:100%;background:var(--green);border-radius:10px}.topic-bar-row .card-link{font-size:12px;white-space:nowrap}
.compact-progress{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.compact-score{display:flex;align-items:center;gap:14px}.compact-score>strong{font-size:32px;font-weight:700;letter-spacing:-1px}.compact-score small{font-size:15px;font-weight:450;color:var(--muted)}.compact-score>span,.compact-change{font-size:12px;color:var(--muted)}.score-sparkline{width:130px;height:46px}
.analytics-trend{display:flex;align-items:center;gap:20px;padding:16px 20px;border:1px solid var(--line);border-radius:14px}
.analytics-trend-text{flex:1;min-width:0}
.analytics-trend h3{font-size:16px;margin:0 0 4px}
.analytics-trend p{font-size:13px;color:var(--muted);margin:0}
.analytics-trend .score-sparkline{width:180px;height:56px}
.analytics-dialog{max-width:1100px;max-height:calc(100vh - 32px);overflow:auto}
.analytics-dialog-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}
.analytics-dialog-head h2{margin:0}
.analytics-dialog .activity-visual{margin-top:24px}
.analytics-dialog .score-history{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:4px 0}
@media(max-width:650px){.analytics-trend{flex-wrap:wrap;gap:12px;padding:14px}.analytics-trend .score-sparkline{margin-left:0;width:100%}.analytics-trend .button{width:100%}.analytics-dialog{padding:20px 16px}}.mini-score-chart{width:100%;height:100%}.compact-change.positive{color:var(--green)}.parent-student-heading .compact-progress{width:100%;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.parent-student-heading .compact-score>span{font-size:12px}.parent-student-heading .compact-score>strong{font-size:32px}.today-progress{display:flex;gap:20px;align-items:center;flex-wrap:wrap;padding:24px;margin:24px 0;border:1px solid var(--line);border-radius:18px;background:white}.today-progress h2{font-size:21px;margin:0}.today-progress .eyebrow{margin-bottom:10px}.today-progress>.card-link{margin-left:auto}
@media(max-width:1000px){.analytics-header{flex-direction:column}.topic-bar-row{grid-template-columns:1fr 1fr}.topic-bar-row>.card-link{grid-column:1/-1}.latest-score-card{padding:20px;gap:16px}.score-ring{width:110px;height:110px;padding:8px}.score-ring>span{width:94px;height:94px}.score-ring strong{font-size:37px}}
@media(max-width:650px){.analytics-header h2{font-size:26px}.analytics-filters{width:100%;display:grid;grid-template-columns:1fr 1fr}.analytics-filters label{min-width:0}.analytics-filters select{width:100%;font-size:12px;padding:10px 6px}.analytics-overview{grid-template-columns:1fr}.analytics-metrics{gap:8px}.analytics-metrics article{padding:14px}.analytics-metrics strong{font-size:27px}.analytics-metrics small{display:block;margin-top:4px}.analytics-chart-heading{align-items:flex-start;flex-direction:column;gap:8px}.activity-calendar{grid-template-columns:repeat(7,minmax(0,1fr))}.analytics-section-title{align-items:flex-start;flex-direction:column;gap:0}.analytics-section-title>.analytics-kicker{margin-bottom:12px}.topic-bar-row{grid-template-columns:1fr;gap:9px}.topic-bar-row>.card-link{grid-column:auto}.compact-progress{gap:12px}.compact-change{flex-basis:100%}.compact-score{gap:10px}.score-sparkline{margin-left:auto;width:100px}.today-progress{padding:18px}.today-progress .compact-progress{width:100%}.today-progress>.card-link{margin-left:0}.parent-student-heading .compact-score>span{font-size:11px}}
.task-numbers>a.task-number{display:flex;align-items:center;justify-content:center}

/* Child progress: keep the summary beside the page title. */
.progress-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:start;gap:36px;margin:0 0 28px}
.progress-hero .page-intro{min-width:0;margin:0}
.progress-hero .page-intro p:last-child{margin-bottom:0}
.progress-hero .stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0}
.progress-hero .stat{min-width:0;min-height:130px;padding:20px 16px;display:flex;flex-direction:column;justify-content:space-between}
.progress-hero .stat strong{font-size:clamp(28px,3vw,38px);line-height:1;margin:0}
.progress-hero .stat span{font-size:11px;line-height:1.35}
@media(max-width:1050px){.progress-hero{grid-template-columns:1fr;gap:24px}.progress-hero .stats{gap:12px}.progress-hero .stat{min-height:110px}}
@media(max-width:520px){.progress-hero{gap:20px}.progress-hero .stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.progress-hero .stat{min-height:92px;padding:15px}.progress-hero .stat:last-child{grid-column:1/-1;min-height:76px;flex-direction:row;align-items:center}.progress-hero .stat strong{font-size:30px}.progress-hero .stat span{font-size:11px}.progress-hero .stat:last-child span{text-align:right}}
