evijit HF staff commited on
Commit
f5ec716
1 Parent(s): b40662a

Upload 2 files

Browse files
Files changed (2) hide show
  1. app.py +9 -621
  2. dashboard.css +619 -0
app.py CHANGED
@@ -8,6 +8,15 @@ import os
8
  from collections import OrderedDict
9
  import re
10
 
 
 
 
 
 
 
 
 
 
11
  @dataclass
12
  class ScorecardCategory:
13
  name: str
@@ -602,627 +611,6 @@ def update_detailed_scorecard(model, selected_categories):
602
  gr.update(value=total_score_md, visible=True)
603
  ]
604
 
605
- css = """
606
- .container {
607
- display: flex;
608
- flex-wrap: wrap;
609
- justify-content: space-between;
610
- }
611
- .container.svelte-1hfxrpf.svelte-1hfxrpf {
612
- height: 0%;
613
- }
614
- .card {
615
- width: calc(50% - 20px);
616
- border: 1px solid #e0e0e0;
617
- border-radius: 10px;
618
- padding: 20px;
619
- margin-bottom: 20px;
620
- background-color: #ffffff;
621
- box-shadow: 0 4px 6px rgba(0,0,0,0.1);
622
- transition: all 0.3s ease;
623
- }
624
- .card:hover {
625
- box-shadow: 0 6px 8px rgba(0,0,0,0.15);
626
- transform: translateY(-5px);
627
- }
628
- .card-title {
629
- font-size: 1.4em;
630
- font-weight: bold;
631
- margin-bottom: 15px;
632
- color: #333;
633
- border-bottom: 2px solid #e0e0e0;
634
- padding-bottom: 10px;
635
- }
636
- .sources-list {
637
- margin: 10px 0;
638
- }
639
- .source-item {
640
- margin: 5px 0;
641
- padding: 5px;
642
- background-color: #f8f9fa;
643
- border-radius: 4px;
644
- }
645
- .question-item {
646
- margin: 5px 0;
647
- padding: 8px;
648
- border-radius: 4px;
649
- }
650
- .question-item.checked {
651
- background-color: #e6ffe6;
652
- }
653
- .question-item.unchecked {
654
- background-color: #ffe6e6;
655
- }
656
- .category-score, .total-score {
657
- background-color: #f0f8ff;
658
- border: 1px solid #b0d4ff;
659
- border-radius: 5px;
660
- padding: 10px;
661
- margin-top: 15px;
662
- font-weight: bold;
663
- text-align: center;
664
- }
665
- .total-score {
666
- font-size: 1.2em;
667
- background-color: #e6f3ff;
668
- border-color: #80bdff;
669
- }
670
- .leaderboard-card {
671
- width: 100%;
672
- max-width: 800px;
673
- margin: 0 auto;
674
- }
675
- .leaderboard-table {
676
- width: 100%;
677
- border-collapse: collapse;
678
- }
679
- .leaderboard-table th, .leaderboard-table td {
680
- padding: 10px;
681
- text-align: left;
682
- border-bottom: 1px solid #e0e0e0;
683
- }
684
- .leaderboard-table th {
685
- background-color: #f2f2f2;
686
- font-weight: bold;
687
- }
688
- .section {
689
- margin-bottom: 20px;
690
- padding: 15px;
691
- border-radius: 5px;
692
- background-color: #f8f9fa;
693
- }
694
- @media (max-width: 768px) {
695
- .card {
696
- width: 100%;
697
- }
698
- }
699
- .dark {
700
- background-color: #1a1a1a;
701
- color: #e0e0e0;
702
-
703
- .card {
704
- background-color: #2a2a2a;
705
- border-color: #444;
706
- }
707
- .card-title {
708
- color: #fff;
709
- border-bottom-color: #444;
710
- }
711
- .source-item {
712
- background-color: #2a2a2a;
713
- }
714
- .question-item.checked {
715
- background-color: #1a3a1a;
716
- }
717
- .question-item.unchecked {
718
- background-color: #3a1a1a;
719
- }
720
- .section {
721
- background-color: #2a2a2a;
722
- }
723
- .category-score, .total-score {
724
- background-color: #2c3e50;
725
- border-color: #34495e;
726
- }
727
- .leaderboard-table th {
728
- background-color: #2c3e50;
729
- }
730
- }
731
-
732
- .section-na {
733
- opacity: 0.6;
734
- }
735
-
736
- .question-item.na {
737
- background-color: #f0f0f0;
738
- color: #666;
739
- }
740
-
741
- .dark .question-item.na {
742
- background-color: #2d2d2d;
743
- color: #999;
744
- }
745
-
746
- .section-header {
747
- display: flex;
748
- justify-content: space-between;
749
- align-items: center;
750
- margin-bottom: 10px;
751
- }
752
-
753
- .status-badge {
754
- font-size: 0.9em;
755
- padding: 4px 8px;
756
- border-radius: 12px;
757
- font-weight: 500;
758
- }
759
-
760
- .status-badge.yes {
761
- background-color: #e6ffe6;
762
- color: #006600;
763
- }
764
-
765
- .status-badge.no {
766
- background-color: #ffe6e6;
767
- color: #990000;
768
- }
769
-
770
- .status-badge.n\/a {
771
- background-color: #f0f0f0;
772
- color: #666666;
773
- }
774
-
775
- .question-accordion {
776
- margin-top: 10px;
777
- }
778
-
779
- .question-accordion summary {
780
- cursor: pointer;
781
- padding: 8px;
782
- background-color: #f8f9fa;
783
- border-radius: 4px;
784
- margin-bottom: 10px;
785
- font-weight: 500;
786
- }
787
-
788
- .question-accordion summary:hover {
789
- background-color: #e9ecef;
790
- }
791
-
792
- .dark .status-badge.yes {
793
- background-color: #1a3a1a;
794
- color: #90EE90;
795
- }
796
-
797
- .dark .status-badge.no {
798
- background-color: #3a1a1a;
799
- color: #FFB6B6;
800
- }
801
-
802
- .dark .status-badge.n\/a {
803
- background-color: #2d2d2d;
804
- color: #999999;
805
- }
806
-
807
- .dark .question-accordion summary {
808
- background-color: #2a2a2a;
809
- }
810
-
811
- .dark .question-accordion summary:hover {
812
- background-color: #333333;
813
- }
814
- .metadata-card {
815
- margin-bottom: 30px;
816
- width: 100% !important;
817
- }
818
-
819
- .metadata-content {
820
- display: flex;
821
- flex-direction: column;
822
- gap: 12px;
823
- }
824
-
825
- .metadata-row {
826
- display: flex;
827
- align-items: flex-start;
828
- gap: 10px;
829
- line-height: 1.5;
830
- }
831
-
832
- .metadata-label {
833
- font-weight: 600;
834
- min-width: 100px;
835
- color: #555;
836
- }
837
-
838
- .metadata-value {
839
- color: #333;
840
- }
841
-
842
- .metadata-link {
843
- color: #007bff;
844
- text-decoration: none;
845
- }
846
-
847
- .metadata-link:hover {
848
- text-decoration: underline;
849
- }
850
-
851
- .modality-container {
852
- display: flex;
853
- flex-wrap: wrap;
854
- gap: 8px;
855
- }
856
-
857
- .modality-badge {
858
- display: inline-flex;
859
- align-items: center;
860
- gap: 4px;
861
- padding: 4px 10px;
862
- background-color: #f0f7ff;
863
- border: 1px solid #cce3ff;
864
- border-radius: 15px;
865
- font-size: 0.9em;
866
- color: #0066cc;
867
- }
868
-
869
- .dark .metadata-label {
870
- color: #aaa;
871
- }
872
-
873
- .dark .metadata-value {
874
- color: #ddd;
875
- }
876
-
877
- .dark .metadata-link {
878
- color: #66b3ff;
879
- }
880
-
881
- .dark .modality-badge {
882
- background-color: #1a2733;
883
- border-color: #2c3e50;
884
- color: #99ccff;
885
- }
886
-
887
- .summary-card {
888
- background-color: #f8f9fa;
889
- border: 1px solid #e0e0e0;
890
- border-radius: 8px;
891
- padding: 16px;
892
- margin-bottom: 20px;
893
- }
894
-
895
- .summary-title {
896
- font-size: 1.2em;
897
- font-weight: bold;
898
- margin-bottom: 12px;
899
- color: #333;
900
- }
901
-
902
- .summary-section {
903
- margin-bottom: 16px;
904
- }
905
-
906
- .summary-subtitle {
907
- font-size: 1em;
908
- font-weight: 600;
909
- color: #555;
910
- margin-bottom: 8px;
911
- }
912
-
913
- .metric-row {
914
- display: flex;
915
- justify-content: space-between;
916
- align-items: center;
917
- margin-bottom: 4px;
918
- }
919
-
920
- .metric-label {
921
- color: #666;
922
- }
923
-
924
- .metric-value {
925
- font-weight: 600;
926
- color: #333;
927
- }
928
-
929
- .coverage-grid {
930
- display: grid;
931
- grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
932
- gap: 8px;
933
- margin-top: 8px;
934
- }
935
-
936
- .coverage-item {
937
- padding: 8px;
938
- border-radius: 6px;
939
- text-align: center;
940
- font-size: 0.9em;
941
- }
942
-
943
- .coverage-item.covered {
944
- background-color: #e6ffe6;
945
- color: #006600;
946
- border: 1px solid #b3ffb3;
947
- }
948
-
949
- .coverage-item.not-covered {
950
- background-color: #f5f5f5;
951
- color: #666;
952
- border: 1px solid #ddd;
953
- }
954
-
955
- .status-pills {
956
- display: flex;
957
- gap: 8px;
958
- flex-wrap: wrap;
959
- }
960
-
961
- .status-pill {
962
- padding: 4px 12px;
963
- border-radius: 16px;
964
- font-size: 0.9em;
965
- font-weight: 500;
966
- }
967
-
968
- .status-pill.yes {
969
- background-color: #e6ffe6;
970
- color: #006600;
971
- border: 1px solid #b3ffb3;
972
- }
973
-
974
- .status-pill.no {
975
- background-color: #ffe6e6;
976
- color: #990000;
977
- border: 1px solid #ffb3b3;
978
- }
979
-
980
- .status-pill.n\\/a {
981
- background-color: #f5f5f5;
982
- color: #666;
983
- border: 1px solid #ddd;
984
- }
985
-
986
- .dark .summary-card {
987
- background-color: #2a2a2a;
988
- border-color: #444;
989
- }
990
-
991
- .dark .summary-title,
992
- .dark .summary-subtitle {
993
- color: #e0e0e0;
994
- }
995
-
996
- .dark .metric-label {
997
- color: #999;
998
- }
999
-
1000
- .dark .metric-value {
1001
- color: #fff;
1002
- }
1003
-
1004
- .dark .coverage-item.covered {
1005
- background-color: #1a3a1a;
1006
- color: #90EE90;
1007
- border-color: #2d5a2d;
1008
- }
1009
-
1010
- .dark .coverage-item.not-covered {
1011
- background-color: #333;
1012
- color: #999;
1013
- border-color: #444;
1014
- }
1015
-
1016
- .dark .status-pill.yes {
1017
- background-color: #1a3a1a;
1018
- color: #90EE90;
1019
- border-color: #2d5a2d;
1020
- }
1021
-
1022
- .dark .status-pill.no {
1023
- background-color: #3a1a1a;
1024
- color: #FFB6B6;
1025
- border-color: #5a2d2d;
1026
- }
1027
-
1028
- .dark .status-pill.n\\/a {
1029
- background-color: #333;
1030
- color: #999;
1031
- border-color: #444;
1032
- }
1033
-
1034
- .overall-summary-card {
1035
- width: 100% !important;
1036
- margin-bottom: 30px;
1037
- }
1038
-
1039
- .summary-grid {
1040
- display: grid;
1041
- grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
1042
- gap: 20px;
1043
- margin-bottom: 20px;
1044
- }
1045
-
1046
- .category-completion-grid {
1047
- display: grid;
1048
- grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
1049
- gap: 16px;
1050
- margin-top: 12px;
1051
- }
1052
-
1053
- .category-completion-item {
1054
- display: flex;
1055
- flex-direction: column;
1056
- background-color: #f8f9fa;
1057
- border-radius: 8px;
1058
- padding: 12px;
1059
- min-height: 86px; /* Set consistent height */
1060
- }
1061
-
1062
- .category-name {
1063
- flex: 1;
1064
- font-size: 0.9em;
1065
- font-weight: 500;
1066
- color: #555;
1067
- margin-bottom: 8px;
1068
- line-height: 1.3;
1069
- }
1070
-
1071
- .completion-bar-container {
1072
- height: 24px;
1073
- background-color: #eee;
1074
- border-radius: 12px;
1075
- position: relative;
1076
- overflow: hidden;
1077
- margin-top: auto; /* Push to bottom */
1078
- }
1079
-
1080
- .completion-bar {
1081
- height: 100%;
1082
- background-color: #4CAF50;
1083
- transition: width 0.3s ease;
1084
- }
1085
-
1086
- .completion-text {
1087
- position: absolute;
1088
- right: 8px;
1089
- top: 50%;
1090
- transform: translateY(-50%);
1091
- font-size: 0.8em;
1092
- font-weight: 600;
1093
- color: #333;
1094
- }
1095
-
1096
- /* Dark mode adjustments */
1097
- .dark .category-completion-item {
1098
- background-color: #2a2a2a;
1099
- }
1100
-
1101
- .dark .category-name {
1102
- color: #ccc;
1103
- }
1104
-
1105
- .dark .completion-bar-container {
1106
- background-color: #333;
1107
- }
1108
-
1109
- .dark .completion-bar {
1110
- background-color: #2e7d32;
1111
- }
1112
-
1113
- .dark .completion-text {
1114
- color: #fff;
1115
- }
1116
-
1117
- .completion-bar-container.na {
1118
- background-color: #f0f0f0;
1119
- }
1120
-
1121
- .completion-bar-container.na .completion-bar {
1122
- background-color: #999;
1123
- width: 0 !important;
1124
- }
1125
-
1126
- .dark .completion-bar-container.na {
1127
- background-color: #2d2d2d;
1128
- }
1129
-
1130
- .dark .completion-bar-container.na .completion-bar {
1131
- background-color: #666;
1132
- }
1133
- .leaderboard-filters {
1134
- margin-bottom: 20px;
1135
- padding: 15px;
1136
- background-color: #f8f9fa;
1137
- border-radius: 8px;
1138
- }
1139
-
1140
- .dark .leaderboard-filters {
1141
- background-color: #2a2a2a;
1142
- }
1143
-
1144
- .filter-group {
1145
- margin-bottom: 10px;
1146
- }
1147
-
1148
- .filter-label {
1149
- font-weight: 600;
1150
- margin-bottom: 5px;
1151
- display: block;
1152
- }
1153
-
1154
- .score-column {
1155
- background-color: #f0f7ff;
1156
- }
1157
-
1158
- .dark .score-column {
1159
- background-color: #1a2733;
1160
- }
1161
-
1162
- .metric-header {
1163
- font-size: 0.9em;
1164
- color: #666;
1165
- text-align: center;
1166
- }
1167
-
1168
- .dark .metric-header {
1169
- color: #aaa;
1170
- }
1171
-
1172
- .table-container {
1173
- overflow-x: auto;
1174
- }
1175
-
1176
- .leaderboard-table td {
1177
- white-space: nowrap;
1178
- }
1179
-
1180
- .score-cell {
1181
- text-align: right;
1182
- padding-right: 15px !important;
1183
- }
1184
-
1185
- .model-cell {
1186
- max-width: 300px;
1187
- overflow: hidden;
1188
- text-overflow: ellipsis;
1189
- white-space: nowrap;
1190
- }
1191
-
1192
- .leaderboard-table {
1193
- width: 100%;
1194
- border-collapse: collapse;
1195
- }
1196
-
1197
- .leaderboard-table th,
1198
- .leaderboard-table td {
1199
- padding: 10px;
1200
- text-align: left;
1201
- border: 1px solid #e0e0e0;
1202
- }
1203
-
1204
- .dark .leaderboard-table th,
1205
- .dark .leaderboard-table td {
1206
- border-color: #444;
1207
- }
1208
-
1209
- .leaderboard-table th {
1210
- background-color: #f2f2f2;
1211
- font-weight: bold;
1212
- }
1213
-
1214
- .dark .leaderboard-table th {
1215
- background-color: #2c3e50;
1216
- }
1217
-
1218
- .leaderboard-table tr:hover {
1219
- background-color: #f5f5f5;
1220
- }
1221
-
1222
- .dark .leaderboard-table tr:hover {
1223
- background-color: #2d2d2d;
1224
- }
1225
- """
1226
 
