:root,[data-theme=light]{--qm-primary: #4f46e5;--qm-primary-light: #6366f1;--qm-primary-dark: #4338ca;--qm-primary-bg: #eef2ff;--qm-primary-bg-hover: #e0e7ff;--qm-accent-cyan: #13c2c2;--qm-accent-purple: #722ed1;--qm-accent-success: #52c41a;--qm-accent-warning: #faad14;--qm-accent-error: #ff4d4f;--qm-accent-gold: #d4a853;--qm-gradient-primary: linear-gradient(135deg, #6366f1 0%, #4f46e5 100%);--qm-sidebar-bg: #1e293b;--qm-sidebar-bg-hover: rgba(255, 255, 255, .06);--qm-sidebar-bg-active: #4f46e5;--qm-sidebar-text: #cbd5e1;--qm-sidebar-text-hover: #ffffff;--qm-sidebar-text-active: #ffffff;--qm-sidebar-border-active: #4f46e5;--qm-sidebar-logo-bg: #1e293b;--qm-sidebar-divider: rgba(255, 255, 255, .08);--qm-sidebar-width: 240px;--qm-sidebar-collapsed-width: 64px;--qm-sidebar-shadow: 2px 0 8px rgba(0, 0, 0, .15);--qm-header-bg: #ffffff;--qm-header-height: 56px;--qm-header-border: #e2e8f0;--qm-header-text: #1e293b;--qm-header-text-secondary: #64748b;--qm-header-shadow: 0 1px 4px rgba(15, 23, 42, .04);--qm-tabbar-bg: #ffffff;--qm-tabbar-height: 40px;--qm-tabbar-border: #e2e8f0;--qm-tabbar-text: #64748b;--qm-tabbar-text-active: #ffffff;--qm-tabbar-active-bar: #4f46e5;--qm-tabbar-active-bg: #4f46e5;--qm-content-bg: #f1f5f9;--qm-card-bg: #ffffff;--qm-card-border: #e2e8f0;--qm-card-radius: 12px;--qm-card-shadow: 0 1px 3px rgba(15, 23, 42, .04), 0 1px 8px rgba(15, 23, 42, .04);--qm-text-primary: #1e293b;--qm-text-secondary: #475569;--qm-text-tertiary: #94a3b8;--qm-shadow-sm: 0 1px 2px rgba(15, 23, 42, .04);--qm-shadow-md: 0 4px 12px rgba(15, 23, 42, .08);--qm-shadow-lg: 0 8px 24px rgba(15, 23, 42, .12);--qm-spacing-xs: 4px;--qm-spacing-sm: 8px;--qm-spacing-md: 16px;--qm-spacing-lg: 24px;--qm-spacing-xl: 32px;--qm-radius-sm: 4px;--qm-radius-md: 8px;--qm-radius-lg: 12px;--qm-transition-fast: .15s ease;--qm-transition-normal: .2s ease;--qm-transition-slow: .3s cubic-bezier(.4, 0, .2, 1)}[data-theme=dark]{--qm-primary: #6366f1;--qm-primary-light: #818cf8;--qm-primary-dark: #4f46e5;--qm-primary-bg: rgba(99, 102, 241, .15);--qm-primary-bg-hover: rgba(99, 102, 241, .25);--qm-accent-cyan: #36cfc9;--qm-accent-purple: #9254de;--qm-accent-success: #73d13d;--qm-accent-warning: #ffc53d;--qm-accent-error: #ff7875;--qm-accent-gold: #e5c27a;--qm-gradient-primary: linear-gradient(135deg, #818cf8 0%, #6366f1 100%);--qm-sidebar-bg: #0f172a;--qm-sidebar-bg-hover: rgba(99, 102, 241, .08);--qm-sidebar-bg-active: #4f46e5;--qm-sidebar-text: #94a3b8;--qm-sidebar-text-hover: #ffffff;--qm-sidebar-text-active: #ffffff;--qm-sidebar-border-active: #4f46e5;--qm-sidebar-logo-bg: #0f172a;--qm-sidebar-divider: rgba(255, 255, 255, .06);--qm-sidebar-shadow: 2px 0 8px rgba(0, 0, 0, .3);--qm-header-bg: #1e293b;--qm-header-border: #334155;--qm-header-text: #e6eaf0;--qm-header-text-secondary: #94a3b8;--qm-header-shadow: 0 1px 4px rgba(0, 0, 0, .3);--qm-tabbar-bg: #1e293b;--qm-tabbar-border: #334155;--qm-tabbar-text: #94a3b8;--qm-tabbar-text-active: #ffffff;--qm-tabbar-active-bar: #6366f1;--qm-tabbar-active-bg: #4f46e5;--qm-content-bg: #0f172a;--qm-card-bg: #1e293b;--qm-card-border: #334155;--qm-card-shadow: 0 1px 3px rgba(0, 0, 0, .2), 0 1px 8px rgba(0, 0, 0, .15);--qm-text-primary: #e6eaf0;--qm-text-secondary: #a8b0bd;--qm-text-tertiary: #6b7280;--qm-shadow-sm: 0 1px 2px rgba(0, 0, 0, .2);--qm-shadow-md: 0 4px 12px rgba(0, 0, 0, .3);--qm-shadow-lg: 0 8px 24px rgba(0, 0, 0, .4)}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;background-color:var(--qm-content-bg);color:var(--qm-text-primary);transition:background-color var(--qm-transition-normal),color var(--qm-transition-normal)}#root,.qm-layout{min-height:100vh}.qm-sider .ant-layout-sider{background:var(--qm-sidebar-bg)!important}@media (max-width: 575px){.ant-card{border-radius:8px}.ant-card-body{padding:12px 16px!important}.ant-table{font-size:12px}.ant-table-cell{padding:8px 6px!important}.ant-space-horizontal{gap:8px!important}.ant-form-item{margin-bottom:12px!important}.ant-statistic-content{font-size:24px!important}.ant-input-search,.ant-select{width:100%!important}}.qm-theme-toggle{width:36px!important;height:36px!important;border-radius:8px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;transition:all var(--qm-transition-fast)!important;color:var(--qm-header-text-secondary)!important}.qm-theme-toggle:hover{color:var(--qm-primary)!important;background:var(--qm-primary-bg)!important}.qm-theme-toggle .anticon{font-size:16px!important;transition:transform var(--qm-transition-normal)!important}.qm-theme-toggle:hover .anticon{transform:rotate(15deg) scale(1.1)}[data-theme=dark] .qm-theme-toggle:hover .anticon{color:#fbbf24!important;filter:drop-shadow(0 0 6px rgba(251,191,36,.5))}.qm-login-container{min-height:100vh;display:flex;background:var(--qm-content-bg)}.qm-login-brand{flex:1;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.qm-login-brand-bg{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,#4338ca,#4f46e5 40%,#6366f1)}[data-theme=dark] .qm-login-brand-bg{background:linear-gradient(135deg,#1e1b4b,#312e81 40%,#4338ca)}.qm-login-brand-bg:before{content:"";position:absolute;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.15) 0%,transparent 70%);top:-100px;right:-100px}.qm-login-brand-bg:after{content:"";position:absolute;width:400px;height:400px;border-radius:50%;background:radial-gradient(circle,rgba(99,102,241,.3) 0%,transparent 70%);bottom:-80px;left:-80px}[data-theme=dark] .qm-login-brand-bg:before{background:radial-gradient(circle,rgba(99,102,241,.12) 0%,transparent 70%)}[data-theme=dark] .qm-login-brand-bg:after{background:radial-gradient(circle,rgba(99,102,241,.1) 0%,transparent 70%)}.qm-login-brand-content{position:relative;z-index:1;color:#fff;padding:60px;max-width:520px}.qm-login-logo{display:flex;align-items:center;gap:16px;margin-bottom:60px}.qm-login-logo-icon{width:56px;height:56px;background:rgba(255,255,255,.2);backdrop-filter:blur(10px);border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700;color:#fff;border:1px solid rgba(255,255,255,.3)}[data-theme=dark] .qm-login-logo-icon{background:var(--qm-gradient-primary);border:none;box-shadow:0 4px 16px rgba(79,70,229,.5)}.qm-login-logo-text h1{font-size:24px;font-weight:700;margin:0;color:#fff}.qm-login-logo-text p{font-size:13px;margin:4px 0 0;opacity:.7;letter-spacing:1px}.qm-login-slogan{margin-bottom:48px}.qm-login-slogan h2{font-size:36px;font-weight:700;margin:0 0 12px;color:#fff;line-height:1.3}.qm-login-slogan p{font-size:16px;margin:0;opacity:.8}.qm-login-features{display:flex;flex-direction:column;gap:16px}.qm-login-feature-item{display:flex;align-items:center;gap:12px;font-size:14px;opacity:.9}.qm-login-feature-item .anticon{font-size:18px;opacity:.9}.qm-login-form-wrapper{width:480px;display:flex;align-items:center;justify-content:center;padding:40px}.qm-login-form-card{width:100%;max-width:360px}.qm-login-mobile-header{text-align:center;margin-bottom:32px}.qm-login-logo-icon-sm{width:48px;height:48px;background:var(--qm-gradient-primary);border-radius:12px;display:inline-flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;color:#fff;margin-bottom:12px;box-shadow:0 4px 12px rgba(79,70,229,.35)}[data-theme=dark] .qm-login-logo-icon-sm{box-shadow:0 4px 16px rgba(79,70,229,.5)}.qm-login-mobile-header h2{font-size:20px;font-weight:600;margin:0;color:var(--qm-text-primary)}.qm-login-title{font-size:24px;font-weight:700;color:var(--qm-text-primary);margin:0 0 8px}.qm-login-subtitle{font-size:14px;color:var(--qm-text-tertiary);margin:0 0 32px}.qm-login-form .ant-input,.qm-login-form .ant-input-affix-wrapper{height:44px;border-radius:10px;transition:all .2s}.qm-login-btn{height:44px;border-radius:10px;font-size:15px;font-weight:500;background:var(--qm-gradient-primary)!important;border:none!important;box-shadow:0 2px 8px rgba(79,70,229,.3);transition:all .2s!important}[data-theme=dark] .qm-login-btn{box-shadow:0 2px 12px rgba(79,70,229,.45)}.qm-login-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(79,70,229,.4)!important}[data-theme=dark] .qm-login-btn:hover{box-shadow:0 4px 16px rgba(79,70,229,.55)!important}.qm-login-btn:active{transform:translateY(0)}.qm-login-footer{margin-top:40px;text-align:center}.qm-login-footer p{font-size:12px;color:var(--qm-text-tertiary);margin:0}@media (max-width: 768px){.qm-login-container{padding:24px;justify-content:center;align-items:center;background:var(--qm-content-bg)}.qm-login-form-wrapper{width:100%;padding:0}.qm-login-title{font-size:20px}}.qm-entry-container{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;background:var(--qm-content-bg);padding:24px}.qm-entry-header{position:fixed;top:16px;right:24px;z-index:100}.qm-entry-content{text-align:center}.qm-entry-title{margin-bottom:8px;font-size:28px;font-weight:700;color:var(--qm-text-primary)}.qm-entry-subtitle{margin-bottom:40px;font-size:14px;color:var(--qm-text-tertiary)}.qm-entry-cards{display:flex;gap:24px;flex-wrap:wrap;justify-content:center}.qm-entry-card{width:320px;border-radius:12px;cursor:pointer;transition:all var(--qm-transition-slow)!important;border:1px solid var(--qm-card-border)!important}.qm-entry-card:hover{transform:translateY(-4px);border-color:var(--card-accent)!important;box-shadow:0 8px 24px rgba(22,119,255,.12)}[data-theme=dark] .qm-entry-card:hover{box-shadow:0 8px 24px rgba(0,0,0,.4)}.qm-entry-card-icon{width:72px;height:72px;border-radius:16px;background:color-mix(in srgb,var(--card-accent) 8%,transparent);display:flex;align-items:center;justify-content:center;margin:0 auto 24px;font-size:36px;color:var(--card-accent);transition:transform var(--qm-transition-normal)}.qm-entry-card:hover .qm-entry-card-icon{transform:scale(1.08)}.qm-entry-card-title{font-size:20px;font-weight:600;color:var(--qm-text-primary);margin-bottom:12px}.qm-entry-card-desc{font-size:14px;color:var(--qm-text-tertiary);line-height:1.6;margin:0}@media (max-width: 575px){.qm-entry-title{font-size:22px}.qm-entry-subtitle{margin-bottom:28px}.qm-entry-card{width:100%;max-width:320px}.qm-entry-card-icon{width:60px;height:60px;font-size:28px;margin-bottom:18px}.qm-entry-card-title{font-size:18px;margin-bottom:8px}}.qm-referrer-login{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;background:var(--qm-content-bg);padding:24px}.qm-referrer-login-header{position:fixed;top:16px;left:24px;right:24px;display:flex;justify-content:space-between;align-items:center;z-index:100}.qm-referrer-login-card{width:100%;max-width:400px;background:var(--qm-card-bg);border-radius:12px;padding:36px 32px;box-shadow:var(--qm-card-shadow);border:1px solid var(--qm-card-border)}.qm-referrer-login-title{font-size:22px;font-weight:700;color:var(--qm-text-primary);margin:0 0 8px}.qm-referrer-login-subtitle{font-size:14px;color:var(--qm-text-tertiary);margin:0 0 28px}.qm-referrer-login-form .ant-input,.qm-referrer-login-form .ant-input-affix-wrapper{height:44px;border-radius:10px;transition:all .2s}.qm-referrer-login-btn{height:44px;border-radius:10px;font-size:15px;font-weight:500;background:var(--qm-gradient-primary)!important;border:none!important;box-shadow:0 2px 8px rgba(22,119,255,.3);transition:all .2s!important}[data-theme=dark] .qm-referrer-login-btn{box-shadow:0 2px 12px rgba(64,150,255,.4)}.qm-referrer-login-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(22,119,255,.4)!important}[data-theme=dark] .qm-referrer-login-btn:hover{box-shadow:0 4px 16px rgba(64,150,255,.5)!important}.qm-referrer-login-btn:active{transform:translateY(0)}.qm-sidebar-menu{border-right:none!important;background:transparent!important;padding:8px 0!important}.qm-sidebar-menu .ant-menu-submenu-title{height:44px!important;line-height:44px!important;font-size:13px!important;font-weight:600!important;color:var(--qm-sidebar-text)!important;margin:2px 10px!important;border-radius:8px!important;transition:all var(--qm-transition-fast)!important}.qm-sidebar-menu .ant-menu-submenu-title:hover{color:var(--qm-sidebar-text-hover)!important;background:var(--qm-sidebar-bg-hover)!important}.qm-sidebar-menu .ant-menu-submenu-open>.ant-menu-submenu-title{color:var(--qm-sidebar-text-hover)!important}.qm-sidebar-menu .ant-menu-submenu-title .anticon{font-size:16px!important}.qm-sidebar-menu .ant-menu-submenu-arrow{color:rgba(255,255,255,.45)!important;font-size:10px!important}.qm-sidebar-menu .ant-menu-submenu-open .ant-menu-submenu-arrow{color:#fff!important}.qm-sidebar-menu .ant-menu-item{height:38px!important;line-height:38px!important;font-size:13px!important;font-weight:400!important;margin:2px 14px!important;border-radius:8px!important;color:var(--qm-sidebar-text)!important;transition:all var(--qm-transition-fast)!important;width:calc(100% - 28px)!important;padding-left:16px!important;padding-right:12px!important}.qm-sidebar-menu .ant-menu-item:hover{color:var(--qm-sidebar-text-hover)!important;background:var(--qm-sidebar-bg-hover)!important}.qm-sidebar-menu .ant-menu-item-selected{color:var(--qm-sidebar-text-active)!important;background:var(--qm-sidebar-bg-active)!important;font-weight:600!important}.qm-sidebar-menu .ant-menu-sub{background:transparent!important}.qm-sidebar-menu .ant-menu-sub .ant-menu-item{padding-left:36px!important}.qm-sidebar-menu.ant-menu-inline-collapsed .ant-menu-item{margin:2px 8px!important;width:calc(100% - 16px)!important;padding-left:0!important;padding-right:0!important;text-align:center}.qm-sidebar-menu::-webkit-scrollbar{width:4px}.qm-sidebar-menu::-webkit-scrollbar-track{background:transparent}.qm-sidebar-menu::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:2px}.qm-sidebar-menu::-webkit-scrollbar-thumb:hover{background:#9ca3af}[data-theme=dark] .qm-sidebar-menu::-webkit-scrollbar-thumb{background:#374151}[data-theme=dark] .qm-sidebar-menu::-webkit-scrollbar-thumb:hover{background:#4b5563}.qm-sidebar-logo{height:56px;display:flex;align-items:center;justify-content:center;background:var(--qm-sidebar-logo-bg);border-bottom:1px solid var(--qm-sidebar-divider);color:#fff;font-size:18px;font-weight:700;letter-spacing:.5px;transition:all var(--qm-transition-normal);overflow:hidden;white-space:nowrap;position:relative}.qm-sidebar-logo .logo-icon{width:32px;height:32px;background:var(--qm-gradient-primary);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;color:#fff;margin-right:10px;flex-shrink:0;box-shadow:0 2px 8px rgba(79,70,229,.4)}.qm-sidebar-logo.collapsed{font-size:14px}.qm-sidebar-logo.collapsed .logo-icon{margin-right:0}.qm-tabbar-wrap{background:var(--qm-tabbar-bg);border-bottom:1px solid var(--qm-tabbar-border);padding:0 12px;height:var(--qm-tabbar-height);display:flex;align-items:center}.qm-tabbar-wrap .ant-tabs{margin-bottom:0;width:100%}.qm-tabbar-wrap .ant-tabs-nav{margin-bottom:0!important;min-height:var(--qm-tabbar-height)!important}.qm-tabbar-wrap .ant-tabs-tab{height:26px;line-height:24px;padding:0 10px!important;margin:0 8px 0 0!important;border:1px solid var(--qm-tabbar-border)!important;border-radius:4px!important;background:var(--qm-tabbar-bg)!important;font-size:12px!important;color:var(--qm-tabbar-text)!important;transition:all var(--qm-transition-fast)!important}.qm-tabbar-wrap .ant-tabs-tab:hover{color:var(--qm-primary)!important;border-color:var(--qm-primary)!important}.qm-tabbar-wrap .ant-tabs-tab-active{background:var(--qm-tabbar-active-bg)!important;border-color:var(--qm-tabbar-active-bg)!important;font-weight:500!important}.qm-tabbar-wrap .ant-tabs-tab-active .ant-tabs-tab-btn,.qm-tabbar-wrap .ant-tabs-tab-active .ant-tabs-tab-btn span{color:var(--qm-tabbar-text-active)!important}.qm-tabbar-wrap .ant-tabs-tab .ant-tabs-tab-remove{margin-left:6px;font-size:10px;color:var(--qm-tabbar-text)}.qm-tabbar-wrap .ant-tabs-tab .ant-tabs-tab-remove:hover{color:var(--qm-accent-error)}.qm-tabbar-wrap .ant-tabs-tab-active .ant-tabs-tab-remove{color:rgba(255,255,255,.75)}.qm-tabbar-wrap .ant-tabs-tab-active .ant-tabs-tab-remove:hover{color:#fff}.qm-tabbar-wrap .ant-tabs-card .ant-tabs-content-holder{border:none}.qm-tabbar-wrap .ant-tabs-nav-wrap::-webkit-scrollbar{height:0}
