@font-face{font-family:Inter;src:url(/fonts/Inter.ttf) format("truetype");font-weight:100 900;font-display:swap}@font-face{font-family:Noto;src:url(/fonts/NotoSans.ttf) format("truetype");font-weight:100 900;font-display:swap}:root{font-family:Inter,sans-serif;color:#242522;background:#fafaf8;font-synthesis:none;font-size:14px;--ink: #242522;--muted: #686a64;--green: #9a5b12;--line: #e5e5e0;--soft: #f3f3ef;--paper: #fff;--error: #9c2828}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #ad7023;outline-offset:3px}::selection{background:#f3d4a0;color:#39260e}input,textarea{caret-color:var(--green)}h1,h2,h3,p{margin:0}h1{font-size:28px;line-height:1.25;letter-spacing:-.035em;font-weight:650;text-wrap:balance}h2{font-size:16px;letter-spacing:-.02em;font-weight:650}h3{font-size:15px;font-weight:650}p{line-height:1.65}small{font-size:12px}.muted,.form-hint{color:var(--muted)}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #d9dad4;border-radius:8px;background:var(--paper);color:var(--ink);padding:11px 15px;font-weight:550;line-height:1.3;min-height:42px;transition:background .15s}.button:hover:not(:disabled){background:#f3f3ef}.button.primary{background:var(--green);border-color:var(--green);color:#fff}.button.primary:hover:not(:disabled){background:#7f490d}.button.small{padding:8px 12px;font-size:12px;min-height:34px}.button.ghost{background:transparent;border-color:transparent}.button.ghost:hover{background:#efefeb}.full{width:100%}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:33px;height:33px;background:transparent;border:0;border-radius:6px;color:var(--ink)}.icon-button:hover:not(:disabled){background:#eeeee9}.icon-button.danger{color:var(--error)}.demo-bar{min-height:34px;padding:5px 26px;background:#f0f0ec;color:#555750;display:flex;align-items:center;justify-content:space-between;font-size:11px;gap:10px}.demo-bar div{display:flex;gap:4px}.demo-bar button{border:0;background:none;font-size:11px;padding:4px 10px;border-radius:4px;color:inherit}.demo-bar button.active{background:#fff;font-weight:700}.app-body{display:flex;min-height:calc(100vh - 34px)}.sidebar{width:232px;flex-shrink:0;padding:28px 16px 18px;border-right:1px solid var(--line);background:#f5f5f1;display:flex;flex-direction:column;position:sticky;top:0;height:calc(100vh - 34px)}.brand{display:flex;align-items:center;font-size:23px;font-weight:750;letter-spacing:-.035em;padding:0 12px;gap:10px}.brand-mark{display:flex;align-items:center;justify-content:center;color:#fff;background:var(--green);width:37px;height:39px;border-radius:10px}.space-label{font-size:11px;color:var(--muted);margin:17px 13px 30px}.sidebar nav{display:flex;flex-direction:column;gap:7px}.nav-item{display:flex;align-items:center;gap:11px;border:0;padding:12px 13px;background:transparent;color:var(--muted);text-align:left;border-radius:7px;font-size:13px}.nav-item span{margin-left:auto;font-size:11px}.nav-item.active{background:#f5e6ce;color:#75450e;font-weight:650}.nav-item:hover{background:#eeeee8}.profile{margin-top:auto;border-top:1px solid #e0e1da;padding-top:18px;display:flex;gap:9px;align-items:center}.profile strong{font-size:12px;display:block}.profile small{color:var(--muted);font-size:10px;display:block}.profile .icon-button{margin-left:auto}.avatar{display:inline-flex;justify-content:center;align-items:center;width:34px;height:34px;border-radius:50%;background:#e9e9e2;color:#55574e;flex-shrink:0;font-size:12px;font-weight:650}.main{padding:44px 44px 32px;min-width:0;flex:1}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:36px}.section-heading p{font-size:13px;color:var(--muted);margin-top:9px;max-width:65ch}.section-heading>.button{flex-shrink:0}.section-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.section-toolbar h2{display:flex;align-items:center;gap:10px}.count{font-size:11px;background:#efefea;padding:3px 7px;border-radius:5px;color:#5a5c54}.filter-label{display:flex;flex-direction:row;align-items:center;gap:10px;color:var(--muted);font-size:12px}.filter-label select{width:auto;padding:8px 30px 8px 10px;background:transparent}.work-table{border:1px solid var(--line);border-radius:10px;overflow:hidden}.table-heading,.work-row{display:grid;grid-template-columns:minmax(200px,1.8fr) minmax(115px,1fr) minmax(90px,.65fr) minmax(135px,auto);align-items:center;gap:20px}.table-heading{padding:14px 17px;background:#f6f6f3;color:#65675e;font-size:12px;font-weight:500;letter-spacing:0}.work-row{min-height:82px;padding:18px 17px;background:#fff;border-top:1px solid var(--line);font-size:12px}.work-row:hover{background:#fcfcf9}.work-row>.button{justify-self:end}.row-title{display:flex;align-items:center;gap:13px;min-width:0}.row-title strong{font-size:13px;display:block;overflow-wrap:anywhere}.row-title small{color:var(--muted);display:block;font-size:12px;margin-top:5px}.file-icon{width:39px;height:46px;background:#f7eddd;color:#965d1c;display:flex;align-items:center;justify-content:center;border-radius:5px;flex-shrink:0}.empty{display:flex;flex-direction:column;align-items:center;gap:10px;padding:55px 20px;text-align:center;color:var(--muted)}.empty h3{color:var(--ink)}.empty p{max-width:50ch;font-size:13px}.import-panel{padding:25px;background:#f5f5f1;margin:-15px 0 34px;border-radius:12px}.import-panel h2{margin-bottom:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.form-hint{font-size:11px;margin:12px 0 18px}label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:550}input,select,textarea{width:100%;border:1px solid #d3d5cc;background:#fff;color:var(--ink);border-radius:6px;padding:10px 11px;min-height:40px}textarea{resize:vertical;line-height:1.6}input::placeholder,textarea::placeholder{color:#70736a}form>label{margin:16px 0}input[type=file]{font-size:11px}input[type=file]::file-selector-button{border:0;border-radius:3px;padding:5px 8px;margin-right:10px;color:var(--green);background:var(--soft)}.notice{padding:13px 17px;background:#f4eddf;border-radius:7px;margin-bottom:20px;font-size:13px;line-height:1.6;overflow-wrap:anywhere}.notice.error{background:#f8e9e5;color:#8d2928}.notice.success{background:#e5f0df;color:#275333}.notice .button{margin:10px 8px 0 0}.class-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(240px,1fr);gap:50px}.inline-form{display:flex;align-items:end;gap:12px;margin:20px 0 30px}.inline-form label{flex:1}.class-roster{border-top:1px solid var(--line);padding:24px 0}.class-roster p{margin-top:12px}.class-roster ul{list-style:none;padding:0;margin:16px 0 0}.class-roster li{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--line);font-size:12px}.class-roster small{color:var(--muted)}.add-student{background:#f5f5f1;padding:25px;border-radius:12px;align-self:start}.add-student>p{font-size:12px;margin-top:10px}.welcome{min-height:100vh;padding:70px 30px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:22px;text-align:center}.welcome-brand{display:flex;align-items:center;gap:12px;font-size:25px;font-weight:700;margin-bottom:15px}.welcome h1{font-size:42px;max-width:700px}.welcome p{color:var(--muted);max-width:60ch}.welcome small{color:var(--muted);max-width:55ch}.document-main{padding:22px 26px}.work-heading{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin-bottom:22px}.work-heading-info{min-width:180px}.work-heading h1{font-size:21px}.work-heading p{font-size:11px;color:var(--muted);margin-top:5px}.work-heading-actions{margin-left:auto;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.work-heading-actions .button{font-size:11px;padding:9px 11px}.status{display:inline-flex;align-items:center;gap:6px;color:#64665c;font-size:11px;background:#efefe9;border:0;border-radius:5px;padding:6px 9px;justify-self:start}.status.done{background:#e3efd9;color:#345829}.status.sync{background:none;font-size:10px}.document-and-review{display:grid;grid-template-columns:minmax(0,1fr);gap:22px}.document-and-review.with-review{grid-template-columns:minmax(0,1fr) 260px}.review-panel{padding:22px 18px;background:#fff;border:1px solid var(--line);border-radius:12px;align-self:start}.review-panel h2{font-size:17px}.review-panel>.muted{font-size:11px;margin-top:10px}.review-panel .button{font-size:11px;margin-top:10px}.grade-fields{display:flex;align-items:end;gap:12px;margin:24px 0 18px}.grade-fields label{flex:1}.grade-fields input{font-size:24px;font-weight:600;padding:8px}.grade-fields>span{padding-bottom:12px;font-size:18px;color:var(--muted)}.private-section{border-top:1px solid var(--line);margin-top:25px;padding-top:22px}.private-section h3{display:flex;align-items:center;gap:8px;font-size:13px}.private-section p{font-size:11px;margin-top:9px}.pdf-editor{border:1px solid var(--line);min-width:0;background:#eeeee9;border-radius:10px;overflow:hidden}.pdf-toolbar{background:#fff;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:8px 12px;gap:8px;border-bottom:1px solid var(--line)}.toolbar-group{display:flex;align-items:center;gap:4px}.page-count{font-size:11px;min-width:45px;text-align:center;font-variant-numeric:tabular-nums}.editor-help{font-size:10px;padding:10px 16px;color:#64675d;background:#f6f6f2}.pdf-scroll{overflow:auto;padding:30px;max-height:calc(100vh - 220px);min-height:450px;scrollbar-color:#b9bcb1 #eeeee9;scrollbar-width:thin}.pdf-page{position:relative;margin:0 auto;background:#fff;box-shadow:0 5px 20px #223d2a1a;cursor:text}.pdf-page canvas{display:block}.render-status{position:absolute;top:15px;left:20px;font-size:12px;background:#fff;padding:5px}.answer-zone{position:absolute;outline:1px dashed #c3904d;background:#fff8}.answer-zone.selected{outline:2px solid #9a5b12}.answer-zone textarea{font-family:Noto,sans-serif;display:block;width:100%;height:100%;border:0;border-radius:0;background:transparent;color:#1f385c;resize:none;overflow:auto;white-space:pre-wrap;word-break:break-all;outline:none;min-height:0;letter-spacing:0}.answer-zone textarea:focus-visible{outline:none}.answer-zone textarea::placeholder{color:#686b61;font-size:.85em}.answer-zone.read-only{outline:0;background:transparent}.answer-grip{position:absolute;top:-19px;left:0;height:18px;display:flex;align-items:center;justify-content:center;border:0;background:#9a5b12;color:#fff;width:38px;cursor:move;touch-action:none;border-radius:3px 3px 0 0}.answer-resize{position:absolute;width:13px;height:13px;border:2px solid white;background:#9a5b12;bottom:-5px;right:-5px;cursor:nwse-resize;touch-action:none}.confirm-remise{display:flex;align-items:center;flex-wrap:wrap;gap:15px;background:#f6eddf;padding:18px 20px;margin-bottom:20px;border-radius:8px}.confirm-remise>div{flex:1;min-width:220px}.confirm-remise p{font-size:12px;margin-top:5px}.result-panel{display:flex;gap:50px;padding:26px;background:#f3f5ef;margin-top:25px;border-radius:10px}.result-panel .grade{font-size:32px;font-weight:650;margin-top:10px;font-variant-numeric:tabular-nums}.result-panel>div:last-child{flex:1}.feedback-text{white-space:pre-wrap;margin-top:10px;font-size:13px}.loading{padding:45px;color:var(--muted)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}@media(min-width:1500px){.main:not(.document-main){padding-left:56px;padding-right:56px}.section-heading{margin-bottom:36px}}@media(max-width:1100px){.sidebar{width:195px;padding-left:12px;padding-right:12px}.main{padding:35px 25px}.section-heading{align-items:start;flex-direction:column}.table-heading,.work-row{grid-template-columns:minmax(150px,1.5fr) minmax(95px,1fr) minmax(100px,auto);gap:12px}.table-heading>span:nth-child(3),.work-row>span:nth-child(3){display:none}.document-main{padding:20px}.document-and-review.with-review{grid-template-columns:minmax(0,1fr)}.review-panel{max-width:none;display:block}.review-panel form{max-width:500px}.review-panel>.button{max-width:500px}.private-section{max-width:500px}.sidebar-note{padding-left:12px}.work-heading-info{flex:1}.work-heading-actions{margin-left:0;width:100%}}@media(max-width:680px){h1{font-size:27px}.demo-bar{padding:8px 12px;align-items:start}.demo-bar>span{max-width:190px;font-size:9px}.app-body{flex-direction:column}.sidebar{width:100%;height:auto;position:static;display:grid;grid-template-columns:1fr auto;padding:17px 18px 0;border-right:0;border-bottom:1px solid var(--line);gap:16px}.brand{font-size:23px;padding:0}.brand-mark{width:30px;height:33px}.space-label,.sidebar-note,.profile{margin-top:auto;display:none}.sidebar nav{flex-direction:row;grid-column:1/-1;padding-bottom:10px;gap:8px}.nav-item{font-size:12px;padding:9px 12px}.nav-item span{margin-left:6px}.main,.document-main{padding:28px 18px}.section-heading{gap:20px;margin-bottom:32px}.section-heading p{font-size:12px;margin-top:11px}.section-toolbar{gap:12px;flex-wrap:wrap}.section-toolbar h2{font-size:18px}.table-heading{display:none}.work-row{grid-template-columns:minmax(0,1fr) auto;padding:18px 12px;gap:14px}.work-row>.muted{display:none}.row-title{gap:9px}.row-title strong{font-size:12px}.row-title small{font-size:9px}.work-row>.button{font-size:10px;padding:8px}.file-icon{width:30px;height:37px}.form-grid,.class-layout{grid-template-columns:1fr}.class-layout{gap:25px}.import-panel{padding:19px}.work-heading>.button{padding-left:0}.work-heading-info{min-width:180px}.work-heading h1{font-size:20px}.work-heading-actions{gap:8px}.work-heading-actions .button{font-size:10px;padding:9px}.pdf-toolbar{padding:7px}.pdf-toolbar .button{font-size:10px}.pdf-scroll{padding:22px 15px;max-height:65vh;min-height:330px}.editor-help{font-size:9px}.result-panel{flex-direction:column;gap:20px;padding:22px}.welcome h1{font-size:31px}.welcome{padding:40px 20px}.workspace-footer{font-size:10px}.class-roster li{flex-direction:column;gap:3px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.submission-receipt{padding:55px 25px;text-align:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--green)}.submission-receipt h2{margin-top:15px;color:var(--ink)}.submission-receipt p{max-width:60ch;margin:12px auto 0;color:var(--muted);font-size:13px}.results-back{margin:-12px 0 24px -12px}.results-view .section-heading{margin-bottom:28px}.assessment-summary{display:flex;flex-wrap:wrap;gap:20px 36px;padding:18px 0;margin-bottom:30px;border-block:1px solid var(--line);color:var(--muted);font-size:13px}.assessment-summary strong{color:var(--ink);font-variant-numeric:tabular-nums}.results-table-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:#fff}.results-table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}.results-table th{background:#f6f6f3;font-size:12px;color:var(--muted);font-weight:500;padding:14px 18px;white-space:nowrap}.results-table td{padding:18px;border-top:1px solid var(--line);vertical-align:middle}.results-table td:last-child{text-align:right}.results-table tbody tr:hover{background:#fcfcf9}.results-table td:nth-child(2),.results-table td:nth-child(3),.results-table td:nth-child(4){white-space:nowrap}.numeric{font-variant-numeric:tabular-nums;font-weight:600}.student-link{border:0;background:none;padding:0;color:var(--ink);display:inline-flex;align-items:center;gap:12px;font-weight:600;text-align:left}.student-link:hover{color:var(--green);text-decoration:underline;text-underline-offset:4px}.student-link small{display:block;font-size:11px;color:var(--muted);margin-top:4px;font-weight:400}.student-summary{display:flex;align-items:center;gap:40px;padding:24px 0;border-block:1px solid var(--line)}.student-summary>div{flex-shrink:0}.student-summary span{font-size:13px;color:var(--muted)}.student-summary strong{display:block;font-size:32px;font-weight:600;margin-top:8px;font-variant-numeric:tabular-nums}.student-summary strong small{font-size:16px;color:var(--muted);font-weight:400}.student-summary>p{max-width:60ch;font-size:12px;color:var(--muted)}.progress-section{margin:32px 0}.progress-section>p{font-size:12px;margin-top:6px}.progress-chart{max-width:1000px;margin-top:18px}.progress-chart svg{display:block;width:100%;min-height:160px}.progress-chart text{font:12px Inter,sans-serif;fill:var(--muted)}.chart-grid{stroke:var(--line);stroke-width:1}.chart-line{fill:none;stroke:var(--green);stroke-width:2.5;stroke-linejoin:round}.chart-point{fill:var(--green);stroke:#fff;stroke-width:2}.result-feedback{font-size:12px;color:var(--muted);max-width:48ch;margin-top:6px}@media(max-width:680px){.student-summary{align-items:flex-start;flex-direction:column;gap:16px}.assessment-summary{gap:12px 24px;margin-bottom:24px}.results-table th,.results-table td{padding:12px}.results-table{min-width:620px}.results-view .filter-label{flex-wrap:wrap}}.assessment-date-form{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin-bottom:24px}.assessment-date-form label{max-width:220px}.assessment-date-form [role=status]{font-size:12px;padding-bottom:10px}
