Google Search Custom Sidebar - Styles

Provides CSS styles for the Google Search Custom Sidebar script.

当前为 2025-05-17 提交的版本,查看 最新版本

此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.gf.qytechs.cn/scripts/535625/1590839/Google%20Search%20Custom%20Sidebar%20-%20Styles.js

  1. // ==UserScript==
  2. // @name Google Search Custom Sidebar - Styles
  3. // @namespace https://gf.qytechs.cn/en/users/1467948-stonedkhajiit
  4. // @version 0.0.8-styles
  5. // @description Provides CSS styles for the Google Search Custom Sidebar script.
  6. // @author StonedKhajiit
  7. // @license MIT
  8. // @grant none
  9. // ==/UserScript==
  10.  
  11. (function() {
  12. 'use strict';
  13.  
  14. if (typeof window.GSCS_Namespace === 'undefined') {
  15. window.GSCS_Namespace = {};
  16. }
  17.  
  18. window.GSCS_Namespace.stylesText = `
  19. /* --- START OF GSCS CSS --- */
  20. :root {
  21. --sidebar-bg-color: #ffffff;
  22. --sidebar-text-color: #3c4043;
  23. --sidebar-border-color: #dadce0;
  24. --sidebar-link-color: #1a0dab;
  25. --sidebar-link-hover-color: #1a0dab;
  26. --sidebar-selected-color: #000000;
  27. --sidebar-section-border-color: #eeeeee;
  28. --sidebar-tool-btn-bg: #f8f9fa;
  29. --sidebar-tool-btn-border: #dadce0;
  30. --sidebar-tool-btn-text: #3c4043;
  31. --sidebar-tool-btn-hover-bg: #e8eaed;
  32. --sidebar-tool-btn-hover-border: #bdbdbd;
  33. --sidebar-tool-btn-hover-text: #3c4043;
  34. --sidebar-tool-btn-active-bg: #e8f0fe;
  35. --sidebar-tool-btn-active-text: #1967d2;
  36. --sidebar-tool-btn-active-border: #aecbfa;
  37. --sidebar-header-btn-color: #5f6368;
  38. --sidebar-header-btn-hover-color: #1a0dab;
  39. --sidebar-header-btn-active-bg: #e8f0fe;
  40. --sidebar-header-btn-active-color: #1967d2;
  41. --sidebar-input-bg: #ffffff;
  42. --sidebar-input-text: #202124;
  43. --sidebar-input-border: #ccc;
  44. --sidebar-shadow: 0 2px 5px 0 rgba(0,0,0,0.16), 0 2px 10px 0 rgba(0,0,0,0.12);
  45.  
  46. /* Scrollbar Colors - Light Theme Defaults */
  47. --sidebar-scrollbar-thumb-color: #a0a0a0;
  48. --sidebar-scrollbar-track-color: #f0f0f0;
  49. --sidebar-scrollbar-thumb-hover-color: #777777;
  50.  
  51.  
  52. --settings-bg-color: #ffffff;
  53. --settings-text-color: #3c4043;
  54. --settings-border-color: #eeeeee;
  55. --settings-header-text-color: #3c4043;
  56. --settings-close-btn-color: #777777;
  57. --settings-close-btn-hover-color: #333333;
  58. --settings-tab-color: #5f6368;
  59. --settings-tab-active-color: #1a0dab;
  60. --settings-tab-active-border: #1a0dab;
  61. --settings-input-bg: #ffffff;
  62. --settings-input-text: #202124;
  63. --settings-input-border: #ccc;
  64. --settings-list-border: #eeeeee;
  65. --settings-list-item-border: #e0e0e0;
  66. --settings-list-btn-bg: #f8f8f8;
  67. --settings-list-btn-hover-bg: #eeeeee;
  68. --settings-add-btn-bg: #4285f4;
  69. --settings-add-btn-text: white;
  70. --settings-add-btn-hover-bg: #3367d6;
  71. --settings-save-btn-bg: #1a73e8;
  72. --settings-save-btn-text: white;
  73. --settings-save-btn-border: #1a73e8;
  74. --settings-save-btn-hover-bg: #1565c0;
  75. --settings-cancel-btn-bg: #ffffff;
  76. --settings-cancel-btn-text: #3c4043;
  77. --settings-cancel-btn-hover-bg: #f8f9fa;
  78. --settings-reset-btn-bg: #f8d7da;
  79. --settings-reset-btn-text: #721c24;
  80. --settings-reset-btn-border: #f5c6cb;
  81. --settings-reset-btn-hover-bg: #f5c6cb;
  82. --settings-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
  83.  
  84. --gscs-msg-info-bg: #e7f3fe; --gscs-msg-info-text: #004085; --gscs-msg-info-border: #b8daff;
  85. --gscs-msg-success-bg: #d4edda; --gscs-msg-success-text: #155724; --gscs-msg-success-border: #c3e6cb;
  86. --gscs-msg-warning-bg: #fff3cd; --gscs-msg-warning-text: #856404; --gscs-msg-warning-border: #ffeeba;
  87. --gscs-msg-error-bg: #f8d7da; --gscs-msg-error-text: #721c24; --gscs-msg-error-border: #f5c6cb;
  88.  
  89. --gscs-ntf-info-bg: var(--gscs-msg-info-bg); --gscs-ntf-info-text: var(--gscs-msg-info-text); --gscs-ntf-info-border: var(--gscs-msg-info-border);
  90. --gscs-ntf-success-bg: var(--gscs-msg-success-bg); --gscs-ntf-success-text: var(--gscs-msg-success-text); --gscs-ntf-success-border: var(--gscs-msg-success-border);
  91. --gscs-ntf-warning-bg: var(--gscs-msg-warning-bg); --gscs-ntf-warning-text: var(--gscs-msg-warning-text); --gscs-ntf-warning-border: var(--gscs-msg-warning-border);
  92. --gscs-ntf-error-bg: var(--gscs-msg-error-bg); --gscs-ntf-error-text: var(--gscs-msg-error-text); --gscs-ntf-error-border: var(--gscs-msg-error-border);
  93. }
  94.  
  95. :root .dark-theme {
  96. --sidebar-bg-color: #202124;
  97. --sidebar-text-color: #bdc1c6;
  98. --sidebar-border-color: #5f6368;
  99. --sidebar-link-color: #8ab4f8;
  100. --sidebar-link-hover-color: #8ab4f8;
  101. --sidebar-selected-color: #e8eaed;
  102. --sidebar-section-border-color: #3c4043;
  103. --sidebar-tool-btn-bg: #303134;
  104. --sidebar-tool-btn-border: #5f6368;
  105. --sidebar-tool-btn-text: #8ab4f8;
  106. --sidebar-tool-btn-hover-bg: #3c4043;
  107. --sidebar-tool-btn-hover-border: #5f6368;
  108. --sidebar-tool-btn-hover-text: #bdc1c6;
  109. --sidebar-tool-btn-active-bg: #8ab4f8;
  110. --sidebar-tool-btn-active-text: #202124;
  111. --sidebar-tool-btn-active-border: #8ab4f8;
  112. --sidebar-header-btn-color: #bdc1c6;
  113. --sidebar-header-btn-hover-color: #8ab4f8;
  114. --sidebar-header-btn-active-bg: #8ab4f8;
  115. --sidebar-header-btn-active-color: #202124;
  116. --sidebar-input-bg: #303134;
  117. --sidebar-input-text: #e8eaed;
  118. --sidebar-input-border: #5f6368;
  119. --sidebar-shadow: 0 2px 5px 0 rgba(0,0,0,0.3), 0 2px 10px 0 rgba(0,0,0,0.24);
  120.  
  121. /* Scrollbar Colors - Dark Theme Defaults */
  122. --sidebar-scrollbar-thumb-color: #5f6368;
  123. --sidebar-scrollbar-track-color: var(--sidebar-bg-color);
  124. --sidebar-scrollbar-thumb-hover-color: #7a7f83;
  125.  
  126. --settings-bg-color: #202124;
  127. --settings-text-color: #bdc1c6;
  128. --settings-border-color: #3c4043;
  129. --settings-header-text-color: #e8eaed;
  130. --settings-close-btn-color: #bdc1c6;
  131. --settings-close-btn-hover-color: #e8eaed;
  132. --settings-tab-color: #bdc1c6;
  133. --settings-tab-active-color: #8ab4f8;
  134. --settings-tab-active-border: #8ab4f8;
  135. --settings-input-bg: #303134;
  136. --settings-input-text: #e8eaed;
  137. --settings-input-border: #5f6368;
  138. --settings-list-border: #3c4043;
  139. --settings-list-item-border: #4a4e52;
  140. --settings-list-btn-bg: #303134;
  141. --settings-list-btn-hover-bg: #5f6368;
  142. --settings-add-btn-bg: #8ab4f8;
  143. --settings-add-btn-text: #202124;
  144. --settings-add-btn-hover-bg: #669df6;
  145. --settings-save-btn-bg: #8ab4f8;
  146. --settings-save-btn-text: #202124;
  147. --settings-save-btn-border: #8ab4f8;
  148. --settings-save-btn-hover-bg: #669df6;
  149. --settings-cancel-btn-bg: #303134;
  150. --settings-cancel-btn-text: #e8eaed;
  151. --settings-cancel-btn-hover-bg: #5f6368;
  152. --settings-reset-btn-bg: #f28b82;
  153. --settings-reset-btn-text: #202124;
  154. --settings-reset-btn-border: #f28b82;
  155. --settings-reset-btn-hover-bg: #e66a61;
  156. --settings-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
  157.  
  158. --gscs-msg-info-bg: #2c3e50; --gscs-msg-info-text: #8ab4f8; --gscs-msg-info-border: #34495e;
  159. --gscs-msg-success-bg: #274b34; --gscs-msg-success-text: #a8dba8; --gscs-msg-success-border: #2e7d32;
  160. --gscs-msg-warning-bg: #533f03; --gscs-msg-warning-text: #fdd835; --gscs-msg-warning-border: #7b5e03;
  161. --gscs-msg-error-bg: #5f2120; --gscs-msg-error-text: #f5c6cb; --gscs-msg-error-border: #8d2626;
  162.  
  163. --gscs-ntf-info-bg: var(--gscs-msg-info-bg); --gscs-ntf-info-text: var(--gscs-msg-info-text); --gscs-ntf-info-border: var(--gscs-msg-info-border);
  164. --gscs-ntf-success-bg: var(--gscs-msg-success-bg); --gscs-ntf-success-text: var(--gscs-msg-success-text); --gscs-ntf-success-border: var(--gscs-msg-success-border);
  165. --gscs-ntf-warning-bg: var(--gscs-msg-warning-bg); --gscs-ntf-warning-text: var(--gscs-msg-warning-text); --gscs-ntf-warning-border: var(--gscs-msg-warning-border);
  166. --gscs-ntf-error-bg: var(--gscs-msg-error-bg); --gscs-ntf-error-text: var(--gscs-msg-error-text); --gscs-ntf-error-border: var(--gscs-msg-error-border);
  167. }
  168.  
  169. #customizable-search-sidebar.minimal-theme { background-color: transparent !important; border: none !important; box-shadow: none !important; border-radius: 0 !important; padding: 5px 10px !important; }
  170. #customizable-search-sidebar.minimal-theme.minimal-light { --sidebar-text-color: #3c4043; --sidebar-link-color: #1a0dab; --sidebar-link-hover-color: #1a0dab; --sidebar-selected-color: #000000; --sidebar-section-border-color: #ebebeb; --sidebar-header-btn-color: #5f6368; --sidebar-header-btn-hover-color: #1a0dab; --sidebar-input-bg: rgba(255, 255, 255, 0.8); --sidebar-input-text: #202124; --sidebar-input-border: #dadce0; --sidebar-tool-btn-bg: transparent; --sidebar-tool-btn-border: #dadce0; --sidebar-tool-btn-text: #1a0dab; --sidebar-tool-btn-hover-bg: rgba(0, 0, 0, 0.05); --sidebar-tool-btn-hover-border: #dadce0; --sidebar-tool-btn-hover-text: #1a0dab; --sidebar-tool-btn-active-bg: rgba(26, 115, 232, 0.1); --sidebar-tool-btn-active-text: #1967d2; --sidebar-tool-btn-active-border: #aecbfa; --sidebar-scrollbar-thumb-color: #bababa; --sidebar-scrollbar-track-color: rgba(0,0,0,0.05); --sidebar-scrollbar-thumb-hover-color: #888888;}
  171. #customizable-search-sidebar.minimal-theme.minimal-light .section-title { color: var(--sidebar-link-color); }
  172. #customizable-search-sidebar.minimal-theme.minimal-light .date-input::-webkit-calendar-picker-indicator { filter: none; }
  173. #customizable-search-sidebar.minimal-theme.minimal-dark { --sidebar-text-color: #bdc1c6; --sidebar-link-color: #8ab4f8; --sidebar-link-hover-color: #8ab4f8; --sidebar-selected-color: #e8eaed; --sidebar-section-border-color: #4a4a4a; --sidebar-header-btn-color: #bdc1c6; --sidebar-header-btn-hover-color: #8ab4f8; --sidebar-input-bg: rgba(48, 49, 52, 0.8); --sidebar-input-text: #e8eaed; --sidebar-input-border: #5f6368; --sidebar-tool-btn-bg: transparent; --sidebar-tool-btn-border: #5f6368; --sidebar-tool-btn-text: #8ab4f8; --sidebar-tool-btn-hover-bg: rgba(255, 255, 255, 0.08); --sidebar-tool-btn-hover-border: #5f6368; --sidebar-tool-btn-hover-text: #8ab4f8; --sidebar-tool-btn-active-bg: rgba(138, 180, 248, 0.15); --sidebar-tool-btn-active-text: #8ab4f8; --sidebar-tool-btn-active-border: #8ab4f8; --sidebar-scrollbar-thumb-color: #55595d; --sidebar-scrollbar-track-color: rgba(255,255,255,0.08); --sidebar-scrollbar-thumb-hover-color: #6b6f73;}
  174. #customizable-search-sidebar.minimal-theme.minimal-dark .section-title { color: var(--sidebar-link-color); }
  175. #customizable-search-sidebar.minimal-theme.minimal-dark .date-input::-webkit-calendar-picker-indicator { filter: invert(1) brightness(0.9); }
  176. #customizable-search-sidebar.minimal-theme .sidebar-header { border-bottom-color: transparent !important; }
  177. #customizable-search-sidebar.minimal-theme #sidebar-fixed-top-buttons { background-color: transparent !important; border-bottom-color: var(--sidebar-section-border-color) !important; }
  178. #customizable-search-sidebar.minimal-theme .section-title::before { color: var(--sidebar-text-color); }
  179. #customizable-search-sidebar.minimal-theme .date-input { background-color: var(--sidebar-input-bg) !important; border: 1px solid var(--sidebar-input-border) !important; color: var(--sidebar-input-text) !important; }
  180.  
  181. #customizable-search-sidebar { position: fixed; background-color: var(--sidebar-bg-color); border: 1px solid var(--sidebar-border-color); padding: 0 10px 0; z-index: 1001; color: var(--sidebar-text-color); box-shadow: var(--sidebar-shadow); border-radius: 8px; overflow: hidden; max-height: 85vh; cursor: default; display: flex; flex-direction: column; opacity: 1; transition: opacity 0.3s ease, width 0.3s ease, transform 0.3s ease, padding 0.3s ease; font-size: var(--sidebar-font-base-size); }
  182. #customizable-search-sidebar *, #settings-window *, .settings-modal-content * { box-sizing: border-box; }
  183. #customizable-search-sidebar .sidebar-header { display: flex; justify-content: space-between; align-items: center; min-height: calc(var(--sidebar-header-icon-base-size) * 1.15 + 10px); height: auto; margin: 0 -10px; padding: 5px 5px; flex-shrink: 0; user-select: none; border-bottom: 1px solid var(--sidebar-section-border-color); flex-wrap: wrap; }
  184. #customizable-search-sidebar #sidebar-collapse-button, #customizable-search-sidebar .sidebar-settings-button, #customizable-search-sidebar .sidebar-header-button { background: none; border: none; cursor: pointer; padding: 0; color: var(--sidebar-header-btn-color); font-size: var(--sidebar-header-icon-base-size); width: calc(var(--sidebar-header-icon-base-size) * 1.15); height: calc(var(--sidebar-header-icon-base-size) * 1.15); line-height: calc(var(--sidebar-header-icon-base-size) * 1.15); flex-shrink: 0; text-align: center; margin: 0 0.2em; display: inline-flex; align-items: center; justify-content: center; box-sizing: content-box; }
  185. #customizable-search-sidebar .sidebar-header a.sidebar-header-button { text-decoration: none; display: inline-flex; align-items: center; justify-content: center; padding: 0; width: calc(var(--sidebar-header-icon-base-size) * 1.15); height: calc(var(--sidebar-header-icon-base-size) * 1.15); color: var(--sidebar-header-btn-color); box-sizing: content-box; margin: 0 0.2em; }
  186. #customizable-search-sidebar .sidebar-header a.sidebar-header-button svg { width: var(--sidebar-header-icon-base-size); height: var(--sidebar-header-icon-base-size); flex-shrink: 0; }
  187. #customizable-search-sidebar #sidebar-collapse-button { order: -1; margin-right: 0.3em;}
  188. #customizable-search-sidebar .sidebar-settings-button { margin-left: 0.3em; }
  189. #customizable-search-sidebar #sidebar-collapse-button:hover, #customizable-search-sidebar .sidebar-settings-button:hover, #customizable-search-sidebar .sidebar-header-button:hover, #customizable-search-sidebar .sidebar-header a.sidebar-header-button:hover { color: var(--sidebar-header-btn-hover-color); }
  190. #customizable-search-sidebar .sidebar-header-button#tool-verbatim.active,
  191. #customizable-search-sidebar .sidebar-header-button#tool-personalize-search.active {
  192. background-color: var(--sidebar-header-btn-active-bg);
  193. color: var(--sidebar-header-btn-active-color);
  194. border-radius: 3px;
  195. }
  196. #customizable-search-sidebar .sidebar-header-button#tool-personalize-search.active svg {
  197. stroke: var(--sidebar-header-btn-active-color);
  198. }
  199. #customizable-search-sidebar .sidebar-drag-handle { flex-grow: 1; height: 100%; min-height: calc(var(--sidebar-header-icon-base-size) * 1.15); cursor: move; min-width: 20px; }
  200. #customizable-search-sidebar .sidebar-drag-handle:active { cursor: grabbing; }
  201. #customizable-search-sidebar #sidebar-fixed-top-buttons { padding: calc(10px * var(--sidebar-spacing-multiplier)) 10px calc(5px * var(--sidebar-spacing-multiplier)) 10px; border-bottom: 1px solid var(--sidebar-section-border-color); flex-shrink: 0; background-color: var(--sidebar-bg-color); margin: 0 -10px calc(5px * var(--sidebar-spacing-multiplier)) -10px; }
  202. #customizable-search-sidebar #sidebar-fixed-top-buttons:empty { display: none; padding: 0; border: none; margin: 0; }
  203. #customizable-search-sidebar .fixed-top-button-item { margin-bottom: calc(5px * var(--sidebar-spacing-multiplier)); }
  204. #customizable-search-sidebar .fixed-top-button-item:last-child { margin-bottom: 0; }
  205. #customizable-search-sidebar .sidebar-content-wrapper { flex-grow: 1; overflow-y: auto; overflow-x: hidden; position: relative; padding: calc(5px * var(--sidebar-spacing-multiplier)) 5px calc(10px * var(--sidebar-spacing-multiplier)) 0; scrollbar-gutter: stable; }
  206. #customizable-search-sidebar .sidebar-section { margin-bottom: calc(15px * var(--sidebar-spacing-multiplier)); padding-bottom: calc(10px * var(--sidebar-spacing-multiplier)); border-bottom: 1px solid var(--sidebar-section-border-color); display: flex; flex-direction: column; }
  207. #customizable-search-sidebar .sidebar-section:last-child { border-bottom: none; padding-bottom: 0; margin-bottom: 0; }
  208. #customizable-search-sidebar .section-title { font-weight: bold; margin-bottom: calc(8px * var(--sidebar-spacing-multiplier)); cursor: pointer; color: var(--sidebar-link-color); white-space: nowrap; user-select: none; display: flex; align-items: center; position: relative; }
  209. #customizable-search-sidebar .section-title::before { content: '▼'; font-size: 0.7em; margin-right: 4px; display: inline-block; transition: transform 0.2s ease-in-out; }
  210. #customizable-search-sidebar .section-title.collapsed::before { transform: rotate(-90deg); }
  211. #customizable-search-sidebar .section-content { margin-left: 5px; overflow: hidden; transition: max-height 0.3s ease-out, visibility 0.3s ease-out, opacity 0.3s ease-in-out; max-height: 1000px; visibility: visible; opacity: 1; }
  212. #customizable-search-sidebar .section-content.collapsed { max-height: 0; visibility: hidden; opacity: 0; margin-top: calc(-8px * var(--sidebar-spacing-multiplier)); padding-bottom: 0; }
  213. #customizable-search-sidebar .filter-option { display: block; margin-bottom: calc(5px * var(--sidebar-spacing-multiplier)); color: var(--sidebar-text-color); text-decoration: none; cursor: pointer; padding: calc(2px * var(--sidebar-spacing-multiplier)) 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 1em; }
  214. #customizable-search-sidebar .filter-option:hover { text-decoration: underline; color: var(--sidebar-link-hover-color); }
  215. #customizable-search-sidebar .filter-option.selected { font-weight: bold; color: var(--sidebar-selected-color); }
  216. #customizable-search-sidebar .date-input-label { display: block; margin-bottom: calc(2px * var(--sidebar-spacing-multiplier)); font-size: 0.85em; }
  217. #customizable-search-sidebar .date-input { display: block; margin-bottom: calc(5px * var(--sidebar-spacing-multiplier)); width: calc(100% - 10px); padding: 0.3em; font-size: 0.9em; border: 1px solid var(--sidebar-input-border); background-color: var(--sidebar-input-bg); color: var(--sidebar-input-text); border-radius: 4px; }
  218. #customizable-search-sidebar .tool-button { display: inline-flex; align-items: center; justify-content: center; width: 100%; padding: 0.4em 0.6em; margin-bottom: calc(5px * var(--sidebar-spacing-multiplier)); text-align: center; cursor: pointer; font-size: 0.9em; text-decoration: none; border-radius: 4px; background-color: var(--sidebar-tool-btn-bg); border: 1px solid var(--sidebar-tool-btn-border); color: var(--sidebar-tool-btn-text); line-height: 1.4; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; box-sizing: border-box; }
  219. #customizable-search-sidebar .tool-button:hover { background-color: var(--sidebar-tool-btn-hover-bg); border-color: var(--sidebar-tool-btn-hover-border); color: var(--sidebar-tool-btn-hover-text, var(--sidebar-tool-btn-text)); }
  220. #customizable-search-sidebar .tool-button.active { background-color: var(--sidebar-tool-btn-active-bg); color: var(--sidebar-tool-btn-active-text); border-color: var(--sidebar-tool-btn-active-border); font-weight: bold; }
  221. #customizable-search-sidebar .tool-button#tool-personalize-search.active svg { stroke: var(--sidebar-tool-btn-active-text); }
  222. #customizable-search-sidebar .tool-button svg { flex-shrink: 0; margin-right: 0.4em; width: 0.9em; height: 0.9em; vertical-align: middle; }
  223. #customizable-search-sidebar .tool-button span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: middle; }
  224. #customizable-search-sidebar .custom-list { list-style: none; padding: 0; margin: 0; }
  225. #customizable-search-sidebar #sidebar-section-site-search .custom-list li { padding: 0; margin: 0; }
  226. #customizable-search-sidebar #sidebar-section-site-search .custom-list li:not(:last-child) { margin-bottom: calc(3px * var(--sidebar-spacing-multiplier)); } /* Add margin to all but last li */
  227. #customizable-search-sidebar #sidebar-section-site-search .custom-list.checkbox-mode-enabled li { display: flex; align-items: center; } /* Flex for checkbox alignment */
  228. #customizable-search-sidebar #sidebar-section-site-search .site-search-item-checkbox { margin-right: 0.5em; flex-shrink: 0; vertical-align: middle;}
  229. #customizable-search-sidebar #sidebar-section-site-search .custom-list.checkbox-mode-enabled label { cursor: pointer; flex-grow: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: inline-block; vertical-align: middle; color: var(--sidebar-text-color); }
  230. #customizable-search-sidebar #sidebar-section-site-search .custom-list.checkbox-mode-enabled label:hover { text-decoration: underline; color: var(--sidebar-link-hover-color); }
  231. #customizable-search-sidebar #sidebar-section-site-search .custom-list.checkbox-mode-enabled label.selected { font-weight: bold; color: var(--sidebar-selected-color); }
  232. #customizable-search-sidebar #sidebar-section-site-search .filter-option { margin-bottom: calc(3px * var(--sidebar-spacing-multiplier)); } /* Original style for non-checkbox mode */
  233. #customizable-search-sidebar .apply-sites-button { margin-top: calc(8px * var(--sidebar-spacing-multiplier)); width: 100%; } /* Style for Apply Selected Sites button */
  234.  
  235. #customizable-search-sidebar.sidebar-collapsed { width: 40px !important; padding: 5px !important; overflow: hidden; }
  236. #customizable-search-sidebar.sidebar-collapsed .sidebar-header { margin-bottom: 0; padding: 0; justify-content: center; height: 100%; flex-direction: column; align-items: center; border-bottom: none; gap: 0.5em; }
  237. #customizable-search-sidebar.sidebar-collapsed #sidebar-fixed-top-buttons, #customizable-search-sidebar.sidebar-collapsed .sidebar-content-wrapper, #customizable-search-sidebar.sidebar-collapsed .sidebar-drag-handle { display: none !important; }
  238. #customizable-search-sidebar.sidebar-collapsed .sidebar-header > * { margin: 0 !important; }
  239. #customizable-search-sidebar.sidebar-collapsed #sidebar-collapse-button { order: 0; }
  240. #customizable-search-sidebar .filter-option .country-icon-container { display: inline-block; width: 1.8em; text-align: center; margin-right: 0.4em; vertical-align: text-bottom; }
  241. #customizable-search-sidebar .filter-option .country-icon-container > svg { vertical-align: middle; max-height: 1em; }
  242. #customizable-search-sidebar .date-range-error-message { display: none; font-size: 0.85em; color: #dc3545; margin-top: 0.3em; margin-bottom: 0.5em; text-align: left; }
  243. #customizable-search-sidebar .date-range-error-message.error-visible { display: block; }
  244. #customizable-search-sidebar .setting-value-hint { font-size: 0.85em; color: var(--settings-tab-color); font-weight: normal; margin-left: 0; } /* General hint style */
  245.  
  246.  
  247. /* Scrollbar Styling */
  248. #customizable-search-sidebar .sidebar-content-wrapper { scrollbar-width: thin; scrollbar-color: var(--sidebar-scrollbar-thumb-color) var(--sidebar-scrollbar-track-color); }
  249. #customizable-search-sidebar .sidebar-content-wrapper::-webkit-scrollbar { width: 6px; height: 6px; }
  250. #customizable-search-sidebar .sidebar-content-wrapper::-webkit-scrollbar-track { background: var(--sidebar-scrollbar-track-color); border-radius: 3px; }
  251. #customizable-search-sidebar .sidebar-content-wrapper::-webkit-scrollbar-thumb { background-color: var(--sidebar-scrollbar-thumb-color); border-radius: 3px; }
  252. #customizable-search-sidebar .sidebar-content-wrapper::-webkit-scrollbar-thumb:hover { background-color: var(--sidebar-scrollbar-thumb-hover-color); }
  253.  
  254. #settings-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; display: none; justify-content: center; align-items: center; background-color: rgba(0,0,0,0.4); z-index: 1000; pointer-events: auto; }
  255. #settings-window { background-color: var(--settings-bg-color); border: 1px solid var(--settings-border-color); padding: 20px; border-radius: 8px; box-shadow: var(--settings-shadow); width: 450px; max-width: 90%; max-height: 80vh; overflow-y: auto; font-size: 14px; color: var(--settings-text-color); position: relative; z-index: 2000; pointer-events: auto; display: flex; flex-direction: column; }
  256. #settings-window .gscs-message-bar { padding: 10px; margin-bottom: 15px; border: 1px solid transparent; border-radius: 4px; text-align: center; font-size: 0.95em; }
  257. #settings-window .gscs-message-bar.gscs-msg-info { color: var(--gscs-msg-info-text); background-color: var(--gscs-msg-info-bg); border-color: var(--gscs-msg-info-border); }
  258. #settings-window .gscs-message-bar.gscs-msg-success { color: var(--gscs-msg-success-text); background-color: var(--gscs-msg-success-bg); border-color: var(--gscs-msg-success-border); }
  259. #settings-window .gscs-message-bar.gscs-msg-warning { color: var(--gscs-msg-warning-text); background-color: var(--gscs-msg-warning-bg); border-color: var(--gscs-msg-warning-border); }
  260. #settings-window .gscs-message-bar.gscs-msg-error { color: var(--gscs-msg-error-text); background-color: var(--gscs-msg-error-bg); border-color: var(--gscs-msg-error-border); }
  261.  
  262. #settings-window .settings-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px; padding-bottom: 10px; border-bottom: 1px solid var(--settings-border-color); flex-shrink: 0; }
  263. #settings-window .settings-header h3 { margin: 0; font-size: 1.2em; font-weight: bold; color: var(--settings-header-text-color); }
  264. #settings-window .settings-close-button { font-size: 1.5em; cursor: pointer; border: none; background: none; padding: 0; color: var(--settings-close-btn-color); line-height: 1; display: inline-flex; align-items: center; justify-content: center; }
  265. #settings-window .settings-close-button svg { width: 1.1em; height: 1.1em; }
  266. #settings-window .settings-close-button:hover { color: var(--settings-close-btn-hover-color); }
  267. #settings-window .settings-tabs { display: flex; border-bottom: 1px solid var(--settings-border-color); margin-bottom: 15px; flex-wrap: wrap; flex-shrink: 0; }
  268. #settings-window .tab-button { padding: 0.7em 1em; cursor: pointer; border: none; background: none; font-size: 1em; color: var(--settings-tab-color); border-bottom: 2px solid transparent; margin-right: 10px; margin-bottom: -1px; white-space: nowrap; }
  269. #settings-window .tab-button.active { color: var(--settings-tab-active-color); font-weight: bold; border-bottom-color: var(--settings-tab-active-border); }
  270. #settings-window .settings-tab-content { flex-grow: 1; overflow-y: auto; }
  271. #settings-window .settings-tab-content .tab-pane { display: none; animation: fadeIn 0.3s ease-in-out; }
  272. #settings-window .settings-tab-content .tab-pane.active { display: block; }
  273. #settings-window .setting-item { margin-bottom: 1em; padding-bottom: 1em; border-bottom: 1px solid var(--settings-border-color); }
  274. #settings-window .setting-item:last-child { border-bottom: none; padding-bottom: 0; }
  275. #settings-window .setting-item label:not(.inline) { display: block; font-weight: bold; margin-bottom: 0.4em; }
  276. #settings-window .setting-item label.inline { display: inline-block; margin-bottom: 0; margin-left: 0.4em; font-weight: normal; vertical-align: middle; }
  277. #settings-window #tab-pane-appearance .setting-item { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 0.5em; }
  278. #settings-window #tab-pane-appearance .setting-item > label:first-child { width: 100%; }
  279. #settings-window #tab-pane-appearance .setting-item .setting-range-hint { width: 100%; order: 1; font-size: 0.85em; color: var(--settings-tab-color); font-weight: normal; margin-left: 0; }
  280. #settings-window #tab-pane-appearance .setting-item input[type="range"] { flex-grow: 1; order: 2; padding: 0; height: auto; cursor: pointer; vertical-align: middle; min-width: 150px; margin-top: 0.2em; }
  281. #settings-window #tab-pane-appearance .setting-item .range-value { order: 3; margin-left: 0.5em; font-size: 0.9em; color: var(--settings-tab-color); min-width: 3em; text-align: right; flex-shrink: 0; vertical-align: middle; line-height: 1.8; }
  282. #settings-window #tab-pane-appearance .setting-item > div { transition: opacity 0.3s ease; }
  283. #settings-window .setting-item input[type="text"]:not(#new-site-name):not(#new-site-url):not(#new-lang-text):not(#new-lang-value):not(#new-time-text):not(#new-timerange-value):not(#new-ft-text):not(#new-ft-value):not(#new-country-text):not(#new-country-value), #settings-window .setting-item select { width: 100%; padding: 0.6em; border: 1px solid var(--settings-input-border); border-radius: 4px; font-size: 0.9em; background-color: var(--settings-input-bg); color: var(--settings-input-text); margin-top: 0.2em; }
  284. #settings-window .setting-item input[type="checkbox"] { margin-right: 0.4em; vertical-align: middle; }
  285. #settings-window .settings-footer { display: flex; justify-content: flex-end; align-items: center; padding-top: 1em; border-top: 1px solid var(--settings-border-color); margin-top: 1.2em; gap: 0.7em; flex-shrink: 0; }
  286. #settings-window .settings-footer button { padding: 0.6em 1em; border-radius: 4px; cursor: pointer; font-size: 1em; }
  287. #settings-window .settings-footer .save-button { background-color: var(--settings-save-btn-bg); color: var(--settings-save-btn-text); border: 1px solid var(--settings-save-btn-border); }
  288. #settings-window .settings-footer .save-button:hover { background-color: var(--settings-save-btn-hover-bg); }
  289. #settings-window .settings-footer .cancel-button { background-color: var(--settings-cancel-btn-bg); color: var(--settings-cancel-btn-text); border: 1px solid var(--settings-input-border); }
  290. #settings-window .settings-footer .cancel-button:hover { background-color: var(--settings-cancel-btn-hover-bg); }
  291. #settings-window .settings-footer .reset-button { background-color: var(--settings-reset-btn-bg); color: var(--settings-reset-btn-text); border: 1px solid var(--settings-reset-btn-border); margin-right: auto; }
  292. #settings-window .settings-footer .reset-button:hover { background-color: var(--settings-reset-btn-hover-bg); }
  293. #settings-window .setting-item.simple { margin-bottom: 0.4em; padding-bottom: 0.4em; border-bottom: none; }
  294. #settings-window .setting-item .setting-value-hint { font-size: 0.85em; color: var(--settings-tab-color); font-weight: normal; margin-left: 0; }
  295. .gscs-drag-icon { display: inline-flex; align-items: center; justify-content: center; width: 1.5em; height: 1.5em; margin-right: 0.5em; color: var(--settings-tab-color); cursor: grab; flex-shrink: 0; }
  296. .gscs-drag-icon svg { width: 1em; height: 1em; }
  297.  
  298. .section-order-list { list-style: none; padding: 0; margin-top: 0.5em; border: 1px solid var(--settings-border-color); border-radius: 4px; max-height: 250px; overflow-y: auto; }
  299. .section-order-list li { display: flex; align-items: center; padding: 0.6em 0.8em; border-bottom: 1px dashed var(--settings-list-item-border); background-color: var(--settings-input-bg); }
  300. .section-order-list li:last-child { border-bottom: none; }
  301. .section-order-list li .gscs-drag-icon { margin-right: 0.6em; }
  302. .section-order-list li span:not(.gscs-drag-icon) { flex-grow: 1; color: var(--settings-text-color); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  303. .section-order-list li[draggable="true"] { cursor: grab; user-select: none; }
  304. .section-order-list li[draggable="true"]:active { cursor: grabbing; }
  305. li.gscs-dragging-item { opacity: 0.4 !important; background: var(--settings-list-btn-hover-bg) !important; border-style: dashed !important; }
  306. li.gscs-drag-over-highlight { border-top: 2px solid var(--settings-tab-active-border) !important; margin-top: -2px !important; }
  307. .section-order-list li.gscs-drag-over-highlight { padding-top: calc(0.6em + 2px) !important; }
  308. .settings-modal-content .custom-list li.gscs-drag-over-highlight { padding-top: calc(0.5em + 2px) !important; }
  309.  
  310.  
  311. #tab-pane-custom .manage-custom-button { padding: 0.6em 1em; font-size: 0.95em; }
  312. #tab-pane-custom .manage-custom-button:hover { background-color: var(--settings-list-btn-hover-bg); }
  313. #tab-pane-custom .setting-item { padding-bottom: 0.8em; margin-bottom: 0.8em; border-bottom: 1px dashed var(--settings-border-color); }
  314. #tab-pane-custom .setting-item:last-child { border-bottom: none; }
  315.  
  316. .settings-modal-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.6); z-index: 2050; display: flex; justify-content: center; align-items: center; animation: fadeIn 0.2s ease-out; pointer-events: auto; }
  317. .settings-modal-content { background-color: var(--settings-bg-color); color: var(--settings-text-color); padding: 20px 25px; border-radius: 8px; box-shadow: var(--settings-shadow); width: 550px; max-width: 95%; max-height: 90vh; display: flex; flex-direction: column; position: relative; z-index: 2100; pointer-events: auto; }
  318. .settings-modal-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px; padding-bottom: 10px; border-bottom: 1px solid var(--settings-border-color); }
  319. .settings-modal-header h4 { margin: 0; font-size: 1.15em; font-weight: bold; color: var(--settings-header-text-color); }
  320. .settings-modal-close-btn { font-size: 1.5em; cursor: pointer; border: none; background: none; padding: 0; color: var(--settings-close-btn-color); line-height: 1; display: inline-flex; align-items: center; justify-content: center; }
  321. .settings-modal-close-btn svg { width: 1em; height: 1em; }
  322. .settings-modal-close-btn:hover { color: var(--settings-close-btn-hover-color); }
  323. .settings-modal-body { flex-grow: 1; overflow-y: auto; margin-bottom: 15px; padding-right: 5px; }
  324. .settings-modal-body hr { border: none; border-top: 1px dashed var(--settings-border-color); margin: 1em 0; }
  325. .settings-modal-footer { display: flex; justify-content: flex-end; padding-top: 15px; border-top: 1px solid var(--settings-border-color); }
  326. .settings-modal-footer button { padding: 0.6em 1.2em; border-radius: 4px; cursor: pointer; font-size: 1em; background-color: var(--settings-save-btn-bg); color: var(--settings-save-btn-text); border: 1px solid var(--settings-save-btn-border); }
  327. .settings-modal-footer button:hover { background-color: var(--settings-save-btn-hover-bg); }
  328. .settings-modal-body .predefined-options-list { list-style: none; padding: 0; margin: 0.5em 0 1em 0; max-height: 150px; overflow-y: auto; border: 1px solid var(--settings-list-border); border-radius: 4px; width: 100%; }
  329. .settings-modal-body .predefined-options-list li { padding: 0.4em 0.7em; border-bottom: 1px dashed var(--settings-list-item-border); }
  330. .settings-modal-body .predefined-options-list li:last-child { border-bottom: none; }
  331. .settings-modal-body .predefined-options-list label { font-weight: normal; margin-left: 0.5em; vertical-align: middle; }
  332. .settings-modal-body .predefined-options-list input[type="checkbox"] { vertical-align: middle; margin-right: 0.3em;}
  333. .settings-modal-content .custom-list { list-style: none; padding: 0; margin: 0.5em 0 1em 0; border: 1px solid var(--settings-list-border); border-radius: 4px; max-height: 200px; overflow-y: auto; }
  334. .settings-modal-content .custom-list li { display: flex; align-items: center; padding: 0.5em 0.7em; border-bottom: 1px dashed var(--settings-list-item-border); background-color: var(--settings-input-bg); position: relative; }
  335. .settings-modal-content .custom-list li:last-child { border-bottom: none; }
  336. .settings-modal-content .custom-list li .gscs-drag-icon { margin-right: 0.5em; }
  337. .settings-modal-content .custom-list li > span:not(.gscs-drag-icon):not(.item-controls) { flex-grow: 1; margin-right: 0.5em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--settings-text-color); }
  338. .settings-modal-content .custom-list li .item-controls { margin-left: auto; flex-shrink: 0; display: inline-flex; gap: 0.3em; }
  339. .settings-modal-content .item-controls button { display: inline-flex; align-items: center; justify-content: center; line-height: 1; padding: 0.2em; width: 1.8em; height: 1.8em; background-color: var(--settings-list-btn-bg); border: 1px solid var(--settings-input-border); border-radius: 3px; color: var(--settings-text-color); }
  340. .settings-modal-content .item-controls button:hover { background-color: var(--settings-list-btn-hover-bg); }
  341. .settings-modal-content .item-controls button svg { width: 1em; height: 1em; }
  342. .settings-modal-content .custom-list li[draggable="true"] { cursor: grab; user-select: none; }
  343. .settings-modal-content .custom-list li[draggable="true"]:active { cursor: grabbing; }
  344.  
  345. /* Predefined Chooser styles */
  346. .gscs-modal-add-new-option-button-class { /* Matches .tool-button */
  347. display: inline-flex; align-items: center; justify-content: center; width: auto; /* Auto width */
  348. padding: 0.4em 0.8em; /* More padding for text */ margin-bottom: 0.8em; /* Space below button */
  349. text-align: center; cursor: pointer; font-size: 0.9em; text-decoration: none;
  350. border-radius: 4px; background-color: var(--sidebar-tool-btn-bg);
  351. border: 1px solid var(--sidebar-tool-btn-border); color: var(--sidebar-tool-btn-text);
  352. line-height: 1.4;
  353. }
  354. .gscs-modal-add-new-option-button-class:hover { background-color: var(--sidebar-tool-btn-hover-bg); border-color: var(--sidebar-tool-btn-hover-border); color: var(--sidebar-tool-btn-hover-text); }
  355.  
  356. .gscs-modal-predefined-chooser {
  357. border: 1px solid var(--settings-border-color);
  358. border-radius: 4px;
  359. padding: 10px;
  360. margin-top: 5px; /* Space below the "Add New Option..." button */
  361. margin-bottom: 10px; /* Space before the main list */
  362. background-color: var(--settings-input-bg);
  363. max-height: 150px; /* Limit height */
  364. overflow-y: auto; /* Add scroll for many items */
  365. }
  366. .gscs-modal-predefined-chooser ul { list-style: none; padding: 0; margin: 0; }
  367. .gscs-modal-predefined-chooser li.gscs-modal-predefined-chooser-item {
  368. padding: 0.3em 0.5em;
  369. cursor: default; /* Items themselves are not draggable */
  370. }
  371. .gscs-modal-predefined-chooser li.gscs-modal-predefined-chooser-item:hover {
  372. background-color: var(--settings-list-btn-hover-bg);
  373. }
  374. .gscs-modal-predefined-chooser li.gscs-modal-predefined-chooser-item input[type="checkbox"] {
  375. margin-right: 0.5em;
  376. vertical-align: middle;
  377. }
  378. .gscs-modal-predefined-chooser li.gscs-modal-predefined-chooser-item label {
  379. font-weight: normal;
  380. vertical-align: middle;
  381. color: var(--settings-text-color);
  382. }
  383. .gscs-modal-predefined-chooser .chooser-buttons {
  384. text-align: right;
  385. margin-top: 10px;
  386. padding-top: 10px;
  387. border-top: 1px solid var(--settings-border-color);
  388. }
  389. .gscs-modal-predefined-chooser .chooser-buttons button {
  390. margin-left: 5px;
  391. padding: 0.4em 0.8em; /* Make buttons a bit smaller than main modal buttons */
  392. }
  393.  
  394.  
  395. .settings-modal-content .custom-list-input-group { display: flex; align-items: flex-start; gap: 0.5em; margin-bottom: 0.3em; flex-wrap: wrap; }
  396. .settings-modal-content .custom-list-input-group > div { display: flex; flex-direction: column; flex-grow: 1; min-width: 80px; }
  397. .settings-modal-content .custom-list-input-group input[type="text"] { width: 100%; }
  398. .settings-modal-content .custom-list-input-group button { flex-shrink: 0; align-self: flex-end; margin-bottom: calc(0.2em + 0.85em * 1.2); }
  399. .settings-modal-content .custom-list-input-group .add-custom-button svg, .settings-modal-content .custom-list-input-group .cancel-edit-button svg { width: 1.2em; height: 1.2em; margin:0; }
  400.  
  401.  
  402. .input-error-message { display: none; width: 100%; font-size: 0.85em; color: #dc3545; margin-top: 0.2em; line-height:1.2; }
  403. .input-error-message.error-visible { display: block; }
  404. input.input-has-error { border-color: #dc3545 !important; }
  405. .settings-modal-content input.input-valid { border-color: #28a745 !important; }
  406.  
  407. .settings-modal-content .custom-list-input-group + .setting-value-hint { display: block; margin-top: 0.5em; font-size: 0.9em; white-space: normal; color: var(--settings-tab-color); }
  408.  
  409.  
  410. @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
  411. #customizable-search-sidebar button svg,
  412. #settings-window button:not(.settings-modal-close-btn) svg,
  413. .settings-modal-content button:not(.settings-modal-close-btn):not(.gscs-modal-add-new-option-button-class) svg { /* Exclude new button if it doesn't have icon */
  414. display: inline-block;
  415. vertical-align: middle;
  416. width: 1em;
  417. height: 1em;
  418. pointer-events: none;
  419. }
  420. #customizable-search-sidebar .sidebar-header-button svg,
  421. #customizable-search-sidebar #sidebar-collapse-button svg,
  422. #customizable-search-sidebar .sidebar-settings-button svg {
  423. width: var(--sidebar-header-icon-base-size);
  424. height: var(--sidebar-header-icon-base-size);
  425. }
  426. #customizable-search-sidebar .tool-button svg {
  427. width: 0.9em;
  428. height: 0.9em;
  429. }
  430.  
  431.  
  432. #gscs-notification-container { position: fixed; bottom: 20px; right: 20px; z-index: 9999; display: flex; flex-direction: column-reverse; align-items: flex-end; gap: 10px; }
  433. .gscs-notification { background-color: var(--settings-input-bg); color: var(--settings-text-color); padding: 12px 18px; border-radius: 6px; box-shadow: 0 3px 10px rgba(0, 0, 0, 0.2); min-width: 250px; max-width: 400px; font-size: 0.95em; border: 1px solid var(--settings-border-color); opacity: 1; transition: opacity 0.5s ease-out, transform 0.3s ease-out; transform: translateX(0); }
  434. .gscs-notification:hover { box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3); }
  435. .gscs-notification.gscs-ntf-info { background-color: var(--gscs-ntf-info-bg); color: var(--gscs-ntf-info-text); border-color: var(--gscs-ntf-info-border); }
  436. .gscs-notification.gscs-ntf-success { background-color: var(--gscs-msg-success-bg); color: var(--gscs-msg-success-text); border-color: var(--gscs-msg-success-border); }
  437. .gscs-notification.gscs-ntf-warning { background-color: var(--gscs-msg-warning-bg); color: var(--gscs-msg-warning-text); border-color: var(--gscs-msg-warning-border); }
  438. .gscs-notification.gscs-ntf-error { background-color: var(--gscs-msg-error-bg); color: var(--gscs-msg-error-text); border-color: var(--gscs-msg-error-border); }
  439. .gscs-notification span[style*="cursor: pointer"] { font-weight: bold; opacity: 0.7; }
  440. .gscs-notification span[style*="cursor: pointer"]:hover { opacity: 1; }
  441.  
  442. /* --- END OF GSCS CSS --- */
  443. `;
  444.  
  445. // --- START OF ADDITION for event dispatch ---
  446. if (typeof GM_info !== 'undefined' && GM_info.script && GM_info.script.version) {
  447. // Check if stylesText is actually populated before dispatching
  448. if (window.GSCS_Namespace && typeof window.GSCS_Namespace.stylesText === 'string' && window.GSCS_Namespace.stylesText.trim() !== '') {
  449. const event = new CustomEvent('gscsStylesLoaded', { detail: { version: GM_info.script.version } });
  450. document.dispatchEvent(event);
  451. console.log(`[GSCS StylesProvider v${GM_info.script.version.replace('-styles','-styles-event')}] CSS loaded and "gscsStylesLoaded" event dispatched.`);
  452. } else {
  453. console.warn(`[GSCS StylesProvider v${GM_info.script.version.replace('-styles','-styles-event')}] window.GSCS_Namespace.stylesText is empty or not found, "gscsStylesLoaded" event NOT dispatched.`);
  454. }
  455. } else {
  456. // Fallback if GM_info is not available (should not happen in a proper userscript environment)
  457. if (window.GSCS_Namespace && typeof window.GSCS_Namespace.stylesText === 'string' && window.GSCS_Namespace.stylesText.trim() !== '') {
  458. const event = new CustomEvent('gscsStylesLoaded', { detail: { version: 'unknown' } });
  459. document.dispatchEvent(event);
  460. console.log(`[GSCS StylesProvider vUNKNOWN-styles-event] CSS loaded and "gscsStylesLoaded" event dispatched (GM_info not available).`);
  461. } else {
  462. console.warn(`[GSCS StylesProvider vUNKNOWN-styles-event] window.GSCS_Namespace.stylesText not found, "gscsStylesLoaded" event NOT dispatched (GM_info not available).`);
  463. }
  464. }
  465. // --- END OF ADDITION for event dispatch ---
  466.  
  467. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址