cnhkmcp 2.1.3__py3-none-any.whl → 2.1.5__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 (194) hide show
  1. cnhkmcp/__init__.py +126 -0
  2. 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 +38 -0
  3. 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
  4. 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 +6 -0
  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/get_knowledgeBase_tool/ace_lib.py +1514 -0
  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/get_knowledgeBase_tool/fetch_all_datasets.py +157 -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/get_knowledgeBase_tool/fetch_all_documentation.py +132 -0
  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/fetch_all_operators.py +99 -0
  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/helpful_functions.py +180 -0
  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/icon.ico +0 -0
  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/icon.png +0 -0
  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/knowledge/001_10_Steps_to_Start_on_BRAIN_documentation.json +14 -0
  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/knowledge/001_Intermediate_Pack_-_Improve_your_Alpha_2_2_documentation.json +174 -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/knowledge/001_Intermediate_Pack_-_Understand_Results_1_2_documentation.json +167 -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/001_Introduction_to_Alphas_documentation.json +145 -0
  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/knowledge/001_Introduction_to_BRAIN_Expression_Language_documentation.json +107 -0
  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/knowledge/001_WorldQuant_Challenge_documentation.json +56 -0
  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/knowledge/001__Read_this_First_-_Starter_Pack_documentation.json +404 -0
  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/knowledge/002_How_to_choose_the_Simulation_Settings_documentation.json +268 -0
  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/knowledge/002_Simulate_your_first_Alpha_documentation.json +88 -0
  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/knowledge/002__Alpha_Examples_for_Beginners_documentation.json +254 -0
  22. 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/002__Alpha_Examples_for_Bronze_Users_documentation.json +114 -0
  23. 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/002__Alpha_Examples_for_Silver_Users_documentation.json +79 -0
  24. 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/002__How_BRAIN_works_documentation.json +184 -0
  25. 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/003_Clear_these_tests_before_submitting_an_Alpha_documentation.json +388 -0
  26. 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/003_Parameters_in_the_Simulation_results_documentation.json +243 -0
  27. 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/004_Group_Data_Fields_documentation.json +69 -0
  28. 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/004_How_to_use_the_Data_Explorer_documentation.json +142 -0
  29. 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/004_Model77_dataset_documentation.json +14 -0
  30. 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/004_Sentiment1_dataset_documentation.json +14 -0
  31. 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/004_Understanding_Data_in_BRAIN_Key_Concepts_and_Tips_documentation.json +182 -0
  32. 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/004_Vector_Data_Fields_documentation.json +30 -0
  33. 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/005_Crowding_Risk-Neutralized_Alphas_documentation.json +64 -0
  34. 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/005_D0_documentation.json +66 -0
  35. 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/005_Double_Neutralization_documentation.json +53 -0
  36. 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/005_Fast_D1_Documentation_documentation.json +304 -0
  37. 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/005_Investability_Constrained_Metrics_documentation.json +129 -0
  38. 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/005_Must-read_posts_How_to_improve_your_Alphas_documentation.json +14 -0
  39. 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/005_Neutralization_documentation.json +29 -0
  40. 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/005_RAM_Risk-Neutralized_Alphas_documentation.json +64 -0
  41. 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/005_Risk_Neutralization_Default_setting_documentation.json +75 -0
  42. 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/005_Risk_Neutralized_Alphas_documentation.json +171 -0
  43. 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/005_Statistical_Risk-Neutralized_Alphas_documentation.json +51 -0
  44. 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/006_EUR_TOP2500_Universe_documentation.json +35 -0
  45. 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/006_GLB_TOPDIV3000_Universe_documentation.json +48 -0
  46. 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/006_Getting_Started_China_Research_for_Consultants_Gold_documentation.json +142 -0
  47. 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/006_Getting_started_on_Illiquid_Universes_Gold_documentation.json +46 -0
  48. 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/006_Getting_started_with_USA_TOPSP500_universe_Gold_documentation.json +62 -0
  49. 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/006_Global_Alphas_Gold_documentation.json +66 -0
  50. 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/006_India_Alphas_documentation.json +35 -0
  51. 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/007_Consultant_Dos_and_Don_ts_documentation.json +35 -0
  52. 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/007_Consultant_Features_documentation.json +239 -0
  53. 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/007_Consultant_Simulation_Features_documentation.json +149 -0
  54. 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/007_Consultant_Submission_Tests_documentation.json +363 -0
  55. 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/007_Finding_Consultant_Alphas_documentation.json +333 -0
  56. 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/007_Power_Pool_Alphas_documentation.json +14 -0
  57. 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/007_Research_Advisory_Program_documentation.json +35 -0
  58. 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/007_Starting_Guide_for_Research_Consultants_documentation.json +14 -0
  59. 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/007_Visualization_Tool_documentation.json +99 -0
  60. 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/007_Your_Advisor_-_Kunqi_Jiang_documentation.json +53 -0
  61. 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/007__Brain_Genius_documentation.json +288 -0
  62. 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/007__Single_Dataset_Alphas_documentation.json +41 -0
  63. 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/008_Advisory_Theme_Calendar_documentation.json +14 -0
  64. 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/008_Multiplier_Rules_documentation.json +14 -0
  65. 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/008_Overview_of_Themes_documentation.json +14 -0
  66. 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/008_Theme_Calendar_documentation.json +14 -0
  67. 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/009_Combo_Expression_documentation.json +272 -0
  68. 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/009_Global_SuperAlphas_documentation.json +14 -0
  69. 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/009_Helpful_Tips_documentation.json +58 -0
  70. 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/009_Selection_Expression_documentation.json +1546 -0
  71. 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/009_SuperAlpha_Operators_documentation.json +890 -0
  72. 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/009_SuperAlpha_Results_documentation.json +83 -0
  73. 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/009_What_is_a_SuperAlpha_documentation.json +261 -0
  74. 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/010_BRAIN_API_documentation.json +515 -0
  75. 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/010_Documentation_for_ACE_API_Library_Gold_documentation.json +27 -0
  76. 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/010__Understanding_simulation_limits_documentation.json +210 -0
  77. 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/arithmetic_operators.json +209 -0
  78. 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/cross_sectional_operators.json +98 -0
  79. 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/group_operators.json +121 -0
  80. 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/logical_operators.json +145 -0
  81. 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/reduce_operators.json +156 -0
  82. 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/special_operators.json +35 -0
  83. 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 +1 -0
  84. 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/time_series_operators.json +386 -0
  85. 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/transformational_operators.json +61 -0
  86. 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/vector_operators.json +38 -0
  87. 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 +576 -0
  88. 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 +281 -0
  89. 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 +408 -0
  90. 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 +7 -0
  91. 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 +3 -0
  92. 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/vector_db/_manifest.json +302 -0
  93. 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/vector_db/_meta.json +1 -0
  94. 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/vector_db/chroma.sqlite3 +0 -0
  95. 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 +265 -0
  96. cnhkmcp/untracked/APP/.gitignore +32 -0
  97. cnhkmcp/untracked/APP/MODULAR_STRUCTURE.md +112 -0
  98. cnhkmcp/untracked/APP/README.md +309 -0
  99. cnhkmcp/untracked/APP/Tranformer/Transformer.py +4989 -0
  100. cnhkmcp/untracked/APP/Tranformer/ace.log +0 -0
  101. cnhkmcp/untracked/APP/Tranformer/ace_lib.py +1514 -0
  102. cnhkmcp/untracked/APP/Tranformer/helpful_functions.py +180 -0
  103. cnhkmcp/untracked/APP/Tranformer/output/Alpha_candidates.json +7187 -0
  104. cnhkmcp/untracked/APP/Tranformer/output/Alpha_candidates_/321/207/320/264/342/225/221/321/204/342/225/233/320/233.json +654 -0
  105. cnhkmcp/untracked/APP/Tranformer/output/Alpha_generated_expressions_error.json +1 -0
  106. cnhkmcp/untracked/APP/Tranformer/output/Alpha_generated_expressions_success.json +47312 -0
  107. 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 +22 -0
  108. cnhkmcp/untracked/APP/Tranformer/parsetab.py +60 -0
  109. cnhkmcp/untracked/APP/Tranformer/template_summary.txt +3182 -0
  110. cnhkmcp/untracked/APP/Tranformer/transformer_config.json +7 -0
  111. cnhkmcp/untracked/APP/Tranformer/validator.py +889 -0
  112. cnhkmcp/untracked/APP/ace.log +69 -0
  113. cnhkmcp/untracked/APP/ace_lib.py +1514 -0
  114. cnhkmcp/untracked/APP/blueprints/__init__.py +6 -0
  115. cnhkmcp/untracked/APP/blueprints/feature_engineering.py +347 -0
  116. cnhkmcp/untracked/APP/blueprints/idea_house.py +221 -0
  117. cnhkmcp/untracked/APP/blueprints/inspiration_house.py +432 -0
  118. cnhkmcp/untracked/APP/blueprints/paper_analysis.py +570 -0
  119. cnhkmcp/untracked/APP/custom_templates/templates.json +1257 -0
  120. cnhkmcp/untracked/APP/give_me_idea/BRAIN_Alpha_Template_Expert_SystemPrompt.md +400 -0
  121. cnhkmcp/untracked/APP/give_me_idea/ace_lib.py +1514 -0
  122. cnhkmcp/untracked/APP/give_me_idea/alpha_data_specific_template_master.py +252 -0
  123. cnhkmcp/untracked/APP/give_me_idea/fetch_all_datasets.py +157 -0
  124. cnhkmcp/untracked/APP/give_me_idea/fetch_all_operators.py +99 -0
  125. cnhkmcp/untracked/APP/give_me_idea/helpful_functions.py +180 -0
  126. cnhkmcp/untracked/APP/give_me_idea/what_is_Alpha_template.md +11 -0
  127. cnhkmcp/untracked/APP/helpful_functions.py +180 -0
  128. cnhkmcp/untracked/APP/hkSimulator/ace_lib.py +1501 -0
  129. cnhkmcp/untracked/APP/hkSimulator/autosimulator.py +447 -0
  130. cnhkmcp/untracked/APP/hkSimulator/helpful_functions.py +180 -0
  131. cnhkmcp/untracked/APP/mirror_config.txt +20 -0
  132. cnhkmcp/untracked/APP/operaters.csv +129 -0
  133. cnhkmcp/untracked/APP/requirements.txt +53 -0
  134. cnhkmcp/untracked/APP/run_app.bat +28 -0
  135. cnhkmcp/untracked/APP/run_app.sh +34 -0
  136. cnhkmcp/untracked/APP/setup_tsinghua.bat +39 -0
  137. cnhkmcp/untracked/APP/setup_tsinghua.sh +43 -0
  138. cnhkmcp/untracked/APP/simulator/alpha_submitter.py +404 -0
  139. cnhkmcp/untracked/APP/simulator/simulator_wqb.py +618 -0
  140. cnhkmcp/untracked/APP/ssrn-3332513.pdf +109188 -19
  141. cnhkmcp/untracked/APP/static/brain.js +589 -0
  142. cnhkmcp/untracked/APP/static/decoder.js +1540 -0
  143. cnhkmcp/untracked/APP/static/feature_engineering.js +1729 -0
  144. cnhkmcp/untracked/APP/static/idea_house.js +937 -0
  145. cnhkmcp/untracked/APP/static/inspiration.js +465 -0
  146. cnhkmcp/untracked/APP/static/inspiration_house.js +868 -0
  147. cnhkmcp/untracked/APP/static/paper_analysis.js +390 -0
  148. cnhkmcp/untracked/APP/static/script.js +3082 -0
  149. cnhkmcp/untracked/APP/static/simulator.js +597 -0
  150. cnhkmcp/untracked/APP/static/styles.css +3127 -0
  151. cnhkmcp/untracked/APP/static/usage_widget.js +508 -0
  152. cnhkmcp/untracked/APP/templates/alpha_inspector.html +511 -0
  153. cnhkmcp/untracked/APP/templates/feature_engineering.html +960 -0
  154. cnhkmcp/untracked/APP/templates/idea_house.html +564 -0
  155. cnhkmcp/untracked/APP/templates/index.html +932 -0
  156. cnhkmcp/untracked/APP/templates/inspiration_house.html +861 -0
  157. cnhkmcp/untracked/APP/templates/paper_analysis.html +91 -0
  158. cnhkmcp/untracked/APP/templates/simulator.html +343 -0
  159. cnhkmcp/untracked/APP/templates/transformer_web.html +580 -0
  160. cnhkmcp/untracked/APP/usage.md +351 -0
  161. 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 +1514 -0
  162. 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 +712 -0
  163. 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 +180 -0
  164. 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 +2460 -0
  165. cnhkmcp/untracked/__init__.py +0 -0
  166. cnhkmcp/untracked/arXiv_API_Tool_Manual.md +490 -0
  167. cnhkmcp/untracked/arxiv_api.py +229 -0
  168. cnhkmcp/untracked/back_up/forum_functions.py +998 -0
  169. cnhkmcp/untracked/back_up/platform_functions.py +2886 -0
  170. cnhkmcp/untracked/brain-consultant.md +31 -0
  171. cnhkmcp/untracked/forum_functions.py +407 -0
  172. 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 +407 -0
  173. 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 +2601 -0
  174. 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 +31 -0
  175. 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 +101 -0
  176. 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 +190 -0
  177. cnhkmcp/untracked/platform_functions.py +2601 -0
  178. cnhkmcp/untracked/sample_mcp_config.json +11 -0
  179. cnhkmcp/untracked/user_config.json +31 -0
  180. 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 +202 -0
  181. 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 +56 -0
  182. 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 +194 -0
  183. 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 +101 -0
  184. 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 +436 -0
  185. 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 +128 -0
  186. 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 +192 -0
  187. {cnhkmcp-2.1.3.dist-info → cnhkmcp-2.1.5.dist-info}/METADATA +1 -1
  188. cnhkmcp-2.1.5.dist-info/RECORD +192 -0
  189. cnhkmcp-2.1.5.dist-info/top_level.txt +1 -0
  190. cnhkmcp-2.1.3.dist-info/RECORD +0 -6
  191. cnhkmcp-2.1.3.dist-info/top_level.txt +0 -1
  192. {cnhkmcp-2.1.3.dist-info → cnhkmcp-2.1.5.dist-info}/WHEEL +0 -0
  193. {cnhkmcp-2.1.3.dist-info → cnhkmcp-2.1.5.dist-info}/entry_points.txt +0 -0
  194. {cnhkmcp-2.1.3.dist-info → cnhkmcp-2.1.5.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,3127 @@
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
+ }