:root{--primary-color:#1890ff;--primary-light:#e6f7ff;--primary-dark:#096dd9;--accent-color:#fa8c16;--accent-light:#fff7e6;--accent-dark:#d46b08;--background-color:#f5f7fa;--surface-color:#fff;--border-color:#e8e8e8;--text-primary:#262626;--text-secondary:#595959;--text-tertiary:#8c8c8c;--text-quaternary:#bfbfbf;--success-color:#52c41a;--warning-color:#faad14;--error-color:#f5222d;--info-color:#1890ff;--shadow-sm:0 2px 8px #00000014;--shadow-md:0 4px 16px #0000001f;--shadow-lg:0 8px 24px #00000029;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--border-radius-sm:4px;--border-radius-md:8px;--border-radius-lg:12px;--border-radius-full:9999px;--font-size-xs:12px;--font-size-sm:14px;--font-size-md:16px;--font-size-lg:18px;--font-size-xl:20px;--font-size-xxl:24px;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--transition-fast:.15s ease;--transition-normal:.3s ease;--transition-slow:.5s ease}@media (prefers-color-scheme:dark){:root{--background-color:#141414;--surface-color:#1f1f1f;--border-color:#303030;--text-primary:#f5f5f5;--text-secondary:#d9d9d9;--text-tertiary:#a3a3a3;--text-quaternary:#737373}}:root{--primary-gradient:linear-gradient(135deg, #667eea 0%, #764ba2 100%);--primary-color:#667eea;--primary-dark:#5a6fd6;--secondary-color:#764ba2;--accent-color:#f093fb;--bg-dark:#0c0e1a;--bg-card:#fffffff2;--bg-glass:#ffffff14;--bg-glass-light:#ffffff1f;--border-glass:#ffffff26;--text-primary:#1a1c2e;--text-secondary:#6b7280;--text-muted:#9ca3af;--shadow-sm:0 2px 8px #0000000f;--shadow-md:0 4px 16px #00000014;--shadow-lg:0 8px 32px #0000001f;--shadow-glow:0 0 20px #667eea4d;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--transition-fast:.2s ease;--transition-normal:.3s ease;--transition-slow:.5s ease;--color-red:#f56c6c;--color-yellow:#e6a23c;--color-green:#67c23a;--color-blue:#409eff}*{box-sizing:border-box;margin:0;padding:0}html,body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;line-height:1.6;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%)!important}#app{min-height:100vh}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#667eea4d;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#667eea80}.el-card{overflow:hidden;border-radius:var(--radius-lg)!important;box-shadow:var(--shadow-md)!important;transition:transform var(--transition-normal), box-shadow var(--transition-normal)!important;border:none!important}.el-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)!important}.el-card__header{background:linear-gradient(135deg,#fafbfc 0%,#f5f7fa 100%);border-bottom:1px solid #f0f0f0!important;padding:16px 20px!important}.el-card__body{padding:20px!important}.el-button{letter-spacing:.5px;border-radius:var(--radius-sm)!important;transition:all var(--transition-fast)!important;font-weight:500!important}.el-button--primary{background:var(--primary-gradient)!important;border:none!important;box-shadow:0 2px 8px #667eea4d!important}.el-button--primary:hover{transform:translateY(-1px);box-shadow:0 4px 16px #667eea66!important}.el-button--primary:active{transform:translateY(0)}.el-button--success{box-shadow:0 2px 8px #67c23a4d!important}.el-button--success:hover{transform:translateY(-1px);box-shadow:0 4px 16px #67c23a66!important}.el-button--warning{box-shadow:0 2px 8px #e6a23c4d!important}.el-button--warning:hover{transform:translateY(-1px);box-shadow:0 4px 16px #e6a23c66!important}.el-button--danger{box-shadow:0 2px 8px #f56c6c4d!important}.el-button--danger:hover{transform:translateY(-1px);box-shadow:0 4px 16px #f56c6c66!important}.el-table{overflow:hidden;border-radius:var(--radius-md)!important}.el-table th.el-table__cell{color:var(--text-primary)!important;background:linear-gradient(135deg,#f8f9ff 0%,#f0f2ff 100%)!important;font-size:13px!important;font-weight:600!important}.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background:#fafbfe!important}.el-table .el-table__body tr:hover>td.el-table__cell{background:#f0f3ff!important}.el-tag{letter-spacing:.3px;border-radius:6px!important;font-weight:500!important}.el-dialog{overflow:hidden;border-radius:var(--radius-xl)!important;box-shadow:0 20px 60px #00000026!important}.el-dialog__header{background:linear-gradient(135deg,#f8f9ff 0%,#f0f2ff 100%);border-bottom:1px solid #eee!important;padding:20px 24px!important}.el-dialog__title{color:var(--text-primary)!important;font-size:16px!important;font-weight:600!important}.el-dialog__body{padding:24px!important}.el-input__wrapper{border-radius:var(--radius-sm)!important;transition:all var(--transition-fast)!important;box-shadow:inset 0 0 0 1px #dcdfe6!important}.el-input__wrapper:hover{box-shadow:inset 0 0 0 1px #c0c4cc!important}.el-input__wrapper.is-focus,.el-select .el-input.is-focus .el-input__wrapper{box-shadow:0 0 0 1px var(--primary-color) inset, 0 0 0 3px #667eea26!important}.el-progress-bar__inner{border-radius:10px!important;transition:width .8s!important}.el-descriptions{--el-descriptions-item-bordered-label-background:#f8f9ff}.el-descriptions.is-bordered .el-descriptions__body{border-radius:var(--radius-md);overflow:hidden}.el-steps--vertical .el-step__title{font-weight:500!important}.el-alert{border-radius:var(--radius-sm)!important}.el-empty__description p{color:var(--text-muted)!important}.fade-enter-active,.fade-leave-active{transition:opacity .3s}.fade-enter-from,.fade-leave-to{opacity:0}.slide-up-enter-active,.slide-up-leave-active{transition:all .3s}.slide-up-enter-from{opacity:0;transform:translateY(20px)}.slide-up-leave-to{opacity:0;transform:translateY(-20px)}.scale-enter-active,.scale-leave-active{transition:all .3s}.scale-enter-from,.scale-leave-to{opacity:0;transform:scale(.95)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-fade-in-up{animation:.6s ease-out both fadeInUp}.animate-fade-in{animation:.4s ease-out both fadeIn}.animate-slide-in-left{animation:.5s ease-out both slideInLeft}.hover-lift:hover{transform:translateY(-2px)!important}.glass-effect{-webkit-backdrop-filter:blur(12px);background:#ffffffb3;border:1px solid #ffffff4d}.gradient-text{background:var(--primary-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.glow-effect{box-shadow:var(--shadow-glow)}:root{--harmony-primary:#2979ff;--harmony-primary-light:#4a90e2;--harmony-primary-dark:#1e5bbf;--harmony-primary-gradient:linear-gradient(135deg, #2979ff, #4a90e2);--harmony-gray-primary:#333;--harmony-gray-secondary:#666;--harmony-gray-tertiary:#999;--harmony-success:#52c41a;--harmony-warning:#faad14;--harmony-danger:#f5222d;--harmony-info:#1890ff;--harmony-bg-primary:#f0f2f5;--harmony-bg-secondary:#fff;--harmony-bg-tertiary:#fafafa;--harmony-bg-gradient:linear-gradient(135deg, #f0f9ff 0%, #f0f2f5 25%, #f9fafb 50%, #ecfdf5 75%, #f0f9ff 100%);--harmony-text-primary:#333;--harmony-text-secondary:#666;--harmony-text-tertiary:#999;--harmony-text-light:#bfbfbf;--harmony-border-primary:#d9d9d9;--harmony-border-secondary:#e8e8e8;--harmony-border-light:#f0f0f0;--harmony-shadow-sm:0 2px 8px #00000014;--harmony-shadow-md:0 4px 16px #0000001f;--harmony-shadow-lg:0 8px 32px #00000029;--harmony-radius-sm:4px;--harmony-radius-md:8px;--harmony-radius-lg:12px;--harmony-radius-xl:16px;--harmony-radius-full:9999px;--harmony-space-xs:8px;--harmony-space-sm:16px;--harmony-space-md:24px;--harmony-space-lg:32px;--harmony-space-xl:48px;--harmony-space-xxl:48px;--harmony-font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--harmony-font-size-title:16px;--harmony-font-size-content:14px;--harmony-font-size-xs:12px;--harmony-font-size-sm:14px;--harmony-font-size-md:16px;--harmony-font-size-lg:18px;--harmony-font-size-xl:20px;--harmony-font-size-xxl:24px;--harmony-font-weight-normal:400;--harmony-font-weight-medium:500;--harmony-font-weight-semibold:600;--harmony-font-weight-bold:700;--harmony-sidebar-width:240px;--harmony-sidebar-width-collapsed:64px;--harmony-header-height:64px;--harmony-transition-fast:.2s ease;--harmony-transition-normal:.3s ease;--harmony-transition-slow:.5s ease}.harmony-layout{background:var(--harmony-bg-primary);width:100%;height:100vh;display:flex;overflow:hidden}.harmony-sidebar{width:var(--harmony-sidebar-width);height:100vh;transition:all var(--harmony-transition-normal);background:linear-gradient(#0a1929 0%,#0f2744 40%,#0a1929 100%);border-right:1px solid #ffffff14;flex-shrink:0;position:relative;overflow:hidden auto}.harmony-sidebar:before{content:"";pointer-events:none;background:radial-gradient(at 50% 0,#007dff26 0%,#0000 70%);height:200px;position:absolute;top:0;left:0;right:0}.harmony-sidebar.collapsed{width:var(--harmony-sidebar-width-collapsed)}.harmony-sidebar::-webkit-scrollbar{width:6px}.harmony-sidebar::-webkit-scrollbar-track{background:#ffffff0d}.harmony-sidebar::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.harmony-sidebar::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.harmony-logo-section{border-bottom:1px solid #ffffff14;align-items:center;gap:12px;padding:24px 20px 20px;display:flex}.harmony-logo-icon{background:var(--harmony-primary-gradient);border-radius:var(--harmony-radius-lg);color:#fff;width:40px;height:40px;box-shadow:var(--harmony-shadow-md);justify-content:center;align-items:center;font-size:20px;display:flex}.harmony-logo-text{font-size:var(--harmony-font-size-lg);font-weight:var(--harmony-font-weight-bold);background:var(--harmony-primary-gradient);-webkit-text-fill-color:transparent;letter-spacing:1px;-webkit-background-clip:text;background-clip:text}.harmony-menu{padding:var(--harmony-space-md) 0;background:0 0;border-right:none}.harmony-menu .el-menu-item{color:#fff9;font-weight:var(--harmony-font-weight-medium);font-size:var(--harmony-font-size-sm);margin:var(--harmony-space-xs) var(--harmony-space-sm) var(--harmony-space-xs) var(--harmony-space-md);border-radius:var(--harmony-radius-lg);height:48px;transition:all var(--harmony-transition-normal);border-left:3px solid #0000;line-height:48px}.harmony-menu .el-menu-item:hover{color:#ffffffe6;background:#007dff26;transform:translate(4px)}.harmony-menu .el-menu-item.is-active{color:#fff;border-left-color:var(--harmony-primary);background:linear-gradient(135deg,#007dff40,#40a9ff33);box-shadow:0 2px 12px #007dff33}.harmony-menu .el-menu-item .el-icon{margin-right:var(--harmony-space-md);font-size:20px}.harmony-menu-divider{height:1px;margin:var(--harmony-space-md) var(--harmony-space-lg);background:#ffffff14}.harmony-section-label{padding:var(--harmony-space-sm) var(--harmony-space-lg);font-size:var(--harmony-font-size-xs);color:#fff6;letter-spacing:1px;text-transform:uppercase;font-weight:var(--harmony-font-weight-semibold)}.harmony-main-wrapper{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.harmony-header{-webkit-backdrop-filter:blur(12px);padding:0 var(--harmony-space-xl);height:var(--harmony-header-height);border-bottom:1px solid var(--harmony-border-light);transition:all var(--harmony-transition-normal);z-index:100;background:#fffffff2;justify-content:space-between;align-items:center;display:flex}.harmony-header.scrolled{box-shadow:var(--harmony-shadow-sm)}.harmony-header-left h1{font-size:var(--harmony-font-size-title);font-weight:var(--harmony-font-weight-bold);color:var(--harmony-text-primary);margin:0}.harmony-header-icon{color:var(--harmony-text-tertiary);cursor:pointer;transition:all var(--harmony-transition-fast);font-size:20px}.harmony-header-icon:hover{color:var(--harmony-primary);transform:scale(1.1)}.harmony-user-avatar{background:var(--harmony-primary-gradient)!important;color:#fff!important;font-weight:var(--harmony-font-weight-semibold)!important}.harmony-user-name{color:var(--harmony-text-primary);font-weight:var(--harmony-font-weight-medium);font-size:var(--harmony-font-size-sm)}.harmony-main{padding:var(--harmony-space-xl);background:var(--harmony-bg-gradient);background-size:400% 400%;flex:1;animation:15s infinite harmony-gradient-shift;overflow-y:auto}@keyframes harmony-gradient-shift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.harmony-card{background:var(--harmony-bg-secondary);border-radius:var(--harmony-radius-lg);box-shadow:var(--harmony-shadow-sm);padding:var(--harmony-space-lg);margin-bottom:var(--harmony-space-lg);transition:all var(--harmony-transition-normal)}.harmony-card:hover{box-shadow:var(--harmony-shadow-md);transform:translateY(-2px)}.harmony-card-title{font-size:var(--harmony-font-size-lg);font-weight:var(--harmony-font-weight-semibold);color:var(--harmony-text-primary);margin-bottom:var(--harmony-space-md);padding-bottom:var(--harmony-space-sm);border-bottom:1px solid var(--harmony-border-light)}@media (width<=1400px){:root{--harmony-sidebar-width:230px}.harmony-logo-text{font-size:var(--harmony-font-size-lg)}.harmony-menu .el-menu-item{font-size:var(--harmony-font-size-sm);margin:var(--harmony-space-xs) var(--harmony-space-sm) var(--harmony-space-xs) var(--harmony-space-md)}}@media (width<=1200px){:root{--harmony-sidebar-width:210px}.harmony-logo-text{font-size:var(--harmony-font-size-md)}.harmony-logo-icon{width:36px;height:36px;font-size:18px}.harmony-menu .el-menu-item{font-size:var(--harmony-font-size-xs);margin:var(--harmony-space-xs) var(--harmony-space-xs) var(--harmony-space-xs) var(--harmony-space-sm);height:44px;line-height:44px}.harmony-menu .el-menu-item .el-icon{margin-right:var(--harmony-space-sm);font-size:18px}.harmony-header{padding:0 var(--harmony-space-lg)}.harmony-header-left h1{font-size:var(--harmony-font-size-md)}.harmony-header-right{gap:var(--harmony-space-md)}.harmony-main{padding:var(--harmony-space-lg)}}@media (width<=992px){:root{--harmony-sidebar-width:190px;--harmony-header-height:56px}.harmony-logo-section{padding:var(--harmony-space-md) var(--harmony-space-md) var(--harmony-space-sm);gap:8px}.harmony-logo-icon{width:32px;height:32px;font-size:16px}.harmony-logo-text{font-size:var(--harmony-font-size-sm)}.harmony-menu{padding:var(--harmony-space-sm) 0}.harmony-menu .el-menu-item{font-size:var(--harmony-font-size-xs);margin:var(--harmony-space-xs) var(--harmony-space-xs) var(--harmony-space-xs) var(--harmony-space-sm);height:40px;line-height:40px}.harmony-menu .el-menu-item .el-icon{margin-right:var(--harmony-space-xs);font-size:16px}.harmony-header{padding:0 var(--harmony-space-md);height:var(--harmony-header-height)}.harmony-header-left h1{font-size:var(--harmony-font-size-sm)}.harmony-header-right{gap:var(--harmony-space-sm)}.harmony-header-actions{gap:var(--harmony-space-xs)}.harmony-header-actions .el-button{font-size:var(--harmony-font-size-xs);padding:var(--harmony-space-xs) var(--harmony-space-sm)}.harmony-main{padding:var(--harmony-space-md)}.harmony-user-name{font-size:var(--harmony-font-size-xs)}}@media (width<=768px){.harmony-layout{flex-direction:column}.harmony-sidebar{width:100%;height:auto;padding-bottom:var(--harmony-space-sm);border-bottom:1px solid #ffffff14;border-right:none}.harmony-logo-section{padding:var(--harmony-space-sm) var(--harmony-space-md);justify-content:center}.harmony-menu{padding:var(--harmony-space-xs) 0;gap:var(--harmony-space-xs);display:flex;overflow-x:auto}.harmony-menu .el-menu-item{margin:0 var(--harmony-space-xs);border-radius:var(--harmony-radius-md);padding:0 var(--harmony-space-md);border-left:none;flex-shrink:0;justify-content:center;min-width:100px;height:40px;line-height:40px}.harmony-menu .el-menu-item .el-icon{margin-right:var(--harmony-space-xs);font-size:16px}.harmony-menu-divider,.harmony-section-label{display:none}.harmony-main-wrapper{flex:1;min-height:0}.harmony-main{padding:var(--harmony-space-sm);overflow-y:auto}.harmony-header{padding:0 var(--harmony-space-sm);height:48px}.harmony-header-left h1{font-size:var(--harmony-font-size-sm)}.harmony-header-right{gap:var(--harmony-space-xs)}.harmony-user-avatar{width:28px!important;height:28px!important;font-size:12px!important}.harmony-user-name{font-size:12px;display:none}.harmony-header-actions{gap:4px}.harmony-header-actions .el-button{padding:4px 8px;font-size:12px}.harmony-card{padding:var(--harmony-space-md);margin-bottom:var(--harmony-space-md)}.harmony-card-title{font-size:var(--harmony-font-size-sm);margin-bottom:var(--harmony-space-sm)}}@media (width<=480px){:root{--harmony-header-height:44px}.harmony-sidebar{padding-bottom:var(--harmony-space-xs)}.harmony-logo-section{padding:var(--harmony-space-xs) var(--harmony-space-sm)}.harmony-logo-icon{width:28px;height:28px;font-size:14px}.harmony-logo-text{font-size:var(--harmony-font-size-xs)}.harmony-menu{padding:var(--harmony-space-xs) 0}.harmony-menu .el-menu-item{padding:0 var(--harmony-space-sm);min-width:80px;height:36px;margin:0 4px;font-size:12px;line-height:36px}.harmony-menu .el-menu-item .el-icon{margin-right:4px;font-size:14px}.harmony-header{padding:0 var(--harmony-space-sm);height:var(--harmony-header-height)}.harmony-header-left h1{font-size:14px}.harmony-header-right{gap:4px}.harmony-user-avatar{width:24px!important;height:24px!important;font-size:10px!important}.harmony-header-actions .el-button{padding:2px 6px;font-size:11px}.harmony-main{padding:var(--harmony-space-xs)}.harmony-card{padding:var(--harmony-space-sm);margin-bottom:var(--harmony-space-sm)}.harmony-card-title{margin-bottom:var(--harmony-space-xs);padding-bottom:var(--harmony-space-xs);font-size:14px}.harmony-header-icon{font-size:16px}}.harmony-mobile-layout{background:var(--harmony-bg-primary);flex-direction:column;max-width:480px;height:100dvh;margin:0 auto;display:flex;position:relative;overflow:hidden}.harmony-mobile-header{background:var(--harmony-primary-gradient);height:48px;padding:0 var(--harmony-space-md);color:#fff;z-index:10;flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.harmony-header-title{font-size:var(--harmony-font-size-md);font-weight:var(--harmony-font-weight-semibold)}.harmony-header-right{align-items:center;gap:var(--harmony-space-md);display:flex}.harmony-msg-badge{cursor:pointer}.harmony-avatar-sm{width:30px;height:30px;font-size:var(--harmony-font-size-sm);font-weight:var(--harmony-font-weight-semibold);cursor:pointer;background:#ffffff40;border-radius:50%;justify-content:center;align-items:center;display:flex}.harmony-mobile-main{-webkit-overflow-scrolling:touch;flex:1;padding-bottom:60px;overflow-y:auto}.harmony-mobile-tabbar{background:var(--harmony-bg-secondary);border-top:1px solid var(--harmony-border-light);height:56px;padding-bottom:env(safe-area-inset-bottom);z-index:10;align-items:center;display:flex;position:absolute;bottom:0;left:0;right:0}.harmony-tab-item{color:var(--harmony-text-tertiary);cursor:pointer;transition:color var(--harmony-transition-fast);padding:var(--harmony-space-xs) 0;flex-direction:column;flex:1;align-items:center;gap:2px;display:flex}.harmony-tab-item.active{color:var(--harmony-primary)}.harmony-tab-label{font-size:var(--harmony-font-size-xs)}.harmony-user-drawer{padding:var(--harmony-space-lg)}.harmony-drawer-header{align-items:center;gap:var(--harmony-space-lg);margin-bottom:var(--harmony-space-lg);display:flex}.harmony-drawer-avatar{background:var(--harmony-primary-gradient);color:#fff;width:52px;height:52px;font-size:22px;font-weight:var(--harmony-font-weight-bold);border-radius:50%;justify-content:center;align-items:center;display:flex}.harmony-drawer-name{font-size:var(--harmony-font-size-md);font-weight:var(--harmony-font-weight-semibold);color:var(--harmony-text-primary);margin-bottom:var(--harmony-space-xs)}.harmony-drawer-stats{border-radius:var(--harmony-radius-lg);padding:var(--harmony-space-md) 0;margin-bottom:var(--harmony-space-lg);background:linear-gradient(135deg,#007dff14,#40a9ff14);justify-content:space-around;display:flex}.harmony-stat-item{text-align:center}.harmony-stat-num{font-size:var(--harmony-font-size-lg);font-weight:var(--harmony-font-weight-bold);color:var(--harmony-primary);display:block}.harmony-stat-label{font-size:var(--harmony-font-size-xs);color:var(--harmony-text-tertiary);margin-top:var(--harmony-space-xs)}.harmony-drawer-menu{gap:var(--harmony-space-xs);flex-direction:column;display:flex}.harmony-drawer-item{align-items:center;gap:var(--harmony-space-md);padding:var(--harmony-space-md) var(--harmony-space-md);border-radius:var(--harmony-radius-lg);font-size:var(--harmony-font-size-sm);color:var(--harmony-text-secondary);cursor:pointer;transition:background var(--harmony-transition-fast);display:flex}.harmony-drawer-item:hover{background:var(--harmony-bg-tertiary)}.harmony-drawer-item.harmony-logout{color:var(--harmony-danger);margin-top:var(--harmony-space-md)}.harmony-btn{background:var(--harmony-primary-gradient);color:#fff;border-radius:var(--harmony-radius-md);padding:var(--harmony-space-sm) var(--harmony-space-lg);font-size:var(--harmony-font-size-sm);font-weight:var(--harmony-font-weight-medium);cursor:pointer;transition:all var(--harmony-transition-fast);box-shadow:var(--harmony-shadow-sm);border:none}.harmony-btn:hover{box-shadow:var(--harmony-shadow-md);transform:translateY(-1px)}.harmony-btn:active{transform:translateY(0)}.harmony-input{border:1px solid var(--harmony-border-secondary);border-radius:var(--harmony-radius-md);padding:var(--harmony-space-sm) var(--harmony-space-md);font-size:var(--harmony-font-size-sm);transition:all var(--harmony-transition-fast);background:var(--harmony-bg-secondary)}.harmony-input:focus{border-color:var(--harmony-primary);outline:none;box-shadow:0 0 0 2px #007dff1a}.harmony-tech-pulse{animation:2s infinite harmony-pulse}@keyframes harmony-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.05)}}.harmony-tech-glow{animation:3s ease-in-out infinite alternate harmony-glow}@keyframes harmony-glow{0%{box-shadow:0 0 20px #007dff4d}to{box-shadow:0 0 40px #007dff99}}.harmony-tech-float{animation:6s ease-in-out infinite harmony-float}@keyframes harmony-float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-5px)}20%,40%,60%,80%{transform:translate(5px)}}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn var(--transition-normal) ease-out}.scale-in{animation:scaleIn var(--transition-normal) ease-out}.bounce-in{animation:bounceIn var(--transition-normal) ease-out}.pulse{animation:2s infinite pulse}.shake{animation:.5s ease-in-out shake}.rotate{animation:1s linear rotate}.slide-in-right{animation:slideInRight var(--transition-normal) ease-out}.slide-in-left{animation:slideInLeft var(--transition-normal) ease-out}.slide-in-up{animation:slideInUp var(--transition-normal) ease-out}.hover-lift{transition:transform var(--transition-fast), box-shadow var(--transition-fast)}.hover-lift:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.hover-scale{transition:transform var(--transition-fast)}.hover-scale:hover{transform:scale(1.02)}.hover-highlight{transition:background-color var(--transition-fast), color var(--transition-fast)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-spinner{animation:1s linear infinite spin}@keyframes progress{0%{width:0}to{width:100%}}.progress-bar{animation:1s ease-out progress}@keyframes blink{0%,to{opacity:1}50%{opacity:.5}}.blink{animation:1s infinite blink}@media (width<=1200px){:root{--spacing-lg:20px;--spacing-xl:28px;--font-size-xl:18px;--font-size-xxl:22px}}@media (width<=992px){:root{--spacing-md:12px;--spacing-lg:16px;--spacing-xl:24px;--font-size-lg:16px;--font-size-xl:17px;--font-size-xxl:20px}.aside{width:180px!important}.el-table{font-size:var(--font-size-sm)}.el-table th,.el-table td{padding:8px 12px}}@media (width<=768px){:root{--spacing-xs:3px;--spacing-sm:6px;--spacing-md:10px;--spacing-lg:14px;--spacing-xl:20px;--font-size-xs:11px;--font-size-sm:13px;--font-size-md:15px;--font-size-lg:16px;--font-size-xl:17px;--font-size-xxl:19px}.aside{width:160px!important}.header{padding:0 var(--spacing-md)!important;height:56px!important}.main{height:calc(100vh - 56px)!important}.dashboard-card,.wrong-questions-card,.box-card{margin-bottom:var(--spacing-md)!important}.stats-grid{gap:var(--spacing-md)!important;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))!important}.charts-container{gap:var(--spacing-md)!important;grid-template-columns:1fr!important}.el-dialog{width:90%!important;margin:20px auto!important}.el-form-item{margin-bottom:var(--spacing-md)!important}.el-form-item__label{width:70px!important}.el-button{font-size:var(--font-size-sm)!important;padding:6px 12px!important}}@media (width<=576px){:root{--spacing-xs:2px;--spacing-sm:4px;--spacing-md:8px;--spacing-lg:12px;--spacing-xl:16px;--font-size-xs:10px;--font-size-sm:12px;--font-size-md:14px;--font-size-lg:15px;--font-size-xl:16px;--font-size-xxl:18px}.aside{width:140px!important}.header-left h1{font-size:var(--font-size-lg)!important}.el-table{font-size:var(--font-size-xs)!important}.el-table th,.el-table td{padding:6px 8px!important}.el-table-column{width:auto!important;min-width:80px!important}.student-info{padding:var(--spacing-md)!important}.info-item{align-items:flex-start!important;gap:var(--spacing-xs)!important;flex-direction:column!important}.label{width:100%!important;margin-right:0!important}.stat-item{padding:var(--spacing-md)!important}.el-statistic__content{font-size:var(--font-size-xl)!important}.el-dialog{width:95%!important;margin:10px auto!important}.el-dialog__body{padding:var(--spacing-md)!important}.el-form-item__label{width:60px!important;font-size:var(--font-size-sm)!important}.el-input__inner{font-size:var(--font-size-sm)!important;padding:8px 12px!important}.el-button{font-size:var(--font-size-xs)!important;margin-right:var(--spacing-sm)!important;padding:4px 8px!important}.el-tag{font-size:var(--font-size-xs)!important;height:20px!important;padding:0 8px!important;line-height:18px!important}}@media (height<=600px){.header{height:52px!important}.main{height:calc(100vh - 52px)!important}.dashboard-card,.wrong-questions-card,.box-card{margin-bottom:var(--spacing-md)!important}.stats-grid{gap:var(--spacing-md)!important;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))!important}.stat-item{padding:var(--spacing-md)!important}}@media print{:root{--background-color:#fff;--surface-color:#fff;--border-color:#000;--text-primary:#000;--text-secondary:#333;--text-tertiary:#666;--text-quaternary:#999}.aside,.header,.el-button,.el-dialog,.el-dropdown{display:none!important}.main{height:auto!important;padding:0!important;overflow:visible!important}.dashboard-card,.wrong-questions-card,.box-card{break-inside:avoid;box-shadow:none!important;border:1px solid var(--border-color)!important}.el-table{border-collapse:collapse!important}.el-table th,.el-table td{border:1px solid var(--border-color)!important}}
