:root{--navy:#06213f;--blue:#075adb;--ink:#172638;--muted:#65758b;--line:#dce5f0;--bg:#f0f5fa;--paper:#fff;--good:#267858;--danger:#ad3434;--radius:18px}
.session-kind-label{font-size:12px;color:#46617d;margin:0 0 9px}.session-kind-label.clinic-kind{color:#315b82}
.report-shell .homework-status.is-complete{color:#267258;font-weight:600}.report-shell .homework-status.needs-followup{color:#a24c43;font-weight:600}.report-shell .homework-status.is-neutral{color:#7a8896}
.cell-edit-modal .report-homework-options{margin:0 0 12px;border:1px solid #dce5f0;border-radius:8px;padding:10px;background:#f7fafd}.report-homework-options summary{font-size:13px;font-weight:700;cursor:pointer}.report-homework-options p{font-size:11px;color:#65758b;margin:5px 0 8px}.report-homework-choices{max-height:210px;overflow:auto}.report-homework-choice{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0;border-top:1px solid #e4ebf2;font-size:12px}.report-homework-choice>span{min-width:0;overflow-wrap:anywhere}.report-homework-choice>div{display:flex;align-items:center;gap:6px;flex-shrink:0}.cell-edit-modal .report-homework-choice select{width:125px;font-size:12px;padding:6px}
@media(max-width:550px){.report-homework-choice{display:block}.report-homework-choice>div{margin-top:5px}.cell-edit-modal .report-homework-choice select{min-width:0;width:calc((100% - 24px)/2)}}
@media print{.report-shell .homework-status{print-color-adjust:exact;-webkit-print-color-adjust:exact}}
/* Clinic reports retain the same navy header, page shell and session selector. */
.clinic-report .clinic-layout{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;min-width:0}
.clinic-report .clinic-overview{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:24px;background:#eaf1f8;border:1px solid #cddceb;border-left:4px solid var(--navy);border-radius:12px;padding:22px 26px;color:var(--navy);min-width:0}
.clinic-report .clinic-overview-title{min-width:0}.clinic-report .clinic-eyebrow{font-size:11px;letter-spacing:1px;color:#547391;margin:0 0 5px;font-weight:700}
.clinic-report .clinic-overview h2{font-size:21px;line-height:1.5;margin:0;overflow-wrap:anywhere}.clinic-report .clinic-period{font-size:12px;color:#5b7188;margin:6px 0 0;font-variant-numeric:tabular-nums}
.clinic-report .clinic-attendance-summary{border-left:1px solid #c6d6e6;padding-left:24px;flex:0 1 40%;min-width:0}.clinic-report .clinic-attendance-summary h3{font-size:12px;color:#5b7188;margin:0 0 4px;font-weight:500}.clinic-report .clinic-attendance-summary .report-copy{font-size:16px;font-weight:700;line-height:1.65}
.clinic-report .clinic-learning-pair{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;min-width:0}.clinic-report .clinic-learning-pair:empty{display:none}.clinic-report .clinic-learning-pair>.clinic-section:only-child{grid-column:1/-1}
.clinic-report .clinic-section{border-radius:12px;padding:22px 24px;align-self:stretch}.clinic-report .clinic-full,.clinic-report .clinic-extra-field{grid-column:1/-1;min-width:0}
.clinic-report .clinic-section-heading{display:flex;align-items:baseline;gap:10px;margin:0 0 14px;padding:0 0 12px;border-bottom:1px solid #e4ebf3}.clinic-report .clinic-section-number{font-size:11px;font-weight:700;letter-spacing:1px;color:#7089a1}.clinic-report .clinic-section-heading h2{font-size:17px;margin:0;color:var(--navy);line-height:1.5}
.clinic-report .clinic-section .report-copy{font-size:15px;line-height:1.85}.clinic-report .clinic-section .field-note{margin-top:-4px;margin-bottom:12px;font-size:12px}
.clinic-report .clinic-record-lines{font-size:15px;line-height:1.8}.clinic-report .clinic-change-entry{display:flex;align-items:baseline;flex-wrap:wrap;gap:3px 18px;padding-top:16px;margin-top:14px;border-top:1px solid #edf1f6}.clinic-report .clinic-change-entry:first-child{margin-top:0;padding-top:0;border-top:0}
.clinic-report .clinic-record-title{font-weight:600;color:#233f5c;overflow-wrap:anywhere;white-space:pre-wrap}.clinic-report .clinic-change-reading{display:block;overflow-wrap:anywhere}.clinic-report .clinic-before-reading{color:#778696}.clinic-report .clinic-reading-arrow{color:#8096ab;padding:0 4px}.clinic-report .clinic-change-reading small{font-size:11px;color:#8290a0}
.clinic-report .clinic-record-line.is-detail{color:#64778c;font-size:13px;line-height:1.8;margin-top:3px}.clinic-report .clinic-homework-entry{padding-top:9px;overflow-wrap:anywhere;white-space:pre-wrap}.clinic-report .clinic-homework-entry:first-child{padding-top:0}.clinic-report .clinic-homework-reading{font-size:14px}
.clinic-report .is-complete{color:#267258;font-weight:600}.clinic-report .needs-followup{color:#a24c43;font-weight:600}.clinic-report .is-neutral{color:#7a8896}
.clinic-report .clinic-teacher-note{background:#f7fafd;border-color:#d3e0ed}.clinic-report .clinic-extra-field>.report-card{height:100%}
@media(max-width:700px){.clinic-report .clinic-layout,.clinic-report .clinic-learning-pair{grid-template-columns:1fr;gap:10px}.clinic-report .clinic-overview{align-items:stretch;flex-direction:column;padding:18px;gap:16px}.clinic-report .clinic-overview h2{font-size:19px}.clinic-report .clinic-attendance-summary{border-left:0;border-top:1px solid #c6d6e6;padding:12px 0 0}.clinic-report .clinic-section{padding:18px}.clinic-report .clinic-section-heading{margin-bottom:12px;padding-bottom:10px}.clinic-report .clinic-change-entry{display:block}.clinic-report .clinic-change-reading{margin-top:3px}.clinic-report .clinic-section .report-copy{font-size:15px}.clinic-report .clinic-record-line.is-detail{font-size:13px}.clinic-report .clinic-period{font-size:11px}}
@media print{.clinic-report .clinic-overview,.clinic-report .clinic-teacher-note{print-color-adjust:exact;-webkit-print-color-adjust:exact}.clinic-report .clinic-section{break-inside:auto}.clinic-report .clinic-section-heading,.clinic-report .clinic-change-entry{break-after:avoid}.clinic-report .clinic-layout,.clinic-report .clinic-learning-pair{display:block}.clinic-report .clinic-section,.clinic-report .clinic-overview{margin-bottom:12px}}
*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:"Malgun Gothic","Apple SD Gothic Neo",system-ui,sans-serif;font-size:16px;line-height:1.65;background:var(--bg)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #549cf8;outline-offset:3px}button,.button{border:1px solid #b9c9dc;border-radius:8px;padding:9px 15px;background:white;color:var(--navy);text-decoration:none;font-weight:700}button.primary,.button.primary{color:white;background:var(--navy);border-color:var(--navy)}button.danger{color:var(--danger)}input,select,textarea{border:1px solid #c7d5e5;border-radius:8px;padding:10px 12px;background:#fff;color:var(--ink)}textarea{resize:vertical;line-height:1.65;min-height:110px}label{display:grid;gap:5px;font-size:14px;font-weight:700}h1,h2,h3,p{margin-top:0}h1{font-size:27px}h2{font-size:21px}h3{font-size:18px}.muted{color:var(--muted)}.small{font-size:14px}.loading,.empty{padding:60px 24px;text-align:center;color:var(--muted)}.parent-page{padding:16px}.report-shell{max-width:1400px;margin:auto;border-radius:18px;overflow:hidden;background:var(--bg);box-shadow:0 5px 30px #06213f09}.report-head{min-height:176px;display:flex;align-items:center;justify-content:center;position:relative;background:var(--navy);color:white;padding:30px}.wordmark{position:absolute;top:24px;left:26px;font-weight:800;letter-spacing:1.2px;font-size:14px}.student-badge{display:flex;align-items:center;gap:15px;border-radius:20px;padding:17px 28px;background:#ffffff14;border:1px solid #ffffff20}.avatar{width:55px;height:55px;border-radius:50%;display:grid;place-items:center;background:#0862d7}.student-name{font-size:23px;line-height:1.4;font-weight:800}.student-class{color:#d1def0;font-size:15px}.report-tab{text-align:center;padding:19px;background:white;border-bottom:3px solid var(--navy);font-size:20px;font-weight:800}.report-select{background:white;padding:18px 24px 22px;display:flex;align-items:end;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line)}.report-select select{min-width:260px;max-width:100%;background:#f8fafc;padding:15px}.report-grid{padding:18px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;align-items:start}.report-card{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:24px;overflow:hidden;min-width:0}.report-card.text-card{grid-column:span 2}.report-card.wide{grid-column:1/-1}.report-card h2{margin-bottom:7px;font-size:21px}.report-copy{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.report-copy.collapsed{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.field-note{color:var(--muted);font-size:12px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 12px}.read-more{display:block;width:100%;border:0;border-top:1px solid var(--line);border-radius:0;color:var(--blue);margin-top:14px;padding:8px 0 0;background:transparent}.metric{text-align:center;align-self:stretch;display:flex;flex-direction:column;min-height:290px}.metric h2{font-size:19px}.attendance-value{flex:1;display:grid;place-items:center;font-size:24px;line-height:1.4;font-weight:800;padding:30px 0;word-break:keep-all;overflow-wrap:anywhere}.score-ring{width:140px;max-width:100%;margin:14px auto 4px;position:relative}.score-ring svg{display:block;width:100%;transform:rotate(-90deg)}.score-number{position:absolute;inset:0;display:grid;place-items:center;font-size:32px;font-weight:800}.score-denominator{color:var(--muted);font-size:18px}.metric details{margin-top:18px;text-align:left;border-top:1px solid var(--line);padding-top:10px}.metric summary{cursor:pointer;text-align:center;font-weight:700}.stats{display:flex;justify-content:center;gap:24px;margin:15px 0;font-size:14px}.stats strong{display:block;font-size:20px}.trend{width:100%;height:auto;max-height:180px;margin:12px 0}.trend-labels{display:flex;justify-content:space-between;gap:6px;font-size:12px;color:var(--muted)}.sample-notice,.notice{padding:12px 18px;border:1px solid #bed4f0;background:#edf5ff;border-radius:9px;font-size:14px}.sample-notice{border-radius:0;text-align:center}.error-notice{background:#fff1f0;border-color:#e7b8b8;color:#932d2d}.notice:empty{display:none}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.between{justify-content:space-between}.spacer{flex:1}.pill{font-size:13px;font-weight:700;display:inline-block;border-radius:20px;padding:4px 11px;background:#e9f0f8;color:#31526f}.pill.published{color:#206542;background:#e5f3eb}.report-admin{padding:28px;max-width:1720px;margin:auto}.admin-heading{margin-bottom:25px}.admin-heading h1{margin:0 0 3px}.admin-top{display:flex;gap:22px;align-items:center;justify-content:space-between;margin-bottom:22px}.admin-brand{font-weight:800;color:var(--navy);letter-spacing:1px;font-size:14px}.workspace{display:grid;grid-template-columns:250px minmax(0,1fr);gap:20px}.session-panel,.editor-panel{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:20px;min-width:0}.session-panel{align-self:start}.session-panel select{width:100%;margin-bottom:15px}.session-list{display:grid;gap:10px;margin-top:18px}.session-button{text-align:left;padding:14px;border-color:var(--line);font-weight:400;display:grid;gap:2px;min-width:0}.session-button.active{border:2px solid var(--blue);background:#f3f8ff;padding:13px}.session-button strong{overflow-wrap:anywhere}.session-button span{font-size:13px;color:var(--muted)}.editor-header{margin-bottom:18px}.editor-header h2{margin:0}.metadata{display:grid;grid-template-columns:1fr 160px;gap:12px;margin:16px 0}.common-area{background:#f7f9fc;border:1px solid var(--line);padding:15px;border-radius:12px;margin:15px 0}.common-area summary{font-weight:700;cursor:pointer}.common-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:15px}.common-fields textarea{width:100%}.grid-scroll{overflow:auto;max-height:65vh;border:1px solid var(--line);border-radius:10px;margin-top:15px}.entry-grid{border-collapse:separate;border-spacing:0;width:100%;font-size:14px}.entry-grid th,.entry-grid td{border-bottom:1px solid var(--line);border-right:1px solid #edf1f6;padding:8px;text-align:left;vertical-align:top}.entry-grid th{position:sticky;top:0;background:#eef3f9;z-index:3;white-space:nowrap}.entry-grid th:first-child,.entry-grid td:first-child{position:sticky;left:0;background:#f8fafd;z-index:2;min-width:135px}.entry-grid th:first-child{z-index:4}.entry-grid .student-row-name{display:block;margin-bottom:5px;white-space:nowrap}.entry-grid input{width:86px}.entry-grid select{min-width:135px;max-width:190px;font-size:14px}.entry-grid textarea{width:220px;min-height:80px;max-height:180px;font-size:14px;padding:8px}.entry-grid .batch-row td{background:#f6f9ff}.entry-grid .batch-row label{font-size:12px}.entry-grid tr.dirty-row td:first-child:before{content:'●';color:#ce8500;float:right}.editor-bottom{margin-top:14px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.modal{width:min(1000px,calc(100vw - 32px));max-height:90vh;border:1px solid var(--line);border-radius:18px;padding:25px;box-shadow:0 20px 70px #061c3b35;color:var(--ink)}.modal::backdrop{background:#071a35aa}.modal h2{margin:0}.modal-body{margin:18px 0;max-height:65vh;overflow:auto}.modal textarea{width:100%}.modal .report-shell{box-shadow:none}.field-config{display:grid;grid-template-columns:25px 1fr 115px 80px;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.field-config input,.field-config select{min-width:0;width:100%}.copy-table{border-collapse:collapse;width:100%;font-size:14px}.copy-table td,.copy-table th{border:1px solid var(--line);padding:9px;text-align:left;white-space:nowrap}.copy-table td:nth-child(4){max-width:300px;overflow:hidden;text-overflow:ellipsis}.copy-invalid{color:var(--danger);background:#fff5f3}.bulk-help{font-size:14px;color:var(--muted);margin-bottom:12px}.hidden,[hidden]{display:none!important}.text-link{background:none;border:0;color:var(--blue);padding:0;font-size:13px}.table-caption{font-size:13px;color:var(--muted);margin-top:7px}.preview-body{padding:0;background:var(--bg)}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:12px 20px;background:var(--navy);color:white;border-radius:10px;box-shadow:0 5px 20px #0002;z-index:100;max-width:90vw}.trend-table{width:100%;font-size:13px;text-align:left;border-collapse:collapse}.trend-table td,.trend-table th{padding:5px;border-bottom:1px solid var(--line)}
@media(max-width:1050px){.workspace{grid-template-columns:205px minmax(0,1fr)}.report-admin{padding:18px}.report-head{min-height:160px}.wordmark{position:static;margin-bottom:15px}.report-head{flex-direction:column}.report-card{padding:20px}}
@media(max-width:700px){.parent-page{padding:0}.report-shell{border-radius:0}.report-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px;gap:12px}.report-card.text-card{grid-column:1/-1}.report-head{min-height:156px;padding:20px}.student-badge{padding:12px 18px}.student-name{font-size:21px}.student-class{font-size:13px}.report-select{padding:15px;align-items:start;flex-direction:column;gap:8px}.report-select select{min-width:0;width:100%}.report-select label{width:100%}.report-card{padding:17px}.report-card h2{font-size:19px}.metric{padding:15px;min-height:250px}.attendance-value{font-size:20px}.score-ring{width:118px}.score-number{font-size:27px}.report-admin{padding:13px}.workspace{grid-template-columns:1fr}.session-list{display:flex;overflow:auto;padding:2px}.session-button{min-width:150px}.common-fields{grid-template-columns:1fr}.admin-top{align-items:start;gap:10px}.admin-top .toolbar{justify-content:flex-end}.metadata{grid-template-columns:1fr}.field-config{grid-template-columns:25px 1fr 100px 65px;gap:5px}.editor-panel{padding:14px}.modal{padding:17px}.report-copy{font-size:16px}}
.score-detail-trigger{margin-top:auto;border:0;border-top:1px solid var(--line);border-radius:0;padding:12px 0 0;background:transparent}.score-denominator{margin-bottom:18px}.sample-admin-link{color:var(--blue);font-weight:700}.score-detail-dialog{width:min(460px,calc(100vw - 32px));max-height:85dvh;overflow:auto;padding:24px;border:1px solid var(--line);border-radius:18px;background:white;color:var(--ink);box-shadow:0 20px 70px #061c3b35}.score-detail-dialog::backdrop{background:#071a3588}.score-detail-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:8px}.score-detail-heading h2{font-size:19px;margin:0;line-height:1.4}.score-detail-heading button{flex-shrink:0;font-size:14px;padding:6px 10px}.detail-current-score{text-align:center;margin:18px 0 4px;color:var(--muted)}.detail-current-score strong{font-size:32px;color:var(--navy)}.score-detail-dialog .stats{background:var(--bg);border-radius:12px;padding:12px;margin:12px 0}.score-detail-dialog .trend-table{font-size:14px}.score-detail-dialog .trend{max-height:145px}.score-detail-dialog .small{text-align:center}
/* Compact report workspace; editing takes place in a spacious dialog. */
.report-admin-page{font-size:15px}.report-admin{padding:18px;max-width:1840px}.report-admin h1{font-size:23px}.report-admin h2{font-size:19px}.report-admin button,.report-admin .button{font-size:14px;padding:7px 10px}.report-admin input,.report-admin select{font-size:14px;padding:7px 9px}.admin-top{margin-bottom:14px}.admin-heading{margin-bottom:16px}.admin-heading p{margin-bottom:0}.workspace{grid-template-columns:210px minmax(0,1fr);gap:14px}.session-panel,.editor-panel{padding:15px;border-radius:13px}.session-list{gap:7px;margin-top:12px}.session-button{padding:10px}.session-button.active{padding:9px}.editor-header{margin-bottom:12px}.metadata{grid-template-columns:minmax(160px,1fr) 155px;margin:12px 0;gap:10px}.common-area{margin:12px 0;padding:10px 12px}.toolbar{gap:7px}.grid-key-help{font-size:13px;color:var(--muted);margin:10px 0 0}.grid-scroll{margin-top:7px;max-height:68vh}.entry-grid td,.entry-grid th{padding:5px;vertical-align:middle}.entry-grid th{padding:8px;font-size:14px}.entry-grid th:first-child,.entry-grid td:first-child{min-width:115px}.entry-grid .student-row-name{display:inline;margin:0 5px 0 0;font-size:14px}.entry-grid .text-link{padding:3px;font-size:12px}.entry-grid .cell-text{min-width:200px;max-width:280px}.entry-grid .cell-score{min-width:82px;max-width:110px}.entry-grid .cell-list{min-width:145px;max-width:190px}.entry-grid .grid-cell{display:block;width:100%;max-width:100%;min-height:34px;padding:5px 8px;border:1px solid transparent;border-radius:5px;background:transparent;color:var(--ink);font-size:14px;font-weight:400;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.entry-grid .grid-cell.is-empty{color:#8995a5}.entry-grid .grid-cell:hover{background:#eef4fe}.entry-grid .grid-cell.selected,.entry-grid .grid-cell:focus-visible{background:#eaf2ff;border-color:var(--blue);outline:2px solid var(--blue);outline-offset:-1px}.entry-grid .cell-score .grid-cell{text-align:center;font-weight:700}.entry-grid .batch-row .grid-cell{color:var(--blue)}.entry-grid .batch-row td{height:42px}.editor-bottom{margin-top:12px}.roster-tools{display:grid;gap:7px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}#roster-status{font-size:13px;color:var(--good);line-height:1.5}#roster-status.roster-warning{color:#9c6724}.roster-tools button{font-size:13px;padding:5px 8px}.deleted-link{margin-top:16px}.deleted-session-list>div{display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line);padding:10px 0}.cell-edit-modal{width:min(960px,calc(100vw - 40px));padding:24px}.cell-edit-modal .modal-body{max-height:73vh;margin:15px 0}.cell-edit-modal textarea{min-height:300px;height:38vh;max-height:52vh;font-size:17px;padding:18px;line-height:1.8;resize:vertical}.cell-edit-modal select,.cell-edit-modal input{width:100%;font-size:20px;padding:16px}.cell-edit-context{display:flex;justify-content:space-between;gap:15px;color:var(--muted);font-size:14px;margin-bottom:15px}.cell-value-label{margin-bottom:7px}.cell-edit-help{display:flex;gap:12px;justify-content:space-between;flex-wrap:wrap;font-size:13px;color:var(--muted);margin:10px 0}.cell-error{color:var(--danger);font-size:14px;margin:6px 0}.cell-edit-modal .toolbar{margin-bottom:10px}.cell-edit-modal .modal-body>p:last-child{margin-bottom:0}
.report-head{min-height:132px;padding:24px}.student-badge{padding:13px 23px}.student-name{font-size:21px}.report-tab{padding:14px;font-size:18px}.report-select{padding:14px 20px}.report-select select{padding:10px 13px;min-width:230px}.report-card{padding:19px}.report-card h2{font-size:19px}.metric{min-height:250px}.score-ring{width:124px}.report-grid{padding:15px;gap:13px}
@media(max-width:700px){.report-admin{padding:10px}.workspace{grid-template-columns:1fr}.session-panel,.editor-panel{padding:12px}.roster-tools{grid-template-columns:1fr auto;align-items:center;margin-bottom:10px;padding-bottom:8px}.metadata{grid-template-columns:1fr 145px}.report-head{min-height:125px}.report-card{padding:15px}.report-grid{padding:10px;gap:10px}.metric{min-height:230px}.score-ring{width:108px}.report-select select{min-width:0}.cell-edit-modal{width:calc(100vw - 20px);padding:16px}.cell-edit-modal textarea{font-size:16px;min-height:240px}.cell-edit-context{font-size:13px}.cell-edit-help{display:grid;gap:3px}.cell-edit-modal h2{font-size:19px}}
@media print{body,.parent-page{background:white;padding:0}.report-shell{box-shadow:none}.report-select,.read-more,.sample-notice,.score-detail-trigger,.score-detail-dialog{display:none}.report-copy.collapsed{display:block}.report-card{break-inside:avoid}.report-head{print-color-adjust:exact}}
.score-detail-dialog{width:min(820px,calc(100vw - 28px));max-height:92dvh;padding:24px}.score-detail-heading{align-items:flex-start}.score-detail-heading h2{font-size:21px}.score-detail-dialog [data-score-subtitle]{margin-bottom:8px}.score-detail-dialog .detail-current-score{margin-top:8px}.score-detail-dialog .stats{margin:10px 0;padding:10px}.score-detail-dialog .stats+p{margin-bottom:20px}
.score-trend{text-align:left;border-top:1px solid var(--line);padding-top:18px}.score-chart-heading h3{font-size:16px;margin:0 0 4px}.score-chart-heading p{font-size:12px;line-height:1.5;color:var(--muted);margin:0}.score-chart-legend{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px 18px;margin:15px 0 8px;font-size:12px}.score-chart-legend span{display:flex;align-items:center;gap:7px}.score-chart-legend i{display:inline-block;width:24px;border-top:3px solid var(--series-color)}.score-chart-legend .legend-average{border-top-style:dashed}.score-chart-legend .legend-highest{border-top-style:dotted}
.score-chart-scroll{width:100%;overflow-x:auto;overscroll-behavior-x:contain}.score-chart-svg{display:block;max-width:none;font-family:inherit}.score-chart-svg text{fill:#60758c;font-size:12px}.score-chart-svg .chart-date{fill:#8797a9;font-size:10px}.score-chart-svg [role=button]{cursor:pointer;outline:none}.score-chart-svg [role=button]:focus-visible .score-chart-target{stroke:#1764d9;stroke-width:2;fill:#1764d912}.score-chart-series{pointer-events:none}.score-chart-help{font-size:11px;color:var(--muted);margin:7px 0 12px;line-height:1.6}.score-chart-readout{padding:13px 16px;background:#f2f6fb;border-radius:10px;margin-bottom:20px}.score-chart-readout>strong{display:block;font-size:13px;font-weight:600}.score-chart-readout>strong small{font-weight:400;color:var(--muted)}.score-chart-readout>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:8px}.score-chart-readout span small{display:block;font-size:11px;color:var(--muted)}.score-chart-readout b{font-size:18px}
.score-history-scroll{overflow-x:auto}.score-history-table{width:100%;border-collapse:collapse;font-size:13px;text-align:right;font-variant-numeric:tabular-nums}.score-history-table caption{text-align:left;font-size:14px;font-weight:700;margin-bottom:8px}.score-history-table th,.score-history-table td{padding:10px 9px;border-bottom:1px solid #e6ecf3;white-space:nowrap}.score-history-table thead th{background:#f7f9fc;color:#64788f;font-size:12px;font-weight:600}.score-history-table th:first-child{text-align:left}.score-history-table button{border:0;padding:0;background:none;color:#1f568e;font-size:13px;line-height:1.5}.score-history-table small{display:block;font-size:10px;font-weight:400;color:var(--muted)}.score-history-table tr.selected{background:#f0f6ff}.score-history-table td:first-of-type{color:#1764d9;font-weight:700}.score-chart-empty{text-align:center;color:var(--muted);padding:24px}
@media(max-width:550px){.score-detail-dialog{width:calc(100vw - 20px);max-height:94dvh;padding:16px}.score-detail-heading h2{font-size:18px}.score-detail-dialog .detail-current-score strong{font-size:30px}.score-chart-legend{justify-content:flex-start;gap:12px;font-size:11px}.score-chart-readout{padding:12px}.score-chart-readout b{font-size:15px}.score-history-table{font-size:12px}.score-history-table th,.score-history-table td{padding:9px 6px}.score-history-table small{font-size:9px}}
.cumulative-badge{display:inline-block;margin-left:5px;padding:0 5px;border-radius:4px;color:#236442;background:#e5f3eb;font-size:11px;font-weight:600;vertical-align:middle}.cumulative-help{font-size:13px;line-height:1.6;color:#236442;background:#f0f8f3;border:1px solid #d3e8dc;border-radius:7px;padding:9px 12px;margin:8px 0 12px}.carry-setting{display:flex;align-items:center;gap:8px;margin:12px 0;font-size:14px;font-weight:500}.carry-setting input{width:17px;height:17px;flex:none;padding:0}.carry-preview-list{display:grid;gap:12px}.carry-preview-item{border:1px solid var(--line);border-radius:10px;padding:12px}.carry-preview-item p{margin:5px 0 8px}.carry-compare{display:grid;grid-template-columns:1fr 1fr;gap:14px;min-width:0}.carry-compare>div{min-width:0}.carry-compare pre{font:inherit;font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:170px;overflow:auto;margin:5px 0 0;background:#f7f9fc;border-radius:6px;padding:10px}@media(max-width:700px){.carry-compare{grid-template-columns:1fr;gap:10px}}

/* Cell editors keep the table visible and reserve most of their space for the text. */
.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}
.cell-edit-modal{width:min(900px,calc(100vw - 32px));padding:14px 18px;border:1px solid #8095ad;border-radius:12px;box-shadow:0 8px 32px #06213f33;background:white}
.cell-edit-modal::backdrop{background:transparent}
.cell-edit-modal h2{font-size:17px;line-height:1.4}
.cell-edit-modal button{font-size:13px;padding:5px 9px}
.cell-edit-modal .modal-body{margin:9px 0;max-height:74dvh}
.cell-edit-modal .cell-edit-context{gap:10px;align-items:center;flex-wrap:wrap;font-size:12px;margin:0 0 8px;line-height:1.4}
.cell-nav{display:flex;align-items:center;gap:5px;margin-left:auto}
.cell-edit-modal textarea{display:block;height:220px;min-height:96px;max-height:60dvh;font-size:16px;line-height:1.65;padding:10px 12px;resize:vertical}
.cell-edit-modal select,.cell-edit-modal input{font-size:16px;padding:8px 10px}
.cell-edit-modal .cell-edit-help{display:block;font-size:12px;line-height:1.5;margin:7px 0 0;color:var(--muted)}
.cell-edit-modal .cell-error:empty{display:none}
.cell-edit-modal .cell-cumulative-hint{margin:0 0 7px;font-size:12px;color:#236442;line-height:1.5}
.cell-field-note{margin:0 0 7px;font-size:12px;color:var(--muted)}
.cell-field-note summary{cursor:pointer}.cell-field-note .field-note{margin:5px 0;font-size:12px;line-height:1.5}
.cell-edit-modal #modal-actions{justify-content:flex-end}
.student-row-name{color:var(--navy);text-decoration:none;font-weight:700}.student-row-name:hover{text-decoration:underline;color:var(--blue)}
.student-reports-page{max-width:1440px}.student-report-controls{margin-bottom:16px}
.student-filters{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:12px}
.student-filters select{width:100%;min-width:0}.student-report-controls p{margin:0}
.student-report-controls #student-link-help{margin-top:9px;font-size:12px}
#student-copy-fallback{margin-top:10px}#student-report-view .report-shell{max-width:none}
@media(max-width:700px){.cell-edit-modal{padding:12px;width:calc(100vw - 20px)}.cell-edit-modal h2{font-size:16px}.cell-edit-modal textarea{min-height:96px}.cell-nav{margin-left:0}.student-filters{grid-template-columns:1fr 1fr;gap:8px}.student-filters label:last-child{grid-column:1/-1}.student-report-controls .toolbar{gap:8px}.student-report-controls .button,.student-report-controls button{font-size:12px}}
