helixevo 0.2.39 → 0.2.41

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,556 +1,1225 @@
1
- /* ════════════════════════════════════════════════════════════════
2
- HelixEvo Dashboard — Premium Warm Theme
3
- Inspired by modern fintech/data platforms
4
- ════════════════════════════════════════════════════════════════ */
5
-
6
1
  :root {
7
- /* ─── Backgrounds (warm palette) ─── */
8
- --bg: #f4f2ee;
9
- --bg-card: #ffffff;
10
- --bg-section: #eceae5;
11
- --bg-hover: #e6e3dd;
12
- --bg-input: #f4f2ee;
13
- --bg-sidebar: #f9f8f5;
14
-
15
- /* ─── Borders & Elevation ─── */
16
- --border: #ddd9d1;
17
- --border-focus: #c5c0b6;
18
- --border-subtle: #e8e5de;
19
- --shadow-sm: 0 1px 2px rgba(0,0,0,0.04);
20
- --shadow-md: 0 2px 8px rgba(0,0,0,0.06), 0 0 1px rgba(0,0,0,0.03);
21
- --shadow-lg: 0 8px 24px rgba(0,0,0,0.08), 0 2px 4px rgba(0,0,0,0.03);
22
- --shadow-xl: 0 16px 48px rgba(0,0,0,0.1), 0 4px 12px rgba(0,0,0,0.04);
23
-
24
- /* ─── Typography ─── */
25
- --text: #1a1a17;
26
- --text-secondary: #3d3d36;
27
- --text-dim: #6b6b60;
28
- --text-muted: #9c9c90;
29
-
30
- /* ─── Accent Colors ─── */
31
- --purple: #6d28d9;
32
- --purple-light: #f3eefe;
33
- --purple-border: #c4b5fd;
34
- --green: #0d7c5f;
35
- --green-light: #ecf7f3;
36
- --green-border: #a7d8c8;
37
- --red: #c0392b;
38
- --red-light: #fdf0ee;
39
- --red-border: #e8a89e;
40
- --yellow: #b8860b;
41
- --yellow-light: #fdf6e3;
42
- --yellow-border: #e0cc8a;
43
- --blue: #2563eb;
44
- --blue-light: #eff6ff;
45
- --blue-border: #bfdbfe;
46
- --teal: #0d7c5f;
47
- --teal-light: #e8f5f0;
48
-
49
- /* ─── Radius & Type ─── */
50
- --radius: 8px;
51
- --radius-lg: 12px;
52
- --radius-xl: 16px;
53
- --font: 'Inter', -apple-system, BlinkMacSystemFont, 'SF Pro Display', system-ui, sans-serif;
54
- --font-mono: 'JetBrains Mono', 'SF Mono', 'Fira Code', monospace;
55
- }
56
-
57
- /* ─── Reset ─── */
58
- * { box-sizing: border-box; margin: 0; padding: 0; }
2
+ --bg: #f7f4ef;
3
+ --bg-elevated: rgba(255, 255, 255, 0.84);
4
+ --bg-card: rgba(255, 255, 255, 0.92);
5
+ --bg-card-strong: #ffffff;
6
+ --bg-section: #efebe4;
7
+ --bg-section-strong: #e8e2d9;
8
+ --bg-hover: #ece6dd;
9
+ --bg-input: #f5f2ec;
10
+ --bg-sidebar: rgba(250, 248, 243, 0.88);
11
+ --bg-soft-purple: linear-gradient(140deg, rgba(130, 95, 255, 0.12), rgba(255, 255, 255, 0.72));
12
+ --bg-soft-green: linear-gradient(140deg, rgba(17, 132, 98, 0.12), rgba(255, 255, 255, 0.72));
13
+ --bg-soft-blue: linear-gradient(140deg, rgba(38, 97, 214, 0.12), rgba(255, 255, 255, 0.72));
14
+ --bg-soft-amber: linear-gradient(140deg, rgba(209, 141, 20, 0.14), rgba(255, 255, 255, 0.72));
15
+ --bg-soft-red: linear-gradient(140deg, rgba(203, 79, 64, 0.14), rgba(255, 255, 255, 0.72));
59
16
 
