.admin-body{height:100%;overflow:hidden}.admin{display:flex;flex-direction:column;height:100%}.admin[hidden]{display:none}.toolbar{display:flex;align-items:center;gap:12px;flex:none;height:var(--toolbar-h);padding:0 10px;background:var(--bg-chrome);border-bottom:1px solid var(--border)}.toolbar-group{display:flex;align-items:center;gap:8px;min-width:0}.toolbar-identity .logo{font-size:14px;opacity:.9}.toolbar-status{flex:1;justify-content:center;min-width:0}.admin-brand{font-size:13px;font-weight:600;color:var(--text)}.admin-body-grid{display:grid;grid-template-columns:300px minmax(0,1fr);flex:1;min-width:0;min-height:0}.act-icon.is-students{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23cccccc" stroke-width="1.4"><circle cx="9" cy="8" r="3.4"/><path d="M2.8 19a6.2 6.2 0 0 1 12.4 0"/><path d="M16 5.4a3.4 3.4 0 0 1 0 6.6"/><path d="M17.5 13.4A5.6 5.6 0 0 1 21.4 19"/></svg>')}.admin-roster{display:flex;flex-direction:column;min-height:0;background:var(--bg-chrome);border-right:1px solid var(--border)}.admin-roster-head{flex:none;padding:8px}.admin-search{width:100%;font:inherit;font-size:13px;padding:5px 8px;color:var(--text);background:var(--bg-input);border:1px solid var(--border-strong);border-radius:3px}.admin-search:focus{outline:none;border-color:var(--focus-ring)}.admin-list{flex:1;min-height:0;overflow:auto}.admin-row{display:flex;flex-direction:column;gap:2px;width:100%;padding:7px 12px;font:inherit;text-align:left;color:var(--text);background:transparent;border:none;border-left:2px solid transparent;cursor:pointer}.admin-row:hover{background:var(--hover)}.admin-row.is-selected{background:var(--selected-focus);border-left-color:var(--accent)}.admin-row-name{font-size:13px}.admin-row-meta{font-size:11px;color:var(--text-muted)}.admin-tag{margin-left:6px;padding:1px 5px;font-size:10px;color:var(--run);border:1px solid var(--run);border-radius:3px}.admin-list-empty{margin:0;padding:14px 12px;font-size:12px;color:var(--text-muted)}.admin-detail{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--bg-editor)}.admin-empty{display:grid;place-items:center;height:100%;font-size:13px;color:var(--text-muted)}.admin-empty[hidden]{display:none}.admin-student{display:flex;flex-direction:column;min-height:0;height:100%}.admin-student[hidden]{display:none}.admin-student-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:none;padding:12px 16px;border-bottom:1px solid var(--border)}.admin-student-name{margin:0;font-size:15px;font-weight:600;color:var(--text-bright)}.admin-student-meta{margin:2px 0 0;font-size:12px;color:var(--text-muted)}.admin-work{display:grid;grid-template-columns:260px minmax(0,1fr);flex:1;min-height:0}.admin-files{min-height:0;overflow:auto;background:var(--bg-chrome);border-right:1px solid var(--border)}.admin-projects{padding-bottom:12px}.admin-project-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:10px 12px 4px;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.admin-project-meta{text-transform:none;letter-spacing:0}.admin-file{display:block;width:100%;padding:4px 12px 4px 20px;font:inherit;font-size:13px;text-align:left;color:var(--text);background:transparent;border:none;cursor:pointer}.admin-file:hover{background:var(--hover)}.admin-file.is-open{background:var(--selected);color:var(--text-bright)}.admin-file.is-entry:after{content:"";display:inline-block;width:6px;height:6px;margin-left:7px;vertical-align:1px;border-radius:50%;background:var(--run)}.admin-file.is-locked{color:var(--text-muted)}.admin-code{display:flex;flex-direction:column;min-width:0;min-height:0}.admin-file-name{flex:none;padding:7px 16px;font-family:var(--font-code);font-size:12px;color:var(--text-muted);background:var(--bg-chrome);border-bottom:1px solid var(--border)}.admin-viewer{flex:1;min-height:0;overflow:hidden}.admin-viewer .cm-editor{height:100%;font-family:var(--font-code);font-size:var(--code-size)}.admin-thread{flex:none;max-height:40%;overflow:auto;padding:8px 0;background:var(--bg-chrome);border-top:1px solid var(--border)}.admin-thread-head{padding:0 16px 6px;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.admin-thread-group{margin:0 12px 8px;border:1px solid var(--border);border-radius:4px;overflow:hidden}.admin-thread-line{display:block;width:100%;font:inherit;font-family:var(--font-code);font-size:11px;text-align:left;padding:4px 10px;color:var(--echo);background:var(--bg-editor);border:none;cursor:pointer}.admin-comment{padding:6px 10px;border-top:1px solid var(--border)}.admin-comment-who{font-size:11px;color:var(--text-muted)}.admin-comment-text{margin-top:2px;font-size:13px;white-space:pre-wrap}.admin-viewer .cm-lineNumbers .cm-gutterElement:hover{color:var(--text-bright);cursor:pointer}.act-icon.is-assignments{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23cccccc" stroke-width="1.4"><rect x="4.5" y="3" width="15" height="18" rx="1.5"/><path d="M8.5 8h7M8.5 12h7M8.5 16h4"/></svg>')}.assignments-view{display:grid;grid-template-columns:300px minmax(0,1fr);flex:1;min-width:0;min-height:0}.assignments-side{display:flex;flex-direction:column;min-height:0;background:var(--bg-chrome);border-right:1px solid var(--border)}.assignments-head{display:flex;align-items:center;justify-content:space-between;flex:none;padding:8px 8px 8px 14px;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.assignments-list{flex:1;min-height:0;overflow:auto}.assignment-group{position:sticky;top:0;margin:0;padding:10px 14px 4px;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);background:var(--panel)}.assignment-row{display:flex;flex-direction:column;gap:3px;width:100%;padding:8px 14px;font:inherit;text-align:left;color:var(--text);background:transparent;border:none;border-left:2px solid transparent;cursor:pointer}.assignment-row:hover{background:var(--hover)}.assignment-row.is-selected{background:var(--selected-focus);border-left-color:var(--accent)}.assignment-row-title{font-size:13px}.assignment-row-meta{font-size:11px;color:var(--text-muted)}.assignment-row .is-draft{margin-left:6px;padding:0 5px;font-size:10px;color:var(--warning-fg);border:1px solid var(--warning-border);border-radius:3px}.assignments-detail{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--bg-editor)}.assignment-detail{display:flex;flex-direction:column;min-height:0;height:100%}.assignment-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex:none;padding:12px 16px;border-bottom:1px solid var(--border)}.assignment-head-actions{display:flex;gap:6px}.assignment-progress{flex:1;min-height:0;overflow:auto;padding:6px 0}.progress-row{display:grid;grid-template-columns:minmax(0,1fr) 9rem 7rem;align-items:center;gap:12px;padding:7px 16px;font-size:13px;border-bottom:1px solid var(--border)}.progress-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progress-state{font-size:12px;color:var(--text-muted)}.progress-state.is-done{color:var(--run)}.progress-state.is-missing{color:var(--error)}.progress-score{font-family:var(--font-code);font-size:12px;color:var(--text-muted);text-align:right}.progress-score.is-complete{color:var(--run)}.field{display:block;margin-bottom:12px}.field span{display:block;margin-bottom:4px;font-size:12px;color:var(--text-muted)}.field input[type=text],.field input[type=date],.field textarea{width:100%;font:inherit;font-size:13px;padding:6px 8px;color:var(--text);background:var(--bg-input);border:1px solid var(--border-strong);border-radius:3px;resize:vertical}.field input:focus,.field textarea:focus{outline:none;border-color:var(--focus-ring)}.field input[type=file]{font-size:12px;color:var(--text-muted)}.field-hint{display:block;margin-top:5px;font-size:11px;line-height:1.5;color:var(--text-muted)}.field textarea.field-code{font-family:var(--font-code);font-size:12px;line-height:1.5;tab-size:4;white-space:pre;overflow-wrap:normal;overflow-x:auto}.act-icon.is-notes{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23cccccc" stroke-width="1.4"><path d="M12 6.5C10.5 5 8.3 4.5 4 4.5v13c4.3 0 6.5 0.5 8 2 1.5-1.5 3.7-2 8-2v-13c-4.3 0-6.5 0.5-8 2z"/><path d="M12 6.5v13"/></svg>')}.note-detail{display:flex;flex-direction:column;min-height:0;height:100%;padding:18px 20px 20px;gap:14px}.note-detail-head{display:flex;align-items:center;gap:12px}.note-title-input{flex:1;min-width:0;padding:7px 10px;font:inherit;font-size:16px;font-weight:600;color:var(--text-bright);background:var(--bg-input);border:1px solid var(--border-strong);border-radius:4px}.note-edit{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;flex:1;min-height:0}.note-source{display:flex;flex-direction:column;min-height:0;gap:8px}.note-body{flex:1;min-height:0;resize:none;padding:12px;font-family:var(--font-code);font-size:13px;line-height:1.55;tab-size:2;color:var(--text);background:var(--bg-editor);border:1px solid var(--border-strong);border-radius:4px}.note-preview{min-height:0;overflow:auto;padding:18px 20px;background:var(--bg-editor);border:1px solid var(--border);border-radius:4px}@media(max-width:1100px){.note-edit{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(12rem,1fr) minmax(12rem,1fr)}}.admin-roster-classes{display:flex;gap:8px;margin-top:8px}.admin-roster-classes .select{flex:1;min-width:0}.admin-student-actions{display:flex;align-items:center;gap:12px}.admin-class-pick{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted)}.admin-tag.is-class{color:var(--echo);background:#0b2b3d}.classes-list{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.classes-row{display:flex;align-items:center;gap:10px}.classes-name{flex:1;min-width:0;padding:5px 8px;font:inherit;color:var(--text);background:var(--bg-input);border:1px solid var(--border-strong);border-radius:4px}.classes-meta{font-family:var(--font-code);font-size:11px;color:var(--text-muted);white-space:nowrap}.act-icon.is-live{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23cccccc" stroke-width="1.4"><rect x="3" y="4" width="8" height="7" rx="1"/><rect x="13" y="4" width="8" height="7" rx="1"/><rect x="3" y="13" width="8" height="7" rx="1"/><rect x="13" y="13" width="8" height="7" rx="1"/></svg>')}.live-view{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0;padding:18px 20px;gap:14px}.live-head{display:flex;align-items:baseline;gap:14px}.live-title{margin:0;font-size:18px;font-weight:600;color:var(--text-bright)}.live-summary{font-size:13px;color:var(--text-muted)}.live-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:10px;overflow:auto;align-content:start}.live-card{display:grid;gap:3px;padding:10px 12px;font:inherit;text-align:left;color:var(--text);background:var(--bg-raised);border:1px solid var(--border-strong);border-left:3px solid var(--border-strong);border-radius:5px;cursor:pointer}.live-card:hover{border-color:var(--accent)}.live-card.is-working{border-left-color:var(--run)}.live-card.is-error{border-left-color:var(--error)}.live-card.is-idle{border-left-color:var(--warning-border)}.live-card.is-none{opacity:.65}.live-name{font-size:13px;font-weight:600;color:var(--text-bright)}.live-file{font-family:var(--font-code);font-size:11px;color:var(--text-muted);overflow-wrap:anywhere}.live-detail{font-size:12px;color:var(--text-muted)}.live-detail.is-error{font-family:var(--font-code);color:var(--error)}.live-when{font-size:11px;color:var(--text-muted)}.field-more{margin-bottom:4px}.field-more>summary{padding:6px 0;font-size:13px;color:var(--text-muted);cursor:pointer}.field-more>summary:hover{color:var(--text)}.field-check{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-muted)}.live-sort{display:flex;align-items:center;gap:6px;margin-left:auto;font-size:12px;color:var(--text-muted)}.admin-sort{width:100%;margin-top:8px}.replay-panel{display:flex;flex-direction:column;gap:8px;margin:0 0 14px;padding:12px 14px;background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:6px}.replay-head{display:flex;align-items:center;gap:10px}.replay-head .select{max-width:18rem}.replay-summary{flex:1;min-width:0;font-size:12px;color:var(--text-muted)}.replay-slider{width:100%;accent-color:var(--accent)}.replay-when{font-size:12px;color:var(--text-muted)}.replay-when.is-burst{color:var(--warning-fg)}.replay-code{margin:0;max-height:22rem;overflow:auto;padding:10px 12px;font-family:var(--font-code);font-size:12px;line-height:1.5;white-space:pre-wrap;color:var(--text);background:var(--bg-editor);border:1px solid var(--border);border-radius:4px}.replay-note{margin:0;font-size:11px;line-height:1.5;color:var(--text-muted)}
