:root{--font: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--text: #2d3b45;--text-muted: #5b6a75;--border: #c7cdd1;--border-subtle: #e2e6e9;--surface: #ffffff;--surface-muted: #f5f6f7;--primary: #1f6fb2;--primary-hover: #185a92;--primary-soft: #e8f1fa;--nav-bg: #26343f;--nav-hover: #334552;--nav-text: #ffffff;--success-bg: #e6f4ea;--success-text: #1d5a32;--success-border: #9fd1ae;--warning-bg: #fff4df;--warning-text: #6b4100;--warning-border: #e6bd73;--danger-bg: #fdecea;--danger-text: #8a1c14;--danger-border: #eea39c;--info-bg: #eaf3fb;--info-text: #1a4f7a;--info-border: #a9cbe8;--focus: #d95f00;--radius: 6px;--rail-width: 5.75rem;--shadow: 0 1px 3px rgb(45 59 69 / 12%);font-family:var(--font);color:var(--text);background:var(--surface);line-height:1.5}*,*:before,*:after{box-sizing:border-box}html,body{max-width:100%;overflow-x:hidden}body{margin:0;background:var(--surface)}h1,h2,h3,h4,p,li,span,dd,dt,label,legend{overflow-wrap:anywhere}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}a{color:var(--primary)}a:hover{color:var(--primary-hover)}img{max-width:100%;height:auto}.skip-link{position:absolute;top:-5rem;left:1rem;padding:.75rem 1rem;background:var(--surface);color:var(--primary);z-index:10;border-radius:var(--radius);box-shadow:var(--shadow)}.skip-link:focus{top:1rem}.app-layout{display:flex;min-height:100vh;background:linear-gradient(to right,var(--nav-bg) var(--rail-width),var(--surface) var(--rail-width))}.app-layout-bare{background:var(--surface);flex-direction:column}.home-header{padding:3rem 1rem 0}.app-layout-bare .login-page{padding-top:0}.global-nav{flex:0 0 var(--rail-width);background:var(--nav-bg);color:var(--nav-text);display:flex;flex-direction:column;align-items:stretch;padding:.75rem 0;position:sticky;top:0;z-index:10;height:100vh}.brand{margin:0 0 1rem;display:flex;flex-direction:column;align-items:center;gap:.25rem;font-weight:700}.brand-mark{display:grid;place-items:center;width:2.6rem;height:2.6rem;border-radius:50%;background:var(--primary);color:#fff;font-size:1rem;letter-spacing:.02em}.brand-name{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.rail{display:flex;flex-direction:column;gap:.15rem;margin:0}.rail-link{display:flex;flex-direction:column;align-items:center;gap:.2rem;padding:.6rem .25rem;color:var(--nav-text);text-decoration:none;font-size:.78rem;font-weight:600;text-align:center;border:0;border-left:4px solid transparent;border-radius:0;background:transparent;width:100%;cursor:pointer;font-family:inherit;line-height:1.2}.rail-link:hover{background:var(--nav-hover);color:var(--nav-text)}.rail-link.active{background:var(--surface);color:var(--primary);border-left-color:var(--primary)}.rail-link:focus-visible{outline-offset:-3px}.nav-icon{flex:none}.app-content{flex:1 1 auto;min-width:0;display:flex}.page{flex:1 1 auto;min-width:0}.course-nav{display:flex;flex-direction:column;gap:.1rem;padding:1rem .75rem 1.5rem;background:var(--surface)}.course-nav a{padding:.45rem .75rem;color:var(--primary);text-decoration:none;border-left:3px solid transparent;border-radius:0 var(--radius) var(--radius) 0}.course-nav a:hover{text-decoration:underline}.course-side{flex:0 0 12.5rem;display:flex;flex-direction:column;border-right:1px solid var(--border-subtle);background:var(--surface)}.course-side-collapsed{flex-basis:auto}.course-nav-toggle{display:inline-grid;place-items:center;align-self:flex-start;margin:1rem .75rem 0;min-height:2.25rem;width:2.5rem;padding:0;background:var(--surface);color:var(--text)}.course-nav-toggle[aria-expanded=true]{background:var(--surface-muted)}.course-nav a.active{color:var(--text);font-weight:700;border-left-color:var(--text);background:var(--surface-muted)}main{width:100%;max-width:64rem;margin:0 auto;padding:1.5rem 2rem 3rem}main:focus{outline:none}h1{font-size:clamp(1.6rem,3vw,2rem);font-weight:400;margin:0 0 1.25rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-subtle)}h2{font-size:1.3rem;font-weight:700;margin:1.75rem 0 .75rem}h3{font-size:1.1rem;margin:1rem 0 .5rem}h4{font-size:1rem;margin:.75rem 0 .4rem}p{margin:.5rem 0}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--surface-muted);border:1px solid var(--border-subtle);padding:.1rem .35rem;border-radius:4px;overflow-wrap:anywhere}.hint{color:var(--text-muted);font-size:.92rem;margin:.3rem 0}button{font:inherit;font-size:.95rem;line-height:1.3;padding:.5rem 1rem;min-height:2.4rem;color:var(--text);background:var(--surface-muted);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer}button:hover{background:#e9ecee}button[type=submit],.button-primary{color:#fff;background:var(--primary);border-color:var(--primary)}button[type=submit]:hover,.button-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.button-secondary{color:var(--text);background:var(--surface-muted);border-color:var(--border)}.button-secondary:hover{background:#e9ecee}button:disabled,button:disabled:hover{opacity:.55;cursor:not-allowed}.button-row{display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0}main button+button{margin-left:.4rem}.button-row button+button,.rail button+button{margin-left:0}main form{margin:1rem 0}main label{display:block;font-weight:600;margin:.8rem 0 .25rem;max-width:40rem}main label>input:not([type=checkbox]):not([type=radio]),main label>select,main label>textarea,.field select,.field textarea,.field input{display:block;margin-top:.3rem;font-weight:400}:where(input:not([type=checkbox]):not([type=radio]):not([type=file])),:where(select,textarea){font:inherit;font-size:1rem;color:var(--text);background:var(--surface);width:100%;max-width:40rem;padding:.5rem .6rem;border:1px solid var(--border);border-radius:var(--radius)}input[type=number]{max-width:12rem}textarea{min-height:6rem;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft);outline:none}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--focus);outline-offset:1px}main label:has(>input[type=checkbox]),main label:has(>input[type=radio]){display:flex;align-items:center;gap:.5rem;font-weight:400;margin:.5rem 0}input[type=checkbox],input[type=radio]{width:1.1rem;height:1.1rem;accent-color:var(--primary)}fieldset{border:1px solid var(--border-subtle);border-radius:var(--radius);padding:.5rem 1rem 1rem;margin:1rem 0}legend{font-weight:700;padding:0 .3rem}.field{display:block;margin:.8rem 0;font-weight:600}.grade-mode{display:flex;flex-wrap:wrap;align-items:center;gap:1.5rem}main .grade-mode label:has(>input[type=radio]){margin:.25rem 0}main [role=status]:not(:empty):not(:has(>section,>div,>dl)){background:var(--info-bg);color:var(--info-text);border:1px solid var(--info-border);border-left-width:4px;border-radius:var(--radius);padding:.6rem .9rem;margin:.75rem 0}main [role=alert]:not(:empty){background:var(--danger-bg);color:var(--danger-text);border:1px solid var(--danger-border);border-left-width:4px;border-radius:var(--radius);padding:.6rem .9rem;margin:.75rem 0}main [role=alert]:focus{outline:3px solid var(--focus)}main>section,main>form,main>div>section,.review-panel{margin:1.25rem 0}main article,.dashboard-card,.review-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem 1.25rem;margin:.75rem 0}main article h3,.dashboard-card h3,.review-panel h2{margin-top:0}main ul,main ol{padding-left:1.3rem}main li{margin:.35rem 0}main section>ul:not(:has(>li>h3))>li,main section>ul>li:has(>span+button){padding:.35rem 0}dl{margin:.75rem 0}dl:has(>dt){display:grid;grid-template-columns:max-content 1fr;gap:.35rem 1.5rem;align-items:baseline}dl:has(>dt)>dd{margin:0}dt{font-weight:700}dd{margin:0 0 .4rem}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(15.5rem,1fr));gap:1rem;margin:.75rem 0}.dashboard-card{margin:0;border-top:6px solid var(--primary)}.dashboard-card dl{margin:1rem 0 0}.dashboard-card dl div{display:grid;grid-template-columns:7rem 1fr;gap:.5rem;padding:.35rem 0;border-top:1px solid var(--border-subtle)}.dashboard-card dd{margin:0}.course-card{border-top:1px solid var(--border);padding-top:0;overflow:hidden}.course-card-band{height:4.5rem;margin:0 -1.25rem 1rem;background:var(--primary)}.dashboard-grid>.course-card:nth-child(4n+2) .course-card-band{background:#2e7d5b}.dashboard-grid>.course-card:nth-child(4n+3) .course-card-band{background:#7b4fa0}.dashboard-grid>.course-card:nth-child(4n+4) .course-card-band{background:#b0561c}.course-card-code{color:var(--text-muted);font-weight:600;margin:-.5rem 0 .5rem}.course-card,.card-clickable{position:relative;transition:box-shadow .15s}.course-card:hover,.card-clickable:hover{box-shadow:0 3px 10px #2d3b452e}.course-card-link{color:inherit;text-decoration:none}.course-card-link:after{content:"";position:absolute;inset:0}.course-card:hover .course-card-link,.card-clickable:hover .course-card-link{text-decoration:underline}.course-card:has(.course-card-link:focus-visible),.card-clickable:has(.course-card-link:focus-visible){outline:3px solid var(--focus);outline-offset:2px}.card-clickable a:not(.course-card-link),.card-clickable button{position:relative;z-index:1}.course-card-link:focus-visible{outline:none}.placeholder-panel{max-width:40rem;background:var(--surface-muted);border:1px dashed var(--border);border-radius:var(--radius);padding:1rem 1.25rem}.grade-steps{padding-left:1.3rem;display:grid;gap:1rem;margin:.5rem 0}.status-badge{display:inline-block;padding:.15rem .6rem;border-radius:999px;font-size:.88rem;font-weight:600;border:1px solid}.status-draft{background:var(--warning-bg);color:var(--warning-text);border-color:var(--warning-border)}.status-ok{background:var(--success-bg);color:var(--success-text);border-color:var(--success-border)}.release-states div{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin:.3rem 0}.release-states dt{min-width:5.5rem}.release-states dd{margin:0}.final-grade-panel{padding:.75rem 1rem}.final-grade-panel h2{font-size:1.05rem;margin-bottom:.5rem}.final-grade-panel .grade-steps{grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:.5rem 1.5rem;margin:0}main .final-grade-panel .grade-steps>li{margin:0}.final-grade-panel .button-row{margin:.5rem 0 0}.final-grade-panel .hint,.final-grade-panel .release-states{margin:.35rem 0 0;font-size:.88rem}.final-grade-panel .release-states{display:block}@media(min-width:72rem){.final-grade-panel .grade-steps{grid-template-columns:1fr 1fr 1.4fr}}.final-grade-panel .release-states div{margin:.15rem 0;gap:.4rem;flex-wrap:nowrap}.final-grade-panel .release-states dd{min-width:0}.final-grade-panel .release-states dt{min-width:4.75rem}.feedback-editor{border-top:1px solid var(--border-subtle);margin-top:1rem;padding-top:.5rem}.confirm-dialog{background:var(--surface);border:1px solid var(--border);border-top:4px solid var(--primary);border-radius:var(--radius);box-shadow:0 8px 24px #2d3b4538;padding:1rem 1.25rem;margin:1rem 0;max-width:36rem}.confirm-dialog h3{margin-top:0}main [role=dialog]:not(.confirm-dialog){background:var(--surface);border:1px solid var(--border);border-top:4px solid var(--primary);border-radius:var(--radius);box-shadow:0 8px 24px #2d3b4538;padding:1rem 1.25rem;margin:.75rem 0}main article a,.dashboard-card a{display:inline-block;margin:.2rem 1rem .2rem 0}main a+button,main button+a{margin-left:.5rem}main nav{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin:1rem 0}.model-fields{max-width:40rem}.model-fields input::placeholder{color:var(--text-muted)}.create-assignment>section{margin:1.5rem 0;padding-top:.25rem;border-top:1px solid var(--border-subtle)}.draft-questions{list-style:none;padding:0!important;display:grid;gap:1rem}main ol.draft-questions:not(.grade-steps):not(.stepper)>li:has(>fieldset){margin:0;padding:0;border:0;box-shadow:none;background:none}.draft-questions>li>fieldset{margin:0;padding:.75rem 1.25rem 1rem;background:var(--surface)}.draft-question-row{display:flex;flex-wrap:wrap;gap:0 1.25rem}.draft-question-row label{flex:0 1 12rem}.draft-options{margin:.75rem 0}.draft-option{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.25rem 1rem}.draft-option label:first-child{flex:1 1 16rem}main .draft-option label:has(>input[type=checkbox]){margin-bottom:.6rem}.create-assignment-submit{display:block;margin-top:1.5rem}.page-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1rem;margin:0 0 1.25rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-subtle)}.page-heading h1{margin:0;padding:0;border:0;flex:1 1 12rem;min-width:0}.field-row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:0 1.5rem}.field-row-grow{flex:1 1 24rem}.field-row-grow textarea{width:100%;max-width:none}.section-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem}.section-heading h2{margin:0}.assignment-preview{max-width:48rem}.assignment-preview h2{margin-top:.75rem}.assignment-preview-instructions{white-space:pre-wrap}.assignment-preview-question{margin:1rem 0}.assignment-preview-question h3{margin-top:0}main .assignment-card :is(a,button){margin:.3rem .4rem .3rem 0}main .assignment-card a{display:inline-block;padding:.5rem 1rem;min-height:2.4rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted);color:var(--text);font-size:.95rem;line-height:1.3;text-decoration:none;vertical-align:middle}main .assignment-card a:hover{background:#e9ecee;color:var(--text)}.assignment-card-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem}.assignment-card-header h3{margin:0}.archive-confirm{flex-basis:100%;padding:.75rem 1rem;border:1px solid var(--warning-border);border-radius:var(--radius);background:var(--warning-bg)}.archive-confirm p{margin:0 0 .5rem}.analytics-toggle{display:contents}.analytics-toggle>section{flex-basis:100%}.courses-tray{position:fixed;top:0;left:var(--rail-width);z-index:20;width:min(22rem,calc(100vw - var(--rail-width)));height:100vh;overflow-y:auto;padding:1.25rem 1.5rem;background:var(--surface);color:var(--text);border-right:1px solid var(--border);box-shadow:4px 0 18px #2d3b452e}.courses-tray-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-subtle)}.courses-tray-header h2{margin:0;font-size:1.3rem}.courses-tray-header button{min-height:2.2rem;padding:.2rem .7rem;font-size:1.3rem;line-height:1}.courses-tray-list{list-style:none;margin:.75rem 0;padding:0;display:grid;gap:.5rem}.courses-tray-list li{margin:0}.courses-tray-list a,.courses-tray-all a{display:block;padding:.6rem .85rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);text-decoration:none}.courses-tray-list a:hover,.courses-tray-all a:hover{background:var(--primary-soft);border-color:var(--primary);color:var(--text)}.courses-tray-title{display:block;font-weight:600;color:var(--primary)}.courses-tray-code{display:block;font-size:.88rem;color:var(--text-muted)}.courses-tray-all{margin:.75rem 0 0;padding-bottom:.75rem;border-bottom:1px solid var(--border-subtle)}.courses-tray-all a{text-align:center;font-weight:600;color:var(--primary)}@media(max-width:48rem){.app-layout{flex-direction:column;background:var(--surface)}dl:has(>dt){grid-template-columns:1fr;gap:.1rem}.global-nav{position:static;height:auto;flex:none;flex-direction:row;flex-wrap:wrap;align-items:center;gap:.25rem .5rem;padding:.5rem .75rem}.brand{margin:0 .5rem 0 0}.brand-mark{width:2.2rem;height:2.2rem;font-size:.9rem}.rail{flex-direction:row;flex-wrap:wrap;gap:.25rem}.rail-link{flex-direction:row;gap:.35rem;width:auto;padding:.45rem .6rem;font-size:.88rem;border-left:0;border-bottom:3px solid transparent;border-radius:var(--radius)}.rail-link.active{border-bottom-color:var(--primary)}.nav-icon{width:20px;height:20px}.app-content{flex-direction:column}.course-nav{flex:none;flex-direction:row;flex-wrap:wrap;padding:.5rem .75rem}.course-nav a{border-left:0;border-bottom:3px solid transparent;border-radius:0}.course-nav a.active{border-bottom-color:var(--text);background:transparent}.course-side{flex:none;border-right:0;border-bottom:1px solid var(--border-subtle)}.course-nav-toggle{margin:.5rem .75rem 0}main{padding:1rem 1rem 2.5rem}.dashboard-card dl div{grid-template-columns:1fr;gap:.1rem}main button+button{margin-left:0;margin-top:.4rem}.courses-tray{left:0;width:100%}}main ol:not(.grade-steps):not(.stepper):not(.level-rows)>li:has(button),main ul>li:has(>h3){list-style:none;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:.9rem 1.1rem;margin:.75rem 0}main ol:not(.grade-steps):not(.stepper):has(>li>button),main ul:has(>li>h3){padding-left:0}input[type=file]{font:inherit;font-size:.95rem;margin-top:.3rem}input[type=file]::file-selector-button{font:inherit;font-size:.95rem;padding:.45rem .9rem;margin-right:.75rem;color:var(--text);background:var(--surface-muted);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.stage-chips{display:flex;flex-wrap:wrap;gap:.35rem;list-style:none;padding:0;margin:.6rem 0;counter-reset:none}main .stage-chips>li{margin:0;padding:.15rem .6rem;border-radius:999px;border:1px solid;font-size:.85rem;font-weight:600;background:none;box-shadow:none}.stage-feedback{background:var(--info-bg)!important;color:var(--info-text);border-color:var(--info-border)!important}.stage-judge{background:var(--surface-muted)!important;color:var(--text);border-color:var(--border)!important}.pipeline-card{border-top:4px solid var(--primary)!important}.pipeline-disabled{border-top-color:var(--border)!important;opacity:.85}.pipeline-models{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.25rem 1rem;margin:.5rem 0}.pipeline-models dt{font-size:.85rem;color:var(--text-muted)}.pipeline-models dd{margin:0;font-weight:600}.pipeline-editor{display:grid;gap:.5rem;max-width:36rem}.estimate{border:1px solid var(--info-border);background:var(--info-bg);border-radius:var(--radius);padding:.75rem 1rem;margin:.75rem 0}.table-scroll{position:relative;overflow-x:auto;max-width:100%}.table-scroll table{border-collapse:collapse;width:100%;min-width:28rem;font-size:.92rem}.table-scroll th,.table-scroll td{text-align:left;padding:.35rem .5rem;border-bottom:1px solid var(--border-subtle)}progress{vertical-align:middle;width:10rem;max-width:40%}.ai-comparison{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:.75rem;list-style:none;padding:0}main .ai-comparison>li{margin:0;padding:.75rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:none}.ai-comparison .ai-selected{border:2px solid var(--primary)}.ai-feedback-text{white-space:pre-wrap}.stepper{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;padding:0!important;margin:.5rem 0}main ol.stepper>li{margin:0;padding:0;border:0;background:none;box-shadow:none}.stepper>li>span,.stepper>li>button{display:inline-block;padding:.3rem .8rem;border:1px solid var(--border);border-radius:999px;background:var(--surface-muted);font:inherit;font-size:.95rem;line-height:1.4;color:var(--text)}.stepper>li>button{color:var(--primary);cursor:pointer}.stepper>li>button:hover{background:var(--primary-soft)}.stepper>li.stepper-current>span{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}.import-counts{display:flex;flex-wrap:wrap;gap:.4rem}.import-answer{white-space:pre-wrap;background:var(--surface-muted);border-radius:var(--radius);padding:.4rem .6rem}.import-questions,.import-grouping{list-style:none;padding:0;display:grid;gap:.75rem}.import-questions fieldset{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:.25rem 1rem;align-items:start}.import-questions fieldset>p,.import-questions fieldset>button{grid-column:1 / -1;justify-self:start}.import-questions .field select,.import-questions .field input{width:100%}.import-grouping thead th,.import-grouping tbody th,.import-grouping td:nth-child(3){white-space:nowrap}.import-grouping>li{border:1px solid var(--border);border-radius:var(--radius);padding:.6rem .8rem}.import-grouping ol{padding-left:1.2rem}.rubric-level{display:grid;grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:.5rem}.button-link{display:inline-block;padding:.5rem 1rem;border-radius:var(--radius);background:var(--primary);color:#fff;text-decoration:none;font-weight:600}.button-link:hover{background:var(--primary-hover);color:#fff}.research-notice{border-left:4px solid var(--info-border);background:var(--info-bg);color:var(--info-text);padding:.5rem .75rem;border-radius:var(--radius)}.tab-list{display:flex;flex-wrap:wrap;gap:.25rem;border-bottom:1px solid var(--border);margin:.75rem 0}.tab{font:inherit;padding:.45rem .9rem;border:1px solid transparent;border-bottom:0;border-radius:var(--radius) var(--radius) 0 0;background:none;color:var(--primary);cursor:pointer}.tab:hover{background:var(--primary-soft)}.tab-current{border-color:var(--border);background:var(--surface);color:var(--text);font-weight:600;margin-bottom:-1px}.compare-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:.75rem;align-items:start}.feedback-text{white-space:pre-wrap}.stage-output{white-space:pre-wrap;overflow-wrap:anywhere;max-height:20rem;overflow:auto;background:var(--surface-muted);padding:.5rem;border-radius:var(--radius);font-size:.85rem}.score-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.25rem .75rem;margin:.5rem 0}.score-list dt{font-size:.85rem;color:var(--text-muted)}.score-list dd{margin:0;font-weight:600}.login-page{max-width:28rem;padding-top:3rem}.login-brand{display:flex;align-items:center;justify-content:center;gap:.6rem;margin:0 0 1.25rem;font-size:1.4rem;font-weight:700;color:var(--text)}.login-card{background:var(--surface);border:1px solid var(--border);border-top:6px solid var(--primary);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.5rem 1.75rem 1.75rem}.login-card h1{border-bottom:0;padding-bottom:0;margin-bottom:1rem}.login-card form{margin:.5rem 0 0}.login-card form button[type=submit]{width:100%;margin:1rem 0 0}.login-card #password-policy{color:var(--text-muted);font-size:.85rem}.login-card>.button-link{display:block;text-align:center;margin-top:.75rem}.button-link-secondary{background:var(--surface);color:var(--primary);border:1px solid var(--primary)}.button-link-secondary:hover{background:var(--primary-soft);color:var(--primary-hover)}.role-switch{display:grid;grid-template-columns:1fr 1fr;padding:0;margin:0 0 1rem;border:1px solid var(--border);border-radius:var(--radius)}.role-switch legend:not(.visually-hidden){font-weight:600;padding:0;margin-bottom:.4rem;float:left;width:100%}main .role-switch label:has(>input[type=radio]){position:relative;justify-content:center;margin:0;padding:.55rem .75rem;font-weight:600;cursor:pointer}main .role-switch label+label{border-left:1px solid var(--border)}.role-switch input{position:absolute;opacity:0}.role-switch label:first-of-type{border-radius:calc(var(--radius) - 1px) 0 0 calc(var(--radius) - 1px)}.role-switch label:last-of-type{border-radius:0 calc(var(--radius) - 1px) calc(var(--radius) - 1px) 0}.role-switch label:has(input:checked){background:var(--primary);color:#fff}.role-switch label:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px;z-index:1}.role-switch label:has(input:disabled){opacity:.55;cursor:not-allowed}.node-availability{max-width:28rem;margin:2.5rem 0 0;padding-top:.75rem;border-top:1px solid var(--border-subtle);font-size:.85rem;color:var(--text-muted);display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .75rem}.node-availability h2,.node-availability section h2{font-size:.85rem;margin:0}.node-availability>div{flex:1 1 100%}main .node-availability [role=status]:not(:empty){background:none;border:0;padding:0;margin:0;color:inherit;font-size:1rem}.node-availability p{margin:.15rem 0}.node-availability:has(#unavailable-heading,#error-heading){color:var(--danger-text)}.node-availability button{min-height:0;padding:.2rem .65rem;font-size:.8rem}.dashboard-card h2{font-size:1.15rem;margin-top:0}.dashboard-card h3 a{display:inline;margin:0;text-decoration:none}.dashboard-card h3 a:hover{text-decoration:underline}.dashboard-card h4{margin:1rem 0 .35rem;padding-top:.75rem;border-top:1px solid var(--border-subtle);font-size:.9rem}.awaiting-list,.submission-list{list-style:none;padding:0!important;margin:0}main .awaiting-list li,main .submission-list li{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.25rem .75rem;margin:0;padding:.35rem 0;border-bottom:1px solid var(--border-subtle)}.dashboard-card .awaiting-list a{margin:0}.button-list{list-style:none;padding:0!important;margin:0}main .button-list li{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin:0;padding:.5rem 0;border-bottom:1px solid var(--border-subtle)}.button-list h2{margin:0;padding:0;border:0;font-size:1rem}.create-course{border:1px solid var(--border-subtle);border-radius:var(--radius);padding:.75rem 1rem 1rem;margin:.75rem 0;background:var(--surface-muted)}.create-course h2,.create-course h3{margin-top:0}.section-divider{margin-top:2.5rem;padding-top:1rem;border-top:1px solid var(--border)}.invitation-share input{width:min(100%,36rem)}.score-chart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,26rem),1fr));gap:1rem;margin:.75rem 0 1.25rem}.score-chart-card{margin:0;padding:.75rem 1rem;border:1px solid var(--border-subtle);border-radius:var(--radius);background:var(--surface)}.score-chart-card figcaption{margin-bottom:.5rem}.score-chart-card details{margin-top:.5rem;font-size:.9rem}.score-chart{margin:.5rem 0 1rem}.score-chart-legend{display:flex;flex-wrap:wrap;gap:.25rem 1rem;list-style:none;padding:0!important;margin:0 0 .5rem;font-size:.85rem;color:var(--text-muted)}main .score-chart-legend li{display:flex;align-items:center;gap:.4rem;margin:0}.score-chart-swatch{width:.75rem;height:.75rem;border-radius:3px;flex:none}.score-chart-plot{position:relative}.score-chart-plot svg{display:block;width:100%;height:auto;overflow:visible}.score-chart-gridline{stroke:var(--border-subtle);stroke-width:1}.score-chart-baseline{stroke:var(--border);stroke-width:1}.score-chart-tick,.score-chart-label{fill:var(--text-muted);font-size:12px;font-variant-numeric:tabular-nums}.score-chart-hit{fill:transparent}.score-chart-hover{fill:var(--surface-muted)}.score-chart-plot g[tabindex]:focus{outline:none}.score-chart-plot g[tabindex]:focus-visible .score-chart-hover{stroke:var(--focus);stroke-width:2}.score-chart-tooltip{position:absolute;top:0;z-index:2;min-width:12rem;max-width:20rem;padding:.5rem .65rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);font-size:.85rem;pointer-events:none}.score-chart-tooltip p{margin:.15rem 0;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.score-chart-tooltip .score-chart-tooltip-title{font-weight:600;margin-bottom:.3rem}.score-chart-key{width:.9rem;height:3px;border-radius:2px;flex:none}.rubric-criteria{list-style:none;padding:0!important;margin:.75rem 0}main .rubric-criteria>li{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem 1.25rem;margin:0 0 1rem}.criterion-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.5rem 1rem}.criterion-header h3{margin:.15rem 0 0}.row-actions{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.row-actions button+button{margin-left:0}.icon-button{min-width:2.4rem;padding-left:.5rem;padding-right:.5rem}.level-list h4{margin:1rem 0 .4rem}.level-rows{list-style:none;padding:0!important;margin:0 0 .75rem;border:1px solid var(--border-subtle);border-radius:var(--radius)}main .level-rows>li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem;margin:0;padding:.5rem .75rem;border:0;border-bottom:1px solid var(--border-subtle);box-shadow:none;background:none}main .level-rows>li:last-child{border-bottom:0}main .level-rows>li>.confirm-dialog,main .level-rows>li>.level-form{flex:1 1 100%}.level-summary{display:flex;flex-direction:column;gap:.1rem}.level-form{padding:.25rem 0}.level-form .field-row .field{flex:1 1 10rem}.add-criterion{border:1px dashed var(--border);border-radius:var(--radius);padding:.75rem 1.25rem 1rem}.add-criterion h3{margin:0 0 .25rem}.inline-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.5rem 1rem}.inline-form .field{flex:1 1 20rem;margin-bottom:0}.question-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin:1rem 0;overflow:hidden}.question-card-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.25rem 1rem;padding:.6rem 1.25rem;background:var(--surface-muted);border-bottom:1px solid var(--border);font-weight:600}main .question-card .question-progress[role=status]{background:none;border:0;padding:0;margin:0;color:var(--text)}.question-card-body{padding:.5rem 1.25rem 1rem}.question-card-body h2{margin-top:.75rem}.question-rubric{border:1px solid var(--border-subtle);border-radius:var(--radius);padding:.5rem 1rem;margin:1rem 0 .5rem}.question-rubric h3{margin-top:.25rem}.question-card-footer{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.75rem 1.25rem;border-top:1px solid var(--border);background:var(--surface-muted)}.question-card-footer .question-next{margin-left:auto}.rubric-grid th[scope=row]{min-width:10rem}.rubric-grid td{vertical-align:top}.rubric-cell label{display:flex;align-items:flex-start;gap:.4rem;margin:0;font-weight:400;cursor:pointer;max-width:none}.rubric-cell-chosen{background:var(--primary-soft)}.rubric-points{color:var(--text-muted);white-space:nowrap}.rubric-level-description{display:block;font-size:.88rem;color:var(--text-muted)}.rubric-grid input[type=number]{width:5.5rem}.rubric-grid tfoot th,.rubric-grid tfoot td{font-weight:700;border-bottom:0}main .release-mode label:has(>input[type=radio]){flex-wrap:wrap;align-items:baseline}main .release-mode label>.hint{flex-basis:100%;margin:0 0 0 1.6rem}.feedback-rating{display:grid;gap:1rem;margin-top:1rem}.feedback-rating-response,.feedback-candidate-text{white-space:pre-wrap}.feedback-candidate{border:1px solid var(--border-subtle);border-radius:var(--radius);padding:.75rem 1rem;margin-bottom:1rem;background:var(--surface)}main .rating-scale{display:flex;flex-wrap:wrap;gap:.25rem 1rem;align-items:center;margin:.5rem 0;padding:.25rem .75rem .5rem}main .rating-scale>legend{width:100%}main .rating-scale label:has(>input[type=radio]){margin:0;min-width:2.75rem;min-height:2.75rem}.feedback-rating textarea{width:100%;min-height:5rem}@media(min-width:60rem){.feedback-rating{grid-template-columns:minmax(14rem,1fr) 2fr;align-items:start}.feedback-rating-context{position:sticky;top:1rem;max-height:calc(100vh - 2rem);overflow:auto}}
