:root{--paper:#faf8ef;--ink:#18344a;--muted:#5b7481;--line:#a9bbc0;--blue:#2468a0;--orange:#d68b35;--gold:#ba832b;--pale:#fff2d5}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:#e8ebe8;color:var(--ink);font:15px "Songti SC","Noto Serif CJK SC","STSong",serif}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.page-shell{max-width:1680px;min-height:100vh;margin:auto;padding:17px 38px 15px;background:radial-gradient(circle at 20% 5%,#fffdf7,transparent 40%),var(--paper);box-shadow:0 0 45px #253a4620}.masthead{display:flex;justify-content:space-between;align-items:end;border-bottom:4px double #738f9a;padding-bottom:9px;gap:16px}.brand-line{display:flex;align-items:center;gap:17px;min-width:0}.brand-line h1{margin:0;color:#103b49;font-size:clamp(30px,2.8vw,45px);letter-spacing:.07em;white-space:nowrap}.brand-divider{height:37px;border-left:1px solid #95acb5}.brand-line p{margin:0;color:#a73d2a;font-size:clamp(18px,1.55vw,26px);letter-spacing:.09em;white-space:nowrap}.mast-right{display:flex;align-items:end;gap:16px}.school-mark{width:165px;height:47px;fill:none;stroke:#a49a85;stroke-width:1.5}.project-key{display:flex;gap:14px;white-space:nowrap;padding-bottom:3px}.project-key span{display:inline-flex;align-items:center;gap:6px;font-size:12px}.project-key i{width:13px;height:13px;border-radius:50%;display:inline-block}.toolbar{display:flex;justify-content:space-between;align-items:end;gap:14px;padding:8px 0 4px}.date-controls{display:flex;align-items:end;flex-wrap:wrap;gap:9px}.date-controls label{display:grid;gap:2px;color:#476673;font:650 10px system-ui,sans-serif}.date-controls select,.date-controls input{min-height:29px;border:1px solid #a8babd;border-radius:3px;background:#fffef9;color:var(--ink);padding:4px 7px;font:12px system-ui,sans-serif}.date-controls input{width:135px}.light-button,.back-button{border:1px solid #9db2b6;border-radius:3px;background:#fffdf6;color:#285b68;padding:6px 10px;font:650 12px system-ui,sans-serif}.person-wrap{position:relative}.person-button{display:flex;align-items:center;gap:8px;white-space:nowrap;border:0;background:none;color:#244a5c;text-align:right;padding:4px;font:12px system-ui,sans-serif}.person-button strong{font-weight:700}.person-button span:nth-child(2){color:#5e7781}.person-menu{position:absolute;z-index:30;right:0;top:100%;width:220px;padding:12px;background:#fffdf8;border:1px solid #a4b6bb;box-shadow:0 12px 30px #18374a2c;font:12px system-ui,sans-serif}.person-menu p{margin:0 0 8px;font-weight:700}.person-menu small{font-weight:400;color:#607985}.person-menu button{width:100%;text-align:left;padding:7px;border:0;border-top:1px solid #e0e7e6;background:none;color:var(--ink)}.person-menu button:hover{background:#edf3f4}.period-note{margin:1px 0 3px;color:#668087;font:10px system-ui,sans-serif}.notice{padding:8px 10px;border-left:3px solid var(--blue);background:#eaf3f8;color:#205278;font:12px system-ui,sans-serif}.notice.error{border-color:#bc4c3f;background:#fff1ec;color:#9c392e}.view-nav{display:flex;gap:16px;border-bottom:1px solid #b3c2c5}.view-nav button{border:0;background:none;color:#5b7780;padding:5px 3px;font:700 13px system-ui,sans-serif}.view-nav button.active{color:#1b5b82;border-bottom:3px solid var(--blue)}.home-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:4px 0 6px}.home-heading p{margin:0;font:11px system-ui,sans-serif;color:#567380}.home-heading #range-caption{color:#244e65}.dashboard-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid #688995;border-bottom:1px solid #688995}.group{min-width:0;padding:9px 16px 8px 0;border-bottom:1px solid #678996}.group:nth-child(3n+2),.group:nth-child(3n+3){padding-left:15px}.group:nth-child(n+4){border-bottom:0}.group-head{display:flex;align-items:baseline;gap:9px;min-height:33px;border-bottom:1px solid #afc0c4;margin-bottom:3px}.group-number{color:#5b7e88;font-size:23px}.group-title{font-size:25px;line-height:1.1;margin:0;padding-left:9px;border-left:1px solid #a5bbc0}.group-scope{margin-left:auto;color:#6a7f85;font:10px system-ui,sans-serif}.metric{display:grid;width:100%;grid-template-columns:64px minmax(38px,1fr) minmax(82px,auto) minmax(42px,auto);column-gap:5px;padding:5px 0 4px;border:0;border-top:1px dashed #cbd6d5;background:none;text-align:left;color:inherit}.metric:first-of-type{border-top:0}.metric:hover{background:#f0f3ef}.metric-top{grid-column:1/-1;display:flex;align-items:center;min-height:22px;gap:6px}.metric-top h4{margin:0;font-size:16px}.metric-more{margin-left:auto;color:#65828a;text-decoration:underline;font:10px system-ui,sans-serif}.metric-scope{margin-left:auto;color:#6b8188;font:10px system-ui,sans-serif}.metric-scope+.metric-more{margin-left:0}.metric-project{display:grid;grid-template-columns:subgrid;grid-column:1/-1;align-items:center;min-height:29px}.project-label{display:flex;align-items:center;gap:3px;white-space:nowrap;font-size:11px}.project-label .crown{color:var(--gold);font:700 11px system-ui,sans-serif}.track{height:14px;background:#e2e5e3;overflow:hidden}.fill{display:block;height:100%}.fill.blue{background:linear-gradient(90deg,#307ab0,var(--blue))}.fill.orange{background:linear-gradient(90deg,#e6a756,var(--orange))}.metric-value{display:block;text-align:right;white-space:nowrap;font-size:clamp(15px,1.24vw,20px);font-weight:650;font-variant-numeric:tabular-nums}.metric-value.missing{font-size:12px;color:#788b91}.metric-aux{padding-left:6px;border-left:1px solid #b9c9ca;font:11px system-ui,sans-serif;color:#456576;white-space:nowrap;max-width:110px;overflow:hidden;text-overflow:ellipsis}.metric-reason{grid-column:1/-1;color:#965d45;font:10px/1.35 system-ui,sans-serif}.bachelor{margin:3px 0 0;border-top:1px solid #d5dddc;padding-top:4px;color:#456778;font:10px system-ui,sans-serif}.warnings{margin-top:8px;padding:8px;border:1px solid #dabe8d;background:#fff7e8;font:11px system-ui,sans-serif}footer{display:flex;justify-content:space-between;border-top:1px solid #aebfc1;color:#68818a;margin-top:5px;padding-top:6px;font:10px system-ui,sans-serif}.detail-view,.report-view,.records-view{padding:16px 0 25px}.back-button{margin-bottom:13px}.detail-head{display:flex;justify-content:space-between;gap:18px;align-items:end;border-bottom:2px solid #718e9b;padding-bottom:10px}.eyebrow{margin:0 0 3px;color:#996d35;font:700 10px system-ui,sans-serif;letter-spacing:.14em}.detail-head h2,.section-head h2{font-size:30px;margin:0}.detail-head p,#detail-range{font:13px/1.5 system-ui,sans-serif;color:#567380;margin:4px 0 0}.detail-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px;margin:16px 0}.detail-columns.single{grid-template-columns:1fr}.detail-card{border:1px solid #b1c2c4;background:#fffdf7;padding:16px;min-width:0}.detail-card h3{margin:0 0 8px;font-size:21px}.detail-card h3.blue{color:var(--blue)}.detail-card h3.orange{color:#a9651c}.detail-card strong{font-size:30px;font-variant-numeric:tabular-nums}.detail-card p{font:12px/1.5 system-ui,sans-serif;color:#4d6873}.difference{border-left:4px solid var(--gold);background:#fff5e5;padding:9px 12px;font:13px system-ui,sans-serif}.trend-section,.sources-section{margin:19px 0;border-top:1px solid #b1c4c6;padding-top:12px}.trend-section h3,.sources-section h3{margin:0 0 9px;font-size:20px}.trend-svg{display:block;width:100%;height:240px;background:#f3f6f3;border:1px solid #d1dddc}.trend-key{display:flex;gap:15px;flex-wrap:wrap;margin:8px 0;font:12px system-ui,sans-serif}.trend-key span{display:flex;align-items:center;gap:5px}.trend-key i{width:13px;height:3px;display:inline-block}.source-fold{border:1px solid #c8d4d4;background:#fffdf7;margin:6px 0;padding:9px;font:12px system-ui,sans-serif}.source-fold summary{cursor:pointer;font-weight:700}.source-list{display:grid;gap:5px;margin-top:8px}.source-row{padding:6px;border-top:1px solid #e0e7e4;overflow-wrap:anywhere}.source-row small{color:#6d8389}.section-head{border-bottom:1px solid #adc0c4;padding-bottom:10px}.section-head p:last-child{font:13px system-ui,sans-serif;color:#526c78}.report-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(240px,.65fr);gap:20px;margin-top:16px}.report-form,.report-help{border:1px solid #b8c8c8;background:#fffdf8;padding:17px;min-width:0}.report-help h3{margin:0 0 9px}.report-help p{font:12px/1.5 system-ui,sans-serif;color:#58727c}.task-selector,.task-fields label{display:grid;gap:6px;color:#4a6975;font:650 12px system-ui,sans-serif;min-width:0}.task-selector select,.task-fields input{min-height:38px;width:100%;min-width:0;border:1px solid #a9bbbb;border-radius:3px;background:#fffefb;color:var(--ink);padding:7px 9px}.task-context{padding:10px 0;color:#4e6976;font:12px/1.6 system-ui,sans-serif}.task-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:15px}.primary{border:1px solid #205d88;border-radius:3px;background:var(--blue);color:white;padding:8px 14px;font:700 12px system-ui,sans-serif}.field-error{margin-top:10px;padding:8px;border-left:3px solid #ba5042;background:#fff1eb;color:#9b352e;font:12px system-ui,sans-serif}.receipt{margin-top:12px;padding:10px;border-left:4px solid var(--blue);background:#edf5fa;color:#31556a;font:12px/1.5 system-ui,sans-serif;white-space:pre-line}.record-item{border-bottom:1px solid #d1dddd;padding:11px 3px;font:12px/1.5 system-ui,sans-serif}.record-item strong{display:block;font-size:15px}.record-item small{color:#63808a}.confirm-dialog{width:min(540px,94vw);max-height:90vh;overflow:auto;border:1px solid #7f9ca6;background:var(--paper);color:var(--ink);box-shadow:0 15px 50px #152d3d58}.confirm-dialog::backdrop{background:#0d2a3a9e}.confirm-dialog h2{margin:0}.confirm-dialog p,#confirm-summary{font:13px/1.6 system-ui,sans-serif;white-space:pre-line}
@media(max-width:1100px){.school-mark{display:none}.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.group:nth-child(n){border-bottom:1px solid #678996;padding:10px 14px 8px 0}.group:nth-child(even){padding-left:14px}.group:nth-last-child(-n+2){border-bottom:0}.home-heading{display:block}.home-heading #data-note{margin-top:2px}}
@media(max-width:680px){.page-shell{padding:13px}.masthead{display:block}.brand-line{gap:9px;flex-wrap:wrap}.brand-line h1{font-size:30px}.brand-line p{font-size:17px}.brand-divider{height:23px}.mast-right{justify-content:flex-end;margin-top:7px}.toolbar{align-items:start;display:block}.date-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.date-controls label,.date-controls input,.date-controls select{min-width:0;width:100%}.date-controls .light-button{justify-self:start}.person-wrap{margin-top:5px}.person-button{margin-left:auto}.period-note{line-height:1.4}.dashboard-grid{display:block}.group:nth-child(n){padding:12px 0;border-bottom:1px solid #678996}.group:last-child{border-bottom:0}.metric{grid-template-columns:50px minmax(0,1fr) auto}.metric-project{grid-template-columns:subgrid;min-height:42px}.project-label{grid-column:1;grid-row:1}.metric-value{grid-column:2;grid-row:1;font-size:18px}.metric-aux{grid-column:3;grid-row:1;font-size:10px}.track{grid-column:1/-1;grid-row:2;width:100%;height:10px}.detail-head{display:block}.detail-columns,.detail-columns.single,.report-layout{display:block}.detail-card,.report-help{margin-top:12px}.task-fields{grid-template-columns:1fr}.trend-svg{height:210px}footer{flex-wrap:wrap;gap:4px}}
@media(max-width:355px){.brand-line h1{font-size:27px}.metric{grid-template-columns:46px minmax(0,1fr) auto;column-gap:3px}.metric-value{font-size:16px}.metric-aux{font-size:9px;max-width:75px;padding-left:3px}.project-label{font-size:10px}.view-nav{gap:9px}.view-nav button{font-size:12px}}
.task-import{margin-top:15px;border-top:1px solid #d3dfdf;padding-top:10px;color:#4a6873;font:12px/1.5 system-ui,sans-serif}.task-import summary{cursor:pointer;font-weight:700}.task-import p{margin:7px 0}.task-import a{display:inline-block;margin:4px 12px 8px 0}.task-import input[type=file]{display:block;max-width:100%;margin:4px 0 8px}.task-import label{display:block;margin:6px 0}.task-import select{display:block;max-width:100%;padding:5px;border:1px solid #a9bbbb;background:#fffefb}.task-import #task-import-result{white-space:pre-wrap;overflow-wrap:anywhere}
.point-table-wrap{margin-top:8px;max-width:100%;overflow-x:auto}.point-table{width:100%;border-collapse:collapse;font:12px/1.4 system-ui,sans-serif;white-space:nowrap}.point-table th,.point-table td{text-align:left;border-bottom:1px solid #d9e3e2;padding:6px 10px}.point-table th{color:#4e6c79;background:#f0f4f1}.point-table td:not(:first-child){font-variant-numeric:tabular-nums}.older-points{margin-top:6px;color:#3d6880;font:12px system-ui,sans-serif}.older-points summary{cursor:pointer;padding:6px}.older-points .point-table{margin-top:4px}
.composition-heading,.composition-hint,.composition-wrap{grid-column:1/-1}.composition-heading{margin:8px 0 0;font-size:17px}.composition-hint{margin:0;color:#637d85;font:12px/1.5 system-ui,sans-serif}.composition-wrap{max-width:100%;min-width:0;overflow-x:auto;border:1px solid #c2d1d0;border-radius:3px;background:#fffefa}.composition-table{width:100%;min-width:550px;border-collapse:collapse;font:12px/1.45 system-ui,sans-serif;white-space:nowrap}.composition-table th,.composition-table td{border-bottom:1px solid #dbe4e1;padding:6px 9px;text-align:left}.composition-table th{background:#eef4f3;color:#365d6e;font-weight:700}.composition-table td{font-variant-numeric:tabular-nums}.composition-table input{width:90px;min-width:90px;min-height:32px;padding:5px 7px;border:1px solid #a9bbbb;background:#fff;color:var(--ink);font:13px system-ui,sans-serif}.composition-table .composition-sum{font-weight:700;color:#285879}.composition-summary{padding:8px 10px;font:12px/1.5 system-ui,sans-serif}.composition-totals{display:flex;flex-wrap:wrap;gap:5px 14px;margin:7px 0;color:#456b79;font:12px/1.5 system-ui,sans-serif}.composition-totals strong{width:100%;color:#285879}.composition-warning{margin:6px 0 0;color:#ad493a;font-weight:700}.composition-ok{margin:6px 0 0;color:#23725a}.composition-legacy{color:#8c6656;font:12px/1.5 system-ui,sans-serif}.source-row>.composition-wrap,.record-item>.composition-wrap,#confirm-summary>.composition-wrap{margin-top:8px}#confirm-summary .composition-table{min-width:480px}.record-item,.source-row,#confirm-summary{min-width:0;max-width:100%}

/* v0.2.1: keep the accepted editorial layout; clarify hierarchy. */
.project-key{display:none}.toolbar{padding-top:16px;padding-bottom:8px}.period-note{margin:2px 0 14px;font-size:11px}.view-nav{padding-bottom:7px;margin-bottom:16px}.home-heading{margin:0 0 12px}.group:nth-child(-n+3){padding-bottom:38px}.group:nth-child(n+4){padding-top:20px}.metric{grid-template-columns:78px minmax(30px,1fr) minmax(82px,auto) minmax(42px,auto)}.project-label .crown{display:inline-flex;align-items:center;justify-content:center;width:21px;height:21px;border:1.5px solid #ad7929;border-radius:50%;background:#fff0c9;color:#906013;font:700 17px system-ui,sans-serif;flex-shrink:0}.back-button{background:#245f83;color:#fff;border-color:#245f83;padding:10px 18px;font-size:15px;box-shadow:0 2px 5px #18344a20;margin-bottom:20px}.detail-view{padding-top:0}.trend-svg{border-radius:5px;background:#fffdf8}.metric-project{min-height:31px}
@media(max-width:1100px){.group:nth-child(n){padding-top:16px;padding-bottom:20px}}
@media(max-width:680px){.metric{grid-template-columns:78px minmax(0,1fr) auto}.group:nth-child(n){padding:18px 0 24px}.view-nav{margin-bottom:12px}.toolbar{padding-top:12px}.project-label{font-size:11px}}
.metric{grid-template-columns:23px 83px minmax(30px,1fr) minmax(82px,auto) minmax(42px,auto)}.thumb-slot{display:flex;align-items:center;justify-content:center;width:23px;height:24px}.thumb-icon{display:none;width:20px;height:20px;color:#ba832b}.thumb-icon.active{display:block}.project-label{font-size:13px;font-weight:700}.metric-aux:empty{border-left:0;padding-left:0}.metric-value.missing{font-size:13px}.metric-reason{display:none}
.enrollment-composition{margin:16px 0 19px;border-top:1px solid #b1c4c6;padding-top:12px}.enrollment-composition h3{margin:0 0 10px;font-size:20px}.enrollment-composition-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.enrollment-composition-grid.single{grid-template-columns:minmax(0,1fr)}.enrollment-composition-card{min-width:0;padding:12px;border:1px solid #c8d4d4;background:#fffdf7}.enrollment-composition-card h4{margin:0 0 7px;font-size:17px}.enrollment-composition-card h4.blue{color:var(--blue)}.enrollment-composition-card h4.orange{color:#a9651c}.enrollment-composition-card .composition-wrap{margin-top:8px}
@media(max-width:680px){.metric{grid-template-columns:23px 77px minmax(0,1fr) auto}.thumb-slot{grid-column:1;grid-row:1}.project-label{grid-column:2;grid-row:1;font-size:12px}.metric-value{grid-column:3;grid-row:1;font-size:clamp(14px,4vw,18px)}.metric-aux{grid-column:4;grid-row:1;max-width:69px}.track{grid-column:1/-1;grid-row:2}}
@media(max-width:680px){.enrollment-composition-grid{display:block}.enrollment-composition-card+.enrollment-composition-card{margin-top:12px}}
.project-label.winner{font-weight:800}.thumb-slot.award{border-radius:50%;background:#efe2bd;box-shadow:inset 0 0 0 1px #c9a45833}.thumb-slot.award .thumb-icon{width:17px;height:17px;color:#8d631e}.thumb-slot.award .thumb-icon path{fill:#fff9e6}.winner-blue .project-label{color:#2468a0}.winner-orange .project-label{color:#a76520}.is-winner .metric-value{font-weight:800}.trend-chart{position:relative;min-width:0}.trend-tooltip{position:absolute;z-index:2;top:8px;width:180px;max-width:calc(100% - 55px);padding:8px 10px;border:1px solid #8da9b1;border-radius:3px;background:#fffdf7;box-shadow:0 4px 16px #18344a30;color:var(--ink);font:12px/1.4 system-ui,sans-serif;pointer-events:none}.trend-tooltip strong{display:block;margin-bottom:5px}.trend-tooltip-row{display:flex;justify-content:space-between;gap:9px;padding:3px 0;border-top:1px solid #dfe6e3}.trend-tooltip-row b{font-variant-numeric:tabular-nums;white-space:nowrap}
.metric-shell{position:relative;min-width:0}.metric-shell+.metric-shell .metric{border-top:1px dashed #cbd6d5}.metric-shell .metric{border-top:0}.metric-top{padding-right:42px}.metric-period{margin-left:auto;color:#476c78;font:10px system-ui,sans-serif;white-space:nowrap}.metric-period+.metric-more{margin-left:0}.metric-date-button{position:absolute;top:4px;right:0;padding:3px 4px;border:1px solid #b2c1c2;border-radius:2px;background:#fffdf6;color:#2d657b;font:10px system-ui,sans-serif}.metric-date-button:hover{background:#e9f1f2}.detail-period-control{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.detail-period-control .light-button{font-size:12px}.metric-date-dialog{width:min(450px,94vw);max-height:90vh;overflow:auto;border:1px solid #7f9ca6;background:var(--paper);color:var(--ink);box-shadow:0 15px 50px #152d3d58}.metric-date-dialog::backdrop{background:#0d2a3a9e}.metric-date-dialog h2{margin:0 0 7px}.metric-date-dialog p{font:12px/1.5 system-ui,sans-serif;color:#536f7c}.metric-date-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.metric-date-fields label{display:grid;gap:5px;color:#496a78;font:700 12px system-ui,sans-serif}.metric-date-fields input{min-width:0;width:100%;padding:8px;border:1px solid #a9bbbb;background:#fffefa;color:var(--ink)}.task-context strong,.task-context span,.task-context small{display:block}.task-context span{margin-top:2px}.task-context small{margin-top:4px;color:#6a8187}.task-list-status{margin:0 0 8px;color:#426879;font:700 12px system-ui,sans-serif}
@media(max-width:680px){.metric-top{padding-right:39px}.metric-period{font-size:9px}.metric-more{font-size:9px}.metric-date-fields{grid-template-columns:1fr}}
@media(max-width:680px){.metric-aux.admission-aux{width:80px;max-width:80px;white-space:normal;overflow:visible;text-overflow:clip;line-height:1.2}}

/* v0.4.1: quiet award and read-only per-metric periods. */
.metric-top{padding-right:0;gap:9px;flex-wrap:wrap}.metric-period{margin-left:0;font-size:10px;color:#71818a}.metric-period+.metric-more{margin-left:auto}.metric-top h4{flex-shrink:0}.metric-more{white-space:nowrap}.metric-period{white-space:nowrap}@media(max-width:680px){.metric-top{padding-right:0;gap:8px}.metric-period{font-size:10px}}
.task-controls{margin:7px 0 15px;padding:11px 12px;border:1px solid #c5d3d2;background:#f6faf7;min-width:0}.task-controls h3{margin:0 0 8px;font-size:16px}.task-cutoff-controls{display:flex;align-items:end;flex-wrap:wrap;gap:9px}.task-cutoff-controls label{display:grid;gap:4px;color:#4a6975;font:650 12px system-ui,sans-serif}.task-cutoff-controls output,.task-cutoff-controls input{display:block;min-height:35px;min-width:130px;padding:7px 9px;border:1px solid #a9bbbb;border-radius:3px;background:#fffefb;color:var(--ink);font:13px system-ui,sans-serif}.task-cutoff-controls output{background:#eef2ed}.task-control-hint{margin:7px 0;color:#657f84;font:11px/1.5 system-ui,sans-serif}.task-action-status{margin:8px 0;padding:7px 9px;border-left:3px solid #2d7584;background:#eaf4f4;color:#255b68;font:12px/1.5 system-ui,sans-serif}.task-action-status.error{border-color:#ba5042;background:#fff1eb;color:#9b352e}.waive-button{margin-top:4px;border:1px solid #aa8c72;border-radius:3px;background:#fff9ee;color:#80583b;padding:6px 10px;font:700 12px system-ui,sans-serif}.task-segments{display:block;margin-top:5px;color:#2e6472;font-weight:700}.upcoming-section{margin-top:16px;border-top:1px solid #b6c9c8;padding-top:12px}.upcoming-section h3{margin:0 0 9px;font-size:18px}.upcoming-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.upcoming-card{min-width:0;padding:9px 11px;border:1px solid #c6d5d2;background:#fffdf7;font:12px/1.5 system-ui,sans-serif}.upcoming-card strong,.upcoming-card span{display:block}.upcoming-card strong{margin-bottom:3px;color:#315f70}.upcoming-card .task-segments{font-weight:600}.waived-section{margin-top:13px;border-top:1px solid #d2dcda;padding-top:9px;color:#496a75;font:12px/1.5 system-ui,sans-serif}.waived-section summary{cursor:pointer;font-weight:700}.waived-item{border-bottom:1px solid #e0e8e4;padding:8px 0}.waived-item strong,.waived-item span{display:block}.waive-note-label{display:grid;gap:6px;margin-top:11px;color:#496a75;font:700 12px system-ui,sans-serif}.waive-note-label textarea{width:100%;min-height:72px;padding:8px;border:1px solid #a9bbbb;background:#fffefb;color:var(--ink);font:13px system-ui,sans-serif;resize:vertical}.task-empty{color:#687f83;font:12px/1.5 system-ui,sans-serif}
@media(max-width:680px){.task-cutoff-controls{align-items:stretch}.task-cutoff-controls label{flex:1 1 120px}.task-cutoff-controls output,.task-cutoff-controls input{min-width:0;width:100%}.upcoming-list{grid-template-columns:1fr}}
.metric-project.range-mismatch{min-height:41px}.project-label.has-range{display:flex;flex-direction:column;align-items:flex-start;gap:1px;line-height:1.05}.project-range-note{color:#647c82;font:9px/1.1 system-ui,sans-serif;white-space:nowrap}.detail-actual-range{margin:6px 0 0;color:#315f70!important;font-weight:700!important}.difference.unavailable{border-color:#9baeb0;background:#f1f4f1;color:#5a7378}
/* v0.6: teacher reporting workflow; the accepted overview remains unchanged. */
.view-nav{gap:25px}.view-nav button{font:750 17px system-ui,sans-serif;padding:9px 6px}.date-controls{align-items:center}.semester-date-hint{align-self:end;color:#426879;font:11px/1.4 system-ui,sans-serif;padding-bottom:5px}.report-view{padding-top:4px}.report-top,.records-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid #aebfc1;padding:6px 0 12px}.report-top h2,.records-heading h2{font-size:27px;margin:0 0 4px}.report-top .task-list-status{margin:0;font:700 15px system-ui,sans-serif;color:#2c6076}.task-notifications{display:grid;gap:6px;margin:13px 0}.task-notification{margin:0;padding:8px 11px;border-left:3px solid #4286a2;background:#eef5f7;font:12px/1.5 system-ui,sans-serif}.task-notification.dueSoon{border-color:#c0812e;background:#fff4dd}.task-notification.missed{border-color:#b95645;background:#fff0eb}.task-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:13px 0}.task-card{text-align:left;border:1px solid #bbccca;border-radius:4px;background:#fffefa;color:var(--ink);padding:11px 13px;min-width:0}.task-card.selected{border-color:#37799b;background:#edf5f7;box-shadow:inset 3px 0 var(--blue)}.task-card strong,.task-card span{display:block}.task-card strong{font-size:15px}.task-card span{margin-top:4px;color:#5b7680;font:12px/1.4 system-ui,sans-serif}.report-form{max-width:860px;margin:13px 0 0;padding:19px}.task-context{padding:0 0 13px}.task-context h3{font-size:20px;margin:0 0 4px;color:#244f67}.task-context p{font-size:15px;font-weight:700;margin:0}.task-context small{display:block;margin-top:4px}.task-controls{padding:8px 12px;margin:0 0 17px;background:#f7faf8}.task-controls summary{cursor:pointer;font:700 13px system-ui,sans-serif;color:#32647a}.task-cutoff-controls{margin-top:12px}.task-fields input[readonly]{background:#edf2ef;color:#3e6675;font-weight:800}.form-actions{justify-content:space-between}.records-filters{display:flex;align-items:end;flex-wrap:wrap;gap:10px;margin:15px 0}.records-filters label{display:grid;gap:4px;color:#4a6975;font:650 12px system-ui,sans-serif}.records-filters select,.records-filters input{min-height:35px;border:1px solid #a9bbbb;border-radius:3px;background:#fffefb;color:var(--ink);padding:6px}.record-item{padding:13px 8px;background:#fffdf8;border:1px solid #d1dddd;margin:8px 0}.record-item.status-missed{border-left:4px solid #b95645}.record-item.status-waived{border-left:4px solid #c0812e}.record-item.status-normal{border-left:4px solid var(--blue)}.composition-table .composition-sum{background:#e0eeed;color:#164b62;font-size:14px;font-weight:800}.composition-table th{background:#e5efed;font-size:13px}.composition-totals{border-top:2px solid #adc5c4;padding-top:7px;font-size:13px}.composition-totals strong{font-size:15px}.composition-summary{background:#f4f9f6}.waive-button{margin-top:0}
@media(max-width:680px){.view-nav{gap:18px}.view-nav button{font-size:16px}.semester-date-hint{grid-column:1/-1;padding:3px 0}.task-cards{grid-template-columns:1fr}.report-top h2,.records-heading h2{font-size:23px}.report-form{padding:13px}.records-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.records-filters label,.records-filters select,.records-filters input{min-width:0;width:100%}.records-filters button{justify-self:start}.form-actions{flex-wrap:wrap}}
.composition-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding-top:9px}.composition-totals span,.composition-totals strong{display:block;min-width:0;padding:7px 9px;background:#eaf3ef;border:1px solid #c4d9d3;color:#24576b;font-weight:800}.composition-totals strong{grid-column:1/-1;background:#dcece7;font-size:15px}.composition-neutral{margin:2px 0;color:#6b8188;font:12px system-ui,sans-serif}
@media(max-width:680px){.composition-totals{grid-template-columns:repeat(2,minmax(0,1fr))}}
.composition-totals.retention-totals{grid-template-columns:repeat(2,minmax(0,1fr));border:0;padding-top:0}.composition-totals.retention-totals strong{grid-column:auto;margin:0;padding:11px 13px;background:#e0eee9;border-color:#a8c8bf;color:#1e5c6f;font-size:17px}.composition-summary .composition-neutral{margin:7px 0 0}
@media(max-width:420px){.composition-totals.retention-totals{grid-template-columns:1fr}}

/* Grade-only forms fit narrow screens without hiding the second field. */
.composition-table.grade-composition,#confirm-summary .composition-table.grade-composition{min-width:0;table-layout:fixed;white-space:normal}.grade-composition th,.grade-composition td{padding:7px 5px;overflow-wrap:anywhere}.composition-table.grade-composition input{width:100%;min-width:0;box-sizing:border-box}
