.app-header{background:#fff;border-bottom:1px solid #e0e0e0;box-shadow:0 1px 3px #0000001a;display:grid;grid-template-columns:200px 1fr 200px;height:60px;padding:0 24px}.app-header,.logo{align-items:center}.logo{display:flex}.logo img{cursor:pointer;height:32px;width:auto}.search-wrapper{margin:0 auto;max-width:500px;padding:0}.search-box,.search-wrapper{position:relative;width:100%}.search-box{align-items:center;display:flex}.search-input{background:#fff;border:1px solid #dfe1e5;border-radius:24px;box-shadow:0 1px 6px #20212447;font-size:14px;height:44px;padding:0 50px 0 20px;transition:all .2s ease;width:100%}.search-input:focus{background:#fff;border-color:#4285f4;box-shadow:0 2px 8px #20212459;outline:none}.search-icon{align-items:center;background:#0000;color:#9aa0a6;display:flex;font-size:18px;height:44px;justify-content:center;padding:8px;pointer-events:none;position:absolute;right:16px;top:50%;transform:translateY(-50%);width:44px;z-index:2}.search-dropdown{background:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;left:0;max-height:400px;overflow-y:auto;position:absolute;top:calc(100% + 8px);width:100%;z-index:1000}.search-result-item{border-bottom:1px solid #f0f0f0;cursor:pointer;padding:12px 16px;transition:background-color .2s ease}.search-result-item:last-child{border-bottom:none}.search-result-item:hover{background-color:#f8f9fa}.result-title{color:#333;font-size:14px;font-weight:500;margin-bottom:4px}.result-heading{color:#666;font-size:12px;margin-bottom:4px}.result-snippet{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#777;display:-webkit-box;font-size:13px;line-height:1.4;overflow:hidden;text-overflow:ellipsis}.no-results{color:#666;font-size:14px;font-style:italic;padding:16px;text-align:center}.search-result-item.project-result{align-items:center;display:flex;gap:12px;padding:12px 16px}.project-result .result-title{color:#1976d2;font-size:14px;font-weight:500;margin-bottom:2px}.project-result .result-snippet{color:#666;font-size:12px;margin-top:4px}.highlight{background-color:#fff3cd;padding:0 2px}.home-header-right{align-items:center;display:flex;justify-content:flex-end}.home-header-btn{background:#1976d2;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:8px 18px;text-decoration:none;transition:background-color .2s ease;white-space:nowrap}.home-header-btn:hover{background:#1565c0;color:#fff;text-decoration:none}@media (max-width:768px){.app-header{gap:10px;grid-template-columns:auto 1fr auto;padding:0 16px}.logo img{height:24px}.search-wrapper{max-width:100%}.search-input{font-size:16px}.home-header-btn{font-size:13px;padding:6px 12px}}.sidebar{background-color:#f5f5f5;border-right:1px solid #e0e0e0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;min-width:300px;overflow-y:auto;padding:0;transition:width .3s ease,transform .3s ease;width:300px;z-index:5}.sidebar.collapsed{min-width:50px;overflow:hidden;width:50px}.sidebar.collapsed .menu-item-link,.sidebar.collapsed .search-bar,.sidebar.collapsed .sidebar-header h3,.sidebar.collapsed .submenu{display:none}.sidebar.collapsed .dropdown-indicator{transform:rotate(180deg)}.sidebar-toggle{align-items:center;background:#fff;border:1px solid #ddd;border-radius:50%;box-shadow:0 2px 4px #0000001a;cursor:pointer;display:flex;height:24px;justify-content:center;position:absolute;right:-12px;top:20px;transition:all .3s ease;width:24px;z-index:10}.sidebar-toggle:hover{background:#f0f0f0;box-shadow:0 2px 6px #00000026}.sidebar-toggle:before{border-bottom:2px solid #666;border-right:2px solid #666;content:"";display:inline-block;height:6px;transform:rotate(-45deg);transition:transform .3s ease;width:6px}.sidebar-toggle:after{color:#666;content:"⇄";font-size:12px;opacity:0;position:absolute;transition:opacity .3s ease}.sidebar-toggle:hover:after{opacity:1}.sidebar.collapsed .sidebar-toggle:before{transform:rotate(135deg)}.main-content{margin-left:350px}.main-content.expanded{margin-left:50px}.sidebar-header{align-items:center;background-color:#fff;border-bottom:1px solid #ddd;color:#333;cursor:pointer;display:flex;gap:8px;min-height:40px;padding:10px 15px;position:sticky;top:0;transition:all .2s ease;z-index:10}.sidebar-header:hover{background:#f5f5f5}.sidebar-header.expanded{background-color:#e9edf0}.sidebar-header h3{align-items:center;display:flex;flex:1 1;font-size:14px;font-weight:500;margin:0}.sidebar-header .dropdown-indicator{align-items:center;color:#666;display:flex;flex-shrink:0;height:16px;justify-content:center;transition:transform .2s ease;width:16px}.sidebar-header .dropdown-indicator:before{border-bottom:2px solid;border-right:2px solid;content:"";display:inline-block;height:6px;margin-top:-3px;transform:rotate(-45deg);transition:transform .2s ease;width:6px}.sidebar-header.expanded .dropdown-indicator:before{margin-top:3px;transform:rotate(45deg)}.sidebar.collapsed .sidebar-header{background-color:#fff;justify-content:center;padding:10px 0}.sidebar.collapsed .sidebar-header:hover{background-color:#f5f5f5}.sidebar-content{display:flex;flex:1 1;flex-direction:column}.search-bar{background-color:#f5f5f5;border-bottom:1px solid #ddd;padding:10px 15px;position:sticky;top:41px;width:100%;z-index:10}.search-bar input{background-color:#fff;border:1px solid #e0e0e0;border-radius:4px;font-size:13px;padding:8px 12px;transition:border-color .2s ease;width:100%}.search-bar input:focus{border-color:#4a8eff;outline:none}.nav-menu{flex:1 1;overflow-y:auto;padding:0 0 15px}.subnav{margin-left:0}.nav-item.sub-nav{font-size:13px;line-height:1.2;margin-bottom:2px;padding:6px 10px 6px 25px}.nav-section{margin:2px 0}.nav-item.main-nav{font-weight:500;line-height:1.3;padding:8px 10px}.nav-item.main-nav.expandable{align-items:center;display:flex;justify-content:space-between}.expand-icon{align-items:center;color:#999;display:flex;font-size:12px;margin-left:5px}.nav-item{border-radius:0;color:#5c5c5c;cursor:pointer;font-size:13px;margin-bottom:2px;padding:6px 15px 6px 24px;text-decoration:none;transition:background-color .2s;width:100%}.nav-item:hover{background-color:initial;color:#4a8eff!important}.nav-item.active{background:#0000!important;border-left:3px solid #4a8eff;color:#4a8eff!important;font-weight:700}.nav-item.sub-nav{color:#555;font-size:12px;padding-left:1.5rem}.nav-item.expandable{cursor:pointer;justify-content:space-between}.powered-by{background-color:#fff;border-top:1px solid #e9e9e9;color:#999;font-size:12px;margin-top:auto;padding:10px 15px;position:relative;text-align:center}.gitbook-info{color:#999;display:block;padding:5px 0;text-decoration:none}.gitbook-info:hover{text-decoration:underline}.menu-level-0>.nav-section>.nav-item{font-weight:600}.menu-level-1,.menu-level-2,.menu-level-3{margin-left:0}.nav-item-indent{align-items:center;display:flex;flex:1 1}.chevron-down,.chevron-right{display:inline-block;font-size:12px;height:20px;text-align:center;width:20px}.chevron-down{color:#4a8eff}.chevron-right{color:#999}.sidebar.loading{align-items:center;color:#666;display:flex;font-size:14px;justify-content:center}.sidebar-section-title{color:#333;font-size:12px;font-weight:600;letter-spacing:.5px;padding:10px 16px;text-transform:uppercase}.sidebar-menu{display:flex;flex-direction:column}.sidebar-menu-item{margin:2px 0}.menu-item-header{align-items:center;color:#333;cursor:pointer;display:flex;gap:8px;padding:8px 15px;transition:background-color .2s ease}.menu-item-header:hover{background-color:#f0f0f0}.menu-item-header.has-children{font-weight:500}.menu-item-link{word-wrap:break-word;align-items:center;color:inherit;display:flex;flex:1 1;font-size:13px;gap:8px;line-height:1.4;overflow-wrap:break-word;text-decoration:none;white-space:normal}.menu-item-link:hover{color:#1976d2}.sidebar-menu-item.active>.menu-item-header .menu-item-link{color:#1976d2;font-weight:500}.sidebar-menu-item.selected>.menu-item-header{background-color:initial}.sidebar-menu-item.selected>.menu-item-header .menu-item-link{color:#1976d2}.submenu .sidebar-menu-item.active>.menu-item-header{background-color:#e3f2fd;border-left:3px solid #1976d2;margin-left:-1px}.menu-item-link.current-path{color:#1976d2;font-weight:500}.dropdown-indicator{align-items:center;color:#666;cursor:pointer;display:flex;flex-shrink:0;height:16px;justify-content:center;margin-top:2px;order:-1;transition:transform .2s ease;width:16px}.dropdown-indicator:before{border-bottom:2px solid;border-right:2px solid;content:"";display:inline-block;height:6px;transform:rotate(-45deg);transition:transform .2s ease;width:6px}.menu-item-header.expanded .dropdown-indicator:before{margin-top:-3px;transform:rotate(45deg)}.menu-item-header:not(.has-children){padding-left:15px}.submenu{border-left:1px solid #e0e0e0;margin-left:20px;transition:all .2s ease}.level-0>.menu-item-header{font-size:13px;font-weight:600;padding-left:15px}.level-1>.menu-item-header,.level-2>.menu-item-header,.level-3>.menu-item-header{font-size:12px;padding-left:15px}.sidebar-menu-item.selected>.menu-item-header{background-color:#e3f2fd}.sidebar-menu-item.active>.menu-item-header{background-color:#e3f2fd;border-left:3px solid #1976d2}.menu-item-text{display:inline;white-space:pre-wrap;word-break:break-word}.highlight{background-color:#fff176;border-radius:2px;color:#333;display:inline;margin:0;padding:0 1px}@media (max-width:768px){.search-bar input{appearance:none;font-size:16px;transform:scale(1);transform-origin:left top}.search-bar input:focus{font-size:16px;transform:scale(1)}.search-bar{touch-action:manipulation}}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#fafafa;color:#383a42}.hljs-comment,.hljs-quote{color:#a0a1a7;font-style:italic}.hljs-doctag,.hljs-formula,.hljs-keyword{color:#a626a4}.hljs-deletion,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-subst{color:#e45649}.hljs-literal{color:#0184bb}.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#50a14f}.hljs-attr,.hljs-number,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-pseudo,.hljs-template-variable,.hljs-type,.hljs-variable{color:#986801}.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-symbol,.hljs-title{color:#4078f2}.hljs-built_in,.hljs-class .hljs-title,.hljs-title.class_{color:#c18401}.hljs-link{text-decoration:underline}.markdown-container{margin:0 auto;max-width:900px;overflow-x:hidden;width:100%}.markdown-content{word-wrap:break-word;color:#333;font-size:1rem;line-height:1.6;margin-bottom:32px;overflow-wrap:break-word;overflow-x:hidden;padding-right:20px;white-space:normal;width:100%}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4,.markdown-content h5,.markdown-content h6{font-weight:600;line-height:1.25;margin-bottom:16px;margin-top:24px}.markdown-content h1{font-size:2em}.markdown-content h1,.markdown-content h2{border-bottom:1px solid #eaecef;padding-bottom:.3em}.markdown-content h2{font-size:1.5em}.markdown-content h3{font-size:1.25em}.markdown-content ol,.markdown-content ul{color:#24292e;margin:1em 0;padding-left:2em}.markdown-content ol li,.markdown-content ul li{color:#24292e;margin-bottom:.5em;position:relative}.markdown-content ul li::marker,.markdown-content ul ul li::marker{color:#24292e!important;font-size:1.2em}.markdown-content ul ul{list-style-type:circle}.markdown-code-block,.markdown-content pre{background-color:#f6f8fa;border:1px solid #e1e4e8;border-radius:6px;color:#24292e;font-family:Consolas,Monaco,Andale Mono,monospace;line-height:1.5;margin:10px 0;overflow-x:auto;padding:16px}.markdown-content code:not(.hljs),.markdown-inline-code{background-color:#f6f8fa;border:1px solid #e1e4e8;border-radius:3px;color:#24292e;font-family:Consolas,Monaco,Andale Mono,monospace;font-size:.9em;padding:.2em .4em}.table-container{-webkit-overflow-scrolling:touch;margin:16px 0;max-width:100%;overflow-x:auto;padding:1px}.markdown-table{border:1px solid #dfe2e5;border-collapse:initial;border-radius:4px;border-spacing:0;font-size:14px;line-height:1.4;margin:16px 0;width:100%}.markdown-table td,.markdown-table th{border-bottom:1px solid #dfe2e5;border-right:1px solid #dfe2e5;min-width:120px;padding:8px 16px;text-align:left}.markdown-table th{background-color:#f6f8fa;border-bottom:1px solid #dfe2e5;font-weight:600}.markdown-table td:last-child,.markdown-table th:last-child{border-right:none}.markdown-table tr:last-child td{border-bottom:none}.markdown-table tr{border:1px solid #000}.markdown-table tr:nth-child(2n){background-color:#f8f8f8}.loop-image-container img,.markdown-img{border-radius:4px;box-shadow:0 2px 4px #0000001a;display:block;height:auto;margin:16px 0;max-width:100%}.markdown-a{color:#1a73e8;text-decoration:none}.markdown-a:hover{text-decoration:underline}.method-get{color:#22863a}.method-post{color:#032f62}.method-put{color:#6f42c1}.method-delete{color:#d73a49}@media (max-width:768px){.markdown-content{padding-right:10px}.markdown-table{display:block;overflow-x:auto}.markdown-code-block{padding:12px}}.hljs{background:#f6f8fa;color:#24292e;display:block;overflow-x:auto;padding:1em}.hljs-keyword,.hljs-selector-tag,.hljs-subst{color:#d73a49}.hljs-doctag,.hljs-link,.hljs-regexp,.hljs-string{color:#032f62}.hljs-class,.hljs-section,.hljs-selector-id,.hljs-title,.hljs-type{color:#6f42c1}.hljs-built_in,.hljs-builtin-name,.hljs-bullet,.hljs-literal,.hljs-number,.hljs-symbol{color:#005cc5}.hljs-comment,.hljs-meta{color:#6a737d}.hljs-addition{background-color:#f0fff4;color:#22863a}.hljs-deletion{background-color:#ffeef0;color:#b31d28}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.main-content{box-sizing:border-box;flex:1 1;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;height:calc(100vh - 60px);margin:0 auto;max-width:1200px;overflow-x:hidden;overflow-y:auto;padding:20px 40px;position:relative;transition:margin-left .3s ease}.content-container{max-width:100%;overflow-x:hidden}.page-title{color:#333;font-size:32px;font-weight:700;margin-bottom:20px}.document-title{border-bottom:1px solid #f0f0f0;color:#333;font-size:32px;font-weight:600;margin-bottom:24px;padding-bottom:16px}.section-heading{align-items:center;color:#333;display:flex;font-size:24px;font-weight:700;margin:30px 0 20px}.section-heading:before{content:attr(data-number);margin-right:8px}.description{color:#555;line-height:1;margin-bottom:30px}.description,.document-content{word-wrap:break-word;font-size:16px;overflow-wrap:break-word;white-space:normal}.document-content{box-sizing:border-box;color:#3a3a3a;line-height:1.6;max-width:100%;overflow-x:hidden}.document-content h1{color:#222;font-size:28px;font-weight:600;margin-bottom:16px;margin-top:32px}.document-content h2{font-size:24px;margin-top:28px}.document-content h2,.document-content h3{color:#333;font-weight:600;margin-bottom:16px}.document-content h3{font-size:20px;margin-top:24px}.document-content p{word-wrap:break-word;margin-bottom:16px;overflow-wrap:break-word;white-space:normal}.document-content ol,.document-content ul{margin-bottom:16px;padding-left:24px}.document-content li{word-wrap:break-word;margin-bottom:8px;overflow-wrap:break-word;white-space:normal}.document-content ul li::marker{color:#e53e3e}.feature-list{list-style:none;padding-left:0}.feature-list li{word-wrap:break-word;line-height:1;margin-bottom:15px;overflow-wrap:break-word;padding-left:25px;position:relative;white-space:normal}.feature-list li:before{color:#ff6b6b;content:"•";font-weight:700;left:0;position:absolute;top:0}.section-title{color:#333;font-size:24px;font-weight:600;margin-bottom:15px;margin-top:30px}.section-content{word-wrap:break-word;color:#666;font-size:16px;line-height:1.6;overflow-wrap:break-word;white-space:normal}.loop-image-container{-webkit-overflow-scrolling:touch;margin-top:40px;max-width:100%;overflow-x:auto}.loop-image-container img{border-radius:4px;box-shadow:0 2px 8px #0000001a;display:block;height:auto;margin-right:10px;max-width:100%}.breadcrumb{word-wrap:break-word;color:#666;font-size:14px;overflow-wrap:break-word;white-space:normal}.parent-link{align-items:center;color:#666;cursor:pointer;display:inline-flex}.parent-link:hover{color:#e53e3e}.parent-icon{margin-right:8px}.version-selector{margin-left:24px}.version-selector select{background-color:#fff;border:1px solid #ddd;border-radius:4px;font-size:14px;padding:6px 12px}.no-content{word-wrap:break-word;background-color:#f9f9f9;border-radius:8px;color:#666;overflow-wrap:break-word;padding:40px;text-align:center;white-space:normal}.not-found-404{left:50%;max-width:600px;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);width:100%}.error-title{color:#f33;font-size:48px;font-weight:700;margin-bottom:20px}.error-message{color:#666;font-size:18px}.document-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:24px}.document-title-section{flex:1 1}.document-subtitle{word-wrap:break-word;color:#e53e3e;font-size:14px;font-weight:500;letter-spacing:.5px;margin-bottom:8px;overflow-wrap:break-word;text-transform:uppercase;white-space:normal}.loading-indicator{align-items:center;color:#666;display:flex;font-size:16px;justify-content:center;padding:20px}.markdown-content pre{word-wrap:break-word;background-color:#f6f8fa;border-radius:4px;font-family:Courier New,Courier,monospace;overflow-x:hidden;padding:16px;white-space:pre-wrap}.markdown-content pre code{display:block}.markdown-content .highlight{margin:0}.loading:after{border:2px solid #ddd;border-top-color:#4a8eff}.search-highlight{animation:pulse 1.5s infinite;background-color:#fff176;border-radius:2px;font-weight:700;padding:0 2px}@keyframes pulse{0%{background-color:#fff176}50%{background-color:#ffeb3b}to{background-color:#fff176}}.document-content table{border:1px solid #dfe2e5;border-collapse:initial;border-radius:4px;border-spacing:0;font-size:14px;line-height:1.4;margin:16px 0;width:100%}.document-content table td,.document-content table th{border-bottom:1px solid #dfe2e5;border-right:1px solid #dfe2e5;min-width:120px;padding:8px 16px;text-align:left}.document-content table th{background-color:#f6f8fa;border-bottom:1px solid #dfe2e5;font-weight:600}.document-content table td:last-child,.document-content table th:last-child{border-right:none}.document-content table tr:last-child td{border-bottom:none}@media (max-width:768px){.main-content{height:auto;overflow-x:hidden;padding:16px;width:100%}.document-content{word-wrap:break-word;overflow-wrap:break-word;overflow-x:hidden;white-space:normal}.document-title{font-size:24px;margin-bottom:16px}.document-content h1{font-size:22px}.document-content h2{font-size:18px}.document-content h3{font-size:16px}.markdown-content pre{overflow-x:hidden;white-space:pre-wrap}.loop-image-container{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}.loop-image-container img{display:block;height:auto;margin-right:10px;max-width:100%}.table-container{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}}.right-sidebar{border-left:1px solid #e9e9e9;display:flex;flex-direction:column;overflow:hidden;position:fixed;transition:none;z-index:100}.toc-header{align-items:center;background-color:#fff;border-bottom:1px solid #e9e9e9;display:flex;justify-content:space-between;padding:16px 20px}.toc-content{flex:1 1;height:calc(100vh - 120px);margin-right:0;overflow-x:hidden;overflow-y:auto;padding:16px 0 16px 12px;scrollbar-gutter:stable;scrollbar-width:thin}.toc-content.hidden{display:none}.toc-title{color:#333;font-size:14px;font-weight:600;margin:0}.toggle-toc{align-items:center;background:none;border:none;border-radius:4px;color:#666;cursor:pointer;display:flex;font-size:18px;height:28px;justify-content:center;width:28px}.toggle-toc:hover{background-color:#f5f5f5}.toc-list{list-style-type:none;margin:0;padding:0;width:100%}.toc-content::-webkit-scrollbar{width:6px}.toc-content::-webkit-scrollbar-track{background:#0000}.toc-content::-webkit-scrollbar-thumb{background-color:#d1d5db;border-radius:3px}.toc-content::-webkit-scrollbar-thumb:hover{background-color:#9ca3af}.toc-item{font-size:14px;margin-bottom:8px;padding-left:0;padding-right:12px;transition:background .2s}.toc-item a{border-radius:4px;color:#666;display:block;padding:4px 8px;text-decoration:none;transition:all .2s}.toc-item a:hover,.toc-item.active>a{background-color:#e53e3e0d;color:#e53e3e}.toc-item.active>a{font-weight:500}.toc-sublist{list-style-type:none;margin-top:8px;padding-left:16px}.level-1>a{font-weight:500}.level-2>a{font-size:13.5px}.level-3>a{font-size:13px}.level-4>a,.level-5>a,.level-6>a{color:#777;font-size:12.5px}.no-toc{color:#888;font-size:14px;padding:20px;text-align:center}@media (max-width:1024px){.right-sidebar{display:none}}.wiki-container{display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;height:100vh}.content-wrapper{display:flex;flex:1 1;height:calc(100vh - 60px)}*{box-sizing:border-box;padding:0}*,body{margin:0}body{background-color:#fff;color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif}a{color:#e53e3e;text-decoration:none}a:hover{text-decoration:underline}.app-container{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;min-height:100vh;width:100%}.app,.app-container{display:flex;flex-direction:column}.app{height:100vh;overflow:hidden}.content-container{display:flex;flex:1 1;overflow-x:auto;overflow-y:hidden}.loading{align-items:center;color:#666;display:flex;font-size:16px;height:100%;justify-content:center}.loading:after{animation:spin 1s linear infinite;border:2px solid #eee;border-radius:50%;border-top-color:#e53e3e;content:"";height:20px;margin-left:10px;width:20px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.sr-only,.visually-hidden{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.sidebar{background-color:#fff;border-right:1px solid #eaeaea;display:flex;flex-direction:column;flex-shrink:0;height:calc(100vh - 60px);position:sticky;top:60px;width:240px;z-index:10}.main-container{background-color:#fff;flex:1 1;min-width:0;padding:2rem}.right-sidebar{background-color:#fff;border-left:1px solid #eaeaea;flex-shrink:0;height:calc(100vh - 60px);margin-left:auto;overflow-y:auto;position:sticky;right:0;top:60px;width:260px}.breadcrumb{display:flex;font-size:13px;margin-bottom:20px;text-transform:uppercase}.breadcrumb a{color:#ff6b6b;font-weight:500}@media (max-width:1200px){.main-container{padding:1.5rem}.sidebar{width:220px}}@media (max-width:992px){.right-sidebar{display:none}.sidebar{width:200px}.main-container{padding:1.25rem}}@media (max-width:768px){.content-container{flex-direction:column;overflow-x:auto}.sidebar{height:auto;max-height:300px;position:relative;top:0;width:100%}.main-content{overflow-x:auto;padding:16px 20px}.main-container{padding:1rem}}.home-root{background:#fff;display:flex;flex-direction:column;min-height:100vh;position:relative}.home-title{padding:20px 0;text-align:center}.home-title-main{font-size:2rem;font-weight:700;margin-bottom:8px}.home-title-highlight{color:#1976d2;text-decoration-color:#1976d2}.home-projects{margin:0 auto;max-width:1200px;padding:2rem}.project-group{margin-bottom:2.5rem}.project-group-title{color:#2b2b2b;font-size:1.5rem;margin-bottom:1.5rem;padding-left:1rem;position:relative}.project-group-title:before{background-color:#1976d2;border-radius:2px;content:"";height:70%;left:0;position:absolute;top:50%;transform:translateY(-50%);width:4px}.project-group-items{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(3,minmax(0,1fr));margin:0 auto}.home-project-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;cursor:pointer;display:flex;height:100px;overflow:hidden;position:relative;transition:all .3s ease;width:100%}.home-project-card:hover{border-color:#1976d2;box-shadow:0 4px 12px #1976d21a;transform:translateY(-2px)}.project-image{flex-shrink:0;height:100px;min-width:100px;overflow:hidden;position:relative;transition:all .3s ease;width:100px}.project-image,.project-image-container{align-items:center;border-radius:8px;display:flex;justify-content:center;padding:8px}.project-image img,.project-image-container{height:100%;width:100%}.project-image img{border-radius:8px;object-fit:cover;object-position:center;transition:all .3s ease;will-change:transform,filter}.project-content{display:flex;flex:1 1;flex-direction:column;justify-content:flex-start;min-width:0;padding:8px 32px 8px 12px;position:relative}.home-project-name{color:#1976d2;font-size:16px;font-weight:500;line-height:1.2;margin-bottom:2px}.home-project-desc,.home-project-name{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden;text-overflow:ellipsis;word-break:break-word}.home-project-desc{color:#666;font-size:12px;line-height:1.4;margin:0}.more-button{align-items:center;background:none;border:none;border-radius:4px;cursor:pointer;display:flex;height:20px;justify-content:center;padding:2px;position:absolute;right:4px;top:4px;transition:all .2s ease;width:20px;z-index:2}.more-button:hover{background-color:#0000000a}.more-dots{background-image:radial-gradient(circle,#666 1.2px,#0000 0);background-position:50%;background-repeat:space;background-size:4px 4px;display:block;height:14px;width:4px}.more-button:hover .more-dots{background-image:radial-gradient(circle,#1976d2 1.5px,#0000 0)}.home-footer{background-color:#f8f9fa;border-top:1px solid #e9ecef;color:#333;display:flex;flex-direction:column;margin-top:auto;padding:0}.footer-content{display:flex;justify-content:space-between;padding:20px 80px}.footer-left{flex:0 0 65%;text-align:left}.footer-left h3,.footer-right h3{color:#333;font-size:1.2rem;font-weight:600;margin-bottom:20px;text-align:left}.contact-info{display:flex;gap:40px;text-align:left}.contact-column{flex:1 1}.contact-column p{font-size:.9rem;line-height:1.5;margin:8px 0;text-align:left}.footer-right{flex:0 0 25%}.footer-right h3{margin-bottom:25px;text-align:left}.social-links{display:flex;flex-direction:column;gap:12px;max-width:200px;width:100%}.social-row{display:flex;flex-wrap:wrap;gap:15px;justify-content:flex-start}.social-link{align-items:center;background-color:#f0f0f0;border-radius:50%;display:flex;flex:0 0 auto;font-size:1rem;height:32px;justify-content:center;text-decoration:none;transition:transform .3s ease;width:32px}.social-link i,.social-link.zalo{color:#666;transition:color .3s ease}.social-link:hover{transform:translateY(-3px)}.social-link.location:hover i{color:#4caf50}.social-link.facebook:hover i{color:#1877f2}.social-link.tiktok:hover i{color:#000}.social-link.zalo:hover{color:#0068ff}.social-link.youtube:hover i{color:red}.footer-bottom{background-color:#fff;border-top:1px solid #e9ecef;padding:20px 0;text-align:center}.footer-bottom p{color:#666;font-size:.9rem;margin:0}.modal-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{animation:modalFadeIn .2s ease-out;background:#fff;border-radius:8px;max-height:90vh;max-width:600px;overflow-y:auto;width:90%}.modal-header{align-items:flex-start;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:16px}.modal-header h3{color:#1976d2;flex:1 1;font-size:1.2rem;line-height:1.4;margin:0;padding-right:16px}.modal-close{background:none;border:none;color:#666;cursor:pointer;font-size:1.5rem;margin:-4px;padding:4px}.modal-close:hover{color:#1976d2}.modal-body{padding:16px}.modal-body p{color:#333;font-size:.95rem;line-height:1.6;margin:0;white-space:pre-wrap}@keyframes modalFadeIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@media (max-width:1200px){.project-group-items{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-content{padding:20px 40px}}@media (max-width:768px){.home-title-main{font-size:1.5rem}.project-group-items{grid-template-columns:minmax(0,1fr)}.footer-content{flex-direction:column;padding:20px}.footer-left,.footer-right{flex:1 1;max-width:none;width:100%}.footer-right{margin-top:30px}.contact-info{flex-direction:column;gap:20px}.social-links,.social-row{justify-content:flex-start}.footer-bottom{padding:20px;text-align:left}.modal-content{margin:10px;width:95%}}.markdown-dialog-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.markdown-dialog-content{animation:dialogFadeIn .3s ease;background:#fff;border-radius:8px;display:flex;flex-direction:column;max-height:90vh;max-width:800px;position:relative;width:90%}.markdown-dialog-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #eee;border-radius:8px 8px 0 0;display:flex;justify-content:space-between;padding:16px 24px}.markdown-dialog-header h2{color:#333;font-size:1.5rem;font-weight:600;margin:0}.markdown-dialog-close{align-items:center;background:none;border:none;border-radius:4px;color:#666;cursor:pointer;display:flex;font-size:24px;height:32px;justify-content:center;padding:4px 8px;transition:all .2s ease;width:32px}.markdown-dialog-close:hover{background-color:#0000000d;color:#333}.markdown-dialog-body{flex:1 1;min-height:0;overflow-y:auto;padding:24px}.markdown-dialog-body .markdown-content{color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.6;margin-top:0}.markdown-dialog-body .markdown-content>:first-child{margin-top:0;padding-top:0}.markdown-dialog-body .markdown-content p:first-child{margin-top:0}.markdown-dialog-body .markdown-content h1,.markdown-dialog-body .markdown-content h2,.markdown-dialog-body .markdown-content h3,.markdown-dialog-body .markdown-content h4,.markdown-dialog-body .markdown-content h5,.markdown-dialog-body .markdown-content h6{font-weight:600;line-height:1.25;margin-bottom:.5em;margin-top:1.5em}.markdown-dialog-body .markdown-content h1{border-bottom:1px solid #eaecef;font-size:2em;padding-bottom:.3em}.markdown-dialog-body .markdown-content h2{border-bottom:1px solid #eaecef;font-size:1.5em;padding-bottom:.3em}.markdown-dialog-body .markdown-content h3{font-size:1.25em}.markdown-dialog-body .markdown-content p{margin-bottom:1em}.markdown-dialog-body .markdown-content ol,.markdown-dialog-body .markdown-content ul{margin-bottom:1em;padding-left:2em}.markdown-dialog-body .markdown-content li{margin-bottom:.5em}.markdown-dialog-body .markdown-content hr{background-color:#e1e4e8;border:0;height:.25em;margin:24px 0;padding:0}.markdown-dialog-body .markdown-content blockquote{border-left:.25em solid #dfe2e5;color:#6a737d;margin:0 0 1em;padding:0 1em}.markdown-dialog-body .markdown-content table{border:1px solid #dfe2e5;border-collapse:initial;border-radius:4px;border-spacing:0;margin:1em 0;overflow:auto;width:100%}.markdown-dialog-body .markdown-content table td,.markdown-dialog-body .markdown-content table th{border-bottom:1px solid #dfe2e5;border-right:1px solid #dfe2e5;min-width:120px;padding:8px 16px;text-align:left}.markdown-dialog-body .markdown-content table th{background-color:#f6f8fa;border-bottom:1px solid #dfe2e5;font-weight:600}.markdown-dialog-body .markdown-content table td:last-child,.markdown-dialog-body .markdown-content table th:last-child{border-right:none}.markdown-dialog-body .markdown-content table tr:last-child td{border-bottom:none}.markdown-dialog-body .markdown-content code{background-color:#1b1f230d;border-radius:3px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:85%;margin:0;padding:.2em .4em}.markdown-dialog-body .markdown-content pre{background-color:#f6f8fa;border-radius:3px;font-size:85%;line-height:1.45;margin:1em 0;overflow:auto;padding:16px}.markdown-dialog-body .markdown-content pre code{background:#0000;border:0;font-size:100%;margin:0;padding:0;white-space:pre;word-break:normal}@keyframes dialogFadeIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}
/*# sourceMappingURL=main.e3a2c962.css.map*/