@aspiresys/visor 1.3.5 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,458 +1,456 @@
1
- * {
2
- margin: 0;
3
- padding: 0;
4
- box-sizing: border-box;
5
- }
6
-
7
- .match-summary {
8
- margin-top: 10px;
9
- }
10
-
11
- .match-metric {
12
- text-align: center;
13
-
14
- padding: 10px 0;
15
- }
16
-
17
- .match-metric:last-child {
18
- border-bottom: none;
19
- }
20
-
21
- .metric-label {
22
- display: block;
23
-
24
- color: #888;
25
-
26
- font-size: 0.75em;
27
-
28
- text-transform: uppercase;
29
-
30
- letter-spacing: 1px;
31
-
32
- margin-bottom: 4px;
33
- }
34
-
35
- .metric-value {
36
- display: block;
37
-
38
- color: #00d4ff;
39
-
40
- font-weight: 700;
41
-
42
- font-size: 1.2em;
43
-
44
- font-family: Consolas, monospace;
45
- }
46
-
47
- body {
48
- background: linear-gradient(135deg, #0f0f0f 0%, #1a1a2e 100%);
49
- color: #e0e0e0;
50
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto",
51
- sans-serif;
52
- line-height: 1.6;
53
- min-height: 100vh;
54
- }
55
-
56
- .container {
57
- max-width: 1200px;
58
- margin: 0 auto;
59
- padding: 12px;
60
- }
61
-
62
- /* HEADER */
63
- .header {
64
- margin-bottom: 10px;
65
- border-bottom: 1px solid #00d4ff;
66
- padding-bottom: 6px;
67
- }
68
-
69
- .header h3 {
70
- font-size: 16px;
71
- color: #00d4ff;
72
- }
73
-
74
- .header h1 {
75
- font-size: 2.5em;
76
- background: linear-gradient(135deg, #00d4ff, #0099cc);
77
- -webkit-background-clip: text;
78
- -webkit-text-fill-color: transparent;
79
- background-clip: text;
80
- margin-bottom: 8px;
81
- font-weight: 700;
82
- }
83
-
84
- .header .subtitle {
85
- color: #888;
86
- font-size: 0.95em;
87
- font-weight: 300;
88
- letter-spacing: 0.5px;
89
- }
90
-
91
- /* SECTIONS */
92
- .section-title {
93
- font-size: 1.2em;
94
- color: #00d4ff;
95
- margin-bottom: 2px;
96
- margin-top: 0;
97
- font-weight: 600;
98
- display: flex;
99
- align-items: center;
100
- gap: 8px;
101
- }
102
-
103
- /* CONTROLS SECTION */
104
- .controls-section {
105
- background: rgba(255, 255, 255, 0.03);
106
- border: 1px solid rgba(0, 212, 255, 0.2);
107
- border-radius: 12px;
108
- padding: 10px;
109
- margin-bottom: 15px;
110
- backdrop-filter: blur(10px);
111
- }
112
-
113
- .toolbar {
114
- display: flex;
115
- gap: 6px;
116
- margin-bottom: 8px;
117
- align-items: center;
118
- }
119
-
120
- .btn {
121
- padding: 4px 8px;
122
- border: none;
123
- border-radius: 8px;
124
- cursor: pointer;
125
- font-size: 12px;
126
- font-weight: 500;
127
- transition: all 0.3s ease;
128
- display: flex;
129
- align-items: center;
130
- gap: 3px;
131
- white-space: nowrap;
132
- }
133
-
134
- .btn-icon {
135
- font-size: 1.1em;
136
- }
137
-
138
- .btn-primary {
139
- background: linear-gradient(135deg, #00d4ff, #0099cc);
140
- color: #000;
141
- font-weight: 600;
142
- }
143
-
144
- .btn-primary:hover {
145
- transform: translateY(-2px);
146
- box-shadow: 0 8px 20px rgba(0, 212, 255, 0.4);
147
- }
148
-
149
- .btn-primary:active {
150
- transform: translateY(0);
151
- }
152
-
153
- .btn-secondary {
154
- background: rgba(100, 150, 180, 0.2);
155
- color: #e0e0e0;
156
- border: 1px solid rgba(0, 212, 255, 0.3);
157
- }
158
-
159
- .btn-secondary:hover {
160
- background: rgba(100, 150, 180, 0.3);
161
- border-color: rgba(0, 212, 255, 0.6);
162
- transform: translateY(-2px);
163
- }
164
-
165
- .btn-accent {
166
- background: rgba(76, 175, 80, 0.2);
167
- color: #4caf50;
168
- border: 1px solid rgba(76, 175, 80, 0.5);
169
- }
170
-
171
- .btn-accent:hover {
172
- background: rgba(76, 175, 80, 0.3);
173
- border-color: #4caf50;
174
- transform: translateY(-2px);
175
- }
176
-
177
- /* CONTROLS GRID */
178
- .controls-grid {
179
- display: grid;
180
- grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
181
- gap: 20px;
182
- }
183
-
184
- .control-group {
185
- display: flex;
186
- flex-direction: column;
187
- gap: 8px;
188
- }
189
-
190
- .control-group label {
191
- font-size: 0.8em;
192
- color: #b0b0b0;
193
- font-weight: 500;
194
- }
195
-
196
- .input-wrapper {
197
- display: flex;
198
- align-items: center;
199
- gap: 10px;
200
- }
201
-
202
- input[type="range"] {
203
- background: rgba(37, 37, 38, 0.8);
204
- color: #00d4ff;
205
- width: 100px;
206
- transition: all 0.3s ease;
207
- height: 5px;
208
- }
209
-
210
- input[type="number"] {
211
- color: rgb(0, 212, 255);
212
- font-size: 0.8em;
213
- width: 60px;
214
- background: rgba(37, 37, 38, 0.8);
215
- border-width: 1px;
216
- border-style: solid;
217
- border-color: rgba(0, 212, 255, 0.3);
218
- border-image: initial;
219
- padding: 5px 6px;
220
- border-radius: 6px;
221
- transition: all 0.3s ease;
222
- }
223
-
224
- input[type="range"]:focus, input[type="number"]:focus {
225
- outline: none;
226
- border-color: #00d4ff;
227
- box-shadow: 0 0 12px rgba(0, 212, 255, 0.2);
228
- background: rgba(37, 37, 38, 1);
229
- }
230
-
231
- .input-hint {
232
- color: #666;
233
- font-size: 0.85em;
234
- }
235
-
236
- /* CANVAS SECTION */
237
- .canvas-section {
238
- background: rgba(255, 255, 255, 0.02);
239
- border: 1px solid rgba(0, 212, 255, 0.2);
240
- border-radius: 12px;
241
- padding: 10px;
242
- margin-bottom: 10px;
243
- }
244
-
245
- .canvas {
246
- border: 2px solid #00d4ff;
247
- border-radius: 8px;
248
- background: #0a0a0a;
249
- display: block;
250
- margin-top: 15px;
251
- box-shadow: 0 0 20px rgba(0, 212, 255, 0.1);
252
- width: stretch;
253
- }
254
-
255
- /* TEMPLATE SECTION */
256
- .template-section {
257
- background: rgba(255, 255, 255, 0.02);
258
- border: 1px solid rgba(0, 212, 255, 0.2);
259
- border-radius: 12px;
260
- padding: 10px;
261
- margin-bottom: 10px;
262
- margin-top: 10px;
263
- }
264
-
265
- .template-grid {
266
- display: grid;
267
- grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
268
- gap: 20px;
269
- }
270
-
271
- .template-info {
272
- display: flex;
273
- flex-direction: column;
274
- gap: 10px;
275
- }
276
-
277
- .template-info p {
278
- font-size: 0.95em;
279
- color: #b0b0b0;
280
- }
281
-
282
- .template-status {
283
- color: #4caf50;
284
- font-size: small;
285
- }
286
-
287
- .template-preview {
288
- border: 2px solid #00d4ff;
289
- border-radius: 8px;
290
- width: 130px;
291
- max-width: 100%;
292
- height: 130px;
293
- max-height: 150px;
294
- object-fit: contain;
295
- background: #0a0a0a;
296
- box-shadow: 0 0 20px rgba(0, 212, 255, 0.1);
297
- display: none;
298
- margin-top: 15px;
299
- margin-bottom: 15px;
300
- cursor: zoom-in;
301
- }
302
-
303
- .template-preview[src]:not([src=""]) {
304
- display: block;
305
- }
306
-
307
- /* RESULTS SECTION */
308
- .results-section {
309
- background: rgba(255, 255, 255, 0.02);
310
- border: 1px solid rgba(0, 212, 255, 0.2);
311
- border-radius: 12px;
312
- padding: 10px;
313
- }
314
-
315
- /* RESULTS GRID */
316
- .results-grid {
317
- display: grid;
318
- grid-template-columns: repeat(auto-fit, minmax(80px, 1fr));
319
- gap: 12px;
320
- }
321
-
322
- .result-card {
323
- background: rgba(0, 212, 255, 0.08);
324
- border: 1px solid rgba(0, 212, 255, 0.3);
325
- border-radius: 8px;
326
- padding: 4px;
327
- min-height: 50px;
328
- display: flex;
329
- flex-direction: column;
330
- align-items: center;
331
- gap: 6px;
332
- transition: all 0.3s ease;
333
- text-align: center;
334
- }
335
-
336
- .result-card:hover {
337
- background: rgba(0, 212, 255, 0.12);
338
- border-color: rgba(0, 212, 255, 0.5);
339
- transform: translateY(-2px);
340
- box-shadow: 0 4px 12px rgba(0, 212, 255, 0.15);
341
- }
342
-
343
- .result-label {
344
- color: #888;
345
- font-size: 0.8em;
346
- font-weight: 500;
347
- text-transform: uppercase;
348
- letter-spacing: 0.5px;
349
- }
350
-
351
- .result-value {
352
- color: #00d4ff;
353
- font-weight: 700;
354
- font-size: 0.8em;
355
- font-family: "Courier New", monospace;
356
- }
357
-
358
- #matchResult {
359
- padding: 12px;
360
- min-height: 157px;
361
- max-height: 300px;
362
- overflow-y: auto;
363
- max-width: max-content;
364
- background: rgba(255, 255, 255, 0.03);
365
- border: 1px solid rgba(0, 212, 255, 0.2);
366
- border-radius: 8px;
367
- font-family: Consolas, monospace;
368
- white-space: pre-line;
369
- font-size: 0.8em;
370
- border-color: rgb(76, 175, 79);
371
- }
372
-
373
- #matchResult:not(:empty) {
374
- background: rgba(76, 175, 80, 0.1);
375
- border-color: rgb(76, 175, 79);
376
- color: #e0e0e0;
377
- }
378
-
379
- /* RESPONSIVE */
380
- @media (max-width: 768px) {
381
- .container {
382
- padding: 12px;
383
- }
384
-
385
- .header h1 {
386
- font-size: 1.8em;
387
- }
388
-
389
- .toolbar {
390
- flex-direction: column;
391
- gap: 10px;
392
- }
393
-
394
- .btn {
395
- width: 100%;
396
- justify-content: center;
397
- }
398
-
399
- .controls-grid {
400
- grid-template-columns: 1fr;
401
- }
402
-
403
- .template-grid {
404
- grid-template-columns: 1fr;
405
- }
406
- }
407
-
408
- /* SCROLLBAR STYLING */
409
- ::-webkit-scrollbar {
410
- width: 8px;
411
- height: 8px;
412
- }
413
-
414
- ::-webkit-scrollbar-track {
415
- background: rgba(37, 37, 38, 0.5);
416
- border-radius: 10px;
417
- }
418
-
419
- ::-webkit-scrollbar-thumb {
420
- background: rgba(0, 212, 255, 0.4);
421
- border-radius: 10px;
422
- }
423
-
424
- ::-webkit-scrollbar-thumb:hover {
425
- background: rgba(0, 212, 255, 0.6);
426
- }
427
-
428
- .capture-layout {
429
- display: grid;
430
- grid-template-columns: 1fr 280px;
431
- gap: 16px;
432
- }
433
-
434
- .capture-panel {
435
- flex: 1;
436
- }
437
-
438
- .result-panel {
439
- width: 250px;
440
- flex-shrink: 0;
441
- }
442
-
443
-
444
- .image-modal {
445
- display: none;
446
- position: fixed;
447
- inset: 0;
448
- background:
449
- rgba(0,0,0,0.8);
450
- justify-content: center;
451
- align-items: center;
452
- z-index: 9999;
453
- }
454
-
455
- .image-modal img {
456
- max-width: 90vw;
457
- max-height: 90vh;
458
- }
1
+ * {
2
+ margin: 0;
3
+ padding: 0;
4
+ box-sizing: border-box;
5
+ }
6
+
7
+ .match-summary {
8
+ margin-top: 10px;
9
+ }
10
+
11
+ .match-metric {
12
+ text-align: center;
13
+
14
+ padding: 10px 0;
15
+ }
16
+
17
+ .match-metric:last-child {
18
+ border-bottom: none;
19
+ }
20
+
21
+ .metric-label {
22
+ display: block;
23
+
24
+ color: #888;
25
+
26
+ font-size: 0.75em;
27
+
28
+ text-transform: uppercase;
29
+
30
+ letter-spacing: 1px;
31
+
32
+ margin-bottom: 4px;
33
+ }
34
+
35
+ .metric-value {
36
+ display: block;
37
+
38
+ color: #00d4ff;
39
+
40
+ font-weight: 700;
41
+
42
+ font-size: 1.2em;
43
+
44
+ font-family: Consolas, monospace;
45
+ }
46
+
47
+ body {
48
+ background: linear-gradient(135deg, #0f0f0f 0%, #1a1a2e 100%);
49
+ color: #e0e0e0;
50
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif;
51
+ line-height: 1.6;
52
+ min-height: 100vh;
53
+ }
54
+
55
+ .container {
56
+ max-width: 1200px;
57
+ margin: 0 auto;
58
+ padding: 12px;
59
+ }
60
+
61
+ /* HEADER */
62
+ .header {
63
+ margin-bottom: 10px;
64
+ border-bottom: 1px solid #00d4ff;
65
+ padding-bottom: 6px;
66
+ }
67
+
68
+ .header h3 {
69
+ font-size: 16px;
70
+ color: #00d4ff;
71
+ }
72
+
73
+ .header h1 {
74
+ font-size: 2.5em;
75
+ background: linear-gradient(135deg, #00d4ff, #0099cc);
76
+ -webkit-background-clip: text;
77
+ -webkit-text-fill-color: transparent;
78
+ background-clip: text;
79
+ margin-bottom: 8px;
80
+ font-weight: 700;
81
+ }
82
+
83
+ .header .subtitle {
84
+ color: #888;
85
+ font-size: 0.95em;
86
+ font-weight: 300;
87
+ letter-spacing: 0.5px;
88
+ }
89
+
90
+ /* SECTIONS */
91
+ .section-title {
92
+ font-size: 1.2em;
93
+ color: #00d4ff;
94
+ margin-bottom: 2px;
95
+ margin-top: 0;
96
+ font-weight: 600;
97
+ display: flex;
98
+ align-items: center;
99
+ gap: 8px;
100
+ }
101
+
102
+ /* CONTROLS SECTION */
103
+ .controls-section {
104
+ background: rgba(255, 255, 255, 0.03);
105
+ border: 1px solid rgba(0, 212, 255, 0.2);
106
+ border-radius: 12px;
107
+ padding: 10px;
108
+ margin-bottom: 15px;
109
+ backdrop-filter: blur(10px);
110
+ }
111
+
112
+ .toolbar {
113
+ display: flex;
114
+ gap: 6px;
115
+ margin-bottom: 8px;
116
+ align-items: center;
117
+ }
118
+
119
+ .btn {
120
+ padding: 4px 8px;
121
+ border: none;
122
+ border-radius: 8px;
123
+ cursor: pointer;
124
+ font-size: 12px;
125
+ font-weight: 500;
126
+ transition: all 0.3s ease;
127
+ display: flex;
128
+ align-items: center;
129
+ gap: 3px;
130
+ white-space: nowrap;
131
+ }
132
+
133
+ .btn-icon {
134
+ font-size: 1.1em;
135
+ }
136
+
137
+ .btn-primary {
138
+ background: linear-gradient(135deg, #00d4ff, #0099cc);
139
+ color: #000;
140
+ font-weight: 600;
141
+ }
142
+
143
+ .btn-primary:hover {
144
+ transform: translateY(-2px);
145
+ box-shadow: 0 8px 20px rgba(0, 212, 255, 0.4);
146
+ }
147
+
148
+ .btn-primary:active {
149
+ transform: translateY(0);
150
+ }
151
+
152
+ .btn-secondary {
153
+ background: rgba(100, 150, 180, 0.2);
154
+ color: #e0e0e0;
155
+ border: 1px solid rgba(0, 212, 255, 0.3);
156
+ }
157
+
158
+ .btn-secondary:hover {
159
+ background: rgba(100, 150, 180, 0.3);
160
+ border-color: rgba(0, 212, 255, 0.6);
161
+ transform: translateY(-2px);
162
+ }
163
+
164
+ .btn-accent {
165
+ background: rgba(76, 175, 80, 0.2);
166
+ color: #4caf50;
167
+ border: 1px solid rgba(76, 175, 80, 0.5);
168
+ }
169
+
170
+ .btn-accent:hover {
171
+ background: rgba(76, 175, 80, 0.3);
172
+ border-color: #4caf50;
173
+ transform: translateY(-2px);
174
+ }
175
+
176
+ /* CONTROLS GRID */
177
+ .controls-grid {
178
+ display: grid;
179
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
180
+ gap: 20px;
181
+ }
182
+
183
+ .control-group {
184
+ display: flex;
185
+ flex-direction: column;
186
+ gap: 8px;
187
+ }
188
+
189
+ .control-group label {
190
+ font-size: 0.8em;
191
+ color: #b0b0b0;
192
+ font-weight: 500;
193
+ }
194
+
195
+ .input-wrapper {
196
+ display: flex;
197
+ align-items: center;
198
+ gap: 10px;
199
+ }
200
+
201
+ input[type='range'] {
202
+ background: rgba(37, 37, 38, 0.8);
203
+ color: #00d4ff;
204
+ width: 100px;
205
+ transition: all 0.3s ease;
206
+ height: 5px;
207
+ }
208
+
209
+ input[type='number'] {
210
+ color: rgb(0, 212, 255);
211
+ font-size: 0.8em;
212
+ width: 60px;
213
+ background: rgba(37, 37, 38, 0.8);
214
+ border-width: 1px;
215
+ border-style: solid;
216
+ border-color: rgba(0, 212, 255, 0.3);
217
+ border-image: initial;
218
+ padding: 5px 6px;
219
+ border-radius: 6px;
220
+ transition: all 0.3s ease;
221
+ }
222
+
223
+ input[type='range']:focus,
224
+ input[type='number']:focus {
225
+ outline: none;
226
+ border-color: #00d4ff;
227
+ box-shadow: 0 0 12px rgba(0, 212, 255, 0.2);
228
+ background: rgba(37, 37, 38, 1);
229
+ }
230
+
231
+ .input-hint {
232
+ color: #666;
233
+ font-size: 0.85em;
234
+ }
235
+
236
+ /* CANVAS SECTION */
237
+ .canvas-section {
238
+ background: rgba(255, 255, 255, 0.02);
239
+ border: 1px solid rgba(0, 212, 255, 0.2);
240
+ border-radius: 12px;
241
+ padding: 10px;
242
+ margin-bottom: 10px;
243
+ }
244
+
245
+ .canvas {
246
+ border: 2px solid #00d4ff;
247
+ border-radius: 8px;
248
+ background: #0a0a0a;
249
+ display: block;
250
+ margin-top: 15px;
251
+ box-shadow: 0 0 20px rgba(0, 212, 255, 0.1);
252
+ width: stretch;
253
+ }
254
+
255
+ /* TEMPLATE SECTION */
256
+ .template-section {
257
+ background: rgba(255, 255, 255, 0.02);
258
+ border: 1px solid rgba(0, 212, 255, 0.2);
259
+ border-radius: 12px;
260
+ padding: 10px;
261
+ margin-bottom: 10px;
262
+ margin-top: 10px;
263
+ }
264
+
265
+ .template-grid {
266
+ display: grid;
267
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
268
+ gap: 20px;
269
+ }
270
+
271
+ .template-info {
272
+ display: flex;
273
+ flex-direction: column;
274
+ gap: 10px;
275
+ }
276
+
277
+ .template-info p {
278
+ font-size: 0.95em;
279
+ color: #b0b0b0;
280
+ }
281
+
282
+ .template-status {
283
+ color: #4caf50;
284
+ font-size: small;
285
+ }
286
+
287
+ .template-preview {
288
+ border: 2px solid #00d4ff;
289
+ border-radius: 8px;
290
+ width: 130px;
291
+ max-width: 100%;
292
+ height: 130px;
293
+ max-height: 150px;
294
+ object-fit: contain;
295
+ background: #0a0a0a;
296
+ box-shadow: 0 0 20px rgba(0, 212, 255, 0.1);
297
+ display: none;
298
+ margin-top: 15px;
299
+ margin-bottom: 15px;
300
+ cursor: zoom-in;
301
+ }
302
+
303
+ .template-preview[src]:not([src='']) {
304
+ display: block;
305
+ }
306
+
307
+ /* RESULTS SECTION */
308
+ .results-section {
309
+ background: rgba(255, 255, 255, 0.02);
310
+ border: 1px solid rgba(0, 212, 255, 0.2);
311
+ border-radius: 12px;
312
+ padding: 10px;
313
+ }
314
+
315
+ /* RESULTS GRID */
316
+ .results-grid {
317
+ display: grid;
318
+ grid-template-columns: repeat(auto-fit, minmax(80px, 1fr));
319
+ gap: 12px;
320
+ }
321
+
322
+ .result-card {
323
+ background: rgba(0, 212, 255, 0.08);
324
+ border: 1px solid rgba(0, 212, 255, 0.3);
325
+ border-radius: 8px;
326
+ padding: 4px;
327
+ min-height: 50px;
328
+ display: flex;
329
+ flex-direction: column;
330
+ align-items: center;
331
+ gap: 6px;
332
+ transition: all 0.3s ease;
333
+ text-align: center;
334
+ }
335
+
336
+ .result-card:hover {
337
+ background: rgba(0, 212, 255, 0.12);
338
+ border-color: rgba(0, 212, 255, 0.5);
339
+ transform: translateY(-2px);
340
+ box-shadow: 0 4px 12px rgba(0, 212, 255, 0.15);
341
+ }
342
+
343
+ .result-label {
344
+ color: #888;
345
+ font-size: 0.8em;
346
+ font-weight: 500;
347
+ text-transform: uppercase;
348
+ letter-spacing: 0.5px;
349
+ }
350
+
351
+ .result-value {
352
+ color: #00d4ff;
353
+ font-weight: 700;
354
+ font-size: 0.8em;
355
+ font-family: 'Courier New', monospace;
356
+ }
357
+
358
+ #matchResult {
359
+ padding: 12px;
360
+ min-height: 157px;
361
+ max-height: 300px;
362
+ overflow-y: auto;
363
+ max-width: max-content;
364
+ background: rgba(255, 255, 255, 0.03);
365
+ border: 1px solid rgba(0, 212, 255, 0.2);
366
+ border-radius: 8px;
367
+ font-family: Consolas, monospace;
368
+ white-space: pre-line;
369
+ font-size: 0.8em;
370
+ border-color: rgb(76, 175, 79);
371
+ }
372
+
373
+ #matchResult:not(:empty) {
374
+ background: rgba(76, 175, 80, 0.1);
375
+ border-color: rgb(76, 175, 79);
376
+ color: #e0e0e0;
377
+ }
378
+
379
+ /* RESPONSIVE */
380
+ @media (max-width: 768px) {
381
+ .container {
382
+ padding: 12px;
383
+ }
384
+
385
+ .header h1 {
386
+ font-size: 1.8em;
387
+ }
388
+
389
+ .toolbar {
390
+ flex-direction: column;
391
+ gap: 10px;
392
+ }
393
+
394
+ .btn {
395
+ width: 100%;
396
+ justify-content: center;
397
+ }
398
+
399
+ .controls-grid {
400
+ grid-template-columns: 1fr;
401
+ }
402
+
403
+ .template-grid {
404
+ grid-template-columns: 1fr;
405
+ }
406
+ }
407
+
408
+ /* SCROLLBAR STYLING */
409
+ ::-webkit-scrollbar {
410
+ width: 8px;
411
+ height: 8px;
412
+ }
413
+
414
+ ::-webkit-scrollbar-track {
415
+ background: rgba(37, 37, 38, 0.5);
416
+ border-radius: 10px;
417
+ }
418
+
419
+ ::-webkit-scrollbar-thumb {
420
+ background: rgba(0, 212, 255, 0.4);
421
+ border-radius: 10px;
422
+ }
423
+
424
+ ::-webkit-scrollbar-thumb:hover {
425
+ background: rgba(0, 212, 255, 0.6);
426
+ }
427
+
428
+ .capture-layout {
429
+ display: grid;
430
+ grid-template-columns: 1fr 280px;
431
+ gap: 16px;
432
+ }
433
+
434
+ .capture-panel {
435
+ flex: 1;
436
+ }
437
+
438
+ .result-panel {
439
+ width: 250px;
440
+ flex-shrink: 0;
441
+ }
442
+
443
+ .image-modal {
444
+ display: none;
445
+ position: fixed;
446
+ inset: 0;
447
+ background: rgba(0, 0, 0, 0.8);
448
+ justify-content: center;
449
+ align-items: center;
450
+ z-index: 9999;
451
+ }
452
+
453
+ .image-modal img {
454
+ max-width: 90vw;
455
+ max-height: 90vh;
456
+ }