:root{--bg:#000;--panel:#0b0b18;--panel-2:#12122a;--border:#1e1e36;--border-strong:#2c2c4a;--text:#ececef;--muted:#8f8f99;--muted-2:#66666f;--accent:#3dd6ef;--accent-2:#7fe6f7;--accent-soft:#3dd6ef24;--ok:#22c55e;--ok-2:#4ade80;--ok-soft:#22c55e24;--danger:#ce1126;--danger-soft:#ce112624;--info:#2f6fed;--info-soft:#2f6fed29;--warn:#e0a400;--radius:10px;--rail-w:52px;--side-w:220px;--font:"IBM Plex Sans Arabic", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.55}a{color:inherit;text-decoration:none}button{font:inherit}code,pre,.mono{font-family:var(--mono)}.shell{grid-template-columns:var(--rail-w) var(--side-w) 1fr;height:100%;display:grid}.shell.side-collapsed{grid-template-columns:var(--rail-w) 0 1fr}.rail{border-inline-end:1px solid var(--border);background:var(--bg);flex-direction:column;align-items:center;gap:4px;padding:10px 0;display:flex}.rail .logo{object-fit:contain;width:36px;height:36px;margin-bottom:10px;display:block}.rail .rail-label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2);-webkit-user-select:none;user-select:none;margin:8px 0 2px;font-size:9px}.rail-btn{width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;place-items:center;display:grid;position:relative}.rail-btn:hover{color:var(--text);background:var(--panel-2)}.rail-btn.active{color:var(--text);background:var(--panel-2);border-color:var(--border-strong)}.rail-btn.active:before{content:"";inset-inline-start:-9px;background:var(--accent);border-radius:2px;width:2px;position:absolute;top:9px;bottom:9px}.rail-btn svg{width:18px;height:18px}.rail .spacer{flex:1}.side{border-inline-end:1px solid var(--border);background:var(--bg);padding:12px 10px;position:relative;overflow:hidden auto}.side h6{letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2);margin:8px 8px 6px;font-size:10px;font-weight:600}.side a{color:var(--muted);border-radius:8px;align-items:center;gap:10px;padding:7px 10px;font-size:13px;display:flex}.side a svg{opacity:.8;flex:none;width:15px;height:15px}.side a:hover{color:var(--text);background:var(--panel-2)}.side a.active{color:var(--text);background:var(--panel-2);box-shadow:inset 2px 0 0 var(--accent)}[dir=rtl] .side a.active{box-shadow:inset -2px 0 0 var(--accent)}[dir=rtl] .collapse-handle{border-radius:6px 0 0 6px}.side .group+.group{margin-top:10px}.main{flex-direction:column;min-width:0;height:100%;display:flex;position:relative}.collapse-handle{top:50%;border:1px solid var(--border);background:var(--panel);width:14px;height:40px;color:var(--muted);cursor:pointer;z-index:5;border-inline-start:0;border-radius:0 6px 6px 0;place-items:center;font-size:10px;display:grid;position:absolute;inset-inline-start:0;transform:translateY(-50%)}.topbar{border-bottom:1px solid var(--border);background:var(--bg);flex:none;grid-template-columns:1fr auto 1fr;align-items:center;height:52px;padding:0 12px;display:grid}.topbar .title{text-align:center}.topbar .title b{font-size:14px;font-weight:600;display:block}.topbar .title span{color:var(--muted);margin-top:-2px;font-size:11px;display:block}.topbar .left,.topbar .right{gap:4px;display:flex}.topbar .right{justify-content:flex-end}.rail-btn svg,.icon-btn svg,.side a svg{direction:ltr}.icon-btn{width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;place-items:center;display:grid}.icon-btn:hover{color:var(--text);background:var(--panel-2);border-color:var(--border)}.icon-btn svg{width:16px;height:16px}.content{background-color:var(--bg);background-image:linear-gradient(90deg,#ffffff09 1px,#0000 1px),linear-gradient(#ffffff09 1px,#0000 1px);background-size:22px 22px;flex:1;padding:22px;overflow:auto}.content-inner{max-width:1100px;margin:0 auto}.grid-2{grid-template-columns:1fr 1fr;align-items:start;gap:18px;display:grid}@media (width<=900px){.shell{grid-template-columns:var(--rail-w) 0 1fr}.side{display:none}.grid-2{grid-template-columns:1fr}.content{padding:16px}}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:18px}.card h2{letter-spacing:-.01em;margin:0;font-size:22px;font-weight:600}.card .sub{color:var(--muted);margin:2px 0 14px;font-size:13px}.card+.card{margin-top:18px}.ports{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px;display:grid}.port{border:1px solid var(--border-strong);text-align:center;background:var(--panel-2);border-radius:8px;padding:10px 8px}.port b{font-size:14px;display:block}.port small{color:var(--muted);font-size:11px;display:block}.port .state{margin-top:4px;font-size:11px;font-weight:600;display:block}.port.green{border-color:#22c55eb3}.port.green .state{color:var(--ok-2)}.port.blue{border-color:#2f6fedb3}.port.blue .state{color:#6d9bff}.port.red{border-color:#ce1126b3}.port.red .state{color:#ff5c6c}.port.dim{opacity:.55}.btn{cursor:pointer;background:var(--panel-2);color:var(--text);border:1px solid #0000;border-color:var(--border-strong);border-radius:8px;align-items:center;gap:8px;padding:8px 16px;font-size:13px;font-weight:600;display:inline-flex}.btn:hover{border-color:var(--muted-2)}.btn.primary{background:var(--accent);color:#06121a;border-color:#0000}.btn.primary:hover{background:var(--accent-2)}.btn.danger{background:var(--danger);color:#fff;border-color:#0000}.btn.info{background:var(--info);color:#fff;border-color:#0000}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-row{flex-wrap:wrap;gap:8px;display:flex}.badge{border:1px solid var(--border-strong);color:var(--muted);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.badge.on{background:var(--ok-soft);color:var(--ok-2);border-color:#22c55e66}.badge.off{background:var(--danger-soft);color:#ff5c6c;border-color:#ce112666}.log{text-align:left;border:1px solid var(--border);height:320px;font-family:var(--mono);white-space:pre-wrap;word-break:break-all;direction:ltr;background:#050506;border-radius:8px;padding:10px 12px;font-size:12px;line-height:1.6;overflow:auto}.log .t{color:var(--muted-2)}.log .rx{color:#9fd8ff}.log .tx{color:var(--ok-2)}.log .sys{color:var(--muted)}.log .err{color:#ff5c6c}.log .empty{color:var(--muted);font-family:var(--font);font-size:13px}.field{flex-direction:column;gap:4px;display:flex}.field label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:11px}.mono,input.mono{text-align:left;direction:ltr}.field input,.field select,.field textarea{background:var(--panel-2);border:1px solid var(--border-strong);color:var(--text);font:inherit;border-radius:8px;padding:8px 10px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);outline:none}.fields{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-bottom:12px;display:grid}.inline-form{gap:8px;display:flex}.inline-form input{flex:1}.steps{gap:6px;margin:6px 0 14px;display:flex}.steps i{background:var(--border-strong);border-radius:2px;flex:1;height:3px}.steps i.done{background:var(--accent)}.step-note{color:var(--muted);margin:0 0 12px;font-size:12px}.pad{grid-template-columns:repeat(3,44px);gap:6px;display:grid}.pad .btn{justify-content:center;height:40px;padding:0}.prose h1{letter-spacing:-.02em;margin:0 0 4px;font-size:30px}.prose .lead{color:var(--muted);margin:0 0 22px;font-size:15px}.prose h2{border-top:1px solid var(--border);margin:30px 0 8px;padding-top:12px;font-size:19px}.prose h3{margin:20px 0 6px;font-size:15px}.prose p,.prose li{color:#cfcfd6}.prose ul,.prose ol{padding-inline-start:20px}.prose code{background:var(--panel-2);border:1px solid var(--border);direction:ltr;unicode-bidi:isolate;border-radius:5px;padding:1px 6px;font-size:12.5px}.prose pre{text-align:left;border:1px solid var(--border);direction:ltr;background:#050506;border-radius:10px;padding:14px 16px;font-size:12.5px;line-height:1.6;overflow:auto}.prose pre code{background:0 0;border:0;padding:0}.prose table{border-collapse:collapse;width:100%;margin:12px 0;font-size:13px}.prose th{text-align:start;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border-strong);padding:8px 10px;font-size:11px}.prose td{border-bottom:1px solid var(--border);vertical-align:top;padding:9px 10px}.prose td:first-child{white-space:nowrap;font-weight:600}.callout{border:1px solid var(--border-strong);border-inline-start:3px solid var(--accent);background:var(--panel);border-radius:8px;margin:14px 0;padding:10px 14px}.callout.warn{border-inline-start-color:var(--warn)}.callout.danger{border-inline-start-color:var(--danger)}.tiles{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;margin-top:18px;display:grid}.tile{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px;display:block}.tile:hover{border-color:var(--accent)}.tile b{font-size:15px;display:block}.tile span{color:var(--muted);font-size:13px}.landing{max-width:820px;margin:60px auto;padding:0 20px}.landing .hero{align-items:center;gap:16px;display:flex}.landing .hero img{object-fit:contain;width:96px;height:96px}.landing h1{letter-spacing:-.03em;margin:0;font-size:38px}.landing p{color:var(--muted);font-size:16px}.changelog .rel{margin-bottom:26px}.changelog .rel-h{align-items:baseline;gap:12px;display:flex}.changelog .rel-h b{font-size:18px}.changelog .rel-h span{color:var(--muted);font-size:12px}.changelog h4{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:12px 0 4px;font-size:12px}.changelog li{color:#cfcfd6;font-size:13px}.changelog li code{color:var(--muted-2);direction:ltr;unicode-bidi:isolate;font-size:11px}.ltr{direction:ltr;unicode-bidi:isolate;display:inline-block}.search-overlay{z-index:50;background:#0009;place-items:start center;padding-top:12vh;display:grid;position:fixed;inset:0}.search-box{background:var(--panel);border:1px solid var(--border-strong);border-radius:12px;width:min(560px,92vw);overflow:hidden}.search-box input{border:0;border-bottom:1px solid var(--border);width:100%;color:var(--text);font:inherit;background:0 0;outline:none;padding:14px 16px;font-size:15px}.search-box a{border-bottom:1px solid var(--border);padding:10px 16px;display:block}.search-box a:hover{background:var(--panel-2)}.search-box a small{color:var(--muted);display:block}.search-box .none{color:var(--muted);padding:14px 16px}
