super-quick-rb 0.0.1

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 (218) hide show
  1. checksums.yaml +7 -0
  2. data/rdoc-8.0.0/CONTRIBUTING.md +195 -0
  3. data/rdoc-8.0.0/CVE-2013-0256.rdoc +49 -0
  4. data/rdoc-8.0.0/History.rdoc +1668 -0
  5. data/rdoc-8.0.0/LEGAL.rdoc +56 -0
  6. data/rdoc-8.0.0/LICENSE.rdoc +63 -0
  7. data/rdoc-8.0.0/README.md +236 -0
  8. data/rdoc-8.0.0/RI.md +842 -0
  9. data/rdoc-8.0.0/TODO.rdoc +60 -0
  10. data/rdoc-8.0.0/doc/markup_reference/markdown.md +659 -0
  11. data/rdoc-8.0.0/doc/markup_reference/rdoc.rdoc +1169 -0
  12. data/rdoc-8.0.0/exe/rdoc +43 -0
  13. data/rdoc-8.0.0/exe/ri +12 -0
  14. data/rdoc-8.0.0/lib/rdoc/code_object/alias.rb +98 -0
  15. data/rdoc-8.0.0/lib/rdoc/code_object/any_method.rb +387 -0
  16. data/rdoc-8.0.0/lib/rdoc/code_object/attr.rb +178 -0
  17. data/rdoc-8.0.0/lib/rdoc/code_object/class_module.rb +969 -0
  18. data/rdoc-8.0.0/lib/rdoc/code_object/constant.rb +221 -0
  19. data/rdoc-8.0.0/lib/rdoc/code_object/context/section.rb +182 -0
  20. data/rdoc-8.0.0/lib/rdoc/code_object/context.rb +1238 -0
  21. data/rdoc-8.0.0/lib/rdoc/code_object/extend.rb +9 -0
  22. data/rdoc-8.0.0/lib/rdoc/code_object/include.rb +9 -0
  23. data/rdoc-8.0.0/lib/rdoc/code_object/method_attr.rb +417 -0
  24. data/rdoc-8.0.0/lib/rdoc/code_object/mixin.rb +123 -0
  25. data/rdoc-8.0.0/lib/rdoc/code_object/normal_class.rb +92 -0
  26. data/rdoc-8.0.0/lib/rdoc/code_object/normal_module.rb +73 -0
  27. data/rdoc-8.0.0/lib/rdoc/code_object/require.rb +51 -0
  28. data/rdoc-8.0.0/lib/rdoc/code_object/single_class.rb +30 -0
  29. data/rdoc-8.0.0/lib/rdoc/code_object/top_level.rb +286 -0
  30. data/rdoc-8.0.0/lib/rdoc/code_object.rb +393 -0
  31. data/rdoc-8.0.0/lib/rdoc/code_objects.rb +5 -0
  32. data/rdoc-8.0.0/lib/rdoc/comment.rb +353 -0
  33. data/rdoc-8.0.0/lib/rdoc/cross_reference.rb +215 -0
  34. data/rdoc-8.0.0/lib/rdoc/encoding.rb +120 -0
  35. data/rdoc-8.0.0/lib/rdoc/erb_partial.rb +18 -0
  36. data/rdoc-8.0.0/lib/rdoc/erbio.rb +37 -0
  37. data/rdoc-8.0.0/lib/rdoc/generator/aliki.rb +200 -0
  38. data/rdoc-8.0.0/lib/rdoc/generator/darkfish.rb +824 -0
  39. data/rdoc-8.0.0/lib/rdoc/generator/json_index.rb +284 -0
  40. data/rdoc-8.0.0/lib/rdoc/generator/markup.rb +196 -0
  41. data/rdoc-8.0.0/lib/rdoc/generator/pot/message_extractor.rb +68 -0
  42. data/rdoc-8.0.0/lib/rdoc/generator/pot/po.rb +84 -0
  43. data/rdoc-8.0.0/lib/rdoc/generator/pot/po_entry.rb +141 -0
  44. data/rdoc-8.0.0/lib/rdoc/generator/pot.rb +94 -0
  45. data/rdoc-8.0.0/lib/rdoc/generator/ri.rb +30 -0
  46. data/rdoc-8.0.0/lib/rdoc/generator/template/aliki/DESIGN.md +536 -0
  47. data/rdoc-8.0.0/lib/rdoc/generator/template/aliki/_aside_toc.rhtml +8 -0
  48. data/rdoc-8.0.0/lib/rdoc/generator/template/aliki/_footer.rhtml +23 -0
  49. data/rdoc-8.0.0/lib/rdoc/generator/template/aliki/_head.rhtml +163 -0
  50. data/rdoc-8.0.0/lib/rdoc/generator/template/aliki/_header.rhtml +56 -0
  51. data/rdoc-8.0.0/lib/rdoc/generator/template/aliki/_icons.rhtml +208 -0
  52. data/rdoc-8.0.0/lib/rdoc/generator/template/aliki/_sidebar_ancestors.rhtml +16 -0
  53. data/rdoc-8.0.0/lib/rdoc/generator/template/aliki/_sidebar_classes.rhtml +15 -0
  54. data/rdoc-8.0.0/lib/rdoc/generator/template/aliki/_sidebar_extends.rhtml +27 -0
  55. data/rdoc-8.0.0/lib/rdoc/generator/template/aliki/_sidebar_includes.rhtml +27 -0
  56. data/rdoc-8.0.0/lib/rdoc/generator/template/aliki/_sidebar_installed.rhtml +16 -0
  57. data/rdoc-8.0.0/lib/rdoc/generator/template/aliki/_sidebar_methods.rhtml +41 -0
  58. data/rdoc-8.0.0/lib/rdoc/generator/template/aliki/_sidebar_pages.rhtml +67 -0
  59. data/rdoc-8.0.0/lib/rdoc/generator/template/aliki/_sidebar_search.rhtml +15 -0
  60. data/rdoc-8.0.0/lib/rdoc/generator/template/aliki/_sidebar_sections.rhtml +21 -0
  61. data/rdoc-8.0.0/lib/rdoc/generator/template/aliki/_sidebar_toggle.rhtml +3 -0
  62. data/rdoc-8.0.0/lib/rdoc/generator/template/aliki/class.rhtml +230 -0
  63. data/rdoc-8.0.0/lib/rdoc/generator/template/aliki/css/rdoc.css +2181 -0
  64. data/rdoc-8.0.0/lib/rdoc/generator/template/aliki/index.rhtml +22 -0
  65. data/rdoc-8.0.0/lib/rdoc/generator/template/aliki/js/aliki.js +513 -0
  66. data/rdoc-8.0.0/lib/rdoc/generator/template/aliki/js/bash_highlighter.js +167 -0
  67. data/rdoc-8.0.0/lib/rdoc/generator/template/aliki/js/c_highlighter.js +299 -0
  68. data/rdoc-8.0.0/lib/rdoc/generator/template/aliki/js/search_controller.js +129 -0
  69. data/rdoc-8.0.0/lib/rdoc/generator/template/aliki/js/search_navigation.js +105 -0
  70. data/rdoc-8.0.0/lib/rdoc/generator/template/aliki/js/search_ranker.js +239 -0
  71. data/rdoc-8.0.0/lib/rdoc/generator/template/aliki/js/theme-toggle.js +112 -0
  72. data/rdoc-8.0.0/lib/rdoc/generator/template/aliki/page.rhtml +18 -0
  73. data/rdoc-8.0.0/lib/rdoc/generator/template/aliki/servlet_not_found.rhtml +14 -0
  74. data/rdoc-8.0.0/lib/rdoc/generator/template/aliki/servlet_root.rhtml +65 -0
  75. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/_footer.rhtml +5 -0
  76. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/_head.rhtml +43 -0
  77. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml +5 -0
  78. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/_sidebar_extends.rhtml +17 -0
  79. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml +17 -0
  80. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/_sidebar_installed.rhtml +16 -0
  81. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/_sidebar_methods.rhtml +21 -0
  82. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/_sidebar_navigation.rhtml +11 -0
  83. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml +32 -0
  84. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/_sidebar_parent.rhtml +6 -0
  85. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/_sidebar_search.rhtml +15 -0
  86. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/_sidebar_sections.rhtml +11 -0
  87. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml +39 -0
  88. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/_sidebar_toggle.rhtml +3 -0
  89. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/class.rhtml +220 -0
  90. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/css/fonts.css +167 -0
  91. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/css/rdoc.css +701 -0
  92. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/fonts/Lato-Light.ttf +0 -0
  93. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/fonts/Lato-LightItalic.ttf +0 -0
  94. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/fonts/Lato-Regular.ttf +0 -0
  95. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/fonts/Lato-RegularItalic.ttf +0 -0
  96. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/fonts/SourceCodePro-Bold.ttf +0 -0
  97. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/fonts/SourceCodePro-Regular.ttf +0 -0
  98. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/images/add.png +0 -0
  99. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/images/arrow_up.png +0 -0
  100. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/images/brick.png +0 -0
  101. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/images/brick_link.png +0 -0
  102. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/images/bug.png +0 -0
  103. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/images/bullet_black.png +0 -0
  104. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/images/bullet_toggle_minus.png +0 -0
  105. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/images/bullet_toggle_plus.png +0 -0
  106. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/images/date.png +0 -0
  107. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/images/delete.png +0 -0
  108. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/images/find.png +0 -0
  109. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/images/loadingAnimation.gif +0 -0
  110. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/images/macFFBgHack.png +0 -0
  111. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/images/package.png +0 -0
  112. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/images/page_green.png +0 -0
  113. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/images/page_white_text.png +0 -0
  114. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/images/page_white_width.png +0 -0
  115. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/images/plugin.png +0 -0
  116. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/images/ruby.png +0 -0
  117. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/images/tag_blue.png +0 -0
  118. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/images/tag_green.png +0 -0
  119. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/images/transparent.png +0 -0
  120. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/images/wrench.png +0 -0
  121. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/images/wrench_orange.png +0 -0
  122. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/images/zoom.png +0 -0
  123. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/index.rhtml +24 -0
  124. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/js/darkfish.js +140 -0
  125. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/js/search.js +120 -0
  126. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/page.rhtml +19 -0
  127. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/servlet_not_found.rhtml +21 -0
  128. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/servlet_root.rhtml +65 -0
  129. data/rdoc-8.0.0/lib/rdoc/generator/template/darkfish/table_of_contents.rhtml +72 -0
  130. data/rdoc-8.0.0/lib/rdoc/generator/template/json_index/js/navigation.js +105 -0
  131. data/rdoc-8.0.0/lib/rdoc/generator/template/json_index/js/searcher.js +271 -0
  132. data/rdoc-8.0.0/lib/rdoc/generator.rb +52 -0
  133. data/rdoc-8.0.0/lib/rdoc/i18n/locale.rb +102 -0
  134. data/rdoc-8.0.0/lib/rdoc/i18n/text.rb +126 -0
  135. data/rdoc-8.0.0/lib/rdoc/i18n.rb +10 -0
  136. data/rdoc-8.0.0/lib/rdoc/known_classes.rb +74 -0
  137. data/rdoc-8.0.0/lib/rdoc/markdown/entities.rb +2131 -0
  138. data/rdoc-8.0.0/lib/rdoc/markdown/literals.kpeg +21 -0
  139. data/rdoc-8.0.0/lib/rdoc/markdown/literals.rb +454 -0
  140. data/rdoc-8.0.0/lib/rdoc/markdown.kpeg +1315 -0
  141. data/rdoc-8.0.0/lib/rdoc/markdown.rb +16865 -0
  142. data/rdoc-8.0.0/lib/rdoc/markup/blank_line.rb +29 -0
  143. data/rdoc-8.0.0/lib/rdoc/markup/block_quote.rb +14 -0
  144. data/rdoc-8.0.0/lib/rdoc/markup/document.rb +164 -0
  145. data/rdoc-8.0.0/lib/rdoc/markup/element.rb +21 -0
  146. data/rdoc-8.0.0/lib/rdoc/markup/formatter.rb +285 -0
  147. data/rdoc-8.0.0/lib/rdoc/markup/hard_break.rb +34 -0
  148. data/rdoc-8.0.0/lib/rdoc/markup/heading.rb +170 -0
  149. data/rdoc-8.0.0/lib/rdoc/markup/include.rb +42 -0
  150. data/rdoc-8.0.0/lib/rdoc/markup/indented_paragraph.rb +47 -0
  151. data/rdoc-8.0.0/lib/rdoc/markup/inline_parser.rb +312 -0
  152. data/rdoc-8.0.0/lib/rdoc/markup/list.rb +101 -0
  153. data/rdoc-8.0.0/lib/rdoc/markup/list_item.rb +99 -0
  154. data/rdoc-8.0.0/lib/rdoc/markup/paragraph.rb +28 -0
  155. data/rdoc-8.0.0/lib/rdoc/markup/parser.rb +585 -0
  156. data/rdoc-8.0.0/lib/rdoc/markup/pre_process.rb +317 -0
  157. data/rdoc-8.0.0/lib/rdoc/markup/raw.rb +66 -0
  158. data/rdoc-8.0.0/lib/rdoc/markup/rule.rb +20 -0
  159. data/rdoc-8.0.0/lib/rdoc/markup/table.rb +64 -0
  160. data/rdoc-8.0.0/lib/rdoc/markup/to_ansi.rb +144 -0
  161. data/rdoc-8.0.0/lib/rdoc/markup/to_bs.rb +86 -0
  162. data/rdoc-8.0.0/lib/rdoc/markup/to_html.rb +682 -0
  163. data/rdoc-8.0.0/lib/rdoc/markup/to_html_crossref.rb +261 -0
  164. data/rdoc-8.0.0/lib/rdoc/markup/to_html_snippet.rb +287 -0
  165. data/rdoc-8.0.0/lib/rdoc/markup/to_joined_paragraph.rb +41 -0
  166. data/rdoc-8.0.0/lib/rdoc/markup/to_label.rb +84 -0
  167. data/rdoc-8.0.0/lib/rdoc/markup/to_markdown.rb +215 -0
  168. data/rdoc-8.0.0/lib/rdoc/markup/to_rdoc.rb +421 -0
  169. data/rdoc-8.0.0/lib/rdoc/markup/to_table_of_contents.rb +88 -0
  170. data/rdoc-8.0.0/lib/rdoc/markup/to_test.rb +77 -0
  171. data/rdoc-8.0.0/lib/rdoc/markup/to_tt_only.rb +107 -0
  172. data/rdoc-8.0.0/lib/rdoc/markup/verbatim.rb +83 -0
  173. data/rdoc-8.0.0/lib/rdoc/markup.rb +219 -0
  174. data/rdoc-8.0.0/lib/rdoc/options.rb +1412 -0
  175. data/rdoc-8.0.0/lib/rdoc/parser/c.rb +1227 -0
  176. data/rdoc-8.0.0/lib/rdoc/parser/changelog.rb +379 -0
  177. data/rdoc-8.0.0/lib/rdoc/parser/markdown.rb +22 -0
  178. data/rdoc-8.0.0/lib/rdoc/parser/rbs.rb +275 -0
  179. data/rdoc-8.0.0/lib/rdoc/parser/rd.rb +22 -0
  180. data/rdoc-8.0.0/lib/rdoc/parser/ruby.rb +1266 -0
  181. data/rdoc-8.0.0/lib/rdoc/parser/ruby_colorizer.rb +253 -0
  182. data/rdoc-8.0.0/lib/rdoc/parser/simple.rb +44 -0
  183. data/rdoc-8.0.0/lib/rdoc/parser/text.rb +11 -0
  184. data/rdoc-8.0.0/lib/rdoc/parser.rb +298 -0
  185. data/rdoc-8.0.0/lib/rdoc/rbs_helper.rb +186 -0
  186. data/rdoc-8.0.0/lib/rdoc/rd/block_parser.rb +1706 -0
  187. data/rdoc-8.0.0/lib/rdoc/rd/block_parser.ry +643 -0
  188. data/rdoc-8.0.0/lib/rdoc/rd/inline.rb +71 -0
  189. data/rdoc-8.0.0/lib/rdoc/rd/inline_parser.rb +1854 -0
  190. data/rdoc-8.0.0/lib/rdoc/rd/inline_parser.ry +593 -0
  191. data/rdoc-8.0.0/lib/rdoc/rd.rb +99 -0
  192. data/rdoc-8.0.0/lib/rdoc/rdoc.rb +724 -0
  193. data/rdoc-8.0.0/lib/rdoc/ri/driver.rb +1572 -0
  194. data/rdoc-8.0.0/lib/rdoc/ri/formatter.rb +6 -0
  195. data/rdoc-8.0.0/lib/rdoc/ri/paths.rb +171 -0
  196. data/rdoc-8.0.0/lib/rdoc/ri/servlet.rb +452 -0
  197. data/rdoc-8.0.0/lib/rdoc/ri/store.rb +6 -0
  198. data/rdoc-8.0.0/lib/rdoc/ri/task.rb +71 -0
  199. data/rdoc-8.0.0/lib/rdoc/ri.rb +21 -0
  200. data/rdoc-8.0.0/lib/rdoc/rubygems_hook.rb +327 -0
  201. data/rdoc-8.0.0/lib/rdoc/server.rb +460 -0
  202. data/rdoc-8.0.0/lib/rdoc/stats/normal.rb +58 -0
  203. data/rdoc-8.0.0/lib/rdoc/stats/quiet.rb +59 -0
  204. data/rdoc-8.0.0/lib/rdoc/stats/verbose.rb +44 -0
  205. data/rdoc-8.0.0/lib/rdoc/stats.rb +484 -0
  206. data/rdoc-8.0.0/lib/rdoc/store.rb +1205 -0
  207. data/rdoc-8.0.0/lib/rdoc/task.rb +355 -0
  208. data/rdoc-8.0.0/lib/rdoc/text.rb +244 -0
  209. data/rdoc-8.0.0/lib/rdoc/token_stream.rb +104 -0
  210. data/rdoc-8.0.0/lib/rdoc/tom_doc.rb +257 -0
  211. data/rdoc-8.0.0/lib/rdoc/version.rb +10 -0
  212. data/rdoc-8.0.0/lib/rdoc.rb +239 -0
  213. data/rdoc-8.0.0/lib/rubygems_plugin.rb +14 -0
  214. data/rdoc-8.0.0/man/ri.1 +249 -0
  215. data/rdoc-8.0.0/rdoc-logo.svg +43 -0
  216. data/rdoc-8.0.0/rdoc.gemspec +74 -0
  217. data/super-quick-rb.gemspec +12 -0
  218. metadata +257 -0
