/* ============================================================ Documentation Pages — docs.css Layout, sidebar, content rendering for documentation pages ============================================================ */ /* ---- Doc page shell ---- */ .doc-page { padding-top: var(--header-h); } .doc-layout { display: grid; grid-template-columns: 280px 1fr; gap: 0; min-height: calc(100vh - var(--header-h)); max-width: var(--max-width); margin: 0 auto; } /* ---- Sidebar ---- */ .doc-sidebar { position: sticky; top: var(--header-h); height: calc(100vh - var(--header-h)); overflow-y: auto; padding: 2.5rem 1.5rem; background: rgba(17, 22, 46, 0.5); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-right: 1px solid var(--border); } .doc-sidebar-toggle { display: none; } .doc-nav-group { margin-bottom: 2rem; } .doc-nav-label { font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--text-muted); margin-bottom: 0.75rem; padding-left: 0.75rem; } .doc-nav-item { display: block; padding: 8px 14px; font-size: .9rem; color: var(--text-secondary); border-radius: var(--r-sm); transition: all var(--tr); border-left: 2px solid transparent; margin-bottom: 2px; } .doc-nav-item:hover { color: var(--text-primary); background: rgba(0, 229, 255, 0.05); } .doc-nav-item.active { color: var(--accent-cyan); background: rgba(0, 229, 255, 0.05); border-left-color: var(--accent-cyan); text-shadow: 0 0 10px rgba(0, 229, 255, 0.3); } /* ---- Content area ---- */ .doc-main { padding: 3rem 4rem 6rem; max-width: 960px; } /* ---- Breadcrumb ---- */ .doc-breadcrumb { display: flex; align-items: center; gap: 6px; font-size: .8rem; color: var(--text-muted); margin-bottom: 1.5rem; } .doc-breadcrumb a { color: var(--text-muted); } .doc-breadcrumb a:hover { color: var(--accent-cyan); } .doc-breadcrumb .sep { color: var(--text-muted); } /* ---- Markdown content rendering ---- */ .doc-content h1 { font-size: 2.5rem; font-weight: 800; letter-spacing: -.03em; margin-bottom: 0.5rem; line-height: 1.15; background: var(--gradient-1); -webkit-background-clip: text; background-clip: text; color: transparent; } .doc-content .doc-subtitle { font-size: 1.15rem; color: var(--text-secondary); margin-bottom: 2rem; line-height: 1.65; } .doc-content h2 { font-size: 1.75rem; font-weight: 800; letter-spacing: -.02em; margin-top: 3.5rem; margin-bottom: 1.25rem; padding-bottom: 0.5rem; border-bottom: 1px solid var(--border); scroll-margin-top: calc(var(--header-h) + 24px); background: var(--gradient-2); -webkit-background-clip: text; background-clip: text; color: transparent; } .doc-content h3 { font-size: 1.35rem; font-weight: 700; margin-top: 2.5rem; margin-bottom: 1rem; scroll-margin-top: calc(var(--header-h) + 24px); color: var(--text-primary); } .doc-content h4 { font-size: 1.1rem; font-weight: 700; margin-top: 2rem; margin-bottom: 0.75rem; color: var(--text-secondary); scroll-margin-top: calc(var(--header-h) + 24px); } .doc-content p { margin-bottom: 1.25rem; color: var(--text-secondary); line-height: 1.8; } .doc-content ul, .doc-content ol { margin-bottom: 1.25rem; padding-left: 1.5rem; } .doc-content ul { list-style: disc; } .doc-content ol { list-style: decimal; } .doc-content li { margin-bottom: 0.5rem; color: var(--text-secondary); line-height: 1.7; } .doc-content li strong { color: var(--text-primary); } .doc-content code { padding: 2px 6px; font-size: .88em; background: rgba(0, 229, 255, 0.05); border: 1px solid rgba(0, 229, 255, 0.15); border-radius: 4px; color: var(--accent-cyan); } .doc-content pre { background: #080b1a; border: 1px solid var(--border); border-radius: 12px; padding: 1.5rem; margin: 1.5rem 0 2rem; overflow-x: auto; font-size: .88rem; line-height: 1.6; box-shadow: inset 0 0 10px rgba(0,0,0,0.5); } .doc-content pre code { background: none; border: none; padding: 0; color: #a0a8c3; font-size: inherit; } .doc-content strong { color: var(--text-primary); font-weight: 600; } .doc-content em { color: var(--text-secondary); font-style: italic; } .doc-content a { color: var(--accent-cyan); border-bottom: 1px solid transparent; transition: all var(--tr); } .doc-content a:hover { color: var(--text-primary); border-bottom-color: var(--accent-cyan); } .doc-content blockquote { margin: 1.5rem 0; padding: 1.25rem 1.5rem; border-left: 4px solid var(--accent-purple); background: var(--bg-card); border-radius: 0 var(--r-md) var(--r-md) 0; color: var(--text-secondary); } .doc-content blockquote p { margin-bottom: 0; } .doc-content table { width: 100%; margin: 1.5rem 0 2rem; border-collapse: collapse; font-size: .88rem; } .doc-content table th { padding: 12px 16px; text-align: left; font-weight: 700; font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; color: var(--text-primary); background: rgba(0, 229, 255, 0.05); border: 1px solid var(--border); } .doc-content table td { padding: 12px 16px; border: 1px solid var(--border); color: var(--text-secondary); } .doc-content table tr:hover td { background: rgba(255,255,255,0.02); } .doc-content hr { border: none; height: 1px; background: var(--border); margin: 3rem 0; } /* ---- Alert boxes ---- */ .doc-alert { display: flex; gap: 12px; padding: 1rem 1.25rem; margin: 1.5rem 0 2rem; border-radius: var(--r-md); border: 1px solid; } .doc-alert-icon { flex-shrink: 0; width: 20px; height: 20px; margin-top: 2px; } .doc-alert-body { font-size: .9rem; line-height: 1.6; } .doc-alert-body p { margin-bottom: 4px; color: inherit; } .doc-alert-body p:last-child { margin-bottom: 0; } .doc-alert--note { background: rgba(0, 229, 255, 0.05); border-color: rgba(0, 229, 255, 0.2); color: var(--accent-cyan); } .doc-alert--tip { background: rgba(0, 255, 136, 0.05); border-color: rgba(0, 255, 136, 0.2); color: var(--accent-green); } .doc-alert--warn { background: rgba(251, 191, 36, 0.05); border-color: rgba(251, 191, 36, 0.2); color: #fbbf24; } .doc-alert--danger { background: rgba(255, 71, 87, 0.05); border-color: rgba(255, 71, 87, 0.2); color: var(--accent-red); } /* ---- Prev / Next navigation ---- */ .doc-pager { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin-top: 4rem; padding-top: 2rem; border-top: 1px solid var(--border); } .doc-pager-link { padding: 1.5rem; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--r-md); transition: all var(--tr); } .doc-pager-link:hover { border-color: var(--accent-cyan); background: rgba(0, 229, 255, 0.03); box-shadow: var(--shadow-glow); } .doc-pager-label { font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--text-muted); margin-bottom: 0.5rem; } .doc-pager-title { font-size: 1rem; font-weight: 600; color: var(--text-primary); } .doc-pager-link--next { text-align: right; } /* ---- Last updated ---- */ .doc-meta { font-size: .8rem; color: var(--text-muted); margin-top: 2.5rem; } /* ============================================================ RESPONSIVE ============================================================ */ @media(max-width:900px) { .doc-layout { grid-template-columns: 1fr; } .doc-sidebar { position: fixed; top: var(--header-h); left: 0; bottom: 0; width: 280px; z-index: 998; transform: translateX(-100%); transition: transform var(--tr); border-right: 1px solid var(--border); background: var(--bg-secondary); } .doc-sidebar.open { transform: translateX(0); } .doc-sidebar-toggle { display: flex; align-items: center; gap: 8px; padding: 10px 16px; font-size: .85rem; font-weight: 600; color: var(--text-secondary); background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--r-sm); margin-bottom: 16px; width: fit-content; } .doc-sidebar-toggle:hover { color: var(--text-primary); border-color: var(--accent-cyan); } .doc-main { padding: 2rem 1.5rem 4rem; } .doc-pager { grid-template-columns: 1fr; } }