File size: 14,840 Bytes
8812c23
 
 
 
 
 
 
 
 
3ab82f0
 
 
8812c23
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5d25e99
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3ab82f0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2850a82
 
 
 
 
 
 
 
 
 
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
:root {
  color-scheme: light;
  --background: #ffffff;
  --block: #ffffff;
  --text: #111827;
  --body-text: #374151;
  --muted: #6b7280;
  --border: #e5e7eb;
  --border-strong: #d1d5db;
  --primary: #2563eb;
  --primary-hover: #1d4ed8;
  --primary-soft: #eff6ff;
  --success: #15803d;
  --warning: #a16207;
  --danger: #b91c1c;
}

* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; background: var(--background); color: var(--text); font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 14px; }
button, input, select { font: inherit; }
button { cursor: pointer; }
main { width: min(1180px, calc(100% - 32px)); margin: 0 auto; padding: 36px 0 52px; }

.app-header { max-width: 760px; margin: 0 auto 28px; text-align: center; }
.app-header h1 { margin: 0 0 10px; font-size: 32px; line-height: 1.2; font-weight: 700; }
.tabs { display: flex; justify-content: center; gap: 4px; margin-bottom: 24px; padding-bottom: 10px; border-bottom: 1px solid var(--border); }
.tab { display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 8px 14px; border: 1px solid transparent; border-radius: 8px; background: transparent; color: var(--muted); font-weight: 500; }
.tab svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.tab:hover { color: var(--text); background: #f3f4f6; }
.tab.active { color: var(--text); background: var(--block); border-color: var(--border); box-shadow: 0 1px 2px rgba(0, 0, 0, .04); }

.panel { display: none; }
.panel.active { display: block; }
.panel-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 14px; }
.panel-heading h2 { margin: 0 0 4px; font-size: 20px; line-height: 1.3; }
.panel-heading p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.45; }
.updated { white-space: nowrap; font-size: 11px !important; }

.block, .toolbar, .table-shell, .queue-card { background: var(--block); border: 1px solid var(--border); border-radius: 10px; }
.toolbar { display: grid; grid-template-columns: minmax(240px, 1fr) auto auto auto; gap: 10px; align-items: end; padding: 12px; margin-bottom: 12px; }
.search { display: flex; align-items: center; gap: 8px; height: 38px; padding: 0 11px; border: 1px solid var(--border-strong); border-radius: 7px; background: var(--block); }
.search > span { color: var(--muted); font-size: 18px; }
.search input { width: 100%; border: 0; outline: 0; background: transparent; color: var(--text); font-size: 13px; }
.select-control { display: grid; gap: 4px; color: var(--muted); font-size: 11px; }
.select-control select { height: 38px; min-width: 130px; padding: 0 28px 0 10px; border: 1px solid var(--border-strong); border-radius: 7px; outline: 0; background: var(--block); color: var(--text); font-size: 13px; }
.toggle { display: flex; align-items: center; gap: 7px; height: 38px; padding: 0 9px; color: var(--body-text); font-size: 12px; white-space: nowrap; }
.toggle input { width: 15px; height: 15px; accent-color: var(--primary); }