@@ -0,0 +1,2181 @@
1
+ /*
2
+ * Aliki Theme Stylesheet
3
+ * Modern RDoc theme by Stan Lo
4
+ *
5
+ * Features:
6
+ * - Three-column responsive layout (navigation, content, table of contents)
7
+ * - Dark mode support with localStorage persistence
8
+ * - Auto-generated right sidebar TOC with scroll spy
9
+ * - Mobile-optimized search modal
10
+ * - Enhanced syntax highlighting for both light and dark themes
11
+ * - Code-copying functionality
12
+ */
13
+
14
+ /* 1. Design System - CSS Variables and Tokens */
15
+
16
+ /* Light Theme (Default) */
17
+ :root {
18
+ /* Color Palette - Primary */
19
+ --color-primary-50: #fdeae9;
20
+ --color-primary-100: #fadad3;
21
+ --color-primary-200: #f8bfbd;
22
+ --color-primary-300: #f5a9a7;
23
+ --color-primary-400: #f07f7b;
24
+ --color-primary-500: #eb544f;
25
+ --color-primary-600: #e62923;
26
+ --color-primary-700: #b8211c;
27
+ --color-primary-800: #8a1915;
28
+ --color-primary-900: #5c100e;
29
+
30
+ /* Color Palette - Neutral */
31
+ --color-neutral-50: #fafaf9;
32
+ --color-neutral-100: #f5f5f4;
33
+ --color-neutral-200: #e7e5e4;
34
+ --color-neutral-300: #d6d3d1;
35
+ --color-neutral-400: #a8a29e;
36
+ --color-neutral-500: #78716c;
37
+ --color-neutral-600: #57534e;
38
+ --color-neutral-700: #44403c;
39
+ --color-neutral-800: #292524;
40
+ --color-neutral-900: #1c1917;
41
+
42
+ /* Code highlighting colors - neutral palette for all syntax highlighters */
43
+ --code-blue: #1d4ed8;
44
+ --code-green: #047857;
45
+ --code-orange: #d97706;
46
+ --code-purple: #7e22ce;
47
+ --code-red: #dc2626;
48
+ --code-cyan: #0891b2;
49
+ --code-gray: #78716c;
50
+
51
+ /* Color Palette - Green (for success states) */
52
+ --color-green-400: #4ade80;
53
+ --color-green-500: #22c55e;
54
+ --color-green-600: #16a34a;
55
+
56
+ /* Semantic Colors - Light Theme */
57
+ --color-text-primary: var(--color-neutral-900);
58
+ --color-text-secondary: var(--color-neutral-600);
59
+ --color-text-tertiary: var(--color-neutral-500);
60
+ --color-background-primary: #fff;
61
+ --color-background-secondary: var(--color-neutral-50);
62
+ --color-background-tertiary: var(--color-neutral-100);
63
+ --color-border-default: var(--color-neutral-300);
64
+ --color-border-subtle: var(--color-neutral-200);
65
+ --color-border-emphasis: var(--color-neutral-400);
66
+ --color-link-default: var(--color-text-primary);
67
+ --color-link-hover: var(--color-primary-600);
68
+ --color-accent-primary: var(--color-primary-600);
69
+ --color-accent-hover: var(--color-primary-700);
70
+ --color-accent-subtle: var(--color-primary-50);
71
+ --color-title-kind-border: var(--color-primary-200);
72
+ --color-code-bg: #f6f8fa;
73
+ --color-code-border: var(--color-neutral-300);
74
+ --color-sig-bg: var(--color-neutral-100);
75
+ --color-sig-border: var(--color-border-default);
76
+ --color-nav-bg: #fff;
77
+ --color-nav-text: var(--color-neutral-700);
78
+ --color-th-background: var(--color-neutral-100);
79
+ --color-td-background: var(--color-neutral-50);
80
+
81
+ /* Search Type Badge Colors */
82
+ --color-search-type-class-bg: #e6f0ff;
83
+ --color-search-type-class-text: #0050a0;
84
+ --color-search-type-module-bg: #e6ffe6;
85
+ --color-search-type-module-text: #060;
86
+ --color-search-type-constant-bg: #fff0e6;
87
+ --color-search-type-constant-text: #995200;
88
+ --color-search-type-method-bg: #f0e6ff;
89
+ --color-search-type-method-text: #5200a0;
90
+
91
+ /* RGBA Colors (theme-agnostic) */
92
+ --color-overlay: rgb(0 0 0 / 50%);
93
+ --color-emphasis-bg: rgb(255 111 97 / 10%);
94
+ --color-emphasis-decoration: rgb(52 48 64 / 25%);
95
+ --color-search-highlight-bg: rgb(224 108 117 / 10%);
96
+ --color-success-bg: rgb(34 197 94 / 10%);
97
+
98
+ /* Typography Scale */
99
+ --font-size-xs: 0.75rem; /* 12px */
100
+ --font-size-sm: 0.875rem; /* 14px */
101
+ --font-size-base: 1rem; /* 16px */
102
+ --font-size-lg: 1.125rem; /* 18px */
103
+ --font-size-xl: 1.25rem; /* 20px */
104
+ --font-size-2xl: 1.5rem; /* 24px */
105
+ --font-size-3xl: 1.875rem; /* 30px */
106
+ --font-size-4xl: 2.25rem; /* 36px */
107
+ --font-size-5xl: 3rem; /* 48px */
108
+
109
+ /* Font Families */
110
+ --font-family-base: -apple-system, blinkmacsystemfont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Helvetica Neue', sans-serif;
111
+ --font-family-heading: var(--font-family-base);
112
+ --font-family-mono: ui-monospace, 'SFMono-Regular', 'SF Mono', 'Menlo', 'Consolas', 'Liberation Mono', monospace;
113
+
114
+ /* Font Weights */
115
+ --font-weight-normal: 400;
116
+ --font-weight-medium: 500;
117
+ --font-weight-semibold: 600;
118
+ --font-weight-bold: 700;
119
+
120
+ /* Font Shortcuts */
121
+ --font-primary: var(--font-family-base);
122
+ --font-heading: var(--font-family-heading);
123
+ --font-code: var(--font-family-mono);
124
+
125
+ /* Line Heights */
126
+ --line-height-tight: 1.25;
127
+ --line-height-normal: 1.5;
128
+ --line-height-relaxed: 1.625;
129
+
130
+ /* Spacing Scale */
131
+ --space-1: 0.25rem; /* 4px */
132
+ --space-2: 0.5rem; /* 8px */
133
+ --space-3: 0.75rem; /* 12px */
134
+ --space-4: 1rem; /* 16px */
135
+ --space-5: 1.25rem; /* 20px */
136
+ --space-6: 1.5rem; /* 24px */
137
+ --space-8: 2rem; /* 32px */
138
+ --space-12: 3rem; /* 48px */
139
+ --space-16: 4rem; /* 64px */
140
+
141
+ /* Border Radius */
142
+ --radius-sm: 0.25rem; /* 4px */
143
+ --radius-md: 0.375rem; /* 6px */
144
+ --radius-lg: 0.5rem; /* 8px */
145
+
146
+ /* Shadows */
147
+ --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 10%), 0 1px 2px -1px rgb(0 0 0 / 10%);
148
+ --shadow-md: 0 2px 8px rgb(0 0 0 / 10%);
149
+ --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 10%), 0 4px 6px -4px rgb(0 0 0 / 10%);
150
+ --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 10%), 0 8px 10px -6px rgb(0 0 0 / 10%);
151
+
152
+ /* Layout Dimensions */
153
+ --layout-sidebar-width: 300px;
154
+ --layout-sidebar-width-min: 300px;
155
+ --layout-sidebar-width-max: 15%;
156
+ --layout-toc-width-min: 240px;
157
+ --layout-toc-width-max: 18%;
158
+ --layout-content-max-width: 800px;
159
+ --layout-header-height: 64px;
160
+ --layout-search-width: 400px;
161
+
162
+ /* Transitions */
163
+ --transition-fast: 150ms ease-in-out;
164
+ --transition-base: 200ms ease-in-out;
165
+ --transition-slow: 350ms ease-in-out;
166
+ --ease-out-smooth: cubic-bezier(0.4, 0, 0.2, 1);
167
+
168
+ /* Animation Durations */
169
+ --duration-fast: 250ms;
170
+ --duration-base: 300ms;
171
+ --duration-medium: 350ms;
172
+
173
+ /* Z-Index Scale */
174
+ --z-fixed: 300;
175
+ --z-modal: 400;
176
+ --z-popover: 500;
177
+
178
+ }
179
+
180
+ /* Dark Theme */
181
+ [data-theme="dark"] {
182
+ /* Code highlighting colors - neutral palette for all syntax highlighters */
183
+ --code-blue: #93c5fd;
184
+ --code-green: #34d399;
185
+ --code-orange: #fbbf24;
186
+ --code-purple: #c084fc;
187
+ --code-red: #f87171;
188
+ --code-cyan: #22d3ee;
189
+ --code-gray: #a8a29e;
190
+
191
+ /* Semantic Colors - Dark Theme */
192
+ --color-text-primary: var(--color-neutral-50);
193
+ --color-text-secondary: var(--color-neutral-200);
194
+ --color-text-tertiary: var(--color-neutral-400);
195
+ --color-background-primary: var(--color-neutral-900);
196
+ --color-background-secondary: var(--color-neutral-800);
197
+ --color-background-tertiary: var(--color-neutral-700);
198
+ --color-border-default: var(--color-neutral-600);
199
+ --color-border-subtle: var(--color-neutral-700);
200
+ --color-border-emphasis: var(--color-neutral-300);
201
+ --color-link-default: var(--color-neutral-50);
202
+ --color-link-hover: var(--color-primary-500);
203
+ --color-accent-primary: var(--color-primary-500);
204
+ --color-accent-hover: var(--color-primary-400);
205
+ --color-accent-subtle: rgb(235 84 79 / 10%);
206
+ --color-accent-subtle-hover: rgb(235 84 79 / 20%);
207
+ --color-title-kind-border: rgb(235 84 79 / 35%);
208
+ --color-code-bg: var(--color-neutral-800);
209
+ --color-code-border: var(--color-neutral-700);
210
+ --color-sig-bg: #211f1e; /* between neutral-900 and neutral-800 */
211
+ --color-sig-border: var(--color-border-subtle);
212
+ --color-nav-bg: var(--color-neutral-900);
213
+ --color-nav-text: var(--color-neutral-50);
214
+ --color-th-background: var(--color-background-tertiary);
215
+ --color-td-background: var(--color-background-secondary);
216
+
217
+ /* Search Type Badge Colors - Dark Theme */
218
+ --color-search-type-class-bg: #1e3a5f;
219
+ --color-search-type-class-text: #93c5fd;
220
+ --color-search-type-module-bg: #14532d;
221
+ --color-search-type-module-text: #86efac;
222
+ --color-search-type-constant-bg: #451a03;
223
+ --color-search-type-constant-text: #fcd34d;
224
+ --color-search-type-method-bg: #3b0764;
225
+ --color-search-type-method-text: #d8b4fe;
226
+
227
+ /* Dark theme shadows (slightly more subtle) */
228
+ --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 40%), 0 1px 2px -1px rgb(0 0 0 / 40%);
229
+ --shadow-md: 0 2px 8px rgb(0 0 0 / 40%);
230
+ --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 40%), 0 4px 6px -4px rgb(0 0 0 / 40%);
231
+ --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 40%), 0 8px 10px -6px rgb(0 0 0 / 40%);
232
+
233
+ }
234
+
235
+ /* 2. Global Styles & Layout */
236
+ body {
237
+ background: var(--color-background-primary);
238
+ font-family: var(--font-primary);
239
+ font-weight: 400;
240
+ color: var(--color-text-primary);
241
+ line-height: var(--line-height-relaxed);
242
+ margin: 0;
243
+ overflow-wrap: break-word; /* Avoid overflow on mobile */
244
+
245
+ /* Grid layout with header, sidebar, main, and footer */
246
+ display: grid;
247
+ grid-template: "header header" var(--layout-header-height) "nav main" 1fr "nav footer" auto / var(--layout-sidebar-width) 1fr;
248
+ min-height: 100vh;
249
+ }
250
+
251
+ /* Three-column layout when TOC is present */
252
+ body.has-toc {
253
+ grid-template: "header header header" var(--layout-header-height) "nav main toc" 1fr "nav footer toc" auto / var(--layout-sidebar-width) 1fr minmax(var(--layout-toc-width-min), var(--layout-toc-width-max));
254
+ min-height: 100vh;
255
+ }
256
+
257
+ /* Mobile: stack everything vertically */
258
+ @media (width <= 1023px) {
259
+ body,
260
+ body.has-toc {
261
+ display: flex;
262
+ flex-direction: column;
263
+ grid-template: none;
264
+ }
265
+ }
266
+
267
+ /* 3. Typography */
268
+
269
+ /* 4. Links */
270
+ a {
271
+ color: var(--color-link-default);
272
+ transition: color var(--transition-base);
273
+ text-decoration: underline;
274
+ text-underline-offset: 0.2em; /* Make sure it doesn't overlap with underscores in a method name. */
275
+ }
276
+
277
+ /* 5. Code and Pre */
278
+
279
+ /* Code blocks */
280
+ pre {
281
+ font-family: var(--font-code);
282
+ background-color: var(--color-code-bg);
283
+ border: 1px solid var(--color-code-border);
284
+ border-radius: var(--radius-md);
285
+ padding: var(--space-4);
286
+ overflow-x: auto;
287
+ font-size: var(--font-size-sm);
288
+ line-height: var(--line-height-normal);
289
+ margin: var(--space-4) 0;
290
+ position: relative;
291
+ }
292
+
293
+ /* Code block wrapper for copy button */
294
+ .code-block-wrapper {
295
+ position: relative;
296
+ margin: var(--space-4) 0;
297
+ }
298
+
299
+ /* Copy button styling */
300
+ .copy-code-button {
301
+ position: absolute;
302
+ top: var(--space-2);
303
+ right: var(--space-2);
304
+ padding: var(--space-2);
305
+ background: var(--color-background-secondary);
306
+ border: 1px solid var(--color-border-default);
307
+ border-radius: var(--radius-sm);
308
+ cursor: pointer;
309
+ opacity: 0.6;
310
+ transition:
311
+ opacity var(--transition-fast),
312
+ background var(--transition-fast),
313
+ border-color var(--transition-fast),
314
+ transform var(--transition-fast),
315
+ box-shadow var(--transition-fast);
316
+ display: flex;
317
+ align-items: center;
318
+ justify-content: center;
319
+ width: 2rem;
320
+ height: 2rem;
321
+ z-index: 10;
322
+ }
323
+
324
+ .copy-code-button:hover,
325
+ .copy-code-button:focus {
326
+ opacity: 1;
327
+ background: var(--color-background-tertiary);
328
+ border-color: var(--color-border-emphasis);
329
+ transform: translateY(-1px);
330
+ box-shadow: var(--shadow-md);
331
+ }
332
+
333
+ .copy-code-button:focus {
334
+ outline: none;
335
+ box-shadow: 0 0 0 3px var(--color-accent-subtle);
336
+ }
337
+
338
+ .copy-code-button:active {
339
+ transform: scale(0.92);
340
+ box-shadow: none;
341
+ }
342
+
343
+ .copy-code-button svg {
344
+ width: 1rem;
345
+ height: 1rem;
346
+ fill: none;
347
+ stroke: currentcolor;
348
+ stroke-width: 2;
349
+ stroke-linecap: round;
350
+ stroke-linejoin: round;
351
+ color: var(--color-text-secondary);
352
+ transition: color var(--transition-fast), transform var(--transition-base);
353
+ }
354
+
355
+ .copy-code-button:hover svg {
356
+ color: var(--color-text-primary);
357
+ }
358
+
359
+ /* Copied state - subtle green checkmark */
360
+ .copy-code-button.copied {
361
+ background: var(--color-success-bg);
362
+ border-color: var(--color-green-500);
363
+ opacity: 1;
364
+ }
365
+
366
+ .copy-code-button.copied svg {
367
+ color: var(--color-green-600);
368
+ }
369
+
370
+ [data-theme="dark"] .copy-code-button.copied {
371
+ border-color: var(--color-green-400);
372
+ }
373
+
374
+ [data-theme="dark"] .copy-code-button.copied svg {
375
+ color: var(--color-green-400);
376
+ }
377
+
378
+ /* Mobile adjustments */
379
+ @media (hover: none) {
380
+ .copy-code-button {
381
+ opacity: 0.7;
382
+ }
383
+
384
+ .copy-code-button:active {
385
+ opacity: 1;
386
+ }
387
+ }
388
+
389
+ /* Inline code */
390
+ code {
391
+ font-family: var(--font-code);
392
+ background-color: var(--color-code-bg);
393
+ border: 1px solid var(--color-border-subtle);
394
+ padding: 0.125rem 0.375rem;
395
+ border-radius: var(--radius-sm);
396
+ font-size: 0.9em;
397
+ }
398
+
399
+ pre code {
400
+ background: none;
401
+ border: none;
402
+ padding: 0;
403
+ font-size: inherit;
404
+ }
405
+
406
+ a code:hover {
407
+ color: var(--color-link-hover);
408
+ }
409
+
410
+ /* Tables */
411
+ table {
412
+ margin: 0;
413
+ border-spacing: 0;
414
+ border-collapse: collapse;
415
+ }
416
+
417
+ table tr th, table tr td {
418
+ padding: 0.2em 0.4em;
419
+ border: 1px solid var(--color-border-default);
420
+ }
421
+
422
+ table tr th {
423
+ background-color: var(--color-th-background);
424
+ }
425
+
426
+ table tr:nth-child(even) td {
427
+ background-color: var(--color-td-background);
428
+ }
429
+
430
+ /* 6. Header (Top Navbar) */
431
+ header.top-navbar {
432
+ grid-area: header;
433
+ position: sticky;
434
+ top: 0;
435
+ z-index: var(--z-fixed);
436
+ background: var(--color-background-primary);
437
+ border-bottom: 1px solid var(--color-border-default);
438
+ display: grid;
439
+ grid-template-columns:
440
+ var(--layout-sidebar-width)
441
+ minmax(0, 1fr);
442
+ align-items: center;
443
+ padding: 0;
444
+ height: var(--layout-header-height);
445
+ box-shadow: var(--shadow-sm);
446
+ }
447
+
448
+ body.has-toc header.top-navbar {
449
+ grid-template-columns:
450
+ var(--layout-sidebar-width)
451
+ minmax(0, 1fr)
452
+ minmax(var(--layout-toc-width-min), var(--layout-toc-width-max));
453
+ }
454
+
455
+ @media (width <= 1279px) {
456
+ body.has-toc header.top-navbar {
457
+ grid-template-columns:
458
+ var(--layout-sidebar-width)
459
+ minmax(0, 1fr);
460
+ }
461
+ }
462
+
463
+ header.top-navbar .navbar-brand {
464
+ grid-column: 1;
465
+ justify-self: start;
466
+ margin-left: var(--space-6);
467
+ font-size: var(--font-size-xl);
468
+ font-weight: var(--font-weight-semibold);
469
+ color: var(--color-text-primary);
470
+ text-decoration: none;
471
+ white-space: nowrap;
472
+ }
473
+
474
+ header.top-navbar .navbar-brand:hover {
475
+ color: var(--color-accent-primary);
476
+ }
477
+
478
+ header.top-navbar .navbar-search {
479
+ grid-column: 2;
480
+ justify-self: center;
481
+ box-sizing: border-box;
482
+ width: min(100%, var(--layout-content-max-width));
483
+ padding: 0 var(--space-8);
484
+ }
485
+
486
+ header.top-navbar .navbar-search form {
487
+ position: relative;
488
+ width: min(100%, var(--layout-search-width));
489
+ margin: 0;
490
+ padding: 0;
491
+ }
492
+
493
+
494
+
495
+ /* Mobile search icon button (hidden on desktop) */
496
+ .navbar-search-mobile {
497
+ display: none;
498
+ }
499
+
500
+ /* Theme toggle button */
501
+ .theme-toggle {
502
+ position: absolute;
503
+ top: 50%;
504
+ right: var(--space-6);
505
+ display: flex;
506
+ align-items: center;
507
+ justify-content: center;
508
+ padding: var(--space-2);
509
+ background: transparent;
510
+ border: 1px solid var(--color-border-default);
511
+ border-radius: var(--radius-md);
512
+ color: var(--color-text-primary);
513
+ cursor: pointer;
514
+ transition:
515
+ background var(--transition-fast),
516
+ border-color var(--transition-fast),
517
+ color var(--transition-fast),
518
+ transform var(--transition-fast);
519
+ font-size: var(--font-size-lg);
520
+ line-height: 1;
521
+ width: 2.5rem;
522
+ height: 2.5rem;
523
+ transform: translateY(-50%);
524
+ }
525
+
526
+ .theme-toggle:hover {
527
+ background: var(--color-background-secondary);
528
+ border-color: var(--color-accent-primary);
529
+ color: var(--color-accent-primary);
530
+ transform: translateY(-50%) scale(1.05);
531
+ }
532
+
533
+ .theme-toggle:focus {
534
+ outline: none;
535
+ border-color: var(--color-accent-primary);
536
+ box-shadow: 0 0 0 3px var(--color-accent-subtle);
537
+ }
538
+
539
+ .theme-toggle:active {
540
+ transform: translateY(-50%) scale(0.95);
541
+ }
542
+
543
+ .theme-toggle-icon {
544
+ display: inline-block;
545
+ transition: transform var(--duration-base) var(--ease-out-smooth);
546
+ }
547
+
548
+ .theme-toggle:hover .theme-toggle-icon {
549
+ transform: rotate(15deg) scale(1.1);
550
+ }
551
+
552
+ /* Mobile navbar */
553
+ @media (width <= 1023px) {
554
+ header.top-navbar {
555
+ display: flex;
556
+ align-items: center;
557
+ padding: 0 var(--space-4);
558
+ gap: var(--space-4);
559
+ }
560
+
561
+ /* Hide desktop search bar on mobile */
562
+ header.top-navbar .navbar-search-desktop {
563
+ display: none;
564
+ }
565
+
566
+ /* Show mobile search icon */
567
+ .navbar-search-mobile {
568
+ display: flex;
569
+ align-items: center;
570
+ justify-content: center;
571
+ padding: 0.5rem;
572
+ background: transparent;
573
+ border: none;
574
+ font-size: 1.25rem;
575
+ color: var(--color-text-primary);
576
+ cursor: pointer;
577
+ transition: color var(--transition-fast);
578
+ }
579
+
580
+ .navbar-search-mobile:hover {
581
+ color: var(--color-accent-primary);
582
+ }
583
+
584
+ /* Brand needs left margin for hamburger button */
585
+ header.top-navbar .navbar-brand {
586
+ margin-left: 2.5rem;
587
+ flex: 1;
588
+ font-size: var(--font-size-lg);
589
+ overflow: hidden;
590
+ text-overflow: ellipsis;
591
+ white-space: nowrap;
592
+ }
593
+
594
+ .theme-toggle {
595
+ position: static;
596
+ transform: none;
597
+ margin-right: 0;
598
+ }
599
+
600
+ .theme-toggle:hover {
601
+ transform: scale(1.05);
602
+ }
603
+
604
+ .theme-toggle:active {
605
+ transform: scale(0.95);
606
+ }
607
+ }
608
+
609
+ /* 7. Navigation (Left Sidebar) */
610
+ #sidebar-navigation {
611
+ grid-area: nav;
612
+ font-family: var(--font-heading);
613
+ font-size: var(--font-size-base);
614
+ border-right: 1px solid var(--color-border-default);
615
+ background: var(--color-nav-bg);
616
+ color: var(--color-nav-text);
617
+ overflow: hidden auto;
618
+ overscroll-behavior: contain;
619
+ display: flex;
620
+ flex-direction: column;
621
+ position: sticky;
622
+ top: var(--layout-header-height);
623
+ height: calc(100vh - var(--layout-header-height));
624
+ scrollbar-width: thin;
625
+ scrollbar-color: var(--color-border-default) transparent;
626
+ }
627
+
628
+ /* Custom scrollbar for WebKit browsers */
629
+ #sidebar-navigation::-webkit-scrollbar {
630
+ width: 6px;
631
+ }
632
+
633
+ #sidebar-navigation::-webkit-scrollbar-track {
634
+ background: transparent;
635
+ }
636
+
637
+ #sidebar-navigation::-webkit-scrollbar-thumb {
638
+ background: var(--color-border-default);
639
+ border-radius: var(--radius-sm);
640
+ transition: background var(--transition-fast);
641
+ }
642
+
643
+ #sidebar-navigation::-webkit-scrollbar-thumb:hover {
644
+ background: var(--color-border-emphasis);
645
+ }
646
+
647
+ /* Mobile navigation */
648
+ @media (width <= 1023px) {
649
+ #sidebar-navigation {
650
+ position: fixed;
651
+ top: var(--layout-header-height);
652
+ bottom: 0;
653
+ left: 0;
654
+ width: var(--layout-sidebar-width);
655
+ z-index: calc(var(--z-fixed) - 10); /* Below header */
656
+ box-shadow: var(--shadow-lg);
657
+
658
+ /* Don't set height - let top/bottom define it */
659
+ }
660
+
661
+ #sidebar-navigation[hidden] {
662
+ display: none;
663
+ }
664
+
665
+ /* Backdrop for mobile nav */
666
+ body::before {
667
+ content: '';
668
+ position: fixed;
669
+ inset: var(--layout-header-height) 0 0 0;
670
+ background: var(--color-overlay);
671
+ z-index: calc(var(--z-fixed) - 20);
672
+ opacity: 0;
673
+ pointer-events: none;
674
+ transition: opacity var(--transition-base);
675
+ }
676
+
677
+ /* Show backdrop when nav is open */
678
+ body.sidebar-navigation-open::before {
679
+ opacity: 1;
680
+ pointer-events: auto;
681
+ }
682
+ }
683
+
684
+ /* Desktop: hide nav when [hidden] attribute is set */
685
+ @media (width >= 1024px) {
686
+ #sidebar-navigation[hidden] {
687
+ display: none;
688
+ }
689
+ }
690
+
691
+ #sidebar-navigation .nav-section {
692
+ margin-top: var(--space-6);
693
+ padding: 0 var(--space-6);
694
+ }
695
+
696
+ #sidebar-navigation h2,
697
+ #sidebar-navigation h3 {
698
+ font-size: var(--font-size-lg);
699
+ font-weight: var(--font-weight-semibold);
700
+ margin: 0 0 var(--space-4);
701
+ padding: var(--space-2) 0;
702
+ color: var(--color-accent-primary);
703
+ border-bottom: 1px solid var(--color-border-default);
704
+ }
705
+
706
+ #sidebar-navigation ul,
707
+ #sidebar-navigation dl,
708
+ #sidebar-navigation p {
709
+ padding: 0;
710
+ list-style: none;
711
+ margin: var(--space-3) 0;
712
+ }
713
+
714
+ #sidebar-navigation ul li {
715
+ margin-bottom: var(--space-2);
716
+ line-height: var(--line-height-relaxed);
717
+ }
718
+
719
+ #sidebar-navigation ul li a {
720
+ transition:
721
+ color var(--transition-fast),
722
+ transform var(--transition-fast),
723
+ padding var(--transition-fast);
724
+ }
725
+
726
+ #sidebar-navigation ul li a:hover {
727
+ padding-left: var(--space-1);
728
+ }
729
+
730
+ #sidebar-navigation ul ul {
731
+ padding-left: var(--space-5);
732
+ margin: var(--space-2) 0 0;
733
+ }
734
+
735
+ #sidebar-navigation ul ul ul {
736
+ padding-left: var(--space-5);
737
+ }
738
+
739
+ #sidebar-navigation ul ul ul ul {
740
+ padding-left: var(--space-5);
741
+ }
742
+
743
+ #sidebar-navigation a {
744
+ text-decoration: none;
745
+ }
746
+
747
+ /* Truncation for direct nav links (not links inside code tags) */
748
+ #sidebar-navigation .nav-list > li > a,
749
+ #sidebar-navigation .nav-section > ul > li > a,
750
+ #sidebar-navigation .nav-section > dl > dd > a {
751
+ display: block;
752
+ max-width: 100%;
753
+ overflow: hidden;
754
+ text-overflow: ellipsis;
755
+ white-space: nowrap;
756
+ }
757
+
758
+ #sidebar-navigation footer {
759
+ padding: var(--space-4);
760
+ border-top: 1px solid var(--color-border-default);
761
+ }
762
+
763
+ #sidebar-navigation footer a {
764
+ color: var(--color-accent-hover);
765
+ }
766
+
767
+ #sidebar-navigation-toggle {
768
+ display: none; /* Hidden by default, shown on mobile */
769
+ }
770
+
771
+ /* Mobile toggle button */
772
+ @media (width <= 1023px) {
773
+ #sidebar-navigation-toggle {
774
+ display: flex;
775
+ align-items: center;
776
+ justify-content: center;
777
+ position: fixed;
778
+ top: calc(var(--layout-header-height) / 2);
779
+ transform: translateY(-50%);
780
+ left: 1rem;
781
+ z-index: var(--z-fixed);
782
+ font-size: 1.5rem;
783
+ background: transparent;
784
+ border: none;
785
+ color: var(--color-text-primary);
786
+ cursor: pointer;
787
+ transition: color var(--transition-fast);
788
+ line-height: 1;
789
+ user-select: none;
790
+ -webkit-user-select: none;
791
+ }
792
+
793
+ #sidebar-navigation-toggle:hover {
794
+ color: var(--color-accent-primary);
795
+ }
796
+ }
797
+
798
+ /*
799
+ * Shared Collapsible Animation using ::details-content pseudo-element.
800
+ * This is the modern CSS approach for animating <details> elements.
801
+ * Uses block-size animation with interpolate-size for smooth height transitions.
802
+ * Both nav-section-collapsible and nested link-list details share this pattern.
803
+ */
804
+ #sidebar-navigation details {
805
+ interpolate-size: allow-keywords;
806
+ }
807
+
808
+ #sidebar-navigation details::details-content {
809
+ overflow: hidden;
810
+ block-size: 0;
811
+ transition: block-size 200ms ease, content-visibility 200ms ease allow-discrete;
812
+ }
813
+
814
+ #sidebar-navigation details[open]::details-content {
815
+ block-size: auto;
816
+ }
817
+
818
+ /* Collapsible Navigation Section Headers */
819
+
820
+ #sidebar-navigation .nav-section-header {
821
+ display: flex;
822
+ align-items: center;
823
+ gap: var(--space-3);
824
+ padding: var(--space-3) 0;
825
+ cursor: pointer;
826
+ list-style: none;
827
+ user-select: none;
828
+ -webkit-user-select: none;
829
+ border-bottom: 1px solid var(--color-border-default);
830
+ margin-bottom: var(--space-3);
831
+ transition: color var(--transition-fast);
832
+ }
833
+
834
+ #sidebar-navigation .nav-section-header::-webkit-details-marker {
835
+ display: none;
836
+ }
837
+
838
+ #sidebar-navigation .nav-section-header:hover {
839
+ color: var(--color-accent-primary);
840
+ }
841
+
842
+ #sidebar-navigation .nav-section-icon {
843
+ display: flex;
844
+ align-items: center;
845
+ justify-content: center;
846
+ width: 1.25rem;
847
+ height: 1.25rem;
848
+ flex-shrink: 0;
849
+ color: var(--color-accent-primary);
850
+ }
851
+
852
+ #sidebar-navigation .nav-section-icon svg {
853
+ width: 100%;
854
+ height: 100%;
855
+ }
856
+
857
+ #sidebar-navigation .nav-section-title {
858
+ font-size: var(--font-size-base);
859
+ font-weight: var(--font-weight-semibold);
860
+ color: inherit;
861
+ flex: 1;
862
+ min-width: 0;
863
+ overflow: hidden;
864
+ text-overflow: ellipsis;
865
+ white-space: nowrap;
866
+ }
867
+
868
+ #sidebar-navigation .nav-section-chevron {
869
+ display: flex;
870
+ align-items: center;
871
+ justify-content: center;
872
+ width: 1rem;
873
+ height: 1rem;
874
+ flex-shrink: 0;
875
+ color: var(--color-text-tertiary);
876
+ transition: transform var(--transition-base);
877
+ }
878
+
879
+ #sidebar-navigation .nav-section-chevron svg {
880
+ width: 100%;
881
+ height: 100%;
882
+ }
883
+
884
+ /* Rotate chevron when open */
885
+ #sidebar-navigation .nav-section-collapsible[open] > .nav-section-header .nav-section-chevron {
886
+ transform: rotate(90deg);
887
+ }
888
+
889
+ #sidebar-navigation .nav-section-collapsible > ul,
890
+ #sidebar-navigation .nav-section-collapsible > dl,
891
+ #sidebar-navigation .nav-section-collapsible > p {
892
+ margin-top: 0;
893
+ }
894
+
895
+ #sidebar-navigation .nav-section-collapsible > .nav-list {
896
+ padding-left: var(--space-5);
897
+ border-left: 1px solid var(--color-border-subtle);
898
+ margin-left: 9px; /* Align with the section icon center */
899
+ }
900
+
901
+ #sidebar-navigation .nav-section-collapsible .nav-list .link-list {
902
+ border-left: none;
903
+ margin-left: 0;
904
+ padding-left: var(--space-5);
905
+ }
906
+
907
+ #sidebar-navigation .nav-section-collapsible .nav-list .link-list > li:last-child {
908
+ margin-bottom: 0;
909
+ }
910
+
911
+ /*
912
+ Improve chevron styling for details under link-list, using SVG chevron that matches nav-section-chevron
913
+ We need to avoid adding the element in class content generation so it doesn't break darkfish styles
914
+ */
915
+ #sidebar-navigation li details:has(.link-list) > summary {
916
+ display: inline-flex;
917
+ align-items: center;
918
+ gap: var(--space-2);
919
+ cursor: pointer;
920
+ }
921
+
922
+ #sidebar-navigation li details:has(.link-list) > summary::after {
923
+ content: '';
924
+ position: static;
925
+ display: inline-block;
926
+ width: 1rem;
927
+ height: 1rem;
928
+ flex-shrink: 0;
929
+ margin-left: 0;
930
+ background-color: var(--color-text-secondary);
931
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 18 15 12 9 6'%3E%3C/polyline%3E%3C/svg%3E");
932
+ mask-size: contain;
933
+ mask-repeat: no-repeat;
934
+ mask-position: center;
935
+ -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 18 15 12 9 6'%3E%3C/polyline%3E%3C/svg%3E");
936
+ -webkit-mask-size: contain;
937
+ -webkit-mask-repeat: no-repeat;
938
+ -webkit-mask-position: center;
939
+ transition: transform var(--transition-base), background-color var(--transition-fast);
940
+ }
941
+
942
+ #sidebar-navigation li details:has(.link-list) > summary:hover::after {
943
+ background-color: var(--color-accent-primary);
944
+ }
945
+
946
+ #sidebar-navigation li details:has(.link-list)[open] > summary::after {
947
+ transform: rotate(90deg);
948
+ background-color: var(--color-accent-primary);
949
+ }
950
+
951
+ /* 8. Main Content (Center Column) */
952
+ main {
953
+ grid-area: main;
954
+ width: 100%;
955
+ min-width: 0;
956
+ max-width: var(--layout-content-max-width);
957
+ margin: 0 auto;
958
+ padding: var(--space-12) var(--space-8);
959
+ font-size: var(--font-size-base);
960
+ line-height: var(--line-height-relaxed);
961
+ color: var(--color-text-primary);
962
+ box-sizing: border-box;
963
+ }
964
+
965
+ /* Desktop: hide hamburger */
966
+ @media (width >= 1024px) {
967
+ #sidebar-navigation-toggle {
968
+ display: none;
969
+ }
970
+ }
971
+
972
+ /* Mobile: full width with padding */
973
+ @media (width <= 1023px) {
974
+ main {
975
+ padding: var(--space-6) var(--space-4);
976
+ padding-top: var(--space-8);
977
+ width: 100%;
978
+ }
979
+
980
+ footer.site-footer {
981
+ padding: var(--space-8) var(--space-4);
982
+ }
983
+
984
+ footer.site-footer .footer-content {
985
+ grid-template-columns: 1fr;
986
+ gap: var(--space-6);
987
+ }
988
+ }
989
+
990
+ main h1.page-title {
991
+ display: grid;
992
+ gap: var(--space-2);
993
+ justify-items: start;
994
+ margin-top: 0;
995
+ margin-bottom: var(--space-8);
996
+ color: var(--color-accent-primary);
997
+ }
998
+
999
+ main h1.page-title .page-title-kind {
1000
+ display: inline-flex;
1001
+ align-items: center;
1002
+ min-height: 1.625rem;
1003
+ padding: 0 var(--space-2);
1004
+ border: 1px solid var(--color-title-kind-border);
1005
+ border-radius: var(--radius-md);
1006
+ background: var(--color-accent-subtle);
1007
+ color: var(--color-accent-primary);
1008
+ font-size: var(--font-size-sm);
1009
+ font-weight: var(--font-weight-semibold);
1010
+ line-height: 1;
1011
+ }
1012
+
1013
+ main h1.page-title .page-title-name {
1014
+ max-width: 100%;
1015
+ color: var(--color-accent-primary);
1016
+ font-size: var(--font-size-3xl);
1017
+ font-weight: var(--font-weight-bold);
1018
+ line-height: var(--line-height-tight);
1019
+ overflow-wrap: anywhere;
1020
+ }
1021
+
1022
+ main h1,
1023
+ main h2,
1024
+ main h3,
1025
+ main h4,
1026
+ main h5,
1027
+ main h6 {
1028
+ font-family: var(--font-heading);
1029
+ color: var(--color-accent-primary);
1030
+ scroll-margin-top: calc(var(--layout-header-height) + 2rem);
1031
+ }
1032
+
1033
+ /* Heading size hierarchy */
1034
+ main h1 {
1035
+ font-size: var(--font-size-3xl);
1036
+ font-weight: var(--font-weight-bold);
1037
+ margin-bottom: var(--space-4);
1038
+ line-height: var(--line-height-tight);
1039
+ }
1040
+
1041
+ main h2 {
1042
+ font-size: var(--font-size-2xl);
1043
+ font-weight: var(--font-weight-semibold);
1044
+ margin-top: var(--space-8);
1045
+ margin-bottom: var(--space-4);
1046
+ line-height: var(--line-height-tight);
1047
+ }
1048
+
1049
+ main h3 {
1050
+ font-size: var(--font-size-xl);
1051
+ font-weight: var(--font-weight-semibold);
1052
+ margin-top: var(--space-6);
1053
+ margin-bottom: var(--space-3);
1054
+ line-height: var(--line-height-tight);
1055
+ }
1056
+
1057
+ main h4 {
1058
+ font-size: var(--font-size-lg);
1059
+ font-weight: var(--font-weight-medium);
1060
+ margin-top: var(--space-4);
1061
+ margin-bottom: var(--space-2);
1062
+ }
1063
+
1064
+ main h5, main h6 {
1065
+ font-size: var(--font-size-base);
1066
+ font-weight: var(--font-weight-medium);
1067
+ margin-top: var(--space-3);
1068
+ margin-bottom: var(--space-2);
1069
+ }
1070
+
1071
+ /* Heading links */
1072
+ main h1 a,
1073
+ main h2 a,
1074
+ main h3 a,
1075
+ main h4 a,
1076
+ main h5 a,
1077
+ main h6 a {
1078
+ color: inherit;
1079
+ text-decoration: none;
1080
+ }
1081
+
1082
+ main h1 a:hover,
1083
+ main h2 a:hover,
1084
+ main h3 a:hover,
1085
+ main h4 a:hover,
1086
+ main h5 a:hover,
1087
+ main h6 a:hover {
1088
+ text-decoration: underline;
1089
+ }
1090
+
1091
+ /* Syntax Highlighting - Light Theme */
1092
+ .ruby-constant { color: var(--code-orange); }
1093
+ .ruby-keyword { color: var(--code-red); }
1094
+ .ruby-ivar { color: var(--code-orange); }
1095
+ .ruby-operator { color: var(--code-green); }
1096
+ .ruby-identifier { color: var(--code-blue); }
1097
+
1098
+ .ruby-comment {
1099
+ color: var(--color-neutral-500);
1100
+ font-style: italic;
1101
+ }
1102
+ .ruby-regexp { color: var(--code-purple); }
1103
+ .ruby-value { color: var(--code-orange); }
1104
+ .ruby-string { color: var(--code-green); }
1105
+
1106
+ /* Syntax Highlighting - Dark Theme */
1107
+ [data-theme="dark"] .ruby-constant { color: var(--code-orange); }
1108
+ [data-theme="dark"] .ruby-keyword { color: var(--code-red); }
1109
+ [data-theme="dark"] .ruby-ivar { color: var(--code-orange); }
1110
+ [data-theme="dark"] .ruby-operator { color: var(--code-green); }
1111
+ [data-theme="dark"] .ruby-identifier { color: var(--code-blue); }
1112
+
1113
+ [data-theme="dark"] .ruby-comment {
1114
+ color: var(--color-neutral-400);
1115
+ font-style: italic;
1116
+ }
1117
+ [data-theme="dark"] .ruby-regexp { color: var(--code-purple); }
1118
+ [data-theme="dark"] .ruby-value { color: var(--code-orange); }
1119
+ [data-theme="dark"] .ruby-string { color: var(--code-green); }
1120
+
1121
+ /* C Syntax Highlighting */
1122
+ .c-keyword { color: var(--code-red); }
1123
+ .c-type { color: var(--code-cyan); }
1124
+ .c-macro { color: var(--code-orange); }
1125
+ .c-function { color: var(--code-purple); }
1126
+ .c-identifier { color: var(--color-text-secondary); }
1127
+ .c-operator { color: var(--code-green); }
1128
+ .c-preprocessor { color: var(--code-purple); }
1129
+ .c-value { color: var(--code-orange); }
1130
+ .c-string { color: var(--code-green); }
1131
+
1132
+ .c-comment {
1133
+ color: var(--code-gray);
1134
+ font-style: italic;
1135
+ }
1136
+
1137
+ /* Shell Syntax Highlighting */
1138
+ .sh-prompt { color: var(--code-gray); }
1139
+ .sh-command { color: var(--code-blue); }
1140
+ .sh-option { color: var(--code-cyan); }
1141
+ .sh-string { color: var(--code-green); }
1142
+ .sh-envvar { color: var(--code-purple); }
1143
+
1144
+ .sh-comment {
1145
+ color: var(--code-gray);
1146
+ font-style: italic;
1147
+ }
1148
+
1149
+ /* RBS Type Signature Links — linked types get subtle underline */
1150
+ a.rbs-type {
1151
+ color: inherit;
1152
+ text-decoration: underline;
1153
+ text-decoration-color: var(--color-border-default);
1154
+ text-underline-offset: 0.2em;
1155
+ transition: text-decoration-color var(--transition-fast), color var(--transition-fast);
1156
+ }
1157
+
1158
+ a.rbs-type:hover {
1159
+ color: var(--color-link-hover);
1160
+ text-decoration-color: var(--color-link-hover);
1161
+ }
1162
+
1163
+ /* Emphasis */
1164
+ em {
1165
+ text-decoration-color: var(--color-emphasis-decoration);
1166
+ text-decoration-line: underline;
1167
+ text-decoration-style: dotted;
1168
+ }
1169
+
1170
+ strong,
1171
+ em {
1172
+ color: var(--color-accent-primary);
1173
+ background-color: var(--color-emphasis-bg);
1174
+ }
1175
+
1176
+ /* Paragraphs */
1177
+ main p {
1178
+ line-height: var(--line-height-relaxed);
1179
+ font-weight: 400;
1180
+ margin-bottom: var(--space-4);
1181
+ }
1182
+
1183
+ main .rdoc-logo {
1184
+ margin: var(--space-6) 0 var(--space-8);
1185
+ text-align: center;
1186
+ }
1187
+
1188
+ main .rdoc-logo img {
1189
+ display: inline-block;
1190
+ width: clamp(120px, 14vw, 168px);
1191
+ height: auto;
1192
+ filter: drop-shadow(0 8px 18px rgb(230 41 35 / 8%));
1193
+ }
1194
+
1195
+ [data-theme="dark"] main .rdoc-logo img {
1196
+ filter: saturate(0.58) brightness(1.4) drop-shadow(0 8px 22px rgb(235 84 79 / 16%));
1197
+ }
1198
+
1199
+ /* Preformatted Text */
1200
+ main pre {
1201
+ margin: 1.2em 0.5em;
1202
+ padding: 1em;
1203
+ font-size: 0.8em;
1204
+ }
1205
+
1206
+ .code-block-wrapper pre {
1207
+ margin: 0;
1208
+ }
1209
+
1210
+ /* Horizontal Rules */
1211
+ main hr {
1212
+ margin: 1.5em 1em;
1213
+ border: 2px solid var(--color-border-default);
1214
+ }
1215
+
1216
+ /* Blockquotes */
1217
+ main blockquote {
1218
+ margin: 0 2em 1.2em 1.2em;
1219
+ padding-left: 0.5em;
1220
+ border-left: 2px solid var(--color-border-default);
1221
+ }
1222
+
1223
+ /* Lists */
1224
+ main li > p {
1225
+ margin: 0.5em;
1226
+ }
1227
+
1228
+ /* Definition Lists */
1229
+ main dl {
1230
+ margin: 1em 0.5em;
1231
+ }
1232
+
1233
+ main dt {
1234
+ line-height: 1.5;
1235
+ font-weight: bold;
1236
+ }
1237
+
1238
+ main dl.note-list dt {
1239
+ margin-right: 1em;
1240
+ float: left;
1241
+ }
1242
+
1243
+ main dl.note-list dt:has(+ dt) {
1244
+ margin-right: 0.25em;
1245
+ }
1246
+
1247
+ main dl.note-list dt:has(+ dt)::after {
1248
+ content: ', ';
1249
+ font-weight: normal;
1250
+ }
1251
+
1252
+ main dd {
1253
+ margin: 0 0 1em 1em;
1254
+ }
1255
+
1256
+ main dd p:first-child {
1257
+ margin-top: 0;
1258
+ }
1259
+
1260
+ /* Headers within Main */
1261
+ main header h2 {
1262
+ margin: var(--space-8) 0 var(--space-4);
1263
+ padding-top: var(--space-3);
1264
+ border-width: 0;
1265
+ border-top: 1px solid var(--color-border-default);
1266
+ font-size: var(--font-size-2xl);
1267
+ }
1268
+
1269
+ main header h3 {
1270
+ margin: var(--space-8) 0 var(--space-6);
1271
+ padding-top: var(--space-3);
1272
+ border-width: 0;
1273
+ border-top: 1px solid var(--color-border-default);
1274
+ font-size: var(--font-size-xl);
1275
+ }
1276
+
1277
+ h1:target,
1278
+ h2:target,
1279
+ h3:target,
1280
+ h4:target,
1281
+ h5:target,
1282
+ h6:target {
1283
+ margin-left: calc(-1 * var(--space-5));
1284
+ padding-left: calc(var(--space-5) / 2);
1285
+ border-left: calc(var(--space-5) / 2) solid var(--color-border-default);
1286
+ }
1287
+
1288
+ main .anchor-link:target {
1289
+ scroll-margin-top: calc(var(--layout-header-height) + 2rem);
1290
+ }
1291
+
1292
+ /* Legacy anchor for backward compatibility with old label- prefix links */
1293
+ .legacy-anchor {
1294
+ display: block;
1295
+ position: relative;
1296
+ visibility: hidden;
1297
+ scroll-margin-top: calc(var(--layout-header-height) + 2rem);
1298
+ }
1299
+
1300
+ /* When a legacy anchor is targeted, highlight the next heading sibling */
1301
+ .legacy-anchor:target + h1,
1302
+ .legacy-anchor:target + h2,
1303
+ .legacy-anchor:target + h3,
1304
+ .legacy-anchor:target + h4,
1305
+ .legacy-anchor:target + h5,
1306
+ .legacy-anchor:target + h6 {
1307
+ margin-left: calc(-1 * var(--space-5));
1308
+ padding-left: calc(var(--space-5) / 2);
1309
+ border-left: calc(var(--space-5) / 2) solid var(--color-border-default);
1310
+ }
1311
+
1312
+
1313
+ /* Utility Classes */
1314
+ .hide { display: none !important; }
1315
+ .initially-hidden { display: none; }
1316
+
1317
+ /* Screen reader only */
1318
+ .sr-only {
1319
+ position: absolute;
1320
+ width: 1px;
1321
+ height: 1px;
1322
+ padding: 0;
1323
+ margin: -1px;
1324
+ overflow: hidden;
1325
+ clip-path: inset(50%);
1326
+ white-space: nowrap;
1327
+ border-width: 0;
1328
+ }
1329
+
1330
+
1331
+
1332
+ /* Method Details */
1333
+ main .method-source-code {
1334
+ visibility: hidden;
1335
+ max-height: 0;
1336
+ overflow: hidden;
1337
+ opacity: 0;
1338
+ transform: translateY(-8px);
1339
+ transition:
1340
+ max-height var(--duration-medium) var(--ease-out-smooth),
1341
+ visibility var(--duration-medium),
1342
+ opacity var(--duration-fast) ease-out,
1343
+ transform var(--duration-fast) ease-out;
1344
+ }
1345
+
1346
+ main .method-source-code pre {
1347
+ border-color: var(--color-code-border);
1348
+ width: 100%;
1349
+ box-sizing: border-box;
1350
+ transition: border-color var(--transition-fast);
1351
+ scrollbar-width: thin;
1352
+ scrollbar-color: var(--color-border-default) transparent;
1353
+ }
1354
+
1355
+ main .method-source-code pre::-webkit-scrollbar {
1356
+ width: 6px;
1357
+ height: 6px;
1358
+ }
1359
+
1360
+ main .method-source-code pre::-webkit-scrollbar-track {
1361
+ background: transparent;
1362
+ }
1363
+
1364
+ main .method-source-code pre::-webkit-scrollbar-thumb {
1365
+ background: var(--color-border-default);
1366
+ border-radius: var(--radius-sm);
1367
+ }
1368
+
1369
+ main .method-source-code pre::-webkit-scrollbar-thumb:hover {
1370
+ background: var(--color-border-emphasis);
1371
+ }
1372
+
1373
+ main .method-source-code pre::-webkit-scrollbar-corner {
1374
+ background: transparent;
1375
+ }
1376
+
1377
+ main .method-source-code.active-menu {
1378
+ visibility: visible;
1379
+ max-height: 100vh;
1380
+ overflow: auto;
1381
+ opacity: 1;
1382
+ transform: translateY(0);
1383
+ }
1384
+
1385
+ main .method-description .method-calls-super {
1386
+ color: var(--color-text-primary);
1387
+ font-weight: bold;
1388
+ }
1389
+
1390
+ main .method-detail {
1391
+ position: relative;
1392
+ margin-bottom: 2.5em;
1393
+ }
1394
+
1395
+ main .method-detail:target {
1396
+ margin-left: calc(-1 * var(--space-5));
1397
+ padding-left: calc(var(--space-5) / 2);
1398
+ border-left: calc(var(--space-5) / 2) solid var(--color-border-default);
1399
+ }
1400
+
1401
+ main .method-header {
1402
+ display: grid;
1403
+ grid-template-columns: minmax(0, 1fr) auto;
1404
+ gap: var(--space-4);
1405
+ align-items: center;
1406
+ background: var(--color-sig-bg);
1407
+ border: 1px solid var(--color-sig-border);
1408
+ border-radius: var(--radius-md);
1409
+ padding: var(--space-4);
1410
+ }
1411
+
1412
+ main .method-heading-group {
1413
+ min-width: 0;
1414
+ }
1415
+
1416
+ main .method-heading {
1417
+ display: flex;
1418
+ flex-direction: column;
1419
+ align-items: flex-start;
1420
+ font-family: var(--font-code);
1421
+ font-size: var(--font-size-lg);
1422
+ font-weight: var(--font-weight-semibold);
1423
+ line-height: var(--line-height-normal);
1424
+ }
1425
+
1426
+ main .method-heading a {
1427
+ color: inherit;
1428
+ text-decoration: none;
1429
+ }
1430
+
1431
+ main .method-heading a:hover {
1432
+ color: var(--color-accent-primary);
1433
+ }
1434
+
1435
+ main .method-heading .method-callseq {
1436
+ display: block;
1437
+ }
1438
+
1439
+ main .method-heading .method-name {
1440
+ font-weight: var(--font-weight-semibold);
1441
+ overflow-wrap: anywhere;
1442
+ }
1443
+
1444
+ main .method-heading .method-args {
1445
+ font-weight: var(--font-weight-normal);
1446
+ }
1447
+
1448
+ /* Type signatures — overloads stack as a code block under the method name */
1449
+ pre.method-type-signature {
1450
+ position: relative;
1451
+ margin: var(--space-2) 0 0;
1452
+ padding: var(--space-2) 0 0;
1453
+ background: transparent;
1454
+ border: none;
1455
+ border-radius: 0;
1456
+ overflow: visible;
1457
+ font-family: var(--font-code);
1458
+ font-size: var(--font-size-sm);
1459
+ color: var(--color-text-tertiary);
1460
+ line-height: var(--line-height-tight);
1461
+ white-space: pre-wrap;
1462
+ overflow-wrap: break-word;
1463
+ }
1464
+
1465
+ pre.method-type-signature::before {
1466
+ content: '';
1467
+ position: absolute;
1468
+ top: 0;
1469
+ left: 0;
1470
+ right: 0;
1471
+ border-top: 1px dotted var(--color-border-default);
1472
+ }
1473
+
1474
+ pre.method-type-signature code {
1475
+ font-family: inherit;
1476
+ font-size: inherit;
1477
+ color: inherit;
1478
+ background: transparent;
1479
+ padding: 0;
1480
+ }
1481
+
1482
+ /* Attribute type sigs render inline after the [RW] badge */
1483
+ main .method-heading > .method-type-signature {
1484
+ display: inline;
1485
+ margin-left: var(--space-2);
1486
+ font-family: var(--font-code);
1487
+ font-size: var(--font-size-sm);
1488
+ color: var(--color-text-secondary);
1489
+ }
1490
+
1491
+ main .method-controls {
1492
+ position: static;
1493
+ align-self: center;
1494
+ }
1495
+
1496
+ main .method-controls summary {
1497
+ display: inline-flex;
1498
+ align-items: center;
1499
+ justify-content: center;
1500
+ gap: var(--space-2);
1501
+ min-height: 30px;
1502
+ line-height: 20px;
1503
+ color: var(--color-accent-primary);
1504
+ cursor: pointer;
1505
+ padding: var(--space-1) var(--space-3);
1506
+ border-radius: var(--radius-sm);
1507
+ font-size: var(--font-size-sm);
1508
+ font-weight: var(--font-weight-medium);
1509
+ background: var(--color-accent-subtle);
1510
+ border: 1px solid transparent;
1511
+ transition:
1512
+ color var(--transition-fast),
1513
+ background var(--transition-fast),
1514
+ border-color var(--transition-fast),
1515
+ transform var(--transition-fast);
1516
+ user-select: none;
1517
+ -webkit-user-select: none;
1518
+ white-space: nowrap;
1519
+ list-style: none;
1520
+ }
1521
+
1522
+ main .method-controls summary::-webkit-details-marker {
1523
+ display: none;
1524
+ }
1525
+
1526
+ main .method-controls summary:hover {
1527
+ background: var(--color-primary-100);
1528
+ border-color: var(--color-primary-300);
1529
+ transform: translateY(-1px);
1530
+ }
1531
+
1532
+ main .method-controls summary:active {
1533
+ transform: scale(0.96);
1534
+ }
1535
+
1536
+ main .method-source-icon {
1537
+ font-family: var(--font-code);
1538
+ font-size: var(--font-size-xs);
1539
+ line-height: 1;
1540
+ opacity: 0.8;
1541
+ }
1542
+
1543
+ [data-theme="dark"] main .method-controls summary:hover {
1544
+ background: var(--color-accent-subtle-hover);
1545
+ border-color: var(--color-primary-500);
1546
+ }
1547
+
1548
+ main .method-description {
1549
+ color: var(--color-text-primary);
1550
+ line-height: var(--line-height-relaxed);
1551
+ }
1552
+
1553
+ main .method-header ~ .method-description {
1554
+ margin-top: var(--space-5);
1555
+ padding-left: var(--space-2);
1556
+ }
1557
+
1558
+ main .aliases {
1559
+ margin-top: var(--space-4);
1560
+ padding-top: var(--space-1);
1561
+ font-style: italic;
1562
+ cursor: default;
1563
+ }
1564
+
1565
+ main .aliases a {
1566
+ color: var(--color-accent-hover);
1567
+ }
1568
+
1569
+ main .mixin-from {
1570
+ font-size: 80%;
1571
+ font-style: italic;
1572
+ margin-bottom: 0.75em;
1573
+ }
1574
+
1575
+ main .method-description ul {
1576
+ margin-left: 1.5em;
1577
+ }
1578
+
1579
+ main #attribute-method-details .method-detail:hover {
1580
+ background-color: transparent;
1581
+ cursor: default;
1582
+ }
1583
+
1584
+ main .attribute-access-type {
1585
+ text-transform: uppercase;
1586
+ }
1587
+
1588
+ /* Small screen adjustments */
1589
+ @media (width <= 480px) {
1590
+ #sidebar-navigation {
1591
+ width: 85%;
1592
+ max-width: 320px;
1593
+ }
1594
+
1595
+ main {
1596
+ margin: 0;
1597
+ padding: var(--space-4);
1598
+ max-width: 100%;
1599
+ }
1600
+
1601
+ table {
1602
+ display: block;
1603
+ overflow-x: auto;
1604
+ white-space: nowrap;
1605
+ }
1606
+
1607
+ main .method-heading {
1608
+ font-size: var(--font-size-base);
1609
+ }
1610
+
1611
+ pre.method-type-signature {
1612
+ font-size: var(--font-size-xs);
1613
+ }
1614
+
1615
+ main .method-header {
1616
+ grid-template-columns: 1fr;
1617
+ gap: var(--space-3);
1618
+ padding: var(--space-2);
1619
+ }
1620
+
1621
+ main .method-controls {
1622
+ justify-self: start;
1623
+ }
1624
+ }
1625
+
1626
+
1627
+
1628
+ /* 9. Search Modal (Mobile) */
1629
+ .search-modal {
1630
+ position: fixed;
1631
+ inset: 0;
1632
+ z-index: var(--z-modal);
1633
+ display: none;
1634
+ }
1635
+
1636
+ .search-modal:not([hidden]) {
1637
+ display: flex;
1638
+ align-items: flex-start;
1639
+ justify-content: center;
1640
+ padding: var(--space-16) var(--space-4);
1641
+ }
1642
+
1643
+ /* Reduce padding on very small screens */
1644
+ @media (width <= 420px) {
1645
+ .search-modal:not([hidden]) {
1646
+ padding: var(--space-4) var(--space-3);
1647
+ }
1648
+
1649
+ .search-modal-content {
1650
+ border-radius: var(--radius-md);
1651
+ }
1652
+
1653
+ .search-modal-header {
1654
+ padding: var(--space-3);
1655
+ }
1656
+
1657
+ .search-modal-body {
1658
+ padding: var(--space-3);
1659
+ }
1660
+
1661
+ .search-modal-form input {
1662
+ font-size: var(--font-size-base);
1663
+ min-width: 0; /* Allow input to shrink */
1664
+ }
1665
+
1666
+ .search-modal-form {
1667
+ gap: var(--space-2);
1668
+ }
1669
+
1670
+ .search-modal-close {
1671
+ padding: var(--space-1) var(--space-3);
1672
+ font-size: 0.75rem;
1673
+ }
1674
+ }
1675
+
1676
+ .search-modal-backdrop {
1677
+ position: absolute;
1678
+ inset: 0;
1679
+ background: var(--color-overlay);
1680
+ z-index: 1;
1681
+ }
1682
+
1683
+ .search-modal-content {
1684
+ position: relative;
1685
+ z-index: 2;
1686
+ background: var(--color-background-primary);
1687
+ border-radius: var(--radius-lg);
1688
+ box-shadow: var(--shadow-xl);
1689
+ width: 100%;
1690
+ max-width: 600px;
1691
+ max-height: 80vh;
1692
+ display: flex;
1693
+ flex-direction: column;
1694
+ }
1695
+
1696
+ .search-modal-header {
1697
+ padding: var(--space-6);
1698
+ border-bottom: 1px solid var(--color-border-default);
1699
+ }
1700
+
1701
+ .search-modal-form {
1702
+ display: flex;
1703
+ align-items: center;
1704
+ gap: var(--space-3);
1705
+ }
1706
+
1707
+ .search-modal-icon {
1708
+ font-size: 1.5rem;
1709
+ color: var(--color-text-secondary);
1710
+ flex-shrink: 0;
1711
+ }
1712
+
1713
+ .search-modal-form input {
1714
+ flex: 1;
1715
+ border: none;
1716
+ outline: none;
1717
+ background: transparent;
1718
+ font-size: var(--font-size-lg);
1719
+ color: var(--color-text-primary);
1720
+ padding: 0;
1721
+ }
1722
+
1723
+ .search-modal-form input::placeholder {
1724
+ color: var(--color-text-tertiary);
1725
+ }
1726
+
1727
+ .search-modal-close {
1728
+ padding: var(--space-2) var(--space-4);
1729
+ background: var(--color-background-secondary);
1730
+ border: 1px solid var(--color-border-default);
1731
+ border-radius: var(--radius-md);
1732
+ font-size: var(--font-size-sm);
1733
+ color: var(--color-text-secondary);
1734
+ cursor: pointer;
1735
+ transition: background var(--transition-fast), border-color var(--transition-fast);
1736
+ flex-shrink: 0;
1737
+ }
1738
+
1739
+ .search-modal-close:hover {
1740
+ background: var(--color-background-tertiary);
1741
+ border-color: var(--color-border-default);
1742
+ }
1743
+
1744
+ .search-modal-body {
1745
+ padding: var(--space-6);
1746
+ overflow-y: auto;
1747
+ flex: 1;
1748
+ }
1749
+
1750
+ .search-modal-empty {
1751
+ text-align: center;
1752
+ color: var(--color-text-tertiary);
1753
+ padding: var(--space-12) 0;
1754
+ }
1755
+
1756
+ .search-modal-results {
1757
+ list-style: none;
1758
+ margin: 0;
1759
+ padding: 0;
1760
+ }
1761
+
1762
+ .search-modal-results.initially-hidden {
1763
+ display: block !important; /* Override initially-hidden */
1764
+ }
1765
+
1766
+ .search-modal-results li {
1767
+ padding: var(--space-3) var(--space-4);
1768
+ border-radius: var(--radius-md);
1769
+ cursor: pointer;
1770
+ transition: background var(--transition-fast);
1771
+ margin-bottom: var(--space-2);
1772
+ }
1773
+
1774
+ .search-modal-results li:hover {
1775
+ background: var(--color-background-secondary);
1776
+ }
1777
+
1778
+ .search-modal-results a {
1779
+ color: var(--color-text-primary);
1780
+ }
1781
+
1782
+ .search-modal-results .search-match {
1783
+ margin: 0;
1784
+ font-size: var(--font-size-base);
1785
+ }
1786
+
1787
+ .search-modal-results .search-match a {
1788
+ text-decoration: none;
1789
+ }
1790
+
1791
+ .search-modal-results .search-namespace {
1792
+ margin: var(--space-1) 0 0 0;
1793
+ font-size: var(--font-size-sm);
1794
+ color: var(--color-text-secondary);
1795
+ }
1796
+
1797
+ .search-modal-results .search-snippet {
1798
+ margin: var(--space-1) 0 0 0;
1799
+ font-size: var(--font-size-sm);
1800
+ color: var(--color-text-tertiary);
1801
+ }
1802
+
1803
+ /* 10. Right Sidebar - Table of Contents */
1804
+ #table-of-contents {
1805
+ grid-area: toc;
1806
+ align-self: start;
1807
+ position: sticky;
1808
+ top: var(--layout-header-height);
1809
+ padding: var(--space-8) var(--space-6);
1810
+ border: none;
1811
+ border-left: 1px solid var(--color-border-default);
1812
+ font-size: var(--font-size-base);
1813
+ }
1814
+
1815
+ #table-of-contents .toc-sticky {
1816
+ display: flex;
1817
+ flex-direction: column;
1818
+
1819
+ /* Exclude header height and top/bottom padding of #table-of-contents */
1820
+ height: calc(100vh - var(--layout-header-height) - var(--space-8) * 2);
1821
+ }
1822
+
1823
+ #table-of-contents .toc-nav {
1824
+ flex: 1 1 auto;
1825
+ min-height: 0;
1826
+ overflow-y: auto;
1827
+ scrollbar-width: thin;
1828
+ scrollbar-color: var(--color-border-default) transparent;
1829
+ }
1830
+
1831
+ #table-of-contents .toc-list > .toc-h2 {
1832
+ margin-left: var(--space-4);
1833
+ }
1834
+
1835
+ #table-of-contents .toc-list > .toc-h3 {
1836
+ margin-left: var(--space-8);
1837
+ }
1838
+
1839
+ /* Hide TOC on mobile/tablet */
1840
+ @media (width <= 1279px) {
1841
+ #table-of-contents {
1842
+ display: none;
1843
+ }
1844
+ }
1845
+
1846
+ /* Preserve the desktop sidebar/content grid when the TOC is hidden */
1847
+ @media (width >= 1024px) and (width <= 1279px) {
1848
+ body.has-toc {
1849
+ grid-template-columns: var(--layout-sidebar-width) 1fr;
1850
+ grid-template-areas:
1851
+ "header header"
1852
+ "nav main"
1853
+ "nav footer";
1854
+ }
1855
+ }
1856
+
1857
+ /* Tablet adjustments (between mobile and desktop) */
1858
+ @media (width >= 768px) and (width <= 1023px) {
1859
+ header.top-navbar {
1860
+ padding: 0 var(--space-6);
1861
+ }
1862
+
1863
+ main {
1864
+ padding: var(--space-8) var(--space-6);
1865
+ max-width: 100%;
1866
+ }
1867
+ }
1868
+
1869
+ #table-of-contents h3 {
1870
+ font-size: var(--font-size-lg);
1871
+ font-weight: var(--font-weight-semibold);
1872
+ margin: 0 0 var(--space-5) 0;
1873
+ color: var(--color-text-primary);
1874
+ }
1875
+
1876
+ #table-of-contents ul {
1877
+ margin: 0;
1878
+ padding: 0;
1879
+ list-style: none;
1880
+ }
1881
+
1882
+ #table-of-contents ul ul {
1883
+ margin-top: var(--space-3);
1884
+ margin-left: var(--space-5);
1885
+ border-left: 1px solid var(--color-border-default);
1886
+ padding-left: var(--space-4);
1887
+ }
1888
+
1889
+ #table-of-contents li {
1890
+ margin-bottom: var(--space-3);
1891
+ }
1892
+
1893
+ #table-of-contents a {
1894
+ display: block;
1895
+ color: var(--color-text-secondary);
1896
+ text-decoration: none;
1897
+ transition: color var(--transition-fast);
1898
+ line-height: var(--line-height-relaxed);
1899
+ overflow-wrap: break-word;
1900
+ hyphens: auto;
1901
+ }
1902
+
1903
+ /* Nav hover styles sit here to keep specificity ordering with TOC links */
1904
+ #sidebar-navigation a:hover {
1905
+ color: var(--color-link-hover);
1906
+ text-decoration: underline;
1907
+ }
1908
+
1909
+ #table-of-contents a:hover {
1910
+ color: var(--color-link-hover);
1911
+ text-decoration: underline;
1912
+ }
1913
+
1914
+ #table-of-contents a:focus-visible {
1915
+ outline: 2px solid var(--color-accent-primary);
1916
+ outline-offset: 2px;
1917
+ border-radius: var(--radius-sm);
1918
+ }
1919
+
1920
+ #table-of-contents a.active {
1921
+ color: var(--color-accent-primary);
1922
+ font-weight: var(--font-weight-medium);
1923
+ }
1924
+
1925
+ ol.breadcrumb {
1926
+ display: flex;
1927
+ flex-wrap: wrap;
1928
+ padding: 0;
1929
+ margin: 0 0 1em;
1930
+ }
1931
+
1932
+ ol.breadcrumb li {
1933
+ display: block;
1934
+ min-width: 0;
1935
+ list-style: none;
1936
+ font-size: 125%;
1937
+ }
1938
+
1939
+ ol.breadcrumb a,
1940
+ ol.breadcrumb li > span:not(.separator) {
1941
+ overflow-wrap: anywhere;
1942
+ }
1943
+
1944
+ /* 11. Footer */
1945
+ footer.site-footer {
1946
+ grid-area: footer;
1947
+ background: var(--color-background-secondary);
1948
+ border-top: 1px solid var(--color-border-default);
1949
+ padding: var(--space-12) var(--space-6);
1950
+ }
1951
+
1952
+ footer.site-footer .footer-content {
1953
+ max-width: 1200px;
1954
+ margin: 0 auto;
1955
+ display: grid;
1956
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
1957
+ gap: var(--space-8);
1958
+ }
1959
+
1960
+ footer.site-footer h3 {
1961
+ font-size: var(--font-size-sm);
1962
+ font-weight: var(--font-weight-semibold);
1963
+ color: var(--color-text-primary);
1964
+ margin: 0 0 var(--space-4) 0;
1965
+ letter-spacing: 0.05em;
1966
+ }
1967
+
1968
+ footer.site-footer ul {
1969
+ list-style: none;
1970
+ margin: 0;
1971
+ padding: 0;
1972
+ }
1973
+
1974
+ footer.site-footer li {
1975
+ margin-bottom: var(--space-2);
1976
+ }
1977
+
1978
+ footer.site-footer a {
1979
+ color: var(--color-text-secondary);
1980
+ text-decoration: none;
1981
+ font-size: var(--font-size-sm);
1982
+ transition: color var(--transition-fast);
1983
+ }
1984
+
1985
+ footer.site-footer a:hover {
1986
+ color: var(--color-link-hover);
1987
+ }
1988
+
1989
+ footer.site-footer .footer-bottom {
1990
+ margin-top: var(--space-8);
1991
+ padding-top: var(--space-6);
1992
+ border-top: 1px solid var(--color-border-default);
1993
+ text-align: center;
1994
+ font-size: var(--font-size-xs);
1995
+ color: var(--color-text-tertiary);
1996
+ }
1997
+
1998
+ footer.site-footer .footer-bottom:first-child {
1999
+ margin-top: 0;
2000
+ padding-top: 0;
2001
+ border-top: none;
2002
+ }
2003
+
2004
+ /* Search */
2005
+ #search-section {
2006
+ padding: var(--space-6);
2007
+ background-color: var(--color-background-primary);
2008
+ border-bottom: 1px solid var(--color-border-default);
2009
+ }
2010
+
2011
+ #search-field-wrapper {
2012
+ position: relative;
2013
+ display: flex;
2014
+ align-items: center;
2015
+ }
2016
+
2017
+ #search-field {
2018
+ width: 100%;
2019
+ padding: var(--space-2) var(--space-4) var(--space-2) 2.5rem;
2020
+ border: 1px solid var(--color-border-default);
2021
+ border-radius: 1.25rem;
2022
+ font-size: var(--font-size-sm);
2023
+ outline: none;
2024
+ transition: border-color var(--transition-base);
2025
+ color: var(--color-text-primary);
2026
+ }
2027
+
2028
+ #search-field:focus {
2029
+ border-color: var(--color-accent-primary);
2030
+ }
2031
+
2032
+ #search-field::placeholder {
2033
+ color: var(--color-text-primary);
2034
+ }
2035
+
2036
+ #search-field-wrapper::before {
2037
+ content: "\1F50D";
2038
+ position: absolute;
2039
+ left: var(--space-3);
2040
+ top: 50%;
2041
+ transform: translateY(-50%);
2042
+ font-size: var(--font-size-sm);
2043
+ color: var(--color-text-primary);
2044
+ opacity: 0.6;
2045
+ }
2046
+
2047
+ /* Search Results */
2048
+ .search-results {
2049
+ font-family: var(--font-primary);
2050
+ font-weight: 300;
2051
+ }
2052
+
2053
+ .search-results a {
2054
+ color: var(--color-text-primary);
2055
+ }
2056
+
2057
+ .search-results a:hover {
2058
+ color: var(--color-accent-primary);
2059
+ }
2060
+
2061
+ .search-results .search-match {
2062
+ font-family: var(--font-heading);
2063
+ font-weight: normal;
2064
+ }
2065
+
2066
+ .search-results .search-selected {
2067
+ background: var(--color-code-bg);
2068
+ border-bottom: 1px solid transparent;
2069
+ }
2070
+
2071
+ .search-results li {
2072
+ list-style: none;
2073
+ border-bottom: 1px solid var(--color-border-default);
2074
+ margin-bottom: 0.5em;
2075
+ }
2076
+
2077
+ .search-results li:last-child {
2078
+ border-bottom: none;
2079
+ margin-bottom: 0;
2080
+ }
2081
+
2082
+ .search-results li p {
2083
+ padding: 0;
2084
+ margin: 0.5em;
2085
+ }
2086
+
2087
+ .search-results .search-namespace {
2088
+ font-weight: bold;
2089
+ }
2090
+
2091
+ .search-results .search-type {
2092
+ display: inline-block;
2093
+ margin-left: var(--space-2);
2094
+ padding: 0 var(--space-2);
2095
+ font-size: var(--font-size-xs);
2096
+ font-weight: 500;
2097
+ border-radius: var(--radius-sm);
2098
+ vertical-align: middle;
2099
+ background: var(--color-background-tertiary);
2100
+ color: var(--color-text-secondary);
2101
+ }
2102
+
2103
+ .search-results .search-type-class {
2104
+ background: var(--color-search-type-class-bg);
2105
+ color: var(--color-search-type-class-text);
2106
+ }
2107
+
2108
+ .search-results .search-type-module {
2109
+ background: var(--color-search-type-module-bg);
2110
+ color: var(--color-search-type-module-text);
2111
+ }
2112
+
2113
+ .search-results .search-type-constant {
2114
+ background: var(--color-search-type-constant-bg);
2115
+ color: var(--color-search-type-constant-text);
2116
+ }
2117
+
2118
+ .search-results .search-type-instance-method,
2119
+ .search-results .search-type-class-method {
2120
+ background: var(--color-search-type-method-bg);
2121
+ color: var(--color-search-type-method-text);
2122
+ }
2123
+
2124
+ .search-results li em {
2125
+ background-color: var(--color-search-highlight-bg);
2126
+ font-style: normal;
2127
+ }
2128
+
2129
+ .search-results pre {
2130
+ margin: 0.5em;
2131
+ font-family: var(--font-code);
2132
+ }
2133
+
2134
+ header.top-navbar #search-field {
2135
+ display: block;
2136
+ box-sizing: border-box;
2137
+ width: 100%;
2138
+ padding: var(--space-2) var(--space-4);
2139
+ border: 1px solid var(--color-border-default);
2140
+ border-radius: var(--radius-md);
2141
+ font-size: var(--font-size-base);
2142
+ background: var(--color-background-primary);
2143
+ color: var(--color-text-primary);
2144
+ transition: border-color var(--transition-fast);
2145
+ }
2146
+
2147
+ header.top-navbar #search-field:focus {
2148
+ outline: none;
2149
+ border-color: var(--color-accent-primary);
2150
+ box-shadow: 0 0 0 3px var(--color-accent-subtle);
2151
+ }
2152
+
2153
+ header.top-navbar #search-field::placeholder {
2154
+ color: var(--color-text-tertiary);
2155
+ }
2156
+
2157
+ /* Search results dropdown in navbar */
2158
+ header.top-navbar #search-results-desktop {
2159
+ box-sizing: border-box;
2160
+ position: absolute;
2161
+ top: calc(100% + var(--space-2));
2162
+ left: 0;
2163
+ width: 100%;
2164
+ max-height: 60vh;
2165
+ background: var(--color-background-primary);
2166
+ border: 1px solid var(--color-border-default);
2167
+ border-radius: var(--radius-lg);
2168
+ box-shadow: var(--shadow-lg);
2169
+ overflow-y: auto;
2170
+ z-index: var(--z-popover);
2171
+ margin: 0;
2172
+ padding: 0;
2173
+ }
2174
+
2175
+ header.top-navbar #search-results-desktop.initially-hidden {
2176
+ display: none;
2177
+ }
2178
+
2179
+ header.top-navbar #search-results-desktop[aria-expanded="false"] {
2180
+ display: none;
2181
+ }