1227
  first_model = next(iter(models.values()))
1228
  category_choices = list(first_model['scores'].keys())
 
8
  from collections import OrderedDict
9
  import re
10
 
11
+
12
+ def load_css(css_file_path):
13
+ """Load CSS from a file."""
14
+ with open(css_file_path, 'r') as f:
15
+ return f.read()
16
+
17
+ # In the main code:
18
+ css = load_css('dashboard.css')
19
+
20
  @dataclass
21
  class ScorecardCategory:
22
  name: str
 
611
  gr.update(value=total_score_md, visible=True)
612
  ]
613
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
614
 
615
  first_model = next(iter(models.values()))
616
  category_choices = list(first_model['scores'].keys())
dashboard.css ADDED
@@ -0,0 +1,619 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .container {
2
+ display: flex;
3
+ flex-wrap: wrap;
4
+ justify-content: space-between;
5
+ }
6
+ .container.svelte-1hfxrpf.svelte-1hfxrpf {
7
+ height: 0%;
8
+ }
9
+ .card {
10
+ width: calc(50% - 20px);
11
+ border: 1px solid #e0e0e0;
12
+ border-radius: 10px;
13
+ padding: 20px;
14
+ margin-bottom: 20px;
15
+ background-color: #ffffff;
16
+ box-shadow: 0 4px 6px rgba(0,0,0,0.1);
17
+ transition: all 0.3s ease;
18
+ }
19
+ .card:hover {
20
+ box-shadow: 0 6px 8px rgba(0,0,0,0.15);
21
+ transform: translateY(-5px);
22
+ }
23
+ .card-title {
24
+ font-size: 1.4em;
25
+ font-weight: bold;
26
+ margin-bottom: 15px;
27
+ color: #333;
28
+ border-bottom: 2px solid #e0e0e0;
29
+ padding-bottom: 10px;
30
+ }
31
+ .sources-list {
32
+ margin: 10px 0;
33
+ }
34
+ .source-item {
35
+ margin: 5px 0;
36
+ padding: 5px;
37
+ background-color: #f8f9fa;
38
+ border-radius: 4px;
39
+ }
40
+ .question-item {
41
+ margin: 5px 0;
42
+ padding: 8px;
43
+ border-radius: 4px;
44
+ }
45
+ .question-item.checked {
46
+ background-color: #e6ffe6;
47
+ }
48
+ .question-item.unchecked {
49
+ background-color: #ffe6e6;
50
+ }
51
+ .category-score, .total-score {
52
+ background-color: #f0f8ff;
53
+ border: 1px solid #b0d4ff;
54
+ border-radius: 5px;
55
+ padding: 10px;
56
+ margin-top: 15px;
57
+ font-weight: bold;
58
+ text-align: center;
59
+ }
60
+ .total-score {
61
+ font-size: 1.2em;
62
+ background-color: #e6f3ff;
63
+ border-color: #80bdff;
64
+ }
65
+ .leaderboard-card {
66
+ width: 100%;
67
+ max-width: 800px;
68
+ margin: 0 auto;
69
+ }
70
+ .leaderboard-table {
71
+ width: 100%;
72
+ border-collapse: collapse;
73
+ }
74
+ .leaderboard-table th, .leaderboard-table td {
75
+ padding: 10px;
76
+ text-align: left;
77
+ border-bottom: 1px solid #e0e0e0;
78
+ }
79
+ .leaderboard-table th {
80
+ background-color: #f2f2f2;
81
+ font-weight: bold;
82
+ }
83
+ .section {
84
+ margin-bottom: 20px;
85
+ padding: 15px;
86
+ border-radius: 5px;
87
+ background-color: #f8f9fa;
88
+ }
89
+ @media (max-width: 768px) {
90
+ .card {
91
+ width: 100%;
92
+ }
93
+ }
94
+ .dark {
95
+ background-color: #1a1a1a;
96
+ color: #e0e0e0;
97
+
98
+ .card {
99
+ background-color: #2a2a2a;
100
+ border-color: #444;
101
+ }
102
+ .card-title {
103
+ color: #fff;
104
+ border-bottom-color: #444;
105
+ }
106
+ .source-item {
107
+ background-color: #2a2a2a;
108
+ }
109
+ .question-item.checked {
110
+ background-color: #1a3a1a;
111
+ }
112
+ .question-item.unchecked {
113
+ background-color: #3a1a1a;
114
+ }
115
+ .section {
116
+ background-color: #2a2a2a;
117
+ }
118
+ .category-score, .total-score {
119
+ background-color: #2c3e50;
120
+ border-color: #34495e;
121
+ }
122
+ .leaderboard-table th {
123
+ background-color: #2c3e50;
124
+ }
125
+ }
126
+
127
+ .section-na {
128
+ opacity: 0.6;
129
+ }
130
+
131
+ .question-item.na {
132
+ background-color: #f0f0f0;
133
+ color: #666;
134
+ }
135
+
136
+ .dark .question-item.na {
137
+ background-color: #2d2d2d;
138
+ color: #999;
139
+ }
140
+
141
+ .section-header {
142
+ display: flex;
143
+ justify-content: space-between;
144
+ align-items: center;
145
+ margin-bottom: 10px;
146
+ }
147
+
148
+ .status-badge {
149
+ font-size: 0.9em;
150
+ padding: 4px 8px;
151
+ border-radius: 12px;
152
+ font-weight: 500;
153
+ }
154
+
155
+ .status-badge.yes {
156
+ background-color: #e6ffe6;
157
+ color: #006600;
158
+ }
159
+
160
+ .status-badge.no {
161
+ background-color: #ffe6e6;
162
+ color: #990000;
163
+ }
164
+
165
+ .status-badge.n\/a {
166
+ background-color: #f0f0f0;
167
+ color: #666666;
168
+ }
169
+
170
+ .question-accordion {
171
+ margin-top: 10px;
172
+ }
173
+
174
+ .question-accordion summary {
175
+ cursor: pointer;
176
+ padding: 8px;
177
+ background-color: #f8f9fa;
178
+ border-radius: 4px;
179
+ margin-bottom: 10px;
180
+ font-weight: 500;
181
+ }
182
+
183
+ .question-accordion summary:hover {
184
+ background-color: #e9ecef;
185
+ }
186
+
187
+ .dark .status-badge.yes {
188
+ background-color: #1a3a1a;
189
+ color: #90EE90;
190
+ }
191
+
192
+ .dark .status-badge.no {
193
+ background-color: #3a1a1a;
194
+ color: #FFB6B6;
195
+ }
196
+
197
+ .dark .status-badge.n\/a {
198
+ background-color: #2d2d2d;
199
+ color: #999999;
200
+ }
201
+
202
+ .dark .question-accordion summary {
203
+ background-color: #2a2a2a;
204
+ }
205
+
206
+ .dark .question-accordion summary:hover {
207
+ background-color: #333333;
208
+ }
209
+ .metadata-card {
210
+ margin-bottom: 30px;
211
+ width: 100% !important;
212
+ }
213
+
214
+ .metadata-content {
215
+ display: flex;
216
+ flex-direction: column;
217
+ gap: 12px;
218
+ }
219
+
220
+ .metadata-row {
221
+ display: flex;
222
+ align-items: flex-start;
223
+ gap: 10px;
224
+ line-height: 1.5;
225
+ }
226
+
227
+ .metadata-label {
228
+ font-weight: 600;
229
+ min-width: 100px;
230
+ color: #555;
231
+ }
232
+
233
+ .metadata-value {
234
+ color: #333;
235
+ }
236
+
237
+ .metadata-link {
238
+ color: #007bff;
239
+ text-decoration: none;
240
+ }
241
+
242
+ .metadata-link:hover {
243
+ text-decoration: underline;
244
+ }
245
+
246
+ .modality-container {
247
+ display: flex;
248
+ flex-wrap: wrap;
249
+ gap: 8px;
250
+ }
251
+
252
+ .modality-badge {
253
+ display: inline-flex;
254
+ align-items: center;
255
+ gap: 4px;
256
+ padding: 4px 10px;
257
+ background-color: #f0f7ff;
258
+ border: 1px solid #cce3ff;
259
+ border-radius: 15px;
260
+ font-size: 0.9em;
261
+ color: #0066cc;
262
+ }
263
+
264
+ .dark .metadata-label {
265
+ color: #aaa;
266
+ }
267
+
268
+ .dark .metadata-value {
269
+ color: #ddd;
270
+ }
271
+
272
+ .dark .metadata-link {
273
+ color: #66b3ff;
274
+ }
275
+
276
+ .dark .modality-badge {
277
+ background-color: #1a2733;
278
+ border-color: #2c3e50;
279
+ color: #99ccff;
280
+ }
281
+
282
+ .summary-card {
283
+ background-color: #f8f9fa;
284
+ border: 1px solid #e0e0e0;
285
+ border-radius: 8px;
286
+ padding: 16px;
287
+ margin-bottom: 20px;
288
+ }
289
+
290
+ .summary-title {
291
+ font-size: 1.2em;
292
+ font-weight: bold;
293
+ margin-bottom: 12px;
294
+ color: #333;
295
+ }
296
+
297
+ .summary-section {
298
+ margin-bottom: 16px;
299
+ }
300
+
301
+ .summary-subtitle {
302
+ font-size: 1em;
303
+ font-weight: 600;
304
+ color: #555;
305
+ margin-bottom: 8px;
306
+ }
307
+
308
+ .metric-row {
309
+ display: flex;
310
+ justify-content: space-between;
311
+ align-items: center;
312
+ margin-bottom: 4px;
313
+ }
314
+
315
+ .metric-label {
316
+ color: #666;
317
+ }
318
+
319
+ .metric-value {
320
+ font-weight: 600;
321
+ color: #333;
322
+ }
323
+
324
+ .coverage-grid {
325
+ display: grid;
326
+ grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
327
+ gap: 8px;
328
+ margin-top: 8px;
329
+ }
330
+
331
+ .coverage-item {
332
+ padding: 8px;
333
+ border-radius: 6px;
334
+ text-align: center;
335
+ font-size: 0.9em;
336
+ }
337
+
338
+ .coverage-item.covered {
339
+ background-color: #e6ffe6;
340
+ color: #006600;
341
+ border: 1px solid #b3ffb3;
342
+ }
343
+
344
+ .coverage-item.not-covered {
345
+ background-color: #f5f5f5;
346
+ color: #666;
347
+ border: 1px solid #ddd;
348
+ }
349
+
350
+ .status-pills {
351
+ display: flex;
352
+ gap: 8px;
353
+ flex-wrap: wrap;
354
+ }
355
+
356
+ .status-pill {
357
+ padding: 4px 12px;
358
+ border-radius: 16px;
359
+ font-size: 0.9em;
360
+ font-weight: 500;
361
+ }
362
+
363
+ .status-pill.yes {
364
+ background-color: #e6ffe6;
365
+ color: #006600;
366
+ border: 1px solid #b3ffb3;
367
+ }
368
+
369
+ .status-pill.no {
370
+ background-color: #ffe6e6;
371
+ color: #990000;
372
+ border: 1px solid #ffb3b3;
373
+ }
374
+
375
+ .status-pill.n\\/a {
376
+ background-color: #f5f5f5;
377
+ color: #666;
378
+ border: 1px solid #ddd;
379
+ }
380
+
381
+ .dark .summary-card {
382
+ background-color: #2a2a2a;
383
+ border-color: #444;
384
+ }
385
+
386
+ .dark .summary-title,
387
+ .dark .summary-subtitle {
388
+ color: #e0e0e0;
389
+ }
390
+
391
+ .dark .metric-label {
392
+ color: #999;
393
+ }
394
+
395
+ .dark .metric-value {
396
+ color: #fff;
397
+ }
398
+
399
+ .dark .coverage-item.covered {
400
+ background-color: #1a3a1a;
401
+ color: #90EE90;
402
+ border-color: #2d5a2d;
403
+ }
404
+
405
+ .dark .coverage-item.not-covered {
406
+ background-color: #333;
407
+ color: #999;
408
+ border-color: #444;
409
+ }
410
+
411
+ .dark .status-pill.yes {
412
+ background-color: #1a3a1a;
413
+ color: #90EE90;
414
+ border-color: #2d5a2d;
415
+ }
416
+
417
+ .dark .status-pill.no {
418
+ background-color: #3a1a1a;
419
+ color: #FFB6B6;
420
+ border-color: #5a2d2d;
421
+ }
422
+
423
+ .dark .status-pill.n\\/a {
424
+ background-color: #333;
425
+ color: #999;
426
+ border-color: #444;
427
+ }
428
+
429
+ .overall-summary-card {
430
+ width: 100% !important;
431
+ margin-bottom: 30px;
432
+ }
433
+
434
+ .summary-grid {
435
+ display: grid;
436
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
437
+ gap: 20px;
438
+ margin-bottom: 20px;
439
+ }
440
+
441
+ .category-completion-grid {
442
+ display: grid;
443
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
444
+ gap: 16px;
445
+ margin-top: 12px;
446
+ }
447
+
448
+ .category-completion-item {
449
+ display: flex;
450
+ flex-direction: column;
451
+ background-color: #f8f9fa;
452
+ border-radius: 8px;
453
+ padding: 12px;
454
+ min-height: 86px; /* Set consistent height */
455
+ }
456
+
457
+ .category-name {
458
+ flex: 1;
459
+ font-size: 0.9em;
460
+ font-weight: 500;
461
+ color: #555;
462
+ margin-bottom: 8px;
463
+ line-height: 1.3;
464
+ }
465
+
466
+ .completion-bar-container {
467
+ height: 24px;
468
+ background-color: #eee;
469
+ border-radius: 12px;
470
+ position: relative;
471
+ overflow: hidden;
472
+ margin-top: auto; /* Push to bottom */
473
+ }
474
+
475
+ .completion-bar {
476
+ height: 100%;
477
+ background-color: #4CAF50;
478
+ transition: width 0.3s ease;
479
+ }
480
+
481
+ .completion-text {
482
+ position: absolute;
483
+ right: 8px;
484
+ top: 50%;
485
+ transform: translateY(-50%);
486
+ font-size: 0.8em;
487
+ font-weight: 600;
488
+ color: #333;
489
+ }
490
+
491
+ /* Dark mode adjustments */
492
+ .dark .category-completion-item {
493
+ background-color: #2a2a2a;
494
+ }
495
+
496
+ .dark .category-name {
497
+ color: #ccc;
498
+ }
499
+
500
+ .dark .completion-bar-container {
501
+ background-color: #333;
502
+ }
503
+
504
+ .dark .completion-bar {
505
+ background-color: #2e7d32;
506
+ }
507
+
508
+ .dark .completion-text {
509
+ color: #fff;
510
+ }
511
+
512
+ .completion-bar-container.na {
513
+ background-color: #f0f0f0;
514
+ }
515
+
516
+ .completion-bar-container.na .completion-bar {
517
+ background-color: #999;
518
+ width: 0 !important;
519
+ }
520
+
521
+ .dark .completion-bar-container.na {
522
+ background-color: #2d2d2d;
523
+ }
524
+
525
+ .dark .completion-bar-container.na .completion-bar {
526
+ background-color: #666;
527
+ }
528
+ .leaderboard-filters {
529
+ margin-bottom: 20px;
530
+ padding: 15px;
531
+ background-color: #f8f9fa;
532
+ border-radius: 8px;
533
+ }
534
+
535
+ .dark .leaderboard-filters {
536
+ background-color: #2a2a2a;
537
+ }
538
+
539
+ .filter-group {
540
+ margin-bottom: 10px;
541
+ }
542
+
543
+ .filter-label {
544
+ font-weight: 600;
545
+ margin-bottom: 5px;
546
+ display: block;
547
+ }
548
+
549
+ .score-column {
550
+ background-color: #f0f7ff;
551
+ }
552
+
553
+ .dark .score-column {
554
+ background-color: #1a2733;
555
+ }
556
+
557
+ .metric-header {
558
+ font-size: 0.9em;
559
+ color: #666;
560
+ text-align: center;
561
+ }
562
+
563
+ .dark .metric-header {
564
+ color: #aaa;
565
+ }
566
+
567
+ .table-container {
568
+ overflow-x: auto;
569
+ }
570
+
571
+ .leaderboard-table td {
572
+ white-space: nowrap;
573
+ }
574
+
575
+ .score-cell {
576
+ text-align: right;
577
+ padding-right: 15px !important;
578
+ }
579
+
580
+ .model-cell {
581
+ max-width: 300px;
582
+ overflow: hidden;
583
+ text-overflow: ellipsis;
584
+ white-space: nowrap;
585
+ }
586
+
587
+ .leaderboard-table {
588
+ width: 100%;
589
+ border-collapse: collapse;
590
+ }
591
+
592
+ .leaderboard-table th,
593
+ .leaderboard-table td {
594
+ padding: 10px;
595
+ text-align: left;
596
+ border: 1px solid #e0e0e0;
597
+ }
598
+
599
+ .dark .leaderboard-table th,
600
+ .dark .leaderboard-table td {
601
+ border-color: #444;
602
+ }
603
+
604
+ .leaderboard-table th {
605
+ background-color: #f2f2f2;
606
+ font-weight: bold;
607
+ }
608
+
609
+ .dark .leaderboard-table th {
610
+ background-color: #2c3e50;
611
+ }
612
+
613
+ .leaderboard-table tr:hover {
614
+ background-color: #f5f5f5;
615
+ }
616
+
617
+ .dark .leaderboard-table tr:hover {
618
+ background-color: #2d2d2d;
619
+ }