@in-the-loop-labs/pair-review 1.4.4 → 1.5.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/package.json +1 -1
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/skills/review-requests/SKILL.md +54 -0
- package/plugin-code-critic/.claude-plugin/plugin.json +1 -1
- package/public/css/pr.css +1081 -54
- package/public/css/repo-settings.css +452 -140
- package/public/js/components/AdvancedConfigTab.js +1364 -0
- package/public/js/components/AnalysisConfigModal.js +488 -112
- package/public/js/components/CouncilProgressModal.js +1416 -0
- package/public/js/components/TextInputDialog.js +231 -0
- package/public/js/components/TimeoutSelect.js +367 -0
- package/public/js/components/VoiceCentricConfigTab.js +1334 -0
- package/public/js/local.js +162 -83
- package/public/js/modules/analysis-history.js +185 -11
- package/public/js/modules/comment-manager.js +13 -0
- package/public/js/modules/file-comment-manager.js +28 -0
- package/public/js/pr.js +233 -115
- package/public/js/repo-settings.js +575 -106
- package/public/local.html +11 -1
- package/public/pr.html +6 -1
- package/public/repo-settings.html +28 -21
- package/public/setup.html +8 -2
- package/src/ai/analyzer.js +1262 -111
- package/src/ai/claude-cli.js +2 -2
- package/src/ai/claude-provider.js +6 -6
- package/src/ai/codex-provider.js +6 -6
- package/src/ai/copilot-provider.js +3 -3
- package/src/ai/cursor-agent-provider.js +6 -6
- package/src/ai/gemini-provider.js +6 -6
- package/src/ai/opencode-provider.js +6 -6
- package/src/ai/pi-provider.js +6 -6
- package/src/ai/prompts/baseline/consolidation/balanced.js +208 -0
- package/src/ai/prompts/baseline/consolidation/fast.js +175 -0
- package/src/ai/prompts/baseline/consolidation/thorough.js +283 -0
- package/src/ai/prompts/config.js +1 -1
- package/src/ai/prompts/index.js +26 -2
- package/src/ai/provider.js +4 -2
- package/src/database.js +417 -14
- package/src/main.js +1 -1
- package/src/routes/analysis.js +495 -10
- package/src/routes/config.js +36 -15
- package/src/routes/councils.js +351 -0
- package/src/routes/local.js +33 -11
- package/src/routes/mcp.js +9 -2
- package/src/routes/setup.js +12 -2
- package/src/routes/shared.js +126 -13
- package/src/server.js +34 -4
- package/src/utils/stats-calculator.js +2 -0
package/public/css/pr.css
CHANGED
|
@@ -2507,6 +2507,41 @@ tr.newly-expanded .d2h-code-line-ctn {
|
|
|
2507
2507
|
justify-content: center;
|
|
2508
2508
|
}
|
|
2509
2509
|
|
|
2510
|
+
/* Dialogs spawned from within other modals need higher z-index */
|
|
2511
|
+
#text-input-dialog,
|
|
2512
|
+
#confirm-dialog {
|
|
2513
|
+
z-index: 10000; /* Must stack above analysis-config-overlay (1100) */
|
|
2514
|
+
}
|
|
2515
|
+
|
|
2516
|
+
.text-input-dialog-field {
|
|
2517
|
+
display: flex;
|
|
2518
|
+
flex-direction: column;
|
|
2519
|
+
gap: 6px;
|
|
2520
|
+
}
|
|
2521
|
+
|
|
2522
|
+
.text-input-dialog-field label {
|
|
2523
|
+
font-size: 13px;
|
|
2524
|
+
font-weight: 600;
|
|
2525
|
+
color: var(--color-fg-default, #1f2328);
|
|
2526
|
+
}
|
|
2527
|
+
|
|
2528
|
+
.text-input-dialog-field input {
|
|
2529
|
+
padding: 8px 12px;
|
|
2530
|
+
font-size: 14px;
|
|
2531
|
+
border: 1px solid var(--color-border-default, #d1d9e0);
|
|
2532
|
+
border-radius: 6px;
|
|
2533
|
+
background: var(--color-bg-primary, #ffffff);
|
|
2534
|
+
color: var(--color-fg-default, #1f2328);
|
|
2535
|
+
outline: none;
|
|
2536
|
+
width: 100%;
|
|
2537
|
+
box-sizing: border-box;
|
|
2538
|
+
}
|
|
2539
|
+
|
|
2540
|
+
.text-input-dialog-field input:focus {
|
|
2541
|
+
border-color: var(--color-accent-fg, #0969da);
|
|
2542
|
+
box-shadow: 0 0 0 3px rgba(9, 105, 218, 0.3);
|
|
2543
|
+
}
|
|
2544
|
+
|
|
2510
2545
|
/* Status Indicator Styles */
|
|
2511
2546
|
.status-indicator {
|
|
2512
2547
|
display: none;
|
|
@@ -2606,6 +2641,21 @@ tr.newly-expanded .d2h-code-line-ctn {
|
|
|
2606
2641
|
color: var(--color-text-primary); /* Better contrast for dark mode */
|
|
2607
2642
|
}
|
|
2608
2643
|
|
|
2644
|
+
[data-theme="dark"] .text-input-dialog-field label {
|
|
2645
|
+
color: var(--color-fg-default, #f0f6fc);
|
|
2646
|
+
}
|
|
2647
|
+
|
|
2648
|
+
[data-theme="dark"] .text-input-dialog-field input {
|
|
2649
|
+
background: var(--color-bg-tertiary, #161b22);
|
|
2650
|
+
border-color: var(--color-border-default, #30363d);
|
|
2651
|
+
color: var(--color-fg-default, #f0f6fc);
|
|
2652
|
+
}
|
|
2653
|
+
|
|
2654
|
+
[data-theme="dark"] .text-input-dialog-field input:focus {
|
|
2655
|
+
border-color: var(--color-accent-fg, #58a6ff);
|
|
2656
|
+
box-shadow: 0 0 0 3px rgba(56, 139, 253, 0.3);
|
|
2657
|
+
}
|
|
2658
|
+
|
|
2609
2659
|
[data-theme="dark"] .status-indicator {
|
|
2610
2660
|
background: var(--color-bg-primary);
|
|
2611
2661
|
border-color: var(--color-border-primary);
|
|
@@ -2675,6 +2725,231 @@ tr.newly-expanded .d2h-code-line-ctn {
|
|
|
2675
2725
|
background: var(--color-bg-tertiary);
|
|
2676
2726
|
}
|
|
2677
2727
|
|
|
2728
|
+
/* ============================================================
|
|
2729
|
+
Council Progress Modal — hierarchical tree progress view
|
|
2730
|
+
============================================================ */
|
|
2731
|
+
|
|
2732
|
+
.council-progress-modal {
|
|
2733
|
+
height: auto;
|
|
2734
|
+
max-height: min(620px, 85vh);
|
|
2735
|
+
}
|
|
2736
|
+
|
|
2737
|
+
.council-progress-body {
|
|
2738
|
+
padding: 20px 24px;
|
|
2739
|
+
flex: 1;
|
|
2740
|
+
overflow-y: auto;
|
|
2741
|
+
}
|
|
2742
|
+
|
|
2743
|
+
.council-progress-tree {
|
|
2744
|
+
display: flex;
|
|
2745
|
+
flex-direction: column;
|
|
2746
|
+
gap: 4px;
|
|
2747
|
+
}
|
|
2748
|
+
|
|
2749
|
+
/* --- Level rows (parents) ------------------------------------------------ */
|
|
2750
|
+
|
|
2751
|
+
.council-level {
|
|
2752
|
+
margin-bottom: 2px;
|
|
2753
|
+
}
|
|
2754
|
+
|
|
2755
|
+
.council-level-header {
|
|
2756
|
+
display: flex;
|
|
2757
|
+
align-items: center;
|
|
2758
|
+
gap: 10px;
|
|
2759
|
+
padding: 6px 0;
|
|
2760
|
+
}
|
|
2761
|
+
|
|
2762
|
+
.council-level-icon {
|
|
2763
|
+
width: 18px;
|
|
2764
|
+
height: 18px;
|
|
2765
|
+
display: flex;
|
|
2766
|
+
align-items: center;
|
|
2767
|
+
justify-content: center;
|
|
2768
|
+
font-size: 14px;
|
|
2769
|
+
flex-shrink: 0;
|
|
2770
|
+
}
|
|
2771
|
+
|
|
2772
|
+
.council-level-icon.pending { color: var(--color-text-tertiary); }
|
|
2773
|
+
.council-level-icon.running { color: var(--ai-primary); }
|
|
2774
|
+
.council-level-icon.completed { color: var(--color-success); }
|
|
2775
|
+
.council-level-icon.failed { color: var(--color-danger); }
|
|
2776
|
+
.council-level-icon.cancelled { color: var(--color-warning); }
|
|
2777
|
+
.council-level-icon.skipped { color: var(--color-text-tertiary); }
|
|
2778
|
+
|
|
2779
|
+
.council-level-title {
|
|
2780
|
+
font-size: 14px;
|
|
2781
|
+
font-weight: 600;
|
|
2782
|
+
color: var(--color-text-primary, #24292f);
|
|
2783
|
+
flex: 1;
|
|
2784
|
+
min-width: 0;
|
|
2785
|
+
}
|
|
2786
|
+
|
|
2787
|
+
.council-level-status {
|
|
2788
|
+
font-size: 12px;
|
|
2789
|
+
font-weight: 500;
|
|
2790
|
+
flex-shrink: 0;
|
|
2791
|
+
}
|
|
2792
|
+
|
|
2793
|
+
.council-level-status.pending { color: var(--color-text-tertiary); }
|
|
2794
|
+
.council-level-status.running { color: var(--ai-primary); }
|
|
2795
|
+
.council-level-status.completed { color: var(--color-success); }
|
|
2796
|
+
.council-level-status.failed { color: var(--color-danger); }
|
|
2797
|
+
.council-level-status.cancelled { color: var(--color-warning); }
|
|
2798
|
+
.council-level-status.skipped { color: var(--color-text-tertiary); }
|
|
2799
|
+
|
|
2800
|
+
/* --- Voice rows (children) with tree connectors -------------------------- */
|
|
2801
|
+
|
|
2802
|
+
.council-level-children {
|
|
2803
|
+
position: relative;
|
|
2804
|
+
margin-left: 8px;
|
|
2805
|
+
padding-left: 0;
|
|
2806
|
+
}
|
|
2807
|
+
|
|
2808
|
+
.council-voice {
|
|
2809
|
+
display: grid;
|
|
2810
|
+
grid-template-columns: 24px 18px 1fr auto;
|
|
2811
|
+
grid-template-rows: auto auto;
|
|
2812
|
+
align-items: center;
|
|
2813
|
+
gap: 0 8px;
|
|
2814
|
+
padding: 4px 0;
|
|
2815
|
+
position: relative;
|
|
2816
|
+
}
|
|
2817
|
+
|
|
2818
|
+
/* Tree connector lines (using CSS borders) */
|
|
2819
|
+
.council-voice-connector {
|
|
2820
|
+
width: 24px;
|
|
2821
|
+
height: 100%;
|
|
2822
|
+
position: relative;
|
|
2823
|
+
grid-row: 1 / -1;
|
|
2824
|
+
grid-column: 1;
|
|
2825
|
+
align-self: stretch;
|
|
2826
|
+
}
|
|
2827
|
+
|
|
2828
|
+
.council-voice-connector::before {
|
|
2829
|
+
content: '';
|
|
2830
|
+
position: absolute;
|
|
2831
|
+
left: 8px;
|
|
2832
|
+
top: 0;
|
|
2833
|
+
bottom: 0;
|
|
2834
|
+
width: 0;
|
|
2835
|
+
border-left: 1px solid var(--color-border-default, #d1d9e0);
|
|
2836
|
+
}
|
|
2837
|
+
|
|
2838
|
+
.council-voice-connector::after {
|
|
2839
|
+
content: '';
|
|
2840
|
+
position: absolute;
|
|
2841
|
+
left: 8px;
|
|
2842
|
+
top: 50%;
|
|
2843
|
+
width: 12px;
|
|
2844
|
+
height: 0;
|
|
2845
|
+
border-top: 1px solid var(--color-border-default, #d1d9e0);
|
|
2846
|
+
}
|
|
2847
|
+
|
|
2848
|
+
/* Last connector — vertical line only goes to midpoint */
|
|
2849
|
+
.council-voice-connector.connector-last::before {
|
|
2850
|
+
bottom: 50%;
|
|
2851
|
+
}
|
|
2852
|
+
|
|
2853
|
+
.council-voice-icon {
|
|
2854
|
+
width: 18px;
|
|
2855
|
+
height: 18px;
|
|
2856
|
+
display: flex;
|
|
2857
|
+
align-items: center;
|
|
2858
|
+
justify-content: center;
|
|
2859
|
+
font-size: 13px;
|
|
2860
|
+
flex-shrink: 0;
|
|
2861
|
+
grid-column: 2;
|
|
2862
|
+
grid-row: 1;
|
|
2863
|
+
}
|
|
2864
|
+
|
|
2865
|
+
.council-voice-icon.pending { color: var(--color-text-tertiary); }
|
|
2866
|
+
.council-voice-icon.running { color: var(--ai-primary); }
|
|
2867
|
+
.council-voice-icon.completed { color: var(--color-success); }
|
|
2868
|
+
.council-voice-icon.failed { color: var(--color-danger); }
|
|
2869
|
+
.council-voice-icon.cancelled { color: var(--color-warning); }
|
|
2870
|
+
|
|
2871
|
+
.council-voice-label {
|
|
2872
|
+
font-size: 13px;
|
|
2873
|
+
color: var(--color-text-primary, #24292f);
|
|
2874
|
+
white-space: nowrap;
|
|
2875
|
+
overflow: hidden;
|
|
2876
|
+
text-overflow: ellipsis;
|
|
2877
|
+
grid-column: 3;
|
|
2878
|
+
grid-row: 1;
|
|
2879
|
+
}
|
|
2880
|
+
|
|
2881
|
+
.council-voice-status {
|
|
2882
|
+
font-size: 12px;
|
|
2883
|
+
font-weight: 500;
|
|
2884
|
+
flex-shrink: 0;
|
|
2885
|
+
grid-column: 4;
|
|
2886
|
+
grid-row: 1;
|
|
2887
|
+
}
|
|
2888
|
+
|
|
2889
|
+
.council-voice-status.pending { color: var(--color-text-tertiary); }
|
|
2890
|
+
.council-voice-status.running { color: var(--ai-primary); }
|
|
2891
|
+
.council-voice-status.completed { color: var(--color-success); }
|
|
2892
|
+
.council-voice-status.failed { color: var(--color-danger); }
|
|
2893
|
+
.council-voice-status.cancelled { color: var(--color-warning); }
|
|
2894
|
+
|
|
2895
|
+
/* Detail row (progress bar + snippet) sits below label, spanning columns 2-4 */
|
|
2896
|
+
.council-voice-detail {
|
|
2897
|
+
grid-column: 3 / 5;
|
|
2898
|
+
grid-row: 2;
|
|
2899
|
+
min-width: 0;
|
|
2900
|
+
}
|
|
2901
|
+
|
|
2902
|
+
.council-voice-snippet {
|
|
2903
|
+
font-family: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace;
|
|
2904
|
+
font-size: 11px;
|
|
2905
|
+
color: var(--color-text-tertiary, #8b949e);
|
|
2906
|
+
background: var(--color-bg-subtle, #f6f8fa);
|
|
2907
|
+
border-radius: 3px;
|
|
2908
|
+
padding: 2px 6px;
|
|
2909
|
+
margin-top: 2px;
|
|
2910
|
+
max-width: 100%;
|
|
2911
|
+
white-space: nowrap;
|
|
2912
|
+
overflow: hidden;
|
|
2913
|
+
text-overflow: ellipsis;
|
|
2914
|
+
}
|
|
2915
|
+
|
|
2916
|
+
/* Snippet for single-model level rows (mirrors .council-voice-snippet) */
|
|
2917
|
+
.council-level-snippet {
|
|
2918
|
+
font-family: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace;
|
|
2919
|
+
font-size: 11px;
|
|
2920
|
+
color: var(--color-text-tertiary, #8b949e);
|
|
2921
|
+
background: var(--color-bg-subtle, #f6f8fa);
|
|
2922
|
+
border-radius: 3px;
|
|
2923
|
+
padding: 2px 6px;
|
|
2924
|
+
margin-left: 28px; /* align with title text: 18px icon + 10px gap */
|
|
2925
|
+
margin-top: 0;
|
|
2926
|
+
margin-bottom: 2px;
|
|
2927
|
+
max-width: calc(100% - 28px);
|
|
2928
|
+
white-space: nowrap;
|
|
2929
|
+
overflow: hidden;
|
|
2930
|
+
text-overflow: ellipsis;
|
|
2931
|
+
}
|
|
2932
|
+
|
|
2933
|
+
/* --- Consolidation section ----------------------------------------------- */
|
|
2934
|
+
|
|
2935
|
+
.council-consolidation {
|
|
2936
|
+
border-top: 1px solid var(--color-border-default, #d1d9e0);
|
|
2937
|
+
margin-top: 4px;
|
|
2938
|
+
padding-top: 8px;
|
|
2939
|
+
}
|
|
2940
|
+
|
|
2941
|
+
/* --- Spinner animation --------------------------------------------------- */
|
|
2942
|
+
|
|
2943
|
+
.council-spinner {
|
|
2944
|
+
display: inline-block;
|
|
2945
|
+
width: 14px;
|
|
2946
|
+
height: 14px;
|
|
2947
|
+
border: 2px solid var(--ai-primary, #d97706);
|
|
2948
|
+
border-top-color: transparent;
|
|
2949
|
+
border-radius: 50%;
|
|
2950
|
+
animation: spin 0.8s linear infinite;
|
|
2951
|
+
}
|
|
2952
|
+
|
|
2678
2953
|
/* Old AI Suggestion Navigator - hidden, replaced by new AI Panel */
|
|
2679
2954
|
.suggestion-navigator {
|
|
2680
2955
|
display: none !important;
|
|
@@ -6374,39 +6649,56 @@ body.resizing * {
|
|
|
6374
6649
|
color: var(--color-text-muted);
|
|
6375
6650
|
}
|
|
6376
6651
|
|
|
6377
|
-
/*
|
|
6378
|
-
.analysis-history-
|
|
6652
|
+
/* Config type badges */
|
|
6653
|
+
.analysis-history-config-badge {
|
|
6379
6654
|
display: inline-flex;
|
|
6380
6655
|
align-items: center;
|
|
6381
6656
|
padding: 1px 5px;
|
|
6382
6657
|
font-size: 9px;
|
|
6383
|
-
font-weight:
|
|
6658
|
+
font-weight: 600;
|
|
6384
6659
|
text-transform: uppercase;
|
|
6385
|
-
letter-spacing: 0.
|
|
6386
|
-
color: var(--color-text-on-emphasis);
|
|
6387
|
-
background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
|
|
6660
|
+
letter-spacing: 0.3px;
|
|
6388
6661
|
border-radius: 3px;
|
|
6389
|
-
margin-left: auto;
|
|
6390
6662
|
flex-shrink: 0;
|
|
6391
|
-
animation: badge-glow 2s ease-in-out infinite;
|
|
6392
6663
|
}
|
|
6393
6664
|
|
|
6394
|
-
|
|
6395
|
-
|
|
6396
|
-
|
|
6397
|
-
|
|
6398
|
-
50% {
|
|
6399
|
-
box-shadow: 0 0 6px rgba(245, 158, 11, 0.6);
|
|
6400
|
-
}
|
|
6665
|
+
.analysis-history-config-council {
|
|
6666
|
+
color: #7c3aed;
|
|
6667
|
+
background: rgba(124, 58, 237, 0.1);
|
|
6668
|
+
border: 1px solid rgba(124, 58, 237, 0.2);
|
|
6401
6669
|
}
|
|
6402
6670
|
|
|
6403
|
-
|
|
6404
|
-
|
|
6405
|
-
background: rgba(
|
|
6671
|
+
.analysis-history-config-council-voice {
|
|
6672
|
+
color: #6366f1;
|
|
6673
|
+
background: rgba(99, 102, 241, 0.1);
|
|
6674
|
+
border: 1px solid rgba(99, 102, 241, 0.2);
|
|
6406
6675
|
}
|
|
6407
6676
|
|
|
6408
|
-
.analysis-
|
|
6409
|
-
|
|
6677
|
+
.analysis-history-config-advanced {
|
|
6678
|
+
color: #059669;
|
|
6679
|
+
background: rgba(5, 150, 105, 0.1);
|
|
6680
|
+
border: 1px solid rgba(5, 150, 105, 0.2);
|
|
6681
|
+
}
|
|
6682
|
+
|
|
6683
|
+
/* Level indicators */
|
|
6684
|
+
.analysis-history-levels {
|
|
6685
|
+
display: inline-flex;
|
|
6686
|
+
gap: 2px;
|
|
6687
|
+
font-size: 10px;
|
|
6688
|
+
font-family: var(--font-mono, monospace);
|
|
6689
|
+
}
|
|
6690
|
+
|
|
6691
|
+
.analysis-history-level {
|
|
6692
|
+
padding: 0 2px;
|
|
6693
|
+
}
|
|
6694
|
+
|
|
6695
|
+
.analysis-history-level.level-on {
|
|
6696
|
+
color: var(--color-success, #22c55e);
|
|
6697
|
+
}
|
|
6698
|
+
|
|
6699
|
+
.analysis-history-level.level-off {
|
|
6700
|
+
color: var(--color-text-muted);
|
|
6701
|
+
opacity: 0.5;
|
|
6410
6702
|
}
|
|
6411
6703
|
|
|
6412
6704
|
/* Right panel: Preview */
|
|
@@ -6788,21 +7080,26 @@ body.resizing * {
|
|
|
6788
7080
|
box-shadow: 0 0 10px 3px rgba(251, 191, 36, 0.6);
|
|
6789
7081
|
}
|
|
6790
7082
|
|
|
6791
|
-
/* Dark theme:
|
|
6792
|
-
[data-theme="dark"] .analysis-history-
|
|
6793
|
-
|
|
6794
|
-
|
|
7083
|
+
/* Dark theme: config type badges */
|
|
7084
|
+
[data-theme="dark"] .analysis-history-config-council {
|
|
7085
|
+
color: #a78bfa;
|
|
7086
|
+
background: rgba(167, 139, 250, 0.12);
|
|
7087
|
+
border-color: rgba(167, 139, 250, 0.25);
|
|
6795
7088
|
}
|
|
6796
7089
|
|
|
6797
|
-
|
|
6798
|
-
|
|
6799
|
-
background: rgba(
|
|
7090
|
+
[data-theme="dark"] .analysis-history-config-council-voice {
|
|
7091
|
+
color: #818cf8;
|
|
7092
|
+
background: rgba(129, 140, 248, 0.12);
|
|
7093
|
+
border-color: rgba(129, 140, 248, 0.25);
|
|
6800
7094
|
}
|
|
6801
7095
|
|
|
6802
|
-
[data-theme="dark"] .analysis-
|
|
6803
|
-
|
|
7096
|
+
[data-theme="dark"] .analysis-history-config-advanced {
|
|
7097
|
+
color: #34d399;
|
|
7098
|
+
background: rgba(52, 211, 153, 0.12);
|
|
7099
|
+
border-color: rgba(52, 211, 153, 0.25);
|
|
6804
7100
|
}
|
|
6805
7101
|
|
|
7102
|
+
|
|
6806
7103
|
/* Tier-specific colors */
|
|
6807
7104
|
.analysis-tier-fast {
|
|
6808
7105
|
background: rgba(56, 189, 248, 0.15);
|
|
@@ -7732,10 +8029,10 @@ body.resizing * {
|
|
|
7732
8029
|
}
|
|
7733
8030
|
|
|
7734
8031
|
.analysis-config-container {
|
|
7735
|
-
width:
|
|
7736
|
-
max-width: calc(100vw - 32px);
|
|
8032
|
+
width: 90vw;
|
|
8033
|
+
max-width: min(900px, calc(100vw - 32px));
|
|
7737
8034
|
height: auto; /* Override fixed height from .modal-container */
|
|
7738
|
-
max-height: min(
|
|
8035
|
+
max-height: min(90vh, calc(100vh - 32px));
|
|
7739
8036
|
display: flex;
|
|
7740
8037
|
flex-direction: column;
|
|
7741
8038
|
transform: translateY(8px) scale(0.98);
|
|
@@ -7813,6 +8110,31 @@ body.resizing * {
|
|
|
7813
8110
|
overflow-y: auto;
|
|
7814
8111
|
padding: 20px;
|
|
7815
8112
|
background: var(--color-bg-primary);
|
|
8113
|
+
position: relative;
|
|
8114
|
+
}
|
|
8115
|
+
|
|
8116
|
+
/* Loading overlay shown while providers are being fetched */
|
|
8117
|
+
.config-loading-overlay {
|
|
8118
|
+
position: absolute;
|
|
8119
|
+
inset: 0;
|
|
8120
|
+
display: flex;
|
|
8121
|
+
flex-direction: column;
|
|
8122
|
+
align-items: center;
|
|
8123
|
+
justify-content: center;
|
|
8124
|
+
gap: 12px;
|
|
8125
|
+
background: var(--color-bg-primary);
|
|
8126
|
+
z-index: 10;
|
|
8127
|
+
color: var(--color-text-secondary);
|
|
8128
|
+
font-size: 13px;
|
|
8129
|
+
}
|
|
8130
|
+
|
|
8131
|
+
.config-loading-spinner {
|
|
8132
|
+
width: 24px;
|
|
8133
|
+
height: 24px;
|
|
8134
|
+
border: 2.5px solid var(--color-border-primary);
|
|
8135
|
+
border-top-color: var(--color-text-link, #2f81f7);
|
|
8136
|
+
border-radius: 50%;
|
|
8137
|
+
animation: spin 0.8s linear infinite;
|
|
7816
8138
|
}
|
|
7817
8139
|
|
|
7818
8140
|
/* Section styling */
|
|
@@ -7848,10 +8170,8 @@ body.resizing * {
|
|
|
7848
8170
|
.provider-toggle {
|
|
7849
8171
|
display: flex;
|
|
7850
8172
|
flex-wrap: wrap;
|
|
8173
|
+
justify-content: center;
|
|
7851
8174
|
gap: 8px;
|
|
7852
|
-
padding: 4px;
|
|
7853
|
-
background: var(--color-bg-tertiary);
|
|
7854
|
-
border-radius: 8px;
|
|
7855
8175
|
width: 100%;
|
|
7856
8176
|
max-width: 100%;
|
|
7857
8177
|
}
|
|
@@ -7860,33 +8180,42 @@ body.resizing * {
|
|
|
7860
8180
|
display: inline-flex;
|
|
7861
8181
|
align-items: center;
|
|
7862
8182
|
gap: 6px;
|
|
7863
|
-
padding:
|
|
7864
|
-
border:
|
|
7865
|
-
background:
|
|
8183
|
+
padding: 10px 18px;
|
|
8184
|
+
border: 2px solid var(--color-border-primary);
|
|
8185
|
+
background: var(--color-bg-secondary);
|
|
7866
8186
|
color: var(--color-text-secondary);
|
|
7867
8187
|
font-size: 14px;
|
|
7868
8188
|
font-weight: 500;
|
|
7869
|
-
border-radius:
|
|
8189
|
+
border-radius: 10px;
|
|
7870
8190
|
cursor: pointer;
|
|
7871
|
-
transition: all 0.2s
|
|
8191
|
+
transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
|
|
7872
8192
|
white-space: nowrap;
|
|
7873
8193
|
}
|
|
7874
8194
|
|
|
7875
8195
|
.provider-btn:hover {
|
|
7876
|
-
|
|
8196
|
+
border-color: var(--color-border-secondary);
|
|
8197
|
+
background: var(--color-bg-tertiary);
|
|
7877
8198
|
color: var(--color-text-primary);
|
|
8199
|
+
transform: translateY(-2px);
|
|
8200
|
+
box-shadow: 0 4px 12px var(--color-shadow);
|
|
7878
8201
|
}
|
|
7879
8202
|
|
|
7880
8203
|
.provider-btn.selected {
|
|
7881
|
-
|
|
8204
|
+
border-color: var(--color-accent-ai-dark);
|
|
8205
|
+
background: rgba(245, 158, 11, 0.08);
|
|
7882
8206
|
color: var(--color-text-primary);
|
|
7883
|
-
box-shadow:
|
|
8207
|
+
box-shadow:
|
|
8208
|
+
0 0 0 3px rgba(245, 158, 11, 0.15),
|
|
8209
|
+
0 4px 12px rgba(245, 158, 11, 0.1);
|
|
7884
8210
|
}
|
|
7885
8211
|
|
|
7886
8212
|
[data-theme="dark"] .provider-btn.selected {
|
|
7887
|
-
background: rgba(251, 191, 36, 0.
|
|
8213
|
+
background: rgba(251, 191, 36, 0.1);
|
|
8214
|
+
border-color: var(--color-accent-ai);
|
|
7888
8215
|
color: #fbbf24;
|
|
7889
|
-
box-shadow:
|
|
8216
|
+
box-shadow:
|
|
8217
|
+
0 0 0 3px rgba(251, 191, 36, 0.15),
|
|
8218
|
+
0 4px 12px rgba(251, 191, 36, 0.08);
|
|
7890
8219
|
}
|
|
7891
8220
|
|
|
7892
8221
|
/* No providers available message */
|
|
@@ -7940,8 +8269,9 @@ body.resizing * {
|
|
|
7940
8269
|
/* Model Cards */
|
|
7941
8270
|
.model-cards {
|
|
7942
8271
|
display: grid;
|
|
7943
|
-
grid-template-columns: repeat(3,
|
|
8272
|
+
grid-template-columns: repeat(3, minmax(0, 220px));
|
|
7944
8273
|
gap: 12px;
|
|
8274
|
+
justify-content: center;
|
|
7945
8275
|
}
|
|
7946
8276
|
|
|
7947
8277
|
.model-card {
|
|
@@ -7949,13 +8279,16 @@ body.resizing * {
|
|
|
7949
8279
|
display: flex;
|
|
7950
8280
|
flex-direction: column;
|
|
7951
8281
|
align-items: center;
|
|
7952
|
-
padding:
|
|
8282
|
+
padding: 14px 10px;
|
|
7953
8283
|
background: var(--color-bg-secondary);
|
|
7954
8284
|
border: 2px solid var(--color-border-primary);
|
|
7955
8285
|
border-radius: 10px;
|
|
7956
8286
|
cursor: pointer;
|
|
7957
8287
|
transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
|
|
7958
8288
|
text-align: center;
|
|
8289
|
+
aspect-ratio: 1.618 / 1;
|
|
8290
|
+
overflow: hidden;
|
|
8291
|
+
justify-content: center;
|
|
7959
8292
|
}
|
|
7960
8293
|
|
|
7961
8294
|
.model-card:hover {
|
|
@@ -7983,8 +8316,8 @@ body.resizing * {
|
|
|
7983
8316
|
|
|
7984
8317
|
.model-badge {
|
|
7985
8318
|
position: absolute;
|
|
7986
|
-
top:
|
|
7987
|
-
right:
|
|
8319
|
+
top: 8px;
|
|
8320
|
+
right: 8px;
|
|
7988
8321
|
padding: 2px 8px;
|
|
7989
8322
|
font-size: 9px;
|
|
7990
8323
|
font-weight: 700;
|
|
@@ -8019,14 +8352,20 @@ body.resizing * {
|
|
|
8019
8352
|
color: white;
|
|
8020
8353
|
}
|
|
8021
8354
|
|
|
8355
|
+
.model-icon {
|
|
8356
|
+
font-size: 28px;
|
|
8357
|
+
line-height: 1;
|
|
8358
|
+
margin-bottom: 2px;
|
|
8359
|
+
}
|
|
8360
|
+
|
|
8022
8361
|
.model-info {
|
|
8023
8362
|
display: flex;
|
|
8024
8363
|
flex-direction: column;
|
|
8025
|
-
gap:
|
|
8364
|
+
gap: 1px;
|
|
8026
8365
|
}
|
|
8027
8366
|
|
|
8028
8367
|
.model-name {
|
|
8029
|
-
font-size:
|
|
8368
|
+
font-size: 13px;
|
|
8030
8369
|
font-weight: 600;
|
|
8031
8370
|
color: var(--color-text-primary);
|
|
8032
8371
|
}
|
|
@@ -8037,10 +8376,10 @@ body.resizing * {
|
|
|
8037
8376
|
}
|
|
8038
8377
|
|
|
8039
8378
|
.model-description {
|
|
8040
|
-
margin:
|
|
8041
|
-
font-size:
|
|
8379
|
+
margin: 4px 0 0;
|
|
8380
|
+
font-size: 10px;
|
|
8042
8381
|
color: var(--color-text-tertiary);
|
|
8043
|
-
line-height: 1.
|
|
8382
|
+
line-height: 1.3;
|
|
8044
8383
|
}
|
|
8045
8384
|
|
|
8046
8385
|
.model-selected-indicator {
|
|
@@ -8395,12 +8734,31 @@ body.resizing * {
|
|
|
8395
8734
|
.analysis-config-footer {
|
|
8396
8735
|
display: flex;
|
|
8397
8736
|
justify-content: flex-end;
|
|
8737
|
+
align-items: center;
|
|
8398
8738
|
gap: 10px;
|
|
8399
8739
|
padding: 16px 20px;
|
|
8400
8740
|
background: var(--color-bg-secondary);
|
|
8401
8741
|
border-top: 1px solid var(--color-border-primary);
|
|
8402
8742
|
}
|
|
8403
8743
|
|
|
8744
|
+
/* Unsaved council changes hint + footer save button container */
|
|
8745
|
+
.council-footer-left {
|
|
8746
|
+
display: flex;
|
|
8747
|
+
align-items: center;
|
|
8748
|
+
gap: 10px;
|
|
8749
|
+
margin-right: auto;
|
|
8750
|
+
}
|
|
8751
|
+
|
|
8752
|
+
.council-dirty-hint {
|
|
8753
|
+
font-size: 12px;
|
|
8754
|
+
color: var(--color-accent-primary, #0969da);
|
|
8755
|
+
font-style: italic;
|
|
8756
|
+
}
|
|
8757
|
+
|
|
8758
|
+
[data-theme="dark"] .council-dirty-hint {
|
|
8759
|
+
color: var(--color-accent-primary, #58a6ff);
|
|
8760
|
+
}
|
|
8761
|
+
|
|
8404
8762
|
.btn-analyze {
|
|
8405
8763
|
display: inline-flex;
|
|
8406
8764
|
align-items: center;
|
|
@@ -8455,6 +8813,9 @@ body.resizing * {
|
|
|
8455
8813
|
text-align: left;
|
|
8456
8814
|
padding: 12px 16px;
|
|
8457
8815
|
gap: 12px;
|
|
8816
|
+
aspect-ratio: auto;
|
|
8817
|
+
overflow: visible;
|
|
8818
|
+
justify-content: flex-start;
|
|
8458
8819
|
}
|
|
8459
8820
|
|
|
8460
8821
|
.model-icon {
|
|
@@ -8491,6 +8852,672 @@ body.resizing * {
|
|
|
8491
8852
|
}
|
|
8492
8853
|
}
|
|
8493
8854
|
|
|
8855
|
+
/* ==========================================================================
|
|
8856
|
+
Review Council Tab
|
|
8857
|
+
Multi-voice, multi-provider analysis configuration
|
|
8858
|
+
========================================================================== */
|
|
8859
|
+
|
|
8860
|
+
.analysis-tab-bar {
|
|
8861
|
+
display: flex;
|
|
8862
|
+
gap: 0;
|
|
8863
|
+
border-bottom: 1px solid var(--border-color, #d0d7de);
|
|
8864
|
+
margin-bottom: 16px;
|
|
8865
|
+
}
|
|
8866
|
+
|
|
8867
|
+
.analysis-tab {
|
|
8868
|
+
padding: 8px 16px;
|
|
8869
|
+
border: none;
|
|
8870
|
+
background: none;
|
|
8871
|
+
cursor: pointer;
|
|
8872
|
+
font-size: 13px;
|
|
8873
|
+
font-weight: 500;
|
|
8874
|
+
color: var(--fg-muted, #656d76);
|
|
8875
|
+
border-bottom: 2px solid transparent;
|
|
8876
|
+
transition: color 0.15s, border-color 0.15s;
|
|
8877
|
+
}
|
|
8878
|
+
|
|
8879
|
+
.analysis-tab:hover {
|
|
8880
|
+
color: var(--fg-default, #1f2328);
|
|
8881
|
+
}
|
|
8882
|
+
|
|
8883
|
+
.analysis-tab.active {
|
|
8884
|
+
color: var(--fg-default, #1f2328);
|
|
8885
|
+
border-bottom-color: var(--accent-emphasis, #0969da);
|
|
8886
|
+
}
|
|
8887
|
+
|
|
8888
|
+
[data-theme="dark"] .analysis-tab {
|
|
8889
|
+
color: #8b949e;
|
|
8890
|
+
}
|
|
8891
|
+
|
|
8892
|
+
[data-theme="dark"] .analysis-tab:hover {
|
|
8893
|
+
color: #c9d1d9;
|
|
8894
|
+
}
|
|
8895
|
+
|
|
8896
|
+
[data-theme="dark"] .analysis-tab.active {
|
|
8897
|
+
color: #c9d1d9;
|
|
8898
|
+
border-bottom-color: #58a6ff;
|
|
8899
|
+
}
|
|
8900
|
+
|
|
8901
|
+
.beta-badge {
|
|
8902
|
+
display: inline-block;
|
|
8903
|
+
font-size: 10px;
|
|
8904
|
+
font-weight: 600;
|
|
8905
|
+
text-transform: uppercase;
|
|
8906
|
+
letter-spacing: 0.5px;
|
|
8907
|
+
padding: 1px 5px;
|
|
8908
|
+
border-radius: 3px;
|
|
8909
|
+
background-color: var(--accent-subtle, #ddf4ff);
|
|
8910
|
+
color: var(--accent-fg, #0969da);
|
|
8911
|
+
margin-left: 4px;
|
|
8912
|
+
vertical-align: middle;
|
|
8913
|
+
}
|
|
8914
|
+
|
|
8915
|
+
[data-theme="dark"] .beta-badge {
|
|
8916
|
+
background-color: transparent;
|
|
8917
|
+
color: #8b949e;
|
|
8918
|
+
border: 1px solid #30363d;
|
|
8919
|
+
}
|
|
8920
|
+
|
|
8921
|
+
.council-selector-row {
|
|
8922
|
+
display: flex;
|
|
8923
|
+
gap: 8px;
|
|
8924
|
+
align-items: center;
|
|
8925
|
+
}
|
|
8926
|
+
|
|
8927
|
+
.council-select {
|
|
8928
|
+
flex: 1;
|
|
8929
|
+
padding: 6px 10px;
|
|
8930
|
+
border: 1px solid var(--border-color, #d0d7de);
|
|
8931
|
+
border-radius: 6px;
|
|
8932
|
+
background: var(--bg-default, #fff);
|
|
8933
|
+
color: var(--fg-default, #1f2328);
|
|
8934
|
+
font-size: 13px;
|
|
8935
|
+
}
|
|
8936
|
+
|
|
8937
|
+
[data-theme="dark"] .council-select {
|
|
8938
|
+
background: var(--bg-subtle, #161b22);
|
|
8939
|
+
color: var(--fg-default, #e6edf3);
|
|
8940
|
+
border-color: var(--border-color, #30363d);
|
|
8941
|
+
}
|
|
8942
|
+
|
|
8943
|
+
/* "New Council" option in council selector */
|
|
8944
|
+
.council-option-new {
|
|
8945
|
+
font-style: italic;
|
|
8946
|
+
color: var(--fg-muted, #656d76);
|
|
8947
|
+
}
|
|
8948
|
+
|
|
8949
|
+
/* Style the select itself when "New Council" is the active selection */
|
|
8950
|
+
.council-select.new-council-selected {
|
|
8951
|
+
font-style: italic;
|
|
8952
|
+
color: var(--fg-muted, #656d76);
|
|
8953
|
+
}
|
|
8954
|
+
|
|
8955
|
+
/* Council review divider - separates council config from per-review settings */
|
|
8956
|
+
.council-review-divider {
|
|
8957
|
+
margin: 24px 0 16px;
|
|
8958
|
+
padding-top: 20px;
|
|
8959
|
+
border-top: 1px solid var(--color-border-subtle, rgba(0, 0, 0, 0.06));
|
|
8960
|
+
}
|
|
8961
|
+
|
|
8962
|
+
[data-theme="dark"] .council-review-divider {
|
|
8963
|
+
border-top-color: var(--color-border-subtle, rgba(255, 255, 255, 0.06));
|
|
8964
|
+
}
|
|
8965
|
+
|
|
8966
|
+
.divider-label {
|
|
8967
|
+
font-size: 12px;
|
|
8968
|
+
font-weight: 500;
|
|
8969
|
+
color: var(--color-text-tertiary, #656d76);
|
|
8970
|
+
text-transform: uppercase;
|
|
8971
|
+
letter-spacing: 0.5px;
|
|
8972
|
+
}
|
|
8973
|
+
|
|
8974
|
+
[data-theme="dark"] .divider-label {
|
|
8975
|
+
color: var(--color-text-tertiary, #6e7681);
|
|
8976
|
+
}
|
|
8977
|
+
|
|
8978
|
+
.council-level-section .section-title {
|
|
8979
|
+
margin-bottom: 8px;
|
|
8980
|
+
}
|
|
8981
|
+
|
|
8982
|
+
.level-toggle {
|
|
8983
|
+
font-weight: 600;
|
|
8984
|
+
}
|
|
8985
|
+
|
|
8986
|
+
.level-toggle .toggle-label {
|
|
8987
|
+
font-weight: 600;
|
|
8988
|
+
}
|
|
8989
|
+
|
|
8990
|
+
.level-voices {
|
|
8991
|
+
margin-left: 24px;
|
|
8992
|
+
margin-top: 8px;
|
|
8993
|
+
}
|
|
8994
|
+
|
|
8995
|
+
.voice-list {
|
|
8996
|
+
display: flex;
|
|
8997
|
+
flex-direction: column;
|
|
8998
|
+
gap: 6px;
|
|
8999
|
+
}
|
|
9000
|
+
|
|
9001
|
+
.voice-row {
|
|
9002
|
+
display: flex;
|
|
9003
|
+
gap: 8px;
|
|
9004
|
+
align-items: center;
|
|
9005
|
+
}
|
|
9006
|
+
|
|
9007
|
+
.voice-provider,
|
|
9008
|
+
.voice-model,
|
|
9009
|
+
.voice-tier {
|
|
9010
|
+
padding: 5px 8px;
|
|
9011
|
+
border: 1px solid var(--border-color, #d0d7de);
|
|
9012
|
+
border-radius: 6px;
|
|
9013
|
+
background: var(--bg-default, #fff);
|
|
9014
|
+
color: var(--fg-default, #1f2328);
|
|
9015
|
+
font-size: 12px;
|
|
9016
|
+
}
|
|
9017
|
+
|
|
9018
|
+
[data-theme="dark"] .voice-provider,
|
|
9019
|
+
[data-theme="dark"] .voice-model,
|
|
9020
|
+
[data-theme="dark"] .voice-tier {
|
|
9021
|
+
background: var(--bg-subtle, #161b22);
|
|
9022
|
+
color: var(--fg-default, #e6edf3);
|
|
9023
|
+
border-color: var(--border-color, #30363d);
|
|
9024
|
+
}
|
|
9025
|
+
|
|
9026
|
+
.voice-provider {
|
|
9027
|
+
min-width: 100px;
|
|
9028
|
+
}
|
|
9029
|
+
|
|
9030
|
+
.voice-model {
|
|
9031
|
+
min-width: 140px;
|
|
9032
|
+
flex: 1;
|
|
9033
|
+
}
|
|
9034
|
+
|
|
9035
|
+
.voice-tier {
|
|
9036
|
+
min-width: 90px;
|
|
9037
|
+
}
|
|
9038
|
+
|
|
9039
|
+
.btn-icon {
|
|
9040
|
+
box-sizing: border-box;
|
|
9041
|
+
width: 28px;
|
|
9042
|
+
height: 28px;
|
|
9043
|
+
padding: 0;
|
|
9044
|
+
display: inline-flex;
|
|
9045
|
+
align-items: center;
|
|
9046
|
+
justify-content: center;
|
|
9047
|
+
font-size: 16px;
|
|
9048
|
+
line-height: 1;
|
|
9049
|
+
border-radius: 6px;
|
|
9050
|
+
border: 1px solid var(--border-color, #d0d7de);
|
|
9051
|
+
background: var(--bg-default, #fff);
|
|
9052
|
+
color: var(--fg-muted, #656d76);
|
|
9053
|
+
cursor: pointer;
|
|
9054
|
+
}
|
|
9055
|
+
|
|
9056
|
+
.btn-icon:hover {
|
|
9057
|
+
color: var(--danger-fg, #cf222e);
|
|
9058
|
+
border-color: var(--danger-fg, #cf222e);
|
|
9059
|
+
}
|
|
9060
|
+
|
|
9061
|
+
.btn-ghost {
|
|
9062
|
+
background: none;
|
|
9063
|
+
border: none;
|
|
9064
|
+
color: var(--accent-fg, #0969da);
|
|
9065
|
+
cursor: pointer;
|
|
9066
|
+
font-size: 12px;
|
|
9067
|
+
padding: 4px 8px;
|
|
9068
|
+
}
|
|
9069
|
+
|
|
9070
|
+
.btn-ghost:hover {
|
|
9071
|
+
text-decoration: underline;
|
|
9072
|
+
}
|
|
9073
|
+
|
|
9074
|
+
.btn-sm {
|
|
9075
|
+
font-size: 12px;
|
|
9076
|
+
padding: 4px 10px;
|
|
9077
|
+
}
|
|
9078
|
+
|
|
9079
|
+
.add-voice-btn {
|
|
9080
|
+
margin-top: 6px;
|
|
9081
|
+
}
|
|
9082
|
+
|
|
9083
|
+
.add-voice-btn:hover {
|
|
9084
|
+
color: var(--color-accent-primary, #0969da);
|
|
9085
|
+
border-color: var(--color-accent-primary, #0969da);
|
|
9086
|
+
}
|
|
9087
|
+
|
|
9088
|
+
.section-hint-text {
|
|
9089
|
+
font-size: 12px;
|
|
9090
|
+
color: var(--fg-muted, #656d76);
|
|
9091
|
+
margin-bottom: 8px;
|
|
9092
|
+
margin-top: -4px;
|
|
9093
|
+
}
|
|
9094
|
+
|
|
9095
|
+
.voice-instructions-area {
|
|
9096
|
+
margin-left: 0;
|
|
9097
|
+
margin-bottom: 4px;
|
|
9098
|
+
}
|
|
9099
|
+
|
|
9100
|
+
.voice-instructions-input {
|
|
9101
|
+
width: 100%;
|
|
9102
|
+
padding: 6px 8px;
|
|
9103
|
+
border: 1px solid var(--border-color, #d0d7de);
|
|
9104
|
+
border-radius: 6px;
|
|
9105
|
+
background: var(--bg-default, #fff);
|
|
9106
|
+
color: var(--fg-default, #1f2328);
|
|
9107
|
+
font-size: 12px;
|
|
9108
|
+
font-family: inherit;
|
|
9109
|
+
resize: vertical;
|
|
9110
|
+
}
|
|
9111
|
+
|
|
9112
|
+
[data-theme="dark"] .voice-instructions-input {
|
|
9113
|
+
background: var(--bg-subtle, #161b22);
|
|
9114
|
+
color: var(--fg-default, #e6edf3);
|
|
9115
|
+
border-color: var(--border-color, #30363d);
|
|
9116
|
+
}
|
|
9117
|
+
|
|
9118
|
+
/* Icon-only toggle for per-participant instructions */
|
|
9119
|
+
.toggle-instructions-icon {
|
|
9120
|
+
width: 24px;
|
|
9121
|
+
height: 24px;
|
|
9122
|
+
padding: 0;
|
|
9123
|
+
display: inline-flex;
|
|
9124
|
+
align-items: center;
|
|
9125
|
+
justify-content: center;
|
|
9126
|
+
background: none;
|
|
9127
|
+
border: 1px solid transparent;
|
|
9128
|
+
border-radius: 4px;
|
|
9129
|
+
color: var(--color-text-tertiary, #6e7681);
|
|
9130
|
+
cursor: pointer;
|
|
9131
|
+
flex-shrink: 0;
|
|
9132
|
+
transition: color 0.15s ease, border-color 0.15s ease;
|
|
9133
|
+
}
|
|
9134
|
+
|
|
9135
|
+
.toggle-instructions-icon:hover {
|
|
9136
|
+
color: var(--color-accent-primary, #0969da);
|
|
9137
|
+
border-color: var(--color-border-secondary, #d0d7de);
|
|
9138
|
+
}
|
|
9139
|
+
|
|
9140
|
+
.toggle-instructions-icon.has-instructions {
|
|
9141
|
+
color: var(--color-accent-primary, #0969da);
|
|
9142
|
+
}
|
|
9143
|
+
|
|
9144
|
+
[data-theme="dark"] .toggle-instructions-icon {
|
|
9145
|
+
color: var(--color-text-tertiary, #484f58);
|
|
9146
|
+
}
|
|
9147
|
+
|
|
9148
|
+
[data-theme="dark"] .toggle-instructions-icon:hover {
|
|
9149
|
+
color: var(--color-accent-primary, #58a6ff);
|
|
9150
|
+
border-color: var(--color-border-primary, #30363d);
|
|
9151
|
+
}
|
|
9152
|
+
|
|
9153
|
+
[data-theme="dark"] .toggle-instructions-icon.has-instructions {
|
|
9154
|
+
color: var(--color-accent-primary, #58a6ff);
|
|
9155
|
+
}
|
|
9156
|
+
|
|
9157
|
+
/* Icon-only toggle for per-voice timeout (clock icon) */
|
|
9158
|
+
.toggle-timeout-icon {
|
|
9159
|
+
width: 24px;
|
|
9160
|
+
height: 24px;
|
|
9161
|
+
padding: 0;
|
|
9162
|
+
display: inline-flex;
|
|
9163
|
+
align-items: center;
|
|
9164
|
+
justify-content: center;
|
|
9165
|
+
background: none;
|
|
9166
|
+
border: 1px solid transparent;
|
|
9167
|
+
border-radius: 4px;
|
|
9168
|
+
color: var(--color-text-tertiary, #6e7681);
|
|
9169
|
+
cursor: pointer;
|
|
9170
|
+
flex-shrink: 0;
|
|
9171
|
+
transition: color 0.15s ease, border-color 0.15s ease;
|
|
9172
|
+
}
|
|
9173
|
+
|
|
9174
|
+
.toggle-timeout-icon:hover {
|
|
9175
|
+
color: var(--color-accent-primary, #0969da);
|
|
9176
|
+
border-color: var(--color-border-secondary, #d0d7de);
|
|
9177
|
+
}
|
|
9178
|
+
|
|
9179
|
+
.toggle-timeout-icon.has-custom-timeout {
|
|
9180
|
+
color: var(--color-attention-fg, #9a6700);
|
|
9181
|
+
}
|
|
9182
|
+
|
|
9183
|
+
[data-theme="dark"] .toggle-timeout-icon {
|
|
9184
|
+
color: var(--color-text-tertiary, #484f58);
|
|
9185
|
+
}
|
|
9186
|
+
|
|
9187
|
+
[data-theme="dark"] .toggle-timeout-icon:hover {
|
|
9188
|
+
color: var(--color-accent-primary, #58a6ff);
|
|
9189
|
+
border-color: var(--color-border-primary, #30363d);
|
|
9190
|
+
}
|
|
9191
|
+
|
|
9192
|
+
[data-theme="dark"] .toggle-timeout-icon.has-custom-timeout {
|
|
9193
|
+
color: var(--color-attention-fg, #d29922);
|
|
9194
|
+
}
|
|
9195
|
+
|
|
9196
|
+
/* Custom timeout dropdown selector (replaces native <select> for timeouts) */
|
|
9197
|
+
.timeout-select {
|
|
9198
|
+
position: relative;
|
|
9199
|
+
display: inline-flex;
|
|
9200
|
+
flex-shrink: 0;
|
|
9201
|
+
}
|
|
9202
|
+
|
|
9203
|
+
.timeout-select-trigger {
|
|
9204
|
+
display: inline-flex;
|
|
9205
|
+
align-items: center;
|
|
9206
|
+
gap: 4px;
|
|
9207
|
+
padding: 4px 8px;
|
|
9208
|
+
border: 1px solid var(--border-color, #d0d7de);
|
|
9209
|
+
border-radius: 6px;
|
|
9210
|
+
background: var(--bg-default, #fff);
|
|
9211
|
+
color: var(--fg-default, #1f2328);
|
|
9212
|
+
font-size: 12px;
|
|
9213
|
+
font-family: inherit;
|
|
9214
|
+
font-weight: 500;
|
|
9215
|
+
cursor: pointer;
|
|
9216
|
+
white-space: nowrap;
|
|
9217
|
+
transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
|
|
9218
|
+
min-width: 52px;
|
|
9219
|
+
justify-content: center;
|
|
9220
|
+
line-height: 1.4;
|
|
9221
|
+
}
|
|
9222
|
+
|
|
9223
|
+
.timeout-select-trigger:hover {
|
|
9224
|
+
border-color: var(--color-accent-primary, #0969da);
|
|
9225
|
+
background: var(--bg-subtle, #f6f8fa);
|
|
9226
|
+
}
|
|
9227
|
+
|
|
9228
|
+
.timeout-select.open .timeout-select-trigger {
|
|
9229
|
+
border-color: var(--color-accent-primary, #0969da);
|
|
9230
|
+
box-shadow: 0 0 0 2px rgba(9, 105, 218, 0.15);
|
|
9231
|
+
}
|
|
9232
|
+
|
|
9233
|
+
.timeout-select-label {
|
|
9234
|
+
pointer-events: none;
|
|
9235
|
+
}
|
|
9236
|
+
|
|
9237
|
+
.timeout-select-caret {
|
|
9238
|
+
flex-shrink: 0;
|
|
9239
|
+
transition: transform 0.15s ease;
|
|
9240
|
+
pointer-events: none;
|
|
9241
|
+
}
|
|
9242
|
+
|
|
9243
|
+
.timeout-select.open .timeout-select-caret {
|
|
9244
|
+
transform: rotate(180deg);
|
|
9245
|
+
}
|
|
9246
|
+
|
|
9247
|
+
/* Dropdown menu */
|
|
9248
|
+
.timeout-select-menu {
|
|
9249
|
+
display: none;
|
|
9250
|
+
position: absolute;
|
|
9251
|
+
top: calc(100% + 4px);
|
|
9252
|
+
left: 50%;
|
|
9253
|
+
transform: translateX(-50%);
|
|
9254
|
+
min-width: 64px;
|
|
9255
|
+
background: var(--bg-default, #fff);
|
|
9256
|
+
border: 1px solid var(--border-color, #d0d7de);
|
|
9257
|
+
border-radius: 8px;
|
|
9258
|
+
box-shadow: 0 4px 12px rgba(27, 31, 36, 0.12), 0 1px 3px rgba(27, 31, 36, 0.08);
|
|
9259
|
+
z-index: 1100;
|
|
9260
|
+
padding: 4px;
|
|
9261
|
+
flex-direction: column;
|
|
9262
|
+
}
|
|
9263
|
+
|
|
9264
|
+
.timeout-select.open .timeout-select-menu {
|
|
9265
|
+
display: flex;
|
|
9266
|
+
}
|
|
9267
|
+
|
|
9268
|
+
/* Individual option */
|
|
9269
|
+
.timeout-select-option {
|
|
9270
|
+
display: flex;
|
|
9271
|
+
align-items: center;
|
|
9272
|
+
justify-content: center;
|
|
9273
|
+
padding: 5px 10px;
|
|
9274
|
+
border: none;
|
|
9275
|
+
border-radius: 5px;
|
|
9276
|
+
background: transparent;
|
|
9277
|
+
color: var(--fg-default, #1f2328);
|
|
9278
|
+
font-size: 12px;
|
|
9279
|
+
font-family: inherit;
|
|
9280
|
+
font-weight: 500;
|
|
9281
|
+
cursor: pointer;
|
|
9282
|
+
white-space: nowrap;
|
|
9283
|
+
transition: background 0.1s ease, color 0.1s ease;
|
|
9284
|
+
}
|
|
9285
|
+
|
|
9286
|
+
.timeout-select-option:hover,
|
|
9287
|
+
.timeout-select-option.focused {
|
|
9288
|
+
background: var(--bg-subtle, #f6f8fa);
|
|
9289
|
+
}
|
|
9290
|
+
|
|
9291
|
+
.timeout-select-option.selected {
|
|
9292
|
+
color: var(--color-accent-primary, #0969da);
|
|
9293
|
+
background: rgba(9, 105, 218, 0.08);
|
|
9294
|
+
font-weight: 600;
|
|
9295
|
+
}
|
|
9296
|
+
|
|
9297
|
+
.timeout-select-option.selected:hover,
|
|
9298
|
+
.timeout-select-option.selected.focused {
|
|
9299
|
+
background: rgba(9, 105, 218, 0.14);
|
|
9300
|
+
}
|
|
9301
|
+
|
|
9302
|
+
/* Dark theme overrides */
|
|
9303
|
+
[data-theme="dark"] .timeout-select-trigger {
|
|
9304
|
+
background: var(--bg-subtle, #161b22);
|
|
9305
|
+
color: var(--fg-default, #e6edf3);
|
|
9306
|
+
border-color: var(--border-color, #30363d);
|
|
9307
|
+
}
|
|
9308
|
+
|
|
9309
|
+
[data-theme="dark"] .timeout-select-trigger:hover {
|
|
9310
|
+
border-color: var(--color-accent-primary, #58a6ff);
|
|
9311
|
+
background: var(--color-bg-tertiary, #1c2128);
|
|
9312
|
+
}
|
|
9313
|
+
|
|
9314
|
+
[data-theme="dark"] .timeout-select.open .timeout-select-trigger {
|
|
9315
|
+
border-color: var(--color-accent-primary, #58a6ff);
|
|
9316
|
+
box-shadow: 0 0 0 2px rgba(88, 166, 255, 0.15);
|
|
9317
|
+
}
|
|
9318
|
+
|
|
9319
|
+
[data-theme="dark"] .timeout-select-menu {
|
|
9320
|
+
background: var(--bg-subtle, #161b22);
|
|
9321
|
+
border-color: var(--border-color, #30363d);
|
|
9322
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3), 0 1px 3px rgba(0, 0, 0, 0.2);
|
|
9323
|
+
}
|
|
9324
|
+
|
|
9325
|
+
[data-theme="dark"] .timeout-select-option {
|
|
9326
|
+
color: var(--fg-default, #e6edf3);
|
|
9327
|
+
}
|
|
9328
|
+
|
|
9329
|
+
[data-theme="dark"] .timeout-select-option:hover,
|
|
9330
|
+
[data-theme="dark"] .timeout-select-option.focused {
|
|
9331
|
+
background: rgba(255, 255, 255, 0.06);
|
|
9332
|
+
}
|
|
9333
|
+
|
|
9334
|
+
[data-theme="dark"] .timeout-select-option.selected {
|
|
9335
|
+
color: var(--color-accent-primary, #58a6ff);
|
|
9336
|
+
background: rgba(88, 166, 255, 0.1);
|
|
9337
|
+
}
|
|
9338
|
+
|
|
9339
|
+
[data-theme="dark"] .timeout-select-option.selected:hover,
|
|
9340
|
+
[data-theme="dark"] .timeout-select-option.selected.focused {
|
|
9341
|
+
background: rgba(88, 166, 255, 0.16);
|
|
9342
|
+
}
|
|
9343
|
+
|
|
9344
|
+
/* Participant card layout (item 4) */
|
|
9345
|
+
.participant-wrapper {
|
|
9346
|
+
display: flex;
|
|
9347
|
+
flex-direction: row;
|
|
9348
|
+
gap: 8px;
|
|
9349
|
+
align-items: flex-start;
|
|
9350
|
+
}
|
|
9351
|
+
|
|
9352
|
+
.participant-card {
|
|
9353
|
+
flex: 1;
|
|
9354
|
+
border: 1px solid var(--border-color, #d0d7de);
|
|
9355
|
+
border-radius: 8px;
|
|
9356
|
+
padding: 10px;
|
|
9357
|
+
display: flex;
|
|
9358
|
+
flex-direction: column;
|
|
9359
|
+
gap: 6px;
|
|
9360
|
+
background: var(--bg-default, #fff);
|
|
9361
|
+
}
|
|
9362
|
+
|
|
9363
|
+
[data-theme="dark"] .participant-card {
|
|
9364
|
+
border-color: var(--border-color, #30363d);
|
|
9365
|
+
background: var(--bg-subtle, #161b22);
|
|
9366
|
+
}
|
|
9367
|
+
|
|
9368
|
+
.participant-card .voice-row {
|
|
9369
|
+
margin: 0;
|
|
9370
|
+
}
|
|
9371
|
+
|
|
9372
|
+
.participant-card .voice-instructions-area {
|
|
9373
|
+
margin: 0;
|
|
9374
|
+
}
|
|
9375
|
+
|
|
9376
|
+
/* Orchestration/consolidation card — same styling as participant-card */
|
|
9377
|
+
.orchestration-card {
|
|
9378
|
+
border: 1px solid var(--border-color, #d0d7de);
|
|
9379
|
+
border-radius: 8px;
|
|
9380
|
+
padding: 10px;
|
|
9381
|
+
display: flex;
|
|
9382
|
+
flex-direction: column;
|
|
9383
|
+
gap: 6px;
|
|
9384
|
+
background: var(--bg-default, #fff);
|
|
9385
|
+
}
|
|
9386
|
+
|
|
9387
|
+
[data-theme="dark"] .orchestration-card {
|
|
9388
|
+
border-color: var(--border-color, #30363d);
|
|
9389
|
+
background: var(--bg-subtle, #161b22);
|
|
9390
|
+
}
|
|
9391
|
+
|
|
9392
|
+
.orchestration-card .voice-row {
|
|
9393
|
+
margin: 0;
|
|
9394
|
+
}
|
|
9395
|
+
|
|
9396
|
+
.orchestration-card .voice-instructions-area {
|
|
9397
|
+
margin: 0;
|
|
9398
|
+
}
|
|
9399
|
+
|
|
9400
|
+
.participant-wrapper > .remove-voice-btn {
|
|
9401
|
+
flex-shrink: 0;
|
|
9402
|
+
margin-top: 10px;
|
|
9403
|
+
}
|
|
9404
|
+
|
|
9405
|
+
/* Spacer to align consolidation row with level voice rows that have a remove button */
|
|
9406
|
+
.participant-wrapper > .remove-voice-btn-spacer {
|
|
9407
|
+
flex-shrink: 0;
|
|
9408
|
+
width: 28px; /* matches .btn-icon width */
|
|
9409
|
+
}
|
|
9410
|
+
|
|
9411
|
+
/* Dark mode overrides for council +/- icon buttons */
|
|
9412
|
+
[data-theme="dark"] .btn-icon {
|
|
9413
|
+
background: var(--color-bg-tertiary, #1c2128);
|
|
9414
|
+
border-color: var(--color-border-primary, #30363d);
|
|
9415
|
+
color: var(--color-text-secondary, #8b949e);
|
|
9416
|
+
}
|
|
9417
|
+
|
|
9418
|
+
[data-theme="dark"] .btn-icon:hover {
|
|
9419
|
+
background: var(--color-bg-elevated, #1e2329);
|
|
9420
|
+
color: var(--color-danger, #f85149);
|
|
9421
|
+
border-color: var(--color-danger, #f85149);
|
|
9422
|
+
}
|
|
9423
|
+
|
|
9424
|
+
[data-theme="dark"] .add-voice-btn {
|
|
9425
|
+
color: var(--color-text-secondary, #8b949e);
|
|
9426
|
+
}
|
|
9427
|
+
|
|
9428
|
+
[data-theme="dark"] .add-voice-btn:hover {
|
|
9429
|
+
color: var(--color-accent-primary, #58a6ff);
|
|
9430
|
+
border-color: var(--color-accent-primary, #58a6ff);
|
|
9431
|
+
}
|
|
9432
|
+
|
|
9433
|
+
/* Disabled button styles for council selector row (item 6) */
|
|
9434
|
+
.council-selector-row .btn:disabled {
|
|
9435
|
+
opacity: 0.5;
|
|
9436
|
+
cursor: not-allowed;
|
|
9437
|
+
}
|
|
9438
|
+
|
|
9439
|
+
/* Icon-only danger button (e.g. delete council) */
|
|
9440
|
+
.btn-icon-danger {
|
|
9441
|
+
background: none;
|
|
9442
|
+
border: 1px solid transparent;
|
|
9443
|
+
color: var(--fg-muted, #656d76);
|
|
9444
|
+
padding: 4px 6px;
|
|
9445
|
+
border-radius: 6px;
|
|
9446
|
+
cursor: pointer;
|
|
9447
|
+
display: inline-flex;
|
|
9448
|
+
align-items: center;
|
|
9449
|
+
justify-content: center;
|
|
9450
|
+
transition: color 0.15s, background 0.15s;
|
|
9451
|
+
}
|
|
9452
|
+
|
|
9453
|
+
.btn-icon-danger:hover:not(:disabled) {
|
|
9454
|
+
color: var(--danger-fg, #d1242f);
|
|
9455
|
+
background: var(--color-danger-subtle, rgba(255, 129, 130, 0.1));
|
|
9456
|
+
}
|
|
9457
|
+
|
|
9458
|
+
.btn-icon-danger:disabled {
|
|
9459
|
+
opacity: 0.4;
|
|
9460
|
+
cursor: not-allowed;
|
|
9461
|
+
}
|
|
9462
|
+
|
|
9463
|
+
[data-theme="dark"] .btn-icon-danger {
|
|
9464
|
+
color: var(--color-text-secondary, #8b949e);
|
|
9465
|
+
}
|
|
9466
|
+
|
|
9467
|
+
[data-theme="dark"] .btn-icon-danger:hover:not(:disabled) {
|
|
9468
|
+
color: var(--color-danger, #f85149);
|
|
9469
|
+
background: rgba(248, 81, 73, 0.1);
|
|
9470
|
+
}
|
|
9471
|
+
|
|
9472
|
+
/* Info-tip toggle buttons (circled "i" icons next to section headers) */
|
|
9473
|
+
.info-tip-toggle {
|
|
9474
|
+
display: inline-flex;
|
|
9475
|
+
align-items: center;
|
|
9476
|
+
justify-content: center;
|
|
9477
|
+
width: 18px;
|
|
9478
|
+
height: 18px;
|
|
9479
|
+
padding: 0;
|
|
9480
|
+
border: none;
|
|
9481
|
+
border-radius: 50%;
|
|
9482
|
+
background: none;
|
|
9483
|
+
color: var(--color-text-tertiary, #656d76);
|
|
9484
|
+
cursor: pointer;
|
|
9485
|
+
flex-shrink: 0;
|
|
9486
|
+
transition: color 0.15s ease;
|
|
9487
|
+
}
|
|
9488
|
+
|
|
9489
|
+
.info-tip-toggle:hover {
|
|
9490
|
+
color: var(--color-info, #0969da);
|
|
9491
|
+
}
|
|
9492
|
+
|
|
9493
|
+
.info-tip-toggle.active {
|
|
9494
|
+
color: var(--color-info, #0969da);
|
|
9495
|
+
}
|
|
9496
|
+
|
|
9497
|
+
.info-tip-content {
|
|
9498
|
+
background: var(--color-info-subtle, #ddf4ff);
|
|
9499
|
+
border-radius: 6px;
|
|
9500
|
+
padding: 8px 10px;
|
|
9501
|
+
margin: 0 0 8px;
|
|
9502
|
+
font-size: 12px;
|
|
9503
|
+
line-height: 1.45;
|
|
9504
|
+
color: var(--color-text-secondary, #424a53);
|
|
9505
|
+
}
|
|
9506
|
+
|
|
9507
|
+
[data-theme="dark"] .info-tip-toggle {
|
|
9508
|
+
color: var(--color-text-tertiary, #484f58);
|
|
9509
|
+
}
|
|
9510
|
+
|
|
9511
|
+
[data-theme="dark"] .info-tip-toggle:hover,
|
|
9512
|
+
[data-theme="dark"] .info-tip-toggle.active {
|
|
9513
|
+
color: var(--color-info, #58a6ff);
|
|
9514
|
+
}
|
|
9515
|
+
|
|
9516
|
+
[data-theme="dark"] .info-tip-content {
|
|
9517
|
+
background: rgba(56, 139, 253, 0.1);
|
|
9518
|
+
color: var(--color-text-secondary, #8b949e);
|
|
9519
|
+
}
|
|
9520
|
+
|
|
8494
9521
|
/* ==========================================================================
|
|
8495
9522
|
File-Level Comments Zone
|
|
8496
9523
|
Collapsible section between file header and diff content
|