.table-shell { position: relative; overflow-x: auto; }
.table-shell.is-empty { min-height: 180px; }
table { width: 100%; border-collapse: collapse; font-size: 12px; }
th { height: 42px; padding: 0 12px; border-bottom: 1px solid var(--border); background: #f9fafb; color: var(--muted); text-align: right; font-size: 11px; font-weight: 600; white-space: nowrap; }
th:first-child, th:nth-child(2), td:first-child, td:nth-child(2) { text-align: left; }
th.sortable { cursor: pointer; user-select: none; }
th.sortable:hover, th.active-sort { color: var(--text); }
td { height: 54px; padding: 0 12px; border-bottom: 1px solid var(--border); text-align: right; white-space: nowrap; }
tbody tr:last-child td { border-bottom: 0; }
tbody tr:hover { background: #fafafa; }
.rank { width: 42px; color: var(--muted); }
.rank.top, .score.primary { color: var(--primary-hover); font-weight: 600; }
.model-cell a { display: inline-flex; align-items: center; gap: 5px; max-width: 290px; overflow: hidden; color: var(--text); font-weight: 600; text-decoration: none; text-overflow: ellipsis; }
.model-cell a:hover { color: var(--primary-hover); }
.pill { display: inline-flex; padding: 3px 7px; border-radius: 6px; background: #f3f4f6; color: var(--body-text); font-size: 11px; }
.availability { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--danger); }
.availability.yes { background: var(--success); }
.table-footer { display: flex; justify-content: space-between; padding: 8px 3px 0; color: var(--muted); font-size: 11px; }
.empty-state { position: absolute; inset: 43px 0 0; display: grid; place-content: center; text-align: center; color: var(--muted); }
.empty-state h3 { margin: 0 0 4px; color: var(--body-text); font-size: 14px; }
.empty-state p { margin: 0; font-size: 12px; }
.skeleton { display: block; width: 48px; height: 10px; border-radius: 4px; background: #e5e7eb; }
.skeleton.wide { width: 160px; }

.queue-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 14px; }
.queue-card { padding: 14px; }
.queue-card header { display: flex; align-items: center; justify-content: space-between; }
.queue-card h3 { margin: 0; font-size: 13px; }
.queue-card strong { font-size: 18px; }
.queue-card p { margin: 7px 0 0; overflow: hidden; color: var(--muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.queue-card.finished strong { color: var(--success); }
.queue-card.running strong { color: var(--primary-hover); }
.queue-card.pending strong { color: var(--warning); }

.submit-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr); gap: 14px; align-items: start; }
.submit-card, .guidance-card, .about-copy, .citation-card { padding: 18px; }
.block-heading { padding-bottom: 14px; border-bottom: 1px solid var(--border); }
.block-heading h3, .guidance-card > h3 { margin: 0 0 4px; font-size: 15px; }
.block-heading p { margin: 0; color: var(--muted); font-size: 12px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 12px; padding: 16px 0; }
.field { display: grid; gap: 6px; }
.field.full { grid-column: 1 / -1; }
.field > span { color: var(--body-text); font-size: 12px; font-weight: 500; }
.field b { margin-left: 3px; color: var(--muted); font-size: 10px; font-weight: 400; }
.field small { color: var(--muted); font-weight: 400; }
.field input, .field select { width: 100%; height: 39px; padding: 0 10px; border: 1px solid var(--border-strong); border-radius: 7px; outline: 0; background: var(--block); color: var(--text); font-size: 13px; }
.field input:focus, .field select:focus, .search:focus-within { border-color: var(--primary); box-shadow: 0 0 0 2px var(--primary-soft); }
.primary-button { min-height: 38px; padding: 0 14px; border: 1px solid var(--primary-hover); border-radius: 7px; background: var(--primary); color: #fff; font-weight: 600; }
.primary-button:hover { background: var(--primary-hover); }
.primary-button:disabled { opacity: .6; cursor: wait; }
.guidance-card { max-height: 560px; overflow: auto; }

.prose { color: var(--body-text); font-size: 13px; line-height: 1.6; }
.prose h2, .prose h3 { color: var(--text); }
.prose h2 { margin: 20px 0 6px; font-size: 17px; }
.prose h3 { margin: 16px 0 5px; font-size: 14px; }
.prose p { margin: 7px 0; }
.prose pre { margin: 10px 0; overflow-wrap: anywhere; white-space: pre-wrap; padding: 11px; border: 1px solid var(--border); border-radius: 7px; background: #f9fafb; font: 12px/1.5 ui-monospace, SFMono-Regular, Menlo, monospace; }
.prose code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .92em; }
.prose pre code { font-size: inherit; }
.prose a { color: #2563eb; }
.about-copy { min-height: 160px; }
.about-copy h2:first-child { margin-top: 0; }
.citation-card { display: grid; grid-template-columns: 1fr auto; gap: 12px; margin-top: 12px; }
.citation-card h3 { margin: 5px 0 0; font-size: 14px; }
.citation-card button { align-self: start; padding: 6px 10px; border: 1px solid var(--border-strong); border-radius: 6px; background: var(--block); color: var(--text); }
.citation-card pre { grid-column: 1 / -1; overflow: auto; margin: 0; padding: 10px; border-radius: 6px; background: #f9fafb; font: 12px/1.5 ui-monospace, SFMono-Regular, Menlo, monospace; white-space: pre-wrap; }

.notice { margin: 10px 0; padding: 10px 12px; border: 1px solid; border-radius: 7px; font-size: 12px; line-height: 1.45; }
.notice.warning { color: var(--warning); background: #fffbeb; border-color: #fde68a; }
.notice.error { color: var(--danger); background: #fef2f2; border-color: #fecaca; }
.notice.success { color: var(--success); background: #f0fdf4; border-color: #bbf7d0; }
.hidden { display: none !important; }
@media (max-width: 820px) {
  .toolbar { grid-template-columns: 1fr 1fr; }
  .search { grid-column: 1 / -1; }
  .submit-layout { grid-template-columns: 1fr; }
  .guidance-card { max-height: none; }
}

@media (max-width: 560px) {
  main { width: min(100% - 24px, 1180px); padding-top: 24px; }
  .app-header h1 { font-size: 26px; }
  .tabs { justify-content: stretch; }
  .tab { flex: 1; padding-inline: 8px; }
  .panel-heading { display: block; }
  .updated { margin-top: 6px !important; }
  .toolbar { grid-template-columns: 1fr; }
  .search { grid-column: auto; }
  .select-control select { width: 100%; }
  .queue-grid, .form-grid { grid-template-columns: 1fr; }
  .field.full { grid-column: auto; }
  .table-footer span:last-child { display: none; }
}

/* Equal-width leaderboard controls, aligned to the left. */
.toolbar { display: flex; flex-wrap: wrap; justify-content: flex-start; align-items: end; }
.toolbar .select-control { flex: 0 0 160px; width: 160px; }
.toolbar .select-control select { width: 100%; min-width: 0; }

.toolbar .select-control select {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 36px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 14px 14px;
}
#leaderboard-head th { height: 54px; line-height: 1.4; }

#leaderboard-head th.sortable:not(:nth-child(2)), td.score { text-align: center; }

.resource-links { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px 9px; margin-top: 14px; font-size: 13px; line-height: 1.7; }
.resource-links a { color: var(--body-text); text-decoration: none; white-space: nowrap; }
.resource-links a:hover { color: var(--primary-hover); text-decoration: underline; }
.resource-links [aria-disabled], .resource-links .separator { color: var(--muted); }

.submit-output-control { display: grid; gap: 4px; margin-left: auto; width: 242px; flex: 0 0 242px; }
.submit-output-control > span { color: var(--muted); font-size: 11px; }
.submit-output-card {
  display: flex; align-items: center; justify-content: center;
  height: 38px; padding: 0 18px; border: 1px solid transparent; border-radius: 7px;
  background: linear-gradient(115deg, #147ac7, #315ee5 65%, #5145ed);
  color: #fff; text-decoration: none; font-size: 15px; font-weight: 600;
  box-shadow: 0 2px 5px rgb(37 99 235 / 14%);
}
.submit-output-card:hover { filter: brightness(1.06); }
.submit-output-card:focus-visible, .select-control select:focus-visible { outline: 2px solid var(--primary); outline-offset: 3px; }
.submission-page { max-width: 700px; margin: 0 auto; }
.submission-page > a { color: var(--primary); text-decoration: none; }
.submission-page .block { margin-top: 20px; padding: 24px; }
.submission-page h2 { margin: 0 0 16px; font-size: 20px; }
.submission-page p, .submission-page li { color: var(--body-text); line-height: 1.7; }
.submission-page ol { padding-left: 20px; }
.submission-page .submit-output-card { display: inline-flex; margin-top: 12px; }
@media (max-width: 820px) {
  .submit-output-control { margin-left: 0; }
}

/* Match the card to the complete label-and-select controls. */
.toolbar { align-items: center; }
.submit-output-control { display: block; }
.submit-output-control .submit-output-card {
  height: 55px;
  flex-direction: column;
  align-items: flex-start;
  gap: 3px;
  padding: 7px 18px;
}
.submit-output-control .submit-output-card span { color: #dbeafe; font-size: 11px; font-weight: 400; line-height: 1.35; }
.submit-output-control .submit-output-card strong { font-size: 17px; font-weight: 650; line-height: 1.35; }

.submission-page fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.submission-page fieldset:disabled { opacity: .6; }
.submission-page .field small { color: var(--muted); font-size: 11px; line-height: 1.6; }
.submission-page input[readonly] { background: #f3f4f6; cursor: default; }
.submission-page input[type=file] { height: auto; padding: 10px; }
.submission-page .field a { color: var(--primary); }
.signin-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 20px 0 12px; }
.signin-row .primary-button { display: inline-flex; align-items: center; text-decoration: none; font-size: 13px; }
.signin-row > span { color: var(--muted); font-size: 12px; }
.signin-row button { background: white; color: var(--muted); border: 1px solid var(--border); border-radius: 6px; padding: 7px 10px; }
.signin-row .unavailable { opacity: .6; cursor: not-allowed; }
.submission-privacy { font-size: 12px; }
#upload-progress { margin-top: 20px; }
#upload-progress progress { width: 100%; accent-color: var(--primary); }
#progress-text { font-size: 12px; }

/* Keep paired fields aligned even when only one has help text. */
.submission-page .form-grid { align-items: start; }
.submission-page .field > label { color: var(--body-text); font-size: 12px; font-weight: 500; }
.archive-picker { position: relative; display: flex; align-items: center; gap: 12px; min-height: 42px; padding: 7px 10px; border: 1px solid var(--border-strong); border-radius: 7px; }
.submission-page .archive-picker input[type=file] { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; opacity: 0; overflow: hidden; }
.archive-button { flex-shrink: 0; padding: 6px 10px; border: 1px solid var(--border-strong); border-radius: 5px; background: #f9fafb; color: var(--body-text); font-size: 12px; cursor: pointer; }
.archive-picker:focus-within { border-color: var(--primary); box-shadow: 0 0 0 2px var(--primary-soft); }
#archive-name { min-width: 0; overflow-wrap: anywhere; font-size: 12px; color: var(--muted); }
fieldset:disabled .archive-button { cursor: not-allowed; }