File size: 11,677 Bytes
ed832a7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45e9848
 
 
 
 
 
 
ed832a7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b88dc75
 
 
 
7547388
b88dc75
 
 
 
 
 
 
 
 
 
 
 
7547388
b88dc75
 
7547388
 
 
 
 
b88dc75
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ed832a7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
.admin-body { min-width:0; }
.app-header a { text-decoration:none; }
.admin-tabs { flex:none;min-height:52px;display:flex;align-items:center;gap:.25rem;padding:0 1.5rem;border-bottom:1px solid var(--line);background:var(--surface); }
.admin-tabs>span { margin-left:auto;color:var(--muted);font-size:.75rem; }
.admin-tab { align-self:stretch;padding:0 1.1rem;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--muted);font-weight:800; }
.admin-tab:hover { color:var(--navy);background:var(--surface-subtle); }
.admin-tab.active { border-bottom-color:var(--action);color:var(--navy); }
.admin-main { min-height:0;flex:1;overflow:hidden; }
.admin-view { display:none;height:100%;grid-template-columns:320px minmax(0,1fr); }
.admin-view.active { display:grid; }
.admin-sidebar { min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr);overflow:hidden;border-right:1px solid var(--line);background:var(--surface); }
#courseView .admin-sidebar { grid-template-rows:auto minmax(0,1fr); }
.admin-sidebar-head { min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid var(--line); }
.admin-sidebar-head strong,.admin-sidebar-head small { display:block; }
.admin-sidebar-head small { margin-top:.2rem;color:var(--muted);font-size:.75rem; }
.demo-picker { display:grid;gap:1rem;padding:1rem;border-bottom:1px solid var(--line); }
.demo-picker label { display:grid;gap:.4rem;color:var(--muted);font-size:.78rem;font-weight:800; }
.demo-picker select { color:var(--ink);font-weight:650; }
.demo-picker select:disabled { background:var(--surface-subtle);color:var(--muted); }
.picker-summary { min-height:0;overflow:auto;padding:1rem;background:var(--surface-subtle); }
.picker-summary strong { display:block;color:var(--navy);font-size:.9rem; }
.picker-summary p { margin:.4rem 0 0;color:var(--muted);font-size:.78rem;line-height:1.5; }
.admin-list { min-height:0;overflow:auto;padding:.5rem; }
.admin-list-button { width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem;padding:.7rem .75rem;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink);text-align:left; }
.admin-list-button:hover { background:var(--surface-subtle); }
.admin-list-button.active { background:var(--action-soft);color:var(--navy); }
.admin-list-button strong,.admin-list-button span { overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.admin-list-button span,.admin-list-button small { color:var(--muted);font-size:.75rem; }
.admin-list-button>div small { display:block;margin-top:.2rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.admin-editor { min-width:0;min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr);overflow:hidden;background:var(--shell); }
.admin-editor-head { min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.5rem;border-bottom:1px solid var(--line);background:var(--surface); }
.admin-editor-head h1 { margin:0;font-size:1.15rem; }
.admin-editor-head p { margin:.25rem 0 0;color:var(--muted);font-size:.8rem; }
.admin-actions { display:flex;gap:.5rem; }
.admin-fields { display:grid;gap:1rem;padding:1rem 1.5rem;border-bottom:1px solid var(--line);background:var(--surface); }
.admin-fields.three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.admin-fields label { color:var(--muted);font-size:.78rem;font-weight:750; }
.admin-fields input { margin-top:.4rem;color:var(--ink);font-weight:600; }
.file-workspace { min-height:0;display:grid;grid-template-columns:240px minmax(0,1fr); }
.file-workspace>aside { min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;border-right:1px solid var(--line);background:var(--surface); }
.file-workspace-head { min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .75rem;border-bottom:1px solid var(--line); }
.admin-file-list { min-height:0;overflow:auto;padding:.4rem; }
.admin-file-row { display:grid;grid-template-columns:minmax(0,1fr) 34px;align-items:center;border-radius:var(--radius-sm); }
.admin-file-row.active { background:var(--action-soft); }
.admin-file-row button { min-width:0;min-height:38px;border:0;background:transparent;color:var(--ink);text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:600 .78rem/1.2 "SFMono-Regular",Consolas,monospace; }
.admin-file-row button:first-child { padding:0 .65rem; }
.admin-file-row .remove-file { text-align:center;color:var(--muted);font-size:1.1rem; }
.admin-file-row .remove-file:hover { color:var(--danger); }
.code-field { min-width:0;min-height:0;display:grid;grid-template-rows:42px minmax(0,1fr);background:var(--editor); }
.code-field>span { display:flex;align-items:center;padding:0 1rem;border-bottom:1px solid var(--editor-line);background:var(--editor-raised);color:var(--editor-ink);font:650 .8rem/1 "SFMono-Regular",Consolas,monospace; }
.code-field textarea { min-width:0;min-height:0;resize:none;padding:1rem;border:0;outline:0;background:var(--editor);color:var(--editor-ink);font:500 .9rem/1.65 "SFMono-Regular",Consolas,monospace;tab-size:4; }
.code-field textarea:focus { box-shadow:inset 0 0 0 2px var(--action); }
.asset-note { max-height:110px;overflow:auto;padding:.65rem .75rem;border-top:1px solid var(--line);color:var(--muted);font-size:.72rem;line-height:1.45; }
.admin-empty { padding:1.25rem;color:var(--muted);font-size:.82rem;line-height:1.5; }
.classroom-sidebar { grid-template-rows:auto minmax(0,1fr); }
.classroom-manager { min-width:0;min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr);overflow:hidden; }
.classroom-fields { display:grid;grid-template-columns:minmax(150px,.7fr) minmax(220px,1fr) auto;gap:1rem;align-items:end;padding:.8rem 1.5rem;border-bottom:1px solid var(--line);background:var(--surface); }
.classroom-fields>label,.backup-controls label,.manager-add>label { display:grid;gap:.35rem;color:var(--muted);font-size:.76rem;font-weight:800; }
.classroom-fields>label small { color:var(--muted);font-size:.68rem;font-weight:500;line-height:1.35; }
.backup-controls { display:flex;align-items:end;gap:.5rem; }
.backup-controls select { min-width:220px; }
.classroom-workspace { min-height:0;display:grid;grid-template-columns:280px minmax(0,1fr); }
.student-manager { min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr);overflow:hidden;border-right:1px solid var(--line);background:var(--surface); }
.manager-add { display:grid;gap:.5rem;padding:1rem;border-bottom:1px solid var(--line); }
.manager-add>div { display:flex;gap:.5rem; }
.manager-add input { min-width:0;flex:1; }
.manager-add .btn { flex:none;white-space:nowrap; }
.manager-title { min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.65rem 1rem;border-bottom:1px solid var(--line);background:var(--surface); }
.manager-title strong,.manager-title small { display:block; }
.manager-title small,.manager-title span { color:var(--muted);font-size:.75rem; }
.manager-list { min-height:0;overflow:auto;padding:.4rem; }
.manager-person-row { display:grid;grid-template-columns:minmax(0,1fr) auto 36px;align-items:center;border-radius:var(--radius-sm); }
.manager-person { width:100%;min-height:40px;padding:0 .7rem;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink);text-align:left;font-weight:700; }
.manager-person:hover,.manager-person.active { background:var(--action-soft);color:var(--navy); }
.student-edit-button { min-height:32px;padding-inline:.5rem;font-size:.72rem;white-space:nowrap; }
.student-edit-form { display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:.35rem;padding:.4rem;border-radius:var(--radius-sm);background:var(--surface-subtle); }
.student-edit-form input { grid-column:1/-1;min-width:0;min-height:36px; }
.student-edit-form .btn,.student-edit-form .copy-button { min-height:32px;padding-inline:.65rem; }
.student-edit-error { grid-column:1/-1;margin:0;color:var(--danger);font-size:.72rem;line-height:1.4; }
.manager-person-row .remove-file { min-height:36px;border:0;background:transparent;color:var(--muted);font-size:1.1rem; }
.manager-person-row .remove-file:hover { color:var(--danger); }
.submission-manager { min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden; }
.submission-workspace { min-height:0;display:grid;grid-template-columns:260px minmax(0,1fr); }
.submission-list { min-height:0;overflow:auto;padding:.4rem;border-right:1px solid var(--line);background:var(--surface); }
.submission-row { width:100%;display:block;padding:.7rem;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink);text-align:left; }
.submission-row:hover,.submission-row.active { background:var(--action-soft);color:var(--navy); }
.submission-row strong,.submission-row span { display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.submission-row span { margin-top:.25rem;color:var(--muted);font-size:.74rem; }
.submission-detail { min-width:0;min-height:0;display:grid;grid-template-rows:auto 42px minmax(0,1fr);overflow:hidden;background:var(--editor); }
.submission-detail>header { min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.65rem 1rem;background:var(--surface);border-bottom:1px solid var(--line); }
.submission-detail>header strong,.submission-detail>header small { display:block; }
.submission-detail>header small { margin-top:.25rem;color:var(--muted);font-size:.72rem; }
.submission-files { display:flex;gap:.2rem;padding:.3rem .65rem;overflow:auto;background:var(--editor-raised);border-bottom:1px solid var(--editor-line); }
.submission-files button { flex:none;padding:0 .7rem;border:0;border-radius:var(--radius-sm);background:transparent;color:oklch(.76 .02 255);font:650 .76rem/1 monospace; }
.submission-files button:hover,.submission-files button.active { background:var(--editor-line);color:white; }
#submissionCode { min-height:0;margin:0;padding:1rem 1.25rem;overflow:auto;color:var(--editor-ink);font:500 .84rem/1.65 "SFMono-Regular",Consolas,monospace;white-space:pre-wrap;tab-size:4; }
@media (max-width:1180px) { .classroom-fields{grid-template-columns:1fr 1fr}.backup-controls{grid-column:1/-1}.classroom-workspace{grid-template-columns:240px minmax(0,1fr)}.submission-workspace{grid-template-columns:220px minmax(0,1fr)} }
@media (max-width:980px) { .admin-tabs>span{display:none}.admin-view{grid-template-columns:270px minmax(0,1fr)}.admin-fields.three{grid-template-columns:1fr}.admin-fields{max-height:230px;overflow:auto}.file-workspace{grid-template-columns:200px minmax(0,1fr)}.classroom-workspace{grid-template-columns:210px minmax(0,1fr)}.submission-workspace{display:block}.submission-list{max-height:180px;border-right:0;border-bottom:1px solid var(--line)}.submission-detail{height:calc(100% - 180px)} }
@media (max-width:720px) { .admin-view{grid-template-columns:220px minmax(0,1fr)}.admin-tabs{padding-inline:.5rem;overflow-x:auto}.admin-tab{padding-inline:.7rem;flex:none}.admin-editor-head{padding-inline:.75rem}.admin-editor-head p{display:none}.admin-fields{padding:.75rem}.file-workspace{grid-template-columns:170px minmax(0,1fr)}.classroom-fields{grid-template-columns:1fr;padding:.75rem;max-height:210px;overflow:auto}.backup-controls{grid-column:auto;align-items:stretch;flex-direction:column}.classroom-workspace{grid-template-columns:180px minmax(0,1fr)} }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important} }