.login-shell{background:var(--app-bg);grid-template-columns:minmax(0,1.25fr) minmax(380px,1fr);min-height:100vh;display:grid}.login-brand{color:#eef3ff;background:radial-gradient(120% 90% at 12% 6%, color-mix(in srgb, var(--app-primary) 48%, #0b1020) 0%, transparent 55%), radial-gradient(100% 100% at 100% 100%, color-mix(in srgb, var(--app-primary) 34%, #070b16) 0%, transparent 62%), color-mix(in srgb, var(--app-primary) 74%, #060a13);flex-direction:column;justify-content:space-between;padding:clamp(28px,4.5vw,60px);display:flex;position:relative;overflow:hidden}.login-brand-grid{background-image:linear-gradient(#ffffff0e 1px,#0000 1px),linear-gradient(90deg,#ffffff0e 1px,#0000 1px);background-size:44px 44px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(90% 90% at 50% 38%,#000 18%,#0000 78%);mask-image:radial-gradient(90% 90% at 50% 38%,#000 18%,#0000 78%)}.login-brand-head{z-index:1;align-items:center;gap:14px;display:flex;position:relative}.login-brand-logo{width:36px;height:36px;filter:drop-shadow(0 0 14px color-mix(in srgb, var(--app-primary) 55%, transparent));flex-shrink:0}.login-brand-name{letter-spacing:-.03em;margin:0;font-size:clamp(30px,3.6vw,44px);font-weight:800;line-height:1.1}.login-brand-inner{z-index:1;flex-direction:column;flex:1;justify-content:center;max-width:480px;padding:48px 0;display:flex;position:relative}.login-emblem{aspect-ratio:1;width:min(230px,32vw);filter:drop-shadow(0 0 38px color-mix(in srgb, var(--app-primary) 42%, transparent));margin-bottom:30px}.login-emblem svg{width:100%;height:100%;display:block}.login-emblem-orbit{transform-origin:100px 100px;animation:48s linear infinite login-orbit}@keyframes login-orbit{to{transform:rotate(360deg)}}.login-brand-eyebrow{letter-spacing:.26em;text-transform:uppercase;color:#eef3ff94;margin:0 0 10px;font-size:12px;font-weight:600}.login-brand-tag{color:#eef3ffbd;margin:0 0 34px;font-size:15px;line-height:1.6}.login-brand-points{color:#eef3ffd6;flex-direction:column;gap:13px;margin:0;padding:0;font-size:14px;list-style:none;display:flex}.login-brand-points .dot{background:color-mix(in srgb, var(--app-primary) 65%, #fff);width:6px;height:6px;box-shadow:0 0 9px color-mix(in srgb, var(--app-primary) 75%, transparent);vertical-align:2px;border-radius:50%;margin-right:11px;display:inline-block}.login-brand-foot{z-index:1;letter-spacing:.1em;color:#eef3ff6b;margin:0;font-size:12px;position:relative}.login-main{justify-content:center;align-items:center;padding:32px;display:flex}.login-form-wrap{width:100%;max-width:400px;animation:.5s ease-out both login-rise}.login-eyebrow{letter-spacing:.2em;text-transform:uppercase;color:var(--app-text-secondary);margin:0 0 14px;font-size:12px;font-weight:600}.login-title{letter-spacing:-.02em;color:var(--app-text);margin:0 0 6px;font-size:30px;font-weight:800}.login-sub{color:var(--app-text-secondary);margin:0 0 30px;font-size:14px}.login-input{border-radius:var(--app-radius)}.login-captcha{cursor:pointer;border:1px solid var(--app-border);border-radius:var(--app-radius);background:var(--app-surface);flex-shrink:0;justify-content:center;align-items:center;width:132px;height:40px;display:flex;overflow:hidden}.login-captcha img{object-fit:cover;width:100%;height:100%}.login-row{justify-content:space-between;align-items:center;margin:2px 0 18px;display:flex}.login-submit{border-radius:var(--app-radius);height:48px;box-shadow:0 10px 26px color-mix(in srgb, var(--app-primary) 26%, transparent);font-size:16px;transition:transform .15s,box-shadow .15s}.login-submit:hover{transform:translateY(-1px)}.login-foot{text-align:center;color:var(--app-text-secondary);margin:28px 0 0;font-size:12px}@keyframes login-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media (width<=900px){.login-shell{grid-template-columns:1fr}.login-brand{padding:20px 24px}.login-brand-inner,.login-brand-foot,.login-brand-eyebrow{display:none}.login-brand-name{font-size:22px}.login-main{padding:44px 20px}}@media (prefers-reduced-motion:reduce){.login-emblem-orbit,.login-form-wrap{animation:none}}:root{--brand-color:#2ba8a2;--app-primary:#2ba8a2;--app-secondary:#27ae60;--app-success:#27ae60;--app-error:#e74c3c;--app-warning:#d9822b;--app-bg:#f1f8f7;--app-header-bg:#fff;--app-sider-bg:#fff;--app-sider-text:#000000e0;--app-text:#22333b;--app-text-secondary:#22333b9e;--app-surface:#fff;--app-border:#e3eceb;--app-menu-hover:#e4f4f2;--app-font:"Inter", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, sans-serif;--app-radius:8px;--app-radius-sm:4px;--app-radius-lg:12px;--app-radius-pill:999px;font-family:var(--app-font);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;line-height:1.5}h1,h2,h3,h4,h5,.ant-typography h1,.ant-typography h2,.ant-typography h3,.ant-typography h4,.ant-typography h5,.ant-card-head-title,.ant-modal-title,.ant-drawer-title,.app-sider-brand-text{letter-spacing:-.02em;font-family:General Sans,DM Sans,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--app-bg);color:var(--app-text);font-size:14px;transition:background-color .2s,color .2s}a{color:var(--app-primary);transition:color .15s}a:hover{color:var(--app-primary);opacity:.85}:focus-visible{outline:3px solid color-mix(in srgb, var(--app-primary) 30%, transparent);outline-offset:2px;border-radius:4px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#80868b47;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#80868b73}::-webkit-scrollbar-corner{background:0 0}.ant-btn,.ant-menu-item,.ant-menu-submenu-title,.ant-card,.ant-table-row,.ant-tabs-tab,.ant-dropdown-menu-item,.ant-select-item,.ant-picker,.ant-input,.ant-tag,.ant-radio-button-wrapper{transition:background-color .18s,border-color .18s,color .18s,box-shadow .18s,opacity .18s,transform .2s cubic-bezier(.22,1,.36,1)}.ant-card:not(.ant-card-bordered):hover{transform:translateY(-2px);box-shadow:0 8px 30px #0a0a0a14}.ant-btn:not(.ant-btn-text):not(.ant-btn-link):hover{box-shadow:0 4px 12px color-mix(in srgb, var(--app-primary) 30%, transparent);transform:translateY(-1px)}.ant-table-thead>tr>th{font-weight:600}.ant-table-tbody>tr{cursor:default}.ant-table,.ant-statistic-content,.ant-tabs-content{font-variant-numeric:tabular-nums}.ant-form-item-has-error .ant-input,.ant-form-item-has-error .ant-input-affix-wrapper,.ant-form-item-has-error .ant-input-number,.ant-form-item-has-error .ant-input-number-input,.ant-form-item-has-error .ant-picker,.ant-form-item-has-error .ant-select-selector,.ant-form-item-has-error .ant-cascader-picker,.ant-form-item-has-error .ant-tree-select-selector,.ant-form-item-has-error .ant-input-status-error,.ant-input-status-error{border-color:var(--app-error)!important}.ant-form-item-has-error .ant-select-selector,.ant-form-item-has-error .ant-picker,.ant-form-item-has-error .ant-input-number,.ant-form-item-has-error .ant-input-affix-wrapper{box-shadow:none}.app-tabs-card{background:var(--app-surface,#fff);border:1px solid var(--app-border,#f0f0f0);border-radius:var(--app-radius,8px);flex-direction:column;flex:1;min-height:0;margin:8px 16px 16px;display:flex;overflow:hidden}.app-tabs-card>.ant-tabs{flex-direction:column;flex:none;display:flex;margin:0!important}.app-tabs-card>.ant-tabs>.ant-tabs-nav{border-bottom:1px solid var(--app-border,#f0f0f0);padding:6px 12px 0;margin:0!important}.app-tabs-card>.ant-tabs>.ant-tabs-content-holder{display:none}.app-tabs-content{flex:1;min-height:0;padding:16px;overflow:auto}.app-main-region{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.app-content{margin:16px}.app-back-bar{padding:8px 16px 0}.app-header{flex-shrink:0}.app-sider-menu{scrollbar-width:none;-ms-overflow-style:none}.app-sider-menu::-webkit-scrollbar{display:none}.app-back-to-top{z-index:100;border:1px solid var(--app-border);background:var(--app-surface);width:40px;height:40px;color:var(--app-text);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:16px;transition:background-color .18s,color .18s,transform .18s,box-shadow .18s;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 4px 16px #10182824}.app-back-to-top:hover{background:var(--app-primary);color:#fff;transform:translateY(-2px)}.tabs-bar-visible-close .ant-tabs-tab .ant-tabs-tab-remove{opacity:1!important;visibility:visible!important;width:auto!important;margin-inline-start:8px!important;display:inline-flex!important}.dict-selected-row>td{background:#1677ff14!important}@media (width<=1599px){.app-tabs-card{margin:6px 12px 12px}.app-tabs-content{padding:12px}.app-content{margin:12px}.app-tabs-card>.ant-tabs>.ant-tabs-nav{padding:4px 10px 0}}@media (width<=768px){.app-header-user-text{display:none}.app-tabs-card{margin:4px 8px 8px}.app-tabs-content{padding:8px}.app-content{margin:8px}.app-tabs-card>.ant-tabs>.ant-tabs-nav{padding:2px 8px 0}.app-back-to-top{width:36px;height:36px;font-size:14px;bottom:12px;right:12px}.app-back-bar{padding:4px 8px 0}}html.dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html.dark .ant-table-thead>tr>th{border-bottom-color:#ffffff1f!important}html.dark ::-webkit-scrollbar-thumb{background:#ffffff38}html.dark ::-webkit-scrollbar-thumb:hover{background:#ffffff5c}[data-theme=command] .app-header,[data-theme=command] .app-header .ant-btn{color:var(--app-sider-text)}[data-theme=command] .app-header .ant-btn:hover{color:#fff}[data-theme=command] .ant-layout-sider .ant-menu-light .ant-menu-item,[data-theme=command] .app-header .ant-menu-light .ant-menu-item{color:#ffffffb8}[data-theme=command] .ant-layout-sider .ant-menu-light .ant-menu-item:hover,[data-theme=command] .app-header .ant-menu-light .ant-menu-item:hover,[data-theme=command] .ant-layout-sider .ant-menu-light .ant-menu-item-active,[data-theme=command] .app-header .ant-menu-light .ant-menu-item-active,[data-theme=command] .ant-layout-sider .ant-menu-light .ant-menu-item-selected,[data-theme=command] .app-header .ant-menu-light .ant-menu-item-selected{color:#fff}[data-theme=command] .ant-layout-sider .ant-btn{color:var(--app-sider-text)}[data-theme=command] .ant-layout-sider .ant-btn:hover{color:#fff}[data-theme=command] .ant-layout-sider div[style*="border-top: 1px solid var(--app-border)"]{border-top-color:#ffffff1a!important}[data-theme=command] .ant-layout-sider-trigger{color:#ffffffd9;background:#ffffff14}
