Constant STYLES_CSS
Source pub const STYLES_CSS: &str = "/* Chant Site Theme - Default Styles */\n\n:root {\n --color-bg: #ffffff;\n --color-text: #1a1a1a;\n --color-text-muted: #666666;\n --color-border: #e0e0e0;\n --color-link: #0066cc;\n --color-link-hover: #004499;\n --color-code-bg: #f5f5f5;\n\n /* Status colors */\n --color-completed: #22c55e;\n --color-completed-bg: #dcfce7;\n --color-in-progress: #3b82f6;\n --color-in-progress-bg: #dbeafe;\n --color-pending: #f59e0b;\n --color-pending-bg: #fef3c7;\n --color-failed: #ef4444;\n --color-failed-bg: #fee2e2;\n\n --font-sans: -apple-system, BlinkMacSystemFont, \'Segoe UI\', Roboto, Oxygen, Ubuntu, sans-serif;\n --font-mono: \'SF Mono\', Monaco, Consolas, \'Liberation Mono\', monospace;\n\n --spacing-xs: 0.25rem;\n --spacing-sm: 0.5rem;\n --spacing-md: 1rem;\n --spacing-lg: 1.5rem;\n --spacing-xl: 2rem;\n\n --max-width: 1200px;\n}\n\n/* Reset */\n*, *::before, *::after {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n}\n\n/* Base */\nhtml {\n font-size: 16px;\n line-height: 1.6;\n}\n\nbody {\n font-family: var(--font-sans);\n color: var(--color-text);\n background: var(--color-bg);\n min-height: 100vh;\n display: flex;\n flex-direction: column;\n}\n\na {\n color: var(--color-link);\n text-decoration: none;\n}\n\na:hover {\n color: var(--color-link-hover);\n text-decoration: underline;\n}\n\ncode, pre {\n font-family: var(--font-mono);\n font-size: 0.9em;\n}\n\ncode {\n background: var(--color-code-bg);\n padding: 0.1em 0.3em;\n border-radius: 3px;\n}\n\npre {\n background: var(--color-code-bg);\n padding: var(--spacing-md);\n border-radius: 6px;\n overflow-x: auto;\n}\n\npre code {\n background: none;\n padding: 0;\n}\n\n/* Navigation */\n.site-nav {\n background: var(--color-bg);\n border-bottom: 1px solid var(--color-border);\n padding: var(--spacing-md) var(--spacing-lg);\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-wrap: wrap;\n gap: var(--spacing-md);\n}\n\n.nav-brand a {\n font-weight: 600;\n font-size: 1.25rem;\n color: var(--color-text);\n}\n\n.nav-links {\n display: flex;\n list-style: none;\n gap: var(--spacing-lg);\n flex-wrap: wrap;\n}\n\n.nav-links a {\n color: var(--color-text-muted);\n}\n\n.nav-links a:hover {\n color: var(--color-link);\n}\n\n.dropdown {\n position: relative;\n}\n\n.dropdown > span {\n cursor: pointer;\n color: var(--color-text-muted);\n}\n\n.dropdown-menu {\n display: none;\n position: absolute;\n top: 100%;\n left: 0;\n background: var(--color-bg);\n border: 1px solid var(--color-border);\n border-radius: 6px;\n padding: var(--spacing-sm) 0;\n min-width: 150px;\n list-style: none;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n z-index: 100;\n}\n\n.dropdown:hover .dropdown-menu {\n display: block;\n}\n\n.dropdown-menu li a {\n display: block;\n padding: var(--spacing-xs) var(--spacing-md);\n}\n\n/* Main Content */\n.site-content {\n flex: 1;\n max-width: var(--max-width);\n width: 100%;\n margin: 0 auto;\n padding: var(--spacing-xl) var(--spacing-lg);\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-bottom: var(--spacing-md);\n line-height: 1.3;\n}\n\nh1 { font-size: 2rem; }\nh2 { font-size: 1.5rem; margin-top: var(--spacing-xl); }\nh3 { font-size: 1.25rem; }\n\np {\n margin-bottom: var(--spacing-md);\n}\n\n/* Stats Summary */\n.stats-summary {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));\n gap: var(--spacing-md);\n margin-bottom: var(--spacing-xl);\n}\n\n.stat-card {\n background: var(--color-code-bg);\n padding: var(--spacing-lg);\n border-radius: 8px;\n text-align: center;\n}\n\n.stat-card.completed { background: var(--color-completed-bg); }\n.stat-card.in-progress { background: var(--color-in-progress-bg); }\n.stat-card.pending { background: var(--color-pending-bg); }\n\n.stat-number {\n display: block;\n font-size: 2rem;\n font-weight: 700;\n}\n\n.stat-label {\n display: block;\n font-size: 0.875rem;\n color: var(--color-text-muted);\n margin-top: var(--spacing-xs);\n}\n\n/* Tables */\n.spec-table {\n width: 100%;\n border-collapse: collapse;\n margin-bottom: var(--spacing-xl);\n}\n\n.spec-table th,\n.spec-table td {\n padding: var(--spacing-sm) var(--spacing-md);\n text-align: left;\n border-bottom: 1px solid var(--color-border);\n}\n\n.spec-table th {\n font-weight: 600;\n background: var(--color-code-bg);\n}\n\n.spec-table tr:hover {\n background: var(--color-code-bg);\n}\n\n/* Badges */\n.status-badge,\n.label-badge,\n.type-badge {\n display: inline-block;\n padding: 0.15em 0.5em;\n border-radius: 4px;\n font-size: 0.75rem;\n font-weight: 500;\n text-transform: uppercase;\n}\n\n.status-badge {\n background: var(--color-code-bg);\n}\n\n.status-badge.status-completed { background: var(--color-completed-bg); color: #166534; }\n.status-badge.status-in-progress,\n.status-badge.status-in_progress { background: var(--color-in-progress-bg); color: #1e40af; }\n.status-badge.status-pending { background: var(--color-pending-bg); color: #92400e; }\n.status-badge.status-failed { background: var(--color-failed-bg); color: #991b1b; }\n\n.label-badge {\n background: #e0e7ff;\n color: #3730a3;\n margin-right: var(--spacing-xs);\n}\n\n.label-badge.small {\n font-size: 0.65rem;\n}\n\n.type-badge {\n background: var(--color-code-bg);\n color: var(--color-text-muted);\n}\n\n/* Spec Page */\n.spec-page {\n max-width: 800px;\n}\n\n.spec-header {\n margin-bottom: var(--spacing-xl);\n padding-bottom: var(--spacing-lg);\n border-bottom: 1px solid var(--color-border);\n}\n\n.spec-meta {\n display: flex;\n gap: var(--spacing-sm);\n flex-wrap: wrap;\n margin-top: var(--spacing-md);\n}\n\n.spec-id {\n font-family: var(--font-mono);\n font-size: 0.875rem;\n color: var(--color-text-muted);\n}\n\n.spec-details {\n margin-bottom: var(--spacing-xl);\n}\n\n.spec-properties {\n display: grid;\n grid-template-columns: auto 1fr;\n gap: var(--spacing-sm) var(--spacing-lg);\n}\n\n.spec-properties dt {\n font-weight: 600;\n color: var(--color-text-muted);\n}\n\n.spec-properties dd {\n margin: 0;\n}\n\n.file-list {\n list-style: none;\n margin: 0;\n}\n\n.spec-body {\n line-height: 1.7;\n}\n\n.spec-body h1,\n.spec-body h2,\n.spec-body h3 {\n margin-top: var(--spacing-xl);\n}\n\n.spec-body ul,\n.spec-body ol {\n margin-bottom: var(--spacing-md);\n padding-left: var(--spacing-lg);\n}\n\n.spec-body li {\n margin-bottom: var(--spacing-xs);\n}\n\n/* Spec Navigation */\n.spec-nav {\n display: flex;\n justify-content: space-between;\n margin-top: var(--spacing-xl);\n padding-top: var(--spacing-lg);\n border-top: 1px solid var(--color-border);\n}\n\n.nav-prev,\n.nav-next {\n display: inline-block;\n padding: var(--spacing-sm) var(--spacing-md);\n background: var(--color-code-bg);\n border-radius: 6px;\n}\n\n/* Timeline */\n.timeline {\n margin-top: var(--spacing-lg);\n}\n\n.timeline-group {\n margin-bottom: var(--spacing-xl);\n}\n\n.timeline-date {\n font-size: 1.25rem;\n color: var(--color-text);\n border-bottom: 1px solid var(--color-border);\n padding-bottom: var(--spacing-sm);\n}\n\n.ascii-timeline,\n.ascii-graph {\n font-family: var(--font-mono);\n font-size: 0.875rem;\n line-height: 1.4;\n white-space: pre;\n overflow-x: auto;\n}\n\n/* Graph */\n.graph-container {\n margin: var(--spacing-lg) 0;\n padding: var(--spacing-lg);\n background: var(--color-code-bg);\n border-radius: 8px;\n overflow-x: auto;\n}\n\n.graph-legend,\n.graph-roots,\n.graph-leaves {\n margin-top: var(--spacing-xl);\n}\n\n.graph-legend ul,\n.graph-roots ul,\n.graph-leaves ul {\n list-style: none;\n padding: 0;\n}\n\n.graph-legend li,\n.graph-roots li,\n.graph-leaves li {\n padding: var(--spacing-xs) 0;\n}\n\n/* Changelog */\n.changelog-group {\n margin-bottom: var(--spacing-xl);\n}\n\n.changelog-list {\n list-style: none;\n padding: 0;\n}\n\n.changelog-list li {\n padding: var(--spacing-sm) 0;\n border-bottom: 1px solid var(--color-border);\n}\n\n.changelog-list li:last-child {\n border-bottom: none;\n}\n\n.changelog-title {\n margin-left: var(--spacing-sm);\n}\n\n/* Empty State */\n.empty-state {\n text-align: center;\n color: var(--color-text-muted);\n padding: var(--spacing-xl);\n}\n\n.page-description {\n color: var(--color-text-muted);\n margin-bottom: var(--spacing-lg);\n}\n\n/* Footer */\n.site-footer {\n border-top: 1px solid var(--color-border);\n padding: var(--spacing-lg);\n text-align: center;\n color: var(--color-text-muted);\n font-size: 0.875rem;\n}\n\n/* Responsive */\n@media (max-width: 768px) {\n .site-nav {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .nav-links {\n flex-direction: column;\n gap: var(--spacing-sm);\n }\n\n .dropdown-menu {\n position: static;\n box-shadow: none;\n border: none;\n padding-left: var(--spacing-md);\n }\n\n .stats-summary {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .spec-properties {\n grid-template-columns: 1fr;\n }\n\n .spec-table {\n font-size: 0.875rem;\n }\n\n .spec-table th,\n .spec-table td {\n padding: var(--spacing-xs) var(--spacing-sm);\n }\n}\n";