:root{--ink:#382d50;--violet:#7352bd;--violet-dark:#583593;--lilac:#f1ecfa;--gold:#e7b751;--paper:#fffefa;--muted:#756b83;--border:#e4ddec;--white:#fff;--green:#31634b;--red:#963e43;--radius:24px;font-family:"Segoe UI",Arial,sans-serif;color:var(--ink);background:#f8f6fc;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}button{border:0;background:none}button svg{flex-shrink:0}button,a{touch-action:manipulation}a{color:inherit}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:"Trebuchet MS","Segoe UI",sans-serif}h1{font-size:34px;line-height:1.13;letter-spacing:-1px}h2{font-size:23px;line-height:1.2;letter-spacing:-.55px}h3{font-size:16px;line-height:1.4}p{line-height:1.6}svg{flex-shrink:0}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--violet);outline-offset:3px}input,select,textarea{background:var(--white);border:1px solid #cfc4df;border-radius:12px;min-height:46px;padding:10px 13px;max-width:100%}input:disabled,select:disabled,textarea:disabled{background:#f2eff6;color:var(--muted)}textarea{resize:vertical}label{font-size:14px}input[type=checkbox],input[type=radio]{accent-color:var(--violet);min-height:20px;width:20px;height:20px;padding:0;flex-shrink:0}fieldset{padding:0;margin:0;border:0;min-width:0}summary{cursor:pointer;min-height:44px;padding:13px 0;font-size:13px;color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:absolute;top:-100px;left:16px;z-index:10;background:var(--white);padding:14px}.skip-link:focus{top:8px}.demo-strip,.mode-strip{background:#ece5f7;color:#655478;font-size:11px;padding:8px 16px;text-align:center;line-height:1.5}.mode-strip{background:var(--lilac)}.site-header{max-width:1140px;margin:auto;padding:23px 30px;display:flex;align-items:center;justify-content:space-between;gap:18px}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;font-family:"Trebuchet MS",sans-serif;font-size:23px;font-weight:800;letter-spacing:-.9px;line-height:1.03}.brand-line{display:block;font-size:17px;letter-spacing:0}.brand-mark{display:grid;place-items:center;width:45px;height:45px;border-radius:15px;background:var(--violet);color:#ffdc8d;font-size:34px;transform:rotate(-7deg)}.header-note{font-size:12px;color:var(--muted)}.account{display:flex;align-items:center;gap:17px;font-size:12px;min-width:0}.account-name{max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.shell{max-width:1080px;margin:12px auto 0;padding:0 0 35px;min-height:65vh}.page-footer{max-width:1080px;margin:0 auto;padding:10px 0 30px;border-top:1px solid var(--border);font-size:11px;color:var(--muted);line-height:1.7;display:flex;justify-content:space-between;gap:20px}.eyebrow{font-size:10px;font-weight:750;letter-spacing:1.4px;text-transform:uppercase;color:var(--violet);margin-bottom:10px}.muted{font-size:14px;color:var(--muted);line-height:1.65}.panel{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:28px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 17px;min-height:46px;border-radius:12px;font-size:13px;font-weight:650;line-height:1.4;border:1px solid transparent;text-align:center}.primary{background:var(--violet);color:var(--white)}.primary:hover:not(:disabled){background:var(--violet-dark)}.secondary{background:#f4f0fa;border-color:#ded4ed;color:#68499b}.secondary:hover:not(:disabled){background:#eae0f7}.quiet{color:#695478}.quiet:hover:not(:disabled){background:var(--lilac)}.danger{background:#8c4449;color:#fff}.danger:hover:not(:disabled){background:#703439}.text-button{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-size:12px;font-weight:650;color:var(--violet-dark);padding:7px 3px;text-align:left}.text-button:hover:not(:disabled){text-decoration:underline;text-underline-offset:3px}.full{width:100%}.button-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.fine-print{font-size:11px;line-height:1.6;color:var(--muted)}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px}.section-symbol{color:#ad99cb}.step-label{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:6px}.message{border:1px solid var(--border);border-radius:16px;padding:17px 20px;margin-bottom:18px;font-size:13px;overflow-wrap:anywhere}.message p{margin-top:5px}.message strong{display:block;font-size:14px}.message small{display:block;line-height:1.6;font-size:11px;margin-top:8px}.message.error{border-color:#e7bcc2;background:#fff1f2;color:#82393d}.message.pending{border-color:#dfc17d;background:#fff8e8;color:#765d26}.message.success{display:flex;align-items:center;gap:10px;background:#edf7f1;border-color:#c4dfce;color:var(--green)}.message.success p{margin:0}.message.pending .button.secondary{color:#765d26;background:#fffdf6;border-color:#ddc38d}.boot,.no-script{padding:50px 22px;text-align:center}.boot .brand-mark{margin:auto auto 25px}.boot p{margin-top:15px}.empty-state{text-align:center;padding:44px 25px;color:var(--muted)}.empty-state>svg{color:#b19ccf;margin-bottom:12px}.empty-state h1,.empty-state h2,.empty-state h3{color:var(--ink);margin-bottom:12px}.empty-state p{max-width:420px;margin:auto;font-size:13px}.empty-inline{font-size:13px;line-height:1.7;color:var(--muted);padding:25px 4px}.loading-dot{width:18px;height:18px;display:block;margin:0 auto 20px;border:3px solid var(--border);border-top-color:var(--violet);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.login-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:28px;align-items:center;padding:22px 32px 45px}.login-story{position:relative;min-height:490px;padding:16px 0 0}.login-story h1{font-size:45px;line-height:1.07;letter-spacing:-1.7px;margin-bottom:19px}.login-story>p:not(.eyebrow){color:var(--muted);font-size:14px}.login-avatar{position:relative;width:350px;max-width:100%;height:245px;margin-top:6px}.login-avatar .avatar-svg{width:100%;height:280px;transform:translateY(-13px)}.login-avatar>span{position:absolute;bottom:7px;right:7px;transform:rotate(5deg);font-size:11px;background:#fff2c9;border:1px solid #ead8a2;padding:7px 12px;border-radius:20px;color:#856922}.login-panel{padding:35px;background:var(--paper);box-shadow:0 14px 42px #37254c06}.login-panel h2{font-size:28px;margin-bottom:12px}.demo-profiles{display:grid;gap:12px;margin:25px 0 10px}.profile-button{display:flex;align-items:center;gap:13px;padding:18px 15px;border:1px solid #dbd0ea;border-radius:17px;background:#fff;width:100%;text-align:left;transition:transform .15s,border-color .15s}.profile-button:hover:not(:disabled){border-color:var(--violet);transform:translateY(-2px)}.profile-button>span:nth-child(2){flex:1;min-width:0}.profile-button strong{display:block;font-family:"Trebuchet MS",sans-serif;font-size:17px}.profile-button small{display:block;color:var(--muted);font-size:11px;margin-top:5px;line-height:1.5}.profile-button>svg{color:#a692c2}.profile-icon{width:42px;height:42px;display:grid;place-items:center;background:var(--lilac);color:var(--violet);border-radius:13px}.profile-icon.gold{background:#fff2cf;color:#a07a22}.additional-profiles .button{width:100%;margin:3px 0 7px;font-size:12px}.credentials{border-top:1px solid var(--border);margin-top:10px;padding-top:7px}.credentials form{display:grid;gap:8px;padding-top:5px}.credentials form label:not(:first-child){margin-top:7px}.credentials .button{margin-top:10px}
.cabinet-heading{display:flex;align-items:start;justify-content:space-between;gap:20px;margin:8px 0 24px}.cabinet-heading .muted{margin-top:10px;max-width:650px}.class-toolbar{display:flex;align-items:center;gap:15px;margin-bottom:21px}.class-toolbar label{font-size:12px;font-weight:700}.class-toolbar select{max-width:440px;min-width:0;width:100%;font-size:13px}.tabs{display:flex;gap:8px;margin-bottom:25px;flex-wrap:wrap}.tab{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:12px 18px;min-height:46px;border-radius:12px;font-size:13px;background:#eeebf4;color:#776986}.tab.active{background:#e5daf4;color:#583491;font-weight:650}.work-layout{display:grid;grid-template-columns:minmax(0,1fr) 295px;gap:22px;align-items:start}.criteria{display:grid;gap:10px}.criterion{display:flex;align-items:center;gap:12px;padding:15px 16px;border:1px solid var(--border);border-radius:15px;cursor:pointer;background:#fdfcfe}.criterion.selected{border-color:#ad94d2;background:#f3edf9}.criterion>span:not(.points){flex:1;min-width:0}.criterion strong{font-size:14px;display:block;line-height:1.4}.criterion small{font-size:11px;color:var(--muted);display:block;margin-top:5px;line-height:1.5}.criterion .points{color:#88621e;white-space:nowrap;font-size:16px;font-weight:750}.recipients-heading{margin:29px 0 18px}.count-badge{border:1px solid var(--border);background:#f8f5fc;border-radius:30px;padding:7px 12px;font-size:12px;font-weight:650;color:var(--violet-dark)}.search-form{display:flex;gap:8px;margin-bottom:17px}.search-input{display:flex;align-items:center;gap:8px;border:1px solid #d4c9e2;border-radius:12px;background:#fff;flex:1;min-width:0;padding-left:12px;color:#a18cad}.search-input input{min-width:0;border:0;padding-left:0;width:100%;font-size:13px;background:transparent}.search-input:focus-within{outline:3px solid var(--violet);outline-offset:2px}.search-input input:focus-visible{outline:0}.search-meta{font-size:12px;color:var(--muted);margin:-7px 0 10px;overflow-wrap:anywhere}.search-meta .text-button{margin-left:8px}.roster{border:1px solid var(--border);border-radius:16px;overflow:hidden}.pupil{display:flex;align-items:center;gap:12px;padding:12px 14px;border-top:1px solid #ece6f2;cursor:pointer;min-height:71px;background:#fff}.pupil:first-child{border-top:0}.pupil.selected{background:#f6f1fc}.pupil:has(input:focus-visible){outline:3px solid var(--violet);outline-offset:-3px}.pupil input:focus-visible{outline:none}.pupil-initial{height:33px;width:33px;border-radius:11px;background:#eae3f4;color:#9174af;font-size:13px;display:grid;place-items:center;flex-shrink:0}.pupil-copy{flex:1;min-width:0}.person-name{font-size:13px;line-height:1.4;display:block;font-weight:650;overflow-wrap:anywhere}.person-id{display:block;font-size:10px;line-height:1.5;color:var(--muted);margin-top:3px;letter-spacing:.15px}.check-mark{color:var(--violet);opacity:0;display:flex}.pupil.selected .check-mark{opacity:1}.pagination{display:flex;justify-content:space-between;gap:5px;align-items:center;margin-top:15px}.pagination>span{color:var(--muted);font-size:11px;white-space:nowrap}.pagination .button{font-size:12px;padding:10px}.selection-panel{position:sticky;top:20px;border-radius:24px;overflow:hidden;border:1px solid #ddd2ee;background:#fff}.selection-note{padding:24px 24px 0;background:var(--lilac);position:relative;min-height:305px;overflow:hidden}.selection-note h2{font-size:25px;margin:10px 0}.selection-note p{font-size:12px;color:var(--muted);max-width:210px}.selection-avatar{height:120px;width:180px;margin-left:auto;margin-top:7px;overflow:hidden}.selection-avatar .avatar-svg{height:190px;transform:translateY(-25px);width:200px}.selection-summary{padding:21px}.selection-total{display:flex;justify-content:space-between;align-items:center;font-size:12px}.selection-total strong{font-size:27px;font-family:"Trebuchet MS",sans-serif}.selected-criterion{font-size:12px;color:var(--muted);margin:13px 0 8px;display:flex;gap:15px;justify-content:space-between}.selected-criterion span{white-space:nowrap;color:#987329;font-weight:650}.selection-summary>.button{margin-top:17px;font-size:12px;padding:13px 8px}.selection-summary>.fine-print{text-align:center;margin-top:10px}.selected-list{list-style:none;padding:0;margin:4px 0 10px;max-height:290px;overflow:auto}.selected-list li{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--border);padding:8px 0;gap:7px}.selected-list .person-name{font-size:11px}.selected-list .person-id{font-size:9px}.remove-person{min-width:44px;height:44px;font-size:24px;color:var(--muted)}.preview-panel{max-width:720px;margin:0 auto;padding:32px}.preview-panel>h2{margin-bottom:12px;font-size:28px}.preview-reward{display:flex;align-items:center;gap:15px;padding:20px;margin:25px 0;background:#fff8e5;border:1px solid #efdbac;border-radius:18px;color:#876826}.preview-reward>div{flex:1;min-width:0}.preview-reward strong{font-size:16px;display:block;line-height:1.5}.preview-reward small{display:block;font-size:11px;line-height:1.5;margin-top:6px}.preview-reward .preview-total{font-size:25px;white-space:nowrap;text-align:right}.preview-total small{font-size:10px;font-weight:400}.preview-list{margin:16px 0 22px;padding-left:28px}.preview-list li{padding:9px 0 9px 5px;border-bottom:1px solid #eee8f5;font-size:12px;color:var(--muted)}.preview-list .person-name{color:var(--ink);font-size:14px}.preview-panel .button-row{justify-content:flex-end;margin-top:25px}
.student-hero{display:grid;grid-template-columns:1fr 270px;align-items:center;min-height:245px;border-radius:27px;border:1px solid #dbcee9;background:var(--lilac);overflow:hidden;padding:29px 40px 25px;margin-bottom:15px;position:relative}.student-score{position:relative;z-index:1}.student-score .eyebrow{margin-bottom:3px}.balance{font-family:"Trebuchet MS",sans-serif;font-size:75px;font-weight:800;line-height:1.1;letter-spacing:-4px;display:flex;gap:13px;align-items:center}.balance>span{color:#daa438;font-size:42px;letter-spacing:0}.student-score h2{font-size:19px;letter-spacing:0;margin-top:4px}.student-score>p:last-child{font-size:12px;margin-top:11px;color:var(--muted)}.student-avatar{height:208px;position:relative;text-align:center}.student-avatar .avatar-svg{width:255px;height:230px;margin-top:-15px}.student-avatar>span{position:absolute;bottom:-6px;left:50%;transform:translateX(-50%) rotate(4deg);font-size:11px;border:1px solid #d1c1e5;border-radius:20px;padding:6px 12px;background:#faf6ff;white-space:nowrap;color:#82649c}.student-details{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:15px 23px;background:#fff;border:1px solid var(--border);border-radius:17px;margin-bottom:26px}.student-details>div{display:flex;gap:12px;align-items:center}.week-symbol{color:#ae8b40}.student-details strong{font-size:14px;display:block}.student-details small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.season{font-size:11px;color:var(--muted)}.history-list{list-style:none;padding:0;margin:0}.history-entry{display:flex;gap:15px;align-items:flex-start;border-top:1px solid #ece6f2;padding:21px 0}.history-entry:first-child{border-top:0;padding-top:0}.history-entry:last-child{padding-bottom:0}.entry-icon{display:grid;place-items:center;min-width:38px;height:38px;border-radius:12px;background:#fff3d3;color:#b18c35}.correction-entry .entry-icon{color:#9581ae;background:#f1edf6}.entry-copy{flex:1;min-width:0}.entry-copy h3{font-size:15px}.entry-person{margin-top:8px}.entry-person .person-name{font-size:12px;font-weight:500}.entry-date{font-size:10px;color:var(--muted);margin-top:6px}.entry-amount{font-family:"Trebuchet MS",sans-serif;font-size:22px;color:#8062ad;white-space:nowrap;display:flex;align-items:center;gap:5px}.entry-amount span{font-size:14px;color:#c5a451}.entry-reason{font-size:12px;line-height:1.7;margin-top:9px;color:#766480;overflow-wrap:anywhere}.corrected-label{display:inline-block;font-size:10px;border-radius:7px;background:#f1edf6;color:#7a6b89;padding:6px 8px;margin-top:8px}.correction-button{font-size:11px;padding-bottom:0;margin-top:3px}.reverse-form{background:#f9f6fc;border:1px solid #e2d7ef;padding:17px;border-radius:14px;margin-top:14px}.reverse-form label{display:block;font-size:12px;font-weight:650;margin-bottom:9px}.reverse-form textarea{width:100%;font-size:13px;line-height:1.5;display:block}.reverse-form .fine-print{margin-top:10px}.reverse-form .button-row{gap:7px;margin-top:12px}.reverse-form .button{font-size:11px;padding:10px 11px}.kindness-note{display:flex;gap:13px;align-items:center;background:#edf4ef;color:#547761;border:1px solid #dce9df;padding:17px 22px;border-radius:17px;margin-top:20px;font-size:12px}.permission-card{max-width:720px;padding:33px}.permission-card>svg{color:#9274b8;margin-bottom:20px}.permission-card h2{margin-bottom:17px}.permission-card>p{font-size:14px;margin-bottom:13px}.school-list{margin-top:23px;border-top:1px solid var(--border);padding-top:17px}.school-list p{margin-bottom:10px;font-size:13px}.school-list span{display:block;color:var(--muted);font-size:12px}
@media(max-width:1140px){.shell,.page-footer{margin-left:30px;margin-right:30px}.login-layout{padding-left:0;padding-right:0}.work-layout{grid-template-columns:minmax(0,1fr) 265px;gap:18px}.selection-note{padding:23px 20px 0}.selection-summary{padding:18px}}
@media(max-width:800px){.site-header{padding:20px 24px}.shell,.page-footer{margin-left:24px;margin-right:24px}.login-layout{gap:22px}.login-story h1{font-size:38px}.login-panel{padding:25px}.header-note{font-size:11px}.work-layout{grid-template-columns:minmax(0,1fr) 225px;gap:15px}.award-panel{padding:22px}.selection-note h2{font-size:23px}.selection-note{min-height:290px}.criterion{padding:13px 11px;gap:9px}.criterion strong{font-size:12px}.criterion small{font-size:10px}.pupil-initial{display:none}.selection-summary{padding:15px}.selection-total{font-size:11px}.page-footer{flex-direction:column;gap:4px}.student-hero{padding-left:30px;padding-right:25px;grid-template-columns:1fr 210px}.student-avatar .avatar-svg{width:220px}.login-avatar{height:245px}.account-name{max-width:160px}}
@media(max-width:620px){h1{font-size:28px;letter-spacing:-.7px}h2{font-size:21px}.site-header{padding:18px 18px;gap:10px}.brand{font-size:20px;gap:9px}.brand-line{font-size:15px}.brand-mark{width:38px;height:38px;border-radius:12px;font-size:29px}.shell{margin:7px 16px 0;padding-bottom:25px}.page-footer{margin:0 16px;padding-top:18px;font-size:10px}.header-note{max-width:115px;text-align:right;line-height:1.6;font-size:10px}.account{gap:4px;align-items:flex-end;flex-direction:column}.account-name{max-width:130px;font-size:10px}.account .text-button{min-height:28px;font-size:11px;padding:2px}.demo-strip,.mode-strip{font-size:10px;padding:7px 12px}.login-layout{display:flex;flex-direction:column;gap:22px;padding:10px 0 25px}.login-story{min-height:0;width:100%;padding:7px 0 0;position:relative}.login-story h1{font-size:35px;line-height:1.04;letter-spacing:-1px;margin-bottom:12px;padding-right:75px}.login-story>.eyebrow{font-size:8px;letter-spacing:1px;margin-bottom:12px}.login-story>p:not(.eyebrow){font-size:11px;max-width:220px}.login-avatar{position:absolute;right:-14px;bottom:-11px;width:134px;height:143px;margin:0;pointer-events:none}.login-avatar .avatar-svg{height:153px;transform:none;width:165px;margin-left:-15px}.login-avatar>span{display:none}.login-panel{width:100%;padding:25px 23px;border-radius:22px}.login-panel h2{font-size:25px}.login-panel .muted{font-size:12px}.demo-profiles{margin-top:20px;gap:10px}.profile-button{padding:16px 12px}.profile-button strong{font-size:16px}.profile-button small{font-size:10px}.profile-icon{height:38px;width:38px;border-radius:12px}.cabinet-heading{margin-bottom:19px;gap:12px}.cabinet-heading .eyebrow{font-size:9px;letter-spacing:1px;margin-bottom:8px}.cabinet-heading .muted{font-size:11px;margin-top:8px}.cabinet-heading h1{font-size:26px}.cabinet-heading>.text-button{font-size:10px;flex-shrink:0;min-height:35px}.class-toolbar{gap:10px;margin-bottom:17px}.class-toolbar label{font-size:11px}.class-toolbar select{font-size:12px;padding:10px;min-height:44px}.tabs{gap:6px;margin-bottom:20px;flex-wrap:nowrap;overflow:auto}.tab{flex:1;font-size:11px;gap:6px;padding:11px 8px;min-height:48px;line-height:1.4}.tab svg{width:17px;height:17px}.work-layout{display:flex;flex-direction:column;gap:17px}.award-panel{width:100%;padding:22px 17px;border-radius:20px}.section-heading{margin-bottom:18px}.step-label{font-size:9px}.criteria{gap:9px}.criterion{padding:14px 11px;gap:10px;border-radius:13px}.criterion strong{font-size:13px}.criterion small{font-size:10px}.criterion .points{font-size:15px}.criterion input{height:18px;width:18px;min-height:18px}.recipients-heading{margin-top:27px}.search-form{gap:7px}.search-form>.button{font-size:11px;padding:10px}.search-input{padding-left:10px;gap:7px}.search-input input{font-size:12px}.search-input svg{width:17px}.pupil{gap:10px;padding:13px 11px;min-height:71px}.pupil-initial{display:none}.person-name{font-size:12px}.person-id{font-size:10px}.check-mark svg{width:16px}.pagination .button{font-size:11px;padding:10px 7px}.pagination>span{font-size:10px}.selection-panel{position:static;width:100%;border-radius:20px}.selection-note{display:none}.selection-summary{padding:19px}.selection-total{font-size:13px}.selection-total strong{font-size:25px}.selected-criterion{font-size:12px}.selection-summary>.button{font-size:13px;min-height:49px}.preview-panel{padding:24px 20px;border-radius:20px}.preview-panel>h2{font-size:25px;margin-bottom:12px}.preview-panel>.muted{font-size:12px}.preview-reward{padding:15px 12px;gap:10px;margin:20px 0}.preview-reward>span{display:none}.preview-reward strong{font-size:14px}.preview-reward small{font-size:10px}.preview-reward .preview-total{font-size:23px}.preview-list{margin-top:13px}.preview-list .person-name{font-size:13px}.preview-panel .button-row{flex-direction:column-reverse}.preview-panel .button{width:100%;min-height:48px}.preview-panel .fine-print{font-size:10px}.student-hero{min-height:199px;padding:22px 20px;border-radius:23px;grid-template-columns:minmax(0,1fr) 114px;gap:0;margin-bottom:12px}.student-score .eyebrow{font-size:8px;letter-spacing:1px}.balance{font-size:65px;letter-spacing:-3px;gap:10px}.balance>span{font-size:31px}.student-score h2{font-size:15px;max-width:165px;line-height:1.3;margin-top:5px}.student-score>p:last-child{font-size:10px;margin-top:9px;max-width:175px}.student-avatar{height:165px;width:130px;margin-left:-12px}.student-avatar .avatar-svg{width:180px;height:184px;margin-left:-24px;margin-top:-2px}.student-avatar>span{font-size:9px;padding:4px 9px;bottom:-6px}.student-details{padding:14px 15px;gap:12px;margin-bottom:21px;border-radius:15px;align-items:flex-start}.student-details>div{gap:9px}.student-details strong{font-size:12px}.student-details small{font-size:9px;line-height:1.5;margin-top:3px;max-width:180px}.week-symbol{display:flex;padding-top:3px}.week-symbol svg{height:20px;width:20px}.season{font-size:9px;max-width:55px;text-align:right;line-height:1.5}.history-panel{padding:22px 18px;border-radius:20px}.history-panel .eyebrow{font-size:8px;letter-spacing:1px;margin-bottom:8px}.history-panel .section-heading{margin-bottom:20px}.history-panel h2{font-size:20px}.history-entry{gap:10px;padding:18px 0}.entry-icon{height:30px;min-width:30px;border-radius:10px}.entry-icon svg{height:17px;width:17px}.entry-copy h3{font-size:13px}.entry-amount{font-size:18px;gap:3px}.entry-amount span{font-size:11px}.entry-person .person-name{font-size:11px}.entry-person .person-id{font-size:9px}.entry-date{font-size:9px}.entry-reason{font-size:11px}.corrected-label{font-size:9px;line-height:1.6;padding:4px 6px}.reverse-form{padding:13px;margin-left:-40px;margin-right:-36px}.reverse-form .button-row{flex-direction:column-reverse}.reverse-form .button{width:100%;font-size:11px}.kindness-note{padding:14px 16px;border-radius:15px;font-size:10px;align-items:flex-start;gap:10px}.kindness-note svg{width:19px;height:19px;margin-top:3px}.message{padding:15px;border-radius:14px;font-size:12px}.message strong{font-size:13px}.message small{font-size:10px}.message .button-row{flex-direction:column}.message .button{width:100%;font-size:12px}.permission-card{padding:25px 21px;border-radius:20px}.permission-card>p{font-size:12px}.empty-state{padding:25px 7px}.empty-state p{font-size:12px}.empty-state h3{font-size:15px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Admin roster preparation uses independent permissions and compact record cards. */
.admin-intro{max-width:760px;margin:5px 0 24px}.admin-intro h2{margin-bottom:12px}.admin-intro>p:last-child{font-size:14px;line-height:1.8;color:var(--muted)}.admin-selectors{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:0 0 23px;max-width:850px}.admin-selectors>div{min-width:0}.admin-selectors label,.file-label,.import-form>label,.import-confirm>label:not(.import-reviewed),.import-row>label{display:block;font-size:13px;font-weight:650;margin-bottom:9px}.admin-selectors select{width:100%;min-height:44px;font-size:14px}.import-panel,.admin-roster,.import-result{padding:30px;min-width:0;margin-bottom:22px}.import-panel>.section-heading{gap:16px;align-items:flex-start}.import-panel>.muted{font-size:13px;line-height:1.8;overflow-wrap:anywhere}.import-tools{display:flex;flex-wrap:wrap;gap:12px;margin:22px 0}.import-tools .button{min-height:44px;font-size:12px;text-decoration:none;white-space:normal;text-align:center}.roster-file{width:100%;max-width:580px;font-size:13px;min-height:44px;padding:9px;overflow:hidden}.roster-file::file-selector-button{border:0;border-radius:8px;min-height:36px;margin-right:12px;background:var(--lilac);color:var(--ink);padding:8px 12px;cursor:pointer}.import-form{margin-top:23px;min-width:0}.import-form textarea{width:100%;display:block;resize:vertical;font-family:Consolas,monospace;font-size:13px;line-height:1.7;min-height:175px}.import-form>.fine-print{margin-top:12px;line-height:1.7}.import-form>.button{margin-top:20px;min-height:48px}.import-counts{display:flex;flex-wrap:wrap;gap:12px 22px;padding:16px 19px;background:var(--lilac);border-radius:13px;margin:22px 0;font-size:12px;line-height:1.7}.import-counts strong{color:var(--ink);font-size:16px}.import-rows{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}.import-row{border:1px solid var(--border);border-radius:15px;padding:18px;min-width:0}.import-row-heading{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;align-items:center;margin-bottom:13px}.row-number{font-size:10px;color:var(--muted)}.import-row>strong{font-size:15px;line-height:1.6;display:block;overflow-wrap:anywhere}.import-row .task-meta,.import-row .fine-print{line-height:1.7;overflow-wrap:anywhere}.row-invalid{background:#fff8f5;border-color:#ead1c6}.row-needs_match{background:#fffcf3;border-color:#e9ddb9}.import-issues{font-size:12px;line-height:1.7;color:#8c4f37;margin:13px 0;padding-left:18px;overflow-wrap:anywhere}.import-row>label{margin-top:16px;font-size:12px}.import-row>select{width:100%;font-size:12px;min-height:44px}.import-row>.fine-print{margin-top:10px}.import-confirm{margin:28px 0 0;padding:24px;border:1px solid var(--border);border-radius:16px;background:#faf8fd}.import-confirm>select{width:100%;min-height:48px;font-size:13px}.import-final{background:#fff;border:1px solid var(--border);margin:20px 0 13px}.import-warning{font-size:12px;line-height:1.8;color:#8b6b2e;margin-top:10px;overflow-wrap:anywhere}.import-reviewed{display:flex;gap:12px;align-items:flex-start;font-size:13px;line-height:1.8;padding:15px 0;margin:6px 0 13px;min-height:44px;cursor:pointer}.import-reviewed>input{min-height:20px;width:20px;height:20px;flex-shrink:0;margin-top:2px;accent-color:var(--violet)}.import-confirm>.button{min-height:48px;line-height:1.6;white-space:normal}.import-confirm>.fine-print{margin-top:13px;line-height:1.8}.import-result{background:#f1f7f2;border-color:#d8e7dc}.import-result>div:first-child{display:flex;gap:13px;align-items:center;color:var(--green)}.import-result .import-counts{background:#fff;margin:17px 0}.import-result>p{font-size:13px;line-height:1.8;margin-bottom:12px}.import-result>.person-id{overflow-wrap:anywhere}.admin-pupils{list-style:none;margin:0;padding:0}.admin-pupils>li{display:flex;gap:14px;align-items:flex-start;justify-content:space-between;padding:17px 0;border-top:1px solid var(--border);min-width:0}.admin-pupils>li:first-child{border-top:0}.admin-pupils>li>div{min-width:0}.admin-pupils .person-name,.admin-pupils .person-id{overflow-wrap:anywhere}.admin-pupils .task-status{flex-shrink:0;line-height:1.7}.admin-roster .pagination{margin-top:17px}
@media(max-width:800px){.import-rows{grid-template-columns:minmax(0,1fr)}}
@media(max-width:620px){.admin-intro{margin-bottom:22px}.admin-intro>p:last-child{font-size:12px}.admin-selectors{grid-template-columns:minmax(0,1fr);gap:16px;margin-bottom:20px}.admin-selectors select{font-size:16px}.admin-selectors label{font-size:12px}.import-panel,.admin-roster,.import-result{padding:22px 18px;border-radius:20px;margin-bottom:18px}.import-panel>.section-heading{flex-direction:column;gap:10px}.import-panel>.section-heading>svg{display:none}.import-panel>.section-heading>.text-button{min-height:44px;font-size:12px}.import-panel>.muted{font-size:12px}.import-tools{flex-direction:column;gap:9px;margin:18px 0}.import-tools .button{width:100%;font-size:12px;min-height:46px}.roster-file{font-size:12px}.import-form textarea{font-size:16px;min-height:190px}.import-form>.button{width:100%;font-size:13px;min-height:48px}.import-form>.fine-print{font-size:11px}.import-counts{flex-direction:column;gap:7px;padding:14px 15px;font-size:12px}.import-rows{gap:12px}.import-row{padding:16px}.import-row>strong{font-size:14px}.import-row>select{font-size:16px}.import-row .fine-print{font-size:10px}.import-confirm{padding:17px;margin-top:22px}.import-confirm>select{font-size:16px}.import-reviewed{font-size:12px;line-height:1.8}.import-confirm>.button{font-size:12px}.import-confirm>.fine-print{font-size:10px}.admin-pupils>li{gap:9px}.admin-pupils .person-name{font-size:13px}.admin-pupils .task-status{font-size:9px;padding:5px 6px}.admin-pupils .person-id{font-size:10px}.import-result h2{font-size:21px}.import-result>p{font-size:12px}}

/* The condition and answer share one column, including on narrow screens. */
.task-state-reviews{margin:24px 0}.task-state-reviews>h3{font-size:15px;margin-bottom:14px}
.tasks-panel,.task-create-panel,.task-recipients,.task-detail{padding:30px;min-width:0}.task-list-note{font-size:13px;margin-bottom:21px}.tasks-panel>.section-heading{gap:14px;align-items:flex-start}.task-list{list-style:none;margin:0;padding:0}.task-card{display:flex;gap:20px;justify-content:space-between;border-top:1px solid var(--border);padding:21px 0;min-width:0}.task-card:last-child{padding-bottom:0}.task-card-copy{min-width:0;flex:1}.task-card h3{font-size:18px;line-height:1.4;overflow-wrap:anywhere;margin:10px 0 5px}.task-card-action{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:13px;flex-shrink:0}.task-reward{font-size:16px;font-weight:650;color:#886933}.task-card-action .button{font-size:12px}.task-meta{font-size:11px;color:var(--muted);margin-top:6px;overflow-wrap:anywhere}.task-badges{display:flex;flex-wrap:wrap;gap:7px;align-items:center}.task-status,.task-late{font-size:10px;line-height:1.5;padding:5px 9px;border-radius:8px;background:var(--lilac);color:var(--violet-dark)}.status-confirmed{color:var(--green);background:#edf4ef}.status-needs_work{color:#856724;background:#fff4d6}.status-cancelled,.status-revoked{color:var(--muted);background:#f0edf4}.task-late{color:#786645;background:#f7f1e7}.task-create-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:22px;align-items:start}.task-create-layout .section-heading{gap:10px}.task-create-layout .section-heading>.text-button{flex-shrink:0;font-size:11px}.demo-task-button{font-size:12px;margin-bottom:7px}.task-form{margin-top:23px;min-width:0}.task-form label{display:block;font-size:13px;font-weight:650;margin:18px 0 8px;line-height:1.5}.task-form label:first-child{margin-top:0}.task-form input,.task-form textarea,.task-form select{width:100%;font-size:14px;line-height:1.6}.task-form textarea{display:block;resize:vertical}.task-field-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}.task-field-row>div{min-width:0}.task-field-row .fine-print{margin-top:8px;line-height:1.6}.field-privacy{color:var(--muted);font-size:11px;line-height:1.6;margin-top:13px}.task-create-footer{display:flex;gap:15px;align-items:center;justify-content:space-between;margin-top:24px;border-top:1px solid var(--border);padding-top:18px}.task-create-footer>p{font-size:12px}.task-create-footer .button{font-size:12px}.task-recipients .recipients-heading{margin-top:0}.task-selection-actions{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--border);margin-top:16px}.task-selection-actions .text-button{font-size:12px}.task-preview{max-width:780px}.task-condition{background:var(--paper);border:1px solid #e9e1d7;border-radius:17px;padding:21px;margin:21px 0 17px;min-width:0}.task-condition h3{font-size:14px;margin-bottom:11px}.task-condition>p{font-size:15px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}.task-preview-hint{border-top:1px solid #ebe5db;padding-top:14px;margin-top:15px}.task-preview-terms{display:flex;flex-wrap:wrap;gap:7px 25px;font-size:12px;margin:18px 0 26px}.task-detail{max-width:860px;margin:0 auto}.task-detail-top{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:17px}.task-detail>.eyebrow{margin:17px 0 10px;font-size:10px;overflow-wrap:anywhere}.task-detail>h2{font-size:28px;overflow-wrap:anywhere}.task-student{margin-top:13px}.task-detail-terms{display:flex;flex-wrap:wrap;gap:7px 20px;font-size:11px;color:var(--muted);margin-top:17px}.task-detail-terms>span{overflow-wrap:anywhere}.task-late-note{background:#faf4e7;color:#806f4c;border:1px solid #eae0c9;padding:12px 16px;border-radius:12px;font-size:12px;margin-top:16px}.task-hint{margin:13px 0 19px;padding:13px 16px;border-radius:13px;background:#f6f2fc;border:1px solid #e6dcf2;min-width:0}.task-hint .button{padding:0 4px;font-size:13px;min-height:44px}.task-hint p{font-size:14px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere;margin:9px 0}.task-hint small{font-size:10px;color:var(--muted);line-height:1.6;display:block;margin-top:8px}.task-hint summary,.task-cancel summary{font-size:13px;cursor:pointer;min-height:44px;padding:11px 0}.task-feedback{padding:18px 20px;border:1px solid #d9e7dc;border-radius:15px;background:#f0f6f1;margin:20px 0}.task-feedback>strong{font-size:13px;color:#436b4e}.task-feedback p{font-size:14px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere;margin-top:8px}.answer-form{margin-top:22px}.answer-form>.button{margin-top:20px}.answer-form>.fine-print{margin-top:11px}.task-next-step{margin-top:23px;padding:21px;border-radius:16px;background:var(--lilac);border:1px solid var(--border)}.task-next-step p{font-size:13px;margin-top:8px}.task-next-step>.button{margin-top:16px}.attempt-history{margin-top:30px;border-top:1px solid var(--border);padding-top:24px}.attempt-history>h3{font-size:17px}.attempt-history>ol{list-style:none;margin:15px 0 0;padding:0}.attempt-history li{border:1px solid var(--border);border-radius:15px;padding:18px;margin-top:12px;min-width:0}.attempt-heading{display:flex;flex-wrap:wrap;justify-content:space-between;gap:7px;align-items:center;font-size:13px}.attempt-heading>span{font-size:10px;color:var(--muted)}.attempt-badges{display:flex;flex-wrap:wrap;gap:7px;font-size:10px;color:var(--muted);margin:10px 0}.attempt-badges>span{background:#f5f2f8;padding:4px 7px;border-radius:6px}.attempt-answer{white-space:pre-wrap;font-size:14px;line-height:1.8;overflow-wrap:anywhere;margin:13px 0}.attempt-feedback{background:#f6f3fa;border-radius:10px;padding:13px;margin-top:13px;min-width:0}.attempt-feedback>strong{font-size:11px;color:#75618e}.attempt-feedback p{font-size:13px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere;margin:5px 0}.attempt-feedback small{color:var(--muted);font-size:10px}.task-no-answer{margin-top:23px}.review-form{padding:22px;border:1px solid #dacfec;border-radius:17px;background:#faf8fd;margin-top:28px}.review-form>h3{margin-bottom:17px}.review-effect{font-size:12px;line-height:1.7;margin:17px 0;padding:13px;border-radius:10px;background:var(--lilac)}.review-form>.button{max-width:100%;white-space:normal}.task-cancel{margin-top:25px;border-top:1px solid var(--border);padding-top:10px}.task-cancel .review-form{margin-top:10px}
@media(max-width:950px){.task-create-layout{grid-template-columns:minmax(0,1fr);gap:20px}.task-create-footer{justify-content:flex-start}.task-recipients{max-width:none}.task-field-row{max-width:600px}}
@media(max-width:620px){.tasks-panel,.task-create-panel,.task-recipients,.task-detail{padding:22px 18px;border-radius:20px}.tasks-panel>.section-heading{flex-direction:column;gap:15px}.tasks-panel>.section-heading>.button{width:100%;font-size:13px}.tasks-panel>.section-heading>.section-symbol{display:none}.task-list-note{font-size:12px;line-height:1.7}.task-card{flex-direction:column;gap:13px;padding:20px 0}.task-card h3{font-size:17px}.task-card-action{flex-direction:row;align-items:center;justify-content:space-between;gap:10px}.task-card-action>.button{font-size:12px;min-height:46px}.task-card .person-name{font-size:13px}.task-status,.task-late{font-size:10px}.task-create-layout{gap:18px}.task-field-row{grid-template-columns:minmax(0,1fr);gap:0}.task-form label{font-size:13px}.task-form input,.task-form textarea,.task-form select{font-size:16px;line-height:1.6}.task-form .fine-print,.field-privacy{font-size:11px;line-height:1.7}.task-create-footer{flex-direction:column;align-items:stretch;gap:12px}.task-create-footer>.button{min-height:48px;font-size:13px}.task-create-footer>p{font-size:13px}.demo-task-button{font-size:12px;white-space:normal;text-align:left}.task-preview-terms{flex-direction:column;gap:8px;font-size:12px}.task-detail-top{align-items:flex-start;gap:9px}.task-detail-top>.text-button{font-size:12px;min-height:44px;padding-top:4px}.task-detail-top>.task-status{max-width:135px;line-height:1.6;text-align:right}.task-detail>h2{font-size:24px;line-height:1.3}.task-detail-terms{font-size:11px;line-height:1.7}.task-condition{padding:17px;margin:18px 0 15px;border-radius:14px}.task-condition>p{font-size:15px;line-height:1.8}.task-hint{padding:10px 13px}.task-hint p,.task-feedback p{font-size:14px;line-height:1.8}.task-feedback{padding:16px}.answer-form>.button{width:100%;min-height:48px;font-size:13px}.task-next-step{padding:18px}.task-next-step p{font-size:12px}.attempt-history{margin-top:25px;padding-top:20px}.attempt-history li{padding:15px}.attempt-answer{font-size:14px}.attempt-feedback{padding:11px}.review-form{padding:17px;margin-top:22px}.review-form>.button{width:100%;font-size:12px;min-height:48px;line-height:1.6}.review-effect{font-size:12px;padding:12px}.task-selection-actions .text-button{font-size:11px}}

/* Personal invitations use the classroom palette and leave room for long names. */
.link-intro{max-width:760px;margin:23px 0}.link-intro h2{font-size:27px;margin:9px 0}.link-intro>p:last-child{font-size:14px;line-height:1.8;color:var(--muted)}.link-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:22px;align-items:start}.link-roster,.link-requests-panel,.invite-panel,.link-claim-panel{padding:30px;min-width:0}.link-roster>.fine-print{line-height:1.7;margin-bottom:17px}.link-roster .search-form{margin:19px 0}.link-roster-list,.link-requests-list,.link-own-list{list-style:none;margin:0;padding:0}.link-roster-list>li{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:17px 0;border-top:1px solid var(--border);min-width:0}.link-roster-list>li>div{min-width:0;flex:1}.link-roster-list .button{font-size:11px;flex-shrink:0}.link-roster-list .person-name{overflow-wrap:anywhere}.link-state{display:block;font-size:10px;color:var(--muted);line-height:1.6;margin-top:6px}.link-roster-list .task-status{max-width:130px;white-space:normal;text-align:right}.invite-panel{margin:22px 0;border-color:#d9c5eb;background:#faf7ff}.invite-panel h3{font-size:21px;overflow-wrap:anywhere;margin:10px 0}.invite-panel .button-row{margin:18px 0 11px;flex-wrap:wrap}.invite-code{display:block;max-width:100%;font-family:Consolas,"Courier New",monospace;font-size:23px;line-height:1.6;letter-spacing:1px;background:#fff;border:1px solid var(--border);padding:17px 20px;margin:19px 0;border-radius:12px;overflow-wrap:anywhere;user-select:all}.link-request{border-top:1px solid var(--border);padding:22px 0;min-width:0}.link-request:first-child{border-top:0;padding-top:6px}.link-request:last-child{padding-bottom:0}.link-request h3{font-size:18px;line-height:1.6;overflow-wrap:anywhere;margin:12px 0 4px}.link-request>.fine-print{line-height:1.7;margin:13px 0}.link-account{padding:13px 15px;border:1px solid var(--border);background:#f8f5fc;border-radius:12px;margin:16px 0;min-width:0}.link-account small,.link-account strong,.link-account span{display:block;overflow-wrap:anywhere}.link-account small{font-size:10px;color:var(--muted);margin-bottom:5px}.link-account strong{font-size:14px;line-height:1.6}.link-account span{font-size:10px;color:var(--muted);margin-top:5px}.link-conflict-note,.link-wait-note{padding:15px 17px;border:1px solid #ebdcb9;border-radius:12px;background:#fff7e2;margin:16px 0}.link-conflict-note strong,.link-wait-note strong{font-size:13px}.link-conflict-note p,.link-wait-note p{font-size:12px;line-height:1.8;margin-top:7px;color:#7b6842}.link-confirm{display:flex;align-items:flex-start;gap:11px;cursor:pointer;font-size:12px;line-height:1.8;padding:11px 0;min-height:44px}.link-confirm input{flex-shrink:0;width:20px;height:20px;margin-top:1px;accent-color:var(--violet)}.link-request>.button-row{margin-top:16px;flex-wrap:wrap}.link-request .button{font-size:12px}.link-claim-panel{max-width:680px;margin:24px auto 40px}.link-claim-panel>h1{font-size:32px;line-height:1.25;margin:11px 0 15px}.link-claim-panel>.muted{font-size:14px;line-height:1.8}.link-claim-form{margin:25px 0 32px}.link-claim-form label{display:block;font-size:14px;font-weight:650;margin-bottom:10px}.link-claim-form input{display:block;width:100%;font-family:Consolas,"Courier New",monospace;font-size:16px;line-height:1.8;letter-spacing:1px}.link-claim-form>.fine-print{margin:10px 0 18px}.link-own-heading{display:flex;justify-content:space-between;gap:14px;align-items:center;margin:28px 0 17px;padding-top:23px;border-top:1px solid var(--border)}.link-own-heading h2{font-size:20px}.link-own-heading>.button{font-size:12px}.link-own-list>li{padding:18px;border:1px solid var(--border);border-radius:13px;background:#faf8fd;margin:12px 0;min-width:0}.link-own-list strong,.link-own-list small{display:block;overflow-wrap:anywhere}.link-own-list strong{font-size:14px;line-height:1.7;color:var(--violet-dark)}.link-own-list small{font-size:10px;color:var(--muted);margin-top:7px}.link-own-list p{font-size:12px;line-height:1.8;margin-top:10px;color:var(--muted)}
@media(max-width:950px){.link-layout{grid-template-columns:minmax(0,1fr);gap:20px}.invite-code{font-size:21px}}
@media(max-width:620px){.link-roster,.link-requests-panel,.invite-panel,.link-claim-panel{padding:22px 18px;border-radius:20px}.link-intro h2{font-size:23px;line-height:1.4}.link-intro>p:last-child{font-size:12px;line-height:1.8}.link-layout{gap:18px}.link-roster-list>li{align-items:flex-start;gap:11px}.link-roster-list .person-name{font-size:13px;line-height:1.7}.link-roster-list .button{font-size:11px;min-height:44px;max-width:110px;white-space:normal;padding:10px 12px}.link-roster-list .task-status{font-size:9px;max-width:90px;line-height:1.7}.invite-panel h3{font-size:18px}.invite-code{font-size:17px;letter-spacing:.5px;padding:14px 12px}.invite-panel .button-row{align-items:stretch;flex-direction:column}.invite-panel .button{min-height:46px;font-size:12px}.link-request h3{font-size:17px}.link-request>.button-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.link-request .button{min-height:46px;font-size:11px;white-space:normal;padding:10px 12px}.link-confirm{font-size:12px;padding:12px 0}.link-conflict-note{padding:13px}.link-claim-panel{margin:20px auto 30px}.link-claim-panel>h1{font-size:28px}.link-claim-panel>.muted{font-size:13px}.link-claim-form>.button{width:100%;font-size:13px;min-height:48px}.link-claim-form input{font-size:16px;letter-spacing:.5px;min-height:48px}.link-own-heading{align-items:flex-start;flex-direction:column;gap:13px}.link-own-heading>.button{font-size:12px;min-height:44px}.link-own-list>li{padding:15px}.link-wait-note{padding:14px}.link-claim-panel .field-privacy{line-height:1.7}}

/* Replacement has two separate confirmations; old access changes only at approval. */
/* Class transfer shows the route before a separate confirmation. */
/* Continuations keep historical work separate from the current answer and review. */

/* A school action, its result and the teacher's response form one visible route. */
.mission-path{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;padding:32px;margin:24px 0 30px;background:#eef6ff;border:1px solid #c7daf3;border-radius:24px;min-width:0}
.mission-path h2{font-size:clamp(23px,3vw,31px);line-height:1.3;max-width:18ch;margin:8px 0 16px;color:#19385d}
.mission-path>div>p:not(.eyebrow){font-size:14px;line-height:1.8;color:#445c77;margin-bottom:22px}
.mission-path-steps{list-style:none;margin:0;padding:0;display:grid;gap:0}
.mission-path-steps li{display:flex;gap:16px;position:relative;padding:0 0 22px;min-width:0}
.mission-path-steps li:not(:last-child):before{content:"";position:absolute;left:17px;top:35px;bottom:0;border-left:2px solid #b9cee6}
.mission-path-steps li>span{display:grid;place-items:center;flex:0 0 36px;height:36px;background:#fff3cb;color:#9c6500;border:1px solid #e6c76d;border-radius:50%;font-size:22px;z-index:1}
.mission-path-steps strong{font-size:15px;color:#19385d;line-height:1.6}
.mission-path-steps p{font-size:12px;line-height:1.8;color:#52667e;margin-top:4px}
.mission-next{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:22px;margin:20px 0;background:#eaf6ee;border:1px solid #c1dec9;border-radius:18px;min-width:0}
.mission-next>div{min-width:0}.mission-next h3{font-size:20px;line-height:1.5;overflow-wrap:anywhere;margin:7px 0}.mission-next p{font-size:13px;line-height:1.8;margin:5px 0}.mission-next .button{flex-shrink:0;min-height:48px;white-space:normal}
.feedback-tools{margin:24px 0 18px;padding:20px;background:#eef6ff;border:1px solid #c7daf3;border-radius:16px;display:grid;gap:14px;min-width:0}
.feedback-tools strong{font-size:16px;line-height:1.6}.feedback-tools p,.feedback-tools small,.answer-guide{font-size:13px;line-height:1.8;color:#52667e}.feedback-tools .button{justify-self:start;white-space:normal;min-height:46px}.answer-guide{margin:3px 0 12px}
@media(max-width:760px){.mission-path{grid-template-columns:minmax(0,1fr);gap:24px;padding:24px}.mission-path h2{max-width:none}.mission-path-steps li:last-child{padding-bottom:0}.mission-next{align-items:stretch;flex-direction:column}.mission-next .button{align-self:flex-start}}
@media(max-width:420px){.mission-path{padding:22px 18px;border-radius:20px}.mission-path .button{width:100%;white-space:normal;min-height:48px}.mission-next{padding:18px}.mission-next .button{width:100%}.feedback-tools{padding:17px}.feedback-tools .button{width:100%}}
.transfer-task-actions{display:flex;flex-direction:column;gap:10px;min-width:190px}.reassign-panel{padding:23px;margin:24px 0;border:1px solid #dacfec;border-radius:17px;background:#faf8fd;min-width:0}.reassign-panel>h3{font-size:21px;line-height:1.6;overflow-wrap:anywhere}.reassign-panel>.muted,.reassign-effect{font-size:13px;line-height:1.8;overflow-wrap:anywhere}.reassign-panel .button-row{flex-wrap:wrap;margin-top:20px}.reassign-panel .button{min-height:48px;white-space:normal}.reassign-panel .task-form>.link-confirm{display:flex;margin:15px 0;gap:11px;font-weight:400}.reassign-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 24px;padding:20px;border:1px solid var(--border);border-radius:14px;background:#fff;margin:17px 0}.reassign-summary>div{min-width:0}.reassign-summary dt{font-size:11px;color:var(--muted);line-height:1.7}.reassign-summary dd{margin:6px 0 0;font-size:15px;font-weight:650;line-height:1.7;overflow-wrap:anywhere}.continuation-note{padding:17px 20px;margin:20px 0;border:1px solid #dacfec;border-radius:14px;background:#f6f2fc;min-width:0}.continuation-note h3{font-size:16px;line-height:1.6}.continuation-note p{font-size:13px;line-height:1.8;margin-top:9px;overflow-wrap:anywhere}.previous-work{margin-top:30px;border-top:1px solid var(--border);padding-top:25px;min-width:0}.previous-work>.section-heading{align-items:flex-start;gap:15px}.previous-work h3{font-size:20px;line-height:1.5}.previous-work>.fine-print{line-height:1.8;margin:15px 0}.previous-work .button{font-size:11px;min-height:44px;white-space:normal}.previous-work-list,.previous-attempts{list-style:none;padding:0;margin:0}.previous-work-list>li{padding:20px;border:1px solid var(--border);border-radius:15px;background:#faf9fc;margin:17px 0;min-width:0}.previous-work-list h4{font-size:16px;line-height:1.7;overflow-wrap:anywhere}.previous-attempts>li{padding-top:17px;margin-top:17px;border-top:1px solid var(--border);min-width:0}.previous-work .task-meta{line-height:1.8}.previous-work .empty-inline{font-size:12px;line-height:1.8}
@media(max-width:620px){.transfer-task-actions{width:100%;min-width:0;gap:10px}.reassign-panel{padding:17px}.reassign-panel>h3{font-size:18px}.reassign-panel .task-form input:not([type="checkbox"]),.reassign-panel .task-form select,.reassign-panel .task-form textarea{font-size:16px;min-height:48px}.reassign-summary{grid-template-columns:minmax(0,1fr);padding:16px;gap:14px}.reassign-panel .button-row{flex-direction:column;align-items:stretch}.reassign-panel .button{font-size:12px}.continuation-note{padding:15px}.continuation-note h3{font-size:15px}.continuation-note p{font-size:13px}.previous-work>.section-heading{flex-direction:column;align-items:stretch}.previous-work .button{font-size:12px}.previous-work-list>li{padding:15px}.previous-work h3{font-size:18px}.previous-work .pagination{gap:8px;flex-wrap:wrap}}
.admin-pupil-actions{display:flex;flex-wrap:wrap;gap:4px 18px;margin-top:8px}.admin-pupil-actions .text-button{font-size:11px;min-height:44px;text-align:left;white-space:normal}.transfer-panel,.participation-panel,.transfer-tasks-panel{padding:30px;margin-top:22px;min-width:0}.transfer-panel{background:#faf8fd;border-color:#dacfec;max-width:840px}.transfer-panel h2,.participation-panel h2{font-size:25px;line-height:1.4;margin:9px 0 20px}.transfer-person{margin:15px 0 20px;min-width:0}.transfer-person .person-name{font-size:18px;overflow-wrap:anywhere}.transfer-panel>label:not(.link-confirm),.transfer-cancel-form>label{display:block;font-size:13px;font-weight:650;margin:18px 0 9px}.transfer-panel>select{width:100%;max-width:480px;min-height:48px}.transfer-route{display:grid;grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);align-items:center;gap:15px;padding:20px;border-radius:15px;border:1px solid #e4daee;background:#fff}.transfer-route small,.transfer-route strong{display:block;overflow-wrap:anywhere}.transfer-route small{font-size:11px;color:var(--muted);margin-bottom:7px}.transfer-route strong{font-size:21px;line-height:1.5}.transfer-route>span{color:var(--violet)}.transfer-effect,.transfer-held-note{font-size:13px;line-height:1.8;margin:19px 0 13px}.transfer-held-note{padding:14px 17px;background:#fff5da;border:1px solid #ebdfba;border-radius:12px;color:#78603b}.transfer-panel>.fine-print{line-height:1.8;margin-top:14px}.transfer-panel>.button-row{flex-wrap:wrap;margin-top:18px}.transfer-panel .button,.transfer-cancel-form .button{min-height:48px}.transfer-queue-heading{display:flex;justify-content:space-between;gap:24px;align-items:center;margin:35px 0 16px}.transfer-queue-heading h2{font-size:22px;line-height:1.5}.transfer-queue-heading p{font-size:12px;line-height:1.8;margin-top:7px;max-width:610px}.transfer-queue-heading>.button{flex-shrink:0;min-height:48px;font-size:12px}.transfer-task-list{list-style:none;padding:0;margin:0}.transfer-task-list>li{display:flex;justify-content:space-between;align-items:flex-start;gap:23px;padding:20px 0;border-bottom:1px solid var(--border);min-width:0}.transfer-task-list>li:first-child{padding-top:0}.transfer-task-list>li>div{min-width:0}.transfer-task-list h3{font-size:17px;line-height:1.6;overflow-wrap:anywhere;margin-bottom:9px}.transfer-task-list .person-name{font-size:13px;overflow-wrap:anywhere}.transfer-task-list .fine-print{margin-top:11px;line-height:1.8;overflow-wrap:anywhere}.transfer-task-list .button{font-size:11px;min-height:48px;flex-shrink:0}.transfer-cancel-form{padding:22px;margin:24px 0;border:1px solid #eadcbb;background:#fffaf0;border-radius:15px;min-width:0}.transfer-cancel-form h3{font-size:18px;line-height:1.6;overflow-wrap:anywhere}.transfer-cancel-form p{margin-top:12px;line-height:1.8}.transfer-cancel-form textarea{width:100%;font-size:14px;line-height:1.8}.transfer-cancel-form>.button-row{margin-top:20px;flex-wrap:wrap}.participation-panel{max-width:840px}.participation-list{list-style:none;padding:0;margin:22px 0}.participation-list>li{position:relative;padding:0 0 23px 25px;border-left:2px solid #dacfec;margin-left:7px;min-width:0}.participation-list>li:last-child{padding-bottom:0;border-color:transparent}.participation-list>li:before{content:"";position:absolute;left:-7px;top:3px;width:12px;height:12px;border:2px solid #fff;border-radius:50%;background:var(--violet)}.participation-list strong{font-size:16px;line-height:1.6;overflow-wrap:anywhere}.participation-list p{font-size:12px;line-height:1.8;margin:8px 0 4px}.participation-list small{font-size:11px;color:var(--muted);line-height:1.8}.participation-panel .section-heading{align-items:flex-start}.participation-panel .section-heading h2{margin-bottom:0}
@media(max-width:620px){.transfer-panel,.participation-panel,.transfer-tasks-panel{padding:22px 18px;border-radius:20px}.transfer-panel h2,.participation-panel h2{font-size:22px}.transfer-person .person-name{font-size:16px}.transfer-route{grid-template-columns:minmax(0,1fr);padding:17px;gap:13px}.transfer-route>span{transform:rotate(90deg);justify-self:start}.transfer-route strong{font-size:19px}.transfer-effect,.transfer-held-note{font-size:12px}.transfer-held-note{padding:13px}.transfer-panel>select,.transfer-cancel-form textarea{font-size:16px}.transfer-panel>.button-row,.transfer-cancel-form>.button-row{flex-direction:column;align-items:stretch;gap:10px}.transfer-panel .button,.transfer-cancel-form .button{font-size:12px;white-space:normal;line-height:1.7}.transfer-queue-heading{flex-direction:column;align-items:stretch;gap:15px;margin-top:29px}.transfer-queue-heading h2{font-size:20px}.transfer-queue-heading>.button{width:100%}.transfer-task-list>li{flex-direction:column;gap:15px;padding:19px 0}.transfer-task-list .button{width:100%;white-space:normal;font-size:12px}.transfer-cancel-form{padding:17px}.transfer-cancel-form h3{font-size:16px}.participation-list p{font-size:12px}.admin-pupil-actions{gap:2px 10px}.admin-pupil-actions .text-button{font-size:11px}}

.rebind-start-panel{padding:30px;margin:22px 0;background:#fffaf0;border-color:#e8dcbf;min-width:0}.rebind-start-panel h2{font-size:25px;line-height:1.4;margin:10px 0 17px}.rebind-student{min-width:0;margin-bottom:16px}.rebind-student .person-name{font-size:18px;overflow-wrap:anywhere}.rebind-effect{font-size:13px;line-height:1.8;padding:15px 17px;border-radius:12px;background:#fff4d6;border:1px solid #eadcba;margin:17px 0;color:#78603b;overflow-wrap:anywhere}.rebind-start-panel>.fine-print{line-height:1.8}.rebind-start-panel>.button-row{margin-top:18px;flex-wrap:wrap}.rebind-start-panel .button,.rebind-start-panel input{min-height:48px}.rebind-start-panel .link-confirm input{min-height:20px}.previous-account{background:#fbf7ee;border-color:#e9dfcb}.rebind-request-label{font-size:11px;color:#8b6b38;font-weight:650;margin:13px 0 2px}.rebind-confirm{background:#fff8e8;border:1px solid #eee2c8;padding:13px 12px;border-radius:12px;margin:7px 0}.rebind-confirm span{overflow-wrap:anywhere}.link-roster-list [data-rebind-student]{min-height:48px;white-space:normal;max-width:155px}.link-request [data-link-approve],.link-request [data-link-reject]{min-height:48px}.invite-panel .rebind-effect{font-size:12px}
@media(max-width:620px){.rebind-start-panel{padding:22px 18px;border-radius:20px}.rebind-start-panel h2{font-size:22px}.rebind-student .person-name{font-size:16px}.rebind-effect{font-size:12px;padding:13px}.rebind-start-panel>.button-row{flex-direction:column;align-items:stretch;gap:10px}.rebind-start-panel .button{width:100%;min-height:48px;white-space:normal;font-size:12px}.link-roster-list [data-rebind-student]{max-width:110px;min-height:48px;font-size:10px;line-height:1.6}.link-request [data-link-approve],.link-request [data-link-reject]{min-height:48px;line-height:1.6}.rebind-confirm{padding:12px 10px}.rebind-request-label{line-height:1.7}}

/* School-action samples and the actual pupil card share existing type/color tokens. */
.personal-achievements { min-width:0; margin:24px 0; padding:30px; border:1px solid #d5c5ec; border-radius:24px; background:#fffdf6; }
.achievement-heading { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:25px; }
.achievement-heading h2 { font-size:27px; line-height:1.3; margin-top:8px; }
.achievement-mark { display:grid; place-items:center; width:52px; height:52px; flex:0 0 52px; color:#9c6500; background:#fff1c5; border:1px solid #e7c66d; border-radius:17px; font-size:37px; transform:rotate(-8deg); }
.achievement-next { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:17px; }
.achievement-next>div { min-width:0; }
.achievement-goal { color:var(--violet-dark); font-family:"Trebuchet MS","Segoe UI",sans-serif; font-size:22px; font-weight:750; line-height:1.5; }
.achievement-goal>span { color:#9c6500; }
.achievement-distance { font-size:14px; color:var(--muted); margin-top:5px; line-height:1.8; }
.achievement-fraction { flex-shrink:0; display:flex; align-items:baseline; gap:9px; font-variant-numeric:tabular-nums; }
.achievement-fraction>strong { font-family:"Trebuchet MS","Segoe UI",sans-serif; font-size:40px; line-height:1.1; color:var(--violet-dark); }
.achievement-fraction>span { font-size:14px; color:var(--muted); }
.achievement-progress { display:block; width:100%; height:14px; appearance:none; -webkit-appearance:none; border:1px solid #d3c6e5; border-radius:12px; background:#eee8f5; color:#7352bd; overflow:hidden; }
.achievement-progress::-webkit-progress-bar { background:#eee8f5; border-radius:10px; }
.achievement-progress::-webkit-progress-value { background:#7352bd; border-radius:10px; }
.achievement-progress::-moz-progress-bar { background:#7352bd; border-radius:10px; }
.achievement-stages { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; list-style:none; padding:0; margin:24px 0; }
.achievement-stages>li { display:flex; align-items:center; gap:11px; min-width:0; padding:15px 12px; border:1px dashed #c5b7d7; border-radius:14px; background:#fff; }
.achievement-stages>li[data-milestone-state="reached"] { border-style:solid; border-color:#91b49c; background:#eef7f0; }
.achievement-stage-icon { display:grid; place-items:center; width:32px; height:32px; flex:0 0 32px; border-radius:50%; border:1px solid #cfc1e1; color:#7352bd; background:#f1ecfa; font-size:21px; font-weight:750; }
[data-milestone-state="reached"]>.achievement-stage-icon { background:#31634b; color:#fff; border-color:#31634b; }
.achievement-stages strong { font-size:18px; line-height:1.4; font-variant-numeric:tabular-nums; }
.achievement-stages strong>span:not(.sr-only) { color:#9c6500; font-size:14px; }
.achievement-stage-state { display:block; font-size:11px; line-height:1.7; color:var(--muted); margin-top:4px; }
[data-milestone-state="reached"] .achievement-stage-state { color:var(--green); font-weight:650; }
.achievement-explanation { font-size:12px; color:var(--muted); line-height:1.85; max-width:82ch; }
.achievement-action { display:flex; align-items:center; justify-content:space-between; gap:24px; padding-top:23px; margin-top:22px; border-top:1px solid #e6decc; }
.achievement-action>p { font-size:13px; line-height:1.8; max-width:57ch; }
.achievement-action>.button { flex-shrink:0; min-height:48px; }
.personal-achievements-unavailable h2 { font-size:24px; margin:9px 0 13px; }
.personal-achievements-unavailable>p:not(.eyebrow) { font-size:14px; line-height:1.8; color:var(--muted); max-width:65ch; margin-bottom:20px; }
@media(max-width:760px) {
  .personal-achievements { padding:24px; }
  .achievement-stages { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .achievement-action { flex-direction:column; align-items:flex-start; gap:16px; }
}
@media(max-width:420px) {
  .personal-achievements { padding:22px 18px; border-radius:20px; }
  .achievement-heading { margin-bottom:20px; gap:12px; }
  .achievement-heading h2 { font-size:23px; }
  .achievement-heading .eyebrow { font-size:9px; letter-spacing:.8px; }
  .achievement-mark { width:40px; height:40px; flex-basis:40px; font-size:29px; border-radius:13px; }
  .achievement-next { align-items:flex-start; flex-direction:column; gap:12px; }
  .achievement-goal { font-size:20px; }
  .achievement-distance { font-size:13px; }
  .achievement-fraction>strong { font-size:33px; }
  .achievement-fraction>span { font-size:13px; }
  .achievement-stages { gap:9px; margin:20px 0; }
  .achievement-stages>li { gap:8px; padding:12px 10px; }
  .achievement-stage-icon { width:27px; height:27px; flex-basis:27px; font-size:18px; }
  .achievement-stages strong { font-size:17px; }
  .achievement-stage-state { font-size:10px; }
  .achievement-explanation { font-size:12px; }
  .achievement-action { margin-top:19px; padding-top:18px; }
  .achievement-action>.button,.personal-achievements-unavailable>.button { width:100%; white-space:normal; min-height:48px; }
}

.entry-achievement { margin-top:13px; padding:8px 12px; background:#fff8e6; border-radius:12px; min-width:0; overflow-wrap:anywhere; }
.entry-achievement>p { color:var(--violet-dark); font-size:13px; line-height:1.7; font-weight:600; }
.entry-achievement>small { display:block; color:var(--muted); font-size:11px; line-height:1.7; margin-top:4px; }
.entry-achievement-adjusted { background:#f4f1f8; }
@media(max-width:620px) {
  .entry-achievement { padding:8px 10px; margin-top:12px; }
  .entry-achievement>p { font-size:12px; }
  .entry-achievement>small { font-size:10px; }
}

.mission-samples { margin:24px 0; padding:20px; border:1px solid var(--border); border-radius:16px; background:var(--lilac); min-width:0; }
.mission-samples h3 { font-size:18px; line-height:1.5; }
.mission-samples > .fine-print { margin:8px 0 14px; line-height:1.7; }
.mission-sample-list { list-style:none; padding:0; margin:0; }
.mission-sample-list > li { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 0; border-top:1px solid var(--border); min-width:0; }
.mission-sample-list > li > div { min-width:0; }
.mission-sample-list strong { display:block; font-size:14px; line-height:1.7; overflow-wrap:anywhere; }
.mission-sample-list p { font-size:12px; line-height:1.7; color:var(--muted); margin-top:5px; overflow-wrap:anywhere; }
.mission-sample-list .button { flex-shrink:0; min-height:44px; font-size:12px; }
.mission-replacement { margin-top:14px; padding:17px; border:1px solid var(--violet); border-radius:12px; background:var(--white); min-width:0; }
.mission-replacement h4 { font-size:15px; line-height:1.6; overflow-wrap:anywhere; }
.mission-replacement p { font-size:12px; line-height:1.8; color:var(--muted); margin-top:8px; }
.mission-replacement .button-row { margin-top:16px; flex-wrap:wrap; }
.mission-replacement .button { min-height:44px; font-size:12px; white-space:normal; }
.mission-learning-example { margin:20px 0; font-size:13px; }
.mission-learning-example > summary { cursor:pointer; min-height:44px; padding:12px 0; color:var(--violet-dark); }
.pupil-preview-note { padding:17px 20px; border:1px solid var(--border); border-radius:14px; background:var(--lilac); margin-bottom:22px; }
.pupil-preview-note strong { display:block; font-size:15px; line-height:1.6; }
.pupil-preview-note p { margin-top:7px; font-size:13px; line-height:1.8; color:var(--muted); }
.task-pupil-preview { max-width:760px; margin-left:auto; margin-right:auto; }
.task-pupil-preview .task-detail-top { gap:14px; flex-wrap:wrap; }
.task-pupil-preview .answer-form textarea:disabled { opacity:1; color:var(--muted); background:var(--paper); }
.mission-samples button:focus-visible, .mission-learning-example summary:focus-visible, .task-preview button:focus-visible, .task-pupil-preview button:focus-visible { outline:3px solid var(--violet-dark); outline-offset:3px; }

@media (max-width:620px) {
  .mission-samples { padding:15px; }
  .mission-sample-list > li { flex-direction:column; align-items:stretch; gap:10px; }
  .mission-sample-list .button { width:100%; min-height:46px; }
  .mission-replacement { padding:14px; }
  .mission-replacement .button-row { flex-direction:column; align-items:stretch; }
  .mission-replacement .button { min-height:46px; }
  .task-preview > .section-heading { flex-direction:column; align-items:stretch; gap:16px; }
  .task-preview > .section-heading .button { min-height:46px; }
  .pupil-preview-note { padding:15px; }
  .task-pupil-preview .task-detail-top .text-button { min-height:44px; text-align:left; white-space:normal; }
}

/* Teacher review queue uses the same task card and individual decision form. */
.tasks-panel > .section-heading > .button-row { flex-wrap:wrap; justify-content:flex-end; margin:0; }
.review-queue-toolbar { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:22px; align-items:end; margin:25px 0 15px; }
.review-queue-toolbar > div { min-width:0; }
.review-queue-toolbar label { display:block; font-size:13px; font-weight:650; line-height:1.7; margin-bottom:9px; }
.review-queue-toolbar select { width:100%; max-width:370px; min-width:0; min-height:48px; font-size:15px; }
.review-queue-count { color:var(--muted); font-size:13px; line-height:1.7; padding-bottom:10px; }
.review-queue-count strong { font-size:22px; color:var(--ink); }
.review-window { line-height:1.8; overflow-wrap:anywhere; margin:12px 0 24px; }
.review-queue-list .task-reward { font-size:12px; line-height:1.7; white-space:normal; }
.review-queue-list .button { min-height:44px; }
.review-queue-navigation { display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap; padding:18px; border:1px solid var(--border); border-radius:14px; background:var(--lilac); margin:22px 0; min-width:0; }
.review-queue-navigation:empty { display:none; }
.review-queue-navigation p { font-size:13px; line-height:1.8; flex:1 1 220px; overflow-wrap:anywhere; }
.review-queue-navigation .button { min-height:46px; }
.review-queue-panel button:focus-visible, .review-queue-toolbar select:focus-visible, .review-queue-navigation button:focus-visible { outline:3px solid var(--violet-dark); outline-offset:3px; }
#review-queue-heading:focus, #task-detail-heading:focus { outline:2px solid var(--border); outline-offset:5px; }
@media (max-width:620px) {
  .tasks-panel > .section-heading { flex-direction:column; align-items:stretch; gap:16px; }
  .tasks-panel > .section-heading > .button-row { display:flex; justify-content:flex-start; }
  .tasks-panel > .section-heading > .button-row .button { min-height:46px; white-space:normal; flex:1 1 130px; }
  .review-queue-toolbar { grid-template-columns:minmax(0,1fr); gap:12px; margin-top:20px; }
  .review-queue-toolbar select { max-width:none; font-size:16px; }
  .review-queue-count { padding:0; }
  .review-queue-navigation { flex-direction:column; align-items:stretch; padding:15px; }
  .review-queue-navigation p { flex:none; }
  .review-queue-navigation .button { width:100%; }
}

/* School summary (head-teacher tab): a real table on wide screens, labelled cards at phone width. */
.school-period { padding:24px 28px; margin-bottom:22px; min-width:0; }
.school-period-fields { display:flex; flex-wrap:wrap; gap:14px; align-items:flex-end; }
.school-period-fields > div { min-width:0; flex:1 1 150px; max-width:220px; }
.school-period-fields label { display:block; font-size:13px; font-weight:650; margin-bottom:8px; }
.school-period-fields input { width:100%; font-size:14px; }
.school-period-fields .button { min-height:46px; }
.school-presets { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.school-presets .button { font-size:12px; min-height:44px; }
.school-period > .fine-print { margin-top:14px; line-height:1.7; }
.school-period-hint { margin-top:14px; font-size:13px; line-height:1.7; color:var(--red); }
.school-loading { text-align:center; padding:40px 24px; color:var(--muted); }
.school-loading p { font-size:13px; }
.school-skeleton { display:grid; gap:10px; max-width:560px; margin:22px auto 0; }
.school-skeleton span { display:block; height:18px; border-radius:9px; background:var(--lilac); }
.school-summary { padding:30px; min-width:0; margin-bottom:22px; }
.school-summary > .section-heading { gap:14px; align-items:flex-start; }
.school-summary > .section-heading > .button { flex-shrink:0; font-size:12px; }
.school-definitions, .school-definition { border:1px solid var(--border); border-radius:16px; background:var(--paper); padding:18px 20px; margin-bottom:20px; min-width:0; }
.school-definitions > h3 { font-size:15px; margin-bottom:14px; }
.school-definition-item { padding:10px 0; border-top:1px solid var(--border); min-width:0; }
.school-definition-item:first-of-type { border-top:0; padding-top:0; }
.school-definition-item > strong { display:block; font-size:14px; margin-bottom:8px; }
.school-definition-item dl { margin:0; display:grid; gap:6px; }
.school-definition-item dl > div { display:grid; grid-template-columns:118px minmax(0,1fr); gap:10px; font-size:12px; line-height:1.7; }
.school-definition-item dt { color:var(--muted); }
.school-definition-item dd { margin:0; overflow-wrap:anywhere; }
.school-definition > .text-button { margin-top:6px; font-size:12px; }
.school-table-wrap { overflow:auto; border:1px solid var(--border); border-radius:16px; }
.school-table { width:100%; border-collapse:collapse; font-size:13px; font-variant-numeric:tabular-nums; }
.school-table caption { caption-side:top; text-align:left; padding:14px 16px; font-size:12px; line-height:1.7; color:var(--muted); background:var(--white); overflow-wrap:anywhere; }
.school-table th, .school-table td { padding:11px 12px; text-align:right; border-top:1px solid var(--border); vertical-align:top; white-space:nowrap; }
.school-table thead th { background:var(--lilac); color:var(--violet-dark); font-size:11px; font-weight:700; line-height:1.4; border-top:0; }
.school-table thead th > span { display:inline-block; vertical-align:middle; white-space:normal; max-width:96px; }
.school-table th[scope=row], .school-table thead th:first-child { text-align:left; }
.school-table th[scope=row] { font-weight:650; white-space:normal; min-width:120px; }
.school-more-cell { display:none; }
.school-table tfoot th, .school-table tfoot td { background:var(--paper); font-weight:700; border-top:2px solid var(--border); }
.school-class { display:block; font-size:14px; }
.school-flag { display:inline-block; margin:6px 6px 0 0; font-size:10px; line-height:1.5; padding:3px 7px; border-radius:7px; background:var(--lilac); color:var(--muted); }
.school-row.is-inactive td, .school-row.is-inactive .school-class { color:var(--muted); }
.school-row.is-zero td { color:var(--muted); }
.school-definition-toggle { display:inline-grid; place-items:center; width:26px; height:26px; min-height:26px; margin-left:6px; border-radius:50%; border:1px solid var(--border); background:var(--white); color:var(--violet-dark); font-size:12px; font-weight:700; vertical-align:middle; }
.school-definition-toggle[aria-expanded=true] { background:var(--violet); color:var(--white); border-color:var(--violet); }
.school-summary > .fine-print { margin-top:14px; line-height:1.7; }
.school-criteria { margin-top:26px; border-top:1px solid var(--border); padding-top:20px; }
.school-criteria > h3 { font-size:15px; margin-bottom:12px; }
.school-criteria ol { margin:0; padding-left:22px; }
.school-criteria li { padding:8px 0; font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
.school-criteria li small { display:block; font-size:11px; color:var(--muted); }
.school-export { margin-top:26px; border-top:1px solid var(--border); padding-top:20px; }
.school-export > h3 { font-size:15px; margin-bottom:8px; }
.school-export > .fine-print { line-height:1.7; margin-bottom:16px; }
.school-export-ticket { display:flex; flex-wrap:wrap; align-items:center; gap:14px; font-size:12px; color:var(--muted); }
.school-export-ticket .button { text-decoration:none; min-height:46px; }
.school-export-expired { font-size:13px; margin-bottom:12px; color:var(--red); }
@media (max-width:620px) {
  .school-period, .school-summary { padding:22px 18px; border-radius:20px; margin-bottom:18px; }
  .school-period-fields > div { max-width:none; flex-basis:100%; }
  .school-period-fields input { font-size:16px; }
  .school-period-fields .button, .school-presets .button { width:100%; }
  .school-summary > .section-heading { flex-direction:column; align-items:stretch; }
  .school-definition-item dl > div { grid-template-columns:minmax(0,1fr); gap:2px; }
  /* Rows become cards: the four key numbers come first, every cell carries its own label. */
  .school-table-wrap { border:0; overflow:visible; }
  .school-table, .school-table caption, .school-table tbody, .school-table tfoot, .school-table tr, .school-table th, .school-table td { display:block; text-align:left; white-space:normal; }
  .school-table thead { display:none; }
  .school-table caption { padding:0 0 14px; }
  .school-table tr { display:flex; flex-direction:column; border:1px solid var(--border); border-radius:16px; padding:14px 16px; margin-bottom:12px; background:var(--white); }
  .school-table th[scope=row] { order:-2; border-top:0; padding:0 0 10px; min-width:0; }
  .school-table td { display:flex; justify-content:space-between; gap:12px; padding:7px 0; border-top:1px solid var(--border); font-size:13px; }
  .school-table td::before { content:attr(data-label); color:var(--muted); font-size:11px; line-height:1.6; flex:1 1 auto; }
  .school-table td.is-key { order:-1; font-weight:700; font-size:14px; }
  /* Only the four key numbers stay visible; the rest open from «Ещё показатели». */
  .school-table tbody td:not(.is-key):not(.school-more-cell) { display:none; }
  .school-more-cell { display:block; order:1; padding:4px 0 0; border-top:0; }
  .school-more { width:100%; }
  .school-more summary { min-height:44px; padding:11px 0; font-size:12px; color:var(--violet-dark); font-weight:650; }
  .school-more dl { margin:0; display:grid; gap:0; }
  .school-more dl > div { display:flex; justify-content:space-between; gap:12px; padding:7px 0; border-top:1px solid var(--border); font-size:13px; }
  .school-more dt { color:var(--muted); font-size:11px; line-height:1.6; }
  .school-more dd { margin:0; font-variant-numeric:tabular-nums; }
  .school-table th[scope=row] + td.is-key { border-top:0; }
  .school-table tfoot th, .school-table tfoot td { background:transparent; border-top:1px solid var(--border); }
  .school-table tfoot tr { background:var(--paper); }
  .school-definition-toggle { width:32px; height:32px; min-height:32px; }
}

/* Criteria catalog (019): school and class tasks, read-only cards and inline editing. Text labels carry scope and state, not colour alone. */
.criteria-group { display:grid; gap:10px; min-width:0; }
.criteria-group + .criteria-group { margin-top:8px; }
.criteria-group-title { font-size:12px; font-weight:700; color:var(--violet-dark); letter-spacing:.3px; margin:4px 0 0; }
.criterion .criterion-description { color:var(--ink); overflow-wrap:anywhere; }
.selected-criterion-meta { font-size:12px; line-height:1.6; color:var(--muted); margin:0 0 6px; overflow-wrap:anywhere; }
.criteria-catalog { margin-bottom:22px; min-width:0; }
.criteria-catalog > .section-heading { gap:14px; align-items:flex-start; }
.criteria-catalog > .section-heading > .button { flex-shrink:0; font-size:12px; min-height:44px; }
.criteria-catalog > .fine-print { line-height:1.7; margin-bottom:16px; }
.criteria-section { margin-top:22px; min-width:0; }
.criteria-section > h3 { font-size:15px; margin-bottom:10px; overflow-wrap:anywhere; }
.criteria-list { list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.criteria-item { border:1px solid var(--border); border-radius:15px; padding:15px 16px; background:#fdfcfe; min-width:0; }
.criteria-item.is-archived { background:var(--paper); color:var(--muted); }
.criteria-item.is-editing { background:var(--white); border-color:#ad94d2; }
.criteria-item-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.criteria-item-heading strong { font-size:14px; line-height:1.4; overflow-wrap:anywhere; min-width:0; }
.criteria-item .points { color:#88621e; white-space:nowrap; font-size:16px; font-weight:750; }
.criteria-item.is-archived .points { color:var(--muted); }
.criteria-meta { display:flex; flex-wrap:wrap; gap:6px 12px; align-items:center; margin-top:8px; font-size:12px; color:var(--muted); }
.criteria-flag { display:inline-block; font-size:11px; line-height:1.5; padding:2px 8px; border-radius:7px; background:var(--lilac); color:var(--violet-dark); }
.criteria-flag.is-archived { background:#f4ecec; color:var(--red); }
.criteria-description { margin-top:8px; font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
.criteria-readonly { margin-top:10px; font-size:12px; color:var(--muted); }
.criteria-item .button-row { justify-content:flex-start; margin-top:12px; }
.criteria-item .button-row .button { min-height:44px; font-size:12px; }
.criteria-confirm { margin-top:12px; padding:13px 14px; border-radius:12px; background:var(--paper); border:1px solid var(--border); }
.criteria-confirm p { font-size:13px; line-height:1.6; }
.criteria-create { margin:0 0 22px; }
.criteria-create .button { display:inline-flex; align-items:center; gap:8px; min-height:46px; }
.criteria-new { margin-bottom:22px; }
.criteria-catalog .criteria-new, .criteria-catalog .criteria-create { padding:0; border:0; margin-bottom:18px; }
.criteria-form { display:grid; gap:8px; min-width:0; }
.criteria-form > h3 { font-size:16px; margin-bottom:6px; }
.criteria-form label { display:block; font-size:12px; font-weight:650; margin-top:6px; }
.criteria-form input, .criteria-form select { width:100%; font-size:14px; }
.criteria-form textarea { width:100%; display:block; resize:vertical; font-size:14px; line-height:1.6; min-height:90px; font-family:inherit; }
.criteria-form-row { display:grid; grid-template-columns:minmax(0,140px) minmax(0,1fr); gap:12px; }
.criteria-form-row label { margin-bottom:8px; }
.criteria-lock { font-size:12px; line-height:1.6; color:var(--red); padding:9px 12px; border-radius:10px; background:#faf3f3; }
.criteria-form .fine-print, .criteria-form .field-privacy { line-height:1.6; }
.criteria-form .button-row { justify-content:flex-start; margin-top:10px; }
.criteria-empty { margin-bottom:22px; }
@media (max-width:620px) {
  .criteria-catalog { padding:22px 16px; border-radius:20px; margin-bottom:18px; }
  .criteria-catalog > .section-heading { flex-direction:column; align-items:stretch; }
  .criteria-catalog > .section-heading > .button, .criteria-create .button { width:100%; justify-content:center; }
  .criteria-item { padding:13px 12px; }
  .criteria-form-row { grid-template-columns:minmax(0,1fr); gap:0; }
  .criteria-form input, .criteria-form select, .criteria-form textarea { font-size:16px; }
  .criteria-item .button-row, .criteria-form .button-row, .criteria-confirm .button-row { flex-direction:column; }
  .criteria-item .button-row .button, .criteria-form .button-row .button, .criteria-confirm .button { width:100%; min-height:48px; }
  .criteria-new { padding:22px 16px; border-radius:20px; }
}
.criteria-error { font-size:13px; line-height:1.6; color:#82393d; padding:10px 12px; border-radius:10px; border:1px solid #e7bcc2; background:#fff1f2; overflow-wrap:anywhere; }
.criteria-error:focus-visible { outline:3px solid var(--violet); outline-offset:2px; }
.criteria-form [aria-invalid="true"] { border-color:var(--red); box-shadow:0 0 0 1px var(--red); }
.criteria-pending { margin-bottom:22px; border-color:#dfc17d; background:#fff8e8; color:#765d26; overflow-wrap:anywhere; }
.criteria-pending strong { display:block; font-size:15px; }
.criteria-pending p { margin-top:6px; font-size:13px; }
.criteria-pending .button { margin-top:12px; min-height:46px; }
#app-error:focus-visible { outline:3px solid var(--violet); outline-offset:2px; }
@media (max-width:620px) { .criteria-pending { padding:18px 16px; border-radius:20px; } .criteria-pending .button { width:100%; min-height:48px; } }
/* Pilot engagement (021): week coverage, «Отметить остальных», weekly plan, names import. State is always spelled in text. */
.award-selection-actions { flex-wrap:wrap; justify-content:flex-start; column-gap:16px; row-gap:0; }
.award-selection-limit { margin:0 0 8px; color:#82393d; font-size:13px; }
.award-preview .preview-reward strong { overflow-wrap:anywhere; }
.week-coverage { margin-bottom:22px; overflow-wrap:anywhere; }
.week-coverage h2 { margin-top:4px; }
.week-coverage > .muted { font-size:13px; margin-top:6px; }
.week-coverage-list { display:flex; flex-wrap:wrap; gap:8px; list-style:none; padding:0; margin:14px 0 0; }
.week-coverage-list li { font-size:13px; line-height:1.5; padding:6px 11px; border:1px solid var(--border); border-radius:10px; background:var(--lilac); min-width:0; }
.week-coverage-done { font-size:13px; margin-top:12px; color:var(--green); font-weight:650; }
.weekly-plan { margin-top:22px; overflow-wrap:anywhere; }
.weekly-plan > .muted { font-size:13px; margin-top:6px; }
.weekly-plan label { display:block; font-size:13px; font-weight:650; margin:16px 0 8px; }
.weekly-plan select { width:100%; max-width:420px; }
.weekly-plan-actions { justify-content:flex-start; }
.weekly-plan-text { display:block; width:100%; min-height:150px; font-size:14px; line-height:1.7; white-space:pre-wrap; background:#fbfaff; }
.preview-skip-note { margin:18px 0 4px; padding:14px 16px; border:1px solid #dfc17d; border-radius:14px; background:#fff8e8; color:#765d26; overflow-wrap:anywhere; }
.preview-skip-note strong { display:block; font-size:14px; }
.preview-skip-note p { font-size:13px; margin-top:4px; }
.preview-list li.is-skipped { background:#fbfaf6; }
.preview-skip { display:inline-block; margin-left:8px; font-size:11px; line-height:1.5; padding:3px 8px; border-radius:8px; border:1px dashed #c9a85c; color:#765d26; }
.import-format { margin-top:16px; }
.import-format legend { font-size:13px; font-weight:650; margin-bottom:9px; }
.import-format-options { display:flex; flex-wrap:wrap; gap:10px; }
.import-format-option { display:flex; align-items:center; gap:10px; min-height:44px; padding:8px 14px; border:1px solid #cfc4df; border-radius:12px; background:var(--white); cursor:pointer; font-size:14px; }
.import-format-option:has(input:checked) { border-color:var(--violet); background:var(--lilac); font-weight:650; }
.import-shorten { display:flex; gap:12px; align-items:center; min-height:44px; margin:12px 0 4px; font-size:14px; cursor:pointer; }
.import-panel > .muted { overflow-wrap:anywhere; }
.achievement-stage-name { display:block; font-size:12px; font-weight:650; color:var(--ink); }
@media (max-width:620px) {
  .week-coverage, .weekly-plan { padding:20px 16px; border-radius:20px; }
  .weekly-plan-text { font-size:16px; }
  .weekly-plan-actions .button { width:100%; min-height:48px; justify-content:center; }
  .preview-skip { display:block; margin:6px 0 0; width:max-content; max-width:100%; }
  .import-format-option { flex:1 1 100%; }
}
.week-coverage #week-coverage-toggle { margin-top:10px; }
.weekly-plan-status { font-size:13px; font-weight:650; color:var(--green); margin:10px 0 0; }

/* School admin actions (020): cards in one column; each form and confirmation sits under its row and stacks on a phone. */
.staff-panel{padding:30px;margin:22px 0;min-width:0}.staff-panel>.section-heading{align-items:flex-start}.staff-panel>.fine-print{line-height:1.7;margin-bottom:8px}
.staff-list,.staff-classes,.staff-changes{list-style:none;margin:0;padding:0}
.staff-teacher{padding:18px 0;border-top:1px solid var(--border);min-width:0}.staff-teacher:first-child{border-top:0;padding-top:6px}.staff-teacher>h3{font-size:17px;line-height:1.5;overflow-wrap:anywhere}
.staff-class{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;padding:13px 15px;margin-top:10px;border:1px solid var(--border);border-radius:14px;background:#faf8fd;min-width:0}
.staff-class>div:first-child{flex:1 1 220px;min-width:0}.staff-class>div>strong{display:block;font-size:14px;line-height:1.5;overflow-wrap:anywhere}
.staff-class small,.staff-meta{display:block;font-size:11px;line-height:1.7;color:var(--muted);margin-top:4px;overflow-wrap:anywhere}
.staff-actions{display:flex;flex-wrap:wrap;gap:8px}.staff-actions .button{min-height:44px;font-size:12px;white-space:normal}
.staff-block{margin-top:28px;padding-top:22px;border-top:1px solid var(--border);min-width:0}.staff-block>h3{font-size:17px;margin-bottom:6px}
.staff-blocked{font-size:12px;line-height:1.7;margin-top:8px;padding:10px 12px;border-radius:10px;background:#fff5da;border:1px solid #ebdfba;color:#78603b}
.staff-changes>li{padding:13px 0;border-top:1px solid var(--border);min-width:0}.staff-changes>li:first-child{border-top:0}
.staff-changes strong{display:block;font-size:13px;line-height:1.6;overflow-wrap:anywhere}.staff-changes small{display:block;font-size:11px;color:var(--muted);margin-top:3px}.staff-changes p{font-size:12px;line-height:1.7;margin-top:5px;overflow-wrap:anywhere}
.staff-action-panel{flex:1 1 100%;padding:20px;margin-top:6px;border:1px solid #dacfec;border-radius:15px;background:#fff;min-width:0}
.staff-action-panel>h3{font-size:18px;line-height:1.5;overflow-wrap:anywhere}.staff-action-panel>.muted{margin-top:8px;overflow-wrap:anywhere}
.staff-action-panel>label{display:block;font-size:13px;font-weight:650;margin:16px 0 8px}
.staff-action-panel>select,.staff-action-panel>textarea{width:100%;max-width:520px;font-size:14px;line-height:1.6;display:block}
.staff-choice{margin-top:16px;min-width:0}.staff-choice legend{font-size:13px;font-weight:650;margin-bottom:6px;overflow-wrap:anywhere}
.staff-option{display:flex;gap:11px;align-items:flex-start;padding:11px 13px;margin-top:8px;border:1px solid var(--border);border-radius:12px;cursor:pointer;min-height:44px;max-width:520px}
.staff-option input{margin-top:2px}.staff-option strong{display:block;font-size:13px;line-height:1.5}.staff-option small{display:block;font-size:11px;line-height:1.6;color:var(--muted);margin-top:3px}
.staff-option:has(input:checked){border-color:#ad94d2;background:#f3edf9}
.staff-effects{padding:15px 17px;margin:18px 0 6px;border-radius:12px;background:var(--lilac);border:1px solid var(--border);min-width:0}
.staff-effects h3,.staff-effects h4{font-size:13px;margin:0 0 6px}.staff-effects ul{margin:0;padding-left:18px}.staff-effects li{font-size:13px;line-height:1.7;margin:4px 0;overflow-wrap:anywhere}
.staff-effects .fine-print{margin-top:8px}.staff-irreversible{font-size:13px;font-weight:700;color:var(--red);margin-top:10px}
.staff-reason{font-size:13px;line-height:1.7;margin-top:12px;overflow-wrap:anywhere}.staff-action-panel .button{min-height:46px;white-space:normal}
.withdrawal-panel>input,.withdrawal-panel>textarea{display:block;width:100%;max-width:480px;min-height:48px}.withdrawal-panel>.muted{margin-bottom:4px;overflow-wrap:anywhere}
.withdrawal-panel>.fine-print{margin-top:8px}.withdrawal-problem{font-size:13px;line-height:1.7;margin-top:14px;padding:11px 13px;border-radius:10px;background:#fff1f2;border:1px solid #e7bcc2;color:#82393d}
.offer-panel{padding:24px;margin-bottom:22px;border-color:#c7daf3;background:#eef6ff;min-width:0}.offer-panel h2{font-size:22px;line-height:1.4;overflow-wrap:anywhere;margin-bottom:6px}
.offer-panel>.muted{overflow-wrap:anywhere;margin-top:4px}.offer-message{padding:13px 15px;margin:14px 0 0;border-radius:12px;background:#fff;border:1px solid #c7daf3;min-width:0}.offer-message strong{display:block;font-size:12px;color:#445c77}.offer-message p{font-size:14px;line-height:1.7;margin-top:5px;white-space:pre-wrap;overflow-wrap:anywhere}
.withdrawn-pupils{margin-top:18px;border-top:1px solid var(--border);padding-top:4px}.withdrawn-pupils>summary{font-size:13px;font-weight:650;color:var(--muted)}.withdrawn-pupils>.fine-print{margin-bottom:6px}.withdrawn-pupils .person-name{color:var(--muted)}.offer-panel .staff-effects{background:#fff}.offer-note{margin:-8px 0 18px}
.withdrawn-panel{max-width:620px;margin:24px auto 40px;padding:34px;text-align:center}.withdrawn-panel>svg{color:#9274b8;margin-bottom:14px}
.withdrawn-panel h1{font-size:28px;line-height:1.3;margin-bottom:12px}.withdrawn-panel>p{font-size:16px;line-height:1.7}.withdrawn-panel>.fine-print{font-size:12px;margin-top:12px}
@media(max-width:620px){.staff-panel{padding:22px 18px;border-radius:20px}.staff-panel>.section-heading{flex-direction:column;align-items:stretch;gap:12px}.staff-panel>.section-heading>.button{width:100%;min-height:48px}
  .staff-class{flex-direction:column;align-items:stretch;padding:13px}.staff-class>div:first-child{flex-basis:auto}.staff-actions{flex-direction:column}.staff-actions .button{width:100%;min-height:48px}
  .staff-action-panel{padding:16px 14px}.staff-action-panel>h3{font-size:17px}.staff-action-panel>select,.staff-action-panel>textarea,.withdrawal-panel>input,.withdrawal-panel>textarea{font-size:16px;min-height:48px;max-width:none}
  .staff-action-panel .button-row,.offer-panel .button-row{flex-direction:column;align-items:stretch}.staff-action-panel .button,.offer-panel .button{width:100%;min-height:48px}
  .staff-effects{padding:13px 14px}.staff-effects ul{padding-left:16px}.offer-panel{padding:20px 18px;border-radius:20px}.offer-panel h2{font-size:20px}
  .withdrawn-panel{padding:26px 20px;border-radius:20px;margin-top:16px}.withdrawn-panel h1{font-size:24px}.withdrawn-panel>p{font-size:15px}}

/* Walkthrough 28.10 F4: what the child can do for stars */
.student-criteria { margin-top: 1.5rem; }
.student-criteria-group { margin: 1rem 0 .5rem; font-size: 1rem; }
.student-criteria-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.student-criterion { border: 1px solid var(--line, #e5e0f0); border-radius: 12px; padding: .45rem .7rem; overflow-wrap: anywhere; }
.student-criteria-more { margin-top: .5rem; }
.student-criteria-more > summary { cursor: pointer; font-weight: 600; padding: .4rem 0; }
.student-criterion summary, div.student-criterion { display: grid; grid-template-columns: 1fr auto; gap: .15rem .6rem; align-items: baseline; cursor: pointer; }
div.student-criterion { cursor: default; }
.student-criterion small { grid-column: 1 / -1; color: var(--muted, #6b6480); }
.student-criterion p { margin: .5rem 0 0; }

/* ==== Design pass 29.10: brighter child cabinet, faster teacher award on a phone ==== */
:root { --night:#33227a; --night-2:#5b3fd0; --sun:#f6b93b; --sun-deep:#a66a00; --sun-soft:#fff4d6; --sun-line:#f1d38a; --mint:#e7f6ee; }
body { background:radial-gradient(900px 340px at 50% -120px,#ece3ff 0%,rgba(236,227,255,0) 70%),#f8f6fc; }
.panel { box-shadow:0 14px 34px -26px rgba(56,45,80,.45); }
.primary { background:linear-gradient(135deg,#7b56d6,#5d3cb8); box-shadow:0 10px 22px -12px rgba(93,60,184,.75); }
.primary:hover:not(:disabled) { background:linear-gradient(135deg,#6c47c9,#4e2fa4); }
.primary:disabled { box-shadow:none; }

/* Tabs: the active section reads at a glance */
.tab { background:#fff; border:1px solid var(--border); color:#6d6280; }
.tab.active { background:var(--violet); border-color:var(--violet); color:#fff; box-shadow:0 8px 18px -10px rgba(93,60,184,.8); }
.tab.active svg { color:var(--sun); }

/* Child hero: the balance is the star of the page */
.student-hero { border:0; color:#fff; box-shadow:0 22px 44px -24px rgba(60,35,160,.7);
  background:
    radial-gradient(2px 2px at 18% 22%,rgba(255,255,255,.9) 50%,transparent 51%),
    radial-gradient(1.5px 1.5px at 42% 78%,rgba(255,255,255,.7) 50%,transparent 51%),
    radial-gradient(2px 2px at 63% 14%,rgba(255,255,255,.8) 50%,transparent 51%),
    radial-gradient(1.5px 1.5px at 8% 70%,rgba(255,255,255,.6) 50%,transparent 51%),
    radial-gradient(260px 200px at 85% 45%,rgba(255,214,120,.35),transparent 70%),
    linear-gradient(140deg,#4b2fb8 0%,#6f45d3 52%,#a356cf 100%); }
.student-hero .eyebrow { color:#f6e6ff; }
.student-hero .balance { color:#fff; text-shadow:0 4px 18px rgba(30,10,90,.35); }
.student-hero .balance>span { color:var(--sun); text-shadow:0 0 18px rgba(246,185,59,.85); animation:star-glow 3.2s ease-in-out infinite; }
.student-hero h2 { color:#fff; }
.student-hero .student-score>p:last-child { color:#eadfff; }
.student-avatar::before { content:''; position:absolute; inset:12% 6% 4%; border-radius:50%; background:radial-gradient(circle,rgba(255,255,255,.55),rgba(255,255,255,0) 68%); }
.student-avatar .avatar-svg { position:relative; }
.student-avatar>span { background:rgba(255,255,255,.18); border-color:rgba(255,255,255,.45); color:#fff; backdrop-filter:blur(4px); }
@keyframes star-glow { 0%,100% { transform:scale(1) rotate(0); } 50% { transform:scale(1.12) rotate(8deg); } }

.student-details { background:var(--sun-soft); border-color:var(--sun-line); }
.student-details .week-symbol { color:var(--sun-deep); }
.student-details .season { color:#8a6a2a; }

/* Seasonal path: reached steps glow gold, the next goal is outlined */
.achievement-progress { height:16px; border:0; background:#efe8f8; }
.achievement-progress::-webkit-progress-bar { background:#efe8f8; }
.achievement-progress::-webkit-progress-value { background:linear-gradient(90deg,#f6b93b,#f08a3c); }
.achievement-progress::-moz-progress-bar { background:linear-gradient(90deg,#f6b93b,#f08a3c); }
.achievement-stages>li[data-milestone-state="reached"] { border-color:var(--sun-line); background:linear-gradient(160deg,#fff7df,#ffeec2); }
.achievement-stages>li[data-milestone-state="reached"] .achievement-stage-icon { background:var(--sun); border-color:var(--sun); color:#fff; box-shadow:0 4px 10px -4px rgba(166,106,0,.8); }
.achievement-stages>li[data-milestone-state="reached"] .achievement-stage-state { color:var(--sun-deep); font-weight:650; }
.achievement-stages>li[data-milestone-state="reached"]+li[data-milestone-state="pending"] { border:2px solid var(--violet); background:#f6f1ff; }
.achievement-stages>li[data-milestone-state="reached"]+li[data-milestone-state="pending"] .achievement-stage-state { font-size:0; }
.achievement-stages>li[data-milestone-state="reached"]+li[data-milestone-state="pending"] .achievement-stage-state::before { content:'Следующая цель'; font-size:11px; color:var(--violet); font-weight:700; }
.achievement-explanation { font-size:12px; line-height:1.7; }
.achievement-action>.button.primary { background:#fff; color:var(--violet-dark); border:1.5px solid #cdbbec; box-shadow:none; }

/* «За что можно получить звёзды»: cards a child wants to open */
.student-criteria { margin-top:28px; }
.student-criteria-group { font-size:17px; margin:18px 0 10px; }
.student-criteria-list { gap:10px; }
.student-criterion { background:#fff; border:1px solid var(--border); border-radius:16px; padding:12px 14px; transition:border-color .15s,box-shadow .15s; }
.student-criterion summary, div.student-criterion { grid-template-columns:36px minmax(0,1fr) auto; gap:2px 12px; align-items:center; min-height:0; padding:0; font-size:15px; color:var(--ink); list-style:none; }
details.student-criterion>summary { padding:0; }
.student-criterion summary::-webkit-details-marker { display:none; }
.student-criterion summary::before, div.student-criterion::before { content:'✦'; grid-row:1 / span 2; display:grid; place-items:center; width:36px; height:36px; border-radius:12px; background:var(--sun-soft); color:var(--sun-deep); font-size:18px; }
.student-criterion-title { font-weight:650; line-height:1.35; color:var(--ink); }
.student-criterion .points { background:var(--sun-soft); color:var(--sun-deep); border:1px solid var(--sun-line); border-radius:999px; padding:3px 10px; font-size:14px; font-weight:750; white-space:nowrap; }
.student-criterion small { grid-column:2 / -1; font-size:12px; }
.student-criterion p { font-size:14px; line-height:1.6; color:#4d4462; margin:10px 0 2px 48px; }
details.student-criterion[open] { border-color:#b9a2e3; box-shadow:0 10px 24px -18px rgba(93,60,184,.7); }
.student-criteria-more>summary { display:inline-flex; align-items:center; gap:8px; margin-top:4px; padding:10px 16px; min-height:44px; border-radius:999px; background:#f1ebfb; color:var(--violet-dark); font-size:14px; font-weight:650; list-style:none; }
.student-criteria-more>summary::-webkit-details-marker { display:none; }
.student-criteria-more>summary::after { content:'↓'; }
.student-criteria-more[open]>summary::after { content:'↑'; }
.student-criteria-more[open]>summary { margin-bottom:10px; }

/* History: rewards warm, corrections calm */
.entry-amount { color:var(--sun-deep); }
.entry-amount span { color:var(--sun); }
.correction-entry .entry-amount, .correction-entry .entry-amount span { color:#9a93a6; }
.correction-entry h3 { color:#6f6780; }
.correction-entry .entry-icon { background:#f1eef5; color:#8a829a; }

/* Teacher award: compact task list in its own scroll, clear choice */
.award-panel .criteria { max-height:min(58vh,520px); overflow-y:auto; overscroll-behavior:contain; padding:0 6px 6px 0; scrollbar-width:thin;
  border-bottom:1px solid var(--border); box-shadow:inset 0 -18px 14px -14px rgba(56,45,80,.22); }
.award-panel .criteria-group-title { position:sticky; top:0; z-index:1; background:#fff; margin:0; padding:8px 0 6px; }
.award-panel .criterion { padding:10px 12px; border-radius:13px; }
.award-panel .criterion small { margin-top:2px; }
.award-panel .criterion.selected { border:2px solid var(--violet); background:#f4eeff; box-shadow:0 8px 18px -14px rgba(93,60,184,.9); }
.award-panel .criterion .points { background:var(--sun-soft); border:1px solid var(--sun-line); border-radius:999px; padding:2px 9px; font-size:14px; color:var(--sun-deep); }
.week-coverage-list li { background:var(--sun-soft); border-color:var(--sun-line); color:#5d4a1c; }

.award-dock { display:none; }

@media (max-width:620px) {
  .eyebrow, .student-score .eyebrow, .achievement-heading .eyebrow, .history-panel .eyebrow { font-size:11px; letter-spacing:1px; }
  .tabs { flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; margin-left:-16px; margin-right:-16px; padding:2px 16px 4px; }
  .tabs::-webkit-scrollbar { display:none; }
  .tab { flex:1 0 auto; white-space:nowrap; font-size:13px; padding:11px 14px; }
  .student-hero { padding:24px 20px; }
  .balance { font-size:72px; }
  .student-score h2 { font-size:17px; }
  .student-score>p:last-child { font-size:12px; }
  .student-details strong { font-size:14px; }
  .student-details small { font-size:11px; }
  .achievement-stage-state { font-size:11px; }
  .criterion small { font-size:11px; }
  .kindness-note { font-size:12px; }
  .entry-amount { font-size:20px; }
  .award-panel .criteria { max-height:52vh; }
  html:has(.award-dock) { scroll-padding-bottom:110px; }
  .shell:has(.award-dock) { padding-bottom:calc(108px + env(safe-area-inset-bottom)); }
  .selection-summary #preview-button { display:none; }
  .award-dock { display:flex; position:fixed; bottom:calc(8px + env(safe-area-inset-bottom)); inset-inline:12px; z-index:3;
    align-items:center; justify-content:space-between; gap:12px; padding:10px 10px 10px 16px; border-radius:18px; background:var(--night); color:#fff;
    box-shadow:0 16px 30px -12px rgba(51,34,122,.75); }
  .award-dock-copy { min-width:0; font-size:13px; line-height:1.3; }
  .award-dock-copy strong { font-size:20px; margin-right:4px; color:var(--sun); }
  .award-dock-copy small { display:block; color:#d9cff7; font-size:11px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .award-dock-button { flex:0 0 auto; background:var(--sun); color:var(--night); font-weight:750; min-height:44px; padding:10px 14px; }
  .award-dock-button:disabled { background:#5c4c9c; color:#c9bff0; opacity:1; }
}
/* A couple of larger sparkles over the child's balance and a gold reward pill on task cards */
.student-hero .student-score::before, .student-hero .student-score::after { content:'✦'; position:absolute; color:rgba(255,236,170,.75); pointer-events:none; }
.student-hero .student-score::before { top:-6px; right:8%; font-size:18px; }
.student-hero .student-score::after { bottom:-4px; right:30%; font-size:12px; color:rgba(255,255,255,.55); }
.task-reward:not(:empty) { display:inline-flex; align-items:center; gap:4px; background:var(--sun-soft); color:var(--sun-deep); border:1px solid var(--sun-line); border-radius:999px; padding:4px 12px; font-weight:750; }
@media (prefers-reduced-motion:reduce) { .student-hero .balance>span { animation:none; } }
/* 025: administrator MFA, local QR and one-time recovery codes. */
.mfa-panel{max-width:640px;margin:24px auto;padding:clamp(20px,5vw,36px)}
.mfa-panel h1{font-size:clamp(24px,6vw,34px);line-height:1.2}
.mfa-panel p{line-height:1.65}.mfa-panel img{max-width:100%;height:auto}
.mfa-panel .invite-code{display:block;overflow-wrap:anywhere;white-space:normal;letter-spacing:.4px}
.mfa-panel input[type=text]{font-size:18px;min-height:48px;width:100%;box-sizing:border-box}
.mfa-panel ol{padding-left:24px;line-height:2}.mfa-panel li code{overflow-wrap:anywhere}
.mfa-panel .text-button{margin-top:16px;min-height:44px}

/* School management: existing tools, grouped by the administrator's task. */
.school-journal>h3{font-size:22px;line-height:1.4;margin-bottom:10px}
.journal-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:24px 0;padding-bottom:22px;border-bottom:1px solid var(--border)}
.journal-filters>div{min-width:0}.journal-filters label{display:block;font-size:13px;font-weight:600;margin-bottom:7px}
.journal-filters input,.journal-filters select{display:block;width:100%;min-width:0;min-height:46px;box-sizing:border-box}
.journal-filter-actions{align-self:end;flex-wrap:wrap}.journal-filter-note{grid-column:1/-1;margin:0;overflow-wrap:anywhere}
#journal-filter-hint{color:var(--red);line-height:1.6}.journal-list{list-style:none;margin:20px 0;padding:0}
.journal-entry{padding:20px 0;border-top:1px solid var(--border);min-width:0;overflow-wrap:anywhere}
.journal-entry-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.journal-entry h4{font-size:17px;line-height:1.5;min-width:0}
.journal-amount{font-size:21px;white-space:nowrap;color:var(--sun-deep)}
.journal-entry[data-journal-status=correction] .journal-amount{color:var(--muted)}
.journal-status{font-weight:650;color:var(--violet-dark)}.journal-entry p{font-size:13px;line-height:1.7;margin-top:7px}
.journal-person{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:10px 0}.journal-person .person-id{margin:0}
.journal-person>span:last-child{font-size:13px}.journal-reason{white-space:pre-wrap}
.journal-related{margin-top:12px;padding:12px 14px;background:var(--lilac);border-radius:12px}.journal-related>summary{min-height:44px;line-height:1.6;cursor:pointer;font-size:13px;font-weight:650;overflow-wrap:anywhere}
.journal-access-history{margin-top:20px}.journal-access-history>summary{cursor:pointer;min-height:48px;line-height:1.5;padding:12px 16px;font-weight:650;overflow-wrap:anywhere}
.school-journal .pagination{flex-wrap:wrap;gap:12px}.school-journal>.muted{overflow-wrap:anywhere}
@media(max-width:620px){.journal-filters{grid-template-columns:minmax(0,1fr);gap:14px}.journal-filters input,.journal-filters select{font-size:16px;min-height:48px}
 .journal-filter-actions{align-items:stretch;flex-direction:column}.journal-filter-actions>.button{min-height:48px;width:100%}
 .journal-entry-heading{gap:10px}.journal-entry h4{font-size:16px}.journal-amount{font-size:19px}.journal-person{display:grid;gap:4px}
 .school-journal .pagination{display:grid;grid-template-columns:minmax(0,1fr)}.school-journal .pagination>.button{min-height:48px;width:100%}.school-journal .pagination>span{text-align:center}}
.management-context{display:flex;justify-content:space-between;align-items:end;gap:24px;margin:28px 0 20px}
.management-context>div{min-width:0}.management-context label{display:block;margin-bottom:6px}
.management-context h2{margin:5px 0 8px}.management-context p{overflow-wrap:anywhere}
.management-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:24px;align-items:start}
.management-nav{display:grid;gap:6px;position:sticky;top:18px;background:var(--white);border:1px solid var(--border);border-radius:18px;padding:10px}
.management-nav button{display:flex;align-items:center;gap:10px;min-width:0;min-height:48px;padding:12px;text-align:left;border-radius:10px;font-size:14px;font-weight:600;line-height:1.35}
.management-nav button span{overflow-wrap:anywhere}.management-nav button:hover:not(:disabled){background:var(--lilac)}
.management-nav button[aria-current=page]{background:var(--violet-dark);color:var(--white);box-shadow:inset 3px 0 var(--gold)}
.management-nav button[aria-current=page]:hover:not(:disabled){background:var(--violet-dark)}
.management-content{min-width:0}.management-content>.admin-intro{margin-top:0}
.management-overview{border-top:4px solid var(--gold)}.management-overview h3{font-size:21px;margin-bottom:10px}
.management-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:24px 0}
.management-metrics>div{padding:16px;border-radius:12px;background:var(--lilac)}.management-metrics dt{font-size:13px;line-height:1.5}
.management-metrics dd{font-size:32px;font-weight:700;margin:6px 0 0;color:var(--violet-dark)}
.management-settings-list{margin:22px 0 0}.management-settings-list>div{display:grid;grid-template-columns:minmax(110px,1fr) minmax(0,2fr);gap:16px;padding:14px 0;border-top:1px solid var(--border)}
.management-settings-list dt{color:var(--muted)}.management-settings-list dd{margin:0;overflow-wrap:anywhere}
@media(max-width:760px){
 .management-context{align-items:stretch;flex-direction:column;gap:16px;margin-top:22px}.management-context select{width:100%}
 .management-layout{grid-template-columns:minmax(0,1fr);gap:20px}.management-nav{position:static;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:8px}
 .management-nav button{padding:10px 9px;gap:7px;font-size:13px}.management-nav button:last-child{grid-column:1/-1}
 .management-metrics{gap:10px}.management-metrics>div{padding:12px}.management-metrics dd{font-size:28px}
 .management-settings-list>div{grid-template-columns:minmax(0,1fr);gap:5px}
}
/* T011: factual activity and explicitly scoped class reports. */
.teacher-activity { margin-block: 1.5rem; padding-block-start: 1rem; border-top: 1px solid var(--line, #ddd8eb); }
.teacher-activity-wrap { max-width: 100%; overflow-x: auto; }
.teacher-activity-table { width: 100%; border-collapse: collapse; text-align: left; }
.teacher-activity-table caption { text-align: left; font-size: .8rem; padding-block: .75rem; }
.teacher-activity-table th, .teacher-activity-table td { padding: .8rem .65rem; vertical-align: top; border-bottom: 1px solid var(--line, #ddd8eb); overflow-wrap: anywhere; }
.teacher-activity-table thead th { font-size: .8rem; }
.teacher-activity-table th[scope="row"] { width: 36%; }
.class-report-entry { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; align-items: center; justify-content: space-between; margin-block-end: 1rem; }
.class-report-entry p { flex: 1 1 230px; margin: 0; }
.class-report, .class-report #class-report-result { min-width: 0; }
.class-report .school-period { margin-block: 1.5rem; }
.class-report #class-report-result:focus, #report-permission-title:focus { outline: 2px solid var(--purple, #7055ad); outline-offset: 4px; }
.report-permission-control { flex-basis: 100%; display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; }
.report-permission-control p { margin: 0; }
.report-permission-confirm { flex-basis: 100%; padding: 1rem; border: 1px solid var(--line, #ddd8eb); border-radius: 16px; background: var(--surface, #fff); }
.report-permission-confirm p, .class-report p { overflow-wrap: anywhere; }
@media (max-width: 600px) {
  .teacher-activity-table, .teacher-activity-table tbody, .teacher-activity-table tr, .teacher-activity-table th[scope="row"], .teacher-activity-table td { display: block; width: 100%; }
  .teacher-activity-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .teacher-activity-table tr { padding-block: .5rem; border-bottom: 1px solid var(--line, #ddd8eb); }
  .teacher-activity-table th[scope="row"] { border: 0; }
  .teacher-activity-table td { display: flex; justify-content: space-between; gap: 1rem; padding-block: .35rem; border: 0; }
  .teacher-activity-table td::before { content: attr(data-label); font-weight: 400; }
  .teacher-activity-table caption { display: block; }
  .class-report-entry .button { width: 100%; }
  .class-report .section-heading { flex-wrap: wrap; }
}
/* MAX reuses the school interface; SDK viewport updates also cover the native keyboard. */
.max-home.brand { border: 0; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.max-shell { min-height: max(12rem, calc(var(--max-viewport-height, 100dvh) - 15rem)); padding-bottom: max(2rem, env(safe-area-inset-bottom)); }
.max-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; color: #615a76; font-size: .875rem; }
.max-toolbar button { min-height: 44px; }
.max-access { max-width: 38rem; margin-inline: auto; }
.max-access h1 { font-size: clamp(1.6rem, 5vw, 2.3rem); line-height: 1.2; }
.max-access input, .max-invites input, .max-invites select { min-width: 0; max-width: 100%; }
.max-access p, .max-invites p { overflow-wrap: anywhere; }
.max-invite-list { list-style: none; padding: 0; display: grid; gap: .75rem; }
.max-invite-list li { display: grid; gap: .5rem; padding: 1rem; background: #f6f3fb; border: 1px solid #e5dfef; border-radius: 1rem; overflow-wrap: anywhere; }
.max-invite-list span { color: #615a76; font-size: .875rem; }
.max-invites .invite-code { display: block; max-width: 100%; overflow-wrap: anywhere; white-space: normal; margin-block: .75rem; }
.max-invites .check-label { display: flex; align-items: flex-start; gap: .65rem; line-height: 1.45; }
.max-invites .check-label input { flex: 0 0 auto; margin-top: .2rem; }
.max-invites .check-label input[type="checkbox"] { width: 20px; min-width: 20px; max-width: 20px; height: 20px; flex: 0 0 20px; }
.max-invites .message.success { display: block; }
.max-access .task-form .button, .max-invites .task-form .button { margin-top: .75rem; }

/* 08.11 UX audit (impeccable): readable on phones, never smaller than on a computer.
   Meta labels stay >= 11px, everything else >= 12px; controls in the header reach 44px. */
:root{--sun-deep:#8b5a00;--muted:#6b6179}
.criterion .points,.criteria-item .points,.selected-criterion span{color:#8b5a00}
.kindness-note,.kindness-note p{color:#456650}
.eyebrow,.step-label,.task-detail>.eyebrow{font-size:11px}
.demo-strip,.mode-strip{font-size:12px}
.person-id,.selected-list .person-id,.preview-total small,.entry-date,.corrected-label,.row-number,.task-status,.task-late,.task-hint small,.attempt-heading>span,.attempt-badges,.attempt-feedback small,.link-state,.link-account small,.link-account span,.link-own-list small,.school-flag{font-size:11px}
.correction-entry .entry-amount,.history-entry.correction-entry .entry-amount{color:#6f6880}
@media (max-width:620px){
  .eyebrow,.login-story>.eyebrow,.student-score .eyebrow,.history-panel .eyebrow,.cabinet-heading .eyebrow,.achievement-heading .eyebrow,.step-label{font-size:11px;letter-spacing:.06em}
  .page-footer,.header-note,.account-name,.demo-strip,.mode-strip,.profile-button small,.criterion small,.person-id,.entry-person .person-id,.admin-pupils .person-id,.pagination>span,.preview-reward small,.preview-panel .fine-print,.student-score>p:last-child,.student-details small,.student-avatar>span,.season,.entry-date,.corrected-label,.kindness-note,.message small,.import-row .fine-print,.import-confirm>.fine-print,.task-status,.task-late,.admin-pupils .task-status,.link-roster-list .task-status,.achievement-stage-state,.entry-achievement>small,.login-story>p:not(.eyebrow),.cabinet-heading .muted,.class-toolbar label,.entry-amount span,.entry-person .person-name,.entry-reason,.import-form>.fine-print,.task-form .fine-print,.field-privacy,.task-detail-terms,.school-table td::before,.school-more dt,.award-dock-copy small{font-size:12px}
  .tab,.search-form>.button,.pagination .button,.reverse-form .button,.task-selection-actions .text-button,.link-roster-list .button,.link-request .button,.admin-pupil-actions .text-button,.link-roster-list [data-rebind-student]{font-size:12px}
  .account .text-button,.cabinet-heading>.text-button{font-size:12px;min-height:44px;padding:6px 10px}
  .season{max-width:none;white-space:nowrap}
  .student-score>p:last-child{max-width:200px}
}
