.module-page-container{background:#fafafa;flex-direction:column;min-height:100vh;display:flex}.module-page-layout{flex:1;grid-template-columns:250px minmax(0,1fr);align-items:start;gap:2rem;width:100%;max-width:1200px;margin:0 auto;padding:2rem;display:grid}.module-content-area{width:100%;min-width:0;max-width:100%;min-height:100vh}.module-card{box-sizing:border-box;background:#fff;border:1px solid #e5e7eb;border-radius:12px;width:100%;padding:2rem}.module-header{border-bottom:1px solid #f3f4f6;margin-bottom:1.5rem;padding-bottom:1.5rem}.module-number{color:#9ca3af;text-transform:uppercase;letter-spacing:.5px;font-size:.75rem;font-weight:700}.module-title{color:#111827;margin:.5rem 0;font-size:1.5rem;font-weight:700}.module-description{color:#6b7280;margin:0;font-size:.95rem;line-height:1.6}.theory-section{margin-bottom:2rem}.section-header{margin-bottom:1rem}.theory-badge,.interactive-badge,.practice-badge{text-transform:uppercase;letter-spacing:.05em;border-radius:999px;margin-bottom:.5rem;padding:.35rem .75rem;font-size:.75rem;font-weight:700;display:inline-block}.theory-badge{color:#2563eb;background:#eff6ff}.interactive-badge{color:#059669;background:#ecfdf5}.practice-badge{color:#d97706;background:#fffbeb}.section-subtitle{color:#6b7280;margin:.5rem 0 0;font-size:.85rem}.practice-section{border-top:1px dashed #e5e7eb;margin-top:3rem;padding-top:2rem}.interactive-section{border-top:1px solid #f3f4f6;margin-top:2rem;padding-top:2rem}.demo-block{background:#fff;border:1px solid #e5e7eb;border-radius:12px;margin-bottom:2rem;padding:1.5rem;box-shadow:0 1px 3px #0000000d}.module-sidebar{background:#fff;border:1px solid #e5e7eb;border-radius:12px;align-self:start;height:fit-content;max-height:calc(100vh - 120px);padding:1.25rem;position:sticky;top:100px;overflow-y:auto}.sidebar-title{color:#9ca3af;text-transform:uppercase;letter-spacing:.5px;margin:0 0 1rem;font-size:.8rem;font-weight:700}.module-nav{flex-direction:column;gap:.5rem;display:flex}.nav-item{cursor:pointer;text-align:left;background:#fff;border:1px solid #e5e7eb;border-radius:8px;align-items:center;gap:.75rem;padding:.75rem 1rem;transition:all .2s;display:flex}.nav-item:hover{background:#fafafa}.nav-item.active{background:#fafafa;border-color:#9ca3af}.nav-icon{color:#9ca3af;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.nav-icon svg{width:100%;height:100%}.nav-item.active .nav-icon{color:#2563eb}.nav-text{color:#6b7280;flex:1;font-size:.85rem;font-weight:500;line-height:1.3}.nav-item.active .nav-text{color:#111827}.module-footer{text-align:center;border-top:1px solid #e5e7eb;margin-top:auto;padding:1.5rem 2rem}.module-footer p{color:#9ca3af;margin:0;font-size:.85rem}.module-footer a{color:#2563eb;text-decoration:underline}.module-footer a:hover{color:#1d4ed8}.markdown-content{background:#fafafa;border:1px solid #f3f4f6;border-radius:8px;padding:1.5rem}.markdown-content h1{color:#111827;margin-top:2rem;margin-bottom:1.5rem;font-size:1.75rem;font-weight:800;line-height:1.3}.markdown-content h1:first-child{margin-top:0}.markdown-content h2{color:#1f2937;border-bottom:2px solid #1f2937;margin-top:2.5rem;margin-bottom:1rem;padding-bottom:.5rem;font-size:1.5rem;font-weight:700}.markdown-content h3{color:#374151;border-bottom:1px solid #6b7280;margin-top:2rem;margin-bottom:.75rem;padding-bottom:.4rem;font-size:1.25rem;font-weight:600}.markdown-content p{color:#374151;margin-bottom:1.25rem;line-height:1.75}.markdown-content ul,.markdown-content ol{margin-bottom:1.5rem;padding-left:1.5rem}.markdown-content li{color:#374151;margin-bottom:.5rem;line-height:1.7}.markdown-content strong{color:#111827;font-weight:600}.markdown-content code{color:#111827;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:4px;padding:.15rem .4rem;font-family:Courier New,monospace;font-size:.875rem}.markdown-content pre code{color:#d4d4d4;background:0 0;border:none;border-radius:0;padding:0;font-family:Consolas,Monaco,Courier New,monospace;font-size:.875rem}.markdown-content pre{color:#d4d4d4;border:1px solid #333;border-top:none;border-radius:0 0 8px 8px;margin:0 0 1.5rem;padding:1rem;overflow-x:auto;box-shadow:0 2px 8px #0000004d;background:#1e1e1e!important}.markdown-content a{color:#2563eb;font-weight:500;text-decoration:underline;transition:color .2s}.markdown-content a:hover{color:#1d4ed8}.markdown-content img{border:1px solid #e5e7eb;border-radius:8px;max-width:400px;height:auto;margin:1rem auto;display:block}.markdown-content table{border-collapse:collapse;background:#fff;border:1px solid #e5e7eb;border-radius:8px;width:100%;margin:1rem 0;font-size:.9rem;overflow:hidden}.markdown-content thead{background:#f3f4f6}.markdown-content th{text-align:left;color:#111827;border-bottom:2px solid #e5e7eb;padding:.75rem 1rem;font-weight:700}.markdown-content td{color:#374151;border-bottom:1px solid #f3f4f6;padding:.75rem 1rem}.markdown-content tbody tr:hover{background:#f9fafb}.markdown-content tbody tr:last-child td{border-bottom:none}.markdown-content hr{border:none;border-top:1px solid #e5e7eb;margin:2rem 0}.hljs-comment,.hljs-quote{color:#6a9955;font-style:italic}.hljs-keyword,.hljs-selector-tag{color:#569cd6}.hljs-subst{color:#d4d4d4}.hljs-number,.hljs-literal{color:#b5cea8}.hljs-variable,.hljs-template-variable{color:#9cdcfe}.hljs-string,.hljs-doctag{color:#ce9178}.hljs-title,.hljs-section,.hljs-selector-id{color:#dcdcaa}.hljs-type,.hljs-class .hljs-title{color:#4ec9b0}.hljs-tag,.hljs-name,.hljs-attribute{color:#569cd6}.hljs-regexp,.hljs-link{color:#d16969}.hljs-symbol,.hljs-bullet{color:#b5cea8}.hljs-built_in,.hljs-builtin-name{color:#4ec9b0}.hljs-meta{color:#c586c0}.hljs-params{color:#9cdcfe}.hljs-function{color:#dcdcaa}.hljs-attr{color:#9cdcfe}@media (max-width:900px){.module-page-layout{flex-direction:column;padding:1rem;display:flex}.module-sidebar{order:-1;margin-bottom:1rem;position:static;display:block!important}.module-nav{flex-flow:wrap;gap:.5rem;display:flex}.nav-item{flex:1;min-width:120px;padding:.5rem .75rem}.nav-text{font-size:.75rem}.module-card{min-height:auto}}@media (max-width:600px){.module-card{min-height:auto;padding:1.25rem}.module-title{font-size:1.25rem}.nav-item{min-width:100%}}
