ntphuc149 commited on
Commit
87b1d2a
Β·
verified Β·
1 Parent(s): 3a26429

Update style.css

Browse files
Files changed (1) hide show
  1. style.css +519 -18
style.css CHANGED
@@ -1,28 +1,529 @@
 
 
 
 
 
 
 
 
1
  body {
2
- padding: 2rem;
3
- font-family: -apple-system, BlinkMacSystemFont, "Arial", sans-serif;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  }
5
 
6
- h1 {
7
- font-size: 16px;
8
- margin-top: 0;
 
 
 
 
 
 
 
9
  }
10
 
11
- p {
12
- color: rgb(107, 114, 128);
13
- font-size: 15px;
14
- margin-bottom: 10px;
15
- margin-top: 5px;
16
  }
17
 
18
- .card {
19
- max-width: 620px;
20
- margin: 0 auto;
21
- padding: 16px;
22
- border: 1px solid lightgray;
23
- border-radius: 16px;
24
  }
25
 
26
- .card p:last-child {
27
- margin-bottom: 0;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
  }
 
1
+ *,
2
+ *::before,
3
+ *::after {
4
+ box-sizing: border-box;
5
+ margin: 0;
6
+ padding: 0;
7
+ }
8
+
9
  body {
10
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
11
+ background: #0f1117;
12
+ color: #e2e8f0;
13
+ min-height: 100vh;
14
+ display: flex;
15
+ flex-direction: column;
16
+ }
17
+
18
+ /* ── Shared button styles ── */
19
+ .btn {
20
+ padding: 9px 18px;
21
+ border-radius: 6px;
22
+ border: none;
23
+ cursor: pointer;
24
+ font-size: 14px;
25
+ font-weight: 500;
26
+ transition:
27
+ opacity 0.15s,
28
+ background 0.15s;
29
+ }
30
+ .btn:disabled {
31
+ opacity: 0.45;
32
+ cursor: not-allowed;
33
+ }
34
+ .btn-primary {
35
+ background: #3b82f6;
36
+ color: #fff;
37
+ }
38
+ .btn-primary:hover:not(:disabled) {
39
+ background: #2563eb;
40
+ }
41
+ .btn-ghost {
42
+ background: #1a1f2e;
43
+ color: #94a3b8;
44
+ border: 1px solid #2d3448;
45
+ }
46
+ .btn-ghost:hover:not(:disabled) {
47
+ background: #232a3d;
48
+ }
49
+
50
+ /* ════════════════════════════════════════
51
+ MAIN APP
52
+ ════════════════════════════════════════ */
53
+ #appScreen {
54
+ display: flex;
55
+ flex-direction: column;
56
+ flex: 1;
57
+ }
58
+
59
+ header {
60
+ padding: 12px 20px;
61
+ border-bottom: 1px solid #1e2330;
62
+ display: flex;
63
+ align-items: center;
64
+ gap: 12px;
65
+ }
66
+ header h1 {
67
+ font-size: 16px;
68
+ font-weight: 600;
69
+ color: #f8fafc;
70
+ }
71
+ header .tag {
72
+ font-size: 11px;
73
+ background: #1e3a5f;
74
+ color: #60a5fa;
75
+ padding: 2px 8px;
76
+ border-radius: 999px;
77
+ }
78
+
79
+ .main {
80
+ flex: 1;
81
+ display: grid;
82
+ grid-template-columns: auto 1fr;
83
+ grid-template-rows: auto 1fr;
84
+ height: calc(100vh - 49px);
85
+ }
86
+
87
+ /* ── Status bar ── */
88
+ .status-bar {
89
+ grid-column: 1 / -1;
90
+ padding: 5px 20px;
91
+ font-size: 12px;
92
+ color: #64748b;
93
+ background: #0f1117;
94
+ border-bottom: 1px solid #1a1f2e;
95
+ min-height: 26px;
96
+ display: flex;
97
+ align-items: center;
98
+ gap: 7px;
99
+ }
100
+ .status-bar .dot {
101
+ width: 6px;
102
+ height: 6px;
103
+ border-radius: 50%;
104
+ background: #334155;
105
+ flex-shrink: 0;
106
+ }
107
+ .status-bar.done .dot {
108
+ background: #22c55e;
109
+ }
110
+ .status-bar.error .dot {
111
+ background: #ef4444;
112
+ }
113
+
114
+ @keyframes spin {
115
+ to {
116
+ transform: rotate(360deg);
117
+ }
118
+ }
119
+
120
+ /* ── Panels ── */
121
+ .panel-video {
122
+ width: calc((100vh - 49px - 26px - 59px) * 9 / 16);
123
+ min-width: 180px;
124
+ max-width: 340px;
125
+ border-right: 1px solid #1e2330;
126
+ display: flex;
127
+ flex-direction: column;
128
+ overflow: hidden;
129
+ }
130
+
131
+ .panel-label {
132
+ padding: 8px 16px;
133
+ font-size: 10px;
134
+ font-weight: 600;
135
+ text-transform: uppercase;
136
+ letter-spacing: 0.08em;
137
+ color: #475569;
138
+ border-bottom: 1px solid #1a1f2e;
139
+ background: #131720;
140
+ }
141
+
142
+ .video-container {
143
+ flex: 1;
144
+ background: #080a10;
145
+ overflow: hidden;
146
+ display: flex;
147
+ align-items: center;
148
+ justify-content: center;
149
+ }
150
+ .video-container iframe {
151
+ width: 100%;
152
+ height: 100%;
153
+ border: none;
154
+ display: block;
155
+ }
156
+
157
+ .video-placeholder {
158
+ display: flex;
159
+ flex-direction: column;
160
+ align-items: center;
161
+ gap: 10px;
162
+ color: #2d3748;
163
+ }
164
+ .video-placeholder svg {
165
+ width: 48px;
166
+ height: 48px;
167
+ opacity: 0.35;
168
+ }
169
+ .video-placeholder p {
170
+ font-size: 12px;
171
  }
