ft-scout 7.0.7 → 7.0.9

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.
package/web/styles.css CHANGED
@@ -1,74 +1,66 @@
1
1
  /* ==========================================================================
2
- FrontTerrain Scout — Product Studio & Developer Portal Design System
3
- Exact Visual System matching https://frontterrain.com (HappyRobot-inspired studio UX)
2
+ FrontTerrain Scout — Design System & Visual Engine v7.0.9
3
+ Inspired by HappyRobot, Linear.app & Vercel aesthetics
4
4
  ========================================================================== */
5
5
 
6
6
  :root {
7
- /* FrontTerrain Design System Palette */
8
- --hr-surface: #0b0c10;
9
- --hr-surface-card: #12141a;
10
- --hr-surface-hover: #191c24;
11
- --hr-ink-strong: #f8fafc;
12
- --hr-ink-muted: #94a3b8;
13
- --hr-ink-subtle: #64748b;
7
+ /* FrontTerrain Color Tokens */
8
+ --hr-canvas: #08090c;
9
+ --hr-surface: #101218;
10
+ --hr-surface-card: #151821;
11
+ --hr-surface-hover: #1c202d;
12
+ --hr-surface-elevated: #232838;
13
+
14
14
  --hr-rust: #e15b37;
15
- --hr-rust-glow: rgba(225, 91, 55, 0.2);
15
+ --hr-rust-hover: #f06843;
16
+ --hr-rust-glow: rgba(225, 91, 55, 0.25);
17
+
16
18
  --hr-cyan: #38bdf8;
19
+ --hr-cyan-glow: rgba(56, 189, 248, 0.25);
20
+
17
21
  --hr-violet: #818cf8;
18
22
  --hr-emerald: #34d399;
23
+ --hr-amber: #fbbf24;
24
+ --hr-rose: #f87171;
25
+
19
26
  --hr-line: rgba(255, 255, 255, 0.08);
20
27
  --hr-line-strong: rgba(255, 255, 255, 0.16);
21
28
 
22
- /* Core Canvas & Card Aliases */
23
- --bg-canvas: #0b0c10;
24
- --bg-surface: #12141a;
25
- --bg-surface-elevated: #191c24;
26
- --bg-input: #08090c;
27
-
28
- /* Borders & Dividers */
29
- --border-subtle: rgba(255, 255, 255, 0.08);
30
- --border-hover: rgba(225, 91, 55, 0.3);
31
- --border-focus: rgba(225, 91, 55, 0.5);
32
-
33
- /* Accent Tokens */
34
- --accent-primary: #e15b37; /* FrontTerrain Rust */
35
- --accent-primary-hover: #f06843;
36
- --accent-cyan: #38bdf8; /* Electric Cyan */
37
- --accent-purple: #818cf8; /* Violet */
38
- --accent-emerald: #34d399; /* Mint Emerald */
39
- --accent-amber: #fbbf24; /* Amber */
40
- --accent-rose: #f87171; /* Rose Coral */
41
-
42
- /* Text Contrast */
29
+ /* Contrast Text */
43
30
  --text-primary: #f8fafc;
44
31
  --text-secondary: #94a3b8;
45
32
  --text-tertiary: #64748b;
46
33
  --text-dim: #475569;
47
-
48
- /* Fonts matching frontterrain.com */
34
+
35
+ /* Aliases */
36
+ --bg-canvas: var(--hr-canvas);
37
+ --bg-surface: var(--hr-surface);
38
+ --bg-card: var(--hr-surface-card);
39
+ --border-subtle: var(--hr-line);
40
+ --border-hover: rgba(225, 91, 55, 0.35);
41
+
42
+ --accent-primary: var(--hr-rust);
43
+ --accent-cyan: var(--hr-cyan);
44
+ --accent-purple: var(--hr-violet);
45
+ --accent-emerald: var(--hr-emerald);
46
+
47
+ /* Fonts */
49
48
  --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
50
- --font-serif: 'Newsreader', Georgia, serif;
51
49
  --font-mono: 'JetBrains Mono', monospace;
52
- --font-heading: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
53
- --font-body: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
54
-
50
+ --font-serif: 'Newsreader', Georgia, serif;
51
+
55
52
  /* Radii */
56
53
  --radius-sm: 6px;
57
54
  --radius-md: 12px;
58
- --radius-lg: 16px;
55
+ --radius-lg: 18px;
59
56
  --radius-pill: 9999px;
60
-
61
- /* Shadows & Ambient Glows */
62
- --shadow-card: 0 12px 32px -8px rgba(0, 0, 0, 0.6);
63
- --shadow-glow-primary: 0 0 30px rgba(225, 91, 55, 0.2);
64
- --shadow-glow-cyan: 0 0 30px rgba(56, 189, 248, 0.18);
65
-
57
+
66
58
  /* Transitions */
67
59
  --transition-fast: 0.15s cubic-bezier(0.4, 0, 0.2, 1);
68
60
  --transition-normal: 0.25s cubic-bezier(0.4, 0, 0.2, 1);
69
61
  }
70
62
 
71
- /* Custom Minimal Scrollbar */
63
+ /* Minimal Custom Scrollbar */
72
64
  ::-webkit-scrollbar {
73
65
  width: 6px;
74
66
  height: 6px;
@@ -81,25 +73,48 @@
81
73
  border-radius: 4px;
82
74
  }
83
75
  ::-webkit-scrollbar-thumb:hover {
84
- background: rgba(225, 91, 55, 0.4);
76
+ background: var(--hr-rust);
77
+ }
78
+
79
+ /* Reset & Setup */
80
+ *, *::before, *::after {
81
+ box-sizing: border-box;
82
+ margin: 0;
83
+ padding: 0;
84
+ }
85
+
86
+ html {
87
+ scroll-behavior: smooth;
88
+ }
89
+
90
+ body {
91
+ background-color: var(--bg-canvas);
92
+ color: var(--text-primary);
93
+ font-family: var(--font-sans);
94
+ font-size: 14px;
95
+ line-height: 1.6;
96
+ min-height: 100vh;
97
+ overflow-x: hidden;
98
+ position: relative;
99
+ -webkit-font-smoothing: antialiased;
85
100
  }
86
101
 
87
- /* Announcement Top Bar (Matching frontterrain.com) */
102
+ /* Top Announcement Bar */
88
103
  .announcement-bar {
89
104
  background: var(--hr-rust);
90
105
  color: #ffffff;
91
- padding: 0.5rem 1rem;
92
- font-size: 0.75rem;
106
+ padding: 0.55rem 1rem;
107
+ font-size: 0.72rem;
93
108
  font-weight: 600;
94
109
  text-transform: uppercase;
95
- letter-spacing: 0.1em;
110
+ letter-spacing: 0.11em;
96
111
  text-align: center;
97
112
  display: flex;
98
113
  align-items: center;
99
114
  justify-content: center;
100
115
  gap: 0.75rem;
101
116
  text-decoration: none;
102
- transition: opacity 0.2s ease;
117
+ transition: opacity var(--transition-fast);
103
118
  position: relative;
104
119
  z-index: 101;
105
120
  }
@@ -133,88 +148,69 @@
133
148
  letter-spacing: 0.14em;
134
149
  color: var(--hr-rust);
135
150
  background: rgba(225, 91, 55, 0.08);
136
- border: 1px solid rgba(225, 91, 55, 0.2);
151
+ border: 1px solid rgba(225, 91, 55, 0.22);
137
152
  padding: 0.35rem 0.85rem;
138
153
  border-radius: 9999px;
139
154
  margin-bottom: 0.75rem;
140
155
  }
141
156
 
142
- /* Reset & Base Setup */
143
- *, *::before, *::after {
144
- box-sizing: border-box;
145
- margin: 0;
146
- padding: 0;
147
- }
148
-
149
- body {
150
- background-color: var(--bg-canvas);
151
- color: var(--text-primary);
152
- font-family: var(--font-body);
153
- font-size: 14px;
154
- line-height: 1.6;
155
- min-height: 100vh;
156
- overflow-x: hidden;
157
- position: relative;
158
- -webkit-font-smoothing: antialiased;
159
- }
160
-
161
- /* Diffused Ambient Radial Background Glows */
157
+ /* Ambient Diffused Background Radial Glows */
162
158
  .bg-glow {
163
159
  position: fixed;
164
160
  border-radius: 50%;
165
- filter: blur(140px);
161
+ filter: blur(160px);
166
162
  pointer-events: none;
167
163
  z-index: 0;
168
- opacity: 0.25;
169
- animation: floatGlow 16s infinite alternate ease-in-out;
164
+ opacity: 0.16;
165
+ animation: floatGlow 18s infinite alternate ease-in-out;
166
+ will-change: transform, opacity;
170
167
  }
171
168
 
172
169
  .bg-glow-1 {
173
- width: 500px;
174
- height: 500px;
170
+ width: 650px;
171
+ height: 650px;
175
172
  background: var(--hr-rust);
176
- top: -120px;
177
- left: -100px;
173
+ top: -160px;
174
+ left: -140px;
178
175
  }
179
176
 
180
177
  .bg-glow-2 {
181
- width: 550px;
182
- height: 550px;
178
+ width: 700px;
179
+ height: 700px;
183
180
  background: var(--hr-violet);
184
- bottom: -150px;
185
- right: -120px;
186
- animation-delay: -6s;
181
+ bottom: -200px;
182
+ right: -160px;
183
+ animation-delay: -7s;
187
184
  }
188
185
 
189
186
  .bg-glow-3 {
190
- width: 400px;
191
- height: 400px;
187
+ width: 500px;
188
+ height: 500px;
192
189
  background: var(--hr-cyan);
193
190
  top: 45%;
194
191
  left: 50%;
195
192
  transform: translate(-50%, -50%);
196
- opacity: 0.1;
193
+ opacity: 0.07;
197
194
  }
198
195
 
199
196
  @keyframes floatGlow {
200
- 0% { transform: scale(1) translate(0, 0); opacity: 0.2; }
201
- 100% { transform: scale(1.1) translate(25px, 25px); opacity: 0.35; }
197
+ 0% { transform: scale(1) translate(0, 0); opacity: 0.14; }
198
+ 100% { transform: scale(1.08) translate(30px, 20px); opacity: 0.22; }
202
199
  }
203
200
 
204
201
  /* Frosted Glass Panel */
205
202
  .glass-panel {
206
- background: var(--bg-surface);
207
- backdrop-filter: blur(16px);
208
- -webkit-backdrop-filter: blur(16px);
209
- border: 1px solid var(--border-subtle);
210
- border-radius: var(--radius-md);
211
- box-shadow: var(--shadow-card);
212
- transition: border-color var(--transition-normal), background-color var(--transition-normal);
203
+ background: rgba(21, 24, 33, 0.72);
204
+ backdrop-filter: blur(24px);
205
+ -webkit-backdrop-filter: blur(24px);
206
+ border: 1px solid var(--hr-line);
207
+ border-radius: var(--radius-lg);
208
+ box-shadow: 0 12px 36px -12px rgba(0, 0, 0, 0.6);
209
+ transition: border-color var(--transition-normal), background-color var(--transition-normal), transform var(--transition-normal), box-shadow var(--transition-normal);
213
210
  }
214
211
 
215
212
  .glass-panel:hover {
216
- border-color: var(--hr-line-strong);
217
- background-color: var(--hr-surface-hover);
213
+ border-color: rgba(255, 255, 255, 0.14);
218
214
  }
219
215
 
220
216
  /* App Wrapper Layout */
