*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}:root{--sidebar-bg:#343131;--sidebar-width:300px;--link-color:#2980b9;--heading-color:#404040;--text-color:#404040;--border-color:#e1e4e5;--body-bg:#fcfcfc;--code-red:#e74c3c;--note-bg:#e7f2fa;--note-border:#2980b9;--warn-bg:#ffedcc;--warn-border:#f0b37e;--shell-bg:#eeffcc;--shell-border:#c8dfa0}html{font-size:16px;-webkit-text-size-adjust:100%;text-size-adjust:100%}html,body{font-family:'Lato',sans-serif;font-size:16px;color:var(--text-color);background:var(--body-bg)}a{color:var(--link-color);text-decoration:none}a:hover{text-decoration:underline}.me-main p a,.me-main li a,.me-main td a,.me-main dd a{text-decoration:underline}.me-main p a:hover,.me-main li a:hover{text-decoration:none}.me-layout{display:flex;min-height:100vh}#me-sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--sidebar-bg);flex-shrink:0;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto;z-index:100;contain:layout style;content-visibility:auto;contain-intrinsic-size:var(--sidebar-width) 100vh}.me-sidebar-logo{background:#2b2828;padding:1rem 1.2rem;flex-shrink:0;border-bottom:1px solid #444}.me-sidebar-logo a{display:block;text-decoration:none}.me-sidebar-logo img{width:100%;max-width:200px;height:auto;display:block}#me-sidebar::-webkit-scrollbar{width:4px}#me-sidebar::-webkit-scrollbar-track{background:#2a2828}#me-sidebar::-webkit-scrollbar-thumb{background:#555;border-radius:2px}.me-sidebar-search{padding:1rem 1.2rem .8rem;flex-shrink:0}.me-sidebar-search input{width:100%;padding:.45rem .75rem;border:1px solid #aaa;border-radius:3px;font-size:.9rem;background:#fff;outline:none;font-family:'Lato',sans-serif}.me-sidebar-search input::placeholder{color:#999}.me-sidebar-nav{padding:.3rem 0 1rem}.me-nav-l1{display:flex;align-items:center;justify-content:space-between;padding:.42rem 1.1rem;font-size:.9rem;font-weight:700;color:#e0e0e0;cursor:pointer;user-select:none;transition:background 0.15s;text-decoration:none}.me-nav-l1:hover{background:rgb(255 255 255 / .07);color:#fff;text-decoration:none}.me-nav-l1.active{color:#fff;background:rgb(255 255 255 / .05)}.me-nav-l1 .me-arrow{font-size:.7rem;transition:transform 0.2s;will-change:transform;color:#aaa;flex-shrink:0}.me-nav-l1.open .me-arrow{transform:rotate(90deg);color:#ccc}.me-nav-children{display:none}.me-nav-children.open{display:block}.me-nav-l2{display:block;padding:.3rem 1.2rem .3rem 2rem;font-size:.86rem;color:#d0d0d0;text-decoration:none;transition:color 0.15s;line-height:1.4}.me-nav-l2:hover{background:rgb(255 255 255 / .06);color:#fff;text-decoration:none}.me-nav-l2.active{color:#fff;font-weight:700}.me-nav-l3{display:block;padding:.26rem 1.2rem .26rem 2.8rem;font-size:.81rem;color:#bbb;text-decoration:none;transition:color 0.15s;line-height:1.4}.me-nav-l3:hover{background:rgb(255 255 255 / .05);color:#eee;text-decoration:none}.me-nav-l3.active{color:#fff}.me-main{flex:1;padding:2rem 3rem 5rem 3rem;max-width:860px;min-width:0}.me-subproject-row{border-top:1px solid #3a3a3a;margin-top:.3rem}.me-subproject-badge{font-size:.58rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;background:#1a5276;color:#aed6f1;padding:.08rem .35rem;border-radius:3px;vertical-align:middle;margin-right:.3rem}.me-right-panel{width:200px;flex-shrink:0}.me-main h1{font-family:'Roboto Slab',serif;font-size:1.95rem;font-weight:700;color:var(--heading-color);margin-bottom:1.1rem;padding-bottom:.45rem;border-bottom:1px solid var(--border-color)}.me-main h2{font-family:'Roboto Slab',serif;font-size:1.38rem;font-weight:700;color:var(--heading-color);margin:2rem 0 .75rem;padding-bottom:.3rem;border-bottom:1px solid var(--border-color)}.me-main h3{font-family:'Roboto Slab',serif;font-size:1.08rem;font-weight:700;color:var(--heading-color);margin:1.6rem 0 .6rem}.me-main p{font-size:.97rem;line-height:1.72;margin-bottom:.9rem}.me-main code{background:#f0f2f3;border:1px solid #e1e4e5;border-radius:2px;padding:.08em .32em;font-family:'Courier New',monospace;font-size:.875em;color:var(--code-red)}.me-main pre{background:#f8f8f8;border:1px solid #e1e4e5;border-radius:3px;padding:.85rem 1.1rem;font-family:'Courier New',monospace;font-size:.875rem;line-height:1.58;overflow-x:auto;margin:.5rem 0 1.2rem;white-space:pre}.me-main pre code{background:none;border:none;padding:0;color:#333;font-size:inherit}.me-main pre.shell{background:var(--shell-bg);border-color:var(--shell-border)}.me-main pre.shell .prompt{color:#c0392b}.me-admonition{padding:.8rem 1rem;margin:.9rem 0 1.3rem;border-radius:2px;font-size:.95rem;line-height:1.65}.me-admonition .me-admonition-title{font-weight:700;margin-bottom:.4rem;display:block}.me-admonition.note{background:var(--note-bg);border-left:4px solid var(--note-border)}.me-admonition.note .me-admonition-title{color:var(--note-border)}.me-admonition.warning{background:var(--warn-bg);border-left:4px solid var(--warn-border)}.me-admonition.warning .me-admonition-title{color:#c9710b}.me-admonition pre{background:#dceefa;border-color:#b8d8ee;margin:.5rem 0 0}.me-admonition.warning pre{background:#fde8c6;border-color:#f0cc9a}.me-main ul,.me-main ol{padding-left:1.9rem;margin-bottom:1rem;font-size:.97rem;line-height:1.72}.me-main li{margin-bottom:.22rem}.me-toc{list-style:disc}.me-toc li{margin-bottom:.3rem;font-size:.97rem}.me-toc ul{list-style:circle;margin-top:.3rem;margin-bottom:.4rem}.me-page-nav{display:flex;justify-content:space-between;margin-top:2.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.me-btn-nav{display:inline-flex;align-items:center;gap:.4rem;padding:.38rem .9rem;border:1px solid #ccc;border-radius:3px;font-size:.91rem;color:var(--text-color);background:#fff;text-decoration:none;font-family:'Lato',sans-serif}.me-btn-nav:hover{background:#f5f5f5;text-decoration:none}.me-footer{margin-top:3rem;padding-top:1rem;border-top:1px solid var(--border-color);font-size:.85rem;color:#888;line-height:1.7}@media (max-width:960px){.me-right-panel{display:none}.me-main{padding:1.5rem 1.5rem 3rem}}@media (max-width:700px){#me-sidebar{position:static;height:auto;width:100%}.me-layout{flex-direction:column}.me-main{padding:1.2rem 1rem 3rem}}