172
 
173
+ .video-meta {
174
+ padding: 8px 16px;
175
+ font-size: 11px;
176
+ color: #64748b;
177
+ border-top: 1px solid #1a1f2e;
178
+ background: #0f1117;
179
+ min-height: 32px;
180
+ white-space: nowrap;
181
+ overflow: hidden;
182
+ text-overflow: ellipsis;
183
  }
184
 
185
+ .panel-right {
186
+ display: flex;
187
+ flex-direction: column;
188
+ overflow: hidden;
189
+ min-height: 0;
190
  }
191
 
192
+ .panel-transcript {
193
+ display: flex;
194
+ flex-direction: column;
195
+ overflow: hidden;
196
+ flex: 0 0 325px;
197
+ border-bottom: 1px solid #1e2330;
198
  }
199
 
200
+ .transcript-toolbar {
201
+ padding: 7px 16px;
202
+ background: #131720;
203
+ border-bottom: 1px solid #1a1f2e;
204
+ display: flex;
205
+ align-items: center;
206
+ justify-content: space-between;
207
+ gap: 8px;
208
+ flex-shrink: 0;
209
+ }
210
+ .transcript-toolbar .left {
211
+ font-size: 10px;
212
+ font-weight: 600;
213
+ text-transform: uppercase;
214
+ letter-spacing: 0.08em;
215
+ color: #475569;
216
+ }
217
+ .transcript-toolbar .right {
218
+ display: flex;
219
+ gap: 5px;
220
+ align-items: center;
221
+ }
222
+ .char-count {
223
+ font-size: 11px;
224
+ color: #475569;
225
+ padding: 3px 6px;
226
+ }
227
+
228
+ textarea {
229
+ flex: 1;
230
+ resize: none;
231
+ background: #0f1117;
232
+ border: none;
233
+ outline: none;
234
+ color: #e2e8f0;
235
+ font-family:
236
+ "Be Vietnam Pro",
237
+ -apple-system,
238
+ BlinkMacSystemFont,
239
+ "Segoe UI",
240
+ sans-serif;
241
+ font-size: 17px;
242
+ line-height: 1.85;
243
+ padding: 20px 24px;
244
+ letter-spacing: 0.01em;
245
+ }
246
+ textarea::placeholder {
247
+ color: #2d3748;
248
+ }
249
+
250
+ /* ── References ── */
251
+ .ref-zone {
252
+ padding: 8px 16px 10px;
253
+ background: #0f1117;
254
+ border-bottom: 1px solid #1a1f2e;
255
+ flex-shrink: 0;
256
+ }
257
+ .ref-label {
258
+ font-size: 10px;
259
+ font-weight: 600;
260
+ text-transform: uppercase;
261
+ letter-spacing: 0.08em;
262
+ color: #475569;
263
+ margin-bottom: 6px;
264
+ }
265
+ .ref-pills {
266
+ display: flex;
267
+ flex-wrap: wrap;
268
+ gap: 5px;
269
+ margin-bottom: 6px;
270
+ min-height: 0;
271
+ }
272
+ .ref-pill {
273
+ display: inline-flex;
274
+ align-items: center;
275
+ gap: 4px;
276
+ background: #1e2d45;
277
+ color: #93c5fd;
278
+ font-size: 11px;
279
+ padding: 3px 8px;
280
+ border-radius: 999px;
281
+ }
282
+ .ref-pill button {
283
+ background: none;
284
+ border: none;
285
+ cursor: pointer;
286
+ color: #60a5fa;
287
+ font-size: 12px;
288
+ line-height: 1;
289
+ padding: 0 1px;
290
+ opacity: 0.6;
291
+ }
292
+ .ref-pill button:hover {
293
+ opacity: 1;
294
+ color: #ef4444;
295
+ }
296
+ .ref-input-row {
297
+ display: flex;
298
+ gap: 6px;
299
+ }
300
+ .ref-input-row input {
301
+ flex: 1;
302
+ background: #1a1f2e;
303
+ border: 1px solid #2d3448;
304
+ border-radius: 5px;
305
+ padding: 5px 10px;
306
+ color: #e2e8f0;
307
+ font-size: 12px;
308
+ outline: none;
309
+ }
310
+ .ref-input-row input:focus {
311
+ border-color: #3b82f6;
312
+ }
313
+ .ref-input-row input::placeholder {
314
+ color: #334155;
315
+ }
316
+ .ref-input-row button {
317
+ background: #1a2540;
318
+ border: 1px solid #2d3860;
319
+ color: #60a5fa;
320
+ border-radius: 5px;
321
+ padding: 4px 10px;
322
+ font-size: 12px;
323
+ cursor: pointer;
324
+ }
325
+ .ref-input-row button:hover {
326
+ background: #1e3060;
327
+ }
328
+
329
+ /* ── Dataset table ── */
330
+ .panel-dataset {
331
+ flex: 1;
332
+ display: flex;
333
+ flex-direction: column;
334
+ overflow: hidden;
335
+ min-height: 0;
336
+ }
337
+
338
+ .dataset-toolbar {
339
+ padding: 7px 16px;
340
+ background: #131720;
341
+ border-bottom: 1px solid #1a1f2e;
342
+ display: flex;
343
+ align-items: center;
344
+ justify-content: space-between;
345
+ flex-shrink: 0;
346
+ }
347
+ .dataset-toolbar .left {
348
+ font-size: 10px;
349
+ font-weight: 600;
350
+ text-transform: uppercase;
351
+ letter-spacing: 0.08em;
352
+ color: #475569;
353
+ display: flex;
354
+ align-items: center;
355
+ gap: 8px;
356
+ }
357
+ .dataset-count {
358
+ font-size: 11px;
359
+ color: #334155;
360
+ font-weight: 400;
361
+ text-transform: none;
362
+ letter-spacing: 0;
363
+ }
364
+ .autosave-indicator {
365
+ font-size: 10px;
366
+ color: #334155;
367
+ }
368
+ .autosave-indicator.saved {
369
+ color: #22c55e;
370
+ }
371
+
372
+ .dataset-table-wrap {
373
+ flex: 1;
374
+ overflow-y: auto;
375
+ overflow-x: auto;
376
+ }
377
+ .dataset-table-wrap::-webkit-scrollbar {
378
+ width: 4px;
379
+ height: 4px;
380
+ }
381
+ .dataset-table-wrap::-webkit-scrollbar-track {
382
+ background: #0f1117;
383
+ }
384
+ .dataset-table-wrap::-webkit-scrollbar-thumb {
385
+ background: #2d3448;
386
+ border-radius: 2px;
387
+ }
388
+
389
+ table {
390
+ width: 100%;
391
+ border-collapse: collapse;
392
+ font-size: 12px;
393
+ }
394
+ thead th {
395
+ position: sticky;
396
+ top: 0;
397
+ background: #131720;
398
+ padding: 7px 12px;
399
+ text-align: left;
400
+ font-size: 10px;
401
+ font-weight: 600;
402
+ text-transform: uppercase;
403
+ letter-spacing: 0.06em;
404
+ color: #475569;
405
+ border-bottom: 1px solid #1e2330;
406
+ white-space: nowrap;
407
+ }
408
+ tbody tr {
409
+ border-bottom: 1px solid #1a1f2e;
410
+ cursor: pointer;
411
+ transition: background 0.1s;
412
+ }
413
+ tbody tr:hover {
414
+ background: #131720;
415
+ }
416
+ tbody tr.active {
417
+ background: #1a2540;
418
+ }
419
+ tbody td {
420
+ padding: 7px 12px;
421
+ color: #94a3b8;
422
+ vertical-align: middle;
423
+ }
424
+ tbody td.td-num {
425
+ color: #475569;
426
+ width: 32px;
427
+ text-align: center;
428
+ }
429
+ tbody td.td-title {
430
+ color: #cbd5e1;
431
+ max-width: 180px;
432
+ white-space: nowrap;
433
+ overflow: hidden;
434
+ text-overflow: ellipsis;
435
+ }
436
+ tbody td.td-script {
437
+ max-width: 200px;
438
+ white-space: nowrap;
439
+ overflow: hidden;
440
+ text-overflow: ellipsis;
441
+ color: #64748b;
442
+ }
443
+ tbody td.td-refs {
444
+ max-width: 160px;
445
+ white-space: nowrap;
446
+ overflow: hidden;
447
+ text-overflow: ellipsis;
448
+ color: #475569;
449
+ font-size: 11px;
450
+ }
451
+ tbody td.td-actions {
452
+ width: 60px;
453
+ white-space: nowrap;
454
+ }
455
+ .td-actions button {
456
+ background: none;
457
+ border: none;
458
+ cursor: pointer;
459
+ padding: 2px 5px;
460
+ color: #475569;
461
+ font-size: 12px;
462
+ border-radius: 4px;
463
+ }
464
+ .td-actions button:hover {
465
+ color: #ef4444;
466
+ background: #1f1a1a;
467
+ }
468
+ .empty-state {
469
+ padding: 24px;
470
+ text-align: center;
471
+ color: #334155;
472
+ font-size: 12px;
473
+ }
474
+
475
+ /* ── Status badges ── */
476
+ .status-badge {
477
+ display: inline-block;
478
+ font-size: 10px;
479
+ font-weight: 600;
480
+ padding: 2px 7px;
481
+ border-radius: 999px;
482
+ text-transform: uppercase;
483
+ letter-spacing: 0.05em;
484
+ white-space: nowrap;
485
+ }
486
+ .status-none { background: #1a1f2e; color: #475569; border: 1px solid #2d3448; }
487
+ .status-extracted { background: #1e2d45; color: #60a5fa; border: 1px solid #2d4a7a; }
488
+ .status-verified { background: #14532d; color: #86efac; border: 1px solid #166534; }
489
+
490
+ /* ── Pagination ── */
491
+ .pagination-bar {
492
+ display: flex;
493
+ align-items: center;
494
+ justify-content: center;
495
+ gap: 3px;
496
+ padding: 8px 12px;
497
+ background: #0f1117;
498
+ border-top: 1px solid #1a1f2e;
499
+ flex-shrink: 0;
500
+ }
501
+ .pg-btn {
502
+ background: #1a1f2e;
503
+ border: 1px solid #2d3448;
504
+ color: #64748b;
505
+ font-size: 12px;
506
+ padding: 3px 8px;
507
+ border-radius: 4px;
508
+ cursor: pointer;
509
+ min-width: 28px;
510
+ line-height: 1.4;
511
+ }
512
+ .pg-btn:hover:not(:disabled) {
513
+ background: #232a3d;
514
+ color: #94a3b8;
515
+ }
516
+ .pg-btn:disabled {
517
+ opacity: 0.35;
518
+ cursor: not-allowed;
519
+ }
520
+ .pg-btn.pg-active {
521
+ background: #3b82f6;
522
+ border-color: #3b82f6;
523
+ color: #fff;
524
+ }
525
+ .pg-ellipsis {
526
+ color: #475569;
527
+ font-size: 12px;
528
+ padding: 0 2px;
529
  }