@@ -231,14 +227,14 @@ body {
231
227
 
232
228
  /* Typography Helpers */
233
229
  h1, h2, h3, h4, h5, h6 {
234
- font-family: var(--font-heading);
230
+ font-family: var(--font-sans);
235
231
  color: var(--text-primary);
236
- font-weight: 600;
237
- letter-spacing: -0.02em;
232
+ font-weight: 700;
233
+ letter-spacing: -0.025em;
238
234
  }
239
235
 
240
236
  .text-gradient {
241
- background: linear-gradient(135deg, #c7d2fe 0%, #a5b4fc 40%, #38bdf8 100%);
237
+ background: linear-gradient(135deg, #f8fafc 0%, #c7d2fe 40%, #38bdf8 100%);
242
238
  background-clip: text;
243
239
  -webkit-background-clip: text;
244
240
  -webkit-text-fill-color: transparent;
@@ -247,8 +243,10 @@ h1, h2, h3, h4, h5, h6 {
247
243
  .text-bright { color: var(--text-primary); }
248
244
  .text-muted { color: var(--text-secondary); }
249
245
  .text-dim { color: var(--text-tertiary); }
250
- .text-danger { color: var(--accent-rose) !important; }
251
- .text-primary { color: var(--accent-cyan) !important; }
246
+ .text-danger { color: var(--hr-rose) !important; }
247
+ .text-primary { color: var(--hr-cyan) !important; }
248
+ .text-warning { color: var(--hr-amber) !important; }
249
+ .text-success { color: var(--hr-emerald) !important; }
252
250
  .block { display: block; }
253
251
  .hidden { display: none !important; }
254
252
 
@@ -257,9 +255,9 @@ h1, h2, h3, h4, h5, h6 {
257
255
  display: flex;
258
256
  align-items: center;
259
257
  justify-content: space-between;
260
- padding: 18px 0;
258
+ padding: 20px 0;
261
259
  border-bottom: 1px solid var(--border-subtle);
262
- margin-bottom: 28px;
260
+ margin-bottom: 32px;
263
261
  }
264
262
 
265
263
  .nav-left {
@@ -272,27 +270,27 @@ h1, h2, h3, h4, h5, h6 {
272
270
  display: flex;
273
271
  align-items: center;
274
272
  gap: 10px;
273
+ text-decoration: none;
275
274
  }
276
275
 
277
276
  .logo-icon {
278
- width: 38px;
279
- height: 38px;
280
- background: rgba(15, 23, 42, 0.6);
281
- border: 1px solid rgba(56, 189, 248, 0.3);
282
- border-radius: var(--radius-md);
277
+ width: 36px;
278
+ height: 36px;
279
+ background: transparent;
280
+ border: none;
281
+ border-radius: 0;
283
282
  display: flex;
284
283
  align-items: center;
285
284
  justify-content: center;
286
- box-shadow: 0 0 20px rgba(56, 189, 248, 0.25);
287
- overflow: hidden;
288
- padding: 3px;
285
+ box-shadow: none;
286
+ padding: 0;
289
287
  }
290
288
 
291
289
  .brand-logo-img {
292
- width: 100%;
293
- height: 100%;
290
+ width: 36px;
291
+ height: 36px;
294
292
  object-fit: contain;
295
- border-radius: calc(var(--radius-md) - 2px);
293
+ filter: drop-shadow(0 0 10px rgba(56, 189, 248, 0.3));
296
294
  }
297
295
 
298
296
  .brand-text {
@@ -301,36 +299,35 @@ h1, h2, h3, h4, h5, h6 {
301
299
  }
302
300
 
303
301
  .brand-title {
304
- font-family: var(--font-heading);
305
302
  font-size: 18px;
306
- font-weight: 700;
307
- letter-spacing: 0.06em;
303
+ font-weight: 800;
304
+ letter-spacing: 0.08em;
308
305
  color: var(--text-primary);
309
306
  }
310
307
 
311
308
  .brand-subtitle {
312
309
  font-size: 11px;
313
310
  color: var(--text-tertiary);
314
- letter-spacing: 0.04em;
311
+ letter-spacing: 0.05em;
315
312
  text-transform: uppercase;
316
313
  }
317
314
 
318
315
  .version-badge {
319
- background: rgba(99, 102, 241, 0.12);
320
- border: 1px solid rgba(99, 102, 241, 0.25);
316
+ background: rgba(129, 140, 248, 0.12);
317
+ border: 1px solid rgba(129, 140, 248, 0.28);
321
318
  color: #a5b4fc;
322
319
  font-size: 11px;
323
320
  font-weight: 600;
324
- padding: 2px 8px;
321
+ padding: 2px 9px;
325
322
  border-radius: var(--radius-pill);
326
323
  }
327
324
 
328
- /* Minimal Nav Pills */
325
+ /* Nav Pills */
329
326
  .nav-links {
330
327
  display: flex;
331
328
  align-items: center;
332
329
  gap: 4px;
333
- background: rgba(11, 16, 26, 0.6);
330
+ background: rgba(16, 18, 24, 0.7);
334
331
  padding: 4px;
335
332
  border-radius: var(--radius-pill);
336
333
  border: 1px solid var(--border-subtle);
@@ -340,16 +337,17 @@ h1, h2, h3, h4, h5, h6 {
340
337
  background: transparent;
341
338
  border: none;
342
339
  color: var(--text-secondary);
343
- font-family: var(--font-body);
340
+ font-family: var(--font-sans);
344
341
  font-size: 13px;
345
342
  font-weight: 500;
346
- padding: 7px 16px;
343
+ padding: 8px 18px;
347
344
  border-radius: var(--radius-pill);
348
345
  cursor: pointer;
349
346
  display: flex;
350
347
  align-items: center;
351
348
  gap: 8px;
352
349
  transition: var(--transition-fast);
350
+ text-decoration: none;
353
351
  }
354
352
 
355
353
  .nav-btn:hover {
@@ -358,9 +356,9 @@ h1, h2, h3, h4, h5, h6 {
358
356
  }
359
357
 
360
358
  .nav-btn.active {
361
- background: var(--accent-primary);
362
- color: white;
363
- box-shadow: 0 4px 14px rgba(99, 102, 241, 0.35);
359
+ background: var(--hr-rust);
360
+ color: #ffffff;
361
+ box-shadow: 0 4px 16px var(--hr-rust-glow);
364
362
  }
365
363
 
366
364
  /* Nav Right Controls */
@@ -370,101 +368,80 @@ h1, h2, h3, h4, h5, h6 {
370
368
  gap: 14px;
371
369
  }
372
370
 
373
- .auth-status-pill {
374
- display: flex;
375
- align-items: center;
376
- gap: 8px;
377
- background: rgba(52, 211, 153, 0.08);
378
- border: 1px solid rgba(52, 211, 153, 0.2);
379
- color: var(--accent-emerald);
380
- font-size: 12px;
381
- font-weight: 600;
382
- padding: 5px 12px;
383
- border-radius: var(--radius-pill);
384
- }
385
-
386
- .pulse-dot {
387
- width: 7px;
388
- height: 7px;
389
- background: var(--accent-emerald);
390
- border-radius: 50%;
391
- box-shadow: 0 0 8px var(--accent-emerald);
392
- animation: pulseDot 2.5s infinite ease-in-out;
393
- }
394
-
395
- @keyframes pulseDot {
396
- 0%, 100% { transform: scale(1); opacity: 1; }
397
- 50% { transform: scale(1.3); opacity: 0.5; }
398
- }
399
-
400
- /* User Menu & Dropdown */
401
371
  .user-menu {
402
372
  position: relative;
403
373
  }
404
374
 
405
375
  .user-menu-btn {
406
- background: rgba(255, 255, 255, 0.04);
376
+ background: rgba(21, 24, 33, 0.8);
407
377
  border: 1px solid var(--border-subtle);
408
378
  color: var(--text-primary);
409
- padding: 5px 12px;
379
+ padding: 6px 14px;
410
380
  border-radius: var(--radius-pill);
411
381
  display: flex;
412
382
  align-items: center;
413
- gap: 8px;
383
+ gap: 10px;
414
384
  cursor: pointer;
415
385
  transition: var(--transition-fast);
416
386
  }
417
387
 
418
388
  .user-menu-btn:hover {
419
- background: rgba(255, 255, 255, 0.08);
420
- border-color: rgba(255, 255, 255, 0.15);
389
+ border-color: var(--hr-line-strong);
390
+ background: rgba(28, 32, 45, 0.9);
421
391
  }
422
392
 
423
393
  .avatar {
424
394
  width: 26px;
425
395
  height: 26px;
426
- background: linear-gradient(135deg, var(--accent-cyan), var(--accent-primary));
396
+ background: linear-gradient(135deg, var(--hr-rust) 0%, var(--hr-violet) 100%);
397
+ color: #ffffff;
398
+ font-size: 12px;
399
+ font-weight: 700;
427
400
  border-radius: 50%;
428
401
  display: flex;
429
402
  align-items: center;
430
403
  justify-content: center;
431
- font-weight: 700;
432
- font-size: 12px;
433
- color: white;
434
404
  }
435
405
 
406
+ .nav-user-name {
407
+ font-size: 13px;
408
+ font-weight: 600;
409
+ }
410
+
411
+ /* Dropdown Menu */
436
412
  .dropdown-menu {
437
413
  position: absolute;
438
414
  top: calc(100% + 8px);
439
415
  right: 0;
440
- width: 210px;
441
- background: #0d121d;
442
- border: 1px solid var(--border-subtle);
416
+ width: 240px;
417
+ background: var(--hr-surface-card);
418
+ border: 1px solid var(--hr-line-strong);
443
419
  border-radius: var(--radius-md);
444
- padding: 6px;
445
- box-shadow: var(--shadow-card);
420
+ box-shadow: 0 16px 40px rgba(0, 0, 0, 0.7);
421
+ padding: 8px;
446
422
  display: none;
423
+ flex-direction: column;
424
+ gap: 4px;
447
425
  z-index: 100;
448
426
  }
449
427
 
450
428
  .dropdown-menu.show {
451
- display: block;
452
- animation: fadeInDown 0.18s ease-out;
453
- }
454
-
455
- @keyframes fadeInDown {
456
- from { opacity: 0; transform: translateY(-6px); }
457
- to { opacity: 1; transform: translateY(0); }
429
+ display: flex;
458
430
  }
459
431
 
460
432
  .dropdown-header {
461
- padding: 8px 10px;
433
+ padding: 8px 12px;
462
434
  display: flex;
463
435
  flex-direction: column;
464
436
  }
465
437
 
438
+ .dropdown-header strong {
439
+ color: var(--text-primary);
440
+ font-size: 13px;
441
+ }
442
+
466
443
  .dropdown-header small {
467
- color: var(--text-tertiary);
444
+ color: var(--text-secondary);
468
445
  font-size: 11px;
469
446
  }
470
447
 
@@ -475,23 +452,25 @@ h1, h2, h3, h4, h5, h6 {
475
452
  }
476
453
 
477
454
  .dropdown-item {
478
- width: 100%;
479
455
  background: transparent;
480
456
  border: none;
481
457
  color: var(--text-secondary);
482
- padding: 8px 10px;
458
+ padding: 8px 12px;
483
459
  border-radius: var(--radius-sm);
460
+ font-size: 13px;
461
+ font-weight: 500;
484
462
  display: flex;
485
463
  align-items: center;
486
- gap: 8px;
487
- font-size: 13px;
464
+ gap: 10px;
465
+ text-decoration: none;
488
466
  cursor: pointer;
489
- text-align: left;
490
467
  transition: var(--transition-fast);
468
+ width: 100%;
469
+ text-align: left;
491
470
  }
492
471
 
493
472
  .dropdown-item:hover {
494
- background: rgba(255, 255, 255, 0.06);
473
+ background: var(--hr-surface-hover);
495
474
  color: var(--text-primary);
496
475
  }
497
476
 
@@ -501,1653 +480,971 @@ h1, h2, h3, h4, h5, h6 {
501
480
  align-items: center;
502
481
  justify-content: center;
503
482
  gap: 8px;
504
- font-family: var(--font-body);
505
- font-weight: 600;
483
+ font-family: var(--font-sans);
506
484
  font-size: 13px;
507
- padding: 8px 16px;
508
- border-radius: var(--radius-md);
485
+ font-weight: 600;
486
+ padding: 9px 18px;
487
+ border-radius: var(--radius-pill);
509
488
  border: 1px solid transparent;
510
489
  cursor: pointer;
511
- transition: var(--transition-fast);
512
490
  text-decoration: none;
513
- white-space: nowrap;
514
- }
515
-
516
- .btn-lg {
517
- padding: 12px 24px;
518
- font-size: 15px;
519
- }
520
-
521
- .btn-sm {
522
- padding: 5px 12px;
523
- font-size: 12px;
524
- border-radius: var(--radius-sm);
525
- }
526
-
527
- .btn-xs {
528
- padding: 3px 8px;
529
- font-size: 11px;
530
- border-radius: var(--radius-sm);
531
- }
532
-
533
- .btn-block {
534
- width: 100%;
491
+ transition: var(--transition-fast);
535
492
  }
536
493
 
537
494
  .btn-primary {
538
495
  background: var(--hr-rust);
539
- color: white;
540
- box-shadow: 0 4px 16px var(--hr-rust-glow);
541
- border: 1px solid transparent;
496
+ color: #ffffff;
497
+ box-shadow: 0 4px 14px var(--hr-rust-glow);
542
498
  }
543
499
 
544
500
  .btn-primary:hover {
545
- background: var(--accent-primary-hover);
501
+ background: var(--hr-rust-hover);
502
+ box-shadow: 0 6px 20px rgba(225, 91, 55, 0.4);
546
503
  transform: translateY(-1px);
547
- box-shadow: 0 6px 22px rgba(225, 91, 55, 0.35);
548
504
  }
549
505
 
550
506
  .btn-success {
551
- background: linear-gradient(135deg, var(--accent-emerald), #059669);
552
- color: white;
553
- box-shadow: 0 4px 14px rgba(52, 211, 153, 0.25);
507
+ background: var(--hr-emerald);
508
+ color: #0b0c10;
509
+ font-weight: 700;
554
510
  }
555
511
 
556
512
  .btn-success:hover {
513
+ background: #2ebd84;
557
514
  transform: translateY(-1px);
558
- box-shadow: 0 6px 20px rgba(52, 211, 153, 0.4);
559
515
  }
560
516
 
561
- .btn-outline {
562
- background: transparent;
517
+ .btn-secondary {
518
+ background: var(--hr-surface-hover);
519
+ color: var(--text-primary);
563
520
  border-color: var(--border-subtle);
564
- color: var(--text-secondary);
565
521
  }
566
522
 
567
- .btn-outline:hover {
568
- background: var(--hr-surface-hover);
523
+ .btn-secondary:hover {
524
+ background: var(--hr-surface-elevated);
569
525
  border-color: var(--hr-line-strong);
570
- color: var(--text-primary);
571
526
  }
572
527
 
573
- /* ================= AUTH SECTION ================= */
574
- .auth-section {
575
- display: flex;
576
- align-items: flex-start;
577
- justify-content: center;
578
- gap: 32px;
579
- padding: 36px 0;
580
- min-height: 65vh;
581
- flex-wrap: wrap;
528
+ .btn-outline {
529
+ background: transparent;
530
+ color: var(--text-primary);
531
+ border-color: var(--border-subtle);
582
532
  }
583
533
 
584
- .auth-card {
585
- width: 100%;
586
- max-width: 440px;
587
- padding: 36px;
588
- border: 1px solid var(--hr-line);
589
- background: var(--hr-surface-card);
534
+ .btn-outline:hover {
535
+ background: rgba(255, 255, 255, 0.05);
536
+ border-color: var(--hr-line-strong);
590
537
  }
591
538
 
592
- /* FrontTerrain Hero Diagram Card */
593
- .hero-diagram-container {
594
- width: 100%;
595
- max-width: 440px;
596
- padding: 28px;
597
- background: var(--hr-surface-card);
598
- border: 1px solid var(--hr-line);
599
- border-radius: var(--radius-md);
600
- box-shadow: var(--shadow-card);
601
- }
539
+ .btn-block { width: 100%; }
540
+ .btn-lg { padding: 12px 24px; font-size: 14px; }
541
+ .btn-sm { padding: 6px 14px; font-size: 12px; }
542
+ .btn-xs { padding: 4px 10px; font-size: 11px; }
602
543
 
603
- .diagram-header {
544
+ /* Main Content Area */
545
+ .main-content {
546
+ flex: 1;
604
547
  display: flex;
605
- justify-content: space-between;
606
- align-items: center;
607
- font-family: var(--font-mono);
608
- font-size: 0.7rem;
609
- font-weight: 600;
610
- letter-spacing: 0.1em;
611
- color: var(--hr-ink-subtle);
612
- margin-bottom: 1rem;
613
- border-bottom: 1px solid var(--hr-line);
614
- padding-bottom: 0.75rem;
548
+ flex-direction: column;
615
549
  }
616
550
 
617
- .diagram-nodes {
551
+ /* Workspace Hero Banner */
552
+ .welcome-banner {
553
+ padding: 32px;
554
+ margin-bottom: 32px;
618
555
  display: flex;
619
- flex-direction: column;
620
- gap: 0.75rem;
556
+ align-items: center;
557
+ justify-content: space-between;
558
+ gap: 24px;
621
559
  }
622
560
 
623
- .diagram-node {
624
- background: rgba(255, 255, 255, 0.02);
625
- border: 1px solid var(--hr-line);
626
- border-radius: 8px;
627
- padding: 0.85rem 1.1rem;
561
+ .banner-logo-wrapper {
562
+ width: 64px;
563
+ height: 64px;
564
+ background: transparent;
565
+ border: none;
566
+ border-radius: 0;
567
+ padding: 0;
628
568
  display: flex;
629
- justify-content: space-between;
630
569
  align-items: center;
631
- transition: border-color 0.2s, background 0.2s;
570
+ justify-content: center;
571
+ box-shadow: none;
632
572
  }
633
573
 
634
- .diagram-node:hover {
635
- border-color: var(--hr-line-strong);
636
- background: var(--hr-surface-hover);
574
+ .banner-hero-logo {
575
+ width: 64px;
576
+ height: 64px;
577
+ object-fit: contain;
578
+ filter: drop-shadow(0 0 16px rgba(56, 189, 248, 0.4));
637
579
  }
638
580
 
639
- .diagram-node-title {
640
- font-weight: 600;
641
- font-size: 0.95rem;
642
- color: var(--hr-ink-strong);
581
+ .banner-content {
582
+ flex: 1;
643
583
  }
644
584
 
645
- .diagram-node-status {
646
- font-family: var(--font-mono);
647
- font-size: 0.75rem;
648
- font-weight: 600;
649
- color: var(--hr-emerald);
585
+ .banner-content h1 {
586
+ font-size: 28px;
587
+ margin-bottom: 6px;
650
588
  }
651
589
 
652
- .auth-header {
653
- text-align: center;
654
- margin-bottom: 24px;
590
+ .banner-content p {
591
+ color: var(--text-secondary);
592
+ font-size: 14px;
593
+ max-width: 620px;
655
594
  }
656
595
 
657
- .auth-logo-badge {
658
- width: 56px;
659
- height: 56px;
660
- background: rgba(15, 23, 42, 0.6);
661
- border: 1px solid rgba(225, 91, 55, 0.3);
662
- border-radius: var(--radius-md);
663
- margin: 0 auto 14px;
664
- display: flex;
665
- align-items: center;
666
- justify-content: center;
667
- box-shadow: var(--shadow-glow-primary);
668
- overflow: hidden;
669
- padding: 6px;
596
+ /* Card Grids */
597
+ .grid-2col {
598
+ display: grid;
599
+ grid-template-columns: repeat(2, 1fr);
600
+ gap: 24px;
670
601
  }
671
602
 
672
- .auth-logo-img {
673
- width: 100%;
674
- height: 100%;
675
- object-fit: contain;
676
- border-radius: calc(var(--radius-md) - 2px);
603
+ @media (max-width: 900px) {
604
+ .grid-2col { grid-template-columns: 1fr; }
677
605
  }
678
606
 
679
- .auth-header h2 {
680
- font-size: 22px;
681
- margin-bottom: 6px;
607
+ .card {
608
+ border-radius: var(--radius-lg);
609
+ overflow: hidden;
682
610
  }
683
611
 
684
- .auth-header p {
685
- color: var(--text-secondary);
686
- font-size: 13px;
612
+ .card-header {
613
+ padding: 20px 24px;
614
+ border-bottom: 1px solid var(--border-subtle);
687
615
  }
688
616
 
689
- .auth-tabs {
690
- display: flex;
691
- background: var(--bg-input);
692
- padding: 3px;
693
- border-radius: var(--radius-md);
694
- border: 1px solid var(--border-subtle);
695
- margin-bottom: 20px;
696
- }
697
-
698
- .auth-tab {
699
- flex: 1;
700
- background: transparent;
701
- border: none;
702
- color: var(--text-secondary);
703
- font-family: var(--font-body);
704
- font-weight: 600;
705
- font-size: 13px;
706
- padding: 8px;
707
- border-radius: var(--radius-sm);
708
- cursor: pointer;
709
- transition: var(--transition-fast);
617
+ .card-header h3 {
618
+ font-size: 16px;
710
619
  display: flex;
711
620
  align-items: center;
712
- justify-content: center;
713
- gap: 6px;
621
+ gap: 10px;
714
622
  }
715
623
 
716
- .auth-tab.active {
717
- background: var(--accent-primary);
718
- color: white;
719
- box-shadow: 0 2px 8px var(--hr-rust-glow);
624
+ .card-header p.subtitle {
625
+ color: var(--text-secondary);
626
+ font-size: 12px;
627
+ margin-top: 4px;
720
628
  }
721
629
 
722
- .auth-form {
723
- display: flex;
724
- flex-direction: column;
725
- gap: 16px;
630
+ .card-body {
631
+ padding: 24px;
726
632
  }
727
633
 
728
- /* Forms */
634
+ /* Form Controls */
729
635
  .form-group {
730
- display: flex;
731
- flex-direction: column;
732
- gap: 6px;
636
+ margin-bottom: 18px;
733
637
  }
734
638
 
735
639
  .form-group label {
640
+ display: block;
736
641
  font-size: 12px;
737
- font-weight: 500;
642
+ font-weight: 600;
738
643
  color: var(--text-secondary);
739
- display: flex;
740
- align-items: center;
741
- gap: 6px;
742
- }
743
-
744
- .input-wrapper {
745
- position: relative;
746
- display: flex;
747
- align-items: center;
644
+ margin-bottom: 8px;
645
+ text-transform: uppercase;
646
+ letter-spacing: 0.04em;
748
647
  }
749
648
 
750
- .input-wrapper input, .input-control {
649
+ .input-control, input[type="text"], input[type="email"], input[type="password"], input[type="url"], select {
751
650
  width: 100%;
752
- background: var(--bg-input);
651
+ background: rgba(8, 9, 12, 0.8);
753
652
  border: 1px solid var(--border-subtle);
754
653
  color: var(--text-primary);
755
- font-family: var(--font-body);
756
- font-size: 13px;
757
654
  padding: 10px 14px;
758
655
  border-radius: var(--radius-md);
656
+ font-family: var(--font-sans);
657
+ font-size: 13px;
759
658
  outline: none;
760
659
  transition: var(--transition-fast);
761
660
  }
762
661
 
763
- .input-wrapper input:focus, .input-control:focus {
764
- border-color: var(--accent-primary);
765
- box-shadow: 0 0 0 3px var(--hr-rust-glow);
662
+ .input-control:focus, input:focus, select:focus {
663
+ border-color: var(--hr-rust);
664
+ box-shadow: 0 0 14px var(--hr-rust-glow);
665
+ }
666
+
667
+ .input-wrapper {
668
+ position: relative;
766
669
  }
767
670
 
768
671
  .btn-toggle-pwd {
769
672
  position: absolute;
770
673
  right: 12px;
674
+ top: 50%;
675
+ transform: translateY(-50%);
771
676
  background: transparent;
772
677
  border: none;
773
678
  color: var(--text-tertiary);
774
679
  cursor: pointer;
775
- font-size: 13px;
776
680
  }
777
681
 
778
682
  .btn-toggle-pwd:hover {
779
- color: var(--text-secondary);
683
+ color: var(--text-primary);
780
684
  }
781
685
 
782
- .form-row {
783
- display: flex;
784
- align-items: center;
686
+ /* Password Strength Meter */
687
+ .strength-meter {
688
+ height: 4px;
689
+ background: rgba(255, 255, 255, 0.1);
690
+ border-radius: var(--radius-pill);
691
+ margin-top: 8px;
692
+ overflow: hidden;
785
693
  }
786
694
 
787
- .flex-between {
788
- justify-content: space-between;
695
+ .strength-bar {
696
+ height: 100%;
697
+ width: 0%;
698
+ transition: width 0.3s ease, background-color 0.3s ease;
699
+ }
700
+
701
+ /* Credit Stats Grid */
702
+ .credit-stats-grid {
703
+ display: grid;
704
+ grid-template-columns: repeat(3, 1fr);
705
+ gap: 16px;
706
+ margin-bottom: 24px;
789
707
  }
790
708
 
791
- .checkbox-label {
709
+ .credit-stat-box {
710
+ background: rgba(8, 9, 12, 0.6);
711
+ border: 1px solid var(--border-subtle);
712
+ border-radius: var(--radius-md);
713
+ padding: 16px;
792
714
  display: flex;
793
- align-items: center;
715
+ flex-direction: column;
794
716
  gap: 6px;
795
- font-size: 12px;
796
- color: var(--text-secondary);
797
- cursor: pointer;
798
717
  }
799
718
 
800
- .checkbox-label input[type="checkbox"] {
801
- accent-color: var(--accent-primary);
802
- width: 14px;
803
- height: 14px;
804
- cursor: pointer;
719
+ .credit-stat-label {
720
+ font-size: 11px;
721
+ color: var(--text-tertiary);
722
+ text-transform: uppercase;
723
+ letter-spacing: 0.05em;
805
724
  }
806
725
 
807
- .link-muted {
808
- color: var(--text-secondary);
809
- font-size: 12px;
810
- text-decoration: none;
726
+ .credit-stat-val {
727
+ font-size: 22px;
728
+ font-weight: 700;
811
729
  }
812
730
 
813
- .link-muted:hover {
814
- color: var(--accent-cyan);
731
+ .credit-bar-wrapper {
732
+ background: rgba(8, 9, 12, 0.6);
733
+ border: 1px solid var(--border-subtle);
734
+ border-radius: var(--radius-md);
735
+ padding: 16px;
736
+ margin-bottom: 20px;
815
737
  }
816
738
 
817
- .auth-demo-box {
818
- margin-top: 20px;
819
- padding-top: 16px;
820
- border-top: 1px solid var(--border-subtle);
739
+ .credit-bar-header {
821
740
  display: flex;
822
741
  align-items: center;
823
742
  justify-content: space-between;
824
- font-size: 12px;
825
- color: var(--text-secondary);
743
+ font-size: 13px;
744
+ margin-bottom: 10px;
826
745
  }
827
746
 
828
- /* ================= DASHBOARD SECTION ================= */
829
- .dashboard-section {
830
- display: flex;
831
- flex-direction: column;
832
- gap: 24px;
833
- padding-bottom: 36px;
747
+ .credit-progress-track {
748
+ height: 8px;
749
+ background: rgba(255, 255, 255, 0.08);
750
+ border-radius: var(--radius-pill);
751
+ overflow: hidden;
834
752
  }
835
753
 
836
- /* Ambient Workspace Hero Banner */
837
- .welcome-banner {
838
- padding: 28px 36px;
754
+ .credit-progress-fill {
755
+ height: 100%;
756
+ width: 0%;
757
+ border-radius: var(--radius-pill);
758
+ transition: width 0.5s ease;
759
+ }
760
+
761
+ .credit-renew-box {
839
762
  display: flex;
840
763
  align-items: center;
841
- justify-content: space-between;
842
- background: var(--hr-surface-card);
843
- border: 1px solid var(--hr-line);
844
- position: relative;
845
- overflow: hidden;
764
+ gap: 14px;
765
+ background: rgba(225, 91, 55, 0.06);
766
+ border: 1px solid rgba(225, 91, 55, 0.2);
767
+ border-radius: var(--radius-md);
768
+ padding: 14px 18px;
846
769
  }
847
770
 
848
- .banner-content {
849
- max-width: 620px;
771
+ /* Data Table */
772
+ .data-table {
773
+ width: 100%;
774
+ border-collapse: collapse;
775
+ margin-top: 12px;
776
+ }
777
+
778
+ .data-table th {
779
+ text-align: left;
780
+ font-size: 11px;
781
+ color: var(--text-tertiary);
782
+ text-transform: uppercase;
783
+ letter-spacing: 0.06em;
784
+ padding: 10px 14px;
785
+ border-bottom: 1px solid var(--border-subtle);
786
+ }
787
+
788
+ .data-table td {
789
+ padding: 12px 14px;
790
+ border-bottom: 1px solid rgba(255, 255, 255, 0.04);
791
+ font-size: 13px;
850
792
  }
851
793
 
852
- .banner-badge {
794
+ .badge {
853
795
  display: inline-flex;
854
796
  align-items: center;
855
797
  gap: 6px;
856
- background: rgba(52, 211, 153, 0.12);
857
- color: var(--accent-emerald);
858
- font-size: 11px;
859
- font-weight: 600;
860
798
  padding: 3px 10px;
861
799
  border-radius: var(--radius-pill);
862
- margin-bottom: 10px;
800
+ font-size: 11px;
801
+ font-weight: 600;
802
+ background: rgba(255, 255, 255, 0.08);
803
+ color: var(--text-secondary);
863
804
  }
864
805
 
865
- .banner-content h1 {
866
- font-size: 24px;
867
- margin-bottom: 6px;
868
- }
806
+ .badge-success { background: rgba(52, 211, 153, 0.12); color: var(--hr-emerald); border: 1px solid rgba(52, 211, 153, 0.25); }
807
+ .badge-accent { background: rgba(56, 189, 248, 0.12); color: var(--hr-cyan); border: 1px solid rgba(56, 189, 248, 0.25); }
869
808
 
870
- .banner-content p {
871
- color: var(--text-secondary);
872
- font-size: 13px;
809
+ /* Pricing Cards Grid */
810
+ .tiers-pricing-grid {
811
+ display: grid;
812
+ grid-template-columns: repeat(3, 1fr);
813
+ gap: 24px;
814
+ margin-top: 32px;
873
815
  }
874
816
 
875
- .banner-actions {
876
- display: flex;
877
- gap: 10px;
817
+ @media (max-width: 900px) {
818
+ .tiers-pricing-grid { grid-template-columns: 1fr; }
878
819
  }
879
820
 
880
- /* Monitored Repository Switcher & Scanner Bar */
881
- .repo-switcher-bar {
821
+ .pricing-card {
822
+ padding: 32px 24px;
882
823
  display: flex;
883
- align-items: center;
824
+ flex-direction: column;
884
825
  justify-content: space-between;
885
- background: rgba(16, 22, 34, 0.6);
886
- border: 1px solid var(--border-subtle);
887
- border-radius: var(--radius-md);
888
- padding: 12px 18px;
889
- gap: 14px;
890
- flex-wrap: wrap;
891
- }
892
-
893
- .repo-switcher-info {
894
- display: flex;
895
- align-items: center;
896
- gap: 10px;
826
+ position: relative;
827
+ transition: transform var(--transition-normal), border-color var(--transition-normal);
897
828
  }
898
829
 
899
- .repo-select-wrapper {
900
- display: flex;
901
- align-items: center;
902
- gap: 8px;
830
+ .pricing-card:hover {
831
+ transform: translateY(-6px);
903
832
  }
904
833
 
905
- .repo-select-input {
906
- background: var(--bg-canvas);
907
- border: 1px solid var(--border-subtle);
908
- color: var(--accent-cyan);
909
- font-family: var(--font-mono);
910
- font-size: 12px;
911
- padding: 7px 12px;
912
- border-radius: var(--radius-sm);
913
- outline: none;
914
- cursor: pointer;
834
+ .popular-tier {
835
+ border-color: var(--hr-rust);
836
+ box-shadow: 0 0 35px var(--hr-rust-glow);
915
837
  }
916
838
 
917
- .repo-select-input:focus {
918
- border-color: var(--accent-primary);
839
+ .popular-badge {
840
+ position: absolute;
841
+ top: -14px;
842
+ left: 50%;
843
+ transform: translateX(-50%);
844
+ background: var(--hr-rust);
845
+ color: #ffffff;
846
+ font-size: 10px;
847
+ font-weight: 800;
848
+ letter-spacing: 0.12em;
849
+ padding: 4px 14px;
850
+ border-radius: var(--radius-pill);
851
+ text-transform: uppercase;
919
852
  }
920
853
 
921
- /* Metrics Grid (Minimal 4 Stat Cards) */
922
- .stats-grid {
923
- display: grid;
924
- grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
925
- gap: 18px;
926
- }
854
+ .pricing-header { text-align: center; margin-bottom: 24px; }
855
+ .plan-icon { font-size: 28px; margin-bottom: 12px; color: var(--text-secondary); }
856
+ .plan-icon.icon-primary { color: var(--hr-rust); }
857
+ .plan-icon.icon-warning { color: var(--hr-amber); }
858
+ .plan-name { font-size: 20px; margin-bottom: 6px; }
859
+ .plan-desc { color: var(--text-secondary); font-size: 12px; min-height: 36px; }
927
860
 
928
- .stat-card {
929
- padding: 20px;
861
+ .plan-price {
862
+ margin-top: 16px;
930
863
  display: flex;
931
- align-items: flex-start;
932
- gap: 16px;
933
- transition: var(--transition-normal);
864
+ align-items: baseline;
865
+ justify-content: center;
934
866
  }
935
867
 
936
- .stat-card:hover {
937
- transform: translateY(-2px);
938
- border-color: rgba(99, 102, 241, 0.25);
868
+ .price-currency { font-size: 20px; font-weight: 600; color: var(--text-secondary); }
869
+ .price-val { font-size: 42px; font-weight: 800; color: var(--text-primary); margin: 0 2px; }
870
+ .price-period { font-size: 12px; color: var(--text-tertiary); }
871
+
872
+ .plan-features {
873
+ list-style: none;
874
+ margin-bottom: 32px;
875
+ display: flex;
876
+ flex-direction: column;
877
+ gap: 12px;
939
878
  }
940
879
 
941
- .stat-icon {
942
- width: 42px;
943
- height: 42px;
944
- border-radius: var(--radius-md);
880
+ .plan-features li {
881
+ font-size: 13px;
945
882
  display: flex;
946
883
  align-items: center;
947
- justify-content: center;
948
- font-size: 18px;
949
- color: white;
950
- flex-shrink: 0;
884
+ gap: 10px;
951
885
  }
952
886
 
953
- .icon-primary { background: linear-gradient(135deg, var(--accent-primary), var(--accent-primary-hover)); }
954
- .icon-secondary { background: linear-gradient(135deg, var(--accent-purple), #7c3aed); }
955
- .icon-warning { background: linear-gradient(135deg, var(--accent-amber), #d97706); }
956
- .icon-success { background: linear-gradient(135deg, var(--accent-emerald), #059669); }
887
+ /* Feature Comparison Table */
888
+ .matrix-section { margin-top: 48px; }
889
+ .matrix-table { width: 100%; border-collapse: collapse; margin-top: 20px; }
890
+ .matrix-table th, .matrix-table td { padding: 14px 18px; text-align: center; border-bottom: 1px solid var(--border-subtle); }
891
+ .matrix-table th:first-child, .matrix-table td:first-child { text-align: left; }
957
892
 
958
- .stat-details {
959
- display: flex;
960
- flex-direction: column;
961
- gap: 3px;
962
- width: 100%;
963
- }
893
+ /* FAQ Accordions */
894
+ .faq-section { margin-top: 48px; }
895
+ .faq-item { border-bottom: 1px solid var(--border-subtle); padding: 16px 0; }
896
+ .faq-question { width: 100%; background: transparent; border: none; color: var(--text-primary); font-size: 15px; font-weight: 600; text-align: left; display: flex; justify-content: space-between; align-items: center; cursor: pointer; }
897
+ .faq-answer { color: var(--text-secondary); font-size: 13px; margin-top: 10px; display: none; line-height: 1.6; }
898
+ .faq-item.open .faq-answer { display: block; }
899
+ .faq-item.open .faq-question i { transform: rotate(180deg); }
964
900
 
965
- .stat-label {
966
- font-size: 12px;
967
- color: var(--text-secondary);
968
- font-weight: 500;
901
+ /* Terminal Styling */
902
+ .terminal-window {
903
+ background: #060709;
904
+ border: 1px solid var(--border-subtle);
905
+ border-radius: var(--radius-md);
906
+ overflow: hidden;
969
907
  }
970
908
 
971
- .stat-value-group {
909
+ .terminal-topbar {
910
+ background: rgba(18, 20, 26, 0.9);
911
+ padding: 10px 16px;
972
912
  display: flex;
973
- align-items: baseline;
913
+ align-items: center;
974
914
  justify-content: space-between;
915
+ border-bottom: 1px solid var(--border-subtle);
975
916
  }
976
917
 
977
- .stat-value {
978
- font-family: var(--font-heading);
979
- font-size: 26px;
980
- font-weight: 700;
981
- color: var(--text-primary);
982
- }
918
+ .terminal-dots { display: flex; gap: 6px; }
919
+ .dot { width: 10px; height: 10px; border-radius: 50%; }
920
+ .dot-red { background: #ef4444; }
921
+ .dot-yellow { background: #eab308; }
922
+ .dot-green { background: #22c55e; }
923
+ .terminal-title { font-family: var(--font-mono); font-size: 11px; color: var(--text-tertiary); }
983
924
 
984
- .stat-badge {
985
- font-size: 10px;
986
- font-weight: 600;
987
- padding: 2px 7px;
988
- border-radius: var(--radius-pill);
925
+ .terminal-body {
926
+ padding: 20px;
927
+ font-family: var(--font-mono);
928
+ font-size: 13px;
929
+ color: #e2e8f0;
930
+ min-height: 240px;
989
931
  }
990
932
 
991
- .stat-badge.positive { background: rgba(52, 211, 153, 0.12); color: var(--accent-emerald); }
992
- .stat-badge.warning { background: rgba(251, 191, 36, 0.12); color: var(--accent-amber); }
993
- .stat-badge.info { background: rgba(56, 189, 248, 0.12); color: var(--accent-cyan); }
933
+ .terminal-line { margin-bottom: 12px; }
934
+ .prompt-user { color: var(--hr-emerald); }
935
+ .prompt-path { color: var(--hr-cyan); }
936
+ .cmd-text { color: #f8fafc; font-weight: 600; }
994
937
 
995
- .stat-sub {
996
- font-size: 11px;
997
- color: var(--text-tertiary);
938
+ .terminal-input-row {
939
+ display: flex;
940
+ align-items: center;
941
+ gap: 10px;
942
+ margin-top: 14px;
998
943
  }
999
944
 
1000
- /* Tab Panels & Card Containers */
1001
- .tab-pane {
1002
- display: none;
945
+ .terminal-input {
946
+ flex: 1;
947
+ background: transparent;
948
+ border: none;
949
+ color: #ffffff;
950
+ font-family: var(--font-mono);
951
+ font-size: 13px;
952
+ outline: none;
1003
953
  }
1004
954
 
1005
- .tab-pane.active {
1006
- display: block;
1007
- animation: fadeIn 0.25s ease-in-out;
1008
- }
955
+ .term-green { color: var(--hr-emerald); }
956
+ .term-yellow { color: var(--hr-amber); }
957
+ .term-purple { color: var(--hr-violet); }
958
+ .term-bg-cyan { background: var(--hr-cyan); color: #0b0c10; padding: 2px 6px; font-weight: 700; border-radius: 3px; }
959
+ .term-dim { color: var(--text-tertiary); }
1009
960
 
1010
- @keyframes fadeIn {
1011
- from { opacity: 0; transform: translateY(6px); }
1012
- to { opacity: 1; transform: translateY(0); }
1013
- }
1014
-
1015
- .grid-2col {
1016
- display: grid;
1017
- grid-template-columns: 1fr 1fr;
1018
- gap: 20px;
1019
- }
1020
-
1021
- @media (max-width: 900px) {
1022
- .grid-2col { grid-template-columns: 1fr; }
1023
- }
1024
-
1025
- .card {
1026
- padding: 24px;
1027
- }
1028
-
1029
- .card-header {
1030
- display: flex;
1031
- align-items: flex-start;
1032
- justify-content: space-between;
1033
- margin-bottom: 20px;
1034
- padding-bottom: 14px;
1035
- border-bottom: 1px solid var(--border-subtle);
1036
- }
1037
-
1038
- .card-header h3 {
1039
- font-size: 16px;
1040
- display: flex;
1041
- align-items: center;
1042
- gap: 8px;
1043
- }
1044
-
1045
- .card-header .subtitle {
1046
- font-size: 12px;
1047
- color: var(--text-secondary);
1048
- font-weight: normal;
1049
- margin-top: 3px;
1050
- }
1051
-
1052
- /* Badges */
1053
- .badge {
1054
- font-size: 11px;
1055
- font-weight: 600;
1056
- padding: 3px 9px;
1057
- border-radius: var(--radius-pill);
1058
- }
1059
-
1060
- .badge-accent { background: rgba(99, 102, 241, 0.15); color: #a5b4fc; }
1061
- .badge-success { background: rgba(52, 211, 153, 0.15); color: var(--accent-emerald); }
1062
- .badge-warning { background: rgba(251, 191, 36, 0.15); color: var(--accent-amber); }
1063
- .badge-info { background: rgba(56, 189, 248, 0.15); color: var(--accent-cyan); }
1064
-
1065
- /* Health Progress Bars */
1066
- .health-item {
1067
- margin-bottom: 16px;
1068
- }
1069
-
1070
- .health-meta {
1071
- display: flex;
1072
- justify-content: space-between;
1073
- font-size: 13px;
1074
- margin-bottom: 6px;
1075
- }
1076
-
1077
- .repo-name {
1078
- font-weight: 600;
1079
- color: var(--text-primary);
1080
- }
1081
-
1082
- .health-score { font-weight: 600; font-size: 12px; }
1083
- .score-high { color: var(--accent-emerald); }
1084
- .score-med { color: var(--accent-cyan); }
1085
- .score-warn { color: var(--accent-amber); }
1086
-
1087
- .progress-bar {
1088
- width: 100%;
1089
- height: 6px;
1090
- background: rgba(255, 255, 255, 0.06);
1091
- border-radius: var(--radius-pill);
1092
- overflow: hidden;
1093
- }
1094
-
1095
- .progress-fill {
1096
- height: 100%;
1097
- border-radius: var(--radius-pill);
1098
- transition: width 0.5s ease-out;
1099
- }
1100
-
1101
- .bg-success { background: var(--accent-emerald); }
1102
- .bg-info { background: var(--accent-cyan); }
1103
- .bg-warning { background: var(--accent-amber); }
1104
-
1105
- /* Quick Scout Commands Bar */
1106
- .quick-actions-bar {
1107
- margin-top: 20px;
1108
- padding-top: 16px;
1109
- border-top: 1px dashed var(--border-subtle);
1110
- }
1111
-
1112
- .quick-actions-bar h4 {
1113
- font-size: 13px;
1114
- margin-bottom: 10px;
1115
- color: var(--text-secondary);
1116
- }
1117
-
1118
- .cli-chips {
1119
- display: flex;
1120
- flex-wrap: wrap;
1121
- gap: 8px;
1122
- }
1123
-
1124
- .cli-chip {
1125
- background: rgba(11, 16, 26, 0.9);
1126
- border: 1px solid var(--border-subtle);
1127
- color: var(--accent-cyan);
1128
- font-family: var(--font-mono);
1129
- font-size: 12px;
1130
- padding: 5px 12px;
1131
- border-radius: var(--radius-sm);
1132
- cursor: pointer;
1133
- transition: var(--transition-fast);
1134
- }
1135
-
1136
- .cli-chip:hover {
1137
- border-color: var(--accent-primary);
1138
- color: white;
1139
- background: rgba(99, 102, 241, 0.2);
1140
- }
1141
-
1142
- /* Timeline Activity */
1143
- .activity-timeline {
1144
- list-style: none;
1145
- display: flex;
1146
- flex-direction: column;
1147
- gap: 16px;
1148
- }
1149
-
1150
- .timeline-item {
1151
- display: flex;
1152
- gap: 14px;
1153
- }
1154
-
1155
- .timeline-dot {
1156
- width: 28px;
1157
- height: 28px;
1158
- border-radius: 50%;
1159
- display: flex;
1160
- align-items: center;
1161
- justify-content: center;
1162
- color: white;
1163
- font-size: 12px;
1164
- flex-shrink: 0;
1165
- }
1166
-
1167
- .timeline-content {
1168
- display: flex;
1169
- flex-direction: column;
1170
- }
1171
-
1172
- .timeline-content strong {
1173
- color: var(--text-primary);
1174
- font-size: 13px;
1175
- }
1176
-
1177
- .timeline-content p {
1178
- color: var(--text-secondary);
1179
- font-size: 12px;
1180
- }
1181
-
1182
- .time-ago {
1183
- font-size: 10px;
1184
- color: var(--text-tertiary);
1185
- margin-top: 2px;
1186
- }
1187
-
1188
- /* CLI Tokens Section */
1189
- .token-display-box {
1190
- background: rgba(11, 16, 26, 0.85);
1191
- border: 1px solid rgba(99, 102, 241, 0.2);
1192
- border-radius: var(--radius-md);
1193
- padding: 18px;
1194
- margin-bottom: 24px;
1195
- }
1196
-
1197
- .token-header {
1198
- display: flex;
1199
- justify-content: space-between;
1200
- align-items: center;
1201
- margin-bottom: 10px;
1202
- font-size: 13px;
1203
- font-weight: 600;
1204
- }
1205
-
1206
- .token-code-row {
1207
- display: flex;
1208
- gap: 10px;
1209
- margin-bottom: 14px;
1210
- }
1211
-
1212
- .token-input {
1213
- flex: 1;
1214
- background: var(--bg-canvas);
1215
- border: 1px solid var(--border-subtle);
1216
- color: var(--accent-amber);
1217
- font-family: var(--font-mono);
1218
- font-size: 12px;
1219
- padding: 9px 12px;
1220
- border-radius: var(--radius-sm);
1221
- outline: none;
1222
- }
1223
-
1224
- .token-cli-example {
1225
- display: flex;
1226
- align-items: center;
1227
- gap: 10px;
1228
- font-size: 12px;
1229
- color: var(--text-secondary);
1230
- background: rgba(255, 255, 255, 0.02);
1231
- padding: 8px 12px;
1232
- border-radius: var(--radius-sm);
1233
- }
1234
-
1235
- .token-cli-example code {
1236
- color: var(--accent-cyan);
1237
- font-family: var(--font-mono);
1238
- flex: 1;
1239
- }
1240
-
1241
- /* Session Data Table */
1242
- .session-table-wrapper {
1243
- margin-top: 20px;
1244
- }
1245
-
1246
- .session-table-wrapper h4 {
1247
- font-size: 14px;
1248
- margin-bottom: 12px;
1249
- }
1250
-
1251
- .data-table {
1252
- width: 100%;
1253
- border-collapse: collapse;
1254
- text-align: left;
1255
- }
1256
-
1257
- .data-table th, .data-table td {
1258
- padding: 12px 14px;
1259
- border-bottom: 1px solid var(--border-subtle);
1260
- font-size: 13px;
1261
- }
1262
-
1263
- .data-table th {
1264
- color: var(--text-secondary);
1265
- font-weight: 500;
1266
- font-size: 11px;
1267
- text-transform: uppercase;
1268
- letter-spacing: 0.05em;
1269
- }
1270
-
1271
- .flex-center-gap {
1272
- display: flex;
1273
- align-items: center;
1274
- gap: 10px;
1275
- }
1276
-
1277
- /* Audit Section */
1278
- .audit-summary-grid {
1279
- display: grid;
1280
- grid-template-columns: repeat(3, 1fr);
1281
- gap: 14px;
1282
- margin-bottom: 24px;
1283
- }
1284
-
1285
- .audit-metric-box {
1286
- background: rgba(11, 16, 26, 0.6);
1287
- border: 1px solid var(--border-subtle);
1288
- border-radius: var(--radius-md);
1289
- padding: 16px;
1290
- text-align: center;
1291
- }
1292
-
1293
- .metric-num {
1294
- font-family: var(--font-heading);
1295
- font-size: 28px;
1296
- font-weight: 700;
1297
- display: block;
1298
- }
1299
-
1300
- .metric-title {
1301
- font-size: 12px;
1302
- color: var(--text-secondary);
1303
- }
1304
-
1305
- .audit-controls-bar {
1306
- display: flex;
1307
- align-items: center;
1308
- justify-content: space-between;
1309
- gap: 12px;
1310
- margin-bottom: 18px;
1311
- flex-wrap: wrap;
1312
- }
1313
-
1314
- .audit-filter-group {
1315
- display: flex;
1316
- align-items: center;
1317
- gap: 6px;
1318
- flex-wrap: wrap;
1319
- }
1320
-
1321
- .audit-filter-btn {
1322
- background: rgba(255, 255, 255, 0.03);
1323
- border: 1px solid var(--border-subtle);
1324
- color: var(--text-secondary);
1325
- font-size: 11px;
1326
- font-weight: 600;
1327
- padding: 5px 12px;
1328
- border-radius: var(--radius-pill);
1329
- cursor: pointer;
1330
- transition: var(--transition-fast);
1331
- }
1332
-
1333
- .audit-filter-btn:hover {
1334
- background: rgba(255, 255, 255, 0.07);
1335
- color: var(--text-primary);
1336
- }
1337
-
1338
- .audit-filter-btn.active {
1339
- background: var(--accent-primary);
1340
- color: white;
1341
- border-color: var(--accent-primary);
1342
- box-shadow: 0 2px 8px rgba(99, 102, 241, 0.3);
1343
- }
1344
-
1345
- .audit-list {
1346
- display: flex;
1347
- flex-direction: column;
1348
- gap: 12px;
1349
- }
1350
-
1351
- .audit-card-item {
1352
- background: rgba(11, 16, 26, 0.7);
1353
- border: 1px solid var(--border-subtle);
1354
- border-radius: var(--radius-md);
1355
- padding: 16px;
1356
- }
1357
-
1358
- .audit-item-meta {
1359
- display: flex;
1360
- align-items: center;
1361
- justify-content: space-between;
1362
- margin-bottom: 6px;
1363
- }
1364
-
1365
- .audit-file-path {
1366
- display: flex;
1367
- align-items: center;
1368
- gap: 8px;
1369
- }
1370
-
1371
- .audit-file-path code {
1372
- font-family: var(--font-mono);
1373
- color: var(--text-primary);
1374
- font-size: 13px;
1375
- }
1376
-
1377
- .audit-desc {
1378
- font-size: 12px;
1379
- color: var(--text-secondary);
1380
- margin-bottom: 10px;
1381
- }
1382
-
1383
- .audit-item-actions {
1384
- display: flex;
1385
- gap: 6px;
1386
- }
1387
-
1388
- /* Toast System */
1389
- .toast-container {
1390
- position: fixed;
1391
- bottom: 20px;
1392
- right: 20px;
1393
- display: flex;
1394
- flex-direction: column;
1395
- gap: 8px;
1396
- z-index: 1000;
1397
- pointer-events: none;
1398
- }
1399
-
1400
- .toast {
1401
- pointer-events: auto;
1402
- background: #0d121d;
1403
- border: 1px solid var(--border-subtle);
1404
- color: var(--text-primary);
1405
- padding: 10px 16px;
1406
- border-radius: var(--radius-md);
1407
- box-shadow: var(--shadow-card);
1408
- display: flex;
1409
- align-items: center;
1410
- gap: 10px;
1411
- font-size: 13px;
1412
- animation: slideInRight 0.25s cubic-bezier(0.4, 0, 0.2, 1);
1413
- min-width: 260px;
1414
- }
1415
-
1416
- .toast.toast-success { border-left: 3px solid var(--accent-emerald); }
1417
- .toast.toast-error { border-left: 3px solid var(--accent-rose); }
1418
- .toast.toast-info { border-left: 3px solid var(--accent-cyan); }
1419
-
1420
- @keyframes slideInRight {
1421
- from { transform: translateX(100%); opacity: 0; }
1422
- to { transform: translateX(0); opacity: 1; }
1423
- }
1424
-
1425
- /* Footer */
1426
- .footer {
1427
- margin-top: auto;
1428
- padding: 20px 0;
1429
- border-top: 1px solid var(--border-subtle);
1430
- }
1431
-
1432
- .footer-content {
1433
- display: flex;
1434
- align-items: center;
1435
- justify-content: space-between;
1436
- font-size: 12px;
1437
- color: var(--text-tertiary);
1438
- }
1439
-
1440
- .footer-links {
1441
- display: flex;
1442
- gap: 16px;
1443
- }
1444
-
1445
- .footer-links a {
1446
- color: var(--text-secondary);
1447
- text-decoration: none;
1448
- transition: var(--transition-fast);
1449
- }
1450
-
1451
- .footer-links a:hover {
1452
- color: var(--accent-cyan);
1453
- }
1454
-
1455
- /* Mobile Gate Overlay */
1456
- .mobile-gate-overlay {
1457
- position: fixed;
1458
- top: 0;
1459
- left: 0;
1460
- width: 100vw;
1461
- height: 100vh;
1462
- background: rgba(9, 13, 22, 0.94);
1463
- backdrop-filter: blur(16px);
1464
- -webkit-backdrop-filter: blur(16px);
1465
- z-index: 99999;
1466
- display: flex;
1467
- align-items: center;
1468
- justify-content: center;
1469
- padding: 20px;
1470
- }
1471
-
1472
- .mobile-gate-card {
1473
- max-width: 440px;
1474
- width: 100%;
1475
- text-align: center;
1476
- padding: 32px 24px;
1477
- border: 1px solid rgba(248, 113, 113, 0.3);
1478
- }
1479
-
1480
- .mobile-gate-icon {
1481
- position: relative;
1482
- display: inline-flex;
1483
- align-items: center;
1484
- justify-content: center;
1485
- gap: 10px;
1486
- font-size: 32px;
1487
- color: var(--accent-rose);
1488
- margin-bottom: 16px;
1489
- }
1490
-
1491
- .mobile-gate-title {
1492
- font-size: 22px;
1493
- font-weight: 700;
1494
- margin-bottom: 10px;
1495
- }
1496
-
1497
- .mobile-gate-notice {
1498
- background: rgba(248, 113, 113, 0.1);
1499
- border: 1px dashed rgba(248, 113, 113, 0.3);
1500
- color: #fca5a5;
1501
- font-weight: 600;
1502
- font-size: 13px;
1503
- padding: 12px 16px;
1504
- border-radius: var(--radius-md);
1505
- margin-bottom: 14px;
1506
- }
1507
-
1508
- .mobile-gate-desc {
1509
- font-size: 13px;
1510
- color: var(--text-secondary);
1511
- line-height: 1.5;
1512
- margin-bottom: 20px;
1513
- }
1514
-
1515
- /* Scout CLI Embedded Terminal (Google Cloud Shell Style) */
1516
- .terminal-card {
1517
- padding: 0;
1518
- overflow: hidden;
1519
- border: 1px solid rgba(99, 102, 241, 0.25);
1520
- }
1521
-
1522
- .terminal-card .card-header {
1523
- padding: 16px 20px;
1524
- border-bottom: 1px solid var(--border-subtle);
1525
- background: rgba(11, 16, 26, 0.6);
1526
- margin-bottom: 0;
1527
- }
1528
-
1529
- .terminal-quick-chips {
1530
- display: flex;
1531
- align-items: center;
1532
- flex-wrap: wrap;
1533
- gap: 6px;
1534
- padding: 10px 16px;
1535
- background: rgba(9, 13, 22, 0.7);
1536
- border-bottom: 1px solid var(--border-subtle);
1537
- }
1538
-
1539
- .quick-chip-label {
1540
- font-size: 11px;
1541
- font-weight: 600;
1542
- color: var(--text-secondary);
1543
- margin-right: 4px;
1544
- }
1545
-
1546
- .btn-chip {
1547
- background: rgba(22, 30, 46, 0.7);
1548
- border: 1px solid var(--border-subtle);
1549
- color: var(--text-secondary);
1550
- font-family: var(--font-mono);
1551
- font-size: 11px;
1552
- padding: 4px 10px;
1553
- border-radius: var(--radius-pill);
1554
- cursor: pointer;
1555
- transition: var(--transition-fast);
1556
- display: inline-flex;
1557
- align-items: center;
1558
- gap: 5px;
1559
- }
1560
-
1561
- .btn-chip:hover {
1562
- background: var(--accent-primary);
1563
- color: white;
1564
- border-color: var(--accent-primary);
1565
- }
1566
-
1567
- .terminal-window {
1568
- background: #080c14;
1569
- font-family: var(--font-mono), 'Fira Code', Consolas, monospace;
1570
- display: flex;
1571
- flex-direction: column;
1572
- min-height: 440px;
1573
- }
1574
-
1575
- .terminal-topbar {
1576
- display: flex;
1577
- align-items: center;
1578
- justify-content: space-between;
1579
- background: #0f172a;
1580
- padding: 8px 14px;
1581
- border-bottom: 1px solid #1e293b;
1582
- }
1583
-
1584
- .window-controls {
1585
- display: flex;
1586
- gap: 6px;
1587
- }
1588
-
1589
- .dot {
1590
- width: 10px;
1591
- height: 10px;
1592
- border-radius: 50%;
1593
- display: inline-block;
1594
- }
1595
-
1596
- .dot-red { background: #f87171; }
1597
- .dot-yellow { background: #fbbf24; }
1598
- .dot-green { background: #34d399; }
1599
-
1600
- .terminal-title {
1601
- font-size: 11px;
1602
- color: var(--text-tertiary);
1603
- }
1604
-
1605
- .btn-term-icon {
1606
- background: transparent;
1607
- border: none;
1608
- color: var(--text-tertiary);
1609
- cursor: pointer;
1610
- padding: 3px 6px;
1611
- border-radius: var(--radius-sm);
1612
- font-size: 12px;
1613
- transition: var(--transition-fast);
1614
- }
1615
-
1616
- .btn-term-icon:hover {
1617
- color: var(--text-primary);
1618
- background: #1e293b;
1619
- }
1620
-
1621
- .terminal-body {
1622
- padding: 16px;
1623
- height: 350px;
1624
- overflow-y: auto;
1625
- color: #e2e8f0;
1626
- font-size: 12px;
1627
- line-height: 1.65;
1628
- white-space: pre-wrap;
1629
- word-break: break-word;
1630
- }
1631
-
1632
- .term-line {
1633
- margin-bottom: 3px;
1634
- }
1635
-
1636
- .term-welcome {
1637
- color: #a5b4fc;
1638
- font-weight: 600;
1639
- }
1640
-
1641
- .term-brand {
1642
- color: #818cf8;
1643
- font-weight: 700;
1644
- }
1645
-
1646
- .term-info {
1647
- color: #94a3b8;
1648
- }
1649
-
1650
- .term-code {
1651
- background: #1e293b;
1652
- color: #38bdf8;
1653
- padding: 1px 5px;
1654
- border-radius: 4px;
1655
- }
1656
-
1657
- .term-dim {
1658
- color: #475569;
1659
- }
1660
-
1661
- .term-cmd-entry {
1662
- color: #38bdf8;
1663
- font-weight: 600;
1664
- margin-top: 10px;
1665
- }
1666
-
1667
- .term-output-text {
1668
- color: #cbd5e1;
1669
- padding-left: 8px;
1670
- border-left: 2px solid #38bdf8;
1671
- margin-bottom: 10px;
1672
- }
1673
-
1674
- .terminal-input-row {
1675
- display: flex;
1676
- align-items: center;
1677
- background: #0b1120;
1678
- border-top: 1px solid #1e293b;
1679
- padding: 8px 14px;
1680
- gap: 10px;
1681
- }
1682
-
1683
- .terminal-prompt-symbol {
1684
- color: #34d399;
1685
- font-weight: 700;
1686
- font-size: 13px;
1687
- user-select: none;
1688
- }
1689
-
1690
- .terminal-input {
1691
- flex: 1;
1692
- background: transparent;
1693
- border: none;
1694
- color: #f8fafc;
1695
- font-family: var(--font-mono);
1696
- font-size: 13px;
1697
- outline: none;
1698
- }
1699
-
1700
- .terminal-input::placeholder {
1701
- color: #475569;
1702
- }
1703
-
1704
- .auth-divider {
1705
- display: flex;
1706
- align-items: center;
1707
- text-align: center;
1708
- margin: 16px 0;
1709
- color: var(--text-tertiary);
1710
- font-size: 11px;
1711
- font-weight: 700;
1712
- letter-spacing: 1px;
1713
- }
1714
-
1715
- .auth-divider::before,
1716
- .auth-divider::after {
1717
- content: '';
1718
- flex: 1;
1719
- border-bottom: 1px solid var(--border-subtle);
1720
- }
1721
-
1722
- .auth-divider span {
1723
- padding: 0 10px;
1724
- }
1725
-
1726
- .btn-holosene {
1727
- background: linear-gradient(135deg, #6366f1 0%, #a855f7 50%, #ec4899 100%);
1728
- color: #ffffff;
1729
- border: none;
1730
- font-weight: 600;
1731
- box-shadow: 0 4px 14px rgba(168, 85, 247, 0.3);
1732
- transition: all 0.25s ease-in-out;
1733
- display: flex;
1734
- align-items: center;
1735
- justify-content: center;
1736
- gap: 8px;
1737
- }
1738
-
1739
- .btn-holosene:hover {
1740
- transform: translateY(-1px);
1741
- box-shadow: 0 6px 18px rgba(168, 85, 247, 0.45);
1742
- }
1743
-
1744
- /* ==========================================================================
1745
- PAID TIERS & SUBSCRIPTION PRICING STYLES
1746
- ========================================================================== */
1747
- .current-plan-banner {
1748
- border-left: 4px solid var(--accent-amber);
1749
- }
1750
-
1751
- .align-center {
1752
- align-items: center;
1753
- }
1754
-
1755
- .tier-icon-badge {
1756
- width: 48px;
1757
- height: 48px;
1758
- background: rgba(251, 191, 36, 0.12);
1759
- border-radius: var(--radius-md);
1760
- display: flex;
1761
- align-items: center;
1762
- justify-content: center;
1763
- }
1764
-
1765
- /* Billing Cycle Switch Toggle */
1766
- .billing-cycle-toggle {
1767
- display: flex;
1768
- align-items: center;
1769
- gap: 12px;
1770
- background: var(--bg-surface-elevated);
1771
- padding: 6px 16px;
1772
- border-radius: var(--radius-pill);
1773
- border: 1px solid var(--border-subtle);
1774
- }
1775
-
1776
- .toggle-label {
1777
- font-size: 13px;
1778
- font-weight: 500;
1779
- color: var(--text-secondary);
961
+ /* Arcade Cabinet Styling */
962
+ .arcade-card { padding: 24px; }
963
+ .arcade-header { margin-bottom: 20px; }
964
+ .arcade-cabinet-frame {
965
+ background: #040507;
966
+ border: 4px solid #1c202d;
967
+ border-radius: var(--radius-lg);
968
+ padding: 16px;
969
+ box-shadow: 0 0 40px rgba(0, 0, 0, 0.8), inset 0 0 20px rgba(0, 0, 0, 0.9);
1780
970
  }
1781
971
 
1782
- .switch {
972
+ .arcade-screen {
1783
973
  position: relative;
1784
- display: inline-block;
1785
- width: 42px;
1786
- height: 22px;
1787
- }
1788
-
1789
- .switch input {
1790
- opacity: 0;
1791
- width: 0;
1792
- height: 0;
1793
- }
1794
-
1795
- .slider {
1796
- position: absolute;
1797
- cursor: pointer;
1798
- top: 0; left: 0; right: 0; bottom: 0;
1799
- background-color: rgba(255, 255, 255, 0.15);
1800
- transition: .3s;
974
+ border-radius: var(--radius-md);
975
+ overflow: hidden;
1801
976
  }
1802
977
 
1803
- .slider:before {
978
+ .arcade-screen.crt-active::after {
979
+ content: " ";
980
+ display: block;
1804
981
  position: absolute;
1805
- content: "";
1806
- height: 16px;
1807
- width: 16px;
1808
- left: 3px;
1809
- bottom: 3px;
1810
- background-color: white;
1811
- transition: .3s;
1812
- }
1813
-
1814
- input:checked + .slider {
1815
- background-color: var(--accent-primary);
1816
- }
1817
-
1818
- input:checked + .slider:before {
1819
- transform: translateX(20px);
1820
- }
1821
-
1822
- .slider.round {
1823
- border-radius: 34px;
1824
- }
1825
-
1826
- .slider.round:before {
1827
- border-radius: 50%;
1828
- }
1829
-
1830
- /* Pricing Grid */
1831
- .tiers-pricing-grid {
1832
- display: grid;
1833
- grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
1834
- gap: 24px;
1835
- margin-top: 16px;
982
+ top: 0; left: 0; bottom: 0; right: 0;
983
+ background: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.25) 50%);
984
+ background-size: 100% 4px;
985
+ pointer-events: none;
986
+ z-index: 10;
1836
987
  }
1837
988
 
1838
- .pricing-card {
1839
- position: relative;
989
+ .arcade-score-bar {
1840
990
  display: flex;
1841
- flex-direction: column;
1842
- justify-content: space-between;
1843
- padding: 28px 24px;
1844
- border-radius: var(--radius-lg);
1845
- transition: all var(--transition-normal);
1846
- }
1847
-
1848
- .pricing-card:hover {
1849
- transform: translateY(-4px);
1850
- box-shadow: 0 16px 36px -10px rgba(0, 0, 0, 0.6);
991
+ justify-content: space-around;
992
+ width: 100%;
993
+ max-width: 448px;
994
+ margin-bottom: 12px;
995
+ background: rgba(8, 9, 12, 0.8);
996
+ padding: 10px;
997
+ border-radius: var(--radius-md);
998
+ border: 1px solid var(--border-subtle);
1851
999
  }
1852
1000
 
1853
- .popular-tier {
1854
- border: 1px solid var(--hr-rust);
1855
- box-shadow: 0 0 24px var(--hr-rust-glow);
1856
- }
1001
+ .score-box { display: flex; flex-direction: column; align-items: center; }
1002
+ .score-label { font-size: 10px; color: var(--text-tertiary); font-family: var(--font-mono); }
1003
+ .score-val { font-family: var(--font-mono); font-size: 16px; font-weight: 700; }
1857
1004
 
1858
- .popular-badge {
1005
+ .arcade-overlay {
1859
1006
  position: absolute;
1860
- top: -12px;
1861
- right: 24px;
1862
- background: var(--hr-rust);
1863
- color: #ffffff;
1864
- font-size: 11px;
1865
- font-weight: 700;
1866
- padding: 3px 12px;
1867
- border-radius: var(--radius-pill);
1868
- letter-spacing: 0.5px;
1869
- box-shadow: 0 4px 12px var(--hr-rust-glow);
1870
- }
1871
-
1872
- .active-tier-card {
1873
- border: 2px solid var(--accent-emerald) !important;
1874
- box-shadow: 0 0 24px rgba(52, 211, 153, 0.2);
1875
- }
1876
-
1877
- .pricing-header {
1878
- margin-bottom: 20px;
1879
- }
1880
-
1881
- .plan-icon {
1882
- width: 42px;
1883
- height: 42px;
1884
- border-radius: var(--radius-md);
1885
- background: rgba(255, 255, 255, 0.06);
1007
+ top: 0; left: 0; width: 100%; height: 100%;
1008
+ background: rgba(8, 9, 12, 0.88);
1009
+ backdrop-filter: blur(8px);
1886
1010
  display: flex;
1887
1011
  align-items: center;
1888
1012
  justify-content: center;
1889
- font-size: 20px;
1890
- color: var(--text-primary);
1891
- margin-bottom: 14px;
1892
- }
1893
-
1894
- .plan-name {
1895
- font-size: 20px;
1896
- font-weight: 700;
1897
- margin-bottom: 4px;
1898
- }
1899
-
1900
- .plan-desc {
1901
- color: var(--text-muted);
1902
- font-size: 13px;
1903
- margin-bottom: 16px;
1904
- min-height: 38px;
1905
- }
1906
-
1907
- .plan-price {
1908
- display: flex;
1909
- align-items: baseline;
1910
- gap: 4px;
1911
- }
1912
-
1913
- .price-currency {
1914
- font-size: 20px;
1915
- font-weight: 600;
1916
- color: var(--text-secondary);
1917
- }
1918
-
1919
- .price-val {
1920
- font-size: 38px;
1921
- font-weight: 800;
1922
- font-family: var(--font-heading);
1923
- color: var(--text-primary);
1924
- line-height: 1;
1925
- }
1926
-
1927
- .price-period {
1928
- font-size: 13px;
1929
- color: var(--text-tertiary);
1930
- }
1931
-
1932
- .plan-features {
1933
- list-style: none;
1934
- margin: 20px 0 28px 0;
1935
- padding: 0;
1936
- display: flex;
1937
- flex-direction: column;
1938
- gap: 12px;
1939
- flex: 1;
1940
- }
1941
-
1942
- .plan-features li {
1943
- display: flex;
1944
- align-items: center;
1945
- gap: 10px;
1946
- font-size: 13px;
1947
- color: var(--text-primary);
1013
+ z-index: 20;
1948
1014
  }
1949
1015
 
1950
- .plan-features li.text-muted {
1951
- color: var(--text-tertiary);
1952
- }
1953
-
1954
- .pricing-footer {
1955
- margin-top: auto;
1956
- }
1957
-
1958
- /* ==========================================================================
1959
- CREDIT USAGE & PROGRESS BAR STYLES
1960
- ========================================================================== */
1961
- .credit-stats-grid {
1962
- display: grid;
1963
- grid-template-columns: repeat(3, 1fr);
1964
- gap: 12px;
1965
- margin-bottom: 20px;
1966
- }
1016
+ .overlay-content { text-align: center; }
1017
+ .arcade-heading { font-size: 32px; margin-bottom: 8px; }
1018
+ .overlay-desc { color: var(--text-secondary); margin-bottom: 20px; font-size: 13px; }
1967
1019
 
1968
- .credit-stat-box {
1969
- background: var(--bg-surface-elevated);
1970
- border: 1px solid var(--border-subtle);
1971
- border-radius: var(--radius-md);
1972
- padding: 12px 14px;
1973
- display: flex;
1974
- flex-direction: column;
1975
- }
1020
+ /* D-Pad Touch Controls */
1021
+ .arcade-dpad-container { margin-top: 16px; display: flex; flex-direction: column; align-items: center; }
1022
+ .dpad-row { display: flex; gap: 4px; }
1023
+ .dpad-btn { width: 44px; height: 44px; background: var(--hr-surface-card); border: 1px solid var(--border-subtle); color: var(--text-primary); border-radius: var(--radius-sm); font-size: 18px; cursor: pointer; display: flex; align-items: center; justify-content: center; }
1024
+ .dpad-btn:active { background: var(--hr-rust); }
1025
+ .dpad-center { width: 44px; height: 44px; }
1976
1026
 
1977
- .credit-stat-label {
1978
- font-size: 11px;
1979
- font-weight: 600;
1980
- color: var(--text-tertiary);
1981
- text-transform: uppercase;
1982
- letter-spacing: 0.5px;
1983
- margin-bottom: 4px;
1984
- }
1027
+ /* Auth Card Layout */
1028
+ .auth-section { display: flex; justify-content: center; padding: 40px 0; }
1029
+ .auth-card { width: 100%; max-width: 460px; padding: 36px 32px; }
1030
+ .auth-header { text-align: center; margin-bottom: 24px; }
1031
+ .auth-logo-badge { width: 52px; height: 52px; margin: 0 auto 12px; background: transparent; border: none; border-radius: 0; padding: 0; display: flex; align-items: center; justify-content: center; }
1032
+ .auth-logo-img { width: 52px; height: 52px; object-fit: contain; filter: drop-shadow(0 0 14px rgba(56, 189, 248, 0.4)); }
1033
+ .auth-header h2 { font-size: 22px; margin-bottom: 6px; }
1034
+ .auth-header p { color: var(--text-secondary); font-size: 12px; }
1985
1035
 
1986
- .credit-stat-val {
1987
- font-family: var(--font-heading);
1988
- font-size: 20px;
1989
- font-weight: 700;
1990
- }
1036
+ .auth-tabs { display: flex; background: rgba(8, 9, 12, 0.8); padding: 4px; border-radius: var(--radius-pill); border: 1px solid var(--border-subtle); margin-bottom: 24px; }
1037
+ .auth-tab { flex: 1; background: transparent; border: none; color: var(--text-secondary); font-size: 13px; font-weight: 600; padding: 8px 0; border-radius: var(--radius-pill); cursor: pointer; transition: var(--transition-fast); }
1038
+ .auth-tab.active { background: var(--hr-rust); color: #ffffff; }
1991
1039
 
1992
- .credit-bar-wrapper {
1993
- background: var(--bg-input);
1994
- border: 1px solid var(--border-subtle);
1995
- border-radius: var(--radius-md);
1996
- padding: 16px;
1997
- margin-bottom: 16px;
1998
- }
1040
+ .auth-demo-box { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--border-subtle); display: flex; align-items: center; justify-content: space-between; font-size: 12px; color: var(--text-tertiary); }
1999
1041
 
2000
- .credit-bar-header {
2001
- display: flex;
2002
- justify-content: space-between;
2003
- align-items: center;
2004
- font-size: 13px;
2005
- font-weight: 500;
2006
- color: var(--text-secondary);
2007
- margin-bottom: 10px;
2008
- }
1042
+ /* Modal & Toast */
1043
+ .modal-overlay { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background: rgba(4, 5, 7, 0.85); backdrop-filter: blur(12px); display: flex; align-items: center; justify-content: center; z-index: 200; }
1044
+ .modal-card { width: 100%; max-width: 520px; padding: 28px; }
2009
1045
 
2010
- .credit-progress-track {
2011
- width: 100%;
2012
- height: 10px;
2013
- background: rgba(255, 255, 255, 0.08);
2014
- border-radius: var(--radius-pill);
2015
- overflow: hidden;
2016
- position: relative;
2017
- }
1046
+ .toast-container { position: fixed; bottom: 24px; right: 24px; z-index: 300; display: flex; flex-direction: column; gap: 10px; }
1047
+ .toast { background: var(--hr-surface-card); border: 1px solid var(--hr-line-strong); color: var(--text-primary); padding: 12px 18px; border-radius: var(--radius-md); box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5); display: flex; align-items: center; gap: 10px; font-size: 13px; animation: slideIn 0.3s cubic-bezier(0.4, 0, 0.2, 1); }
1048
+ .toast-success i { color: var(--hr-emerald); }
1049
+ .toast-error i { color: var(--hr-rose); }
1050
+ .toast-info i { color: var(--hr-cyan); }
2018
1051
 
2019
- .credit-progress-fill {
2020
- height: 100%;
2021
- background: linear-gradient(90deg, var(--hr-rust) 0%, var(--hr-cyan) 60%, var(--hr-emerald) 100%);
2022
- border-radius: var(--radius-pill);
2023
- transition: width 0.8s cubic-bezier(0.4, 0, 0.2, 1);
2024
- }
1052
+ @keyframes slideIn { from { transform: translateX(100%); opacity: 0; } to { transform: translateX(0); opacity: 1; } }
2025
1053
 
2026
- .credit-renew-box {
2027
- display: flex;
2028
- align-items: center;
2029
- gap: 12px;
2030
- background: rgba(56, 189, 248, 0.06);
2031
- border: 1px dashed rgba(56, 189, 248, 0.25);
2032
- border-radius: var(--radius-md);
2033
- padding: 12px 16px;
2034
- }
1054
+ /* Footer */
1055
+ .footer { border-top: 1px solid var(--border-subtle); margin-top: auto; padding: 32px 0; }
1056
+ .footer-content { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
1057
+ .footer-brand { display: flex; align-items: center; gap: 8px; }
1058
+ .footer-logo-img { width: 24px; height: 24px; }
1059
+ .footer-brand-title { font-weight: 800; font-size: 14px; letter-spacing: 0.08em; }
1060
+ .footer p { color: var(--text-tertiary); font-size: 12px; }
1061
+ .footer-links { display: flex; gap: 16px; }
1062
+ .footer-links a { color: var(--text-secondary); text-decoration: none; font-size: 12px; transition: var(--transition-fast); }
1063
+ .footer-links a:hover { color: var(--hr-rust); }
2035
1064
 
2036
1065
  /* ==========================================================================
2037
- MODAL & CHECKOUT STYLES
1066
+ Mobile & Responsive Layout Media Queries
2038
1067
  ========================================================================== */
2039
- .modal-overlay {
2040
- position: fixed;
2041
- top: 0;
2042
- left: 0;
2043
- right: 0;
2044
- bottom: 0;
2045
- background: rgba(10, 10, 18, 0.82);
2046
- backdrop-filter: blur(10px);
2047
- -webkit-backdrop-filter: blur(10px);
2048
- z-index: 9999;
2049
- display: flex;
2050
- align-items: center;
2051
- justify-content: center;
2052
- padding: 20px;
2053
- animation: fadeIn 0.2s ease-out;
2054
- }
2055
-
2056
- .modal-card {
2057
- max-width: 480px;
2058
- width: 100%;
2059
- background: var(--bg-surface-elevated);
2060
- border: 1px solid var(--border-highlight);
2061
- box-shadow: 0 20px 50px rgba(0, 0, 0, 0.6);
2062
- border-radius: var(--radius-lg);
2063
- padding: 24px;
2064
- animation: slideUp 0.25s cubic-bezier(0.16, 1, 0.3, 1);
2065
- }
2066
-
2067
- .btn-icon-close {
2068
- background: transparent;
2069
- border: none;
2070
- color: var(--text-muted);
2071
- font-size: 18px;
2072
- cursor: pointer;
2073
- padding: 4px 8px;
2074
- border-radius: var(--radius-sm);
2075
- transition: var(--transition-fast);
2076
- }
2077
-
2078
- .btn-icon-close:hover {
2079
- color: var(--text-bright);
2080
- background: rgba(255, 255, 255, 0.1);
2081
- }
2082
-
2083
- .checkout-summary-box {
2084
- background: var(--bg-input);
2085
- border: 1px solid var(--border-subtle);
2086
- border-radius: var(--radius-md);
2087
- padding: 16px;
2088
- }
2089
-
2090
- @keyframes fadeIn {
2091
- from { opacity: 0; }
2092
- to { opacity: 1; }
2093
- }
2094
-
2095
- @keyframes slideUp {
2096
- from { transform: translateY(20px); opacity: 0; }
2097
- to { transform: translateY(0); opacity: 1; }
2098
- }
2099
-
2100
- /* Scout Logo Hero & Footer Enhancements */
2101
- .banner-logo-wrapper {
2102
- width: 64px;
2103
- height: 64px;
2104
- min-width: 64px;
2105
- background: rgba(15, 23, 42, 0.8);
2106
- border: 1px solid rgba(56, 189, 248, 0.4);
2107
- border-radius: var(--radius-md);
2108
- display: flex;
2109
- align-items: center;
2110
- justify-content: center;
2111
- box-shadow: 0 0 30px rgba(56, 189, 248, 0.35);
2112
- padding: 6px;
2113
- margin-right: 18px;
2114
- transition: transform 0.3s ease, box-shadow 0.3s ease;
2115
- }
2116
-
2117
- .banner-logo-wrapper:hover {
2118
- transform: scale(1.06) rotate(2deg);
2119
- box-shadow: 0 0 40px rgba(56, 189, 248, 0.6);
2120
- border-color: rgba(56, 189, 248, 0.8);
2121
- }
2122
-
2123
- .banner-hero-logo {
2124
- width: 100%;
2125
- height: 100%;
2126
- object-fit: contain;
2127
- filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.5));
2128
- }
2129
-
2130
- .footer-brand {
2131
- display: flex;
2132
- align-items: center;
2133
- justify-content: center;
2134
- gap: 10px;
2135
- margin-bottom: 10px;
2136
- }
2137
-
2138
- .footer-logo-img {
2139
- width: 28px;
2140
- height: 28px;
2141
- object-fit: contain;
2142
- filter: drop-shadow(0 0 10px rgba(56, 189, 248, 0.4));
2143
- }
2144
1068
 
2145
- .footer-brand-title {
2146
- font-family: var(--font-heading);
2147
- font-weight: 800;
2148
- font-size: 16px;
2149
- letter-spacing: 0.08em;
2150
- color: var(--text-primary);
1069
+ /* Tablet & Smaller Laptops (<= 992px) */
1070
+ @media (max-width: 992px) {
1071
+ .app-wrapper {
1072
+ padding: 0 16px;
1073
+ }
1074
+
1075
+ .welcome-banner {
1076
+ padding: 24px;
1077
+ }
1078
+
1079
+ .banner-content h1 {
1080
+ font-size: 24px;
1081
+ }
1082
+
1083
+ .tiers-pricing-grid {
1084
+ grid-template-columns: repeat(2, 1fr);
1085
+ }
1086
+ }
1087
+
1088
+ /* Mobile Devices & Small Tablets (<= 768px) */
1089
+ @media (max-width: 768px) {
1090
+ /* Announcement Bar */
1091
+ .announcement-bar {
1092
+ font-size: 0.65rem;
1093
+ padding: 0.45rem 0.6rem;
1094
+ letter-spacing: 0.05em;
1095
+ }
1096
+
1097
+ /* Header & Navigation Bar */
1098
+ .navbar {
1099
+ flex-wrap: wrap;
1100
+ padding: 14px 0;
1101
+ margin-bottom: 20px;
1102
+ gap: 12px;
1103
+ }
1104
+
1105
+ .nav-left {
1106
+ gap: 10px;
1107
+ }
1108
+
1109
+ .brand-title {
1110
+ font-size: 16px;
1111
+ }
1112
+
1113
+ .brand-subtitle {
1114
+ font-size: 10px;
1115
+ }
1116
+
1117
+ .version-badge {
1118
+ font-size: 10px;
1119
+ padding: 1px 7px;
1120
+ }
1121
+
1122
+ /* Full-width responsive tab menu for mobile nav links */
1123
+ .nav-links {
1124
+ width: 100%;
1125
+ order: 3;
1126
+ justify-content: space-around;
1127
+ padding: 4px;
1128
+ margin-top: 4px;
1129
+ background: rgba(16, 18, 24, 0.95);
1130
+ backdrop-filter: blur(16px);
1131
+ -webkit-backdrop-filter: blur(16px);
1132
+ }
1133
+
1134
+ .nav-btn {
1135
+ padding: 8px 10px;
1136
+ font-size: 12px;
1137
+ flex: 1;
1138
+ justify-content: center;
1139
+ }
1140
+
1141
+ .nav-right {
1142
+ gap: 8px;
1143
+ }
1144
+
1145
+ /* Welcome Banner */
1146
+ .welcome-banner {
1147
+ flex-direction: column;
1148
+ align-items: flex-start;
1149
+ gap: 16px;
1150
+ padding: 20px 16px;
1151
+ margin-bottom: 20px;
1152
+ }
1153
+
1154
+ .banner-content h1 {
1155
+ font-size: 20px;
1156
+ }
1157
+
1158
+ .banner-content p {
1159
+ font-size: 13px;
1160
+ }
1161
+
1162
+ /* Grid Layouts */
1163
+ .grid-2col {
1164
+ grid-template-columns: 1fr;
1165
+ gap: 16px;
1166
+ }
1167
+
1168
+ .credit-stats-grid {
1169
+ grid-template-columns: 1fr;
1170
+ gap: 12px;
1171
+ }
1172
+
1173
+ .credit-stat-val {
1174
+ font-size: 18px;
1175
+ }
1176
+
1177
+ .credit-renew-box {
1178
+ flex-direction: column;
1179
+ align-items: flex-start;
1180
+ gap: 8px;
1181
+ padding: 12px 14px;
1182
+ }
1183
+
1184
+ .credit-renew-box .btn {
1185
+ margin-left: 0 !important;
1186
+ width: 100%;
1187
+ }
1188
+
1189
+ /* Pricing Grid & Cards */
1190
+ .tiers-pricing-grid {
1191
+ grid-template-columns: 1fr;
1192
+ gap: 20px;
1193
+ }
1194
+
1195
+ .pricing-card {
1196
+ padding: 24px 18px;
1197
+ }
1198
+
1199
+ .plan-price .price-val {
1200
+ font-size: 36px;
1201
+ }
1202
+
1203
+ .pricing-header-wrapper {
1204
+ flex-direction: column;
1205
+ gap: 12px;
1206
+ align-items: flex-start !important;
1207
+ }
1208
+
1209
+ /* Feature Comparison Table horizontal scroll container */
1210
+ .matrix-section {
1211
+ overflow-x: auto;
1212
+ -webkit-overflow-scrolling: touch;
1213
+ margin-top: 32px;
1214
+ padding: 18px 14px !important;
1215
+ }
1216
+
1217
+ .matrix-table {
1218
+ min-width: 520px;
1219
+ }
1220
+
1221
+ /* Dynamic Session & Data Tables Scroll Container */
1222
+ .session-table-wrapper {
1223
+ overflow-x: auto;
1224
+ -webkit-overflow-scrolling: touch;
1225
+ width: 100%;
1226
+ }
1227
+
1228
+ .data-table {
1229
+ min-width: 480px;
1230
+ }
1231
+
1232
+ /* Web CLI Terminal Window */
1233
+ .terminal-card {
1234
+ margin-bottom: 20px;
1235
+ }
1236
+
1237
+ .card-header {
1238
+ padding: 16px;
1239
+ flex-direction: column;
1240
+ align-items: flex-start !important;
1241
+ gap: 10px;
1242
+ }
1243
+
1244
+ .card-body {
1245
+ padding: 16px 12px;
1246
+ }
1247
+
1248
+ .terminal-topbar {
1249
+ padding: 8px 12px;
1250
+ }
1251
+
1252
+ .terminal-body {
1253
+ padding: 14px 10px;
1254
+ font-size: 12px;
1255
+ min-height: 200px;
1256
+ word-break: break-word;
1257
+ }
1258
+
1259
+ .terminal-input-row {
1260
+ gap: 6px;
1261
+ }
1262
+
1263
+ .terminal-input {
1264
+ font-size: 14px; /* Prevents iOS mobile browser auto-zoom */
1265
+ }
1266
+
1267
+ .cli-command-chips {
1268
+ gap: 6px !important;
1269
+ }
1270
+
1271
+ .btn-cli-chip {
1272
+ font-size: 10px;
1273
+ padding: 3px 8px;
1274
+ }
1275
+
1276
+ /* Pacman Arcade Section */
1277
+ .arcade-card {
1278
+ padding: 16px 12px;
1279
+ }
1280
+
1281
+ .arcade-header {
1282
+ flex-direction: column;
1283
+ align-items: flex-start !important;
1284
+ gap: 10px;
1285
+ margin-bottom: 14px;
1286
+ }
1287
+
1288
+ .arcade-cabinet-frame {
1289
+ padding: 8px;
1290
+ border-width: 2px;
1291
+ width: 100%;
1292
+ max-width: 100%;
1293
+ }
1294
+
1295
+ .arcade-screen {
1296
+ width: 100%;
1297
+ max-width: 100%;
1298
+ }
1299
+
1300
+ #pacman-canvas {
1301
+ width: 100% !important;
1302
+ max-width: 100% !important;
1303
+ height: auto !important;
1304
+ aspect-ratio: 448 / 496;
1305
+ display: block;
1306
+ margin: 0 auto;
1307
+ }
1308
+
1309
+ .arcade-score-bar {
1310
+ display: grid;
1311
+ grid-template-columns: repeat(2, 1fr);
1312
+ gap: 8px;
1313
+ padding: 8px;
1314
+ max-width: 100%;
1315
+ }
1316
+
1317
+ .score-val {
1318
+ font-size: 14px;
1319
+ }
1320
+
1321
+ .arcade-heading {
1322
+ font-size: 24px;
1323
+ }
1324
+
1325
+ .overlay-desc {
1326
+ font-size: 12px;
1327
+ }
1328
+
1329
+ .arcade-btn-group {
1330
+ flex-direction: column;
1331
+ gap: 8px;
1332
+ width: 100%;
1333
+ }
1334
+
1335
+ .arcade-btn-group .btn {
1336
+ width: 100%;
1337
+ }
1338
+
1339
+ .dpad-btn {
1340
+ width: 52px;
1341
+ height: 52px;
1342
+ font-size: 22px;
1343
+ }
1344
+
1345
+ .dpad-center {
1346
+ width: 52px;
1347
+ height: 52px;
1348
+ }
1349
+
1350
+ /* Authentication Page */
1351
+ .auth-section {
1352
+ padding: 16px 0;
1353
+ }
1354
+
1355
+ .auth-card {
1356
+ padding: 24px 16px;
1357
+ max-width: 100%;
1358
+ margin: 0 4px;
1359
+ }
1360
+
1361
+ .auth-header h2 {
1362
+ font-size: 20px;
1363
+ }
1364
+
1365
+ .auth-demo-box {
1366
+ flex-direction: column;
1367
+ gap: 10px;
1368
+ align-items: center;
1369
+ text-align: center;
1370
+ }
1371
+
1372
+ /* Modals & Toasts */
1373
+ .modal-card {
1374
+ width: 95%;
1375
+ padding: 20px 16px;
1376
+ max-height: 90vh;
1377
+ overflow-y: auto;
1378
+ }
1379
+
1380
+ .toast-container {
1381
+ bottom: 16px;
1382
+ right: 12px;
1383
+ left: 12px;
1384
+ width: auto;
1385
+ }
1386
+
1387
+ .toast {
1388
+ font-size: 12px;
1389
+ padding: 10px 14px;
1390
+ }
1391
+
1392
+ /* Footer */
1393
+ .footer {
1394
+ padding: 24px 0;
1395
+ }
1396
+
1397
+ .footer-content {
1398
+ flex-direction: column;
1399
+ align-items: center;
1400
+ text-align: center;
1401
+ gap: 14px;
1402
+ }
1403
+
1404
+ .footer-links {
1405
+ flex-wrap: wrap;
1406
+ justify-content: center;
1407
+ }
1408
+ }
1409
+
1410
+ /* Extra Small Mobile Devices (<= 480px) */
1411
+ @media (max-width: 480px) {
1412
+ .app-wrapper {
1413
+ padding: 0 10px;
1414
+ }
1415
+
1416
+ .navbar {
1417
+ margin-bottom: 16px;
1418
+ }
1419
+
1420
+ .btn {
1421
+ padding: 8px 14px;
1422
+ font-size: 12px;
1423
+ }
1424
+
1425
+ .btn-lg {
1426
+ padding: 10px 18px;
1427
+ font-size: 13px;
1428
+ }
1429
+
1430
+ .nav-user-name {
1431
+ display: none; /* Icon avatar only on small mobile screen */
1432
+ }
1433
+
1434
+ .user-menu-btn {
1435
+ padding: 4px 8px;
1436
+ }
1437
+
1438
+ .dropdown-menu {
1439
+ right: -10px;
1440
+ width: 220px;
1441
+ }
1442
+
1443
+ .faq-question {
1444
+ font-size: 14px;
1445
+ }
1446
+
1447
+ .faq-answer {
1448
+ font-size: 12px;
1449
+ }
2151
1450
  }
2152
-
2153
-