body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box}.login-root{width:100vw;min-height:100vh;display:flex;justify-content:center;align-items:center;background:linear-gradient(135deg,#a1c4fd,#c2e9fb);position:relative;overflow:hidden;margin:0;padding:0}.login-root:before{content:"";position:absolute;width:200%;height:200%;background:radial-gradient(circle,#ffffff1a,#fff0 60%);animation:rotate 20s linear infinite}.login-root:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:url("data:image/svg+xml,%3Csvg width='100' height='100' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 18c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm48 25c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm-43-7c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm63 31c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zM34 90c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm56-76c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zM12 86c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm28-65c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm23-11c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-6 60c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm29 22c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zM32 63c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm57-13c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-9-21c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM60 91c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM35 41c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM12 60c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2z' fill='%23ffffff' fill-opacity='0.05' fill-rule='evenodd'/%3E%3C/svg%3E");opacity:.5}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.login-card{width:480px;max-width:96vw;padding:48px 40px 40px;border-radius:24px;box-shadow:0 8px 32px #00000026;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);transition:all .3s ease;position:relative;z-index:1;animation:slideUp .5s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.login-card:hover{transform:translateY(-5px);box-shadow:0 12px 40px #0003}.login-title{font-size:2.4rem;font-weight:700;text-align:center;margin-bottom:40px;color:#2a2a2a;letter-spacing:2px;background:linear-gradient(45deg,#09203f,#537895);-webkit-background-clip:text;-webkit-text-fill-color:transparent;position:relative}.login-title:after{content:"";position:absolute;bottom:-12px;left:50%;transform:translate(-50%);width:60px;height:4px;background:linear-gradient(45deg,#09203f,#537895);border-radius:2px}.login-form .ant-form-item{margin-bottom:24px}.login-form .ant-input-affix-wrapper{border-radius:12px;height:48px;border:1px solid #e0e0e0;transition:all .3s ease;background:#ffffffe6}.login-form .ant-input-affix-wrapper:hover,.login-form .ant-input-affix-wrapper-focused{border-color:#3a7bd5;box-shadow:0 0 0 2px #3a7bd533;background:#fff}.login-form .ant-input-prefix{color:#3a7bd5;margin-right:12px}.login-form .ant-checkbox-wrapper{color:#666}.login-form .ant-checkbox-checked .ant-checkbox-inner{background-color:#3a7bd5;border-color:#3a7bd5}.login-btn{font-size:1.15rem;height:48px;border-radius:12px;font-weight:600;letter-spacing:1px;background:linear-gradient(45deg,#3a7bd5,#3a6073);border:none;transition:all .3s ease;margin-top:8px}.login-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #3a7bd566;background:linear-gradient(45deg,#3a6ab5,#3a5063)}.login-btn:active{transform:translateY(0)}.login-btn .ant-spin{color:#fff}@media (max-width: 600px){.login-card{width:100vw;min-width:0;padding:32px 24px 24px;border-radius:0;box-shadow:none;border:none;background:#fffffffa}.login-title{font-size:2rem;margin-bottom:32px}.login-btn{font-size:1rem;height:44px;border-radius:8px}.login-form .ant-input-affix-wrapper{height:44px;border-radius:8px}}.main-layout{min-height:100vh;height:100%;display:flex}.main-sider{box-shadow:2px 0 8px #00000026;overflow-y:auto}.logo{height:64px;padding:16px;display:flex;align-items:center;background:#001529;overflow:hidden}.logo img{height:32px;margin-right:12px}.logo span{color:#fff;font-size:18px;font-weight:600;white-space:nowrap}.header-content{display:flex;justify-content:space-between;align-items:center;padding:0 24px;height:100%}.trigger-button{font-size:18px;padding:0 12px;cursor:pointer;transition:color .3s}.trigger-button:hover{color:#1890ff}.header-right{display:flex;align-items:center}.user-info{display:flex;align-items:center;cursor:pointer;padding:0 12px;transition:all .3s}.user-info:hover{background:#00000006}.username{margin-left:8px;font-size:14px}.user-role{margin-top:1px;font-size:10px;color:#a9a9a9}@media (max-width: 576px){.main-layout{display:block}.main-sider{position:fixed;left:0;top:0;bottom:0;height:100vh;z-index:1000;width:70vw!important;min-width:180px;max-width:260px}.ant-layout-sider{width:70vw!important;min-width:180px;max-width:260px}.header-content{padding:0 8px;min-height:48px}.logo{height:48px;padding:8px}.logo img{height:24px;margin-right:8px}.logo span{font-size:15px}.username{display:none}.ant-layout-content{margin:8px!important;padding:8px!important;min-width:0}.ant-table{font-size:12px}.ant-table-thead>tr>th,.ant-table-tbody>tr>td{padding:6px!important}.ant-btn{padding:2px 6px;font-size:12px;border-radius:4px}.ant-form-item{margin-bottom:8px}.ant-input{font-size:13px;border-radius:4px}}html,body,#root{width:100%;height:100vh;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}.logo.cloudflare:hover{filter:drop-shadow(0 0 2em #f6821faa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}/*!* 响应式布局调整 *!*/@media (max-width: 576px){.ant-table{font-size:12px}.ant-table-thead>tr>th,.ant-table-tbody>tr>td{padding:8px!important}.ant-btn{padding:4px 8px;font-size:12px}.ant-form-item{margin-bottom:12px}.ant-input{font-size:14px}}
