.mt-4{margin-top:4px}.mt-8{margin-top:8px}.mt-10{margin-top:10px}.mt-12{margin-top:12px}.mt-20{margin-top:20px}.mb-4{margin-bottom:4px}.mb-8{margin-bottom:8px}.mb-10{margin-bottom:10px}.mb-12{margin-bottom:12px}.ml-8{margin-left:8px}.my-8{margin:8px 0}.my-10{margin:10px 0}.zero-margin{margin:0}.danger-icon{cursor:pointer;color:var(--ant-color-error);margin-left:8px}.online-dot{vertical-align:middle;background:var(--ant-color-success);border-radius:50%;width:7px;height:7px;margin-inline-end:5px;animation:1.1s ease-in-out infinite online-blink;display:inline-block}.dot-tag{align-items:center;display:inline-flex}@keyframes online-blink{0%,to{opacity:1;box-shadow:0 0 #52c41a8c}50%{opacity:.35;box-shadow:0 0 0 4px #52c41a00}}@media (prefers-reduced-motion:reduce){.online-dot{animation:none}}.xray-error-dot{vertical-align:middle;background:#722ed1;border-radius:50%;width:7px;height:7px;margin-inline-end:5px;animation:1.1s ease-in-out infinite xray-error-blink;display:inline-block}@keyframes xray-error-blink{0%,to{opacity:1;box-shadow:0 0 #722ed18c}50%{opacity:.35;box-shadow:0 0 0 4px #722ed100}}@media (prefers-reduced-motion:reduce){.xray-error-dot{animation:none}}.index-page,.clients-page,.inbounds-page,.xray-page,.settings-page,.nodes-page,.groups-page,.api-docs-page{--bg-page:#e6e8ec;--bg-card:#fff;background:var(--bg-page);min-height:100vh}.index-page.is-dark,.clients-page.is-dark,.inbounds-page.is-dark,.xray-page.is-dark,.settings-page.is-dark,.nodes-page.is-dark,.groups-page.is-dark,.api-docs-page.is-dark{--bg-page:#1a1b1f;--bg-card:#23252b}.index-page.is-dark.is-ultra,.clients-page.is-dark.is-ultra,.inbounds-page.is-dark.is-ultra,.xray-page.is-dark.is-ultra,.settings-page.is-dark.is-ultra,.nodes-page.is-dark.is-ultra,.groups-page.is-dark.is-ultra,.api-docs-page.is-dark.is-ultra{--bg-page:#000;--bg-card:#101013}.index-page .ant-layout,.index-page .ant-layout-content,.clients-page .ant-layout,.clients-page .ant-layout-content,.inbounds-page .ant-layout,.inbounds-page .ant-layout-content,.xray-page .ant-layout,.xray-page .ant-layout-content,.settings-page .ant-layout,.settings-page .ant-layout-content,.nodes-page .ant-layout,.nodes-page .ant-layout-content,.groups-page .ant-layout,.groups-page .ant-layout-content,.api-docs-page .ant-layout,.api-docs-page .ant-layout-content,.index-page .content-shell,.clients-page .content-shell,.inbounds-page .content-shell,.xray-page .content-shell,.settings-page .content-shell,.nodes-page .content-shell,.groups-page .content-shell,.api-docs-page .content-shell{background:0 0}.index-page .content-area,.clients-page .content-area,.inbounds-page .content-area,.xray-page .content-area,.settings-page .content-area,.nodes-page .content-area,.groups-page .content-area{padding:24px}@media (max-width:768px){.clients-page .content-area,.inbounds-page .content-area,.nodes-page .content-area,.groups-page .content-area{padding:8px}}.loading-spacer{min-height:calc(100vh - 120px)}.ant-dropdown .ant-dropdown-menu{max-height:calc(100vh - 32px);overflow-y:auto}.ant-dropdown-menu-item:not(.ant-dropdown-menu-item-disabled):not(.ant-dropdown-menu-item-danger):hover,.ant-dropdown-menu-item:not(.ant-dropdown-menu-item-disabled):not(.ant-dropdown-menu-item-danger):hover .ant-dropdown-menu-title-content,.ant-dropdown-menu-item:not(.ant-dropdown-menu-item-disabled):not(.ant-dropdown-menu-item-danger):hover>.anticon{color:var(--ant-color-primary)!important}.ant-dropdown-menu-item:not(.ant-dropdown-menu-item-disabled):not(.ant-dropdown-menu-item-danger):hover{background-color:color-mix(in srgb, var(--ant-color-primary) 14%, transparent)!important}.ant-dropdown-menu-item-divider{background-color:var(--ant-color-border)!important}body.dark .ant-dropdown-menu-item-divider{background-color:#ffffff1f!important}.settings-page .header-row,.xray-page .header-row{flex-wrap:wrap;align-items:center;display:flex}.settings-page .header-actions,.xray-page .header-actions{padding:4px}.settings-page .header-info,.xray-page .header-info{justify-content:flex-end;display:flex}.icons-only .ant-tabs-nav{margin-bottom:8px}.icons-only .ant-tabs-nav-wrap{width:100%}.icons-only .ant-tabs-nav-list{width:100%;display:flex}.icons-only .ant-tabs-tab{flex:1 1 0;justify-content:center;margin:0;padding:10px 0}.icons-only .ant-tabs-tab .anticon{margin:0;font-size:18px}.icons-only .ant-tabs-nav-operations{display:none}.clients-page .summary-card,.inbounds-page .summary-card,.nodes-page .summary-card,.groups-page .summary-card{padding:16px}@media (max-width:768px){.clients-page .summary-card,.inbounds-page .summary-card,.nodes-page .summary-card,.groups-page .summary-card{padding:8px}}.hosts-page{--bg-page:#e6e8ec;--bg-card:#fff;background:var(--bg-page);min-height:100vh}.hosts-page.is-dark{--bg-page:#1a1b1f;--bg-card:#23252b}.hosts-page.is-dark.is-ultra{--bg-page:#000;--bg-card:#101013}.hosts-page .ant-layout,.hosts-page .ant-layout-content,.hosts-page .content-shell{background:0 0}.hosts-page .content-area{padding:24px}.hosts-page .summary-card{padding:16px}@media (max-width:768px){.hosts-page .content-area,.hosts-page .summary-card{padding:8px}}.index-page .ant-card,.clients-page .ant-card,.inbounds-page .ant-card,.xray-page .ant-card,.settings-page .ant-card,.nodes-page .ant-card,.groups-page .ant-card,.api-docs-page .ant-card{border-radius:12px;transition:transform .2s,box-shadow .25s,border-color .2s;box-shadow:0 1px 2px #0000000a}.index-page.is-dark .ant-card,.clients-page.is-dark .ant-card,.inbounds-page.is-dark .ant-card,.xray-page.is-dark .ant-card,.settings-page.is-dark .ant-card,.nodes-page.is-dark .ant-card,.groups-page.is-dark .ant-card,.api-docs-page.is-dark .ant-card{box-shadow:0 1px 2px #0006,inset 0 1px #ffffff08}.index-page.is-dark.is-ultra .ant-card,.clients-page.is-dark.is-ultra .ant-card,.inbounds-page.is-dark.is-ultra .ant-card,.xray-page.is-dark.is-ultra .ant-card,.settings-page.is-dark.is-ultra .ant-card,.nodes-page.is-dark.is-ultra .ant-card,.groups-page.is-dark.is-ultra .ant-card,.api-docs-page.is-dark.is-ultra .ant-card{box-shadow:0 1px 2px #0009,inset 0 1px #ffffff06}.index-page .ant-card.ant-card-hoverable:hover,.clients-page .ant-card.ant-card-hoverable:hover,.inbounds-page .ant-card.ant-card-hoverable:hover,.xray-page .ant-card.ant-card-hoverable:hover,.settings-page .ant-card.ant-card-hoverable:hover,.nodes-page .ant-card.ant-card-hoverable:hover,.groups-page .ant-card.ant-card-hoverable:hover,.api-docs-page .ant-card.ant-card-hoverable:hover{cursor:default;box-shadow:0 6px 18px #00000014}.index-page.is-dark .ant-card.ant-card-hoverable:hover,.clients-page.is-dark .ant-card.ant-card-hoverable:hover,.inbounds-page.is-dark .ant-card.ant-card-hoverable:hover,.xray-page.is-dark .ant-card.ant-card-hoverable:hover,.settings-page.is-dark .ant-card.ant-card-hoverable:hover,.nodes-page.is-dark .ant-card.ant-card-hoverable:hover,.groups-page.is-dark .ant-card.ant-card-hoverable:hover,.api-docs-page.is-dark .ant-card.ant-card-hoverable:hover{box-shadow:0 8px 24px #00000080,inset 0 1px #ffffff0a}.index-page.is-dark.is-ultra .ant-card.ant-card-hoverable:hover,.clients-page.is-dark.is-ultra .ant-card.ant-card-hoverable:hover,.inbounds-page.is-dark.is-ultra .ant-card.ant-card-hoverable:hover,.xray-page.is-dark.is-ultra .ant-card.ant-card-hoverable:hover,.settings-page.is-dark.is-ultra .ant-card.ant-card-hoverable:hover,.nodes-page.is-dark.is-ultra .ant-card.ant-card-hoverable:hover,.groups-page.is-dark.is-ultra .ant-card.ant-card-hoverable:hover,.api-docs-page.is-dark.is-ultra .ant-card.ant-card-hoverable:hover{box-shadow:0 8px 24px #000000bf,inset 0 1px #ffffff08}.index-page .ant-card .ant-card-actions,.clients-page .ant-card .ant-card-actions,.inbounds-page .ant-card .ant-card-actions,.xray-page .ant-card .ant-card-actions,.settings-page .ant-card .ant-card-actions,.nodes-page .ant-card .ant-card-actions,.groups-page .ant-card .ant-card-actions,.api-docs-page .ant-card .ant-card-actions{background:0 0}.hosts-page .ant-card{border-radius:12px;transition:transform .2s,box-shadow .25s,border-color .2s;box-shadow:0 1px 2px #0000000a}.hosts-page.is-dark .ant-card{box-shadow:0 1px 2px #0006,inset 0 1px #ffffff08}.hosts-page.is-dark.is-ultra .ant-card{box-shadow:0 1px 2px #0009,inset 0 1px #ffffff06}.hosts-page .ant-card.ant-card-hoverable:hover{cursor:default;box-shadow:0 6px 18px #00000014}.hosts-page.is-dark .ant-card.ant-card-hoverable:hover{box-shadow:0 8px 24px #00000080,inset 0 1px #ffffff0a}.hosts-page.is-dark.is-ultra .ant-card.ant-card-hoverable:hover{box-shadow:0 8px 24px #000000bf,inset 0 1px #ffffff08}.hosts-page .ant-card .ant-card-actions{background:0 0}.command-palette-backdrop{z-index:2000;-webkit-backdrop-filter:blur(8px);background:#00000073;justify-content:center;align-items:flex-start;padding-top:12vh;animation:.15s ease-out cp-fade-in;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.command-palette-backdrop.light{background:#00000040}.command-palette-backdrop.ultra{background:#000000bf}@keyframes cp-fade-in{0%{opacity:0}to{opacity:1}}.command-palette-modal{border-radius:14px;flex-direction:column;width:680px;max-width:92vw;max-height:72vh;transition:background .2s,border-color .2s,color .2s,box-shadow .2s;animation:.18s cubic-bezier(.16,1,.3,1) cp-scale-in;display:flex;position:relative;overflow:hidden}@keyframes cp-scale-in{0%{opacity:0;transform:scale(.96)translateY(-10px)}to{opacity:1;transform:scale(1)translateY(0)}}.command-palette-modal.light,body.light .command-palette-modal{color:#1f1f1f;background:#fffffff5;border:1px solid #0000001f;box-shadow:0 20px 50px #00000029,0 2px 8px #00000014}.command-palette-modal.dark,body.dark .command-palette-modal{color:#fff;background:#23252bf2;border:1px solid #ffffff1f;box-shadow:0 25px 60px #000000a6,0 4px 16px #0006}.command-palette-modal.ultra,html[data-theme=ultra-dark] .command-palette-modal{color:#fff;background:#101013fa;border:1px solid #ffffff2e;box-shadow:0 30px 70px #000000e6}.command-palette-header{border-bottom:1px solid;align-items:center;gap:14px;padding:16px 20px;display:flex}.command-palette-modal.light .command-palette-header{border-bottom-color:#00000014}.command-palette-modal.dark .command-palette-header{border-bottom-color:#ffffff14}.command-palette-modal.ultra .command-palette-header{border-bottom-color:#ffffff1f}.command-palette-search-icon{color:#1677ff;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:24px;transition:transform .2s;display:inline-flex}.command-palette-search-icon.spinning{color:#1677ff;animation:.8s linear infinite cp-spin}@keyframes cp-spin{to{transform:rotate(360deg)}}.command-palette-input{letter-spacing:-.2px;background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:16.5px;font-weight:400}.command-palette-modal.light .command-palette-input{color:#1f1f1f}.command-palette-modal.light .command-palette-input::placeholder{color:#8c8c8c}.command-palette-modal.dark .command-palette-input,.command-palette-modal.ultra .command-palette-input{color:#fff}.command-palette-modal.dark .command-palette-input::placeholder,.command-palette-modal.ultra .command-palette-input::placeholder{color:#737373}.command-palette-body{scrollbar-width:thin;flex:1;max-height:calc(72vh - 116px);padding:10px;overflow-y:auto}.command-palette-modal.light .command-palette-body{scrollbar-color:#0003 transparent}.command-palette-modal.dark .command-palette-body,.command-palette-modal.ultra .command-palette-body{scrollbar-color:#fff3 transparent}.command-palette-body::-webkit-scrollbar{width:6px}.command-palette-body::-webkit-scrollbar-track{background:0 0}.command-palette-modal.light .command-palette-body::-webkit-scrollbar-thumb{background:#0003;border-radius:3px}.command-palette-modal.light .command-palette-body::-webkit-scrollbar-thumb:hover{background:#00000059}.command-palette-modal.dark .command-palette-body::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.command-palette-modal.ultra .command-palette-body::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.command-palette-modal.dark .command-palette-body::-webkit-scrollbar-thumb:hover{background:#ffffff59}.command-palette-modal.ultra .command-palette-body::-webkit-scrollbar-thumb:hover{background:#ffffff59}.command-palette-group{margin-bottom:8px}.command-palette-group-title{text-transform:uppercase;letter-spacing:.6px;padding:6px 12px 4px;font-size:11px;font-weight:700}.command-palette-modal.light .command-palette-group-title,.command-palette-modal.dark .command-palette-group-title,.command-palette-modal.ultra .command-palette-group-title{color:#8c8c8c}.command-palette-item{cursor:pointer;text-align:start;width:100%;color:inherit;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:9px;justify-content:space-between;align-items:center;padding:9px 14px;font-family:inherit;line-height:normal;transition:background .12s,color .12s;display:flex}.command-palette-modal.light .command-palette-item.active{color:#0958d9;background:#e6f4ff}.command-palette-modal.dark .command-palette-item.active{color:#4096ff;background:#1677ff33}.command-palette-modal.ultra .command-palette-item.active{color:#69b1ff;background:#1677ff47}.command-palette-item-main{flex:1;align-items:center;gap:14px;min-width:0;display:flex}.command-palette-item-icon{flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:20px;display:inline-flex}.command-palette-item-content{flex-direction:column;min-width:0;display:flex;overflow:hidden}.command-palette-item-title{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:500;overflow:hidden}.command-palette-item-subtitle{white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.command-palette-modal.light .command-palette-item-subtitle,.command-palette-modal.dark .command-palette-item-subtitle,.command-palette-modal.ultra .command-palette-item-subtitle{color:#8c8c8c}.command-palette-item-actions{flex-shrink:0;align-items:center;gap:8px;margin-inline-start:12px;display:flex}.command-palette-action-btn{cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;padding:0;font-size:15px;transition:all .15s;display:inline-flex}.command-palette-modal.light .command-palette-action-btn{color:#0006}.command-palette-modal.light .command-palette-action-btn:hover{color:#0958d9;background:#0000000f}.command-palette-modal.dark .command-palette-action-btn{color:#ffffff73}.command-palette-modal.dark .command-palette-action-btn:hover{color:#4096ff;background:#ffffff1a}.command-palette-modal.ultra .command-palette-action-btn{color:#ffffff80}.command-palette-modal.ultra .command-palette-action-btn:hover{color:#69b1ff;background:#ffffff26}.command-palette-item.active .command-palette-action-btn{color:inherit;opacity:.8}.command-palette-item.active .command-palette-action-btn:hover{opacity:1}.command-palette-tooltip{z-index:2500!important}.command-palette-empty{text-align:center;padding:36px 16px;font-size:14px}.command-palette-modal.light .command-palette-empty,.command-palette-modal.dark .command-palette-empty,.command-palette-modal.ultra .command-palette-empty{color:#8c8c8c}.command-palette-footer{border-top:1px solid;justify-content:space-between;align-items:center;padding:10px 18px;font-size:11.5px;display:flex}.command-palette-modal.light .command-palette-footer{color:#8c8c8c;background:#fafafa;border-top-color:#00000014}.command-palette-modal.dark .command-palette-footer{color:#8c8c8c;background:#15161af2;border-top-color:#ffffff14}.command-palette-modal.ultra .command-palette-footer{color:#8c8c8c;background:#050507;border-top-color:#ffffff1f}.command-palette-kbd-group{align-items:center;gap:14px;display:flex}.command-palette-kbd{border-radius:4px;justify-content:center;align-items:center;min-width:22px;height:22px;margin-inline-end:4px;padding:0 5px;font-family:inherit;font-size:11.5px;font-weight:600;line-height:1;display:inline-flex}.command-palette-modal.light .command-palette-kbd{color:#595959;background:#fff;border:1px solid #d9d9d9;box-shadow:0 1px 2px #0000000f}.command-palette-modal.dark .command-palette-kbd{color:#d9d9d9;background:#ffffff1a;border:1px solid #ffffff26}.command-palette-modal.ultra .command-palette-kbd{color:#fff;background:#ffffff26;border:1px solid #ffffff40}.sidebar-command-trigger{box-sizing:border-box;cursor:pointer;white-space:nowrap;border-radius:7px;justify-content:space-between;align-items:center;width:calc(100% - 16px);height:36px;margin:8px 8px 4px;padding:0 10px;font-size:13px;transition:all .2s cubic-bezier(.2,0,0,1);display:flex;overflow:hidden}.sidebar-command-left{white-space:nowrap;align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.sidebar-command-trigger .sidebar-command-icon{flex-shrink:0;justify-content:center;align-items:center;width:18px;font-size:15px;display:inline-flex}.sidebar-command-text{text-overflow:ellipsis;white-space:nowrap;opacity:1;max-width:130px;transition:opacity .2s,max-width .2s;overflow:hidden}.sidebar-command-trigger.collapsed{justify-content:center;padding:0}.sidebar-command-trigger.collapsed .sidebar-command-left{justify-content:center;gap:0;width:100%}.sidebar-command-trigger.collapsed .sidebar-command-icon{width:16px;height:16px;margin:0 auto;font-size:16px}.sidebar-command-trigger.collapsed .sidebar-command-text,.sidebar-command-trigger.collapsed .sidebar-command-kbd{display:none}body.light .sidebar-command-trigger{color:#595959;background:#0000000a;border:1px solid #00000014}body.light .sidebar-command-trigger:hover{color:#1f1f1f;background:#00000014;border-color:#00000026}body.dark .sidebar-command-trigger{color:#8c8c8c;background:#ffffff0d;border:1px solid #ffffff14}body.dark .sidebar-command-trigger:hover{color:#fff;background:#ffffff17;border-color:#ffffff2e}.sidebar-command-trigger .sidebar-command-icon{font-size:15px}.sidebar-command-trigger .sidebar-command-kbd{-webkit-user-select:none;user-select:none;border-radius:4px;justify-content:center;align-items:center;gap:2.5px;height:20px;padding:0 5px;display:inline-flex}.sidebar-command-trigger .sidebar-command-kbd .kbd-cmd{opacity:.9;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:10px;line-height:1;display:inline-block}.sidebar-command-trigger .sidebar-command-kbd .kbd-key{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:11px;font-weight:700;line-height:1;display:inline-block}body.light .sidebar-command-trigger .sidebar-command-kbd{color:#595959;background:#0000000f;border:1px solid #0000001f}body.dark .sidebar-command-trigger .sidebar-command-kbd{color:#d9d9d9;background:#ffffff1a;border:1px solid #ffffff26}body.dark .sidebar-command-trigger:hover .sidebar-command-kbd{color:#fff;border-color:#ffffff40}
