cnhkmcp 2.1.2__py3-none-any.whl → 2.1.3__py3-none-any.whl

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.
Files changed (113) hide show
  1. {cnhkmcp-2.1.2.dist-info → cnhkmcp-2.1.3.dist-info}/METADATA +1 -1
  2. cnhkmcp-2.1.3.dist-info/RECORD +6 -0
  3. cnhkmcp-2.1.3.dist-info/top_level.txt +1 -0
  4. cnhkmcp/__init__.py +0 -125
  5. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/README.md +0 -38
  6. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/ace.log +0 -0
  7. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/config.json +0 -6
  8. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/get_knowledgeBase_tool/ace_lib.py +0 -1510
  9. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/get_knowledgeBase_tool/fetch_all_datasets.py +0 -157
  10. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/get_knowledgeBase_tool/fetch_all_documentation.py +0 -132
  11. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/get_knowledgeBase_tool/fetch_all_operators.py +0 -99
  12. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/get_knowledgeBase_tool/helpful_functions.py +0 -180
  13. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/icon.ico +0 -0
  14. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/icon.png +0 -0
  15. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/test.txt +0 -1
  16. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/main.py +0 -576
  17. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/process_knowledge_base.py +0 -281
  18. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/rag_engine.py +0 -408
  19. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/requirements.txt +0 -7
  20. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/run.bat +0 -3
  21. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242//321/211/320/266/320/246/321/206/320/274/320/261/321/210/342/224/220/320/240/321/210/320/261/320/234/321/206/320/231/320/243/321/205/342/225/235/320/220/321/206/320/230/320/241.py +0 -265
  22. cnhkmcp/untracked/APP/.gitignore +0 -32
  23. cnhkmcp/untracked/APP/MODULAR_STRUCTURE.md +0 -112
  24. cnhkmcp/untracked/APP/README.md +0 -309
  25. cnhkmcp/untracked/APP/Tranformer/Transformer.py +0 -4985
  26. cnhkmcp/untracked/APP/Tranformer/ace.log +0 -0
  27. cnhkmcp/untracked/APP/Tranformer/ace_lib.py +0 -1510
  28. cnhkmcp/untracked/APP/Tranformer/helpful_functions.py +0 -180
  29. cnhkmcp/untracked/APP/Tranformer/output/Alpha_candidates.json +0 -2421
  30. cnhkmcp/untracked/APP/Tranformer/output/Alpha_candidates_/321/207/320/264/342/225/221/321/204/342/225/233/320/233.json +0 -654
  31. cnhkmcp/untracked/APP/Tranformer/output/Alpha_generated_expressions_error.json +0 -1034
  32. cnhkmcp/untracked/APP/Tranformer/output/Alpha_generated_expressions_success.json +0 -444
  33. cnhkmcp/untracked/APP/Tranformer/output/Alpha_generated_expressions_/321/207/320/264/342/225/221/321/204/342/225/233/320/233/321/205/320/237/320/277/321/207/320/253/342/224/244/321/206/320/236/320/265/321/210/342/225/234/342/225/234/321/205/320/225/320/265Machine_lib.json +0 -22
  34. cnhkmcp/untracked/APP/Tranformer/parsetab.py +0 -60
  35. cnhkmcp/untracked/APP/Tranformer/template_summary.txt +0 -3182
  36. cnhkmcp/untracked/APP/Tranformer/transformer_config.json +0 -7
  37. cnhkmcp/untracked/APP/Tranformer/validator.py +0 -889
  38. cnhkmcp/untracked/APP/ace.log +0 -69
  39. cnhkmcp/untracked/APP/ace_lib.py +0 -1510
  40. cnhkmcp/untracked/APP/blueprints/__init__.py +0 -6
  41. cnhkmcp/untracked/APP/blueprints/feature_engineering.py +0 -347
  42. cnhkmcp/untracked/APP/blueprints/idea_house.py +0 -221
  43. cnhkmcp/untracked/APP/blueprints/inspiration_house.py +0 -432
  44. cnhkmcp/untracked/APP/blueprints/paper_analysis.py +0 -570
  45. cnhkmcp/untracked/APP/custom_templates/templates.json +0 -1257
  46. cnhkmcp/untracked/APP/give_me_idea/BRAIN_Alpha_Template_Expert_SystemPrompt.md +0 -400
  47. cnhkmcp/untracked/APP/give_me_idea/ace_lib.py +0 -1510
  48. cnhkmcp/untracked/APP/give_me_idea/alpha_data_specific_template_master.py +0 -252
  49. cnhkmcp/untracked/APP/give_me_idea/fetch_all_datasets.py +0 -157
  50. cnhkmcp/untracked/APP/give_me_idea/fetch_all_operators.py +0 -99
  51. cnhkmcp/untracked/APP/give_me_idea/helpful_functions.py +0 -180
  52. cnhkmcp/untracked/APP/give_me_idea/what_is_Alpha_template.md +0 -11
  53. cnhkmcp/untracked/APP/helpful_functions.py +0 -180
  54. cnhkmcp/untracked/APP/hkSimulator/ace_lib.py +0 -1497
  55. cnhkmcp/untracked/APP/hkSimulator/autosimulator.py +0 -447
  56. cnhkmcp/untracked/APP/hkSimulator/helpful_functions.py +0 -180
  57. cnhkmcp/untracked/APP/mirror_config.txt +0 -20
  58. cnhkmcp/untracked/APP/operaters.csv +0 -129
  59. cnhkmcp/untracked/APP/requirements.txt +0 -53
  60. cnhkmcp/untracked/APP/run_app.bat +0 -28
  61. cnhkmcp/untracked/APP/run_app.sh +0 -34
  62. cnhkmcp/untracked/APP/setup_tsinghua.bat +0 -39
  63. cnhkmcp/untracked/APP/setup_tsinghua.sh +0 -43
  64. cnhkmcp/untracked/APP/simulator/alpha_submitter.py +0 -404
  65. cnhkmcp/untracked/APP/simulator/simulator_wqb.py +0 -618
  66. cnhkmcp/untracked/APP/ssrn-3332513.pdf +6 -109201
  67. cnhkmcp/untracked/APP/static/brain.js +0 -589
  68. cnhkmcp/untracked/APP/static/decoder.js +0 -1540
  69. cnhkmcp/untracked/APP/static/feature_engineering.js +0 -1729
  70. cnhkmcp/untracked/APP/static/idea_house.js +0 -937
  71. cnhkmcp/untracked/APP/static/inspiration.js +0 -465
  72. cnhkmcp/untracked/APP/static/inspiration_house.js +0 -868
  73. cnhkmcp/untracked/APP/static/paper_analysis.js +0 -390
  74. cnhkmcp/untracked/APP/static/script.js +0 -3082
  75. cnhkmcp/untracked/APP/static/simulator.js +0 -597
  76. cnhkmcp/untracked/APP/static/styles.css +0 -3127
  77. cnhkmcp/untracked/APP/static/usage_widget.js +0 -508
  78. cnhkmcp/untracked/APP/templates/alpha_inspector.html +0 -511
  79. cnhkmcp/untracked/APP/templates/feature_engineering.html +0 -960
  80. cnhkmcp/untracked/APP/templates/idea_house.html +0 -564
  81. cnhkmcp/untracked/APP/templates/index.html +0 -932
  82. cnhkmcp/untracked/APP/templates/inspiration_house.html +0 -861
  83. cnhkmcp/untracked/APP/templates/paper_analysis.html +0 -91
  84. cnhkmcp/untracked/APP/templates/simulator.html +0 -343
  85. cnhkmcp/untracked/APP/templates/transformer_web.html +0 -580
  86. cnhkmcp/untracked/APP/usage.md +0 -351
  87. cnhkmcp/untracked/APP//321/207/342/225/235/320/250/321/205/320/230/320/226/321/204/342/225/225/320/220/321/211/320/221/320/243/321/206/320/261/320/265/ace_lib.py +0 -1510
  88. cnhkmcp/untracked/APP//321/207/342/225/235/320/250/321/205/320/230/320/226/321/204/342/225/225/320/220/321/211/320/221/320/243/321/206/320/261/320/265/brain_alpha_inspector.py +0 -712
  89. cnhkmcp/untracked/APP//321/207/342/225/235/320/250/321/205/320/230/320/226/321/204/342/225/225/320/220/321/211/320/221/320/243/321/206/320/261/320/265/helpful_functions.py +0 -180
  90. cnhkmcp/untracked/APP//321/210/342/224/220/320/240/321/210/320/261/320/234/321/206/320/231/320/243/321/205/342/225/235/320/220/321/206/320/230/320/241.py +0 -2456
  91. cnhkmcp/untracked/arXiv_API_Tool_Manual.md +0 -490
  92. cnhkmcp/untracked/arxiv_api.py +0 -229
  93. cnhkmcp/untracked/forum_functions.py +0 -998
  94. cnhkmcp/untracked/mcp/321/206/320/246/320/227/321/204/342/225/227/342/225/242/321/210/320/276/342/225/221/321/205/320/255/320/253/321/207/320/231/320/2302_/321/205/320/266/320/222/321/206/320/256/320/254/321/205/320/236/320/257/321/207/320/231/320/230/321/205/320/240/320/277/321/205/320/232/320/270/321/204/342/225/225/320/235/321/204/342/225/221/320/226/321/206/342/225/241/320/237/321/210/320/267/320/230/321/205/320/251/320/270/321/205/342/226/221/342/226/222/321/210/320/277/320/245/321/210/342/224/220/320/251/321/204/342/225/225/320/272/forum_functions.py +0 -407
  95. cnhkmcp/untracked/mcp/321/206/320/246/320/227/321/204/342/225/227/342/225/242/321/210/320/276/342/225/221/321/205/320/255/320/253/321/207/320/231/320/2302_/321/205/320/266/320/222/321/206/320/256/320/254/321/205/320/236/320/257/321/207/320/231/320/230/321/205/320/240/320/277/321/205/320/232/320/270/321/204/342/225/225/320/235/321/204/342/225/221/320/226/321/206/342/225/241/320/237/321/210/320/267/320/230/321/205/320/251/320/270/321/205/342/226/221/342/226/222/321/210/320/277/320/245/321/210/342/224/220/320/251/321/204/342/225/225/320/272/platform_functions.py +0 -2415
  96. cnhkmcp/untracked/mcp/321/206/320/246/320/227/321/204/342/225/227/342/225/242/321/210/320/276/342/225/221/321/205/320/255/320/253/321/207/320/231/320/2302_/321/205/320/266/320/222/321/206/320/256/320/254/321/205/320/236/320/257/321/207/320/231/320/230/321/205/320/240/320/277/321/205/320/232/320/270/321/204/342/225/225/320/235/321/204/342/225/221/320/226/321/206/342/225/241/320/237/321/210/320/267/320/230/321/205/320/251/320/270/321/205/342/226/221/342/226/222/321/210/320/277/320/245/321/210/342/224/220/320/251/321/204/342/225/225/320/272/user_config.json +0 -31
  97. cnhkmcp/untracked/mcp/321/206/320/246/320/227/321/204/342/225/227/342/225/242/321/210/320/276/342/225/221/321/205/320/255/320/253/321/207/320/231/320/2302_/321/205/320/266/320/222/321/206/320/256/320/254/321/205/320/236/320/257/321/207/320/231/320/230/321/205/320/240/320/277/321/205/320/232/320/270/321/204/342/225/225/320/235/321/204/342/225/221/320/226/321/206/342/225/241/320/237/321/210/320/267/320/230/321/205/320/251/320/270/321/205/342/226/221/342/226/222/321/210/320/277/320/245/321/210/342/224/220/320/251/321/204/342/225/225/320/272//321/210/320/276/320/271AI/321/210/320/277/342/225/227/321/210/342/224/220/320/251/321/204/342/225/225/320/272/321/206/320/246/320/227/321/206/320/261/320/263/321/206/320/255/320/265/321/205/320/275/320/266/321/204/342/225/235/320/252/321/204/342/225/225/320/233/321/210/342/225/234/342/225/234/321/206/342/225/241/320/237/321/210/320/267/320/230/321/205/320/251/320/270.md +0 -101
  98. cnhkmcp/untracked/mcp/321/206/320/246/320/227/321/204/342/225/227/342/225/242/321/210/320/276/342/225/221/321/205/320/255/320/253/321/207/320/231/320/2302_/321/205/320/266/320/222/321/206/320/256/320/254/321/205/320/236/320/257/321/207/320/231/320/230/321/205/320/240/320/277/321/205/320/232/320/270/321/204/342/225/225/320/235/321/204/342/225/221/320/226/321/206/342/225/241/320/237/321/210/320/267/320/230/321/205/320/251/320/270/321/205/342/226/221/342/226/222/321/210/320/277/320/245/321/210/342/224/220/320/251/321/204/342/225/225/320/272//321/211/320/225/320/235/321/207/342/225/234/320/276/321/205/320/231/320/235/321/210/342/224/220/320/240/321/210/320/261/320/234/321/206/320/230/320/241_/321/205/320/276/320/231/321/210/320/263/320/225/321/205/342/224/220/320/225/321/210/320/266/320/221/321/204/342/225/233/320/255/321/210/342/225/241/320/246/321/205/320/234/320/225.py +0 -190
  99. cnhkmcp/untracked/platform_functions.py +0 -2886
  100. cnhkmcp/untracked/sample_mcp_config.json +0 -11
  101. cnhkmcp/untracked/user_config.json +0 -31
  102. cnhkmcp/untracked//321/207/320/264/342/225/221/321/204/342/225/233/320/233/321/205/320/237/320/222/321/210/320/220/320/223/321/206/320/246/320/227/321/206/320/261/320/263_BRAIN_Alpha_Test_Requirements_and_Tips.md +0 -202
  103. cnhkmcp/untracked//321/207/320/264/342/225/221/321/204/342/225/233/320/233/321/205/342/225/226/320/265/321/204/342/225/234/320/254/321/206/342/225/241/320/221_Alpha_explaination_workflow.md +0 -56
  104. cnhkmcp/untracked//321/207/320/264/342/225/221/321/204/342/225/233/320/233/321/205/342/225/226/320/265/321/204/342/225/234/320/254/321/206/342/225/241/320/221_BRAIN_6_Tips_Datafield_Exploration_Guide.md +0 -194
  105. cnhkmcp/untracked//321/207/320/264/342/225/221/321/204/342/225/233/320/233/321/205/342/225/226/320/265/321/204/342/225/234/320/254/321/206/342/225/241/320/221_BRAIN_Alpha_Improvement_Workflow.md +0 -101
  106. cnhkmcp/untracked//321/207/320/264/342/225/221/321/204/342/225/233/320/233/321/205/342/225/226/320/265/321/204/342/225/234/320/254/321/206/342/225/241/320/221_Dataset_Exploration_Expert_Manual.md +0 -436
  107. cnhkmcp/untracked//321/207/320/264/342/225/221/321/204/342/225/233/320/233/321/205/342/225/226/320/265/321/204/342/225/234/320/254/321/206/342/225/241/320/221_daily_report_workflow.md +0 -128
  108. cnhkmcp/untracked//321/211/320/225/320/235/321/207/342/225/234/320/276/321/205/320/231/320/235/321/210/342/224/220/320/240/321/210/320/261/320/234/321/206/320/230/320/241_/321/205/320/276/320/231/321/210/320/263/320/225/321/205/342/224/220/320/225/321/210/320/266/320/221/321/204/342/225/233/320/255/321/210/342/225/241/320/246/321/205/320/234/320/225.py +0 -190
  109. cnhkmcp-2.1.2.dist-info/RECORD +0 -111
  110. cnhkmcp-2.1.2.dist-info/top_level.txt +0 -1
  111. {cnhkmcp-2.1.2.dist-info → cnhkmcp-2.1.3.dist-info}/WHEEL +0 -0
  112. {cnhkmcp-2.1.2.dist-info → cnhkmcp-2.1.3.dist-info}/entry_points.txt +0 -0
  113. {cnhkmcp-2.1.2.dist-info → cnhkmcp-2.1.3.dist-info}/licenses/LICENSE +0 -0
