botmux 2.85.1 → 2.86.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/command-handler.d.ts.map +1 -1
- package/dist/core/command-handler.js +209 -1
- package/dist/core/command-handler.js.map +1 -1
- package/dist/core/cost-calculator.d.ts.map +1 -1
- package/dist/core/cost-calculator.js +7 -106
- package/dist/core/cost-calculator.js.map +1 -1
- package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
- package/dist/core/dashboard-ipc-server.js +240 -2
- package/dist/core/dashboard-ipc-server.js.map +1 -1
- package/dist/core/passthrough-commands.d.ts.map +1 -1
- package/dist/core/passthrough-commands.js +1 -1
- package/dist/core/passthrough-commands.js.map +1 -1
- package/dist/core/role-resolver.d.ts +1 -0
- package/dist/core/role-resolver.d.ts.map +1 -1
- package/dist/core/role-resolver.js +14 -0
- package/dist/core/role-resolver.js.map +1 -1
- package/dist/dashboard/web/app.d.ts.map +1 -1
- package/dist/dashboard/web/app.js +15 -4
- package/dist/dashboard/web/app.js.map +1 -1
- package/dist/dashboard/web/bot-defaults.d.ts.map +1 -1
- package/dist/dashboard/web/bot-defaults.js +116 -0
- package/dist/dashboard/web/bot-defaults.js.map +1 -1
- package/dist/dashboard/web/groups.d.ts +2 -0
- package/dist/dashboard/web/groups.d.ts.map +1 -1
- package/dist/dashboard/web/groups.js +419 -3
- package/dist/dashboard/web/groups.js.map +1 -1
- package/dist/dashboard/web/i18n.d.ts.map +1 -1
- package/dist/dashboard/web/i18n.js +617 -3
- package/dist/dashboard/web/i18n.js.map +1 -1
- package/dist/dashboard/web/insights.d.ts +2 -0
- package/dist/dashboard/web/insights.d.ts.map +1 -0
- package/dist/dashboard/web/insights.js +1523 -0
- package/dist/dashboard/web/insights.js.map +1 -0
- package/dist/dashboard/web/role-profile-match.d.ts +31 -0
- package/dist/dashboard/web/role-profile-match.d.ts.map +1 -0
- package/dist/dashboard/web/role-profile-match.js +58 -0
- package/dist/dashboard/web/role-profile-match.js.map +1 -0
- package/dist/dashboard/web/roles.d.ts +1 -0
- package/dist/dashboard/web/roles.d.ts.map +1 -1
- package/dist/dashboard/web/roles.js +520 -27
- package/dist/dashboard/web/roles.js.map +1 -1
- package/dist/dashboard/web/sessions.d.ts.map +1 -1
- package/dist/dashboard/web/sessions.js +84 -0
- package/dist/dashboard/web/sessions.js.map +1 -1
- package/dist/dashboard-web/app.js +1243 -831
- package/dist/dashboard-web/index.html +2 -1
- package/dist/dashboard-web/style.css +1085 -3
- package/dist/dashboard.js +215 -3
- package/dist/dashboard.js.map +1 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +34 -1
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/zh.d.ts.map +1 -1
- package/dist/i18n/zh.js +34 -1
- package/dist/i18n/zh.js.map +1 -1
- package/dist/services/group-creator.d.ts +6 -0
- package/dist/services/group-creator.d.ts.map +1 -1
- package/dist/services/group-creator.js +54 -5
- package/dist/services/group-creator.js.map +1 -1
- package/dist/services/insight/antigravity-span-reader.d.ts +3 -0
- package/dist/services/insight/antigravity-span-reader.d.ts.map +1 -0
- package/dist/services/insight/antigravity-span-reader.js +249 -0
- package/dist/services/insight/antigravity-span-reader.js.map +1 -0
- package/dist/services/insight/classify.d.ts +7 -0
- package/dist/services/insight/classify.d.ts.map +1 -0
- package/dist/services/insight/classify.js +46 -0
- package/dist/services/insight/classify.js.map +1 -0
- package/dist/services/insight/claude-span-reader.d.ts +3 -0
- package/dist/services/insight/claude-span-reader.d.ts.map +1 -0
- package/dist/services/insight/claude-span-reader.js +257 -0
- package/dist/services/insight/claude-span-reader.js.map +1 -0
- package/dist/services/insight/codex-span-reader.d.ts +3 -0
- package/dist/services/insight/codex-span-reader.d.ts.map +1 -0
- package/dist/services/insight/codex-span-reader.js +290 -0
- package/dist/services/insight/codex-span-reader.js.map +1 -0
- package/dist/services/insight/intent.d.ts +5 -0
- package/dist/services/insight/intent.d.ts.map +1 -0
- package/dist/services/insight/intent.js +145 -0
- package/dist/services/insight/intent.js.map +1 -0
- package/dist/services/insight/jsonl.d.ts +10 -0
- package/dist/services/insight/jsonl.d.ts.map +1 -0
- package/dist/services/insight/jsonl.js +36 -0
- package/dist/services/insight/jsonl.js.map +1 -0
- package/dist/services/insight/prompt.d.ts +3 -0
- package/dist/services/insight/prompt.d.ts.map +1 -0
- package/dist/services/insight/prompt.js +99 -0
- package/dist/services/insight/prompt.js.map +1 -0
- package/dist/services/insight/redact.d.ts +4 -0
- package/dist/services/insight/redact.d.ts.map +1 -0
- package/dist/services/insight/redact.js +67 -0
- package/dist/services/insight/redact.js.map +1 -0
- package/dist/services/insight/report.d.ts +29 -0
- package/dist/services/insight/report.d.ts.map +1 -0
- package/dist/services/insight/report.js +1126 -0
- package/dist/services/insight/report.js.map +1 -0
- package/dist/services/insight/safe-detail.d.ts +5 -0
- package/dist/services/insight/safe-detail.d.ts.map +1 -0
- package/dist/services/insight/safe-detail.js +59 -0
- package/dist/services/insight/safe-detail.js.map +1 -0
- package/dist/services/insight/scrub.d.ts +22 -0
- package/dist/services/insight/scrub.d.ts.map +1 -0
- package/dist/services/insight/scrub.js +70 -0
- package/dist/services/insight/scrub.js.map +1 -0
- package/dist/services/insight/types.d.ts +394 -0
- package/dist/services/insight/types.d.ts.map +1 -0
- package/dist/services/insight/types.js +2 -0
- package/dist/services/insight/types.js.map +1 -0
- package/dist/services/role-profile-store.d.ts +25 -0
- package/dist/services/role-profile-store.d.ts.map +1 -0
- package/dist/services/role-profile-store.js +171 -0
- package/dist/services/role-profile-store.js.map +1 -0
- package/dist/services/transcript-resolver.d.ts +26 -0
- package/dist/services/transcript-resolver.d.ts.map +1 -0
- package/dist/services/transcript-resolver.js +111 -0
- package/dist/services/transcript-resolver.js.map +1 -0
- package/package.json +1 -1
|
@@ -2378,6 +2378,13 @@ input.row-select,
|
|
|
2378
2378
|
}
|
|
2379
2379
|
|
|
2380
2380
|
/* ─── Roles Page ─── */
|
|
2381
|
+
.roles-heading {
|
|
2382
|
+
align-items: flex-start;
|
|
2383
|
+
gap: 16px;
|
|
2384
|
+
}
|
|
2385
|
+
.roles-tabs {
|
|
2386
|
+
flex: 0 0 auto;
|
|
2387
|
+
}
|
|
2381
2388
|
.roles-page .roles-layout {
|
|
2382
2389
|
display: grid;
|
|
2383
2390
|
grid-template-columns: 320px 1fr;
|
|
@@ -2385,6 +2392,7 @@ input.row-select,
|
|
|
2385
2392
|
height: calc(100vh - 160px);
|
|
2386
2393
|
min-height: 400px;
|
|
2387
2394
|
}
|
|
2395
|
+
.roles-page .roles-layout[hidden] { display: none !important; }
|
|
2388
2396
|
|
|
2389
2397
|
/* ─── Tree Panel (left) ─── */
|
|
2390
2398
|
.roles-tree-panel {
|
|
@@ -2402,6 +2410,12 @@ input.row-select,
|
|
|
2402
2410
|
gap: 8px;
|
|
2403
2411
|
}
|
|
2404
2412
|
.roles-tree-header input { flex: 1; }
|
|
2413
|
+
.roles-profile-create {
|
|
2414
|
+
align-items: stretch;
|
|
2415
|
+
}
|
|
2416
|
+
.roles-profile-create input {
|
|
2417
|
+
min-width: 0;
|
|
2418
|
+
}
|
|
2405
2419
|
.roles-tree {
|
|
2406
2420
|
flex: 1;
|
|
2407
2421
|
overflow-y: auto;
|
|
@@ -2512,6 +2526,61 @@ input.row-select,
|
|
|
2512
2526
|
background: var(--bg-soft);
|
|
2513
2527
|
color: var(--faint);
|
|
2514
2528
|
}
|
|
2529
|
+
.roles-profile-match {
|
|
2530
|
+
display: inline-flex;
|
|
2531
|
+
max-width: 100%;
|
|
2532
|
+
margin-top: 5px;
|
|
2533
|
+
padding: 2px 7px;
|
|
2534
|
+
border-radius: 999px;
|
|
2535
|
+
border: 1px solid var(--border-soft);
|
|
2536
|
+
background: var(--surface-muted);
|
|
2537
|
+
color: var(--muted);
|
|
2538
|
+
font-size: 10.5px;
|
|
2539
|
+
font-weight: 700;
|
|
2540
|
+
line-height: 1.45;
|
|
2541
|
+
white-space: normal;
|
|
2542
|
+
overflow-wrap: anywhere;
|
|
2543
|
+
}
|
|
2544
|
+
.roles-profile-match.full {
|
|
2545
|
+
border-color: color-mix(in srgb, var(--success) 35%, var(--border-soft));
|
|
2546
|
+
background: color-mix(in srgb, var(--success) 10%, var(--surface));
|
|
2547
|
+
color: var(--success);
|
|
2548
|
+
}
|
|
2549
|
+
.roles-profile-match.partial {
|
|
2550
|
+
border-color: color-mix(in srgb, var(--warning) 35%, var(--border-soft));
|
|
2551
|
+
background: color-mix(in srgb, var(--warning) 12%, var(--surface));
|
|
2552
|
+
color: var(--warning);
|
|
2553
|
+
}
|
|
2554
|
+
.roles-profile-match.muted {
|
|
2555
|
+
font-weight: 600;
|
|
2556
|
+
color: var(--muted);
|
|
2557
|
+
}
|
|
2558
|
+
.roles-profile-row {
|
|
2559
|
+
display: flex;
|
|
2560
|
+
align-items: center;
|
|
2561
|
+
gap: 10px;
|
|
2562
|
+
padding: 10px 12px;
|
|
2563
|
+
cursor: pointer;
|
|
2564
|
+
border-bottom: 1px solid var(--border-soft);
|
|
2565
|
+
transition: background 0.12s;
|
|
2566
|
+
}
|
|
2567
|
+
.roles-profile-row:hover { background: var(--bg-soft); }
|
|
2568
|
+
.roles-profile-row.selected {
|
|
2569
|
+
background: var(--accent-soft);
|
|
2570
|
+
border-left: 3px solid var(--accent);
|
|
2571
|
+
padding-left: 9px;
|
|
2572
|
+
}
|
|
2573
|
+
.roles-profile-row-main {
|
|
2574
|
+
min-width: 0;
|
|
2575
|
+
flex: 1;
|
|
2576
|
+
}
|
|
2577
|
+
.roles-profile-name {
|
|
2578
|
+
font-size: 13px;
|
|
2579
|
+
font-weight: 650;
|
|
2580
|
+
white-space: nowrap;
|
|
2581
|
+
overflow: hidden;
|
|
2582
|
+
text-overflow: ellipsis;
|
|
2583
|
+
}
|
|
2515
2584
|
|
|
2516
2585
|
/* ─── Editor Panel (right) ─── */
|
|
2517
2586
|
.roles-editor-panel {
|
|
@@ -2560,10 +2629,76 @@ input.row-select,
|
|
|
2560
2629
|
color: var(--faint);
|
|
2561
2630
|
font-family: var(--mono);
|
|
2562
2631
|
}
|
|
2632
|
+
.roles-profile-detail {
|
|
2633
|
+
gap: 16px;
|
|
2634
|
+
min-height: 0;
|
|
2635
|
+
overflow: hidden;
|
|
2636
|
+
}
|
|
2637
|
+
.roles-profile-title {
|
|
2638
|
+
flex: 0 0 auto;
|
|
2639
|
+
display: flex;
|
|
2640
|
+
align-items: flex-start;
|
|
2641
|
+
justify-content: space-between;
|
|
2642
|
+
gap: 12px;
|
|
2643
|
+
}
|
|
2644
|
+
.roles-profile-grid {
|
|
2645
|
+
flex: 1 1 auto;
|
|
2646
|
+
display: grid;
|
|
2647
|
+
grid-template-columns: minmax(240px, 320px) minmax(0, 1fr);
|
|
2648
|
+
gap: 16px;
|
|
2649
|
+
align-items: stretch;
|
|
2650
|
+
min-height: 0;
|
|
2651
|
+
overflow: hidden;
|
|
2652
|
+
}
|
|
2653
|
+
.roles-profile-bots,
|
|
2654
|
+
.roles-profile-editor,
|
|
2655
|
+
.roles-profile-apply {
|
|
2656
|
+
min-width: 0;
|
|
2657
|
+
}
|
|
2658
|
+
.roles-profile-bots {
|
|
2659
|
+
display: flex;
|
|
2660
|
+
flex-direction: column;
|
|
2661
|
+
min-height: 0;
|
|
2662
|
+
}
|
|
2663
|
+
.roles-profile-editor {
|
|
2664
|
+
display: flex;
|
|
2665
|
+
flex-direction: column;
|
|
2666
|
+
gap: 10px;
|
|
2667
|
+
min-height: 0;
|
|
2668
|
+
}
|
|
2669
|
+
.roles-profile-section-title {
|
|
2670
|
+
color: var(--muted);
|
|
2671
|
+
font-size: 12px;
|
|
2672
|
+
font-weight: 700;
|
|
2673
|
+
margin-bottom: 8px;
|
|
2674
|
+
text-transform: uppercase;
|
|
2675
|
+
}
|
|
2676
|
+
.roles-profile-bot-list {
|
|
2677
|
+
flex: 1 1 auto;
|
|
2678
|
+
min-height: 0;
|
|
2679
|
+
border: 1px solid var(--border-soft);
|
|
2680
|
+
border-radius: var(--radius);
|
|
2681
|
+
overflow: auto;
|
|
2682
|
+
}
|
|
2683
|
+
.roles-profile-bot-row {
|
|
2684
|
+
padding-left: 12px;
|
|
2685
|
+
}
|
|
2686
|
+
.roles-profile-bot-row.selected {
|
|
2687
|
+
padding-left: 9px;
|
|
2688
|
+
}
|
|
2689
|
+
.roles-profile-inline-empty {
|
|
2690
|
+
flex: 1 1 auto;
|
|
2691
|
+
min-height: 220px;
|
|
2692
|
+
border: 1px dashed var(--border);
|
|
2693
|
+
border-radius: var(--radius);
|
|
2694
|
+
}
|
|
2563
2695
|
|
|
2564
2696
|
/* ─── Editor textarea ─── */
|
|
2565
|
-
#roles-editor-textarea
|
|
2566
|
-
|
|
2697
|
+
#roles-editor-textarea,
|
|
2698
|
+
#roles-profile-textarea {
|
|
2699
|
+
width: 100%;
|
|
2700
|
+
box-sizing: border-box;
|
|
2701
|
+
flex: 0 0 auto;
|
|
2567
2702
|
min-height: 220px;
|
|
2568
2703
|
font-family: var(--mono);
|
|
2569
2704
|
font-size: 13px;
|
|
@@ -2576,7 +2711,13 @@ input.row-select,
|
|
|
2576
2711
|
color: var(--fg);
|
|
2577
2712
|
tab-size: 2;
|
|
2578
2713
|
}
|
|
2579
|
-
#roles-
|
|
2714
|
+
#roles-profile-textarea {
|
|
2715
|
+
flex: 1 1 260px;
|
|
2716
|
+
min-height: 180px;
|
|
2717
|
+
max-height: min(44vh, 420px);
|
|
2718
|
+
}
|
|
2719
|
+
#roles-editor-textarea:focus,
|
|
2720
|
+
#roles-profile-textarea:focus {
|
|
2580
2721
|
outline: none;
|
|
2581
2722
|
border-color: var(--accent);
|
|
2582
2723
|
box-shadow: 0 0 0 3px var(--accent-soft);
|
|
@@ -2596,6 +2737,44 @@ input.row-select,
|
|
|
2596
2737
|
.roles-bytecount.warn { color: var(--warning); }
|
|
2597
2738
|
.roles-bytecount.over { color: var(--danger); font-weight: 700; }
|
|
2598
2739
|
.roles-editor-actions { display: flex; gap: 8px; }
|
|
2740
|
+
.roles-profile-editor .roles-editor-actions,
|
|
2741
|
+
.roles-profile-apply .roles-editor-actions {
|
|
2742
|
+
justify-content: flex-end;
|
|
2743
|
+
flex-wrap: wrap;
|
|
2744
|
+
}
|
|
2745
|
+
.roles-profile-apply {
|
|
2746
|
+
flex: 0 0 auto;
|
|
2747
|
+
max-height: 34%;
|
|
2748
|
+
overflow: auto;
|
|
2749
|
+
border-top: 1px solid var(--border-soft);
|
|
2750
|
+
padding-top: 14px;
|
|
2751
|
+
}
|
|
2752
|
+
.roles-profile-apply-controls {
|
|
2753
|
+
display: grid;
|
|
2754
|
+
grid-template-columns: minmax(180px, 1fr) auto;
|
|
2755
|
+
gap: 10px;
|
|
2756
|
+
align-items: center;
|
|
2757
|
+
margin-bottom: 10px;
|
|
2758
|
+
}
|
|
2759
|
+
.roles-profile-apply-controls select {
|
|
2760
|
+
min-width: 0;
|
|
2761
|
+
}
|
|
2762
|
+
.roles-profile-force {
|
|
2763
|
+
display: flex;
|
|
2764
|
+
align-items: center;
|
|
2765
|
+
gap: 6px;
|
|
2766
|
+
color: var(--muted);
|
|
2767
|
+
font-size: 12px;
|
|
2768
|
+
}
|
|
2769
|
+
.roles-profile-apply-bot {
|
|
2770
|
+
margin-bottom: 6px;
|
|
2771
|
+
}
|
|
2772
|
+
.roles-profile-status {
|
|
2773
|
+
color: var(--muted);
|
|
2774
|
+
font-size: 12px;
|
|
2775
|
+
line-height: 1.6;
|
|
2776
|
+
min-height: 18px;
|
|
2777
|
+
}
|
|
2599
2778
|
|
|
2600
2779
|
/* ─── Saved flash ─── */
|
|
2601
2780
|
.roles-saved-flash {
|
|
@@ -2624,9 +2803,15 @@ input.row-select,
|
|
|
2624
2803
|
max-height: 140px;
|
|
2625
2804
|
overflow-y: auto;
|
|
2626
2805
|
}
|
|
2806
|
+
.roles-profile-editor .roles-preview {
|
|
2807
|
+
flex: 1 1 auto;
|
|
2808
|
+
min-height: 160px;
|
|
2809
|
+
max-height: none;
|
|
2810
|
+
}
|
|
2627
2811
|
.roles-preview pre {
|
|
2628
2812
|
margin: 8px 0 0 0;
|
|
2629
2813
|
white-space: pre-wrap;
|
|
2814
|
+
overflow-wrap: anywhere;
|
|
2630
2815
|
font-family: var(--mono);
|
|
2631
2816
|
font-size: 12px;
|
|
2632
2817
|
line-height: 1.5;
|
|
@@ -2644,6 +2829,21 @@ input.row-select,
|
|
|
2644
2829
|
grid-template-columns: 1fr;
|
|
2645
2830
|
height: auto;
|
|
2646
2831
|
}
|
|
2832
|
+
.roles-heading {
|
|
2833
|
+
flex-direction: column;
|
|
2834
|
+
}
|
|
2835
|
+
.roles-tabs {
|
|
2836
|
+
width: 100%;
|
|
2837
|
+
}
|
|
2838
|
+
.roles-tabs button {
|
|
2839
|
+
flex: 1;
|
|
2840
|
+
}
|
|
2841
|
+
.roles-profile-grid {
|
|
2842
|
+
grid-template-columns: 1fr;
|
|
2843
|
+
}
|
|
2844
|
+
.roles-profile-apply-controls {
|
|
2845
|
+
grid-template-columns: 1fr;
|
|
2846
|
+
}
|
|
2647
2847
|
}
|
|
2648
2848
|
|
|
2649
2849
|
/* ─── Workflow runtime: list, detail, parallel timeline, IO cards ─── */
|
|
@@ -3030,6 +3230,245 @@ button.contrast:hover { background: var(--danger-soft); border-color: var(--dang
|
|
|
3030
3230
|
/* 群列表名称单元格:群头像 + 群名/ID 横向排列。 */
|
|
3031
3231
|
.g-chat-cell { display: flex; align-items: center; gap: 8px; }
|
|
3032
3232
|
.g-chat-meta { min-width: 0; }
|
|
3233
|
+
.g-profile-status {
|
|
3234
|
+
display: inline-flex;
|
|
3235
|
+
align-items: center;
|
|
3236
|
+
max-width: 240px;
|
|
3237
|
+
margin-top: 5px;
|
|
3238
|
+
padding: 2px 7px;
|
|
3239
|
+
border-radius: 999px;
|
|
3240
|
+
border: 1px solid var(--border-soft);
|
|
3241
|
+
background: var(--surface-muted);
|
|
3242
|
+
color: var(--muted);
|
|
3243
|
+
font-size: 11px;
|
|
3244
|
+
font-weight: 700;
|
|
3245
|
+
line-height: 1.5;
|
|
3246
|
+
white-space: normal;
|
|
3247
|
+
overflow-wrap: anywhere;
|
|
3248
|
+
}
|
|
3249
|
+
.g-profile-status.full {
|
|
3250
|
+
border-color: color-mix(in srgb, var(--success) 35%, var(--border-soft));
|
|
3251
|
+
background: color-mix(in srgb, var(--success) 10%, var(--surface));
|
|
3252
|
+
color: var(--success);
|
|
3253
|
+
}
|
|
3254
|
+
.g-profile-status.partial {
|
|
3255
|
+
border-color: color-mix(in srgb, var(--warning) 35%, var(--border-soft));
|
|
3256
|
+
background: color-mix(in srgb, var(--warning) 12%, var(--surface));
|
|
3257
|
+
color: var(--warning);
|
|
3258
|
+
}
|
|
3259
|
+
.g-profile-status.muted { font-weight: 600; }
|
|
3260
|
+
.g-save-profile-dialog {
|
|
3261
|
+
display: grid;
|
|
3262
|
+
gap: 12px;
|
|
3263
|
+
}
|
|
3264
|
+
.g-save-profile-dialog [hidden] {
|
|
3265
|
+
display: none !important;
|
|
3266
|
+
}
|
|
3267
|
+
.g-save-profile-panel {
|
|
3268
|
+
display: grid;
|
|
3269
|
+
gap: 10px;
|
|
3270
|
+
padding: 12px;
|
|
3271
|
+
border: 1px solid var(--border-soft);
|
|
3272
|
+
border-radius: var(--radius);
|
|
3273
|
+
background: var(--surface-muted);
|
|
3274
|
+
}
|
|
3275
|
+
.g-save-profile-section-head {
|
|
3276
|
+
display: flex;
|
|
3277
|
+
justify-content: space-between;
|
|
3278
|
+
gap: 12px;
|
|
3279
|
+
align-items: baseline;
|
|
3280
|
+
}
|
|
3281
|
+
.g-save-profile-section-head > span {
|
|
3282
|
+
color: var(--fg);
|
|
3283
|
+
font-weight: 700;
|
|
3284
|
+
}
|
|
3285
|
+
.g-save-profile-section-head > small {
|
|
3286
|
+
color: var(--muted);
|
|
3287
|
+
font-size: 12px;
|
|
3288
|
+
}
|
|
3289
|
+
.g-save-profile-stats {
|
|
3290
|
+
display: flex;
|
|
3291
|
+
flex-wrap: wrap;
|
|
3292
|
+
gap: 6px;
|
|
3293
|
+
}
|
|
3294
|
+
.g-save-profile-stats span {
|
|
3295
|
+
display: inline-flex;
|
|
3296
|
+
gap: 5px;
|
|
3297
|
+
align-items: center;
|
|
3298
|
+
padding: 3px 8px;
|
|
3299
|
+
border: 1px solid var(--border-soft);
|
|
3300
|
+
border-radius: 999px;
|
|
3301
|
+
background: var(--surface);
|
|
3302
|
+
color: var(--muted);
|
|
3303
|
+
font-size: 12px;
|
|
3304
|
+
}
|
|
3305
|
+
.g-save-profile-stats strong {
|
|
3306
|
+
color: var(--fg);
|
|
3307
|
+
}
|
|
3308
|
+
.g-save-profile-stats .warn {
|
|
3309
|
+
color: var(--danger);
|
|
3310
|
+
background: var(--danger-soft);
|
|
3311
|
+
}
|
|
3312
|
+
.g-save-profile-entry-list {
|
|
3313
|
+
display: grid;
|
|
3314
|
+
gap: 6px;
|
|
3315
|
+
max-height: 170px;
|
|
3316
|
+
overflow: auto;
|
|
3317
|
+
}
|
|
3318
|
+
.g-save-profile-entry {
|
|
3319
|
+
display: grid;
|
|
3320
|
+
grid-template-columns: minmax(0, 1fr) auto;
|
|
3321
|
+
gap: 10px;
|
|
3322
|
+
align-items: center;
|
|
3323
|
+
padding: 8px 10px;
|
|
3324
|
+
border: 1px solid var(--border-soft);
|
|
3325
|
+
border-radius: var(--radius-sm);
|
|
3326
|
+
background: var(--surface);
|
|
3327
|
+
}
|
|
3328
|
+
.g-save-profile-entry > div {
|
|
3329
|
+
min-width: 0;
|
|
3330
|
+
display: grid;
|
|
3331
|
+
gap: 2px;
|
|
3332
|
+
}
|
|
3333
|
+
.g-save-profile-entry strong,
|
|
3334
|
+
.g-save-profile-entry code {
|
|
3335
|
+
min-width: 0;
|
|
3336
|
+
overflow: hidden;
|
|
3337
|
+
text-overflow: ellipsis;
|
|
3338
|
+
white-space: nowrap;
|
|
3339
|
+
}
|
|
3340
|
+
.g-save-profile-entry code {
|
|
3341
|
+
color: var(--muted);
|
|
3342
|
+
background: transparent;
|
|
3343
|
+
padding: 0;
|
|
3344
|
+
}
|
|
3345
|
+
.g-save-profile-entry.error {
|
|
3346
|
+
border-color: color-mix(in srgb, var(--danger) 35%, var(--border-soft));
|
|
3347
|
+
}
|
|
3348
|
+
.g-save-profile-entry-status {
|
|
3349
|
+
display: inline-flex;
|
|
3350
|
+
align-items: center;
|
|
3351
|
+
min-height: 22px;
|
|
3352
|
+
padding: 2px 8px;
|
|
3353
|
+
border-radius: 999px;
|
|
3354
|
+
background: var(--surface-muted);
|
|
3355
|
+
color: var(--muted);
|
|
3356
|
+
font-size: 12px;
|
|
3357
|
+
font-weight: 700;
|
|
3358
|
+
white-space: nowrap;
|
|
3359
|
+
}
|
|
3360
|
+
.g-save-profile-entry-status.ok {
|
|
3361
|
+
color: var(--success);
|
|
3362
|
+
background: color-mix(in srgb, var(--success) 12%, var(--surface));
|
|
3363
|
+
}
|
|
3364
|
+
.g-save-profile-entry-status.error {
|
|
3365
|
+
color: var(--danger);
|
|
3366
|
+
background: var(--danger-soft);
|
|
3367
|
+
}
|
|
3368
|
+
.g-save-profile-empty {
|
|
3369
|
+
color: var(--muted);
|
|
3370
|
+
font-size: 13px;
|
|
3371
|
+
}
|
|
3372
|
+
.g-save-profile-switch {
|
|
3373
|
+
display: grid;
|
|
3374
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
3375
|
+
gap: 4px;
|
|
3376
|
+
padding: 4px;
|
|
3377
|
+
border: 1px solid var(--border-soft);
|
|
3378
|
+
border-radius: 999px;
|
|
3379
|
+
background: var(--surface-muted);
|
|
3380
|
+
}
|
|
3381
|
+
.g-save-profile-switch button {
|
|
3382
|
+
min-width: 0;
|
|
3383
|
+
border-color: transparent;
|
|
3384
|
+
background: transparent;
|
|
3385
|
+
box-shadow: none;
|
|
3386
|
+
}
|
|
3387
|
+
.g-save-profile-switch button.active {
|
|
3388
|
+
background: var(--surface);
|
|
3389
|
+
border-color: color-mix(in srgb, var(--accent) 40%, var(--border-soft));
|
|
3390
|
+
color: var(--accent-strong);
|
|
3391
|
+
box-shadow: 0 3px 12px color-mix(in srgb, var(--accent) 16%, transparent);
|
|
3392
|
+
}
|
|
3393
|
+
.g-save-profile-picker {
|
|
3394
|
+
display: grid;
|
|
3395
|
+
gap: 8px;
|
|
3396
|
+
max-height: 220px;
|
|
3397
|
+
overflow: auto;
|
|
3398
|
+
}
|
|
3399
|
+
.g-save-profile-pick {
|
|
3400
|
+
display: grid;
|
|
3401
|
+
grid-template-columns: minmax(0, 1fr) auto;
|
|
3402
|
+
gap: 10px;
|
|
3403
|
+
align-items: center;
|
|
3404
|
+
justify-content: stretch;
|
|
3405
|
+
min-height: 38px;
|
|
3406
|
+
width: 100%;
|
|
3407
|
+
border-radius: var(--radius-sm);
|
|
3408
|
+
background: var(--surface-muted);
|
|
3409
|
+
box-shadow: none;
|
|
3410
|
+
text-align: left;
|
|
3411
|
+
}
|
|
3412
|
+
.g-save-profile-pick.selected {
|
|
3413
|
+
border-color: color-mix(in srgb, var(--accent) 55%, var(--border-soft));
|
|
3414
|
+
background: color-mix(in srgb, var(--accent) 8%, var(--surface));
|
|
3415
|
+
color: var(--accent-strong);
|
|
3416
|
+
}
|
|
3417
|
+
.g-save-profile-pick span {
|
|
3418
|
+
min-width: 0;
|
|
3419
|
+
overflow: hidden;
|
|
3420
|
+
text-overflow: ellipsis;
|
|
3421
|
+
white-space: nowrap;
|
|
3422
|
+
}
|
|
3423
|
+
.g-save-profile-pick small,
|
|
3424
|
+
.g-save-profile-summary,
|
|
3425
|
+
.g-save-profile-status,
|
|
3426
|
+
.form-row small {
|
|
3427
|
+
color: var(--muted);
|
|
3428
|
+
font-size: 12px;
|
|
3429
|
+
line-height: 1.55;
|
|
3430
|
+
}
|
|
3431
|
+
.g-save-profile-target {
|
|
3432
|
+
display: grid;
|
|
3433
|
+
grid-template-columns: auto minmax(0, 1fr);
|
|
3434
|
+
gap: 4px 10px;
|
|
3435
|
+
align-items: center;
|
|
3436
|
+
padding: 9px 10px;
|
|
3437
|
+
border: 1px solid var(--border-soft);
|
|
3438
|
+
border-radius: var(--radius-sm);
|
|
3439
|
+
background: var(--surface-muted);
|
|
3440
|
+
}
|
|
3441
|
+
.g-save-profile-target > span {
|
|
3442
|
+
color: var(--muted);
|
|
3443
|
+
font-size: 12px;
|
|
3444
|
+
font-weight: 700;
|
|
3445
|
+
}
|
|
3446
|
+
.g-save-profile-target code {
|
|
3447
|
+
min-width: 0;
|
|
3448
|
+
overflow: hidden;
|
|
3449
|
+
text-overflow: ellipsis;
|
|
3450
|
+
}
|
|
3451
|
+
.g-save-profile-target small {
|
|
3452
|
+
grid-column: 2;
|
|
3453
|
+
color: var(--muted);
|
|
3454
|
+
font-size: 12px;
|
|
3455
|
+
}
|
|
3456
|
+
.g-save-profile-summary {
|
|
3457
|
+
padding: 8px 10px;
|
|
3458
|
+
border-radius: var(--radius-sm);
|
|
3459
|
+
background: var(--surface-muted);
|
|
3460
|
+
}
|
|
3461
|
+
.g-save-profile-summary.warn,
|
|
3462
|
+
.g-save-profile-status.error {
|
|
3463
|
+
color: var(--danger);
|
|
3464
|
+
background: var(--danger-soft);
|
|
3465
|
+
}
|
|
3466
|
+
.g-save-profile-status {
|
|
3467
|
+
min-height: 20px;
|
|
3468
|
+
}
|
|
3469
|
+
.g-save-profile-status.ok {
|
|
3470
|
+
color: var(--success);
|
|
3471
|
+
}
|
|
3033
3472
|
.orb-dot {
|
|
3034
3473
|
position: absolute;
|
|
3035
3474
|
right: -1px;
|
|
@@ -4471,6 +4910,43 @@ button.contrast:hover { background: var(--danger-soft); border-color: var(--dang
|
|
|
4471
4910
|
.toggle-row .switch, .toggle-row .switch::after { transition: none; }
|
|
4472
4911
|
}
|
|
4473
4912
|
|
|
4913
|
+
.bd-profile-roles {
|
|
4914
|
+
margin-top: 12px;
|
|
4915
|
+
padding-top: 12px;
|
|
4916
|
+
border-top: 1px solid var(--border-soft);
|
|
4917
|
+
}
|
|
4918
|
+
.bd-profile-role-entry > summary {
|
|
4919
|
+
cursor: pointer;
|
|
4920
|
+
color: var(--fg);
|
|
4921
|
+
font-weight: 700;
|
|
4922
|
+
}
|
|
4923
|
+
.bd-profile-roles .bd-subsection-title {
|
|
4924
|
+
margin: 0 0 4px;
|
|
4925
|
+
}
|
|
4926
|
+
.bd-profile-role-list {
|
|
4927
|
+
display: grid;
|
|
4928
|
+
gap: 8px;
|
|
4929
|
+
margin-top: 10px;
|
|
4930
|
+
}
|
|
4931
|
+
.bd-profile-role-entry {
|
|
4932
|
+
padding: 8px 10px;
|
|
4933
|
+
border: 1px solid var(--border-soft);
|
|
4934
|
+
border-radius: var(--radius-sm);
|
|
4935
|
+
background: var(--surface-muted);
|
|
4936
|
+
}
|
|
4937
|
+
.bd-profile-role-content pre {
|
|
4938
|
+
margin: 8px 0 0;
|
|
4939
|
+
padding: 10px;
|
|
4940
|
+
max-height: 220px;
|
|
4941
|
+
overflow: auto;
|
|
4942
|
+
white-space: pre-wrap;
|
|
4943
|
+
overflow-wrap: anywhere;
|
|
4944
|
+
border-radius: var(--radius-sm);
|
|
4945
|
+
background: var(--surface-raised);
|
|
4946
|
+
color: var(--fg);
|
|
4947
|
+
font: 12px/1.5 var(--mono);
|
|
4948
|
+
}
|
|
4949
|
+
|
|
4474
4950
|
.bd-tile textarea,
|
|
4475
4951
|
.bd-tile input[type=text],
|
|
4476
4952
|
.bd-tile input[type=number] {
|
|
@@ -6017,3 +6493,609 @@ body.cp-fx-slice main { animation: cp-fx-slice 0.32s steps(2, end); }
|
|
|
6017
6493
|
@media (prefers-reduced-motion: reduce) {
|
|
6018
6494
|
.skin-intro { display: none; }
|
|
6019
6495
|
}
|
|
6496
|
+
|
|
6497
|
+
/* ── Insight workbench (owner-only #/insights page) ───────────────────────────
|
|
6498
|
+
Visual layer ported from the reference app (agent-session-insights, html.ts
|
|
6499
|
+
STYLE) so this page reads as that read-only "工作台", not generic dashboard
|
|
6500
|
+
cards. The reference is dark-only with hardcoded hexes; here its variables
|
|
6501
|
+
(--panel/--line/--mut/--acc/--good/--warn/--bad) and stray hexes are remapped
|
|
6502
|
+
to the dashboard's light/dark design tokens and SCOPED under .insights-page,
|
|
6503
|
+
so the workbench look carries over while still respecting the active theme.
|
|
6504
|
+
Phase colors match the reference exactly: edit=green research=blue run=amber
|
|
6505
|
+
delegate=purple discuss=gray. */
|
|
6506
|
+
.insights-page {
|
|
6507
|
+
--panel: var(--surface);
|
|
6508
|
+
--line: var(--border);
|
|
6509
|
+
--mut: var(--muted);
|
|
6510
|
+
--acc: var(--accent);
|
|
6511
|
+
--good: var(--success);
|
|
6512
|
+
--warn: var(--warning);
|
|
6513
|
+
--bad: var(--danger);
|
|
6514
|
+
--ins-inner: var(--surface-muted);
|
|
6515
|
+
--ins-recess: var(--bg-soft);
|
|
6516
|
+
--ins-faint: var(--faint);
|
|
6517
|
+
--ph-edit: var(--success);
|
|
6518
|
+
--ph-research: var(--accent);
|
|
6519
|
+
--ph-run: var(--warning);
|
|
6520
|
+
--ph-delegate: #a06fd6;
|
|
6521
|
+
--ph-discuss: var(--muted);
|
|
6522
|
+
--ph-unknown: var(--border);
|
|
6523
|
+
color: var(--fg);
|
|
6524
|
+
font-size: 14px;
|
|
6525
|
+
line-height: 1.5;
|
|
6526
|
+
}
|
|
6527
|
+
.insight-page-status { color: var(--mut); font-size: 12px; margin: 4px 0 14px; min-height: 14px; }
|
|
6528
|
+
|
|
6529
|
+
/* section labels (uppercase eyebrow) — reference h3 */
|
|
6530
|
+
.insights-page .block h3,
|
|
6531
|
+
.insights-page .insight-detail h3,
|
|
6532
|
+
.insights-page .insight-section-label {
|
|
6533
|
+
font-size: 12px; color: var(--mut); font-weight: 600; letter-spacing: .06em;
|
|
6534
|
+
text-transform: uppercase; margin: 0 0 10px;
|
|
6535
|
+
}
|
|
6536
|
+
|
|
6537
|
+
/* metric cards (reference .cards/.card/.cv/.cl/.cs) */
|
|
6538
|
+
.insights-page .cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; }
|
|
6539
|
+
.insights-page .insights-metrics { margin-bottom: 16px; }
|
|
6540
|
+
.insights-page .card { background: var(--panel); border: 1px solid var(--line); border-radius: 8px; padding: 12px 14px; }
|
|
6541
|
+
.insights-page .cv { font-size: 20px; font-weight: 600; line-height: 1.2; }
|
|
6542
|
+
.insights-page .cl { color: var(--mut); font-size: 12px; margin-top: 4px; }
|
|
6543
|
+
.insights-page .cs { color: var(--mut); font-size: 11px; margin-top: 2px; }
|
|
6544
|
+
|
|
6545
|
+
/* overview blocks (reference .block/.grid2col/.recblock) */
|
|
6546
|
+
.insights-page .block { background: var(--panel); border: 1px solid var(--line); border-radius: 8px; padding: 12px 14px; }
|
|
6547
|
+
.insights-page .recblock { background: var(--ins-inner); }
|
|
6548
|
+
.insights-overview-grid { display: grid; grid-template-columns: 1.25fr 1fr; gap: 14px; margin: 16px 0 18px; }
|
|
6549
|
+
@media (max-width: 900px) { .insights-overview-grid { grid-template-columns: 1fr; } }
|
|
6550
|
+
|
|
6551
|
+
/* recommendations (reference .reclist/.rec/.rectop/.recev/.recact) */
|
|
6552
|
+
.insights-page .reclist { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 8px; }
|
|
6553
|
+
.insights-page .insight-detail .reclist { grid-template-columns: 1fr; }
|
|
6554
|
+
.insights-page .rec {
|
|
6555
|
+
display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px; border: 1px solid var(--line); border-left: 3px solid var(--mut);
|
|
6556
|
+
border-radius: 7px; background: var(--panel); padding: 9px 11px;
|
|
6557
|
+
}
|
|
6558
|
+
/* <button class="rec"> carries UA defaults (justify-content + text-align: center)
|
|
6559
|
+
that centre the card body. The non-clickable rec (no evidence ⇒ no .rec-clickable,
|
|
6560
|
+
which is the only place text-align:left lived) hit exactly that — its impact/actions
|
|
6561
|
+
rendered centred. Reset on every rec button so clickable/non-clickable align identically. */
|
|
6562
|
+
.insights-page button.rec { justify-items: stretch; justify-content: stretch; text-align: left; width: 100%; font: inherit; color: inherit; appearance: none; -webkit-appearance: none; }
|
|
6563
|
+
.insights-page .recblock .rec { background: var(--ins-recess); }
|
|
6564
|
+
.insights-page .rec.bad { border-left-color: var(--bad); }
|
|
6565
|
+
.insights-page .rec.warn { border-left-color: var(--warn); }
|
|
6566
|
+
.insights-page .rec.info { border-left-color: var(--acc); }
|
|
6567
|
+
.insights-page .rectop { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
|
|
6568
|
+
.insights-page .rectop b { font-size: 13px; line-height: 1.35; }
|
|
6569
|
+
.insights-page .rectop span { flex: 0 0 auto; color: var(--mut); border: 1px solid var(--line); border-radius: 999px; padding: 1px 8px; font-size: 11px; white-space: nowrap; }
|
|
6570
|
+
.insights-page .rec.bad .rectop span { color: var(--bad); border-color: var(--bad); }
|
|
6571
|
+
.insights-page .rec.warn .rectop span { color: var(--warn); border-color: var(--warn); }
|
|
6572
|
+
.insights-page .rec.info .rectop span { color: var(--acc); border-color: var(--acc); }
|
|
6573
|
+
.insights-page .recev { color: var(--fg); font-size: 12px; line-height: 1.45; }
|
|
6574
|
+
.insights-page .recact { color: var(--mut); font-size: 12px; line-height: 1.45; }
|
|
6575
|
+
|
|
6576
|
+
/* top failed tools — horizontal bars (reference .hbrow/.hbtrack/.hbfill/.hbval) */
|
|
6577
|
+
.insights-page .hbars { display: grid; gap: 4px; }
|
|
6578
|
+
.insights-page .hbrow { display: grid; grid-template-columns: 116px 1fr 64px; align-items: center; gap: 10px; padding: 4px 4px; border-radius: 6px; }
|
|
6579
|
+
.insights-page .hblabel { font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-family: var(--mono); }
|
|
6580
|
+
.insights-page .hbtrack { background: var(--ins-inner); border-radius: 6px; height: 14px; overflow: hidden; }
|
|
6581
|
+
.insights-page .hbfill { height: 100%; background: linear-gradient(90deg, var(--danger-soft), var(--bad)); border-radius: 6px; min-width: 3px; transform-origin: left; animation: insight-bar-grow .55s ease both; }
|
|
6582
|
+
.insights-page .hbval { font-size: 12px; color: var(--mut); text-align: right; white-space: nowrap; }
|
|
6583
|
+
|
|
6584
|
+
/* workbench: session list | detail (master-detail) */
|
|
6585
|
+
.insight-workbench { display: grid; grid-template-columns: minmax(260px, 320px) minmax(0, 1fr); gap: 14px; align-items: start; }
|
|
6586
|
+
@media (max-width: 900px) { .insight-workbench { grid-template-columns: 1fr; } }
|
|
6587
|
+
.insight-workbench > *, .insight-list-panel, .insight-detail { min-width: 0; }
|
|
6588
|
+
.insight-list-panel, .insight-detail { background: var(--panel); border: 1px solid var(--line); border-radius: 10px; padding: 12px 14px; }
|
|
6589
|
+
.insight-list-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
|
|
6590
|
+
.insight-list-head h3 { font-size: 13px; margin: 0; }
|
|
6591
|
+
.insight-list-head span { font-size: 11px; color: var(--mut); }
|
|
6592
|
+
|
|
6593
|
+
/* session rows (reference .slist/.srow/.srmain/.srstats) */
|
|
6594
|
+
.insights-page .slist { display: grid; gap: 8px; max-height: 72vh; overflow: auto; }
|
|
6595
|
+
.insights-page .srow {
|
|
6596
|
+
display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px; width: 100%; box-sizing: border-box;
|
|
6597
|
+
background: var(--ins-inner); border: 1px solid var(--line); border-left: 3px solid transparent;
|
|
6598
|
+
border-radius: 8px; padding: 9px 11px; color: inherit; text-align: left; cursor: pointer;
|
|
6599
|
+
transition: background .12s ease, border-color .12s ease, transform .12s ease, box-shadow .15s ease;
|
|
6600
|
+
}
|
|
6601
|
+
.insights-page .srow:hover { background: var(--ins-recess); transform: translateY(-1px); box-shadow: var(--shadow); }
|
|
6602
|
+
.insights-page .srow.on { border-left-color: var(--acc); background: var(--accent-soft); }
|
|
6603
|
+
.insights-page .srow.review { border-left-color: var(--bad); }
|
|
6604
|
+
.insights-page .srmain { display: grid; gap: 5px; min-width: 0; }
|
|
6605
|
+
.insights-page .srmain strong { font-size: 13px; font-weight: 600; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
|
|
6606
|
+
.insights-page .srmain small { font-size: 11px; color: var(--mut); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
6607
|
+
.insights-page .srstats { display: flex; flex-wrap: wrap; gap: 4px 6px; }
|
|
6608
|
+
.insights-page .srstats b { font-size: 11px; color: var(--mut); font-weight: 500; background: var(--panel); border: 1px solid var(--line); border-radius: 999px; padding: 1px 8px; white-space: nowrap; }
|
|
6609
|
+
.insights-page .srstats b em { font-style: normal; color: var(--fg); font-weight: 600; margin-left: 4px; }
|
|
6610
|
+
.insights-page .srstats b.bad em { color: var(--bad); }
|
|
6611
|
+
.insights-page .srmsg { font-size: 11px; color: var(--mut); }
|
|
6612
|
+
|
|
6613
|
+
/* phase-mix mini bar (reference .mph) + proportional bar (reference .pmx) */
|
|
6614
|
+
.insights-page .mph { display: flex; gap: 1px; height: 7px; overflow: hidden; border-radius: 3px; margin-top: 1px; background: var(--ins-recess); }
|
|
6615
|
+
.insights-page .mph i { display: block; height: 100%; min-width: 1px; }
|
|
6616
|
+
.insights-page .pmx { display: flex; height: 11px; border-radius: 5px; overflow: hidden; background: var(--ins-inner); }
|
|
6617
|
+
.insights-page .pmx i { display: block; height: 100%; }
|
|
6618
|
+
.insights-page i.phase-research { background: var(--ph-research); }
|
|
6619
|
+
.insights-page i.phase-edit { background: var(--ph-edit); }
|
|
6620
|
+
.insights-page i.phase-run { background: var(--ph-run); }
|
|
6621
|
+
.insights-page i.phase-delegate { background: var(--ph-delegate); }
|
|
6622
|
+
.insights-page i.phase-discuss { background: var(--ph-discuss); }
|
|
6623
|
+
.insights-page i.phase-unknown { background: var(--ph-unknown); }
|
|
6624
|
+
.insights-page .leg { font-size: 11px; color: var(--mut); margin-top: 6px; }
|
|
6625
|
+
.insights-page .ld { display: inline-block; width: 9px; height: 9px; border-radius: 2px; margin: 0 4px 0 10px; vertical-align: middle; }
|
|
6626
|
+
|
|
6627
|
+
/* detail head (reference .shead/.smeta) */
|
|
6628
|
+
.insights-page .shead h2 { font-size: 16px; margin: 0 0 4px; }
|
|
6629
|
+
.insights-page .smeta { color: var(--mut); font-size: 12px; margin: 0 0 12px; }
|
|
6630
|
+
.insights-page .smeta code { font-family: var(--mono); }
|
|
6631
|
+
.insights-page .insight-detail-metrics { margin-bottom: 10px; }
|
|
6632
|
+
.insights-page .insight-meta { font-size: 12px; color: var(--mut); margin: 8px 0; }
|
|
6633
|
+
.insights-page .insight-empty { color: var(--mut); padding: 24px; text-align: center; }
|
|
6634
|
+
.insights-page .mut { color: var(--ins-faint); }
|
|
6635
|
+
.insights-page .note { color: var(--mut); font-size: 12px; margin-top: 8px; }
|
|
6636
|
+
|
|
6637
|
+
/* detail tabs: 动作 span / 逐轮对账 (reference .detailtabbar) */
|
|
6638
|
+
.insights-page .detailtabs { margin-top: 16px; }
|
|
6639
|
+
.insights-page .detailtabbar { display: flex; gap: 6px; align-items: center; border-bottom: 1px solid var(--line); margin-bottom: 12px; }
|
|
6640
|
+
.insights-page .detailtabbar button {
|
|
6641
|
+
background: transparent; color: var(--mut); border: 1px solid transparent; border-bottom: 0;
|
|
6642
|
+
border-radius: 7px 7px 0 0; padding: 7px 13px; font: inherit; font-size: 12px; cursor: pointer; margin-bottom: -1px;
|
|
6643
|
+
}
|
|
6644
|
+
.insights-page .detailtabbar button:hover { color: var(--fg); }
|
|
6645
|
+
.insights-page .detailtabbar button.on { color: var(--fg); background: var(--panel); border-color: var(--line); font-weight: 600; }
|
|
6646
|
+
.insights-page .detailtabbar b { font-weight: 500; color: var(--acc); margin-left: 5px; }
|
|
6647
|
+
.insights-page .insight-tab-panel[hidden] { display: none; }
|
|
6648
|
+
|
|
6649
|
+
/* 动作 span — trace (reference .tracebox/.spanlist/.spanrow/.spanst/.spanline) */
|
|
6650
|
+
.insights-page .tracebox { background: var(--ins-inner); border: 1px solid var(--line); border-radius: 8px; padding: 10px 12px; }
|
|
6651
|
+
.insights-page .tracehead { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: var(--mut); font-size: 12px; margin-bottom: 8px; }
|
|
6652
|
+
.insights-page .tracehead b { color: var(--fg); }
|
|
6653
|
+
.insights-page .tracebad { color: var(--bad); }
|
|
6654
|
+
.insights-page .spanlist { display: grid; gap: 5px; max-height: 62vh; overflow: auto; }
|
|
6655
|
+
.insights-page .spanrow {
|
|
6656
|
+
display: grid; grid-template-columns: 104px minmax(0, 1fr); gap: 9px;
|
|
6657
|
+
background: var(--panel); border: 1px solid var(--line); border-left: 3px solid var(--line);
|
|
6658
|
+
border-radius: 7px; padding: 7px 9px;
|
|
6659
|
+
}
|
|
6660
|
+
.insights-page .spanrow.ph-research { border-left-color: var(--ph-research); }
|
|
6661
|
+
.insights-page .spanrow.ph-edit { border-left-color: var(--ph-edit); }
|
|
6662
|
+
.insights-page .spanrow.ph-run { border-left-color: var(--ph-run); }
|
|
6663
|
+
.insights-page .spanrow.ph-delegate { border-left-color: var(--ph-delegate); }
|
|
6664
|
+
.insights-page .spanrow.ph-discuss { border-left-color: var(--ph-discuss); }
|
|
6665
|
+
.insights-page .spanrow.error { background: var(--danger-soft); border-color: var(--bad); border-left-color: var(--bad); }
|
|
6666
|
+
.insights-page .spanrail { display: flex; flex-direction: column; gap: 3px; color: var(--ins-faint); font-size: 11px; font-family: var(--mono); white-space: nowrap; }
|
|
6667
|
+
.insights-page .spanrail .sr-turn { color: var(--mut); }
|
|
6668
|
+
.insights-page .spanbody { display: grid; gap: 4px; min-width: 0; }
|
|
6669
|
+
.insights-page .spantop { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; color: var(--mut); font-size: 11px; }
|
|
6670
|
+
.insights-page .spantop b { font-family: var(--mono); color: var(--fg); font-size: 12px; }
|
|
6671
|
+
.insights-page .spanst { border-radius: 999px; background: var(--ins-inner); border: 1px solid var(--line); padding: 1px 8px; font-size: 10px; font-weight: 700; }
|
|
6672
|
+
.insights-page .spanst.ok { color: var(--good); border-color: var(--good); }
|
|
6673
|
+
.insights-page .spanst.error { color: var(--bad); border-color: var(--bad); }
|
|
6674
|
+
.insights-page .spanst.running { color: var(--warn); border-color: var(--warn); }
|
|
6675
|
+
.insights-page .spanline { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 8px; align-items: start; }
|
|
6676
|
+
.insights-page .spanline > span { color: var(--ins-faint); font-size: 11px; text-align: right; line-height: 1.6; }
|
|
6677
|
+
.insights-page .spanline code, .insights-page .spanline em {
|
|
6678
|
+
min-width: 0; overflow-wrap: anywhere; background: var(--bg); border: 1px solid var(--line);
|
|
6679
|
+
border-radius: 5px; padding: 3px 7px; font-family: var(--mono); font-size: 11px; line-height: 1.45; color: var(--fg); font-style: normal;
|
|
6680
|
+
}
|
|
6681
|
+
.insights-page .spanline em { color: var(--mut); }
|
|
6682
|
+
|
|
6683
|
+
/* 逐轮对账 — ledger (reference .ledger/.lrow/.lhead/.lstat) */
|
|
6684
|
+
.insights-page .ledger { display: grid; gap: 6px; max-height: 62vh; overflow: auto; }
|
|
6685
|
+
.insights-page .lrow { background: var(--panel); border: 1px solid var(--line); border-left: 3px solid var(--line); border-radius: 8px; padding: 8px 12px; }
|
|
6686
|
+
.insights-page .lrow.dom-research { border-left-color: var(--ph-research); }
|
|
6687
|
+
.insights-page .lrow.dom-edit { border-left-color: var(--ph-edit); }
|
|
6688
|
+
.insights-page .lrow.dom-run { border-left-color: var(--ph-run); }
|
|
6689
|
+
.insights-page .lrow.dom-delegate { border-left-color: var(--ph-delegate); }
|
|
6690
|
+
.insights-page .lrow.dom-discuss { border-left-color: var(--ph-discuss); }
|
|
6691
|
+
.insights-page .lhead { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
|
|
6692
|
+
.insights-page .lno { color: var(--mut); font-size: 12px; font-family: var(--mono); font-weight: 700; flex: 0 0 auto; }
|
|
6693
|
+
.insights-page .lphases { display: flex; flex-wrap: wrap; gap: 5px; }
|
|
6694
|
+
.insights-page .lphase { display: inline-flex; align-items: center; gap: 5px; background: var(--ins-inner); border-radius: 999px; padding: 2px 8px; font-size: 11px; color: var(--fg); }
|
|
6695
|
+
.insights-page .lphase::before { content: ''; width: 6px; height: 6px; border-radius: 999px; background: var(--mut); }
|
|
6696
|
+
.insights-page .lphase.phase-research::before { background: var(--ph-research); }
|
|
6697
|
+
.insights-page .lphase.phase-edit::before { background: var(--ph-edit); }
|
|
6698
|
+
.insights-page .lphase.phase-run::before { background: var(--ph-run); }
|
|
6699
|
+
.insights-page .lphase.phase-delegate::before { background: var(--ph-delegate); }
|
|
6700
|
+
.insights-page .lphase.phase-discuss::before { background: var(--ph-discuss); }
|
|
6701
|
+
.insights-page .lstat { display: flex; gap: 14px; align-items: center; margin-top: 6px; font-size: 11px; color: var(--mut); flex-wrap: wrap; }
|
|
6702
|
+
.insights-page .lstat b { color: var(--fg); font-weight: 600; }
|
|
6703
|
+
.insights-page .lerr { color: var(--bad); font-weight: 600; }
|
|
6704
|
+
.insights-page .lcontent { display: grid; gap: 6px; margin-top: 8px; min-width: 0; }
|
|
6705
|
+
.insights-page .lcontent-preview,
|
|
6706
|
+
.insights-page .lcontent-more { display: grid; gap: 5px; min-width: 0; }
|
|
6707
|
+
.insights-page .lcontent-line {
|
|
6708
|
+
display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 8px; align-items: start;
|
|
6709
|
+
background: var(--ins-inner); border: 1px solid var(--line); border-radius: 6px; padding: 5px 8px; min-width: 0;
|
|
6710
|
+
}
|
|
6711
|
+
.insights-page .lcontent-line.error { border-color: rgba(248, 81, 73, .35); background: rgba(248, 81, 73, .07); }
|
|
6712
|
+
.insights-page .lcontent-line b {
|
|
6713
|
+
min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
|
|
6714
|
+
color: var(--mut); font-family: var(--mono); font-size: 11px; font-weight: 650;
|
|
6715
|
+
}
|
|
6716
|
+
.insights-page .lcontent-line span {
|
|
6717
|
+
min-width: 0; color: var(--fg); font-family: var(--mono); font-size: 11px; line-height: 1.45;
|
|
6718
|
+
display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere;
|
|
6719
|
+
}
|
|
6720
|
+
.insights-page .lcontent details { color: var(--mut); font-size: 11px; }
|
|
6721
|
+
.insights-page .lcontent summary {
|
|
6722
|
+
cursor: pointer; user-select: none; display: inline-flex; width: fit-content;
|
|
6723
|
+
border: 1px dashed var(--line); border-radius: 999px; padding: 2px 8px; background: var(--bg);
|
|
6724
|
+
}
|
|
6725
|
+
.insights-page .lcontent summary:hover { color: var(--fg); border-color: var(--acc); }
|
|
6726
|
+
.insights-page .lcontent details[open] .lcontent-more { margin-top: 6px; max-height: 260px; overflow: auto; padding-right: 2px; }
|
|
6727
|
+
.insights-page .lcontent details[open] .lcontent-line span {
|
|
6728
|
+
display: block; max-height: 96px; overflow: auto; white-space: pre-wrap;
|
|
6729
|
+
}
|
|
6730
|
+
.insights-page .lcontent-omitted,
|
|
6731
|
+
.insights-page .lcontent-empty { color: var(--mut); font-size: 11px; }
|
|
6732
|
+
|
|
6733
|
+
/* diagnosis-driven: recommendations as evidence entry points + focus/highlight */
|
|
6734
|
+
.insights-page .rec.rec-clickable {
|
|
6735
|
+
cursor: pointer; width: 100%; text-align: left; font: inherit; color: inherit;
|
|
6736
|
+
appearance: none; -webkit-appearance: none; transition: border-color .15s, box-shadow .15s, transform .04s;
|
|
6737
|
+
}
|
|
6738
|
+
.insights-page .rec.rec-clickable:hover { border-color: var(--acc); }
|
|
6739
|
+
.insights-page .rec.rec-clickable:active { transform: translateY(1px); }
|
|
6740
|
+
.insights-page .rec.active { border-color: var(--acc); box-shadow: 0 0 0 1px var(--acc) inset; }
|
|
6741
|
+
.insights-page .rec-cta { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; font-weight: 650; color: var(--acc); }
|
|
6742
|
+
.insights-page .rec.active .rec-cta::before { content: ''; width: 6px; height: 6px; border-radius: 999px; background: var(--acc); }
|
|
6743
|
+
.insights-page .spanrow.hot { border-left-width: 4px; box-shadow: 0 0 0 1px var(--acc) inset; }
|
|
6744
|
+
.insights-page .tracehead .ev-toggle {
|
|
6745
|
+
cursor: pointer; font: inherit; font-size: 11px; color: var(--mut); background: var(--bg);
|
|
6746
|
+
border: 1px dashed var(--line); border-radius: 999px; padding: 2px 10px; white-space: nowrap;
|
|
6747
|
+
}
|
|
6748
|
+
.insights-page .tracehead .ev-toggle:hover { color: var(--fg); border-color: var(--acc); }
|
|
6749
|
+
.insights-page .ev-reason { margin: 0 0 8px; font-size: 12px; color: var(--mut); line-height: 1.45; }
|
|
6750
|
+
|
|
6751
|
+
/* per-turn efficiency metrics (read/edit/run/fail/time + dominant phase) */
|
|
6752
|
+
.insights-page .ldom { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; font-weight: 650; color: var(--fg); flex: 0 0 auto; }
|
|
6753
|
+
.insights-page .ldom::before { content: ''; width: 7px; height: 7px; border-radius: 999px; background: var(--mut); }
|
|
6754
|
+
.insights-page .ldom.phase-research::before { background: var(--ph-research); }
|
|
6755
|
+
.insights-page .ldom.phase-edit::before { background: var(--ph-edit); }
|
|
6756
|
+
.insights-page .ldom.phase-run::before { background: var(--ph-run); }
|
|
6757
|
+
.insights-page .ldom.phase-delegate::before { background: var(--ph-delegate); }
|
|
6758
|
+
.insights-page .ldom.phase-discuss::before { background: var(--ph-discuss); }
|
|
6759
|
+
.insights-page .lmets { display: inline-flex; flex-wrap: wrap; gap: 6px; margin-left: auto; align-items: center; }
|
|
6760
|
+
.insights-page .lmet {
|
|
6761
|
+
display: inline-flex; align-items: baseline; gap: 5px; font-size: 11px; color: var(--mut);
|
|
6762
|
+
background: var(--ins-inner); border-radius: 6px; padding: 2px 7px; border-left: 2px solid var(--line);
|
|
6763
|
+
}
|
|
6764
|
+
.insights-page .lmet i { font-style: normal; }
|
|
6765
|
+
.insights-page .lmet b { color: var(--fg); font-weight: 700; font-family: var(--mono); }
|
|
6766
|
+
.insights-page .lmet.zero { opacity: .4; }
|
|
6767
|
+
.insights-page .lmet.phase-research { border-left-color: var(--ph-research); }
|
|
6768
|
+
.insights-page .lmet.phase-edit { border-left-color: var(--ph-edit); }
|
|
6769
|
+
.insights-page .lmet.phase-run { border-left-color: var(--ph-run); }
|
|
6770
|
+
.insights-page .lmet.phase-delegate { border-left-color: var(--ph-delegate); }
|
|
6771
|
+
.insights-page .lmet.phase-discuss { border-left-color: var(--ph-discuss); }
|
|
6772
|
+
.insights-page .lmet-bad { border-left-color: var(--bad); color: var(--bad); }
|
|
6773
|
+
.insights-page .lmet-bad b { color: var(--bad); }
|
|
6774
|
+
.insights-page .lmet-dur { border-left-color: var(--acc); }
|
|
6775
|
+
.insights-page .lrow.hot { border-left-width: 4px; box-shadow: 0 0 0 1px var(--acc) inset; }
|
|
6776
|
+
|
|
6777
|
+
/* enriched evidence: intent→result span rows */
|
|
6778
|
+
.insights-page .span-subj { font-family: var(--mono); font-size: 11px; color: var(--fg); background: var(--ins-recess); border-radius: 5px; padding: 1px 6px; }
|
|
6779
|
+
.insights-page .span-dur { margin-left: auto; color: var(--mut); font-size: 11px; font-family: var(--mono); flex: 0 0 auto; }
|
|
6780
|
+
.insights-page .span-outcome { margin-top: 4px; }
|
|
6781
|
+
.insights-page .span-res { display: inline-flex; align-items: center; font-size: 11px; border-radius: 999px; padding: 1px 8px; border: 1px solid var(--line); }
|
|
6782
|
+
.insights-page .span-res.rc-bad { color: var(--bad); border-color: var(--bad); background: var(--danger-soft); }
|
|
6783
|
+
/* evidence groups (失败/慢/返工) */
|
|
6784
|
+
.insights-page .evidence { display: grid; gap: 12px; }
|
|
6785
|
+
.insights-page .evgroup { display: grid; gap: 6px; }
|
|
6786
|
+
.insights-page .evgroup-head { display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--fg); }
|
|
6787
|
+
.insights-page .evgroup-head b { font-weight: 700; }
|
|
6788
|
+
.insights-page .evgroup-head span { color: var(--mut); background: var(--ins-inner); border-radius: 999px; padding: 0 8px; font-size: 11px; }
|
|
6789
|
+
.insights-page .evgroup-failure .evgroup-head b { color: var(--bad); }
|
|
6790
|
+
.insights-page .evgroup-slow .evgroup-head b { color: var(--warn); }
|
|
6791
|
+
.insights-page .ev-timeline > summary { cursor: pointer; user-select: none; color: var(--mut); font-size: 12px; padding: 4px 0; list-style-position: inside; }
|
|
6792
|
+
.insights-page .ev-timeline > summary:hover { color: var(--fg); }
|
|
6793
|
+
.insights-page .ev-timeline[open] { display: grid; gap: 5px; margin-top: 2px; }
|
|
6794
|
+
/* 轮次效率 cards */
|
|
6795
|
+
.insights-page .turnlist { display: grid; gap: 8px; max-height: 62vh; overflow: auto; }
|
|
6796
|
+
.insights-page .turncard { background: var(--panel); border: 1px solid var(--line); border-left: 3px solid var(--mut); border-radius: 8px; padding: 9px 12px; }
|
|
6797
|
+
.insights-page .turncard.sev-bad { border-left-color: var(--bad); }
|
|
6798
|
+
.insights-page .turncard.sev-warn { border-left-color: var(--warn); }
|
|
6799
|
+
.insights-page .turncard.sev-info { border-left-color: var(--acc); }
|
|
6800
|
+
.insights-page .turncard.hot { box-shadow: 0 0 0 1px var(--acc) inset; }
|
|
6801
|
+
.insights-page .turncard-head { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
|
|
6802
|
+
.insights-page .turn-no { color: var(--mut); font-family: var(--mono); font-size: 12px; font-weight: 700; flex: 0 0 auto; }
|
|
6803
|
+
.insights-page .turn-headline { font-size: 13px; font-weight: 650; color: var(--fg); }
|
|
6804
|
+
.insights-page .turn-metrics { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 7px; }
|
|
6805
|
+
.insights-page .tm { display: inline-flex; align-items: baseline; gap: 4px; font-size: 11px; color: var(--mut); background: var(--ins-inner); border-radius: 6px; padding: 2px 7px; }
|
|
6806
|
+
.insights-page .tm b { color: var(--fg); font-weight: 700; font-family: var(--mono); }
|
|
6807
|
+
.insights-page .tm.bad { color: var(--bad); }
|
|
6808
|
+
.insights-page .tm.bad b { color: var(--bad); }
|
|
6809
|
+
.insights-page .turn-ev { margin-top: 8px; }
|
|
6810
|
+
.insights-page .turn-ev > summary { cursor: pointer; user-select: none; color: var(--mut); font-size: 11px; border: 1px dashed var(--line); border-radius: 999px; padding: 2px 8px; width: fit-content; list-style-position: inside; }
|
|
6811
|
+
.insights-page .turn-ev > summary:hover { color: var(--fg); border-color: var(--acc); }
|
|
6812
|
+
.insights-page .turn-ev[open] .spanlist { margin-top: 6px; }
|
|
6813
|
+
.insights-page .turn-hidden { padding: 6px 2px 0; font-size: 11px; }
|
|
6814
|
+
|
|
6815
|
+
/* ── v3: actionable recommendations + compact evidence rows + 详情 drawer + per-turn timeline ── */
|
|
6816
|
+
.insights-page .rec-impact { font-size: 12px; color: var(--fg); line-height: 1.45; }
|
|
6817
|
+
.insights-page .rec-actions { margin: 2px 0 0; padding-left: 16px; display: grid; gap: 3px; }
|
|
6818
|
+
.insights-page .rec-actions li { font-size: 12px; color: var(--fg); line-height: 1.4; }
|
|
6819
|
+
.insights-page .rec-why { font-size: 11px; color: var(--mut); line-height: 1.4; }
|
|
6820
|
+
|
|
6821
|
+
/* compact span row: one dense flex line (.sprow-line) + optional 详情 drawer (.spandetail) */
|
|
6822
|
+
.insights-page .spanrow { display: block; grid-template-columns: none; padding: 0; overflow: hidden; }
|
|
6823
|
+
.insights-page .sprow-line { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; padding: 6px 9px; font-size: 12px; }
|
|
6824
|
+
.insights-page .sprow-line.clickable { cursor: pointer; }
|
|
6825
|
+
.insights-page .sprow-line.clickable:hover { background: var(--ins-inner); }
|
|
6826
|
+
.insights-page .spanrow.open > .sprow-line { background: var(--ins-inner); }
|
|
6827
|
+
.insights-page .sprow-line.clickable:focus-visible { outline: 2px solid var(--acc); outline-offset: -2px; }
|
|
6828
|
+
.insights-page .span-turn { color: var(--mut); font-family: var(--mono); font-size: 11px; font-weight: 700; flex: 0 0 auto; }
|
|
6829
|
+
.insights-page .span-what { color: var(--fg); font-weight: 600; flex: 0 0 auto; }
|
|
6830
|
+
.insights-page .span-tags { display: inline-flex; gap: 4px; flex-wrap: wrap; }
|
|
6831
|
+
.insights-page .span-tag { font-size: 10px; color: var(--mut); background: var(--ins-inner); border: 1px solid var(--line); border-radius: 999px; padding: 0 7px; }
|
|
6832
|
+
.insights-page .span-tag.tg-failure { color: var(--bad); border-color: var(--bad); }
|
|
6833
|
+
.insights-page .span-tag.tg-slow { color: var(--warn); border-color: var(--warn); }
|
|
6834
|
+
.insights-page .span-tag.tg-retry { color: var(--ph-delegate); border-color: var(--ph-delegate); }
|
|
6835
|
+
.insights-page .span-detail-btn {
|
|
6836
|
+
flex: 0 0 auto; cursor: pointer; font: inherit; font-size: 11px; color: var(--mut);
|
|
6837
|
+
background: var(--bg); border: 1px solid var(--line); border-radius: 999px; padding: 1px 10px;
|
|
6838
|
+
}
|
|
6839
|
+
.insights-page .span-detail-btn:hover { color: var(--fg); border-color: var(--acc); }
|
|
6840
|
+
.insights-page .spanrow.open .span-detail-btn { color: var(--acc); border-color: var(--acc); }
|
|
6841
|
+
|
|
6842
|
+
.insights-page .spandetail { border-top: 1px dashed var(--line); background: var(--ins-recess); padding: 9px 11px; display: grid; gap: 9px; }
|
|
6843
|
+
.insights-page .span-kv { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 7px 14px; margin: 0; }
|
|
6844
|
+
.insights-page .span-kv > div { display: grid; gap: 1px; min-width: 0; }
|
|
6845
|
+
.insights-page .span-kv dt { color: var(--mut); font-size: 10px; text-transform: uppercase; letter-spacing: .04em; }
|
|
6846
|
+
.insights-page .span-kv dd { margin: 0; color: var(--fg); font-size: 12px; font-family: var(--mono); overflow-wrap: anywhere; }
|
|
6847
|
+
.insights-page .span-flank { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: 11px; color: var(--mut); font-family: var(--mono); }
|
|
6848
|
+
.insights-page .span-ctx { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
|
|
6849
|
+
.insights-page .span-ctx-label { font-size: 10px; color: var(--mut); text-transform: uppercase; letter-spacing: .04em; flex: 0 0 auto; }
|
|
6850
|
+
|
|
6851
|
+
/* operation strip — phase-coloured timeline glyphs (shared by drawer + per-turn rows) */
|
|
6852
|
+
.insights-page .opstrip { display: inline-flex; gap: 3px; flex-wrap: wrap; align-items: center; }
|
|
6853
|
+
.insights-page .op { width: 9px; height: 9px; border-radius: 2px; background: var(--ph-discuss); position: relative; opacity: .9; }
|
|
6854
|
+
.insights-page .op.ph-research { background: var(--ph-research); }
|
|
6855
|
+
.insights-page .op.ph-edit { background: var(--ph-edit); }
|
|
6856
|
+
.insights-page .op.ph-run { background: var(--ph-run); }
|
|
6857
|
+
.insights-page .op.ph-delegate { background: var(--ph-delegate); }
|
|
6858
|
+
.insights-page .op.ph-discuss { background: var(--ph-discuss); }
|
|
6859
|
+
.insights-page .op.bad { outline: 1.5px solid var(--bad); outline-offset: 1px; }
|
|
6860
|
+
.insights-page .op.cur { outline: 2px solid var(--acc); outline-offset: 1px; transform: scale(1.2); z-index: 1; }
|
|
6861
|
+
|
|
6862
|
+
/* 动作 span — filter chips + table */
|
|
6863
|
+
.insights-page .spanfilter { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
|
|
6864
|
+
.insights-page .spanchip {
|
|
6865
|
+
cursor: pointer; font: inherit; font-size: 12px; color: var(--mut);
|
|
6866
|
+
background: var(--ins-inner); border: 1px solid var(--line); border-radius: 999px; padding: 3px 11px;
|
|
6867
|
+
}
|
|
6868
|
+
.insights-page .spanchip b { color: var(--fg); font-family: var(--mono); margin-left: 4px; }
|
|
6869
|
+
.insights-page .spanchip:hover { color: var(--fg); border-color: var(--acc); }
|
|
6870
|
+
.insights-page .spanchip.on { color: var(--fg); border-color: var(--acc); background: var(--accent-soft); }
|
|
6871
|
+
.insights-page .spanchip.tg-failure.on { border-color: var(--bad); color: var(--bad); }
|
|
6872
|
+
.insights-page .spanchip.tg-slow.on { border-color: var(--warn); color: var(--warn); }
|
|
6873
|
+
/* block (not grid): grid items with overflow:hidden collapse their auto-row to the border height */
|
|
6874
|
+
.insights-page .spantable { display: block; max-height: 60vh; overflow: auto; padding-right: 2px; }
|
|
6875
|
+
.insights-page .spantable > .spanrow { margin-bottom: 5px; }
|
|
6876
|
+
.insights-page .spantable > .spanrow:last-child { margin-bottom: 0; }
|
|
6877
|
+
|
|
6878
|
+
/* 逐轮对账 — per-turn timeline (all turns; normal collapsed, flagged severity-coloured) */
|
|
6879
|
+
/* block (not grid): grid items with overflow:hidden collapse their auto-row to the border height */
|
|
6880
|
+
.insights-page .turnlist { display: block; max-height: 62vh; overflow: auto; padding-right: 2px; }
|
|
6881
|
+
.insights-page .turnlist > .turnrow { margin-bottom: 8px; }
|
|
6882
|
+
.insights-page .turnlist > .turnrow:last-child { margin-bottom: 0; }
|
|
6883
|
+
.insights-page .turn-sum { padding: 0 2px 4px; font-size: 11px; }
|
|
6884
|
+
/* 会话轨迹 turn-rail */
|
|
6885
|
+
.insights-page .turnrail-block { background: var(--ins-inner); }
|
|
6886
|
+
.insights-page .turnrail-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
|
|
6887
|
+
.insights-page .turnrail-legend { display: flex; gap: 11px; flex-wrap: wrap; font-size: 11px; color: var(--mut); }
|
|
6888
|
+
.insights-page .rl-item { display: inline-flex; align-items: center; gap: 4px; }
|
|
6889
|
+
.insights-page .rl-item i { width: 8px; height: 8px; border-radius: 2px; display: inline-block; }
|
|
6890
|
+
.insights-page .turnrail { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; margin-top: 10px; }
|
|
6891
|
+
/* filled phase-color nodes on a serial main line (mirrors reference design) */
|
|
6892
|
+
.insights-page .railnode { position: relative; min-width: 27px; height: 27px; padding: 0 7px; border: none; border-radius: 7px; background: var(--ph-discuss); color: #fff; font-size: 12px; font-weight: 600; font-variant-numeric: tabular-nums; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; transition: transform .1s ease, box-shadow .1s ease; }
|
|
6893
|
+
.insights-page .railnode > span { text-shadow: 0 1px 2px rgba(0, 0, 0, .35); }
|
|
6894
|
+
.insights-page .railnode:hover { transform: translateY(-2px); box-shadow: 0 3px 10px rgba(0, 0, 0, .3); }
|
|
6895
|
+
.insights-page .railnode.phase-research { background: var(--ph-research); }
|
|
6896
|
+
.insights-page .railnode.phase-edit { background: var(--ph-edit); }
|
|
6897
|
+
.insights-page .railnode.phase-run { background: var(--ph-run); }
|
|
6898
|
+
.insights-page .railnode.phase-delegate { background: var(--ph-delegate); }
|
|
6899
|
+
.insights-page .railnode.phase-discuss { background: var(--ph-discuss); }
|
|
6900
|
+
.insights-page .railnode.phase-unknown { background: var(--ph-unknown); }
|
|
6901
|
+
.insights-page .railnode.hot { outline: 2px solid var(--acc); outline-offset: 1px; }
|
|
6902
|
+
.insights-page .railnode.dim { opacity: .3; }
|
|
6903
|
+
.insights-page .railnode .rb { position: absolute; width: 7px; height: 7px; border-radius: 50%; border: 1px solid var(--ins-inner); }
|
|
6904
|
+
.insights-page .railnode .rb-fail { top: -3px; right: -3px; background: var(--bad); }
|
|
6905
|
+
.insights-page .railnode .rb-slow { bottom: -3px; right: -3px; background: var(--warn); }
|
|
6906
|
+
.insights-page .railnode .rb-rec { top: -3px; left: -3px; background: var(--acc); }
|
|
6907
|
+
/* 委派分支 — subagent branch dots between main-line nodes */
|
|
6908
|
+
.insights-page .railbranch { display: inline-flex; align-items: center; gap: 2px; padding: 0 2px; }
|
|
6909
|
+
.insights-page .rbr-sub { width: 6px; height: 6px; border-radius: 50%; background: #2bb6c4; display: inline-block; }
|
|
6910
|
+
.insights-page .rl-sep { border-left: 1px solid var(--line); padding-left: 11px; }
|
|
6911
|
+
/* 工作时序 Gantt */
|
|
6912
|
+
.insights-page .gantt-block { background: var(--ins-inner); }
|
|
6913
|
+
.insights-page .gantt-cap { font-size: 11px; color: var(--mut); font-variant-numeric: tabular-nums; }
|
|
6914
|
+
.insights-page .gantt { margin-top: 10px; }
|
|
6915
|
+
.insights-page .gtrack { position: relative; height: 34px; background: var(--ins-recess); border: 1px solid var(--line); border-radius: 6px; overflow: hidden; }
|
|
6916
|
+
.insights-page .gbar { position: absolute; top: 5px; height: 24px; min-width: 2px; padding: 0; border: none; border-radius: 2px; background: var(--ph-discuss); opacity: .8; cursor: pointer; }
|
|
6917
|
+
.insights-page .gbar:hover { opacity: 1; box-shadow: 0 0 0 1px var(--fg); z-index: 2; }
|
|
6918
|
+
.insights-page .gbar.phase-research { background: var(--ph-research); }
|
|
6919
|
+
.insights-page .gbar.phase-edit { background: var(--ph-edit); }
|
|
6920
|
+
.insights-page .gbar.phase-run { background: var(--ph-run); }
|
|
6921
|
+
.insights-page .gbar.phase-delegate { background: var(--ph-delegate); }
|
|
6922
|
+
.insights-page .gbar.phase-discuss { background: var(--ph-discuss); }
|
|
6923
|
+
.insights-page .gbar.phase-unknown { background: var(--ph-unknown); }
|
|
6924
|
+
.insights-page .gbar.gbar-slow { top: 1px; height: 32px; }
|
|
6925
|
+
.insights-page .gbar.gbar-fail { background: var(--bad); box-shadow: 0 0 0 1px var(--bad); opacity: 1; }
|
|
6926
|
+
/* 上下文曲线 context curve */
|
|
6927
|
+
.insights-page .ctxcurve-block { background: var(--ins-inner); }
|
|
6928
|
+
.insights-page .ctxchart { display: flex; gap: 8px; margin-top: 10px; }
|
|
6929
|
+
.insights-page .ctxyaxis { display: flex; flex-direction: column; justify-content: space-between; align-items: flex-end; width: 52px; padding-bottom: 16px; font-size: 10px; color: var(--mut); font-variant-numeric: tabular-nums; }
|
|
6930
|
+
.insights-page .ctxplot { flex: 1; min-width: 0; }
|
|
6931
|
+
.insights-page .ctxcurve { display: block; width: 100%; height: 72px; background: var(--ins-recess); border: 1px solid var(--line); border-radius: 6px; }
|
|
6932
|
+
.insights-page .ctxline { fill: none; stroke: var(--acc); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
|
|
6933
|
+
.insights-page .ctxarea { fill: var(--accent-soft); opacity: .4; stroke: none; }
|
|
6934
|
+
.insights-page .ctxhit { fill: transparent; cursor: crosshair; }
|
|
6935
|
+
.insights-page .ctxhit:hover { fill: var(--acc); opacity: .12; }
|
|
6936
|
+
.insights-page .ctxxaxis { display: flex; justify-content: space-between; margin-top: 3px; font-size: 10px; color: var(--mut); font-variant-numeric: tabular-nums; }
|
|
6937
|
+
/* shared hover tooltip for rail / gantt / context curve */
|
|
6938
|
+
.insights-page .ins-tip { position: fixed; z-index: 1200; pointer-events: none; max-width: 340px; padding: 5px 9px; font-size: 11px; line-height: 1.5; color: var(--fg); background: var(--panel); border: 1px solid var(--line); border-radius: 6px; box-shadow: 0 4px 16px rgba(0, 0, 0, .32); font-variant-numeric: tabular-nums; white-space: nowrap; }
|
|
6939
|
+
.insights-page .ins-tip[hidden] { display: none; }
|
|
6940
|
+
.insights-page .turnrow { background: var(--panel); border: 1px solid var(--line); border-left: 3px solid var(--ph-discuss); border-radius: 8px; overflow: hidden; }
|
|
6941
|
+
.insights-page .turnrow.sev-bad { border-left-color: var(--bad); }
|
|
6942
|
+
.insights-page .turnrow.sev-warn { border-left-color: var(--warn); }
|
|
6943
|
+
.insights-page .turnrow.sev-info { border-left-color: var(--line); }
|
|
6944
|
+
.insights-page .turnrow.flagged { background: var(--ins-inner); }
|
|
6945
|
+
.insights-page .turnrow.hot { box-shadow: 0 0 0 1px var(--acc) inset; }
|
|
6946
|
+
.insights-page .turnline { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; padding: 8px 11px; }
|
|
6947
|
+
.insights-page .turnrow .turn-headline { font-size: 12px; }
|
|
6948
|
+
.insights-page .turnrow.sev-info .turn-headline { color: var(--mut); font-weight: 500; }
|
|
6949
|
+
.insights-page .turn-strip { flex: 1 1 120px; }
|
|
6950
|
+
.insights-page .turn-mini { font-size: 11px; color: var(--mut); font-family: var(--mono); flex: 0 0 auto; }
|
|
6951
|
+
.insights-page .turn-expand-btn {
|
|
6952
|
+
flex: 0 0 auto; cursor: pointer; font: inherit; font-size: 11px; color: var(--mut);
|
|
6953
|
+
background: var(--bg); border: 1px solid var(--line); border-radius: 999px; padding: 1px 10px;
|
|
6954
|
+
}
|
|
6955
|
+
.insights-page .turn-expand-btn:hover { color: var(--fg); border-color: var(--acc); }
|
|
6956
|
+
.insights-page .turnrow.open .turn-expand-btn { color: var(--acc); border-color: var(--acc); }
|
|
6957
|
+
.insights-page .turn-prompt { display: flex; gap: 8px; padding: 0 11px 8px; font-size: 12px; align-items: flex-start; }
|
|
6958
|
+
.insights-page .tp-label { flex: 0 0 auto; font-size: 10px; color: var(--mut); text-transform: uppercase; letter-spacing: .04em; border: 1px solid var(--line); border-radius: 999px; padding: 0 7px; margin-top: 2px; }
|
|
6959
|
+
/* prompt source attribution chip (人 / bot / a2a) — replaces the generic 用户 chip when known */
|
|
6960
|
+
.insights-page .tp-src { display: inline-flex; align-items: center; gap: 3px; max-width: 16em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-transform: none; letter-spacing: 0; }
|
|
6961
|
+
.insights-page .tp-src-bot { border-color: var(--ph-delegate); color: var(--ph-delegate); }
|
|
6962
|
+
.insights-page .tp-src-a2a { border-color: var(--acc); color: var(--acc); }
|
|
6963
|
+
.insights-page .tp-src-system { border-color: var(--line); color: var(--mut); opacity: .85; }
|
|
6964
|
+
.insights-page .tp-mentions { font-size: 10px; color: var(--mut); align-self: center; }
|
|
6965
|
+
/* 系统 sender filter chip is a muted opt-in (codex: system 默认弱化) */
|
|
6966
|
+
.insights-page .spanchip-sys { color: var(--mut); opacity: .8; }
|
|
6967
|
+
.insights-page .spanchip-sys.on { opacity: 1; }
|
|
6968
|
+
|
|
6969
|
+
/* full-text prompt modal (老滕: 弹窗看全文) — fixed overlay + centred reading panel */
|
|
6970
|
+
.insights-page .insight-modal { position: fixed; inset: 0; z-index: 1000; }
|
|
6971
|
+
.insights-page .insight-modal[hidden] { display: none; }
|
|
6972
|
+
.insights-page .modal-backdrop { position: absolute; inset: 0; background: rgba(0, 0, 0, .55); }
|
|
6973
|
+
.insights-page .modal-panel { position: relative; margin: 6vh auto 0; width: min(760px, calc(100% - 32px)); max-height: 84vh; display: flex; flex-direction: column; background: var(--panel); border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 24px 64px rgba(0, 0, 0, .45); overflow: hidden; animation: insight-fade-up .18s ease both; }
|
|
6974
|
+
.insights-page .modal-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 11px 14px; border-bottom: 1px solid var(--line); flex: 0 0 auto; }
|
|
6975
|
+
.insights-page .modal-who { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; min-width: 0; }
|
|
6976
|
+
.insights-page .modal-turnno { font-family: var(--mono); font-size: 11px; color: var(--mut); }
|
|
6977
|
+
.insights-page .modal-acts { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; }
|
|
6978
|
+
.insights-page .modal-close { cursor: pointer; font-size: 20px; line-height: 1; color: var(--mut); background: none; border: none; padding: 0 2px; }
|
|
6979
|
+
.insights-page .modal-close:hover { color: var(--fg); }
|
|
6980
|
+
.insights-page .modal-body { padding: 14px 16px; overflow: auto; }
|
|
6981
|
+
.insights-page .modal-md { font-size: 13px; }
|
|
6982
|
+
.insights-page .modal-raw { font-size: 12px; max-height: none; }
|
|
6983
|
+
.insights-page .modal-trunc { margin: 10px 0 0; font-size: 11px; }
|
|
6984
|
+
|
|
6985
|
+
/* 对话回放 (conversation replay) — Feishu-style chat bubbles + load-more */
|
|
6986
|
+
.insights-page .convo { display: flex; flex-direction: column; gap: 10px; }
|
|
6987
|
+
.insights-page .convo-controls { display: flex; flex-direction: column; gap: 8px; }
|
|
6988
|
+
.insights-page .convo-search { width: 100%; padding: 7px 11px; background: var(--ins-inner); border: 1px solid var(--line); border-radius: 8px; color: var(--fg); font: inherit; font-size: 13px; }
|
|
6989
|
+
.insights-page .convo-search:focus { outline: none; border-color: var(--acc); }
|
|
6990
|
+
.insights-page .convo-filters { display: flex; flex-wrap: wrap; gap: 6px 16px; }
|
|
6991
|
+
.insights-page .convo-filters .spanfilter { margin-bottom: 0; align-items: center; }
|
|
6992
|
+
.insights-page .convo-flabel { font-size: 11px; color: var(--mut); margin-right: 2px; align-self: center; }
|
|
6993
|
+
.insights-page .convothread { display: flex; flex-direction: column; gap: 10px; max-height: 64vh; overflow: auto; padding: 4px 2px; }
|
|
6994
|
+
.insights-page .cbub { max-width: 82%; border: 1px solid var(--line); border-radius: 12px; background: var(--panel); padding: 8px 11px; display: flex; flex-direction: column; gap: 5px; }
|
|
6995
|
+
.insights-page .cbub-left { align-self: flex-start; border-top-left-radius: 3px; }
|
|
6996
|
+
.insights-page .cbub-right { align-self: flex-end; border-top-right-radius: 3px; background: var(--accent-soft); border-color: var(--acc); }
|
|
6997
|
+
.insights-page .cbub.sev-bad { border-left: 3px solid var(--bad); }
|
|
6998
|
+
.insights-page .cbub.sev-warn { border-left: 3px solid var(--warn); }
|
|
6999
|
+
.insights-page .cbub-head { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
|
|
7000
|
+
.insights-page .cbub-turn { font-family: var(--mono); font-size: 10px; color: var(--mut); }
|
|
7001
|
+
.insights-page .cbub-opcount { font-size: 10px; color: var(--mut); }
|
|
7002
|
+
.insights-page .cbub-rec { font-size: 10px; color: var(--warn); border: 1px solid var(--warn); border-radius: 999px; padding: 0 6px; max-width: 14em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
7003
|
+
.insights-page .cbub-body { font-size: 13px; min-width: 0; }
|
|
7004
|
+
.insights-page .cbub-body .md-body { font-size: 13px; }
|
|
7005
|
+
.insights-page .cbub-foot { display: flex; justify-content: flex-end; }
|
|
7006
|
+
.insights-page .cbub-ops { background: var(--ins-recess); max-width: 88%; }
|
|
7007
|
+
.insights-page .cbub-ops-list { display: flex; flex-direction: column; gap: 3px; }
|
|
7008
|
+
.insights-page .cop-line { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; font-size: 12px; padding: 3px 5px; border-radius: 6px; }
|
|
7009
|
+
.insights-page .cop-line.clickable { cursor: pointer; }
|
|
7010
|
+
.insights-page .cop-line.clickable:hover { background: var(--ins-inner); }
|
|
7011
|
+
.insights-page .cop.open > .cop-line { background: var(--ins-inner); }
|
|
7012
|
+
.insights-page .cop.bad .span-what { color: var(--bad); }
|
|
7013
|
+
.insights-page .cop .spandetail { border: 1px solid var(--line); border-radius: 6px; margin-top: 3px; }
|
|
7014
|
+
.insights-page .convo-more { display: flex; justify-content: center; padding: 6px 0 2px; }
|
|
7015
|
+
.insights-page p.convo-more { font-size: 11px; }
|
|
7016
|
+
.insights-page .convo-loadmore { font-size: 12px; padding: 5px 16px; }
|
|
7017
|
+
|
|
7018
|
+
/* 文件改动 + 跑过的命令 — work-summary panels at the top of 动作 span */
|
|
7019
|
+
.insights-page .worksum { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 12px; }
|
|
7020
|
+
.insights-page .ws-panel { border: 1px solid var(--line); border-radius: 8px; background: var(--ins-recess); padding: 9px 11px; min-width: 0; }
|
|
7021
|
+
.insights-page .ws-panel h4 { margin: 0 0 7px; font-size: 12px; color: var(--mut); font-weight: 650; }
|
|
7022
|
+
.insights-page .ws-list { display: flex; flex-direction: column; gap: 2px; max-height: 240px; overflow: auto; }
|
|
7023
|
+
.insights-page .ws-row { display: flex; align-items: center; gap: 8px; padding: 2px 0; }
|
|
7024
|
+
.insights-page .ws-path, .insights-page .ws-cmd { font-family: var(--mono); font-size: 11px; color: var(--fg); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; flex: 1 1 auto; min-width: 0; }
|
|
7025
|
+
.insights-page .ws-path { direction: rtl; text-align: left; }
|
|
7026
|
+
.insights-page .ws-row.bad .ws-cmd { color: var(--bad); }
|
|
7027
|
+
.insights-page .ws-meta { flex: 0 0 auto; display: inline-flex; gap: 6px; align-items: center; color: var(--mut); font-size: 10.5px; font-family: var(--mono); }
|
|
7028
|
+
.insights-page .ws-stat { flex: 0 0 auto; display: inline-flex; gap: 7px; align-items: baseline; font-family: var(--mono); font-size: 11px; font-weight: 650; font-variant-numeric: tabular-nums; }
|
|
7029
|
+
.insights-page .ws-stat-edits { color: var(--mut); font-weight: 500; }
|
|
7030
|
+
.insights-page .ws-add { color: var(--success); }
|
|
7031
|
+
.insights-page .ws-del { color: var(--danger); }
|
|
7032
|
+
.insights-page .ws-x { color: var(--mut); }
|
|
7033
|
+
.insights-page .ws-fail { color: var(--bad); }
|
|
7034
|
+
@media (max-width: 760px) { .insights-page .worksum { grid-template-columns: 1fr; } }
|
|
7035
|
+
/* prompt 原文: markdown-rendered by default, clamped (展开 lifts the clamp, 原文 shows raw) */
|
|
7036
|
+
.insights-page .tp-body { flex: 1 1 auto; min-width: 0; display: grid; gap: 4px; }
|
|
7037
|
+
.insights-page .tp-md { max-height: 7.5em; overflow: auto; }
|
|
7038
|
+
.insights-page .tp-md.expanded { max-height: 60vh; }
|
|
7039
|
+
.insights-page .tp-actions { display: flex; gap: 6px; }
|
|
7040
|
+
.insights-page .tp-toggle { cursor: pointer; font: inherit; font-size: 10px; color: var(--mut); background: none; border: 1px solid var(--line); border-radius: 999px; padding: 0 8px; }
|
|
7041
|
+
.insights-page .tp-toggle:hover { color: var(--fg); border-color: var(--acc); }
|
|
7042
|
+
.insights-page .tp-raw { margin: 0; font-family: var(--mono); font-size: 11px; line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere; color: var(--fg); }
|
|
7043
|
+
/* markdown body — compact, scoped to .insights-page, dashboard tokens only (no new palette) */
|
|
7044
|
+
.insights-page .md-body { color: var(--fg); line-height: 1.55; overflow-wrap: anywhere; }
|
|
7045
|
+
.insights-page .md-body > :first-child { margin-top: 0; }
|
|
7046
|
+
.insights-page .md-body > :last-child { margin-bottom: 0; }
|
|
7047
|
+
.insights-page .md-body p { margin: 4px 0; }
|
|
7048
|
+
.insights-page .md-body h1, .insights-page .md-body h2, .insights-page .md-body h3,
|
|
7049
|
+
.insights-page .md-body h4, .insights-page .md-body h5, .insights-page .md-body h6 { margin: 7px 0 3px; font-size: 12.5px; font-weight: 700; line-height: 1.3; }
|
|
7050
|
+
.insights-page .md-body ul, .insights-page .md-body ol { margin: 4px 0; padding-left: 18px; }
|
|
7051
|
+
.insights-page .md-body li { margin: 1px 0; }
|
|
7052
|
+
.insights-page .md-body blockquote { margin: 5px 0; padding: 2px 10px; border-left: 3px solid var(--line); color: var(--mut); }
|
|
7053
|
+
.insights-page .md-body a { color: var(--acc); text-decoration: underline; }
|
|
7054
|
+
.insights-page .md-body code { font-family: var(--mono); font-size: 11px; background: var(--ins-inner); border: 1px solid var(--line); border-radius: 4px; padding: 0 4px; }
|
|
7055
|
+
.insights-page .md-body pre { margin: 5px 0; background: var(--ins-inner); border: 1px solid var(--line); border-radius: 6px; padding: 7px 9px; overflow-x: auto; }
|
|
7056
|
+
.insights-page .md-body pre code { background: none; border: none; padding: 0; font-size: 11px; line-height: 1.5; white-space: pre; }
|
|
7057
|
+
.insights-page .md-body table { border-collapse: collapse; margin: 5px 0; font-size: 11px; display: block; overflow-x: auto; }
|
|
7058
|
+
.insights-page .md-body th, .insights-page .md-body td { border: 1px solid var(--line); padding: 3px 8px; text-align: left; }
|
|
7059
|
+
.insights-page .md-body th { background: var(--ins-inner); }
|
|
7060
|
+
.insights-page .md-body img { max-width: 100%; height: auto; }
|
|
7061
|
+
.insights-page .md-body hr { border: none; border-top: 1px solid var(--line); margin: 7px 0; }
|
|
7062
|
+
.insights-page .turn-advice { padding: 0 11px 8px; font-size: 12px; color: var(--warn); line-height: 1.45; }
|
|
7063
|
+
.insights-page .turnrow.sev-bad .turn-advice { color: var(--bad); }
|
|
7064
|
+
.insights-page .turn-detail { border-top: 1px dashed var(--line); background: var(--ins-recess); padding: 9px 11px; display: grid; gap: 8px; }
|
|
7065
|
+
.insights-page .turn-detail .turn-metrics { margin-top: 0; }
|
|
7066
|
+
|
|
7067
|
+
/* raw command/output preview inside a 详情 drawer (owner-only, run-class spans) */
|
|
7068
|
+
.insights-page .span-io { display: grid; gap: 3px; }
|
|
7069
|
+
.insights-page .span-io-label { font-size: 10px; color: var(--mut); text-transform: uppercase; letter-spacing: .04em; }
|
|
7070
|
+
.insights-page .span-io-text {
|
|
7071
|
+
margin: 0; font-family: var(--mono); font-size: 11.5px; line-height: 1.5; color: var(--fg);
|
|
7072
|
+
background: var(--ins-inner); border: 1px solid var(--line); border-radius: 6px; padding: 7px 9px;
|
|
7073
|
+
max-height: 220px; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere;
|
|
7074
|
+
}
|
|
7075
|
+
|
|
7076
|
+
/* 逐轮对账 grouped-by-recommendation mode: section header + turns beneath it */
|
|
7077
|
+
.insights-page .ledgersort { margin-bottom: 10px; }
|
|
7078
|
+
.insights-page .turn-group { margin-bottom: 16px; }
|
|
7079
|
+
.insights-page .turn-group:last-child { margin-bottom: 0; }
|
|
7080
|
+
.insights-page .turn-group > .turnrow { margin-bottom: 8px; }
|
|
7081
|
+
.insights-page .turn-group > .turnrow:last-child { margin-bottom: 0; }
|
|
7082
|
+
.insights-page .turn-group-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 0 2px 7px; margin-bottom: 8px; border-bottom: 1px solid var(--line); }
|
|
7083
|
+
.insights-page .turn-group-head b { font-size: 12px; color: var(--fg); }
|
|
7084
|
+
.insights-page .turn-group-head span { font-size: 11px; color: var(--mut); font-family: var(--mono); flex: 0 0 auto; }
|
|
7085
|
+
.insights-page .turn-group-head.sev-bad b { color: var(--bad); }
|
|
7086
|
+
.insights-page .turn-group-head.sev-warn b { color: var(--warn); }
|
|
7087
|
+
|
|
7088
|
+
/* motion: staggered page-load reveal + grow failure bars */
|
|
7089
|
+
@keyframes insight-fade-up { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
|
|
7090
|
+
@keyframes insight-bar-grow { from { transform: scaleX(0); } to { transform: scaleX(1); } }
|
|
7091
|
+
.insights-page .insights-metrics { animation: insight-fade-up .35s ease both; }
|
|
7092
|
+
.insights-page .insights-overview-grid { animation: insight-fade-up .35s ease both; animation-delay: .05s; }
|
|
7093
|
+
.insights-page .insight-workbench { animation: insight-fade-up .35s ease both; animation-delay: .1s; }
|
|
7094
|
+
@media (prefers-reduced-motion: reduce) {
|
|
7095
|
+
.insights-page .insights-metrics,
|
|
7096
|
+
.insights-page .insights-overview-grid,
|
|
7097
|
+
.insights-page .insight-workbench,
|
|
7098
|
+
.insights-page .hbfill { animation: none; }
|
|
7099
|
+
.insights-page .srow { transition: none; }
|
|
7100
|
+
.insights-page .srow:hover { transform: none; }
|
|
7101
|
+
}
|