/* Python Documentation Style - Inspired by docs.python.org */ :root { --bg-primary: #ffffff; --bg-secondary: #f8f9fa; --text-primary: #1a1a1a; --text-secondary: #4a4a4a; --border-color: #e1e4e8; --accent-color: #3776ab; --accent-hover: #2d5f8a; --code-bg: #f6f8fa; --code-border: #e1e4e8; --sidebar-bg: #fafbfc; --sidebar-width: 280px; --sidebar-collapsed-width: 60px; --transition-speed: 0.2s; --font-mono: 'Consolas', 'Monaco', 'Courier New', monospace; } [data-theme="dark"] { --bg-primary: #1e1e1e; --bg-secondary: #252526; --text-primary: #d4d4d4; --text-secondary: #858585; --border-color: #3e3e42; --accent-color: #4a9eff; --accent-hover: #6bb3ff; --code-bg: #252526; --code-border: #3e3e42; --sidebar-bg: #252526; } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif; background-color: var(--bg-primary); color: var(--text-primary); transition: background-color var(--transition-speed), color var(--transition-speed); display: flex; min-height: 100vh; overflow-x: hidden; line-height: 1.6; font-size: 15px; margin: 0; padding: 0; } /* Sidebar */ .sidebar { position: fixed; left: 0; top: 0; height: 100vh; width: var(--sidebar-width); background-color: var(--sidebar-bg); border-right: 1px solid var(--border-color); display: flex; flex-direction: column; z-index: 1000; overflow: hidden; } .sidebar-header { display: flex; align-items: center; justify-content: space-between; padding: 1rem; border-bottom: 1px solid var(--border-color); min-height: 60px; background-color: var(--bg-primary); } .sidebar-title { font-size: 1.1rem; font-weight: 600; color: var(--text-primary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .sidebar-content { flex: 1; overflow-y: auto; overflow-x: hidden; display: flex; flex-direction: column; min-height: 0; } /* Navigation Tabs */ .nav-tabs { display: flex; border-bottom: 1px solid var(--border-color); background-color: var(--bg-primary); } .nav-tab { flex: 1; padding: 0.75rem 1rem; background: none; border: none; border-bottom: 2px solid transparent; cursor: pointer; color: var(--text-secondary); font-size: 0.9rem; font-weight: 500; transition: all var(--transition-speed); } .nav-tab:hover { color: var(--text-primary); background-color: var(--bg-secondary); } .nav-tab.active { color: var(--accent-color); border-bottom-color: var(--accent-color); } .tab-content { flex: 1; display: flex; flex-direction: column; overflow: hidden; min-height: 0; } /* Search Form */ .search-form { padding: 1rem; border-bottom: 1px solid var(--border-color); background-color: var(--bg-primary); } /* Search Bar */ .search-bar-wrapper { position: relative; width: 100%; } .search-icon { position: absolute; left: 0.75rem; top: 50%; transform: translateY(-50%); font-size: 1.1rem; z-index: 1; pointer-events: none; color: var(--text-secondary); } .search-bar-input { width: 100%; padding: 0.75rem 1rem; padding-left: 2.5rem; border: 2px solid var(--border-color); border-radius: 8px; background-color: var(--bg-primary); color: var(--text-primary); font-size: 0.95rem; transition: all var(--transition-speed); box-sizing: border-box; } .search-bar-input:focus { outline: none; border-color: var(--accent-color); box-shadow: 0 0 0 3px rgba(55, 118, 171, 0.1); } .search-bar-input::placeholder { color: var(--text-secondary); } /* Search Suggestions */ .search-suggestions { position: absolute; top: calc(100% + 0.5rem); left: 0; right: 0; background-color: var(--bg-primary); border: 1px solid var(--border-color); border-radius: 8px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); max-height: 300px; overflow-y: auto; z-index: 1000; display: none; margin-top: 0.25rem; } [data-theme="dark"] .search-suggestions { box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4); } .search-suggestions.active { display: block; } .search-suggestion { display: flex; align-items: center; gap: 0.75rem; padding: 0.75rem 1rem; cursor: pointer; transition: background-color var(--transition-speed); border-bottom: 1px solid var(--border-color); } .search-suggestion:last-child { border-bottom: none; } .search-suggestion:hover, .search-suggestion.selected { background-color: var(--bg-secondary); } .search-suggestion .suggestion-icon { font-size: 1.2rem; flex-shrink: 0; } .search-suggestion .suggestion-name { flex: 1; color: var(--text-primary); font-size: 0.9rem; } .search-suggestion .suggestion-name mark { background-color: var(--accent-color); color: white; padding: 0.1rem 0.2rem; border-radius: 2px; font-weight: 600; } .search-suggestion .suggestion-type { font-size: 0.75rem; color: var(--text-secondary); text-transform: uppercase; padding: 0.2rem 0.5rem; background-color: var(--bg-secondary); border-radius: 4px; } /* Language Selector */ .language-selector { position: fixed; top: 1rem; right: 1rem; z-index: 1000; } .language-selector-button { display: flex; align-items: center; gap: 0.5rem; padding: 0.5rem 0.75rem; background-color: var(--bg-primary); border: 1px solid var(--border-color); border-radius: 8px; cursor: pointer; transition: all var(--transition-speed); font-size: 0.9rem; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); } [data-theme="dark"] .language-selector-button { box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3); } .language-selector-button:hover { background-color: var(--bg-secondary); border-color: var(--accent-color); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); } .language-emoji { font-size: 1.2rem; line-height: 1; } .language-name { color: var(--text-primary); font-weight: 500; } .language-arrow { color: var(--text-secondary); font-size: 0.7rem; transition: transform var(--transition-speed); } .language-selector-button:active .language-arrow { transform: rotate(180deg); } .language-dropdown.active + .language-selector-button .language-arrow, .language-selector:has(.language-dropdown.active) .language-arrow { transform: rotate(180deg); } .language-dropdown { position: absolute; top: calc(100% + 0.5rem); right: 0; background-color: var(--bg-primary); border: 1px solid var(--border-color); border-radius: 8px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); min-width: 200px; max-height: 400px; overflow-y: auto; display: none; z-index: 1001; } [data-theme="dark"] .language-dropdown { box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4); } .language-dropdown.active { display: block; } .language-option { display: flex; align-items: center; gap: 0.75rem; width: 100%; padding: 0.75rem 1rem; background: none; border: none; text-align: left; cursor: pointer; transition: background-color var(--transition-speed); border-bottom: 1px solid var(--border-color); } .language-option:last-child { border-bottom: none; } .language-option:hover { background-color: var(--bg-secondary); } .language-option.active { background-color: var(--accent-color); color: white; } .language-option.active .language-name, .language-option.active .language-name-en { color: white; } .language-name-en { margin-left: auto; font-size: 0.85rem; color: var(--text-secondary); } /* Responsive adjustments */ @media (max-width: 768px) { .language-selector { top: 0.75rem; right: 0.75rem; } .language-selector-button { padding: 0.4rem 0.6rem; font-size: 0.85rem; } .language-name { display: none; } .language-dropdown { right: 0; min-width: 180px; } .search-suggestions { max-height: 250px; } } .input-group { margin-bottom: 0.75rem; } .input-group:last-child { margin-bottom: 0; } .input-group label { display: block; margin-bottom: 0.25rem; font-weight: 500; color: var(--text-primary); font-size: 0.85rem; } .input-group input, .input-group select { width: 100%; padding: 0.5rem 0.75rem; border: 1px solid var(--border-color); border-radius: 4px; background-color: var(--bg-primary); color: var(--text-primary); font-size: 0.9rem; transition: border-color var(--transition-speed); } .input-group input:focus, .input-group select:focus { outline: none; border-color: var(--accent-color); box-shadow: 0 0 0 3px rgba(55, 118, 171, 0.1); } .search-btn { width: 100%; padding: 0.6rem; background-color: var(--accent-color); color: white; border: none; border-radius: 4px; font-size: 0.9rem; font-weight: 500; cursor: pointer; transition: background-color var(--transition-speed); margin-top: 0.5rem; } .search-btn:hover { background-color: var(--accent-hover); } .search-btn:disabled { background-color: var(--text-secondary); cursor: not-allowed; } /* Module List */ .module-list-container { flex: 1; overflow-y: auto; padding: 1rem; min-height: 0; } .module-list-title { font-size: 0.85rem; font-weight: 600; color: var(--text-primary); margin-bottom: 0.75rem; padding-bottom: 0.5rem; border-bottom: 1px solid var(--border-color); text-transform: uppercase; letter-spacing: 0.5px; font-size: 0.75rem; } .module-section { margin-bottom: 1.5rem; } .module-section-title { font-size: 0.8rem; font-weight: 600; color: var(--text-secondary); margin-bottom: 0.5rem; text-transform: uppercase; letter-spacing: 0.5px; } .module-items-list { display: flex; flex-direction: column; gap: 0.15rem; } .module-item { width: 100%; text-align: left; padding: 0.4rem 0.6rem; background: none; border: none; border-radius: 3px; cursor: pointer; color: var(--text-primary); font-size: 0.85rem; transition: all var(--transition-speed); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .module-item:hover { background-color: var(--bg-secondary); color: var(--accent-color); } .module-item:active { background-color: var(--accent-color); color: white; } /* Theme Toggle */ .theme-toggle-container { padding: 1rem; border-top: 1px solid var(--border-color); display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; background-color: var(--bg-primary); } .theme-toggle-label { font-size: 0.85rem; color: var(--text-secondary); white-space: nowrap; } .theme-toggle { background: none; border: 1px solid var(--border-color); cursor: pointer; padding: 0.5rem; border-radius: 4px; color: var(--text-primary); display: flex; align-items: center; justify-content: center; transition: all var(--transition-speed); width: 2.5rem; height: 2.5rem; } .theme-toggle:hover { background-color: var(--bg-secondary); border-color: var(--accent-color); } .theme-toggle__inner-moon { transition: transform var(--transition-speed); } [data-theme="dark"] .theme-toggle__inner-moon { transform: rotate(180deg); } .theme-toggle-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border-width: 0; } .resize-handle { position: absolute; right: 0; top: 0; width: 4px; height: 100%; cursor: ew-resize; background-color: transparent; transition: background-color var(--transition-speed); } .resize-handle:hover { background-color: var(--accent-color); } /* Main Content */ .content { margin-left: var(--sidebar-width); padding: 2rem 3rem; max-width: 100%; width: 100%; transition: margin-left var(--transition-speed); background-color: var(--bg-primary); } /* Typography - Python Docs Style */ h1 { font-size: 2.5rem; font-weight: 400; margin-bottom: 1rem; color: var(--text-primary); line-height: 1.2; border-bottom: 1px solid var(--border-color); padding-bottom: 0.5rem; } h2 { font-size: 1.75rem; font-weight: 400; margin-top: 2rem; margin-bottom: 1rem; color: var(--text-primary); line-height: 1.3; border-bottom: 1px solid var(--border-color); padding-bottom: 0.3rem; } h3 { font-size: 1.25rem; font-weight: 500; margin-top: 1.5rem; margin-bottom: 0.75rem; color: var(--text-primary); } p { margin-bottom: 1rem; color: var(--text-primary); line-height: 1.7; } /* Documentation Display - Python Docs Style */ .results-container { max-width: 900px; } .doc-header { margin-bottom: 1.5rem; padding-bottom: 1rem; border-bottom: 1px solid var(--border-color); } .doc-title { font-size: 2rem; font-weight: 400; color: var(--text-primary); margin-bottom: 0.5rem; } .doc-meta { font-size: 0.9rem; color: var(--text-secondary); display: flex; align-items: center; gap: 0.5rem; } .type-badge { display: inline-block; padding: 0.2rem 0.5rem; background-color: var(--bg-secondary); color: var(--text-primary); border-radius: 3px; font-size: 0.75rem; border: 1px solid var(--border-color); font-weight: 500; } .doc-badge { display: inline-block; padding: 0.2rem 0.5rem; background-color: var(--accent-color); color: white; border-radius: 3px; font-size: 0.75rem; font-weight: 500; } .doc-signature { font-family: var(--font-mono); background-color: var(--code-bg); padding: 1rem; border-radius: 4px; margin: 1.5rem 0; border: 1px solid var(--code-border); color: var(--text-primary); font-size: 0.9rem; overflow-x: auto; } .doc-section { margin-bottom: 2rem; } .doc-section-title { font-size: 1.1rem; font-weight: 500; margin-bottom: 0.75rem; color: var(--text-primary); } .doc-text { white-space: pre-wrap; line-height: 1.8; color: var(--text-primary); font-size: 0.95rem; margin-bottom: 1rem; } /* Code blocks */ .doc-text code, .doc-signature code { font-family: var(--font-mono); background-color: var(--code-bg); padding: 0.2rem 0.4rem; border-radius: 3px; font-size: 0.9em; border: 1px solid var(--code-border); } /* Welcome Message */ .welcome-message { text-align: center; padding: 4rem 2rem; color: var(--text-secondary); max-width: 600px; margin: 0 auto; } .welcome-message h1 { border: none; margin-bottom: 1.5rem; color: var(--text-primary); } .welcome-message p { margin-bottom: 0.75rem; line-height: 1.8; font-size: 1rem; } /* Course Content */ .course-content { max-width: 900px; } .course-section { margin-bottom: 3rem; scroll-margin-top: 2rem; } .course-section h2 { margin-top: 0; } .markdown-content { line-height: 1.8; } .markdown-content h1, .markdown-content h2, .markdown-content h3, .markdown-content h4 { margin-top: 2rem; margin-bottom: 1rem; color: var(--text-primary); font-weight: 500; } .markdown-content h1 { font-size: 2rem; border-bottom: 1px solid var(--border-color); padding-bottom: 0.5rem; } .markdown-content h2 { font-size: 1.5rem; border-bottom: 1px solid var(--border-color); padding-bottom: 0.3rem; } .markdown-content h3 { font-size: 1.25rem; } .markdown-content h4 { font-size: 1.1rem; } .markdown-content p { margin-bottom: 1rem; color: var(--text-primary); } .markdown-content ul, .markdown-content ol { margin-bottom: 1rem; padding-left: 2rem; } .markdown-content li { margin-bottom: 0.5rem; color: var(--text-primary); } .markdown-content code { font-family: var(--font-mono); background-color: var(--code-bg); padding: 0.2rem 0.4rem; border-radius: 3px; font-size: 0.9em; border: 1px solid var(--code-border); color: var(--text-primary); } .markdown-content pre { background-color: var(--code-bg); border: 1px solid var(--code-border); border-radius: 4px; padding: 1rem; overflow-x: auto; margin: 1.5rem 0; } .markdown-content pre code { background: none; border: none; padding: 0; font-size: 0.9rem; line-height: 1.5; } .markdown-content blockquote { border-left: 4px solid var(--accent-color); padding-left: 1rem; margin: 1rem 0; color: var(--text-secondary); font-style: italic; } .markdown-content a { color: var(--accent-color); text-decoration: none; } .markdown-content a:hover { text-decoration: underline; } .course-item { margin-bottom: 1.5rem; padding-left: 1.5rem; position: relative; } .course-item::before { content: "→"; position: absolute; left: 0; color: var(--accent-color); font-weight: bold; } .course-item a { color: var(--accent-color); text-decoration: none; font-weight: 500; } .course-item a:hover { text-decoration: underline; } /* Error Message */ .error-message { background-color: #fee; border: 1px solid #fcc; color: #c33; padding: 1rem; border-radius: 4px; margin-top: 1rem; } [data-theme="dark"] .error-message { background-color: #3a1f1f; border-color: #5a2f2f; color: #ff6b6b; } .loading { text-align: center; padding: 3rem; color: var(--text-secondary); font-size: 1rem; } /* Loading Progress Container */ .loading-container { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 4rem 2rem; min-height: 400px; gap: 2rem; } /* Spinner Animation */ .loading-spinner { position: relative; width: 64px; height: 64px; } .spinner-ring { position: absolute; width: 100%; height: 100%; border: 4px solid transparent; border-top-color: var(--accent-color); border-radius: 50%; animation: spin 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite; } .spinner-ring:nth-child(1) { animation-delay: -0.45s; border-top-color: var(--accent-color); opacity: 1; } .spinner-ring:nth-child(2) { animation-delay: -0.3s; border-top-color: var(--accent-hover); opacity: 0.8; width: 80%; height: 80%; top: 10%; left: 10%; } .spinner-ring:nth-child(3) { animation-delay: -0.15s; border-top-color: var(--accent-color); opacity: 0.6; width: 60%; height: 60%; top: 20%; left: 20%; } .spinner-ring:nth-child(4) { animation-delay: 0s; border-top-color: var(--accent-hover); opacity: 0.4; width: 40%; height: 40%; top: 30%; left: 30%; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .loading-text { font-size: 1.1rem; color: var(--text-primary); font-weight: 500; text-align: center; margin-top: 1rem; } /* Qt-style Progress Bar */ .progress-container { width: 100%; max-width: 400px; margin-top: 1rem; } .progress-bar { position: relative; width: 100%; height: 24px; background-color: var(--bg-secondary); border: 1px solid var(--border-color); border-radius: 12px; overflow: hidden; box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); } .progress-fill { position: absolute; top: 0; left: 0; height: 100%; width: 0%; background: linear-gradient( 90deg, var(--accent-color) 0%, var(--accent-hover) 50%, var(--accent-color) 100% ); background-size: 200% 100%; border-radius: 11px; transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1); animation: progressShine 2s linear infinite; box-shadow: 0 0 8px rgba(55, 118, 171, 0.3); } [data-theme="dark"] .progress-fill { background: linear-gradient( 90deg, var(--accent-color) 0%, #6bb3ff 50%, var(--accent-color) 100% ); background-size: 200% 100%; box-shadow: 0 0 12px rgba(74, 158, 255, 0.4); } .progress-shine { position: absolute; top: 0; left: 0; width: 30%; height: 100%; background: linear-gradient( 90deg, transparent 0%, rgba(255, 255, 255, 0.5) 50%, transparent 100% ); animation: shine 2.5s ease-in-out infinite; pointer-events: none; opacity: 0; transition: opacity 0.3s; } .progress-bar .progress-shine { opacity: 0; } .progress-bar.has-progress .progress-shine { opacity: 1; } @keyframes progressShine { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } } @keyframes shine { 0% { transform: translateX(-100%); } 50% { transform: translateX(100%); } 100% { transform: translateX(100%); } } .progress-text { text-align: center; margin-top: 0.75rem; font-size: 0.9rem; color: var(--text-secondary); font-weight: 500; font-variant-numeric: tabular-nums; } /* Responsive adjustments for loading */ @media (max-width: 768px) { .loading-container { padding: 3rem 1.5rem; min-height: 300px; gap: 1.5rem; } .loading-spinner { width: 48px; height: 48px; } .spinner-ring { border-width: 3px; } .loading-text { font-size: 1rem; } .progress-container { max-width: 100%; } .progress-bar { height: 20px; } .progress-text { font-size: 0.85rem; margin-top: 0.5rem; } } .loading-modules { text-align: center; padding: 1rem; color: var(--text-secondary); font-size: 0.9rem; } /* Scrollbar styling */ .sidebar-content::-webkit-scrollbar, .content::-webkit-scrollbar { width: 8px; } .sidebar-content::-webkit-scrollbar-track, .content::-webkit-scrollbar-track { background: var(--bg-secondary); } .sidebar-content::-webkit-scrollbar-thumb, .content::-webkit-scrollbar-thumb { background: var(--border-color); border-radius: 4px; } .sidebar-content::-webkit-scrollbar-thumb:hover, .content::-webkit-scrollbar-thumb:hover { background: var(--text-secondary); } /* Mobile Menu Toggle */ .mobile-menu-toggle { display: none; position: fixed; top: 1rem; left: 1rem; z-index: 1001; background-color: var(--bg-primary); border: 1px solid var(--border-color); color: var(--text-primary); padding: 0.75rem; border-radius: 4px; cursor: pointer; font-size: 1.5rem; line-height: 1; transition: all var(--transition-speed); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); } .mobile-menu-toggle:hover { background-color: var(--bg-secondary); border-color: var(--accent-color); } [data-theme="dark"] .mobile-menu-toggle { box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3); } /* Sidebar Overlay */ .sidebar-overlay { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(0, 0, 0, 0.5); z-index: 999; opacity: 0; transition: opacity 0.3s ease-in-out; pointer-events: none; } @media (max-width: 768px) { .sidebar-overlay.active { display: block; opacity: 1; pointer-events: all; } [data-theme="dark"] .sidebar-overlay { background-color: rgba(0, 0, 0, 0.7); } } /* Responsive */ @media (max-width: 768px) { .mobile-menu-toggle { display: block; } .sidebar { transform: translateX(-100%); transition: transform 0.3s ease-in-out; box-shadow: 2px 0 8px rgba(0, 0, 0, 0.1); } .sidebar.open { transform: translateX(0); box-shadow: 2px 0 12px rgba(0, 0, 0, 0.15); } .content { margin-left: 0; padding: 1rem; width: 100%; } .sidebar-header { padding: 0.75rem; min-height: 50px; } .sidebar-title { font-size: 1rem; } .search-form { padding: 0.75rem; } .module-list-container { padding: 0.75rem; } .theme-toggle-container { padding: 0.75rem; } .resize-handle { display: none; } h1 { font-size: 1.75rem; line-height: 1.3; } h2 { font-size: 1.5rem; } h3 { font-size: 1.1rem; } .doc-title { font-size: 1.5rem; } .welcome-message { padding: 2rem 1rem; } .welcome-message h1 { font-size: 1.75rem; } .doc-signature { padding: 0.75rem; font-size: 0.85rem; overflow-x: auto; } .markdown-content { overflow-wrap: break-word; word-wrap: break-word; } .markdown-content pre { padding: 0.75rem; overflow-x: auto; font-size: 0.85rem; } .markdown-content code { font-size: 0.85rem; } .nav-tab { padding: 0.6rem 0.75rem; font-size: 0.85rem; } } /* Tablet */ @media (min-width: 769px) and (max-width: 1024px) { .content { padding: 1.5rem 2rem; } .sidebar { width: 260px; } :root { --sidebar-width: 260px; } } /* Small mobile */ @media (max-width: 480px) { .content { padding: 0.75rem; } .sidebar { width: 85vw; max-width: 300px; } .mobile-menu-toggle { top: 0.75rem; left: 0.75rem; padding: 0.6rem; font-size: 1.25rem; } h1 { font-size: 1.5rem; } .doc-title { font-size: 1.25rem; } .welcome-message { padding: 1.5rem 0.75rem; } .welcome-message h1 { font-size: 1.5rem; } .search-form { padding: 0.5rem; } .input-group { margin-bottom: 0.5rem; } .input-group input, .input-group select { padding: 0.4rem 0.6rem; font-size: 0.85rem; } .search-btn { padding: 0.5rem; font-size: 0.85rem; margin-top: 0.4rem; } } /* Prevent horizontal scroll on content */ .content { overflow-x: hidden; width: 100%; box-sizing: border-box; } /* Improve touch targets on mobile */ @media (max-width: 768px) { .module-item, .nav-tab, .search-btn { min-height: 44px; touch-action: manipulation; } .theme-toggle { min-width: 44px; min-height: 44px; } } /* Fix overflow issues */ .sidebar-content { -webkit-overflow-scrolling: touch; } .module-list-container { -webkit-overflow-scrolling: touch; } /* Ensure proper text wrapping */ .doc-text, .markdown-content p { word-wrap: break-word; overflow-wrap: break-word; hyphens: auto; } /* Fix code block overflow */ .doc-signature, .markdown-content pre { word-break: break-all; white-space: pre-wrap; } /* Improve focus states for accessibility */ @media (max-width: 768px) { .module-item:focus, .nav-tab:focus, .search-btn:focus, .theme-toggle:focus, .mobile-menu-toggle:focus { outline: 2px solid var(--accent-color); outline-offset: 2px; } }