Spaces:
Running
on
Zero
Running
on
Zero
Fix HF Space compatibility issues
Browse files- Lock critical dependency versions (transformers, accelerate, etc.)
- Disable SSR mode for consistent CSS loading
- Add !important to Hero Banner styles
- Restore .dark class selector for dark mode with media query fallback
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- app.py +1 -0
- requirements.txt +5 -5
- ui/css.py +190 -126
app.py
CHANGED
|
@@ -34,6 +34,7 @@ def main():
|
|
| 34 |
server_port=7860,
|
| 35 |
css=CUSTOM_CSS,
|
| 36 |
theme=gr.themes.Soft(),
|
|
|
|
| 37 |
)
|
| 38 |
|
| 39 |
|
|
|
|
| 34 |
server_port=7860,
|
| 35 |
css=CUSTOM_CSS,
|
| 36 |
theme=gr.themes.Soft(),
|
| 37 |
+
ssr_mode=False, # Disable SSR for consistent CSS loading
|
| 38 |
)
|
| 39 |
|
| 40 |
|
requirements.txt
CHANGED
|
@@ -1,9 +1,9 @@
|
|
| 1 |
torch>=2.1.0
|
| 2 |
-
transformers
|
| 3 |
-
accelerate
|
| 4 |
-
bitsandbytes
|
| 5 |
-
huggingface_hub
|
| 6 |
-
langgraph
|
| 7 |
gradio==6.4.0
|
| 8 |
Pillow>=10.0.0
|
| 9 |
numpy>=1.24.0
|
|
|
|
| 1 |
torch>=2.1.0
|
| 2 |
+
transformers==5.0.0
|
| 3 |
+
accelerate==1.12.0
|
| 4 |
+
bitsandbytes==0.49.1
|
| 5 |
+
huggingface_hub==1.3.4
|
| 6 |
+
langgraph==1.0.7
|
| 7 |
gradio==6.4.0
|
| 8 |
Pillow>=10.0.0
|
| 9 |
numpy>=1.24.0
|
ui/css.py
CHANGED
|
@@ -13,76 +13,76 @@ CUSTOM_CSS = """
|
|
| 13 |
|
| 14 |
/* ===== Hero Banner ===== */
|
| 15 |
.hero-banner {
|
| 16 |
-
text-align: center;
|
| 17 |
-
padding: 36px 28px 24px;
|
| 18 |
-
border-radius: 16px;
|
| 19 |
-
background: linear-gradient(135deg, #0f172a 0%, #1e293b 40%, #0f3460 100%);
|
| 20 |
-
color: #fff;
|
| 21 |
-
margin-bottom: 22px;
|
| 22 |
-
box-shadow: 0 4px 28px rgba(0, 0, 0, 0.2);
|
| 23 |
-
position: relative;
|
| 24 |
-
overflow: hidden;
|
| 25 |
}
|
| 26 |
.hero-banner::after {
|
| 27 |
-
content: '';
|
| 28 |
-
position: absolute;
|
| 29 |
-
top: -50
|
| 30 |
-
right: -20
|
| 31 |
-
width: 400px;
|
| 32 |
-
height: 400px;
|
| 33 |
-
background: radial-gradient(circle, rgba(59,130,246,0.08) 0%, transparent 70%);
|
| 34 |
-
pointer-events: none;
|
| 35 |
}
|
| 36 |
.hero-badge {
|
| 37 |
-
display: inline-block;
|
| 38 |
-
padding: 4px 14px;
|
| 39 |
-
border-radius: 20px;
|
| 40 |
-
background: rgba(59, 130, 246, 0.2);
|
| 41 |
-
border: 1px solid rgba(59, 130, 246, 0.3);
|
| 42 |
-
color: #93c5fd;
|
| 43 |
-
font-size: 0.72rem;
|
| 44 |
-
font-weight: 600;
|
| 45 |
-
letter-spacing: 0.5px;
|
| 46 |
-
text-transform: uppercase;
|
| 47 |
-
margin-bottom: 12px;
|
| 48 |
}
|
| 49 |
.hero-banner h1 {
|
| 50 |
-
margin: 0 0 8px;
|
| 51 |
-
font-size: 2.2rem;
|
| 52 |
-
font-weight: 800;
|
| 53 |
-
letter-spacing: -0.8px;
|
| 54 |
color: #fff !important;
|
| 55 |
border: none !important;
|
| 56 |
}
|
| 57 |
.hero-sub {
|
| 58 |
-
margin: 0 0 6px;
|
| 59 |
-
font-size: 1.02rem;
|
| 60 |
-
color: #93c5fd;
|
| 61 |
-
font-weight: 500;
|
| 62 |
}
|
| 63 |
.hero-desc {
|
| 64 |
-
margin: 0 auto;
|
| 65 |
-
font-size: 0.86rem;
|
| 66 |
-
color: #94a3b8;
|
| 67 |
-
max-width: 660px;
|
| 68 |
-
line-height: 1.55;
|
| 69 |
}
|
| 70 |
.hero-models {
|
| 71 |
-
margin-top: 16px;
|
| 72 |
-
display: flex;
|
| 73 |
-
justify-content: center;
|
| 74 |
-
gap: 8px;
|
| 75 |
-
flex-wrap: wrap;
|
| 76 |
}
|
| 77 |
.model-chip {
|
| 78 |
-
display: inline-block;
|
| 79 |
-
padding: 3px 12px;
|
| 80 |
-
border-radius: 6px;
|
| 81 |
-
background: rgba(255,255,255,0.08);
|
| 82 |
-
border: 1px solid rgba(255,255,255,0.12);
|
| 83 |
-
color: #cbd5e1;
|
| 84 |
-
font-size: 0.72rem;
|
| 85 |
-
font-weight: 600;
|
| 86 |
}
|
| 87 |
|
| 88 |
/* ===== Section Label ===== */
|
|
@@ -725,242 +725,306 @@ div.agent-block .agent-header {
|
|
| 725 |
}
|
| 726 |
|
| 727 |
/* ===== Dark Mode ===== */
|
| 728 |
-
.dark
|
|
|
|
|
|
|
| 729 |
color: #94a3b8;
|
| 730 |
}
|
| 731 |
|
| 732 |
/* Case Cards */
|
| 733 |
-
.dark .case-card
|
|
|
|
| 734 |
background: #1e293b;
|
| 735 |
border-color: #334155;
|
| 736 |
}
|
| 737 |
-
.dark .case-card:hover
|
|
|
|
| 738 |
border-color: #60a5fa;
|
| 739 |
box-shadow: 0 6px 24px rgba(59, 130, 246, 0.2);
|
| 740 |
}
|
| 741 |
-
.dark .case-title
|
|
|
|
| 742 |
color: #f1f5f9;
|
| 743 |
}
|
| 744 |
-
.dark .case-meta
|
|
|
|
| 745 |
color: #94a3b8;
|
| 746 |
}
|
| 747 |
-
.dark .case-desc
|
|
|
|
| 748 |
color: #64748b;
|
| 749 |
}
|
| 750 |
-
.dark .case-misdiag
|
|
|
|
| 751 |
border-top-color: #334155;
|
| 752 |
}
|
| 753 |
-
.dark .misdiag-label
|
|
|
|
| 754 |
color: #64748b;
|
| 755 |
}
|
| 756 |
-
.dark .misdiag-value
|
|
|
|
| 757 |
color: #f87171;
|
| 758 |
}
|
| 759 |
|
| 760 |
/* Tags in dark mode */
|
| 761 |
-
.dark .tag-blue
|
| 762 |
-
.dark .tag-red
|
| 763 |
-
.dark .tag-purple { background: #2e1065; color: #c4b5fd; }
|
| 764 |
|
| 765 |
/* Voice Section */
|
| 766 |
-
.dark .voice-section
|
|
|
|
| 767 |
background: linear-gradient(135deg, #1e293b 0%, #1e3a5f 100%);
|
| 768 |
border-color: #334155;
|
| 769 |
}
|
| 770 |
-
.dark .voice-title
|
|
|
|
| 771 |
color: #f1f5f9;
|
| 772 |
}
|
| 773 |
-
.dark .voice-badge
|
|
|
|
| 774 |
background: #1e3a5f;
|
| 775 |
color: #60a5fa;
|
| 776 |
}
|
| 777 |
-
.dark .voice-hint
|
|
|
|
| 778 |
color: #64748b;
|
| 779 |
}
|
| 780 |
-
.dark .transcribe-btn
|
|
|
|
| 781 |
background: #1e3a5f !important;
|
| 782 |
border-color: #3b82f6 !important;
|
| 783 |
color: #60a5fa !important;
|
| 784 |
}
|
| 785 |
-
.dark .transcribe-btn:hover
|
|
|
|
| 786 |
background: #1d4ed8 !important;
|
| 787 |
color: #fff !important;
|
| 788 |
}
|
| 789 |
|
| 790 |
/* Voice status indicators */
|
| 791 |
-
.dark .voice-idle
|
|
|
|
| 792 |
background: #1e293b;
|
| 793 |
color: #64748b;
|
| 794 |
border-color: #334155;
|
| 795 |
}
|
| 796 |
-
.dark .voice-processing
|
|
|
|
| 797 |
background: #1e3a5f;
|
| 798 |
color: #60a5fa;
|
| 799 |
border-color: #3b82f6;
|
| 800 |
}
|
| 801 |
-
.dark .voice-success
|
|
|
|
| 802 |
background: #14532d;
|
| 803 |
color: #4ade80;
|
| 804 |
border-color: #22c55e;
|
| 805 |
}
|
| 806 |
-
.dark .voice-error
|
|
|
|
| 807 |
background: #450a0a;
|
| 808 |
color: #fca5a5;
|
| 809 |
border-color: #ef4444;
|
| 810 |
}
|
| 811 |
|
| 812 |
/* Progress Bar */
|
| 813 |
-
.dark .progress-bar-track
|
|
|
|
| 814 |
background: #1e293b;
|
| 815 |
border-color: #334155;
|
| 816 |
}
|
| 817 |
|
| 818 |
/* Agent Blocks */
|
| 819 |
-
.dark .step-done
|
|
|
|
| 820 |
background: #14532d;
|
| 821 |
border-color: #22c55e;
|
| 822 |
}
|
| 823 |
-
.dark .step-done .step-name { color: #4ade80; }
|
| 824 |
-
.dark .step-done .step-status { color: #22c55e; }
|
| 825 |
|
| 826 |
-
.dark .step-active
|
|
|
|
| 827 |
background: #1e3a5f;
|
| 828 |
border-color: #3b82f6;
|
| 829 |
}
|
| 830 |
-
.dark .step-active .step-name { color: #60a5fa; }
|
| 831 |
-
.dark .step-active .step-status { color: #3b82f6; }
|
| 832 |
|
| 833 |
-
.dark .step-waiting
|
|
|
|
| 834 |
background: #1e293b;
|
| 835 |
border-color: #334155;
|
| 836 |
}
|
| 837 |
-
.dark .step-waiting .step-icon
|
|
|
|
| 838 |
background: #334155;
|
| 839 |
color: #64748b;
|
| 840 |
}
|
| 841 |
-
.dark .step-waiting .step-name { color: #64748b; }
|
| 842 |
-
.dark .step-waiting .step-status { color: #475569; }
|
| 843 |
|
| 844 |
-
.dark .step-error
|
|
|
|
| 845 |
background: #450a0a;
|
| 846 |
border-color: #ef4444;
|
| 847 |
}
|
| 848 |
-
.dark .step-error .step-name { color: #fca5a5; }
|
| 849 |
-
.dark .step-error .step-status { color: #ef4444; }
|
| 850 |
|
| 851 |
/* Agent Output */
|
| 852 |
-
.dark .agent-output
|
|
|
|
| 853 |
color: #cbd5e1;
|
| 854 |
border-top-color: rgba(255,255,255,0.08);
|
| 855 |
}
|
| 856 |
-
.dark .agent-output details summary
|
|
|
|
| 857 |
color: #94a3b8;
|
| 858 |
}
|
| 859 |
.dark .findings-section strong,
|
| 860 |
-
.dark .differentials-section strong
|
|
|
|
|
|
|
| 861 |
color: #f1f5f9;
|
| 862 |
}
|
| 863 |
|
| 864 |
/* Bias Detector */
|
| 865 |
-
.dark .discrepancy-summary
|
|
|
|
| 866 |
background: #431407;
|
| 867 |
border-color: #c2410c;
|
| 868 |
color: #fed7aa;
|
| 869 |
}
|
| 870 |
-
.dark .bias-item
|
|
|
|
| 871 |
background: #422006;
|
| 872 |
border-left-color: #f59e0b;
|
| 873 |
}
|
| 874 |
-
.dark .bias-title
|
|
|
|
| 875 |
color: #fcd34d;
|
| 876 |
}
|
| 877 |
-
.dark .bias-evidence
|
|
|
|
| 878 |
color: #a8a29e;
|
| 879 |
}
|
| 880 |
-
.dark .missed-findings
|
|
|
|
| 881 |
background: #450a0a;
|
| 882 |
}
|
| 883 |
-
.dark .missed-findings strong
|
|
|
|
| 884 |
color: #fca5a5;
|
| 885 |
}
|
| 886 |
|
| 887 |
/* Severity tags */
|
| 888 |
-
.dark .severity-high { background: #450a0a; color: #fca5a5; }
|
| 889 |
-
.dark .severity-medium { background: #431407; color: #fdba74; }
|
| 890 |
-
.dark .severity-low { background: #422006; color: #fde047; }
|
| 891 |
|
| 892 |
/* Source tags */
|
| 893 |
-
.dark .source-doctor { background: #1e3a5f; color: #60a5fa; }
|
| 894 |
-
.dark .source-ai { background: #2e1065; color: #c4b5fd; }
|
| 895 |
-
.dark .source-both { background: #312e81; color: #a5b4fc; }
|
| 896 |
-
.dark .source-imaging { background: #1e3a5f; color: #60a5fa; }
|
| 897 |
-
.dark .source-clinical { background: #422006; color: #fcd34d; }
|
| 898 |
|
| 899 |
/* SigLIP */
|
| 900 |
-
.dark .siglip-section
|
|
|
|
| 901 |
background: #0c4a6e;
|
| 902 |
}
|
| 903 |
-
.dark .siglip-section strong
|
|
|
|
| 904 |
color: #7dd3fc;
|
| 905 |
}
|
| 906 |
-
.dark .sign-present
|
|
|
|
| 907 |
color: #4ade80;
|
| 908 |
}
|
| 909 |
-
.dark .sign-absent
|
|
|
|
| 910 |
color: #64748b;
|
| 911 |
}
|
| 912 |
|
| 913 |
/* Devil's Advocate */
|
| 914 |
-
.dark .mnm-item
|
|
|
|
| 915 |
background: #450a0a;
|
| 916 |
border-left-color: #ef4444;
|
| 917 |
}
|
| 918 |
-
.dark .mnm-title
|
|
|
|
| 919 |
color: #fca5a5;
|
| 920 |
}
|
| 921 |
-
.dark .challenge-item
|
|
|
|
| 922 |
background: #2e1065;
|
| 923 |
border-left-color: #8b5cf6;
|
| 924 |
}
|
| 925 |
-
.dark .challenge-claim
|
|
|
|
| 926 |
color: #c4b5fd;
|
| 927 |
}
|
| 928 |
-
.dark .challenge-counter
|
|
|
|
| 929 |
color: #9ca3af;
|
| 930 |
}
|
| 931 |
|
| 932 |
/* Consultant */
|
| 933 |
-
.dark .consultation-note
|
|
|
|
| 934 |
background: linear-gradient(135deg, #1e293b, #0c4a6e);
|
| 935 |
border-color: #334155;
|
| 936 |
color: #e2e8f0;
|
| 937 |
}
|
| 938 |
-
.dark .urgency-critical { background: #450a0a; color: #fca5a5; }
|
| 939 |
-
.dark .urgency-high { background: #431407; color: #fdba74; }
|
| 940 |
-
.dark .urgency-moderate { background: #422006; color: #fde047; }
|
| 941 |
-
.dark .urgency-unknown { background: #334155; color: #94a3b8; }
|
| 942 |
-
.dark .confidence-note
|
|
|
|
| 943 |
background: #1e293b;
|
| 944 |
color: #94a3b8;
|
| 945 |
}
|
| 946 |
|
| 947 |
/* Pipeline error */
|
| 948 |
-
.dark .pipeline-error
|
|
|
|
| 949 |
background: #450a0a;
|
| 950 |
border-color: #ef4444;
|
| 951 |
color: #fca5a5;
|
| 952 |
}
|
| 953 |
|
| 954 |
/* Footer */
|
| 955 |
-
.dark .footer-text
|
|
|
|
| 956 |
color: #64748b;
|
| 957 |
border-top-color: #334155;
|
| 958 |
}
|
| 959 |
-
.dark .footer-chip
|
|
|
|
| 960 |
background: #334155;
|
| 961 |
color: #94a3b8;
|
| 962 |
}
|
| 963 |
-
.dark .footer-sep
|
|
|
|
| 964 |
color: #475569;
|
| 965 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 966 |
"""
|
|
|
|
| 13 |
|
| 14 |
/* ===== Hero Banner ===== */
|
| 15 |
.hero-banner {
|
| 16 |
+
text-align: center !important;
|
| 17 |
+
padding: 36px 28px 24px !important;
|
| 18 |
+
border-radius: 16px !important;
|
| 19 |
+
background: linear-gradient(135deg, #0f172a 0%, #1e293b 40%, #0f3460 100%) !important;
|
| 20 |
+
color: #fff !important;
|
| 21 |
+
margin-bottom: 22px !important;
|
| 22 |
+
box-shadow: 0 4px 28px rgba(0, 0, 0, 0.2) !important;
|
| 23 |
+
position: relative !important;
|
| 24 |
+
overflow: hidden !important;
|
| 25 |
}
|
| 26 |
.hero-banner::after {
|
| 27 |
+
content: '' !important;
|
| 28 |
+
position: absolute !important;
|
| 29 |
+
top: -50% !important;
|
| 30 |
+
right: -20% !important;
|
| 31 |
+
width: 400px !important;
|
| 32 |
+
height: 400px !important;
|
| 33 |
+
background: radial-gradient(circle, rgba(59,130,246,0.08) 0%, transparent 70%) !important;
|
| 34 |
+
pointer-events: none !important;
|
| 35 |
}
|
| 36 |
.hero-badge {
|
| 37 |
+
display: inline-block !important;
|
| 38 |
+
padding: 4px 14px !important;
|
| 39 |
+
border-radius: 20px !important;
|
| 40 |
+
background: rgba(59, 130, 246, 0.2) !important;
|
| 41 |
+
border: 1px solid rgba(59, 130, 246, 0.3) !important;
|
| 42 |
+
color: #93c5fd !important;
|
| 43 |
+
font-size: 0.72rem !important;
|
| 44 |
+
font-weight: 600 !important;
|
| 45 |
+
letter-spacing: 0.5px !important;
|
| 46 |
+
text-transform: uppercase !important;
|
| 47 |
+
margin-bottom: 12px !important;
|
| 48 |
}
|
| 49 |
.hero-banner h1 {
|
| 50 |
+
margin: 0 0 8px !important;
|
| 51 |
+
font-size: 2.2rem !important;
|
| 52 |
+
font-weight: 800 !important;
|
| 53 |
+
letter-spacing: -0.8px !important;
|
| 54 |
color: #fff !important;
|
| 55 |
border: none !important;
|
| 56 |
}
|
| 57 |
.hero-sub {
|
| 58 |
+
margin: 0 0 6px !important;
|
| 59 |
+
font-size: 1.02rem !important;
|
| 60 |
+
color: #93c5fd !important;
|
| 61 |
+
font-weight: 500 !important;
|
| 62 |
}
|
| 63 |
.hero-desc {
|
| 64 |
+
margin: 0 auto !important;
|
| 65 |
+
font-size: 0.86rem !important;
|
| 66 |
+
color: #94a3b8 !important;
|
| 67 |
+
max-width: 660px !important;
|
| 68 |
+
line-height: 1.55 !important;
|
| 69 |
}
|
| 70 |
.hero-models {
|
| 71 |
+
margin-top: 16px !important;
|
| 72 |
+
display: flex !important;
|
| 73 |
+
justify-content: center !important;
|
| 74 |
+
gap: 8px !important;
|
| 75 |
+
flex-wrap: wrap !important;
|
| 76 |
}
|
| 77 |
.model-chip {
|
| 78 |
+
display: inline-block !important;
|
| 79 |
+
padding: 3px 12px !important;
|
| 80 |
+
border-radius: 6px !important;
|
| 81 |
+
background: rgba(255,255,255,0.08) !important;
|
| 82 |
+
border: 1px solid rgba(255,255,255,0.12) !important;
|
| 83 |
+
color: #cbd5e1 !important;
|
| 84 |
+
font-size: 0.72rem !important;
|
| 85 |
+
font-weight: 600 !important;
|
| 86 |
}
|
| 87 |
|
| 88 |
/* ===== Section Label ===== */
|
|
|
|
| 725 |
}
|
| 726 |
|
| 727 |
/* ===== Dark Mode ===== */
|
| 728 |
+
/* Using .dark class selector (Gradio/HF) + media query fallback */
|
| 729 |
+
.dark .section-label,
|
| 730 |
+
:root.dark .section-label {
|
| 731 |
color: #94a3b8;
|
| 732 |
}
|
| 733 |
|
| 734 |
/* Case Cards */
|
| 735 |
+
.dark .case-card,
|
| 736 |
+
:root.dark .case-card {
|
| 737 |
background: #1e293b;
|
| 738 |
border-color: #334155;
|
| 739 |
}
|
| 740 |
+
.dark .case-card:hover,
|
| 741 |
+
:root.dark .case-card:hover {
|
| 742 |
border-color: #60a5fa;
|
| 743 |
box-shadow: 0 6px 24px rgba(59, 130, 246, 0.2);
|
| 744 |
}
|
| 745 |
+
.dark .case-title,
|
| 746 |
+
:root.dark .case-title {
|
| 747 |
color: #f1f5f9;
|
| 748 |
}
|
| 749 |
+
.dark .case-meta,
|
| 750 |
+
:root.dark .case-meta {
|
| 751 |
color: #94a3b8;
|
| 752 |
}
|
| 753 |
+
.dark .case-desc,
|
| 754 |
+
:root.dark .case-desc {
|
| 755 |
color: #64748b;
|
| 756 |
}
|
| 757 |
+
.dark .case-misdiag,
|
| 758 |
+
:root.dark .case-misdiag {
|
| 759 |
border-top-color: #334155;
|
| 760 |
}
|
| 761 |
+
.dark .misdiag-label,
|
| 762 |
+
:root.dark .misdiag-label {
|
| 763 |
color: #64748b;
|
| 764 |
}
|
| 765 |
+
.dark .misdiag-value,
|
| 766 |
+
:root.dark .misdiag-value {
|
| 767 |
color: #f87171;
|
| 768 |
}
|
| 769 |
|
| 770 |
/* Tags in dark mode */
|
| 771 |
+
.dark .tag-blue, :root.dark .tag-blue { background: #1e3a5f; color: #60a5fa; }
|
| 772 |
+
.dark .tag-red, :root.dark .tag-red { background: #450a0a; color: #fca5a5; }
|
| 773 |
+
.dark .tag-purple, :root.dark .tag-purple { background: #2e1065; color: #c4b5fd; }
|
| 774 |
|
| 775 |
/* Voice Section */
|
| 776 |
+
.dark .voice-section,
|
| 777 |
+
:root.dark .voice-section {
|
| 778 |
background: linear-gradient(135deg, #1e293b 0%, #1e3a5f 100%);
|
| 779 |
border-color: #334155;
|
| 780 |
}
|
| 781 |
+
.dark .voice-title,
|
| 782 |
+
:root.dark .voice-title {
|
| 783 |
color: #f1f5f9;
|
| 784 |
}
|
| 785 |
+
.dark .voice-badge,
|
| 786 |
+
:root.dark .voice-badge {
|
| 787 |
background: #1e3a5f;
|
| 788 |
color: #60a5fa;
|
| 789 |
}
|
| 790 |
+
.dark .voice-hint,
|
| 791 |
+
:root.dark .voice-hint {
|
| 792 |
color: #64748b;
|
| 793 |
}
|
| 794 |
+
.dark .transcribe-btn,
|
| 795 |
+
:root.dark .transcribe-btn {
|
| 796 |
background: #1e3a5f !important;
|
| 797 |
border-color: #3b82f6 !important;
|
| 798 |
color: #60a5fa !important;
|
| 799 |
}
|
| 800 |
+
.dark .transcribe-btn:hover,
|
| 801 |
+
:root.dark .transcribe-btn:hover {
|
| 802 |
background: #1d4ed8 !important;
|
| 803 |
color: #fff !important;
|
| 804 |
}
|
| 805 |
|
| 806 |
/* Voice status indicators */
|
| 807 |
+
.dark .voice-idle,
|
| 808 |
+
:root.dark .voice-idle {
|
| 809 |
background: #1e293b;
|
| 810 |
color: #64748b;
|
| 811 |
border-color: #334155;
|
| 812 |
}
|
| 813 |
+
.dark .voice-processing,
|
| 814 |
+
:root.dark .voice-processing {
|
| 815 |
background: #1e3a5f;
|
| 816 |
color: #60a5fa;
|
| 817 |
border-color: #3b82f6;
|
| 818 |
}
|
| 819 |
+
.dark .voice-success,
|
| 820 |
+
:root.dark .voice-success {
|
| 821 |
background: #14532d;
|
| 822 |
color: #4ade80;
|
| 823 |
border-color: #22c55e;
|
| 824 |
}
|
| 825 |
+
.dark .voice-error,
|
| 826 |
+
:root.dark .voice-error {
|
| 827 |
background: #450a0a;
|
| 828 |
color: #fca5a5;
|
| 829 |
border-color: #ef4444;
|
| 830 |
}
|
| 831 |
|
| 832 |
/* Progress Bar */
|
| 833 |
+
.dark .progress-bar-track,
|
| 834 |
+
:root.dark .progress-bar-track {
|
| 835 |
background: #1e293b;
|
| 836 |
border-color: #334155;
|
| 837 |
}
|
| 838 |
|
| 839 |
/* Agent Blocks */
|
| 840 |
+
.dark .step-done,
|
| 841 |
+
:root.dark .step-done {
|
| 842 |
background: #14532d;
|
| 843 |
border-color: #22c55e;
|
| 844 |
}
|
| 845 |
+
.dark .step-done .step-name, :root.dark .step-done .step-name { color: #4ade80; }
|
| 846 |
+
.dark .step-done .step-status, :root.dark .step-done .step-status { color: #22c55e; }
|
| 847 |
|
| 848 |
+
.dark .step-active,
|
| 849 |
+
:root.dark .step-active {
|
| 850 |
background: #1e3a5f;
|
| 851 |
border-color: #3b82f6;
|
| 852 |
}
|
| 853 |
+
.dark .step-active .step-name, :root.dark .step-active .step-name { color: #60a5fa; }
|
| 854 |
+
.dark .step-active .step-status, :root.dark .step-active .step-status { color: #3b82f6; }
|
| 855 |
|
| 856 |
+
.dark .step-waiting,
|
| 857 |
+
:root.dark .step-waiting {
|
| 858 |
background: #1e293b;
|
| 859 |
border-color: #334155;
|
| 860 |
}
|
| 861 |
+
.dark .step-waiting .step-icon,
|
| 862 |
+
:root.dark .step-waiting .step-icon {
|
| 863 |
background: #334155;
|
| 864 |
color: #64748b;
|
| 865 |
}
|
| 866 |
+
.dark .step-waiting .step-name, :root.dark .step-waiting .step-name { color: #64748b; }
|
| 867 |
+
.dark .step-waiting .step-status, :root.dark .step-waiting .step-status { color: #475569; }
|
| 868 |
|
| 869 |
+
.dark .step-error,
|
| 870 |
+
:root.dark .step-error {
|
| 871 |
background: #450a0a;
|
| 872 |
border-color: #ef4444;
|
| 873 |
}
|
| 874 |
+
.dark .step-error .step-name, :root.dark .step-error .step-name { color: #fca5a5; }
|
| 875 |
+
.dark .step-error .step-status, :root.dark .step-error .step-status { color: #ef4444; }
|
| 876 |
|
| 877 |
/* Agent Output */
|
| 878 |
+
.dark .agent-output,
|
| 879 |
+
:root.dark .agent-output {
|
| 880 |
color: #cbd5e1;
|
| 881 |
border-top-color: rgba(255,255,255,0.08);
|
| 882 |
}
|
| 883 |
+
.dark .agent-output details summary,
|
| 884 |
+
:root.dark .agent-output details summary {
|
| 885 |
color: #94a3b8;
|
| 886 |
}
|
| 887 |
.dark .findings-section strong,
|
| 888 |
+
.dark .differentials-section strong,
|
| 889 |
+
:root.dark .findings-section strong,
|
| 890 |
+
:root.dark .differentials-section strong {
|
| 891 |
color: #f1f5f9;
|
| 892 |
}
|
| 893 |
|
| 894 |
/* Bias Detector */
|
| 895 |
+
.dark .discrepancy-summary,
|
| 896 |
+
:root.dark .discrepancy-summary {
|
| 897 |
background: #431407;
|
| 898 |
border-color: #c2410c;
|
| 899 |
color: #fed7aa;
|
| 900 |
}
|
| 901 |
+
.dark .bias-item,
|
| 902 |
+
:root.dark .bias-item {
|
| 903 |
background: #422006;
|
| 904 |
border-left-color: #f59e0b;
|
| 905 |
}
|
| 906 |
+
.dark .bias-title,
|
| 907 |
+
:root.dark .bias-title {
|
| 908 |
color: #fcd34d;
|
| 909 |
}
|
| 910 |
+
.dark .bias-evidence,
|
| 911 |
+
:root.dark .bias-evidence {
|
| 912 |
color: #a8a29e;
|
| 913 |
}
|
| 914 |
+
.dark .missed-findings,
|
| 915 |
+
:root.dark .missed-findings {
|
| 916 |
background: #450a0a;
|
| 917 |
}
|
| 918 |
+
.dark .missed-findings strong,
|
| 919 |
+
:root.dark .missed-findings strong {
|
| 920 |
color: #fca5a5;
|
| 921 |
}
|
| 922 |
|
| 923 |
/* Severity tags */
|
| 924 |
+
.dark .severity-high, :root.dark .severity-high { background: #450a0a; color: #fca5a5; }
|
| 925 |
+
.dark .severity-medium, :root.dark .severity-medium { background: #431407; color: #fdba74; }
|
| 926 |
+
.dark .severity-low, :root.dark .severity-low { background: #422006; color: #fde047; }
|
| 927 |
|
| 928 |
/* Source tags */
|
| 929 |
+
.dark .source-doctor, :root.dark .source-doctor { background: #1e3a5f; color: #60a5fa; }
|
| 930 |
+
.dark .source-ai, :root.dark .source-ai { background: #2e1065; color: #c4b5fd; }
|
| 931 |
+
.dark .source-both, :root.dark .source-both { background: #312e81; color: #a5b4fc; }
|
| 932 |
+
.dark .source-imaging, :root.dark .source-imaging { background: #1e3a5f; color: #60a5fa; }
|
| 933 |
+
.dark .source-clinical, :root.dark .source-clinical { background: #422006; color: #fcd34d; }
|
| 934 |
|
| 935 |
/* SigLIP */
|
| 936 |
+
.dark .siglip-section,
|
| 937 |
+
:root.dark .siglip-section {
|
| 938 |
background: #0c4a6e;
|
| 939 |
}
|
| 940 |
+
.dark .siglip-section strong,
|
| 941 |
+
:root.dark .siglip-section strong {
|
| 942 |
color: #7dd3fc;
|
| 943 |
}
|
| 944 |
+
.dark .sign-present,
|
| 945 |
+
:root.dark .sign-present {
|
| 946 |
color: #4ade80;
|
| 947 |
}
|
| 948 |
+
.dark .sign-absent,
|
| 949 |
+
:root.dark .sign-absent {
|
| 950 |
color: #64748b;
|
| 951 |
}
|
| 952 |
|
| 953 |
/* Devil's Advocate */
|
| 954 |
+
.dark .mnm-item,
|
| 955 |
+
:root.dark .mnm-item {
|
| 956 |
background: #450a0a;
|
| 957 |
border-left-color: #ef4444;
|
| 958 |
}
|
| 959 |
+
.dark .mnm-title,
|
| 960 |
+
:root.dark .mnm-title {
|
| 961 |
color: #fca5a5;
|
| 962 |
}
|
| 963 |
+
.dark .challenge-item,
|
| 964 |
+
:root.dark .challenge-item {
|
| 965 |
background: #2e1065;
|
| 966 |
border-left-color: #8b5cf6;
|
| 967 |
}
|
| 968 |
+
.dark .challenge-claim,
|
| 969 |
+
:root.dark .challenge-claim {
|
| 970 |
color: #c4b5fd;
|
| 971 |
}
|
| 972 |
+
.dark .challenge-counter,
|
| 973 |
+
:root.dark .challenge-counter {
|
| 974 |
color: #9ca3af;
|
| 975 |
}
|
| 976 |
|
| 977 |
/* Consultant */
|
| 978 |
+
.dark .consultation-note,
|
| 979 |
+
:root.dark .consultation-note {
|
| 980 |
background: linear-gradient(135deg, #1e293b, #0c4a6e);
|
| 981 |
border-color: #334155;
|
| 982 |
color: #e2e8f0;
|
| 983 |
}
|
| 984 |
+
.dark .urgency-critical, :root.dark .urgency-critical { background: #450a0a; color: #fca5a5; }
|
| 985 |
+
.dark .urgency-high, :root.dark .urgency-high { background: #431407; color: #fdba74; }
|
| 986 |
+
.dark .urgency-moderate, :root.dark .urgency-moderate { background: #422006; color: #fde047; }
|
| 987 |
+
.dark .urgency-unknown, :root.dark .urgency-unknown { background: #334155; color: #94a3b8; }
|
| 988 |
+
.dark .confidence-note,
|
| 989 |
+
:root.dark .confidence-note {
|
| 990 |
background: #1e293b;
|
| 991 |
color: #94a3b8;
|
| 992 |
}
|
| 993 |
|
| 994 |
/* Pipeline error */
|
| 995 |
+
.dark .pipeline-error,
|
| 996 |
+
:root.dark .pipeline-error {
|
| 997 |
background: #450a0a;
|
| 998 |
border-color: #ef4444;
|
| 999 |
color: #fca5a5;
|
| 1000 |
}
|
| 1001 |
|
| 1002 |
/* Footer */
|
| 1003 |
+
.dark .footer-text,
|
| 1004 |
+
:root.dark .footer-text {
|
| 1005 |
color: #64748b;
|
| 1006 |
border-top-color: #334155;
|
| 1007 |
}
|
| 1008 |
+
.dark .footer-chip,
|
| 1009 |
+
:root.dark .footer-chip {
|
| 1010 |
background: #334155;
|
| 1011 |
color: #94a3b8;
|
| 1012 |
}
|
| 1013 |
+
.dark .footer-sep,
|
| 1014 |
+
:root.dark .footer-sep {
|
| 1015 |
color: #475569;
|
| 1016 |
}
|
| 1017 |
+
|
| 1018 |
+
/* Media query fallback for system dark mode */
|
| 1019 |
+
@media (prefers-color-scheme: dark) {
|
| 1020 |
+
.section-label { color: #94a3b8; }
|
| 1021 |
+
.case-card { background: #1e293b; border-color: #334155; }
|
| 1022 |
+
.case-title { color: #f1f5f9; }
|
| 1023 |
+
.case-meta { color: #94a3b8; }
|
| 1024 |
+
.case-desc { color: #64748b; }
|
| 1025 |
+
.progress-bar-track { background: #1e293b; border-color: #334155; }
|
| 1026 |
+
.agent-output { color: #cbd5e1; }
|
| 1027 |
+
.footer-text { color: #64748b; border-top-color: #334155; }
|
| 1028 |
+
.footer-chip { background: #334155; color: #94a3b8; }
|
| 1029 |
+
}
|
| 1030 |
"""
|