60
- body {
17
+ --border: rgba(130, 112, 91, 0.18);
18
+ --border-strong: rgba(100, 82, 63, 0.24);
19
+ --border-focus: rgba(62, 118, 175, 0.36);
20
+ --border-subtle: rgba(130, 112, 91, 0.1);
21
+
22
+ --shadow-sm: 0 1px 2px rgba(60, 42, 16, 0.04), 0 10px 16px rgba(73, 48, 18, 0.02);
23
+ --shadow-md: 0 6px 18px rgba(52, 34, 15, 0.07), 0 1px 1px rgba(52, 34, 15, 0.05);
24
+ --shadow-lg: 0 18px 38px rgba(52, 34, 15, 0.1), 0 4px 12px rgba(52, 34, 15, 0.05);
25
+ --shadow-xl: 0 30px 80px rgba(48, 30, 12, 0.16), 0 8px 24px rgba(48, 30, 12, 0.08);
26
+
27
+ --text: #171613;
28
+ --text-secondary: #3a3833;
29
+ --text-dim: #615d56;
30
+ --text-muted: #8c877f;
31
+
32
+ --purple: #6b49df;
33
+ --purple-strong: #5630c9;
34
+ --purple-light: #f2edff;
35
+ --purple-border: #cec2ff;
36
+ --green: #0f8363;
37
+ --green-strong: #0a6b50;
38
+ --green-light: #ebf7f2;
39
+ --green-border: #b6e1d3;
40
+ --red: #cb4f40;
41
+ --red-strong: #a63d31;
42
+ --red-light: #fcedea;
43
+ --red-border: #f1b9b2;
44
+ --yellow: #c18a17;
45
+ --yellow-strong: #9b6d12;
46
+ --yellow-light: #fff5dc;
47
+ --yellow-border: #efd695;
48
+ --blue: #2d66d8;
49
+ --blue-strong: #1f4fb0;
50
+ --blue-light: #edf4ff;
51
+ --blue-border: #bfd4ff;
52
+ --teal: #12796d;
53
+ --teal-light: #e6f7f4;
54
+
55
+ --radius-sm: 10px;
56
+ --radius: 14px;
57
+ --radius-lg: 18px;
58
+ --radius-xl: 24px;
59
+
60
+ --font: 'Inter', 'SF Pro Display', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
61
+ --font-mono: 'JetBrains Mono', 'SFMono-Regular', 'SF Mono', monospace;
62
+ }
63
+
64
+ * {
65
+ box-sizing: border-box;
66
+ margin: 0;
67
+ padding: 0;
68
+ }
69
+
70
+ html {
71
+ min-height: 100%;
61
72
  background: var(--bg);
73
+ }
74
+
75
+ body {
76
+ min-height: 100vh;
62
77
  color: var(--text);
63
78
  font-family: var(--font);
64
- -webkit-font-smoothing: antialiased;
65
- -moz-osx-font-smoothing: grayscale;
66
79
  font-size: 14px;
67
80
  line-height: 1.6;
81
+ -webkit-font-smoothing: antialiased;
82
+ -moz-osx-font-smoothing: grayscale;
68
83
  font-feature-settings: 'cv02', 'cv03', 'cv04', 'cv11';
84
+ background:
85
+ radial-gradient(circle at top left, rgba(112, 92, 255, 0.08), transparent 28%),
86
+ radial-gradient(circle at right 16% top 12%, rgba(10, 131, 99, 0.08), transparent 22%),
87
+ radial-gradient(circle at left 20% bottom 12%, rgba(45, 102, 216, 0.06), transparent 24%),
88
+ linear-gradient(180deg, #faf7f2 0%, #f5f1eb 36%, #f4efe8 100%);
89
+ }
90
+
91
+ ::selection {
92
+ background: rgba(18, 121, 109, 0.18);
93
+ color: var(--text);
94
+ }
95
+
96
+ a {
97
+ color: inherit;
98
+ text-decoration: none;
99
+ transition: color 0.18s ease, opacity 0.18s ease;
100
+ }
101
+
102
+ a:hover {
103
+ color: inherit;
69
104
  }
70
105
 
71
- ::selection { background: var(--teal-light); color: var(--teal); }
72
- a { color: var(--teal); text-decoration: none; transition: color 0.15s; }
73
- a:hover { color: #0a6149; text-decoration: none; }
106
+ button,
107
+ input,
108
+ textarea,
109
+ select {
110
+ font: inherit;
111
+ }
112
+
113
+ button {
114
+ -webkit-tap-highlight-color: transparent;
115
+ }
74
116
 
75
117
  code {
76
118
  font-family: var(--font-mono);
77
119
  font-size: 12px;
78
120
  padding: 2px 7px;
79
121
  background: var(--bg-section);
80
- border-radius: 5px;
81
122
  color: var(--text-secondary);
82
- font-feature-settings: normal;
123
+ border-radius: 6px;
124
+ }
125
+
126
+ .app-shell {
127
+ min-height: 100vh;
128
+ display: flex;
83
129
  }
84
130
 
85
- /* ════════════════════════════════════════════════════════════════
86
- SIDEBAR — Warm, light, refined
87
- ════════════════════════════════════════════════════════════════ */
88
131
  .sidebar {
89
- width: 220px;
90
- background: var(--bg-sidebar);
91
- border-right: 1px solid var(--border);
92
- padding: 0;
132
+ width: 284px;
93
133
  flex-shrink: 0;
94
134
  position: sticky;
95
135
  top: 0;
96
136
  height: 100vh;
97
137
  display: flex;
98
138
  flex-direction: column;
139
+ background: linear-gradient(180deg, rgba(252, 250, 246, 0.92) 0%, rgba(248, 244, 238, 0.88) 100%);
140
+ border-right: 1px solid var(--border);
141
+ backdrop-filter: blur(18px);
142
+ box-shadow: inset -1px 0 0 rgba(255,255,255,0.45);
99
143
  z-index: 20;
100
144
  }
101
145
 
102
146
  .sidebar-logo {
103
147
  display: flex;
104
- align-items: center;
105
- gap: 11px;
106
- padding: 22px 18px 18px;
107
- border-bottom: 1px solid var(--border);
148
+ gap: 14px;
149
+ align-items: flex-start;
150
+ padding: 24px 22px 18px;
151
+ border-bottom: 1px solid var(--border-subtle);
108
152
  }
109
153
 
110
154
  .logo-icon {
111
- width: 34px;
112
- height: 34px;
113
- border-radius: 10px;
114
- background: linear-gradient(135deg, #0d7c5f, #2563eb);
155
+ width: 42px;
156
+ height: 42px;
157
+ flex-shrink: 0;
158
+ border-radius: 14px;
115
159
  display: flex;
116
160
  align-items: center;
117
161
  justify-content: center;
118
- color: #fff;
119
- flex-shrink: 0;
120
- box-shadow: 0 2px 10px rgba(13,124,95,0.25);
162
+ color: white;
163
+ background: linear-gradient(145deg, #1d8f7b 0%, #3256e4 52%, #7b55f8 100%);
164
+ box-shadow: 0 10px 24px rgba(63, 82, 181, 0.18);
165
+ }
166
+
167
+ .sidebar-brand {
168
+ min-width: 0;
169
+ }
170
+
171
+ .sidebar-title {
172
+ font-size: 18px;
173
+ font-weight: 800;
174
+ letter-spacing: -0.5px;
175
+ line-height: 1.1;
176
+ }
177
+
178
+ .sidebar-subtitle {
179
+ margin-top: 3px;
180
+ color: var(--text-dim);
181
+ font-size: 12px;
182
+ line-height: 1.45;
183
+ }
184
+
185
+ .sidebar-meta {
186
+ margin-top: 10px;
187
+ display: flex;
188
+ align-items: center;
189
+ gap: 8px;
190
+ flex-wrap: wrap;
191
+ }
192
+
193
+ .sidebar-signal {
194
+ display: inline-flex;
195
+ align-items: center;
196
+ gap: 7px;
197
+ padding: 4px 10px;
198
+ border-radius: 999px;
199
+ background: rgba(15, 131, 99, 0.09);
200
+ color: var(--green-strong);
201
+ font-size: 11px;
202
+ font-weight: 600;
203
+ }
204
+
205
+ .sidebar-signal-dot {
206
+ width: 7px;
207
+ height: 7px;
208
+ border-radius: 999px;
209
+ background: var(--green);
210
+ box-shadow: 0 0 0 4px rgba(15, 131, 99, 0.1);
211
+ }
212
+
213
+ .sidebar-content {
214
+ flex: 1;
215
+ overflow-y: auto;
216
+ padding: 18px 12px 24px;
217
+ }
218
+
219
+ .sidebar-group + .sidebar-group {
220
+ margin-top: 18px;
221
+ }
222
+
223
+ .sidebar-group-label {
224
+ padding: 0 12px 10px;
225
+ color: var(--text-muted);
226
+ font-size: 10px;
227
+ font-weight: 700;
228
+ letter-spacing: 1.7px;
229
+ text-transform: uppercase;
230
+ }
231
+
232
+ .sidebar-group-items {
233
+ display: flex;
234
+ flex-direction: column;
235
+ gap: 4px;
121
236
  }
122
237
 
123
238
  .nav-item {
239
+ position: relative;
124
240
  display: flex;
125
241
  align-items: center;
126
- gap: 10px;
127
- padding: 9px 14px;
128
- border-radius: 8px;
242
+ gap: 11px;
243
+ padding: 11px 12px;
244
+ border-radius: 14px;
129
245
  color: var(--text-dim);
130
246
  font-size: 13px;
131
- font-weight: 500;
132
- margin: 1px 6px;
133
- text-decoration: none;
134
- transition: all 0.15s ease;
247
+ font-weight: 600;
248
+ transition: transform 0.16s ease, background 0.16s ease, color 0.16s ease, box-shadow 0.16s ease;
135
249
  }
250
+
136
251
  .nav-item:hover {
137
- background: var(--bg-hover);
252
+ background: rgba(255,255,255,0.68);
138
253
  color: var(--text);
139
- text-decoration: none;
254
+ box-shadow: inset 0 0 0 1px rgba(255,255,255,0.5);
255
+ transform: translateX(1px);
256
+ }
257
+
258
+ .nav-item.active {
259
+ color: var(--text);
260
+ background: linear-gradient(145deg, rgba(255,255,255,0.96) 0%, rgba(248, 245, 240, 0.92) 100%);
261
+ box-shadow: var(--shadow-md), inset 0 0 0 1px rgba(255,255,255,0.7);
262
+ }
263
+
264
+ .nav-item.active::before {
265
+ content: '';
266
+ position: absolute;
267
+ left: 8px;
268
+ top: 10px;
269
+ bottom: 10px;
270
+ width: 3px;
271
+ border-radius: 999px;
272
+ background: linear-gradient(180deg, var(--green) 0%, var(--blue) 55%, var(--purple) 100%);
273
+ }
274
+
275
+ .nav-icon {
276
+ width: 22px;
277
+ height: 22px;
278
+ border-radius: 8px;
279
+ display: inline-flex;
280
+ align-items: center;
281
+ justify-content: center;
282
+ background: rgba(255,255,255,0.54);
283
+ color: inherit;
284
+ flex-shrink: 0;
285
+ }
286
+
287
+ .nav-item.active .nav-icon {
288
+ background: linear-gradient(145deg, rgba(18,121,109,0.1), rgba(107,73,223,0.12));
140
289
  }
141
290
 
142
291
  .sidebar-footer {
143
- padding: 14px 18px;
144
- border-top: 1px solid var(--border);
145
- font-size: 11px;
292
+ border-top: 1px solid var(--border-subtle);
293
+ padding: 18px 20px 20px;
294
+ background: linear-gradient(180deg, rgba(255,255,255,0.4), rgba(255,255,255,0.15));
295
+ }
296
+
297
+ .sidebar-footer-grid {
298
+ display: grid;
299
+ gap: 12px;
300
+ }
301
+
302
+ .sidebar-footer-label {
303
+ font-size: 10px;
146
304
  color: var(--text-muted);
147
- display: flex;
148
- justify-content: space-between;
305
+ font-weight: 700;
306
+ letter-spacing: 1.4px;
307
+ text-transform: uppercase;
308
+ margin-bottom: 5px;
309
+ }
310
+
311
+ .sidebar-footer-value {
312
+ color: var(--text-dim);
313
+ font-size: 11px;
314
+ line-height: 1.55;
315
+ }
316
+
317
+ .sidebar-footer-link {
318
+ display: inline-flex;
319
+ width: fit-content;
149
320
  align-items: center;
321
+ gap: 6px;
322
+ color: var(--text-secondary);
323
+ font-size: 12px;
324
+ font-weight: 700;
150
325
  }
151
326
 
152
327
  .main-content {
153
328
  flex: 1;
154
- padding: 36px 44px;
155
- max-width: 1320px;
156
- min-height: 100vh;
329
+ min-width: 0;
330
+ padding: 30px 32px 56px;
331
+ }
332
+
333
+ .main-content-inner {
334
+ width: min(1440px, 100%);
335
+ margin: 0 auto;
336
+ }
337
+
338
+ .page-hero-card,
339
+ .page-header {
340
+ position: relative;
341
+ overflow: hidden;
342
+ margin-bottom: 24px;
343
+ padding: 28px 30px;
344
+ border-radius: var(--radius-xl);
345
+ border: 1px solid var(--border);
346
+ background:
347
+ radial-gradient(circle at top right, rgba(107, 73, 223, 0.08), transparent 28%),
348
+ radial-gradient(circle at left center, rgba(18, 121, 109, 0.08), transparent 26%),
349
+ linear-gradient(160deg, rgba(255,255,255,0.92) 0%, rgba(252,249,244,0.88) 100%);
350
+ box-shadow: var(--shadow-md);
351
+ }
352
+
353
+ .page-hero-grid {
354
+ display: flex;
355
+ align-items: flex-start;
356
+ justify-content: space-between;
357
+ gap: 20px;
358
+ }
359
+
360
+ .page-eyebrow {
361
+ display: inline-flex;
362
+ align-items: center;
363
+ gap: 7px;
364
+ margin-bottom: 14px;
365
+ padding: 5px 12px;
366
+ border-radius: 999px;
367
+ background: rgba(18, 121, 109, 0.08);
368
+ color: var(--teal);
369
+ font-size: 10px;
370
+ font-weight: 800;
371
+ letter-spacing: 1.5px;
372
+ text-transform: uppercase;
373
+ }
374
+
375
+ .page-title {
376
+ font-size: clamp(28px, 3vw, 42px);
377
+ line-height: 1.02;
378
+ letter-spacing: -1.4px;
379
+ font-weight: 850;
380
+ }
381
+
382
+ .page-desc {
383
+ margin-top: 10px;
384
+ max-width: 780px;
385
+ color: var(--text-dim);
386
+ font-size: 15px;
387
+ line-height: 1.72;
388
+ }
389
+
390
+ .page-hero-actions {
391
+ min-width: fit-content;
392
+ }
393
+
394
+ .hero-chip-row {
395
+ display: flex;
396
+ flex-wrap: wrap;
397
+ gap: 8px;
398
+ margin-top: 18px;
399
+ }
400
+
401
+ .hero-chip {
402
+ display: inline-flex;
403
+ align-items: center;
404
+ gap: 6px;
405
+ padding: 6px 11px;
406
+ border-radius: 999px;
407
+ border: 1px solid transparent;
408
+ font-size: 11px;
409
+ font-weight: 700;
410
+ }
411
+
412
+ .hero-chip-neutral { background: rgba(87, 74, 60, 0.08); color: var(--text-secondary); border-color: rgba(87, 74, 60, 0.08); }
413
+ .hero-chip-purple { background: var(--purple-light); color: var(--purple-strong); border-color: var(--purple-border); }
414
+ .hero-chip-green { background: var(--green-light); color: var(--green-strong); border-color: var(--green-border); }
415
+ .hero-chip-blue { background: var(--blue-light); color: var(--blue-strong); border-color: var(--blue-border); }
416
+ .hero-chip-yellow { background: var(--yellow-light); color: var(--yellow-strong); border-color: var(--yellow-border); }
417
+ .hero-chip-red { background: var(--red-light); color: var(--red-strong); border-color: var(--red-border); }
418
+
419
+ .card {
420
+ background: linear-gradient(180deg, rgba(255,255,255,0.94), rgba(255,255,255,0.88));
421
+ border: 1px solid var(--border);
422
+ border-radius: var(--radius-lg);
423
+ box-shadow: var(--shadow-sm);
424
+ transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
425
+ }
426
+
427
+ .card:hover {
428
+ border-color: var(--border-strong);
429
+ box-shadow: var(--shadow-md);
430
+ }
431
+
432
+ .card-body {
433
+ padding: 22px;
434
+ }
435
+
436
+ .section-frame {
437
+ position: relative;
438
+ overflow: hidden;
439
+ border-radius: var(--radius-xl);
440
+ border: 1px solid var(--border);
441
+ background: linear-gradient(180deg, rgba(255,255,255,0.93), rgba(255,255,255,0.9));
442
+ box-shadow: var(--shadow-md);
443
+ }
444
+
445
+ .section-frame::before {
446
+ content: '';
447
+ position: absolute;
448
+ inset: 0;
449
+ pointer-events: none;
450
+ background: radial-gradient(circle at top right, rgba(255,255,255,0.52), transparent 24%);
451
+ }
452
+
453
+ .section-frame-neutral { background: linear-gradient(180deg, rgba(255,255,255,0.93), rgba(255,255,255,0.9)); }
454
+ .section-frame-purple { background: linear-gradient(180deg, rgba(255,255,255,0.95), rgba(250,246,255,0.92)); }
455
+ .section-frame-green { background: linear-gradient(180deg, rgba(255,255,255,0.95), rgba(244,252,248,0.92)); }
456
+ .section-frame-blue { background: linear-gradient(180deg, rgba(255,255,255,0.95), rgba(244,248,255,0.92)); }
457
+ .section-frame-yellow { background: linear-gradient(180deg, rgba(255,255,255,0.95), rgba(255,250,240,0.92)); }
458
+ .section-frame-red { background: linear-gradient(180deg, rgba(255,255,255,0.95), rgba(255,246,244,0.92)); }
459
+
460
+ .section-frame-header {
461
+ display: flex;
462
+ justify-content: space-between;
463
+ align-items: flex-start;
464
+ gap: 18px;
465
+ padding: 22px 24px 0;
466
+ }
467
+
468
+ .section-frame-body {
469
+ padding: 18px 24px 24px;
470
+ }
471
+
472
+ .section-frame-eyebrow,
473
+ .card-header-label,
474
+ .section-label {
475
+ display: inline-flex;
476
+ align-items: center;
477
+ gap: 8px;
478
+ color: var(--text-muted);
479
+ font-size: 10px;
480
+ font-weight: 800;
481
+ letter-spacing: 1.6px;
482
+ text-transform: uppercase;
483
+ }
484
+
485
+ .section-frame-title {
486
+ margin-top: 8px;
487
+ font-size: 20px;
488
+ font-weight: 800;
489
+ letter-spacing: -0.55px;
490
+ line-height: 1.15;
491
+ }
492
+
493
+ .section-frame-description {
494
+ margin-top: 8px;
495
+ color: var(--text-dim);
496
+ font-size: 13px;
497
+ line-height: 1.65;
498
+ max-width: 760px;
499
+ }
500
+
501
+ .section-frame-actions {
502
+ min-width: fit-content;
503
+ }
504
+
505
+ .metric-card-anchor {
506
+ display: block;
507
+ }
508
+
509
+ .metric-card {
510
+ height: 100%;
511
+ padding: 18px 18px 16px;
512
+ border-radius: var(--radius-lg);
513
+ border: 1px solid var(--border);
514
+ background: linear-gradient(180deg, rgba(255,255,255,0.96), rgba(255,255,255,0.88));
515
+ box-shadow: var(--shadow-sm);
516
+ transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
517
+ }
518
+
519
+ .metric-card-link:hover {
520
+ transform: translateY(-2px);
521
+ box-shadow: var(--shadow-md);
522
+ }
523
+
524
+ .metric-card-header {
525
+ display: flex;
526
+ justify-content: space-between;
527
+ gap: 16px;
528
+ }
529
+
530
+ .metric-card-label {
531
+ color: var(--text-dim);
532
+ font-size: 11px;
533
+ font-weight: 700;
534
+ letter-spacing: 0.04em;
535
+ }
536
+
537
+ .metric-card-value {
538
+ margin-top: 8px;
539
+ font-size: 34px;
540
+ font-weight: 850;
541
+ line-height: 1;
542
+ letter-spacing: -1.4px;
543
+ font-variant-numeric: tabular-nums;
544
+ }
545
+
546
+ .metric-card-sublabel {
547
+ margin-top: 12px;
548
+ font-size: 12px;
549
+ color: var(--text-dim);
550
+ line-height: 1.55;
551
+ }
552
+
553
+ .metric-card-icon {
554
+ width: 42px;
555
+ height: 42px;
556
+ flex-shrink: 0;
557
+ display: inline-flex;
558
+ align-items: center;
559
+ justify-content: center;
560
+ border-radius: 14px;
561
+ background: rgba(255,255,255,0.6);
562
+ border: 1px solid rgba(255,255,255,0.5);
563
+ font-size: 18px;
564
+ }
565
+
566
+ .metric-card-purple { background: var(--bg-soft-purple); }
567
+ .metric-card-purple .metric-card-value, .metric-card-purple .metric-card-icon { color: var(--purple-strong); }
568
+ .metric-card-green { background: var(--bg-soft-green); }
569
+ .metric-card-green .metric-card-value, .metric-card-green .metric-card-icon { color: var(--green-strong); }
570
+ .metric-card-blue { background: var(--bg-soft-blue); }
571
+ .metric-card-blue .metric-card-value, .metric-card-blue .metric-card-icon { color: var(--blue-strong); }
572
+ .metric-card-yellow { background: var(--bg-soft-amber); }
573
+ .metric-card-yellow .metric-card-value, .metric-card-yellow .metric-card-icon { color: var(--yellow-strong); }
574
+ .metric-card-red { background: var(--bg-soft-red); }
575
+ .metric-card-red .metric-card-value, .metric-card-red .metric-card-icon { color: var(--red-strong); }
576
+ .metric-card-neutral .metric-card-value, .metric-card-neutral .metric-card-icon { color: var(--text); }
577
+
578
+ .badge {
579
+ display: inline-flex;
580
+ align-items: center;
581
+ gap: 4px;
582
+ padding: 5px 10px;
583
+ border-radius: 999px;
584
+ border: 1px solid transparent;
585
+ font-size: 10px;
586
+ font-weight: 700;
587
+ letter-spacing: 0.02em;
588
+ white-space: nowrap;
589
+ }
590
+
591
+ .badge-purple { background: var(--purple-light); color: var(--purple-strong); border-color: var(--purple-border); }
592
+ .badge-green { background: var(--green-light); color: var(--green-strong); border-color: var(--green-border); }
593
+ .badge-red { background: var(--red-light); color: var(--red-strong); border-color: var(--red-border); }
594
+ .badge-yellow { background: var(--yellow-light); color: var(--yellow-strong); border-color: var(--yellow-border); }
595
+ .badge-blue { background: var(--blue-light); color: var(--blue-strong); border-color: var(--blue-border); }
596
+ .badge-gray { background: rgba(97, 93, 86, 0.08); color: var(--text-dim); border-color: rgba(97, 93, 86, 0.08); }
597
+
598
+ .score-track {
599
+ position: relative;
600
+ overflow: hidden;
601
+ height: 6px;
602
+ flex: 1;
603
+ background: rgba(97, 93, 86, 0.12);
604
+ border-radius: 999px;
605
+ }
606
+
607
+ .score-fill {
608
+ height: 100%;
609
+ border-radius: 999px;
610
+ transition: width 0.6s cubic-bezier(0.22, 1, 0.36, 1);
611
+ }
612
+
613
+ .score-pill {
614
+ display: inline-flex;
615
+ align-items: center;
616
+ gap: 4px;
617
+ padding: 4px 9px;
618
+ border-radius: 999px;
619
+ background: rgba(255,255,255,0.7);
620
+ border: 1px solid var(--border-subtle);
621
+ font-size: 11px;
622
+ font-weight: 700;
623
+ }
624
+
625
+ .tab-bar {
626
+ display: inline-flex;
627
+ align-items: center;
628
+ gap: 4px;
629
+ margin-bottom: 24px;
630
+ padding: 5px;
631
+ border-radius: 999px;
632
+ background: rgba(255,255,255,0.72);
633
+ border: 1px solid var(--border);
634
+ box-shadow: var(--shadow-sm);
635
+ }
636
+
637
+ .tab-item {
638
+ border: none;
639
+ background: transparent;
640
+ padding: 9px 16px;
641
+ border-radius: 999px;
642
+ color: var(--text-dim);
643
+ font-size: 13px;
644
+ font-weight: 700;
645
+ cursor: pointer;
646
+ transition: all 0.18s ease;
647
+ }
648
+
649
+ .tab-item:hover {
650
+ color: var(--text-secondary);
651
+ background: rgba(255,255,255,0.82);
652
+ }
653
+
654
+ .tab-item.active {
655
+ color: var(--text);
656
+ background: linear-gradient(180deg, rgba(255,255,255,1), rgba(247,244,239,0.98));
657
+ box-shadow: var(--shadow-sm);
658
+ }
659
+
660
+ .stat-card {
661
+ background: linear-gradient(180deg, rgba(255,255,255,0.96), rgba(255,255,255,0.88));
662
+ border: 1px solid var(--border);
663
+ border-radius: var(--radius-lg);
664
+ padding: 22px;
665
+ box-shadow: var(--shadow-sm);
666
+ }
667
+
668
+ .stat-value {
669
+ font-size: 34px;
670
+ line-height: 1;
671
+ font-weight: 850;
672
+ letter-spacing: -1.4px;
673
+ }
674
+
675
+ .stat-label {
676
+ margin-top: 8px;
677
+ font-size: 12px;
678
+ color: var(--text-dim);
679
+ font-weight: 600;
680
+ }
681
+
682
+ .empty-state {
683
+ display: flex;
684
+ flex-direction: column;
685
+ align-items: center;
686
+ justify-content: center;
687
+ padding: 56px 24px;
688
+ text-align: center;
689
+ }
690
+
691
+ .empty-state-icon {
692
+ width: 56px;
693
+ height: 56px;
694
+ display: flex;
695
+ align-items: center;
696
+ justify-content: center;
697
+ border-radius: 18px;
698
+ background: linear-gradient(180deg, rgba(255,255,255,0.9), rgba(239,235,228,0.96));
699
+ box-shadow: inset 0 0 0 1px rgba(255,255,255,0.8), var(--shadow-sm);
700
+ color: var(--text-muted);
701
+ margin-bottom: 16px;
702
+ }
703
+
704
+ .empty-state-title {
705
+ font-size: 18px;
706
+ font-weight: 800;
707
+ letter-spacing: -0.4px;
708
+ }
709
+
710
+ .empty-state-desc {
711
+ margin-top: 8px;
712
+ color: var(--text-dim);
713
+ font-size: 13px;
714
+ line-height: 1.65;
715
+ max-width: 420px;
716
+ }
717
+
718
+ .console-panel {
719
+ overflow: hidden;
720
+ border-radius: var(--radius-lg);
721
+ border: 1px solid var(--border);
722
+ background: linear-gradient(180deg, rgba(255,255,255,0.96), rgba(255,255,255,0.92));
723
+ box-shadow: var(--shadow-md);
724
+ }
725
+
726
+ .console-panel-green { border-color: var(--green-border); }
727
+ .console-panel-red { border-color: var(--red-border); }
728
+ .console-panel-yellow { border-color: var(--yellow-border); }
729
+ .console-panel-blue { border-color: var(--blue-border); }
730
+ .console-panel-purple { border-color: var(--purple-border); }
731
+
732
+ .console-panel-header {
733
+ display: flex;
734
+ align-items: center;
735
+ justify-content: space-between;
736
+ gap: 12px;
737
+ padding: 12px 16px;
738
+ background: linear-gradient(180deg, rgba(250,248,244,0.96), rgba(242,238,231,0.92));
739
+ border-bottom: 1px solid var(--border);
740
+ }
741
+
742
+ .console-panel-title {
743
+ font-size: 12px;
744
+ font-weight: 700;
745
+ color: var(--text-secondary);
746
+ }
747
+
748
+ .console-panel-actions {
749
+ display: flex;
750
+ gap: 8px;
751
+ }
752
+
753
+ .console-panel-body {
754
+ max-height: 420px;
755
+ overflow: auto;
756
+ padding: 0;
757
+ }
758
+
759
+ .console-panel-body pre,
760
+ .console-panel-body code,
761
+ .console-panel-body {
762
+ font-family: var(--font-mono);
763
+ }
764
+
765
+ .grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
766
+ .grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
767
+ .grid-4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
768
+ .grid-5 { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
769
+ .grid-auto { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 16px; }
770
+
771
+ .overview-grid {
772
+ display: grid;
773
+ gap: 22px;
774
+ }
775
+
776
+ .quick-actions-grid {
777
+ display: grid;
778
+ grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
779
+ gap: 12px;
780
+ }
781
+
782
+ .action-card {
783
+ position: relative;
784
+ overflow: hidden;
785
+ display: flex;
786
+ flex-direction: column;
787
+ gap: 10px;
788
+ min-height: 156px;
789
+ padding: 18px;
790
+ border-radius: var(--radius-lg);
791
+ border: 1px solid var(--border);
792
+ background: linear-gradient(180deg, rgba(255,255,255,0.96), rgba(255,255,255,0.9));
793
+ box-shadow: var(--shadow-sm);
794
+ cursor: pointer;
795
+ text-align: left;
796
+ transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease, opacity 0.2s ease;
797
+ }
798
+
799
+ .action-card::after {
800
+ content: '';
801
+ position: absolute;
802
+ inset: auto 18px 0;
803
+ height: 2px;
804
+ background: linear-gradient(90deg, transparent, currentColor, transparent);
805
+ opacity: 0.18;
806
+ }
807
+
808
+ .action-card:hover {
809
+ transform: translateY(-3px);
810
+ box-shadow: var(--shadow-lg);
811
+ border-color: var(--border-strong);
812
+ }
813
+
814
+ .action-card:disabled {
815
+ cursor: not-allowed;
816
+ }
817
+
818
+ .action-card-header {
819
+ display: flex;
820
+ align-items: center;
821
+ gap: 10px;
822
+ }
823
+
824
+ .action-card-icon {
825
+ width: 34px;
826
+ height: 34px;
827
+ border-radius: 12px;
828
+ display: inline-flex;
829
+ align-items: center;
830
+ justify-content: center;
831
+ background: rgba(255,255,255,0.72);
832
+ box-shadow: inset 0 0 0 1px rgba(255,255,255,0.8);
833
+ }
834
+
835
+ .action-card-title {
836
+ font-size: 14px;
837
+ font-weight: 800;
838
+ letter-spacing: -0.2px;
839
+ }
840
+
841
+ .action-card-subtitle {
842
+ color: var(--text-dim);
843
+ font-size: 12px;
844
+ line-height: 1.6;
845
+ font-weight: 500;
846
+ }
847
+
848
+ .flow-diagram {
849
+ display: flex;
850
+ flex-wrap: wrap;
851
+ align-items: center;
852
+ gap: 6px;
853
+ margin-top: auto;
854
+ }
855
+
856
+ .flow-step {
857
+ display: inline-flex;
858
+ align-items: center;
859
+ padding: 4px 8px;
860
+ border-radius: 999px;
861
+ font-size: 10px;
862
+ font-weight: 700;
863
+ background: rgba(255,255,255,0.72);
864
+ border: 1px solid rgba(130,112,91,0.12);
865
+ }
866
+
867
+ .flow-step-terminal {
868
+ box-shadow: inset 0 0 0 1px rgba(255,255,255,0.4);
869
+ }
870
+
871
+ .flow-connector {
872
+ color: var(--text-muted);
873
+ font-size: 10px;
874
+ font-weight: 700;
875
+ }
876
+
877
+ .signal-list {
878
+ display: grid;
879
+ gap: 10px;
880
+ }
881
+
882
+ .signal-row {
883
+ display: flex;
884
+ gap: 14px;
885
+ align-items: flex-start;
886
+ padding: 14px 16px;
887
+ border-radius: var(--radius);
888
+ background: rgba(255,255,255,0.64);
889
+ border: 1px solid var(--border-subtle);
890
+ }
891
+
892
+ .signal-row-attention {
893
+ background: linear-gradient(180deg, rgba(255,245,220,0.86), rgba(255,251,241,0.82));
894
+ border-color: var(--yellow-border);
895
+ }
896
+
897
+ .signal-dot {
898
+ width: 10px;
899
+ height: 10px;
900
+ margin-top: 5px;
901
+ flex-shrink: 0;
902
+ border-radius: 999px;
903
+ background: var(--yellow);
904
+ box-shadow: 0 0 0 6px rgba(193, 138, 23, 0.08);
905
+ }
906
+
907
+ .signal-title {
908
+ font-size: 13px;
909
+ font-weight: 700;
910
+ color: var(--text);
911
+ }
912
+
913
+ .signal-text {
914
+ margin-top: 4px;
915
+ color: var(--text-dim);
916
+ font-size: 12px;
917
+ line-height: 1.6;
918
+ }
919
+
920
+ .summary-list {
921
+ display: grid;
922
+ gap: 10px;
923
+ }
924
+
925
+ .summary-row {
926
+ display: flex;
927
+ justify-content: space-between;
928
+ align-items: center;
929
+ gap: 14px;
930
+ padding: 12px 14px;
931
+ border-radius: var(--radius);
932
+ background: rgba(255,255,255,0.64);
933
+ border: 1px solid var(--border-subtle);
934
+ }
935
+
936
+ .summary-row-main {
937
+ min-width: 0;
938
+ }
939
+
940
+ .summary-row-title {
941
+ font-size: 13px;
942
+ font-weight: 700;
943
+ color: var(--text);
944
+ }
945
+
946
+ .summary-row-meta {
947
+ margin-top: 3px;
948
+ color: var(--text-dim);
949
+ font-size: 11px;
950
+ }
951
+
952
+ .skill-score-grid {
953
+ display: grid;
954
+ grid-template-columns: repeat(2, minmax(0, 1fr));
955
+ gap: 10px;
956
+ }
957
+
958
+ .skill-score-row {
959
+ display: flex;
960
+ justify-content: space-between;
961
+ align-items: center;
962
+ gap: 10px;
963
+ padding: 12px 14px;
964
+ border-radius: var(--radius);
965
+ background: rgba(255,255,255,0.66);
966
+ border: 1px solid var(--border-subtle);
967
+ }
968
+
969
+ .skill-score-main {
970
+ min-width: 0;
971
+ }
972
+
973
+ .skill-score-name {
974
+ display: flex;
975
+ align-items: center;
976
+ gap: 8px;
977
+ min-width: 0;
978
+ }
979
+
980
+ .skill-score-name span:first-child {
981
+ overflow: hidden;
982
+ text-overflow: ellipsis;
983
+ white-space: nowrap;
984
+ font-size: 13px;
985
+ font-weight: 700;
986
+ }
987
+
988
+ .skill-score-value {
989
+ display: flex;
990
+ align-items: center;
991
+ gap: 8px;
992
+ min-width: 100px;
157
993
  }
158
994
 
159
- /* ════════════════════════════════════════════════════════════════
160
- PAGE HEADERS
161
- ════════════════════════════════════════════════════════════════ */
162
- .page-header { margin-bottom: 28px; }
163
- .page-title {
164
- font-size: 26px;
165
- font-weight: 800;
166
- letter-spacing: -0.6px;
167
- color: var(--text);
168
- line-height: 1.15;
169
- }
170
- .page-desc {
171
- font-size: 14px;
172
- color: var(--text-dim);
173
- margin-top: 6px;
174
- line-height: 1.5;
175
- font-weight: 400;
995
+ .chronicle-list {
996
+ position: relative;
997
+ display: grid;
998
+ gap: 18px;
176
999
  }
177
1000
 
178
- /* ════════════════════════════════════════════════════════════════
179
- CARDS
180
- ════════════════════════════════════════════════════════════════ */
181
- .card {
182
- background: var(--bg-card);
183
- border: 1px solid var(--border);
184
- border-radius: var(--radius-lg);
185
- box-shadow: var(--shadow-sm);
186
- transition: box-shadow 0.25s ease, border-color 0.25s ease;
1001
+ .chronicle-list::before {
1002
+ content: '';
1003
+ position: absolute;
1004
+ top: 8px;
1005
+ bottom: 8px;
1006
+ left: 12px;
1007
+ width: 2px;
1008
+ background: linear-gradient(180deg, rgba(107, 73, 223, 0.28), rgba(18, 121, 109, 0.2));
187
1009
  }
188
- .card:hover {
189
- box-shadow: var(--shadow-md);
190
- border-color: var(--border-focus);
1010
+
1011
+ .chronicle-item {
1012
+ position: relative;
1013
+ padding-left: 42px;
191
1014
  }
192
- .card-body { padding: 22px; }
193
1015
 
194
- .card-header-label {
195
- font-size: 10px;
196
- font-weight: 700;
197
- color: var(--text-muted);
198
- text-transform: uppercase;
199
- letter-spacing: 1.5px;
200
- margin-bottom: 16px;
1016
+ .chronicle-marker {
1017
+ position: absolute;
1018
+ top: 14px;
1019
+ left: 4px;
1020
+ width: 18px;
1021
+ height: 18px;
1022
+ border-radius: 999px;
1023
+ background: linear-gradient(180deg, var(--purple), var(--blue));
1024
+ box-shadow: 0 0 0 5px rgba(107, 73, 223, 0.1);
201
1025
  }
202
1026
 
203
- /* ════════════════════════════════════════════════════════════════
204
- BADGES
205
- ════════════════════════════════════════════════════════════════ */
206
- .badge {
207
- display: inline-flex;
208
- align-items: center;
209
- gap: 3px;
210
- font-size: 10px;
211
- font-weight: 600;
212
- padding: 2px 8px;
213
- border-radius: 5px;
214
- white-space: nowrap;
215
- letter-spacing: 0.2px;
216
- }
217
- .badge-purple { background: var(--purple-light); color: var(--purple); }
218
- .badge-green { background: var(--green-light); color: var(--green); }
219
- .badge-red { background: var(--red-light); color: var(--red); }
220
- .badge-yellow { background: var(--yellow-light); color: var(--yellow); }
221
- .badge-blue { background: var(--blue-light); color: var(--blue); }
222
- .badge-gray { background: var(--bg-section); color: var(--text-dim); }
223
-
224
- /* ════════════════════════════════════════════════════════════════
225
- SCORE BARS
226
- ════════════════════════════════════════════════════════════════ */
227
- .score-track {
228
- height: 5px;
229
- background: var(--bg-section);
230
- border-radius: 3px;
1027
+ .chronicle-card {
1028
+ border-radius: var(--radius-lg);
1029
+ border: 1px solid var(--border);
1030
+ background: linear-gradient(180deg, rgba(255,255,255,0.96), rgba(255,255,255,0.9));
1031
+ box-shadow: var(--shadow-sm);
231
1032
  overflow: hidden;
232
- flex: 1;
233
1033
  }
234
- .score-fill {
235
- height: 100%;
236
- border-radius: 3px;
237
- transition: width 0.6s cubic-bezier(0.22, 1, 0.36, 1);
1034
+
1035
+ .chronicle-card-header {
1036
+ display: flex;
1037
+ justify-content: space-between;
1038
+ align-items: flex-start;
1039
+ gap: 14px;
1040
+ padding: 18px 20px 14px;
1041
+ border-bottom: 1px solid var(--border-subtle);
238
1042
  }
239
1043
 
240
- /* ════════════════════════════════════════════════════════════════
241
- STATS
242
- ════════════════════════════════════════════════════════════════ */
243
- .stat-value {
244
- font-size: 32px;
1044
+ .chronicle-title {
1045
+ font-size: 16px;
245
1046
  font-weight: 800;
246
- line-height: 1;
247
- letter-spacing: -1px;
248
- font-variant-numeric: tabular-nums;
249
- }
250
- .stat-label {
251
- font-size: 11px;
252
- color: var(--text-dim);
253
- margin-top: 6px;
254
- font-weight: 500;
255
- letter-spacing: 0.1px;
1047
+ letter-spacing: -0.3px;
256
1048
  }
257
1049
 
258
- .section-label {
259
- font-size: 10px;
260
- font-weight: 700;
261
- color: var(--text-muted);
262
- text-transform: uppercase;
263
- letter-spacing: 1.5px;
264
- margin-bottom: 12px;
1050
+ .chronicle-meta {
1051
+ margin-top: 5px;
265
1052
  display: flex;
266
- align-items: center;
267
- gap: 8px;
1053
+ flex-wrap: wrap;
1054
+ gap: 6px 10px;
1055
+ color: var(--text-dim);
1056
+ font-size: 11px;
268
1057
  }
269
1058
 
270
- /* ════════════════════════════════════════════════════════════════
271
- TAB BAR
272
- ════════════════════════════════════════════════════════════════ */
273
- .tab-bar {
274
- display: inline-flex;
275
- background: var(--bg-section);
276
- border-radius: 10px;
277
- padding: 3px;
278
- gap: 2px;
279
- margin-bottom: 24px;
1059
+ .chronicle-body {
1060
+ padding: 18px 20px 20px;
280
1061
  }
281
- .tab-item {
282
- padding: 7px 18px;
283
- border-radius: 8px;
284
- font-size: 13px;
285
- font-weight: 500;
286
- color: var(--text-dim);
287
- cursor: pointer;
288
- transition: all 0.2s ease;
289
- border: none;
290
- background: none;
291
- font-family: var(--font);
292
- white-space: nowrap;
1062
+
1063
+ .proposal-card {
1064
+ background: rgba(255,255,255,0.78);
1065
+ border: 1px solid var(--border-subtle);
1066
+ border-radius: var(--radius);
1067
+ overflow: hidden;
1068
+ margin-bottom: 10px;
293
1069
  }
294
- .tab-item:hover {
295
- color: var(--text-secondary);
296
- background: rgba(255,255,255,0.6);
1070
+
1071
+ .proposal-card:last-child {
1072
+ margin-bottom: 0;
297
1073
  }
298
- .tab-item.active {
299
- background: var(--bg-card);
300
- color: var(--text);
301
- font-weight: 600;
1074
+
1075
+ .proposal-card:hover {
1076
+ border-color: var(--border-strong);
302
1077
  box-shadow: var(--shadow-sm);
303
1078
  }
304
1079
 
305
- /* ════════════════════════════════════════════════════════════════
306
- LAYER SECTIONS (Network page)
307
- ════════════════════════════════════════════════════════════════ */
1080
+ .detail-panel {
1081
+ width: 430px;
1082
+ height: 100%;
1083
+ overflow-y: auto;
1084
+ background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(249,245,239,0.95));
1085
+ border-left: 1px solid var(--border);
1086
+ box-shadow: -18px 0 42px rgba(53, 36, 15, 0.08);
1087
+ padding: 28px;
1088
+ animation: slideIn 0.24s ease;
1089
+ }
1090
+
1091
+ @keyframes slideIn {
1092
+ from { transform: translateX(18px); opacity: 0; }
1093
+ to { transform: translateX(0); opacity: 1; }
1094
+ }
1095
+
308
1096
  .layer-section {
1097
+ position: relative;
1098
+ overflow: hidden;
309
1099
  border-radius: var(--radius-xl);
310
1100
  padding: 22px;
311
- margin-bottom: 16px;
1101
+ margin-bottom: 18px;
1102
+ box-shadow: var(--shadow-md);
312
1103
  }
1104
+
313
1105
  .layer-generalized {
314
- background: linear-gradient(135deg, #faf5ff, #ede9fe);
1106
+ background: linear-gradient(145deg, rgba(248,243,255,0.98), rgba(243,238,255,0.92));
315
1107
  border: 1px solid var(--purple-border);
316
1108
  }
317
1109
  .layer-evolved {
318
- background: linear-gradient(135deg, #ecf7f3, #d1f0e5);
1110
+ background: linear-gradient(145deg, rgba(239,249,244,0.98), rgba(233,247,240,0.92));
319
1111
  border: 1px solid var(--green-border);
320
1112
  }
321
1113
  .layer-original {
322
- background: var(--bg-card);
1114
+ background: linear-gradient(145deg, rgba(255,255,255,0.96), rgba(251,248,243,0.92));
323
1115
  border: 1px solid var(--border);
324
1116
  }
325
1117
  .layer-project {
326
- background: linear-gradient(135deg, #fdf6e3, #faefc7);
1118
+ background: linear-gradient(145deg, rgba(255,251,240,0.98), rgba(255,247,228,0.92));
327
1119
  border: 1px solid var(--yellow-border);
328
1120
  }
329
1121
 
330
- /* ════════════════════════════════════════════════════════════════
331
- SKILL CARDS
332
- ════════════════════════════════════════════════════════════════ */
333
1122
  .skill-card {
334
- background: var(--bg-card);
1123
+ background: linear-gradient(180deg, rgba(255,255,255,0.96), rgba(255,255,255,0.88));
335
1124
  border: 1px solid var(--border);
336
1125
  border-radius: var(--radius);
337
1126
  padding: 14px 16px;
338
1127
  cursor: pointer;
339
- transition: all 0.2s ease;
1128
+ transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
340
1129
  box-shadow: var(--shadow-sm);
341
1130
  }
1131
+
342
1132
  .skill-card:hover {
1133
+ transform: translateY(-2px);
343
1134
  box-shadow: var(--shadow-md);
344
- border-color: var(--border-focus);
345
- transform: translateY(-1px);
1135
+ border-color: var(--border-strong);
346
1136
  }
1137
+
347
1138
  .skill-card.selected {
348
1139
  border-color: var(--teal);
349
- box-shadow: 0 0 0 2px var(--teal-light), var(--shadow-md);
1140
+ box-shadow: 0 0 0 3px rgba(18,121,109,0.12), var(--shadow-md);
350
1141
  }
351
1142
 
352
- /* ─── Flow Labels ─── */
353
1143
  .flow-label {
354
1144
  font-size: 10px;
355
- font-weight: 500;
1145
+ font-weight: 700;
356
1146
  color: var(--text-dim);
357
- background: var(--bg);
358
- padding: 2px 8px;
359
- border-radius: 10px;
360
- border: 1px solid var(--border);
1147
+ background: rgba(255,255,255,0.76);
1148
+ padding: 4px 9px;
1149
+ border-radius: 999px;
1150
+ border: 1px solid var(--border-subtle);
361
1151
  }
1152
+
362
1153
  .flow-arrow {
363
1154
  text-align: center;
364
- padding: 10px 0;
1155
+ padding: 12px 0 2px;
365
1156
  font-size: 11px;
366
1157
  color: var(--text-muted);
367
- font-weight: 500;
368
- letter-spacing: 0.5px;
369
- }
370
-
371
- /* ════════════════════════════════════════════════════════════════
372
- TIMELINE
373
- ════════════════════════════════════════════════════════════════ */
374
- .timeline-item {
375
- position: relative;
376
- padding-left: 24px;
377
- padding-bottom: 18px;
378
- border-left: 2px solid var(--border);
379
- margin-left: 6px;
380
- }
381
- .timeline-item:last-child { border-left-color: transparent; }
382
- .timeline-dot {
383
- position: absolute;
384
- left: -7px;
385
- top: 3px;
386
- width: 12px;
387
- height: 12px;
388
- border-radius: 50%;
389
- border: 2px solid var(--bg);
390
- box-shadow: 0 0 0 2px var(--border);
391
- }
392
-
393
- .detail-panel {
394
- background: var(--bg-card);
395
- border-left: 1px solid var(--border);
396
- box-shadow: -4px 0 24px rgba(0,0,0,0.06);
397
- width: 420px;
398
- height: 100%;
399
- overflow-y: auto;
400
- padding: 28px;
401
- animation: slideIn 0.25s ease;
402
- }
403
-
404
- @keyframes slideIn {
405
- from { transform: translateX(24px); opacity: 0; }
406
- to { transform: translateX(0); opacity: 1; }
407
- }
408
-
409
- /* ─── Empty State ─── */
410
- .empty-state {
411
- display: flex;
412
- flex-direction: column;
413
- align-items: center;
414
- justify-content: center;
415
- padding: 56px 24px;
416
- text-align: center;
417
- }
418
- .empty-state-icon {
419
- width: 52px;
420
- height: 52px;
421
- border-radius: 14px;
422
- background: var(--bg-section);
423
- display: flex;
424
- align-items: center;
425
- justify-content: center;
426
- margin-bottom: 16px;
427
- color: var(--text-muted);
428
- }
429
- .empty-state-title {
430
- font-size: 16px;
431
1158
  font-weight: 700;
432
- color: var(--text);
433
- margin-bottom: 6px;
434
- }
435
- .empty-state-desc {
436
- font-size: 13px;
437
- color: var(--text-dim);
438
- max-width: 360px;
439
- line-height: 1.55;
440
- }
441
-
442
- /* ═══ Stat Cards ═══ */
443
- .stat-grid {
444
- display: grid;
445
- gap: 14px;
446
- margin-bottom: 28px;
447
- }
448
- .stat-card {
449
- background: var(--bg-card);
450
- border: 1px solid var(--border);
451
- border-radius: var(--radius-lg);
452
- padding: 20px 22px;
453
- box-shadow: var(--shadow-sm);
454
- transition: all 0.25s ease;
455
- }
456
- .stat-card:hover {
457
- box-shadow: var(--shadow-md);
458
- border-color: var(--border-focus);
459
- }
460
-
461
- /* ─── React Flow Overrides ─── */
462
- .react-flow__background { opacity: 0.3; }
463
- .react-flow__controls {
464
- box-shadow: var(--shadow-md) !important;
465
- border: 1px solid var(--border) !important;
466
- border-radius: var(--radius) !important;
467
- overflow: hidden;
468
- }
469
- .react-flow__controls-button {
470
- background: var(--bg-card) !important;
471
- border-color: var(--border) !important;
472
- }
473
- .react-flow__controls-button:hover {
474
- background: var(--bg-hover) !important;
1159
+ letter-spacing: 0.1em;
475
1160
  }
476
1161
 
477
1162
  .view-header {
478
1163
  display: flex;
479
1164
  justify-content: space-between;
480
1165
  align-items: center;
481
- margin-bottom: 20px;
482
1166
  gap: 16px;
1167
+ margin-bottom: 20px;
483
1168
  }
1169
+
484
1170
  .view-header-left {
485
1171
  display: flex;
486
1172
  align-items: center;
487
- gap: 12px;
1173
+ gap: 10px;
488
1174
  }
1175
+
489
1176
  .view-header-stat {
490
- display: flex;
1177
+ display: inline-flex;
491
1178
  align-items: center;
492
- gap: 6px;
493
- font-size: 12px;
1179
+ gap: 8px;
1180
+ padding: 6px 11px;
1181
+ border-radius: 999px;
1182
+ background: rgba(255,255,255,0.68);
1183
+ border: 1px solid var(--border-subtle);
494
1184
  color: var(--text-dim);
495
- padding: 5px 12px;
496
- background: var(--bg-section);
497
- border-radius: 6px;
498
- font-weight: 500;
1185
+ font-size: 11px;
1186
+ font-weight: 700;
499
1187
  }
500
1188
 
501
- /* ═══ Proposal Card ═══ */
502
- .proposal-card {
503
- background: var(--bg-card);
504
- border: 1px solid var(--border);
505
- border-radius: var(--radius-lg);
1189
+ .react-flow__background { opacity: 0.26; }
1190
+ .react-flow__controls {
1191
+ box-shadow: var(--shadow-lg) !important;
1192
+ border: 1px solid var(--border) !important;
1193
+ border-radius: 16px !important;
506
1194
  overflow: hidden;
507
- margin-bottom: 10px;
508
- transition: all 0.2s ease;
1195
+ background: rgba(255,255,255,0.92) !important;
509
1196
  }
510
- .proposal-card:hover {
511
- box-shadow: var(--shadow-sm);
512
- border-color: var(--border-focus);
1197
+ .react-flow__controls-button {
1198
+ background: transparent !important;
1199
+ border-color: var(--border) !important;
1200
+ color: var(--text-secondary) !important;
513
1201
  }
514
-
515
- .score-pill {
516
- display: inline-flex;
517
- align-items: center;
518
- gap: 4px;
519
- font-size: 11px;
520
- font-weight: 600;
521
- padding: 3px 8px;
522
- border-radius: 5px;
523
- background: var(--bg-section);
1202
+ .react-flow__controls-button:hover {
1203
+ background: rgba(255,255,255,0.92) !important;
524
1204
  }
525
1205
 
526
- /* ════════════════════════════════════════════════════════════════
527
- GRID UTILITIES
528
- ════════════════════════════════════════════════════════════════ */
529
- .grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
530
- .grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
531
- .grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
532
- .grid-5 { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; }
533
- .grid-auto { display: grid; grid-template-columns: repeat(auto-fill, minmax(360px, 1fr)); gap: 14px; }
534
-
535
- /* ════════════════════════════════════════════════════════════════
536
- GUIDE PAGE
537
- ════════════════════════════════════════════════════════════════ */
538
1206
  .guide-layout {
539
1207
  display: flex;
540
1208
  gap: 0;
541
- margin: -36px -44px;
1209
+ margin: -30px -32px;
542
1210
  min-height: 100vh;
543
1211
  }
544
1212
 
545
1213
  .guide-toc {
546
- width: 220px;
1214
+ width: 240px;
547
1215
  flex-shrink: 0;
548
1216
  position: sticky;
549
1217
  top: 0;
550
1218
  height: 100vh;
551
1219
  overflow-y: auto;
552
1220
  border-right: 1px solid var(--border);
553
- background: var(--bg-sidebar);
1221
+ background: linear-gradient(180deg, rgba(250, 248, 243, 0.88), rgba(246, 242, 236, 0.82));
1222
+ backdrop-filter: blur(18px);
554
1223
  padding-bottom: 20px;
555
1224
  }
556
1225
  .guide-toc-header {
@@ -608,8 +1277,8 @@ code {
608
1277
 
609
1278
  .guide-content {
610
1279
  flex: 1;
611
- max-width: 860px;
612
- padding: 0 56px 80px;
1280
+ max-width: 920px;
1281
+ padding: 0 56px 88px;
613
1282
  margin: 0 auto;
614
1283
  }
615
1284
 
@@ -660,7 +1329,7 @@ code {
660
1329
  }
661
1330
  .guide-feature-card:hover {
662
1331
  box-shadow: var(--shadow-md);
663
- border-color: var(--border-focus);
1332
+ border-color: var(--border-strong);
664
1333
  transform: translateY(-2px);
665
1334
  }
666
1335
  .guide-feature-icon {
@@ -830,7 +1499,7 @@ code {
830
1499
  border-radius: var(--radius);
831
1500
  transition: border-color 0.15s;
832
1501
  }
833
- .guide-direction:hover { border-color: var(--border-focus); }
1502
+ .guide-direction:hover { border-color: var(--border-strong); }
834
1503
  .guide-direction-arrow {
835
1504
  font-size: 22px;
836
1505
  font-weight: 800;
@@ -1055,7 +1724,7 @@ code {
1055
1724
  transition: all 0.15s ease;
1056
1725
  }
1057
1726
  .guide-command-card:hover {
1058
- border-color: var(--border-focus);
1727
+ border-color: var(--border-strong);
1059
1728
  box-shadow: var(--shadow-sm);
1060
1729
  }
1061
1730
  .guide-command-name {
@@ -1149,7 +1818,7 @@ code {
1149
1818
  transition: all 0.2s ease;
1150
1819
  overflow: hidden;
1151
1820
  }
1152
- .guide-faq-item:hover { border-color: var(--border-focus); }
1821
+ .guide-faq-item:hover { border-color: var(--border-strong); }
1153
1822
  .guide-faq-item.open {
1154
1823
  border-color: var(--green-border);
1155
1824
  box-shadow: 0 0 0 1px var(--green-light);
@@ -1192,3 +1861,36 @@ code {
1192
1861
  text-align: center;
1193
1862
  padding: 24px 0;
1194
1863
  }
1864
+
1865
+ @media (max-width: 1200px) {
1866
+ .grid-5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
1867
+ .guide-hero-features,
1868
+ .guide-judges-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
1869
+ }
1870
+
1871
+ @media (max-width: 980px) {
1872
+ .app-shell { display: block; }
1873
+ .sidebar {
1874
+ position: relative;
1875
+ width: 100%;
1876
+ height: auto;
1877
+ border-right: none;
1878
+ border-bottom: 1px solid var(--border);
1879
+ }
1880
+ .main-content { padding: 20px 16px 40px; }
1881
+ .main-content-inner { width: 100%; }
1882
+ .grid-2,
1883
+ .grid-3,
1884
+ .grid-4,
1885
+ .grid-5,
1886
+ .skill-score-grid,
1887
+ .guide-hero-features,
1888
+ .guide-judges-grid { grid-template-columns: 1fr; }
1889
+ .page-hero-grid,
1890
+ .section-frame-header,
1891
+ .view-header { flex-direction: column; align-items: stretch; }
1892
+ .detail-panel { width: 100%; border-left: none; border-top: 1px solid var(--border); }
1893
+ .guide-layout { display: block; margin: -20px -16px; }
1894
+ .guide-toc { position: relative; width: 100%; height: auto; border-right: none; border-bottom: 1px solid var(--border); }
1895
+ .guide-content { max-width: none; padding: 0 20px 64px; }
1896
+ }