Diff of /web/docs/docs.css [000000] .. [8c4ad8]

Switch to side-by-side view

--- a
+++ b/web/docs/docs.css
@@ -0,0 +1,658 @@
+/* Documentation Page Styles */
+
+/* Layout */
+.docs-layout {
+    display: flex;
+    min-height: calc(100vh - 70px);
+    margin-top: 70px;
+}
+
+/* Sidebar */
+.docs-sidebar {
+    width: 300px;
+    background: var(--dark-blue);
+    border-right: 1px solid rgba(255, 255, 255, 0.1);
+    position: fixed;
+    top: 70px;
+    left: 0;
+    bottom: 0;
+    overflow-y: auto;
+    z-index: 100;
+    transition: transform var(--transition-normal);
+}
+
+.sidebar-header {
+    padding: var(--space-lg);
+    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+}
+
+.sidebar-header h2 {
+    margin: 0;
+    font-size: 1.3rem;
+    color: var(--white);
+}
+
+.mobile-close {
+    display: none;
+    background: none;
+    border: none;
+    color: rgba(255, 255, 255, 0.7);
+    font-size: 1.2rem;
+    cursor: pointer;
+    transition: color var(--transition-fast);
+}
+
+.mobile-close:hover {
+    color: var(--white);
+}
+
+.sidebar-search {
+    padding: var(--space-md) var(--space-lg);
+    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
+}
+
+.search-input-wrapper {
+    position: relative;
+}
+
+.search-input-wrapper i {
+    position: absolute;
+    left: var(--space-md);
+    top: 50%;
+    transform: translateY(-50%);
+    color: rgba(255, 255, 255, 0.5);
+    pointer-events: none;
+}
+
+.search-input-wrapper input {
+    width: 100%;
+    padding: var(--space-sm) var(--space-sm) var(--space-sm) var(--space-xl);
+    background: rgba(255, 255, 255, 0.1);
+    border: 1px solid rgba(255, 255, 255, 0.15);
+    border-radius: var(--radius-md);
+    color: var(--white);
+    font-size: 0.9rem;
+    transition: all var(--transition-fast);
+}
+
+.search-input-wrapper input:focus {
+    outline: none;
+    border-color: var(--blue);
+    background: rgba(255, 255, 255, 0.15);
+}
+
+.sidebar-nav {
+    padding: var(--space-md) 0;
+}
+
+.nav-section {
+    margin-bottom: var(--space-lg);
+    padding: 0 var(--space-lg);
+}
+
+.nav-section h3 {
+    font-size: 0.9rem;
+    text-transform: uppercase;
+    letter-spacing: 1px;
+    color: rgba(255, 255, 255, 0.5);
+    margin: 0 0 var(--space-sm) 0;
+}
+
+.nav-section ul {
+    list-style: none;
+    padding: 0;
+    margin: 0;
+}
+
+.nav-section li {
+    margin-bottom: 2px;
+}
+
+.nav-section a {
+    display: block;
+    padding: var(--space-xs) 0;
+    color: rgba(255, 255, 255, 0.7);
+    text-decoration: none;
+    font-size: 0.95rem;
+    transition: all var(--transition-fast);
+    border-radius: var(--radius-sm);
+}
+
+.nav-section a:hover {
+    color: var(--white);
+    transform: translateX(2px);
+}
+
+.nav-section a.active {
+    color: var(--blue);
+    font-weight: 500;
+}
+
+/* Content */
+.docs-content {
+    flex: 1;
+    margin-left: 300px;
+    position: relative;
+}
+
+.docs-container {
+    max-width: 900px;
+    margin: 0 auto;
+    padding: var(--space-xl) var(--space-xxl) var(--space-xxl);
+}
+
+.docs-mobile-header {
+    display: none;
+    position: sticky;
+    top: 70px;
+    padding: var(--space-md) var(--space-lg);
+    background: var(--dark-blue);
+    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
+    z-index: 90;
+}
+
+.docs-mobile-header h2 {
+    margin: 0;
+    font-size: 1.3rem;
+    color: var(--white);
+}
+
+.sidebar-toggle {
+    display: none;
+    background: none;
+    border: none;
+    color: rgba(255, 255, 255, 0.7);
+    font-size: 1.2rem;
+    cursor: pointer;
+    transition: color var(--transition-fast);
+    margin-right: var(--space-md);
+}
+
+.sidebar-toggle:hover {
+    color: var(--white);
+}
+
+/* Doc Sections */
+.doc-section {
+    margin-bottom: var(--space-xxl);
+    scroll-margin-top: 100px;
+}
+
+.doc-section:last-child {
+    margin-bottom: 0;
+}
+
+.doc-section h1 {
+    font-size: 2.5rem;
+    margin-bottom: var(--space-lg);
+    color: var(--white);
+}
+
+.doc-section h2 {
+    font-size: 1.8rem;
+    margin: var(--space-xl) 0 var(--space-md);
+    color: var(--white);
+    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
+    padding-bottom: var(--space-sm);
+}
+
+.doc-section h3 {
+    font-size: 1.3rem;
+    margin: var(--space-lg) 0 var(--space-sm);
+    color: var(--white);
+}
+
+.doc-section p {
+    margin-bottom: var(--space-md);
+    color: rgba(255, 255, 255, 0.8);
+    font-size: 1rem;
+    line-height: 1.7;
+}
+
+.doc-section p.lead {
+    font-size: 1.1rem;
+    color: rgba(255, 255, 255, 0.9);
+}
+
+.doc-section ul, 
+.doc-section ol {
+    margin-bottom: var(--space-md);
+    color: rgba(255, 255, 255, 0.8);
+    padding-left: var(--space-xl);
+}
+
+.doc-section li {
+    margin-bottom: var(--space-xs);
+}
+
+.doc-section a {
+    color: var(--blue);
+    text-decoration: none;
+    transition: color var(--transition-fast);
+}
+
+.doc-section a:hover {
+    text-decoration: underline;
+    color: var(--light-blue);
+}
+
+.doc-section code {
+    font-family: var(--font-mono);
+    background: rgba(0, 0, 0, 0.2);
+    padding: 2px 5px;
+    border-radius: var(--radius-sm);
+    font-size: 0.9em;
+    color: var(--white);
+}
+
+/* Info Boxes */
+.info-box {
+    background: rgba(0, 0, 0, 0.2);
+    border-radius: var(--radius-md);
+    padding: var(--space-lg);
+    margin: var(--space-lg) 0;
+    border-left: 4px solid var(--blue);
+}
+
+.info-box h3 {
+    margin-top: 0;
+    font-size: 1.1rem;
+    color: var(--white);
+}
+
+.info-box p:last-child,
+.info-box ul:last-child {
+    margin-bottom: 0;
+}
+
+.info-box.warning {
+    border-left-color: var(--warning);
+}
+
+.info-box.warning h3 {
+    color: var(--warning);
+}
+
+.info-box.error {
+    border-left-color: var(--error);
+}
+
+.info-box.error h3 {
+    color: var(--error);
+}
+
+.info-box.tip {
+    border-left-color: var(--success);
+}
+
+.info-box.tip h3 {
+    color: var(--success);
+}
+
+/* Code Blocks */
+.code-block {
+    margin: var(--space-md) 0;
+    background: rgba(0, 0, 0, 0.2);
+    border-radius: var(--radius-md);
+    overflow: hidden;
+}
+
+.code-header {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    background: rgba(0, 0, 0, 0.3);
+    padding: var(--space-sm) var(--space-md);
+    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
+}
+
+.code-label {
+    font-size: 0.9rem;
+    color: rgba(255, 255, 255, 0.7);
+}
+
+.copy-button {
+    background: rgba(255, 255, 255, 0.1);
+    border: none;
+    color: rgba(255, 255, 255, 0.7);
+    padding: 4px 10px;
+    border-radius: var(--radius-sm);
+    font-size: 0.8rem;
+    cursor: pointer;
+    transition: all var(--transition-fast);
+}
+
+.copy-button:hover {
+    background: rgba(255, 255, 255, 0.2);
+    color: var(--white);
+}
+
+.code-block pre {
+    margin: 0;
+    padding: var(--space-md);
+    overflow-x: auto;
+}
+
+.code-block code {
+    background: transparent;
+    padding: 0;
+    font-family: var(--font-mono);
+    font-size: 0.9rem;
+    line-height: 1.6;
+    color: rgba(255, 255, 255, 0.9);
+    display: block;
+}
+
+/* Tabs */
+.tabs {
+    margin: var(--space-md) 0;
+    background: rgba(0, 0, 0, 0.2);
+    border-radius: var(--radius-md);
+    overflow: hidden;
+}
+
+.tab-header {
+    display: flex;
+    background: rgba(0, 0, 0, 0.3);
+    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
+}
+
+.tab-button {
+    padding: var(--space-sm) var(--space-md);
+    background: transparent;
+    border: none;
+    border-bottom: 2px solid transparent;
+    color: rgba(255, 255, 255, 0.7);
+    cursor: pointer;
+    transition: all var(--transition-fast);
+}
+
+.tab-button:hover {
+    color: var(--white);
+}
+
+.tab-button.active {
+    color: var(--blue);
+    border-bottom-color: var(--blue);
+    background: rgba(0, 164, 239, 0.1);
+}
+
+.tab-content {
+    display: none;
+    padding: var(--space-md);
+}
+
+.tab-content.active {
+    display: block;
+}
+
+/* Steps */
+.steps {
+    margin: var(--space-lg) 0;
+}
+
+.step {
+    display: flex;
+    margin-bottom: var(--space-lg);
+    gap: var(--space-md);
+}
+
+.step-number {
+    flex-shrink: 0;
+    width: 34px;
+    height: 34px;
+    background: linear-gradient(135deg, var(--magenta), var(--blue));
+    border-radius: 50%;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    font-weight: 600;
+    font-size: 1.1rem;
+    color: var(--white);
+    margin-top: 5px;
+}
+
+.step-content {
+    flex: 1;
+}
+
+.step-content h3 {
+    margin-top: 0;
+    font-size: 1.2rem;
+    margin-bottom: var(--space-sm);
+}
+
+.step-content p {
+    margin-bottom: var(--space-sm);
+}
+
+.step-content p:last-child {
+    margin-bottom: 0;
+}
+
+/* API Endpoints */
+.api-endpoint {
+    margin-bottom: var(--space-lg);
+    background: rgba(0, 0, 0, 0.2);
+    border-radius: var(--radius-md);
+    overflow: hidden;
+}
+
+.endpoint-method {
+    display: inline-block;
+    padding: var(--space-xs) var(--space-sm);
+    font-weight: 600;
+    color: var(--white);
+    border-radius: var(--radius-sm);
+    font-size: 0.9rem;
+    margin-right: var(--space-sm);
+}
+
+.endpoint-method.get {
+    background: var(--success);
+}
+
+.endpoint-method.post {
+    background: var(--blue);
+}
+
+.endpoint-method.put {
+    background: var(--warning);
+}
+
+.endpoint-method.delete {
+    background: var(--error);
+}
+
+.endpoint-path {
+    font-family: var(--font-mono);
+    font-size: 1rem;
+    margin-bottom: var(--space-sm);
+    color: var(--white);
+    padding: var(--space-md);
+    background: rgba(0, 0, 0, 0.3);
+    display: flex;
+    align-items: center;
+}
+
+.endpoint-description {
+    padding: var(--space-md);
+}
+
+.endpoint-description p {
+    margin-top: 0;
+}
+
+.endpoint-description h4 {
+    font-size: 1.1rem;
+    margin: var(--space-md) 0 var(--space-xs);
+    color: var(--white);
+}
+
+/* FAQ Section */
+.faq-item {
+    margin-bottom: var(--space-md);
+    border: 1px solid rgba(255, 255, 255, 0.1);
+    border-radius: var(--radius-md);
+    overflow: hidden;
+}
+
+.faq-question {
+    padding: var(--space-md);
+    background: rgba(0, 0, 0, 0.2);
+    cursor: pointer;
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+}
+
+.faq-question h3 {
+    margin: 0;
+    font-size: 1.1rem;
+    color: var(--white);
+}
+
+.faq-question i {
+    color: rgba(255, 255, 255, 0.7);
+    transition: transform var(--transition-fast);
+}
+
+.faq-item.active .faq-question i {
+    transform: rotate(180deg);
+}
+
+.faq-answer {
+    padding: 0 var(--space-md);
+    max-height: 0;
+    overflow: hidden;
+    transition: all var(--transition-normal);
+}
+
+.faq-item.active .faq-answer {
+    padding: var(--space-md);
+    max-height: 1000px;
+}
+
+/* Community Resources */
+.community-resources {
+    display: grid;
+    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
+    gap: var(--space-lg);
+    margin: var(--space-lg) 0;
+}
+
+.resource-card {
+    background: rgba(255, 255, 255, 0.05);
+    border-radius: var(--radius-md);
+    padding: var(--space-lg);
+    text-align: center;
+    border: 1px solid rgba(255, 255, 255, 0.1);
+    transition: all var(--transition-normal);
+}
+
+.resource-card:hover {
+    transform: translateY(-5px);
+    background: rgba(255, 255, 255, 0.08);
+    box-shadow: var(--shadow-md);
+    border-color: rgba(255, 255, 255, 0.15);
+}
+
+.resource-card i {
+    font-size: 2rem;
+    margin-bottom: var(--space-md);
+    color: var(--blue);
+}
+
+.resource-card h3 {
+    margin-top: 0;
+    margin-bottom: var(--space-sm);
+    font-size: 1.2rem;
+}
+
+.resource-card p {
+    margin-bottom: var(--space-md);
+    color: rgba(255, 255, 255, 0.7);
+}
+
+/* Responsive Design */
+@media screen and (max-width: 1024px) {
+    .docs-container {
+        padding: var(--space-xl) var(--space-lg);
+    }
+    
+    .community-resources {
+        grid-template-columns: 1fr;
+    }
+}
+
+@media screen and (max-width: 768px) {
+    .docs-sidebar {
+        transform: translateX(-100%);
+        width: 280px;
+    }
+    
+    .docs-sidebar.active {
+        transform: translateX(0);
+    }
+    
+    .docs-content {
+        margin-left: 0;
+    }
+    
+    .docs-mobile-header {
+        display: flex;
+        align-items: center;
+    }
+    
+    .sidebar-toggle {
+        display: block;
+    }
+    
+    .mobile-close {
+        display: block;
+    }
+    
+    .api-endpoint {
+        overflow-x: auto;
+    }
+    
+    .step {
+        flex-direction: column;
+        gap: var(--space-sm);
+    }
+    
+    .step-number {
+        margin-bottom: var(--space-xs);
+    }
+}
+
+@media screen and (max-width: 480px) {
+    .docs-container {
+        padding: var(--space-lg) var(--space-md);
+    }
+    
+    .doc-section h1 {
+        font-size: 2rem;
+    }
+    
+    .doc-section h2 {
+        font-size: 1.5rem;
+    }
+    
+    .doc-section h3 {
+        font-size: 1.2rem;
+    }
+    
+    .tab-header {
+        flex-wrap: wrap;
+    }
+    
+    .tab-button {
+        flex: 1;
+        min-width: 100px;
+        text-align: center;
+    }
+}
\ No newline at end of file