:root{--bg: #f7f7f8;--card: #ffffff;--ink: #1a1a1e;--muted: #6b6b76;--line: #e4e4e9;--brand-cyan: #58cded;--brand-blue: #3895d3;--brand-deep: #1261a0;--accent: #1261a0;--accent-text: #1261a0;--ok: #2f9e44;--warn: #e8590c;--danger: #e03131;--mark: #ffe08a;--mark-semantic: #b8d4ff;color-scheme:light dark}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #16161a;--card: #1f1f25;--ink: #ececf0;--muted: #a0a0ad;--line: #33333d;--mark: #7a5c00;--mark-semantic: #24487a;--accent-text: #58cded}}:root[data-theme=dark]{--bg: #16161a;--card: #1f1f25;--ink: #ececf0;--muted: #a0a0ad;--line: #33333d;--mark: #7a5c00;--mark-semantic: #24487a;--accent-text: #58cded}*{box-sizing:border-box}:where(input,textarea,select,button,a,[tabindex]):focus-visible{outline:2px solid var(--brand-blue);outline-offset:2px}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.6 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.wrap{max-width:1040px;margin:0 auto;padding:2rem 1.25rem 4rem}header h1{margin:0;font-size:1.7rem;letter-spacing:-.02em}.tag{margin:.25rem 0 1.5rem;color:var(--muted)}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1.25rem;margin-bottom:1.25rem}.field{display:block;margin-bottom:1rem}.field>span{display:block;font-weight:600;margin-bottom:.35rem}.field small{color:var(--muted)}button{background:var(--accent);color:#fff;border:0;border-radius:8px;padding:.6rem 1.1rem;font-size:1rem;font-weight:600;cursor:pointer}button:hover:not(:disabled):not(.link):not(.theme-toggle):not(.tab):not(.sso-btn){background:color-mix(in srgb,var(--accent) 88%,black)}button:disabled{opacity:.5;cursor:not-allowed}.error{color:var(--danger);margin:.75rem 0 0}.check{display:flex;align-items:flex-start;gap:.5rem;margin-bottom:.6rem;cursor:pointer}.check input{margin-top:.25rem}button.link{background:none;border:0;color:var(--danger);font-weight:600;padding:0;cursor:pointer}button.link:disabled{opacity:.4}.scoreRow{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.score{font-size:3rem;font-weight:800;line-height:1}.scoreMeta{font-weight:600}.muted{color:var(--muted);font-weight:400;font-size:.9rem}.sources{width:100%;border-collapse:collapse;margin:.5rem 0 1rem}.sources th,.sources td{text-align:left;padding:.6rem .85rem;border-bottom:1px solid var(--line);vertical-align:middle}.sources th.num,.sources td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.sources tbody tr{cursor:pointer}.sources tbody tr:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}.sources tbody tr.active{background:color-mix(in srgb,var(--accent) 15%,transparent)}.admin-users tbody tr{cursor:default}.admin-users tbody tr:hover{background:transparent}.admin-users td.actions{white-space:nowrap;text-align:right}.admin-users td.actions button.link+button.link{margin-left:.75rem}.bar{display:inline-block;width:var(--w, 0%);max-width:90px;height:8px;border-radius:4px;background:var(--accent);margin-right:.5rem;vertical-align:middle}.doc{white-space:pre-wrap;word-wrap:break-word;border:1px solid var(--line);border-radius:8px;padding:1rem 1.1rem;max-height:60vh;overflow:auto}mark,mark.verbatim{background:var(--mark);color:inherit;padding:0 .1em;border-radius:2px}mark.semantic{background:var(--mark-semantic)}.semantic-score{color:var(--accent-text)}.excluded-score{color:var(--ok)}.budget-bar{height:10px;border-radius:5px;background:var(--line);overflow:hidden;margin:10px 0 4px}.budget-fill{display:block;height:100%;width:var(--w, 0%);background:linear-gradient(90deg,var(--brand-cyan),var(--brand-deep));border-radius:5px}.theme-toggle{font-size:12.5px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--muted);cursor:pointer;white-space:nowrap}.theme-toggle:hover{color:var(--ink);border-color:var(--muted)}.sso-buttons{display:flex;flex-direction:column;gap:.6rem;align-items:center}.sso-btn{display:flex;align-items:center;justify-content:center;gap:.6rem;width:320px;max-width:100%;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:.6rem 1rem;font-size:.95rem;font-weight:600;cursor:pointer}.sso-btn:hover:not(:disabled){border-color:var(--muted);background:color-mix(in srgb,var(--ink) 5%,var(--card))}.google-btn{min-height:40px;display:flex;justify-content:center;color-scheme:light}.or-divider{display:flex;align-items:center;text-align:center;color:var(--muted);font-size:.85rem;margin:1rem 0}.or-divider:before,.or-divider:after{content:"";flex:1;height:1px;background:var(--line)}.or-divider span{padding:0 .75rem}.provider-edit{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;padding:.75rem 0}.provider-edit>div{flex-basis:100%}.legend{display:flex;align-items:center;gap:.35rem;font-size:.85rem;color:var(--muted);margin:0 0 .5rem}.swatch{display:inline-block;width:.9rem;height:.9rem;border-radius:3px;vertical-align:middle}.swatch.verbatim{background:var(--mark)}.swatch.semantic{background:var(--mark-semantic)}.paraphrase{list-style:none;padding:0;margin:0 0 1rem}.paraphrase li{border-left:3px solid var(--mark-semantic);padding:.35rem 0 .35rem .75rem;margin-bottom:.75rem}.pscore{font-weight:700;color:var(--accent-text);font-size:.85rem}.pquote{margin:.15rem 0}.ai{margin:1rem 0}.caveat{background:color-mix(in srgb,var(--warn) 12%,transparent);border-left:3px solid var(--warn);padding:.6rem .8rem;border-radius:4px;font-size:.9rem;margin:.3rem 0 0}.appbar{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.appbar>div:first-child{flex:1 1 240px;min-width:0}.userbox{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:.6rem}button.link{font-size:inherit}.banner{background:color-mix(in srgb,var(--accent) 10%,transparent);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);border-radius:8px;padding:.75rem 1rem;margin-bottom:1.25rem;font-size:.92rem}.insights{margin:1rem 0}.ok-flag{color:var(--ok);font-weight:600;margin:.3rem 0}.stats-list{list-style:none;padding:0;margin:.5rem 0 0}.stats-list li{padding:.35rem 0;border-bottom:1px solid var(--line)}.tab{background:none;border:1px solid var(--line);border-radius:6px;padding:.3rem .7rem;cursor:pointer;color:var(--ink);font-weight:600}.tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}.notice{background:color-mix(in srgb,var(--ok) 14%,transparent);border-left:3px solid var(--ok);padding:.6rem .8rem;border-radius:4px;font-size:.9rem;margin:.3rem 0;word-break:break-word}.warn-inline{color:var(--warn);font-size:.85rem;margin:.2rem 0 0}.banner-warn{background:color-mix(in srgb,var(--danger) 12%,transparent);border-left:3px solid var(--danger);color:var(--danger);padding:.6rem .8rem;border-radius:4px;font-size:.9rem;margin:.4rem 0}.banner-note{background:color-mix(in srgb,var(--warn) 12%,transparent);border-left:3px solid var(--warn);padding:.6rem .8rem;border-radius:4px;font-size:.9rem;margin:.4rem 0}.userform{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.userform input,.userform select{padding:.4rem .5rem;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--ink)}.report-actions{display:flex;justify-content:flex-end;margin-bottom:.5rem}.progress{position:relative;height:18px;background:var(--line);border-radius:9px;overflow:hidden;margin-top:.6rem}.progress-bar{height:100%;background:linear-gradient(90deg,var(--brand-cyan),var(--brand-deep));transition:width .2s ease}.progress-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:var(--ink)}.toolbar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.75rem}.toolbar input{padding:.4rem .5rem;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--ink)}.riskcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.6rem;margin:.5rem 0 .75rem}.riskcard{border:1px solid var(--line);border-radius:8px;padding:.7rem .8rem;text-align:center}.riskval{font-size:1.6rem;font-weight:800;line-height:1.1}.risklabel{font-size:.78rem;color:var(--muted);margin-top:.2rem}.badge{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.78rem;font-weight:700;text-transform:capitalize}.band-high{background:color-mix(in srgb,var(--danger) 18%,transparent);color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,transparent)}.band-medium{background:color-mix(in srgb,var(--warn) 18%,transparent);color:var(--warn);border-color:color-mix(in srgb,var(--warn) 40%,transparent)}.band-low{background:color-mix(in srgb,var(--ok) 16%,transparent);color:var(--ok);border-color:color-mix(in srgb,var(--ok) 40%,transparent)}.band-unscored{background:var(--line);color:var(--muted)}.field input:not([type=file]),.field textarea{width:100%;box-sizing:border-box;padding:.45rem .55rem;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--ink);font:inherit}.rubric-builder{border:1px dashed var(--line);border-radius:8px;padding:.75rem;margin-bottom:1rem}.rubric-head{display:flex;justify-content:space-between;font-weight:600;margin-bottom:.5rem}.rubric-row{display:flex;gap:.5rem;align-items:center;margin-bottom:.4rem}.rubric-row input{padding:.4rem .5rem;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--ink)}.rubric-row input:first-child{flex:1}input.pts{width:5rem;text-align:right;padding:.4rem .5rem;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--ink)}.rubric-manage{margin:.5rem 0 1rem}.grade-editor{background:color-mix(in srgb,var(--accent) 5%,transparent);border:1px solid var(--line);border-radius:8px;padding:.85rem;margin:.25rem 0}.rubric-grade{width:100%;border-collapse:collapse;margin-bottom:.75rem}.rubric-grade td{padding:.35rem .5rem;border-bottom:1px solid var(--line)}.rubric-total-row td{font-weight:700;border-bottom:none}.my-sub{border:1px solid var(--line);border-radius:8px;padding:.75rem;margin-bottom:.75rem}.my-sub-head{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.grade-big{font-weight:800;font-size:1.1rem}.feedback{margin:.5rem 0 0;white-space:pre-wrap}.peer-config{border:1px solid var(--line);border-radius:8px;padding:.85rem;margin-top:1rem}.peer-config-head{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.peer-config-body{margin-top:.75rem}.peer-config-body select{padding:.4rem .5rem;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--ink)}.peer-task,.peer-received{border:1px solid var(--line);border-radius:8px;padding:.75rem;margin-bottom:.6rem}.peer-task-head{display:flex;align-items:center;gap:.6rem}.peer-task-body{margin-top:.6rem}.peer-doc{max-height:220px;overflow:auto;white-space:pre-wrap;background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:.6rem;margin-bottom:.75rem;font-size:.9rem}.lti-config{display:flex;flex-direction:column;gap:.5rem}.lti-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.lti-label{min-width:190px;font-weight:600}.lti-value{flex:1;min-width:0;overflow-x:auto;white-space:nowrap;background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:.35rem .5rem;font-size:.85rem}.button-link{display:inline-block;background:var(--accent);color:#fff;padding:.35rem .7rem;border-radius:6px;text-decoration:none;font-size:.85rem;font-weight:600;border:none;cursor:pointer}.button-link.danger{background:var(--danger)}.button-link:disabled{opacity:.6;cursor:default}.addin-access{margin-top:.75rem}.token-create{display:flex;gap:.5rem;margin:.5rem 0}.token-create input{flex:1}.token-value{display:block;word-break:break-all;background:var(--bg, #fff);border:1px solid var(--line);border-radius:6px;padding:.5rem;margin-top:.35rem;font-size:.9rem}.danger-link{color:var(--danger)}footer{margin-top:2rem;border-top:1px solid var(--line);padding-top:1rem}