@@ -1,3127 +0,0 @@
1
- /* Reset and Base Styles */
2
- * {
3
- margin: 0;
4
- padding: 0;
5
- box-sizing: border-box;
6
- }
7
-
8
- body {
9
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
10
- background-color: #f5f7fa;
11
- color: #333;
12
- line-height: 1.6;
13
- }
14
-
15
- /* Container and Layout */
16
- .container {
17
- max-width: 1400px;
18
- margin: 0 auto;
19
- padding: 20px;
20
-
21
- }
22
-
23
- header {
24
- text-align: center;
25
- margin-bottom: 30px;
26
- padding: 20px ;
27
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
28
- color: white;
29
- border-radius: 10px;
30
- box-shadow: 0 5px 15px rgba(0,0,0,0.1);
31
- position: relative;
32
- min-height: 160px;
33
- width: 100%;
34
-
35
- }
36
-
37
- .header-top {
38
- display: flex;
39
- justify-content: space-between;
40
- align-items: flex-start;
41
- margin-bottom: 20px;
42
- position: relative;
43
- }
44
-
45
- .header-left {
46
- flex-shrink: 0;
47
- width: 150px;
48
- }
49
-
50
- .header-center {
51
- flex: 1;
52
- text-align: center;
53
- margin: 0 20px;
54
- z-index: 1;
55
- min-width: 0;
56
- padding-right: 300px;
57
- }
58
-
59
- header h1 {
60
- font-size: 2.5em;
61
- margin-bottom: 20px;
62
- margin-top: 0;
63
- line-height: 1.2;
64
- }
65
-
66
- .subtitle {
67
- font-size: 1.1em;
68
- opacity: 0.9;
69
- }
70
-
71
- .header-buttons {
72
- position: absolute;
73
- top: 15px;
74
- right: 15px;
75
- display: flex;
76
- flex-direction: column;
77
- gap: 10px;
78
- align-items: flex-end;
79
- max-width: 280px;
80
- z-index: 2;
81
- pointer-events: auto;
82
- }
83
-
84
- .header-buttons-row {
85
- display: flex;
86
- gap: 10px;
87
- flex-wrap: wrap;
88
- justify-content: flex-end;
89
- }
90
-
91
- .header-buttons .btn {
92
- padding: 8px 16px;
93
- font-size: 14px;
94
- white-space: nowrap;
95
- }
96
-
97
- .btn-brain {
98
- background: rgba(255, 255, 255, 0.2);
99
- color: white;
100
- border: 2px solid rgba(255, 255, 255, 0.3);
101
- padding: 8px 16px;
102
- border-radius: 6px;
103
- font-size: 14px;
104
- font-weight: 500;
105
- cursor: pointer;
106
- transition: all 0.3s ease;
107
- backdrop-filter: blur(10px);
108
- }
109
-
110
- .btn-brain:hover {
111
- background: rgba(255, 255, 255, 0.3);
112
- border-color: rgba(255, 255, 255, 0.5);
113
- transform: translateY(-1px);
114
- box-shadow: 0 2px 8px rgba(0,0,0,0.2);
115
- }
116
-
117
- .btn-brain.connected {
118
- background: #4caf50;
119
- border-color: #4caf50;
120
- color: white;
121
- }
122
-
123
- .btn-brain.connected:hover {
124
- background: #45a049;
125
- border-color: #45a049;
126
- }
127
-
128
- .btn-submitter {
129
- background: rgba(255, 255, 255, 0.2);
130
- color: white;
131
- border: 2px solid rgba(255, 255, 255, 0.3);
132
- padding: 10px 20px;
133
- border-radius: 6px;
134
- font-size: 14px;
135
- font-weight: 500;
136
- cursor: pointer;
137
- transition: all 0.3s ease;
138
- backdrop-filter: blur(10px);
139
- white-space: nowrap;
140
- }
141
-
142
- .btn-submitter:hover {
143
- background: rgba(255, 255, 255, 0.3);
144
- border-color: rgba(255, 255, 255, 0.5);
145
- transform: translateY(-1px);
146
- box-shadow: 0 2px 8px rgba(0,0,0,0.2);
147
- }
148
-
149
- /* Main Content Layout */
150
- .main-content {
151
- display: grid;
152
- grid-template-columns: 1fr 350px;
153
- gap: 20px;
154
- margin-top: 20px;
155
- height: calc(100vh - 400px);
156
- min-height: 600px;
157
- }
158
-
159
- /* Editor Section */
160
- .editor-section {
161
- background: white;
162
- border-radius: 10px;
163
- padding: 20px;
164
- box-shadow: 0 2px 10px rgba(0,0,0,0.1);
165
- display: flex;
166
- flex-direction: column;
167
- height: 100%;
168
- }
169
-
170
- .editor-header {
171
- display: flex;
172
- justify-content: space-between;
173
- align-items: center;
174
- margin-bottom: 20px;
175
- flex-wrap: wrap;
176
- gap: 10px;
177
- }
178
-
179
- .editor-header h2 {
180
- color: #333;
181
- font-size: 1.5em;
182
- margin-right: auto;
183
- }
184
-
185
- .auto-check-indicator {
186
- color: #48bb78;
187
- font-size: 14px;
188
- display: flex;
189
- align-items: center;
190
- gap: 5px;
191
- font-weight: 500;
192
- }
193
-
194
- .editor-actions {
195
- display: flex;
196
- gap: 10px;
197
- }
198
-
199
- /* Editor Wrapper */
200
- .editor-wrapper {
201
- display: flex;
202
- border: 2px solid #e0e6ed;
203
- border-radius: 8px;
204
- overflow: hidden;
205
- background: #fafbfc;
206
- position: relative;
207
- height: 500px;
208
- min-height: 400px;
209
- }
210
-
211
- .line-numbers {
212
- background: #f0f3f6;
213
- color: #6b7280;
214
- padding: 12px 10px;
215
- text-align: right;
216
- font-family: 'Consolas', 'Monaco', monospace;
217
- font-size: 16px;
218
- line-height: 1.6;
219
- user-select: none;
220
- border-right: 1px solid #e0e6ed;
221
- white-space: pre;
222
- overflow-y: auto;
223
- overflow-x: hidden;
224
- min-width: 40px;
225
- flex-shrink: 0;
226
- min-height: 100%;
227
- }
228
-
229
- /* Hide scrollbars but keep functionality */
230
- .line-numbers::-webkit-scrollbar,
231
- .highlighted-text::-webkit-scrollbar,
232
- .expression-editor::-webkit-scrollbar {
233
- width: 0;
234
- height: 0;
235
- }
236
-
237
- .editor-container {
238
- position: relative;
239
- flex: 1;
240
- overflow-y: auto;
241
- overflow-x: hidden;
242
- min-height: 400px;
243
- }
244
-
245
- .highlighted-text {
246
- position: absolute;
247
- top: 0;
248
- left: 0;
249
- right: 0;
250
- bottom: 0;
251
- padding: 12px 15px;
252
- font-family: 'Consolas', 'Monaco', monospace;
253
- font-size: 16px;
254
- line-height: 1.6;
255
- white-space: pre-wrap;
256
- word-wrap: break-word;
257
- color: #333;
258
- pointer-events: none;
259
- overflow-y: auto;
260
- overflow-x: hidden;
261
- min-height: 100%;
262
- }
263
-
264
- .highlighted-text .template-tag {
265
- color: #2563eb;
266
- font-weight: 600;
267
- }
268
-
269
- .highlighted-text .template-brackets {
270
- color: #7c3aed;
271
- font-weight: 600;
272
- }
273
-
274
- .expression-editor {
275
- position: relative;
276
- width: 100%;
277
- min-height: 100%;
278
- height: 100%;
279
- padding: 12px 15px;
280
- font-family: 'Consolas', 'Monaco', monospace;
281
- font-size: 16px;
282
- line-height: 1.6;
283
- border: none;
284
- outline: none;
285
- resize: none;
286
- background: transparent;
287
- white-space: pre-wrap;
288
- word-wrap: break-word;
289
- color: transparent;
290
- caret-color: #333;
291
- z-index: 2;
292
- overflow-y: auto;
293
- overflow-x: hidden;
294
- display: block;
295
- }
296
-
297
- /* Template Preview */
298
- .template-preview {
299
- background: #f3f4f6;
300
- border: 1px solid #e5e7eb;
301
- border-radius: 6px;
302
- padding: 8px 12px;
303
- margin-bottom: 10px;
304
- font-family: 'Consolas', 'Monaco', monospace;
305
- font-size: 14px;
306
- }
307
-
308
- .template-preview .preview-label {
309
- color: #6b7280;
310
- font-size: 12px;
311
- margin-bottom: 4px;
312
- }
313
-
314
- /* Grammar Errors */
315
- .grammar-errors {
316
- margin-top: 15px;
317
- }
318
-
319
- .error-item {
320
- background: #fee;
321
- border-left: 4px solid #f44336;
322
- padding: 10px 15px;
323
- margin-bottom: 10px;
324
- border-radius: 4px;
325
- font-size: 14px;
326
- }
327
-
328
- .error-item strong {
329
- color: #d32f2f;
330
- }
331
-
332
- .success-message {
333
- background: #e8f5e9;
334
- border-left: 4px solid #4caf50;
335
- padding: 10px 15px;
336
- border-radius: 4px;
337
- color: #2e7d32;
338
- }
339
-
340
- .info-message {
341
- background: #e3f2fd;
342
- border-left: 4px solid #2196f3;
343
- padding: 10px 15px;
344
- border-radius: 4px;
345
- color: #1565c0;
346
- font-size: 14px;
347
- line-height: 1.5;
348
- }
349
-
350
- .error-message {
351
- background: #ffebee;
352
- border-left: 4px solid #f44336;
353
- padding: 10px 15px;
354
- border-radius: 4px;
355
- color: #c62828;
356
- font-size: 14px;
357
- line-height: 1.5;
358
- }
359
-
360
- /* Info Panel */
361
- .info-panel {
362
- background: white;
363
- border-radius: 10px;
364
- padding: 20px;
365
- box-shadow: 0 2px 10px rgba(0,0,0,0.1);
366
- }
367
-
368
- .info-panel h3 {
369
- color: #333;
370
- margin-bottom: 15px;
371
- font-size: 1.2em;
372
- }
373
-
374
- .grammar-rules {
375
- list-style: none;
376
- margin-bottom: 30px;
377
- }
378
-
379
- .grammar-rules li {
380
- padding: 8px 0;
381
- border-bottom: 1px solid #eee;
382
- }
383
-
384
- .grammar-rules code {
385
- background: #f5f7fa;
386
- padding: 2px 6px;
387
- border-radius: 3px;
388
- font-family: 'Consolas', 'Monaco', monospace;
389
- color: #667eea;
390
- }
391
-
392
- /* Template List */
393
- .template-list {
394
- display: flex;
395
- flex-direction: column;
396
- gap: 10px;
397
- }
398
-
399
- .template-item {
400
- background: #f5f7fa;
401
- padding: 12px;
402
- border-radius: 6px;
403
- display: flex;
404
- flex-direction: column;
405
- align-items: stretch;
406
- transition: all 0.3s ease;
407
- position: relative;
408
- padding-left: 35px;
409
- gap: 8px;
410
- }
411
-
412
- .template-item:hover {
413
- background: #e9ecef;
414
- transform: translateX(5px);
415
- }
416
-
417
- .template-item.configured::before {
418
- content: "✓";
419
- position: absolute;
420
- left: 12px;
421
- top: 16px;
422
- color: #48bb78;
423
- font-weight: bold;
424
- }
425
-
426
- .template-item.not-configured::before {
427
- content: "•";
428
- position: absolute;
429
- left: 12px;
430
- top: 16px;
431
- color: #9ca3af;
432
- }
433
-
434
- .template-name {
435
- font-family: 'Consolas', 'Monaco', monospace;
436
- font-size: 14px;
437
- display: flex;
438
- align-items: center;
439
- cursor: pointer;
440
- padding: 4px 8px;
441
- border-radius: 4px;
442
- transition: background-color 0.2s ease;
443
- margin-bottom: 4px;
444
- }
445
-
446
- .template-name:hover {
447
- background-color: rgba(102, 126, 234, 0.1);
448
- }
449
-
450
- .template-name .template-tag {
451
- color: #2563eb;
452
- font-weight: 600;
453
- }
454
-
455
- .template-name .template-brackets {
456
- color: #7c3aed;
457
- font-weight: 600;
458
- }
459
-
460
- .template-count {
461
- color: #48bb78;
462
- font-weight: 600;
463
- font-size: 13px;
464
- margin-left: 4px;
465
- }
466
-
467
- .template-buttons {
468
- display: flex;
469
- gap: 5px;
470
- flex-wrap: wrap;
471
- justify-content: flex-start;
472
- padding-left: 8px;
473
- }
474
-
475
- .template-buttons .btn-small {
476
- padding: 4px 8px;
477
- font-size: 11px;
478
- min-width: 45px;
479
- }
480
-
481
- /* Buttons */
482
- .btn {
483
- padding: 8px 16px;
484
- border: none;
485
- border-radius: 6px;
486
- font-size: 14px;
487
- font-weight: 500;
488
- cursor: pointer;
489
- transition: all 0.3s ease;
490
- text-decoration: none;
491
- display: inline-block;
492
- }
493
-
494
- .btn-primary {
495
- background: #667eea;
496
- color: white;
497
- }
498
-
499
- .btn-primary:hover {
500
- background: #5a67d8;
501
- transform: translateY(-1px);
502
- box-shadow: 0 2px 5px rgba(102, 126, 234, 0.3);
503
- }
504
-
505
- .btn-secondary {
506
- background: #48bb78;
507
- color: white;
508
- }
509
-
510
- .btn-secondary:hover {
511
- background: #38a169;
512
- transform: translateY(-1px);
513
- box-shadow: 0 2px 5px rgba(72, 187, 120, 0.3);
514
- }
515
-
516
- .btn-outline {
517
- background: transparent;
518
- color: #6b7280;
519
- border: 1px solid #e0e6ed;
520
- }
521
-
522
- .btn-outline:hover {
523
- background: #f5f7fa;
524
- color: #333;
525
- }
526
-
527
- /* Header button overrides for visibility on purple background */
528
- header .btn-outline {
529
- background: rgba(255, 255, 255, 0.15);
530
- color: white;
531
- border: 2px solid rgba(255, 255, 255, 0.4);
532
- backdrop-filter: blur(10px);
533
- }
534
-
535
- header .btn-outline:hover {
536
- background: rgba(255, 255, 255, 0.25);
537
- border-color: rgba(255, 255, 255, 0.6);
538
- color: white;
539
- transform: translateY(-1px);
540
- box-shadow: 0 2px 8px rgba(0,0,0,0.2);
541
- }
542
-
543
- .btn-small {
544
- padding: 5px 10px;
545
- font-size: 12px;
546
- }
547
-
548
- /* Button progress indicator styles */
549
- .btn {
550
- position: relative;
551
- min-width: 120px;
552
- }
553
-
554
- .btn-progress {
555
- position: absolute;
556
- top: 0;
557
- left: 0;
558
- width: 100%;
559
- height: 100%;
560
- display: flex;
561
- flex-direction: column;
562
- align-items: center;
563
- justify-content: center;
564
- background: inherit;
565
- border-radius: inherit;
566
- }
567
-
568
- .btn-progress .progress-bar {
569
- width: 80%;
570
- height: 4px;
571
- background: rgba(255, 255, 255, 0.3);
572
- border-radius: 2px;
573
- margin-bottom: 5px;
574
- overflow: hidden;
575
- }
576
-
577
- .btn-progress .progress-bar-fill {
578
- height: 100%;
579
- background: #fff;
580
- border-radius: 2px;
581
- transition: width 0.3s ease;
582
- }
583
-
584
- .btn-progress .progress-text {
585
- font-size: 11px;
586
- color: #fff;
587
- font-weight: 400;
588
- }
589
-
590
- .btn:disabled {
591
- opacity: 0.6;
592
- cursor: not-allowed;
593
- }
594
-
595
- /* Modal */
596
- .modal {
597
- display: none;
598
- position: fixed;
599
- z-index: 1000;
600
- left: 0;
601
- top: 0;
602
- width: 100%;
603
- height: 100%;
604
- background-color: rgba(0,0,0,0.5);
605
- animation: fadeIn 0.3s ease;
606
- }
607
-
608
- .modal-content {
609
- background-color: white;
610
- margin: 10% auto;
611
- padding: 0;
612
- border-radius: 10px;
613
- width: 90%;
614
- max-width: 500px;
615
- box-shadow: 0 5px 20px rgba(0,0,0,0.3);
616
- animation: slideIn 0.3s ease;
617
- position: relative;
618
- max-height: 80vh;
619
- overflow: hidden;
620
- display: flex;
621
- flex-direction: column;
622
- }
623
-
624
- .modal-header {
625
- padding: 20px;
626
- background: #f5f7fa;
627
- border-radius: 10px 10px 0 0;
628
- display: flex;
629
- justify-content: space-between;
630
- align-items: center;
631
- border-bottom: 1px solid #e0e6ed;
632
- flex-shrink: 0;
633
- }
634
-
635
- #brainDataFieldsModal .modal-header {
636
- padding: 15px 20px;
637
- }
638
-
639
- .modal-header h3 {
640
- color: #333;
641
- margin: 0;
642
- }
643
-
644
- .close {
645
- color: #999;
646
- font-size: 28px;
647
- font-weight: bold;
648
- cursor: pointer;
649
- transition: color 0.3s ease;
650
- line-height: 1;
651
- }
652
-
653
- .close:hover {
654
- color: #333;
655
- }
656
-
657
- .modal-body {
658
- padding: 20px;
659
- flex: 1;
660
- overflow-y: auto;
661
- min-height: 0;
662
- }
663
-
664
- .modal-body p {
665
- margin-bottom: 15px;
666
- color: #666;
667
- }
668
-
669
- .variable-input {
670
- width: 100%;
671
- min-height: 100px;
672
- padding: 10px;
673
- border: 2px solid #e0e6ed;
674
- border-radius: 6px;
675
- font-family: 'Consolas', 'Monaco', monospace;
676
- font-size: 14px;
677
- resize: vertical;
678
- }
679
-
680
- .variable-input:focus {
681
- outline: none;
682
- border-color: #667eea;
683
- }
684
-
685
- .modal-footer {
686
- padding: 20px;
687
- background: #f5f7fa;
688
- border-radius: 0 0 10px 10px;
689
- display: flex;
690
- justify-content: flex-end;
691
- gap: 10px;
692
- border-top: 1px solid #e0e6ed;
693
- flex-shrink: 0;
694
- }
695
-
696
- #brainDataFieldsModal .modal-footer {
697
- padding: 15px 20px;
698
- }
699
-
700
- #brainDataFieldsModal .modal-body {
701
- flex: 1;
702
- overflow-y: auto;
703
- overflow-x: hidden;
704
- display: flex;
705
- flex-direction: column;
706
- padding: 15px;
707
- min-height: 0;
708
- }
709
-
710
- /* Configuration Info Modal Specific Styles */
711
- .config-info-content {
712
- font-family: 'Consolas', 'Monaco', monospace;
713
- font-size: 14px;
714
- line-height: 1.6;
715
- }
716
-
717
- .config-info-item {
718
- margin-bottom: 15px;
719
- padding: 10px;
720
- background: #f8f9fa;
721
- border-radius: 6px;
722
- border-left: 4px solid #667eea;
723
- }
724
-
725
- .config-info-item strong {
726
- color: #333;
727
- display: inline-block;
728
- min-width: 80px;
729
- }
730
-
731
- .config-info-values {
732
- background: #e3f2fd;
733
- padding: 8px 12px;
734
- border-radius: 4px;
735
- margin-top: 8px;
736
- color: #1565c0;
737
- word-break: break-all;
738
- }
739
-
740
- .config-status-unconfigured {
741
- color: #f44336;
742
- font-style: italic;
743
- }
744
-
745
- .config-status-configured {
746
- color: #4caf50;
747
- font-weight: 600;
748
- }
749
-
750
- /* Form Styles for BRAIN Login */
751
- .form-group {
752
- margin-bottom: 20px;
753
- }
754
-
755
- .form-group label {
756
- display: block;
757
- margin-bottom: 5px;
758
- color: #333;
759
- font-weight: 500;
760
- }
761
-
762
- .form-input {
763
- width: 100%;
764
- padding: 10px 12px;
765
- border: 2px solid #e0e6ed;
766
- border-radius: 6px;
767
- font-size: 14px;
768
- transition: border-color 0.3s ease;
769
- box-sizing: border-box;
770
- }
771
-
772
- .form-input:focus {
773
- outline: none;
774
- border-color: #667eea;
775
- box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
776
- }
777
-
778
- .form-input:disabled {
779
- background-color: #f5f5f5;
780
- cursor: not-allowed;
781
- opacity: 0.7;
782
- }
783
-
784
- .login-status {
785
- margin-top: 10px;
786
- padding: 8px 12px;
787
- border-radius: 4px;
788
- font-size: 14px;
789
- text-align: center;
790
- min-height: 20px;
791
- }
792
-
793
- .login-status.loading {
794
- background: #e3f2fd;
795
- color: #1565c0;
796
- border: 1px solid #90caf9;
797
- }
798
-
799
- .login-status.success {
800
- background: #e8f5e9;
801
- color: #2e7d32;
802
- border: 1px solid #81c784;
803
- }
804
-
805
- .login-status.error {
806
- background: #ffebee;
807
- color: #c62828;
808
- border: 1px solid #ef5350;
809
- }
810
-
811
- .login-status.info {
812
- background: #fff3e0;
813
- color: #f57c00;
814
- border: 1px solid #ffb74d;
815
- }
816
-
817
- .login-spinner {
818
- display: flex;
819
- justify-content: center;
820
- align-items: center;
821
- padding: 20px;
822
- }
823
-
824
- .spinner {
825
- width: 40px;
826
- height: 40px;
827
- border: 4px solid #f3f3f3;
828
- border-top: 4px solid #667eea;
829
- border-radius: 50%;
830
- animation: spin 1s linear infinite;
831
- }
832
-
833
- @keyframes spin {
834
- 0% { transform: rotate(0deg); }
835
- 100% { transform: rotate(360deg); }
836
- }
837
-
838
- .modal-overlay {
839
- position: fixed;
840
- top: 0;
841
- left: 0;
842
- width: 100%;
843
- height: 100%;
844
- background: rgba(0, 0, 0, 0.3);
845
- z-index: 9999;
846
- display: none;
847
- cursor: not-allowed;
848
- }
849
-
850
- /* Animations */
851
- @keyframes fadeIn {
852
- from { opacity: 0; }
853
- to { opacity: 1; }
854
- }
855
-
856
- @keyframes slideIn {
857
- from { transform: translateY(100px); opacity: 0; }
858
- to { transform: translateY(0); opacity: 1; }
859
- }
860
-
861
- @keyframes fadeOut {
862
- from { opacity: 1; }
863
- to { opacity: 0; }
864
- }
865
-
866
- /* Shadow Suggestion */
867
- .shadow-suggestion {
868
- font-family: 'Consolas', 'Monaco', monospace;
869
- font-size: 16px;
870
- line-height: 1.6;
871
- color: #9ca3af;
872
- opacity: 0.5;
873
- position: relative;
874
- user-select: none;
875
- -webkit-user-select: none;
876
- -moz-user-select: none;
877
- }
878
-
879
- .shadow-hint {
880
- position: absolute;
881
- top: 100%;
882
- left: 0;
883
- margin-top: 4px;
884
- background: #f3f4f6;
885
- color: #6b7280;
886
- padding: 2px 6px;
887
- border-radius: 4px;
888
- font-size: 11px;
889
- white-space: nowrap;
890
- box-shadow: 0 1px 3px rgba(0,0,0,0.1);
891
- animation: fadeIn 0.2s ease;
892
- }
893
-
894
- /* Decoded Results */
895
- .decoded-results {
896
- margin-top: 30px;
897
- background: white;
898
- border: 1px solid #e5e7eb;
899
- border-radius: 8px;
900
- padding: 20px;
901
- max-width: 1000px;
902
- margin-left: auto;
903
- margin-right: auto;
904
- }
905
-
906
- .decoded-results h3 {
907
- margin-top: 0;
908
- margin-bottom: 15px;
909
- color: #333;
910
- font-size: 1.2em;
911
- }
912
-
913
- .results-list {
914
- max-height: 400px;
915
- overflow-y: auto;
916
- background: white;
917
- border: 1px solid #e0e6ed;
918
- border-radius: 6px;
919
- padding: 10px;
920
- margin-bottom: 15px;
921
- }
922
-
923
- .result-item {
924
- padding: 8px 12px;
925
- margin-bottom: 8px;
926
- background: #f5f7fa;
927
- border-radius: 4px;
928
- font-family: 'Consolas', 'Monaco', monospace;
929
- font-size: 14px;
930
- line-height: 1.5;
931
- position: relative;
932
- }
933
-
934
- .result-item:hover {
935
- background: #e9ecef;
936
- }
937
-
938
- .result-number {
939
- display: inline-block;
940
- width: 30px;
941
- color: #6b7280;
942
- font-weight: 600;
943
- }
944
-
945
- .result-expression {
946
- color: #333;
947
- }
948
-
949
- .copy-single {
950
- position: absolute;
951
- right: 10px;
952
- top: 50%;
953
- transform: translateY(-50%);
954
- padding: 4px 8px;
955
- font-size: 11px;
956
- background: #667eea;
957
- color: white;
958
- border: none;
959
- border-radius: 4px;
960
- cursor: pointer;
961
- opacity: 0;
962
- transition: opacity 0.2s ease;
963
- }
964
-
965
- .result-item:hover .copy-single {
966
- opacity: 1;
967
- }
968
-
969
- .copy-single:hover {
970
- background: #5a67d8;
971
- }
972
-
973
- .results-actions {
974
- display: flex;
975
- gap: 10px;
976
- justify-content: flex-end;
977
- }
978
-
979
- .results-info {
980
- background: #e0f2fe;
981
- border: 1px solid #7dd3fc;
982
- padding: 10px 15px;
983
- border-radius: 6px;
984
- margin-bottom: 15px;
985
- color: #075985;
986
- font-size: 14px;
987
- }
988
-
989
- /* Results Search Container */
990
- .results-search-container {
991
- display: flex;
992
- gap: 10px;
993
- margin-bottom: 15px;
994
- padding: 10px;
995
- background: #f8fafc;
996
- border-radius: 6px;
997
- align-items: center;
998
- }
999
-
1000
- .results-search-input {
1001
- flex: 1;
1002
- padding: 8px 12px;
1003
- border: 2px solid #e0e6ed;
1004
- border-radius: 6px;
1005
- font-size: 14px;
1006
- font-family: 'Consolas', 'Monaco', monospace;
1007
- transition: border-color 0.3s ease;
1008
- }
1009
-
1010
- .results-search-input:focus {
1011
- outline: none;
1012
- border-color: #667eea;
1013
- box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
1014
- }
1015
-
1016
- .results-search-input::placeholder {
1017
- color: #9ca3af;
1018
- }
1019
-
1020
- /* Warning message style */
1021
- .warning-message {
1022
- background: #fef3c7;
1023
- border: 1px solid #fbbf24;
1024
- padding: 10px 15px;
1025
- border-radius: 6px;
1026
- color: #92400e;
1027
- font-size: 14px;
1028
- margin-bottom: 15px;
1029
- }
1030
-
1031
- /* Settings Grid */
1032
- .settings-grid {
1033
- display: grid;
1034
- grid-template-columns: repeat(2, 1fr);
1035
- gap: 15px;
1036
- margin-top: 20px;
1037
- }
1038
-
1039
- .setting-item {
1040
- display: flex;
1041
- flex-direction: column;
1042
- gap: 5px;
1043
- }
1044
-
1045
- .setting-item label {
1046
- font-size: 14px;
1047
- font-weight: 500;
1048
- color: #333;
1049
- }
1050
-
1051
- .setting-item .form-input {
1052
- padding: 8px 10px;
1053
- font-size: 13px;
1054
- }
1055
-
1056
- @media (max-width: 600px) {
1057
- .settings-grid {
1058
- grid-template-columns: 1fr;
1059
- }
1060
- }
1061
-
1062
- /* Settings Modal Styles */
1063
- .settings-modal .modal-content {
1064
- max-width: 900px;
1065
- width: 90%;
1066
- max-height: 90vh;
1067
- }
1068
-
1069
- .settings-modal-content {
1070
- width: 90%;
1071
- max-width: 900px;
1072
- max-height: 90vh;
1073
- margin: 5vh auto;
1074
- }
1075
-
1076
- .settings-modal-body {
1077
- display: flex;
1078
- flex-direction: column;
1079
- gap: 20px;
1080
- max-height: calc(90vh - 140px); /* Account for header and footer */
1081
- overflow: hidden;
1082
- }
1083
-
1084
- .settings-info {
1085
- background: #f0f4f8;
1086
- padding: 15px;
1087
- border-radius: 6px;
1088
- border-left: 4px solid #667eea;
1089
- flex-shrink: 0;
1090
- }
1091
-
1092
- .settings-note {
1093
- color: #6b7280;
1094
- font-size: 14px;
1095
- margin-top: 5px;
1096
- }
1097
-
1098
- .settings-container {
1099
- flex: 1;
1100
- overflow-y: auto;
1101
- min-height: 0;
1102
- border: 1px solid #e0e6ed;
1103
- border-radius: 6px;
1104
- }
1105
-
1106
- .settings-table {
1107
- width: 100%;
1108
- border-collapse: collapse;
1109
- background: white;
1110
- }
1111
-
1112
- .settings-table thead {
1113
- position: sticky;
1114
- top: 0;
1115
- background: #f5f7fa;
1116
- z-index: 10;
1117
- }
1118
-
1119
- .settings-table th {
1120
- padding: 12px;
1121
- text-align: left;
1122
- font-weight: 600;
1123
- color: #333;
1124
- border-bottom: 2px solid #e0e6ed;
1125
- font-size: 14px;
1126
- }
1127
-
1128
- .settings-table td {
1129
- padding: 10px 12px;
1130
- border-bottom: 1px solid #e5e7eb;
1131
- }
1132
-
1133
- .settings-table tr:hover {
1134
- background: #f9fafb;
1135
- }
1136
-
1137
- .setting-value-input {
1138
- width: 100%;
1139
- padding: 8px 12px;
1140
- border: 2px solid #e0e6ed;
1141
- border-radius: 6px;
1142
- font-size: 14px;
1143
- font-family: 'Consolas', 'Monaco', monospace;
1144
- transition: border-color 0.3s ease;
1145
- }
1146
-
1147
- .setting-value-input:focus {
1148
- outline: none;
1149
- border-color: #667eea;
1150
- box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
1151
- }
1152
-
1153
- .setting-value-input[readonly] {
1154
- background: #f5f5f5;
1155
- cursor: not-allowed;
1156
- }
1157
-
1158
- .setting-value-input::placeholder {
1159
- color: #9ca3af;
1160
- font-size: 13px;
1161
- }
1162
-
1163
- /* Settings checkbox group (Universe / Neutralization) */
1164
- .setting-checkbox-group {
1165
- max-height: 170px;
1166
- overflow-y: auto;
1167
- display: flex;
1168
- flex-direction: column;
1169
- gap: 6px;
1170
- }
1171
-
1172
- .setting-checkbox-item {
1173
- display: flex;
1174
- align-items: center;
1175
- gap: 8px;
1176
- font-family: inherit;
1177
- font-size: 13px;
1178
- line-height: 1.2;
1179
- user-select: none;
1180
- }
1181
-
1182
- .setting-checkbox-item input[type="checkbox"] {
1183
- margin: 0;
1184
- }
1185
-
1186
- .setting-checkbox-placeholder {
1187
- opacity: 0.7;
1188
- font-size: 13px;
1189
- }
1190
-
1191
- .setting-type-select {
1192
- padding: 6px 10px;
1193
- border: 2px solid #e0e6ed;
1194
- border-radius: 6px;
1195
- font-size: 13px;
1196
- background: white;
1197
- cursor: pointer;
1198
- transition: border-color 0.3s ease;
1199
- }
1200
-
1201
- .setting-type-select:focus {
1202
- outline: none;
1203
- border-color: #667eea;
1204
- }
1205
-
1206
- .setting-type-select[disabled] {
1207
- background: #f5f5f5;
1208
- cursor: not-allowed;
1209
- opacity: 0.7;
1210
- }
1211
-
1212
- .remove-setting-btn {
1213
- padding: 4px 8px;
1214
- background: #ef4444;
1215
- color: white;
1216
- border: none;
1217
- border-radius: 4px;
1218
- cursor: pointer;
1219
- font-size: 12px;
1220
- }
1221
-
1222
- .remove-setting-btn:hover {
1223
- background: #dc2626;
1224
- }
1225
-
1226
- .add-setting-container {
1227
- padding: 15px;
1228
- text-align: center;
1229
- background: #f9fafb;
1230
- }
1231
-
1232
- .settings-preview {
1233
- background: #e0f2fe;
1234
- padding: 15px;
1235
- border-radius: 6px;
1236
- border: 1px solid #7dd3fc;
1237
- flex-shrink: 0;
1238
- }
1239
-
1240
- .preview-header {
1241
- font-size: 14px;
1242
- color: #075985;
1243
- }
1244
-
1245
- #totalCombinations {
1246
- font-weight: 600;
1247
- color: #0c4a6e;
1248
- }
1249
-
1250
- /* Custom setting row styles */
1251
- .custom-setting-row td:first-child {
1252
- position: relative;
1253
- }
1254
-
1255
- .custom-setting-row input[type="text"]:first-child {
1256
- width: 100%;
1257
- }
1258
-
1259
- .setting-name-input {
1260
- width: 100%;
1261
- padding: 8px 12px;
1262
- border: 2px solid #e0e6ed;
1263
- border-radius: 6px;
1264
- font-size: 14px;
1265
- font-family: 'Consolas', 'Monaco', monospace;
1266
- transition: border-color 0.3s ease;
1267
- }
1268
-
1269
- .setting-name-input:focus {
1270
- outline: none;
1271
- border-color: #667eea;
1272
- box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
1273
- }
1274
-
1275
- /* Decode Section */
1276
- .decode-section {
1277
- display: none;
1278
- }
1279
-
1280
- /* Navigation Tabs */
1281
- .page-navigation {
1282
- display: flex;
1283
- gap: 10px;
1284
- margin: 20px 0;
1285
- background: white;
1286
- padding: 10px;
1287
- border-radius: 10px;
1288
- box-shadow: 0 2px 10px rgba(0,0,0,0.1);
1289
- }
1290
-
1291
- .nav-tab {
1292
- flex: 1;
1293
- display: flex;
1294
- align-items: center;
1295
- justify-content: center;
1296
- gap: 8px;
1297
- padding: 12px 20px;
1298
- background: #f5f7fa;
1299
- border: 2px solid transparent;
1300
- border-radius: 8px;
1301
- cursor: pointer;
1302
- transition: all 0.3s ease;
1303
- font-size: 15px;
1304
- font-weight: 500;
1305
- color: #666;
1306
- position: relative;
1307
- }
1308
-
1309
- .nav-tab:hover {
1310
- background: #e9ecef;
1311
- color: #333;
1312
- }
1313
-
1314
- .nav-tab.active {
1315
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
1316
- color: white;
1317
- border-color: transparent;
1318
- }
1319
-
1320
- .nav-icon {
1321
- font-size: 20px;
1322
- }
1323
-
1324
- .nav-text {
1325
- font-size: 14px;
1326
- }
1327
-
1328
- .nav-badge {
1329
- position: absolute;
1330
- top: 5px;
1331
- right: 5px;
1332
- background: #f44336;
1333
- color: white;
1334
- font-size: 11px;
1335
- padding: 2px 6px;
1336
- border-radius: 10px;
1337
- min-width: 20px;
1338
- text-align: center;
1339
- font-weight: 600;
1340
- }
1341
-
1342
- /* Page Container */
1343
- .page-container {
1344
- position: relative;
1345
- min-height: 600px;
1346
- }
1347
-
1348
- .page-content {
1349
- display: none;
1350
- }
1351
-
1352
- .page-content.active {
1353
- display: block;
1354
- height: 100%;
1355
- }
1356
-
1357
- /* Next Step Hint */
1358
- .next-step-hint {
1359
- margin-top: 30px;
1360
- padding-top: 20px;
1361
- border-top: 1px solid #e0e6ed;
1362
- text-align: center;
1363
- }
1364
-
1365
- .next-step-hint .btn {
1366
- font-size: 16px;
1367
- padding: 10px 20px;
1368
- }
1369
-
1370
- /* Decode Content */
1371
- .decode-content {
1372
- background: white;
1373
- border-radius: 10px;
1374
- padding: 30px;
1375
- box-shadow: 0 2px 10px rgba(0,0,0,0.1);
1376
- max-width: 800px;
1377
- margin: 0 auto;
1378
- }
1379
-
1380
- .decode-content h2 {
1381
- margin-bottom: 20px;
1382
- color: #333;
1383
- display: flex;
1384
- align-items: center;
1385
- flex-wrap: wrap;
1386
- gap: 10px;
1387
- }
1388
-
1389
- .search-space {
1390
- font-size: 0.65em;
1391
- color: #667eea;
1392
- font-weight: normal;
1393
- background: #f0f3ff;
1394
- padding: 4px 12px;
1395
- border-radius: 20px;
1396
- border: 1px solid #d4d9ff;
1397
- }
1398
-
1399
- .template-status {
1400
- background: #f5f7fa;
1401
- border-radius: 8px;
1402
- padding: 20px;
1403
- margin-bottom: 30px;
1404
- }
1405
-
1406
- .decode-buttons {
1407
- display: flex;
1408
- justify-content: center;
1409
- gap: 20px;
1410
- flex-wrap: wrap;
1411
- margin: 20px 0;
1412
- }
1413
-
1414
- .btn-large {
1415
- padding: 15px 40px;
1416
- font-size: 18px;
1417
- font-weight: 600;
1418
- box-shadow: 0 4px 6px rgba(102, 126, 234, 0.2);
1419
- text-transform: uppercase;
1420
- letter-spacing: 0.5px;
1421
- }
1422
-
1423
- .btn-large:hover {
1424
- transform: translateY(-2px);
1425
- box-shadow: 0 6px 12px rgba(102, 126, 234, 0.3);
1426
- }
1427
-
1428
- .random-iteration-container {
1429
- display: flex;
1430
- align-items: center;
1431
- gap: 10px;
1432
- }
1433
-
1434
- .random-count-input {
1435
- width: 100px;
1436
- padding: 12px 16px;
1437
- font-size: 16px;
1438
- font-weight: 500;
1439
- border: 2px solid #e0e6ed;
1440
- border-radius: 8px;
1441
- text-align: center;
1442
- transition: all 0.3s ease;
1443
- }
1444
-
1445
- .random-count-input:focus {
1446
- outline: none;
1447
- border-color: #667eea;
1448
- box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
1449
- }
1450
-
1451
- .random-count-input::placeholder {
1452
- color: #9ca3af;
1453
- }
1454
-
1455
- .decode-info {
1456
- margin-top: 30px;
1457
- padding: 20px;
1458
- background: #e3f2fd;
1459
- border-radius: 8px;
1460
- }
1461
-
1462
- .decode-info p {
1463
- margin: 10px 0;
1464
- color: #1565c0;
1465
- }
1466
-
1467
- /* Results Content */
1468
- .results-content {
1469
- background: white;
1470
- border-radius: 10px;
1471
- padding: 30px;
1472
- box-shadow: 0 2px 10px rgba(0,0,0,0.1);
1473
- }
1474
-
1475
- .results-content h2 {
1476
- margin-bottom: 20px;
1477
- color: #333;
1478
- }
1479
-
1480
- /* Navigation Buttons */
1481
- .navigation-buttons {
1482
- margin-top: 30px;
1483
- padding-top: 20px;
1484
- border-top: 1px solid #e0e6ed;
1485
- display: flex;
1486
- gap: 10px;
1487
- justify-content: center;
1488
- }
1489
-
1490
- /* Responsive Design */
1491
- @media (max-width: 768px) {
1492
- .main-content {
1493
- grid-template-columns: 1fr;
1494
- }
1495
-
1496
- .info-panel {
1497
- margin-top: 20px;
1498
- }
1499
-
1500
- header h1 {
1501
- font-size: 1.8em;
1502
- }
1503
-
1504
- .header-top {
1505
- flex-direction: column;
1506
- align-items: center;
1507
- gap: 15px;
1508
- }
1509
-
1510
- .header-left {
1511
- order: 2;
1512
- width: auto;
1513
- }
1514
-
1515
- .header-center {
1516
- order: 1;
1517
- margin: 0;
1518
- padding-right: 0;
1519
- }
1520
-
1521
- .header-buttons {
1522
- position: static;
1523
- margin-top: 15px;
1524
- justify-content: center;
1525
- align-items: center;
1526
- }
1527
-
1528
- .header-buttons-row {
1529
- justify-content: center;
1530
- }
1531
-
1532
- .header-buttons .btn {
1533
- font-size: 13px;
1534
- padding: 6px 12px;
1535
- }
1536
-
1537
- .editor-header {
1538
- flex-direction: column;
1539
- align-items: flex-start;
1540
- }
1541
-
1542
- .editor-header h2 {
1543
- margin-bottom: 10px;
1544
- }
1545
-
1546
- .auto-check-indicator {
1547
- font-size: 12px;
1548
- margin-bottom: 10px;
1549
- }
1550
-
1551
- .editor-actions {
1552
- width: 100%;
1553
- justify-content: space-between;
1554
- }
1555
-
1556
- /* Navigation responsive */
1557
- .page-navigation {
1558
- flex-wrap: wrap;
1559
- padding: 5px;
1560
- }
1561
-
1562
- .nav-tab {
1563
- min-width: calc(33.33% - 10px);
1564
- padding: 10px 5px;
1565
- font-size: 13px;
1566
- }
1567
-
1568
- .nav-icon {
1569
- font-size: 18px;
1570
- }
1571
-
1572
- .nav-text {
1573
- font-size: 12px;
1574
- display: none;
1575
- }
1576
-
1577
- /* Show only icons on very small screens */
1578
- @media (max-width: 480px) {
1579
- .nav-tab {
1580
- min-width: auto;
1581
- flex: 1;
1582
- padding: 12px 8px;
1583
- }
1584
- }
1585
-
1586
- .decode-buttons {
1587
- flex-direction: column;
1588
- align-items: stretch;
1589
- }
1590
-
1591
- .random-iteration-container {
1592
- width: 100%;
1593
- justify-content: space-between;
1594
- }
1595
-
1596
- .btn-large {
1597
- width: 100%;
1598
- margin-bottom: 10px;
1599
- }
1600
-
1601
- .decode-content h2 {
1602
- font-size: 1.3em;
1603
- justify-content: center;
1604
- text-align: center;
1605
- }
1606
-
1607
- .search-space {
1608
- font-size: 0.55em;
1609
- padding: 3px 10px;
1610
- }
1611
- }
1612
-
1613
- /* Responsive adjustments for template items */
1614
- @media (max-width: 350px) {
1615
- .template-item {
1616
- padding-left: 12px;
1617
- }
1618
-
1619
- .template-item.configured::before,
1620
- .template-item.not-configured::before {
1621
- position: static;
1622
- display: inline-block;
1623
- margin-right: 8px;
1624
- }
1625
-
1626
- .template-name {
1627
- justify-content: flex-start;
1628
- }
1629
-
1630
- .template-buttons {
1631
- justify-content: flex-start;
1632
- padding-left: 0;
1633
- }
1634
- }
1635
-
1636
- /* BRAIN Operators Modal Styles */
1637
- .brain-choose-section {
1638
- margin-top: 15px;
1639
- padding-top: 15px;
1640
- border-top: 1px solid #e0e6ed;
1641
- text-align: center;
1642
- }
1643
-
1644
- .search-section {
1645
- margin-bottom: 15px;
1646
- }
1647
-
1648
- .category-filter {
1649
- margin-bottom: 15px;
1650
- }
1651
-
1652
- .category-filter label {
1653
- display: block;
1654
- margin-bottom: 5px;
1655
- color: #333;
1656
- font-weight: 500;
1657
- }
1658
-
1659
- .operator-actions {
1660
- margin-bottom: 15px;
1661
- display: flex;
1662
- gap: 10px;
1663
- justify-content: flex-end;
1664
- }
1665
-
1666
- .operators-list {
1667
- max-height: 300px;
1668
- overflow-y: auto;
1669
- border: 1px solid #e0e6ed;
1670
- border-radius: 6px;
1671
- padding: 10px;
1672
- margin-bottom: 15px;
1673
- background: #fafbfc;
1674
- position: relative;
1675
- z-index: 2;
1676
- contain: layout;
1677
- }
1678
-
1679
- .operator-item {
1680
- display: flex;
1681
- align-items: center;
1682
- padding: 8px 10px;
1683
- margin-bottom: 5px;
1684
- background: white;
1685
- border-radius: 4px;
1686
- cursor: pointer;
1687
- transition: background-color 0.2s ease;
1688
- border: 1px solid #e0e6ed;
1689
- }
1690
-
1691
- .operator-item:hover {
1692
- background: #f0f3f6;
1693
- }
1694
-
1695
- .operator-item.selected {
1696
- background: #e3f2fd;
1697
- border-color: #2196f3;
1698
- }
1699
-
1700
- .operator-checkbox {
1701
- margin-right: 10px;
1702
- }
1703
-
1704
- .operator-info {
1705
- flex: 1;
1706
- }
1707
-
1708
- .operator-name {
1709
- font-family: 'Consolas', 'Monaco', monospace;
1710
- font-weight: 600;
1711
- color: #2563eb;
1712
- }
1713
-
1714
- .operator-category {
1715
- font-size: 12px;
1716
- color: #6b7280;
1717
- margin-left: 10px;
1718
- background: #f3f4f6;
1719
- padding: 2px 6px;
1720
- border-radius: 3px;
1721
- }
1722
-
1723
- .selected-operators {
1724
- background: #f8f9fa;
1725
- border: 1px solid #e0e6ed;
1726
- border-radius: 6px;
1727
- padding: 10px;
1728
- margin-top: 15px;
1729
- position: relative;
1730
- z-index: 1;
1731
- }
1732
-
1733
- .selected-items {
1734
- display: flex;
1735
- flex-wrap: wrap;
1736
- gap: 5px;
1737
- margin-top: 8px;
1738
- }
1739
-
1740
- .selected-item {
1741
- background: #667eea;
1742
- color: white;
1743
- padding: 4px 8px;
1744
- border-radius: 4px;
1745
- font-size: 12px;
1746
- font-family: 'Consolas', 'Monaco', monospace;
1747
- display: flex;
1748
- align-items: center;
1749
- gap: 5px;
1750
- }
1751
-
1752
- .selected-item .remove-btn {
1753
- background: rgba(255, 255, 255, 0.3);
1754
- border: none;
1755
- color: white;
1756
- border-radius: 50%;
1757
- width: 16px;
1758
- height: 16px;
1759
- cursor: pointer;
1760
- font-size: 10px;
1761
- display: flex;
1762
- align-items: center;
1763
- justify-content: center;
1764
- }
1765
-
1766
- .selected-item .remove-btn:hover {
1767
- background: rgba(255, 255, 255, 0.5);
1768
- }
1769
-
1770
- /* Data Fields Modal Styles */
1771
- #brainDataFieldsModal.modal {
1772
- padding: 0;
1773
- }
1774
-
1775
- #brainDataFieldsModal .modal-content {
1776
- width: calc(100vw - 40px);
1777
- max-width: calc(100vw - 40px);
1778
- height: calc(100vh - 40px);
1779
- max-height: calc(100vh - 40px);
1780
- margin: 20px auto;
1781
- overflow: hidden;
1782
- display: flex;
1783
- flex-direction: column;
1784
- position: fixed;
1785
- top: 50%;
1786
- left: 50%;
1787
- transform: translate(-50%, -50%);
1788
- }
1789
-
1790
- .data-fields-params {
1791
- background: #f8f9fa;
1792
- border-radius: 8px;
1793
- padding: 12px;
1794
- margin-bottom: 10px;
1795
- flex-shrink: 0;
1796
- }
1797
-
1798
- .params-row {
1799
- display: flex;
1800
- gap: 15px;
1801
- flex-wrap: wrap;
1802
- align-items: end;
1803
- }
1804
-
1805
- .param-group {
1806
- min-width: 120px;
1807
- flex: 1;
1808
- }
1809
-
1810
- .param-group label {
1811
- display: block;
1812
- margin-bottom: 5px;
1813
- font-weight: 500;
1814
- color: #333;
1815
- }
1816
-
1817
- .loading-message {
1818
- text-align: center;
1819
- padding: 40px;
1820
- color: #666;
1821
- font-size: 16px;
1822
- }
1823
-
1824
- .data-fields-content {
1825
- display: flex;
1826
- flex-direction: column;
1827
- gap: 10px;
1828
- flex: 1;
1829
- min-height: 0;
1830
- }
1831
-
1832
- .data-fields-controls {
1833
- display: flex;
1834
- gap: 10px;
1835
- align-items: center;
1836
- flex-wrap: wrap;
1837
- background: #f8f9fa;
1838
- padding: 10px;
1839
- border-radius: 8px;
1840
- flex-shrink: 0;
1841
- }
1842
-
1843
- .filter-label {
1844
- font-weight: 600;
1845
- color: #333;
1846
- font-size: 14px;
1847
- display: flex;
1848
- align-items: center;
1849
- }
1850
-
1851
- .filter-label span {
1852
- white-space: nowrap;
1853
- }
1854
-
1855
- .filter-options {
1856
- display: flex;
1857
- gap: 20px;
1858
- flex: 1;
1859
- }
1860
-
1861
- .filter-options label {
1862
- display: flex;
1863
- align-items: center;
1864
- gap: 5px;
1865
- cursor: pointer;
1866
- font-size: 14px;
1867
- color: #555;
1868
- }
1869
-
1870
- .filter-options input[type="checkbox"] {
1871
- cursor: pointer;
1872
- }
1873
-
1874
- .filter-actions {
1875
- display: flex;
1876
- gap: 10px;
1877
- }
1878
-
1879
- .data-fields-stats {
1880
- font-size: 13px;
1881
- color: #666;
1882
- padding: 8px;
1883
- background: #f8f9fa;
1884
- border-radius: 5px;
1885
- text-align: center;
1886
- font-weight: 500;
1887
- flex-shrink: 0;
1888
- }
1889
-
1890
- .data-fields-stats span {
1891
- margin: 0 10px;
1892
- }
1893
-
1894
- .data-fields-table-container {
1895
- flex: 1;
1896
- overflow-y: auto;
1897
- overflow-x: auto;
1898
- border: 1px solid #e0e6ed;
1899
- border-radius: 8px;
1900
- background: white;
1901
- position: relative;
1902
- min-height: 0;
1903
- max-height: calc(100vh - 400px);
1904
- }
1905
-
1906
- .data-fields-table {
1907
- width: 100%;
1908
- min-width: 900px;
1909
- border-collapse: collapse;
1910
- font-size: 14px;
1911
- table-layout: fixed;
1912
- }
1913
-
1914
- .data-fields-table thead {
1915
- position: sticky;
1916
- top: 0;
1917
- background: #f8f9fa;
1918
- z-index: 100;
1919
- box-shadow: 0 2px 4px rgba(0,0,0,0.1);
1920
- }
1921
-
1922
- .data-fields-table thead tr {
1923
- background: #f8f9fa;
1924
- }
1925
-
1926
- .data-fields-table th {
1927
- padding: 10px 8px;
1928
- text-align: left;
1929
- font-weight: 600;
1930
- color: #333;
1931
- border-bottom: 2px solid #e0e6ed;
1932
- background: #f8f9fa;
1933
- font-size: 13px;
1934
- }
1935
-
1936
- .data-fields-table th:first-child {
1937
- text-align: center;
1938
- }
1939
-
1940
- .data-fields-table .header-row th {
1941
- position: relative;
1942
- padding-right: 30px;
1943
- }
1944
-
1945
- .sort-btn {
1946
- position: absolute;
1947
- right: 5px;
1948
- top: 50%;
1949
- transform: translateY(-50%);
1950
- background: none;
1951
- border: none;
1952
- cursor: pointer;
1953
- font-size: 14px;
1954
- color: #666;
1955
- padding: 2px 5px;
1956
- border-radius: 3px;
1957
- transition: all 0.2s ease;
1958
- }
1959
-
1960
- .sort-btn:hover {
1961
- background: #e0e6ed;
1962
- color: #333;
1963
- }
1964
-
1965
- .sort-btn.asc::after {
1966
- content: '↑';
1967
- }
1968
-
1969
- .sort-btn.desc::after {
1970
- content: '↓';
1971
- }
1972
-
1973
- .filter-row th {
1974
- padding: 6px 5px;
1975
- background: #f0f3f6;
1976
- border-bottom: 1px solid #e0e6ed;
1977
- }
1978
-
1979
- .column-filter {
1980
- width: 100%;
1981
- padding: 4px 6px;
1982
- border: 1px solid #ddd;
1983
- border-radius: 4px;
1984
- font-size: 12px;
1985
- background: white;
1986
- }
1987
-
1988
- .column-filter:focus {
1989
- outline: none;
1990
- border-color: #667eea;
1991
- box-shadow: 0 0 0 2px rgba(102, 126, 234, 0.1);
1992
- }
1993
-
1994
- .column-filter.active {
1995
- background: #e3f2fd;
1996
- border-color: #2196f3;
1997
- }
1998
-
1999
- .range-filter {
2000
- display: flex;
2001
- align-items: center;
2002
- gap: 5px;
2003
- }
2004
-
2005
- .column-filter-min,
2006
- .column-filter-max {
2007
- width: 48%;
2008
- padding: 4px 4px;
2009
- border: 1px solid #ddd;
2010
- border-radius: 4px;
2011
- font-size: 11px;
2012
- background: white;
2013
- }
2014
-
2015
- .column-filter-min:focus,
2016
- .column-filter-max:focus {
2017
- outline: none;
2018
- border-color: #667eea;
2019
- box-shadow: 0 0 0 2px rgba(102, 126, 234, 0.1);
2020
- }
2021
-
2022
- .data-fields-table tbody tr {
2023
- transition: background-color 0.2s ease;
2024
- cursor: pointer;
2025
- }
2026
-
2027
- .data-fields-table tbody tr:hover {
2028
- background: #f8f9fa;
2029
- }
2030
-
2031
- .data-fields-table tbody tr.selected {
2032
- background: #e3f2fd;
2033
- }
2034
-
2035
- .data-fields-table td {
2036
- padding: 8px;
2037
- border-bottom: 1px solid #f0f3f6;
2038
- vertical-align: top;
2039
- }
2040
-
2041
- .data-fields-table td:first-child {
2042
- text-align: center;
2043
- }
2044
-
2045
- .data-field-checkbox {
2046
- cursor: pointer;
2047
- transform: scale(1.1);
2048
- }
2049
-
2050
- .data-field-id {
2051
- font-weight: 600;
2052
- color: #1976d2;
2053
- font-family: 'Consolas', 'Monaco', monospace;
2054
- font-size: 13px;
2055
- }
2056
-
2057
- .data-field-description {
2058
- color: #333;
2059
- font-size: 13px;
2060
- line-height: 1.4;
2061
- }
2062
-
2063
- .data-field-type {
2064
- font-family: 'Consolas', 'Monaco', monospace;
2065
- font-size: 12px;
2066
- color: #666;
2067
- background: #f0f3f6;
2068
- padding: 2px 6px;
2069
- border-radius: 3px;
2070
- }
2071
-
2072
- .data-field-coverage {
2073
- font-weight: 500;
2074
- color: #059862;
2075
- }
2076
-
2077
- .data-field-count {
2078
- color: #666;
2079
- font-size: 13px;
2080
- }
2081
-
2082
- .selected-data-fields {
2083
- margin-top: 10px;
2084
- padding-top: 10px;
2085
- border-top: 1px solid #e0e6ed;
2086
- flex-shrink: 0;
2087
- max-height: 100px;
2088
- overflow-y: auto;
2089
- }
2090
-
2091
- .selected-data-fields strong {
2092
- display: block;
2093
- margin-bottom: 10px;
2094
- color: #333;
2095
- }
2096
-
2097
- /* Responsive adjustments for data fields modal */
2098
- @media (max-width: 768px) {
2099
- #brainDataFieldsModal .modal-content {
2100
- width: calc(100vw - 20px);
2101
- height: calc(100vh - 20px);
2102
- margin: 10px auto;
2103
- }
2104
-
2105
- .params-row {
2106
- flex-direction: column;
2107
- gap: 10px;
2108
- }
2109
-
2110
- .param-group {
2111
- min-width: auto;
2112
- width: 100%;
2113
- }
2114
-
2115
- .data-fields-controls {
2116
- flex-direction: column;
2117
- gap: 10px;
2118
- }
2119
-
2120
- .filter-options {
2121
- flex-direction: column;
2122
- gap: 10px;
2123
- width: 100%;
2124
- }
2125
-
2126
- .filter-actions {
2127
- width: 100%;
2128
- justify-content: center;
2129
- }
2130
-
2131
- .data-fields-table-container {
2132
- max-height: calc(100vh - 350px);
2133
- overflow-y: auto;
2134
- overflow-x: auto;
2135
- }
2136
-
2137
- .data-fields-table {
2138
- font-size: 12px;
2139
- min-width: 600px;
2140
- }
2141
-
2142
- .data-fields-table th,
2143
- .data-fields-table td {
2144
- padding: 8px 5px;
2145
- }
2146
-
2147
- .data-field-id {
2148
- font-size: 12px;
2149
- }
2150
-
2151
- .data-field-description {
2152
- font-size: 12px;
2153
- }
2154
-
2155
- .data-field-type,
2156
- .data-field-coverage,
2157
- .data-field-count {
2158
- font-size: 11px;
2159
- }
2160
- }
2161
-
2162
- /* Progress Bar Styles */
2163
- .test-progress {
2164
- margin: 20px 0;
2165
- }
2166
-
2167
- .progress-bar {
2168
- width: 100%;
2169
- height: 20px;
2170
- background-color: #f0f0f0;
2171
- border-radius: 10px;
2172
- overflow: hidden;
2173
- margin-bottom: 10px;
2174
- }
2175
-
2176
- .progress-bar-fill {
2177
- height: 100%;
2178
- background-color: #28a745;
2179
- transition: width 0.3s ease;
2180
- }
2181
-
2182
- .test-results {
2183
- padding: 20px 0;
2184
- }
2185
-
2186
- .test-result-item {
2187
- margin-bottom: 15px;
2188
- padding: 15px;
2189
- border: 1px solid #e0e0e0;
2190
- border-radius: 5px;
2191
- background-color: #f9f9f9;
2192
- }
2193
-
2194
- .test-result-item.success {
2195
- border-color: #28a745;
2196
- background-color: #f0fff4;
2197
- }
2198
-
2199
- .test-result-item.error {
2200
- border-color: #dc3545;
2201
- background-color: #fff5f5;
2202
- }
2203
-
2204
- .test-result-item.running {
2205
- border-color: #ffc107;
2206
- background-color: #fffbf0;
2207
- }
2208
-
2209
- .test-result-expression {
2210
- font-family: 'Courier New', monospace;
2211
- font-size: 14px;
2212
- margin-bottom: 10px;
2213
- word-break: break-all;
2214
- }
2215
-
2216
- .test-result-status {
2217
- font-weight: bold;
2218
- margin-bottom: 5px;
2219
- }
2220
-
2221
- .test-result-message {
2222
- color: #666;
2223
- font-size: 13px;
2224
- }
2225
-
2226
- .test-summary {
2227
- margin-bottom: 20px;
2228
- padding: 15px;
2229
- background-color: #f0f0f0;
2230
- border-radius: 5px;
2231
- }
2232
-
2233
- .test-summary-stats {
2234
- display: flex;
2235
- gap: 20px;
2236
- margin-top: 10px;
2237
- }
2238
-
2239
- .test-summary-stat {
2240
- flex: 1;
2241
- text-align: center;
2242
- }
2243
-
2244
- .test-summary-stat-value {
2245
- font-size: 24px;
2246
- font-weight: bold;
2247
- }
2248
-
2249
- .test-summary-stat-label {
2250
- font-size: 14px;
2251
- color: #666;
2252
- }
2253
-
2254
- /* Tooltip styles */
2255
- .tooltip {
2256
- position: relative;
2257
- display: inline-block;
2258
- }
2259
-
2260
- /* Paper Analysis Styles */
2261
- .paper-analysis-container {
2262
- max-width: 1200px;
2263
- margin: 0 auto;
2264
- padding: 20px;
2265
- }
2266
-
2267
- .api-key-section,
2268
- .upload-section,
2269
- .analysis-options,
2270
- .results-section {
2271
- background: #fff;
2272
- border-radius: 8px;
2273
- padding: 20px;
2274
- margin-bottom: 20px;
2275
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
2276
- }
2277
-
2278
- /* File Upload Styles */
2279
- .file-upload-container {
2280
- border: 2px dashed #ccc;
2281
- border-radius: 8px;
2282
- padding: 20px;
2283
- text-align: center;
2284
- cursor: pointer;
2285
- transition: border-color 0.3s ease;
2286
- }
2287
-
2288
- .file-upload-container:hover,
2289
- .file-upload-container.drag-over {
2290
- border-color: #007bff;
2291
- }
2292
-
2293
- .file-input {
2294
- display: none;
2295
- }
2296
-
2297
- .file-label {
2298
- display: block;
2299
- cursor: pointer;
2300
- }
2301
-
2302
- .upload-icon {
2303
- font-size: 48px;
2304
- margin-bottom: 10px;
2305
- }
2306
-
2307
- .upload-text {
2308
- font-size: 16px;
2309
- font-weight: 500;
2310
- }
2311
-
2312
- .file-types {
2313
- display: block;
2314
- font-size: 12px;
2315
- color: #6c757d;
2316
- margin-top: 5px;
2317
- }
2318
-
2319
- .file-info {
2320
- margin-top: 15px;
2321
- padding: 10px;
2322
- background: #f8f9fa;
2323
- border-radius: 4px;
2324
- }
2325
-
2326
- /* Analysis Options */
2327
- .options-grid {
2328
- display: grid;
2329
- grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
2330
- gap: 15px;
2331
- margin-bottom: 20px;
2332
- }
2333
-
2334
- .option-checkbox {
2335
- display: flex;
2336
- align-items: center;
2337
- gap: 8px;
2338
- padding: 10px;
2339
- background: #f8f9fa;
2340
- border-radius: 4px;
2341
- cursor: pointer;
2342
- }
2343
-
2344
- /* Results Section */
2345
- .results-tabs {
2346
- display: flex;
2347
- gap: 10px;
2348
- margin-bottom: 20px;
2349
- border-bottom: 1px solid #dee2e6;
2350
- padding-bottom: 10px;
2351
- }
2352
-
2353
- .tab-btn {
2354
- padding: 8px 16px;
2355
- border: none;
2356
- background: none;
2357
- cursor: pointer;
2358
- border-radius: 4px 4px 0 0;
2359
- transition: all 0.3s ease;
2360
- }
2361
-
2362
- .tab-btn.active {
2363
- background: #007bff;
2364
- color: white;
2365
- }
2366
-
2367
- .tab-pane {
2368
- display: none;
2369
- }
2370
-
2371
- .tab-pane.active {
2372
- display: block;
2373
- }
2374
-
2375
- /* Keywords Display */
2376
- .keyword-item {
2377
- display: flex;
2378
- justify-content: space-between;
2379
- align-items: center;
2380
- padding: 10px;
2381
- background: #f8f9fa;
2382
- border-radius: 4px;
2383
- margin-bottom: 8px;
2384
- }
2385
-
2386
- .keyword-score {
2387
- background: #007bff;
2388
- color: white;
2389
- padding: 4px 8px;
2390
- border-radius: 4px;
2391
- font-size: 0.9em;
2392
- }
2393
-
2394
- /* Summary Display */
2395
- .summary-text {
2396
- line-height: 1.6;
2397
- padding: 15px;
2398
- background: #f8f9fa;
2399
- border-radius: 4px;
2400
- white-space: pre-wrap;
2401
- }
2402
-
2403
- /* Related Works Display */
2404
- .related-work-item {
2405
- padding: 15px;
2406
- background: #f8f9fa;
2407
- border-radius: 4px;
2408
- margin-bottom: 15px;
2409
- }
2410
-
2411
- .related-work-item h3 {
2412
- margin-bottom: 5px;
2413
- }
2414
-
2415
- .formula-item {
2416
- background: #f8f9fa;
2417
- border: 1px solid #e9ecef;
2418
- border-radius: 8px;
2419
- padding: 20px;
2420
- margin-bottom: 15px;
2421
- transition: all 0.3s ease;
2422
- }
2423
-
2424
- .formula-item:hover {
2425
- box-shadow: 0 4px 12px rgba(0,0,0,0.1);
2426
- transform: translateY(-2px);
2427
- }
2428
-
2429
- .formula-header {
2430
- display: flex;
2431
- justify-content: space-between;
2432
- align-items: center;
2433
- margin-bottom: 15px;
2434
- flex-wrap: wrap;
2435
- gap: 10px;
2436
- }
2437
-
2438
- .formula-number {
2439
- font-weight: bold;
2440
- color: #6c757d;
2441
- font-size: 14px;
2442
- }
2443
-
2444
- .formula-type {
2445
- padding: 4px 12px;
2446
- border-radius: 20px;
2447
- font-size: 12px;
2448
- font-weight: 600;
2449
- text-transform: uppercase;
2450
- letter-spacing: 0.5px;
2451
- }
2452
-
2453
- .formula-type.definition {
2454
- background: #e3f2fd;
2455
- color: #1976d2;
2456
- }
2457
-
2458
- .formula-type.theorem {
2459
- background: #f3e5f5;
2460
- color: #7b1fa2;
2461
- }
2462
-
2463
- .formula-type.lemma {
2464
- background: #e8f5e9;
2465
- color: #388e3c;
2466
- }
2467
-
2468
- .formula-type.equation {
2469
- background: #fff3e0;
2470
- color: #f57c00;
2471
- }
2472
-
2473
- .formula-type.inequality {
2474
- background: #fce4ec;
2475
- color: #c2185b;
2476
- }
2477
-
2478
- .formula-type.identity {
2479
- background: #e0f2f1;
2480
- color: #00796b;
2481
- }
2482
-
2483
- .formula-type.other {
2484
- background: #f5f5f5;
2485
- color: #616161;
2486
- }
2487
-
2488
- .formula-chinese {
2489
- font-size: 14px;
2490
- color: #495057;
2491
- background: #fff3cd;
2492
- padding: 10px;
2493
- border-radius: 5px;
2494
- border-left: 3px solid #ffc107;
2495
- line-height: 1.4;
2496
- }
2497
-
2498
- .formula-chinese strong {
2499
- color: #856404;
2500
- }
2501
-
2502
- .formula-expression {
2503
- background: white;
2504
- padding: 20px;
2505
- border-radius: 6px;
2506
- margin-bottom: 15px;
2507
- text-align: center;
2508
- font-size: 18px;
2509
- overflow-x: auto;
2510
- box-shadow: inset 0 1px 3px rgba(0,0,0,0.05);
2511
- }
2512
-
2513
- .formula-description {
2514
- font-size: 15px;
2515
- color: #495057;
2516
- margin-bottom: 10px;
2517
- font-weight: 500;
2518
- }
2519
-
2520
- .formula-variables {
2521
- font-size: 14px;
2522
- color: #6c757d;
2523
- margin-bottom: 10px;
2524
- padding: 10px;
2525
- background: #f8f9fa;
2526
- border-radius: 5px;
2527
- border-left: 3px solid #007bff;
2528
- }
2529
-
2530
- .variables-list {
2531
- margin-top: 8px;
2532
- }
2533
-
2534
- .variables-tabs {
2535
- display: flex;
2536
- gap: 5px;
2537
- margin-bottom: 10px;
2538
- }
2539
-
2540
- .var-tab-btn {
2541
- padding: 5px 12px;
2542
- border: 1px solid #007bff;
2543
- background: white;
2544
- color: #007bff;
2545
- border-radius: 4px;
2546
- cursor: pointer;
2547
- font-size: 12px;
2548
- transition: all 0.3s ease;
2549
- }
2550
-
2551
- .var-tab-btn:hover {
2552
- background: #e3f2fd;
2553
- }
2554
-
2555
- .var-tab-btn.active {
2556
- background: #007bff;
2557
- color: white;
2558
- }
2559
-
2560
- .variables-content {
2561
- position: relative;
2562
- }
2563
-
2564
- .variables-list {
2565
- margin-top: 0;
2566
- }
2567
-
2568
- .variables-list.chinese-vars,
2569
- .variables-list.english-vars {
2570
- display: none;
2571
- }
2572
-
2573
- .variables-list.chinese-vars.active,
2574
- .variables-list.english-vars.active {
2575
- display: block;
2576
- }
2577
-
2578
- .variable-item {
2579
- margin-bottom: 5px;
2580
- padding: 5px 0;
2581
- border-bottom: 1px solid #e9ecef;
2582
- display: flex;
2583
- align-items: center;
2584
- gap: 15px;
2585
- }
2586
-
2587
- .variable-item:last-child {
2588
- border-bottom: none;
2589
- margin-bottom: 0;
2590
- }
2591
-
2592
- .variable-symbol {
2593
- min-width: 80px;
2594
- font-size: 16px;
2595
- display: inline-block;
2596
- }
2597
-
2598
- .variable-separator {
2599
- color: #6c757d;
2600
- margin: 0 5px;
2601
- font-weight: 500;
2602
- }
2603
-
2604
- .variable-desc {
2605
- flex: 1;
2606
- color: #495057;
2607
- font-size: 14px;
2608
- }
2609
-
2610
- .variable-item code {
2611
- background: #e3f2fd;
2612
- padding: 2px 6px;
2613
- border-radius: 3px;
2614
- font-family: 'Consolas', 'Monaco', monospace;
2615
- font-weight: bold;
2616
- color: #1976d2;
2617
- margin-right: 8px;
2618
- }
2619
-
2620
- .formula-context {
2621
- font-size: 14px;
2622
- color: #6c757d;
2623
- margin-bottom: 10px;
2624
- }
2625
-
2626
- .similarity {
2627
- color: #6c757d;
2628
- font-size: 0.9em;
2629
- margin-top: 5px;
2630
- }
2631
-
2632
- /* Loading Overlay */
2633
- .loading-overlay {
2634
- position: fixed;
2635
- top: 0;
2636
- left: 0;
2637
- right: 0;
2638
- bottom: 0;
2639
- background: rgba(255, 255, 255, 0.9);
2640
- display: flex;
2641
- flex-direction: column;
2642
- justify-content: center;
2643
- align-items: center;
2644
- z-index: 1000;
2645
- }
2646
-
2647
- .loading-spinner {
2648
- width: 50px;
2649
- height: 50px;
2650
- border: 4px solid #f3f3f3;
2651
- border-top: 4px solid #007bff;
2652
- border-radius: 50%;
2653
- animation: spin 1s linear infinite;
2654
- }
2655
-
2656
- .loading-message {
2657
- margin-top: 15px;
2658
- font-size: 1.1em;
2659
- color: #333;
2660
- }
2661
-
2662
- @keyframes spin {
2663
- 0% { transform: rotate(0deg); }
2664
- 100% { transform: rotate(360deg); }
2665
- }
2666
-
2667
- /* Notifications */
2668
- .notification {
2669
- position: fixed;
2670
- top: 20px;
2671
- right: 20px;
2672
- padding: 15px 25px;
2673
- border-radius: 4px;
2674
- color: white;
2675
- z-index: 1000;
2676
- animation: slideIn 0.3s ease-out;
2677
- }
2678
-
2679
- .notification.success {
2680
- background-color: #28a745;
2681
- }
2682
-
2683
- .notification.error {
2684
- background-color: #dc3545;
2685
- }
2686
-
2687
- .notification.warning {
2688
- background-color: #ffc107;
2689
- color: #212529;
2690
- }
2691
-
2692
- @keyframes slideIn {
2693
- from { transform: translateY(100px); opacity: 0; }
2694
- to { transform: translateY(0); opacity: 1; }
2695
- }
2696
-
2697
- @keyframes fadeOut {
2698
- from { opacity: 1; }
2699
- to { opacity: 0; }
2700
- }
2701
-
2702
- /* Export Section */
2703
- .export-section {
2704
- margin-top: 20px;
2705
- padding-top: 20px;
2706
- border-top: 1px solid #dee2e6;
2707
- text-align: right;
2708
- }
2709
-
2710
- /* Unified Templates Section */
2711
- .templates-section {
2712
- background: white;
2713
- border-radius: 10px;
2714
- padding: 20px;
2715
- margin-bottom: 20px;
2716
- box-shadow: 0 2px 10px rgba(0,0,0,0.1);
2717
- }
2718
-
2719
- .templates-header {
2720
- display: flex;
2721
- justify-content: space-between;
2722
- align-items: center;
2723
- margin-bottom: 15px;
2724
- flex-wrap: wrap;
2725
- gap: 10px;
2726
- }
2727
-
2728
- .templates-header h3 {
2729
- color: #333;
2730
- font-size: 1.2em;
2731
- margin: 0;
2732
- }
2733
-
2734
- .template-actions {
2735
- display: flex;
2736
- gap: 10px;
2737
- align-items: center;
2738
- }
2739
-
2740
- #toggleTemplateView {
2741
- background-color: #4a5568;
2742
- border-color: #4a5568;
2743
- }
2744
-
2745
- #toggleTemplateView:hover {
2746
- background-color: #2d3748;
2747
- border-color: #2d3748;
2748
- }
2749
-
2750
- /* Template buttons container */
2751
- .all-template-buttons {
2752
- display: flex;
2753
- flex-wrap: wrap;
2754
- gap: 10px;
2755
- margin-top: 15px;
2756
- }
2757
-
2758
- #exampleTemplateButtons,
2759
- #customTemplateButtons {
2760
- display: flex;
2761
- flex-wrap: wrap;
2762
- gap: 10px;
2763
- width: 100%;
2764
- }
2765
-
2766
- /* Base template button styles */
2767
- .btn-template {
2768
- padding: 8px 16px;
2769
- border-radius: 6px;
2770
- font-size: 14px;
2771
- font-weight: 500;
2772
- cursor: pointer;
2773
- transition: all 0.3s ease;
2774
- text-decoration: none;
2775
- display: inline-block;
2776
- border: 1px solid;
2777
- position: relative;
2778
- }
2779
-
2780
- /* Example template styles - purple theme */
2781
- .btn-template-example {
2782
- background: #f3f0ff;
2783
- color: #6b46c1;
2784
- border-color: #d8b4fe;
2785
- }
2786
-
2787
- .btn-template-example:hover {
2788
- background: #7c3aed;
2789
- color: white;
2790
- border-color: #7c3aed;
2791
- transform: translateY(-1px);
2792
- box-shadow: 0 2px 5px rgba(124, 58, 237, 0.3);
2793
- }
2794
-
2795
- /* Custom template styles - blue theme */
2796
- .btn-template-custom {
2797
- background: #eff6ff;
2798
- color: #1e40af;
2799
- border-color: #bfdbfe;
2800
- padding-right: 35px;
2801
- }
2802
-
2803
- .btn-template-custom:hover {
2804
- background: #2563eb;
2805
- color: white;
2806
- border-color: #2563eb;
2807
- transform: translateY(-1px);
2808
- box-shadow: 0 2px 5px rgba(37, 99, 235, 0.3);
2809
- }
2810
-
2811
- /* Delete button for custom templates */
2812
- .btn-template-custom .delete-btn {
2813
- position: absolute;
2814
- right: 8px;
2815
- top: 50%;
2816
- transform: translateY(-50%);
2817
- background: none;
2818
- border: none;
2819
- color: #dc3545;
2820
- cursor: pointer;
2821
- font-size: 16px;
2822
- padding: 2px 6px;
2823
- opacity: 0;
2824
- transition: opacity 0.2s ease;
2825
- }
2826
-
2827
- .btn-template-custom:hover .delete-btn {
2828
- opacity: 1;
2829
- }
2830
-
2831
- .btn-template-custom .delete-btn:hover {
2832
- color: #c82333;
2833
- background: rgba(220, 53, 69, 0.1);
2834
- border-radius: 3px;
2835
- }
2836
-
2837
- .custom-template-info {
2838
- text-align: center;
2839
- color: #6c757d;
2840
- font-style: italic;
2841
- margin-top: 10px;
2842
- }
2843
-
2844
- /* Operator Description Enhancements */
2845
- .description-indicator {
2846
- font-size: 12px;
2847
- color: #2196F3;
2848
- margin-left: 5px;
2849
- opacity: 0.7;
2850
- transition: opacity 0.2s ease;
2851
- }
2852
-
2853
- .operator-item:hover .description-indicator {
2854
- opacity: 1;
2855
- }
2856
-
2857
- .operator-item[title] {
2858
- position: relative;
2859
- }
2860
-
2861
- /* Custom tooltip implementation - will be positioned dynamically */
2862
- .custom-tooltip {
2863
- position: fixed;
2864
- padding: 8px 12px;
2865
- background: #2c3e50;
2866
- color: white;
2867
- border-radius: 6px;
2868
- font-size: 13px;
2869
- line-height: 1.4;
2870
- white-space: pre-wrap;
2871
- max-width: 300px;
2872
- z-index: 10000;
2873
- box-shadow: 0 2px 8px rgba(0,0,0,0.3);
2874
- pointer-events: none;
2875
- opacity: 0;
2876
- transition: opacity 0.2s ease;
2877
- word-wrap: break-word;
2878
- }
2879
-
2880
- @keyframes tooltipFadeIn {
2881
- from {
2882
- opacity: 0;
2883
- transform: translateX(-5px);
2884
- }
2885
- to {
2886
- opacity: 1;
2887
- transform: translateX(0);
2888
- }
2889
- }
2890
-
2891
- /* Ensure tooltips don't get cut off in modal while maintaining scroll */
2892
- .operators-list {
2893
- overflow-y: auto;
2894
- overflow-x: visible;
2895
- }
2896
-
2897
- .operator-item {
2898
- overflow: visible;
2899
- }
2900
-
2901
- /* Brain Operators Modal specific layout fixes */
2902
- #brainOperatorsModal .modal-body {
2903
- display: flex;
2904
- flex-direction: column;
2905
- gap: 15px;
2906
- position: relative;
2907
- min-height: 400px;
2908
- }
2909
-
2910
- #brainOperatorsModal .search-section,
2911
- #brainOperatorsModal .category-filter,
2912
- #brainOperatorsModal .operator-actions {
2913
- flex-shrink: 0;
2914
- order: 1;
2915
- }
2916
-
2917
- #brainOperatorsModal .operators-list {
2918
- flex: 1;
2919
- order: 2;
2920
- min-height: 250px;
2921
- }
2922
-
2923
- #brainOperatorsModal .selected-operators {
2924
- flex-shrink: 0;
2925
- order: 3;
2926
- margin-top: auto;
2927
- position: relative;
2928
- z-index: 1;
2929
- }
2930
-
2931
- /* Simulator Options Modal */
2932
- .simulator-options {
2933
- display: grid;
2934
- grid-template-columns: 1fr 1fr;
2935
- gap: 20px;
2936
- margin: 20px 0;
2937
- }
2938
-
2939
- .simulator-option {
2940
- background: #f8f9fa;
2941
- border: 2px solid #e9ecef;
2942
- border-radius: 8px;
2943
- padding: 20px;
2944
- cursor: pointer;
2945
- transition: all 0.3s ease;
2946
- position: relative;
2947
- overflow: hidden;
2948
- }
2949
-
2950
- .simulator-option:hover {
2951
- border-color: #007bff;
2952
- background: #f0f8ff;
2953
- transform: translateY(-2px);
2954
- box-shadow: 0 4px 12px rgba(0, 123, 255, 0.15);
2955
- }
2956
-
2957
- .simulator-option::before {
2958
- content: '';
2959
- position: absolute;
2960
- top: 0;
2961
- left: 0;
2962
- width: 100%;
2963
- height: 4px;
2964
- background: linear-gradient(90deg, #007bff, #6610f2);
2965
- opacity: 0;
2966
- transition: opacity 0.3s ease;
2967
- }
2968
-
2969
- .simulator-option:hover::before {
2970
- opacity: 1;
2971
- }
2972
-
2973
- .option-icon {
2974
- font-size: 2.5em;
2975
- text-align: center;
2976
- margin-bottom: 15px;
2977
- }
2978
-
2979
- .option-content h4 {
2980
- color: #333;
2981
- margin-bottom: 10px;
2982
- font-size: 1.2em;
2983
- font-weight: 600;
2984
- }
2985
-
2986
- .option-content p {
2987
- color: #666;
2988
- margin-bottom: 15px;
2989
- line-height: 1.5;
2990
- }
2991
-
2992
- .option-content ul {
2993
- list-style: none;
2994
- padding: 0;
2995
- }
2996
-
2997
- .option-content li {
2998
- color: #555;
2999
- margin-bottom: 5px;
3000
- position: relative;
3001
- padding-left: 20px;
3002
- font-size: 0.9em;
3003
- }
3004
-
3005
- .option-content li::before {
3006
- content: '✓';
3007
- position: absolute;
3008
- left: 0;
3009
- color: #28a745;
3010
- font-weight: bold;
3011
- }
3012
-
3013
- /* Responsive design for simulator options */
3014
- @media (max-width: 768px) {
3015
- .simulator-options {
3016
- grid-template-columns: 1fr;
3017
- gap: 15px;
3018
- }
3019
-
3020
- .simulator-option {
3021
- padding: 15px;
3022
- }
3023
-
3024
- .option-icon {
3025
- font-size: 2em;
3026
- margin-bottom: 10px;
3027
- }
3028
-
3029
- .option-content h4 {
3030
- font-size: 1.1em;
3031
- }
3032
- }
3033
-
3034
- /* Markdown formatting styles for Inspiration House */
3035
- .reason-text {
3036
- line-height: 1.6;
3037
- color: #333;
3038
- }
3039
-
3040
- .reason-text strong {
3041
- font-weight: 600;
3042
- color: #2c3e50;
3043
- }
3044
-
3045
- .reason-text em {
3046
- font-style: italic;
3047
- color: #7f8c8d;
3048
- }
3049
-
3050
- .reason-text code {
3051
- background-color: #f8f9fa;
3052
- padding: 2px 6px;
3053
- border-radius: 3px;
3054
- font-family: 'Consolas', 'Monaco', 'Courier New', monospace;
3055
- font-size: 0.9em;
3056
- color: #e74c3c;
3057
- border: 1px solid #e9ecef;
3058
- }
3059
-
3060
- .reason-text h2 {
3061
- font-size: 1.3em;
3062
- font-weight: 600;
3063
- color: #2c3e50;
3064
- margin: 15px 0 8px 0;
3065
- border-bottom: 2px solid #3498db;
3066
- padding-bottom: 5px;
3067
- }
3068
-
3069
- .reason-text h3 {
3070
- font-size: 1.2em;
3071
- font-weight: 600;
3072
- color: #34495e;
3073
- margin: 12px 0 6px 0;
3074
- }
3075
-
3076
- .reason-text h4 {
3077
- font-size: 1.1em;
3078
- font-weight: 600;
3079
- color: #34495e;
3080
- margin: 10px 0 5px 0;
3081
- }
3082
-
3083
- .reason-text br {
3084
- margin-bottom: 8px;
3085
- }
3086
-
3087
- .reason-text ul {
3088
- margin: 8px 0;
3089
- padding-left: 20px;
3090
- }
3091
-
3092
- .reason-text ol {
3093
- margin: 8px 0;
3094
- padding-left: 20px;
3095
- }
3096
-
3097
- .reason-text li {
3098
- margin: 4px 0;
3099
- line-height: 1.5;
3100
- }
3101
-
3102
- /* Bullet points for lists */
3103
- .reason-text li:before {
3104
- content: "•";
3105
- color: #3498db;
3106
- font-weight: bold;
3107
- display: inline-block;
3108
- width: 1em;
3109
- margin-left: -1em;
3110
- }
3111
-
3112
- .reason-text ol li:before {
3113
- content: counter(list-item) ".";
3114
- color: #3498db;
3115
- font-weight: bold;
3116
- }
3117
-
3118
- /* Blockquote styling */
3119
- .reason-text blockquote {
3120
- border-left: 4px solid #3498db;
3121
- margin: 10px 0;
3122
- padding: 10px 15px;
3123
- background-color: #f8f9fa;
3124
- border-radius: 0 4px 4px 0;
3125
- font-style: italic;
3126
- color: #555;
3127
- }