explicode 1.0.0

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.
package/ghmd-dark.css ADDED
@@ -0,0 +1,208 @@
1
+ /* Explicode — GitHub Dark theme for Docsify */
2
+
3
+ /* ── Reset & base ── */
4
+ *, *::before, *::after { box-sizing: border-box; }
5
+ * { -webkit-font-smoothing: antialiased; -webkit-overflow-scrolling: touch; -webkit-tap-highlight-color: rgba(0,0,0,0); -webkit-text-size-adjust: none; }
6
+ html, body { height: 100%; }
7
+ body { margin: 0; overflow-x: hidden; background-color: #0d1117; color: #e6edf3; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif; font-size: 16px; line-height: 1.5; }
8
+ img { max-width: 100%; }
9
+ body:not(.ready) { overflow: hidden; }
10
+ body:not(.ready) [data-cloak], body:not(.ready) .app-nav, body:not(.ready) > nav { display: none; }
11
+ div#app { font-size: 30px; font-weight: lighter; margin: 40vh auto; text-align: center; color: #e6edf3; }
12
+ div#app:empty::before { content: 'Loading...'; }
13
+ .progress { background-color: #58a6ff; height: 2px; left: 0; position: fixed; right: 0; top: 0; transition: width 0.2s, opacity 0.4s; width: 0%; z-index: 999999; }
14
+
15
+ /* ── Layout ── */
16
+ main { display: block; position: relative; width: 100vw; height: 100%; z-index: 0; }
17
+ main.hidden { display: none; }
18
+ body.sticky .sidebar, body.sticky .sidebar-toggle { position: fixed; }
19
+ .content { padding-top: 60px; position: absolute; top: 0; right: 0; bottom: 0; left: 270px; transition: left 280ms cubic-bezier(0.4,0,0.2,1); }
20
+ body.close .content { left: 0; }
21
+
22
+ /* ── Sidebar ── */
23
+ .sidebar { background-color: #161b22; border-right: 1px solid #30363d; color: #e6edf3; display: flex; flex-direction: column; overflow: hidden; position: absolute; top: 0; bottom: 0; left: 0; transition: transform 280ms cubic-bezier(0.4,0,0.2,1); width: 270px; z-index: 20; }
24
+ .sidebar > h1 { margin: 0; font-size: 1.05rem; font-weight: 600; text-align: center; flex-shrink: 0; padding: 14px 16px 13px; border-bottom: 1px solid #30363d; }
25
+ .sidebar > h1 a { color: #e6edf3; text-decoration: none; display: block; }
26
+
27
+ /* ── Scrollable nav area ── */
28
+ .xp-sidebar-scroll { flex: 1; overflow-y: auto; padding: 24px 0 8px; min-height: 0; }
29
+ .xp-sidebar-scroll .sidebar-nav { margin-left: 8px; padding-bottom: 16px; }
30
+ .xp-sidebar-scroll::-webkit-scrollbar { width: 4px; }
31
+ .xp-sidebar-scroll::-webkit-scrollbar-thumb { background: transparent; border-radius: 4px; }
32
+ .xp-sidebar-scroll:hover::-webkit-scrollbar-thumb { background: rgba(110,118,129,0.4); }
33
+ .xp-sidebar-scroll:hover::-webkit-scrollbar-track { background: rgba(110,118,129,0.1); }
34
+ .sidebar ul { margin: 0; padding: 0; }
35
+ .sidebar ul, .sidebar ul li { list-style: none; }
36
+ .sidebar ul li a { border-bottom: none; display: block; }
37
+ .sidebar ul li ul { margin-left: 0; }
38
+ .sidebar-nav li.collapse > ul { display: block !important; }
39
+ .sidebar li > p { margin-left: 8px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: #6e7681; padding: 12px 8px 4px; }
40
+ .sidebar ul li .section-link { font-size: 12px; color: #8b949e; }
41
+
42
+ /* ── Sidebar footer ── */
43
+ .xp-sidebar-footer { flex-shrink: 0; border-top: 1px solid #21262d; padding: 10px 16px; display: flex; align-items: center; justify-content: center; }
44
+ .xp-sidebar-footer span, .xp-sidebar-footer { font-size: 11px; color: #484f58; white-space: nowrap; }
45
+ .xp-sidebar-footer a { color: #6e7681; text-decoration: none; font-size: 11px; }
46
+ .xp-sidebar-footer a:hover { color: #8b949e; text-decoration: underline; }
47
+
48
+ /* ── Mobile nav button ── */
49
+ #xp-mobile-btn { display: none; position: fixed; top: 14px; left: 14px; z-index: 31; width: 36px; height: 36px; background: none; border: none; cursor: pointer; align-items: center; justify-content: center; padding: 0; }
50
+ @media screen and (max-width: 599px) { #xp-mobile-btn { display: flex; } }
51
+ .xp-mb-bars { display: flex; flex-direction: column; gap: 5px; align-items: center; justify-content: center; }
52
+ .xp-mb-bars span { display: block; width: 16px; height: 1.5px; background: #8b949e; border-radius: 2px; }
53
+ .xp-mb-close { font-size: 14px; color: #8b949e; line-height: 1; }
54
+ #xp-mobile-btn[data-open="false"] .xp-mb-bars { display: flex; }
55
+ #xp-mobile-btn[data-open="false"] .xp-mb-close { display: none; }
56
+ #xp-mobile-btn[data-open="true"] .xp-mb-bars { display: none; }
57
+ #xp-mobile-btn[data-open="true"] .xp-mb-close { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
58
+
59
+ /* ── Folder buttons ── */
60
+ .xp-folder-btn { display: flex; align-items: center; gap: 6px; width: calc(100% - 16px); margin: 0 8px; background: none; border: none; cursor: pointer; color: #8b949e; font-size: 13px; font-weight: 600; padding: 5px 8px; border-radius: 6px; text-align: left; transition: background 0.1s, color 0.1s; }
61
+ .xp-folder-btn:hover { background: rgba(177,186,196,0.08); color: #c9d1d9; }
62
+ .xp-folder-label { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
63
+ .sidebar ul li ul { border-left: 1px solid #21262d; margin-left: 21px !important; padding-left: 0; }
64
+
65
+ /* ── SVG icons via CSS masks ── */
66
+ .xp-item-icon, .xp-folder-icon { display: inline-flex; flex-shrink: 0; width: 14px; height: 14px; background-color: currentColor; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center; -webkit-mask-size: contain; mask-size: contain; }
67
+ .xp-hash-icon { width: 12px; height: 12px; }
68
+ .xp-home-icon { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M6.906.664a1.749 1.749 0 0 1 2.187 0l5.25 4.2c.415.332.657.835.657 1.367v7.019A1.75 1.75 0 0 1 13.25 15h-3.5a.75.75 0 0 1-.75-.75V9H7v5.25a.75.75 0 0 1-.75.75h-3.5A1.75 1.75 0 0 1 1 13.25V6.23c0-.531.242-1.034.657-1.366l5.25-4.2Zm1.25 1.171a.25.25 0 0 0-.312 0l-5.25 4.2a.25.25 0 0 0-.094.196v7.019c0 .138.112.25.25.25H5.5V8.25a.75.75 0 0 1 .75-.75h3.5a.75.75 0 0 1 .75.75v5.25h2.75a.25.25 0 0 0 .25-.25V6.23a.25.25 0 0 0-.094-.195Z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M6.906.664a1.749 1.749 0 0 1 2.187 0l5.25 4.2c.415.332.657.835.657 1.367v7.019A1.75 1.75 0 0 1 13.25 15h-3.5a.75.75 0 0 1-.75-.75V9H7v5.25a.75.75 0 0 1-.75.75h-3.5A1.75 1.75 0 0 1 1 13.25V6.23c0-.531.242-1.034.657-1.366l5.25-4.2Zm1.25 1.171a.25.25 0 0 0-.312 0l-5.25 4.2a.25.25 0 0 0-.094.196v7.019c0 .138.112.25.25.25H5.5V8.25a.75.75 0 0 1 .75-.75h3.5a.75.75 0 0 1 .75.75v5.25h2.75a.25.25 0 0 0 .25-.25V6.23a.25.25 0 0 0-.094-.195Z'/%3E%3C/svg%3E"); }
69
+ .xp-file-icon { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2 1.75C2 .784 2.784 0 3.75 0h6.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0 1 13.25 16h-9.5A1.75 1.75 0 0 1 2 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h9.5a.25.25 0 0 0 .25-.25V6h-2.75A1.75 1.75 0 0 1 9 4.25V1.5Zm6.75.062V4.25c0 .138.112.25.25.25h2.688Z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2 1.75C2 .784 2.784 0 3.75 0h6.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0 1 13.25 16h-9.5A1.75 1.75 0 0 1 2 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h9.5a.25.25 0 0 0 .25-.25V6h-2.75A1.75 1.75 0 0 1 9 4.25V1.5Zm6.75.062V4.25c0 .138.112.25.25.25h2.688Z'/%3E%3C/svg%3E"); }
70
+ .xp-hash-icon { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M6.368 1.01a.75.75 0 0 1 .623.859L6.57 4h3.98l.46-2.868a.75.75 0 0 1 1.48.237L12.07 4h2.18a.75.75 0 0 1 0 1.5h-2.42l-.64 4h2.31a.75.75 0 0 1 0 1.5h-2.55l-.46 2.869a.75.75 0 0 1-1.48-.237l.42-2.632H5.45l-.46 2.869a.75.75 0 0 1-1.48-.237L3.93 11H1.75a.75.75 0 0 1 0-1.5h2.42l.64-4H2.5a.75.75 0 0 1 0-1.5h2.55l.46-2.868a.75.75 0 0 1 .858-.622ZM9.309 9.5l.64-4H5.969l-.64 4Z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M6.368 1.01a.75.75 0 0 1 .623.859L6.57 4h3.98l.46-2.868a.75.75 0 0 1 1.48.237L12.07 4h2.18a.75.75 0 0 1 0 1.5h-2.42l-.64 4h2.31a.75.75 0 0 1 0 1.5h-2.55l-.46 2.869a.75.75 0 0 1-1.48-.237l.42-2.632H5.45l-.46 2.869a.75.75 0 0 1-1.48-.237L3.93 11H1.75a.75.75 0 0 1 0-1.5h2.42l.64-4H2.5a.75.75 0 0 1 0-1.5h2.55l.46-2.868a.75.75 0 0 1 .858-.622ZM9.309 9.5l.64-4H5.969l-.64 4Z'/%3E%3C/svg%3E"); }
71
+ .xp-folder-open { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M.513 1.513A1.75 1.75 0 0 1 1.75 1h3.5c.55 0 1.07.26 1.4.7l.9 1.2a.25.25 0 0 0 .2.1H14.25c.966 0 1.75.784 1.75 1.75v8.5A1.75 1.75 0 0 1 14.25 15H1.75A1.75 1.75 0 0 1 0 13.25V2.75c0-.464.184-.91.513-1.237ZM1.75 2.5a.25.25 0 0 0-.25.25v.5h13V4.75a.25.25 0 0 0-.25-.25H7.75A1.75 1.75 0 0 1 6.35 3.8l-.9-1.2a.25.25 0 0 0-.2-.1H1.75Z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M.513 1.513A1.75 1.75 0 0 1 1.75 1h3.5c.55 0 1.07.26 1.4.7l.9 1.2a.25.25 0 0 0 .2.1H14.25c.966 0 1.75.784 1.75 1.75v8.5A1.75 1.75 0 0 1 14.25 15H1.75A1.75 1.75 0 0 1 0 13.25V2.75c0-.464.184-.91.513-1.237ZM1.75 2.5a.25.25 0 0 0-.25.25v.5h13V4.75a.25.25 0 0 0-.25-.25H7.75A1.75 1.75 0 0 1 6.35 3.8l-.9-1.2a.25.25 0 0 0-.2-.1H1.75Z'/%3E%3C/svg%3E"); }
72
+ .xp-folder-closed { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M1.75 1A1.75 1.75 0 0 0 0 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0 0 16 13.25v-8.5A1.75 1.75 0 0 0 14.25 3H7.5a.25.25 0 0 1-.2-.1l-.9-1.2C6.07 1.26 5.55 1 5 1Z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M1.75 1A1.75 1.75 0 0 0 0 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0 0 16 13.25v-8.5A1.75 1.75 0 0 0 14.25 3H7.5a.25.25 0 0 1-.2-.1l-.9-1.2C6.07 1.26 5.55 1 5 1Z'/%3E%3C/svg%3E"); }
73
+
74
+ /* ── Nav link colors (dark) ── */
75
+ .sidebar ul li a { color: #8b949e; font-size: 13px; padding: 5px 8px 5px 16px; margin-right: 8px; border-radius: 6px; text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: flex; align-items: center; gap: 6px; transition: background 0.1s, color 0.1s; }
76
+ .sidebar ul li a:hover { background: rgba(177,186,196,0.08); color: #e6edf3; }
77
+ .sidebar ul li.active > a { background: rgba(56,139,253,0.1); color: #e6edf3; }
78
+ .sidebar ul li { position: relative; }
79
+ .sidebar ul li a .xp-item-icon { color: #6e7681; }
80
+ .sidebar ul li a:hover .xp-item-icon, .sidebar ul li.active > a .xp-item-icon { color: #8b949e; }
81
+ .xp-folder-btn .xp-folder-icon { color: #484f58; }
82
+ .xp-folder-btn:hover .xp-folder-icon { color: #6e7681; }
83
+
84
+ /* ── Sub-sidebar header links (dark) ── */
85
+ .app-sub-sidebar { margin: 1px 0 3px 0 !important; padding-left: 0 !important; border-left: 1px solid #21262d !important; margin-left: 21px !important; }
86
+ .app-sub-sidebar li > a { padding: 4px 8px !important; font-size: 12px !important; color: #6e7681 !important; display: flex !important; align-items: center !important; gap: 5px !important; }
87
+ .app-sub-sidebar li > a:hover { color: #8b949e !important; background: rgba(177,186,196,0.06) !important; }
88
+ .app-sub-sidebar li.active > a { color: #58a6ff !important; }
89
+ .app-sub-sidebar .xp-item-icon { color: #484f58; }
90
+ .app-sub-sidebar li.active > a .xp-hash-icon { color: #388bfd; }
91
+
92
+ /* ── Drag handle ── */
93
+ .xp-drag { position: fixed; top: 0; left: 270px; width: 6px; height: 100%; cursor: col-resize; z-index: 25; background: rgba(110,118,129,0.2); }
94
+ .xp-drag:hover, .xp-drag:active { background: rgba(88,166,255,0.5); }
95
+
96
+ /* ── Desktop toggle pill ── */
97
+ #xp-toggle { position: fixed; top: 50%; left: 269px; transform: translateY(-50%); z-index: 26; width: 16px; height: 48px; background: #21262d; border: 1px solid #30363d; border-left: none; border-radius: 0 6px 6px 0; cursor: pointer; color: #8b949e; font-size: 14px; line-height: 1; display: flex; align-items: center; justify-content: center; padding: 0; transition: background 0.15s, color 0.15s; }
98
+ #xp-toggle:hover { background: #30363d; color: #e6edf3; }
99
+ @media screen and (max-width: 599px) { #xp-toggle { display: none !important; } }
100
+
101
+ /* ── Hide docsify built-in toggle ── */
102
+ .sidebar-toggle { display: none !important; }
103
+
104
+ /* ── Close state ── */
105
+ body.close .sidebar { transform: translateX(-100%); }
106
+ body.close .content { left: 0; }
107
+
108
+ /* ── Markdown content ── */
109
+ .markdown-section { margin: 0 auto; max-width: 860px; padding: 32px 40px 60px; position: relative; }
110
+ .markdown-section > * { box-sizing: border-box; font-size: inherit; }
111
+ .markdown-section > :first-child { margin-top: 0 !important; }
112
+ .markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6 { font-weight: 600; margin-top: 24px; margin-bottom: 16px; line-height: 1.25; }
113
+ .markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section strong { color: #e6edf3; }
114
+ .markdown-section h1 { font-size: 2em; padding-bottom: 0.3em; border-bottom: 1px solid #30363d; }
115
+ .markdown-section h2 { font-size: 1.5em; padding-bottom: 0.3em; border-bottom: 1px solid #30363d; }
116
+ .markdown-section h3 { font-size: 1.25em; }
117
+ .markdown-section h4 { font-size: 1em; }
118
+ .markdown-section h5 { font-size: 0.875em; }
119
+ .markdown-section h6 { font-size: 0.85em; color: #8b949e; }
120
+ .markdown-section h1 a, .markdown-section h2 a, .markdown-section h3 a, .markdown-section h4 a, .markdown-section h5 a, .markdown-section h6 a { text-decoration: none !important; color: inherit !important; }
121
+ .markdown-section p, .markdown-section ul, .markdown-section ol { margin-top: 0; margin-bottom: 16px; line-height: 1.6; }
122
+ .markdown-section ul, .markdown-section ol { padding-left: 2em; }
123
+ .markdown-section li + li { margin-top: 4px; }
124
+ .markdown-section ul.task-list > li { list-style-type: none; }
125
+ .markdown-section a { color: #58a6ff; text-decoration: none; text-underline-offset: 25%; }
126
+ .markdown-section a:hover { text-decoration: underline; }
127
+ .markdown-section hr { border: none; border-bottom: 1px solid #30363d; margin: 24px 0; }
128
+ .markdown-section blockquote { border-left: 4px solid #30363d; color: #8b949e; margin: 16px 0; padding: 0 16px; }
129
+ .markdown-section blockquote p { margin-left: 0; }
130
+ .markdown-section em { color: #8b949e; }
131
+ .markdown-section code, .markdown-section pre { font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace; }
132
+ .markdown-section code { background-color: rgba(110,118,129,0.4); border-radius: 6px; padding: 0.2em 0.4em; font-size: 85%; color: #e6edf3; }
133
+ .markdown-section pre { background-color: #161b22; border-radius: 6px; padding: 16px; overflow: auto; margin: 0 0 16px; line-height: 1.45; }
134
+ .markdown-section pre > code { background: transparent; padding: 0; font-size: 85%; color: #e6edf3; border-radius: 0; white-space: pre; }
135
+ .markdown-section table { border-collapse: collapse; border-spacing: 0; display: block; margin-bottom: 16px; overflow: auto; width: 100%; }
136
+ .markdown-section th { background-color: #161b22; border: 1px solid #30363d; font-weight: 600; padding: 6px 13px; color: #e6edf3; }
137
+ .markdown-section td { border: 1px solid #30363d; padding: 6px 13px; }
138
+ .markdown-section tr { border-top: 1px solid #30363d; }
139
+ .markdown-section tr:nth-child(2n) { background-color: #161b22; }
140
+ .markdown-section img { max-width: 100%; border-style: none; border-radius: 6px; }
141
+ .markdown-section iframe { border: 1px solid #30363d; width: 1px; min-width: 100%; margin: 1em 0; }
142
+ .markdown-section p.tip { color: #e6edf3; border-left: 3px solid #d29922; padding: 0 1rem; line-height: 2.3; margin: 2em 0; }
143
+ .markdown-section p.tip:before { content: "⚠️ Warning\A"; color: #d29922; font-weight: 600; white-space: pre-wrap; }
144
+ .markdown-section p.warn { color: #e6edf3; border-left: 3px solid #388bfd; padding: 0 1rem; margin: 2em 0; }
145
+ .markdown-section p.warn:before { content: "💡 Tip\A"; color: #388bfd; font-weight: 600; white-space: pre-wrap; line-height: 2.5; }
146
+
147
+ /* ── Prism — One Dark Pro ── */
148
+ .markdown-section pre { background-color: #1e2330 !important; border: 1px solid #2d3248; }
149
+ .token.comment, .token.prolog, .token.doctype, .token.cdata { color: #636d83; font-style: italic; }
150
+ .token.namespace { opacity: 0.8; }
151
+ .token.boolean { color: #c678dd; }
152
+ .token.number { color: #d19a66; }
153
+ .token.punctuation, .token.operator { color: #abb2bf; }
154
+ .token.property { color: #e5c07b; }
155
+ .token.tag { color: #e06c75; }
156
+ .token.string, .token.char, .token.attr-value { color: #98c379; }
157
+ .token.selector, .token.class-name { color: #e5c07b; }
158
+ .token.attr-name { color: #d19a66; }
159
+ .token.entity, .token.url { color: #56b6c2; }
160
+ .token.keyword, .token.rule { color: #c678dd; }
161
+ .token.function, .token.function-name { color: #61afef; }
162
+ .token.regex, .token.atrule { color: #56b6c2; }
163
+ .token.placeholder, .token.variable { color: #e06c75; }
164
+ .token.type-hint, .token.builtin { color: #e5c07b; }
165
+ .token.parameter { color: #abb2bf; }
166
+ .token.deleted { text-decoration: line-through; color: #e06c75; }
167
+ .token.inserted { text-decoration: none; color: #98c379; }
168
+ .token.italic { font-style: italic; }
169
+ .token.important, .token.bold { font-weight: bold; }
170
+ .token.important { color: #e06c75; }
171
+ .token.entity { cursor: help; }
172
+
173
+ /* ── Unrendered (non-clickable) sidebar items ── */
174
+ .xp-unrendered { color: #3d444d; font-size: 13px; padding: 5px 8px 5px 16px; display: flex; align-items: center; gap: 6px; cursor: default; user-select: none; }
175
+ .xp-unrendered::before { content: ''; display: inline-flex; flex-shrink: 0; width: 14px; height: 14px; background-color: #3d444d; -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2 1.75C2 .784 2.784 0 3.75 0h6.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0 1 13.25 16h-9.5A1.75 1.75 0 0 1 2 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h9.5a.25.25 0 0 0 .25-.25V6h-2.75A1.75 1.75 0 0 1 9 4.25V1.5Zm6.75.062V4.25c0 .138.112.25.25.25h2.688Z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2 1.75C2 .784 2.784 0 3.75 0h6.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0 1 13.25 16h-9.5A1.75 1.75 0 0 1 2 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h9.5a.25.25 0 0 0 .25-.25V6h-2.75A1.75 1.75 0 0 1 9 4.25V1.5Zm6.75.062V4.25c0 .138.112.25.25.25h2.688Z'/%3E%3C/svg%3E"); -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center; -webkit-mask-size: contain; mask-size: contain; }
176
+
177
+ /* ── GitHub source icon button ── */
178
+ span.xp-unrendered:hover { color: #6e7681; cursor: pointer; }
179
+
180
+ /* ── Title link ── */
181
+ .sidebar > h1 { position: relative; display: flex; align-items: center; justify-content: center; }
182
+
183
+ /* ── GitHub icon — fixed top-right, bare icon, all rendered pages ── */
184
+ #xp-gh-page-btn { position: fixed; top: 14px; right: 16px; z-index: 18; display: flex; align-items: center; justify-content: center; color: #484f58; text-decoration: none !important; transition: color 0.15s, transform 0.15s; }
185
+ #xp-gh-page-btn:hover { color: #8b949e; transform: scale(1.15); }
186
+ #xp-gh-page-btn svg { width: 18px; height: 18px; display: block; }
187
+ @media screen and (max-width: 599px) {
188
+ body:not(.close) #xp-gh-page-btn { display: none; }
189
+ }
190
+
191
+ /* ── Drag hidden when sidebar closed ── */
192
+ body.close .xp-drag { opacity: 0 !important; pointer-events: none !important; }
193
+
194
+ /* ── Responsive ── */
195
+ @media screen and (max-width: 1100px) and (min-width: 600px) {
196
+ .sidebar { width: 240px; }
197
+ .content { left: 240px; }
198
+ .xp-drag { left: 240px; }
199
+ #xp-toggle { left: 239px; }
200
+ }
201
+
202
+ @media screen and (max-width: 599px) {
203
+ .sidebar { position: fixed; width: 100vw !important; z-index: 30; }
204
+ .content { left: 0 !important; padding-top: 56px; }
205
+ .xp-drag { display: none !important; }
206
+ }
207
+
208
+ @media print { .sidebar, #xp-toggle, #xp-mobile-btn, .xp-drag, .app-nav, #xp-gh-page-btn { display: none !important; } .content { left: 0 !important; } }
package/ghmd-light.css ADDED
@@ -0,0 +1,153 @@
1
+ /* Explicode — GitHub Light theme for Docsify */
2
+
3
+ /* ── Reset & base ── */
4
+ *, *::before, *::after { box-sizing: border-box; }
5
+ * { -webkit-font-smoothing: antialiased; -webkit-overflow-scrolling: touch; -webkit-tap-highlight-color: rgba(0,0,0,0); -webkit-text-size-adjust: none; }
6
+ html, body { height: 100%; }
7
+ body { margin: 0; overflow-x: hidden; background-color: #ffffff; color: #1f2328; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif; font-size: 16px; line-height: 1.5; }
8
+ img { max-width: 100%; }
9
+ body:not(.ready) { overflow: hidden; }
10
+ body:not(.ready) [data-cloak], body:not(.ready) .app-nav, body:not(.ready) > nav { display: none; }
11
+ div#app { font-size: 30px; font-weight: lighter; margin: 40vh auto; text-align: center; color: #1f2328; }
12
+ div#app:empty::before { content: 'Loading...'; }
13
+ .progress { background-color: #0969da; height: 2px; left: 0; position: fixed; right: 0; top: 0; transition: width 0.2s, opacity 0.4s; width: 0%; z-index: 999999; }
14
+ main { display: block; position: relative; width: 100vw; height: 100%; z-index: 0; }
15
+ main.hidden { display: none; }
16
+ body.sticky .sidebar, body.sticky .sidebar-toggle { position: fixed; }
17
+ .content { padding-top: 60px; position: absolute; top: 0; right: 0; bottom: 0; left: 270px; transition: left 280ms cubic-bezier(0.4,0,0.2,1); }
18
+ body.close .content { left: 0; }
19
+ .sidebar { background-color: #f6f8fa; border-right: 1px solid #d0d7de; color: #1f2328; display: flex; flex-direction: column; overflow: hidden; position: absolute; top: 0; bottom: 0; left: 0; transition: transform 280ms cubic-bezier(0.4,0,0.2,1); width: 270px; z-index: 20; }
20
+ .sidebar > h1 { margin: 0; font-size: 1.05rem; font-weight: 600; text-align: center; flex-shrink: 0; padding: 14px 16px 13px; border-bottom: 1px solid #d0d7de; }
21
+ .sidebar > h1 a { color: #1f2328; text-decoration: none; display: block; }
22
+ .xp-sidebar-scroll { flex: 1; overflow-y: auto; padding: 24px 0 8px; min-height: 0; }
23
+ .xp-sidebar-scroll .sidebar-nav { margin-left: 8px; padding-bottom: 16px; }
24
+ .xp-sidebar-scroll::-webkit-scrollbar { width: 4px; }
25
+ .xp-sidebar-scroll::-webkit-scrollbar-thumb { background: transparent; border-radius: 4px; }
26
+ .xp-sidebar-scroll:hover::-webkit-scrollbar-thumb { background: rgba(136,136,136,0.4); }
27
+ .xp-sidebar-scroll:hover::-webkit-scrollbar-track { background: rgba(136,136,136,0.1); }
28
+ .sidebar ul { margin: 0; padding: 0; }
29
+ .sidebar ul, .sidebar ul li { list-style: none; }
30
+ .sidebar ul li a { border-bottom: none; display: block; }
31
+ .sidebar ul li ul { margin-left: 0; }
32
+ .sidebar-nav li.collapse > ul { display: block !important; }
33
+ .sidebar li > p { margin-left: 8px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: #6e7781; padding: 12px 8px 4px; }
34
+ .sidebar ul li .section-link { font-size: 12px; color: #57606a; }
35
+ .xp-sidebar-footer { flex-shrink: 0; border-top: 1px solid #d0d7de; padding: 10px 16px; display: flex; align-items: center; justify-content: center; }
36
+ .xp-sidebar-footer span, .xp-sidebar-footer { font-size: 11px; color: #8c959f; white-space: nowrap; }
37
+ .xp-sidebar-footer a { color: #6e7781; text-decoration: none; font-size: 11px; }
38
+ .xp-sidebar-footer a:hover { color: #57606a; text-decoration: underline; }
39
+ #xp-mobile-btn { display: none; position: fixed; top: 14px; left: 14px; z-index: 31; width: 36px; height: 36px; background: none; border: none; cursor: pointer; align-items: center; justify-content: center; padding: 0; }
40
+ @media screen and (max-width: 599px) { #xp-mobile-btn { display: flex; } }
41
+ .xp-mb-bars { display: flex; flex-direction: column; gap: 5px; align-items: center; justify-content: center; }
42
+ .xp-mb-bars span { display: block; width: 16px; height: 1.5px; background: #57606a; border-radius: 2px; }
43
+ .xp-mb-close { font-size: 14px; color: #57606a; line-height: 1; }
44
+ #xp-mobile-btn[data-open="false"] .xp-mb-bars { display: flex; }
45
+ #xp-mobile-btn[data-open="false"] .xp-mb-close { display: none; }
46
+ #xp-mobile-btn[data-open="true"] .xp-mb-bars { display: none; }
47
+ #xp-mobile-btn[data-open="true"] .xp-mb-close { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
48
+ .xp-folder-btn { display: flex; align-items: center; gap: 6px; width: calc(100% - 16px); margin: 0 8px; background: none; border: none; cursor: pointer; color: #57606a; font-size: 13px; font-weight: 600; padding: 5px 8px; border-radius: 6px; text-align: left; transition: background 0.1s, color 0.1s; }
49
+ .xp-folder-btn:hover { background: rgba(208,215,222,0.32); color: #1f2328; }
50
+ .xp-folder-label { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
51
+ .sidebar ul li ul { border-left: 1px solid #d0d7de; margin-left: 21px !important; padding-left: 0; }
52
+ .xp-item-icon, .xp-folder-icon { display: inline-flex; flex-shrink: 0; width: 14px; height: 14px; background-color: currentColor; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center; -webkit-mask-size: contain; mask-size: contain; }
53
+ .xp-hash-icon { width: 12px; height: 12px; }
54
+ .xp-home-icon { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M6.906.664a1.749 1.749 0 0 1 2.187 0l5.25 4.2c.415.332.657.835.657 1.367v7.019A1.75 1.75 0 0 1 13.25 15h-3.5a.75.75 0 0 1-.75-.75V9H7v5.25a.75.75 0 0 1-.75.75h-3.5A1.75 1.75 0 0 1 1 13.25V6.23c0-.531.242-1.034.657-1.366l5.25-4.2Zm1.25 1.171a.25.25 0 0 0-.312 0l-5.25 4.2a.25.25 0 0 0-.094.196v7.019c0 .138.112.25.25.25H5.5V8.25a.75.75 0 0 1 .75-.75h3.5a.75.75 0 0 1 .75.75v5.25h2.75a.25.25 0 0 0 .25-.25V6.23a.25.25 0 0 0-.094-.195Z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M6.906.664a1.749 1.749 0 0 1 2.187 0l5.25 4.2c.415.332.657.835.657 1.367v7.019A1.75 1.75 0 0 1 13.25 15h-3.5a.75.75 0 0 1-.75-.75V9H7v5.25a.75.75 0 0 1-.75.75h-3.5A1.75 1.75 0 0 1 1 13.25V6.23c0-.531.242-1.034.657-1.366l5.25-4.2Zm1.25 1.171a.25.25 0 0 0-.312 0l-5.25 4.2a.25.25 0 0 0-.094.196v7.019c0 .138.112.25.25.25H5.5V8.25a.75.75 0 0 1 .75-.75h3.5a.75.75 0 0 1 .75.75v5.25h2.75a.25.25 0 0 0 .25-.25V6.23a.25.25 0 0 0-.094-.195Z'/%3E%3C/svg%3E"); }
55
+ .xp-file-icon { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2 1.75C2 .784 2.784 0 3.75 0h6.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0 1 13.25 16h-9.5A1.75 1.75 0 0 1 2 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h9.5a.25.25 0 0 0 .25-.25V6h-2.75A1.75 1.75 0 0 1 9 4.25V1.5Zm6.75.062V4.25c0 .138.112.25.25.25h2.688Z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2 1.75C2 .784 2.784 0 3.75 0h6.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0 1 13.25 16h-9.5A1.75 1.75 0 0 1 2 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h9.5a.25.25 0 0 0 .25-.25V6h-2.75A1.75 1.75 0 0 1 9 4.25V1.5Zm6.75.062V4.25c0 .138.112.25.25.25h2.688Z'/%3E%3C/svg%3E"); }
56
+ .xp-hash-icon { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M6.368 1.01a.75.75 0 0 1 .623.859L6.57 4h3.98l.46-2.868a.75.75 0 0 1 1.48.237L12.07 4h2.18a.75.75 0 0 1 0 1.5h-2.42l-.64 4h2.31a.75.75 0 0 1 0 1.5h-2.55l-.46 2.869a.75.75 0 0 1-1.48-.237l.42-2.632H5.45l-.46 2.869a.75.75 0 0 1-1.48-.237L3.93 11H1.75a.75.75 0 0 1 0-1.5h2.42l.64-4H2.5a.75.75 0 0 1 0-1.5h2.55l.46-2.868a.75.75 0 0 1 .858-.622ZM9.309 9.5l.64-4H5.969l-.64 4Z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M6.368 1.01a.75.75 0 0 1 .623.859L6.57 4h3.98l.46-2.868a.75.75 0 0 1 1.48.237L12.07 4h2.18a.75.75 0 0 1 0 1.5h-2.42l-.64 4h2.31a.75.75 0 0 1 0 1.5h-2.55l-.46 2.869a.75.75 0 0 1-1.48-.237l.42-2.632H5.45l-.46 2.869a.75.75 0 0 1-1.48-.237L3.93 11H1.75a.75.75 0 0 1 0-1.5h2.42l.64-4H2.5a.75.75 0 0 1 0-1.5h2.55l.46-2.868a.75.75 0 0 1 .858-.622ZM9.309 9.5l.64-4H5.969l-.64 4Z'/%3E%3C/svg%3E"); }
57
+ .xp-folder-open { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M.513 1.513A1.75 1.75 0 0 1 1.75 1h3.5c.55 0 1.07.26 1.4.7l.9 1.2a.25.25 0 0 0 .2.1H14.25c.966 0 1.75.784 1.75 1.75v8.5A1.75 1.75 0 0 1 14.25 15H1.75A1.75 1.75 0 0 1 0 13.25V2.75c0-.464.184-.91.513-1.237ZM1.75 2.5a.25.25 0 0 0-.25.25v.5h13V4.75a.25.25 0 0 0-.25-.25H7.75A1.75 1.75 0 0 1 6.35 3.8l-.9-1.2a.25.25 0 0 0-.2-.1H1.75Z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M.513 1.513A1.75 1.75 0 0 1 1.75 1h3.5c.55 0 1.07.26 1.4.7l.9 1.2a.25.25 0 0 0 .2.1H14.25c.966 0 1.75.784 1.75 1.75v8.5A1.75 1.75 0 0 1 14.25 15H1.75A1.75 1.75 0 0 1 0 13.25V2.75c0-.464.184-.91.513-1.237ZM1.75 2.5a.25.25 0 0 0-.25.25v.5h13V4.75a.25.25 0 0 0-.25-.25H7.75A1.75 1.75 0 0 1 6.35 3.8l-.9-1.2a.25.25 0 0 0-.2-.1H1.75Z'/%3E%3C/svg%3E"); }
58
+ .xp-folder-closed { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M1.75 1A1.75 1.75 0 0 0 0 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0 0 16 13.25v-8.5A1.75 1.75 0 0 0 14.25 3H7.5a.25.25 0 0 1-.2-.1l-.9-1.2C6.07 1.26 5.55 1 5 1Z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M1.75 1A1.75 1.75 0 0 0 0 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0 0 16 13.25v-8.5A1.75 1.75 0 0 0 14.25 3H7.5a.25.25 0 0 1-.2-.1l-.9-1.2C6.07 1.26 5.55 1 5 1Z'/%3E%3C/svg%3E"); }
59
+ .sidebar ul li a { color: #57606a; font-size: 13px; padding: 5px 8px 5px 16px; margin-right: 8px; border-radius: 6px; text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: flex; align-items: center; gap: 6px; transition: background 0.1s, color 0.1s; }
60
+ .sidebar ul li a:hover { background: rgba(208,215,222,0.32); color: #1f2328; }
61
+ .sidebar ul li.active > a { background: rgba(208,215,222,0.48); color: #1f2328; }
62
+ .sidebar ul li { position: relative; }
63
+ .sidebar ul li a .xp-item-icon { color: #57606a; }
64
+ .sidebar ul li a:hover .xp-item-icon, .sidebar ul li.active > a .xp-item-icon { color: #1f2328; }
65
+ .xp-folder-btn .xp-folder-icon { color: #8c959f; }
66
+ .xp-folder-btn:hover .xp-folder-icon { color: #57606a; }
67
+ .app-sub-sidebar { margin: 1px 0 3px 0 !important; padding-left: 0 !important; border-left: 1px solid #d0d7de !important; margin-left: 21px !important; }
68
+ .app-sub-sidebar li > a { padding: 4px 8px !important; font-size: 12px !important; color: #8c959f !important; display: flex !important; align-items: center !important; gap: 5px !important; }
69
+ .app-sub-sidebar li > a:hover { color: #57606a !important; background: rgba(208,215,222,0.2) !important; }
70
+ .app-sub-sidebar li.active > a { color: #0969da !important; }
71
+ .app-sub-sidebar .xp-item-icon { color: #b1bac4; }
72
+ .app-sub-sidebar li.active > a .xp-hash-icon { color: #0969da; }
73
+ .xp-drag { position: fixed; top: 0; left: 270px; width: 6px; height: 100%; cursor: col-resize; z-index: 25; background: rgba(140,149,159,0.2); }
74
+ .xp-drag:hover, .xp-drag:active { background: rgba(9,105,218,0.4); }
75
+ #xp-toggle { position: fixed; top: 50%; left: 269px; transform: translateY(-50%); z-index: 26; width: 16px; height: 48px; background: #eaeef2; border: 1px solid rgba(27,31,35,0.15); border-left: none; border-radius: 0 6px 6px 0; cursor: pointer; color: #57606a; font-size: 14px; line-height: 1; display: flex; align-items: center; justify-content: center; padding: 0; transition: background 0.15s, color 0.15s; }
76
+ #xp-toggle:hover { background: #d0d7de; color: #1f2328; }
77
+ @media screen and (max-width: 599px) { #xp-toggle { display: none !important; } }
78
+ .sidebar-toggle { display: none !important; }
79
+ body.close .sidebar { transform: translateX(-100%); }
80
+ body.close .content { left: 0; }
81
+ .markdown-section { margin: 0 auto; max-width: 860px; padding: 32px 40px 60px; position: relative; }
82
+ .markdown-section > * { box-sizing: border-box; font-size: inherit; }
83
+ .markdown-section > :first-child { margin-top: 0 !important; }
84
+ .markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section h5, .markdown-section h6 { font-weight: 600; margin-top: 24px; margin-bottom: 16px; line-height: 1.25; }
85
+ .markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section strong { color: #1f2328; }
86
+ .markdown-section h1 { font-size: 2em; padding-bottom: 0.3em; border-bottom: 1px solid #d8dee4; }
87
+ .markdown-section h2 { font-size: 1.5em; padding-bottom: 0.3em; border-bottom: 1px solid #d8dee4; }
88
+ .markdown-section h3 { font-size: 1.25em; }
89
+ .markdown-section h4 { font-size: 1em; }
90
+ .markdown-section h5 { font-size: 0.875em; }
91
+ .markdown-section h6 { font-size: 0.85em; color: #636c76; }
92
+ .markdown-section h1 a, .markdown-section h2 a, .markdown-section h3 a, .markdown-section h4 a, .markdown-section h5 a, .markdown-section h6 a { text-decoration: none !important; color: inherit !important; }
93
+ .markdown-section p, .markdown-section ul, .markdown-section ol { margin-top: 0; margin-bottom: 16px; line-height: 1.6; }
94
+ .markdown-section ul, .markdown-section ol { padding-left: 2em; }
95
+ .markdown-section li + li { margin-top: 4px; }
96
+ .markdown-section ul.task-list > li { list-style-type: none; }
97
+ .markdown-section a { color: #0969da; text-decoration: none; text-underline-offset: 25%; }
98
+ .markdown-section a:hover { text-decoration: underline; }
99
+ .markdown-section hr { border: none; border-bottom: 1px solid #d8dee4; margin: 24px 0; }
100
+ .markdown-section blockquote { border-left: 4px solid #d0d7de; color: #656d76; margin: 16px 0; padding: 0 16px; }
101
+ .markdown-section blockquote p { margin-left: 0; }
102
+ .markdown-section em { color: #57606a; }
103
+ .markdown-section code, .markdown-section pre { font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace; }
104
+ .markdown-section code { background-color: rgba(175,184,193,0.2); border-radius: 6px; padding: 0.2em 0.4em; font-size: 85%; color: #1f2328; }
105
+ .markdown-section pre { background-color: #f6f8fa; border-radius: 6px; padding: 16px; overflow: auto; margin: 0 0 16px; line-height: 1.45; }
106
+ .markdown-section pre > code { background: transparent; padding: 0; font-size: 85%; color: #1f2328; border-radius: 0; white-space: pre; }
107
+ .markdown-section table { border-collapse: collapse; border-spacing: 0; display: block; margin-bottom: 16px; overflow: auto; width: 100%; }
108
+ .markdown-section th { background-color: #f6f8fa; border: 1px solid #d0d7de; font-weight: 600; padding: 6px 13px; }
109
+ .markdown-section td { border: 1px solid #d0d7de; padding: 6px 13px; }
110
+ .markdown-section tr { border-top: 1px solid #d0d7de; }
111
+ .markdown-section tr:nth-child(2n) { background-color: #f6f8fa; }
112
+ .markdown-section img { max-width: 100%; border-style: none; border-radius: 6px; }
113
+ .markdown-section iframe { border: 1px solid #d0d7de; width: 1px; min-width: 100%; margin: 1em 0; }
114
+ .markdown-section p.tip { color: #1f2328; border-left: 3px solid #9a6700; padding: 0 1rem; line-height: 2.3; margin: 2em 0; }
115
+ .markdown-section p.tip:before { content: "⚠️ Warning\A"; color: #9a6700; font-weight: 600; white-space: pre-wrap; }
116
+ .markdown-section p.warn { color: #1f2328; border-left: 3px solid #0969da; padding: 0 1rem; margin: 2em 0; }
117
+ .markdown-section p.warn:before { content: "💡 Tip\A"; color: #0969da; font-weight: 600; white-space: pre-wrap; line-height: 2.5; }
118
+ .markdown-section pre { background-color: #fafafa !important; border: 1px solid #e8eaed; }
119
+ .token.comment, .token.prolog, .token.doctype, .token.cdata { color: #a0a1a7; font-style: italic; }
120
+ .token.namespace { opacity: 0.8; }
121
+ .token.boolean { color: #0184bb; }
122
+ .token.number { color: #986801; }
123
+ .token.punctuation, .token.operator { color: #383a42; }
124
+ .token.property { color: #986801; }
125
+ .token.tag { color: #e45649; }
126
+ .token.string, .token.char, .token.attr-value { color: #50a14f; }
127
+ .token.selector, .token.class-name { color: #986801; }
128
+ .token.attr-name { color: #986801; }
129
+ .token.entity, .token.url { color: #0184bb; }
130
+ .token.keyword, .token.rule { color: #a626a4; }
131
+ .token.function, .token.function-name { color: #4078f2; }
132
+ .token.regex, .token.atrule { color: #0184bb; }
133
+ .token.placeholder, .token.variable { color: #e45649; }
134
+ .token.type-hint, .token.builtin { color: #986801; }
135
+ .token.parameter { color: #383a42; }
136
+ .token.deleted { text-decoration: line-through; color: #e45649; }
137
+ .token.inserted { text-decoration: none; color: #50a14f; }
138
+ .token.italic { font-style: italic; }
139
+ .token.important, .token.bold { font-weight: bold; }
140
+ .token.important { color: #e45649; }
141
+ .token.entity { cursor: help; }
142
+ .xp-unrendered { color: #c8cdd3; font-size: 13px; padding: 5px 8px 5px 16px; display: flex; align-items: center; gap: 6px; cursor: default; user-select: none; }
143
+ .xp-unrendered::before { content: ''; display: inline-flex; flex-shrink: 0; width: 14px; height: 14px; background-color: #c8cdd3; -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2 1.75C2 .784 2.784 0 3.75 0h6.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0 1 13.25 16h-9.5A1.75 1.75 0 0 1 2 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h9.5a.25.25 0 0 0 .25-.25V6h-2.75A1.75 1.75 0 0 1 9 4.25V1.5Zm6.75.062V4.25c0 .138.112.25.25.25h2.688Z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2 1.75C2 .784 2.784 0 3.75 0h6.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0 1 13.25 16h-9.5A1.75 1.75 0 0 1 2 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h9.5a.25.25 0 0 0 .25-.25V6h-2.75A1.75 1.75 0 0 1 9 4.25V1.5Zm6.75.062V4.25c0 .138.112.25.25.25h2.688Z'/%3E%3C/svg%3E"); -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center; -webkit-mask-size: contain; mask-size: contain; }
144
+ span.xp-unrendered:hover { color: #8c959f; cursor: pointer; }
145
+ .sidebar > h1 { position: relative; display: flex; align-items: center; justify-content: center; }
146
+ #xp-gh-page-btn { position: fixed; top: 14px; right: 16px; z-index: 18; display: flex; align-items: center; justify-content: center; color: #b1bac4; text-decoration: none !important; transition: color 0.15s, transform 0.15s; }
147
+ #xp-gh-page-btn:hover { color: #57606a; transform: scale(1.15); }
148
+ #xp-gh-page-btn svg { width: 18px; height: 18px; display: block; }
149
+ @media screen and (max-width: 599px) { body:not(.close) #xp-gh-page-btn { display: none; } }
150
+ body.close .xp-drag { opacity: 0 !important; pointer-events: none !important; }
151
+ @media screen and (max-width: 1100px) and (min-width: 600px) { .sidebar { width: 240px; } .content { left: 240px; } .xp-drag { left: 240px; } #xp-toggle { left: 239px; } }
152
+ @media screen and (max-width: 599px) { .sidebar { position: fixed; width: 100vw !important; z-index: 30; } .content { left: 0 !important; padding-top: 56px; } .xp-drag { display: none !important; } }
153
+ @media print { .sidebar, #xp-toggle, #xp-mobile-btn, .xp-drag, .app-nav, #xp-gh-page-btn { display: none !important; } .content { left: 0 !important; } }